版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第2章微處理器及其體系結(jié)構(gòu)2.18086CPU2.28086CPU的總線周期和操作時(shí)序
2.332位CPU結(jié)構(gòu)及特點(diǎn)
2.464位CPU結(jié)構(gòu)與特點(diǎn)
8086是Intel公司推出的最早應(yīng)用到個(gè)人計(jì)算機(jī)(PC)上的CPU,隨著科學(xué)技術(shù)的飛速發(fā)展,在8086的基礎(chǔ)上,相繼出現(xiàn)了增強(qiáng)型80x86及Pentium系列等更高檔的PC,它們都兼容8086。2.18086CPU2.1.18086CPU的內(nèi)部結(jié)構(gòu)和功能
8086是Intel公司推出的第三代16位CPU,其最大主頻為10MHz,是40腳雙列直插封裝(DualIn-LinePackage,DIP)的芯片。8086有16位數(shù)據(jù)總線、20位地址總線,在結(jié)構(gòu)設(shè)計(jì)上,8086分為功能獨(dú)立的兩個(gè)邏輯部件模塊,即總線接口部件(BusInterfaceUnit,BIU)和執(zhí)行部件(ExecutionUnit,EU)。8086的內(nèi)部結(jié)構(gòu)如圖2-1所示。1.總線接口部件CPU要處理的各種信息必須存放在存儲(chǔ)單元或I/O端口中??偩€接口部件負(fù)責(zé)CPU內(nèi)部與存儲(chǔ)器或I/O接口之間的信息傳遞,為執(zhí)行部件提供數(shù)據(jù)信息和控制命令??偩€接口部件由地址加法器、寄存器、地址總線和總線控制邏輯電路組成。其中,寄存器又可分為段寄存器(CS、DS、ES、SS共4個(gè))、指令指針寄存器(IP)和指令隊(duì)列緩沖器??偩€接口部件主要實(shí)現(xiàn)以下功能。①根據(jù)段寄存器和指令指針寄存器或執(zhí)行部件傳遞過(guò)來(lái)的16位有效地址,在地址加法器中形成20位物理地址。②根據(jù)物理地址所確定的存儲(chǔ)單元,取出指令或數(shù)據(jù)(可以保持6B預(yù)先取出的指令隊(duì)列),并按順序送至執(zhí)行部件執(zhí)行。③負(fù)責(zé)傳送在執(zhí)行部件執(zhí)行指令過(guò)程中需要的中間數(shù)據(jù)和執(zhí)行部件運(yùn)行的結(jié)果。④總線控制邏輯電路是CPU同外部引腳的接口電路,它負(fù)責(zé)執(zhí)行總線周期,并在每個(gè)周期內(nèi)把相應(yīng)的信號(hào)線同相應(yīng)芯片的引腳接通,完成CPU同存儲(chǔ)器及I/O設(shè)備之間的信息傳遞。2.執(zhí)行部件
執(zhí)行部件由通用寄存器、暫存寄存器、算術(shù)邏輯部件(ArithmeticandLogicUnit,ALU)、標(biāo)志寄存器和EU控制系統(tǒng)組成。執(zhí)行部件負(fù)責(zé)指令的執(zhí)行并產(chǎn)生相應(yīng)的控制信號(hào),主要包括以下功能。①通過(guò)EU控制系統(tǒng)自動(dòng)連續(xù)地從指令隊(duì)列中獲取指令,并對(duì)指令進(jìn)行譯碼。②根據(jù)指令譯碼所得的微操作碼,向算術(shù)邏輯部件及相關(guān)寄存器發(fā)出控制信號(hào),完成指令的執(zhí)行。對(duì)數(shù)據(jù)信息的各種處理都是通過(guò)算術(shù)邏輯部件來(lái)完成的。③8個(gè)16位通用寄存器和1個(gè)標(biāo)志寄存器,主要用于暫存運(yùn)算數(shù)據(jù)、結(jié)果特征,確定指令和操作數(shù)的尋址方式以及控制指令的執(zhí)行等。根據(jù)寄存器中的數(shù)據(jù)以及指令中提供的偏移量計(jì)算有效地址(即偏移地址),然后送至總線接口部件產(chǎn)生物理地址。2.1.28086CPU的編程結(jié)構(gòu)寄存器組是CPU的主要組成部分。8086可以用來(lái)編程的有14個(gè)16位寄存器。按用途可以將其分為4類,即通用寄存器、指令指針寄存器、標(biāo)志寄存器和段寄存器。它們通過(guò)不同的操作方式實(shí)現(xiàn)暫存CPU運(yùn)行時(shí)所需的臨時(shí)數(shù)據(jù)和信息。
8086內(nèi)部寄存器的結(jié)構(gòu)如圖2-2所示。1.通用寄存器通用寄存器一共有8個(gè),通常將其分為3類:數(shù)據(jù)寄存器、指針寄存器和變址寄存器。(1)數(shù)據(jù)寄存器AX、BX、CX、DX是一組16位通用數(shù)據(jù)寄存器,通常用于暫存計(jì)算過(guò)程中的操作數(shù)、計(jì)算結(jié)果或其他信息。AX、AL(Accumulator):累加器,這是運(yùn)算器中最活躍的寄存器,也是程序設(shè)計(jì)中最常用的數(shù)據(jù)寄存器。它們還被指定作為進(jìn)行十進(jìn)制調(diào)整、乘除法運(yùn)算以及I/O等操作的專用寄存器。BX(Base):在間接尋址中用作基址寄存器,用于存放數(shù)據(jù)段內(nèi)存空間的基址。CX(Count):計(jì)數(shù)寄存器,在串操作指令和LOOP指令中用作計(jì)數(shù)寄存器,用于存放字符串處理和循環(huán)操作的計(jì)數(shù)控制數(shù)值。DX(Data):數(shù)據(jù)寄存器,用于在進(jìn)行乘除法運(yùn)算時(shí)擴(kuò)展累加器,以及在進(jìn)行I/O操作時(shí)提供間接端口地址。該類寄存器既可以用來(lái)存放操作數(shù),又可以用來(lái)存放操作結(jié)果。(2)指針寄存器和變址寄存器SP、BP、SI和DI是一組只能按字訪問(wèn)的16位寄存器,主要為訪問(wèn)內(nèi)存時(shí)提供16位偏移地址。其中SI、DI、BP也可以用來(lái)暫存運(yùn)算過(guò)程中的操作數(shù)。一般情況下,編程時(shí)各寄存器的專門用途如下。SP(StackPointer):堆棧指針,用于確定堆棧在內(nèi)存中的棧頂?shù)钠频刂罚ㄎㄒ挥猛荆?。BP(BasePointer):基址指針,用來(lái)提供堆棧中某指定單元的偏移地址并將其作為基址使用。SI(SourceIndex):源變址寄存器,在進(jìn)行串操作時(shí)提供DS段中指定單元的偏移地址,也可用來(lái)存放變址地址。DI(DestinationIndex):目標(biāo)變址寄存器,在進(jìn)行串操作時(shí)提供ES段中指定單元的偏移地址,也可存放變址地址。2.指令指針寄存器指令指針寄存器(InstructionPointer,IP)是一個(gè)16位專用寄存器,該寄存器的內(nèi)容為當(dāng)前需要執(zhí)行指令的第一字節(jié)在存儲(chǔ)器代碼段內(nèi)的地址。當(dāng)該字節(jié)取出后,IP自動(dòng)加1,即指向下一個(gè)指令字節(jié)。IP的內(nèi)容又稱偏移地址或有效地址,程序員不能對(duì)該指針進(jìn)行存取操作,要改變?cè)撝羔樀闹?,可以通過(guò)程序中的轉(zhuǎn)移指令、返回指令或中斷處理來(lái)完成。3.標(biāo)志寄存器標(biāo)志寄存器(FlagRegister,F(xiàn)R)是一個(gè)16位的專用寄存器,如圖2-3所示。在該標(biāo)志寄存器中有意義的有9位,其中OF、SF、ZF、AF、PF、CF為狀態(tài)標(biāo)志位。狀態(tài)標(biāo)志表示執(zhí)行某種(指令)操作后算術(shù)邏輯部件所處的狀態(tài),這些狀態(tài)將會(huì)影響或控制某些后續(xù)指令的執(zhí)行。DF、IF和TF為控制標(biāo)志位,控制標(biāo)志是通過(guò)程序設(shè)置的,每個(gè)控制標(biāo)志對(duì)某種特定的功能起控制作用。(1)狀態(tài)標(biāo)志位①進(jìn)位標(biāo)志(CarryFlag,CF)。進(jìn)位標(biāo)志位反映指令執(zhí)行后是否在最高位產(chǎn)生進(jìn)位或借位,若產(chǎn)生進(jìn)位或借位,則CF=1,否則CF=0。該標(biāo)志主要用于多字節(jié)的加法或減法運(yùn)算,各種移位指令和邏輯指令也會(huì)改變CF的狀態(tài)。②奇偶校驗(yàn)標(biāo)志(ParityFlag,PF)。奇偶校驗(yàn)標(biāo)志位反映運(yùn)算結(jié)果低8位的奇偶性。若低8位所含1的個(gè)數(shù)為偶數(shù),則PF=1,否則PF=0。該標(biāo)志可用于檢查數(shù)據(jù)傳送過(guò)程中是否發(fā)生錯(cuò)誤。③輔助進(jìn)位標(biāo)志(AuxiliaryCarryFlag,AF)。在8位加減操作中,輔助進(jìn)位標(biāo)志位反映指令執(zhí)行后低4位是否向高4位產(chǎn)生進(jìn)位或借位,若產(chǎn)生進(jìn)位或借位,則AF=1,否則,AF=0。該標(biāo)志用于BCD碼加減法運(yùn)算結(jié)果的調(diào)整。④零標(biāo)志(ZeroFlag,ZF)。零標(biāo)志位反映運(yùn)算結(jié)果是否為0。若運(yùn)算結(jié)果為0,則ZF=1,否則ZF=0。⑤符號(hào)標(biāo)志(SignFlag,SF)。符號(hào)標(biāo)志位用于帶符號(hào)數(shù)的運(yùn)算,若運(yùn)算結(jié)果為負(fù),則SF=1,否則SF=0。SF的取值與運(yùn)算結(jié)果的最高位(符號(hào)位)取值一致。⑥溢出標(biāo)志(OverflowFlag,OF)。判斷有符號(hào)數(shù)運(yùn)算結(jié)果是否產(chǎn)生了錯(cuò)誤。(2)控制標(biāo)志位
①方向標(biāo)志(DirectionFlag,DF)。方向標(biāo)志位用來(lái)決定數(shù)據(jù)串(也簡(jiǎn)稱串)操作時(shí)變址寄存器中的內(nèi)容是自動(dòng)增量還是自動(dòng)減量。若DF=0,則變址寄存器自動(dòng)增量;若DF=1,則變址寄存器自動(dòng)減量。該標(biāo)志位可用STD指令置DF=1,用CLD指令置DF=0。
②中斷允許標(biāo)志(InterruptEnableFlag,IF)。中斷允許標(biāo)志表示系統(tǒng)是否允許響應(yīng)外部的可屏蔽中斷。IF=1,表示允許中斷;IF=0,表示禁止中斷。中斷允許標(biāo)志位可用STI和CLI指令分別置1和置0。該標(biāo)志對(duì)中斷請(qǐng)求以及內(nèi)部中斷不起作用。
③陷阱標(biāo)志(TrapFlag,TF)。陷阱標(biāo)志位用來(lái)控制單步操作。若TF=1,則CPU工作于單步執(zhí)行指令工作方式。CPU每執(zhí)行一條指令就會(huì)自動(dòng)產(chǎn)生一個(gè)內(nèi)部中斷,并轉(zhuǎn)去執(zhí)行中斷處理程序,借以檢查每條指令執(zhí)行的情況。4.段寄存器在8086中,存儲(chǔ)著3類信息,即指令代碼信息、數(shù)據(jù)信息和堆棧信息。指令代碼信息表示CPU可以識(shí)別并執(zhí)行的操作;數(shù)據(jù)信息包括字符和數(shù)值,是程序處理的對(duì)象;堆棧信息保存著返回地址和中間結(jié)果。8086要求不同信息必須分別存放在存儲(chǔ)器不同的存儲(chǔ)段中。
①代碼段寄存器(CodeSegment,CS)。代碼段寄存器用來(lái)存放當(dāng)前執(zhí)行程序所在段的起始地址的高16位(亦稱代碼段地址)。
②堆棧段寄存器(StackSegment,SS)。堆棧段寄存器用來(lái)存放當(dāng)前堆棧段起始地址的高16位(亦稱堆棧段地址)。
③數(shù)據(jù)段寄存器(DataSegment,DS)。數(shù)據(jù)段寄存器用來(lái)存放當(dāng)前數(shù)據(jù)段起始地址的高16位(亦稱數(shù)據(jù)段地址)。
④附加段寄存器(ExtraSegment,ES)。附加段寄存器用來(lái)存放當(dāng)前附加段起始地址的高16位(亦稱附加段地址),通常也用來(lái)存放數(shù)據(jù)。2.1.38086CPU的引腳分布與工作模式8086采用40個(gè)引腳的雙列直插式封裝。
(1)地址/數(shù)據(jù)總線①AD15~AD0(輸入或輸出,三態(tài))為分時(shí)復(fù)用地址/數(shù)據(jù)信號(hào)線,在執(zhí)行存儲(chǔ)器讀寫或I/O操作時(shí),在總線周期的T1狀態(tài)(一個(gè)總線周期由幾個(gè)時(shí)鐘周期組成,這里的時(shí)鐘周期也稱T狀態(tài))作為地址總線A15~A0使用。在其他時(shí)刻作為雙向數(shù)據(jù)總線D15~D0使用。②A19/S6、A18/S5、A17/S4和A16/S3為分時(shí)復(fù)用地址/狀態(tài)信號(hào)線,在進(jìn)行存儲(chǔ)器讀/寫操作的T1狀態(tài)輸出高4位地址A19~A16;對(duì)I/O操作時(shí)4個(gè)引腳全為低電平。在其他狀態(tài)輸出狀態(tài)信息時(shí),S6始終為低電平;S5為中斷允許標(biāo)志位IF的當(dāng)前狀態(tài);S4、S3表示當(dāng)前使用的段寄存器,
(2)控制總線控制總線有16根,其中8根有固定意義,另外8根隨工作模式的不同而有不同的意義。有固定意義的總線對(duì)應(yīng)引腳功能說(shuō)明如下。①M(fèi)N/MX(輸入,引腳33)——工作模式控制線。接+5V電源為最小工作模式;接地時(shí)為最大工作模式。②RD(輸出,三態(tài),引腳32)——讀控制信號(hào)。低電平有效,有效時(shí)表示CPU正在執(zhí)行讀操作。③INTR(輸入,引腳18)——中斷請(qǐng)求信號(hào)。高電平有效,當(dāng)該引腳為高電平,并且中斷標(biāo)志位IF為“1”時(shí),CPU在執(zhí)行完現(xiàn)行指令后,將控制轉(zhuǎn)移到相應(yīng)的中斷處理程序。若中斷標(biāo)志位IF為“0”,CPU不響應(yīng)中斷請(qǐng)求,繼續(xù)執(zhí)行下一條指令。④NMI(輸入,引腳17)——不可屏蔽的中斷請(qǐng)求信號(hào)。上升沿有效,不響應(yīng)軟屏蔽,當(dāng)一個(gè)上升沿到來(lái)時(shí),CPU在執(zhí)行完現(xiàn)行指令后,立即進(jìn)行中斷處理,不受中斷允許標(biāo)志位IF影響。⑤RESET(輸入,引腳21)——復(fù)位信號(hào)。⑤RESET(輸入,引腳21)——復(fù)位信號(hào)。高電平有效,當(dāng)有效時(shí),CPU停止正在運(yùn)行的程序,轉(zhuǎn)而清除指令指針寄存器IP、數(shù)據(jù)段寄存器DS、附加段寄存器ES、堆棧段寄存器SS、標(biāo)志寄存器FR和指令隊(duì)列的值,使其值均為“0”,并置代碼段寄存器CS為FFFFH。該信號(hào)結(jié)束后,CPU從地址為CS:IP=FFFFH:0000H
開(kāi)始的存儲(chǔ)單元執(zhí)行指令。⑥READY(輸入,引腳22)——輸入準(zhǔn)備好的信號(hào)。高電平有效,CPU在總線周期的T3狀態(tài)開(kāi)始檢測(cè)該信號(hào),當(dāng)有效時(shí),下一個(gè)時(shí)鐘周期將數(shù)據(jù)放置到數(shù)據(jù)總線上或從總線上讀??;若無(wú)效,CPU自動(dòng)插入一個(gè)或若干個(gè)等待狀態(tài)TW,直到該信號(hào)有效進(jìn)入T4狀態(tài),完成數(shù)據(jù)傳輸。⑦TEST(輸入,引腳23)——測(cè)試信號(hào)。低電平有效,當(dāng)CPU執(zhí)行WAIT指令時(shí),每隔5個(gè)時(shí)鐘周期對(duì)該引腳采樣,若為高電平,CPU繼續(xù)處于等待狀態(tài),直到出現(xiàn)低電平時(shí),CPU才開(kāi)始執(zhí)行下一條指令。⑧BHE/S7(輸出,三態(tài),引腳34)——分時(shí)復(fù)用信號(hào)線。在總線周期T1狀態(tài)輸出BHE信號(hào),BHE低電平有效,有效時(shí)使用高8位數(shù)據(jù)線AD15~AD8,無(wú)效時(shí)使用低8位數(shù)據(jù)線AD7~AD0。S7目前尚未定義。
(3)其他信號(hào)線①GND——地線。引腳1、20為接地端,雙線接地。②VCC——電源線。引腳40為電源輸入端,電源要求為正電源VCC(5V±10%)。③CLK——時(shí)鐘信號(hào)輸入端。引腳19為CLK,由8284提供所需的主頻,占空比要求為33%(高電平占2/3周期、低電平占1/3周期),這樣可以提供最佳的內(nèi)部時(shí)鐘信號(hào)。不同型號(hào)的CPU使用的主頻也不同,8086使用的主頻為5MHz,8086-1使用的主頻為10MHz。2.工作模式8086根據(jù)MN/MX引腳連接形式不同,其工作模式可分為最小工作模式和最大工作模式。(1)最小工作模式當(dāng)MN/MX引腳接+5V電源時(shí),8086工作在最小工作模式。在最小工作模式下整個(gè)系統(tǒng)只有一個(gè)能執(zhí)行指令的CPU,系統(tǒng)總線始終被該CPU控制,但允許系統(tǒng)中的DMA(DirectMemoryAccess,直接存儲(chǔ)器訪問(wèn))控制器(DMAC)臨時(shí)占用總線。該方式適用于小系統(tǒng)情況,最小工作模式下的片總線結(jié)構(gòu)和8086系統(tǒng)配置如圖2-5所示。(2)最大工作模式當(dāng)MN/MX引腳接地時(shí),8086工作在最大工作模式。2.1.48086CPU對(duì)存儲(chǔ)器的管理1.存儲(chǔ)器的組織存儲(chǔ)器是由許多連續(xù)的存儲(chǔ)單元組成的,每個(gè)存儲(chǔ)單元可根據(jù)硬件電路被分配唯一的單元編碼,即存儲(chǔ)單元地址,由軟件通過(guò)指令對(duì)存儲(chǔ)單元進(jìn)行讀/寫操作。8086有20位地址線,最大的尋址空間為1MB(220B=1MB),其地址范圍為00000H~FFFFFH(用5位十六進(jìn)制數(shù)可表示20位二進(jìn)制地址線)。8086將存儲(chǔ)空間分為兩個(gè)512KB的存儲(chǔ)體,一個(gè)由奇地址構(gòu)成,另一個(gè)由偶地址構(gòu)成,由地址位A0來(lái)區(qū)分。2.物理地址和邏輯地址(1)物理地址在8086中,每個(gè)存儲(chǔ)單元被分配唯一的地址編碼(20位二進(jìn)制代碼),稱為物理地址。物理地址就是存儲(chǔ)單元的實(shí)際地址。CPU與存儲(chǔ)器交換數(shù)據(jù)時(shí)所使用的地址就是物理地址。(2)邏輯地址在編寫程序時(shí)使用的16位地址編碼被稱為邏輯地址,邏輯地址由16位段地址和16位偏移地址組成。邏輯地址是在編程的時(shí)候使用的一種虛擬地址,使用邏輯地址可以讓程序員在編寫程序時(shí),不必關(guān)心自己的數(shù)據(jù)存放的物理位置,只需要按照16位地址信息編寫就可以了。在程序運(yùn)行時(shí),CPU內(nèi)部的總線接口部件將自動(dòng)完成16位段地址和16位偏移地址向20位物理地址的轉(zhuǎn)換。在8086中,16位的段地址必須存放在段寄存器中,它決定一個(gè)邏輯段的起始地址,亦可稱為段基址,它實(shí)際上是20位物理地址的高16位。為了便于管理,每個(gè)段的起始地址應(yīng)能被16整除,也就是說(shuō),它的20位地址中低4位應(yīng)該為0,各個(gè)段的“段基址”分別存放在16位段寄存器CS、DS、SS或ES中。偏移地址為段內(nèi)存儲(chǔ)單元與所在段的起始地址之間的偏移量。(3)邏輯地址向物理地址的轉(zhuǎn)換
段內(nèi)任一單元的地址常用邏輯表達(dá)式“段地址:偏移地址”來(lái)描述。例如,邏輯地址0035H:0000H,表示段地址為0035H,偏移地址為0000H。圖2-11所示為物理地址形成過(guò)程。可以看出,存儲(chǔ)單元的20位物理地址是通過(guò)將16位的“段地址”左移4位后再加上16位的“偏移地址”形成的。邏輯地址和物理地址的轉(zhuǎn)換關(guān)系為:物理地址=段地址×10H(左移4位)+偏移地址例如,在圖2-10中,邏輯地址0035H:0001H,即段地址為0035H,偏移地址為0001H,則其物理地址為:物理地址=0035H×10H+0001H=00350H+0001H=00351H分段技術(shù)給編程尋址存儲(chǔ)單元及存儲(chǔ)器管理提供了便利,在實(shí)際使用時(shí)必須注意段地址與偏移地址的配合關(guān)系,見(jiàn)表2-32.1.58086CPU的工作過(guò)程在計(jì)算機(jī)執(zhí)行程序(指令)前,必須將程序連續(xù)地存儲(chǔ)在存儲(chǔ)單元中。CPU的工作過(guò)程就是在硬件基礎(chǔ)上不斷執(zhí)行指令的過(guò)程。設(shè)3條指令在內(nèi)存中的起始邏輯地址為2000H:1000H,則起始物理地址為21000H該段程序(指令)執(zhí)行過(guò)程如下。①總線接口部件自動(dòng)取出代碼段寄存器CS中的16位段地址2000H,然后取出指令指針寄存器IP中的16位偏移地址1000H(取出后IP內(nèi)容自動(dòng)加1為1001H),經(jīng)地址加法器產(chǎn)生20位地址信息21000H,通過(guò)外部20位地址總線輸出21000H,經(jīng)存儲(chǔ)器芯片譯碼后選定相應(yīng)的存儲(chǔ)單元。②CPU發(fā)出讀命令,從選定的21000H存儲(chǔ)單元中首先取出指令代碼“10110000”,通過(guò)外部數(shù)據(jù)總線傳送到總線接口部件的指令隊(duì)列緩沖器中。這時(shí),執(zhí)行部件可以從指令隊(duì)列緩沖器中取出指令代碼執(zhí)行指令,總線接口部件可以同時(shí)并行地繼續(xù)從存儲(chǔ)器中讀取下一個(gè)存儲(chǔ)單元的指令代碼,IP的內(nèi)容也自動(dòng)指向下一個(gè)存儲(chǔ)單元。③執(zhí)行部件從總線接口部件指令代碼的隊(duì)列中按“先進(jìn)先出”方式取出指令代碼,經(jīng)執(zhí)行部件控制器分析(譯碼)產(chǎn)生一系列相應(yīng)的控制命令。由于第一字節(jié)指令的功能是把該指令第二字節(jié)地址1001H單元的內(nèi)容09H傳送給累加器AL,在控制器所發(fā)出的控制命令作用下,執(zhí)行部件從指令隊(duì)列緩沖器取出數(shù)據(jù)09H經(jīng)內(nèi)部數(shù)據(jù)總線送入累加器AL。至此,第一條指令執(zhí)行完畢。④執(zhí)行部件繼續(xù)從總線接口部件的指令隊(duì)列中取第二條指令,經(jīng)執(zhí)行部件控制器分析產(chǎn)生一系列相應(yīng)的控制命令,類似第一條指令的執(zhí)行過(guò)程,完成累加器AL的內(nèi)容09H加12H,將和送給累加器AL。⑤執(zhí)行第三條指令,其功能為程序暫停執(zhí)行。2.28086CPU的總線周期和操作時(shí)序計(jì)算機(jī)在運(yùn)行時(shí)必須有嚴(yán)格的時(shí)序控制各種微操作。在時(shí)序的控制下,才能保障操作有序進(jìn)行。計(jì)算機(jī)中常用的時(shí)序控制信號(hào)有時(shí)鐘周期、總線周期和指令周期,并在此基礎(chǔ)上形成和總線操作有關(guān)的幾種基本操作時(shí)序。2.2.1時(shí)鐘周期、總線周期和指令周期
1.時(shí)鐘周期時(shí)鐘周期是CPU的時(shí)間基準(zhǔn),是CPU運(yùn)行時(shí)的最小時(shí)間單位。8086是在統(tǒng)一的時(shí)鐘信號(hào)控制下,按節(jié)拍有序地工作。時(shí)鐘周期由CPU的主頻決定,主頻越高,時(shí)鐘周期越短,計(jì)算機(jī)運(yùn)行速度越快。例如,某CPU主頻為2GHz,則其時(shí)鐘周期為5×10-10s。2.總線周期CPU對(duì)存儲(chǔ)器或I/O接口的訪問(wèn)是通過(guò)總線來(lái)完成的。通常,將一次訪問(wèn)總線所需的時(shí)間稱為一個(gè)總線周期,或稱為機(jī)器周期。每當(dāng)CPU要從存儲(chǔ)器或I/O端口存取一個(gè)字節(jié)或字就需要一個(gè)總線周期,一個(gè)總線周期由若干個(gè)時(shí)鐘周期組成。在8086中,總線周期通常由4個(gè)時(shí)鐘周期(T1、T2、T3、T4)組成,處于時(shí)鐘周期中的總線稱為T狀態(tài)。一個(gè)總線周期完成一次數(shù)據(jù)傳送,至少要有傳送地址和傳送數(shù)據(jù)兩個(gè)過(guò)程。傳送地址在時(shí)鐘周期T1內(nèi)完成。傳送數(shù)據(jù)必須在時(shí)鐘周期T2、T3、T4內(nèi)完成。否則在時(shí)鐘周期T4后,將開(kāi)始下一個(gè)總線周期。3.指令周期每條指令都包括取指令、譯碼和執(zhí)行等操作,完成一條指令執(zhí)行過(guò)程所需的時(shí)間稱為指令周期,指令不同,執(zhí)行周期也不盡相同。一個(gè)指令周期由若干個(gè)總線周期組成。時(shí)鐘周期、總線周期和指令周期的關(guān)系如圖2-12所示。2.2.2基本的總線時(shí)序
總線時(shí)序就是CPU通過(guò)總線進(jìn)行操作時(shí),總線上各信號(hào)在時(shí)間上的配合關(guān)系。CPU在總線上進(jìn)行的操作,是指令譯碼器輸出的微操作命令在外部時(shí)鐘信號(hào)時(shí)序控制聯(lián)合作用下的執(zhí)行過(guò)程。常見(jiàn)的基本操作時(shí)序有讀總線周期時(shí)序、寫總線周期時(shí)序、中斷響應(yīng)操作時(shí)序、總線保持與響應(yīng)時(shí)序和系統(tǒng)復(fù)位時(shí)序等。1.最小工作模式下的讀總線周期時(shí)序8086完成從存儲(chǔ)器或I/O端口讀一個(gè)數(shù)據(jù)的操作是由讀總線周期控制的,最小工作模式下的讀總線周期時(shí)序如圖2-13所示。讀總線周期由4個(gè)時(shí)鐘周期(T1~T4)組成,在CPU的讀總線周期內(nèi),有關(guān)總線信號(hào)的變化如下。
①M(fèi)/IO:在T1周期開(kāi)始有效直到總線周期結(jié)束,讀存儲(chǔ)器時(shí)M/IO為高電平;讀I/O端口時(shí)M/IO為低電平。②A19~A16/S6~S3:T1周期內(nèi),輸出存儲(chǔ)器單元或I/O端口的高4位地址,T2~T4周期內(nèi)輸出狀態(tài)信息S6~S3。③BHE/S7:在T1周期內(nèi),BHE為低電平,表示高8位數(shù)據(jù)線上的信息可以使用。T2~T4周期內(nèi)輸出高電平。④AD15~AD0:在T1周期內(nèi),用來(lái)作為地址總線的低16位;T2周期內(nèi)為高阻態(tài);T3~T4周期內(nèi),用來(lái)作為16位數(shù)據(jù)總線,可以從總線接收數(shù)據(jù);若在T3周期內(nèi)不能將數(shù)據(jù)送到數(shù)據(jù)總線上,則在T3~T4周期內(nèi)插入等待狀態(tài)Tw,直到數(shù)據(jù)送入數(shù)據(jù)總線上,進(jìn)入T4周期,在T4周期的開(kāi)始下降沿,CPU采樣數(shù)據(jù)總線。⑤ALE:系統(tǒng)中的地址鎖存器利用該脈沖的下降沿來(lái)鎖存20位地址信息以及BHE。⑥RD:讀取選中的存儲(chǔ)單元或I/O端口中的數(shù)據(jù)。⑦DT/R:在T1周期內(nèi)輸出低電平,表示本總線周期為讀周期,在接有數(shù)據(jù)總線收發(fā)器的系統(tǒng)⑧DEN:低電平有效,在T2~T3周期內(nèi)表示數(shù)據(jù)有效,在接有數(shù)據(jù)總線收發(fā)器的系統(tǒng)中,其用來(lái)實(shí)現(xiàn)數(shù)據(jù)的選通。2.最小工作模式下的寫總線周期時(shí)序8086在對(duì)存儲(chǔ)器或I/O端口寫入一個(gè)數(shù)據(jù)時(shí),進(jìn)入寫總線周期。最小工作模式下的寫總線周期時(shí)序如圖2-14所示。寫總線周期時(shí)序與讀總線周期時(shí)序很相似,大部分信號(hào)和讀操作的信號(hào)類似,不同之處如下。AD15~AD0:在T2~T4周期內(nèi)沒(méi)有高阻態(tài)。WR:低電平有效,向選中的存儲(chǔ)器或I/O端口寫入數(shù)據(jù)。DT/R:高電平有效,在總線周期內(nèi)保持為高電平,表示寫周期,在接有數(shù)據(jù)總線收發(fā)器的系統(tǒng)中,其用來(lái)控制數(shù)據(jù)傳輸方向。3.中斷響應(yīng)操作時(shí)序CPU在執(zhí)行中斷響應(yīng)操作時(shí),需要經(jīng)過(guò)兩個(gè)總線周期,由硬件完成響應(yīng)操作,然后才能轉(zhuǎn)入中斷處理程序執(zhí)行。中斷響應(yīng)操作時(shí)序如圖2-15所示。4.總線保持與響應(yīng)時(shí)序在系統(tǒng)中的其他設(shè)備請(qǐng)求使用總線時(shí),會(huì)向CPU發(fā)出請(qǐng)求信號(hào)HOLD,當(dāng)CPU收到HOLD有效信號(hào)后,會(huì)在總線周期的T4或下一個(gè)總線周期的T1的下降沿輸出保持信號(hào)HLDA,接著在下一個(gè)時(shí)鐘周期開(kāi)始,CPU將讓出總線控制權(quán)。當(dāng)外設(shè)的DMA傳送結(jié)束時(shí),HOLD信號(hào)變?yōu)榈碗娖?,則在下一個(gè)時(shí)鐘周期的下降沿使HLDA信號(hào)變?yōu)闊o(wú)效信號(hào)。圖2-16所示是總線保持與響應(yīng)時(shí)序。5.系統(tǒng)復(fù)位時(shí)序8086的RESET引腳可以用來(lái)啟動(dòng)或復(fù)位系統(tǒng)。當(dāng)CPU在RESET引腳檢測(cè)到一個(gè)脈沖上升沿時(shí),它將停止正在進(jìn)行的所有操作,維持在復(fù)位狀態(tài),系統(tǒng)復(fù)位時(shí)序如圖2-17所示。①在復(fù)位狀態(tài),除代碼段寄存器CS被置為FFFFH外,CPU內(nèi)部寄存器(包括指令指針寄存器)連同指令隊(duì)列均被清0。當(dāng)RESET信號(hào)變?yōu)楦唠娖綍r(shí),再過(guò)一個(gè)時(shí)鐘周期,所有三態(tài)輸出線都被置為高阻態(tài),直到RESET信號(hào)變?yōu)榈碗娖?。②?dāng)RESET由高電平變?yōu)榈碗娖綍r(shí),CPU內(nèi)部復(fù)位邏輯電路經(jīng)過(guò)7個(gè)CLK時(shí)鐘周期之后,CPU自動(dòng)恢復(fù)正常。開(kāi)始執(zhí)行第一條指令的邏輯地址為CS:IP=0FFFFH:0000H,其物理地址為0FFFF0H。2.332位CPU結(jié)構(gòu)及特點(diǎn)
32位CPU是指CPU處理一次數(shù)據(jù)的寬度為32位。隨著大規(guī)模集成電路的發(fā)展,Intel公司先后推出了80386、80486、Pentium等32位的CPU。2.3.1從80286到80386的技術(shù)發(fā)展1.802861982年2月,Intel公司在8086的基礎(chǔ)上推出了80286CPU。80286的官方名稱為iAPX286,是Intel公司的一款x86系列CPU。80286集成了約13.4萬(wàn)個(gè)晶體管,機(jī)器字長(zhǎng)為16位,主頻由最初的6MHz逐步提高到后來(lái)的20MHz。其內(nèi)部和外部數(shù)據(jù)總線皆為16位,地址總線為24位。與8086相比,80286尋址空間達(dá)到了16MB,可以使用外部存儲(chǔ)設(shè)備模擬大量存儲(chǔ)空間,從而大大擴(kuò)展了80286的工作范圍,還能通過(guò)多任務(wù)硬件控制使CPU在各種任務(wù)間來(lái)回快速切換,實(shí)現(xiàn)同時(shí)運(yùn)行多個(gè)任務(wù),其速度比8086提高了5倍甚至更多。80286有兩種工作模式:實(shí)模式和保護(hù)模式。實(shí)模式下,80286與8086的工作方式一樣,相當(dāng)于一個(gè)快速8086。80286可直接訪問(wèn)的內(nèi)存空間被限制在1MB,更多內(nèi)存空間需要通過(guò)EMS或XMS內(nèi)存機(jī)制進(jìn)行映射才能進(jìn)行訪問(wèn)。保護(hù)模式下,80286提供了虛擬存儲(chǔ)管理和多任務(wù)的硬件控制,能直接尋址16MB內(nèi)存和1GB的虛擬存儲(chǔ)器,具有異常處理機(jī)制,這為后來(lái)Microsoft公司的多任務(wù)操作系統(tǒng)準(zhǔn)備了條件。2.8038680386CPU將PC從“16位時(shí)代”帶入了“32位時(shí)代”。80386被廣泛應(yīng)用在20世紀(jì)80年代中期到20世紀(jì)90年代中期的PC中。這些PC被稱為“386計(jì)算機(jī)”,有時(shí)也簡(jiǎn)稱“386”。(1)80386基本結(jié)構(gòu)80386兼容8086和80286,是為多用戶及多任務(wù)操作系統(tǒng)設(shè)計(jì)的一種高集成度芯片。80386的數(shù)據(jù)線、內(nèi)部寄存器結(jié)構(gòu)和操作均為32位,具有32位的外部地址線,能直接尋址4GB(232B)的物理地址空間,其虛擬存儲(chǔ)空間為64TB(264B)。(2)32位CPU的編程結(jié)構(gòu)
在80386及其以后的80x86CPU中,CPU內(nèi)部通用寄存器擴(kuò)展為32位,這些寄存器可以用來(lái)編程,在功能上和8086的基本相似,如圖2-19所示。①通用寄存器:累加器EAX、基址寄存器EBX、計(jì)數(shù)寄存器ECX、數(shù)據(jù)寄存器EDX、源變址寄存器ESI、目的變址寄存EDI、基址指針EBP、堆棧指針ESP,這些寄存器的低16位與8086兼容,支持1位、8位、16位和32位操作數(shù)編程,既可以作為32位寄存器使用,也可以作為兼容8086規(guī)定的16位或8位寄存器使用。②專用寄存器:32位的指令指針EIP(8086中為16位的指令指針寄存器IP)它指向要執(zhí)行的指令的偏移地址。32位標(biāo)志寄存器EFLAGS(8086中為16位的標(biāo)志寄存器FLAGS)包含當(dāng)前的狀態(tài)標(biāo)志和控制標(biāo)志。③段寄存器:段寄存器CS、DS、SS、ES仍然為16位,用來(lái)存放存儲(chǔ)器的段基址,每個(gè)存儲(chǔ)段的存儲(chǔ)容量為64KB。增加了數(shù)據(jù)段寄存器FS和GS。在80386工作在實(shí)模式和虛擬86模式時(shí),段寄存器存放16位段基址,與8086兼容。在保護(hù)模式下,段寄存器中存放的不是段基址,而是段選擇子的指示器。段的全部信息存放在段描述符中,包括段基址、段的長(zhǎng)度范圍及段的各種屬性,以實(shí)現(xiàn)對(duì)4GB程序存儲(chǔ)器的尋址。(3)80386的特點(diǎn)80386的特點(diǎn)如下。①首次在x86CPU中實(shí)現(xiàn)32位系統(tǒng)。②可配合使用80387數(shù)學(xué)輔助CPU增強(qiáng)浮點(diǎn)運(yùn)算能力。③首次采用高速緩存(外置)解決內(nèi)存運(yùn)行速度瓶頸問(wèn)題。由于這些設(shè)計(jì),80386的運(yùn)算速度比其前代產(chǎn)品80286提高了幾倍。④80386DX版本的內(nèi)部和外部數(shù)據(jù)總線是32位,地址總線也是32位,可以尋址到4GB內(nèi)存空間,并可以管理64TB的虛擬存儲(chǔ)空間。(4)工作模式80386有3種工作模式:實(shí)模式、保護(hù)模式、虛擬86模式。實(shí)模式為磁盤操作系統(tǒng)(DiskOperatingSystem,DOS)的常用模式,直接訪問(wèn)內(nèi)存空間被限制在1MB;保護(hù)模式下,80386DX版本可以直接訪問(wèn)4GB的內(nèi)存空間,并具有異常處理機(jī)制;虛擬86模式可以同時(shí)模擬多個(gè)8086CPU來(lái)加強(qiáng)多任務(wù)處理能力。2.3.280486CPU1.80486CPU概述Intel公司推出了80486CPU,其內(nèi)部通用寄存器、標(biāo)志寄存器、指令寄存器、地址總線和外部數(shù)據(jù)總線都是32位的。與以前的CPU相比,80486在性能上有了很大改進(jìn),主要表現(xiàn)在以下幾點(diǎn)。①把浮點(diǎn)數(shù)字協(xié)處理器和一個(gè)8KB的高速緩存首次集成進(jìn)CPU內(nèi)部,減少了外部數(shù)據(jù)傳輸環(huán)節(jié),大大提高了微型計(jì)算機(jī)的運(yùn)行速度。②指令系統(tǒng)首次采用精簡(jiǎn)指令集計(jì)算機(jī)(ReducedInstructionSetComputer,RISC)設(shè)計(jì)思想,使80486既具有復(fù)雜指令集計(jì)算機(jī)(ComplexInstructionSetComputer,CISC)類CPU的特點(diǎn),又具有RISC類CPU的特點(diǎn),采用該技術(shù),其核心指令在1個(gè)時(shí)鐘周期內(nèi)就可完成。③在總線接口部件中沒(méi)有突發(fā)式總線控制和緩存控制電路,支持突發(fā)式總線周期中從內(nèi)存或外部緩存高速讀取指令或數(shù)據(jù)。④將CPU內(nèi)部通用寄存器和專用寄存器擴(kuò)展為32位。這些改進(jìn)使80486成為一款高性能的32位CPU,對(duì)多任務(wù)處理以及先進(jìn)存儲(chǔ)管理方式的支持更加完善、可靠。2.80486基本結(jié)構(gòu)80486基本結(jié)構(gòu)如圖2-20所示,與以往CPU比較,除某些功能有了進(jìn)一步改進(jìn)外,內(nèi)部新增了浮點(diǎn)運(yùn)算部件和高速緩存部件。前者用于完成協(xié)處理器的功能,后者用于存放CPU最近使用的程序和數(shù)據(jù)。當(dāng)CPU要訪問(wèn)存儲(chǔ)器時(shí),先訪問(wèn)緩存部件,只有要訪問(wèn)的數(shù)據(jù)不在緩存內(nèi)時(shí),才去訪問(wèn)存儲(chǔ)器。這一改進(jìn)明顯提高了CPU的訪問(wèn)速度。80486由總線接口部件、指令預(yù)取部件、指令譯碼部件、控制/保護(hù)部件、算術(shù)與邏輯整數(shù)運(yùn)算部件、浮點(diǎn)運(yùn)算部件、分段部件、分頁(yè)部件和8KB高速緩存部件等部分組成。這些部件既可以獨(dú)立工作,也可以并行工作。在取指令和執(zhí)行指令時(shí),每個(gè)部件完成一項(xiàng)任務(wù)或某一
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專業(yè)加盟合作協(xié)議(2024版)細(xì)則版
- 2025年茶園租賃合同示范文本8篇
- 2024版轎車租借合同:全面保障合同條款版
- 2025年度柴油發(fā)電機(jī)及配件全球采購(gòu)合同范本4篇
- 2024年04月陜西西安銀行金融市場(chǎng)及資產(chǎn)管理業(yè)務(wù)人才招考筆試歷年參考題庫(kù)附帶答案詳解
- 專業(yè)空氣能熱泵熱水器安裝工程協(xié)議規(guī)范文本版B版
- 專業(yè)設(shè)備采購(gòu)銷售協(xié)議:2024版細(xì)則版A版
- 2025年度綠色建筑場(chǎng)調(diào)研與投資評(píng)估服務(wù)合同4篇
- 二零二五年度瓷磚行業(yè)供應(yīng)鏈管理合同3篇
- 2025年環(huán)保設(shè)備產(chǎn)品區(qū)域代理合同4篇
- GB/T 18476-2001流體輸送用聚烯烴管材耐裂紋擴(kuò)展的測(cè)定切口管材裂紋慢速增長(zhǎng)的試驗(yàn)方法(切口試驗(yàn))
- GA 1551.5-2019石油石化系統(tǒng)治安反恐防范要求第5部分:運(yùn)輸企業(yè)
- 拘留所教育課件02
- 沖壓生產(chǎn)的品質(zhì)保障
- 《腎臟的結(jié)構(gòu)和功能》課件
- 2023年湖南聯(lián)通校園招聘筆試題庫(kù)及答案解析
- 上海市徐匯區(qū)、金山區(qū)、松江區(qū)2023屆高一上數(shù)學(xué)期末統(tǒng)考試題含解析
- 護(hù)士事業(yè)單位工作人員年度考核登記表
- 天津市新版就業(yè)、勞動(dòng)合同登記名冊(cè)
- 產(chǎn)科操作技術(shù)規(guī)范范本
- 人教版八年級(jí)上冊(cè)地理全冊(cè)單元測(cè)試卷(含期中期末試卷及答案)
評(píng)論
0/150
提交評(píng)論