假设计算机M的指令集中包含A、B、C三类指令,其CPI分别为2、3、2。某个程序P在M上被编译成两个不同的目标代码序列P1和P2,P1所含A、B、C三类指令的条数分别为7、4、3,P2所含A、B、C三类指令的条数分别为5、4、6。 请问:哪个代码序列指令条数少?哪个执行速度快?它们的CPI分别是多少?
P1代码序列指令条数为:7+4+3=14,P2代码序列指令条数为:5+4+6=15,所以,P1的指令条数少P1的时钟周期数为:7×2+4×3+3×3=35,P2的时钟周期数为:5×2+4×3+6×2=34,所以,p1比p2快,CPI=程序总时钟周期数/程序所含指令条数因此,p1的CPI=35/14=2.5,P2的CPI=34/15=2.27。