版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机系统结构课内实验实验报告班级:计算机15班姓名:高君宇学号:2110505112日期:2014.5.7动态分支预测实验一、实验目的及要求1. 了解掌握动态分支与推断执行技术对流水线性能的改进效果2. 了解动态分支预测的基本技术;3. 了解推断执行的基本过程;4. 比较各种分支预测技术的性能。二、实验环境Linux、SimpleScalarToolSet、SPEC测试程序三、实验内容利用SimpleScalar仿真器中的分支预测仿真程序sim-pred运行所提供的三个benchmark程序,分别采用五种不同的分支预测方法,即bimod方式,two-leveladaptive方式,alway
2、staken方式,alwaysnottaken方式,comb方式,并对前两种分别使用下表中两种参数配置;分析仿真器输出的关于分支预测的统计参数集,填写表格,并对各仿真器的能力给出相应说明。命令格式为:./sim-bpred-optionexecutable_benchmark-argument对于三种动态方法,分别说明如下:bimod是最普通的,即采用一个2bit宽的分支方向预测表,按分支地址查找,2bit分支预测器的判断和更新与课本上的一致。这种方式只有一个参数,就是分支预测表的长度。2-level要复杂一些,它采用两级表格式,第一级是分支历史表,存放各组分支历史寄存器的值,第二级是全局/局
3、部分支模式表,(全局或局部应是由表长相对于分支历史寄存器的长决定),它存放各分支历史模式的2bit预测器。在判断时用当前分支指令对应的历史寄存器值去索引二级表得到相应预测器值。更新时,把当前分支的方向左移入历史寄存器,并对使用过的2bit预测器作更新。它有四个参数,前三个是一级表长度,二级表长度,历史寄存器宽度,最后一个是异或标志。如果为1,则将历史寄存器的值与当前分支指令地址异或,用其结果再去索引二级模式表。comb方式则组合了以上两种方法,它再加入了一个meta表,这个表类似bimod的预测表,只是它预测的是采取bimod还是2-level,也采用2-bit预测器,被采取的预测方法被定为第
4、一方向,未被采取的定为第二方向。更新时,如果第一方向与第二方向不同则更新meta表,否则只更新两种方法各自的表即可。它共有三组参数,前两组即bimod和two-level的参数,第三组是关于meta表长度的说明。至于BTB的更新与cache的更新方式相同。四、实验步骤1在linux的环境下,进入到simpleScalar文件的根目录;2.调整好命令的格式并运行(下面给出运行命令的的一部分内容):./sim-bpred-bpredtakentests/bin.little/test-math./sim-bpred-bprednottakentests/bin.little/test-math./
5、sim-bpred-bpredbimod-bpred:bimod512tests/bin.little/test-math./sim-bpred-bpredbimod-bpred:bimod1024tests/bin.little/test-math./sim-bpred-bpred2lev-bpred:2lev11024801tests/bin.little/test-math./sim-bpred-bpred2lev-bpred:2lev16461tests/bin.little/test-math./sim-bpred-bpredcomb-bpred:comb1024-bpred:2le
6、v1102480-bpred:bimod1024tests/bin.little/test-math五、实验结果将结果总结如下表:1.测试程序为test.math:预测方统计结7alway法snottakenalwaystakenbimod(516)bimod(1024)2-level(1,1024,8,0)2-level(1,64,6,1)comb(1024)(1,1024,8,0)(1024)sim_total_insn213688213688213688213688213668213723213723sim_total_refs568975689756897568975689756900
7、56900sim_num_branches38591385913859138591385913859938599simelapsedtime1111111siminstrate21362136213688.0213688.02136882137232137238888000000sim_IPB5.5375.5375.53725.53725.53725.5375.53722bpred_bimod.looku385938593859138591385913859938599PS11bpred_bimod.update385938593859138591385913859938599s11bpred
8、_bimod.addr_219325563423734237342422796135578hits81bpred_bimod.dir_hir219325563473234732342422851436018ts81bpred_bimod.misses1665129338593859379710085258130bpredbimod.jrhits3543354335283528352835293529bpred_bimodjr_seen3543354335433543354335443544bpred_bimod.jr_non354335432828282828_rashits.PPbpred_
9、bimod.jr_non354335434141414141_rasseen.PPbpred_bimod.bpred0.5680.6640.88720.88720.88730.72440.9217_add59rratebpred_bimod.bpred0.5680.6640.90000.90000.90160.73870.9331_dir59ratebpred_bimod.bpred110.99580.99580.99580.99580.9958_jr_ratebpred_bimod.bpred110.68290.68290.68290.68290.6829r_nonrasrate.PPbpr
10、ed_bimod.retstack_pushes1135043504350435053505bpred_bimod.retstack_poPS0035023502350235033503bpred_bimod.used_ras.PP0035023502350235033503bpred_bimod.ras_hits.PP0035023500350035013501bpred_bimod.ras_rat000.99940.99940.99940.99940.9994e.PP2.测试程序为test.fmath.预测方统计结Ualwaysnottakenalwaystakenbimod(516)bi
11、mod(1024)2-level(1,1024,8,0)2-level(1,64,6,1)comb(1024)(1,1024,8,0)(1024)sim_total_insn53448534485344534453448534825348288sim_total_refs16342163421634163416342163451634522sim_num_branches10340103401034103410340103471034700simelapsedtime1111111sim_inst_rate53448534485344534453448534825348288sim_IPB5.
12、1695.1695.1695.1695.16915.16885.16881111bpred_bimod.lookups10340103401034103410340103471034700bpred_bimod.updates10340103401034103410340103471034700bpredbimod.addrhits5768683988259021886075749225bpredbimod.dirhirts5768683991289315917178889474bpredbimod.misses457235011212102511692459873bpredbimod.jrh
13、its832832815815815816816bpredbimod.jrseen832832832832832833833bpred_bimod.jr_non_r83283244444ashits.PPbpred_bimod.jr_non_r8328321919191919asseen.PPbpred_bimod.bpred_ad0.5570.6610.8530.8720.85690.73200.8916d8454rratebpred_bimod.bpred_di0.5570.6610.8820.9000.88690.76230.9156r8489ratebpred_bimod.bpred_
14、jr110.9790.9790.21050.97960.9796_r66atebpred_bimod.bpred_jr_nonrasrate.PP110.21050.21050.21050.21050.2105bpred_bimod.retstack_PUshes00815815815816816bpred_bimod.retstack_POPS00813813813814814bpred_bimod.used_ras.PP00813813813814814bpred_bimod.ras_hits.PP00811811811812812bpred_bimod.ras_rate.PP000.99
15、750.99750.99750.99750.99753.测试程序为test.printf:预测方统计结Kalwaysnot法kenalwaystakenbimod(516)bimod(1024)2-level(1,1024,8,0)2-level(1,64,6,1)comb(1024)(1,1024,8,0)(1024)sim_total_insn1813818138181381813818138771813911813914777777774sim_total_refs516945169451694516945169415169475169471111sim_num_branches4016
16、04016040160401604016094016234016239999simelapsedtime1111111sim_inst_rate1813818138181381813818138771813911813914777777774simIPB4.51654.51654.51654.51654.51654.51654.5165bpred_bimod.lookup40160401604016040160401609401623401623s9999bpred_bimod.updates401604016040160401604016094016234016239999bpred_bim
17、od.addr_hi23336261363725937745373619317099384169ts1318bpred_bimod.dir_hirt23336261363749037976375930319444386404s1311bpred_bimod.misses1682414024267082184825679821791521986bpredbimod.jrhits31998319983015230152301523015330153bpredbimod.jrseen31998319983199831998319983199931999bpred_bimod.jr_non_rashi
18、ts.PP3199831998363363363363363bpred_bimod.jr_non_rasseen.PP319983199821982198219821982198bpred_bimod.bpred_addrrate0.58110.65080.92770.93990.93030.78650.9565bpred_bimod.bpred_dirrate0.58110.65080.93350.94560.93610.79540.9621bpred_bimod.bpred_jr_rate110.94230.94230.94230.94230.9423bpred_bimod.bpred_j
19、r_nonrasrate.PP110.16520.16520.16520.16520.1652bpred_bimod.retstackPUshes002980229802298022980329803bpred_bimod.retstackPOPS002980029800298002980129801bpred_bimod.used_ras.PP002980029800298002980129801bpred_bimod.ras_hits.PP002978929789297892979029790bpred_bimod.ras_rate.PP000.99960.99960.9960.99960
20、.9996六、总结所谓的动态分支处理方法,是指利用程序执行期间的信息,进行处理,所以这儿很明显带来的是硬件开销,因为程序执行期间是不可能由软件协助的,否则性能影响也就太大了吧。相对的,静态分支处理,其实是利用编译器实现的。这次实验我最大的感受就是计算机就像董老师说的一样,是在玩平衡。体系结构设计的核心是平衡,以最快的速度获取指令,需要较少的时钟周期,但带来的是预测准确率的下降;如果希望提高准确率,则是较慢的速度;三种分支预测方式实现难度各不相同,在性能方面也各有优劣,一级分支预测追求的是快,二级分支预测追求的是准确率,这都是在玩平衡。通过实验,我更加熟悉了动态分支预测的方法,学以致用才是硬道理
21、,计算机的这个“平衡“还得好好玩下去。七、附录(源程序清单)使用的是程序自带的源代码test.math,test.fmath,test.printf故在此不单独列出。基本流水线和Tomasulo算法实验一、实验目的及要求1. 掌握DLXview模拟器的使用方法;2. 进一步理解指令动态调度的基本思想,了解指令动态调度的基本过程与方法;3. 理解记分牌算法和Tomasulo算法的基本思想,了解它们的基本结构、运行过程;4. 比较分析基本流水线与记分牌算法和Tomasulo算法的性能及优缺点。二、实验环境DLXview模拟器三、实验内容1、用DLX汇编语言编写代码文件*.s(程序中应包括指令的数据
22、相关、控制相关以及结构相关),以及相关的初始化寄存器文件*.i和数据文件*.d;2、观察程序中出现的数据相关、控制相关、结构相关,并指出三种相关的指令组合;3、将自己编写的程序*.s、*.i、*.d装载到DLXview模拟器上,4、分别用基本流水线和Tomasulo算法模拟,针对每一种模拟做如下分析:(1) 统计程序的执行周期数和流水线中的暂停时钟周期数;(2) 改变功能部件数目重新模拟,观察并记录性能的改变(3) 改变功能部件延迟重新模拟,观察并记录性能的改变;5、记录运行Tomasulo算法时的指令状态表和保留站信息;四、实验步骤用DLX汇编语言编写代码文件*.s(程序中应包括指令的数据相
23、关、控制相关以及结构相关),以及相关的初始化寄存器文件*.i和数据文件*.d;将自己编写的程序*.s、*.i、*.d装载到DLXview模拟器上;用DLXview模拟器进行模拟。五、实验结果(一)普通流水线:实验参数设置实验结果显示该段程序运行了11个时钟周期。改变部件数目:增加了一个除法器部件根据实验结果依然运行了11个时钟周期。所以对该f305程序增加除法器部件数目,不影响执行效率。增加了一个加法器部件实验结果显示依然运行了11个时钟周期。所以该f305程序对于加法器部件数目要求也不高,增加后不影响执行效率增加了一个乘法器部件实验结果依然运行了11个时钟周期所以该f305程序对于乘法器部件
24、数目要求不高,增加后也不影响执行效率。延迟改变:将加法器延迟增加到4实验结果显示运行了11个时钟周期。所以该f305程序对于加法器延迟要求不高,稍微增加后不影响执行效率乘法器延迟增加到8实验结果显示运行了14个时钟周期,比原来的11个周期增加了3个时钟周期。所以该f305程序对于乘法器延迟要求较高,稍微增加后将减慢执行效率。除法器延迟增加到30HullAddlMult?2FPRegisterfileOperationbusOperandbusIntagarunitsFPaddersROR8R16R24FOF8F16F24FrominstructionunitCurrentinstruction
25、1opUjQjUkQkopUjQjVkQkopUjQjUkQk2ADDFAddl0.0000002DiurHull4.00000013UBF4-0000000-0000001MULTF0-0000001.2500001'1leservationstations*InstructionstatusInstructionIssueExcuteUtiteresultIff6,0x22(r2)123Iff2z0x2d(r3)456multffO,f2,f457-1112subff8,f6,f267-89divffl0,f0,f6713-3132addff6,f8,f2810-1213trap0
26、x091011(ZoiiniiorLda匸abus(CDB)1、改变延迟,探究各因素对执行周期数的影响1)改变除法延迟为3,其他不变,执行周期不变2)改变加法延迟为3,其他不变,执行周期不变日回冈AddlMultiQiQjVk000000ADDF4.000000TosasuloAlgorith>onDLXRegisterfilePhnp0x0OperationbusOperandbusROR8R16R24FOF8Fl6F24FrominstructionunitCurrentinstruction1opUjQiVkQkIDIUF0.0000004.000000IntegerunitsFP
27、addersFPmultipliersCommciiiMatabum(CDB)工nstriictzlonstatusInstruetlxmIssueExcuteTfriteresultIft6f0x22(r2)12Iff2,0x2d(r3)234multff0,f2,f4356subff8,f6,f2457divf£10,f0,f678-1011addff6,f8z£28910trap0x0910113)改变乘法延迟为3,其余不变,执行周期不变4)改变整型延迟为3,其余不变,执行周期变为11opUjQjUkQkopUjQjVkQkopUjQjVkQk2ADDTAddl0.0000002DiurMulti4.0000001'113UBF4.0000000.0000001KULTF0.0000001.Z500001f1f1Int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026二上数学表内除法动画课件
- 2026北师大二下十年变化互动课件
- 九年级物理(天津专用)上学期期末真题汇编-内能及内能的利用专项试卷(含答案)
- 2026四下数学全册互动课件
- 新苏教版科学五年级上册1-4《七色光》教学课件
- 2026四下数学运算律互动课件
- 可编程直流电源全球前10强生产商排名及市场份额(by QYResearch)
- 2026年宁夏回族自治区中考语文试卷试题(含答案详解)
- 热射病急救护理
- 河南鹿邑老君台中学2027届化学九年级第一学期期末质量检测模拟试题含解析
- 共创健康无烟校园守护青春美好未来
- 颌下腺肿瘤诊疗专家共识(2026版)
- 2025年度中国展览数据统计报告
- 安全生产规章制度汇编2026版
- 2026年高考(浙江卷)英语试题及答案
- 光学显微镜安装确认、运行确认和性能确认3Q验证方案
- 2025年安徽评标专家题库及答案(可下载)
- 海南封关 课件-2026届高考地理一轮复习人教版
- 江苏省建设工程监理现场用表(第七版修订版)
- 印刷领域消防培训
- 公路工程施工安全技术与管理课件 第07讲 临时用电
评论
0/150
提交评论