指令格式的優(yōu)化設(shè)計(jì)_第1頁
指令格式的優(yōu)化設(shè)計(jì)_第2頁
指令格式的優(yōu)化設(shè)計(jì)_第3頁
指令格式的優(yōu)化設(shè)計(jì)_第4頁
指令格式的優(yōu)化設(shè)計(jì)_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、指令格式的優(yōu)化設(shè)計(jì)指令格式的優(yōu)化設(shè)計(jì)的目的是用最短的二進(jìn)制位數(shù)表示指令的操作信息和地址信息,使指令的平均字長最短。指令格式的優(yōu)化設(shè)計(jì),第一依照指令集各指令的使用頻度的分布Pi對(duì)操作碼進(jìn)行優(yōu)化設(shè)計(jì),爾后對(duì)地址碼和尋址方式的表示采用優(yōu)化措施,使指令格式達(dá)到優(yōu)化。經(jīng)過優(yōu)化設(shè)計(jì)的指令集減少了程序的總位數(shù),減少了程序運(yùn)行的時(shí)空開銷,從而提高了系統(tǒng)的性能。我們第一談?wù)摬僮鞔a的優(yōu)化編碼方法,爾后談?wù)搶ぶ芳夹g(shù),最后,在操作碼和地址碼優(yōu)化表示的基礎(chǔ)上,說明指令格式的優(yōu)化設(shè)計(jì)。一、操作碼的優(yōu)化設(shè)計(jì)、操作碼優(yōu)化編碼的方法操作碼優(yōu)化編碼的方法有三種:定長編碼、哈夫曼編碼和擴(kuò)展編碼。定長編碼:是指全部指令的操作碼長度都

2、是相等的。若是有n個(gè)需要編碼的操作碼,定長操作碼的位數(shù)最少需要log2n位。哈夫曼編碼:用哈夫曼方法構(gòu)造哈夫曼樹進(jìn)行編碼。構(gòu)造哈夫曼樹的方法是:每次從指令集中選出兩個(gè)使用頻度最小的指令,將其頻度相加,形成一個(gè)節(jié)點(diǎn),稱為父節(jié)點(diǎn),將再生成的父節(jié)點(diǎn)放到結(jié)點(diǎn)集中,從頭的節(jié)點(diǎn)集中再選兩個(gè)使用頻度最少的節(jié)點(diǎn)生成一個(gè)新的父節(jié)點(diǎn),直至節(jié)點(diǎn)集成為空集,就生成了一棵哈夫曼樹。每個(gè)節(jié)點(diǎn)的兩個(gè)分支節(jié)點(diǎn),稱為節(jié)點(diǎn),用0和1表記,上面的節(jié)點(diǎn)稱根節(jié)點(diǎn),下面的節(jié)點(diǎn)稱為葉節(jié)點(diǎn)。從最上面的根節(jié)點(diǎn)到一個(gè)葉節(jié)點(diǎn)的路徑(由0和1組成的序列)就是這個(gè)葉節(jié)點(diǎn)的哈夫曼編碼。由于哈夫曼編碼的碼長種類很多。既不利于硬件對(duì)操作碼的譯碼,也很難與地

3、址碼配合形成長度規(guī)整的指令格式。因此,合用的操作碼編碼一般不采用哈夫曼編碼而采用擴(kuò)展編碼的方法。擴(kuò)展編碼:限制使用少許幾種長度碼長,使用頻度高的碼點(diǎn)用短碼表示,使用頻度低的碼點(diǎn)用長碼表示。特別需要指出的是,不是全部的短碼都可以作為長碼的前綴,即不是任何短碼都可以是任何長碼的若干位。否則,編碼將會(huì)不唯一。因此,要留下若干個(gè)短碼作為長碼的擴(kuò)展標(biāo)志,以便長碼在擴(kuò)展編碼時(shí)使用。這是擴(kuò)展編碼“擴(kuò)展”一詞的含義。擴(kuò)展編碼的兩種表示方法。1)碼長表示法,用短橫線前后的數(shù)字分別表示短碼碼長和長碼碼長,比方,2-4-6表示指令操作碼的長度有三種,分別是2位、4位、6位。(沒有表示三種長度的編碼各有多少個(gè)碼點(diǎn))。

4、2)碼點(diǎn)數(shù)表示法,用斜線前后的數(shù)字分別表示短碼碼點(diǎn)的個(gè)數(shù)和長碼碼點(diǎn)的個(gè)數(shù),比方,3/4/6表示有三種碼長,最短碼長的碼點(diǎn)個(gè)數(shù)是3,最長碼長的碼點(diǎn)個(gè)數(shù)是4,三種碼點(diǎn)的總數(shù)是13。(沒有表示各個(gè)碼點(diǎn)數(shù)的碼長是多少)。2、操作碼優(yōu)化編碼的談?wù)摲椒ㄓ闷骄a長談?wù)摼幋a優(yōu)化的程度,平均碼長為:npili1其中pi是第i種碼點(diǎn)的使用頻度,li是第i種碼點(diǎn)的編碼長度。用位冗余量衡量編碼優(yōu)化的程度,位冗余量為lHHR1ll其中,H稱為信息熵(Entropy)nHpilog2pii1表示用二進(jìn)制編碼表示n個(gè)碼點(diǎn)時(shí)理論上最短平均編碼長度。因此對(duì)于任何實(shí)質(zhì)編碼得出的平均碼長l,都有l(wèi)H,故有0R1。3、對(duì)于同一個(gè)頻度

5、分布pi,應(yīng)用哈夫曼法有可能生成不相同的哈夫曼樹。因此,由不相同的哈夫曼樹得出的各碼點(diǎn)的編碼不相同。也就是說,從頻度分布pi得出的哈夫曼編碼其實(shí)不唯一。但,計(jì)算獲取的平均碼長l必定是唯一的。依照實(shí)現(xiàn)編碼的碼點(diǎn)個(gè)數(shù)的要求,在采用擴(kuò)展編碼方法進(jìn)行優(yōu)化編碼時(shí),采用幾個(gè)短碼作為長碼擴(kuò)展碼標(biāo)志的原則:一是依照需要編碼的短碼的碼點(diǎn)個(gè)數(shù)和長碼碼點(diǎn)個(gè)數(shù)進(jìn)行選擇,二是盡量減少編碼可表示的冗余碼點(diǎn)的個(gè)數(shù)??傊瑧?yīng)盡可能達(dá)到平均碼長最短的優(yōu)化要求。2例1:一個(gè)辦理機(jī)共有I1I10共10條指令,經(jīng)統(tǒng)計(jì)各指令在程序中的使用頻率分別為:p1=0.25p2=0.20p3=0.15p4=0.10p5=0.08p6=0.08p

6、7=0.05p8=0.04p9=0.03p10=0.02計(jì)算該10條指令的操作碼編碼的最短平均碼長;寫出該10條指令的操作碼的哈夫曼編碼,并計(jì)算該種編碼的平均碼長和位冗余量;采用3/7擴(kuò)展編碼和2/8擴(kuò)展編碼編寫該10條指令的操作碼,并分別計(jì)算平均碼長和位冗余量。問哪一種擴(kuò)展編碼較好?說明其原由。解:由給出的使用頻率p1p10,計(jì)算I1I10的操作碼編碼的最短平均碼長:10pilog2pi1=-(0.25log20.25+0.20log20.20+0.15log20.15+0.10log20.10+0.08log20.08+0.08log20.08+0.05log20.05+0.04log20

7、.04+0.03log20.03+0.02log20.02)=2.96位因此,這十條指令的操作碼編碼的最短平均碼長為2.96位。依照給出的使用頻度,在用哈夫曼編碼算法構(gòu)造哈夫曼樹的過程中,在選兩個(gè)頻度最小的節(jié)點(diǎn)合并時(shí),有時(shí)有兩個(gè)以上的節(jié)點(diǎn)可供選擇,因此就會(huì)生成構(gòu)造不相同的哈夫曼樹。這里給出了兩個(gè)哈夫曼樹。以以下圖:3110101010I210I110I410I310I610I5I10I9I8I741100.570.4310100.320.250.230.2010I110I20.170.150.130.1010I310I40.090.080.050.0810I5I7I60.050.0410I80

8、.020.03I10I9由哈夫曼樹獲取的兩種哈夫曼編碼以下表:Iipi哈夫曼編碼(a)碼長Iai哈夫曼編碼(b)碼長IbiI10.25002102I20.20102002I30.1501031103I40.1011030103I50.080110411104I60.081110401104I70.0501110501114I80.04011115111105I90.031111051111106I100.021111151111116可見哈夫曼編碼是不唯一的。兩種哈夫曼編碼的平均碼長為:510IapiIaii1=0.25*2+0.20*2+0.15*3+0.10*3+0.08*4+0.08*4

9、+0.05*5+0.04*5+0.03*5+0.02*5=2.99位10IbpiIbii1=0.25*2+0.20*2+0.15*3+0.10*3+0.08*4+0.08*4+0.05*4+0.04*5+0.03*6+0.02*6=2.99位可見,盡管哈夫曼編碼不相同,而平均碼長倒是唯一的。兩種哈夫曼編碼的位冗余量分別為:RaH12.9611.0%la2.99RbH12.9611.0%lb2.99顯然,Ra=Rb3/7擴(kuò)展編碼和2/8擴(kuò)展編碼以下表所示:Iip3/7擴(kuò)展編碼碼長Iai2/8擴(kuò)展編碼碼長IbiiI10.25002002I20.20012012I30.1510210004I40.1

10、011000510014I50.0811001510104I60.0811010510114I70.0511011511004I80.0411100511014I90.0311101511104I100.02111105111143/7擴(kuò)展編碼要求短碼碼點(diǎn)有3個(gè),長碼碼點(diǎn)有7個(gè),短碼碼長取2位,可表示22=4個(gè)短碼碼點(diǎn)。因此只留一個(gè)碼點(diǎn)作為擴(kuò)展標(biāo)志。要表示的長碼碼點(diǎn)有7個(gè),因此要擴(kuò)展63位,因此有238個(gè)擴(kuò)展點(diǎn)可用,故有一個(gè)點(diǎn)即有一個(gè)長碼碼點(diǎn)11111未被用到,或稱有一個(gè)冗余碼點(diǎn)。而采用2/8擴(kuò)展編碼則沒有冗余碼點(diǎn)。由此判斷,2/8擴(kuò)展編碼優(yōu)于3/7擴(kuò)展編碼。但是,正確地談?wù)摼幋a的利害仍需要比

11、較平均碼長。兩種擴(kuò)展編碼的平均碼長分別為:I3/7=(0.25+0.20+0.15)*2+(0.10+0.08+0.08+0.05+0.04+0.03+0.02)*5=3.2位I2/8=(0.25+0.20)*2+(0.15+0.10+0.08+0.08+0.05+0.04+0.03+0.02)*4=3.1位兩種擴(kuò)展編碼的位冗余量分別為:R3/71H2.967.5%13.2l3/7R2/81H2.964.5%13.1l2/8顯然,由于R2/8R3/7,因此,2/8擴(kuò)展編碼優(yōu)于3/7擴(kuò)展編碼。二、尋址技術(shù)尋址技術(shù)對(duì)于指令格式的設(shè)計(jì)十分重要。它決定了指令字中如何表示地址碼。尋址技術(shù)是指儲(chǔ)藏?cái)?shù)據(jù)的空

12、間如何編址和如何尋址的技術(shù)。前者稱為編址方式,后者稱為尋址方式。在主機(jī)中,可用于儲(chǔ)藏?cái)?shù)據(jù)的空間有:CPU中的通用存放器、主儲(chǔ)藏器、貨倉和I/O接口中的數(shù)據(jù)存放器。由于這些儲(chǔ)藏空間的工作速度和儲(chǔ)藏容量差別很大,因此,采用的編址方式和尋址方式也不相同。1、儲(chǔ)藏空間的組織方式儲(chǔ)藏空間有以下三種組織方式:三個(gè)地址空間的組織方式儲(chǔ)藏空間的儲(chǔ)藏單位數(shù)量越多,用于儲(chǔ)藏單位編址的地址碼越長。CPU中的通用寄存器數(shù)量較少,I/O存放器的數(shù)量很多,主儲(chǔ)藏單元的數(shù)量大得多。為了減少指令中用于編址的地址碼長度,要對(duì)這三個(gè)儲(chǔ)藏空間分別獨(dú)立編址。三個(gè)儲(chǔ)藏空間的尋址方式也不相同。對(duì)存放器一般采用直接尋址方式,對(duì)主儲(chǔ)藏器一般

13、采用間接尋址和變址尋址等多種尋址方式,以防備在指令中用長的地址碼直接表示主存單元的地址。7兩個(gè)地址空間的組織方式CPU的通用存放器獨(dú)立編址,I/O存放器和主儲(chǔ)藏器一致編址。一致編址空間的高端地址一般用于I/O接口存放器的地址。一個(gè)地址空間的組織方式全部數(shù)據(jù)儲(chǔ)藏單位一致編址,地址空間的低端地址是CPU的通用存放器的地址,高端地址是I/O接口存放器的地址。2、地址單位常用的編址單位有:字編址,字節(jié)編址和位編址。字編址是指每個(gè)編址地址與接見的數(shù)據(jù)儲(chǔ)藏單位相一致。字節(jié)編址是指每個(gè)編址單位都是一個(gè)字節(jié)。位編址是指每個(gè)編址單位都是一個(gè)二進(jìn)制位。對(duì)CPU通用存放器的一次讀/寫接見,要求讀出或?qū)懭胪ㄓ么娣牌髦?/p>

14、的是一個(gè)字。因此,通用存放器按字編址,存放器的編號(hào)就是存放器的地址碼。主儲(chǔ)藏器可以按字編址,也可以按字節(jié)編址。按字編址是最簡(jiǎn)單實(shí)現(xiàn)的一種編址方式,在采用按字編址的計(jì)算機(jī)中,可以設(shè)置特地的按字節(jié)操作的指令和按位操作的指令,用來實(shí)現(xiàn)對(duì)儲(chǔ)藏單元中的指令字節(jié)或指令位進(jìn)行操作。3、尋址方式按指令中包括的地址碼的個(gè)數(shù)來分,指令可分為:零地址指令一地址指令、二地址指令和三地址指令。依照指令中給出的地址碼來查找數(shù)據(jù)儲(chǔ)藏單元的方式稱為尋址方式。按指令的尋址空間來分,尋址方式可以分為以下四種:馬上數(shù)尋址在指令的地址碼地址直接給出操作數(shù),使指令從指令字中獲取操作數(shù),不需要接見任何地址空間,指令執(zhí)行速度很快。缺點(diǎn)是指

15、令字中的地址碼長度有限,使操作數(shù)的示數(shù)范圍較小,示數(shù)精度較低。存放器尋址若尋址空間是通用存放器,則采用通用存放器尋址方式。由于通用存放器的工作速度較快,因此存放器尋址的執(zhí)行速度較快。別的,由于通用存放器的字長比指令中的地址碼的長度要大得多,因此,存放器中的操作數(shù)的示數(shù)范圍和示數(shù)精度較大。8主存尋址若尋址空間是主存,則采用主存尋址方式,由于主存的工作速度較慢,因此主存尋址比較費(fèi)時(shí)。別的,由于主存的容量很大,即主存的儲(chǔ)藏空間很大,因此主存空間的地址碼較長,而指令字中分配給地址碼的位數(shù)很有限,這種矛盾在二地址指令和三地址指令中更突出。為了能用有限長度的指令地址碼對(duì)應(yīng)相當(dāng)大的主存空間尋址,在主存尋址方

16、式中要采用間接尋址和變址尋址等尋址方式。在這些尋址方式中用存放器存放操作數(shù)的主存單元地址,而在指令地址碼中給出的是相應(yīng)的存放器地址。指令執(zhí)行時(shí),先接見指令地址碼指定的存放器,從指定的存放器中獲取主存單位地址,爾后再接見該主存單元地址指定的主存單元,從而獲取所要用的數(shù)據(jù)。貨倉地址由于貨倉中的數(shù)據(jù)只能先進(jìn)后出,后進(jìn)先出,因此對(duì)貨倉空間的尋址無需指明地址。標(biāo)準(zhǔn)的貨倉操作指令沒有地址碼部分,如:PUSHAPUSHBADDPOPC三、指令格式優(yōu)化設(shè)計(jì)的措施在操作碼優(yōu)化編碼的基礎(chǔ)上,結(jié)合地址碼和尋址方式在指令中的表示,可使指令字格式優(yōu)化。指令字格式優(yōu)化設(shè)計(jì)的措施主要有:采用擴(kuò)展編碼,以縮短操作碼的平均碼長

17、。采用多種尋址方式,諸如基址、變址、相對(duì)尋址、存放器尋址、存放器間接尋址等多種尋址方式,以縮短需要在指令中表示的地址碼長度,但不減少地址碼尋址空間的大小。指令集采用零地址、一地址、二地址、三地址等多種地址制,且讓常用的短操作碼與多地址字段相當(dāng)合,長操作碼與少地址字段相當(dāng)合。在同種地址制的若干指令中采用多種地址表示形式,如存放器存放器型,寄存器主存型,主存主存型等,讓每種地址字段有多種長度,使長度不等的操作碼與地址碼配合,形成規(guī)整(相同)長度的指令字。保持指令字在儲(chǔ)藏器中按整數(shù)界線儲(chǔ)藏的前提下,使用多種不相同的指令字長度,整數(shù)界線儲(chǔ)藏要求指令字長應(yīng)是主儲(chǔ)存藏字長的整數(shù)倍。9綜合應(yīng)用上述措施,就可

18、以使指令系統(tǒng)的位冗余量減少,操作數(shù)的尋址靈便,操作碼的備用碼總數(shù)增添,有利于對(duì)指令系統(tǒng)進(jìn)行擴(kuò)大。為了說明考慮以上各種措施后實(shí)現(xiàn)指令字格式優(yōu)化設(shè)計(jì)的過程,現(xiàn)舉比以下:例2:某模型機(jī)有9條指令,其使用頻度分別為:ADD:30%SUB:24%LOD:6%STD:7%JMP:7%SHR:2%ROL:3%MOV:20%STP:1%要求:用兩種指令字長,且都用二地址指令。采用擴(kuò)展編碼,只能用兩種操作碼碼長。短指令為存放器存放器型,長指令為存放器主存型。設(shè)該機(jī)器有若干個(gè)通用存放器。主存地址能變址尋址,寬度為16位,按字節(jié)編址,采用按整數(shù)界線儲(chǔ)藏,任何指令都在一個(gè)主存周期中獲取。僅依照使用頻度,不考慮其余要求

19、,設(shè)計(jì)出哈夫曼編碼,并計(jì)算平均碼長;依照給出的全部要求,設(shè)計(jì)優(yōu)化的操作碼編碼,并計(jì)算平均碼長;畫出該機(jī)的兩種指令字的格式,標(biāo)出各字段的位數(shù);該機(jī)贊同使用多少個(gè)可編址的通用存放器?變址尋址的最大相對(duì)位移量是多少字節(jié)?解:依照頻度分布,得出哈夫曼樹,以以下圖:100.44100.560.4410100.260.300.200.2410I1I3I20.120.1410100.060.060.070.0710I6I5I40.030.0310I70.010.02I9I8由哈夫曼樹,得出9條指令的哈夫曼樹,以下表:Ii指令pi哈夫曼編碼Ii(位)25擴(kuò)展編碼Ii(位)I1ADD30%102002I2SUB

20、24%002012I3MOV20%012102I4STO7%11004110005I5JMP7%11014110015I6LOD6%11104110105I7ROL3%111105110115I8SHR2%1111106111005I9STP1%1111116111015哈夫曼編碼的平均碼長為:10lpili2.61(位)1依照題目要求,指令有兩種字長,主存寬度為16位,按字節(jié)編址,采用按整數(shù)界線儲(chǔ)藏,任何指令都在一個(gè)主存周期獲取,那么,短指令字長只能是8位,長指令字長只能是16位。11指令都用二地址指令:短指令位存放器存放器型,據(jù)此可得出短指令格式為:操作碼存放器1存放器2長指令為存放器主存

21、型,且主存地址應(yīng)能變址尋址,可得出長指令格式為:操作碼存放器號(hào)變址存放器相對(duì)位移|-主存邏輯地址-|在一般的計(jì)算機(jī)中,變址存放器就是某一個(gè)通用存放器,因此,變址存放器字段的位數(shù)與存放器字段的位數(shù)相同。依照題目的要求,指令操作碼可采用擴(kuò)展編碼,并只能用兩種碼長。從指令使用頻度來看,ADD、SUB和MOV的使用頻度較高,其余六種指令的使用頻度都低得多,因此,短操作碼碼長應(yīng)取2位長,可有22=4個(gè)碼點(diǎn),用其中三個(gè)碼點(diǎn)表示這三條指令,余下一個(gè)碼點(diǎn)作為擴(kuò)展標(biāo)志。用一個(gè)擴(kuò)展標(biāo)志再擴(kuò)展表示出其余六個(gè)操作碼,故還需要擴(kuò)展三位,因此,長操作碼碼長為5位。由此,得出九條指令的2-5擴(kuò)展操作碼如上表所示。2-5擴(kuò)展

22、編碼的平均碼長為10lpili2.78(位)1由上述解析,可得出短指令格式中各字段的位數(shù)為操作碼存放器1存放器2|-2位-|-3位-|-3位-|長指令格式中各字段的位數(shù)為:操作碼存放器變址存放器相對(duì)位移|-5位-|-3位-|-3位-|-5位-|12由于存放器的字段長度為3位,因此,該機(jī)可使用的可編址通用存放器的個(gè)數(shù)最多為23=8個(gè)。5由于相對(duì)位移長度為5位,因此,訪存變址尋址的最大相對(duì)位移量為2=32個(gè)字節(jié)。一某模型機(jī)共有7條指令,各指令的使用頻度分別為:35%25%20%10%5%3%2%,共有8個(gè)通用存放器和2個(gè)變址存放器。(1)請(qǐng)?jiān)O(shè)計(jì)7條指令的哈夫曼編碼,并計(jì)算操作碼的平均碼長。(2)若

23、要求設(shè)計(jì)8位長的R-R型指令3條,16位長R-M型變址尋址指令4條,變址范圍為-127+127,請(qǐng)?jiān)O(shè)計(jì)指令格式,并給出指令各字段的長度和操作碼編碼。解:(1)哈夫曼樹以以下圖所示(略),獲取的哈夫曼編碼以下表第3列所示,由此獲取的7條指令操作碼的平均碼長為:L=PILI=2.35(位)LIP哈夫曼編碼3/4擴(kuò)展編碼II10.350000I20.250101I30.201010I40.101101100I50.0511101101I60.03111101110I70.021111111113條8位長的R-R型指令的格式以下:操作碼存放器1存放器22位3位3位由于有8個(gè)通用存放器,因此指令中的存放

24、器字段應(yīng)為3位,短操作碼字段應(yīng)有2位,2位碼可以表示4個(gè)指令碼,用其中的3個(gè)碼點(diǎn)“00”“01”“10”表示3條8位的短指令的操作碼,余下1個(gè)碼點(diǎn)“11”作為長碼13的擴(kuò)展標(biāo)志。4條16位長的R-M型變址尋址指令的格式為:操作數(shù)存放器號(hào)變址存放器號(hào)相對(duì)位移4位3位1位8位由于有兩個(gè)變址存放器,因此變址存放器號(hào)字段只有1位;由于變址范圍是-127+127,因此相對(duì)位移字段為8位:因此剩下的4位(由于16-3-1-8=4)用來表示操作碼,其中2位為擴(kuò)展標(biāo)示位,別的擴(kuò)展的2位恰巧表示4條指令的操作碼。采用上述3/4擴(kuò)展遍碼時(shí),使用頻率高的指令用短碼表示,使用頻率低的用長碼表示,獲取的3/4擴(kuò)展遍碼如

25、上表第4列所示。二為了顯示不相同指令系統(tǒng)的性能,請(qǐng)用(1)三地址指令系統(tǒng)辦理機(jī);(2)二地址指令系統(tǒng)辦理機(jī);(3)二地址多通用存放器指令系統(tǒng)辦理機(jī);(4)一地址(累加器)指令系統(tǒng)辦理機(jī);(5)零地址指令系統(tǒng)辦理機(jī);分別寫出計(jì)算下式X數(shù)值的五個(gè)程序,程序都用直接方式尋址,并設(shè)數(shù)據(jù)AG都已經(jīng)存放在主存相應(yīng)的儲(chǔ)藏單元中,計(jì)算結(jié)果存放在X單元中.X=A+B*C+E*D/F-G.設(shè)操作碼(P=1B)為8位儲(chǔ)藏單元地址碼(A=2B)為16位一個(gè)數(shù)據(jù)(D=4B)為32位一個(gè)通用存放器地址(R=0.5B)為4位.分別統(tǒng)計(jì)五個(gè)程序的指令條數(shù);分別統(tǒng)計(jì)五個(gè)程序的訪存次數(shù),其中包括存取指令和讀取操作數(shù)的訪存次數(shù);分

26、別統(tǒng)計(jì)五個(gè)程序指令所用的儲(chǔ)藏空間(由于不相同程序中用的儲(chǔ)藏空間大體相同,因此不用統(tǒng)計(jì));分別統(tǒng)計(jì)五個(gè)程序的訪存信息量(即全部訪存操作所存取的指令和數(shù)據(jù)14的字節(jié)數(shù)的總和).將五個(gè)程序按所用的儲(chǔ)藏空間大小和訪存信息量排隊(duì),說明5種指令系統(tǒng)的程序運(yùn)行時(shí)的時(shí)空開銷.解:計(jì)算X數(shù)值的五個(gè)程序:(1)三地址指令系統(tǒng)編寫的程序?yàn)椋?ADDX,A,B;X中暫存2MULX,X,C;X中暫存3MULY,D,E;Y中暫存4ADDX,X,Y;X中暫存5SUBY,F(xiàn),G;Y中暫存6DIVX,X,Y;X中存(2)二地址指令系統(tǒng)的程序?yàn)椋?MOVEX,A2ADDX,B3MULX,C4MOVEY,D5MULY,E6ADDX

27、,Y7MOVEY,F(xiàn)8SUBX,Y9DIVX,Y(3)二地址多通用存放器指令系統(tǒng)的程序?yàn)椋?MOVER1,A2ADDR1,B3MULR1,C4MOVER2,D155MULR2,E6ADDR1,R27MOVER2,F(xiàn)8SUBR2,G9DIVR1,10MOVEX,R1(4)一地址(累加器)指令系統(tǒng)的程序?yàn)椋?LOADF2SUBG3STOREX4LOADA5ADDB6MULC7STOREY8LOADD9MULE10ADDY11DIVX12STOREX5)零地址指令系統(tǒng)的程序?yàn)椋篜USHA2PUSHB3ADD4PUSHC5MUL6PUSHD7PUSHE8MUL169ADD10PUSHF11PUSHGS

28、UBDIVPOP五個(gè)程序的指令條數(shù)訪存次數(shù)和訪存信息量用三地址指令編的程序共用6條指令,每條指令含1個(gè)操作碼,2個(gè)源操作數(shù)地址和1個(gè)目的操作數(shù)地址,每條指令的字長為P+3A=1B+3*2B=7B。程序所用的儲(chǔ)藏量為6*7B=42B。每條指令需4次訪存:其中取指令訪存1次,訪存信息量為7B;取2個(gè)源操作數(shù)需訪存2次,訪存信息量為2D=284B=8B;存計(jì)算結(jié)果訪存1次,訪存信息量為1D=4B。因此,執(zhí)行一條指令的訪存信息量為7B+8B+4B=19B。執(zhí)行整個(gè)程序的訪存信息量為6*19B=114B。用二地址指令編的程序共用9條指令,每條指令含1個(gè)操作碼,2個(gè)源操作數(shù)地址且第1個(gè)源操作數(shù)地址也是目的

29、操作數(shù)地址;也許是1個(gè)是源操作數(shù)地址一個(gè)是目的操作數(shù)地址。每條指令的字長為P+2A=1B+2*2B=5B。程序所用的儲(chǔ)藏量為9*5B=45B。前者每條指令所需訪存讀/寫操作數(shù)的次數(shù)以下表所示。程序執(zhí)行的訪存信息量包括:取9條指令的訪存信息量9*5B=45B;15次取源操作數(shù)的訪存信息量15*4B=60B;9次存結(jié)果數(shù)據(jù)的訪存信息量9*4B=36B。因此,程序執(zhí)行的訪存信息量為45B+60B+36B=141B.(3)用二地址多通用存放器指令編的程序共用10條指令,每條指令含1個(gè)操作碼,2個(gè)源操作數(shù)地址且第1個(gè)源操作數(shù)地址也是目的操作數(shù)地址;也許是1個(gè)是源操作數(shù)地址一個(gè)是目的操作數(shù)地址。源操作數(shù)地

30、址和目的操作數(shù)地址可以是儲(chǔ)藏單元地址,也可以是存放器地址。由程序可知,有2條指令的2個(gè)操作數(shù)地址是存放存器地址,指令字長為P+2R=1B+2*0.5B=2B,其余指令2個(gè)操作數(shù)地址都1個(gè)是儲(chǔ)藏單元地址1個(gè)是存放器地址,指令字長為17P+A+R=1B+2B+0.5B=3.5B。因此,程序所用的儲(chǔ)藏量為2*2B+8*3.5B=32B.10條指令所需訪存讀/寫操作數(shù)的次數(shù)以下表所示。程序執(zhí)行的訪存信息量:包括取10條指令的訪存信息量32B;7次取源操作數(shù)的訪存信息量7*4B=28B;1次存結(jié)果數(shù)據(jù)的訪存信息量4B。因此,程序執(zhí)行的訪存信息量為32B+28B+4B=64B.用一地址指令編的程序共用12條指令,每條指令含1個(gè)操作碼,1個(gè)源操作數(shù)地址或目的操作數(shù)地址;前者把源操作數(shù)取到累加器中,也許與累加器中暫存的操作數(shù)進(jìn)行運(yùn)算,將結(jié)果仍暫存于累加器中;后者把暫存于累加器中的數(shù)據(jù)送入目的地址指定的儲(chǔ)藏單元中。每條指令的字長為P+A=1B+2B=3B。因此,程序占用的儲(chǔ)藏量為12*3B=36B。每條指令的執(zhí)行需2次訪存:其中的1次為取指令,訪存信息量為指令字長3B;另1次是取1個(gè)源操作數(shù)或存結(jié)果數(shù)據(jù)訪存,訪存信息量是1D=4B??傊?條指令的執(zhí)行訪存信息量為3B+4B=7B。整個(gè)程序執(zhí)行的訪存信息量等于12*7B=

溫馨提示

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

評(píng)論

0/150

提交評(píng)論