第7章存儲系統(tǒng)_第1頁
第7章存儲系統(tǒng)_第2頁
第7章存儲系統(tǒng)_第3頁
第7章存儲系統(tǒng)_第4頁
第7章存儲系統(tǒng)_第5頁
已閱讀5頁,還剩77頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第7 7章章 存儲系統(tǒng)存儲系統(tǒng)7.1 存儲系統(tǒng)的層次結(jié)構(gòu)(識記)存儲系統(tǒng)的層次結(jié)構(gòu)(識記)7.2 高速緩沖存儲器(掌握)高速緩沖存儲器(掌握)7.3 虛擬存儲器(理解)虛擬存儲器(理解)7.4 相聯(lián)存儲器(了解)相聯(lián)存儲器(了解)7.5 存儲保護(了解)存儲保護(了解)本章學(xué)習(xí)目標(biāo)本章學(xué)習(xí)目標(biāo) 存儲系統(tǒng)是計算機體系結(jié)構(gòu)中的重要一環(huán),存儲系統(tǒng)是計算機體系結(jié)構(gòu)中的重要一環(huán),其關(guān)鍵性是不言而喻的。需要掌握存儲系統(tǒng)的基其關(guān)鍵性是不言而喻的。需要掌握存儲系統(tǒng)的基本原理。本原理。現(xiàn)代操作系統(tǒng)應(yīng)用于內(nèi)存管理的一個最主要現(xiàn)代操作系統(tǒng)應(yīng)用于內(nèi)存管理的一個最主要的技術(shù)就是虛擬內(nèi)存技術(shù),本章,需要明白虛擬的技術(shù)就

2、是虛擬內(nèi)存技術(shù),本章,需要明白虛擬內(nèi)存的原理,并且了解幾種主要的頁面替換策略。內(nèi)存的原理,并且了解幾種主要的頁面替換策略。CacheCache技術(shù)的出現(xiàn)大大加速了存儲系統(tǒng)的整體技術(shù)的出現(xiàn)大大加速了存儲系統(tǒng)的整體速度,它是對整個存儲系統(tǒng)重大的補充。希望在速度,它是對整個存儲系統(tǒng)重大的補充。希望在學(xué)習(xí)中能夠明白學(xué)習(xí)中能夠明白CacheCache的工作原理以及如何保持的工作原理以及如何保持CacheCache的一致性,的一致性,CacheCache存儲系統(tǒng)的地址映象及變存儲系統(tǒng)的地址映象及變換方法換方法 。用途:存儲器系統(tǒng)是計算機中用途:存儲器系統(tǒng)是計算機中 用于存儲程序和數(shù)據(jù)的部件。用于存儲程序和

3、數(shù)據(jù)的部件。對其要求是:對其要求是: 盡可能快的讀寫速度盡可能快的讀寫速度 盡可能大的存儲容量盡可能大的存儲容量 盡可能低的成本費用盡可能低的成本費用存儲器的性能指標(biāo):容量、速度和價格位存儲器的性能指標(biāo):容量、速度和價格位。71 存儲系統(tǒng)的層次結(jié)構(gòu)存儲系統(tǒng)的層次結(jié)構(gòu)怎樣才能同時實現(xiàn)這些要求呢?怎樣才能同時實現(xiàn)這些要求呢? 用多級結(jié)構(gòu)的存儲器系統(tǒng)用多級結(jié)構(gòu)的存儲器系統(tǒng) 把要用的程序和數(shù)據(jù),把要用的程序和數(shù)據(jù), 按其使用的急迫和頻繁程度,按其使用的急迫和頻繁程度, 分塊調(diào)入存儲容量不同、分塊調(diào)入存儲容量不同、 運行速度不同的存儲器中,運行速度不同的存儲器中, 并由硬軟件來統(tǒng)一管理與調(diào)度。并由硬軟件

4、來統(tǒng)一管理與調(diào)度。 層次之間應(yīng)滿足的原則層次之間應(yīng)滿足的原則 一致性原則:一致性原則: 處在不同層次存儲器中的同一個信息應(yīng)保持處在不同層次存儲器中的同一個信息應(yīng)保持相同的值相同的值, ,是保證正確地使用數(shù)據(jù)的最基本的是保證正確地使用數(shù)據(jù)的最基本的要求之一要求之一. . 包含性原則:包含性原則: 存儲在內(nèi)層(靠近存儲在內(nèi)層(靠近CPUCPU)的信息一定被包含在)的信息一定被包含在其外層的存儲介質(zhì)中,反之則不成立。即內(nèi)其外層的存儲介質(zhì)中,反之則不成立。即內(nèi)層存儲器中的全部信息,都是其相鄰?fù)鈱哟鎸哟鎯ζ髦械娜啃畔?,都是其相鄰?fù)鈱哟鎯ζ髦幸恍〔糠中畔⒌膹?fù)制品儲器中一小部分信息的復(fù)制品 。主主輔存層次

5、輔存層次:在操作系統(tǒng)的作用下在操作系統(tǒng)的作用下,其速度其速度接近于主存的速度,其容量則接近于輔存的接近于主存的速度,其容量則接近于輔存的容量,而每位平均價格也接近于廉價的慢速容量,而每位平均價格也接近于廉價的慢速的輔存平均價格。解決了的輔存平均價格。解決了容量與成本容量與成本之間的之間的矛盾。矛盾。高速緩存高速緩存(cache)主存層次主存層次:在硬件的作用在硬件的作用下下,其速度接近于其速度接近于cache,容量與每位價格則,容量與每位價格則接近于主存。解決了接近于主存。解決了速度與成本速度與成本之間的矛盾。之間的矛盾。72 高速緩沖存儲器高速緩沖存儲器(cache)721 cache存儲器

6、工作原理存儲器工作原理程序訪問的局部性程序訪問的局部性:對局部范圍的存儲器地址頻繁訪對局部范圍的存儲器地址頻繁訪問,而對此范圍以外的地址則訪問甚少的現(xiàn)象。問,而對此范圍以外的地址則訪問甚少的現(xiàn)象。高速緩沖存儲器高速緩沖存儲器(cache):在主存和在主存和CPU之間設(shè)置一個之間設(shè)置一個高速的容量相對較小的存儲器,如果當(dāng)前正在執(zhí)行高速的容量相對較小的存儲器,如果當(dāng)前正在執(zhí)行的程序和數(shù)據(jù)存放在這個存儲器中,當(dāng)程序運行時的程序和數(shù)據(jù)存放在這個存儲器中,當(dāng)程序運行時,不必從主存儲器取指令和取數(shù)據(jù),而訪問這個高,不必從主存儲器取指令和取數(shù)據(jù),而訪問這個高速存儲器即可,所以提高了程序運行速度。速存儲器即可

7、,所以提高了程序運行速度。cache存儲器介于存儲器介于CPU和主存之間,它的工作速度數(shù)和主存之間,它的工作速度數(shù)倍于主存,全部功能由硬件實現(xiàn),并且對程序員是倍于主存,全部功能由硬件實現(xiàn),并且對程序員是透明的。透明的。 高速緩沖存儲器是存在于主存與高速緩沖存儲器是存在于主存與CPU之間的一級之間的一級存儲器,存儲器, 由靜態(tài)存儲芯片由靜態(tài)存儲芯片(SRAM)組成,容量比較組成,容量比較小但速度比主存高得多,小但速度比主存高得多, 接近于接近于CPU的速度。的速度。 Cache的功能是用來存放那些近期需要運行的的功能是用來存放那些近期需要運行的指令與數(shù)據(jù)。目的是提高指令與數(shù)據(jù)。目的是提高CPU對

8、存儲器的訪問速度。對存儲器的訪問速度。為此需要解決為此需要解決3個技術(shù)問題:個技術(shù)問題:一是主存地址與緩存地一是主存地址與緩存地址的映象及轉(zhuǎn)換;址的映象及轉(zhuǎn)換; 二是按一定原則對二是按一定原則對Cache的內(nèi)容的內(nèi)容進行替換;三是對進行替換;三是對Cache 的讀出與寫入。的讀出與寫入。 當(dāng)當(dāng)CPU發(fā)出讀請求時,將主存地址發(fā)出讀請求時,將主存地址m位位(或或m位中的一部分位中的一部分)與與cache某塊的標(biāo)記相比某塊的標(biāo)記相比較,根據(jù)其比較結(jié)果是否相等而區(qū)分出兩種較,根據(jù)其比較結(jié)果是否相等而區(qū)分出兩種情況:當(dāng)比較結(jié)果相等時,說明需要的數(shù)已情況:當(dāng)比較結(jié)果相等時,說明需要的數(shù)已在在cache中,

9、即中,即訪問訪問cache命中命中,直接訪問直接訪問cache就行了,在就行了,在CPU與與cache之間,通常一之間,通常一次傳送一個字;當(dāng)比較結(jié)果不相等時,即次傳送一個字;當(dāng)比較結(jié)果不相等時,即訪訪問問cache不命中不命中. 把該數(shù)據(jù)所在的整個字塊從把該數(shù)據(jù)所在的整個字塊從主存一次調(diào)進來。主存一次調(diào)進來。命中率命中率:指指CPU所要訪問的信息在所要訪問的信息在cache中的中的比率比率.受受cache容量容量和和塊塊的大小的影響。的大小的影響。具有具有cache的存儲器,其平均存取時間計算如下:的存儲器,其平均存取時間計算如下: 設(shè)設(shè)cache的存取時間為的存取時間為tc,命中率為,命中

10、率為h,主存的存取,主存的存取時間為時間為tM,則,則平均存取時間平均存取時間htc+(1-h)(tc+tM)。在從主存讀出新的字塊調(diào)入在從主存讀出新的字塊調(diào)入cache存儲器時,如果遇存儲器時,如果遇到到cache存儲器中相應(yīng)的位置已被其他字塊占有,那存儲器中相應(yīng)的位置已被其他字塊占有,那么就必須去掉一個舊的字塊,讓位于一個新的字塊么就必須去掉一個舊的字塊,讓位于一個新的字塊。這種替換應(yīng)該遵循一定的規(guī)則,最好能使被替換。這種替換應(yīng)該遵循一定的規(guī)則,最好能使被替換的字塊是下一段時間內(nèi)估計最少使用的。的字塊是下一段時間內(nèi)估計最少使用的。這些規(guī)則這些規(guī)則稱為替換策略或替換算法稱為替換策略或替換算法

11、,由替換部件加以實現(xiàn)。,由替換部件加以實現(xiàn)。一致性問題一致性問題讀:不存在一致性問題讀:不存在一致性問題寫:寫:兩種寫入方式保證一致性:兩種寫入方式保證一致性: “寫回法寫回法”:是暫時只向是暫時只向cache存儲器寫入,并用標(biāo)存儲器寫入,并用標(biāo)志加以注明,直到經(jīng)過修改的字塊被從志加以注明,直到經(jīng)過修改的字塊被從cache中替換中替換出來時才一次寫入主存;這種方式寫操作速度快,出來時才一次寫入主存;這種方式寫操作速度快,但因在此以前,主存中的字塊未經(jīng)隨時修改而可能但因在此以前,主存中的字塊未經(jīng)隨時修改而可能失效。失效。寫直達法:寫直達法:每次寫入每次寫入cache存儲器時也同時寫入主存存儲器時

12、也同時寫入主存,使,使cache和主存保持一致。這種方式實現(xiàn)簡單,且和主存保持一致。這種方式實現(xiàn)簡單,且能隨時保持主存數(shù)據(jù)的正確性。但是,有可能要增能隨時保持主存數(shù)據(jù)的正確性。但是,有可能要增加多次不必要的向主存的寫入。加多次不必要的向主存的寫入。722 cache存儲器組織存儲器組織1地址映像地址映像 為了把信息放到為了把信息放到cache存儲器中,必須應(yīng)用某存儲器中,必須應(yīng)用某種函數(shù)把主存地址映像到種函數(shù)把主存地址映像到cache,稱作,稱作地址映地址映像像。在信息按照這種映像關(guān)系裝入在信息按照這種映像關(guān)系裝入cache后,后,執(zhí)行程序時,應(yīng)將主存地址變換成執(zhí)行程序時,應(yīng)將主存地址變換成c

13、ache地址,地址,這個變換過程叫做這個變換過程叫做地址變換地址變換。地址的映像和變地址的映像和變換是密切相關(guān)的。換是密切相關(guān)的。主存與cache的地址映射第0塊第0塊第1塊第n-1塊第m-1塊L0L1Ln-1Cache主存 如何進行地址映射?第0塊Cache直接相聯(lián)映射第0塊第0區(qū)第m區(qū)第1塊第n-1塊第n塊第n+1塊第2n-1塊第2n塊第3n-1塊第mn塊第mn+1塊第mn+2塊第(m+1)n-1塊Tag0Tag1Tagn-1Cache主存第1區(qū)第2區(qū)主存分割成若干個與cache大小相同的區(qū)Cache塊號i, 共n塊,主存塊號ji=j mod n8位4位A11 A10A3 A2 A1 A0

14、A5 A4區(qū)地址塊地址塊內(nèi)地址A14 A14 A123位第0塊第0塊第0區(qū)第m區(qū)第1塊第n-1塊第n塊第n+1塊第2n-1塊第2n塊第3n-1塊第mn塊第mn+1塊第mn+2塊第(m+1)n-1塊Tag0Tag1Tagn-1Cache主存第1區(qū)第2區(qū)第0塊Cache直接相聯(lián)映射第0塊第0區(qū)第m區(qū)第1塊第n-1塊第n塊第n+1塊第2n-1塊第2n塊第3n-1塊第mn塊第mn+1塊第mn+2塊第(m+1)n-1塊Tag0Tag1Tagn-1Cache主存第1區(qū)第2區(qū)主存分割成若干個與cache大小相同的區(qū)塊號區(qū)號字地址比較器比較器&命中未命中直接映像直接映像 直接映像函數(shù)直接映像函數(shù):j=i mo

15、d 2c 其中,其中,j是是cache的字塊號,的字塊號,i是主存的字塊號。是主存的字塊號。 優(yōu)點:是實現(xiàn)簡單。優(yōu)點:是實現(xiàn)簡單。只需利用主存地址按某些字段直接判斷,即可確定所需只需利用主存地址按某些字段直接判斷,即可確定所需字塊是否已在字塊是否已在cache存儲器中。存儲器中。 缺點:不夠靈活。缺點:不夠靈活。主存的主存的2t個字塊只能對應(yīng)惟一的個字塊只能對應(yīng)惟一的cache存儲器字塊,因此,存儲器字塊,因此,即使即使cache存儲器別的許多地址空著也不能占用。這使存儲器別的許多地址空著也不能占用。這使得得cache存儲空間得不到充分利用,并降低了命中率。存儲空間得不到充分利用,并降低了命中

16、率。舉例:主存容量為1M, Cache的容量為32KB,每塊的大小為16個字(或字節(jié))。劃出主、緩存的地址格式、目錄表格式及其容量。 練習(xí):主存容量為1M, Cache的容量為16KB,每塊的大小為512B,采用直接地址映象方式。1、寫出Cache的地址格式。2、寫出主存的地址格式。3、主存地址為CDE8FH的單元在Cache中的什么位置?Cache全相聯(lián)映射第0塊第0塊第1塊第n-1塊L0L1Ln-1Cache主存主存中任何一塊均可定位于Cache中的任意一塊,可提高命中率,但是硬件開銷增加Cache全相聯(lián)映射第0塊第0塊第1塊第n-1塊L0L1Ln-1塊表主存塊號字地址&命中未命中Cach

17、e比較器比較器cache全相聯(lián)映射地址變換相聯(lián)存儲器主存塊號Cache塊號塊號比較快存主存主存地址未命中塊表命中Cache地址主存塊號CPU塊內(nèi)地址塊內(nèi)地址(2)全相聯(lián)映像全相聯(lián)映像它允許主存中的每一個字塊映像到它允許主存中的每一個字塊映像到cache存儲器的存儲器的任何一個字塊位置上,也允許從確實已被占滿的任何一個字塊位置上,也允許從確實已被占滿的cache存儲器中替換出任何一個舊字塊。存儲器中替換出任何一個舊字塊。全相聯(lián)映像方式是最靈活但成本最高的一種方式全相聯(lián)映像方式是最靈活但成本最高的一種方式問題問題: 1.不只是它的標(biāo)記位數(shù)從不只是它的標(biāo)記位數(shù)從t位增加到位增加到t+c位位(與與直接

18、映像相比直接映像相比),使,使cache標(biāo)記容量加大標(biāo)記容量加大. 2.在訪問在訪問cache時,需要和時,需要和cache的全部標(biāo)記的全部標(biāo)記進行進行“比較比較”才能判斷出所訪主存地址的內(nèi)容是才能判斷出所訪主存地址的內(nèi)容是否已在否已在cache中。中。第0塊Cache組相聯(lián)映射第0組第0塊第1塊第n塊第n+1塊2n2n第2n+1塊第(m+1)n-1塊L0L1Cache主存第1組組0組1第0區(qū)第2組第3組第1區(qū)第m區(qū)Cache分u組,每組n塊主存塊組號j,塊號k,j=k/n 主存對應(yīng)cache組號q, 主存分割成若干個與cache大小相同的區(qū),Cache再分割成若干組q=j mod u(3)組

19、相聯(lián)映像組相聯(lián)映像把把cache字塊分為字塊分為2c組,每組包含組,每組包含2r個字塊,于是個字塊,于是有有c=c+r。主存字塊。主存字塊Mm(i)(0i2m-1)可以用下列映可以用下列映像函數(shù)映像到像函數(shù)映像到cache字塊字塊Mc(j)(0j2c-1)上上 j=(i mod 2c) 2r+k 0k2r-1k為位于上列范圍內(nèi)的可選參數(shù)為位于上列范圍內(nèi)的可選參數(shù)(整數(shù)整數(shù))。按這種映。按這種映像方式,組間為直接映像,而組內(nèi)的字塊為全相像方式,組間為直接映像,而組內(nèi)的字塊為全相聯(lián)映像方式。聯(lián)映像方式。 組相聯(lián)映像把地址劃分成組相聯(lián)映像把地址劃分成3段,末段,末b位為塊內(nèi)地位為塊內(nèi)地址,中間址,中

20、間c位為位為cache組地址,高組地址,高t位和位和r位形成標(biāo)位形成標(biāo)記字段。記字段。今舉例如下(cache容量比實際小): 設(shè)c=3位,r=1位,考慮主存字塊15可映像到cache的哪一個字塊中。 根據(jù)公式,可得: j=(i mod 2c) 2r+k =(15 mod 23) 21+k 7 2+k 14+k 又: 0k2r-1=21-1=1 即: k=0或1代入后得j=14(k=0)或15(k=1)。所以主存模塊15可映像到cache字塊14或15中。在第7組。在實際cache中用得最多的是直接映像(r=0),兩路組相聯(lián)映像(r=1)和4路組相聯(lián)映像(r2)。如r=2,計算得0k3,所以主存

21、某一字塊可映像到cache某組4個字塊的任一字塊中,這大大地增加了映像的靈活性,提高了命中率。例:一個組相聯(lián)地址映象cache由64存儲塊構(gòu)成,每組包含4個存儲塊。主存包含4096個存儲塊,每塊由8字組成,每字為32位。存儲器按字節(jié)編址,訪存地址為字地址。1、寫出cache的地址位數(shù)和地址格式。2、寫出主存的地址位數(shù)和地址格式。3、主存地址18AB9H映象到cache的哪個字塊?2替換算法替換算法 引入原因:引入原因:當(dāng)新的主存字塊需要調(diào)入當(dāng)新的主存字塊需要調(diào)入cache存儲存儲器而它的可用位置又已被占滿時,就產(chǎn)生替換算器而它的可用位置又已被占滿時,就產(chǎn)生替換算法問題。常用算法:法問題。常用算

22、法: FIFO算法總是把一組中最先調(diào)入算法總是把一組中最先調(diào)入cache存儲器存儲器的字塊替換出去。特點:實現(xiàn)容易,開銷小。的字塊替換出去。特點:實現(xiàn)容易,開銷小。 LRU算法是把一組中近期最少使用的字塊替換算法是把一組中近期最少使用的字塊替換出去。需記錄各個字塊的使用情況,以便確定那出去。需記錄各個字塊的使用情況,以便確定那個字塊是近期最少使用的字塊。特點:個字塊是近期最少使用的字塊。特點:LRU替換替換算法的平均命中率比算法的平均命中率比FIFO要高,并且當(dāng)分組容要高,并且當(dāng)分組容量加大時,能提高量加大時,能提高LRU替換算法的命中率。替換算法的命中率。例:某程序?qū)撁嬉蟮男蛄袨?264

23、3743634846。設(shè)主存儲器容量為4個頁面,求FIFO和LRU替換算法各自的命中率(假設(shè)開始時主存為空)。723 cache存儲器舉例存儲器舉例Intel 82385cache控制器:控制器: 與與80386微處理器相匹配的主存一微處理器相匹配的主存一cache存儲系存儲系統(tǒng)是由統(tǒng)是由82385cache控制器來實現(xiàn)地址映像和變換的??刂破鱽韺崿F(xiàn)地址映像和變換的??扇坑诚窨扇坑诚?0386的的32位地址提供的位地址提供的4G(千兆千兆)字節(jié)字節(jié)的地址空間,使的地址空間,使CPU幾乎無任何等待地讀出數(shù)據(jù),幾乎無任何等待地讀出數(shù)據(jù),命中率可高達命中率可高達99。n82385片內(nèi)只含有片內(nèi)只

24、含有cache控制器,控制器,cache數(shù)據(jù)保存在數(shù)據(jù)保存在片外的片外的SRAM中。中。 82385提供了兩種地址映像方式:提供了兩種地址映像方式: 直接映像直接映像 地址字段分配:地址字段分配:17位標(biāo)記字段位標(biāo)記字段10位組地址字段位組地址字段3位行選擇位位行選擇位A4A2 A1,A0為字節(jié)地址,無用為字節(jié)地址,無用 80386一次訪存只能取出一個字。一次訪存只能取出一個字。 直接映像直接映像cache組織如圖組織如圖7.8所示。所示。Intel 80386的的4GB地址空間被分成地址空間被分成217頁,頁的大小為頁,頁的大小為8K字字(每字每字32位位),正好和,正好和cache的容量相

25、同。的容量相同。cache被分成被分成1024組,組,每組每組8個字個字(8X32位位)。每個字被稱作一每個字被稱作一“行行”,行是,行是主存和主存和cache之間的信息傳輸單位。之間的信息傳輸單位。在在82385cache目目錄表(標(biāo)記)中,對應(yīng)錄表(標(biāo)記)中,對應(yīng)cache的每一組有一個條目。的每一組有一個條目。每一條目有每一條目有26位位,分成三部分:,分成三部分:17位標(biāo)記位標(biāo)記,1位標(biāo)記位標(biāo)記有效位有效位,8位行有效位位行有效位。17位標(biāo)記指出主存的頁號,位標(biāo)記指出主存的頁號,它是它是217頁中的某一頁。由于每組包含著頁中的某一頁。由于每組包含著8行,在目錄行,在目錄表中有表中有8個

26、行有效位與其對應(yīng),如果某一行被調(diào)入個行有效位與其對應(yīng),如果某一行被調(diào)入cache中,則此行有效位被置中,則此行有效位被置“1”,同時置標(biāo)記有效,同時置標(biāo)記有效位。位。 在在80386啟動啟動讀周期讀周期時,時,82385用用10位地址位地址選擇目錄表中選擇目錄表中1024個表目中的一條,用個表目中的一條,用3位選位選擇表目中擇表目中8個行有效位的一位。這個行有效位的一位。這13位位cache地址選擇地址選擇cache中的一行中的一行(4字節(jié)字節(jié))。82385將地將地址總線的標(biāo)記字段址總線的標(biāo)記字段(A31A15)與目錄表表目與目錄表表目中的標(biāo)記相比較,若相等,中的標(biāo)記相比較,若相等,并且目錄中

27、的標(biāo)并且目錄中的標(biāo)記有效位和行有效位皆為記有效位和行有效位皆為“1”狀態(tài),說明讀狀態(tài),說明讀命中。命中。82385指示指示cache將選中的字送入將選中的字送入80386數(shù)據(jù)總線。讀命中不改變數(shù)據(jù)總線。讀命中不改變cache和目錄中的內(nèi)和目錄中的內(nèi)容。容。 讀失效分為兩種情況。一種情況叫做行失讀失效分為兩種情況。一種情況叫做行失效。這時,目錄表目中標(biāo)記和地址總線的效。這時,目錄表目中標(biāo)記和地址總線的標(biāo)記字段相等,且標(biāo)記有效位為標(biāo)記字段相等,且標(biāo)記有效位為“1”,但,但是行有效位為是行有效位為“0”。另一種情況叫做標(biāo)記。另一種情況叫做標(biāo)記失效。這時,目錄表目中標(biāo)記和地址總線失效。這時,目錄表目中

28、標(biāo)記和地址總線標(biāo)記宇段不相等,或是標(biāo)記有效位為標(biāo)記宇段不相等,或是標(biāo)記有效位為“0”。在失效發(fā)生時,。在失效發(fā)生時,80386將直接訪問主存將直接訪問主存取得數(shù)據(jù),并同時寫入取得數(shù)據(jù),并同時寫入cache。若為行失。若為行失效,則只將該行對應(yīng)的行有效位置效,則只將該行對應(yīng)的行有效位置“1”;若為標(biāo)記失效,則用上述地址頁號修改標(biāo)若為標(biāo)記失效,則用上述地址頁號修改標(biāo)記,并將標(biāo)記有效位和相應(yīng)的行有效位置記,并將標(biāo)記有效位和相應(yīng)的行有效位置“1”,清除其他,清除其他7個行有效位。個行有效位。 兩路組相聯(lián)映像兩路組相聯(lián)映像 cache被分成兩個體,每體為被分成兩個體,每體為4K字。主存頁字。主存頁面大小

29、和面大小和cache的一個體的大小相同,而頁數(shù)為的一個體的大小相同,而頁數(shù)為218頁。對應(yīng)著頁。對應(yīng)著cache的兩個體,目錄表也分為兩的兩個體,目錄表也分為兩部分,每個部分有部分,每個部分有27位,位,18位標(biāo)記為主存頁號位標(biāo)記為主存頁號,1位標(biāo)記有效位,位標(biāo)記有效位,8位行有效位。此外,在目位行有效位。此外,在目錄表中還有一個附加位,稱為錄表中還有一個附加位,稱為LRU位位,LRU位位指定指定cache兩個體中兩個體中同一組同一組的那一的那一行行為最近最少為最近最少使用使用行行,也就是置換的對象。,也就是置換的對象。 主存儲器各頁的同一組可以任意映射到主存儲器各頁的同一組可以任意映射到ca

30、che的兩個體的同一組中,同時可有兩個頁的的兩個體的同一組中,同時可有兩個頁的同一組存于同一組存于cache中。中。 Intel 82385還有監(jiān)聽功能還有監(jiān)聽功能,其作用如下:,其作用如下: 現(xiàn)代計算機以存儲器為中心,除了現(xiàn)代計算機以存儲器為中心,除了CPU訪存以外訪存以外,輸入輸出,輸入輸出(IO)設(shè)備也可直接訪問存儲器,而設(shè)備也可直接訪問存儲器,而cache中的數(shù)據(jù)又要與主存儲器相應(yīng)單元的內(nèi)容保持中的數(shù)據(jù)又要與主存儲器相應(yīng)單元的內(nèi)容保持一致一致(相同相同),因此需要對地址進行監(jiān)聽。假如某一,因此需要對地址進行監(jiān)聽。假如某一IO設(shè)備直接向存儲器傳送數(shù)據(jù)設(shè)備直接向存儲器傳送數(shù)據(jù)(寫入存儲器寫

31、入存儲器),而且,而且其提供的地址中的數(shù)據(jù)在其提供的地址中的數(shù)據(jù)在cache中有副本,此時如不中有副本,此時如不進行處理,會造成進行處理,會造成cache數(shù)據(jù)與存儲器數(shù)據(jù)的不一致數(shù)據(jù)與存儲器數(shù)據(jù)的不一致性。為簡化操作,通常采取將性。為簡化操作,通常采取將cache相應(yīng)單元的標(biāo)記相應(yīng)單元的標(biāo)記有效位清有效位清“0”的辦法,這樣當(dāng)?shù)霓k法,這樣當(dāng)CPU再訪問再訪問(讀讀)該單元該單元時,將產(chǎn)生不命中信號,而到存儲器去取數(shù),這樣時,將產(chǎn)生不命中信號,而到存儲器去取數(shù),這樣可保證可保證CPU所取數(shù)據(jù)的正確性。所取數(shù)據(jù)的正確性。724 多層次多層次cache存儲器存儲器1指令指令cache和數(shù)據(jù)和數(shù)據(jù)ca

32、che 單一單一cache:將指令和數(shù)據(jù)存放在同:將指令和數(shù)據(jù)存放在同一一cache。存取數(shù)據(jù)的操作經(jīng)常會與取指令的操存取數(shù)據(jù)的操作經(jīng)常會與取指令的操作發(fā)生沖突,從而延遲了指令的讀取。作發(fā)生沖突,從而延遲了指令的讀取。給定給定cache總量時,單一總量時,單一cache有較有較高的利用率高的利用率. 將指令將指令cache和數(shù)據(jù)和數(shù)據(jù)cache分開分開:速度速度快快.2多層次多層次cache結(jié)構(gòu)結(jié)構(gòu)3. 多層次多層次cache的一致性問題的一致性問題 由于由于數(shù)據(jù)數(shù)據(jù)cache有寫入操作,且有多種寫入方案有寫入操作,且有多種寫入方案,為了提高計算機處理速度,在每次寫入時,并,為了提高計算機處理

33、速度,在每次寫入時,并不同時修改不同時修改L1,L2和主存儲器的內(nèi)容,造成了數(shù)和主存儲器的內(nèi)容,造成了數(shù)據(jù)的不一致,這就是要解決的據(jù)的不一致,這就是要解決的cache一致性問題。一致性問題。程序是不允許修改的,因此使用指令程序是不允許修改的,因此使用指令cache不存在不存在cache一致性問題。一致性問題。 Pentium處理器支持處理器支持“修改排它共享無效修改排它共享無效”(modifiedexclusivesharedinvalid,簡稱,簡稱MESI)協(xié)協(xié)議。數(shù)據(jù)議。數(shù)據(jù)cache的每一行包含兩個狀態(tài)位,的每一行包含兩個狀態(tài)位,每一每一cache行行處處于于4種狀態(tài)之一,各狀態(tài)的意義

34、如下:種狀態(tài)之一,各狀態(tài)的意義如下: (1)修改修改(Modified,簡稱,簡稱M) 本本cache行中的數(shù)據(jù)已被修改行中的數(shù)據(jù)已被修改(與主存的內(nèi)容不同與主存的內(nèi)容不同),僅在,僅在本本cache中的數(shù)據(jù)是正確的。中的數(shù)據(jù)是正確的。 (2)排它排它(Exclusive,簡稱,簡稱E) 本本cache行中的數(shù)據(jù)與主存中的數(shù)據(jù)相同,但不存在于行中的數(shù)據(jù)與主存中的數(shù)據(jù)相同,但不存在于其他其他cache中。中。 (3)共享共享(Shared,簡稱,簡稱S) 本本cache行中的數(shù)據(jù)與主存中的數(shù)據(jù)相同,且可存在于行中的數(shù)據(jù)與主存中的數(shù)據(jù)相同,且可存在于其他其他cache中。中。 (4)無效無效(In

35、valid,簡稱,簡稱I) 本本cache行中的數(shù)據(jù)無效。行中的數(shù)據(jù)無效。7.3 虛擬存儲器虛擬存儲器7.3.1 虛擬存儲器概述虛擬存儲器概述 虛擬存儲器指的是虛擬存儲器指的是“主存一輔存主存一輔存層次,它能使計算機具有輔存的容量,層次,它能使計算機具有輔存的容量,接近于主存的速度和輔存的每位成本。接近于主存的速度和輔存的每位成本。使得程序員可以按比主存大得多的空間使得程序員可以按比主存大得多的空間來編制程序,即按虛存空間編址。來編制程序,即按虛存空間編址。1主存一輔存層次與主存一輔存層次與cache一主存層次一主存層次的比較的比較區(qū)別區(qū)別:主存主存cache存儲器的訪問存儲器的訪問“時間比時

36、間比”較較小,典型的為小,典型的為10:1;每次傳送的基本信息單;每次傳送的基本信息單元元(字塊字塊)也比較小,只是幾個至幾十個字節(jié)。也比較小,只是幾個至幾十個字節(jié)。而輔存主存的訪問而輔存主存的訪問“時間比時間比”就要大得多就要大得多,達,達100:1至至1000:1,每次傳送的基本信息單,每次傳送的基本信息單元元(段或頁面段或頁面)也很大,達幾十至幾千字節(jié)。也很大,達幾十至幾千字節(jié)。相似之處相似之處:采用的地址變換及映像方法和替換采用的地址變換及映像方法和替換策略,從原理上看是相同的。策略,從原理上看是相同的。 2主存一輔存層次信息傳送單位和存主存一輔存層次信息傳送單位和存儲管理儲管理 段式

37、管理段式管理 段段是利用程序的模塊化性質(zhì),按照程序的是利用程序的模塊化性質(zhì),按照程序的邏輯結(jié)構(gòu)劃分成的多個相對獨立部分。(段邏輯結(jié)構(gòu)劃分成的多個相對獨立部分。(段長不固定)長不固定)段式管理:把主存按段分配的存儲管理方式。段式管理:把主存按段分配的存儲管理方式。優(yōu)點:段的分界與程序的自然分界相對應(yīng);段的邏輯獨立性使它易于編譯、管理、修改和保護,也便于多道程序共享。缺點:碎片多。 頁式管理頁式管理 信息傳送單位是定長的頁,主存的物理空信息傳送單位是定長的頁,主存的物理空間被劃分為等長的固定區(qū)域,稱為頁面。間被劃分為等長的固定區(qū)域,稱為頁面。優(yōu)點優(yōu)點:新頁調(diào)入主存容易掌握,只要有空白頁面就可??赡?/p>

38、造成浪費的是程序最后一頁的零頭,是不能利用的頁內(nèi)空間,它比段式管理系統(tǒng)的空間浪費要小得多。缺點缺點:由于頁不是邏輯上獨立的實體,所以處理、保護和共享都不及段式來得方便。 段頁式存儲管理段頁式存儲管理段式和頁式管理相結(jié)合段式和頁式管理相結(jié)合程序按模塊分段,段內(nèi)再分頁,出程序按模塊分段,段內(nèi)再分頁,出入主存仍以頁為信息傳送單位,用段表和入主存仍以頁為信息傳送單位,用段表和頁表頁表(每段一個頁表每段一個頁表)進行兩級管理。進行兩級管理。732 頁式虛擬存儲器頁式虛擬存儲器 在頁式虛擬存儲系統(tǒng)中,把虛擬空間分在頁式虛擬存儲系統(tǒng)中,把虛擬空間分成頁,主存空間也分成同樣大小的頁,稱為實成頁,主存空間也分成

39、同樣大小的頁,稱為實頁或物理頁,而把前者稱為虛頁或邏輯頁。頁或物理頁,而把前者稱為虛頁或邏輯頁。特點:讀一個數(shù)據(jù)至少要訪問特點:讀一個數(shù)據(jù)至少要訪問2次內(nèi)存,速度慢。次內(nèi)存,速度慢。解決方法:快表。解決方法:快表??毂恚河捎布M成,通常稱為轉(zhuǎn)換旁路緩沖器快表:由硬件組成,通常稱為轉(zhuǎn)換旁路緩沖器(translation lookaside buffer,簡稱,簡稱TLB)。它比頁表小得多,一般在。它比頁表小得多,一般在16行行64行之間,快表只是慢表行之間,快表只是慢表(指主存中的頁表指主存中的頁表)的小小的副的小小的副本。本。733 段頁式虛擬存儲器段頁式虛擬存儲器 在段頁式虛擬存儲器中,把程

40、序按邏輯在段頁式虛擬存儲器中,把程序按邏輯結(jié)構(gòu)分段以后,再把每段分成固定大小的頁。結(jié)構(gòu)分段以后,再把每段分成固定大小的頁。程序?qū)χ鞔娴恼{(diào)入調(diào)出是按頁面進行的,但它程序?qū)χ鞔娴恼{(diào)入調(diào)出是按頁面進行的,但它又可以按段實現(xiàn)共享和保護。又可以按段實現(xiàn)共享和保護。 優(yōu)點:兼取頁式和段式系統(tǒng)的優(yōu)點。 缺點:在地址映像過程中需要多次查表。 如果有多個用戶在機器上運行,稱為多道程序,如果有多個用戶在機器上運行,稱為多道程序,多道程序的每一道多道程序的每一道(每個用戶每個用戶)需要一個基號需要一個基號(用戶標(biāo)志號用戶標(biāo)志號),可由它指明該道程序的段表起,可由它指明該道程序的段表起點點(存放在基址寄存器中存放在基

41、址寄存器中)。734 虛擬存儲器工作的全過虛擬存儲器工作的全過程程 思考:尋址方式與虛擬存儲器的關(guān)系?思考:尋址方式與虛擬存儲器的關(guān)系? 對虛擬存儲器來說,程序員按虛存儲空間編制程對虛擬存儲器來說,程序員按虛存儲空間編制程序,在直接尋址方式下由機器指令的地址碼給出序,在直接尋址方式下由機器指令的地址碼給出地址。這個地址碼就是虛地址,可由虛頁號及頁地址。這個地址碼就是虛地址,可由虛頁號及頁內(nèi)地址組成,如下所示:內(nèi)地址組成,如下所示:外頁表外頁表在虛擬存儲器中實現(xiàn)虛擬地址到輔存實地址的變換。輔存一般按信息塊編址,而不是按字編址,若使一個塊的大小等于一個虛頁面的大小,這樣就只需把虛頁號變換到Nvd即

42、可完成虛地址到輔存實地址的變換。為此,可采用頁表的方式,把由Nv變換成Nvd的表稱為外頁表,而把Nv變換到主存頁號的表稱為內(nèi)頁表。7.3.5 Pentium處理機的虛擬存儲處理機的虛擬存儲器器Pentium的虛擬地址被稱為邏輯地址,其長度為48位,有效的邏輯地址為46位(14位+32位),虛擬空間為246。Pentium采用段頁式地址轉(zhuǎn)換機制。Pentium存儲器結(jié)構(gòu)有很大靈活性,根據(jù)其段表和頁表是否設(shè)置可以有4種組合情況。 (1)無段表和無頁表的存儲器。非虛擬存儲器其邏輯地址即為物理地址,可減少復(fù)雜性,在高性能的控制機中經(jīng)常被采用。 (2)無段表和有頁表的存儲器。頁式虛擬存儲器,此時存儲器的

43、管理和保護是通過頁面轉(zhuǎn)換實現(xiàn)的。 (3)有段表和無頁表的存儲器。段式虛擬存儲器。 (4)有段表和有頁表的存儲器。段頁式虛擬存儲器。736 存儲管理部件存儲管理部件(MMU) 現(xiàn)代計算機一般都有輔助存儲器,但具有鋪存的存現(xiàn)代計算機一般都有輔助存儲器,但具有鋪存的存儲系統(tǒng)不一定是虛擬存儲系統(tǒng)。儲系統(tǒng)不一定是虛擬存儲系統(tǒng)。虛擬存儲系統(tǒng)有兩大特虛擬存儲系統(tǒng)有兩大特點:點: (1)允許用戶用比主存空間大得多的空間來訪問主存。允許用戶用比主存空間大得多的空間來訪問主存。 (2)每次訪存都要進行虛實地址的轉(zhuǎn)換。每次訪存都要進行虛實地址的轉(zhuǎn)換。 為了實現(xiàn)邏輯地址到物理地址的轉(zhuǎn)換,并在頁面失為了實現(xiàn)邏輯地址到物

44、理地址的轉(zhuǎn)換,并在頁面失效時效時(即被訪問的頁面不在主存即被訪問的頁面不在主存)進入操作系統(tǒng)環(huán)境,設(shè)進入操作系統(tǒng)環(huán)境,設(shè)置了由硬件實現(xiàn)的存儲管理部件置了由硬件實現(xiàn)的存儲管理部件MMU,而整個虛擬存,而整個虛擬存儲器的管理是由儲器的管理是由MMU部件與操作系統(tǒng)共同完成的。部件與操作系統(tǒng)共同完成的。 相聯(lián)存儲器不按地址訪問存儲器,而按所相聯(lián)存儲器不按地址訪問存儲器,而按所存數(shù)據(jù)字的全部內(nèi)容或部分內(nèi)容進行查找存數(shù)據(jù)字的全部內(nèi)容或部分內(nèi)容進行查找(或檢索或檢索)。 例如,在虛擬存儲器中,將虛地址的虛頁號與相聯(lián)存儲器中所有行的虛頁號進行比較,若有內(nèi)容相等的行,則將其相應(yīng)的實頁號取出,這是按數(shù)據(jù)字的部分內(nèi)

45、容進行檢索的例子。7.4 相聯(lián)存儲器相聯(lián)存儲器比較操作是并行進行的,即CR中的關(guān)鍵字段與存儲器的所有W個字的相應(yīng)字段同時進行比較。 一般用門電路與觸發(fā)器來進行比較與保存信號,所用電路較多。 在相聯(lián)處理機中,來自控制器的一條命令能對許多數(shù)據(jù)同時執(zhí)行算術(shù)或邏輯運算,因此每個存儲單元必須有一個處理單元。 應(yīng)用應(yīng)用:相聯(lián)存儲器除了應(yīng)用于虛擬存儲器與相聯(lián)存儲器除了應(yīng)用于虛擬存儲器與cache中以外,中以外,還經(jīng)常用于數(shù)據(jù)庫與知識庫中按關(guān)鍵字進行檢索。從按地還經(jīng)常用于數(shù)據(jù)庫與知識庫中按關(guān)鍵字進行檢索。從按地址訪問的存儲器中檢索出某一單元,平均約進行址訪問的存儲器中檢索出某一單元,平均約進行m2次操次操作作

46、(m為存儲單元數(shù)為存儲單元數(shù)),而在相聯(lián)存儲器中僅需要進行一次檢,而在相聯(lián)存儲器中僅需要進行一次檢索操作,因此大大提高了處理速度。近年來相聯(lián)存儲器用索操作,因此大大提高了處理速度。近年來相聯(lián)存儲器用于一些新型的并行處理和人工智能系統(tǒng)結(jié)構(gòu)中。于一些新型的并行處理和人工智能系統(tǒng)結(jié)構(gòu)中。7.5 存儲保護存儲保護 由于多個用戶對主存的共享,就有多個用戶程序和系統(tǒng)軟件存由于多個用戶對主存的共享,就有多個用戶程序和系統(tǒng)軟件存于主存中。于主存中。為使系統(tǒng)能正常工作,要防止由于為使系統(tǒng)能正常工作,要防止由于一個用戶程序出錯而破壞其他用戶的程序一個用戶程序出錯而破壞其他用戶的程序和系統(tǒng)軟件,還要防止一個用戶程序不合和系統(tǒng)軟件,還要防止一個用戶程序不合法地訪問不是分配給它的主存區(qū)域。為此,法地訪問不是分配給它的主存區(qū)域。為此,系統(tǒng)應(yīng)提供存儲保護。系統(tǒng)應(yīng)提供存儲保護。 存儲保護主要包括兩個方面:存儲區(qū)存儲保護主要包括兩個方面:存儲區(qū)域保護和訪問方式的保護。域保護和訪問方式的保護。1存儲區(qū)域保護存儲區(qū)域保護 對于不是虛擬存儲器的主存系統(tǒng)可采用對于不是虛擬存儲器的主存系統(tǒng)可采用界限寄存界限寄存器方式器方式。由系統(tǒng)軟件經(jīng)特權(quán)指令設(shè)置上、下界寄。由系統(tǒng)軟件經(jīng)特權(quán)指

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論