星期六, 3月 20, 2010

[隨手亂畫] AMD "True K8": 1998 vs 2009

調整PowerPoint到300dpi後,BMP圖片解析度可以撐到3000x2250,佔掉半頁應該沒問題吧...

8 則留言:

AmibaGelos 提到...

問一下水球大,K8-2的Double-pumped執行單元是為了減低分支預測失敗的代價嘛?
那這對SpMT的錯誤分支部分的清理會不會有幫助?

k8-1的兩個core關係有點像是Fine-grain MultiThreading但是兩個Thread不共用Execute Unit的感覺= =??
這樣不會管線利用率低下?...還是要重複利用Loop產生的大量指令來降低Decoder部分的負擔?

molesterwaterball 提到...

我這樣明講好了,為何Bulldozer後來選擇的是K8-1路線?道理很簡單,因為設計比較單純,沒了。

AMD應該還沒想到SpMT這麼複雜的玩具....

匿名 提到...

bulldozer的執行單元太窄了 會否有可能使用倍速alu呢?

molesterwaterball 提到...

就我的看法,以AMD的思維,如其用做倍速ALU,恐怕整顆CPU走超高時脈設計的機會還會大很多...

AmibaGelos 提到...

可是Bulldozer的Decoder仍然是4Complex的設計,高頻率的設計會使其耗電量過高...
除非對其有所改進(如Vector-Path跟Scalar-Path可以同時輸出以達到類似高頻的效果)或是適度簡化(如2Complex跑低速2Simple跑高速)...否則想要做成Ultra-high Frequence有困難吧?
不過從較窄的管線配置來看想要有足夠的Single Thread性能就只能從頻率或調度機制著手了

molesterwaterball 提到...

decode這件事,不完全是decoder的責任,很多工作都可以「分攤」到別的stage,IBM Power6就是最好的例子,L1 I-cache幾乎快跟Trace cache沒兩樣了,AMD K8-1和K8-2也採取類似的路線,前者更還有L0 I-cache當緩衝墊,更何況AMD得找地方去擺設那票移除不必要branch、增加實際指令輸出率的功能單元,真要做,並不是做不到。

至於Bulldozer的時脈應該有多高?參考AMD預估的Bulldozer性能,16 core/8 Module的Interlagos的整數/浮點輸出率比12 core的Magny-Cour多出46%和74%,時脈推估會多出個50%。

但考慮到Magny-Cours是包兩顆Istanbul的設計,時脈不可能太高,2.2~2.5GHz就差不多了,所以Interlagos的時脈頂多是3.3~3.8GHz,說真的,這也不是什麼遙不可及的目標。

之前聽日本某鬍子大叔說,日本Intel推估Bulldozer的時脈只會比現有K10多個20~30%,其實並不是錯誤的說法。

AmibaGelos 提到...

那這樣說的話Zambezi不就有可能有4.8甚至是5.2Ghz了,而且還要搭上相較於Power6.Netburst複雜多的Front-End,感覺會跟當年Netburst一樣撞牆= =

另一個問題是Bulldozer不是重點擺在整數性能上嗎?...為什麼相較於Interlagos反而是浮點提升較多?
從理論throughput上來看雙128bit的FMAD效能跟2xK10的雙128bitFMAC+雙128bitFADD應該差不多吧...當然Bulldozer的指令並行度應該是有變高

還有一個問題是AGU與ALU從水球大的圖上來看變成類似Intel互相分離,但是AMD真的會放棄他們多年來的ALU/AGU的設計嗎?這種設計的tradeoff應該不多吧...所以小弟私以為Bulldozer會維持4ALU/AGU的設計

BTW,Bulldozer的Thread有確定是交錯送出還是同時送出?...水球大有相關的文獻嗎>"<??

molesterwaterball 提到...

其實現在看來,Bulldozer越看越像是一個針對AVX最佳化的省錢設計,每個電晶體都要砸到刀口上。至於時脈,我個人「猜測」最後會到達4~4.8GHz。

至於ALU/Load & Store的配置,從K7時代就已經是分離式設計了,一個MOP最多拆成一個ALU ROP和一個L/S ROP,再各自送到配對的ALU/Load & Store,Bulldozer只是剛好變成K7/K8/K10的2/3規模。假如單核心擁有四個ALU和四個Load & Store,除非Decoder端跑兩倍時脈,或著每個時脈都可以送出兩條Thread,否則根本餵不飽。

話說回來,AMD和Intel不同,執行單元架構都相對單純很多,看不到Reservation Station每個port串一大堆執行單元的狀況,還是依稀看得到AMD和Intel的資源差距,無論是設計能力和製程。

最後,Bulldozer現在看來比較像是兩條thread交互送出,因為確認decoder只有四組,每個cycle解碼四個x86指令,實在很難每個cycle丟出兩條thread...