存储器层次结构中基本的缓存原理

对于操作系统,我们知道,越靠近CPU的存储器,其存储速度就会越来越快,如果将整个存储系统视作一个金字塔,CPU作为塔顶,那么从上到下,访问速度会越来越慢,但存储容量越来越大,价格越来越低,按照常用的存储系统分类,分别为寄存器、高速缓存、主存、磁盘,后面可能还有网络文件等。

为了加快访问速度,在每一层,存储器会被划分为连续的数据对象块,一般大小是固定的(也有可能不同,比如远程的HTML文件),每一层的上一层都是作为该层的缓存,因为上一层的访问速度要快些,而存储容量要小些,所以上一层的数据对象块会少些。由于层与层之间是以数据对象块为单位传送,所以任意时刻上一层的缓存都是下一层的子集。另外,为了弥补访问时间上的短板,一般较低层(即远离CPU)的存储器都倾向于使用更大的块。至于随后的缓存是否命中,以及缓存不命中时采用哪种缓存替换策略控制则就是另外一回事了。

补充:缓存现象之所以如此“猖狂”,是因为程序具有局部性,包括时间局部性和空间局部性。所谓时间局部性,就是指在一定时间内,同一对象可能会被多次引用。而空间局部性则是指在某段时间内,被引用的对象常常出现在某一集合范围内。正是因为如此,缓存才得以有用武之地,因为它把出现概率大的都暂存起来了。

猜你喜欢

转载自aisxyz.iteye.com/blog/2299177