《計(jì)算機(jī)組成原理》課件第3章_第1頁
《計(jì)算機(jī)組成原理》課件第3章_第2頁
《計(jì)算機(jī)組成原理》課件第3章_第3頁
《計(jì)算機(jī)組成原理》課件第3章_第4頁
《計(jì)算機(jī)組成原理》課件第3章_第5頁
已閱讀5頁,還剩205頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第3章存儲系統(tǒng)3.1概述3.2主存儲器的內(nèi)部結(jié)構(gòu)3.3隨機(jī)訪問存儲器RAM3.4只讀存儲器ROM3.5半導(dǎo)體存儲器擴(kuò)展3.6高速存儲器3.7高速緩沖存儲器習(xí)題

3.1概述

3.1.1存儲器的分類

1.按照存儲介質(zhì)分類計(jì)算機(jī)中的信息都是以二進(jìn)制形式存儲的,因此從理論上來說,存儲介質(zhì)是指能寄存和區(qū)分“0”、“1”兩種狀態(tài)的物質(zhì)或元件,這兩種穩(wěn)定的狀態(tài)分別用于表示二進(jìn)制代碼的0和1。目前主要的存儲元件有半導(dǎo)體存儲器、磁表面存儲器和光盤存儲器。

1)半導(dǎo)體存儲器

存儲元件由半導(dǎo)體器件組成的存儲器稱為半導(dǎo)體存儲器。半導(dǎo)體存儲器都是采用超大規(guī)模集成電路工藝制造的,具有集成度高、功耗低和速度快的特點(diǎn)。用于內(nèi)存的半導(dǎo)體存儲器在斷電情況下是無法存儲數(shù)據(jù)的,因此是一種易失性的存儲器。半導(dǎo)體存儲器常用作主存儲器。

2)磁表面存儲器

磁表面存儲器是指在金屬或塑料基體的表面涂上一層很薄的磁性材料作為記錄介質(zhì)的存儲器,或稱為磁載體。載體表面的磁性材料具有兩種不同的磁化狀態(tài),在磁頭的作用下,

使記錄介質(zhì)的局部區(qū)域產(chǎn)生相應(yīng)的磁化狀態(tài),用以記錄“0”或“1”信息。工作時(shí),磁層隨磁載體高速運(yùn)轉(zhuǎn),用磁頭在磁層上進(jìn)行讀出或?qū)懭氩僮?。根?jù)磁載體形狀的差異,磁表面存

儲器可分為磁卡、磁鼓、磁帶和磁盤。磁表面存儲器具有存儲容量大、位價(jià)低、非破壞性讀出、信息可以長期保存的特點(diǎn),但是由于其結(jié)構(gòu)和工作原理使得數(shù)據(jù)的存取速度遠(yuǎn)低于半導(dǎo)體存儲器,因此,一般作為外存使用。

3)光盤存儲器

光盤存儲器是指采用激光在記錄介質(zhì)(磁光材料)上進(jìn)行讀/寫操作的存儲器,其基本原理是用激光束對記錄膜進(jìn)行掃描,使介質(zhì)材料發(fā)生相應(yīng)的光效應(yīng)或熱效應(yīng),如使被照射表面的光反射率發(fā)生變化或出現(xiàn)融坑等。按照寫入次數(shù)的不同,光盤可以分為只讀光盤(CompactDisk,ReadOnlyMemory,CD-ROM)、寫入(WriteOnceReadMany,WORM)和可擦寫光盤??刹翆懝獗P由于性價(jià)比不高,使用并不廣泛。由于光盤具有非易失的特點(diǎn),主要用于保存不需要修改的文檔。

2.按數(shù)據(jù)存取方式

存儲器中數(shù)據(jù)被訪問的方式,稱為數(shù)據(jù)存取方式。按照數(shù)據(jù)存取方式分類,存儲器可以分為隨機(jī)存取存儲器(RandomAccessMemory,RAM)、順序存取存儲器(Sequential

AccessMemory,SAM)和直接存取存儲器(DirectAccessMemory,DAM)。

1)隨機(jī)存取存儲器

RAM中的數(shù)據(jù)既可以讀出,也可以寫入。這種存儲器的特點(diǎn)是:存儲器的任一存儲單元的內(nèi)容都可以隨機(jī)存取;訪問各存儲單元所需的讀寫時(shí)間完全相同,與被訪問單元的地

址是無關(guān)的。

2)順序存取存儲器

在順序訪問存儲器中,信息是按照順序在存儲介質(zhì)上依次存放的,訪問數(shù)據(jù)所需的時(shí)間與信息所在的位置密切相關(guān)。例如,磁帶就是一種典型的順序存放的存儲器,需要訪問數(shù)據(jù)塊的時(shí)間與讀寫磁頭當(dāng)前的位置和數(shù)據(jù)塊在磁帶中的存儲位置有關(guān),要使磁帶正轉(zhuǎn)或反轉(zhuǎn),按順序找到所需的數(shù)據(jù)塊,然后再由讀寫磁頭順序的進(jìn)行讀寫。

3)直接存取存儲器

直接訪問存儲器在訪問信息時(shí),先將讀寫部件直接定位到某一小范圍區(qū)域,再在該區(qū)域中順序查找需要的數(shù)據(jù),其訪問時(shí)間也是與數(shù)據(jù)所在的位置密切相關(guān)的。磁盤就是直接

訪問存儲器。在磁盤中,每個(gè)盤面都以盤心為中心劃分出多個(gè)同心圓磁環(huán),即磁道,每個(gè)磁道被劃分成多個(gè)扇區(qū),信息按位依次存放在扇區(qū)中。磁盤信息的存取分為兩個(gè)階段:第一個(gè)階段,磁頭沿盤面徑向移動定位到信息所在的磁道上;第二個(gè)階段,磁頭沿磁道順序讀寫信息。

3.按在計(jì)算機(jī)中的作用

按照存儲器在計(jì)算機(jī)系統(tǒng)中作用,存儲器可以分為主存儲器、外存儲器和高速緩沖存儲器。

1)主存儲器

主存儲器(也稱為主存、內(nèi)存)用于存放計(jì)算機(jī)運(yùn)行時(shí)的程序和數(shù)據(jù),是CPU可以直接訪問的存儲器,目前一般由半導(dǎo)體存儲器構(gòu)成。

2)外存儲器

外存儲器(也稱為輔助存儲器、外存)用于存放各種程序和數(shù)據(jù)。外存的信息只有加載到主存才能被CPU訪問。外存儲器主要由磁表面存儲器組成。

3)高速緩沖存儲器

高速緩沖存儲器(Cache)是介于CPU和主存之間的小容量高速存儲器。Cache的內(nèi)容實(shí)際上是主存中一個(gè)小的副本,用于存放CPU運(yùn)行時(shí)最活躍的程序塊和數(shù)據(jù)塊。Cache的

功能是提高CPU訪問主存的等效速度,通常由雙極型半導(dǎo)體存儲器組成,具有速度快、位價(jià)低、容量小的特點(diǎn)。

3.1.3存儲器的體系結(jié)構(gòu)

隨著計(jì)算機(jī)技術(shù)的不斷提高,對存儲器性能的要求也越來越高。人們總是希望存儲器具有容量大、速度快和成本低的特性,而實(shí)際上,速度快的存儲器成本高、容量小,而容量

大、成本低的存儲器往往速度又比較慢,圖3-1說明了存儲器這三個(gè)指標(biāo)之間的關(guān)系。表3-1列出了常用的不同類型存儲器的存取時(shí)間和特點(diǎn)。為了解決存儲器容量、速度和價(jià)位之間的矛盾,需要構(gòu)建多層次的存儲系統(tǒng)。存儲系統(tǒng)是指將各種性能不同的存儲器按照一定的體系結(jié)構(gòu)組織起來,使其存放的程序和數(shù)據(jù)按照不同層次分布在各級存儲器中,形成一個(gè)統(tǒng)一的存儲系統(tǒng)。圖3-1各種存儲器速度、容量和位價(jià)之間的關(guān)系

在實(shí)際應(yīng)用中,目前普遍采用緩存、主存和輔存組成的三級存儲層次結(jié)構(gòu),如圖3-2所示。圖3-2三級存儲層次結(jié)構(gòu)

緩存主存層次簡稱為Cache存儲器,主存輔存層次簡稱為虛擬存儲器。

1.緩存主存層次

緩存主存層次主要解決CPU和主存之間速度不匹配的問題。由于緩存的速度比主存快5~10倍,緩存中的內(nèi)容只是主存中內(nèi)容一個(gè)小的副本,這個(gè)層次的設(shè)計(jì)思路是只要盡可能地將CPU欲訪問的主存內(nèi)容調(diào)入緩存,CPU便可以直接從緩存中獲得所需的信息,而提高CPU訪問主存的速度。

從CPU的角度來看,緩存主存層次的數(shù)據(jù)訪問速度接近緩存的速度,存儲容量和位價(jià)接近于主存的,因此解決了主存儲器速度和價(jià)格之間的矛盾。

2.主存輔存層次

輔存的速度比主存速度低得多,而且輔存不能和CPU直接進(jìn)行數(shù)據(jù)交換,但是它的容量要比主存大很多,而且位價(jià)低,用于存放大量暫時(shí)不用的程序和數(shù)據(jù)。當(dāng)CPU需要用到這些信息時(shí),將輔存的信息調(diào)入到主存中供CPU訪問。主存輔存層次之間的數(shù)據(jù)交換由硬件和操作系統(tǒng)共同管理,使得主存輔存形成一個(gè)虛擬的整體,稱之為虛擬存儲器。

從整體上看,主存輔存層次的訪問速度接近主存的,容量和位價(jià)是接近輔存的。

綜上所述,三級存儲層次的總體效果是:存取速度接近于緩存的,存儲容量是輔存的,存儲器的價(jià)位接近于輔存的,解決了存儲器速度、容量和成本三者之間的矛盾?,F(xiàn)代計(jì)算機(jī)系統(tǒng)幾乎都采用這樣的三級存儲層次結(jié)構(gòu)。

3.1.4數(shù)據(jù)的地址與數(shù)據(jù)的存儲順序

為了對存儲器中眾多的存儲單元加以區(qū)分,給每個(gè)存儲單元進(jìn)行編號,這個(gè)編號稱為存儲單元的地址。不同機(jī)器的存儲字長是不相同的,例如,在C語言程序中有char、int和

long型的數(shù)據(jù)類型,其中,char型數(shù)據(jù)占用1個(gè)字節(jié),int型占用4個(gè)字節(jié),long型占用8個(gè)字節(jié)。為了滿足對多種數(shù)據(jù)類型的處理要求,通常用8位二進(jìn)制數(shù)表示一個(gè)字節(jié),存儲字長通常是字節(jié)的整數(shù)倍。為了提高存儲器中數(shù)據(jù)訪問的靈活性,計(jì)算機(jī)系統(tǒng)中既可以按存儲字為單位進(jìn)行訪問,也可以按字節(jié)為單位進(jìn)行數(shù)據(jù)訪問。

例如,某計(jì)算機(jī)的存儲字長是32位的,訪問時(shí)可以一次訪問32位數(shù)據(jù),也可以對每個(gè)存儲字中包含的4個(gè)字節(jié)分別

進(jìn)行訪問。這種情況下字地址是4的整數(shù)倍,雙字節(jié)地址是2的整數(shù)倍,字節(jié)地址任意。例如,32位數(shù)據(jù)0x12345678存放在主存地址4000h單元中,數(shù)據(jù)的存儲順序有大端模式

(Big-endian)和小端模式(Little-endian)兩種情況,如圖3-3所示。

圖3-3(a)中,高位字節(jié)存放在主存的低地址單元中,低位字節(jié)存放在主存的高地址單元中,這種數(shù)據(jù)存放方式稱為大端模式。圖3-3(b)中,低位字節(jié)存放在主存的低地址單

元中,高位字節(jié)存放在主存的高地址單元中,這種數(shù)據(jù)存放方式稱為小端模式。圖3-3數(shù)據(jù)的存放順序

3.2主存儲器的內(nèi)部結(jié)構(gòu)

3.2.1存儲芯片的內(nèi)部結(jié)構(gòu)半導(dǎo)體存儲器具有體積小、速度快的特點(diǎn),因此主要用于計(jì)算機(jī)的主存儲器。為了實(shí)現(xiàn)對存儲體中存儲單元數(shù)據(jù)讀出或?qū)懭氩僮?存儲芯片需要有地址譯碼器、驅(qū)動電路、讀/寫控制電路等。存儲芯片的內(nèi)部結(jié)構(gòu)如圖3-4所示。圖3-4存儲芯片的內(nèi)部結(jié)構(gòu)

存儲地址寄存器MAR用于緩存來自地址總線的地址信號,并將其送入地址譯碼器,經(jīng)譯碼后生成某個(gè)存儲單元的選通信號,使得該單元能夠被訪問;控制電路根據(jù)存儲芯片的片選信號、讀/寫控制信號實(shí)現(xiàn)對芯片的控制,MDR是數(shù)據(jù)緩沖器,用來緩存來自CPU的寫入數(shù)據(jù)或從存儲器讀出的數(shù)據(jù),一般具有三態(tài)控制功能。

3.2.2半導(dǎo)體存儲芯片的譯碼驅(qū)動方式

存儲芯片的譯碼方式分為一維地址譯碼方式和二維地址譯碼方式。

1.一維地址譯碼方式

一維地址譯碼方式中只有一個(gè)地址譯碼器,如圖3-5所示。譯碼器的輸出稱為字選線,字選線選擇某個(gè)字的所有位。采用這種譯碼方式的存儲體中所有字都是按照“一條線”

的方式排列的。存儲陣列中每一行的所有位對應(yīng)一個(gè)字,共用一根字選擇線,每一列對應(yīng)不同字的同一位,且與公用的位線相連接。圖3-5中所示的是一個(gè)16×8位的存儲體。圖3-5一維地址譯碼方式

2.二維地址譯碼方式

圖3-6是二維地址譯碼方式示意圖。存儲體中的存儲單元是按照陣列方式排列的,這種方式需要X和Y兩個(gè)地址譯碼器,其中X稱為行譯碼器,Y稱為列譯碼器。圖3-6中

的兩個(gè)譯碼器都是5-32譯碼器,只有X譯碼器和Y譯碼器同時(shí)選中的行、列交叉位置的存儲單元才被選中。例如,當(dāng)?shù)刂肪€全為0時(shí),譯碼輸出X0和Y0

選中,存儲矩陣中的第0

行、第0列對應(yīng)的字被選中。圖3-6二維地址譯碼方式

3.2.3主存儲器與CPU的連接

主存儲器是計(jì)算機(jī)內(nèi)部的重要組成部件,它用來存儲CPU運(yùn)行期間所需要的指令和數(shù)據(jù),是CPU需要頻繁訪問的部件。主存儲器和CPU是通過總線(總線包括數(shù)據(jù)總線、地

址總線和控制總線)連接的,兩者的連接示意圖如圖3-7所示。CPU通過使用地址寄存器AR和數(shù)據(jù)寄存器DR與主存儲器之間進(jìn)行數(shù)據(jù)傳輸。CPU對存儲器的操作有讀和寫兩

種,從存儲器中提取信息的操作稱為讀操作,將信息寫入存儲器的操作稱為寫操作。圖3-7主存儲器與CPU的連接示意圖

3.3隨機(jī)訪問存儲器RAM

3.3.1SRAM的工作原理靜態(tài)存儲器(SRAM)具有速度快、成本高的特點(diǎn),這是由其存儲元的結(jié)構(gòu)決定的。

1.靜態(tài)存儲元

SRAM的基本存儲元由六個(gè)MOS管組成,如圖3-8所示。其中,T1~T4

構(gòu)成一個(gè)基本觸發(fā)器電路,T5

和T6是兩個(gè)受字選擇線控制的開關(guān),控制存儲元的讀出和寫入操作。圖3-8靜態(tài)存儲元的內(nèi)部結(jié)構(gòu)

六管電路有兩個(gè)穩(wěn)定的狀態(tài),是由圖3-8中A、B兩點(diǎn)的電平?jīng)Q定的,這兩點(diǎn)的電平總是互為相反的,因此我們可以用A點(diǎn)狀態(tài)表示其存儲的0、1信息。若假設(shè)觸發(fā)器的狀態(tài)為“1”,即當(dāng)A點(diǎn)為高電平時(shí),分析電路的狀態(tài):由于A點(diǎn)為高電平,T1

管導(dǎo)通,B點(diǎn)為低電平;B點(diǎn)為低電平使得T

2

管可靠截止,又保證了A點(diǎn)的高電平得以維持。相反,如果A為低電平,這個(gè)狀態(tài)也可以可靠地維持。

2.SRAM芯片Intel2114

Intel2114是一個(gè)1K×4位的SRAM存儲芯

片,其外部特性示意圖如圖3-9所示。圖中,A

0~A9是10個(gè)地址輸入端,I/O1~I/O4是4位的雙向數(shù)據(jù)輸入/輸出端口,CS是片選信號(低電平有效),WE是寫允許信號(低電平寫,高電平讀);VCC

和GND是電源和接地端。

Intel2114的內(nèi)部結(jié)構(gòu)示意圖如圖3-10所示。圖中存儲陣列是64×64的,即64行、64列,即由4096個(gè)圖3-8所示的六管存儲元組成。存儲陣列中的行譯碼信號由行地址

A3~A8譯碼后產(chǎn)生,64列被分成四組,每組16列,各組中列號相同的存儲元構(gòu)成一個(gè)存儲單元字長的4位。當(dāng)對某個(gè)存儲單元進(jìn)行讀或?qū)懖僮鲿r(shí),只有行和列地址共同有效才被選中。圖3-10Intel2114芯片的內(nèi)部結(jié)構(gòu)示意圖

3.SRAM的讀/寫周期時(shí)序

為了能夠可靠地對芯片進(jìn)行讀/寫操作,必須按照芯片要求的時(shí)序關(guān)系提供地址、數(shù)據(jù)和控制信號,這里以Intel2114RAM為例說明SRAM的讀/寫周期時(shí)序。

1)讀周期時(shí)序

圖3-11是Intel2114芯片的讀周期時(shí)序。由于在整個(gè)讀周期的過程中WE始終為高電平,因此,圖中沒有畫出該信號。

在讀操作時(shí)需要準(zhǔn)備好要讀取的存儲單元地址,然后給出控制信號CS=0,WE=1,經(jīng)過一段時(shí)間后,指定的存儲單元數(shù)據(jù)就會被放到芯片的數(shù)據(jù)輸出端口。當(dāng)數(shù)據(jù)讀取完畢后,可以撤除控制信號,然后更換地址執(zhí)行下一次的讀/寫操作。數(shù)據(jù)讀出的過程中主要的時(shí)間參數(shù)有如下幾個(gè):

(1)tRC:讀周期。它是指連續(xù)兩次讀操作所需要的最短時(shí)間間隔。

(2)tA:讀時(shí)間。它是指從地址有效開始到輸出數(shù)據(jù)穩(wěn)定所需的時(shí)間。tA

時(shí)間后可以讀取數(shù)據(jù),顯然tA

<tRC

。

(3)tCO:從CS有效到數(shù)據(jù)穩(wěn)定所需的時(shí)間。

(4)tCX:從CS有效到數(shù)據(jù)開始有效所需的時(shí)間,但此時(shí)的數(shù)據(jù)尚不穩(wěn)定。

(5)tOTD:從CS無效到數(shù)據(jù)變?yōu)楦咦璧臅r(shí)間,即CS無效后數(shù)據(jù)還需要維持的時(shí)間。

(6)tOHA:地址改變后輸出數(shù)據(jù)維持的時(shí)間。圖3-11Intel2114芯片的讀周期時(shí)序

2)寫周期時(shí)序

圖3-12是Intel2114芯片的寫周期時(shí)序。當(dāng)需要改變存儲單元的數(shù)據(jù)時(shí),在準(zhǔn)備好單元地址和要寫入的數(shù)據(jù)后,給出控制信號CS=0,WE=0,經(jīng)過一段時(shí)間后,可將數(shù)據(jù)寫入指定的存儲單元中,隨后可以撤除控制信號,更換輸入地址和數(shù)據(jù)執(zhí)行下一次的讀/寫操作。圖3-12Intel2114芯片的寫周期時(shí)序

數(shù)據(jù)寫入過程中主要的時(shí)間參數(shù)有如下幾個(gè):

(1)tWC:寫周期。它是指連續(xù)兩次寫操作所需要的最短時(shí)間間隔。

(2)tW:寫時(shí)間。它是指地址和片選有效后,輸入數(shù)據(jù)可靠寫入存儲單元所需的時(shí)間。tW

是寫周期的主要時(shí)間參數(shù),顯然tW<tWC

(3)tAW:在地址有效后,需要經(jīng)過至少tAW才能給出寫命令。這是因?yàn)榈刂酚行У酱鎯π酒瑑?nèi)的地址譯碼輸出穩(wěn)定是需要時(shí)間的,如果在穩(wěn)定前發(fā)出寫命令會造成誤寫入操作。

(4)tWR:寫恢復(fù)時(shí)間。它是指在CS和WE都撤銷后,必須等待的時(shí)間。這個(gè)時(shí)間結(jié)束后才允許改變地址進(jìn)入下一個(gè)讀寫周期。因此地址有效的時(shí)間,即寫周期時(shí)間應(yīng)至少滿

足:tWC

=tAW+tW+tWR

。

(5)tOTW:從WE有效到數(shù)據(jù)輸出變?yōu)槿龖B(tài)的時(shí)間。這是雙向數(shù)據(jù)傳輸?shù)男枰?當(dāng)WE變低后,數(shù)據(jù)輸出三態(tài)門將被關(guān)閉,使輸出呈現(xiàn)高阻態(tài),隨后才能將寫入數(shù)據(jù)的三態(tài)門打

開,將輸入數(shù)據(jù)送到芯片內(nèi)部,tOTW

是這一轉(zhuǎn)換過程所需要的時(shí)間。

(6)tDW:數(shù)據(jù)有效的時(shí)間。它是指從輸入數(shù)據(jù)穩(wěn)定到允許撤銷CS和WE信號,數(shù)據(jù)應(yīng)至少維持的時(shí)間。

(7)tDH:WE撤銷后數(shù)據(jù)保持的時(shí)間。

不同芯片的讀寫周期參數(shù)可以從芯片手冊上查到。在訪問芯片時(shí),所給出的地址、數(shù)據(jù)和控制信號應(yīng)當(dāng)滿足器件讀/寫周期的時(shí)序要求。

SRAM的最大優(yōu)點(diǎn)是訪問速度快,常用于高速數(shù)據(jù)存儲應(yīng)用中,但是它的成本很高,功耗大。

3.3.2DRAM的工作原理

DRAM減少了存儲元中的晶體管數(shù)量,可以實(shí)現(xiàn)更廉價(jià)的隨機(jī)存儲器,但是這種電路不能無時(shí)限地保存其狀態(tài),因此被稱為動態(tài)存儲器。

1.DRAM存儲元

DRAM存儲元是指存儲元上的信息是動態(tài)變化的。因?yàn)镈RAM存儲元中的信息是依靠電容存儲的,電容總會存在泄漏通路,如果時(shí)間過長,會造成電容上的電荷泄漏,導(dǎo)致存儲信息的丟失,為了避免這種“動態(tài)”造成的數(shù)據(jù)變化,需要定時(shí)對所有存儲元進(jìn)行刷新。

1)四管動態(tài)存儲元

圖3-13是四管動態(tài)存儲元的內(nèi)部結(jié)構(gòu)。這個(gè)電路是依靠T1

和T2管的柵極對地電容C

1和C2

來存儲信息的。假設(shè)C1

充電到高電平使T1

導(dǎo)通,而C2放電使T2

截止,A點(diǎn)處于高電平時(shí),存儲信息為“1”;相反,若C2

充電到高電平使T2

導(dǎo)通,而C1

放電使T1截止,A點(diǎn)低電平時(shí),存儲信息為“0”。下面對動態(tài)存儲元的工作狀態(tài)進(jìn)行分析。

(1)保持:當(dāng)字選擇信號為低電平時(shí),T5和T6管截止,將存儲元和兩個(gè)位線D和位線D隔離開,電容C1

和C2

基本上無放電回路,但是存在泄露電流,可以使信息暫存數(shù)毫秒。

(2)寫入:當(dāng)字選擇信號為高電平時(shí),T5

和T6管導(dǎo)通,然后分別在D和D上加相反的電平,對C1

和C2進(jìn)行充放電。例如,當(dāng)寫入“1”時(shí),使D為高電平、D為低電平,則通過T6對C1

充電至高電平,而C2

分別通過T1和T5

兩條放電回路放電至低電平。

(3)讀出:由于電容上的電平是變化的,為了能夠正確的讀出存儲信息,在讀操作前需要對D和D進(jìn)行預(yù)充電,使兩個(gè)位線的分布電容都充電到高電平后斷開充電回路;然后使字選擇信號為高電平,使T5和T6導(dǎo)通,通過A和B點(diǎn)是否存在電流確定存儲的信息。圖3-13四管動態(tài)存儲元的內(nèi)部結(jié)構(gòu)

2)單管動態(tài)存儲元

圖3-14是簡化后的單管動態(tài)存儲元電路。該電路中只

有一個(gè)電容和一個(gè)MOS管,其中,T實(shí)現(xiàn)對存儲元的讀寫

控制,電容C用于存儲信息。假設(shè)電容C充電到高電平時(shí),

存儲信息“1”,當(dāng)電容放電到低電平時(shí),存儲信息“0”。

(1)保持:字選擇線為低電平,使T截止,C無放電回路,但存在泄露電流。

(2)寫入:字選擇線加高電平,T管導(dǎo)通,寫入信息加

在位線D上,當(dāng)寫入“1”時(shí),D為高電平,對C充電到高電

平;當(dāng)寫入“0”時(shí),D為低電平,C通過T放電。

(3)讀出:先對位線D預(yù)充電,使位線上的分步電容充電到參考電平Vm;然后對字選擇線加高電平,使T導(dǎo)通。若C存儲信息為0,則位線D將通過T向電容C充電,D本身的電平將下降,由C與C'的電容值決定最終的電平;若C存儲信息為1,則電容C將通過T向位線D放電,使D電平上升。因此根據(jù)位線D電平的變化方向和幅度來確定存放的信息。

單管動態(tài)存儲元的讀出是破壞性的,在刷新時(shí),需要讀后再刷新,這個(gè)刷新過程是由芯片內(nèi)的外圍電路自動實(shí)現(xiàn)的。與四管動態(tài)存儲元相比,單管動態(tài)存儲元結(jié)構(gòu)簡單,可以有效地提高集成度,但是其刷新電路比較復(fù)雜。圖3-14單管動態(tài)存儲元電路

2.DRAM芯片4116

DRAM芯片4116是一個(gè)16K×1位存儲芯片,其外部特性示意圖如圖3-15所示。圖中,A0~A6是7個(gè)地址輸入端,RAS和CAS分別是行信號選擇和列信號選擇,DIN是數(shù)據(jù)輸入端,DOUT

是數(shù)據(jù)輸出端,WE是寫允許信號(低電平寫,

高電平讀);VCC、VBB

、VSS

提供DRAM正常工作和刷新時(shí)所需的電平;GND是接地端。

圖3-154116芯片的外部特性示意圖

4116芯片的容量是16K×1位,內(nèi)部由兩個(gè)64×128的矩陣組成,如圖3-16所示。每個(gè)矩陣配有行、列地址譯碼器和基準(zhǔn)單元,兩矩陣共用128個(gè)讀出/再生放大器,可實(shí)現(xiàn)對128行數(shù)據(jù)的讀出和刷新操作。圖3-164116(16K×1位)芯片的內(nèi)部結(jié)構(gòu)示意圖

3.DRAM的讀/寫周期時(shí)序

DRAM芯片在使用時(shí),需要按照芯片技術(shù)手冊上的時(shí)序要求,提供數(shù)據(jù)、地址和控制信號。

1)讀周期時(shí)序

圖3-17是DRAM芯片的讀周期時(shí)序。對圖中幾個(gè)主要的時(shí)間參數(shù)說明如下:

(1)tCRD

:讀工作周期,即連續(xù)兩次發(fā)出行選擇信號之間的最短時(shí)間間隔。

(2)taRAS

:行地址有效到數(shù)據(jù)出現(xiàn)在DOUT

上所需的時(shí)間,也是讀時(shí)間。

(3)taCAS

:列地址有效到數(shù)據(jù)出現(xiàn)在DOUT

上所需的時(shí)間。

(4)tRD-CAS:讀控制信號有效到列地址CAS有效的時(shí)間間隔,這個(gè)間隔是為了確保數(shù)據(jù)讀出無誤。

(5)thRD-

CAS

:在CAS無效后,WE=1還應(yīng)維持的時(shí)間。

(6)thCAS-OUT:在CAS無效后,DOUT

上數(shù)據(jù)維持的時(shí)間。圖3-17DRAM芯片的讀周期時(shí)序

2)寫周期時(shí)序

圖3-18是DRAM芯片的寫周期時(shí)序。圖3-18DRAM芯片的寫周期時(shí)序

對圖3-18中的幾個(gè)時(shí)間參數(shù)說明如下:

(1)tCWR:寫工作周期,即兩次發(fā)出行選擇信號之間的最短時(shí)間間隔。

(2)tWWR:寫入時(shí)間,它是指從WE=0開始,到將DIN

上的數(shù)據(jù)可靠寫入指定數(shù)據(jù)單元所需的時(shí)間。

(3)tWR-CAS:為了確保寫入數(shù)據(jù)準(zhǔn)確無誤,WE=0的時(shí)間應(yīng)先于CAS=0的時(shí)間。

(4)tDIN-CAS:為了確保寫入數(shù)據(jù)準(zhǔn)確無誤,輸入數(shù)據(jù)DIN

應(yīng)先于CAS=0的時(shí)間段。

(5)thWR-CAS:在CAS有效后,寫控制WE=0還應(yīng)維持的時(shí)間。

(6)thDIN-CAS:在CAS有效后,DIN

上數(shù)據(jù)還應(yīng)當(dāng)維持的時(shí)間。

由此可見,為了保證數(shù)據(jù)的正常寫入,WE和CAS有效持續(xù)時(shí)間要大于寫入數(shù)據(jù)DIN

有效的時(shí)間。

4.DRAM的刷新

DRAM的存儲元是依靠電容存儲數(shù)據(jù)的,由于電容泄漏電流的存在,存儲元的信息不能長時(shí)間保存,因此必須在一定的時(shí)間段中對存儲元的信息進(jìn)行刷新操作。刷新的過程實(shí)

質(zhì)是將原存儲信息讀出后重新寫入的過程。

由于程序在執(zhí)行時(shí)對存儲單元的訪問是隨機(jī)的,那些長時(shí)間得不到訪問的單元其存儲信息會消失,因此,必須規(guī)定在一定的時(shí)間間隔內(nèi),對DRAM芯片的全部存儲元執(zhí)行一遍刷新操作。

這個(gè)時(shí)間間隔稱為刷新周期,也稱為再生周期,一般是2ms。DRAM芯片的刷新操作是由其內(nèi)部的刷新控制電路自動控制完成的,在刷新時(shí)是逐行進(jìn)行的,一次刷新一行中的全部存儲元。常用的刷新有集中、分散和異步三種方式。為了說明這三種刷新方式的不同,我們假設(shè)對內(nèi)部結(jié)構(gòu)為128×128的存儲芯片進(jìn)行刷新,設(shè)刷新周期是2ms,存取周期是0.5μs,則整個(gè)刷新周期中共有4000個(gè)存取周期。

1)集中刷新

集中刷新方式是指在4000個(gè)存取周期中取連續(xù)的128個(gè)存取周期,對存儲器進(jìn)行逐行刷新,如圖3-19所示。這種刷新的特點(diǎn)是芯片的刷新操作集中在64μs內(nèi),在這個(gè)時(shí)間

段中,CPU是不能訪問DRAM的,這個(gè)時(shí)間又稱為“死時(shí)間”,而64μs對CPU來說是一個(gè)相當(dāng)長的時(shí)間。集中刷新方式中DRAM的死時(shí)間率=128/4000=3.2%。圖3-19DRAM集中刷新方式時(shí)間分配示意圖

2)分散刷新

分散刷新方式是指將4000個(gè)存取周期分為2000個(gè)基本周期,每個(gè)基本周期中包含兩個(gè)存取周期時(shí)間段,其中一個(gè)供CPU訪問存儲器,另一個(gè)用于存儲器自身的逐行刷新,如圖3-20所示。分散刷新雖然將死時(shí)間分散了,但是死時(shí)間率=1/2=50%,整個(gè)系統(tǒng)的效率降低了。圖3-20DRAM分散刷新方式時(shí)間分配示意圖

3)異步刷新

異步刷新方式是指將4000個(gè)存儲周期分為128個(gè)時(shí)間段,每個(gè)時(shí)間段15.5μs(2ms/128=15.6μs取存取周期的最大整數(shù)倍),即31個(gè)存取周期,每個(gè)時(shí)間段中30個(gè)存

取周期用于存儲器的讀取或保持,1個(gè)存取周期對DRAM中的一行執(zhí)行刷新操作,如圖3-21所示。這種刷新方式的死時(shí)間率=1/31=3.22%。相較于前兩種方式,異步刷新方式不但分散了死時(shí)間,而且提高了存儲器的工作效率。圖3-21DRAM異步刷新方式時(shí)間分配示意圖

3.4只讀存儲器ROM

3.4.1掩膜型只讀存儲器MROM

MROM是芯片制造商根據(jù)用戶提供的信息事先將信息存儲到芯片中,這種芯片中的信息是固定不變的,即只能讀出而不能寫入新的信息。

圖3-22是掩膜MOS只讀存儲器的內(nèi)部結(jié)構(gòu)。當(dāng)某一字線(高電平)被選中時(shí),該線上所有連接MOS管的位都將導(dǎo)通,使位線上輸出低電平,而沒有MOS管的位線輸出高電

平。在圖3-22中,字線W0存儲的數(shù)據(jù)為“010”。

MROM一般用于存放固定程序或數(shù)據(jù),如固定不變的微程序代碼或用于顯示字符的字模點(diǎn)陣代碼等。圖3-22掩膜MOS只讀存儲器的內(nèi)部結(jié)構(gòu)

3.4.2可編程一次的只讀存儲器PROM

常見的PROM是熔絲型的,圖3-23是一個(gè)4×4PROM的工作原理示意圖,圖3-23(a)是其內(nèi)部結(jié)構(gòu)示意圖,圖3-23(b)為熔絲型開關(guān)和讀/寫放大電路。PROM芯片在出廠時(shí),在圖3-23(a)中的行列交叉點(diǎn)處連接一段熔絲,即易熔材料,即存儲數(shù)據(jù)“0”,如圖3-23(b)所示,若該位需要寫入1,則使一個(gè)較大的電流通過該熔絲,使其熔斷,顯然這個(gè)過程是不可逆的。圖3-23熔絲型4×4PROM的工作原理示意圖

3.4.3紫外線可擦除可編程只讀存儲器EPROM

EPROM是指紫外線可擦除可編程的只讀存儲器,EPROM存儲元的開關(guān)結(jié)構(gòu)如圖3-24(a)所示。采用的晶體管是疊層?xùn)抛⑷隡OS管,MOS管的結(jié)構(gòu)如圖3-24(b)所示。疊層?xùn)啪w管是在普通MOS管的基礎(chǔ)上,增加了一個(gè)多晶硅柵,這個(gè)柵極埋在二氧化硅絕緣層內(nèi),沒有外部引線,稱為浮柵;另一個(gè)柵極G的引出線與Wi相連,稱為控制柵。當(dāng)浮柵中沒有注入電子時(shí),Wi=1,疊層?xùn)啪w管導(dǎo)通;當(dāng)浮柵中注入電子后,疊層?xùn)啪w管不能導(dǎo)通。其編程過程就是將電子注入浮柵,而擦除過程就是使浮柵中的電子回到襯底。圖3-24EPROM的存儲原理

3.4.4電可擦除可編程只讀存儲器EEPROM

EEPROM是電可擦除可編程只讀存儲器的簡稱,也稱為E2

PROM。它是一種可以進(jìn)行電全部擦除或部分擦除的PROM,比EPROM的使用更為方便靈活。

EEPROM構(gòu)成的可編程開關(guān)如圖3-25(a)所示。其中,T1

是普通的NMOS管,T2

是一個(gè)浮柵隧道氧化層MOS管,這里將其簡稱為EEPROM晶體管。EEPROM晶體管的結(jié)

構(gòu)如圖3-25(b)所示。圖3-25EEPROM的存儲原理

EEPROM晶體管與EPROM采用的疊層?xùn)臡OS管結(jié)構(gòu)類似,也有兩個(gè)柵極:一個(gè)柵極G1

有引出線,是控制柵,也稱為擦寫柵;另一個(gè)柵極埋在二氧化硅絕緣層內(nèi),沒有引出線,是浮柵。所不同的是,EEPROM晶體管中的浮柵與漏極區(qū)(D)之間的二氧化硅層極薄,稱為隧道區(qū)。

在正常工作時(shí),擦寫柵G1接+3V電壓,若浮柵沒有電子,EEPROM晶體管導(dǎo)通,圖3-25(a)所示的開關(guān)可以導(dǎo)通;若浮柵積有電子,則EEPROM晶體管不能導(dǎo)通,開關(guān)也不能導(dǎo)通。

3.4.5閃存FLASH

FLASH綜合了EPROM和EEPROM的優(yōu)點(diǎn),不但具有EPROM高密度、低成本的優(yōu)點(diǎn),而且具有EEPROM電擦除及快速的優(yōu)點(diǎn)。

FLASH構(gòu)成的可編程開關(guān)的結(jié)構(gòu)如圖3-26(a)所示,只使用了一個(gè)疊層?xùn)臡OS管,這里簡稱為FLASH晶體管。FLASH晶體管的結(jié)構(gòu)如圖3-26(b)所示,其結(jié)構(gòu)與EPROM的疊層?xùn)臡OS管結(jié)構(gòu)類似,都有外部引出的控制柵和埋在二氧化硅絕緣層內(nèi)的浮柵。所不同的是,FLASH晶體管的浮柵與襯底之間的絕緣層更薄,與源區(qū)的重疊部分是源區(qū)的橫向擴(kuò)散形成的,面積極小。圖3-26FLASH的存儲原理

FLASH開關(guān)的編程方法與EPROM相同,利用雪崩效應(yīng)使電子注入浮柵。在編程時(shí),控制柵加+12V高電壓,FLASH晶體管的源漏之間形成+6~+7V的偏置電壓,晶體管強(qiáng)烈導(dǎo)通形成雪崩,電子注入浮柵。

FLASH開關(guān)的擦除方法與EEPROM類似,利用隧道效應(yīng)使浮柵中的電子返回襯底。擦除時(shí),控制柵接低電平,源極接+12V、寬度為100ms的正脈沖,浮柵與源極間的重疊區(qū)形成隧道效應(yīng),電子由隧道返回襯底。擦除時(shí),所有源極接在一起的晶體管一起被擦除。

正常工作時(shí),Wi=1,若浮柵內(nèi)沒有電子,晶體管導(dǎo)通;若浮柵內(nèi)積有電子,則晶體管不能導(dǎo)通。

按照結(jié)構(gòu)特點(diǎn),EPROM、EEPROM和FLASH都是浮柵型編程元件,都可以反復(fù)編程,并且編程后信息都能夠長期保存。但由于EPROM的擦除需要專門的工具,應(yīng)用不方便,已逐步被EEPROM和FLASH所取代。目前,采用EEPROM和FLASH工藝的器件,內(nèi)部通常配置有升壓電路來提供編程和擦除電壓,因此它們可以工作于單一電源供電。在現(xiàn)有的工藝水平上,它們的擦寫壽命可達(dá)到10萬次以上。

3.5半導(dǎo)體存儲器擴(kuò)展

3.5.1位擴(kuò)展位擴(kuò)展是指將現(xiàn)有芯片擴(kuò)展成一個(gè)能夠滿足存儲器字長要求的模塊,該模塊的字?jǐn)?shù)與存儲芯片的字?jǐn)?shù)是一致的。要求設(shè)計(jì)的存儲器總?cè)萘渴?K×8,因此字長是8,選用的芯片是1K×1位的,則位擴(kuò)展的目標(biāo)就是要構(gòu)成一個(gè)1K×8的模塊。1K×1位的RAM芯片有10根地址線A9~A0,1根數(shù)據(jù)線D,還有讀寫線WE和片選線CS。具體擴(kuò)展方法如圖3-27所示。圖3-27位擴(kuò)展法構(gòu)成1K×8位模塊

從圖3-27中可以看出構(gòu)成模塊的8個(gè)存儲芯片的各類信號的連接方法如下:

(1)各芯片數(shù)據(jù)信號獨(dú)立,分別作為模塊的D7~D0,構(gòu)成模塊8位數(shù)據(jù)。

(2)讀/寫線WE并聯(lián)。

(3)片選線CS并聯(lián)。

(4)各芯片的地址信號A9~A0

并聯(lián)。

位擴(kuò)展后得到的模塊的容量是1K×8位,其信號有:

(1)D7~D0:8位數(shù)據(jù)。

(2)A9~A0:10位地址。

(3)WE:讀寫控制。

(4)CS:片選信號。

3.5.2字?jǐn)U展

字?jǐn)U展是指用滿足存儲單元字長的芯片或模塊構(gòu)成存儲器,以滿足存儲器的字?jǐn)?shù)要求。例如,用1K×8的模塊構(gòu)成4K×8的存儲器,需要四個(gè)模塊。這四個(gè)模塊構(gòu)成的存儲器的地址應(yīng)當(dāng)是連續(xù)的,因此,這四個(gè)模塊的地址空間分配如表3-2所示。分析表3-2,可以利用A11A10控制產(chǎn)生四個(gè)模塊的片選信號CS0

~CS3,如圖3-28所示。圖3-28字?jǐn)U展法構(gòu)成8K×8位模塊

從圖3-28中可以看出,在進(jìn)行字?jǐn)U展時(shí),各存儲模塊間的各類信號的連接方法如下:

(1)數(shù)據(jù)信號并聯(lián)。

(2)讀寫線WE并聯(lián)。

(3)地址信號分為兩部分:

①10根片內(nèi)地址A9~A0并聯(lián)。

②2根片外地址A11A10控制24譯碼器產(chǎn)生四個(gè)模塊的片選信號CS。

按照主存容量正確選擇存儲芯片的數(shù)量以構(gòu)成滿足存儲單元數(shù)量和存儲單

3.5.3存儲器擴(kuò)展舉例

例3-1某CPU共有16根地址線,8根數(shù)據(jù)線,并用MREQ(低電平有效)作為訪存控制信號,用R/W作為讀寫命令信號(高電平為讀,低電平為寫)?,F(xiàn)有的存儲芯片是:

ROM(4K×4位)和RAM(4K×8位),還有74138譯碼器和其他門電路(門電路自定)。試從上述規(guī)格中選用合適的芯片,要求最小8K地址為系統(tǒng)程序區(qū),緊接著的24K地址為用

戶程序區(qū),構(gòu)成存儲器。要求:

(1)指出選用的存儲芯片類型及數(shù)量。

(2)詳細(xì)畫出存儲器與CPU的連線圖。

(1)由于最小8K地址是系統(tǒng)程序區(qū),系統(tǒng)程序可以是固定功能的程序,因此可以選擇ROM,24K地址的用戶程序區(qū)必須是RAM。

本題目中說明有16根地址線,8根數(shù)據(jù)線,因此最大的尋址空間是216=64KB,每個(gè)存儲單元的字長是8位。由此選擇芯片:

①ROM:選擇4K×4位芯片4片,擴(kuò)展構(gòu)成8K×8ROM。

②RAM:選擇4K×8位芯片6片,構(gòu)成24K×8的RAM存儲空間。

(2)16根地址線,8根數(shù)據(jù)線,因此CPU的尋址空間是64K×8b,這64K的地址分配情況如表3-3所示。

從表3-3可以看出,在整個(gè)存儲器中,A15=0,可以用于控制74138的STC,A14

~A

12用于控制產(chǎn)生各芯片的片選控制信號,MREQ為低電平時(shí)表示訪問存儲器,因此可以用來控制STB,R/W用于控制6個(gè)RAM的讀寫控制信號WE,CPU和存儲器連接邏輯圖及片選邏輯如圖3-29所示。圖3-29例3-1的CPU和存儲器連接邏輯圖

例3-2設(shè)CPU有16根地址線,8根數(shù)據(jù)線,并用MREQ作為訪存控制信號(低電平有效),用WR作為讀/寫控制信號(高電平為讀,低電平為寫)。現(xiàn)有存儲芯片:1K×4位

RAM;4K×8位RAM;8K×8位RAM;2K×8位ROM;4K×8位ROM;8K×8位ROM及74LS138譯碼器和各種門電路。畫出CPU與存儲器的連接圖,要求:

(1)主存地址空間分配如下:

6000H~67FFH為系統(tǒng)程序區(qū);

6800H~6BFFH為用戶程序區(qū)。

(2)合理選用上述存儲芯片,說明各選幾片。

(3)詳細(xì)畫出存儲芯片的片選邏輯圖。

解第一步,先將16進(jìn)制地址范圍寫成二進(jìn)制地址碼,并確定其總?cè)萘?如下所示:

第二步,根據(jù)地址范圍的容量以及該范圍在計(jì)算機(jī)系統(tǒng)中的作用,選擇存儲芯片。

根據(jù)6000H~67FFH為2K×8位的系統(tǒng)程序區(qū),應(yīng)選1片2K×8位的ROM,若選4K×8位或8K×8位的ROM,都超出了2K×8位的系統(tǒng)程序區(qū)范圍。

根據(jù)6800H~6BFFH為1K×8位的用戶程序區(qū)的范圍,應(yīng)選2片1K×4位的RAM芯片擴(kuò)展成為1K×8位的用戶程序區(qū)。

第三步,分配CPU的地址線。

將CPU的低11位地址A10~A0與2K×8位的ROM地址線相連;將CPU的低10位地址A9~A0

與2片1K×4位的RAM地址線相連。剩下的高位地址與訪存控制信號

MREQ共同產(chǎn)生存儲芯片的片選信號。

第四步,控制產(chǎn)生各芯片的片選信號。

這里選擇1K的地址空間作為38譯碼器每個(gè)輸出控制的地址范圍,則A9~A0

為低位的片內(nèi)地址;系統(tǒng)程序區(qū)需要2個(gè)1K的地址空間,其高位地址A15A14A13A12A11A10的取值為011000~011001;

用戶程序區(qū)只有1K的地址空間,其高位地址A15A14A13A12A11A10的取值固定為011010。選擇A12A11A10

分別與譯碼器的地址輸入端連接,最高的三位地址A15A14A13

固定為011,與CPU的MREQ信號共同控制譯碼器的輸入控制信號連接,即A14

、A13

接STA端,A15

和MREQ分別連接STB

和STC

。因此譯碼器的輸出Y0和Y1

對應(yīng)系統(tǒng)程序芯片的譯碼信號,Y2

對應(yīng)用戶程序區(qū)芯片的譯碼信號。CPU和存儲器連接邏輯圖及片選邏輯圖如圖3-30所示。圖3-30例3-2的CPU和存儲器連接邏輯圖及片選邏輯圖

3.6高速存儲器

3.6.1雙端口存儲器常規(guī)的存儲器每次操作只能訪問一個(gè)存儲單元的數(shù)據(jù),這是由于常規(guī)存儲器只有一個(gè)訪問端口,即存儲器內(nèi)部所需的地址寄存器AR、地址譯碼器、數(shù)據(jù)寄存器DR和讀/寫控制電路只有一套,實(shí)際上就是單端口存儲器,因此每次只能接收一個(gè)地址,并在控制信號的作用下實(shí)現(xiàn)對該地址中內(nèi)容的存取操作。

這種單端口存儲器在CPU執(zhí)行雙操作數(shù)指令的訪存指令時(shí),就需要分兩次讀取操作數(shù),工作速度較低。如果能夠從硬件的角度增加訪問存儲器端口數(shù)量就可以提高存儲器的速度。圖3-31所示的是雙端口存儲器的結(jié)構(gòu)。

從圖3-31可以看到,雙端口存儲器有左、右兩個(gè)端口,每個(gè)端口都有一套地址寄存器、地址譯碼器、數(shù)據(jù)寄存器和控制電路,這樣存儲器就可以對存儲器中兩個(gè)不同的單元進(jìn)行各自獨(dú)立的讀/寫操作。

圖3-31雙端口存儲器的結(jié)構(gòu)

雙端口存儲器可以工作在兩種模式下,即無沖突讀/寫和有沖突讀/寫。

當(dāng)兩個(gè)端口的地址不相同時(shí),在兩個(gè)端口上進(jìn)行的讀/寫操作一定不會發(fā)生沖突。當(dāng)任一端口被選中驅(qū)動時(shí),就可對整個(gè)存儲器進(jìn)行存取,每一個(gè)端口根據(jù)其控制信號CSx

、

OEx

和R/Wx

信號決定各自的數(shù)據(jù)操作,如表3-4所示。

當(dāng)兩個(gè)端口同時(shí)存取存儲器同一存儲單元時(shí),便會發(fā)生讀/寫沖突。為了解決沖突發(fā)生時(shí)兩個(gè)端口應(yīng)當(dāng)執(zhí)行的操作,雙端口存儲器中專門設(shè)置了仲裁邏輯,根據(jù)左右兩個(gè)端口

的地址和片選信號決定其中的一個(gè)端口優(yōu)先進(jìn)行讀/寫操作,而另一個(gè)端口的操作會被延遲。仲裁邏輯通過增加兩個(gè)控制信號BUSYL

和BUSYR

實(shí)現(xiàn)對兩個(gè)端口的控制,BUSYX

信號為0的端口正常工作,BUSYX

信號置1的端口會暫停工作,直到該BUSYX為0時(shí)才開放此端口。表3-5是仲裁邏輯根據(jù)控制信號對兩個(gè)端口的控制情況。

雙端口存儲器常作為通用寄存器組,能快速地為運(yùn)算器提供雙操作數(shù)或快速地實(shí)現(xiàn)寄存器間的數(shù)據(jù)傳送。雙端口存儲器的另一種應(yīng)用是在以存儲器為中心的計(jì)算機(jī)中,讓其中

一個(gè)端口通過存儲總線與CPU連接,使CPU能快速訪問主存,另一個(gè)端口通過系統(tǒng)總線與I/O設(shè)備或IOP連接,這種連接方式具有較大的信息吞吐量。在多機(jī)系統(tǒng)中可以采用雙端口存儲器作為各CPU的共享存儲器,實(shí)現(xiàn)多CPU之間的通信。

3.6.2單體多字存儲器

單體多字存儲器通過增加每個(gè)存儲單元字長來提高存儲器速度,其結(jié)構(gòu)如圖3-32所示。

圖3-32中的存儲體是由多個(gè)并行存儲器共同構(gòu)成的,這些存儲器共用一個(gè)地址寄存器,即按同一地址碼并行地訪問各自對應(yīng)的單元。假設(shè)一個(gè)由4個(gè)存儲器構(gòu)成的并行存儲

體的總?cè)萘繛?MB,若存儲器的訪問單位為字節(jié),W=8則需要22位的存儲單元地址。圖3-32單體多字存儲器的結(jié)構(gòu)

四個(gè)存儲體中地址相同的各個(gè)單元可以視為一個(gè)大的存儲單元,因而稱為單體多字存儲器。這個(gè)存儲單元中的W位數(shù)據(jù)是通過存儲器低位地址選擇輸出的,這樣,只有高位地

址A變化時(shí)才需要訪問存儲體,否則只需要從數(shù)據(jù)寄存器中訪問數(shù)據(jù)就可以了,大大提高了訪問速度。

單體多字并行主存系統(tǒng)適用于向量運(yùn)算一類的特定環(huán)境。在執(zhí)行向量運(yùn)算時(shí),一個(gè)向量包含多個(gè)標(biāo)量操作數(shù),可以按同一地址分別存放于n個(gè)并行主存中。

3.6.3多體交叉存儲器

多體交叉存儲器是指用多個(gè)存儲體構(gòu)成一個(gè)存儲器的方式,有高位地址交叉和低位地址交叉兩種方式。

1.高位地址交叉

在3.5節(jié)中,構(gòu)成存儲器的各存儲模塊在擴(kuò)展時(shí),用低位地址作片內(nèi)地址,高位地址作為譯碼器的地址選擇信號產(chǎn)生各模塊的片選信號,這種地址譯碼方案稱為高位地址交叉。例如,用4個(gè)獨(dú)立的64K×8位的存儲模塊,構(gòu)成一個(gè)256K×8位的存儲器時(shí),可以采用如圖3-33所示的高位地址交叉方式,在這種方式構(gòu)成的存儲器中,4個(gè)儲存體M0~M3自身單元的地址是連續(xù)的,并且與相鄰存儲體之間的地址也是連續(xù)的。高位地址交叉方式存儲器又稱為順序存儲器。圖3-33高位地址交叉方式存儲器

2.低位地址交叉方式

低位地址交叉方式存儲器的內(nèi)部結(jié)構(gòu)如圖3-34所示。與高位地址交叉方式不同的是,存儲器的高位地址作為各個(gè)存儲體的體內(nèi)地址,而存儲體的地址譯碼信號是由低位地址控制產(chǎn)生的,譯碼后,整個(gè)存儲器中相鄰單元的地址被分布在4個(gè)不同的存儲體中,M0存儲體的地址編址序列是0,4,8,12,…,65532;M1

是1,5,9,13,…,65533;M2

是2,6,10,14,…,65534;M3

是3,7,11,15,…,65535。這樣一段連續(xù)的程序或數(shù)據(jù)將交叉地存放在幾個(gè)存儲體中,在高位地址相同的情況下,即體內(nèi)地址相同的情況下,4個(gè)物理地址連續(xù)的存儲單元分別位于4個(gè)不同的存儲體中,這樣就具備了存儲體并行的條件。圖3-34低位地址交叉方式存儲器結(jié)構(gòu)

一個(gè)低位地址交叉的四體存儲器如果能夠按照如圖3-35所示的方式,在一個(gè)存取周期中分時(shí)啟動4個(gè)存儲體,那么在下一個(gè)可以有效地提高存儲器帶寬。圖3-35中有4個(gè)存儲體,故模數(shù)N等于4,若每個(gè)存儲體的存取周期為T,則各存儲體分時(shí)啟動讀/寫功能,時(shí)間相隔為1/4T,這樣在下一個(gè)存取周期中將可訪問4個(gè)不同的存儲體。存儲周期中就可以獲得4個(gè)存儲體的數(shù)據(jù),這樣圖3-35四體交叉存儲器分時(shí)工作示意圖

采用低位地址交叉方式工作的存儲器實(shí)際上是一種流水線方式工作的并行存儲器,在連續(xù)工作的情況下,雖然每個(gè)存儲體的工作速度不變,但是整個(gè)存儲器的速度可以提高n倍(n是存儲體的個(gè)數(shù))。

假設(shè)低位地址交叉存儲器的模塊數(shù)為n,每個(gè)存儲體的存儲周期為T,存儲字長和數(shù)據(jù)總線位數(shù)一致,總線傳輸周期為τ,則采用如圖3-34所示的方式分時(shí)存取時(shí),在滿足T≥nτ的條件下,連續(xù)讀取n個(gè)字所需的時(shí)間為t=T+(n-1)τ,同樣條件下采用高位地址交叉方式所需的時(shí)間為t=nT。

例3-3設(shè)存儲器容量為32字,字長為64位,模塊數(shù)m=4,分別用順序方式和低位地址交叉方式進(jìn)行組織。存儲周期T=200ns,數(shù)據(jù)總線寬度為64位,總線傳送周期τ=50ns。請問順序存儲器和交叉存儲器的帶寬各是多少?

順序存儲器和交叉存儲器連續(xù)讀出m=4個(gè)字的信息總量都是:q=64×4=256位。順序存儲器和交叉存儲器連續(xù)讀出4個(gè)字所需的時(shí)間分別是:

3.6.4相聯(lián)存儲器

當(dāng)存儲器中存放如表3-6所示的學(xué)生成績表時(shí),我們往往想按照指定信息查找相關(guān)信息,例如,查詢姓名是“劉濤”的所有成績,即按照內(nèi)容對存儲器進(jìn)行訪問。表3-6中信息的存儲和檢索依賴的是表中的內(nèi)容,如果采用按地址訪問的存儲器,那么一定要知道需要檢索內(nèi)容的準(zhǔn)確地址,但是這個(gè)物理地址和表中的信息內(nèi)容沒有邏輯關(guān)系,因此如果采用常規(guī)方法去存儲和檢索信息,就要編寫程序按照地址順序讀取存儲的信息,并與指定信息進(jìn)行比較,來判斷是否存在指定信息,如果存在匹配信息則輸出相關(guān)信息,這種用軟件查找信息的方式需要花費(fèi)較長的時(shí)間。

相聯(lián)存儲器又稱為CAM(ContentAddressedMemory),是一種能夠按照存儲內(nèi)容進(jìn)行訪問的存儲器。將表3-6中的信息存放在相聯(lián)存儲器中,再用“姓名”字段的內(nèi)容作為關(guān)鍵字,同時(shí)對表中的所有記錄查找姓名為“劉濤”的信息,可以快速地輸出這個(gè)學(xué)生的語文、數(shù)學(xué)和英語成績。

相聯(lián)存儲器由存儲體、檢索寄存器、屏蔽寄存器、比較器、符合寄存器、數(shù)據(jù)寄存器及控制線路(地址寄存器和地址譯碼器)等組成,其內(nèi)部結(jié)構(gòu)如圖3-36所示。相聯(lián)存儲器的基本原理是把存儲單元所存內(nèi)容的某一部分作為檢索項(xiàng)(即關(guān)鍵字項(xiàng)),去檢索存儲器的每一個(gè)單元,然后對存儲器中與該檢索項(xiàng)相符合的存儲單元內(nèi)容進(jìn)行讀出或?qū)懭?。圖3-36相聯(lián)存儲器的內(nèi)部結(jié)構(gòu)

圖3-36中各組成部分分述如下:

(1)存儲體的單元數(shù)為2m

、字長為N(單元數(shù)可以看成是表3-6中的記錄數(shù),N是每

個(gè)記錄中所有字段位的總和)。

(2)地址寄存器和地址譯碼器在控制電路的控制下依次產(chǎn)生0~2m-1的存儲單元地址,經(jīng)地址譯碼后選中需要訪問的存儲單元。

(3)檢索寄存器用來存放檢索字,其位數(shù)為N,即與存儲體的字長相等。

(4)屏蔽寄存器用來存放屏蔽碼,其位數(shù)為N。屏蔽寄存器中為“1”的位稱為屏蔽位,是索引寄存器不需要查找的位,前面提到的索引項(xiàng)是檢索寄存器與屏蔽寄存器按位取反后

進(jìn)行邏輯與運(yùn)算得到的。

(5)符合寄存器的位數(shù)為2m

,即與存儲單元的個(gè)數(shù)相同,每一位與存儲體的一個(gè)存儲單元相對應(yīng),即符合寄存器的位數(shù)就是相聯(lián)存儲器的單元個(gè)數(shù),它是用來存放檢索結(jié)果的。符合寄存器的每一位是一個(gè)標(biāo)志位,若標(biāo)志位為1,表示該位對應(yīng)的存儲單元中存在與索引項(xiàng)相匹配的內(nèi)容;若標(biāo)志位為0,表示該位對應(yīng)的存儲單元中沒有與索引項(xiàng)相匹配的內(nèi)容。

(6)比較器是把檢索項(xiàng)和從存儲體中讀出的某個(gè)單元內(nèi)容的相應(yīng)位進(jìn)行比較,如果有某個(gè)存儲單元和檢索項(xiàng)符合,就把符合寄存器的相應(yīng)位置“1”,表示單元存在索引項(xiàng)。

(7)數(shù)據(jù)寄存器用來存放存儲體中讀出的數(shù)據(jù),或者存放向存儲體中寫入的數(shù)據(jù)。

為了能夠?qū)崿F(xiàn)快速存取,相聯(lián)存儲器的主要部分(即存儲體)由高速半導(dǎo)體存儲器構(gòu)成,因此相聯(lián)存儲器比傳統(tǒng)存儲器成本高出許多。在計(jì)算機(jī)系統(tǒng)中,相聯(lián)存儲器主要用于在虛擬存儲器中存放分段表、頁表和快表;在高速緩沖存儲器中,相聯(lián)存儲器作為存放Cache的目錄表,因?yàn)樵谶@兩種應(yīng)用中,都需要快速按內(nèi)容查找信息。

3.7高速緩沖存儲器

Cache是位于主存和CPU之間的一個(gè)小容量的高速存儲器,Cache中存放的信息是主存中局部信息的副本,主要用于存放當(dāng)前運(yùn)行程序的指令和代碼。

3.7.1Cache工作原理

從理論上講,通過Cache技術(shù)提高CPU訪問主存速度是基于程序局部性原理。程序局部性是指程序在執(zhí)行時(shí)呈現(xiàn)出局部性的規(guī)律,即在一段時(shí)間內(nèi),CPU訪問存儲器時(shí),無論是存取指令還是存取數(shù)據(jù),所訪問的存儲單元都趨于聚集在一個(gè)較小的連續(xù)區(qū)域中。指令的順序執(zhí)行、數(shù)組的連續(xù)存放、程序循環(huán)、堆棧等都是產(chǎn)生局部性的原因。根據(jù)程序局部性原理,只要將CPU近期可能使用的程序和數(shù)據(jù)提前從主存調(diào)入Cache中,就能做到在短時(shí)間內(nèi)CPU只需要訪問Cache就可以了,這樣就達(dá)到了提高CPU訪問內(nèi)存速度的目的。

1.Cache和主存的塊劃分

正是由于程序局部性原理,Cache和主存數(shù)據(jù)交換時(shí)應(yīng)當(dāng)以塊為單位整體進(jìn)行,因此Cache和主存的存儲空間都被劃分成若干個(gè)大小相同的數(shù)據(jù)存儲塊。Cache和主存的地址

劃分如圖3-37所示。圖3-37Cache和主存的地址劃分

2.Cache的主要性能指標(biāo)

Cache主要的性能指標(biāo)有命中率、Cache主存系統(tǒng)的平均訪問時(shí)間和Cache的效率。

1)Cache的命中率

Cache的容量和塊大小是影響Cache效率的主要因素,通常用“命中率”來衡量Cache的效率。命中率是指CPU從Cache獲得信息的百分比,式(3-1)是命中率h的表達(dá)式:

式中,Nc是程序執(zhí)行期間從Cache獲得數(shù)據(jù)的次數(shù);Nm

是訪問主存的次數(shù)。

2)Cache主存系統(tǒng)的平均訪問時(shí)間和Cache的效率

若用tc

表示Cache的訪問時(shí)間,用tm

表示主存的訪問時(shí)間,則由Cache和主存構(gòu)成的存儲系統(tǒng),即Cache主存系統(tǒng)的平均訪問時(shí)間t

a

可由式(3-2)計(jì)算得到:

t

a=htc+(1-h)tm

(3-2)

從理論上分析,ta

越接近tc

越好。若用e表示效率,則有式(3-3):

因此,提高ta可以通過降低tc

、降低tm

,或提高Cache的命中率h等幾項(xiàng)措施來實(shí)現(xiàn)。

這里只討論最后一種情況,與Cache命中率相關(guān)聯(lián)的因素有以下幾個(gè):

(1)程序在執(zhí)行過程中的地址流分布情況。

(2)Cache失效時(shí)的替換算法。

(3)Cache的容量和塊大小。

不同的程序其地址流的分布是不同的,在這一點(diǎn)上硬件控制是無能為力的,Cache替換算法在后面專門進(jìn)行分析,這里只討論命中率與Cache的容量和塊大小的關(guān)系。

例3-4已知CPU在執(zhí)行一段程序時(shí),Cache完成存取的次數(shù)為1900次,主存完成的次數(shù)為100次,已知Cache的存取周期為50ns,主存的存取周期為250ns。求Cache的命中率、Cache的效率和Cache主存系統(tǒng)的平均訪問時(shí)間。

命中率為

3.Cache的內(nèi)部結(jié)構(gòu)

Cache工作過程的原理框圖可以用圖3-38描述。

從圖3-38可以看出,為了實(shí)現(xiàn)Cache功能,Cache的內(nèi)部結(jié)構(gòu)中除了具有Cache存儲體外,主要還有主存Cache地址映射和變換模塊以及Cache替換算法模塊。圖3-38Cache工作過程的原理框圖

主存Cache地址映射和變換模塊的功能是根據(jù)CPU給出的主存地址判斷所存取的數(shù)據(jù)塊是否已經(jīng)加載到Cache中了,也就是判斷Cache是否命中,如果命中則該模塊就按照地址映射規(guī)則將CPU給出的主存地址轉(zhuǎn)換成Cache地址。常用的地址映射規(guī)則有全相聯(lián)射、直接映射和組相聯(lián)映射。

Cache替換算法模塊在Cache沒有命中且Cache中又沒有空塊的情況下,根據(jù)所選擇的替換策略確定Cache中的哪個(gè)塊要被替換到主存中去。常用的替換算法有先進(jìn)先出(FIFO)和最近最少使用(LRU)算法。

為了實(shí)現(xiàn)Cache的功能,需要解決以下幾個(gè)問題:

(1)主存塊與Cache塊之間的對應(yīng)關(guān)系。

(2)如何判斷Cache是否命中。

(3)主存地址如何轉(zhuǎn)換成Cache地址。

(4)Cache中沒有空塊時(shí)如何進(jìn)行塊替換。

(5)Cache與主存的一致性如何解決。

4.Cache的讀/寫過程

Cache的讀操作過程如圖3-39所示。首先CPU給出需要訪問的主存地址,Cache可以從地址總線上獲得該地址,然后由主存-Cache地址映射和變換模塊根據(jù)主存地址查找

目錄表后判斷該地址的信息是否已經(jīng)調(diào)入Cache中,會出現(xiàn)兩種情況:

①如果命中,則由地址映像和變換模塊將主存地址轉(zhuǎn)換為Cache地址,然后直接訪問Cache地址就可以將信息通過數(shù)據(jù)總線送給

溫馨提示

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

評論

0/150

提交評論