CPU(Central Processing Units)
RAM(Random Access Memory)
ROM(Read-Only Memory)
当RAM处于正常工作时,可以从RAM中读出数据,也可以往RAM中写入数据。与ROM相比较,RAM的优点是读/写方便、使用灵活,特别适用于经常快速更换数据的场合。
CPU自身具有更快的存储单元,我们称之为缓存。
计算机的内存具有基于速度的层次结构,而缓存位于该层次结构的顶部,是最快的。它也是最靠近中央处理的地方,它是CPU本身的一部分。
高速缓存是静态RAM(SRAM),而系统RAM是动态RAM(DRAM)。静态RAM是一种可以保存数据但是不要用一直刷新的存储器,与DRAM不同,SRAM更加适合用于高速缓存。
缓存功能工作流程:
当我们运行程序的时候,这些指令必须从主存储器取指令到CPU。这是内存层次结构起作用的地方。
数据首先被加载到RAM中,然后被发送到CPU。因为CPU每秒都能够执行大量指令。为了充分利用其功能,CPU需要访问超高速内存,这是缓存的来源。
内存控制器执行从RAM中获取数据并将其发送到缓存的工作。根据系统中使用的CPU,此控制器可以位于主板的北桥芯片组上,也可以位于CPU本身内部。
然后,高速缓存在CPU内执行数据的来回传输。内存的层次结构也存在于缓存中。
CPU缓存分为三个主要的级别,即L1,L2和L3。这里的层次结构是根据缓存速度来划分的。
L1(1级)高速缓存是计算机系统中存在的最快的内存。就访问优先级而言,L1缓存具有CPU在完成特定任务时最可能需要的数据。
就其大小而言,L1高速缓存通常最多可达256KB。但是,一些真正功能强大的CPU现在将其占用近1MB。现在,某些服务器芯片组(如Intel的高端Xeon CPU)具有1-2MB的一级缓存。
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中找到它。
如果找不到数据,它将尝试从主内存访问数据。这称为高速缓存未命中(cache miss)。
现在,众所周知,高速缓存旨在加快主内存和CPU之间的数据传输。