高速緩沖存儲(chǔ)器的組成與運(yùn)行原理_第1頁
高速緩沖存儲(chǔ)器的組成與運(yùn)行原理_第2頁
高速緩沖存儲(chǔ)器的組成與運(yùn)行原理_第3頁
高速緩沖存儲(chǔ)器的組成與運(yùn)行原理_第4頁
高速緩沖存儲(chǔ)器的組成與運(yùn)行原理_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1第三單元 層次存儲(chǔ)器系統(tǒng)第三講 高速緩沖存儲(chǔ)器的組成與運(yùn)行原理劉衛(wèi)東2內(nèi)容提要 Cache的目的 基本原理 Cache的三種映射方式 提高Cache性能3CPU與DRAM性能比較處理器性能每年處理器性能每年增長增長60%動(dòng)態(tài)存儲(chǔ)器性能每年增長9%110100100019801981198319841985198619871988198919901991199219931994199519961997199819992000DRAMCPU1982CPU與主存儲(chǔ)器的性能差與主存儲(chǔ)器的性能差異,每年增長異,每年增長50%性能性能摩爾定律年份年份4Cache的提出一直以來,CPU和主存儲(chǔ)器的速度總是

2、有差距CPU的發(fā)展一直以速度為主,以提高速度為核心主存的發(fā)展一直以容量為主,以提高容量為核心如何解決這之間的矛盾?5這不是一個(gè)技術(shù)問題,而是一個(gè)經(jīng)濟(jì)問題。從技術(shù)上說,能制造出多高速度的CPU,就能制造出同樣速度的存儲(chǔ)器,只不過是我們是否愿意付出如此高的價(jià)格。有沒有更好的辦法?能否用廉價(jià)的高容量存儲(chǔ)器實(shí)現(xiàn)相對(duì)的高速度呢?6程序的局部性原理 程序在一定的時(shí)間段內(nèi)通常只訪問較小的地址空間 兩種局部性: 時(shí)間局部性 空間局部性地址空間訪問概率7層次存儲(chǔ)器系統(tǒng) 使用高速緩沖存儲(chǔ)器Cache來提高CPU對(duì)存儲(chǔ)器的平均訪問速度。 時(shí)間局部性:最近被訪問的信息很可能還要被訪問。 將最近被訪問的信息項(xiàng)裝入到Ca

3、che中。 空間局部性:最近被訪問的信息臨近的信息也可能被訪問。 將最近被訪問的信息項(xiàng)臨近的信息一起裝入到Cache中。8MEMORY CACHE CONTROLCACHE的基本運(yùn)行原理的基本運(yùn)行原理數(shù)據(jù)總線數(shù)據(jù)總線譯碼選一單元譯碼選一單元比較選一行比較選一行讀過程為例讀過程為例地址總線地址總線ADDR DATA CACHE CPU 9要解決的主要問題1. 地址之間的映射關(guān)系:如何從主存地址得到Cache地址?2. Cache中的內(nèi)容是否已經(jīng)是主存對(duì)應(yīng)地址的內(nèi)容?3. Cache內(nèi)容裝入策略如何提高Cache的命中率?10幾個(gè)參數(shù) 塊(Line):數(shù)據(jù)交換的最小單位 命中(Hit):在較高層次

4、中發(fā)現(xiàn)要訪問的內(nèi)容 命中率(Hit Rate):命中次數(shù)/訪問次數(shù) 命中時(shí)間:訪問在較高層次中數(shù)據(jù)的時(shí)間 失效(Miss):需要在較低層次中訪問塊 失效率(Miss Rate):1-命中率 失效損失(Miss Penalty):替換較高層次數(shù)據(jù)塊的時(shí)間+將該塊交付給處理器的時(shí)間 命中時(shí)間失效損失11參數(shù)典型數(shù)值 塊大?。?128Byte 命中時(shí)間:14周期 失效損失: 訪問時(shí)間:610個(gè)周期 傳輸時(shí)間:222個(gè)周期 命中率:80%99% Cache容量:1KB256KB12全相聯(lián)方式全相聯(lián)方式C P U數(shù)據(jù)數(shù)據(jù)地址地址有效位有效位主存儲(chǔ)器主存儲(chǔ)器CACHE比較比較譯碼譯碼標(biāo)志標(biāo)志數(shù)據(jù)數(shù)據(jù)塊號(hào)塊

5、內(nèi)地址主存地址13全相連映射硬件實(shí)現(xiàn)舉例14全相聯(lián)方式的地址映射特點(diǎn)1. 主存的字塊可以和Cache的任何字塊對(duì)應(yīng),利用率高,方式靈活。2. 標(biāo)志位較長,比較電路的成本太高。如果主存空間有2m塊,則標(biāo)志位要有m位。同時(shí),如果Cache有n塊,則需要有n個(gè)比較電路。使用成本太高15直接映射方式直接映射方式C P U數(shù)據(jù)數(shù)據(jù)地址地址有效位有效位主存儲(chǔ)器主存儲(chǔ)器CACHE比較比較譯碼譯碼譯碼譯碼塊塊內(nèi)內(nèi)地地址址塊塊號(hào)號(hào)標(biāo)志標(biāo)志數(shù)據(jù)數(shù)據(jù)塊號(hào)塊內(nèi)地址主存地址16Cache 舉例 8 塊 cache 每塊16 字節(jié) “直接映射”: 內(nèi)存中的每個(gè)單元在Cache中只會(huì)有一個(gè)唯一的位置和它對(duì)應(yīng)。 0-1532

6、-4716-31128-143160-175144-15917直接映射Cache 舉例 假定有如下訪問操作: Read location 0 Read location 16 Read location 32 Read location 4 Read location 8 Read location 36 Read location 32 Read location 128 Read location 148 cache中命中和缺失各有多少次?0-1532-4716-31128-143160-175144-1590-1516-3132-47XXX 128-143XXX 144-15918Cac

7、he 舉例:續(xù) Cache中命中和缺失次數(shù)? Read location 0: Miss Read location 16: Miss Read location 32: Miss Read location 4: Hit Read location 8: Hit Read location 36: Hit Read location 32: Hit Read location 128: Miss Read location 148: Miss 命中率 = 4/9 = 45% 注意:失效的原因 啟動(dòng)失效 沖突失效0-1532-4716-31128-143160-175144-1590-1516

8、-3132-47XXX 128-143XXX 144-15919直接映射 Cache:硬件實(shí)現(xiàn)Address (showing bit positions)2010ByteoffsetValid TagDataIndex012102110221023TagIndexHitData203231 30 13 12 11 2 1 020 增加塊大小可以更好地利用空間局部性直接映射 Cache: 硬件實(shí)現(xiàn) Address (showing bit positions)1612ByteoffsetVTagDataHitData16324Kentries16 bits128 bitsMux32323223

9、2Block offsetIndexTag31 16 15 4 32 1 021直接映射方式的地址映射特點(diǎn)1. 主存的字塊只可以和固定的Cache字塊對(duì)應(yīng),方式直接,利用率低。2. 標(biāo)志位較短,比較電路的成本低。如果主存空間有2m塊,Cache中字塊有2c塊,則標(biāo)志位只要有m-c位。且僅需要比較一次。利用率低,命中率低,效率較低22兩路組相聯(lián)方式兩路組相聯(lián)方式C P U數(shù)據(jù)數(shù)據(jù)地址地址有效位有效位主存儲(chǔ)器主存儲(chǔ)器CACHE譯碼譯碼比較比較比較比較譯碼譯碼譯碼譯碼標(biāo)志標(biāo)志數(shù)據(jù)數(shù)據(jù)塊號(hào)塊內(nèi)地址主存地址23兩路組組相聯(lián)方式的地址映射特點(diǎn)1. 前兩種方式的折衷方案。組間為全相連,組內(nèi)為直接映射。2.

10、集中了兩個(gè)方式的優(yōu)點(diǎn)。成本也不太高。是常用的方式24組相連Cache訪問舉例z 假設(shè)有下列訪問主存順序:yRead location 0: MissyRead location 16: MissyRead location 32: MissyRead location 4: HityRead location 8: HityRead location 36: HityRead location 32: HityRead location 128: MissyRead location 148: MissyRead location 0: HityRead location 128: HityR

11、ead location 4: HityRead location 132: Hit0-1564-790-1516-3132-47128-143144-15925四路組相連Cache實(shí)現(xiàn)Address228VTagIndex012253254255DataVTagDataVTagDataVTagData32224-to-1 multiplexorHitData123891011123031026三種映射方式比較 直接映射 主存中的一塊只能映射到Cache中唯一的一個(gè)位置 定位時(shí),不需要判斷,只需替換 全相連映射 主存中的一塊可以映射到Cache中任何一個(gè)位置 N路組相連映射 主存中的一塊可以選

12、擇映射到Cache中N個(gè)位置 全相連映射和N路組相連映射的失效處理 從主存中取出新塊 為了騰出Cache空間,需要替換出一個(gè)Cache塊 不唯一,則需要判斷應(yīng)替出哪塊27提高Cache的性能1. 提高命中率 2. 縮短缺失后的處理時(shí)間3. 提高訪問cache的速度28Cache缺失的原因 必然缺失 (開機(jī)或進(jìn)程切換):首次訪問數(shù)據(jù)塊 世事總是有缺憾 注意:如果我們運(yùn)行幾百萬條指令,有點(diǎn)必然缺失又何妨? 沖突缺失 多個(gè) memory塊映射到同一 cache塊 解決辦法 1:增大 cache 容量 解決辦法 2:增加相連組數(shù) 容量沖突 Cache無法裝入程序需要訪問的所有塊 方案:增大 cache

13、 容量 無效缺失:其它進(jìn)程(如I/O)修改了主存29影響影響 CACHE 命中率的因素命中率的因素 從從 CACHE 本身諸因素看,可能:本身諸因素看,可能:1. CACHE 的容量,大一些好的容量,大一些好2. CACHE 與主存儲(chǔ)器每次交換與主存儲(chǔ)器每次交換 信息的單位量信息的單位量(Cache Line Size)適中適中3. CACHE 不同的組織方式,多路組相聯(lián)更好不同的組織方式,多路組相聯(lián)更好4. CACHE 的多級(jí)組織可提高命中率的多級(jí)組織可提高命中率5. CACHE 裝滿后的換字算法裝滿后的換字算法30Cache命中率0%20%40%60%80%100%181632641282

14、56512Cache Size in KBHit Rate31塊大小和缺失率的關(guān)系1 K B8 K B1 6 K B6 4 K B2 56 K B25 64 0%3 5%3 0%2 5%2 0%1 5%1 0%5 %0 %Miss rate641 64B lock size (byte s)32塊大小的權(quán)衡 一般來說,數(shù)據(jù)塊較大可以更好地利用空間局部性,但是: 數(shù)據(jù)塊大意味著缺失損失的增大: 需要花費(fèi)更長的時(shí)間來裝入數(shù)據(jù)塊 若塊大小相對(duì)Cache總?cè)萘縼碚f太大的話,命中率將降低 Cache塊數(shù)太少一般來說,平均訪問時(shí)間 = 命中時(shí)間 x 命中率 + 失效損失 x 缺失率缺失損失缺失損失塊大小塊

15、大小缺失率缺失率利用空間局部性較少的數(shù)據(jù)塊:彌補(bǔ)時(shí)間局部性平均訪平均訪問時(shí)間問時(shí)間增加了缺失損失和缺失率塊大小塊大小塊大小塊大小33Cache的替換算法1. 先進(jìn)先出算法(FIFO)將最早調(diào)入Cache的字塊替換出去。容易實(shí)現(xiàn),開銷小。2. 最近最少使用算法(LRU)需要計(jì)算字塊的使用次數(shù),開銷大,但平均命中率比FIFO要高。3. 隨機(jī)替換(RAND)34多級(jí)Cache 采用兩級(jí)或更多級(jí)cache來提高命中率 將Cache分解為指令Cache和數(shù)據(jù)Cache35CACHE 接入系統(tǒng)的體系結(jié)構(gòu)接入系統(tǒng)的體系結(jié)構(gòu)1. 側(cè)接法:像入出設(shè)備似的連接到側(cè)接法:像入出設(shè)備似的連接到 總線上,優(yōu)點(diǎn)是結(jié)構(gòu)簡單

16、,成本低,總線上,優(yōu)點(diǎn)是結(jié)構(gòu)簡單,成本低, 缺點(diǎn)是不利于降低總線占用率缺點(diǎn)是不利于降低總線占用率。CPUMEMORYCACHEBus Master 1Bus Master 2總線總線36CACHE 接入系統(tǒng)的體系結(jié)構(gòu)接入系統(tǒng)的體系結(jié)構(gòu)2. 隔斷法:把原來的總線打斷為兩段,隔斷法:把原來的總線打斷為兩段, 使使 CACHE 處在兩段之間,優(yōu)點(diǎn)是有利處在兩段之間,優(yōu)點(diǎn)是有利于提高總線利用率,支持總線并發(fā)操作,于提高總線利用率,支持總線并發(fā)操作,缺點(diǎn)是結(jié)構(gòu)復(fù)雜,成本較高。缺點(diǎn)是結(jié)構(gòu)復(fù)雜,成本較高。CPUMEMORYCACHEBus Master 1Bus Master 2總線總線37改寫主存儲(chǔ)器的策

17、略改寫主存儲(chǔ)器的策略若 CPU 改寫了 CACHE 一單元內(nèi)容后且尚未改變主存相應(yīng)單元內(nèi)容,則出現(xiàn)數(shù)據(jù)不一致性。有兩種解決辦法:1.接下來直接改寫主存單元內(nèi)容(Write Through) 簡便易行, 但可能帶來系統(tǒng)運(yùn)行效率不高的問題。需要寫入緩沖存儲(chǔ)器。2.拖后改寫主存單元內(nèi)容(Write Back)一直拖到有另外的設(shè)備要讀該內(nèi)容過時(shí)的主存單元時(shí),則首先停止這一讀操作,接下來改寫主存內(nèi)容,之后再起動(dòng)已停下來的讀操作。 矛盾是如何檢查是否是讀無效內(nèi)存單元的操作,這是通過 監(jiān)視地址總線完成的,記下無效單元地址用于比較。 控制復(fù)雜些,但可以提供更高的系統(tǒng)運(yùn)行效率。38Pentium上的Cache

18、Intel的80386及更早的處理器芯片上并沒有片上的高速緩沖存儲(chǔ)器。 80486:引入一個(gè)8K字節(jié)的片上Cache,其塊大小為16字節(jié),采用的是四路組相連映象方式。 Pentium:芯片上已經(jīng)有了兩個(gè)8K字節(jié)的片上cache,一個(gè)用作指令緩存,另一個(gè)用作數(shù)據(jù)緩存。它們的塊大小都為32字節(jié),采用兩路組相連的組織方式。3964位總線接口指令緩存(8 KB)指令分支預(yù)測預(yù)取緩沖器整型寄存器組數(shù)據(jù)緩存(8 KB)浮點(diǎn)算邏部件浮點(diǎn)寄存器組整型ALU整型ALU乘法器加法器除法器32位64位32位32位U流水線V流水線32位32位256位64位 Pentium結(jié)構(gòu)簡圖40Pentium的數(shù)據(jù)緩存 數(shù)據(jù)緩存

19、由128組,每組兩個(gè)cache塊組成,從邏輯上可以看成是大小為4K字節(jié)的兩“路”。 每個(gè)cache塊都有20位的標(biāo)記位和兩位的狀態(tài)位與其對(duì)應(yīng),標(biāo)記位即存放在該cache塊中的主存塊的地址的高20位,兩位狀態(tài)位可以標(biāo)記出4個(gè)不同的塊狀態(tài)。 替換算法采用的是最近最少使用法(LRU),所以對(duì)每組cache塊還需要有1位的LRU位來表示CPU最近訪問的是該組中的哪一塊。 采用拖后寫策略。 支持兩級(jí)Cache。41Pentium Cache塊的狀態(tài) 修改態(tài)(M):處于這個(gè)狀態(tài)的cache塊中的數(shù)據(jù)已經(jīng)被修改過,和主存中對(duì)應(yīng)的數(shù)據(jù)已不同,只能從cache中讀到正確的數(shù)據(jù)。 獨(dú)占態(tài)(E):處于本狀態(tài)的cache塊的數(shù)據(jù)和主存中對(duì)應(yīng)的數(shù)據(jù)塊內(nèi)容相同,而且在其它c(diǎn)ache中沒有副本。 共享態(tài)(S):處于本狀態(tài)的cache塊的數(shù)據(jù)和主存中對(duì)應(yīng)的數(shù)據(jù)塊內(nèi)容相同,而且可能在其它c(diǎn)ache中有該塊的副本。 非法態(tài)(I):處于本狀態(tài)的cache塊中尚未裝入數(shù)據(jù)。42兩級(jí)Cache塊的狀態(tài)轉(zhuǎn)換IL1:L2:SIEEMM讀入數(shù)據(jù)讀入數(shù)據(jù)第一次修改第二次修改多次修改訪問主存第一次修改訪問主存替換策略:S、E狀態(tài)不需改寫L243寫主存順序 L2監(jiān)聽到其它總線主設(shè)備寫請(qǐng)求,并要求該設(shè)備等待; L2將要被寫的地址

溫馨提示

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