系統(tǒng)結(jié)構(gòu)講義(課堂PPT)_第1頁
系統(tǒng)結(jié)構(gòu)講義(課堂PPT)_第2頁
系統(tǒng)結(jié)構(gòu)講義(課堂PPT)_第3頁
系統(tǒng)結(jié)構(gòu)講義(課堂PPT)_第4頁
系統(tǒng)結(jié)構(gòu)講義(課堂PPT)_第5頁
已閱讀5頁,還剩48頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、12 指令格式的優(yōu)化是指如何用最短的二進制位數(shù)表示指令的操作碼信息和地指令格式的優(yōu)化是指如何用最短的二進制位數(shù)表示指令的操作碼信息和地址碼信息,使指令的平均字長最短,同時便于譯碼。址碼信息,使指令的平均字長最短,同時便于譯碼。 指令的組成指令的組成操作碼操作碼地址碼地址碼指令的操作種類。指令的操作種類。所用操作數(shù)數(shù)據(jù)所用操作數(shù)數(shù)據(jù)類型。類型。操作數(shù)地址。操作數(shù)地址。地址附加信息。地址附加信息。尋址方式。尋址方式。使程序中指令的平均字長最短,節(jié)省程序的存儲空間。使程序中指令的平均字長最短,節(jié)省程序的存儲空間。1) 指令格式要規(guī)整,減少硬件譯碼的復雜程度。指令格式要規(guī)整,減少硬件譯碼的復雜程度。3

2、固定長度操作碼。固定長度操作碼。Huffman編碼法。編碼法。1) 擴展編碼法。擴展編碼法。固定長度操作碼固定長度操作碼采用等長操作碼。采用等長操作碼。 若指令系統(tǒng)共有若指令系統(tǒng)共有N種不同功能的指令,則指令系統(tǒng)中的種不同功能的指令,則指令系統(tǒng)中的所有指令的操作碼長度固定為所有指令的操作碼長度固定為lbN位。位。4例:例:假設一臺模型計算機共有假設一臺模型計算機共有7種不同的操作碼,已知各種不同的操作碼,已知各種操作碼在程序中出現(xiàn)的概率如下表,利用固定長度編碼種操作碼在程序中出現(xiàn)的概率如下表,利用固定長度編碼法進行操作碼編碼。法進行操作碼編碼。指令指令I1概率概率0.45I20.30I30.1

3、5I40.05I50.03I60.01I70.01解:解:由于由于N=7 因此,指令操作碼固定長度為因此,指令操作碼固定長度為lbN=lb7=35指令序號指令序號概率概率編碼編碼操作碼長度操作碼長度I10.450003位位I20.300013位位I30.150103位位I40.050113位位I50.031003位位I60.011013位位I70.011103位位6Huffman編碼法(編碼法(最小概率合并法最小概率合并法)Huffman壓縮概念(最佳編碼定理):壓縮概念(最佳編碼定理):當用n個長度不等的代碼分別代表n種發(fā)生概率不等的事件時,按照短代碼給高概率事件、把長代碼給低概率事件的原則

4、分配,可使平均碼長達到最低。 Huffman編碼方法編碼方法 這種編碼方法由兩個過程組成。頻度合并:頻度合并:將全部n個事件(在此即為n條指令)的頻度值排序,選取其中最小的2個頻度合并,然后將剩下的n-1個頻度再次排序,再合并最小的2個頻度,如此重復,直至剩下1個頻度為止。記錄所有的合并關系,形成一棵二叉樹 Huffman樹,所有原始頻度值充當樹葉,而最后剩下的總頻度1為樹根;碼元分配:碼元分配:從樹根開始,對每個中間結(jié)點的左右2個分支邊各賦予一位代碼“0”和“1”(“0”在哪一側(cè)不限)。讀出從根結(jié)點到任一片樹葉的路徑上依次出現(xiàn)的代碼位就排成了這個事件(即指令)的完整編碼。由于頻度高的事件較晚

5、被合并,它的編碼位數(shù)也就較少,符合Huffman壓縮原則。7 上面所說的上面所說的頻度值頻度值就是各事件實際出現(xiàn)次數(shù)的百分比,就是各事件實際出現(xiàn)次數(shù)的百分比,它是理論出現(xiàn)它是理論出現(xiàn)概率概率的近似值。的近似值。 例:例:假設一臺模型計算機共有假設一臺模型計算機共有7種不同的操作碼,已種不同的操作碼,已知各種操作碼在程序中出現(xiàn)的概率如下表,利用知各種操作碼在程序中出現(xiàn)的概率如下表,利用Huffman編碼法進行操作碼編碼。編碼法進行操作碼編碼。指令指令I1概率概率0.45I20.30I30.15I40.05I50.03I60.01I70.018Huffman樹生成步驟:樹生成步驟:q 把所有指令按

6、照操作碼在程序中出現(xiàn)的概率,自左向右把所有指令按照操作碼在程序中出現(xiàn)的概率,自左向右從排列好。從排列好。q 選取兩個概率最小的結(jié)點合并成一個概率值是二者之和選取兩個概率最小的結(jié)點合并成一個概率值是二者之和的新結(jié)點,并把這個新結(jié)點與其它還沒有合并的結(jié)點一的新結(jié)點,并把這個新結(jié)點與其它還沒有合并的結(jié)點一起形成新結(jié)點集合。起形成新結(jié)點集合。q 在新結(jié)點集合中選取兩個概率最小的結(jié)點進行合并,如在新結(jié)點集合中選取兩個概率最小的結(jié)點進行合并,如此繼續(xù)進行下去,直至全部結(jié)點合并完畢。此繼續(xù)進行下去,直至全部結(jié)點合并完畢。q 最后得到的根結(jié)點的概率值為最后得到的根結(jié)點的概率值為1。q 每個結(jié)點都有兩個分支,分

7、別用一位代碼每個結(jié)點都有兩個分支,分別用一位代碼“0” 和和“1”表表示。示。注意:注意: 對于同一個頻度分布,應用哈夫曼算法可能生成不同的哈夫曼樹,對于同一個頻度分布,應用哈夫曼算法可能生成不同的哈夫曼樹,因此,得到的哈夫曼編碼并不唯一,但平均碼長唯一。因此,得到的哈夫曼編碼并不唯一,但平均碼長唯一。90.450.300.150.050.030.010.011.000.550.02010101010101I1 I2 I3 I4 I5 I6 I7Huffman編碼樹生成過程編碼樹生成過程10指令序號指令序號概率概率Huffman編碼法編碼法操作碼長度操作碼長度I10.4

8、501位位I20.30102位位I30.151103位位I40.0511104位位I50.03111105位位I60.011111106位位I70.011111116位位11根據(jù)信息論的基本知識,在n種可能發(fā)生的事件集合中,報告第i種事件發(fā)生的消息中包含的信息量為:iaiaiPPIlog)1(log 其中Pi是第i種事件發(fā)生的先驗概率,a是編碼基值。信息量的單位是表示位數(shù)(最少所需位數(shù))。 這個定義式表明事件的發(fā)生概率越低,關于它的消息中的信息量越大。一個消息源對n種事件發(fā)布的消息的信息量平均值,記為:niiainiiiPPIPH11)(log)(12各事件編碼長度的數(shù)學期望。各事件編碼長度的

9、數(shù)學期望。niiilPL1)(表明消息編碼中表明消息編碼中“無用成分無用成分”所占的百分比。所占的百分比。%100LHLR 從減少存儲與傳輸量的角度看,編碼方法的平均碼長越短越從減少存儲與傳輸量的角度看,編碼方法的平均碼長越短越好。但是平均碼長不可能無限制縮短,它的下限就是熵(即好。但是平均碼長不可能無限制縮短,它的下限就是熵(即R=0時)。如果短于熵就一定會丟失有用信息(即混淆不同指時)。如果短于熵就一定會丟失有用信息(即混淆不同指令),這是不允許的。令),這是不允許的。13例:例:假設一臺模型計算機共有假設一臺模型計算機共有7種不同的操作碼,如果采用固定種不同的操作碼,如果采用固定長操作碼

10、需要長操作碼需要3位。已知各種操作碼在程序中出現(xiàn)的概率如下表,位。已知各種操作碼在程序中出現(xiàn)的概率如下表,計算采用計算采用Huffman編碼法的操作碼平均長度,并計算固定長操編碼法的操作碼平均長度,并計算固定長操作碼和作碼和Huffman操作碼的信息冗余量。操作碼的信息冗余量。解:解: Huffman編碼結(jié)果如:編碼結(jié)果如:指令序號指令序號概率概率Huffman編碼法編碼法操作碼長度操作碼長度I10.4501位位I20.30102位位I30.151103位位I40.0511104位位I50.03111105位位I60.011111106位位I70.011111116位位14采用采用Huffma

11、n編碼法的操作碼平均長度:編碼法的操作碼平均長度:0.4510.3020.1530.0540.0350.0160.0161.97(位)(位)最優(yōu)最優(yōu)Huffman編碼法的操作碼平均長度計算公式:編碼法的操作碼平均長度計算公式:niiainiiiPPIPH11)(log)(所以,采用最優(yōu)所以,采用最優(yōu)Huffman編碼法的操作碼平均長度為:編碼法的操作碼平均長度為:0.451.1520.301.7370.152.7370.054.3220.035.0590.016.6440.016.6441.95(位)(位)采用固定長度編碼信息冗余量:采用固定長度編碼信息冗余量:%35397. 117log12

12、HR15采用采用Huffman編碼法信息冗余量:編碼法信息冗余量:與與3位定長操作碼的冗余量位定長操作碼的冗余量35相比要小得多。相比要小得多。操作碼長度很不規(guī)整,硬件譯碼困難操作碼長度很不規(guī)整,硬件譯碼困難1) 與地址碼共同組成固定長的指令比較困難與地址碼共同組成固定長的指令比較困難%0 . 197. 195. 11R16由固定長操作碼與由固定長操作碼與Huffman編碼法相結(jié)合形成。編碼法相結(jié)合形成。碼長表示法:碼長表示法:分等長擴展法和不等長擴展法。等長擴展法如4-8-12法,每次加長4位。但這并不能說明具體編碼方法,例如下面兩種編碼方法都是4-8-12法。碼點表示法:碼點表示法:例如1

13、5/15/15法,8/64/512法 15/15/15法,每一種碼長都有4位可編碼位(前頭可以有相同的擴展標識前綴),可產(chǎn)生16個碼點(即編碼組合),但是至多只能使用其中15個來表示事件,留下1個或多個碼點組合作為更長代碼的擴展標識前綴。已經(jīng)用來表示事件的碼點組合不能再作為其它更長代碼的前導部分,否則接收者會混淆。這就是“非前綴原則”。 8/64/512法,每一種碼長按4位分段,每一段中至少要留下1位或多位作為擴展標識。各段剩下的可編碼位一起編碼,所產(chǎn)生的碼點用來對應被編碼事件。每一段中的標識位指出后面還有沒有后續(xù)段。170000000111101111 00001111 00011111 1

14、1101111 1111 00001111 1111 00011111 1111 11104位長度的操作碼共有15種8位長度的操作碼共有15種12位長度的操作碼共有15種操作碼編碼操作碼編碼說明說明0000000101111000 00001000 00011111 01111000 1000 00001000 1000 00011111 1111 01114位長度的操作碼共有8種8位長度的操作碼共有64種12位長度的操作碼共有512種操作碼編碼操作碼編碼說明說明18例:例:假設一臺模型計算機共有假設一臺模型計算機共有7種不同的操作碼。已知各種操作種不同的操作碼。已知各種操作碼在程序中出現(xiàn)的概

15、率如下表,如果采用碼在程序中出現(xiàn)的概率如下表,如果采用1-2-3-5和和2-4擴展編擴展編碼法,計算操作碼平均長度和信息冗余量。碼法,計算操作碼平均長度和信息冗余量。指令指令I1概率概率0.45I20.30I30.15I40.05I50.03I60.01I70.01解:解:采用采用1-2-3-5擴展編碼法操作碼平均長度:擴展編碼法操作碼平均長度:H=0.4510.3020.153(0.050.030.010.01)5=2.00信息冗余量:信息冗余量:采用采用2-4擴展編碼法操作碼平均長度:擴展編碼法操作碼平均長度:H=(0.45+0.30+0.15)2+(0.05+0.03+0.01+0.01

16、)4=2.20信息冗余量:信息冗余量:%5 . 200. 295. 11R%4 .1120. 295. 11R19序號概率1-2-3-5擴展編碼I10.450I20.3010I30.15110I40.0511100I50.0311101I60.0111110I70.01111112-4等長擴展編碼0001101100110111101111平均長度2.02.2信息冗余量2.5%11.4%20指令指令I1I2I3I4I5I6I7I8I9I10概率概率50.100.080.080.050.040.030.02例:例:一臺處理機有一臺處理機有I1-I10共共10條指令,經(jīng)統(tǒng)計,

17、各指令在程序中使用的頻率條指令,經(jīng)統(tǒng)計,各指令在程序中使用的頻率如下:如下:(1)計算這)計算這10條指令的操作碼編碼的最短平均碼長。條指令的操作碼編碼的最短平均碼長。(2)寫出這)寫出這10條指令的操作碼的哈夫曼編碼,并計算編碼的平均碼長和信條指令的操作碼的哈夫曼編碼,并計算編碼的平均碼長和信息冗余量。息冗余量。(3)采用)采用3/7擴展編碼和擴展編碼和2/8擴展編碼編寫這擴展編碼編寫這10條指令的操作碼,并分別計條指令的操作碼,并分別計算平均碼長和信息冗余量。哪種擴展編碼比較好?說明理由。算平均碼長和信息冗余量。哪種擴展編碼比較好?說明理由。解解: (1)最短平均碼長:最短平均碼長:H=-

18、pilog2pi=-(0.25log20.250.20log20.200.15log20.15 0.10log20.100.08log20.080.08log20.080.05log20.050.04log20.040.03log20.030.02log20.02)2.96(位)(位)(2)兩種哈夫曼樹兩種哈夫曼樹210.020.030.040.050.080.080.100.150. 200.250.050.030.320.430.571101111111100000000220.020.030.040.050.050.

19、130.430.230.090.170.320.57110111111110000000023IiPi哈夫曼哈夫曼1I1i哈夫曼哈夫曼2I2iI10.25102002I20.20002102I30.1511030103I40.1001031103I50.081110301104I60.080110411104I70.0501114011105I80.04111105011115I90.031111106111105I100.021111116111115可見,哈夫曼編碼不唯一??梢?,哈夫曼編碼不唯一。24哈夫曼哈夫曼1平均碼長:平均碼長:I1=PiI1i=0.252+0.202+0.153+0

20、.103+0.084+0.084+0.054+0.045+ 0.036+0.026=2.99(位位)哈夫曼哈夫曼2平均碼長:平均碼長:I2=PiI2i=0.252+0.202+0.153+0.103+0.084+0.084+0.055+0.045+ 0.035+0.025=2.99(位位)可見,平均碼長唯一??梢?,平均碼長唯一。信息冗余量:信息冗余量:Rn=(1-H/I1)=1-2.96/2.99=1.0%3/7和和2/8擴展編碼如下表所示:擴展編碼如下表所示:25IiPi3/7擴展擴展I1i2/8擴展擴展I2iI10.25002002I20.20012012I30.1510210004I40

21、.1011000510014I50.0811001510104I60.0811010510114I70.0511011511004I80.0411100511014I90.0311101511104I100.02111105111143/7擴展平均碼長:擴展平均碼長:I3/7=PiI1i=(0.25+0.20+0.15)2+(0.10+0.08+0.08+0.05+0.04+0.03+0.02)5=3.2(位位)262/8擴展平均碼長:擴展平均碼長:I2/8=PiI2i=(0.25+0.20)2+(0.15+0.10+0.08+0.08+0.05+0.04+0.03+0.02)4=3.1(位位

22、)可見,可見,2/8擴展優(yōu)于擴展優(yōu)于3/7擴展。擴展。兩種編碼的信息冗余量:兩種編碼的信息冗余量:Rn3/7=(1-H/I3/7)=1-2.96/3.2=7.5%Rn2/8=(1-H/I2/8)=1-2.96/3.1=4.5%27中所占的長度最長。中所占的長度最長。地址碼個數(shù),存儲設備,尋址空間大小,編地址碼個數(shù),存儲設備,尋址空間大小,編址方式,尋址方式)址方式,尋址方式)地址個數(shù)的選擇地址個數(shù)的選擇單個地址碼長度如何優(yōu)化。單個地址碼長度如何優(yōu)化。 通常有通常有3個、個、2個、個、1個及沒有地址碼等個及沒有地址碼等4種情況。種情況。程序的存儲量,即程序中所有指令的長度相加的總和最短。程序的存

23、儲量,即程序中所有指令的長度相加的總和最短。1)程序的執(zhí)行速度,即程序在執(zhí)行過程中訪問主存儲器的信息(包程序的執(zhí)行速度,即程序在執(zhí)行過程中訪問主存儲器的信息(包括指令和數(shù)據(jù))量的總和最短。括指令和數(shù)據(jù))量的總和最短。28采用擴展操作碼,以縮短操作碼的平均碼長。采用擴展操作碼,以縮短操作碼的平均碼長。采用諸如基址、變址、相對尋址、寄存器尋址、寄存器間采用諸如基址、變址、相對尋址、寄存器尋址、寄存器間接尋址等多種尋址方式,以縮短需要在指令中表示的地址接尋址等多種尋址方式,以縮短需要在指令中表示的地址碼長度,但不減少地址碼尋址空間的大小。碼長度,但不減少地址碼尋址空間的大小。指令集采用零地址、一地址

24、、二地址和三地址等多種地址指令集采用零地址、一地址、二地址和三地址等多種地址制,且讓常用的短操作碼與多地址字段配合,長操作碼與制,且讓常用的短操作碼與多地址字段配合,長操作碼與少地址字段配合。少地址字段配合。采用采用R-R、R-M、M-M等多種地址表示方式,讓每種地址字等多種地址表示方式,讓每種地址字段有多種長度,使長度不等的操作碼與地址碼配合成規(guī)整段有多種長度,使長度不等的操作碼與地址碼配合成規(guī)整長度的指令字。長度的指令字。在維持指令字在存儲器中按整數(shù)邊界存儲的前提下,使用在維持指令字在存儲器中按整數(shù)邊界存儲的前提下,使用多種不同的指令字長度。要求指令字長應是主存存儲字長多種不同的指令字長度

25、。要求指令字長應是主存存儲字長的整數(shù)倍。的整數(shù)倍。29地址數(shù)目地址數(shù)目指令碼長度指令碼長度 程序存儲量程序存儲量程序執(zhí)行程序執(zhí)行速度速度使用場合使用場合三地址三地址短短最大最大一般一般向量,矩陣運算為主向量,矩陣運算為主二地址二地址一般一般很大很大很低很低一般不宜采用一般不宜采用一地址一地址較長較長較大較大較快較快連續(xù)運算,連續(xù)運算,硬件結(jié)構(gòu)簡單硬件結(jié)構(gòu)簡單0地址地址最長最長最小最小最低最低嵌套,遞歸,嵌套,遞歸,變量較多變量較多二地址二地址R形形一般一般最小最小最快最快多累加器,多累加器,數(shù)據(jù)傳送較多數(shù)據(jù)傳送較多30 例:例:一臺模型機共有一臺模型機共有7條指令,各指令的使用頻率分別為條指令

26、,各指令的使用頻率分別為35%,25%,20%,10%,5%,3%和和2%,有,有8個通用數(shù)據(jù)寄存器,個通用數(shù)據(jù)寄存器,2個變址寄存器。個變址寄存器。(1)要求操作碼的平均長度最短,請設計操作碼的編碼,并)要求操作碼的平均長度最短,請設計操作碼的編碼,并計算所設計操作碼的平均長度。計算所設計操作碼的平均長度。(2)設計)設計8字長的寄存器字長的寄存器-寄存器型指令寄存器型指令3條,條,16位字長的寄位字長的寄存器存器-存儲器型變址尋址方式指令存儲器型變址尋址方式指令4條,變址范圍不小于條,變址范圍不小于127。請設計指令格式,并給出各字段的長度和操作碼的。請設計指令格式,并給出各字段的長度和操

27、作碼的編碼。編碼。31解:解:(1)要使得到的操作碼長度最短,應采用)要使得到的操作碼長度最短,應采用Huffman編碼,構(gòu)造編碼,構(gòu)造Huffman樹如下:樹如下:0.350.3000.050.050.030.030.020.020.050.000.200.400.400.600.601.001.0032由此可以得到由此可以得到7條指令的編碼分別如下:條指令的編碼分別如下:指令指令出現(xiàn)的頻率出現(xiàn)的頻率編編 碼碼135%00225%01320%10410%11055%111063%1111072%1111133這樣,采用這樣

28、,采用Huffman編碼法得到的操作碼的平均長度為:編碼法得到的操作碼的平均長度為:H = 2(0.35+0.25+0.20) + 30.10 + 4 0.05+ 5(0.03 + 0.02) =1.6+0.3+0.2+0.25 =2.3534 三條指令的操作碼分別為三條指令的操作碼分別為00,01,10設計設計16位字長的寄存器位字長的寄存器-存儲器型變址尋址方式指令如下:存儲器型變址尋址方式指令如下: 43 18(2)設計)設計8位字長的寄存器位字長的寄存器-寄存器型變址尋址方式指令如寄存器型變址尋址方式指令如下,因為只有下,因為只有8個通用寄存器,所以寄存器地址需個通用寄存器,所以寄存器

29、地址需3位,操作碼位,操作碼只有兩位,設計格式如下:只有兩位,設計格式如下: 2 3 3操作碼操作碼OP源寄存器源寄存器R1目的寄存器目的寄存器R2操作碼操作碼OP通用寄存器通用寄存器變址寄存器變址寄存器偏移地址偏移地址四條指令的操作碼分別為四條指令的操作碼分別為1100, 1101,1110,1111351. 復雜指令系統(tǒng)計算機復雜指令系統(tǒng)計算機CISC(Complex Instruction Set Computer)增強指令功能,設置功能復雜的指令。增強指令功能,設置功能復雜的指令。面向目標代碼、高級語言和操作系統(tǒng)。面向目標代碼、高級語言和操作系統(tǒng)。用一條指令代替一串指令。用一條指令代替

30、一串指令。2. 精簡指令系統(tǒng)計算機精簡指令系統(tǒng)計算機RISC(Reduced Instruction Set Computer)只保留功能簡單的指令。只保留功能簡單的指令。功能較復雜的指令用子程序來實現(xiàn)。功能較復雜的指令用子程序來實現(xiàn)。ISA(Instruction Set Architecture)(Industrial Standard Architecture)36龐大的指令系統(tǒng)龐大的指令系統(tǒng)原因:原因:q 硬件成本下降、軟件成本上升。硬件成本下降、軟件成本上升。q 系統(tǒng)向上兼容。系統(tǒng)向上兼容。q 微程序技術的發(fā)展。微程序技術的發(fā)展。采用了可變長的指令格式采用了可變長的指令格式 為了縮短

31、指令字長,同時增大存儲器尋址范圍,出現(xiàn)了為了縮短指令字長,同時增大存儲器尋址范圍,出現(xiàn)了多種尋址方式,出現(xiàn)了可變字長的指令格式。多種尋址方式,出現(xiàn)了可變字長的指令格式。指令使用的尋址方式繁多指令使用的尋址方式繁多指令系統(tǒng)中包括了一些用于特殊用途的指令指令系統(tǒng)中包括了一些用于特殊用途的指令 復雜的指令系統(tǒng),增加了微處理器的復雜性,使微處理復雜的指令系統(tǒng),增加了微處理器的復雜性,使微處理器研制時間長、成本高,降低了機器的速度。器研制時間長、成本高,降低了機器的速度。37CISC指令系統(tǒng)存在的問題:指令系統(tǒng)存在的問題:1、20與與80規(guī)律規(guī)律 CISC中,使用頻度約中,使用頻度約20的指令占據(jù)了的指

32、令占據(jù)了80的處理機時的處理機時間,而使用頻度間,而使用頻度80的指令只占的指令只占20的處理機運行時間的處理機運行時間2、VLSI技術的發(fā)展引起的問題技術的發(fā)展引起的問題q VLSI工藝要求規(guī)整性工藝要求規(guī)整性RISC正好適應了正好適應了VLSI工藝的要求工藝的要求q 主存與控存的速度相當主存與控存的速度相當簡單指令沒有必要用微程序?qū)崿F(xiàn),復雜指令用微程序?qū)嵑唵沃噶顩]有必要用微程序?qū)崿F(xiàn),復雜指令用微程序?qū)崿F(xiàn)與用簡單指令組成的子程序?qū)崿F(xiàn)沒有多大區(qū)別;由于現(xiàn)與用簡單指令組成的子程序?qū)崿F(xiàn)沒有多大區(qū)別;由于VLSI的集成度迅速提高,使得生產(chǎn)單芯片處理機成為可的集成度迅速提高,使得生產(chǎn)單芯片處理機成為可

33、能。能。383、軟硬件的功能分配問題、軟硬件的功能分配問題q復雜的指令使指令的執(zhí)行周期大大加長復雜的指令使指令的執(zhí)行周期大大加長 一般一般CISC處理機的指令平均執(zhí)行周期都在處理機的指令平均執(zhí)行周期都在4以上,有些在以上,有些在10以上。以上。qCISC增強了指令系統(tǒng)功能,簡化了軟件,但硬件復雜了增強了指令系統(tǒng)功能,簡化了軟件,但硬件復雜了 1981年年Patterson等人研制了等人研制了32位位RISC I微處理器,共微處理器,共31種指令,種指令,3種數(shù)據(jù)類型,種數(shù)據(jù)類型,2種尋址方式;研制周期種尋址方式;研制周期10個月,比當個月,比當時最先進的時最先進的MC68000和和Z8002快

34、快3至至4倍;倍;1983年又研制了年又研制了RISC II,指令種類擴充到,指令種類擴充到39種,使用單一的變址尋址方式,通種,使用單一的變址尋址方式,通用寄存器用寄存器138個。個。39大多數(shù)指令在單周期內(nèi)完成大多數(shù)指令在單周期內(nèi)完成LOAD/STORE結(jié)構(gòu)結(jié)構(gòu)硬布線控制邏輯硬布線控制邏輯減少指令和尋址方式的種類減少指令和尋址方式的種類固定的指令格式固定的指令格式1) 注重編譯優(yōu)化技術注重編譯優(yōu)化技術4090年代初,年代初,IEEE的的Michael Slater對對RISC定義的描述:定義的描述:1、RISC為使流水線高效率執(zhí)行,應具有:為使流水線高效率執(zhí)行,應具有:簡單而統(tǒng)一格式的指令

35、譯碼簡單而統(tǒng)一格式的指令譯碼大部分指令可以單周期執(zhí)行完成大部分指令可以單周期執(zhí)行完成僅僅Load和和Store指令可以訪問存儲器指令可以訪問存儲器簡單的尋址方式簡單的尋址方式采用延遲轉(zhuǎn)移技術采用延遲轉(zhuǎn)移技術采用采用LOAD延遲技術延遲技術2、RISC為使優(yōu)化編譯器便于生成優(yōu)化代碼,應具有:為使優(yōu)化編譯器便于生成優(yōu)化代碼,應具有:三地址指令格式三地址指令格式較多的寄存器較多的寄存器1) 對稱的指令格式對稱的指令格式41程序執(zhí)行時間的計算公式:程序執(zhí)行時間的計算公式:其中:其中:P是執(zhí)行這個程序所使用的總的時間;是執(zhí)行這個程序所使用的總的時間;I是這個程序所需執(zhí)行的總的指令條數(shù);是這個程序所需執(zhí)行

36、的總的指令條數(shù);CPI (Cycles Per Instruction)是每條指令執(zhí)行的平均是每條指令執(zhí)行的平均周期周期T是一個周期的時間長度。是一個周期的時間長度。RISC的速度要比的速度要比CISC快快3倍左右,關鍵是倍左右,關鍵是RISC的的CPI減小了。減小了。42類型CISC指令條數(shù)I指令平均周期數(shù)CPI周期時間T121533ns5nsRISC1.410ns2ns43延時轉(zhuǎn)移技術延時轉(zhuǎn)移技術指令取消技術指令取消技術重疊寄存器窗口技術重疊寄存器窗口技術指令流調(diào)整技術指令流調(diào)整技術以硬件為主固件為輔以硬件為主固件為輔44 ADD R1,R2 JMP NEXT2NEXT1

37、:SUB R3,R4NEXT2:MOVE R4,A取指執(zhí)行取指執(zhí)行取指執(zhí)行取指執(zhí)行產(chǎn)生轉(zhuǎn)移地址產(chǎn)生轉(zhuǎn)移地址指令作廢指令作廢重新取指令重新取指令a)因轉(zhuǎn)移指令引起流水線斷流因轉(zhuǎn)移指令引起流水線斷流產(chǎn)生轉(zhuǎn)移地址產(chǎn)生轉(zhuǎn)移地址 JMP NEXT2 ADD R1,R2NEXT1:SUB R3,R4NEXT2:MOVE R4,A取指執(zhí)行取指執(zhí)行取指執(zhí)行插入指令插入指令重新取指令重新取指令b)采用延時轉(zhuǎn)移技術的指令流水線采用延時轉(zhuǎn)移技術的指令流水線45LOOP:XXX YYY ZZZ COMP R1,R2,LOOP WWWa)調(diào)整前程序調(diào)整前程序 XXXLOOP:YYY ZZZ COMP R1,R2,LOO

38、P XXX WWWb)調(diào)整后程序調(diào)整后程序如果轉(zhuǎn)移成功,則執(zhí)行下面的如果轉(zhuǎn)移成功,則執(zhí)行下面的XXX指令,然后返回指令,然后返回LOOP;如;如果轉(zhuǎn)移不成功,則取消下面的果轉(zhuǎn)移不成功,則取消下面的XXX指令,執(zhí)行指令,執(zhí)行WWW指令。指令。后后取指執(zhí)行取指執(zhí)行取指執(zhí)行取指執(zhí)行產(chǎn)生轉(zhuǎn)移地址產(chǎn)生轉(zhuǎn)移地址指令作廢指令作廢重新取指令重新取指令46A局部寄存器A,B公用寄存器B局部寄存器B,C公用寄存器C局部寄存器C,D公用寄存器全局寄存器137132131122121116115106105100999089841090A局部寄存器傳送參數(shù)B局部寄存器傳送參數(shù)傳送參數(shù)C局部寄存器傳送參數(shù)傳送參數(shù)寄存器

39、重疊寄存器重疊寄存器重疊寄存器重疊局部寄存器與下一個過程合用與上一個過程合用全局寄存器3126251615109047ADD R1,R2,R3 ;(R1)+(R2)R3ADD R3,R4,R5 ;(R3)+(R4)R5MUL R6,R7,R3 ;(R6)(R7)R3MUL R3,R8,R9 ;(R3)(R8)R9a)調(diào)整前的指令序列調(diào)整前的指令序列ADD R1,R2,R3MUL R6,R7,R0ADD R3,R4,R5MUL R0,R8,R9b)調(diào)整后的指令序列調(diào)整后的指令序列消除數(shù)據(jù)相關消除數(shù)據(jù)相關48 RISC要求主要指令在單個周期內(nèi)執(zhí)行完成,因此,主要求主要指令在單個周期內(nèi)執(zhí)行完成,因此,主要采用硬連線邏輯實現(xiàn)。對于少數(shù)復雜的指令,可以使用微要采用硬連線邏輯實現(xiàn)。對于少數(shù)復雜的指令,可以使用微程序(固件)實現(xiàn),程序(固件)實現(xiàn), 并且較多使用全水平型微指令。并且較多使用全水平型微指令。49RISC是硬件和軟件相結(jié)合的產(chǎn)物。是硬件和軟件相結(jié)合的產(chǎn)物。RI

溫馨提示

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

評論

0/150

提交評論