談ARM、Intel和MIPS三款行動處理器的主要區別

談ARM、Intel和MIPS三款行動處理器的主要區別

Android支持三類處理器(CPU):ARM、Intel和MIPS。 ARM無疑被使用得最為廣泛。 Intel因為普及於桌上型電腦和伺服器而被人們所熟知,然而對行動行業影響力相對較小。 MIPS在32位元和64位元嵌入式領域中歷史悠久,獲得了不少的成功,目前Android的採用率最低。目前ARM現在是贏家而Intel是ARM的最強對手。

那麼ARM處理器和Intel處理器到底有何區別?為什麼ARM如此受歡迎?你的智慧手機或平板電腦用的是什麼處理器到底重要不重要?

處理器(CPU)

中央處理器(CPU)是智慧設備的大腦。它的任務是通過執行一系列指令來驅動你的設備,包括顯示螢幕、觸控螢幕、調製解調器等,行動設備非常複雜,其中的處理器需要執行數百萬行指令才能完成人們希望這些設備去做的事。速度和功耗對處理器來說至關重要。速度影響用戶體驗,功耗影響電池壽命。完美的行動設備必須有好性能以及低功耗。

這就是為什麼選擇什麼樣的處理器很重要。一個超級耗電、反應遲鈍的處理器會很快吸乾你的電池,而一個考究的、高效的處理器給你帶來高性能和長久的電池壽命。

總體而言,ARM和Intel處理器的第一個區別是,前者使用精簡指令集(RISC),而後者使用複雜指令集(CISC)。

通俗而言,精簡指令集規模較小,更接近原子操作,而複雜指令集規模較大,更加複雜。所謂原子操作,是指每條指令的工作大都可以由處理器在一個操作內完成,例如對兩個暫存器做加法。

複雜指令集的指令描述某個意圖,但是處理器必須執行3或4個更簡單的指令來實現這個意圖。例如,可以命令一個複雜指令集處理器對2個數求和,並把結果存入主記憶體中。為了完成這個命令,處理器首先從地址1中取得第一個數(操作1),然後從地址2中取得另一個數(操作2),然後求和(操作3),等等。
8aed78e7b43586e

所有的現代處理器都使用一種所謂微指令的概念,這是一個處理器內部的指令集合,用來描述處理器可以做的原子操作。

複雜指令集處理器實際上執行了3條微指令。對精簡指令集處理器而言,其指令跟其微指令十分接近,而複雜指令集處理器的指令需要先被轉換成一些更精簡的微指令(就像前面的複雜指令集處理器做加法的例子中那樣)。

也就是說,精簡指令集處理器中的解碼器(負責告訴處理器到底要做些什麼的單元)要簡單得多,而簡潔意味著高效和低功耗。

製造製程

ARM和Intel處理器的另外一個主要區別是ARM從來只是設計低功耗處理器。其宗旨是設計低功耗處理器,這是他們的強項。 Intel的強項是設計超高性能的​​桌上型電腦和伺服器處理器,並且的確做的不錯。

Intel是桌上型電腦的伺服器行業的老大。過去的20年裡我所有的PC,筆記本和伺服器(除了一個外)用的都是Intel的處理器。然而進入行動行業時,Intel依然使用和桌上型電腦同樣的複雜指令集架構,試圖將其硬塞入給行動設備使用的體積較小的處理器中。

Intel i7處理器平均發熱率為45瓦。ARM系統(其中包括圖形處理器)的發熱率最大瞬間峰值大約是3瓦,約為Intel i7處理器的1/15。

Intel 最新的Atom系列處理器採用了跟ARM處理器類似的溫度控制設計,為此Intel必須使用最新的22奈米製造製程。一般而言,製造製程的奈米數越小,能量的使用效率越高。 ARM處理器使用更低的製造製程,擁有類似的溫控效果。比如,高通驍龍805處理器使用28奈米製造製程。

77db80792482321

 

64位元

對於64位元計算,ARM和Intel也有一些顯著區別。你知不知道,Intel並沒有開發64位元版本的x86指令集。這個64位元的指令集,名為x86-64(有時簡稱為x64),實際上是AMD設計開發的。

故事是這樣的:Intel想搞64位元計算,它知道如果從自己的32位元x86架構進化出的64位元架構的話,新架構效率會很低,於是它搞了一個新64位元處理器項目名為IA64。由此製造出了Itanium系列處理器。

同時AMD知道自己造不出能與IA64兼容的處理器,於是它把x86擴展一下,加入了64位元尋址和64位元暫存器。最終出來的架構,人稱AMD64,成為了64位元版本的x86處理器的標準。

73b15a741c02499

IA64項目並不算得上成功,現如今基本被放棄了。 Intel最終採用了AMD64。 Intel當前給出的行動方案,是採用了AMD開發的64位元指令集(有些許差別)的64位元處理器。

ARM的故事很不一樣:看到行動設備對64位元計算的需求後,ARM於2011年發布了ARMv8 64位元架構,這是為了下一代ARM指令集架構工作若干年後的結晶。為了基於原有的原則和指令集,開發一個簡明的64位元架構,ARMv8使用了兩種執行模式,AArch32和AArch64。

2f6476d0621502d

顧名思義,一個運行32位元代碼,一個運行64位元代碼。 ARM設計的巧妙之處,是處理器在運行中可以無縫地在兩種模式間切換。這意味著64位元指令的解碼器是全新設計的,不用兼顧32位元指令,而處理器依然可以向後兼容。
異構計算

ARM的big.LITTLE架構是一項Intel一時無法複製的創新。在big.​​LITTLE架構裡,處理器可以是不同類型的。傳統的雙核心或者四核心處理器中包含同樣的2個核心或者4個核心。一個雙核心Atom處理器中有兩個一模一樣的核心,提供一樣的性能,擁有相同的功耗。

ea4f463b48fef8b

ARM通過big.LITTLE向行動設備推出了異構計算。這意味著處理器中的核心可以有不同的性能和功耗。當設備正常運行時,使用低功耗核心,而當你運行一款複雜的遊戲是,使用的是高性能的核心。

這是什麼做到的呢?設計處理器的時候,要考慮大量的技術設計的採用與否,這些技術設計決定了處理器的性能以及功耗。

在一條指令被解碼並準備執行時,Intel和ARM的處理器都使用流水線(pipeline)。就是說解碼的過程是並行的。

第一步從記憶體中讀取指令,第二步檢查和解碼指令,第三步執行指令,周而復始。流水線的好處在於,當前指令在第二步的時候,下一條指令已經處於第一步。當前指令在第三步中執行的時候,下一條指令正處於第二步,而下下條指令處於第一步中,如此循環。

為了更快地執行指令,這些流水線可以被設計成允許指令們不按照程序的順序被執行(亂序執行)。一些巧妙的邏輯​​結構可以判斷下一條指令是否依賴於當前的指令執行的結果。 Intel和ARM都提供亂序執行邏輯結構,可想而知,這種結構十分的複雜。複雜意味著更多的功耗。

Intel處理器由設計者們選擇是否加入亂序邏輯結構。異構計算則沒有這方便的問題。 ARM Cortex-A53採用順序執行,因此​​功耗低一些。而ARM Cortex-A57使用亂序執行,所以更快但更耗電。採用big.LITTLE架構的處理器可以同時擁有Cortex-A53和Cortex-A57核心,根據具體的需要決定如何使用這些核心。在後台同步郵件的時候,不需要高速的亂序執行,僅在玩複雜遊戲的時候需要。在合適的時間使用合適的核心。

093543433280053

原則上,處理器中複雜邏輯結構越多性能越高,越少則效率越高,指令流水線只是其中之一,包括浮點運算單元,單指令多數據邏輯(SIMD)(比如ARM的NEON和Intel的SSE/MMX),以及一級緩衝記憶體(L1 Cache)二級緩衝記憶體(L2 Cache)。

每種Atom片上系統,Intel僅提供一種方案,而ARM以及晶片合作夥伴提供的晶片則有多種方案可​​以配置。

兼容性

ARM目前是行動處理器的老大。 ARM的合作夥伴們基於ARM的設計向行動和嵌入式市場的出貨量已經達500億片。對於Android,ARM已然成為標準,這對Intel和MIPS而言是個問題。

儘管Android的主要編程語言是Java,開發者也可以使用現有的代碼(比如C或者C++)去開發應用。這些固定平台的應用通常都編譯成ARM處理器的程序,不全都會編譯成Intel或者MIPS處理器的程序。

為了解決這個問題,Intel和MIPS要使用特殊的轉換軟體把ARM的指令轉換成他們處理器使用的指令。這當然是會降低性能的。

目前MIPS和Intel聲稱兼容Play Store里大約90%的應用。對於最受歡迎的150個應用,兼容率是100%。一方面兼容率很高,另一方面表明ARM的主導地位,使得其他的處理器設計者需要提供一個兼容層。

總結

製造處理器是一​​項複雜的業務。 ARM,Intel和MIPS都在不懈努力地向行動設備提供最好的技術,而很明顯ARM是老大。擁有著低功耗,簡明的64位元設計,異構計算,以及作為行動計算的標準,看來ARM必能保持其領先的地位。

出處:外刊IT評論

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

Loading