Cache(高速缓冲存储器)
什么是Cache
在多行并行存储系统中,由于I/0设备像内存请求的级别高于CPU访存,出现CPU等待I/0设备访存的现象,致使CPU空等一段时间,降低了CPU工作效率。为了避免与I/0争抢方寸,在CPU与主存中加一级缓存。这样,主存可以将CPU要取的信息提前送至缓存,一旦主存与I/0设备进行访问时,CPU可以在直接从缓存中读取所需信息,不必空等而影响效率。
另一角度看,主存速度的提高跟不上CPU的发展,希望由高速缓存Cache解决主存与CPU之间速度不匹配问题。
CPU在从主存中取指令与数据时,在一定时间内,只访问主存局部地址区域。这是因为指令和数据在主存中都是连续存放的,并且有些指令和数据会被多次调用(子程序,循环,常数),也就是说指令和数据在内存的地址分布不是随机的,而是相对的簇聚,使得CPU在执行程序时,访存具有相对的局部性,这就被称为程序访问的局部性,
那么只要将CPU近期用到的程序与数据提前从主存中送到Cache,那么CPU就在一段时间内只访问Cache。
Cache miss
- 当CPU想要读取某个字,有两种可能,第一所需要的字已在Cache中,可以直接访问Cache(CPU与Cache之间通常一次传送一个字),这种情况下叫做:CPU访问Cache命中
- 第二种可能,当访问的而数据不在Cache内时,此时将字所在的主存整个子块一次调入Cache种(Cache与主存之间是子块传送),这种情况下叫做:CPU访问Cache不命中也就是 Cache miss。