【问题标题】:Encoder number of outpus for opcode within a MIPS machine instructionMIPS 机器指令中操作码的输出编码器数量
【发布时间】:2021-09-05 08:57:56
【问题描述】:

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

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

【问题讨论】:

  • 它不是最大个输出数,它是准确(或最小)数。否则它是正确的。不确定它与 MIPS 或一般编程有何关系。
  • 它用于 MIPS 处理器中的操作码。
  • MIPS 机器指令中没有任何 3 位字段。就像your last question 一样,你把它倒过来了。除非您实际上是在谈论基于 2^6 种不同可能指令之一对操作码字段进行编码。但是您通常不会使用数字逻辑编码器来生成 MIPS 指令。通常机器代码是由软件生成的,例如使用哈希表将 xori 之类的文本字符串映射到二进制已经的整数值。

标签: mips cpu-architecture digital-logic


【解决方案1】:

让我们尝试梳理一下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 代表 binary - 用 10 替换 2 来表示 十进制数字 的数量与数值数量的相同关系可以代表/存储/交流)。

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

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

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


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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-23
    • 1970-01-01
    • 1970-01-01
    • 2014-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多