多发射数据通路

多发射数据通路

指令级并行的关键技术

  • 指令流水线: 时间重叠

  • 多发射: 空间重复

  • 乱序执行(有序结束): 充分利用资源

  • 动态调度:前面指令因相关而等待时,后面的可继续前进。

  • 转移猜测:在转移条件确定前,猜测某个分支取指并执行

  • 非阻塞访存:提高访存指令执行效率,减少访存阻塞

指令缓存(保留站)结构

  • 独立保留站:每个功能部件一个保留站
  • 分组保留站:多个功能部件共享保留站
  • 全局保留站:所有功能部件共享保留站
独立保留站
分组保留站
全局保留站

寄存器与保留站的关系

寄存器重命名方法

双重作用

  • 例外或转移猜测错误时取消后面操作
  • 解决WAR和WAW相关

核心思想

  • 一个操作写寄存器时重命名到其他寄存器

  • 一个操作结束时再写到结构寄存器

重命名方法
物理寄存器到逻辑寄存器映射重命名

使用物理寄存器堆的重命名算法执行流程:

例子

Yeh和patt

分类

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

组合情况
具体结构

分支别名干扰问题

无论BHR和PHT表如何增大,效果也不是很明显

主要原因是不同分支地址访问同一个PHT,造成分支干扰

gshare和gselect

gselect使用地址拼接,gshare使用hash

0

Agree分支预测

原理

这里BTB是为了减少猜测延迟,BTB就是一个查找表本质上是一个cache,这张表只有一个输入key:pc,输出转移目标地址。

需要进行地址全相等比较,直接预测PC值而不是根据指令内容计算 ,失效时进行替换

BTB的BHT里面填的是taken/not taken的倾向值。PHT里面存的是同意BHT的判断or不同意BHT的判断