| 简要分析:
1)假定在M1和M2上都是用C1编译器,则
M1上的CPI为:4x30%+6x50%+8x20%=5.8
M2上的CPI为:2x30%+4x50%+3x20%=3.2
M1的时钟频率为400MHz,M2的时钟频率为200MHz,所以:
M1上一条指令的平均执行时间为:5.8x1/400MHz=5.8x2.5ns=14.5ns
M2上一条指令的平均执行时间为:3.2x1/200MHz=3.2x5ns=16ns
M1的性能和M2的性能之比为:16 ns / 14.5 ns =1.1
所以,M1的生产商可以声称M1的性能是M2的1.1倍。
2)假定在M1和M2上都是用C2编译器,则M1上的CPI为:
M1上的CPI为:4x30%+6x20%+8x50%=6.4
M2上的CPI为:2x30%+4x20%+3x50%=2.9
M1的时钟频率为400MHz,M2的时钟频率为200MHz,所以:
M1上一条指令的平均执行时间为:6.4x1/400MHz=6.4x2.5ns=16ns
M2上一条指令的平均执行时间为:2.9x1/200MHz=2.9x5ns=14.5ns
M2的性能和M1的性能之比为:16 ns / 14.5 ns =1.1
所以,M2的生产商可以声称M2的性能是M1的1.1倍。
3) 根据上述分析,可知:如果购买了M1,则编译器应选择C1;如果购买了M2,则编译器应选择C2。
4) 如果所有其他指标都相同(包括价格),那么应选择M1还是M2呢?
从上述1)和2)分析结果来看,用生产商各自自己的编译器无法衡量M1和M2的好坏,所以借助第三方提供的编译器来考察。
M1上的CPI为:4x50%+6x30%+8x20%=5.4
M2上的CPI为:2x50%+4x30%+3x20%=2.8
M1的时钟频率为400MHz,M2的时钟频率为200MHz,所以:
M1上一条指令的平均执行时间为:
5.4x1/400MHz=5.4x2.5ns=13.5ns
M2上一条指令的平均执行时间为:2.8x1/200MHz=2.8x5ns=14ns
M1的性能和M2的性能之比为:14 ns / 13.5 ns =1.04
所以,用第三方编译器说明M1的性能是M2的1.04倍。 |