在过去的几年中,计算机处理器取得了相当大的进步,晶体管的尺寸每年都在变小,而且这种进步达到了摩尔定律迅速变得多余的地步。
处理器,不仅是晶体管和频率,还有缓存。
在讨论CPU(中央处理单元)时,您可能听说过缓存。但是,我们并没有过多地关注这些数字,它们也不是这些CPU广告的主要亮点。
那么,CPU缓存到底有多重要?它如何工作?
什么是CPU缓存?
简单地说,缓存只是一种非常快速的内存类型。您可能知道,计算机内部有多种内存类型。有一个主存储,例如硬盘或SSD,用于存储大量数据(操作系统和所有程序)。
接下来,我们有了随机存取存储器,通常称为RAM。这比主存储要快得多。
最后,CPU内部有更快的内存单元,我们称之为缓存。
计算机中的内存具有层次结构,基于速度,并且缓存位于该层次结构的顶部,是最快的。它也是离中央处理器最近的地方,它是CPU本身的一部分。
缓存是静态RAM(SRAM),而系统RAM是动态RAM(DRAM) )。静态RAM是一种可以保存数据而无需不断刷新的数据,与DRAM不同,它使SRAM非常适合用于缓存。
CPU缓存如何工作?
可能已经知道,程序被设计为一组指令,由CPU运行。当您运行程序时,这些指令必须从主存储器到CPU。这就是内存层次结构发挥作用的地方。
数据首先被加载到RAM中,然后被发送到CPU。这些天的CPU每秒能够执行大量指令。为了充分利用其功能,CPU需要访问超高速内存。这就是缓存所在的位置。
内存控制器执行从RAM中获取数据并将其发送到缓存的工作。根据系统中使用的CPU,此控制器可以位于主板上的北桥芯片组上,也可以位于CPU本身内部。
然后,缓存将在CPU内来回数据。
(如果您想了解CPU本身的工作原理,请查看我们的文章,介绍CPU的基本知识。)
CPU缓存分为三个主要的“级别":L1,L2和L3。这里的层次结构还是根据速度以及缓存的大小而定。
L1(级别1)缓存是计算机系统中存在的最快的内存。就访问优先级而言,L1缓存具有CPU在完成特定任务时最可能需要的数据。
就大小而言,L1缓存通常高达256KB。但是,一些真正功能强大的CPU现在将其占用近1MB。现在某些服务器芯片组(如Intel的高端Xeon CPU)具有1-2MB的L1缓存。
L1缓存通常还分为两种方式,即指令缓存和数据缓存。指令高速缓存处理有关CPU必须执行的操作的信息,而数据高速缓存则保留要在其上执行操作的数据。
L2(2级)高速缓存比L1高速缓存,但更大。它的大小通常在256KB到8MB之间,尽管更新,功能强大的CPU往往会超过此大小。 L2高速缓存保存下一步可能由CPU访问的数据。在大多数现代CPU中,L1和L2高速缓存存在于CPU内核本身,每个内核都有自己的高速缓存。
L3(3级)高速缓存是最大的高速缓存存储单元,也是最慢的一。它的范围从4MB到50MB以上。现代CPU在CPU裸片上具有用于L3高速缓存的专用空间,并且占用了很大一部分空间。
高速缓存命中或未命中和延迟
RAM到L3缓存,然后是L2,最后是L1。当处理器正在寻找要执行操作的数据时,它首先尝试在L1高速缓存中找到它。如果CPU能够找到它,则该情况称为高速缓存命中。然后继续在L2和L3中找到它。
如果找不到数据,它将尝试从主内存中访问它。这称为高速缓存未命中。
现在,我们知道,高速缓存旨在加快主内存和CPU之间信息的来回传输。从内存访问数据所需的时间称为延迟。 L1具有最低的延迟,是最快的,并且最接近核心,而L3具有最高的延迟。缓存未命中时,延迟会增加很多。这是因为CPU必须从主内存中获取数据。
随着计算机变得越来越快和越来越好,我们看到了等待时间的减少。现在,我们拥有低延迟的DDR4 RAM,以及具有低访问时间的超高速SSD作为主要存储,这两项都大大降低了整体延迟。如果您想进一步了解RAM的工作原理,这是我们快速而肮脏的RAM指南。
以前,缓存设计曾经使L2和L3缓存位于CPU外部,这对CPU产生了负面影响。
但是,与CPU晶体管有关的制造工艺的进步使得有可能将数十亿个晶体管安装在比以前更小的空间中。结果,为缓存留出了更多空间,这使缓存尽可能地靠近核心,从而大大减少了延迟。
缓存的未来
缓存设计是总是在发展,尤其是随着内存变得更便宜,更快和更密集。英特尔和AMD在缓存设计方面进行了相当多的试验,英特尔甚至还在试验L4缓存。 CPU市场正以前所未有的速度向前发展。
因此,我们一定会看到缓存设计跟上CPU不断增长的力量。
此外,还有为减少现代计算机的瓶颈,已经做了很多工作。减少内存延迟可能是其中最大的一部分。业界正在为相同的解决方案而努力,并且未来的前景似乎非常广阔。
您甚至可能听说过Intel Optane,它可以用作一种混合外部缓存。如果您还没有,请查看我们的文章,探讨Intel Optane的潜在应用。