多发射数据通路
多发射数据通路
指令级并行的关键技术
指令流水线: 时间重叠
多发射: 空间重复
乱序执行(有序结束): 充分利用资源
动态调度:前面指令因相关而等待时,后面的可继续前进。
转移猜测:在转移条件确定前,猜测某个分支取指并执行
非阻塞访存:提高访存指令执行效率,减少访存阻塞
指令缓存(保留站)结构
- 独立保留站:每个功能部件一个保留站
- 分组保留站:多个功能部件共享保留站
- 全局保留站:所有功能部件共享保留站



寄存器与保留站的关系
寄存器重命名方法
双重作用
- 例外或转移猜测错误时取消后面操作
- 解决WAR和WAW相关
核心思想
一个操作写寄存器时重命名到其他寄存器
一个操作结束时再写到结构寄存器


使用物理寄存器堆的重命名算法执行流程:
例子
Yeh和patt

两层自适应预测器组合情况


分支别名干扰问题
无论BHR和PHT表如何增大,效果也不是很明显
主要原因是不同分支地址访问同一个PHT,造成分支干扰
gshare和gselect
gselect使用地址拼接,gshare使用hash

Agree分支预测

这里BTB是为了减少猜测延迟,BTB就是一个查找表本质上是一个cache,这张表只有一个输入key:pc,输出转移目标地址。
需要进行地址全相等比较,直接预测PC值而不是根据指令内容计算 ,失效时进行替换
BTB的BHT里面填的是taken/not taken的倾向值。PHT里面存的是同意BHT的判断or不同意BHT的判断