三星年底推出自主架構,「貓鼬」大戰金環蛇 誰會贏? 還有S6閃存測試

abc003 wrote:
2.X86的分支預測命中率的確是成本比RISC高 而且指令長度不對稱 因為要加寬流水線或是加深指令平行度X86都不利


X86 CISC code都是由Predecode unit解成RISC的uOP執行, 所以指令長度不等長解決了. Out of order是X86系的強項, 連Nehalem都有96 uOPs的ROB.
還有當年為了應付Pentium 4過長的執行管線, 發展trace cache來提高cache命中率.
不論是降低branch prediction失誤性能損失或Out of order技術Intel比ARM都強多了.

4.為了向前兼容性X86 80%常用的指令只是不足20%的指令 很浪費電路面積和成本 成本一值比較高


實際上現在的CPU最佔電路面積是L2/L3 cache, Predecode unit用不了多少電路面積.

6.你只要看看這10年X86的進步幅度就知道了 這個架構已經碰上瓶頸很可能是來自本身的自身架構的缺陷


ARM有今天的快速進展, 不過就借用過去RISC大廠(IBM HP MIPS DEC SUN)成功的研究和實作經驗去縮短開發時程, RISC能用的大絕也差不多用完了. 除非ARM獲得什麼外星科技, 否則今天IBM POWER碰上的瓶頸, ARM也不可能躲得掉.

X86指令長度不對稱雖然被罵到爆, 可是注意看他的指令集從MMX, AA-64, 3D now!, SSE1~4.2 到AVX1~2. 注意到嗎? 有哪一顆RISC可以這樣擴充指令集. X86指令不等長有時候是會意外變成優點的.

如果你有測過Intel的DRAM的Read/write性能, 會注意到memory controller有多暴力. X86能跟POWER競爭高階是伺服器不是運氣.

台灣人可悲呀 wrote:
我想要看CPU性能...(恕刪)


Core M 5Y71 GeekBench3 TB後2.9GHZ時脈 單核2700分 多核4500分 功耗比較大

http://browser.primatelabs.com/geekbench3/search?page=2&q=5Y71

iPaD AIR A8X 單核1800 多核4400

G S6 單核1500 多核5000

http://browser.primatelabs.com/ios-benchmarks

只要ARM單核效能超過3000分基本上就可以對英特爾形成威脅了

桌上型電腦I5 2400 只跑單核2700 多核8200

貓鼬單核效能提升50% 到達2200 或是ARM A72 基本上是年底和明年初但還是用14奈米製程 跟英特爾Core M基本難分高下

再來就是2017的10奈米 在10奈米結點上 ARM效能會全面超過X86 目前看英特爾最新的I7 5770K的資料只提升了15%效能

到時後製程到10奈米英特爾還是提升的10%左右效能 ARM再翻50%.........

abc003 wrote:
貓鼬單核效能提升50% 到達2200


請問此時貓鼬的發熱量呢?以目前市售的14nm Exynos 7420來看,這AP並不是沒有熱管理的問題,所以M1真要塞進手機,怕也是要上10nm且還只能塞4核。為何我先前提過某廠商認為A72 8核 14/16nm對上Intel也是沒有優勢?i5單核也是有3千多,真塞個8核,arm又不知道輸到哪了。

我一直強調,arm的優勢是在節能,市場是用小電量電池的行動裝置;intel的優勢是效能,市場是桌機與插電或大電量的筆電。在不插電的環境,由於x86的限制,intel本來就是很難勝出的。舉個例吧,本校某系有一台Xeon X5690,上次測過GB3多核可是多2萬多分很多更不用提那張頂極顯卡了喔。

ARM單核心GB3要上5000,我覺得不是在明年,明年能上3000就要偷笑了。不過上3000的ARM AP弄個8核,放桌機上倒是不錯,因為多核追上4核的i7了,只是不知道這樣的系統到時要賣多少?

CoreM目前是2核,明年10nm會不會來個4核誰也沒把握不是嗎?
abc003 wrote:
Core M 5Y71...(恕刪)


不確定你期待的未來會不會發生.

不過, 我會建議你用E-beam去寫個10 nm 的photoresist, 去etch 10 nm 的 Poly-Si, 再上測試台量一下I-V, 你會理解樂觀/天真/沮喪的差別. 這時再來談夢想還是空想就會很有意義.

第二, 跑分是一種綜合指標, 分高低對不同架構的CPU不具絕對意義, 完全沒有認真看待的必要. 說難聽一點, 除了寫code的設計師, 有誰說得清跑分究竟測了什麼東西? 一筆分數各自表述, 開心就好.

第三, 請用常識, 一顆強大的CPU, 它有大量高效率的ALU, 所以它需要強大的I/O, 所以它會有驚人的L2/L3 cache容量和高頻寬memory bus去不間斷的餵給它DATA, 反之, 若ARM CPU只有小小的cache和bus, 說它的核心有多強大, 可能嗎? 一顆大馬力的引擎你絕不會期望它的排氣量會很小.
umts wrote:
X86 CISC code都是由Predecode unit解成RISC的uOP執行, 所以指令長度不等長解決了. Out of order是X86系的強項, 連Nehalem都有96 uOPs的ROB.
還有當年為了應付Pentium 4過長的執行管線, 發展trace cache來提高cache命中率.
不論是降低branch prediction失誤性能損失或Out of order技術Intel比ARM都強多了.
實際上現在的CPU最佔電路面積是L2/L3 cache, Predecode unit用不了多少電路面積.
ARM有今天的快速進展, 不過就借用過去RISC大廠(IBM HP MIPS DEC SUN)成功的研究和實作經驗去縮短開發時程, RISC能用的大絕也差不多用完了. 除非ARM獲得什麼外星科技, 否則今天IBM POWER碰上的瓶頸, ARM也不可能躲得掉.
X86指令長度不對稱雖然被罵到爆, 可是注意看他的指令集從MMX, AA-64, 3D now!, SSE1~4.2 到AVX1~2. 注意到嗎? 有哪一顆RISC可以這樣擴充指令集. X86指令不等長有時候是會意外變成優點的.
如果你有測過Intel的DRAM的Read/write性能, 會注意到memory controller有多暴力. X86能跟POWER競爭高階是伺服器不是運氣.


我樓上已經提到X86有解碼單元把CISC翻譯成微指令,然後在內部來實作RISC 所以X86內部是RISC的外表包CISC的皮

但是實際上因為先天的缺陷還是沒辦法預測X86指令哪時候會有分支

這就大大增加分支預測器猜測哪時會有分支的困難度 導致開發成本更高
台灣人可悲呀 wrote:
請問此時貓鼬的發熱...(恕刪)


ARM官方的資料是 A72和A57相比 Die Size大小縮小了

這導致製造成本 和發熱也降低了

管線深度也縮短了從19級流水線 縮短成15級流水線

所以成本不但沒有更高還更低

A57->A72這次的效能提升和功耗降低並不是完全來源於製程改進,而是微架構的更新




例如上圖同樣為28奈米的A57和A72

同樣28奈米 A72功耗比較低效能也比較高 通常手機晶片不馬上換大核的原因在於大核功耗比較高

手機晶片如果馬上用不配合新制成功號壓不下來

所以等到新一代製程成熟才會配合新架構用 這次高通的教訓就是如此

例如從A15升級A57就是功耗提升

但是還有另一種是架構改良例如從A15->A17 相比就是降大核的功耗


所以這次主要是同時降功耗+升級性能 功號雖然降不多性能提升是很多的

所以半導體廠商會很快採用 三星在年底前可能就會讓NOTE 5上 A72 貓鼬要等明年了


第5頁文章隱形了.....
sinjo wrote:
真的很好奇用蘋果的CPU...(恕刪)
abc003 wrote:
我樓上已經提到X86...(恕刪)


這有什麼好爭辯的, 跟你理解的恰恰相反, Branch predictor是X86的強項.

AMD的CPU, 以及Intel的Pentium M, Core, Core 2使用全局分支預測. SPEC'89 benchmark評測, gshare預測器達到 96.6%正確率,略低於局部分支預測。
連Intel Pentium MMX處理器使用簡陋的飽和計數器, 在SPEC'89 benchmark測評中, 飽和預測都達到 93.5%正確率.
Wiki網址 http://zh.wikipedia.org/wiki/%E5%88%86%E6%94%AF%E9%A0%90%E6%B8%AC%E5%99%A8

X86很難Branch prediction嗎? 不是吧.

而且Intel還很認真的實作 靜態預測/飽和計數/局部分支預測/全局分支預測/Agree預測器, 這五種分支預測去改善正確率.
請問ARM的開創性在哪裡? 總要下點功夫才能讓人敬佩嘛. 站在RISC舊有資產的肩膀上嗆Intel, 就算贏了也很難讓人拍拍手. 更何況都八字還沒一撇.
umts wrote:
這有什麼好爭辯的,...(恕刪)


1.重點在如果預測失敗的機會成本誰比較高?

小名和小王都去賭 賭贏的機率是90% 但是小明的機會成本是輸了賠100 小王是輸了要賠所有家產

但是他們都是90%賭贏 這樣光是比較賭贏的機率就沒有意義 因為機會成本不同

2.如果X86真的這麼好 英特爾在兩千年初為了什麼打算放棄X86 搞ISA X64? 和安騰架構的CPU

這個問題你能否回答得出來?


我認為英特爾非常清楚,是X86指令集限制了CPU性能的進一步提高,因此他們當初正同HP一道努力開發下一代指令集架構 也就是安騰CPU這個完全不相容於X86的架構

後來AMD出來鬧場 搞出了X64-86導致英特爾為了保住市場占有率而放棄這個跨時代的計劃
(也就是英特爾打算完全放棄X86另起爐灶)

但是軟體相容性和應用程式生態的問題導致AMD的成功和當初英特爾的失敗

所以最後AMD的X86-64 向下相容X86才取代了安騰

但是現在不同了安卓的應用程式生態很豐富 並不是完全沒有優勢

英特爾反而居下鋒,他有可能會在未來某一個時間點放棄移動端的X86 去開發ARM架構

英特爾推出X86架構已滿35年了,X86 CPU的發展似乎已到了盡頭。   

2000年初的事情-------晃如隔日----------------------以下
  
  英特爾非常清楚,是X86指令集限制了CPU性能的進一步提高,因此,他們正同惠普一道努力開發下一代指令集架構(Instruction Set Architecture ,ISA): EPIC(Explicitly Parallel Instruction Computing,顯性並行指令計算)。對英特爾而言, IA-64(英特爾的64位架構)是下一個10到15年的架構。新的ISA將使英特爾擺脫X86架構的限制,從而設計出超越所有現有RISC CPU和X86 CPU的新型處理器。那麼EPIC的先進之處在什麼地方呢?為什麼英特爾會放棄使它成為芯片巨人的X86架構呢?   
  一、IA-32的問題   
  我們知道,工程師可以通過提高每個時鐘的指令執行數來提高性能,英特爾新的指令集的首要目的在於,讓指令更容易解碼,更容易並行執行。這樣就可以不受限制地開發新型處理器。   
  但是,對工程師而言,兼容8086的X86指令集一直是必須完成的任務。畢竟,兼容前代產品是使英特爾成長壯大起來的關鍵因素,而且還可以保護用戶原先的投資和使用數以百萬計應用軟件。既然如此,為什麼又要放棄整個X86指令集重新開始呢?X86的不足在什麼地方?   
  (1)可變的指令長度   
  X86指令的長度是不定的,而且有幾種不同的格式,結果造成X86 CPU的解碼工作非常複雜,為了提高CPU的工作頻率,不得不延長CPU中的流水線,而過長的流水線在分支預測出錯的情況下,又會帶來CPU工作停滯時間較長的弊端。   
  (2)寄存器的貧乏   
  X86指令集架構只有8個通用寄存器,而且實際只能使用6個。這種情況同現代的超標量CPU極不適應,雖然工程師們採用寄存器重命名的技術來彌補這個缺陷,但造成了CPU過於複雜,流水線過長的局面。   
  (3)內存訪問   
  X86指令可訪問內存地址,而現代RISC CPU則使用LOAD/STORE模式,只有LOAD和STORE指令才能從內存中讀取數據到寄存器,所有其他指令只對寄存器中的操作數計算。在目前CPU的速度是內存速度的5倍或5倍以上的情況下,後一種工作模式才是正途。   
  (4)浮點堆棧   
  X87 FPU是目前最慢的FPU,主要的原因之一就在於X87指令使用一個操作數堆棧。如果沒有足夠多的寄存器進行計算,你就不得不使用堆棧來存放數據,這會浪費大量的時間來使用FXCH指令(即把正確的數據放到堆棧的頂部)。   
  (5)4GB限制   
  這似乎不是問題,但是,在6年前,主流PC只有4MB內存,而目前的絕大部分PC裝備了64MB以上的內存,是以前的16倍,所以,在下一個十年,PC內存突破1GB絕對不會令人驚訝,而且目前的大型服務器已經使用了1GB以上的內存,突破4GB內存的情況很快就會出現。   
  (6)芯片變大   
  所有用於提高X86 CPU性能的方法,如寄存器重命名、巨大的緩衝器、亂序執行、分支預測、X86指令轉化等等,都使CPU的芯片面積變得更大,也限制了工作頻率的進一步提高,而額外集成的這些晶體管都只是為瞭解決X86指令的問題。   
  二、下一代指令集:IA-64   
  Merced是第一款使用IA-64的處理器,這款CPU具有64位尋址能力和64位寬的寄存器,所以我們稱它為64位CPU。由於具有64位尋址能力,它能夠使用1百萬TB的地址空間,足以運算企業級任務;64位寬的寄存器可以使Merced 達到非常高的精度。   
  粗看起來,Merced很像其他的64位RISC CPU:指令的長度是固定的,由一個指令、兩個輸入和一個輸出寄存器組成;指令只對寄存器操作;超標量,具有多個不同的流水線或執行單元,能夠並行執行許多指令。那麼,Merced的不同點在哪裡呢?   
  (1)顯性並行性   
  儘可能並行工作是提高CPU性能的最佳方法,如果你的CPU每個時鐘週期可以執行8個指令,而競爭對手的CPU每個時鐘週期只能執行4個指令,那麼,他只能製造一個時鐘頻率是2倍於你的CPU,才能在速度上趕上你。   
  我們知道,程序分支和指令依賴是造成難以並行執行許多指令的障礙,而Merced採用的方法是讓編譯器告訴CPU哪些指令可以一起發佈並執行。Merced 接收來自於編譯器的128位包,每個包含有3個40位指令和1個8位模板。每個指令又由3個7位寄存器地址(即可以使用2^7=128個寄存器)、一個6位預測寄存器和13位指令代碼,其中,最有趣的莫過於模板。   
  這個8位模板包含了不同指令間的並行信息,編譯器將使用模板告訴CPU,哪些指令可以同時發佈。模板也包含了包的結束位,用以告訴CPU這個包是否結束,CPU是否需準備捆綁下兩個或更多的包。現在你明白為什麼EPIC CPU的馬力如此強勁了吧,高端CPU可以一起執行幾個包。由於IA-64架構的64個通用寄存器和64個浮點寄存器(編註:原文如此),使CPU可以同時發佈許多指令。   
  當然,強悍的EPIC CPU也需要一個強悍的編譯器,編譯器的工作是檢查指令依賴情況,把並行指令放在一起,並重新排序,使執行單元可以很順暢地工作。   
  (2)分支預測   
  在現代CPU中,分支預測的正確率可以達到90%~95%,雖然看起來還不壞, 但當預測出錯時,CPU就不得不清洗整條流水線。10%的預測出錯率會讓CPU損失30%的性能,在流水線越長的情況下,性能損失越嚴重。而Merced的預測機制, 可以擺脫大部分分支情況。首先來看RISC/x86 CPU怎樣處理典型的"IF-THEN -ELSE"分支:   
  if (i==0)   
  instruction 1;   
  else   
  instruction 2;   
  CPU執行過程如下:   
  比較I是否為0;   
  如果不相等,則跳到else;   
  然後執行指令1;   
  跳到NEXT處;   
  else:執行指令2;   
  NEXT     
  在這裡,CPU必須判斷它去執行ELSE分支呢還是THEN分支。下面再看EPIC CPU的解決方案:   
  比較I是否為0;   
  開始對指令1解碼,設定預測寄存器"P1"的預測位;   
  開始對指令2解碼,設定預測寄存器"P2"的預測位;   
  當I等於0時,寄存器"P1"為真(1),寄存器"P2"為假(0);   
  執行所有預測位為真值的指令;   
  Merced沒有跳躍,它一開始就執行所有的分支指令,它具有64個分支預測寄存器,可以被設為真或假,而每個指令中的6位被分配到單獨一個預測寄存器中。就上例來說,如果指令1指派給預測寄存器1,預測位被設為:000001。當變量I 等於0時,預測寄存器1被設定為"真",只有那些指向預測寄存器為"真"的指令結果才會被執行。   
  由於所有的分支都能並行執行,Merced所花的時間同只執行單個分支的時間是相同的。其次,你不會再冒預測出錯的風險;第三,由於CPU不再跳躍執行, 它不會把程序代碼分成小塊。也就是說,稍前和稍後的程序代碼可以打包。Merced 能夠一起將它們發佈,增大並行工作量。這些可以使EPIC CPU避免通常CPU所出現的分支預測40%的出錯情況,從而使性能提高10%~15%,特別是在整數代碼部分。   
  (3)投機裝載   
  你還記得我們上次所說的3DNow!和SSE的預取指令嗎?它可以使CPU把一個確定的指令在需要前的數十個週期放到一級指令Cache中。同此相對應,投機裝載是把所需數據提前數十個週期放到一級數據Cache中。這樣就可避免Cache未命中情況的發生,如此一來,較慢的內存訪問就不再是一個大問題,因為,CPU幾乎不再訪問內存,它總是可以在一級Cache中找到它需要的東西。   
  三、小結   
  IA-64確實是為提高速度而設計的,使用IA-64指令可以製造一個具有比今天的X86 CPU更多執行單元的CPU,它比X86 CPU能進行多得多的並行處理工作。那麼,Merced會在高端市場扼殺其競爭對手嗎?它的設計完美無缺嗎?我們將拭目以待
abc003 wrote:
ARM官方的資料是 A72和A57相比 Die Size大小縮小了這導致製造成本和發熱也降低了


我這聽到的消息是14/16nm A72雖然沒14nm A57那麼熱,但還是熱;4核放入手機還是無法長時間跑不降頻。貓鼬搭14nm會不會就沒問題,我個人還是非常存疑。
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!