版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
3.1實(shí)模式下的存儲(chǔ)器尋址
3.2保護(hù)模式下的存儲(chǔ)器尋址
3.3本章小結(jié)
習(xí)題與思考題3.1.1段地址和偏移地址
8086/8088的可尋址空間為1MB,因此,對(duì)整個(gè)存儲(chǔ)器空間尋址需要20位的地址碼,而8086/8088CPU內(nèi)的所有寄存器都是16位的,只能尋址64KB。為了能對(duì)1MB的存儲(chǔ)器進(jìn)行尋址(即訪問每個(gè)存儲(chǔ)單元),8086/8088系統(tǒng)采用了存儲(chǔ)器分段技術(shù),即將1MB的存儲(chǔ)器空間分成若干個(gè)邏輯段,每個(gè)段最長(zhǎng)64KB,段內(nèi)地址是連續(xù)的,仍可采用16位尋址方法。邏輯段可在整個(gè)存儲(chǔ)空間內(nèi)浮動(dòng),段與段之間可以是連續(xù)的,也可以是分開的或重疊的,但段的起始地址(稱為段地址或段基地址)必須從能被16位整除的地址開始,即每個(gè)段的首地址的低4位必須為0。這樣便可將段地址的高16位放在CS、DS、SS和ES這四個(gè)段寄存器中。3.1實(shí)模式下的存儲(chǔ)器尋址由上述分段概述可知,任何一個(gè)存儲(chǔ)單元可以被唯一地包含在一個(gè)邏輯段中,也可以被包含在兩個(gè)相互重疊的邏輯段中。存儲(chǔ)單元的地址可以用相對(duì)于段地址的位移量來表示。這個(gè)位移量稱為“偏移地址”,其最大長(zhǎng)度為16位。因此,只要得到一個(gè)存儲(chǔ)單元的段地址和偏移地址,就可以對(duì)該單元進(jìn)行訪問。段地址(高16位)存放在段寄存器中,偏移地址可以放在指令指示器IP中,或存放在16位的通用寄存器中。對(duì)任何一個(gè)存儲(chǔ)單元進(jìn)行訪問時(shí),都必須用20位地址,那么對(duì)每個(gè)存儲(chǔ)單元存在兩種地址:一是由段地址和偏移地址組成的地址(邏輯地址);另一個(gè)地址就是我們所說的20位的實(shí)際訪問地址(物理地址)。所謂邏輯地址,就是程序中使用的地址,它由段地址和偏移地址組成。在邏輯地址中,段地址和偏移地址都是16位的無符號(hào)二進(jìn)制數(shù)。程序設(shè)計(jì)時(shí)使用邏輯地址。所謂物理地址,就是存儲(chǔ)器的絕對(duì)地址(實(shí)際地址),它從00000H~0FFFFFH,是CPU訪問存儲(chǔ)器時(shí)由地址總線發(fā)出的地址。顯然,實(shí)際工作時(shí),CPU訪問存儲(chǔ)器時(shí)要使用物理地址。那么,如何從16位段地址和16位偏移地址組成的邏輯地址中得到20位的物理地址呢?所謂存儲(chǔ)器管理,就是能將程序中的邏輯地址轉(zhuǎn)移為物理地址的機(jī)構(gòu),由它實(shí)現(xiàn)從邏輯地址到物理地址的變換。
存儲(chǔ)單元物理地址的計(jì)算如圖3.1(a)、(b)所示,即:
物理地址?=?段地址?*?16位?+?偏移地址圖3.1物理地址的形成過程和計(jì)算方法3.1.2程序重定位的實(shí)現(xiàn)
段加偏移尋址機(jī)制似乎非常復(fù)雜,但它給系統(tǒng)帶來了許多優(yōu)點(diǎn)。這種復(fù)雜的段加偏移的尋址機(jī)制允許程序在存儲(chǔ)器內(nèi)重定位,允許為在實(shí)模式下運(yùn)行而編寫的程序在保護(hù)模式下也可以運(yùn)行??芍囟ㄎ怀绦蚴且粋€(gè)可以放在內(nèi)存任何區(qū)域,不加修改而仍能執(zhí)行的程序??芍囟ㄎ坏臄?shù)據(jù)是可以放在內(nèi)存任何區(qū)域,且不需要修改就可以被程序應(yīng)用的數(shù)據(jù)。在段加偏移尋址機(jī)制下,程序在邏輯段中的邏輯地址不具有實(shí)際意義,只有對(duì)應(yīng)起具體的段地址才能映射到具體的物理空間。因此,程序在不同的計(jì)算機(jī)系統(tǒng)中,不需要考慮段內(nèi)地址,而只需將段地址重定位,即可在新的計(jì)算機(jī)系統(tǒng)中運(yùn)行,而這可以在硬件和操作系統(tǒng)中實(shí)現(xiàn),對(duì)程序員可以是透明的。段加偏移尋址機(jī)制對(duì)包含不同存儲(chǔ)器區(qū)域的通用計(jì)算機(jī)系統(tǒng)是非常理想的,因?yàn)楦鞣N微機(jī)的存儲(chǔ)器結(jié)構(gòu)并不相同,但要求軟件和數(shù)據(jù)能夠重新定位。若沒有這樣的特性,則一個(gè)程序在移動(dòng)之前必須大范圍地重寫或更改,或?yàn)樵S多不同配置的計(jì)算機(jī)系統(tǒng)設(shè)計(jì)許多程序文本,因而需要大量的時(shí)間。在80286以后的處理器中,出于擴(kuò)展存儲(chǔ)空間的需要,系統(tǒng)地址線也在不斷的增加。80286為24條,尋址空間16MB,可以采用虛擬存儲(chǔ)器的工作方式;80386以后的處理器全面進(jìn)入32位時(shí)代,地址線擴(kuò)展到32條,尋址空間達(dá)4GB。在這種情況下,實(shí)模式除去兼容性外,已不再適應(yīng)計(jì)算機(jī)的發(fā)展要求,由此產(chǎn)生了保護(hù)模式。3.2保護(hù)模式下的存儲(chǔ)器尋址在保護(hù)模式下,一個(gè)存儲(chǔ)單元的地址也由段地址和偏移地址兩部分組成。從段內(nèi)偏移量來說,除能擴(kuò)展到全地址(32位)外,與實(shí)模式區(qū)別不大,尋址方式的根本區(qū)別在于如何圈定段地址。在實(shí)模式下,段寄存器(16位)的內(nèi)容乘以24作為段地址,故段地址是20位的,只能尋址1MB。在保護(hù)模式下,段寄存器出于兼容性考慮延續(xù)了16位結(jié)構(gòu),而段地址為32位,此時(shí)無法用段寄存器存儲(chǔ)內(nèi)容表示。為了解決這個(gè)問題,段寄存器內(nèi)存放的內(nèi)容不再為段地址,而是包括選擇子(Selector)和其他字段的數(shù)據(jù)組合。選擇子(13位)用于選擇內(nèi)存描述表內(nèi)的一個(gè)描述符,描述表內(nèi)最多可包含16384個(gè)描述符。描述符(Descriptor)是用于描述存儲(chǔ)器段的地址(32位)、長(zhǎng)度和訪問權(quán)限的數(shù)據(jù)結(jié)構(gòu),每一個(gè)描述符可對(duì)應(yīng)一個(gè)存儲(chǔ)段。保護(hù)模式下的存儲(chǔ)器尋址示意圖如圖3.2所示。圖3.2保護(hù)模式下的存儲(chǔ)器尋址示意圖由段地址(32位)和偏移地址(32位)形成的地址稱為線性地址(32位),若不采用分頁機(jī)制,則此線性地址即為物理地址。微處理器片內(nèi)有分頁的MMU,當(dāng)啟用分頁機(jī)制時(shí),經(jīng)過分頁機(jī)制可以把線性地址轉(zhuǎn)換為存儲(chǔ)器的物理地址。
對(duì)32位的線性地址,若基地址空間為4GB,頁面大小為4KB,則會(huì)有1M個(gè)頁面。若是使用單級(jí)頁表,則1M個(gè)頁表項(xiàng)的頁表規(guī)模過于龐大。Pentium采用兩級(jí)頁表方式,將線性地址相鄰接的1K個(gè)頁面組成一組,使用一個(gè)1K個(gè)表項(xiàng)的頁表;這一組頁面,或說它們的頁表,在頁目錄表中有一對(duì)應(yīng)的頁目錄項(xiàng),頁目錄表有1K個(gè)表項(xiàng)。
分頁機(jī)制中,80386到Pentium處理器頁面均可采用4KB的頁面大小。此時(shí),32位的線性地址可分為:高10位為頁目錄號(hào),中間10位為頁面號(hào),低12位為頁內(nèi)字節(jié)偏移地址。3.2.1存儲(chǔ)器分段管理
1.選擇子
在保護(hù)模式下,段寄存器的功能如圖3.3所示。段寄存器包括13位的選擇子字段、表指示器位(TableIndicator,TI)和請(qǐng)求優(yōu)先級(jí)(RequestedPrivilegeLevel,RPL)字段。其中,13位的選擇子可從描述符表的213?=?8192個(gè)描述符中選擇一個(gè)。TI位選擇全局描述符表(TI?=?0)或局部描述符表(TI?=?1)。
由于偏移地址是16位長(zhǎng)的,因此一個(gè)段的最大容量為64KB。所以邏輯空間,也即虛擬空間為214
216=230=1GB。
而對(duì)于80386~PentiumⅣ,它的偏移地址為32位長(zhǎng),所以一個(gè)段的最大容量為4GB。因此虛擬地址空間為214
232=246=64TB。圖3.3保護(hù)模式下的段寄存器的內(nèi)容
2.描述符
在保護(hù)模式下的每一個(gè)段,都有一個(gè)相應(yīng)的描述符。描述符由8個(gè)字節(jié)組成,包含了段地址(32位)、段的大小(20位)、段的類型等一些主要特性,如圖3.4所示。圖3.480286~PentiumⅣ微處理器的描述符格式描述符主要有兩種類型:
(1)代碼段和數(shù)據(jù)段描述符。其格式規(guī)定了32位基地址、20位段界限。另有一粒度位G。當(dāng)G?=?0時(shí),表示段長(zhǎng)度以字節(jié)為粒度,20位段界限可定義段的大小為1M×1B=1MB;當(dāng)G?=?1時(shí),表示段長(zhǎng)度以頁為粒度,段的界限為1M頁,每頁包含4KB,可定義段的大小為1?M×4?KB?=4?GB。
例3-1
如果段的基地址為10000000H,界限為0000FH,求G位為0或1時(shí),段的結(jié)束地址。
解:當(dāng)G=0時(shí),界限為0000FH,段內(nèi)存儲(chǔ)空間以字節(jié)為粒度,段大小為003FFH×1B=1KB,即段內(nèi)尋址空間為00000H~003FFH,則段結(jié)束地址為
10000000H+003FFH=100003FFH
當(dāng)G=1時(shí),段內(nèi)存儲(chǔ)空間以頁為粒度,段大小為003FFH×4?KB=4MB,即段內(nèi)尋址空間為000000H~3FFFFFH,則段結(jié)束地址為
10000000H?+?003FFFFFH?=?103FFFFFH
(2)特種數(shù)據(jù)段和控制描述符。32位微處理器系統(tǒng)有兩種特殊數(shù)據(jù)段,即局部描述符表的描述符和任務(wù)狀態(tài)(TaskStautsSegment,TSS)的描述符。
描述符的格式規(guī)定了TYPE字段共4位,用此4位二進(jìn)制的值區(qū)分描述符的具體類型。
3.分段式存儲(chǔ)管理的優(yōu)缺點(diǎn)
分段式管理為用戶提供了一個(gè)二維的虛地址空間,反映了程序的邏輯結(jié)構(gòu),有利于段的動(dòng)態(tài)增長(zhǎng)以及共享和內(nèi)存保護(hù)等,大大地方便了用戶。
分段式存儲(chǔ)管理將內(nèi)存空間看做一個(gè)連續(xù)的書卷,應(yīng)用程序可以根據(jù)自身的大小,隨機(jī)從卷軸某一空閑區(qū)截取一段連續(xù)的存儲(chǔ)空間使用,這樣可以使程序重定位更加靈活。分段式存儲(chǔ)管理同時(shí)也存在著弊端。如果計(jì)算機(jī)經(jīng)過長(zhǎng)時(shí)間運(yùn)行,內(nèi)存空間被多道程序反復(fù)存取劃分,最終內(nèi)存空間將被駐留程序劃分成許多支離破碎的存取區(qū)塊,這些存儲(chǔ)區(qū)塊無法滿足新進(jìn)駐程序的需要,從而造成內(nèi)存空間的極大浪費(fèi)。如圖3.5所示,內(nèi)存空間經(jīng)過一段時(shí)間運(yùn)行以后,被劃分成了很多細(xì)小的空閑存儲(chǔ)空間(白色區(qū)域),當(dāng)有新的程序需要調(diào)入內(nèi)存時(shí),沒有一個(gè)空閑存儲(chǔ)空間可以滿足新程序20KB存儲(chǔ)空間的需求,這就造成了內(nèi)存空間的浪費(fèi)和使用效率的降低。圖3.5分段式存儲(chǔ)空間的分配3.2.2存儲(chǔ)器分頁管理
分頁管理將克服分段管理的缺點(diǎn),它把虛擬存儲(chǔ)空間和內(nèi)存物理空間都劃分為長(zhǎng)度為4KB的頁,頁的起點(diǎn)和終點(diǎn)地址都是固定的。
1.分頁寄存器
分頁機(jī)制的啟用是由微處理器中控制寄存器的內(nèi)容控制的??刂萍拇嫫鰿R0~CR3的內(nèi)容見圖3.6。圖3.6微處理器控制寄存器的結(jié)構(gòu)
2.存儲(chǔ)器分頁機(jī)制的組織
(1)物理內(nèi)存分頁:一個(gè)物理頁的大小為4KB,頁與頁互不重疊,只需要32位地址中的高20位來尋址物理頁。
(2)頁表:頁表中每一項(xiàng)內(nèi)容(每項(xiàng)4個(gè)字節(jié),32位)的高20位用來存放一個(gè)物理頁的起始物理地址,低12位放著一些關(guān)于該頁的其他信息。
(3)頁目錄:頁目錄中每一項(xiàng)內(nèi)容(每項(xiàng)4個(gè)字節(jié))的高20位用來存放一個(gè)頁表的起始物理地址,低12位存放該頁表的其他信息。
3.頁目錄項(xiàng)和頁表
頁目錄項(xiàng)和頁表項(xiàng)的格式是相同的,如圖3.7所示。
(1)?P(存在位):若P?=?1,則該頁被映射到物理內(nèi)存,可以進(jìn)行地址的轉(zhuǎn)換;若P?=?0,則該頁沒有被映射到物理內(nèi)存,不能進(jìn)行地址轉(zhuǎn)換。
(2)?W(寫位):指示該表項(xiàng)所指定的頁是否可讀、寫或執(zhí)行。若W?=?1,則對(duì)表項(xiàng)所指定的頁可進(jìn)行讀、寫或執(zhí)行;若W?=?0,則對(duì)表項(xiàng)所指定的頁可讀或執(zhí)行,但不能對(duì)該指定的頁寫入。圖3.7頁目錄項(xiàng)和頁表項(xiàng)格式
(3)?U/S(用戶/超級(jí)用戶位):指示該表項(xiàng)所指定的頁是否是用戶級(jí)頁。若U/S?=?1,則表項(xiàng)所指定的頁是用戶級(jí)頁,可由任何特權(quán)級(jí)下執(zhí)行的程序訪問;如果U/S?=?0,則表項(xiàng)所指定的頁是系統(tǒng)級(jí)頁,只能由在系統(tǒng)特權(quán)級(jí)0、1和2上執(zhí)行的程序訪問。
(4)?PWT(通寫位):如果PWT置1,則相關(guān)頁使用通寫策略;否則,采用回寫策略。
(5)?PCD(禁用高速緩沖位):如果PCD位被清除為0,則頁表或頁面可用高速緩存;若PCD置位,則禁用高速緩存。
(6)?A(訪問位):A?=?1,表示已訪問過對(duì)應(yīng)的物理頁。
(7)?D(臟位):對(duì)于頁目錄項(xiàng),D位未定義;對(duì)于頁表項(xiàng),D位用來記錄頁表項(xiàng)所描述的頁是否進(jìn)行過數(shù)據(jù)寫入。D?=?0,表示該頁中的內(nèi)容沒有被改動(dòng)過;D?=?1,表示該頁中的內(nèi)容已經(jīng)被改動(dòng)過(被寫過)。
4.轉(zhuǎn)換后備緩沖區(qū)
因?yàn)檫M(jìn)行4KB存儲(chǔ)器重新分頁的操作時(shí)要求使用存儲(chǔ)器內(nèi)的頁目錄和頁表,所以Intel構(gòu)造了一個(gè)稱為TLB的高速緩沖存儲(chǔ)器。在80486微處理器中,TLB保存了32個(gè)最近使用的頁轉(zhuǎn)換地址。因此如果訪問某個(gè)存儲(chǔ)區(qū),其地址已經(jīng)在TLB中,就不需要再訪問頁目錄和頁表,這就加速了程序的執(zhí)行。如果一個(gè)頁表轉(zhuǎn)換不在TLB中,則必須訪問頁目錄和頁表,這就需要額外的執(zhí)行時(shí)間。
5.分頁式內(nèi)存管理的優(yōu)缺點(diǎn)
分頁式內(nèi)存管理將內(nèi)存空間看做一本書,內(nèi)存空間被事先劃分為一個(gè)個(gè)大小相等的存儲(chǔ)頁。程序存儲(chǔ)時(shí),從某一頁起始位置開始存儲(chǔ),可以占用多頁存儲(chǔ)空間,頁與頁之間可以不相鄰。這樣,一些零散的存儲(chǔ)空間將會(huì)以頁的方式串聯(lián)成較為大的存儲(chǔ)空間,滿足后來程序的需要。但分頁式存儲(chǔ)中,程序占用的末頁一般會(huì)殘留大小不等的空閑區(qū),這些空閑區(qū)無法被利用,被稱為頁內(nèi)碎片。但總的來說,分頁機(jī)制有效地克服了碎片,提
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《古樸的音韻》課件
- 《以變革迎接未來》課件
- 2024高鐵車站建筑分包商協(xié)議范例
- 《公司KPI提取》課件
- 浙江經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院《計(jì)算機(jī)高級(jí)語言程序設(shè)計(jì)(C++)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度售樓處物業(yè)設(shè)施設(shè)備維護(hù)保養(yǎng)合同2篇
- 科研設(shè)計(jì)行業(yè)安全管理工作總結(jié)
- 2024年魚塘承包養(yǎng)殖產(chǎn)業(yè)鏈并購合同3篇
- 漁業(yè)養(yǎng)殖行業(yè)技術(shù)提升策略
- 《直流穩(wěn)壓》課件
- 2024年數(shù)學(xué)三年級(jí)上冊(cè)乘法分配律基礎(chǔ)練習(xí)題(含答案)
- 中煤電力有限公司招聘筆試題庫2024
- (必練)廣東省生態(tài)環(huán)境監(jiān)測(cè)專業(yè)技術(shù)人員大比武理論試題庫(含答案)
- 四年級(jí)數(shù)學(xué)脫式計(jì)算練習(xí)題100道
- GB/T 18029.1-2024輪椅車第1部分:靜態(tài)穩(wěn)定性的測(cè)定
- 自適應(yīng)噪聲抵消技術(shù)的研究
- 湖南省建筑工程定額
- DIALux-4.7軟件使用培訓(xùn)
- (2024年)《處方管理辦法》培訓(xùn)課件
- 我國(guó)鄉(xiāng)鎮(zhèn)小學(xué)高年級(jí)學(xué)生課外閱讀現(xiàn)狀調(diào)查與研究
- 道路交通安全隱患排查整治方案
評(píng)論
0/150
提交評(píng)論