Linux系統下x86和ARM的區別有哪些?

問題:linux

最近在用三星的一款i5處理器的Windows平板,和iPad,以及其餘使用ARM處理器的手機相比,發熱量大不少,甚至須要藉助風扇來散熱,耗電量也大了很多。程序員

那麼就很奇怪,在主頻相差不大,而且實際執行效果差很少的狀況下,x86架構的處理器的發熱量和功耗爲何會那麼大?這種差別究竟是硬件以及處理器的指令集自己的問題,仍是軟件層面的問題?編程

回答1:windows

說x86和ARM處理器「實際執行效果差很少」其實有所不妥。樓主也說了比較的幾個設備主要是windows平板,ipad和智能手機。這些平臺上的程序都是移動環境下的應用,大多邏輯簡單功能單一,沒什麼「計算」可言。ARM處理器自己定位於嵌入式平臺,應付輕量級、目的單一明確的程序,如今應用在移動設備上正是駕輕就熟。x86定位於桌面和服務器,這些平臺上不少應用是計算密集型的,好比多媒體編輯、科研計算、模擬等等。所以將x86和ARM在移動環境下作對比得出「差很少」是很差的。緩存

因爲定位的不一樣,ARM處理器基於精簡指令集(RISC)架構。指令集數量少就能夠簡化硬件邏輯的設計,減小晶體管數量,也就意味着低功耗。並且因爲移動平臺應用一般簡單,程序的控制流不復雜,執行效率沒有必要很高,因此流水線、分支預測等硬件邏輯都比較簡單。這些都下降了晶體管總量。同時由於移動設備有電池的能源限制,ARM的電源管理是做爲重要部分特別設計了的。好比移動設備的處理器在待機時一般只以極低的主頻在運行,甚至能夠暫時關閉閒置的核心、協處理器來下降功耗。服務器

x86就大相徑庭。x86是複雜指令集(CISC)架構,存在不少機器指令,只爲了高效地完成一項專門任務(好比MMX, SSE中的指令)。這就使得硬件的邏輯很複雜,晶體管數量龐大。爲了高效地進行運算,x86架構有較長的流水線以達到指令級並行(ILP)。長流水線帶來的一個弊端,就是當遇到分支時,若是預載入分支指令不是將來真實的分支,那麼要清空整個流水,代價較高。因此x86爲此還必須有複雜的分支預測機構,確保流水線的效率。再加上多級cache,支持超線程、虛擬化等等,x86的複雜度其實至關高。網絡

回答2:架構

由於ARM是爲了低功耗設計的,而X86是爲了高性能。你想把ARM作到X86同樣的性能,勢必增長核心複雜度,增長指令集,到時候你猜ARM對X86還能有多少功耗優點?X86精簡核心規模拋棄部分指令集,同樣也作到了功耗5W如下的ATOM,你又要問爲何那些X86手機功耗高發熱大,由於沒有專爲X86平臺開發的手機APP,你跑在X86手機上的APP全都是二次轉換運行的,芯片一直高負載。你ARM手機一直高負載功耗不高發熱不大?工具

ARM和x86幾大簡單比較post

處理器一般是指一臺計算機的運算核心和控制核心。可是隨着移動設備的興起,處理器在智能手機和平板電腦等移動終端設備中的也逐漸興起,讓處理器市場的變化開始了。

英特爾是PC和企業級處理器市場上毋庸置疑的霸主,ARM則是在移動終端市場發展起來的新興霸主。英特爾專一高性能,爲我的用戶、企業用戶提供出色的性能支持;而ARM則專一低功耗,爲手機和平板用戶帶來超長待機。這兩個看似沒有交集的企業爲什麼會發展成現在對立局面呢

疑的霸主,ARM則是在移動終端市場發展起來的新興霸主。英特爾專一高性能,爲我的用戶、企業用戶提供出色的性能支持;而ARM則專一低功耗,爲手機和平板用戶帶來超長待機。這兩個看似沒有交集的企業爲什麼會發展成現在對立局面呢

技術發展是兩家公司直接競爭的主要緣由,在Web2.0時代,Facebook、谷歌這些公司的崛起使得數據中心三大核心技術發生了改變,三大核心技術指的是:計算、存儲和網絡。

ARM是如何知足數據中心需求的

低功耗是ARM處理器的一個優點,可是在面向企業級領域的時侯,其發現並無64位架構處理器,因而在2012年10月31日ARM推出新款ARMv8架構ARMCortex-A50處理器系列產品,來知足企業級級市場應用的需求。

而爲了彌補本身在企業級市場的經驗劣勢,ARM還拉攏了本來跟英特爾同一陣營的AMD.AMD在服務器領域積累的至關多的成功經驗,其擁有業界領先的64位微處理器技術以及普遍的知識產權組合與OEM、ODM和ISV合做的經驗,將促進ARM在數據中心領域的擴展,知足數據中心領域的特定需求。

1、性能:

X86結構的電腦不管如何都比ARM結構的系統在性能方面要快得多、強得多。X86的CPU隨便就是1G以上、雙核、四核大行其道,一般使用45nm(甚至更高級)製程的工藝進行生產;而ARM方面:CPU一般是幾百兆,最近纔出現1G左右的CPU,製程一般使用不到65nm製程的工藝,能夠說在性能和生產工藝方面ARM根本不是X86結構系統的對手。

但ARM的優點不在於性能強大而在於效率,ARM採用RISC流水線指令集,在完成綜合性工做方面根本就處於劣勢,而在一些任務相對固定的應用場合其優點就能發揮得淋漓盡致。

2、擴展能力

X86結構的電腦採用「橋」的方式與擴展設備(如:硬盤、內存等)進行鏈接,並且x86結構的電腦出現了近30年,其配套擴展的設備種類多、價格也比較便宜,因此x86結構的電腦能很容易進行性能擴展,如增長內存、硬盤等。

ARM結構的電腦是經過專用的數據接口使CPU與數據存儲設備進行鏈接,因此ARM的存儲、內存等性能擴展難以進行(通常在產品設計時已經定好其內存及數據存儲的容量),因此採用ARM結構的系統,通常不考慮擴展。基本奉行「夠用就好」的原則。

3、操做系統的兼容性

X86系統由微軟及Intel構建的Wintel聯盟一統天下,壟斷了我的電腦操做系統近30年,造成巨大的用戶羣,也深深固化了衆多用戶的使用習慣,同時x86系統在硬件和軟件開發方面已經造成統一的標準,幾乎全部x86硬件平臺均可以直接使用微軟的視窗系統及如今流行的幾乎全部工具軟件,因此x86系統在兼容性方面具備無可比擬的優點。

ARM系統幾乎都採用Linux的操做系統,並且幾乎全部的硬件系統都要單獨構建本身的系統,與其餘系統不能兼容,這也致使其應用軟件不能方便移植,這一點一直嚴重製約了ARM系統的發展和應用。GOOGLE開發了開放式的Android系統後,統一了ARM結構電腦的操做系統,使新推出基於ARM結構的電腦系統有了統一的、開放式的、免費的操做系統,爲ARM的發展提供了強大的支持和動力。

x86 和 ARM 優缺點比較

1、背景知識

指令的強弱是CPU的重要指標,指令集是提升微處理器效率的最有效工具之一。從現階段的主流體系結構講,指令集可分爲複雜指令集(CISC)和精簡指令集(RISC)兩部分。相應的,微處理隨着微指令的複雜度也可分爲 CISC 及 RISC 這兩類。

CISC是一種爲了便於編程和提升存儲器訪問效率的芯片設計體系。在20世紀90年代中期以前,大多數的微處理器都採用CISC體系,包括Intel 的 80x86 和 Motorola 的 68K 系列等。 即一般所說的 X86 架構就是屬於 CISC 體系的。

RISC是爲了提升處理器運行速度而設計的芯片設計體系。它的關鍵技術在於流水線操做(Pipelining):在一個時鐘週期裏完成多條指令。而超流水線以及超標量技術已廣泛在芯片設計中使用。RISC體系多用於非 x86 陣營高性能微處理器CPU,像HOLTEK MCU系列等。

ARM(Advanced RISC Machines),既能夠認爲是一個公司的名字,也能夠認爲是對一類微處理器的通稱,還能夠認爲是一種技術的名字。而ARM體系結構目前被公認爲是業界領先的32位嵌入式 RISC 微處理器結構,全部 ARM 處理器共享這一體系結構。

所以咱們能夠從其所屬體系比較入手,來進行X86指令集與ARM指令集的比較。

2、CISC和RISC的比較

(一)CISC

1. CISC體系的指令特徵

1) 使用微代碼。指令集能夠直接在微代碼存儲器(比主存儲器的速度快不少)裏執行,新設計的處理器,只需增長較少的電晶體就能夠執行一樣的指令集,也能夠很快地編寫新的指令集程序。

2) 龐大的指令集。能夠減小編程所須要的代碼行數,減輕程序員的負擔。高級語言對應的指令集:包括雙運算元格式、寄存器到寄存器、寄存器到存儲器以及存儲器到寄存器的指令。

2. CISC體系的優缺點

1) 優勢:可以有效縮短新指令的微代碼設計時間,容許設計師實現 CISC 體系機器的向上兼容。新的系統可使用一個包含早期系統的指令超集合,也就可使用較早電腦上使用的相同軟件。另外微程序指令的格式與高級語言相匹配,於是編譯器並不必定要從新編寫。

2) 缺點:指令集以及芯片的設計比上一代產品更復雜,不一樣的指令,須要不一樣的時鐘週期來完成,執行較慢的指令,將影響整臺機器的執行效率。

(二)RISC

1. RISC體系的指令特徵

1) 精簡指令集:包含了簡單、基本的指令,經過這些簡單、基本的指令,就能夠組合成複雜指令。

2) 一樣長度的指令:每條指令的長度都是相同的,能夠在一個單獨操做裏完成。

3) 單機器週期指令:大多數的指令均可以在一個機器週期裏完成,而且容許處理器在同一時間內執行一系列的指令。

2. RISC體系的優缺點

1) 優勢:在使用相同的芯片技術和相同運行時鐘下,RISC 系統的運行速度將是 CISC 的2~4倍。因爲RISC處理器的指令集是精簡的,它的內存管理單元、浮點單元等都能設計在同一塊芯片上。RISC 處理器比相對應的 CISC 處理器設計更簡單,所須要的時間將變得更短,並能夠比CISC處理器應用更多先進的技術,開發更快的下一代處理器。

2) 缺點:多指令的操做使得程序開發者必須當心地選用合適的編譯器,並且編寫的代碼量會變得很是大。另外就是RISC體系的處理器須要更快的存儲器,這一般都集成於處理器內部,就是L1 Cache(一級緩存)。

綜合上面所述,若要再進一步比較CISC與RISC之差別,能夠由如下幾點來進行分析:

1. 指令的造成:CISC 因指令複雜,故採用微指令碼控制單元的設計,而RISC的指令90%是由硬件直接完成,只有10%的指令是由軟件以組合的方式完成,所以指令執行時間上RISC較短,但RISC所須ROM空間相對的比較大,至於RAM使用大小應該與程序的應用比較有關係。

2. 尋址模式:CISC的須要較多的尋址模式,而RISC只有少數的尋址模式,所以CPU在計算存儲器有效位址時,CISC佔用的匯流排週期較多。

3. 指令的執行:CISC指令的格式長短不一,執行時的週期次數也不統一,而RISC結構恰好相反,故適合採用流水線處理架構的設計,進而能夠達到平均一週期完成一指令的方向努力。顯然的,在設計上RISC較CISC簡單,同時由於CISC的執行步驟過多,閒置的單元電路等待時間增加,不利於平行處理的設計,因此就效能而言RISC較CISC仍是佔了上風,但RISC因指令精簡化後形成應用程式碼變大,須要較大的存儲器空間,且存在指令種類較多等等的缺點。

(三)X86指令集和ARM指令集

1. X86指令集

X86指令集是Intel爲其第一塊16位CPU(i8086)專門開發的,後來的電腦中爲提升浮點數據處理能力而增長的X87芯片系列數學協處理器以及使用X87指令,之後就將X86指令集和X87指令集統稱爲X86指令集。雖然隨着CPU技術的不斷髮展,Intel陸續研製出更新型的i8038六、i80486,但爲了保證電腦能繼續運行以往開發的各種應用程序以保護和繼承豐富的軟件資源,因此Intel公司所生產的全部CPU仍然繼續使用X86指令集,因此它的CPU仍屬於X86系列。因爲Intel X86系列及其兼容CPU都使用X86指令集,因此就造成了今天龐大的X86系列及兼容CPU陣容。

除了具有上述CISC的諸多特性外,X86指令集有如下幾個突出的缺點:

通用寄存器組——對CPU內核結構的影響。X86指令集只有8個通用寄存器,因此,CISC的CPU執行是大多數時間是在訪問存儲器中的數據,而不是寄存器中的。這就拖慢了整個系統的速度。RISC系統每每具備很是多的通用寄存器,並採用了重疊寄存器窗口和寄存器堆等技術使寄存器資源獲得充分的利用。

解碼——對CPU的外核的影響。解碼器(Decode Unit),這是x86 CPU纔有的東西。其做用是把長度不定的x86指令轉換爲長度固定的相似於RISC的指令,並交給RISC內核。解碼分爲硬件解碼和微解碼,對於簡單的x86指令只要硬件解碼便可,速度較快,而遇到複雜的x86指令則須要進行微解碼,並把它分紅若干條簡單指令,速度較慢且很複雜。Athlon也好,PIII也好,老式的CISC的X86指令集嚴重製約了他們的性能表現。

尋址範圍小——約束了用戶須要。即便AMD研發出X86-64架構時,雖然也解決了傳統X86固有的一些缺點,好比尋址範圍的擴大,但這種改善並不能直接帶來性能上的提高。

(2) ARM指令集

相比而言,以RISC爲架構體系的ARM指令集的指令格式統一,種類比較少,尋址方式也比複雜指令集少。固然處理速度就提升不少。ARM處理器都是所謂的精簡指令集處理機(RISC)。其全部指令都是利用一些簡單的指令組成的,簡單的指令意味着相應硬件線路能夠儘可能作到最佳化,而提升執行速率,相對的使得一個指令所需的時間減到最短。而由於指令集的精簡,許多工做都必須組合簡單的指令來完成,而針對較複雜組合的工做便須要由編譯器(compiler) 來執行,而 CISC 體系的X86指令集由於硬體所提供的指令集較多,因此許多工做都可以以一個或是數個指令來代替,編譯器的工做於是減小許多。

除了具有上述RISC的諸多特性以外,能夠總結ARM指令集架構的其它一些特色以下:

ARM的特色:1) 體積小,低功耗,低成本,高性能;2) 支持Thumb(16 位)/ARM ( 32 位)雙指令集,能很好的兼容 8 位 /16 位器件;3) 大量使用寄存器,指令執行速度更快;4) 大多數數據操做都在寄存器中完成;5) 尋址方式靈活簡單,執行效率高;6) 指令長度固定;7) 流水線處理方式;8) load-store結構。

ARM的一些非RISC思想的指令架構:1) 容許一些特定指令的執行週期數字可變,以下降功耗,減少面積和代碼尺寸;2) 增長了桶形移位器來擴展某些指令的功能;3) 使用了16位的Thumb指令集來提升代碼密度;4) 使用條件執行指令來提升代碼密度和性能;5) 使用加強指令來實現數字信號處理的功能。

(四)小結

所以,大量的複雜指令、可變的指令長度、多種的尋址方式這些CISC的特色,也是CISC的缺點,由於這些都大大增長了解碼的難度,而在如今的高速硬件發展下,複雜指令所帶來的速度提高早已不及在解碼上浪費的時間。除了我的PC市場還在用X86指令集外,服務器以及更大的系統都早已不用CISC了。x86仍然存在的理由就是爲了兼容大量的x86平臺上的軟件,同時,它的體系結構組成的實現不太困難。而RISC體系的ARM指令最大特色是指令長度固定,指令格式種類少,尋址方式種類少,大多數是簡單指令且都能在一個時鐘週期內完成,易於設計超標量與流水線,寄存器數量多,大量操做在寄存器之間進行。優勢是不言而喻的,所以,ARM處理器才成爲是當前最流行的處理器系列,是幾種主流的嵌入式處理體系結構之一。RISC目前正如日中天,Intel彷佛也將最終拋棄x86而轉向RISC結構。而實際上,隨着RISC處理器在嵌入式領域中大放異彩,傳統的X86系列CISC處理器在Intel公司的積極改進下也克服了功耗太高的問題,成爲一些高性能嵌入式設備的最佳選擇,發展到今天,CISC與RISC之間的界限已經再也不是那麼涇渭分明,RISC自身的設計正在變得愈來愈複雜(固然並非徹底依着CISC的思路變複雜),由於全部實際使用的CPU都須要不斷提升性能,因此在體系結構中加入新特色就在所不免。另外一方面,原來被認爲是CISC體系結構的處理器也吸取了許多RISC的優勢,好比Pentium處理器在內部的實現中也是採用的RISC的架構,複雜的指令在內部由微碼分解爲多條精簡指令來運行,可是對於處理器外部來講,爲了保持兼容性仍是以CISC風格的指令集展現出來。

相關文章
相關標籤/搜索