




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第4章 存儲系統(tǒng)組織與結(jié)構(gòu),本章結(jié)構(gòu),4.1 存儲系統(tǒng)概述,存儲器的組織 存儲器的分類 存儲器的分層結(jié)構(gòu),1. 存儲器的組織,從物理上講,存儲器是由具有一定記憶功能的物理器件構(gòu)成的。 從邏輯上講,存儲器可以看成是由一個個存儲單元構(gòu)成的連續(xù)的地址空間。,如圖4-1是存儲器的邏輯組織結(jié)構(gòu)圖。,計算機CPU對存儲器的操作主要有兩種:一是讀,二是寫。 所謂“讀”,是指CPU將某個指定的存儲單元的內(nèi)容從存儲器中取出,送入CPU或其它部件中處理; 所謂“寫”,是指CPU將其它某個部件中的數(shù)據(jù)寫入到指定的存儲單元。 CPU對存儲器的讀、寫操作統(tǒng)稱為CPU訪存操作。,一般來講,CPU與存儲器之間的物理連接主要
2、包括三組信號線:地址線、數(shù)據(jù)線和控制線,如圖4-2 示。,CPU對存儲器的讀操作過程如下: 要訪問的存儲單元地址AR AR內(nèi)容送地址總線 CPU發(fā)出讀命令READ 存儲單元內(nèi)容讀出至數(shù)據(jù)總線 數(shù)據(jù)總線DR,CPU對存儲器的寫操作過程如下: 要訪問的存儲單元地址AR 要寫入的數(shù)據(jù)DR AR內(nèi)容送地址總線 DR內(nèi)容送數(shù)據(jù)總線 發(fā)出寫命令WRITE DR中的內(nèi)容寫入存儲單元,2. 存儲器的分類,按照存儲器在計算機中的作用劃分,主要包括計算機主存、計算機輔存和高速緩存。 主存(Memory)又稱為計算機內(nèi)存,就是馮諾依曼結(jié)構(gòu)中的存儲器,用于存儲要執(zhí)行的程序和處理的數(shù)據(jù) 輔存(Storage)又稱為計算
3、機外存,在現(xiàn)代馮諾依曼機器中,程序在執(zhí)行之前是以文件的方式存儲在外存中,當要運行某程序時,由操作系統(tǒng)將該程序從外存調(diào)入內(nèi)存中; 高速緩存(Cache)是一種小容量、高速度的存儲器,目前,在計算機的主板和CPU中均設(shè)置了高速緩存,設(shè)置高速緩存的目的是利用程序的局部性原理實現(xiàn)計算機的存儲層次,提高CPU的訪存速度,以匹配CPU和主存之間在速度上的差異。,按照存儲器所使用的物理存儲介質(zhì)或材料劃分,目前主流存儲器主要有三種: 半導(dǎo)體存儲器; 磁介質(zhì)存儲器; 光存儲器。 在現(xiàn)代計算機中,半導(dǎo)體存儲器主要用作計算機的主存,而磁介質(zhì)存儲器和光存儲器則用作計算機輔存。,按照存儲器的讀寫功能劃分,主要有兩種:
4、一是隨機存取存儲器RAM,可以對存儲單元按地址隨機存?。?二是只讀存儲器ROM,在正常工作條件下,對單元內(nèi)容只可讀不可寫。,RAM和ROM均屬于半導(dǎo)體存儲器,是構(gòu)成計算機主存的主要存儲介質(zhì),而其中RAM在計算機中用于存儲操作系統(tǒng)的常駐內(nèi)存部分和用戶程序,ROM則用于存儲操作系統(tǒng)的內(nèi)核。,存儲器還有易失性和非易失性之分。 所謂易失性是指寫入存儲器中的內(nèi)容在通電情況下能夠保存,一掉電則全部丟失; 非易失性則是指寫入存儲器中的內(nèi)容在不通電情況下仍然能夠保存。,將以上類型的存儲器總結(jié)如下圖4-4所示。,知識拓展:Flash Memory,Flash memory稱為閃速存儲器(簡稱閃存),是在EPRO
5、M的基礎(chǔ)上發(fā)展起來的一種新型半導(dǎo)體存儲器,于1983年推出,1988年逐漸商品化,進入90年代中后期開始逐步得到廣泛應(yīng)用。從功能特性上講,它可以歸屬于ROM,因為它具有非易失性的特點。但從目前計算機的使用上講,它是作為計算機外部存儲器來使用的。,3. 存儲器的分層結(jié)構(gòu),用戶對計算機存儲器的要求:,容量大,速度快,成本低,為了解決對存儲器要求容量大,速度快,成本低三者之間的矛盾,目前通常采用多級存儲器體系結(jié)構(gòu)。,存儲器的層次中包括高速緩沖存儲器Cache、主存和輔存,其中: Cache是由小容量(通常為幾十KB到幾十MB)、高速的半導(dǎo)體存儲器件構(gòu)成; 主存一般使用動態(tài)半導(dǎo)體存儲器件構(gòu)成,在速度上
6、比Cache慢,但容量更大,價格相對更低,現(xiàn)代機器根據(jù)應(yīng)用要求的不同通常將主存配置到幾百MB到幾十GB甚至更大; 輔存又稱海量存儲器,通常由磁介質(zhì)存儲器構(gòu)成,其特點是容量大,速度慢,價格最便宜。 Cache又可以進一步分為片上Cache和板上Cache。片上Cache是指CPU內(nèi)部配置的Cache,又稱為一級Cache,板上Cache是指計算機主板上配置的Cache,又稱為二級Cache。一級Cache比二級Cache的容量更小,但速度更快。在有些機器中,還進一步將指令和數(shù)據(jù)分開,分別存放在指令緩存和數(shù)據(jù)緩存中。,4.2 半導(dǎo)體存儲器,半導(dǎo)體存儲器的種類 半導(dǎo)體存儲器的組成與工作原理 主存儲器
7、的設(shè)計,1.半導(dǎo)體存儲器的種類,隨機存取存儲器RAM按構(gòu)成其單元電路的不同,又分為靜態(tài)隨機存取存儲器(簡稱SRAM)和動態(tài)隨機存取存儲器(簡稱DRAM)。 這兩種存儲器相比較而言,SRAM速度更快,但片容量小,價格更貴,因此SRAM主要用作計算機的cache,而DRAM則用作計算機主存。,只讀存儲器ROM種類較多,主要包括傳統(tǒng)的掩膜式ROM、一次可編程式ROM(PROM)、紫外線可擦除可編程式ROM(UVEPROM)和電可擦除可編程式ROM(EEPROM)。 前三種ROM在正常工作條件下只可讀不可寫,是真正意義上的只讀存儲器,而EEPROM實際上可讀可寫,但與RAM相比較,最大的不同是:它們均
8、是非易失性的。,掩膜式ROM是一種定制式ROM,生產(chǎn)廠家根據(jù)用戶的需要專門制作掩膜版,將用戶提交的程序或數(shù)據(jù)固定制作在芯片上。 這種芯片的特點是,一旦制作好,芯片中的內(nèi)容就無法進行修改。因此,這種芯片主要用于用戶需大批量生產(chǎn)具有固定功能的ROM的場合使用,如在工業(yè)控制、家用電器等中均有應(yīng)用。,一次可編程式PROM(Programmable ROM)顧名思義是這種存儲器可以進行一次寫入或編程。PROM出廠時是空片,芯片的內(nèi)容為全0或全1,用戶可以根據(jù)自己的需要將編制好的程序或數(shù)據(jù)一次寫入,一旦寫入內(nèi)容就無法再進行修改。 PROM相對掩膜式ROM來說,使用更加靈活,用戶可以根據(jù)自己的需要批量購買,
9、也可以只購買幾片。,紫外線可擦除可編程式UVEPROM(UV Erasable Programmable ROM)是一種可重復(fù)改寫的ROM,當用戶要對芯片中的內(nèi)容進行修改或重寫時,需首先使用紫外線對芯片的擦除窗口進行照射(一般可放置在專門的紫外線光源下照射),經(jīng)過一段時間后,芯片中的內(nèi)容全部被擦除,成為空片,然后使用專門的編程器,將新的內(nèi)容寫入芯片中。,UVEPROM和編程器例圖。,電可擦除可編程式EEPROM 可以實現(xiàn)在板上直接擦除和改寫。 由于EEPROM的靈活性使其得到廣泛的應(yīng)用。,半導(dǎo)體存儲器的種類總結(jié)如下圖4-8所示。,2.半導(dǎo)體存儲器的組成與工作原理,半導(dǎo)體存儲器是由一個個位單元電
10、路組成,每個位單元電路存儲一位二進制信息。,(1)靜態(tài)RAM的組成及工作原理,靜態(tài)RAM的位單元電路使用由三極管構(gòu)成的觸發(fā)器組成,利用觸發(fā)器的狀態(tài)存儲0、1信息。,如圖4-9是一個MOS型六管靜態(tài)RAM單元電路的構(gòu)成圖。,如圖4-10是一個靜態(tài)RAM芯片的組成結(jié)構(gòu)圖。,(2)動態(tài)RAM的組成及工作原理,動態(tài)RAM的位單元電路與靜態(tài)RAM 相比有很大的不同,靜態(tài)RAM的位單元電路是依靠由三極管構(gòu)成的觸發(fā)器的狀態(tài)來存儲0、1信息的,而動態(tài)RAM的位單元電路則是依靠三極管上的極電容的電荷的有無來存儲0、1信息的。,如圖4-11是一個單管動態(tài)RAM位單元電路。,(3)ROM的組成及工作原理,圖4-12
11、給出了一個掩膜式ROM組成示意圖。,知識拓展:新型動態(tài)存儲器SDRAM和DDR,SDRAM全稱為同步動態(tài)隨機存取存儲器(Synchronous Dynamic Random Access Memory),是一種新型動態(tài)存儲器。傳統(tǒng)的DRAM是異步工作的,CPU向存儲器發(fā)送地址和控制信號后,需等待存儲器進行內(nèi)部操作(地址譯碼、讀出信號放大、輸出緩沖等),從而影響了系統(tǒng)性能。而SDRAM與CPU之間是同步工作的,在進行存儲器內(nèi)部操作的同時,允許CPU做其他的事情,而無需空等待。,DDR全稱為雙倍速率同步動態(tài)隨機存取存儲器,即DDR SDRAM(Double Date Rate Synchronou
12、s Dynamic Random Access Memory),是一種在SDRAM基礎(chǔ)上發(fā)展起來的具有雙數(shù)據(jù)速率的新型動態(tài)存儲器,由三星公司于1996年提出,并得到了一些主要芯片組廠商的支持。 SDRAM是在每一個時鐘周期的時鐘的上升沿進行一次數(shù)據(jù)傳輸;而DDR則是在每一個時鐘周期內(nèi)傳輸兩次數(shù)據(jù),即分別在時鐘的上升沿和下降沿各傳輸一次數(shù)據(jù),因此稱為雙倍速率同步動態(tài)隨機存取存儲器。,DDR2、 DDR3、 DDR4,在同等核心頻率下,DDR2的實際工作頻率是DDR的兩倍。這得益于DDR2內(nèi)存擁有兩倍于標準DDR內(nèi)存的4BIT預(yù)讀取能力。換句話說,雖然DDR2和DDR一樣,都采用 DDR2內(nèi)存的頻
13、率了在時鐘的上升延和下降延同時進行數(shù)據(jù)傳輸?shù)幕痉绞?,但DDR2擁有兩倍于DDR的預(yù)讀取系統(tǒng)命令數(shù)據(jù)的能力。 DDR3 DDR4,3. 主存儲器的設(shè)計,半導(dǎo)體存儲器是構(gòu)成現(xiàn)代計算機主存儲器的主要存儲介質(zhì),在進行計算機主存儲器設(shè)計時,主要要考慮以下幾方面的因素: 存儲器芯片的選擇,半導(dǎo)體存儲器芯片種類繁多,在選擇存儲器芯片構(gòu)成機器主存儲器時,應(yīng)根據(jù)需要合理選擇。 CPU與存儲器的速度匹配,機器的性能是由多方面的因素決定的,其中CPU訪存速度是影響機器性能的關(guān)鍵因素之一,高性能CPU需要高速的存儲器相匹配。 存儲器與CPU的信號連接,主要包括數(shù)據(jù)信號線、地址信號線和控制信號線的連接等。,(1)半導(dǎo)
14、體存儲器芯片,半導(dǎo)體存儲器芯片的性能主要體現(xiàn)在兩個方面:一是芯片的容量,二是芯片的存取速度。存儲器芯片的容量可以表征為以下形式: 容量字數(shù)位數(shù) 其中,字數(shù)表示存儲器芯片所具有的字單元數(shù),而位數(shù)則表示每一個字單元所具有的位單元數(shù)。,半導(dǎo)體存儲器芯片是通過引出腳與外部連接的。引出腳主要包括四類:數(shù)據(jù)引腳、地址引腳、控制引腳和電源及接地引腳。,圖4-13(a)、(b)、(c)分別給出的是三種芯片256K位的SRAM、16M位的DRAM和8M位的EPROM的引腳圖。,引腳功能說明。,在有些場合,為突出芯片的引腳功能,也常常給出它們的引腳符號圖。靜態(tài)RAM芯片2114和動態(tài)RAM芯片2116的引腳符號圖
15、如圖4-14所示。,(2) 半導(dǎo)體存儲器讀寫周期,存儲器芯片在出廠時,其存取速度就已經(jīng)確定,廠家在對芯片的有關(guān)技術(shù)說明中會給出其存取速度的相關(guān)技術(shù)參數(shù),這一技術(shù)參數(shù)主要是通過存儲器的讀寫周期(又稱為存儲周期)來反映的,而讀寫周期是通過波形圖(又稱時序圖)來體現(xiàn)的。,2114的讀周期波形圖,2114的寫周期波形圖,在進行機器硬件系統(tǒng)設(shè)計時,一方面要保證邏輯電路設(shè)計的正確性,另一方面還要保證時序設(shè)計的正確性,兩者缺一不可。,(3)半導(dǎo)體存儲器與CPU的連接,在構(gòu)成計算機主存儲器時,還需要根據(jù)機器容量的要求和所選用的半導(dǎo)體存儲器芯片容量的情況進行綜合設(shè)計。當單片存儲器芯片的容量不能直接滿足主存儲器容
16、量的要求時,需要選擇多片進行容量擴展連接,以構(gòu)成主存儲器模塊。 下面我們分三種情況介紹存儲器的容量擴展連接。,(1)位擴展連接 設(shè)主存儲器的容量為MN位,而選用的存儲器芯片的容量為Mn位。,具體連接方法是: 所有芯片的地址線A對應(yīng)連接在一起; 所有芯片的片選信號線CE對應(yīng)連接在一起; 所有芯片的讀寫WE線對應(yīng)連接在一起; 每個芯片的數(shù)據(jù)線各自單獨引出。,【例4.1】使用一種64M4位的存儲器芯片構(gòu)成64M16的主存儲器,并與一個16位的CPU連接。,解:64M4位的存儲器芯片構(gòu)成64M16的主存儲器需要的芯片數(shù)為16/44片,并進行位擴展連接,如下圖4-18所示。,(2)字擴展連接 字擴展連接
17、的情況是:設(shè)主存儲器的容量為MN位,而選用的存儲器芯片的容量為mN位。,具體連接方法是: 所有芯片的地址線A與CPU的低位對應(yīng)地址線連接在一起; 所有芯片的數(shù)據(jù)線對應(yīng)連接在一起; 所有芯片的讀寫WE線對應(yīng)連接在一起; 每個芯片的片選信號線CE各自單獨引出,并由CPU剩余的部分高位地址線產(chǎn)生。,【例4.2】使用一種16M16位的存儲器芯片構(gòu)成64M16的主存儲器,并與一個16位的CPU連接。 分析:單個16M16位 芯片內(nèi)有16M個存儲單元, 16M=224, 需要24位二進制地址碼片內(nèi)尋址;每個單元可以存儲16位二進制數(shù),與主存的字長一致。 而要構(gòu)造的主存容量為64M16位, 要64M個存儲單
18、元,因此要用多個16M16位 芯片進行存儲單元數(shù)的擴展,即字擴展。,(),解(1),(2)地址空間的劃分,第1 組地址,第2 組地址,第3 組地址,第4 組地址,地址譯碼,譯碼(Decode) 將某個特定的編碼輸入翻譯為有效輸出的過程 存儲器譯碼電路 可編程邏輯器件PLD 譯碼器 門電路組合,(3)與CPU的連接,(3)字位擴展連接 字位擴展連接的情況是:設(shè)主存儲器的容量為MN位,而選用的存儲器芯片的容量為mn位,其中,M、N分別是m、n的整數(shù)倍。 在這種情況下,單片存儲器芯片的字單元數(shù)和字單元的位數(shù)均不能滿足主存儲器的要求。這時,需要進行一種字位擴展連接,使用(M/m)(N/n)個芯片連接起
19、來,連接方法就是將以上兩種情況結(jié)合起來考慮。,4.3 交叉存儲技術(shù),1. 交叉存儲技術(shù)的基本思想 2. 交叉存儲器模塊的組織 3. 交叉存儲器的組成,1. 交叉存儲技術(shù)的基本思想,先來看一個生活中的例子。 假設(shè)某一產(chǎn)品需要兩道生產(chǎn)工序完成,分別是工序1和工序2,且兩道工序采用流水作業(yè)的方式進行?,F(xiàn)在安排兩個工人A、B分別做工序1和工序2,其中工人A完成工序1的時間是t,而工人B完成工序2的時間是3t。那么,在這種情況下,流水線將每隔3t的時間生產(chǎn)出一個該產(chǎn)品。,現(xiàn)在我們改變一下流水模式,增加2個工作速度與B相同的工人C、D都來做工序2,這樣就是工人A一人做工序1,而工人B、C、D三人同時做工序
20、2。在4個工人都滿負荷工作的情況下,流水線將每隔t的時間生產(chǎn)出一個該產(chǎn)品。,我們可以吸取這一思想,應(yīng)用到計算機CPU與存儲系統(tǒng)的配置上。 由于CPU的速度遠比存儲器的速度快,當采用單CPU和單存儲器模塊時,CPU每進行一次訪存操作,都需要等待存儲器的操作,且一個訪存周期只能從單個的存儲器模塊中存取一個字單元。如果我們多配置幾個存儲器模塊,讓CPU與多模塊的存儲器之間采用以上后一種流水模式進行工作,那么,就可以實現(xiàn)一個訪存周期能從多個的存儲器模塊中存取多個字單元。,2. 交叉存儲器模塊的組織,為了實現(xiàn)CPU在一個訪存周期能從多個的存儲器模塊中存取多個字單元的目標,我們還需要對存儲器模塊的組織進行
21、合理的配置。,假設(shè)存儲器共有32個字單元,分為4個模塊,每個模塊有8個字單元。我們考察以下兩種編址方式: 一是每個模塊仍然像傳統(tǒng)存儲器一樣進行線性編址,即模塊1的單元地址是07,模塊2的單元地址是815,模塊3的單元地址是1623,模塊4的單元地址是2431; 二是采用交叉編址的方式,即模塊間的單元地址是連續(xù)的,而模塊內(nèi)的單元地址是不連續(xù)的。,(a)線性方式 (b)交叉方式,在采用圖(a)的線性方式編址的情況下,當CPU 要同時訪問多個連續(xù)的存儲單元時,這些單元分布在同一模塊的概率是最大的。 例如CPU 在某一訪存周期需向存儲器讀4個字單元的數(shù)據(jù),這4個字單元地址是連續(xù)的,那么它們只有可能分布
22、在一個或兩個存儲模塊中。由于對于每個存儲模塊來說,一個訪存周期只能讀寫一個字單元,因此,采用這種線性編址方式并不能使CPU在一個訪存周期存取多個字單元。,而采用圖(b)的交叉編址方式則不同,當CPU 要同時訪問多個連續(xù)的存儲單元時,由于交叉編址的特殊性,使得這些單元會分布在不同模塊。 例如CPU 在某一訪存周期需向存儲器讀4個字單元的數(shù)據(jù),這4個字單元地址是連續(xù)的,那么它們會分別分布在四個存儲模塊中。由于每個存儲模塊均能獨立進行讀寫操作,這就使得CPU在一個訪存周期能夠同時存取多個字單元。,在交叉編址情況下: 由于數(shù)據(jù)總線一次只能容納一個字單元數(shù)據(jù),因此,這多個存儲模塊必須采取在時間上交錯開來
23、的方式與CPU通過數(shù)據(jù)總線交換數(shù)據(jù)。 理想情況下,若CPU 的總線操作速度是存儲器的讀寫速度的n倍,則應(yīng)配置不少于n個存儲模塊與CPU相匹配。,定量分析:假設(shè)每個模塊的字單元長度等于數(shù)據(jù)總線寬度,存儲器模塊的存儲周期為T,CPU 的總線傳送周期為(即CPU 從總線讀取一個字單元或向總線寫一個字單元的時間為),存儲器的交叉模塊數(shù)為m,為了實現(xiàn)流水線方式存取,應(yīng)當滿足: Tm,CPU與單模塊存儲器和采用交叉編址方式的多模塊存儲器之間的數(shù)據(jù)存取示意圖 。,(a)單模塊存儲器 (b)多模塊交叉存儲器,從圖中可以看出,CPU向單模塊存儲器存取n個數(shù)據(jù)所需的總時間為nT,采用的是完全順序存取方式;而CPU
24、向多模塊交叉存儲器存取n個數(shù)據(jù)所需的總時間為T+(n-1),采用的是在時間上交錯開來的并行存取方式。,3. 交叉存儲器的組成,在多模塊交叉存儲系統(tǒng)中,為保證每個模塊均能夠進行獨立的讀寫操作,需為每個存儲模塊配置獨立的讀寫電路,并由一個存儲器控制部件進行順序控制。,如圖4-25是一個四模塊交叉存儲器的組成結(jié)構(gòu)圖。,4.4 高速緩沖存儲器,Cache實現(xiàn)的基本原理 主存與Cache的地址映射 替換算法 Cache的寫策略 Cache性能分析 Cache舉例:Pentium4的Cache組織,1. Cache實現(xiàn)的基本原理,程序的局部性原理:對大量典型程序運行情況的分析結(jié)果表明,在一個較短的時間間隔
25、內(nèi),CPU對一個程序指令的訪問往往集中在一個較小的存儲器邏輯地址空間范圍內(nèi),也就是說,CPU取指令和取數(shù)據(jù)的操作具有空間上局部分布的傾向,這種現(xiàn)象就稱為程序訪問的局部性。,Cache的基本思想,基于程序的局部性原理,在CPU 與主存之間設(shè)置一個小容量的高速緩沖存儲器Cache,當一個程序調(diào)入主存運行時,將該程序當前要執(zhí)行的指令及其后將執(zhí)行的一部分指令同時調(diào)入Cache中,CPU每次首先從Cache中取指令執(zhí)行,根據(jù)程序的局部性原理,CPU 大部分情況下可以在Cache中取到指令(稱為命中),只要命中率足夠的高,就可以使得CPU訪存的速度接近于訪Cache的速度。,Cache的工作原理,Cach
26、e工作原理圖,CPU的訪存地址(主存地址)首先通過一個主存-Cache的地址映射機構(gòu)轉(zhuǎn)換成一個訪Cache的地址。 如果CPU要訪問的這一單元內(nèi)容已經(jīng)在Cache中,則本次訪Cache命中,于是從Cache中將該單元的內(nèi)容讀出,并送CPU;若CPU要訪問的這一單元不在Cache中,則本次訪Cache不命中,于是使用CPU的訪存地址直接訪問主存,從主存中將該單元的內(nèi)容讀出,并送CPU,從而完成了一次CPU的訪存操作。,在Cache存儲器組織中,Cache和主存都按塊進行組織,每一個塊由若干個字單元組成,且主存的塊和Cache的塊大小相同。在不命中的情況下,CPU訪存結(jié)束后,還需將本次所訪問的單元
27、所在主存的塊的全部單元內(nèi)容調(diào)入Cache中。若當前Cache已滿,則需將Cache中的一個舊塊替換出來。,2. 主存與Cache的地址映射,CPU每次訪存時,給出的是一個主存地址。但在Cache-主存層次中,CPU首先訪問的是Cache,并不是主存。為此,需要一種機制將CPU的訪主存地址轉(zhuǎn)換成訪Cache地址。 主存地址與Cache地址之間的轉(zhuǎn)換是與主存塊與Cache塊之間的映射關(guān)系緊密聯(lián)系的。 主要有三種地址映射方式,分別為全相聯(lián)映射、直接相聯(lián)映射和組相聯(lián)映射。,全相聯(lián)映射,全相聯(lián)映射是指主存中任一塊都可以映射到Cache中任一塊的方式。 例如,設(shè)Cache共有2C塊,主存共有2M塊,當主存
28、的某一塊j需調(diào)進Cache中時,它可以存入Cache的塊0、塊1、塊i、 或塊2C-1 的任意一塊上。,地址轉(zhuǎn)換過程:,全相聯(lián)映射方式的優(yōu)點是Cache的空間利用率高,但缺點是相聯(lián)存儲器龐大,比較電路復(fù)雜,因此只適合于小容量的Cache之用。,直接相聯(lián)映射,直接相聯(lián)映射方式是指主存的某塊j只能映射到滿足如下特定關(guān)系的Cache塊i中: ij mod 2C,地址轉(zhuǎn)換過程:,直接相聯(lián)映射方式的優(yōu)點是比較電路最簡單,但缺點是Cache塊沖突率較高,從而降低了Cache的利用率。,組相聯(lián)映射,將Cache分成2u組,每組包含2v塊。主存的塊與Cache的組之間采用直接相聯(lián)映射,而與組內(nèi)的各塊則采用全相
29、聯(lián)映射。也就是說,主存的某塊只能映射到Cache的特定組中的任意一塊。主存的某塊j與Cache的組k之間滿足如下關(guān)系: kj mod 2u,地址轉(zhuǎn)換過程:,組相聯(lián)映射法將全相聯(lián)映射和直接相聯(lián)映射兩種方法的優(yōu)點很好的結(jié)合。 其實,全相聯(lián)映射和直接相聯(lián)映射可以看成是組相聯(lián)映射的兩個極端情況。若u0,vC,則Cache只包含1組,此即全相聯(lián)映射方式;若uC,v0,則組內(nèi)的塊數(shù)等于1,此即直接相聯(lián)映射。,在實際應(yīng)用中,相聯(lián)映射方式每組的塊數(shù)一般取值較小,典型值為2、4、8、16等,分別稱為兩路組相聯(lián)、四路組相聯(lián)等。這樣一方面使得比較器的規(guī)模較小,實現(xiàn)較容易;另一方面,Cache每組增加的可映射塊數(shù)可有
30、效減少沖突,提高Cache訪問的命中率。,3.替換算法,當CPU訪Cache發(fā)生不命中的情況時,就直接訪主存,并同時將所訪問單元所在的一個主存塊一并調(diào)入Cache中。如果此時該主存塊在Cache中的所有特定位置已被其它塊所占用,則需進行替換,即從特定位置中選擇一個老的主存塊從Cache中調(diào)出,將新的主存塊調(diào)入Cache。,隨機法 :每次隨機選擇一個主存塊替換出去。 這種算法不考慮各塊的使用情況,在可替換特定塊數(shù)少的情況下容易造成將正需使用的塊替換出去,從而使Cache的命中率會有所降低。,先進先出(FIFO)法 每次將最先調(diào)入Cache的主存塊替換出去。 該算法記錄每個塊的調(diào)入時間,當要發(fā)生替
31、換時,從所有可能被替換的主存塊中選擇一個最先調(diào)入Cache的塊替換出去。 該算法實現(xiàn)較容易,系統(tǒng)開銷較小,但并不十分符合主存塊在Cache中的使用規(guī)律,有可能造成正需使用的塊被調(diào)出,從而影響Cache的命中率。,最不經(jīng)常使用(LFU)算法 每次將Cache中訪問最少的塊替換出去。 這種算法為每個塊設(shè)置一個計算器,從0開始計數(shù),每被命中一次計數(shù)器增1。當需要替換時,從所有可能被替換的主存塊中選擇一個計數(shù)器值最小的塊(最不經(jīng)常使用)替換出去。 這種算法將計數(shù)周期限定在對這些特定塊兩次替換之間的間隔時間內(nèi),因而不能嚴格反映近期塊使用的情況。,近期最少使用(LRU)算法 每次將近期最少使用的主存塊替換
32、出去。 該算法在實現(xiàn)時,為每個調(diào)入Cache的主存塊設(shè)置一個計數(shù)器,一個塊每命中一次,其計數(shù)器清零,同時將其它塊的計數(shù)器增1。當需要替換時,從所有可能被替換的主存塊中選擇一個計數(shù)器值最大的塊(該塊近期最少使用)替換出去。 這種算法符合Cache工作原理,可使Cache具有較高的命中率。,4. Cache的寫策略,Cache中的內(nèi)容可以看成是主存的一個子集,即每次總是將主存的部分塊的內(nèi)容調(diào)入Cache中。CPU對Cache的讀操作是不會影響Cache的內(nèi)容的,也就不會影響Cache與主存內(nèi)容的一致性。 但寫就不一樣了,當CPU對Cache的某塊進行了一次寫操作,但對主存該塊的內(nèi)容卻沒有同時進行寫
33、,則會造成主存和Cache內(nèi)容的不一致。因此,對Cache的寫需要采取某種策略或方法。,全寫法(write-through) 又稱寫直達法,CPU每次在寫Cache命中時,在寫Cache的同時,也對相應(yīng)的主存塊進行寫入;當寫Cache未命中時,則直接寫主存。,全寫法是寫Cache和寫主存同步進行,其優(yōu)點是Cache和主存的內(nèi)容能保持高度的一致性,缺點是Cache對CPU的寫操作起不到高速緩存的作用,失去了Cache的功效。 統(tǒng)計表明,一般程序中的寫操作占到了存儲器操作的15左右,對于一些特殊應(yīng)用的程序,其寫操作比例會更高。在這種情況下,采用全寫法實現(xiàn)寫操作會影響Cache的效率。,寫回法(wr
34、ite-back) CPU每次在寫Cache命中時,只寫Cache,暫不寫主存,只有當某被寫命中的塊從Cache中替換出去時才寫回主存。,這種方法使Cache在CPU的寫操作中也同樣能發(fā)揮高速緩存的作用,但卻存在主存與Cache內(nèi)容不一致的隱患。 寫回法在實現(xiàn)時,為每個Cache塊設(shè)置一個標志位,以反映Cache的某塊是否被修改過。當某塊被替換出去時,根據(jù)標志位決定在替換的同時是否進行回寫操作。未被修改過的塊在替換出去時,無需進行回寫,只有被修改過的塊在替換出去時,才需進行主存的回寫。,現(xiàn)在越來越多的機器都采用了二級Cache,在處理寫操作時需要考慮的不僅僅是寫回主存,還需考慮寫回二級Cach
35、e。 寫一次法(write one time)是采用了二級Cache的機器中常用的寫操作策略。其具體方法是:寫命中時的處理方法和寫回法基本相同,只是第一次寫命中時要同時寫入主存和其它二級Cache等。 奔騰CPU的片內(nèi)數(shù)據(jù)Cache就采用了這一方法。,5. Cache性能分析,CPU訪存時間的分析 設(shè)NC表示某一段時間Cache完成存取的總次數(shù),Nm表示這一段時間主存完成存取的總次數(shù),h定義為命中率,則有:,再假設(shè)TC為Cache存儲器的讀寫周期時間,Tm為主存儲器的讀寫周期時間,則Cache-主存系統(tǒng)的平均訪問時間TA為: TAhTC+(1-h)Tm,【例4.3】,塊的大小 塊的容量大小與命
36、中率的關(guān)系是比較復(fù)雜的,它取決于不同程序的局部性特征,對所有程序而言,很難確定一個最優(yōu)的塊的大小。通常認為塊容量大小在864B之間是比較合適的。,Cache的數(shù)量 隨著集成度的提高,現(xiàn)代的CPU在芯片中集成了一個小容量的Cache,與CPU外部的Cache一起構(gòu)成二級Cache系統(tǒng),其中,CPU內(nèi)部的Cache為第1級(L1),CPU外部的Cache為第2級(L2)。一般來講,L1級的Cache比L2級的Cache容量更小,速度更快?!癓1級Cache-L2級Cache-主存”這種層次從工作原理上講與前述的Cache工作原理是完全相同的,即CPU首先訪L1級Cache,若不命中,再訪問L2級C
37、ache和主存。,近些年來,對Cache系統(tǒng)設(shè)計的另一種趨勢是采用分立Cache技術(shù),也就是將指令和數(shù)據(jù)分開,分別存放在指令Cache 和數(shù)據(jù)Cache中。這種分立Cache技術(shù)有利于CPU采用流水線方式執(zhí)行指令。,6. Cache舉例:Pentium4的Cache組織,4.5 虛擬存儲器,虛擬存儲器實現(xiàn)的基本原理 虛擬存儲器的分頁式管理 虛擬存儲器的分段式管理 虛擬存儲器的段頁式管理 虛擬存儲器的替換策略 虛擬存儲器舉例:Pentium的虛擬存儲器組織,1.虛擬存儲器實現(xiàn)的基本原理,虛擬存儲器是一種由價格較高、速度較快、容量較小的主存儲器和一個價格低廉、速度較慢、容量巨大的輔助存儲器組成的存
38、儲層次,在系統(tǒng)軟件和輔助硬件的管理下就像一個單一的、可直接訪問的大容量存儲器,以透明方式為用戶程序提供一個遠大于主存容量的存儲空間。,虛擬存儲器的“主存-輔存”層次的實現(xiàn)原理與前面講述的“Cache-主存”層次的實現(xiàn)原理很相似。這主要體現(xiàn)在兩個方面: 一是組織結(jié)構(gòu)相似,在這兩種層次中,面向CPU的存儲器是由相對來講小容量高速存儲器件構(gòu)成,而后援存儲器則是由相對來講大容量低速存儲器件構(gòu)成; 二是工作原理相似,用戶程序事先存放在大容量后援存儲器中,當執(zhí)行程序時,CPU首先訪問的是小容量存儲器,若命中,則完成本次訪問,若不命中,則再到大容量存儲器中訪問,并同時按一定的規(guī)則將大容量存儲器中的一部分內(nèi)容
39、替換小容量存儲器中的一部分內(nèi)容。,當然,還有非常重要的一點就是實現(xiàn)虛擬存儲器同樣基于的是程序的局部性原理,若沒有程序訪問的局部性,CPU訪小容量存儲器頻頻失效,則會大大降低CPU訪問存儲系統(tǒng)的效率。,在實現(xiàn)虛擬存儲器管理的機器中,能提供給用戶程序運行的是一個比主存大的多的虛擬空間,稱為虛存;而真正為用戶程序提供實際運行空間的是主存,又稱為實存。 程序中出現(xiàn)的指令或數(shù)據(jù)地址是邏輯地址,又稱為虛地址;而主存地址是真正的物理地址,又稱為實地址。,虛擬存儲器的工作原理圖,2. 虛擬存儲器的分頁式管理,在采用分頁式管理的機器中,主存和虛存都劃分成相同的固定大小的塊頁,主存的頁稱為實頁,虛存的頁稱為虛頁。
40、 實地址和虛地址都由兩部分組成,分別為實頁號/虛頁號和頁內(nèi)偏移地址,虛地址到實地址的變換是通過存放在主存中的頁表來實現(xiàn)的。 頁表由一個個頁表項組成,每個虛頁在頁表中占一個頁表項,并按虛頁號的順序排列。,頁表項的內(nèi)容主要包括該虛頁所在主存的實頁號和一些控制信息,如 : F:裝入位。F=1表示該虛頁已裝入到主存中;F=0表示該虛頁還沒裝入主存。 C:修改位。用于表示該頁裝入主存后是否被修改過。 RW:訪問方式字段。用于表示該頁可以允許以“讀-寫-執(zhí)行”方式中的哪些方式訪問。 頁表項的內(nèi)容是在每個虛頁裝入主存時填寫的。,分頁式虛擬存儲器地址變換,在頁式虛擬存儲器機器中,當CPU訪主存“不命中”時,會
41、產(chǎn)生一個“頁面失效”故障。 在頁面失效時,要求把該頁由輔存調(diào)入主存,因此必須給出該頁在輔存的物理地址。 輔存一般是按信息塊(對磁盤而言為扇區(qū))編址,且一個塊的大小通常等于一個頁面的大小。對磁盤存儲器來說,其物理地址格式如下:,將虛地址變換成磁盤的物理地址時,即是把虛頁號變換成某個磁盤機上的某個扇區(qū)號。為此,需有一個虛頁號與輔存物理地址的映象表,該表稱為外頁表(相對應(yīng)的前述頁表稱為內(nèi)頁表),外頁表的結(jié)構(gòu)(按虛頁號的順序排列,M為裝入位 ),通常外頁表是存在輔存中。 當某個程序初始運行時,就把外頁表的內(nèi)容抄錄到已建立的內(nèi)頁表的實頁號字段中。 在進行虛地址到實地址變換時,若出現(xiàn)頁面失效,從內(nèi)頁表的實頁號字段中取出的正是輔存物理地址。而當該頁調(diào)入主存后,其實頁號字段被真正填入所在主存的實際頁號。,在頁式虛擬存貯器中,每次訪存都要增加一個查頁表的過程,而頁表是存放在主存中的,這就相當于每次多增加了一次訪主存的操作。如果這個查頁表的操作時間不能縮短,虛擬存貯器是沒有實用價值的。因此,如何加快地址變換速度,就成為提高虛擬存貯器速度的另一
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中學化學課程與教學論-高職課件 第八章學習資料
- 2024山東青島?,樋毓捎邢薰菊衅?人筆試參考題庫附帶答案詳解
- 水泥護坡磚施工方案范本
- 二零二五品牌代理合同范例
- 班級區(qū)域活動培訓
- 2024四季度重慶墊江縣文化傳媒有限公司招聘2人(1210截止)筆試參考題庫附帶答案詳解
- 幼兒園黃豆課程故事
- 廚師培訓課件
- 2024下半年合肥濱湖產(chǎn)業(yè)發(fā)展集團有限公司招聘11人筆試參考題庫附帶答案詳解
- 懸浮造型施工方案
- 部編人教版一年級語文上冊:第三單元單元集體備課教案
- 人工智能簡史與機器學習及其應(yīng)用課件
- 幼兒園軍事教育課新版ppt
- 奎因企業(yè)文化因?qū)蛟\斷模型詳解
- 北京市森林火警、火情、火災(zāi)信息報告管理規(guī)定
- 淺談巖溶隧道設(shè)計、施工與管理
- 學校中層干部民主測評表(一)
- 飛秒激光 近視手術(shù)(課堂PPT)
- 焊接質(zhì)量計劃書
- 中建股份《項目管理手冊》印刷版
- 外立面改造施工組織設(shè)計
評論
0/150
提交評論