一分钟带你了解ROM
一、ROM (Read - Only Memory)的发展历程
早期 ROM:内容在制造工序中由工厂烧录,用户无法修改,成本高,适用于大批量应用场合。
PROM:可编程只读存储器,用户可使用专用编程器写入一次资料,但写入后无法修改,适用于少量需求或量产前验证。
EPROM:可擦除可编程只读存储器,可重复擦除和写入,通过紫外线照射窗口擦除数据,但操作需使用擦除器和编程器,且写入时需加编程电压。
EEPROM:电可擦除可编程只读存储器,以电子信号修改内容,以字节为最小修改单位,使用厂商提供的专用刷新程序改写,摆脱了外部设备束缚,具有良好防毒功能。
Flash Memory:闪存,属于广义的 EEPROM,擦除以块为单位,简化了电路,提高了数据密度,降低了成本,包括 NOR Flash 和 NAND Flash,NOR Flash 可实现随机寻址,适合存储引导代码;NAND Flash 数据密度大、体积小、成本低,适合大容量存储。
二、ROM的结构
存储矩阵
这是 ROM 的核心部分,由许多存储单元组成,用于存放数据。存储单元按照一定的规律排列成矩阵形式。例如,一个简单的的 ROM 存储矩阵(8 个地址,每个地址存储 4 位数据),可以想象成一个有 8 行 4 列的表格。每一行代表一个存储单元的地址,每一列代表数据的一位。假设我们要存储数字 0 - 7 的二进制编码(4 位),地址 0 存储 0 的二进制编码 0000,地址 1 存储 1 的二进制编码 0001,以此类推。存储矩阵就像一个仓库,每个存储单元(仓库中的小格子)存放着特定的数据。
地址译码器
它的作用是根据输入的地址信号,选中存储矩阵中的相应存储单元。比如在上面提到的的 ROM 中,有 3 位地址线(因为)。当输入地址为 000 时,地址译码器就会找到存储矩阵中的第 0 行存储单元。就好像是仓库的管理员,根据提货单(地址信号)找到对应的货架(存储单元)。如果地址是 001,管理员就会走到存储矩阵中的第 1 行对应的位置。
输出缓冲器
用于对从存储矩阵中读出的数据进行缓冲和驱动,以便能够有效地将数据输出到外部电路。例如,当从存储单元中读出数据后,输出缓冲器可以对数据进行放大或整形,使其能够更好地与其他芯片或电路进行连接。这就好比是仓库的出货口,将取出的货物(数据)进行包装(缓冲),使货物能够以合适的状态(合适的电平、电流等)送到顾客(外部电路)手中。
三、ROM 的优点
数据稳定性高:ROM 中的数据在制造过程中被固化写入,之后便无法轻易更改或删除,具有很高的稳定性和可靠性。这使得它非常适合存储那些不希望被意外修改或删除的重要数据和程序,如计算机的 BIOS 程序,它是计算机启动时首先运行的程序,负责初始化硬件设备并加载操作系统,其稳定性对于计算机的正常运行至关重要。
非易失性:即使计算机断电或设备关机,ROM 中存储的数据也不会丢失。这一特性使得 ROM 在需要长期保存数据的应用场景中占据重要地位,如嵌入式系统、智能家电等设备中的固件程序,这些程序在设备运行过程中不会改变,但需要在设备断电后依然保留,以便下次开机时能够正常运行。
集成度高:ROM 采用半导体工艺制造,其内部电路结构紧凑,能够在较小的芯片面积上集成大量的存储单元,实现较高的存储密度。这有助于减小设备的体积和成本,提高设备的性能和可靠性。
读取速度快:ROM 的读取速度相对较快,能够满足计算机和其他数字设备在启动和运行过程中对数据的快速访问需求。例如,在计算机启动时,BIOS 程序需要快速从 ROM 中读取并执行,以完成硬件的初始化和系统的引导,ROM 的快速读取能力能够保证计算机的快速启动。
低功耗:ROM 在待机状态下几乎不消耗电力,这使得它成为低功耗设备的首选存储介质。在一些电池供电的设备中,如移动电话、平板电脑、便携式电子设备等,使用 ROM 可以有效延长设备的电池续航时间,提高设备的使用效率。
成本较低:对于一些掩膜编程的只读存储器(MROM),其制造成本相对较低,适合大规模生产和应用。因为 MROM 中的数据是在制造过程中通过掩膜工艺写入的,一旦制造完成,就可以大量生产相同内容的芯片,从而降低了单位成本。
四、ROM的应用
计算机系统领域
BIOS 存储:在计算机主板上,BIOS(基本输入输出系统)通常存储在 ROM 中。BIOS 是计算机启动时运行的第一个软件,它负责对计算机硬件进行初始化和自检。例如,它会检测 CPU、内存、硬盘等硬件设备是否正常工作,并且设置这些硬件设备的基本参数。在开机过程中,CPU 会从 ROM 中读取 BIOS 程序并执行,以确保计算机能够正常启动并加载操作系统。
引导加载程序存储:在一些设备中,引导加载程序(Bootloader)也存储在 ROM 中。引导加载程序的作用是在计算机或设备启动时,加载操作系统内核或其他更高级别的软件。比如在嵌入式系统中,引导加载程序从 ROM 中被读取后,会将存储在其他存储设备(如闪存)中的操作系统内核加载到内存中并启动。
消费电子领域
电子游戏机:早期的电子游戏机如任天堂的 FC(红白机),游戏卡带中部分固化的游戏程序是存储在 ROM 中的。这些游戏程序在游戏卡带生产时就被写入,玩家插入卡带后,游戏机的处理器可以读取 ROM 中的游戏程序来运行游戏。即使游戏机断电,游戏程序依然保存在 ROM 中,下次开机还能正常游戏。
智能家电:像智能冰箱、智能洗衣机等家电的固件程序通常存储在 ROM 中。这些固件包含了控制家电各个功能部件的程序,如冰箱的温度控制程序、洗衣机的洗涤模式控制程序等。以智能冰箱为例,其内部的控制器会从 ROM 中读取温度控制程序,根据用户设定的温度和冰箱内的实际温度,来控制压缩机的工作,从而实现对冰箱温度的精确控制。
工业控制领域
自动化生产线控制:在工业自动化生产线上,PLC(可编程逻辑控制器)使用 ROM 存储控制程序。这些程序用于控制生产线上各种电机、阀门、传感器等设备的运行。例如,在汽车生产车间的自动化焊接生产线上,PLC 中的 ROM 存储着控制焊接机器人手臂运动的程序。焊接机器人会按照 ROM 中存储的程序,精确地移动手臂,完成汽车零部件的焊接工作。
仪器仪表:各种仪器仪表如示波器、万用表等也会使用 ROM。示波器的 ROM 中存储着用于控制示波器的显示、测量等功能的程序。当用户操作示波器进行信号测量时,内部的微处理器会从 ROM 中读取相应的程序,根据程序指令对输入信号进行处理,并将测量结果显示在屏幕上。
汽车电子领域
汽车发动机控制单元(ECU):ECU 是汽车电子系统的核心部件之一,它使用 ROM 存储发动机控制程序。这些程序根据发动机的转速、进气量、水温等各种传感器输入的数据,通过 ROM 中存储的控制策略(如燃油喷射量控制、点火时机控制等)来控制发动机的工作状态。例如,当发动机转速升高时,ECU 从 ROM 中读取相应的程序,根据程序中的算法计算出合适的燃油喷射量,以保证发动机能够高效、稳定地运行。
汽车车载信息娱乐系统:部分汽车的车载信息娱乐系统也会将一些基本的系统程序存储在 ROM 中。比如车载收音机的频道搜索、音量控制等基本功能程序存储在 ROM 中,这些程序可以在用户操作车载收音机时被读取并执行,为用户提供基本的娱乐服务。
通信设备领域
路由器和调制解调器:在路由器和调制解调器等网络通信设备中,ROM 用于存储设备的启动程序、基本配置信息和固件升级程序等。例如,路由器的启动程序存储在 ROM 中,在路由器开机时,首先执行 ROM 中的启动程序,完成对网络接口、处理器等硬件的初始化工作,然后加载其他的网络功能程序,从而使路由器能够正常工作并提供网络接入服务。