版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第二章 32位微處理器組成原理 2.1 32位CPU的基本結(jié)構(gòu) 2.2 寄存器組成和用途 2.3 指令流水線操作重點理解、掌握的內(nèi)容1.32位CPU的基本組成及工作原理;2.32位CPU的引腳功能及應用技術(shù);3.32位CPU的工作方式;4.寄存器的應用編程。2.1 CPU的基本結(jié)構(gòu)2.1.1 幾種典型Intel CPU簡介1、8086 (16位CPU)外部數(shù)據(jù)總線16位,地址總線20位(尋址范圍220=1MB)。 2、80386 (32位CPU)32位內(nèi)部體系結(jié)構(gòu),32位外部數(shù)據(jù)總線,32位地址總線(實內(nèi)存232=4GB,虛擬空間=64TB)三種工作方式:實方式; 保護方式; 虛擬8086方式
2、。采用流水線技術(shù)和指令預取.3、80486 (32位CPU)32位內(nèi)部體系結(jié)構(gòu);32位外部數(shù)據(jù)總線,32位地址總線;三種工作方式:實方式; 保護方式; 虛擬 8086方式。采用流水線技術(shù)和指令預取技術(shù);片內(nèi)含8KB高速緩存(Cache);片內(nèi)含浮點運算單元(FPU).4、Pentium (32位CPU)32位內(nèi)部體系結(jié)構(gòu);64位外部數(shù)據(jù)總線,36位地址總線;片內(nèi)含8KB指令Cache和8KB數(shù)據(jù)Cache;工作方式新增加了一種系統(tǒng)管理方式(SMM);采用超標量流水線技術(shù);片內(nèi)含浮點運算單元(FPU). 2.1.2 CPU的內(nèi)部結(jié)構(gòu) 80486CPU內(nèi)部由八大部件組成:總線接口、高速緩存、代碼預
3、取、指令譯碼、浮點數(shù)、執(zhí)行部件、段部件、分頁部件。 總線接口包括三總線,完成內(nèi)部與外部總線的聯(lián)系,在內(nèi)總線信號控制下,把內(nèi)總線上的信息送到外總線上,或?qū)⑼饪偩€上的信息接受到內(nèi)總線,并產(chǎn)生相應的控制信息。高速緩存用于減少對內(nèi)存的訪問次數(shù),減少程序運行時間,486以上CPU內(nèi)部有2個高速緩存:一個程序緩存器,一個數(shù)據(jù)緩存器。代碼預取對代碼做取入,排隊分析、分解等譯碼前期準備,利用總線空閑周期把后續(xù)指令取入指令隊列中,預處理后供譯碼部件使用,縮短了譯碼時間。指令譯碼對指令譯碼,把指令的作用含義轉(zhuǎn)換成相應的內(nèi)部功能控制信號指揮各部件協(xié)同工作。浮點運算486以上CPU內(nèi)部有浮點運算部件,專門完成浮點 運
4、算、雙精度運算等數(shù)學運算任務,執(zhí)行部件完成一般算術(shù)運算、邏輯運算以及數(shù)據(jù)傳送等任務,大部分指令所要求的操作都有該部件完成,是CPU的核心部件。段部件把指令指定的邏輯地址變換為線性地址,在變換中實現(xiàn)任務間的保護和虛擬內(nèi)存技術(shù),它包含6個段寄存器。分頁部件把段部件輸出的線性地址轉(zhuǎn)換成物理地址,實現(xiàn)以少量的內(nèi)存模擬大容量內(nèi)存,提高了內(nèi)存的利用率,當命令該部件不工作時,線性地址就成為物理地址2.1.3 80486微處理器外部封裝引腳 80486的CPU有168個引腳,方形封裝;Pentium的CPU引腳有237個以上,引腳都采用格柵陣列插針(PGA)封裝。在微機主板上有相應的插座安裝微處理器。盡管各種
5、CPU的引腳數(shù)目不同,但它們的引腳功能分類大體相同:數(shù)據(jù)總線、地址總線和控制總線系統(tǒng)三總線同名引腳的功能相同。BREQ總線請求輸出,總線周期在內(nèi)部執(zhí)行時,CPU發(fā)出此信號;HOLD總線請求輸入,總線仲裁M/IOD/CW/RLOCKPLOCK總線周期定義80486CPUA2-A31BE3BE2BE1BE032位地址總線HOLDHLDABOFFBREQ總線仲裁總線寬度BS8BS16CLKADSRDYRST總線控制中斷信號INTRNMIINTAFERR數(shù)據(jù)錯13IGNNE報告不理A20M屏蔽A20奇偶DP3DP2DP1DP0一、地址總線:A2A31,形成32位地址總線,可尋址4GB內(nèi)存空間,BE0B
6、E3字節(jié)允許,BE0允許D0D7; BE1允許D8D15 ; BE2允許D16D23; BE3允許D24D31 。另有64KI/O端口物理地址。 二、32位數(shù)據(jù)總線:可分為4個八位,由BS8和BS16決定傳送的數(shù)據(jù)是8位或16位,若 BS8和BS16無效傳送32位。具體傳送哪8位,由BE0BE3決定。三、控制總線:1.時針(CLK)為CPU提供基本定時和內(nèi)部工作頻率,所有外部定時計數(shù)都是相對CLK上升沿指定的。 2.總線控制信號指明總線周期何時開始,并允許其他系統(tǒng)硬件控制數(shù)據(jù)總線寬度與總線周期的終止。 ADS “地址狀態(tài)輸出。表示地址和數(shù)據(jù)周期定義信號均有效。使CPU已啟動了一個總線周期。D0
7、D3132位數(shù)據(jù)總線 RDY “準備就緒”信號,有效時,表示數(shù)據(jù)線上有數(shù)據(jù)輸入,可讀取數(shù)據(jù)操作。 寫操作時表示外設已接收到了CPU發(fā)出的信息。3. 總線周期定義信號M/IO用來區(qū)分內(nèi)存和I/O周期,D/C區(qū)別數(shù)據(jù)和控制周期 ,W/R區(qū)別讀/寫周期LOCK總線鎖定輸出低電平時,表示當前的總線周期 被鎖定,CPU獨占系統(tǒng)總線,運行在讀 改寫周期中,在寫、讀周期之間,不得放棄外部總線。 PLOCK 偽鎖定與LOCK不同的是當前操作需要多一個總線周期,該端輸出低電平時,表示當前總線周期和下一個總線周期被鎖定,使CPU的數(shù)據(jù)讀改寫操作能夠連續(xù)完成。 總 BREQ當總線周期在內(nèi)部執(zhí)行時,發(fā)出此信號,線 表
8、示CPU正在使用總線 。仲 HOLD總線請求輸入,是總線上其他設備向CPU裁 申請控制總線的信號接收端。HLDA輸出有效,表明CPU已將總線交給了另外一個本地的總線 設備。當請求設備脫離總線時, CPU恢復對總線的控制。 BOFF輸入強調(diào)要求CPU在下一個時鐘周期釋放其對總線的控制總線寬度控制: 根據(jù)外設的總線寬度需要向CPU發(fā)來BS8和 BS16 請求,當BS8有效時,總線傳送8位數(shù)據(jù);當BS16有效時,總線傳送16位數(shù)據(jù);當兩者均有效時,總線傳送32位數(shù)據(jù)。中斷信號: INTR是外設可屏蔽中斷信號輸入端,其信號受IF標志位的控制若IF=1,允許CPU響應中斷,且CPU進入中斷響應,執(zhí)行中斷
9、服務;若IF=0,不允許CPU響應中斷,則繼續(xù)執(zhí)行原來的程序。INTA中斷請求響應信號,CPU響應INTR后,先向申請中斷請求的設備回 應INTA,并進入第一個中斷響應總線周期,然后再發(fā)一個INTA, CPU進入第二個中斷響應總線周期,這時,CPU從數(shù)據(jù)總線上讀取中斷類型碼。開始轉(zhuǎn)到相應的中斷服務子程序執(zhí)行程序。NMI外部非屏蔽中斷請求輸入端,此信號不受IF控制,該信 號一旦有效,當前指令執(zhí)行完畢后,CPU立馬響應,并 執(zhí)行其中斷服務程序。而且不需要發(fā)出中斷應答信號。RESET發(fā)出該信號后,所有寄存器處于初始狀態(tài), CPU將從 0FFFFFFF0H單元開始執(zhí)行指令。 數(shù)值出錯報告FERR 浮點
10、錯輸出信號:表示浮點協(xié)處理器發(fā)生錯誤,產(chǎn)生中斷13 ; IGNNE 忽略數(shù)值錯輸入信號:導致協(xié)處理器不理睬浮點錯繼續(xù)處理數(shù)據(jù)。 地址位A20由外部電路使A20的屏蔽信號有效時,將80486內(nèi) 存空間限制在00000H0FFFFFH的1MB物理間,使80486工作在實地址方式。DP0D0D7數(shù)據(jù)線的奇偶校驗; DP1D8D15數(shù)據(jù)線的奇偶校驗; DP2D16D23數(shù)據(jù)線的奇偶校驗; DP3D24D31數(shù)據(jù)線的奇偶校驗。 PCHK若為低電平,則表示數(shù)據(jù)線有奇偶校驗錯。 4、基本時序 80486微機的一般總線周期至少占用兩個時鐘的時間,即:“讀”和“寫”都要兩個時鐘,這稱作:22周期。第一個“2”對
11、應“讀”,第2個“2”對應“寫” 。 如果在“讀”或“寫”中增加了等待狀態(tài),則在“讀”、“寫” 對應的位置加上等待狀態(tài)數(shù)。 例如:“寫”操作需增加一個等待狀態(tài),則稱為:23周期。 80486CPU在讀周期結(jié)束之后的一個時鐘內(nèi)輸出PCHK信號為低時,表示上一個周期所讀數(shù)據(jù)的校驗有一個偶錯。 T1 T2 T1 T2 T1 T2 CLKADSBS0BE3A2A31M/IO、D/CW/RRDYD0D31PCHK讀寫讀 (2)插入等待狀態(tài)的時序 當存儲器或I/O的速度跟隨不上總線操作速度時,就不會發(fā)出RDY的有效信號,此時微處理器就會自動插入等待狀態(tài)。只要RDY是無效的,任意數(shù)量的等待狀態(tài)都會加到總線周
12、期中去。 其圖如下頁所示: T1 T2 T2 T1 T2 T2 T1CLKADSBS0BE3A2A31M/IO、D/CW/RRDYD0D31讀寫33 總線周期時序圖2.3.4 3種工作方式的狀態(tài)轉(zhuǎn)換 80486的三種工作方式: 即: 實地址方式、 保護方式 虛擬8086方式. 2.3.4 3種工作方式的狀態(tài)轉(zhuǎn)換 實地址方式保護方式虛擬8086方式CPU復位CR0中PE位=1CR0中PE位=0執(zhí)行IRETD指令或進行任務轉(zhuǎn)換執(zhí)行中斷采用實地址方式2.1.3、 80486CPU的組成原 理及內(nèi)部體系結(jié)構(gòu) 80486是一種32位微處理器,其內(nèi)部具有存儲管理部件、浮點運算部件和高速緩存部件,還有指令預
13、取和流水線作業(yè)體系結(jié)構(gòu)技術(shù)等。存儲空間高達246 B= 64TB=65536GB。 80486的組成原理、內(nèi)部體系結(jié)構(gòu)和所具有的功能、性能,在微機領(lǐng)域中具有廣泛的代表性,起到了承上啟下的作用。8KBCache總線大小 控制奇偶校驗地址驅(qū)動 寫緩存數(shù)據(jù)總線 收發(fā) 總線 控制器成組控制高速緩存 控制預取部件32B代碼隊列分段、分頁及存儲器管理指令譯碼控制和保護部件控制ROMFPUEP寄存器組桶形位移器寄存器組ALU32位讀32位AB32位DB32 位位移 總線24位20位物理地址微指令總線32位線性地址線32位數(shù)據(jù)線32位數(shù)據(jù)總線系統(tǒng)接口32位基地址線 2.2 80486 CPU原理結(jié)構(gòu)及功能介紹
14、 2.2.1 原理結(jié)構(gòu)及功能介紹 1、運算部分:包含有定點運算部分和浮點運算部分。進行定點運算時需要算術(shù)邏輯運算單元(ALU)、移位器和寄存器組配合協(xié)調(diào)工作;進行浮點運算時需要浮點運算單元(FPU)和浮點寄存器組共同配合來完成。 2、存儲器管理部分是用來實現(xiàn)虛擬存儲器管理的,它由分段部件和分頁部件組成。 分段部件管理邏輯地址空間,并把邏輯地址轉(zhuǎn)換為線性地址; 分頁部件把線性地址轉(zhuǎn)換成物理地址。 3、高速緩存器:為了提高計算機的運算速度,80486的內(nèi)部集成了一個8K字節(jié)的高速緩沖存儲器(Cache). Cache用來存放最近運行的程序所需要的指令代碼和數(shù)據(jù)。 4、指令預取部件: 包含了兩個16
15、字節(jié)的隊列寄存器。指令預取部件與高速緩存之間有一條單向的128位寬的通道,因此,每次從高速緩存中最多可取16個字節(jié)的信息。 指令預取部件也有一條指向指令譯碼器的24位寬度的指令代碼流通道。用來將預取指令傳送給指令譯碼器。指令譯碼器對指令的操作碼進行翻譯,并把翻譯后的信息通過指令總線送給控制部件。 5、在CPU中運算部分與高速緩存之間由雙向的64位寬度的數(shù)據(jù)總線相連接,它們之間可以進行32位或64位的信息傳輸,而存儲管理部分只取數(shù)據(jù)線中的32位數(shù)據(jù)進行操作。 6、控制部分:80486采用微程序設計,它的控制部分由控制與保護部件和控制ROM組成??刂撇糠指鶕?jù)指令譯碼器送來的信息產(chǎn)生微指令,并通過微
16、指令對運算部分、存儲管理部分以及指令譯碼部分發(fā)出控制信號,控制各部分有序地工作。 7、總線接口部件:其功能是產(chǎn)生訪問CPU以外的存儲器和各種輸入/輸出接口所需的地址、數(shù)據(jù)和命令信息。 8、CPU與外部設備交換信息,是通過總線接口部分的數(shù)據(jù)總線收發(fā)器進行的。 在CPU內(nèi)部有兩組方向不同的32位數(shù)據(jù)線,當外部信息輸入時,可通過一組數(shù)據(jù)線把信息送往高速緩存和指令預取隊列;當向外部送出信息時,通過數(shù)據(jù)收發(fā)器中的寫緩沖器進行的。這樣,可以緩解高速運行的CPU與較低速度運行的存儲器、輸入/輸出接口之間的不協(xié)調(diào)矛盾。 2.2.2 80486內(nèi)部寄存器結(jié)構(gòu) 80X86CPU中的寄存器組可分為4大類,即:-基本
17、寄存器;-系統(tǒng)級寄存器;-浮點寄存器;-調(diào)試測試寄存器。 應用程序只能訪問基本結(jié)構(gòu)寄存器和浮點寄存器;而系統(tǒng)程序可以訪問所有的寄存器。80X86內(nèi)部寄存器包括有:通用寄存器8位16位32位專用寄存器8086,8088,80286為16位80386,80486、Pentium為32位 一、 80486CPU中的基本結(jié)構(gòu)寄存器 采用匯編語言編寫程序時,均可以采用這些寄存器。1. 通用寄存器組共有8個32位寄存器。 EAX、 EBX、 ECX、 EDX ESP、EBP、EDI、 ESI 基本結(jié)構(gòu)寄存器通用寄存器段寄存器專用寄存器 * 當使用16位寄存器時有: AX、 BX、 CX、 DX、 SP、
18、BP、DI、 SI 這些寄存器與8086通用寄存器的名稱相同,作用相同,是32位寄存器的低16位。 這些寄存器既可以保存算術(shù)和邏輯運算的操作數(shù),也可以保存地址運算中的操作數(shù)。注意:ESP不能用作基址寄存器。 * 當使用8位寄存器時有: AH、AL、 BH、 BL、CH、 CL、DH、DL 這里把16位寄存器分成了兩個8位的寄存器。 高8位(高字節(jié)):AH、BH、DH、CH; 低8位(低字節(jié));AL、 BL、 CL、 DL。 通用寄存器的名稱、字長及功能如下圖所示。 寄存器 名 稱 32位寄存器16 位寄存器 8 位 寄存器 功 能 累加器 EAX AXAH 、AL運算、指令專用、保存數(shù)據(jù)基址寄
19、存器 EBX BXBH、BL保存數(shù)據(jù)、保存地址 計數(shù)器 ECX CXCH、CL保存數(shù)據(jù)、指令計數(shù)器數(shù)據(jù)寄存器 EDX DXDH、DL保存數(shù)據(jù)、乘除法專用 基址指針 EBP BP保存地址和16位棧地址 堆棧指針 ESP SP 保存棧頂?shù)刂?源變址 寄存器 ESI SI保存數(shù)據(jù),串操作時保存源數(shù)據(jù)地址 目的變址 寄存器 EDI DI保存數(shù)據(jù),串操作時保存目的數(shù)據(jù)地址 2、段寄存器 在設計程序時,一般把指令代碼放在代碼段,操作數(shù)據(jù)放在數(shù)據(jù)段存儲器空間。 80486微機的段寄存器分為兩部分: CS代碼段寄存器; SS堆棧段寄存器 (1)、編程可見的6個16位段寄存器DSESFSGS4個數(shù)據(jù)段寄存器:(
20、選擇符寄存器),它們可直接或間接地指出指令代碼和數(shù)據(jù)所在的地址空間。 (2)、另有6個64位的段描述符高速緩沖寄存器和上面的編程可見的6個16位段寄存器相對應. 段描述符高速緩沖寄存器用來存放段的描述符信息(如段的32位基地址、20位界限和12位屬性),描述符寄存器是編程不可見的,程序不能訪問的。 在實地址方式或虛擬8086方式下,段描述符高速緩沖寄存器不起作用。 在保護方式下,系統(tǒng)采用描述符表來描述不同段的起始地址和長度,段長在14GB內(nèi) ,這時的段寄存器存放選擇符,該選擇符可以從描述符表中選擇一個描述段起始地址和長度的描述符。采取這種技術(shù)可加快存儲器物理地址的形成過程。 3、專用寄存器(1
21、)、 EIP/IP指令指針31 15 015 0EIP:IP: EIP/IP指令指針作用是永遠指向下一條將要執(zhí)行的指令所在內(nèi)存中的偏移地址。這種偏移地址作為代碼段(CS)基值的偏移量。當開始運行程序時,系統(tǒng)把EIP/IP清零,每取入一條指令,EIP/IP自動增加CPU所取指令字節(jié)數(shù)的偏移地址。 在實模式下, IP與CS組合后形成20位物理地址.如圖所示。C SI P 指令指針可以由跳轉(zhuǎn)指令或調(diào)用指令修改。 在保護模式下使用EIP。15 12 11 015 3 020位物理地址19 0 + (2)、標志寄存器(EFLAGS/FLAGS) 標志寄存器為32位,低16位為:FLAGS,與16位機的標
22、志寄存器同名、同作用。31 212019181716 1514 13 12 11109876543210 ID VIP VIF AC VM RF 0 NT IOPL O D I TSZ0A 0P 1C 8086/808880386/80486Pentium 標志寄存器用來指示微處理器的控制狀態(tài),運算狀態(tài)等標志:* 運算狀態(tài)標志:CF、PF、AF、ZF、 SF、 OF* 控制狀態(tài)標志:IF、TF、DF、IOPL、 NT、 RF、VM、AC、 VIF、VIP、ID運算狀態(tài)標志:CF進位標志:CF=1,加法有進位,否則為0CF=1,減法有借位,否則為0 PF奇偶標志:用于串行數(shù)據(jù)的傳送檢查是否 出錯
23、.注意:循環(huán)移位指令也影響進位標志。 AF輔助進位標志: AF=1,作加、減法時,最低4位有進位或有 借位;否則,AF=0。 AF標志也用于BCD碼算術(shù)運算。PF=1,AL的數(shù)據(jù)位中有偶數(shù)個1;PF=0,AL的數(shù)據(jù)位中有奇數(shù)個1。 ZF零標志: ZF=1,表示算術(shù)或邏輯運算的結(jié)果為0; ZF=0,表示算術(shù)或邏輯運算的結(jié)果不為0 SF符號標志:表示算術(shù)或邏輯運算后的結(jié)果符 號位。 當SF=1,表示結(jié)果符號位為1; 當SF=0,表示結(jié)果符號位為0; 對于帶符號數(shù): SF=1,表示負數(shù), SF=0,表示正數(shù)。 OF溢出標志:在加減法運算中,看運算 結(jié)果有無溢出。 OF=1,表示溢出(超出數(shù)值表示范圍
24、) OF=0,無溢出。 注意:OF主要用于帶符號數(shù)運算,如果發(fā)生溢 出,這時結(jié)果值沒有意義。 TF陷阱標志:TF=1時,將CPU設置成調(diào)試程序的單步方式,在這種方式下,每條指令執(zhí)行后,CPU自動產(chǎn)生一個內(nèi)部中斷,使調(diào)試程序的人可以觀察程序中每條指令的執(zhí)行情況。 控制狀態(tài)標志: IF中斷控制標志:IF= 1,允許CPU響應外部INTR可屏蔽中斷; IF= 0,禁止CPU響應外部INTR可屏蔽中斷。 IF不影響外部非屏蔽中斷或內(nèi)部產(chǎn)生的中斷 DF方向標志:用于控制串行操作指令中 變址的遞增/遞減。 DF=0時:SI/ESI或DI/EDI中的地址自動增量, DF=1時:SI/ESI,DI/EDI中的
25、地址自動減量, IOPL輸入/輸出特權(quán)標志:用來定義允許執(zhí)行輸入/輸出指令的特權(quán)級的數(shù)據(jù)。特權(quán)級用兩位表示: 03級,0級最高。 如果當前任務的特權(quán)級高于或等于IOPL規(guī)定的級別,則可執(zhí)行該I/O指令,否則,發(fā)生保護異常中斷,執(zhí)行程序被掛起。 NT 嵌套任務標志: NT表示當前的任務是否嵌套在另一個任務 內(nèi),該標志控制中斷返回指令的執(zhí)行。 NT=1時,表示當前的任務有一個有效的鏈連接到前一個任務(被嵌套),則通過任務轉(zhuǎn)換,執(zhí)行IRET指令實現(xiàn)中斷返回,返回到前一個任務; NT=0時,執(zhí)行常規(guī)中斷返回過程。 RF恢復標志:與調(diào)試寄存器一起使用。 RF=1,CPU響應“斷點異常中斷”,然后標志寄
26、存器壓棧,再轉(zhuǎn)入相應的斷點處理程 序,此時,即使遇到斷點或調(diào)試故障, 也不產(chǎn)生異常中斷,忽略調(diào)試故障。RF=0,接受調(diào)試故障。 VM虛擬8086方式標志: VM=1,微處理器由保護模式切換到虛擬模式,在此模式下,80486CPU可以運行8086的系統(tǒng)程序和應用程序。 AC對準檢查標志: AC=1, 進行字、雙字或4字的對準檢查。 若要訪問的內(nèi)存操作數(shù)未按邊界對準,將產(chǎn)生異常中斷。主要用 于和協(xié)處理器同步工作.所謂邊界,CPU規(guī)定: *訪問字操作數(shù)應從偶地址開始, *訪問雙字操作數(shù)應從4的整數(shù)倍地址開始, *訪問4字操作數(shù)應從8的整數(shù)倍地址開始。 *不符合上述規(guī)定就是越界,產(chǎn)生異常中斷17 ID
27、標識標志:指示Pentium 微處理器支持CPUID指令,該CPUID指令給系統(tǒng)提供有關(guān)該微處理器的各種信息。 VIF虛擬中斷標志:該標志為虛擬方式下 中斷位標志的拷貝,用于多任務環(huán)境 下,給操作系統(tǒng)提供中斷的信息。 VIP虛擬中斷暫掛標志:用于多任務環(huán)境 下,給操作系統(tǒng)提供中斷暫掛信息。 80486CPU內(nèi)部設有4個系統(tǒng)地址寄存器,用來在保護方式下管理4個系統(tǒng)表(表或段)地址。其格式如下:4、系統(tǒng)地址寄存器 線性基地址 界限 線性基地址 界限局部描述符寄存器(LDTR)任務狀態(tài)寄存器(TR)TRLDTR 段描述符高速緩沖器(不可見)選擇符寄存器47 16 15 0063015全局描述符表寄存
28、器(GDTR):中斷描述符表寄存器(IDTR): (1) GDTR全局描述符表寄存器(48位),其中高32位用來存放全局描述符表GDT的32位 線性基地址,低16位存放界限值。 (3)LDTR局部描述符表寄存器,用來存放局部描述符表(LDT)的線性基地址、界限、描述符的屬性和16位選擇符。 (2) IDTR中斷描述符表寄存器(48位),高32位用來存放中斷描述符表IDT的線性基地址,低16位存放界限值。 (4) TR任務狀態(tài)寄存器,用來存放當前正在執(zhí)行任務的線性基地址、界限、描述符的屬性和16位的選擇符。TR與LDTR類似,只有16位的選擇符可由程序訪問,其他部分不可見。 段寄存器與系統(tǒng)地址寄
29、存器一起為操作系統(tǒng)完成內(nèi)存管理。 5、控制寄存器 80X86內(nèi)部有4個32位控制寄存器,用來存放全局性與任務無關(guān)的機器狀態(tài)。如圖示:313029181716 5 4 3 2 1 0PGCD NWAM WPNETETSEMMPPECR0頁故障線性地址寄存器CR1 頁目錄基址寄存器 保留 PCD PWTCR2保留CR3 (1)、CR0用來存放系統(tǒng)控制標志或表示CPU的狀態(tài)。其定義有5類: 保護控制位PE、PG,控制內(nèi)存管理機制的操作。PE控制內(nèi)存管理機制,又稱保護方式允許位, PE=1,進入保護方式; PE=0 ,進入實地址方式;PG控制分頁管理機制,又稱允許分頁位。 PG=1,使分頁部件有效;
30、PG=0,禁止分頁部件工作。 . 協(xié)處理器有MP, EM,TS, ET控制位,控制浮點處理器的操作。MP 監(jiān)控協(xié)處理器位。 MP=1,表示80486系統(tǒng)中有協(xié)處器( 80286, 80386)在運行; MP=0, 表示運行80486程序。EM仿真協(xié)處理器位, EM=1,浮點指令由軟件仿真協(xié)處理器; EM=0,由硬件控制浮點指令傳送到協(xié)處理器 ET處理器擴展類型標志,用來指示系統(tǒng) 中協(xié)處理器的類型。 ET=1,表示配置有80387;否則,表示未配置 TS 任務切換位 TS=1,表示有任務切換(由CPU自動置“1”, 清除任務時,由切換標志指令CLTS將TS清“0” 在解釋浮點算術(shù)運算指令時,對該
31、位進行測試。 NE 數(shù)值異常事故位,用來控制浮點運算中未被屏蔽的異常故障。 NE=1,允許報告浮點數(shù)值錯;NE= 0,IGNNE輸入有效,則不予以報告。另有 NE=0,且IGNNE輸入無效時,數(shù)值錯將會使處理器停止運行,并等待一次中斷。 AM對準控制位。 AM 對準屏蔽位,與狀態(tài)標志AC配合使用,控制對數(shù)據(jù)的對準校驗。 AM=1,且AC=1時,對用戶級(CPL=3)訪問的存儲單元進行對準校驗,即邊界檢查,否則不校驗。 WP 頁的寫保護控制位。 WP 寫保護位,用來凈化80486的頁寫保護機構(gòu),即保護用戶級的那些頁。 WP=1禁止管理級對用戶級的頁進行寫操作;當WP=0,管理級可向用戶級的頁進行
32、寫操作。 片內(nèi)高速緩存控制位CD,NW。 CD 允許Cache位,用來控制是否使用片內(nèi) Cache。 CD=0,允許使用內(nèi)部Cache,這時,可對 片內(nèi)Cache存儲器填充寫入; CD=1,不能對Cache填充寫入。如果徹底禁止Cache,可用專門的指令I(lǐng)NVD或WBINVD對片內(nèi)Cache刷新(即清0)。 。 NW 不透明寫位,也稱為不是寫貫穿,用來控制Cache操作。 NW= 0: 所有選中Cache的寫操作將按貫穿方式 同時寫入Cache和寫入主存;NW=1: (且CD=1)只寫入Cache存儲器,而不寫入主存。(2)CR1 未用。(3)CR2 頁故障線性地址寄存器,用于發(fā)生頁異常時,報
33、告出錯信息,保存最后出現(xiàn)頁故障的32位線性地址。只有當CR0中的PG=1時,CR2才有意義. (4)CR3頁目錄基址寄存器,用于保存頁目錄表的起始線性地址。 其中高20位存放頁目錄表的物理基地址。在低12位中有2位為標志位,是與高速緩存有關(guān)的控制位,它們用來確定以頁為單位進行高速緩存的有效性。其余10位未用。標志位作用如下: PCD 禁止頁高速緩沖位:PCD=1,不對頁進行高速緩沖操作。在不分頁情 況下的總線周期,該信號由PCD引腳輸 出,控制外部二級Cache的高速緩沖操作 PWT寫貫穿位。在80486內(nèi)部Cache中使用 的是“寫貫穿”方式, 而外部級Cache有的使用“寫貫穿”方式,有的
34、既可使用“寫貫穿”方式又可使用“寫回”方式.PWT=1,使片外二級Cache采用“寫貫穿”方 式,否則采用“寫回”方式。 所謂“寫貫穿”是向Cache寫入數(shù)據(jù)的同時,也寫入到主存中?!皩懟亍笔侵挥挟擟ache中的某一存儲塊被刷新時,才把這一存儲塊寫回到主存中去。 六、測試寄存器 在80X86CPU內(nèi)部有5個測試寄存器:TR3TR7,各32位。 TR3TR5用于片內(nèi)Cache測試(測試數(shù)據(jù)、狀態(tài)、控制)。 TR6TR7用來控制分頁部件的測試操作(測試控制、狀態(tài))。31 Cache 測試控制 031 Cache 測試數(shù)據(jù) 031 Cache 測試狀態(tài) 031 TLB 測試控制 031 TLB 測試
35、狀態(tài) 0TR3TR4TR5TR6TR7 七、調(diào)試寄存器 在80X86CPU內(nèi)部有8個32位調(diào)試寄存器,表示為DR0DR7。如下圖所示: 其中DR0DR3用作線性斷點地址寄存器,可保存4個斷點地址。 線性斷點地址 線性斷點地址 線性斷點地址 線性斷點地址 INTEL公司保留 INTEL公司保留 斷點狀態(tài) 斷點控制31 0DR0DR1DR2DR3DR4DR5DR6DR7 DR6用作斷點狀態(tài)寄存器,用來設置若干個狀態(tài)標志。 其中低4位分別表示4個斷點處的調(diào)試狀態(tài)。另有3位: BT是任務轉(zhuǎn)換引起的調(diào)試陷阱; BS是單步異常引起的調(diào)試陷阱; BD是試圖訪問調(diào)試寄存器引起的調(diào)試陷阱。 DR7 是斷點控制寄
36、存器,用來設置控制標志、條件、斷點地址的有效范圍,以及是否進入異常中斷等。DR4、DR5保留。 32位CPU是由早期的16位CPU發(fā)展而來的,為了保持與16位機指令系統(tǒng)的兼容性,又能充分發(fā)揮32位機的優(yōu)勢,32位CPU采用了多種工作模式的方法來解決這一矛盾。80X86系列CPU具有3種工作模式: 1、實地址方式(Real Address Mode) 2、保護方式(Protected Mode) 3、虛擬8086方式(Virtual 8086 Mode) 2.3 CPU的工作方式 8086、8088CPU工作在實模式下; 80286以上CPU可工作于實模式或保護模式。 在實模式下,80486的操
37、作數(shù)長度為16位,可以運行全部8086/8088指令。 80486除保護方式指令外,其余指令都可在實模式下運行。主要區(qū)別是80486能處理32位數(shù)據(jù)。 2.3.1、實地址方式實模式 在保護方式下,CPU可訪問232字節(jié)(4GB)的物理存儲空間,最大段長為232字節(jié), 而且可以實施保護功能,并引入了虛擬存儲器概念。 實模式下一個段的長度為164K字節(jié)內(nèi) 。物理地址=段基地址10H+偏移地址段寄存器直接存放某一段的段基地址,編寫程序時,程序給出指令或數(shù)據(jù)的邏輯地址,包括段基地址(16位)和相對于段基地址的段內(nèi)偏移量(16位),又稱偏移地址。在指令尋址時,將邏輯地址轉(zhuǎn)換為存儲器單元的物理地址。20位
38、地址線對應的存儲器物理地址為1MB。地址轉(zhuǎn)換的規(guī)則為:用圖形表示如下所示:(段寄存器 )= 段基地址偏移地址15 12 11 0 +20位物理地址 19 015 0實模式下存儲器的物理地址生成示意圖 例:編程定義:CS=1000H,DS=2000H, SS=3000H,ES=4000H 4個段長均為64KB,而偏移地址為00000FFFFH,4個段在內(nèi)存的分布如下:代碼段 堆棧段數(shù)據(jù)段附加段CS=1000H10000H1FFFFHDS=2000H20000H2FFFFHSS=3000H30000H3FFFFHES=4000H40000H4FFFFH64K64K64K64K 存放程序代碼的存儲器
39、空間,由段寄存器CS指向段基地址,而段內(nèi)偏移地址在IP/EIP中。 在尋址其它段時,段基地址在 DS,ES ,SS ,F(xiàn)S或GS中,而段內(nèi)偏移地址由指令指定尋址方式,或者由指令直接定義,或存放在通用寄存器中,也可在存儲器中。 這種分段尋址方式,允許程序在存儲空間內(nèi)重定位,也允許在實模式下編寫的程序可在保護模式下運行。 80386以上CPU允許6種存儲器分段,段寄存器為:CS,DS,SS,ES,F(xiàn)S,GS.如果一個段長小于64KB,重定位方式允許其它段復蓋前一個段未使用的部分。 在實模式下,808680286CPU允許4種存儲器分段,段寄存器為:CS,DS,SS,ES。在這種尋址方式下,無需改變
40、任何偏移地址,只要修改段地址,就可將整個程序移到內(nèi)存的任何地方。實現(xiàn)了程序重定位。 虛擬8086方式是一種既能有效利用保護功能,又能執(zhí)行8086指令代碼的工作方式。CPU的工作過程與保護方式下的工作過程相同,程序指定的邏輯地址與8086有相同的解釋,尋址的地址空間為1MB,段長為64KB。20位物理地址的形成與實模式一樣。但這是一種虛擬8086方式,不完全等同于8086。 2.3.2 虛擬8086方式 當標志寄存器中的VM位置1時,CPU進入虛擬8086方式。 在虛擬8086方式下,有4GB內(nèi)存空間可以利用,采用分頁內(nèi)存管理機制,支持64TB的虛擬存儲地址空間,其代碼和數(shù)據(jù)段具有保護機制,支持
41、任務之間以及特權(quán)級的數(shù)據(jù)和程序保護,允許多任務運行。 80486可以把每個虛擬8086任務作為與其它任務具有同等地位的任務,通過這種工作方式,可以運行8086環(huán)境下的程序,而且,在運行8086程序時,可以充分發(fā)揮32位CPU的能力和充分利用系統(tǒng)資源。32位CPU支持保護工作模式,在該方式下,32位地址總線支持高達4GB的物理地址空間. 存儲器分段分頁管理機制不僅為存儲器保護和共享提供了硬件支持,而且,為實現(xiàn)虛擬存儲器提供了硬件支持。支持多任務,實現(xiàn)了快速的任務切換和任務保護。支持特權(quán)級與特權(quán)保護,實現(xiàn)了資源共享、數(shù)據(jù)安全和保密。 2.3.3 保護方式 1、虛擬存儲地址空間 在保護方式下,支持虛
42、擬存儲地址空間,虛擬空間在物理上是由外存與內(nèi)存結(jié)合提供的,最大為: 246=64TB=65536GB。 2、保護模式物理地址形成 保護模式下,段的最大長度可達4GB,段寄存器不能直接存放段基址,而是存放指示段基址的選擇符,間接指示段基址。 選擇符用來選擇某個描述符表中的描述符,每個描述符指出存儲器段的位置、長度和訪問權(quán)限等。 段描述符中32位段基址+32位的偏移量=線性地址。然后,再由分段部件傳送給分頁部件形成物理地址。 分段部件作用:將邏輯地址轉(zhuǎn)換成線性地址。 在描述符中段基址為32位,因此,存儲單元的物理地址計算規(guī)則不同于實地址方式,在這里,可直接采用段基址與偏移地址相加產(chǎn)生32位物理地址
43、。 段描述符中包括:段基址、界限值、段特權(quán)級 以及所允許訪問的類型信息分段部件分頁部件存儲器邏輯地址32位線性地址 32位物理地址 保護模式物理 地址形成圖+偏移地址31 0描述符 描述符表(段基址)選擇符15 031 0 在保護方式下,支持特權(quán)級與特權(quán)保護。 特權(quán)級與特權(quán)保護是為了支持多用戶、多任務操作系統(tǒng),使系統(tǒng)程序和用戶的任務程序之間、各任務程序之間互不干擾而采取的保護措施。32位CPU提供了一個4級特權(quán)管理系統(tǒng),也就是4級保護系統(tǒng)。為了使程序和數(shù)據(jù)安全可靠,還采取了頁面保護措施。 3、 特權(quán)級與特權(quán)保護特權(quán)級用PL表示,分為0,1,2、3級。0級特權(quán)最高,一般賦給操作系統(tǒng)的核心程序1級
44、賦給來自操作系統(tǒng)的服務程序;2級賦給操作系統(tǒng)的擴展程序;3級賦給用戶程序,級別最低。 在實施管理中使用了3種形式的特權(quán)管理: 當前任務特權(quán)(CPL)、選擇符特權(quán)(RPL)和描述符特權(quán)(DPL)。 并且規(guī)定某一特權(quán)級段中的數(shù)據(jù)只能由同級或高特權(quán)級中運行的程序使用; 某一特權(quán)級的代碼段或過程只能由同級或低特權(quán)級中運行的程序調(diào)用。 任務執(zhí)行時當前特權(quán)級一般不能改變,如果必須改變,只能通過代碼段的門描述符的控制轉(zhuǎn)換才能實現(xiàn)。 對于代碼段轉(zhuǎn)移的規(guī)定為:新代碼的特權(quán)級必須更高。即控制轉(zhuǎn)移的條件是: CPL=DPL,CPLRPL選擇符特權(quán)級。 如果CPL=DPL,則屬于同一級的轉(zhuǎn)移; 如果CPL高于DPL特
45、權(quán)級,則程序執(zhí)行在CPL級。 任務的特權(quán)級從CPL到更高特權(quán)級的改變是由調(diào)用門的間接控制轉(zhuǎn)移來實現(xiàn)的。調(diào)用門的內(nèi)容包括控制轉(zhuǎn)移入口點的虛擬地址。 對于輸入/輸出有兩個特權(quán)級: 第一個是I/O驅(qū)動程序,屬于系統(tǒng)程序,規(guī)定特權(quán)級為0; 第二個是IOPL,用于限制I/O指令的執(zhí)行,如:IN,OUT,CLI和STI只能在大于和等于規(guī)定的特權(quán)級上執(zhí)行。2.3.4 3種工作方式的狀態(tài)轉(zhuǎn)換 80486的三種工作方式,即實地址方式、保護方式和虛擬8086方式的狀態(tài)轉(zhuǎn)換。 實地址方式保護方式虛擬8086方式CPU復位CR0中PE位=1CR0中PE位=0執(zhí)行IRETD指令或進行任務轉(zhuǎn)換執(zhí)行中斷采用實地址方式當微處
46、理器復位時,進入實地址方式。將CR0中PE位復位,80486由實地址方式轉(zhuǎn)移到保護方式。在保護方式下,執(zhí)行IRETD指令或進行任務轉(zhuǎn)換,就由保護方式轉(zhuǎn)移到虛擬8086方式。利用中斷操作,微處理器就可以由虛擬8086方式返回到保護方式。采用實地址方式可使80386,80486返回到8086狀態(tài)。相當于一個功能稍強速度更快的16位機。而采用保護方式可以充分能的環(huán)境中,用32位機的代碼去模擬運行16位機的程序。 Pentium微處理器除了上述的3種工作方式之外,增加了一種系統(tǒng)管理方式(SMM)。 這種方式可使系統(tǒng)設計人員實現(xiàn)高級管理功能,比如對電源實施管理。 對操作系統(tǒng)和正在運行的程序?qū)嵤┕芾?,提?/p>
47、透明的安全性。 2.3.5 系統(tǒng)管理方式(SMM) SMM是Pentium的一項主要特征,它由機器內(nèi)部的硬件(裝有系統(tǒng)程序代碼的ROM)來控制。 SMM主要是為系統(tǒng)管理而設置,在硬件的控制下可從任何一種工作方式進入SMM方式, 工作完成后再返回原來的方式。如下圖所示。實地址方式保護地址方式模擬8086方式 系統(tǒng)管理方式Pentium 工作方式轉(zhuǎn)換圖 SMIRSMSMI RSMRSMSMIPE=1PE=0復位復位 為提高運行速度和性能指標,CPU采用了流水線技術(shù)作業(yè)。在80486CPU中設有:8KB內(nèi)部高速緩存器、32B預取指令隊列、指令譯碼器、控制器、控制寄存器和執(zhí)行部件, 80486CPU使
48、用5個步驟的流水線技術(shù),即: 指令預取PF、譯碼D1、譯碼D2、執(zhí)行EX和結(jié)果寫回WB,其過程如圖所示。 2.4 指令流水線操作 PF D1 D2 EX WB時鐘 一般來說,預取指令部件的操作與流水線其他步驟是相互獨立的。在實際使用中,32B的隊列分成兩個16B的隊列使用。其中只要有一個隊列為空,預取部件就從高速緩存中取16B的代碼填入隊列中,這就保證了取指令與執(zhí)行指令的并行操作。 一、指令預取PF 預取指令部件一次可從內(nèi)部高速緩存中取16B的指令代碼,送預取指令隊列中等候執(zhí)行。在16個字節(jié)中平均有5條指令,這樣就滿足了譯碼部件的需要。 譯碼操作分為D1和D2兩個階段。D1是第1階段,從指令代碼中分解出操作碼進行譯碼,找出第一條微指令代碼的入口地址送控制ROM。如果指令中帶有操作數(shù),同時找出計算地址的代碼,送分段部件。 對于多字節(jié)指令,一次最多可以處理3個字節(jié)。根據(jù)80486的體系結(jié)構(gòu),任何一條指令的長度都可以通過前3個字節(jié)(包括指令前綴)確定 二、D1 三、D2 對于帶前綴的指令,需要增加一個時鐘周期對前綴譯碼,這樣D1階
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 動火安全課件
- 醫(yī)院反腐倡廉廉潔行醫(yī)專題黨課宣講課件
- 《超市盤點操作流程》課件
- 贛南科技學院《現(xiàn)代企業(yè)管理學》2023-2024學年第一學期期末試卷
- 應急照明系統(tǒng)培訓課件
- 大學生安全教育(共31張課件)-2024鮮版
- 七年級語文上冊第二單元體驗親情8世說新語二則高效教案新人教版
- 2022年-2023年公務員(國考)之公共基礎(chǔ)知識模考模擬試題
- 氣胸護理查房
- 慶元旦表演安全課件
- 事故隱患報告和舉報獎勵制度
- 腹部外傷門診病歷
- 品質(zhì)異常處理及要求培訓
- 模具部年終總結(jié)--ppt課件
- 立式熱虹吸再沸器機械設計說明書
- 國家開放大學電大《生產(chǎn)與運作管理》2025-2026期末試題及答案
- 質(zhì)量保證大綱(共14頁)
- 關(guān)于歐盟新版EMC標準EN55032的解析
- 木材材積表0.1-10米.xls
- 輕質(zhì)隔墻板安裝合同協(xié)議書范本標準版
- 車輛管理各崗位績效考核量表
評論
0/150
提交評論