seegongsik
结构

CPU 缓存 怎么工作

CPU要计算,数值就得在手边。可是快的存储小,大的存储慢。所以计算机像手边的书桌和远处的书架那样,把存储分成好几层。

01

书桌和书架

想想学习的时候。
伸手够得着的书桌上只能放几本书,但一伸手就能拿到。
书架上能插很多书,却得起身走过去。
存储也一样:近的快而小,远的大而慢。

速度
快
大小
小
书桌上拿得快,可放得少。

近处和远处,得到什么,又付出什么。

两样不能兼得。
又快又大的存储,要么太贵,要么很难造出来。
所以只能选择:少放一点但很快,或者多放一些但很慢。

02

按远近一层层叠起来

所以计算机不只用一种存储。
从离CPU最近、又小又快的存储,到离得远、又大又慢的存储,一层层叠起来。
越往上越快越小,越往下越大越慢。

寄存器
就在 CPU 里头,最快最小的记忆。

上面快而小,下面大而慢。

第9课看到的内存,就是其中的一层。
它上面有更快的缓存和寄存器,下面有更大更慢的存储设备。
常用的放上面,不常用的放下面。

03

从书桌上拿,还是走到书架那儿

CPU需要一个值时,如果它就在近处的缓存里,眨眼间就能拿到。
要是得跑到远处的内存去,就要多花那么多时间。
同一个值,放在哪里,花的时间就大不一样。

从缓存(近)快
从内存(远)慢
从近处的缓存取,快得多。所以把常用值放在缓存里。

近处 vs 远处,取来要花的时间。

所以计算机会把刚用过的值、马上可能还要用的值,挪到近处的缓存里。
下次需要时,就不必跑远路了。
小小的准备,能省下大把时间。

04

书桌上有没有

如果CPU要找的值已经在近处的缓存里,就叫“命中”,马上就能拿到。
要是没有,就叫“未命中”,得一路跑到内存再回来。
所以把常用的值放好在缓存里非常重要。

CPU 找一个值
→ 看看缓存
→ 有!
命中 · 马上拿到
在缓存里就命中(快),不在就未命中(走到内存来回,慢)。

要找的值在不在缓存里,路线就不一样。

命中越多,计算机就越快。
所以“常用的放在近处”这条规则,是管理存储的关键。
说白了,就是把小小的缓存用得聪明。

05

不能全部都做得很快吗?

全部用快的存储,就太贵,也装不了多少。
全部用大的存储,又太慢。
分成好几层,就是两者之间的折中。
在下面把三种方案都选一遍,就能明白为什么。

速度
大小
价格
快和大都抓住,价也合适
好几层是正解,因为它把速度和大小都抓住一些,价也合适。

全部求快 · 全部求大 · 分成几层。

常用的放在小而快的上层,不常用的放在大而慢的下层。
靠这样分层,计算机既快,又能记住很多东西。
下一课我们来看,这些零件怎样连成一台完整的计算机。

一句话总结快的存储小而贵,大的存储慢。所以计算机按远近把存储叠成好几层,把常用的值放在近处的缓存里,提高命中率。小小的准备,省下大把时间。
← 结构
如果有帮助,请支持我们