《计算机系统结构课内实验》实验报告班级:计算机15 班姓名 :高君宇学号: 2110505112 日期: 2014.5.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 预测器作更新。它有四个参数,前三个是一级表长度,二级表长度,历史寄存器宽度,最后一个是异或标志。如果为1,则将历史寄存器的值与当前分支指令地址异或,用其结果再去索引二级模式表。comb 方式则组合了以上两种方法,它再加入了一个meta 表,这个表类似bimod 的预测表,只是它预测的是采取bimod 还是 2-level ,也采用 2-bit 预测器,被采取的预测方法被定为第一方向,未被采取的定为第二方向。 更新时, 如果第一方向与第二方向不同则更新meta 表,否则只更新两种方法各自的表即可。它共有三组参数,前两组即bimod 和 two-level 的参数,第三组是关于meta 表长度的说明。至于 BTB 的更新与 cache 的更新方式相同。四、实验步骤1.在 linux 的环境下,进入到simpleScalar 文件的根目录;2.调整好命令的格式并...