,Cache也是一种主机内的存储器,但在评价计算机系统的内存容量时,为什么不考虑Cache的容l量?

电脑教程05

,Cache也是一种主机内的存储器,但在评价计算机系统的内存容量时,为什么不考虑Cache的容l量?,第1张

cache是一种缓冲存储器,应用于多多种硬件当中,其中包括cpu、硬盘、网卡等等。cache的速度并不是一定的,而是根据硬件的不同而有所变化的。比如cpu中的cache,速度很快,和cpu的频率相当,比内存快很多,但同样,制造成本很高,容量也不是很大,同样,其它硬件的cache也是如此。其实cache就相当于各个硬件的内存,虽然相对于每个硬件来说,cache的大小和频率,很大程度上决定了这个硬件的性能,但我们所说的内存是负责整个系统的,是大局上的,cache只是局部的,而且比较少,所以一般不考虑cache的容量,cache的容量只用来评价单个硬件的性能。

Cache”是什么

Cache(即高速缓冲存储器(Cache Memory),是我们最常听到的一个词了。在老鸟们眼中,这个词或许已没有再谈的必要,因为他们对Cache从设计的必要性到工作原理、工作过程等等都已了如指掌了;而对菜鸟朋友们而言,这些未必就很清楚。那么,它们到底是指的什么呢?不用急,下面就请随笔者一起来全面认识Cache。

为什么要设计Cache

我们知道,电脑的内存是以系统总线的时钟频率工作的,这个频率通常也就是CPU的外频(对于雷鸟、毒龙系列的处理器,由于在设计采用了DDR技术,CPU工作的外频为系统总线频率的两倍)。但是,CPU的工作频率(主频)是外频与倍频因子的乘积。这样一来,内存的工作频率就远低于CPU的工作频率了。这样造成的直接结果是:CPU在执行完一条指令后,常常需要“等待”一些时间才能再次访问内存,极大降了CPU工作效率。在这样一种情况下,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。

有的朋友可能会问,既然Cache的作用如此重要,那为么不把电脑的全部内存都变为Cache,那样不是更好吗?其实对于这个问题,撇开价格因素,单就其实用性而言也是没有必要的,毕竟,电脑在执任务时,那种使用频率非常高的子程序或指令不是很多的,因此那些使用频率不太高的内容只须保存在速度相对较低的内存中就可以了!

在实际应用中,Cache,尤其是L2Cache对系统的性能,特别是对浮点运算能力有较大的影响。而我们知道,大部分游戏的流畅运行需要频繁的浮点运算。因此,CPU运行游戏的性能的好坏与L2Cache的容量与速度有很大关系。

有了内存,还要有

cache(一级、二级、三级)以及寄存器,这是因为,内存不够快。

电脑的运行内存,也叫随机存储器RAM,分为静态随机存储器(Static

RAM,SRAM)和动态随机存储器(Dynamic

RAM,DRAM)。分别简称为SRAM和DRAM。

SRAM的速度非常快,但成本非常高,一般家庭难以承受。所以,为了降低成本,就用DRAM来代替,然后用少量的SRAM辅助加速,这就是CACHE。cahche按速度级别和作用,又分为多级:二级、三级,就是这么来的,而最快的就是CPU内部的寄存器。

多级CACHE的设计,只是为了一个目的:既快,又成本低。这就是因为主内存不够快,而又必须得控制成本不能让电脑太贵而设计的。也就是说,如果现在主流的内存DRAM够快的话,这几级cache就会完全消失的。