欢迎来到天天文库
浏览记录
ID:29993764
大小:16.26 KB
页数:3页
时间:2018-12-25
《动态分支预测实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划动态分支预测实验报告 模拟分支预测器 一、实验目标: 使用ComputerArchitecture:AQuantitativeApproach(FourthEdition)光盘中所附带的文件,模拟分支预测器的行为。该文件格式和题目要求如第2章CaseStudy2所示。 二、实验要求: 写一段程序对一个64个入口的简单四状态转移目标缓存建模。需完成以下目标: 1.求出BTB的总体命中率为多少 2.求出冷启动的总体转移预测错误率为多少 3.找出最常见的转移。对该
2、转移的正确预测在预测正确的总数中占多少。 4.统计转移预测器遇到了多少次容量缺失的情况。 5.比较冷启动和热启动的效果。使用相同的输入数据建立历史表,并收集统计信息。 6.冷启动BTB4次,BTB大小为16,32和64。得出导致的5个预测错误率,并得出5个命中率。 7.提交经过注释的、完成的代码。 三、程序设计与实现:目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 本程序我打算采用j
3、ava进行编写,因为java能够很好地体现面向对象编程的优点。将BTB定义为一个类,然后将对它的属性的操 作看做该类本身的行为,这样不但能够起到数据隐藏的效果,而且实现起来也比较方便。因此,首先定义BTB类如下: classBTB{intprediction;//预测是否发生,1表示转移,0表示不转移。intaddr_of_br;//转移指令的地址intbr_target;//转移目标inthits;//命中次数intmisses;//缺失次数 } 此外还需要定义一个测试类对BTB的方法进行测试,以及完成一些初始化工作。 publicclassBTBTest{ publi
4、cstaticfinalintM=1;publicstaticfinalintN=2;publicstaticfinalintMAX_BTB_LEN=1024;//最大的BTB数目publicstaticfinallongMAXITERS=;publicstaticintcorrect_predictions,mispredictions,tot_brs,publicstaticintmsbraddr,msbraddr_hits,msbraddr_misses;publicstaticHashSetset=newHashSet();//不同的btb_len;指令条数 staticB
5、TBbtbs[]=newBTB[MAX_BTB_LEN];目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 staticFilef1,f2; 当生成该测试类的时候,同时对BTB进行初始化。 publicBTBTest(){}for(inti=0;i=2){}if(btbs[index].prediction3)break;btbs[index].prediction--;if(btbs[in
6、dex].prediction#includeclassPro//作业对象{public:Pro(){Size=0;next=NULL;Start=0;Name[0]=' ';}Pro(intSi,charNa[]){Size=Si;next=NULL;Start=0;strcpy(Name,Na);}voidprintf(){coutnext)p->printf();cout<7、平,并确保其在这个行业的安全感。
7、平,并确保其在这个行业的安全感。
此文档下载收益归作者所有