DECEMBER 15, 2024

<aside> 🔖 有点抽象,赶紧开补。知识点不完整,主要记录一些难点/题目。

</aside>

Branch Predictor

1-bit 分枝预测就是记录上一次最终是否跳转,然后一直预测上一次的答案。这样一个循环平均错误率就是 $\frac 2n$。

2-bit 分枝预测就是一个状态机:

image.png

这样循环错误率就是 $\frac 1n$。

Alternative 2-bit predictor:

image.png

两位的效果已经很好,资源开销不小,因此我们一般不会再提升位数。

Correlating Predictor

根据上一次结果,直接给出下一次结果。4 种情况:

image.png

ScoreBoard

做 Lab 6 时候的一些随笔,加深理解。

参考文章:这里,我也是参考这个知乎文章理解的。

image.png

四个阶段(大部分文字是转载的,看懂每个阶段干啥就行,后面详细讲):

2.1、发射(IS)

对指令进行解码,并观察记分牌信息,主要观察各个功能部件的占用情况,和寄存器堆的写情况,以此来判断是否可以把解码得到的信息存进对应的部件寄存器。如果指令对应的功能部件空闲且指令要写的目标寄存器没有别的指令将要写(这是为了解决 WAW 冒险),那么阶段结束的时候,就可以把指令信息存进部件寄存器,同时改写记分牌,把指令相关信息进入记分牌。