问答题
假定在设计机器的指令系统时,对条件转移指令的设计有以下两种不同的选择:
(1)CPU
A
采用一条比较指令来设置相应的条件码,然后测试条件码进行转移。
(2)CPU
B
在转移指令中包含比较过程。
在两种CPU中,条件转移指令需要2个时钟周期,而其他的指令只需1个时钟周期。又假设在CPU
A
上,要执行的指令中只有20%是条件转移指令,由于每条条件指令都需要一条比较指令,因此,比较指令也占用20%。由于CPU
A
在转移时不需要比较,因此假设它的时钟周期时间比CPU
B
快1.25倍。问:
(1)哪一个CPU更快?
(2)如果CPU
A
的时钟周期时间仅仅比CPU
B
快1.1倍,哪个CPU更快?
【正确答案】
【答案解析】(1)占用2个时钟周期的条件转移指令占总数的20%,剩下的指令占用一个时钟周期。
所以
CPIA=0.2×2+0.8×1=1.2
若将程序执行过程中所处理的指令数记为IC,则总CPUA时间
TC
PUA
=IC
A
×CPI
A
×时钟周期
A
=IC
A
×1.2×时钟周期A
根据假设有
时钟周期
B
=1.25×时钟周期
A
在CPU
B
中没有独立的比较指令,所以CPU
B
的程序量为CPU
A
的80%,转移指令的比例为
20%÷80%=25%
这些转移指令占用2个时钟周期,而其余的75%指令只占用1个时钟周期,因此有
CPI
B
=0.25×2+0.75×1=1.25
由于CPU
B
中没有比较指令,所以IC
B
=0.8×IC
A
则总CPU
B
时间
TC
PUB
=IC
B
×CPI
B
×时钟周期
B
=0.8×IC
A
×1.25×1.25×时钟周期
A
=IC
A
×1.25×时钟周期
A
所以,尽管CPUB的执行指令条数较少,但因为CPU
A
有着更短的时钟周期,所以比CPU B快。
(2)如果CPU
A
的时钟周期时间仅仅比CPU
B
快1.1倍,则:
时钟周期
B
=1.1×时钟周期
A
则总CPU
B
时间
TCPuB=IC
B
×CPI
B
×时钟周期
B
=0.8×IC
A
×1.25×1.1×时钟周期A=IC
A
×1.1×时钟周期
A
因此,CPU
B
由于执行更少的指令条数,比CPU
A
运行更快。