版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Pentium微處理器的內(nèi)部寄存器Pentium是Intel公司于1993年3月推出的第五代80X86系列微處理器,簡(jiǎn)稱P5或80586,中文譯名為“奔騰”。與其前輩80X86微處理器相比,Pentium采用了全新的設(shè)計(jì),它有64位數(shù)據(jù)線和32位地址線,但依然保持了與其前輩80X86的兼容性,在相同的工作方式上可以執(zhí)行所有的80X86程序。Pentium的內(nèi)部結(jié)構(gòu)如圖2.4所示。它主要由執(zhí)行單元、指令Cache、數(shù)據(jù)Cache、指令預(yù)取單元、指令譯碼單元、地址轉(zhuǎn)換與管理單元、總線單元以及控制器等部件組成。其中核心是執(zhí)行單元(又叫運(yùn)算器,它的任務(wù)是高速完成各種算術(shù)和邏輯運(yùn)算,其內(nèi)部包括兩個(gè)整數(shù)算
2、術(shù)邏輯運(yùn)算單元(ALU和一個(gè)浮點(diǎn)運(yùn)算器,分別用來(lái)執(zhí)行整數(shù)和實(shí)數(shù)的各種運(yùn)算。為了提高效率,它們都集成了幾十個(gè)數(shù)據(jù)寄存器用來(lái)臨時(shí)存放一些中間結(jié)果。這些功能部件除地址轉(zhuǎn)換和管理單元與80386/80486保持兼容外,其他都進(jìn)行了重新設(shè)計(jì)。1 超標(biāo)量體系結(jié)構(gòu)和指令流水線Pentium由“U”和“V”兩條指令流水線構(gòu)成超標(biāo)量流水線結(jié)構(gòu),其中每條流水線都有自己的ALU、地址生成邏輯和Cache接口。這種雙流水線技術(shù)可以使兩條指令在不同流水線中并行執(zhí)行。圖2.4 Pentium微處理器的內(nèi)部結(jié)構(gòu)每條流水線又分為指令預(yù)取PF、指令譯碼(一次譯碼D1、地址生成(二次譯碼D2、指令執(zhí)行EX和回寫(xiě)WB共5個(gè)步驟。圖
3、2.5給出了Pentium的指令流水線操作示意。圖2.5 Pentium指令流水線操作示意圖當(dāng)?shù)谝粭l指令完成指令預(yù)取,進(jìn)入第二個(gè)操作步驟D1,執(zhí)行指令譯碼操作時(shí),流水線就可以開(kāi)始預(yù)取第二條指令;當(dāng)?shù)谝粭l指令進(jìn)入第三個(gè)步驟D2,執(zhí)行地址生成時(shí),第二條指令進(jìn)入第二個(gè)步驟D1,開(kāi)始指令譯碼,流水線又開(kāi)始預(yù)取第三條指令;當(dāng)?shù)谝粭l指令進(jìn)入第四個(gè)步驟EX,執(zhí)行指令規(guī)定的操作時(shí),第二條指令進(jìn)入第三個(gè)步驟D2,執(zhí)行地址生成,第三條指令進(jìn)入第二個(gè)步驟D1,開(kāi)始指令譯碼,流水線又開(kāi)始預(yù)取第四條指令;當(dāng)?shù)谝粭l指令進(jìn)入第五個(gè)步驟WB,執(zhí)行回寫(xiě)操作時(shí),第二條指令進(jìn)入第四個(gè)步驟EX,執(zhí)行指令規(guī)定的操作,第三條指令進(jìn)入第三
4、個(gè)步驟D2,執(zhí)行地址生成,第四條指令進(jìn)入第二個(gè)步驟D1,開(kāi)始指令譯碼,流水線又開(kāi)始預(yù)取第五條指令。這種流水線操作并沒(méi)有減少每條指令的執(zhí)行步驟,5個(gè)步驟哪一步都不能跳越。但由于各指令的不同步驟之間并行執(zhí)行,從而極大地提高了指令的執(zhí)行速度。從第一個(gè)時(shí)鐘開(kāi)始,經(jīng)過(guò)5個(gè)時(shí)鐘后,每個(gè)時(shí)鐘都有一條指令執(zhí)行完畢從流水線輸出。在這種理想情況下,Pentium的超標(biāo)量體系結(jié)構(gòu)每個(gè)時(shí)鐘周期內(nèi)可執(zhí)行兩條整數(shù)指令(每條流水線執(zhí)行一條指令。2 重新設(shè)計(jì)的浮點(diǎn)運(yùn)算部件Pentium的浮點(diǎn)運(yùn)算部件在80486的基礎(chǔ)上作了重新設(shè)計(jì),采用了超流水線技術(shù),由8個(gè)獨(dú)立執(zhí)行部件進(jìn)行流水線作業(yè),使每個(gè)時(shí)鐘周期能完成一個(gè)浮點(diǎn)操作(或兩個(gè)
5、浮點(diǎn)操作。采用快速算法可使諸如ADD、MUL和LOAD等運(yùn)算的速度最少提高3倍,在許多應(yīng)用程序中利用指令調(diào)度和重疊(流水線執(zhí)行可使性能提高5倍以上。同時(shí),這些指令用電路進(jìn)行固化,用硬件來(lái)實(shí)現(xiàn),使執(zhí)行速度得到更大提高。3 獨(dú)立的指令Cache和數(shù)據(jù)CachePentium片內(nèi)有兩個(gè)8KB的超高速緩存器,一個(gè)是指令Cache,一個(gè)是數(shù)據(jù)Cache。轉(zhuǎn)換后備緩沖器TLB(Translation Look-aside Buffer的作用是將線性地址轉(zhuǎn)換為物理地址。這兩種Cache采用328線寬,是對(duì)Pentium的64位總線的有力支持。指令和數(shù)據(jù)分別使用不同的Cache,使Pentium中數(shù)據(jù)和指令的
6、存取減少了沖突,提高了性能。Pentium的數(shù)據(jù)Cache有兩種接口,分別與U和V兩條流水線相連,以便能在相同時(shí)刻向兩個(gè)獨(dú)立工作的流水線進(jìn)行數(shù)據(jù)交換。當(dāng)向已被占滿的數(shù)據(jù)Cache中寫(xiě)數(shù)據(jù)時(shí),將移走當(dāng)前使用頻率最低的數(shù)據(jù),同時(shí)將其寫(xiě)回內(nèi)存,這種技術(shù)稱為Cache回寫(xiě)技術(shù)。由于CPU向Cache寫(xiě)數(shù)據(jù)和將Cache釋放的數(shù)據(jù)寫(xiě)回內(nèi)存是同時(shí)進(jìn)行的,所以采用Cache回寫(xiě)技術(shù)將節(jié)省處理時(shí)間。4 分支指令預(yù)測(cè)。Pentium提供了一個(gè)稱為BTB(Branch Target Buffer的小Cache來(lái)動(dòng)態(tài)地預(yù)測(cè)程序的分支操作。當(dāng)某條指令導(dǎo)致程序分支時(shí),BTB記憶下該條指令和分支的目標(biāo)地址,并用這些信息預(yù)
7、測(cè)該條指令再次產(chǎn)生分支時(shí)的路徑,預(yù)先從該處預(yù)取,保證流水線的指令預(yù)取步驟不會(huì)空置。這一機(jī)構(gòu)的設(shè)置,可以減少在循環(huán)操作時(shí)對(duì)循環(huán)條件的判斷所占用的CPU的時(shí)間。5 采用64位外部數(shù)據(jù)總線Pentium芯片內(nèi)部ALU和通用寄存器仍是32位,所以還是32位微處理器,但它同內(nèi)存儲(chǔ)器進(jìn)行數(shù)據(jù)交換的外部數(shù)據(jù)總線為64位,使兩者之間的數(shù)據(jù)傳輸速度可達(dá)528MB/s。此外Pentium還支持多種類型的總線周期,在突發(fā)方式下,可以在一個(gè)總線周期內(nèi)讀入256B的數(shù)據(jù)。2. Pentium的外部引腳Pentium芯片有168個(gè)引腳,這些引腳信號(hào)線也即Pentium CPU總線,分為三大類: 總線接口引腳、處理器控制引
8、腳、調(diào)試與測(cè)試引腳。1 總線接口信號(hào)Pentium的總線接口信號(hào)如表2.1所示。這些引腳信號(hào)包括用于管理訪問(wèn)外部存儲(chǔ)器和I/O端口必須的地址、數(shù)據(jù)和總線周期控制信號(hào),以及Cache控制信號(hào)。表2.1 總線接口信號(hào)類 型符 號(hào)功 能方 向地址信號(hào)A31A3APAPCHK地址總線。用于指明某一8字節(jié)(64位單元地址地址奇偶校驗(yàn)地址奇偶校驗(yàn)出錯(cuò)字節(jié)允許。用于指明訪問(wèn)8字節(jié)中的哪些字節(jié)輸出輸出輸出輸出數(shù)據(jù)信號(hào)D63D0DP7DP0數(shù)據(jù)總線。D63D56、D7D0分別是最高和最低有效字節(jié)數(shù)據(jù)奇偶校驗(yàn)引腳。分別對(duì)應(yīng)數(shù)據(jù)的8個(gè)字節(jié)數(shù)據(jù)奇偶校驗(yàn)允許數(shù)據(jù)奇偶校驗(yàn)狀態(tài)指示。低電平表示有奇偶校驗(yàn)錯(cuò)總線檢查輸入/輸出
9、輸入/輸出輸出輸出輸入總線周期控制信號(hào)SCYC 地址狀態(tài)。它有效表明地址和總線定義信號(hào)是有效的突發(fā)就緒。表明當(dāng)前周期已完成數(shù)據(jù)/控制周期指示。用來(lái)區(qū)分?jǐn)?shù)據(jù)和控制周期寫(xiě)/讀周期指示。用來(lái)區(qū)別讀還是寫(xiě)周期存儲(chǔ)器/IO周期指示。用來(lái)區(qū)分存儲(chǔ)器和IO周期分離周期。表示未對(duì)齊操作鎖定期間有2個(gè)以上的周期被鎖定Cache輸出信號(hào),指示當(dāng)前Pentium周期可對(duì)數(shù)據(jù)進(jìn)行緩存總線鎖定。它有效表明Pentium正在讀修改寫(xiě)周期中運(yùn)行,在讀與寫(xiě)周期間不釋放外部總線,即獨(dú)占系統(tǒng)總線輸出輸出輸出輸出輸出輸出輸出輸出Cache控制信號(hào)PWTPCD頁(yè)面通寫(xiě)。PWT=1表明寫(xiě)操作命中時(shí)既要寫(xiě)Cache,也要寫(xiě)內(nèi)存頁(yè)面Cac
10、he禁止。PCD=1時(shí)禁止以頁(yè)為單位的Cache操作Cache允許。用來(lái)確定當(dāng)前周期所傳送的數(shù)據(jù)是否能用于高速緩存下一地址,用于形成流水線式總線周期回寫(xiě)/通寫(xiě)外部寫(xiě)緩沖器空輸出輸入輸入輸入輸出輸入D63D0是Pentium的64位雙向數(shù)據(jù)總線。A31A3和構(gòu)成32位地址總線,以提供存儲(chǔ)器和I/O端口的物理地址。A31A3用于確定一個(gè)8字節(jié)單元地址,則用于指明在當(dāng)前的操作中要訪問(wèn)8字節(jié)中的哪些字節(jié)。Pentium微處理器規(guī)定: 對(duì)應(yīng)數(shù)據(jù)線D7D0;對(duì)應(yīng)數(shù)據(jù)線D15D8;對(duì)應(yīng)數(shù)據(jù)線D23D16;對(duì)應(yīng)數(shù)據(jù)線D31D24;對(duì)應(yīng)數(shù)據(jù)線D39D32;對(duì)應(yīng)數(shù)據(jù)線D47D40;對(duì)應(yīng)數(shù)據(jù)線D55D48;對(duì)應(yīng)數(shù)據(jù)
11、線D63D56。Pentium微處理器的地址線沒(méi)有設(shè)置A2、A1和A0引腳,但可由這8個(gè)字節(jié)使能信號(hào)產(chǎn)生,為保持與前輩80X86的兼容性,還應(yīng)產(chǎn)生信號(hào)。(數(shù)據(jù)/控制、(寫(xiě)/讀、(存儲(chǔ)器/IO是總線周期定義的基本信號(hào),這3個(gè)信號(hào)的不同組合可以決定當(dāng)前的總線周期所要完成的操作,如表2.2所示。這些操作的意義將在有關(guān)章節(jié)加以介紹。表2.2 總線周期定義啟動(dòng)的總線周期000中斷響應(yīng)周期001停機(jī)/暫停010I/O讀周期011I/O寫(xiě)周期100微代碼讀周期101Intel公司保留110存儲(chǔ)器讀周期111存儲(chǔ)器寫(xiě)周期2 處理器控制信號(hào)處理器控制信號(hào)如表2.3所示。包括時(shí)鐘、處理器初始化、FRC、總線仲裁、
12、Cache窺視、中斷請(qǐng)求、執(zhí)行跟蹤、數(shù)字出錯(cuò)和系統(tǒng)管理等信號(hào)。表2.3 處理器控制信號(hào)類 型符 號(hào)功 能方 向時(shí)鐘CLK時(shí)鐘輸入信號(hào)。為CPU提供內(nèi)部工作頻率輸入初始化RESETINIT復(fù)位。高電平強(qiáng)制Pentium從已知的初始狀態(tài)開(kāi)始執(zhí)行程序初始化。INIT的作用類似于RESET信號(hào),不同之處是它在進(jìn)行處理器初始化時(shí),將保持片內(nèi)Cache、寫(xiě)緩沖器和浮點(diǎn)寄存器的內(nèi)容不變輸入輸入FRC功能冗余檢查方式內(nèi)部出錯(cuò)輸出輸出總線仲裁HOLDHLDABREG總線保持請(qǐng)求。它有效時(shí),表示請(qǐng)求Pentium交出總線控制權(quán)總線保持響應(yīng)。它有效時(shí),指明Pentium已經(jīng)交出總線控制權(quán)總線請(qǐng)求。該引腳有效時(shí),表示
13、Pentium需要使用系統(tǒng)總線總線占用。它有效時(shí),強(qiáng)制Pentium在下一時(shí)鐘浮空其總線輸入輸出輸出輸入Cache窺視AHOLDINV地址保持請(qǐng)求。該信號(hào)決定地址線A31A4是否接受地址輸入有效外部地址。該信號(hào)表示地址總線A31A4上的地址信號(hào)有效Cache清洗。低電平有效時(shí),強(qiáng)制Pentium清洗整個(gè)內(nèi)部高速緩存未命中命中無(wú)效請(qǐng)求輸入輸入輸入輸出輸出輸入中斷INTRNMI可屏蔽中斷請(qǐng)求。高電平表示有外部中斷請(qǐng)求不可屏蔽中斷請(qǐng)求。上升沿表示該中斷請(qǐng)求有效輸入輸入執(zhí)行跟蹤IUIVIBTU流水線指令完成V流水線指令完成轉(zhuǎn)移跟蹤指令輸出輸出輸出數(shù)字出錯(cuò)浮點(diǎn)出錯(cuò)。用來(lái)報(bào)告Pentium中PC類型的浮點(diǎn)
14、出錯(cuò)忽略數(shù)字出錯(cuò)輸出輸入系統(tǒng)管理系統(tǒng)管理中斷。該信號(hào)有效,使Pentium進(jìn)入到系統(tǒng)管理運(yùn)行模式系統(tǒng)管理中斷激活。該信號(hào)有效,表明Pentium正工作在系統(tǒng)管理模式輸入輸出其他A20M第20位地址屏蔽。該信號(hào)有效時(shí),將屏蔽A20及以上地址,使Pentium仿真8086的1MB存儲(chǔ)空間輸入3 調(diào)試與測(cè)試引腳調(diào)試與測(cè)試信號(hào)如表2.4所示。包括探針?lè)绞?、斷點(diǎn)/性能監(jiān)測(cè)和邊界掃描等引腳信號(hào)。表2.4 調(diào)試與測(cè)試信號(hào)類 型符 號(hào)功 能方 向探針?lè)绞絉/SPRDY進(jìn)入或退出探針?lè)绞教结樂(lè)绞骄途w輸入輸出斷點(diǎn)/性能監(jiān)測(cè)PM0/BP0PM1/BP1BP3BP2性能監(jiān)測(cè)0/斷點(diǎn)0性能監(jiān)測(cè)1/斷點(diǎn)1斷點(diǎn)3斷點(diǎn)2輸出
15、輸出輸出邊界掃描TCKTDITDOTMS測(cè)試時(shí)鐘測(cè)試數(shù)據(jù)輸入測(cè)試數(shù)據(jù)輸出測(cè)試方式選擇測(cè)試復(fù)位輸入輸入輸出輸入輸入2.3.2內(nèi)部寄存器Pentium的內(nèi)部寄存器按功能分為四類: 基本寄存器、系統(tǒng)級(jí)寄存器、調(diào)試與模型專用寄存器、浮點(diǎn)寄存器。它們是在80486內(nèi)部寄存器的基礎(chǔ)上擴(kuò)充而來(lái),并與其前輩80X86保持了兼容。主要差別是Pentium用一組模型專用寄存器代替了80486的測(cè)試寄存器,并擴(kuò)充了一個(gè)系統(tǒng)控制寄存器。1. 基本寄存器基本寄存器包括通用寄存器、指令指針寄存器、標(biāo)志寄存器和段寄存器,這些寄存器都是在8086/8088基礎(chǔ)上擴(kuò)展而來(lái)的,如圖2.6所示。圖2.6 基本寄存器1 通用寄存器8
16、個(gè)32位通用寄存器EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP是在8086/8088的8個(gè)16位寄存器基礎(chǔ)上擴(kuò)展位數(shù)而來(lái)的。為了與8086/8088兼容,它們的低16位可以單獨(dú)訪問(wèn),并以同8086/8088中相同的名稱命名: AX、BX、CX、DX、SI、DI、BP、SP。其中AX、BX、CX、DX還可進(jìn)一步分成兩個(gè)8位寄存器單獨(dú)訪問(wèn),且同樣有自己獨(dú)立的名稱: AH、AL,BH、BL,CH、CL,DH、DL。上述寄存器中,(ESP是指示棧頂?shù)闹羔?,稱為堆棧寄存器。在32位尋址時(shí),8個(gè)32位寄存器均可用作存儲(chǔ)器訪問(wèn)的地址寄存器,但在16位尋址時(shí),只能使用BX、BP、SP、SI、
17、DI寄存器,其中BX和BP稱為基址寄存器,SI和DI稱為變址寄存器,(ECX則常用于循環(huán)控制,又稱為循環(huán)計(jì)數(shù)寄存器,(EAX則稱為累加器。2 指令指針寄存器(EIPEIP用于保存下一條待預(yù)取指令相對(duì)于代碼段基址(由CS提供的偏移量。它的低16位也可以單獨(dú)訪問(wèn),并稱之為IP寄存器。當(dāng)80X86/Pentium工作在32位操作方式時(shí),采用32位的EIP;工作在16位操作方式,采用16位的IP。用戶不可隨意改變其值,只能通過(guò)轉(zhuǎn)移類、調(diào)用及返回類指令改變其值。3 標(biāo)志寄存器(EFLAGS標(biāo)志寄存器EFLAGS是32位的,它是在8086/8088/80286標(biāo)志寄存器FLAGS的基礎(chǔ)上擴(kuò)充而來(lái)的,共定義
18、了三類17種(18位標(biāo)志,即: 狀態(tài)標(biāo)志6種(CF、PF、AF、ZF、SF和OF,用于報(bào)告算術(shù)/邏輯運(yùn)算指令執(zhí)行后的狀態(tài);控制標(biāo)志1種(DF,用于控制串操作指令的地址改變方向;系統(tǒng)標(biāo)志10種11位(TF、IF、IOPL、NT、RF、VM、AC、VIF、VIP和ID,用于控制I/O、屏蔽中斷、調(diào)試、任務(wù)轉(zhuǎn)換和控制保護(hù)方式與虛擬8086方式間的轉(zhuǎn)換。圖2.7給出了EFLAGS中各位的標(biāo)志名以及各標(biāo)志位與CPU的隸屬關(guān)系,取值為0的位是Intel保留的,并未使用。各標(biāo)志位意義如下: 圖2.7 標(biāo)志寄存器 進(jìn)位標(biāo)志CF(位0: CF=1表示運(yùn)算結(jié)果的最高位產(chǎn)生了進(jìn)位或借位。這個(gè)標(biāo)志主要用于多字節(jié)數(shù)的加
19、減法運(yùn)算。移位和循環(huán)指令也用到它。 奇偶標(biāo)志PF(位2: PF=1表示運(yùn)算結(jié)果中有偶數(shù)個(gè)1。該標(biāo)志主要用于數(shù)據(jù)傳輸過(guò)程中檢錯(cuò)。 輔助進(jìn)位標(biāo)志AF(位4: AF=1表示運(yùn)算導(dǎo)致了低4位向第5位(位4的進(jìn)位或借位。該標(biāo)志主要用于BCD碼運(yùn)算。 零標(biāo)志ZF(位6: ZF=1表示運(yùn)算結(jié)果的所有位為0。 符號(hào)標(biāo)志SF(位7: SF=1表示運(yùn)算結(jié)果的最高位為1。對(duì)于用補(bǔ)碼表示的有符號(hào)數(shù),SF=1表示結(jié)果為負(fù)數(shù)。 自陷標(biāo)志TF(位8: TF=1表示CPU將進(jìn)入單步執(zhí)行方式,即每執(zhí)行一條指令后都產(chǎn)生一個(gè)內(nèi)部中斷。利用它可逐條指令地調(diào)試程序。 中斷允許標(biāo)志IF(位9: IF=1表示CPU允許外部可屏蔽中斷,否則
20、禁止外部可屏蔽中斷。注意,IF標(biāo)志對(duì)內(nèi)部中斷和外部不可屏蔽中斷(NMI不會(huì)產(chǎn)生影響。 方向標(biāo)志DF(位10: DF=1表示在串操作過(guò)程中地址指針(EDI和(ESI的變化方向是遞減,否則為遞增。 溢出標(biāo)志OF(位11:OF=1表示有符號(hào)數(shù)運(yùn)算時(shí),運(yùn)算結(jié)果的數(shù)值超過(guò)了結(jié)果操作數(shù)的表示范圍。OF對(duì)無(wú)符號(hào)數(shù)是無(wú)意義的。 I/O特權(quán)級(jí)標(biāo)志IOPL(位13和位12: 這兩位表示03級(jí)4個(gè)I/O特權(quán)級(jí),用于保護(hù)方式。只有當(dāng)任務(wù)的現(xiàn)行特權(quán)級(jí)高于IOPL時(shí)(0級(jí)最高,3級(jí)最低,執(zhí)行I/O指令才能保證不產(chǎn)生異常。任務(wù)嵌套標(biāo)志NT(位14: 指明當(dāng)前任務(wù)是否嵌套,即是否被別的任務(wù)調(diào)用。該位的置位和復(fù)位通過(guò)向其他任務(wù)
21、的控制轉(zhuǎn)移來(lái)實(shí)現(xiàn),NT的值由IRET指令檢測(cè),以確定執(zhí)行任務(wù)間返回還是任務(wù)內(nèi)返回,NT用于保護(hù)方式?;謴?fù)標(biāo)志RF(位16: 該標(biāo)志與調(diào)試寄存器的斷點(diǎn)或單步操作一起使用。該位為1,即使遇到斷點(diǎn)或調(diào)試故障,也不產(chǎn)生異常中斷。在成功執(zhí)行完每條指令時(shí),該位自動(dòng)清零,但在執(zhí)行堆棧操作、任務(wù)切換、中斷指令時(shí)有例外。虛擬86模式標(biāo)志VM(位17: 在保護(hù)方式下,若該位置1,80386/80486/Pentium處理器將轉(zhuǎn)入虛擬8086方式。VM位只能以兩種方式來(lái)設(shè)置: 在保護(hù)方式下,由最高特權(quán)級(jí)(0級(jí)的代碼段的IRET指令來(lái)設(shè)置;或者由任務(wù)轉(zhuǎn)換來(lái)設(shè)置。對(duì)準(zhǔn)檢查標(biāo)志AC(位18: 該位只對(duì)80486和Pent
22、ium有效。AC=1,且CR0的AM位也為1,則進(jìn)行字、雙字或4字的對(duì)準(zhǔn)檢查。若發(fā)現(xiàn)要訪問(wèn)的操作未按邊界對(duì)齊時(shí),會(huì)發(fā)生異常中斷。虛擬中斷標(biāo)志VIF(位19: 該位只對(duì)Pentium有效。是虛擬方式下中斷允許標(biāo)志位的拷貝(Copy。虛擬中斷掛起標(biāo)志VIP(位20: 該位只對(duì)Pentium有效。用于在虛擬方式下提供有關(guān)中斷的信息,在多任務(wù)環(huán)境下,為操作系統(tǒng)提供虛擬中斷標(biāo)志和中斷掛起信息。標(biāo)識(shí)標(biāo)志ID(位21: 該位只對(duì)Pentium有效。用以指示Pentium微處理器對(duì)CPUID指令的支持狀態(tài)。CPUID指令為系統(tǒng)提供了有關(guān)Pentium處理器的信息,諸如型號(hào)及制造商。4 段寄存器6個(gè)段寄存器中,
23、FS和GS是80386以上CPU才有的。段寄存器用于決定程序使用的存儲(chǔ)器區(qū)域塊。其中CS指明當(dāng)前的代碼段;SS指明當(dāng)前的堆棧段;DS、ES、FS和GS指明當(dāng)前的四個(gè)數(shù)據(jù)段。每個(gè)段寄存器由一個(gè)16位的段選擇器和64位(對(duì)80286是48位的描述符高速緩存器組成。段選擇器是編程者可直接訪問(wèn)的,而描述符高速緩存器則是編程者不能訪問(wèn)的。由于80X86/Pentium在不同工作方式下,段的概念有所不同,因而段寄存器的使用也不相同: (1)實(shí)地址方式和虛擬8086方式下的段寄存器在實(shí)地址方式和虛擬8086方式下,段的概念與8086的段定義相同,即每段的長(zhǎng)度限定為64KB。這時(shí),段選擇器就是段寄存器,它存放
24、的是段基址的高16位。在這兩種方式下,處理器的物理地址實(shí)質(zhì)上是這樣產(chǎn)生的: CPU將段寄存器的內(nèi)容自動(dòng)乘16并放在段描述符高速緩存器的基地址中;將段限定固定為0FFFFH;其他屬性也是固定的。即: 物理地址=段選擇器16+偏移地址這種物理地址的形成與8086在本質(zhì)上沒(méi)有區(qū)別。由于段的最大長(zhǎng)度、段基址的確定方法和段的其他屬性都是固定的,所以與8086一樣,不必用段描述符來(lái)說(shuō)明段的性質(zhì)。(2)保護(hù)虛擬地址方式下的段寄存器保護(hù)虛擬地址方式是一種既支持虛擬存儲(chǔ)管理和多任務(wù),又具有保護(hù)功能的工作方式。在該方式下,段的長(zhǎng)度和段的屬性都不固定,每個(gè)段的長(zhǎng)度可以在1B到4GB之間變化(80286只能在1B到6
25、4KB之間變化,段的基址也只有在操作系統(tǒng)將該段從外存調(diào)入內(nèi)存時(shí)才能確定。所以,為了描述每個(gè)段的基址、屬性和邊界(長(zhǎng)度,為每個(gè)段定義了一個(gè)64位(80286為48位的描述符,稱為段描述符或描述子。段描述符的格式如圖2.8所示。低48位是80286的描述符,包括16位段邊界、24位段基地址和8位屬性。80386以上的32位微處理器則在此基礎(chǔ)上擴(kuò)充了8位基地址、4位邊界和4位屬性,即包括20位段邊界、32位段基地址和12位屬性。其中屬性位定義如下: 圖2.8 段描述符格式 P為存在位,為1表示存在(在實(shí)內(nèi)存中,為0表示不存在。 DPL為描述符特權(quán)級(jí),允許為03級(jí)。 S為段描述符類別,為1表示代碼段或
26、數(shù)據(jù)段描述符,為0表示系統(tǒng)描述符。 TYPE為段的類型。 A為已訪問(wèn)位,為1表示已訪問(wèn)過(guò)。 G為粒度位(段邊界所用單位,為0表示字節(jié),即段的最大長(zhǎng)度為220B=1MB,為1表示頁(yè),在80386/80486中,每頁(yè)為4KB,即段的最大長(zhǎng)度為2204KB=4GB,Pentium則提供了4KB和4MB兩種頁(yè)面選擇。 D為缺省操作數(shù)長(zhǎng)度,為0表示16位,為1表示32位(該位僅對(duì)代碼段有效。這些段描述符存放在兩個(gè)系統(tǒng)表格GDT和LDT中。GDT是全局描述符表,存放著操作系統(tǒng)使用的和各任務(wù)公用的段描述符;LDT是局部描述符表,存放著某個(gè)任務(wù)專用的段描述符。程序(或系統(tǒng)中裝入段選擇器的也不再是直接的段基址,
27、而是一個(gè)指向某個(gè)段描述符的16位的段選擇符,其格式如圖2.9所示。其中b1b0位為請(qǐng)求特權(quán)級(jí)字段RPL,這兩位提供(03級(jí)4個(gè)特權(quán)級(jí)用于保護(hù);b2位為表指示符字段TI,指明本段描述符是在GDT中還是LDT中;b15b3這13位構(gòu)成描述符索引字段INDEX,用于指明段描述符在指定描述符表中的序號(hào)。圖2.9 段選擇符格式當(dāng)將一個(gè)選擇符裝入一個(gè)段選擇器(給段選擇器預(yù)置初值時(shí),處理器將自動(dòng)從GDT或LDT中找到其對(duì)應(yīng)的描述符,裝入相應(yīng)段寄存器的描述符高速緩存器中。該過(guò)程對(duì)用戶來(lái)說(shuō)是透明的。如圖2.10所示,當(dāng)將一個(gè)選擇符裝入DS段選擇器時(shí),處理器根據(jù)INDEX和TI指示自動(dòng)從LDT中找到第64個(gè)描述符
28、裝入DS段寄存器的描述符高速緩存器。以后,每當(dāng)訪問(wèn)存儲(chǔ)器時(shí),與所用段相關(guān)的段描述符高速緩沖器就自動(dòng)參與該次存儲(chǔ)器訪問(wèn)操作。段基地址成為線性地址或物理地址計(jì)算中的一個(gè)分量,界限用于段限檢查操作,屬性則對(duì)照所要求的存儲(chǔ)器訪問(wèn)類型進(jìn)行檢查。即: 線性地址=段描述符高速緩存器中段基址+偏移地址不使用頁(yè)部件時(shí),線性地址即為物理地址;使用頁(yè)部件時(shí),上述線性地址需經(jīng)頁(yè)管理部件使用頁(yè)目錄表和頁(yè)表轉(zhuǎn)換成物理地址。圖2.10 由段選擇器指示自動(dòng)裝入段描述符2. 系統(tǒng)寄存器Pentium微處理器中包含一組系統(tǒng)級(jí)寄存器: 即5個(gè)控制寄存器CR0CR4和4個(gè)系統(tǒng)地址寄存器。這些寄存器只能由在特權(quán)級(jí)0上運(yùn)行的程序(一般是
29、操作系統(tǒng)訪問(wèn)。1 控制寄存器Pentium微處理器有5個(gè)控制寄存器,如圖2.11所示。這些寄存器用來(lái)存放全局特性的機(jī)器狀態(tài)和實(shí)現(xiàn)對(duì)80X86/Pentium微處理器的多種功能的控制與選擇。圖2.11 控制寄存器(1 控制寄存器CR0共定義了11個(gè)控制位。在80286微處理器中,CR0稱為機(jī)器狀態(tài)字MSW(Machine Status Word為一16位寄存器,定義了PE、MP、EM和TS 4位。80386在此基礎(chǔ)上擴(kuò)充了ET和PG兩位。80486以上微處理器在80386的基礎(chǔ)上又?jǐn)U充了NE、WP、AM、NW和CD這5位。11個(gè)控制位分別定義如下: PE為保護(hù)允許位,該位為1表示允許保護(hù),為0則
30、以實(shí)地址方式工作。 MP為監(jiān)控協(xié)處理器位,MP位同TS位一起使用,用來(lái)確定WAIT指令是否自陷。當(dāng)MP=1,且TS=1時(shí),執(zhí)行WAIT指令將產(chǎn)生異常7。 EM為仿真協(xié)處理器位,用以確定浮點(diǎn)指令是被自陷,還是被執(zhí)行。EM=1,所有浮點(diǎn)指令將產(chǎn)生異常7。 TS為任務(wù)切換位,用以指出任務(wù)是否切換,執(zhí)行切換操作時(shí),TS=1。TS=1時(shí),執(zhí)行浮點(diǎn)指令將產(chǎn)生異常7。 ET是處理器擴(kuò)充類型,該位用于80386微處理器,標(biāo)識(shí)系統(tǒng)中所采用的協(xié)處理器的類型。ET=1,采用80387協(xié)處理器,否則采用80287。80486以上系統(tǒng)中ET置1。 NE是數(shù)字異??刂莆?,該位用于控制是由中斷向量16還是由外部中斷來(lái)處理未
31、屏蔽的浮點(diǎn)異常。NE=0,處理器同IGNNE輸入引腳和FEPR輸出引腳配合工作;NE=1,在執(zhí)行下一條非控制浮點(diǎn)指令或WAIT指令之前,任何未屏蔽的浮點(diǎn)異常(UFPE將產(chǎn)生軟件中斷16。 WP是寫(xiě)保護(hù)位,用來(lái)保護(hù)管理程序?qū)懺L問(wèn)用戶級(jí)的只讀頁(yè)面。該位為1時(shí),禁止特權(quán)級(jí)程序?qū)χ蛔x頁(yè)面的寫(xiě)操作,否則允許只讀頁(yè)面由特權(quán)級(jí)02寫(xiě)入。 AM是對(duì)準(zhǔn)屏蔽位,用來(lái)控制標(biāo)志寄存器中對(duì)準(zhǔn)檢查位(AC是否允許對(duì)準(zhǔn)檢查。AM=1,允許AC位;否則禁止AC位。 NW為不通寫(xiě)控制位,該位用來(lái)選擇片內(nèi)數(shù)據(jù)Cache的操作模式。NW=1時(shí),禁止通寫(xiě),寫(xiě)命中時(shí)不修改內(nèi)存;否則,允許通寫(xiě)。 CD是Cache禁止或使能位,該位用來(lái)控
32、制允許或禁止向片內(nèi)Cache填充新數(shù)據(jù)。CD=1,當(dāng)Cache未命中時(shí),禁止填充Cache;否則,未命中時(shí),允許填充Cache。PG為頁(yè)使能位,用于控制是否允許分頁(yè)。PG=1,允許分頁(yè),否則禁止分頁(yè)。(2 CR2是頁(yè)故障線性地址寄存器,用來(lái)保存發(fā)生頁(yè)故障中斷(異常14之前所訪問(wèn)的最后一個(gè)頁(yè)面的線性頁(yè)地址。用軟件讀出即可得到發(fā)生頁(yè)故障的線性地址。CR2由80386以上微處理器定義。(3 CR3是頁(yè)目錄基地址寄存器,用來(lái)存放當(dāng)前任務(wù)的頁(yè)目錄表的物理基地址。由于頁(yè)目錄表是按頁(yè)對(duì)齊的(4KB,因而CR3通過(guò)高20位來(lái)實(shí)施這一要求,而低12位保留或定義為其他用途。CR3是80386以上微處理器才使用的,
33、在80486中新定義了PWT和PCD兩個(gè)控制位。PWT是頁(yè)面通寫(xiě)位,用于指示是頁(yè)面通寫(xiě)還是回寫(xiě),該位為1,外部Cache對(duì)頁(yè)目錄進(jìn)行通寫(xiě),否則進(jìn)行回寫(xiě);PCD是頁(yè)面Cache禁止位,該位用于指示頁(yè)面Cache工作情況,PCD=1,禁止片內(nèi)Cache,否則允許片內(nèi)頁(yè)Cache。這兩個(gè)位只有在CR0中的頁(yè)管理使能位PG=0或Cache不使能位CD=1時(shí)才有效。(4 CR4是Pentium處理器中新增加的控制寄存器,共定義了6位,各位含義如下: VME是虛擬方式擴(kuò)充位,VME=1,允許虛擬8086方式擴(kuò)充,否則禁止。 PVI是保護(hù)方式虛擬中斷位,PVI=1,允許保護(hù)方式虛擬中斷,否則禁止。 TSD是
34、時(shí)間戳禁止位,該位為1,且當(dāng)前特權(quán)級(jí)不為0時(shí),禁止讀時(shí)間戳計(jì)數(shù)器指令RDTSC,否則RDTSC將在所有特權(quán)級(jí)上執(zhí)行。 DE是調(diào)試擴(kuò)充位,該位用來(lái)控制是否支持I/O斷點(diǎn),當(dāng)DE=1時(shí),允許I/O斷點(diǎn)調(diào)試擴(kuò)充,否則禁止I/O斷點(diǎn)調(diào)試擴(kuò)充。 PSE是頁(yè)尺寸擴(kuò)充位,該位為1,允許頁(yè)面大小擴(kuò)充,每頁(yè)為4MB,否則禁止頁(yè)面大小擴(kuò)充,每頁(yè)仍為4KB。 MCE是機(jī)器檢查允許位,該位為1,允許機(jī)器檢查異常,否則禁止機(jī)器檢查異常。2 系統(tǒng)地址寄存器系統(tǒng)地址寄存器只在保護(hù)方式下使用,所以又叫保護(hù)方式寄存器。80X86/Pentium用4個(gè)寄存器把在保護(hù)方式下常用的數(shù)據(jù)基地址、界限和屬性保存起來(lái),以確保其快速性。這4
35、個(gè)寄存器如圖2.12所示。圖2.12 系統(tǒng)地址寄存器(1 全局描述符表寄存器GDTR全局描述符表寄存器GDTR是一個(gè)48位字長(zhǎng)的寄存器(對(duì)80286而言,為40位寄存器,用于存放全局描述符表GDT的32位(或24位線性基地址和16位界限。全局描述符表GDT是80X86/Pentium用來(lái)定義全局存儲(chǔ)器地址空間的一種機(jī)制。全局存儲(chǔ)器是一種可能被許多或所有軟件任務(wù)共享的通用系統(tǒng)資源。也就是說(shuō),全局存儲(chǔ)器中的存儲(chǔ)器地址可被微處理器上的所有任務(wù)訪問(wèn)。該表存放著操作系統(tǒng)使用的和任務(wù)公用的段描述符,這些描述符標(biāo)識(shí)全局存儲(chǔ)器中的段。用GDTR定義的全局描述符表如圖2.13所示。GDT的最大長(zhǎng)度為216字節(jié)(
36、64KB,由于每個(gè)描述符占8個(gè)字節(jié),即GDT中最多能定義213=8192個(gè)段描述符。圖2.13 GDTR與它定義的全局描述符表(2 中斷描述符寄存器IDTR中斷描述符表寄存器IDTR也是一個(gè)48位字長(zhǎng)的寄存器(對(duì)80286而言,為40位寄存器,用于存放中斷描述符表IDT的32位(或24位線性基地址和16位界限。(3 局部描述符表寄存器LDTR 局部描述符表寄存器LDTR也是80X86/Pentium存儲(chǔ)器管理支持機(jī)制的一部分。每個(gè)任務(wù)除了可訪問(wèn)全局描述符表外還可訪問(wèn)它自己的專用描述符表。該專用表稱為局部描述符表(LDT,它定義了任務(wù)用到的局部存儲(chǔ)器地址空間。LDT中的段描述符可用來(lái)訪問(wèn)當(dāng)前任務(wù)
37、的存儲(chǔ)器段中代碼和數(shù)據(jù)。由于每項(xiàng)任務(wù)都有它自己的存儲(chǔ)器段,因此保護(hù)模式的軟件系統(tǒng)可能會(huì)包含許多局部描述符表。所以,與段寄存器一樣,LDTR值并不直接定義一個(gè)局部描述符表。它只是一個(gè)指向GDT中LDT描述符的選擇符,所以LDTR和TR也稱為系統(tǒng)段寄存器。如圖2.14所示,當(dāng)LDTR中裝入選擇符時(shí),相應(yīng)的描述符就能夠從GDT中讀出來(lái)并裝入LDTR的描述符高速緩存器,從而為當(dāng)前任務(wù)建立了一個(gè)LDT。LDT的最大長(zhǎng)度也為64KB,即LDT中最多也只能定義8192個(gè)局部段描述符。圖2.14 LDTR和它定義的局部描述符表(4 任務(wù)寄存器任務(wù)寄存器(TR在保護(hù)模式任務(wù)切換機(jī)制中很重要。與LDTR一樣,該寄
38、存器存放的也是一個(gè)稱為選擇符的16位索引值。TR開(kāi)始的選擇符由軟件裝入,它開(kāi)始第一個(gè)任務(wù)。這之后再執(zhí)行任務(wù)切換的指令時(shí)就自動(dòng)修改選擇符。圖2.15所示,TR中的選擇符用來(lái)指示全局描述符表中描述符的位置。當(dāng)選擇符裝入TR中的時(shí)候,相應(yīng)的任務(wù)狀態(tài)段(TSS描述符自動(dòng)從存儲(chǔ)器中讀出并裝入任務(wù)描述符高速緩存中。該描述符定義了一個(gè)稱為任務(wù)狀態(tài)段(TSS的存儲(chǔ)塊,它提供了段起始地址(Base和段界限(Limit。每個(gè)任務(wù)都有它自己的TSS。TSS包含啟動(dòng)任務(wù)所需的信息,諸如用戶可訪問(wèn)的寄存器初值。圖2.15 任務(wù)寄存器和任務(wù)切換機(jī)制3. 調(diào)試和模型專用寄存器Pentium處理器中提供了一組調(diào)試寄存器和一組
39、模型專用寄存器,用于排除故障和用于執(zhí)行跟蹤、性能監(jiān)測(cè)、測(cè)試及機(jī)器檢查錯(cuò)誤。(1 調(diào)試寄存器(Debug Register調(diào)試寄存器如圖2.16所示,這是一組32位的寄存器,是程序員可訪問(wèn)的,提供片上支持調(diào)試。80386/80486定義了6個(gè)調(diào)試寄存器,其中DR0DR3指定了4個(gè)線性斷點(diǎn)地址;DR7為調(diào)試控制寄存器,用于設(shè)置斷點(diǎn);DR6為調(diào)試狀態(tài)寄存器,用于顯示斷點(diǎn)的當(dāng)前狀態(tài)。圖2.16 調(diào)試寄存器Pentium處理器對(duì)調(diào)試寄存器DR4和DR5給予調(diào)試寄存器DR6和DR7的別名。當(dāng)控制寄存器CR4中的DE位設(shè)置為0時(shí),即禁止調(diào)試擴(kuò)充,Pentium通過(guò)允許引用DR6和DR7的別名保持與現(xiàn)有軟件兼
40、容;當(dāng)DE位設(shè)置為1時(shí),即允許調(diào)試擴(kuò)充,引用DR4或DR5將產(chǎn)生未定義的操作碼異常。(2 模型專用寄存器Pentium處理器取消了80386/80486中的測(cè)試寄存器TR,其功能由一組“模型專用寄存器”MSR(Model Special Register來(lái)實(shí)現(xiàn),這一組MSR用于執(zhí)行跟蹤、性能監(jiān)測(cè)、測(cè)試和機(jī)器檢查錯(cuò)誤。Pentium處理器采用兩條指令RDMSR(讀MSR和WRMSR(寫(xiě)MSR來(lái)訪問(wèn)這些寄存器,ECX中的值(8位值確定將訪問(wèn)該組寄存器中哪一個(gè)MSR。表2.5給出了所有模型專用寄存器MSR與需要裝入ECX值的關(guān)系。表2.5 模型專用寄存器與ECX的關(guān)系ECX寄存器名說(shuō)明00H機(jī)器檢查
41、地址引起異常周期的存儲(chǔ)器地址01H機(jī)器檢查類型引起異常周期的存儲(chǔ)周期類型02H測(cè)試寄存器1奇偶校驗(yàn)?zāi)婕拇嫫?3H保留04H測(cè)試寄存器2指令超高速緩存結(jié)束位05H測(cè)試寄存器3超高速緩存測(cè)試數(shù)據(jù)06H測(cè)試寄存器4超高速緩存測(cè)試標(biāo)志07H測(cè)試寄存器5超高速緩存測(cè)試控制08H測(cè)試寄存器6TLB測(cè)試線性地址09H測(cè)試寄存器7TLB測(cè)試控制和物理地址A31A120AH測(cè)試寄存器8TLB測(cè)試物理地址A35A320BH測(cè)試寄存器9BTB測(cè)試標(biāo)志0CH測(cè)試寄存器10BTB測(cè)試目標(biāo)0DH測(cè)試寄存器11BTB測(cè)試控制0EH測(cè)試寄存器12執(zhí)行跟蹤和轉(zhuǎn)移預(yù)測(cè)0FH保留10H時(shí)間戳計(jì)數(shù)器性能監(jiān)測(cè)11H控制和事件選擇性能監(jiān)測(cè)12H計(jì)數(shù)器0性能監(jiān)測(cè)13H計(jì)數(shù)器1性能監(jiān)測(cè)14H保留2.3.3 Pentium的四種工作方式Pentium在80486三種工作方式的基礎(chǔ)上新增了一種系統(tǒng)管理方式,使Pentium微處理器具有了四種工作方式,即: 實(shí)地址方式、保護(hù)虛擬地址方式、虛擬8086方式和系統(tǒng)管理方式。1. 實(shí)地址方式實(shí)地址方式是為了與8086兼容而設(shè)置的一種工作方式。在這種工作方式下,Pentium的工作原理與8086
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 開(kāi)發(fā)需求委托合同(2篇)
- 建筑材料采購(gòu)分包合同(2篇)
- 2024年注冊(cè)消防工程師題庫(kù)參考答案
- 二零二五年度汽車(chē)租賃擔(dān)保公司合同車(chē)輛作為抵押的擔(dān)保公司服務(wù)協(xié)議4篇
- 二零二五版特色小吃店轉(zhuǎn)讓與加盟協(xié)議4篇
- 二零二五年度智慧城市建設(shè)項(xiàng)目融資合同及違約賠償條款3篇
- 2025年度個(gè)人購(gòu)房合同(含貸款及產(chǎn)權(quán)登記)4篇
- 平板燈施工方案
- 酸堿滅火器課程設(shè)計(jì)
- 2025年銷售合同臺(tái)帳模板(服裝行業(yè)專用)
- 2019級(jí)水電站動(dòng)力設(shè)備專業(yè)三年制人才培養(yǎng)方案
- 室內(nèi)裝飾裝修施工組織設(shè)計(jì)方案
- 洗浴中心活動(dòng)方案
- 送電線路工程施工流程及組織措施
- 肝素誘導(dǎo)的血小板減少癥培訓(xùn)課件
- 韓國(guó)文化特征課件
- 抖音認(rèn)證承諾函
- 清潔劑知識(shí)培訓(xùn)課件
- 新技術(shù)知識(shí)及軍事應(yīng)用教案
- 高等數(shù)學(xué)(第二版)
- 肺炎喘嗽的中醫(yī)護(hù)理常規(guī)
評(píng)論
0/150
提交評(píng)論