题目
某系统中浮点指令的比例30%,平均CPI为5。其中浮点平方操作占全部指令的比例4%CPI为20,其它指令的平均CPI约为1.25.分别把浮点平方操作和所有浮点操作[1]的CPI减为3,哪个方案好?
某系统中浮点指令的比例30%,平均CPI为5。其中浮点平方操作占全部指令的比例4%CPI为20,其它指令的平均CPI约为1.25.分别把浮点平方操作和所有浮点操作[1]的CPI减为3,哪个方案好?
题目解答
答案
首先,我们计算出原始系统中的浮点操作和整体操作的CPI。
设总指令数为I,浮点指令数为 0.3T,非浮点指令数为0.7I。
浮点平方操作数[2]占全部指令的比例为 4%,即 0.04T其CP为 20.
其他浮点操作数占全部指令的比例为0.3I-0.04T=0.26I。其CP为 5.
非浮点操作数占全部指令的比例为 0.7I。其CPI为1.25。
整体平均CPI为:



根据题目,我们有:


解方程得到:



所以,总指令数约为 2.72。
接下来,分别计算两种方案的新的平均CPI。
方案1:将浮点平方操作的CPI减为 3。



方案2:将所有浮点操作的CPI减为 3。



比较两种方案的新平均CPI,发现方案2的新平均CPI更低,因此方案2更好。
解析
考查要点:本题主要考查计算机体系结构中的CPI(每条指令周期数)计算及加权平均的应用,需要根据指令比例和CPI变化分析优化方案的性能。
解题核心思路:
- 明确各指令类型的比例与CPI:将浮点指令拆分为浮点平方操作和其他浮点操作,结合非浮点指令的比例,计算原始平均CPI。
- 分别计算两种优化方案的加权平均CPI:将浮点平方操作的CPI调整为3(方案1),或将所有浮点操作的CPI调整为3(方案2),比较两者对整体平均CPI的影响。
- 通过数值对比判断最优方案:平均CPI越低,系统性能越优。
破题关键点:
- 拆分浮点指令:浮点平方操作占总指令的4%,其他浮点操作占总指令的26%(30%总浮点指令减去4%平方操作)。
- 权重计算:所有指令的CPI需按比例加权求和,而非直接平均。
原始系统平均CPI计算
- 浮点平方操作:占4%,CPI=20 → $0.04 \times 20 = 0.8$
- 其他浮点操作:占26%(30%−4%),CPI=5 → $0.26 \times 5 = 1.3$
- 非浮点指令:占70%,CPI=1.25 → $0.7 \times 1.25 = 0.875$
- 总平均CPI:$0.8 + 1.3 + 0.875 = 2.975$
方案1:优化浮点平方操作
- 浮点平方操作:CPI调整为3 → $0.04 \times 3 = 0.12$
- 其他部分不变:总平均CPI = $0.12 + 1.3 + 0.875 = 2.3$
方案2:优化所有浮点操作
- 所有浮点操作:占30%,CPI调整为3 → $0.3 \times 3 = 0.9$
- 非浮点指令:仍为$0.7 \times 1.25 = 0.875$
- 总平均CPI:$0.9 + 0.875 = 1.775$
结论:方案2的平均CPI更低,性能更优。