第一章 计算机系统概述
1.3 计算机的性能指标
P17
解答:
主存储器容量为64K×32位(即存储字数×存储字长),所以这里我们可以得出存储字长为32位。
所以,指令字长=存储字长=机器字长=32位。
所以,
①MAR为地址寄存器,需要存放地址信息,需要能遍历到存储器的所有地址,而一共有64K(即2^16)个地址,所以以二进制表示需要16位才能表示完全这些地址,即MAR寄存器的位数为16。
②MDR为数据寄存器,需要存取数据或者指令信息,指令和数据的长度为32位,所以MDR寄存器的位数为32。
③PC为程序计数器,用于存放下一条指令的地址,所以在这里位数同MAR,为16位。
④IR为指令寄存器,用于存放指令,与指令字长有关,所以在这里的长度也为32位。
⑤机器字长通常指CPU内部用于整数运算的数据通路的宽度,所以这里用于计算的寄存器的位数都应等于机器字长的长度,即X操作数寄存器,ACC累加寄存器,MQ乘商寄存器的长度都应为32位。
其中,寄存器之间的数据通路如下:
①PC——>MAR,PC中存储了下一条指令的存储地址,利用这个地址找到存储器的下一条指令的存放位置。
②MDR——>IR,把对应位置的指令取到MDR之后,需要再传入到指令寄存器(IR)中用于后续处理。
③Ad(IR)——>MAR,指令寄存器存放的指令的数据部分指明了操作数的位置,将这个位置信息再存入MAR中,用于寻址操作数。
④MDR——>ACC,若为取数操作,将寻址得到的操作数(现已存入MDR中),再流入ACC中,用于下一步计算用。
⑤ACC——>MDR,若为存数操作,需要将上一步计算后的结果,流入MDR中,用于后续存入存储器之中。
⑥MDR——>X,若取得的操作数需要参与计算的指令,则需要把取得的数据流入操作数寄存器之中。