问答题 假定在设计机器的指令系统时,对条件转移指令的设计有以下两种不同的选择:
(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 运行更快。