假设计算机M的指令集中包含A、B、C三类指令,其CPI分别为1、2、4。某个程序P在M上被编译成两个不同的目标代码序列P1和P2,P1所含A、B、C三类指令的条数分别为8、2、2,P2所含A、B、C三类指令的条数分别为2、5、3。请问:哪个代码序列指令条数少?哪个执行速度快?它们的CPI分别是多少?
假设计算机M的指令集中包含A、B、C三类指令,其CPI分别为1、2、4。某个程序P在M上被编译成两个不同的目标代码序列P1和P2,P1所含A、B、C三类指令的条数分别为8、2、2,P2所含A、B、C三类指令的条数分别为2、5、3。请问:哪个代码序列指令条数少?哪个执行速度快?它们的CPI分别是多少?
【正确答案】:P1和P2的指令条数分别为12和10,所以,P2 的指令条数少。P1的时钟周期数为8X1 + 2X2 + 2X4 = 20。 P2的时钟周期数为2X1 + 5X2 + 3X4 = 24。 因为两个指令代码序列在同一台机器上运行, 所以时钟周期一样,故时钟周期数少的代码序 列所用的时间短、执行速度快。显然,P1比 P2快。CPI=程序总时钟周期数:程序所含指令条数, 因此,P1 的 CPI 为 20/12Q1. 67. P2 的 CPI 为 24/10 = 2.40。
Top