体系结构复习-Part 2-Cache + 指令级并行( 二 )


视频介绍(科学上网)
上述视频讲得很清楚了 。记分牌算法的核心在于三张表:
记分牌算法保证每个周期只要某指令没有结构冲突以及不存在WAW冲突(即其他正在执行的指令的目的寄存器与当前指令的目的寄存器不同)就能够发射该指令
有一点不一样,教材上对Rj, Rk的修改是若源操作数被读走后也应表述为no
算法
基本思想为寄存器换名
2.4 动态分支预测技术
分支预测器由两个操作构成,它们分别是分支预测()与状态更新()
2.4.1 分支历史表(Table)
适用范围:
判定分支是否成功所需时间大于确定分支目标地址所需的时间
由于前面的流水线判定分支成功与计算分支目标地址都是在ID段完成的,因此BHT方法不会给其带来明显的好处
2-bit BHT状态转换图如下:
2.4.2 高级分支预测技术2.4.3 分支目标缓冲器()
BTB的目标是将分支开销降为0
结构如下:
分析BTB带来的额外延迟:
指令在BTB中?预测实际情况额外开销

成功
成功

成功
失败

失败
成功

失败
失败
注:BTB的修改将带来额外一个周期的开销,而当预测与实际不符时,我们需要对BTB进行修改,因此预测结果不正确时需要引入额外2个周期开销
2.4.4 多发射
每个周期发射多条指令,CPI < 1
【体系结构复习-Part 2-Cache + 指令级并行】MIPS处理机每个时钟周期发射两条指令:1条整数型指令 + 1条浮点操作指令,需要增设浮点寄存器读写端口