-1
MIPS ISAは 'R'タイプ命令を持ち、 'R'命令は最初の6ビットに 'opcode'フィールドを持ち、最後の6ビットに 'funt'フィールドを持っています。では、なぜISAはこのように設計されていますか?それらを12ビットのフィールドに結合するのはどうですか?なぜMIPSでは 'opcode'フィールドと 'funct'フィールドが離れていますか?
MIPS ISAは 'R'タイプ命令を持ち、 'R'命令は最初の6ビットに 'opcode'フィールドを持ち、最後の6ビットに 'funt'フィールドを持っています。では、なぜISAはこのように設計されていますか?それらを12ビットのフィールドに結合するのはどうですか?なぜMIPSでは 'opcode'フィールドと 'funct'フィールドが離れていますか?
これらを12ビットで組み合わせるとどうでしょうか?
オペコードは、MIPSで、いくつかの操作のために同じであり、あなたがfunct
を変更する場合は、命令は、例えば以下の(R、0,32)を追加考えるんどの操作を区別することはできません以上のでadd
は、オペコードを持っています0
と32
funct
そしてまたそれを考えると、(Rは、0.36)and
もオペコード0
が、それはとAND
操作だ意味し、この場合36
でfunct
異なるがあります。
MIPSリファレンスシートを確認してください。
なぜ12ビットに結合する必要がありますか? –
すべての命令は共通点からデコードする必要があるためです。 12ビットのオペコードは、他の非R型のためにあまりにも多くのビットをチューニングして、他のもののために使用します。 (例えば、)「j」および「jal」命令は、残りのビットを使用してアドレスを指定する(すなわち、機能フィールドを持たない)。オペコードをデコードした後、各命令は自由に残りの26ビットを解釈する。即時インスタント(例えば、「ori」)は、16ビットの即値オペランドの一部として最後の6を使用する –