深圳九州:CPU部分术语详解

来源:百度文库 编辑:偶看新闻 时间:2024/05/06 02:32:49
主频
  在电子技术中,脉冲信号是一个按一定电压幅度,一定时间间隔连续发出的脉冲信号。脉冲信号之间的时间间隔称为周期;而将在单位时间(如1秒)内所产生的脉冲个数称为频率。频率是描述周期性循环信号(包括脉冲信号)在单位时间内所出现的脉冲数量多少的计量名称;频率的标准计量单位是Hz(赫)。电脑中的系统时钟就是一个典型的频率相当精确和稳定的脉冲信号发生器。频率在数学表达式中用“f”表示,其相应的单位有:Hz(赫)、kHz(千赫)、MHz(兆赫)、GHz(吉赫)。其中1GHz=1000MHz,1MHz=1000kHz,1kHz=1000Hz。计算脉冲信号周期的时间单位及相应的换算关系是:s(秒)、ms(毫秒)、μs(微秒)、ns(纳秒),其中:1s=1000ms,1 ms=1000μs,1μs=1000ns。
CPU的主频,即CPU内核工作的时钟频率(CPU Clock Speed)。通常所说的某某CPU是多少兆赫的,而这个多少兆赫就是“CPU的主频”。很多人认为CPU的主频就是其运行速度,其实不然。CPU的主频表示在CPU内数字脉冲信号震荡的速度,与CPU实际的运算能力并没有直接关系。主频和实际的运算速度存在一定的关系,但目前还没有一个确定的公式能够定量两者的数值关系,因为CPU的运算速度还要看CPU的流水线的各方面的性能指标(缓存、指令集,CPU的位数等等)。由于主频并不直接代表运算速度,所以在一定情况下,很可能会出现主频较高的CPU实际运算速度较低的现象。比如AMD公司的AthlonXP系列CPU大多都能以较低的主频,达到英特尔公司的Pentium 4系列CPU较高主频的CPU性能,所以AthlonXP系列CPU才以PR值的方式来命名。因此主频仅是CPU性能表现的一个方面,而不代表CPU的整体性能。
  CPU的主频不代表CPU的速度,但提高主频对于提高CPU运算速度却是至关重要的。举个例子来说,假设某个CPU在一个时钟周期内执行一条运算指令,那么当CPU运行在100MHz主频时,将比它运行在50MHz主频时速度快一倍。因为100MHz的时钟周期比50MHz的时钟周期占用时间减少了一半,也就是工作在100MHz主频的CPU执行一条运算指令所需时间仅为10ns比工作在50MHz主频时的20ns缩短了一半,自然运算速度也就快了一倍。只不过电脑的整体运行速度不仅取决于CPU运算速度,还与其它各分系统的运行情况有关,只有在提高主频的同时,各分系统运行速度和各分系统之间的数据传输速度都能得到提高后,电脑整体的运行速度才能真正得到提高。
  提高CPU工作主频主要受到生产工艺的限制。由于CPU是在半导体硅片上制造的,在硅片上的元件之间需要导线进行联接,由于在高频状态下要求导线越细越短越好,这样才能减小导线分布电容等杂散干扰以保证CPU运算正确。因此制造工艺的限制,是CPU主频发展的最大障碍之一。
适用类型
  “CPU适用类型”是指该处理器所适用的应用类型,针对不同用户的不同需求、不同应用范围,CPU被设计成各不相同的类型,即分为嵌入式和通用式、微控制式。嵌入式CPU主要用于运行面向特定领域的专用程序,配备轻量级操作系统,其应用极其广泛,像移动电话、D、机顶盒等都是使用嵌入式CPU。微控制式CPU主要用于汽车空调、自动机械等自控设备领域。而通用式CPU追求高性能,主要用于高性能个人计算机系统(即PC台式机)、服务器(工作站)以及笔记本三种。
  台式机的CPU,就是平常大部分场合所提到的应用于PC的CPU,平常所说Intel的奔腾4、赛扬、AMD的AthlonXP等等都属于此类CPU。
  应用于服务器和工作站上的CPU,因其针对的应用范围,所以此类CPU在稳定性、处理速度、同时处理任务的数量等方面的要求都要高于单机CPU。其中服务器(工作站)CPU的高可靠性是普通CPU所无法比拟的,因为大多数的服务器都要满足每天24小时、每周7天的满负荷工作要求。由于服务器(工作站)数据处理量很大,需要采用多CPU并行处理结构,即一台服务器中安装2、4、8等多个CPU,需要注意的是,并行结构需要的CPU必须为偶数个。对于服务器而言,多处理器可用于数据库处理等高负荷高速度应用;而对于工作站,多处理器系统则可以用于三维图形制作和动画文件编码等单处理器无法实现的高处理速度应用。另外许多CPU的新技术都是率先开发应用于服务器(工作站)CPU中。
  在最早期的CPU设计中并没有单独的笔记本CPU,均采用与台式机的CPU,后来随着笔记本电脑的散热和体积成为发展的瓶颈时,才逐渐生产出笔记本专用CPU。受笔记本内部空间、散热和电池容量的限制,笔记本CPU在外观尺寸、功耗(耗电量)方面都有很高的要求。笔记本电池性能是十分重要的性能,CPU的功耗大小对电池使用时间有着最直接的影响,所以为了降低功耗笔记本处理器中都包含有一些节能技术。在无线网络将要获得更多应用的现在,笔记本CPU还增加了一些定制的针对无线通信的功能。
  服务器CPU和笔记本CPU都包含有各自独特的专有技术,都是为了更好的在各自的工作条件下发挥出更好的性能。比如服务器的多CPU并行处理,以及多核多线程技术;笔记本CPU的SpeedStep(可自动调整工作频率及电压)节能技术。
  封装方式三者也有不同之处,笔记本CPU是三者中最小最薄的一种,因为笔记本处理器的体积需要更小,耐高温的性能要更佳,因此在制造工艺上要求也就更高。
  三者在稳定性中以服务器CPU最强,因为其设计时就要求有极低的错误率,部分产品甚至要求全年满负荷工作,故障时间不能超过5分钟。
  台式机CPU工作电压和功耗都高于笔记本CPU,通常台式机CPU的测试温度上限为75摄氏度,超过75摄氏度,工作就会不稳定,甚至出现问题;;而笔记本CPU的测试温度上限为100摄氏度;服务器CPU需要长时间的稳定工作,在散热方面的要求就更高了。
  在选购整机尤其是有特定功能的计算机(如笔记本、服务器等)时,需要注意CPU的适用类型,选用不适合的CPU类型,一方面会影响整机的系统性能,另一方面会加大计算机的维护成本。单独选购CPU时候也要注意CPU的适用类型,建议按照具体应用的需求来购买CPU。
系列型号
厂商会根据CPU产品的市场定位来给属于同一系列的CPU产品确定一个系列型号以便于分类和管理,一般而言系列型号可以说是用于区分CPU性能的重要标识。
早期的CPU系列型号并没有明显的高低端之分,例如Intel的面向主流桌面市场的Pentium和Pentium MMX以及面向高端服务器生产的Pentium Pro;AMD的面向主流桌面市场的K5、K6、K6-2和K6-III以及面向移动市场的K6-2+和K6-III+等等。
随着CPU技术和IT市场的发展,Intel和AMD两大CPU生产厂商出于细分市场的目的,都不约而同的将自己旗下的CPU产品细分为高低端,从而以性能高低来细分市场。而高低端CPU系列型号之间的区别无非就是二级缓存容量(一般都只具有高端产品的四分之一)、外频、前端总线频率、支持的指令集以及支持的特殊技术等几个重要方面,基本上可以认为低端CPU产品就是高端CPU产品的缩水版。例如Intel方面的Celeron系列除了最初的产品没有二级缓存之外,就始终只具有128KB的二级缓存和66MHz以及100MHz的外频,比同时代的Pentium II/III/4系列都要差得多,而AMD方面的Duron也始终只具有64KB的二级缓存,外频也始终要比同时代的Athlon和Athlon XP要低一个数量级。
CPU系列划分为高低端之后,两大CPU厂商分别都推出了自己的一系列产品。在桌面平台方面,有Intel面向主流桌面市场的Pentium II、Pentium III和Pentium 4以及面向低端桌面市场的Celeron系列(包括俗称的I/II/III/IV代);而AMD方面则有面向主流桌面市场Athlon、Athlon XP以及面向低端桌面市场的Duron和Sempron等等。在移动平台方面,Intel则有面向高端移动市场的Mobile Pentium II、Mobile Pentium III、Mobile Pentium 4-M、Mobile Pentium 4和Pentium M以及面向低端移动市场的Mobile Celeron和Celeron M;AMD方面也有面向高端移动市场的Mobile Athlon 4、Mobile Athlon XP-M和Mobile Athlon 64以及面向低端移动市场的Mobile Duron和Mobile Sempron等等。
目前,CPU的系列型号更是被进一步细分为高中低三种类型。就以台式机CPU而言,Intel方面,高端的是双核心的Pentium EE以及单核心的Pentium 4 EE,中端的是双核心的Pentium D和单核心的Pentium 4,低端的则是Celeron D以及已经被淘汰掉的Celeron(即俗称的Celeron IV);而AMD方面,高端的是Athlon 64 FX(包括单核心和双核心),中端的则是双核心的Athlon 64 X2和单核心的Athlon 64,低端就是Sempron。以笔记本CPU而言,Intel方面高端的是Core Duo,中端的是Core Solo和即将被淘汰的Pentium M,低端的则是Celeron M;而AMD方面,高端的则是Turion 64,中端的是Mobile Athlon 64,低端的则是Mobile Sempron。
但在购买CPU产品时需要注意的是,以系列型号来区分CPU性能的高低也只对同时期的产品才有效,任何事物都是相对的,今天的高端就是明天的中端、后天的低端,例如昔日的高端产品Pentium 4和Pentium M现在已经降为了中端产品,AMD的Turion 64在Turion 64 X2发布之后也将降为中端产品。另外某些系列型号的时间跨度非常大,例如Intel的Pentium 4系列从2000年11月发布至今已经过了6个年头,而当时属于高端的早期的Pentium 4其性能还远远不及现在属于低端的Celeron D。而且低端CPU产品中也出现过不少以超频性能著称或者能修改的精品,例如Intel方面早期的Celeron 300A,中期的图拉丁核心的Celeron III系列,以及现在的Celeron D系列等等;AMD方面也有早期的Duron由于可以依靠连接金桥而修改为Athlon和Athlon XP而风靡一时,中期的Barton核心Athlon XP 2500+和现在的64位Sempron 2500+都以超频性能著称。这些低端产品其修改后和超频后的性能也并不比同时期主流的高端型号差,性价比非常高。

外频
外频是CPU乃至整个计算机系统的基准频率,单位是MHz(兆赫兹)。在早期的电脑中,内存与主板之间的同步运行的速度等于外频,在这种方式下,可以理解为CPU外频直接与内存相连通,实现两者间的同步运行状态。对于目前的计算机系统来说,两者完全可以不相同,但是外频的意义仍然存在,计算机系统中大多数的频率都是在外频的基础上,乘以一定的倍数来实现,这个倍数可以是大于1的,也可以是小于1的。
说到处理器外频,就要提到与之密切相关的两个概念:倍频与主频,主频就是CPU的时钟频率;倍频即主频与外频之比的倍数。主频、外频、倍频,其关系式:主频=外频×倍频。
在486之前,CPU的主频还处于一个较低的阶段,CPU的主频一般都等于外频。而在486出现以后,由于CPU工作频率不断提高,而PC机的一些其他设备(如插卡、硬盘等)却受到工艺的限制,不能承受更高的频率,因此限制了CPU频率的进一步提高。因此出现了倍频技术,该技术能够使CPU内部工作频率变为外部频率的倍数,从而通过提升倍频而达到提升主频的目的。倍频技术就是使外部设备可以工作在一个较低外频上,而CPU主频是外频的倍数。
在Pentium时代,CPU的外频一般是60/66MHz,从Pentium Ⅱ 350开始,CPU外频提高到100MHz,目前CPU外频已经达到了200MHz。由于正常情况下外频和内存总线频率相同,所以当CPU外频提高后,与内存之间的交换速度也相应得到了提高,对提高电脑整体运行速度影响较大。
外频与前端总线(FSB)频率很容易被混为一谈。前端总线的速度指的是CPU和北桥芯片间总线的速度,更实质性的表示了CPU和外界数据传输的速度。而外频的概念是建立在数字脉冲信号震荡速度基础之上的,也就是说,100MHz外频特指数字脉冲信号在每秒钟震荡一万万次,它更多的影响了PCI及其他总线的频率。之所以前端总线与外频这两个概念容易混淆,主要的原因是在以前的很长一段时间里(主要是在Pentium 4出现之前和刚出现Pentium 4时),前端总线频率与外频是相同的,因此往往直接称前端总线为外频,最终造成这样的误会。随着计算机技术的发展,人们发现前端总线频率需要高于外频,因此采用了QDR(Quad Date Rate)技术,或者其他类似的技术实现这个目的。这些技术的原理类似于AGP的2X或者4X,它们使得前端总线的频率成为外频的2倍、4倍甚至更高,从此之后前端总线和外频的区别才开始被人们重视起来。
一个CPU默认的外频只有一个,主板必须能支持这个外频。因此在选购主板和CPU时必须注意这点,如果两者不匹配,系统就无法工作。此外,现在CPU的倍频很多已经被锁定,所以超频时经常需要超外频。外频改变后系统很多其他频率也会改变,除了CPU主频外,前端总线频率、PCI等各种接口频率,包括硬盘接口的频率都会改变,都可能造成系统无法正常运行。当然有些主板可以提供锁定各种接口频率的功能,对成功超频有很大帮助。超频有风险,甚至会损坏计算机硬件。

倍频
CPU的的倍频,全称是倍频系数。CPU的核心工作频率与外频之间存在着一个比值关系,这个比值就是倍频系数,简称倍频。理论上倍频是从1.5一直到无限的,但需要注意的是,倍频是以0.5为一个间隔单位。外频与倍频相乘就是主频,所以其中任何一项提高都可以使CPU的主频上升。
  原先并没有倍频概念,CPU的主频和系统总线的速度是一样的,但CPU的速度越来越快,倍频技术也就应允而生。它可使系统总线工作在相对较低的频率上,而CPU速度可以通过倍频来无限提升。那么CPU主频的计算方式变为:主频 = 外频 x 倍频。也就是倍频是指CPU和系统总线之间相差的倍数,当外频不变时,提高倍频,CPU主频也就越高。
一个CPU默认的倍频只有一个,主板必须能支持这个倍频。因此在选购主板和CPU时必须注意这点,如果两者不匹配,系统就无法工作。此外,现在CPU的倍频很多已经被锁定,无法修改。
一级缓存
CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器,它的容量比内存小的多但是交换速度却比内存要快得多。缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度。由此可见,在CPU中加入缓存是一种高效的解决方案,这样整个内存储器(缓存+内存)就变成了既有缓存的高速度,又有内存的大容量的存储系统了。缓存对CPU的性能影响很大,主要是因为CPU的数据交换顺序和CPU与缓存间的带宽引起的。
缓存的工作原理是当CPU要读取一个数据时,首先从缓存中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。
正是这样的读取机制使CPU读取缓存的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在缓存中,只有大约10%需要从内存读取。这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。总的来说,CPU读取数据的顺序是先缓存后内存。
目前缓存基本上都是采用SRAM存储器,SRAM是英文Static RAM的缩写,它是一种具有静志存取功能的存储器,不需要刷新电路即能保存它内部存储的数据。不像DRAM内存那样需要刷新电路,每隔一段时间,固定要对DRAM刷新充电一次,否则内部的数据即会消失,因此SRAM具有较高的性能,但是SRAM也有它的缺点,即它的集成度较低,相同容量的DRAM内存可以设计为较小的体积,但是SRAM却需要很大的体积,这也是目前不能将缓存容量做得太大的重要原因。它的特点归纳如下:优点是节能、速度快、不必配合内存刷新电路、可提高整体的工作效率,缺点是集成度低、相同的容量体积较大、而且价格较高,只能少量用于关键性系统以提高效率。
按照数据读取顺序和与CPU结合的紧密程度,CPU缓存可以分为一级缓存,二级缓存,部分高端CPU还具有三级缓存,每一级缓存中所储存的全部数据都是下一级缓存的一部分,这三种缓存的技术难度和制造成本是相对递减的,所以其容量也是相对递增的。当CPU要读取一个数据时,首先从一级缓存中查找,如果没有找到再从二级缓存中查找,如果还是没有就从三级缓存或内存中查找。一般来说,每级缓存的命中率大概都在80%左右,也就是说全部数据量的80%都可以在一级缓存中找到,只剩下20%的总数据量才需要从二级缓存、三级缓存或内存中读取,由此可见一级缓存是整个CPU缓存架构中最为重要的部分。
一级缓存(Level 1 Cache)简称L1 Cache,位于CPU内核的旁边,是与CPU结合最为紧密的CPU缓存,也是历史上最早出现的CPU缓存。由于一级缓存的技术难度和制造成本最高,提高容量所带来的技术难度增加和成本增加非常大,所带来的性能提升却不明显,性价比很低,而且现有的一级缓存的命中率已经很高,所以一级缓存是所有缓存中容量最小的,比二级缓存要小得多。
一般来说,一级缓存可以分为一级数据缓存(Data Cache,D-Cache)和一级指令缓存(Instruction Cache,I-Cache)。二者分别用来存放数据以及对执行这些数据的指令进行即时解码,而且两者可以同时被CPU访问,减少了争用Cache所造成的冲突,提高了处理器效能。目前大多数CPU的一级数据缓存和一级指令缓存具有相同的容量,例如AMD的Athlon XP就具有64KB的一级数据缓存和64KB的一级指令缓存,其一级缓存就以64KB+64KB来表示,其余的CPU的一级缓存表示方法以此类推。
Intel的采用NetBurst架构的CPU(最典型的就是Pentium 4)的一级缓存有点特殊,使用了新增加的一种一级追踪缓存(Execution Trace Cache,T-Cache或ETC)来替代一级指令缓存,容量为12KμOps,表示能存储12K条即12000条解码后的微指令。一级追踪缓存与一级指令缓存的运行机制是不相同的,一级指令缓存只是对指令作即时的解码而并不会储存这些指令,而一级追踪缓存同样会将一些指令作解码,这些指令称为微指令(micro-ops),而这些微指令能储存在一级追踪缓存之内,无需每一次都作出解码的程序,因此一级追踪缓存能有效地增加在高工作频率下对指令的解码能力,而μOps就是micro-ops,也就是微型操作的意思。它以很高的速度将μops提供给处理器核心。Intel NetBurst微型架构使用执行跟踪缓存,将解码器从执行循环中分离出来。这个跟踪缓存以很高的带宽将uops提供给核心,从本质上适于充分利用软件中的指令级并行机制。Intel并没有公布一级追踪缓存的实际容量,只知道一级追踪缓存能储存12000条微指令(micro-ops)。所以,我们不能简单地用微指令的数目来比较指令缓存的大小。实际上,单核心的NetBurst架构CPU使用8Kμops的缓存已经基本上够用了,多出的4kμops可以大大提高缓存命中率。而如果要使用超线程技术的话,12KμOps就会有些不够用,这就是为什么有时候Intel处理器在使用超线程技术时会导致性能下降的重要原因。
例如Northwood核心的一级缓存为8KB+12KμOps,就表示其一级数据缓存为8KB,一级追踪缓存为12KμOps;而Prescott核心的一级缓存为16KB+12KμOps,就表示其一级数据缓存为16KB,一级追踪缓存为12KμOps。在这里12KμOps绝对不等于12KB,单位都不同,一个是μOps,一个是Byte(字节),而且二者的运行机制完全不同。所以那些把Intel的CPU一级缓存简单相加,例如把Northwood核心说成是20KB一级缓存,把Prescott核心说成是28KB一级缓存,并且据此认为Intel处理器的一级缓存容量远远低于AMD处理器128KB的一级缓存容量的看法是完全错误的,二者不具有可比性。在架构有一定区别的CPU对比中,很多缓存已经难以找到对应的东西,即使类似名称的缓存在设计思路和功能定义上也有区别了,此时不能用简单的算术加法来进行对比;而在架构极为近似的CPU对比中,分别对比各种功能缓存大小才有一定的意义。

二级缓存容量
  CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器,它的容量比内存小但交换速度快。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度。由此可见,在CPU中加入缓存是一种高效的解决方案,这样整个内存储器(缓存+内存)就变成了既有缓存的高速度,又有内存的大容量的存储系统了。缓存对CPU的性能影响很大,主要是因为CPU的数据交换顺序和CPU与缓存间的带宽引起的。 
  缓存的工作原理是当CPU要读取一个数据时,首先从缓存中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。
  正是这样的读取机制使CPU读取缓存的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在缓存中,只有大约10%需要从内存读取。这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。总的来说,CPU读取数据的顺序是先缓存后内存。
  最早先的CPU缓存是个整体的,而且容量很低,英特尔公司从Pentium时代开始把缓存进行了分类。当时集成在CPU内核中的缓存已不足以满足CPU的需求,而制造工艺上的限制又不能大幅度提高缓存的容量。因此出现了集成在与CPU同一块电路板上或主板上的缓存,此时就把 CPU内核集成的缓存称为一级缓存,而外部的称为二级缓存。一级缓存中还分数据缓存(Data Cache,D-Cache)和指令缓存(Instruction Cache,I-Cache)。二者分别用来存放数据和执行这些数据的指令,而且两者可以同时被CPU访问,减少了争用Cache所造成的冲突,提高了处理器效能。英特尔公司在推出Pentium 4处理器时,用新增的一种一级追踪缓存替代指令缓存,容量为12KμOps,表示能存储12K条微指令。
  随着CPU制造工艺的发展,二级缓存也能轻易的集成在CPU内核中,容量也在逐年提升。现在再用集成在CPU内部与否来定义一、二级缓存,已不确切。而且随着二级缓存被集成入CPU内核中,以往二级缓存与CPU大差距分频的情况也被改变,此时其以相同于主频的速度工作,可以为CPU提供更高的传输速度。
  二级缓存是CPU性能表现的关键之一,在CPU核心不变化的情况下,增加二级缓存容量能使性能大幅度提高。而同一核心的CPU高低端之分往往也是在二级缓存上有差异,由此可见二级缓存对于CPU的重要性。
  CPU在缓存中找到有用的数据被称为命中,当缓存中没有CPU所需的数据时(这时称为未命中),CPU才访问内存。从理论上讲,在一颗拥有二级缓存的CPU中,读取一级缓存的命中率为80%。也就是说CPU一级缓存中找到的有用数据占数据总量的80%,剩下的20%从二级缓存中读取。由于不能准确预测将要执行的数据,读取二级缓存的命中率也在80%左右(从二级缓存读到有用的数据占总数据的16%)。那么还有的数据就不得不从内存调用,但这已经是一个相当小的比例了。目前的较高端的CPU中,还会带有三级缓存,它是为读取二级缓存后未命中的数据设计的—种缓存,在拥有三级缓存的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率。
  为了保证CPU访问时有较高的命中率,缓存中的内容应该按一定的算法替换。一种较常用的算法是“最近最少使用算法”(LRU算法),它是将最近一段时间内最少被访问过的行淘汰出局。因此需要为每行设置一个计数器,LRU算法是把命中行的计数器清零,其他各行计数器加1。当需要替换时淘汰行计数器计数值最大的数据行出局。这是一种高效、科学的算法,其计数器清零过程可以把一些频繁调用后再不需要的数据淘汰出缓存,提高缓存的利用率。
  CPU产品中,一级缓存的容量基本在4KB到64KB之间,二级缓存的容量则分为128KB、256KB、512KB、1MB、2MB等。一级缓存容量各产品之间相差不大,而二级缓存容量则是提高CPU性能的关键。二级缓存容量的提升是由CPU制造工艺所决定的,容量增大必然导致CPU内部晶体管数的增加,要在有限的CPU面积上集成更大的缓存,对制造工艺的要求也就越高。
双核心CPU的二级缓存比较特殊,和以前的单核心CPU相比,最重要的就是两个内核的缓存所保存的数据要保持一致,否则就会出现错误,为了解决这个问题不同的CPU使用了不同的办法:
Intel双核心处理器的二级缓存
目前Intel的双核心CPU主要有Pentium D、Pentium EE、Core Duo三种,其中Pentium D、Pentium EE的二级缓存方式完全相同。Pentium D和Pentium EE的二级缓存都是CPU内部两个内核具有互相独立的二级缓存,其中,8xx系列的Smithfield核心CPU为每核心1MB,而9xx系列的Presler核心CPU为每核心2MB。这种CPU内部的两个内核之间的缓存数据同步是依靠位于主板北桥芯片上的仲裁单元通过前端总线在两个核心之间传输来实现的,所以其数据延迟问题比较严重,性能并不尽如人意。
Core Duo使用的核心为Yonah,它的二级缓存则是两个核心共享2MB的二级缓存,共享式的二级缓存配合Intel的“Smart cache”共享缓存技术,实现了真正意义上的缓存数据同步,大幅度降低了数据延迟,减少了对前端总线的占用,性能表现不错,是目前双核心处理器上最先进的二级缓存架构。今后Intel的双核心处理器的二级缓存都会采用这种两个内核共享二级缓存的“Smart cache”共享缓存技术。
AMD双核心处理器的二级缓存
Athlon 64 X2 CPU的核心主要有Manchester和Toledo两种,他们的二级缓存都是CPU内部两个内核具有互相独立的二级缓存,其中,Manchester核心为每核心512KB,而Toledo核心为每核心1MB。处理器内部的两个内核之间的缓存数据同步是依靠CPU内置的System Request Interface(系统请求接口,SRI)控制,传输在CPU内部即可实现。这样一来,不但CPU资源占用很小,而且不必占用内存总线资源,数据延迟也比Intel的Smithfield核心和Presler核心大为减少,协作效率明显胜过这两种核心。不过,由于这种方式仍然是两个内核的缓存相互独立,从架构上来看也明显不如以Yonah核心为代表的Intel的共享缓存技术Smart Cache。