錯在工藝不成熟上?推土機(jī)架構(gòu)失利分析
AMD的推土機(jī)架構(gòu)公布之時絕對讓人震驚,被譽(yù)為自X86體系確立以來架構(gòu)變化最大的一次,模塊化的設(shè)計思路很新穎,當(dāng)時一片叫好之聲??上Ю硐牒茇S滿,現(xiàn)實太骨感,等到真正的推土機(jī)上市時,推土機(jī)帶給人們的只是失望。
實際性能上推土機(jī)不僅比不過Intel Sdandy Bridge架構(gòu),甚至不如自家上一代Phenom II,而功耗和發(fā)熱又大幅超出,推土機(jī)沒有帶給AMD復(fù)興的榮耀,反倒成了滑鐵盧。時至今日,AMD官方多次用CPU性能過剩來安慰自己和客戶,這話不無道理,但是AMD在CPU性能上暫時無力跟Intel爭雄了,最簡單的例子就是國內(nèi)外各大IT媒體的評測平臺基本上都是Intel CPU和主板了。
▲圖片來源于Techreport
即便過去了這么久,推土機(jī)性能不濟(jì)一事依然沒有準(zhǔn)確合理的解釋,各方總結(jié)起來的原因主要有以下幾點:
1.GlobalFoundries工藝不成熟
雖然FX-8150的默認(rèn)頻率已經(jīng)達(dá)到3.6GHz,Turbo頻率4.2GHz,但是這仍然低于AMD預(yù)期,而且GlobalFoundries并不成熟的32nm SOI工藝使得推土機(jī)的功耗和發(fā)熱巨大,進(jìn)一步限制了CPU性能提升。
2.軟件優(yōu)化不到位
推土機(jī)模塊化的設(shè)計需要系統(tǒng)和軟件的優(yōu)化,否則難以發(fā)揮真正的性能。這方面微軟已經(jīng)推出了任務(wù)調(diào)度補(bǔ)丁,根據(jù)我們的測試,性能確實有一定提升,但是比率非常小,并不足以改變推土機(jī)的命運。
3.推土機(jī)架構(gòu)的緩存延遲太高
還是推土機(jī)獨特的架構(gòu)所致,因為它也使用了長管線設(shè)計,被稱為AMD版的Pentium 4,延遲周期太高,有人認(rèn)為這是性能失利的主要原因,但是從媒體測試Trinity APU的表現(xiàn)來看,即便是做了改進(jìn)的Piledriver(二代推土機(jī)架構(gòu))的IPC性能也沒有改變多少。
其他理由還有很多,但是這都不是主要原因。Anandtech網(wǎng)站近日撰文分析了推土機(jī)架構(gòu)兵敗的原因,原文很長,這里只摘錄結(jié)論來看。
首先他們也認(rèn)為推土機(jī)的高延遲對桌面應(yīng)用有一定影響,但是這并非導(dǎo)致性能受影響的主要原因,因為Intel首次使用4周期延遲的Nehalem并不比上一代Penryn架構(gòu)快多少。
▲主流CPU架構(gòu)的L2分支預(yù)測延遲
尋找元兇:分支預(yù)測誤預(yù)測懲罰及指令緩存命中率
在經(jīng)過對比測試之后,Anandtech認(rèn)為影響推土機(jī)性能更嚴(yán)重的是其分支誤預(yù)測(Branch Misprediction)帶來的后果以及指令緩存命中率(Instruction Cache Hit Rate)問題,這才是主要影響因素。
▲分支預(yù)測性能測試
推土機(jī)跟Sady Bridge一樣都是長管線設(shè)計,但是后者針對可能的分支誤預(yù)測做了補(bǔ)救措施,有專門的μop緩存以減少預(yù)取和解碼過程中的延遲。性能低于預(yù)期的SAP、SQL Server以及更嚴(yán)重的SPEC CPU2006測試中都表明了推土機(jī)在分支誤預(yù)測上有嚴(yán)重問題。
前面的測試證明了AMD推土機(jī)工程師在分支預(yù)測性能上做的不錯,但是分支誤預(yù)測上就不如Intel SNB架構(gòu)了,即便是Trinity APU使用的Piledriver也沒有明顯改進(jìn),性能變化只有1%左右。
不知AMD是否會在未來的架構(gòu)設(shè)計中也增加μop緩存,它可以減少分支誤預(yù)測帶來的懲罰,節(jié)省能耗,并給解碼單元減少負(fù)擔(dān),看起來是很完美的設(shè)計。
另一個問題是L1指令緩存似乎并不能適應(yīng)雙線程操作,測試中只要在2-way 64KB L1指令緩存中進(jìn)行雙線程操作,命中率就明顯下降,看來推土機(jī)的模塊化設(shè)計中緩存的結(jié)關(guān)聯(lián)性還是太低,而Intel的做法是雙線程應(yīng)用中使用8-way關(guān)聯(lián)性緩存。
桌面性能以及服務(wù)器性能的平衡
文章最后還談到了推土機(jī)的設(shè)計思路,這是AMD為什么采用這樣的設(shè)計的出發(fā)點,因為推土機(jī)并非面向桌面應(yīng)用設(shè)計,服務(wù)器負(fù)載才是重點。
桌面應(yīng)用要求更高的IPC性能,對分支預(yù)測敏感,但是對線程數(shù)量要求比較低,這些恰好不是推土機(jī)的強(qiáng)項,AMD只能使用提高CPU頻率以及Turbo頻率的做法來滿足高端玩家的需要,原本的目標(biāo)是同功耗下頻率至少要高20-30%,但是最終的結(jié)果是只高了10%,而且功耗也大幅飆升。
▲服務(wù)器應(yīng)用是推土機(jī)架構(gòu)特性發(fā)揮比較好的領(lǐng)域
服務(wù)器應(yīng)用才是推土機(jī)架構(gòu)最擅長的領(lǐng)域,SPEC CPU2006的測試中推土機(jī)表現(xiàn)就很好,這里對CPU IPC性能不慎敏感,就算CPU的命中失誤比較高,延遲方面所受的影響也比較小,但是它對CPU并行、內(nèi)存占用要求比較高,因此推土機(jī)高延遲但是大容量的L2緩存在測試中表現(xiàn)就很好。
無論那種理由或者缺陷導(dǎo)致了推土機(jī)桌面性能不濟(jì),目前的現(xiàn)實就是除非架構(gòu)有較大變化,否則基于推土機(jī)架構(gòu)演變而來的AMD處理器依然難以跟Intel相提并論。在這一代失利中,不知AMD心里是否真的不在意CPU性能了,因為他們的重心轉(zhuǎn)向了APU這樣的全功能、低成本處理器。
從實際應(yīng)用上看AMD的CPU性能過剩論確實很有道理,隨便一顆3GHz左右的雙核或者四核都可以滿足目前的軟件和游戲需要,但是仍然不希望也不愿看到CPU領(lǐng)域是Intel一家獨大,只是推土機(jī)架構(gòu)的CPU路線圖已經(jīng)延伸到了2015年,未來兩三年內(nèi)都不會看到AMD有新架構(gòu)CPU發(fā)布,前景實在難料。