只读存储器

“只读存储器”这个名字今天已经名不副实:这一节里的后三类(EEPROM、Flash、SSD)全都可以在线擦写。它们仍然被归在 ROM 名下,是因为分类的依据不是”能不能写”,而是断电后信息是否保留——这是一条从磁芯时代继承下来的历史划分。

理解这一节的关键,是先接受”分类归属”与”实际能力”在这里是脱节的,然后分别记住两套事实:教材把谁归在哪一类(用于分类题),以及每一类真实的读写代价(用于工作原理题)。

机制

ROM 的共同特点

  • 非易失:断电后信息保留
  • 随机存取:存取时间与地址无关,属于随机存取存储器(见 3.1.1)
  • 可以与 RAM 统一编址,在主存地址空间中占一段连续地址
  • 结构简单、集成度高、位价低于 RAM

ROM 在主存中的典型内容是引导程序(BIOS)和固件,这是它与 OS 1.5 操作系统引导的接口。

五种类型

类型写入方式可否改写典型用途
掩模式 MROM制造时由掩模一次成型不可改写大批量固化程序
一次可编程 PROM用户用编程器烧一次(熔丝)只能写一次小批量定制
可擦除可编程 EPROM紫外线擦(UVEPROM)或电擦(EEPROM)可多次改写早期固件
Flash 存储器电擦写,速度快,块擦页写可多次改写U 盘、固件、SSD 内部
固态硬盘 SSD由 Flash 芯片 + 闪存翻译层构成可多次改写外存,见 3.4.2

这五类的排列本身就是一条”可改写性递增”的时间线:不可改写 → 写一次 → 紫外擦 → 电擦 → 快速电擦并商品化。

Flash 的三条真实特性

Flash 是唯一需要记住实际读写代价的一类:

  1. 读比写快。读是随机存取;写要先施加高压擦除,慢一个数量级以上。
  2. 写之前必须擦除,且擦除以”块”为单位、写入以”页”为单位——块远大于页。这条不对称性是 SSD 需要闪存翻译层、需要垃圾回收的根本原因。
  3. 擦写次数有限(万次量级),因此需要磨损均衡。

这三条会在 3.4.2 固态硬盘全部展开。

边界

疑问点:把 SSD 列在"只读存储器"的类型里,做题时只能选一个"最不错的"

这个困惑指向的是真问题:教材的分类依据与器件的实际能力已经脱节。 ROM 一节的分类依据是非易失性,不是”只读”。按这个依据,Flash 和以 Flash 为介质的 SSD 都应当归入 ROM 类——教材的归类在它自己的定义下是自洽的,问题只出在”只读存储器”这个名字上。

做题时的判据只有一条:看题干在问分类归属,还是在问读写能力。

题干问什么依据结论
”下列属于只读存储器的是”教材分类Flash、SSD 算 ROM
”下列存储器不能改写的是”实际能力只有 MROM 和写过的 PROM
”下列属于非易失性存储器的是”易失性维度ROM 全家 + 磁盘 都算
”Flash 的读写速度关系”器件特性读快写慢,写前需擦除

不存在”选一个最错的”这种情形——四类问题各有确定答案,混乱只发生在把”分类归属”和”能不能写”当成同一个问题时。

EEPROM 与 Flash 的界线:两者都是电擦写。EEPROM 可以按字节擦写,Flash 必须按块擦除——Flash 用擦除粒度换来了更高的集成度和更低的位价。

“ROM 只能读不能写”是错的,正确表述是”ROM 在正常工作时(联机状态)通常只读,改写需要专门的擦写操作”。

ROM 不是主存的必需组成,但主存地址空间中通常有一段是 ROM。 这与 3.3.3的地址分配直接相关:ROM 区与 RAM 区靠片选译码区分。

对照速查

判断对错
ROM 是非易失的✅
ROM 属于随机存取存储器✅
ROM 与 RAM 可以统一编址✅
ROM 一律不能改写❌(只有 MROM / 已写 PROM 不能)
Flash 属于 ROM 类✅(按教材的非易失性分类)
Flash 读写速度相同❌(读快写慢)
Flash 可以直接覆盖写❌(必须先擦除)
Flash 擦写次数无限❌
EEPROM 按字节擦写,Flash 按块擦除✅

考点

  • ROM 的分类依据是非易失性,不是”只读”
  • 五类:MROM / PROM / EPROM(含 EEPROM)/ Flash / SSD,可改写性递增
  • Flash 读快写慢、写前必须擦除、块擦页写、擦写次数有限
  • EEPROM 按字节擦写,Flash 按块擦除
  • ROM 属于随机存取存储器,可与 RAM 统一编址
  • 主存中的 ROM 区通常存放引导程序

链接