淺析CPU兩大架構ARM和X86區別及拓展windows x86與x64的區別


  由於在 linux 安裝nodejs環境時遇到一個不可執行文件的問題,涉及到了ARM和x64文件,所以查了點資料初步了解了一下cpu兩大架構:ARM與X86的區別。

一、CPU是什么

  中央處理單元(CPU)主要由運算器、控制器、寄存器三部分組成,從字面意思看運算器就是起着運算的作用,控制器就是負責發出CPU每條指令所需要的信息,寄存器就是保存運算或者指令的一些臨時文件,這樣可以保證更高的速度。

  CPU有着處理指令、執行操作、控制時間、處理數據四大作用,打個比喻來說,CPU就像我們的大腦,幫我們完成各種各樣的生理活動。因此如果沒有CPU,那么電腦就是一堆廢物,無法工作。移動設備其實很復雜,這些CPU需要執行數以百萬計的指示,才能使它向我們期待的方向運行,而CPU的速度和功率效率是至關重要的。速度影響用戶體驗,而效率影響電池壽命。最完美的移動設備是高性能和低功耗相結合。

二、要了解X86和ARM,就得先了解復雜指令集(CISC)和精簡指令集(RISC)

  從CPU發明到現在,有非常多種架構,從我們熟悉的X86,ARM,到不太熟悉的MIPS,IA64,它們之間的差距都非常大。但是如果從最基本的邏輯角度來分類的話,它們可以被分為兩大類,即所謂的“復雜指令集”與“精簡指令集”系統,也就是經常看到的“CISC”與“RISC”。

  Intel和ARM處理器的第一個區別是,前者使用復雜指令集(CISC),而后者使用精簡指令集(RISC)。屬於這兩種類中的各種架構之間最大的區別,在於它們的設計者考慮問題方式的不同。

  我們可以繼續舉個例子,比如說我們要命令一個人吃飯,那么我們應該怎么命令呢?我們可以直接對他下達“吃飯”的命令,也可以命令他“先拿勺子,然后舀起一勺飯,然后張嘴,然后送到嘴里,最后咽下去”。

  從這里可以看到,對於命令別人做事這樣一件事情,不同的人有不同的理解,有人認為,如果我首先給接受命令的人以足夠的訓練,讓他掌握各種復雜技能(即在硬件中實現對應的復雜功能),那么以后就可以用非常簡單的命令讓他去做很復雜的事情——比如只要說一句“吃飯”,他就會吃飯。

  但是也有人認為這樣會讓事情變的太復雜,畢竟接受命令的人要做的事情很復雜,如果你這時候想讓他吃菜怎么辦?難道繼續訓練他吃菜的方法?我們為什么不可以把事情分為許多非常基本的步驟,這樣只需要接受命令的人懂得很少的基本技能,就可以完成同樣的工作,無非是下達命令的人稍微累一點——比如現在我要他吃菜,只需要把剛剛吃飯命令里的“舀起一勺飯”改成“舀起一勺菜”,問題就解決了,多么簡單。

  這就是“復雜指令集”和“精簡指令集”的邏輯區別

  Intel和ARM的處理器最本質的區間就是:復雜指令集(CISC)和精簡指令集(RISC)的區別,當然還有其他幾方面區別:制造工藝、64位計算、異構運算、設計和功耗等,就太高深了。

三、什么叫arm架構

  ARM架構過去稱作進階精簡指令集機器(AdvancedRISCMachine,更早稱作:AcornRISCMachine),是一個32位精簡指令集(RISC)處理器架構,其廣泛地使用在許多嵌入式系統設計。

  由於節能的特點,ARM處理器非常適用於移動通訊領域,符合其主要設計目標為低耗電的特性。

  在今日,ARM家族占了所有32位嵌入式處理器75%的比例,使它成為占全世界最多數的32位架構之一。ARM處理器可以在很多消費性電子產品上看到,從可攜式裝置(PDA、移動電話、多媒體播放器、掌上型電子游戲,和計算機)到電腦外設(硬盤、桌上型路由器)甚至在導彈的彈載計算機等軍用設施中都有他的存在。在此還有一些基於ARM設計的派生產品,重要產品還包括Marvell的XScale架構和德州儀器的OMAP系列。

四、什么是x86架構

  目前的PC架構絕大多數都是Intel的X86架構,貌似也是因為INTEL的這個X86架構造就了目前INTEL如日中天的地位。

  X86架構(The X86 architecture)是微處理器執行的計算機語言指令集(是進階復雜指令集機器),指一個intel通用計算機系列的標准編號縮寫,也標識一套通用的計算機指令集合。

五、arm架構和x86架構有什么區別

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的發展提供了強大的支持和動力。

4、軟件開發的方便性及可使用工具的多樣性

  X86結構的系統推出已經近30年,在此期間,x86電腦經過飛速發展的黃金時期,用戶的應用、軟件配套、軟件開發工具的配套及兼容等工作,已經到達非常成熟甚至可以說是完美的境界。所以使用X86電腦系統不僅有大量的第三方軟件可供選擇,也有大量的軟件編程工具可以幫助您完成您所希望完成的工作。

  Arm結構的電腦系統因為硬件性能的制約、操作系統的精簡、以及系統兼容等問題的制約,造成Arm結構的電腦系統不可能像X86電腦系統那樣有眾多的編程工具和第三方軟件可供選擇及使用,ARM的編程語言大多采用C和JAVA。

  對這一點的比較,更直接的結論是:基於x86結構電腦系統平台開發軟件比arm結構系統更容易、更簡單、實際成本也更低,同時更容易找到第三方軟件(免去自己開發的時間和成本),而且軟件移植更容易。

  從以上對比分析,給了我們的一個很清晰的感覺,ARM和X86結構的電腦根本就無法對比,ARM根本就不是X86電腦的的對手。是的,如果只考慮上述幾個方面的要數,ARM確實無法與X86電腦競爭,甚至連比較的資格都沒有。但是近1、2年,ARM的產品在終端應用特別是手持終端應用飛速發展(如:智能手機、平板電腦等),其銷售數量已經遠遠超出x86結構的電腦銷售數量,可見ARM是具有其與X86結構電腦不可對比的優勢。該優勢就是:功耗。

5、功耗

  X86電腦因考慮要適應各種應用的需求,其發展思路是:性能+速度。20多年來x86電腦的速度從原來8088的幾M發展到現在隨便就是幾G,而且還是幾核,其速度和性能已經提升了千、萬倍,技術進步使x86電腦成為大眾生活中不可缺少的一部分。但是x86電腦發展的方向和模式,使其功耗一直居高不下,一台電腦隨便就是幾百瓦,即使是號稱低功耗節能的手提電腦或上網本,也有十幾、二十多瓦的功耗,這與ARM結構的電腦就無法相比。

6、ARM和X86現在發展如何?

  關於X86架構和ARM架構這兩者誰將統一市場的爭執一直都有,但是也有人說這兩者根本不具備可比性,X86無法做到ARM的功耗,而ARM也無法做到X86的性能。現在ARM架構已經具備了進入服務器芯片的能力,眾多芯片研發企業紛紛采用ARM架構研發服務器芯片無疑將促進其繁榮, 2015年一款采用ARM架構的Windows 10平板現身,這也是目前曝光的全球首款非X86架構、運行Windows系統的平板產品。

  同時,經過數年的努力,2016年AMD終於推出了首個基於ARM架構的處理器——Opteron A1100。AMD希望能夠憑借這一處理器挑戰Intel在數據中心服務器市場的霸主地位。

  這樣看來,Intel在服務器芯片市場將會逐漸失去霸主地位,而且,Intel已然錯過了移動 CPU 市場,現在它正試圖跳進千萬億的物聯網領域,具體表現如何,看時間的考驗吧。

  拓展一個看到的知識點:windows  x86和x64的區別

六、windows  x86和x64的區別

  x86代表32位操作系統  x64代表64位操作系統。

  如何判斷電腦是否支持64位操作系統?

       首先從一個常理來說,如果你的CPU是雙核,應該是支持64位的了!當然你也可以用CPU—Z來檢查一下自己的CPU是否包含有EM64T (INTEL)或者X86_64(AMD)指令!如果包含,那就說明支持64位!

       如果你的CPU是雙核以上,那肯定支持64位了如果你的電腦內存大於4G,那就要用64位的系統了,因為32位的Windows 7也好,Vista也好,最大都只支持3.25G的內存。而64位的windows 7最大將支持128G的內存。

1、內存尋址能力區別

  32位系統尋址能力是4G容量,不過需要保留一些給硬件使用,因此留給用戶的可用內存一般是3.25g-3.5G容量左右,即使你插上8G內存,也無法識別那么大容量,而64位系統可以支持128GB大內存,甚至更大。

2、運算速度區別

  安裝64位系統,需要CPU必須支持64位,而64位CPU GPRs(General-Purpose Registers,通用寄存器)的數據寬度為64位,64位指令集可以運行64位數據指令,也就是說處理器一次可提取64位數據(只要兩個指令,一次提取8個字節的數據),比32位(需要四個指令,一次提取4個字節的數據)提高了一倍,理論上性能會相應提升一倍。

3、設計初衷區別

  早期,64位操作系統的設計初衷是為了滿足機械設計和分析、三維動畫、視頻編輯和創作,以及科學計算和高性能計算應用程序等領域中需要大量內存和浮點性能的客戶需求,而32位系統,初期並沒有考慮太多。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM