第3章處理器2_第1頁
第3章處理器2_第2頁
第3章處理器2_第3頁
第3章處理器2_第4頁
第3章處理器2_第5頁
已閱讀5頁,還剩99頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、3. 1 處理器的指令集處理器的指令集 3. 2 處理器的基本組成與工作過程處理器的基本組成與工作過程 3. 3 從從CISC到到RISC3. 4 Intel 80 x86系列微處理器系列微處理器 2022-6-63.1 處理器的指令集處理器的指令集3.1.1 概述概述(機器)指令(機器)指令:機器能夠識別并執行的命令:機器能夠識別并執行的命令指令集指令集:一臺計算機中所有機器指令的集合,通:一臺計算機中所有機器指令的集合,通常也叫做指令系統(狹義)。常也叫做指令系統(狹義)。 指令字指令字:代表指令的一組二進制代碼信息:代表指令的一組二進制代碼信息指令字長指令字長:指令字中二進制代碼的位數:

2、指令字中二進制代碼的位數 指令系統是表征一臺計算機性能的重要因素,其指令系統是表征一臺計算機性能的重要因素,其格式和功能不僅直接影響到機器的硬件結構,也直接格式和功能不僅直接影響到機器的硬件結構,也直接影響到系統軟件,影響到機器的應用范圍。影響到系統軟件,影響到機器的應用范圍。 指令系統(廣義)指令系統(廣義)主要包括數據表示、指令集和主要包括數據表示、指令集和尋址方式三方面的內容。尋址方式三方面的內容。規整性:規整性:指令與運算規則統一指令與運算規則統一兼容性:兼容性:“向上兼容向上兼容”完備性:完備性:指令齊全、編程方便指令齊全、編程方便高效性:高效性:占內存少,運行速度快占內存少,運行速

3、度快一個完善的指令系統應滿足以下四方面的要求:一個完善的指令系統應滿足以下四方面的要求:對于一個計算機系統來講:對于一個計算機系統來講:1)指令是程序設計的最小單位)指令是程序設計的最小單位2)指令是硬件設計的依據)指令是硬件設計的依據3)指令是軟件和硬件的接口)指令是軟件和硬件的接口 匯編語言是基于英文的機器指令助記符。匯編語言是基于英文的機器指令助記符。 按匯編語言書寫的程序叫做按匯編語言書寫的程序叫做匯編語言源程序匯編語言源程序,匯,匯編語言源程序由匯編程序編語言源程序由匯編程序(Assembler)轉換成機器指轉換成機器指令,供計算機接受并執行。令,供計算機接受并執行。 匯編語言的提出

4、是計算機技術的一大進步,體現匯編語言的提出是計算機技術的一大進步,體現了計算思維的一個重要概念了計算思維的一個重要概念抽象抽象。 計算機程序設計語言的發展過程就是計算機程序設計語言的發展過程就是 不斷抽象不斷抽象的過程。通過抽象,程序設計語言具有了更好的可編的過程。通過抽象,程序設計語言具有了更好的可編程性、可移植性、可重用性。程性、可移植性、可重用性。匯編語言:匯編語言:一、指令的一般格式一、指令的一般格式 操作碼字段操作碼字段 地址碼字段地址碼字段1. 操作碼操作碼反映機器做什么操作反映機器做什么操作 (1) 固定長度操作碼固定長度操作碼(2)可變可變長度操作碼長度操作碼硬件設計簡單硬件設

5、計簡單指令譯碼時間短指令譯碼時間短操作碼分散在指令字的不同字段中操作碼分散在指令字的不同字段中硬件設計相對復雜硬件設計相對復雜 指令譯碼時間長指令譯碼時間長3.1.2 指令的操作碼與操作數指令的操作碼與操作數2. 地址碼地址碼 用來指出操作數的地址用來指出操作數的地址 源操作數的地址源操作數的地址結果(目的操作數)的地址結果(目的操作數)的地址下一條指令的地址下一條指令的地址 這些地址可以是這些地址可以是CPU內部寄存器的地址,主存內部寄存器的地址,主存的地址和的地址和IO設備地址設備地址 按照操作數地址的數目可以把指令分為四地址指按照操作數地址的數目可以把指令分為四地址指令、三地址指令、二地

6、址指令、一地址指令和零地令、三地址指令、二地址指令、一地址指令和零地址指令。址指令。(1) 四地址四地址 (2) 三地址三地址OP A1 A2 A3 A48 6 6 6 6A1 第一操作數地址第一操作數地址A2 第二操作數地址第二操作數地址A3 結果的地址結果的地址A4 下一條指令地址下一條指令地址若若 PC 代替代替 A4(A1) OP (A2) A38 8 8 8 OP A1 A2 A3(A1) OP (A2) A34 次訪存次訪存4 次訪存次訪存尋址范圍尋址范圍 26 = 64尋址范圍尋址范圍 28 = 256若若 A3 用用 A1 或或 A2 代替代替設指令字長為設指令字長為 32 位

7、位操作碼固定為操作碼固定為 8 位位(3) 二地址二地址OP A1 A28 12 12(A1) OP (A2) A1(A1) OP (A2) A2或或4 次訪存次訪存若若ACC 代替代替 A1(或(或A2)若結果存于若結果存于 ACC (4) 一地址一地址 (5) 零地址零地址OP A18 24無地址碼無地址碼 NOP, HLT , IRET等等(ACC) OP (A1) ACC2 次訪存次訪存尋址范圍尋址范圍 212 = 4 K尋址范圍尋址范圍 224 = 16 M 3次訪存次訪存二、指令字二、指令字 長長指令字長決定于指令字長決定于操作碼的長度操作碼的長度指令字長指令字長 = 機器字長機器

8、字長= 存儲字長存儲字長 2. 指令字長指令字長 可變可變操作數地址的長度操作數地址的長度操作數地址的個數操作數地址的個數1. 指令字長指令字長 固定固定按字節的倍數變化按字節的倍數變化小小 結結 當用一些硬件資源代替指令字中的地址碼字段后當用一些硬件資源代替指令字中的地址碼字段后 當指令的地址字段為寄存器時當指令的地址字段為寄存器時 可擴大指令的尋址范圍可擴大指令的尋址范圍 可縮短指令字長可縮短指令字長 可減少訪存次數可減少訪存次數 三地址三地址 OP R1, R2, R3 二地址二地址 OP R1, R2 一地址一地址 OP R1 指令執行階段不訪存指令執行階段不訪存 可縮短指令字長可縮短

9、指令字長3.1.3 尋址方式尋址方式尋址方式尋址方式 確定確定 本條指令本條指令 的的 操作數地址操作數地址下一條下一條 欲執行欲執行 指令指令 的的 指令地址指令地址指令尋址指令尋址數據尋址數據尋址尋址方式尋址方式一、指令尋址一、指令尋址順序順序( PC ) + 1 PC跳躍跳躍由轉移指令指出由轉移指令指出LDA 1000ADD 1001DEC 1200JMP 7LDA 2000SUB 2001INCSTA 2500LDA 1100.0123456789PC+1指令地址尋址方式指令地址尋址方式指令地址指令地址指令指令順序尋址順序尋址1順序尋址順序尋址2順序尋址順序尋址3跳躍尋址跳躍尋址7順序

10、尋址順序尋址8二、數據尋址二、數據尋址 形式地址形式地址 指令字中的地址指令字中的地址 有效地址有效地址 操作數的真實地址操作數的真實地址 約定約定 指令字長指令字長 = 存儲字長存儲字長 = 機器字長機器字長1. 立即數尋址立即數尋址 指令執行階段不訪存指令執行階段不訪存 A 的位數限制了立即數的范圍的位數限制了立即數的范圍形式地址形式地址 A操作碼操作碼尋址特征尋址特征 OP # A立即尋址特征立即尋址特征立即數立即數 可正可負可正可負 補碼補碼形式地址形式地址 A 就是操作數就是操作數A AEAEA2. 直接尋址直接尋址EA = A操作數操作數主存主存尋址特征尋址特征O PAAACC 執

11、行階段訪問一次存儲器執行階段訪問一次存儲器 A 的位數決定了該指令操作數的尋址范圍的位數決定了該指令操作數的尋址范圍 操作數的地址不易修改(必須修改操作數的地址不易修改(必須修改A)有效地址由形式地址直接給出有效地址由形式地址直接給出3. 隱含尋址隱含尋址操作數地址隱含在操作碼中操作數地址隱含在操作碼中ADDA操作數操作數主存主存尋址特征尋址特征AACC暫存暫存ALU另一個操作數另一個操作數隱含在隱含在 ACC 中中如如 8086MUL 指令指令被乘數隱含在被乘數隱含在 AX(16位)或位)或 AL(8位)中位)中MOVS 指令指令源操作數的地址隱含在源操作數的地址隱含在 SI 中中目的操作數

12、的地址隱含在目的操作數的地址隱含在 DI 中中 指令字中少了一個地址字段,可縮短指令字長指令字中少了一個地址字段,可縮短指令字長4. 間接尋址間接尋址EA =(A) 有效地址由形式地址間接提供有效地址由形式地址間接提供OPA尋址特征尋址特征AEA主存主存EAA1EA A1主存主存 EA10 執行指令階段執行指令階段 2 次訪存次訪存 可擴大尋址范圍可擴大尋址范圍 便于編制程序便于編制程序OPA尋址特征尋址特征A一次間址一次間址多次間址多次間址操作數操作數操作數操作數多次訪存多次訪存5. 寄存器尋址寄存器尋址EA = Ri 執行階段不訪存,只訪問寄存器,執行速度快執行階段不訪存,只訪問寄存器,執

13、行速度快OPRi尋址特征尋址特征 寄存器個數有限,可縮短指令字長寄存器個數有限,可縮短指令字長操作數操作數R0RiRn寄存器寄存器有效地址即為寄存器編號有效地址即為寄存器編號EA = ( Ri )6. 寄存器間接尋址寄存器間接尋址 有效地址在寄存器中,有效地址在寄存器中, 操作數在存儲器中,執行階段訪存操作數在存儲器中,執行階段訪存操作數操作數主存主存OPRi尋址特征尋址特征 便于編制循環程序便于編制循環程序地址地址R0RiRn寄存器寄存器有效地址在寄存器中有效地址在寄存器中7. 基址尋址基址尋址(1) 采用專用寄存器作基址寄存器采用專用寄存器作基址寄存器EA = ( BR ) + ABR 為

14、基址寄存器為基址寄存器OPA操作數操作數主存主存尋址特征尋址特征ALUBR 可擴大尋址范圍可擴大尋址范圍 BR 內容由操作系統或管理程序確定內容由操作系統或管理程序確定 在程序的執行過程中在程序的執行過程中 BR 內容不變,形式地址內容不變,形式地址 A 可變可變(2) 采用通用寄存器作基址寄存器采用通用寄存器作基址寄存器操作數操作數主存主存尋址特征尋址特征ALUOPR0AR0 作基址寄存器作基址寄存器 由用戶指定哪個通用寄存器作為基址寄存器由用戶指定哪個通用寄存器作為基址寄存器通用寄存器通用寄存器R0Rn-1R1 基址寄存器的內容由操作系統確定基址寄存器的內容由操作系統確定 在程序的執行過程

15、中在程序的執行過程中 R0 內容不變,形式地址內容不變,形式地址 A 可變可變8. 變址尋址變址尋址EA = ( IX ) +AOPA操作數操作數主存主存尋址特征尋址特征ALUIX 可擴大尋址范圍可擴大尋址范圍 便于處理數組問題便于處理數組問題 IX 的內容由用戶給定的內容由用戶給定 IX 為變址寄存器(專用)為變址寄存器(專用) 在程序的執行過程中在程序的執行過程中 IX 內容可變,形式地址內容可變,形式地址 A 不變不變通用寄存器也可以作為變址寄存器通用寄存器也可以作為變址寄存器例例 設數據塊首地址為設數據塊首地址為 D,求,求 N 個數的平均值個數的平均值直接尋址直接尋址變址尋址變址尋址

16、LDA DADD D + 1ADD D + 2ADD D + ( N -1 )DIV # NSTA ANSLDA # 0LDX # 0INXCPX # NBNE MDIV # NSTA ANS共共 N + 2 條指令條指令共共 8 條指令條指令ADD X, DMX 為變址寄存器為變址寄存器D 為形式地址為形式地址(X) 和和 #N 比較比較(X) +1 X結果不為零則轉結果不為零則轉9. 相對尋址相對尋址 EA = ( PC ) + AA 是相對于當前指令的位移量(可正可負,補碼)是相對于當前指令的位移量(可正可負,補碼) A 的位數決定操作數的尋址范圍的位數決定操作數的尋址范圍 程序浮動程序

17、浮動 廣泛用于轉移指令廣泛用于轉移指令操作數操作數尋址特征尋址特征ALUOPA相對距離相對距離 A1000PC主存主存1000AOP10. 堆棧尋址堆棧尋址 “堆棧堆棧(Stack)”是一個重要的數據結構,廣泛應是一個重要的數據結構,廣泛應用于子程序調用和中斷服務等領域。堆棧的存取原則是用于子程序調用和中斷服務等領域。堆棧的存取原則是后進先出后進先出(Last In First Out, LIFO)。對堆棧的操作都。對堆棧的操作都是針對棧頂單元進行的,有是針對棧頂單元進行的,有“壓入壓入(PUSH)”和和“彈出彈出(POP)”兩條指令。兩條指令。(1) 堆棧的特點堆棧的特點堆棧堆棧硬堆棧硬堆棧

18、軟堆棧軟堆棧多個寄存器多個寄存器指定的存儲空間指定的存儲空間 軟件堆棧一般在內存中開辟一個堆棧區,并在軟件堆棧一般在內存中開辟一個堆棧區,并在處理器中設置指示堆棧棧頂單元地址的處理器中設置指示堆棧棧頂單元地址的“堆棧指針堆棧指針寄存器寄存器(Stack Pointer, SP)”來管理這個堆棧。來管理這個堆棧。 相對于硬件堆棧,軟件堆棧有三個優點:相對于硬件堆棧,軟件堆棧有三個優點: 1.可以有較大的深度??梢杂休^大的深度。2.可以設置多個堆棧??梢栽O置多個堆棧。3.除了專門的堆棧指令除了專門的堆棧指令PUSH和和POP外,還可以使用外,還可以使用任何訪問主存的指令來訪問堆棧中的數據。任何訪問

19、主存的指令來訪問堆棧中的數據。先進后出(一個入出口)先進后出(一個入出口) 棧頂地址棧頂地址 由由 SP 指出指出 11FFFH +12000 H進棧進棧 (SP) 1 SP出棧出棧 (SP)+ 1 SP棧頂棧頂棧底棧底2000 HSP2000 H1FFF HSP1FFFH棧頂棧頂棧底棧底進棧進棧出棧出棧 1FFF H棧頂棧頂 2000 H棧頂棧頂(2) 堆棧尋址舉例堆棧尋址舉例15200HACCSPX棧頂棧頂200H棧底棧底主存主存151FFHACCSP15棧頂棧頂200H棧底棧底主存主存X1FFHPUSH A 前前PUSH A 后后POP A 前前POP A 后后Y1FFHACCSPX棧頂

20、棧頂200H棧底棧底主存主存151FFH15200HACCSP棧頂棧頂200H棧底棧底主存主存X15(3) SP 的修改與主存編址方法有關的修改與主存編址方法有關 按按 字字 編址編址進棧進棧出棧出棧(SP) 1 SP(SP)+ 1 SP 按按 字節字節 編址編址存儲字長存儲字長 16 位位進棧進棧出棧出棧(SP) 2 SP(SP)+ 2 SP存儲字長存儲字長 32 位位進棧進棧出棧出棧(SP) 4 SP(SP)+ 4 SP3.1.4 指令的基本功能指令的基本功能通用計算機系統的指令集可分為通用計算機系統的指令集可分為5類基本指令:類基本指令:(1)算術)算術/邏輯邏輯/移位指令(簡稱算邏指令

21、)移位指令(簡稱算邏指令)(2)數據傳送指令(簡稱數傳指令)數據傳送指令(簡稱數傳指令) (3)控制轉移指令)控制轉移指令(4)輸入)輸入/輸出指令輸出指令(5)處理器控制及調試指令)處理器控制及調試指令1. 算術算術/邏輯邏輯/移位指令(簡稱算邏指令)移位指令(簡稱算邏指令)n定點加法指令定點加法指令ADDn定點減法指令定點減法指令SUBn定點乘法指令定點乘法指令MULn定點除法指令定點除法指令DIVn加加1指令指令INCn減減1指令指令DECn比較指令比較指令CMPn浮點加法指令浮點加法指令ADDFn浮點減法指令浮點減法指令SUBFn浮點乘法指令浮點乘法指令MULFn浮點除法指令浮點除法指

22、令DIVFn“與與”運算指令運算指令ANDn“或或”運算指令運算指令ORn“非非”運算指令運算指令NOTn“ 異 或異 或 ” 運 算 指 令運 算 指 令XORn算術左移指令算術左移指令SALn算術右移指令算術右移指令SARn邏輯左移指令邏輯左移指令SHLn邏輯右移指令邏輯右移指令SHRn帶進位循環左移指令帶進位循環左移指令RCLn不帶進位循環左移指令不帶進位循環左移指令ROLn帶進位循環右移指令帶進位循環右移指令RCRn不帶進位循環右移指令不帶進位循環右移指令ROR2. 數據傳送指令數據傳送指令源源 目目 的的寄存寄存 器器寄存器寄存器 寄存器寄存器寄存器寄存器存儲器存儲器存儲器存儲器存儲

23、器存儲器存儲器存儲器MOVESTORELOADMOVEPUSHPOP例例 如如MOVEMOVE3. 控制轉移指令控制轉移指令(1) 無條件轉移無條件轉移 JMP(2) 條件轉移條件轉移結果為零轉結果為零轉 (Z = 1) JZ結果溢出轉結果溢出轉 (O = 1)JO跳過一條指令跳過一條指令 SKP(3) 調用和返回調用和返回CALL SUB1. .CALL SUB2.CALL SUB2RETURNRETURN.主程序主程序地址地址200021002101子程序子程序SUB1240025002501256025612700主存空間分配主存空間分配程序執行流程程序執行流程子程序子程序SUB2IN

24、AX, nOUT DX, ALOUT n, AXOUT DX, AX(4) 陷阱(陷阱(Trap)與陷阱指令)與陷阱指令意外事故的中斷意外事故的中斷 設置供用戶使用的陷阱指令設置供用戶使用的陷阱指令如如 8086 INT TYPE 軟中斷軟中斷提供給用戶使用的陷阱指令,完成系統調用提供給用戶使用的陷阱指令,完成系統調用4. 輸入輸出指令輸入輸出指令 一般不提供給用戶直接使用一般不提供給用戶直接使用 在出現事故時,由在出現事故時,由 CPU 自動產生并執行(隱指令)自動產生并執行(隱指令)IN AL, DXIN AX, DX入入 端口地址端口地址 CPU 的寄存器的寄存器出出 CPU 的寄存器的

25、寄存器 端口地址端口地址如如如如IN AL, nOUT n, AL3.1.4 指令的格式舉例指令的格式舉例一、設計指令格式時應考慮的各種因素一、設計指令格式時應考慮的各種因素1. 指令系統的指令系統的 兼容性兼容性 (向上兼容)(向上兼容)2. 其他因素其他因素操作類型操作類型數據類型數據類型指令格式指令格式包括指令個數及操作的難易程度包括指令個數及操作的難易程度指令字長是否固定指令字長是否固定尋址方式尋址方式寄存器個數寄存器個數地址碼位數、地址個數、尋址方式類型地址碼位數、地址個數、尋址方式類型操作碼位數、是否采用擴展操作碼技術,操作碼位數、是否采用擴展操作碼技術,確定哪些數據類型可參與操作

26、確定哪些數據類型可參與操作指令尋址、操作數尋址指令尋址、操作數尋址寄存器的多少直接影響指令的執行時間寄存器的多少直接影響指令的執行時間二、指令格式舉例二、指令格式舉例1. PDP 8指令字長固定指令字長固定 12 位位操作碼操作碼 間間 頁頁 地址碼地址碼訪存類指令訪存類指令0235411寄存器類指令寄存器類指令 1 1 1 輔助操作碼輔助操作碼02 311I/O 類指令類指令 1 1 0 設備設備 操作碼操作碼02 31198只有一個通用寄存器只有一個通用寄存器 ACC2. IBM 360OPR1R2 RR格式格式8 4 4OPR1XBD RX格式格式8 4 4 4 12OPR1R3BD R

27、S格式格式8 4 4 4 12OPBDI SI格式格式8 8 4 12OPB1D1LB2D2 SS格式格式8 8 4 12 4 12二地址二地址 R R基址加變址尋址基址加變址尋址二地址二地址 R M三地址三地址 R M基址尋址基址尋址二地址二地址 M M 基址尋址基址尋址基址尋址基址尋址立即數立即數 M3. Intel 8086(1) 指令字長指令字長(2) 地址格式地址格式1 6 個字節個字節MOV WORD PTR0204, 0138H 6 字節字節INC AX 1 字節字節一地址一地址NOP 1 字節字節CALL段內調用段內調用 3 字節字節零地址零地址 5 字節字節段間調用段間調用寄

28、存器寄存器 寄存器寄存器寄存器寄存器 立即數立即數寄存器寄存器 存儲器存儲器ADD AX,BX 2 字節字節ADD AX,3048H 4 字節字節ADD AX,3048H 3 字節字節二地址二地址CALL三三. 擴展操作碼技術擴展操作碼技術 操作碼的長度隨地址數的減少而增加;操作碼的長度隨地址數的減少而增加; 不同地址數的指令有不同長度的操作碼;不同地址數的指令有不同長度的操作碼; 有效縮短指令字長,有效縮短指令字長, 一種很重要的指令優化技術。一種很重要的指令優化技術。 擴展操作碼的設計原則:擴展操作碼的設計原則:(1)使用頻度使用頻度較高較高的指令占用的指令占用較短較短的操作碼的操作碼(2

29、)使用頻度使用頻度較低較低的指令占用的指令占用較長較長的操作碼的操作碼 有利于有利于CPU縮短對指令的譯碼時間,提高指令執行速度。縮短對指令的譯碼時間,提高指令執行速度。例例3.1:某指令系統字長為:某指令系統字長為16位,每個地址的長度為位,每個地址的長度為4位,試采位,試采用用“擴展操作碼技術擴展操作碼技術”設計設計61條指令,其中三地址指令條指令,其中三地址指令15條,條,二地址指令二地址指令15條,一地址指令條,一地址指令15條,零地址指令條,零地址指令16條。條。OP A1 A2 A3000000011110A1A1A1A2A2A2A3A3A3A2A2A2A3A3A311111111

30、1111000000011110111111111111111111111111111111111111000000011111111111111111111111111111A3A3A30000000111104 位操作碼位操作碼8 位操作碼位操作碼12 位操作碼位操作碼16 位操作碼位操作碼15條三地址指令條三地址指令15條二地址指令條二地址指令15條一地址指令條一地址指令16條零地址指令條零地址指令例例3.2 設指令字長為設指令字長為16位,操作數的地址碼為位,操作數的地址碼為6位,指令有零地址、一地址、位,指令有零地址、一地址、二地址三種格式。二地址三種格式。(1)設操作碼固定,若零地

31、址指令有)設操作碼固定,若零地址指令有P種,一地址指令有種,一地址指令有Q種,則二地址指種,則二地址指令最多有幾種?令最多有幾種?(2)采用擴展操作碼技術,若二地址指令有)采用擴展操作碼技術,若二地址指令有X種,零地址指令有種,零地址指令有Y種,則一種,則一地址指令最多有多少種?地址指令最多有多少種? 解:解:(1)因為操作碼固定,所以操作碼的位數為:)因為操作碼固定,所以操作碼的位數為:16-6-6=4。則。則4位操作碼最位操作碼最多可以有多可以有24=16種操作,所以二地址指令最多為:種操作,所以二地址指令最多為:16-P-Q種。種。(2)若采用擴展操作碼,根據要求可知二地址、一地址和零地

32、址的操作)若采用擴展操作碼,根據要求可知二地址、一地址和零地址的操作碼長度分別為碼長度分別為4、10和和16位。且二地址指令操作碼每減少一種,就最多可位。且二地址指令操作碼每減少一種,就最多可構成構成26種一地址指令操作碼;一地址指令操作碼每減少一種,就最多可構種一地址指令操作碼;一地址指令操作碼每減少一種,就最多可構成成26種零地址指令操作碼。種零地址指令操作碼。 由題知二地址指令有由題知二地址指令有X種,則一地址指令最多有(種,則一地址指令最多有(24-X)26種。設一地種。設一地址指令有址指令有M種,則零地址指令最多有種,則零地址指令最多有(24-X)26-M 26種。種。 由題意知零地

33、址指令有由題意知零地址指令有Y種,所以種,所以Y= (24-X)26-M 26 則一地址指令則一地址指令 M=(24-X)26-Y/26例3.3某機主存容量為某機主存容量為4M 16位,且存儲字長等于指令字長,位,且存儲字長等于指令字長,若該機指令系統可完成若該機指令系統可完成108種操作,操作碼位數固定,且具有直種操作,操作碼位數固定,且具有直接、間接、變址、基址、相對、立即等六種尋址方式,試回答:接、間接、變址、基址、相對、立即等六種尋址方式,試回答:(1)畫出一地址指令格式并指出各字段的作用;)畫出一地址指令格式并指出各字段的作用;(2)該指令直接尋址的最大范圍)該指令直接尋址的最大范圍

34、(3)一次間址和多次間址的尋址范圍)一次間址和多次間址的尋址范圍(4)立即數的范圍(十進制表示)立即數的范圍(十進制表示)(5)相對尋址的位移量(十進制表示)相對尋址的位移量(十進制表示)(6)上述六種尋址方式的指令哪一種執行時間最短?哪一種最長?)上述六種尋址方式的指令哪一種執行時間最短?哪一種最長? 為什么?哪一種便于程序浮動?哪一種最適合處理數組問題?為什么?哪一種便于程序浮動?哪一種最適合處理數組問題?(7)如何修改指令格式,使指令的直接尋址范圍可擴大到)如何修改指令格式,使指令的直接尋址范圍可擴大到4M?解:由題意可知:解:由題意可知: 1) 指令字長指令字長=存儲字長存儲字長=16

35、位位 2)要完成)要完成108種操作,且操作碼固定則操作碼位數至少為種操作,且操作碼固定則操作碼位數至少為7位位 3)6種尋址方式則尋址特征位至少要種尋址方式則尋址特征位至少要3位。位。(1)一地址指令格式)一地址指令格式尋址特征尋址特征OPA17位位6位位3位位(2)該指令直接尋址的最大范圍:)該指令直接尋址的最大范圍:26OPAAEAEA一次間址:一次間址:216操作數操作數(3)一次間址與多次間址的尋址范圍:)一次間址與多次間址的尋址范圍:A1EA A1 EA10A多次間址多次間址215操作數操作數(4)立即數的范圍)立即數的范圍尋址特征尋址特征OP立即數立即數7位位6位位3位位0 63

36、與采用的機器碼有關系與采用的機器碼有關系則立即數的范圍是則立即數的范圍是(有符號數)(有符號數) (無符號數)(無符號數)(5)相對尋址的位移量)相對尋址的位移量尋址特征尋址特征OPA7位位6位位3位位則相對尋址的位移量是:則相對尋址的位移量是:26(或寫成(或寫成32+31) 執行時間最短執行時間最短 執行時間最長執行時間最長 便于程序浮動便于程序浮動 便于處理數組問題便于處理數組問題變址尋址變址尋址相對尋址相對尋址(6)立即數尋址立即數尋址間接尋址間接尋址尋址特征尋址特征OPA17位位6位位3位位A2指令的地址字段長為指令的地址字段長為 166 22位,則指令的直接尋址位,則指令的直接尋址

37、范圍擴大到范圍擴大到222 4M.(7)將指令的格式改為雙字指令,格式如下:將指令的格式改為雙字指令,格式如下:例例3.4. 某機指令字長某機指令字長16位,存儲器直接尋址空間為位,存儲器直接尋址空間為128字,字,變址時的位移量為變址時的位移量為64+63,16個通用寄存器均可作為變址個通用寄存器均可作為變址寄存器。采用擴展操作碼技術,設計一套指令系統格式,滿寄存器。采用擴展操作碼技術,設計一套指令系統格式,滿足下列尋址類型的要求:足下列尋址類型的要求: (1)直接尋址的二地址指令)直接尋址的二地址指令3條;條; (2)變址尋址的一地址指令)變址尋址的一地址指令6條;條; (3)寄存器尋址的

38、二地址指令)寄存器尋址的二地址指令8條;條; (4)直接尋址的一地址指令)直接尋址的一地址指令12條;條; (5)零地址指令)零地址指令32條。條。 試問還有多少種代碼未用?若安排寄存器尋址的一地址指試問還有多少種代碼未用?若安排寄存器尋址的一地址指令,還能容納多少條?令,還能容納多少條?解:設指令字長等于機器字長,指令格式為:解:設指令字長等于機器字長,指令格式為:OP A1 A22 7 7(1)直接尋址的二地址指令)直接尋址的二地址指令3條條(2)變址尋址的一地址指令)變址尋址的一地址指令6條條OP IX A5 4 700 . 01 . 10 . 11 000 11 101 .(3)寄存器

39、尋址的二地址指令)寄存器尋址的二地址指令8條條OP Ri Rj8 4 4(4)直接尋址的一地址指令)直接尋址的一地址指令12條條OP A9 711110 000 .11110 111 . 0000 .11111 1011 .(5)零地址指令)零地址指令32條條OP11111 1100 0000000.11111 1100 0011111還有還有480種代碼未用,若安排寄存器尋址的一種代碼未用,若安排寄存器尋址的一地址指令,還能容納地址指令,還能容納30條這類指令。條這類指令。例例3.5.設相對尋址的轉移指令占設相對尋址的轉移指令占3個字節,第一個字個字節,第一個字節為操作碼,第二、三個字節為相

40、對位移量(補碼)。節為操作碼,第二、三個字節為相對位移量(補碼)。每當每當CPU從存儲器取一個字節時,自動完成從存儲器取一個字節時,自動完成(PC)+1PC。若若PC當前值當前值240(十進制)要求轉移到(十進制)要求轉移到290(十進(十進制),則轉移指令的二、三字節的機器代碼?制),則轉移指令的二、三字節的機器代碼?若若PC當前值當前值240(十進制)要求轉移到(十進制)要求轉移到200(十進(十進制),則轉移指令的二、三字節的機器代碼?制),則轉移指令的二、三字節的機器代碼?解:解:PC當前值當前值240,取出該指令后,取出該指令后PC值為值為243,相對位移量為相對位移量為290-24

41、3=47。47的補碼為的補碼為2FH。故轉。故轉移指令第二字節為移指令第二字節為2FH,第三個字節為,第三個字節為00H。PC當前值當前值240,取出該指令后,取出該指令后PC值為值為243,相對,相對位移量為位移量為200-243=43。43的補碼為的補碼為D5H。故轉。故轉移指令第二字節為移指令第二字節為D5H,第三個字節為,第三個字節為FFH。例例3.6.一條雙字長直接尋址的子程序調用一條雙字長直接尋址的子程序調用CALL指令,指令,其第一個字為操作碼和尋址特征,第二個字為地址碼其第一個字為操作碼和尋址特征,第二個字為地址碼5000H。假設。假設PC當前值為當前值為1000H,SP的內容

42、為的內容為0100H,棧頂內容為棧頂內容為 1234H,存儲器按字編址,而且進棧操,存儲器按字編址,而且進棧操作是先(作是先(SP)SP,后存入數據。試回答下列,后存入數據。試回答下列幾種情況下,幾種情況下,PC、SP及棧頂內容各為多少。及棧頂內容各為多少。CALL指令被讀取前;指令被讀取前;CALL指令被執行后;指令被執行后;子程序返回后。子程序返回后。解:解:PC=1000H,SP=0100H,棧頂內容棧頂內容1234H。PC=5000H,SP=0FFH,棧頂內容棧頂內容1002H。PC=1002H,SP=0100H,棧頂內容棧頂內容1234H。例例3.7. CPU內有內有32個個32位的

43、通用寄存器,設計一種能容納位的通用寄存器,設計一種能容納64種操作的指令系統。假設指令字長等于機器字長,試回答以下種操作的指令系統。假設指令字長等于機器字長,試回答以下問題。問題。 如果主存可直接或間接尋址,采用如果主存可直接或間接尋址,采用“寄存器寄存器存儲器存儲器”型指型指令,能直接尋址的最大存儲空間是多少?畫出指令格式并說明令,能直接尋址的最大存儲空間是多少?畫出指令格式并說明各字段的含義。各字段的含義。 在滿足在滿足的前提下,如果采用通用寄存器作基址寄存器的前提下,如果采用通用寄存器作基址寄存器,則上述則上述“寄存器寄存器存儲器存儲器”型指令的指令格式有何特點?畫出指型指令的指令格式有

44、何特點?畫出指令格式并指出這類指令可訪問多大的存儲空間?令格式并指出這類指令可訪問多大的存儲空間?解:解:采用采用RS型指令,指令格式如下:型指令,指令格式如下:指令格式變為:指令格式變為:其中,其中,X為為基址基址尋址特征位,尋址特征位,BRi處理器的組成與工作過程處理器的組成與工作過程一、概述一、概述 從外觀上看,處理器是矩形或正方形的塊狀物,通過密密麻從外觀上看,處理器是矩形或正方形的塊狀物,通過密密麻麻的管腳與主板相連。麻的管腳與主板相連。 實現處理器內部各個單元之間信號傳輸的線路稱為實現處理器內部各個單元之間信號傳輸的線路稱為片內總線片內總線,它又分為片內控制總線和片內數據總線。它又

45、分為片內控制總線和片內數據總線。 用于實現處理器與主存儲器和輸入用于實現處理器與主存儲器和輸入/輸出設備之間信號傳輸輸出設備之間信號傳輸的線路稱為的線路稱為片外總線片外總線,簡稱總線。,簡稱總線。 電源電源VCC和地和地GND數據總線引腳(數據總線引腳(DB)地址總線引腳(地址總線引腳(AB)控制總線引腳(控制總線引腳(CB)處理器的引腳處理器的引腳3.2.1處理器的基本功能與邏輯構成處理器的基本功能與邏輯構成二、處理器的基本功能二、處理器的基本功能 處理器的工作就是周而復始地執行指令,它的處理器的工作就是周而復始地執行指令,它的基本功能包括:基本功能包括:(2)分析指令)分析指令 根據根據P

46、C給出的主存地址訪問主存儲器,取給出的主存地址訪問主存儲器,取出指令送入處理器內部的出指令送入處理器內部的 IR,然后,然后PC加加1。(1)取指令)取指令(4)處理數據)處理數據(5)寫回結果)寫回結果(3)取數據)取數據 將將IR中的操作碼送中的操作碼送ID進行譯碼;進行譯碼; 分析參與這次操作的操作數地址分析參與這次操作的操作數地址 根據源操作數的地址訪問主存,取出根據源操作數的地址訪問主存,取出 操作數,送入操作數,送入CPU。將源操作數送入運算器根據指令譯碼結果將源操作數送入運算器根據指令譯碼結果啟動運算器的相應操作對數據進行處理。啟動運算器的相應操作對數據進行處理。三三、處理器的邏

47、輯構成處理器的邏輯構成控制單元控制單元CU算術邏輯單元算術邏輯單元ALU寄存器組寄存器組CU是是PU的指揮機構的指揮機構程序計數器程序計數器PC、存放當前指令的指令寄存器存放當前指令的指令寄存器IR、 解釋指令的指令譯碼器解釋指令的指令譯碼器ID、 發出各種命令信號的發出各種命令信號的控制信號發生器控制信號發生器 CSG及相應的控制邏輯組成。及相應的控制邏輯組成。計算機的運算裝置計算機的運算裝置一個基本的一個基本的ALU由由 加法器、邏輯運算器、移位加法器、邏輯運算器、移位器器(Shifter)和和求補器求補器(Complementer) 組成。組成。寄存器分為數據寄存器、地址寄存器和標志寄存

48、器等寄存器分為數據寄存器、地址寄存器和標志寄存器等中斷單元中斷單元CPU內部結構框圖內部結構框圖一、一、 指令周期的基本概念指令周期的基本概念1 . 指令周期指令周期取出并執行一條指令所需的全部時間取出并執行一條指令所需的全部時間完成一條指令完成一條指令執行執行取指、分析取指、分析取指階段取指階段取指周期取指周期執行階段執行階段執行周期執行周期(取指、分析)(取指、分析)(執行指令)(執行指令)指令周期指令周期取指周期取指周期執行周期執行周期3.2.2 計算機的工作過程計算機的工作過程2. 每條指令的指令周期不同每條指令的指令周期不同取指周期取指周期指令周期指令周期取指周期取指周期 執行階段執

49、行階段指令周期指令周期取指周期取指周期執行周期執行周期指令周期指令周期NOPADD mem MUL mem3. 具有間接尋址的指令周期具有間接尋址的指令周期4. 帶有中斷周期的指令周期帶有中斷周期的指令周期取指周期取指周期間址周期間址周期指令周期指令周期執行周期執行周期取指周期取指周期間址周期間址周期指令周期指令周期執行周期執行周期中斷周期中斷周期5. 指令周期流程指令周期流程取指周期取指周期執行周期執行周期有間址嗎?有間址嗎?有中斷嗎?有中斷嗎?間址周期間址周期中斷周期中斷周期是是是是否否否否1. 取指周期數據流取指周期數據流二、二、 指令周期的數據流指令周期的數據流MDRCUMARPCIR

50、存儲器存儲器CPU地址總線地址總線數據總線數據總線控制總線控制總線IR+1 2. 間址周期數據流間址周期數據流MDRCUMARCPU地址總線地址總線數據總線數據總線控制總線控制總線PCIR存儲器存儲器MDR3. 執行周期數據流執行周期數據流4 . 中斷周期數據流中斷周期數據流不同指令的執行周期數據流不同不同指令的執行周期數據流不同MDRCUMARCPU地址總線地址總線數據總線數據總線控制總線控制總線PC存儲器存儲器3.2.3 指令處理的流水線技術指令處理的流水線技術 一、系統的并行性一、系統的并行性時間上互相重疊時間上互相重疊2. 并行性的等級并行性的等級指令級(指令之間)指令級(指令之間)過

51、程級(程序、進程)過程級(程序、進程)兩個或兩個以上事件在兩個或兩個以上事件在 同一時刻同一時刻 發生發生兩個或兩個以上事件在兩個或兩個以上事件在 同一時間段同一時間段 發生發生并行并行1. 并行的概念并行的概念粗粒度粗粒度軟件實現軟件實現細粒度細粒度硬件實現硬件實現并發并發同時同時取指令取指令 3執行指令執行指令 3二、指令流水原理二、指令流水原理2. 指令的二級流水指令的二級流水1. 指令的串行執行指令的串行執行取指令取指令 取指令部件取指令部件 完成完成總有一個部件總有一個部件 空閑空閑指令預取指令預取若若 取指取指 和和 執行執行 階段時間上階段時間上 完全重疊完全重疊指令周期指令周期

52、 減半減半 速度提高速度提高 1 倍倍執行指令執行指令 執行指令部件執行指令部件 完成完成取指令取指令 1執行執行指令指令 1取取指令指令 2執行執行指令指令 2取取指令指令 3執行指令執行指令 3取指令取指令 2執行指令執行指令 2取指令取指令 1執行指令執行指令 1 必須等必須等 上條上條 指令執行結束,才能確定指令執行結束,才能確定 下條下條 指令的地址指令的地址 造成時間損失造成時間損失3. 影響指令流水效率加倍的因素影響指令流水效率加倍的因素(1) 執行時間執行時間 取指時間取指時間 (2) 條件轉移指令條件轉移指令 對指令流水的影響對指令流水的影響 取指令取指令部件部件指令部件指令

53、部件緩沖區緩沖區執行指令執行指令部件部件猜測法猜測法4. 指令的六級流水指令的六級流水六級流水六級流水14 個時間單位個時間單位串行執行串行執行6 9 54 時間單位時間單位完成完成 一條指令一條指令6 個時間單位個時間單位COFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFI指令指令 1指令指令 2指令指令 3指令指令 4指令指令 5指令指令 6指令指令 7指令指令 8指令指令 9 1 2 3 4 5 6 7 8 9 10 11 1

54、2 13 14t三、影響指令流水線性能的因素三、影響指令流水線性能的因素程序的相近指令之間出現某種關聯程序的相近指令之間出現某種關聯使指令流水出現停頓,影響流水線效率使指令流水出現停頓,影響流水線效率指令指令 1 與指令與指令 4 沖突沖突指令指令 2 與指令與指令 5 沖突沖突指令指令1、指令、指令3、指令、指令 6 沖突沖突COFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFI指令指令 1指令指令 2指令指令 3指令指令 4指令指

55、令 5指令指令 6指令指令 7指令指令 8指令指令 9 1 2 3 4 5 6 7 8 9 10 11 12 13 14t三、影響指令流水線性能的因素三、影響指令流水線性能的因素1. 結構相關結構相關不同指令爭用同一功能部件產生資源沖突不同指令爭用同一功能部件產生資源沖突解決辦法解決辦法 停頓停頓 指令存儲器和數據存儲器分開指令存儲器和數據存儲器分開 指令預取技術指令預取技術 (適用于訪存周期短的情況)(適用于訪存周期短的情況)(2) 數據相關數據相關ADD R1,R2如:如:SUB R1,R3采用采用 旁路技術旁路技術解決辦法解決辦法寄存器組寄存器組鎖存器鎖存器鎖存器鎖存器ALU(2) 數據

56、相關數據相關不同指令因重疊操作,可能改變操作數的不同指令因重疊操作,可能改變操作數的 讀讀/寫寫 訪問順序訪問順序 采用采用 旁路技術旁路技術解決辦法解決辦法 寫后讀相關(寫后讀相關(RAW)SUB R1,R2,R3ADD R4,R5,R1;(;(R2) (R3) R1;(;(R5)+(R1) R4 讀后寫相關(讀后寫相關(WAR)STA M,R2ADD R2,R4,R5;(;(R2) M 存儲單元存儲單元;(;(R4)+(R5) R2 寫后寫相關(寫后寫相關(WAW) 后推法后推法MUL R3,R2,R1SUB R3,R4,R5;(;(R2) (R1) R3;(;(R4) (R5) R3(3

57、) 控制相關控制相關BNE 指令必須等指令必須等CPX 指令的結果指令的結果才能判斷出才能判斷出是轉移是轉移還是順序執行還是順序執行LDA # 0LDX # 0INXCPX # NBNE MDIV # NSTA ANSADD X, DM由轉移指令引起由轉移指令引起(3) 控制相關控制相關WOEIFOCODIWOEIFODIFIFIDIFICOFIFOCODIFIWOEIFOCODIFIDIFOEIWOEIFOCOFIDICOWODIFICOFI指令指令 1指令指令 2指令指令 3指令指令 4指令指令 5指令指令 6指令指令 7指令指令15指令指令16 1 2 3 4 5 6 7 8 9 10

58、11 12 13 14轉移損失轉移損失t設設 指令指令3 是轉移指令是轉移指令 轉移預測法轉移預測法解決辦法解決辦法 延遲轉移延遲轉移四、流水線性能四、流水線性能 1. 吞吐率吞吐率 單位時間內單位時間內 流水線所完成指令流水線所完成指令 或或 輸出結果輸出結果 的的 數量數量 最大吞吐率最大吞吐率 實際吞吐率實際吞吐率 連續處理連續處理 n 條指令的吞吐率為條指令的吞吐率為設設 m 段的流水線各段時間為段的流水線各段時間為t tTpmax =1t tTp =m + (n-1) nt tt t2. 加速比加速比 Sp m 段的段的 流水線的速度流水線的速度 與等功能的與等功能的 非流水線的速度

59、非流水線的速度 之比之比 設流水線各段時間為設流水線各段時間為 t 完成完成 n 條指令在條指令在 m 段流水線上共需段流水線上共需 T = m + (n-1) t t 完成完成 n 條指令在等效的非流水線上共需條指令在等效的非流水線上共需 T = nmt Sp = m +(n-1) nm =nmm + n -1 t t t 則則由于流水線有由于流水線有 建立時間建立時間 和和 排空時間排空時間因此各功能段的因此各功能段的 設備不可能設備不可能 一直一直 處于處于 工作工作 狀態狀態 流水線中各功能段的流水線中各功能段的 利用率利用率3. 效率效率 mt31245312453124531245

60、 n-1 nn-1 nn-1 nn-1 nT時間時間S空間空間空間空間S4S3S2S1(n-1) tm(m + n -1) t = mnt 流水線各段處于工作時間的時空區流水線各段處于工作時間的時空區流水線中各段總的時空區流水線中各段總的時空區 效率效率 = 3. 效率效率 mt31245312453124531245 n-1 nn-1 nn-1 nn-1 nT時間時間S空間空間空間空間S4S3S2S1(n-1) t流水線中各功能段的流水線中各功能段的 利用率利用率五、流水線的多發技術五、流水線的多發技術 1. 超標量技術超標量技術 每個時鐘周期內可每個時鐘周期內可 并發多條獨立指令并發多條獨

溫馨提示

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

評論

0/150

提交評論