0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

計(jì)算機(jī)兩種花指令集CISC和RISC的區(qū)別

strongerHuang ? 來(lái)源:strongerHuang ? 作者:strongerHuang ? 2022-03-30 13:48 ? 次閱讀

首先給大家描述一下計(jì)算機(jī)的兩種花指令集:

CISC:Complex Instruction Set Computer,復(fù)雜指令集計(jì)算機(jī);RISC:Reduced Instruction Set Computer,精簡(jiǎn)指令集計(jì)算機(jī);

背景

指令的強(qiáng)弱是CPU的重要指標(biāo),指令集是提高微處理器效率的最有效工具之一。從現(xiàn)階段的主流體系結(jié)構(gòu)講,指令集可分為復(fù)雜指令集(CISC)和精簡(jiǎn)指令集(RISC)兩部分。相應(yīng)的,微處理隨著微指令的復(fù)雜度也可分為 CISC 及 RISC 這兩類(lèi)。

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

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

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

因此我們可以從其所屬體系比較入手,來(lái)進(jìn)行X86指令集與ARM指令集的比較。

CISC復(fù)雜指令集

1.CISC體系的指令特征

1) 使用微代碼。指令集可以直接在微代碼存儲(chǔ)器(比主存儲(chǔ)器的速度快很多)里執(zhí)行,新設(shè)計(jì)的處理器,只需增加較少的電晶體就可以執(zhí)行同樣的指令集,也可以很快地編寫(xiě)新的指令集程序。 2) 龐大的指令集??梢詼p少編程所需要的代碼行數(shù),減輕程序員的負(fù)擔(dān)。高級(jí)語(yǔ)言對(duì)應(yīng)的指令集:包括雙運(yùn)算元格式、寄存器到寄存器、寄存器到存儲(chǔ)器以及存儲(chǔ)器到寄存器的指令。

2. CISC體系的優(yōu)缺點(diǎn)

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

2) 缺點(diǎn):指令集以及芯片的設(shè)計(jì)比上一代產(chǎn)品更復(fù)雜,不同的指令,需要不同的時(shí)鐘周期來(lái)完成,執(zhí)行較慢的指令,將影響整臺(tái)機(jī)器的執(zhí)行效率。

RISC精簡(jiǎn)指令集

1. RISC體系的指令特征

1) 精簡(jiǎn)指令集:包含了簡(jiǎn)單、基本的指令,通過(guò)這些簡(jiǎn)單、基本的指令,就可以組合成復(fù)雜指令。

2) 同樣長(zhǎng)度的指令:每條指令的長(zhǎng)度都是相同的,可以在一個(gè)單獨(dú)操作里完成。

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

2. RISC體系的優(yōu)缺點(diǎn)

1) 優(yōu)點(diǎn):在使用相同的芯片技術(shù)和相同運(yùn)行時(shí)鐘下,RISC 系統(tǒng)的運(yùn)行速度將是 CISC 的2~4倍。由于RISC處理器的指令集是精簡(jiǎn)的,它的內(nèi)存管理單元、浮點(diǎn)單元等都能設(shè)計(jì)在同一塊芯片上。RISC 處理器比相對(duì)應(yīng)的 CISC 處理器設(shè)計(jì)更簡(jiǎn)單,所需要的時(shí)間將變得更短,并可以比CISC處理器應(yīng)用更多先進(jìn)的技術(shù),開(kāi)發(fā)更快的下一代處理器。

2) 缺點(diǎn):多指令的操作使得程序開(kāi)發(fā)者必須小心地選用合適的編譯器,而且編寫(xiě)的代碼量會(huì)變得非常大。另外就是RISC體系的處理器需要更快的存儲(chǔ)器,這通常都集成于處理器內(nèi)部,就是L1 Cache(一級(jí)緩存)。

CISC和RISC區(qū)別

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

2. 尋址模式:CISC的需要較多的尋址模式,而RISC只有少數(shù)的尋址模式,因此CPU在計(jì)算存儲(chǔ)器有效位址時(shí),CISC占用的匯流排周期較多。

3. 指令的執(zhí)行:CISC指令的格式長(zhǎng)短不一,執(zhí)行時(shí)的周期次數(shù)也不統(tǒng)一,而RISC結(jié)構(gòu)剛好相反,故適合采用流水線處理架構(gòu)的設(shè)計(jì),進(jìn)而可以達(dá)到平均一周期完成一指令的方向努力。顯然的,在設(shè)計(jì)上RISC較CISC簡(jiǎn)單,同時(shí)因?yàn)镃ISC的執(zhí)行步驟過(guò)多,閑置的單元電路等待時(shí)間增長(zhǎng),不利于平行處理的設(shè)計(jì),所以就效能而言RISC較CISC還是占了上風(fēng),但RISC因指令精簡(jiǎn)化后造成應(yīng)用程式碼變大,需要較大的存儲(chǔ)器空間,且存在指令種類(lèi)較多等等的缺點(diǎn)。

x86指令集和ARM指令集

1. X86指令集

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

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

通用寄存器組——對(duì)CPU內(nèi)核結(jié)構(gòu)的影響。X86指令集只有8個(gè)通用寄存器,所以,CISC的CPU執(zhí)行是大多數(shù)時(shí)間是在訪問(wèn)存儲(chǔ)器中的數(shù)據(jù),而不是寄存器中的。這就拖慢了整個(gè)系統(tǒng)的速度。RISC系統(tǒng)往往具有非常多的通用寄存器,并采用了重疊寄存器窗口和寄存器堆等技術(shù)使寄存器資源得到充分的利用。

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

尋址范圍小——約束了用戶(hù)需要。即使AMD研發(fā)出X86-64架構(gòu)時(shí),雖然也解決了傳統(tǒng)X86固有的一些缺點(diǎn),比如尋址范圍的擴(kuò)大,但這種改善并不能直接帶來(lái)性能上的提升。

2.ARM指令集

相比而言,以RISC為架構(gòu)體系的ARM指令集的指令格式統(tǒng)一,種類(lèi)比較少,尋址方式也比復(fù)雜指令集少。當(dāng)然處理速度就提高很多。ARM處理器都是所謂的精簡(jiǎn)指令集處理機(jī)(RISC)。其所有指令都是利用一些簡(jiǎn)單的指令組成的,簡(jiǎn)單的指令意味著相應(yīng)硬件線路可以盡量做到最佳化,而提高執(zhí)行速率,相對(duì)的使得一個(gè)指令所需的時(shí)間減到最短。而因?yàn)橹噶罴木?jiǎn),許多工作都必須組合簡(jiǎn)單的指令來(lái)完成,而針對(duì)較復(fù)雜組合的工作便需要由編譯器(compiler) 來(lái)執(zhí)行,而 CISC 體系的X86指令集因?yàn)橛搀w所提供的指令集較多,所以許多工作都能夠以一個(gè)或是數(shù)個(gè)指令來(lái)代替,編譯器的工作因而減少許多。

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

ARM的特點(diǎn):

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

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

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

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

尋址方式靈活簡(jiǎn)單,執(zhí)行效率高;

指令長(zhǎng)度固定;

流水線處理方式;

load-store結(jié)構(gòu)。

ARM的一些非RISC思想的指令架構(gòu):

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

增加了桶形移位器來(lái)擴(kuò)展某些指令的功能;

使用了16位的Thumb指令集來(lái)提高代碼密度;

使用條件執(zhí)行指令來(lái)提高代碼密度和性能;

使用增強(qiáng)指令來(lái)實(shí)現(xiàn)數(shù)字信號(hào)處理的功能。

總結(jié)

因此,大量的復(fù)雜指令、可變的指令長(zhǎng)度、多種的尋址方式這些CISC的特點(diǎn),也是CISC的缺點(diǎn),因?yàn)檫@些都大大增加了解碼的難度,而在現(xiàn)在的高速硬件發(fā)展下,復(fù)雜指令所帶來(lái)的速度提升早已不及在解碼上浪費(fèi)的時(shí)間。

除了個(gè)人PC市場(chǎng)還在用X86指令集外,服務(wù)器以及更大的系統(tǒng)都早已不用CISC了。x86仍然存在的理由就是為了兼容大量的x86平臺(tái)上的軟件。同時(shí),它的體系結(jié)構(gòu)組成的實(shí)現(xiàn)不太困難。

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

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 計(jì)算機(jī)
    +關(guān)注

    關(guān)注

    19

    文章

    7292

    瀏覽量

    87526
  • 微處理器
    +關(guān)注

    關(guān)注

    11

    文章

    2231

    瀏覽量

    82207

原文標(biāo)題:ARM基礎(chǔ)教程 | ARM 和 x86 的區(qū)別

文章出處:【微信號(hào):strongerHuang,微信公眾號(hào):strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    指令集架構(gòu)與微架構(gòu)的區(qū)別

    指令集架構(gòu)(Instruction Set Architecture,ISA)與微架構(gòu)(Microarchitecture)是計(jì)算機(jī)體系結(jié)構(gòu)中的個(gè)重要概念,它們?cè)谔幚砥鞯脑O(shè)計(jì)和實(shí)現(xiàn)中扮演著不同的角色。以下是對(duì)
    的頭像 發(fā)表于 10-05 15:10 ?249次閱讀

    RISC-V和arm指令集的對(duì)比分析

    RISC-V和ARM指令集兩種不同的計(jì)算機(jī)指令集架構(gòu),它們?cè)诙鄠€(gè)方面存在顯著的差異。以下是對(duì)這兩種
    發(fā)表于 09-28 11:05

    ARM處理器和CISC處理器的區(qū)別

    ARM處理器和CISC(復(fù)雜指令集計(jì)算機(jī))處理器在多個(gè)方面存在顯著的區(qū)別。這些區(qū)別主要體現(xiàn)在架構(gòu)原理、性能與功耗、設(shè)計(jì)目標(biāo)、應(yīng)用領(lǐng)域以及市場(chǎng)
    的頭像 發(fā)表于 09-10 11:10 ?267次閱讀

    復(fù)雜指令集和精簡(jiǎn)指令集有什么區(qū)別

    復(fù)雜指令集CISC,Complex Instruction Set Computer)和精簡(jiǎn)指令集RISC,Reduced Instruction Set Computer)是微處
    的頭像 發(fā)表于 08-22 11:00 ?1842次閱讀

    RM46Lx40 16/32位精簡(jiǎn)指令集計(jì)算機(jī)(RISC)閃存微控制器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《RM46Lx40 16/32位精簡(jiǎn)指令集計(jì)算機(jī)(RISC)閃存微控制器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-08 10:58 ?0次下載
    RM46Lx40 16/32位精簡(jiǎn)<b class='flag-5'>指令集計(jì)算機(jī)</b>(<b class='flag-5'>RISC</b>)閃存微控制器數(shù)據(jù)表

    RM46L852 16/32位精簡(jiǎn)指令集計(jì)算機(jī)(RISC)閃存微控制器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《RM46L852 16/32位精簡(jiǎn)指令集計(jì)算機(jī)(RISC)閃存微控制器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-08 10:57 ?0次下載
    RM46L852 16/32位精簡(jiǎn)<b class='flag-5'>指令集計(jì)算機(jī)</b>(<b class='flag-5'>RISC</b>)閃存微控制器數(shù)據(jù)表

    RM46Lx50 16/32位精簡(jiǎn)指令集計(jì)算機(jī)(RISC)閃存微控制器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《RM46Lx50 16/32位精簡(jiǎn)指令集計(jì)算機(jī)(RISC)閃存微控制器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-08 10:44 ?0次下載
    RM46Lx50 16/32位精簡(jiǎn)<b class='flag-5'>指令集計(jì)算機(jī)</b>(<b class='flag-5'>RISC</b>)閃存微控制器數(shù)據(jù)表

    RM46Lx30 16/32位精簡(jiǎn)指令集計(jì)算機(jī)(RISC)閃存微控制器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《RM46Lx30 16/32位精簡(jiǎn)指令集計(jì)算機(jī)(RISC)閃存微控制器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-08 10:43 ?0次下載
    RM46Lx30 16/32位精簡(jiǎn)<b class='flag-5'>指令集計(jì)算機(jī)</b>(<b class='flag-5'>RISC</b>)閃存微控制器數(shù)據(jù)表

    TMS470MF06607 16/32位精簡(jiǎn)指令集計(jì)算機(jī)(RISC)閃存微控制器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《TMS470MF06607 16/32位精簡(jiǎn)指令集計(jì)算機(jī)(RISC)閃存微控制器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-07 11:04 ?0次下載
    TMS470MF06607 16/32位精簡(jiǎn)<b class='flag-5'>指令集計(jì)算機(jī)</b>(<b class='flag-5'>RISC</b>)閃存微控制器數(shù)據(jù)表

    TMS570LS系列16/32位精簡(jiǎn)指令集計(jì)算機(jī)(RISC)閃存微控制器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《TMS570LS系列16/32位精簡(jiǎn)指令集計(jì)算機(jī)(RISC)閃存微控制器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-06 14:16 ?0次下載
    TMS570LS系列16/32位精簡(jiǎn)<b class='flag-5'>指令集計(jì)算機(jī)</b>(<b class='flag-5'>RISC</b>)閃存微控制器數(shù)據(jù)表

    CISC(復(fù)雜指令集)與RISC(精簡(jiǎn)指令集)的區(qū)別  

    Instruction Set Computers,復(fù)雜指令集計(jì)算)和RISC(Reduced Instruction Set Computers)是
    發(fā)表于 07-30 17:21

    嵌入式微處理器有哪兩種架構(gòu)?區(qū)別是什么?

    是精簡(jiǎn)指令集計(jì)算機(jī)(Reduced Instruction Set Computer,簡(jiǎn)稱(chēng)RISC)架構(gòu)和復(fù)雜指令集計(jì)算機(jī)(Complex Instruction Set Comput
    的頭像 發(fā)表于 05-04 11:16 ?827次閱讀

    嵌入式微處理器有哪兩種架構(gòu)?區(qū)別是什么?

    計(jì)算機(jī)CISC)架構(gòu)和精簡(jiǎn)指令集計(jì)算機(jī)RISC)架構(gòu)。 CISC架構(gòu)(Complex Instruction Set Computer,
    的頭像 發(fā)表于 04-21 09:41 ?514次閱讀

    什么是RISC-V?RISC-V指令集的優(yōu)勢(shì)

    CPU 支持的所有指令指令的字節(jié)級(jí)編碼就是這個(gè) CPU 的指令集架構(gòu)(Instruction Set Architecture,ISA),指令集
    發(fā)表于 03-05 10:31 ?639次閱讀
    什么是<b class='flag-5'>RISC</b>-V?<b class='flag-5'>RISC</b>-V<b class='flag-5'>指令集</b>的優(yōu)勢(shì)

    一文詳解CPU概念及運(yùn)作原理

    CPU指令集(Instruction Set)是CPU中計(jì)算和控制計(jì)算機(jī)系統(tǒng)所有指令的集合。計(jì)算機(jī)的程序最終需要轉(zhuǎn)化為“
    發(fā)表于 01-16 10:59 ?1389次閱讀
    一文詳解CPU概念及運(yùn)作原理