數(shù)字電路第三章PPT_第1頁(yè)
數(shù)字電路第三章PPT_第2頁(yè)
數(shù)字電路第三章PPT_第3頁(yè)
數(shù)字電路第三章PPT_第4頁(yè)
數(shù)字電路第三章PPT_第5頁(yè)
已閱讀5頁(yè),還剩97頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、計(jì)算機(jī)組成原理多層次的存儲(chǔ)系統(tǒng) 存儲(chǔ)器概述 存儲(chǔ)位元存儲(chǔ)位元:存儲(chǔ)器中最小的存儲(chǔ)單位,是一個(gè)雙穩(wěn)態(tài)半導(dǎo)體電路或一個(gè)CMOS晶體管或磁性材料,有兩個(gè)狀態(tài),可存儲(chǔ)一個(gè)二進(jìn)制位。存儲(chǔ)單元存儲(chǔ)單元:由若干個(gè)存儲(chǔ)元組成,有固定長(zhǎng)度,可以是字長(zhǎng)或字節(jié)。存儲(chǔ)器存儲(chǔ)器:由許多存儲(chǔ)單元組成,統(tǒng)一編址。在主存中為了指出存儲(chǔ)位置,要給每個(gè)存儲(chǔ)單元一個(gè)編號(hào),稱為地址。如果給每個(gè)機(jī)器字編址,稱為字尋址。如果給每個(gè)字節(jié)編址,稱為字節(jié)尋址。 存儲(chǔ)器分類 存儲(chǔ)介質(zhì)存儲(chǔ)介質(zhì) 半導(dǎo)體存儲(chǔ)器; 磁表面存儲(chǔ)器。狀態(tài)改變的快慢決定了存取速度存儲(chǔ)方式存儲(chǔ)方式 隨機(jī)存儲(chǔ)器 任何存儲(chǔ)單元的內(nèi)容都能被隨機(jī)存取,且存取時(shí)間和存儲(chǔ)單元的物理位置無(wú)

2、關(guān)。順序存儲(chǔ)器 只能按某種順序來(lái)存取,存取時(shí)間和存儲(chǔ)單元的物理位置有關(guān)。存儲(chǔ)器分類存取功能可變性只讀存儲(chǔ)器(ROM) 存儲(chǔ)的內(nèi)容固定不變,只能讀出而不能寫入。隨機(jī)讀寫存儲(chǔ)器(RAM) 既能讀出又能寫入。 信息的易失性 非永久記憶存儲(chǔ)器 斷電后信息即消失。如RAM永久記憶存儲(chǔ)器 斷電后仍能保存信息。如磁盤系統(tǒng)中的作用 可分為主存儲(chǔ)器、輔助存儲(chǔ)器、高速緩沖存儲(chǔ)器、控制存儲(chǔ)器等。 存儲(chǔ)器的分級(jí)結(jié)構(gòu) 為了要求容量大,速度快,成本低,目前通常采用多級(jí)存儲(chǔ)器體系結(jié)構(gòu),即使用高速緩沖存儲(chǔ)器、主存儲(chǔ)器和外存儲(chǔ)器。 存儲(chǔ)器的分級(jí)結(jié)構(gòu) 高速緩沖存儲(chǔ)器:簡(jiǎn)稱Cache,高速存取指令和數(shù)據(jù),存取速度快,但價(jià)格貴,存儲(chǔ)

3、容量小,現(xiàn)在還使用多級(jí)Cache主存儲(chǔ)器:簡(jiǎn)稱主存,存放計(jì)算機(jī)運(yùn)行期間的大量程序和數(shù)據(jù),速度較快,容量有限。 外存儲(chǔ)器:簡(jiǎn)稱外存,存放系統(tǒng)程序和大型數(shù)據(jù)文件及數(shù)據(jù)庫(kù),存儲(chǔ)容量大,位成本低,但速度慢。 主存儲(chǔ)器的技術(shù)指標(biāo) 存儲(chǔ)容量:在一個(gè)存儲(chǔ)器中可以容納的存儲(chǔ)單元總數(shù), 反映了存儲(chǔ)空間的大小,單位 字?jǐn)?shù),字節(jié)數(shù) KB,MB,GB,TB存取時(shí)間:?jiǎn)?dòng)到完成一次存儲(chǔ)器操作所經(jīng)歷的時(shí)間,決定了主存的速度,單位 ns 存儲(chǔ)周期:連續(xù)啟動(dòng)兩次操作所需間隔的最小時(shí)間,反映了主存的速度 ,單位 ns 存儲(chǔ)器帶寬:?jiǎn)挝粫r(shí)間里存儲(chǔ)器所存取的信息量, 是數(shù)據(jù)傳輸速率技術(shù)指標(biāo) 單位 位/秒,字節(jié)/秒隨機(jī)讀寫存儲(chǔ)器 分

4、為靜態(tài)和動(dòng)態(tài)兩種。它們是組成存儲(chǔ)器的基礎(chǔ)和核心。存取速度快,存儲(chǔ)體積小,可靠性高,價(jià)格低廉;斷電后不能保存信息。SRAM存儲(chǔ)器:由兩個(gè)MOS反相器交叉耦合而成的觸發(fā)器, 有兩個(gè)穩(wěn)定的狀態(tài),分別表示一位二進(jìn)制。DRAM存儲(chǔ)器:利用電容中存儲(chǔ)的電荷暫時(shí)存儲(chǔ)信息,需要不斷刷新,集成度高,但速度較慢六管SRAM存儲(chǔ)元MOS 管高電平導(dǎo)通,低電平截止。A,B兩點(diǎn)電位總是互為相反。寫操作 讀操作 讀寫操作必須X/Y譯碼線同時(shí)有效單管動(dòng)態(tài)存儲(chǔ)元 單管動(dòng)態(tài)存儲(chǔ)元電路由一個(gè)管子T1和一個(gè)電容C構(gòu)成 寫入讀出讀出是破壞性的,要立即按讀出信息予以充電再生。 它元件數(shù)量少,集成度高,但需要有高鑒別能力的讀出放大器配合

5、工作,外圍電路比較復(fù)雜。 只讀存儲(chǔ)器 簡(jiǎn)稱ROM,只能讀出,不能寫入。具有不易失性。分為三類:掩模式:數(shù)據(jù)在芯片制造過(guò)程中就確定 可靠性和集成度高,價(jià)格便宜 不能重寫一次編程(PROM):用戶可以根據(jù)需要自行改變產(chǎn)品中某些存儲(chǔ)元,只能一次性改寫多次編程(EPROM):可以用紫外光照射或電的方法多次改寫ROM中的內(nèi)容光擦可編程只讀存儲(chǔ)器 仍然通過(guò)字線和位線控制,存儲(chǔ)元接通為0,斷開為1。有4種工作方式:讀、未選中、功率下降、編程 存儲(chǔ)器的組成 存儲(chǔ)體:大量存儲(chǔ)單元的集合,需解決尋址,驅(qū)動(dòng),控制等問(wèn)題地址譯碼器:驅(qū)動(dòng)器: I/O電路:片選:讀/寫控制:輸出驅(qū)動(dòng)電路:地址譯碼器 根據(jù)n位地址選擇2n

6、線中之一單譯碼:適用于小容量存儲(chǔ)器,只有一個(gè)地址譯碼器雙譯碼:適用于大容量存儲(chǔ)器,有X向和Y向兩個(gè)譯碼器。SRAM實(shí)例-2114(1K*4) 存儲(chǔ)器對(duì)外呈現(xiàn)三組信號(hào)線,即地址線、數(shù)據(jù)線、讀/寫控制線 64*64陣列4位DB,10(6+4)位AB,CS WEDRAM實(shí)例-2116 (16K*1 )128*128 的 陣列。需要14位地址,但僅提供7根地址線,需要分時(shí)傳送地址 EPROM實(shí)例- 2716(2K*8) 11根地址線,7條行譯碼,4條列譯碼8根數(shù)據(jù)線 存儲(chǔ)器與CPU連接 CPU對(duì)存儲(chǔ)器進(jìn)行讀/寫操作,首先由地址總線給出地址信號(hào),然后要發(fā)出讀操作或?qū)懖僮鞯目刂菩盘?hào),最后在數(shù)據(jù)總線上進(jìn)行信

7、息交流,因此要分別完成地址線、數(shù)據(jù)線和控制線的連接。存儲(chǔ)器芯片的容量是有限的,為了滿足實(shí)際存儲(chǔ)器的容量要求,需要對(duì)存儲(chǔ)器進(jìn)行擴(kuò)展。 使用多片存儲(chǔ)器需要電路確定各片地址空間等位擴(kuò)展法 只加大字長(zhǎng),而存儲(chǔ)器的字?jǐn)?shù)與存儲(chǔ)器芯片字?jǐn)?shù)一致,對(duì)片子沒有選片要求,地址線全部接入芯片,數(shù)據(jù)線分別接入總線字?jǐn)U展法僅在字向擴(kuò)充,位數(shù)不變.需由片選信號(hào)來(lái)區(qū)分各片地址。數(shù)據(jù)線全部接入芯片,地址線分片內(nèi)、片外兩組,低位進(jìn)芯片,進(jìn)行片內(nèi)尋址,高位進(jìn)譯碼器選片。字位同時(shí)擴(kuò)展法地址總線的寬度決定了存儲(chǔ)器的存儲(chǔ)容量,數(shù)據(jù)總線的寬度決定了存儲(chǔ)器的字長(zhǎng)。一個(gè)存儲(chǔ)器的容量假定為MN位,若使用Lk 位的芯片LM,kN,需要在字向和位向

8、同時(shí)進(jìn)行擴(kuò)展。此時(shí)共需要(M/L(N/k)個(gè)存儲(chǔ)器芯片 數(shù)據(jù)線根據(jù)所在的位接入數(shù)據(jù)總線,地址線也需分組,高位進(jìn)譯碼器選片,低位進(jìn)芯片選存儲(chǔ)單元。存儲(chǔ)器的讀、寫周期 在連接時(shí),CPU控制信號(hào)與存儲(chǔ)器的讀、寫周期之間的配合問(wèn)題是非常重要的。讀周期存儲(chǔ)器的讀、寫周期寫周期:寫入的時(shí)序信號(hào)必須同步。當(dāng)R/W線負(fù)脈沖時(shí),地址線和數(shù)據(jù)線必須穩(wěn)定,不能改變。數(shù)據(jù)立即被存儲(chǔ)于地址線對(duì)應(yīng)的單元。 DRAM的刷新 “讀出”即刷新。啟動(dòng)一行線可以完成整行同時(shí)刷新,依次處理每一行。需要刷新地址計(jì)數(shù)器。刷新周期:從上一次對(duì)整個(gè)存儲(chǔ)器刷新結(jié)束到下一次對(duì)整個(gè)存儲(chǔ)器全部刷新一遍為止的時(shí)間間隔。一般要求是2,4,8ms。 DR

9、AM的刷新集中式刷新:在刷新間隔內(nèi),集中時(shí)間一次性逐行刷新整個(gè)存儲(chǔ)器,它適用于高速存儲(chǔ)器。存在死時(shí)間。分散式刷新:每個(gè)存儲(chǔ)周期除了完成讀/寫操作或維持信息外,還進(jìn)行一行的刷新操作。系統(tǒng)速度變慢。異步式刷新:是前兩種方式的結(jié)合。滿足刷新周期要求,隔一定時(shí)間刷新一行。DRAM的刷新存儲(chǔ)器控制電路 DRAM需要硬件電路的支持刷新,包括刷新計(jì)數(shù)器、刷新/訪存裁決、刷新控制邏輯等。這些控制線路形成DRAM控制器,它同時(shí)實(shí)現(xiàn)與CPU的連接,將存取、數(shù)據(jù)、地址等信號(hào)變換成適合DRAM片子的信號(hào)。 主存儲(chǔ)器組成實(shí)例 采用W4006AF和(1M*4bit存儲(chǔ)塊)*8為一組)*4構(gòu)成的16M 80386主存儲(chǔ)器8

10、0386沒有A0A1線,用BE0-BE3取而代之,以支持字節(jié)、雙字節(jié)、四字節(jié)存取。A2-A11MA01-MAb1,MA01-MAb1A0-A9(片內(nèi))A12-A31RAS0-RAS3RAS(選組)BE0-BE3CAS0-CAS15CAS(選片)主存儲(chǔ)器組成實(shí)例主存物理地址的存儲(chǔ)空間分布 系統(tǒng)中應(yīng)同時(shí)擁有RAM和ROM。為保持系統(tǒng)軟件繼承性,存儲(chǔ)空間分成基本內(nèi)存、保留內(nèi)存、擴(kuò)展內(nèi)存幾部分 主存儲(chǔ)器組成實(shí)例例:CPU的地址總線16根(A0為低位),雙向數(shù)據(jù)總線8根,控制總線中與主存有關(guān)的信號(hào)有MREQ(允許訪存, 低電平有效),R/W(高電平為讀命令,低電平為寫命令)。 主存地址空間分配如下:08

11、191為系統(tǒng)程序區(qū),由只讀存儲(chǔ)芯片組成;819232767為用戶程序區(qū);最后(最大地址)2K地址空間為系統(tǒng)程序工作區(qū)。上述地址為十進(jìn)制,按字節(jié)編址。主存儲(chǔ)器組成實(shí)例現(xiàn)有如下存儲(chǔ)器芯片:EPROM:8K8位(控制端僅有CS);SRAM:16K1位,2K8位,4K8位,8K8位.請(qǐng)從上述芯片中選擇適當(dāng)芯片設(shè)計(jì)該計(jì)算機(jī)主存儲(chǔ)器,畫出主存儲(chǔ)器邏輯框圖,注意畫出選片邏輯(可選用門電路及38譯碼器74LS138)與CPU 的連接,說(shuō)明選哪些存儲(chǔ)器芯片,選多少片 根據(jù)給定條件,選用EPROM:8K8位芯片1片。SRAM:8K8位芯片3片,2K8位芯片1片。38譯碼器僅用Y0,Y1,Y2,Y3和Y7輸出端,且

12、對(duì)最后的2K8位芯片還需加門電路譯碼。主存儲(chǔ)器組成實(shí)例高性能主存儲(chǔ)器EDRAM 又稱增強(qiáng)型DRAM芯片,它在DRAM 芯片上集成了一個(gè)SRAM實(shí)現(xiàn)的小容量高速緩沖存儲(chǔ)器,使系統(tǒng)不必每次都從慢速的DRAM存取。 1M*4芯片分兩次輸入20位地址,先11位選行,整行的512(=29)*4位信息被送入快速的SRAM保存,它對(duì)成塊傳送非常有利。如果連續(xù)的地址高11位相同(通過(guò)比較器比較),那么連續(xù)變動(dòng)的9位列地址就會(huì)使SRAM中相應(yīng)位組連續(xù)讀出,這稱為猝發(fā)式讀取。它還可以在SRAM讀出期間可同時(shí)對(duì)DRAM陣列進(jìn)行刷新。芯片內(nèi)的數(shù)據(jù)輸出路徑與輸入路徑是分開的,允許在寫操作完成的同時(shí)來(lái)啟動(dòng)同一行的讀操作。

13、高性能主存儲(chǔ)器EDRAM高性能主存儲(chǔ)器EDRAMEDRAM內(nèi)存條:一片EDRAM的容量為1M4位,8片這樣的芯片可組成1M32位的存儲(chǔ)模塊。8個(gè)芯片共用片選信號(hào)Sel、行選通信號(hào)RAS、刷新信號(hào)Ref和地址輸入信號(hào)A0A10。當(dāng)某模塊被選中,此模塊的8個(gè)EDRAM芯片同時(shí)動(dòng)作,8個(gè)4位數(shù)據(jù)端口D3D0同時(shí)與32位數(shù)據(jù)總線交換數(shù)據(jù),完成一次32位字的存取。上述存儲(chǔ)模塊本身具有高速成塊存取能力,這種模塊內(nèi)存儲(chǔ)字完全順序排放,以猝發(fā)式存取來(lái)完成高速成塊存取的方式,在當(dāng)代微型機(jī)中獲得了廣泛應(yīng)用。被做成內(nèi)存條。 閃速存儲(chǔ)器 一種高密度、非易失性的讀/寫半導(dǎo)體存儲(chǔ)器,它突破了傳統(tǒng)的存儲(chǔ)器體系,改善了現(xiàn)有存

14、儲(chǔ)器的特性。特點(diǎn):固有的非易失性,廉價(jià)的高密度,可直接執(zhí)行,固態(tài)性能。 在EPROM功能基礎(chǔ)上增加了電路的電擦除和重新編程能力。 閃速存儲(chǔ)器28F256A(32K*8)有存儲(chǔ)元陣列、行/列譯碼器、數(shù)據(jù)/地址鎖存器、輸入/輸出緩沖器等,還有包括指令寄存器在內(nèi)的控制和定時(shí)邏輯,其作用是:保證TTL電平的控制信號(hào)輸入;在擦除和編程過(guò)程中穩(wěn)定供電;最大限度的與EPROM兼容。片選信號(hào)CE,輸出允許信號(hào)OE用于控制數(shù)據(jù)的輸出。讀操作: 寫操作:輸出禁止操作: 等待操作:閃速存儲(chǔ)器閃速存儲(chǔ)器與CPU的連接 地址總線和控制總線由CPU發(fā)向存儲(chǔ)器和接口邏輯,數(shù)據(jù)總線為雙向總線。和依靠磁盤的存儲(chǔ)器系統(tǒng)相比,閃速

15、存儲(chǔ)器可提供高性能、低功耗、高可靠性和瞬間啟動(dòng)能力,會(huì)使存儲(chǔ)系統(tǒng)帶來(lái)革命性變化。 高速存儲(chǔ)器Cache 由于CPU和主存儲(chǔ)器在速度上不匹配,而且在一個(gè)CPU周期中可能需要用幾個(gè)存儲(chǔ)器字,這使CPU等待存儲(chǔ)器讀寫操作,限制了高速計(jì)算,是現(xiàn)代計(jì)算機(jī)系統(tǒng)的主要瓶頸??梢圆扇∫恍┘铀貱PU和存儲(chǔ)器之間有效傳輸?shù)奶厥獯胧?。如:采用更高速主存或增加字長(zhǎng),采用并行操作的雙端口存儲(chǔ)器,采用交叉存儲(chǔ)器,采用Cache雙端口存儲(chǔ)器 它提供了兩個(gè)相互獨(dú)立的端口,即左端口右端口。分別具有各自的地址線、數(shù)據(jù)線和控制線,可以錯(cuò)時(shí)地對(duì)存儲(chǔ)體中任何位置上的數(shù)據(jù)進(jìn)行獨(dú)立的存取操作。當(dāng)兩個(gè)端口的地址不相同時(shí),不會(huì)發(fā)生沖突。每一個(gè)

16、端口都有自己的片選控制和輸出驅(qū)動(dòng)。當(dāng)兩個(gè)端口同時(shí)存取存儲(chǔ)器同一存儲(chǔ)單元時(shí),便發(fā)生讀寫沖突。為解決此問(wèn)題,特設(shè)置了BUSY標(biāo)志。由片上的判斷邏輯決定對(duì)哪個(gè)端口優(yōu)先進(jìn)行讀寫操作,而暫時(shí)關(guān)閉另一個(gè)被延遲的端口。 雙端口存儲(chǔ)器多模塊交叉存儲(chǔ)器 一個(gè)由若干個(gè)模塊組成的主存儲(chǔ)器是線性編址的。 順序方式:連續(xù)地址在同一個(gè)模塊中,某個(gè)模塊連續(xù)存取時(shí),其他模塊不工作,各模塊串行工作,存儲(chǔ)器的帶寬受到了限制。某一模塊出現(xiàn)故障時(shí),其他模塊可照常工作,通過(guò)增添模塊來(lái)擴(kuò)充存儲(chǔ)器容量比較方便。地址碼的高位字段譯碼選擇不同的模塊,低位字段指向相應(yīng)模塊內(nèi)的存儲(chǔ)字。多模塊交叉存儲(chǔ)器多模塊交叉存儲(chǔ)器交叉方式:連續(xù)地址分布在相鄰的

17、不同模塊內(nèi),同一個(gè)模塊內(nèi)的地址都是不連續(xù)的。對(duì)連續(xù)字的成塊傳送可實(shí)現(xiàn)多模塊流水式并行存取,大大提高存儲(chǔ)器的帶寬。 CPU同時(shí)訪問(wèn)多個(gè)模塊,由存儲(chǔ)器控制部件控制它們分時(shí)使用數(shù)據(jù)總線進(jìn)行信息傳遞。地址碼的低位字段經(jīng)過(guò)譯碼選擇不同的模塊,而高位字段指向相應(yīng)模塊內(nèi)的存儲(chǔ)字。 定量分析假設(shè)模塊字長(zhǎng)等于數(shù)據(jù)總線寬度,模塊存取一個(gè)字的存儲(chǔ)周期為T,總線傳送周期為,存儲(chǔ)器的交叉模塊數(shù)為m,q為讀取m個(gè)字的信息量。為了實(shí)現(xiàn)流水線方式存取,保證啟動(dòng)某模塊后經(jīng)m時(shí)間再次啟動(dòng)該模塊時(shí),它的上次存取操作已經(jīng)完成。應(yīng)當(dāng)滿足 m=T/。連續(xù)讀取m 個(gè)字所需的時(shí)間為 t1=T+(m-1),W1=q/t1。而順序方式存儲(chǔ)器連續(xù)

18、讀取m個(gè)字所需時(shí)間為t2=mT,W2=q/t2。帶寬確實(shí)大大提高 二模塊交叉存儲(chǔ)器 DRAM存儲(chǔ)器(每模塊256K*32bit),32位數(shù)據(jù)線,24位地址線(16M,8*2模塊)。A23-A21:選體,3-8譯碼器A20-A3:選塊內(nèi)字地址,分兩個(gè)9位作為行/列地址輸入A2:選模塊,偶地址在模塊0,奇地址在模塊1。分別使RAS0/RAS1有效,打入行地址A1-A0:不存在,用BE3-BE0代替,選輸出字節(jié)和長(zhǎng)度,接CAS3-CAS0,打入列地址 二模塊交叉存儲(chǔ)器二模塊交叉存儲(chǔ)器DRAM存儲(chǔ)器需要逐行定時(shí)刷新,而且,DRAM芯片的讀出是一種破壞性讀出,在讀取之后要立即按讀出信息予以充電再生。若C

19、PU先后兩次讀取的存儲(chǔ)字使用同一RAS選通信號(hào)的話,CPU在接收到第一個(gè)存儲(chǔ)字之后必須插入等待狀態(tài),直至前一存儲(chǔ)字再生完畢才開始第二個(gè)存儲(chǔ)字的讀取。采用m=2的交叉存取度的成塊傳送,兩個(gè)連續(xù)地址字的讀取之間不必插入等待狀態(tài)(零等待存?。ache的功能 cache是介于CPU和主存之間的小容量存儲(chǔ)器,存取速度比主存快。能高速向CPU提供指令和數(shù)據(jù),加快程序的執(zhí)行速度。目的是解決CPU和主存之間速度不匹配,在性能上使主存的平均讀出時(shí)間盡可能接近c(diǎn)ache的讀出時(shí)間。為此需要使CPU的存取能絕大部分通過(guò)Cache實(shí)現(xiàn)。這里應(yīng)用了程序的局部性原理。程序的局部性包括空間局部性和時(shí)間局部性。它由高速S

20、RAM組成,現(xiàn)在已發(fā)展成2級(jí)以上Cache系統(tǒng) cache的基本原理 CPU與cache之間的數(shù)據(jù)交換是以字為單位,而cache與主存之間的數(shù)據(jù)交換是以塊為單位。一個(gè)塊由若干定長(zhǎng) 字 組 成 ,Cache中稱為一行。cache的基本原理當(dāng)CPU讀取主存中一個(gè)字時(shí),便發(fā)出此字的內(nèi)存地址到cache和主存。此時(shí)cache控制邏輯依據(jù)地址判斷此字當(dāng)前是否在 cache中: 若是,此字立即傳送給CPU; 若非,則用主存讀周期把此字從主存讀出送到CPU,與此同時(shí),把含有這個(gè)字的整個(gè)數(shù)據(jù)塊從主存讀出送到cache中,以便CPU以后接著訪問(wèn)相關(guān)信息。cache管理由硬件邏輯電路實(shí)現(xiàn)cache的命中率 在一個(gè)

21、程序執(zhí)行期間,設(shè)Nc表示cache完成存取的總次數(shù),Nm表示主存完成存取的總次數(shù),tc表示命中時(shí)的cache訪問(wèn)時(shí)間,tm表示未命中時(shí)的主存訪問(wèn)時(shí)間,r=tm/tc表示主存慢于cache的倍率。命中率h =mCCNNN CPU平均訪問(wèn)時(shí)間 ta = htc+(1-h)tm 訪問(wèn)效率e = aCtt=mCCthhtt)1 ( =hrr)1 (1=rhh)1 (1 cache的命中率為提高訪問(wèn)效率,命中率h越接近1越好,r值以510為宜,不宜太大。命中率h與程序的行為、cache的容量、組織方式、塊的大小有關(guān)。 主存與cache的地址映射 cache的容量很小,它保存的內(nèi)容只是主存內(nèi)容的一個(gè)子集。

22、cache與主存的數(shù)據(jù)交換是以塊為單位,需確定主存塊號(hào)對(duì)應(yīng)的Cache地址。地址映射即是應(yīng)用某種方法把主存地址定位到cache中。它由硬件實(shí)現(xiàn),對(duì)程序透明地址映射方式有全相聯(lián)方式、直接方式和組相聯(lián)方式三種 全相聯(lián)映射方式 讓主存的一個(gè)塊直接拷貝到cache中的任意一行上,主存中一個(gè)塊的塊號(hào)與塊的內(nèi)容一起存于cache的行中,其中塊號(hào)存于cache行的標(biāo)記部分中。 全相聯(lián)映射方式 非常靈活。但比較器難于設(shè)計(jì)和實(shí)現(xiàn),適合于小容量cache。 直接映射方式 一種多對(duì)一的映射關(guān)系,一個(gè)主存塊只能拷貝到cache的一個(gè)特定行位置上。cache的行號(hào)i和主存的塊號(hào)j有如下函數(shù)關(guān)系:i=j mod m(m為

23、cache中的總行數(shù))塊號(hào)分為兩部分,一部分確定行地址,另一部分存入標(biāo)記用于比較是否命中。 直接映射方式硬件簡(jiǎn)單,成本低。但塊只有一個(gè)固定的行位置可存放,易產(chǎn)生沖突。適合大容量cache。 組相聯(lián)映射方式 將cache分成u組,每組v行,Cache 總行數(shù)muv。主存塊存放到哪個(gè)組是固定的,至于存到該組哪一行是靈活的。cache的組號(hào)q和主存的塊號(hào)j有如下函數(shù)關(guān)系qj mod u 塊號(hào)分為兩部分,低位的確定組號(hào),高位存入標(biāo)記用于多中選一,確定是否命中。該方式中的每組行數(shù)v一般取值較小,多為2,4,8,16,這種規(guī)模的v路比較器容易設(shè)計(jì)和實(shí)現(xiàn)。而塊在組中的排放又有一定的靈活性,沖突減少。 組相聯(lián)

24、映射方式 組相聯(lián)映射方式替換策略 cache要保存新數(shù)據(jù),必然要產(chǎn)生替換。對(duì)直接映射的cache來(lái)說(shuō),只要把此特定位置上的原主存塊換出cache。對(duì)全相聯(lián)和組相聯(lián)cache來(lái)說(shuō), 就要從允許存放新主存塊的若干特定行中選取一行換出。常用的有最不經(jīng)常使用(LFU)算法,近期最少使用(LRU)算法,隨機(jī)替換算法。 最不經(jīng)常使用(LFU)算法 LFU算法將一段時(shí)間內(nèi)被訪問(wèn)次數(shù)最少的那行數(shù)據(jù)換出。每行設(shè)置一個(gè)計(jì)數(shù)器。從0開始計(jì)數(shù),每訪問(wèn)一次, 被訪行的計(jì)數(shù)器增1。當(dāng)需要替換時(shí),將計(jì)數(shù)值最小的行換出,同時(shí)將這些行的計(jì)數(shù)器清零。它將計(jì)數(shù)周期限定在對(duì)這些特定行兩次替換之間的間隔時(shí)間內(nèi),不能嚴(yán)格反映近期訪問(wèn)情況

25、。 近期最少使用(LRU)算法 LRU算法將近期內(nèi)長(zhǎng)久未被訪問(wèn)過(guò)的行換出。每行也設(shè)置一個(gè)計(jì)數(shù)器,cache每命中一次,命中行計(jì)數(shù)器清零,其它各行計(jì)數(shù)器增1。當(dāng)需要替換時(shí),將計(jì)數(shù)值最大的行換出。這種算法保護(hù)了剛拷貝到cache中的新數(shù)據(jù)行,有較高的命中率。 隨機(jī)替換算法隨機(jī)替換策略從特定的行位置中隨機(jī)地選取一行換出。在硬件上容易實(shí)現(xiàn),且速度也比前兩種策略快。缺點(diǎn)是降低了命中率和cache工作效率。 cache的寫操作策略 CPU對(duì)cache的寫入更改了cache的內(nèi)容??蛇x用寫操作策略使cache內(nèi)容和主存內(nèi)容保持一致。常用的有:寫回法,全寫法,寫一次法 寫回法當(dāng)CPU寫cache命中時(shí),只修改

26、cache的內(nèi)容,而不立即寫入主存;只有當(dāng)此行被換出時(shí)才寫回主存。這種方法減少了訪問(wèn)主存的次數(shù),但是存在不一致性的隱患。實(shí)現(xiàn)這種方法時(shí),每個(gè)cache行必須配置一個(gè)修改位,以反映此行是否被CPU修改過(guò)。 全寫法 當(dāng)寫cache命中時(shí),cache與主存同時(shí)發(fā)生寫修改,因而較好地維護(hù)了cache與主存的內(nèi)容的一致性。當(dāng)寫cache未命中時(shí),直接向主存進(jìn)行寫入。修改過(guò)的行可以讀入Cache(WTWA法)也可以不讀入Cache(WTNWA法)cache中每行無(wú)需設(shè)置一個(gè)修改位以及相應(yīng)的判斷邏輯。但降低了cache的功效。 寫一次法 基于寫回法并結(jié)合全寫法的寫策略,寫命中與寫未命中的處理方法與寫回法基本

27、相同,只是第一次寫命中時(shí)要同時(shí)寫入主存。這便于維護(hù)系統(tǒng)全部cache的一致性。 奔騰PC機(jī)的cache 奔騰PC機(jī)采用兩級(jí)cache結(jié)構(gòu)。安裝在主板上的2級(jí)cache(L2,512K,每行32B、64B、128B)采用2路組相聯(lián)映射方式,L2級(jí)cache采用寫回法。 集成在CPU內(nèi)的1級(jí)cache(L1,16K,每行32B)也采用2路組相聯(lián)映射方式。 L2級(jí)cache的內(nèi)容是主存的子集,而L1級(jí)cache又是L2級(jí)cache的子集。 奔騰PC機(jī)的cacheCPU中的L1分設(shè)成各8KB的指令cache和數(shù)據(jù)cache,可同時(shí)工作,有利于CPU高速執(zhí)行程序。指令cache是只讀的,數(shù)據(jù)cache采

28、用寫一次法。數(shù)據(jù)cache是雙端口,可同時(shí)存取2個(gè)數(shù)據(jù)。 數(shù)據(jù)cache共128組。每組2行,每行32B加20位標(biāo)記和2位狀態(tài)位,采用LRU替換算法,一組兩行共用一個(gè)LRU二進(jìn)制位。奔騰PC機(jī)的cacheCPU與外部數(shù)據(jù)交換時(shí),存儲(chǔ)器讀寫總線周期主要有兩類:一類是256位猝發(fā)式傳送,用于L1的行填入和行寫出,一次完成整行的填入或?qū)懗?。另一類是不?jīng)L1的64位傳送 ,稱為非超高速緩存式傳送。為維護(hù)cache的一致性,L1和L2均采用MESI協(xié)議,即要求每個(gè)cache行有兩個(gè)狀態(tài)位,用以描述該行當(dāng)前是處于修改態(tài)、專有態(tài)、共享態(tài)或者無(wú)效態(tài)中的哪種狀態(tài),從而決定對(duì)它的讀/寫操作行為。 虛擬存儲(chǔ)器 虛擬

29、存儲(chǔ)器只是一個(gè)容量非常大的存儲(chǔ)器的邏輯模型,不是任何實(shí)際的物理存儲(chǔ)器。它借助于磁盤等輔助存儲(chǔ)器來(lái)擴(kuò)大主存容量,使之為更大或更多的程序所使用。CPU當(dāng)前正在使用的代碼和數(shù)據(jù)存放在內(nèi)存中,暫時(shí)無(wú)用的存于外存,一旦有用的信息變得無(wú)用,就把它們送回到磁盤中。重復(fù)使用有限的內(nèi)存空間放置新的有用數(shù)據(jù)。它構(gòu)成主存-外存層次。以透明的方式給用戶提供了一個(gè)比實(shí)際主存空間大得多的程序地址空間。虛擬地址和物理地址 物理地址由CPU地址引腳送出,用于訪問(wèn)主存的地址。m根引腳尋址2m大小的物理地址空間虛擬地址由編譯程序生成,是程序的邏輯地址,程序中n位地址(nm),可獲得2n大小的虛擬地址空間。虛擬地址空間可能遠(yuǎn)遠(yuǎn)大于

30、物理地址空間,但其實(shí)際大小受到輔助存儲(chǔ)器容量的限制。 虛擬存儲(chǔ)器原理主存-外存結(jié)構(gòu)的有效使用也基于程序局部性原理:CPU總是傾向于在一段時(shí)間中執(zhí)行同一段代碼,處理同一批數(shù)據(jù)。變更代碼和數(shù)據(jù)段是偶爾發(fā)生的,僅此時(shí)才需要去除舊的信息,調(diào)入新的數(shù)據(jù)。這種換入換出是由硬件或操作系統(tǒng)完成的,對(duì)用戶是透明的。力圖使存儲(chǔ)系統(tǒng)的性能接近高速存儲(chǔ)器,價(jià)格接近低速存儲(chǔ)器。兩種存儲(chǔ)系統(tǒng)的主要區(qū)別在于虛擬存儲(chǔ)器中未命中的性能損失要遠(yuǎn)大于cache系統(tǒng)中未命中的損失。 基本信息傳送單位 主存-外存層次的基本信息傳送單位可采用幾種不同的方案:段、頁(yè)或段頁(yè)。段是按照程序的邏輯結(jié)構(gòu)劃分成的多個(gè)相對(duì)獨(dú)立部分,作為獨(dú)立的邏輯單位

31、分別進(jìn)行分配傳送。頁(yè)是主存物理空間中劃分出的等長(zhǎng)區(qū)域。執(zhí)行時(shí)以頁(yè)為單位進(jìn)行換入換出。段頁(yè)式管理采用分段和分頁(yè)結(jié)合的方法。程序按模塊分段,段內(nèi)再分頁(yè),進(jìn)入主存以頁(yè)為基本信息傳送單位。 頁(yè)式管理 主存物理空間中劃分出長(zhǎng)度為2L的等長(zhǎng)區(qū)域,起點(diǎn)、終點(diǎn)固定,稱為物理頁(yè),頁(yè)起點(diǎn)都在低L位為0的地方。虛擬空間也分成頁(yè),稱為邏輯頁(yè)。兩者大小相同 虛存地址分為兩個(gè)字段:高字段為邏輯頁(yè)號(hào)(n-L位),低字段為頁(yè)內(nèi)行地址(L位)。實(shí)存地址也分兩個(gè)字段:高字段為物理頁(yè)號(hào)(m-L位),低字段為頁(yè)內(nèi)行地址(L位)。頁(yè)式管理需要使用頁(yè)表,頁(yè)表中每一個(gè)虛存邏輯頁(yè)號(hào)有一個(gè)表目,表目?jī)?nèi)容包含該邏輯頁(yè)所在的主存頁(yè)面地址(物理頁(yè)號(hào)

32、),用它作為實(shí)存地址的高字段,與虛存地址的頁(yè)內(nèi)行地址字段相拼接,產(chǎn)生完整的實(shí)主存地址,據(jù)此來(lái)訪問(wèn)主存。 頁(yè)表表目?jī)?nèi)還存儲(chǔ)管理保護(hù)所需要的其他頁(yè)屬性,如裝入位,修改位,替換控制位,保護(hù)位等。裝入位:用于檢測(cè)該頁(yè)是否已在主存,如不在,將啟動(dòng)輸入輸出設(shè)備,根據(jù)頁(yè)表項(xiàng)中的外存地址,調(diào)入該頁(yè),同時(shí)修改該頁(yè)表項(xiàng)。修改位:指示該頁(yè)是否修改過(guò),若修改過(guò),調(diào)出時(shí)將寫回外存。否則,直接丟棄替換控制位:用于輔助替換算法確定應(yīng)該哪頁(yè)進(jìn)行替換。 慢表和快表為了避免頁(yè)表已保存或已調(diào)入主存儲(chǔ)器時(shí)對(duì)主存訪問(wèn)次數(shù)的增多, 把頁(yè)表的最活躍部分存放在高速存儲(chǔ)器中組成快表??毂碛捎布M成,可以是聯(lián)想存儲(chǔ)器,比頁(yè)表小得多。查表時(shí),由邏

33、輯頁(yè)號(hào)同時(shí)去查快表和慢表,當(dāng)在快表中有此邏輯頁(yè)號(hào)時(shí),就能很快地找到對(duì)應(yīng)的物理頁(yè)號(hào)送入實(shí)主存地址寄存器,從而做到雖采用虛擬存儲(chǔ)器但訪主存速度幾乎沒有下降。若找不到,在訪問(wèn)內(nèi)存中頁(yè)表項(xiàng),同時(shí)該項(xiàng)調(diào)入快表。 慢表和快表頁(yè)式管理特點(diǎn)頁(yè)表本身也可是主存中的一個(gè)頁(yè),甚至可能組成多級(jí)頁(yè)表,使用中還需要頁(yè)表基址寄存器。優(yōu)點(diǎn)是方便造頁(yè)表,新頁(yè)調(diào)入主存也很容易掌握,比段式空間浪費(fèi)小,僅最后一頁(yè)可能有浪費(fèi)。缺點(diǎn)是處理、保護(hù)和共享都不及段式來(lái)得方便。 段式管理 以程序中子程序、數(shù)據(jù)表等自然形成的模塊為單位,在主存中分配空間。段式管理虛存地址由段號(hào) (高n-L位)和段內(nèi)地址(L位)組成。物理地址由查表獲得的段起始地址(

34、可以是m位)加段內(nèi)地址(L位)組成。 需要用段表,記錄用戶名、段起點(diǎn)、段長(zhǎng)、段屬性等。段長(zhǎng)度可大可小,因此使用是要進(jìn)行段限檢查 段式管理段式管理特點(diǎn)段表本身也是主存中的一個(gè)段,需要一段表基址寄存器。段的邏輯獨(dú)立性使它易于編譯、管理、修改和保護(hù),也便于多道程序共享;某些類型的段(堆棧、隊(duì)列)具有動(dòng)態(tài)可變長(zhǎng)度,允許自由調(diào)度以便有效利用主存空間。因?yàn)槎蔚拈L(zhǎng)度各不相同,起點(diǎn)和終點(diǎn)不定,給主存空間分配帶來(lái)麻煩,而且容易在段間留下許多空余的零碎存儲(chǔ)空間,造成浪費(fèi)。段頁(yè)式管理結(jié)合段式虛擬存儲(chǔ)和頁(yè)式虛擬存儲(chǔ)。把程序按邏輯單位分段以后,再把每段分成固定大小的頁(yè)。程序?qū)χ鞔娴恼{(diào)入調(diào)出是按頁(yè)面進(jìn)行的,但它又可以按段

35、實(shí)現(xiàn)共享和保護(hù),兼?zhèn)漤?yè)式和段式的優(yōu)點(diǎn)。 每道程序通過(guò)一個(gè)段表和一組頁(yè)表來(lái)進(jìn)行定位。段表中的每個(gè)表目對(duì)應(yīng)一個(gè)段,有一個(gè)指向該段的頁(yè)表起始地址及該段的控制保護(hù)信息。由頁(yè)表指明該段各頁(yè)在主存中的位置以及是否已裝入、已修改等狀態(tài)信息。 段頁(yè)式管理如果有多個(gè)用戶在機(jī)器上運(yùn)行,多道程序的每一道需要一個(gè)基號(hào),由它指明該道程序的段表起始地址。虛擬地址格式:如計(jì)算機(jī)只有一個(gè)基址寄存器,基號(hào)可不要,多道程序切換時(shí),操作系統(tǒng)修改基址寄存器內(nèi)容。 基號(hào) 段號(hào) 頁(yè)號(hào) 頁(yè)內(nèi)地址 段頁(yè)式管理例:假設(shè)有三道程序(用戶標(biāo)志號(hào)為A,B,C),其基址寄存器內(nèi)容分別為SA,SB,SC,每道程序都有一張段表,A程序有4段,C程序有3段。每段應(yīng)有一張頁(yè)表,段表的每行就表示相應(yīng)頁(yè)表的起始位置,而頁(yè)表內(nèi)的每行即為相應(yīng)的物理頁(yè)號(hào)。虛實(shí)地址變換過(guò)程如下:根據(jù)基號(hào)C執(zhí)行SC加1(段號(hào)),得到段表相應(yīng)行地址,其內(nèi)容為頁(yè)表的起始地址。執(zhí)行b+2(頁(yè)號(hào)),得到物理頁(yè)號(hào)的地址,其內(nèi)容即為物理頁(yè)10。物理頁(yè)號(hào)與頁(yè)內(nèi)地址拼接即得物理地址。 段頁(yè)式管理段頁(yè)式管理特點(diǎn)既有段式管理符合程序邏輯結(jié)構(gòu),便于時(shí)治安保護(hù)和共享的優(yōu)點(diǎn)。也有頁(yè)式管理便于內(nèi)存分配回收,沒有碎片的優(yōu)點(diǎn)。缺點(diǎn)是在映射過(guò)程中需要多次查表。一般可用快表解決。 替換算法 當(dāng)需要的頁(yè)或段不在主存中時(shí),需要調(diào)入,如主存已滿,就需要進(jìn)行替換虛擬存儲(chǔ)器中的頁(yè)面替換策略和cache中

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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)論