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

存储层次全景模拟器使用指南

这个模拟器帮你看清什么

"L1 比主存快 100 倍"这句话背起来轻松,但做题时感受不到它意味着什么。这个模拟器把累计延迟一步步显示出来——你会亲眼看到从 L1 命中到主存命中,那个数字从 1.3 跳到 126.3。

概念本身别在这里学,见文末链接。

加载可视化中...

界面速览

位置控件作用
顶部层次概览 / 数据访问旅程切换两个场景
场景二顶部「数据在哪一层命中?」6 个按钮寄存器 / L1 / L2 / L3 / 主存 / 磁盘
中部金字塔层次图点任意一层,右侧面板换成该层信息
右侧统计面板容量 / 访问时间 / 每 GB 成本 / 技术 四项
底部◀ | ▶/⏸ | ▶上一步 | 播放暂停 | 下一步
底部速度下拉0.5x / 1x / 2x

场景一:层次概览

操作:点顶部「层次概览」,然后逐层点击金字塔的六层,每点一层看一次右侧面板。

盯哪里:右侧面板的访问时间每 GB 成本这两项。

该看到:从上往下,容量越来越大、访问时间越来越长、每 GB 成本越来越低——三条曲线同向变化,这就是"层次"二字的全部含义。

重点体会主存 → 磁盘那一跳:访问时间从约 100 ns 变成约 10 ms,差 10 万倍。一次缺页的时间够访问主存 10 万次——这就是缺页必须交给操作系统而 Cache 缺失只能靠硬件的原因。

场景二:数据访问旅程

怎么操作

  1. 在"数据在哪一层命中"里选一层——选择器有 6 个(寄存器 / L1 / L2 / L3 / 主存 / 磁盘)
  2. 选完画面停在静止的第 1 帧,需要手动点播放。控件栏在下方:单步后退 ◀ / 播放暂停 ▶⏸ / 单步前进 ▶ / 步进指示器 / 0.5x–1x–2x 倍速

每一步屏幕上出现什么:查找从寄存器开始逐层向下,所以选"主存命中"时一共 5 步,第 1 步显示的是"寄存器 未命中,继续向下查找…"。红色流动虚线表示向下查找、绿色表示向上返回数据,每一步显示累计延迟。

试着对比不同命中位置

(累计延迟均从寄存器 0.3 ns 起算)

  • 寄存器命中:0.3 ns
  • L1 命中:1.3 ns
  • L3 命中:26.3 ns
  • 主存命中:126.3 ns(Cache 全部缺失的代价)
  • 磁盘命中:10,000,126.3 ns ≈ 10 ms(缺页!)

看完这个对比你就明白了:Cache 的命中率哪怕只差 1%,对性能的影响都可能是几十倍。

右侧面板还会常驻显示两种局部性的说明,可以对照着看。

两个动手任务

  1. 依次选"L1 命中"和"主存命中",把两个累计延迟抄下来相除。这个倍数就是 Cache 存在的全部理由。再想一想:命中率从 99% 掉到 98%,平均访问时间会变成多少?(用 命中时间+缺失率×缺失代价 自己算一遍,再看看变化幅度。)
  2. 选"主存命中"单步走完 5 步,每一步记下当前查到哪一层。走完你应该能回答:为什么查找是逐层向下而不是直接去主存?(因为 CPU 并不知道数据在哪,只能一层层问。)

概念去哪里学

本文只讲怎么用这个模拟器。它演示到的知识点都有专文,别在这里学概念:

想搞清楚去看
时间/空间局部性的定义与代码判定存储层次结构综述
Cache 工作流程、命中率、平均访问时间的两种模型Cache基本概念与工作原理
SRAM vs DRAM、刷新、FlashSRAM与DRAM
多级 Cache 的性能计算Cache性能分析

特别提醒:模拟器右侧用的是 平均访问时间=命中时间+缺失率×缺失代价 这一形式,它对应的是"先访 Cache、未命中再访主存"的串行模型。做题时若题面描述的是"同时访问",公式要换——判据见 Cache基本概念与工作原理

真题练习

相关真题(1题)