清華大學(xué)微機原理32位微處理器_第1頁
清華大學(xué)微機原理32位微處理器_第2頁
清華大學(xué)微機原理32位微處理器_第3頁
清華大學(xué)微機原理32位微處理器_第4頁
清華大學(xué)微機原理32位微處理器_第5頁
已閱讀5頁,還剩66頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1微型計算機及應(yīng)用22 2 4 48038680386微處理器微處理器3232位微處理器的地址總線和數(shù)據(jù)總線位微處理器的地址總線和數(shù)據(jù)總線 32 32位微處理器的工作方式位微處理器的工作方式5 5 80486 80486微處理器微處理器PentiumPentium微處理器微處理器 3 31 13 32位微處理器的問世,是微處理器發(fā)展過程中的又一個里程碑。目前,32位微處理器的型號很多,Intel公司推出的主要類型有80386,80486和Pentium微處理器。 80386微處理器是為多用戶和多任務(wù)操作系統(tǒng)而設(shè)計的,具有32位寄存器和數(shù)據(jù)通道,支持32位地址和數(shù)據(jù)類型。CPU片內(nèi)有存儲器管理部

2、件,可實現(xiàn)分段和分頁管理,使微處理器地址有4GB(千兆字節(jié))物理存儲器和64MMB(萬億字節(jié))虛擬存儲器,以及有4級保護功能,因此程序不能訪問段所規(guī)定區(qū)域以外的單元,數(shù)據(jù)也不能寫入到禁止的段里。另外,其指令流水線,在高速緩沖存儲器(cache)和高速總線帶寬的作用下,縮短了指令執(zhí)行時間及增加了系統(tǒng)的數(shù)據(jù)吞吐能力。4 80486微處理器是在80386基礎(chǔ)上又增加了浮點運算部件和高速緩沖部件,其性能和速度又提高了一大步。 Pentium處理器是一種最先進(jìn)的32位微處理器。它是一種雙ALU流水線工作的CPU,每一個時鐘周期可執(zhí)行兩條指令,提供了強有力的工作站和服務(wù)器功能。Pentium,及微處理器又

3、增添了多媒體處理功能,所以,Pentium微處理器也就最適用于多媒體計算機和網(wǎng)絡(luò)計算機中。 這3種32位微處理器的工作原理類同,都屬于80X86系列。它們的軟件也與我們前面所學(xué)的16位微處理器兼容。為了學(xué)習(xí)方便,我們先從80386微處理器開始,講述32位微處理器的工作原理。隨后,再來介紹80486和Pentium微處理器。 本章著重講解32位微處理器與16位微處理器在結(jié)構(gòu)和工作原理上的區(qū)別,重點論述32位微處理器的實地址方式、保護方式和虛擬8086方式的機理,存儲器的分段和分頁管理以及32位微處理器的尋址方法。使同學(xué)對32位微處理器有一個基本的認(rèn)識。5 1.1 803861.1 80386微處

4、理器微處理器 80386微處理器的內(nèi)部結(jié)構(gòu)流程圖如下圖所示。這是一種采用流水線工作方式的結(jié)構(gòu),內(nèi)部分為中央處理部件(CPU)、存儲管理部件(MMU)和總線接口部件(BIU)3部分,圖中各部分用虛線分開。 中央處理部件由指令部件和執(zhí)行部件組成。指令部件包含兩個指令隊列,其一是指令預(yù)取隊列,用來暫存從存儲器中預(yù)取出來的指令代碼。其二是已譯碼指令隊列;這些預(yù)取指令經(jīng)預(yù)譯碼后,送入已譯碼指令隊列中等待執(zhí)行。如果在預(yù)譯碼時發(fā)現(xiàn)是轉(zhuǎn)移指令,可提前通知總線接口部件去取目標(biāo)地址中的指令,取代原預(yù)取隊列中的順序指令。執(zhí)行部件中包含32位的算術(shù)運算單元ALU,8個32位通用寄存器組。為了加快乘、除法運算速度,設(shè)置

5、了一個64位的桶形移位器和乘除硬件。6 1.1 803861.1 80386微處理器微處理器7 存儲管理部件由分段部件和分頁部件組成,存儲器采用段、頁式結(jié)構(gòu)。頁是機械劃分的,每4KB為一頁,程序或數(shù)據(jù)均以頁為單位進(jìn)入實存。存儲器按段來組織,每段包含若干個頁,段的最大容量可達(dá)4 000MB。一個任務(wù)最多可包含16K個段,所以80386可為每個任務(wù)提供64TB的虛擬存儲空間。為了加快訪問速度 ,系統(tǒng)中還設(shè)置有高速緩沖存儲器(cache),構(gòu)成完整的cache主存輔存的3級存儲體系。 總線接口部件通過數(shù)據(jù)總線、地址總線和控制總線負(fù)責(zé)與外部取得聯(lián)系,包括訪問存儲器預(yù)取指令,讀寫數(shù)據(jù)和訪問IO端口讀寫數(shù)

6、據(jù)等全部操作及其他控制功能。1.1 803861.1 80386微處理器微處理器8 80386微處理器中有通用寄存器、段寄存器、指令指針和標(biāo)志寄存器、系統(tǒng)地址寄存器、控制寄存器、調(diào)試寄存器以及測試寄存器等,如下圖所示。1.2 803861.2 80386的寄存器的寄存器9 1. 通用寄存器 80386中設(shè)置8個32位通用寄存器,如下圖所示。它們的用法與8086相同,也可當(dāng)作8位、16位寄存器用。若作32位寄存器使用,前面必須加字符E。1.2 803861.2 80386的寄存器的寄存器10 2. 段寄存器 80386中設(shè)置6個16位段寄存器和6個64位描述符寄存器。其中CS,SS,DS和ES段

7、寄存器與8086中的段寄存器完全相同。在實地址方式下,使用方法也與8086相同;在保護虛地址方式下,用來存放虛地址指示器中的段選擇字。當(dāng)段選擇字置入段寄存器時,CPU會把相應(yīng)的描述符中的段起始地址、段界限和段屬性等自動的置入描述符寄存器,以供地址變換時使用。 FS和GS寄存器是為減輕段寄存器負(fù)擔(dān)而設(shè)置的,可由用戶將FS,GS定義為其他數(shù)據(jù)段。1.2 803861.2 80386的寄存器的寄存器11 3. 指令指針和標(biāo)志寄存器 利用32位的指令指針(EIP) 可直接尋址4000MB的實存空間。標(biāo)志寄存器的位結(jié)構(gòu)如下圖所示。其低端12位與8086標(biāo)志寄存器完全相同,高端又設(shè)置了4個新的標(biāo)位。其中,

8、IOPL字段為特權(quán)標(biāo)志,用來定義當(dāng)前任務(wù)的特權(quán)層。NT位為任務(wù)嵌套標(biāo)志,NT=1,表示當(dāng)前執(zhí)行的任務(wù)嵌套于另一任務(wù)中,否則NT=0。VM位是虛擬方式標(biāo)志,如果VM位置“1”,表示CPU是工作在虛地址保護方式。RF位是恢復(fù)標(biāo)志位,當(dāng)RF位置“1”,表示下邊指令中的所有調(diào)試故障都被忽略,當(dāng)成功地執(zhí)行完每條指令時,RF將被置位。1.2 803861.2 80386的寄存器的寄存器12 4. 控制寄存器 80386中設(shè)置4個32位的控制寄存器R0R3。CR0的低16位為機器狀態(tài)字,目前只用低4位。其中,D0位是保護允許位(PE),用來啟動CPU進(jìn)入保護虛地址方式。PE=0,表示CPU當(dāng)前處于實地址方式

9、;PE =1,表示CPU當(dāng)前已進(jìn)入保護虛地址方式。D3位是任務(wù)切換位(TS)、D2位是仿真協(xié)處理器位(EM)及D1位是監(jiān)督協(xié)處理器位(MP),這3位的組合功能見表5-1。系統(tǒng)可用LMSW及SMSW指令把機器狀態(tài)字取出和存入存儲器,來改變其功能。可使用MOV指令對CR0進(jìn)行讀寫操作。 1.2 803861.2 80386的寄存器的寄存器13 CR1保留給將來開發(fā)的Intel微處理器使用;CR2包含一個32位的線性地址,指向發(fā)生最后一次頁故障的地址;CR3包含頁目錄表的物理基地址,因為80386中的頁目錄表總是在頁的整數(shù)邊界上,每4KB為一頁,所以CR3的低端12位保持為“0”。5. 系統(tǒng)地址寄存

10、器 80386中設(shè)置4個專用的系統(tǒng)地址寄存器,它們是GDTR、IDTR、LDTR和TR。GDTR和IDTR長48位,LDTR和TR長16位。GDTR用來存放全局描述符表的基地址(32位)和限值(16位);IDTR用來存放中斷描述符表的基地址(32位)和限值(16位);LDTR用來存放局部描述符表的段選擇字;TR用來存放任務(wù)狀態(tài)段表的段選擇字。 1.2 803861.2 80386的寄存器的寄存器14 6. 調(diào)試寄存器 80386設(shè)置8個32位的調(diào)試(DEBUG)寄存器DR0DR7。DR7用來設(shè)置斷點;DR6用來保留斷點狀態(tài)。DR0DR3可用來設(shè)置4個斷點;DR4,DR5保留待用。7. 測試寄存

11、器 80386設(shè)置5個32位測試寄存器TR3TR7。 TR3TR5用于片內(nèi)Cache測試,TR6TR7用來控制分頁部件的測試操作。 1.2 803861.2 80386的寄存器的寄存器151 1 4 48038680386微處理器微處理器3232位微處理器的地址總線和數(shù)據(jù)總線位微處理器的地址總線和數(shù)據(jù)總線 32 32位微處理器的工作方式位微處理器的工作方式5 5 80486 80486微處理器微處理器PentiumPentium微處理器微處理器 3 32 216 32位地址總線提供內(nèi)存和I/O端口的物理地址,用30條地址線A2A31加上4個字節(jié)允許符BE0BE3來實現(xiàn)。這4個字節(jié)允許符給出了兩

12、個最低有效地址位和傳送寬度編碼。32位微處理器的物理尋址空間有4GB,即232字節(jié);而I/O地址空間只有64KB,即216字節(jié)。所以,A2A31用來尋址到一個4個字節(jié)的單元,而用BE0BE3來標(biāo)識在當(dāng)前傳送操作中這4個字節(jié)單元的處理方法。對于在執(zhí)行計算機內(nèi)存的讀和寫周期時,4個字節(jié)允許符BE0BE3用來確定數(shù)據(jù)總線上哪些字節(jié)是有效驅(qū)動的: BE0使最低8位數(shù)據(jù)線D0D7有效,BE1使次低8位數(shù)據(jù)線D8D15有效, BE2使次高8位數(shù)據(jù)線D16D23有效,BE3使最高8位數(shù)據(jù)線D24D31有效。這樣,字節(jié)允許符BE0BE3直接決定32位數(shù)據(jù)總線上傳送數(shù)據(jù)的寬度是14個字節(jié)。2.1 地址總線17

13、2.22.2 數(shù)據(jù)總線數(shù)據(jù)總線 32位數(shù)據(jù)總線是32條三態(tài)雙向數(shù)據(jù)線D0D31。D0D7為最低字節(jié),D24D31為最高字節(jié)??梢允褂肂S8和BS16引腳輸入控制信號來改變數(shù)據(jù)總線的寬度,將數(shù)據(jù)傳送到8位或16位設(shè)備中去。使32位微處理器能直接與32位、16位或8位總線相連接。CPU每個時鐘周期都采樣這些引腳,當(dāng)接收到BS16或BS8信號時,只需要16位或8位總線有效。當(dāng)同時接收到BS16或BS8信號時,只有8位總線有效。18 2.3 2.3 總線傳送機制總線傳送機制 32位微處理器的所有數(shù)據(jù)傳送都是由一個或多個總線周期來完成。1字節(jié)、2字節(jié)或4字節(jié)的邏輯數(shù)據(jù)操作數(shù)可以在物理地址不對界的情況下傳

14、送。在對界時的操作數(shù)只需要1個總線周期,而對于不對界時的操作數(shù)就需要2個或3個總線周期。 80X86地址信號的設(shè)計可以簡化外部系統(tǒng)的硬件。高位地址由A2A31提供。低位地址則以BE0BE3形式提供了32位數(shù)據(jù)總線4個字節(jié)的選擇信號。 當(dāng)字節(jié)允許符參與數(shù)據(jù)傳送時,在數(shù)據(jù)總線上就會有相應(yīng)的數(shù)據(jù)總線字節(jié)被傳送,如下表所示。19 有時,對多總線接口需要A0和A1這兩個地址信號,可由上表得到右圖所示的邏輯電路產(chǎn)生。 這樣,由A2A31和BE0BE3就能形成了完整的32條地址線,如下表所示。2.3 2.3 總線傳送機制總線傳送機制202 2 4 48038680386微處理器微處理器3232位微處理器的地

15、址總線和數(shù)據(jù)總線位微處理器的地址總線和數(shù)據(jù)總線 32 32位微處理器的工作方式位微處理器的工作方式5 5 80486 80486微處理器微處理器PentiumPentium微處理器微處理器 1 13 321 32位微處理器有3種工作方式,即實地址方式(real mode),保護方式(protected mode)和虛擬8086方式(virtual 8086 mode)。它們運行和轉(zhuǎn)換的關(guān)系如下圖所示。當(dāng)CPU進(jìn)行啟動或復(fù)位時首先進(jìn)入實地址方式工作。修改控制寄存器CR0的機器狀態(tài)字時,就可以由實地址方式轉(zhuǎn)換到保護方式工作。再執(zhí)行IRET指令或進(jìn)行任務(wù)轉(zhuǎn)換,就可由保護方式轉(zhuǎn)移到虛擬8086方式工作

16、。任務(wù)轉(zhuǎn)換功能是32位微處理器的特點之一,我們采用中斷處理,就可再把CPU從虛擬8086方式返回到保護方式,以及實地址方式。22 32位微處理器實地址方式的工作原理與8086基本相同,其主要區(qū)別是32位微處理器能處理32位數(shù)據(jù)。 在保護方式下,CPU可訪問232字節(jié)的物理存儲空間,段長為232字節(jié),而且還可以實施保護功能。分頁功能是任選的。在保護方式中引入了軟件可占用空間的虛擬存儲器的概念。 虛擬8086方式是一種既能有效利用保護功能,又能執(zhí)行8086代碼的工作方式。CPU與保護方式下的原理相同,但程序指定的邏輯地址與8086 CPU解釋相同。 由此可見,實地址方式主要是為微處理器建立保護方式

17、所必須的。 在實地址方式運行時,32位微處理器就像一個速度很快的8086 CPU,但是,對某些指令,它也可擴展為32位。保護方式提供了復(fù)雜的存儲器管理和處理器的特權(quán)級能力。在保護方式運行時,可實現(xiàn)任務(wù)的切換,即切換到虛擬8086方式,允許執(zhí)行8086的操作系統(tǒng)和應(yīng)用程序,使32位微處理器實現(xiàn)多任務(wù)和多用戶的目標(biāo)。23 3.1 3.1 實地址方式實地址方式 32位微處理器復(fù)位或加電后即處于實地址方式。實地址方式具有與8086相同的特性,但允許訪問32位寄存器組。其尋址機制、存儲器訪問范圍和中斷控制等都與8086相同。 在實地址方式中默認(rèn)的操作數(shù)是16位數(shù),段的大小是64KB。則32位有效地址必須

18、是比0000FFFFH小的值。為了使用32位寄存器和尋址方式必須用超越前綴。實地址方式尋址方法如下圖所示。24 3.1 3.1 實地址方式實地址方式 實地址方式的首要目的是安排32位微處理器進(jìn)入保護方式。在實地址方式運行時,最大的存儲器訪問范圍是1MB。因此,僅A0A19地址線有效,A20A31地址線是高電平。 因為,在實地址方式運行時,不允許分頁,物理地址是由相應(yīng)的段寄存器內(nèi)容:左移4位;再加上指定的偏移量而形成。這也與8086 CPU相同。在實地址方式中,存儲器內(nèi)保留兩個固定的區(qū)域,即系統(tǒng)初始化區(qū)和中斷向量表。FFFFFFF0HFFFFFFFFH為系統(tǒng)初始化保留區(qū),C0000H003FFH

19、為中斷向量表,對256級中斷的每一級都有一個相應(yīng)的4字節(jié)跳轉(zhuǎn)向量。25 3.1 3.1 實地址方式實地址方式1. 32位微處理器的地址空間 32位微處理器有3種不同方式的地址空間:邏輯空間、線性空間和物理空間。它可以訪問232字節(jié)的物理存儲器,但它支持多個任務(wù)時,每個任務(wù)又能得到最大為246字節(jié)。這就出現(xiàn)了232字節(jié)的物理存儲器如何去分配給多個任務(wù)的存儲器管理問題。 物理存儲器是CPU可訪問的存儲器空間,其容量由CPU的地址總線寬度所決定;而虛擬存儲器是程序占有的空間,它的容量是由CPU內(nèi)部結(jié)構(gòu)所決定。 段部件將邏輯地址空間轉(zhuǎn)換為32位的線性地址空間。如果不使用分頁部件,則32位線性地址就對應(yīng)

20、著物理地址。分頁部件能將線性地址空間轉(zhuǎn)換為物理地址空間。26 3.1 3.1 實地址方式實地址方式 對于8086 CPU來說,程序占有的存儲器與CPU可以訪問的存儲器是一致的,其容量都是1MB。但對32位微處理器來說,物理存儲器與虛擬存儲器是有區(qū)別的,其容量也不同。用戶在寫程序時,其程序是存在磁盤里,因此可寫246字節(jié)的程序。然而,在執(zhí)行程序時,一定要把程序加載到物理存儲器。但是,物理存儲器的容量只有232字節(jié)。因此,存在著物理存儲器的如何分配問題,即存儲器管理。這種存儲器管理是由操作系統(tǒng)進(jìn)行,但32位微處理器內(nèi)部固件就有支持存儲器管理的功能。 我們在對程序進(jìn)行編碼時,不可能直接指定物理存儲器

21、地址。這時,程序占有的是虛擬存儲器地址。該地址是由程序指定,所以也叫做“邏輯地址”。27 3.1 3.1 實地址方式實地址方式 32位微處理器中程序占有的虛擬存儲器如下圖所示。它與8086 相同,程序可以是有多段構(gòu)成的。下圖只表示了一個有OMEGA變量的數(shù)據(jù)段。在程序中OMEGA的虛擬存儲器地址由邏輯地址所決定。28 3.1 3.1 實地址方式實地址方式例如,要把AL寄存器內(nèi)容傳送到這個位置,就要采用如下指令: MOVFS:OMEGA,ALFS:OMEGA是變量名為OMEGA的虛擬存儲器地址的邏輯地址格式。像8086 CPU那樣,OMEGA是存入該段的起始地址到OMEGA位置的偏移地址中。在8

22、086 中,段寄存器FS是段基址;而在32位微處理器中,則是段選擇字(在本節(jié)的“段寄存器”中還要講解)。段選擇字的作用是間接地來指定段。 所以,用程序來處理的所有地址都是以邏輯地址格式指定的虛擬地址。32位微處理器實際使用的FS寄存器是其中的高14位。因此,虛擬地址共可有46位,虛擬存儲器地址的空間范圍也就是246字節(jié)。29 3.1 3.1 實地址方式實地址方式 那么,32位微處理器對程序指定的46位虛擬地址又是怎樣變換成為32位物理地址的呢?因為在32位微處理器里有了一個“分段部件”,如下圖所示。它能把46位虛擬地址變換成為32位物理地址。我們也可用8086中邏輯地址變換為物理地址的方法來理

23、解32位微處理器的變換,如下圖所示。30 3.1 3.1 實地址方式實地址方式我們也可用8086 CPU中邏輯地址變換為物理地址的方法來理解32位微處理器的變換,如下圖所示。31 3.1 3.1 實地址方式實地址方式 在8086中,段寄存器的內(nèi)容就是段的段基址,為了換算成起始地址,我們把它左移4位(16)即可。但對32位微處理器,用16位段選擇字變換成為32位段起始地址就比較復(fù)雜。 32位CPU的選擇字共有16位,除上述高14位作為虛擬存儲器地址空間外,其最后兩位是請求保護特權(quán)級(RPL)。這要在本課程的“保護方式”中進(jìn)行講解。32 3.1 3.1 實地址方式實地址方式2. 描述符表 在32位

24、微處理器里,由虛擬地址變換為物理地址時需要用描述符表。描述符表與程序一起保存在虛擬存儲器中,程序執(zhí)行時都要裝入物理存儲器。在描述符表里描述符記載的僅是程序段數(shù),如下圖所示。描述符長度由8個字節(jié)組成。它記載著段的起始地址、大小和屬性。CPU根據(jù)段寄存器中的的選擇字從描述符表選定一個描述符,讀取存于其描述符中的起始地址等參數(shù),進(jìn)行虛擬地址到物理地址的變換。33 3.1 3.1 實地址方式實地址方式 為了讀取描述符中的起始地址,一定先要知道描述符的物理地址。所以,在CPU中有描述符表寄存器,其中存有描述符表的起始地址。計算的方法如下:(選擇字高13位)8+(描述符表的起始地址)=描述符的物理地址其中

25、,乘以8是因為描述符由8個字節(jié)組成。這樣,利用選擇字,從描述符表可以找到段的起始地址,也稱為段的首地址??梢哉f,選擇字的功能是用間接方法指定段的首地址,也可理解為選擇字在確定段首址時,起到索引的作用。 如上所述,32位微處理器的程序在執(zhí)行時需要有把虛擬地址(也稱為邏輯地址)變換為物理地址的描述符表,而32位微處理器的作用是根據(jù)描述符表把程序指定的虛擬地址變換為物理地址。 虛擬地址(邏輯地址)用以下格式表示: 段寄存器:偏移地址 例如,F(xiàn)S:OMEGA所表示的地址是虛擬存儲器中某位置的地址,不是實際物理地址,是虛擬地址。34 3.1 3.1 實地址方式實地址方式3.段寄存器 32位微處理器是根據(jù)

26、描述符表實現(xiàn)把虛擬地址變換成物理地址。訪問描述符表就要花費時間,使CPU速度降低。為此,采用段寄存器來替代描述符表。 32位微處理器的段寄存器由16位選擇字寄存器與64位(包括12位的段屬性、32位的段首址和20位的界限即段長度)描述符寄存器構(gòu)成,描述符寄存器中的內(nèi)容是復(fù)制記載在描述符表中的描述符。因為只有CS,SS,DS,ES,F(xiàn)S和GS 6個選擇字寄存器,所以也只能復(fù)制6條描述符。這樣,就把虛擬地址變換成物理地址的訪問存儲器,變成為訪問描述符寄存器,所以速度很快。 35 3.2 3.2 保護方式保護方式3.2.1 32位微處理器的保護機制 32位微處理器為了支持多任務(wù)操作系統(tǒng),以4個特權(quán)級

27、來隔離或保護各用戶及操作系統(tǒng)。不同等級的特權(quán)級不能訪問所規(guī)定區(qū)域外的單元,此外,數(shù)據(jù)也不能寫到禁止寫入的段里。 32位微處理器提供的保護機制主要包括分段保護及分頁保護。1. 特權(quán)級及特權(quán)級規(guī)則(1) 保護方式中的幾個術(shù)語PL (protected level) 特權(quán)級。分為PL0(最高級)PL3(最低級) 4個特權(quán)級。RPL 請求特權(quán)級。RPL由選擇字的最低兩位決定。DPL 特權(quán)級描述符。DPL由描述符的訪問權(quán)字節(jié)的第5和第6兩位決定。CPL 當(dāng)前特權(quán)級,是當(dāng)前正在執(zhí)行任務(wù)的特權(quán)級。它相當(dāng)于正執(zhí)行代碼段的優(yōu)先級。CPL由CS的最低兩位來決定。EPL 有效特權(quán)級。 EPL是RPL和DPL的最低特

28、權(quán)級。此外,對一個程序進(jìn)行的實例稱為任務(wù)(Task)。36 3.2 3.2 保護方式保護方式(2) 保護方式的概念 32位微處理器用保護權(quán)等級來劃分計算機中的各類軟件。4級特權(quán)在計算機中形成的保護體制如下:微處理器內(nèi)部的特權(quán)級是PL=0,為微處理器服務(wù)的I/O系統(tǒng)的特權(quán)級是PL=1,操作系統(tǒng)(OS)的特權(quán)級是PL=2,應(yīng)用軟件的特權(quán)級最低,是PL=3。它們之間的轉(zhuǎn)換是由CPU強制實施的。(3) 特權(quán)級的運作規(guī)則 32位微處理器按下述規(guī)則對某任務(wù)各級之間的數(shù)據(jù)和過程進(jìn)行訪問: 存儲在特權(quán)級為PL段中的數(shù)據(jù),僅可由至少像PL同樣特權(quán)級上執(zhí)行的代碼來訪問。 具有特權(quán)級為PL的代碼段或過程可由與PL相

29、同或低于PL特權(quán)級的任務(wù)來調(diào)用。37 3.2 3.2 保護方式保護方式2. 特權(quán)級分類 為了保證計算機系統(tǒng)在多任務(wù)下工作時的可靠性,32位微處理器在許多操作中都設(shè)置了各自的特權(quán)級。(1) 任務(wù)特權(quán)級在任一時刻,微處理器總是運行當(dāng)前特權(quán)級CPL指定的任務(wù)。一個任務(wù)的CPL僅可通過段描述符來改變。因此,一個處于PL=3運行的應(yīng)用程序可以調(diào)用在PL=1上的操作系統(tǒng)子程序,并設(shè)置該任務(wù)的CPL=1,直到操作系統(tǒng)的子程序執(zhí)行完。(2) 請求特權(quán)級RPL僅用于建立一個比某一段所用的現(xiàn)行特權(quán)級低的特權(quán)級。該特權(quán)級稱作任務(wù)的有效特權(quán)級(EPL)。EPL定義為任務(wù)的CPL和選擇字中RPL較低的特權(quán)級。(3) I

30、/O特權(quán)級(IOPL)由EFLAG寄存器中的兩位(12及13位)來決定。該特權(quán)級定義了可以無條件執(zhí)行的I/O指令的最低特權(quán)級。38 3.2 3.2 保護方式保護方式3.2.2 保護方式的尋址方法 保護方式可以擴大線性地址空間,從4GB擴大到64TB,可運行虛擬存儲器中的程序。另外,保護方式提供了精巧復(fù)雜的內(nèi)存管理和硬件輔助的保護機構(gòu)。在保護方式下可以使用支持多任務(wù)操作系統(tǒng)。從學(xué)習(xí)32位微處理器的角度來看,保護方式和實地址方式間的主要差別是增加了地址空間和一個不同的尋址機制。在保護方式下邏輯地址也由16位的選擇字和位的選擇字和32位的偏移地址位的偏移地址兩部分組成。16位的選擇字確定的段起始地址

31、加上一個32位的偏移地址以形成一個32位線性地址。如果分頁被禁止,這個線性地址就是物理地址;否則,這個線性地址經(jīng)分頁部件轉(zhuǎn)換為物理地址。39 3.2 3.2 保護方式保護方式3.2.3 分頁分頁是在保護方式下的一種存儲器管理方式,分頁是在分段的基礎(chǔ)上進(jìn)行的。它與分段不同,分頁是把程序和數(shù)據(jù)分為許多大小相同的頁 (稱為頁面);而分段是將它們分成可變長度的段。每個頁面的長度均為4KB,頁面起始地址的低12位為全0。分頁機制用兩級表形式,在分頁部件中把來自分段單元的線性地址轉(zhuǎn)換為物理地址。分頁部件由頁目錄表、頁表及頁面組成。1.頁表將頁面(起始)地址的高20位和該頁面的標(biāo)志位或保護信息構(gòu)成頁表項,其

32、內(nèi)容如下圖所示。將1024個頁表項集中排列存放構(gòu)成頁表,頁表中的每一項占4字節(jié),整個頁表占4KB空間。在頁表中選取1024個頁表項中的一個的10位地址存于線性地址的中間10位。 頁表的第1位(R/W)和第2位(U/S)可用來保護該頁面。 40 3.2 3.2 保護方式保護方式2.頁目錄表 每一個頁表地址,即頁表起始地址的低12位為全0,同頁表項一樣,將頁表(起始)地址構(gòu)成頁目錄項,其內(nèi)容如下圖所示。將1024個頁目錄項集中排列存放構(gòu)成頁目錄表。頁目錄表中的每一項也占4字節(jié),整個頁目錄表占4KB空間。在頁目錄表中選取1024個頁目錄項中的一個的10位地址存于線性地址的高10位。頁目錄表的起始地址

33、存放于控制寄存器組的CR3中。CR3中的低12位總為0,以保證頁目錄始終按頁面對齊。 頁目錄表中的第1位(R/W)和第2位(U/S)可用來保護頁目錄中所包括的全部頁面。 41 3.2.4 線性地址變換成物理地址 線性地址變換成物理地址的過程如下圖所示。 將分段部件提供的32位線性地址的高10位乘以4與控制寄存器R3中的頁目錄表的起始地址相加得到頁目錄項的地址。該目錄項中的高20位就是頁表起始地址的高20位,將它邏輯左移12位得到頁表的起始地址,將線性地址的中間10位左移2位得到頁表項在頁表中的偏移地址,再將這2個地址相加得到頁表項的地址。該頁表項的高20位就是頁面起始地址的高20位,將它邏輯左

34、移12位與線性地址中的低12位相加,即生成指向某一存儲單元的32位物理地址。生成的物理地址送總線接口部件,以訪問存儲器的某單元。3.2 3.2 保護方式保護方式42 3.2 3.2 保護方式保護方式43 把線性地址4834056H變換為物理地址30000056H的實例如下圖所示。3.2 3.2 保護方式保護方式44 控制寄存器CR3中的5000H是頁目錄表的起始地址。線性地址的高10位 (12H) 乘以4即412H,得到頁目錄項在頁目錄表中的偏移地址48H。因此,頁目錄項的物理地址為5048H。雙字單元5048H(5048H504BH)中的內(nèi)容為0000BXXXH。線性地址的中間10位(34H

35、)乘以4即434H,求得頁表項在頁表中的偏移地址0D0H,與頁表的起始地址0000B000H相加,求得頁表項的物理地址0B0D0H。雙字單元0B0D0H的內(nèi)容為03000XXXH,03000000H就是頁面起始地址,把它與線性地址的低12位(56H) 相加,就形成物理地址3000056H。3.2 3.2 保護方式保護方式45 3.3 3.3 虛擬虛擬8086方式方式 32位微處理器可以在實地址方式與虛擬8086方式(虛擬方式)下運行8086應(yīng)用程序。在這兩種方式中,虛擬方式為系統(tǒng)設(shè)計者提供了最大的靈活性。在虛擬方式下,運行8086程序可以盡量利用32位微處理器的保護機構(gòu)。尤其是32位微處理器允

36、許同時執(zhí)行8086的操作系統(tǒng)及其應(yīng)用程序和32位微處理器操作系統(tǒng)的應(yīng)用程序。從而,在一個多用戶的80X86計算機中,一個用戶可以運行Windows版本,另一個用戶可以使用MS-DOS,而第3個用戶則可以運行多個Unix資源及其應(yīng)用程序等。在這種環(huán)境下的每一個用戶就好像完全擁有該計算機資源。46 3.3 3.3 虛擬虛擬8086方式方式1虛擬方式的尋址機制 32位微處理器的實地址方式與保護方式的一個主要差別是對段選擇字的不同解釋。當(dāng)處理器在虛擬8086方式下工作時,段寄存器與實地址方式是一樣的。段寄存器的內(nèi)容左移4位后與偏移量相加形成段基本線性地址。 32位微處理器允許操作系統(tǒng)在每一個任務(wù)內(nèi)指定

37、哪些程序使用8086方式的地址機構(gòu),哪些程序則使用保護方式尋址。利用分頁,可以把虛擬方式任務(wù)的1MB地址空間映射到32位微處理器的4GB線性地址空間的任一空間中去。像實地址方式一樣,若有效地址不能超出64KB。然而,這些限制并不是很重要的,因為大多數(shù)在虛擬8086方式下運行的程序是目前已有的8086應(yīng)用程序。 47 3.3 3.3 虛擬虛擬8086方式方式2虛擬方式下的分頁 分頁硬件允許同時運行多個虛擬任務(wù),并提供保護及操作系統(tǒng)隔離。盡管不是運行虛擬方式任務(wù)一定要采用分頁,但是對于運行多個虛擬任務(wù)或把虛擬方式任務(wù)的地址重新分配到大于1MB的物理地址空間上時需要分頁部件。 分頁機制把虛擬方式的程

38、序產(chǎn)生的20位線性地址分成256個頁面。每一頁面可以安排在32位微處理器4GB物理地址空間的任何位置上。除此以外,由于是通過一個任務(wù)的切換來裝載頁目錄起始地址寄存器的,所以每一個虛擬方式下的任務(wù)可以利用不同的映射方式把頁面映射到不同的物理地址上。 最后一點要指出的是,分頁機制允許多個8086應(yīng)用程序共享8086操作系統(tǒng)。48 3.3 3.3 虛擬虛擬8086方式方式3虛擬方式下的保護 所有的虛擬8086方式程序都是在特權(quán)級3下運行的,這是最低特權(quán)級。這樣的話,虛擬8086方式程序要服從所有的保護方式所定義的保護檢查(這與實地址方式不同,它是在特權(quán)級0下執(zhí)行的,這是最高的特權(quán)級)。因此,在虛擬8

39、086方式下,要想執(zhí)行一條賦予了特權(quán)級的指令會導(dǎo)致系統(tǒng)故障。 有些特權(quán)級的指令,它們僅可在特權(quán)級0下執(zhí)行的。因此,要想使這些指令在虛擬8086方式下(或當(dāng)CPL0)執(zhí)行將導(dǎo)致系統(tǒng)故障。也有些指令,特別是那些應(yīng)用于多任務(wù)方式和保護方式的指令,只能在保護方式中執(zhí)行。因此,要想使下面的指令在實地址方式或虛擬8086方式下執(zhí)行會產(chǎn)生系統(tǒng)故障。 49 3.3 3.3 虛擬虛擬8086方式方式4虛擬方式中的中斷處理 為了完全地支持8086的仿真,虛擬8086方式中的中斷是在一個獨特的方式中進(jìn)行處理的。當(dāng)在虛擬方式中運行時,所有的中斷都包括一個返回主32位微處理器操作系統(tǒng)的特權(quán)級變化。中斷是來自保護方式應(yīng)用

40、程序還是虛擬方式程序是由32位微處理器操作系統(tǒng)通過檢查放在堆棧中的EFLAGS的映像中的VM位來加以確定的。502 2 1處理器微處理器3232位微處理器的地址總線和數(shù)據(jù)總線位微處理器的地址總線和數(shù)據(jù)總線 32 32位微處理器的工作方式位微處理器的工作方式5 5 80486 80486微處理器微處理器PentiumPentium微處理器微處理器 3 34 451 內(nèi)部數(shù)據(jù)總線為內(nèi)部數(shù)據(jù)總線為6464位,外部數(shù)據(jù)總線為位,外部數(shù)據(jù)總線為3232位,位,地址總線為地址總線為3232位位) ) 微處理器的組成:微處理器的組成: 總線接口單元、指令譯碼單元總線接口單元、指令譯

41、碼單元 指令預(yù)取單元、執(zhí)行單元指令預(yù)取單元、執(zhí)行單元 分段單元分段單元 分頁單元以及浮點處理單元(分頁單元以及浮點處理單元(FPUFPU) 高速緩存(高速緩存(Cache memoryCache memory)4.1 804864.1 80486的結(jié)構(gòu)的結(jié)構(gòu)52 新增加新增加3 3個測試寄存器個測試寄存器TR3TR3TR5TR5用于片內(nèi)用于片內(nèi)CacheCache測試以及浮點處理單元的浮點寄存器測試以及浮點處理單元的浮點寄存器 8048680486除了保留除了保留8038680386的所有標(biāo)志外,在的所有標(biāo)志外,在D18D18位位增加了對準(zhǔn)檢查標(biāo)志增加了對準(zhǔn)檢查標(biāo)志AC(alignment c

42、heck)AC(alignment check)4.2 804864.2 80486的寄存器的寄存器532 2 4 48038680386微處理器微處理器3232位微處理器的地址總線和數(shù)據(jù)總線位微處理器的地址總線和數(shù)據(jù)總線 32 32位微處理器的工作方式位微處理器的工作方式1 1 80486 80486微處理器微處理器PentiumPentium微處理器微處理器 3 35 554 Pentium Pentium微處理器是一種最先進(jìn)的微處理器是一種最先進(jìn)的3232位微處理器。它位微處理器。它幾乎具有兩臺幾乎具有兩臺8048680486的功能。的功能。55 5.1 Pentium5.1 Penti

43、um微處理器的結(jié)構(gòu)微處理器的結(jié)構(gòu)561.1.總線接口單元總線接口單元 總線接口單元實現(xiàn)微處理器與微型計算機系統(tǒng)總總線接口單元實現(xiàn)微處理器與微型計算機系統(tǒng)總線的連接,其中包括線的連接,其中包括6464位數(shù)據(jù)線、位數(shù)據(jù)線、3232位地址線和眾多位地址線和眾多的信號線,以此實現(xiàn)微處理器與外部的信息交換。的信號線,以此實現(xiàn)微處理器與外部的信息交換。PentiumPentium微處理器與外部交換數(shù)據(jù)可以是微處理器與外部交換數(shù)據(jù)可以是6464位還可以位還可以是是3232位、位、1616位或者位或者8 8位。位。5.1 Pentium5.1 Pentium微處理器的結(jié)構(gòu)微處理器的結(jié)構(gòu)572.2.分段單元和分

44、頁單元分段單元和分頁單元 分段單元將程序提供的邏輯地址轉(zhuǎn)換為線性地址,分段單元將程序提供的邏輯地址轉(zhuǎn)換為線性地址,分頁單元將線性地址轉(zhuǎn)換為物理地址。分頁單元將線性地址轉(zhuǎn)換為物理地址。 分頁是將段分為多個固定大小的頁面分頁是將段分為多個固定大小的頁面( (通常為通常為4KB)4KB),分頁支持虛擬存儲器環(huán)境。內(nèi)存中只保留程序訪問的分頁支持虛擬存儲器環(huán)境。內(nèi)存中只保留程序訪問的頁面,而眾多的頁面被存儲在磁盤中。當(dāng)程序要訪問頁面,而眾多的頁面被存儲在磁盤中。當(dāng)程序要訪問線性地址空間中的某個地址時,分頁單元先將線性地線性地址空間中的某個地址時,分頁單元先將線性地址轉(zhuǎn)換為存儲器的物理地址,然后執(zhí)行對該地

45、址的讀址轉(zhuǎn)換為存儲器的物理地址,然后執(zhí)行對該地址的讀操作或?qū)懖僮?。如果所訪問的頁面不在物理內(nèi)存中,操作或?qū)懖僮?。如果所訪問的頁面不在物理內(nèi)存中,微處理器就會暫時中斷該程序的執(zhí)行,由操作系統(tǒng)將微處理器就會暫時中斷該程序的執(zhí)行,由操作系統(tǒng)將所需的頁面從磁盤讀入物理內(nèi)存中,然后接著執(zhí)行被所需的頁面從磁盤讀入物理內(nèi)存中,然后接著執(zhí)行被中斷的程序。中斷的程序。5.1 Pentium5.1 Pentium微處理器的結(jié)構(gòu)微處理器的結(jié)構(gòu)583.U3.U流水線和流水線和V V流水線流水線 Pentium Pentium采用兩條流水線,這兩條流水線都擁有采用兩條流水線,這兩條流水線都擁有自己的算術(shù)邏輯單元自己的算

46、術(shù)邏輯單元ALUALU、地址生成電路和數(shù)據(jù)、地址生成電路和數(shù)據(jù)CacheCache的接口。這種雙流水線結(jié)構(gòu)允許的接口。這種雙流水線結(jié)構(gòu)允許PentiumPentium可以可以一次執(zhí)行兩條指令,每條流水線中執(zhí)行一條。一次執(zhí)行兩條指令,每條流水線中執(zhí)行一條。4.4.指令指令CacheCache和數(shù)據(jù)和數(shù)據(jù)CacheCache 在在PentiumPentium中,指令中,指令CacheCache和數(shù)據(jù)和數(shù)據(jù)CacheCache兩者分開,兩者分開,從而減少了指令預(yù)取和數(shù)據(jù)存取操作之間可能發(fā)生從而減少了指令預(yù)取和數(shù)據(jù)存取操作之間可能發(fā)生的沖突,并可提高命中率。的沖突,并可提高命中率。PentiumPen

47、tium的數(shù)據(jù)的數(shù)據(jù)CacheCache有有兩個接口,分別與兩個接口,分別與U U和和V V兩條流水線相連,以便同時兩條流水線相連,以便同時和兩條流水線交換數(shù)據(jù)。和兩條流水線交換數(shù)據(jù)。5.1 Pentium5.1 Pentium微處理器的結(jié)構(gòu)微處理器的結(jié)構(gòu)595.5.指令預(yù)取單元、指令譯碼單元和控制指令預(yù)取單元、指令譯碼單元和控制ROMROM 指令預(yù)取單元從指令指令預(yù)取單元從指令CacheCache中預(yù)先取指令,每次中預(yù)先取指令,每次取兩條指令。如果是簡單指令,通過指令譯碼單元取兩條指令。如果是簡單指令,通過指令譯碼單元譯碼后,將兩條指令分別送到譯碼后,將兩條指令分別送到U U流水線和流水線和

48、V V流水線執(zhí)流水線執(zhí)行。如果是復(fù)雜指令,通過控制行。如果是復(fù)雜指令,通過控制ROMROM將其轉(zhuǎn)換成對應(yīng)將其轉(zhuǎn)換成對應(yīng)的一系列微指令,再送到的一系列微指令,再送到U U流水線和流水線和V V流水線執(zhí)行。流水線執(zhí)行。復(fù)雜指令對應(yīng)的微指令存放在控制復(fù)雜指令對應(yīng)的微指令存放在控制ROMROM中。微指令是中。微指令是微處理器能夠直接執(zhí)行的指令,它的長度是固定微處理器能夠直接執(zhí)行的指令,它的長度是固定的,因此很容易在流水線中進(jìn)行處理。的,因此很容易在流水線中進(jìn)行處理。5.1 Pentium5.1 Pentium微處理器的結(jié)構(gòu)微處理器的結(jié)構(gòu)606. 6. 控制單元控制單元 控制單元的功能是通過對來自指令譯

49、碼單元和和控制單元的功能是通過對來自指令譯碼單元和和控制控制ROMROM中微程序的解析,控制中微程序的解析,控制U U流水線、流水線、V V流水線和流水線和浮點處理單元的正常運行。浮點處理單元的正常運行。7.7.分支轉(zhuǎn)移目標(biāo)緩沖器分支轉(zhuǎn)移目標(biāo)緩沖器 分支轉(zhuǎn)移目標(biāo)緩沖器在遇到分支轉(zhuǎn)移指令時用來分支轉(zhuǎn)移目標(biāo)緩沖器在遇到分支轉(zhuǎn)移指令時用來預(yù)測轉(zhuǎn)移是否發(fā)生,并據(jù)此為分支指令處的指令提供預(yù)測轉(zhuǎn)移是否發(fā)生,并據(jù)此為分支指令處的指令提供預(yù)取地址。預(yù)取地址。8.8.浮點處理單元浮點處理單元 浮點處理單元主要用于浮點運算,使得浮點運算浮點處理單元主要用于浮點運算,使得浮點運算的速度得到提高。的速度得到提高。5.1 Pentium5.1 Pentium微處理器的結(jié)構(gòu)微處理器的結(jié)構(gòu)61 5.2 Pentium5.2 Pentium微處理器的先進(jìn)技術(shù)微處理器的先進(jìn)技術(shù)(1)(1)

溫馨提示

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

評論

0/150

提交評論