Cache · Architecture · Visualization

缓存与体系结构可视化实验室

通过 8 个交互式模块,直观理解现代处理器缓存层次、替换算法、一致性协议、虚拟内存与预取机制。所有可视化均为纯 SVG + 原生 JS 实现,零依赖。

8 modules pure HTML/CSS/JS SVG · zero deps MESI / NUMA / TLB
01 — Hierarchy

CPU 缓存层次

L1 / L2 / L3 多级缓存与命中率分析。观察一次访存请求如何自上而下穿透各级缓存,并统计各级命中与 miss 比例。

点击「访存」模拟一次内存访问,观察请求穿透各级缓存的过程。
0L1 命中
0L2 命中
0L3 命中
0主存访问
0%总命中率
0总访问
02 — Replacement

缓存替换策略

LRU / LFU / FIFO / ARC / Pseudo-LFU 替换算法对比。对同一访问序列逐步推进,观察不同策略下的命中与淘汰行为。

选择算法后点击「下一步」逐步执行访问序列,观察命中与淘汰。
0命中
0缺失
0%命中率
0淘汰次数
0/0B1/B2 幽灵
03 — Coherence

缓存一致性

MESI / MOESI 协议与总线嗅探。多核共享同一缓存行,观察读写在总线上引发的状态迁移与失效广播。

选择核心与操作,观察 MESI 状态迁移与总线嗅探广播。
0总线事务
0失效广播
0写回次数
I·I·I·I当前状态
04 — Virtual Memory

虚拟内存

TLB / Page Table / Page Fault 地址翻译流程。观察虚拟地址经 TLB 加速、页表遍历,以及缺页时的处理过程。

点击「访存」生成虚拟地址,观察 TLB 查询、页表遍历与缺页处理。
0TLB 命中
0TLB 缺失
0%TLB 命中率
0缺页次数
0页表遍历
05 — Write Policy

写策略

Write-Through / Write-Back / Write-Allocate 写策略对比。观察写命中与写缺失时数据在缓存与主存间的流动。

选择写策略后点击「写」或「读」,观察数据流动与脏位变化。
0缓存写入
0主存写入
0脏行数
0写回次数
0写流量
06 — Associativity

分组策略

Direct-Mapped / Set-Associative / Fully-Associative 映射方式。观察同一组内的冲突与路数对命中率的影响。

选择映射方式后点击「访存」,观察地址映射到组与路的放置及冲突。
0命中
0缺失
0%命中率
0组冲突
0淘汰
07 — Prefetch

缓存行预取

硬件预取与流检测。观察预取器如何识别访问模式,提前取入缓存行以隐藏访存延迟。

选择模式后逐步推进,观察预取器检测流并提前取入缓存行。
0需求命中
0需求缺失
0预取发出
0有效预取
—预取准确率
08 — Directory / NUMA

多级缓存一致性

目录协议与 NUMA。多节点系统中,目录记录共享者,避免广播,观察远程访问与失效的精确传播。

选择宿主与请求节点,观察目录协议下的远程访问与精确失效。
0本地命中
0远程访问
0精确失效
0写回
—共享者集合