cache是什么存储器(cache是指)

lxf2023-03-17 17:59:01

cache被称为高速缓冲存储器,是介于中央处理器和主存储器之间的高速小容量存储器,通常由高速SRAM组成;这种局部存储器是针对CPU的,它是为了减少或消除CPU和内存之间的速度差异对系统性能的影响。cache容量小但速度快,内存速度低但容量大,通过优化调度算法,系统性能将大大提高。

cache是什么存储器(cache是指)

什么是存储器?

Cache存储器:计算机为高速缓冲存储器,位于CPU和主存储器DRAM(Dynamic Random Access Memory)之间,规模较小但速度较高的存储器通常由SRAM制成(Static Random Access 由Memory静态存储器组成。

cache是什么存储器(cache是指)

如图3.28所示,cache是介于CPU和主存M2之间的小容量存储器,但存取速度比主存快,容量远小于主存。cache 它可以高速向注册会计师提供指令和数据,从而加快程序的执行速度。从功能上看,它是由高速SRAM组成的主存储缓冲存储器。为了追求高速,包括管理在内的所有功能都是通过硬件实现的,因此对程序员是透明的。

目前,随着半导体器件集成度的提高,可以提高小容量 cacheCPU 集成到同一芯片中,其工作速度接近CPU的速度,从而形成两级以上的Cache系统。

cache的功能

Cache的功能是提高CPU数据输入输出的速度。Cache容量小但速度快,内存速度低但容量大。通过优化调度算法,系统的性能将大大提高,仿佛其存储系统的容量与内存相当,访问速度与Cache相似。

CPU的速度远高于内存。当CPU直接从内存中访问数据时,需要等待一定的时间周期,而Cache可以保存CPU刚刚使用或回收的部分数据。如果CPU需要再次使用这部分数据,可以直接从Cache中调用,避免重复访问数据,减少CPU的等待时间,从而提高系统的效率。Cache又分为L1Cache(一级缓存)和L2Cache(二级缓存),L1Cache主要集成在CPU内部,而L2Cache集成在主板或CPU上。

cache的基本原理

除了SRAM,cache还有控制逻辑。如果cache在CPU芯片之外,它的控制逻辑通常与主存控制逻辑合成,称为主存/chace控制器;如果cache在CPU中,CPU将提供其控制逻辑。

CPU与cache之间的数据交换以字为单位,而cache与主存之间的数据交换以块为单位。一块由几个字组成,是定长的。当CPU读取内存中的一个字时,将此字的内存地址发送到Cache和主存。此时,cache控制逻辑根据地址判断该字目前是否在cache中:如果是,cache命中,该字立即传输给CPU;如果没有,cache将缺失(未命中),并将主存读周期中的单词从主存读出并发送到CPU。同时,将包含该单词的整个数据块从主存读出并发送到cache。

cache是什么存储器(cache是指)

图3.29显示了cache的原理图。假设cache读出时间为50ns,主存读出时间为250ns。存储系统是模块化的,主存中每个8K模块与16字容量的cache相连。cache分为四行,每行四个字(W)。将分配给cache的地址存储在相连的存储器CAM中,它是根据内容寻址的存储器。当CPU执行访存指令时,将要访问的字的地址发送到CAM;如果W不在cache中,则将W从主存传输到CPU。同时,将包含W的四个字组成的一行数据发送到cache,取代原来cache中的一行数据。在这里,由始终管理cache使用情况的硬件逻辑电路实现替换算法。

cache的命中率

从CPU的角度来看,增加Cache的目的是使主存储的平均读取时间尽可能接近Cache的读取时间。为了实现这一目标,Cache满足CPU需求的部分在所有存储器访问中应占很高的比例,即Cache的命中率应接近1。由于程序访问的局部性,有可能实现这一目标。

在程序执行过程中,设置NC表示cache完成访问的总次数,Nₘ表示主存完成访问的总次数,h定义为命中率,h有h=Nc/(Nc+Nₘ)

若tc表示命中时的cache访问时间,tₘ表示未命中时的主存访问时间,1-h表示未命中率(缺失率),则cache/主存系统的平均访问时间tₐ为

tₐ=htc (1−h)tₘ

我们追求的目标是以较小的硬件成本使cache/主存系统的平均访问时间tₐ越接近 TC越好。设置 r=tₘ/tc表示主存与cache的访问时间之比,e表示访问效率,则有

e=tc/ta=tc/(htc (1−h)tm)=1/(h (1−h)r)=1/(r (1−r)h)

由此可见,为了提高访问效率,命中率h越接近1越好。r值为5~10,不宜过大。

命中率h与程序行为、cache容量、组织方式、块大小有关。

cache结构设计必须解决的问题

从cache的基本工作原理可以看出, cache的设计需要遵循两个原则:一是希望cache的命中率尽可能高,实际上接近1;二是希望Cache对CPU是透明的,也就是说,不管是否有Cache, CPU访问存储的方法是一样的,软件可以访问cache,无需添加任何指令。从CPU访存的角度来看,内存将具有主存的容量和接近cache的速度。为此,必须增加一定的硬件电路来完成控制功能,即cache控制器。

在设计cache结构时,必须解决几个问题:①如何存储主存储内容进入cache?②访问存储时如何找到cache中的信息?③当cache空间不足时,如何更换cache中现有的内容?④如何在操作中改写cache的内容?

其中,前两个问题是相互关联的,即如何在cache中定位主存信息,如何将主存地址转换为cache地址。与主存容量相比, cache的容量很小,它保存的内容只是主存内容的一个子集,而cache与主存的数据交换是以块为单位的。为了将主存块放入cache中,必须采用某种方法将主存地址定位到cache中,称为地址映射。“映射”一词的物理含义是确定位置的对应关系,并用硬件来实现。这样,当CPU访问存储器时,它给出的一个字的内存地址就会自动转换为cache地址,即cache地址转换。

cache替换的主要问题是选择和执行替换算法,以便在cache不命中时替换cache中的内容。最后一个问题涉及cache的写作操作策略,重点是在更新时保持主存储和cache之间的一致性。

更多相关知识,请访问常见问题栏目!

以上是cache是什么存储器?详情请关注AdminJS的其他相关文章!