时钟频率和二级缓存大小对CPU效率的影响

时间:2022-10-24 09:41:14

时钟频率和二级缓存大小对CPU效率的影响

摘要:提升处理器时钟频率和二级缓存的大小是提升CPU效率的方法。文章在对AMD Athlon 64实际测试的基础上,概要地从理论上分别阐述了时钟频率和二级缓存对CPU效率影响的原理,侧重分析了在不同应用环境中二级缓存和时钟频率的大小对CPU效率产生不同影响的原因,并提出了二级缓存对CPU效率影响的最佳容量的概念,可使大家对CPU的效率有一个更清楚的认识。

关键词:时钟频率;二级缓存;CPU效能;IPC;最佳容量

0引言

从Intel和AMD之间的频率之争开始,到现在两家公司都把设计重心转向为以优化处理器内部架构、提升效率为主,大家都认识到了衡量处理器性能的应该是效率而不是频率。处理器的频率的高低并不能代表效率的高低。那么我们如何来衡量一个处理器的效率以及研究提升效率的办法呢?

1影响CPU性能的主要因素-IPC和f

一般我们会用下面这个公式来计算处理器的效率:

效率=执行指令的数量/执行时间=IPC*f

这里IPC(Instruction Per Clock)指在一个时钟周期里执行的指令数量;f指时钟频率。

从这个公式中我们很清楚地看到:如果想要获得较大的CPU效率那就要提高公式中的两个因子(IPC或f)。经验表明,提高CPU效率最直接的一个办法是提高处理器的时钟频率(f),但是由于现有芯片制造工艺的限制,时钟频率提升带来高功耗、高发热量的问题,频率不可能无限制地提升。这时我们就只有把目光放到公式中的另外一个因子IPC上了。提高IPC的方法有很多,比如优化处理器的内部架构。但是对CPU制造商来讲,改进一种处理器的内部架构需要耗费极大的人力、财力,于是本着“少花钱,多办事”的原则,大家便不约而同地把目光放在了影响IPC的另一个因素-CPU缓存的大小上。

2 CPU的缓存怎样影响到IPC

缓存的出现主要是为了解决CPU运算速度与内存读写的速度不匹配的矛盾。因为CPU的运算速度要比内存的读写速度快很多,这样会使CPU花费很长的时间等待数据的到来或把数据写入内存。缓存中的数据是内存中的一小部分CPU即将访问的数据,这时CPU就可以避开内存直接从高速缓存中调用数据,从而加快读取的速度和在一个周期内执行指令的数量(IPC)。

处理器的内部一级缓存(L1)的主要作用正是提供高效的数据存储仓库。为了及时快速地填满这些存储空间,我们还可以为它建立一个专用的仓库,这正是二级缓存(L2)的主要作用。

由此我们很容易得出一个简单的结论:这种专用仓库的容量是越大越好。但是事实上并非如此,因为首先CPU缓存是由静态随机存储器SRAM构成的,而每个SRAM都是由4-6个晶体管构成,增大缓存的容量同时也意味这CPU晶体管数目的增加和芯片核心面积的加大,这势必造成生产成本的增加。同时当处理器执行不同任务的时候,所需专用仓库的最佳容量显然是不同的。

3实测分析二级缓存与时钟频率对CPU效率的影响

为了分别比较增大二级缓存和提升时钟频率对CPU效率的影响,我们对AMD Athlon 64 4000+,3700+/3s00+,3200+/300HD+进行了实际的测试。这5款CPU内部的架构完全一样,只是实际频率和二级缓存的容量不同。其中4000+和3700+为1Mb二级缓存,其余为512Kb二级缓存。

在测试中我们选择了多种测试软件,并进行了综合性能,模拟实际工作情况和运行游戏的测试。为了能更加直观地显示测试结果,我们制作了2个统计图来分析比较综合性能测试,分别是FutureMark PCMark 2005和SiSoftware Sandra Lite2005的测试结果(如图1、图2所示)。

3.1增大二级缓存在不同应用场合中对CPU效能的影响

从测试的结果可以看到在处理数据流的情况下,比如视频、音频的编码,多媒体的处理和力公应用中的数据处理,或者是模拟科学计算中,大缓存的优势并不明显。原因也很简单,这就像工厂生产一种原料单一、工艺过程很简单的产品,它可以很容易地组织原料的供应和安排生产的进度,而不需要大的仓库来堆放各种各样的生产原料。也就是说,在这种情况下CPU能准确地预知下一时刻它需要何种数据,因而能及时地提前调用这些数据到高速缓存里备用,而不需要大的存储空间来存放更多的原始数据。

如果CPU很难预知下一时刻所要处理的事件,这时大缓存的优势就体现出来了,因为CPU要将更多的原始数据放在高速缓存中,以使数据的命中率提高。实际表明,在办公应用、文档处理和运行游戏的情况下,拥有1024kb二级缓存的AMD Athlon64优势比较明显。

3.2提升时钟频率在不同应用场合中对CPU效能的影响

我们再来看看频率提升对CPU性能的影响。从上面的统计图中我们可以看到当增加时钟频率后,CPU的性能也都相应地按比例增加。同时我们也可以看到二级缓存容量的增大并没有给测试结果带来多大的变化。另外,值得注意的是在测试的CPU当中,实际运行频率越高,相应的CPU效率也越高,而且每当实际运行频率有200mHz提高的时候,CPU的效率大概也有5―10%的提升。所以从这个角度来看,增加CPU的实际频率要比增大缓存容量对CPU的效率影响要大。

4二级缓存和时钟频率影响CPU效率的深层原因

实际上,我们在分析二级缓存对CPU效率影响的时候,不得不考虑到一级缓存(L1)的作用。从理论上来讲CPU读取的数据中有80%来自于一级缓存,也就是说全部数据量的80%都可以在一级缓存中找到,只剩下20%的总数据量才需要从二级缓存读取。但是如果CPU不能准确预测将要执行的数据,这时二级缓存的作用便体现出来了,大容量的二级缓存就能保证更高的数据命中率,只有很少的数据才需要从内存中调用。但是在实际应用当中,CPU处理的数据绝大多数都是0~128KB大小的数据,128~256KB的数据约有10%,256~512KB的数据有5%,512KB一1Mb的数据仅有3%左右。很显然512KB已经是CPU二级缓存的最佳容量了。所以当CPU的二级缓存从0KB升到256KB时,对CPU效率的提升非常明显,但从512KB增加到1MB时,普通的用户就很难体会到CPU效率的提高了。这个时候,反而是直接增加CPU的时钟频率所带来的效率提升更显著一点。因此,从测试中我们可以看到把二级缓存从512KB增大到1MB并不能在所有的运用场合中提高CPU的效率,而且与提高CPU的时钟频率相比,增大缓存对提高CPU的效率并不是十分明显。正是因为这个原因,从型号AMDAthlon 64 3200+开始实际频率每提升200mHz,标称值就增加300,而在实际运行频率相同的情况下,增大一倍二级缓存后标称值却仅仅提高了200。但是在某些最典型的办公应用和高端的游戏应用当中,拥有1024kb二级缓存的AMD Athlon64还是具有相当的性能优势的。

5结束语

综上所述,衡量CPU的效率不能只看二级缓存的大小或者是时钟频率的高低,必须综合考虑CPU的内部架构,各级缓存的最佳容量以及实际运用的场合。时钟频率作为提升CPU效率的“直接推动力”,将会随着生产工艺的进步而不断攀升。同时高速缓存作为CPU不可分割的一部分,已经融入到CPU效率提升的考虑因素当中。可以预见未来的CPU缓存的级数还将会增加,容量也会进一步提高。作为CPU效率助推器的高速缓存,仍会在成本和功耗控制中发挥巨大的优势。

(注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。)

上一篇:决策支持评测系统的设计与实现 下一篇:基于状态的预警模型研究