• 5

Intel 落後AMD五年??

上海正式發表咧
http://taiwan.cnet.com/digilife/0,2000089053,20134449,00.htm

看起來還滿多廠商挺amd的
看來AMD大戰intel可有得瞧囉
感覺這次amd想靠上海翻身
有那麼多大咖廠商都搭配上海處理器
這款產品必定有它的過人之處

而且連結有提到
“相較於Intel,AMD率先推出原生雙、四核心處理器產品,更於數年前開始採用內建記憶體控制器,以及Direct Connect Architecture(直連架構)與HyperTransport(超傳輸匯流排)架構等設計”
小的沒有想要再度引起筆戰
但我真的有話要說
雖然QPI和HyperTransport的設計理念不同
但的確是相仿的技術
Intel卻要賣那麼貴XO
到底示為了什麼orz

以下是純粹處理器微架構討論,I/A論戰請退散....

我想眾所皆知,AMD Phenom/K8是所謂Exclusive的快取架構,也就是上層 cache的資料不需要在下層快取複製一份,這是與傳統教科書的memory hierarchy較不同的地方,因此L2/L3 快取在AMD是作為犧牲者快取(victim cache)的角色,分別存放從L1/L2 快取踢出來的資料。也因為如此,這一次Deneb/Shanghai發表,蠻多地方都可以看到Total 8MB快取的字樣(L2 512MB*4+L3 6MB,L1不計)。Intel Core i7原則上走的是傳統memory hierarchy那條路,也就是inclusive的快取,只要是上層快取有的資料,下層快取一定也會有一份。

但任何快取架構一定有其利以及其弊,舉例來說,AMD的Exclusive架構在L1 cache miss/L2 hit的時候,必須把L2的cache line送到L1,並把 L1的一筆cache line逐出到L2,整個過程是交換,但是在較常見的inclusive cache,則是把L2的資料複製到L1就可以了,交換 vs. 複製,電路的複雜度以及實際工作吞吐量一定是不一樣的。

另外也由於交換的限制,L1與L2的cache line大小必須是一樣的,但在inclusive cache上沒有這個限制,較大的L2 cache可以採用較大的line size,設計上多了一些彈性,tag的大小也可以減少。

對於這次AMD的Deneb/Shanghai,問題來了...

45nm的Phenom II/Opteron有一段說明:
.....
這6MB容量L2另外還以智慧預取(Smart Fetch)妥善運用,允許閒置的處理器核心,將L1/L2內部資料複製到L3內,然後把電路關閉節能。在新製程與技術幫助下,Shanghai由運作轉入閒置待機狀態下,至多能節省35%電力消耗,整體更能比Barcelona省下21%的電力。
.....

在某個核心關閉的時候,L1/L2內部資料被複製到L3內,也就是6MB L3最壞情況有512MB上下會被pollute到,換句話說L3內最壞有8.3%的資料,必須因為某個核心的關閉被強制踢到處理器外以清出空間放L1/L2的資料,而複製資料本身跟比對、踢出處理器的動作,勢必是要耗掉電路工作時間以及內部/外部傳輸頻寬的。

而在這個被關閉的核心重新被啟動時呢?必需要重複大量的read miss/write miss(因為L1/L2空空的),也就是被啟動後的某短時間內,資料都會來自稍慢的L3/memory。不過這部份相當於Compulsary miss,問題不大。

Core i7呢?在關閉核心時,因為inclusive架構的設計,L1/L2並不需要比對/複製到L3,因此也不會pollute到L3,但是在核心啟動時呢?L1/L2資料是否有保留?如果沒有,也是一樣勢必會有大量的read miss/write miss,資料都會來自稍慢的L3/memory。如果核心關閉時L1/L2資料有保留,對於這個核心重啟後被作業系統所新指派的工作,原先L1/L2資料適用性應該也不大了,因此L1/L2小弟個人猜測應該是flush掉的,不知有沒有網友有讀到這部份的資料?

在製程提昇的狀況下,AMD維持exclusive架構似乎缺點多於優點,但是修改快取架構是重大微核心修改,並非一蹴可幾....

不知道網友看法如何?
我覺的事實上是I社在點對點匯流排的進度上晚太久了沒錯

像A社這樣點對點特性的HTT匯流排在伺服器業界的其他運算晶片使用已久,不發展出這種點對點特性的外部傳輸結構在多晶片連結的運用場合性能幾乎都會衰退的非常嚴重,
X86 CPU過往之所以難以打進4P以上市場的原因就是在原舊有的FSB匯流排基礎上各CPU的運作效率偏低,連結的數量越多越嚴重,2P時效率有9成,4P時開始就掉到7成左右,超過4P以上的場合就算X86 CPU單體運作的效能再高也不需要考慮了,所有的性能優勢直接被連接時的損耗抵消,當初是K8打破這個局面的,4P時是K8最佳的運作連接數建議值,此時還能保持近9成的運作效率,
C2D或原先的PD系列的伺服器版在4P以上場合同頻率下性能壓不過對手的弱點一直在此,而且 這兩者的記憶體控制器又是外置於北橋,這意味著連結數越多需要安置的北橋越多,除了增加線路佈置難度外記憶體效率與頻寬會更難看

更重要的是在資料交換量壓力測試時就看的出FSB匯流排到底有多老舊,超過一定交換量後效率直直落,但各CPU的運作空閒反而變高(資料全卡在FSB匯流排上動彈不得),這樣這伺服器就算壓力崩潰了

K10原則上根本是顆伺服器向的U,它幾乎所有的強化都跟加大伺服器頻寬吞吐量有關
ycweng wrote:
以下是純粹處理器微架...(恕刪)


沒錯..完全同意您的看法..
我想這也是為什麼大多輸人不看好amd這幾年的未來的主要因素..
還是只能在低價電腦打滾...

當然未來.amd會有甚麼發展..現在言之過早...
但就目前的資料看來..2010年前intel還是佔有主要優勢
畢竟很明顯i7是衝著伺服器市場而來..對amd來說肯定不是好消息

另外提供另一個角度讓大家思考
其實i ntel一向的做法就是以現有製程做最大的利用..出發點不外乎利於製造量產為考量
之前由鋁製成轉換為銅製程intel也是到0.13後才轉換...
但是生產出來的產品卻未必比人差..
這本來就是intel的強項
連藍色巨人都不得不承認方面是i的強項..

fsb不夠用,我想i不是不知道..只是換架構有其成本考量..
該換時自然會換..這應該是較合理的解釋
Intel會採用inclusive cache的原因小弟覺得很簡單,一是演算法簡單,再來是靠增加cache大小就能很容易的增加效能。
這世界上絕對沒人敢說他的Cache的大小可以做贏Intel,看看那最新的Itanium就知道了。

AMD採用exclusive cache可能還是在成本上的考量,cache吃的面積太大。用exclusive的方式可以變相的增加總cache容量。
另外一點則是因為內建記憶體控制器的關係,就算都沒命中,從memory上抓的延遲也不會大到無法接受。

關閉核心造成的cache lost根本就不需要考慮,理由也很簡單,當核心需要關閉來省電的時後,一定是運算量很低的時候,那cache lost造成的效能損失也根本就無所謂了。



至於採用FSB,我想成本考量是一點,但最重要的可能還是在產品策略上,Intel根原先本沒打算要用Xeon打4-socket以上的市場,這市場原本的主打是Itanium阿!

HT的最大優勢在於他可以做外部的高速匯流排,類似InfinitBand的用途。我沒記錯的話,Cray的Jaguar就是採用HT做interconnection。
高速交換設計的瑜亮情結?Rapid I/O與ASI(3) 讓PCIe持續頭大-HyperTransport 3.0,這篇值得一看。
http://kivava.blogspot.com
eclair_lave
X86 CPU過往之所以難以打進4P以上市場的原因就是在原舊有的FSB匯流排基礎上各CPU的運作效率偏低,連結的數量越多越嚴重,2P時效率有9成,4P時開始就掉到7成左右,超過4P以上的場合就算X86 CPU單體運作的效能再高也不需要考慮了,所有的性能優勢直接被連接時的損耗抵消,當初是K8打破這個局面的,4P時是K8最佳的運作連接數建議值,此時還能保持近9成的運作效率,
C2D或原先的PD系列的伺服器版在4P以上場合同頻率下性能壓不過對手的弱點一直在此,而且 這兩者的記憶體控制器又是外置於北橋,這意味著連結數越多需要安置的北橋越多,除了增加線路佈置難度外記憶體效率與頻寬會更難看

更重要的是在資料交換量壓力測試時就看的出FSB匯流排到底有多老舊,超過一定交換量後效率直直落,但各CPU的運作空閒反而變高(資料全卡在FSB匯流排上動彈不得),這樣這伺服器就算壓力崩潰了
...(恕刪)

cupidchen wrote:
fsb不夠用,我想i不是不知道..只是換架構有其成本考量..
該換時自然會換..這應該是較合理的解釋
...(恕刪)

感謝回應,小弟也認同這的確牽涉到Intel跟AMD早四、五年前各自的技術決策問題,Intel受到Netburst飽受批評的刺激加上每瓦計算能力這種新研究課題的興起,當時決策方向是先大幅翻新微架構核心,成果就是評價很不錯的Core架構,相對在Uncore的部份(Uncore對於C2D、C2Q其實是不適用的,在此借用一下i7的叫法來泛指加入L3、點對點、記憶體控制器等...)動作就慢了,Intel也不諱言C2D、C2Q對於伺服器的確不算是適用性很好的架構(弄出Core架構的以色列團隊專長是Mobile處理器...),因此即使C2D、C2Q評價不錯,也難免承受"架構落後AMD五年"之譏,但我想了解微處理器研發、及更改微架構核心超高難度的人,應當知道絕非這麼單純,不過當時既然作了這樣的研發先後順序決定,難免要對這些譏諷概括承受,即使現在Core i7已經作了一些彌補。

AMD延續其以小博大所必須的獨特話題性,在x86上先突破1GHz、原生雙核、加入點對點連接、記憶體控制器、x86-64、原生四核(之所以強調x86是因為在RISC處理器上這些都不是新鮮事)、舉債買下ATI等。K8核心推出時很優秀,但是K10/K10.5不翻新K8核心內部而直接沿用、然後再在Uncore上作文章,小弟覺得就有些偷懶了,固然當時AMD的研發團隊有些動盪,因此不敢進行更新K8核心這種茲事體大的事(試想更新微架構核心有多少的simulation要做、有多少的軟體相容性要驗證?),不更新K8核心、K10仍然出現了TLB的疏失,若同時更新Core跟Uncore,對當時AMD可能真的是不可承受之重,業界應該可以體會AMD不敢貿然作此決定的苦衷,但是苦果也是會反應在現實的,畢竟微處理器大老們是如此諄諄教誨的:紙上優秀的架構是虛幻的,真實應用程式的執行結果才是現實的。K8執行核心延用太久,反而成為瓶頸,現在就看下一代翻新的Bulldozer核心能否準時、以及能帶來什麼樣的驚喜了...

kivava wrote:
AMD採用exclusive cache可能還是在成本上的考量,cache吃的面積太大。用exclusive的方式可以變相的增加總cache容量。
另外一點則是因為內建記憶體控制器的關係,就算都沒命中,從memory上抓的延遲也不會大到無法接受。
...(恕刪)

也對,因為製程世代如果跟不上、或是生產未達經濟量,較大的die size或是較高的固定成本攤提就是反應在每顆處理器成本,這部份,小弟是認同AMD foundry分離的作法。不過有時"簡單"的解法,也就是增加cache(不過不是一味加大,需配合simulation結果衡量加大的邊際效應),反而簡潔有效率。

kivava wrote:
關閉核心造成的cache lost根本就不需要考慮,理由也很簡單,當核心需要關閉來省電的時後,一定是運算量很低的時候,那cache lost造成的效能損失也根本就無所謂了。
...(恕刪)

可能因為剛發表吧,AMD Smart Fetch的資料所見不多,這部份小弟還在找其核心power down的邏輯:

AMD Smart Fetch Technology

- Helps reduce power consumption by allowing idle cores to enter a “halt” state, causing them to draw even less power during processing idle times.

- Data from the L1 and L2 cache are transferred to the L3 cache before the idle cores enter a "halt" state. Contents of the idle cores can be intelligently retrieved from the shared L3 cache, so the idle cores can remain "halted."

如果運算量很低而關閉核心,L1/L2資料寫到L3的動作確實干擾有限,完全認同。若是碰到類似i7 Dynamic Speed適用的情景、也就是loading只在某個核心上而其他核心可以被power down的情況,L1/L2的資料回寫到L3難免會干擾,尤其是在忙碌核心所執行程式的working set極大的情況下。

如果大大們有找到相關的白皮書,再麻煩分享一下嘍!

  • 5
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?