第3章奔騰系列微處理器._第1頁(yè)
第3章奔騰系列微處理器._第2頁(yè)
第3章奔騰系列微處理器._第3頁(yè)
第3章奔騰系列微處理器._第4頁(yè)
第3章奔騰系列微處理器._第5頁(yè)
已閱讀5頁(yè),還剩158頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 掌握掌握PentiumPentium微處理器的原理結(jié)構(gòu)、基本寄微處理器的原理結(jié)構(gòu)、基本寄存器組中各寄存器的組成和功能、存器組中各寄存器的組成和功能、PentiumPentium工工作的實(shí)模式、保護(hù)模式以及虛擬作的實(shí)模式、保護(hù)模式以及虛擬80868086模式模式 掌握掌握PentiumPentium微處理器的超標(biāo)量流水線技術(shù)微處理器的超標(biāo)量流水線技術(shù) 熟悉存儲(chǔ)器的保護(hù)、浮點(diǎn)運(yùn)算部件以及與之熟悉存儲(chǔ)器的保護(hù)、浮點(diǎn)運(yùn)算部件以及與之相配套一起實(shí)現(xiàn)浮點(diǎn)運(yùn)算的浮點(diǎn)寄存器等相配套一起實(shí)現(xiàn)浮點(diǎn)運(yùn)算的浮點(diǎn)寄存器等 了解了解PentiumPentium微處理器的外部引腳微處理器的外部引腳 了解了解Pentium

2、 ProPentium Pro ItaniumItanium的技術(shù)概況的技術(shù)概況教學(xué)目的和教學(xué)要求教學(xué)目的和教學(xué)要求重點(diǎn):重點(diǎn):n Pentium工作的實(shí)模式、保護(hù)模式以及虛擬工作的實(shí)模式、保護(hù)模式以及虛擬8086模式的工模式的工作原理作原理n Pentium微處理器的超標(biāo)量流水線技術(shù)微處理器的超標(biāo)量流水線技術(shù)n Pentium微處理器的原理結(jié)構(gòu)微處理器的原理結(jié)構(gòu)難點(diǎn):難點(diǎn):n Pentium微處理器的只分段、只分頁(yè)管理微處理器的只分段、只分頁(yè)管理n Pentium微處理器的既分段又分頁(yè)管理微處理器的既分段又分頁(yè)管理n 存儲(chǔ)保護(hù)中的特權(quán)級(jí)保護(hù)方式存儲(chǔ)保護(hù)中的特權(quán)級(jí)保護(hù)方式本章重點(diǎn)、難點(diǎn)本章重點(diǎn)

3、、難點(diǎn)3.1 Pentium3.1 Pentium性能和結(jié)構(gòu)特點(diǎn)性能和結(jié)構(gòu)特點(diǎn) 3.1.1 Pentium性能簡(jiǎn)介(性能簡(jiǎn)介(1 1) 19931993年年3 3月月IntelIntel公司推出了第五代微處理器公司推出了第五代微處理器Pentium PentiumPentium Pentium是微處理器本質(zhì)上的一次創(chuàng)新是微處理器本質(zhì)上的一次創(chuàng)新PentiumPentium采用了采用了0.8m0.8m雙極性互補(bǔ)金屬氧化半導(dǎo)體雙極性互補(bǔ)金屬氧化半導(dǎo)體(BiCMOSBiCMOS)技術(shù),它屬于單芯片超標(biāo)量流水線微處)技術(shù),它屬于單芯片超標(biāo)量流水線微處理器,片內(nèi)集成了多達(dá)理器,片內(nèi)集成了多達(dá)310310

4、萬(wàn)個(gè)晶體管,工作電壓萬(wàn)個(gè)晶體管,工作電壓+5V+5V,功耗,功耗15W15W。片內(nèi)時(shí)鐘頻率(微處理器主頻)與。片內(nèi)時(shí)鐘頻率(微處理器主頻)與外片主總線的時(shí)鐘頻率相等,均為外片主總線的時(shí)鐘頻率相等,均為60MHz60MHz或或66MHz66MHz兩兩種種 3.1.1 Pentium性能簡(jiǎn)介(性能簡(jiǎn)介(2)19941994年年3 3月之后推出的月之后推出的PentiumPentium(P54CP54C)采用了)采用了0.6m0.6m的的CMOSCMOS技術(shù),工作電壓降為技術(shù),工作電壓降為3.3V3.3V,功耗降,功耗降至至4W4W。主總線時(shí)鐘頻率有。主總線時(shí)鐘頻率有50MHz50MHz、60MHz

5、60MHz以及以及66MHz66MHz等,經(jīng)倍頻后作為等,經(jīng)倍頻后作為PentiumPentium(P54CP54C)內(nèi)部的時(shí)鐘頻)內(nèi)部的時(shí)鐘頻率(主頻),表率(主頻),表3-13-1列出了幾種列出了幾種PentiumPentium(P54CP54C)的主頻與工作電壓的主頻與工作電壓 表表3-1 3-1 幾種幾種PentiumPentium的主頻與工作電壓的主頻與工作電壓 型型 號(hào)號(hào) 主總線時(shí)鐘主總線時(shí)鐘頻(頻(MHzMHz) 倍數(shù)因子倍數(shù)因子 主頻(主頻(MHz) 工作電壓工作電壓 Pentium90 601.5903.3V或或2.9V Pentium100 601.51003.3V Pen

6、tium120 6021203.3VPentium133 6021333.3VPentium150 602.51503.3VPentium166 662.51663.3VPentium200 6632003.3V3.1.1 Pentium性能簡(jiǎn)介(性能簡(jiǎn)介(3)PentiumPentium通往外部存儲(chǔ)器的數(shù)據(jù)總線為通往外部存儲(chǔ)器的數(shù)據(jù)總線為6464位,位,CPUCPU內(nèi)部主要寄存器的寬度仍然為內(nèi)部主要寄存器的寬度仍然為3232位,那么位,那么PentiumPentium、PentiumPentium(P54CP54C)應(yīng)該是)應(yīng)該是3232位微處位微處理器。外部理器。外部6464位數(shù)據(jù)總線(位

7、數(shù)據(jù)總線(D D6363- -D D0 0)每次可同)每次可同時(shí)傳輸時(shí)傳輸8 8字節(jié)的二進(jìn)制信息,若選用主總線時(shí)字節(jié)的二進(jìn)制信息,若選用主總線時(shí)鐘頻率鐘頻率66MHz66MHz計(jì)算,即存儲(chǔ)器總線的時(shí)鐘頻率計(jì)算,即存儲(chǔ)器總線的時(shí)鐘頻率也為也為66MHz66MHz,則,則PentiumPentium與主存儲(chǔ)器交換數(shù)據(jù)與主存儲(chǔ)器交換數(shù)據(jù)的速率可為的速率可為528MB/S528MB/S3.1.2 Pentium的原理結(jié)構(gòu)的原理結(jié)構(gòu)(1)一、一、Pentium CPUPentium CPU內(nèi)部的主要部件內(nèi)部的主要部件總線接口部件總線接口部件U U流水線和流水線和V V流水線流水線指令高速緩沖存儲(chǔ)器指令高

8、速緩沖存儲(chǔ)器CacheCache數(shù)據(jù)高速緩沖存儲(chǔ)器數(shù)據(jù)高速緩沖存儲(chǔ)器CacheCache指令預(yù)取部件指令預(yù)取部件指令譯碼器指令譯碼器浮點(diǎn)處理部件浮點(diǎn)處理部件FPUFPU分支目標(biāo)緩沖器分支目標(biāo)緩沖器BTBBTB微程序控制器中的控制微程序控制器中的控制ROMROM寄存器組寄存器組PentiumPentium微處理器的原理結(jié)構(gòu)圖如圖微處理器的原理結(jié)構(gòu)圖如圖3-13-1所示所示Pentium CPU原理結(jié)構(gòu)圖原理結(jié)構(gòu)圖3.1.2 Pentium的原理結(jié)構(gòu)(的原理結(jié)構(gòu)(2) 二、原理結(jié)構(gòu)二、原理結(jié)構(gòu) 在在Pentium CPUPentium CPU中,總線接口部件實(shí)現(xiàn)中,總線接口部件實(shí)現(xiàn)CPUCPU與系

9、統(tǒng)總線之間的連接,其中包括與系統(tǒng)總線之間的連接,其中包括6464位雙向位雙向的數(shù)據(jù)線、的數(shù)據(jù)線、3232位地址線和所有的控制信號(hào)線,位地址線和所有的控制信號(hào)線,具有鎖存與緩沖等功能,總線接口部件實(shí)現(xiàn)具有鎖存與緩沖等功能,總線接口部件實(shí)現(xiàn)CPUCPU與外設(shè)之間的信息交換,并產(chǎn)生相應(yīng)的與外設(shè)之間的信息交換,并產(chǎn)生相應(yīng)的各類(lèi)總線周期各類(lèi)總線周期3.1.2 Pentium的原理結(jié)構(gòu)(的原理結(jié)構(gòu)(3)1.互相獨(dú)立的指令互相獨(dú)立的指令Cache和數(shù)據(jù)和數(shù)據(jù)Cache PentiumPentium則在片內(nèi)設(shè)置了則在片內(nèi)設(shè)置了2 2個(gè)獨(dú)立的個(gè)獨(dú)立的8KB Cache8KB Cache,分,分別用于存放指令代碼

10、與數(shù)據(jù)。指令別用于存放指令代碼與數(shù)據(jù)。指令CacheCache是內(nèi)存中一是內(nèi)存中一部分程序的副本,通過(guò)猝發(fā)方式從內(nèi)存中每次讀入一部分程序的副本,通過(guò)猝發(fā)方式從內(nèi)存中每次讀入一塊存入某一塊存入某一CacheCache行中,便于行中,便于CPUCPU執(zhí)行程序時(shí)取出并執(zhí)執(zhí)行程序時(shí)取出并執(zhí)行,數(shù)據(jù)行,數(shù)據(jù)CacheCache是可以讀寫(xiě)的,雙端口結(jié)構(gòu),每個(gè)端是可以讀寫(xiě)的,雙端口結(jié)構(gòu),每個(gè)端口與口與U U、V V兩條指令流水線交換整數(shù)數(shù)據(jù),或者組合成兩條指令流水線交換整數(shù)數(shù)據(jù),或者組合成6464位數(shù)據(jù)端口,用來(lái)與浮點(diǎn)運(yùn)算部件交換浮點(diǎn)數(shù)據(jù),位數(shù)據(jù)端口,用來(lái)與浮點(diǎn)運(yùn)算部件交換浮點(diǎn)數(shù)據(jù),指令指令CacheCac

11、he與數(shù)據(jù)與數(shù)據(jù)CacheCache均與均與CPUCPU內(nèi)部的內(nèi)部的6464位數(shù)據(jù)線以位數(shù)據(jù)線以及及3232位地址線相連接位地址線相連接3.1.2 Pentium的原理結(jié)構(gòu)(的原理結(jié)構(gòu)(4)n 互相獨(dú)立的指令互相獨(dú)立的指令CacheCache和數(shù)據(jù)和數(shù)據(jù)CacheCache有利于有利于U U、V V兩條流水線的并行操作,它不僅可以同時(shí)與兩條流水線的并行操作,它不僅可以同時(shí)與U U、V V兩條流水線分別交換數(shù)據(jù),而且使指令預(yù)取兩條流水線分別交換數(shù)據(jù),而且使指令預(yù)取和數(shù)據(jù)讀寫(xiě)能無(wú)沖突地同時(shí)進(jìn)行和數(shù)據(jù)讀寫(xiě)能無(wú)沖突地同時(shí)進(jìn)行n 可以通過(guò)硬件或軟件方法來(lái)禁止或允許使用可以通過(guò)硬件或軟件方法來(lái)禁止或允許使

12、用Pentium CPUPentium CPU內(nèi)部的內(nèi)部的CacheCache3.1.2 Pentium的原理結(jié)構(gòu)(的原理結(jié)構(gòu)(5) 2.超標(biāo)量流水線超標(biāo)量流水線 PentiumPentium有有U U、V V兩條指令流水線,故稱之為超兩條指令流水線,故稱之為超標(biāo)量流水線,超標(biāo)量流水線技術(shù)的應(yīng)用,使得標(biāo)量流水線,超標(biāo)量流水線技術(shù)的應(yīng)用,使得Pentium CPUPentium CPU的速度較的速度較8048680486有很大的提高。因有很大的提高。因此,超標(biāo)量流水線是此,超標(biāo)量流水線是PentiumPentium系統(tǒng)結(jié)構(gòu)的核心系統(tǒng)結(jié)構(gòu)的核心3.1.2 Pentium的原理結(jié)構(gòu)(的原理結(jié)構(gòu)(6)

13、n U U、V V流水線中整數(shù)指令流水線均由流水線中整數(shù)指令流水線均由5 5段組成。段組成。分別為分別為預(yù)取指令(預(yù)取指令(PFPF)、指令譯碼(指令譯碼(D1D1)、地地址生成(址生成(D2D2)、指令執(zhí)行(指令執(zhí)行(EXEX)和和結(jié)果寫(xiě)回結(jié)果寫(xiě)回(WBWB)n由于采用了指令流水線作業(yè),每條指令流水線由于采用了指令流水線作業(yè),每條指令流水線可以在可以在1 1個(gè)時(shí)鐘周期內(nèi)執(zhí)行一條指令。因此,個(gè)時(shí)鐘周期內(nèi)執(zhí)行一條指令。因此,最佳情況下一個(gè)時(shí)鐘周期內(nèi)可以執(zhí)行兩條整數(shù)最佳情況下一個(gè)時(shí)鐘周期內(nèi)可以執(zhí)行兩條整數(shù)指令指令3.1.2 Pentium的原理結(jié)構(gòu)(的原理結(jié)構(gòu)(7) 3.重新設(shè)計(jì)的浮點(diǎn)運(yùn)算部件重新

14、設(shè)計(jì)的浮點(diǎn)運(yùn)算部件 Pentium CPUPentium CPU內(nèi)部的浮點(diǎn)運(yùn)算部件在內(nèi)部的浮點(diǎn)運(yùn)算部件在8048680486的基礎(chǔ)上進(jìn)行了重新設(shè)計(jì)。如圖的基礎(chǔ)上進(jìn)行了重新設(shè)計(jì)。如圖3-13-1所示。所示。浮點(diǎn)運(yùn)算部件內(nèi)有專門(mén)用于浮點(diǎn)運(yùn)算的加法浮點(diǎn)運(yùn)算部件內(nèi)有專門(mén)用于浮點(diǎn)運(yùn)算的加法器、乘法器和除法器,還有器、乘法器和除法器,還有8080位寬的位寬的8 8個(gè)寄個(gè)寄存器構(gòu)成了寄存器堆,內(nèi)部的數(shù)據(jù)通路為存器構(gòu)成了寄存器堆,內(nèi)部的數(shù)據(jù)通路為8080位。浮點(diǎn)運(yùn)算部件支持位。浮點(diǎn)運(yùn)算部件支持IEEE754IEEE754標(biāo)準(zhǔn)的單、標(biāo)準(zhǔn)的單、雙精度格式的浮點(diǎn)數(shù),還可以使用一種臨時(shí)雙精度格式的浮點(diǎn)數(shù),還可以使用一

15、種臨時(shí)實(shí)數(shù)的實(shí)數(shù)的8080位浮點(diǎn)數(shù)位浮點(diǎn)數(shù)3.1.2 Pentium的原理結(jié)構(gòu)(的原理結(jié)構(gòu)(8)PentiumPentium對(duì)浮點(diǎn)數(shù)的一些常用指令,例如加對(duì)浮點(diǎn)數(shù)的一些常用指令,例如加法指令法指令A(yù)DDADD,乘法指令,乘法指令MULMUL等,都采用了新的等,都采用了新的算法,并將新的算法用硬件來(lái)實(shí)現(xiàn),使得浮點(diǎn)算法,并將新的算法用硬件來(lái)實(shí)現(xiàn),使得浮點(diǎn)數(shù)運(yùn)算的速度大大提高,其速度相當(dāng)于數(shù)運(yùn)算的速度大大提高,其速度相當(dāng)于8048680486的的1010多倍多倍 3.1.2 Pentium的原理結(jié)構(gòu)(的原理結(jié)構(gòu)(9)4.以以BTB實(shí)現(xiàn)動(dòng)態(tài)轉(zhuǎn)換預(yù)測(cè)實(shí)現(xiàn)動(dòng)態(tài)轉(zhuǎn)換預(yù)測(cè) PentiumPentium采用了分

16、支目標(biāo)緩沖器(采用了分支目標(biāo)緩沖器(branch branch target buffertarget buffer)實(shí)現(xiàn)動(dòng)態(tài)轉(zhuǎn)移預(yù)測(cè),可以減)實(shí)現(xiàn)動(dòng)態(tài)轉(zhuǎn)移預(yù)測(cè),可以減少指令流水作業(yè)中因分支轉(zhuǎn)移指令而引起的流少指令流水作業(yè)中因分支轉(zhuǎn)移指令而引起的流水線斷流水線斷流 引入了轉(zhuǎn)移預(yù)測(cè)技術(shù),不僅能預(yù)測(cè)轉(zhuǎn)移是否引入了轉(zhuǎn)移預(yù)測(cè)技術(shù),不僅能預(yù)測(cè)轉(zhuǎn)移是否發(fā)生,而且能確定轉(zhuǎn)移到何處去執(zhí)行程序發(fā)生,而且能確定轉(zhuǎn)移到何處去執(zhí)行程序例【例【3-1】下面是連續(xù)傳送】下面是連續(xù)傳送100個(gè)字節(jié)的循環(huán)程序段個(gè)字節(jié)的循環(huán)程序段 MOV SI,0200H ;源數(shù)據(jù)區(qū)偏移地址給;源數(shù)據(jù)區(qū)偏移地址給SI MOV DI,0500H

17、 ;目的數(shù)據(jù)區(qū)偏移地址給;目的數(shù)據(jù)區(qū)偏移地址給DI MOV CX,64H ;待傳送字節(jié)數(shù)為待傳送字節(jié)數(shù)為100,賦給,賦給CXABC:MOV AL,SI ;從源區(qū)取出一個(gè)字節(jié);從源區(qū)取出一個(gè)字節(jié) MOV DI,AL ;存入目的數(shù)據(jù)區(qū);存入目的數(shù)據(jù)區(qū) INC SI ;源地址指針加;源地址指針加1 INC DI ;目的地址指針加;目的地址指針加1 DEC CX ;CX=CX-1 JNZ ABC ;若;若CX0,轉(zhuǎn),轉(zhuǎn)ABC 從上述程序可以看出,許多分支轉(zhuǎn)移指令轉(zhuǎn)從上述程序可以看出,許多分支轉(zhuǎn)移指令轉(zhuǎn)向每個(gè)分支的機(jī)會(huì)不是均等的,而且大多數(shù)分向每個(gè)分支的機(jī)會(huì)不是均等的,而且大多數(shù)分支轉(zhuǎn)移指令排列在循環(huán)

18、程序段中,除了一次跳支轉(zhuǎn)移指令排列在循環(huán)程序段中,除了一次跳出循環(huán)體之外,其余轉(zhuǎn)移的目標(biāo)地址均在循環(huán)出循環(huán)體之外,其余轉(zhuǎn)移的目標(biāo)地址均在循環(huán)體內(nèi)。因此,分支轉(zhuǎn)移指令的轉(zhuǎn)移目標(biāo)地址是體內(nèi)。因此,分支轉(zhuǎn)移指令的轉(zhuǎn)移目標(biāo)地址是可以預(yù)測(cè)的,預(yù)測(cè)的依據(jù)就是前一次轉(zhuǎn)移目標(biāo)可以預(yù)測(cè)的,預(yù)測(cè)的依據(jù)就是前一次轉(zhuǎn)移目標(biāo)地址的狀況,即根據(jù)歷史狀態(tài)預(yù)測(cè)下一次轉(zhuǎn)移地址的狀況,即根據(jù)歷史狀態(tài)預(yù)測(cè)下一次轉(zhuǎn)移的目標(biāo)地址。預(yù)測(cè)的準(zhǔn)確率不可能為的目標(biāo)地址。預(yù)測(cè)的準(zhǔn)確率不可能為100%100%,但,但是對(duì)于某些轉(zhuǎn)移指令預(yù)測(cè)的準(zhǔn)確率卻非常高是對(duì)于某些轉(zhuǎn)移指令預(yù)測(cè)的準(zhǔn)確率卻非常高3.2 Pentium的寄存器的寄存器 Pentium的

19、寄存器可以分為三組:的寄存器可以分為三組:基本寄存器組基本寄存器組:包括通用寄存器、指令寄存:包括通用寄存器、指令寄存器、標(biāo)示寄存器以及段寄存器器、標(biāo)示寄存器以及段寄存器系統(tǒng)寄存器組系統(tǒng)寄存器組:包括系統(tǒng)地址寄存器、控制:包括系統(tǒng)地址寄存器、控制寄存器寄存器浮點(diǎn)部件寄存器組浮點(diǎn)部件寄存器組:包括數(shù)據(jù)寄存器堆、控:包括數(shù)據(jù)寄存器堆、控制寄存器、狀態(tài)寄存器、指令指針寄存器和數(shù)制寄存器、狀態(tài)寄存器、指令指針寄存器和數(shù)據(jù)指針寄存器以及標(biāo)記字寄存器據(jù)指針寄存器以及標(biāo)記字寄存器PentiumPentium的基本寄存器包括通用寄存器、段寄存器、的基本寄存器包括通用寄存器、段寄存器、指令指針和標(biāo)志寄存器指令指

20、針和標(biāo)志寄存器一、通用寄存器一、通用寄存器PentiumPentium通用寄存器如圖通用寄存器如圖3-23-2所示,它兼容所示,它兼容8086 8086 CPUCPU原來(lái)的原來(lái)的8 8個(gè)個(gè)1616位通用寄存器以及原來(lái)的位通用寄存器以及原來(lái)的8 8個(gè)個(gè)8 8位的位的寄存器,而且將原來(lái)的寄存器,而且將原來(lái)的8 8個(gè)個(gè)1616位通用寄存器位通用寄存器AXAX、BXBX、CXCX、DXDX、SISI、DIDI、BPBP、SPSP均擴(kuò)展成均擴(kuò)展成3232位的寄存器位的寄存器EAXEAX、EBXEBX、ECXECX、EDXEDX、ESIESI、EDIEDI、EBPEBP、ESPESP。既可以使用。既可以使

21、用保留的保留的8 8位和位和1616位寄存器,還可以使用位寄存器,還可以使用3232位寄存器位寄存器3.2 .1基本寄存器組基本寄存器組Pentium通用寄存器通用寄存器 段寄存器及段描述符高速緩存器段寄存器及段描述符高速緩存器如圖如圖3-33-3所示,所示,PentiumPentium有有6 6個(gè)個(gè)1616位段寄存器,每個(gè)段寄存器對(duì)位段寄存器,每個(gè)段寄存器對(duì)應(yīng)有一個(gè)應(yīng)有一個(gè)6464位的描述符,用戶不可見(jiàn)。位的描述符,用戶不可見(jiàn)。6 6個(gè)段寄個(gè)段寄存器的長(zhǎng)度均為存器的長(zhǎng)度均為1616位。除位。除CSCS和和SSSS分別是代碼段分別是代碼段寄存器和堆棧段寄存器之外,其余的寄存器和堆棧段寄存器之外

22、,其余的DSDS、ESES、FSFS、GSGS都是數(shù)據(jù)段寄存器都是數(shù)據(jù)段寄存器 二、段寄存器及段描述符高速緩存器 Pentium段寄存器及段描述符高速緩存器段寄存器及段描述符高速緩存器 每個(gè)段對(duì)應(yīng)一個(gè)段描述符(每個(gè)段對(duì)應(yīng)一個(gè)段描述符(8 8個(gè)字節(jié)),個(gè)字節(jié)),6 6個(gè)段描述符存放在個(gè)段描述符存放在CPUCPU內(nèi)的段描述符高速緩存內(nèi)的段描述符高速緩存器中,它們均由內(nèi)存的描述符表中拷貝而成,器中,它們均由內(nèi)存的描述符表中拷貝而成,以便以便CPUCPU訪問(wèn)某一段時(shí),均按存放在訪問(wèn)某一段時(shí),均按存放在CPUCPU內(nèi)該內(nèi)該段的段描述符所描述的信息進(jìn)行操作。每個(gè)段的段描述符所描述的信息進(jìn)行操作。每個(gè)段描述

23、符的具體組成如圖段描述符的具體組成如圖3-43-4所示所示1. 6個(gè)段描述符個(gè)段描述符圖圖3-4 段描述符的組成段描述符的組成 每個(gè)段寄存器的組成如圖每個(gè)段寄存器的組成如圖3-53-5所示。在保護(hù)所示。在保護(hù)模式下,段寄存器被稱作為一個(gè)模式下,段寄存器被稱作為一個(gè)1616位的段選擇位的段選擇字,其中字,其中b1b1、b0b0位為請(qǐng)求特權(quán)級(jí)位為請(qǐng)求特權(quán)級(jí)RPLRPL,可以請(qǐng),可以請(qǐng)求特權(quán)層的級(jí)別求特權(quán)層的級(jí)別0-30-3級(jí)級(jí)26個(gè)個(gè)16位段寄存器位段寄存器 Pentium CPU Pentium CPU中有一個(gè)中有一個(gè)3232位的指令指(位的指令指(EIPEIP)和一個(gè))和一個(gè)3232位的標(biāo)志寄

24、存器(位的標(biāo)志寄存器(EFLAGSEFLAGS),如圖),如圖3-63-6所示所示三、指令指針和標(biāo)志寄存器三、指令指針和標(biāo)志寄存器nEIPEIP保存下一條待執(zhí)行指令所在代碼段內(nèi)的偏保存下一條待執(zhí)行指令所在代碼段內(nèi)的偏移值,也就是偏離代碼段首地址的字節(jié)地址移值,也就是偏離代碼段首地址的字節(jié)地址數(shù)值。數(shù)值。EIPEIP的低的低1616位為位為IPIP,供實(shí)地址方式下采,供實(shí)地址方式下采用用nEFLAGSEFLAGS在在8086 168086 16位位FLAGSFLAGS基礎(chǔ)上擴(kuò)充了高基礎(chǔ)上擴(kuò)充了高1616位,其中,位,其中,F(xiàn)LAGS b11b0FLAGS b11b0中保留了中保留了8086 CP

25、U8086 CPU中中6 6個(gè)狀態(tài)標(biāo)志和個(gè)狀態(tài)標(biāo)志和3 3個(gè)控制標(biāo)志,增加了個(gè)控制標(biāo)志,增加了NTNT與與IOPLIOPL,高,高1616位中新增了位中新增了6 6個(gè)標(biāo)志位。這些擴(kuò)充個(gè)標(biāo)志位。這些擴(kuò)充標(biāo)志位的含義參考教材標(biāo)志位的含義參考教材PentiumPentium的系統(tǒng)寄存器組包括的系統(tǒng)寄存器組包括4 4個(gè)表所對(duì)應(yīng)的個(gè)表所對(duì)應(yīng)的4 4個(gè)基地址寄存器個(gè)基地址寄存器GDTRGDTR、IDTRIDTR、LDTRLDTR、TRTR,也稱,也稱為為4 4個(gè)段基地址寄存器,還包括個(gè)段基地址寄存器,還包括5 5個(gè)控制寄存器個(gè)控制寄存器CRCR0 0、CRCR1 1、CRCR2 2、CRCR3 3、CRC

26、R4 4。系統(tǒng)寄存器組中的。系統(tǒng)寄存器組中的所有寄存器都不可能被用戶訪問(wèn),只能由特權(quán)所有寄存器都不可能被用戶訪問(wèn),只能由特權(quán)級(jí)為級(jí)為0 0的操作系統(tǒng)程序訪問(wèn)的操作系統(tǒng)程序訪問(wèn)3.2.2 系統(tǒng)寄存器組 4個(gè)表基地址寄存器個(gè)表基地址寄存器如圖如圖3-7所示所示 (1 1)GDTRGDTR(Global Descriptor Table RegisterGlobal Descriptor Table Register),),全局描述符表全局描述符表寄存器。共有寄存器。共有4848位,其中,高位,其中,高3232位保存全局描述符表位保存全局描述符表的線性基地址,低的線性基地址,低1616位是表限字段,

27、即表的最大長(zhǎng)度位是表限字段,即表的最大長(zhǎng)度僅僅6464KBKB(2 2)IDTRIDTR(Interrupt Descriptor Table RegisterInterrupt Descriptor Table Register),),中斷描述符表中斷描述符表寄存器。共有寄存器。共有4848位,其中高位,其中高3232位用于保存中斷描述符位用于保存中斷描述符表表IDTIDT的的3232位線性基地址,低位線性基地址,低1616位是表限字段,表的位是表限字段,表的最大長(zhǎng)度也是最大長(zhǎng)度也是6464KBKB一、4個(gè)表基地址寄存器圖圖3-7 4個(gè)表基地址寄存器個(gè)表基地址寄存器 (3)(3)LDTRLD

28、TR(Local Descriptor Table RegisterLocal Descriptor Table Register),局部描述符寄局部描述符寄存器。包括存器。包括1616位段選擇符,不可編程的位段選擇符,不可編程的6464位描述符寄位描述符寄存器。在存器。在6464位描述符寄存器中,有位描述符寄存器中,有3232位位LDTLDT的線性基地的線性基地址,址,2020位的表限及位的表限及1212位的描述符屬性位的描述符屬性 (4)(4)TRTR,任務(wù)寄存器。包括,任務(wù)寄存器。包括1616位段選擇符,位段選擇符,6464位描述位描述符寄存器,其中,符寄存器,其中,3232位任務(wù)狀態(tài)段

29、的線性基地址,位任務(wù)狀態(tài)段的線性基地址,2020位的表限及位的表限及1212位的描述符屬性位的描述符屬性 1CR0 控制寄存器控制寄存器二、二、5個(gè)控制寄存器個(gè)控制寄存器 2 2CR2 CR2 頁(yè)故障線性地址寄存器頁(yè)故障線性地址寄存器 用于保存最后出現(xiàn)用于保存最后出現(xiàn)頁(yè)故障的頁(yè)故障的3232位線性地址。操作系統(tǒng)中的頁(yè)異常處理程位線性地址。操作系統(tǒng)中的頁(yè)異常處理程序可以通過(guò)檢查序可以通過(guò)檢查CR2CR2的內(nèi)容,得知的內(nèi)容,得知3232位的線性地址。位的線性地址。 3 3CR3 CR3 頁(yè)目錄基址寄存器頁(yè)目錄基址寄存器 其中高其中高2020位存放頁(yè)目錄位存放頁(yè)目錄表的物理基地址。在進(jìn)行分頁(yè)變換時(shí),

30、加上表的物理基地址。在進(jìn)行分頁(yè)變換時(shí),加上1010位線性位線性地址地址4 4,找到某一存儲(chǔ)容量為,找到某一存儲(chǔ)容量為4B4B的頁(yè)描述符。在頁(yè)目的頁(yè)描述符。在頁(yè)目錄基址寄存器的低錄基址寄存器的低1212中,有中,有PCDPCD和和PWTPWT兩位控制位,其兩位控制位,其余余1010位保留位保留 圖圖3-9 控制寄存器控制寄存器CR2、CR34CR4CR4允許結(jié)構(gòu)擴(kuò)展的標(biāo)志寄存器允許結(jié)構(gòu)擴(kuò)展的標(biāo)志寄存器 3232位位CR4CR4中僅使用了中僅使用了9 9個(gè)控制位,其余個(gè)控制位,其余2323位保留位保留 5模式專用寄存器模式專用寄存器 PentiumPentium取消了測(cè)試寄存器,而用一組專取消了測(cè)

31、試寄存器,而用一組專用寄存器來(lái)實(shí)現(xiàn)更多的功能。這組寄存器具用寄存器來(lái)實(shí)現(xiàn)更多的功能。這組寄存器具有測(cè)試、跟蹤、性能檢測(cè)以及機(jī)器檢查等功有測(cè)試、跟蹤、性能檢測(cè)以及機(jī)器檢查等功能能 Pentium Pentium內(nèi)部有一個(gè)浮點(diǎn)運(yùn)算部件,與之配套一起內(nèi)部有一個(gè)浮點(diǎn)運(yùn)算部件,與之配套一起實(shí)現(xiàn)浮點(diǎn)運(yùn)算的浮點(diǎn)寄存器有實(shí)現(xiàn)浮點(diǎn)運(yùn)算的浮點(diǎn)寄存器有: : 8 8個(gè)數(shù)據(jù)寄存器個(gè)數(shù)據(jù)寄存器 1 1個(gè)標(biāo)記字寄存器個(gè)標(biāo)記字寄存器 1 1個(gè)狀態(tài)寄存器個(gè)狀態(tài)寄存器 1 1個(gè)控制寄存器個(gè)控制寄存器 1 1個(gè)數(shù)據(jù)指針寄存器個(gè)數(shù)據(jù)指針寄存器3.2.3 浮點(diǎn)寄存器組1. 8個(gè)數(shù)據(jù)寄存器個(gè)數(shù)據(jù)寄存器 數(shù)據(jù)寄存器數(shù)據(jù)寄存器R R7 7

32、-R-R0 0均為均為8080位寬,在每個(gè)位寬,在每個(gè)8080位寄存器位寄存器中,均有中,均有1 1位數(shù)符位,位數(shù)符位,1515位階碼位,位階碼位,6464位尾數(shù)位位尾數(shù)位2. 標(biāo)記字寄存器標(biāo)記字寄存器 1616位寬的標(biāo)記字寄存器分成位寬的標(biāo)記字寄存器分成8 8個(gè)個(gè)2 2位,分別對(duì)應(yīng)位,分別對(duì)應(yīng)8 8個(gè)數(shù)據(jù)寄存器,如圖個(gè)數(shù)據(jù)寄存器,如圖3-113-11所示。標(biāo)記字寄存器的所示。標(biāo)記字寄存器的b b1 1、b b0 0位對(duì)應(yīng)位對(duì)應(yīng)R R0 0數(shù)據(jù)寄存器,數(shù)據(jù)寄存器,b b3 3、b b2 2位對(duì)應(yīng)位對(duì)應(yīng)R R1 1數(shù)據(jù)寄存數(shù)據(jù)寄存器,顯然器,顯然b b1515、b b1414位對(duì)應(yīng)數(shù)據(jù)寄存器位對(duì)

33、應(yīng)數(shù)據(jù)寄存器R R7 7,用兩位二,用兩位二進(jìn)制數(shù)作標(biāo)記,以便進(jìn)制數(shù)作標(biāo)記,以便CPUCPU只須通過(guò)檢查標(biāo)記位,就只須通過(guò)檢查標(biāo)記位,就可以知道數(shù)據(jù)寄存器是否空等可以知道數(shù)據(jù)寄存器是否空等圖圖3-11 Pentium的浮點(diǎn)寄存器的浮點(diǎn)寄存器1616位寄存器都被用來(lái)指示位寄存器都被用來(lái)指示FPUFPU當(dāng)前所處的狀態(tài)當(dāng)前所處的狀態(tài)(1 1)IEIE,若,若IEIE置置1 1,表示產(chǎn)生了無(wú)效操作,指示這是,表示產(chǎn)生了無(wú)效操作,指示這是非法操作產(chǎn)生的故障非法操作產(chǎn)生的故障(2 2)DEDE,若,若DEDE為為1 1,表示操作數(shù)不符合規(guī)范產(chǎn)生的故,表示操作數(shù)不符合規(guī)范產(chǎn)生的故障障(3 3)ZEZE,若,

34、若ZE=1ZE=1,則指示除數(shù)為,則指示除數(shù)為0 0引起的故障引起的故障(4 4)PEPE,若,若PE=1PE=1,則指示運(yùn)算結(jié)果不符合精度規(guī)格,則指示運(yùn)算結(jié)果不符合精度規(guī)格(5 5)SPSP,堆棧故障標(biāo)志位,當(dāng),堆棧故障標(biāo)志位,當(dāng)IE=1IE=1且且SF=1SF=1時(shí),若時(shí),若C1=1C1=1則表示堆棧上溢引起無(wú)效故障。若則表示堆棧上溢引起無(wú)效故障。若C1=0C1=0,則指示堆,則指示堆棧下溢引起無(wú)效故障棧下溢引起無(wú)效故障三、狀態(tài)寄存器(6 6)ESES,錯(cuò)誤標(biāo)志位,以上任何一個(gè)故障都會(huì),錯(cuò)誤標(biāo)志位,以上任何一個(gè)故障都會(huì)使使ES=1ES=1,且使,且使CPUCPU引腳信號(hào)變?yōu)榈碗娖揭_信號(hào)變

35、為低電平(7 7)C0C0C3C3,條件碼,這,條件碼,這4 4位條件碼可以用位條件碼可以用SAHFSAHF指令進(jìn)行設(shè)置,也可用指令進(jìn)行設(shè)置,也可用FSTSWFSTSW指令讀取,該指令讀取,該4 4位位二進(jìn)制的狀態(tài)使二進(jìn)制的狀態(tài)使FPUFPU實(shí)現(xiàn)某種選擇。實(shí)現(xiàn)某種選擇。C0C0還和還和SFSF配配合使用表示堆棧的狀態(tài)合使用表示堆棧的狀態(tài)(8 8)TOPTOP,堆棧棧頂指針,堆棧棧頂指針(9 9)B B,用來(lái)指示,用來(lái)指示FPUFPU當(dāng)前是否處于忙狀態(tài),當(dāng)當(dāng)前是否處于忙狀態(tài),當(dāng)B=1B=1時(shí),表示忙,反之處于不忙狀態(tài)時(shí),表示忙,反之處于不忙狀態(tài)(1 1)PMPMIMIM低低6 6位控制位位控制位

36、,分別用來(lái)控制,分別用來(lái)控制6 6種異種異常能否允許產(chǎn)生中斷,這常能否允許產(chǎn)生中斷,這6 6種控制位分別用來(lái)種控制位分別用來(lái)屏蔽狀態(tài)寄存器中的低屏蔽狀態(tài)寄存器中的低6 6種狀態(tài)位,即種狀態(tài)位,即IMIM位用位用來(lái)屏蔽來(lái)屏蔽IEIE位,位,DMDM位用于屏蔽位用于屏蔽DEDE位等位等(2 2)2 2位位PCPC位位,用作精度控制,當(dāng),用作精度控制,當(dāng)2 2位位PCPC位為位為0000時(shí),作時(shí),作2424位單精度運(yùn)算,位單精度運(yùn)算,1010時(shí)為時(shí)為5353位雙精度位雙精度運(yùn)算,運(yùn)算,1111時(shí)為擴(kuò)展的雙精度運(yùn)算,即時(shí)為擴(kuò)展的雙精度運(yùn)算,即6464位運(yùn)位運(yùn)算,算,0101未用未用(3 3)2 2位位

37、RCRC位位,用作舍入控制,用作舍入控制四、FPU的控制寄存器圖3-13 FPU的控制寄存器3.3 Pentium的虛擬存儲(chǔ)器的虛擬存儲(chǔ)器3.3.1 Pentium的工作模式簡(jiǎn)介的工作模式簡(jiǎn)介PentiumPentium的虛擬存儲(chǔ)器(的虛擬存儲(chǔ)器(VivtualVivtual Storage Storage)技術(shù)、)技術(shù)、高速緩存(高速緩存(CacheCache)技術(shù)以及超標(biāo)量流水線技術(shù)是微)技術(shù)以及超標(biāo)量流水線技術(shù)是微型計(jì)算機(jī)系統(tǒng)的三大支柱,虛擬存儲(chǔ)器的目標(biāo)是如型計(jì)算機(jī)系統(tǒng)的三大支柱,虛擬存儲(chǔ)器的目標(biāo)是如何高速允許多個(gè)軟件進(jìn)程共享并使用主存儲(chǔ)器這一何高速允許多個(gè)軟件進(jìn)程共享并使用主存儲(chǔ)器這一

38、容量有限的存儲(chǔ)資源。虛擬存儲(chǔ)器的實(shí)現(xiàn)不僅僅體容量有限的存儲(chǔ)資源。虛擬存儲(chǔ)器的實(shí)現(xiàn)不僅僅體現(xiàn)在計(jì)算機(jī)硬件系統(tǒng)上的完美無(wú)缺,而且虛擬存儲(chǔ)現(xiàn)在計(jì)算機(jī)硬件系統(tǒng)上的完美無(wú)缺,而且虛擬存儲(chǔ)器技術(shù)是操作系統(tǒng)的核心技術(shù),操作系統(tǒng)中存儲(chǔ)器器技術(shù)是操作系統(tǒng)的核心技術(shù),操作系統(tǒng)中存儲(chǔ)器管理程序的主要任務(wù)就是要將有限的主存儲(chǔ)器不斷管理程序的主要任務(wù)就是要將有限的主存儲(chǔ)器不斷地動(dòng)態(tài)分配給各活動(dòng)進(jìn)程地動(dòng)態(tài)分配給各活動(dòng)進(jìn)程PentiumPentium的的工作模式工作模式分為:分為:實(shí)模式實(shí)模式、保護(hù)模式保護(hù)模式、虛虛擬擬8686模式模式、平展模式平展模式、線性空間以及系統(tǒng)管理模式線性空間以及系統(tǒng)管理模式共五種。共五種。Pe

39、ntiumPentium外部的地址總線寬度外部的地址總線寬度3636位,由控制寄存位,由控制寄存器器CR4CR4中物理地址擴(kuò)充允許位中物理地址擴(kuò)充允許位PAEPAE控制所使用的物理控制所使用的物理空間,一般設(shè)空間,一般設(shè)PAE=0PAE=0,禁止地址的擴(kuò)充,只使用,禁止地址的擴(kuò)充,只使用3232位的物理地址,位的物理地址,3232位地址由位地址由A A3131-A-A3 3及及8 8個(gè)字節(jié)選擇信個(gè)字節(jié)選擇信號(hào)號(hào)BEBE7 7BEBE0 0組成,因此,最大物理地址空間是組成,因此,最大物理地址空間是4GB4GB。Pentium CPUPentium CPU外部數(shù)據(jù)總線寬度為外部數(shù)據(jù)總線寬度為64

40、64位,但位,但CPUCPU內(nèi)部?jī)?nèi)部寄存器仍為寄存器仍為3232位,位,PentiumPentium微處理器是微處理器是3232位微處理位微處理器器3.3.2 Pentium工作的保護(hù)模式工作的保護(hù)模式保護(hù)模式是受保護(hù)的虛擬地址模式保護(hù)模式是受保護(hù)的虛擬地址模式(Protected Protected Virtual Address ModeVirtual Address Mode)的簡(jiǎn)稱。從的簡(jiǎn)稱。從80386 CPU80386 CPU開(kāi)始,開(kāi)始,就具有了保護(hù)模式,就具有了保護(hù)模式,Pentium CPUPentium CPU內(nèi)部也設(shè)有內(nèi)部也設(shè)有存儲(chǔ)器管理部件存儲(chǔ)器管理部件MMUMMU,其中

41、,仍然包括分段部,其中,仍然包括分段部件件SUSU和分頁(yè)部件和分頁(yè)部件PUPU,通過(guò)系統(tǒng)程序員編程,通過(guò)系統(tǒng)程序員編程,PentiumPentium可以工作在只分段或只分頁(yè)或既分段可以工作在只分段或只分頁(yè)或既分段又分頁(yè)三種方式。這三種方式的關(guān)鍵建立在又分頁(yè)三種方式。這三種方式的關(guān)鍵建立在分段地址轉(zhuǎn)換與分頁(yè)地址轉(zhuǎn)換的基礎(chǔ)之上分段地址轉(zhuǎn)換與分頁(yè)地址轉(zhuǎn)換的基礎(chǔ)之上1 1利用利用GDTRGDTR與與LDTRLDTR分別訪問(wèn)分別訪問(wèn)GDTGDT與與LDTLDT 48 48位的全局描述符表寄存器包括位的全局描述符表寄存器包括3232位全局位全局描述符表的基地址和描述符表的基地址和1616位的表界限,位的表

42、界限,GDTGDT的長(zhǎng)的長(zhǎng)度不超過(guò)度不超過(guò)64KB64KB。在保護(hù)模式下,。在保護(hù)模式下,PentiumPentium支持支持多任務(wù)的運(yùn)行,如果某一任務(wù)要訪問(wèn)多任務(wù)的運(yùn)行,如果某一任務(wù)要訪問(wèn)GDTGDT時(shí),時(shí),則以則以GDTRGDTR中中3232位基地址作為全局描述符表的位基地址作為全局描述符表的基地址,再由每個(gè)任務(wù)選擇符的高基地址,再由每個(gè)任務(wù)選擇符的高1313位左移位左移3 3位后作為位后作為GDTGDT的偏移地址,指向所要訪問(wèn)的的偏移地址,指向所要訪問(wèn)的8 8字節(jié)的描述符字節(jié)的描述符一、分段地址轉(zhuǎn)換一、分段地址轉(zhuǎn)換n每個(gè)任務(wù)有各自的代碼段每個(gè)任務(wù)有各自的代碼段CS、數(shù)據(jù)段、數(shù)據(jù)段DS、還

43、、還可能有附加的數(shù)據(jù)段可能有附加的數(shù)據(jù)段ES、FS、GS以及堆棧段以及堆棧段等,每個(gè)段有一個(gè)等,每個(gè)段有一個(gè)64位的段描述符,如圖位的段描述符,如圖3-7所示,各個(gè)任務(wù)組成了自己的局部描述符表所示,各個(gè)任務(wù)組成了自己的局部描述符表LDT,因此,在內(nèi)存中有多個(gè),因此,在內(nèi)存中有多個(gè)LDT n各任務(wù)公用的代碼段、數(shù)據(jù)段的段描述符以各任務(wù)公用的代碼段、數(shù)據(jù)段的段描述符以及任務(wù)狀態(tài)段及任務(wù)狀態(tài)段TSS等系統(tǒng)段的描述符組成了等系統(tǒng)段的描述符組成了全局描述符表全局描述符表GDT,內(nèi)存中只有一個(gè),內(nèi)存中只有一個(gè)GDT。n當(dāng)前任務(wù)訪問(wèn)當(dāng)前任務(wù)訪問(wèn)LDT時(shí),由時(shí),由LDTR中對(duì)應(yīng)的中對(duì)應(yīng)的64位描述符高速緩存器

44、中位描述符高速緩存器中32位基地址作為位基地址作為L(zhǎng)DT的基地址,再由段選擇符的高的基地址,再由段選擇符的高13位左移位左移3位位后作為后作為L(zhǎng)DT的偏移地址,指向所要訪問(wèn)的的偏移地址,指向所要訪問(wèn)的8字字節(jié)的段描述符。如圖節(jié)的段描述符。如圖3-14所示,其中的描述所示,其中的描述符也就是圖符也就是圖3-4所示的描述符所示的描述符 圖圖3-14 由由LDTR由訪問(wèn)由訪問(wèn)LDT當(dāng)任務(wù)發(fā)生切換時(shí),由當(dāng)任務(wù)發(fā)生切換時(shí),由LDTRLDTR中選擇符的高中選擇符的高1313位左移三位后,作為位左移三位后,作為GDTGDT中的偏移地址,在中的偏移地址,在GDTGDT中取出該任務(wù)的中取出該任務(wù)的LDTLDT描

45、述符,并裝入到描述符,并裝入到LDTLDT對(duì)應(yīng)的描述符高速緩存器,于是在對(duì)應(yīng)的描述符高速緩存器,于是在LDTRLDTR中的中的高速緩存器中,存入了當(dāng)前高速緩存器中,存入了當(dāng)前LDTLDT的基地址,表的基地址,表界限以及性屬性等,如圖界限以及性屬性等,如圖3-153-15所示所示圖圖3-15 由由GDTR訪問(wèn)訪問(wèn)GDTn在在LDT中查到的描述符,其中查到的描述符,其32位基地址如果位基地址如果只分段不分頁(yè)的話,此只分段不分頁(yè)的話,此32位基地址加上指令位基地址加上指令中的中的32位偏移量址,就求得位偏移量址,就求得32位的物理地址。位的物理地址。n在在GDT中查到的描述符,其中查到的描述符,其3

46、2位基地址表示位基地址表示當(dāng)前當(dāng)前LDT的基地址,該描述符一定會(huì)由硬件的基地址,該描述符一定會(huì)由硬件自動(dòng)存入高速緩存器中自動(dòng)存入高速緩存器中由于由于PentiumPentium內(nèi)部寄存器是內(nèi)部寄存器是3232位,由于位,由于PentiumPentium芯片組成的微機(jī)為芯片組成的微機(jī)為3232位機(jī),訪問(wèn)存儲(chǔ)位機(jī),訪問(wèn)存儲(chǔ)器的指令仍然有直接尋址、寄存器尋址、基器的指令仍然有直接尋址、寄存器尋址、基址尋址、變址尋址、基址加變地尋址等址尋址、變址尋址、基址加變地尋址等 2分段地址的轉(zhuǎn)換分段地址的轉(zhuǎn)換例【例【3-23-2】 幾條訪問(wèn)內(nèi)存指令幾條訪問(wèn)內(nèi)存指令 MOV ALMOV AL, 1888 7777

47、H1888 7777H MOV AX MOV AX, EBXEBX MOV EAX MOV EAX,ESIESI MOV ECX MOV ECX,EBX+EDIEBX+EDI MOV DX MOV DX, EBPEBP只有最后一條指令訪問(wèn)堆找段只有最后一條指令訪問(wèn)堆找段SSSS,其余指令均訪問(wèn),其余指令均訪問(wèn)數(shù)據(jù)段數(shù)據(jù)段DSDS,構(gòu)成邏輯地址為,構(gòu)成邏輯地址為DSDS:3232位偏移量或位偏移量或SSSS:3232位偏移量,在位偏移量,在3232位機(jī)中,我們將邏輯地址稱為虛擬地位機(jī)中,我們將邏輯地址稱為虛擬地址,段寄存器稱之為段選擇符址,段寄存器稱之為段選擇符 Pentium Pentium的

48、分段地址轉(zhuǎn)換過(guò)程圖如圖的分段地址轉(zhuǎn)換過(guò)程圖如圖3-163-16所示。所示。根據(jù)段寄存器即段選擇符中根據(jù)段寄存器即段選擇符中b b2 2位位TITI,確定訪問(wèn),確定訪問(wèn)當(dāng)前當(dāng)前LDTLDT(TI=1TI=1)或)或GDTGDT(TI=0TI=0),如果訪問(wèn)),如果訪問(wèn)LDTLDT,將將1313位索引值左移位索引值左移3 3位后,作為位后,作為L(zhǎng)DTLDT基地址的偏基地址的偏移量,指向移量,指向8B8B的段描述符,段描述符中的的段描述符,段描述符中的3232位位基地址加上指令中的基地址加上指令中的3232位偏移量成為位偏移量成為3232位線性位線性地址,如果不分頁(yè)只分段,結(jié)果為該機(jī)器指令地址,如果

49、不分頁(yè)只分段,結(jié)果為該機(jī)器指令所尋址的物理地址,如果還需要分頁(yè),此線性所尋址的物理地址,如果還需要分頁(yè),此線性地址分為三段,即頁(yè)目錄(號(hào))、頁(yè)面(號(hào))地址分為三段,即頁(yè)目錄(號(hào))、頁(yè)面(號(hào))和偏移量和偏移量n如果如果TI=0,則訪問(wèn),則訪問(wèn)GDT,與前述相同。,與前述相同。n在圖在圖3-7中,系統(tǒng)還有一個(gè)中,系統(tǒng)還有一個(gè)48位的中斷描述符表寄位的中斷描述符表寄存器,其中存器,其中32位的基地址是全系統(tǒng)中僅有的一個(gè)中位的基地址是全系統(tǒng)中僅有的一個(gè)中斷描述符表斷描述符表IDT的基地址。的基地址。Pentium機(jī)中所有的中機(jī)中所有的中斷,包括軟中斷、硬件中斷以及斷,包括軟中斷、硬件中斷以及CPU內(nèi)部

50、的異常中內(nèi)部的異常中斷,每個(gè)中斷在斷,每個(gè)中斷在IDT中均有一個(gè)描述符,中均有一個(gè)描述符,IDT中最中最多可有多可有256個(gè)描述符。每個(gè)中斷描述符也是個(gè)描述符。每個(gè)中斷描述符也是8字節(jié),字節(jié),主要包括中斷服務(wù)程序的入口地址,還有其他屬性主要包括中斷服務(wù)程序的入口地址,還有其他屬性等信息。等信息。 圖3-16 分段地址轉(zhuǎn)換過(guò)程圖 分頁(yè)地址轉(zhuǎn)換由分頁(yè)地址轉(zhuǎn)換由CPUCPU內(nèi)的分頁(yè)部件內(nèi)的分頁(yè)部件PUPU來(lái)實(shí)現(xiàn),它將來(lái)實(shí)現(xiàn),它將3232位的線性地址轉(zhuǎn)換成位的線性地址轉(zhuǎn)換成3232位的物理地址。這位的物理地址。這3232位線位線性地址可能來(lái)自分段部件性地址可能來(lái)自分段部件SUSU(既分段又分頁(yè)方式),

51、(既分段又分頁(yè)方式),也可能是不分段只分頁(yè)的情況,程序不提供段選擇也可能是不分段只分頁(yè)的情況,程序不提供段選擇符,只由指令寄存器提供的符,只由指令寄存器提供的3232位地址作為線性地址,位地址作為線性地址,即即1010位的頁(yè)目錄(號(hào))、位的頁(yè)目錄(號(hào))、1010位的頁(yè)表(號(hào))和位的頁(yè)表(號(hào))和1212位位的頁(yè)內(nèi)偏移量的頁(yè)內(nèi)偏移量 在控制寄存器在控制寄存器CR4CR4中頁(yè)面長(zhǎng)度控制位中頁(yè)面長(zhǎng)度控制位PSEPSE的控制下,的控制下,PentiumPentium的分頁(yè)部件的分頁(yè)部件PUPU可以按可以按80386/8048680386/80486每頁(yè)每頁(yè)4KB4KB分分頁(yè)(頁(yè)(PSE=0PSE=0),

52、也可按每頁(yè)),也可按每頁(yè)4MB4MB分頁(yè)分頁(yè)(PSE=1PSE=1)二、分頁(yè)地址轉(zhuǎn)換二、分頁(yè)地址轉(zhuǎn)換 4KB 4KB分頁(yè)方式采用兩級(jí)分頁(yè)方式,第一級(jí)有分頁(yè)方式采用兩級(jí)分頁(yè)方式,第一級(jí)有一個(gè)一個(gè)4KB4KB的頁(yè)目錄表,可存放的頁(yè)目錄表,可存放10241024個(gè)頁(yè)目錄項(xiàng),個(gè)頁(yè)目錄項(xiàng),稱之為高級(jí)管理,第二級(jí)有一個(gè)稱之為高級(jí)管理,第二級(jí)有一個(gè)4KB4KB的頁(yè)表,的頁(yè)表,可以存放可以存放10241024個(gè)頁(yè)表項(xiàng),稱之為低級(jí)管理。個(gè)頁(yè)表項(xiàng),稱之為低級(jí)管理。頁(yè)目錄項(xiàng)與頁(yè)表項(xiàng)均為頁(yè)目錄項(xiàng)與頁(yè)表項(xiàng)均為3232位(位(4 4字節(jié)),如圖字節(jié)),如圖3-173-17所示所示14KB分頁(yè)方式分頁(yè)方式圖圖3-17 頁(yè)目

53、錄項(xiàng)與頁(yè)表項(xiàng)頁(yè)目錄項(xiàng)與頁(yè)表項(xiàng)P,存在位,存在位 P=1表示該頁(yè)表表示該頁(yè)表/頁(yè)存在,頁(yè)存在,P=0,表示不存在表示不存在PWT,通寫(xiě)位,通寫(xiě)位 用于片外用于片外Cache的寫(xiě)控制,的寫(xiě)控制,PWT=1時(shí),片外時(shí),片外Cache采用通寫(xiě)法,采用通寫(xiě)法,PWT=0時(shí),片外時(shí),片外cache使用回寫(xiě)法使用回寫(xiě)法PCD,頁(yè),頁(yè)Cache禁止位禁止位 用于對(duì)分頁(yè)高速緩沖用于對(duì)分頁(yè)高速緩沖存儲(chǔ)器的控制。若存儲(chǔ)器的控制。若PCD=1時(shí),時(shí),CPU內(nèi)部?jī)?nèi)部Cache被禁用被禁用A,訪問(wèn)位,訪問(wèn)位 表示該目錄項(xiàng)或頁(yè)表項(xiàng)所對(duì)應(yīng)的頁(yè)表示該目錄項(xiàng)或頁(yè)表項(xiàng)所對(duì)應(yīng)的頁(yè)面是否在近期被訪問(wèn)過(guò)。當(dāng)面是否在近期被訪問(wèn)過(guò)。當(dāng)A=1

54、時(shí)表示近期被訪時(shí)表示近期被訪問(wèn)過(guò),過(guò)一段時(shí)間后由操作系統(tǒng)清除為問(wèn)過(guò),過(guò)一段時(shí)間后由操作系統(tǒng)清除為0,當(dāng)頁(yè)面,當(dāng)頁(yè)面調(diào)度程序需要調(diào)出一些頁(yè)面時(shí),通過(guò)檢查調(diào)度程序需要調(diào)出一些頁(yè)面時(shí),通過(guò)檢查A位狀位狀態(tài),就可以知道各頁(yè)的使用情況,并根據(jù)調(diào)度算態(tài),就可以知道各頁(yè)的使用情況,并根據(jù)調(diào)度算法確定調(diào)出哪些頁(yè)法確定調(diào)出哪些頁(yè)D,寫(xiě)標(biāo)志位,寫(xiě)標(biāo)志位 僅頁(yè)表項(xiàng)中的僅頁(yè)表項(xiàng)中的D位有意義。當(dāng)位有意義。當(dāng)頁(yè)表項(xiàng)所涉及到的頁(yè)面被改寫(xiě)過(guò),頁(yè)表項(xiàng)所涉及到的頁(yè)面被改寫(xiě)過(guò),D位由硬件位由硬件置成置成1,一直保持為,一直保持為1狀態(tài),直到該頁(yè)被調(diào)出內(nèi)狀態(tài),直到該頁(yè)被調(diào)出內(nèi)存。當(dāng)調(diào)度程序要調(diào)出此頁(yè)時(shí),首先檢查存。當(dāng)調(diào)度程序要調(diào)出

55、此頁(yè)時(shí),首先檢查D標(biāo)標(biāo)志,若志,若D=1,則把內(nèi)存中的此頁(yè)拷貝回外存相,則把內(nèi)存中的此頁(yè)拷貝回外存相應(yīng)位置,以刷新外存上的本頁(yè)內(nèi)容。若應(yīng)位置,以刷新外存上的本頁(yè)內(nèi)容。若D=0,表示此頁(yè)沒(méi)有被改寫(xiě),調(diào)度程序不必將它拷貝表示此頁(yè)沒(méi)有被改寫(xiě),調(diào)度程序不必將它拷貝回外存,只是簡(jiǎn)單地丟棄本頁(yè)內(nèi)容,因而回外存,只是簡(jiǎn)單地丟棄本頁(yè)內(nèi)容,因而D位位也被稱之為也被稱之為“臟位臟位” PS(Page Size),頁(yè)大小位。只有頁(yè)表項(xiàng)頁(yè)大小位。只有頁(yè)表項(xiàng)中有此位。中有此位。PS=1,頁(yè)面大小按,頁(yè)面大小按4MB分頁(yè),分頁(yè),PS=0,頁(yè)面大小按頁(yè)面大小按4KB分頁(yè)分頁(yè) U/S,用戶,用戶/管理員管理員。頁(yè)面保護(hù)屬性位

56、。頁(yè)面保護(hù)屬性位 R/W,讀,讀/寫(xiě)寫(xiě)。頁(yè)保護(hù)屬性位。頁(yè)保護(hù)屬性位 U/S與與R/W結(jié)合起來(lái),實(shí)現(xiàn)頁(yè)保護(hù)。在分頁(yè)部結(jié)合起來(lái),實(shí)現(xiàn)頁(yè)保護(hù)。在分頁(yè)部件中,具有頁(yè)保護(hù)功能,將使用對(duì)象分為特權(quán)級(jí)件中,具有頁(yè)保護(hù)功能,將使用對(duì)象分為特權(quán)級(jí)3的用戶以及特權(quán)級(jí)的用戶以及特權(quán)級(jí)2、1、0的管理員用戶,管理的管理員用戶,管理員用戶不受頁(yè)的保護(hù)員用戶不受頁(yè)的保護(hù) Pentium 4KB Pentium 4KB分頁(yè)方式地址轉(zhuǎn)換如圖分頁(yè)方式地址轉(zhuǎn)換如圖3-183-18所示。將所示。將3232位線性地址定義為三個(gè)位線性地址定義為三個(gè)字段,頁(yè)目錄(號(hào))、頁(yè)面(號(hào))以及字段,頁(yè)目錄(號(hào))、頁(yè)面(號(hào))以及偏移量,分別為偏移量

57、,分別為1010位、位、1010位和位和1212位位圖圖3-18 Pentium 4KB分頁(yè)方式地址轉(zhuǎn)換圖分頁(yè)方式地址轉(zhuǎn)換圖 例【例【3-33-3】 假設(shè)線性地址是假設(shè)線性地址是3 3C445566HC445566H,CR3=11223000HCR3=11223000H 解:解:取線性地址的高取線性地址的高1010位作為頁(yè)目錄位作為頁(yè)目錄(號(hào)),求得(號(hào)),求得0011 1100 01B0011 1100 01B,乘以,乘以4 4(左移(左移2 2位)作為頁(yè)目錄項(xiàng)指針,結(jié)果為位)作為頁(yè)目錄項(xiàng)指針,結(jié)果為0011 1100 0011 1100 0100B=3C4H0100B=3C4H 查找頁(yè)目錄

58、項(xiàng)的物理地址:查找頁(yè)目錄項(xiàng)的物理地址:1122 1122 3000H+3C4H =1122 33C4H3000H+3C4H =1122 33C4H 例【例【3-43-4】 設(shè)所查找到頁(yè)表項(xiàng)中設(shè)所查找到頁(yè)表項(xiàng)中2020位頁(yè)面基地址是位頁(yè)面基地址是12345H12345H,線性地址仍,線性地址仍然取然取3C44 5566H3C44 5566H 解:轉(zhuǎn)換后最終物理地址:解:轉(zhuǎn)換后最終物理地址: 12345000H+566H=12345566H12345000H+566H=12345566Hn 存儲(chǔ)器分頁(yè)管理通過(guò)存儲(chǔ)器分頁(yè)管理通過(guò)CPU內(nèi)部寄存器內(nèi)部寄存器CR3和兩級(jí)和兩級(jí)頁(yè)表來(lái)實(shí)現(xiàn),頁(yè)目錄表稱為高級(jí)

59、管理,頁(yè)表稱為低頁(yè)表來(lái)實(shí)現(xiàn),頁(yè)目錄表稱為高級(jí)管理,頁(yè)表稱為低級(jí)管理級(jí)管理 n 將物理內(nèi)存按將物理內(nèi)存按4KB劃分為一頁(yè),稱為一個(gè)頁(yè)面,劃分為一頁(yè),稱為一個(gè)頁(yè)面,每每1024頁(yè)為一個(gè)低級(jí)管理,由線性地址的中間頁(yè)為一個(gè)低級(jí)管理,由線性地址的中間10位地址確定。每頁(yè)有一個(gè)起始地址,存放在頁(yè)表中,位地址確定。每頁(yè)有一個(gè)起始地址,存放在頁(yè)表中,由頁(yè)表項(xiàng)中由頁(yè)表項(xiàng)中20位基址作為物理地址的高位基址作為物理地址的高20位地址,位地址,低低12位補(bǔ)位補(bǔ)0。共有。共有1024頁(yè),每頁(yè)的頁(yè),每頁(yè)的20位基地址排位基地址排列存放在頁(yè)表中,整個(gè)頁(yè)表占列存放在頁(yè)表中,整個(gè)頁(yè)表占4KBn 在低級(jí)管理的上面是高級(jí)管理,由高

60、級(jí)管在低級(jí)管理的上面是高級(jí)管理,由高級(jí)管理(頁(yè)目錄表)對(duì)理(頁(yè)目錄表)對(duì)1024個(gè)頁(yè)表進(jìn)行管理,每個(gè)頁(yè)表進(jìn)行管理,每個(gè)頁(yè)表有一個(gè)起始地址,由頁(yè)目錄項(xiàng)中個(gè)頁(yè)表有一個(gè)起始地址,由頁(yè)目錄項(xiàng)中20位位基地址作高基地址作高20位地址,低位補(bǔ)位地址,低位補(bǔ)12個(gè)個(gè)0,求得,求得頁(yè)表的起始地址,頁(yè)目錄表共計(jì)有頁(yè)表的起始地址,頁(yè)目錄表共計(jì)有1024個(gè)頁(yè)個(gè)頁(yè)表項(xiàng),分別用于存放表項(xiàng),分別用于存放1024個(gè)頁(yè)表的基地址,個(gè)頁(yè)表的基地址,構(gòu)成了頁(yè)目錄表,每個(gè)頁(yè)目錄項(xiàng)占構(gòu)成了頁(yè)目錄表,每個(gè)頁(yè)目錄項(xiàng)占4B,頁(yè)目,頁(yè)目錄表也占錄表也占4KB n 將線性地址分為將線性地址分為10位、位、10位、位、12位三個(gè)位三個(gè)字 段 ,

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論