前言
笔者没有侮辱莎士比亚的意思,但残缺版的Romeo and Juliet是一个对计算机处理器世界适当的形容。从前,我们处理部件数字和频率。越大的数字意味着越快的计算机。80286就比8088和8086要快,而80386还要更快,至于80486则是性能之王。生活是简单的,而生活又是美好的。但那是遥远的过去了;欢迎来到现代。
从前我们有相对小范围的处理器部件数字以供选择,但现在我们被产品名,型号数字,代号及特性所淹没了。明了每一个意味着什么正在成为一个相当令人畏缩的任务。当然,你总是可以尝试用Google搜索信息,但有时你将获得互相矛盾的信息,或是不相干的网站,或是只有正在设法寻找的东西的小段报道。那么,为什么不整理一个清晰简明的,包含所有有关信息的文档呢?说比做要容易;然而,那么一个文档正是笔者尝试做到的。
为了让事情尽量简化,截止线被设在Pentium II和其后的Intel处理器,以及Athlon和其后的AMD处理器。再往前的某些东西可能让那些研究处理器历史的人感兴趣,但从完全实用的目的来说,那么老的CPU是不再值得使用了的。缺少的还将有功率消耗和发热量,主要是因为笔者对那些值并不过度关心,更不要说AMD和Intel采用完全不同的方法来汇报这个信息。此外,Intel和AMD以多种散热片,主板和其它部件来设计和测试他们的CPU,以确保一切正常运行,所以如果你使用的是正确的部件,那就应该不会出事。
那么有包括什么呢?对于这个第一部分,笔者努力搜集了关于时钟频率,总线速度,缓存大小,晶体管数量和其它几个项目,以及处理器代号的详细资料。关于处理器型号数字的使用也是人们感到困惑的地方,所以笔者还将包括关于所有Athlon XP和其后的AMD芯片,以及Pentium 4和其后的Intel芯片的详细处理器型号数字。代码和特性将首先被给出,用单独的处理器详细列表。总体上,它应该是一个有用的快速参考 - 对于任何试图找到关于现代x86处理器的详细资料的人来说。
接着就从AMD处理器开始。为什么首先是AMD?因为必须有人先来,而AMD在字母表中排在Intel之前。
AMD处理器
几条注释来解释信息。对Applebred和Thorton来说,规定的Die大小和晶体管数量反映了这些处理器分别是Thoroughbred和Barton核心的事实,由于禁用了一半的L2缓存,那是为什么它们旁边有个单独的星号的原因。已经有破解Thorton处理器并把它们变成完全的Barton CPU的报道,但考虑到目前无关紧要的价差,可能不值得担心吧。总之AMD打算不久就停产Barton,并将为Socket A Sempron芯片使用旧的Thoroughbred核心。
Paris,Victoria和Palermo上的晶体管数量很可能一样,但AMD究竟怎样配置这些芯片还有待观察。早期用于Socket 754的Athlon 64 512K缓存芯片是禁用了一半缓存的Claw Hammer核心,但新型号(也就是2.2 GHz,具有512K的3200+,2.4 GHz 512K的3400+及2.6 GHz,具有512K的3700+)看来是真正的Newcastle核心。相同的情况非常凑巧地发生在Paris核心上,它最初的产品是“降级的”Newcastle核心,后来的版本可能物理上去除了用在L2缓存中的约18.7百万个晶体管。
注意到Toledo AMD核心,它旁边的2C代表了双核心。相同的基础核心可能同时还将出现在Opteron中,不过那还有待观察,而还不清楚AMD是否将对Opteron版本采用不同的代号。
未发布的处理器很可能会改变这些当前的估计,而问号表示目前最佳的推测数据。
从Pluto一直到最新的Newcastle和Paris处理器,Athlon的基本核心自它诞生以来就几乎没什么改变。它拥有10级整数管线和15级浮点管线,具有三个同样的Arithmetic/Logic Unit(算术/逻辑单元,ALU),Address Generation Unit(地址形成单元,AGU)和Floating Point Unit(浮点单元,FPU)。FPU还处理MMX,3DNow!/+,以及SSE/SSE2支持。Opteron除了带来64-bit支持以外,还把长度增加到了12/17级。为了增加时钟速度,Athlon 64的将来版本很可能会把管线长度增加到超过现在的12/17级,但笔者不信AMD会变得象Intel那样嚣张,创建31级的管线 - 至少不会用在任何Athlon构架的产品上。这对越来越多的高时钟速度功率泄漏和愈加小的工艺特别成问题。直到那些问题都被解决了,笔者才会认为,对AMD来说管线长度保存在10到15级(对整数而言)的范围是安全的。
更新:AMD的站点列出了Opteron事实上采用了12/17设计。那意味着所有的Athlon 64设计当然也是12/17。看来Denmark,Italy和Egypt CPU也是双核心,它们的条目已经被更新以反映出这一点。(旧的蓝图没有包含那个信息。)
Intel处理器
注意到Intel这边类似于AMD的情况。也有一对标有星号的核心,表示该核心是更快核心的“降级”版本,主要用于Celeron处理器。双星号是用于在不同分级中具有不同Die大小的芯片的。这在大多数芯片中可能很少出现,但在Cascades,Coppermine和Northwood核心中很平常,变化相当剧烈。在AMD中Thoroughbred A到B只有4 mm2的Die大小增加,而Coppermine在106 mm2到90 mm2之间变动,Northwood从146 mm2下到131 mm2。笔者的推测是那部分是由于手动优化核心的设计。
可以看到Intel在他们的蓝图中也有2C(双核心)设计,以及一个很有疑问的16C(16核心!)Itanium。Tukwila是否会出世让人猜疑不已。那样一块芯片上的晶体管数量很可能以十亿记。
与AMD相比,Intel在过去大约七年间已经有了几个主要的构架修订版。AMD非常坚决地将K7/Athlon核心用于他们所有的处理器,那是一个公认非常好的设计。财力更为雄厚的Intel则尝试了许多的前端总线。首先是Pentium III产品线,那或多或少跟他们的竞争者AMD打了平手。受到行销的鼓动,Intel提出了一个全新的构架NetBurst作为Pentium 4的基础。NetBurst在桌面系统上是成功的,但对膝上型电脑来说的确太耗电了,所以Intel决定以一个完全分离的构架用于它的移动处理器。最后,在Athlon 64投放后很短的时间内,Intel以重做的NetBurst构架和处理器的Prescott产品线予以还击。加上这个让人久等的IA-64的投放(酝酿了大概十年!),那是一个全新的构架,甚至比NetBurst更激进。不必说,Intel有得忙了。
更新:不少人指出Celeron处理器命名具有的问题。当时,Intel用A来指明与已有型号交迭的处理器。所以有无缓存的Celeron 266/300处理器,及带有128K L2缓存的266/300采用A后缀。这在Celeron 533上再次出现,在Celeron 1000/1100上重复。在一个相似的支系中,Klamath核心只有350 nm,而Deschutes是250 nm的。它最初列出的是350/250,有某些假冒Klamath发布的Deschutes核心,例如P2 300 MHz SL2W8。没有任何办法能真正地分辨出哪些P2芯片拥有Klamath核心,而那些采用Deschutes核心。图表现在通过放入一条250 nm 266-333 Deschutes产品线加以纠正。
对处理器图表的介绍
在接触真正的图表之前,笔者想要花些时间来解释图表是怎样组织的。由于特性数字被包含进了现代的处理器,在比较不同型号时很难确定究竟哪一款CPU更快。例如,使用Thoroughbred核心的2250 MHz Athlon XP具有2800+的型号数字,而使用Barton核心的2000 MHz Athlon XP也用2800+的型号数字,那谁更快呢?至于Intel,情况就更复杂了:拥有不同的缓存大小,总线速度和构架。
想要怎样评价不同的因素当然是一个备受争议的话题。笔者给出的决不是对哪个型号更快的权威性回答,但它应该算是一个粗略的估计。下面是不同的处理器家族和笔者使用的权重值。然后笔者以权重乘上实际的时钟速度来得出最终的性能评定。
因为这只不过是一个粗略的估计,笔者没有把这些评定值包含进实际的图表中,但它们是笔者对数据排序的依据。它们存在的理由只是成为或多或少符合笔者个人观点的排序函数,所以如果笔者不小心漏掉了一个处理器,或是有新处理器发布的话,就可以很简单地把这些处理器加入图表中并重新排序。笔者非常坦然地面对关于这些评定可以如何改进的建议,但要了解永远不会有确定的准则,因为相关性能依赖于当时运行的代码。
权重因素是对每个家族内部而言 - 它们跟其它处理器家族不相关。(所以不要为Dothan有1.6的权重而Athlon FX只有1.15感到心烦!)接着在这里给出笔者使用的权重值:
Duron,Athlon,Athlon XP和Sempron
128K L2 + 100 MHz bus = 0.7
128K L2 + 133 MHz bus = 0.75
256K L2 + 100 MHz bus = 0.8
256K L2 + 133 MHz bus = 0.85
256K L2 + 166 MHz bus = 0.9
512K L2 + 133 MHz bus = 0.95
512K L2 + 166 MHz bus = 1.0
512K L2 + 200 MHz bus = 1.05
Athlon 64
256K L2 + 单通道(Socket 754) = 0.9
512K L2 + 单通道(Socket 754) = 0.95
1024K L2 + 单通道(Socket 754) = 1.0
512K L2 + 双通道(Socket 939) = 1.04
1024K L2 + 双通道(Socket 940) = 1.11
1024K L2 + 双通道(Socket 939) = 1.15
Celeron 2和Pentium 4
128K L2 + 400 FSB = 0.6
256K L2 + 400 FSB = 0.75
256K L2 + 533 FSB = 0.80
512K L2 + 400 FSB = 0.84
512K L2 + 533 FSB = 0.91
1024K L2 + 533 FSB = 0.93
1024K L2 + 800 FSB = 0.98
512K L2 + 800 FSB = 1.0
512K L2 + 800 FSB + 2048K L3 = 1.15
2048K L2 + 1066 FSB = 1.2
Mobile Celeron,Mobile P4,Celeron M和Pentium M
128K L2 + 400 FSB = 0.6
256K L2 + 400 FSB = 0.75
256K L2 + 533 FSB = 0.80
512K L2 + 533 FSB + Northwood = 0.91
1024K L2 + 533 FSB + Prescott = 0.93
512K L2 + 400 FSB + Dothan = 1.25
512K L2 + 400 FSB + Banias = 1.3
1024K L2 + 400 FSB + Dothan = 1.35
1024K L2 + 400 FSB + Banias = 1.4
2048K L2 + 400 FSB = 1.5
2048K L2 + 533 FSB = 1.6
Duron和Athlon
逐一细说早期的Athlon和Duron处理器不会让笔者感到麻烦。在它们的时代那是极好的,但它们有许久不被人提起了。
对于那些对某些历史信息感兴趣的人,这里有多几个珍闻。早期的Pluto和Orion Athlon芯片在Slot A单元存储器中有L2缓存芯片。这个缓存能够运行在核心时钟速度的1/2,2/5或1/3下 - 核心越快,比率越低。这导致了这样的情形,由于较慢的缓存,具有350 MHz L2的700 MHz Athlon会胜过更贵的750/300,或是850/340会击败900/300。一般而言,那时Athlon和Pentium III芯片间的性能比较是势均力敌的,每一方都会赢得几个基准测试。Athlon拥有更好的x87浮点性能,而Intel通常胜在象MMX和SSE这样的特性上 - 至少在被适当优化的应用软件中。
Socket A处理器转到了集成的全速L2缓存,但缓存大小减少了一半。然而,增加的速度和减少的延迟补偿缓存大小上的减少已是绰绰有余了。这时AMD在一段时间内能够在纯性能上真正胜过Intel了。Athlon Thunderbird最后达到1.4 GHz,而Pentium III尝试到1.13 GHz并失败了。Pentium III的后续版本Tualatin最终达到1.4 GHz,但那些只是在Pentium 4引入之后了。在这段时间内Athlon成为了游戏系统的首选芯片。
Athlon XP和Sempron处理器
Athlon XP调整了一些Athlon构架出色的细节以改进性能。由于XP将面对Pentium 4而不是Pentium III,AMD(重新)引入了型号数字并开始了他们“时钟速度并不是一切”的战役。根据AMD的说法,XP产品线是根据相对于Thunderbird核心的性能来评定的,但事实上几乎没有人相信它。它肯定是受市场驱使的,就像Pentium 4在时钟速度上迅速放大一样。Athlon核心不可能在纯MHz跟上Intel。当然了,AMD是正确的,时钟速度并不是一切 - 每个时钟执行的平均指令数(IPC)乘上时钟速度才是真正的指令吞吐量。不幸的是,得出IPC的精确测量事实上是不可能的 - 它根据执行的代码而变化。尽管如此,在相同频率下Athlon明显比P4芯片快,PR评定是相对精确的,至少起初是这样的。
随着“处理器之战”的延续,两家公司都发布了调整过的设计。Thoroughbred是一个带来更高时钟速度的制程收缩,但不如最初想要的那么高。重做的Thoroughbred B核心 - 它增加了额外的一层到核心 - 有助于进一步提升时钟界限并使得Athlon XP终于达到了2250 MHz。注意到Thoroughbred B核心常常能在充分散热下超频到2.3至2.4 GHz,而A版本经常被限制在2.1至2.2 GHz。
在Thoroughbred之后,AMD对Barton核心增加了更多的缓存,从而重新调整了他们的型号数字,因为更多的缓存能带来更大的性能。不过这是型号数字真正开始变得可疑的地方,因为Intel也增加了更多的缓存和提升了总线速度,但没有“调整”任何型号数字。2500+,2600+和2800+倾向于努力跟上它们的Intel对手,但在Intel发布Pentium 4的200 MHz(800 FSB) C版本的时候,问题出现了。在总性能比较中,跳到具有200 MHz FSB的3200+实际上只能让Athlon XP跟P4 2.8C竞争。当然了,在这里型号命名是一个神来之笔,因为许多人简单地设想3200+真地等价于3.2C。
Athlon XP-M处理器
关于移动AMD处理器的确没什么好说的。它们跟桌面版本是一样的,只是运行在更低的电压上并且为了节能可以运行在减少的时钟速度下。稍后,Athlon XP-M处理器由于不锁倍频而获得了极大的普及,那使得它们可以很好地超频,能够让总线速度接近于标准的200 MHz。
Athlon 64和Opteron处理器
* Paris核心不包含64-bit支持,但它拥有集成内存控制器。
至于Athlon 64,正如名字所暗示的那样,AMD增加了对64-bit寻址和整数的支持。这通过扩展它们的路径和寄存器来完成,但它并不是核心Athlon构架的重新设计 - 它的管线增加到了12/17级,并内建了SSE2支持。x86-64支持的添加引起了许多的注意,但到目前为止它还几乎是一个概念。一旦64-bit支持全面到来,它有潜力改善性能,但在主流市场中这个潜力仍没有体现出来。然而科学和学术界敞开双臂欢迎64-bit处理的引入。其时大多数消费者仍坚持等待Windows XP-64。
至于Athlon 64性能出众的原因 - 在当前的32-bit代码以及64-bit代码中 - 主要在于集成的内存控制器,它引人注目地减少了内存延迟。它有效地帮助把系统RAM变成一个非常大但仍相对慢的L3缓存。它还在时钟速度增加的时候继续减少内存延迟。Athlon XP上的内存延迟在3200+下大概是81 ns,而P4 3.2C是77 ns左右。同时,Athlon 64 3400+达到了低得令人惊异的48 ns。正如笔者前面所提到的,那些延迟数字变得有点接近于L3缓存的值 - 例如,3.06 GHz Xeon中的L3缓存大约是10 ns。它仍然慢了四倍,但也比P4系统上的RAM快了两倍。
当然,减少的延迟并不是Athlon 64的全部优势。在64-bit模式中,无论对于整数还是浮点操作来说,可用寄存器的数量都被翻了一番。根据运行的代码,这能够潜在地带来10到20个百分点的性能提升。某些大量使用64-bit整数的应用软件也能够从增加的64-bit支持中受益,例如密码系统和编码工具。然而,多年来MMX和SSE已经提供了改进64-bit整数性能的选择性方法 - 它们只需要更多的编程努力来实现。
Celeron,Pentium II和III处理器
笔者准备暂时不列出这些处理器的各种型号。如果你还在使用这些处理器,那是值得同情的。给出升级的代价 - 225美元将获得一块象样的主板,512 MB RAM和Athlon XP 2500+ - 可能的话你的确应该升级了。
老式的Pentium Pro P6构架是12级管线的,或多或少终结于Pentium III。它有三个专门的AGU,两个ALU - 一个处理简单的指令而另一个用于更复杂的指令 - 以及一个FPU。FPU还增加了对SSE(那是AMD直到Athlon XP才具有的,但那时Intel正推出P4)和MMX的支持 - 通常它们在这些指令上会比AMD快。考虑到他们创造了技术而AMD不得不从Intel获得许可证,那是不太让人吃惊。
Intel的确坚持采用超长管线的设计,因为绝版的Tualatin核心提供了对最高1.4 GHz的Athlon相当有竞争性的性能(最后的Pentium III-S)。事实上,后来的1.0A到1.4A Celeron处理器是非常好超频的芯片,而运行在133 MHz总线上的1.1A提供了相当可观的性能。更新更好的芯片组能够进一步改善速度,但Intel取消了该产品线并大力推动Pentium 4和NetBurst。现在看来这更多是考虑到市场的决定,虽然在很大程度上它不能被看作是最糟糕的想法。
移动Celeron,移动P4,Celeron M和Pentium M处理器
甚至没有特别设计的移动版本的确适合用在膝上型电脑中。越高的时钟速度意味着越高的功率需求以及增加的热量输出,这使得延迟电池使用时间变得十分困难。为了应对来自Transmeta这些公司的进逼,Intel委托一个以色列的设计团队来装配高性能,低功率的处理器。最终的结果就是Pentium M。奋力争取高时钟速度是NetBurst背后的驱动力,而Pentium M旨在达到特殊的热量要求。虽然详细资料是难以取得的,因为Intel要试图保住它在移动领域的领导地位,但Pentium M似乎是古老的P6构架的修改版。
对P6构架所做的改进之一就是巨大的L2缓存,它能够在32K扇区中寻址。这使得在任何时候,缓存的大部分处于低功率的“睡眠”模式中,所以它们在获得大缓存性能好处的同时又不会招致跟平时同样多的功率增长。L1缓存也从PIII的翻倍到了32K+32K数据和指令。浮点性能由于双倍的MMX/SSE单元也增加了 - 虽然这只真正有助于SSE优化代码 - 还有其它几个构架变化。总的来说,Pentium M能够提供跟相同时钟速度的Athlon处理器大致相等的性能,而需要少得多的功率。在使用Pentium M的膝上型电脑中的电池寿命通常能比使用移动Pentium 4,移动Celeron或移动Athlon XP芯片的相当配置长25到50个百分点。
上面图表的长度显示了移动市场已经变得多大了。这个增长的原因之一很可能是存在于桌面CPU市场中的恶劣条件。
随着Dothan核心Pentium M芯片的发布,Intel也转到了型号数字。然而,在这里有许多影响最终数字的因素。运行在更低时钟速度下的超低电压处理器能够获得比需要更多功率的高速处理器更高的评定。这被假定以反映某些特性的相关性,因为对某些人来说增加的电池寿命比纯性能更重要。当然了,Intel特别声明了型号数字并不是性能的测量,只是技术上的需要。
Itanium和Itanium 2处理器
Itanium处理器很可能是为大多数电脑玩家最少了解的CPU之一了。鉴于最便宜的型号仍然价值超过1000美元,这就不出奇了。这些处理器是专门瞄准高端企业市场的。它们经常被用在繁重的并行处理环境中,Itanium能够在最高达512路的SMP系统中工作。当然了,这并没有说明Itanium是什么。
起初Itanium是Intel预想的64-bit计算方法,它构建在新的指令集IA-64(Intel Architecture 64)上。IA-64是一个与x86代码的决裂,它是为未来设计的。的确,它的对手不是Xeon或Opteron处理器,虽然有人错误地以这些处理器与它比较。Itanium是专门用在高端企业级64-bit计算环境中竞争的,对抗基于IBM Power4/5,HP PA-RISC,Sun UltraSparc-III及DEC Alpha的服务器。如果对这些名字没有印象,那不奇怪。笔者服务的公司用的主服务器就是IBM Power4系统,花费了将近500,000美元,而提供数据存储的RAID-5阵列又花了500,000美元。可能比硬件更重要的还是与IBM的劳务合同,它保证一切都保持运转。与IBM技术支持合同的花费按照推测大概要3百万美元一年!
Alpha科技被Compaq收购了,它又并入了HP,而HP与Intel合作设计Itanium,目的是一旦完成就用它来代替PA-RISC。笔者相信有些(或全部?)Alpha技术随后传入了Intel,很大可能用在促进Itanium处理器的设计中。Compaq/HP在过去的几年中持续支持这款芯片,但他们没有投入大量的金钱用于研究开发。这可以理解,因为HP正鼓动它的企业客户转到Itanium平台。最近HP宣布了1.3 GHz(笔者认为那是速度)的Alpha芯片EV7版本将是最后的产品了。
对于处理器设计,Intel继续扮演激进分子,违背了公认的标准。不是RISC或CISC方法,Intel退回到了曾经被用在老式大型机和昔日其它电脑中的技术VLIW(Very Long Instruction Word)。不过Itanium不是一台严格意义上的VLIW机器,因为VLIW有一些众所周知的缺点以被Intel努力克服,而Intel选择称呼他们的新方法为EPIC(Explicitly Parallel Instruction Computer)。对比Xeon和Opteron每个时钟周期发出最多三条指令的设计,Itanium 2能够每个时钟发出八条指令,这与VLIW设计不同,将来的Itanium芯片能发出更多的指令而无需重编译代码。理论上,1 GHz Itanium芯片能够表现得差不多跟2.66 GHz Xeon/Opteron一样快,或是1.5 GHz Itanium 2大约跟4 GHz Xeon/Opteron一样快。当然那只是理论性能,全面系统设计将在决定系统的潜力能真正实现多少上扮演一个重要的角色。
为了帮助达到那样的潜力,Itanium芯片采用128-bit的系统总线,(暂时)使用标准的SDRAM。更低的时钟速度结合更宽的总线使得SDRAM不像高速桌面系统下那么问题多多。最初的Itanium设计Merced有四个整数单元(ALU),两个浮点单元(FPU)及三个分支单元(BRU),两个SIMD(也就是MMX/SSE)单元,和两个载入/存储单元 - 在其它CPU中也成为地址形成单元(AGU)。后来修改过的McKinley设计有六个ALU,三个BRU,两个FPU,一个SIMD,两个载入单元和两个存储单元 - 有几分象拥有4个AGU,不过它们分工更细了。另外,McKinley有相当于Merced三倍的缓存带宽。Merced也是六指令设计,具有更深的管线(10级)和更少的内存带宽 - 一个相当有问题的设计。McKinley和后来的设计都是八指令设计,具有更短的管线(8级)和更多的内存带宽。虽然Merced很少完全用到它的六指令设计,但McKinley的增强帮助它更接近于每个时钟发出最大的八条指令。
许多人把Itanium认为是一个失败,特别是现在AMD已经投放了Opteron而Intel正跟随x86-64支持的潮流。然而,它们的确是目标市场段中非常困难的目标,而Itanium正在设法竞争。从长远观点来看Itanium可能生存也可能不,但短期内Intel已经计划让它保持至少三或四年,而它们很可能会让它坚持更久以支持现有的客户端。
结束语
显然,这只是看到了AMD和Intel处理器历史的一个大纲,附以含糊的未来描述。双核心设计应该在明年之内开始出现,而四核心处理器的传闻也已经沸沸扬扬了。在某种意义下,我们很可能将到达当前制造工艺的极限,但那个日子还远着呢。AMD和Intel两家都有发展中的技术,应该把我们带过45 nm制程,并很可能在我们有生之年降到一位数。那首先要假定我们没有获得量子计算机,它会让现在所有的二进制系统更精巧。
现在在你面前的处理能力已经超过了二十年前的理解范围了。笔者经常想到,就在十年前“一般的”电脑对人们来说还是何等的惊奇。十年前,3D只是做梦,而3D加速卡价值数千美元。十年前,32-bit处理器还在寻找一个真正的操作系统,而64-bit只被用于政府和研究中心。十年前,100 MHz的处理器远远超出人们的期待。十年前,几乎没有人在家使用网络计算机,而28.8k的Modem是令人惊讶地快...