第7章 存儲器分層體體系結(jié)構(gòu)_第1頁
第7章 存儲器分層體體系結(jié)構(gòu)_第2頁
第7章 存儲器分層體體系結(jié)構(gòu)_第3頁
第7章 存儲器分層體體系結(jié)構(gòu)_第4頁
第7章 存儲器分層體體系結(jié)構(gòu)_第5頁
已閱讀5頁,還剩88頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

計算機(jī)組成與系統(tǒng)結(jié)構(gòu)ComputerOrganizationAndSystemsArchitecture教師:張建E-mail:Zj960514@163.com辦公室:主樓B1-7072021/6/271

引言馮·若依曼(Von·Nouma)美籍匈牙利數(shù)學(xué)家1903–1957存儲程序概念要運(yùn)行的程序必須先調(diào)入內(nèi)存,然后再執(zhí)行。程序MemoryCPULoadAllExecuteOnebyone2021/6/2727.1存儲器概述存儲器的分類半導(dǎo)體存儲器1.靜態(tài)隨機(jī)存儲器—SRAM2.動態(tài)隨機(jī)存儲器—DRAM磁表面存儲器:容量、存儲周期例:2GB60ns容量、轉(zhuǎn)速例:200GB7200轉(zhuǎn)/分3.閃存-FlashMemory2021/6/273光盤存儲器:1.CD-ROM:只讀性光盤2.WORM:寫入式(只能寫一次)3.CD-RW:可擦/寫光盤DVD-DigitalVersatileDisc4.7GBVCD-VideoCompactDisc700MB7.1存儲器概述2021/6/274存儲器存取方式

可按地址隨機(jī)地訪問任一存儲單元隨機(jī)存取存儲器(RAM)

訪問時間與訪問地址無關(guān)順序存取存儲器(SAM)必須按順序訪問,例如:磁帶。速度慢,現(xiàn)在已Out了。7.1存儲器概述2021/6/275直接存取儲器(DAM)7.1存儲器概述

第1步:直接選取該區(qū)域第2步:該區(qū)域內(nèi)順序存取2021/6/276按可更改性分類7.1存儲器概述

只讀存儲器(ROM)

讀/寫存儲器最初的信息是如何寫入的呢?2021/6/277按功能分類7.1存儲器概述高速緩沖存儲器主存儲器輔助存儲器海量后備存儲器2021/6/278主存儲器基本框圖地址寄存器地址譯碼讀寫控制電路地址線讀寫控制信號數(shù)據(jù)線2021/6/279存儲器的主要性能指標(biāo)

存儲容量單位:Byte、KB、MB、GB

存取周期CPU連續(xù)訪存中平均一次存取操作所需的時間。7.1.3存儲器的主要性能指標(biāo)

存儲器的帶寬

單位時間內(nèi)傳輸?shù)淖畲髷?shù)據(jù)率,字節(jié)/秒2021/6/27107.1.4存儲器的層次化結(jié)構(gòu)CPU主存儲器馮·若依曼計算機(jī)體系結(jié)構(gòu)輔助存儲器解決大容量低成本矛盾Cache解決CPU與主存與速度不匹配的矛盾2021/6/27117.2.4半導(dǎo)體隨機(jī)存取存儲器10

六管靜態(tài)MOS管存儲單元1110假設(shè)要將“1”存儲在該單元中2021/6/27127.2.4半導(dǎo)體隨機(jī)存取存儲器靜態(tài)RAM的組成2021/6/27137.2.4半導(dǎo)體隨機(jī)存取存儲器(1)無需進(jìn)行數(shù)據(jù)的刷新,外圍電路簡單。(2)速度快。(3)管數(shù)較多,成本高。(4)功耗大,雙穩(wěn)態(tài)觸以器中始終有一個MOS管導(dǎo)通。靜態(tài)存儲器(SRAM)的特點:2021/6/27147.2.4半導(dǎo)體隨機(jī)存取存儲器靜態(tài)RAM芯片舉例2021/6/27157.2.4半導(dǎo)體隨機(jī)存取存儲器6264引腳功能說明:

A12~A0:地址線

D7~D0:數(shù)據(jù)線

NC:未使用

CE:片選信號

WE:寫信號

OE:讀信號2021/6/27167.2.4半導(dǎo)體隨機(jī)存取存儲器動態(tài)存儲器DRAM11111假設(shè)要將“1”存儲在該單元中2021/6/27177.2.4半導(dǎo)體隨機(jī)存取存儲器從存儲單元中讀出數(shù)據(jù)1/0VB=(V1+V0)/2①預(yù)充電VBV1=“1”的電平V0=“0”的電平11②③該點有充放電現(xiàn)象,以此判斷1/02021/6/27187.2.4半導(dǎo)體隨機(jī)存取存儲器從動態(tài)存儲器的工作原理可知:集成度高,功耗低,位成本低。由于電容存存漏電現(xiàn)象,需周期刷新。是破壞性讀出,需讀后重寫。2021/6/27197.3.2存儲器芯片的擴(kuò)展當(dāng)單個存儲芯片的容量不能滿足系統(tǒng)要求時,需多片組合起來以擴(kuò)展字長(位擴(kuò)展)或字?jǐn)?shù)(字?jǐn)U展)或字位全擴(kuò)展。位擴(kuò)展在位數(shù)方向擴(kuò)展(加大字長),使芯片的位數(shù)與系統(tǒng)要求位數(shù)相一致的。2021/6/27207.3.2存儲器芯片的擴(kuò)展當(dāng)單個存儲芯片的容量不能滿足系統(tǒng)要求時,需多片組合起來以擴(kuò)展字長(位擴(kuò)展)或字?jǐn)?shù)(字?jǐn)U展)或字位全擴(kuò)展。位擴(kuò)展在位數(shù)方向擴(kuò)展(加大字長),使芯片的位數(shù)與系統(tǒng)要求位數(shù)相一致的。2021/6/27217.3.2存儲器芯片的擴(kuò)展

2021/6/2722字?jǐn)U展

譯碼電路

2021/6/27237.4半導(dǎo)體只讀存儲器和Flash存儲器半導(dǎo)體只讀存儲器掩膜只讀存儲器可編程只讀存儲器可擦除可編程只讀存儲器電擦除電改寫只讀存儲器半導(dǎo)體Flash存儲器2021/6/27247.5并存儲器結(jié)構(gòu)技術(shù)

譯碼電路連續(xù)編址方式2021/6/27257.5并存儲器結(jié)構(gòu)技術(shù)

譯碼電路交叉編址方式2021/6/27267.6高速緩沖存儲器控制器數(shù)據(jù)路徑存儲器處理器輸入輸出指令數(shù)據(jù)存儲器向處理器提供指令和數(shù)據(jù)但問題是:存儲器太小、太慢?2021/6/2727時間局部性如果某個數(shù)據(jù)被訪問,那么很快它有可能再次被訪問??臻g局部性如果某個數(shù)據(jù)被訪問,那么與它鄰近的數(shù)據(jù)有可能很快被訪問。Really?別騙我!局部性原理2021/6/2728Cache的基本原理DRAM的發(fā)展趨勢容量:4倍/3年速度:2倍/10年2021/6/2729Cache的基本原理CPU與Memory的速度差110100100019801981198319841985198619871988198919901991199219931994199519961997199819992000CPU1982增長:50%/年性能“Moore’sLaw”DRAM2021/6/2730Cache的基本工作原理問題:存儲器太小、太慢辦法:存儲器系統(tǒng)分層結(jié)構(gòu)控制器數(shù)據(jù)路徑存儲器(內(nèi)存)(DRAM)處理器寄存器L1Cache(SRAM)L2Cache(SRAM)外存(硬盤)2021/6/2731處理器數(shù)據(jù)行或塊命中:數(shù)據(jù)在高層存儲器缺失:數(shù)據(jù)沒有位于高層存儲器Cache的基本工作原理2021/6/2732術(shù)語命中率在高層存儲器中找到訪問數(shù)據(jù)的比例。缺失率在高層存儲器中沒有找到訪問數(shù)據(jù)的比例。缺失率=1–

命中率2021/6/2733術(shù)語命中時間訪問高層存儲器所需的時間。缺失代價將數(shù)據(jù)塊從低層搬到高層存儲器并送到處理器所需的時間。判斷時間+數(shù)據(jù)傳送時間2021/6/2734當(dāng)前計算機(jī)的存儲器結(jié)構(gòu)SystemControllerL1CacheMainMemory(DRAM)GraphicsProcessor(I/OBus)L2CacheProcessor2021/6/2735Cache的原理CPU主存Cache插入到CPU與主存間由快速SRAM實現(xiàn)存儲程序的部分指令數(shù)據(jù)操作:命中(在Cache中)未命中(不在Cache中)2021/6/2736例題:例7.2(1)Cache的命中率?訪存次數(shù):未命中次數(shù):命中率:

2021/6/2737例題:例7.2(2)CPU的平均訪存時間?

2021/6/2738實現(xiàn)Cache的4個關(guān)鍵問題1:數(shù)據(jù)塊放在Cache的什么地方?2:如何在Cache中找到所需的數(shù)據(jù)塊?3:Cache未命中時如何轉(zhuǎn)換數(shù)據(jù)塊?4:寫數(shù)據(jù)時如何寫?A.只寫Cache?B.只寫Memory?C.同時時寫Cache和Memory?D.其它?2021/6/2739基本的Cache設(shè)計-直接映射主存中每一個頁只能映射到某一固定的Cache頁中,直接映射有如下函數(shù)關(guān)系:K=jmodK:Cache的頁號j:主存的頁號n:Cache頁號的位數(shù)Cache中的頁數(shù)=2nCache中的頁數(shù)2021/6/2740假定:主存的容量為1MB,每頁大小512B,分為2048頁;Cache的容量為8KB,每頁大小512B,分為16頁;二者必須相等基本的Cache設(shè)計-直接映射2021/6/2741組號第0頁7位Cache組號第1頁……組號第15頁第0頁第1頁…第15頁第16頁第17頁…第31頁第2032頁第2033頁…第2047頁…0組1組127組主存組號組內(nèi)頁號頁內(nèi)地址XXYYZZ749定位Cache頁,讀取組號相等嗎?據(jù)此判斷內(nèi)存目標(biāo)頁是否在Cache中基本的Cache設(shè)計-直接映射2021/6/2742內(nèi)存地址結(jié)構(gòu)的設(shè)計組號組內(nèi)頁號數(shù)據(jù)頁(512B)4位7位主存的容量為1MB,每頁大小512B,分為2048頁

9位

基本的Cache設(shè)計-直接映射2021/6/2743Cache地址結(jié)構(gòu)的設(shè)計Cache的容量為8KB,每頁大小512B,分為16頁標(biāo)記位有效位數(shù)據(jù)頁(512B)1位7位

必須與主存頁大小相同基本的Cache設(shè)計-直接映射數(shù)據(jù)是否已存入標(biāo)記2021/6/2744000010100101110100100…1110101011…1……………0000101010XXXXXXXXX098121119VTagData=DATAHIT基本的Cache設(shè)計-直接映射2021/6/2745特點:硬件實現(xiàn)容易;Cache利用率低;基本的Cache設(shè)計-直接映射2021/6/2746舉例假設(shè)一個直接映射的Cache,有16KB數(shù)據(jù),塊大小4個字,地址32位,那么Cache總共有多少位?(即Cache的大小)參考答案:MIPS中:32位/字=4字節(jié)/字塊大?。?字/塊=16字節(jié)/塊=128位/塊16KB分為:16K÷16=1K=1024(塊)2021/6/2747舉例數(shù)據(jù)塊0128bit有效位1bit標(biāo)記位18bit數(shù)據(jù)塊1有效位標(biāo)記位數(shù)據(jù)塊1023有效位標(biāo)記位……1024

2021/6/2748舉例對于前面例子,若內(nèi)存地址分別為100005和0x100005的字節(jié)將分別映到Cache的哪一塊?

參考答案:對于內(nèi)存地址100005∴該內(nèi)存地址位于第?????塊

6249塊?6250塊?6251塊?6250塊2021/6/274910位舉例參考答案:對于內(nèi)存地址0x100005010100000000000000000001500001十六進(jìn)制二進(jìn)制

2021/6/2750基本的Cache設(shè)計-全相聯(lián)映射主存中每一個頁可映射到任意一個Cache頁中。CacheMemoryTagBlock0………………TagBlockm-1Block0Block1……………Blockn-12021/6/2751基本的Cache設(shè)計-全相聯(lián)映射地址結(jié)構(gòu)設(shè)計主存的容量為1MB,每頁大小512B,分為2048頁Cache的容量為8KB,每頁大小512B,分為16頁標(biāo)記位有效位數(shù)據(jù)頁(512B)1位11位標(biāo)記位數(shù)據(jù)頁(512B)11位9位判斷是否在Cache中2021/6/2752基本的Cache設(shè)計-全相聯(lián)映射特點:Cache標(biāo)記太長,判斷時間太長硬件復(fù)雜Cache利用率高2021/6/2753n路組相聯(lián)映射假設(shè):主存:32位地址線Cache大?。?56KB塊大?。?KBn:4,即4路組組相聯(lián)映射基本的Cache設(shè)計-組組相聯(lián)映射2021/6/2754組組相聯(lián)映射-Cache的設(shè)置TagBlock0TagBlock1TagBlock2TagBlock3TagBlock0TagBlock1TagBlock2TagBlock3…TagBlock0TagBlock1TagBlock2TagBlock34路相聯(lián)0組1組15組∵組的大小=4×4=16KB∴Cache的組數(shù)=256÷16=16∴最后組是15組2021/6/2755組組相聯(lián)映射-主存(Memory)的設(shè)置…Block0Block1…Block15Block0Block1…Block15∵Cache分為16組0組Block0Block1…Block151組65535組∵組的大小=16×4=64KB∴主存的組數(shù)=232÷210÷64=65536∴最后組是65535組2021/6/2756組組相聯(lián)映射-Cache-Memory)的映射關(guān)系…Block0Block1…Block15Block0Block1…Block15Block0Block1…Block15TagBlock0TagBlock1TagBlock2TagBlock3TagBlock0TagBlock1TagBlock2TagBlock3…TagBlock0TagBlock1TagBlock2TagBlock30組1組15組0組1組65535組CacheMemory2021/6/2757組組相聯(lián)映射-主存(Memory)地址12bits組內(nèi)塊號:0~1516bits組號:0~655354bits塊內(nèi)尋址:塊大小4K310111215162021/6/2758組組相聯(lián)映射-Cache的標(biāo)志(Tag)1bit16bits有效位Tag數(shù)據(jù)塊Data問題(針對前面的假設(shè)):主存地址:101A1234(Hex)計算:該地址數(shù)據(jù)放入Cache后,在Cache中的的塊號及對應(yīng)Cache項的Tag是多少?內(nèi)存中的組號2021/6/2759在Cache中查找一個塊4路相聯(lián)Cache2021/6/2760Cache的缺失與關(guān)聯(lián)度關(guān)聯(lián)度數(shù)據(jù)缺失率110.3%28.6%48.3%88.1%Cache:Size=64KB,Blocksize=16words10個SPEC2000測試程序的結(jié)果2021/6/2761標(biāo)記位大小與組組相聯(lián)假設(shè)一個Cache:有4K個塊塊大小為4個字主存地址為32位計算:直接映射、兩路組相聯(lián)、四路組相聯(lián)和全相聯(lián)映射時,Cache的總組數(shù)及總的標(biāo)記位數(shù)?2021/6/2762標(biāo)記位大小與組組相聯(lián)1.直接映射Cache的1個塊就是1個組∴Cache的總組數(shù):4K=212

塊大小4個字,即16=24個字節(jié),故需要4位地址表示。

2021/6/2763標(biāo)記位大小與組組相聯(lián)2.兩路組映射Cache的2個塊為1個組

2021/6/2764標(biāo)記位大小與組組相聯(lián)3.四路組映射Cache的4個塊為1個組

2021/6/2765標(biāo)記位大小與組組相聯(lián)5.全相聯(lián)映射Cache只有一個4K的塊組

2021/6/2766主存(Memory)地址12bits組內(nèi)塊號:0~1516bits組號:0~655354bits塊內(nèi)尋址:塊大小4K310111215162021/6/2767Cache的標(biāo)志(Tag)1bit16bits有效位Tag數(shù)據(jù)塊Data問題(針對前面的假設(shè)):主存地址:101A1234(Hex)計算:該地址數(shù)據(jù)放入Cache后,在Cache中的的塊號及對應(yīng)Cache項的Tag是多少?內(nèi)存中的組號2021/6/2768問題解答(1):1.首先計算該地址在主存的塊號:n∴該地址所在的塊號是:

2.分析塊號n在主存中的組號及組內(nèi)序號在主存中的組號:101AH組內(nèi)序號:1H(∵每組有16個塊)2021/6/2769問題解答(2):3.存入Cache后所對應(yīng)的塊∴映射到Cache的第1組,即:∵塊在主存中組內(nèi)序號為1H4.對應(yīng)Cache的Tag是:101AHCache塊號為:4~7中的某一塊2021/6/2770存入Cache后的情況有效位Tag………Data………1組4#塊0#塊

7#塊63#塊………1101AH

XXXCache2021/6/2771缺失率與塊大小2021/6/2772缺失率與塊大小Cache塊較大時,一

旦缺失,帶來的延時和開銷是比較大的。提前重啟(earlyrestart)當(dāng)塊中所需字一旦返回就馬上執(zhí)行,而不需要等待整個塊都傳過來再執(zhí)行。該技術(shù)用于指令訪問,效果較好,因為指令通常是連續(xù)的。該技術(shù)用于數(shù)據(jù)Cache效率要低一些,因為請求的數(shù)據(jù)其分布無法預(yù)知。2021/6/2773缺失率與塊大小請求字優(yōu)先/關(guān)鍵字優(yōu)先缺失時,先將請求字從存儲器傳輸?shù)紺ache中,然后再傳輸該塊的剩余部分,之后再從塊的開始部分傳輸。該技術(shù)的延時性能比提前重啟要好一些。2021/6/2774Cache的缺失處理指令Cache缺失的處理步驟將PC-4送到存儲器中通知主存執(zhí)行讀操作,并等待主存訪問完成寫Cache項,并設(shè)置Cache相關(guān)標(biāo)志重新取指令,此時指令在Cache中2021/6/2775寫操作處理Write-through(寫直達(dá)/通寫)當(dāng)需要寫數(shù)據(jù)時(執(zhí)行Store指令),將數(shù)據(jù)同時寫入Cache和主存中。優(yōu)點:Cache和主存的內(nèi)容保持一致。缺點:耗時長,效率低。2021/6/2776寫操作處理寫缺失當(dāng)要寫的數(shù)據(jù)不在Cache中時,發(fā)生寫缺失。1.將主存中的數(shù)據(jù)塊讀到Cache;2.將要寫的數(shù)據(jù)寫到Cache和主存中;為什么不直接寫到Cache和主存?2021/6/2777寫操作處理寫直達(dá)方法簡單,但效率低下例如,10%的指令是store,沒有Cache失缺的情況下,CPI為1.0,每次寫操作要額外花費100個周期,此時CPI為:CPI-Clock

cycle

Per

Instruction

2021/6/2778寫操作處理寫緩沖(Writebuffer)當(dāng)有數(shù)據(jù)需要寫入主存時:將數(shù)據(jù)寫入Cache和寫緩沖區(qū)(writebuffer)后,處理器繼續(xù)執(zhí)行;當(dāng)寫主存操作完成后,寫緩沖區(qū)里的數(shù)據(jù)被釋放;若寫緩沖區(qū)滿,則處理器必須等待一個寫操作完成后(釋放一個空位)才能將數(shù)據(jù)寫入寫緩沖區(qū)。2021/6/2779寫操作處理寫回機(jī)制(Write–back回寫)當(dāng)有數(shù)據(jù)需要寫入主存時:先將數(shù)據(jù)寫入Cache,并作已修改標(biāo)記;當(dāng)被修改的Cache塊被替換時才將Cache的內(nèi)容寫回主存;2021/6/2780精解寫缺失時的策略寫直達(dá)/通寫(writethrough)1.寫分配策略(writeallocate)2.寫不分配策略(nowriteallocate)寫回機(jī)制/回寫(writeback)2021/6/2781設(shè)計支持Cache

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論