王 曉 齊文軍 劉苗輝
(遼寧大連91550部隊(duì),遼寧 大連 116023)
淺析計算機(jī)體系結(jié)構(gòu)和RISC技術(shù)
王 曉 齊文軍 劉苗輝
(遼寧大連91550部隊(duì),遼寧 大連 116023)
該文系統(tǒng)概述了現(xiàn)代計算機(jī)的兩種主要體系結(jié)構(gòu)CISC體系和RISC體系,敘述了當(dāng)代RISC主流技術(shù)及主要特征,以及發(fā)展趨勢,展望了未來計算機(jī)體系發(fā)展方向。
CISC;RISC;體系結(jié)構(gòu)
當(dāng)今微處理器體系結(jié)構(gòu),從傳統(tǒng)意義指令界面上來看基本劃分成兩大類:一類是CISC體系結(jié)構(gòu),如INTEL的X86芯片,另一類是RISC體系結(jié)構(gòu),如SPARC,MIPS,POWER PC,ALPHA等,不管是CISC體系結(jié)構(gòu)還是RISC體系結(jié)構(gòu),人們在計算機(jī)體系結(jié)構(gòu)的設(shè)計上都追求了二個方面的目標(biāo)。
CISC體系的指令集由微程序來實(shí)現(xiàn),也就是說它的每一個操作均由若干微操作的程序組合來實(shí)現(xiàn),所以CISC可以使用微指令編程的方式來實(shí)現(xiàn)多種和功能較復(fù)雜的指令。在RISC體系的指令集中,它的每一條指令直接由硬布線來實(shí)現(xiàn)。這就是說它的每條指令執(zhí)行原則上有自己一套邏輯組合的時序電路直接實(shí)現(xiàn),所以單條指令實(shí)現(xiàn)所占用的硬件資源相應(yīng)要多。因?yàn)镽ISC體系沒有能采用增加單條指令的功能或提高指令語義,也沒有去增多指令的條數(shù),而是集中于它的精簡指令集上。RISC將把用戶使用頻率高的,數(shù)量少的指令通過硬件實(shí)現(xiàn)。其基本特征是指令單周期執(zhí)行,一個周期內(nèi)比CISC計算機(jī)有更高的指令吞吐率,且指令系統(tǒng)非常簡單。RISC的思想認(rèn)為,只要給一個基本的指令,就能產(chǎn)生一個豐富的軟件系統(tǒng)。
如果說CISC是計算機(jī)技術(shù)發(fā)展的天然產(chǎn)物,那么RISC應(yīng)該是計算機(jī)技術(shù)發(fā)展的必然產(chǎn)物。兩者之間的風(fēng)格主要差異表現(xiàn)在兩種體系結(jié)構(gòu)的設(shè)計思想不同。
計算機(jī)的一個最重要的性能是速度,一般用執(zhí)行程序的時間來測量其速度。一個程序的執(zhí)行時間等于其中的指令數(shù)乘以每條指令的執(zhí)行時間,每條指令的執(zhí)行時間等于每條指令執(zhí)行的周期數(shù)和每周期的時間(即主頻的倒數(shù))。即TCPU=IN×CPI×TC,速度可從以下方面來提高:
提高主頻,則一個周期內(nèi)的門的級數(shù)要少,器件的延時要小,現(xiàn)代工藝的迅速發(fā)展使器件的延時越來越小,主頻也越來越高。提高每條指令執(zhí)行的周期數(shù)小??赏ㄟ^提高指令的語義級別來達(dá)到提高機(jī)器速度。
由此可見,CISC體系主要通過提高指令語義級別來減少實(shí)現(xiàn)程序的指令條數(shù)。簡化編譯。但實(shí)際上指令系統(tǒng)中加入許多新的復(fù)雜指令后,并沒有是編譯簡化。相反,由于復(fù)雜指令的加入,使得編譯軟件的設(shè)計更加困難,因?yàn)榫幾g的基本任務(wù)是完成大量的各種分情況(CASE)分析,指令系統(tǒng)越復(fù)雜,則分情況的數(shù)目就越多。分析就越困難,需要的時間就越長,而且就越難獲得關(guān)于代碼生成的優(yōu)化結(jié)果,統(tǒng)計表明,實(shí)際程序在執(zhí)行過程中80%-90%的時間是花在占指令系統(tǒng)10%-20%的常用簡單指令上。
上述的情況使得CISC設(shè)計風(fēng)格不可能成為經(jīng)濟(jì)有效的設(shè)計風(fēng)格。而RISC體系的指令簡單,指令集較小,指令語義低,幾乎每條指令都是單周期執(zhí)行,控制簡單,基本是一些簡單的邏輯電路,因此采用邏輯硬布線。這樣可以減少單條指令周期,提高系統(tǒng)主頻來提高指令執(zhí)行速度。為了能有效地支持高級語言并提高CPU性能,在統(tǒng)計測試地基礎(chǔ)上,RISC結(jié)構(gòu)采用了以下一些特殊技術(shù)。
在CPU中設(shè)置了較大量地寄存器,并采用窗口重疊寄存器技術(shù);采用優(yōu)化延遲轉(zhuǎn)移技術(shù);采用比較轉(zhuǎn)移指令;采用優(yōu)化編譯技術(shù)。
RISC要達(dá)到很高的性能,必須有相應(yīng)的技術(shù)支持。目前,在RISC處理機(jī)中的發(fā)展趨勢是對以下幾種關(guān)鍵技術(shù)方面進(jìn)行研究。
延時轉(zhuǎn)移技術(shù)-在RISC處理機(jī)中,指令一般采用流水線方式工作。取指令和執(zhí)行指令并行進(jìn)行。如果取指令和執(zhí)行指令各需要一個周期,那么,在正常情況下,每一個周期就能執(zhí)行完一條指令。然而,在遇到轉(zhuǎn)移指令時,流水線就可能斷流。
采用指令延遲轉(zhuǎn)移技術(shù)時,指令序列的調(diào)整由編譯器自動進(jìn)行,一般不需要人來干預(yù).但是如果要在目標(biāo)程序中進(jìn)行,就很容易引起人們的誤解。
指令取消技術(shù)。采用指令延時技術(shù),遇到條件轉(zhuǎn)移指令時,調(diào)整指令序列非常困難,在許多情況下找不到可以用來調(diào)整的指令。有些RISC處理機(jī)采用指令取消技術(shù)。在使用指令取消技術(shù)的處理機(jī)中,所有轉(zhuǎn)移指令和數(shù)據(jù)變換指令都可以決定下面待執(zhí)行的指令是否應(yīng)該取消。如果指令被取消,其效果相當(dāng)于執(zhí)行了一條空操作指令,不影響程序的運(yùn)行環(huán)境。為了提高程序的執(zhí)行效率,應(yīng)該盡量少取消指令,以保持指令流水線處于充滿狀態(tài)。因此,可以采用如下規(guī)則:如果是向后轉(zhuǎn)移(轉(zhuǎn)移的目標(biāo)地址小于當(dāng)前程序計數(shù)器的值),則在轉(zhuǎn)移不成功時取消下條指令,否則,執(zhí)行下條指令;如果是向前轉(zhuǎn)移,則正好相反,在轉(zhuǎn)移不成功時執(zhí)行下條指令,否則,取消下條指令。
重疊寄存器窗口技術(shù)。RISC的指令系統(tǒng)較簡單,CISC中的一條復(fù)雜指令在RISC中通常要用一段子程序來實(shí)現(xiàn)。因此,RISC程序中的CALL和RETURN指令要比CISC程序中的多。在執(zhí)行CALL指令時,必須把硬件現(xiàn)場(主要包括程序計數(shù)器和處理機(jī)狀態(tài)字)和程序本身的軟件現(xiàn)場(主要指在子程序中要使用的通用寄存器等)保存到主存儲器中.另外,還要把執(zhí)行子程序所需要的參數(shù)從主程序傳送過去。在執(zhí)行RETURN指令時,要做相反的工作,最后把運(yùn)算結(jié)果傳送回主程序。因此,執(zhí)行指令時,訪問存儲器的信息量非常大。
為了使RISC處理機(jī)中的指令流水線高效率地工作,盡量不斷流,優(yōu)化編譯器必須分析程序的數(shù)據(jù)流和控制流,當(dāng)發(fā)現(xiàn)指令流有斷流可能時,要調(diào)整指令序列。對有些可以通過變量重新命名來消除的數(shù)據(jù)相關(guān),要盡量消除。這樣,可以提高流水線的執(zhí)行效率,縮短程序的執(zhí)行時間。
硬件為主固件為輔。指令系統(tǒng)用微程序?qū)崿F(xiàn)的主要優(yōu)點(diǎn)是:便于實(shí)現(xiàn)復(fù)雜指令,便于修改指令系統(tǒng),增加了機(jī)器的靈活性和適應(yīng)性,主要缺點(diǎn)是:執(zhí)行速度低。RISC要求主要指令能在單周期內(nèi)執(zhí)行完成,采用微程序技術(shù)是不可能做到的。因此,RISC必須主要采用硬聯(lián)邏輯來實(shí)現(xiàn)指令系統(tǒng)。對于那些必需的復(fù)雜指令,也可用固件(微程序技術(shù))實(shí)現(xiàn)。
RISC優(yōu)化編譯技術(shù)。RISC思想在采用硬件技術(shù)提高處理機(jī)性能的同時,也十分重視軟件的優(yōu)化編譯技術(shù)??梢哉f,RISC是硬件和軟件相結(jié)合的產(chǎn)物。沒有優(yōu)化編譯技術(shù)的支持,RISC處理機(jī)的性能就不可能得到充分的發(fā)揮。
RISC的硬件設(shè)計為優(yōu)化編譯程序的設(shè)計帶來了許多方便,同時也造成一些困難,帶來的方便主要有。
由于RISC的指令系統(tǒng)比較簡單,而且對稱.均勻,優(yōu)化編譯程序不必為具有類似功能的指令做復(fù)雜的指令選擇工作。RISC的尋址方式簡單,只有LOAD和STORE指令能夠訪問存儲器,其他指令均在通用寄存器之間進(jìn)行操作。因此,可簡化優(yōu)化編譯器在選擇尋址方式過程中要做的工作,省去了是否要生成訪問存儲器指令的選擇工作。因?yàn)榇蠖鄶?shù)指令都能在一個周期內(nèi)執(zhí)行完成,為優(yōu)化編譯器調(diào)整指令序列提供了極大的方便。
隨著科學(xué)技術(shù)的飛速發(fā)展以及計算機(jī)應(yīng)用領(lǐng)域的日益擴(kuò)大,對計算機(jī)系統(tǒng)的處理能力,計算速度提出了更新更高的要求,為了大幅度提高計算機(jī)并行處理能力,在計算機(jī)系統(tǒng)結(jié)構(gòu)技術(shù)上必須有所突破,RISC技術(shù)作為計算機(jī)發(fā)展過程中的一個里程碑,為計算機(jī)結(jié)構(gòu)本身的更新?lián)Q代及計算機(jī)應(yīng)用的深入和其領(lǐng)域的拓寬開辟廣闊前景。日趨成熟的RISC技術(shù)正廣泛的應(yīng)用在計算機(jī)的許多領(lǐng)域當(dāng)中,這些領(lǐng)域的研究進(jìn)展將有力促進(jìn)新一代計算機(jī)的發(fā)展。
[1]鄭偉民,湯志忠編.計算機(jī)體系結(jié)構(gòu).北京清華大學(xué)出版社.
[2]陸鑫達(dá)主編.計算機(jī)系統(tǒng)結(jié)構(gòu).高等教育出版社.
[3]李學(xué)干主編.計算機(jī)系統(tǒng)結(jié)構(gòu).西安電子科技大學(xué)出版社.
TP303
B