
答案
答:没有控制相关时流水线的平均CPI=1
存在控制相关时:无条件分支在第2个时钟周期结束时就被解析出来,而条件分支要到第3个时钟周期结束时才能被解析出来,这意味着分支目标地址可以在第2个时钟周期计算出来(因为无条件分支只需要知道分支目标即可),而分支条件要到第3个时钟周期才能判断出来。
因为题目未指定控制相关的解决方法,故假设采用暂停流水线、预测分支成功、预测分支失败这3种方法。每种方法的分析如下:
(1)若使用暂停流水线的策略,则对于条件分支,有2个额外的stall,对无条件分支,有1个额外的stall:
CPI = 1+20%*2+5%*1 = 1.45
加速比S=CPI/1 = 1.45
(2) 若使用预测分支成功策略,则对于不成功的条件分支,有2个额外的stall,对无条件分支和成功的条件分支,有1个额外的stall 1:
CPI = 1+20%*(60%*1+40%*2) +5%*1 = 1.33
加速比S=CPI/1 = 1.33
(3)若使用预测分支失败策略,则对于成功的条件分支,有2个额外的stall;对无条件分支,有1个额外的stall;对不成功的条件分支,其目标地址已经由PC 值给出,不必等待,所以无延迟:
CPI = 1+20%*(60%*2 + 40%*0) +5%*1 = 1.29
加速比S=CPI/1 = 1.29