假设计算机M的指令集中包含A、B、C三类指令,其CPI分别为1、3、5。某个程序P在M上被编译成两个不同的目标代码序列P1和P2

假设计算机M的指令集中包含A、B、C三类指令,其CPI分别为1、3、5。某个程序P在M上被编译成两个不同的目标代码序列P1和P2,P1所含A、B、c三类指令的条数分别为10、4、6,P2所含A、B、C三类指令的条数分别为8、5、9。请问:哪个代码序列指令条数少?哪个执行速度快?它们的CPI分别是多少?
【正确答案】:(1) P1代码序列指令条数为: 10+4+6=20
P2代码序列指令条数为: 8+5+9=22
所以,P1代码序列指令条数少。
(2) P1的时钟周期数为: 10×1+4×3+6×5=52
P2的时钟周期数为: 8×1+5×3+9×5=68
由上可知,P1比P2快。
(3) CPI=程序时钟周期数÷程序所含指令条数
P1的CPI=52÷20=2.6
P2的CPI=68÷22=3.1