存储器 — 导航

← 计算机组成原理知识地图 | ← 主页

这页先解决三个问题:数据通常放在哪、为什么要分层、为什么硬盘会比内存慢很多。

如果只想先建立整体印象,就顺着这页往下看;如果对某一层特别感兴趣,再点进对应专题。

🔗 一眼看懂存储器

一台计算机不会只靠一种存储器工作。CPU 处理数据时,最希望数据就在自己身边,但越快的存储器通常越贵、容量也越小,所以实际机器只能把不同速度、不同容量、不同成本的存储器组合起来用。

从 CPU 往外看,常见顺序是:寄存器 CPU Cache 内存 SSD/HDD 硬盘。通常越靠近 CPU,访问越快、容量越小、单位成本越高;越远离 CPU,访问越慢、容量越大、单位成本越低。


核心导航

🔴寄存器

寄存器是离 CPU 最近的一层,处理速度最快,但数量非常少。CPU 正在算的那个数据,往往就先放在这里。

→ 点进寄存器

🔴CPU Cache

CPU Cache 是寄存器外面的高速缓冲层,主要负责把“很快就要再用到的数据”提前留在 CPU 附近。这里不只有 L1、L2、L3 分层,还包括 Cache Line、命中与未命中、映射方式、局部性这些核心机制。

[→ 点进 CPU Cache](CPU Cache.md)

如果你想继续看多核下怎么保证各核心缓存不打架,看这里:

→ 点进缓存一致性与 MESI

🔴内存

内存是 CPU 外部最重要的工作区。程序运行时,代码和数据通常先放在内存里,CPU 再从内存把热点数据搬进 Cache。

→ 点进内存

🔴SSD / HDD 硬盘

硬盘负责长期保存大量数据,断电后内容也不会丢。它容量大、价格低,但访问速度远慢于内存,更不用说寄存器和 Cache。

→ 点进 SSD 与 HDD 硬盘


它们是怎么配合的

CPU 一般不会直接跨好几层去拿数据,而是按层次逐级取用。粗略理解就是:数据先长期放在硬盘,需要运行时装进内存,CPU 真的要用时再把热点数据搬进 Cache,最后进入寄存器参与运算。

如果你想专门看“为什么会形成这种一层层的结构、CPU 访问数据时会按什么顺序找”,看这里:

→ 点进存储器层次结构

为什么差距会这么大

寄存器、L1 Cache、内存、SSD、机械硬盘之间的延时差距,往往跨越多个数量级。这种差距决定了:只要数据没能留在更靠上的那一层,程序体感性能就会迅速下降。

如果你想单独看不同层之间的大致延时、价格和数量级差异,看这里:

→ 点进存储器价格与性能差距

深入入口


参考主线:小林coding《2.2 磁盘比内存慢几万倍?