微處理器及系統(tǒng).ppt_第1頁
微處理器及系統(tǒng).ppt_第2頁
微處理器及系統(tǒng).ppt_第3頁
微處理器及系統(tǒng).ppt_第4頁
微處理器及系統(tǒng).ppt_第5頁
已閱讀5頁,還剩110頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

8086處理器 80386處理器 80486處理器 Pentium處理器 程序設(shè)計(jì)模型,本章要點(diǎn),第2章 微處理器及系統(tǒng),系統(tǒng)主要組成,80868088由兩個(gè)獨(dú)立的處理部件組成: 執(zhí)行部件EU(Execution Unit) 總線接口部件BIU(Bus Interface Unit) 設(shè)置了指令預(yù)取隊(duì)列,支持以流水方式執(zhí)行指令,2.1 8086處理器,處理器字長(zhǎng): 處理8位或16位的數(shù)據(jù), 時(shí)鐘頻率為48MHz 直接尋址的存儲(chǔ)空間為1M字節(jié)(220) 中斷源為256級(jí),包括內(nèi)部軟件和外部硬件中斷 支持最小方式(單CPU)和最大方式(多CPU)工作 ) 獨(dú)立的I/O端口地址尋址方式: I/O端口有64K個(gè),2.1.1 主要性能指標(biāo),2.1.2 8086內(nèi)部結(jié)構(gòu),BIU完成內(nèi)外信息交換,即: 取指令 傳送數(shù)據(jù) 形成物理地址 EU執(zhí)行全部指令,即: 指令譯碼 執(zhí)行指令 向BIU傳送偏移地址信息 管理通用寄存器和標(biāo)志寄存器,1. BIU與EU的主要功能,BIU和EU并行操作示意圖,通用寄存器 既可用作16位也可用作8位。 AX作為累加器, 在字(AL,AH字節(jié))乘,除法運(yùn)算中存放結(jié)果,I/O指令中傳送數(shù)據(jù). BX作為基址寄存器, CX作為計(jì)數(shù)寄存器 (如循環(huán)、串操作) DX作為端口地址寄存器,2. 8086/8088內(nèi)部寄存器,地址指針寄存器SP,BP SP:堆棧指針寄存器 BP:基址指針寄存器 變址寄存器SI,DI SI:源變址寄存器 DI:目的變址寄存器,段寄存器CS,DS,SS,ES CS:代碼段寄存器 DS:數(shù)據(jù)段寄存器 SS:堆棧段寄存器 ES:附加段寄存器 指令指針寄存器IP 存放預(yù)取指令的偏移地址.,D15,D0,OF DF IF TF SF ZF AF PF CF,進(jìn)借位標(biāo)志,奇偶標(biāo)志,輔助進(jìn)借位標(biāo)志,全零標(biāo)志,符號(hào)標(biāo)志,單步中斷,中斷允許,方向標(biāo)志,溢出標(biāo)志,1-有進(jìn)、借位 0-無進(jìn)、借位,1-低8位有偶數(shù)個(gè)1 0-低8位有奇數(shù)個(gè)1,1-低4位向高4位有進(jìn)、借位 0-低4位向高4位無進(jìn)、借位,1-結(jié)果為0 0-結(jié)果不為0,標(biāo)志寄存器FLAGS 記錄算術(shù)和邏輯運(yùn)算的一些狀態(tài)標(biāo)志, 有16位,其中有7位未用。,控制標(biāo)志(3個(gè)) DF(direction flag):方向標(biāo)志. IF(interrupt enable flag):中斷允許標(biāo)志 TF(trap flag):跟蹤(陷阱)標(biāo)志 狀態(tài)標(biāo)志(6個(gè)) CF 進(jìn)/借位標(biāo)志(Carry Flag):有進(jìn)/借位為1,無進(jìn)借位為0。另循環(huán)指令也使CF=1。 AF 輔助進(jìn)位標(biāo)志(Auxiliary Carry Flag):低4位向高位有進(jìn)/借位(即第3位向第4位進(jìn)位)為1,否則AF=0。 PF 奇偶標(biāo)志(Parity Flag):運(yùn)算結(jié)果若低8位所含1的個(gè)數(shù)為偶數(shù),則PF=1,否則PF=0。 ZF 全零標(biāo)志(Zero Flag):當(dāng)運(yùn)算結(jié)果使有效位數(shù)的各位全為零時(shí)ZF=1,否則ZF=0。 SF 符號(hào)標(biāo)志(Sign Falg):當(dāng)運(yùn)算結(jié)果為負(fù)時(shí)SF=1,否則SF=0。SF的值就是有符號(hào)數(shù)的最高位(符號(hào)位)。 OF 溢出標(biāo)志(Overflow Flag):當(dāng)運(yùn)算結(jié)果超出了機(jī)器所能表示的范圍時(shí),則OF=1,表示溢出,否則OF=0。 溢出判斷方法:OP=Cn-1異或 Cn-2,2.1.3 存儲(chǔ)器組織,在8088/8086系統(tǒng)中,存儲(chǔ)器是按字節(jié)編址的,其尋址空間為1MB,每個(gè)字節(jié)地址為20位,這20位的地址稱為物理地址。,1.存儲(chǔ)器的分段,為什么要分段?,物理地址:20位 8086寄存器:16位,能處理的地址目標(biāo)只能是16位 (216=64KB) 因此,把1MB存儲(chǔ)空間分成若干個(gè)邏輯段,每個(gè)邏輯段的容量=64KB。 段與段之間可以相互獨(dú)立或首尾相連或相互重疊。 對(duì)于任何一個(gè)物理地址,可以唯一的包含在一個(gè)邏輯段中,也可以包含在多個(gè)相互重疊的邏輯段中。,一種特殊的分段情況。,規(guī)定:段的首地址低4位為零,段首地址的高16位稱為“段基址”,存放在段寄存器DS、CS、ES、SS中,段內(nèi)的偏移地址存放在IP中。,物理地址(絕對(duì)地址):用20位二進(jìn)制數(shù)表示 邏輯地址: 程序員使用的地址,由段基址和偏移地址組成,它們都是用16位二進(jìn)制數(shù)表示。 每個(gè)存儲(chǔ)單元對(duì)應(yīng)一個(gè)20位的物理地址,它由邏輯地址變換而來。CPU自動(dòng)將邏輯地址轉(zhuǎn)換成相應(yīng)的物理地址。,2. 邏輯地址和物理地址,物理地址的形成,例: CS=FA00H IP=0300H 物理地址=FA000H+0300H =FA300H,物理地址=段基址*16+偏移地址 通過BIU的地址加法器實(shí)現(xiàn)。,段基址、段首址、段的起始地址之間的區(qū)別與關(guān)系?,段首址=段基址*10H,注意: A段既可作為代碼段,也可作為數(shù)據(jù)段,還可作為堆棧段段,要把段基址賦值給相應(yīng)的段寄存器。,用段來組織邏輯空間,每段最長(zhǎng)可達(dá)64KB 各段起始地址的低4位為0 各段之間可以分開、部分或完全重疊、可首尾相接 根據(jù)各段的用途將其定義為CS、DS、ES、SS段,并用偏移地址表示被訪問單元 CS段中用IP表示偏移量 SS段中用SP、BP DS/ES段中用BX、SI、DI、數(shù)值,CS 0000,IP,DS或ES 0000,SI、DI或BX,SS 0000,SP或BP,段寄存器和偏移地址寄存器組合關(guān)系,例題,哪兩種地址合成物理地址? 下列合成物理地址是否正確?是發(fā)生在取指令或執(zhí)行指令? 1. CS:SP 2. DS:DI 3. DS:IP 4. SS:SP,已知CS=FA00H,IP=0300H,求當(dāng)前指令的實(shí)際地址。 指令的物理地址=FA000H+0300H=FA300H,計(jì)算下列地址 1. 1000H:1234H=? 2. A200H:12CFH=? 3. A000H:?=A0123 4. ?:CD21H=32D21H,2.1.4 8086/8088工作模式,最小模式: 指在系統(tǒng)中只有一個(gè)微處理器,系統(tǒng)中的所有總線控制信號(hào)都直接由8086/8088產(chǎn)生,因此整個(gè)系統(tǒng)中的控制線路最簡(jiǎn)單,對(duì)應(yīng)這種工作模式稱為最小模式。 最大模式:是相對(duì)于最小模式而言的,指系統(tǒng)中含有兩個(gè)或兩個(gè)以上微處理器,其中一個(gè)就是8086/8088為主處理器,其它都是協(xié)處理器。 在8086/8088系統(tǒng)中與其配合的協(xié)處理器有數(shù)值運(yùn)算協(xié)處理器8087和輸入輸出協(xié)處理器8089。 處理器的最小定時(shí)單位,它由主頻決定。 模式由硬件決定: CPU引腳MN/MX_為“1”高電平,在最小模式; 為“0”電平,在最大模式.,A. 最小模式下的典型配置,B. 最大模式下的典型配置,5.8086/8088引腳信號(hào),8086,8088,40引腳集成芯片,引腳含義,NMI為硬件中斷源中不可屏蔽中斷輸入信號(hào),上升沿有效。 INTR為硬件中斷源中可屏蔽中斷的輸入信號(hào),高電平有效。所有外部調(diào)設(shè)備的中斷源均接至中斷控制器,通過中斷控制器輸出再接入INTR引腳。實(shí)現(xiàn)中斷管理 AD15-AD0:地址/數(shù)據(jù)復(fù)用引腳,A19/S6A16/S3:地址/狀態(tài)復(fù)用輸出線 BHE/S7:高8位數(shù)據(jù)總線允許/狀態(tài)復(fù)用輸出線 RD:讀信號(hào)輸出線 CLK:時(shí)鐘輸入線 RESET:復(fù)位信號(hào)輸入線 READY:準(zhǔn)備好信號(hào)輸入線(由存儲(chǔ)器和I/O設(shè)備發(fā)來) MN/MX GND和Vcc,第2431引腳的信號(hào)含義與工作模式有關(guān)。,S0S7含義,S7未定義 S6始終為低 S5與標(biāo)志寄存器中的中斷允許標(biāo)志IF一致。 S4、S3表示使用的段寄存器 S2-、S1-、S0-組合確定最大模式下總線操作類型 (見P13),QS1和QS0含義,QS1和QS0在最大模式下表示指令隊(duì)列的使用情況,最小模式總線操作,最大模式總線操作類型,6. 總線周期的概念,總線周期:CPU通過總線與存儲(chǔ)器或I/O接口進(jìn)行一次數(shù)據(jù)傳輸所需的時(shí)間。 時(shí)鐘周期:微處理器的最小定時(shí)單位,它由主頻決定。 8086/8088一個(gè)基本總線周期包括4個(gè)時(shí)鐘周期的時(shí)間。習(xí)慣稱為4個(gè)狀態(tài),分別記為T1、T2、T3和T4狀態(tài)。 T1狀態(tài):輸出地址信息并鎖存。 T2狀態(tài):撤消地址,為傳送數(shù)據(jù)作準(zhǔn)備。 T3狀態(tài):如果外部準(zhǔn)備好,則數(shù)據(jù)穩(wěn)定在總線上。 T4狀態(tài):讀寫總線上的數(shù)據(jù),總線周期結(jié)束。 指令周期:在微機(jī)系統(tǒng)中,CPU是在時(shí)鐘信號(hào)CLK控制下,按節(jié)拍有序地執(zhí)行指令序列。從取指令開始,經(jīng)過分析指令、對(duì)操作數(shù)尋址,然后執(zhí)行指令、保存操作結(jié)果,這個(gè)過程稱為指令執(zhí)行周期.一條指令從取出到執(zhí)行完畢所需要的時(shí)間。,8086/8088總線時(shí)序(讀),(1)T1狀態(tài) M/IO信號(hào):從存儲(chǔ)器讀還是從I/O設(shè)備中讀數(shù)據(jù); AD15-AD0、A19/S7-A16/S3:確定20位地址; /BHE:選擇奇地址存儲(chǔ)體選擇。 ALE:地址鎖存信號(hào),以使地址/數(shù)據(jù)線分開。,(2)T2狀態(tài) A19/S6-A16/S3:出現(xiàn)S6-S3狀態(tài)信號(hào)。決定段寄存器、IF狀態(tài)、8086CPU是否連在總線上。 AD15-AD0:高阻狀態(tài)。 /RD:由高電平變?yōu)榈碗娖?,開始進(jìn)行讀操作。 /DEN:變低電平,啟動(dòng)收發(fā)器8268,做好接收數(shù)據(jù)的準(zhǔn)備。,(3)T3狀態(tài) 若存儲(chǔ)器或I/O端口已做好發(fā)送數(shù)據(jù)準(zhǔn)備,則在T3狀態(tài)期間將數(shù)據(jù)放到數(shù)據(jù)總線上,在T3結(jié)束時(shí),CPU從AD15-AD0上讀取數(shù)據(jù)。,(4)TW狀態(tài) 在T3狀態(tài),存儲(chǔ)器或外設(shè)沒有準(zhǔn)備好數(shù)據(jù),不能在T3狀態(tài)將數(shù)據(jù)放到總線上,使READY=0,則CPU在T3和T4之間插入一個(gè)或幾個(gè)TW狀態(tài),直到數(shù)據(jù)準(zhǔn)備好READY=1為止。 TW狀態(tài)時(shí)總線的動(dòng)作與T3時(shí)相同。,(5)T4狀態(tài) CPU對(duì)數(shù)據(jù)總線進(jìn)行采樣,讀出數(shù)據(jù)。,總線時(shí)序(寫),(1)T1狀態(tài) M/IO信號(hào):對(duì)存儲(chǔ)器寫還是對(duì)I/O設(shè)備中寫數(shù)據(jù); AD15-AD0、A19/S7-A16/S3:確定20位地址; /BHE:選擇奇地址存儲(chǔ)體選擇。 ALE:地址鎖存信號(hào),以使地址/數(shù)據(jù)線分開。 DT/R:為高電平,指示收發(fā)器8286發(fā)送數(shù)據(jù),寫操作。 (2)T2狀態(tài) A19/S6-A16/S3:出現(xiàn)S6-S3狀態(tài)信號(hào)。決定段寄存器、IF狀態(tài)、8086CPU不否連在總線上。,AD15-AD0:發(fā)出16位數(shù)據(jù)。 /WR:由高電平變?yōu)榈碗娖剑_始進(jìn)行寫操作。 /DEN:變低電平,啟動(dòng)收發(fā)器8268,做好發(fā)送數(shù)據(jù)的準(zhǔn)備。 (3)T3狀態(tài) 若存儲(chǔ)器或I/O端口已做好接收數(shù)據(jù)準(zhǔn)備,則在T3狀態(tài)期間將數(shù)據(jù)放到數(shù)據(jù)總線上,在T3結(jié)束時(shí),CPU將AD15-AD0上數(shù)據(jù)寫入到存儲(chǔ)器或I/O設(shè)備中。 (4)TW狀態(tài) 在T3狀態(tài),存儲(chǔ)器或外設(shè)沒有準(zhǔn)備好接收數(shù)據(jù),使READY=0,則CPU在T3和T4之間插入一個(gè)或幾個(gè)TW狀態(tài),直到設(shè)備準(zhǔn)備好READY=1為止。,(5)T4狀態(tài) 在T4狀態(tài),數(shù)據(jù)從數(shù)據(jù)總線上被撤除,各種控制信號(hào)和狀態(tài)信號(hào)進(jìn)入無效狀態(tài),CPU完成了對(duì)存儲(chǔ)器或I/O設(shè)備的寫操作。,2.2.1 主要特點(diǎn) 80386微處理器 1時(shí)鐘頻率提高 20MHz以上,遠(yuǎn)遠(yuǎn)高于80286的時(shí)鐘頻率。 2尋址能力增強(qiáng) 80386提供了32位地址總線,尋址能力提高到4096MB(232=4GB)。 3增強(qiáng)內(nèi)存管理 從80386開始,除了分段管理外,還增加了內(nèi)存分頁 (Memory Paging) 的技術(shù)。 4增加了虛擬86工作方式 除了保持了80286的實(shí)地址方式和保護(hù)方式外,80386還增加了一種叫做保護(hù)方式下的虛擬8086方式(簡(jiǎn)稱虛擬8086或虛擬86或V86方式)。,2.2 80386/80486微處理器,80486微處理器,特點(diǎn): 采用精簡(jiǎn)RISC指令技術(shù) 芯片含有8K內(nèi)部CACHE 芯片含有80387協(xié)處理器 采用猝發(fā)式總線(Burst Bus)技術(shù) 性能: 外部數(shù)據(jù)、地址總線:32位 最大工作頻率:133M 流水線:5級(jí) 邏輯地址空間:64T 物理地址空間:4G,2.2.2 內(nèi)部結(jié)構(gòu),80386的功能模塊,80386內(nèi)部結(jié)構(gòu)圖,80486的內(nèi)部結(jié)構(gòu)框圖,ALU:定點(diǎn)數(shù)運(yùn)算和邏輯運(yùn)算部件(80386) FPU:浮點(diǎn)數(shù)運(yùn)算部件(80387協(xié)處理器) PLA、TLB:面向多用戶(虛地址)的存儲(chǔ)器段管理和頁管理部件 CACHE:高速緩存 其它與8086/8088部分相同 指令碼流:CACHE(或內(nèi)存)、指令隊(duì)列、指令譯碼。 物理地址:段址+偏址、由段管理產(chǎn)生線性地址。 線性地址由頁管理產(chǎn)生物理地址。 數(shù)據(jù)流:CACHE(或內(nèi)存)、直接進(jìn)入運(yùn)算器。,80486的內(nèi)部結(jié)構(gòu),2.2.3 內(nèi)部寄存器,1、寄存器特點(diǎn),1.通用寄存器和標(biāo)志寄存器都擴(kuò)展到32位,在原16位基礎(chǔ)上前面加E。數(shù)據(jù)寄存器可進(jìn)行8位、16位和32位操作。 2.段寄存器仍為16位,但增加兩個(gè)數(shù)據(jù)段寄存器FS和GS。 3. 增加三個(gè)控制寄存器CR0、CR2和CR3(無CR1)。 4. 系統(tǒng)地址寄存器與80286類似。,2、386尋址方式,地址 內(nèi)存 指令 01000 8B MOV CX,1234H 01001 0E 01002 34 下一指令 01003 12 02000 XX 02001 XX . . 03234 ED 源操作數(shù) 03235 BE,執(zhí)行之后: CX=?,3)直接尋址方式,PA= 段地址+直接地址 (CS,DS,SS,ES),4)寄存器間接尋址方式,PA= CS,DS,SS,ES:BX,BP,SI,DI,PA= DS:SI =02000+1234=3234,3、系統(tǒng)表寄存器,作用:在保護(hù)模式下分別指出對(duì)應(yīng)的表在存儲(chǔ)器中的起始地址及占存儲(chǔ)單元數(shù)。 GDTR全局描述符表寄存器 作用:保存全局描述符表在存儲(chǔ)器中的起始地址(32位)及所占存儲(chǔ)單元數(shù)(16位)。 LDTR局部描述符表寄存器 作用:保存局部描述符表在存儲(chǔ)器中的起始地址及所占存儲(chǔ)單元數(shù)。 IDIR中斷描述符表寄存器 作用:保存中斷描述符表在存儲(chǔ)器中的起始地址及所占存儲(chǔ)單元數(shù)。 TR任務(wù)寄存器 作用:保存任務(wù)狀態(tài)段在存儲(chǔ)器中的起始地址及所占存儲(chǔ)單元數(shù)。,GDTR與GDT表,GDTR長(zhǎng)度為48位的寄存器。其中32位用作指出表在存儲(chǔ)器中的基地址,16位為該表所占的主存空間的大小。它們分別被稱為基址字段和邊界字段,GDTR,GDT表,4、標(biāo)志寄存器,VM 虛擬方式位:VM=1使80386工作在虛擬8086方式。 RF 恢復(fù)標(biāo)志:RF標(biāo)志位與調(diào)試寄存器的斷點(diǎn)或單步操作一起使用。當(dāng)調(diào)試失敗后,利用RF標(biāo)志(使RF=1)強(qiáng)迫使程序恢復(fù)執(zhí)行,當(dāng)程序順序執(zhí)行時(shí)該標(biāo)志位自動(dòng)清0(RF=0)。,5、控制寄存器,2.2.4 80386Pentium三種工作模式,1.實(shí)地址模式 系統(tǒng)啟動(dòng)后,80386/486自動(dòng)進(jìn)入實(shí)地址方式。在此方式下,采用類似于8086的體系結(jié)構(gòu),80386/486在實(shí)地址方式下的主要特點(diǎn)如下: 尋址方式、存儲(chǔ)器管理、中斷處理與8086一樣. 操作數(shù)默認(rèn)長(zhǎng)度為16位,但允許訪問32位寄存器(在指令前加前綴)。 不用虛擬地址,最大地址范圍仍限于1MB,只采用分段方式,每段最大64KB。 80386的4特權(quán)級(jí),在實(shí)地址方式下,程序在最高級(jí)0級(jí)上執(zhí)行,80386指令集除少數(shù)指令外,絕大多數(shù)指令在實(shí)地址方式下都有效。 存儲(chǔ)器中保留兩個(gè)固定的區(qū)域,一個(gè)是初始化程序區(qū)FFFF0HFFFFFH,另一個(gè)為中斷向量表00000H003FFH。,10000H,00000H,10000H,1F000H,1FFFFH,F000H,段寄存器: CS,SS,DS,ES,偏移: (IP, ,BP,BX,DI,SI),邏輯地址:1000H:F000H 物理地址=1000H*16+F000H =1F000H,實(shí)地址模式,最大地址范圍:1MB,每段 最大 64KB,2.保護(hù)地址模式 所謂保護(hù)是指在執(zhí)行多任務(wù)操作時(shí),對(duì)不同任務(wù)使用的虛擬存儲(chǔ)器空間進(jìn)行完全的隔離,保護(hù)每個(gè)任務(wù)順利執(zhí)行。在保護(hù)方式下,80386/486具有如下特點(diǎn): 1存儲(chǔ)器采用虛擬地址空間、線性地址空間和物理地址空間三種方式來描述。 2強(qiáng)大的尋址空間。在保護(hù)方式下,可以尋址的空間大至64TB(246)(虛擬地址)。 3使用4級(jí)保護(hù)功能,可實(shí)現(xiàn)程序與程序、用戶與用戶、用戶與操作系統(tǒng)之間的隔離和保護(hù),為多任務(wù)操作系統(tǒng)提供優(yōu)化支持。 4在保護(hù)方式下,80386/486既可以進(jìn)行16位操作,又可進(jìn)行32位操作。,3.虛擬8086方式,所謂虛擬8086模式是指一個(gè)多任務(wù)的環(huán)境,即模擬多個(gè)8086的工作方式。虛擬8086方式的主要特點(diǎn)如下: 1可執(zhí)行原來采用8086書寫的應(yīng)用程序 。 2段寄存器的用法與實(shí)地址方式一樣。 3可以使用分頁方式,將1MB分為256個(gè)頁面,每頁4KB。 4在虛擬8086方式中,應(yīng)用程序在最低特權(quán)級(jí)3級(jí)上運(yùn)行,因此80386指令系統(tǒng)中的特權(quán)指令不能使用。,4.實(shí)地址模式與V86模式區(qū)別,1內(nèi)存管理方式不同:實(shí)地址方式只采用分段管理,而不采用分頁管理,而虛擬8086方式既分段又分頁。 2存儲(chǔ)空間不同:實(shí)地址下的最大尋址空間為1MB,而虛擬8086方式下每個(gè)任務(wù)盡管最大1MB,但可以在整個(gè)內(nèi)存空間浮動(dòng),因此V86方式實(shí)際尋址空間為4GB。 3保護(hù)機(jī)制不同:實(shí)地址方式下無保護(hù)機(jī)制,而虛擬8086方式既可以運(yùn)行8086程序,又支持多任務(wù)操作,這就解決了80286保護(hù)方式既要維持保護(hù)機(jī)制,又要運(yùn)行8086程序的矛盾。如在Windows 下多次雙擊MS-DOS即運(yùn)行多個(gè)DOS程序(8086程序)。,2.2.5 80386Pentium存儲(chǔ)器管理 1、基本概念,1)虛擬存儲(chǔ)器和物理存儲(chǔ)器 一個(gè)程序在運(yùn)行之前,沒有必要全部被裝入到內(nèi)存,而是在運(yùn)行程序之前只將那些馬上要運(yùn)行的部分先裝入到內(nèi)存運(yùn)行,其余部分暫時(shí)留在外存上,待需要時(shí)再裝入。這樣便可以使一個(gè)較大的應(yīng)用程序在較小的內(nèi)存空間中運(yùn)行,使內(nèi)存資源的利用率提高。從用戶角度看,系統(tǒng)當(dāng)前使用的內(nèi)存空間比實(shí)際的內(nèi)存空間大得多,我們稱這樣的存儲(chǔ)器為虛擬存儲(chǔ)器。 物理存儲(chǔ)器是CPU可直接訪問的存儲(chǔ)器,即主存儲(chǔ)器.,2) 三種地址描述方法,1.線性地址空間:由段轉(zhuǎn)換得到的地址。232字節(jié)=4GB 2.物理地址空間:實(shí)際內(nèi)存地址,其大小由CPU地址總線的位數(shù)決定。232字節(jié)=4GB 3.虛擬地址空間:程序指定的、通過所有段描述符描述的整個(gè)地址空間(即程序可以使用的空間)。其大小由CPU的存儲(chǔ)管理系統(tǒng)及體系結(jié)構(gòu)確定。 段描述符個(gè)數(shù) 最大段大小 =214 232字節(jié)=246字節(jié)=64TB 如何把4GB的物理地址空間分配給64TB 的程序,是存儲(chǔ)管理部件要解決的主要問題。,保護(hù)方式下80386物理地址形成分為兩步進(jìn)行,1.分段:首先將48位邏輯地址轉(zhuǎn)換成32位線性地址,由分段部件SU完成,方法與80286同;2.分頁:再將32位線性地址轉(zhuǎn)換成32位物理地址,由分頁部件PU完成。分頁是32位處理器獨(dú)有的。,2、物理地址的形成,一個(gè)程序由多模塊組成,組成程序的模塊大小可以各不相同,但每一個(gè)模塊都是一個(gè)特定功能的獨(dú)立的程序段,都以該段的起點(diǎn)為0相對(duì)編址。 當(dāng)某一程序段(模塊)從輔存調(diào)入主存,只要由系統(tǒng)賦予該段一個(gè)基址,就可以把基址和每個(gè)單元在段內(nèi)的相對(duì)位移量組合起來,形成這些單元在主存中各自的實(shí)際地址。 段式存儲(chǔ)器把虛擬空間按比例分配,各段的大小不定,因此特別適合這種編程方法。,3、分段管理 1)地址映象與變換,2)段描述符,在保護(hù)模式下,段地址不再像實(shí)模式那樣由段寄存器提供,而由段描述符提供。 一個(gè)段描述符由8個(gè)字節(jié)組成,描述了某個(gè)存儲(chǔ)器段的位置、長(zhǎng)度和訪問權(quán)限,其基本格式如圖 所示。段描述符是位于主存中的一種數(shù)據(jù)結(jié)構(gòu),由系統(tǒng)程序創(chuàng)建,它為處理器提供段的基本信息。,段基址:2、3、4、7字節(jié)組成。 段界限:0、1字節(jié)及第6字節(jié)的低4位共20位組成,該字段的值決定了段的長(zhǎng)度,其單位由“G”位決定。 訪問控制:第5字節(jié)及第6字節(jié)的高4位共12位組成,段的所有屬性信息都包含在這12個(gè)位中。,“G”位稱作粒度位,用來確定段長(zhǎng)度的單位。 當(dāng)G=0時(shí),長(zhǎng)度以字節(jié)為單位;當(dāng)G=1時(shí),長(zhǎng)度以頁為單位。(1頁=4KB(212B) “P”位是存在位,P=0表示該段目前并不在內(nèi)存中,而要從磁盤上調(diào)進(jìn)來;P=1表示該段已裝入內(nèi)主存。 “AVL”可用位: AVL=1,系統(tǒng)軟件可以使用該段,AVL=0,系統(tǒng)軟件不可以使用該段。,3、描述符表,位于主存中,內(nèi)存放一系列段描述符。,GDT表,GDTR,RPL 請(qǐng)求特權(quán)級(jí)(0,1位共兩位),構(gòu)成了選擇子的特權(quán)(03),其中0為最高級(jí),3最低。 TI 描述符表指示器,表示選擇子選擇了哪一個(gè)描述符表。TI=0,選擇全局描述符表(GDT),TI=1,表示選擇了局部描述符表(LDT)。 索引 位153共13位形成描述符所在地址的索引,對(duì)于每一個(gè)描述符表可指示213(8K)個(gè)描述符。 因此,80286的虛擬地址空間最大為213264KB=1GB。,4、段選擇子,CS等6個(gè)段寄存器是段選擇器,其內(nèi)保存的是段描述符索引,用于選擇描述符表內(nèi)的段描述符。,已知: GDT和LDT的首地址分別為55600000H和00013000H,F(xiàn)S=000BH CR3=00013000H , ESI=0000125AH,內(nèi)存有關(guān)數(shù)據(jù)如圖所示。執(zhí)行指令MOV EAX,F(xiàn)S:ESI,求: 1.PE=0時(shí)源操作對(duì)應(yīng)的物理地址及EAX中的值 2.PE=1且PG=0時(shí)源操作對(duì)應(yīng)的物理地址及EAX中的值 3.PE=1且PG=1時(shí)源操作對(duì)應(yīng)的物理地址及EAX中的值,例.32位處理器尋址,例圖示:,分析: 指令MOV EAX,FS:ESI指示的數(shù)據(jù)使用FS段,在保護(hù)方式下為 段選擇子 FS=000BH=0000 0000 0000 1011B,即TI=0,因此選中GDT表,RPL=11,為用戶程序請(qǐng)求段,索引值=0000000000001B ,偏移地址=ESI=0000125AH。 1.PE=0處理器工作在實(shí)地址方式, 物理地址=段地址*16+偏移地址=000B0H+125AH=0130AH,EAX中的值即為該地址指示的4個(gè)單元中的數(shù)據(jù),故EAX=49102512H。 2.PE=1且PG=0即不分頁的保護(hù)方式,因此,使用段描述符找段基地址: 段描述符地址=GDT首地址(GDTR中)+索引值*8 =55600000H+0008H=55600008H 故:段描述符=014449 00700001FFH,其中段基地址=01007000H,因此物理地址=線性地址(PG=0)=段基地址+偏移地址=0100825AH,EAX=12009966H,例解,已知: GDT的首地址:55600000H, LDT的首地址00013000H, FS=000BH CR3=00013000H , ESI=0000125AH,5、分頁管理,分段和分頁的主要不同是,一個(gè)段的長(zhǎng)短可變,而頁則是使用存儲(chǔ)器中固定尺寸的小塊。 頁式存儲(chǔ)器把主存空間和輔存空間都分別劃分為多個(gè)相同尺寸的定長(zhǎng)塊。每塊稱作一頁(又稱頁面、頁框等),并按順序編號(hào)。微處理器把頁面尺寸定為4KB(212)。,頁式存儲(chǔ)器地址映象與變換,在頁式存儲(chǔ)器中,每個(gè)任務(wù)都由頁表作為虛擬空間映像到物理空間的中介。如圖所示,編寫的程序A由4頁組成 組成頁表的行稱作頁表項(xiàng),頁表項(xiàng)主要由頁面基址和控制信息位組成,頁式存儲(chǔ)器通過頁表項(xiàng)對(duì)頁面進(jìn)行管理。頁表本身也是一頁,且存儲(chǔ)在主存中。,80386P4頁式存儲(chǔ)器的4GB(232)的線性空間被分為220個(gè)頁面(頁的起始地址總是安排在低12位為0的地址處), 所以需要有220個(gè)頁表項(xiàng)對(duì)其進(jìn)行管理,顯然,一張頁表是無法容納下這么多頁表項(xiàng)的。 80386P4微處理器采用二級(jí)頁表方法對(duì)頁面進(jìn)行管理,第1級(jí)頁表稱作頁目錄表,頁目錄表的頁表項(xiàng)指明第2級(jí)頁表中各頁表的地址。這樣,虛頁號(hào)就被分為頁目錄項(xiàng)和頁表項(xiàng)兩部分。 頁表和頁目錄表都存放在主存中,頁目錄表的基址由控制寄存器CR3的高20位(3112)*212指定,低12位默認(rèn)為全0。,頁目錄表和頁表 :分頁管理涉及的兩個(gè)表,頁目錄表,頁表0,頁表1023,分 別 指 示 220 頁 的 基 址,1.頁表項(xiàng)由32位組成,其中高20位是頁面基址,頁表中的該字段就是實(shí)頁號(hào),在頁目錄表中,頁面基址*212=相應(yīng)頁表的首址; 2.低12位用來說明頁(頁表)的控制狀態(tài)信息,“P”是存在位,當(dāng)P=1時(shí),表示該頁在主存中。在地址變換過程中,若發(fā)現(xiàn)P=0,則表示需立即訪問的頁不在主存,這種情形稱作頁面失效(頁面故障)。 3.兩級(jí)頁表中的頁表項(xiàng)的作用雖然不同,但格式卻完全一樣。,頁表描述符和頁描述符,線性地址分為三部分,頁表項(xiàng)索引(10b),頁目錄項(xiàng)索引(10b),頁內(nèi)偏移量(12b),線性地址(32b),線性地址轉(zhuǎn)化為物理地址,分為三步: 找頁目錄描述符 找頁描述符 合成物理地址,頁式存儲(chǔ)器的地址變換,線性地址=0100825AH =0000 0001 0000 0000 1000 0010 0101 1010 B, 其中:頁目錄索引=0000 0001 00B, 頁索引=00 0000 1000B, 頁內(nèi)偏移量= 0010 0101 1010 B (1)找頁目錄描述符(目的求頁表基地址) 頁目錄描述符地址 =頁目錄表基地址(CR3)+頁目錄索引*4 =00013000H+0010H=000013010H, 頁目錄項(xiàng)(描述符)=55600040H,因此頁表基地址=55600000H。 (2)找頁描述符(目的求頁的基地址) 頁描述符地址=頁表基地址+頁索引*4=55600000H+20H=55600020H 頁描述符 =000060B6H,因此頁基地址=00006000H (3)合成物理地址(頁基地址+頁內(nèi)偏移量) 物理地址=頁基地址+頁內(nèi)偏移量=00006000H+25AH=0000625AH EAX=061A9936H(完),例解:,一、Pentium 主要特點(diǎn) 1與X86兼容 2RISC型超標(biāo)量結(jié)構(gòu) 即微處理器內(nèi)具有多個(gè)指令單元,多條指令流水線。 3高性能浮點(diǎn)運(yùn)算部件 4雙重分離Cache 5增加錯(cuò)誤檢測(cè)與報(bào)告分析功能 6 64位外部數(shù)據(jù)總線 7 分支指令預(yù)測(cè) 8 常用指令固化及微代碼改進(jìn) 9 增加系統(tǒng)管理方式,2.5 Pentium微處理器,Pentium微處理器是由總線接口部件、代碼、數(shù)據(jù)Cache、分支目標(biāo)緩沖器、控制ROM部件、預(yù)取緩沖存儲(chǔ)器、指令譯碼部件、整數(shù)運(yùn)算部件、整數(shù)和浮點(diǎn)數(shù)寄存器及浮點(diǎn)運(yùn)算部件等11個(gè)功能部件組成(如圖所示)。,二、 Pentium處理器內(nèi)部結(jié)構(gòu),Pentium微處理器邏輯框圖,1、超標(biāo)量與流水線 1) 超標(biāo)量和流水線的概念,超標(biāo)量:配置多個(gè)執(zhí)行部件和指令譯碼電路,能同時(shí)執(zhí)行多條指令。Pentium由三個(gè)執(zhí)行單元組織而成,一個(gè)執(zhí)行浮點(diǎn)指令,另兩個(gè)執(zhí)行整型指令(U流水線和V流水線),這意味著Pentium同時(shí)可以執(zhí)行三條指令。 流水線:在CPU中把一條指令分解成多個(gè)可單獨(dú)處理的操作,使每個(gè)操作在一個(gè)專門的硬件站(stage)上執(zhí)行,這樣一條指令需要順序地經(jīng)過流水線中多個(gè)站的處理才能完成,但是前后相連的幾條指令可以依次流入流水線中,在多個(gè)站間重疊執(zhí)行,因此可以實(shí)現(xiàn)指令的并行處理。,80486指令分PF、D1、D2、EX、WB五個(gè)操作步驟,0,1,2,3,4,5,6,8,7,時(shí)間,i1,i2,i3,i4,2) 整數(shù)流水線 Pentium微處理器具有兩條整數(shù)指令流水線,分別稱為U流水線和V流水線。每條流水線分為5級(jí),分別為: PF(預(yù)取):處理器從代碼cache中預(yù)取指令 D1(譯碼階段1):處理器對(duì)指令譯碼確定操作碼和尋址信息。在這個(gè)階段還進(jìn)行指令的成對(duì)性檢查和分支預(yù)測(cè) D2(譯碼階段2):產(chǎn)生訪問存儲(chǔ)器的地址 EX(執(zhí)行):處理器或者訪問數(shù)據(jù)cache,或者利用ALU、筒型移位器或其他功能單元計(jì)算結(jié)果 WB(寫回):利用指令運(yùn)行結(jié)果更新寄存器和標(biāo)志寄存器 每條指令完成一個(gè)流水級(jí)后,就會(huì)進(jìn)入下一級(jí),以便讓指令隊(duì)列中的下一條指令進(jìn)入該級(jí)。,時(shí)間,i1,i2,i3,i4,0,1,2,3,4,5,6,8,7,i5,i6,i7,i8,U,V,U,V,U,V,Pentium的超標(biāo)量流水線,3)浮點(diǎn)流水線 浮點(diǎn)部件FPU擁有專用的加法單元、乘法單元和除法單元。微處理器中的浮點(diǎn)操作被高度流水線化,并與整數(shù)流水線集成在一起。浮點(diǎn)流水線由8個(gè)獨(dú)立的流水級(jí)組成,即指令預(yù)?。≒F)、指令譯碼1(D1)、指令譯碼2(D2)、取操作數(shù)(EX)、執(zhí)行1(X1)、執(zhí)行2(X2)、結(jié)果寫回(WF)和錯(cuò)誤報(bào)告(ER)。,2、分支預(yù)測(cè),1)條件轉(zhuǎn)移指令對(duì)流水線效率的影響,條件轉(zhuǎn)移指令在D1階段經(jīng)過的指令譯碼即可被處理器所發(fā)現(xiàn),但是轉(zhuǎn)移的方向,則要等到其前面的指令經(jīng)過WB步驟更新了標(biāo)志寄存器后才能確定,所以通常情況下一旦處理器發(fā)現(xiàn)條件轉(zhuǎn)移指令,則停止后續(xù)指令的預(yù)取,等到條件轉(zhuǎn)移指令前面的指令執(zhí)行完畢,更新了標(biāo)志寄存器,確定了轉(zhuǎn)移方向以后,再重新開始流水線操作,而這時(shí)流水線已經(jīng)空置,等到指令再次流到執(zhí)行部件,執(zhí)行部件已經(jīng)停頓了好幾個(gè)周期,所以條件轉(zhuǎn)移指令對(duì)流水線效率的影響很大。,2)Pentium微處理器的分支預(yù)測(cè)策略,Pentium處理器設(shè)置了一個(gè)分支目標(biāo)緩沖器 BTB ( Branch Target Buffer) 根據(jù)最近執(zhí)行的分支指令的歷史狀況動(dòng)態(tài)地預(yù)測(cè)程序分支。 BTB中保持著最近所遇到的條件轉(zhuǎn)移指令的信息,每當(dāng)在指令流中遇到條件轉(zhuǎn)移指令指令時(shí),就對(duì)BTB進(jìn)行檢查,如果該指令的信息在BTB已經(jīng)存在,那么就依據(jù)它的歷史信息進(jìn)行預(yù)測(cè),并按預(yù)測(cè)的轉(zhuǎn)移方向繼續(xù)預(yù)取指令,如果預(yù)測(cè)正確,則可以保證流水線不會(huì)空置,如果預(yù)測(cè)錯(cuò)誤,那么流水線只好刷新,重新按另一個(gè)方向讀取指令,這樣處理器要花費(fèi)34個(gè)周期的延遲。,在BTB中,保存了條件轉(zhuǎn)移指令2位的歷史信息,所以有4種狀態(tài),11為最可能發(fā)生轉(zhuǎn)移,00為最不可能發(fā)生轉(zhuǎn)移。新進(jìn)入BTB的指令其歷史信息為11,此后出現(xiàn)一次未發(fā)生轉(zhuǎn)移的情況,則將其減1,直到減為00,而發(fā)生一次轉(zhuǎn)移,則將其加1,直到為11。 如果狀態(tài)為11或10,則預(yù)測(cè)為發(fā)生轉(zhuǎn)移;如果狀態(tài)為00或01,則預(yù)測(cè)為不發(fā)生轉(zhuǎn)移 分支預(yù)測(cè)對(duì)循環(huán)的意義最為顯著,只有在進(jìn)入和退出循環(huán)時(shí)才會(huì)發(fā)生預(yù)測(cè)錯(cuò)誤,而在循環(huán)中間過程中進(jìn)行的分支預(yù)測(cè)都是正確的。,例:計(jì)算1+2+3+100,MOV AX, 0 MOV BX, 1 ADD AX, BX INC BX CMP BX, 100 JLE SUM,SUM:,3)、分離型Cache,486片內(nèi)有8KB的Cache,Pentium則為2個(gè)8KB的Cache,一個(gè)作為代碼Cache,一個(gè)作為數(shù)據(jù)Cache 指令和數(shù)據(jù)使用不同的Cache提高了Pentium的性能: 對(duì)于Pentium而言,在流水線的指令預(yù)取階段,指令從代碼Cache中取出; 對(duì)于486而言,由于數(shù)據(jù)和指令合用一個(gè)Cache,則指令預(yù)取很可能與前面指令的數(shù)據(jù)操作之間發(fā)生沖突。,三、 Pentium的寄存器,1.通用寄存器,3. 16位段寄存器CS, DS, SS,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論