在完成解码指令之前,控制硬件如何知道要读取哪些寄存器?

时间:2017-01-09 18:24:47

标签: computer-science cpu-architecture

通过Hamacher进行计算机管理。 ,我开始了解指令的基本步骤和操作。

以下是汇编代码

  

ADD RC,RA,RB

指令如下 - :

1.Fetch the Instruction and increament the PC.
2.Decode the instruction and read Registers RA and RB
3.Compute [RA]+[RB](Executing Instruction)
4.Load the result into destination register RC

在完成解码指令之前,控制硬件如何知道要读取哪些寄存器?

给出As-的解释: 这是可能的,因为源寄存器地址是使用所有指令中相同的位位置指定的

我没有得到它。如果有人请分享他们的知识会有所帮助。!!

1 个答案:

答案 0 :(得分:2)

在机器级别,每条指令只是一个或几个字节,用于编码PC需要执行的操作。这些数据的某些位确定要运行的操作(加,减,移位,读等),其他位决定使用哪些操作数。简单的示例说明for MIPS32 architecture

Instr:       add $d,$s,$t
Bit pattern: 000000ss sssttttt ddddd--- --100000
Instr:       sub $d,$s,$t
Bit pattern: 000000ss sssttttt ddddd--- --100010
Instr:       and $d,$s,$t
Bit pattern: 000000ss sssttttt ddddd--- --100100

如您所见,无论操作类型如何,编码操作数的位总是在同一位置,因此CPU可以在完成解码操作类型之前开始准备操作数据。不知道MIPS是否也使用这种方法,但它有助于说明它。