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