Write-back caching yields somewhat better performance than write-through caching because it reduces the number of write operations to main memory. With this performance improvement comes a slight risk that data may be lost if the system crashes.
A write-back cache is also called acopy-back cache.
原理
Cache一词来源于1967年的一篇电子工程期刊论文。其作者将法语词"cache"赋予“safekeeping storage”的涵义,用于电脑工程领域。
当CPU处理数据时,它会先到Cache中去寻找,如果数据因之前的操作已经读取而被暂存其中,就不需要再从隨機存取記憶體(Main memory)中读取数据——由于CPU的运行速度一般比主内存的读取速度快,在许多CPU周期内只存在极少的周期为读取主内存。因此若要存取主内存的话,就必须等待数个CPU周期从而造成浪费。
提供「高速缓存」的目的是为了让数据存取的速度适应CPU的处理速度,其基于的原理是内存中「程序执行与数据访问的局域性行为」,即一定程序执行时间和空间内,被访问的代码集中于一部分。为了充分发挥高速缓存的作用,不仅依靠“暂存刚刚访问过的数据”,还要使用硬件实现的指令预测与数据预取技术——尽可能把将要使用的数据预先从内存中取到高速缓存裡。
CPU的高速缓存曾经是用在巨型机上的一种高级技术,不过现今電腦上使用的的AMD或Intel微处理器都在芯片内部集成了大小不等的数据高速缓存和指令高速缓存,通称为L1高速缓存(L1 Cache 即 Level 1 Cache,第一级高速缓存);而比L1更大容量的L2高速缓存曾经被放在CPU外部(主板或者CPU接口卡上),但是现在已经成为CPU内部的标准组件;更昂贵的顶级家用和工作站CPU甚至会配备比L2高速缓存还要大的L3高速缓存。
由于主存容量远大于高速缓存的容量,因此两者之间就必须按一定的规则对应起来。高速缓存的地址映象就是指按某种规则把主存块装入高速缓存中。地址变换是指当按某种映象方式把主存块装入高速缓存后,每次访问高速缓存时,如何把主存的物理地址 (Physical address)或虚拟地址(Virtual address)变换成高速缓存的地址,从而访问高速缓存中的数据。
映象和变换的方式有四种:直接映象、全相连映象、组相连映象、区段相连映象。
现在高速缓存的概念已被扩充,不仅在CPU和主内存之间有Cache而且在内存和硬盘之间也有Cache(磁盘高速缓存),乃至在硬盘与网络之间也有某种意义上的 Cache -Internet临时文件夹 ── 凡是位于速度相差较大的两种硬件之间的,用于协调两者数据传输速度差异的结构,均可称之为Cache。
程序的局部性原理,即程序的地址访问流有很强的时序相关性,未来的访问模式与最近已发生的访问模式相似。根据这一局部性原理,把主存储器中访问概率最高的内容存放在Cache中,当CPU需要读取数据时就首先在Cache中查找是否有所需内容,如果有则直接从Cache中读取;若没有再从主存中读取该数据,然后同时送往CPU和Cache。
cache n. 高速缓冲存储器 一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问。存储器的高速缓冲存储器存储了频繁访问的 RAM 位置的内容及这些数据项的存储地址。当处理器引用存储器中的某地址时,高速缓冲存储器便检查是否存有该地址。如果存有该地址,则将数据返回处理器;如果没有保存该地址,则进行常规的存储器访问。因为高速缓冲存储器总是比主RAM 存储器速度快,所以当 RAM 的访问速度低于微处理器的速度时,常使用高速缓冲存储器。。【英】A special memory subsystem in which frequently used data values are duplicated for quick access. A memory cache stores the contents of frequently accessed RAM locations and the addresses where these data items are stored. When the processor references an address in memory, the cache checks to see whether it holds that address. If it does hold the address, the data is returned to the processor; if it does not, a regular memory access occurs. A cache is useful when RAM accesses are slow compared with the microprocessor speed, because cache memory is always faster than main RAM memory.
Cache的出现是基于两种因素:首先,是由于CPU的速度和性能提高很快而主存速度较低且价格高,第二就是程序执行的局部性特点。因此,才将速度比较快而容量有限的SRAM构成Cache,目的在于尽可能发挥CPU的高速度。很显然,要尽可能发挥CPU的高速度就必须用硬件实现其全部功能
Cache中的内容随命中率的降低需要经常替换新的内容。替换算法有多种,例如,先入后出(FILO)算法、随机替换(RAND)算法、先入先出 (FIFO)算法、近期最少使用(LRU)算法等。这些替换算法各有优缺点,就以命中率而言,近期最少使用(LRU)算法的命中率最高。
CPU与cache之间的数据交换是以字为单位,而cache与主存之间的数据交换是以块为单位。一个块由若干定长字组成的。当CPU读取主存中一个字时,便发出此字的内存地址到cache和主存。此时cache控制逻辑依据地址判断此字当前是否在 cache中:若是,此字立即传送给CPU;若非,则用主存读周期把此字从主存读出送到CPU,与此同时,把含有这个字的整个数据块从主存读出送到 cache中。由始终管理cache使用情况的硬件逻辑电路来实现LRU替换算法
文章评论(0条评论)
登录后参与讨论