亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 工业技术

查找表

在上一章中了解了数字存储设备后,我们知道可以在固态设备中存储二进制数据。通过使用适当的二进制值驱动设备的“地址”线,可以轻松寻址固态存储设备中的那些存储“单元”。

假设我们有一个 ROM 存储器电路,用某些数据写入或编程,这样 ROM 的地址线作为输入,ROM 的数据线作为输出,产生特定逻辑功能的特征响应。理论上,我们可以对这个 ROM 芯片进行编程,以模拟我们想要的任何逻辑功能,而无需更改任何接线或门。

考虑以下使用半加器功能编程的 4 x 2 位 ROM 存储器(一个非常小的存储器!)的示例:

如果这个ROM已经写入了上述数据(代表一个半加器的真值表),驱动A和B地址输入将导致ROM芯片中各自的存储单元被使能,从而输出相应的数据作为Σ( Sum) 和 Cout 位。与由门或继电器构建的半加器电路不同,该设备可以设置为执行任何具有两个输入和两个输出的逻辑功能,而不仅仅是半加器功能。

要更改逻辑功能,我们需要做的就是将不同的数据表写入另一个 ROM 芯片。我们甚至可以使用可以随意重写的EPROM芯片,在功能上提供最大的灵活性。

认识到这一原理在应用于数字电路时的重要性是非常重要的。而由门或中继构建的半加器处理 到达特定输出的输入位,ROM 只需记住 对于任何给定的输入组合,输出应该是什么。

这与小学时记忆的“时间表”没有太大区别:与其计算 5 乘以 6(5 + 5 + 5 + 5 + 5 + 5 =30)的乘积,小学生被教导要记住5 x 6 =30,然后期望根据需要从内存中调用该产品。同样,逻辑功能不取决于硬连线门或继电器(硬件)的功能排列,而仅取决于写入内存的数据(软件)。

这样一个简单的应用程序,每个输入都有明确的输出,被称为查找表 ,因为存储设备只是“查找”任何给定的输入状态组合的输出应该是什么。

出于以下几个原因,使用存储设备来执行逻辑功能很重要:

随着函数复杂性的增加,查找表的用处变得越来越明显。假设我们想使用 ROM 构建一个 4 位加法器电路。我们需要一个带有 8 个地址线(两个 4 位数字相加)和 4 个数据线(用于有符号输出)的 ROM:

在这个 ROM 芯片中有 256 个可寻址的内存位置,我们将有相当多的编程工作要做,告诉它为每个二进制输入组合生成什么二进制输出。

如果我们不小心,我们还会冒着在我们的编程中出错的风险,并让它输出不正确的总和。然而,能够单独通过软件配置此功能(或任何功能)的灵活性通常超过成本。

考虑我们可以使用上述“加法器”实现的一些高级功能。我们知道,当我们用 2 的补码符号表示法将两组数字相加时,我们可能会面临答案溢出的风险。

例如,如果我们尝试将 0111(十进制 7)与只有 4 位数字字段的 0110(十进制 6)相加,我们将得到的答案是 1001(十进制 -7)而不是正确的值 13(7 + 6),不能用 4 个有符号位来表示。如果我们愿意,我们可以通过对这个查找表电路进行编程以在我们知道会发生溢出的情况下输出其他内容(即,在任何情况下实际总和将超过 +7或-8)。

一种替代方法可能是对 ROM 进行编程以输出数量 0111(可以用 4 个有符号位表示的最大正值),或我们认为比典型的溢出“错误”值更适合应用程序的任何其他值一个普通的加法器电路会输出。完全由程序员决定他或她希望这个电路做什么,因为我们不再受逻辑门函数的限制。

可能性也不仅限于定制的逻辑功能。通过向 256 x 4 ROM 芯片添加更多地址线,我们可以扩展查找表以包含多种功能:

多了两条地址线,ROM 芯片的地址数量将是以前的 4 倍(1024 而不是 256)。这个ROM可以被编程,当A8和A9都为低电平时,输出数据代表sum 地址线 A0 到 A7 上输入的两个 4 位二进制数,就像我们之前的 256 x 4 ROM 电路一样。

对于地址 A8=1 和 A9=0,可以通过编程输出差值 第一个 4 位二进制数(A0 到 A3)和第二个二进制数(A4 到 A7)之间的(减法)。对于地址 A8=0 和 A9=1,我们可以编程 ROM 以相反的顺序输出两个数字的差(减法)(第二 - 第一而不是第一 - 第二),最后,对于地址 A8=1并且A9=1,ROM可以被编程为比较两个输入并输出相等或不相等的指示。

然后我们将拥有一个设备,它可以对 4 位二进制数执行四种不同的算术运算,所有这些都是通过“查找”编入其中的答案。

如果我们使用带有两条以上额外地址线的 ROM 芯片,我们可以对其进行编程,使其具有更多种类的功能,以在两个 4 位输入上执行。有许多二进制数据特有的操作(例如奇偶校验或位的异或运算),我们可能会发现在这样的查找表中编程很有用。

像这样的设备可以执行由二进制输入代码指示的各种算术任务,被称为算术逻辑单元 (ALU),它们是计算机技术的重要组成部分之一。尽管出于速度的原因,现代 ALU 更常由非常复杂的组合逻辑(门)电路构成,但知道完全相同的功能可以通过使用适当的查找表编程的“哑”ROM 芯片来复制应该是令人欣慰的(s).

事实上,IBM 工程师在 1959 年开发 IBM 1401 和 1620 计算机时使用了这种精确方法,这些计算机使用查找表来执行加法,而不是二进制加法器电路。这台机器被亲切地称为“CADET”,代表“C 不是 A dd,D 不是 ET 嗯。”

查找表 ROM 的一个非常常见的应用是在需要表示自定义数学函数的控制系统中。这种应用在汽车发动机的计算机控制燃油喷射系统中发现,其中用于高效和清洁操作的适当空气/燃料混合比会随着几个环境和操作变量而变化。

在研究实验室对发动机进行的测试确定了这些理想比率对于发动机负载、环境空气温度和大气压力的不同条件是多少。这些变量是用传感器传感器测量的,它们的模拟输出通过 A/D 电路转换为数字信号,那些并行数字信号用作高容量 ROM 芯片的地址输入,该芯片被编程为输出空气/燃料比的最佳数字值。任何这些给定的条件。

有时,ROM 用于提供一维查找表功能,用于“校正”数字化信号值,以便它们更准确地表示其现实世界的意义。这种设备的一个例子是热电偶发射器 ,它测量由不同金属结点产生的毫伏信号,并输出一个应该直接的信号 对应于那个结温。

不幸的是,热电偶结没有完美的线性温度/电压响应,因此原始电压信号与温度不完全成正比。通过将电压信号数字化(A/D 转换)并将该数字值发送到 ROM 的地址,该 ROM 用必要的校正值编程,ROM 的编程可以消除热电偶温度与毫伏关系的一些非线性,以便设备的最终输出会更准确。

这种查找表的流行工具术语是数字表征器 .

查找表的另一个应用是特殊代码翻译。例如,128 x 8 ROM 可用于将 7 位 ASCII 代码转换为 8 位 EBCDIC 代码:

同样,所需要做的就是使用必要的数据对 ROM 芯片进行正确编程,以便每个有效的 ASCII 输入都会产生相应的 EBCDIC 输出代码。

相关工作表:


工业技术

  1. 升降桌简介
  2. 将真值表转换为布尔表达式
  3. 数字记忆术语和概念
  4. 只读存储器 (ROM)
  5. 微处理器
  6. C 动态内存分配
  7. Cervoz 升级下一代 DDR4-2666 内存
  8. AI 可以利用磁力实现类似人类的效率
  9. C - 内存管理
  10. C++ 动态内存
  11. Java 10 - 堆分配
  12. 梯形逻辑 202:记忆组织