計算機組成原理白中英主編課件chp4_第1頁
計算機組成原理白中英主編課件chp4_第2頁
計算機組成原理白中英主編課件chp4_第3頁
計算機組成原理白中英主編課件chp4_第4頁
計算機組成原理白中英主編課件chp4_第5頁
已閱讀5頁,還剩95頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1第四章指令系統(tǒng)4.1指令系統(tǒng)的發(fā)展與性能要求4.2指令格式與4.3操作數類型4.4指令和數據的尋址方式4.5典型指令返回考綱要求(一)指令格式

1.指令的基本格式

2.定長操作碼指令格式

3.擴展操作碼指令格式

(二)指令的尋址方式

1.有效地址的概念

2.數據尋址和指令尋址

3.常見尋址方式

(三)CISC和RISC的基本概念

234.1指令系統(tǒng)的發(fā)展與性能要求1、指令在計算機系統(tǒng)中的地位(1)是軟件和硬件分界面的一個主要標志硬件設計人員采用各種手段實現它;軟件設計人員則利用它編制各種各樣的系統(tǒng)軟件和應用軟件(2)是硬件設計人員和軟件設計人員之間的分界面,也是他們之間溝通的橋梁。44.1指令系統(tǒng)的發(fā)展與性能要求2、指令系統(tǒng)基本概念指令:就是要計算機執(zhí)行某種操作的命令。從計算機組成的層次結構來說,計算機的指令有微指令、機器指令和宏指令之分。微指令是微程序級的命令,它屬于硬件;宏指令:由若干條機器指令組成的軟件指令,它屬于軟件;機器指令:介于微指令與宏指令之間,通常簡稱為指令,每一條指令可完成一個獨立的算術運算或邏輯運算操作。本章所討論的指令,是機器指令。一臺計算機中所有機器指令的集合,稱為這臺計算機的指令系統(tǒng)。指令系統(tǒng)是表征一臺計算機性能的重要因素,它的格式與功能不僅直接影響到機器的硬件結構,而且也直接影響到系統(tǒng)軟件,影響到機器的適用范圍54.1指令系統(tǒng)的發(fā)展與性能要求3、發(fā)展情況復雜指令系統(tǒng)計算機,簡稱CISC。但是如此龐大的指令系統(tǒng)不但使計算機的研制周期變長,難以保證正確性,不易調試維護,而且由于采用了大量使用頻率很低的復雜指令而造成硬件資源浪費。精簡指令系統(tǒng)計算機:簡稱RISC,人們又提出了便于VLSI技術實現的精簡指令系統(tǒng)計算機。小型機:常見型號。IBM公司生產。as400(銀行)。risc6000(證券公司)。64.1指令系統(tǒng)的發(fā)展與性能要求4、為什么會出現CISC到RISC的轉變(作業(yè))2/8規(guī)則控制器設計難度下降74.1指令系統(tǒng)的發(fā)展與性能要求5、對指令系統(tǒng)的要求完備性:完備性是指用匯編語言編寫各種程序時,指令系統(tǒng)直接提供的指令足夠使用,而不必用軟件來實現。完備性要求指令系統(tǒng)豐富、功能齊全、使用方便。一臺計算機中最基本、必不可少的指令是不多的。許多指令可用最基本的指令編程來實現。例如,乘除運算指令、浮點運算指令可直接用硬件來實現,也可用基本指令編寫的程序來實現。采用硬件指令的目的是提高程序執(zhí)行速度,便于用戶編寫程序。有效性:有效性是指利用該指令系統(tǒng)所編寫的程序能夠高效率地運行。高效率主要表現在程序占據存儲空間小、執(zhí)行速度快。一般來說,一個功能更強、更完善的指令系統(tǒng),必定有更好的有效性。規(guī)整性:規(guī)整性包括指令系統(tǒng)的對稱性、勻齊性、指令格式和數據格式的一致性。對稱性是指:在指令系統(tǒng)中所有的寄存器和存儲器單元都可同等對待,所有的指令都可使用各種尋址方式;勻齊性是指:一種操作性質的指令可以支持各種數據類型,如算術運算指令可支持字節(jié)、字、雙字整數的運算,十進制數運算和單、雙精度浮點數運算等;指令格式和數據格式的一致性是指:指令長度和數據長度有一定的關系,以方便處理和存取。例如指令長度和數據長度通常是字節(jié)長度的整數倍。兼容性:系列機各機種之間具有相同的基本結構和共同的基本指令集,因而指令系統(tǒng)是兼容的,即各機種上基本軟件可以通用。但由于不同機種推出的時間不同,在結構和性能上有差異,做到所有軟件都完全兼容是不可能的,只能做到“向上兼容(對指令系統(tǒng)的要求)”,即低檔機上運行的軟件可以在高檔機上運行。(由于時間差異不可能完全兼容,低檔機上運行的軟件可以在高檔機上運行)84.1指令系統(tǒng)的發(fā)展與性能要求6、低級語言與高級語言關系

比較內容高級語言低級語言(機器語言)

1對程序員的訓練要求(1)通用算法(2)語言規(guī)則(3)硬件知識

有較少不要

有較多要

2對機器獨立的程度獨立不獨立

3編制程序的難易程度易難

4編制程序所需時間短較長

5程序執(zhí)行時間較長短

6編譯過程中對計算機資源的要求多少94.2指令格式影響計算機指令格式的因素(作業(yè):自己模擬的指令系統(tǒng)計算加法,輸入,存儲,計算,存儲,輸出。三位二進制數表示指令,地址1000——1111。指令與結果都放在地址內。)機器的字長存儲器的容量指令的功能指令能反映以下信息做什么操作如果需要操作數,從哪里取結果送哪里下一條指令從哪里取所以指令格式包括兩個方面:操作碼字段地址碼字段104.2指令格式

一、操作碼設計計算機時,對指令系統(tǒng)的每一條指令都要規(guī)定一個操作碼。指令的操作碼OP表示該指令應進行什么性質的操作,如進行加法、減法、乘法、除法、取數、存數等等。不同的指令用操作碼字段的不同編碼來表示,每一種編碼代表一種指令。組成操作碼字段的位數一般取決于計算機指令系統(tǒng)的規(guī)模。較大的指令系統(tǒng)就需要更多的位數來表示每條特定的指令。等長(指令規(guī)整,譯碼簡單)例如IBM370機,該機字長32位,16個通用寄存器R0~R15,共有183條指令;指令的長度可以分為16位、32位和48位等幾種,所有指令的操作碼都是8位固定長度。固定長度編碼的主要缺點是:信息的冗余極大,使程序的總長度增加。11二、地址碼根據一條指令中有幾個操作數地址,可將該指令稱為幾操作數指令或幾地址指令。三地址指令二地址指令單地址指令零地址指令操作碼(4位)A1(6位)操作碼(4位)A1(6位)A2(6位)操作碼(4位)A1(6位)A2(6位)操作碼A3(6位)12二、地址碼三地址指令指令格式如下:操作碼θ

第一操作數A1

第二操作數A2

結果A3功能描述:(A1)θ(A2)→A3(PC)+1→PC這種格式雖然省去了一個地址,但指令長度仍比較長,所以只在字長較長的大、中型機中使用,而小型、微型機中很少使用。θA3A2A113二、地址碼二地址指令其格式如下:

操作碼θ第一操作數A1第二操作數A2

功能描述:(A1)θ(A2)→A1(PC)+1→PC二地址指令在計算機中得到了廣泛的應用,但是在使用時有一點必須注意:指令執(zhí)行之后,A1中原存的內容已經被新的運算結果替換了。θA2A114二、地址碼二地址地址根據操作數的物理位置分為:SS存儲器-存儲器類型RS寄存器-存儲器類型RR寄存器-寄存器類型 慢15二、地址碼一地址指令指令格式為:操作碼θ

第一操作數A1功能描述:(AC)θ(A1)→A1(PC)+1→PC單操作數運算指令,如“+1”、“-1”、“求反”指令中給出一個源操作數的地址θA116二、地址碼零地址指令

其格式為:操作碼θ“停機”、“空操作”、“清除”等控制類指令。θ17三、指令長度概念指令字長度(一個指令字包含二進制代碼的位數)機器字長:計算機能直接處理的二進制數據的位數。單字長指令半字長指令雙字長指令多字長指令的優(yōu)缺點優(yōu)點提供足夠的地址位來解決訪問內存任何單元的尋址問題;缺點必須兩次或多次訪問內存以取出一整條指令,降低了CPU的運算速度,又占用了更多的存儲空間。指令系統(tǒng)中指令采用等長指令的優(yōu)點:各種指令字長度是相等的,指令字結構簡單,且指令字長度是不變的;采用非等長指令的的優(yōu)點:各種指令字長度隨指令功能而異,結構靈活,能充分利用指令長度,但指令的控制較復雜。指令格式優(yōu)化優(yōu)化原由: 指令字長要短,以得到時間和空間上的優(yōu)勢;而指令字長必須有足夠的長度。(矛盾!)原則: 在不減少指令數量的前提下,盡可能縮短指令字的長度。指令字長一般應是機器字符長度的整數倍以便存儲系統(tǒng)的管理。若機器中字長是L位,則指令字長最好是0.5L,L,2L,4L,8L等。優(yōu)化方法:1、盡可能減少地址碼的個數 盡可能采用單地址指令格式;操作數和運算結果盡可能存于CPU或通用寄存器中。

2、操作碼長度的縮短 操作碼有兩種編碼格式:

固定格式:操作碼長度固定,且集中放在指令字的一個字段中;

可變格式:即操作碼長度可變,且分散地放在指令字的不同字段中。擴展操作碼(可變格式)1、要點: (1)

操作碼位數隨地址碼個數變化采取可變長度的類型; (2)

各指令間指令碼一定不重復; (3)

根據需要靈活變通。一個重要的原則是使用頻率高的指令應分配較短的操作碼,使用頻率低的指令分配較長的操作碼。2、比較 假設一臺計算機指令字長12位,操作碼與地址碼都為3位,如圖所示。(1)

方法一:固定格式,則最多可以設計8條三地址指令。A1操作碼OPA3A23位3位3位3位A1操作碼OPA3A22)

方法二:擴展操作碼 指令字長為12位,每個地址碼為3位,采用擴展操作碼的方式,設計4條三地址指令、255條一地址指令和8條零地址指令。4條三地址指令

000*********~011*********255條一地址指令

100000000***~111111110***8條零地址指令

111111

111000~111111111

111操作碼平均長度為 (4*3+255*9+8*12)/(4+255+8)=9例:某指令系統(tǒng)指令長16位,每個操作數的地址碼長6位,指令分為無操作數、單操作數和雙操作數三類。若雙操作數指令有K條,無操作數指令有L條,問單操作數指令最多可能有多少條?A1(6位)操作碼(4位)A2(6位)解:設單操作數指令最多可以有x條,則:無操作數指令L=[(-K)·-x]·∴x=(-K)·-L/24五、指令助記符由于硬件只能識別1和0,所以采用二進制操作碼是必要的,但是我們用二進制來書寫程序卻非常麻煩。為了便于書寫和閱讀程序,每條指令通常用3個或4個英文縮寫字母來表示。這種縮寫碼叫做指令助記符用3~4個英文字母來表示操作碼,一般為英文縮寫不同的計算機系統(tǒng),規(guī)定不一樣必須用匯編語言翻譯成二進制代碼25六、指令格式舉例8位微型計算機的指令格式如8088,字長8位,指令結構可變包括單字長指令、雙字長指令和三字長指令操作碼長度固定PDP/11系列機的指令格式字長16位單字長指令操作碼字段不固定26七、Pentium指令格式指令長度可變,最短1個字節(jié),最長12個字節(jié),典型的CISC指令系統(tǒng)由可選前綴(0~4)、操作碼(1~2)、一個由mod-R/M字節(jié)和一個SIB(ScaleIndexBase)比例變址字節(jié)組成的地址指定器、一個可選的位移量(0~4)和一個可選的立即數字段(0~4)構成。指令前綴段取代操作數長度取代地址長度取代操作碼ModReg或操作碼R/MSIB位移量立即數27七、Pentium指令格式指令前綴中的重復前綴指定串的重復操作,這樣使Pentium處理串比軟循環(huán)快得多。LOCK前綴用于多CPU環(huán)境中對共享存儲器的排他性訪問段取代用于改變默認段寄存器的情況操作數長度取代和地址長度取代用于在保護模式下決定操作數和指令的長度以下4個指令前綴都是可選的,分別為0或1個字節(jié)指令前綴段取代操作數長度取代地址長度取代28七、Pentium指令格式操作碼是必須的,1~2個字節(jié)Mod、Reg、R/M為共1個字節(jié),是可選的。mod-R/M指定的操作數是在R中還是在M中。mod(2位)R/M(3位)的32種值構成了8種寄存器方式和24種變址方式(參考匯編語言教材);Reg或OP(3位)指定另一個操作數(寄存器)或用作OP的補充。操作碼ModReg或操作碼R/MSIB位移量立即數1個字節(jié)1個字節(jié)29七、Pentium指令格式S、I、B共1個字節(jié),分別是比例系數、變址寄存器號、基址寄存器號,可選。mod-R/M中的某些編碼要求SIB字節(jié)來完成尋址方式的指定;SS(2)指定比例變換的因子,Index(2)指定變址寄存器,Base(3)指定基址寄存器位移量:可以是0,1,2,4個字節(jié)立即數:可以是0,1,2,4個字節(jié)操作碼ModReg或操作碼R/MSIB位移量立即數304.3操作數類型操作數類型地址數據:地址實際上也是一種形式的數據。數值數據:計算機中普遍使用的三種類型的數值數據。字符數據:文本數據或字符串,目前廣泛使用ASCII碼。邏輯數據:一個單元中有幾位二進制bit項組成,每個bit的值可以是1或0。當數據以這種方式看待時,稱為邏輯性數據。Pentium數據類型(見P111表4.4)常規(guī)數據類型整數數據類型……..314.4指令和數據的尋址方式研究問題確定本條指令中各操作數的地址下一條指令的地址尋址方式是指CPU根據指令中給出的地址碼字段尋找相應的操作數的方式,它與計算機硬件結構緊密相關,而且對指令的格式和功能有很大的影響。324.4指令和數據的尋址方式指令的尋址方式順序方式PC跳躍方式334.4指令和數據的尋址方式操作數的尋址方式形成操作數有效地址的方法,稱為尋址方式。操作數通常放在哪兒呢?344.4指令和數據的尋址方式操作數包含在指令中;操作數包含在CPU的某一個內部寄存器中;操作數包含在主存儲器(內存)中;操作數包含在I/O設備的端口中根據操作數放在不同的地方,從而派生各種不同的尋址方式,往往不同的計算機具有不同的尋址方式。操作數從哪?。坎僮鲾档膸追N存放位置(簡答)35指令在寄存器中就在指令中在內存中,加括號表示那里放的是D的地址直接找地址在寄存器中放操作數在寄存器中存放操作數地址21,232361、隱含尋址指令中隱含著操作數的地址如某些運算,隱含了累加器AC作為源和目的寄存器如8086匯編中的STC指令,設置標志寄存器的C為1372、立即尋址(指令就是操作數本身)立即尋址是一種特殊的尋址方式,指令中在操作碼字段后面的部分不是通常意義上的操作數地址,而是操作數本身,也就是說數據就包含在指令中,只要取出指令,就取出了可以立即使用的操作數,因此,這樣的操作數被稱為立即數。指令格式:操作碼θ

操作數A382、立即尋址特點:在取指令時,操作碼和操作數被同時取出,不必再次訪問存儲器,從而提高了指令的執(zhí)行速度。但是,因為操作數是指令的一部分,不能被修改;而且對于定長指令格式,操作數的大小將受到指令長度的限制,所以這種尋址方式靈活性最差通常用于給某一寄存器或主存單元賦初值,或者用于提供一個常數。393、直接尋址(在內存中直接找)

指令中地址碼字段給出的地址A就是操作數的有效地址EA(EffectiveAddress),即EA=A。413、直接尋址操作數地址是不能修改的,與程序本身所在的位置無關,所以又叫做絕對尋址方式在早期的計算機中,主存儲器的容量較小,指令中地址碼的位數要求不長,采用直接尋址方式簡單快速,也便于硬件實現,因此,常被作為主要的尋址方式。但在現代,隨著計算機主存容量的不斷擴大,所需的地址碼將會越來越長。指令中地址碼的位數將不能滿足整個主存空間尋址的要求,因此直接尋址方式受到了很大的限制。另外,在指令的執(zhí)行過程中,為了取得操作數,必須進行訪存操作,降低了指令的執(zhí)行速度。424、間接尋址

間接尋址意味著指令的地址碼部分給出的地址A不是操作數的地址,而是存放操作數地址的主存單元的地址,簡稱操作數地址的地址。操作數的有效地址的計算公式為:EA=(A)444、間接尋址特點:因為操作數的有效地址在主存儲器中,可以被靈活的修改而不必修改指令,從而使間接尋址要比直接尋址靈活得多。但是,間接尋址在指令執(zhí)行過程中至少需要兩次訪問主存儲器才能取出操作數,嚴重降低了指令執(zhí)行的速度。455、寄存器尋址

在指令的地址碼部分給出CPU內某一通用寄存器的編號,指令的操作數存放在相應的寄存器中,即EA=Ri

優(yōu)點:(1)由于寄存器在CPU的內部,指令在執(zhí)行時從寄存器中取操作數比訪問主存要快得多;(2)由于寄存器的數量較少,因此寄存器編號所占位數也較少,從而可以有效減少指令的地址碼字段的長度。466、寄存器間接尋址

為了克服間接尋址中多次訪存的缺點,可采用寄存器間接尋址,即將操作數放在主存儲器中,而操作數的地址放在某一通用寄存器中,然后在指令的地址碼部分給出該通用寄存器的編號,這時有EA=(Ri)這種尋址方式的指令較短,并且在取指后只需一次訪存便可得到操作數,因此指令執(zhí)行速度較前述的間接尋址方式要快,也是目前在計算機中使用較為廣泛的一種尋址方式。477、相對尋址(位移)由程序計數器PC提供基準地址,而指令的地址碼部分給出相對的位移量D,兩者相加后作為操作數的有效地址,即:EA=(PC)+D。487、相對尋址對尋址方式使程序模塊可采用浮動地址,編程時只要確定程序內部操作數與指令之間的相對距離,而無需確定操作數在主存儲器中的絕對地址,這樣,將程序安排在主存儲器的任意位置都不會影響程序執(zhí)行的正確性。498、基址尋址在基址尋址方式中,指令的地址碼部分給出偏移量D,而基準地址放在基址寄存器Rb中,最后操作數的有效地址仍然是由基準地址A與偏移量D相加而成,即:EA=(Rb)+D。用哪一個寄存器作為基址寄存器也必須在硬件設計時就事先規(guī)定,基址寄存器Rb中的內容稱為基準地址,該值可正可負。508、基址尋址基址寄存器的位數可以設置得很長,從而可以在較大的存儲空間中尋址。(ALU算術邏輯單元)519、變址尋址變址尋址就是將指令的地址碼部分給出的基準地址A與CPU內某特定的變址寄存器Rx中的內容相加,以形成操作數的有效地址,即:EA=A+(Rx)。用哪一個寄存器作為變址寄存器必須在硬件設計時就事先規(guī)定,變址寄存器Rx中的內容稱為變址值,該值可正可負。529、變址尋址539、變址尋址變址尋址方式是一種被廣泛采用的尋址方式,最典型的應用就是將指令的地址碼部分給出的地址A作為基準地址,而將變址寄存器Rx中的內容作為修改量。在遇到需要頻繁修改操作數地址時,無須修改指令,只要修改Rx中的變址值就可以了,這對于數組運算、字符串操作等一些進行成批數據處理的指令是很有用的。5410、段尋址方式11、堆棧結構及其尋址方式1)堆棧是一種數據結構。它是壓入和彈出都在棧頂的一端進行的結構;特點:“后進先出”。2)分類:1)硬堆棧:由CPU內部設置的專用寄存器構成;(速度快,容量小);2)軟堆棧:在主存儲器中劃分的專門用于堆棧的一片區(qū)域。(容量大,速度慢)3)堆棧結構在計算機中的作用(a)

具有堆棧結構的機器使用零地址指令,這使得指令長度短,指令結構簡單,機器硬件簡化。(b)

實現程序調用,子程序嵌套調用和遞歸調用。(c)

對于“中斷”技術,堆棧更是不可缺少的,保存“斷點”和“現場”。4)軟堆棧的操作(SP始終指向棧頂)設數據進棧方向為從高地址向低地址發(fā)展(“向下生長),當向堆棧壓入數據時,SP的內容先自動遞減而指向一個新的空棧頂單元,再把數據寫入此棧頂單元;當數據彈出堆棧時,立即讀出SP所指向的棧頂單元內容,再把SP內容自動遞增而指向新的棧頂位置。即

PUSHX;(SP)-1

SP (X)

(SP)POPX;((SP))

X (SP)+1

SP堆棧寄存器SP

通用寄存器

100101102103104105106A進棧B進棧B出棧A出棧

軟堆棧過程105AABBAA104103104105BA常用尋址方式及有效地址的計算尋址方式有效地址尋址方式有效地址立即尋址Data=D變址尋址E=Rx+D寄存器尋址Data=R變址間接尋址E=(Rx+D)寄存器直接尋址E=R間接變址尋址E=Rx+(D)寄存器間接尋址E=(R)基址尋址E=Rb+D直接尋址E=D基址間接尋址E=(Rb+D)間接尋址E=(D)間接基址尋址E=Rb+(D)二次間接尋址E=((D))基址變址尋址E=Rx+Rb+D相對尋址E=PC+D注:Data——操作數E——有效地址Rx——變址寄存器Rb——基址寄存器

D——形式地址R——寄存器PC——程序計數器()——某單元的內容尋址方式例題例1:一條雙字長的LOAD指令存儲地址為200和201的存儲位置,該指令將地址碼指定的內容裝入累加器AC中,指令的第一個字指定操作碼和尋址方式,第二個字是地址部分。(PC)=200;(R1)=400;變址寄存器XR的內容是100。條件(201)=500;(309)=450;(400)=700;(500)=800;(600)=900;(702)=325;(800)=300問:若尋址方式分別為以下的方式,那么裝入AC的值?

1)直接尋址;2)立即數尋址;3)間接尋址;4)相對尋址;5)變址尋址;6)寄存器(R1)尋址;7)寄存器間接尋址62尋址方式舉例:Pentium63Pentium尋址方式方式算法立即作數=A寄存器LA=R偏移量LA=(SR)+A基址

LA=(SR)+(B)基址帶偏移量LA=(SR)+(B)+A比例變址帶偏移量LA=(SR)+(I)×S+A基址帶變址和偏移量LA=(SR)+(B)+(I)+A基址帶比例變址和偏移量LA=(SR)+(B)+(I)×S+A相對LA=(PC)+A64P118例4某16位機器所使用的指令格式和尋址方式如下所示,該機有兩個20位基址寄存器,四個16位變址寄存器,十六個16位通用寄存器。指令匯編格式中的S(源),D(目標)都是通用寄存器,M是主存中的一個單元。三種指令的操作碼分別是MOV(OP)=(A)H,STO(OP)=(1B)H,LAD(OP)=(3C)H。MOV是傳送指令,STO為存數指令,LAD為取數指令。要求:(1)分析三種指令的指令格式與尋址方式特點。(2)CPU完成哪一種操作所花時間最短?哪一種操作所花時間最長?第二種指令的執(zhí)行時間有時會等于第三種指令的執(zhí)行時間嗎?(3)下列情況下每個十六進制指令字分別代表什么操作?其中如果有編碼不正確,如何改正才能成為合法指令?65P118例4F0F13CD2111100001111000100111100110100103C15號寄存器13CD2把主存13CD2的內存裝載到15號寄存器6FD60110111111010110由于是單字長指令,則一定是MOV指令。則OP錯誤,修改為0010100011010110=28D6664.5典型指令指令分類與基本指令類型

數據傳送類指令一般傳送指令:

MOVAX,BX數據交換指令:

XCHG堆棧操作指令:

PUSH,POP運算類指令算術運算指令:

加、減、乘、除以及加1、減1、比較邏輯運算指令:

移位指令

程序控制類指令

程序控制類指令用于控制程序的執(zhí)行方向,并使程序具有測試、分析與判斷的能力。

輸入和輸出指令、字符串處理指令、特權指令、其他指令674.5典型指令 基本指令系統(tǒng)P122表4.9介紹20%和80%規(guī)律:CISC中大約有20%的指令使用頻率高,占據了80%的處理機時間,而有80%的不常用指令只占用處理機的20%時間。VLSI技術發(fā)展引起的問題VLSI工藝要求規(guī)整性,而大量復雜指令控制邏輯極其不規(guī)整,給VLSI工藝造成了很大的困難?,F在用微程序實現復雜指令與用簡單指令組成的子程序相比,沒有多大的區(qū)別。因為現在控制存儲器和主存的速度差縮小。CISC中,通過增強指令系統(tǒng)的功能,簡化了軟件,增加了硬件的復雜程度。然而指令復雜了,指令的執(zhí)行時間必然加長,從而使整個系統(tǒng)的執(zhí)行時間反而增加,因而在計算機體系結構設計中,軟硬件的功能分配必須恰當684.5典型指令 RISC(不超過100條)特點(采用流水線技術)簡單而統(tǒng)一格式的指令譯碼;大部分指令可以單周期執(zhí)行只有LOAD/STORE可以訪問存儲器簡單的尋址方式采用延遲轉移技術采用LOAD延遲技術三地址指令格式較多的寄存器對稱的指令格式返回CISC和RISC復雜指令(200-300條)集計算機(CISC)

長期來,計算機性能的提高往往是通過增加硬件的復雜性來獲得.隨著集成電路技術、超大規(guī)模集成電路技術的迅速發(fā)展,為了軟件編程方便和提高程序的運行速度,硬件工程師采用的辦法是不斷增加可實現復雜功能的指令和多種靈活的編址方式.甚至某些指令可支持高級語言語句歸類后的復雜操作.至使硬件越來越復雜,造價也相應提高.為實現復雜操作,微處理器除向程序員提供類似各種寄存器和機器指令功能外.還通過存于只讀存貯器(ROM)中的微程序來實現其極強的功能,CPU在分析每一條指令之后執(zhí)行一系列初級指令運算來完成所需的功能,這種設計的型式被稱為復雜指令集計算機(ComplexInstructionSetComputer-CISC)結構.

一般CISC計算機所含的指令數目至少300條以上,有的甚至超過500條.早期的計算機使用匯編語言編程,由于內存速度慢且價格昂貴,使得CISC體系得到了用武之地。在20世紀90年代中期之前,大多數的微處理器都采用CISC體系——包括Intel的80x86和Motorola的68K系列等。(X:1-4.)

1.CISC體系的指令特征

使用微代碼。指令集可以直接在微代碼內存(比主內存的速度快很多)里執(zhí)行,新設計的處理器,只需增加較少的晶體管就可以執(zhí)行同樣的指令集,也可以很快地編寫新的指令集程序。

龐大的指令集??梢詼p少編程所需要的代碼行數,減輕程序員的負擔。

高級語言對應的指令集。包括雙操作數格式、寄存器到寄存器、寄存器到內存以及內存到寄存器的指令。

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

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

缺點:指令集以及芯片的設計比上一代產品更復雜,不同的指令,需要不同的時鐘周期來完成,執(zhí)行較慢的指令,將影響整臺機器的執(zhí)行效率。IBMPOWER6精簡指令集計算機(RISC)

精簡指令集計算機(RISC)

采用復雜指令系統(tǒng)的計算機有著較強的處理高級語言的能力.這對提高計算機的性能是有益的.當計算機的設計沿著這條道路發(fā)展時.有些人沒有隨波逐流.他們回過頭去看一看過去走過的道路,開始懷疑這種傳統(tǒng)的做法:IBM公司沒在紐約Yorktown的JhomasI.Wason研究中心于1975年組織力量研究指令系統(tǒng)的合理性問題.因為當時已感到,日趨龐雜的指令系統(tǒng)不但不易實現.而且還可能降低系統(tǒng)性能.1979年以帕特遜教授為首的一批科學家也開始在美國加冊大學伯克萊分校開展這一研究.結果表明,CISC存在許多缺點.首先.在這種計算機中.各種指令的使用率相差懸殊:事實上最頻繁使用的指令是取、存和加這些最簡單的指令.這樣一來,長期致力于復雜指令系統(tǒng)的設計,實際上是在設計一種難得在實踐中用得上的指令系統(tǒng)的處理器.同時.復雜的指令系統(tǒng)必然帶來結構的復雜性.這不但增加了設計的時間與成本還容易造成設計失誤.此外.盡管VLSI技術現在已達到很高的水平,但也很難把CISC的全部硬件做在一個芯片上,這也妨礙單片計算機的發(fā)展.在CISC中,許多復雜指令需要極復雜的操作,這類指令多數是某種高級語言的直接翻版,因而通用性差.由于采用二級的微代碼執(zhí)行方式,它也降低那些被頻繁調用的簡單指令系統(tǒng)的運行速度.因而.針對CISC的這些弊?。撂剡d等人提出了精簡指令的設想,即指令系統(tǒng)應當只包含那些使用頻率很高的少量指令.并提供一些必要的指令以支持操作系統(tǒng)和高級語言.按照這個原則發(fā)展而成的計算機被稱為精簡指令集計算機(ReducedInstructionSetComputer-RISC)結構.簡稱RISC.它的關鍵技術在于流水線操作(Pipelining):在一個時鐘周期里完成多條指令。而超流水線以及超標量技術已普遍在芯片設計中使用。RISC體系多用于非x86陣營高性能微處理器CPU,廠商包括主要APPLE、SGI/MIPS、IBM、SUN、Compaq/Digital(DEC)、Motorola等。這些廠商設計的處理器在某種程度上,代表了RISCCPU的發(fā)展趨勢。

RISC技術的類型在眾多的RISC處理器中,如何了解它們的性能和設計技術的差別,以便正確選擇和應用它們,這對系統(tǒng)設計者來講是至關重要的。由于早期RISC的發(fā)展基本上起源于一些著名大學和公司的研究計劃.雖然RISC的處理器的品種很多,制造廠商也不相同.但就其性能和設計技術的差異可分四類:它們的典型代表是IBM公司的810小型計算機;帕克萊分校的RISCⅠ、RISCⅡ;斯坦福大學的MIPSR2000、R3000和R4000以及克雷公司的CRAY-1.目前幾乎所有各大公司研制或生產的RISC處理器產品部分別隸屬于這四種類型。

IBM801小型計算機

810小型計算機是IBM公司于70年代末期開始研制的32位小型機,它排除了通常的兩級微碼控制方式,取而代之的是在硬件中直接執(zhí)行一組精選的簡單指令和優(yōu)化的編譯程序.這種特殊的編譯程序通過對程序詳細執(zhí)行步驟進行重新安派.以便更有效地利用CPU資源來提高程序的運行速度,因為它放棄了對復雜指令系統(tǒng)執(zhí)行微碼的方式,這就有利于用硬連線控制系統(tǒng)來執(zhí)行為數不多的簡單指令.為了達到單周期時間執(zhí)行一條指令的目的,存貯器結構使CPU不需等待訪問存貯器的時間.提供指令和數據高速緩存(CACHE),有32個32位寄存器.所有指令在寄存器中執(zhí)行,同時編譯器分寄存器和全局優(yōu)化及存取校驗部件,還具有延遲轉移功能,是一臺采用緊藕合硬件和編譯技術相結合的RISC計算機。柏克萊分校的RISCI、RISCⅡ型

RISCI、RISCⅡ是帕克萊分校分別于1982年和1984年研制成功的32位微處理器,它們的設計專注于最有效地利用大規(guī)模整合電路(VLSI)芯片的區(qū)域研究,因為RISC設計的有限個簡單指令只需要相對少量的芯片控制邏輯電路,而芯片上更多的區(qū)域可以用作系統(tǒng)功能.以加強處理器的性能和使它的功能多樣化.它們采用重疊窗口技術.有多達138*32位寄存器組成8個重疊窗口,在相鄰界面上有6個寄存器以提供窗口間的運行參數和結果,它們是專為相鄰兩個窗口共享的,在處理器中.寄存器作為臨時數據存貯的快速存取區(qū),通過這些寄存據保持信息參數.在CISC計算機中.子程序調用之前,參數是存于系統(tǒng)內存中.這樣非常浪費時間,而RISCI、RISCⅡ利用寄存器來傳送參數很有效地降低了執(zhí)行子程序調用時所需要的時間.指令數為31個。MIPSRx000系列型

斯坦福大學的MIPS計劃,它不采用帕克萊分校的RISC窗口技術而采用消除流水線各級互鎖的微處理器MIPS(MicroprosessorWithoutInterlockingPipelineStage)技術.它將IBM公司對優(yōu)化編譯程序的研究和帕克萊分校的大規(guī)模集成電路的思想結合起來.流水線是現代各類微處理器都采用的指令執(zhí)行技巧.即將若干條指令的取指令,譯碼和執(zhí)行過程部分重疊在流水線中同時執(zhí)行.但在CISC計算機中,由于指令多而復雜.處理每條指令的所得時間不固定,當后面指令需要前條指令的結果.往往造成指令互鎖.斯坦福大學的MIPS計劃就是在編譯過程中,利用編譯程序優(yōu)化處理器的流水線,以求提高處理器流水線的效率,由于采用硬連續(xù)控制來執(zhí)行為數不多的簡單指令,且能重組軟件流水線.這樣就減少硬件復雜性.CRAY-I型

克雷(CRAY)公司的巨型機CRAY-I,它是70年代中期開發(fā)成功的最先采用面向寄存器操作的精簡指令的高速計算機,公司創(chuàng)始人SeymvurCRAY一開始就反對過在他的巨型計算機系列的設計中采用增加指令的建議.因此CRAY一1除大量采用標量、向量和地址寄存器外還采用流水線技術以達到高速運算的能力,做到了一個機器周期時間里執(zhí)行一條指令的目標.所以有人講CRAY一1是RISC技術的鼻祖.

RISC技術的設計技巧RISC的設計原則是使系統(tǒng)設計達到最高的有效速度,將那些能對系統(tǒng)性能產生凈增益的功能用硬件實現.其余大部分都用軟件實現.它排除了那些實現復雜功能的復雜指令,所謂"精簡"并不是簡單的減少.而是保留經驗證明的能提高機器性能的指令,另外還將編譯器作為機器的功能.而且RISC微處理器使編譯器能夠直接訪問基本的硬件功能,RISC設計的基本目的在于使計算機結構更加簡單、更加合理、更加有效.指令經過精簡后.計算機體系結構自然趨于簡單.在這個基礎上,還必須克服CISC的許多缺點.使得計算機速度更快,程序運行時間縮短.這樣.RISC才能以嶄新的面貌出現.RISC技術的主要設計技巧及其特點1短周期時間為了指令的快速執(zhí)行,就必須快速選擇譯碼和減小寄存器存取時間,盡量采用先進工藝技術以縮短機器周期時間,也即提高機器的工作頻率.

2單周期執(zhí)行指令由于RISC微處理器的指令經過精選,所有指令長度都相同.大多數指令都能在一個機器周期內執(zhí)行完.實際上,大多數RISC微處理器在沒有增加并行技術時,平均每條指令執(zhí)行時間為1.25-2個機器周期時間,而CISC微處理器在相同工藝技術條件下平均執(zhí)行每條指令需5-8個機器周期時間,RISC微處理器力求達到每一個機器周期時間執(zhí)行一條指令.單周期執(zhí)行指令是RISC微處理器性能增強的基礎.必須簡化指令系統(tǒng)和采用流水線技術.

3load(取)/Store(存)結構

每當一條指令得要訪問主存信息時.機器的執(zhí)行速度將會降低.RISC的load/restore指令只有在訪問內存時才使用,所有其它的指令都是在寄存器內對數據進行運算.一條存取數指令(load)從內存將數據取出放到寄存器中,在那里可以對數據進行快速處理,并把它暫存在寄存器里,以便將來還要使用.在適當的時候.一條存數指令(store)可將這個數據送回到它在內存中的地址中去.CISC微處理器支持那些直接從內存處理信息的指令.這些指令需要多個機器周期時間才能完成.RISC的設計技術與CISC的設計技術相比.有大量寄存器.由于允許數據在寄存器中保留較長的時間.這樣就減少了存/取指令對內存訪問的需要.在寄存器中.每當再被使用時不必再次訪問內存.這種Load/restore結構通過寄存器對寄存器進行操作的方式乃是獲得單周期執(zhí)行的關鍵.

4簡單固定格式的指令系統(tǒng)所有指令采用32位固定長度,尋址方式不超過三種,簡化了邏輯和縮短譯碼時間.確保單周期執(zhí)行指令,同時也有利于流水線操作的執(zhí)行.這是由于指令的固定格式保證指令譯碼和取操作能同時進行.

5不用微碼技術由于RISC的設計采用簡單.合理的指令系統(tǒng)和簡化的尋址方式.所以排除微代碼設計技術,即不采用微碼只讀存貯器(ROM),而是直接在硬件中執(zhí)行指令,這意味著省去將機器指令轉換成原始微代碼這一中間步驟,這也就減少了執(zhí)行一條指令所需要的機器周期個數,也就節(jié)省了芯片的空間,使得可以利用這些節(jié)省下來的芯片空間擴展微處理器功能.

6大寄存器堆

RISC微處理器中大量的計算都在ALU高速寄存器中執(zhí)行.由編譯器產生、分配和優(yōu)化寄存器的使用.從而簡化流水線結構和使指令周期降到最小,同時又不訪問內存.允許調用的嵌套執(zhí)行,但這也增加ALU周期中的寄存器存取時間和一些選址機構.因此在任務變換中需要較高的開銷.

7延遲轉移這可解決指令轉移相關問題,它把轉移指令與前一條指令交換位置以避免浪費一個機器周期時間,這不是靠程序員去完成,而是由RISC的編譯程序自動完成.這也是RISC設計技術一個重要特性.

8高效的流水線操作當前不論什么結構的微處理器都毫無例外地采用流水線技術,以達到高速執(zhí)行指令的能力,因為流水線的每一級都負責執(zhí)行一個單個的操作段.比如、指令譯碼或取操作數。實際上一個流水線微處理器是在同一時刻對數條指令進行操作.CISC微處理器執(zhí)行指令時效率低,甚至有時會使執(zhí)行過程處于短暫的停滯狀態(tài).例如,當處理器遇到一條執(zhí)行時間比預定時間要長的指令,它必須延長這條指令的操作.這樣就要阻止其它指令在流水線中正常執(zhí)行流水線操作,直到這條長指令的完成.這種狀態(tài)除了降低了執(zhí)行指令效率外.還迫使設計者將處理器的微結構在硬件上設計得更加復雜,以便對付這些問題.而在RISC微處理器設計中,它具有對指令執(zhí)行時間的預測能力,因此它能使流水線在高效率狀態(tài)下運行.

9硬連線控制采用少量、簡單、固定的硬連線控制邏輯替代微碼以實現減少指令系統(tǒng).保證短周期,單周期執(zhí)行指令,但不能處理復雜指令,除在特定狀態(tài)機(statemachine]或使用垂直微碼外.不能處理多個Load/Restore指令。10重疊寄存器窗口技術

重疊寄存器窗口技術:在處理機中設置一個數量比較大的寄存器堆,并把它劃分成很多個窗口。每個過程使用其中相鄰的三個窗口和一個公共的窗口,而在這些窗口中有一個窗口是與前一個過程共用,還有一個窗口是與下一個過程共用的。與前一過程共用的窗口可以用來存放前一過程傳送給本過程的參數,同時也存放本過程傳送給前一過程的計算結果。同樣,與下一過程共用窗口可以用來存放本過程傳送給下一過程的參數和存放下一過程傳送給本過程的計算結果。11優(yōu)化編譯程序12增強存貯管理功能13面向高級語言在R1SC設計中不用微碼.高級語言可直接由硬件實現.通過-次編譯直接生成由硬件執(zhí)行的機器代碼.這樣可提高執(zhí)行速度.不過程序員沒有可讀的匯編語言,適合人工編碼.

14哈佛(Harvard)總線結構

RISC體系的優(yōu)缺點優(yōu)點:在使用相同的晶片技術和相同運行時鐘下,RISC系統(tǒng)的運行速度將是CISC的2~4倍。由于RISC處理器的指令集是精簡的,它的內存管理單元、浮點單元等都能設計在同一塊芯片上。RISC處理器比相對應的CISC處理器設計更簡單,所需要的時間將變得更短,并可以比CISC處理器應用更多先進的技術,開發(fā)更快的下一代處理器。缺點:多指令的操作使得程序開發(fā)者必須小心地選用合適的編譯器,而且編寫的代碼量會變得非常大。另外就是RISC體系的處理器需要更快內存,這通常都集成于處理器內部,就是L1Cache(一級緩存)。

CISCVSRISC長期以來,由于英特爾的x86處理器可以執(zhí)行1到87個字節(jié)長度的指令,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論