第三章 內(nèi)部存儲(chǔ)器_第1頁(yè)
第三章 內(nèi)部存儲(chǔ)器_第2頁(yè)
第三章 內(nèi)部存儲(chǔ)器_第3頁(yè)
第三章 內(nèi)部存儲(chǔ)器_第4頁(yè)
第三章 內(nèi)部存儲(chǔ)器_第5頁(yè)
已閱讀5頁(yè),還剩164頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

計(jì)算機(jī)組成原理

第三章內(nèi)部存儲(chǔ)器王健2010-6-3學(xué)習(xí)重點(diǎn)存儲(chǔ)器的分類SRAM、DRAM存儲(chǔ)器原理和區(qū)別存儲(chǔ)器容量的擴(kuò)充方法只讀存儲(chǔ)器的分類和各自擦寫方式閃速存儲(chǔ)器的特點(diǎn)Cache存儲(chǔ)器基本原理主存與Cache的地址映射第三章內(nèi)部存儲(chǔ)器3.1存儲(chǔ)器概述3.2SRAM存儲(chǔ)器3.3DRAM存儲(chǔ)器3.4只讀存儲(chǔ)器和閃速存儲(chǔ)器3.5并行存儲(chǔ)器補(bǔ)充:相聯(lián)存儲(chǔ)器3.6Cache存儲(chǔ)器3.1存儲(chǔ)器概述一、分類按存儲(chǔ)介質(zhì)分類:半導(dǎo)體存儲(chǔ)器、磁表面存儲(chǔ)器、光存儲(chǔ)器按存取方式分類:隨機(jī)存取、順序存?。ù艓В?、半順序存?。ù疟P)按存儲(chǔ)內(nèi)容可變性分類:

ROM、RAM按信息的易失性分類: 易失性和非易失性 (非永久性和永久性的)按系統(tǒng)中的作用分類:內(nèi)部存儲(chǔ)器、外部存儲(chǔ)器主存、輔存、高速緩存、控制存儲(chǔ)器3.1存儲(chǔ)器概述二、存儲(chǔ)器分級(jí)結(jié)構(gòu)

1、目前存儲(chǔ)器的特點(diǎn)是:速度快的存儲(chǔ)器價(jià)格貴,容量小價(jià)格低的存儲(chǔ)器速度慢,容量大

在計(jì)算機(jī)存儲(chǔ)器體系結(jié)構(gòu)設(shè)計(jì)時(shí),在存儲(chǔ)器容量,速度和價(jià)格方面的因素作折中考慮,建立了分層次的存儲(chǔ)器體系結(jié)構(gòu)如下圖所示。3.1.2存儲(chǔ)器分級(jí)結(jié)構(gòu)2、分級(jí)結(jié)構(gòu)高速緩沖存儲(chǔ)器簡(jiǎn)稱cache,它是一個(gè)高速小容量半導(dǎo)體存儲(chǔ)器。主存儲(chǔ)器簡(jiǎn)稱主存,用來(lái)存放計(jì)算機(jī)運(yùn)行期間的大量程序和數(shù)據(jù)。外存儲(chǔ)器簡(jiǎn)稱外存,它是大容量輔助存儲(chǔ)器。3.1.2存儲(chǔ)器分級(jí)結(jié)構(gòu)分層存儲(chǔ)器系統(tǒng)之間的連接關(guān)系3.1.3主存儲(chǔ)器的技術(shù)指標(biāo)字存儲(chǔ)單元:存放一個(gè)機(jī)器字的存儲(chǔ)單元,相應(yīng)的單元地址叫字地址。字節(jié)存儲(chǔ)單元:存放一個(gè)字節(jié)的單元,相應(yīng)的地址稱為字節(jié)地址。存儲(chǔ)容量:指一個(gè)存儲(chǔ)器中可以容納的存儲(chǔ)單元總數(shù)。存取時(shí)間:又稱存儲(chǔ)器訪問時(shí)間:指一次讀操作命令發(fā)出到該操作完成,將數(shù)據(jù)讀出到數(shù)據(jù)總線上所經(jīng)歷的時(shí)間。通常取寫操作時(shí)間等于讀操作時(shí)間,故稱為存儲(chǔ)器存取時(shí)間。存儲(chǔ)周期:指連續(xù)啟動(dòng)兩次讀操作所需間隔的最小時(shí)間。通常,存儲(chǔ)周期略大于存取時(shí)間,其時(shí)間單位為ns。存儲(chǔ)器帶寬:?jiǎn)挝粫r(shí)間里存儲(chǔ)器所存取的信息量,通常以位/秒或字節(jié)/秒做度量單位。課外閱讀:時(shí)間單位毫秒ms(千分之一秒)

典型照相機(jī)的最短曝光時(shí)間為一毫秒。一只家蠅每三毫秒扇一次翅膀;蜜蜂則每五毫秒扇一次。由于月亮繞地球的軌道逐漸變寬,它繞一圈所需的時(shí)間每年長(zhǎng)兩毫秒。微秒μs

(百萬(wàn)分之一秒)

光在這個(gè)時(shí)間里可以傳播300米,大約是3個(gè)足球場(chǎng)的長(zhǎng)度,但是海平面上的聲波只能傳播1/3毫米。高速的商業(yè)頻閃儀閃爍一次大約持續(xù)1微秒。一筒炸藥在它的引信燒完之后大約24微秒開始爆炸。納秒ns(十億分之一秒)

光在真空中一納秒僅傳播30厘米(不足一個(gè)步長(zhǎng))。個(gè)人電腦的微處理器執(zhí)行一道指令(如將兩數(shù)相加)約需2至4納秒。另一種罕見的亞原子粒子K介子的存在時(shí)間為12納秒。皮秒ps(十億分之一秒的千分之一)

最快晶體管的運(yùn)行以皮秒計(jì)。一種高能加速器產(chǎn)生的罕見亞原子粒子b夸克在衰變之前可存在1皮秒。室溫下水分子間氫鍵的平均存在時(shí)間是3皮秒。飛秒fs(十億分之一秒的百萬(wàn)分之一)

一個(gè)分子里的一個(gè)原子完成一次典型振動(dòng)需要10到100飛秒。完成快速化學(xué)反應(yīng)通常需要數(shù)百飛秒。光與視網(wǎng)膜上色素的相互作用(產(chǎn)生視覺的過程)約需200飛秒。渺秒(十億分之一秒的十億分之一)

科學(xué)家是用渺秒來(lái)對(duì)瞬時(shí)事件進(jìn)行計(jì)時(shí)的。

研究人員已經(jīng)用穩(wěn)定的高速激光產(chǎn)生了僅持續(xù)250渺秒的光脈沖。盡管這一時(shí)間間隔短得無(wú)法想像,但是和普朗克常數(shù)相比還是很長(zhǎng)的。普朗克常數(shù)大約為10-43秒,被認(rèn)為是可能持續(xù)的最短時(shí)間。

返回目錄3.2SRAM存儲(chǔ)器主存(內(nèi)部存儲(chǔ)器)是半導(dǎo)體存儲(chǔ)器。根據(jù)信息存儲(chǔ)的機(jī)理不同可以分為兩類:靜態(tài)讀寫存儲(chǔ)器(SRAM):存取速度快,存儲(chǔ)容量不如DRAM大。動(dòng)態(tài)讀寫存儲(chǔ)器(DRAM):3.2SRAM存儲(chǔ)器一、基本的靜態(tài)存儲(chǔ)元陣列1、存儲(chǔ)位元【下頁(yè)圖】2、三組信號(hào)線地址線(圖中為單譯碼,僅有行線)數(shù)據(jù)線(4根)控制線(控制讀寫)3.2SRAM存儲(chǔ)器二、基本的SRAM邏輯結(jié)構(gòu)SRAM芯大多采用雙譯碼方式,以便組織更大的存儲(chǔ)容量。采用二級(jí)譯碼:將地址分成x向、y向兩部分如圖所示。3.2SRAM存儲(chǔ)器存儲(chǔ)體(256×128×8)通常把各個(gè)字的同一個(gè)字的同一位集成在一個(gè)芯片(32K×1)中,32K位排成256×128的矩陣。8個(gè)片子就可以構(gòu)成32KB。地址譯碼器采用雙譯碼的方式(減少選擇線的數(shù)目)。A0~A7為行地址譯碼線A8~A14為列地址譯碼線讀與寫的互鎖邏輯

CS是片選信號(hào)(低電平有效)

OE為讀出使能信號(hào) 當(dāng)WE=1時(shí)(高電平),存儲(chǔ)器進(jìn)行讀操作。WE=0時(shí)進(jìn)行寫操作注意,門G1和G2是互鎖的,一個(gè)開啟時(shí)另一個(gè)必定關(guān)閉,這樣保證了讀時(shí)不寫,寫時(shí)不讀。三、存儲(chǔ)器的讀寫周期讀周期讀出時(shí)間tAQ讀周期時(shí)間tRC寫周期寫周期時(shí)間tWC寫時(shí)間tWD存取周期讀周期時(shí)間tRC=寫時(shí)間tWDP70例1:圖3.5(a)是SRAM的寫入時(shí)序圖。其中R/W是讀/寫命令控制線,當(dāng)R/W線為低電平時(shí),存儲(chǔ)器按給定地址把數(shù)據(jù)線上的數(shù)據(jù)寫入存儲(chǔ)器。請(qǐng)指出圖3.5(a)寫入時(shí)序中的錯(cuò)誤,并畫出正確的寫入時(shí)序圖。返回目錄3.3DRAM存儲(chǔ)器一、DRAM存儲(chǔ)位元的記憶原理

SRAM存儲(chǔ)器的存儲(chǔ)位元是一個(gè)觸發(fā)器,它具有兩個(gè)穩(wěn)定的狀態(tài)。而DRAM存儲(chǔ)器的存儲(chǔ)位元是由一個(gè)MOS晶體管和電容器組成的記憶電路,如圖3.6所示。MOS晶體管:金屬氧化物半導(dǎo)體晶體管,或金屬氧化物半導(dǎo)體場(chǎng)效應(yīng)管(MOSFET)三極管MOS管3.3DRAM存儲(chǔ)器 場(chǎng)效應(yīng)管(MOS管)的名字也來(lái)源于它的輸入端(稱為Gate)通過投影一個(gè)電場(chǎng)在一個(gè)絕緣層上來(lái)影響流過晶體管的電流。MOS管做為開關(guān)使用,而所存儲(chǔ)的信息1或0則是由電容器上的電荷量來(lái)體現(xiàn)——當(dāng)電容器充滿電荷時(shí),代表存儲(chǔ)了1,當(dāng)電容器放電沒有電荷時(shí),代表存儲(chǔ)了0。3.3DRAM存儲(chǔ)器二、DRAM芯片的邏輯結(jié)構(gòu) 下面我們通過一個(gè)例子來(lái)看一下動(dòng)態(tài)存儲(chǔ)器的邏輯結(jié)構(gòu)。圖3.7(a)為1M×4位DRAM芯片的管腳圖,其中有兩個(gè)電源腳、兩個(gè)地線腳,為了對(duì)稱,還有一個(gè)空腳(NC)。圖3.7(b)是該芯片的邏輯結(jié)構(gòu)圖。與SRAM不同的是: (1)增加了行地址鎖存器和列地址鎖存器。由于DRAM存儲(chǔ)器容量很大,地址線寬度相應(yīng)要增加,這勢(shì)必增加芯片地址線的管腳數(shù)目。為避免這種情況,采取的辦法是分時(shí)傳送地址碼。 若地址總線寬度為10位,先傳送地址碼A0~A9,由行選通信號(hào)RAS打入到行地址鎖存器;然后傳送地址碼A10~A19,由列選通信號(hào)CRS打入到列地址鎖存器。芯片內(nèi)部?jī)刹糠趾掀饋?lái),地址線寬度達(dá)20位,存儲(chǔ)容量為1M×4位。 (2)增加了刷新計(jì)數(shù)器和相應(yīng)的控制電路。DRAM讀出后必須刷新,而未讀寫的存儲(chǔ)元也要定期刷新,而且要按行刷新,所以刷新計(jì)數(shù)器的長(zhǎng)度等于行地址鎖存器。刷新操作與讀/寫操作是交替進(jìn)行的,所以通過2選1多路開關(guān)來(lái)提供刷新行地址或正常讀/寫的行地址。DRAM芯片的管腳和邏輯結(jié)構(gòu)DRAM的讀/寫三、讀/寫周期讀周期、寫周期的定義是從行選通信號(hào)RAS下降沿開始,到下一個(gè)RAS信號(hào)的下降沿為止的時(shí)間,也就是連續(xù)兩個(gè)讀周期的時(shí)間間隔。通常為控制方便,讀周期和寫周期時(shí)間相等。DRAM讀/寫周期時(shí)序DRAM的刷新四、刷新周期刷新周期:DRAM存儲(chǔ)位元是基于電容器上的電荷量存儲(chǔ),這個(gè)電荷量隨著時(shí)間和溫度而減少,因此必須定期地刷新,以保持它們?cè)瓉?lái)記憶的正確信息。刷新操作有兩種刷新方式:集中式刷新:DRAM的所有行在每一個(gè)刷新周期中都被刷新。例如刷新周期為8ms的內(nèi)存來(lái)說,所有行的集中式刷新必須每隔8ms進(jìn)行一次。為此將8ms時(shí)間分為兩部分:前一段時(shí)間進(jìn)行正常的讀/寫操作,后一段時(shí)間(8ms-正常讀/寫周期時(shí)間)做為集中刷新操作時(shí)間。分散式刷新(異步):每一行的刷新插入到正常的讀/寫周期之中。例如P72圖3.7所示的DRAM有1024行,如果刷新周期為8ms,則每一行必須每隔8ms÷1024=7.8μs進(jìn)行一次。五、存儲(chǔ)器容量的擴(kuò)充1、字長(zhǎng)位數(shù)擴(kuò)展(位擴(kuò)展)

給定的芯片字長(zhǎng)位數(shù)較短,不滿足設(shè)計(jì)要求的存儲(chǔ)器字長(zhǎng),此時(shí)需要用多片給定芯片擴(kuò)展字長(zhǎng)位數(shù)。三組信號(hào)線中,地址線和控制線公用而數(shù)據(jù)線單獨(dú)分開連接。芯片個(gè)數(shù)d=設(shè)計(jì)要求的存儲(chǔ)器容量/選擇芯片存儲(chǔ)器容量[例2]利用1M×4位的SRAM芯片,設(shè)計(jì)一個(gè)存儲(chǔ)容量為1M×8位的SRAM存儲(chǔ)器。

解:位擴(kuò)展所需芯片數(shù)量

(1M×8)/(1M×4)=2(片)CSWEI/OA0A13CSWEI/OA0A13存儲(chǔ)器的容量擴(kuò)展位擴(kuò)展:進(jìn)行位數(shù)的擴(kuò)充(加大字長(zhǎng))連接方式:將多片存儲(chǔ)芯片的地址、片選、讀寫控制端并聯(lián),數(shù)據(jù)端單獨(dú)引出。例:16K*1位芯片擴(kuò)展為16K*8位的存儲(chǔ)器A0A13A0A13CSWEI/OA0A13CSWEI/OCSWEI/OCSWEI/OA0A13CSWEI/OA0A13CSWEI/OA0A13CSWEI/OA0A13CSWEI/OA0A13CSWEA0A13D0D1D2D3D4D5D6D7位擴(kuò)展:進(jìn)行位數(shù)的擴(kuò)充(加大字長(zhǎng))連接方式:將多片存儲(chǔ)芯片的地址、片選、讀寫控制端并聯(lián),數(shù)據(jù)端單獨(dú)引出。例:16K*1位芯片擴(kuò)展為16K*8位的存儲(chǔ)器存儲(chǔ)器的容量擴(kuò)展3.3DRAM存儲(chǔ)器2、字存儲(chǔ)容量擴(kuò)展(字?jǐn)U展)給定的芯片存儲(chǔ)容量較?。ㄗ?jǐn)?shù)少),不滿足設(shè)計(jì)要求的總存儲(chǔ)容量,此時(shí)需要用多片給定芯片來(lái)擴(kuò)展字?jǐn)?shù)。三組信號(hào)組中給定芯片的地址總線和數(shù)據(jù)總線公用,控制總線中R/W公用,使能端EN不能公用,它由地址總線的高位段譯碼來(lái)決定片選信號(hào)。所需芯片數(shù)仍由(d=設(shè)計(jì)要求的存儲(chǔ)器容量/選擇芯片存儲(chǔ)器容量)決定。[例3]利用1M×8位的DRAM芯片設(shè)計(jì)2M×8位的DRAM存儲(chǔ)器解:字?jǐn)U展所需芯片數(shù)(2M×8)/(1M×8)=2(片)【例】使用一種16K×8位的存儲(chǔ)器芯片構(gòu)成64K×8位的主存儲(chǔ)器3.字位同時(shí)擴(kuò)展

字位同時(shí)擴(kuò)展是從存儲(chǔ)芯片的位數(shù)和容量?jī)蓚€(gè)方面進(jìn)行擴(kuò)展。在構(gòu)成一個(gè)存儲(chǔ)系統(tǒng)時(shí),如果存儲(chǔ)器芯片的字長(zhǎng)和容量均不符合存儲(chǔ)器系統(tǒng)的要求,此時(shí)需要用多個(gè)芯片同時(shí)進(jìn)行位擴(kuò)展和字?jǐn)U展,以滿足系統(tǒng)的要求。進(jìn)行字位擴(kuò)展時(shí),通常是先做位擴(kuò)展,按存儲(chǔ)器字長(zhǎng)要求構(gòu)成芯片組,再對(duì)這樣的芯片組進(jìn)行字?jǐn)U展,使總的存儲(chǔ)容量滿足要求。用32M×32位的存儲(chǔ)器芯片構(gòu)成256M×64位的存儲(chǔ)體,計(jì)算需多少塊芯片,畫出組織結(jié)構(gòu)圖,并在圖上標(biāo)明相應(yīng)連線及數(shù)量。解:所需芯片總數(shù)為(256M×64位)÷(32M×32位)=8×2=16(片)因此存儲(chǔ)器可分為8個(gè)模塊,每個(gè)模塊容量32M×64位,每個(gè)模塊由2片32M×32位的存儲(chǔ)器芯片構(gòu)成。共需地址線28條,其中A0-A24用于模塊內(nèi)尋址,A25-A27通過3:8譯碼器進(jìn)行各模塊的選擇。3.3DRAM存儲(chǔ)器3、存儲(chǔ)器模塊條存儲(chǔ)器通常以插槽用模塊條形式供應(yīng)市場(chǎng)。這種模塊條常稱為內(nèi)存條,它們是在一個(gè)條狀形的小印制電路板上,用一定數(shù)量的存儲(chǔ)器芯片,組成一個(gè)存儲(chǔ)容量固定的存儲(chǔ)模塊。如圖所示。內(nèi)存條有30腳、72腳、100腳、144腳、168腳等多種形式。30腳內(nèi)存條設(shè)計(jì)成8位數(shù)據(jù)線,存儲(chǔ)容量從256KB~32MB。72腳內(nèi)存條設(shè)計(jì)成32位數(shù)據(jù)總線100腳以上內(nèi)存條既用于32位數(shù)據(jù)總線又用于64位數(shù)據(jù)總線,存儲(chǔ)容量從4MB~512MB。3.3DRAM存儲(chǔ)器六、高級(jí)的DRAM結(jié)構(gòu)FPMDRAM:快速頁(yè)模式動(dòng)態(tài)存儲(chǔ)器,它是根據(jù)程序的局部性原理來(lái)實(shí)現(xiàn)的。在選定的一行中對(duì)每一個(gè)列地址進(jìn)行連續(xù)快速的讀操作或?qū)懖僮?。RAS確定行地址,然后由低電平的列選信號(hào)CAS確定各個(gè)列地址。依此類推,時(shí)序圖如下圖所示。3.3DRAM存儲(chǔ)器CDRAM帶高速緩沖存儲(chǔ)器(cache)的動(dòng)態(tài)存儲(chǔ)器,它是在通常的DRAM芯片內(nèi)又集成了一個(gè)小容量的SRAM,從而使DRAM芯片的性能得到顯著改進(jìn)。如圖所示出1M×4位CDRAM芯片的結(jié)構(gòu)框圖,其中SRAM為512×4位。3.3DRAM存儲(chǔ)器SDRAM同步型動(dòng)態(tài)存儲(chǔ)器。計(jì)算機(jī)系統(tǒng)中的CPU使用的是系統(tǒng)時(shí)鐘,SDRAM的操作要求與系統(tǒng)時(shí)鐘相同步,在系統(tǒng)時(shí)鐘的控制下從CPU獲得地址、數(shù)據(jù)和控制信息。換句話說,它與CPU的數(shù)據(jù)交換同步于外部的系統(tǒng)時(shí)鐘信號(hào),并且以CPU/存儲(chǔ)器總線的最高速度運(yùn)行,而不需要插入等待狀態(tài)。其原理和時(shí)序關(guān)系見下一頁(yè)圖。【課后閱讀】3.3DRAM存儲(chǔ)器[例4]CDRAM內(nèi)存條組成實(shí)例。 一片CDRAM的容量為1M×4位,8片這樣的芯片可組成1M×32位4MB的存儲(chǔ)模塊,其組成如下圖所示。3.3DRAM存儲(chǔ)器七、DRAM主存讀/寫的正確性校驗(yàn)

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

ROM叫做只讀存儲(chǔ)器。顧名思義,只讀的意思是在它工作時(shí)只能讀出,不能寫入。然而其中存儲(chǔ)的原始數(shù)據(jù),必須在它工作以前寫入。只讀存儲(chǔ)器由于工作可靠,保密性強(qiáng),在計(jì)算機(jī)系統(tǒng)中得到廣泛的應(yīng)用。主要有兩類:掩模ROM:掩模ROM實(shí)際上是一個(gè)存儲(chǔ)內(nèi)容固定的ROM,由生產(chǎn)廠家提供寫好內(nèi)容的產(chǎn)品。可編程ROM:用戶可根據(jù)需要寫入內(nèi)容,有些可以多次寫入。一次性編程的PROM多次編程的

EPROM和E2PROM3.4只讀存儲(chǔ)器和閃速存儲(chǔ)器1、掩模ROM的陣列結(jié)構(gòu)和存儲(chǔ)元3.4只讀存儲(chǔ)器和閃速存儲(chǔ)器2、掩模ROM的邏輯符號(hào)和內(nèi)部邏輯框圖3.4只讀存儲(chǔ)器和閃速存儲(chǔ)器3、可編程ROMEPROM叫做光擦除可編程可讀存儲(chǔ)器。它的存儲(chǔ)內(nèi)容可以根據(jù)需要寫入,當(dāng)需要更新時(shí)將原存儲(chǔ)內(nèi)容抹去,再寫入新的內(nèi)容?,F(xiàn)以浮柵雪崩注入型MOS管為存儲(chǔ)元的EPROM為例進(jìn)行說明,結(jié)構(gòu)如圖所示。

3.4只讀存儲(chǔ)器和閃速存儲(chǔ)器現(xiàn)以浮柵雪崩注入型MOS管為存儲(chǔ)元的EPROM為例進(jìn)行說明,結(jié)構(gòu)如圖(a)所示,圖(b)是電路符號(hào)。若在漏極D端加上約幾十伏的脈沖電壓,使得溝道中的電場(chǎng)足夠強(qiáng),則會(huì)造成雪崩,產(chǎn)生很多高能量電子。此時(shí),若在G2柵上加上正電壓,形成方向與溝道垂直的電場(chǎng),便可使溝道中的電子穿過氧化層而注入到G1柵,從而使G1柵積累負(fù)電荷。由于G1柵周圍都是絕緣的二氧化硅層,泄漏電流極小,所以一旦電子注入到G1柵后,就能長(zhǎng)期保存。

3.4只讀存儲(chǔ)器和閃速存儲(chǔ)器當(dāng)G1柵有電子積累時(shí),該MOS管的開啟電壓變得很高,即使G2柵為高電平,該管仍不能導(dǎo)通,相當(dāng)于存儲(chǔ)了“0”。反之,G1柵無(wú)電子積累時(shí),MOS管的開啟電壓較低,當(dāng)G2柵為高電平時(shí),該管可以導(dǎo)通,相當(dāng)于存儲(chǔ)了“1”。圖(d)示出了讀出時(shí)的電路,它采用二維譯碼方式:x地址譯碼器的輸出行線與G2柵極相連,以決定T2管是否選中;y地址譯碼器的輸出列線與T1管柵極相連,控制其數(shù)據(jù)是否讀出。當(dāng)片選信號(hào)CS為高電平即該片選中時(shí),方能讀出數(shù)據(jù)。3.4只讀存儲(chǔ)器和閃速存儲(chǔ)器這種器件的上方有一個(gè)石英窗口,如圖(c)所示。當(dāng)用光子能量較高的紫外光照射G1浮柵時(shí),G1中電子獲得足夠能量,從而穿過氧化層回到襯底中,如圖(e)所示。這樣可使浮柵上的電子消失,達(dá)到抹去存儲(chǔ)信息的目的,相當(dāng)于存儲(chǔ)器又存了全“1”。3.4只讀存儲(chǔ)器和閃速存儲(chǔ)器這種EPROM出廠時(shí)為全“1”狀態(tài),使用者可根據(jù)需要寫“0”。寫“0”電路如圖(f)所示,行和列選擇線為高電位,P端加20多伏的正脈沖,脈沖寬度為0.1~1ms。EPROM可以多次重寫。抹去時(shí),用40W紫外燈,相距2cm,照射幾分鐘即可。3.4只讀存儲(chǔ)器和閃速存儲(chǔ)器E2PROM(EEPROM)存儲(chǔ)元

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

FLASH存儲(chǔ)器也翻譯成閃速存儲(chǔ)器,它是高密度非失易失性的讀/寫存儲(chǔ)器。高密度意味著它具有巨大比特?cái)?shù)目的存儲(chǔ)容量。非易失性意味著存放的數(shù)據(jù)在沒有電源的情況下可以長(zhǎng)期保存。閃存存取比較快速,無(wú)噪音,散熱小??傊?,它既有RAM的優(yōu)點(diǎn),又有ROM的優(yōu)點(diǎn),是一種很有發(fā)展前途的存儲(chǔ)技術(shù)。閃存卡(FlashCard)是利用閃存(FlashMemory)技術(shù)達(dá)到存儲(chǔ)電子信息的存儲(chǔ)器,一般應(yīng)用在U盤、數(shù)碼相機(jī)、手機(jī)、MP3、掌上游戲機(jī)等小型數(shù)碼產(chǎn)品中作為存儲(chǔ)介質(zhì),所以樣子小巧,有如一張卡片,所以稱之為閃存卡。根據(jù)不同的生產(chǎn)廠商和不同的應(yīng)用,閃存卡大概有六大類十二小類:SD卡(SecureDigital)/MiniSD

卡CF卡(CompactFlash)/T-flash卡MMC卡(MultiMediaCard)XD卡(XD-PictureCard)SM卡(SmartMedia)SONY記憶棒(SONYMemoryStick)這些閃存卡雖然外觀、規(guī)格不同,但是技術(shù)原理都是相似的。另外,數(shù)碼產(chǎn)品中有些也用微硬盤(MICRODRIVE)SD卡(SecureDigitalMemoryCard)是一種基于閃存的新一代記憶設(shè)備。SD卡由日本松下、東芝及美國(guó)SanDisk公司于1999年8月共同開發(fā)研制。大小猶如一張郵票的SD記憶卡,重量只有2克,但卻擁有高記憶容量、快速數(shù)據(jù)傳輸率、極大的移動(dòng)靈活性以及很好的安全性。CF卡(CompactFlash)是1994年由SanDisk公司最先推出的。CF卡具有PCMCIA-ATA功能,并與之兼容;CF卡重量只有14g,僅火柴盒般大?。?3mmx36mmx3.3mm)。MMC(MultiMediaCard)卡由西門子公司和首推CF的SanDisk公司于1997年推出。1998年1月十四家公司聯(lián)合成立了MMC協(xié)會(huì)(MultiMediaCardAssociation簡(jiǎn)稱MMCA),現(xiàn)在已經(jīng)有超過84個(gè)成員,外形跟SD卡差不多。少了幾根針腳。XD卡全稱為XD-PICTURECARD,是由富士和奧林巴斯聯(lián)合推出的專為數(shù)碼相機(jī)使用的小型存儲(chǔ)卡,采用單面18針接口,是目前體積最小的存儲(chǔ)卡。XD取自于“ExtremeDigital”,是“極限數(shù)字”的意思。XD卡是較為新型的閃存卡,相比于其它閃存卡,它擁有眾多的優(yōu)勢(shì)特點(diǎn)。袖珍的外形尺寸,外形尺寸為20mm×25mm×1.7mm,總體積只有0.85立方厘米,約為2克重,是目前世界上最為輕便、體積最小的數(shù)字閃存卡.SM(SmartMedia)卡是由東芝公司在1995年11月發(fā)布的FlashMemory存儲(chǔ)卡,三星公司在1996年購(gòu)買了生產(chǎn)和銷售許可,這兩家公司成為主要的SM卡廠商。SM卡的尺寸為37mm×45mm×0.76mm,由于SM卡本身沒有控制電路,而且由塑膠制成(被分成了許多薄片),因此SM卡的體積小非常輕薄。Sony記憶棒(MemoryStick):索尼一向獨(dú)來(lái)獨(dú)往的性格造就了記憶棒的誕生。這種口香糖型的存儲(chǔ)設(shè)備幾乎可以在所有的索尼影音產(chǎn)品上通用,但與其他公司的數(shù)碼設(shè)備不兼容。3.4只讀存儲(chǔ)器和閃速存儲(chǔ)器FLASH存儲(chǔ)元在E2PROM存儲(chǔ)元基礎(chǔ)上發(fā)展起來(lái)的,由此可以看出創(chuàng)新與繼承的關(guān)系。如圖所示為閃速存儲(chǔ)器中的存儲(chǔ)元,由單個(gè)MOS晶體管組成,除漏極D和源極S外,還有一個(gè)控制柵和浮空柵。3.4只讀存儲(chǔ)器和閃速存儲(chǔ)器“0”狀態(tài):當(dāng)控制柵加上足夠的正電壓時(shí),浮空柵將儲(chǔ)存許多電子帶負(fù)電,這意味著浮空柵上有很多負(fù)電荷,這種情況我們定義存儲(chǔ)元處于0狀態(tài)?!?”狀態(tài):如果控制柵不加正電壓,浮空柵則只有少許電子或不帶電荷,這種情況我們定義為存儲(chǔ)元處于1狀態(tài)。浮空柵上的電荷量決定了讀取操作時(shí),加在柵極上的控制電壓能否開啟MOS管,并產(chǎn)生從漏極D到源極S的電流。

3.4只讀存儲(chǔ)器和閃速存儲(chǔ)器編程操作:實(shí)際上是寫“0”操作。所有存儲(chǔ)元的原始狀態(tài)或擦除擦除后均處“1”狀態(tài)。編程操作的目的是為存儲(chǔ)元的浮空柵補(bǔ)充電子,從而使存儲(chǔ)元改寫成“0”狀態(tài)。如果某存儲(chǔ)元仍保持“1”狀態(tài),則控制柵就不加正電壓。如圖(a)表示編程操作時(shí)存儲(chǔ)元寫0、寫1的情況。實(shí)際上編程時(shí)只寫0,不寫1,因?yàn)榇鎯?chǔ)元擦除后原始狀態(tài)全為1。要寫0,就是要在控制柵C上加正電壓。一旦存儲(chǔ)元被編程,存儲(chǔ)的數(shù)據(jù)可保持100年之久而無(wú)需外電源。3.4只讀存儲(chǔ)器和閃速存儲(chǔ)器讀取操作:控制柵加上正電壓。浮空柵上的負(fù)電荷量將決定是否可以開啟MOS晶體管。如果存儲(chǔ)元原存1,可認(rèn)為浮空柵不帶負(fù)電,控制柵上的正電壓足以開啟晶體管。如果存儲(chǔ)元原存0,可認(rèn)為浮空柵帶負(fù)電,控制柵上的正電壓不足以克服浮動(dòng)?xùn)派系呢?fù)電量,晶體管不能開啟導(dǎo)通。當(dāng)MOS晶體管開啟導(dǎo)通時(shí),電源VD提供從漏極D到源極S的電流。讀出電路檢測(cè)到有電流,表示存儲(chǔ)元中存1,若讀出電路檢測(cè)到無(wú)電流,表示存儲(chǔ)元中存0,如圖(b)所示。3.4只讀存儲(chǔ)器和閃速存儲(chǔ)器擦除操作:所有的存儲(chǔ)元中浮空柵上的負(fù)電荷要全部洩放出去。為此晶體管源極S加上正電壓,這與編程操作正好相反,見圖(c)所示。源極S上的正電壓吸收浮空柵中的電子,從而使全部存儲(chǔ)元變成1狀態(tài)。3.4只讀存儲(chǔ)器和閃速存儲(chǔ)器FLASH存儲(chǔ)器的陣列結(jié)構(gòu)FLASH存儲(chǔ)器的簡(jiǎn)化陣列結(jié)構(gòu)如圖所示。在某一時(shí)間只有一條行選擇線被激活。讀操作時(shí),假定某個(gè)存儲(chǔ)元原存1,那么晶體管導(dǎo)通,與它所在位線接通,有電流通過位線,所經(jīng)過的負(fù)載上產(chǎn)生一個(gè)電壓降。這個(gè)電壓降送到比較器的一個(gè)輸入端,與另一端輸入的參照電壓做比較,比較器輸出一個(gè)標(biāo)志為邏輯1的電平。如果某個(gè)存儲(chǔ)元原先存0,那么晶體管不導(dǎo)通,位線上沒有電流,比較器輸出端則產(chǎn)生一個(gè)標(biāo)志為邏輯0的電平。補(bǔ)充說明閃速存儲(chǔ)器還分AND、NAND、NOR、DiNOR等類型,常用NOR型與NAND型兩種。它們的區(qū)別很大,打個(gè)比方說,NOR型閃存更像內(nèi)存,有獨(dú)立的地址線和數(shù)據(jù)線,但價(jià)格比較貴,容量比較?。欢鳱AND型更像硬盤,地址線和數(shù)據(jù)線是共用的I/O線,類似硬盤的所有信息都通過一組硬盤線傳送。另外NAND型比NOR型閃存成本要低一些,而容量大得多。NOR型閃存比較適合頻繁隨機(jī)讀寫的場(chǎng)合,通常用于存儲(chǔ)程序代碼并直接在閃存內(nèi)運(yùn)行;NAND型閃存主要用來(lái)存儲(chǔ)資料,我們常用的閃存產(chǎn)品,如U盤、數(shù)碼存儲(chǔ)卡都是用NAND型閃存。NAND型閃存的操作方式效率低,這和它的架構(gòu)設(shè)計(jì)和接口設(shè)計(jì)有關(guān),它操作起來(lái)像硬盤(其實(shí)NAND型閃存在設(shè)計(jì)之初確實(shí)考慮了與硬盤的兼容性),它的性能特點(diǎn)也很像硬盤:小數(shù)據(jù)塊操作速度很慢,而大數(shù)據(jù)塊速度就很快。內(nèi)存和NOR型閃存的基本存儲(chǔ)單元是bit,用戶可以隨機(jī)訪問任何一個(gè)bit的信息。NAND型閃存的基本存儲(chǔ)單元是頁(yè)(Page)(可以看到,NAND型閃存的頁(yè)就類似硬盤的扇區(qū),硬盤的一個(gè)扇區(qū)也為512字節(jié))。每一頁(yè)的有效容量是512字節(jié)的倍數(shù)。所謂的有效容量是指用于數(shù)據(jù)存儲(chǔ)的部分,實(shí)際上還要加上16字節(jié)的校驗(yàn)信息,因此我們可以在閃存廠商的技術(shù)資料當(dāng)中看到“(512+16)Byte”的表示方式。目前2GB以下容量的NAND型閃存絕大多數(shù)是(512+16)字節(jié)的頁(yè)面容量,2GB以上容量的NAND型閃存則將頁(yè)容量擴(kuò)大到(2048+64)字節(jié)。NAND型閃存以塊為單位進(jìn)行擦除操作。閃存的寫入操作必須在空白區(qū)域進(jìn)行,如果目標(biāo)區(qū)域已經(jīng)有數(shù)據(jù),必須先擦除后寫入,因此擦除操作是閃存的基本操作。一般每個(gè)塊包含32個(gè)512字節(jié)的頁(yè),容量16KB;而大容量閃存采用2KB頁(yè)時(shí),則每個(gè)塊包含64個(gè)頁(yè),容量128KB。返回目錄3.5并行存儲(chǔ)器由于CPU和主存儲(chǔ)器之間在速度上是不匹配的,這種情況便成為限制高速計(jì)算機(jī)設(shè)計(jì)的主要問題。為了提高CPU和主存之間的數(shù)據(jù)傳輸率,除了主存采用更高速的半導(dǎo)體器件來(lái)縮短讀出時(shí)間外,還可以采用并行技術(shù)的存儲(chǔ)器。3.5并行存儲(chǔ)器提高存儲(chǔ)器讀出速度的途徑多個(gè)存儲(chǔ)器并行工作并行訪問和交叉訪問設(shè)置各種緩沖器通用寄存器采用分層的存儲(chǔ)系統(tǒng)Cache(第6節(jié))虛擬存儲(chǔ)系統(tǒng)(第9章)3.5并行存儲(chǔ)器一、雙端口存儲(chǔ)器1、雙端口存儲(chǔ)器的邏輯結(jié)構(gòu)雙端口存儲(chǔ)器由于同一個(gè)存儲(chǔ)器具有兩組相互獨(dú)立的讀寫控制電路而得名。可以進(jìn)行并行的獨(dú)立操作,是一種高速工作的存儲(chǔ)器,在科研和工程中非常有用。舉例:雙端口存儲(chǔ)器IDT7133的邏輯框圖。如下頁(yè)圖。3.5并行存儲(chǔ)器IDT7133提供了兩個(gè)相互獨(dú)立的端口,即左端口右端口。它們分別具有各自的地址線、數(shù)據(jù)線和控制線,可以對(duì)存儲(chǔ)器中任何位置上的數(shù)據(jù)進(jìn)行獨(dú)立的存取操作。3.5并行存儲(chǔ)器2、無(wú)沖突讀寫控制當(dāng)兩個(gè)端口的地址不相同時(shí),在兩個(gè)端口上進(jìn)行讀寫操作,一定不會(huì)發(fā)生沖突。當(dāng)任一端口被選中驅(qū)動(dòng)時(shí),就可對(duì)整個(gè)存儲(chǔ)器進(jìn)行存取,每一個(gè)端口都有自己的片選控制(CE)和輸出驅(qū)動(dòng)控制(OE)。讀操作時(shí),端口的OE(低電平有效)打開輸出驅(qū)動(dòng)器,由存儲(chǔ)矩陣讀出的數(shù)據(jù)就出現(xiàn)在I/O線上。3.5并行存儲(chǔ)器3、有沖突讀寫控制當(dāng)兩個(gè)端口同時(shí)存取存儲(chǔ)器同一存儲(chǔ)單元時(shí),便發(fā)生讀寫沖突。為解決此問題,特設(shè)置了BUSY標(biāo)志。在這種情況下,片上的判斷邏輯可以決定對(duì)哪個(gè)端口優(yōu)先進(jìn)行讀寫操作,而對(duì)另一個(gè)被延遲的端口置BUSY標(biāo)志(BUSY變?yōu)榈碗娖?,即暫時(shí)關(guān)閉此端口。3.5并行存儲(chǔ)器4、有沖突讀寫控制判斷方法(1)如果地址匹配且在CE之前有效,片上的控制邏輯在CEL和CER之間進(jìn)行判斷來(lái)選擇端口(CE判斷)。(2)如果CE在地址匹配之前變低,片上的控制邏輯在左、右地址間進(jìn)行判斷來(lái)選擇端口(地址有效判斷)。3.5并行存儲(chǔ)器 無(wú)論采用哪種判斷方式,延遲端口的BUSY標(biāo)志都將置低電平而關(guān)閉此端口,而當(dāng)允許存取的端口完成操作時(shí),延遲端口BUSY標(biāo)志才進(jìn)行復(fù)位而打開此端口。雙端口存儲(chǔ)器的時(shí)序3.5并行存儲(chǔ)器二、多模塊交叉存儲(chǔ)器 一個(gè)由若干個(gè)模塊組成的主存儲(chǔ)器是線性編址的。這些地址在各模塊中如何安排,有兩種方式:一種是順序方式,一種是交叉方式3.5并行存儲(chǔ)器假設(shè)有n個(gè)存儲(chǔ)體,每個(gè)存儲(chǔ)體的容量為m個(gè)存儲(chǔ)單元順序方式:每個(gè)存儲(chǔ)體內(nèi)的地址片選,存儲(chǔ)體選擇3.5并行存儲(chǔ)器1、順序方式[例]M0-M3共四個(gè)模塊,則每個(gè)模塊8個(gè)字順序方式:

M0:0—7

M1:8—15

M2:16—23

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

XX

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

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)地址,低位選模塊特點(diǎn):連續(xù)地址分布在相鄰的不同模塊內(nèi),同一個(gè)模塊內(nèi)的地址都是不連續(xù)的。優(yōu)點(diǎn)是對(duì)連續(xù)字的成塊傳送可實(shí)現(xiàn)多模塊流水式并行存取,大大提高存儲(chǔ)器的帶寬。使用場(chǎng)合為成批數(shù)據(jù)讀取。3、多模塊交叉存儲(chǔ)器的基本結(jié)構(gòu)右圖為四模塊交叉存儲(chǔ)器結(jié)構(gòu)框圖。主存被分成4個(gè)相互獨(dú)立、容量相同的模塊M0,M1,M2,M3,每個(gè)模塊都有自己的讀寫控制電路、地址寄存器和數(shù)據(jù)寄存器,各自以等同的方式與CPU傳送信息。在理想情況下,如果程序段或數(shù)據(jù)塊都是連續(xù)地在主存中存取,那么將大大提高主存的訪問速度。通常在一個(gè)存儲(chǔ)器周期內(nèi),n個(gè)存儲(chǔ)體必須分時(shí)啟動(dòng),則各個(gè)存儲(chǔ)體的啟動(dòng)間隔為(n為交叉存取度)整個(gè)存儲(chǔ)器的存取速度有望提高n倍例5設(shè)存儲(chǔ)器容量為32字,字長(zhǎng)64位,模塊數(shù)m=4,分別用順序方式和交叉方式進(jìn)行組織。存儲(chǔ)周期T=200ns,數(shù)據(jù)總線寬度為64位,總線傳送周期=50ns。若連續(xù)讀出4個(gè)字,問順序存儲(chǔ)器和交叉存儲(chǔ)器的帶寬各是多少?解:順序存儲(chǔ)器和交叉存儲(chǔ)器連續(xù)讀出m=4個(gè)字的信息總量都是:

q=64b×4=256b順序存儲(chǔ)器和交叉存儲(chǔ)器連續(xù)讀出4個(gè)字所需的時(shí)間分別是:t2=mT=4×200ns=800ns=8×10-7st1=T+(m-1)τ =200ns+3*50ns=350ns =3.5×10-7s順序存儲(chǔ)器和交叉存儲(chǔ)器的帶寬分別是:W2=q/t2=256b÷(8×10-7)s =320Mb/sW1=q/t1=256b÷(3.5×10-7)s =730Mb/s二模塊交叉存儲(chǔ)器舉例二模塊交叉存儲(chǔ)器舉例返回目錄補(bǔ)充相聯(lián)存儲(chǔ)器原理:按內(nèi)容存取的存儲(chǔ)器,可以選擇記錄(關(guān)鍵字)的一個(gè)字段作為地址組成:見下一頁(yè)圖主要用途:在虛擬存儲(chǔ)器中存放段表、頁(yè)表和快表,也可以作Cache的行地址相聯(lián)存儲(chǔ)器3.6cache存儲(chǔ)器1、基本原理(1)功能:cache是介于CPU和主存之間的小容量存儲(chǔ)器,存取速度比主存快。它能高速地向CPU提供指令和數(shù)據(jù),加快程序的執(zhí)行速度??梢越鉀QCPU和主存之間的速度不匹配問題。一般采用高速的SRAM構(gòu)成。CPU和主存之間的速度差別很大時(shí),采用兩級(jí)或多級(jí)Cache系統(tǒng)早期的一級(jí)Cache在CPU內(nèi),二級(jí)在主板上現(xiàn)在的CPU內(nèi)帶L1Cache和L2Cache全由硬件調(diào)度,對(duì)用戶透明3.6cache存儲(chǔ)器3.6Cache存儲(chǔ)器(2)cache基本原理地址映射替換策略寫一致性性能評(píng)價(jià)3.6cache存儲(chǔ)器cache基本原理:cache是介于CPU和主存M2之間的小容量存儲(chǔ)器,但存取速度比主存快。主存容量配置幾百M(fèi)B的情況下,cache的典型值是幾百KB。cache能高速地向CPU提供指令和數(shù)據(jù),從而加快了程序的執(zhí)行速度。從功能上看,它是主存的緩沖存儲(chǔ)器,由高速的SRAM組成。為追求高速,包括管理在內(nèi)的全部功能由硬件實(shí)現(xiàn),因而對(duì)程序員是透明的。Cache的設(shè)計(jì)依據(jù):CPU這次訪問過的數(shù)據(jù),下次有很大的可能也是訪問附近的數(shù)據(jù)。CPU與cache之間的數(shù)據(jù)傳送是以字為單位主存與cache之間的數(shù)據(jù)傳送是以塊為單位CPU讀主存時(shí),便把地址同時(shí)送給Cache和主存,cache控制邏輯依據(jù)地址判斷此字是否在cache中,若在此字立即傳送給CPU,否則,則用主存讀周期把此字從主存讀出送到CPU,與此同時(shí),把含有這個(gè)字的整個(gè)數(shù)據(jù)塊從主存讀出送到cache中。3.6Cache存儲(chǔ)器(3)Cache的命中率從CPU來(lái)看,增加一個(gè)cache的目的,就是在性能上使主存的平均讀出時(shí)間盡可能接近c(diǎn)ache的讀出時(shí)間。為了達(dá)到這個(gè)目的,在所有的存儲(chǔ)器訪問中由cache滿足CPU需要的部分應(yīng)占很高的比例,即cache的命中率應(yīng)接近于1。由于程序訪問的局部性,實(shí)現(xiàn)這個(gè)目標(biāo)是可能的。3.6Cache存儲(chǔ)器在一個(gè)程序執(zhí)行期間,設(shè)Nc表示cache完成存取的總次數(shù),Nm表示主存完成存取的總次數(shù),h定義為命中率,則有

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

ta=htc+(1-h)tm以較小的硬件代價(jià)使cache/主存系統(tǒng)的平均訪問時(shí)間ta越接近tc越好。設(shè)r=tm/tc表示主存慢于cache的倍率,e表示訪問效率,則有: 為提高訪問效率,命中率h越接近1越好,r值以5—10為宜,不宜太大。命中率h與程序的行為、cache的容量、組織方式、塊的大小有關(guān)?!纠?】CPU執(zhí)行一段程序時(shí),cache完成存取的次數(shù)為1900次,主存完成存取的次數(shù)為100次,已知cache存取周期為50ns,主存存取周期為250ns,求cache/主存系統(tǒng)的效率和平均訪問時(shí)間。解法:h=Nc/(Nc+Nm)=1900/(1900+100)=0.95ta=h*tc+(1-h)tm=0.95×50ns+(1-0.95)×250ns=60nse=tc/ta=50/60=83.3%例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=60ns3.6.2主存與Cache的地址映射cache的容量很小,它保存的內(nèi)容只是主存內(nèi)容的一個(gè)子集。cache與主存的數(shù)據(jù)交換是以“塊”為單位。地址映射即是應(yīng)用某種方法把主存地址定位到cache中。址映射方式有全相聯(lián)方式、直接方式和組相聯(lián)方式三種。3.6.2主存與Cache的地址映射無(wú)論選擇那種映射方式,都要把主存和cache劃分為同樣大小的“塊”。選擇哪種映射方式,要考慮:硬件是否容易實(shí)現(xiàn)地址變換的速度是否快主存空間的利用率是否高主存裝入一塊時(shí),發(fā)生沖突的概率以下我們介紹三種映射方法一、全相聯(lián)映射方式映射方法:多對(duì)多主存中一個(gè)塊的內(nèi)容與塊的地址一起存于cache的行中,其中塊地址存于cache行的標(biāo)記部分中。主存內(nèi)容可以拷貝到任意行地址變換標(biāo)記實(shí)際上構(gòu)成了一個(gè)目錄表。全相聯(lián)映射方式示意圖全相聯(lián)映射方式檢索過程全相聯(lián)映射方式說明1、將地址分為兩部分(塊號(hào)和字號(hào)),在內(nèi)存塊寫入Cache時(shí),同時(shí)將塊號(hào)寫入標(biāo)記位中。2、CPU給出訪問地址后,也將地址分為兩部分(塊號(hào)和字號(hào)),比較電路將塊號(hào)與Cache中各行的標(biāo)記進(jìn)行比較,若相同表示命中,訪問相應(yīng)單元;如果沒有命中,CPU將直接訪問內(nèi)存,并將內(nèi)存中取出的塊寫入Cache。全相聯(lián)映射方式說明3、特點(diǎn)優(yōu)點(diǎn):存放位置靈活,沖突概率小,Cache的利用高。缺點(diǎn):比較器電路難于設(shè)計(jì)和實(shí)現(xiàn)。需要一個(gè)訪問速度很快代價(jià)高的相聯(lián)存儲(chǔ)器,因此只適合于小容量Cache采用。4、應(yīng)用場(chǎng)合適用于小容量的Cache二、直接映射方式1、映射方法:多對(duì)一一個(gè)主存塊只能拷貝到cache的一個(gè)特定行位置上去。cache的行號(hào)i和主存的塊號(hào)j有如下函數(shù)關(guān)系:i=jmodm其中m為cache中的總行數(shù)主存第j塊內(nèi)容拷貝到Cache的i行直接映射方式示意圖直接映射方式檢索過程直接映射方式說明2、基本原理利用地址中行號(hào)字段選擇Cache行;把行標(biāo)記與CPU訪問地址tag字段進(jìn)行比較,相同表示命中,訪問Cache;如果沒有命中,訪問內(nèi)存,并將相應(yīng)塊寫入Cache。直接映射方式說明3、特點(diǎn)優(yōu)點(diǎn):比較電路少m倍線路,所以硬件實(shí)現(xiàn)簡(jiǎn)單,成本低。Cache地址為主存地址的低幾位,可直接比較,不需變換。缺點(diǎn):每個(gè)主存塊只有一個(gè)固定的行位置可存放,因此沖突概率高(抖動(dòng))4、應(yīng)用場(chǎng)合適合大容量Cache三、組相聯(lián)映射方式前兩者的結(jié)合先將Cache分成u組,每組包含v行映射方法:一塊對(duì)應(yīng)一組中的多行cache的組號(hào)q和主存的塊號(hào)j有如下函數(shù)關(guān)系:q=jmodu其中u為cache中的總組數(shù)主存第j塊內(nèi)容拷貝到Cache的q組中的某行主存塊與Cache組間采用直接映射方式,組內(nèi)采用全相聯(lián)的映射方式組相聯(lián)映射方式示意圖組相聯(lián)映射方式檢索過程組相聯(lián)映射方式說明地址變換根據(jù)主存地址中塊號(hào)部分的低d位組號(hào),找到cache中相應(yīng)組,將塊號(hào)高s-d位與該組各行的標(biāo)記同時(shí)進(jìn)行比較。若命中則訪問其中的字,否則需訪問主存。組相聯(lián)映射方式說明分析:u=1,則為全相聯(lián)映射方式v=1,則為直接相聯(lián)映射方式v的取值一般比較小,一般是2的冪,稱之為v路組相聯(lián)cache。優(yōu)點(diǎn):比全相聯(lián)容易實(shí)現(xiàn),沖突低組相聯(lián)映射方式中的每組行數(shù)v一般取值較小,這種規(guī)模的v路比較器容易設(shè)計(jì)和實(shí)現(xiàn)。塊在組中的排放又有一定的靈活性,沖突減少。缺點(diǎn):不能完全避免沖突3.6.3替換策略★最不經(jīng)常使用(LFU)算法

LFU算法將一段時(shí)間內(nèi)被訪問次數(shù)最少的那行數(shù)據(jù)換出。每行設(shè)置一個(gè)計(jì)數(shù)器。從0開始計(jì)數(shù),每訪問一次,被訪行的計(jì)數(shù)器增1。當(dāng)需要替換時(shí),將計(jì)數(shù)值最小的行換出,同時(shí)將該行的計(jì)數(shù)器清零。這種算法將計(jì)數(shù)周期限定在對(duì)這些特定行兩次替換之間的間隔時(shí)間內(nèi),不能嚴(yán)格反映近期訪問情況。3.6.3替換策略★近期最少使用(LRU)算法

(LeastRecentlyUsed)

LRU算法將近期內(nèi)長(zhǎng)久未被訪問過的行換出。每行也設(shè)置一個(gè)計(jì)數(shù)器,cache每命中一次,命中行計(jì)數(shù)器清零,其它各行計(jì)數(shù)器增1。當(dāng)需要替換時(shí),將計(jì)數(shù)值最大的行換出。這種算法保護(hù)了剛拷貝到cache中的新數(shù)據(jù)行,符合cache的工作原理,有較高的命中率。有些計(jì)算機(jī)中LRU替換策略的計(jì)數(shù)方式有些變化例如:每當(dāng)Cache中的一行信息被命中時(shí),比命中行計(jì)數(shù)值低的各行的計(jì)數(shù)器均加1,而命中塊的計(jì)數(shù)器則清0,其他行計(jì)數(shù)值不變。補(bǔ)充:LRU策略的另一種實(shí)現(xiàn)方法把組中各塊(行)的使用情況記錄在一張表上,并把最近使用過的塊號(hào)放在表的最上面,設(shè)組內(nèi)有8個(gè)信息塊,其地址編號(hào)為0,1,…,7。每次訪問Cache時(shí),若未命中則首先替換表最下面的7號(hào)信息塊的內(nèi)容;若命中,不需要替換,但要將命中行的行號(hào)移到表的頂部,表中其它行號(hào)向下順移。(如下頁(yè)圖所示)如7號(hào)信息塊被替換,則將7寫到表的頂部,其它號(hào)向下順移。接著訪問5號(hào)信息塊,如果此時(shí)命中,不需要替換,但要將5移到表的頂部,其它號(hào)向下順移。此時(shí)6號(hào)數(shù)據(jù)塊是以后要首先被替換的,……。3.6.3替換策略隨機(jī)替換:隨機(jī)替換策略實(shí)際上是不要什么算法,從特定的行位置中隨機(jī)地選取一行換出即可。這種策略在硬件上容易實(shí)現(xiàn),且速度也比前兩種策略快。缺點(diǎn)是隨意換出的數(shù)據(jù)很可能馬上又要使用,從而降低命中率和cache工作效率。但這個(gè)不足隨著cache容量增大而減小。隨機(jī)替換策略的功效只是稍遜于前兩種策略。補(bǔ)充:先進(jìn)先出(FIFO)替換策略FIFO(FirstInFirstOut)策略總是把一組中最先調(diào)入Cache的字塊替換出去,它不需要隨時(shí)記錄各個(gè)字塊的使用情況,所以實(shí)現(xiàn)容易,開銷小。一般情況下,LRU替換策略的平均命中率比FIFO要高,并且當(dāng)分組容量加大時(shí),命中率提高更明顯。3.6.3替換策略例:設(shè)cache有1、2、3、4共4個(gè)塊,a、b、c、d、e等為主存中的塊,訪問順序一次如下:a、b、c、d、b、b、c、c、d、d、a,下次若要再訪問e塊。

問,采用LFU和LRU算法替換結(jié)果是不是相同?

LFU(最不經(jīng)常使用)LRU(近期最少使用)

說明1塊2塊3塊4塊說明1塊2塊3塊4塊aa進(jìn)入1000a進(jìn)入0111bb進(jìn)入1100b進(jìn)入1022cc進(jìn)入1110c進(jìn)入2103dd進(jìn)入1111d進(jìn)入3210b命中1211命中4021b命中1311命中5032c命中1321命中6103c命中1331命中7204d命中1332命中8310d命中1333命中9420a命中2333命中0531e替換a1333替換b1042

3.6.4寫操作策略由于cache的內(nèi)容只是主存部分內(nèi)容的拷貝,它應(yīng)當(dāng)與主存內(nèi)容保持一致。而CPU對(duì)cache的寫入更改了cache的內(nèi)容。如何與主存內(nèi)容保持一致,可選用如下三種寫操作策略。3.6.4寫操作策略★寫回法(writeback)當(dāng)CPU寫cache命中時(shí),只修改cache的內(nèi)容,而不立即寫入主存;只有當(dāng)此行被換出時(shí)才寫回主存。這種方法減少了訪問主存的次數(shù),但是存在不一致性的隱患。實(shí)現(xiàn)這種方法時(shí),每個(gè)cache行必須配置一個(gè)修改位(更新位),以反映此行是否被CPU修改過。CPU對(duì)Cache中的一個(gè)行寫入后,其修改位置1。當(dāng)Cache中的行要被新的主存區(qū)塊替換時(shí),如修改位為1,則Cache控制器先把Cache現(xiàn)有內(nèi)容寫入主存相應(yīng)位置,再作替換,并把修改位清0。3.6.4寫操作策略★全寫法(也稱為通寫法writethrough)當(dāng)寫cache命中時(shí),cache與主存同時(shí)被修改,因而較好地維護(hù)了cache與主存的內(nèi)容的一致性。當(dāng)寫cache未命中時(shí),直接向主存進(jìn)行寫入。優(yōu)點(diǎn):cache中每行無(wú)需設(shè)置一個(gè)修改位以及相應(yīng)的判斷邏輯。缺點(diǎn):每次Cache內(nèi)容有更新,就對(duì)主存進(jìn)行寫入操作,這樣,造成總線活動(dòng)頻繁,系統(tǒng)速度較慢,降低了cache的功效。3.

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論