




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第7章 存儲(chǔ)系統(tǒng)7.1 存儲(chǔ)系統(tǒng)的層次結(jié)構(gòu)7.2 高速緩沖存儲(chǔ)器(cache)7.3 虛擬存儲(chǔ)器7.4 相聯(lián)存儲(chǔ)器7.5 存儲(chǔ)保護(hù)本章教學(xué)內(nèi)容本章教學(xué)內(nèi)容目前的計(jì)算機(jī)中,一般用半導(dǎo)體存儲(chǔ)器作為主存儲(chǔ)器(簡(jiǎn)稱主存或內(nèi)存),存放當(dāng)前正在執(zhí)行的程序和數(shù)據(jù);而用磁盤、磁帶、光盤作為外存儲(chǔ)器或輔助存儲(chǔ)器(簡(jiǎn)稱外存或輔存),存放當(dāng)前不在運(yùn)行的大量程序和數(shù)據(jù)。半導(dǎo)體存儲(chǔ)器可隨機(jī)訪問任一單元,而輔助存儲(chǔ)器一般為串行訪問存儲(chǔ)器。讀寫該存儲(chǔ)器內(nèi)容時(shí),需要順序地一位一位地進(jìn)行,訪問指定信息所需時(shí)間與信息所在位置有關(guān)。串行存儲(chǔ)器又可分成順序存取存儲(chǔ)器和直接存取存儲(chǔ)器。例如,磁帶上的信息以順序的方式存儲(chǔ)在帶上,讀寫時(shí)要
2、待磁帶移動(dòng)到合適位置后才能順序讀寫,需要耗費(fèi)較多時(shí)間,稱為順序存取存儲(chǔ)器。而磁盤存儲(chǔ)器對(duì)信息的存取包括兩個(gè)操作: 磁頭直接移動(dòng)到信息所在區(qū)域(磁道); 從該磁道的合適位置開始順序讀寫。比磁帶要快得多,是直接存取存儲(chǔ)器。7.1 存儲(chǔ)系統(tǒng)的層次結(jié)構(gòu)衡量存儲(chǔ)器有三個(gè)指標(biāo): 容量、速度和價(jià)格位。一般來講,速度高的存儲(chǔ)器,每位價(jià)格也高,因此容量不能太大。早期計(jì)算機(jī)主存容量很小(如幾K字節(jié)),程序與數(shù)據(jù)從輔存調(diào)入主存是由程序員自己安排的,程序員必須花費(fèi)很大精力和時(shí)間把大程序預(yù)先分成塊,確定好這些程序塊在輔存中的位置和裝入主存的地址,而且還要預(yù)先安排好程序運(yùn)行時(shí)各塊如何和何時(shí)調(diào)入調(diào)出?,F(xiàn)代計(jì)算機(jī)主存儲(chǔ)器容量
3、已達(dá)幾十M字節(jié)到幾百M(fèi)字節(jié),但是程序?qū)Υ鎯?chǔ)容量的要求也提高了,因此仍存在存儲(chǔ)空間的分配問題。操作系統(tǒng)的形成和發(fā)展使得程序員有可能擺脫主、輔存之間的地址人工定位,通過軟件、硬件結(jié)合,把主存和輔存統(tǒng)一成了一個(gè)整體,形成了一個(gè)存儲(chǔ)層次。從整體看,其速度接近于主存的速度,其容量則接近于輔存的容量,而每位平均價(jià)格也接近于廉價(jià)的慢速的輔存平均價(jià)格。這種系統(tǒng)不斷發(fā)展和完善,就逐步形成了現(xiàn)在廣泛使用的虛擬存儲(chǔ)系統(tǒng)。在系統(tǒng)中,應(yīng)用程序員可用機(jī)器指令地址碼對(duì)整個(gè)程序統(tǒng)一編址,如同程序員具有對(duì)應(yīng)這個(gè)地址碼寬度的全部虛存空間一樣。該空間可以比主存實(shí)際空間大得多,以致可以存得下整個(gè)程序。 這種指令地址碼稱為虛地址(虛存
4、地址、虛擬地址)或邏輯地址,其對(duì)應(yīng)的存儲(chǔ)容量稱為虛存容量或虛存空間;而把實(shí)際主存的地址稱為物理地址或?qū)?存)地址,其對(duì)應(yīng)的存儲(chǔ)容量稱為主存容量、實(shí)存容量或?qū)?主)存空間。當(dāng)CPU用虛地址訪問主存時(shí),機(jī)器自動(dòng)地把它經(jīng)輔助軟件、硬件變換成主存實(shí)地址。察看這個(gè)地址所對(duì)應(yīng)的單元內(nèi)容是否已經(jīng)裝入主存,如果在主存就進(jìn)行訪問,如果不在主存內(nèi)就經(jīng)輔助軟件、硬件把它所在的那塊程序和數(shù)據(jù)由輔存調(diào)入主存,而后進(jìn)行訪問。這些操作都不必由程序員來安排,也就是說,對(duì)應(yīng)用程序員是透明的。主-輔存層次滿足了存儲(chǔ)器的大容量和低成本需求。在速度方面,計(jì)算機(jī)的主存和CPU一直保持了大約一個(gè)數(shù)量級(jí)的差距。顯然這個(gè)差距限制了CPU速度
5、潛力的發(fā)揮。為了彌合這個(gè)差距,必須進(jìn)一步從計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)上去研究。設(shè)置高速緩沖存儲(chǔ)器(cache)是解決存取速度的重要方法。在CPU和主存中間設(shè)置高速緩沖存儲(chǔ)器,構(gòu)成高速緩存(cache)-主存層次,要求cache在速度上能跟得上CPU的要求。cache-主存間的地址映像和調(diào)度吸取了比它較早出現(xiàn)的主-輔存存儲(chǔ)層次的技術(shù),不同的是因其速度要求高,不是由軟、硬件結(jié)合而完全由硬件來實(shí)現(xiàn)。從CPU的角度看,cache-主存層次的速度接近于cache,容量與每位價(jià)格則接近于主存。因此,解決了速度與成本之間的矛盾。以上敘述了主存-輔存和cache-主存這兩種存儲(chǔ)層次。現(xiàn)代大多數(shù)計(jì)算機(jī)同時(shí)采用這兩種存儲(chǔ)層次
6、,構(gòu)成cache-主存-輔存三級(jí)存儲(chǔ)層次如圖7.1所示。其中cache容量最小,輔存容量最大,各層次中存放的內(nèi)容都可以在下一層次中找到。這種多層次結(jié)構(gòu)已成為現(xiàn)代計(jì)算機(jī)的典型存儲(chǔ)結(jié)構(gòu)。圖7.1 三層存儲(chǔ)系統(tǒng)7.2.1 cache工作原理 在一個(gè)較短的時(shí)間間隔內(nèi),地址往往集中在存儲(chǔ)器邏輯地址空間的很小范圍內(nèi)。程序地址的分布本來就是連續(xù)的,再加上循環(huán)程序段和子程序段要重復(fù)執(zhí)行多次,因此,對(duì)程序地址的訪問就自然地具有相對(duì)集中的傾向。數(shù)據(jù)分布的這種集中傾向不如指令明顯,但對(duì)數(shù)組的存儲(chǔ)和訪問以及工作單元的選擇都可以使存儲(chǔ)器地址相對(duì)集中。這種對(duì)局部范圍的存儲(chǔ)器地址頻繁訪問,而對(duì)此范圍以外的地址則訪問甚少的現(xiàn)
7、象就稱為程序訪問的局部性。7.2 高速緩沖存儲(chǔ)器(cache) 根據(jù)局部性原理,可以在主存和CPU之間設(shè)置一個(gè)高速的容量相對(duì)較小的存儲(chǔ)器,如果當(dāng)前正在執(zhí)行的程序和數(shù)據(jù)存放在這個(gè)存儲(chǔ)器中,當(dāng)程序運(yùn)行時(shí),不必從主存儲(chǔ)器取指令和取數(shù)據(jù),而訪問這個(gè)高速存儲(chǔ)器即可,所以提高了程序運(yùn)行速度,這個(gè)存儲(chǔ)器稱作高速緩沖存儲(chǔ)器(cache)。cache存儲(chǔ)器介于CPU和主存之間,它的工作速度數(shù)倍于主存,全部功能由硬件實(shí)現(xiàn),并且對(duì)程序員是透明的。圖7.2表示cache的基本結(jié)構(gòu)。圖7.2 cache的基本結(jié)構(gòu)cache的容量和塊的大小是影響cache的效率的重要因素。通常用“命中率”來測(cè)量cache的效率。命中率指
8、CPU所要訪問的信息在cache中的比率,而將所要訪問的信息不在cache中的比率稱為失效率。一般來說,cache的存儲(chǔ)容量比主存的容量小得多,但不能太小,太小會(huì)使命中率太低;也沒有必要過大,過大不僅會(huì)增加成本,而且當(dāng)容量超過一定值后,命中率隨容量的增加將不會(huì)有明顯地增長(zhǎng)。但隨著芯片價(jià)格的下降,cache的容量還是不斷增大,已由幾十K發(fā)展到幾百K字節(jié),甚至達(dá)到幾M字節(jié)。在從主存讀出新的字塊調(diào)入cache存儲(chǔ)器時(shí),如果遇到cache存儲(chǔ)器中相應(yīng)的位置已被其他字塊占有,那么就必須去掉一個(gè)舊的字塊,讓位于一個(gè)新的字塊。這種替換應(yīng)該遵循一定的規(guī)則,最好能使被替換的字塊是下一段時(shí)間內(nèi)估計(jì)最少使用的。這些
9、規(guī)則稱為替換策略或替換算法,由替換部件加以實(shí)現(xiàn)。cache存儲(chǔ)器中保存的字塊是主存中相應(yīng)字塊的一個(gè)副本。如果程序執(zhí)行過程中要對(duì)該字塊的某個(gè)單元進(jìn)行寫操作,就會(huì)遇到如何保持cache與主存的一致性問題。通常有兩種寫入方式: 一種方式是暫時(shí)只向cache存儲(chǔ)器寫入,并用標(biāo)志加以注明,直到經(jīng)過修改的字塊被從cache中替換出來時(shí)才一次寫入主存;第二種方式是每次寫入cache存儲(chǔ)器時(shí)也同時(shí)寫入主存,使cache和主存保持一致。前一種方式稱為標(biāo)志交換(flag-swap)方式。只有寫標(biāo)志“置位”的字塊才有必要最后從cache存儲(chǔ)器一次寫回主存,所以又稱其為“寫回法”。 這種方式寫操作速度快,但因在此以前
10、,主存中的字塊未經(jīng)隨時(shí)修改而可能失效。后一種方式稱為通過式寫(write-through),又稱寫直達(dá)法。這種方式實(shí)現(xiàn)簡(jiǎn)單,且能隨時(shí)保持主存數(shù)據(jù)的正確性。但是,有可能要增加多次不必要的向主存的寫入。假如向cache存儲(chǔ)器某一單元寫入多少次,也要向主存相應(yīng)單元寫入多少次。另有一種寫操作方法是: 當(dāng)被修改的單元根本就不在cache存儲(chǔ)器時(shí),寫操作直接對(duì)主存進(jìn)行,而不寫入cache存儲(chǔ)器。為了說明標(biāo)記是否有效,每個(gè)標(biāo)記至少還應(yīng)設(shè)置一個(gè)有效位,當(dāng)機(jī)器剛加電啟動(dòng)時(shí),總機(jī)的reset信號(hào)或執(zhí)行程序?qū)⑺袠?biāo)記的有效位置“0”,使標(biāo)記無效。在程序執(zhí)行過程中,當(dāng)cache不命中時(shí)逐步將指令塊或數(shù)據(jù)塊從主存調(diào)入c
11、ache中的某一塊,并將這一塊標(biāo)記中的有效位置“1”,當(dāng)再次用到這一塊中的指令或數(shù)據(jù)時(shí),肯定命中,可直接從cache中取指或取數(shù)。從這里也可看到,剛加電后所有標(biāo)記位都為“0”,因此開始執(zhí)行程序時(shí),命中率較低。另外cache的命中率還與程序本身有關(guān),即不同的程序,其命中率可能不同。具有cache的存儲(chǔ)器,其平均存取時(shí)間計(jì)算如下:設(shè)cache的存取時(shí)間為tc,命中率為h,主存的存取時(shí)間為tM,則平均存取時(shí)間=htc+(1-h)(tc+tM)。7.2.2 cache存儲(chǔ)器組織 1. 地址映像為了把信息放到cache存儲(chǔ)器中,必須應(yīng)用某種函數(shù)把主存地址映像到cache,稱作地址映像。在信息按照這種映像
12、關(guān)系裝入cache后,執(zhí)行程序時(shí),應(yīng)將主存地址變換成cache地址,這個(gè)變換過程叫做地址變換。地址的映像和變換是密切相關(guān)的。假設(shè)主存儲(chǔ)器空間被分為Mm(0),Mm(1),Mm(i),Mm(2m-1)共2m個(gè)塊,字塊大小為2b個(gè)字;cache存儲(chǔ)空間被分為Mc(0),Mc(1),Mc(j),Mc(2c-1)共2c個(gè)同樣大小的塊。1) 直接映像在直接映像方式中,主存和cache中字塊的對(duì)應(yīng)關(guān)系如圖7.3所示。直接映像函數(shù)可定義為:j=i mod 2c其中,j是cache的字塊號(hào),i是主存的字塊號(hào)。在這種映像方式中,主存的第0塊,第2c塊,第2c+1塊,只能映像到cache的第0塊,而主存的第1塊,
13、第2c+1塊,第2c+1+1塊,只能映像到cache的第1塊。直接映像的優(yōu)點(diǎn)是實(shí)現(xiàn)簡(jiǎn)單,只需利用主存地址按某些字段直接判斷,即可確定所需字塊是否已在cache存儲(chǔ)器中。 圖7.3 直接映像cache組織2) 全相聯(lián)映像全相聯(lián)映像方式是最靈活但成本最高的一種方式,如圖7.4所示。 圖7.4 全相聯(lián)映像cache組織3) 組相聯(lián)映像組相聯(lián)映像方式是直接映像和全相聯(lián)映像方式的一種折衷方案。組相聯(lián)映像cache組織如圖7.5所示。 組相聯(lián)映像方式的性能與復(fù)雜性介于直接映像與全相聯(lián)映像兩種方式之間。當(dāng)r=0時(shí),它就成為直接映像方式;當(dāng)r=c時(shí),就是全相聯(lián)映像方式。cache的命中率除了與地址映像的方式有
14、關(guān)外,還與cache的容量有關(guān)。cache容量大,命中率高,但達(dá)到一定容量后,命中率的提高就不明顯了。圖7.5 組相聯(lián)映像cache組織 2. 替換算法當(dāng)新的主存字塊需要調(diào)入cache存儲(chǔ)器而它的可用位置又已被占滿時(shí),就產(chǎn)生替換算法問題。先介紹兩種替換算法: 先進(jìn)先出(FIFO)算法和近期最少使用(LRU)算法。FIFO算法總是把一組中最先調(diào)入cache存儲(chǔ)器的字塊替換出去,它不需要隨時(shí)記錄各個(gè)字塊的使用情況,所以實(shí)現(xiàn)容易,開銷小。LRU算法是把一組中近期最少使用的字塊替換出去。這種替換算法需隨時(shí)記錄cache存儲(chǔ)器中各個(gè)字塊的使用情況,以便確定那個(gè)字塊是近期最少使用的字塊。LRU替換算法的平
15、均命中率比FIFO要高,并且當(dāng)分組容量加大時(shí),能提高LRU替換算法的命中率。LRU是最常使用的一種算法。其設(shè)計(jì)思想是把組中各塊的使用情況記錄在一張表上(如圖7.6所示)。另外還有一種隨機(jī)替換法(RAND),這種算法不考慮使用情況,在組內(nèi)隨機(jī)選擇一塊來替換。其性能比根據(jù)使用情況的替換算法要差些。圖7.6 LRU算法替換登記表7.2.3 多層次cache存儲(chǔ)器 1. 指令cache和數(shù)據(jù)cache計(jì)算機(jī)開始實(shí)現(xiàn)cache時(shí),是將指令和數(shù)據(jù)存放在同一cache中的(單一cache有較高的利用率。在執(zhí)行不同程序時(shí),cache中指令和數(shù)據(jù)所占的比例是不同的,在單一cache中,指令和數(shù)據(jù)的空間可以自動(dòng)調(diào)
16、劑)。但是存取數(shù)據(jù)的操作經(jīng)常會(huì)與取指令的操作發(fā)生沖突,從而延遲了指令的讀取。目前將指令cache和數(shù)據(jù)cache分開而成為兩個(gè)相互獨(dú)立的cache(哈佛結(jié)構(gòu))。2. 多層次cache結(jié)構(gòu)近年來新設(shè)計(jì)的微處理芯片將cache分級(jí)集成在片內(nèi)。一般片內(nèi)包含有一級(jí)幾十KB數(shù)據(jù)cache和指令cache,指令cache只讀不寫,其控制比數(shù)據(jù)cache簡(jiǎn)單。CPU每個(gè)核心各有一個(gè)幾百KB的二級(jí)緩存, L1 Cache與L2 Cache連同處理器內(nèi)核共同構(gòu)成了處理器核心。目前CPU還集成了上MB的三級(jí)cache,三級(jí)緩存中包含了所有處理核心的二級(jí)緩存所存儲(chǔ)的內(nèi)容。uCPU系列:酷睿i7 4700uCPU頻率
17、 CPU主頻:3.5GHz、最大睿頻:3.9GHz、外頻:100MHz、倍頻:39倍 uCPU插槽類型:LGA 1150uCPU內(nèi)核 核心代號(hào):Haswell;四核心;八線程;22納米制作工藝;熱設(shè)計(jì)功耗(TDP):84WuCPU緩存一級(jí)緩存:264KB;二級(jí)緩存:4256KB;三級(jí)緩存:8MBu內(nèi)存控制器:雙通道DDR3 1600uL1,L2或L3緩存的Cache行是64字節(jié)長(zhǎng)度u命中率:讀取一級(jí)緩存的命中率為80%。也就是說CPU一級(jí)緩存中找到的有用數(shù)據(jù)占數(shù)據(jù)總量的80%,讀取二級(jí)緩存的命中率也在80%左右(從二級(jí)緩存讀到有用的數(shù)據(jù)占總數(shù)據(jù)的16%),在擁有三級(jí)緩存的CPU中,只有約5%的
18、數(shù)據(jù)需要從內(nèi)存中調(diào)用u組相聯(lián)映像方式u近期最少使用算法(LRU)u寫回策略(信息僅被寫到Cache的相應(yīng)行中,當(dāng)被改變的行被替換出Cache時(shí),其內(nèi)容才被寫回到主存相應(yīng)的塊)uSmart Cache(智能高速緩存):共享二級(jí)緩存技術(shù),每個(gè)核心都可以動(dòng)態(tài)支配全部二級(jí)高速緩存酷睿cpu的CacheCache的四大基本問題1)映像機(jī)構(gòu)(Cache的基本結(jié)構(gòu))在Cache中為每個(gè)行設(shè)置了一個(gè)標(biāo)志以指明該行對(duì)應(yīng)的主存塊地址2)映像方式直接映像、全相聯(lián)映像、組相聯(lián)映像3)替換算法先進(jìn)先出算法(FIFO)、近期最少使用算法(LRU)、隨機(jī)替換算法4)寫策略寫透策略、寫回策略Cache小結(jié)7.3 虛擬存儲(chǔ)器7
19、.3.1 主存輔存層次信息傳送單位和存儲(chǔ)管理主存輔存層次的信息傳送單位可采用幾種不同的方案: 段、頁或段頁。段是利用程序的模塊化性質(zhì),按照程序的邏輯結(jié)構(gòu)劃分成的多個(gè)相對(duì)獨(dú)立部分。段作為獨(dú)立的邏輯單位可以被其他程序段調(diào)用,這樣就形成段間連接,產(chǎn)生規(guī)模較大的程序。一般用段表來指明各段在主存中的位置,如圖7.12所示。每段都有它的名稱(用戶名稱或數(shù)據(jù)結(jié)構(gòu)名或段號(hào))、段起點(diǎn)、段長(zhǎng)等。段表本身也是主存儲(chǔ)器的一個(gè)可再定位段。圖7.7 段式管理主存按段分配的存儲(chǔ)管理方式稱為段式管理。其優(yōu)點(diǎn)是段的分界與程序的自然分界相對(duì)應(yīng);段的邏輯獨(dú)立性使它易于編譯、管理、修改和保護(hù),也便于多道程序共享。其缺點(diǎn)是容易在段間留
20、下許多空余的零碎存儲(chǔ)空間不好利用,造成浪費(fèi)。頁式管理系統(tǒng)的信息傳送單位是定長(zhǎng)的頁,主存的物理空間也被劃分為等長(zhǎng)的固定區(qū)域,稱為頁面。新頁調(diào)入主存也很容易掌握,只要有空白頁面就可??赡茉斐衫速M(fèi)的是程序最后一頁的零頭,它比段式管理系統(tǒng)的空間浪費(fèi)要小得多。頁式管理系統(tǒng)的缺點(diǎn)正好和段式管理系統(tǒng)相反,由于頁不是邏輯上獨(dú)立的實(shí)體,所以處理、保護(hù)和共享都不及段式來得方便。圖7.8表示某個(gè)程序有5頁(邏輯頁號(hào)04),各頁分別裝入主存不連續(xù)的頁面位置,用頁表記錄邏輯頁號(hào)及其所對(duì)應(yīng)的實(shí)主存頁號(hào),頁表是由操作系統(tǒng)建立的。圖7.13中邏輯頁號(hào)0,1,3已分配實(shí)主存空間,所以裝入位為1。段式和頁式存儲(chǔ)管理各有其優(yōu)缺點(diǎn),
21、可以采用段和頁結(jié)合的段頁式存儲(chǔ)管理系統(tǒng)。程序按模塊分段,段內(nèi)再分頁,出入主存仍以頁為信息傳送單位,用段表和頁表(每段一個(gè)頁表)進(jìn)行兩級(jí)管理。圖7.8 頁式管理7.3.2 頁式虛擬存儲(chǔ)器 在頁式虛擬存儲(chǔ)系統(tǒng)中,把虛擬空間分成頁,主存空間也分成同樣大小的頁,稱為實(shí)頁或物理頁,而把前者稱為虛頁或邏輯頁。假設(shè)虛頁號(hào)為0,1,2,m,實(shí)頁號(hào)為0,1,l,顯然有ml。由于頁的大小都取2的整數(shù)冪個(gè)字,所以,頁的起點(diǎn)都落在低位字段為零的地址上。可把虛擬地址分為兩個(gè)字段,高位字段為虛頁號(hào),低位字段為頁內(nèi)字地址。虛擬地址到主存實(shí)地址的變換是由頁表來實(shí)現(xiàn)的。在頁表中,對(duì)應(yīng)每一個(gè)虛存頁號(hào)有一個(gè)表目,表目?jī)?nèi)容至少要包含
22、該虛頁所在的主存頁面地址(頁面號(hào)),用它作為實(shí)(主)存地址的高字段;與虛擬地址的字地址字段相拼接,就產(chǎn)生完整的實(shí)主存地址,據(jù)此訪問主存。頁式管理的地址變換如圖7.9所示。圖7.9 頁式虛擬存儲(chǔ)器結(jié)構(gòu)通常,在頁表的表項(xiàng)中還包括裝入位(有效位)、修改位、替換控制位及其他保護(hù)位等組成的控制字。如裝入位為“1”,表示該虛頁已從輔存調(diào)入主存;如裝入位為“0”,則表示對(duì)應(yīng)的虛頁尚未調(diào)入主存,如訪問該頁就要產(chǎn)生頁面失效中斷,啟動(dòng)輸入輸出子系統(tǒng),根據(jù)外頁表項(xiàng)目中查得的輔存地址,由磁盤等輔存中讀出新的頁到主存中來。修改位指出主存頁面中的內(nèi)容是否被修改過,替換時(shí)是否要寫回輔存。替換控制位指出需替換的頁等。假設(shè)頁表
23、是保存在(或已調(diào)入)主存儲(chǔ)器中,那么,在訪問存儲(chǔ)器時(shí),首先要查頁表,即使頁面命中,也得先訪問一次主存去查頁表,再訪問主存才能取得數(shù)據(jù),這就相當(dāng)于主存速度降低了一倍。如果頁面失效,要進(jìn)行頁面替換,頁面修改,訪問主存次數(shù)就更多了。因此,把頁表的最活動(dòng)部分存放在快速存儲(chǔ)器中組成快表,這是減少時(shí)間開銷的一種方法。此外,在一些影響工作速度的關(guān)鍵部分引入了硬件支持。例如,采用按內(nèi)容查找的相聯(lián)存儲(chǔ)器并行查找,也是可供選擇的技術(shù)途徑。一種經(jīng)快表與慢表實(shí)現(xiàn)內(nèi)部地址變換的方式如圖7.10所示。 圖7.10 使用快表和慢表實(shí)現(xiàn)虛實(shí)地址變換7.3.3 段頁式虛擬存儲(chǔ)器在段頁式虛擬存儲(chǔ)器中,把程序按邏輯結(jié)構(gòu)分段以后,再
24、把每段分成固定大小的頁。程序?qū)χ鞔娴恼{(diào)入調(diào)出是按頁面進(jìn)行的,但它又可以按段實(shí)現(xiàn)共享和保護(hù)。因此,它可以兼取頁式和段式系統(tǒng)的優(yōu)點(diǎn)。它的缺點(diǎn)是在地址映像過程中需要多次查表,在這種系統(tǒng)中,虛擬地址轉(zhuǎn)換成物理地址是通過一個(gè)段表和一組頁表來進(jìn)行定位的。段表中的每個(gè)表目對(duì)應(yīng)一個(gè)段,每個(gè)表目有一個(gè)指向該段的頁表的起始地址(頁號(hào))及該段的控制保護(hù)信息。由頁表指明該段各頁在主存中的位置以及是否已裝入、已修改等標(biāo)志。如果有多個(gè)用戶在機(jī)器上運(yùn)行,稱為多道程序,多道程序的每一道(每個(gè)用戶)需要一個(gè)基號(hào)(用戶標(biāo)志號(hào)),可由它指明該道程序的段表起點(diǎn)(存放在基址寄存器中)。這樣,虛擬地址應(yīng)包括基號(hào)D、段號(hào)S、頁號(hào)P、頁內(nèi)地
25、址d。格式如下:基號(hào)D 段號(hào)S 頁號(hào)P 頁內(nèi)地址d現(xiàn)舉例說明段頁式地址變換過程。如圖7.11所示。當(dāng)要訪問的程序地址為D道1段0頁4單元時(shí),其地址變換過程如圖7.12所示 。圖7.11 段頁式存儲(chǔ)舉例 圖7.12 段頁式虛擬存儲(chǔ)器地址變換7.3.4 虛擬存儲(chǔ)器工作的全過程 對(duì)虛擬存儲(chǔ)器來說,程序員按虛存儲(chǔ)空間編制程序,在直接尋址方式下由機(jī)器指令的地址碼給出地址。這個(gè)地址碼就是虛地址,可由虛頁號(hào)及頁內(nèi)地址組成,如下所示:虛地址 虛頁號(hào)Nv 頁內(nèi)地址Nr這個(gè)虛地址實(shí)際上不是輔存的實(shí)地址,而是輔存的邏輯地址。因此,在虛擬存儲(chǔ)器中還應(yīng)有虛擬地址到輔存實(shí)地址的變換。輔存一般按信息塊編址,而不是按字編址,
26、若使一個(gè)塊的大小等于一個(gè)虛頁面的大小,這樣就只需把虛頁號(hào)變換到Nvd即可完成虛地址到輔存實(shí)地址的變換。為此,可采用頁表的方式,把由Nv變換成Nvd的表稱為外頁表,而把Nv變換到主存頁號(hào)的表稱為內(nèi)頁表。虛擬存儲(chǔ)器的工作全過程如圖7.13所示。圖7.13 多用戶虛擬存儲(chǔ)器工作過程 7.3.5 存儲(chǔ)管理部件(MMU)現(xiàn)代計(jì)算機(jī)一般都有輔助存儲(chǔ)器,但具有輔存的存儲(chǔ)系統(tǒng)不一定是虛擬存儲(chǔ)系統(tǒng)。虛擬存儲(chǔ)系統(tǒng)有兩大特點(diǎn):(1) 允許用戶用比主存空間大得多的空間來訪問主存。(2) 每次訪存都要進(jìn)行虛實(shí)地址的轉(zhuǎn)換。為了實(shí)現(xiàn)邏輯地址到物理地址的轉(zhuǎn)換,并在頁面失效時(shí)(即被訪問的頁面不在主存)進(jìn)入操作系統(tǒng)環(huán)境,設(shè)置了由
27、硬件實(shí)現(xiàn)的存儲(chǔ)管理部件MMU,而整個(gè)虛擬存儲(chǔ)器的管理是由MMU部件與操作系統(tǒng)共同完成的。7.4 相聯(lián)存儲(chǔ)器在cache和虛擬存儲(chǔ)器中,已經(jīng)用到按內(nèi)容尋址的相聯(lián)存儲(chǔ)器,在這里將討論相聯(lián)存儲(chǔ)器的基本概念。相聯(lián)存儲(chǔ)器不按地址訪問存儲(chǔ)器,而按所存數(shù)據(jù)字的全部?jī)?nèi)容或部分內(nèi)容進(jìn)行查找(或檢索)。例如,在虛擬存儲(chǔ)器中,將虛地址的虛頁號(hào)與相聯(lián)存儲(chǔ)器中所有行的虛頁號(hào)進(jìn)行比較,若有內(nèi)容相等的行,則將其相應(yīng)的實(shí)頁號(hào)取出,這是按數(shù)據(jù)字的部分內(nèi)容進(jìn)行檢索的例子。相聯(lián)存儲(chǔ)器的基本組成如圖7.14所示。 圖7.14 相聯(lián)存儲(chǔ)器框圖假如某高校學(xué)生入學(xué)考試總成績(jī)已存入相聯(lián)存儲(chǔ)器如圖7.15所示。今要求列出“總分”在560分60
28、0分范圍內(nèi)的考生名單。這可以用二次查找完成。為了進(jìn)行檢索,還要求相聯(lián)存儲(chǔ)器能進(jìn)行各種比較操作(相等、不等、小于、大于、求最大值和最小值等)。比較操作是并行進(jìn)行的,即CR中的關(guān)鍵字段與存儲(chǔ)器的所有W個(gè)字的相應(yīng)字段同時(shí)進(jìn)行比較。圖7.15 相聯(lián)存儲(chǔ)器檢索舉例相聯(lián)存儲(chǔ)器除了應(yīng)用于虛擬存儲(chǔ)器與cache中以外,還經(jīng)常用于數(shù)據(jù)庫與知識(shí)庫中按關(guān)鍵字進(jìn)行檢索。從按地址訪問的存儲(chǔ)器中檢索出某一單元,平均約進(jìn)行m/2次操作(m為存儲(chǔ)單元數(shù)),而在相聯(lián)存儲(chǔ)器中僅需要進(jìn)行一次檢索操作,因此大大提高了處理速度。近年來相聯(lián)存儲(chǔ)器用于一些新型的并行處理和人工智能系統(tǒng)結(jié)構(gòu)中。例如,在語音識(shí)別、圖像處理、數(shù)據(jù)流計(jì)算機(jī)、Prolog機(jī)中都有采用相聯(lián)存儲(chǔ)器的例子。7.5 存儲(chǔ)保護(hù)由于多個(gè)用戶對(duì)主存的共享,就有多個(gè)用戶程序和系統(tǒng)軟件存于主存中。為使系統(tǒng)能正常工作,要防止由于一個(gè)用戶程序出錯(cuò)而破壞其他用戶的程序和系統(tǒng)軟件,還要防止一個(gè)用戶程序不合法地訪問不是分配給它的主存區(qū)域。為此,系統(tǒng)應(yīng)提供存儲(chǔ)保護(hù)。存儲(chǔ)保護(hù)主要包括兩個(gè)方面:存儲(chǔ)區(qū)域保護(hù)和訪問方式的保護(hù)。1. 存儲(chǔ)區(qū)域保護(hù)對(duì)于不是虛擬存儲(chǔ)器的主存系統(tǒng)可采用界限寄
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 戶外會(huì)員活動(dòng)方案
- 戶外品牌線下活動(dòng)方案
- 戶外大型誦讀活動(dòng)方案
- 戶外民謠活動(dòng)方案
- 戶外游戲騎行活動(dòng)方案
- 戶外畫臉譜活動(dòng)方案
- 戶外美術(shù)親子活動(dòng)方案
- 戶外訂婚游戲活動(dòng)方案
- 戶外郊游活動(dòng)方案
- 房東龍舟大賽活動(dòng)方案
- 家庭急救包物品清單
- 回顧與展望講課件
- 附件:小學(xué)2025年暑假跨學(xué)科實(shí)踐作業(yè)實(shí)施方案
- 2024年 北京市公務(wù)員考試(行測(cè))考試真題試題(附答案)
- 實(shí)驗(yàn)室菌種管理制度
- 如何當(dāng)好一名班主任 課件-2024-2025學(xué)年高一下學(xué)期班主任工作經(jīng)驗(yàn)分享
- 2025年基礎(chǔ)電氣工程考試試題及答案
- 鎮(zhèn)江市鑫泰絕緣材料有限公司新型絕緣材料生產(chǎn)項(xiàng)目環(huán)評(píng)資料環(huán)境影響
- 商業(yè)領(lǐng)域的數(shù)字化轉(zhuǎn)型與人才培養(yǎng)的深度融合研究報(bào)告
- 2025年木板式家具行業(yè)深度研究報(bào)告
- 2025屆陜西省西安西工大附中物理八下期末質(zhì)量檢測(cè)試題含解析
評(píng)論
0/150
提交評(píng)論