ZenFone 3 三代將採用Atom X7 Z8700處理器,效能將達到Galaxy S6的水平

散彈槍 wrote:
轉貼別棟的文章,如...(恕刪)

又開始在鬼打牆搞不清楚重點了英特爾的cpu在效能方面根本沒有問題,而英特爾的工藝製程目前雖然被三星和台積電逼近但是還算是有小幅度的領先,問題根本就是出在google和蘋果不買英特爾的單啦,傻子都看能看出來安卓和ios一直和arm在做深度的合作,這樣的劣勢你還覺得英特爾會有下個黃金10年,說實話在英特爾的老搭檔微軟在手機市場扳倒google和蘋果以前英特爾都不會有黃金10年的啦,話說今年都2015年了真的還有人覺得微軟可以在手機市場可以後來居上嗎
intel如果出一個可以發揮自己晶片效能的行動作業系統.而且要能佔有市場分量.才有機會翻身吧.要不然只能打價格戰.畢竟PC市場已經沒有成長動能
dohan8850 wrote:
intel如果出一...(恕刪)

同意啊~除非英特爾自己能搞出來一個移動作業系統能幹掉google和蘋果,不然它在手機市場是根本不會有機會的,因為手機市場的系統一哥和二哥擺明了就是挺arm架構,這就像是你的產品好但是沒有主要通路願意販售你的產品一樣,這樣的情況你的市占率是沒辦法提高的,而英特爾的老本行pc不只是沒有成長動能而已,說實話pc市場根本就是在負成長的狀態好幾年了......
散彈槍 wrote:
轉貼別棟的文章,如...(恕刪)


atom X7 X5 的跑分我在一樓有貼出來

工程機來看跑分大約是GB3只有單核900 多核3000 但是工程機降了時脈

當他以2.4GHz單核1400 多核4500左右 跟三星的處理器基本上差不多

但是時間上intel沒追上 因為差了半年多 因為今年年底會出A72

很多次都是英特爾剛宣布處理器都比當下的其艦手機性能略強一些 但是等到他真正推出的時候都失去時間優勢已經落後一代了

就好比當Z2580剛出的時後可以打到 當時的S600 當他推出別家已經出S801了.......

X5 X7 到時後的對手會是S815 S820的自主架構TS2 和三星A72+A53大小核 還有就是頻果A9
補充名詞解釋 幫助你看懂以下文章

OoO =亂序執行架構 性能進一步的提高可以通過指令的執行順序與在程序代碼中出現的順序不同來提高,這就是亂序執行。
流水線技術 性能可以通過同時執行一系列指令中的不同子步驟來提高(這就是流水線) WLIW =超長指令字
安騰就是採用WLIW把流水線做得很長 可惜後來英特爾失敗了

超純量處理器 = 文中常常說的幾發射指的是,完全的並行執行多個處理器指令。只就是說有好幾條管線

現代的處理器都同時使用到3種方法來提升處理器性能

----------------
溯源Tegra K1的變革 從全美達到安騰再到丹佛

溯源Tegra K1的變革 從全美達到安騰再到丹佛

分類: 新型微結構評估
【本文已刊登於《微型計算機》2014年10月上期】

導語:一年一度的半導體工業界盛會Hotchips於近日召開,備受關注的NVIDIA-丹佛計划拳頭產品Tegra K1 64位版本在大會上首次披露其微結構設計的信息,相當激進的七路超標量設計,以往的主流處理器上從未出現過的動態二進制翻譯+動態剖析器,不同尋常的指令緩存結構,這一切將Tegra K1推上浪潮之巔 —— 它的變革跨越之大,幾乎完全拋棄了在微處理器市場上早已佔據統治地位的硬件主導亂序執行機制,令十餘年時間以來主流處理器微結構框架以內所做的種種小幅調優都黯然失色。如此銳意進取的新結構到底從何而來,我們又該如何期待它的表現?本文將從梳理Tegra K1的歷史背景入手,帶領讀者們一探究竟。

二進制翻譯:打破指令集兼容屏障

2006年,NVIDIA低調收購了一家名為Stexar的創業公司[1],這家公司截止被收購時創立尚僅一年,可以說是立足未穩,但是NVIDIA看中的並非是Stexar尚未顯山露水的經營業績,而是這家公司的核心團隊:Stexar的CEO是曾為Intel工作22年之久,從Pentium Pro直至Pentium 4時代長期管理開發工作的Randy Steck,工程團隊中據傳還有一批來自Intel的好手,其中包括Pentium 4的主要設計者之一Darrell Boggs。

溯源Tegra K1的变革 从全美达到安腾再到丹佛
圖 1 NVIDIA CEO黃仁勳與他招入麾下的兩位前Intel工程師Gary Brown(左),Darrell Boggs(右),這兩位工程師是Tegra K1芯片的兩位主要貢獻人。圖片來自這裡。

這一批有生力量加盟NVIDIA不免讓人浮想聯翩,儘管NVIDIA在這次收購上保持了低調,但是被激起好奇心的國內外媒體都對這次收購給予了許多關注,有許多人推測,長期以來倚重圖形處理業務的NVIDIA這次將一眾處理器設計人才收入麾下,是發出了準備自行開發處理器的信號。加之NVIDIA挑中的這批人身上有難以磨滅的Intel烙印,因此坊間關於NVIDIA打算入主x86的消息不脛而走[2]。

新處理器的開發,必將面臨指令集的選擇問題。06年的移動手持設備還沒有享受到今天這般的全民狂熱,當時的處理器市場上ARM與x86劃江而治的格局也沒有今天這麼明晰,從高性能計算到個人電腦,x86都是鐵桶一般的事實標準,如果採用x86之外的其他指令集或者基於自己定義的指令集設計全新處理器,就意味著從操作系統到編譯器以及開發工具鏈,都需要重新構建,更麻煩的是還得說服公司外的廣大軟件開發者跟進,這就幾乎變成了一項不可能完成的任務。當年Intel和HP兩大巨頭聯手主推基於新指令集的安騰遭遇慘敗,其中一部分原因就在於此。設計新的處理器難,在新的處理器上培養起一套生態系統則是難上加難。所以擺在NVIDIA面前的可供選擇的指令集確實不多,從這點上來說,當NVIDIA收購Stexar前後時爆出的種種入主x86的傳聞也不算是完全無根無據。

而嘗試進入x86陣營則必然遭遇Intel和AMD聯手經營多年的專利壁壘的阻擊,如果沒有x86指令集授權又硬要兼容x86的話,擺在NVIDIA面前的最可行選項,就是二進制翻譯。所謂二進制翻譯,就是將一種指令集下的代碼用另外一種指令集表示出來,例如x86指令集中的MOV指令允許訪問內存,在ARM指令集上就要翻譯成對應的LDR類指令等。二進制翻譯技術的存在使得指令集之間的天塹被打破,用MIPS這種較為開放的指令集來翻譯執行x86也成為可能,這意味著NVIDIA這樣位於x86壁壘之外的公司理論上也可以設計自己的處理器進入覆蓋面廣闊的x86市場與Intel和AMD競爭,如果二進制翻譯的封裝足夠好,還可以做到對上層軟件開發者透明,只需要極小的改動或者完全不需要改動就能把應用程序遷移到新的生態系統中。

逝去的先驅:全美達「漂流者」

使用二進制翻譯兼容其他指令集這一做法,早在NVIDIA收購Stexar之前,就有一些企業和學術研究機構分別做出了嘗試,其中有多少人曾經嘗試過針對x86的二進制翻譯已不可考,但幸運的是,直到今天,這些試圖另闢蹊徑的項目中仍有一個被後人反覆提及:一家勇敢無畏,值得後世銘記的創業公司曾將x86的全系統級二進制翻譯付諸現實,在缺乏資金支持又受到Intel持續訴訟重壓的情況下推廣了安騰以外的一支截然不同的VLIW微結構派系。這家公司的名字叫做全美達(Transmeta),第一代芯片產品被它的締造者們命名為「漂流者」(Crusoe),也就是英國著名作家丹尼爾·笛福的不朽名著《魯濱遜漂流記》英文原名」Robinson Crusoe」的第二個單詞。

溯源Tegra K1的变革 从全美达到安腾再到丹佛

圖 2 全美達「漂流者」核心

為x86這樣一個定義混亂滿是補丁的指令集做一個維持精確異常的全系統級二進制翻譯,光是保證功能正確性就已經殊為不易,而全美達還要回應一些針對二進制翻譯天生性能劣勢的質疑,處境之艱險與荒島求生的魯濱遜確實有幾分相似。

二進制翻譯從實現方式上來說主要分為兩大派系,一派是靜態二進制翻譯,也就是在程序執行前一次性將所有指令全部翻譯好,再開始執行,另一派是動態二進制翻譯,主張執行一條翻譯一條,翻譯過程與執行過程穿插進行。顯然,翻譯指令的過程是永遠無法完全避免的一層性能開銷,是永遠烙在二進制翻譯技術身上的原罪。兩害相權取其輕,乍看之下似乎是靜態二進制翻譯性能更好,一次翻譯便可終生無憂,處理器不必在代碼執行過程中反覆喚起翻譯器來解釋自己看不懂的指令,而動態二進制翻譯則不然,反覆喚起翻譯器引入的切換開銷暫且不提,每一次碰到重複指令都得重複翻譯,這是動態二進制翻譯的一大硬傷,為了讓動態二進制翻譯的性能逼近靜態二進制翻譯,一種通行的做法是引入代碼緩存(code cache),將經常使用到的翻譯後指令保存在緩存當中,以後再碰到的時候就不用喚起翻譯器來重新進行翻譯了。代碼緩存的加入與其他優化一起,令動態二進制翻譯的翻譯性能可以與靜態二進制翻譯有一拼之力,到1995年前後,動態二進制翻譯執行的速度已經可以達到原生代碼執行速度的三分之一,靜態二進制翻譯則可以達到原生代碼執行速度的二分之一[3],而全美達「漂流者」以及後繼產品的出現,讓二進制翻譯兩大派系的傳統站位徹底掉了個個兒,動態二進制翻譯的性能開始反超傳統上被認為性能更優的靜態二進制翻譯,這其中的兩大關鍵技術,就是動態剖析(Profiling)與多層次優化。

反超籌碼:動態剖析 + 多層次優化

動態二進制翻譯器扮演的角色本質上是一個編譯器,不僅要把指令翻譯成底層機器能識別的形式,還得做傳統的編譯器必做的一些編譯優化,而有的編譯優化流程相當複雜,導致翻譯器跑了幾千條指令才能向後輸出一條翻譯指令,這個開銷大得完全無法接受。因此全美達「漂流者」的二進制翻譯器引入了多層次優化,根據代碼運行頻度的高低,可以選擇優化較淺但是翻譯速度較快的流程,亦或者選擇優化較深但是翻譯速度較慢的流程,這是在代碼緩存以外的另一項幫助大幅降低翻譯開銷的技術[3]。但是無論翻譯優化如何分層,都只是相當於節流而無法開源,分層再細緻也只是能夠逐漸逼近靜態翻譯的性能,助力動態二進制翻譯徹底完成反超的,更應該歸功於動態剖析。

傳統的編譯器優化,需要編譯器在代碼運行前就提前猜測一些代碼中可能出現的特徵信息,例如分支的走向,代碼塊會不會觸發異常等等,但是巧婦難為無米之炊,這些特徵信息往往需要把代碼實地跑過一遍才能知道,提前猜測在很多時候只能是盲人摸象。在90年代中期,編譯器在SPECint測試集上提前猜測分支走向的準確率僅有75%左右,落後同期的硬件運行時預測器20%上下。為了讓編譯器獲取到這些信息,一個直觀的做法是,讓程序實地試跑,編譯器在一旁觀察它的行為特徵,等到試跑結束,編譯器已然胸有成竹。最激進的一些編譯器優化往往需要試跑的介入才能有效完成,這個過程被通稱為剖析。儘管剖析具備更好的性能優化潛力,但是這項技術長期被束之高閣,因為程序的運行也需要人來給定運行所需的輸入數據,而大部分開發者並不願意接受這麼麻煩的編譯流程,大家想要的只是一次無需干涉的自動化編譯,然後上線部署。退一步來說,就算程序員們願意給一次輸入,編譯器也不會滿足,因為代碼的運行時特徵與輸入數據相關,不同的輸入數據可以導致代碼表露出不同特徵,為了實現較高覆蓋率,程序員們需要給定多次輸入進行多次試跑才能達到比較好的效果,這一下可就讓軟件開發者社區徹底撂挑子了,而編譯器又不能自己推斷出每個程序需要的數據輸入是什麼樣子,於是剖析在開發實踐中被冷落也就情有可原了。除此之外,剖析作為編譯優化的一種,也有著每一項編譯優化技術都有的難言之隱:編譯一般只進行一次,於是優化機會只有一次。寶貴的唯一一次。

如同人在少年青年壯年老年時的身體狀況,程序執行的整個生命週期中出現多個特徵明顯不同的階段是常有的事,為每一個階段選擇最優的優化策略是最好不過的,但尷尬的是,編譯只能進行一次,經過編譯以後,二進制代碼就完全固定無法再更改[4],即便編譯器在試跑中觀察到了同一段代碼上有多種不同的特徵交替出現,也只能為其中一種情況做優化,若要動態地調優,編譯器就必須獲取這樣一種能力,在程序出現一種特徵時,收回已經編譯好的這段代碼塊,替換成功能相同但是為這種特徵專門優化過的代碼塊,然後繼續執行。這種能力在靜態翻譯和靜態編譯的框架下和痴人說夢沒有多大差別,而動態二進制翻譯則不然,執行一段代碼翻譯一段代碼的基本法則本來是它的阿喀琉斯之踵,此時卻轉變成了斬殺靜態二進制翻譯的伊蘭迪爾之劍。每一次執行代碼時動態二進制翻譯都有機會重新調起翻譯器,因此優化策略可以隨著代碼特徵不同隨意切換,這令它與一眾編譯剖析優化技術形成天作之合,靜態二進制翻譯下受限於運行時信息的缺乏而無法有效完成的優化,在動態二進制翻譯的框架下全部成為可能,而動態二進制翻譯與剖析的結合所形成的動態剖析技術還自然而然地順手解決了剖析優化需要程序輸入的難題!

溯源Tegra K1的变革 从全美达到安腾再到丹佛
圖 3 全美達「漂流者」的第二代Efficeon的表現,超越定位區間相同的Intel移動處理器。

這個一箭雙鵰令人拍案叫絕的idea的成形是否出自全美達「漂流者」的獨立工作,現在已經難以驗證,全美達公司掙扎幾年之後終究未能達到外界預期,被Novafora公司收購。回顧這段歷史時我們唯一確信的,是這個idea的力量與其他設計考量一起,令全美達這位先驅者走向了一條獨一無二的軟硬件協同設計道路。為了進一步掙脫編譯時優化的桎梏並提高二進制翻譯性能,全美達從一開始就為「漂流者」選擇了超長指令字(VLIW)結構。這是一條與主流微結構平行,經歷了多年的研究和工業實踐之後在通用處理器市場上仍未收穫廣泛認可的結構,為什麼全美達會青睞VLIW,VLIW又為何在通用處理器市場上缺乏建樹?

失敗的挑戰者 : VLIW

縱觀Intel,IBM,AMD,ARM,以及曾經的DEC Alpha,MIPS等各大芯片巨頭,他們所推出的現代高性能處理器,幾乎全部是基於上世紀60年代CDC 6600的記分板算法與IBM 360/91的Tomasulo算法發展起來的框架所搭建,硬件控制下的分支預測—取指令—解碼指令—寄存器重命名—指令分派/亂序發射—重排序緩衝區—順序回退,這一套框架儼然鐵通江山,在長達近三十年的時間裡面竟然沒有發生一次顛覆性的變革,這從側面說明了硬件主導的多發射亂序執行框架的性能優勢已經相當穩固,同時也說明其他派系的微結構例如數據流結構等,在兼容性、開發/遷移難度、絕對性能,絕對功耗乃至性能功耗比等指標中存在至少一個的短板,使得現今的硬件亂序多發射框架得以逐步發展直至完全定形。

溯源Tegra K1的变革 从全美达到安腾再到丹佛
圖 4 Itanium 2 徽標。這顆CPU曾被寄望為未來之星。

但在這三十年時間裡,硬件亂序多發射框架的發展也並非一帆風順,迄今為止聲勢最大的挑戰者大概是Intel和HP聯手推出的Itanium。
Itanium的主要設計出發點之一是,硬件控制下的亂序多發射指令調度非常複雜而且功耗較高,如果能把主要調度工作交給軟件在編譯時解決,依靠編譯器來發掘出同樣多的指令級並行度,硬件的設計上就能簡化許多,甚至完全卸下調度負擔,從而降低設計複雜度和功耗。與它基本同期誕生的全美達「漂流者」採用VLIW的原因也大致如此,只是全美達在軟硬件協同設計,特別是動態剖析上考慮得比Intel更遠一層。由於概念相對新穎,而且背後站著Intel與HP兩大靠山,Itanium的首輪進攻聲勢浩大,Intel直接為Itanium所使用的指令集起名IA64,寄望於用這個全新的芯片擊敗AMD等競爭對手,確立64位指令集的事實標準,業界著名市場調研機構IDC也對Itanium期望甚高,豪言Itanium服務器將有380億美元的銷售額。

溯源Tegra K1的变革 从全美达到安腾再到丹佛
圖 5 Itanium服務器實際銷售額(紅線)與歷年的銷售預期對比,圖片來自維基百科

然而第一代Itanium問世後,其實際表現令業界大跌眼鏡,性能相比同時期的Pentium 4落後幅度之大已經到了令人瞠目結舌的地步,由於Itanium的指令集與x86不兼容,只能依靠二進制翻譯執行,在某些benchmark上,二進制翻譯之後的代碼執行速度居然被石器時代的486擊敗[5]。儘管Itanium 2的性能相比前代一口氣翻了四倍,但是浮點性能仍然落後於同時期的Power5,整數性能也落後於同時期的Pentium 4,雪上加霜的是,Itanium的設計複雜度和功耗卻不降反升,隨著VLIW理念所期許的設計複雜度與功耗優勢化為泡影,IDC也越來越心虛,不得不一次又一次地調低銷售預期,最後Itanium服務器的實際銷售額尚不足初始預期值的二十分之一,幾成業界笑談。由於Itanium的孱弱,AMD用自己的64位指令集牢牢掌握了64位時代的指令集先機,Intel不得不罕有地向AMD低頭,AMD64這個名字被許多開發者採用,寫進了他們的軟件項目當中作為64位指令集的民間非正式名稱,而Intel的Itanium也寫進了鼎鼎大名的《量化研究方法》作為典型失敗案例分析。


回天乏術,「基本不可能寫出那樣的編譯器!」

公平地說,Itanium所代表的VLIW流派並非一無是處,在研究VLIW的過程中催生的一些優化策略,特別是編譯器優化方面,得到了後繼者的傳承,如果沒有Itanium和其他VLIW結構上的研究與工業實踐,人類對編譯器與軟硬件協同設計的認識和理解就不會有今天的高度。但是,Itanium的一敗塗地極大地損害了二進制翻譯與VLIW的形象,更加鞏固了硬件亂序執行的主導地位。計算機科學界的泰山北斗Donald Knuth在08年接受採訪時炮轟體系結構研究錯誤走向了多核心方向,順帶地就把Itanium踩了一腳:「基本不可能寫出那樣的編譯器!」

Donald Knuth的擔憂不無道理。Itanium微結構的設計與全美達」漂流者」一樣,受到編譯器能力的極大影響和制約,幾乎整個微結構上的細節信息都開放給了編譯器,許多地方還加上了推測性標記來幫助編譯器實現激進的推測執行來縮短與硬件亂序調度的性能差距,但饒是如此,編譯器的能力仍然不足以完全信賴,Itanium不得不加入了硬件負責控制的分支預測和寄存器重命名、記分板等部件。嚴格來說,從這一時刻開始,Itanium就不再是純VLIW結構了,而是一個糅合了VLIW與硬件亂序調度二者特徵的怪胎,在編譯調度能力跟不上的情況下強行將主要調度工作轉移給編譯器,同時不顧主頻和功耗上的倒退強行將後端執行寬度提升,最後又引入硬件調度作為補救,設計複雜度不降反升也就可以理解了。Donald Knuth的話實際上也代表著體系結構研究社區內相當一部分人的看法,相比硬件亂序調度來說,編譯調度的孱弱已經回天乏術,隨著指令級並行度研究熱潮的冷卻,這一話題關心的人越來越少,對VLIW這種由編譯主導的微結構的懷疑也就隨著時間的積澱而固化下來。在Itanium之後十年,儘管一些有關VLIW的研究項目仍在進行,但是市場上沒有任何一種主流處理器採用VLIW結構,硬件亂序多發射的執行框架已經是事實上的唯一選擇。

NVIDIA: 「微結構的未來在於動態剖析」

Itanium在主流市場上失聲之後十年,VLIW派系的微結構再也沒有向主流市場發起成建制的進攻,直到2014年初,NVIDIA在CES大展上第一次向外界透露丹佛計劃主角——Tegra K1的技術細節,業界才再次震動。PPT上的「7-way superscalar」(七路超標量)關鍵字曝光以後,一些IT評論家敏銳地意識到NVIDIA很可能使用了VLIW來實現這樣的執行寬度,隨後關於動態二進制翻譯、前全美達團隊成員介入開發的猜測也塵囂日上。

溯源Tegra K1的变革 从全美达到安腾再到丹佛
圖 6 丹佛計劃,引發許多討論的7路超標量執行

到了今年8月,從Stexar入職NVIDIA的前Intel架構師Darrell Boggs現身Hotchips大會向業界介紹Tegra K1的微結構,這些猜想才得以最終確定,只是二進制翻譯的目標指令集從x86變成了ARM。儘管PPT和宣傳文稿上並沒有明確出現VLIW的字樣,但是整體微結構框架中所使用的理念實際與我們在上文中介紹的如出一轍:動態二進制翻譯,動態剖析,編譯控制的亂序執行(VLIW),並且其核心創新動態代碼調優技術身上能看見一些當年全美達「漂流者」的影子。由於軟件調度的優勢,在VLIW上做到七路超標量根本不稀奇(Itanium曾做到12路),對於Tegra K1來說,意義最大的並不在於執行寬度。Itanium在主流市場上失聲十年之後,NVIDIA選擇讓Tegra K1再度以VLIW + 動態二進制翻譯的面貌重回主舞台,拋棄了成熟的硬件亂序執行框架,這一選擇背後的意味才是最耐人尋味的地方。

如果不出意外,Tegra K1將會是此後NVIDIA在移動SoC上的拳頭產品,有了這個背景,Tegra K1應該會是繼Itanium之後另一個出貨量級相對較大的VLIW芯片。對於NVIDIA來說,推出這個芯片伊始,就是一場賭博,背離主流微結構已經鋪好了三十年的硬件調度路線,再度選擇了通用處理器市場上不被看好的VLIW,是不是有什麼特別的考慮?儘管通用處理器市場上VLIW遭遇慘敗,但是VLIW的設計理念在嵌入式低功耗市場上卻受到青睞,簡化硬件設計降低功耗,由軟件來發掘指令級並行度,剛好與嵌入式低功耗市場的需求不謀而合。加上動態二進制翻譯層的介入,傳統VLIW所面臨的編譯尷尬也得到瞭解決,底層硬件結構更新以後,只需要更新翻譯器這一層軟件即可,可以通過打補丁之類的方式實現,不再需要對所有程序全部重新編譯,就能享受到新結構帶來的好處。

溯源Tegra K1的变革 从全美达到安腾再到丹佛圖 7 動態翻譯與動態剖析在剛開始執行時帶來了較大開銷(非淺綠色部分),但是隨著編譯動態調優的逐步深入,性能開始逐漸逼近理想值。

截止目前基於這種全新結構Tegra K1的機型還未量產上市,因此性能方面的測評還為時尚早,新的動態二進制翻譯器會引入多大的性能開銷,Tegra K1的底層硬件如何與動態剖析器進行軟硬件協同設計,動態剖析器收集了哪些程序特徵信息,做出了哪些優化,實際表現是否會如NVIDIA在PPT上宣稱的那麼好,仍是未知數。但就NVIDIA脫離成熟道路而勇敢選擇VLIW+動態二進制翻譯,將動態剖析大膽引入主流微結構這一做法來說,是非常值得讚揚和鼓勵的。如果Tegra K1表現給力,它將有機會重新改寫教科書上對VLIW派系的評價,重新定義一種新的微結構發展方向,從這個角度上來說,Tegra K1芯片的設計決策所關係到東西遠不止NVIDIA在移動SoC市場上的盈利與勝敗,從更長遠的部分來說,它也代表著沉寂已久的VLIW派系再次對硬件亂序執行的傳統框架發起一輪新的衝擊。

希望幸運女神這一回站在Tegra K1一邊。


有人問既然 VLIW 的安騰和全美達都失敗了,那為什麼還要再次挑戰這個看似毫無優勢的設計方向呢?我的看法如下:

相較於 OoO,VLIW 的硬件更為簡單,更多的面積可以用來設計更寬的架構和更大的緩存,或者索性為 SoC 中的 GPU (對 NVIDIA 來說尤為重要)、Accelerator 換取更大的空間。
相較於 OoO,VLIW 在 Perf/Watt 上更有優勢。(見表4:http://www.lanl.gov/radiant/pubs/sss/sc2002-sss.pdf)

換句話說, Denver 的架構幾乎就是為了移動設備而生的。
10年前連英特爾自己都不相信X86 因此誕生了安藤

就是迫於市場因素無奈接受了他

注意看底下藍字



_------------------—---
2006-07-24發表


逐漸迎向曙光的Itanium
5年來,Itanium未達成外界所賦予不切實際的期望,但再長的隧道終究有其盡頭,事實上,歷代Itanium處理器與伺服器並非一團糟,雖然飽受缺乏應用程式與延期之苦,其效能表現、低耗電、可靠性和延展性卻遠超過英特爾原先的保證。

Itanium的危機與轉機
回顧Itanium的危機與轉機,五年來的荊棘之路,我們將進一步瞭解進入高階伺服器市場的高門檻,與推動新架構的高風險

x86真能無所不在?
AMD負責K5處理器設計的總工程師Mike Johnson,曾在1994年講過一句被後人經常引用的名言:「x86不只複雜,它根本毫無道理可尋。X86的複雜性並非不可克服......x86最大的弱點是缺乏足夠的暫存器與難以處理的複雜定址模式」,一語道破最普及的指令集架構,實際上卻充滿缺陷的設計。

回顧Itanium發展史
環顧處理器發展史,很難找到像IA-64指令集和Itanium處理器一樣,被無數人前仆後繼唱衰,還視為「政治正確」,有人稍微提出正面的看法,就被抹黑成「英特爾100億美元行銷經費的成果」。

英特爾前院士驚爆Itanium開發內幕
英特爾前院士Robert Colwell,今年初發表回憶錄,我們就從最後一章的附錄中,以同處於英特爾Oregon研發部門與P6計畫領導人的角度,檢視Itanium的開發過程、英特爾高層的樂觀期待、英特爾與HP不盡理想的合作關係,以及造成的後遺症。

簡介IA-64指令集架構
毫無疑問的,Itanium最重要的特色,就是其「語言」:IA-64指令集,源自1980年代末期HP因併購Cydrome而進行的VLIW PA-RISC計畫,也是Itanium技術優勢的根源。現在我們就來看看,IA-64指令集究竟有何過人之處。逐漸迎向曙光的Itanium

2001年5月31號,半導體巨人英特爾寄以厚望、預料即將征服RISC與大型主機市場的首款IA-64處理器-Itanium-終於站上高階伺服器的舞臺。英特爾也一口氣公布氣勢磅礡、延續至2005年與90nm製程的巨大未來時程表,企圖心之強,不言可喻。


在進軍高階伺服器的背後,更隱藏了一個更大的雄圖:毀滅英特爾一手創造的歷史包袱80x86,一統伺服器與個人電腦的指令集架構。
當時就有不少人感覺到,有如納粹德國入侵蘇聯宣稱「拯救西方文明免於共產主義侵略,實乃德國人民的歷史使命」,要消滅x86勢必付出重大犧牲,只是沒人預料到,災情竟然慘重到空前絕後的程度。

RISC的凋零激發英特爾的野心
毫無疑問的,從1960年代的CDC6600萌芽,1975年John Cocke領導的IBM 801計畫逐漸成型,繼David Patterson(Berkeley的RISC I)和John Hennessy(Stanford的MIPS)兩位RISC(Reduced Instruction Set Computer,精簡指令集架構)先驅,在1980年代以雨後春筍之勢蓬勃發展的RISC處理器,是執行Unix作業系統的高階伺服器,不可或缺的心臟。RISC一詞,也有別於CISC的x86,等同於「高階」、「高效能」、「高延展性」與「高可靠度」的代名詞。


綜觀1980中期至1990年代初期,大型伺服器及工作站廠商都專注於專屬系統的研發,從指令集架構、處理器、Unix作業系統、編譯器,甚至應用軟體均一以貫之,系統平臺高度垂直整合,統統綁死在一起,例如SGI的MIPS/Irix、DEC的Alpha/OpenVMS、Sun的SPARC/Solaris、HP的PA-RISC/HP-UX和IBM的Power/AIX等。高階RISC/Unix伺服器的市場生態,與CISC大型主機幾無二致,極為封閉。

1990年代以降,持續上升的半導體製程、研發及產能建置成本,製程技術與產品設計的相依性越來越大,導致開發高階處理器所費不貲,市場基礎不大的廠商紛紛撐不下去,陸續退出了RISC處理器的生產及研發工作。另外,高階動態程式語言的普及,促成了大量獨立於指令集架構之外的作業系統及應用程式,降低了更換平臺的門檻,Linux與Java就是最好的例子。

伺服器廠商自己做不了,自然留下讓「專業處理器大廠」填補市場空隙的機會。1987年,HP評估PA-RISC處理器在1992年,將會面臨難以實作四指令發出架構的瓶頸,所以決定發展超長指令集(VLIW)化的PA-RISC指令集。剛好英特爾正替HP代工PA-RISC處理器,急於尋求進軍高階伺服器市場的契機(那時替英特爾打下低階伺服器市場的P6微架構都還沒誕生),加上英特爾自己並不看好x86指令集的未來發展空間,打算另起爐灶,是最適當的合作夥伴,兩家廠商一拍即合,在1994年進行IA-64指令集與處理器研發計畫,1996年公布「Itanium」商標,經歷諸多的技術困難與數次延宕,在2001年推出代號「Merced」的第一代Itanium處理器,半導體巨人終於一嘗宿願,站上高階伺服器的舞臺。

浮載浮沈的「Itanic」號觀光郵輪
Itanium誕生之後,除了死守SPARC的Sun與後來退出市場的IBM與Dell外,其餘伺服器大廠幾乎全面採用Itanium打造高階RISC伺服器。此外,先後併購Compaq與Tandem而同時擁有PA-RISC、Alpha和MIPS伺服器的HP,為了簡化產品線,逐步將作業系統與應用程式轉移至Itanium平臺,在未來全面取而代之,從此停止自行研發生產處理器,都向英特爾購買。

既然有了英特爾產能與研發能量的背書,一群不得不被迫升級的「肉票用戶」,以及眾多伺服器廠商的投靠,Itanium理應會是非常成功的產品,以秋風掃落葉之勢鯨吞市場,坐穩高階伺服器的「產業標準」。事與願違,初代Itanium歷經數次延宕(主因是x86相容性)、晚了近3年才上市,而且相較於市場上的RISC系統,不但效能、價格與系統可靠性都沒有明顯優勢,缺乏應用程式更是這艘大郵輪一頭撞上的大冰山,造就5年來在各媒體隨處可見的「Itanic」號傳奇故事。

理想和現實的差距有多大?IDC曾在1997年樂觀的預估,Itanium將完全征服高階伺服器市場,在2002年銷售規模可達「300億美元」-事後,2003年的高階伺服器市場總額也只不過280億美元,Itanium的實際營收僅10億美元,最初預測的「3%」。佔有近七成Itanium伺服器營收的HP,根據Gartner的報告,2005年第二季的Itanium銷售額1.08億美元,「應該被Itanium取代的」RA-RISC系統高達11億美元,相差十倍,極為諷刺。

挾著壓倒性製程技術優勢的英特爾,理論上應可比其他廠商更穩定的推出新產品,有著更大的出貨量,結果Itanium只有一張非常不穩定的時程表,預計2004出貨20萬顆處理器的目標也跳票了。去年底閃電宣布首款雙核心Itanium處理器「Montecito」延期半年,更讓廠商及客戶抓狂,促使老牌Unix廠商SGI破產的最後一根稻草。



經過半年延宕,英特爾在7/19日正式發表雙核心Itanium 2「Montecito」。

倒吃甘蔗,苦盡甘來
5年來,Itanic觀光郵輪的航程一路顛簸,未達成外界所賦予不切實際的期望,但再長的隧道終究有其盡頭,事實上,歷代Itanium處理器與伺服器並非一團糟,雖然飽受缺乏應用程式與延期之苦,其效能表現、低耗電、可靠性和延展性卻遠遠超過英特爾原先的保證。
以去年部分客戶先期導入、4月出貨的雙核心Itanium 2「Montecito」為例,其電晶體數量超過17億,數倍於現有的RISC高階處理器,標準耗電量介於104W至72W,遠低於主流的x86處理器,僅IBM Power5+的一半強,但效能反而更好。換言之,在高密度運算環境風行,追求節能蔚為風潮之際,Itanium處理器的IA-64指令集,毋需複雜的核心設計即可實作高效能的處理器,更適合打造緊緻省電的高階與高密度伺服器,IA-64這個先進指令集架構展現真正的潛力。先前HP發表新款刀鋒伺服器機箱c-Class時即表示,他們正在開發SuperDome與NonStop的刀鋒伺服器版本,理所當然的,這些都是雙核心Itanium處理器。

當初極不穩定、一再延期、讓企業用戶看不到未來的處理器時程表,在英特爾相繼承接DEC Alpha研發團隊與整個HP Itanium處理器部門後,投入更多資源推動Itanium的開發工作,效果立竿見影,時程更加穩定。由Alpha研發團隊操刀、將與Xeon共通系統架構、預定2008年上市的四核心Itanium「Tukwila」處理器,去年夏天已經首度試產晶粒(Tape Out),英特爾也著手開發下一世代的「Poulson」,兩年就推出一款新產品。從Tukwila開始,英特爾更將進一步透過CSI(Common Socket Interface)連結架構,統一Itanium與Xeon MP平臺,壓低Itanium系統的成本。



在2008年,由前DEC Alpha研發團隊操刀的4核心Itanium「Tukwila」將採用全新的系統架構,整合記憶體控制器,與Xeon MP共通平臺化。資料來源:英特爾。

微軟與Oracle加持Itanium
Itanium平臺最大的罩門-應用軟體,也獲得改善。姑且不論英特爾宣稱「超過8000個應用程式」究竟是不是有意義的數字,老早就該在五年前成立的Itanium解決方案聯盟(Itanium Solutions Alliance)能否發揮群策群力的效益,光軟體市場前兩大廠商,微軟與Oracle對Itanium採取日趨積極的態度,是最有力的強心針。尤其近來微軟展現進入高階伺服器市場的強烈企圖心,從更先進的伺服器作業系統、「企業級」應用軟體到大型主機換機潮所帶來的商機,無役不與。

更重要的是,對於企業來說,採用Windows伺服器最大的好處,莫過於相關人才遠比Unix平臺易尋,擁有極為完備的應用程式資源,而Itanium是唯一擁有微軟加持的RISC平臺,僅此一家,別無分號。HP也認為越來越多企業認真考慮微軟的發展性,Windows將會攻下起碼20%的Itanium市場。

熬過慘淡經營的4年後,Itanium終於在2005年第三季開花結果,根據IDC的統計,Itanium系統的全球整體營收大幅成長,分別是兩大RISC系統IBM Power與Sun SPARC的近一半。在臺灣,Itanium系統衝上Sun SPARC的1.55倍,市場龍頭IBM Power的九成,今年第一季也達到Sun的1.09倍。因長期承受泡沫經濟破滅之苦,企業普遍節約IT支出的日本,Itanium更一口氣甩開IBM和Sun,成為全球最歡迎Itanium的市場,逼著SPARC陣營的Fujitsu,也得推出Itanium伺服器PrimeQuest。

五年來爭議不斷,但已成為高階伺服器市場的要角
樹大招風的半導體巨人、過度樂觀的營收目標、企業界對RISC的迷信與偏見,結合英特爾與HP之間不盡理想的合作模式所衍生的諸多後遺症,使得Itanium一直都扮演著「北港香爐」般的角色-眾人揶揄嘲笑外加蓄意看衰的對象。英特爾也「不負眾望」,不缺給人借題發揮的材料。

但不可否認的,5年下來,事實證明Itanium的確被市場所接受,而且日漸成長,不再是昔日那個軟硬體環境五窮六絕、除指令集架構看似前瞻,其餘均一無可取的吳下阿蒙。如果企業在採購高階伺服器時,希望有多樣化的選擇,不願意被特定軟硬體廠商綁死,保留日後投奔Windows的彈性,請放下既有的成見,重新回頭檢視Itanium的歷史背景、技術特色、潛在優勢與發展軌跡,也許你將從此改變對高階伺服器的觀點及看法。文⊙劉人豪Itanium的危機與轉機

事出必有因,無風不起浪。回顧Itanium的危機與轉機,五年來的荊棘之路,我們將進一步瞭解進入高階伺服器市場的高門檻,與推動新架構的高風險。

危機1:企業對Itanium的不信任感
「很多企業與政府機關的IT部門主管過度迷信RISC這名詞,相信RISC代表最頂級的效能,因對英特爾的刻板印象,認定Itanium不是RISC,所以誤以為Itanium效能不好。」某系統整合商專案經理一語道破無數人對Itanium的誤解,從技術角度來看,IA-64是一個如假包換的RISC指令集,但英特爾與CISC一詞畫上等號,早已行之有年,至今仍難破除。

迷不迷信倒還不是重點
,他表示,對系統整合商來說,「不管黑貓白貓,客戶要的就是好貓」,採購過程中還會有種種因素,例如成本、與原廠的關係,以及解決方案,而就他的經驗和觀察,用戶普遍比較信賴RISC伺服器與Unix作業系統,畢竟更換高階系統風險太大,「沒人想當第一個白老鼠」,像HP的PA-RISC系統的營收仍高於Itanium,其因在此。更有人一針見血的表示,IBM的用戶會拒絕Itanium,原因很簡單,「IBM沒有Itanium產品」。

轉機1:選擇性最佳的RISC平臺
這世上沒有真正的「完全開放平臺」,使用相同處理器也不代表就可以輕易轉換系統到其他廠商的產品上,宣揚「開放 vs. 封閉」十字軍東征般的激情口號更是毫無營養的口水,不過Itanium仍是廠商最多、選擇性最佳的RISC平臺,這點倒是毋庸置疑。

危機2 :對英特爾的偏見
外界對英特爾「僅生產個人電腦與低階伺服器處理器」的刻板印象讓企業裹足不前。「客戶問:用英特爾處理器打造出來的伺服器,憑什麼賣這麼貴?」臺灣Fujitsu產品經理張仲秋分析企業面對「Intel Inside」伺服器時,抱持的成見與心態,這也是英特爾進軍高階伺服器市場的心理障礙。

偏見是一回事,在多核心處理器確為趨勢,軟體授權走向按實體處理器數目計價之後,英特爾遲遲無法推出雙核心Itanium處理器,就成為成本上的大弱點,尤其當遭遇像IBM這種技術實力雄厚、不惜血本都要維持效能領先的競爭對手,因為需要安裝兩倍以上的處理器才能抗衡IBM的Power系統,代表兩倍以上的軟體價格,在「效能過剩」的呼聲背後,經常被忽略的成本。

不需要頂級效能與高可靠性,又長期使用x86應用程式的企業,直接採用雙核心Xeon與Opteron,還省事許多。英特爾千呼萬喚始出來的雙核心Itanium 2「Montecito」暫時紓解燃眉之急,只是競爭對手並不因此停下腳步。IBM預定今年內將發表的Power6處理器,採取5GHz以上的超高時脈架構,號稱將有「Power5的四倍效能」-Power5目前還是地球上最強的伺服器處理器,而四核心Itanium上市卻是2008年的事情,這場爭奪效能王者的戰爭還有得打。

轉機2 :英特爾研發能量的後盾
也許「僅生產個人電腦與低階伺服器處理器」是一種偏見,但反過來說,身為最大的半導體與處理器廠商,英特爾享有壓倒性的研發能量,而且製程與產能的投資早已被龐大的個人電腦處理器出貨量吸收了。

此外,優異的效能應該是選擇Itanium的理由中,最著無庸議者,Montecito正式推出後(過去一年已經不少用戶導入),Itanium單一核心效能優異、卻無雙核心版本的弱點,也從此煙消雲散。基本上,從Power4和Itanium 2出現後,僅剩IBM和英特爾兩家公司具備爭奪高階處理器效能桂冠的資格,從SPEC CPU 2000到TPC-C之類的效能指標,都可以看到極為激烈的軍備競賽。我們有充分的理由相信,挾著製程與指令集架構的雙重優勢,Itanium依舊將是效能頂尖的產品。

危機3 :缺乏明確的未來
企業要評估全新的伺服器架構,首要考量莫過於「這架構能穩定發展」,以防未來不會變成孤兒。Itanium不穩定的產品時程表,勢必打擊企業的信心。「衰話說了一千遍,也會變成真的」,多年來無數媒體與分析師組成合唱團,前仆後繼的唱衰Itanium,更是功不可沒。近期英特爾為了提振獲利,進行組織改造,出售營運表現不佳的部門,按照「慣例」,Itanium再度被預期是首波開刀的對象(英特爾近期以6億美元售出網路處理器部門)。

但就算傳言都是空穴來風,Itanium仍註定是一個燒錢的部門,難有獲利挹注。數年來,IBM就一再表示,Power處理器的應用遍及各領域,有穩定的發展基礎,而Itanium除了規模有限的高階伺服器市場外,沒有業外收入。英特爾願意當散財童子到何時,沒人敢打包票,雖然當初Itanium解決方案聯盟成立看來是「1400億美元的商機,先燒個100億美元都划算」。

轉機3 :Itanium能賣給誰?
假設英特爾希望自己在企業用戶與伺服器廠商的信用徹底破產,不打伺服器市場的腦筋,大可以把Itanium賣掉。問題是:要賣給誰?哪家廠商有能力養活一條高階處理器產品線?更罔論門檻極高的製程技術。臺灣Fujitsu產品經理張仲秋就直言,英特爾真的賣掉Itanium部門,Itanium解決方案聯盟就等於宣布解體了,怎麼想,機率都不高,他也不認為有任何廠商有能力承接,起碼不包括Fujitsu。

危機4 :最佳化應用程式不足
Itanium平臺上的「8000個應用程式」,到底有多少是真正跑得快又跑得好,可充分發揮IA-64指令集特長者,絕對是一個問號,這是全新指令集都會面對的問題。如果企業自行撰寫應用程式,重新最佳化恐怕免不了。菱光電子資訊室副理洪良宏回憶起當年評估時,英特爾還勞師動眾推銷自己的編譯器。

此外,英特爾總是宣稱相較於「封閉」的RISC與大型主機,Itanium是「開放」平臺,企業不再是單一廠商的肉票,真是如此嗎?基於歷史因素,HP佔了近70%的Itanium營收,超過80%的Itanium伺服器使用HP-UX,處理器架構統一了,但Linux與Windows以外的專屬Unix,多半因系統架構相異,無法相容其他廠牌的產品,只要企業被特定應用程式綁死,「開放平臺」根本毫無意義。

轉機4 :唯一支援Windows的RISC
可能很少人注意到一則新聞:根據IDC的報告,去年Windows伺服器的銷售總額首度超過Unix,成為市場上第一大的伺服器作業系統,同時越來越多的Itanium伺服器安裝Windows,甚至某些企業之所以導入Itanium,就著眼未來的Windows。

有別於一般人的刻板印象:Windows就只能作低階伺服器之用,Windows已非昔日吳下阿蒙,展現往高階應用發展的潛力,支援更強大高階功能(如系統不停機熱更新、更嚴密的系統核心保護機制、記憶體/處理器熱抽換與更大型的NUMA系統等)的Longhorn Server登場後,將大幅提昇Windows Server的競爭力。

無論你喜不喜歡微軟這家公司,對於企業來說,Windows伺服器最重要的好處,莫過於相關人才遠比Unix平臺易尋,擁有極為完備的應用程式開發平臺。此外,從SQL Server 2005開始,微軟的企業端應用程式終於真正到達了「企業級」的水準,這些都強化了Windows進軍高階伺服器的本錢。

一言以蔽之,應用皇帝大,如日後打算轉移至Windows者,Itanium是所有RISC中唯一的選擇。「夜奔敵營」的Fujitsu即表示,他們的Itanium伺服器就鎖定Windows與Linux用戶,而非Unix市場。

革命尚未成功,同志仍需努力
樹大招風的英特爾、惟恐天下不亂的唱衰媒體,企業對Itanium的陌生感,以及外界不切實際的過度期待,使得Itanium一直成為備受爭議的焦點,少人真正能放下偏見,以中立客觀的角度,檢視Itanium的真正價值。

不可否認,Itanium歷經五年一路走來,跌跌撞撞,最後走出隧道,重見曙光。很遺憾的,事實證明Itanium平臺的現況其實並不差,但很明顯的距離廠商的宣傳還有一段不小的距離。

最起碼,英特爾標榜的「開放性」與「低成本」,幾乎都被Itanium強烈的HP色彩給抵銷大半。

企業又該如何看待Itanium的未來?據了解,有些企業從不考慮Itanium,只因公司的IT主管「完全不知道有這玩意,腦袋裡只有IBM和Sun」。姑且不論毀譽參半的評價,Itanium的確替企業帶來更多樣化的產品選擇。導入與否,多了解這個已在市場站穩腳步的新興產品,有益無害。文⊙劉人豪x86真能無所不在?

所謂的「計算機結構(Computer Architecture)」,是由IBM在1964年創造給S/360大型主機用的名詞,用來表示「程式設計者可以看到的指令集(Instruction Set)」,指令集如同「電腦的語言」,指令集架構相同的不同電腦可以執行相同的軟體,像英特爾和AMD的x86處理器都可以執行由x86指令集所撰寫出來的程式碼。
因回朔相容之故,指令集架構的良窳和新增指令的方式,深深影響著處理器與電腦整體系統架構的後繼發展。如何針對不同的需求,設計出可長可久,利於實作產品,又兼備導入新技術彈性的指令集,是計算機結構教科書的作者念茲在茲的議題。但是,十多年來這些計算機組織結構教科書中的標準錯誤示範-x86指令集,卻長期支配個人電腦與低階伺服器市場。

x86先天不良,後天失調的原罪
AMD負責K5處理器設計的總工程師Mike Johnson,曾在1994年講過一句被後人經常引用的名言:「x86不只複雜,它根本毫無道理可尋。X86的複雜性並非不可克服......x86最大的弱點是缺乏足夠的暫存器與難以處理的複雜定址模式」,一語道破最普及的指令集架構,實際上卻充滿缺陷的設計。

為了彌補缺陷,新型x86處理器都普遍導入了大量加速機制,暫存器更名(Register Renaming)減輕了暫存器不足的影響,大型化快取記憶體彌補了x86指令集記憶體存取密集(Memory Intensive)的行為模式,而所謂「將複雜的CISC指令轉譯為數個簡單的RISC微指令」更被視為拯救x86的「仙丹良藥」。

但這些解決問題了嗎?其實不然。指令集編碼長度不一、格式混亂與定址模式複雜,影響的並非僅限於指令解碼器及指令擷取單元。設計一顆處理器,最困難的部分是產生控制訊號的控制單元,特別是中斷(Interrupt)與例外(Exception)處理機制,例如系統外部周邊單元,藉由產生中斷讓處理器先執行輸出入動作,或者是發生算術溢位時,讓處理器產生例外,再讓作業系統的設陷(Trap)機制取得處理器控制權。發生中斷或例外之類的事件,處理器都必須事先儲存執行狀態,以確保結束後可以恢復正常的程式流程。

換言之,假如今天一個指令集架構,指令編碼長度從1到17位元組不等,定址模式極為複雜,運算元同時包含記憶體與暫存器,該指令集的控制單元就非常難設計,更罔論「追求高效能」。歷史上成功的x86處理器,清一色皆有漫長的開發時程與天文數字般的研發成本,其因在此。

指令集架構的複雜性直接影響可靠性技術的導入度
所謂的「高階伺服器」並不是處理器數量多就可了事,處理器與系統架構所需的可靠性功能(RAS,Reliability/Availability/Serviceability)才是重點,如此才能確保系統的穩定度,越高階的伺服器越沒有停止服務的本錢,這時指令集架構越單純、越易於設計製造,就有更多的空間去實作RAS機制,反之亦同。



RISC指令集對高階伺服器最重要的價值,就是利於設計與製造,便於導入更完整的系統RAS功能。資料來源:Fujitsu。

像標榜「和大型主機同等級RAS」的Fujitsu SPARC64系列處理器,整顆處理器的所有電路均受到ECC/Parity保護,超過90%的面積可承受單位元錯誤,兼具指令執行錯誤重試功能,這都是任何一顆x86處理器所遠遠不及的能力。臺灣Fujitsu系統工程師吳明宗即表示,「指令集換成x86,幾乎不可能做到」,IBM和Sun也保持相同的觀點。值得一提的是,Fujitsu內負責研發SPARC64的人數,僅有三百人,隨便一顆x86處理器都遠超過這個數字,以Pentium 4為例,英特爾就動員了5000人以上。

臺灣Sun技術副總戴碧勳表示,RISC處理器因設計簡單,自然有較大的餘裕去改進可靠度,SPARC這點凌駕Opteron,後者其實並未達到「Service Grade」的等級。「曾經有某晶圓廠用x86伺服器計算光罩模擬,算出來導線竟然少兩根,最後只好購置四套來自不同廠商的同規格伺服器,用來比對執行結果」。關於Sun剛發表的8路Opteron伺服器X4600,他也表示,其產品定位仍僅限中小企業,而一年之內Sun並沒有開發更大型Opteron伺服器的計畫,高階系統仍以SPARC處理器為主力。

市場需求更是關鍵性的因素。x86處理器之所以給人「便宜」的印象,不外乎市場規模夠大,攤平天文數字般的研發成本,這是x86藉由成本優勢站穩低階伺服器市場的基礎:個人電腦所使用的桌上型處理器和伺服器處理器採用相同的核心。但這也是一把雙面刃:x86伺服器處理器就從此受制於個人電腦,不能充分滿足高階伺服器的需要。


RISC享有經過歷史驗證的大型多路處理器架構
目前市面上唯二可以見到的大型多路x86伺服器,僅有IBM X3與Unisys ES7000,數量及歷史均無法與RISC相提並論。除了x86處理器限於市場定位,遲遲未有廠商發展大型多路x86架構外,指令集的缺陷也是一個主因。在十幾年前,當時的製程技術與設計能力都無法實作大型化快取記憶體及高效率的系統連結架構,x86特別記憶體存取密集的特性,就成為一大瓶頸。

會有人這樣想:那廠商大可以重新開始研發新的多路x86處理器架構,不就得了?問題是,高階伺服器的系統架構都需要漫長的時間來驗證改進,今天站上檯面的高階RISC伺服器,其系統架構無一不是擁有十多年的累積經驗,才證明是極為可靠的產品。IBM X3和Unisys ES7000也都奠基於大型主機的基礎,而且因市場規模不大,所費不貲,相較於高階RISC系統,並無價格優勢。

x86指令集甩不掉的歷史包袱
很多人應該還記得,多年前英特爾曾爆發震驚全球的Pentium處理器浮點臭蟲事件,讓不少人首度意識到,原來看似高深莫測的「高科技結晶」,也是有可能因設計上的失誤,導致程式執行錯誤。事實上,不分指令集,在處理器的電晶體數目動輒以上億為基本單位的今天,處理器技術規格資料中的勘誤表,發布數十、甚至上百個臭蟲,早已司空見慣。Itanium 2也累積了111個臭蟲,AMD K8家族則達155個。

有臭蟲倒還不是大問題,修正就可以了(多數處理器都提供微碼修補能力)。問題是:為了相容「利用」這些處理器臭蟲的應用程式,無法修正,那該怎麼辦?偏偏x86累積下來的應用程式又如此之多,所以才曾有人這樣開玩笑,開發一顆x86處理器,最大的挑戰是:你要如何確定它可以相容所有的舊程式?特別是早期的x86處理器,很多未定義的運算碼並沒有遮蔽掉,假設被人發現,又拿來用了,以後的處理器就只好乖乖的作進去。由此可知,對一個指令集來說,缺乏應用程式是個問題,但應用程式太多,更是一種負擔。
最有名的案例,莫過於「Bubble Bobble(泡泡龍)」這個遊戲,在486上會因計時迴圈溢出(Timing Loop Overflow)無法執行,但又在Pentium 4「復活」了。在x86的歷史上,此類看似不可思議的案例可謂不勝枚舉。尤其x86處理器經歷過太多世代,指令集從16位元、24位元、32位元疊床架屋至64位元,連帶混亂的記憶體定址模式。

另一個隨處可見的例子,很多人可以在電腦的BIOS中看到,為了相容過去8086應用程式的「A20 Gate」選項。8086處理器的定址模式,是藉由16位元的節區(Segment)位址與另一個16位元的節區內(Offset)位址,組成20位元和1MB的定址空間。在1986年,Quarterdeck與微軟的程式設計師發現,一旦打開80286/386/486的A20(第21條定址線)邏輯閘,假使將程式碼放在960kB與1024kB之間,就多出1024kB之後的一個64kB空間。簡而言之,DOS可透過特殊的設計來使用這塊多餘的64kB記憶體,就是微軟HMA(高記憶體區)與HIMEM.SYS驅動程式的由來,源自80286與更高階x86處理器的臭蟲。

問題來了,80286以後的處理器就算是8086真實模式,A20邏輯閘可能因節區和節內組成位址超過1MB而啟動,無法正常相容8086應用程式,因此IBM想到利用8042鍵盤控制器上的某訊號腳位,作為控制A20邏輯閘的開關。打開的話,就可相容8086,但不打開的話,又會因少一條定址線,讓保護模式的可定址記憶體空間少掉一半。這就是該功能的用途,導至今日的所有x86作業系統也必須保留打開該功能的程式碼。

先天架構不良的原罪,進而限制x86引進虛擬化等新技術的可能性。當初VMWare等虛擬化軟體廠商在x86上吃足苦頭,因為x86無法透過設陷機制攔截每個指令的動作,只能土法煉鋼,讓每個指令後面都接著一個中斷,代價就是犧牲效能,這到了英特爾的Vanderpool和AMD的Pacifica後才解決。當其他RISC陸續支援條件執行機制(Conditional Execution),x86卻受限幾無餘裕的指令編碼,僅能新增幾個簡單的指令。

那是不是代表,RISC指令集就沒有這些問題?答案當然是否定的,但對於同步發展處理器與作業系統的RISC/Unix廠商而言,卻容易解決。像IBM第一代的Power處理器也曾留下不少不合時宜、後來在PowerPC取消的指令,Power4以後的系統,只要執行到這些指令,即可透過處理器的設陷機制,呼叫AIX內的模擬軟體執行,毋需讓新的Power處理器繼承這些包袱,「封閉」系統的先天優勢,可見一斑。

戴碧勳坦言,一個系統的可靠度是需要軟硬體彼此高度配合,這是x86平臺的弱點。身為電腦的語言,指令集的「穩定度」也是關鍵,像SPARC V9指令集已經相當完備,數年來一直無須改版新增指令,但x86處理器廠商卻樂此不疲,從MMX、3DNow!、SSE、SSE2到SSE3,英特爾近期又增加16個SSE4指令,英特爾與AMD的新增指令集並不完全相容。同樣是虛擬化技術,英特爾的Vanterpool和AMD的Pacifica就截然不同,增加發生軟體相容性問題的機率。

臺灣Fujitsu產品經理張仲秋對此也表示,x86平臺本來就缺乏高穩定性的作業系統,又欠缺具備軟硬體整合能力的系統廠商,市場仍需要RISC處理器與Unix作業系統。

隱而不現的是,x86指令集先天的複雜性,使得實作高效能x86處理器的廠商多半都採用極為特殊的微架構(如驚世駭俗的英特爾NetBurst),效能延展性不佳,微架構的壽命也不長。但其他RISC處理器,無論IBM的Power4、Sun的UltraSPARC III和Fujitsu的SPARC64V,都是一個微架構「一路用到底」,頂多小幅改良。本來不是說RISC處理器易於設計嗎?為何如此?道理很簡單,這樣會比較穩定,避免更換微架構造成的潛在風險。

邁向未來:指令集架構將決定多核心處理器的發展潛力
在邁向多核心架構的路上,無可避免的,要縮小單一核心的晶粒面積,放棄追求高時脈的超深指令管線,進一步精簡處理器的核心複雜度。這時處理器所採用的指令集架構就扮演著舉足輕重的角色,指令集架構越易於實作與驗證,越不需要複雜的核心就可達到合理的效能,就越適合多核心處理器,導入更完善的可靠性機制與省電功能,更可縮短產品研發的時間。

這也是Sun Niagara支援4執行緒的單一處理器核心,可以簡單到僅有4萬個邏輯閘,英特爾會大費周章發展IA-64指令集與Itanium處理器,IBM想用Power取代S/360的主因。在處理器與半導體製程研發成本如火箭般一飛沖天的時代,相較於CISC,RISC指令集在這裡就佔了很大的便宜。但在沒有導入極為複雜的實作加速機制之前,x86處理器的效能表現都慘不忍睹。x86在嵌入式處理器市場沒有地位,都是RISC的天下,連英特爾的嵌入式與網路處理器產品線都是ARM指令集,而不是x86,其理至明。

更重要的是,伺服器處理器逐步走向多執行緒的省電架構,開始與桌上型處理器的需求分道揚鑣,失去龐大個人電腦市場的保護傘,x86伺服器處理器是否有足夠的市場規模,去分擔開發x86核心的高昂成本與漫長時程,仍是一個問號。

回顧今日Itanium、RISC與x86伺服器處理器的現況,即可發現,多年來眾多「先賢先烈」所預期的技術發展趨勢,似乎紛紛一語成讖。我們有充分的理由相信,x86仍將在低階伺服器與個人電腦市場扮演主角,只是要站上高階市場,完全取代RISC,依舊遍地荊棘,困難重重。也許假以時日,這並非不可能的任務-但絕對不是現在。文⊙劉人豪回顧Itanium發展史

環顧處理器發展史,很難找到像IA-64指令集和Itanium處理器一樣,被無數人前仆後繼唱衰,還視為「政治正確」,有人稍微提出正面的看法,就被抹黑成「英特爾100億美元行銷經費的成果」。

最常見的情況,一手拿著某市場分析機構的統計數字,宣揚「AMD Opteron賣得比Itanium好很多,x86萬萬歲」,另一方面又同時質疑同一家機構對Itanium的樂觀預測,是與英特爾「密切合作」的不實數據。

不過,姑且不論這些批評者是否有合理的立論基礎,對Itanium的歷史有通盤的瞭解,還純粹為反對而反對,今日Itanium樹大招風的形象,有其歷史背景,英特爾本身亦難辭其咎。

不切實際的期望:順利取代x86
說英特爾發展「IA-64」,一開始不抱持日後取代「IA-32」x86指令集的動機,那絕對是騙人的。事實上,第一代Itanium處理器出師不利,因延期失去市場先機,Andy Grove時代的英特爾高層過度重視Itanium對x86的硬體相容性,要負起最大的責任。

根據統計,第一代Itanium「Merced」超過30%的核心電晶體數目花在x86硬體相容性,只為了讓時脈高達800MHz的Merced,做到「介於Pentium 75MHz至200MHz」等級的x86應用程式執行效能。曾有人這樣開玩笑,英特爾為何不乾脆硬塞一個P6核心算了。

有夢最美,希望相隨。原本英特爾的如意算盤是:在1998年推出時脈600MHz的Itanium,藉由高時脈的優勢,其x86應用程式執行效能可和同時期的Pentium 2 400MHz相當,如此一來,就可以將既有的x86處理器產品線逐步轉移至全新的IA-64架構。

結果變成:一再延期的Itanium在2001年上市時,拜AMD K7的強大競爭力之所賜,x86處理器時脈都突破1GHz大關了,浪費一堆時間和成本的x86相容能力根本形同虛設。初代Itanium的效能表現也不佳,應用程式不足更是一大致命傷,兩者皆空,沒有橫掃RISC伺服器市場,取代x86的「歷史性任務」更是遙遙無期。

英特爾是到了Itanium 2才注意到硬體「硬幹」不是正本清源之道,從Montecito開始取消掉相容x86的硬體電路,完全透過IA-32EL(Execution Layer)二進位執行檔轉換器的軟體解決方案,提供x86相容能力。事後證明,成本更低,效果更好,更可保留日後支援新x86指令集的彈性。英特爾甚至預期,在2008年時,Itanium搭配IA-32EL的x86效能更可超越最高階的x86處理器,但已經來不及了。

英特爾缺乏對高階伺服器市場的認知與經驗
產品上市四年後,「終於」在去年成立Itanium解決方案聯盟。「這聯盟在四年前就成立,該有多好」恐怕是所有軟硬體廠商的共同心聲。英特爾畢竟是處理器廠商,沒有高階伺服器市場的認知與系統整合能力,這對Itanium的發展造成不利影響。就算是半導體巨人,開發高階處理器、製造大型晶片與驗證產品的經驗,也非一蹴可及。

濃厚的HP色彩,則是推廣Itanium路上的大石頭,其他廠商因擔心HP「球員兼裁判」而裹足不前。最好的例子,就是當HP完全轉移Itanium研發團隊給英特爾後,過沒多久Fujitsu的PrimeQuest就出現了,軟體廠商態度也遠比過去積極。只是五年下來,享有地利之便的HP依舊佔有大多數的Itanium用戶與市場,幾乎與HP畫上等號的Itanium平臺並不見得有多「開放」。

沒有內部競爭對手
IA-64相容處理器僅英特爾Itanium一家,別無分號,不像x86同時有英特爾和AMD兩種選擇,SPARC陣營有Sun和Fujitsu兩家廠商研發產品,最封閉的IBM相容大型主機,IBM過去起碼還有Hitachi可當對手。

換言之,沒有內部競爭對手的後遺症是難以出現更廉價的IA-64處理器,限制了市場規模與普及。我們有充分的理由相信,如果市場上出現第二家IA-64處理器廠商,市場上對Itanium的「雜音」一定會小很多(很諷刺的是,IA-64指令集很多概念都源自AMD的29000 RISC指令集,但AMD並沒有繼續發展下去,而是全力投入x86市場),但這一天有可能到來嗎?英特爾願意開放IA-64實作上的專利嗎?難如登天。

英特爾隨時脫手不玩的疑慮
近來英特爾急於提振公司獲利,加上Itanium的應用面遠不如IBM的Power,除了伺服器以外,沒有其他收益,所以不少惟恐天下不亂的媒體與分析師都預期英特爾最終會脫手Itanium部門,而IA-64的生父、Itanium市佔率最高的HP,自然就是呼聲最高的承接者,也有傳言指出,日本數家廠商企圖聯合接手Itanium,因為日本是全世界最歡迎Itanium的市場。

回過頭來,能賣給誰?假設可以出售,買主得面對製造晶片的問題,而高階處理器有著極高的製程門檻,沒有自有高階製程與產能,難有競爭能力(這也是為何Sun UltraSPARC一直積弱不振的主因)。從這個角度來看,英特爾想賣也賣不掉。但只要脫手傳言陰魂不散,勢必動搖企業對Itanium的信心。

假如歷史可以重來,還會有Itanium嗎?
如果借給英特爾時光機,知道將會得到Alpha,而且同時又享有微軟在Alpha平臺上的巨大投資與現成的x86模擬軟體FX!32,他們還會和HP一起開發IA-64指令集與Itanium處理器嗎?連英特爾自己都承認「Alpha比我們擁有的任何東西都來得好」,延續Alpha的生命會不會比較輕鬆?或者是進一步擴展P6的成果,啟動因保護IA-64而延宕十年的「Yamhill」計畫,順勢將x86 64位元化,專心推動x86 Everywhere,大概今天AMD早就不見了。

無論如何,歷史不會重來,英特爾走上一條通往高階伺服器市場的荊棘之路。也許IA-64指令集終究成功,成為高階伺服器的主流,但答案可能不是Itanium,真正的最大獲利者也不會是英特爾。時間將告訴我們最後的答案。文⊙劉人豪



溫故知新:1999年分析師對Itanium的樂觀期望

「在2002年可橫掃RISC、市場規模到達300億美元」還不是對Itanium的最樂觀預測,在1999年In-Stat/MDR在處理器論壇中,大膽預測IA-64將進入桌上市場,而且在2005年全面取代英特爾的x86處理器產品線。


英特爾前院士驚爆Itanium開發內幕

領導英特爾史上最佳x86微架構P6研發團隊的英特爾前院士Robert Colwell,今年初發表回憶錄「The Pentium Chronicles: The People, Passion, and Politics behind Intel's Landmark Chips」,我們就從最後一章的附錄中,以同處於英特爾Oregon研發部門與P6計畫領導人的角度,檢視Itanium的開發過程、英特爾高層的樂觀期待、英特爾與HP不盡理想的合作關係,以及造成的後遺症。

首先,在1994年Itanium計畫啟動時,基於保護HP商業機密的考量,英特爾建立了公司內的「防火牆」機制隔離Itanium與x86部門,阻礙了技術與意見的交流。由於Itanium是全新架構,一切都在摸索階段,少了既有x86部門累積的資料、模擬數據與經驗,導致開發過程困難重重。

其次,英特爾高層對Itanium保持過高的期待,當時他們還被告知「在1999年,x86處理器就會開始被IA-64取代」,為了保護Itanium,「x86部門不准再提到『伺服器』這個名詞」,全力推動IA-64,限制x86的發展性。Robert Colwell本人與P6團隊卻不認為在2006年前64位元有普及的可能性,而且讓x86指令集64位元化,才是超越競爭對手的捷徑。那時英特爾內部已在爭論此事。

最後,在1999年,英特爾過度樂觀的支票都跳票了,Robert Colwell直接對英特爾高層建議,將第一代Itanium「Merced」視為純粹的研究計畫,等到第二代產品再上市,「如果我們希望新指令集是為了未來25年而生,那多出一到兩年的驗證期絕對是值得的」。結果,以「我們不能接受開發不能上市的產品」為由被打回票。事後證明,一語成讖,Itanium出師不利,Merced變成一個失敗的產品,為Itanic的悲劇搭建最華麗的舞臺。簡介IA-64指令集架構

毫無疑問的,Itanium最重要的特色,就是其「語言」:IA-64指令集,源自1980年代末期HP因併購Cydrome而進行的VLIW PA-RISC計畫,也是Itanium技術優勢的根源。現在我們就來看看,IA-64指令集究竟有何過人之處。



指令集架構的優勢直接反應在耗電量與核心電晶體數目上

  雙核心Itanium 2 單核心Itanium 2 Power5+ 雙核心Xeon MP 雙核心Opteron
代碼 Montecito Madison 9M Squadron Tulsa Egypt
指令集 IA-64 IA-64 Power x86 x86
製程 90nm 130nm 90nm 65nm 90nm
晶粒面積 596 432 245 435 199
耗電量 103W 107W 160W 150W 95W
電晶體 1720M 592M 276M 1328M 233M
最高時脈 1.6GHz 1.6GHz 2.2GHz 3.4GHz 2.6GHz
L2 cache 1.25MBx2 256kB 1.92MB 1MBx2 1MBx2
L3 cache 12MBx2 9MB 外部 16MB 無
核心電晶體數目 18M 20M 35M 50M 40M

追求指令平行化
有別於RISC與VLIW,英特爾將兼具兩者之長的IA-64相關技術命名為「Explicitly Parallel Instruction-set Computing」,追求高度指令平行化的潛能。IA-64的單一指令包編碼長度為128位元,包含三個41位元長的指令與5位元的指令排列模板,後者定義了數種常用的指令順序,可簡化指令解碼。

便於編譯器最佳化
IA-64堪稱是協助編譯器最佳化機制的集大成。首先,擁有多達128個通用暫存器與128個浮點暫存器,遠超過通用/浮點分別僅32個暫存器的RISC指令集,龐大的暫存器群降低記憶體頻寬的壓力與減少程序呼叫時暫存器的資料搬移工作。

其次,為了克服分支負擔和縮短記憶體延遲,IA-64導入預測執行與預測載入機制。最後,暫存器堆疊與暫存器輪轉技術,可改善不同程序傳遞參數和迴圈攤平的效率。

IA-64的問題與缺點
雖然IA-64看似先進,卻有著程式碼體積過大的缺點,如較長的指令編碼、缺乏基底偏移載入、預測執行與預測載入增加程式碼體積,以及整數乘除法無法直接使用通用暫存器作運算元等,根據IBM估算,IA-64程式碼體積高達x86的四倍,直接反映在記憶體使用量上。

此外,IA-64的設計精神在於「毋需實作複雜的微架構,即可設計出省電高效能的處理器」,但龐大的暫存器群與執行單元數,也難以提昇處理器的時脈。

為多核心鋪路
不過瑕不掩瑜,整體而言,IA-64的確遠邁既有的RISC指令集,歷代Itanium也證實IA-64的確便於打造簡單省電又高效能的核心,核心晶粒面積平均僅有同時期x86的一半,利於未來多核心的趨勢。



兼顧RISC與VLIW之長:彈性化的指令包(Bundle)
解除暫存器不足的困擾:龐大的暫存器群

減少分支負擔:預測執行機制(Predication)
降低記憶體延遲:預測記憶體載入機制(Speculative Load)

加速程序呼叫:暫存器堆疊機制(Register Stack)
攤平程式迴圈:暫存器輪轉機制(Register Rotation)

兼顧RISC與VLIW之長:彈性化的指令包(Bundle)

VLIW(超長指令集架構)雖然具備高平行化的特性,但也缺乏日後更動處理器架構的彈性,以及日後被迫重新編譯程式碼的麻煩。IA-64並未限制指令包內的三個指令型態,透過指令編碼最後5位元所定義的常用指令排序,簡化指令編碼,不同指令序列之間也可插入判斷位元,以便於處理器判定基本區塊。





解除暫存器不足的困擾:龐大的暫存器群

暫存器不足一直都是高階語言編譯器的最痛,限制程式碼最佳化的彈性與指令平行化執行的潛力(如發生暫存器相依)。IA-64定義高達128個64位元(實際65位元)通用暫存器、128個82位元浮點暫存器、64個1位元預測條件暫存器以及8個64位元分支位址暫存器,一勞永逸的解決暫存器不足的困擾。

減少分支負擔:預測執行機制(Predication)

分支與條件判斷指令會更改指令執行的流程,縮小程式碼的基本區塊(Basic Block),限制指令平行執行的空間,但硬體分支預測機制的效果亦有其限度。IA-64指令集全面支援條件執行,將分支判斷條件寫入預測條件暫存器,編譯器即可進行最佳化排程,同時執行所有程式碼,再保留所需要的結果。





降低記憶體延遲:預測記憶體載入機制(Speculative Load)

記憶體存取延遲是處理器效能的大殺手,無論是再完善的硬體預先擷取機制和快取記憶體都無法根除這個問題。IA-64指令集的預測記憶體載入機制,允許編譯器預測後面可能需要載入的記憶體位址,先行排程,再比對ALAT(Advanced Load Address Table)的位址紀錄,以確保預測的正確性。

加速程序呼叫:暫存器堆疊機制(Register Stack)

因今日程式架構均高度模組化之故,不同程序的呼叫動作與參數傳遞會消耗大量暫存器數目,製造暫存器之間的資料搬移動作。透過暫存器堆疊機制,只要修改預先建立的暫存器框架(Register Frame)的虛擬暫存器編號,即可重疊不同程序所使用的通用暫存器,毋需搬移資料即可交換不同程序的資料。





攤平程式迴圈:暫存器輪轉機制(Register Rotation)

迴圈攤平(Loop Unrolling)是編譯器經常用到的最佳化手段,避免無謂的條件判斷與分支預測錯誤,但迴圈攤平卻會因前置(Prolouge)與結尾碼(Epilouge)而大幅增加程式碼體積。IA-64無論通用和浮點暫存器均可透過暫存器輪轉機制,直接攤平迴圈,毋需付出增加程式碼體積的代價。
本樓在談的事我並不十分了解,不過我對於用筆電去跑安兔兔倒覺得有趣。
剛剛裝了 DuOS 模擬器在 ACER ASPIRE V7 筆電上,
安兔兔跑分是55534,比 NOTE 4 高一點。



bayata wrote:
本樓在談的事我並不...(恕刪)


模擬器會損失到原來30~40%的效能

直接跑GeekBench3 就可以了
請問樓主,我想了解一下,Atom x7-Z8700與Core M 5Y10與5Y71性能上的比較。謝謝。

bayata wrote:
請問樓主,我想了解...(恕刪)


目前看來Z8700 跟上代Z3580性能差別不大從微軟的SP3平板來看

ATOM Z8700單核效能只有1100分 多核3400分

CORE M 5Y71 是單核2700 多核接近4500

還有華碩可能會在ZENFONE3棄用英特爾

這是他們自己說的
文章分享
評分
評分
複製連結
請輸入您要前往的頁數(1 ~ 8)

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