SRAM 与 DRAM:原理、差异与存储层次

前言

SRAM(Static RAM,静态随机存取存储器)和 DRAM(Dynamic RAM,动态随机存取存储器)是计算机中最重要的两种易失性存储器(Volatile Memory)

虽然它们都叫 RAM(Random Access Memory,随机访问存储器),都支持随机读写,但内部工作原理完全不同,导致它们在速度、成本、容量、功耗上有巨大差异。

可以这样理解:

SRAM = 用很多晶体管"牢牢记住"数据

DRAM = 用电容"暂时存住"数据,需要不停补电(刷新)

一、为什么会有 SRAM 和 DRAM

假设我们设计一台计算机,CPU 每秒可能执行几十亿条指令,需要不断地:

取数据 → 计算 → 再取数据 → 再计算

如果每次都去 SSD(几十~几百微秒),CPU 基本一直在等待:

CPU → SSD(几十~几百微秒)

所以必须有内存(几十纳秒):

CPU → 内存(几十纳秒)

但问题来了:如果内存做得特别快,就会特别贵。 于是工程师开始思考,能否有两种内存:

  • 一种很快、很贵、容量小
  • 另一种慢一点、很便宜、容量大

于是诞生了:

SRAM —— 速度最快
DRAM —— 容量最大

二、SRAM 是什么

SRAM 全称 Static Random Access Memory(静态随机访问存储器),这里最关键的是 Static(静态)

意思不是不能写,而是:只要不断电,数据会一直保持,不用刷新。

SRAM 一个 bit 怎么保存

SRAM 一个 bit 不是电容,而是 6 个 MOS 管(晶体管),称为 6T SRAM Cell。结构上由两个反相器(Inverter)互相连接:

       +-----------+
       |           |
       ▼           │
     NOT         NOT
       ▲           │
       |           ▼
       +-----------+

形成双稳态(Bistable),只能稳定在两种状态:

Q = 1, /Q = 0    或    Q = 0, /Q = 1

为什么能一直保持

因为 NOT → NOT 形成反馈。例如:

Q = 1
NOT(Q) = 0
又反馈回来,保持 Q = 1

所以只要有电,数据一直保持,不用刷新。

SRAM 为什么叫 Static

因为不像 DRAM 那样"存进去 → 越来越弱 → 消失",SRAM 是"存进去 → 一直保持 → 直到断电",因此叫 Static。

SRAM 的读写过程

假设存的是 1,CPU 发起 Read,控制线路打开 Word Line,晶体管导通,从 Bit Line 读取。整个过程几十皮秒~几纳秒,非常快。

为什么 SRAM 贵

因为一个 bit 需要 6 个晶体管(有的设计用 8T、10T),面积非常大。例如 64GB 内存约等于 549755813888 bit,如果都用 6T,约需要 3.3 万亿个晶体管,几乎不可接受。所以 SRAM 不适合做大容量内存。

三、DRAM 是什么

DRAM 全称 Dynamic Random Access Memory,重点是 Dynamic(动态):数据不会一直保持。

DRAM 一个 bit 长什么样

非常简单,只有 一个 MOS + 一个电容,称为 1T1C(One Transistor, One Capacitor):

Bit Line
    │
    │
   MOS
    │
    │
 Capacitor

怎么表示 0 和 1?就是电容有没有电:有电 → 1,没电 → 0。因此面积极小。

电容为什么会漏电

现实世界没有理想电容,都会慢慢漏电。刚写进去是 █████████,过一会 ███████,再一会 ████,最后 █ ≈ 0,数据丢失。

所以必须 Refresh(刷新)

DRAM 必须隔一段时间重新充一次电,例如每 64ms 所有 Cell 重新"读一次 → 重新写回",这就是 Refresh。

为什么叫 Dynamic?因为数据必须不断刷新、动态保持。

为什么 DRAM 容量大

每个 bit 只有 1T + 1C,面积远小于 6T SRAM。同样芯片面积下,SRAM 只能做到几十 MB,而 DRAM 能做到几十 GB。

SRAM 和 DRAM 的速度差异

原因就在结构:

  • SRAM:直接读触发器状态。
  • DRAM:读取电容 → 放大 → 恢复电容 → 结束,多了很多步骤,因此速度慢。

四、为什么 DRAM 读后还要写回(破坏性读取)

这是 DRAM 最经典的特点。读取过程是:电容电荷流向 BitLine,结果电容没电了——读操作本身就把电荷消耗掉了。

因此:

Read → Sense Amplifier → 恢复 → Write Back

DRAM 的读取属于破坏性读取(Destructive Read),必须恢复。

五、Sense Amplifier(感应放大器)

电容非常小,例如只有几十 fF(飞法拉),里面电荷极少。读取时 BitLine 只会变化一点点,例如从 0.50000V 变成 0.50012V,CPU 根本无法识别。

于是加入 Sense Amplifier,作用是把极小变化放大成标准 0/1,同时重新充回电容。所以 Sense Amplifier 既负责读取,也负责恢复

六、为什么 Cache 都用 SRAM

CPU 在 1ns 内就执行很多条指令。如果 Cache 还要 Refresh、Sense、恢复,CPU 会慢很多。因此:

L1、L2、L3 Cache 全部使用 SRAM

七、为什么内存都用 DRAM

主存容量需求远大于速度需求。如果 64GB 全部用 SRAM,成本高得离谱。DRAM 虽然慢、需要刷新,但容量巨大、价格便宜,所以主存(Memory)= DRAM。

八、SRAM 与 DRAM 的整体架构对比

                SRAM(静态)                    DRAM(动态)
┌────────────────────────────┬────────────────────────────┐
│ 存储单元:6T(6个晶体管)    │ 存储单元:1T1C(1晶体管+1电容) │
├────────────────────────────┼────────────────────────────┤
│ 数据保持:持续供电即可保持    │ 电容漏电,需要周期性刷新        │
├────────────────────────────┼────────────────────────────┤
│ 读取方式:直接读取触发器状态  │ 读取电容电荷,读后需恢复        │
├────────────────────────────┼────────────────────────────┤
│ 读取是否破坏数据:否         │ 是(破坏性读取)               │
├────────────────────────────┼────────────────────────────┤
│ 速度:最快(纳秒级)         │ 较慢(几十纳秒)               │
├────────────────────────────┼────────────────────────────┤
│ 密度:低                    │ 高                             │
├────────────────────────────┼────────────────────────────┤
│ 成本:高                    │ 低                             │
├────────────────────────────┼────────────────────────────┤
│ 典型容量:KB~几十MB         │ GB 级                          │
├────────────────────────────┼────────────────────────────┤
│ 主要用途:CPU Cache          │ 主内存(DDR、LPDDR 等)         │
└────────────────────────────┴────────────────────────────┘

九、为什么现代计算机两者都不可或缺

现代计算机充分利用了两者的优势,形成存储层次结构(Memory Hierarchy)

                    ↑ 速度越来越快
                    ↑ 成本越来越高(每 bit)
                    ↑ 容量越来越小

          CPU 寄存器(Registers)
          L1 Cache(SRAM)
          L2 Cache(SRAM)
          L3 Cache(SRAM)
      主内存 DDR4 / DDR5(DRAM)
          SSD / HDD(非易失性存储)

                    ↓ 容量越来越大
                    ↓ 成本越来越低
                    ↓ 速度越来越慢

这种分层设计的核心思想是:

  • SRAM 提供极低延迟,满足 CPU 对热点数据的高速访问需求。
  • DRAM 提供大容量、低成本的主存空间,存放正在运行程序的数据。
  • SSD/HDD 提供持久化存储,保存操作系统、应用程序和文件。

因此,并不是 SRAM 或 DRAM 谁更先进,而是它们在整个计算机体系结构中承担着不同角色,共同在性能、容量和成本之间实现平衡。