为什么 MIPS 中“opcode”字段和“funct”字段分开?

问题描述 投票:0回答:2

MIPS ISA 有一个

R
类型指令,并且
R
指令在其前 6 位有一个
opcode
字段,在其后 6 位有一个
funct
字段。那么ISA为什么要这样设计呢?将它们组合成一个 12 位字段怎么样?

mips cpu-architecture instruction-set opcode instruction-encoding
2个回答
3
投票

我的想法是这三种指令共享一个6位操作码的前缀。对于 R 和 I 类型,接下来的 5 位决定源寄存器。如果我们将 R 指令的操作码和函数结合起来,R 和 I 之间的指令格式不太一致,这可能会使处理器的设计变得复杂。


0
投票

如果将它们组合成12位文件怎么样?

由于操作码对于 MIPS 中的某些操作是相同的,如果您更改

funct
,则无法区分指令执行的操作,例如,考虑以下 add(R,0,32)
add
具有操作码
0
funct
32

还要考虑 and(R,0,36)
and
也有操作码
0
但不同的
funct
在这种情况下
36
这意味着它是 and
AND
操作。

查看 MIPS 参考表。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.