Pentium微處理器內部寄存器_第1頁
Pentium微處理器內部寄存器_第2頁
Pentium微處理器內部寄存器_第3頁
Pentium微處理器內部寄存器_第4頁
Pentium微處理器內部寄存器_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 Pentium微處理器的內部寄存器Pentium是Intel公司于1993年3月推出的第五代80X86系列微處理器,簡稱P5或80586,中文譯名為“奔騰”。與其前輩80X86微處理器相比,Pentium采用了全新的設計,它有64位數(shù)據(jù)線和32位地址線,但依然保持了與其前輩80X86的兼容性,在相同的工作方式上可以執(zhí)行所有的80X86程序。Pentium的內部結構如圖2.4所示。它主要由執(zhí)行單元、指令Cache、數(shù)據(jù)Cache、指令預取單元、指令譯碼單元、地址轉換與管理單元、總線單元以及控制器等部件組成。其中核心是執(zhí)行單元(又叫運算器),它的任務是高速完成各種算術和邏輯運算,其內部包括兩個整

2、數(shù)算術邏輯運算單元(ALU)和一個浮點運算器,分別用來執(zhí)行整數(shù)和實數(shù)的各種運算。為了提高效率,它們都集成了幾十個數(shù)據(jù)寄存器用來臨時存放一些中間結果。這些功能部件除地址轉換和管理單元與80386/80486保持兼容外,其他都進行了重新設計。1) 超標量體系結構和指令流水線Pentium由“U”和“V”兩條指令流水線構成超標量流水線結構,其中每條流水線都有自己的ALU、地址生成邏輯和Cache接口。這種雙流水線技術可以使兩條指令在不同流水線中并行執(zhí)行。圖2.4 Pentium微處理器的內部結構每條流水線又分為指令預取PF、指令譯碼(一次譯碼)D1、地址生成(二次譯碼)D2、指令執(zhí)行EX和回寫WB共

3、5個步驟。圖2.5給出了Pentium的指令流水線操作示意。圖2.5 Pentium指令流水線操作示意圖當?shù)谝粭l指令完成指令預取,進入第二個操作步驟D1,執(zhí)行指令譯碼操作時,流水線就可以開始預取第二條指令;當?shù)谝粭l指令進入第三個步驟D2,執(zhí)行地址生成時,第二條指令進入第二個步驟D1,開始指令譯碼,流水線又開始預取第三條指令;當?shù)谝粭l指令進入第四個步驟EX,執(zhí)行指令規(guī)定的操作時,第二條指令進入第三個步驟D2,執(zhí)行地址生成,第三條指令進入第二個步驟D1,開始指令譯碼,流水線又開始預取第四條指令;當?shù)谝粭l指令進入第五個步驟WB,執(zhí)行回寫操作時,第二條指令進入第四個步驟EX,執(zhí)行指令規(guī)定的操作,第三條

4、指令進入第三個步驟D2,執(zhí)行地址生成,第四條指令進入第二個步驟D1,開始指令譯碼,流水線又開始預取第五條指令。這種流水線操作并沒有減少每條指令的執(zhí)行步驟,5個步驟哪一步都不能跳越。但由于各指令的不同步驟之間并行執(zhí)行,從而極大地提高了指令的執(zhí)行速度。從第一個時鐘開始,經過5個時鐘后,每個時鐘都有一條指令執(zhí)行完畢從流水線輸出。在這種理想情況下,Pentium的超標量體系結構每個時鐘周期內可執(zhí)行兩條整數(shù)指令(每條流水線執(zhí)行一條指令)。2) 重新設計的浮點運算部件Pentium的浮點運算部件在80486的基礎上作了重新設計,采用了超流水線技術,由8個獨立執(zhí)行部件進行流水線作業(yè),使每個時鐘周期能完成一個

5、浮點操作(或兩個浮點操作)。采用快速算法可使諸如ADD、MUL和LOAD等運算的速度最少提高3倍,在許多應用程序中利用指令調度和重疊(流水線)執(zhí)行可使性能提高5倍以上。同時,這些指令用電路進行固化,用硬件來實現(xiàn),使執(zhí)行速度得到更大提高。3) 獨立的指令Cache和數(shù)據(jù)CachePentium片內有兩個8KB的超高速緩存器,一個是指令Cache,一個是數(shù)據(jù)Cache。轉換后備緩沖器TLB(Translation Look-aside Buffer)的作用是將線性地址轉換為物理地址。這兩種Cache采用32×8線寬,是對Pentium的64位總線的有力支持。指令和數(shù)據(jù)分別使用不同的Cac

6、he,使Pentium中數(shù)據(jù)和指令的存取減少了沖突,提高了性能。Pentium的數(shù)據(jù)Cache有兩種接口,分別與U和V兩條流水線相連,以便能在相同時刻向兩個獨立工作的流水線進行數(shù)據(jù)交換。當向已被占滿的數(shù)據(jù)Cache中寫數(shù)據(jù)時,將移走當前使用頻率最低的數(shù)據(jù),同時將其寫回內存,這種技術稱為Cache回寫技術。由于CPU向Cache寫數(shù)據(jù)和將Cache釋放的數(shù)據(jù)寫回內存是同時進行的,所以采用Cache回寫技術將節(jié)省處理時間。4) 分支指令預測。Pentium提供了一個稱為BTB(Branch Target Buffer)的小Cache來動態(tài)地預測程序的分支操作。當某條指令導致程序分支時,BTB記憶下

7、該條指令和分支的目標地址,并用這些信息預測該條指令再次產生分支時的路徑,預先從該處預取,保證流水線的指令預取步驟不會空置。這一機構的設置,可以減少在循環(huán)操作時對循環(huán)條件的判斷所占用的CPU的時間。5) 采用64位外部數(shù)據(jù)總線 Pentium芯片內部ALU和通用寄存器仍是32位,所以還是32位微處理器,但它同內存儲器進行數(shù)據(jù)交換的外部數(shù)據(jù)總線為64位,使兩者之間的數(shù)據(jù)傳輸速度可達528MB/s。此外Pentium還支持多種類型的總線周期,在突發(fā)方式下,可以在一個總線周期內讀入256B的數(shù)據(jù)。2. Pentium的外部引腳 Pentium芯片有168個引腳,這些引腳信號線也即Pentium CPU

8、總線,分為三大類: 總線接口引腳、處理器控制引腳、調試與測試引腳。1) 總線接口信號Pentium的總線接口信號如表2.1所示。這些引腳信號包括用于管理訪問外部存儲器和I/O端口必須的地址、數(shù)據(jù)和總線周期控制信號,以及Cache控制信號。表2.1 總線接口信號類 型符 號功 能方 向地址信號A31A3APAPCHK地址總線。用于指明某一8字節(jié)(64位)單元地址地址奇偶校驗地址奇偶校驗出錯字節(jié)允許。用于指明訪問8字節(jié)中的哪些字節(jié)輸出輸出輸出輸出數(shù)據(jù)信號D63D0DP7DP0數(shù)據(jù)總線。D63D56、D7D0分別是最高和最低有效字節(jié)數(shù)據(jù)奇偶校驗引腳。分別對應數(shù)據(jù)的8個字節(jié)數(shù)據(jù)奇偶校驗允許數(shù)據(jù)奇偶校驗

9、狀態(tài)指示。低電平表示有奇偶校驗錯總線檢查輸入/輸出輸入/輸出輸出輸出輸入總線周期控制信號SCYC 地址狀態(tài)。它有效表明地址和總線定義信號是有效的突發(fā)就緒。表明當前周期已完成數(shù)據(jù)/控制周期指示。用來區(qū)分數(shù)據(jù)和控制周期寫/讀周期指示。用來區(qū)別讀還是寫周期存儲器/IO周期指示。用來區(qū)分存儲器和IO周期分離周期。表示未對齊操作鎖定期間有2個以上的周期被鎖定Cache輸出信號,指示當前Pentium周期可對數(shù)據(jù)進行緩存總線鎖定。它有效表明Pentium正在讀修改寫周期中運行,在讀與寫周期間不釋放外部總線,即獨占系統(tǒng)總線輸出輸出輸出輸出輸出輸出輸出輸出Cache控制信號PWTPCD頁面通寫。PWT=1表明

10、寫操作命中時既要寫Cache,也要寫內存頁面Cache禁止。PCD=1時禁止以頁為單位的Cache操作Cache允許。用來確定當前周期所傳送的數(shù)據(jù)是否能用于高速緩存下一地址,用于形成流水線式總線周期回寫/通寫外部寫緩沖器空輸出輸入輸入輸入輸出輸入D63D0是Pentium的64位雙向數(shù)據(jù)總線。A31A3和構成32位地址總線,以提供存儲器和I/O端口的物理地址。A31A3用于確定一個8字節(jié)單元地址,則用于指明在當前的操作中要訪問8字節(jié)中的哪些字節(jié)。Pentium微處理器規(guī)定: 對應數(shù)據(jù)線D7D0;對應數(shù)據(jù)線D15D8;對應數(shù)據(jù)線D23D16;對應數(shù)據(jù)線D31D24;對應數(shù)據(jù)線D39D32;對應數(shù)

11、據(jù)線D47D40;對應數(shù)據(jù)線D55D48;對應數(shù)據(jù)線D63D56。Pentium微處理器的地址線沒有設置A2、A1和A0引腳,但可由這8個字節(jié)使能信號產生,為保持與前輩80X86的兼容性,還應產生信號。(數(shù)據(jù)/控制)、(寫/讀)、(存儲器/IO)是總線周期定義的基本信號,這3個信號的不同組合可以決定當前的總線周期所要完成的操作,如表2.2所示。這些操作的意義將在有關章節(jié)加以介紹。表2.2 總線周期定義啟動的總線周期000中斷響應周期001停機/暫停010I/O讀周期011I/O寫周期100微代碼讀周期101Intel公司保留110存儲器讀周期111存儲器寫周期2) 處理器控制信號處理器控制信號

12、如表2.3所示。包括時鐘、處理器初始化、FRC、總線仲裁、Cache窺視、中斷請求、執(zhí)行跟蹤、數(shù)字出錯和系統(tǒng)管理等信號。表2.3 處理器控制信號類 型符 號功 能方 向時鐘CLK時鐘輸入信號。為CPU提供內部工作頻率輸入初始化RESETINIT復位。高電平強制Pentium從已知的初始狀態(tài)開始執(zhí)行程序初始化。INIT的作用類似于RESET信號,不同之處是它在進行處理器初始化時,將保持片內Cache、寫緩沖器和浮點寄存器的內容不變輸入輸入FRC功能冗余檢查方式內部出錯輸出輸出總線仲裁HOLDHLDABREG總線保持請求。它有效時,表示請求Pentium交出總線控制權總線保持響應。它有效時,指明P

13、entium已經交出總線控制權總線請求。該引腳有效時,表示Pentium需要使用系統(tǒng)總線總線占用。它有效時,強制Pentium在下一時鐘浮空其總線輸入輸出輸出輸入Cache窺視AHOLDINV地址保持請求。該信號決定地址線A31A4是否接受地址輸入有效外部地址。該信號表示地址總線A31A4上的地址信號有效Cache清洗。低電平有效時,強制Pentium清洗整個內部高速緩存未命中命中無效請求輸入輸入輸入輸出輸出輸入中斷INTRNMI可屏蔽中斷請求。高電平表示有外部中斷請求不可屏蔽中斷請求。上升沿表示該中斷請求有效輸入輸入執(zhí)行跟蹤IUIVIBTU流水線指令完成V流水線指令完成轉移跟蹤指令輸出輸出輸

14、出數(shù)字出錯浮點出錯。用來報告Pentium中PC類型的浮點出錯忽略數(shù)字出錯輸出輸入系統(tǒng)管理系統(tǒng)管理中斷。該信號有效,使Pentium進入到系統(tǒng)管理運行模式系統(tǒng)管理中斷激活。該信號有效,表明Pentium正工作在系統(tǒng)管理模式輸入輸出其他A20M第20位地址屏蔽。該信號有效時,將屏蔽A20及以上地址,使Pentium仿真8086的1MB存儲空間輸入3) 調試與測試引腳調試與測試信號如表2.4所示。包括探針方式、斷點/性能監(jiān)測和邊界掃描等引腳信號。表2.4 調試與測試信號類 型符 號功 能方 向探針方式R/SPRDY進入或退出探針方式探針方式就緒輸入輸出斷點/性能監(jiān)測PM0/BP0PM1/BP1BP

15、3BP2性能監(jiān)測0/斷點0性能監(jiān)測1/斷點1斷點3斷點2輸出輸出輸出邊界掃描TCKTDITDOTMS測試時鐘測試數(shù)據(jù)輸入測試數(shù)據(jù)輸出測試方式選擇測試復位輸入輸入輸出輸入輸入2.3.2內部寄存器Pentium的內部寄存器按功能分為四類: 基本寄存器、系統(tǒng)級寄存器、調試與模型專用寄存器、浮點寄存器。它們是在80486內部寄存器的基礎上擴充而來,并與其前輩80X86保持了兼容。主要差別是Pentium用一組模型專用寄存器代替了80486的測試寄存器,并擴充了一個系統(tǒng)控制寄存器。1. 基本寄存器基本寄存器包括通用寄存器、指令指針寄存器、標志寄存器和段寄存器,這些寄存器都是在8086/8088基礎上擴展

16、而來的,如圖2.6所示。圖2.6 基本寄存器1) 通用寄存器8個32位通用寄存器EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP是在8086/8088的8個16位寄存器基礎上擴展位數(shù)而來的。為了與8086/8088兼容,它們的低16位可以單獨訪問,并以同8086/8088中相同的名稱命名: AX、BX、CX、DX、SI、DI、BP、SP。其中AX、BX、CX、DX還可進一步分成兩個8位寄存器單獨訪問,且同樣有自己獨立的名稱: AH、AL,BH、BL,CH、CL,DH、DL。上述寄存器中,(E)SP是指示棧頂?shù)闹羔?,稱為堆棧寄存器。在32位尋址時,8個32位寄存器均可用作存儲器訪問

17、的地址寄存器,但在16位尋址時,只能使用BX、BP、SP、SI、DI寄存器,其中BX和BP稱為基址寄存器,SI和DI稱為變址寄存器,(E)CX則常用于循環(huán)控制,又稱為循環(huán)計數(shù)寄存器,(E)AX則稱為累加器。2) 指令指針寄存器(EIP)EIP用于保存下一條待預取指令相對于代碼段基址(由CS提供)的偏移量。它的低16位也可以單獨訪問,并稱之為IP寄存器。當80X86/Pentium工作在32位操作方式時,采用32位的EIP;工作在16位操作方式,采用16位的IP。用戶不可隨意改變其值,只能通過轉移類、調用及返回類指令改變其值。3) 標志寄存器(EFLAGS)標志寄存器EFLAGS是32位的,它是

18、在8086/8088/80286標志寄存器FLAGS的基礎上擴充而來的,共定義了三類17種(18位)標志,即: 狀態(tài)標志6種(CF、PF、AF、ZF、SF和OF),用于報告算術/邏輯運算指令執(zhí)行后的狀態(tài);控制標志1種(DF),用于控制串操作指令的地址改變方向;系統(tǒng)標志10種11位(TF、IF、IOPL、NT、RF、VM、AC、VIF、VIP和ID),用于控制I/O、屏蔽中斷、調試、任務轉換和控制保護方式與虛擬8086方式間的轉換。圖2.7給出了EFLAGS中各位的標志名以及各標志位與CPU的隸屬關系,取值為0的位是Intel保留的,并未使用。各標志位意義如下: 圖2.7 標志寄存器 進位標志C

19、F(位0): CF=1表示運算結果的最高位產生了進位或借位。這個標志主要用于多字節(jié)數(shù)的加減法運算。移位和循環(huán)指令也用到它。 奇偶標志PF(位2): PF=1表示運算結果中有偶數(shù)個1。該標志主要用于數(shù)據(jù)傳輸過程中檢錯。 輔助進位標志AF(位4): AF=1表示運算導致了低4位向第5位(位4)的進位或借位。該標志主要用于BCD碼運算。 零標志ZF(位6): ZF=1表示運算結果的所有位為0。 符號標志SF(位7): SF=1表示運算結果的最高位為1。對于用補碼表示的有符號數(shù),SF=1表示結果為負數(shù)。 自陷標志TF(位8): TF=1表示CPU將進入單步執(zhí)行方式,即每執(zhí)行一條指令后都產生一個內部中斷

20、。利用它可逐條指令地調試程序。 中斷允許標志IF(位9): IF=1表示CPU允許外部可屏蔽中斷,否則禁止外部可屏蔽中斷。注意,IF標志對內部中斷和外部不可屏蔽中斷(NMI)不會產生影響。 方向標志DF(位10): DF=1表示在串操作過程中地址指針(E)DI和(E)SI的變化方向是遞減,否則為遞增。 溢出標志OF(位11):OF=1表示有符號數(shù)運算時,運算結果的數(shù)值超過了結果操作數(shù)的表示范圍。OF對無符號數(shù)是無意義的。 I/O特權級標志IOPL(位13和位12): 這兩位表示03級4個I/O特權級,用于保護方式。只有當任務的現(xiàn)行特權級高于IOPL時(0級最高,3級最低),執(zhí)行I/O指令才能保

21、證不產生異常。 任務嵌套標志NT(位14): 指明當前任務是否嵌套,即是否被別的任務調用。該位的置位和復位通過向其他任務的控制轉移來實現(xiàn),NT的值由IRET指令檢測,以確定執(zhí)行任務間返回還是任務內返回,NT用于保護方式。 恢復標志RF(位16): 該標志與調試寄存器的斷點或單步操作一起使用。該位為1,即使遇到斷點或調試故障,也不產生異常中斷。在成功執(zhí)行完每條指令時,該位自動清零,但在執(zhí)行堆棧操作、任務切換、中斷指令時有例外。 虛擬86模式標志VM(位17): 在保護方式下,若該位置1,80386/80486/Pentium處理器將轉入虛擬8086方式。VM位只能以兩種方式來設置: 在保護方式下

22、,由最高特權級(0級)的代碼段的IRET指令來設置;或者由任務轉換來設置。 對準檢查標志AC(位18): 該位只對80486和Pentium有效。AC=1,且CR0的AM位也為1,則進行字、雙字或4字的對準檢查。若發(fā)現(xiàn)要訪問的操作未按邊界對齊時,會發(fā)生異常中斷。 虛擬中斷標志VIF(位19): 該位只對Pentium有效。是虛擬方式下中斷允許標志位的拷貝(Copy)。 虛擬中斷掛起標志VIP(位20): 該位只對Pentium有效。用于在虛擬方式下提供有關中斷的信息,在多任務環(huán)境下,為操作系統(tǒng)提供虛擬中斷標志和中斷掛起信息。 標識標志ID(位21): 該位只對Pentium有效。用以指示Pen

23、tium微處理器對CPUID指令的支持狀態(tài)。CPUID指令為系統(tǒng)提供了有關Pentium處理器的信息,諸如型號及制造商。4) 段寄存器6個段寄存器中,F(xiàn)S和GS是80386以上CPU才有的。段寄存器用于決定程序使用的存儲器區(qū)域塊。其中CS指明當前的代碼段;SS指明當前的堆棧段;DS、ES、FS和GS指明當前的四個數(shù)據(jù)段。每個段寄存器由一個16位的段選擇器和64位(對80286是48位)的描述符高速緩存器組成。段選擇器是編程者可直接訪問的,而描述符高速緩存器則是編程者不能訪問的。由于80X86/Pentium在不同工作方式下,段的概念有所不同,因而段寄存器的使用也不相同: (1)實地址方式和虛擬

24、8086方式下的段寄存器在實地址方式和虛擬8086方式下,段的概念與8086的段定義相同,即每段的長度限定為64KB。這時,段選擇器就是段寄存器,它存放的是段基址的高16位。在這兩種方式下,處理器的物理地址實質上是這樣產生的: CPU將段寄存器的內容自動乘16并放在段描述符高速緩存器的基地址中;將段限定固定為0FFFFH;其他屬性也是固定的。即: 物理地址=段選擇器×16+偏移地址這種物理地址的形成與8086在本質上沒有區(qū)別。由于段的最大長度、段基址的確定方法和段的其他屬性都是固定的,所以與8086一樣,不必用段描述符來說明段的性質。(2)保護虛擬地址方式下的段寄存器保護虛擬地址方式

25、是一種既支持虛擬存儲管理和多任務,又具有保護功能的工作方式。在該方式下,段的長度和段的屬性都不固定,每個段的長度可以在1B到4GB之間變化(80286只能在1B到64KB之間變化),段的基址也只有在操作系統(tǒng)將該段從外存調入內存時才能確定。所以,為了描述每個段的基址、屬性和邊界(長度),為每個段定義了一個64位(80286為48位)的描述符,稱為段描述符或描述子。段描述符的格式如圖2.8所示。低48位是80286的描述符,包括16位段邊界、24位段基地址和8位屬性。80386以上的32位微處理器則在此基礎上擴充了8位基地址、4位邊界和4位屬性,即包括20位段邊界、32位段基地址和12位屬性。其中

26、屬性位定義如下: 圖2.8 段描述符格式 P為存在位,為1表示存在(在實內存中),為0表示不存在。 DPL為描述符特權級,允許為03級。 S為段描述符類別,為1表示代碼段或數(shù)據(jù)段描述符,為0表示系統(tǒng)描述符。 TYPE為段的類型。 A為已訪問位,為1表示已訪問過。 G為粒度位(段邊界所用單位),為0表示字節(jié),即段的最大長度為220B=1MB,為1表示頁,在80386/80486中,每頁為4KB,即段的最大長度為220×4KB=4GB,Pentium則提供了4KB和4MB兩種頁面選擇。 D為缺省操作數(shù)長度,為0表示16位,為1表示32位(該位僅對代碼段有效)。這些段描述符存放在兩個系統(tǒng)表

27、格GDT和LDT中。GDT是全局描述符表,存放著操作系統(tǒng)使用的和各任務公用的段描述符;LDT是局部描述符表,存放著某個任務專用的段描述符。程序(或系統(tǒng))中裝入段選擇器的也不再是直接的段基址,而是一個指向某個段描述符的16位的段選擇符,其格式如圖2.9所示。其中b1b0位為請求特權級字段RPL,這兩位提供(03級)4個特權級用于保護;b2位為表指示符字段TI,指明本段描述符是在GDT中還是LDT中;b15b3這13位構成描述符索引字段INDEX,用于指明段描述符在指定描述符表中的序號。圖2.9 段選擇符格式當將一個選擇符裝入一個段選擇器(給段選擇器預置初值)時,處理器將自動從GDT或LDT中找到

28、其對應的描述符,裝入相應段寄存器的描述符高速緩存器中。該過程對用戶來說是透明的。如圖2.10所示,當將一個選擇符裝入DS段選擇器時,處理器根據(jù)INDEX和TI指示自動從LDT中找到第64個描述符裝入DS段寄存器的描述符高速緩存器。以后,每當訪問存儲器時,與所用段相關的段描述符高速緩沖器就自動參與該次存儲器訪問操作。段基地址成為線性地址或物理地址計算中的一個分量,界限用于段限檢查操作,屬性則對照所要求的存儲器訪問類型進行檢查。即: 線性地址=段描述符高速緩存器中段基址+偏移地址不使用頁部件時,線性地址即為物理地址;使用頁部件時,上述線性地址需經頁管理部件使用頁目錄表和頁表轉換成物理地址。圖2.1

29、0 由段選擇器指示自動裝入段描述符2. 系統(tǒng)寄存器Pentium微處理器中包含一組系統(tǒng)級寄存器: 即5個控制寄存器CR0CR4和4個系統(tǒng)地址寄存器。這些寄存器只能由在特權級0上運行的程序(一般是操作系統(tǒng))訪問。1) 控制寄存器Pentium微處理器有5個控制寄存器,如圖2.11所示。這些寄存器用來存放全局特性的機器狀態(tài)和實現(xiàn)對80X86/Pentium微處理器的多種功能的控制與選擇。圖2.11 控制寄存器(1) 控制寄存器CR0共定義了11個控制位。在80286微處理器中,CR0稱為機器狀態(tài)字MSW(Machine Status Word)為一16位寄存器,定義了PE、MP、EM和TS 4位。

30、80386在此基礎上擴充了ET和PG兩位。80486以上微處理器在80386的基礎上又擴充了NE、WP、AM、NW和CD這5位。11個控制位分別定義如下: PE為保護允許位,該位為1表示允許保護,為0則以實地址方式工作。 MP為監(jiān)控協(xié)處理器位,MP位同TS位一起使用,用來確定WAIT指令是否自陷。當MP=1,且TS=1時,執(zhí)行WAIT指令將產生異常7。 EM為仿真協(xié)處理器位,用以確定浮點指令是被自陷,還是被執(zhí)行。EM=1,所有浮點指令將產生異常7。 TS為任務切換位,用以指出任務是否切換,執(zhí)行切換操作時,TS=1。TS=1時,執(zhí)行浮點指令將產生異常7。 ET是處理器擴充類型,該位用于80386

31、微處理器,標識系統(tǒng)中所采用的協(xié)處理器的類型。ET=1,采用80387協(xié)處理器,否則采用80287。80486以上系統(tǒng)中ET置1。 NE是數(shù)字異??刂莆?,該位用于控制是由中斷向量16還是由外部中斷來處理未屏蔽的浮點異常。NE=0,處理器同IGNNE輸入引腳和FEPR輸出引腳配合工作;NE=1,在執(zhí)行下一條非控制浮點指令或WAIT指令之前,任何未屏蔽的浮點異常(UFPE)將產生軟件中斷16。 WP是寫保護位,用來保護管理程序寫訪問用戶級的只讀頁面。該位為1時,禁止特權級程序對只讀頁面的寫操作,否則允許只讀頁面由特權級02寫入。 AM是對準屏蔽位,用來控制標志寄存器中對準檢查位(AC)是否允許對準檢

32、查。AM=1,允許AC位;否則禁止AC位。 NW為不通寫控制位,該位用來選擇片內數(shù)據(jù)Cache的操作模式。NW=1時,禁止通寫,寫命中時不修改內存;否則,允許通寫。 CD是Cache禁止或使能位,該位用來控制允許或禁止向片內Cache填充新數(shù)據(jù)。CD=1,當Cache未命中時,禁止填充Cache;否則,未命中時,允許填充Cache。 PG為頁使能位,用于控制是否允許分頁。PG=1,允許分頁,否則禁止分頁。(2) CR2是頁故障線性地址寄存器,用來保存發(fā)生頁故障中斷(異常14)之前所訪問的最后一個頁面的線性頁地址。用軟件讀出即可得到發(fā)生頁故障的線性地址。CR2由80386以上微處理器定義。(3)

33、 CR3是頁目錄基地址寄存器,用來存放當前任務的頁目錄表的物理基地址。由于頁目錄表是按頁對齊的(4KB),因而CR3通過高20位來實施這一要求,而低12位保留或定義為其他用途。CR3是80386以上微處理器才使用的,在80486中新定義了PWT和PCD兩個控制位。PWT是頁面通寫位,用于指示是頁面通寫還是回寫,該位為1,外部Cache對頁目錄進行通寫,否則進行回寫;PCD是頁面Cache禁止位,該位用于指示頁面Cache工作情況,PCD=1,禁止片內Cache,否則允許片內頁Cache。這兩個位只有在CR0中的頁管理使能位PG=0或Cache不使能位CD=1時才有效。(4) CR4是Penti

34、um處理器中新增加的控制寄存器,共定義了6位,各位含義如下: VME是虛擬方式擴充位,VME=1,允許虛擬8086方式擴充,否則禁止。 PVI是保護方式虛擬中斷位,PVI=1,允許保護方式虛擬中斷,否則禁止。 TSD是時間戳禁止位,該位為1,且當前特權級不為0時,禁止讀時間戳計數(shù)器指令RDTSC,否則RDTSC將在所有特權級上執(zhí)行。 DE是調試擴充位,該位用來控制是否支持I/O斷點,當DE=1時,允許I/O斷點調試擴充,否則禁止I/O斷點調試擴充。 PSE是頁尺寸擴充位,該位為1,允許頁面大小擴充,每頁為4MB,否則禁止頁面大小擴充,每頁仍為4KB。 MCE是機器檢查允許位,該位為1,允許機器

35、檢查異常,否則禁止機器檢查異常。2) 系統(tǒng)地址寄存器系統(tǒng)地址寄存器只在保護方式下使用,所以又叫保護方式寄存器。80X86/Pentium用4個寄存器把在保護方式下常用的數(shù)據(jù)基地址、界限和屬性保存起來,以確保其快速性。這4個寄存器如圖2.12所示。圖2.12 系統(tǒng)地址寄存器(1) 全局描述符表寄存器GDTR全局描述符表寄存器GDTR是一個48位字長的寄存器(對80286而言,為40位寄存器),用于存放全局描述符表GDT的32位(或24位)線性基地址和16位界限。全局描述符表GDT是80X86/Pentium用來定義全局存儲器地址空間的一種機制。全局存儲器是一種可能被許多或所有軟件任務共享的通用系

36、統(tǒng)資源。也就是說,全局存儲器中的存儲器地址可被微處理器上的所有任務訪問。該表存放著操作系統(tǒng)使用的和任務公用的段描述符,這些描述符標識全局存儲器中的段。用GDTR定義的全局描述符表如圖2.13所示。GDT的最大長度為216字節(jié)(64KB),由于每個描述符占8個字節(jié),即GDT中最多能定義213=8192個段描述符。圖2.13 GDTR與它定義的全局描述符表(2) 中斷描述符寄存器IDTR中斷描述符表寄存器IDTR也是一個48位字長的寄存器(對80286而言,為40位寄存器),用于存放中斷描述符表IDT的32位(或24位)線性基地址和16位界限。(3) 局部描述符表寄存器LDTR 局部描述符表寄存器

37、LDTR也是80X86/Pentium存儲器管理支持機制的一部分。每個任務除了可訪問全局描述符表外還可訪問它自己的專用描述符表。該專用表稱為局部描述符表(LDT),它定義了任務用到的局部存儲器地址空間。LDT中的段描述符可用來訪問當前任務的存儲器段中代碼和數(shù)據(jù)。由于每項任務都有它自己的存儲器段,因此保護模式的軟件系統(tǒng)可能會包含許多局部描述符表。所以,與段寄存器一樣,LDTR值并不直接定義一個局部描述符表。它只是一個指向GDT中LDT描述符的選擇符,所以LDTR和TR也稱為系統(tǒng)段寄存器。如圖2.14所示,當LDTR中裝入選擇符時,相應的描述符就能夠從GDT中讀出來并裝入LDTR的描述符高速緩存器

38、,從而為當前任務建立了一個LDT。LDT的最大長度也為64KB,即LDT中最多也只能定義8192個局部段描述符。圖2.14 LDTR和它定義的局部描述符表(4) 任務寄存器任務寄存器(TR)在保護模式任務切換機制中很重要。與LDTR一樣,該寄存器存放的也是一個稱為選擇符的16位索引值。TR開始的選擇符由軟件裝入,它開始第一個任務。這之后再執(zhí)行任務切換的指令時就自動修改選擇符。圖2.15所示,TR中的選擇符用來指示全局描述符表中描述符的位置。當選擇符裝入TR中的時候,相應的任務狀態(tài)段(TSS)描述符自動從存儲器中讀出并裝入任務描述符高速緩存中。該描述符定義了一個稱為任務狀態(tài)段(TSS)的存儲塊,

39、它提供了段起始地址(Base)和段界限(Limit)。每個任務都有它自己的TSS。TSS包含啟動任務所需的信息,諸如用戶可訪問的寄存器初值。圖2.15 任務寄存器和任務切換機制3. 調試和模型專用寄存器Pentium處理器中提供了一組調試寄存器和一組模型專用寄存器,用于排除故障和用于執(zhí)行跟蹤、性能監(jiān)測、測試及機器檢查錯誤。(1) 調試寄存器(Debug Register)調試寄存器如圖2.16所示,這是一組32位的寄存器,是程序員可訪問的,提供片上支持調試。80386/80486定義了6個調試寄存器,其中DR0DR3指定了4個線性斷點地址;DR7為調試控制寄存器,用于設置斷點;DR6為調試狀態(tài)

40、寄存器,用于顯示斷點的當前狀態(tài)。圖2.16 調試寄存器Pentium處理器對調試寄存器DR4和DR5給予調試寄存器DR6和DR7的別名。當控制寄存器CR4中的DE位設置為0時,即禁止調試擴充,Pentium通過允許引用DR6和DR7的別名保持與現(xiàn)有軟件兼容;當DE位設置為1時,即允許調試擴充,引用DR4或DR5將產生未定義的操作碼異常。 (2) 模型專用寄存器Pentium處理器取消了80386/80486中的測試寄存器TR,其功能由一組“模型專用寄存器”MSR(Model Special Register)來實現(xiàn),這一組MSR用于執(zhí)行跟蹤、性能監(jiān)測、測試和機器檢查錯誤。Pentium處理器采

41、用兩條指令RDMSR(讀MSR)和WRMSR(寫MSR)來訪問這些寄存器,ECX中的值(8位值)確定將訪問該組寄存器中哪一個MSR。表2.5給出了所有模型專用寄存器MSR與需要裝入ECX值的關系。表2.5 模型專用寄存器與ECX的關系ECX寄存器名說明00H機器檢查地址引起異常周期的存儲器地址01H機器檢查類型引起異常周期的存儲周期類型02H測試寄存器1奇偶校驗逆寄存器03H保留04H測試寄存器2指令超高速緩存結束位05H測試寄存器3超高速緩存測試數(shù)據(jù)06H測試寄存器4超高速緩存測試標志07H測試寄存器5超高速緩存測試控制08H測試寄存器6TLB測試線性地址09H測試寄存器7TLB測試控制和物

42、理地址A31A120AH測試寄存器8TLB測試物理地址A35A320BH測試寄存器9BTB測試標志0CH測試寄存器10BTB測試目標0DH測試寄存器11BTB測試控制0EH測試寄存器12執(zhí)行跟蹤和轉移預測0FH保留10H時間戳計數(shù)器性能監(jiān)測11H控制和事件選擇性能監(jiān)測12H計數(shù)器0性能監(jiān)測13H計數(shù)器1性能監(jiān)測14H保留2.3.3 Pentium的四種工作方式Pentium在80486三種工作方式的基礎上新增了一種系統(tǒng)管理方式,使Pentium微處理器具有了四種工作方式,即: 實地址方式、保護虛擬地址方式、虛擬8086方式和系統(tǒng)管理方式。1. 實地址方式實地址方式是為了與8086兼容而設置的一種工作方式。在這種工作方式下,Pentium的工作原理與8086的工作原理相同,所以實地址

溫馨提示

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

評論

0/150

提交評論