CPU 缓存 怎么工作
CPU要计算,数值就得在手边。可是快的存储小,大的存储慢。所以计算机像手边的书桌和远处的书架那样,把存储分成好几层。
书桌和书架
想想学习的时候。
伸手够得着的书桌上只能放几本书,但一伸手就能拿到。
书架上能插很多书,却得起身走过去。
存储也一样:近的快而小,远的大而慢。
近处和远处,得到什么,又付出什么。
两样不能兼得。
又快又大的存储,要么太贵,要么很难造出来。
所以只能选择:少放一点但很快,或者多放一些但很慢。
按远近一层层叠起来
所以计算机不只用一种存储。
从离CPU最近、又小又快的存储,到离得远、又大又慢的存储,一层层叠起来。
越往上越快越小,越往下越大越慢。
上面快而小,下面大而慢。
第9课看到的内存,就是其中的一层。
它上面有更快的缓存和寄存器,下面有更大更慢的存储设备。
常用的放上面,不常用的放下面。
从书桌上拿,还是走到书架那儿
CPU需要一个值时,如果它就在近处的缓存里,眨眼间就能拿到。
要是得跑到远处的内存去,就要多花那么多时间。
同一个值,放在哪里,花的时间就大不一样。
近处 vs 远处,取来要花的时间。
所以计算机会把刚用过的值、马上可能还要用的值,挪到近处的缓存里。
下次需要时,就不必跑远路了。
小小的准备,能省下大把时间。
书桌上有没有
如果CPU要找的值已经在近处的缓存里,就叫“命中”,马上就能拿到。
要是没有,就叫“未命中”,得一路跑到内存再回来。
所以把常用的值放好在缓存里非常重要。
要找的值在不在缓存里,路线就不一样。
命中越多,计算机就越快。
所以“常用的放在近处”这条规则,是管理存储的关键。
说白了,就是把小小的缓存用得聪明。
不能全部都做得很快吗?
全部用快的存储,就太贵,也装不了多少。
全部用大的存储,又太慢。
分成好几层,就是两者之间的折中。
在下面把三种方案都选一遍,就能明白为什么。
全部求快 · 全部求大 · 分成几层。
常用的放在小而快的上层,不常用的放在大而慢的下层。
靠这样分层,计算机既快,又能记住很多东西。
下一课我们来看,这些零件怎样连成一台完整的计算机。