精简版 · 小杯2026-08 冻结,已停止更新(发布前修订了 4 处已知错误)。后续勘误与新增内容只在正式版。看正式版(中杯)→
Skip to content

SRAM与DRAM

考情分析

SRAM/DRAM 对比和 DRAM 刷新计算是本节重点。重点掌握刷新周期计算方法和"死区"概念。

大纲定位

考纲第三章(三)「半导体随机存取存储器」三条:1. SRAM 存储器 2. DRAM 存储器 3. Flash 存储器

要求到什么程度:三者的存储元与特性差异、DRAM 刷新的计算、地址复用与引脚数、Flash 的页/块结构。标题里的「随机存取」本身也是考点。

SRAM

静态随机存取存储器,用 6 个晶体管组成一个触发器(双稳态电路)存储 1 位。

特点:

  • 不需要刷新,只要有电,信息就保持
  • 速度快(0.5~2 ns),用作 Cache
  • 集成度低,功耗大,成本高

结构示意:每位 6 管(T1~T6),两个反相器形成互锁,T5/T6 控制读写。

DRAM

动态随机存取存储器,用 1 个晶体管 + 1 个电容存储 1 位。

特点:

  • 利用电容存储电荷表示 0/1,电容会漏电,需要定时刷新
  • 速度较慢(50~100 ns),用作主存
  • 集成度高,功耗小,成本低

刷新:对存储单元重新充电,恢复原来的数据。

SRAM vs DRAM 对比

特性SRAMDRAM
存储元件6 管触发器1 管 1 电容
是否需要刷新不需要需要(~2 ms)
速度快(ns 级)慢(几十 ns)
集成度
功耗
成本
存取时间与存储周期几乎相等存储周期 > 存取时间(需恢复时间)
典型用途Cache主存

DRAM 刷新方式

DRAM 的刷新以为单位,每隔一个刷新周期(通常 2 ms)必须把所有行刷新一遍。

集中刷新

在刷新周期结束时,集中安排一段时间,逐行刷新所有行。

  • 优点:刷新时间固定,实现简单
  • 缺点:刷新期间 CPU 不能访问存储器,这段时间称为死区(死时间)

设存储器有 r 行,刷新一行需要一个存储周期 tc,则死区时长为 rtc

分散刷新

把每个存储周期分为两部分:前半段正常读写,后半段刷新一行。

  • 优点:不存在死区
  • 缺点:存储周期被延长为原来的 2 倍,存取速度降低
  • 刷新一遍所有行只需 r 个存储周期,刷新间隔缩短(可能过于频繁)

异步刷新(最常用)

将刷新操作均匀分散到整个刷新周期内,每隔固定间隔刷新一行。

设刷新周期为 T,存储器有 r 行,则每隔 T/r 安排一次单行刷新。

刷新间隔=Tr
  • 优点:死区短(只有一个存储周期),刷新频率合理
  • 缺点:需要定时器和刷新地址计数器

例题:存储器有 128 行,刷新周期 2 ms,存储周期 0.5 μs。

刷新间隔=2 ms12815.6 μs

每隔约 15.6 μs 刷新一行,死区长度 = 一个存储周期 = 0.5 μs,占比极小。

刷新周期计算模板

参数符号
行数r
存储周期tc
刷新周期T(通常 2 ms)
死区(集中刷新)rtc
刷新间隔(异步)T/r

集中刷新死区算例:某 DRAM 有 128 行,存储周期 0.5 μs,刷新周期 2 ms。集中刷新方式下死区 = 128×0.5=64 μs,占刷新周期的 64/2000=3.2%——这段时间内存储器完全不能响应读写。同参数下异步刷新每隔 2ms/128=15.625 μs 刷一行,每次只"死" 0.5 μs,把死区打散了。

非易失性存储器(ROM 与 Flash)

RAM(包括 SRAM 和 DRAM)属于易失性存储器,断电后数据丢失。非易失性存储器则断电后仍能保持数据。

ROM 的分类

类型全称可编程性特点
MROM掩模式 ROM出厂固化,不可改可靠性高,批量成本低
PROM一次可编程 ROM用户可编程一次写入后不可修改
EPROM紫外线可擦除 PROM多次编程,紫外线整片擦除擦写次数有限,速度慢
EEPROM电可擦除 PROM多次编程,电擦除,字节级操作速度慢,适合小规模参数存储
Flash闪存多次编程,电擦除,块级操作速度快,U盘/SSD 的基础

"随机存取"到底指什么

大纲这一节的标题是「半导体随机存取存储器」,这个词本身就是考点。

随机存取(random access):访问任意一个存储单元所需的时间与该单元的物理位置无关,都相同。

按存取方式,存储器分四类:

存取方式定义典型器件
随机存取存取时间与位置无关SRAM、DRAM、ROM、EPROM、Flash
顺序存取必须从头顺序查找,时间差异极大磁带
直接存取先直接定位到某个区域,再在区域内顺序查找磁盘、光盘(CD-ROM)
相联存取按内容而非地址访问相联存储器、TLB

编者注(易错):判断题常拿 CD-ROM 设陷阱——名字里有 ROM,但它带机械寻道机构,属于直接存取,不是随机存取。而 Flash 和 EPROM 虽然是"只读"家族,却都是随机存取。分界线在有没有机械部件,不在能不能写。

RAM 和 ROM 都支持随机访问。ROM 的优点:结构简单、位密度比 SRAM 高、断电不丢失。

Flash 存储器

在 EPROM 基础上发展而来,兼具 ROM 和 RAM 的部分优点:

  • 断电后信息长期保存
  • 支持电擦除与在线重写,不需要紫外线等特殊设备
  • 读取速度接近 RAM,但写入速度显著较慢(读写不对称)
  • 写入前必须先擦除,擦除以为单位

现代主板的 BIOS 存储在 Flash 中,用户可在线升级固件。

存储元:浮栅晶体管

SRAM 用 6 管触发器、DRAM 用 1 管 1 电容,Flash 用的是带浮栅的 MOS 晶体管:浮栅被绝缘层包围,注入其中的电荷没有泄漏通路,所以断电也能保存多年(这正是 DRAM 要刷新而 Flash 不用的原因——DRAM 的电容会漏电)。

充电/放电靠隧穿效应,需要较高电压且耗时长,这就是"写比读慢一个数量级"的物理根源。

页/块结构与"不能原地更新"

操作单位说明
(512 B ~ 4 KB)快,接近 RAM
写(编程)只能把 1 改成 0,单向
擦除(若干页,16 KB ~ 512 KB)把整块恢复成全 1,慢

因为编程只能单向把 1 变 0,要把 0 改回 1 只能整块擦除——这就是「写前必须先擦除」和「不能原地更新」的由来。改一页数据,实际要把整块的有效页搬到新块(写放大)。

与 SRAM / DRAM 的定位对照

SRAMDRAMFlash
存储元6 管触发器1 管 1 电容浮栅晶体管
易失性易失易失非易失
需要刷新
读速度最快较快
写速度最快最慢(读写不对称)
位价最高最低
擦写寿命无限无限有限(有擦写次数上限)
典型用途Cache主存U 盘、SSD、BIOS

寿命有限这一条是 Flash 独有的约束,SSD 的磨损均衡机制就是为它而设。

DRAM 地址复用

DRAM 芯片的地址引脚数通常是行/列地址引脚数,行地址和列地址分时复用同一组引脚,通过 RAS(行地址选通)和 CAS(列地址选通)信号区分。

好处:减少引脚数量,降低封装成本。

引脚数的通用式n/2 只是行列相等时的特例):

地址引脚数=log2max(r, c)

其中 rc 是存储阵列的行数与列数,$r \times c = $ 单元总数。行地址和列地址分时复用同一组引脚,所以引脚数由较大的那个决定。

为什么不能一律用 n/22K=211n=11 是奇数,n/2=5.5 根引脚说不通。这时要枚举 r×c=2048 的分解:

r×cmax(r,c)引脚数
2×1024102410
16×1281287
32×64646
64×32646
128×161287

引脚最少 阵列尽量接近正方形32×6464×32 引脚数相同时,选行数少的(32×64)——因为刷新是按行进行的,行数越少刷新开销越小。

芯片的引脚总数

引脚总数=log2max(r,c)+b=+控制引脚

4M×8 位的 DRAM 芯片。单元数 4M=222,方阵取 211×211 → 地址引脚 11 根;位宽 8 → 数据引脚 8 根。地址 + 数据 =11+8=19 根。

编者注(易漏)数据引脚数 = 芯片位宽,这一项经常被忘。题目问"至少需要多少引脚"时通常指地址 + 数据两项。

行缓冲区

RAS 选通一行后,该行的全部单元一次性读入行缓冲区,随后 CAS 只是从行缓冲里挑列。

行缓冲区位数=列数×芯片位宽

这是突发传送(burst)之所以快的硬件基础——同一行内连续取多个数据不必重新激活行。

交互可视化

加载可视化中...

考点清单

  • 存取时间 ≠ 存储周期:存储周期 = 存取时间 + 恢复时间(DRAM 尤为明显,恢复时间用于电容再充电)
  • SRAM 不需刷新,DRAM 需要刷新;SRAM 用于 Cache,DRAM 用于主存
  • 刷新以行为单位,刷新操作不需要 CPU 干预(由存储器控制器自动执行)
  • 集中刷新有死区,分散刷新无死区但速度减半,异步刷新是折中方案
  • 死区长度 = 行数 × 存储周期(集中刷新)
  • 异步刷新间隔 = 刷新周期 / 行数
  • DRAM 地址引脚分时复用,行列地址各占一半引脚
  • ROM 和 RAM 都支持随机访问;ROM 断电不丢失,RAM 断电丢失
  • Flash 读快写慢,写前需先擦除(块级),是 SSD 和 U 盘的基础

真题练习