第二講 指令系統(tǒng)及CPU內(nèi)部框架設(shè)計(jì)_第1頁
第二講 指令系統(tǒng)及CPU內(nèi)部框架設(shè)計(jì)_第2頁
第二講 指令系統(tǒng)及CPU內(nèi)部框架設(shè)計(jì)_第3頁
第二講 指令系統(tǒng)及CPU內(nèi)部框架設(shè)計(jì)_第4頁
第二講 指令系統(tǒng)及CPU內(nèi)部框架設(shè)計(jì)_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

計(jì)算機(jī)組成原理第二講指令系統(tǒng)及CPU內(nèi)部框架設(shè)計(jì)第二講指令系統(tǒng)及CPU內(nèi)部框架設(shè)計(jì)學(xué)習(xí)目的了解指令系統(tǒng)的作用了解RISC指令架構(gòu)與CISC指令架構(gòu)的特點(diǎn)掌握指令的一般格式,掌握操作碼與地址碼的概念掌握常規(guī)操作類型及基本的指令尋址方式了解RISC的特點(diǎn)掌握指令系統(tǒng)設(shè)計(jì)方法及CPU內(nèi)部框架設(shè)計(jì)方法第二講指令系統(tǒng)及CPU內(nèi)部框架設(shè)計(jì)Outline:計(jì)算機(jī)指令系統(tǒng)的作用CISC與RISC指令格式尋址方式一般指令系統(tǒng)設(shè)計(jì)方法作業(yè)及設(shè)計(jì)示例計(jì)算機(jī)指令系統(tǒng)的作用指令系統(tǒng)是計(jì)算機(jī)可以執(zhí)行的全部指令的集合指定的指令序列可令計(jì)算機(jī)按照特定的流程完成特定功能一條指令是一串有意義的二進(jìn)制碼序列設(shè)定計(jì)算機(jī)可完成的操作種類說明計(jì)算機(jī)可操作的對(duì)象限定計(jì)算機(jī)可訪問的寄存器的數(shù)量限定計(jì)算機(jī)可訪問的存儲(chǔ)空間的大小部分指明CPU內(nèi)部的數(shù)據(jù)通路(信息通路)部分確定CPU內(nèi)部的框架結(jié)構(gòu)其它第二講指令系統(tǒng)及CPU內(nèi)部框架設(shè)計(jì)Outline:計(jì)算機(jī)指令系統(tǒng)的作用CISC與RISC指令格式尋址方式一般指令系統(tǒng)設(shè)計(jì)方法作業(yè)及設(shè)計(jì)示例CISC與RISC復(fù)雜指令集運(yùn)算(ComplexInstructionSetComputing,CISC)為了提高運(yùn)算速度

將越來越多的復(fù)雜指令加入到指令系統(tǒng)中為了在有限的指令長度內(nèi)實(shí)現(xiàn)更多的指令,

操作碼擴(kuò)展

操作碼擴(kuò)展的先決條件——減少地址碼

各種尋址方式CISC=復(fù)雜的數(shù)據(jù)通路+微程序控制器

CISC與RISC精簡指令集運(yùn)算(ReducedInstructionSetComputing,RISC)80—20規(guī)律——RISC技術(shù)典型程序中80%的語句僅僅使用處理機(jī)中20%的指令執(zhí)行頻度高的簡單指令,因復(fù)雜指令的存在,執(zhí)行速度無法提高能否用20%的簡單指令組合不常用的80%的指令功能保留很有限且最常用的那部分指令復(fù)雜的操作由簡單指令合成CISC與RISCRISC系統(tǒng)的改良:采用多級(jí)指令流水線結(jié)構(gòu)選取機(jī)器中使用頻率最高的簡單指令及部分復(fù)雜指令采用加載(Load)、存儲(chǔ)

(Store)結(jié)構(gòu)延遲加載指令和轉(zhuǎn)移指令采用高速緩存(cache)結(jié)構(gòu)CISC與RISCRISC的主要特征選用使用頻率較高的一些簡單指令復(fù)雜指令的功能由簡單指令來組合指令長度固定只有LOAD/STORE

指令訪存流水技術(shù)一個(gè)時(shí)鐘周期

內(nèi)完成一條指令組合邏輯

實(shí)現(xiàn)控制器多個(gè)

通用寄存器采用優(yōu)化

的編譯

程序第二講指令系統(tǒng)及CPU內(nèi)部框架設(shè)計(jì)Outline:計(jì)算機(jī)指令系統(tǒng)的作用CISC與RISC指令格式尋址方式一般指令系統(tǒng)設(shè)計(jì)方法作業(yè)及設(shè)計(jì)示例指令格式指令的構(gòu)成指令字長操作數(shù)類型和操作類型指令的構(gòu)成操作碼字段

地址碼字段操作碼反映機(jī)器做什么操作長度固定用于指令字長較長的情況(如IBM370操作碼8位)RISC長度可變操作碼分散在指令字的不同字段中擴(kuò)展操作碼技術(shù)(指令長度不變)操作碼的位數(shù)隨地址數(shù)的減少而增加地址碼說明計(jì)算機(jī)操作的對(duì)象擴(kuò)展操作碼技術(shù)OPA1A2A3000000011110…A1A1A1…A2A2A2…A3A3A3…A2A2A2…A3A3A3…111111111111…000000011110…111111111111…111111111111…111111111111…000000011111…111111111111…111111111111…A3A3A3…000000011110…4位操作碼8位操作碼12位操作碼16位操作碼15條三地址指令15條二地址指令15條一地址指令16條零地址指令指令的構(gòu)成地址碼四地址三地址二地址一地址零地址地址碼四地址三地址OPA1A2A3A4A1

第一操作數(shù)地址A2

第二操作數(shù)地址A3

結(jié)果的地址A4

下一條指令地址若PC代替A4(A1)OP(A2)A34次訪存尋址范圍26=64設(shè)指令字長為32位操作碼固定為8位8888OPA1A2A3(A1)OP(A2)A34次訪存尋址范圍28=256若A3用A1或A2代替地址碼二地址一地址零地址OPA1A281212(A1)OP(A2)A1(A1)OP(A2)A2或4次訪存若ACC代替A1(或A2)若結(jié)果存于ACC尋址范圍212=4K3次訪存OPA1824(ACC)OP(A1)ACC2次訪存尋址范圍224=16M

無地址碼指令的構(gòu)成小結(jié):當(dāng)用一些硬件資源代替指令字中的地址碼字段后可擴(kuò)大指令的尋址范圍可縮短指令字長可減少訪存次數(shù)當(dāng)指令的地址字段為寄存器時(shí)三地址OPR1,R2,R3

二地址OPR1,R2

一地址OPR1可縮短指令字長指令執(zhí)行階段不訪存指令格式指令的構(gòu)成指令字長操作數(shù)類型和操作類型指令字長指令字長固定指令字長可變指令字長取決于操作碼的長度操作數(shù)地址的長度操作數(shù)地址的個(gè)數(shù)指令字長=存儲(chǔ)字長按字節(jié)的倍數(shù)變化指令格式指令的構(gòu)成指令字長操作數(shù)類型和操作類型操作數(shù)類型和操作類型操作數(shù)類型數(shù)據(jù)在存儲(chǔ)器中的存放方式地址數(shù)字字符邏輯數(shù)無符號(hào)整數(shù)定點(diǎn)數(shù)、浮點(diǎn)數(shù)、十進(jìn)制數(shù)ASCII邏輯運(yùn)算字地址

低字節(jié)

地址字地址

高字節(jié)

地址37621540字地址04低字節(jié)04512673字地址04低字節(jié)數(shù)據(jù)在存儲(chǔ)器中的存放方式地址(十進(jìn)制)

04812162024283236雙字雙字(地址32)▲雙字雙字(地址24)▲半字(地址20)√半字(地址22)√半字(地址16)√半字(地址18)√字節(jié)(地址8)字節(jié)(地址9)字節(jié)(地址10)字節(jié)(地址11)字(地址4)字(地址0)字節(jié)(地址14)字節(jié)(地址15)字節(jié)(地址13)字節(jié)(地址12)邊界對(duì)準(zhǔn)地址(十進(jìn)制)048字節(jié)(地址7)字節(jié)(地址6)字(地址2)半字(地址10)半字(地址8)半字(地址0)字(地址4)邊界未對(duì)準(zhǔn)操作數(shù)類型和操作類型操作類型數(shù)據(jù)傳送算術(shù)邏輯操作移位操作轉(zhuǎn)移輸入輸出源目的寄存器寄存器寄存器寄存器存儲(chǔ)器存儲(chǔ)器存儲(chǔ)器存儲(chǔ)器置“1”,清“0”MOVESTORELOADMOVEPUSHPOP例如MOVEMOVE操作類型算術(shù)邏輯操作移位操作加、減、乘、除、增1、減1、求補(bǔ)、浮點(diǎn)運(yùn)算、十進(jìn)制運(yùn)算與、或、非、異或、位操作、位測(cè)試、位清除、位求反如8086ADDSUBMULDIVINCDECCMPNEGAAAAASAAMAADANDORNOTXORTEST算術(shù)移位循環(huán)移位(帶進(jìn)位和不帶進(jìn)位)邏輯移位操作類型轉(zhuǎn)移無條件轉(zhuǎn)移JMP條件轉(zhuǎn)移調(diào)用和返回陷阱(Trap)與陷阱指令結(jié)果為零轉(zhuǎn)(Z=1)

JZ結(jié)果溢出轉(zhuǎn)(O=1)JO結(jié)果有進(jìn)位轉(zhuǎn)(C=1)JC跳過一條指令SKP如300…305306307SKPDZD=0則跳完成觸發(fā)器調(diào)用和返回CALLSUB1.........CALLSUB2…...CALLSUB2…RETURNRETURN......主程序地址200021002101子程序SUB1240025002501256025612700主存空間分配程序執(zhí)行流程子程序SUB2陷阱(Trap)與陷阱指令意外事故的中斷一般不提供給用戶直接使用在出現(xiàn)事故時(shí),由CPU自動(dòng)產(chǎn)生并執(zhí)行(隱指令)設(shè)置供用戶使用的陷阱指令如8086INTTYPE軟中斷提供給用戶使用的陷阱指令,完成系統(tǒng)調(diào)用操作類型輸入輸出INAX,nOUTDX,ALOUTn,AXOUTDX,AXINAL,DXINAX,DX入端口地址CPU的寄存器出CPU的寄存器端口地址如如INAL,nOUTn,AL第二講指令系統(tǒng)及CPU內(nèi)部框架設(shè)計(jì)Outline:計(jì)算機(jī)指令系統(tǒng)的作用CISC與RISC指令格式尋址方式一般指令系統(tǒng)設(shè)計(jì)方法作業(yè)及設(shè)計(jì)示例尋址方式尋址方式

確定本條指令

的操作數(shù)地址下一條

欲執(zhí)行指令

的指令地址指令尋址數(shù)據(jù)尋址尋址方式指令尋址順序(PC)+1PC跳躍由轉(zhuǎn)移指令指出LDA1000ADD1001DEC1200JMP7LDA2000SUB2001INCSTA2500LDA1100...0123456789PC+1指令地址尋址方式指令地址指令順序?qū)ぶ?順序?qū)ぶ?順序?qū)ぶ?跳躍尋址7順序?qū)ぶ?數(shù)據(jù)尋址立即尋址直接尋址隱含尋址間接尋址寄存器尋址寄存器間接尋址基址尋址變址尋址相對(duì)尋址堆棧尋址形式地址指令字中的地址有效地址操作數(shù)的真實(shí)地址約定

指令字長=存儲(chǔ)字長=機(jī)器字長形式地址A操作碼尋址特征立即尋址指令執(zhí)行階段不訪存

A的位數(shù)限制了立即數(shù)的范圍OP#A立即尋址特征立即數(shù)可正可負(fù)補(bǔ)碼形式地址A就是操作數(shù)直接尋址EA=A操作數(shù)主存尋址特征LDAAAACC執(zhí)行階段訪問一次存儲(chǔ)器

A的位數(shù)決定了該指令操作數(shù)的尋址范圍操作數(shù)的地址不易修改(必須修改A)有效地址由形式地址直接給出隱含尋址操作數(shù)地址隱含在操作碼中ADDA操作數(shù)主存尋址特征AACC暫存ALU另一個(gè)操作數(shù)隱含在ACC中如8086MUL指令被乘數(shù)隱含在AX(16位)或AL(8位)中MOVS指令源操作數(shù)的地址隱含在SI中目的操作數(shù)的地址隱含在DI中指令字中少了一個(gè)地址字段,可縮短指令字長間接尋址EA=(A)有效地址由形式地址間接提供OPA尋址特征AEA主存EAA1EAA1主存EA10執(zhí)行指令階段2次訪存可擴(kuò)大尋址范圍便于編制程序OPA尋址特征A一次間址多次間址操作數(shù)操作數(shù)多次訪存間接尋址舉例

………子程序主程序…8081201202轉(zhuǎn)子程序轉(zhuǎn)子程序(A)=81(A)=202……@

間址特征JMP@A…

……………

…………寄存器尋址EA=Ri執(zhí)行階段不訪存,只訪問寄存器,執(zhí)行速度快OPRi尋址特征寄存器個(gè)數(shù)有限,可縮短指令字長操作數(shù)………………R0RiRn寄存器有效地址即為寄存器編號(hào)寄存器間接尋址EA=(Ri

)

有效地址在寄存器中,操作數(shù)在存儲(chǔ)器中,執(zhí)行階段訪存操作數(shù)主存OPRi尋址特征

便于編制循環(huán)程序地址………………R0RiRn寄存器有效地址在寄存器中基址尋址采用專用寄存器作基址寄存器EA=(BR)+ABR為基址寄存器OPA操作數(shù)主存尋址特征ALUBR

可擴(kuò)大尋址范圍

便于程序搬家

BR內(nèi)容由操作系統(tǒng)或管理程序確定

在程序的執(zhí)行過程中BR內(nèi)容不變,形式地址A可變基址尋址采用通用寄存器作基址寄存器操作數(shù)主存尋址特征ALUOPR0AR0

作基址寄存器由用戶指定哪個(gè)通用寄存器作為基址寄存器通用寄存器R0Rn-1R1…基址寄存器的內(nèi)容由操作系統(tǒng)確定在程序的執(zhí)行過程中R0內(nèi)容不變,形式地址A可變變址尋址EA=(IX)+AOPA操作數(shù)主存尋址特征ALUIX可擴(kuò)大尋址范圍便于處理數(shù)組問題

IX的內(nèi)容由用戶給定IX為變址寄存器(專用)在程序的執(zhí)行過程中IX內(nèi)容可變,形式地址A不變通用寄存器也可以作為變址寄存器例設(shè)數(shù)據(jù)塊首地址為D,求N

個(gè)數(shù)的平均值直接尋址變址尋址LDADADDD+1ADDD+2……ADDD+(N-1)DIV#NSTAANSLDA#0LDX#0INXCPX#NBNEMDIV#NSTAANS共N+2

條指令共8

條指令A(yù)DDX,DMX為變址寄存器D為形式地址(X)和#N

比較(X)+1X結(jié)果不為零則轉(zhuǎn)相對(duì)尋址EA=(PC)+AA是相對(duì)于當(dāng)前指令的位移量(可正可負(fù),補(bǔ)碼)

A的位數(shù)決定操作數(shù)的尋址范圍程序浮動(dòng)操作數(shù)尋址特征ALUOPA相對(duì)距離A1000PC……主存1000AOP廣泛用于轉(zhuǎn)移指令按字節(jié)尋址的相對(duì)尋址舉例M

隨程序所在存儲(chǔ)空間的位置不同而不同EA=(M+3)–3=M–3*LDA#0LDX#0ADDX,DINXCPX#NBNE

MDIV#NSTAANSMM+1M+2M+3而指令BNE與

指令A(yù)DDX,D相對(duì)位移量不變–3*指令BNE操作數(shù)的有效地址為–3*

相對(duì)尋址特征*相對(duì)尋址舉例OP位移量2000H2008H8JMP*+8OP06H2000H2008H8設(shè)當(dāng)前指令地址PC=2000H轉(zhuǎn)移后的目的地址為

2008H因?yàn)槿〕鯦MP

*+8

后PC=2002H二字節(jié)指令故JMP

*+8

指令的第二字節(jié)為2008H-2002H=6H堆棧尋址堆棧的特點(diǎn)堆棧硬堆棧軟堆棧多個(gè)寄存器指定的存儲(chǔ)空間先進(jìn)后出(一個(gè)入出口)棧頂?shù)刂?/p>

由SP

指出–11FFFH

+12000H進(jìn)棧(SP)–1SP出棧(SP)+1SP棧頂棧底2000HSP2000H……1FFFHSP1FFFH棧頂棧底進(jìn)棧出棧

1FFFH棧頂

2000H棧頂堆棧尋址舉例15200HACCSPX棧頂200H棧底主存151FFHACCSP15棧頂200H棧底主存X1FFHPUSHA前PUSHA后POPA前POPA后Y1FFHACCSPX棧頂200H棧底主存151FFH15200HACCSP棧頂200H棧底主存X15SP的修改按字

編址按字節(jié)

編址進(jìn)棧出棧(SP)–1SP(SP)+

1SP存儲(chǔ)字長16

位進(jìn)棧出棧(SP)–

2SP(SP)+

2SP存儲(chǔ)字長32

位進(jìn)棧出棧(SP)–

4SP(SP)+

4SP第

溫馨提示

  • 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)論