天天看點

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

繼續閱讀