什么是Cache
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
什么是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性能关键的指标是CACHE的命中率。
因为CACHE的容量远远小于内存,它只可能存放内存的一部分数据。
CPU自然是先访问CACHE,再访问主存,如果数据在CACHE 中为命中,在不在内存中为不命中,这就有个比例问题,这个比例就是命中率影响命中率的因素有一下几个
1. CACHE 的容量,大一些好
2. CACHE 与主存储器每次交换信息的单位量(Cache Line Size)适中
3. CACHE 不同的组织方式,多路组相联更好
4. CACHE 的多级组织可提高命中率
5. CACHE 装满后的换字算法
再解释一下多级CACHE的问题,简单说一级CACHE是对内存的映像,能够提高CPU速度,那么再加一级CACHE对上一级CACHE映像就能够再次提高效率。
目前CPU通常是2级CACHE,就是L1 和L2
不光是CPU,计算机中很多设备都有Cache,比如硬盘,光驱等等
下面我们就来说说Cache的用途CPU处理数据的时候是先从L1 Cache 中寻找如果L1 Cache中没有所需要的数据CPU就从L2 Cache 中寻找!如果L2 Cache中也没有所需要的数据那么CPU就会从内存中直接调用!但是内存的速度比Cache的速度低很多!如果让CPU 频繁的从内存中直接调用数据,势必会造成处理速度极其缓慢!即使CPU的运行速度再快也是没有用的!如果我们把CPU中的Cache增加一倍那么CPU就很有可能从多出的那一倍Cache中寻找到所需要的数据,这就是您所指的命中率!
知道了什么叫命中率我们就不难发现如果是相同内核的CPU Cache的容量越大CPU 的运算性能就会越好。
Cache,即高速缓冲存储器,是位于CPU与主内存间的一种容量较小但速度很高的存储器。
由于CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周期,Cache 中保存着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据时可从Cache 中直接调用,这样就减少了CPU的等待时间,提高了系统的效率。
Cache又分为一级Cache(L1 Cache)和二级Cache(L2 Cache),L1 Cache集成在CPU内部,L2 Cache早期一般是焊在主板上,现在也都集成在CPU内部,常见的容量有256KB或512KB L2 Cache。