考查:分支缓冲命中和分支预测

题目1:假设有一条长流水线,仅仅对条件转移指令使用分支目标缓冲。假设分支预测错误的开销为 4 个时钟周期,缓冲不命中的开销为 3 个时钟周期。
假设:命中率为 90%,预测精度为 90%,分支频率为 15%,没有分支的基本 CPI 为 1。

(1) 求程序执行的 CPI。
(2) 相对于采用固定的 2 个时钟周期延迟的分支处理,哪种方法程序执行速度更快


解:
(1)假设总指令数量是100条,则分支指令的数量是15条
我们需要考虑,命中之后,还要预测正确才行

缓冲命中不预测准确的开销+不命中的开销

所以,额外的 C P I = 0.15 ∗ ( 0.9 ∗ 0.1 ∗ 4 + 0.1 ∗ 3 ) = 0.099 CPI=0.15*(0.9*0.1*4+0.1*3)=0.099 CPI=0.15(0.90.14+0.13)=0.099
C P I = 1.099 CPI=1.099 CPI=1.099

(2)额外的开销 C P I = 0.15 ∗ 2 = 0.3 CPI=0.15*2=0.3 CPI=0.152=0.3
更大,所以第一种更好。


考查指令的调度思想

题目2: 对于两路超标量处理器,从存储器取数据有两拍附加延迟,其它操作均有 1 拍附加延迟,对于下列代码,请按要求进行指令调度。
在这里插入图片描述
(1) 假设两路功能部件中同时最多只有一路可以是访问存储器的操作,同时也最多只有 一路可以是运算操作,指令顺序不变。
(2) 假设两路功能部件均可以执行任何操作,指令顺序不变。
(3) 假设指令窗口足够大,指令可以乱序(out-of-order)流出,两路功能部件均可以执行任何操作


解:
(1)题目要求:

  • 顺序不变(也就是说我们的指令不能跳着来输出,必须按照顺序)
  • 只能是一路运算器,一路是存储器。也就是说,当某一路正在进行存储或者运算操作还没结束的时候不能更换。
  • 注意指令的相关冲突,比如LW R7之后才能进行ADD R9,R4,R7那条指令,所以我们不能马上在第二路进行安排

调度表如下:
在这里插入图片描述
(2)题目要求:

  • 顺序不变
  • 两路可以执行任何操作
    在这里插入图片描述
    LD 后面可以直接就进行SUB指令,因为等待延迟只是为了避免发生冲突,并不是因为该路拥塞。

(3)题目要求:

  • 顺序可变化
  • 两路可以执行任何操作

这个时候我们先调整顺序出最优情况,再按(2)来写。首先我们先找出相关的对子:
L W 1 → A D D LW_1\rightarrow ADD LW1ADD
L W 2 → A D D LW_2\rightarrow ADD LW2ADD
L W 1 → M U L 2 LW_1\rightarrow MUL_2 LW1MUL2
L W 2 → M U L 2 LW_2\rightarrow MUL_2 LW2MUL2
S U B → S W 1 SUB\rightarrow SW_1 SUBSW1
M U L 2 → S W 3 MUL_2\rightarrow SW_3 MUL2SW3

第一路第二路
L W 1 LW_1 LW1 L W 2 LW_2 LW2
L D LD LD S U B SUB SUB
M U L 1 MUL_1 MUL1 S W 2 SW_2 SW2
A D D ADD ADD M U L 2 MUL_2 MUL2
S W 1 SW_1 SW1
S W 3 SW_3 SW3

考查超标量处理机,超长字处理机,超流水线处理机

题目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

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐