问题 问答题

假定在设计机器的指令系统时,对条件转移指令的设计有以下两种不同的选择:
(1)CPUA采用一条比较指令来设置相应的条件码,然后测试条件码进行转移。
(2)CPUB在转移指令中包含比较过程。
在两种CPU中,条件转移指令需要2个时钟周期,而其他的指令只需1个时钟周期。又假设在CPUA上,要执行的指令中只有20%是条件转移指令,由于每条条件指令都需要一条比较指令,因此,比较指令也占用20%。由于CPUA在转移时不需要比较,因此假设它的时钟周期时间比CPUB快1.25倍。问:
(1)哪一个CPU更快
(2)如果CPUA的时钟周期时间仅仅比CPUB快1.1倍,哪个CPU更快

答案

参考答案:(1)占用2个时钟周期的条件转移指令占总数的20%,剩下的指令占用一个时钟周期。
所以
CPIA=0.2×2+0.8×1=1.2
若将程序执行过程中所处理的指令数记为IC,则总CPUA时间
TCPUA=ICA×CPIA×时钟周期A=ICA×1.2×时钟周期A
根据假设有
时钟周期B=1.25×时钟周期A
在CPUB中没有独立的比较指令,所以CPUB的程序量为CPUA的80%,转移指令的比例为
20%÷80%=25%
这些转移指令占用2个时钟周期,而其余的75%指令只占用1个时钟周期,因此有
CPIB=0.25×2+0.75×1=1.25
由于CPUB中没有比较指令,所以ICB=0.8×ICA
则总CPUB时间
TCPUB=ICB×CPIB×时钟周期B
=0.8×ICA×1.25×1.25×时钟周期A=ICA×1.25×时钟周期A
所以,尽管CPUB的执行指令条数较少,但因为CPUA有着更短的时钟周期,所以比CPU B快。
(2)如果CPUA的时钟周期时间仅仅比CPUB快1.1倍,则:
时钟周期B=1.1×时钟周期A
则总CPUB时间
TCPuB=ICB×CPIB×时钟周期B
=0.8×ICA×1.25×1.1×时钟周期A=ICA×1.1×时钟周期A
因此,CPUB由于执行更少的指令条数,比CPUA运行更快。

单项选择题
单项选择题