精簡(jiǎn)指令集的特點(diǎn)
精簡(jiǎn)指令集計(jì)算機(jī)RISC的特點(diǎn)是指令及其格式精少,操作和控制簡(jiǎn)捷。具體有下列幾個(gè)方面。
精簡(jiǎn)指令集
RISC結(jié)構(gòu)采用精簡(jiǎn)的,長(zhǎng)短劃一的指令集,使大多數(shù)的操作獲得了盡可能高的效率。某些在傳統(tǒng)結(jié)構(gòu)中要用多周期指令實(shí)現(xiàn)的操作,在RISC結(jié)構(gòu)中,通過(guò)機(jī)器語(yǔ)言編程,就代之以多條單周期指令了。精簡(jiǎn)的指令集大大改善了處理器的性能,并推動(dòng)了RISC的設(shè)計(jì)。對(duì)于到底精簡(jiǎn)到什么程度的問(wèn)題,沒(méi)有一定的回答。將現(xiàn)有RISC系統(tǒng)與CISC系統(tǒng)作一對(duì)比,便可見(jiàn)大概。通常,對(duì)RISC而言:
指令數(shù)少,不超過(guò)128條。
尋址方式少,不超過(guò)4種。
指令格式少,不超過(guò)4種。
處理關(guān)于擴(kuò)充指令集的建議是非常慎重的,要經(jīng)過(guò)認(rèn)真的權(quán)衡,驗(yàn)證,在看它們是否真正提高計(jì)算機(jī)的性能。例如,MIPS采用了一條規(guī)則:增加一條指令必須使性能在一定的應(yīng)用范圍內(nèi)得到1%的增益,否則這條指令將被拒絕。
指令時(shí)鐘周期,指令長(zhǎng)度相等
如果每一條指令要執(zhí)行的任務(wù)既簡(jiǎn)單又明了,則執(zhí)行每一條指令所的時(shí)間可以被壓縮周期數(shù)也可減少。RISC的設(shè)計(jì)目標(biāo)是實(shí)現(xiàn)一個(gè)機(jī)器周期執(zhí)行一條指令,使得系統(tǒng)操作更加有效。接近這個(gè)目標(biāo)的技術(shù)包括指令流水線及特定的裝/存結(jié)構(gòu)等。典型的指令可包括取指、譯碼、執(zhí)行和存裝果等階段。單周期指可通過(guò)讓所有指令為標(biāo)準(zhǔn)長(zhǎng)短來(lái)實(shí)現(xiàn)。標(biāo)準(zhǔn)指令長(zhǎng)短應(yīng)與計(jì)算機(jī)系統(tǒng)的基本字長(zhǎng)相等,通常與系統(tǒng)中數(shù)據(jù)線數(shù)相等。
在任何取指周期,完整的單個(gè)指令要傳給CPU。例如,如果基字長(zhǎng)是32位,且系統(tǒng)總線的數(shù)據(jù)部分是32線,則標(biāo)準(zhǔn)指令長(zhǎng)度是32位。要讓所有指令的執(zhí)行時(shí)間一致較困難。有些指令,包含簡(jiǎn)單的在CPU寄存器上的邏輯操作(清寄存器等),則可容易地在一個(gè)CPU時(shí)鐘周期內(nèi)執(zhí)行;其它指令可能包含內(nèi)存存取(對(duì)內(nèi)存的讀寫、取數(shù)等)或多周期操作(乘、除等),可能無(wú)法在單周期內(nèi)執(zhí)行。這給設(shè)計(jì)者提出了這樣的要求;讓大多數(shù)經(jīng)常使用的指令得以在一個(gè)單周期內(nèi)執(zhí)行。
指令流水線
減少執(zhí)行一條指令所需周期數(shù)的方法是重疊執(zhí)行多條指令。指令流水線采用這樣的工作方式:將每條指令的執(zhí)行分為幾個(gè)離散部分,然后同時(shí)執(zhí)行多條指令。任何指令的取指和執(zhí)行階段占據(jù)相同時(shí)間,理想的是一個(gè)單周期。這可說(shuō)是RISC最重要的一條設(shè)計(jì)原則。所有從內(nèi)存到CPU執(zhí)行的指令,都遵循一種恒定的流的形式。每條指令都以同樣的步調(diào)執(zhí)行,無(wú)等待的指令。CPU始終是忙的。達(dá)到流水線操作的必要條件是:
標(biāo)準(zhǔn)的,固定長(zhǎng)短的指令,它與計(jì)算機(jī)字長(zhǎng)和數(shù)據(jù)線的字長(zhǎng)相等。
所有指令的標(biāo)準(zhǔn)執(zhí)行時(shí)間,最好在一個(gè)單CPU周期內(nèi)。
例SPARC芯片等采用了取指、譯碼、執(zhí)行和寫入結(jié)果四級(jí)流水線結(jié)構(gòu),以最大限度來(lái)提高處理器性能。在每一個(gè)時(shí)鐘周期的頭上,都可以開(kāi)始執(zhí)行一條新的指令,這就保證了每個(gè)機(jī)器周期從存貯器平均取出一條新的指令,從而,總體看,大多數(shù)指令能在單周期內(nèi)實(shí)現(xiàn)。指令流水線技術(shù)可以比作一條裝配線—指令象是被加工的產(chǎn)品一樣,從一道工序流到下一道工序,一直到它執(zhí)行完為止。
因此,指令流水線利用一個(gè)等于其流水線深度的因子,來(lái)減少指令周期數(shù)是可能的,但這樣的話,要求流水線始終充滿有用指令且沒(méi)有任何東西阻礙指令通過(guò)流水線,這樣的需求給結(jié)構(gòu)增加了一定的負(fù)擔(dān)。例如,對(duì)于ALU等資源的競(jìng)爭(zhēng),阻止了流水線中指令的流動(dòng)。長(zhǎng)短不一的執(zhí)行時(shí)間所引起的不良后果更是顯而易見(jiàn),這也是為什么RISC要定義一個(gè)有前面所述特點(diǎn)的指令集的原因。
裝入和存數(shù)(LOAD/Store)結(jié)構(gòu)
執(zhí)行與內(nèi)存有關(guān)的操作指令,不是要求增加每個(gè)周期的時(shí)間,就是要求增加指令的周期數(shù),二者必取其一。因?yàn)檫@些指令要計(jì)算操作數(shù)的地址,將所需的操作數(shù)從內(nèi)存中讀出,計(jì)算得出結(jié)果,再把結(jié)果送回內(nèi)存,所以它們執(zhí)行的時(shí)間就長(zhǎng)得多。為了消除這種指令的負(fù)作用,RISC采用了這樣的裝入和存數(shù)結(jié)構(gòu):只有裝入(Load)和存數(shù)(Store)指令才去訪間內(nèi)存,所有其它操作只訪問(wèn)保存在處理器寄存器中的操作數(shù)。其優(yōu)點(diǎn)在于:
減少訪問(wèn)內(nèi)存的次數(shù),降低了對(duì)內(nèi)存帶寬的要求。
將所有的操作限制于只針對(duì)寄存器,幫助了指令集的簡(jiǎn)化。
取消內(nèi)存操作可使編釋器優(yōu)化寄存的分配更容易—這種特性減少對(duì)內(nèi)存的存取,同時(shí)也減少了每一任務(wù)的指令數(shù)。
所有這些都有助于RISC實(shí)現(xiàn)的每個(gè)周期執(zhí)行一條指令的目標(biāo)。盡管如此,裝入和存數(shù)指令仍阻礙著IRSC設(shè)計(jì)目標(biāo)的實(shí)現(xiàn)。用優(yōu)化編譯技術(shù)處理裝入指令和分支指令的延遲,有助問(wèn)題的解決。優(yōu)化編譯技術(shù)雖不是專門面向RISC結(jié)構(gòu)的,但優(yōu)化編譯器依賴于RISC結(jié)構(gòu)完成其出色的任務(wù),RISC結(jié)構(gòu)又依賴于優(yōu)化編譯器得到它們更完善的性能。編釋器要能分析數(shù)據(jù)和控制流,并在此基礎(chǔ)上調(diào)整指令的執(zhí)行順序,巧妙安排寄存器的用法。前一種作用可減少CPU的空閑時(shí)間,后一種作用可以提高寄存器中所保存的數(shù)據(jù)的可再用率,減少訪存次數(shù),縮短數(shù)據(jù)通路的長(zhǎng)度。
擁有較大寄存器組
為了便于實(shí)現(xiàn)多數(shù)指令在寄存器之間的操作,即所謂的寄存器到寄存器操作,必須有足夠量的CPU通用寄存器。足量的寄存器使得在隨后操作中需作為操作用的中間結(jié)果暫存在CPU寄存器中,因而就減少了對(duì)內(nèi)存的裝入和存數(shù),加快了運(yùn)行速度。工業(yè)化RISC系統(tǒng)中至少采用32個(gè)通用CPU寄存器。
采用硬連線控制
由于微程序設(shè)計(jì)給設(shè)計(jì)者提供的靈活性,許多CISC系統(tǒng)是微程序控制的。不同的指令通常具有不同長(zhǎng)度的微程序,這意味著每條指令執(zhí)行的周期數(shù)不一樣,這與所有指令一致的、流線的處理原則相矛盾。但這可由硬連線控制來(lái)解決,而且速度會(huì)更快。因此RISC應(yīng)該是硬連接線控制的。當(dāng)每條指令與一單條微指令有一對(duì)一相相符合的關(guān)系時(shí)可有例外,也就是每個(gè)微程序由一單個(gè)控制字組成。這種設(shè)計(jì)可與用硬連線控制一樣快,一樣高效,并使設(shè)計(jì)者得益于微程序設(shè)計(jì)的優(yōu)越性。采用硬連線控制,可使RISC系統(tǒng)控制器簡(jiǎn)單。設(shè)計(jì)的簡(jiǎn)單又使機(jī)器的布局更加合理,使得設(shè)計(jì)者可以集中精力去優(yōu)化那些剩下的,為數(shù)不多的,但又很關(guān)鍵的處理器特性。簡(jiǎn)化的結(jié)構(gòu)使芯片上面積資源緊張的狀態(tài)得以緩解,一些對(duì)性能至關(guān)重要的結(jié)構(gòu),象大的寄存器元件,轉(zhuǎn)換查找緩存(TLB)S協(xié)處理器和乘除單元都可以裝在同一塊芯片上。這些附加的資源又使處理器增加了很大的性能優(yōu)勢(shì)。事實(shí)上,RISC并非一定嚴(yán)格地完全具備上述特點(diǎn),有些稱作RISC型的系統(tǒng)甚至違背了上述某方面。上述特點(diǎn)應(yīng)被當(dāng)作一種指導(dǎo)原則來(lái)解釋RISC的性質(zhì)。放寬點(diǎn)講,滿足大部分這些特點(diǎn)的系統(tǒng)就能被看作RISC。
精簡(jiǎn)指令集有哪些指令
精簡(jiǎn)指令集 精簡(jiǎn)指令集,計(jì)算機(jī)CPU的一種設(shè)計(jì)模式,也被稱為RISC(Reduced Instruction Set Computing 的縮寫)。常見(jiàn)的精簡(jiǎn)指令集微處理器包括AVR、PIC、ARM、DEC Alpha、PA-RISC、SPARC、MIPS、Power架構(gòu)等。早期,這種CPU指令集的特點(diǎn)是指令數(shù)目少,每條指令都采用標(biāo)準(zhǔn)字長(zhǎng)、執(zhí)行時(shí)間短、CPU的實(shí)現(xiàn)細(xì)節(jié)對(duì)于機(jī)器級(jí)程序是可見(jiàn)的等等。
-
RISC
+關(guān)注
關(guān)注
6文章
480瀏覽量
84872 -
精簡(jiǎn)指令集
+關(guān)注
關(guān)注
0文章
4瀏覽量
2500
發(fā)布評(píng)論請(qǐng)先 登錄
《RISC-V 體系結(jié)構(gòu)編程與實(shí)踐(第2版)》指令集
RISC-V指令集概述
RISC-V的指令集位寬的幾點(diǎn)學(xué)習(xí)心得
RISC-V和arm指令集的對(duì)比分析
國(guó)產(chǎn)主流8位單片機(jī)-RISC架構(gòu)精簡(jiǎn)指令集單片機(jī)
RISCV的主流指令集有哪些?
復(fù)雜指令集和精簡(jiǎn)指令集有什么區(qū)別
RM46Lx40 16/32位精簡(jiǎn)指令集計(jì)算機(jī)(RISC)閃存微控制器數(shù)據(jù)表

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

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

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

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

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

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

評(píng)論