天天看点

AMD Athlon CPU 全系列回忆录

Athlon已不仅是一款处理器名称,而成为AMD公司的灵魂。这是一个沿用了8年而不朽的称谓,它见证了AMD由受人摆布到走向成熟,见证了AMD与Intel 历时8年的性能斗争。Athlon并不是AMD的唯一产品,却成为整个公司风向标,在财务危机、裁员风波等一系列的关键时刻力挽狂澜,顽强地打破了Intel的垄断并巩固市场份额,使AMD逐渐强大。随着AMD决定在2007年第三季度发布Phonom处理器品牌,Athlon即将退役。笔者正是在8年前步入DIY殿堂,怀着对它一份特殊感情,我参考了很多资料,希望用这篇文章和大家一起回顾整个Athlon时代。

● Athlon到来之前

1993年3月22日,Intel全面超越486的586处理器问世,为摆脱486时代名称混乱的困扰并获得更好的知识产权保护(美国法律中不能用阿拉伯数字注册,Intel用拉丁文注册商标,以避免其他厂商用同样的名字,Pentium在拉丁文中是“5”的意思,后缀ium又像某些化学元素的拼写,充满了神秘和动力),Intel遂将新一代产品命名为Pentium(奔腾)并进行商标注册,以区别AMD和Cyrix等公司的产品。

AMD Athlon CPU 全系列回忆录

Pentium采用的P5(第5代处理器)架构领先于竞争对手,并凭借市场运作等手段快速成长。同时Pentium产品的到来也宣布不同厂商的CPU架构设计分道扬镳,开始了激烈竞争。在同一时代,作为竞争对手的AMD和Cyrix显然因为架构上的落后而无法与Intel展开正面竞争,这使当时正在主推K5处理器的AMD开始反思并逐步觉醒。

AMD Athlon CPU 全系列回忆录

Pentium(P5)微架构体系图

Pentium拥有8KB数据cache和8KB指令cache,初期的Pentium 60/66使用600纳米的Bi CMOS工艺,采用273 pin的PGA封装,晶体管数量是3.1百万,L2 cache集成于主板上(常见的预安装容量为256KB)。Pentium是一枚32位处理器,拥有64位的外部总线,物理内存定址空间为32位(据说工程样品出现过36位物理定址,但是正式产品降回32位),逻辑内存能力为64TB。

Intel在发布奔腾的下一代产品Pentium II时,采用了专利保护的P6(第6代处理器)架构,并且不再向AMD和Cyrix授权,AMD和Cyrix的市场份额急转直下。P6架构与Pentium的P5架构最大的不同在于,以前集成在主板上的二级缓存被移植到了CPU内,从而大大地加快了数据读取和命中率,提高了性能。

1997年4月,AMD推出K6以抵抗Intel,K6采用0.35微米工艺,工作频率在166-233MHz之间不等,基于对686处理器的研究开发,K6新增了MMX指令集(这是Intel发明的多媒体增强指令集技术,可以增强Pentium在图像、声音、通信应用等方面的性能),一级缓存为64KB,无内置二级缓存。

第一代K6还只能与具备MMX技术的Pentium打成平手,所以AMD于1998年4月迅速推出K6-2以抗击Pentium II,它支持新3D Now! 指令集(这是AMD发布的针对三维建模和效果渲染等三维应用场合性能增强的指令集,可以大幅度提高CPU的3D处理性能)及100MHz的前端总线频率(FSB),最初的时钟频率为266MHz,后增到475MHz,带有64KB的一级缓存,二级缓存位于主板上,容量为512KB—2MB之间,与总线频率同步。

AMD Athlon CPU 全系列回忆录

后来的结果告诉我们K6-2是具有历史意义的CPU,因为它真正为AMD吹响了向Intel挑战的号角,并以极高的性价比打压了Pentium II。

1999年,Intel发布了Katmai核心的Pentium III,它在原有Pentium II核心添加SSE指令集,使用0.25微米工艺,内含900万个晶体管,512KB半速二级缓存,使用Slot 1接口。

AMD Athlon CPU 全系列回忆录

Pentium III

AMD Athlon CPU 全系列回忆录

K6-III

接下来诞生的则是K6-3,它于1999年2月发布,是AMD推出的第一款将二级缓存整合在处理器芯片中的产品,实际上是K6-2的改进版。它采用Socket插槽结构,主频在400MHz到450MHz,带一级缓存64KB,内置全速二级缓存256KB,创造性地外置512KB—2MB之间的三级缓存与系统总线同步。虽然K6家族的浮点性能与Pentium有不小差距,二级缓存也没有完全集成在CPU内部,但另人满意的性能和低廉的价格让Intel感到巨大的压力。它们是Athlon的前奏。

第一个4年(1999年6月23日——2003年9月22日)

● Athlon第一个4年 Athlon诞生——Pluto、Orion、Magnolia

第一款K7处理器于1999年6月23日首度亮相。AMD在K7时代给予了CPU一个响亮的名字——Athlon,其名称取自田径运动的“十项全能” (Decathlon)。从这一天起,Athlon时代正式到来。首批处理器的主频介于500到700 MHz之间,并带有512 KB的半速L2 cache,之后AMD又抢在Intel之前推出了1000 MHz的版本。这一架构内核发展共经历3个阶段:Pluto、Orion、Magnolia。这些处理器使用的插槽,与Pentium II的Slot 1相似,但两款插槽并不兼容。

AMD Athlon CPU 全系列回忆录

采用了Slot A插槽的Athlon 650(Pluto核心)

上图就是采用了Slot A插槽的Athlon 650(Pluto核心)。这颗CPU使用0.25微米工艺制造,核心面积为184mm2,6层金属连接,晶体管集成数量达到了2200万。Athlon拥有128KB一级缓存(64KB指令+64KB数据),这一设计也在整个8年的变化中得以保留,这个阶段Athlon内核与L2 Cache采用分离式设计,核心位于长方形电路板中央,L2 Cache植荚谄淞讲啵幌馪entium II集成在一个管芯里。

AMD Athlon CPU 全系列回忆录

如图:AMD的计划中,K6即将终结,Athlon时代到来

从Athlon时代开始,AMD的CPU能够实现乱序执行Out Of Order(它允许执行指令的顺序和取指令的顺序不同,实际上做到了指令只要有可能就执行。因为关键的路径计算可能随时开始和完成,因此这种方法加快了指令的执行速度)、可编程L2接口、在CPU与芯片组之间使用200MHz EV6总线(增加与内存之间带宽,获得更大的数据吞吐量)、增强型3DNow!TM指令集(在原有的3DNow!TM上继续完善追加至52个指令,包含一些SSE码,同时获得了更多软件的支持。但是3D Now!缺乏SSE所具备的IEEE-754兼容性、视频加速能力以及内存流式传输能力,因此虽然3D Now!一开始的时候威势不少并且有大量媒体借机炒作,但事实证明3D Now!的确有不少地方不如SSE)。

AMD Athlon CPU 全系列回忆录

从内部而言,Athlon是完整的第七代x86处理器。也是它的同类型中的首位。这颗CPU是由AMD工程师和新雇用的DEC工程师联合开发的。所以融合了AMD以前的CPU和DEC Alpha 21264的技术。正如AMD的K5和K6,Athlon是一个RISC(精简指令集)的CPU,能够实时解码x86指令到它自己的内部指令。

AMD设计的这颗CPU提供了更加稳定的x86指令编码兼容性,使它可以同时处理更多的数据。Athlon的CISC(相对RISC而言,复杂指令集计算机)-RISC三元组解码器能够在每个时钟解码6个x86操作。关键分支预测单元(Critical Branch Predictor Unit)相比K6得到增强,这是因为Athlon更长的管线使得高准确的预测成为必要,否则将会导致使性能下降的管线延迟。

AMD Athlon CPU 全系列回忆录

上图为Athlon的内核设计详细结构,其在设计时参考了Alpha 21264处理器。21264以超标量超流水的方式实现了Alpha体系结构,是一颗设计先进的高性能CPU,其在SPEC benchmark中取得了相当好的成绩。Alpha 21264的缓存系统也对高性能水平做出了贡献。Athlon继承了它的高效缓存设计——芯片内部L1包括一个64KB的指令缓存器(I-cache)和一个64KB的数据缓存器(D-cache)和外部总线——Alpha EV6 200MHz,片上和片外缓存提供了低延时的数据访问能力,从而带来了很高的数据访问带宽和整体性能,而且AMD K7处理器的动态分支预测技术也领先于P6架构,同时具有多重并行x86指令解码器。由于当时制造工艺的局限, L2 Cache部分只能以2/3、1/2、1/3于CPU主频速度运行,在后来很大程度上又制约了CPU整体性能发挥。以往AMD CPU较差的浮点性能在Athlon架构中同样得到改善,其浮点性能与Pentium III相比毫不逊色。

AMD的缓存设计与Intel相比也有很大不同,Athlon架构使用拥有一个很大的L1 Cache,直到今天的Athlon 64也一样没有发生变化。这表示了CPU需要的大量数据可以从L1获取,而Pentium III的L1 Cache则很小,为16KB,很大程度上要依赖于L2 Cache提供数据。所以Intel为CPU设计的L2 Cache位宽和关联度都比较高,以此来获得较高的L2带宽。特别是到了Pentium 4时,L1 Cache数据缓存只剩下8KB,Intel用新增的一种一级追踪缓存替代指令缓存,容量为12KμOps,表示能存储12K条微指令。所以Pentium 4必须有一个很大的L2 Cache,L1 Cache在Pentium 4中更多的作用是告诉CPU数据在L2 Cache的某个地方,而并没有存放很多数据。因此在低端市场,AMD可以大幅度削减CPU的L2 Cache,带来性能损失远没有Intel,这也为抢占低端市场打下了坚实的性能基础。

AMD Athlon CPU 全系列回忆录

安装了散热器的Slot A插槽Athlon

Intel没有想到AMD在K7时代变得异常强大,这让Pentium III措不及防,Intel迅速将Pentium III过度到新核心——也就是后来最流行的Coppermine,它使用0.18微米工艺,256KB全速二级缓存,支持Socket 370与Slot 1两种接口。Intel终于把L2 cache集成到了和CPU同一枚管芯(die)内,也是在Pentium III,Intel引入了71条SSE扩展指令集,显著加强了x86处理器在流媒体处理方面的能力。

AMD Athlon CPU 全系列回忆录

Coppermine微架构(0.18微米Pentium III,属于Pentium Pro家族第3代改进型)

其实Pentium II和Pentium III的设计来自于对Pentium Pro的改进。1995年11月1日,Intel推出了当时看来可以用“硕大”来形容的Pentium Pro处理器(中文名称是高能奔腾),这款代号P6的产品和Pentium相比革新相当大,例如整数流水线采用了10级工位的超级流水线;能作多重分支预测和猜测执行;具备能够把x86指令转换成RISC风格微操作的译码器;实现了乱序执行等。

AMD Athlon CPU 全系列回忆录

如图,Intel CPU晶体管集成数量的发展

在规格上,Pentium Pro相当强大,其晶体管集成度发展速度甚至超越了摩尔定律,使CPU的性能进一步提高到惊人的水平。即使是这样,在整个Pentium III时代,Intel仍无法超越AMD,Athlon优秀的架构抵挡了所有来自Pentium III的进攻,在性能上几乎全面领先。更重要的是2000年3月6日,AMD抢在Intel之前,在美国加州的Sunnyvale发布了第一款实用的1GHz Athlon处理器(Magnolia核心),跨越了一个新的里程碑。对于奉行摩尔定律的Intel来说这样的局面是无论如何也抬不起头的。这在当时被称作AMD完全的胜利!

AMD Athlon CPU 全系列回忆录
AMD Athlon CPU 全系列回忆录

如上图,Athlon在当时的各种测试中终于让AMD扭转乾坤,也使CPU市场格局发生了翻天覆地的变化。Athlon取得不可动摇的性能领先。

AMD Athlon CPU 全系列回忆录

在这个需要支持SMP的测试中,Athlon虽败给了双路Celeron,但用测试人员的话说:不可想象未来配备在服务器上的双路Athlon将会取得怎样的领先。

第一代Athlon 1GHz在生产时没有能得到高性能的SRAM晶圆,所以很可惜,其L2 Cache是以1/3于CPU主频速度运行的。反而随着Pentium III的频率上升,性能的增益也越来越强,不要忘了其所采用的全速Cache。在1GHz 决战时,迟到的Pentium III终于超越了Athlon。

● 延续辉煌——Thunderbird

AMD当然没有放松,Athlon开始改用新核心——拥有全速L2 Cache的Thunderbird(雷鸟)。新核心除缓存速度发生变化,几乎没有其他改进,却让Athlon再次全面开花,压制了同频Pentium III。同时Thunderbird将频率提高到1.4GHz,配套芯片组如AMD 760、KT133、KT133A也日臻成熟。

更重要的是AMD削减Athlon 的L2 Cache到64KB,打造了低端明星Duron(毒龙)。Duron(毒龙)是AMD首款基于Athlon核心改进的低端微处理器,核心面积是100平方毫米,内部集成的晶体管数量为2500万个,比K7核心的Athlon多300万个。在浮点性能上,Duron具有三个全流水乱序执行单元,一个用于加/减运算,一个用于复合指令还有一个是浮点存储单元。其他规格方面,Duron外频为200MHz,内置128KB的一级缓存和64KB的全速二级缓存,工作电压为1.5V,功耗要较Thunderbird小一些。Duron由于缓存结构的差异没有像Celeron那样性能严重降低。

Duron是AMD面向低端市场的利器,凭借先进的CPU设计构架和优良的血统,在性能上完全超过了Celeron II,特别是Duron芯片内的L2 Cache较小,芯片面积(die size)只有100mm,其功耗以及发热量也相对较低。而最令用户对毒龙难以忘怀的,自然还是其极为强大的超频能力,Duron 600通过铅笔破解倍频之后至少能够超频到800MHz,不少极品甚至达到1GHz,使很多DIYer所乐此不彼。

Duron对于AMD的意义在于将K7的架构优势成功地转换成为市场优势,其良好的性价比对Intel低端市场造成了严重威胁,至此,AMD成为了消费者心中性价比的代名词。产品层次的划分标志着AMD有能力稳定驾驭市场,并逐步走向成熟。

AMD Athlon CPU 全系列回忆录

图为Socket 462接口的Thunderbird核心Athlon 1.4GHz

在外部封装上,Thunderbird同样表现突出。直立式的Slot A插槽变为陶瓷封装、体积小巧的Socket 462接口,这一接口也一直沿用到2003年9月22日K7生命终结。Thunderbird同样带动了AMD的再一次腾飞,强大的1.4GHz主频、200 MHz系统总线、全速L2 Cache、工作电压为1.70V~1.75V,相应的功耗也比上一代Athlon小,恐怖的超频能力同样诱人。当然不要忘了Duron,有它在低端的配合,市场上掀起了一股抢购AMD处理器的狂潮,用专业媒体的话说:Athlon、Duron市场供应闹饥荒。

● 开始革新——Palomino

微架构的研发对一代甚至几代CPU产品都有着重要影响,其研发时必须考虑制造工艺、晶体管集成度、未来发展趋势等很多方面。Intel在1998年开始了对NetBrust(网络爆发)微架构的研发并在2000年取得成效。AMD也在98年前后开始了对新的64位微架构Hammer(大锤)的研发并在2001年生产了少量测试产品。但是Hammer最终在2003年推出市场,而使得Athlon必须在这一段时间独立面对Intel。

依靠强大的产能和市场控制力,Intel在Pentium III时代依然保持了良好的上升势头。但Intel连续在与AMD的性能斗争中失利,让剧情在这里发生了变化。Intel站在岔路口上:是继续增强Pentium III的能力,提高其主频?还是转向新的微架构?迫于Athlon的压力和自己在CPU市场的地位,Intel高层做出了一个惊人的举措,决定把P6微架构的发展暂时冻结(已成功生产的Tualatin核心Pentium III必须为Pentium 4让位),转向激进的甚深流水线架构——NetBrust,也被称作P68。

AMD Athlon CPU 全系列回忆录

如图,Pentium III和Pentium 4的流水线长度对比

采用甚深流水线的目的为了在同样的工艺下获得更快的时钟频率,NetBrust正是如此,它采用了20级超长流水线,配合Intel的制造工艺,获得非常高的运行频率。但长流水线也有致命的缺陷——执行效率低下。流水线越长,对于采用乱序+猜测执行的处理器来说,预测失败的成本就越高。Pentium III的流水线在预测失败的时候会损失10个周期,而在第一代的Willamette Pentium 4 上就达到了20个周期。即使这样,Pentium 4照样把频率提得超高,一定程度上弥补了分支测错造成的性能损失。

Athlon开始面对一场从未预料到的战斗,对手Pentium 4采用了疯狂飙升频率的办法来打压自己,Athlon的战略也不得不做调整。

AMD Athlon CPU 全系列回忆录

2000年11月20日,Intel发布Pentium 4 1.4GHz、Pentium 4 1.5GHz处理器,采用了0.18微米工艺技术,提供256K的二级缓存。这是采用了Willamette核心的第一代Pentium 4,虽然将频率提升到2.0GHz,但相对落后的工艺和缓存容量限制了性能的提升空间,Athlon还是能战胜它。但这时的Athlon已明显感觉体力不支,并预测到未来会迎接更猛烈的挑战。同时Athlon XP策划已经出炉,越来越多的信息表明AMD要改进核心来应对Intel。

2001年8月27日,Intel发布Pentium 4 2.0GHz处理器,采用了最新0.13微米工艺技术,提供512K的二级缓存,这标志着Northwood核心正式启用。随后,Pentium 4在1年多的时间里将频率迅速提至3.06 GHz,并引入超线程技术。而AMD则开始艰苦的追随战。

AMD于2001年10月9日正式发布新型的Athlon XP处理器,AMD Athlon XP中的XP指Extreme Performance(卓越性能),它支持更大的高速缓存、专业3Dnow!技术和QuantiSpeed架构。首批Athlon XP采用Palomino核心,制造工艺没有像人们预想的那样有所提升,而是沿用了上一代的0.18微米工艺,二级缓存的大小也维持了256KB,Palomino将Thunderbird的核心元件位置做了更改,内核形状由原来的长方形变为正方形,当时普遍认为这样的改动是为将L2提升到512KB做调整,很可惜实际的产品并没有证实这个想法。Palomino相对于Thunderbird当然还是有一些改进的,它将一级缓存中Data TLB数据缓存中的4K寻址页的地址变量寄存器由Thunderbird的24项提升到32项。这样可有有效增强缓存命中率,在缓存数量不变的情况下,有效增强了效率,商业应用下性能进一步提升。同时新核心加入了第三代3D Now!指令集,使3D Now!通过一些转换能够兼容一些SSE指令。其余架构方面完全没有改动。

AMD Athlon CPU 全系列回忆录
AMD Athlon CPU 全系列回忆录

如图,Athlon XP基本的架构没有发生变化,而Pentium 4则完全不同了。Athlon XP相对于Pentium 4拥有更高的IPC是不争的事实,性能(Performance)=频率(Frequency)×每一时钟周期内所执行的指令多少(IPC instructions per cycle),IPC是一个较为公正的效率值。比如Athlon XP 1600+,实际频率为1333MHz,它的性能大约相当于1颗1.6GHz的Pentium 4。

针对自己拥有高IPC,而对手拥有高频率,AMD提出了QuantiSpeed架构理论来反击“频率至上论”。QuantiSpeed架构理论有以下几个部分组成:

1、超标量完全管道化微体系结构。QuantiSpeed体系结构的核心是同时发出9条指令的超标量完全管道化微体系结构。这种体系结构能提供更多的路径,并应用指令传送到核心的执行机制,因而处理器能够在给定的时钟周期内完成更多的任务(高IPC)。路径(管道)深度与处理器操作频率之间的良好平衡能产生极高的性能。如果只是管道更长,就会产生较低的IPC和高操作频率。如果只是管道更短,将提高IPC,但频率会降低。AMD Athlon XP处理器能够保持管道深度与处理器频率之间的平衡,因而能实现极高的总处理器性能。

2、超标量完全管道化浮点QuantiSpeed采用了超标单元量完全管道化浮点运算单元(FPU),与x86处理器相比,不但能够在每个时钟周期内完成更多的浮点操作,还能提高操作频率,因而能产生最强大的x86 FPU。AMD Athlon XP处理器有足够的计算能力,能满足计算最密集的软件应用的要求。

3、硬件数据预取将指令从系统内存预取到处理器的一级指令高速缓存中,提高了处理器的工作吞吐量,从而提高整体性能的通用作法。QuantiSpeed体系结构的这种特性能将数据从系统内存预取到处理器的一级数据高速缓存中,从而缩短了向处理器输入关键数据的时间,提高了工作吞吐量。因此,在使用带QuantiSpeed体系结构的AMD Athlon XP处理器时,应用性能将自动得到增强。

4、非复用TLB。QuantiSpeed体系结构中的TLB结构能保留关键数据表以及靠近处理器的指令。当再次请求数据或指令时,这种设计使处理器无需等待就能开始操作。这些TLB结构现在更大,在高速缓存之间是唯一的,具有预测性。更大的TLB使AMD Athlon XP处理器能访问其它图形;这些结构的排他性消除了信息复制,在二级高速缓存中释放出更多的空间,留给处理器使用其它有用信息;推测使AMD Athlon XP处理器能快速产生关键数据和指令的未来图形。对TLB结构的这3种增强进一步提高了每个时钟周期能完成的工作量,从而提高了AMD Athlon XP处理器的实际应用性能。

QuantiSpeed架构理论实际上是完全相对NetBrust微架构提出的,它全面总结了Athlon XP一贯的架构优势,间接地说明对方高频低能。Athlon XP在此理论背景下重新启用了废弃多年的PR值对CPU性能进行标注,当然这也是在Intel的高频压力下被迫做出的举动。特别是像Pentium 4这样使用长流水线的CPU,IPC相对Athlon XP偏低,所以频率较低的CPU使用PR值来标注性能是完全可行的。

在其他方面也有一些变化,与Thunderbird核心相比Palomino对核心做了一些优化,如晶体管数量增加的同时CPU功耗大大减少。新核心中集成了热敏二极管和温控电路,使处理器具备内核温度探测和过热保护功能,增强了CPU的稳定性和易用性,改变了以往给人们不稳定的印象,性价比在Pentium 4的压迫下也同样很高。Palomino最终把频率提到1733MHz,PR值为2100+。

当然实际频率低会造成CPU在流媒体和数据转换应用中性能下降,所以Pentium 4在这些方面一直保持着对Athlon XP的压制。还有一点是不能忽视的,在FSB方面,Athlon XP也一直没有超越Pentium 4,这意味着Athlon XP在数据密集型,内存敏感型等方面不能和Pentium 4相比,Athlon XP运用EV6总线最终将FSB提升到400 MHz,而Pentium 4则使用QDR-speed四倍速前端总线技术把FSB做到800 MHz,内存吞吐量达到6.4GB/s。

● 坚持斗争——Thoroughbred(A/B)

2002年6月10日,继Palomino之后,AMD又再发布了新品——采用Thoroughbred核心的新版本Athlon XP处理器。与此前的Palomino核心的相比,Thoroughbred核心在处理器逻辑线路上并没有重大改动,主要区别在于采用了0.13微米制程的新工艺。

在Athlon时期,很多用户对AMD产品的性价比还是满意的。但是,发热量过高和核心脆弱而且易烧毁是AMD始终没有解决的问题。采用Thoroughbred核心的新版本Athlon XP处理器,就是这一情况下的产物。

Thoroughbred A核心是AMD首次采用0.13微米工艺的处理器,新工艺将核心面积缩小到80平方毫米,而且在相同集成度的情况下能有效减弱并提高频率,相应将超频能力也做提升。同时CPU内部单元的位置进行了更改。

AMD Athlon CPU 全系列回忆录

如图,Thoroughbred-B处理器

不过由于工艺制程的不成熟,加之超频能力不强,这款产品事实上也没有获得太多的市场认可。而此后,AMD为了解决Thoroughbred的问题,再次对其进行改进,也就是改良版本Thoroughbred-B。与早期版本Thoroughbred相比,改良版本Thoroughbred-B最大的改进就是发热量下降,频率提升,而且拥有不错的超频能力。

但当Thoroughbred全面上市为Athlon XP争取市场时,Pentium 4已将频率提高到不可思议的3.06 GHz并开始将中端产品全面铺货,加上娴熟的市场操作能力,Intel控制了主流市场并开始普及Pentium和Celeron品牌。AMD由于产能和性能问题,在高、低端市场已无力对抗,被迫放弃低端经典Duron品牌,由低频的Athlon XP对抗Celeron,高端方面则艰辛地提升频率,推出PR值更高的产品。Thoroughbred A和B最终将频率提到1800 MHz和2250 MHz,PR值上升为2200+和2800+。

当然AMD没有放弃Hammer(未来的Athlon 64),甚至为了Hammer的开发AMD耗费了大量精力,直接影响到了Athlon XP。功夫不负有心人,AMD已经生产了一些Hammer并送往芯片组开发商,越来越多关于Hammer的消息向外界传来。同时AMD开拓了一些市场,如AMD发布了面向笔记本电脑的处理器——Mobile Athlon XP,同时AMD还拓展市场,发布了基于Athlon XP核心,针对工作站、PC服务器的Athlon MP。

AMD Athlon CPU 全系列回忆录

如图,Athlon MP的配套芯片组,支持双路CPU

当然此时的AMD也背上了严重的财务负担,亏损巨大,债务沉重。人们将期望的目光投降Hammer,因为这才是AMD真正的出路,这颗神秘的CPU能担当起振兴AMD的重任吗?

● 完美谢幕——Barton

在得知Pentium 4 3.06 GHz附带HT技术发布时,AMD做出强有力的回应。AMD于2003年2月10日正式推出他们全新采用0.13微米制程,基于Barton核心的Athlon XP 3000+处理器。Barton仍属于Athlon XP,采用333MHz FSB,内建512KB L2 Cache。Barton核心面积从84mm2增长到101mm2,而晶体管数目也远远高于Thoroughbred的3,760万,达到接近于Northwood的5430万个。

AMD Athlon CPU 全系列回忆录

如图,左边是新的Barton,右边是Thoroughbred,核心形状明显增长了。

AMD Athlon CPU 全系列回忆录

如图,核心形状的变化在上图中得到体现。

L2的扩大带来了面积的增长,当然缓存容量的变化也会引起TAG(二级缓存检索表)的变化,总的来说,这两款核心并没有涉及到内核基本架构的变化。AMD随后再接再厉,将Barton的FSB提升到400 MHz,主频也达到2200 MHz,终于达到了Athlon XP的极限PR值3200+。此后AMD于2003年10月24日正式公开了新的roadmap蓝图,宣布了Hammer市场计划,也同时不声不响地宣布了Athlon XP的生命结束。

增加的256KB L2 Cache比较有效地提升了Athlon XP的性能,特别是一些商业和数学应用中,Athlon XP相对于Pentium 4取得一些领先,在3D应用中,几乎追平了Pentium 4。AMD在没有大改核心的情况下继续稳定提升了性能,保证了一定的市场占有量。更重要的是它为Claw Hammer(AMD第八代处理器K8)做了市场过渡。

AMD Athlon CPU 全系列回忆录

上图为Athlon XP时代所有CPU规格细节

从现在来看,Barton是AMD第七代处理器(K7)的第七代核心,它成功地为K7时代划上圆满的句号,而没有轻易向Intel屈服。回顾前面所列举的7种不同Athlon核心,我们会发现这样一个有趣的现象,Athlon的L1 Cache一直为全速128KB,没有发生变化。而L2 Cache从最初的片外512KB到片内256KB,直到Barton的片内512KB。缓存容量似乎划出了一个圆圈,Pluto是起点而Barton是终点,起点与终点的不同是这512KB的缓存从核心外集成到核心内,而CPU的运行频率也提升了4倍,从最初的500 MHz提升到3200+的2200 MHz。这个圆圈,AMD花了4年时间终于圆满完成。

● Athlon第二个4年(2003年9月23日——2007年第三季度)

当年K7的发布让AMD第一次在竞争中占据主动,Athlon处理器捍卫了AMD的尊严。然而性能优秀的K7核心并不能挽回AMD在市场策略上的颓势,市场手腕的缺乏不是仅凭优秀的硬件设计就可以挽回的。在AMD身处逆境的时候,K7成了AMD苦苦支撑战局的唯一武器。这一切一直延续到AMD向大众宣布K8处理器才得到改观,在2001年的微处理器论坛上,人们重新对AMD寄予了无限的希望。

2003年末,Intel发布了支持超线程(HT)技术的P4至尊版 3.20 GHz,采用0.13 微米制程,具备 512 KB二级高速缓存、2 MB 三级高速缓存和 800 MHz 系统总线速度。Intel显然在继续着NetBrust微架构的发展路径,将提升频率作为首要任务。当然Intel也在计划着新的核心架构——Prescott,它采用新的90纳米工艺,加入了应变硅技术支持。当然它依然遵循NetBrust微架构,流水线长度破记录地达到31级,全力提升频率。

2003年4月24日,AMD在美国纽约发布了AMD第一款64处理器——Opteron,它在专业领域使用,表现出了强劲的性能,但真正的反击还在后面。而2003年9月23日,AMD完全改变了历史。研发代号为Hammer的第八代CPU(K8)——Athlon 64登场,全新的架构,全新的计算技术,全新的总线设计,又一次给Athlon这个光荣的代号带来巨大的性能提升。

AMD Athlon CPU 全系列回忆录

K8是一款倾注了AMD几乎所有CPU研发资源的产品,其从98年开始研发。K8系列的核心集成了1亿500万晶体管,核心面积达到193平方毫米,新核心包括9组功能单元(3组ALU、3组AGU、FADD、FMUL和FMISC,包括3组整数和3组浮点运算器)以及3组x86译码器。一级缓存的容量上也没有发生变化,指令缓存和数据缓存各64KB,总容量128MB,同时增加了ECC校验电路。

而K8最大的特色就是对64bit计算技术的支持,凭借x86-64架构,将传统x86的32bit模式扩展到64bit,这样,CPU就可以在同样的一条指令中,处理整数数值并管理更大的内存区域。此外,在Athlon64处理器架构中,AMD还首次引入了HyperTransport总线,主要负责处理器与北桥芯片间的数据传输。

另外,K8还集成了内存控制器,极大地降低了Athlon64数据收发延迟、缩短读写请求的反应时间,同时也简化了主板北桥的功能。除此以外,K8还改善了K7的功耗问题,在CPU中加入了Cool'n'Quiet技术,降低发热和耗电。从K8开始,AMD不再是“电热炉”的代名词,相反,高功耗则成为了Intel需要解决的问题。

AMD Athlon CPU 全系列回忆录

如图,Athlon 64内部架构简表。核心设计中的以下几个热点我们必须关注:全新设计的AMD 64核心;x68-64计算技术;集成DDR内存控制器;HyperTransport总线;Cool’n’Quiet与EVP。

● 1、全新设计的AMD 64核心

AMD Athlon CPU 全系列回忆录

上图为,Athlon 64内部架构,我们可以看到和K7相比,K8执行单元的的物理数目是一致的,同样的3个负责整数运算的ALU、AGU单元,同样的3个负责浮点、3DNow!等多媒体指令运算的浮点单元。如果不考虑新的64位指令执行状况,基本上两者处理数据的流程将非常相似。我们注意到K8核心同时用于桌面系统和企业级应用,出于这点考虑,在核心中加入更多的执行单元对K8并没有明显的意义。接下来,我们看到从K7开始就有的微小改进:尽管K8和K7采用了一样数目的浮点调度程序窗口(scheduling window),但是整数单元从K7的18个扩充到了24个。

第二个改进就是缓冲部分,一级缓存、二级缓存部分,K8同K7核心相比,除了将二级缓存容量统一提升到1MB,二级缓存位宽相比K7核心的64bit倍增为128+12bit之外,并没有在结构上做出太大的变动。然而CPU中另一类重要缓存——主管内存地址翻译的TLB的相关参数,却在K8中相对K7处理器做出了较大的变动。

TLB的英文全名为:Translation Lookaside Buffer,我们可以翻译为旁路转换缓冲,也可以把它理解成页表缓冲,因为它里面其实存放的是一些页表文件(虚拟地址到物理地址的转换表)。

AMD Athlon CPU 全系列回忆录

对于寻址空间更大的K8,增加TLB条目数,改变TLB联合方式显然具有更重要的意义。同时,在TLB控制机构方面,为了提高在程序间切换时的处理器性能,Athlon 64也相应K7核心做出了一些变化。此外,更大的TLB对于多线程处理和多处理器发展有相当大的积极意义,和Intel的超线程技术一样,更大的TLB有助于在多核心多线程应用的发展上迈出有意义的一步。

Hammer在TLB的连接方式上也有一些变化。TLB也分为2级,主要用于更快的完成虚拟地址向物理地址的映射。这是由于Hammer处理器没有储存或访问物理地址的能力,它必须通过虚拟地址来完成对主存空间的访问。将虚拟地址转化为物理地址需要3个时钟周期。TLB将以前的映射的结果保存下来,这样当需要用到原先访问过的数据时就可以直接在TLB中搜索相关的物理地址,而不需要进行映射运算,这样只花费1个时钟周期。

AMD Athlon CPU 全系列回忆录

如上图,接下来还有一个重要的改进,它在执行单元数目不变的情况下大大增强了效率,那就是改进的分支预测单元。分支预测技术让流水线式工作的处理器成为可能,在K8中,AMD将K7中的分支预测单元做了改进。global history counter buffer(用于记录CPU在某段时间内对数据的访问,我们可以称之为全历史计数缓冲器)比起Athlon来足足大了4倍。全历史计数器是一列2比特的计数器(2比特计数器从0计数到3),它决定是否应该执行特殊的分支。当一个分支指令到达后,分支预测单元读取指令中一部分地址(有时对地址进行一些逻辑操作),并用来把它作为全历史计数器的索引,这直接决定了哪一个计数器进行工作。对索引页的计数器进行检验,如果它的值大于或等于2,那么分支被预测为执行,然后执行分支。如果分支被错误预测,那么计数器的值会减一,但是如果下一次预测准确的话,计数器的值会再次加一。现在这种方法带来的问题是,如果你有两条分支指令同时给出了同一个索引值,相关的计数器会武断的增值或减值,这被称为干扰(interference)。全历史计数器的容量越大(大于2比特),发生干扰的几率就越小。于是把干扰的几率降低,执行单元便能得到更为准确的分支预测。

正因为如此,K8才能够“记住”更多的分支,从而提高分支预测的整体效率。要想获得较高的命中率,仅仅是对原有预测机构进行简单修正显然是不够的,AMD还为改进的分支预测单元加入了分支地址计算器(branch address calculator简称BAC)。BAC可以快速(5个时钟周期)准确的计算出下一条分支的地址。

说到这里,大家很容易想到NetBrust微架构,它就是因为流水线过长,而引起分支预测错误带来的损失非常大,冗长的管线一旦遇到分支测错,就必须从新填充,造成了高频低能。而K8核心这次增强分支预测的能力,正是要为加长流水线长度——提升频率做准备。

AMD Athlon CPU 全系列回忆录

如上图,和我们熟悉的K7架构10级整数流水线相比,K8加长了2级,增加2级线管深度的目的在于提升K8的核心频率。流水线的级数越多,每个时钟频率的负荷就越小,因此CPU就可以运行在更高的频率。拥有很强大的分支预测能力做保障,AMD完全有把握加长流水线,获得更高频率,事实也证实了AMD正确的选择。2级新增的流水线让K8的极限频率达到3.0GHz,这相对于NetBrust微架构最终将频率提升到3.8GHz是很划得来的。一般说来,专家认为当处理器的核心频率处于1G到几G的范围内,最理想的管线深度应该在12至13级。

● 2、x68-64计算技术

从CPU能够处理的指令长度来划分,Athlon 64属于64位CPU,这彻底区别于所有的Athlon XP和Pentium 4处理器。K8能运行64位程序,正是得益于x86-64计算技术,而x86-64的精髓则是向下兼容。

我们在这里说的位数,也叫做字长。在信息技术领域,“字长”是衡量计算机性能的重要标准之一。字长在很大程度上决定着计算机的内存最大容量、文件的最大长度、数据在计算机内部的传输速度、处理速度和精度等性能指标。

(通用)寄存器是处理器内部在运算过程中暂时存放数据的存储单元,里面保存着那些正准备要处理的数据或者是已经处理过的数据。CPU的运算单元访问寄存器所用时间要比访问处理器缓存以及内存的时间都要短。我们知道CPU能不能运行一条长度最长为64位的指令,最终是由其寄存器位数决定的。而且位数不仅决定了处理能力,也制约着CPU在存储器中的寻址能力,32位CPU只能进行32位的内存寻址(2的32次方byte),也就是说CPU只能直接访问4GB(4千兆字节)的虚拟地址空间,但64位CPU理论上能够对2的64次方byte(1600亿亿字节,180亿GB)内存进行访问,可在今后相当长时间内完全满足计算需求。

好了,让我们回到Athlon 64的x86-64计算技术,看看AMD是怎样实现寄存器升级的。

x86-64寄存器的扩展方式如下:

AMD Athlon CPU 全系列回忆录

AL范围表示0-7的8位寄存器,AH则表示16位寄存器,EAX就是我们大多数用户使用的32位寄存器,如Athlon XP和Pentium 4,RAX则是AMD拓展的64位寄存器。它能够存放一个64位长的数据,从而让CPU直接处理。从EAX到RAX的扩展,就同15年前Intel发布i386处理器时,将AX扩展为EAX的做法一样。当时i386在应用程序方面比起它的前辈i286来说,表现相当优秀。现在K8也采用了相同的做法,让该处理器可以很轻松的运行32位代码,在这种情况下CPU是没有满负荷运行的。

如下图要完成这些运算AMD为其引入了少量的新寄存器,作为现有寄存器的扩充:

AMD Athlon CPU 全系列回忆录

与以往的32位X86结构相比,K8在原有的8个通用寄存器的基础上又增添了8个寄存器。这8个寄存器工作在64位下,经过64位编码的程序就可以使用到它们。AMD同时也将原有的EAX等寄存器扩展至64位的RAX。从扩充方式上看,EAX等寄存器可以看作是RAX的一个子集,系统仍旧可以完整地执行以往的32位编码程序。通用寄存器除了可高效的存储数据外,还可作为寻址时的地址指针,从而缩短指令长度和指令执行时间,加快CPU的运算处理速度,同时也给编程带来方便。单单从寄存器结构来看,X86-64较多的寄存器将会大幅度的提升处理器的性能,也会更加受到软件开发人员的喜爱。

下表则反应了Athlon 64的x86-64所用寄存器的具体区别:

AMD Athlon CPU 全系列回忆录

现在新增加了R8-R15通用寄存器(GPR),这些寄存器都工作在64位模式下(这意味着在该模式下程序需要重新编译),原来的寄存器诸如EAX、EBX也由32位扩张至64位。Athlon 64在SSE单元中新加入了8个新寄存器以提供对SSE2的支持,寄存器数量的增加将直接带来性能的提升。

AMD Athlon CPU 全系列回忆录

64位指令工作原理示意图

需要强调的是,通常所说的64位指令,并不是指指令的全长或操作码的长度为64位,而是指操作数所能达到的最大位数为64位。通过上面的图示,可以很好地理解64位指令和64位处理器的本质。

为了更好的在32/64位混合模式下工作,X86-64结构提供了多种处理器工作模式:

“长模式”下如果用户使用64位操作系统以及为64位计算编译的软件,那么就可以获得8个新增64位通用寄存器、扩展6 4位通用寄存器等众多新特性。“长模式”下还包含了一种“兼容模式”,在此模式下用户可以在64位操作系统上运行32位的应用程序,从应用程序的角度看,在“兼容模式”下其所使用的处理器也就是普通32位X86处理器。而从操作系统的角度来看,常规的地址变换,中断以及系统数据结构操作都是在64位“长模式”下进行的。

“传统模式”则是AMD的64位处理器为32位应用所提供的运行模式,这种模式下的X86-64结构处理器的运行与一般的32位处理器没有区别,可以完全兼容目前的32位操作系统以及32位应用程序。如果一颗Athlon 64运行在32位操作系统(和32位软件支持)下,它会自动在32位代码后补32个0,构成64位代码,轻松跨平台工作,实现无缝兼容,最大限度保护用户投资。按照AMD的说法,这个过程造成的性能损失在1%左右,“传统模式”下的Athlon 64其实就是一颗高性能的32位CPU。

在64位CPU问题上,Intel一直在尝试推广并将其在Itanium上使用的IA-64架构引入桌面级CPU,以达到64位应用的普及。但从上表我们可以看出这是很难实现的,IA-64要求软件代码完全重写才可以获得更高的性能,但这个代价是巨大的。当然Intel也预料到了这些问题,它在很早准备了一套B计划(Yamhill技术,这是一种具有64位扩展空间的32位芯片技术,完全类似于AMD的X86-64)。现在我们所使用的64位Intel处理器实际上都加入了Yamhill技术来获得对64位软件的支持。这也同时表示了Intel放弃IA-64架构,加入到AMD的X86-64阵营。Yamhill技术现在实际的应用名称为EM64T(Extended Memory 64 Technology,扩展64位内存技术)。

AMD与Intel的关系正在变得越来越“微妙”:一方面,相对Intel而言AMD是弱小的,难以对抗其在多方面的优势及成功。但另一方面,AMD又具有相当的实力,它的处理器足以与Intel产品在主流市场相抗衡,加之其发布的兼容X86的64位架构CPU,正如15年以前Intel在它的80386中所做的一样——同时兼容32位和16位程序,今天聪明的AMD也正在让它的64位处理器重复着当年Intel的成功。

● 3、集成DDR内存控制器

为了彻底铲除CPU与内存间的瓶颈,尽可能减小内存到CPU的延迟时间,AMD把以往北桥芯片中的主要部分——内存控制器内建在CPU中。和通常的做法不同,将内存控制器集成在处理器芯片中从而代替了传统的北桥芯片,这样做最大的优点就是该控制器运行频率可以达到处理器核心频率的水平,因此其潜伏期将变得更短。而且随着处理器频率的提高,潜伏期将越来越短。

我们知道内存中的数据被调往CPU要经历多个环节,其中内存到芯片组的速度和芯片组到CPU的速度是产生延迟(潜伏期)的罪魁祸首,已有过许多芯片组因为设计失误导致延迟过长而降低性能。许多测试也表明Athlon 64的延迟时间表现很出色。

集成DDR内存控制器看似简单,其实更重要的作用是在SMP(对称多处理)架构中建立高效的内存读取机制。实测表明,集成内存控制器使K8系统的延迟大幅度低于Xeon、高频P4等系统。同时这项技术可以简化芯片组的设计,如NVIDIA支持AMD64位CPU的nForce3芯片组省去了北桥芯片,成为单芯片芯片组。

现在不少CPU都根据其应用需求把内存控制器集成于CPU内,例如IBM的Bluegene/L、Cell、SUN的UltraSPARC T1(Niagara)等,按照Intel在中科院高性能计算机研讨会上演讲的一份资料,该公司的下一代Itanium体系架构——Tukwila也将会集成内存控制器。Cache再大也是难以避免命中失败,失败后CPU必须去内存寻找数据,当初DEC的Alpha处理器研发人员就一直很渴望把这样的损失透过集成内存控制器降低到最低,Athlon 64终于实现了这一点。

当然集成内存控制器也是把双刃剑,它在提高性能的同时要求AMD必须及时更新内存支持标准,及时发布新品以支持新的内存标准,同时老的CPU即使更换平台也不能对新的内存进行支持。还有一点需要注意的,Athlon 64并没有将AGP控制器集成在CPU中,如果使用集成显卡,图形芯片需要获得帧缓存(显存),必须检测从HT总线到CPU内建内存控制器部分数据,这将降低整合图形核心的性能。

但是这些缺陷不足以对集成DDR内存控制器的正确性构成威胁,AMD这次的设计还是相当见效的,毕竟对手的模仿也说明了自己的成功。

● 4、HyperTransport总线

HyperTransport(简称HT,超传输),是AMD为K8开发的一种双向的“点对点”高速数据传输总线,运行于处理器与芯片组或芯片组间其它部分的连接中。HyperTransport的发展历史可回溯到1999年,它原名为“LDT总线”(Lightning Data Transport,闪电数据传输)。2001年7月,这项技术正式推出,AMD同时将它更名为HyperTransport。随后,Broadcom、Cisco、Sun、NVIDIA、ALi、ATI、Apple、Transmeta等许多企业均决定采用这项新型总线技术,而AMD也借此组建HyperTransport开放联盟,从而将HyperTransport推向产业界。

在基础原理上,HyperTransport与目前的PCI Express非常相似,都是采用点对点的单双工传输线路,引入抗干扰能力强的LVDS信号技术,命令信号、地址信号和数据信号共享一个数据路径,支持DDR双沿触发技术等等,但两者在用途上截然不同—PCI Express作为计算机的系统总线,而HyperTransport则被设计为两枚芯片间的连接,连接对象可以是处理器与处理器、处理器与芯片组、芯片组的南北桥、路由器控制芯片等等,属于计算机系统的内部总线范畴。

在SMP架构中,处理器间也是通过内建额外的HT控制器进行连接的,AMD将这称为“glue less”(免中介)方式。

有效频率 MHz 总线宽度 (number of pins)
2 4 8 16 32
600 150MB/sec 300MB/sec 400MB/sec 800MB/sec 1600MB/sec
800 200MB/sec 400MB/sec 600MB/sec 1200MB/sec 2400MB/sec
1000 2500MB/sec 500MB/sec 800MB/sec 1600MB/sec 4000MB/sec
1200 300MB/sec 600MB/sec 1

继续阅读