計算機組成原理第三章-多層次的存貯器_第1頁
計算機組成原理第三章-多層次的存貯器_第2頁
計算機組成原理第三章-多層次的存貯器_第3頁
計算機組成原理第三章-多層次的存貯器_第4頁
計算機組成原理第三章-多層次的存貯器_第5頁
已閱讀5頁,還剩157頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第三章多層次的存儲器3.1存儲器概述3.2SRAM存儲器3.3DRAM存儲器3.4只讀存儲器和閃速存儲器3.5并行存儲器3.6Cache存儲器3.7虛擬存儲器3.8奔騰系列機的虛存組織13.1存儲器概述一個存儲元,可以存放一位二進制代碼。這個二進制代碼位是存儲器中最小的存儲單位——存儲位元若干個存儲位元組成一個存儲單元。許多存儲單元組成一個存儲器3.1存儲器概述3一、存儲器分類1.按存儲介質(zhì)分類(1)半導體存儲器(2)磁表面存儲器(3)磁芯存儲器(4)光盤存儲器易失TTL、MOS磁頭、載磁體硬磁材料、環(huán)狀元件激光、磁光材料非易失4(1)存取時間與物理地址無關(guān)(隨機訪問)

順序存取存儲器磁帶2.按存取方式分類(2)存取時間與物理地址有關(guān)(串行訪問)

隨機存儲器

只讀存儲器

直接存取存儲器磁盤在程序的執(zhí)行過程中可讀可寫在程序的執(zhí)行過程中只讀5磁盤、磁帶、光盤高速緩沖存儲器(Cache)FlashMemory存儲器主存儲器輔助存儲器MROMPROMEPROMEEPROMRAMROM靜態(tài)RAM動態(tài)RAM3.按在計算機中的作用分類3.1存儲器概述二、存儲器分級結(jié)構(gòu)

1、目前存儲器的特點是:速度快的存儲器價格貴,容量??;價格低的存儲器速度慢,容量大。在計算機存儲器體系結(jié)構(gòu)設(shè)計時,我們希望存儲器系統(tǒng)的性能高、價格低,那么在存儲器系統(tǒng)設(shè)計時,應(yīng)當在存儲器容量,速度和價格方面的因素作折中考慮,建立了分層次的存儲器體系結(jié)構(gòu)如下圖所示。63.1.2存儲器分級結(jié)構(gòu)2、分級結(jié)構(gòu)高速緩沖存儲器簡稱cache,它是計算機系統(tǒng)中的一個高速小容量半導體存儲器。主存儲器簡稱主存,是計算機系統(tǒng)的主要存儲器,用來存放計算機運行期間的大量程序和數(shù)據(jù)。外存儲器簡稱外存,它是大容量輔助存儲器。73.1.2存儲器分級結(jié)構(gòu)分層存儲器系統(tǒng)之間的連接關(guān)系83.1.3主存儲器的技術(shù)指標字存儲單元:存放一個機器字的存儲單元,相應(yīng)的單元地址叫字地址。字節(jié)存儲單元:存放一個字節(jié)的單元,相應(yīng)的地址稱為字節(jié)地址。存儲容量:指一個存儲器中可以容納的存儲單元總數(shù)。存儲容量越大,能存儲的信息就越多。910存取時間又稱存儲器訪問時間:指一次讀操作命令發(fā)出到該操作完成,將數(shù)據(jù)讀出到數(shù)據(jù)總線上所經(jīng)歷的時間。通常取寫操作時間等于讀操作時間,故稱為存儲器存取時間。存儲周期:指連續(xù)啟動兩次讀操作所需間隔的最小時間。通常,存儲周期略大于存取時間,其時間單位為ns。存儲器帶寬:單位時間里存儲器所存取的信息量,通常以位/秒或字節(jié)/秒做度量單位。3.2SRAM存儲器主存(內(nèi)部存儲器)是半導體存儲器。根據(jù)信息存儲的機理不同可以分為兩類:靜態(tài)讀寫存儲器(SRAM):存取速度快,存儲容量不如DRAM大。動態(tài)讀寫存儲器(DRAM):容量大,存取速度慢一些。11121、主存的基本組成存儲體驅(qū)動器譯碼器MAR控制電路讀寫電路MDR地址總線數(shù)據(jù)總線讀寫……………132、主存和CPU的聯(lián)系MDRMARCPU主存讀數(shù)據(jù)總線地址總線寫14芯片容量3、半導體存儲芯片的基本結(jié)構(gòu)譯碼驅(qū)動存儲矩陣讀寫電路1K×4位16K×1位8K×8位片選線讀/寫控制線地址線…數(shù)據(jù)線…地址線(單向)數(shù)據(jù)線(雙向)10414113815二、半導體存儲芯片簡介1.半導體存儲芯片的基本結(jié)構(gòu)譯碼驅(qū)動存儲矩陣讀寫電路片選線讀/寫控制線地址線…數(shù)據(jù)線…片選線讀/寫控制線(低電平寫高電平讀)(允許讀)CSCE(允許寫)WEOER/W16存儲芯片片選線的作用用16K×1位的存儲芯片組成64K×8位的存儲器

32片當?shù)刂窞?5535時,此8片的片選有效8片16K×1位8片16K×1位8片16K×1位8片16K×1位170,015,015,70,7

讀/寫控制電路

地址譯碼器

字線015……16×8矩陣………07D07D

位線

讀/寫選通A3A2A1A0……2.半導體存儲芯片的譯碼驅(qū)動方式(1)單譯碼方式00000,00,7…0…07…D07D

讀/寫選通

讀/寫控制電路

18N位地址,尋址2n個存儲單元2×2n/2根譯碼線0n0102031012131nn0n1n2nnY地址譯碼X地址譯碼(2)雙譯碼方式3.2SRAM存儲器一、基本的靜態(tài)存儲元陣列1、存儲位元2、三組信號線地址線數(shù)據(jù)線控制線193.2SRAM存儲器二、基本的SRAM邏輯結(jié)構(gòu)SRAM芯大多采用雙譯碼方式,以便組織更大的存儲容量。采用了二級譯碼:將地址分成x向、y向兩部分如圖所示。203.2SRAM存儲器讀與寫的互鎖邏輯 控制信號中CS是片選信號,CS有效時(低電平),門G1、G2均被打開。OE為讀出使能信號,OE有效時(低電平),門G2開啟,當寫命令WE=1時(高電平),門G1關(guān)閉,存儲器進行讀操作。寫操作時,WE=0,門G1開啟,門G2關(guān)閉。注意,門G1和G2是互鎖的,一個開啟時另一個必定關(guān)閉,這樣保證了讀時不寫,寫時不讀。212114引腳圖(1Kx4)地址線數(shù)據(jù)線讀寫控制線片選線電源線地線22A6A5A4A3A0A1A2CSGND123456789181716151413121110VCCA7A8A9I/O1I/O2I/O3I/O4WE2114A63.2SRAM存儲器三、存儲器的讀寫周期讀周期讀出時間taq讀周期時間trc寫周期寫周期時間twc寫時間twd存取周期讀周期時間trc=寫時間twd2324例1:圖3.5(a)是SRA的寫入時序圖。其中R/W是讀/寫命令控制線,當R/W線為低電平時,存儲器按給定地址把數(shù)據(jù)線上的數(shù)據(jù)寫入存儲器。請指出圖3.5(a)寫入時序中的錯誤,并畫出正確的寫入時序圖。25解:點擊上圖3.3DRAM存儲器3.3.1DRAM存儲位元的記憶原理

SRAM存儲器的存儲位元是一個觸發(fā)器,它具有兩個穩(wěn)定的狀態(tài)。而DRAM存儲器的存儲位元是由一個MOS晶體管和電容器組成的記憶電路。26單管DRAM存儲器原理27T1X地址譯碼線C電容用于存儲電荷,有電荷代表1,否則代表0I/OY地址譯碼線T2DRAM刷新相關(guān)概念DRAM靠電容電荷存儲信息。電容電荷容易泄漏,需定期補充電荷以保持信息不變,補充電荷的過程稱為刷新過程(讀出是破壞性的)泄漏完畢之前如不能補充電荷,存儲信息發(fā)生丟失,信息存儲到信息泄漏完畢之間必須完成刷新過程,稱為最大刷新周期,從上一次對存儲器刷新結(jié)束到下一次對整個存儲器刷新結(jié)束所需要的時間稱為刷新周期,刷新一塊芯片所需的刷新周期數(shù)由芯片矩陣的行數(shù)決定。283.3DRAM存儲器291、MOS管做為開關(guān)使用,而所存儲的信息1或0則是由電容器上的電荷量來體現(xiàn)——當電容器充滿電荷時,代表存儲了1,當電容器放電沒有電荷時,代表存儲了0。2、圖(a)表示寫1到存儲位元。此時輸出緩沖器關(guān)閉、刷新緩沖器關(guān)閉,輸入緩沖器打開(R/W為低),輸入數(shù)據(jù)DIN=1送到存儲元位線上,而行選線為高,打開MOS管,于是位線上的高電平給電容器充電,表示存儲了1。3、圖(b)表示寫0到存儲位元。此時輸出緩沖器和刷新緩沖器關(guān)閉,輸入緩沖器打開,輸入數(shù)據(jù)DIN=0送到存儲元位線上;行選線為高,打開MOS管,于是電容上的電荷通過MOS管和位線放電,表示存儲了0。4、圖(c)表示從存儲位元讀出1。輸入緩沖器和刷新緩沖器關(guān)閉,輸出緩沖器/讀放打開(R/W為高)。行選線為高,打開MOS管,電容上所存儲的1送到位線上,通過輸出緩沖器/讀出放大器發(fā)送到DOUT,即DOUT=1。5、圖(d)表示(c)讀出1后存儲位元重寫1。由于(c)中讀出1是破壞性讀出,必須恢復存儲位元中原存的1。此時輸入緩沖器關(guān)閉,刷新緩沖器打開,輸出緩沖器/讀放打開,DOUT=1經(jīng)刷新緩沖器送到位線上,再經(jīng)MOS管寫到電容上。注意,輸入緩沖器與輸出緩沖器總是互鎖的。這是因為讀操作和寫操作是互斥的,不會同時發(fā)生。DRAM刷新DRAM靠電容電荷存儲信息。電容電荷容易泄漏,需定期補充電荷以保持信息不變,補充電荷的過程稱為刷新過程(讀出是破壞性的)泄漏完畢之前如不能補充電荷,存儲信息發(fā)生丟失,信息存儲到信息泄漏完畢之間必須完成刷新過程,稱為最大刷新周期,從上一次對存儲器刷新結(jié)束到下一次對整個存儲器刷新結(jié)束所需要的時間稱為刷新周期,刷新一塊芯片所需的刷新周期數(shù)由芯片矩陣的行數(shù)決定。303.3.2DRAM芯片的邏輯結(jié)構(gòu)下面我們通過一個例子來看一下動態(tài)存儲器的邏輯結(jié)構(gòu)如圖。圖(a)示出1M×4位DRAM芯片的管腳圖,其中有兩個電源腳、兩個地線腳,為了對稱,還有一個空腳(NC)。圖(b)是該芯片的邏輯結(jié)構(gòu)圖。3132與SRAM不同的是:(1)增加了行地址鎖存器和列地址鎖存器。由于DRAM存儲器容量很大,地址線寬度相應(yīng)要增加,這勢必增加芯片地址線的管腳數(shù)目。為避免這種情況,采取的辦法是分時傳送地址碼。若地址總線寬度為10位,先傳送地址碼A0~A9,由行選通信號RAS打入到行地址鎖存器;然后傳送地址碼A10~A19,由列選通信號CRS打入到列地址鎖存器。芯片內(nèi)部兩部分合起來,地址線寬度達20位,存儲容量為1M×4位。33與SRAM不同的是:(2)增加了刷新計數(shù)器和相應(yīng)的控制電路。DRAM讀出后必須刷新,而未讀寫的存儲元也要定期刷新,而且要按行刷新,所以刷新計數(shù)器的長度等于行地址鎖存器。刷新操作與讀/寫操作是交替進行的,所以通過2選1多路開關(guān)來提供刷新行地址或正常讀/寫的行地址。3.3.3讀/寫周期、刷新周期讀周期、寫周期的定義是從行選通信號RAS下降沿開始,到下一個RAS信號的下降沿為止的時間,也就是連續(xù)兩個讀周期的時間間隔。通常為控制方便,讀周期和寫周期時間相等。343.3DRAM存儲器刷新周期:DRAM存儲位元是基于電容器上的電荷量存儲,這個電荷量隨著時間和溫度而減少,因此必須定期地刷新,以保持它們原來記憶的正確信息。刷新操作有兩種刷新方式:集中式刷新分散式刷新異步式刷新35集中刷新方式36RW刷新2刷新1RW128…RW…RW刷新間隔2ms讀寫/維持刷新過程/死區(qū)500ns500ns2ms內(nèi)集中安排所有刷新周期。用在實時要求不高的場合。分散刷新方式37RW刷新2刷新1RW128…RW…RW刷新間隔2ms500ns500ns存儲周期各刷新周期分散安排在存取周期中。用在低速系統(tǒng)中異步刷新方式38RW刷新1…RWRW15.5微秒500nsRW128…RW…各刷新周期分散安排在2ms內(nèi)每隔一段時間刷新一行。每隔15.5微秒提一次刷新請求,刷新一行;2毫秒內(nèi)刷新完所有行用在大多數(shù)計算機中。2ms128行≈15.5微秒15.5微秒500ns3.3DRAM存儲器3.3.4、存儲器容量的擴充 給定的芯片字長位數(shù)較短,不滿足設(shè)計要求的存儲器字長,此時需要用多片給定芯片擴展字長位數(shù)。三組信號線中,地址線和控制線公用而數(shù)據(jù)線單獨分開連接。

d=設(shè)計要求的存儲器容量/選擇芯片存儲器容量

[例2]利用1M×4位的SRAM芯片,設(shè)計一個存儲容量為1M×8位的SRAM存儲器。解:所需芯片數(shù)量=(1M×8)/(1M×4)=2片393.3DRAM存儲器40

例:存貯器的位擴展。用2114存儲芯片組成1K×8位的存儲器1、位數(shù)擴展41

用211

4存儲芯片組成1K

×

8位的存儲器2片10根地址線8根數(shù)據(jù)線DD……D0479AA0???21142114CSWE2、字存儲容量擴展給定的芯片存儲容量較?。ㄗ謹?shù)少),不滿足設(shè)計要求的總存儲容量,此時需要用多片給定芯片來擴展字數(shù)。三組信號組中給定芯片的地址總線和數(shù)據(jù)總線公用,控制總線中R/W公用,使能端EN不能公用,它由地址總線的高位段譯碼來決定片選信號。所需芯片數(shù)仍由(d=設(shè)計要求的存儲器容量/選擇芯片存儲器容量)決定。[例3]利用1M×8位的DRAM芯片設(shè)計2M×8位的DRAM存儲器解:所需芯片數(shù)d=(2M×8)/(1M×8)=2(片)42舉例:

用1K

×

8位存儲芯片組成2K

×

8位的存儲器43

用1K

×

8位存儲芯片組成2K

×

8位的存儲器11根地址線8根數(shù)據(jù)線2片1K×8位1K×8位D7D0???????????????WEA1A0???A9CS0A10

1CS1主存儲器與CPU的連接44D0,D1WEACS2K×2D0D1A10-0MREQ#R/W#CPUD1~D0舉例:2Kx2->2Kx8?字長(位)擴展(DBUS)

2Kx2->2Kx845A10-0D1D0D7D6A10-0MREQ#R/W#CPUD7~D0WEACS2K×2DWEACS2K×2DWEACS2K×2DWEACS2K×2DD5D4D3D2字數(shù)(字)擴展(ABUS)

8Kx8->32Kx846A14-13A12-02-4譯碼ramsel4ramsel2ramsel1ramsel0OE#D7~D0D7~D0D7~D0D7~D0WEACS8K×8DWEACS8K×8DWEACS8K×8DWEACS8K×8DA12-0MREQ#R/W#CPUD7~D0綜合擴展

8Kx8->32Kx3247112-4譯碼100100A14-13A12-0A12-0OE#MREQ#R/W#CPUD31~D0D31~D0D31~D0D31~D0D31~D0WEACS8Kx84片DWEACS8Kx84片DWEACS8Kx84片DWEACS8Kx84片D各芯片地址范圍488位8K8K8K8K1234D7D6…D1D0A14A13A12A00000...00011...10100...00111...11000...01011...11100...01111...13.3DRAM存儲器3、存儲器模塊條存儲器通常以插槽用模塊條形式供應(yīng)市場。這種模塊條常稱為內(nèi)存條,它們是在一個條狀形的小印制電路板上,用一定數(shù)量的存儲器芯片,組成一個存儲容量固定的存儲模塊。如圖所示。內(nèi)存條有30腳、72腳、100腳、144腳、168腳等多種形式。30腳內(nèi)存條設(shè)計成8位數(shù)據(jù)線,存儲容量從256KB~32MB。72腳內(nèi)存條設(shè)計成32位數(shù)據(jù)總線100腳以上內(nèi)存條既用于32位數(shù)據(jù)總線又用于64位數(shù)據(jù)總線,存儲容量從4MB~512MB。49六、高級的DRAM結(jié)構(gòu)1、FPMDRAM:快速頁模式動態(tài)存儲器,它是根據(jù)程序的局部性原理來實現(xiàn)的。502、CDRAM帶高速緩沖存儲器(cache)的動態(tài)存儲器,它是在通常的DRAM芯片內(nèi)又集成了一個小容量的SRAM,從而使DRAM芯片的性能得到顯著改進。如圖所示出1M×4位CDRAM芯片的結(jié)構(gòu)框圖,其中SRAM為512×4位。51523.3DRAM存儲器SDRAM同步型動態(tài)存儲器。計算機系統(tǒng)中的CPU使用的是系統(tǒng)時鐘,SDRAM的操作要求與系統(tǒng)時鐘相同步,在系統(tǒng)時鐘的控制下從CPU獲得地址、數(shù)據(jù)和控制信息。換句話說,它與CPU的數(shù)據(jù)交換同步于外部的系統(tǒng)時鐘信號,并且以CPU/存儲器總線的最高速度運行,而不需要插入等待狀態(tài)。其原理和時序關(guān)系見下一頁圖和動畫。53543.3DRAM存儲器[例4]CDRAM內(nèi)存條組成實例。 一片CDRAM的容量為1M×4位,8片這樣的芯片可組成1M×32位4MB的存儲模塊,其組成如下圖所示。55563.3DRAM存儲器七、DRAM主存讀/寫的正確性校驗

DRAM通常用做主存儲器,其讀寫操作的正確性與可靠性至關(guān)重要。為此除了正常的數(shù)據(jù)位寬度,還增加了附加位,用于讀/寫操作正確性校驗。增加的附加位也要同數(shù)據(jù)位一起寫入DRAM中保存。其原理如圖所示。573.4只讀存儲器和閃速存儲器一、只讀存儲器

ROM叫做只讀存儲器。顧名思義,只讀的意思是在它工作時只能讀出,不能寫入。然而其中存儲的原始數(shù)據(jù),必須在它工作以前寫入。只讀存儲器由于工作可靠,保密性強,在計算機系統(tǒng)中得到廣泛的應(yīng)用。主要有兩類:掩模ROM:掩模ROM實際上是一個存儲內(nèi)容固定的ROM,由生產(chǎn)廠家提供產(chǎn)品??删幊蘎OM:用戶后寫入內(nèi)容,有些可以多次寫入。一次性編程的PROM多次編程的EPROM和E2PROM。583.4只讀存儲器和閃速存儲器1、掩模ROM掩模ROM的陣列結(jié)構(gòu)和存儲元593.4只讀存儲器和閃速存儲器掩模ROM的邏輯符號和內(nèi)部邏輯框圖602、可編程ROMPROM61一次編程3.4只讀存儲器和閃速存儲器3、可編程ROMEPROM叫做光擦除可編程可讀存儲器。它的存儲內(nèi)容可以根據(jù)需要寫入,當需要更新時將原存儲內(nèi)容抹去,再寫入新的內(nèi)容。

62這種EPROM出廠時為全“1”狀態(tài),使用者可根據(jù)需要寫“0”。EPROM允許多次重寫。抹去時,用40W紫外燈,相距2cm,照射幾分鐘即可。

EPROM63高壓寫入紫外線光照擦除編程器64紫外線擦除器653.4只讀存儲器和閃速存儲器E2PROM存儲元

EEPROM,叫做電擦除可編程只讀存儲器。其存儲元是一個具有兩個柵極的NMOS管,如圖(a)和(b)所示,G1是控制柵,它是一個浮柵,無引出線;G2是抹去柵,它有引出線。在G1柵和漏極D之間有一小面積的氧化層,其厚度極薄,可產(chǎn)生隧道效應(yīng)。如圖(c)所示,當G2柵加20V正脈沖P1時,通過隧道效應(yīng),電子由襯底注入到G1浮柵,相當于存儲了“1”。利用此方法可將存儲器抹成全“1”狀態(tài)。663.4只讀存儲器和閃速存儲器這種存儲器在出廠時,存儲內(nèi)容為全“1”狀態(tài)。使用時,可根據(jù)要求把某些存儲元寫“0”。寫“0”電路如圖(d)所示。漏極D加20V正脈沖P2,G2柵接地,浮柵上電子通過隧道返回襯底,相當于寫E2PROM讀出時的電路如圖(e)所示,這時G2柵加3V電壓,若G1柵有電子積累,T2管不能導通,相當于存“1”;若G1柵無電子積累,T2管導通,相當于存“0”。673.4只讀存儲器和閃速存儲器4、閃速存儲器

FLASH存儲器也翻譯成閃速存儲器,它是高密度非失易失性的讀/寫存儲器。高密度意味著它具有巨大比特數(shù)目的存儲容量。非易失性意味著存放的數(shù)據(jù)在沒有電源的情況下可以長期保存??傊?,它既有RAM的優(yōu)點,又有ROM的優(yōu)點,稱得上是存儲技術(shù)劃時代的進展。68閃速存儲器FlashMemory在不加電的情況下可長期保持存儲的信息。本質(zhì)上屬于EEPROM,既有ROM的特點,又有很高的存取速度,而且易于擦除和重寫,功耗很小。存放BIOS,升級方便693.4只讀存儲器和閃速存儲器FLASH存儲元在EPROM存儲元基礎(chǔ)上發(fā)展起來的,由此可以看出創(chuàng)新與繼承的關(guān)系。如右圖所示為閃速存儲器中的存儲元,由單個MOS晶體管組成,除漏極D和源極S外,還有一個控制柵和浮空柵。703.4只讀存儲器和閃速存儲器“0”狀態(tài):當控制柵加上足夠的正電壓時,浮空柵將儲存許多電子帶負電,這意味著浮空柵上有很多負電荷,這種情況我們定義存儲元處于0狀態(tài)?!?”狀態(tài):如果控制柵不加正電壓,浮空柵則只有少許電子或不帶電荷,這種情況我們定義為存儲元處于1狀態(tài)。浮空柵上的電荷量決定了讀取操作時,加在柵極上的控制電壓能否開啟MOS管,并產(chǎn)生從漏極D到源極S的電流。713.4只讀存儲器和閃速存儲器編程操作:實際上是寫操作。所有存儲元的原始狀態(tài)均處“1”狀態(tài),這是因為擦除操作時控制柵不加正電壓。編程操作的目的是為存儲元的浮空柵補充電子,從而使存儲元改寫成“0”狀態(tài)。如果某存儲元仍保持“1”狀態(tài),則控制柵就不加正電壓。如圖(a)表示編程操作時存儲元寫0、寫1的情況。實際上編程時只寫0,不寫1,因為存儲元擦除后原始狀態(tài)全為1。要寫0,就是要在控制柵C上加正電壓。一旦存儲元被編程,存儲的數(shù)據(jù)可保持100年之久而無需外電源。723.4只讀存儲器和閃速存儲器讀取操作:控制柵加上正電壓。浮空柵上的負電荷量將決定是否可以開啟MOS晶體管。如果存儲元原存1,可認為浮空柵不帶負電,控制柵上的正電壓足以開啟晶體管。如果存儲元原存0,可認為浮空柵帶負電,控制柵上的正電壓不足以克服浮動柵上的負電量,晶體管不能開啟導通。當MOS晶體管開啟導通時,電源VD提供從漏極D到源極S的電流。讀出電路檢測到有電流,表示存儲元中存1,若讀出電路檢測到無電流,表示存儲元中存0,如圖(b)所示。733.4只讀存儲器和閃速存儲器擦除操作:所有的存儲元中浮空柵上的負電荷要全部洩放出去。為此晶體管源極S加上正電壓,這與編程操作正好相反,見圖(c)所示。源極S上的正電壓吸收浮空柵中的電子,從而使全部存儲元變成1狀態(tài)。743.4只讀存儲器和閃速存儲器FLASH存儲器的陣列結(jié)構(gòu)FLASH存儲器的簡化陣列結(jié)構(gòu)如右圖所示。在某一時間只有一條行選擇線被激活。讀操作時,假定某個存儲元原存1,那么晶體管導通,與它所在位線接通,有電流通過位線,所經(jīng)過的負載上產(chǎn)生一個電壓降。這個電壓降送到比較器的一個輸入端,與另一端輸入的參照電壓做比較,比較器輸出一個標志為邏輯1的電平。如果某個存儲元原先存0,那么晶體管不導通,位線上沒有電流,比較器輸出端則產(chǎn)生一個標志為邏輯0的電平。75例4某計算機的主存地址空間中,從地址0x0000到3FFF為ROM存儲區(qū)域,從0x4000到0x5FFF為保留地址區(qū)域,暫時不用,從0x6000到0xFFFF為RAM地址區(qū)域。RAM的控制信號為CS#和WE#,CPU的地址線為A15~A0,數(shù)據(jù)線為8位的線路D7~D0,控制信號有讀寫控制R/W#和訪存請求MREQ#,要求:(1)如果ROM和RAM存儲器芯片都采用8K×1的芯片,試畫出存儲器與CPU的連接圖。(2)如果ROM存儲器芯片采用8K×8的芯片,RAM存儲器芯片采用4K×8的芯片,試畫出連接圖。(3)如果ROM存儲器芯片采用16K×8的芯片,RAM存儲器芯片采用4K×8的芯片,試畫出連接圖76解:8KB的存儲區(qū)域可以用8片存儲器芯片構(gòu)成一組實現(xiàn)。8K×1的存儲器芯片的地址線需要13條,即A12~0。0x0000到0x3FFF為ROM存儲區(qū)域,從0x4000到0x5FFF為保留地址區(qū)域,暫時不用,從0x6000到0xFFFF為RAM地址區(qū)域。CPU訪問0~0xFFFF的地址空間需要地址線16根,為A15~A0,數(shù)據(jù)線為8位的線路D7~D07778111111111111110000000000000000000x0000~0x3FFF16K×8ROM0x4000~0x5FFF8K×8RESERVED0x6000~0xFFFF40K×8RAM11111111111110100000000000000010111111111111111100000000000001101、ROM和RAM采用8K×1的芯片79A15-13A12-0111譯碼器011001000OE#D7~D0D7~D0D7~D0D7~D0WEACS8Kx18片ROMDWEACS8Kx18片RAMDWEACS8Kx18片RAMDWEACS8Kx18片ROMDA15-0MREQ#R/W#CPUD7~D080A11-0A11-0A15-13A12-0D7~D0D7~D0D7~D0D7~D0WE

ACS8Kx81片ROMDWEACS8Kx81片ROMDWEACS4Kx81片RAMDWEACS4Kx81片RAMDWEACS4Kx81片RAMDWEACS4Kx81片RAMDA15-0A12MREQ#CPUD7~D0R/W#2、RAM采用4K×8位的芯片&&111譯碼器011001000OE#&&81A11-0A11-0A15-13A12-0D7~D0D7~D0D7~D0WEACS4Kx81片RAMDWEACS4Kx81片RAMDWEACS4Kx81片RAMDWEACS4Kx81片RAMDA15-0A12MREQ#CPUD7~D0R/W#3、ROM采用16K×8位的芯片&&&&WEACS16Kx81片ROMDA13-0111譯碼器011001000OE#≥13.5并行存儲器

由于CPU和主存儲器之間在速度上是不匹配的,這種情況便成為限制高速計算機設(shè)計的主要問題。為了提高CPU和主存之間的數(shù)據(jù)傳輸率,除了主存采用更高速的技術(shù)來縮短讀出時間外,還可以采用并行技術(shù)的存儲器。823.5并行存儲器解決途徑多個存儲器并行工作并行訪問和交叉訪問設(shè)置各種緩沖器通用寄存器采用分層的存儲系統(tǒng)Cache(第6節(jié))虛擬存儲系統(tǒng)(第9章)833.5并行存儲器一、雙端口存儲器1、雙端口存儲器的邏輯結(jié)構(gòu)雙端口存儲器由于同一個存儲器具有兩組相互獨立的讀寫控制電路而得名。由于進行并行的獨立操作,因而是一種高速工作的存儲器,在科研和工程中非常有用。84雙端口存儲器具有兩組相互獨立的讀寫控制線路的存儲器兩組讀寫控制線路可以并行操作當兩個端口地址不相同,無沖突,可以并行存取端口地址相同,發(fā)生讀寫沖突,無法并行存取85存儲體(A0-10)L(D0-15)LBUSYLR/WL(A0-10)R(D0-15)RBUSYRR/WR86雙端口存儲器IDT7133的邏輯框圖。如下圖。3.5并行存儲器2、無沖突讀寫控制當兩個端口的地址不相同時,在兩個端口上進行讀寫操作,一定不會發(fā)生沖突。當任一端口被選中驅(qū)動時,就可對整個存儲器進行存取,每一個端口都有自己的片選控制(CE)和輸出驅(qū)動控制(OE)。讀操作時,端口的OE(低電平有效)打開輸出驅(qū)動器,由存儲矩陣讀出的數(shù)據(jù)就出現(xiàn)在I/O線上。3、有沖突讀寫控制當兩個端口同時存取存儲器同一存儲單元時,便發(fā)生讀寫沖突。為解決此問題,特設(shè)置了BUSY標志。在這種情況下,片上的判斷邏輯可以決定對哪個端口優(yōu)先進行讀寫操作,而對另一個被延遲的端口置BUSY標志(BUSY變?yōu)榈碗娖?,即暫時關(guān)閉此端口。873.5并行存儲器4、有沖突讀寫控制判斷方法(1)如果地址匹配且在CE之前有效,片上的控制邏輯在CEL和CER之間進行判斷來選擇端口(CE判斷)。(2)如果CE在地址匹配之前變低,片上的控制邏輯在左、右地址間進行判斷來選擇端口(地址有效判斷)。無論采用哪種判斷方式,延遲端口的BUSY標志都將置位而關(guān)閉此端口,而當允許存取的端口完成操作時,延遲端口BUSY標志才進行復位而打開此端口。883.5.1雙端口存儲器893.5并行存儲器二、多模塊交叉存儲器:一個由若干個模塊組成的主存儲器是線性編址的。這些地址在各模塊中如何安排,有兩種方式:一種是順序方式,一種是交叉方式

903.5并行存儲器假設(shè)有n個存儲體,每個存儲體的容量為m個存儲單元順序方式:91每個存儲體內(nèi)的地址片選,存儲體選擇3.5并行存儲器1、順序方式[例]M0-M3共四個模塊,則每個模塊8個字順序方式:

M0:0—7

M1:8-15

M2:16-23

M3:24-315位地址組織如下:

XX

XXX高位選模塊,低位選塊內(nèi)地址特點:某個模塊進行存取時,其他模塊不工作,優(yōu)點是某一模塊出現(xiàn)故障時,其他模塊可以照常工作,通過增添模塊來擴充存儲器容量比較方便。缺點是各模塊串行工作,存儲器的帶寬受到了限制。923.5并行存儲器2、交叉方式(可以實現(xiàn)多模塊流水式并行存?。?3每個存儲體內(nèi)的地址片選,存儲體選擇3.5并行存儲器[例]M0-M3共四個模塊,則每個模塊8個字交叉方式:

M0:0,4,...除以4余數(shù)為0

M1:1,5,...除以4余數(shù)為1

M2:2,6,...除以4余數(shù)為2

M3:3,7,...除以4余數(shù)為35位地址組織如下:

XXX

XX高位選塊內(nèi)地址,低位選模塊特點:連續(xù)地址分布在相鄰的不同模塊內(nèi),同一個模塊內(nèi)的地址都是不連續(xù)的。優(yōu)點是對連續(xù)字的成塊傳送可實現(xiàn)多模塊流水式并行存取,大大提高存儲器的帶寬。使用場合為成批數(shù)據(jù)讀取。943.5并行存儲器3、多模塊交叉存儲器的基本結(jié)構(gòu)右圖為四模塊交叉存儲器結(jié)構(gòu)框圖。主存被分成4個相互獨立、容量相同的模塊M0,M1,M2,M3,每個模塊都有自己的讀寫控制電路、地址寄存器和數(shù)據(jù)寄存器,各自以等同的方式與CPU傳送信息。在理想情況下,如果程序段或數(shù)據(jù)塊都是連續(xù)地在主存中存取,那么將大大提高主存的訪問速度。953.5并行存儲器存儲器周期T,總線傳送周期τ,存儲器的交叉模塊數(shù)為m,取啟動間隔為m=T/τ,

(m為交叉存取度)整個存儲器的存取速度有望提高n倍連續(xù)讀出m個字的時間為:采用順序方式存貯器時:96t1=T+(m-1)τ97低位交叉的特點在不改變存取周期的前提下,增加存儲器的帶寬時間

單體訪存周期

單體訪存周期啟動存儲體0啟動存儲體1啟動存儲體2啟動存儲體3例5設(shè)存儲器容量為32字,字長64位,模塊數(shù)m=4,分別用順序方式和交叉方式進行組織。存儲周期T=200ns,數(shù)據(jù)總線寬度為64位,總線傳送周期=50ns。若連續(xù)讀出4個字,問順序存儲器和交叉存儲器的帶寬各是多少?98解:順序存儲器和交叉存儲器連續(xù)讀出m=4個字的信息總量都是:

q=64b×4=256b順序存儲器和交叉存儲器連續(xù)讀出4個字所需的時間分別是:t2=mT=4×200ns=800ns=8×10-7st1=T+(m-1)

τ

=200ns+3×50ns=350ns=3.5×10-7s順序存儲器和交叉存儲器的帶寬分別是:W2=q/t2=256b÷(8×10-7)s=320Mb/sW1=q/t1=256b÷(3.5×10-7)s=730Mb/s99二模塊交叉存儲器舉例100二模塊交叉存儲器舉例101程序局部性程序局部性的實質(zhì)是程序在某段時間內(nèi)僅需要訪問內(nèi)存很小一部分空間。1023.6Cache存儲器3.6Cache存儲器1、基本原理(1)功能:解決CPU和主存之間的速度不匹配問題一般采用高速的SRAM構(gòu)成。CPU和主存之間的速度差別很大采用兩級或多級Cache系統(tǒng)早期的一級Cache在CPU內(nèi),二級在主板上現(xiàn)在的CPU內(nèi)帶L1Cahe和L2Cahe全由硬件調(diào)度,對用戶透明1033.6Cache存儲器104105Cache的讀寫操作

訪問Cache取出信息送CPU

訪問主存取出信息送CPU將新的主存塊調(diào)入Cache中執(zhí)行替換算法騰出空位

結(jié)束命中?Cache滿?CPU發(fā)出訪問地址

開始是否是否讀4.33.6Cache存儲器(2)cache基本原理地址映射:如需訪問的數(shù)據(jù)在cache中,存放在什么地方替換策略:Cache滿了以后如何處理寫一致性:如何保證cache與memory的一致性數(shù)據(jù)查找:如何判斷一個數(shù)據(jù)在cache中性能評價。1063.6Cache存儲器(2)cache基本原理地址映射;替換策略;寫一致性;性能評價。1073.6Cache存儲器cache基本原理小結(jié):cache是介于CPU和主存M之間的小容量存儲器,但存取速度比主存快。主存容量配置幾百MB的情況下,cache的典型值是幾百KB。cache能高速地向CPU提供指令和數(shù)據(jù),從而加快了程序的執(zhí)行速度。從功能上看,它是主存的緩沖存儲器,由高速的SRAM組成。為追求高速,包括管理在內(nèi)的全部功能由硬件實現(xiàn),因而對程序員是透明的。1083.6Cache存儲器cache基本原理小結(jié):Cache的設(shè)計依據(jù):CPU這次訪問過的數(shù)據(jù),下次有很大的可能也是訪問附近的數(shù)據(jù)。CPU與Cache之間的數(shù)據(jù)傳送是以字為單位主存與Cache之間的數(shù)據(jù)傳送是以塊為單位CPU讀主存時,便把地址同時送給Cache和主存,Cache控制邏輯依據(jù)地址判斷此字是否在Cache中,若在此字立即傳送給CPU,否則,則用主存讀周期把此字從主存讀出送到CPU,與此同時,把含有這個字的整個數(shù)據(jù)塊從主存讀出送到cache中。1093.6Cache存儲器(3)Cache的命中率從CPU來看,增加一個cache的目的,就是在性能上使主存的平均讀出時間盡可能接近cache的讀出時間。為了達到這個目的,在所有的存儲器訪問中由cache滿足CPU需要的部分應(yīng)占很高的比例,即cache的命中率應(yīng)接近于1。由于程序訪問的局部性,實現(xiàn)這個目標是可能的。1103.6Cache存儲器在一個程序執(zhí)行期間,設(shè)Nc表示cache完成存取的總次數(shù),Nm表示主存完成存取的總次數(shù),h定義為命中率,則有

h=Nc/(Nc+Nm)若tc表示命中時的cache訪問時間,tm表示未命中時的主存訪問時間,1-h表示未命中率,則cache/主存系統(tǒng)的平均訪問時間ta為:

111我們追求的目標是,以較小的硬件代價使cache/主存系統(tǒng)的平均訪問時間ta越接近tc越好。

ta=h×tc+(1-h)tm3.6Cache存儲器設(shè)r=tm/tc表示主存慢于cache的倍率,e表示訪問效率,則有 e=tc/ta=tc/[h×tc+(1-h)×tm] =1/[h+(1-h)×r]=1/[r+(1-r)×h]由表達式看出,為提高訪問效率,命中率h越接近1越好,r值以5—10為宜,不宜太大。命中率h與程序的行為、cache的容量、組織方式、塊的大小有關(guān)。112例6CPU執(zhí)行一段程序時,cache完成存取

的次數(shù)為1900次,主存完成存取的次數(shù)為

100次,已知cache存取周期為50ns,主存

存取周期為250ns,求cache/主存系統(tǒng)的效

率和平均訪問時間。113公式114命中率

Cache/主存系統(tǒng)的平均訪問時間訪問效率Cache與內(nèi)存的速度比例6解:h=Nc/(Nc+Nm)=1900/(1900+100)=0.95r=tm/tc=250ns/50ns=5e=1/[r+(1-r)h]=1/[5+(1-5)×0.95]=83.3%ta=tc/e=50ns/0.833=60ns1153.6.2主存與cache的地址映射116第0塊第0塊第1塊…………第n-1塊L0L1…Lm-1Cache主存………

如何進行地址映射???3.6.2主存與Cache的地址映射無論選擇那種映射方式,都要把主存和cache劃分為同樣大小的“塊”。選擇哪種映射方式,要考慮:硬件是否容易實現(xiàn)地址變換的速度是否快主存空間的利用率是否高主存裝入一塊時,發(fā)生沖突的概率以下我們介紹三種映射方法117一、全相聯(lián)的映射方式映射方法(多對多)主存內(nèi)容可以拷貝到任意行地址變換標記實際上構(gòu)成了一個目錄表。118Cache的數(shù)據(jù)塊–行,用Li表示,i=0,1,2,…,m-1,共有m=2r行主存的數(shù)據(jù)塊–快,Bj表示,j=0,1,2,…,n-1,共有n=2s塊行和快等大小,由k=2w個連續(xù)的字組成(字:CPU訪問存貯器時可存取的最小單位)。一、全相聯(lián)的映射方式1、將地址分為兩部分(塊號和字地址),在內(nèi)存塊寫入Cache時,同時寫入塊號標記;2、CPU給出訪問地址后,也將地址分為兩部分(塊號和字地址),比較電路塊號與Cache表中的標記進行比較,相同表示命中,訪問相應(yīng)單元;如果沒有命中訪問內(nèi)存,CPU直接訪問內(nèi)存,并將被訪問內(nèi)存的相對應(yīng)塊寫入Cache。119Cache全相聯(lián)映射120第0塊第0塊第1塊…………L0L1…Lm-1Cache主存………主存中任何一塊均可定位于Cache中的任意一塊,可提高命中率,但是硬件開銷增加一、全相

聯(lián)的

映射方式121cache全相聯(lián)映射地址變換122…相聯(lián)存儲器主存塊號Cache塊號塊號比較快存主存主存地址未命中塊表命中Cache地址主存塊號CPU塊內(nèi)地址塊內(nèi)地址一、全相聯(lián)的映射方式3、特點:優(yōu)點:沖突概率小,Cache的利用高。缺點:比較器難實現(xiàn),需要一個訪問速度很快代價高的相聯(lián)存儲器4、應(yīng)用場合:適用于小容量的Cache123二、直接映射方式1、映射方法(多對一)Cache的行號i和主存的塊號j有如下關(guān)系:i=jmodm(m為Cache的總行數(shù))主存第j塊內(nèi)容拷貝到Cache的i行

[例]cache為8行,主存為256塊,則cache的L0行中允許放的主存快為B0,B8,…,B248。如果第一次B0在cache中,下次訪問B8

,則不管cache其他位置的內(nèi)容訪問情況,都會引起塊內(nèi)容的替換124Cache直接相聯(lián)映射125第0塊第0塊第0區(qū)第1塊…第m-1塊第m塊第m+1塊…第2m-1塊第2m塊……第3m-1塊Tag0Tag1…Tagm-1Cache主存……第1區(qū)第2區(qū)主存分割成若干個與cache大小相同的區(qū)Cache塊號i,共m塊,主存塊號ji=jmodm二、直接映射方式2、基本原理利用行號選擇相應(yīng)行;把行標記與CPU訪問地址進行比較,相同表示命中,訪問Cache;如果沒有命中,訪問內(nèi)存,并將相應(yīng)塊寫入Cache126二、直接映射方式3、特點優(yōu)點:比較電路少m倍線路,所以硬件實現(xiàn)簡單。缺點:沖突概率高(抖動)4、應(yīng)用場合適合大容量Cache127三、組相聯(lián)映射方式前兩者的組合Cache分組,組間采用直接映射方式,組內(nèi)采用全相聯(lián)的映射方式Cache分組U組,V行映射方法q=jmodu主存第j塊內(nèi)容拷貝到Cache的q組中的某行地址變換128Cache組相聯(lián)映射129第0塊第0組第0塊第1塊…第m塊第m+1塊2m第2m+1塊……L0L1…Cache主存……第1組組0組1第0區(qū)第2組第3組第1區(qū)Cache分u組,每組v塊q=jmodu3、組相聯(lián)映射方式分析:比全相聯(lián)容易實現(xiàn),沖突低v=1,則為直接相聯(lián)映射方式u=1,則為全相聯(lián)映射方式v的取值一般比較小,一般是2的冪,稱之為v路組相聯(lián)cache.130131例7直接映射方式的內(nèi)存地址格式如下所示:標記s-r行r

字地址w8位14位2位若主存地址用十六進制表示為BBBBBB,用十六進制格式表示直接映射方式Cache的標記、行、字地址的值。解(BBBBBB)16=101110111011101110111011標記s-r=10111011=(BB)16行r=10111011101110=(2EEE)16字地址W=11=(3)16132例8一個組相聯(lián)Cache由64個行組成,每組4行。每塊128字,請表示內(nèi)存地址的格式。解:塊大小=行大小=2w個字=27,w=764個行組成,每組4行,16個組,d=4主存貯器包含4K個塊,s=12標記大小(s-d)=12-4=8主存地址長度s+w=19

標記s-d組號d

字地址w

8位4位7位133例9一個處理器,字長1B,塊大小16B,Cache容量64KB,Cache采用全相聯(lián)映射,對內(nèi)存地址(B0010)給出相應(yīng)的標記和字號。解:塊大小=行大小=16,w=4主存容量1MB,s+w=20,s=16

標記s

字地址w16位4位對于內(nèi)存地址(B0010)16=(10110000000000010000)2對應(yīng)的標記s=1011000000000001,字地址w=00003.6.3替換策略LFU(最不經(jīng)常使用):被訪問的行計數(shù)器增加1,換值小的行,不能反映近期cache的訪問情況.LRU(近期最少使用):被訪問的行計數(shù)器置0,其他的計數(shù)器增加1,換值大的行,符合cache的工作原理134Cache最不經(jīng)常使用算法(LFU)1352211221911164載入載入命中載入命中載入替換t0123220221102211119221111191111602221111619112222122111190422命中221111619222Cache近期最久未使用算法(LRU)1362211221971643載入載入命中載入載入替換替換替換t012322022111022211319122311192714116219737016022161721931112222022111219040303.6.3替換策略隨機替換:隨機替換策略實際上是不要什么算法,從特定的行位置中隨機地選取一行換出即可。這種策略在硬件上容易實現(xiàn),且速度也比前兩種策略快。缺點是隨意換出的數(shù)據(jù)很可能馬上又要使用,從而降低命中率和cache工作效率。但這個不足隨著cache容量增大而減小。隨機替換策略的功效只是稍遜于前兩種策略。1373.6.4寫操作策略由于cache的內(nèi)容只是主存部分內(nèi)容的拷貝,它應(yīng)當與主存內(nèi)容保持一致。而CPU對cache的寫入更改了cache的內(nèi)容。如何與主存內(nèi)容保持一致,可選用如下三種寫操作策略。寫回法:換出時,對行的修改位進行判斷,決定是寫回還是舍掉。全寫法:寫命中時,Cache與內(nèi)存一起寫寫一次法:與寫回法一致,但是第一次Cache命中時采用全寫法。138Cache全相聯(lián)映射寫命中139第0塊第0塊第1塊23456789…126395Cache主存……126塊=126字地址=1比較器命中輸入輸出寄存器輸入輸出寄存器全寫法(writethrough)寫回法(writeback)126Cache全相聯(lián)映射寫失效140第0塊第0塊第1塊23456789…1395Cache主存……126塊=126字地址=1比較器未命中輸入輸出寄存器126WTWAWTNWA141

Cache的改進(1)增加Cache的級數(shù)片載(片內(nèi))Cache片外Cache(2)統(tǒng)一緩存和分立緩存指令Cache數(shù)據(jù)Cache與主存結(jié)構(gòu)有關(guān)與指令執(zhí)行的控制方式有關(guān)是否流水Pentium8K指令Cache

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論