并非越大越好-漫谈CPU与缓存

说到CPU,不得不说的就是CPU缓存,目前CPU的缓存已经成了衡量CPU性能的一个必要指标,那么CPU缓存到底对CPU性能的影响有多大呢?
我们知道,CPU执行指令时,会将执行结果放在一个叫“寄存器”的元件中,由于“寄存器”集成在CPU内部,与ALU等构成CPU的重要元件,因此寄存器中的指令很快被CPU所访问,但毕竟寄存器的容量太小,CPU所需的大量指令和数据还在内存(RAM)当中,所以CPU为了完成指令操作,需要频繁地向内存发送接收指令、数据。
由于内存的处理速度远远低于CPU,所以传统的系统瓶颈在这里就产生了,CPU在处理指令时往往花费很多时间在等待内存做准备工作。
为了解决这个问题,人们在CPU内集成了一个比内存快许多的“Cache”,这就是最早的“高速缓存”。
L1高速缓存是与CPU完全同步运行的存储器,也就是我们常说的一级缓存,如果CPU需要的数据和指令已经在高速缓存中了,那么CPU不必等待,直接就可以从一级缓存(L1)中取得数据,如果数据不在L1中,CPU再从二级缓存(L2)中提取数据,大大提高了系统的工作效率。
趣谈CPU缓存工作原理
没有CPU缓存前
我们可以形象地把CPU的运算单元想象成是一间坐落在城市中心的工厂,把内存看成是工厂设置在郊区的一间面积很大的仓库A。
工厂生产所需要的原材料每次都要花时间去远处的仓库A调运,而且到达仓库后,还要等待仓库准备好材料,中间浪费了不少时间。这就是CPU频率未变的情况下,CPU与内存的数据交换不同步的现象。
而突然有一天,由于资金短缺,仓库A从近郊区“搬到”了远郊区,这样原料和成品在工厂与仓库A之间的运输所花费的时间就更长了,工厂生产所需的原料供应不足,经常处于空运转的状态下。这就是说当CPU频率增加后,CPU与内存交换数据等待需时间会变得更长
增加L1 Cache
要解决CPU与内存交换数据不同步这个系统瓶颈问题,其中一个办法是在靠近工厂的市区设置一个小型的仓库B(L1 Cache)。
平时把生产最迫切需要、用得最多的原材料(指令和数据)从仓库A(内存)调配到仓库B(L1 Cache),这样工厂生产所需要的原材料就可以很快地调配过来,减少空运转的时间。当所需的原材料在仓库B中找不到(缓存未命中)时,仍然要到仓库A(内存)里调配,虽然无可避免地使工厂又进入空运转,或部分空运转(CPU等待若干个时钟周期),但这样毕竟使等待时间大大降低了。
小知识:缓存有一个“预读”功能,也就是可以通过一定的算法,猜测接下来所要的数据,并预先取入缓存。
再添L2 Cache
随着CPU的频率提高,与内存之间交换数据不同步的现象更明显了,可以理解为仓库A(内存)搬离郊区,迁到更远的地方了。解决这一问题的一个更好的办法就是在城市的边缘再设立一个比仓库B大的仓库C,也就是我们说的二级缓存。
它的作用是把郊区之外的仓库A(内存)中最迫切用的材料(指令)运到仓库C,而工厂如果在仓库B中找不到所需的材料,就可以到仓库C中找,而不必老远跑到仓库A那里找,节省了不少时间。
通常情况下,L2包括L1所有的数据,另外还有一些附加的数据。换言之,L1与L2、L2与内存之间是子母关系,所以CPU缓存的出现更有效地解决了CPU空等待所造成的资源浪费问题。
CPU缓存越大越好?
当然,CPU缓存并不是越大越好,因为缓存采用的是速度快、价格昂贵的静态RAM(SRAM),由于每个SRAM内存单元都是由4~6个晶体管构成,增加缓存会带来CPU集成晶体管个数大增,发热量也随之增大,给设计制造带来很大的难度。所以就算缓存容量做得很大,但如果设计不合理会造成缓存的延时,CPU的性能也未必得到提高。

(0)

相关推荐

  • CPU三级缓存的作用 二级缓存和三级缓存有什么区别

    最近有网友看完“电脑硬件知识扫盲 菜鸟提升必看电脑配置知识”一文后觉得还有一些硬件知识不了解,比如说,CPU的三级缓存是什么意思,有什么用呢?针对此类细节问题,下面小编与大家做个简单介绍。 问题:CP ...

  • 浅析CPU二级缓存容量对CPU性能的影响

    现代桌面级PC的CPU二级缓存容量大多数在64KB到2MB之间。因为CPU二级缓存容量对CPU性能有不小的影响,所以低端CPU和中高端CPU在物理结构上的差异主要就是二级缓存容量的大小。那么二级缓存容 ...

  • xp系统如何开启cpu二级缓存?xp系统开启cpu二级缓存的两种方法

    方法一: Windows优化大师打开二级缓存的操作步骤: 1.启动Windows优化大师,选择“系统性能优化”: 2.在“文件系统优化”中,最上面就是关于CPU二级缓存的设置项. 3.拖动滑块到相应的 ...

  • CPU一级缓存损坏导致无法进入系统故障

    一朋友的电脑出了故障,其电脑的配置如下:赛扬800MHz的CPU,QDl693A主板,HYl28MB内存,迈拓20GB硬盘。故障现象表现为开机自检完成后无法进入操作系统,即电脑显示“Verifying ...

  • CPU一级缓存损坏引起的故障

    一客户送修一台电脑,配置如下:赛扬800MHz的CPU,QDI693A主板,HY128MB内存,迈拓20GB硬盘。故障现象表现为开机自检完成后无法进入操作系统,即电脑显示“Verifying DMI ...

  • cpu中一级缓存是什么及数据缓存设计介绍

    一级缓存都内置在CPU内部并与CPU同速运行,可以有效的提高CPU的运行效率。一级缓存越大,CPU的运行效率越高,但受到CPU内部结构的限制,一级缓存的容量都很小。 CPU缓存(Cache Memor ...

  • CPU的三级缓存的作用介绍

    问题:CPU三级缓存有什么用,假如缺少三级缓存,对CPU的整体性能影响大吗?是否应该选择带三级缓存的处理器比较合适? 回答:三级缓存这个东西的价值还是需要软件的体现,不同的软件得到的效果不一样,多数情 ...

  • 菜鸟成长手册:缓存对CPU性能影响四大误区

    处理器要想发挥出优异的性能,除了与核心架构有关之外,缓存的作用也是功不可没。那什么是CPU的缓存呢?其实很好解释,CPU缓存(Cache Memoney)就是位于CPU与内存之间的临时存储器,它的容量 ...

  • CPU缓存是什么意思 二级缓存简介

    首先来和大家解释下CPU缓存是什么意思?以及简单的介绍下什么是二级缓存?给各位电脑新手朋友补下相关的硬件知识。 CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器,它的容量比内存 ...