56、cache是什么?

来源:互联网 发布:文字照片软件 编辑:程序博客网 时间:2024/06/05 18:15
通常人们所说的Cache就是指缓存SRAM。 SRAM叫静态内存,“静态”指的是当我们将一笔数据写入SRAM后,除非重新写入新数据或关闭电源,否则写入的数据保持不变。 由于CPU的速度比内存和硬盘的速度要快得多,所以在存取数据时会使CPU等待,影响计算机的速度。SRAM的存取速度比其它内存和硬盘都要快,所以它被用作电脑的高速缓存(Cache)。 有了高速缓存,可以先把数据预写到其中,需要时直接从它读出,这就缩短了CPU的等待时间。高速缓存之所以能提高系统的速度是基于一种统计规律,主板上的控制系统会自动统计内存中哪些数据会被频繁的使用,就把这些数据存在高速缓存中,CPU要访问这些数据时,就会先到Cache中去找,从而提高整体的运行速度。一般说来,256K的高速缓存能使整机速度平均提高10%左右。 主板上通常都会提供256K到1M的缓存。在CPU内部也有高速缓存,如486CPU有8K的高速缓存,Pentium有16K的高速缓存。Pentium II有32K 一级缓存,AMD K6-2中有64K的一级Cache,AMD K6-3中有64K 的一级 Cache,和256K 的二级 Cache,Cyrix MII 中有64K的Cache。 

为了区分它们,CPU内部的缓存叫内部高速缓存(Internal Cache)或一级高速缓存,主板上的缓存叫外部高速缓存(External Cache)或二级高速缓存。不过现在的Pentium II 的CPU已经将主板上的二级缓存封装在CPU的盒子中,AMD K6-3的CPU内部也集成了256K的二级Cache,对于这类CPU来说,主板上提供的已是三级缓存了。

---------------------------------------------------------------------------

Cache(即高速缓冲存储器(Cache Memory),是我们最常听到的一个词了。在老鸟们眼中,这个词或许已没有再谈的必要,因为他们对Cache从设计的必要性到工作原理、工作过程等等都已了如指掌了;而对菜鸟朋友们而言,这些未必就很清楚。那么,它们到底是指的什么呢?
Cache是什么? 
Cache是一种特殊的存储器,它由Cache 存储部件和Cache控制部件组成。Cache 存储部件一般采用与CPU同类型的半导体存储器件,存取速度比内存快几倍甚至十几倍。而Cache 控制器部件包括主存地址寄存器、Cache 地址寄存器,主存—Cache地址变换部件及替换控制部件等。至于它们各自又是怎样工作的、有何作用等等,我想我们就没有必要做进一步的研究,知道一般Cache分为L1 Cache(其中又分为数据Cache、代码Cache)、L2 Cache就行了。 

Cache是怎样工作的 
我们知道,CPU运行程序是一条指令一条指令地执行的,而且指令地址往往是连续的,意思就是说CPU在访问内存时,在较短的一段时间内往往集中于某个局部,这时候可能会碰到一些需要反复调用的子程序。电脑在工作时,把这些活跃的子程序存入比内存快得多的Cache 中。CPU在访问内存时,首先判断所要访问的内容是否在Cache中,如果在,就称为“命中”,此时CPU直接从Cache中调用该内容;否则,就称为“不命中”,CPU只好去内存中调用所需的子程序或指令了。CPU不但可以直接从Cache中读出内容,也可以直接往其中写入内容。由于Cache的存取速率相当快,使得CPU的利用率大大提高,进而使整个系统的性能得以提升。 

Cache的应用 
早在486时代,主板上就设计了Cache插槽,用户可以根据需要自己配置Cache;586级的CPU芯片中已集成了部分Cache,同时还保留了Cache插槽供用户扩充,而到了Pentium Ⅱ时代后,Cache已全部集成到了CPU芯片中,主板上再也没有Cache插槽。现在比较流行的CPU芯片中一般集成了至少16KB的代码Cache 和16KB的数据Cache(作为L1 Cache),以及至少64KB的L2 Cache。

-------------------------------------------------------------------------------------

0 0
原创粉丝点击