3.6.1cache 基本原理
1.cache 的功能
cache 是一种高速缓冲存储器,是为了解决 CPU和主存之间速度不匹配而采用的一项重要技术。其原理基于程序运行中具有的空间局部性和时间局部性特征。
如图3.28所示,cache是介于CPU和主存M2之间的小容量存储器,但存取速度比主存快,容量远小于主存。cache能高速地向CPU提供指令和数据,从而加快了程序的执行速度。从功能上看,它是主存的缓冲存储器,由高速的SRAM组成。为追求高速,包括管理在内的全部功能由硬件实现,因而对程序员是透明的。
2.cache的基本原理
cache 除包含SRAM外,还要
般与主存控制逻辑合成在一起,称
供它的控制逻辑。
有控制逻辑。若cache在CPU芯片外,它
为主存/chace控制器;若cache在CPU内,
则由CPU提供它的控制逻辑。
CPU与cache之间的数据交换是以字为单位,而cache与主存之间的数据交换是以块为单位。一个块由若干字组成,是定长的。CPU读取内存中一个字时,便发出此字的内存地址到cache和主存。此时cache控制逻辑依据地址判断此字当前是否在cache中:若是,则cache命中,此字立即传送给CPU;若非,则cache 缺失(未命中),用主存读周期把此字从主存读出送到CPU,与此同时,把含有这个字的整个数据块从主存读出送到cache中。
TP 3.cag率 电路来实现替换算法。
为了达到这个目的,在所有的存储器访问中由cache 满足CPU需要的部分应
占很亭的比例,即cache的命中率应接近于1。由于程序访问的局部性,实现这个日标是可的读出时间。
能的。应接近于1。语访问中由cache 满可能接近cache命血 未知血观数
在一个程序执行期间,设N。表示cache完成存取的总次数,N。表杂望群完成存取的总次数,h定义为命中率,则有
h= N。 设命才读读存
N。+ Nm
1.表示命中时的cache访问时间,m表示未命中时的主存访问时间,1-h表示未命中率(缺失率),则Cache/主存系统的平均访问时间6。为 tc<tm
ta=ht+(1-h) (3.5)
我们追求的目标是,以较小的硬件代价使cache/主存系统的平均访问时间t。越接近t。越好。设r=m/t。表示主存与cache的访问时间之比,e表示访问效率,则有
t。
e=tcht。+(1-h)m h+(1-h)r+(1-x)h (3.6)
ta
由式(3.6)看出,为提高访问效率,命中率h越接近1越好。r值以5~10为宜,不宜太大。
命中率h与程序的行为、cache的容量、组织方式、大小有关。
【例3.4】 CPU执行一段程序时,cache完成存取的数为1900次,主存完成存取的次数为100次,已知cache存取周期为50ns,主存存取周期为250ns,求cache/主存系统的效率和平均访问时间。
4.cache 结构设计必须解决的问题
从cache的基本工作原理可以看出,cache的设计需要遵循两个原则:一是希望cache的命中率尽可能高,实际应接近于1;二是希望cache对CPU而言是透明的,即不论是否有cache, CPU访存的方法都是一样的,软件不需增加任何指令就可以访问cache。解决了命中率和透明性问题,就CPU访存的角度而言,内存将具有主存的容量和接近cache的速度。为此,必须增加一定的硬件电路完成控制功能,即cache控制器。
在设计cache结时 须解决几个问题:主存的内容调入cache时如何存放?②访在时如何找到ache中的息?当cache空间不足时如何替换cache中已有的内容?40需要写操作时如何改写cache的内容?
其中,前两个问题是相互关联的,即如何将主存信息定位在cache中,如何将主存地址变换为cache地址。与主存容量相比,cache的容量很小,它保存的内容只是主存内容的一个子集,且cache与主存的数据交换是以块为单位。为了把主存块放到cache中,必须应用某种方法把主存地址定位到cache中,称为地址映射。“映射”一词的物理含义是确定位置的对应关系,并用硬件来实现。这样当CPU访问存储器时,它所给出的一个字的内存地址会自动变换成cache的地址,即cache地址变换。
cache 替换问题主要是选择和执行替换算法,以便在cache不命中时替换cache中的内容。最后一个问题涉及cache的写操作策略,重点是在更新时保持主存与cache的一致性。