本页使用了标题或全文手工转换

高速缓存

维基百科,自由的百科全书
跳转至: 导航搜索

高速缓存英语Cache),其原始意义是指存取速度比一般隨機存取記憶體(RAM)快的一种RAM,通常它不像系统主記憶體那样使用DRAM技术,而使用昂贵但較快速的SRAM技术。

原理[编辑]

Cache一词来源于1967年的一篇电子工程期刊论文。其作者将法语词「cache」赋予“safekeeping storage”的涵义,用于电脑工程领域。

CPU处理数据时,它会先到Cache中去寻找,如果数据因之前的操作已经读取而被暂存其中,就不需要再从隨機存取記憶體(Main memory)中读取数据——由于CPU的运行速度一般比主内存的读取速度快,主存儲器周期(訪問主存儲器所需要的時間)為數個時鐘周期。因此若要存取主内存的话,就必须等待数个CPU周期从而造成浪费。

提供「高速缓存」的目的是为了让数据存取的速度适应CPU的处理速度,其基于的原理是内存中「程序执行与数据访问的局域性行为」,即一定程序执行时间和空间内,被访问的代码集中于一部分。为了充分发挥高速缓存的作用,不仅依靠“暂存刚刚访问过的数据”,还要使用硬件实现的指令预测数据预取技术——尽可能把将要使用的数据预先从内存中取到高速缓存裡。

CPU的高速缓存曾经是用在超级计算机上的一种高级技术,不过现今電腦上使用的的AMDIntel微处理器都在芯片内部集成了大小不等的数据高速缓存和指令高速缓存,通称为L1高速缓存(L1 Cache即Level 1 On-die Cache,第一级片上高速緩衝存儲器);而比L1更大容量的L2高速缓存曾经被放在CPU外部(主板或者CPU接口卡上),但是现在已经成为CPU内部的标准组件;更昂贵的CPU会配备比L2高速缓存还要大的L3高速缓存(level 3 On-die Cache第三級高速緩衝存儲器)。

概念的扩充[编辑]

如今高速缓存的概念已被扩充,不仅在CPU和主内存之间有Cache,而且在内存和硬盘之间也有Cache(磁盘缓存),乃至在硬盘与网络之间也有某种意义上的Cache──称为Internet临时文件夹网络内容缓存等。凡是位于速度相差较大的两种硬件之间,用于协调两者数据传输速度差异的结构,均可称之为Cache。

地址映象与变换[编辑]

由于主存容量远大于CPU高速缓存的容量,因此两者之间就必须按一定的规则对应起来。地址映象就是指按某种规则把主存块装入高速缓存中。地址变换是指当按某种映象方式把主存块装入高速缓存后,每次访问CPU高速缓存时,如何把主存的物理地址(Physical address)或虚拟地址(Virtual address)变换成CPU高速缓存的地址,从而访问其中的数据。

缓存置换策略[编辑]

主存容量远大于CPU高速缓存,磁盘容量远大于主存,因此无论是哪一层次的缓存都面临一个同样的问题:当容量有限的缓存的空闲空间全部用完后,又有新的内容需要添加进缓存时,如何挑选并舍弃原有的部分内容,从而腾出空间放入这些新的内容。解决这个问题的算法有几种,如最久未使用算法(LRU)、先进先出算法(FIFO)、最近最少使用算法(LFU)、非最近使用算法(NMRU)等,这些算法在不同层次的缓存上执行时拥有不同的效率和代价,需根据具体场合选择最合适的一种。

参见[编辑]

外部链接[编辑]