假设两台机器的指令系统中,执行条件转移指令需2个时钟周期,而其它指令只需1个时钟周期。
CPUA:采用一条比较指令来设置相应的条件码,由紧随其后的一条转移指令对此条件码进行测试,以确定是否进行转移。显然实现一次条件转移要执行比较和测试两条指令。条件转移指令占总执行指令条数的20%。由于每条转移指令都需要一条比较指令,所以比较指令也将占20%。
CPUB采用比较功能和判别是否实现转移功能合在一条指令的方法,这样实现一条件转移就只需一条指令就可以完成(指令数变为原来的80%)。由于CPUB在转移指令中包含了比较功能,因此它的时钟周期就比CPUA要慢25%。
现在要问,采用不同转移指令方案的CPUA和CPUB,那个工作速度会更快些?
本题中需要比较两种CPU的性能,但是此处已经不再适合使用系统CPI作为比较指标,因为两种CPU的指令数和时钟周期不同,那么最佳的比较指标就是CPU的执行时间。
CPU的执行时间公式如下:
CPU执行时间=指令数×系统CPI×时钟周期
通过比较两种CPU的CPU执行时间,其中执行时间较短的一个方案更优。
两个CPU的指令数之比由题目条件已知,时钟周期之比同理,因此只需要确定系统CPI的比值即可确定CPU执行时间的比值,通过比值即可进行选择。因此本题的核心在于求解出两种CPU各自的系统CPI。
假设CPU(A)的指令数为IC,时钟周期为T。
则CPU(B)的指令数为0.8IC,时钟周期为1.25T。
接下来计算两种CPU的系统CPI:
CPU(A)的系统CPI=2×0.2+1×0.8=1.2
CPU(B)的系统CPI=2×(0.2/0.8)+1×(0.6/0.8)=1.25
所以可以根据公式计算两种CPU各自的执行时间:
CPU(A)的执行时间=IC×1.2×T
CPU(B)的执行时间=0.8IC×1.25×1.25T
由此可以判断CPU(A)的执行时间比CPU(B)更短,所以CPU(A)工作速度更快。