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

How can the control hardware know which registers to read before it completes decoding the instruction?

在通过 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

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

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

我不明白。如果有人分享他们的知识,这将很有帮助。!!

在机器层面上,每条指令只是一个或几个字节编码 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 是否也使用这种方法,但它有助于说明它。