微機(jī)體系結(jié)構(gòu)_第1頁
微機(jī)體系結(jié)構(gòu)_第2頁
微機(jī)體系結(jié)構(gòu)_第3頁
微機(jī)體系結(jié)構(gòu)_第4頁
微機(jī)體系結(jié)構(gòu)_第5頁
已閱讀5頁,還剩82頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第二章

微型計算機(jī)的體系結(jié)構(gòu)主要內(nèi)容微處理器內(nèi)部結(jié)構(gòu);8086的內(nèi)部寄存器和標(biāo)志位;8086微處理器的引腳功能;8086的存儲器組織;8086CPU時序80X86系列微處理器的結(jié)構(gòu)特點。3微處理器的功能是計算機(jī)系統(tǒng)的核心根據(jù)指令實現(xiàn)各種相應(yīng)的運(yùn)算實現(xiàn)數(shù)據(jù)的暫存實現(xiàn)與存儲器和接口的信息通信

…….微處理器的一般結(jié)構(gòu)運(yùn)算器算術(shù)邏輯運(yùn)算,由加法器和(ALU)一些輔助邏輯電路組成指令流控制控制器時序控制,產(chǎn)生節(jié)拍定時信號指令譯碼和操作控制寄存器組存放臨時數(shù)據(jù)、運(yùn)算的中間結(jié)果、運(yùn)算特征、操作數(shù)地址性能:8位→16位→32位→64位主要部件程序指令1指令2指令3指令4指令n……取指令指令譯碼取操作數(shù)執(zhí)行指令存結(jié)果指令周期操作碼操作數(shù)執(zhí)行微型計算機(jī)的工作過程程序:具有一定功能的指令的有序集合指令:由人向計算機(jī)發(fā)出的、能夠為計算機(jī)所識別的命令。指令執(zhí)行過程取指令指令譯碼取操作數(shù)執(zhí)行指令存結(jié)果問題:1.CPU如何知道從哪里取出程序的第一條指令?——操作系統(tǒng)2.CPU如何按程序控制流執(zhí)行指令?——程序計數(shù)器3.CPU如何知道從哪里取操作數(shù)?——地址、尋址方式7指令流水線指令流水線有兩種運(yùn)作方式:串行方式:

取指令和執(zhí)行指令在不同的時刻按順序執(zhí)行。并行方式:取指令和執(zhí)行指令可同時執(zhí)行,需要有能并行工作的硬件的支持。8串行工作方式8086以前的CPU采用串行工作方式取指令1執(zhí)行1取指令2執(zhí)行2CPUBUS忙碌忙碌取指令3執(zhí)行3忙碌空閑空閑空閑t1t0t2t3t4t56個周期執(zhí)行了3條指令9并行工作方式8086CPU采用并行工作方式取指令1取指令2取指令3取指令4執(zhí)行1執(zhí)行2執(zhí)行3BUS忙碌執(zhí)行4CPUt1t0t2t3t4t5取指令5執(zhí)行5忙碌忙碌忙碌忙碌忙碌6個周期執(zhí)行了5條指令108088/8086CPU的特點采用并行流水線工作方式

——通過設(shè)置指令預(yù)取隊列實現(xiàn)對內(nèi)存空間實行分段管理

——

將內(nèi)存分為4個段并設(shè)置地址段寄存器,以實現(xiàn)對1MB空間的尋址支持多處理器系統(tǒng)CPU內(nèi)部結(jié)構(gòu)存儲器尋址部分工作模式2.18086CPU的內(nèi)部邏輯結(jié)構(gòu)8086是Intel系列的16位微處理器,常用HMOS工藝制造,它有16位數(shù)據(jù)線和20根地址線,可尋址的地址空間達(dá)220即1MB。8088微處理器是準(zhǔn)16位,其內(nèi)部邏輯按16位設(shè)計,但外部數(shù)據(jù)總線只有8條。8086的內(nèi)部邏輯結(jié)構(gòu)由總線接口部件(BIU)和執(zhí)行部件(EU)構(gòu)成,兩者可以并行工作。執(zhí)行部件EU(ExecutionUnit)EU的功能是執(zhí)行指令;EU從指令隊列中取出指令代碼,將其譯碼,發(fā)出相應(yīng)的控制信息;控制數(shù)據(jù)在ALU中進(jìn)行運(yùn)算,運(yùn)算結(jié)果的特征保留在FLAGS中。EU由以下各部分組成:算術(shù)邏輯單元ALU標(biāo)志寄存器FLAGS(FR)通用寄存器組執(zhí)行部件控制電路總線接口部件BIU(BusInterfaceUnit)BIU負(fù)責(zé)與存儲器I/O端口傳送信息。BIU從內(nèi)存中取出指令送到指令隊列;當(dāng)EU需要數(shù)據(jù)時,BIU與EU配合,從指定的內(nèi)存或I/O端口取出數(shù)據(jù)給EU;當(dāng)運(yùn)算結(jié)束時,BIU將運(yùn)算結(jié)果送入指定的內(nèi)存單元或外設(shè)。BIU的組成:專用寄存器組地址加法器指令隊列(6字節(jié))總線控制邏輯BIU與EU的動作管理當(dāng)指令隊列中有2個空字節(jié)時,BIU自動把指令取到指令隊列中。當(dāng)指令隊列已滿,而EU無總線訪問請求時,BIU進(jìn)入空閑狀態(tài)。EU從指令隊列的頭部取出指令,并執(zhí)行。在執(zhí)行中,如需要訪問內(nèi)存或I/O設(shè)備,則EU請求BIU取操作數(shù),并直等到需要的操作數(shù)到來后,EU才繼續(xù)操作。若BIU處于空閑態(tài),它立即響應(yīng)請求,若BIU正在取指令到指令對列,它先完成取指令操作,再響應(yīng)EU的請求。

EU在執(zhí)行轉(zhuǎn)移、調(diào)用、返回等指令時,指令隊列中的指令被清除,BIU重新從存儲器中取出指令送入指令隊列,EU才繼續(xù)執(zhí)行指令。因為EU與BIU并行工作,在整個運(yùn)行期間,BIU總是忙碌的,充分利用了總線,CPU效率很高。(動畫)2.28086的寄存器結(jié)構(gòu)存儲器是計算機(jī)存儲信息的地方。掌握數(shù)據(jù)存儲格式,以及存儲器的分段管理對以后的匯編程序設(shè)計非常重要存儲器也就是平時所說的主存,也叫內(nèi)存,可直接與CPU進(jìn)行數(shù)據(jù)交換。主存利用地址區(qū)別寄存器是微處理器(CPU)內(nèi)部暫存數(shù)據(jù)的存儲單元,以名稱表示,例如:AX,BX..….等外存主要指用來長久保存數(shù)據(jù)的外部存儲介質(zhì),常見的有硬盤、光盤、磁帶、U盤等。外存的數(shù)據(jù)只能通過主存間接地與CPU交換數(shù)據(jù)程序及其數(shù)據(jù)可以長久存放在外存,在運(yùn)行需要時才進(jìn)入主存你能區(qū)別寄存器、存儲器(主存)、外存(包括硬盤、光盤、磁帶等存儲介質(zhì))嗎?AX(Accumulator)累加器。用于算術(shù)、邏輯運(yùn)算以及與外設(shè)傳送信息等BX(BaseaddressRegister)基址寄存器。常用做存放存儲器地址通用寄存器組CX(Count)計數(shù)寄存器。在循環(huán)和串操作時,常用作計數(shù)器。DX(Data)數(shù)據(jù)寄存器。常用來存放雙字長數(shù)據(jù)的高16位,或存放外設(shè)端口地址AX:

AH

AL

BX:

BH

BLCX:

CH

CL

DX:

DH

DL例如上述4個寄存器皆為16位寄存器,但又可將高、低8位分別作為兩個獨(dú)立的8位寄存器使用。

SP(StackPointer)堆棧指針寄存器BP(BasePointer)基址指針寄存器SI(SourceIndex)源變址寄存器DI(DestinationIndex)目的變址寄存器以上4個寄存器只能作為16位的寄存器用。段寄存器CS(CodeSegment)— 代碼段寄存器SS(StackSegment)— 堆棧段寄存器DS(DataSegment)— 數(shù)據(jù)段寄存器ES(ExtraSegment)— 附加段寄存器段寄存器都是16位的寄存器,用于存放段基值(16位的無符號數(shù))控制寄存器IP(InstructionPointer)指令指針寄存器。指示主存儲器指令的位置。存放預(yù)取指令的偏移地址;隨著指令的執(zhí)行,IP將自動加1,以指示下一條指令所在的存儲器位置;IP寄存器與CS段寄存器聯(lián)合使用以確定下一條指令的存儲單元地址FLAGS(FlagsRegister)標(biāo)志寄存器Flags是16位寄存器,但只用其中的9位。這9位包括6個狀態(tài)標(biāo)志位和3個控制標(biāo)志位。15OFDF1011IFTF89SFZF67AF45PF23CF016個狀態(tài)標(biāo)志位:CF(CarryFlag):進(jìn)位標(biāo)志CF=1表示本次運(yùn)算中,最高位(D7位或D15位)發(fā)生進(jìn)位(加法運(yùn)算)或借位(減法運(yùn)算)。CF=0表示沒發(fā)生進(jìn)位(或借位)PF(ParityFlag):奇偶標(biāo)志PF=1 運(yùn)算結(jié)果的低8位中有偶數(shù)個“1”PF=0 運(yùn)算結(jié)果的低8位中有奇數(shù)個“1”AF(AuxiliaryCarryFlag):輔助進(jìn)位標(biāo)志。(又稱半進(jìn)位標(biāo)志)AF=1表示本次運(yùn)算D3位向D4位有進(jìn)位(加法運(yùn)算)或借位(減法運(yùn)算)。AF=0表示無半進(jìn)位ZF(ZeroFlag):零標(biāo)志。ZF=1表示本次運(yùn)算結(jié)果為0;否則ZF=0。SF(SignFlag):符號標(biāo)志。SF=1表示本次運(yùn)算結(jié)果的最高位(D7或D15位)為“1”,否則,SF=0。OF(OverflowFlag):溢出標(biāo)志。OF=1表示本次運(yùn)算結(jié)果超出了帶符號數(shù)范圍,即溢出,否則OF=08位補(bǔ)碼的整數(shù)范圍是:-128~+12716位補(bǔ)碼的整數(shù)范圍是:-32768~+327672個n位的無符號二進(jìn)制數(shù)相加,結(jié)果大于2n-1,稱為進(jìn)位。應(yīng)用CF標(biāo)志位作判斷。2個n位的帶符號二進(jìn)制數(shù)相加,結(jié)果大于2n-1-1或小于-2n-1,稱為溢出,應(yīng)用OF標(biāo)志位作判斷。上述的n為字長,8086的n為8或16。關(guān)于進(jìn)位與溢出三個控制標(biāo)志位為:DF(DirectionFlag):方向標(biāo)志。DF=1,使串操作按減地址方式進(jìn)行;DF=0,使串操作按增地址方式進(jìn)行。IF(InterruptFlag):中斷標(biāo)志。IF=1,允許CPU響應(yīng)可屏蔽中斷;IF=0,禁止CPU響應(yīng)可屏蔽中斷。TF(TrapFlag):單步標(biāo)志。TF=1,CPU進(jìn)入單步工作方式;TF=0,CPU正常執(zhí)行。例如:二進(jìn)制數(shù)無符號數(shù)帶符號數(shù)加數(shù)1000001004+4加數(shù)20000101111+11和0000111115+15CFOFZFSFPFAF000010二進(jìn)制數(shù)無符號數(shù)帶符號數(shù)加數(shù)1000001117+7加數(shù)211111011251-5和000000102+2CFOFZFSFPFAF100001二進(jìn)制數(shù)無符號數(shù)帶符號數(shù)加數(shù)1000010019+9加數(shù)201111100124+124和10000101133-123CFOFZFSFPFAF0101018086CPU的兩種工作模式8086可工作于兩種模式下,即:最小模式和最大模式。最小模式不支持8087。存儲器和I/O控制信號全部由CPU產(chǎn)生。最大模式支持8087。CPU的部分信號線被用作8087的控制,因此需要由8288總線控制器來產(chǎn)生這些控制信號。注:80286以后的CPU不再區(qū)分這兩種工作模式。最小模式下的連接示意圖8086CPU??控制總線數(shù)據(jù)總線地址總線地址鎖存器數(shù)據(jù)總線緩沖器ALE時鐘發(fā)生器8284A地址/數(shù)據(jù)82868282Vcc

MN/MXDENDT/R最大模式下的連接示意圖8088CPU數(shù)據(jù)總線地址總線地址鎖存器數(shù)據(jù)總線緩沖器時鐘發(fā)生器總線控制器控制總線8284A8288ALECLK

MN/MX82828286GND2.38086CPU的外部引腳及功能8086CPU芯片是40條引腳的雙列直插式封裝;8086CPU有兩種工作模式,即最大模式和最小模式引腳采用了分時復(fù)用方式,有8條引腳在兩種工作模式中具有不同的功能。8086的各引腳功能:AD15~AD0(AddressDataBus)分時復(fù)用地址/數(shù)據(jù)線傳送地址時三態(tài)輸出;傳送數(shù)據(jù)時可雙向三態(tài)輸入/輸出。A19/S6~A16/S3(Address/Status)分時復(fù)用地址/狀態(tài)線作地址用時,A19~A16與AD15~AD0一起構(gòu)成訪問內(nèi)存的20位物理地址當(dāng)CPU訪問I/O端口時,A19~A16保持為“0”作狀態(tài)用時,S6~S3輸出狀態(tài)信息。(見表2.1)表2.1S4S3狀態(tài)編碼S4S3段寄存器00ES01SS10CS(I/O,INT)11DSS5指示中斷標(biāo)志狀態(tài),當(dāng)IF=1時,S5=1。S6恒為“0”。(BusHighEnable/Status)總線高位有效信號。三態(tài)輸出,低電平有效。在讀寫存儲器或I/O端口時,用作體選信號。(見表2.2)表2.2和AD0編碼的含義AD0總線使用情況0016位數(shù)據(jù)總線上進(jìn)行字傳送01高8位數(shù)據(jù)總線上進(jìn)行字節(jié)傳送10低8位數(shù)據(jù)總線上進(jìn)行字節(jié)傳送11無效RD(Read)讀信號。三態(tài)輸出,低電平有效。指示CPU正在讀內(nèi)存或I/O端口。WR(Write)寫信號。三態(tài)輸出,低電平有效。指示CPU正在寫內(nèi)存或I/O端口。M/IO(Memory/IO)存儲器或I/O端口訪問信號。M/IO為高電平時,表示當(dāng)前CPU正訪問存儲器;M/IO為低電平時,表示當(dāng)前CPU正訪問I/O端口。READY準(zhǔn)備就緒信號。外部輸入,高電平有效。它有效表示內(nèi)存或I/O端口已準(zhǔn)備好傳送數(shù)據(jù)。無效時要求CPU插入等待周期Tw。INTR(InterruptRequest)中斷請求信號。輸入,高電平有效有效時,表示外部向CPU發(fā)出了中斷請求。TEST測試信號。輸入,低電平有效當(dāng)CPU執(zhí)行WAIT指令時,每隔5個時鐘周期對TEST進(jìn)行一次測試僅當(dāng)TEST有效時,CPU才執(zhí)行下一條指令。INTA(InterruptAcknowledge)中斷響應(yīng)信號。輸出,低電平有效表示CPU響應(yīng)了外部發(fā)來的INTR信號。RESET復(fù)位信號。輸入,高電平有效。CPU接收到RESET信號后,停止當(dāng)前操作,并將工作寄存器和指令隊列復(fù)位到初試狀態(tài)。ALE(AddressLatchEnable)地址鎖存允許信號。輸出,高電平有效。在最小模式系統(tǒng)中作地址鎖存器的選通信號。DT/R(DataTransmit/Receive)數(shù)據(jù)發(fā)送/接收控制信號。用于數(shù)據(jù)收發(fā)器的傳送方向。當(dāng)DT/R為高電平時,表示CPU向外部輸出數(shù)據(jù)當(dāng)DT/R為低電平時,表示外部向CPU輸入數(shù)據(jù)。DEN(DataEnable)數(shù)據(jù)允許信號,三態(tài)輸出,低電平有效。在最小模式系統(tǒng)中作為數(shù)據(jù)收發(fā)器的選通信號。HOLD(HoldRequest)總線請求信號。HLDA(HoldAcknowledge)總線請求響應(yīng)信號。以上兩條信號線都是用于控制總線。MN/MX(Minimum/Maximum)工作模式選擇信號,輸入。MN/MX為高電平,表示CPU工作在最小模式系統(tǒng)中。CLK(Clock)主時鐘信號,由時鐘發(fā)生器輸入8086CPU的時鐘頻率通常為8MHz。Vcc(電源)8086CPU使用單一的+5伏電源。由Vcc輸入。2.3存儲器的組織 8086CPU有20根地址線,它可直接對220=1M個內(nèi)存單元編址;每個存儲單元都有一個編號;被稱為存儲器地址,這1M內(nèi)存單元按照 00000H~FFFFFH來編址每個存儲單元存放一個字節(jié)的內(nèi)容。2.3.18086系統(tǒng)中數(shù)據(jù)的存儲格式二進(jìn)制位Bit:存儲一位二進(jìn)制數(shù):0或1字節(jié)Byte: 8個二進(jìn)制位,D7~D0字Word: 16位,2個字節(jié),D15~D0雙字DWord:32位,4個字節(jié),D31~D0計算機(jī)中信息的單位最低有效位LSB:數(shù)據(jù)的最低位,D0位最高有效位MSB:數(shù)據(jù)的最高位,對應(yīng)字節(jié)、字、雙字分別指D7、D15、D31位圖示多字節(jié)數(shù)據(jù)在存儲器中占連續(xù)的多個存儲單元:存放時,低字節(jié)存入低地址,高字節(jié)存入高地址;表達(dá)時,用它的低地址表示多字節(jié)數(shù)據(jù)占據(jù)的地址空間。80x86處理器采用“低對低、高對高”的存儲形式,被稱為“小端方式LittleEndian”。相對應(yīng)還存在“大端方式BigEndian”。例如:00002H”字節(jié)”單元存放有一個數(shù)據(jù)34H表達(dá)為 [00002H]=

34H00002H“字”單元的內(nèi)容為:1234H表達(dá)為 [00002H]=1234H00002H“雙字”單元的內(nèi)容為:78561234H表達(dá)為 [00002H]=78561234H圖示2.3.2存儲器的分段管理8086系統(tǒng)將的1MB空間分成多個邏輯段(Segment)每個邏輯段的容量≤64KB8086系統(tǒng)中,把16字節(jié)的存儲空間稱作一節(jié)(Paragraph)要求各邏輯段從節(jié)的整數(shù)邊界開始,即段首地址的最低4位地址碼總是為0000B。物理地址與邏輯地址物理地址識別任一存儲單元唯一的20位地址。段基址段首地址的高16位地址碼,它存放于相應(yīng)的段寄存器中偏移地址內(nèi)存單元相對于段首址的偏移量,它是16位無符號數(shù)“段地址”、“偏移地址”也稱作邏輯地址段地址說明邏輯段在主存中的起始位置偏移地址說明主存單元距離段起始位置的偏移量“段地址”、“偏移地址”也稱作邏輯地址段基地址:段內(nèi)偏移地址分段后在用戶編程時,采用邏輯地址,形式為分隔符物理地址14700H邏輯地址1460H:100H物理地址的形成物理地址=段基址×16+偏移地址將邏輯地址中的段地址左移4位,加上偏移地址就得到20位物理地址邏輯地址

1460:100、1380:F00物理地址 14700H14700H14600H+100H14700H13800H+F00H14700H段地址左移4位加上偏移地址得到物理地址例如:段基址:偏移地址=1200H:0345H物理地址=12345H例如:段基址:偏移地址=1220H:0145H物理地址=12345H一個存儲單元只有一個物理地址,卻可以有多個不同的邏輯地址;不同的段地址表明它處在不同的邏輯段段基址由段寄存器提供,偏移地址由操作數(shù)的尋址方式確定,它們的組合取決于操作類型和存儲器的尋址方式。系統(tǒng)對邏輯地址的來源有約定,在編程時不能違反這個約定。說明各邏輯段的功能代碼段用來存放程序的指令序列代碼段寄存器CS存放代碼段的段地址指令指針寄存器IP指示下條指令的偏移地址處理器利用CS:IP取得下一條要執(zhí)行的指令堆棧段確定堆棧所在的主存區(qū)域堆棧段寄存器SS存放堆棧段的段地址堆棧指針寄存器SP指示堆棧棧頂?shù)钠频刂诽幚砥骼肧S:SP操作堆棧頂?shù)臄?shù)據(jù)數(shù)據(jù)段存放運(yùn)行程序所用的數(shù)據(jù)數(shù)據(jù)段寄存器DS存放數(shù)據(jù)段的段地址各種主存尋址方式(有效地址EA)得到存儲器中操作數(shù)的偏移地址處理器利用DS:EA存取數(shù)據(jù)段中的數(shù)據(jù)附加段是附加的數(shù)據(jù)段,也保存數(shù)據(jù)附加段寄存器ES存放附加段的段地址各種主存尋址方式(有效地址EA)得到存儲器中操作數(shù)的偏移地址處理器利用ES:EA存取附加段中的數(shù)據(jù)串操作指令將附加段作為其目的操作數(shù)的存放區(qū)域程序的指令序列必須安排在代碼段程序使用的堆棧一定在堆棧段程序中的數(shù)據(jù)默認(rèn)是安排在數(shù)據(jù)段,也經(jīng)常安排在附加段,尤其是串操作的目的區(qū)必須是附加段數(shù)據(jù)的存放比較靈活,實際上可以存放在任何一種邏輯段中演示表2.4邏輯地址的來源操作類型段基址偏移地址正常來源其它來源取指令CS無IP堆棧操作SS無SP存/取變量DSCS、ES、SS有效地址EA取源串DSCS、ES、SSSI存/取目的串ES無DIBP作基址寄存器SSCS、ES、DS有效地址EA2.4CPU的操作時序8086CPU主要操作為:系統(tǒng)復(fù)位和啟動操作暫停操作總線操作中斷操作最小模式下的總線保持最大模式下的總線請求/允許2.4.1基本概念時鐘周期CPU的時鐘信號(CLK)周期。如8086-1的主頻為10MHz,一個時鐘周期為100ns。總線周期BIU完成一次訪問存儲器所需的時間為一個總線周期。一個基本的總線由4個時鐘周期組成,也稱為4個狀態(tài),即T1、T2、T3和T4狀態(tài)。有時,CPU需要在T3之后加入一個或幾個附加的時鐘周期Tw,稱為等待狀態(tài)。指令周期

溫馨提示

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

評論

0/150

提交評論