憑借8個物理核心、3.6GHz的主頻和12億個晶體管等特點,AMD FX-8150給人們留下了深刻的印象。目前桌面PC市場中與之處于同一價位區(qū)間的處理器產(chǎn)品是基于Sandy Bridge核心的Core i7-2600,它擁有10億個晶體管,比推土機略少。AMD FX系列處理器的上一代產(chǎn)品Phenom II處理器擁有9億個晶體管和相同的核心面積,而且Phenom II在服務器領域的表現(xiàn)無可匹敵。不過AMD FX系列的桌面PC處理器(代號推土機)的表現(xiàn)卻令人失望,原因是推土機的架構是為服務器設計的,更適合用于服務器方面的運算。
想要了解推土機架構我們必須深入了解它所使用的技術,推土機雖然設計了多個物理核心,但是嚴格地說,它們都不是單獨的核心,而是每兩個核心形成一個運算模塊,共同執(zhí)行整數(shù)運算,并從共同的前端獲取數(shù)據(jù)。這兩個核心共享浮點運算單元,這與英特爾的超線程技術原理類似,唯一的區(qū)別是推土機由兩個物理核心來提供兩個線程,英特爾則是一個物理核心提供兩個線程。
資源共享的模塊
一般的處理器每個核心都擁有一個單獨的浮點運算單元,這些單元在處理多媒體任務時使用的非常頻繁。而推土機處理器的浮點運算性能較低是因為其每兩個核心運算模塊共享一個浮點運算單元,雖然每個單元可以同時進行4個128bit的運算操作,但是如果推土機處理器中的兩個核心要同時使用浮點運算單元,那就意味著每個核心就只能獲得兩個線程的128bit的運算性能,這導致計算效率減半。
當然,推土機在技術上也有一些改進,例如它的兩個計算單元可以直接處理MMX和SSE指令,也可以直接處理256bit的AVX指令,并將之分發(fā)到其他運算單元中。但與Sandy Bridge相比,推土機還是略遜一籌,Sandy Bridge處理器可以在每個周期執(zhí)行兩個操作,而推土機處理器只能執(zhí)行一個。
推土機是第一個能夠支持每周期執(zhí)行4個FMA指令的處理器,它可以在一個周期內(nèi)同時執(zhí)行加法和乘法運算,這在多媒體應用中會表現(xiàn)得更好。
英特爾沒有計劃在2013年前將FMA指令集加進其處理器當中,在英特爾處理器中,兩個邏輯核心除了共享浮點運算單元之外,還共享前端處理單元,它們接收x86指令并進行進一步的加工,這一共需要4個運算單元來完成。與此相比,Phenom II每個核心有3個運算單元,可以用6個核心執(zhí)行18個整數(shù)運算周期。而在推土機中,AMD繼續(xù)減少了整數(shù)運算核心的數(shù)量,每個核心只有兩個整數(shù)運算單元,推土機的8個物理核心可以執(zhí)行16個整數(shù)運算周期。
不過推土機模塊所使用兩個核心共享模式也擁有其優(yōu)點:共享的前端和整數(shù)運算單元讓其可以更省電,可以產(chǎn)生更低的熱量,這也就可以讓它達到更高的頻率,在Turbo模式下,推土機可以將其所有核心提升至3.9GHz,如果只有一半的核心參與計算,那么這些參加運算核心的頻率就可以提升至4.2GHz。
除了較高的時鐘頻率,推土機還擁有更長的流水線,約為20級,而Phenom II只有12級,這意味著推土機可以在每個時鐘周期完成超過20個任務,推土機為超長流水線設計了一個超大的二級緩存,用于在計算時預存數(shù)據(jù)。與其他處理器不同的是,這是一個獨立的高速緩存。
新的架構需要新的操作系統(tǒng)來支持,Windows 7操作系統(tǒng)在分發(fā)線程的時候會盡可能讓每個核心均勻工作,這比較符合英特爾處理器的工作方式,但是這對推土機卻會造成負面影響,因為這意味著同一個進程的線程運行在一個模塊的時間減少。由于推土機浮點性能不佳,所以在桌面市場推土機并不能超越同價位的Sandy Bridge產(chǎn)品,但是在服務器方面,AMD16核心的Interlogos處理器憑借其強大的并行整數(shù)運算性能,優(yōu)于使用英特爾至強處理器的服務器。
推土機的詳細信息
首款基于推土機架構的AMD FX處理器擁有8個核心。
如果我們仔細觀察處理器的架構可以發(fā)現(xiàn),這些核心由一系列模塊組成,并共享資源,比如前端數(shù)據(jù)處理單元和浮點運算單元。
處理器架構
推土機沒有使用單獨的核心,而是使用模塊化多核心設計,每個模塊擁有兩個核心和各自獨立的2MB L2緩存,所有模塊的數(shù)據(jù)交換都通過8MB的L3緩存來進行。
前端
獲取到指令的模塊從L2緩存或者緩沖區(qū)開始處理代碼,并將結果通過指令緩存轉發(fā)給解碼器。在推土機中,4個解碼器可以同時解碼x86指令。
完整的運算核心模塊
模塊中的兩個核心都有獨立的整數(shù)運算單元和共享的兩個浮點運算單元。其中兩個地址生成邏輯單元可以進行簡單的計算任務和內(nèi)存尋址。
浮點運算單元
在浮點運算單元中有4個128bit的通道,其中兩個通道支持如MMX和SSE等擴展指令集。如果需要,剩余的兩個通道可以執(zhí)行256bit位長的AVX指令。此外,它們還可以執(zhí)行復雜的FMA運算。