按照微指令的復(fù)雜度,微處理器(MCU)可分為RISC及CISC這兩類:復(fù)雜指令集電腦CISC(Complex Instruction Set Computer)體系、精簡指令集電腦RISC(Reduce Instruction Set Computer)體系。
1. CISC體系
CISC是一種為了便于編程和提高記憶體訪問效率的晶片設(shè)計(jì)體系。早期的電腦使用組合語言編程,由于記憶體速度慢且價格昂貴,使得CISC體系得到了用武之地。在20世紀(jì)90年代中期之前,大多數(shù)的微處理器都采用CISC體系──包括Intel的80x86和Motorola的68K系列等。
(1)CISC體系的指令特征
使用微代碼。指令集可以直接在微代碼記憶體(比主記憶體的速度快很多)里執(zhí)行,新設(shè)計(jì)的處理器,只需增加較少的電晶體就可以執(zhí)行同樣的指令集,也可以很快地編寫新的指令集程式。
龐大的指令集:可以減少編程所需要的代碼行數(shù),減輕程式師的負(fù)擔(dān)。 高階語言對應(yīng)的指令集:包括雙運(yùn)算元格式、寄存器到寄存器、寄存器到記憶體以及記憶體到寄存器的指令。
(2)CISC體系的優(yōu)缺點(diǎn)
優(yōu)點(diǎn):能夠有效縮短新指令的微代碼設(shè)計(jì)時間,允許設(shè)計(jì)師實(shí)現(xiàn)CISC體系機(jī)器的向上相容。新的系統(tǒng)可以使用一個包含早期系統(tǒng)的指令超集合,也就可以使用較早電腦上使用的相同軟體。另外微程式指令的格式與高階語言相匹配,因而編譯器并不一定要重新編寫。
缺點(diǎn):指令集以及晶片的設(shè)計(jì)比上一代產(chǎn)品更復(fù)雜,不同的指令,需要不同的時鐘周期來完成,執(zhí)行較慢的指令,將影響整臺機(jī)器的執(zhí)行效率。
2. RISC體系
RISC是為了提高處理器運(yùn)行的速度而設(shè)計(jì)的晶片體系。它的關(guān)鍵技術(shù)在于流水線操作(Pipelining):在一個時鐘周期里完成多條指令。而超流水線以及超標(biāo)量技術(shù)已普遍在晶片設(shè)計(jì)中使用。RISC體系多用于非x86陣營高性能微處理器CPU,像HOLTEK MCU系列等。
(1)RISC體系的指令特征
精簡指令集:包含了簡單、基本的指令,透過這些簡單、基本的指令,就可以組合成復(fù)雜指令。
同樣長度的指令:每條指令的長度都是相同的,可以在一個單獨(dú)操作里完成。
單機(jī)器周期指令:大多數(shù)的指令都可以在一個機(jī)器周期里完成,并且允許處理器在同一時間內(nèi)執(zhí)行一系列的指令。
(2)RISC體系的優(yōu)缺點(diǎn)
優(yōu)點(diǎn):在使用相同的晶片技術(shù)和相同運(yùn)行時鐘下,RISC系統(tǒng)的運(yùn)行速度將是CISC的2~4倍。由于RISC處理器的指令集是精簡的,它的記憶體管理單元、浮點(diǎn)單元等都能設(shè)計(jì)在同一塊晶片上。RISC處理器比相對應(yīng)的CISC處理器設(shè)計(jì)更簡單,所需要的時間將變得更短,并可以比CISC處理器應(yīng)用更多先進(jìn)的技術(shù), 開發(fā)更快的下一代處理器。
缺點(diǎn):多指令的操作使得程式開發(fā)者必須小心地選用合適的編譯器,而且編寫的代碼量會變得非常大。另外就是RISC體系的處理器需要更快記憶體,這通常都集成于處理器內(nèi)部,就是L1 Cache(一級緩存)。
綜合上面所述,若要再進(jìn)一步比較CISC與RISC之差異,我們可以由以下幾點(diǎn)來分析:
(1)指令的形成:CISC因指令復(fù)雜,故采微指令碼控制單元的設(shè)計(jì),而RISC的指令90%是由硬體直接完成,只有10%的指令是由軟體以組合的方式完成,因此指令執(zhí)行時間上RISC較短,但RISC所須ROM空間相對的比較大,至于RAM使用大小應(yīng)該與程序的應(yīng)用比較有關(guān)系。
(2)定址模式:CISC的需要較多的定址模式,而RISC只有少數(shù)的定址模式,因此CPU在計(jì)算記憶體有效位址時,CISC占用的匯流排周期較多。
(3)指令的執(zhí)行:CISC指令的格式長短不一,執(zhí)行時的周期次數(shù)也不統(tǒng)一,而RISC結(jié)構(gòu)剛好相反,故適合采用管線處理架構(gòu)的設(shè)計(jì),進(jìn)而可以達(dá)到平均一周期完成一指令的方向努力。顯然的,在設(shè)計(jì)上RISC較CISC簡單,同時因?yàn)镃ISC的執(zhí)行步驟過多,閑置的單元電路等待時間增長,不利于平行處理的設(shè)計(jì),所以就效能而言RISC較CISC還是站了上風(fēng),但RISC因指令精簡化后造成應(yīng)用程式碼變大,需要較大的程式記憶體空間,且存在指令種類較多等等的缺點(diǎn)。