計算機組成原理-3綜述課件_第1頁
計算機組成原理-3綜述課件_第2頁
計算機組成原理-3綜述課件_第3頁
計算機組成原理-3綜述課件_第4頁
計算機組成原理-3綜述課件_第5頁
已閱讀5頁,還剩139頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第三章處理器3.1處理器的指令集3.2處理器的組成與工作過程3.3CISC和RISC3.480x86系列微處理器

小結第3章處理器3.1處理器的指令集*3.1.1

概述

3.1.2

指令的操作碼與操作數(shù)3.1.3

尋址方式3.1.4

指令的基本功能

3.1.5

指令的格式

返回首頁3.1處理器的指令集*3.1.1概述

人們與計算機交流所用的“詞匯”叫做“指令(Instruction)”,所有可以采用的“詞匯”組成的集合叫做“指令集

(InstructionSet)”,這些“詞匯”按照一定的順序組合就形成了程序(Program)。3.1.1概述*機器指令:

計算機能直接識別的是由0和1排列而成的指令。

使用不方便。匯編語言是基于英文的機器指令助記符。匯編語言源程序

按匯編語言書寫的程序。

匯編語言源程序由匯編程序(Assembler)轉換成機器指令,供計算機接受并執(zhí)行。3.1.1概述*匯編語言的提出是計算機技術的一大進步,體現(xiàn)了計算思維的一個重要概念——抽象。

計算機程序設計語言的發(fā)展過程就是不斷抽象的過程。通過抽象,程序設計語言具有了更好的可編程性、可移植性、可重用性。指令系統(tǒng):指令:就是要計算機執(zhí)行某種操作的命令。一臺計算機中所有機器指令的集合。指令集:數(shù)據表示尋址方式指令集返回3.1.2指令的操作碼與操作數(shù)操作碼(OperationCode)地址碼(Operand)*馮·諾依曼型計算機機器指令的邏輯格式。

規(guī)定了指令所具有的功能指明指令所要處理的數(shù)據。3.1.2指令的操作碼與操作數(shù)*

一條指令中,操作數(shù)可能有一個、兩個或三個,甚至更多。

操作數(shù)的個數(shù)也可以是零,即指令沒有操作數(shù)。

在這些操作數(shù)中,作為處理單元輸入的叫源操作數(shù)(SourceOperand),用于存放處理結果的叫目的操作數(shù)(DestinationOperand)。指令字長決定于操作碼的長度指令字長=存儲字長2.指令字長可變操作數(shù)地址的長度操作數(shù)地址的個數(shù)1.指令字長固定按字節(jié)的倍數(shù)變化指令字長:一個指令字中包含二進制代碼的位數(shù)。機器字長:計算機能直接處理的二進制數(shù)據的位數(shù)。返回3.1.2指令的操作碼與操作數(shù)*

數(shù)據表示:指令中所能表示的操作數(shù)數(shù)據類型,即能夠被計算機硬件直接辨識的操作數(shù)數(shù)據類型。

定點數(shù)(含有符號數(shù)和無符號數(shù))、

浮點數(shù)(含單精度和雙精度浮點數(shù))、

字符、邏輯數(shù)(又稱布爾型數(shù)據)。3.1.2指令的操作碼與操作數(shù)*“堆棧(Stack)”是一個重要的數(shù)據結構,廣泛應用于子程序調用和中斷服務等領域。

原則:后進先出(LastInFirstOut,LIFO)

“壓入(PUSH)”

“彈出(POP)”返回3.1.2指令的操作碼與操作數(shù)*硬件堆棧:用專門的硬件設備來實現(xiàn)的堆棧,也稱為級聯(lián)堆棧。軟件堆棧:

為了降低硬件成本,大多數(shù)計算機(特別是微型計算機)常用軟件來實現(xiàn)堆棧,即在內存中開辟一個堆棧區(qū),并在處理器中設置指示堆棧棧頂單元地址的“堆棧指針寄存器(StackPointer,SP)”來管理這個堆棧。3.1.2指令的操作碼與操作數(shù)*相對于硬件堆棧,軟件堆棧有三個優(yōu)點:可以有較大的深度??梢栽O置多個堆棧。除了專門的堆棧指令PUSH和POP外,還可以使用任何訪問主存的指令來訪問堆棧中的數(shù)據。3.1.2指令的操作碼與操作數(shù)*只有標量數(shù)據表示和標量指令的處理器叫標量處理器,這是最常見、最通用的處理器。帶有向量數(shù)據表示和向量指令的處理器叫向量處理器,例如我國于20世紀80年代研制的銀河-1超級計算機就裝備有向量處理器。返回3.1.3尋址方式

*

尋址方式

(Addressing)指的是指令按照何種方式尋找或訪問到所需的操作數(shù)或信息。尋址方式分為指令尋址和數(shù)據尋址。

指令尋址是為了找到下一條指令。

數(shù)據尋址是為了找到本條指令所需的操作數(shù)。

3.1.3尋址方式*分為順序尋址和跳躍尋址兩種。順序尋址:每讀取一次PC后,PC自動加1,指向下一條指令。跳躍尋址則是由當前指令改寫PC的內容,根據PC指向地址取下一條指令。1.指令尋址

*LDA1000ADD1001DEC1200JMP7LDA2000SUB2001INCSTA2500LDA1100...0123456789PC+1指令地址尋址方式指令地址指令順序尋址1順序尋址2順序尋址3跳躍尋址7順序尋址83.1.3尋址方式----指令尋址

*改寫PC的指令有“跳轉指令(Jump)”和“分支指令(Branch)”。這兩種指令既可直接賦予PC一個新的值,也可在PC現(xiàn)有值的基礎上增加或減少一定數(shù)量。返回3.1.3尋址方式*2.數(shù)據尋址

立即數(shù)尋址直接尋址間接尋址堆棧尋址寄存器尋址寄存器間接尋址基址尋址變址尋址3.1.3尋址方式----數(shù)據尋址*(1)立即數(shù)尋址(ImmediateAddressing)在指令中直接給出操作數(shù)的數(shù)值。指令執(zhí)行階段不訪存

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

A的位數(shù)決定了該指令操作數(shù)的尋址范圍操作數(shù)的地址不易修改(必須修改A)有效地址由形式地址直接給出返回3.1.3尋址方式----數(shù)據尋址*(3)間接尋址(IndirectAddressing)

EA=(A)有效地址由形式地址間接提供OPA尋址特征AEA主存EAA1EAA1主存EA10執(zhí)行指令階段2次訪存可擴大尋址范圍便于編制程序OPA尋址特征A一次間址多次間址操作數(shù)操作數(shù)多次訪存………子程序主程序…8081201202轉子程序轉子程序間接尋址編程舉例(A)=81(A)=202……@間址特征JMP@A…

……………

…………返回3.1.3尋址方式----數(shù)據尋址*(4)寄存器尋址(RegisterAddressing)

EA=Ri執(zhí)行階段不訪存,只訪問寄存器,執(zhí)行速度快OPRi尋址特征寄存器個數(shù)有限,可縮短指令字長操作數(shù)………………R0RiRn寄存器有效地址即為寄存器編號返回3.1.3尋址方式----數(shù)據尋址*(5)寄存器間接尋址(RegisterIndirectAddressing)

EA=(Ri

)有效地址在寄存器中,操作數(shù)在存儲器中,執(zhí)行階段訪存操作數(shù)主存OPRi尋址特征便于編制循環(huán)程序地址………………R0RiRn寄存器有效地址在寄存器中返回3.1.3尋址方式----數(shù)據尋址*(6)基址尋址(

BaseAddressing

)

“邏輯地址”是程序員編寫程序時使用的地址?!爸鞔嫖锢淼刂贰笔浅绦蚨?數(shù)據段在主存中的實際存放地址。

程序段/數(shù)據段每次裝入主存的起始地址是不確定的,每次運行時,某條指令或某個數(shù)據的“主存物理地址”也是不確定的。但是這條指令或這個數(shù)據的“邏輯地址”是固定的。3.1.3尋址方式----數(shù)據尋址*(6)基址尋址(

BaseAddressing

)

在處理器內部設置一個專門存放程序段/數(shù)據段在主存中起始地址的寄存器,稱起始地址為基地址,簡稱“基址”,稱該寄存器為“基址寄存器”。

“邏輯地址”與基址寄存器中的值相加即得到指令或數(shù)據的“主存物理地址”。指令中給出的“邏輯地址”又稱為相對于基址的“位移量”,位移量是一個有符號的整數(shù),常用補碼表示。(1)采用專用寄存器作基址寄存器EA=(BR)+ABR為基址寄存器OPA操作數(shù)主存尋址特征ALUBR可擴大尋址范圍便于程序搬家

BR內容由操作系統(tǒng)或管理程序確定在程序的執(zhí)行過程中BR內容不變,形式地址A可變(2)

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

作基址寄存器由用戶指定哪個通用寄存器作為基址寄存器通用寄存器R0Rn-1R1…基址寄存器的內容由操作系統(tǒng)確定在程序的執(zhí)行過程中R0內容不變,形式地址A可變返回3.1.3尋址方式----數(shù)據尋址(7)變址尋址(IndexedAddressing)

EA=(IX)+AOPA操作數(shù)主存尋址特征ALUIX可擴大尋址范圍便于處理數(shù)組問題

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

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

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

比較(X)+1X結果不為零則轉返回3.1.3尋址方式----數(shù)據尋址*(8)堆棧尋址

SP堆棧指針寄存器

先進后出(一個入出口)棧頂?shù)刂酚蒘P

指出–11FFFH+12000H進棧(SP)–1SP出棧(SP)+1SP棧頂棧底2000HSP2000H……1FFFHSP1FFFH棧頂棧底進棧出棧1FFFH棧頂2000H棧頂15200HACCSPX棧頂200H棧底主存151FFHACCSP15棧頂200H棧底主存X1FFHPUSHA前PUSHA后POPA前POPA后Y1FFHACCSPX棧頂200H棧底主存151FFH15200HACCSP棧頂200H棧底主存X153.1.3尋址方式----數(shù)據尋址*根據堆棧的增長方向分為:①遞增堆棧(AscendingStack),也稱向上增長堆棧。隨著數(shù)據的壓入,這種堆棧向高地址方向增長;②遞減堆棧(DescendingStack),也稱向下增長堆棧。隨著數(shù)據的壓入,這種堆棧向低地址方向增長。(8)堆棧尋址3.1.3尋址方式----數(shù)據尋址*

根據SP所指示棧頂單元的屬性,堆棧也可分為:①滿堆棧(FullStack)。SP指示棧頂單元存儲的是最后壓入數(shù)據。②空堆棧(EmptyStack)。SP指示棧頂單元用于接收下一個要壓入的數(shù)據。

(8)堆棧尋址返回*例2:某機器字長16位,主存按字節(jié)編址,轉移指令采用相對尋址,由兩個字節(jié)組成,第一字節(jié)為操作碼字段,第二字節(jié)為相對位移量字段。假定取指令時,每取一個字節(jié)PC自動加1。若某轉移指令所在主存地址為2000H,相對位移量字段的內容為06H,則該轉移指令成功轉移后的目標地址是

。A.2006HB.2007HC.2008HD.2009H例1:偏移尋址通過將某個寄存器內容與一個形式地址相加而生成有效地址。下列尋址方式中,不屬于偏移尋址的是

。A.間接尋址B.基址尋址C.相對尋址D.變址尋址返回3.1.4指令的基本功能

*(1)算術/邏輯/移位指令(算邏指令)(2)數(shù)據傳送指令(數(shù)傳指令)(3)控制轉移指令(4)輸入/輸出指令(5)處理器控制及調試指令返回3.1.4指令的基本功能*(1)算邏指令定點加法指令ADD定點減法指令SUB定點乘法指令MUL定點除法指令DIV加1指令INC減1指令DEC比較指令CMP浮點加法指令ADDF浮點減法指令SUBF浮點乘法指令MULF浮點除法指令DIVF十進制數(shù)算術運算指令影響處理器狀態(tài)標志位算術指令返回首頁3.1.4指令的基本功能*(1)算邏指令“與”運算指令AND“或”運算指令OR“非”運算指令NOT“異或”運算指令XOR位測試位清除位求反

算術左移指令算術右移指令邏輯左移指令邏輯右移指令帶進位循環(huán)左移指令不帶進位循環(huán)左移指令帶進位循環(huán)右移指令不帶進位循環(huán)右移指令邏輯指令移位指令返回首頁3.1.4指令的基本功能*(2)數(shù)傳指令根據數(shù)據的流向分:寄存器與寄存器之間的數(shù)據傳送寄存器與主存儲器單元之間的數(shù)據傳送寄存器與堆棧之間的數(shù)據傳送堆棧與主存儲器單元之間的數(shù)據傳送內存單元與內存單元之間的數(shù)據傳送返回首頁3.1.4指令的基本功能*(2)數(shù)傳指令根據傳輸?shù)墓δ芊郑阂话銈魉?、堆棧操作、?shù)據交換一般傳送指令實現(xiàn)數(shù)據復制功能,即把源操作數(shù)的內容寫入目的操作數(shù)。其匯編語言助記符通常為MOV。

LOAD: 內存

寄存器 STORE:

寄存器

內存返回首頁3.1.4指令的基本功能*(2)數(shù)傳指令根據傳輸?shù)墓δ芊郑憾褩2僮髦噶顗喝霔m擯USH彈出棧頂POPPUSH的源操作數(shù)和POP指令的目的操作數(shù),一般是寄存器號,也可能是主存儲器單元地址.返回首頁3.1.4指令的基本功能*(2)數(shù)傳指令

“數(shù)據交換指令”

實現(xiàn)兩個數(shù)據的交換

如Intel80x86中的XCHG指令。

源操作數(shù)和目的操作數(shù)一般都是寄存器,至多允許源操作數(shù)是主存儲器單元。

數(shù)據交換指令的執(zhí)行時間一般較長。返回首頁3.1.4指令的基本功能*(3)控制轉移指令跳轉指令JUMP (無條件轉移)分支指令

(條件轉移)子程序調用CALL/返回指令RET循環(huán)控制指令LOOP中斷系統(tǒng)指令

返回首頁3.1.4指令的基本功能*(3)控制轉移指令分支指令根據特定條件(往往是上一條指令的執(zhí)行結果),決定程序是順序執(zhí)行還是轉移到一個新的位置執(zhí)行,也稱條件轉移指令。條件轉移指令可能依據的條件有:為0、為正/負數(shù)、發(fā)生進位/借位、為奇數(shù)/偶數(shù)、發(fā)生溢出或以上條件的組合。

返回首頁3.1.4指令的基本功能*(3)控制轉移指令分支指令條件轉移指令又分為“絕對轉移”和“相對轉移”兩種。對于“絕對轉移”,當條件滿足時,計算機將把該指令中所含操作數(shù)的內容直接寫入PC中。對于“相對轉移”,當條件滿足時,計算機將把該指令中所含操作數(shù)的內容與PC中的內容相加后,把結果寫入PC中。

返回*例3:某機器字長16位,主存按字節(jié)編址,轉移指令采用相對尋址,由兩個字節(jié)組成,第一字節(jié)為操作碼字段,第二字節(jié)為相對位移量字段。假定取指令時,每取一個字節(jié)PC自動加1。若某轉移指令所在主存地址為2000H,相對位移量字段的內容為06H,則該轉移指令成功轉移后的目標地址是

。A.2006HB.2007HC.2008HD.2009H返回3.1.4指令的基本功能*常見的條件轉移指令有:等于零轉移BEQ不等于零轉移BNEQ小于轉移BLS大于轉移BGT小于等于轉移/不大于轉移BLEQ大于等于轉移/不小于轉移BGEQ不帶符號小于轉移BLSU不帶符號大于轉移BGTU不帶符號小于等于轉移/不帶符號不大于轉移BLEQU不帶符號大于等于轉移/不帶符號不小于轉移BGEQU沒有進位轉移BCC有進位轉移BCS沒有溢出轉移BVC有溢出轉移BVS返回首頁3.1.4指令的基本功能*(3)控制轉移指令子程序調用CALL/返回指令RET

在程序中,有一些具有特定功能的程序段會被反復使用。為了提高程序的可讀性、可重用性和可維護性,人們將這樣的程序段獨立出來,將其定義成一個子程序。

返回首頁3.1.4指令的基本功能*調用子程序的指令格式:CALLSubprogram_Name功能是,首先把當前程序的斷點保存到系統(tǒng)堆棧中,把子程序的入口地址寫入PC,從而將程序控制轉移至被調子程序。RET指令的功能是把保存在堆棧中的程序斷點彈回到PC之中。返回首頁3.1.4指令的基本功能*(4)輸入/輸出指令為了完成主機與外設之間信息交換的各種操作而設置,包括:啟動輸入/輸出設備、停止輸入/輸出設備、測試輸入/輸出設備及數(shù)據的輸入或輸出等指令。例如,Intel80x86中的輸入指令為IN指令,輸出指令為OUT指令。

返回首頁3.1.4指令的基本功能*(5)處理器控制及調試指令包括各種設置/清除標志位(如陷阱標志、中斷允許標志、處理器工作狀態(tài)標志位)指令、特權指令、進程同步指令、調試指令、停機指令等。調試指令用于硬件或軟件的調試。硬件調試指令包括鑰匙位置、開關狀態(tài)的讀取指令,重要寄存器和主存儲器單元內容的顯示等。軟件調試指令包括斷點的設置及跟蹤指令,自陷阱指令等。返回首頁3.1.4指令的基本功能*對于面向多用戶系統(tǒng)的處理器,為了保證信息安全,處理器的工作狀態(tài)被分為核心態(tài)(Kernelmode/Systemmode)和用戶態(tài)(Usermode)。僅能在核心態(tài)(也叫管理態(tài)/管態(tài))下運行的指令稱為特權指令(Privilegedinstruction)。用戶態(tài)(也叫目態(tài))下的程序要想執(zhí)行管態(tài)下的功能(由操作系統(tǒng)實現(xiàn)并提供用戶使用)必須通過執(zhí)行“訪管指令”來實現(xiàn)。返回首頁3.1.4指令的基本功能*此外,還有:空操作指令NOP和等待指令WAIT訪管指令是一條可以在目態(tài)下執(zhí)行的指令,用戶程序中凡是要調用操作系統(tǒng)功能的地方就安排一條訪管指令。當執(zhí)行到訪管指令時,處理器就自愿地產生一個中斷事件(訪管中斷),暫停用戶程序的執(zhí)行,陷入管態(tài),讓操作系統(tǒng)為用戶服務。返回首頁舉例例:一條雙字長直接尋址的子程序調用指令,其第一個字為操作碼和尋址特征,第二個字為地址碼5000H。假設PC當前值為2000H,SP的內容為0100H,棧頂內容為2746H,存儲器按字節(jié)編址,而且進棧操作是先執(zhí)行(SP)-ΔSP,后存入數(shù)據。試可答下列幾種情況下,PC,SP及棧頂內容各為多少?(1)CALL指令被讀取前。

(2)CALL指令被執(zhí)行后。

(3)子程序返回后。返回首頁解:(1)CALL指令被讀取前, PC=2000H,SP=0100H,棧頂內容為2746H(2)CALL指令被讀取后,PC=2004 CALL指令被執(zhí)行后,PC=5000H SP=00FEH 棧頂內容為2004H(3)子程序返回后 PC=2004H, SP=0100H,

棧頂內容為2746H返回3.1.5指令的格式*涉及指令的操作碼長度、指令“地址制”及采用的尋址方式、指令長度等問題。

返回首頁3.1.5指令的格式*(1)指令操作碼的長度有定長和不定長兩種選擇選擇定長的操作碼可以簡化指令譯碼器的設計與實現(xiàn);

選擇不定長操作碼(也稱擴展操作碼)可使常用指令擁有較短的操作碼而不常用指令擁有較長的操作碼(即哈夫曼壓縮編碼),從而壓縮程序所占的存儲空間。返回首頁3.1.5指令的格式*(2)在一條指令中出現(xiàn)幾個操作數(shù)地址,這是指令的“地址制”所要解決的問題。一般情況下,指令中地址的個數(shù),可以取4,3,2,1,0個。

返回首頁(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代替設指令字長為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次訪存3.1.5指令的格式*“地址制”設計或改進的目的是為了壓縮指令長度,縮短指令的執(zhí)行時間。同一條指令中不同操作數(shù)可采用不同的尋址方式

例如,一條指令中的操作數(shù)可以都存放在寄存器里,也可以把一個操作數(shù)存放在寄存器里,而另一個操作數(shù)存放在主存里。返回首頁3.1.5指令的格式*指令長度可以是固定或變化的。固定長度的指令便于指令的存取和譯碼,但會限制操作數(shù)個數(shù)的增加和復雜尋址方式的使用;而變化長度的指令的特點正好相反。例如,IBMS/370指令采用定長的8位操作碼,有單地址、兩地址和三地址三種地址制,不同的操作數(shù)可以采用不同的尋址方式,指令字長有16位、32位和48位三種。返回首頁例1某機16位字長指令格式如下,試問:538A為形式地址,補碼表示(包括一位符號位)。M為尋址模式。1、該指令格式能定義多少種不同的操作。2、立即尋址操作數(shù)的范圍是多少?3、寫出各種尋址方式計算有效地址EA的表達式。4、直接尋址(此時A視為無符號數(shù))、間接尋址能尋址的主存地址空間為多少?(主存容量為64K)OPMA1、322、256(-128~127)4、256,64K指令格式設計舉例返回首頁指令格式舉例一、設計指令格式時應考慮的各種因素1.指令系統(tǒng)的兼容性(向上兼容)2.其他因素操作類型數(shù)據類型指令格式包括指令個數(shù)及操作的難易程度指令字長、操作碼位數(shù)地址碼位數(shù)、地址個數(shù)尋址方式、操作碼長度返回尋址方式寄存器個數(shù)指令格式設計舉例例2某機器字長16位,存儲器直接尋址空間為128字,變址時的位移量為-64~63,16個通用寄存器均可作為變址寄存器。設計一套指令系統(tǒng)格式,滿足下列尋址類型的要求。

(1)零地址指令。

(2)直接尋址的一地址指令。

(3)寄存器尋址的二地址指令。

(4)變址尋址的一地址指令。(5)直接尋址的二地址指令。若安排寄存器尋址的一地址指令?返回首頁返回首頁指令設計舉例例3某模型機共有64種操作,操作碼位數(shù)固定,且具有以下特點。(1)采用一地址或二地址格式。(2)有寄存器尋址、直接尋址和相對尋址(位移量為-128~+127)三種尋址方式。(3)有16個通用寄存器,算術運算和邏輯運算的操作數(shù)均在寄存器中,結果也在寄存器中。(4)取數(shù)/存數(shù)指令在通用寄存器和存儲器之間傳送數(shù)據。(5)存儲器容量為1MR,按字節(jié)編址。返回第3章處理器3.1處理器的指令集*3.1.1概述

3.1.2指令的操作碼與操作數(shù)3.1.3尋址方式3.1.4指令的基本功能

3.1.5指令的格式3.1.6面向多媒體處理的增強指令

返回首頁3.2.處理器的組成與工作過程第3章處理器3.2處理器的組成與工作過程*3.2.1處理器的基本功能和基本組成3.2.2計算機的工作過程3.2.3采用流水線技術的處理器返回首頁3.2.1處理器的基本功能和基本組成1.處理器概述外觀觸點陣列LGA封裝*返回首頁3.2.1處理器的基本功能和基本組成信息傳輸片內總線:處理器內部各個單元之間信號傳輸?shù)木€路片內控制總線和片內數(shù)據總線片外總線:用于實現(xiàn)處理器與主存儲器和輸入/輸出設備之間信號傳輸?shù)木€路

*返回首頁3.2.1處理器的基本功能和基本組成外部引腳電源引腳(Vcc)和接地引腳(GND)數(shù)據總線引腳D15…D0地址總線引腳A31…A0控制總線引腳時鐘CLK、復位RESET、總線請求HRQ、總線允許HLDA、中斷請求INTR、中斷響應INTA、讀RD、寫WR*返回首頁3.2.1處理器的基本功能和基本組成2.處理器的基本功能取指令

分析指令取數(shù)據處理數(shù)據寫回結果*返回首頁3.2.1處理器的基本功能和基本組成取指令處理器根據PC給出的主存地址訪問主存儲器,取出一個標準字長的指令,將其送入處理器內部專門存放當前指令的指令寄存器IR。PC加1分析指令將IR中操作碼取出送入指令譯碼器(Decoder)進行譯碼。根據譯碼結果判斷出指令的功能、操作數(shù)的尋址方式以及操作數(shù)的數(shù)據類型,形成源操作數(shù)或目的操作數(shù)的物理地址。*返回首頁3.2.1處理器的基本功能和基本組成取數(shù)據根據源操作數(shù)的物理地址訪問主存,取出源操作數(shù)。源操作數(shù)將被送入處理器內部的數(shù)據寄存器。處理數(shù)據處理器將源操作數(shù)送入運算器,并根據指令譯碼結果啟動運算器的相應操作對數(shù)據進行處理。處理結果存回通用數(shù)據寄存器。寫回結果如果指令要求將結果寫回主存,那么處理器將根據目的操作數(shù)的地址,將目的操作數(shù)寫入主存。*返回首頁3.2.1處理器的基本功能和基本組成3.處理器的基本組成算術邏輯單元ALU*返回首頁3.2.1處理器的基本功能和基本組成控制單元CU通過對指令的分析(譯碼),按照一定的時序,發(fā)出控制信號,使CPU在控制信號的驅動下,完成相應指令的功能寄存器用戶可見的寄存器:通用數(shù)據寄存器、基址寄存器、變址寄存器、FR、PC用戶透明的寄存器:IR、MAR和MDR*返回首頁3.2.1處理器的基本功能和基本組成中斷中斷:指計算機在執(zhí)行程序的過程中,當出現(xiàn)異常情況或特殊請求時,計算機會在適當時機暫停現(xiàn)行程序的運行,轉向執(zhí)行處理這些異常情況或特殊請求的程序,處理結束后再返回到現(xiàn)行程序的間斷處繼續(xù)執(zhí)行能夠發(fā)出中斷請求的部件或事件,稱為“中斷源”為了區(qū)分不同請求信號,不同的中斷源被賦予了一個不同的“中斷類型號”中斷相應時間:指令周期結束處理器信號:INTR和INTA*返回首頁*3.2.1處理器的基本功能和基本組成返回首頁*3.2.1處理器的基本功能和基本組成返回*3.2.2計算機的工作過程指令周期:處理器每取出并執(zhí)行一條指令所需的全部時間“取指”將指令從主存取入到處理器中“執(zhí)行”指令譯碼并完成其指定的操作返回首頁*有的指令采用間接尋址。為了取到操作數(shù),在取指周期之后還有一個訪問主存,讀取操作數(shù)地址的周期,這個周期就是間址周期。3.2.2計算機的工作過程返回首頁3.2.2計算機的工作過程不同指令所完成的功能不同,它們的指令周期也不盡相同無條件轉移指令“JUMPTARGET”空操作指令NOP加法指令“ADDX”乘/除法指令*返回首頁3.2.2計算機的工作過程機器周期是所有指令執(zhí)行過程中的一個基準時間通常選取處理器訪問一次主存的時間(也稱主存周期)作為機器周期一個機器周期內又包含了若干時鐘周期(也稱節(jié)拍)*返回首頁*為了實現(xiàn)各種操作的時序控制,在處理器內部專門設置有時鐘部件。指令周期、機器周期和節(jié)拍的關系如下圖所示。3.2.2計算機的工作過程返回首頁*下面以計算X

+

Y為例來編制控制計算機/處理器工作的程序。(1)從內存單元X中取數(shù)據送入累加器ACC;(2)ACC加上內存單元Y中的數(shù)據,結果存回ACC中;(3)ACC的值存入內存單元Z中;(4)停機。3.2.2計算機的工作過程返回首頁指令名稱助記符指令功能操作碼指令操作數(shù)數(shù)據讀入LOAD將某個內存單元X中的數(shù)據取出并送入ACC0001B內存單元X的地址加法ADDACC加上內存單元Y中的數(shù)據,結果存回ACC中0010B內存單元Y的地址數(shù)據存回STORE將ACC的值存入內存單元Z中0011B內存單元Z的地址停機HALT停止處理器工作1000B無操作數(shù)*此程序在某模型機上運行,用到的指令如下:3.2.2計算機的工作過程返回首頁*主存單元地址匯編程序指令操作碼指令操作數(shù)1000BLOADX0001B1100B1001BADDY0010B1101B1010BSTOREZ0011B1110B1011BHALT1000B1100BX0000B0001B1101BY0000B0010B1110BZ程序存入主存的結果如下,其中分配給變量X,Y和Z的內存單元地址是1100B、1101B和1110B。

返回首頁*LOADX取指周期T1將PC中內容送MAR,MAR把它的內容送到地址總線上T2處理器發(fā)出“讀”命令信號T3數(shù)據總線上的內容送入MDRT4MDR的內容送到IR,進行譯碼執(zhí)行周期T1IR中的操作數(shù)部分送入MAR,MAR的內容送到地址總線上T2處理器發(fā)出“讀”命令信號T3數(shù)據總線上的內容送入MDRT4MDR的內容送到ACC執(zhí)行程序時,管理程序先將程序第一條指令的地址(1000B)送入PC,然后啟動執(zhí)行。

返回首頁*ADDY取指周期T1PC內容送MAR,MAR的內容送到地址總線上T2處理器發(fā)出“讀”命令信號T3數(shù)據總線上的內容送入MDRT4MDR的內容送到IR,進行譯碼執(zhí)行周期T1IR中的操作數(shù)部分送入MAR,MAR的內容送到地址總線上T2處理器發(fā)出“讀”命令信號T3數(shù)據總線上的內容送入MDRT4ACC和MDR內容送ALU相加,結果存回ACC3.2.2計算機的工作過程返回首頁*STOREZ取指周期T1PC內容送MAR,MAR的內容送到地址總線上T2處理器發(fā)出“讀”命令信號T3數(shù)據總線上的內容送入MDRT4MDR的內容送到IR,進行譯碼執(zhí)行周期T1IR中的操作數(shù)部分送入MAR,MAR的內容送到地址總線上T2ACC的內容送MDR,處理器向控制總線上發(fā)出“寫”命令信號T3MDR的內容送數(shù)據總線T4數(shù)據總線上的內容寫入主存相應單元返回首頁*HALT取指周期T1PC內容送MAR,MAR的內容送到地址總線上T2處理器向控制總線上發(fā)出“讀”命令信號T3數(shù)據總線上的內容送入MDRT4MDR的內容送到IR,進行譯碼。發(fā)出讓處理器停止工作的信號返回一、系統(tǒng)的并行性時間上互相重疊2.并行性的等級指令級(指令之間)過程級(程序、進程)兩個或兩個以上事件在同一時刻發(fā)生兩個或兩個以上事件在同一時間段發(fā)生并行1.并行的概念粗粒度軟件實現(xiàn)細粒度硬件實現(xiàn)并發(fā)同時返回首頁3.2.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í)行指令1返回首頁必須等上條指令執(zhí)行結束,才能確定下條指令的地址造成時間損失3.影響指令流水效率加倍的因素(1)執(zhí)行時間>取指時間

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

解決辦法

?取指令部件指令部件緩沖區(qū)執(zhí)行指令部件猜測法返回首頁4.指令的六級流水六級流水14個時間單位串行執(zhí)行6×9=54時間單位完成一條指令6個時間單位COFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFI指令1指令2指令3指令4指令5指令6指令7指令8指令91234567891011121314t返回首頁指令1與指令4沖突指令2與指令5沖突指令1、指令3、指令6沖突……COFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFI指令1指令2指令3指令4指令5指令6指令7指令8指令91234567891011121314t三、影響指令流水性能的因素1.訪存沖突解決辦法?指令存儲器和數(shù)據存儲器分開?指令預取技術(適用于訪存周期短的情況)返回首頁2.相關問題程序的相近指令之間出現(xiàn)某種關聯(lián)使指令流水出現(xiàn)停頓影響流水線效率(1)控制相關WOEIFOCODIWOEIFODIFIFIDIFICOFIFOCODIFIWOEIFOCODIFIDIFOEIWOEIFOCOFIDICOWODIFICOFI指令1指令2指令3指令4指令5指令6指令7指令15指令161234567891011121314轉移損失t設指令3是轉移指令BNE指令必須等CPX指令的結果才能判斷出是轉移還是順序執(zhí)行LDA#0LDX#0INXCPX#NBNEMDIV#NSTAANSADDX,DM返回首頁(2)數(shù)據相關幾條相近的指令間,共用同一存儲單元或同一寄存器時,會出現(xiàn)數(shù)據相關ADDR1,R2如:SUBR1,R3采用旁路技術解決辦法寄存器組鎖存器鎖存器ALU返回首頁四、流水線性能1.吞吐率單位時間內流水線所完成指令或輸出結果的數(shù)量

最大吞吐率

實際吞吐率連續(xù)處理n條指令的吞吐率為設m

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

·Δ

+(n-1)·

Δ

ntt返回首頁2.加速比Sp

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)

流水線中各功能段的利用率3.效率mΔt31245312453124531245………………………………n-1nn-1nn-1nn-1nT時間S空間空間S4S3S2S1(n-1)Δt返回首頁m(m

+n-1)Δt

=mnΔt

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

效率=3.效率

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

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

WR0123

45

678

910111213t返回首頁2.超流水技術在一個時鐘周期內再分段(3段)

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

1

2

345

67

8

9

10111213t返回首頁3.超長指令字采用多個處理部件具有多個操作碼字段的超長指令字(可達幾百位)由編譯程序挖掘出指令間潛在的并行性,將多條能并行操作的指令組合成一條IFIDEXWR012345678910111213t返回首頁六、流水線結構1.指令流水線結構完成一條指令分7段,每段需一個時鐘周期若流水線不出現(xiàn)斷流1個時鐘周期出1結果不采用流水技術7個時鐘周期出1結果理想情況下,7級流水的速度是不采用流水技術的7倍地址形成部件指令譯碼部件取操作數(shù)部件取指令部件操作執(zhí)行部件回寫結果部件修改指令指針部件鎖存鎖存鎖存鎖存鎖存鎖存返回首頁2.運算流水線完成浮點加減運算可分對階、尾數(shù)求和、規(guī)格化三段分段原則每段操作時間盡量一致鎖存器對階功能部件第一段尾數(shù)加部件鎖存器第二段規(guī)格化部件鎖存器第三段返回3.3.1RISC產生的背景上世紀70年代

計算機的指令系統(tǒng)變得越來越復雜

VAX-11擁有330條指令,指令長度從16位到456位長不等,尋址方式有16種

CPU的設計變得十分復雜,設計周期延長,設計成本倍增*返回首頁序號指令名稱使用頻率累積百分比1MOV24.8524.852PUSH10.3635.213CMP10.2845.494JMP9.0354.525ADD6.0861.326POP4.1465.467RET3.9269.388CALL3.8973.279JUMP2.7075.9710SUB2.4378.4011INC2.3780.7712LES1.9882.7513REPN1.9284.6714IMUL1.6986.3615DEC1.3787.7316XOR1.1388.8617REPNZ0.7889.6418CLD0.5490.10某計算機的指令使用頻率2023/7/29返回首頁3.3.1RISC產生的背景

20—80規(guī)律在典型程序的運行中,80%的時間執(zhí)行的只是占指令系統(tǒng)20%的少數(shù)常用指令“軟硬件等價性原理”復雜指令的功能可以由基于簡單指令的子程序來完成*返回首頁3.3.1RISC產生的背景

1975年,IBM801JohnCocke,120條簡單指令的計算機1981年,RISCI加州大學伯克利分校的David

Patterson,31條指令RISC:ReducedInstructionSetComputer*返回首頁*IBM的JohnCocke--“圖靈獎”獲得者返回首頁3.3.1RISC產生的背景

RISC:精簡指令集計算機ReducedInstructionSetComputer采用簡單的指令格式、尋址方式的計算機CISC:復雜指令集計算機ComplexInstructionSetComputer具有復雜的指令格式、尋址方式的計算機*返回首頁RISC的主要特征選用使用頻率較高的一些簡單指令,復雜指令的功能由簡單指令來組合指令固定長度只有LOAD/STORE指令訪存

流水技術,一個時鐘周期完成一條指令組合邏輯實現(xiàn)控制器多個通用寄存器采用優(yōu)化的編譯程序*返回首頁RISC和CISC的比較1.RISC更能充分利用芯片2.

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

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

5.

RISC不易

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

返回3.480x86系列微處理器

8086是第一款16位微處理器,問世之初,市場上缺乏與之配套的外圍芯片,用8086來構建微型計算機成本很高。為此,Intel公司推出與8086兼容的準16位微處理器8088。

返回首頁

8088的通用寄存器組、ALU、指令系統(tǒng)都是按照16位設計的,與8086完全相同,只不過8088的數(shù)據引腳是8位的。這樣就可以兼容當時已有的一整套的外圍芯片。

8086/8088微處理器的浮點運算能力和I/O能力相對較弱,為了滿足用戶對高性能計算的要求,Intel公司還推出了兩款協(xié)處理器——數(shù)值運算協(xié)處理器8087和I/O協(xié)處理器8089。為此,只配置一個8086/8088微處理器的工作模式被定義為最小模式。在這種模式中,所有的總線控制信號都直接由8086或8088發(fā)出。相對而言,包含協(xié)處理器的微處理器工作模式被定義為最大模式。返回首頁SIDIBPSPDLDHCLCHBLBHALAH654321通用寄存器組AXBXCXDX外部總線內部暫存器IPESSSDSCS運算寄存器ALU標志輸入輸出控制電路∑執(zhí)行部分控制電路執(zhí)行部件(EU)總線接口部件(BIU)內部總線地址加法器16位16位20位16位8086CPU結構圖返回首頁一、總線接口部件(BIU)1.功能:負責與存儲器、I/O接口之間傳送信息。2.基本組成:(1)四個段地址寄存器:主要用于存放段基址(2)16位指令指針寄存器IP(3)20位的地址加法器。(4)六字節(jié)的指令隊列緩沖器。二、執(zhí)行部件(EU)1.功能:負責指令的執(zhí)行(1)從指令隊列中取出指令。(2)對指令進行譯碼,發(fā)出相應的控制信號。(3)接收由總線接口送來的數(shù)據或發(fā)送數(shù)據至接口(4)進行算術邏輯運算返回首頁2.基本組成(1)ALU:進行算術和邏輯運算;計算存儲單元16位偏移地址。(2)四個通用寄存器AX、BX、CX、DX。四個通用寄存器都是16位,可作兩個8位來使用。(3)四個專用寄存器地址指針寄存器變址寄存器(4)數(shù)據暫存寄存器協(xié)助ALU完成運算,暫存參加運算的數(shù)據。(5)執(zhí)行部件的控制電路從總線接口的指令隊列取出指令操作碼,通過譯碼電路分析,發(fā)出相應的控制命令,控制ALU數(shù)據流向。(6)標志寄存器返回首頁16位寄存器,其中有7位未用。D15D0OFDF

IF

TFSFZFAFPFCF進借位標志奇偶標志半進借位標志零標志符號標志跟蹤標志中斷允許方向標志溢出標志1-有進、借位0-無進、借位1-低8位有偶數(shù)個10-低8位有奇數(shù)個11-低4位向高4位有進、借位0-低4位向高4位無進、借位1-結果為00-結果不為0三、8086的分段存儲結構存儲器為什么要分段呢?16位微處理器,常規(guī)上管理216=64KB的存儲空間這樣的存儲空間滿足不了應用的要求。用什么方法來擴大呢?將正常管理的64KB存儲空間定義為一個段讓微處理器能夠管理多個這樣的段通過分段存儲結構,8086/8088能夠管理1MB的存儲空間。存儲器分段后如何來管理呢?每個段的起始地址稱為:段基址或段地址每個段內的地址稱為:段內偏移地址一個物理存儲單元就可以通過“段地址:偏移地址”來唯一確定了。返回首頁依照用途的不同,可分為如下段代碼段(CodeSegment,CS)數(shù)據段(DataSegment,DS)堆棧段(StackSegment,SS)附加數(shù)據段(ExtendedDataSegment,ES)存儲程序(指令)代碼。其段基址存放于CS寄存器,段內偏移地址存放于IP寄存器存儲程序定義的變量。段基址存放于DS寄存器,段內偏移地址存放于SI、DI或BX寄存器管理系統(tǒng)堆棧。段基址存放于SS寄存器,段內偏移地址存放于SP或BP寄存器存儲經過處理的中間變量。段基址存放于ES寄存器,段內偏移地址存放于SI、DI或BX寄存器返回首頁DISIBPSPDLDHCLCHBLBHALAHFRIPESSSDSCS數(shù)據寄存器指針寄存器和變址寄存器段寄存器指令指針標志寄存器AXBXCXDX8086/8088的寄存器組作為累加器用,在加法運算中參與運算,結果存于累加器中;所有的I/O指令都隱含地使用AX與外部設備傳送信息。作為通用寄存器使用在采用基址尋址方式時,用作基址寄存器作為通用寄存器使用;常用來保存計數(shù)值,如在移位指令、循環(huán)指令和串處理指令中用作隱含的計數(shù)器。作為通用寄存器使用;在一些指令中,通常用它來存放數(shù)據,所以又稱為數(shù)據寄存器;在做雙字長運算時,將DX和AX組合在一起存放雙字長數(shù),用DX存放高位字。當前代碼段的段地址,指令就是從這段取出當前代碼段的偏移地址。又稱為程序計數(shù)器,控制程序中指令執(zhí)行的順序基址指針寄存器,指示一組數(shù)據的起始地址源變址寄存器目的變址寄存器用于確定數(shù)據段中某一存儲單元的地址指向數(shù)據段,程序變量存于此段指向附加段,這個段用來存放經過處理的中間數(shù)據堆棧指針寄存器,指示堆棧棧頂?shù)钠频刂分赶蚨褩6危褩2僮魇褂眠@段存儲空間返回首頁由段基址和相對于該段的偏移地址共同描述的地址——邏輯地址00000H----FFFFFH例如:52000H例如:5000H:2000H段基址偏移地址段基址寄存器管理程序設計中使用的,方便程序設計20根地址線所表示的地址

——物理地址返回首頁0000段地址

如何根據16位的段地址和16位的段內偏移地址來計算20位的物理地址呢?19…43…0段地址左移四位偏移地址151413……

溫馨提示

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

評論

0/150

提交評論