第5章 指令系統(tǒng)(7h)_第1頁(yè)
第5章 指令系統(tǒng)(7h)_第2頁(yè)
第5章 指令系統(tǒng)(7h)_第3頁(yè)
第5章 指令系統(tǒng)(7h)_第4頁(yè)
第5章 指令系統(tǒng)(7h)_第5頁(yè)
已閱讀5頁(yè),還剩84頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

計(jì)算機(jī)組成與結(jié)構(gòu)主講:弓劍鋒

2011-2012-2第五章指令系統(tǒng)指令系統(tǒng)指令系統(tǒng)的發(fā)展指令格式數(shù)據(jù)表示尋址方式指令類型RISC與CISC本章內(nèi)容:P138-P1705.1指令系統(tǒng)的發(fā)展

計(jì)算機(jī)的性能與它所設(shè)置的指令系統(tǒng)有很大的關(guān)系,而指令系統(tǒng)的設(shè)置又與機(jī)器的硬件結(jié)構(gòu)密切相關(guān)。

發(fā)展過(guò)程

20世紀(jì)50年代、60年代早期

一般只有定點(diǎn)加減、邏輯運(yùn)算、數(shù)據(jù)傳送和轉(zhuǎn)移等十幾至幾十條最基本的指令,且尋址方式簡(jiǎn)單。

20世紀(jì)60年代中、后期

增加了乘除法運(yùn)算、浮點(diǎn)運(yùn)算、十進(jìn)制運(yùn)算以及字符串處理指令等,指令數(shù)多達(dá)一、二百條,指令系統(tǒng)越來(lái)越豐富,且尋址方式也趨于多樣化。5.1指令系統(tǒng)的發(fā)展在60年代出現(xiàn)了系列(series)計(jì)算機(jī)。

為了繼承已有的軟件,減少軟件的開(kāi)發(fā)費(fèi)用,人們迫切希望各機(jī)器上的軟件能夠兼容,以便在舊機(jī)器上編制的各種軟件也能在新的、性能更好的機(jī)器上正確運(yùn)行。

系列計(jì)算機(jī)指基本指令系統(tǒng)相同,基本體系結(jié)構(gòu)相同的一系列計(jì)算機(jī)。

系列機(jī)能解決軟件兼容問(wèn)題的必要條件是該系列的各個(gè)機(jī)種有共同的指令集。5.1指令系統(tǒng)的發(fā)展指令系統(tǒng)趨于多用途、強(qiáng)功能化。

指令系統(tǒng)的改進(jìn)是圍繞著縮小指令與高級(jí)語(yǔ)言的語(yǔ)義差異以及有利于操作系統(tǒng)的優(yōu)化而進(jìn)行的。

70年代末,人們提出了精簡(jiǎn)指令系統(tǒng)計(jì)算機(jī)RISC。指令結(jié)構(gòu)太復(fù)雜會(huì)帶來(lái)一些不利的因素(設(shè)計(jì)周期長(zhǎng),正確性難以保證,不易維護(hù)等)。在龐大的指令系統(tǒng)中:只有諸如算術(shù)運(yùn)算、邏輯運(yùn)算、數(shù)據(jù)傳送、轉(zhuǎn)移和子程序調(diào)用等幾十條最基本的指令經(jīng)常被使用,而需要大量硬件支持的大多數(shù)較復(fù)雜的指令卻利用率很低,造成硬件資源的極大浪費(fèi)。5.2指令格式指令格式指令操作碼的擴(kuò)展技術(shù)指令長(zhǎng)度與字長(zhǎng)的關(guān)系本節(jié)內(nèi)容:P139-P1435.2指令格式計(jì)算機(jī)只能夠識(shí)別和執(zhí)行用機(jī)器語(yǔ)言編寫(xiě)的程序。各種高級(jí)語(yǔ)言編寫(xiě)的應(yīng)用程序,最終都要翻譯成機(jī)器語(yǔ)言來(lái)執(zhí)行。機(jī)器語(yǔ)言是由一系列的指令(語(yǔ)句)組成的。指令的格式就是機(jī)器語(yǔ)言的語(yǔ)法。一臺(tái)計(jì)算機(jī)的所有的指令集合稱為該機(jī)的指令系統(tǒng)或指令集。它是程序工作者編制程序的基本依據(jù),也是進(jìn)行計(jì)算機(jī)邏輯設(shè)計(jì)的基本依據(jù)。每條指令規(guī)定機(jī)器完成一定的功能。5.2.1指令格式一條指令應(yīng)包含如下信息:操作的性質(zhì):體現(xiàn)在指令中被稱為操作碼。操作結(jié)果的保存:由地址碼給出。操作的對(duì)象:數(shù)據(jù)來(lái)源以及如何尋找操作數(shù)。體現(xiàn)在指令中被稱為地址碼。下一條指令的地址:由操作碼和地址碼共同決定,并由程序計(jì)數(shù)器PC給出。操作碼決定為順序執(zhí)行時(shí),下條指令地址為PC+1;決定為非順序執(zhí)行時(shí),下條指令地址由地址碼送至PC。例如轉(zhuǎn)移指令,操作碼指明轉(zhuǎn)移性質(zhì),跳轉(zhuǎn)地址由地址碼給出。5.2.1指令格式操作碼(OPCODE):表示該指令所要完成的具體操作,其長(zhǎng)度取決于指令集中的指令條數(shù)。指令格式操作碼OP地址碼A地址碼(A):描述該指令的操作對(duì)象。一般包括:操作數(shù)、操作數(shù)地址、操作結(jié)果的存儲(chǔ)地址。其中,地址指寄存器的地址、存儲(chǔ)器的地址或I/O設(shè)備的地址。5.2.1指令格式零地址指令類型OPCODE指令中只有操作碼,而沒(méi)有操作數(shù)或沒(méi)有操作數(shù)地址。包括兩類指令:無(wú)需操作數(shù)的指令。如空操作指令、停機(jī)指令等。默認(rèn)操作數(shù)的指令。如堆棧操作指令。5.2.1指令格式單地址指令指令中只給出一個(gè)地址碼。包括兩類指令:

A1是操作數(shù)的地址,也是操作結(jié)果的存儲(chǔ)地址。如±1(自加、自減)指令。

A1是一個(gè)操作數(shù)或操作數(shù)的地址,另一個(gè)操作數(shù)地址(也是結(jié)果的存儲(chǔ)地址)為累加寄存器AC(隱含)。OPCODEA15.2.1指令格式雙地址指令指令中給出兩個(gè)地址碼,為最常見(jiàn)的指令格式。

A1:源操作地址碼,給出一個(gè)源操作數(shù)或其地址;

A2:目的操作地址碼,給出另一個(gè)源操作數(shù)的地址,同時(shí)也是存放結(jié)果的地址。OPCODEA1A25.2.1指令格式三地址指令指令中給出三個(gè)地址碼,說(shuō)明如下:

A1:第一個(gè)操作數(shù)或其地址;

A2:第二個(gè)操作數(shù)或其地址;

A3:操作結(jié)果的存放地址。OPCODEA1A2A35.2.1指令格式多地址指令在某些性能較好的大、中型機(jī)甚至高檔的小型機(jī)中,往往設(shè)置一些功能很強(qiáng)、用于處理成批數(shù)據(jù)的指令,如字符串處理指令,向量、矩陣運(yùn)算指令等。為了描述一批數(shù)據(jù),指令中需要多個(gè)地址來(lái)指出數(shù)據(jù)存放的首地址、長(zhǎng)度和下標(biāo)等信息。OPCODEA1A2A3…An5.2.1指令格式對(duì)比0~2地址指令:指令短、速度快、硬件實(shí)現(xiàn)簡(jiǎn)單。3~n地址指令:功能強(qiáng)大、便于編程,但硬件結(jié)構(gòu)復(fù)雜,常出現(xiàn)于高性能機(jī)器的擴(kuò)展指令集中。指令地址與數(shù)據(jù)地址

數(shù)據(jù):操作的對(duì)象。數(shù)據(jù)地址由指令中的地址碼給出。

指令:操作的性質(zhì)。指令地址由程序計(jì)數(shù)器PC的值給出。5.2.2指令操作碼的擴(kuò)展

指令的操作碼標(biāo)明操作的性質(zhì),不同的指令其操作碼不同。指令中操作碼的長(zhǎng)度取決于指令集中指令的數(shù)量。例如,指令集有62條指令,則操作碼長(zhǎng)度>6時(shí)才能滿足指令集要求(26>62)。指令的設(shè)計(jì)關(guān)鍵在于對(duì)指令操作碼的編碼設(shè)計(jì)。5.2.2指令操作碼的擴(kuò)展固定長(zhǎng)度操作碼編碼格式操作碼所占的二進(jìn)制位數(shù)固定不變。有利于簡(jiǎn)化硬件設(shè)計(jì),減少指令譯碼時(shí)間,廣泛用于字長(zhǎng)較長(zhǎng)的大、中型計(jì)算機(jī)和超級(jí)小型計(jì)算機(jī)中。例如IBM370和VAX﹣11系列機(jī)中,操作碼的長(zhǎng)度都是8位,可表示256條指令。在整條指令長(zhǎng)度不變的情況下,對(duì)于地址個(gè)數(shù)少的指令允許其操作碼長(zhǎng)些,對(duì)于地址個(gè)數(shù)多的指令則操作碼短些。5.2.2指令操作碼的擴(kuò)展可變長(zhǎng)度操作碼操作碼長(zhǎng)度可變是操作碼擴(kuò)展技術(shù)的應(yīng)用。有利于壓縮程序中操作碼的平均長(zhǎng)度,在字長(zhǎng)較短的微型機(jī)中被廣泛應(yīng)用。例如:PDP-11,INTEL8086/80386等,其操作碼的長(zhǎng)度均是可變的。5.2.2指令操作碼的擴(kuò)展例如,設(shè)某機(jī)器的指令長(zhǎng)度為16位,包括1個(gè)4位的操作碼和3個(gè)4位的地址碼,其格式為:操作碼擴(kuò)展操作碼長(zhǎng)度固定時(shí),只能編碼16條指令。操作碼長(zhǎng)度可變時(shí),如下方法可擴(kuò)展表示61條指令:5.2.2指令操作碼的擴(kuò)展OPCODEA1A2A30000A1A2A30001A1A2A30010A1A2A30011A1A2A30100A1A2A30101A1A2A30110A1A2A30111A1A2A31000A1A2A31001A1A2A31010A1A2A31011A1A2A31100A1A2A31101A1A2A31110A1A2A31111A1A2A3操作碼長(zhǎng)度固定5.2.2指令操作碼的擴(kuò)展0000A1A2A31110A1A2A31111A1A2A3…………15條三地址指令1111A2A30000…………1111A2A311101111A2A300011111A2A3111116條二地址指令5.2.2指令操作碼的擴(kuò)展0000A1A2A31110A1A2A31111A1A2A3…………15條三地址指令1111A2A30000…………1111A2A311101111A2A300011111A2A3111116條二地址指令15條二地址指令1111A3111100001111A311110001…………1111A3111111101111A31111111116條單地址指令5.2.2指令操作碼的擴(kuò)展1111A3111100001111A311110001…………1111A3111111101111A31111111116條單地址指令15條單地址指令11111111111100001111111111110001…………1111111111111110111111111111111116條零地址指令5.2.2指令操作碼的擴(kuò)展其他擴(kuò)展方法:實(shí)際的機(jī)器可以采用各種靈活的擴(kuò)展方式,其思路與此類似。例如,形成15條三地址指令,12條二地址指令,31條單地址指令,16條零地址指令,共74條。

上述方法是在不增加指令長(zhǎng)度的情況下,采用對(duì)地址少的指令使用較長(zhǎng)的操作碼,對(duì)地址數(shù)多的指令使用較短的操作碼。其實(shí)質(zhì)是增加了指令的數(shù)量,豐富了指令的功能。5.2.2指令操作碼的擴(kuò)展指令的分配:指令的分配以指令的使用頻度(即在程序中出現(xiàn)的概率)為依據(jù)。即頻度高的指令應(yīng)分配短的操作碼,頻度低的指令則分配較長(zhǎng)的操作碼。優(yōu)點(diǎn):1、有效地縮短操作碼在程序中的平均長(zhǎng)度,節(jié)省存儲(chǔ)空間;

2、縮短常用指令的譯碼時(shí)間以提高程序的運(yùn)行速度。缺點(diǎn):譯碼系統(tǒng)比固定操作碼復(fù)雜,增加了設(shè)計(jì)控制器的難度,需要更多的硬件支持。5.2.2指令操作碼的擴(kuò)展操作碼的平均長(zhǎng)度=(0.45+0.28+0.17)×2+(0.05+0.03+0.01+0.01)×4=2.2bit5.2.3指令長(zhǎng)度與字長(zhǎng)即機(jī)器字長(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)為了便于處理字符數(shù)據(jù)及盡可能地利用存儲(chǔ)空間,一般機(jī)器字長(zhǎng)定為字節(jié)長(zhǎng)度的整數(shù)倍,即8位、16位、32位或64位。微型、小型機(jī)的字長(zhǎng)多為8位、16位和32位;中、大型機(jī)的字長(zhǎng)多為32位和64位。5.2.3指令長(zhǎng)度與字長(zhǎng)指令長(zhǎng)度即指令字長(zhǎng),取決于操作碼的長(zhǎng)度、地址碼的長(zhǎng)度和地址碼的個(gè)數(shù)。指令長(zhǎng)度其中,地址碼的長(zhǎng)度決定指令的直接尋址能力。例如,INTEL8086/80586系列機(jī)的指令長(zhǎng)度分別為8位、16位、24位、32位、48位等。而最長(zhǎng)的指令可達(dá)120位。為了充分利用存儲(chǔ)空間,指令長(zhǎng)度也定為字節(jié)長(zhǎng)度的整數(shù)倍。5.2.3指令長(zhǎng)度與字長(zhǎng)指令長(zhǎng)度與字長(zhǎng)的關(guān)系指令短格式指令指令長(zhǎng)度≦字長(zhǎng)單字長(zhǎng)指令指令長(zhǎng)度=字長(zhǎng)半字長(zhǎng)指令指令長(zhǎng)度=0.5字長(zhǎng)長(zhǎng)格式指令指令長(zhǎng)度>字長(zhǎng)雙字長(zhǎng)指令指令長(zhǎng)度=2倍字長(zhǎng)四字長(zhǎng)指令指令長(zhǎng)度=4倍字長(zhǎng)……5.2.3指令長(zhǎng)度與字長(zhǎng)各種指令字的結(jié)構(gòu)情況:地址

II+1I+2I+3指令1指令2指令3指令4┆一個(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┆5.3數(shù)據(jù)表示目前微機(jī)所用數(shù)據(jù)字長(zhǎng)為32位或64位。8位和16位機(jī)器字長(zhǎng)多用于各種單片機(jī)中。計(jì)算機(jī)的指令系統(tǒng)可支持對(duì)字節(jié)、半字、字、雙字的運(yùn)算,有些計(jì)算機(jī)還有位處理指令(多見(jiàn)于單片機(jī)中)。5.3數(shù)據(jù)表示為便于硬件實(shí)現(xiàn),一般要求多字節(jié)數(shù)據(jù)對(duì)準(zhǔn)邊界,從而減少訪存的次數(shù)。邊界對(duì)準(zhǔn)特點(diǎn)1:半字地址最低位為零;字地址最低兩位為零;雙字地址最低三位為零。特點(diǎn)2:若數(shù)據(jù)長(zhǎng)度不足,則填充空字節(jié)。例如三字節(jié)數(shù)據(jù)占用雙字存儲(chǔ),有一字節(jié)為空。5.3數(shù)據(jù)表示若不要求對(duì)準(zhǔn)邊界,則可以節(jié)約存儲(chǔ)空間。但可能增加訪存次數(shù)。例如,下圖出現(xiàn)一個(gè)字在兩個(gè)存儲(chǔ)單元中的情況,需訪問(wèn)2次存儲(chǔ)器才能取得數(shù)據(jù)。5.4尋址方式尋址方式:在存儲(chǔ)器中,操作數(shù)或指令字寫(xiě)入或讀出的方式,有地址指定方式、相聯(lián)存儲(chǔ)方式和堆棧存取方式。幾乎所有的計(jì)算機(jī),在內(nèi)存中都采用地址指定方式。當(dāng)采用地址指定方式時(shí),形成操作數(shù)或指令地址的方式,稱為尋址方式。尋址方式分為兩類,即指令尋址方式和數(shù)據(jù)尋址方式,前者比較簡(jiǎn)單,后者比較復(fù)雜。一般所說(shuō)的尋址方式指數(shù)據(jù)尋址方式。5.4尋址方式CPU一直都在尋找的東西……指令:通過(guò)程序計(jì)數(shù)器PC(存放著下一條指令的地址)的值找到下一條要執(zhí)行的指令。PC的值由當(dāng)前正在執(zhí)行的指令決定,當(dāng)前指令的操作碼決定程序是順序執(zhí)行,還是非順序執(zhí)行。若為順序執(zhí)行,則PC+1;若為非順序執(zhí)行,則PC值由當(dāng)前指令地址碼給出。指令尋址方式分順序?qū)ぶ泛吞S(轉(zhuǎn)移)尋址。5.4尋址方式5.4尋址方式6演示5.4尋址方式數(shù)據(jù):通過(guò)指令實(shí)現(xiàn)。數(shù)據(jù)存放的三個(gè)地方:寄存器、存儲(chǔ)器、I/O設(shè)備。

不同的存放空間決定了尋找數(shù)據(jù)方法的不同,造成了數(shù)據(jù)尋址方式的多樣化和復(fù)雜化。數(shù)據(jù)尋址方式就是指尋找操作數(shù)所用的方法,它與計(jì)算機(jī)的硬件結(jié)構(gòu)密切相關(guān),對(duì)指令的格式和功能都有極大的影響。5.4尋址方式注明:D或A—地址碼;E—操作數(shù)的有效地址;S—操作數(shù);R—寄存器地址。指令中的地址碼就是所需的操作數(shù)。1立即尋址優(yōu)點(diǎn):操作數(shù)在取指令時(shí)同時(shí)得到,不必再次訪問(wèn)存儲(chǔ)器,提高了指令執(zhí)行速度。缺點(diǎn):操作數(shù)數(shù)值受限;操作數(shù)不能單獨(dú)修改。

OP#S立即尋址特征立即數(shù)S=D5.4尋址方式指令中的地址碼是操作數(shù)的地址。2直接尋址優(yōu)點(diǎn):不需計(jì)算地址,尋址速度很快;缺點(diǎn):尋址范圍受到地址字段長(zhǎng)度的限制。演示演示S=(E)=(D)5.4尋址方式指令中的地址碼是操作數(shù)的有效地址的地址。3間接尋址優(yōu)點(diǎn):地址構(gòu)成靈活,尋址范圍大;缺點(diǎn):最少需訪問(wèn)兩次存儲(chǔ)器才能取得數(shù)據(jù)。演示S=(E)=((D))演示5.4尋址方式指令中的地址碼是某寄存器的地址,操作數(shù)在該寄存器中。4寄存器尋址優(yōu)點(diǎn):寄存器高速存取,可大幅提高執(zhí)行速度;缺點(diǎn):寄存器數(shù)量有限。

OP……RiRi

SS=(E)=(R)5.4尋址方式指令中的地址碼是某寄存器的地址,操作數(shù)的地址在該寄存器中。5寄存器間址優(yōu)點(diǎn):借助寄存器提高執(zhí)行速度;尋址靈活;缺點(diǎn):寄存器數(shù)量有限。S=(E)

=((R))OP

……

Ri

E

Ri

S5.4尋址方式程序計(jì)數(shù)器PC的值(基址)加指令地址碼(位移量)形成操作數(shù)的有效地址。6相對(duì)尋址特點(diǎn):1、位移量可正可負(fù),通常用補(bǔ)碼表示。2、常用于程序跳轉(zhuǎn)。S=(E)

=(PC+D)演示演示5.4尋址方式舉例如下:OP…35PC:相對(duì)距離

=35內(nèi)存OP…35300010351000PC值為1000,指令地址碼為35,相對(duì)地址為1035。這個(gè)地址隨PC的值變化而變化,并且相對(duì)差一個(gè)固定值。因此,當(dāng)把操作數(shù)作為指令地址時(shí),無(wú)論程序裝入存儲(chǔ)器的任何區(qū)域,只要這個(gè)差值不變,程序均能正確運(yùn)行。5.4尋址方式基址寄存器的內(nèi)容(基址)加指令地址碼(位移量)形成操作數(shù)的有效地址。7基址尋址S=(E)

=((R)+D)址5.4尋址方式當(dāng)存儲(chǔ)容量較大,所需地址碼的長(zhǎng)度大于字長(zhǎng)時(shí),指令中的地址碼部分直接給出的地址不可能直接訪問(wèn)存儲(chǔ)器的所有單元。演示因此,把整個(gè)存儲(chǔ)空間分成若干段,每段的首地址存放在一個(gè)基址寄存器中,段內(nèi)的位移量由指令直接給出。基址寄存器:專用寄存器,或者由指令指定的某個(gè)通用寄存器。用途:1、大容量存儲(chǔ)體尋址;2、查表。變址變址寄存器:專用寄存器,或者由指令指定的某個(gè)通用寄存器或內(nèi)存單元。5.4尋址方式變址寄存器的內(nèi)容(變址)加指令地址碼(位移量)形成操作數(shù)的有效地址。8變址尋址S=(E)

=((R)+D)演示5.4尋址方式Ri為變址寄存器時(shí)的變址尋址內(nèi)存20501000opX3

Ri00801080內(nèi)存

2050

1080變址寄存器

1000Ri

OP

X3

Ri

0080Ri為內(nèi)存變址單元時(shí)的變址尋址5.4尋址方式基址尋址面向系統(tǒng),主要用于邏輯地址到物理地址的變換,用來(lái)解決程序在主存儲(chǔ)器中的再定位和擴(kuò)大尋址空間等問(wèn)題。基址和變址的應(yīng)用方向變址尋址則面向用戶,用于訪問(wèn)字符串、向量和數(shù)組等成批數(shù)據(jù),沒(méi)有邏輯地址到物理地址的變換功能。在一些小型機(jī)或微型機(jī)中,基址尋址和變址尋址實(shí)際上已經(jīng)合二為一了。5.4尋址方式段尋址基于基址尋址。操作數(shù)地址由段地址加地址碼指定的偏移量得到。9段尋址S=(E)

=((R)+D)

段寄存器:專用寄存器,存放段地址。常用的段寄存器有:CS(程序段段寄存器)、DS(數(shù)據(jù)段段寄存器)、SS(堆棧段段寄存器)、ES(擴(kuò)展數(shù)據(jù)段段寄存器),參見(jiàn)5.8.2小節(jié)。Intel8086CPU由16位段寄存器和16位偏移量產(chǎn)生20位物理地址。演示5.4尋址方式操作數(shù)在堆棧中。10堆棧尋址5.5指令類型一臺(tái)計(jì)算機(jī)的指令系統(tǒng)通常有上百條或幾百條指令,從它們所完成的功能來(lái)看,一個(gè)較為完善的指令系統(tǒng),應(yīng)具備以下各類指令:5.5指令類型主要用于定點(diǎn)或浮點(diǎn)的算術(shù)運(yùn)算。包括二進(jìn)制定點(diǎn)加、減、乘、除指令,浮點(diǎn)加、減、乘、除指令,求反、求補(bǔ)指令,十進(jìn)制加、減運(yùn)算指令等。1算術(shù)運(yùn)算指令算術(shù)指令常用的狀態(tài)標(biāo)志位有:Z——結(jié)果為0;N——結(jié)果為負(fù)

;V——結(jié)果溢出;C——產(chǎn)生進(jìn)位或借位。5.5指令類型主要用于無(wú)符號(hào)數(shù)的位操作、代碼的轉(zhuǎn)換、判斷及運(yùn)算。包括與、或、非、異或等指令及相應(yīng)的位操作。2邏輯運(yùn)算指令3移位指令包括算術(shù)移位、邏輯移位和循環(huán)移位指令。常用于實(shí)現(xiàn)簡(jiǎn)單的乘除運(yùn)算。算術(shù)移位實(shí)現(xiàn)對(duì)有符號(hào)數(shù)的乘除運(yùn)算;邏輯移位實(shí)現(xiàn)對(duì)無(wú)符號(hào)數(shù)的乘除運(yùn)算。5.5指令類型算術(shù)移位邏輯移位5.5指令類型小循環(huán)移位大循環(huán)移位5.5指令類型字符串處理指令是一種非數(shù)值處理指令,這類指令用在文字編輯中對(duì)大量字符串進(jìn)行處理。4字符串處理指令常用操作指令有:字符串傳送:將字符串從主存的一個(gè)區(qū)域區(qū)傳送到另一區(qū)域;字符串轉(zhuǎn)換:把一種編碼的字符串轉(zhuǎn)換成另一種編碼的字符串;字符串替換:把某一字符串用另一字符串代替;5.5指令類型5數(shù)據(jù)傳送指令字符串比較:一個(gè)字符串與另一個(gè)字符串逐個(gè)字符進(jìn)行比較,以判斷是否相等;字符串查詢:查找在字符串中是否含有某一指定的子串或字符;實(shí)現(xiàn)寄存器與寄存器,寄存器與存儲(chǔ)單元以及存儲(chǔ)單元與存儲(chǔ)單元之間的數(shù)據(jù)復(fù)制或交換。主要包括取數(shù)指令、存數(shù)指令、傳送指令、成組傳送指令、字節(jié)交換指令等。5.5指令類型實(shí)現(xiàn)程序跳轉(zhuǎn)。常見(jiàn)類型有:無(wú)條件轉(zhuǎn)移指令、條件轉(zhuǎn)移指令、轉(zhuǎn)子程序指令、返回主程序指令、中斷返回指令等。6程序控制指令(轉(zhuǎn)移指令)1、無(wú)條件轉(zhuǎn)移指令:不受任何條件約束,直接把程序轉(zhuǎn)移到指令規(guī)定的地方。常見(jiàn)指令:JMP。5.5指令類型2、條件轉(zhuǎn)移指令:先測(cè)試設(shè)置的判斷條件,然后根據(jù)測(cè)試結(jié)果決定是否轉(zhuǎn)移。算術(shù)標(biāo)志位(Z、N、V、C)常用作判斷條件,此類指令較多,詳見(jiàn)P151~152。根據(jù)尋址方式不同,條件轉(zhuǎn)移可分為:相對(duì)轉(zhuǎn)移:轉(zhuǎn)移地址PC←PC+地址碼(相對(duì)尋址)絕對(duì)轉(zhuǎn)移:轉(zhuǎn)移地址PC←地址碼(直接尋址)5.5指令類型3、轉(zhuǎn)子指令:轉(zhuǎn)向子程序入口,并將原程序中下一條指令地址(PC)存入內(nèi)存單元(或寄存器、堆棧)中,以便為返回主程序時(shí)提供返回地址。4、返回指令:

從內(nèi)存單元(或寄存器、堆棧)中取出返回地址,返回主程序繼續(xù)執(zhí)行調(diào)用指令的下一條指令。5、中斷返回指令:

中斷服務(wù)程序完成后,恢復(fù)斷點(diǎn),返回主程序,繼續(xù)從斷點(diǎn)處開(kāi)始執(zhí)行指令。5.5指令類型陷阱是一種意外事故中斷,目的是把發(fā)生的故障通知CPU,并根據(jù)故障的情況轉(zhuǎn)入相應(yīng)的故障處理程序。7陷阱指令陷阱指令是一種隱含指令(不出現(xiàn)在指令系統(tǒng)中,其功能以指令的形式隱含地完成),用戶不能使用。當(dāng)故障出現(xiàn)時(shí),由CPU自動(dòng)產(chǎn)生并執(zhí)行,故又叫自中斷指令。陷阱觸發(fā)后,中斷強(qiáng)制執(zhí)行,不可屏蔽!5.5指令類型堆棧:8堆棧指令堆棧是一組能存取數(shù)據(jù)的暫時(shí)存儲(chǔ)單元(類似主存),很多計(jì)算機(jī)把主存的一部分用作堆棧。堆棧和其它形式的存儲(chǔ)器之間的差別是:它們對(duì)數(shù)據(jù)的存取方法和尋址方式有所不同。堆棧采用先進(jìn)后出(FILO:firstinlastout)的存取方式(破壞性讀出)。棧底固定不變,棧頂為數(shù)據(jù)通道。任何堆棧操作只能在棧頂進(jìn)行。5.5指令類型堆棧指針SP(stackpointer):用于軟堆棧指出棧頂?shù)刂返募拇嫫骰虼鎯?chǔ)器單元。堆棧分類:按構(gòu)成方式不同分串聯(lián)堆棧和存儲(chǔ)器堆棧兩種。串聯(lián)堆棧(硬堆棧):由8或16個(gè)具有移位功能的寄存器組成。操作速度快。但它要受到寄存器數(shù)目的限制。演示演示演示5.5指令類型存儲(chǔ)器堆棧(軟堆棧):利用一部分主存空間構(gòu)成堆棧,需要指針SP指示棧頂?shù)囊苿?dòng)情況。當(dāng)軟堆棧建立后,該部分存儲(chǔ)區(qū)則不能再作他用。演示演示演示存儲(chǔ)器堆棧的優(yōu)點(diǎn)有:堆棧的長(zhǎng)度可視程序的要求任意設(shè)置;?堆棧的數(shù)目可由程序員任意規(guī)定;?可使用對(duì)存儲(chǔ)器尋址的任何一條指令來(lái)對(duì)堆棧中的數(shù)據(jù)進(jìn)行尋址。5.5指令類型堆棧操作:入棧:把指定的操作數(shù)送入堆棧棧頂。堆棧指針SP-n(n=壓入數(shù)據(jù)的字節(jié)數(shù))。入棧指令:PUSH。出棧:把棧頂?shù)臄?shù)據(jù)取出,送到指令指定的單元。堆棧指針SP+n(n=壓入數(shù)據(jù)的字節(jié)數(shù))。出棧指令:POP。堆棧功能:除具備主存的功能外,堆棧常用于中斷、子程序調(diào)用過(guò)程中保存返回地址、狀態(tài)標(biāo)志及現(xiàn)場(chǎng)信息。也常用于子程序調(diào)用及返回時(shí)的參數(shù)傳遞。5.5指令類型9I/O指令用來(lái)啟動(dòng)外圍設(shè)備,檢查測(cè)試外圍設(shè)備的工作狀態(tài),并實(shí)現(xiàn)外部設(shè)備和CPU之間,或外圍設(shè)備與外圍設(shè)備之間的信息傳送。指令格式:OPCODERA操作碼,表示I/O指令。寄存器名,指定與外部設(shè)備交換數(shù)據(jù)的寄存器。外設(shè)的某寄存器地址或設(shè)備碼,長(zhǎng)度一般為8~16位,可表示256~64K個(gè)地址。5.5指令類型10特權(quán)指令具有特殊權(quán)限的指令。這類指令只用于操作系統(tǒng)或其他系統(tǒng)軟件,一般不直接提供給用戶使用。在多用戶、多任務(wù)的計(jì)算機(jī)系統(tǒng)中特權(quán)指令必不可少。它主要用于系統(tǒng)資源的分配和管理。包括改變系統(tǒng)的工作方式、檢測(cè)用戶的訪問(wèn)權(quán)限、修改虛擬存儲(chǔ)器管理的段表、頁(yè)表和完成任務(wù)的創(chuàng)建和切換等。5.5指令類型11其他指令主要包括:向量指令;多處理機(jī)指令;控制類指令:常用的控制類指令有:等待指令、停機(jī)指令、空操作指令、開(kāi)中斷、關(guān)中斷、置條件碼(狀態(tài)寄存器置位)指令、復(fù)位指令、測(cè)試指令等。5.7

RISC、CISCCISCCISC時(shí)代背景:隨著硬件成本不斷下降,軟件成本不斷上升,促進(jìn)人們?cè)谥噶钕到y(tǒng)中增加更多的指令和更復(fù)雜的指令,以適應(yīng)不同應(yīng)用領(lǐng)域的需要?!狢omplexInstructionSetComputer系列機(jī)問(wèn)世之后,為了能做到程序兼容,新機(jī)型除了要繼承老機(jī)器的全部指令外,還要增加若干新的指令,從而導(dǎo)致同一系列計(jì)算機(jī)的指令系統(tǒng)越來(lái)越復(fù)雜,機(jī)器結(jié)構(gòu)也越來(lái)越復(fù)雜。5.7

RISC、CISC目前,大多數(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種尋址方式。CISC現(xiàn)狀:5.7

RISC、CISCRISCRISC時(shí)代背景:復(fù)雜指令需進(jìn)行復(fù)雜的操作,從而降低了機(jī)器的執(zhí)行速度?!猂educedInstructionSetComputer日趨龐大的指令系統(tǒng)使計(jì)算機(jī)的研制周期變長(zhǎng),且增加了調(diào)試和維護(hù)的難度,還可能降低系統(tǒng)的性能。

1975年IBM公司開(kāi)始研究指令系統(tǒng)的合理性問(wèn)題,JohnCocke提出了精簡(jiǎn)指令系統(tǒng)的想法。5.7

RISC、CISC第一代RISC處理器?采用VLSICPU芯片,片上晶體管數(shù)為44000個(gè),線寬3m,字長(zhǎng)32位;?有128個(gè)寄存器,均為32位;?只有31條指令,兩種尋址方式。1982年美國(guó)加州伯萊克大學(xué)研究的RISCI機(jī):同時(shí),斯坦福大學(xué)推出MIPS機(jī),IBM公司推出IBM801機(jī),顯示了RISC的生命力,并推動(dòng)了RISC技術(shù)的不斷發(fā)展。5.7

RISC、CISC第二代RISC處理器第二代RISC處理器在第一代的基礎(chǔ)上提高了集成度和時(shí)鐘頻率,建立了比較完善的Cache分層存儲(chǔ)體系。它們已具有單指令流水線,每次順序執(zhí)行多條指令,每個(gè)周期發(fā)出一條指令。例如,MIPS公司的R3000處理器,則采用了25MHZ和33MHZ的時(shí)鐘頻率,芯片集成度是11.5萬(wàn)晶體管,字長(zhǎng)32位。5.7

RISC、CISC第三代RISC處理器第三代RISC處理器則采用了巨型計(jì)算機(jī)或大型計(jì)算機(jī)的設(shè)計(jì)技術(shù)——超級(jí)流水線(Superpipelining)技術(shù)和超標(biāo)量(Superrscalar)技術(shù)。提高了指令級(jí)并行處理能力。例如,MIPS公式的R4000處理器采用50MHZ和75MHZ的外部時(shí)鐘頻率(內(nèi)部流水線時(shí)鐘是100MHZ和150MHZ),芯片集成度高達(dá)110萬(wàn)晶體管,字長(zhǎng)是64位,并包含有16KB的Cache。5.7

RISC、CISCRISC構(gòu)成原理:對(duì)CISC指令系統(tǒng)所作的運(yùn)行統(tǒng)計(jì)分析表明,各種指令使用頻率相差懸殊,常用的較為簡(jiǎn)單的指令,僅占指令總數(shù)的20%,但在程序中使用的頻率卻占80%。

RISC技術(shù)的實(shí)質(zhì)是要求指令系統(tǒng)簡(jiǎn)化,盡量使用寄存器-寄存器操作指令,指令操作在一個(gè)周期內(nèi)完成,指令格式力求一致,以利于提高編譯的效率。5.7

RISC、CISC下表是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%5.7

RISC、CISC精簡(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ù)。計(jì)算機(jī)執(zhí)行程序所需要的時(shí)間為:

P=I×CPI×TI——程序編譯后在機(jī)器上運(yùn)行的指令數(shù);CPI—執(zhí)行每條指令所需的平均周期數(shù);T——每個(gè)機(jī)器周期的時(shí)間。5.7

RISC、CISCRISC指令簡(jiǎn)單,CISC機(jī)中比較復(fù)雜的指令需用RISC子程序代替,因此RISC中的I比CISC的多20%—40%;RISC的大多數(shù)指令只用一個(gè)機(jī)器周期實(shí)現(xiàn),CPI的值比CISC的小得多;RISC結(jié)構(gòu)簡(jiǎn)單,完成一個(gè)操作所經(jīng)過(guò)的數(shù)據(jù)通道較短,因此,T的值大為減少。T<11CPI1.3~1.74~6I1.2~1.41RISCCISCRISC/CISC的I、CPI、T統(tǒng)計(jì)表其中,I、T為比值,CPI為實(shí)際周期數(shù)。5.7

RISC、CISCRISC的特點(diǎn):

RISC繼承了CISC的成功技術(shù),又克服了CISC的缺點(diǎn)。然而,很難在RISC和CISC之間劃出一條明顯的分界線。通過(guò)對(duì)各種RISC產(chǎn)品的分析,可以概括出如下一些主要特點(diǎn)。1、選取使用頻率最高的一些簡(jiǎn)單指令和很有用但不復(fù)雜的指令;2、指令長(zhǎng)度固定,指令格式種類少,

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論