收集云服务器优惠信息
记录云服务器使用心得

什么是高速缓冲存储器?高速缓冲存储器原理和构成介绍

高速缓冲存储器(Cache Memory)在计算和数据处理中起着关键作用,毕竟它是所有现代计算机/服务器系统用来存储数据以便快速、轻松访问的关键组件。从台式电脑和数据中心到基于云的计算资源,一切都使用快速静态随机存取存储器(SRAM),也称为高速缓存,与中央处理单元(CPU) 一起工作。

虽然计算机的快速性能通常归功于其RAM功率或处理器,但高速缓存对设备的整体性能质量有着巨大而直接的影响。在本文中,小编将主要介绍高速缓存的工作原理、其各种类型,以及为什么它对于计算机系统的平稳运行至关重要。

工作原理

有些计算机包含SSD高速缓存,通常称为闪存缓存。它用于临时存储数据,直到永久存储方法能够处理它,从而提高设备的性能。然而,由于CPU是负责提取和处理信息的组件之一,并且它的工作速度比平均 RAM快得多,因此用户在尝试从RAM读取传入指令时可能会被迫等待,这会导致性能和速度降低。

高速缓存的作用是防止CPU与内存储器之间速度不匹配问题,这是通过在CPU附近安装小容量但快速的SRAM来实现的。然后,SRAM获取RAM中某些内存地址处的数据或指令,并将其与这些指令或数据的原始地址的记录一起临时复制到高速缓冲存储器中。因此,这可以防止CPU必须等待的情况发生,这就是使用缓存来提高读取性能的原因。

此外,由于任何给定设备的高速缓存相对于其RAM和CPU计算能力都很小,因此它不能始终保存所有必要的数据。根据最终发生的情况,可能会导致所谓的“缓存命中”或“缓存未命中”。

高速缓冲存储器

内存缓存命中

当CPU从高速缓存中读取指令并找到相应的信息时,这称为高速缓存命中。由于高速缓冲存储器速度更快且距离CPU更近,因此它最终成为向CPU提供数据和指令并使其开始处理的存储器。

如果发生高速缓存命中,高速缓存将充当CPU和主RAM之间的高速中介和队列。需要将数据或指令写回RAM或内存的进程必须首先经过高速缓冲存储器,直到RAM能够到达。这样,CPU就不会因为等待RAM的响应而减慢速度。

根据高速缓冲存储器的写入策略,这种对应关系有多种发生方式。其中一项策略称为“直写”。这是最简单、最直接的方法,其中写入高速缓存的任何内容也会写入RAM。回写”策略允许写入高速缓存的数据立即写入RAM,并且写入高速缓存的任何内容在其持续时间内都被标记为“dirty”。

这表明数据与从RAM中提取的原始数据或指令不同。只有当它从高速缓冲存储器中删除时,才会被写入RAM,替换原始信息。另外,一些中间高速缓冲存储器写入策略允许“dirty”信息排队并批量写回主RAM。与使用多个单独写入相比,这是一种更有效的方法。

内存缓存未命中

如果CPU去读取高速缓存上的信息或指令,但无法找到所需的数据,而必须直接求助于硬盘驱动器和RAM,这称为高速缓存未命中。这降低了设备处理的速度和效率,因为它现在必须根据RAM和硬盘驱动器的速度进行操作。

之后,当从RAM中成功检索所需的信息或指令时,它们首先会被写入高速缓存,然后再被发送到CPU进行处理。发生这种情况主要是因为CPU最近使用过的数据或指令可能仍然很重要,并且需要很快再次访问。将其写入高速缓存可以使CPU不必再次返回RAM或硬盘驱动器来检索相同的数据。

在极少数情况下,某些数据类型可以标记为不可缓存。这是为了防止宝贵的高速缓存空间被不必要的数据占用,即使CPU已从RAM或硬盘驱动器手动检索这些数据。

高速缓存“驱逐”

与RAM和硬盘驱动器相比,高速缓存的存储容量很小。虽然普通消费类设备的RAM范围在2GB到64GB之间,硬盘驱动器达到1TB到2TB,但高速缓存的容量在2KB到几兆字节之间。存储容量的这种明显差异意味着,有时当CPU仍需要提取信息时,高速缓存会变满。 “驱逐” 是从高速缓存中删除数据以释放空间用于需要写入其中的信息的过程。

哪些数据将被驱逐是通过“替换策略”根据最常用和重要的信息来确定的。有许多可能的替代政策,最常见的策略之一是最近最少使用(LRU)策略。根据此策略,如果最近未使用过数据或指令,则与最近需要的数据或指令相比,在不久的将来需要它们的可能性较小。

常见类型

高速缓存根据其物理位置和与设备CPU的接近程度分为两类:

  • 主高速缓存:主高速缓存也称为主高速缓存,是与CPU位于同一芯片上的SRAM,尽可能靠近安装。这种类型通常用于CPU和RAM之间的信息存储和检索。
  • 辅助高速缓冲存储器:辅助高速缓冲存储器与主高速缓冲存储器是相同的硬件。然而它的位置距离CPU较远,确保了CPU在需要时可以访问的备份SRAM的存在。

尽管根据系统中的物理位置来描述高速缓冲存储器是准确的术语,但现在这两种术语都已不再使用。这是因为现代缓存存储器可以制造得足够小,并且具有足够的容量,可以毫无问题地放置在与CPU相同的芯片上。相反,现代高速缓冲存储器是按级别引用的。

常见类型

缓存内存级别组成

现代计算机系统具有多个高速缓存,这些高速缓存的大小和与处理器核心的距离各不相同,因此速度也各不相同。这些称为缓存级别。最小且最快的高速缓冲存储器被称为一级高速缓存或L1高速缓存,其次是L2高速缓存,然后是L3高速缓存。现在大多数系统都有L3缓存。自从推出Skylake芯片以来,英特尔  还在其部分处理器中添加了L4缓存。然而,这种情况并不常见。

1级缓存

一级缓存是最快的缓存类型,因为它直接嵌入到CPU本身中,但出于同样的原因,它的大小受到严格限制。它以与CPU相同的时钟速度运行,使其成为RAM在请求和存储信息和指令时的出色缓冲区。

L1缓存往往分为两部分,一部分用于指令(L1i),另一部分用于数据(L1d)。这是为了支持处理器使用的各种获取带宽,因为大多数软件往往需要比指令更多的数据缓存。最新器件的缓存容量为64KB—L1i为32KB,L1d为32KB。在四核处理器中,L1高速缓存总计可达256KB。

2级缓存

二级缓存通常也位于CPU芯片内部,但距离核心比一级缓存更远。它们比L1同类产品便宜得多,并且尺寸和容量更大,每个内核的大小可以从128KB到8MB不等。在某些情况下,L2高速缓存存储器在单独的处理芯片(也称为协处理器)上实现。

3级缓存

三级高速缓存有时称为末级高速缓存(LLC),位于CPU外部,但仍然非常接近。它比L1和L2缓存大得多,但速度慢一些。

另一个区别是L1和L2高速缓存存储器是其处理器核心专用的,不能共享。另一方面,L3可用于所有内核。这使得它能够在数据共享和内核间通信中发挥重要作用,在某些情况下,根据设计,还可以与图形处理单元(GPU)的缓存一起发挥重要作用。

至于大小,现代设备上的L3缓存往往在每个核心10MB到64MB之间,或者取决于设备的规格。

缓存内存级别组成

什么是缓存映射?

由于高速缓存的速度令人难以置信,并且随着软件计算过程的要求而不断变得更大,因此需要有一个系统来检索所需的信息。否则,CPU最终可能会浪费时间在内存中搜索正确的指令,而不是实际处理它。

处理器知道它想要读取的数据或指令的RAM内存地址,它必须搜索内存高速缓存以查看内存高速缓存中是否存在对该RAM内存地址的引用以及关联的数据或指令。

有多种方法可以将从RAM提取的数据和指令映射到高速缓存,并且它们倾向于优先考虑某些方面。例如,最小化搜索速度会降低其准确性并降低缓存命中的可能性。同时,最大化缓存命中的机会也会增加平均搜索时间。

根据速度和准确性的不同程度的折衷,目前主要存在三种类型的缓存映射技术。

直接缓存映射

直接高速缓存映射是最简单、最直接的信息恢复技术。通过这种方法,每个内存块都被分配到高速缓存中的特定行,该行由RAM的给定地址确定。基于此,CPU只需要搜索这个单独的块来检查所需的信息是否可用。然而,它并没有存储在那个确切的位置,CPU将其标记为缓存未命中,并继续直接从RAM中搜索和提取信息。

直接映射的效率非常低,尤其是对于规格较高且高速缓存和CPU中的数据和指令流较大的设备。

关联高速缓存映射

关联缓存映射与直接方法完全相反。当从RAM中提取数据和指令时,任何块都可以进入内存缓存的任何行,从而随机化其位置。当CPU搜索特定信息时,它必须检查整个高速缓冲存储器以查看它是否包含它要查找的内容。

这种方法产生很高的缓存命中率,并且CPU很少直接从RAM检索信息。然而,仅与高速缓冲存储器通信所节省的时间在每次需要指令时都浪费了搜索其所有行的时间。

组相联高速缓存映射

组相联缓存映射是直接缓存映射和关联缓存映射之间的一种折衷方法,旨在最大化缓存命中事件,同时最小化每个请求的平均搜索时间。为了实现这一点,从RAM中提取的每个数据块只允许映射到有限数量的不同高速缓冲存储器块。

这也称为N路组相联缓存映射。对于每个信息或指令点,都有N个块,可以在其中进行映射并随后由CPU找到。

2路组相联映射系统使RAM可以选择将数据放置在高速缓冲存储器中的两个位置之一。在这种情况下,缓存命中的可能性会增加,但平均搜索时间会加倍,因为CPU需要检查两倍的潜在块。

4路组相联映射系统为RAM提供四个潜在映射块,8路映射系统提供8个潜在映射块,16路映射系统提供16种变化。N值越高,缓存命中的机会就越大,但CPU的平均数据块恢复时间也就越长。

所以,N的值根据设备及其用途进行调整,选择时间与缓存命中的平衡比率。

使用高速缓存加快设备处理速度

高速缓存是一种临时存储硬件,允许CPU重复检索信息和指令,而无需求助于RAM或硬盘。对于计算机和服务器,它们构建在设备内部并尽可能靠近设备核心,以减少处理时间。高速缓存存储器根据其与设备 CPU的接近程度按级别分类,分别为L1、L2和L3。一般设备的每个核心包含多个级别的缓存,容量越大,设备的计算速度越快。

此外,速度还严重依赖于高速缓存的映射技术以及它是否优先考虑时间或信息搜索准确性。存在三种技术:直接映射、关联映射和组相联映射。

总结

高速缓冲存储器是计算机系统中的一种特殊类型的存储器,其主要目的是提高系统性能和数据访问速度。它位于中央处理器(CPU)和主存储器(RAM)之间,作为临时的数据存储区域。缓存存储器的设计原则是利用局部性原理,即程序在执行过程中倾向于访问临近的数据或指令,因此将这些常用的数据暂时保存在缓存中,可以更快地响应处理器的读写请求,从而减少对主存储器的频繁访问,提高整体系统性能。其主要功能特点包括:

  1. 层次结构:通常被设计成多层结构,通常包括一级缓存(L1 Cache)、二级缓存(L2 Cache)和三级缓存(L3 Cache)。这些层级的缓存按照距离处理器的远近和容量大小来划分,一级缓存最接近处理器且容量最小,而三级缓存离处理器较远但容量较大。
  2. 容量与速度:容量相对主存储器来说较小,但速度非常快,通常比主存储器的访问速度快几倍甚至更多。这种差异在CPU时钟频率越来越高的现代处理器中显得尤为重要,因为处理器可以更快地处理数据,但如果数据存取速度不跟上,处理器会被阻塞等待数据。
  3. 存储器类型:一般采用静态随机存取存储器(SRAM)构成,因为SRAM具有快速的访问时间和较低的功耗,适合作为高速缓存。与之相比,主存储器一般采用动态随机存取存储器(DRAM),其容量较大但访问速度相对较慢。
  4. 缓存策略:其管理采用一定的缓存策略,常见的策略包括直接映射、组相联映射和全相联映射。这些策略用于确定数据在缓存中的存储位置和替换策略,以最大程度上提高缓存的命中率(Cache Hit)。

简单来说,高速缓冲存储器在计算机系统中发挥着至关重要的作用,它显著地提高了系统性能,使得CPU可以更高效地访问所需的数据和指令,从而加快计算机的运行速度。

赞(0)
网站声明:本文内容由趣云笔记原创,部分资源收集于网络,如有侵权请联系企鹅:2472781824删除。
文章名称:《什么是高速缓冲存储器?高速缓冲存储器原理和构成介绍》
文章链接:https://www.ecscoupon.com/1212.html
本站资源仅供个人学习交流,未经允许不得转载,更不允许用于商业用途。如需转载,请注明来源,感谢理解!