微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MIPS 机器指令中操作码的输出编码器编号

如何解决MIPS 机器指令中操作码的输出编码器编号

如果我有一个有 8 个数据输入的编码器,它的最大输出数是多少?

我知道编码器是一个组合电路,它执行解码器的反向操作。它最多有 2^n 条输入线和“n”条输出线,因此它将来自 2^n 条输入的信息编码为 n 位代码。由于我有 8 个数据输入,输出将为 3,因为 2^3 = 8。这是正确的假设吗?

解决方法

让我们尝试区分 one hot(解码)行和使用多个位的编码的概念。这两个概念都是表示信息的一种方式,但它们的形式和典型用法是不同的。

One hot 是一种技术,其中最多一行是 1/true,所有其他行都是 0/false。这一条热线不被视为数字中的数字,而是单独的信号或条件(在任何给定时间只有其中一个可能为真)。这种形式在某些电路中特别有用,因为每条热线都可以激活其他一些硬件。 (硬件查找表 (LUT)、RAM 或 ROM 可以在其内部数组索引中使用 one-hot。)

编码是一种技术,我们使用 N 行作为 N 位数字中的数字,就像在保存数字的 CPU 寄存器中找到的那样,或者我们可以在文本中写入正常的二进制数。相比之下,在这种形式中,N 位中的任何一个都可以是 1(或 0)。

简单的编码器和解码器在编码形式(N 位数字)和一种热形式(2N 行)之间进行转换。

... 编码器 ... 最多有 2^n 条输入线和“n”条输出线

在您的语句中,2^n 行输入是一种热形式,而输出行是二进制(即编码)的正常数字。

输入(2^n 行)和输出(n 行)都能够准确表示2^n 不同的值!因此,解码/编码是来回的 1:1 映射。 (在这样的解码器的输入端有多个热点是错误的,而在允许这样做的系统中会发生不好的事情。)

在您所说的公式中:2N = V,并且 N = log2 ( V ) — N 代表位数(一位是二进制 数字),V代表可以用N位表示的值的数量。

(虽然这些公式中的 2 是 二进制 - 用 10 代替 2 来表示十进制数字与值的数量这些数字的数量相同的关系可以代表/存储/交流)。

在一种热形式中,我们需要 V 行,而在编码形式中,我们需要 N 行(作为位/数字)来表示相同的信息(V 个不同值之一)。

考虑您正在查找的数字是数字计数(如 N)还是值计数(如 V)。

请记住,在一种热形式中,我们需要为每个可能的值 V 一行(而在编码形式中,我们需要 N 位来表示 V 个可能的值)。


MIPS 处理器会将 6 位操作码字段输入某种查找表,以确定要为任何给定指令激活哪一组控制信号。 (操作码字段不是一个热字段,而是一个 N=6 位的位字段)。这些控制信号(也)不是热点,MIPS 指令解码器不是使用简单的解码器,而是在编码的操作码值和有效编码的控制信号之间转换的映射器。在此映射的索引中可以在内部使用一个热点。这种映射基本上是一个数组查找,其中索引是操作码,每个数组元素都有与其索引相适应的控制信号值。

(R-Type 指令都共享一个共同的操作码值,因此当 R-Type 操作码值存在时,会在 func 位字段上进行额外的查找/映射以生成正确的控制信号。)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。