考查:分支缓冲命中和分支预测
题目1:假设有一条长流水线,仅仅对条件转移指令使用分支目标缓冲。假设分支预测错误的开销为 4 个时钟周期,缓冲不命中的开销为 3 个时钟周期。
假设:命中率为 90%,预测精度为 90%,分支频率为 15%,没有分支的基本 CPI 为 1。
(1) 求程序执行的 CPI。
(2) 相对于采用固定的 2 个时钟周期延迟的分支处理,哪种方法程序执行速度更快
解:
(1)假设总指令数量是100条,则分支指令的数量是15条
我们需要考虑,命中之后,还要预测正确才行
缓冲命中不预测准确的开销+不命中的开销
所以,额外的
总
(2)额外的开销
更大,所以第一种更好。
考查指令的调度思想
题目2: 对于两路超标量处理器,从存储器取数据有两拍附加延迟,其它操作均有 1 拍附加延迟,对于下列代码,请按要求进行指令调度。
(1) 假设两路功能部件中同时最多只有一路可以是访问存储器的操作,同时也最多只有 一路可以是运算操作,指令顺序不变。
(2) 假设两路功能部件均可以执行任何操作,指令顺序不变。
(3) 假设指令窗口足够大,指令可以乱序(out-of-order)流出,两路功能部件均可以执行任何操作
解:
(1)题目要求:
- 顺序不变(也就是说我们的指令不能跳着来输出,必须按照顺序)
- 只能是一路运算器,一路是存储器。也就是说,当某一路正在进行存储或者运算操作还没结束的时候不能更换。
- 注意指令的相关冲突,比如LW R7之后才能进行ADD R9,R4,R7那条指令,所以我们不能马上在第二路进行安排
调度表如下:
(2)题目要求:
- 顺序不变
- 两路可以执行任何操作
LD 后面可以直接就进行SUB指令,因为等待延迟只是为了避免发生冲突,并不是因为该路拥塞。
(3)题目要求:
- 顺序可变化
- 两路可以执行任何操作
这个时候我们先调整顺序出最优情况,再按(2)来写。首先我们先找出相关的对子:
第一路 | 第二路 |
---|---|
考查超标量处理机,超长字处理机,超流水线处理机
题目3: 设指令流水线由取指令、分析指令和执行指令 3 个部件构成,每个部件经过的时间为 △t,连续流入 12 条指令。分别画出标量流水处理机以及 ILP 均为 4 的超标量处理机、超长 指令字处理机、超流水处理机的时空图,并分别计算它们相对于标量流水处理机的加速比。
解:
解:
标量流水线:
多指令流出流水线的时空图:
ILP=4
超标量处理机:
超长指令处理机:
超长指令字流水线,把四条指令合并成一条长指令,所以只有三条长指令。
超流水线处理机:
把每个块分为四分。
问加速比,就是求:改进前时间/改进后的时间
改进前的时间(标量流水线):14t
超标量处理机的时间:5 t
超长指令字处理机的时间:5 t
超流水线处理机的时间:5.75 t
加速比分别是:2.8和2.435