近年來,運算行動化的態勢已愈來愈明顯,Desktop PC的成長已不再,過去30年來的PC產業,僅有1985年、2000 年才有少見的出貨表現不佳,其它年皆為高度成長,然而,2011年似乎真的顯現了疲態。
反觀平板類產品氣勢如虹,智慧型手機也仍持續高度成長,目前仍有20%以上的年增率,而無論是手機或是平板,均以ARM架構晶片為主,而非x86架構。
正因為手機、平板的高度成長,使行動裝置ARM晶片技術急起直追,若將其與Desktop x86晶片相比,2000年即達1GHz運作時脈,2005年出現雙核,2006年出現四核,將此對應到ARM,ARM晶片在2009年達1GHz後,在2011年達雙核,2011年底開始到今年的2012年,四核將大幅開展。
由此可知,ARM與x86間的重大技術里程差距,從9年(突破1GHz)拉近到6年(雙核、四核)。然而,行動裝置真的有必要採用四核心嗎?採用四核心的技術評估與考量為何?本文以下對此進行討論。
《圖一 1 x86架構、ARM架構技術歷程比較 製表:陸向陽》 |
|
ARM多核心發展歷程
ARM架構晶片的真正竄起是自ARM7TDMI(ARM7系列)開始,更早之前的ARM1~6並不普及,而在7系列後也陸續開展了9系列、11系列。
11系列後ARM的指令集架構(Instruction Set Architecture;ISA)大轉變,由ARM、Thumb轉變成Thumb 2,此為ARMv7架構,過往ARM7、9、11則分別為ARMv4、5、6架構,ARM7、9、11自此被ARM歸類為經典、古典(Classic)處理器,此後改以ARMv7為主,開展出Cortex-A系列、M系列、R系列的新系統。
M系列屬成本取向的嵌入式應用微控器(MCU),期望取代多年來盛行的8051 MCU或其他8/16-bit MCU;R系列則以支援即時作業系統(RTOS)為主,若用於手機則多負責基頻(Baseband)調變解調工作;A系列則以執行應用程式為主,一般也稱應用處理器(Application Processor)。
更簡單說,M系列像MCU,R系列為執行時效性要求更嚴苛的嵌入式MCU,A系列則類似MPU、PC CPU,本文所言的雙核、四核等多核的ARM,即指A系列。
在A系列中,ARM最先釋出的為Cortex-A8核心,而後才有更低規、低階的A5核心、A7核心,或更高階的A9、A15核心,不僅A系列如此,M系列也是先有M0、M3,而後才推行M1,字母之後的數字編號為規格、等級意義,而非發表先後順序。
由於A8是A系列最早的1個核心,當初規劃時並未考慮多核心設計,爾後ARM決議加入多核設計,所以A8之後的A5、A7可支援多核心,ARM方面將此稱為MPCore(Multiple Processor Core)。同樣的,A9、A15也支援多核心,其中A5、A7、A9支援雙核、四核,A15更可到八核。
選擇A9四核或A15四核?
既然A8僅能單核,無法雙核,就更不用談及四核,而多核化是為了獲得更高的效能,因此多半往更高規的核心考慮,即A9、A15。
由於A8、A9、A15採相同指令集,因而有了齊頭比較的機會。一般而言,A8每MHz可獲得約2,000的DMIPS(Dhrystone MIPS)效能,A9則為2,500,A15為3,500。由此可知:同樣核心數、同樣運作時脈下,A9效能高於A8,A15高於A9。
然另有相關論點表示,A9與A8無異,僅在支援雙核、多核與否,A9可視為多核版的A8。不過,即便A9與A8同,A9的極限時脈也高於A8,以台積電(TSMC)的40G(40nm奈米)製程最高可至2GHz,A8約1~1.4/1.5GHz。A15的另一效能強調為:同核數、同時脈下高出A8、A9約50%能耐,即150%效能。
若將上述DMIPS效能進行單純數學性計算,一般新聞上聲稱的「雙核、2.5GHz的Cortex-A15,效能勝過5個1GHz的Cortex-A9」是成立的,即2 x 2.5 x 3,500 = 17,500,大於5 x 1 x 2,500 = 12,500。總之,A15具更高效能,A9也高於或等於A8,因此四核設計,將以A9或A15為考慮。
A15已有功耗過高顧慮
既然多核是為了追求更高效能,那為何不只考慮A15,而仍會考慮A9?
事實上,A15不單是為行動運算市場而推,ARM也期望透過A15打入過往ARM所無法進入的伺服器市場,為此ARM在A15中加入了硬體虛擬化、大型實體定指擴展延伸(Large Physical Address Extensions;LPAE)等功效。
依據ARM的規劃,1-2核、時脈1-1.5GHz的A15訴求於高階智慧型手機;2-4核、1-2GHz的A15訴求為高階數位家電(如平面電視);4核、1.5-2.5GHz的A15則訴求伺服器;8核、1.5-2.5GHz則訴求無線基礎建設(Wireless Infrastructure),更通俗的說法即無線區域網路(WLAN,如Wi-Fi)的路由器、分享器。
規劃雖如此,但規劃與實際有差異,目前手機、平板已有四核需求,如富士通(Fujitsu)在CES 2012期間揭露使用NVIDIA Tegra 3(Coretex-A9 x4)的手機Arrows,然ARM僅屬意智慧型手機使用雙核。同樣的,新創業者Calxeda以Cortex-A9為基礎推出四核的伺服器專用晶片EnergyCore ECX-1000系列,而不是使用ARM較屬意的Cortex-A15。
既然A15有考慮打入高階數位家電、伺服器、無線路由器等市場,那麼雖提升了效能,但恐怕難兼顧ARM向來自豪的低功耗,此也是仍有晶片業者考慮僅以A9來設計四核晶片,不一定要採行A15。
功耗與效能的折衷方案:big.LITTLE
不過,ARM方面似乎對此有所自知,因此提出了補強方案,稱為big.LITTLE組態配置,該組態配置允許在一個多核系統設計中,同時使用A15或A7兩種不同的核心,有別於過往Cortex-A系列的多核設計均需使用相同核心,A15與A7在big.LITTLE組態配置下可相容、協同運作,運算工作也可平順、無形地自A15轉移到A7,或自A7轉移至A15。
big.LITTLE構想的好處在於,一旦運算負荷降低時,在輕載狀況下,可以關閉A15核心,將工作轉移給A7,達到省電效果。而在尖峰重載下,則將工作轉移給A15,或是A15、A7等核心同時開啟,共同協力運算以加快工作完成。簡言之,big.LITTLE是一種以動態切換方式,達到效能、功耗兼顧的補強設計。
至此,或許會有人提出此疑問,為何選定A7,不選擇A9、A5與A15來搭配?
選定A7,在於單核A7的電路面積(功耗)僅單核A8的20%,但效能卻有單核A8的50%,是在輕量運算負荷下,每瓦效能(Per Watt Performance)較高的核心。相較來說,A9的功耗與效能已接近A15,由其擔任輕載運算,雖快速但不夠省功耗;A5則是功耗最低,但效能也低落,恐也不易與A15搭配運作。
不單ARM提出big.LITTLE方案,NVIDIA也有類似的實現技術,稱為vSMP(Variable Symmetric MultiProcessing),以Cortex-A9四核的Tegra 3而言,其實還額外配屬1個較低時脈(僅500MHz)的Cortex-A9,當運算進入離峰狀態時,會關閉四個高效能、高時脈的核心,僅用一個低時脈的A9來運作。
事實上這也類似NVIDIA過往提出的Optimus技術,即輕量繪圖運算時用整合型的低效能繪圖處理器(IGP),重度運算時改用獨立封裝運算的高效能繪圖處理器(dGPU),且動態、無形地平順切換。德州儀器(TI)也採相似作法,只是TI的高效能為Cortex-A8,低效能則由Cortex-M3負責。
為何NVIDIA選擇用五個均為A9,而TI為A8+M3?在此推測此攸關ARM的技術授權費與量產權利金,TI的其他晶片產品可能已獲得與使用M3授權,因此用在其他晶片並無大礙,但NVIDIA並無其他晶片產品需要使用低階的M3核心,因此專注使用A9反較合適。
眾多業者推出四核ARM晶片
談論技術規劃後,接著是晶片業者的實際發展進度,目前多家業者已推出或規劃上將推出四核ARM晶片,如NVIDIA已推出Tegra 3(A9 x4),並用於ASUS的Eee Pad Transformer Prime平板及Fujitsu Arrows智慧型手機上。
又如飛思卡爾(Freescale)的i.MX6系列也採A9四核設計,三星(Samsung)也將在今年推出Exynos 4412的A9四核,隨即在同年稍後時間推出Exynos 5450的A15四核。
另外,多方消息顯示,Apple的Apple A6也將是四核設計,但仍不知採行A9或A15核心,而新加坡創新未來(Creative)所屬的ZiiLabs也在ZMS-40的新晶片上採行A9四核。
進一步的,TI的新款OMAP5也計畫推行四核,高通(Qualcomm)也規劃在Snapdragon S4與更後續的系列中採行四核(Krait-MP核心、微架構),但核心為A9或A15等級仍待觀察。在製程方面,已出貨的NVIDIA Tegra 3採行TSMC 40nm技術,而Samsung無論A9四核或A15四核都將採行32nm技術,Qualcomm預計採行28nm技術。
此外,還有一些業者的動向值得留意,即Fujitsu與ST Ericsson,資料顯示Fujitsu與ST Ericsson均取得A15技術授權,此高度意味著也將發展四核晶片,推測ST Ericsson的NovaThor系列晶片,也將從現有雙核(A9)擴展延伸至四核。
《圖二 ARM核心發展歷程及多核心支援圖。(繪圖:陸向陽)》 |
|
《圖三 理論上最完美的多核效能為沿著黑虛線擴展,但實際上難以達成,但仍以紅色線的四核達350%效能,優於綠線的四核僅達200%效能。(繪圖:陸向陽)》 |
|
行動多核的考驗
透過上述歷程描述可知,ARM架構(在此指應用處理器部份,不含MCU)的技術提升與演進歷程,其實與x86架構大同小異,最初以拉高單核的時脈頻率來獲取效能,然在頻率手段至一定程度後,改以「增核」方式提升效能。
雖然都轉向多核,但x86是在頻率至極致,無法突破4GHz時(一般稱Clock Wall,指時脈撞牆),才考慮轉成多核,但ARM則是在「頻率增加一些,但連帶的功耗增加很多」的狀況下,由Per Watt Performance角度衡量下不合算,才轉向多核,所以ARM架構的晶片,其時脈頻率仍會隨製程技術進步而有若干提升,但x86架構的晶片則幾乎不提升。
不過,既然都轉成多核,則其實質效能能否釋放?考慮的技術問題點卻是相同的,首先是多核之間的傳輸是否夠快速?這考驗晶片內的連接設計架構(On-Chip Interconnect),差勁的架構可能使雙核只能發揮110%~140%的效能,良善的架構可能使雙核發揮到170%~190%的效能。
多核不僅考驗晶片內連接介面的硬體線路設計,作業系統(也包含檔案系統、資料庫等)也是一大考慮,糟糕的作業系統不支援多核,或雖有支援,一樣有大幅度的效能折損。即便雙核晶片但原生硬體效能上擁有190%(僅折損10%),但透過不良的作業系統執行,則再次遭到效能折損,最終可能僅有120%的實質效能發揮。
同樣的,應用程式也必須與作業系統相同,須針對雙核、多核等組態配置,重新編譯(Recompile)與微調(Tune),才能發揮多核的效果,否則原本以單核方式撰寫、編譯的應用程式,即便在良善支援多核的作業系統上執行,還是會僅在一顆核心上執行,其他核心無法給予助力,只能閒置或關閉,或執行其他應用程式。
也因為多核的作法,不能讓原有的作業系統、應用程式直接獲得加速,因此過去晶片業者多積極只用提升時脈,或新設計的執行處理器電路等手法來提升效能,如此原有應用程式不需任何工程調整即可獲得加速。但今日此路逐漸難行,多核處理器已是必行之路,硬體晶片業者須加強對軟體業者的勸誘、鼓勵與影響,其晶片的新效能價值才能真的開展。