动态分支预测实验.doc

上传人:星星 文档编号:1038983 上传时间:2024-03-28 格式:DOC 页数:22 大小:782.33KB
下载 相关 举报
动态分支预测实验.doc_第1页
第1页 / 共22页
动态分支预测实验.doc_第2页
第2页 / 共22页
动态分支预测实验.doc_第3页
第3页 / 共22页
动态分支预测实验.doc_第4页
第4页 / 共22页
动态分支预测实验.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、动态分支预测实验一、实验目的及要求1.了解掌握动态分支与推断执行技术对流水线性能的改进效果2.了解动态分支预测的基本技术;3.了解推断执行的基本过程;4.比较各种分支预测技术的性能。二、实验环境Linux、SimpleScalar Tool Set、SPEC 测试程序三、实验内容利用SimpleScalar仿真器中的分支预测仿真程序sim-pred运行所提供的三个benchmark程序,分别采用五种不同的分支预测方法,即bimod方式,two-level adaptive方式,always taken方式,always not taken方式,comb方式,并对前两种分别使用下表中两种参数配置

2、;分析仿真器输出的关于分支预测的统计参数集,填写表格,并对各仿真器的能力给出相应说明。命令格式为: ./sim-bpred -option executable_benchmark argument对于三种动态方法,分别说明如下:bimod是最普通的,即采用一个2bit宽的分支方向预测表,按分支地址查找,2bit分支预测器的判断和更新与课本上的一致。这种方式只有一个参数,就是分支预测表的长度。2-level要复杂一些,它采用两级表格式,第一级是分支历史表,存放各组分支历史寄存器的值,第二级是全局/局部分支模式表,(全局或局部应是由表长相对于分支历史寄存器的长决定),它存放各分支历史模式的2bi

3、t预测器。在判断时用当前分支指令对应的历史寄存器值去索引二级表得到相应预测器值。更新时,把当前分支的方向左移入历史寄存器,并对使用过的2bit预测器作更新。它有四个参数,前三个是一级表长度,二级表长度,历史寄存器宽度,最后一个是异或标志。如果为1,则将历史寄存器的值与当前分支指令地址异或,用其结果再去索引二级模式表。comb方式则组合了以上两种方法,它再加入了一个meta表,这个表类似bimod的预测表,只是它预测的是采取bimod还是2-level,也采用2-bit预测器,被采取的预测方法被定为第一方向,未被采取的定为第二方向。更新时,如果第一方向与第二方向不同则更新meta表,否则只更新两

4、种方法各自的表即可。它共有三组参数,前两组即bimod和two-level的参数,第三组是关于meta表长度的说明。至于BTB的更新与cache的更新方式相同。四、实验步骤1.在linux的环境下,进入到simpleScalar文件的根目录;2.调整好命令的格式并运行(下面给出运行命令的的一部分内容):./sim-bpred -bpred taken tests/bin.little/test-math./sim-bpred -bpred nottaken tests/bin.little/test-math./sim-bpred -bpred bimod -bpred:bimod 512 t

5、ests/bin.little/test-math./sim-bpred -bpred bimod -bpred:bimod 1024 tests/bin.little/test-math./sim-bpred -bpred 2lev -bpred:2lev 1 1024 8 01 tests/bin.little/test-math./sim-bpred -bpred 2lev -bpred:2lev 1 64 6 1 tests/bin.little/test-math./sim-bpred -bpred comb -bpred:comb 1024 -bpred:2lev 1 1024 8

6、 0 -bpred:bimod 1024 tests/bin.little/test-math五、实验结果将结果总结如下表:1.测试程序为test.math预测方法统计结果always nottakenalways takenbimod(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_refs56897568975689756897568975690056

7、900sim_num_branches38591385913859138591385913859938599sim_elapsed_time1111111sim_inst_rate213688213688213688.0000213688.0000213688213723213723sim_IPB5.53725.53725.53725.53725.53725.5375.537bpred_bimod.lookups38591385913859138591385913859938599bpred_bimod.updates38591385913859138591385913859938599bpr

8、ed_bimod.addr_hits21938255613423734237342422796135578bpred_bimod.dir_hirts21938255613473234732342422851436018bpred_bimod.misses1665312930385938593797100852581bpred_bimod.jr_hits3543354335283528352835293529bpred_bimod.jr_seen3543354335433543354335443544bpred_bimod.jr_non_ras_hits.PP354335432828282828

9、bpred_bimod.jr_non_ras_seen.PP354335434141414141bpred_bimod.bpred_addr_rate0.56850.66490.88720.88720.88730.72440.9217bpred_bimod.bpred_dir_rate0.56850.66490.90000.90000.90160.73870.9331bpred_bimod.bpred_jr_rate110.99580.99580.99580.99580.9958bpred_bimod.bpred_jr_non_ras_rate.PP110.68290.68290.68290.

10、68290.6829bpred_bimod.retstack_pushes1135043504350435053505bpred_bimod.retstack_pops0035023502350235033503bpred_bimod.used_ras.PP0035023502350235033503bpred_bimod.ras_hits.PP0035023500350035013501bpred_bimod.ras_rate.PP000.99940.99940.99940.99940.99942.测试程序为 test.fmath预测方法统计结果always nottakenalways t

11、akenbimod(516)bimod(1024)2-level(1,1024,8,0)2-level(1,64,6,1)comb(1024)(1,1024,8,0)(1024)sim_total_insn53448534485344853448534485348253482sim_total_refs16342163421634216342163421634516345sim_num_branches10340103401034010340103401034710347sim_elapsed_time1111111sim_inst_rate53448534485344853448534485

12、348253482sim_IPB5.16915.16915.16915.16915.16915.16885.1688bpred_bimod.lookups10340103401034010340103401034710347bpred_bimod.updates10340103401034010340103401034710347bpred_bimod.addr_hits5768683988259021886075749225bpred_bimod.dir_hirts5768683991289315917178889474bpred_bimod.misses457235011212102511

13、692459873bpred_bimod.jr_hits832832815815815816816bpred_bimod.jr_seen832832832832832833833bpred_bimod.jr_non_ras_hits.PP83283244444bpred_bimod.jr_non_ras_seen.PP8328321919191919bpred_bimod.bpred_addr_rate0.55780.66140.85350.87240.85690.73200.8916bpred_bimod.bpred_dir_rate0.55780.66140.88280.90090.886

14、90.76230.9156bpred_bimod.bpred_jr_rate110.97960.97960.21050.97960.9796bpred_bimod.bpred_jr_non_ras_rate.PP110.21050.21050.21050.21050.2105bpred_bimod.retstack_pushes00815815815816816bpred_bimod.retstack_pops00813813813814814bpred_bimod.used_ras.PP00813813813814814bpred_bimod.ras_hits.PP0081181181181

15、2812bpred_bimod.ras_rate.PP000.99750.99750.99750.99750.99753.测试程序为 test.printf预测方法统计结果always nottakenalways takenbimod(516)bimod(1024)2-level(1,1024,8,0)2-level(1,64,6,1)comb(1024)(1,1024,8,0)(1024)sim_total_insn1813877181387718138771813877181387718139141813914sim_total_refs5169415169415169415169415

16、16941516947516947sim_num_branches401609401609401609401609401609401623401623sim_elapsed_time1111111sim_inst_rate1813877181387718138771813877181387718139141813914sim_IPB4.51654.51654.51654.51654.51654.51654.5165bpred_bimod.lookups401609401609401609401609401609401623401623bpred_bimod.updates40160940160

17、9401609401609401609401623401623bpred_bimod.addr_hits233361261363372591377458373619317099384169bpred_bimod.dir_hirts233361261363374901379761375930319444386404bpred_bimod.misses1682481402462670821848256798217915219bpred_bimod.jr_hits31998319983015230152301523015330153bpred_bimod.jr_seen319983199831998

18、31998319983199931999bpred_bimod.jr_non_ras_hits.PP3199831998363363363363363bpred_bimod.jr_non_ras_seen.PP319983199821982198219821982198bpred_bimod.bpred_addr_rate0.58110.65080.92770.93990.93030.78650.9565bpred_bimod.bpred_dir_rate0.58110.65080.93350.94560.93610.79540.9621bpred_bimod.bpred_jr_rate110

19、.94230.94230.94230.94230.9423bpred_bimod.bpred_jr_non_ras_rate.PP110.16520.16520.16520.16520.1652bpred_bimod.retstack_pushes002980229802298022980329803bpred_bimod.retstack_pops002980029800298002980129801bpred_bimod.used_ras.PP002980029800298002980129801bpred_bimod.ras_hits.PP002978929789297892979029

20、790bpred_bimod.ras_rate.PP000.99960.99960.9960.99960.9996六、总结所谓的动态分支处理方法,是指利用程序执行期间的信息,进行处理,所以这儿很明显带来的是硬件开销,因为程序执行期间是不可能由软件协助的,否则性能影响也就太大了吧。相对的,静态分支处理,其实是利用编译器实现的。这次实验我最大的感受就是计算机就像董老师说的一样,是在玩平衡。体系结构设计的核心是平衡,以最快的速度获取指令,需要较少的时钟周期,但带来的是预测准确率的下降;如果希望提高准确率,则是较慢的速度;三种分支预测方式实现难度各不相同,在性能方面也各有优劣,一级分支预测追求的是快,

21、二级分支预测追求的是准确率,这都是在玩平衡。通过实验,我更加熟悉了动态分支预测的方法,学以致用才是硬道理,计算机的这个“平衡“还得好好玩下去。七、附录(源程序清单)使用的是程序自带的源代码test.math,test.fmath, test.printf故在此不单独列出。基本流水线和Tomasulo算法实验一、实验目的及要求1. 掌握DLXview模拟器的使用方法;2. 进一步理解指令动态调度的基本思想,了解指令动态调度的基本过程与方法;3. 理解记分牌算法和Tomasulo算法的基本思想,了解它们的基本结构、运行过程;4. 比较分析基本流水线与记分牌算法和Tomasulo算法的性能及优缺点。

22、二、实验环境DLXview模拟器三、实验内容1、用DLX汇编语言编写代码文件*.s(程序中应包括指令的数据相关、控制相关以及结构相关),以及相关的初始化寄存器文件*.i和数据文件*.d;2、观察程序中出现的数据相关、控制相关、结构相关,并指出三种相关的指令组合;3、将自己编写的程序*.s、*.i、*.d装载到DLXview模拟器上, 4、分别用基本流水线和Tomasulo算法模拟,针对每一种模拟做如下分析: (1)统计程序的执行周期数和流水线中的暂停时钟周期数; (2)改变功能部件数目重新模拟,观察并记录性能的改变 (3)改变功能部件延迟重新模拟,观察并记录性能的改变;5、记录运行Tomasu

23、lo算法时的指令状态表和保留站信息;四、实验步骤用DLX汇编语言编写代码文件*.s(程序中应包括指令的数据相关、控制相关以及结构相关),以及相关的初始化寄存器文件*.i和数据文件*.d;将自己编写的程序*.s、*.i、*.d装载到DLXview模拟器上;用DLXview模拟器进行模拟。五、实验结果(一)普通流水线: 实验参数设置实验结果显示该段程序运行了11个时钟周期。改变部件数目: 增加了一个除法器部件根据实验结果依然运行了11个时钟周期。所以对该f305程序增加除法器部件数目,不影响执行效率。 增加了一个加法器部件实验结果显示依然运行了11个时钟周期。所以该f305程序对于加法器部件数目要

24、求也不高,增加后不影响执行效率 增加了一个乘法器部件实验结果依然运行了11个时钟周期所以该f305程序对于乘法器部件数目要求不高,增加后也不影响执行效率。延迟改变: 将加法器延迟增加到4实验结果显示运行了11个时钟周期。所以该f305程序对于加法器延迟要求不高,稍微增加后不影响执行效率 乘法器延迟增加到8实验结果显示运行了14个时钟周期,比原来的11个周期增加了3个时钟周期。所以该f305程序对于乘法器延迟要求较高,稍微增加后将减慢执行效率。除法器延迟增加到30实验结果显示依然运行了11个时钟周期、所以该f305程序对于除法器延迟要求较低,稍微增加后不影响执行效率。(二)使用Tomasulo算

25、法 1、改变延迟 ,探究各因素对执行周期数的影响(1)改变除法延迟为3,其他不变,执行周期不变 (2)改变加法延迟为3,其他不变,执行周期不变 (3)改变乘法延迟为3,其余不变,执行周期不变 (4)改变整型延迟为3,其余不变,执行周期变为11 2、 改变保留站数目(1) 改变整型保留站数目为4,执行周期缩短为7(2) 改变加法保留站数目为4,执行周期不变(3) 改变乘法保留站数目为4,执行周期不变六、实验总结Tomasulo算法的基本思想是:只要操作数有效,就将其取到保留站,避免指令流出时才到寄存器中取数据。指令的执行结果直接送到等待数据的其它保留站中去。一条指令流出时,存放操作数的寄存器名被换成为对应于该寄存器保留站的名称。其优点是冲突检测和指令执行控制机制分开。计算的结果通过相关专用通路直接从功能部件进入对应的保留站进行缓冲,而不一定是写到寄存器。通过这次试验使我对Tomasulo算法的理解又加深了一步,这是一个经典的算法,它的思维很生活化,我们应当把这种生活上显而易见的事情和科研联系起来。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他资料

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922