
计算机组成原理 | 只读存储器ROM 导语提到存储器大家脑海里是不是立刻浮现出两个词RAM随机存取存储器和ROM只读存储器在《计算机组成原理》中有一个极其重要但常被误解的公式主存内存容量 RAM 容量 ROM 容量。很多人会问“老师ROM 不是‘只读’的吗为什么它也算在内存里而且现在的 U 盘、SSD 明明能写数据为什么也叫 ROM”今天我们就彻底揭开 ROM 家族的神秘面纱️ 第一部分ROM 家族的“进化史”虽然名字叫“只读”但 ROM 其实一直在进化。我们可以把它看作是一个不断“解锁”写入能力的过程1. 掩膜式只读存储器 (MROM) —— “出厂即定型”这是最原始的 ROM。特点内容在芯片生产时通过光刻掩膜工艺直接写入。局限一旦生产出来内容绝对无法修改。如果程序有 Bug这块芯片就废了。通常用于产量极大且不需要更新的场合如早期的游戏卡带。2. 一次可编程只读存储器 (PROM) —— “用户的第一次机会”为了解决 MROM 不灵活的问题PROM 诞生了。特点出厂时是全空的用户可以利用专门的编程器将数据写入。局限只能写一次。利用熔断丝原理一旦烧断就无法恢复。写错了那也只能换一块新的。3. 可擦除可编程只读存储器 (EPROM) —— “后悔药来了”这一代解决了“写错无法修改”的痛点分为两个分支紫外线擦除 (UVEPROM)芯片上有一个石英玻璃窗。如果想擦除数据必须把它拿到紫外线灯下照射十几分钟。虽然能改写但太麻烦且不能在线修改。电擦除 (EEPROM)这是巨大的飞跃不需要紫外线直接用电信号就能擦除和重写。这为后来的 BIOS 升级奠定了基础。4. 闪速存储器 (Flash Memory) —— “现代存储之王”特点它是 EEPROM 的改进版写入速度更快集成度更高。应用你手里的 U 盘、SD 卡、手机存储本质上都是 Flash。5. 固态硬盘 (SSD) —— “性能怪兽”本质控制单元 Flash 芯片。地位它不仅仅是存储器更是一个复杂的系统用来替代传统的机械硬盘。 第二部分核心考点 —— 内存 RAM ROM这是考试中最容易混淆的概念之一请务必记在小本本上在计算机组成原理的模型中主存储器Main Memory是由两部分组成的主存容量RAM 容量ROM 容量 \text{主存容量} \text{RAM 容量} \text{ROM 容量}主存容量RAM容量ROM容量RAM (Random Access Memory)作用存放用户程序、数据和操作系统正在运行的部分。特性易失性断电数据丢失、读写速度快、可读可写。ROM (Read Only Memory)作用存放固定的系统程序如 BIOS/UEFI、引导程序、字库等。特性非易失性断电数据不丢、通常只读或很少写入。 为什么 ROM 也算内存因为 CPU 在执行程序时可以直接通过地址总线访问 ROM 中的指令比如开机时的自检程序。既然 CPU 能直接寻址访问它在逻辑上就属于“主存”的一部分。 第三部分避坑指南必背在复习存储器时有几个极易混淆的概念考试最爱在这里挖坑1. “只读”是个伪命题误区ROM 只能读不能写。真相很多 ROM 芯片虽然名字叫“Read-Only”但实际上是可以“写”的如 PROM、EPROM、Flash。这里的“只读”更多是指在计算机正常运行期间CPU 主要对其进行读取操作而不是像 RAM 那样频繁地读写数据。2. 闪存的“写”为什么慢考点Flash Memory闪存如 U 盘、SSD的写速度一般比读速度更慢。原因这是由物理特性决定的。Flash 在写入新数据前必须先进行擦除操作把原来的电荷放掉而擦除是一个相对耗时的过程。这就是为什么你的 U 盘拷贝大文件时速度往往不如读取时稳定。3. 易失性 vs 非易失性RAM (易失性)断电后数据立马消失比如你没保存的 Word 文档。ROM (非易失性)断电后数据依然保存比如你的 BIOS 设置、手机里的照片。4. ROM 也具有“随机存取”特性重点不要以为只有 RAM 才是随机存取的解释ROM包括 Flash同样支持随机存取Random Access即可以直接访问任意一个存储单元而不需要像磁带那样顺序查找。这也是为什么 BIOS 代码可以存放在 ROM 中并被 CPU 直接执行的原因。 第四部分408 / 期末真题实战光说不练假把式来看看这道经典的计算机组成原理真题风格题目检验一下你是否真的懂了。【真题模拟】题目某计算机的主存地址空间为 64KB由 RAM 和 ROM 组成。其中 RAM 的地址范围为0000H~BFFFH其余地址空间分配给 ROM。请回答RAM 的容量是多少 KBROM 的容量是多少 KB若使用8K×48\text{K} \times 48K×4位的 SRAM 芯片和4K×84\text{K} \times 84K×8位的 ROM 芯片来构建该存储器各需要多少片✅ 解析与答案1. 计算 RAM 容量RAM 地址范围0000H~BFFFH计算跨度BFFFH−0000H1C000HBFFFH - 0000H 1 C000HBFFFH−0000H1C000H换算成十进制C×16312×409649152C \times 16^3 12 \times 4096 49152C×16312×409649152字节换算成 KB49152/102449152 / 1024 49152/102448KB2. 计算 ROM 容量总地址空间64KBROM 容量 总容量 - RAM 容量 64KB−48KB64\text{KB} - 48\text{KB} 64KB−48KB16KB3. 计算芯片数量SRAM (RAM) 芯片数需要总容量48KB48K×848\text{KB} 48\text{K} \times 848KB48K×8位单片容量8K×48\text{K} \times 48K×4位位扩展需要 2 片并联4位×28位4\text{位} \times 2 8\text{位}4位×28位字扩展48K/8K648\text{K} / 8\text{K} 648K/8K6组总数2×62 \times 6 2×612 片ROM 芯片数需要总容量16KB16K×816\text{KB} 16\text{K} \times 816KB16K×8位单片容量4K×84\text{K} \times 84K×8位位宽已满足都是 8 位只需字扩展。总数16K/4K16\text{K} / 4\text{K} 16K/4K4 片希望这篇推文能帮你扫清复习盲区如果觉得有用记得点赞、在看、转发三连哦