ARM指令集和X86指令集对比
參考資料:
ARM 和 x86 有什么區別?
0. 基礎知識
指令的強弱是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 處理器共享這一體系結構。
想詳細了解指令集知識可參考此篇博文:CPU指令集科普:CISC指令集和RISC指令集
1. X86指令集
X86指令集是Intel為其第一塊16位CPU(i8086)專門開發的,后來的電腦中為提高浮點數據處理能力而增加的X87芯片系列數學協處理器以及使用X87指令,以后就將X86指令集和X87指令集統稱為X86指令集。雖然隨著CPU技術的不斷發展,Intel陸續研制出更新型的i80386、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指令集架構的其它一些特點如下:
- 體積小,低功耗,低成本,高性能;
- 支持Thumb(16 位)/ARM ( 32 位)雙指令集,能很好的兼容 8 位 /16 位器件;
- 大量使用寄存器,指令執行速度更快;
- 大多數數據操作都在寄存器中完成;
- 尋址方式靈活簡單,執行效率高;
- 指令長度固定;
- 流水線處理方式;
- load-store結構。
ARM的一些非RISC思想的指令架構:
- 允許一些特定指令的執行周期數字可變,以降低功耗,減小面積和代碼尺寸;
- 增加了桶形移位器來擴展某些指令的功能;
- 使用了16位的Thumb指令集來提高代碼密度;
- 使用條件執行指令來提高代碼密度和性能;
- 使用增強指令來實現數字信號處理的功能。
3. 總結
因此,大量的復雜指令、可變的指令長度、多種的尋址方式這些CISC的特點,也是CISC的缺點,因為這些都大大增加了解碼的難度,而在現在的高速硬件發展下,復雜指令所帶來的速度提升早已不及在解碼上浪費的時間。
除了個人PC市場還在用X86指令集外,服務器以及更大的系統都早已不用CISC了。x86仍然存在的理由就是為了兼容大量的x86平臺上的軟件。同時,它的體系結構組成的實現不太困難。
而RISC體系的ARM指令最大特點是指令長度固定,指令格式種類少,尋址方式種類少,大多數是簡單指令且都能在一個時鐘周期內完成,易于設計超標量與流水線,寄存器數量多,大量操作在寄存器之間進行。優點是不言而喻的,因此,ARM處理器才成為是當前最流行的處理器系列,是幾種主流的嵌入式處理體系結構之一。
總結
以上是生活随笔為你收集整理的ARM指令集和X86指令集对比的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 重庆大二学生花了6年写出了操作系统
- 下一篇: 物联网是互联网发展的必然趋势吗?