簡介 每個BulldozerModule將會集成2M L2
快取 , 8MB的L3快取,採用了“模組化(Module)”的設計,每個“模組”包含兩個
處理器核心 ,核心面積為30.9平方毫米。推土機架構採用了全新的控制結構和運算單元,其性能體現在整數運算、
浮點運算 方面。推土機架構的時鐘發生器、
電源管理 器、L1快取等……均是開發重點。AMD計畫在2011年推出基於該架構代號為Interlagos伺服器級處理器和代號為
Zambezi 桌面 處理器,其中 Zambezi桌面處理器將是針對中高端市場推出的產品,採用新的Socket AM3 r2接口插槽。新處理器將支持新的
記憶體控制器 ,將可帶來更高的
記憶體頻寬 表現,支持動態頻率提升技術(turbo core)等。
嶄新技術 一、革新的Turbo Core技術——全核心加速技術
Turbo Core
技術: 主要是指對於一些沒有完全消耗到最大程度的工作負載,去加快時鐘速度。在多種不同工作負載上,使用了TurboCore可以最大增加500兆赫茲的性能。最重要的一點,TurboCore加速指的是所有核的加速,和有些核加速技術明顯不同,以往的核加速技術可能需要關閉一些核,只對部分核進行加速。採用TurboCore技術,最多可以使所有核增速500兆赫茲,如果再關閉一些核運轉的情況下,加速將會超過500兆赫茲。同時我們還對
記憶體控制器 進行了進一步最佳化,從而提高記憶體的
吞吐量 。
除了每個核心獨享4個整數計算管線,在
浮點運算 上,“推土機”採用了“FlexFP”技術,兩個核心共享一個浮點調度器和兩個128位FMAC乘法
累加器 ,可以進行組合,每個
時鐘周期 可以完成兩次64位雙精度計算或4次32位單精度計算。如果一個核心沒有進行
浮點運算 ,那么另一個核心可以占用這兩個128位的FMAC,在一個
時鐘周期 完成4次雙精度運算或8次單精度計算,AMD將其命名為 AVX模式。這種技術保證了“推土機”的
浮點運算 能力,在
高性能計算 中並不會因為“共享”而犧牲性能。
二、新接口新工藝
推土機處理器 將採用SocketAM3+接口,941個
針腳 ,不同於938個針腳的Socket AM3接口,其好處是可以支持DDR3-1866記憶體和高級節能技術,而且AM3+將是AMD的最後一代
針腳 柵格陣列(PGA)封裝,之後將改用觸點柵格陣列(LGA),等到Fusion融合處理器降臨的時候就會使用LGAAF1新接口,觸點多達1591個,支持DisplayPort 1.2標準、PCI-E 3.0規範(32條信道)、四通道記憶體。
三、加強型記憶體控制器
AMD首家推出集成
記憶體控制器 ,根據AMD在這一領域的經驗和非常好的技術,又在這一代產品中全面提升了記憶體控制器的性能。首先對
記憶體控制器 在效率方面進行了針對性的重新設計和完善,因此實現30%的記憶體性能提升。在提升30%性能基礎上,讓記憶體支持1600MHz頻率,可以獲得額外20%的性能。兩項加起來,可以實現
記憶體控制器 50%吞吐量提升。
四、同時支持AVX指令和SSE指令
FLEX FP是AMD至今為止最有創新意義的浮點計算技術,每一個模組都有一個FLEXFP進行
浮點運算 。如果使用傳統128位編碼,意味著每個核會有單獨的
浮點運算單元 。與友商相比,如果在128位編碼前提下,AMD所執行的數量多一倍。如果是256位AVX編碼,Bulldozer可以把兩個
浮點運算單元 放在一起執行。所以在256位編碼執行模式下,與友商比較,執行的數量是一樣的。但是Bulldozer有一個非常大的優勢,就是可以同時執行256位AVX指令和SSE指令。而友商就不能做到這點,他們只能在AVX或SSE中選擇其一,這樣的優勢能夠讓Bulldozer在
高性能計算 、媒體編解碼以及在一些技術型運算方面有更高的性能。
五、更先進的電源管理技術
每個模組內第二個整數核心所需要的電路只占總核心面積的12%,從晶片級別上講這只會給整個核心增加5%的電路。更多的核心、更少的空間,這顯然有利於提高單位功耗、單位成本的性能。能耗大小是由被通電時鐘數量決定的,它取決於執行一個普通指令(運算)需要讓多少電晶體處於通電狀態。在最大時鐘供電的百分比下,正常套用狀態和閒置狀態下,Bulldozer都具有非常好的能耗表現。同時在各能耗單位上進行了最佳化,可以在各種單位下進行電源關閉。高性能運算能耗之所以高,主要是由於
浮點運算 ,而一般套用運算主要是在執行單元消耗得最高。同時還有閒置狀態下,AMD的技術可以做到對於那些完全用不著的核,把電源完全關閉。AMD產品有一個大轉型,AMD推出了新插槽,2011年推出的推土機可以使用2010年的插槽。而友商為推出新平台,同時推出了新插槽,這也使得AMD更占優勢。
總結:推土機重點改進的地方包括功耗/核心面積效率、新的ISA支持、核心擴展性、模組化設計理念,有望顯著改善單位功耗和面積的性能。
架構特點 1、核心設計全面模組化AMD的“
Bulldozer ”是在K10之後推出的全新一代處理器架構,對
AMD 來說,這是自
K7 以來
AMD處理器 架構的一次根本性變革,在核心架構及功能性上都較
K10 有較大的改變。
模組化設計 ,這讓處理器在功能更加靈活的基礎上更容易控制成本。
物理結構 ,再根據市場價格策略來決定對核心進行有選擇的禁止。這對產品的性價比取勝的AMD來說難以控制成本,而且要向在架構上開發出更多的核心的產品幾乎要更新設計基板布局。
而Bullbozer處理器所引入的
模組化設計 剛好可以解決這個問題。Bulldozer在核心設計方面每兩個核心組成一個單獨的單元(稱之為“核心模組”,兩塊物理核心集成到一個模組中),比如
雙核處理器 直需要集成一個模組就可以了,即使是八核處理器也只需要集成四個模組,這讓產品生產及成本控制更加具有靈活性,
處理器核心 模組的兩個核心各自擁有
一級快取 ,但是共享
二級快取 和預取,解碼單元,所有的“核心模組”共享8MB
三級快取 和北橋模組。
那么以後AMD處理器
核心 數量如何定義呢?未來的新架構
四核心處理器 指的是四個這樣的模組呢,還是四個計算核心呢?AMD對此給出的回覆是:“將每個擁有雙整數核心的推土機模組視為一個獨立的單元就對了。”顯然,AMD在這裡可以的迴避了單純的核心數量問題,更強調兩兩組成的有機整體,所以在面對推土機架構處理器的時候我們可以說它是四核心,八核心的,也可以說成是雙模組,四模組的。只不過未來AMD或許不會再有奇數核心的處理器了。
2、高效的集群多執行緒架構
Bulldozer架構中的另一個新元素就是採用了基於
集群 的
多執行緒技術 。Bulldozer的
核心 模組是一個可以同時運行兩個執行緒的處理組件,兩個核心可以執行兩個完全不會相互干擾的執行緒,有點類似於Intel的
雙核處理器 的
超執行緒 奇數。
儘管雙核、多執行緒和Bulldozer線上程
並行執行 方面是相同的,但是核心的分區卻截然不同。多執行緒就是在一個單個的處理核心內同時運行多個工作執行緒的技術,和CMP晶片多處理器技術不同,後者是通過集成多個處理核心的方式讓系統的處理能力提升,主流的
多核處理器 都是用了CMP技術,而像Pentium 4、Corei7這樣的處理器帶的“
超執行緒技術 ”則屬於多執行緒奇數,而Bulldozer是基於
集群 化多執行緒架構,Cluster-BasedMulti-threading:CMT,也
稱多 簇式
多執行緒技術 。
在Intel的
超執行緒 方案中,採用的是複製處理器架構狀態的方法來實現超執行緒,核心內部並沒有增設一套額外的硬體執行單元來處理多執行緒,只是增加了處理器中存儲執行緒有關數據的單元數量,並在硬體執行單元空閒時將這些數據送往其中處理,一邊增加處理器執行單元的利用率。這種設計有一定的缺點,比如它只使用了一個指令視窗來負責兩個執行緒的調度、執行和引退,效率並不高。這就像是生產線只有一名管理調度人員,一個人很難同時處理兩個任務,這樣有時候便會出現生產線故障,而處理器在碰到這種情況時性能則會出現明顯的下降。
相對於傳統
超執行緒 或雙核技術,Bulldozer這種設計集群化架構的理念是讓雙核模組在
多執行緒 運算中更高效。Bulldozer每一個模組中加入了額外的執行單元,每一個模組都具備可以將一個大任務細分為多個並行任務的能力,這些生產線可以按需要任意整合,不會對整個裝配線的效能造成影響。因此CMT技術的效能要高於傳統的多執行緒方案。根據AMD介紹,單個“推土機模組”可以達到80%左右的多執行緒性能提升,而且所用的電晶體數目似乎並不比Intel的
超執行緒 奇數更多,這是一個相當鼓舞人心的成就。
根據
路線圖 ,Bulldozer架構會推出四核心、六核心和八核心的版本,其中四核心的證書性能大約比頻率類似的Phenom II X4高出10%~35%。需要說明的是,CMT並不是AMD獨有的技術,例如
Sun 和
Oracle 開發的Niagara/Niagara2(Ultra-SPARCT1/UltraSPARC T2)伺服器處理器,尤其是Niagara2都採用與Bulldozer類似的執行緒設計。
3、更強的浮點和整數計算性能
Bulldozer所採用的
集群 化多執行緒架構之所以能實現如此高的性能,其中一個大原因就是AMD增加了CPU的運算單元——每個模組中的兩個執行緒都具有獨立的整數運算單元,只有浮點單元是共享的,這被稱為具有兩個證書運算單元“簇”。Bulldozer這種將兩個執行緒的整數運算獨立開來的設計可以更有效的提高處理器在基本套用中的性能。由於Intel的Nehalem架構的
超執行緒 奇數是兩個硬體執行緒共享3組運算單元,衝突在所難免,而Bulldozer則是兩個硬體執行緒獨享4個整數運算單元,性能提升將會更加明顯。根據AMD公布的Bulldozer執行單元的結構圖,負責整數運算的整數執行單元和負責地質計算的載入/
存儲單元 一共有4組(每單元2組)。(在K7/K8/K10中這樣的單元也僅有3組,剛好對應K7/K8/K10的每周期處理3條
宏指令 的能力。)
需要說明的是,Bulldozer這種雙“簇”也讓AMD在產品設計上具有更高的靈活性上,未來處理器的分級可以通過控制“簇”的數量來實現:比如以後的Bobcat處理器就是切掉一個整數運算“簇”的Bulldozer。此外,Bulldozer的每個模組還具備兩條128Bit FMAC(乘法累加運算)流水線,這將能夠滿足Bulldozer中信加入的
AVX指令集 擴展的需求,這種指令集擴展中包含了大量的128Bit
多媒體指令集 。
4、製作工藝“兩級跳”
隨著
核心 的倍增,處理器對生產工藝也提出了更高的要求,因此近幾年來半導體廠商也會通過各種各樣的信技術的是是用來維持
摩爾 法則的“More Moore“。在處理器生產工藝套用上,Intel一直走在AMD的前面,
酷睿 採用32nm製程已經差不多半年,但AMD的產品停留在45nm!這種情況將隨著Bulldozer的誕生而得到改變,Bulldozer將採用32nm製程。預計32nm工藝將於2010年第三季度開始試產,病在2011年為AMD提供產能,28nm工藝於2010年第四季度上馬,超低功耗版28nm工藝則排在2011年第一季度,它們都會是用HKMG技術。這意味著AMD將在2010年完成產品生產工藝升級的“兩級跳”,從45nm進化至32nm後迅速再次進化至28nm,追回被Intel落下的時間。
此前,AMD已經展示了它們28nm產品的晶圓圖,看來新技術似乎已經非常接近最後可用的程度。如果真的能夠實現工藝兩級跳,那么長期困擾AMD的工藝製程問題有可能得到巨大改善,AMD將走出窘境,進入全新發展的時代。
5、AMD推土機接口又升級
Bulldozer架構將採用新的AM3+接口,擁有941個
針腳 (AM3是938針、AM2+/AM2是940針),不同於938針腳的SocketAM3接口,其好處是可以支持DDR3 1866記憶體和高級技能技術。需要說明的是,AM3+是AMD最後一代針腳柵格陣列(PGA)封裝,之後將改用觸點柵格陣列(LGA),等到Fusion融合處理器降臨的時候就會使用LGA AF1新接口,觸點多大1591個。針對
兼容性 方面,按照AMD的說法,
主機板 。
其實AMD最初也考慮過讓Bulldozer沿用AM3接口,但是隨後意識到必須做出一個選擇,是繼續提供AM3而損失新架構的一些新特性,還是升級接口帶來更好的性能和功能?最終為了長遠利益,AMD選擇了後者。Bulldozer處理器將會首先用於
伺服器 ,預計首批晶片將是代號為“Interlagos”的伺服器處理器,核心數在12個~16個之間。而針對
桌面 伺服器市場,Bulldozer將會有4/6/8個核心的三個版本,三級快取容量為8MB,支持DDR3 1866,首款採用Bulldozer架構的桌面處理器產品代號
Zambezi ,將成為AMD下一代高端桌面平台Scorpius的核心。
架構解析 一、CMP和SMT
首先有必要來回顧一下CMP和SMT的優劣勢:
CMP:CMP的方式非常直接,簡單來說,CMP是通過“複製”物理核心來擴展處理器在
多執行緒 軟體 中的性能,這是獲得最佳性能一種最簡單和最有效的方式。但CMP的缺點是製造成本很昂貴,並且也要受到處理器製造工藝的限制,畢竟不能將晶片做的越來越大。並且CMP的方式對負載要求也很高,只有經過適當
並行最佳化 的負載才能充分發揮CMP的性能,很多核心的CMP常常會浪費資源,在一些套用中,
主頻 更高、結構更簡單的雙核和
四核處理器 就往往可以獲得更好的性能。
AMDCMP SMT:SMT是一個相對廉價的技術,比如英特爾的
Hyper-Threading ,允許每個物理核心運行兩個同步
執行緒 。SMT的設計思想是充分利用每個核心的資源。如果一個物理核心只有一個執行
執行緒 ,那么在等待記憶體中的關鍵代碼或數據的時候,執行緒處於停頓狀態,這樣核心的利用率是低下的。而SMT技術允許一個物理核心運行兩個或更多的
執行緒 ,可以根據當前的狀況動態進行切換,如果一個執行緒處於停頓狀態等待記憶體,另一個執行緒的指令則可以使用這個物理核心的所有執行單元,讓物理核心利用的更加充分。
為了讓SMT正常工作,處理器的所有代碼和存儲部分需要被複製或分區。例如,一個雙執行緒SMT處理器需要兩套架構暫存器和
重命名 暫存器,一套給執行緒A,一套給執行緒B。另外組成指令視窗的共享指令佇列要具備很大的空間,這樣指令視窗才能容納足夠多的來自兩個執行緒的指令,讓執行單元可以保持在忙碌狀態。最後,兩個執行緒任何共享單元,比如處理管線不同部分的
指令快取 ,都不能被任一個執行緒獨占。換句話說,SMT核心的兩個執行緒需要和另一個緊密的共享資源,保證核心的
快取 單元不會空置沒有執行緒利用。
SMT技術對那些不需要核心執行緒(threads)全負荷運行的多執行緒負載比較有意義,對於一個雙執行緒SMT設計來說,如果這兩個執行緒都需要花費很長時間等待主記憶體,那么這個雙執行緒SMT會表現的就一個CMP
雙核處理器 ,甚至更加高效——因為它比CMP雙核成本要低得多。在這種理想的狀況下,一個雙執行緒SMT核心幾乎可以等同於一個
雙核處理器 ,並且能耗上還要低的多。
EPYC SMT 但SMT的效率根據負載不同會有很大差異,AMD認為在真實的套用情況中,一個雙執行緒SMT核心僅僅等同於1.3個常規核心的效能,因為很多時候執行緒都在執行資源而不是等待主記憶體回響,換句話說,如果主記憶體不再是瓶頸,SMT的執行單元就過剩了,而一個SMT核心也就不再比一個單純的核心更高效,畢竟SMT核心需要增加一些電路設計,比一個單純的核心成本要高一些。二、推土機架構分析
AMD“推土機”將採用32nmSOI工藝,這讓“推土機”相比“馬尼庫爾”
皓龍 處理器可以在不增加功耗的前提下增加33%的核心數量、增加50%的吞吐量。與AMD之前所有處理器都有所不同的是,“推土機”採用了“模組化”的設計,每個“模組”包含兩個
處理器核心 ,這有些像一個啟用了SMT的
單核處理器 。
每個核心具有各自的整數調度器和四個專有的管線,兩個核心共享一個浮點調度器和兩個128位FMAC乘法累加器。所不同的,在K10架構中,ALU和AGU共享三個管線(平均1.5個),“推土機”中每個核心整數單元管線的數量增加為4個,2個AGU專有、2個ALU專有。L1快取也有所不同,在K10架構中,每個核心具有64KB L1
指令快取 和64KB L1
數據快取 ;而“推土機”每個核心具有16KBL1數據快取、每個模組具有64KB雙向L1指令快取,至於減小的L1快取是否會影響性能還有待觀察。兩個核心共享L2
快取 ,模組之間共享L3快取及北橋。
AMD“推土機”模組
“模組”和“核心”,這讓我們不免會產生混淆,實際對於用戶們來說,沒必要去刻意的關注“模組”的概念,這只不過是AMD在設計上的稱謂,而當產品投放市場的時候,依舊會以核心數量為標識,比如我們說採用推土機架構的“Interlagos”伺服器處理器具有16個核心,而不會說是8個模組。對於為何採用這種“模組”設計的主要原因,AMD表示是“為了減少CPU的
冗餘 電路”。
如果採用CMP的方式,隨著核心數量的增加,CPU的核心面積也會越來越大,重複的電路也會越來越多,功耗也會隨之增加——因為CMP是採用複製核心的方式。而採用“模組”設計可以大大減少冗餘電路,這對核心的大量增加很有意義。比如“推土機”,兩個核心共享浮點部分,對於大部分伺服器套用來說,整數運算的部分要遠遠高於
浮點運算 (高性能計算除外),所以將浮點執行單元共享並不會影響大多數套用中的性能。而整數部分則不是共享的,否則會造成瓶頸。
上文我們回顧過CMP和SMT設計的特點,我們可以把AMD“推土機”架構看做是介於這兩種之間的一種設計:兩個執行緒(核心)共享浮點執行單元,但是各自具有獨立的整數執行資源。這看上去像是SMT的另一種形式,或者說是經過AMD改良的一種“AMD式的第三種方式”。但與傳統的SMT設計不同,SMT僅僅複製的是核心的存儲部分,一個執行緒一個存儲模組(registerfile),而AMD“推土機”架構中,每個執行緒複製的是完整的整數執行單元硬體,一個執行緒具有一個存儲模組(registerfile)和一組完整的整數執行單元。
AMD“推土機”核心架構的一些特性
每個執行緒具有獨立的整數執行單元是AMD“推土機”和雙執行緒SMT設計的主要區別。不過從“推土機”的設計來看,這並不像真正意義上的“CMP雙核”,畢竟兩個核心還要共享浮點執行單元,或者可以稱之為“1.5核”。這樣設計的好處就是能夠大大節省電晶體的數量、降低核心面積和功耗,同時降低成本。即使不是真正的“
雙核 ”,但不難想像這樣的設計要比SMT更加高效,相比之下,傳統的SMT設計可以稱之為是一種“1.2核”的設計。
AMD表示平均計算下,一個單獨的“推土機”核心執行兩個
執行緒 可以達到1.8核CMP的效率,但是,這樣的數字也是要依賴於負載情況。雖然“推土機”的
模組設計 要比傳統的SMT設計在執行效率上更高,但是增加的整數執行單元也提高了成本和能耗。另外,沒有意外的話,AMD“推土機”應該具備很好的浮點計算性能。AMD表示雖然FPU是被兩個執行緒共享的一個部分,如果給予足夠的
記憶體頻寬 ,晶片將具有很高的
浮點運算 能力。