精簡指令集的發(fā)展及缺點(diǎn)
RISC技術(shù)的基本出發(fā)點(diǎn)是通過精減機(jī)器指令系統(tǒng)來減少硬件設(shè)計(jì)的復(fù)雜程度,提高指令執(zhí)行速度。盡管RISC的設(shè)計(jì)思想對計(jì)算機(jī)結(jié)構(gòu)發(fā)生了巨大影響,并獲得了很大成功,但復(fù)雜指令集計(jì)算機(jī)(CISC)技術(shù)相對而言則使程序的編制來得更容易些,因此,CISC技術(shù)和RISC技術(shù)并不是相互孤立的。目前,有一種新的設(shè)計(jì)思想,它是以提高整個(gè)計(jì)算機(jī)系統(tǒng)的性能為出發(fā)點(diǎn),在結(jié)構(gòu)上吸收了CISC和RISC的優(yōu)點(diǎn)。
如許多CISC設(shè)計(jì)中采用了RISC技術(shù),美國國家半導(dǎo)休公司的NSC32532微處理器在CISC設(shè)計(jì)中采用了RISC技術(shù),使指令平均執(zhí)行時(shí)間從原來的6個(gè)機(jī)器周期降到小于2.4個(gè)機(jī)器周期,在26MHZ主頻下,運(yùn)行速度達(dá)10一12M1PS。Intel80486和Mot。r。la68040也吸收了RISC設(shè)計(jì)技術(shù),從而達(dá)到每條指令平均執(zhí)行時(shí)間小于2個(gè)機(jī)器周期,仙童公司的Clipper機(jī)是綜合R1SC與CISC技術(shù)優(yōu)點(diǎn)的32位微處理機(jī),其運(yùn)行速度高達(dá)33MIPS。因此,當(dāng)前設(shè)計(jì)處理機(jī)的兩種主要方法(RISC和ClSC技術(shù))并不是截然分開的,它們是相輔相成的,目前已有人將CISC技術(shù)和RISC技術(shù)溶合在一起,提出了可寫指令集計(jì)算機(jī)(WISC)結(jié)構(gòu)設(shè)想,并具體規(guī)定了集中Rlsc和Clsc優(yōu)點(diǎn)的策略原則,盡管如此,它仍是建立在RlSC概念筍碑上的一個(gè)RISC技犬的進(jìn)一步發(fā)屏。
目前大多數(shù)RISC處理器已達(dá)到了每個(gè)周期執(zhí)行一條指令的目標(biāo)(即CPI比率),但這并不是極限,RISC技術(shù)中又出現(xiàn)了超級標(biāo)量和超級流水線技術(shù)。超級標(biāo)量技術(shù)就是使微處理器在一個(gè)時(shí)鐘周期內(nèi)并行地執(zhí)行幾條指令,而超級流水線技術(shù)則是主流水線段(指令譯碼和指令執(zhí)行)只占一個(gè)時(shí)鐘周期的一部分,這樣,仍可在一個(gè)時(shí)鐘周期內(nèi)同時(shí)執(zhí)行幾條指令I(lǐng)ntel8096。就采用了超級標(biāo)量技術(shù),它能同時(shí)執(zhí)行整數(shù)指令和浮點(diǎn)指令.IBM公司的RS/6000也采用的是超級標(biāo)量結(jié)構(gòu),處理器包含三個(gè)不同的處理部件:定點(diǎn)處理器、浮點(diǎn)處理器、分支處理器,一個(gè)時(shí)鐘周期可執(zhí)行四條指令(4IPC),最多可達(dá)6IPc。RISc科學(xué)家指出,過去那種令人鼓舞的微處理器性能提高過程不大可能繼續(xù)下去,今后,Cache的容量及其結(jié)構(gòu)和優(yōu)化編譯器將成為提高計(jì)算機(jī)性能的關(guān)鍵因素。未來發(fā)展重點(diǎn)將放在多處理器技術(shù)上。
當(dāng)今計(jì)算機(jī)世界出現(xiàn)了尋覓更好性能的熱潮,RISC與CISC既對峙又互補(bǔ)。RISC有其自身的缺點(diǎn)。編譯后指令長度較長,內(nèi)存需要較大RISC的缺點(diǎn)與其一些優(yōu)點(diǎn)直接有關(guān)。因?yàn)镽ISC擁有的指令數(shù)少,有些在CISC中僅由一條指令完成的功能,在RISC中需二、三條甚至更多條指令,這使RISC代碼較長,因而RISC的程序需要更多的內(nèi)存,內(nèi)存與CPU間的指令沖突也會(huì)增加。研究表明,平均而言,執(zhí)行同樣的功能,一個(gè)RISC程序比一個(gè)CISC程序長30%。同時(shí),RISC對編譯器要求較高,優(yōu)化編譯器的設(shè)計(jì)是一項(xiàng)極復(fù)要且技術(shù)要求很高的工作,它又必須由RISC機(jī)制造單位自身編制,因?yàn)闆]有RISC詳細(xì)原始資料不可能產(chǎn)生編譯程序的目標(biāo)代碼。這樣,第三方公司提供新版本較困難,用戶選擇余地較小,軟件費(fèi)用增加了。大寄存器組使尋址復(fù)雜,速度降低RISC系統(tǒng)的一個(gè)有爭議的特點(diǎn)是其大寄存器組。大寄存器組有前述優(yōu)點(diǎn),但另一方面,也有缺點(diǎn),大寄存器使尋址時(shí)間增多,另個(gè),一些編譯器使小寄存器組的使用更為有效。CPU寄存器組到底應(yīng)多大還有待討論,大寄存器U組還可由高速緩存(CACHE)代替。大寄存器組的不足之處可歸結(jié)如下:
存取時(shí)間長。
寄存器組占據(jù)了更多的芯片空間。
先進(jìn)的編譯技術(shù)使小寄存器組更有效。
如果上下文轉(zhuǎn)換現(xiàn)場的所有CPU寄存器被保存,則大寄存器組會(huì)化更多存貯時(shí)間。
如果使用了窗口指針(RISC的實(shí)施要點(diǎn)之一是重疊寄存器窗口,目的是便于參數(shù)傳遞。重疊寄存器窗口要用到窗口指針),寄存器地址譯碼會(huì)較長。同時(shí)重疊寄存器也使CPU邏輯變得復(fù)雜。
硬連線控制不靈活出現(xiàn)錯(cuò)誤的可能性較大,不易發(fā)現(xiàn)和修改錯(cuò)誤,處理復(fù)雜指令也較困難。(4)單字指令不能使用用于全32位地址的直接內(nèi)存尋址方式。由于這個(gè)原因,一些生產(chǎn)廠家已使一小部分指令具有雙字卡(如INTEL80960),使用這樣的指令由程序員決定,他可僅用單字指令寫完整的程序。