版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
南大科技學(xué)院主講羅少彬Email:luoshaobin2010@163.comPhone:83#####4章指令系統(tǒng)指令設(shè)計(jì)基礎(chǔ)指令系統(tǒng)概述本講主要內(nèi)容指令概述
用計(jì)算機(jī)解題時(shí),一般都要編制程序,程序既可用高級(jí)語(yǔ)言編寫,亦可用機(jī)器語(yǔ)言編寫;但計(jì)算機(jī)只能夠識(shí)別和執(zhí)行用機(jī)器語(yǔ)言編寫的程序;各種高級(jí)語(yǔ)言編寫的應(yīng)用程序,最終都要翻譯成機(jī)器語(yǔ)言來(lái)執(zhí)行。機(jī)器語(yǔ)言是由一系列的指令(語(yǔ)句)組成的;指令的格式就是機(jī)器語(yǔ)言的語(yǔ)法;每條指令規(guī)定機(jī)器完成一定的功能。
一臺(tái)計(jì)算機(jī)的所有的指令集合稱為該機(jī)的指令系統(tǒng)或指令集。它是程序工作者編制程序的基本依據(jù),也是進(jìn)行計(jì)算機(jī)邏輯設(shè)計(jì)的基本依據(jù)。一條指令應(yīng)包含如下信息:進(jìn)行何種操作:即操作性質(zhì)。體現(xiàn)在指令中被稱為操作碼。操作的對(duì)象:數(shù)據(jù)來(lái)源以及如何尋找操作數(shù)。體現(xiàn)在指令中被稱為地址碼。操作結(jié)果:結(jié)果存放在何處。下一條指令又如何尋找?指令格式指令由操作碼和地址碼兩部分組成,它的基本格式如下:操作碼地址碼
1.操作碼操作碼是說(shuō)明指令操作性質(zhì)的二進(jìn)制數(shù)代碼。操作碼所占的二進(jìn)制位數(shù)決定了一臺(tái)計(jì)算機(jī)所能允許的指令條數(shù)。
例如,操作碼占用六位二進(jìn)制碼時(shí),這臺(tái)計(jì)算機(jī)最多允許有:
26=64條指令(1)固定長(zhǎng)度操作碼
固定長(zhǎng)度操作碼是指操作碼所占的二進(jìn)制位數(shù)固定不變,而且集中放在指令字的一個(gè)字段中。
這種格式有利于簡(jiǎn)化硬件設(shè)計(jì),減少指令譯碼時(shí)間,廣泛用于字長(zhǎng)較長(zhǎng)的大、中型計(jì)算機(jī)和超級(jí)小型計(jì)算機(jī)中。
例如IBM370和VAX﹣11系列機(jī)中,操作碼的長(zhǎng)度都是8位,可表示256條指令。(2)可變長(zhǎng)度操作碼
可變長(zhǎng)度操作碼是操作碼擴(kuò)展技術(shù)的應(yīng)用,即操作碼的長(zhǎng)度是可變的,且分散地放在指令的不同字段中。這種格式有利于壓縮程序中操作碼的平均長(zhǎng)度,在字長(zhǎng)較短的微型機(jī)中被廣泛應(yīng)用。如:PDP-11,INTEL8086/80386等,其操作碼的長(zhǎng)度均是可變的。操作碼字段分兩種:操作碼的擴(kuò)展:
這是一個(gè)16位字長(zhǎng)的指令碼,包括4位基本操作碼字段和三個(gè)4位長(zhǎng)的地址字段。4位基本操作碼,若全部用于三地址指令,則有16條。顯然,4位基本操作碼是不夠的,必須向地址碼字段擴(kuò)展操作碼的長(zhǎng)度。其擴(kuò)展方法及步驟如下:
OPA1A2
A34位4位4位4位①15條三地址指令的操作碼由4位基本操作碼0000~1110所給定,剩下一個(gè)1111則用于把操作碼擴(kuò)展到X地址碼字段,即由4位擴(kuò)展到8位;?②
14條二地址指令的操作碼由8位操作碼的1111,0000~1111,1101給定,剩下的1111,1110和1111,1111又可用于把操作碼擴(kuò)充到Y(jié)地址字段,即從8位又?jǐn)U充到12位;③
31條一地址指令的操作碼由12位操作碼的1111,1110,0000~1111,1111,1110給定。15條三地址指令14條二地址指令
31條一地址指令0001XXXXYYYYZZZZ1110XXXXYYYYZZZZ11110000YYYYZZZZ11110001YYYYZZZZ11111101YYYYZZZZ
┆
┆111111100000ZZZZ111111100001ZZZZ111111111110ZZZZ
┆0000XXXXYYYYZZZZ由此類堆,還可以把剩下的1111,1111,1111擴(kuò)充到Z地址碼字段而形成的16位操作碼,這時(shí)還可由1111,1111,1111,0000~1111,1111,1111,1111給出16條零地址指令。因此,共有15+14+31+16=76條指令,除了這種安排外,還有多種其它安排方法。
如:形成15條三地址指令,12條二地址指令,63條一地址指令,16條零地址指令,共106條指令。
實(shí)際的機(jī)器可以采用各種靈活的擴(kuò)展方式,其思路與此類似。
11111111000011111111
1111000111111111
1111
111116零上述方法是在不增加指令長(zhǎng)度的情況下,采用對(duì)地址少的指令使用較長(zhǎng)的操作碼,對(duì)地址數(shù)多的指令使用較短的操作碼。其實(shí)質(zhì)是增加了指令的數(shù)量,豐富了指令的功能。在可變長(zhǎng)操作碼的指令系統(tǒng)設(shè)計(jì)中,究竟使用何種擴(kuò)展方法為好,指令的使用頻度(即在程序中出現(xiàn)的概率)是非常重要的依據(jù)。即頻度高的指令應(yīng)分配短的操作碼,頻度低的指令則分配較長(zhǎng)的操作碼。這樣,既可有效地縮短操作碼在程序中的平均長(zhǎng)度,節(jié)省存儲(chǔ)空間,又可縮短常用指令的譯碼時(shí)間以提高程序的運(yùn)行速度。其缺點(diǎn)是譯碼系統(tǒng)比固定操作碼復(fù)雜,增加了設(shè)計(jì)控制器的難度,需要更多的硬件作支持。
2.地址碼
指令中的地址碼用來(lái)指出該指令的源操作數(shù)地址(一個(gè)或兩個(gè))、結(jié)果地址及下一條指令的地址。
這里的地址可以是主存地址,也可以是寄存器地址,甚至可以是I/O設(shè)備的地址。下面以主存地址為例,分析指令的地址碼字段。
OP:操作碼;
A1:第一地址碼,存放第一操作數(shù);
A2:第二地址碼,存放第二操作數(shù);
A3:第三地址碼,存放操作結(jié)果;
A4:第四地址碼,存放下條要執(zhí)行指令的地址。
操作:(A1)OP(A2)→A3(1)四地址指令指令格式:OPA1A2A3A4這種指令直觀易懂,后續(xù)指令的地址可任意填寫??芍苯訉ぶ返牡刂贩秶c地址字段的位數(shù)有關(guān)。
例如:指令字長(zhǎng)32位,操作碼占8位,4個(gè)地址段各占6位,則指令的直接尋址范圍為:
26=64
如果地址字段均指示主存的地址,則完成一條四地址指令,共需訪問(wèn)四次存儲(chǔ)器(取指令一次,取兩個(gè)操作數(shù)兩次,存結(jié)果一次)。
因?yàn)槌绦蛑写蟛糠种噶疃际琼樞驁?zhí)行的,當(dāng)采用指令計(jì)數(shù)器后,A4地址可以省去。(2)三地址指令指令格式:
OPA1A2
A3三地址指令中各項(xiàng)含義與四地址指令相同。由于采用了指令計(jì)數(shù)器(又稱程序計(jì)數(shù)器,簡(jiǎn)稱PC),省去了A4地址;用三地址指令編寫的程序,其指令在內(nèi)存中必須依次存放,才能利用程序計(jì)數(shù)器自動(dòng)增量的辦法順序執(zhí)行。若程序要轉(zhuǎn)向時(shí),必須用轉(zhuǎn)移指令改變程序的執(zhí)行順序。如果指令字長(zhǎng)不變(32位),操作碼仍為8位,故三地址指令直接尋址范圍可達(dá):28=256若地址字段均為主存地址,則完成一條三地址指令也需四次訪問(wèn)存儲(chǔ)器。
OP:操作碼;
A1:既作第一操作數(shù)地址,又作目的地址;
A2:第二操作數(shù)地址。
操作:(A1)OP(A2)→A1(3)二地址指令指令格式:OPA1A2有的機(jī)器也表示(A1)OP(A2)→A2,A2既作第一操作數(shù)地址,又作目的地址;在不改變字長(zhǎng)和操作碼位數(shù)的前提下,二地址指令可直接訪問(wèn)的主存地址數(shù)為:212=4K使用二地址指令編寫的程序,其指令在內(nèi)存中也要依次存放,才能用程序計(jì)數(shù)器自動(dòng)增量使之順序執(zhí)行。若程序發(fā)生轉(zhuǎn)向時(shí),也必須用轉(zhuǎn)移指令改變程序的執(zhí)行順序。當(dāng)二地址指令執(zhí)行之后,A1中的內(nèi)容被修改了。有的機(jī)器規(guī)定A2為目的地址,這時(shí)則是A2的內(nèi)容被修改了。若地址字段均為主存地址,則完成一條二地址指令也需四次訪問(wèn)存儲(chǔ)器。(4)一地址指令
指令中只給出一個(gè)操作數(shù)地址,另一個(gè)操作數(shù)地址和目的地址則是隱含的。這個(gè)隱含的地址就是運(yùn)算器的累加寄存器AC。
OP
A指令格式:操作:(AC)OP(A)→AC在不改變字長(zhǎng)和操作碼位數(shù)的前提下,二地址指令可直接訪問(wèn)的主存地址數(shù)為:224=16M完成一條指令只需兩次訪存;采用一地址指令編寫的程序,其指令在內(nèi)存中也要順序存放,由程序計(jì)數(shù)器自動(dòng)增量控制其順序執(zhí)行。程序轉(zhuǎn)向時(shí),也用轉(zhuǎn)移指令改變程序的執(zhí)行方向。在程序執(zhí)行前,必須用一條“取數(shù)指令”把其中一個(gè)操作數(shù)放到累加寄存器中。程序結(jié)束后,累加寄存器的內(nèi)容已被修改。若要將累加寄存器中的結(jié)果送回內(nèi)存,則必須使用“存數(shù)指令”。堆棧的操作
設(shè)數(shù)據(jù)進(jìn)棧方向?yàn)閺母叩刂废虻偷刂钒l(fā)展,當(dāng)向堆棧壓入數(shù)據(jù)時(shí),SP的內(nèi)容先自動(dòng)遞減而指向一個(gè)新的空棧頂單元,再把數(shù)據(jù)寫入此棧頂單元;當(dāng)數(shù)據(jù)彈出堆棧時(shí),立即讀出SP所指向的棧頂單元內(nèi)容,再把SP內(nèi)容自動(dòng)遞增而指向新的棧頂位置。即PUSHX;(SP)-1SP(X)(SP)POPX;(SP)(X)(SP)+1SP(5)零地址指令沒(méi)有操作數(shù)地址的指令稱為零地址指令。執(zhí)行零地址指令時(shí),沒(méi)有操作數(shù)或者被運(yùn)算的操作數(shù)地址全部是隱含的,指令格式中只說(shuō)明作什么操作。如,沒(méi)有操作數(shù):停機(jī)指令;所需的操作數(shù)是默認(rèn)的:堆棧操作。3.指令字長(zhǎng)度與機(jī)器字長(zhǎng)度的關(guān)系機(jī)器字長(zhǎng)度簡(jiǎn)稱字長(zhǎng),指計(jì)算機(jī)能并行處理的二進(jìn)制數(shù)據(jù)的位數(shù)。字長(zhǎng)是計(jì)算機(jī)中的一項(xiàng)重要技術(shù)指標(biāo),字長(zhǎng)越長(zhǎng),計(jì)算機(jī)的運(yùn)算精度越高;字長(zhǎng)還能反映指令的直接尋址能力,若字長(zhǎng)n位全用來(lái)尋址,可直接尋址2n個(gè)字節(jié)。為了便于處理字符數(shù)據(jù)及盡可能地利用存儲(chǔ)空間,一般把機(jī)器字長(zhǎng)定為字節(jié)長(zhǎng)度(8位)的整數(shù)倍,即是8位、16位、32位或64位。微型、小型機(jī)的字長(zhǎng)多為8位、16位和32位,中、大型機(jī)的字長(zhǎng)多為32位和64位。因此,一個(gè)字中可以存儲(chǔ)1個(gè)、2個(gè)、4個(gè)或8個(gè)字符。(1)機(jī)器字長(zhǎng)
指令字的長(zhǎng)度取決于操作碼的長(zhǎng)度、操作數(shù)地址的長(zhǎng)度和操作數(shù)地址的個(gè)數(shù)。
由于操作碼的長(zhǎng)度、操作數(shù)地址的長(zhǎng)度以及所采用操作數(shù)地址數(shù)目不同,各種指令的長(zhǎng)度不是固定的,當(dāng)然也不是任意的。
為了充分利用存儲(chǔ)空間,指令字的長(zhǎng)度也定為字節(jié)長(zhǎng)度的整數(shù)倍。例如INTEL8086/80586系列機(jī)的指令長(zhǎng)度分別為8位、16位、24位、32位、48位等。而最長(zhǎng)的指令可達(dá)120位。(2)指令字長(zhǎng)(3)指令字長(zhǎng)與機(jī)器字長(zhǎng)的關(guān)系指令字長(zhǎng)度與機(jī)器字長(zhǎng)度沒(méi)有固定的關(guān)系,它可以等于機(jī)器字長(zhǎng),也可以大于或小于機(jī)器字長(zhǎng)。指令字長(zhǎng)度等于機(jī)器字長(zhǎng)度的指令,稱為單字長(zhǎng)指令;指令字長(zhǎng)等于兩個(gè)機(jī)器字長(zhǎng)的指令,稱為雙字長(zhǎng)指令;指令字長(zhǎng)度只有半個(gè)機(jī)器字長(zhǎng)度的指令,稱為半字長(zhǎng)指令。
例如IBM370系列機(jī)的機(jī)器字長(zhǎng)為32位,它卻有16位的半字長(zhǎng)指令、32位的單字長(zhǎng)指令、48位的一個(gè)半字長(zhǎng)指令。等字長(zhǎng)指令結(jié)構(gòu)在同一個(gè)指令系統(tǒng)中,所有的指令字長(zhǎng)度都是相等的,稱為等字長(zhǎng)指令字結(jié)構(gòu),這種指令字結(jié)構(gòu)簡(jiǎn)單,控制方便;變字長(zhǎng)指令結(jié)構(gòu)如果各種指令字長(zhǎng)度隨指令的功能而變化,如有的指令是單字長(zhǎng)指令,有的指令是雙字長(zhǎng)指令或三字長(zhǎng)指令,則稱為變字長(zhǎng)指令結(jié)構(gòu),這種指令字結(jié)構(gòu)靈活,能充分利用指令字長(zhǎng)度,但指令的控制較復(fù)雜。各種指令字的結(jié)構(gòu)情況地址
II+1I+2I+3指令指令指令指令┆一個(gè)字長(zhǎng)┆┆指令指令指令指令地址
II+1I+2I+3一個(gè)字長(zhǎng)指令指令指令指令┆地址
II+1I+2I+3指令1指令2一個(gè)字長(zhǎng)┆單字長(zhǎng)指令雙字長(zhǎng)指令半字長(zhǎng)指令變字長(zhǎng)指令指令3一個(gè)字長(zhǎng)地址II+1I+2I+3I+4I+5I+6指令1指令2┆4.指令助記符
由于硬件只能識(shí)別1和0,所以采用二進(jìn)制操作碼是必要的,但是我們用二進(jìn)制來(lái)書寫程序卻非常麻煩。
為了便于書寫和閱讀程序,每條指令通常用3個(gè)或4個(gè)英文縮寫字母來(lái)表示。這種縮寫碼叫做指令助記符。典型指令指令助記符二進(jìn)制操作碼加法ADD001減法SUB010傳送MOV011跳轉(zhuǎn)JMP100轉(zhuǎn)子JSR101存儲(chǔ)STR110讀數(shù)LAD111典型的指令助記符指令格式舉例八位微型計(jì)算機(jī)的指令格式
8位微型機(jī)字長(zhǎng)只有8位,指令結(jié)構(gòu)是一種可變字長(zhǎng)形式,包含單字長(zhǎng)、雙字長(zhǎng)、三字長(zhǎng)指令等多種。單字長(zhǎng)指令操作碼雙字長(zhǎng)指令操作碼操作數(shù)地址三字長(zhǎng)指令操作碼操作數(shù)地址1操作數(shù)地址2內(nèi)存按字節(jié)編址,所以單字長(zhǎng)指令每執(zhí)行一條指令后,指令地址加1。雙字長(zhǎng)指令或三字長(zhǎng)指令每執(zhí)行一條指令時(shí),指令地址要加2或加3,可見(jiàn)多字長(zhǎng)的指令格式不利于提高機(jī)器速度。PDP/11系列機(jī)指令格式
PDP/11系列機(jī)指令字長(zhǎng)16位,其指令格式如下表所示。在PDP/11中,操作碼字段是不固定的,其長(zhǎng)度也是不相同的。這樣做可以擴(kuò)展操作碼以包含較多的指令。但是操作碼字段不固定,對(duì)控制器的設(shè)計(jì)來(lái)說(shuō)必將復(fù)雜化。Pentium指令格式Mod-R/M字段:規(guī)定了存儲(chǔ)器操作數(shù)的尋址方式,給出了寄存器操作數(shù)的存器地址號(hào)。SIB字段:和Mod-R/M字段一起,對(duì)操作數(shù)來(lái)源進(jìn)行完整的說(shuō)明。0或10或10或10或1(字節(jié)數(shù))
指令前綴
段取代操作數(shù)長(zhǎng)度取代地址長(zhǎng)度取代(a)前綴1或20或10或10,1,2,40,1,2,4操作碼Mod
Reg或操作碼R/M比例S變址I基址B位移量立即數(shù)
2位3位3位2位3位3位(字節(jié)數(shù))(b)指令例16位機(jī)指令格式如下所示,其中OP為操作碼,試分析指令格式的特點(diǎn)。OP--------源寄存器目標(biāo)寄存器1597430解:
(1)單字長(zhǎng)二地址指令。(2)操作碼字段OP可以指定27=128條指令。(3)源寄存器和目標(biāo)寄存器都是通用寄存器(可分別指定24=16個(gè)),所以是RegisterRegister型指令,兩個(gè)操作數(shù)均在寄存器中。
(4)這種指令結(jié)構(gòu)常用于算術(shù)邏輯運(yùn)算類指令。例
16位機(jī)指令格式如下所示,OP為操作碼字段,試分析指令格式特點(diǎn)。OP-----------源寄存器變址寄存器位移量(16位)15107430解:(1)雙字長(zhǎng)二地址指令,用于訪問(wèn)存儲(chǔ)器。(2)操作碼字段OP為6位,可以指定26=64種操作。(3)一個(gè)操作數(shù)在源寄存器(共24=16個(gè)),另一個(gè)操作數(shù)在存儲(chǔ)器中(由變址寄存器和位移量決定),所以是RegisterStore型指令,可尋址存儲(chǔ)器范圍216=64K。指令設(shè)計(jì)基礎(chǔ)指令系統(tǒng)概述本講主要內(nèi)容程序、指令、指令系統(tǒng)程序:是由一系列的指令組成指令:是要計(jì)算機(jī)執(zhí)行某種操作的命令指令系統(tǒng):是一臺(tái)計(jì)算機(jī)中所有指令的集合
決定計(jì)算機(jī)的基本功能,軟件與硬件的界面
是計(jì)算機(jī)系統(tǒng)設(shè)計(jì)的一個(gè)核心問(wèn)題指令系統(tǒng)概述指令的分類
一臺(tái)計(jì)算機(jī)的指令系統(tǒng)通常有上百條或幾百條指令,從它們所完成的功能來(lái)看,一個(gè)較為完善的指令系統(tǒng),應(yīng)具備以下各類指令。1.數(shù)據(jù)傳送類指令
這類指令的功能是實(shí)現(xiàn)寄存器與寄存器,寄存器與存儲(chǔ)單元以及存儲(chǔ)單元與存儲(chǔ)單元之間的數(shù)據(jù)傳送。數(shù)據(jù)傳送指令主要包括取數(shù)指令、存數(shù)指令、傳送指令、成組傳送指令、字節(jié)交換指令、清累加器指令、堆棧操作指令等等。2.算術(shù)運(yùn)算指令
這類指令包括二進(jìn)制定點(diǎn)加、減、乘、除指令,浮點(diǎn)加、減、乘、除指令,求反、求補(bǔ)指令,算術(shù)移位指令,算術(shù)比較指令,十進(jìn)制加、減運(yùn)算指令等。這類指令主要用于定點(diǎn)或浮點(diǎn)的算術(shù)運(yùn)算。大型機(jī)(如IBM370機(jī)、國(guó)產(chǎn)銀河機(jī)、CRAY-1機(jī)、CDC的STAR-100機(jī)等)中還設(shè)置有向量運(yùn)算指令,可直接對(duì)整個(gè)向量或矩陣進(jìn)行求和、求積運(yùn)算。3.邏輯運(yùn)算指令
這類指令包括邏輯加、邏輯乘、邏輯比較、測(cè)等指令、按位加、邏輯移位等指令,主要用于無(wú)符號(hào)數(shù)的位操作、代碼的轉(zhuǎn)換、判斷及運(yùn)算。移位指令用來(lái)對(duì)寄存器的內(nèi)容實(shí)現(xiàn)左移、右移或循環(huán)移位。4.程序控制指令
程序控制指令也稱轉(zhuǎn)移指令。執(zhí)行程序時(shí),有時(shí)機(jī)器執(zhí)行到某條指令時(shí),出現(xiàn)了幾種不同結(jié)果,這時(shí)機(jī)器必須執(zhí)行一條轉(zhuǎn)移指令,根據(jù)不同結(jié)果進(jìn)行轉(zhuǎn)移,從而改變程序原來(lái)執(zhí)行的順序。這種轉(zhuǎn)移指令稱為條件轉(zhuǎn)移指令。除各種條件轉(zhuǎn)移指令外,還有無(wú)條件轉(zhuǎn)移指令、轉(zhuǎn)子程序指令、返回主程序指令、中斷返回指令等。轉(zhuǎn)移指令的轉(zhuǎn)移地址一般采用直接尋址和相對(duì)尋址方式來(lái)確定。
轉(zhuǎn)子指令是轉(zhuǎn)向本指令操作地址所指出的子程序入口,并將原程序中下一條指令地址存入內(nèi)存某單元(或指定的某個(gè)寄存器)中,以便為返回主程序時(shí)提供返回地址。5.輸入輸出指令
輸入輸出指令主要用來(lái)啟動(dòng)外圍設(shè)備,檢查測(cè)試外圍設(shè)備的工作狀態(tài),并實(shí)現(xiàn)外部設(shè)備和CPU之間,或外圍設(shè)備與外圍設(shè)備之間的信息傳送。6.字符串處理指令字符串處理指令是一種非數(shù)值處理指令,一般包括字符串傳送、字符串轉(zhuǎn)換(把一種編碼的字符串轉(zhuǎn)換成另一種編碼的字符串)、字符串替換(把某一字符串用另一字符串替換)等。這類指令在文字編輯中對(duì)大量字符串進(jìn)行處理。7.陷阱(TRAP)指令
陷阱是一種意外事故中斷,它的目的不是請(qǐng)求CPU正常處理中斷,而是為了把發(fā)生的故障通知CPU,并根據(jù)故障的情況轉(zhuǎn)入相應(yīng)的故障處理程序。陷講指令就是為實(shí)現(xiàn)這個(gè)任務(wù)而設(shè)置的。在一般計(jì)算機(jī)中,陷阱指令是一種隱含指令(它不出現(xiàn)在指令系統(tǒng)中,其功能是以指令的形式隱含地完成的),用戶不能使用,只有當(dāng)故障出現(xiàn)時(shí),才由CPU自動(dòng)產(chǎn)生并執(zhí)行之,故又叫自中斷指令。但是,有些計(jì)算機(jī)中又設(shè)置有可供用戶使用的陷阱指令,可用它來(lái)實(shí)現(xiàn)調(diào)用系統(tǒng)程序的請(qǐng)求。例如,INTEL8086的軟件中斷指令,實(shí)質(zhì)上是一種直接提供用戶使用的陷阱指令,它可完成調(diào)用系統(tǒng)子程序的過(guò)程。其匯編格式為:INTTYPE,其中TYPE是一個(gè)8位常數(shù),表示中斷類型。執(zhí)行時(shí),根據(jù)中斷類型可以找到相應(yīng)系統(tǒng)子程序的入口地址。8.特權(quán)指令
特權(quán)指令是指具有特殊權(quán)限的指令。這類指令只用于操作系統(tǒng)或其他系統(tǒng)軟件,一般不直接提供給用戶使用。在多用戶、多任務(wù)的計(jì)算機(jī)系統(tǒng)中特權(quán)指令必不可少。它主要用于系統(tǒng)資源的分配和管理。9.其他指令
除以上各類指令外,還有狀態(tài)寄存器置位、復(fù)位指令、測(cè)試指令、暫停指令,空操作指令,以及其他一些系統(tǒng)控制用的特殊指令。
從計(jì)算機(jī)的發(fā)展過(guò)程來(lái)看,指令系統(tǒng)是隨著計(jì)算機(jī)體系結(jié)構(gòu)的完善和計(jì)算機(jī)性能而發(fā)展起來(lái)的。
早期的計(jì)算機(jī)結(jié)構(gòu)簡(jiǎn)單,指令條數(shù)少,指令系統(tǒng)功能弱,計(jì)算機(jī)的性能較差。
隨著VLSI技術(shù)的迅速發(fā)展,硬件成本不斷下降,軟件成本不斷上升,促進(jìn)人們?cè)谥噶钕到y(tǒng)中增加更多的指令和更復(fù)雜的指令,以適應(yīng)不同應(yīng)用領(lǐng)域的需要。
特別是系列機(jī)問(wèn)世之后,為了能做到程序兼容,新設(shè)機(jī)型或高檔機(jī)除了要繼承老機(jī)器的指令系統(tǒng)中的全部指令外,還要增加若干新的指令,從而導(dǎo)致同一系列計(jì)算機(jī)的指令系統(tǒng)越來(lái)越復(fù)雜,機(jī)器結(jié)構(gòu)也越來(lái)越復(fù)雜。1.RISC產(chǎn)生的時(shí)代背景RISC的產(chǎn)生和發(fā)展情況
目前,大多數(shù)計(jì)算機(jī)的指令系統(tǒng)多到幾百條指令。這就體現(xiàn)了計(jì)算機(jī)性能越高,其指令系統(tǒng)越復(fù)雜的傳統(tǒng)設(shè)計(jì)思想。這類計(jì)算機(jī)稱為“復(fù)雜指令系統(tǒng)計(jì)算機(jī)”,簡(jiǎn)稱CISC(ComplexInstructionSetComputer)。例如:VAX11/780計(jì)算機(jī)有303條指令,18種尋址方式;Pentium機(jī)有191條指令,9種尋址方式。
由于復(fù)雜指令需進(jìn)行復(fù)雜的操作,從而降低了機(jī)器的執(zhí)行速度。
對(duì)CISC指令系統(tǒng)所作的運(yùn)行統(tǒng)計(jì)分析表明,各種指令使用頻率相差懸殊,常用的較為簡(jiǎn)單的指令,僅占指令總數(shù)的20%,但在程序中使用的頻率卻占80%。下表是HP公司研究了IBM370計(jì)算機(jī)的高級(jí)語(yǔ)言運(yùn)行情況后所得到的統(tǒng)計(jì)數(shù)據(jù)。指令類別轉(zhuǎn)移邏輯操作存數(shù)取數(shù)存儲(chǔ)單元送存儲(chǔ)單元整數(shù)運(yùn)算浮點(diǎn)運(yùn)算十進(jìn)制運(yùn)算其它COBOLFORTRANPASCAL24.2%18.0%18.4%14.6%8.1%9.9%40.2%48.7%54.0%12.4%2.1%3.8%6.4%11.0%7.0%0.0%11.9%6.8%1.6%0.0%0.0%0.6%0.2%0.1%
根據(jù)上述分析情況,國(guó)外一些計(jì)算機(jī)公司和大學(xué)開(kāi)展了對(duì)指令系統(tǒng)合理性的研究,1975年IBM公司的JohnCocke提出了精簡(jiǎn)指令系統(tǒng)的想法,后來(lái)出現(xiàn)了各種各樣的“精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī)”,簡(jiǎn)稱RISC(ReducedInstructionSetComputer)。也稱為RISC技術(shù)。
RISC技術(shù)的實(shí)質(zhì)是要求指令系統(tǒng)簡(jiǎn)化,盡量使用寄存器-寄存器操作指令,指令操作在一個(gè)周期內(nèi)完成,指令格式力求一致,以利于提高編譯的效率。2.RISC的發(fā)展概況1982年美國(guó)加州伯萊克大學(xué)研究的RISCI機(jī)(以后又有RISCII):采用VLSICPU芯片,片上晶體管數(shù)為44000個(gè),線寬3m,字長(zhǎng)32位,有128個(gè)寄存器(但程序員只能看到32個(gè))這些寄存器均為32位,它只有31條指令,兩種尋址方式。其中,只有兩種存儲(chǔ)器訪問(wèn)指令,LOAD(取數(shù))和STORE(存數(shù))指令。
其功能超過(guò)VAX-11/780或M68000,而速度比VAX-11/780幾乎快一倍。同時(shí),斯坦福大學(xué)推出MIPS機(jī),IBM公司推出IBM801機(jī),顯示了RISC的生命力,并推動(dòng)了RISC技術(shù)的不斷發(fā)展。這些機(jī)種稱第一代RISC處理器,具有32位數(shù)據(jù)通路,支持Cache,但軟件支持較少,性能與CISC處理器相當(dāng)。(1)第一代RISC處理器RISCI機(jī)
第二代RISC處理器在第一代的基礎(chǔ)上提高了集成度和時(shí)鐘頻率,建立了比較完善的Cache分層存儲(chǔ)體系。它們已具有單指令流水線,每次順序執(zhí)行多條指令,每個(gè)周期發(fā)出一條指令。例如,MIPS公司的R3000處理器,則采用了25MHZ和33MHZ的時(shí)鐘頻率,芯片集成度是11.5萬(wàn)晶體管,字長(zhǎng)32位。(2)第二代RISC處理器
第三代RISC處理器則采用了巨型計(jì)算機(jī)或大型計(jì)算機(jī)的設(shè)計(jì)技術(shù)——超級(jí)流水線(Superpipelining)技術(shù)和超標(biāo)量(Superrscalar)技術(shù)。提高了指令級(jí)的并行處理能力,使RISC處理器的整體性能得到改善。例如,MIPS公司的R4000處理器采用50MHZ和75MHZ的外部時(shí)鐘頻率(內(nèi)部流水線時(shí)鐘是100MHZ和150MHZ),芯片集成度高達(dá)110萬(wàn)晶體管,字長(zhǎng)是64位,并包含有16KB的Cache在芯片上。它具有R4000PC、R4000SC、R4000MC三種版本,分別提供給臺(tái)式系統(tǒng)、高性能服務(wù)器和多處理器環(huán)境下使用。(3)第三代RISC處理器
自1983年開(kāi)始出現(xiàn)商品化RISC機(jī)以來(lái),比較有名的是RISC計(jì)算機(jī)有:
IBM公司的IBMRT系列;HP公司的精密結(jié)構(gòu)計(jì)算機(jī)(HPPA);MIPSR3000;MotorolaM88000;Intel80960;INMOSTransputer;AMDAm29000;Fairchildclipper等。
其中Clipper兼顧了RISC和CISC兩方面的特點(diǎn),又稱為類RISC機(jī)。精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī)不僅是要簡(jiǎn)化指令系統(tǒng),而且要通過(guò)簡(jiǎn)化指令系統(tǒng)而使計(jì)算機(jī)的硬件結(jié)構(gòu)變得簡(jiǎn)單合理,以提高運(yùn)算速度,最有效的辦法是減少指令的執(zhí)行周期數(shù)。RISC的主要特點(diǎn)
若設(shè)高級(jí)語(yǔ)言程序經(jīng)編譯后在機(jī)器上運(yùn)行的機(jī)器指令數(shù)為I;
每條機(jī)器指令執(zhí)行時(shí)所需要的平均機(jī)器周期數(shù)是C;
每個(gè)機(jī)器周期的執(zhí)行時(shí)間為T,
計(jì)算機(jī)執(zhí)行程序的時(shí)間P可用下式計(jì)算:P=I×C×T1.P、C、I由于RISC指令比較簡(jiǎn)單,原CISC機(jī)中比較復(fù)雜的指令可用RISC中一段子程序代替,因此,RISC中的I比CISC的多20%—40%;但是,RISC的大多數(shù)指令只用一個(gè)機(jī)器周期實(shí)現(xiàn),C的值比CISC的小得多;又因?yàn)镽ISC結(jié)構(gòu)簡(jiǎn)單,完成一個(gè)操作所經(jīng)過(guò)的數(shù)據(jù)通道較短,因此,T的值大為減少。T<11C1.3~1.74~6I1.2~1.41RISCCICSRISC/CICS的I、C、T統(tǒng)計(jì)表(其中,I、T為比值,C為實(shí)際周期數(shù))RISC繼承了CISC的成功技術(shù),又克服了CISC的缺點(diǎn),其發(fā)展速度很快。第三代的RISC中雖然擴(kuò)充了許多功能部件,以至采用了巨型機(jī)或大型機(jī)的技術(shù)。然而,很難在RISC和CISC之間劃出一條明顯的分界線。通過(guò)對(duì)各種RISC產(chǎn)品的分析,可以概括出如下一些主要特點(diǎn):(1)選取使用頻率最高的一些簡(jiǎn)單指令和很有用但不復(fù)雜的指令;(2)指令長(zhǎng)度固定,指令格式種類少,尋址方式種類少;(3)訪問(wèn)存儲(chǔ)器指令極少,只有取數(shù)/存數(shù)指令(Load/Store),其余指令的操作都在
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025出租車司機(jī)用工合同范本
- 2025商鋪?zhàn)赓U合同簡(jiǎn)單的范本
- 全新清算協(xié)議合同-二零二五年度清算與債務(wù)重組3篇
- 2025年度全新合同:人工智能輔助駕駛系統(tǒng)研發(fā)與推廣協(xié)議3篇
- 2025年度環(huán)保設(shè)備安裝與環(huán)保技術(shù)咨詢合同3篇
- 2025年度農(nóng)村房屋改造裝修與農(nóng)村光伏發(fā)電項(xiàng)目合同
- 二零二五年度出國(guó)工人勞務(wù)輸出與職業(yè)規(guī)劃合同
- 二零二五年度智能漁業(yè)養(yǎng)魚設(shè)備共享合作協(xié)議3篇
- 2025年度農(nóng)業(yè)科技賒銷合作協(xié)議3篇
- 2025年度水上安全事故處理與救援合作協(xié)議3篇
- 安徽省蕪湖市弋江區(qū)2023-2024學(xué)年八年級(jí)上學(xué)期期末英語(yǔ)試題(含聽(tīng)力)
- JJG 693-2011可燃?xì)怏w檢測(cè)報(bào)警器
- 2024-2029年中國(guó)水利行業(yè)發(fā)展分析及發(fā)展前景與趨勢(shì)預(yù)測(cè)研究報(bào)告
- 高中英語(yǔ)U4-The-Words-That-Changed-A-Nation教學(xué)課件
- 朱砂行業(yè)分析
- 如何防范勒索軟件和網(wǎng)絡(luò)勒索攻擊
- T-CI 228-2023 寧?kù)o小區(qū)建設(shè)與評(píng)價(jià)技術(shù)規(guī)范
- 二年級(jí)數(shù)學(xué)綜合素質(zhì)評(píng)價(jià)專項(xiàng)方案
- 成人有創(chuàng)機(jī)械通氣氣道內(nèi)吸引技術(shù)操作解讀護(hù)理課件
- 貴州省黔南布依族苗族自治州2023-2024學(xué)年九年級(jí)上學(xué)期期末數(shù)學(xué)試題(含答案)
- 智能膠囊內(nèi)鏡導(dǎo)航算法研究
評(píng)論
0/150
提交評(píng)論