新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > ARM指令集和X86指令集的比較

ARM指令集和X86指令集的比較

作者: 時間:2016-11-09 來源:網(wǎng)絡(luò) 收藏
一、背景知識:

指令的強弱是CPU的重要指標,指令集是提高微處理器效率的最有效工具之一。從現(xiàn)階段的主流體系結(jié)構(gòu)講,指令集可分為復雜指令集(CISC)和精簡指令集(RISC)兩部分。

本文引用地址:http://butianyuan.cn/article/201611/317901.htm

相應的,微處理隨著微指令的復雜度也可分為CISC及RISC這兩類。

CISC

是一種為了便于編程和提高記憶體訪問效率的晶片設(shè)計體系。在20世紀90年代中期之前,大多數(shù)的微處理器都采用CISC體系──包括Intel的80x86和Motorola的68K系列等。 即通常所說的X86架構(gòu)就是屬于CISC體系的。

RISC

是為了提高處理器運行的速度而設(shè)計的晶片體系。它的關(guān)鍵技術(shù)在于流水線操作(Pipelining):在一個時鐘周期里完成多條指令。而超流水線以及超標量技術(shù)已普遍在晶片設(shè)計中使用。RISC體系多用于非x86陣營高性能微處理器CPU。像HOLTEK MCU系列等。

ARM(Advanced RISC Machines),既可以認為是一個公司的名字,也可以認為是對一類微處理器的通稱,還可以認為是一種技術(shù)的名字。而ARM體系結(jié)構(gòu)目前被公認為是業(yè)界領(lǐng)先的32位嵌入式RISC微處理器結(jié)構(gòu)。所有ARM處理器共享這一體系結(jié)構(gòu)。

因此我們可以從其所屬體系比較入手,來進行X86指令集ARM指令集的比較。

二、CISC和RISC的比較

(一)

CISC

1

.CISC體系的指令特征

使用微代碼。

指令集可以直接在微代碼記憶體(比主記憶體的速度快很多)里執(zhí)行,新設(shè)計的處理器,只需增加較少的電晶體就可以執(zhí)行同樣的指令集,也可以很快地編寫新的指令集程式。

龐大的指令集。

可以減少編程所需要的代碼行數(shù),減輕程式師的負擔。高階語言對應的指令集:包括雙運算元格式、寄存器到寄存器、寄存器到記憶體以及記憶體到寄存器的指令。

2

.CISC體系的優(yōu)缺點

優(yōu)點:

能夠有效縮短新指令的微代碼設(shè)計時間,允許設(shè)計師實現(xiàn)CISC體系機器的向上相容。新的系統(tǒng)可以使用一個包含早期系統(tǒng)的指令超集合,也就可以使用較早電腦上使用的相同軟體。另外微程式指令的格式與高階語言相匹配,因而編譯器并不一定要重新編寫。

缺點:

指令集以及晶片的設(shè)計比上一代產(chǎn)品更復雜,不同的指令,需要不同的時鐘周期來完成,執(zhí)行較慢的指令,將影響整臺機器的執(zhí)行效率。

(二)RISC

1

.RISC體系的指令特征

精簡指令集:

包含了簡單、基本的指令,透過這些簡單、基本的指令,就可以組合成復雜指令。

同樣長度的指令:

每條指令的長度都是相同的,可以在一個單獨操作里完成。

單機器周期指令:

大多數(shù)的指令都可以在一個機器周期里完成,并且允許處理器在同一時間內(nèi)執(zhí)行一系列的指令。

2

.RISC體系的優(yōu)缺點

優(yōu)點:

在使用相同的晶片技術(shù)和相同運行時鐘下,RISC系統(tǒng)的運行速度將是CISC的2~4倍。由于RISC處理器的指令集是精簡的,它的記憶體管理單元、浮點單元等都能設(shè)計在同一塊晶片上。RISC處理器比相對應的CISC處理器設(shè)計更簡單,所需要的時間將變得更短,并可以比CISC處理器應用更多先進的技術(shù),開發(fā)更快的下一代處理器。

缺點:

多指令的操作使得程式開發(fā)者必須小心地選用合適的編譯器,而且編寫的代碼量會變得非常大。另外就是RISC體系的處理器需要更快記憶體,這通常都集成于處理器內(nèi)部,就是L1 Cache(一級緩存)。

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

1、指令的形成

CISC

因指令復雜,故采微指令碼控制單元的設(shè)計,而RISC的指令90%是由硬體直接完成,只有10%的指令是由軟體以組合的方式完成,因此指令執(zhí)行時間上RISC較短,但RISC所須ROM空間相對的比較大,至于RAM使用大小應該與程序的應用比較有關(guān)系。

2、定址模式

CISC

的需要較多的定址模式,而RISC只有少數(shù)的定址模式,因此CPU在計算記憶體有效位址時,CISC占用的匯流排周期較多。

3、指令的執(zhí)行

CISC

指令的格式長短不一,執(zhí)行時的周期次數(shù)也不統(tǒng)一,而RISC結(jié)構(gòu)剛好相反,故適合采用管線處理架構(gòu)的設(shè)計,進而可以達到平均一周期完成一指令的方向努力。顯然的,在設(shè)計上RISC較CISC簡單,同時因為CISC的執(zhí)行步驟過多,閑置的單元電路等待時間增長,不利于平行處理的設(shè)計,所以就效能而言RISC較CISC還是站了上風,但RISC因指令精簡化后造成應用程式碼變大,需要較大的程式記憶體空間,且存在指令種類較多等等的缺點。

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

(1) X86指令集:

X86

指令集是Intel為其第一塊16位CPU(i8086)專門開發(fā)的,后來的電腦中為提高浮點數(shù)據(jù)處理能力而增加的X87芯片系列數(shù)學協(xié)處理器另外使用X87指令,以后就將X86指令集和X87指令集統(tǒng)稱為X86指令集。雖然隨著CPU技術(shù)的不斷發(fā)展,Intel陸續(xù)研制出更新型的i80386、i80486,但為了保證電腦能繼續(xù)運行以往開發(fā)的各類應用程序以保護和繼承豐富的軟件資源,所以Intel公司所生產(chǎn)的所有CPU仍然繼續(xù)使用X86指令集,所以它的CPU仍屬于X86系列。由于Intel X86系列及其兼容CPU都使用X86指令集,所以就形成了今天龐大的X86系列及兼容CPU陣容。

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

l通用寄存器組————對CPU內(nèi)核結(jié)構(gòu)的影響

X86指令集只有8個通用寄存器。所以,CISC的CPU執(zhí)行是大多數(shù)時間是在訪問存儲器中的數(shù)據(jù),而不是寄存器中的。這就拖慢了整個系統(tǒng)的速度。

RISC系統(tǒng)往往具有非常多的通用寄存器,并采用了重疊寄存器窗口和寄存器堆等技術(shù)使寄存器資源得到充分的利用。

l解碼————對CPU的外核的影響

解碼器(Decode Unit),這是x86CPU才有的東西。其作用是把長度不定的x86指令轉(zhuǎn)換為長度固定的類似于RISC的指令,并交給RISC內(nèi)核。解碼分為硬件解碼和微解碼,對于簡單的x86指令只要硬件解碼即可,速度較快,而遇到復雜的x86指令則需要進行微解碼,并把它分成若干條簡單指令,速度較慢且很復雜。Athlon也好,PIII也好,老式的CISC的X86指令集嚴重制約了他們的性能表現(xiàn)。

l尋址范圍小——約束了用戶需要

即使AMD

研發(fā)出X86-64架構(gòu)時,雖然也解決了傳統(tǒng)X86固有的一些缺點,比如尋址范圍的擴大,但這種改善并不能直接帶來性能上的提升。

(2)ARM指令集:

相比而言,以RISC為架構(gòu)體系的ARM指令集的指令格式統(tǒng)一,種類比較少,尋址方式也比復雜指令集少。當然處理速度就提高很多。ARM處理器都是所謂的精簡指令集處理機(RISC)。

其所有指令都是利用一些簡單的指令組成的,簡單的指令意味著相應硬件線路可以盡量做到最佳化,而提高執(zhí)行速率,相對的使得一個指令所需的時間減到最短。

而因為指令集的精簡,所以許多工作都必須組合簡單的指令,而針對較復雜組合的工作便需要由『編譯程式』(compiler)來執(zhí)行,而CISC體系的X86指令集因為硬體所提供的指令集較多,所以許多工作都能夠以一個或是數(shù)個指令來代替,compiler的工作因而減少許多。

除了具備上述RISC的諸多特性之外,可以總結(jié)ARM指令集架構(gòu)的其它一些特點如下:

lARM

的特點

1.體積小,低功耗,低成本,高性能

2.支持Thumb(16位)/ARM(32位)雙指令集,能很好的兼容8位/16位器件;

3.大量使用寄存器,指令執(zhí)行速度更快;

4.大多數(shù)數(shù)據(jù)操作都在寄存器中完成;

5.尋址方式靈活簡單,執(zhí)行效率高;

6.指令長度固定;

7.流水線處理方式

8.Load_store結(jié)構(gòu)

lARM的一些非RISC

思想的指令架構(gòu):

1.允許一些特定指令的執(zhí)行周期數(shù)字可變,以降低功耗,減小面積和代碼尺寸。

2.增加了桶形移位器來擴展某些指令的功能。

3.使用了16位的Thumb指令集來提高代碼密度。

4.使用條件執(zhí)行指令來提高代碼密度和性能。

5.使用增強指令來實現(xiàn)數(shù)據(jù)信號處理的功能。

(四)小結(jié):

因此,大量的復雜指令、可變的指令長度、多種的尋址方式這些CISC的特點,也是CISC的缺點,因為這些都大大增加了解碼的難度,而在現(xiàn)在的高速硬件發(fā)展下,復雜指令所帶來的速度提升早已不及在解碼上浪費點的時間。除了個人PC市場還在用X86指令集外,服務(wù)器以及更大的系統(tǒng)都早已不用CISC了。x86仍然存在的理由就是為了兼容大量的x86平臺上的軟件,同時,它的體系結(jié)構(gòu)組成的實現(xiàn)不太困難。

而RISC體系的ARM指令最大特點是指令長度固定,指令格式種類少,尋址方式種類少,大多數(shù)是簡單指令且都能在一個時鐘周期內(nèi)完成,易于設(shè)計超標量與流水線,寄存器數(shù)量多,大量操作在寄存器之間進行。優(yōu)點是不言而喻的,因此,ARM處理器才成為是當前最流行的處理器系列,是幾種主流的嵌入式處理體系結(jié)構(gòu)之一。

RISC

目前正如日中天,Intel似乎也將最終拋棄x86而轉(zhuǎn)向RISC結(jié)構(gòu)。

而實際上,隨著RISC處理器在嵌入式領(lǐng)域中大放異彩,傳統(tǒng)的X86系列CISC處理器在Intel公司的積極改進下也克服了功耗過高的問題,成為一些高性能嵌入式設(shè)備的最佳選擇,發(fā)展到今天,CISC與RISC之間的界限已經(jīng)不再是那么涇渭分明,RISC自身的設(shè)計正在變得越來越復雜(當然并不是完全依著CISC的思路變復雜),因為所有實際使用的CPU都需要不斷提高性能,所以在體系結(jié)構(gòu)中加入新特點就在所難免。另一方面,原來被認為是CISC體系結(jié)構(gòu)的處理器也吸收了許多RISC的優(yōu)點,比如Pentium處理器在內(nèi)部的實現(xiàn)中也是采用的RISC的架構(gòu),復雜的指令在內(nèi)部由微碼分解為多條精簡指令來運行,但是對于處理器外部來說,為了保持兼容性還是以CISC風格的指令集展示出來。



關(guān)鍵詞: ARM指令集X86指令

評論


技術(shù)專區(qū)

關(guān)閉