考查:分支缓冲命中和分支预测
题目1:假设有一条长流水线,仅仅对条件转移指令使用分支目标缓冲。假设分支预测错误的开销为 4 个时钟周期,缓冲不命中的开销为 3 个时钟周期。
假设:命中率为 90%,预测精度为 90%,分支频率为 15%,没有分支的基本 CPI 为 1。
(1) 求程序执行的 CPI。
(2) 相对于采用固定的 2 个时钟周期延迟的分支处理,哪种方法程序执行速度更快
解:
(1)假设总指令数量是100条,则分支指令的数量是15条
我们需要考虑,命中之后,还要预测正确才行
缓冲命中不预测准确的开销+不命中的开销
所以,额外的CPI=0.15∗(0.9∗0.1∗4+0.1∗3)=0.099CPI=0.15*(0.9*0.1*4+0.1*3)=0.099CPI=0.15∗(0.9∗0.1∗4+0.1∗3)=0.099
总CPI=1.099CPI=1.099CPI=1.099
(2)额外的开销CPI=0.15∗2=0.3CPI=0.15*2=0.3CPI=0.15∗2=0.3
更大,所以第一种更好。
考查指令的调度思想
题目2: 对于两路超标量处理器,从存储器取数据有两拍附加延迟,其它操作均有 1 拍附加延迟,对于下列代码,请按要求进行指令调度。

(1) 假设两路功能部件中同时最多只有一路可以是访问存储器的操作,同时也最多只有 一路可以是运算操作,指令顺序不变。
(2) 假设两路功能部件均可以执行任何操作,指令顺序不变。
(3) 假设指令窗口足够大,指令可以乱序(out-of-order)流出,两路功能部件均可以执行任何操作
解:
(1)题目要求:
- 顺序不变(也就是说我们的指令不能跳着来输出,必须按照顺序)
- 只能是一路运算器,一路是存储器。也就是说,当某一路正在进行存储或者运算操作还没结束的时候不能更换。
- 注意指令的相关冲突,比如LW R7之后才能进行ADD R9,R4,R7那条指令,所以我们不能马上在第二路进行安排
调度表如下:

(2)题目要求:
- 顺序不变
- 两路可以执行任何操作

LD 后面可以直接就进行SUB指令,因为等待延迟只是为了避免发生冲突,并不是因为该路拥塞。
(3)题目要求:
- 顺序可变化
- 两路可以执行任何操作
这个时候我们先调整顺序出最优情况,再按(2)来写。首先我们先找出相关的对子:
LW1→ADDLW_1\rightarrow ADDLW1→ADD
LW2→ADDLW_2\rightarrow ADDLW2→ADD
LW1→MUL2LW_1\rightarrow MUL_2LW1→MUL2
LW2→MUL2LW_2\rightarrow MUL_2LW2→MUL2
SUB→SW1SUB\rightarrow SW_1SUB→SW1
MUL2→SW3MUL_2\rightarrow SW_3MUL2→SW3
| 第一路 | 第二路 |
|---|---|
| LW1LW_1LW1 | LW2LW_2LW2 |
| LDLDLD | SUBSUBSUB |
| MUL1MUL_1MUL1 | SW2SW_2SW2 |
| ADDADDADD | MUL2MUL_2MUL2 |
| SW1SW_1SW1 | |
| SW3SW_3SW3 |
考查超标量处理机,超长字处理机,超流水线处理机
题目3: 设指令流水线由取指令、分析指令和执行指令 3 个部件构成,每个部件经过的时间为 △t,连续流入 12 条指令。分别画出标量流水处理机以及 ILP 均为 4 的超标量处理机、超长 指令字处理机、超流水处理机的时空图,并分别计算它们相对于标量流水处理机的加速比。
解:
解:
标量流水线:

多指令流出流水线的时空图:
ILP=4
超标量处理机:

超长指令处理机:
超长指令字流水线,把四条指令合并成一条长指令,所以只有三条长指令。
超流水线处理机:

把每个块分为四分。
问加速比,就是求:改进前时间/改进后的时间
改进前的时间(标量流水线):14Δ\DeltaΔt
超标量处理机的时间:5Δ\DeltaΔ t
超长指令字处理机的时间:5Δ\DeltaΔ t
超流水线处理机的时间:5.75Δ\DeltaΔ t
加速比分别是:2.8和2.435
本文探讨了计算机体系结构中的分支预测技术,包括分支目标缓冲的命中率和预测精度对程序执行效率的影响,以及超标量处理器中指令调度的优化策略。通过具体案例分析,展示了不同方法对CPI和处理速度的影响。
4263

被折叠的 条评论
为什么被折叠?



