【基礎知識普及】ARM與X86 CPU架構區別
來自專欄嵌入式Linux那些事兒
出處:http://ihyperwin.iteye.com/blog/1701132
有同學反映,我們視頻一上來就講乾貨,希望適當普及一下相關概念,所以後續會更多的推送相關概念科普類的文章。
RISC和CISC是設計製造微處理器的兩種典型技術,雖然它們都是試圖在體系結構、操作運行、軟體硬體、編譯時間和運行時間等諸多因素中做出某種平衡,以求達到高效的目的,但採用的方法不同,因此,在很多方面差異很大。
x86架構採用CISC,而ARM採用RISC。TI OMAP、Qualcomm Snapdragon、三星的蜂鳥(Hummingbird)、獵戶座(Orion)、飛思卡爾(Freescale)的i.MX,或是ST-Ericsson的應用處理器、Freescale、聯發科、Telechip、新岸線等。
X86是英特爾Intel首先開發製造的一種微處理器體系結構的泛稱,包括Intel8086、80186、80286、80386以及80486以86結尾系列,英特爾統治整個CPU產業鏈長達數十年。但是,Intel以增加處理器本身複雜度作為代價,去換取更高的性能,但集成的指令集數量越來越多,給硬體帶來的負荷也就越來越大,無形中增加了功耗和設計難度。 ARM(Advanced RISC Machines)公司是蘋果、Acorn、VLSI、Technology等公司的合資企業。ARM採用將晶元的設計方案授權(licensing)給其他公司生產的模式,在世界範圍結成了超過100個的合作夥伴(Partners),將封閉設計的Intel公司變成全民公敵。ARM處理器非常適用於移動通信領域,具有低成本、高性能和低耗電的特性,ARM的高性價比和低耗能在移動市場比英特爾更具優勢。
ARM的架構相較於x86有哪些特點?相較於基於CISC的x86架構處理器,由於為了滿足電腦產業發展而不斷加入指令集,使得處理器日益龐大,但每個指令集用到的頻率也越差越大,許多指令到後來已經相當少用,甚至是可以被新的指令所取代。而ARM架構則大幅簡化架構,僅保留所需要的指令,可以讓整個處理器更為簡化,擁有小體積、高效能的特性。
另外,ARM的架構老早就已經做到高密度整合,由於ARM授權的彈性以及核心架構的單純,ARM處理器架構可以很容易與其它專職的特殊核心,像GPU、多媒體解碼核心、基頻數據機、I/O控制等架構整合,透過SoC(System On a Chip,系統單晶元)的方式,一顆小小的ARM架構應用處理器,完成近年x86架構處理器積極跨足的單晶元設計,並且通過各種不同的核心分工各司其職。
ARM架構應用處理器的核心負擔相較傳統x86處理器低了許多,並且因為早前應用處理器的需求就是以低功耗為重點,即便如今效能不斷提升,仍是以保有省電的特性為前提發展條件。
ARM架構的另一個優點是自由性,只要向ARM買下核心授權,就可以與其它IP公司的方案以及這家授權客戶本身的優勢技術整合,雖同為同一世代的ARM核心架構,即便頻率相同,結果也不同。不過這也使得ARM應用處理器光從基本規格不一定能看出其操作效能,例如同樣隸屬高通Snapdragon,頻率1GHz的第一世代旗艦QSD8x50甚至不敵頻率僅800MHz的第二世代MSM7230。
ARM的架構之所以能夠在智能手機以及平板領域迅速竄紅,蘋果iOS可說是大功臣,在蘋果之前,智能手機在市場上一直載浮載沉,雖然有著號稱智能手機平台市佔率第一的Nokia Symbian,以及Windows Mobile、Palm OS、BlackBerry等系統,不過當時的環境缺乏移動網路為後盾,在線商店的概念還未發展成型;
一直到蘋果以iPhone打響新世代智能手機第一炮後,市場才真正體會到智能手機原來可以是這麼容易使用。
iPhone的出現也間接帶起市場對於ARM架構應用處理器的需求,不過光是蘋果也無法帶起市場對於ARM處理器的需求,還有WM(WP7)手機與Symbian也紛紛加入新一代智能手機戰局。但是真正成為關鍵的是Google Android宣布參戰後,其它手機廠商取得一個相較過去成熟的通用智能手機平台,而各廠商又為了進行產品差異化,開始針對ARM架構應用處理器的效能以及硬體支持要求,使得過去發展緩慢的ARM架構一下子熱絡起來,也讓ARM一夕之間成為火熱話題。
GOOGLE的Android系統和蘋果的IPAD、IPHONE推出後,ARM架構的電腦系統(特別是在終端方面應用)受到用戶的廣泛支持和追捧,ARM+Android成為IT、通信領域最熱門的話題,眾多晶元廠商紛紛推出具有各種獨特應用功能基於ARM結構開發的產品,近期最新形成的「異構概念」更成為電腦今後發展主要方向。
在IT行業推崇了20多年的「性價比「概念受到根本的動搖和衝擊,「適用的才是最好的」已經被越來越多的用戶接受。
我們就ARM架構的系統與X86架構系統的特性進行一個系統分析,方便用戶在選擇系統時進行理性、合理的比價分析。 一、性能: X86結構的電腦無論如何都比ARM結構的系統在性能方面要快得多、強得多。X86的CPU隨便就是1G以上、雙核、四核大行其道,通常使用45nm(甚至更高級)製程的工藝進行生產;而ARM方面:CPU通常是幾百兆,這幾年才出現1G左右的CPU,製程通常使用不到65nm製程的工藝,可以說在性能和生產工藝方面,ARM根本不是X86的對手。 但ARM的優勢不在於性能強大而在於效率,ARM採用RISC流水線指令集,在完成綜合性工作方面根本就處於劣勢,而在一些任務相對固定的應用場合其優勢就能發揮得淋漓盡致。 二、擴展能力 X86結構的電腦採用「橋」的方式與擴展設備(如:硬碟、內存等)進行連接,而且x86結構的電腦出現了近30年,其配套擴展的設備種類多、價格也比較便宜,所以x86結構的電腦能很容易進行性能擴展,如增加內存、硬碟等。 ARM結構的電腦是通過專用的數據介面使CPU與數據存儲設備進行連接,所以ARM的存儲、內存等性能擴展難以進行(一般在產品設計時已經定好其內存及數據存儲的容量),所以採用ARM結構的系統,一般不考慮擴展。基本奉行「夠用就好」的原則。從以上對比分析,給了我們的一個很清晰的感覺,ARM和X86結構的電腦根本無法對比,ARM根本就不是X86電腦的的對手。是的,如果只考慮上述幾個方面的要數,ARM確實無法與X86電腦競爭,甚至連比較的資格都沒有。但是近1、2年,ARM的產品在終端應用特別是手持終端應用飛速發展(如:智能手機、平板電腦等),其銷售數量已經遠遠超出x86結構的電腦銷售數量,可見ARM是具有其與X86結構電腦不可對比的優勢。該優勢就是:功耗.
五、功耗 X86電腦因考慮要適應各種應用的需求,其發展思路是:性能 + 速度。20多年來x86電腦的速度從原來8088的幾M發展到現在隨便就是幾G,而且還是幾核,其速度和性能已經提升了千、萬倍,技術進步使x86電腦成為大眾生活中不可缺少的一部分。但是x86電腦發展的方向和模式,使其功耗一直居高不下,一台電腦隨便就是幾百瓦,即使是號稱低功耗節能的手提電腦或上網本,也有十幾、二十多瓦的功耗,這與ARM結構的電腦無法相比。 ARM的設計及發展思路是:滿足某個特殊方面的應用即可,在某一專項領域是最強的,(哪怕在其他方面一無是處),這樣ARM以其不是最強的技術,同樣也不是很高級製程的製造工藝,生產出性能不是很強的電腦系統,但在某個專業應用方面則是最好的,特別是在眾多終端應用,尤其在移動終端應用上佔有絕對優勢的統治地位,這個原因就是:功耗。 高功耗導致了一系列X86系統無法解決的問題出現:系統的續航能力弱、體積無法縮小、穩定性差、對使用環境要求高等問題。從這裡我們可以看到X86系統與ARM系統是在兩個完全不同領域方面的應用,他們之間根本不存在替換性,在伺服器、工作站以及其他高性能運算等應用方面,可以不考慮功耗和使用環境等條件時,X86系統佔了絕對優勢;但受功耗、環境等條件制約且工作任務固定的情況下ARM佔有很大的優勢,在手持式移動終端領域,X86的功耗更使他英雄毫無用武之地。
但在很多的應用終端領域,現正成為兩大陣營爭奪的重點,ARM陣營努力增加其性能和系統(特別是操作系統)的通用性,蠶食x86系統的部分終端應用市場;X86陣營努力降低功耗保住其市場,同時侵入手持移動終端市場。 我們今天討論的重點就是在兩大陣營都能可以覆蓋的終端應用領域進行對比、分析。這類型的應用一定是終端應用,通常有下面幾個特徵:1、系統的工作性質比較固定(如:POS、ATM、車載電腦系統、多媒體廣告播放系統、視頻監控系統,以及眾多的信息接收、控制系統和專業的工控系統等等);
2、應用環境比較惡劣,如:溫度變化很大,高溫超過40度,低溫達零下20度;多塵、潮濕等; 3、有一定的應用數量,但數量不是很大。 這部分的應用領域傳統上是由X86結構的低功耗工控機(系統)實現的,但近幾年ARM系統的飛速發展,特別是Android操作系統出現後,ARM + Android大有取代x86系統佔領(低功耗)終端應用領域的趨勢。我們在考慮這種應用對比時根據ARM和X86的特性,主要還考慮以下因素: 1、性能: 如果ARM系統的性能能滿足應用需求時,建議儘可能採用ARM結構的產品,否則考慮X86的產品。注意在這裡我們要強調的是:不要將兩個系統的絕對性能進行比較,而是以能否您的應用特點為標準進行分析。 2、應用數量: 如果您的應用數量太少,您可能根本不值得獨立開發一套應用系統,但如果您的應用數量達到幾百甚至過千時,您是值得考慮自己開發一套新的系統的。因為:ARM的開發成本和製造成本相對比較低,如果有幾百個以上終端應用,應該可以分攤掉開發成本。 如果選用X86結構的系統,根本不應該考慮單獨開發一套專用系統(因為開發成本太高,可能是ARM的10倍),而是在市場上篩選出最接近您需求的產品,以避免高昂的硬體開發成本,和今後的製造成本。3、操作系統ARM的操作系統通常是單獨建立一個自己的Linux系統,且系統與系統間不能兼容,這嚴重製約了ARM的應用擴展,但Android出現後,系統兼容的屏障正逐步消失,促進了系統以及應用軟體的兼容,大大擴大了ARM應用軟體的的數量同時擴大了其應用空間。
4、功耗以及功耗延伸的系列問題 ARM的優勢是功耗低,其實低功耗還意味著: 1)穩定性高:因為功耗越高電子元器件的穩定性和可靠性越差,對低功耗的產品只要選擇好外圍元件的品質,系統的穩定性不會有太大問題; 2)散熱成本低和可以考慮更小的產品體積:對高功耗的產品不可避免要考慮散熱問題,而散熱設備(或器件)的存在,有制約了產品的體積,對某些場合的應用構成致命的制約。但ARM的功耗 < 1W,完全不用考慮散熱問題。 3)功耗低對供電電源的要求低:幾乎所有電子產品,(在同等條件下)功耗越高對電源的要求越高,電源的成本就越高。 4)功耗低電池的續航時間長。5)功耗低對抗環境傷害的能力強:低功耗產品因為不用考慮散熱,可以將產品密封保護起來,但高功耗產品必須散熱,甚至需要風扇幫助散熱,這樣必然使很多的元件和線路裸露在空氣中,被空氣中的塵埃、濕氣、酸鹼物質等腐蝕。5、軟體開發成本問題
ARM的操作系統很小(精簡)不可能帶很多工具,通常基於ARM的軟體大多用C或JAVA開發,其成本會比基於X86系統的高。而且對大多數ARM而言,因其操作系統不一樣,軟體業不能在兩個系統中自由互換使用,但一般來說:用C或JAVA編寫的軟體只需在ARM平台的操作系統中編譯一下就可以移植過去。 但對Android系統開發的軟體,只要能在某台ARM設備中運行,就可以在另一台基於同樣系統的設備中運行。 6、硬體的開發成本 ARM實際上在CPU晶元中已經整合了幾乎所有功能,幾乎所有線路按原理圖直接拉出就可以了,需要擴展的部分一般不多,所以其開發成本會比較低,通常三五萬就可以了。 但X86的外圍線路很多,需要相當經驗的工程師,而且還有BIOS等設計,所以X86主板的設計費用會比較高,通常要二三十萬。 7、硬體的製造及應用成本 無論ARM或X86主板其製造成本都是由元件和加工費構成,通常一片ARM的主板價格與一片X86主板的價格差不多,但ARM是一片可以獨立使用的產品,x86主板通常還要加上:CPU、內存、硬碟甚至還有顯卡。 另外X86還要配上一個電源,這個電源比ARM的電源要貴很多。 所以:明顯X86在硬體方面的成本比ARM高得多。總結上面對比,X86系統和ARM系統應該是兩個完全不同領域的應用,如果功能單一又受到環境制約的應用,如:POS、ATM、多媒體廣告機(現已經有ARM+DSP的產品)、車載電腦終端等應用,應該首先考慮ARM方案,ARM方案與X86相比,其功耗和成本佔有很大優勢。
更多嵌入式Linux乾貨請移步到http://100ask.taobao.com獲取。
推薦閱讀:
※蘋果A11X仿生處理器曝光:8核 7nm工藝
※免費濾波器插件Border下載
※亮了,驍龍660相當於蘋果這顆處理器
※小米6來臨, 看這些有驍龍835的手機, 你真認識不了幾款!
※東芝新智能手機配有1Ghz處理器