本页目录

电路 V · 存储器与存储墙

层次:本科核心 + 业界核心产业 | 部分内容【前沿,核对于 2026-07】。 逻辑再快,取不到数据也没用。存储器占据现代芯片的大部分面积(处理器中缓存常占一半以上),也是半导体产业规模最大的单一品类之一。本页讲三种主流存储的原理与各自的缩放困境,最后讲那堵越来越高的墙:存储墙。

学习层:为什么一次缓存未命中,会抵消很多次算术?

1. 具体谜题:95% 命中率够不够?

考虑 \(10^6\) 次随机字访问:SRAM 缓存命中延迟 4 cycles,落到 DRAM 需要 250 cycles,片外 NAND 访问则是 \(10^5\) cycles 量级。若命中率从 95% 降到 90%,平均访问代价会增加多少?把算术单元性能翻倍,能不能补回这部分等待?

先预测:在两层 SRAM/DRAM 模型中,命中率提高 5 个百分点的收益;把所有访问直接送到 DRAM 的代价;为什么 NAND 的非易失性不能直接换成处理器缓存。

2. 先预测:快、大、便宜、非易失只能取舍

交互台会先让你选择工作负载和命中率。提交前判断:

  1. SRAM、DRAM、NAND 的访问延迟是否按层级单调增加?
  2. DRAM 单元为什么需要刷新,刷新与破坏性读是否会进入能量账本?
  3. NAND 每个单元从 SLC 变成 QLC 后,电平数与噪声裕量如何变化?
  4. 对一个固定算术量,减少一次片外搬运是否可能比增加一次乘法更重要?

3. 最小心智模型:每一层都是物理约束的折中

SRAM 用交叉耦合反相器保持双稳态,快但需要 6T 面积;DRAM 用 1T1C 保存电荷,密度高但漏电、刷新且读后回写;NAND 用绝缘层中的电荷移动阈值,非易失但只能块擦除、耐久有限。体系结构把它们串成层次,用近层命中率掩盖远层延迟。

因此“缓存优化”本质是把数据移动变少、变近、变宽或变可预测。实验不把单一延迟当成完整系统性能,还显示每次访问的能量和写入放大 proxy,让容量、延迟、能量和寿命同时进入决策。

4. 形式机制与不变量:期望代价与可靠性账本

两层缓存的平均访问时间是

\[ E[T]=hT_{\mathrm{SRAM}}+(1-h)T_{\mathrm{DRAM}}, \]

其中 \(h\) 是命中率;平均搬运能量同理为 \(E[E]=he_{\mathrm{SRAM}}+(1-h)e_{\mathrm{DRAM}}\)。若有 \(M\) 次访问,总等待 cycles 为 \(ME[T]\),在时钟频率 \(f\) 下时间为 \(ME[T]/f\)。

存储单元的物理不变量也不能删掉:SRAM 必须同时满足读稳定性与写能力;DRAM 的电荷会随时间衰减,需要刷新且读后回写;NAND 的 P/E 循环有限,多比特电平数从 \(2\) 增到 \(2^b\) 后电压裕量缩小,必须由 ECC、磨损均衡和 FTL 承担系统可靠性。

5. 交互实验:让一百万次访问把存储墙显形

无 JavaScript 时的静态读法:以 \(M=10^6\) 次访问、3 GHz 时钟为例。SRAM/DRAM 两层账本取 \(T_S=4\) cycles、\(T_D=250\) cycles、\(e_S=0.2\ \mathrm{pJ}\)、\(e_D=20\ \mathrm{pJ}\)。

策略 SRAM 命中率 平均延迟 总 cycles 总时间 平均能量/访问 总能量
良好局部性 95% \(.95\times4+.05\times250=16.3\) \(1.63\times10^7\) 5.43 ms 1.19 pJ 1.19 \(\mu\mathrm J\)
局部性变差 90% 28.6 \(2.86\times10^7\) 9.53 ms 2.18 pJ 2.18 \(\mu\mathrm J\)
全 DRAM 0% 250 \(2.50\times10^8\) 83.3 ms 20 pJ 20 \(\mu\mathrm J\)

脚本提供访问次数、SRAM 命中率、读写比例和目标层级控制,画出各层的延迟/能量柱形和当前工作负载的期望账本。写入 NAND 时会附加块擦除、写入放大与有限 P/E 循环的提示;它是用于架构比较的 proxy,不把 SSD 随机访问当作 DRAM 的等价替代。

6. 反例与失效边界:平均值也可能掩盖灾难

  • “平均访问 16 cycles 就是每次 16 cycles”忽略长尾、并发、排队、bank conflict、预取错误和一致性协议。
  • “缓存越大越好”忽略面积、漏电、访问端口、线长和 SRAM 的 \(V_{\min}\);容量增加可能拉长命中路径。
  • “DRAM 只是慢 SRAM”忽略电容刷新、破坏性读、灵敏放大器和独立工艺;它们的故障与能耗机制不同。
  • “QLC 只是每格多存几位”忽略电平间隔、误码率、P/E 寿命、ECC 计算和写放大,密度收益必须由系统可靠性支付。
  • “算力翻倍就能掩盖存储墙”在算术强度低、数据集超出缓存或片外带宽饱和时不成立;瓶颈是数据移动而非乘法吞吐。

7. 迁移题:从一次 miss 设计数据流

对一个矩阵乘或向量搜索任务,先估算每个元素的重用次数、SRAM 容量、DRAM 带宽和片外搬运能量,再选择分块、预取、HBM、算子融合或近存计算。请明确指出:哪一项减少了访问次数,哪一项只增加了带宽,哪一项改变了存储物理本身。

一、存储层次:一个被物理逼出来的结构

没有一种存储能同时做到快、大、便宜、非易失,所以只能分层:

层级 典型容量 访问延迟 每比特成本 易失性
寄存器 数百 B < 1 周期 极高 易失
SRAM(缓存) KB–数十 MB 1–40 周期 高 易失
DRAM(主存) GB ~200–400 周期 中 易失(需刷新)
NAND 闪存(SSD) TB ~10⁴–10⁵ 周期 低 非易失

每下一层,容量涨约三个数量级、延迟涨约两个数量级。整个计算机体系结构(缓存、预取、虚拟内存)都是为了掩盖这个层次差异而设计的(🔗 cs 站 CSAPP 存储层级、csapp-02)。本页提供那一层抽象之下的物理原因。

二、SRAM:快,但不再变小

6T 单元:两个交叉耦合的反相器构成双稳态锁存 + 两个访问管。

三个设计张力(全部围绕同一个矛盾):

用静态噪声容限(SNM)衡量。问题在于:提高写能力要求访问管强,而提高读稳定性要求访问管弱——两者直接冲突,且在低压与大变异下同时恶化。这就是为什么 SRAM 往往是决定芯片最低工作电压(\(V_{min}\))的模块,也催生了 8T 等读写分离单元(用面积换稳定性)。

关键的产业事实:SRAM 面积缩放已显著放缓。 逻辑还在缩,SRAM 却几乎停滞——因为它对变异极其敏感(承第八页 Pelgrom:精度用面积买)。后果是缓存在芯片面积中占比越来越高,且成为先进节点成本上升的主要推手之一,这也强化了把缓存分离到单独裸片、用 3D 堆叠连接的动机(第十五页)。

三、DRAM:一个电容和它的漏电

1T1C 单元:一个晶体管 + 一个电容,用电容上有无电荷表示 1/0。

缩放困境:电容值不能随意减小(否则信号淹没在噪声里),于是电容被做成深槽或高柱的三维结构,深宽比极高(几十比一),制造难度巨大。DRAM 的缩放主要靠工艺极限突破,而非结构创新——这与逻辑器件的路径不同。

DRAM 工艺与逻辑工艺不兼容(需要特殊的电容与低漏电晶体管),所以DRAM 通常是独立芯片。这正是"存储墙"的物理起点:数据必须跨越封装、走上电路板才能到达处理器。

四、NAND 闪存:用可靠性换密度

浮栅/电荷俘获:在栅极中嵌入一个绝缘包围的电荷存储层,注入电荷改变 \(V_{th}\),从而记录信息。断电电荷仍在 → 非易失。

三个关键性质:

3D NAND 是一次范式转移:平面缩放走到尽头后,改为垂直堆叠(现已达数百层),用一次刻蚀打通所有层。"不再缩小,而是堆高"——这个思路后来蔓延到了整个行业(3D 集成、Chiplet,第十五页)。NAND 是第一个成功转向三维的大宗半导体产品,具有示范意义。

纠错是必需品而非可选项:现代 NAND 的原始误码率高到无法直接使用,必须依赖强大的 ECC(LDPC 等)。存储系统的可靠性是"用编码换来的"(🔗 cs 站/数学站信息论)。

五、存储墙

处理器性能的增长长期快于存储带宽与延迟的改善,两者差距持续扩大——这就是存储墙(memory wall)。

今天的具体表现:

应对手段(后面各页展开):

六、要点


线二结束。下一线转向制造:这些电路究竟是怎么被造出来的?从一块硅晶圆到几百亿个晶体管,中间是人类工业史上最精密的流程。