📜  只读存储器(ROM)的分类和编程

📅  最后修改于: 2021-09-28 06:32:59             🧑  作者: Mango

只读存储器 (ROM) 与随机存取存储器 (RAM) 一起是任何计算机系统的主要存储单元,但与 RAM 不同的是,在 ROM 中,二进制信息是永久存储的。现在,要存储的这些信息由设计者提供,然后存储在 ROM 中。一次,它被存储,它保留在单元内,即使电源被关闭和再次打开。

通过称为 ROM 编程的过程,信息以位的形式嵌入到 ROM 中。在这里,编程是指硬件程序,它指定将要插入到设备硬件配置中的位。这就是使 ROM 成为可编程逻辑设备 (PLD) 的原因。

可编程逻辑器件

可编程逻辑器件 (PLD) 是一种 IC(集成电路),内部逻辑门通过电子路径连接,其行为类似于保险丝。在原始状态下,所有保险丝都完好无损,但是当我们对这些设备进行编程时,我们会沿路径烧毁某些保险丝,这些保险丝必须移除才能实现特定配置。这就是 ROM 中发生的情况,ROM 仅由基本逻辑门组成,这些逻辑门以存储指定位的方式排列。

通常,PLD 可以有数百到数百万个通过数百到数千条内部路径互连的门。为了显示这种设备的内部逻辑图,使用了一种特殊的符号,如下所示-

第一个图像显示了表示逻辑门输入的传统方式,第二个符号显示了显示逻辑门输入的特殊方式,称为阵列逻辑符号,其中每条垂直线代表逻辑门的输入。

ROM的结构

ROM的框图如下-

块结构

  • 它由 k 条输入线和 n 条输出线组成。
  • k 输入行用于获取我们想要访问 ROM 内容的输入地址。
  • 由于 k 个输入行中的每一行都可以是 0 或 1,所以有 2 ^k这些输入线可以引用的总地址,并且这些地址中的每一个都包含 n 位信息,这些信息作为 ROM 的输出给出。
  • 这样的 ROM 被指定为 2 ^k xn ROM。

内部结构

  • 它由两个基本组件组成——解码器和或门。
  • 解码器是一种组合电路,用于将任何编码形式(如二进制、BCD)解码为更广为人知的形式(如十进制形式)。
  • 在 ROM 中,解码器的输入将采用二进制形式,输出将表示其十进制等效值。
  • 解码器表示为 lx 2 ^l ,也就是说,它有 l 个输入,有 2 个^l输出,这意味着它将采用 l 位二进制数并将其解码为 2 ^l十进制数。
  • ROM 中存在的所有或门都将解码器的输出作为它们的输入。

ROM的分类

  1. 掩码 ROM——在这种类型的 ROM 中,ROM 的规范(其内容及其位置)由制造商以特定格式的表格形式从客户那里获取,然后为路径制作相应的掩码以产生所需的输出.这是昂贵的,因为供应商向客户收取制作特定 ROM 的特殊费用(推荐,仅当需要大量相同的 ROM 时)。

    用途 –它们用于网络操作系统、服务器操作系统、激光打印机字体存储、电子乐器中的声音数据。

  2. PROM –它代表可编程只读存储器。它首先被准备为空白存储器,然后被编程来存储信息。 PROM 和 Mask ROM 的区别在于 PROM 作为空白存储器制造并在制造后进行编程,而 Mask ROM 在制造过程中进行编程。
    要对 PROM 进行编程,需要使用 PROM 编程器或 PROM 刻录机。对 PROM 进行编程的过程称为烧写 PROM。此外,其中存储的数据不可修改,因此称为一次性可编程设备。

    用途——它们有多种不同的应用,包括手机、视频游戏机、RFID 标签、医疗设备和其他电子产品。

  3. EPROM –它代表可擦除可编程只读存储器。它克服了 PROM 的缺点,即一旦编程,固定模式是永久的,不能改变。如果位模式已经建立,则 PROM 将无法使用,如果必须更改位模式。

    EPROM 已经克服了这个问题,因为当 EPROM 被放置在特殊的紫外线下一段时间后,短波辐射会使 EPROM 恢复到其初始状态,然后可以进行相应的编程。再次擦除内容,使用 PROM 编程器或 PROM 刻录机。

    用途——在 EEPROM 出现之前,一些微控制器,如某些版本的 Intel 8048,飞思卡尔 68HC11 使用 EPROM 来存储它们的程序。

  4. EEPROM –代表电可擦除可编程只读存储器。它与 EPROM 类似,不同之处在于,EEPROM 通过施加电信号而不是紫外线而返回到其初始状态。因此,它提供了擦除的便利,因为即使存储器位于计算机中,也可以这样做。它一次擦除或写入一个字节的数据。

    用途 –用于存储计算机系统 BIOS。

  5. Flash ROM –它是 EEPROM 的增强版本。 EEPROM 和 Flash ROM 的区别在于,在 EEPROM 中,在特定时间只能删除或写入 1 个字节的数据,而在闪存中,数据块(通常为 512字节)可以在特定时间删除或写入。因此,Flash ROM 比 EEPROM 快得多。

    用途 –许多现代 PC 的 BIOS 存储在闪存芯片上,称为闪存 BIOS,它们也用于调制解调器。

对只读存储器 (ROM) 进行编程

要了解如何对 ROM 进行编程,请考虑一个 4 x 4 ROM,这意味着它总共有 4 个地址存储信息,每个地址都有一个 4 位信息,该信息是永久性的,必须给出为输出,当我们访问特定地址时。需要执行以下步骤来对 ROM 进行编程 –

  1. 构建一个真值表,它将决定 ROM 的每个地址的内容,并根据该表对特定的 ROM 进行编程。

    因此,4 x 4 ROM规格的真值表描述如下:

    该真值表显示,在位置 00 处,要存储的内容是 0011,在位置 01 处,内容应该是 1100,依此类推,这样每当输入特定地址时,就会获取该特定地址处的内容。由于使用 2 个输入位,4 个输入组合是可能的,并且这些组合中的每一个都包含 4 位信息,因此该 ROM 是 4 X 4 ROM 。

  2. 现在,基于总数。 ROM中的地址及其内容的长度,决定了解码器以及编号。要使用的或门。
    一般来说,对于 2 ^k xn ROM, akx 2 ^k解码器是用的,总没有。或门的数量等于总数。存储在 ROM 中每个位置的位。

    因此,在这种情况下,对于 4 x 4 ROM,要使用的解码器是 2 x 4 解码器。
    以下是一个 2 x 4 解码器 –

    2 x 4 解码器的真值表如下:

    当两个输入都为 0 时,则只有 D _0为1,其余为0,当输入为01时,则只有D _1高等等。 (请记住,如果解码器的输入组合解析为特定的十进制数 d,那么在输出端,位于距离顶部 d + 1 位置的终端将为 1,其余为 0)。

    现在,由于我们希望每个地址在 4 x 4 ROM 中存储 4 位,因此,将有 4 个或门,解码器的 4 个输出中的每一个都被输入到 4 个或门中的每一个,其输出将是 ROM 的输出,如下所示 –

    此图中的十字符号表示两条线之间的连接完好无损。现在,由于解码器有 4 个或门和 4 条输出线,因此总共有 16 个交叉点,称为交叉点。

  3. 现在,根据真值表对两条线之间的交点进行编程,以便 ROM(或门)的输出与真值表一致。
    为了对交叉点进行编程,最初所有交叉点都保持不变,这意味着它在逻辑上相当于一个闭合的开关,但是这些完好的连接可以通过向这些保险丝施加高压脉冲而熔断,这将断开两个互连线,这样就可以操纵 ROM 的输出。

    因此,要对 ROM 进行编程,只需查看指定 ROM 的真值表并消除(如果需要)连接。根据真值表,4 x 4 ROM 的连接如下所示 –

    请记住,叉号用于表示连接完好无损,如果没有叉号则表示没有连接。

    在该图中,由于从指定 ROM 的真值表中可以看出,当输入为 00 时,则输出为 0011,因此我们从解码器的真值表中知道,输入 00 给出的输出为只有 D _0为 1,其余为 0,因此要从或门获得输出 0011,D 的连接_0前两个或门已被吹走,使输出为 0,而后两个或门将输出为 1,这是所需要的。

    同理,当输入为 01 时,则输出应为 1100,输入为 01,在解码器中只有 D _1为 1,其余为 0,因此要获得所需的输出,前两个或门与 D 的连接完好无损_1 ,而最后两个或门的连接被吹走了。其余的也遵循相同的程序。

所以,这就是 ROM 的编程方式,因为这些门的输出每次都将保持不变,因此信息永久存储在 ROM 中,即使在打开和关闭时也不会改变。

参考-

  1. A. Anand Kumar 的数字电路基础