複製鏈接
請複製以下鏈接發送給好友

推土機架構

鎖定
推土機(Bulldozer)是AMD的微處理器架構。“推土機”將採用32nm SOI工藝,採用了“模塊化(Module)”的設計,每個“模塊”包含兩個處理器核心
中文名
推土機架構
外文名
Bulldozer
介    紹
AMD全新微處理器架構
工    藝
32nm SOI

推土機架構簡介

推土機架構 推土機架構
每個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獨有的技術,例如SunOracle開發的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、製作工藝“兩級跳”
AMD AMD
隨着內核的倍增,處理器對生產工藝也提出了更高的要求,因此近幾年來半導體廠商也會通過各種各樣的信技術的是是用來維持摩爾法則的“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將走出窘境,進入全新發展的時代。
AMD推土機 AMD推土機
5、AMD推土機接口又升級
AMD推土機 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的優劣勢:
AMDCMP AMDCMP
CMP:CMP的方式非常直接,簡單來説,CMP是通過“複製”物理核心來擴展處理器在多線程軟件中的性能,這是獲得最佳性能一種最簡單和最有效的方式。但CMP的缺點是製造成本很昂貴,並且也要受到處理器製造工藝的限制,畢竟不能將芯片做的越來越大。並且CMP的方式對負載要求也很高,只有經過適當並行優化的負載才能充分發揮CMP的性能,很多核心的CMP常常會浪費資源,在一些應用中,主頻更高、結構更簡單的雙核和四核處理器就往往可以獲得更好的性能。
SMT SMT
SMT:SMT是一個相對廉價的技術,比如英特爾的Hyper-Threading,允許每個物理核心運行兩個同步線程。SMT的設計思想是充分利用每個核心的資源。如果一個物理核心只有一個執行線程,那麼在等待內存中的關鍵代碼或數據的時候,線程處於停頓狀態,這樣核心的利用率是低下的。而SMT技術允許一個物理核心運行兩個或更多的線程,可以根據當前的狀況動態進行切換,如果一個線程處於停頓狀態等待內存,另一個線程的指令則可以使用這個物理核心的所有執行單元,讓物理核心利用的更加充分。
為了讓SMT正常工作,處理器的所有代碼和存儲部分需要被複制或分區。例如,一個雙線程SMT處理器需要兩套架構寄存器和重命名寄存器,一套給線程A,一套給線程B。另外組成指令窗口的共享指令隊列要具備很大的空間,這樣指令窗口才能容納足夠多的來自兩個線程的指令,讓執行單元可以保持在忙碌狀態。最後,兩個線程任何共享單元,比如處理管線不同部分的指令緩存,都不能被任一個線程獨佔。換句話説,SMT核心的兩個線程需要和另一個緊密的共享資源,保證核心的緩存單元不會空置沒有線程利用。
EPYC SMT EPYC SMT
SMT技術對那些不需要核心線程(threads)全負荷運行的多線程負載比較有意義,對於一個雙線程SMT設計來説,如果這兩個線程都需要花費很長時間等待主內存,那麼這個雙線程SMT會表現的就一個CMP雙核處理器,甚至更加高效——因為它比CMP雙核成本要低得多。在這種理想的狀況下,一個雙線程SMT核心幾乎可以等同於一個雙核處理器,並且能耗上還要低的多。
但SMT的效率根據負載不同會有很大差異,AMD認為在真實的應用情況中,一個雙線程SMT核心僅僅等同於1.3個常規核心的效能,因為很多時候線程都在執行資源而不是等待主內存響應,換句話説,如果主內存不再是瓶頸,SMT的執行單元就過剩了,而一個SMT核心也就不再比一個單純的核心更高效,畢竟SMT核心需要增加一些電路設計,比一個單純的核心成本要高一些。二、推土機架構分析
AMD“推土機”將採用32nmSOI工藝,這讓“推土機”相比“馬尼庫爾”皓龍處理器可以在不增加功耗的前提下增加33%的核心數量、增加50%的吞吐量。與AMD之前所有處理器都有所不同的是,“推土機”採用了“模塊化”的設計,每個“模塊”包含兩個處理器核心,這有些像一個啓用了SMT的單核處理器
SMT 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是被兩個線程共享的一個部分,如果給予足夠的內存帶寬,芯片將具有很高的浮點運算能力。