工信版(中職)計(jì)算機(jī)原理模塊五教學(xué)課件

單擊此處編輯母版標(biāo)題樣式,,單擊此處編輯母版文本樣式,,第二級(jí),,第三級(jí),,第四級(jí),,第五級(jí),,,*,YCF,(中職)計(jì)算機(jī)原理模塊五教學(xué)課件,模塊5 存儲(chǔ)器系統(tǒng),任務(wù)1 存儲(chǔ)器概述,,5.1.1 存儲(chǔ)器的分類,,5.1.2 存儲(chǔ)器的常用性能指標(biāo),,5.1.3 存儲(chǔ)系統(tǒng)的層次結(jié)構(gòu),,任務(wù)2 半導(dǎo)體存儲(chǔ)器,,5.2.1 內(nèi)存儲(chǔ)器,,5.2.2 隨機(jī)存儲(chǔ)器,,5.2.3 只讀存儲(chǔ)器,下一頁,,,模塊5 存儲(chǔ)器系統(tǒng),5.2.4 內(nèi)存條,,5.2.5 內(nèi)存儲(chǔ)器的主要性能指標(biāo),,任務(wù)3 16位微處理器的存儲(chǔ)管理,,5.3.1 分段存儲(chǔ)管理,,5.3.2 存儲(chǔ)管理的相關(guān)術(shù)語,,任務(wù)4 新型存儲(chǔ)器技術(shù),,5.4.1 多體交叉存儲(chǔ)器,下一頁,上一頁,,,模塊5 存儲(chǔ)器系統(tǒng),5.4.2 高速緩沖存儲(chǔ)器(cache),,5.4.3 虛擬存儲(chǔ)器,上一頁,,,任務(wù)1存儲(chǔ)器概述,本模塊主要介紹半導(dǎo)體存儲(chǔ)器的基礎(chǔ)知識(shí),包括微機(jī)系統(tǒng)中常用存儲(chǔ)器的分類、性能指標(biāo)及層次結(jié)構(gòu);半導(dǎo)體存儲(chǔ)器的基本結(jié)構(gòu)、工作原理及與CPU的連接等內(nèi)容;最后介紹了微機(jī)系統(tǒng)中的輔助存儲(chǔ)器和新型存儲(chǔ)器技術(shù)通過本模塊的學(xué)習(xí),讀者應(yīng)了解存儲(chǔ)器的分類和層次結(jié)構(gòu),掌握常用的RAM和ROM基本結(jié)構(gòu)、原理和特點(diǎn);靈活運(yùn)用存儲(chǔ)器與CPU進(jìn)行連接和擴(kuò)展;了解新型存儲(chǔ)器技術(shù)的特性,并側(cè)重其應(yīng)用。
下一頁,返回,,,任務(wù)1存儲(chǔ)器概述,存儲(chǔ)器是計(jì)算機(jī)中用來存儲(chǔ)信息的部件有了存儲(chǔ)器計(jì)算機(jī)才具有“記憶”功能,才能把要執(zhí)行的程序、數(shù)據(jù)和處理結(jié)果存儲(chǔ)在計(jì)算機(jī)中,使計(jì)算機(jī)能自動(dòng)連續(xù)地工作因此,存儲(chǔ)器是微機(jī)系統(tǒng)不可缺少的組成部分,是計(jì)算機(jī)中各種信息的存儲(chǔ)和交流中心在運(yùn)行程序時(shí),CPU自動(dòng)連續(xù)從存儲(chǔ)器中取出指令并執(zhí)行指令規(guī)定的操作,計(jì)算機(jī)每完成一條指令,至少要執(zhí)行一次訪問存儲(chǔ)器的操作,并把處理結(jié)果存儲(chǔ)在存儲(chǔ)器中5.1.1存儲(chǔ)器的介類,,1.按存儲(chǔ)介質(zhì)分類,,存儲(chǔ)介質(zhì)是指存儲(chǔ)二進(jìn)制信息的物理載體,這種載體具有表現(xiàn)兩種相反物理狀態(tài)的能力,存儲(chǔ)器的存取速度就取決于這兩種物理狀態(tài)的改變速度目前使用的存儲(chǔ)介質(zhì)主要有半導(dǎo)體器件、磁性材料和光學(xué)材料下一頁,返回,上一頁,,,任務(wù)1存儲(chǔ)器概述,(1)用半導(dǎo)體器件做成的存儲(chǔ)器稱為半導(dǎo)體存儲(chǔ)器從制造工藝的角度又把半導(dǎo)體存儲(chǔ)器分為雙極型和MOS型等2)用磁性材料做成的存儲(chǔ)器稱為磁表面存儲(chǔ)器,如磁盤存儲(chǔ)器和磁帶存儲(chǔ)器3)用光學(xué)材料做成的存儲(chǔ)器稱為光表面存儲(chǔ)器,如光盤存儲(chǔ)器2.按讀/寫功能分類,,存儲(chǔ)器按讀/寫功能分為只讀存儲(chǔ)器和隨機(jī)存取存儲(chǔ)器1)只讀存儲(chǔ)器(Read Only Memory , ROM)。
如果存儲(chǔ)器所存儲(chǔ)的內(nèi)容固定不變,即只能讀出不能寫入,稱為只讀存儲(chǔ)器一般用來存放微機(jī)的系統(tǒng)程序,如系統(tǒng)管理程序、監(jiān)控程序等下一頁,返回,上一頁,,,任務(wù)1存儲(chǔ)器概述,(2)隨機(jī)存取存儲(chǔ)器(Random Access Memory , RAM)既能讀出又能寫入的存儲(chǔ)器稱為隨機(jī)存取存儲(chǔ)器,又稱讀/寫存儲(chǔ)器主要存放各種輸入、輸出數(shù)據(jù)及中間結(jié)果,并可與外存儲(chǔ)器交換信息以及作為堆棧使用3.按作用分類,,根據(jù)存儲(chǔ)器在微機(jī)系統(tǒng)中所起作用可分為主存儲(chǔ)器(又稱內(nèi)存儲(chǔ)器,簡稱內(nèi)存)、輔助存儲(chǔ)器(又稱外存儲(chǔ)器,簡稱外存)和高速緩沖存儲(chǔ)器(Cache)等1)主存儲(chǔ)器在主機(jī)內(nèi)部,存放當(dāng)前正在運(yùn)行的程序和數(shù)據(jù)主存儲(chǔ)器與CPU及各種接口電路一起構(gòu)成微機(jī)主機(jī),CPU通過指令可直接訪問主存儲(chǔ)器計(jì)算機(jī)要解決的問題越復(fù)雜,所要求的主存容量就越大,對(duì)主存儲(chǔ)器的讀寫速度要求也越高因此,主存儲(chǔ)器的存取速度要和CPU的處理速度相匹配現(xiàn)代微機(jī)大多采用半導(dǎo)體存儲(chǔ)器作為主存儲(chǔ)器下一頁,返回,上一頁,,,任務(wù)1存儲(chǔ)器概述,(2)輔助存儲(chǔ)器屬于計(jì)算機(jī)的外部設(shè)備,用來存儲(chǔ)CPU當(dāng)前操作暫時(shí)用不到的程序或數(shù)據(jù),它存儲(chǔ)的信息在CPU需要時(shí)可通過接口電路成批輸入到主存儲(chǔ)器后供CPU處理,CPU不能直接用指令對(duì)輔存進(jìn)行讀寫操作。
其特點(diǎn)是存儲(chǔ)容量大,價(jià)格便宜,所存儲(chǔ)的信息斷電后不會(huì)丟失,但速度較慢現(xiàn)代微機(jī)常使用軟盤、硬盤和光盤作為輔助存儲(chǔ)器,存放系統(tǒng)程序和大型數(shù)據(jù)文件及數(shù)據(jù)庫3)高速緩沖存儲(chǔ)器是計(jì)算機(jī)系統(tǒng)中的一個(gè)高速小容量存儲(chǔ)器,位于CPU和內(nèi)存之間現(xiàn)代微機(jī)中,為提高計(jì)算機(jī)的處理速度,利用高速緩存來暫存CPU正在使用的指令和數(shù)據(jù),可以加快信息傳遞的速度目前,高速緩存主要由高速靜態(tài)RAM組成下一頁,返回,上一頁,,,任務(wù)1存儲(chǔ)器概述,5.1.2存儲(chǔ)器的常用性能指標(biāo),,1.存儲(chǔ)容量,,存儲(chǔ)器可以存儲(chǔ)的二進(jìn)制信息總量稱為存儲(chǔ)容量它是存儲(chǔ)器的一個(gè)重要指標(biāo),容量越大,意味著所能存儲(chǔ)的二進(jìn)制信息越多存儲(chǔ)器由許多存儲(chǔ)單元組成,每個(gè)存儲(chǔ)單元可存放8位二進(jìn)制信息,其位數(shù)稱為存儲(chǔ)單元的長度存儲(chǔ)容量一般可表示為存儲(chǔ)容量=存儲(chǔ)器單元數(shù)x每單元二進(jìn)制位數(shù)存儲(chǔ)容量通常以字節(jié)(8位二進(jìn)制數(shù))為單位,用B ( Byte)表示如一個(gè)存儲(chǔ)器有4 096個(gè)單元,每個(gè)單元可存放8位二進(jìn)制信息,則存儲(chǔ)容量為4096 x 8,也就是4 096 B大容量存儲(chǔ)器用千字節(jié)(KB)、兆字節(jié)(MB)、吉字節(jié)(GB )、太字節(jié)(TB)等表示其換算關(guān)系如下下一頁,返回,上一頁,,,任務(wù)1存儲(chǔ)器概述,1 KB=2,10,R=1024 B 1 MB=2,20,R=1024KB,,1 GB=2,30,B=1024 MB 1 TB=2,40,B=1024 GB,,2.存取速度,,存儲(chǔ)器的存取速度可用存取時(shí)間和存取周期來衡量。
1)存取時(shí)間指啟動(dòng)一次存儲(chǔ)器操作到完成該操作所用的時(shí)間具體說是從存儲(chǔ)器接收到尋址地址開始到取出或存入數(shù)據(jù)為止所需時(shí)間手冊(cè)上給出這個(gè)參數(shù)的上限值,稱為最大存取時(shí)間2)存取周期指連續(xù)兩次獨(dú)立的存儲(chǔ)器操作最小時(shí)間間隔存取周期略大于存取時(shí)間,其差別與存儲(chǔ)器的物理實(shí)現(xiàn)有關(guān)下一頁,返回,上一頁,,,任務(wù)1存儲(chǔ)器概述,存取速度的度量單位通常采用納秒(ns)目前高速存儲(chǔ)器的存取速度已小于20ns存取時(shí)間越小,存取速度就越快3.價(jià)格,,存儲(chǔ)器價(jià)格常用每位價(jià)格來衡量設(shè)存儲(chǔ)器容量為S,總價(jià)格為C,則每位價(jià)格為P=S/C它不僅包含了存儲(chǔ)元件本身價(jià)格,也包括為該存儲(chǔ)器操作服務(wù)的外圍電路價(jià)格一般來說,主存儲(chǔ)器價(jià)格較高,輔助存儲(chǔ)器價(jià)格則低得多存儲(chǔ)器總價(jià)格正比于存儲(chǔ)容量,反比于存取速度速度較快的存儲(chǔ)器,其價(jià)格也較高,容量也不可能太大因此,容量、速度、價(jià)格3個(gè)指標(biāo)之間是相互制約的衡量存儲(chǔ)器性能的其他指標(biāo)還有體積、質(zhì)量、品質(zhì)等,用戶在設(shè)計(jì)和選用存儲(chǔ)器時(shí)要綜合考慮這些因素,根據(jù)實(shí)際需要全面衡量,盡可能滿足主要要求并兼顧其他,盡量提高性能價(jià)格比下一頁,返回,上一頁,,,任務(wù)1存儲(chǔ)器概述,5.1.3存儲(chǔ)系統(tǒng)的層次結(jié)構(gòu),,現(xiàn)代微機(jī)系統(tǒng)對(duì)存儲(chǔ)器的基本要求是容量大、速度快和成本低,但要想在一個(gè)存儲(chǔ)器中同時(shí)兼顧這三方面的要求是很困難的。
1)首先要考慮存儲(chǔ)系統(tǒng)的容量容量要求很大的存儲(chǔ)系統(tǒng)僅僅采用單一結(jié)構(gòu)的存儲(chǔ)器是無法滿足要求的,至少需要兩種存儲(chǔ)器:主存儲(chǔ)器和輔助存儲(chǔ)器使用速度較快、容量不大的半導(dǎo)體存儲(chǔ)器作為主存儲(chǔ)器,而用容量極大、價(jià)格較便宜的磁帶、磁盤、光盤作為輔助存儲(chǔ)器把CPU當(dāng)前正在運(yùn)行的程序和數(shù)據(jù)放在主存中,把暫時(shí)不用的程序和數(shù)據(jù)放在輔存中程序執(zhí)行過程中,不斷把位于輔存中即將處理的信息調(diào)入主存,處理完畢的信息不斷調(diào)出主存下一頁,返回,上一頁,,,任務(wù)1存儲(chǔ)器概述,這個(gè)工作由計(jì)算機(jī)自動(dòng)完成,即采用虛擬存儲(chǔ)器技術(shù)這種系統(tǒng)中,程序員面對(duì)的是一個(gè)既有主存速度,又有輔存容量的存儲(chǔ)器整體,編程時(shí)可直接使用輔存容量的地址空間,而不必考慮主存的容量限制虛擬存儲(chǔ)技術(shù)較好地解決了存儲(chǔ)系統(tǒng)的容量問題2)其次要考慮存儲(chǔ)系統(tǒng)的速度由于CPU處理指令和數(shù)據(jù)的速度比從主存儲(chǔ)器讀取指令和數(shù)據(jù)的速度快,因此,主存儲(chǔ)器讀取速度成為整個(gè)系統(tǒng)的“瓶頸”為解決存儲(chǔ)速度問題,在存儲(chǔ)系統(tǒng)結(jié)構(gòu)上可采用高速緩沖存儲(chǔ)器(Cache)Cache的存取速度與CPU工作速度相當(dāng),容量較小,位于CPU和主存之間它存放的內(nèi)容是當(dāng)前機(jī)器運(yùn)行中最活躍的一部分信息,是主存中部分信息的副本。
程序運(yùn)行時(shí),計(jì)算機(jī)自動(dòng)把要執(zhí)行的程序和數(shù)據(jù)從主存調(diào)入Cache,這樣CPU只要訪問Cache就可取得所需信息,只有當(dāng)CPU所需信息不在Cache時(shí)才去訪問主存不斷用新的信息更新Cache的內(nèi)容就可使CPU大部分信息訪問操作在Cache中進(jìn)行,以減少對(duì)慢速主存的訪問次數(shù)下一頁,返回,上一頁,,,任務(wù)1存儲(chǔ)器概述,為解決存儲(chǔ)器的容量、速度、價(jià)格三者之間的矛盾,人們除了不斷研制新的存儲(chǔ)器件,改進(jìn)存儲(chǔ)性能外,還要從存儲(chǔ)系統(tǒng)結(jié)構(gòu)上研究更加合理的結(jié)構(gòu)模式,形成存儲(chǔ)系統(tǒng)的多級(jí)層次結(jié)構(gòu)把不同存儲(chǔ)容量、存取速度和價(jià)格的存儲(chǔ)器按層次結(jié)構(gòu)組成多層存儲(chǔ)器,并通過管理軟件和輔助硬件有機(jī)組合成統(tǒng)一的整體,使所存放的程序和數(shù)據(jù)按層次分布在各種存儲(chǔ)器中目前,計(jì)算機(jī)存儲(chǔ)系統(tǒng)通常采用3級(jí)層次結(jié)構(gòu),由高速緩沖存儲(chǔ)器(Cache)、主存儲(chǔ)器和輔助存儲(chǔ)器組成,如,圖5-1,所示下一頁,返回,上一頁,,,任務(wù)1存儲(chǔ)器概述,圖5-1,的存儲(chǔ)系統(tǒng)多級(jí)層次結(jié)構(gòu)由上向下分為3級(jí),其容量逐漸增大,速度逐級(jí)降低,成本則逐次減少整個(gè)結(jié)構(gòu)又可看成2個(gè)層次:分別是主存-輔存層次和Cache-主存層次系統(tǒng)中每一種存儲(chǔ)器都不再是孤立的存儲(chǔ)器,而是一個(gè)有機(jī)的整體。
它們?cè)谳o助硬件和操作系統(tǒng)的管理下,可把主存-輔存層次作為一個(gè)存儲(chǔ)整體,形成的可尋址存儲(chǔ)空間比主存儲(chǔ)器空間大得多由于輔存容量大,價(jià)格低,使得存儲(chǔ)系統(tǒng)的整體平均價(jià)格降低而Cache的存取速度可和CPU的工作速度相媲美,故Cache-主存層次可縮小主存和CPU之間的速度差距,從整體上提高存儲(chǔ)器系統(tǒng)的存取速度盡管C ache成本高,但由于容量較小,故不會(huì)使存儲(chǔ)系統(tǒng)的整體價(jià)格增加很多下一頁,返回,上一頁,,,任務(wù)1存儲(chǔ)器概述,綜上所述,一個(gè)較大的存儲(chǔ)系統(tǒng)由各種不同類型的存儲(chǔ)設(shè)備構(gòu)成,這樣的系統(tǒng)是一個(gè)具有多級(jí)層次結(jié)構(gòu)的存儲(chǔ)系統(tǒng)該系統(tǒng)既有與CPU相近的速度,又有極大的容量,而價(jià)格又是較低的可見,采用多級(jí)層次結(jié)構(gòu)的存儲(chǔ)器系統(tǒng)可有效解決存儲(chǔ)器的速度、容量和價(jià)格之間的矛盾返回,上一頁,,,任務(wù)2半導(dǎo)體存儲(chǔ)器,5.2.1內(nèi)存儲(chǔ)器,,內(nèi)存儲(chǔ)器是指微機(jī)系統(tǒng)中存放程序和數(shù)據(jù)的部件,是CPU能直接對(duì)其進(jìn)行存取操作的部件,它由一組或多組具有數(shù)據(jù)存儲(chǔ)功能以及能進(jìn)行讀寫操作的大規(guī)模集成電路組成把這種多個(gè)封裝好的集成電路存儲(chǔ)器芯片、電容、電阻等元器件都焊接在一小條印制電路板上而構(gòu)成了大容量的內(nèi)存儲(chǔ)器部件這種電路板又是被插在主板上的,所以稱為微機(jī)硬件系統(tǒng)內(nèi)的內(nèi)存儲(chǔ)器條。
在內(nèi)存儲(chǔ)器內(nèi)主要是存放正在執(zhí)行的程序和被處理的數(shù)據(jù)根據(jù)存儲(chǔ)信息的特點(diǎn)不同,內(nèi)存儲(chǔ)器又有兩種基本的類型:一類是隨機(jī)存儲(chǔ)器(RAM),另一類是只讀存儲(chǔ)器(ROM)下一頁,返回,,,任務(wù)2半導(dǎo)體存儲(chǔ)器,5.2.2隨機(jī)存儲(chǔ)器,,隨機(jī)存儲(chǔ)器(Random Access Metnory,RAM)是一種既能讀出也能寫入的存儲(chǔ)器,它適合于存放用戶程序和數(shù)據(jù),因?yàn)檫@類信息是經(jīng)常變化的RAM有如下3個(gè)特點(diǎn)1)可以讀出,也可以寫入讀出時(shí)并不損壞所存儲(chǔ)的內(nèi)容,只有在寫入時(shí)才修改原來所存儲(chǔ)的內(nèi)容2)所謂隨機(jī)存取,意味著存取任一單元所需的時(shí)間相同存儲(chǔ)單元排成二維陣列,就像通過X ,Y兩個(gè)坐標(biāo)就能確定一個(gè)點(diǎn)那樣3)當(dāng)斷電后,存儲(chǔ)的內(nèi)容立即消失,又稱為NOVRAM( Non Volatile RAM)或NVRAMRAM分為雙極性RAM和MOS RAM兩大類下一頁,返回,上一頁,,,任務(wù)2半導(dǎo)體存儲(chǔ)器,1.雙極性RAM,,雙極性RAM由于它是以晶體管觸發(fā)器作為基本存儲(chǔ)元件,所以擁有存取速度快的優(yōu)點(diǎn)雙極性RAM自身是晶體管觸發(fā)器,使用的晶體管數(shù)量比MOS RAM用得多,從而也顯現(xiàn)出它的諸多缺點(diǎn),像集成度低(與MOS RAM比較)、功耗大,導(dǎo)致其成本也高。
只有在對(duì)速度的需求超過了對(duì)成本的需求時(shí),才會(huì)采用雙極性RAM像存儲(chǔ)器系統(tǒng)中的Cache這種存儲(chǔ)器就常采用雙極性RAM2 .MOS RAM,,由MOS電路構(gòu)成的RAM,又可分為DRAM ( Dynamic RAM)和SRAM ( Static RAM)兩大類DRAM的特點(diǎn)是高密度,SRAM的特點(diǎn)是高速度下一頁,返回,上一頁,,,任務(wù)2半導(dǎo)體存儲(chǔ)器,1) SRAM ( Static RAM,靜態(tài)隨機(jī)存儲(chǔ)器),,SRAM的運(yùn)行速度非???,像CPU內(nèi)的一級(jí)、二級(jí)緩沖存儲(chǔ)器就使用了SRAM,其運(yùn)行頻率與CPU的時(shí)鐘同步SRAM高速度的特點(diǎn)對(duì)提高系統(tǒng)性能非常有利,但價(jià)格較貴由于靜態(tài)隨機(jī)存儲(chǔ)器SRAM既可以用雙極型電路,也可以用MOS電路的觸發(fā)器來作存儲(chǔ)元件,所以沒有電容造成的刷新問題只要有電源正常供電,觸發(fā)器就能穩(wěn)定地存儲(chǔ)數(shù)據(jù)一旦寫入數(shù)據(jù)信息,只要不斷電,數(shù)據(jù)可以一直保持有效,且也不需要刷新由于不再需要其他的特殊操作來保留存放在上面的數(shù)據(jù),因此將其稱為靜態(tài)存儲(chǔ)器2 )DRAM ( Dynamic RAM,動(dòng)態(tài)隨機(jī)存儲(chǔ)器),下一頁,返回,上一頁,,,任務(wù)2半導(dǎo)體存儲(chǔ)器,DRAM采用MOS電路和電容作為其存儲(chǔ)元件。
DRAM比SRAM速度慢,但同時(shí)也比SRAM便宜得多,在容量上也可以做得更大,體積也更小,所以主存儲(chǔ)器都采用DRAMDRAM還用于顯示卡、聲卡、硬盤等設(shè)備中,充當(dāng)設(shè)備緩沖存儲(chǔ)器DRAM采用MOS電路和電容作為其存儲(chǔ)元件,由于電容會(huì)放電,所以需要定時(shí)充電以維持存儲(chǔ)內(nèi)容的正確,這稱為刷新例如每隔2ms刷新一次,因此稱之為動(dòng)態(tài)存儲(chǔ)器由于DRAM具有高密度的特點(diǎn),所以集成度的提高非常迅速其集成度差不多以每3年增加4倍的速度發(fā)展著與此同時(shí),DRAM的性能也在不斷提高16 Kb DRAM的標(biāo)準(zhǔn)存取時(shí)間為200 ns,64 Kb的標(biāo)準(zhǔn)存取時(shí)間已提高到100 ns這個(gè)速度與4 Kb SRAM相比還是較慢的,因?yàn)镾RAM的存取時(shí)間為35 ns下一頁,返回,上一頁,,,任務(wù)2半導(dǎo)體存儲(chǔ)器,CPU芯片的飛速發(fā)展使得RAM必須不斷改進(jìn)才能適應(yīng)其發(fā)展的需要CPU芯片由8位、16位發(fā)展到32位、64位,使CPU時(shí)鐘頻率由5 MHz,20 MHz繼續(xù)向2. 5 GHz , 3. 0 GHz推進(jìn)與這種時(shí)鐘相適應(yīng)的內(nèi)存儲(chǔ)器的操作速度為100ns,80ns,60ns,50 ns,甚至更快,才能滿足需要這些要求對(duì)SRAM來說很容易達(dá)到,但它的集成度不夠高。
為了適應(yīng)擴(kuò)大內(nèi)存的需要,就必須加快DRAM的存儲(chǔ)速度通常是把動(dòng)態(tài)DRAM芯片與CPU芯片的相輔相成的發(fā)展看做是促進(jìn)VLSI技術(shù)發(fā)展的重要推動(dòng)力NVRAM是一種非易失性的隨機(jī)讀寫存儲(chǔ)器它既能快速存取,在系統(tǒng)斷電時(shí)又不會(huì)丟失數(shù)據(jù)實(shí)際上,它是把SRAM的實(shí)時(shí)讀寫功能與EEPROM的可靠非易失功能綜合在一起了下一頁,返回,上一頁,,,任務(wù)2半導(dǎo)體存儲(chǔ)器,以Inte12004 NVRAM(1984年產(chǎn)品)為例,它是一塊4 Kb芯片,以512 x 8“字節(jié)寬”體系結(jié)構(gòu)組成其內(nèi)部結(jié)構(gòu)分為兩部分:一部分是高速靜態(tài)RAM陣列,另一部分是與之逐位對(duì)應(yīng)(Bit-for-Bit )的非易失EEPROM備份陣列系統(tǒng)正常工作時(shí),CPU訪問SRAM部分以完成快速讀寫當(dāng)系統(tǒng)斷電或者正常關(guān)機(jī)時(shí),芯片內(nèi)部的數(shù)據(jù)保護(hù)電路測(cè)出電源電壓降至4V時(shí)能立即關(guān)閉寫入電路,而迅速地把SRAM的內(nèi)容并行地轉(zhuǎn)儲(chǔ)到EEPROM中;電源電壓恢復(fù)后,EEPRO M中的內(nèi)容又自動(dòng)放入SRAM陣列中這種轉(zhuǎn)儲(chǔ)操作能可靠地進(jìn)行10 000次其非易失能力保證數(shù)據(jù)能存儲(chǔ)10年以上下一頁,返回,上一頁,,,任務(wù)2半導(dǎo)體存儲(chǔ)器,5.2.3只讀存儲(chǔ)器,,只讀存儲(chǔ)器(Read-Only Memory, ROM)只允許讀出原有的內(nèi)容,而不能寫入新內(nèi)容。
ROM能夠永久地保存駐留在系統(tǒng)中的程序和數(shù)據(jù)即使不接電源,其內(nèi)保存的信息也不會(huì)改變ROM通常用來存放那些固定不變、不需要修改的、控制計(jì)算機(jī)系統(tǒng)的監(jiān)控程序和專用程序,如基本輸入輸出系統(tǒng)(BIOS)、匯編程序、各種專用程序(如調(diào)試程序、診斷程序等)等ROM在斷電之后,其內(nèi)保存的信息不會(huì)丟失,一旦通電,它就能正常工作常用的只讀存儲(chǔ)器又分成以下幾類1 .ROM,,一般由生產(chǎn)廠家把編好的程序固化在ROM中成本低而適用于批量生產(chǎn)下一頁,返回,上一頁,,,任務(wù)2半導(dǎo)體存儲(chǔ)器,2 .PROM,,PROM是可編程只讀存儲(chǔ)器(Programmable Read-Only Memory),它與ROM的性能一樣存儲(chǔ)的程序在處理過程不會(huì)丟失,也不會(huì)被替換二者的區(qū)別僅是,這種PROM僅允許用戶用自己編寫的程序在PROM上進(jìn)行一次燒制改寫其中內(nèi)容因此PROM大都用于固化某些在使用中不需變更的程序或數(shù)據(jù)從結(jié)構(gòu)上說它是根本無法擦除的目前PROM已不再常用3. EPROM,,可擦除的ROM ( Erasable Programmable Read-Only Memory)即EPROM這是一種可由用戶編程并可擦除的ROM。
存放在EPROM中的信息可以被擦除,然后再寫入,且能多次改寫其中的內(nèi)容,只是寫入速度較慢這種靈活性使EPROM得到了廣泛應(yīng)用,但也僅限于當(dāng)成只讀存儲(chǔ)器用下一頁,返回,上一頁,,,任務(wù)2半導(dǎo)體存儲(chǔ)器,這種EPROM存儲(chǔ)器由于集成度高、成本低且在關(guān)掉電源后其內(nèi)保存的信息不會(huì)丟失等特點(diǎn)而被廣泛使用4. EEPROM,,電可擦除可重寫只讀存儲(chǔ)器(EEPROM或EZPROM)也叫“電擦除可編程只讀存儲(chǔ)器EEPROM”或EAROM,是電可擦除PROM或電可改寫ROM在實(shí)際使用中,EEPROM多用于寫入的內(nèi)容很少需要變動(dòng)的情況,像在微機(jī)的基本輸入輸出系統(tǒng)(BIO時(shí)中,由于很少需要改動(dòng)BIOS中的內(nèi)容,大多采用EEPROM多數(shù)情況下需要的是以字節(jié)為單位的擦除和重寫,而EEPROM在這方面就具有很大的優(yōu)越性下一頁,返回,上一頁,,,任務(wù)2半導(dǎo)體存儲(chǔ)器,5.閃速存儲(chǔ)器,,閃速存儲(chǔ)器(FlashMemory)是一種特殊類型的EEPROM類的存儲(chǔ)器,是目前較理想的一類存儲(chǔ)器,具有密度高、讀寫速度快、成本低和不易丟失的特點(diǎn)傳統(tǒng)的存儲(chǔ)器只能滿足上述這些要求中的一部分閃速存儲(chǔ)器又稱為快擦寫型存儲(chǔ)器,可以用電擦除數(shù)據(jù)塊,而不是用電擦除單個(gè)的存儲(chǔ)單元。
它能夠?qū)崿F(xiàn)RAM與ROM的所有功能閃速存儲(chǔ)器可像硬盤那樣用來存放為系統(tǒng)設(shè)置的信息與傳統(tǒng)存儲(chǔ)器相比,F(xiàn)lash的主要優(yōu)點(diǎn)如下1)不易丟失性與SRAM相比,F(xiàn)lash不需后備電源來保持信息2)易更新性與EEPROM相比,F(xiàn)lash的成本更低,密度和可靠性更高下一頁,返回,上一頁,,,任務(wù)2半導(dǎo)體存儲(chǔ)器,5.2.4內(nèi)存條,,內(nèi)存條是微機(jī)系統(tǒng)用來存放程序和數(shù)據(jù)的實(shí)際存儲(chǔ)器,主要有兩種類型1)單邊直插式存儲(chǔ)器模塊(Single Inline Memory Module,SIMM),早期的30線、72線的內(nèi)存條都屬于這種類型30線內(nèi)存條早年多用在80386系列微處理器上,其容量有256 KB ,1 MB和4MB不等30線內(nèi)存條可提供8位有效數(shù)據(jù)位72線內(nèi)存條多用在80486、早期的Pentium微處理器上,其容量有4MB,8MB,16 MB和犯MB等,可提供犯位有效數(shù)據(jù)位下一頁,返回,上一頁,,,任務(wù)2半導(dǎo)體存儲(chǔ)器,(2)雙邊直插式存儲(chǔ)器模塊(Double Inline Memory Module , DIMM ),像168線的SDRAM和184線的DDR SDRAM內(nèi)存條都屬于這種類型市場(chǎng)上的DIMM內(nèi)存條出現(xiàn)了兩種標(biāo)準(zhǔn),即普通的DIMM(也就是SDRAM,和新標(biāo)準(zhǔn)的DDR DIMM。
SDRAM內(nèi)存條有168(84x2面)個(gè)引腳,故而這種內(nèi)存條又被稱為168線的內(nèi)存條這種168線內(nèi)存條的容量有128MB ,256MB ,512MB ,1GB等不同規(guī)格,可提供64位有效數(shù)據(jù)位新標(biāo)準(zhǔn)的DDR SDRMM則有184個(gè)引腳184線內(nèi)存條多與Pentium 4系列的微處理器配合使用其容量有128 MB和256MB,512MB,1 GB ,2 GB等不同規(guī)格DDR SDRAM可提供64位有效數(shù)據(jù)位下一頁,返回,上一頁,,,任務(wù)2半導(dǎo)體存儲(chǔ)器,雖然SDRAM類的內(nèi)存條和DDR SDRAM類的內(nèi)存條的長度相同,而且其芯片的形狀也幾乎完全相同,但SDRAM的金手指處有兩個(gè)缺口,而DDR SDRAM則只有一個(gè)缺口,這是辨別SDRAM和DDR SDRAM最簡單有效的辦法圖5-2,展示的是一款現(xiàn)代512MB DDR 400內(nèi)存條它是一種適用于臺(tái)式機(jī)的DDR內(nèi)存條,其容量為1 GB,金手指184個(gè)引腳,其工作頻率為400 MHz圖5-3,展示的是一款金士頓DDR2(雙通道套裝HyperX)內(nèi)存條,它適用于臺(tái)式計(jì)算機(jī)的內(nèi)存儲(chǔ)器,其容量為2 x2 048 MB =4 GB,它的工作頻率為1 066 MHz。
下一頁,返回,上一頁,,,任務(wù)2半導(dǎo)體存儲(chǔ)器,5.2.5內(nèi)存儲(chǔ)器的主要性能指標(biāo),,(1)內(nèi)存儲(chǔ)器容量即內(nèi)存儲(chǔ)器所能容納的字節(jié)總數(shù)2)存取速度即從內(nèi)存儲(chǔ)單元中將二進(jìn)制信息讀到存儲(chǔ)器數(shù)據(jù)寄存器中(或反之)所需的時(shí)間3)存儲(chǔ)器的可靠性用平均無故障時(shí)間的長短來表征,即兩次故障之間的平均時(shí)間間隔4)性價(jià)比性能與價(jià)格比值返回,上一頁,,,任務(wù)3 16位微處理器的存儲(chǔ)管理,下面以8086微處理器的存儲(chǔ)管理為例,介紹16位微處理器的存儲(chǔ)管理技術(shù)事實(shí)上,8086有20根地址線,可訪問1MB(2,20,b =1 MB)存儲(chǔ)空間,地址范圍是00000 H ~ FFFFFH 任意給定一個(gè)20位二進(jìn)制數(shù)(5位十六進(jìn)制數(shù))地址,就可以訪問1MB中的某個(gè)存儲(chǔ)單元5.3.1分段存儲(chǔ)管理,,由于8086與地址相關(guān)的寄存器是16位(內(nèi)部寄存器都是16位),算術(shù)邏輯部件ALU也只能進(jìn)行16位計(jì)算,因此只能存放16位地址,其尋址范圍也只能是64KB(2,16,b=64 KB)為了形成20位地址,以便尋址1 MB存儲(chǔ)空間,8086采用分段辦法管理1 MB存儲(chǔ)空間,即將1 MB存儲(chǔ)空間分成若干個(gè)邏輯段,每個(gè)邏輯段最大為64 KB。
下一頁,返回,,,任務(wù)3 16位微處理器的存儲(chǔ)管理,8086把內(nèi)存分成4種邏輯段,即代碼段、數(shù)據(jù)段、堆棧段和附加段,如,圖5-4,所示各段可連續(xù)或不連續(xù)排列,段的區(qū)域可部分重疊,也可全部重疊在4種邏輯段中,代碼段用于存放當(dāng)前要執(zhí)行的指令段,即只有已經(jīng)放到代碼段的指令才能被執(zhí)行數(shù)據(jù)段或附加段用于存放指令要訪問的數(shù)據(jù),可以事先把要處理的數(shù)據(jù)放到數(shù)據(jù)段或附加段中堆棧段用于臨時(shí)存放一些數(shù)據(jù),如在響應(yīng)中斷、子程序調(diào)用時(shí)把需要保護(hù)的數(shù)據(jù)(如斷點(diǎn)地址)存在堆棧中,當(dāng)需要這些數(shù)據(jù)時(shí),再把它們從堆棧中取出來存儲(chǔ)器分段管理的方法雖給編程帶來一些麻煩,但給模塊化程序、多通道程序及多用戶程序的設(shè)計(jì)創(chuàng)造了條件下一頁,返回,上一頁,,,任務(wù)3 16位微處理器的存儲(chǔ)管理,5.3.2存儲(chǔ)管理的相關(guān)術(shù)語,,在8086微處理器中,在描述存儲(chǔ)器地址時(shí)要用到4個(gè)術(shù)語,即物理地址、偏移地址、段基地址和邏輯地址1.物理地址,,8086/8088的1 MB存儲(chǔ)器以字節(jié)地址為單位,即存儲(chǔ)器是按“字節(jié)尋址”的存儲(chǔ)器中的每個(gè)字節(jié)中可以存放一個(gè)字節(jié)數(shù)(8位二進(jìn)制數(shù)),每個(gè)字節(jié)擁有一個(gè)唯一的地址編號(hào)(20位二進(jìn)制數(shù)或5位十六進(jìn)制數(shù))存儲(chǔ)單元的地址碼由8086芯片的20條地址線提供,再經(jīng)譯碼確定。
8086最大內(nèi)存容量為1MB(2,20,),這就意味著任何一個(gè)內(nèi)存單元地址都要用一個(gè)20位二進(jìn)制的地址表示,且把每一個(gè)內(nèi)存單元的20位地址叫做物理地址下一頁,返回,上一頁,,,任務(wù)3 16位微處理器的存儲(chǔ)管理,2.偏移地址,,偏移地址是指段內(nèi)某內(nèi)存單元的物理地址,相對(duì)于段起始地址的位移量也就是說,是段內(nèi)的某個(gè)存儲(chǔ)單元與該段段首地址的差值,稱為段內(nèi)偏移地址或稱為偏移量或相對(duì)地址,用16位二進(jìn)制代碼表示由于一個(gè)段最大為64 KB,故偏移地址用16位二進(jìn)制數(shù)表示就可以了3.段基地址,,段基地址是放置在段寄存器上的地址信息8086對(duì)內(nèi)存儲(chǔ)器采用分段存儲(chǔ)管理的辦法,8086將大小為1 MB的存儲(chǔ)空間分為若干段,段的大小可以根據(jù)需要決定,其最大值可為64 KB存儲(chǔ)器分段后,每一段都要有一個(gè)段號(hào),且要用16位二進(jìn)制數(shù)表示任務(wù)3 16位微處理器的存儲(chǔ)管理,其實(shí),每個(gè)段的第1個(gè)地址的高端16位二進(jìn)制代碼就是該段的段號(hào),也叫段基地址,段基地址被保存在8086/8088的4個(gè)16位的寄存器CS,DS,SS和ES中8086/8088對(duì)存儲(chǔ)器分段時(shí),各段起始位置的地址編號(hào)通常是能被16整除的內(nèi)存單元可以對(duì)段寄存器設(shè)置不同的值,使對(duì)微處理器的存儲(chǔ)器訪問指向不同的段。
存儲(chǔ)器各段間可以是連續(xù)的存儲(chǔ)地址,也可以是不連續(xù)的存儲(chǔ)地址,段之間還可以部分重疊,不過,每兩段的段首地址必須相差16 B4.邏輯地址,,邏輯地址是在程序中對(duì)存儲(chǔ)器地址的一種表示方法,一般表示為段基址與偏移地址之和8086 CPU采用根據(jù)邏輯地址確定物理地址的方法,即將段基址左移4位與偏移地址相加,而得到內(nèi)存單元的20位物理地址下一頁,返回,上一頁,,,任務(wù)3 16位微處理器的存儲(chǔ)管理,段內(nèi)存儲(chǔ)單元地址與段的第1個(gè)單元地址相差的單元數(shù)稱為段內(nèi)偏移地址或偏移量或相對(duì)地址,段內(nèi)偏移地址也用16位二進(jìn)制數(shù)表示,通過段首地址與偏移地址可以計(jì)算出段內(nèi)存儲(chǔ)單元的20位物理地址邏輯地址由某段的段地址和段內(nèi)偏移地址這兩部分組成其計(jì)算公式可以表述如下段內(nèi)存儲(chǔ)單元20位物理地址=16位段基地址x 10H + 16位段內(nèi)偏移量,,段基地址乘以10H(十六進(jìn)制的16)相當(dāng)于在段基地址后加4個(gè)0(二進(jìn)制),即把段基地址左移4位,再加上偏移量,可得到20位物理地址段基地址和段內(nèi)偏移地址又稱為邏輯地址,邏輯地址通常寫成xxxxH :yyyyH其中,xxxxH是段基地址,yyyyH是段內(nèi)偏移地址,它們都是16位無符號(hào)數(shù)。
如某條指令的邏輯地,下一頁,返回,上一頁,,,任務(wù)3 16位微處理器的存儲(chǔ)管理,址為CS:IP,它表示由CS寄存器提供段基地址,由IP指令指針寄存器提供段內(nèi)偏移地址如,圖5-5,所示,某段的基地址為6000 H,求段首的物理地址是多少?段內(nèi)偏移量為0009 H單元的物理地址是多少?,,解如下段首的物理地址是6000 H x 10 H + 0000 H = 60000 H ,,,偏移量為9H單元的物理地址是6000H x 10H +9H =60009H,返回,上一頁,,,任務(wù)4新型存儲(chǔ)器技術(shù),現(xiàn)代微機(jī)中CPU的速度提高非常快,導(dǎo)致快速CPU常常要等待慢速的主存,而且程序規(guī)模越來越大,只依靠主存已遠(yuǎn)遠(yuǎn)不能滿足需要為解決CPU與主存之間的速度匹配和存儲(chǔ)容量問題,人們采用了許多新型的存儲(chǔ)器技術(shù)來彌補(bǔ)兩者在速度和容量方面的差距,其中常用的有多體交叉存儲(chǔ)器、高速緩沖存儲(chǔ)器(Cache)和虛擬存儲(chǔ)器等5.4.1多體交叉存儲(chǔ)器,,多體交叉存儲(chǔ)器是從改進(jìn)主存的結(jié)構(gòu)和工作方式入手,設(shè)法提高其吞吐率,使主存速度與CPU速度相匹配下一頁,返回,,,任務(wù)4新型存儲(chǔ)器技術(shù),目前大多數(shù)主存都采用MOS存儲(chǔ)器,其存取時(shí)間約為70 ns~300ns,比CPU速度要低一個(gè)數(shù)量級(jí)。
當(dāng)主存以單一存取控制方式工作時(shí),CPU每次訪問主存,只能讀出或?qū)懭艘粋€(gè)信息,在訪問過程中,CPU大部分時(shí)間處于等待狀態(tài),效率很低多體交叉存儲(chǔ)器的設(shè)計(jì)思想是在物理上將主存分成多個(gè)模塊,每一個(gè)模塊都包括一個(gè)存儲(chǔ)體、地址緩沖寄存器和數(shù)據(jù)緩沖寄存器等,即它們都是一個(gè)完整的存儲(chǔ)器因此,CPU就能同時(shí)訪問各個(gè)存儲(chǔ)模塊,任何時(shí)候都允許對(duì)多個(gè)模塊并行地進(jìn)行讀/寫操作,從而提高整個(gè)存儲(chǔ)系統(tǒng)的平均訪問速度多體交叉存儲(chǔ)器實(shí)際上是把整個(gè)主存地址空間劃分為多個(gè)同樣大小的地址分空間為了提高主存的數(shù)據(jù)傳輸速率,可以采用交叉編址的方案,,下一頁,返回,上一頁,,,任務(wù)4新型存儲(chǔ)器技術(shù),即利用主存地址的低K位來選擇模塊(可確定2,k,個(gè)模塊),高m位用來指定模塊中的存儲(chǔ)單元,這樣連續(xù)的幾個(gè)地址就位于相鄰的幾個(gè)模塊中,而不是在同一個(gè)模塊中,故稱為“多體交叉編址”CPU要訪問主存的幾個(gè)連續(xù)地址時(shí),可使這幾個(gè)模塊同時(shí)工作,整個(gè)主存的平均利用率得到提高5.4.2高速緩沖存儲(chǔ)器(cache),,在多級(jí)存儲(chǔ)系統(tǒng)中,為解決CPU和主存之間的速度匹配問題,除采用多體交叉存儲(chǔ)等技術(shù)外,更有效的一種方法是在CPU與主存間設(shè)置一個(gè)容量小但存取速度比主存快數(shù)倍的存儲(chǔ)器,稱為高速緩沖存儲(chǔ)器(Cache)。
下一頁,返回,上一頁,,,任務(wù)4新型存儲(chǔ)器技術(shù),Cache可提高CPU訪問存儲(chǔ)器時(shí)的存取速度,減少處理器的等待時(shí)間,對(duì)提高整個(gè)處理器的性能將起到非常重要的作用Cache的全部功能由硬件實(shí)現(xiàn),對(duì)程序員來說是“透明”的,Cache的存在使得程序員面對(duì)一個(gè)既有Cache速度,又有主存容量的存儲(chǔ)系統(tǒng)CPU不僅和Cache相連,而且和主存之間也要保持通路1. cache的工作原理,,對(duì)大量典型程序運(yùn)行情況的分析結(jié)果表明,在一個(gè)較短的時(shí)間間隔內(nèi),由程序產(chǎn)生的地址往往集中在存儲(chǔ)器邏輯地址空間很小范圍內(nèi)下一頁,返回,上一頁,,,任務(wù)4新型存儲(chǔ)器技術(shù),指令地址的分布本來就是連續(xù)的,再加上循環(huán)程序段和子程序段要重復(fù)執(zhí)行多次,因此,對(duì)這些地址的訪問就自然地具有時(shí)間上集中分布的傾向數(shù)據(jù)分布的這種集中傾向不如指令明顯,但對(duì)數(shù)組的存儲(chǔ)和訪問以及工作單元的選擇都可使存儲(chǔ)器地址相對(duì)集中這種對(duì)局部范圍的存儲(chǔ)器地址頻繁訪問,而對(duì)此范圍以外的地址則訪問甚少的現(xiàn)象,稱為程序訪問的局部性原理根據(jù)該原理可在主存和CPU寄存器之間設(shè)置一個(gè)高速但容量相對(duì)較小的存儲(chǔ)器Cache,把正在執(zhí)行的指令地址附近的一小部分指令或數(shù)據(jù),即當(dāng)前最活躍的程序或數(shù)據(jù)從主存成批調(diào)入Cache,供CPU在一段時(shí)間內(nèi)隨時(shí)使用,大大減少CPU訪問主存的次數(shù),從而加速程序的運(yùn)行。
下一頁,返回,上一頁,,,任務(wù)4新型存儲(chǔ)器技術(shù),微機(jī)系統(tǒng)正是依據(jù)此原理不斷地將與當(dāng)前指令集相關(guān)聯(lián)的一個(gè)不太大的后繼指令集從內(nèi)存讀到Cache,然后再高速傳送給CPU,從而達(dá)到速度匹配CPU對(duì)存儲(chǔ)器進(jìn)行數(shù)據(jù)請(qǐng)求時(shí)先訪問Cache如數(shù)據(jù)在Cache中,則CPU對(duì)C ache進(jìn)行讀/寫操作,稱為“命中”由于局部性原理不能保證所請(qǐng)求的數(shù)據(jù)都在Cache中,所以存在一個(gè)“命中率”,即CPU在任意一個(gè)時(shí)刻從Cache中可靠獲取數(shù)據(jù)的幾率命中率越高從Cache中正確獲取數(shù)據(jù)的可靠性就越大1)要訪問的數(shù)據(jù)在Cache中讀操作時(shí),CPU可直接從C ache中讀取數(shù)據(jù),不涉及主存寫操作時(shí),需改變C ache和主存中相應(yīng)兩個(gè)單元的內(nèi)容有兩種處理辦法,一種是Cache單元和主存中相應(yīng)單元同時(shí)被修改,稱為“直通存儲(chǔ)法”另一種是只修改Cache單元內(nèi)容,同時(shí)用一個(gè)標(biāo)志位作為標(biāo)志,當(dāng)有標(biāo)志位的信息塊從Cache中移去時(shí)再修改相應(yīng)主存單元,把修改信息一次寫回主存,稱為“寫回法”顯然直通存儲(chǔ)法比較簡單,但對(duì)于需多次修改的單元來說,可能導(dǎo)致不必要的主存復(fù)寫工作下一頁,返回,上一頁,,,任務(wù)4新型存儲(chǔ)器技術(shù),(2)要訪問的數(shù)據(jù)不在Cache中。
此時(shí)CPU直接對(duì)主存進(jìn)行操作讀操作時(shí),把主存中相應(yīng)信息塊送Cache,同時(shí)把所需數(shù)據(jù)送CPU,不必等待整個(gè)塊都裝入Cache,這種方法稱為“直通取數(shù)”寫操作時(shí),將信息直接寫入內(nèi)存主存和C ache存儲(chǔ)區(qū)均劃分成塊(block),每塊由多個(gè)信息字組成,兩者間以塊為單位交換信息Cache的內(nèi)容是在讀/寫過程中逐步調(diào)入的,是主存中部分內(nèi)容的副本信息塊調(diào)往Cache時(shí)的存放地址與它在主存時(shí)的不可能一致,兩種地址間有一定對(duì)應(yīng)關(guān)系,這種對(duì)應(yīng)關(guān)系稱為地址映像函數(shù)將主存地址變換成Cache地址的變換過程一般是通過硬件地址變換機(jī)構(gòu)按所采用的地址映像函數(shù)自動(dòng)完成的下一頁,返回,上一頁,,,任務(wù)4新型存儲(chǔ)器技術(shù),Cache存儲(chǔ)容量比主存容量小得多,但不能太小,太小會(huì)使命中率太低;也沒有必要過大,過大不僅會(huì)增加成本,且當(dāng)容量超過一定值后,命中率隨容量增加將不會(huì)有明顯增長只要Cache空間與主存空間在一定范圍內(nèi)保持適當(dāng)比例的映射關(guān)系,Cache命中率還是相當(dāng)高的一般規(guī)定Cache與內(nèi)存的空間比為4:1 000,即128 KB Cash可映射32 MB內(nèi)存;256KB Cache可映射64 MB內(nèi)存在這種情況下,命中率都在90%以上。
至于沒有命中的數(shù)據(jù),CPU只好直接從內(nèi)存獲取獲取的同時(shí)也把它復(fù)制到Cache,以備下次訪問下一頁,返回,上一頁,,,任務(wù)4新型存儲(chǔ)器技術(shù),2. Cache的基本結(jié)構(gòu),,Cache通常由相連存儲(chǔ)器實(shí)現(xiàn)相連存儲(chǔ)器的每一個(gè)存儲(chǔ)塊都具有額外的存儲(chǔ)信息,稱為標(biāo)簽(tab訪問相連存儲(chǔ)器時(shí),將地址和每一個(gè)標(biāo)簽同時(shí)進(jìn)行比較,對(duì)標(biāo)簽相同的存儲(chǔ)塊進(jìn)行訪問Cache的3種基本結(jié)構(gòu)如下1)全相連C ache存儲(chǔ)的塊與塊之間,以及存儲(chǔ)順序或保存的存儲(chǔ)器地址之間沒有直接關(guān)系可訪問很多的子程序、堆棧和段,而它們位于主存儲(chǔ)器的不同部位上因此,Cache保存著很多互不相關(guān)的數(shù)據(jù)塊,Cache必須對(duì)每個(gè)塊和塊自身的地址加以存儲(chǔ)當(dāng)請(qǐng)求數(shù)據(jù)時(shí),Cache控制器要把請(qǐng)求地址同所有地址加以比較,進(jìn)行確認(rèn)這種結(jié)構(gòu)的主要優(yōu)點(diǎn)是能夠在給定時(shí)間內(nèi)去存儲(chǔ)主存儲(chǔ)器中的不同的塊,命中率高;缺點(diǎn)是每一次請(qǐng)求數(shù)據(jù)同Cache中的地址進(jìn)行比較需要相當(dāng)?shù)臅r(shí)間,速度較慢下一頁,返回,上一頁,,,任務(wù)4新型存儲(chǔ)器技術(shù),(2)直接映像Cache由于每個(gè)主存儲(chǔ)器的塊在Cache中僅存在一個(gè)位置,因而把地址比較次數(shù)減少為一次其做法是,為Cache中的每個(gè)塊位置分配一個(gè)索引字段,用tag字段區(qū)分存放在Cache位置上不同的塊。
直接映像把主存儲(chǔ)器分成若干頁,主存儲(chǔ)器每一頁與Cache存儲(chǔ)器大小相同,匹配的主存儲(chǔ)器偏移量可直接映像為Cache偏移量Cache的tag存儲(chǔ)器(偏移量)保存著主存儲(chǔ)器的頁地址(頁號(hào))這種方法優(yōu)于全相連Cache,能進(jìn)行快速查找,缺點(diǎn)是當(dāng)主存儲(chǔ)器組之間做頻繁調(diào)用時(shí),Cache控制器必須做多次轉(zhuǎn)換3)組相連Cache介于全相連Cache和直接映像Cache之間使用幾組直接映像的塊,對(duì)于某一個(gè)給定的索引號(hào)可允許有幾個(gè)塊位置,因而可以增加命中率和系統(tǒng)效率下一頁,返回,上一頁,,,任務(wù)4新型存儲(chǔ)器技術(shù),3.替換算法,,一個(gè)好的替換算法首先要看訪問Cache的命中率如何,其次要看是否容易實(shí)現(xiàn)替換算法的目標(biāo)是使Cache獲得最高的命中率,就是讓Cache中總是保持著使用頻率高的數(shù)據(jù),從而使CPU訪問Cache的成功率最高替換算法有如下4個(gè)1)隨機(jī)替換算法隨機(jī)替換算法是最簡單的替換算法當(dāng)需要找替換的信息塊時(shí),用隨機(jī)數(shù)發(fā)生器產(chǎn)生一個(gè)隨機(jī)數(shù),即為被替換的塊號(hào)這種算法完全不反映程序的局部性特點(diǎn),沒有考慮信息塊的歷史情況和使用情況,命中率很低2)先進(jìn)先出(FIFO)算法把最早進(jìn)入Cache的信息塊給替換掉為實(shí)現(xiàn)這種算法,需要在地址變換表中設(shè)置一個(gè)歷史位,每當(dāng)有一個(gè)新塊調(diào)入Cache時(shí),就將已進(jìn)入Cache的所有信息塊的歷史位加1。
下一頁,返回,上一頁,,,任務(wù)4新型存儲(chǔ)器技術(shù),需要替換時(shí)只要挑選歷史位中數(shù)值最大的信息塊作為被替換塊即可這種算法在一定程度上能反映程序的局部性特點(diǎn),比隨機(jī)算法好,但這種方法只考慮歷史情況,并沒有反映出信息使用情況,所以其命中率也并不高原因很簡單,最先進(jìn)來的信息塊,或許就是經(jīng)常要用的塊3)近期最少使用(LRU)算法把最近使用最少的信息塊替換掉,要求隨時(shí)記錄Cache中各信息塊的使用情況為反映每個(gè)信息塊的使用情況,要為每個(gè)信息塊設(shè)置一個(gè)計(jì)數(shù)器,以便確定哪個(gè)信息塊是近期最少使用的LRU算法也可用堆棧來實(shí)現(xiàn),也稱為堆棧型算法當(dāng)所設(shè)堆棧已滿,又有一個(gè)信息塊要求調(diào)入Cache時(shí),先檢查堆棧中是否已經(jīng)有這一塊如有將這信息塊從堆棧中取出壓入堆棧棧頂;如沒有將該信息塊直接壓入棧項(xiàng)原來在棧底上的信息塊就成為被替換的信息塊而被壓出堆棧,這樣就保證任何時(shí)候棧頂上的信息塊總是剛被訪問過的塊,而棧底上的塊總是最近沒有被訪問過的塊下一頁,返回,上一頁,,,任務(wù)4新型存儲(chǔ)器技術(shù),這種算法能較好地反映程序局部性特征,可獲得較高的命中率但由于近期使用少的未必是將來使用最少的,所以這種算法的命中率比FIFO有所提高,但并非最理想。
4)優(yōu)化替換算法這是一種理想算法,實(shí)現(xiàn)起來難度較大因此,只作為衡量其他算法的標(biāo)準(zhǔn),這種算法需要程序運(yùn)行兩次,第1次分析地址流,第2次才真正運(yùn)行程序5.4.3虛擬存儲(chǔ)器,,1.虛擬存儲(chǔ)器的概念,,虛擬存儲(chǔ)器(virtual memory)以存儲(chǔ)器訪問局部性為基礎(chǔ),建立在主存一輔存物理體系結(jié)構(gòu)上,同時(shí)還有輔助軟件、硬件來對(duì)主存與輔存之間的數(shù)據(jù)交換實(shí)現(xiàn)控制功能虛擬存儲(chǔ)器是為了擴(kuò)大容量,把輔存當(dāng)做主存使用,它將主存和輔存的地址空間統(tǒng)一編址,形成一個(gè)龐大的存儲(chǔ)空間程序運(yùn)行時(shí),,下一頁,返回,上一頁,,,任務(wù)4新型存儲(chǔ)器技術(shù),用戶可訪問輔存中信息,可使用與訪問主存同樣的尋址方式,所需的程序和數(shù)據(jù)由輔助軟件和硬件自動(dòng)調(diào)人主存,之所以叫做“虛擬”,是因?yàn)檫@樣的主存并不是真實(shí)存在的在一個(gè)虛擬存儲(chǔ)系統(tǒng)中,展現(xiàn)在CPU面前的存儲(chǔ)器容量并不是實(shí)存容量加上輔存容量,而是一個(gè)比實(shí)存大得多的虛存空間,它與實(shí)存和輔存空間的容量無關(guān),取決于機(jī)器所能提供的虛存地址碼的長度如某計(jì)算機(jī)系統(tǒng)中,存儲(chǔ)器按字節(jié)編址,可提供的虛存地址碼長48位,能提供的虛存空間為2,48,B = 256TB,這是任何計(jì)算機(jī)系統(tǒng)主存儲(chǔ)器所不可能達(dá)到的容量。
CPU以邏輯地址訪問主存,由輔助硬件和軟件確定邏輯地址和物理地址的對(duì)應(yīng)關(guān)系,判斷這個(gè)邏輯地址指示的存儲(chǔ)單元內(nèi)容是否已裝入主存如在主存,CPU就直接執(zhí)行該程序或數(shù)據(jù);如不在主存,系統(tǒng)存儲(chǔ)管理軟件和輔助硬件就會(huì)把訪問單元所在的程序塊從輔存調(diào)入主存,并把邏輯地址轉(zhuǎn)換成實(shí)地址下一頁,返回,上一頁,,,任務(wù)4新型存儲(chǔ)器技術(shù),主存一輔存層次的虛擬存儲(chǔ)和C ache一主存層次有很多相似之處,但虛擬存儲(chǔ)器和Cache仍有如下的區(qū)別1) Cache用于彌補(bǔ)主存與CPU的速度差距;虛擬存儲(chǔ)器用來彌補(bǔ)主存和輔存之間的容量差距2) Cache每次傳送信息塊是定長的,只有幾十字節(jié);虛擬存儲(chǔ)器信息塊劃分有分頁、分段等,長度可以很大,達(dá)幾百或幾千字節(jié)3)CPU可直接訪問Cache;而CPU不能直接訪問輔存4)Cache存取信息的過程、地址變換和替換算法等全部由輔助硬件實(shí)現(xiàn),對(duì)程序員是透明的;而虛擬存儲(chǔ)器是由輔助軟件(操作系統(tǒng)的存儲(chǔ)管理軟件)和硬件相結(jié)合進(jìn)行信息塊的劃分和程序的調(diào)度下一頁,返回,上一頁,,,任務(wù)4新型存儲(chǔ)器技術(shù),2.頁式虛擬存儲(chǔ)器,,以頁為信息傳送單位的虛擬存儲(chǔ)器叫做“頁式虛擬存儲(chǔ)器”頁式虛擬存儲(chǔ)器中,將虛擬空間和主存空間機(jī)械地分成大小固定的頁。
頁的大小隨機(jī)器而異,一般為512 B或幾千字節(jié)不等,通常都取2的整數(shù)次冪個(gè)字節(jié)這種劃分是一種邏輯劃分,可由管理軟件任意指定因此,頁的起始地址都落在低位地址為零的地址上虛存空間中所劃分的頁稱為“虛頁”,主存空間中所劃分的頁稱為“實(shí)頁”頁面由0開始順序編號(hào),分別稱為虛頁號(hào)和實(shí)頁號(hào)虛擬地址由頁號(hào)(頁表索引)和頁內(nèi)地址(偏移地址)兩部分組成(高位字段為虛頁號(hào),低位字段為頁內(nèi)地址);物理地址分成實(shí)頁號(hào)和頁內(nèi)地址兩部分,,下一頁,返回,上一頁,,,任務(wù)4新型存儲(chǔ)器技術(shù),頁內(nèi)地址的長度由頁面大小決定,實(shí)頁號(hào)的長度取決于主存的容量因?yàn)樘摯婧蛯?shí)存頁面大小一致,所以信息由虛頁向?qū)嶍撜{(diào)入時(shí)以頁為單位,頁邊界對(duì)齊,頁內(nèi)地址無需修改就可直接使用因此,虛一實(shí)地址的轉(zhuǎn)換主要是虛頁號(hào)向?qū)嶍撎?hào)的轉(zhuǎn)換,這個(gè)轉(zhuǎn)換關(guān)系由頁表給出為實(shí)現(xiàn)地址變換,要建立一張?zhí)摰刂讽撎?hào)與實(shí)地址頁號(hào)的對(duì)照表,記錄程序的虛頁面調(diào)入主存時(shí)被安排在主存中的位置,這張表叫“頁表”,是存儲(chǔ)管理軟件根據(jù)主存運(yùn)行情況自動(dòng)建立的因?yàn)樘摯婵臻g比實(shí)存空間大得多,故虛頁號(hào)要比實(shí)頁號(hào)的長度長虛擬存儲(chǔ)模式中,每一個(gè)程序都有一個(gè)自己獨(dú)立的虛存空間也就是說,同一個(gè)系統(tǒng)運(yùn)行不同的程序時(shí)會(huì)有不同的虛存空間。
程序運(yùn)行時(shí),存儲(chǔ)管理軟件要根據(jù)主存的運(yùn)行情況為每一個(gè)程序建立一張獨(dú)立的頁表,存放在主存特定區(qū)域頁表信息字按虛頁號(hào)順序排列,,下一頁,返回,上一頁,,,任務(wù)4新型存儲(chǔ)器技術(shù),在每個(gè)虛頁中都有一個(gè)描述頁表狀況的信息字,稱為“頁表信息字”,其中存放該虛頁對(duì)應(yīng)到實(shí)存中的頁號(hào)以及一些其他信息當(dāng)一個(gè)虛頁號(hào)向?qū)嶍撎?hào)轉(zhuǎn)換時(shí),先應(yīng)找到該程序的頁表區(qū)首地址,然后按虛頁號(hào)順序找到該頁的頁表信息字由于頁表被保存在內(nèi)存的特定區(qū)域中,程序投入運(yùn)行時(shí),便由存儲(chǔ)管理軟件把這個(gè)程序的頁表區(qū)首地址送到頁表的基址寄存器中頁式虛擬存儲(chǔ)器每頁長度固定且可順序編號(hào),頁表設(shè)置很方便虛頁調(diào)入主存時(shí),主存空間分配簡單,開銷小,頁面長度較小,主存空間可得到充分地利用,因而得到廣泛應(yīng)用缺點(diǎn)是程序不可能正好是頁面的整數(shù)倍,最后一頁的零頭無法利用而浪費(fèi),同時(shí)機(jī)械分頁無法照顧程序內(nèi)部的邏輯結(jié)構(gòu),幾乎不可能出現(xiàn)一頁正好是一個(gè)邏輯上獨(dú)立的程序段,指令或數(shù)據(jù)跨頁的狀況會(huì)增加查頁表的次數(shù)和頁面失效的可能性下一頁,返回,上一頁,,,任務(wù)4新型存儲(chǔ)器技術(shù),3.段式虛擬存儲(chǔ)器,,段式虛擬存儲(chǔ)器是以程序的邏輯結(jié)構(gòu)所自然形成的段作為主存分配單位進(jìn)行存儲(chǔ)器管理其中每個(gè)段的長度可不同,可獨(dú)立編址。
有的段甚至可事先不確定大小,而在執(zhí)行時(shí)動(dòng)態(tài)地決定程序運(yùn)行時(shí),以段為單位整段從輔存調(diào)入主存,一段占用一個(gè)連續(xù)的存儲(chǔ)空間,CPU訪問時(shí)仍需進(jìn)行虛-實(shí)地址的轉(zhuǎn)換它與頁式虛擬存儲(chǔ)器技術(shù)十分相似,每個(gè)程序都有一個(gè)段表,存放程序段裝入主存的狀態(tài)信息,主要有段號(hào)、段起點(diǎn)、裝入位置和段長度等程序運(yùn)行時(shí),要先根據(jù)段表確定所訪問的虛段是否已經(jīng)存在于主存中如沒有,則先將其調(diào)入主存;如已在主存中,則進(jìn)行虛一實(shí)轉(zhuǎn)換,確定其在主存中的位置下一頁,返回,上一頁,,,任務(wù)4新型存儲(chǔ)器技術(shù),段式虛擬存儲(chǔ)器配合了模塊化程序設(shè)計(jì),使各段之間相互獨(dú)立、互不干擾程序按邏輯功能分段,各有段名,便于程序段公用和按段調(diào)用,可提高命中率不足之處是各段長度不等,調(diào)入主存時(shí)主存空間分配工作比較復(fù)雜,段與段之間的內(nèi)存空間常常不好利用而造成浪費(fèi)4.段頁式虛擬存儲(chǔ)器,,為充分發(fā)揮頁式和段式虛擬存儲(chǔ)器各自的優(yōu)點(diǎn),可把兩者結(jié)合起來形成段頁式虛擬存儲(chǔ)器,將存儲(chǔ)空間仍按程序的邏輯模塊分段,以保證每個(gè)模塊的獨(dú)立性和便于用戶公用每段又劃分為若干個(gè)頁,頁面大小與實(shí)存頁面相同虛擬地址的格式包括段號(hào)、頁號(hào)和頁內(nèi)地址三部分實(shí)地址則只有頁號(hào)和頁內(nèi)地址虛存與實(shí)存之間信息調(diào)度以頁為基本單位。
每個(gè)程序有一張段表,每段對(duì)應(yīng)一張頁表CPU訪問時(shí),由段表指出每段對(duì)應(yīng)的頁表的起始地址,而每一段的頁表可指出該段的虛頁在實(shí)存空間的存放位置(實(shí)頁號(hào)),最后與頁內(nèi)地址拼接即可確定CPU要訪問的信息的實(shí)存地址這是一種較好的虛擬存儲(chǔ)器管理方式返回,上一頁,,,圖5-1存儲(chǔ)系統(tǒng)的層次結(jié)構(gòu),返回,,,圖5-2一款現(xiàn)代512MB DDR 400內(nèi)存條,返回,,,圖5-3 一款金士頓4GBDDR2內(nèi)存條,返回,,,圖5-4內(nèi)存分段示意圖,返回,,,圖5-5邏輯段,返回,,,。