电路解码所需的最小输入位数

问题描述

我正在学习计算机体系结构,我正在阅读有关编码器和解码器的内容。在 MIPS 处理器中,操作码有 6 位。我想知道构建解码器来解码操作码需要多少输入位?我知道解码器是一种组合电路,可将二进制信息从 n 条输入线转换为最多 2^n 条独特的输出线。 知道操作码是 6 位,这是否意味着我只需要 3 位,因为 2^3 是 8,理论最大输出数将是 8?

解决方法

机器指令字中的操作码解码过程的输入,可能涉及同名的数字逻辑电路,一个binary decoder

6 位操作码字段有 2^6 个可能的值,因此您可能希望解码为 2^6 个可能的不同输出模式(内部控制信号)。

有关一些常见指令的不完整表格,请参阅 https://en.wikibooks.org/wiki/MIPS_Assembly/Instruction_Formats#Opcodes。 (缺少xori,可能还有其他人)。

https://uweb.engr.arizona.edu/~ece369/Resources/spim/MIPSReference.pdf 还列出了另一个可用 MIPS 操作码子集的操作码详细信息。 (例如缺少 bgezalbltz。)

注意所有 R 类型指令共享相同的操作码,func 字段用于选择操作。但是 I 型指令确实对操作码字段使用不同的值,为最多 2 个寄存器和 16 位立即数留下足够的位。 MIPS CPU 必须识别超过 8 个唯一的操作码字段值。