【发布时间】:2020-11-04 22:48:34
【问题描述】:
这是一个让我头疼一阵子的问题。任务是描述 xor $s0, $s1, $s2 应该具有的数据路径。我一直无法找到任何关于这条指令的数据路径应该是什么样子的信息。我知道它可能类似于任何其他 R 类型指令,但它没有在任何地方显示。关于如何实施它的任何帮助/提示?
【问题讨论】:
标签: assembly mips cpu-architecture xor
这是一个让我头疼一阵子的问题。任务是描述 xor $s0, $s1, $s2 应该具有的数据路径。我一直无法找到任何关于这条指令的数据路径应该是什么样子的信息。我知道它可能类似于任何其他 R 类型指令,但它没有在任何地方显示。关于如何实施它的任何帮助/提示?
【问题讨论】:
标签: assembly mips cpu-architecture xor
我知道它可能类似于任何其他 R 类型指令,但它没有在任何地方显示。
可能没有在任何地方显示,因为所有 R-Type 指令共享相同的数据路径。 XOR 是一条 R-Type 指令——与数据路径上的其他 R-Type 指令没有区别。
所有 R-Type 指令对数据路径有什么作用?它们根据指令中相应字段中的rs 和rt 寄存器编号从寄存器文件中获取值,并将这些值转发给ALU。他们获取 ALU 输出并将其重定向回寄存器,以将结果写入rd 寄存器号。 (并且它们指示处理器递增程序计数器以进行顺序执行。)
ALU Control 输出一个值告诉 ALU 执行 XOR 操作而不是其他一些 ALU 操作,例如 add、and、@ 987654329@。 ALU Control 意识到 ALUOp(来自主 Control 的信号)仅指示 R-Type 指令,因此 ALU Control 将 func 字段指令位解码为 ALU 的指示符以执行 XOR。
控制信号值的选择通常没有显示(图表),而是通常在一些增加数据路径和控制信号图表的表格中找到这些值。
【讨论】:
XOR控制信号,并激活(mux)xor函数的输出到主ALU输出(这也会关闭add/sub/and和其他ALU函数的输出..).