第十四-十五講-第7章-指令系統(tǒng)_第1頁
第十四-十五講-第7章-指令系統(tǒng)_第2頁
第十四-十五講-第7章-指令系統(tǒng)_第3頁
第十四-十五講-第7章-指令系統(tǒng)_第4頁
第十四-十五講-第7章-指令系統(tǒng)_第5頁
已閱讀5頁,還剩170頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第7章指令系統(tǒng)7.1機器指令7.2操作數(shù)類型和操作類型7.3尋址方式7.4指令格式舉例7.5RISC技術7.1機器指令一、指令的一般格式操作碼字段

地址碼字段1.操作碼反映機器做什么操作(1)長度固定(2)長度可變用于指令字長較長的情況,RISC如IBM370操作碼8位操作碼分散在指令字的不同字段中(3)擴展操作碼技術操作碼的位數(shù)隨地址數(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條零地址指令7.1(3)擴展操作碼技術操作碼的位數(shù)隨地址數(shù)的減少而增加OPA1A2A3000000011110…A1A1A1…A2A2A2…A3A3A3…A2A2A2…A3A3A3…111111111111…000000011110…111111111111…111111111111…111111111111…000000011111…111111111111…111111111111…A3A3A3…000000011110…4位操作碼8位操作碼12位操作碼16位操作碼三地址指令操作碼每減少一種可多構成24種二地址指令二地址指令操作碼每減少一種可多構成24

種一地址指令7.12.地址碼(1)四地址(2)三地址OPA1A2A3A486666A1

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

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

結果的地址A4

下一條指令地址若PC代替A4(A1)OP(A2)A38888OPA1A2A3(A1)OP(A2)A34次訪存4次訪存尋址范圍26=64尋址范圍28=256若A3用A1或A2代替7.1設指令字長為32位操作碼固定為8位(3)二地址OPA1A281212(A1)OP(A2)A1(A1)OP(A2)A2或4次訪存若ACC代替A1(或A2)若結果存于ACC(4)一地址(5)零地址OPA1824無地址碼(ACC)OP(A1)ACC2次訪存尋址范圍212=4K尋址范圍224=16M3次訪存7.1二、指令字長指令字長決定于操作碼的長度指令字長=存儲字長2.指令字長可變操作數(shù)地址的長度操作數(shù)地址的個數(shù)1.指令字長固定按字節(jié)的倍數(shù)變化7.1小結當用一些硬件資源代替指令字中的地址碼字段后當指令的地址字段為寄存器時可擴大指令的尋址范圍可縮短指令字長可減少訪存次數(shù)三地址OPR1,

R2,R3二地址OPR1,R2

一地址OPR1

指令執(zhí)行階段不訪存可縮短指令字長7.17.2操作數(shù)類型和操作種類一、操作數(shù)類型地址數(shù)字字符邏輯數(shù)無符號整數(shù)定點數(shù)、浮點數(shù)、十進制數(shù)ASCII邏輯運算二、數(shù)據(jù)在存儲器中的存放方式字地址為低字節(jié)地址字地址為高字節(jié)地址37621540字地址04低字節(jié)04512673字地址04低字節(jié)存儲器中的數(shù)據(jù)存放(存儲字長為

32

位)地址(十進制)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)邊界對準地址(十進制)048字節(jié)(地址7)字節(jié)(地址6)字(地址2)半字(地址10)半字(地址8)半字(地址0)字(地址4)邊界未對準7.2三、操作類型1.

數(shù)據(jù)傳送源目的寄存器寄存器寄存器寄存器存儲器存儲器存儲器存儲器置“1”,清“0”2.算術邏輯操作加、減、乘、除、增1、減1、求補、浮點運算、十進制運算與、或、非、異或、位操作、位測試、位清除、位求反如8086MOVESTORELOADMOVEPUSHPOP例如MOVEMOVE7.2ADDSUBMULDIVINCDECCMPNEGAAAAASAAMAADANDORNOTXORTEST3.移位操作算術移位4.轉(zhuǎn)移(1)無條件轉(zhuǎn)移JMP(2)條件轉(zhuǎn)移結果為零轉(zhuǎn)(Z=1)

JZ結果溢出轉(zhuǎn)(O=1)JO結果有進位轉(zhuǎn)(C=1)JC跳過一條指令SKP循環(huán)移位(帶進位和不帶進位)如300…305306307SKPDZD=0則跳邏輯移位完成觸發(fā)器7.2(3)調(diào)用和返回CALLSUB1......CALLSUB2…...CALLSUB2…RETURNRETURN主程序地址200021002101子程序SUB1240025002501256025612700主存空間分配程序執(zhí)行流程子程序SUB27.2...INAX,nOUTDX,ALOUTn,AXOUTDX,AX(4)陷阱(Trap)與陷阱指令意外事故的中斷設置供用戶使用的陷阱指令如8086INTTYPE軟中斷提供給用戶使用的陷阱指令,完成系統(tǒng)調(diào)用5.輸入輸出一般不提供給用戶直接使用

在出現(xiàn)事故時,由CPU自動產(chǎn)生并執(zhí)行(隱指令)INAL,DXINAX,DX入端口地址CPU的寄存器出CPU的寄存器端口地址7.2如如INAL,nOUTn,AL7.3尋址方式尋址方式

確定本條指令的操作數(shù)地址下一條欲執(zhí)行指令的指令地址指令尋址數(shù)據(jù)尋址尋址方式7.3尋址方式一、指令尋址順序(PC)+1PC跳躍由轉(zhuǎn)移指令指出LDA1000ADD1001DEC1200JMP7LDA2000SUB2001INCSTA2500LDA1100...0123456789PC+1指令地址尋址方式指令地址指令順序?qū)ぶ?順序?qū)ぶ?順序?qū)ぶ?跳躍尋址7順序?qū)ぶ?二、數(shù)據(jù)尋址形式地址指令字中的地址有效地址操作數(shù)的真實地址約定

指令字長=存儲字長=機器字長1.立即尋址指令執(zhí)行階段不訪存

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

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

……

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

)6.寄存器間接尋址

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

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

可擴大尋址范圍

有利于多道程序

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

在程序的執(zhí)行過程中BR內(nèi)容不變,形式地址A可變7.3(2)

采用通用寄存器作基址寄存器操作數(shù)主存尋址特征ALUOPR0AR0

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

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

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

條指令共8條指令ADDX,DMX為變址寄存器D為形式地址(X)和#N

比較(X)+1X結果不為零則轉(zhuǎn)7.39.相對尋址EA=(PC)+AA是相對于當前指令的位移量(可正可負,補碼)A的位數(shù)決定操作數(shù)的尋址范圍程序浮動

廣泛用于轉(zhuǎn)移指令操作數(shù)尋址特征ALUOPA相對距離A1000PC

…主存1000AOP7.3(1)相對尋址舉例M

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

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

與指令ADDX,D

相對位移量不變–3*

指令BNE操作數(shù)的有效地址為–3*

相對尋址特征*7.3(2)按字節(jié)尋址的相對尋址舉例OP位移量2000H2008H8JMP*+8OP06H2000H2008H8設當前指令地址PC=2000H轉(zhuǎn)移后的目的地址為

2008H因為取出JMP

*+8

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

*+8

指令的第二字節(jié)為2008H-2002H=06H7.310.堆棧尋址(1)堆棧的特點堆棧硬堆棧軟堆棧多個寄存器指定的存儲空間先進后出(一個入出口)棧頂?shù)刂酚蒘P

指出–11FFFH+12000H進棧(SP)–1SP出棧(SP)+1SP棧頂棧底2000HSP2000H……1FFFHSP1FFFH棧頂棧底進棧出棧1FFFH棧頂2000H棧頂7.3(2)堆棧尋址舉例15200HACCSPX棧頂200H棧底主存151FFHACCSP15棧頂200H棧底主存X1FFHPUSHA前PUSHA后POPA前POPA后Y1FFHACCSPX棧頂200H棧底主存151FFH15200HACCSP棧頂200H棧底主存X157.3(3)SP的修改與主存編址方法有關①按字編址進棧出棧(SP)–1SP(SP)+1SP②按字節(jié)編址存儲字長16位進棧出棧(SP)–2SP(SP)+2SP存儲字長32位進棧出棧(SP)–4SP(SP)+4SP7.37.4指令格式舉例一、設計指令格式時應考慮的各種因素1.指令系統(tǒng)的兼容性(向上兼容)2.其他因素操作類型數(shù)據(jù)類型指令格式包括指令個數(shù)及操作的難易程度指令字長是否固定尋址方式寄存器個數(shù)地址碼位數(shù)、地址個數(shù)、尋址方式類型操作碼位數(shù)、是否采用擴展操作碼技術,確定哪些數(shù)據(jù)類型可參與操作指令尋址、操作數(shù)尋址寄存器的多少直接影響指令的執(zhí)行時間二、指令格式舉例1.PDP–8指令字長固定12位

操作碼

頁地址碼訪存類指令0235411寄存器類指令

111輔助操作碼02311I/O類指令

110設備操作碼02311987.4采用擴展操作碼技術2.PDP–11源地址OP4661616目的地址存儲器地址1存儲器地址2OP10616目的地址存儲器地址目的地址466源地址OP106目的地址OP-CODE16OP-CODE指令字長有16位、32位、48位三種零地址(16位)一地址(16位)二地址R–R(16位)二地址R–M(32位)二地址M–M(48位)擴展操作碼技術7.43.IBM360OPR1R2RR格式844OPR1XBDRX格式844412OPR1R3BDRS格式844412OPBDISI格式88412二地址R–R基址加變址尋址二地址R–M三地址R–M基址尋址二地址M–M基址尋址基址尋址立即數(shù)–

M7.4OPB1D1LB2D2SS格式884124124.Intel8086(1)指令字長(2)地址格式1~6個字節(jié)MOVWORDPTR[0204],0138H6字節(jié)INCAX1字節(jié)一地址NOP1字節(jié)CALL段內(nèi)調(diào)用3字節(jié)零地址5字節(jié)段間調(diào)用寄存器–寄存器寄存器–立即數(shù)寄存器–存儲器ADDAX,BX2字節(jié)ADDAX,[3048H]4字節(jié)ADDAX,3048H

3字節(jié)二地址CALL7.47.5RISC技術一、RISC的產(chǎn)生和發(fā)展

80—20規(guī)律

典型程序中80%的語句僅僅使用處理機中20%的指令

執(zhí)行頻度高的簡單指令,因復雜指令的存在,執(zhí)行速度無法提高RISC(ReducedInstructionSetComputer)CISC(ComplexInstructionSetComputer)——RISC技術

能否用20%的簡單指令組合不常用的80%的指令功能?二、RISC的主要特征

選用使用頻度較高的一些簡單指令,復雜指令的功能由簡單指令來組合

指令長度固定、指令格式種類少、尋址方式少

只有LOAD/STORE

指令訪存

采用流水技術

一個時鐘周期內(nèi)完成一條指令

采用組合邏輯實現(xiàn)控制器

CPU中有多個通用寄存器

采用優(yōu)化的編譯程序

7.5三、CISC的主要特征

系統(tǒng)指令復雜龐大,各種指令使用頻度相差大

指令長度不固定、指令格式種類多、尋址方式多訪存指令不受限制

大多數(shù)指令需要多個時鐘周期執(zhí)行完畢

采用微程序控制器

CPU中設有專用寄存器

難以用優(yōu)化編譯生成高效的目的代碼

7.5四、RISC和CISC的比較1.RISC更能充分利用

VLSI芯片的面積2.

RISC更能提高計算機運算速度指令數(shù)、指令格式、尋址方式少,通用寄存器多,采用組合邏輯,便于實現(xiàn)指令流水3.RISC便于設計,可降低成本,提高可靠性4.RISC

有利于編譯程序代碼優(yōu)化

5.

RISC不易實現(xiàn)指令系統(tǒng)兼容

7.5第8章CPU的結構和功能8.1CPU的結構8.3指令流水8.2指令周期8.4中斷系統(tǒng)8.1CPU的結構一、CPU的功能取指令分析指令執(zhí)行指令,發(fā)出各種操作命令控制程序輸入及結果的輸出總線管理處理異常情況和特殊請求1.控制器的功能2.運算器的功能實現(xiàn)算術運算和邏輯運算指令控制操作控制時間控制數(shù)據(jù)加工處理中斷二、CPU結構框圖PCIR指令控制操作控制時間控制數(shù)據(jù)加工處理中斷ALU寄存器中斷系統(tǒng)1.CPU與系統(tǒng)總線CU時序電路寄存器ALU

中斷

系統(tǒng)CUCPU控制總線數(shù)據(jù)總線地址總線8.12.CPU的內(nèi)部結構8.1算術和布爾邏輯取反移位狀態(tài)標志內(nèi)部數(shù)據(jù)總線寄存器CU中斷系統(tǒng)ALU控制信號…CPU1.用戶可見寄存器(1)通用寄存器三、CPU的寄存器存放操作數(shù)可作某種尋址方式所需的專用寄存器(2)數(shù)據(jù)寄存器存放操作數(shù)(滿足各種數(shù)據(jù)類型)兩個寄存器拼接存放雙倍字長數(shù)據(jù)(3)地址寄存器存放地址,其位數(shù)應滿足最大的地址范圍用于特殊的尋址方式段基值棧指針(4)條件碼寄存器存放條件碼,可作程序分支的依據(jù)如正、負、零、溢出、進位等8.12.控制和狀態(tài)寄存器(1)控制寄存器PC控制CPU操作(2)狀態(tài)寄存器狀態(tài)寄存器其中MAR、MDR、IR

用戶不可見存放條件碼PSW寄存器存放程序狀態(tài)字

PC

用戶可見3.舉例Z80008086MC68000MARMMDRIR8.1四、控制單元CU和中斷系統(tǒng)1.CU產(chǎn)生全部指令的微操作命令序列組合邏輯設計微程序設計硬連線邏輯存儲邏輯2.中斷系統(tǒng)參見第4篇五、ALU參見8.4節(jié)參見第6章8.18.2指令周期一、指令周期的基本概念1.指令周期取出并執(zhí)行一條指令所需的全部時間完成一條指令執(zhí)行取指、分析取指階段取指周期執(zhí)行階段執(zhí)行周期(取指、分析)(執(zhí)行指令)指令周期取指周期執(zhí)行周期2.每條指令的指令周期不同取指周期指令周期取指周期執(zhí)行周期指令周期NOPADDmemMULmem8.2取指周期執(zhí)行周期指令周期…3.具有間接尋址的指令周期4.帶有中斷周期的指令周期取指周期間址周期指令周期執(zhí)行周期取指周期間址周期指令周期執(zhí)行周期中斷周期8.25.指令周期流程取指周期執(zhí)行周期有間址嗎?有中斷嗎?間址周期中斷周期是是否否8.26.CPU工作周期的標志CPU訪存有四種性質(zhì)取指令取地址取操作數(shù)存程序斷點取指周期間址周期執(zhí)行周期中斷周期FEDINDDINTDCLK1FE1IND1EX1INTEXDCPU的4個工作周期8.21.取指周期數(shù)據(jù)流二、指令周期的數(shù)據(jù)流MDRCUMARPCIR存儲器CPU地址總線數(shù)據(jù)總線控制總線IR+18.22.間址周期數(shù)據(jù)流MDRCUMARCPU地址總線數(shù)據(jù)總線控制總線PCIR存儲器MDR8.23.執(zhí)行周期數(shù)據(jù)流4.中斷周期數(shù)據(jù)流不同指令的執(zhí)行周期數(shù)據(jù)流不同MDRCUMARCPU地址總線數(shù)據(jù)總線控制總線PC存儲器8.28.3指令流水一、如何提高機器速度1.提高訪存速度2.提高I/O和主機之間的傳送速度提高整機處理能力高速芯片Cache多體并行I/O處理機DMA多總線通道高速器件改進系統(tǒng)結構,開發(fā)系統(tǒng)的并行性中斷3.提高運算器速度高速芯片改進算法快速進位鏈二、系統(tǒng)的并行性時間上互相重疊2.并行性的等級指令級(指令之間)(指令內(nèi)部)過程級(程序、進程)兩個或兩個以上事件在同一時刻發(fā)生兩個或兩個以上事件在同一時間段發(fā)生并行1.并行的概念粗粒度軟件實現(xiàn)細粒度硬件實現(xiàn)并發(fā)同時8.3取指令3執(zhí)行指令3三、指令流水原理2.指令的二級流水1.指令的串行執(zhí)行取指令

取指令部件完成總有一個部件空閑指令預取若取指和執(zhí)行階段時間上完全重疊指令周期減半速度提高1倍…執(zhí)行指令

執(zhí)行指令部件

完成取指令1執(zhí)行指令1取指令2執(zhí)行指令2取指令3執(zhí)行指令3取指令2執(zhí)行指令2取指令1執(zhí)行指令18.3必須等上條指令執(zhí)行結束,才能確定下條指令的地址,造成時間損失3.影響指令流水效率加倍的因素(1)執(zhí)行時間>取指時間

(2)條件轉(zhuǎn)移指令對指令流水的影響

解決辦法

?取指令部件指令部件緩沖區(qū)執(zhí)行指令部件猜測法8.34.指令的六級流水六級流水14個時間單位串行執(zhí)行6×9=54

個時間單位完成一條指令6個時間單位COFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFI指令1指令2指令3指令4指令5指令6指令7指令8指令91234567891011121314t8.3指令1與指令4沖突指令2與指令5沖突指令1、指令3、指令6沖突…COFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFI指令1指令2指令3指令4指令5指令6指令7指令8指令91234567891011121314t三、影響指令流水線性能的因素1.結構相關8.3不同指令爭用同一功能部件產(chǎn)生資源沖突程序的相近指令之間出現(xiàn)某種關聯(lián)使指令流水出現(xiàn)停頓,影響流水線效率解決辦法?停頓?指令存儲器和數(shù)據(jù)存儲器分開?指令預取技術(適用于訪存周期短的情況)2.數(shù)據(jù)相關不同指令因重疊操作,可能改變操作數(shù)的讀/寫訪問順序采用旁路技術解決辦法8.3寫后讀相關(RAW)SUBR1,R2,R3ADDR4,R5,R1;(R2)

(R3)R1;(R5)+(R1)R4讀后寫相關(WAR)STAM,R2ADDR2,R4,R5;(R2)M存儲單元;(R4)+(R5)R2寫后寫相關(WAW)后推法MULR3,R2,R1SUB

R3,R4,R5;(R2)×

(R1)R3;(R4)(R5)

R33.控制相關8.3BNE指令必須等CPX指令的結果才能判斷出是轉(zhuǎn)移還是順序執(zhí)行LDA#0LDX#0INXCPX#NBNEMDIV#NSTAANSADDX,DM由轉(zhuǎn)移指令引起3.控制相關8.3WOEIFOCODIWOEIFODIFIFIDIFICOFIFOCODIFIWOEIFOCODIFIDIFOEIWOEIFOCOFIDICOWODIFICOFI指令1指令2指令3指令4指令5指令6指令7指令15指令161234567891011121314轉(zhuǎn)移損失t設指令3是轉(zhuǎn)移指令四、流水線性能1.吞吐率單位時間內(nèi)流水線所完成指令或輸出結果的數(shù)量8.3最大吞吐率實際吞吐率連續(xù)處理n條指令的吞吐率為設m

段的流水線各段時間為ΔtTpmax=Δ1tTp=m

·Δ

+(n-1)·

Δ

ntt2.加速比Sp

8.3

m

段的流水線的速度與等功能的非流水線的速度之比設流水線各段時間為Δt完成n條指令在m

段流水線上共需

T=m

·

+(n-1)·

ttΔΔ完成n條指令在等效的非流水線上共需

T

′=nm

·tΔSp

=

m

·+(n-1)·

nm·=nmm

+n-1

ΔtΔΔtt

則由于流水線有建立時間和排空時間因此各功能段的設備不可能

一直處于工作狀態(tài)

8.3流水線中各功能段的利用率3.效率

mΔt31245312453124531245………………………………n-1nn-1nn-1nn-1nT時間S空間空間S4S3S2S1(n-1)Δt8.3m(m

+n-1)Δt

=mnΔt

流水線各段處于工作時間的時空區(qū)流水線中各段總的時空區(qū)

效率=3.效率

mΔt31245312453124531245………………………………n-1nn-1nn-1nn-1nT時間S空間空間S4S3S2S1(n-1)Δt流水線中各功能段的利用率五、流水線的多發(fā)技術1.超標量技術每個時鐘周期內(nèi)可并發(fā)多條獨立指令

不能調(diào)整指令的執(zhí)行順序配置多個功能部件通過編譯優(yōu)化技術,把可并行執(zhí)行的指令搭配起來8.3IFIDEX

WR0123

45

678

910111213時鐘周期指令序列2.超流水線技術在一個時鐘周期內(nèi)再分段(3段)

不能調(diào)整指令的執(zhí)行順序在一個時鐘周期內(nèi)一個功能部件使用多次(3次)靠編譯程序解決優(yōu)化問題流水線速度是原來速度的3倍8.3IFIDEXWR0

1

2

345

67

8

9

10111213時鐘周期指令序列3.超長指令字技術采用多個處理部件具有多個操作碼字段的超長指令字(可達幾百位)由編譯程序挖掘出指令間潛在的并行性,將多條能并行操作的指令組合成一條8.3IFIDEXWR012345678910111213時鐘周期指令序列六、流水線結構1.指令流水線結構完成一條指令分7段,每段需一個時鐘周期若流水線不出現(xiàn)斷流1個時鐘周期出1結果不采用流水技術7個時鐘周期出1結果理想情況下,7級流水的速度是不采用流水技術的7倍地址形成部件指令譯碼部件取操作數(shù)部件取指令部件操作執(zhí)行部件回寫結果部件修改指令指針部件鎖存鎖存鎖存鎖存鎖存鎖存8.32.運算流水線完成浮點加減運算可分對階、尾數(shù)求和、規(guī)格化三段分段原則每段操作時間盡量一致鎖存器對階功能部件第一段尾數(shù)加部件鎖存器第二段規(guī)格化部件鎖存器第三段8.38.4中斷系統(tǒng)一、概述1.引起中斷的各種因素(1)人為設置的中斷(2)程序性事故如轉(zhuǎn)管指令溢出、操作碼不能識別、除法非法(5)外部事件(4)I/O設備(3)硬件故障用鍵盤中斷現(xiàn)行程序轉(zhuǎn)管指令……管理程序2.中斷系統(tǒng)需解決的問題(1)各中斷源如何向CPU提出請求?(2)各中斷源同時提出請求怎么辦?(5)如何尋找入口地址?(4)如何保護現(xiàn)場?(3)CPU什么條件、什么時間、以什么方式

響應中斷?(6)如何恢復現(xiàn)場,如何返回?(7)處理中斷的過程中又出現(xiàn)新的中斷怎么辦?硬件

+軟件8.4二、中斷請求標記和中斷判優(yōu)邏輯1.中斷請求標記INTR一個請求源

一個INTR

中斷請求標記觸發(fā)器多個INTR

組成中斷請求標記寄存器INTR

分散在各個中斷源的接口電路中INTR集中在CPU

的中斷系統(tǒng)內(nèi)12345n掉電過熱階上溢主存讀寫校驗錯非法除法鍵盤輸入打印機輸出8.42.中斷判優(yōu)邏輯①

分散在各個中斷源的接口電路中鏈式排隊器②集中在CPU

內(nèi)(1)硬件實現(xiàn)(排隊器)111&1

&1&參見第五章INTR1INTR2INTR3INTR4INTR1、

INTR2、

INTR3、

INTR4

優(yōu)先級按降序排列

INTP1INTP2INTP3INTP48.4A、B、C

優(yōu)先級按降序排列(2)軟件實現(xiàn)(程序查詢)否…是否A

請求?是否B

請求?是否C

請求?轉(zhuǎn)A

的服務程序入口地址轉(zhuǎn)B

的服務程序入口地址轉(zhuǎn)C

的服務程序入口地址是是是否否8.4三、中斷服務程序入口地址的尋找1.硬件向量法入口地址200入口地址300入口地址40012H13H14H主存12H13H14HJMP200JMP300JMP400主存向量地址形成部件……中斷向量排隊器輸出向量地址12H、13H、14H入口地址200、300、4008.42.軟件查詢法

M

JMP1#SR1#D=1轉(zhuǎn)1#服務程序

SKPDZ2#

JMP2#SR2#D=0跳2#D=1轉(zhuǎn)2#服務程序

SKPDZ8#

JMP8#SR8#D=0跳8#D=1轉(zhuǎn)8#服務程序八個中斷源1,2,8按降序排列……8.4

SKPDZ1#1#D=0跳(D為完成觸發(fā)器)中斷識別程序(入口地址M)地址說明指令四、中斷響應1.響應中斷的條件允許中斷觸發(fā)器EINT=12.響應中斷的時間指令執(zhí)行周期結束時刻由CPU發(fā)查詢信號

CPU中斷查詢INTR1DQINTR2DQINTRnDQ中斷源1中斷源2中斷源n…至排隊器8.43.中斷隱指令(1)保護程序斷點(2)尋找服務程序入口地址(3)硬件關中斷向量地址形成部件INTSQREINTSQRPC

1&≥1排隊器……斷點存于特定地址(0號地址)內(nèi)斷點進棧INT中斷標記EINT允許中斷R–S

觸發(fā)器8.4向量地址PC(硬件向量法)中斷識別程序入口地址MPC(軟件查詢法)五、保護現(xiàn)場和恢復現(xiàn)場1.保護現(xiàn)場2.恢復現(xiàn)場寄存器內(nèi)容斷點保護現(xiàn)場其它服務程序恢復現(xiàn)場中斷返回PUSH視不同請求源而定POP中斷服務程序完成中斷服務程序中斷隱指令完成中斷服務程序完成8.4IRET1.多重中斷的概念klmk

+1l

+1m

+1第一次中斷第二次中斷第三次中斷程序斷點k+1,l+1,m+1六、中斷屏蔽技術8.42.實現(xiàn)多重中斷的條件B、CA中斷請求主程序(2)優(yōu)先級別高的中斷源有權中斷優(yōu)先級別低的中斷源(1)提前設置開中斷指令ABCD中斷服務程序(A、B、C、D優(yōu)先級按降序排列)D8.4

&3.屏蔽技術(1)屏蔽觸發(fā)器的作用MASK=0(未屏蔽)INTR能被置“1”

&

&

&

&

1

1

1

1INTP1INTP2INTP3INTP4INTR1INTR2INTR3INTR4MASK1MASK2MASK3MASK4DQ1DINTR

MASKQCPU查詢MASKi

=1(屏蔽)INTPi

=0(不能被排隊選中)8.4(2)屏蔽字8.4

優(yōu)先級屏蔽字111111111111111101111111111111110011111111111111000111111111111100001111111111110000011111111111…000000000000001100000000000000011234561516…16個中斷源1,2,3,

16按降序排列…(3)屏蔽技術可改變處理優(yōu)先等級響應優(yōu)先級響應優(yōu)先級A→B→C→D

降序排列

8.4不可改變處理優(yōu)先級可改變(通過重新設置屏蔽字)中斷源原屏蔽字新屏蔽字ABCD11110111001100011111010001100111處理優(yōu)先級A→D→C→B降序排列(3)屏蔽技術可改變處理優(yōu)先等級8.4服務程序B處理完C處理完D處理完A處理完t主程序A程序B程序C程序D程序A、B、C、D同時請求中斷CPU執(zhí)行程序軌跡(原屏蔽字)(3)屏蔽技術可改變處理優(yōu)先等級(4)屏蔽技術的其他作用8.4便于程序控制可以人為地屏蔽某個中斷源的請求服務程序D處理完C處理完B處理完A處理完t主程序A程序B程序C程序D程序A、B、C、D同時請求中斷CPU執(zhí)行程序軌跡(新屏蔽字)8.4(5)新屏蔽字的設置保護現(xiàn)場置屏蔽字開中斷中斷服務關中斷恢復現(xiàn)場恢復屏蔽字開中斷中斷返回置屏蔽字恢復屏蔽字關中斷開中斷(1)斷點進棧(2)斷點存入“0”地址中斷隱指令完成中斷周期命令存儲器寫0MARPCMDR(MDR)存入存儲器三次中斷,三個斷點都存入“0”地址4.多重中斷的斷點保護斷點MDR?如何保證斷點不丟失?中斷隱指令完成8.4(3)程序斷點存入“0”地址的斷點保護××××05JMPSERVE××××SAVE××××RETURNSTASAVE…0地址內(nèi)容轉(zhuǎn)存其他服務內(nèi)容SERVELDASAVEJMP@RETURN存程序斷點5為向量地址…保護現(xiàn)場恢復現(xiàn)場間址返回存放ACC內(nèi)容轉(zhuǎn)存0地址內(nèi)容開中斷ENILDA0STARETURN置屏蔽字8.4地址內(nèi)容說明第9章控制單元的功能9.1操作命令的分析9.2控制單元的功能9.1操作命令的分析完成一條指令分4個工作周期取指周期間址周期執(zhí)行周期中斷周期一、取指周期PCMAR地址線1RM(MAR)MDRMDRIR(PC)+1PC+1MDRCUMAR

PC

IR存儲器CPU地址總線數(shù)據(jù)總線控制總線9.1操作命令的分析OP(IR)CU二、間址周期M(MAR)MDR1RAd(IR)MARMDRAd(IR)指令形式地址MAR9.1MDRCUMARCPU地址總線數(shù)據(jù)總線控制總線IR存儲器三、執(zhí)行周期1.非訪存指令(1)CLA

清A(2)COM

取反(4)CSL

循環(huán)左移(3)SHR

算術右移(5)STP

停機指令0ACCACCACCL(ACC)R(ACC),ACC0ACC0R(ACC)L(ACC),ACC0ACCn0G9.12.訪存指令Ad(IR)MAR1RM(MAR)MDR(ACC)+(MDR)ACCAd(IR)

MAR1WACCMDRMDRM(MAR)STAXADDX(2)存數(shù)指令(1)加法指令9.1(3)取數(shù)指令Ad(IR)

MAR1RM(MAR)

MDRMDRACC3.轉(zhuǎn)移指令(1)無條件轉(zhuǎn)(2)條件轉(zhuǎn)移Ad(IR)

PCA0?Ad(IR)+A0(PC)PCLDAXJMPXBANX(負則轉(zhuǎn))9.14.三類指令的指令周期取指周期執(zhí)行周期取指周期執(zhí)行周期取指周期執(zhí)行周期取指周期間址周期執(zhí)行周期非訪存指令周期直接訪存指令周期間接訪存指令周期轉(zhuǎn)移指令周期9.1取指周期間址周期執(zhí)行周期間接轉(zhuǎn)移指令周期四、中斷周期程序斷點存入“0”地址程序斷點進棧0

MAR1WPCMDRMDRM(MAR)向量地址PC0EINT(置“0”)0EINT(置“0”)向量地址PCMDRM(MAR)PCMDR1W中斷識別程序入口地址MPC9.1(SP)1

MAR9.2控制單元的功能一、控制單元的外特性指令寄存器控制單元

CU…時鐘標志CPU內(nèi)部的控制信號到系統(tǒng)總線的控制信號來自系統(tǒng)總線的控制信號系統(tǒng)總線1.輸入信號(1)時鐘(2)指令寄存器(4)外來信號(3)標志CU受時鐘控制控制信號與操作碼有關OP(IR)CUCU受標志控制INTR中斷請求HRQ總線請求一個時鐘脈沖發(fā)一個操作命令或一組需同時執(zhí)行的操作命令如9.22.輸出信號(1)CPU內(nèi)的各種控制信號(2)送至控制總線的信號Ri

Rj(PC)+1PCINTAHLDA訪存控制信號訪IO/

存儲器的控制信號讀命令寫命令中斷響應信號總線響應信號MREQIO/MRDWRALU+、-、與、或……9.2二、控制信號舉例PCIRACCU時鐘ALU………控制信號標志控制信號C0C1C2C3C4取指周期以ADD@X為例PCIRCU9.21.不采用CPU內(nèi)部總線的方式PCPCPC

MDR

MAR

MDR

MARPCIRACCU時鐘ALU………控制信號標志控制信號

MDR

MAR二、控制信號舉例1.不采用CPU內(nèi)部總線的方式C1C2C3C5ADD@X間址周期IR9.2

MDR

MDR

MARPCIRACCU時鐘ALU………控制信號標志控制信號

MDR

MAR二、控制信號舉例1.不采用CPU內(nèi)部總線的方式C1C2C5ADD@X執(zhí)行周期C7C6C8ACALU…控制信號9.2

MDR

MAR

MDRMDRMDRCU(1)ADD@X取指周期

PC

CU

發(fā)讀命令1R

MDROP(IR)(PC)+1PCIRPCMARAC

YALUZ…控制信號IRiIRiPCOPCOMARiMARiMDROMDRO…數(shù)據(jù)線數(shù)據(jù)線控制信號CPU

內(nèi)部總線時鐘2.采用CPU內(nèi)部總線方式地址線地址線MARMDRIRCU9.2IRPCPCMDRMARCUIRPCPCCU(2)ADD@X間址周期

MDR1R

MDR有效地址

Ad(IR)MDROMDRO數(shù)據(jù)線數(shù)據(jù)線時鐘CUIRPCMARMDRACYALUZ…控制信號…控制信號CPU

內(nèi)部總線MDRIRMARi

MARi地址線地址線MARIRiIRiMARMDRIRMDRMDRMDROMDROMDROMDROMDRO形式地址MAR

9.2CU時鐘CUIRPCMARMDRACYALUZ…控制信號CPU

內(nèi)部總線MDROMDRO(3)ADD@X執(zhí)行周期1R

MDR

Z

AC(AC)+(Y)

MDR控制信號…MARMDR地址線地址線數(shù)據(jù)線數(shù)據(jù)線MARMDRYMDRMDRMDROMDROMDROMDROMDROMDROMDROYiYi

YALUACACOACOALUiALUiALUALUACZZZZOZOACiACiACACACACMARi

MARiALUAC9.2CU三、多級時序系統(tǒng)1.機器周期(1)機器周期的概念(2)確定機器周期需考慮的因素(3)基準時間的確定所有指令執(zhí)行過程中的一個基準時間每條指令的執(zhí)行步驟每一步驟所需的時間以完成最復雜指令功能的時間為準以訪問一次存儲器的時間為基準若指令字長=存儲字長取指周期

=

機器周期9.22.時鐘周期(節(jié)拍、狀態(tài))

一個機器周期內(nèi)可完成若干個微操作每個微操作需一定的時間時鐘周期是控制計算機操作的最小單位時間將一個機器周期分成若干個時間相等的時間段(節(jié)拍、狀態(tài)、時鐘周期)9.2用時鐘周期控制產(chǎn)生一個或幾個微操作命令CLKT0T1T2T3時鐘周期2.時鐘周期(節(jié)拍、狀態(tài))

機器周期機器周期T0T1T2T3T0T1T2T39.23.多級時序系統(tǒng)機器周期、節(jié)拍(狀態(tài))組成多級時序系統(tǒng)一個指令周期包含若干個機器周期一個機器周期包含若干個時鐘周期CLK機器周期機器周期機器周期

(取指令)(取有效地址)(執(zhí)行指令)指令周期T0T1T2T3T0T1T2T3T0T1T2T3機器周期機器周期(取指令)(執(zhí)行指令)指令周期T0T1T2T3T0T1T2節(jié)拍(狀態(tài))節(jié)拍(狀態(tài))9.24.機器速度與機器主頻的關系機器的主頻f越快機器的速度也越快在機器周期所含時鐘周期數(shù)相同的前提下,兩機平均指令執(zhí)行速度之比等于兩機主頻之比機器速度不僅與主頻有關,還與機器周期中所含時鐘周期(主頻的倒數(shù))數(shù)以及指令周期中所含的機器周期數(shù)有關9.2MIPS1MIPS2=f1f2四、控制方式產(chǎn)生不同微操作命令序列所用的時序控制方式1.同步控制方式任一微操作均由統(tǒng)一基準時標的時序信號控制CLK機器周期機器周期機器周期(取指令)(取有效地址)(執(zhí)行指令)指令周期T0T1T2T3T0T1T2T3T0T1T2T3(1)采用定長的機器周期以最長的微操作序列和最繁的微操作作為標準9.2機器周期內(nèi)節(jié)拍數(shù)相同(2)采用不定長的機器周期機器周期機器周期(取指令)(執(zhí)行指令)指令周期T0T1T2T3T0T1T2節(jié)拍(狀態(tài))機器周期機器周期(取指令)(執(zhí)行指令)T0T1T2T3T0T1T2T3TT延長9.2機器周期內(nèi)節(jié)拍數(shù)不等(3)采用中央控制和局部控制相結合的方法T0T1T2T3T0T1T2中央控制節(jié)拍

T3T0T1中央控制節(jié)拍機器周期執(zhí)行周期指令周期取指周期T0T1T2T39.2局部控制的節(jié)拍寬度與中央控制的節(jié)拍寬度一致T*T*T*局部控制節(jié)拍…2.異步控制方式無基準時標信號無固定的周期節(jié)拍和嚴格的時鐘同步采用應答方式3.聯(lián)合控制方式4.人工控制方式(1)Reset(2)連續(xù)和單條指令執(zhí)行轉(zhuǎn)換開關(3)符合停機開關同步與異步相結合9.2五、多級時序系統(tǒng)實例分析1.8085的組成9.2A15~A8中斷控制AC(8)TR(8)FR(5)IR(8)IDAL(16)PC(16)SP(16)L(8)H(8)E(8)D(8)C(8)B(8)

指令譯碼和機器周期編碼ALU定時和控制時鐘控制狀態(tài)DMA復位ABR(8)ADBR(8)8位內(nèi)部數(shù)據(jù)總線I/O控制INTAINTRSIDSODCLKReadyRDWRALEIO/MHLDAResetoutAD7~AD02.8085的外部引腳(1)地址和數(shù)據(jù)信號(2)定時和控制信號(3)存儲器和I/O初始化A15~A8

AD7~AD0SIDSOD入X1X2入HOLDReady出

HLDA出CLK

ALES0S1

IO/M

RD

WR12345678910111213141516171819204039383736353433323130292827262524232221X1X2ResetoutSODSIDTrapRST7.5RST6.5RST5.5INTAAD0AD1AD2AD3AD4AD5AD6AD7VSSINTRVCCHOLDHLDACLK(out)RsestinReadyIO/MS1RDWRALES0A15A14A13A12A11A10A9A89.2(4)與中斷有關的信號(5)CPU初始化(6)電源和地出INTATrap重新啟動中斷入INTR入Resetin出ResetoutVCC+5VVSS

地12345678910111213141516171819204039383736353433323130292827262524232221X1X2ResetoutSODSIDTrapRST7.5RST6.5RST5.5INTAAD0AD1AD2AD3AD4AD5AD6AD7VSSINTRVCCHOLDHLDACLK(out)RsestinReadyIO/MS1RDWRALES0A15A14A13A12A11A10A9A89.23.機器周期和節(jié)拍(狀態(tài))與控制信號的關系9.2T1T2T3T4T1T2T3T1T2T3M1M2M3PCoutPC+1InsIRXPCoutPC+1ByZZoutAPortIOPORTACCbytePCLInstrPCLPCHPCHIOPORT3MHZCLKA15~A8AD7~AD0ALERDWRIO/M小結每個控制信號在指定機器周期的指定節(jié)拍T

時刻發(fā)出機器周期M1

取指令操作碼機器周期M2

取設備地址機器周期M3

執(zhí)行ACC的內(nèi)容寫入設備以一條輸出指令(I/O寫)為例9.2第10章控制單元的設計10.1組合邏輯設計10.2微程序設計10.1組合邏輯設計一、組合邏輯控制單元框圖1.CU

外特性IR節(jié)拍發(fā)生器CUT0T1Tn…CLK(機器主頻)…標志012n-1…C0C1Cn操作碼譯碼n

位操作碼

2.節(jié)拍信號CLKT0T1T2T3時鐘周期機器周期機器周期T0T1T2T3T0T1T2T310.1

二、微操作的節(jié)拍安排采用

同步控制方式CPU

內(nèi)部結構采用非總線方式一個

機器周期

內(nèi)有

3

個節(jié)拍(時鐘周期)10.1PCIRACCU時鐘ALU………C1C2C5C9C0C10C3C7C4C6C12C11C8控制信號標志控制信號

MDR

MAR

1.安排微操作時序的原則原則一微操作的先后順序不得隨意更改原則二被控對象不同的微操作盡量安排在一個節(jié)拍內(nèi)完成原則三占用時間較短的微操作盡量安排在一個節(jié)拍內(nèi)完成并允許有先后順序10.12.取指周期微操作的節(jié)拍安排PCMARM(MAR)MDRMDRIR(PC)+1PC原則二原則二原則三3.間址周期微操作的節(jié)拍安排M(MAR)MDRMDRAd(IR)T0T1T2T0T1T21ROP(IR)IDAd(IR)

溫馨提示

  • 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

提交評論