計(jì)算機(jī)組成原理-存儲(chǔ)器概述教學(xué)課件_第1頁
計(jì)算機(jī)組成原理-存儲(chǔ)器概述教學(xué)課件_第2頁
計(jì)算機(jī)組成原理-存儲(chǔ)器概述教學(xué)課件_第3頁
計(jì)算機(jī)組成原理-存儲(chǔ)器概述教學(xué)課件_第4頁
計(jì)算機(jī)組成原理-存儲(chǔ)器概述教學(xué)課件_第5頁
已閱讀5頁,還剩160頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、計(jì)算機(jī)組成原理Principles of Computer Organization本章導(dǎo)讀存儲(chǔ)器的功能是存放指令和數(shù)據(jù),它使計(jì)算機(jī)具有了記憶能力,進(jìn)而具備了自動(dòng)操作能力,因此,存儲(chǔ)器在計(jì)算機(jī)中具有重要的地位。本章首先介紹存儲(chǔ)器的分類、層次結(jié)構(gòu)和主要的技術(shù)指標(biāo),然后介紹各主要存儲(chǔ)器的工作原理及擴(kuò)展存儲(chǔ)器容量的技術(shù),最后介紹高速緩沖存儲(chǔ)器和虛擬存儲(chǔ)器的基本原理及實(shí)現(xiàn)技術(shù)。01存儲(chǔ)器的分類、層次結(jié)構(gòu)和主要的技術(shù)指標(biāo),要求達(dá)到“綜合應(yīng)用”層次03高速緩沖存儲(chǔ)器,要求達(dá)到“簡(jiǎn)單應(yīng)用”層次01存儲(chǔ)器的分類、層次結(jié)構(gòu)和主要的技術(shù)指標(biāo),要求達(dá)到“綜合應(yīng)用”層次學(xué)習(xí)目標(biāo)04虛擬存儲(chǔ)器,要求達(dá)到“簡(jiǎn)單應(yīng)用”層次

2、02各主要存儲(chǔ)器的工作原理及擴(kuò)展存儲(chǔ)器容量的技術(shù),要求達(dá)到“領(lǐng)會(huì)”層次02各主要存儲(chǔ)器的工作原理及擴(kuò)展存儲(chǔ)器容量的技術(shù),要求達(dá)到“領(lǐng)會(huì)”層次目錄concents4.1存儲(chǔ)器概述4.2半導(dǎo)體存儲(chǔ)器4.3主存儲(chǔ)器與CPU的連接4.4并行存儲(chǔ)器4.5高速緩沖存儲(chǔ)器4.6虛擬存儲(chǔ)器4.7常見問題和易混淆知識(shí)點(diǎn)存儲(chǔ)器概述4.11.按存取方式分類特點(diǎn)是,存儲(chǔ)器中任何一個(gè)存儲(chǔ)單元都能由CPU或I/O設(shè)備隨機(jī)存取,且存取時(shí)間與存取單元的物理位置無關(guān)。這類存儲(chǔ)器在一個(gè)存或取的周期內(nèi)只能進(jìn)行一次訪問,信息讀取時(shí)間對(duì)任何地址都是相同的。且每一個(gè)字(字節(jié))都有唯一、直接和獨(dú)立的尋址方法。隨機(jī)存儲(chǔ)器常用作主存或高速緩存

3、。4.1.1 存儲(chǔ)器的分類(1)隨機(jī)存儲(chǔ)器(Random Access Memory,RAM)(2)特點(diǎn)是,存儲(chǔ)器的內(nèi)容只能讀出而不能寫入。這類存儲(chǔ)器常用來存放固定不變的系統(tǒng)程序,故又稱為“固存”。只讀存儲(chǔ)器(Read Only Memory,ROM)(3)特點(diǎn)是,存儲(chǔ)器中存儲(chǔ)的信息(字或者記錄塊)完全按順序進(jìn)行存取,在信息載體上沒有唯一對(duì)應(yīng)的地址號(hào);訪問指定信息所花費(fèi)的時(shí)間和信息所在存儲(chǔ)單元的物理位置密切相關(guān)。因此,順序存取存儲(chǔ)器的存取時(shí)間長(zhǎng),速度慢。這種存儲(chǔ)器的存儲(chǔ)容量可以做得較大,位價(jià)格較低。順序存取存儲(chǔ)器(Sequential Access Memory,SAM)(4)特點(diǎn)是,存儲(chǔ)器的

4、任何部位(一個(gè)字或字節(jié)、記錄塊等)沒有實(shí)際的尋址機(jī)構(gòu),當(dāng)要存取所需要的信息時(shí),必須執(zhí)行兩個(gè)邏輯操作。首先,直接指向整個(gè)存儲(chǔ)器的一個(gè)小區(qū)域(如磁盤上的磁道);然后對(duì)這一小區(qū)域像磁帶那樣按順序檢索、記數(shù)或等待,直至找到 最后的目的塊(磁道上的扇區(qū))。由于可以直接指向存儲(chǔ)器的一個(gè)很小的局部,故稱為直接存取存儲(chǔ)器,又因后半段操作是順序存取,故又有半順序存取存儲(chǔ)器之稱。直接存取存儲(chǔ)器(Direct Access Memory,DAM)存儲(chǔ)介質(zhì)指可用兩個(gè)穩(wěn)定的物態(tài)來表示二進(jìn)制數(shù)0和1的物質(zhì)或元器件。2.按存儲(chǔ)介質(zhì)分類利用電平高低表示信息,有雙極型(TTL)半導(dǎo)體存儲(chǔ)器和MOS型半導(dǎo)體存儲(chǔ)器兩種,后者被廣泛

5、使用。(1)半導(dǎo)體存儲(chǔ)器(2)利用剩磁狀態(tài)表示信息,有磁芯和磁表面兩種類型,磁芯存儲(chǔ)器已被淘汰,磁表面存儲(chǔ)器又可分為磁盤和磁帶兩種。磁性材料存儲(chǔ)器(3)利用不同物態(tài)的反光性表示信息,常見的有光盤。光介質(zhì)存儲(chǔ)器3.按信息的可保存性分類按信息的可保存性分類,可將存儲(chǔ)器分為易失性存儲(chǔ)器和非易失性存儲(chǔ)器。斷電后,存儲(chǔ)的信息將消失的存儲(chǔ)器稱為易失性存儲(chǔ)器,如RAM。斷電后,存儲(chǔ)的信息仍保存在存儲(chǔ)器中的存儲(chǔ)器稱為非易失性存儲(chǔ)器,如ROM、Flash和磁性材料存儲(chǔ)器。4.按在計(jì)算機(jī)中的作用分類特點(diǎn)是可以和CPU直接交換信息。主存儲(chǔ)器速度快、容量較小、位價(jià)格較高。(1)主存儲(chǔ)器(簡(jiǎn)稱主存或內(nèi)存)(2)是主存儲(chǔ)

6、器的后援存儲(chǔ)器,用于存放當(dāng)前暫時(shí)不用的程序和數(shù)據(jù),不能與CPU直接交換信息。輔助存儲(chǔ)器速度慢、容量大、位價(jià)格低。輔助存儲(chǔ)器(簡(jiǎn)稱輔存或外存)(3)用于兩個(gè)不同工作速度的部件之間,在交換信息過程中起緩沖作用。緩沖存儲(chǔ)器存儲(chǔ)器的分類可用圖表示。為了解決對(duì)存儲(chǔ)器要求容量大,速度快,成本低三者之間的矛盾,計(jì)算機(jī)通常采用多級(jí)存儲(chǔ)器體系結(jié)構(gòu),即使用高速緩沖存儲(chǔ)器、主存儲(chǔ)器和輔助存儲(chǔ)器,如圖所示。4.1.2 存儲(chǔ)器的層次結(jié)構(gòu)在存儲(chǔ)系統(tǒng)的分級(jí)結(jié)構(gòu)中,由上至下,位價(jià)格越來越低,速度越來越慢,容量越來越大,CPU訪問的頻度也越來越低。實(shí)際上,存儲(chǔ)系統(tǒng)層次結(jié)構(gòu)主要體現(xiàn)在“Cache主存”層次和“主存輔存”層次。前者

7、主要解決CPU和主存速度不匹配的問題,后者主要解決存儲(chǔ)系統(tǒng)的容量問題。在存儲(chǔ)體系中,Cache、主存能與CPU直接交換信息,輔存則要通過主存與CPU交換信息,主存與CPU、Cache、輔存都能交換信息,如圖所示。在存儲(chǔ)系統(tǒng)中,主存和Cache之間的數(shù)據(jù)調(diào)動(dòng)是由硬件自動(dòng)完成的,對(duì)所有程序員均是透明的;而主存和輔存之間的數(shù)據(jù)調(diào)動(dòng)則是由硬件和操作系統(tǒng)共同完成的,對(duì)應(yīng)用程序員是透明的。在“主存輔存”這一層次的不斷發(fā)展中,逐漸形成了虛擬存儲(chǔ)系統(tǒng),在這個(gè)系統(tǒng)中程序員編程的地址范圍與虛擬存儲(chǔ)器的地址空間相對(duì)應(yīng)。對(duì)具有虛擬存儲(chǔ)器的計(jì)算機(jī)系統(tǒng)而言,編程時(shí)可用的地址空間遠(yuǎn)遠(yuǎn)大于主存空間。4.1.3 主存儲(chǔ)器的技術(shù)

8、指標(biāo)1.存儲(chǔ)容量存儲(chǔ)容量指存儲(chǔ)器能存放二進(jìn)制代碼的總數(shù):存儲(chǔ)容量=存儲(chǔ)單元個(gè)數(shù)存儲(chǔ)字長(zhǎng)8,單位為B(字節(jié))。2.存取時(shí)間存取時(shí)間是從啟動(dòng)一次訪問操作到完成該操作所經(jīng)歷的時(shí)間,以ns為單位,存取時(shí)間又分讀出時(shí)間和寫入時(shí)間兩種。3.存取周期存取周期是存儲(chǔ)器連續(xù)啟動(dòng)兩次獨(dú)立的訪問操作所需的最小間隔時(shí)間,以ns為單位。即:存取周期=存取時(shí)間+復(fù)原時(shí)間。4.存儲(chǔ)器帶寬存儲(chǔ)器帶寬是每秒從存儲(chǔ)器進(jìn)出的最大數(shù)據(jù)量,單位為b/s(位/秒)或者B/s(字節(jié)/秒)。例4-1設(shè)某存儲(chǔ)系統(tǒng)的存取周期為500 ns,每個(gè)存取周期可訪問16位,則該存儲(chǔ)器的帶寬是多少?解存儲(chǔ)帶寬=每周期的信息量周期時(shí)長(zhǎng) =16位(50010

9、9)秒 =3.2107位/秒半導(dǎo)體存儲(chǔ)器4.24.2.1 半導(dǎo)體存儲(chǔ)芯片的基本結(jié)構(gòu)半導(dǎo)體存儲(chǔ)芯片采用超大規(guī)模集成電路制造工藝,在一個(gè)芯片內(nèi)集成具有記憶功能的存儲(chǔ)矩陣、譯碼驅(qū)動(dòng)器和讀/寫電路等,其基本結(jié)構(gòu)如圖所示。讀/寫控制線譯碼驅(qū)動(dòng)器存儲(chǔ)矩陣讀/寫電路片選線地址線數(shù)據(jù)線(1)存儲(chǔ)矩陣由大量相同的位存儲(chǔ)單元陣列構(gòu)成。(2)譯碼驅(qū)動(dòng)器將來自地址線的地址信號(hào)翻譯成對(duì)應(yīng)存儲(chǔ)單元的選通信號(hào),該信號(hào)在讀/寫電路的配合下完成對(duì)被選中存儲(chǔ)單元的讀/寫操作。(3)讀/寫電路包括讀出放大器和寫入電路,用來完成讀/寫操作。(4)存儲(chǔ)芯片存儲(chǔ)芯片通過地址線、數(shù)據(jù)線和控制線與外部連接。地址線是單向輸入的,其位數(shù)與芯片容

10、量有關(guān)。數(shù)據(jù)線是雙向的(有的芯片可用成對(duì)出現(xiàn)的數(shù)據(jù)線分別作為輸入和輸出),其位數(shù)與芯片可讀出或?qū)懭氲臄?shù)據(jù)位數(shù)有關(guān)??刂凭€主要有讀/寫控制線與片選線兩種。讀/寫控制線用來控制芯片進(jìn)行讀/寫操作,片選線用來選擇存儲(chǔ)芯片。4.2.2 隨機(jī)存儲(chǔ)器隨機(jī)存儲(chǔ)器按其存儲(chǔ)信息的原理不同,可分為靜態(tài)隨機(jī)存儲(chǔ)器(Static RAM,SRAM)和動(dòng)態(tài)隨機(jī)存儲(chǔ)器(Dynamic RAM,DRAM)。01SRAM(1)SRAM基本單元電路SRAM存儲(chǔ)單元的每個(gè)存儲(chǔ)位由46個(gè)晶體管組成,比較典型的是六管存儲(chǔ)元,其一個(gè)存儲(chǔ)元存儲(chǔ)一位信息0或1。工作管,它們交叉耦合構(gòu)成觸發(fā)器,用來存儲(chǔ)信息T1和T2觸發(fā)器負(fù)載管T3和T4門

11、控管,用來控制是否對(duì)存儲(chǔ)元進(jìn)行操作T5和T6觸發(fā)器存儲(chǔ)信息的基本原理是:若T1截止,則A為高電平T2導(dǎo)通B為低電平,B為低 電平更加使T1截止,從而達(dá)到一個(gè)穩(wěn)定狀態(tài)。若T2截止,則T1導(dǎo)通,達(dá)到另一個(gè)穩(wěn)定狀態(tài)。只要不斷電,存儲(chǔ)元中的信息可以永遠(yuǎn)保持不變。SRAM保存的信息比較穩(wěn)定,信息為非破壞性讀出,故不需要重寫或者刷新操作;另一方面,其結(jié)構(gòu)簡(jiǎn)單、可靠性高、速度較快,但占用元件較多,占硅片面積大,且功耗大,所以集成度不高。(2) SRAM的邏輯結(jié)構(gòu)以容量為1 K4位的SRAM為例進(jìn)行說明,其邏輯結(jié)構(gòu)如圖所示。任何一個(gè)SRAM,都有3組信號(hào)線與外部打交道:地址線,本例中有10條,即A0A9,它指

12、定了存儲(chǔ)器的容量是210=1 024個(gè)存儲(chǔ)單元,其中,x方向有A3A4A5A6A7A8,共6根,產(chǎn)生64條行選擇線;y方向有A0A1A2A9,共4根,產(chǎn)生16條列選擇線。數(shù)據(jù)線,本例中有4條,即I/O1I/O4,它指定了存儲(chǔ)器的字長(zhǎng)是4位,因此,存儲(chǔ)元的總數(shù)是1 0244=4 096 。控制線,本例中 為片選線,低電平有效; 為讀/寫控制線,低電平寫入,高電平讀取。(3) SRAM讀/寫操作周期時(shí)序圖讀/寫操作周期時(shí)序圖精確地反映了SRAM工作的時(shí)間關(guān)系。只要把握住地址線、控制線、數(shù)據(jù)線3組信號(hào)線何時(shí)有效,就很容易看懂這個(gè)周期時(shí)序圖。如圖所示,在整個(gè)讀周期中 始終為高電平(故圖中省略)。讀周期

13、tRC是指對(duì)芯片進(jìn)行兩次連續(xù)讀操作的最小間隔時(shí)間。讀時(shí)間tA表示從地址有效到數(shù)據(jù)穩(wěn)定所需的時(shí)間,顯然讀時(shí)間小于讀周期。tCO是從片選有效到輸出穩(wěn)定的時(shí)間??梢娭挥挟?dāng)?shù)刂酚行Ы?jīng)tA后,且當(dāng)片選有效經(jīng)tCO后,數(shù)據(jù)才能穩(wěn)定輸出。tOTD為片選無效后數(shù)據(jù)還能保持的時(shí)間。如圖所示,寫周期tWC是對(duì)芯片進(jìn)行連續(xù)兩次寫操作的最小間隔時(shí)間。寫周期包括滯后時(shí)間tAW、寫入時(shí)間tW和寫恢復(fù)時(shí)間tWR。數(shù)據(jù)線上的有效數(shù)據(jù)必須在 , 失效前的tDW時(shí)刻出現(xiàn),并延續(xù)一段時(shí)間tDH(此刻地址線仍有效,tWRtDH),以保證數(shù)據(jù)可靠寫入。02DRAM(1)DRAM基本單元電路DRAM存儲(chǔ)元的組成經(jīng)歷了四管MOS、三管MO

14、S及單管MOS等階段,功耗、成本不斷降低,集成度不斷提高。下面,僅分析目前主流的單管DRAM存儲(chǔ)元的基本組成。單管DRAM存儲(chǔ)元的基本電路如圖所示。其中,電容Cs用于存儲(chǔ)信息(有電荷表示1,無電荷表示0);T為門控管,用來控制是否對(duì)存儲(chǔ)元進(jìn)行操作。數(shù)據(jù)線CsT字線讀操作時(shí),字線上的高電平使T導(dǎo)通,若Cs有電荷,經(jīng)T在數(shù)據(jù)線上產(chǎn)生電流,可視為讀出1。若Cs無電荷,則數(shù)據(jù)線上無電流,可視為讀出0。讀操作結(jié)束時(shí),Cs的電荷已釋放完畢,故是破壞性讀出,必須再生。寫操作時(shí),字線上的高電平使T導(dǎo)通,若數(shù)據(jù)線上為高電平,經(jīng)T管對(duì)Cs充電,使其存1;若數(shù)據(jù)線為低電平,則Cs經(jīng)T放電,使其無電荷而存0。(2)D

15、RAM的邏輯結(jié)構(gòu)早期在IBM PC/XT微型計(jì)算機(jī)上使用的DRAM是4164芯片。在此以4164芯片為例來說明DRAM的邏輯結(jié)構(gòu)。4164是64 K1位的芯片,采用雙列直插式封裝,其邏輯結(jié)構(gòu)如圖所示。地址線,本例中有10條,即A0A9,它指定了存儲(chǔ)器的容量是210=1 024個(gè)存儲(chǔ)單元,其中,x方向有A3A4A5A6A7A8,共6根,產(chǎn)生64條行選擇線;y方向有A0A1A2A9,共4根,產(chǎn)生16條列選擇線。數(shù)據(jù)線,本例中有4條,即I/O1I/O4,它指定了存儲(chǔ)器的字長(zhǎng)是4位,因此,存儲(chǔ)元的總數(shù)是1 0244=4 096 ??刂凭€,本例中 為片選線,低電平有效; 為讀/寫控制線,低電平寫入,高電

16、平讀取。任何一個(gè)SRAM,都有3組信號(hào)線與外部打交道:64 K存儲(chǔ)器需16條地址線,為了減少封裝引腳數(shù),DRAM將地址線分為行地址和列地址兩部分。行、列地址共用8條地址線(地址線A0A7),采用分時(shí)復(fù)用的方法訪問存儲(chǔ)器單元。行、列地址選擇線的交叉組合即可對(duì)64 K位不同單元進(jìn)行尋址。4164芯片的存儲(chǔ)器體由4個(gè)128128存儲(chǔ)體組成,每個(gè)存儲(chǔ)體與一個(gè)128位讀出放大器相連,經(jīng)I/O門控電路及輸出緩沖器,將存儲(chǔ)體中的每一位連接到數(shù)據(jù)總線上。(3)DRAM讀/寫操作周期時(shí)序圖如圖,當(dāng)?shù)刂肪€上行地址有效后,用行選通信號(hào) (低電平有效)打入行地址鎖存器,接著地址線上傳送列地址,并用列選通信號(hào) (低電平

17、有效)打入列地址鎖存器。此時(shí)經(jīng)行、列地址譯碼,讀/寫命令 =1(高電平有效),數(shù)據(jù)線上便有輸出數(shù)據(jù)。如圖為DRAM的寫周期波形。此時(shí)讀/寫命令 =0(低電平有效),在此期間,數(shù)據(jù)線上必須送入欲寫入的數(shù)據(jù)(1或0)。讀周期、寫周期的定義是從行選通信號(hào) 下降沿開始,到下一個(gè) 信號(hào)的下降沿為止的時(shí)間,也就是連續(xù)兩個(gè)讀周期的時(shí)間間隔。通常為控制方便,讀周期和寫周期時(shí)間相等。(4)DRAM的刷新DRAM是利用電容上保存的電荷來存儲(chǔ)信息的,這個(gè)電荷量會(huì)隨著時(shí)間和溫度的變化而減少,因此必須定期地刷新以保持原來記憶的正確信息。從上一次對(duì)整個(gè)存儲(chǔ)器刷新結(jié)束到下一次對(duì)整個(gè)存儲(chǔ)器全部刷新一遍為止,這一段時(shí)間間隔稱刷

18、新周期。集中式刷新:是指在允許的最大刷新周期內(nèi),根據(jù)存儲(chǔ)容量的大小和存取周期的長(zhǎng)短,集中安排一段刷新時(shí)間,依次對(duì)存儲(chǔ)器的所有行進(jìn)行逐一再生,在刷新時(shí)間內(nèi)停止讀寫操作。例4-2設(shè)某存儲(chǔ)器的存儲(chǔ)矩陣為128128,存取周期為0.5 s,RAM刷新周期為2 ms,若采用集中式刷新方式,試分析其刷新過程。解存取周期為0.5 s,連續(xù)刷新128行,共需128個(gè)讀周期,即一次刷新的總時(shí)間為64 s。若刷新周期為2 ms,那么,2 ms內(nèi)有4 000個(gè)讀寫操作(2 ms/0.5 s=4 000)。在這4 000個(gè)讀寫操作內(nèi),前面3 872個(gè)周期用來進(jìn)行讀寫或維持信息,后面128個(gè)周期用來刷新。正常的存儲(chǔ)器訪

19、問刷新1 936 s(3 872個(gè)周期)64 s(128個(gè)周期)2 ms(4 000個(gè)存取周期)03 87113 8723 999集中式刷新的時(shí)間分配如圖所示。可以看出,在讀寫操作時(shí),不進(jìn)行刷新操作,因此,讀寫操作不受刷新操作影響,讀寫速度較高。但在刷新時(shí),必須停止讀寫操作。這段不能進(jìn)行讀寫操作的時(shí)間稱為“死區(qū)”。在本例中,這段“死區(qū)”占4 000個(gè)存取周期中的128個(gè),“死時(shí)間率”為128/4 000100%=3.2%,“死區(qū)”時(shí)間為(0.5 s)128=64 s。分散式刷新:是指把每行存儲(chǔ)單元的刷新分散到每個(gè)讀寫周期內(nèi)進(jìn)行,即把系統(tǒng)對(duì)存儲(chǔ)器的訪問周期分為兩段,前一段用來讀寫數(shù)據(jù)或使存儲(chǔ)器處

20、于保持狀態(tài),后一段用來對(duì)存儲(chǔ)矩陣的一行進(jìn)行刷新。例4-3設(shè)某存儲(chǔ)器的存儲(chǔ)矩陣為128128,存取周期為0.5 s,RAM刷新周期為2 ms,若采用分散式刷新方式,試分析其刷新過程。解分散式刷新時(shí)間分配如圖所示。這種刷新方式增加了系統(tǒng)對(duì)存儲(chǔ)器的存儲(chǔ)時(shí)間,存取周期tC=tM(讀寫)+tR(刷新),將存取周期延長(zhǎng)一倍,即為1 s;前0.5 s用于讀寫,后0.5 s用于刷新一行。刷新128 s(128個(gè)系統(tǒng)周期)讀/寫刷新讀/寫刷新讀/寫存取周期系統(tǒng)周期0.5 s0.5 s對(duì)于128128存儲(chǔ)矩陣的芯片來說,存儲(chǔ)器刷新一遍需要128 s,即刷新周期為1 s(1行的刷新時(shí)間)128行(存儲(chǔ)體的行數(shù))=1

21、28 s,也就是以128 s作為間隔時(shí)間。這種刷新方法避免了“死區(qū)”,但加長(zhǎng)了存儲(chǔ)器的存儲(chǔ)時(shí)間,降低了整機(jī)的處理速度。而且刷新時(shí)間過于頻繁,沒有充分利用所允許的最大刷新間隔時(shí)間,因此不適用于高速存儲(chǔ)器。異步式刷新:是上述兩種方法的結(jié)合,它充分利用了最大間隔時(shí)間并使“死區(qū)”縮短。具體做法是,將刷新周期除以行數(shù),得到兩次刷新操作之間的時(shí)間間隔t,利用邏輯電路每隔時(shí)間t產(chǎn)生一次刷新要求。這樣可以避免使CPU連續(xù)等待過長(zhǎng)的時(shí)間,而且減少了刷新次數(shù),從根本上提高了整機(jī)的工作效率。例4-4設(shè)某存儲(chǔ)器的存儲(chǔ)矩陣為128128,存取周期為0.5 s,RAM刷新周期為2 ms,若采用異步式刷新方式,試分析其刷新

22、過程。解對(duì)于128128存儲(chǔ)矩陣的芯片來說,每行的刷新間隔時(shí)間是2 ms/128,即每隔15.6 s刷新一行。在2 ms內(nèi)分散地對(duì)128行輪流刷新一遍,刷新一行只停止一次讀寫操作。這樣,對(duì)每一行來說,刷新時(shí)間仍為2 ms,而“死區(qū)”的長(zhǎng)度則縮短為0.5 s。異步式刷新時(shí)間分配如圖所示。2 ms(4 000個(gè)存取周期) 讀/寫刷新15.1 s0.5 s讀/寫刷新15.1 s0.5 s112803SRAM和DRAM的比較綜上所述,SRAM和DRAM各自的特點(diǎn)如表所示。 類 型 特 點(diǎn)SRAMDRAM存儲(chǔ)原理觸發(fā)器電容破壞性讀出非是需要刷新不需要需要送行列地址同時(shí)送分兩次送運(yùn)行速度快慢 類 型 特

23、點(diǎn)SRAMDRAM集成度低高發(fā)熱量(功率)大小存儲(chǔ)成本高低主要用途高速緩存主機(jī)內(nèi)存4.2.3 只讀存儲(chǔ)器和閃速存儲(chǔ)器只讀存儲(chǔ)器(ROM),顧名思義,只能讀出,不能寫入。其中存儲(chǔ)的原始數(shù)據(jù),必須在它工作以前寫入。它的最大優(yōu)點(diǎn)是具有不易失性。根據(jù)編程方式不同,ROM通常分為掩模ROM和可編程ROM兩類,后者又可分為一次性編程PROM、多次編程EPROM和EEPROM。01只讀存儲(chǔ)器(1)掩模ROM生產(chǎn)廠家在制造芯片時(shí)已將數(shù)據(jù)編程寫入芯片了,用戶不能更改存儲(chǔ)器的內(nèi)容,只能讀出數(shù)據(jù)使用。包括廣泛使用的具有標(biāo)準(zhǔn)功能的程序或數(shù)據(jù),或?yàn)橛脩舳ㄗ龅木哂刑厥夤δ艿某绦蚧驍?shù)據(jù)。大部分掩模ROM芯片利用在行選線和列

24、選線交叉點(diǎn)上的晶體管是導(dǎo)通或截止來表示1或0。掩模ROM的特點(diǎn)是可靠性高,集成度高,批量生產(chǎn)之后價(jià)格便宜,但靈活性差。(2) PROM允許用戶利用專門的設(shè)備(編程器)寫入程序,內(nèi)容一旦寫入后,就無法改變。這種ROM一般由二極管矩陣組成,寫入時(shí),利用外部引腳輸入地址,對(duì)其中的二極管鍵進(jìn)行選擇,使某些被燒斷,某些保持原狀。那些保持原狀的二極管鍵代表1,而那些燒斷的二極管鍵代表0。如圖為一個(gè)由雙極型電路和熔絲構(gòu)成的基本單元電路。行線熔絲VCC(3) PROM是一種可擦除可編程只讀存儲(chǔ)器,它可以由用戶對(duì)其所存信息進(jìn)行多次改寫。其基本電路結(jié)構(gòu)如圖所示。SiO2SGDSDGP基片N+N+浮動(dòng)?xùn)旁赟極(源極

25、)與D極(漏極)之間,有一個(gè)多晶硅做成的G極(柵極),但它是浮空的,被絕緣物SiO2所包圍。把EPROM管用于存儲(chǔ)矩陣時(shí),其初態(tài)各位均為1,要寫入0時(shí),在D極和S極之間加上25 V高壓,便會(huì)形成一個(gè)浮動(dòng)?xùn)牛柚筍極和D極之間的導(dǎo)通,致使此EPROM管處于0狀態(tài)。12用紫外線照射,但擦除時(shí)間比較長(zhǎng),而且不能對(duì)個(gè)別需改寫的單元進(jìn)行單獨(dú)擦除或重寫用電氣方法將存儲(chǔ)內(nèi)容擦除,再重寫。EPROM的改寫可用兩種方法:(4) EEPROM由于EPROM操作的不便,后來又出現(xiàn)了EEPROM(也稱E2PROM)。EEPROM的擦除不需要借助其他設(shè)備,它是以電信號(hào)來修改內(nèi)容的,而且可以局部擦寫。閃速存儲(chǔ)器(Fla

26、sh)是在EPROM和EEPROM基礎(chǔ)上發(fā)展起來的,其主要特點(diǎn)是既可在不加電的情況下長(zhǎng)期保存信息,又能在線進(jìn)行快速擦除與重寫。它價(jià)格便宜、集成度高,又可擦除重寫。此外還具有整片擦除的特點(diǎn),其擦除、重寫速度較快。至少可以擦寫/編程10 000次,因此在便攜式計(jì)算機(jī)、單片機(jī)系統(tǒng)中得到了大量的應(yīng)用。02閃存存儲(chǔ)器主存儲(chǔ)器與CPU的連接4.34.3.1 連接原理主存與CPU可以通過總線連接,如圖所示。其中,MDR為數(shù)據(jù)寄存器,MAR為地址寄存器。主存儲(chǔ)器通過數(shù)據(jù)總線、地址總線和控制總線與CPU連接。數(shù)據(jù)總線的位數(shù)與工作頻率的乘積正比于數(shù)據(jù)傳輸率;地址總線的位數(shù)決定了可尋址的最大主存空間;控制總線(讀/

27、寫)指出總線周期的類型和本次輸入/輸出操作完成的時(shí)刻。4.3.2 主存容量的擴(kuò)展由于單個(gè)存儲(chǔ)芯片的容量是有限的,很難滿足實(shí)際的需要,因此,必須將若干存儲(chǔ)芯片連在一起才能組成足夠容量的存儲(chǔ)器,稱為存儲(chǔ)器的擴(kuò)展。其擴(kuò)展方式有3種,分別是位擴(kuò)展、字?jǐn)U展和字位同時(shí)擴(kuò)展。位擴(kuò)展是指增加存儲(chǔ)芯片的數(shù)據(jù)位數(shù)(存儲(chǔ)字長(zhǎng)),使其數(shù)據(jù)位數(shù)與CPU的數(shù)據(jù)線數(shù)相等。所需芯片數(shù)d=設(shè)計(jì)要求的存儲(chǔ)器容量存儲(chǔ)芯片存儲(chǔ)容量。01位擴(kuò)展存儲(chǔ)芯片與CPU的引腳連接方式如下。(2)數(shù)據(jù)線各芯片的數(shù)據(jù)線分別與CPU數(shù)據(jù)線的不同位連接。(1)地址線各芯片的地址線直接與CPU地址線連接。(3)片選及讀/寫線各芯片的片選及讀/寫信號(hào)線直接

28、與CPU的訪存及讀/寫信號(hào)線連接。例4-5利用4 K2位的存儲(chǔ)芯片,設(shè)計(jì)一個(gè)存儲(chǔ)容量為4 K8位的存儲(chǔ)器。解所需芯片數(shù)d=(4 K8)(4 K2)=4。4片存儲(chǔ)芯片的地址線和控制線公用,數(shù)據(jù)線分別與CPU數(shù)據(jù)線的不同位連接。如圖所示。字?jǐn)U展是指增加存儲(chǔ)器中的字的數(shù)量,而位數(shù)保持不變。存儲(chǔ)芯片與CPU的引腳連接方式如下。02字?jǐn)U展(2)數(shù)據(jù)線各芯片的數(shù)據(jù)線直接與CPU數(shù)據(jù)線連接。(1)地址線各芯片的地址線與CPU的低位地址線直接連接。(3)讀/寫線各芯片的讀/寫信號(hào)線直接與CPU的讀/寫信號(hào)線連接。(4)片選信號(hào)各芯片的片選信號(hào)由CPU的高位地址和訪存信號(hào)產(chǎn)生。例4-6利用1 K8位的存儲(chǔ)芯片,

29、設(shè)計(jì)一個(gè)存儲(chǔ)容量為2 K8位的存儲(chǔ)器。解所需芯片數(shù)d=(2 K8)(1 K8)=2。字長(zhǎng)位數(shù)不變,地址線A0A9同時(shí)連接到2片存儲(chǔ)芯片的地址輸入端,地址總線最高位有A10和 之分,A10作為芯片1的片選信號(hào), 作為芯片2的片選信號(hào),這兩個(gè)芯片不會(huì)同時(shí)工作。設(shè)計(jì)的存儲(chǔ)器如圖所示。實(shí)際上,存儲(chǔ)器往往需要字和位同時(shí)擴(kuò)展。字位同時(shí)擴(kuò)展是指既增加存儲(chǔ)字的數(shù)量,又增加存儲(chǔ)字長(zhǎng),擴(kuò)展方法如下。03字位同時(shí)擴(kuò)展(1)先進(jìn)行位擴(kuò)展,形成滿足位要求的存儲(chǔ)芯片組。(2)再使用存儲(chǔ)芯片組進(jìn)行字?jǐn)U展。例4-7利用2 K4位的存儲(chǔ)芯片,設(shè)計(jì)一個(gè)存儲(chǔ)容量為4 K8位的存儲(chǔ)器。解所需芯片數(shù)d=(4 K8)(2 K4)=22=

30、4,分為2組,每組2片,組內(nèi)進(jìn)行位擴(kuò)展,組與組之間進(jìn)行字?jǐn)U展。如圖所示。譯碼是編碼的逆過程,實(shí)現(xiàn)譯碼功能的電路稱為譯碼器。04譯碼器(1)74LS138譯碼器為3-8譯碼器,輸入3位地址信號(hào),譯碼產(chǎn)生8個(gè)不同的選通輸出。如圖所示,輸入信號(hào)A,B,C引入所要譯碼的3位地址信號(hào);輸出信號(hào) 對(duì)應(yīng)每一個(gè)存儲(chǔ)單元,低電平有效;使能信號(hào)G, , 中,當(dāng)且僅當(dāng)G=1, =0, =0時(shí),譯碼器正常工作。(2)74LS139譯碼器為兩個(gè)2-4譯碼器,輸入2位地址信號(hào),譯碼產(chǎn)生4個(gè)不同的選通輸出。如圖所示,輸入信號(hào)A,B引入所要譯碼的兩位地址信號(hào);輸出信號(hào) 對(duì)應(yīng)每一個(gè)存儲(chǔ)單元,低電平有效;使能信號(hào) ,當(dāng)且僅當(dāng) =

31、0時(shí),譯碼器正常工作例4-8利用2 K8位的存儲(chǔ)芯片,設(shè)計(jì)一個(gè)存儲(chǔ)容量為8 K8位的存儲(chǔ)器。解需要4片存儲(chǔ)芯片。8 K8位的存儲(chǔ)器有13位地址,而2 K8位的存儲(chǔ)芯片有11位地址,13位地址中11位作為存儲(chǔ)芯片的片內(nèi)地址,2位地址用于形成4片芯片的片選信號(hào)。如圖所示。并行存儲(chǔ)器4.4解決存儲(chǔ)器與CPU的速度匹配問題,通常采用以下方法。(3)在CPU和主存儲(chǔ)器之間加入Cache。(2)采用并行存儲(chǔ)器(1)采用更高速的主存儲(chǔ)器,或加長(zhǎng)存儲(chǔ)器的字長(zhǎng)。4.4.1 雙端口存儲(chǔ)器雙端口存儲(chǔ)器具有兩個(gè)彼此獨(dú)立的讀/寫口,每個(gè)讀/寫口都有一套獨(dú)立的地址寄存器和譯碼電路,可并行地獨(dú)立工作。兩個(gè)讀/寫口按各自接收

32、的地址,同時(shí)讀出或?qū)懭?,或一個(gè)寫入而另一個(gè)讀出。與兩個(gè)獨(dú)立的存儲(chǔ)器不同,兩個(gè)讀/寫口的訪存空間相同,可以訪問同一存儲(chǔ)單元,如圖所示。雙端口存儲(chǔ)器的每個(gè)端口都可獨(dú)立對(duì)存儲(chǔ)器進(jìn)行讀寫,就像是兩個(gè)存儲(chǔ)器在同時(shí)工作。但當(dāng)兩個(gè)端口的訪存地址是同一存儲(chǔ)單元的地址時(shí),會(huì)發(fā)生讀寫沖突。為解決此問題,雙端口存儲(chǔ)器芯片設(shè)置了 標(biāo)志,只有 為1的端口才可以進(jìn)行讀寫操作。雙端口存儲(chǔ)器的常見應(yīng)用場(chǎng)合如下。在運(yùn)算器中采用雙端口存儲(chǔ)芯片作為通用寄存器組,能快速提供雙操作數(shù),或快速實(shí)現(xiàn)寄存器間的傳送。(1)(2)(3)讓雙端口存儲(chǔ)器的一個(gè)讀/寫口面向CPU,通過專門的存儲(chǔ)總線(或稱局部總線)連接CPU與主存,使CPU能快速訪

33、問主存;另一個(gè)讀/寫口面向外圍設(shè)備或輸入/輸出處理機(jī),通過共享的系統(tǒng)總線連接。這種連接方式具有較大的信息吞吐量。在多機(jī)系統(tǒng)中采用雙端口存儲(chǔ)器甚至多端口存儲(chǔ)器,作為各CPU的共享存儲(chǔ)器,實(shí)現(xiàn)多CPU之間的通信。4.4.2 多模塊存儲(chǔ)器01單體單字存儲(chǔ)器單體單字存儲(chǔ)器的字長(zhǎng)與CPU的字長(zhǎng)相同,每一次只能訪問一個(gè)存儲(chǔ)字,如圖所示。假設(shè)該存儲(chǔ)器的訪問周期是TM,字長(zhǎng)為W位,則其帶寬為 。02單體多字存儲(chǔ)器CPU訪存取出的信息是連續(xù)的,如果可以在一個(gè)存取周期內(nèi),從同一地址取出多條指令,然后再逐條將指令送至CPU執(zhí)行,這樣顯然增大了存儲(chǔ)器的帶寬,提高了單體存儲(chǔ)器的工作速度。例如,單體四字存儲(chǔ)器如圖所示。與

34、單體單字存儲(chǔ)器相比,單體多字存儲(chǔ)器在存取速度更快,工作效率高。但若處理的數(shù)據(jù)不是連續(xù)地存放在主存中,或者在程序中經(jīng)常使用轉(zhuǎn)移指令,單體多字存儲(chǔ)器的效果就不顯著了。由于單體多字存儲(chǔ)器能夠在每個(gè)存儲(chǔ)周期讀出m個(gè)字,因此,其最大帶寬提高到了原來的m倍,即 。03多體交叉存儲(chǔ)器計(jì)算機(jī)系統(tǒng)中的大容量主存是由多個(gè)存儲(chǔ)體組成的,每個(gè)存儲(chǔ)體都有自己的讀/寫線路、地址寄存器和數(shù)據(jù)寄存器,能以同等的方式與CPU交換信息,而且每個(gè)存儲(chǔ)體容量相等,它們既能同時(shí)工作又能獨(dú)立編址。多體交叉存儲(chǔ)器采用時(shí)間并行技術(shù),其存儲(chǔ)體的組織方式有高位交叉編址和低位交叉編址兩種。(1)高位交叉編址(順序方式)對(duì)存儲(chǔ)單元矩陣按列優(yōu)先的方式

35、進(jìn)行編址。即高位地址(高log2m位)表示體號(hào),低位地址表示體內(nèi)地址,如圖所示。(2)低位交叉編址(交叉方式)對(duì)存儲(chǔ)單元矩陣按行優(yōu)先進(jìn)行編址。即低位地址(低log2m位)表示體號(hào),高位地址表示體內(nèi)地址,如圖所示。例如,如圖為采用低位交叉編址的存儲(chǔ)器,它由8個(gè)存儲(chǔ)體構(gòu)成,總?cè)萘繛?4,格子中的編號(hào)為線性地址。為了提高主存的帶寬,需要多個(gè)或所有存儲(chǔ)體能并行工作。在每一個(gè)存儲(chǔ)周期內(nèi),分時(shí)啟動(dòng)m個(gè)存儲(chǔ)體。如果每個(gè)存儲(chǔ)體的訪問周期是TM,則各存儲(chǔ)體的啟動(dòng)間隔t=TM/m。例4-9設(shè)存儲(chǔ)器容量為32字,字長(zhǎng)64位,存儲(chǔ)體數(shù)m=4,分別用順序方式和交叉方式進(jìn)行組織。存儲(chǔ)周期T=200 ns,數(shù)據(jù)總線寬度為6

36、4位,總線傳送周期 =50 ns。問順序存儲(chǔ)器和交叉存儲(chǔ)器的帶寬各是多少?解順序存儲(chǔ)器和交叉存儲(chǔ)器連續(xù)讀出m=4個(gè)字的數(shù)據(jù)信息量q=464=256位。順序存儲(chǔ)器所需要的時(shí)間為t1=mT=4200 ns=800 ns=8107 s。故順序存儲(chǔ)器的帶寬為B1=q/t1=256/(8107)=3.2108 bit/s。交叉存儲(chǔ)器所需要的時(shí)間為t2=T+(m1) =200 ns+(41)50 ns=350 ns=3.5107 s。故交叉存儲(chǔ)器的帶寬為B2=q/t2=256/(3.5107)=7.3108 bit/s。高速緩沖存儲(chǔ)器4.5CPU對(duì)主存的局部地址空間訪問較為頻繁,而對(duì)此范圍以外的訪問甚少,

37、這種現(xiàn)象稱為程序訪問的局部性。在CPU和主存之間,有一個(gè)高速的容量較小的存儲(chǔ)器(高速緩沖存儲(chǔ)器(Cache)解決此問題,它和主存構(gòu)成“Cache主存”的層次結(jié)構(gòu)。在當(dāng)前的一段時(shí)間內(nèi),CPU對(duì)位于主存的正在運(yùn)行的程序和處理的數(shù)據(jù)建立一個(gè)副本,存放在Cache中,CPU就可直接從Cache中取指令執(zhí)行程序和處理數(shù)據(jù),從而大大提高計(jì)算機(jī)的運(yùn)行速度。Cache是用高速半導(dǎo)體材料制成,其工作速度通常是主存的510倍,但容量小,其全部功能由硬件實(shí)現(xiàn),對(duì)程序員而言是透明的。4.5.1 Cache的基本工作原理Cache位于存儲(chǔ)器層次結(jié)構(gòu)的頂層,通常由SRAM構(gòu)成,其基本結(jié)構(gòu)如圖所示。Cache和主存被分成若

38、干大小相等的塊(Cache塊又稱為Cache行),每塊由若干字節(jié)組成,塊的長(zhǎng)度稱為塊長(zhǎng)(Cache行長(zhǎng))。由于Cache的容量遠(yuǎn)小于主存的容量,所以Cache中的塊數(shù)要遠(yuǎn)少于主存中的塊數(shù),它僅保存主存中最活躍的若干塊的副本。故Cache會(huì)按照某種策略,預(yù)測(cè)CPU在未來一段時(shí)間內(nèi)欲訪問的數(shù)據(jù),并將其裝入Cache。當(dāng)CPU發(fā)出讀請(qǐng)求時(shí),如果訪存地址在Cache中命中,就將此地址轉(zhuǎn)換成Cache地址, 直接對(duì)Cache進(jìn)行讀操作,與主存無關(guān);如果Cache不命中,則仍需訪問主存,并把此字所在的塊從主 存調(diào)入Cache內(nèi)。若此時(shí)Cache已滿,則需根據(jù)某種替換算法,用這個(gè)塊替換掉 Cache中原來的

39、某塊信息。當(dāng)CPU發(fā)出寫請(qǐng)求時(shí),如果Cache命中,需按照一定的寫策略處理,常見的處理方法有全寫法和寫回法,詳見節(jié)。通常用命中率來檢測(cè)Cache的效率,命中率是指CPU所要訪問的信息在Cache中的比率,而將所要訪問的信息不在Cache的比率稱為失效率。設(shè)一個(gè)程序執(zhí)行期間,Cache的總命中次數(shù)為 ,訪問主存的總次數(shù)為 ,則命中率H為:設(shè)tc為命中時(shí)的Cache訪問時(shí)間,tm為未命中時(shí)的訪問時(shí)間,1H表示失效率,則“Cache主存”系統(tǒng)的平均訪問時(shí)間ta為:當(dāng)然,以較小的硬件代價(jià)使“Cache主存”系統(tǒng)的平均訪問時(shí)間ta越接近于tc越好。用e表示訪問效率,則有:可見,為提高訪問效率,命中率H越

40、接近1越好。例4-10CPU執(zhí)行一段程序時(shí),Cache完成存取的次數(shù)為1 900次,主存完成存取的次數(shù)為100次,已知Cache存取周期為50 ns,主存存取周期為250 ns,求“Cache主存”系統(tǒng)的效率和平均訪問時(shí)間。解命中率:“Cache主存”系統(tǒng)的平均訪問時(shí)間:ns系統(tǒng)的效率:e=tc/ta=50/60=83.3%4.5.2 Cache和主存的地址映射地址映射的方法很多,在選用時(shí),既要考慮所用的地址變換硬件的速度和價(jià)格因素,又要考慮主存空間的利用率和塊的沖突率等問題。01直接映射直接映射是指任何一個(gè)主存塊只能復(fù)制到Cache的某一固定塊(行)中。其思想是,將主存塊號(hào)除以Cache塊數(shù)

41、,結(jié)果“同余”的主存塊,映射到同一Cache行中。 設(shè)Cache中有2m行,主存中有2n塊,Cache行號(hào)為i,主存塊號(hào)為j,則有:i=j mod 2m在這種映射中,主存的第0塊、第2m塊、第2m+1塊,只能映射到Cache的第0行;而主存的第1塊、第2m+1塊、第2m+1+1塊,只能映射到Cache的第1行,依此類推,如圖所示。直接映射的地址結(jié)構(gòu)如圖所示。優(yōu)點(diǎn)是硬件簡(jiǎn)單,成本低。缺點(diǎn)是每個(gè)主存塊只有一個(gè)固定的行位置可存放。如果塊號(hào)相距m整數(shù)倍的兩個(gè)塊存于同一Cache行時(shí),就會(huì)發(fā)生沖突。發(fā)生沖突時(shí)就要將原先存入的行換出去,但很可能過一段時(shí)間又要換入。頻繁的置換會(huì)使Cache效率下降。因此,直

42、接映射方式適合于需要大容量Cache的場(chǎng)合,更多的行數(shù)可以減小沖突的機(jī)會(huì)。例4-11設(shè)主存共512個(gè)單元(字節(jié)),Cache共32個(gè)單元,塊大小為8個(gè)字節(jié),試用直接映射方式組織Cache。解主存512個(gè)單元,所以主存地址需9位(29=512);每塊8字節(jié),共512/8=64塊,所以主存塊的n=6(因?yàn)?6=64)。Cache共32個(gè)單元,每行8字節(jié),即Cache地址需5位,共32/8=4行,所以Cache行的m=2。在直接映射方式下,主存地址字段的各段位數(shù)分配如圖所示。在直接映射方式下,由于Cache共有4行,主存共有64塊,因此主存第0,4,8,12,16,20,24,28,32,36,40

43、,44,48,52,56,60塊映射到Cache的第0行中;主存第1,5,9,13,17,21,25,29,33,37,41,45,49,53,57,61塊映射到Cache的第1行中;主存第2,6,10,14,18,22,26,30,34,38,42,46,50,54,58,62塊映射到Cache的第2行中;主存第3,7,11,15,19,23,27,31,35,39,43,47,51,55,59,63塊映射到Cache的第3行中。02全相聯(lián)映射任何主存塊可映射到任意一個(gè)Cache塊(行)中。設(shè)主存有2n塊,Cache有2m行,全相聯(lián)映射如圖所示。全相聯(lián)映射的地址結(jié)構(gòu)如圖所示。全相聯(lián)映射的優(yōu)點(diǎn)

44、是靈活性好,Cache中只要有空行,就可以調(diào)入所需要的主存數(shù)據(jù)塊。缺點(diǎn)是成本高,標(biāo)記位為n位,使得Cache標(biāo)記容量變大;速度太慢,訪問Cache時(shí),需將所有標(biāo)記比較一遍,才能最后判斷出所需主存中的字塊是否在Cache中;一般較少使用。例4-12設(shè)主存容量1 MB,Cache容量16 KB,塊的大小為512 B,采用全相聯(lián)映射方式,試回答以下問題。(1)寫出Cache的地址格式。(2)寫出主存的地址格式。(3)塊表的容量多大?(4)主存地址為CDE8FH的單元,在Cache中的什么位置?解(1)Cache的容量16 KB=214 B,因此Cache地址為14位;塊的大小為512 B=29 B,

45、因此行內(nèi)地址為9位;行地址為149=5(位),即Cache共有25=32(行)。故Cache地址格式如圖所示。(2)主存容量1 MB=220 B,因此主存地址為20位;塊的大小為512 B=29 B,因此塊內(nèi)地址為9位;塊地址為209=11(位),即主存共2 11 =2 048(塊)。故主存的地址格式如圖所示。(3)塊表的大小應(yīng)為2mn位,即2511位。(4)主存地址為CDE8FH的單元可映射到Cache中的任何一個(gè)字塊位置;,其塊內(nèi)地址為:010001111。 03組相聯(lián)映射組相聯(lián)映射是對(duì)直接映射和全相聯(lián)映射的一種折中方式。它將Cache空間分成大小相同的組,主存的一個(gè)數(shù)據(jù)塊可以裝入到一組內(nèi)

46、的任何位置,即組間采取直接映射,而組內(nèi)采取全相連映射。組相聯(lián)映射的關(guān)系可以定義為:式中,j為Cache的組號(hào),i為主存的塊號(hào),Q為Cache的組數(shù)。即主存塊號(hào)除以Cache組數(shù)同余的塊被映射在一組中,如圖所示。設(shè)主存有2n塊,Cache有2m塊,組數(shù)Q=2q,則當(dāng)用二進(jìn)制數(shù)表示地址時(shí),Q實(shí)際上就是主存塊號(hào)i的低q位。組相聯(lián)映射的地址結(jié)構(gòu)如圖所示。在組相聯(lián)映射方式下,同一組中的主存塊可調(diào)入Cache中一個(gè)指定組內(nèi)的任意行中。當(dāng)組的大小為1時(shí)就變成了直接映射;當(dāng)組的大小為整個(gè)Cache的大小時(shí)就變成了全相聯(lián)映射。例4-13某系統(tǒng)的存儲(chǔ)器為2 MB,每塊為32個(gè)字節(jié),若Cache為16 KB,采用字

47、節(jié)編址方式,試回答以下問題。(1)采用直接映射,寫出主存地址格式。(2)采用全相聯(lián)映射,寫出主存地址格式。(3)采用16路組相聯(lián)映射,寫出主存地址格式。解2 MB存儲(chǔ)器共21位地址(2 MB=221 B);每塊為32個(gè)字節(jié),共221/32=216(塊),所以有16位塊地址,5位字塊內(nèi)地址;16 KB的Cache共14位地址(16 KB=214 B),每塊為32個(gè)字節(jié),共214/32=29(塊),即9位行地址。(1)在直接映射方式下,主存地址字段的各段位數(shù)分配如圖所示。(2)在全相聯(lián)映射方式下,主存地址字段的各段位數(shù)分配如圖所示。(3)采用16路組相聯(lián)映射,即每組16塊,可得29/16=25(組

48、),即組數(shù)Q=2q,所以q=5。主存地址字段的各段位數(shù)分配如圖所示。4.5.3 替換算法當(dāng)新的主存塊需要調(diào)入Cache,并且它的可用空間位置又被占滿時(shí),需要替換掉Cache的數(shù)據(jù),這就產(chǎn)生了替換算法。在直接映射的Cache中,由于某個(gè)主存塊只與一個(gè)Cache字塊有映射關(guān)系,因此替換算法很簡(jiǎn)單。而在全相聯(lián)和組相聯(lián)映射的Cache中,就要從允許存放新主存塊的若干特定行中選取一行換出。先進(jìn)先出(FIFO)算法。總是把最先進(jìn)入Cache的字塊作為被替換掉的塊。不需要隨時(shí)記錄各個(gè)字塊的使用情況。因此,開銷小,容易實(shí)現(xiàn)。其缺點(diǎn)是一些需要經(jīng)常使用的程序(如循環(huán)程序)塊,由于它是最先進(jìn)入的而會(huì)被替換掉。(1)

49、常用的替換算法,又稱替換策略有以下4種。LRU算法是把CPU近期最少使用的塊作為被替換掉的塊。這種替換方法需要隨時(shí)記錄Cache中各塊的使用情況,以便確定哪個(gè)塊是近期最少使用的塊。實(shí)現(xiàn)LRU算法比較復(fù)雜,而且會(huì)隨映射方式而變化。通常需要對(duì)主存中的每一塊設(shè)置一個(gè)名為“年齡計(jì)數(shù)器”的硬件或軟件計(jì)數(shù)器,用以記錄其被使用的情況。LRU替換算法的平均命中率比FIFO高,并且,隨著分組容量的增大會(huì)進(jìn)一步提高。(2)LFU算法將近期內(nèi)長(zhǎng)久未被訪問過的行換出。為此,每行也設(shè)置一個(gè)計(jì)算器,Cache每命中一次,命中行計(jì)數(shù)器清零,其他各行計(jì)數(shù)器增1。當(dāng)需要替換時(shí),比較各特定行的計(jì)數(shù)值,將計(jì)數(shù)值最大的行換出。這種算

50、法保護(hù)了剛拷貝到Cache中的新數(shù)據(jù)行,符合Cache工作原理,因而使Cache有較高的命中率。(3)隨機(jī)替換算法從特定的行位置中隨機(jī)地選取一行換出。其優(yōu)點(diǎn)是在硬件上容易實(shí)現(xiàn),且速度也比前兩種算法快;缺點(diǎn)是降低了命中率和Cache工作效率。(4)4.5.4 Cache寫策略由于Cache中的內(nèi)容只是主存部分內(nèi)容的拷貝,它應(yīng)與主存內(nèi)容保持一致。而CPU對(duì)Cache的寫入更改了Cache的內(nèi)容。如何將Cache內(nèi)容與主存內(nèi)容保持一致,可選用如下兩種寫操作策略。寫回法寫貫穿(全寫法)當(dāng)寫Cache命中時(shí),同時(shí)寫入Cache和主存。其優(yōu)點(diǎn)是一致性好,方法簡(jiǎn)單可靠;缺點(diǎn)是時(shí)間開銷為訪存時(shí)間,速度會(huì)受影響

51、。當(dāng)寫Cache命中時(shí),先將更新內(nèi)容寫入Cache,并做標(biāo)記,在特定時(shí)間將Cache內(nèi)容寫回主存。寫回法中,在Cache每個(gè)塊對(duì)應(yīng)的標(biāo)識(shí)中增加一位修改標(biāo)志位,用于記錄Cache塊的改寫情況。每當(dāng)對(duì)某Cache塊進(jìn)行寫操作時(shí),將其修改標(biāo)志位置1,當(dāng)某主存塊新調(diào)入Cache或Cache塊已被寫回主存后,相應(yīng)的修改標(biāo)志位清0。替換時(shí),首先查看與要替換的Cache塊對(duì)應(yīng)的修改標(biāo)志位,若為0,表明塊中的數(shù)據(jù)未被修改過,不用寫回主存;若為1,表明Cache塊中的數(shù)據(jù)已被改寫過,在替換之前要將其寫回主存。虛擬存儲(chǔ)器4.6主存和聯(lián)機(jī)工作的輔存共同構(gòu)成了虛擬存儲(chǔ)器,二者在硬件和系統(tǒng)軟件的共同管理下工作。對(duì)于應(yīng)用

52、程序員而言,虛擬存儲(chǔ)器是透明的。虛擬存儲(chǔ)器具有主存的速度和輔存的容量,提高了存儲(chǔ)系統(tǒng)的性價(jià)比。虛擬存儲(chǔ)器只是一個(gè)容量非常大的存儲(chǔ)器的邏輯模型,不是任何實(shí)際的物理存儲(chǔ)器。它借助于磁盤等輔存來擴(kuò)大主存容量,使之為更大或更多的程序使用。指的是“主存輔存”層次,它以透明的方式給用戶提供了一個(gè)比實(shí)際主存空間大得多的程序地址空間。其物理地址(實(shí)地址)是主存地址空間,由CPU地址引腳送出,用于訪問主存的地址;虛擬地址(邏輯地址、虛地址)由編譯程序生成,是程序的邏輯地址,其地址空間的大小受到輔存容量的限制。4.6.1 虛擬存儲(chǔ)器的基本概念“主存輔存”層次和“Cache主存”層次用的地址變換映射方法和替換策略是

53、相同的,都是基于程序局部性原理。它們遵循的原則是:(1)把程序中最近常用的部分駐留在高速的存儲(chǔ)器中。(3)這種換入換出是由硬件或操作系統(tǒng)完成的,對(duì)用戶是透明的。(2)一旦這部分變得不常用了,把它們送回到低速的存儲(chǔ)器中。(4)力圖使存儲(chǔ)系統(tǒng)的性能接近高速存儲(chǔ)器,價(jià)格接近低速存儲(chǔ)器。兩種存儲(chǔ)系統(tǒng)的主要區(qū)別在于,在虛擬存儲(chǔ)器中未命中的性能損失要遠(yuǎn)大于Cache系統(tǒng)中未命中的損失。以頁為基本單位的虛擬存儲(chǔ)器稱為頁式虛擬存儲(chǔ)器。虛擬存儲(chǔ)器空間與主存空間都被劃分成同樣大小的頁,虛擬存儲(chǔ)器的頁稱為虛頁(邏輯頁),主存的頁稱為實(shí)頁(物理頁)??砂烟摰刂贩譃樘擁撎?hào)(邏輯頁號(hào))和頁內(nèi)行地址兩個(gè)字段,主存地址也分為

54、實(shí)頁號(hào)(物理頁號(hào))和頁內(nèi)行地址兩個(gè)字段。4.6.2 頁式虛擬存儲(chǔ)器在頁式虛擬存儲(chǔ)系統(tǒng)中,虛地址到實(shí)地址之間的變換是由頁表來實(shí)現(xiàn)的。頁表是一張存放在主存中的虛頁號(hào)和實(shí)頁號(hào)的對(duì)照表,記錄著程序的虛頁調(diào)入主存時(shí)被安排在主存中的位置。當(dāng)程序調(diào)入系統(tǒng)運(yùn)行時(shí),頁表也調(diào)入主存,其首地址裝入頁表基址寄存器中。當(dāng)一個(gè)虛地址訪問存儲(chǔ)器時(shí),首先根據(jù)虛頁號(hào)查頁表,若裝入位為1,即該頁已裝入,可得其主存實(shí)頁號(hào),用它作為主存地址的高位字段,與虛地址的頁內(nèi)行地址字段相拼接,產(chǎn)生完整的主存實(shí)地址,據(jù)此來訪問主存。若裝入位為0,即該頁未裝入,則發(fā)生缺頁中斷,由操作系統(tǒng)調(diào)入該頁,并記入頁表中,地址變換如圖所示。優(yōu)點(diǎn)缺點(diǎn)頁面的起點(diǎn)

55、和終點(diǎn)地址是固定的,方便造頁表,新頁調(diào)入主存也很容易掌握,比段式虛擬存儲(chǔ)器浪費(fèi)空間小處理、保護(hù)和共享都不及段式虛擬存儲(chǔ)器來得方便。頁式虛擬存儲(chǔ)器存的優(yōu)缺點(diǎn)如下:例4-14某虛擬存儲(chǔ)器的用戶編程空間共32個(gè)頁面,每頁1 KB,主存為16 KB,已知某時(shí)刻該用戶頁表中已調(diào)入主存的頁面的虛頁號(hào)和實(shí)頁號(hào)對(duì)照表(如左表),請(qǐng)?zhí)顚懹冶碇刑摰刂穼?duì)應(yīng)的實(shí)地址。虛頁號(hào)實(shí)頁號(hào)05110248705虛地址實(shí)地址0A5CH(1)1A5CH(2)解每頁1 KB=210 B,即頁內(nèi)行地址占了10位,故16位地址中虛頁號(hào)占6位。(1)虛地址0A5CH轉(zhuǎn)換為二進(jìn)制數(shù)為,因虛頁號(hào)占6位,即000010,轉(zhuǎn)換為十進(jìn)制為2,查表得到對(duì)應(yīng)的實(shí)頁號(hào)為4。實(shí)地址為實(shí)頁號(hào)與虛地址的頁內(nèi)行地址字段相拼接,即得,轉(zhuǎn)換為十六進(jìn)制為125CH。(2)虛地址1A5CH轉(zhuǎn)換為二進(jìn)制數(shù)為,虛頁號(hào)為000110,轉(zhuǎn)換為十進(jìn)制為6,查表發(fā)現(xiàn)該頁未裝入頁表中,故為頁失效。段式虛擬存儲(chǔ)器中的段是按程序的邏輯結(jié)構(gòu)劃分的,各個(gè)段的長(zhǎng)度因程序而異。在段式虛擬存儲(chǔ)器中將虛地址分為段號(hào)和段內(nèi)地址。虛地址到實(shí)地址之間的變換由段表來實(shí)現(xiàn)。段表是程序的邏輯段和在主存中存放位置的對(duì)照表。段表的每一行記錄了與某

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論