




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第三章處理器3.1處理器的指令集3.2處理器的組成與工作過(guò)程3.3CISC和RISC3.480x86系列微處理器
小結(jié)第3章處理器3.1處理器的指令集*3.1.1
概述
3.1.2
指令的操作碼與操作數(shù)3.1.3
尋址方式3.1.4
指令的基本功能
3.1.5
指令的格式
返回首頁(yè)3.1處理器的指令集*3.1.1概述
人們與計(jì)算機(jī)交流所用的“詞匯”叫做“指令(Instruction)”,所有可以采用的“詞匯”組成的集合叫做“指令集
(InstructionSet)”,這些“詞匯”按照一定的順序組合就形成了程序(Program)。3.1.1概述*機(jī)器指令:
計(jì)算機(jī)能直接識(shí)別的是由0和1排列而成的指令。
使用不方便。匯編語(yǔ)言是基于英文的機(jī)器指令助記符。匯編語(yǔ)言源程序
按匯編語(yǔ)言書(shū)寫(xiě)的程序。
匯編語(yǔ)言源程序由匯編程序(Assembler)轉(zhuǎn)換成機(jī)器指令,供計(jì)算機(jī)接受并執(zhí)行。3.1.1概述*匯編語(yǔ)言的提出是計(jì)算機(jī)技術(shù)的一大進(jìn)步,體現(xiàn)了計(jì)算思維的一個(gè)重要概念——抽象。
計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言的發(fā)展過(guò)程就是不斷抽象的過(guò)程。通過(guò)抽象,程序設(shè)計(jì)語(yǔ)言具有了更好的可編程性、可移植性、可重用性。指令系統(tǒng):指令:就是要計(jì)算機(jī)執(zhí)行某種操作的命令。一臺(tái)計(jì)算機(jī)中所有機(jī)器指令的集合。指令集:數(shù)據(jù)表示尋址方式指令集返回3.1.2指令的操作碼與操作數(shù)操作碼(OperationCode)地址碼(Operand)*馮·諾依曼型計(jì)算機(jī)機(jī)器指令的邏輯格式。
規(guī)定了指令所具有的功能指明指令所要處理的數(shù)據(jù)。3.1.2指令的操作碼與操作數(shù)*
一條指令中,操作數(shù)可能有一個(gè)、兩個(gè)或三個(gè),甚至更多。
操作數(shù)的個(gè)數(shù)也可以是零,即指令沒(méi)有操作數(shù)。
在這些操作數(shù)中,作為處理單元輸入的叫源操作數(shù)(SourceOperand),用于存放處理結(jié)果的叫目的操作數(shù)(DestinationOperand)。指令字長(zhǎng)決定于操作碼的長(zhǎng)度指令字長(zhǎng)=存儲(chǔ)字長(zhǎng)2.指令字長(zhǎng)可變操作數(shù)地址的長(zhǎng)度操作數(shù)地址的個(gè)數(shù)1.指令字長(zhǎng)固定按字節(jié)的倍數(shù)變化指令字長(zhǎng):一個(gè)指令字中包含二進(jìn)制代碼的位數(shù)。機(jī)器字長(zhǎng):計(jì)算機(jī)能直接處理的二進(jìn)制數(shù)據(jù)的位數(shù)。返回3.1.2指令的操作碼與操作數(shù)*
數(shù)據(jù)表示:指令中所能表示的操作數(shù)數(shù)據(jù)類型,即能夠被計(jì)算機(jī)硬件直接辨識(shí)的操作數(shù)數(shù)據(jù)類型。
定點(diǎn)數(shù)(含有符號(hào)數(shù)和無(wú)符號(hào)數(shù))、
浮點(diǎn)數(shù)(含單精度和雙精度浮點(diǎn)數(shù))、
字符、邏輯數(shù)(又稱布爾型數(shù)據(jù))。3.1.2指令的操作碼與操作數(shù)*“堆棧(Stack)”是一個(gè)重要的數(shù)據(jù)結(jié)構(gòu),廣泛應(yīng)用于子程序調(diào)用和中斷服務(wù)等領(lǐng)域。
原則:后進(jìn)先出(LastInFirstOut,LIFO)
“壓入(PUSH)”
“彈出(POP)”返回3.1.2指令的操作碼與操作數(shù)*硬件堆棧:用專門的硬件設(shè)備來(lái)實(shí)現(xiàn)的堆棧,也稱為級(jí)聯(lián)堆棧。軟件堆棧:
為了降低硬件成本,大多數(shù)計(jì)算機(jī)(特別是微型計(jì)算機(jī))常用軟件來(lái)實(shí)現(xiàn)堆棧,即在內(nèi)存中開(kāi)辟一個(gè)堆棧區(qū),并在處理器中設(shè)置指示堆棧棧頂單元地址的“堆棧指針寄存器(StackPointer,SP)”來(lái)管理這個(gè)堆棧。3.1.2指令的操作碼與操作數(shù)*相對(duì)于硬件堆棧,軟件堆棧有三個(gè)優(yōu)點(diǎn):可以有較大的深度??梢栽O(shè)置多個(gè)堆棧。除了專門的堆棧指令PUSH和POP外,還可以使用任何訪問(wèn)主存的指令來(lái)訪問(wèn)堆棧中的數(shù)據(jù)。3.1.2指令的操作碼與操作數(shù)*只有標(biāo)量數(shù)據(jù)表示和標(biāo)量指令的處理器叫標(biāo)量處理器,這是最常見(jiàn)、最通用的處理器。帶有向量數(shù)據(jù)表示和向量指令的處理器叫向量處理器,例如我國(guó)于20世紀(jì)80年代研制的銀河-1超級(jí)計(jì)算機(jī)就裝備有向量處理器。返回3.1.3尋址方式
*
尋址方式
(Addressing)指的是指令按照何種方式尋找或訪問(wèn)到所需的操作數(shù)或信息。尋址方式分為指令尋址和數(shù)據(jù)尋址。
指令尋址是為了找到下一條指令。
數(shù)據(jù)尋址是為了找到本條指令所需的操作數(shù)。
3.1.3尋址方式*分為順序?qū)ぶ泛吞S尋址兩種。順序?qū)ぶ罚好孔x取一次PC后,PC自動(dòng)加1,指向下一條指令。跳躍尋址則是由當(dāng)前指令改寫(xiě)PC的內(nèi)容,根據(jù)PC指向地址取下一條指令。1.指令尋址
*LDA1000ADD1001DEC1200JMP7LDA2000SUB2001INCSTA2500LDA1100...0123456789PC+1指令地址尋址方式指令地址指令順序?qū)ぶ?順序?qū)ぶ?順序?qū)ぶ?跳躍尋址7順序?qū)ぶ?3.1.3尋址方式----指令尋址
*改寫(xiě)PC的指令有“跳轉(zhuǎn)指令(Jump)”和“分支指令(Branch)”。這兩種指令既可直接賦予PC一個(gè)新的值,也可在PC現(xiàn)有值的基礎(chǔ)上增加或減少一定數(shù)量。返回3.1.3尋址方式*2.數(shù)據(jù)尋址
立即數(shù)尋址直接尋址間接尋址堆棧尋址寄存器尋址寄存器間接尋址基址尋址變址尋址3.1.3尋址方式----數(shù)據(jù)尋址*(1)立即數(shù)尋址(ImmediateAddressing)在指令中直接給出操作數(shù)的數(shù)值。指令執(zhí)行階段不訪存
A的位數(shù)限制了立即數(shù)的范圍OP#A立即尋址特征立即數(shù)可正可負(fù)補(bǔ)碼形式地址A就是操作數(shù)返回3.1.3尋址方式----數(shù)據(jù)尋址*(2)直接尋址(DirectAddressing)EA=A操作數(shù)主存尋址特征LDAAAACC執(zhí)行階段訪問(wèn)一次存儲(chǔ)器
A的位數(shù)決定了該指令操作數(shù)的尋址范圍操作數(shù)的地址不易修改(必須修改A)有效地址由形式地址直接給出返回3.1.3尋址方式----數(shù)據(jù)尋址*(3)間接尋址(IndirectAddressing)
EA=(A)有效地址由形式地址間接提供OPA尋址特征AEA主存EAA1EAA1主存EA10執(zhí)行指令階段2次訪存可擴(kuò)大尋址范圍便于編制程序OPA尋址特征A一次間址多次間址操作數(shù)操作數(shù)多次訪存………子程序主程序…8081201202轉(zhuǎn)子程序轉(zhuǎn)子程序間接尋址編程舉例(A)=81(A)=202……@間址特征JMP@A…
……………
…………返回3.1.3尋址方式----數(shù)據(jù)尋址*(4)寄存器尋址(RegisterAddressing)
EA=Ri執(zhí)行階段不訪存,只訪問(wèn)寄存器,執(zhí)行速度快OPRi尋址特征寄存器個(gè)數(shù)有限,可縮短指令字長(zhǎng)操作數(shù)………………R0RiRn寄存器有效地址即為寄存器編號(hào)返回3.1.3尋址方式----數(shù)據(jù)尋址*(5)寄存器間接尋址(RegisterIndirectAddressing)
EA=(Ri
)有效地址在寄存器中,操作數(shù)在存儲(chǔ)器中,執(zhí)行階段訪存操作數(shù)主存OPRi尋址特征便于編制循環(huán)程序地址………………R0RiRn寄存器有效地址在寄存器中返回3.1.3尋址方式----數(shù)據(jù)尋址*(6)基址尋址(
BaseAddressing
)
“邏輯地址”是程序員編寫(xiě)程序時(shí)使用的地址?!爸鞔嫖锢淼刂贰笔浅绦蚨?數(shù)據(jù)段在主存中的實(shí)際存放地址。
程序段/數(shù)據(jù)段每次裝入主存的起始地址是不確定的,每次運(yùn)行時(shí),某條指令或某個(gè)數(shù)據(jù)的“主存物理地址”也是不確定的。但是這條指令或這個(gè)數(shù)據(jù)的“邏輯地址”是固定的。3.1.3尋址方式----數(shù)據(jù)尋址*(6)基址尋址(
BaseAddressing
)
在處理器內(nèi)部設(shè)置一個(gè)專門存放程序段/數(shù)據(jù)段在主存中起始地址的寄存器,稱起始地址為基地址,簡(jiǎn)稱“基址”,稱該寄存器為“基址寄存器”。
“邏輯地址”與基址寄存器中的值相加即得到指令或數(shù)據(jù)的“主存物理地址”。指令中給出的“邏輯地址”又稱為相對(duì)于基址的“位移量”,位移量是一個(gè)有符號(hào)的整數(shù),常用補(bǔ)碼表示。(1)采用專用寄存器作基址寄存器EA=(BR)+ABR為基址寄存器OPA操作數(shù)主存尋址特征ALUBR可擴(kuò)大尋址范圍便于程序搬家
BR內(nèi)容由操作系統(tǒng)或管理程序確定在程序的執(zhí)行過(guò)程中BR內(nèi)容不變,形式地址A可變(2)
采用通用寄存器作基址寄存器操作數(shù)主存尋址特征ALUOPR0AR0
作基址寄存器由用戶指定哪個(gè)通用寄存器作為基址寄存器通用寄存器R0Rn-1R1…基址寄存器的內(nèi)容由操作系統(tǒng)確定在程序的執(zhí)行過(guò)程中R0內(nèi)容不變,形式地址A可變返回3.1.3尋址方式----數(shù)據(jù)尋址(7)變址尋址(IndexedAddressing)
EA=(IX)+AOPA操作數(shù)主存尋址特征ALUIX可擴(kuò)大尋址范圍便于處理數(shù)組問(wèn)題
IX的內(nèi)容由用戶給定IX為變址寄存器在程序的執(zhí)行過(guò)程中IX內(nèi)容可變,形式地址A不變通用寄存器也可以作為變址寄存器例設(shè)數(shù)據(jù)塊首地址為D,求N
個(gè)數(shù)的平均值直接尋址變址尋址LDADADDD+1ADDD+2……ADDD+(N-1)DIV#NSTAANSLDA#0LDX#0INXCPX#NJNEMDIV#NSTAANS共N+2
條指令共8條指令A(yù)DDX,DM:X為變址寄存器D為形式地址(X)和#N
比較(X)+1X結(jié)果不為零則轉(zhuǎn)返回3.1.3尋址方式----數(shù)據(jù)尋址*(8)堆棧尋址
SP堆棧指針寄存器
先進(jìn)后出(一個(gè)入出口)棧頂?shù)刂酚蒘P
指出–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棧底主存X153.1.3尋址方式----數(shù)據(jù)尋址*根據(jù)堆棧的增長(zhǎng)方向分為:①遞增堆棧(AscendingStack),也稱向上增長(zhǎng)堆棧。隨著數(shù)據(jù)的壓入,這種堆棧向高地址方向增長(zhǎng);②遞減堆棧(DescendingStack),也稱向下增長(zhǎng)堆棧。隨著數(shù)據(jù)的壓入,這種堆棧向低地址方向增長(zhǎng)。(8)堆棧尋址3.1.3尋址方式----數(shù)據(jù)尋址*
根據(jù)SP所指示棧頂單元的屬性,堆棧也可分為:①滿堆棧(FullStack)。SP指示棧頂單元存儲(chǔ)的是最后壓入數(shù)據(jù)。②空堆棧(EmptyStack)。SP指示棧頂單元用于接收下一個(gè)要壓入的數(shù)據(jù)。
(8)堆棧尋址返回*例2:某機(jī)器字長(zhǎng)16位,主存按字節(jié)編址,轉(zhuǎn)移指令采用相對(duì)尋址,由兩個(gè)字節(jié)組成,第一字節(jié)為操作碼字段,第二字節(jié)為相對(duì)位移量字段。假定取指令時(shí),每取一個(gè)字節(jié)PC自動(dòng)加1。若某轉(zhuǎn)移指令所在主存地址為2000H,相對(duì)位移量字段的內(nèi)容為06H,則該轉(zhuǎn)移指令成功轉(zhuǎn)移后的目標(biāo)地址是
。A.2006HB.2007HC.2008HD.2009H例1:偏移尋址通過(guò)將某個(gè)寄存器內(nèi)容與一個(gè)形式地址相加而生成有效地址。下列尋址方式中,不屬于偏移尋址的是
。A.間接尋址B.基址尋址C.相對(duì)尋址D.變址尋址返回3.1.4指令的基本功能
*(1)算術(shù)/邏輯/移位指令(算邏指令)(2)數(shù)據(jù)傳送指令(數(shù)傳指令)(3)控制轉(zhuǎn)移指令(4)輸入/輸出指令(5)處理器控制及調(diào)試指令返回3.1.4指令的基本功能*(1)算邏指令定點(diǎn)加法指令A(yù)DD定點(diǎn)減法指令SUB定點(diǎn)乘法指令MUL定點(diǎn)除法指令DIV加1指令I(lǐng)NC減1指令DEC比較指令CMP浮點(diǎn)加法指令A(yù)DDF浮點(diǎn)減法指令SUBF浮點(diǎn)乘法指令MULF浮點(diǎn)除法指令DIVF十進(jìn)制數(shù)算術(shù)運(yùn)算指令影響處理器狀態(tài)標(biāo)志位算術(shù)指令返回首頁(yè)3.1.4指令的基本功能*(1)算邏指令“與”運(yùn)算指令A(yù)ND“或”運(yùn)算指令OR“非”運(yùn)算指令NOT“異或”運(yùn)算指令XOR位測(cè)試位清除位求反
算術(shù)左移指令算術(shù)右移指令邏輯左移指令邏輯右移指令帶進(jìn)位循環(huán)左移指令不帶進(jìn)位循環(huán)左移指令帶進(jìn)位循環(huán)右移指令不帶進(jìn)位循環(huán)右移指令邏輯指令移位指令返回首頁(yè)3.1.4指令的基本功能*(2)數(shù)傳指令根據(jù)數(shù)據(jù)的流向分:寄存器與寄存器之間的數(shù)據(jù)傳送寄存器與主存儲(chǔ)器單元之間的數(shù)據(jù)傳送寄存器與堆棧之間的數(shù)據(jù)傳送堆棧與主存儲(chǔ)器單元之間的數(shù)據(jù)傳送內(nèi)存單元與內(nèi)存單元之間的數(shù)據(jù)傳送返回首頁(yè)3.1.4指令的基本功能*(2)數(shù)傳指令根據(jù)傳輸?shù)墓δ芊郑阂话銈魉?、堆棧操作、?shù)據(jù)交換一般傳送指令實(shí)現(xiàn)數(shù)據(jù)復(fù)制功能,即把源操作數(shù)的內(nèi)容寫(xiě)入目的操作數(shù)。其匯編語(yǔ)言助記符通常為MOV。
LOAD: 內(nèi)存
寄存器 STORE:
寄存器
內(nèi)存返回首頁(yè)3.1.4指令的基本功能*(2)數(shù)傳指令根據(jù)傳輸?shù)墓δ芊郑憾褩2僮髦噶顗喝霔m擯USH彈出棧頂POPPUSH的源操作數(shù)和POP指令的目的操作數(shù),一般是寄存器號(hào),也可能是主存儲(chǔ)器單元地址.返回首頁(yè)3.1.4指令的基本功能*(2)數(shù)傳指令
“數(shù)據(jù)交換指令”
實(shí)現(xiàn)兩個(gè)數(shù)據(jù)的交換
如Intel80x86中的XCHG指令。
源操作數(shù)和目的操作數(shù)一般都是寄存器,至多允許源操作數(shù)是主存儲(chǔ)器單元。
數(shù)據(jù)交換指令的執(zhí)行時(shí)間一般較長(zhǎng)。返回首頁(yè)3.1.4指令的基本功能*(3)控制轉(zhuǎn)移指令跳轉(zhuǎn)指令JUMP (無(wú)條件轉(zhuǎn)移)分支指令
(條件轉(zhuǎn)移)子程序調(diào)用CALL/返回指令RET循環(huán)控制指令LOOP中斷系統(tǒng)指令
返回首頁(yè)3.1.4指令的基本功能*(3)控制轉(zhuǎn)移指令分支指令根據(jù)特定條件(往往是上一條指令的執(zhí)行結(jié)果),決定程序是順序執(zhí)行還是轉(zhuǎn)移到一個(gè)新的位置執(zhí)行,也稱條件轉(zhuǎn)移指令。條件轉(zhuǎn)移指令可能依據(jù)的條件有:為0、為正/負(fù)數(shù)、發(fā)生進(jìn)位/借位、為奇數(shù)/偶數(shù)、發(fā)生溢出或以上條件的組合。
返回首頁(yè)3.1.4指令的基本功能*(3)控制轉(zhuǎn)移指令分支指令條件轉(zhuǎn)移指令又分為“絕對(duì)轉(zhuǎn)移”和“相對(duì)轉(zhuǎn)移”兩種。對(duì)于“絕對(duì)轉(zhuǎn)移”,當(dāng)條件滿足時(shí),計(jì)算機(jī)將把該指令中所含操作數(shù)的內(nèi)容直接寫(xiě)入PC中。對(duì)于“相對(duì)轉(zhuǎn)移”,當(dāng)條件滿足時(shí),計(jì)算機(jī)將把該指令中所含操作數(shù)的內(nèi)容與PC中的內(nèi)容相加后,把結(jié)果寫(xiě)入PC中。
返回*例3:某機(jī)器字長(zhǎng)16位,主存按字節(jié)編址,轉(zhuǎn)移指令采用相對(duì)尋址,由兩個(gè)字節(jié)組成,第一字節(jié)為操作碼字段,第二字節(jié)為相對(duì)位移量字段。假定取指令時(shí),每取一個(gè)字節(jié)PC自動(dòng)加1。若某轉(zhuǎn)移指令所在主存地址為2000H,相對(duì)位移量字段的內(nèi)容為06H,則該轉(zhuǎn)移指令成功轉(zhuǎn)移后的目標(biāo)地址是
。A.2006HB.2007HC.2008HD.2009H返回3.1.4指令的基本功能*常見(jiàn)的條件轉(zhuǎn)移指令有:等于零轉(zhuǎn)移BEQ不等于零轉(zhuǎn)移BNEQ小于轉(zhuǎn)移BLS大于轉(zhuǎn)移BGT小于等于轉(zhuǎn)移/不大于轉(zhuǎn)移BLEQ大于等于轉(zhuǎn)移/不小于轉(zhuǎn)移BGEQ不帶符號(hào)小于轉(zhuǎn)移BLSU不帶符號(hào)大于轉(zhuǎn)移BGTU不帶符號(hào)小于等于轉(zhuǎn)移/不帶符號(hào)不大于轉(zhuǎn)移BLEQU不帶符號(hào)大于等于轉(zhuǎn)移/不帶符號(hào)不小于轉(zhuǎn)移BGEQU沒(méi)有進(jìn)位轉(zhuǎn)移BCC有進(jìn)位轉(zhuǎn)移BCS沒(méi)有溢出轉(zhuǎn)移BVC有溢出轉(zhuǎn)移BVS返回首頁(yè)3.1.4指令的基本功能*(3)控制轉(zhuǎn)移指令子程序調(diào)用CALL/返回指令RET
在程序中,有一些具有特定功能的程序段會(huì)被反復(fù)使用。為了提高程序的可讀性、可重用性和可維護(hù)性,人們將這樣的程序段獨(dú)立出來(lái),將其定義成一個(gè)子程序。
返回首頁(yè)3.1.4指令的基本功能*調(diào)用子程序的指令格式:CALLSubprogram_Name功能是,首先把當(dāng)前程序的斷點(diǎn)保存到系統(tǒng)堆棧中,把子程序的入口地址寫(xiě)入PC,從而將程序控制轉(zhuǎn)移至被調(diào)子程序。RET指令的功能是把保存在堆棧中的程序斷點(diǎn)彈回到PC之中。返回首頁(yè)3.1.4指令的基本功能*(4)輸入/輸出指令為了完成主機(jī)與外設(shè)之間信息交換的各種操作而設(shè)置,包括:啟動(dòng)輸入/輸出設(shè)備、停止輸入/輸出設(shè)備、測(cè)試輸入/輸出設(shè)備及數(shù)據(jù)的輸入或輸出等指令。例如,Intel80x86中的輸入指令為IN指令,輸出指令為OUT指令。
返回首頁(yè)3.1.4指令的基本功能*(5)處理器控制及調(diào)試指令包括各種設(shè)置/清除標(biāo)志位(如陷阱標(biāo)志、中斷允許標(biāo)志、處理器工作狀態(tài)標(biāo)志位)指令、特權(quán)指令、進(jìn)程同步指令、調(diào)試指令、停機(jī)指令等。調(diào)試指令用于硬件或軟件的調(diào)試。硬件調(diào)試指令包括鑰匙位置、開(kāi)關(guān)狀態(tài)的讀取指令,重要寄存器和主存儲(chǔ)器單元內(nèi)容的顯示等。軟件調(diào)試指令包括斷點(diǎn)的設(shè)置及跟蹤指令,自陷阱指令等。返回首頁(yè)3.1.4指令的基本功能*對(duì)于面向多用戶系統(tǒng)的處理器,為了保證信息安全,處理器的工作狀態(tài)被分為核心態(tài)(Kernelmode/Systemmode)和用戶態(tài)(Usermode)。僅能在核心態(tài)(也叫管理態(tài)/管態(tài))下運(yùn)行的指令稱為特權(quán)指令(Privilegedinstruction)。用戶態(tài)(也叫目態(tài))下的程序要想執(zhí)行管態(tài)下的功能(由操作系統(tǒng)實(shí)現(xiàn)并提供用戶使用)必須通過(guò)執(zhí)行“訪管指令”來(lái)實(shí)現(xiàn)。返回首頁(yè)3.1.4指令的基本功能*此外,還有:空操作指令NOP和等待指令WAIT訪管指令是一條可以在目態(tài)下執(zhí)行的指令,用戶程序中凡是要調(diào)用操作系統(tǒng)功能的地方就安排一條訪管指令。當(dāng)執(zhí)行到訪管指令時(shí),處理器就自愿地產(chǎn)生一個(gè)中斷事件(訪管中斷),暫停用戶程序的執(zhí)行,陷入管態(tài),讓操作系統(tǒng)為用戶服務(wù)。返回首頁(yè)舉例例:一條雙字長(zhǎng)直接尋址的子程序調(diào)用指令,其第一個(gè)字為操作碼和尋址特征,第二個(gè)字為地址碼5000H。假設(shè)PC當(dāng)前值為2000H,SP的內(nèi)容為0100H,棧頂內(nèi)容為2746H,存儲(chǔ)器按字節(jié)編址,而且進(jìn)棧操作是先執(zhí)行(SP)-ΔSP,后存入數(shù)據(jù)。試可答下列幾種情況下,PC,SP及棧頂內(nèi)容各為多少?(1)CALL指令被讀取前。
(2)CALL指令被執(zhí)行后。
(3)子程序返回后。返回首頁(yè)解:(1)CALL指令被讀取前, PC=2000H,SP=0100H,棧頂內(nèi)容為2746H(2)CALL指令被讀取后,PC=2004 CALL指令被執(zhí)行后,PC=5000H SP=00FEH 棧頂內(nèi)容為2004H(3)子程序返回后 PC=2004H, SP=0100H,
棧頂內(nèi)容為2746H返回3.1.5指令的格式*涉及指令的操作碼長(zhǎng)度、指令“地址制”及采用的尋址方式、指令長(zhǎng)度等問(wèn)題。
返回首頁(yè)3.1.5指令的格式*(1)指令操作碼的長(zhǎng)度有定長(zhǎng)和不定長(zhǎng)兩種選擇選擇定長(zhǎng)的操作碼可以簡(jiǎn)化指令譯碼器的設(shè)計(jì)與實(shí)現(xiàn);
選擇不定長(zhǎng)操作碼(也稱擴(kuò)展操作碼)可使常用指令擁有較短的操作碼而不常用指令擁有較長(zhǎng)的操作碼(即哈夫曼壓縮編碼),從而壓縮程序所占的存儲(chǔ)空間。返回首頁(yè)3.1.5指令的格式*(2)在一條指令中出現(xiàn)幾個(gè)操作數(shù)地址,這是指令的“地址制”所要解決的問(wèn)題。一般情況下,指令中地址的個(gè)數(shù),可以取4,3,2,1,0個(gè)。
返回首頁(yè)(1)四地址(2)三地址OPA1A2A3A486666A1
第一操作數(shù)地址A2
第二操作數(shù)地址A3
結(jié)果的地址A4
下一條指令地址若PC代替A4(A1)OP(A2)A38888OPA1A2A3(A1)OP(A2)A34次訪存4次訪存尋址范圍26=64尋址范圍28=256若A3用A1或A2代替設(shè)指令字長(zhǎng)為32位操作碼固定為8位(3)二地址OPA1A281212(A1)OP(A2)A1(A1)OP(A2)A2或4次訪存若ACC代替A1(或A2)若結(jié)果存于ACC(4)一地址(5)零地址OPA1824無(wú)地址碼(ACC)OP(A1)ACC2次訪存尋址范圍212=4K尋址范圍224=16M3次訪存3.1.5指令的格式*“地址制”設(shè)計(jì)或改進(jìn)的目的是為了壓縮指令長(zhǎng)度,縮短指令的執(zhí)行時(shí)間。同一條指令中不同操作數(shù)可采用不同的尋址方式
例如,一條指令中的操作數(shù)可以都存放在寄存器里,也可以把一個(gè)操作數(shù)存放在寄存器里,而另一個(gè)操作數(shù)存放在主存里。返回首頁(yè)3.1.5指令的格式*指令長(zhǎng)度可以是固定或變化的。固定長(zhǎng)度的指令便于指令的存取和譯碼,但會(huì)限制操作數(shù)個(gè)數(shù)的增加和復(fù)雜尋址方式的使用;而變化長(zhǎng)度的指令的特點(diǎn)正好相反。例如,IBMS/370指令采用定長(zhǎng)的8位操作碼,有單地址、兩地址和三地址三種地址制,不同的操作數(shù)可以采用不同的尋址方式,指令字長(zhǎng)有16位、32位和48位三種。返回首頁(yè)例1某機(jī)16位字長(zhǎng)指令格式如下,試問(wèn):538A為形式地址,補(bǔ)碼表示(包括一位符號(hào)位)。M為尋址模式。1、該指令格式能定義多少種不同的操作。2、立即尋址操作數(shù)的范圍是多少?3、寫(xiě)出各種尋址方式計(jì)算有效地址EA的表達(dá)式。4、直接尋址(此時(shí)A視為無(wú)符號(hào)數(shù))、間接尋址能尋址的主存地址空間為多少?(主存容量為64K)OPMA1、322、256(-128~127)4、256,64K指令格式設(shè)計(jì)舉例返回首頁(yè)指令格式舉例一、設(shè)計(jì)指令格式時(shí)應(yīng)考慮的各種因素1.指令系統(tǒng)的兼容性(向上兼容)2.其他因素操作類型數(shù)據(jù)類型指令格式包括指令個(gè)數(shù)及操作的難易程度指令字長(zhǎng)、操作碼位數(shù)地址碼位數(shù)、地址個(gè)數(shù)尋址方式、操作碼長(zhǎng)度返回尋址方式寄存器個(gè)數(shù)指令格式設(shè)計(jì)舉例例2某機(jī)器字長(zhǎng)16位,存儲(chǔ)器直接尋址空間為128字,變址時(shí)的位移量為-64~63,16個(gè)通用寄存器均可作為變址寄存器。設(shè)計(jì)一套指令系統(tǒng)格式,滿足下列尋址類型的要求。
(1)零地址指令。
(2)直接尋址的一地址指令。
(3)寄存器尋址的二地址指令。
(4)變址尋址的一地址指令。(5)直接尋址的二地址指令。若安排寄存器尋址的一地址指令?返回首頁(yè)返回首頁(yè)指令設(shè)計(jì)舉例例3某模型機(jī)共有64種操作,操作碼位數(shù)固定,且具有以下特點(diǎn)。(1)采用一地址或二地址格式。(2)有寄存器尋址、直接尋址和相對(duì)尋址(位移量為-128~+127)三種尋址方式。(3)有16個(gè)通用寄存器,算術(shù)運(yùn)算和邏輯運(yùn)算的操作數(shù)均在寄存器中,結(jié)果也在寄存器中。(4)取數(shù)/存數(shù)指令在通用寄存器和存儲(chǔ)器之間傳送數(shù)據(jù)。(5)存儲(chǔ)器容量為1MR,按字節(jié)編址。返回第3章處理器3.1處理器的指令集*3.1.1概述
3.1.2指令的操作碼與操作數(shù)3.1.3尋址方式3.1.4指令的基本功能
3.1.5指令的格式3.1.6面向多媒體處理的增強(qiáng)指令
返回首頁(yè)3.2.處理器的組成與工作過(guò)程第3章處理器3.2處理器的組成與工作過(guò)程*3.2.1處理器的基本功能和基本組成3.2.2計(jì)算機(jī)的工作過(guò)程3.2.3采用流水線技術(shù)的處理器返回首頁(yè)3.2.1處理器的基本功能和基本組成1.處理器概述外觀觸點(diǎn)陣列LGA封裝*返回首頁(yè)3.2.1處理器的基本功能和基本組成信息傳輸片內(nèi)總線:處理器內(nèi)部各個(gè)單元之間信號(hào)傳輸?shù)木€路片內(nèi)控制總線和片內(nèi)數(shù)據(jù)總線片外總線:用于實(shí)現(xiàn)處理器與主存儲(chǔ)器和輸入/輸出設(shè)備之間信號(hào)傳輸?shù)木€路
*返回首頁(yè)3.2.1處理器的基本功能和基本組成外部引腳電源引腳(Vcc)和接地引腳(GND)數(shù)據(jù)總線引腳D15…D0地址總線引腳A31…A0控制總線引腳時(shí)鐘CLK、復(fù)位RESET、總線請(qǐng)求HRQ、總線允許HLDA、中斷請(qǐng)求INTR、中斷響應(yīng)INTA、讀RD、寫(xiě)WR*返回首頁(yè)3.2.1處理器的基本功能和基本組成2.處理器的基本功能取指令
分析指令取數(shù)據(jù)處理數(shù)據(jù)寫(xiě)回結(jié)果*返回首頁(yè)3.2.1處理器的基本功能和基本組成取指令處理器根據(jù)PC給出的主存地址訪問(wèn)主存儲(chǔ)器,取出一個(gè)標(biāo)準(zhǔn)字長(zhǎng)的指令,將其送入處理器內(nèi)部專門存放當(dāng)前指令的指令寄存器IR。PC加1分析指令將IR中操作碼取出送入指令譯碼器(Decoder)進(jìn)行譯碼。根據(jù)譯碼結(jié)果判斷出指令的功能、操作數(shù)的尋址方式以及操作數(shù)的數(shù)據(jù)類型,形成源操作數(shù)或目的操作數(shù)的物理地址。*返回首頁(yè)3.2.1處理器的基本功能和基本組成取數(shù)據(jù)根據(jù)源操作數(shù)的物理地址訪問(wèn)主存,取出源操作數(shù)。源操作數(shù)將被送入處理器內(nèi)部的數(shù)據(jù)寄存器。處理數(shù)據(jù)處理器將源操作數(shù)送入運(yùn)算器,并根據(jù)指令譯碼結(jié)果啟動(dòng)運(yùn)算器的相應(yīng)操作對(duì)數(shù)據(jù)進(jìn)行處理。處理結(jié)果存回通用數(shù)據(jù)寄存器。寫(xiě)回結(jié)果如果指令要求將結(jié)果寫(xiě)回主存,那么處理器將根據(jù)目的操作數(shù)的地址,將目的操作數(shù)寫(xiě)入主存。*返回首頁(yè)3.2.1處理器的基本功能和基本組成3.處理器的基本組成算術(shù)邏輯單元ALU*返回首頁(yè)3.2.1處理器的基本功能和基本組成控制單元CU通過(guò)對(duì)指令的分析(譯碼),按照一定的時(shí)序,發(fā)出控制信號(hào),使CPU在控制信號(hào)的驅(qū)動(dòng)下,完成相應(yīng)指令的功能寄存器用戶可見(jiàn)的寄存器:通用數(shù)據(jù)寄存器、基址寄存器、變址寄存器、FR、PC用戶透明的寄存器:IR、MAR和MDR*返回首頁(yè)3.2.1處理器的基本功能和基本組成中斷中斷:指計(jì)算機(jī)在執(zhí)行程序的過(guò)程中,當(dāng)出現(xiàn)異常情況或特殊請(qǐng)求時(shí),計(jì)算機(jī)會(huì)在適當(dāng)時(shí)機(jī)暫?,F(xiàn)行程序的運(yùn)行,轉(zhuǎn)向執(zhí)行處理這些異常情況或特殊請(qǐng)求的程序,處理結(jié)束后再返回到現(xiàn)行程序的間斷處繼續(xù)執(zhí)行能夠發(fā)出中斷請(qǐng)求的部件或事件,稱為“中斷源”為了區(qū)分不同請(qǐng)求信號(hào),不同的中斷源被賦予了一個(gè)不同的“中斷類型號(hào)”中斷相應(yīng)時(shí)間:指令周期結(jié)束處理器信號(hào):INTR和INTA*返回首頁(yè)*3.2.1處理器的基本功能和基本組成返回首頁(yè)*3.2.1處理器的基本功能和基本組成返回*3.2.2計(jì)算機(jī)的工作過(guò)程指令周期:處理器每取出并執(zhí)行一條指令所需的全部時(shí)間“取指”將指令從主存取入到處理器中“執(zhí)行”指令譯碼并完成其指定的操作返回首頁(yè)*有的指令采用間接尋址。為了取到操作數(shù),在取指周期之后還有一個(gè)訪問(wèn)主存,讀取操作數(shù)地址的周期,這個(gè)周期就是間址周期。3.2.2計(jì)算機(jī)的工作過(guò)程返回首頁(yè)3.2.2計(jì)算機(jī)的工作過(guò)程不同指令所完成的功能不同,它們的指令周期也不盡相同無(wú)條件轉(zhuǎn)移指令“JUMPTARGET”空操作指令NOP加法指令“ADDX”乘/除法指令*返回首頁(yè)3.2.2計(jì)算機(jī)的工作過(guò)程機(jī)器周期是所有指令執(zhí)行過(guò)程中的一個(gè)基準(zhǔn)時(shí)間通常選取處理器訪問(wèn)一次主存的時(shí)間(也稱主存周期)作為機(jī)器周期一個(gè)機(jī)器周期內(nèi)又包含了若干時(shí)鐘周期(也稱節(jié)拍)*返回首頁(yè)*為了實(shí)現(xiàn)各種操作的時(shí)序控制,在處理器內(nèi)部專門設(shè)置有時(shí)鐘部件。指令周期、機(jī)器周期和節(jié)拍的關(guān)系如下圖所示。3.2.2計(jì)算機(jī)的工作過(guò)程返回首頁(yè)*下面以計(jì)算X
+
Y為例來(lái)編制控制計(jì)算機(jī)/處理器工作的程序。(1)從內(nèi)存單元X中取數(shù)據(jù)送入累加器ACC;(2)ACC加上內(nèi)存單元Y中的數(shù)據(jù),結(jié)果存回ACC中;(3)ACC的值存入內(nèi)存單元Z中;(4)停機(jī)。3.2.2計(jì)算機(jī)的工作過(guò)程返回首頁(yè)指令名稱助記符指令功能操作碼指令操作數(shù)數(shù)據(jù)讀入LOAD將某個(gè)內(nèi)存單元X中的數(shù)據(jù)取出并送入ACC0001B內(nèi)存單元X的地址加法ADDACC加上內(nèi)存單元Y中的數(shù)據(jù),結(jié)果存回ACC中0010B內(nèi)存單元Y的地址數(shù)據(jù)存回STORE將ACC的值存入內(nèi)存單元Z中0011B內(nèi)存單元Z的地址停機(jī)HALT停止處理器工作1000B無(wú)操作數(shù)*此程序在某模型機(jī)上運(yùn)行,用到的指令如下:3.2.2計(jì)算機(jī)的工作過(guò)程返回首頁(yè)*主存單元地址匯編程序指令操作碼指令操作數(shù)1000BLOADX0001B1100B1001BADDY0010B1101B1010BSTOREZ0011B1110B1011BHALT1000B1100BX0000B0001B1101BY0000B0010B1110BZ程序存入主存的結(jié)果如下,其中分配給變量X,Y和Z的內(nèi)存單元地址是1100B、1101B和1110B。
返回首頁(yè)*LOADX取指周期T1將PC中內(nèi)容送MAR,MAR把它的內(nèi)容送到地址總線上T2處理器發(fā)出“讀”命令信號(hào)T3數(shù)據(jù)總線上的內(nèi)容送入MDRT4MDR的內(nèi)容送到IR,進(jìn)行譯碼執(zhí)行周期T1IR中的操作數(shù)部分送入MAR,MAR的內(nèi)容送到地址總線上T2處理器發(fā)出“讀”命令信號(hào)T3數(shù)據(jù)總線上的內(nèi)容送入MDRT4MDR的內(nèi)容送到ACC執(zhí)行程序時(shí),管理程序先將程序第一條指令的地址(1000B)送入PC,然后啟動(dòng)執(zhí)行。
返回首頁(yè)*ADDY取指周期T1PC內(nèi)容送MAR,MAR的內(nèi)容送到地址總線上T2處理器發(fā)出“讀”命令信號(hào)T3數(shù)據(jù)總線上的內(nèi)容送入MDRT4MDR的內(nèi)容送到IR,進(jìn)行譯碼執(zhí)行周期T1IR中的操作數(shù)部分送入MAR,MAR的內(nèi)容送到地址總線上T2處理器發(fā)出“讀”命令信號(hào)T3數(shù)據(jù)總線上的內(nèi)容送入MDRT4ACC和MDR內(nèi)容送ALU相加,結(jié)果存回ACC3.2.2計(jì)算機(jī)的工作過(guò)程返回首頁(yè)*STOREZ取指周期T1PC內(nèi)容送MAR,MAR的內(nèi)容送到地址總線上T2處理器發(fā)出“讀”命令信號(hào)T3數(shù)據(jù)總線上的內(nèi)容送入MDRT4MDR的內(nèi)容送到IR,進(jìn)行譯碼執(zhí)行周期T1IR中的操作數(shù)部分送入MAR,MAR的內(nèi)容送到地址總線上T2ACC的內(nèi)容送MDR,處理器向控制總線上發(fā)出“寫(xiě)”命令信號(hào)T3MDR的內(nèi)容送數(shù)據(jù)總線T4數(shù)據(jù)總線上的內(nèi)容寫(xiě)入主存相應(yīng)單元返回首頁(yè)*HALT取指周期T1PC內(nèi)容送MAR,MAR的內(nèi)容送到地址總線上T2處理器向控制總線上發(fā)出“讀”命令信號(hào)T3數(shù)據(jù)總線上的內(nèi)容送入MDRT4MDR的內(nèi)容送到IR,進(jìn)行譯碼。發(fā)出讓處理器停止工作的信號(hào)返回一、系統(tǒng)的并行性時(shí)間上互相重疊2.并行性的等級(jí)指令級(jí)(指令之間)過(guò)程級(jí)(程序、進(jìn)程)兩個(gè)或兩個(gè)以上事件在同一時(shí)刻發(fā)生兩個(gè)或兩個(gè)以上事件在同一時(shí)間段發(fā)生并行1.并行的概念粗粒度軟件實(shí)現(xiàn)細(xì)粒度硬件實(shí)現(xiàn)并發(fā)同時(shí)返回首頁(yè)3.2.3采用流水技術(shù)的處理器取指令3執(zhí)行指令3二、指令流水原理2.指令的二級(jí)流水1.指令的串行執(zhí)行取指令
取指令部件完成總有一個(gè)部件空閑指令預(yù)取若取指和執(zhí)行階段時(shí)間上完全重疊指令周期減半速度提高1倍…執(zhí)行指令
執(zhí)行指令部件
完成取指令1執(zhí)行指令1取指令2執(zhí)行指令2取指令3執(zhí)行指令3取指令2執(zhí)行指令2取指令1執(zhí)行指令1返回首頁(yè)必須等上條指令執(zhí)行結(jié)束,才能確定下條指令的地址造成時(shí)間損失3.影響指令流水效率加倍的因素(1)執(zhí)行時(shí)間>取指時(shí)間
(2)條件轉(zhuǎn)移指令對(duì)指令流水的影響
解決辦法
?取指令部件指令部件緩沖區(qū)執(zhí)行指令部件猜測(cè)法返回首頁(yè)4.指令的六級(jí)流水六級(jí)流水14個(gè)時(shí)間單位串行執(zhí)行6×9=54時(shí)間單位完成一條指令6個(gè)時(shí)間單位COFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFI指令1指令2指令3指令4指令5指令6指令7指令8指令91234567891011121314t返回首頁(yè)指令1與指令4沖突指令2與指令5沖突指令1、指令3、指令6沖突……COFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFI指令1指令2指令3指令4指令5指令6指令7指令8指令91234567891011121314t三、影響指令流水性能的因素1.訪存沖突解決辦法?指令存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開(kāi)?指令預(yù)取技術(shù)(適用于訪存周期短的情況)返回首頁(yè)2.相關(guān)問(wèn)題程序的相近指令之間出現(xiàn)某種關(guān)聯(lián)使指令流水出現(xiàn)停頓影響流水線效率(1)控制相關(guān)WOEIFOCODIWOEIFODIFIFIDIFICOFIFOCODIFIWOEIFOCODIFIDIFOEIWOEIFOCOFIDICOWODIFICOFI指令1指令2指令3指令4指令5指令6指令7指令15指令161234567891011121314轉(zhuǎn)移損失t設(shè)指令3是轉(zhuǎn)移指令BNE指令必須等CPX指令的結(jié)果才能判斷出是轉(zhuǎn)移還是順序執(zhí)行LDA#0LDX#0INXCPX#NBNEMDIV#NSTAANSADDX,DM返回首頁(yè)(2)數(shù)據(jù)相關(guān)幾條相近的指令間,共用同一存儲(chǔ)單元或同一寄存器時(shí),會(huì)出現(xiàn)數(shù)據(jù)相關(guān)ADDR1,R2如:SUBR1,R3采用旁路技術(shù)解決辦法寄存器組鎖存器鎖存器ALU返回首頁(yè)四、流水線性能1.吞吐率單位時(shí)間內(nèi)流水線所完成指令或輸出結(jié)果的數(shù)量
最大吞吐率
實(shí)際吞吐率連續(xù)處理n條指令的吞吐率為設(shè)m
段的流水線各段時(shí)間為ΔtTpmax=Δ1tTp=m
·Δ
+(n-1)·
Δ
ntt返回首頁(yè)2.加速比Sp
m
段的流水線的速度與等功能的非流水線的速度
之比
設(shè)流水線各段時(shí)間為Δt
完成n條指令在m
段流水線上共需
T=m
·
+(n-1)·
ttΔΔ
完成n
條指令在等效的非流水線上共需
T
′=nm
·tΔSp
=
m
·+(n-1)·
nm·=nmm
+n-1
ΔtΔΔtt
則返回首頁(yè)由于流水線有建立時(shí)間和排空時(shí)間因此各功能段的設(shè)備不可能一直處于工作狀態(tài)
流水線中各功能段的利用率3.效率mΔt31245312453124531245………………………………n-1nn-1nn-1nn-1nT時(shí)間S空間空間S4S3S2S1(n-1)Δt返回首頁(yè)m(m
+n-1)Δt
=mnΔt
流水線各段處于工作時(shí)間的時(shí)空區(qū)流水線中各段總的時(shí)空區(qū)
效率=3.效率
mΔt31245312453124531245………………………………n-1nn-1nn-1nn-1nT時(shí)間S空間空間S4S3S2S1(n-1)Δt流水線中各功能段的利用率返回首頁(yè)五、流水線的多發(fā)技術(shù)1.超標(biāo)量技術(shù)每個(gè)時(shí)鐘周期內(nèi)可并發(fā)多條獨(dú)立指令
不能調(diào)整指令的執(zhí)行順序配置多個(gè)功能部件通過(guò)編譯優(yōu)化技術(shù),把可并行執(zhí)行的指令搭配起來(lái)IFIDEX
WR0123
45
678
910111213t返回首頁(yè)2.超流水技術(shù)在一個(gè)時(shí)鐘周期內(nèi)再分段(3段)
不能調(diào)整指令的執(zhí)行順序在一個(gè)時(shí)鐘周期內(nèi)一個(gè)功能部件使用多次(3次)靠編譯程序解決優(yōu)化問(wèn)題流水線速度是原來(lái)速度的3倍IFIDEXWR0
1
2
345
67
8
9
10111213t返回首頁(yè)3.超長(zhǎng)指令字采用多個(gè)處理部件具有多個(gè)操作碼字段的超長(zhǎng)指令字(可達(dá)幾百位)由編譯程序挖掘出指令間潛在的并行性,將多條能并行操作的指令組合成一條IFIDEXWR012345678910111213t返回首頁(yè)六、流水線結(jié)構(gòu)1.指令流水線結(jié)構(gòu)完成一條指令分7段,每段需一個(gè)時(shí)鐘周期若流水線不出現(xiàn)斷流1個(gè)時(shí)鐘周期出1結(jié)果不采用流水技術(shù)7個(gè)時(shí)鐘周期出1結(jié)果理想情況下,7級(jí)流水的速度是不采用流水技術(shù)的7倍地址形成部件指令譯碼部件取操作數(shù)部件取指令部件操作執(zhí)行部件回寫(xiě)結(jié)果部件修改指令指針部件鎖存鎖存鎖存鎖存鎖存鎖存返回首頁(yè)2.運(yùn)算流水線完成浮點(diǎn)加減運(yùn)算可分對(duì)階、尾數(shù)求和、規(guī)格化三段分段原則每段操作時(shí)間盡量一致鎖存器對(duì)階功能部件第一段尾數(shù)加部件鎖存器第二段規(guī)格化部件鎖存器第三段返回3.3.1RISC產(chǎn)生的背景上世紀(jì)70年代
計(jì)算機(jī)的指令系統(tǒng)變得越來(lái)越復(fù)雜
VAX-11擁有330條指令,指令長(zhǎng)度從16位到456位長(zhǎng)不等,尋址方式有16種
CPU的設(shè)計(jì)變得十分復(fù)雜,設(shè)計(jì)周期延長(zhǎng),設(shè)計(jì)成本倍增*返回首頁(yè)序號(hào)指令名稱使用頻率累積百分比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某計(jì)算機(jī)的指令使用頻率2023/7/29返回首頁(yè)3.3.1RISC產(chǎn)生的背景
20—80規(guī)律在典型程序的運(yùn)行中,80%的時(shí)間執(zhí)行的只是占指令系統(tǒng)20%的少數(shù)常用指令“軟硬件等價(jià)性原理”復(fù)雜指令的功能可以由基于簡(jiǎn)單指令的子程序來(lái)完成*返回首頁(yè)3.3.1RISC產(chǎn)生的背景
1975年,IBM801JohnCocke,120條簡(jiǎn)單指令的計(jì)算機(jī)1981年,RISCI加州大學(xué)伯克利分校的David
Patterson,31條指令RISC:ReducedInstructionSetComputer*返回首頁(yè)*IBM的JohnCocke--“圖靈獎(jiǎng)”獲得者返回首頁(yè)3.3.1RISC產(chǎn)生的背景
RISC:精簡(jiǎn)指令集計(jì)算機(jī)ReducedInstructionSetComputer采用簡(jiǎn)單的指令格式、尋址方式的計(jì)算機(jī)CISC:復(fù)雜指令集計(jì)算機(jī)ComplexInstructionSetComputer具有復(fù)雜的指令格式、尋址方式的計(jì)算機(jī)*返回首頁(yè)RISC的主要特征選用使用頻率較高的一些簡(jiǎn)單指令,復(fù)雜指令的功能由簡(jiǎn)單指令來(lái)組合指令固定長(zhǎng)度只有LOAD/STORE指令訪存
流水技術(shù),一個(gè)時(shí)鐘周期完成一條指令組合邏輯實(shí)現(xiàn)控制器多個(gè)通用寄存器采用優(yōu)化的編譯程序*返回首頁(yè)RISC和CISC的比較1.RISC更能充分利用芯片2.
RISC更能提高計(jì)算機(jī)運(yùn)算速度指令數(shù)、指令格式、尋址方式少,通用寄存器多,采用組合邏輯,便于實(shí)現(xiàn)指令流水3.RISC便于設(shè)計(jì),可降低成本,提高可靠性4.RISC
有利于編譯程序代碼優(yōu)化
5.
RISC不易
實(shí)現(xiàn)指令系統(tǒng)兼容
返回3.480x86系列微處理器
8086是第一款16位微處理器,問(wèn)世之初,市場(chǎng)上缺乏與之配套的外圍芯片,用8086來(lái)構(gòu)建微型計(jì)算機(jī)成本很高。為此,Intel公司推出與8086兼容的準(zhǔn)16位微處理器8088。
返回首頁(yè)
8088的通用寄存器組、ALU、指令系統(tǒng)都是按照16位設(shè)計(jì)的,與8086完全相同,只不過(guò)8088的數(shù)據(jù)引腳是8位的。這樣就可以兼容當(dāng)時(shí)已有的一整套的外圍芯片。
8086/8088微處理器的浮點(diǎn)運(yùn)算能力和I/O能力相對(duì)較弱,為了滿足用戶對(duì)高性能計(jì)算的要求,Intel公司還推出了兩款協(xié)處理器——數(shù)值運(yùn)算協(xié)處理器8087和I/O協(xié)處理器8089。為此,只配置一個(gè)8086/8088微處理器的工作模式被定義為最小模式。在這種模式中,所有的總線控制信號(hào)都直接由8086或8088發(fā)出。相對(duì)而言,包含協(xié)處理器的微處理器工作模式被定義為最大模式。返回首頁(yè)SIDIBPSPDLDHCLCHBLBHALAH654321通用寄存器組AXBXCXDX外部總線內(nèi)部暫存器IPESSSDSCS運(yùn)算寄存器ALU標(biāo)志輸入輸出控制電路∑執(zhí)行部分控制電路執(zhí)行部件(EU)總線接口部件(BIU)內(nèi)部總線地址加法器16位16位20位16位8086CPU結(jié)構(gòu)圖返回首頁(yè)一、總線接口部件(BIU)1.功能:負(fù)責(zé)與存儲(chǔ)器、I/O接口之間傳送信息。2.基本組成:(1)四個(gè)段地址寄存器:主要用于存放段基址(2)16位指令指針寄存器IP(3)20位的地址加法器。(4)六字節(jié)的指令隊(duì)列緩沖器。二、執(zhí)行部件(EU)1.功能:負(fù)責(zé)指令的執(zhí)行(1)從指令隊(duì)列中取出指令。(2)對(duì)指令進(jìn)行譯碼,發(fā)出相應(yīng)的控制信號(hào)。(3)接收由總線接口送來(lái)的數(shù)據(jù)或發(fā)送數(shù)據(jù)至接口(4)進(jìn)行算術(shù)邏輯運(yùn)算返回首頁(yè)2.基本組成(1)ALU:進(jìn)行算術(shù)和邏輯運(yùn)算;計(jì)算存儲(chǔ)單元16位偏移地址。(2)四個(gè)通用寄存器AX、BX、CX、DX。四個(gè)通用寄存器都是16位,可作兩個(gè)8位來(lái)使用。(3)四個(gè)專用寄存器地址指針寄存器變址寄存器(4)數(shù)據(jù)暫存寄存器協(xié)助ALU完成運(yùn)算,暫存參加運(yùn)算的數(shù)據(jù)。(5)執(zhí)行部件的控制電路從總線接口的指令隊(duì)列取出指令操作碼,通過(guò)譯碼電路分析,發(fā)出相應(yīng)的控制命令,控制ALU數(shù)據(jù)流向。(6)標(biāo)志寄存器返回首頁(yè)16位寄存器,其中有7位未用。D15D0OFDF
IF
TFSFZFAFPFCF進(jìn)借位標(biāo)志奇偶標(biāo)志半進(jìn)借位標(biāo)志零標(biāo)志符號(hào)標(biāo)志跟蹤標(biāo)志中斷允許方向標(biāo)志溢出標(biāo)志1-有進(jìn)、借位0-無(wú)進(jìn)、借位1-低8位有偶數(shù)個(gè)10-低8位有奇數(shù)個(gè)11-低4位向高4位有進(jìn)、借位0-低4位向高4位無(wú)進(jìn)、借位1-結(jié)果為00-結(jié)果不為0三、8086的分段存儲(chǔ)結(jié)構(gòu)存儲(chǔ)器為什么要分段呢?16位微處理器,常規(guī)上管理216=64KB的存儲(chǔ)空間這樣的存儲(chǔ)空間滿足不了應(yīng)用的要求。用什么方法來(lái)擴(kuò)大呢?將正常管理的64KB存儲(chǔ)空間定義為一個(gè)段讓微處理器能夠管理多個(gè)這樣的段通過(guò)分段存儲(chǔ)結(jié)構(gòu),8086/8088能夠管理1MB的存儲(chǔ)空間。存儲(chǔ)器分段后如何來(lái)管理呢?每個(gè)段的起始地址稱為:段基址或段地址每個(gè)段內(nèi)的地址稱為:段內(nèi)偏移地址一個(gè)物理存儲(chǔ)單元就可以通過(guò)“段地址:偏移地址”來(lái)唯一確定了。返回首頁(yè)依照用途的不同,可分為如下段代碼段(CodeSegment,CS)數(shù)據(jù)段(DataSegment,DS)堆棧段(StackSegment,SS)附加數(shù)據(jù)段(ExtendedDataSegment,ES)存儲(chǔ)程序(指令)代碼。其段基址存放于CS寄存器,段內(nèi)偏移地址存放于IP寄存器存儲(chǔ)程序定義的變量。段基址存放于DS寄存器,段內(nèi)偏移地址存放于SI、DI或BX寄存器管理系統(tǒng)堆棧。段基址存放于SS寄存器,段內(nèi)偏移地址存放于SP或BP寄存器存儲(chǔ)經(jīng)過(guò)處理的中間變量。段基址存放于ES寄存器,段內(nèi)偏移地址存放于SI、DI或BX寄存器返回首頁(yè)DISIBPSPDLDHCLCHBLBHALAHFRIPESSSDSCS數(shù)據(jù)寄存器指針寄存器和變址寄存器段寄存器指令指針標(biāo)志寄存器AXBXCXDX8086/8088的寄存器組作為累加器用,在加法運(yùn)算中參與運(yùn)算,結(jié)果存于累加器中;所有的I/O指令都隱含地使用AX與外部設(shè)備傳送信息。作為通用寄存器使用在采用基址尋址方式時(shí),用作基址寄存器作為通用寄存器使用;常用來(lái)保存計(jì)數(shù)值,如在移位指令、循環(huán)指令和串處理指令中用作隱含的計(jì)數(shù)器。作為通用寄存器使用;在一些指令中,通常用它來(lái)存放數(shù)據(jù),所以又稱為數(shù)據(jù)寄存器;在做雙字長(zhǎng)運(yùn)算時(shí),將DX和AX組合在一起存放雙字長(zhǎng)數(shù),用DX存放高位字。當(dāng)前代碼段的段地址,指令就是從這段取出當(dāng)前代碼段的偏移地址。又稱為程序計(jì)數(shù)器,控制程序中指令執(zhí)行的順序基址指針寄存器,指示一組數(shù)據(jù)的起始地址源變址寄存器目的變址寄存器用于確定數(shù)據(jù)段中某一存儲(chǔ)單元的地址指向數(shù)據(jù)段,程序變量存于此段指向附加段,這個(gè)段用來(lái)存放經(jīng)過(guò)處理的中間數(shù)據(jù)堆棧指針寄存器,指示堆棧棧頂?shù)钠频刂分赶蚨褩6?,堆棧操作使用這段存儲(chǔ)空間返回首頁(yè)由段基址和相對(duì)于該段的偏移地址共同描述的地址——邏輯地址00000H----FFFFFH例如:52000H例如:5000H:2000H段基址偏移地址段基址寄存器管理程序設(shè)計(jì)中使用的,方便程序設(shè)計(jì)20根地址線所表示的地址
——物理地址返回首頁(yè)0000段地址
如何根據(jù)16位的段地址和16位的段內(nèi)偏移地址來(lái)計(jì)算20位的物理地址呢?19…43…0段地址左移四位偏移地址151413……
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 跨境投資中的財(cái)務(wù)管理與決策支持
- 財(cái)務(wù)風(fēng)險(xiǎn)管理的國(guó)際視角與實(shí)踐
- 浙江國(guó)企招聘2024衢州常山縣農(nóng)村投資集團(tuán)有限公司招錄工作人員10人筆試參考題庫(kù)附帶答案詳解
- 足浴店會(huì)員管理與精準(zhǔn)營(yíng)銷策略分析
- 質(zhì)量管理與企業(yè)品牌建設(shè)的關(guān)聯(lián)
- 江西2025年01月江西省樟樹(shù)市市直單位2025年公開(kāi)選調(diào)30名工作人員筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 土方開(kāi)挖工程合同范本
- 跨領(lǐng)域的體育安全技術(shù)推廣
- 質(zhì)量管理與品牌價(jià)值的提升路徑
- 財(cái)務(wù)風(fēng)險(xiǎn)控制下的企業(yè)資金管理實(shí)踐
- 《化工生產(chǎn)技術(shù)》配套教學(xué)課件
- 液壓與氣壓傳動(dòng)技術(shù)全套課件
- GB∕T 17587.1-2017 滾珠絲杠副 第1部分:術(shù)語(yǔ)和符號(hào)
- 中國(guó)傳媒大學(xué)《紀(jì)錄片創(chuàng)作教程》課件
- 蛋白電泳在腎臟疾病中的實(shí)際臨床應(yīng)用
- T∕CCCMHPIE 1.3-2016 植物提取物 橙皮苷
- 毫火針療法PPT課件
- 三年級(jí)部編版語(yǔ)文下冊(cè)第二單元日積月累
- 前輪轂止口不合格8D報(bào)告
- 蝴蝶蘭溫室工廠化栽培管理技術(shù)
- 銀行對(duì)賬單(共9頁(yè))
評(píng)論
0/150
提交評(píng)論