《计算机系统结构课内实验》实验报告班级:计算机15 班姓名 :高君宇学号: 2110505112 日期: 2014
7 动态分支预测实验一、实验目的及要求1
了解掌握动态分支与推断执行技术对流水线性能的改进效果2
了解动态分支预测的基本技术;3
了解推断执行的基本过程;4
比较各种分支预测技术的性能
二、实验环境Linux 、SimpleScalar Tool Set、SPEC 测试程序三、实验内容利用 SimpleScalar仿真器中的分支预测仿真程序sim-pred 运行所提供的三个 benchmark程序,分别采用五种不同的分支预测方法, 即 bimod方式,two-level adaptive 方式, always taken 方式, always not taken 方式, comb方式,并对前两种分别使用下表中两种参数配置;分析仿真器输出的关于分支预测的统计参数集,填写表格,并对各仿真器的能力给出相应说明
命令格式为:
/sim-bpred {-option} executable_benchmark – argument 对于三种动态方法,分别说明如下:bimod 是最普通的,即采用一个 2bit 宽的分支方向预测表, 按分支地址查找,2bit 分支预测器的判断和更新与课本上的一致
这种方式只有一个参数, 就是分支预测表的长度
2-level 要复杂一些,它采用两级表格式,第一级是分支历史表,存放各组分支历史寄存器的值,第二级是全局/局部分支模式表,(全局或局部应是由表长相对于分支历史寄存器的长决定),它存放各分支历史模式的2bit 预测器
在判断时用当前分支指令对应的历史寄存器值去索引二级表得到相应预测器值
更新时,把当前分支的方向左移入历史寄存器,并对使用过的2bit 预测器作更新
它有四个参数,前三个是一级表长度,二级表长度,历史寄存器宽度