




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、什么是cache Cache又叫高速緩沖存儲(chǔ)器,位于CPU與內(nèi)存之間,是一種特殊的存儲(chǔ)器子系統(tǒng)。 目前比較常見的是兩極cache結(jié)構(gòu),即cache系統(tǒng)由一級(jí)高速緩存L1 cache和二級(jí)高速緩存L2 cache組成,L1 cache通常又分為數(shù)據(jù)cache(I-Cache)和指令cache(D-Cache),它們分別用來存放數(shù)據(jù)和執(zhí)行這些數(shù)據(jù)的指令。 兩極cache相比較而言,L1 cache的容量小,但數(shù)據(jù)存取速度較快,L2 cache的容量大,但數(shù)據(jù)存取速度較慢。部分系統(tǒng)中也存在三級(jí)cache的結(jié)構(gòu)。Cache的作用是什么 Cache的作用就是為了提高CPU對(duì)存儲(chǔ)器的訪問速度。 電腦的內(nèi)存
2、是以系統(tǒng)總線的時(shí)鐘頻率工作的,這個(gè)頻率通常也就是CPU的外頻。但是,CPU的工作頻率(主頻)是外頻與倍頻因子的乘積。這樣一來,內(nèi)存的工作頻率就遠(yuǎn)低于CPU的工作頻率了。這樣造成的直接結(jié)果是:CPU在執(zhí)行完一條指令后,常常需要“等待”一些時(shí)間才能再次訪問內(nèi)存,極大降了CPU工作效率。在這樣一種情況下,cache就應(yīng)運(yùn)而生了。 指令地址 96loop: ADD r2, r1, r1 100 SUBI r3, r3, #1 104 BNEZ r3, loop 108 112典型的內(nèi)存訪問模式 Cache的工作原理 CPU運(yùn)行程序是一條指令一條指令地執(zhí)行的,而且指令地址往往是連續(xù)的,意思就是說CPU在
3、訪問內(nèi)存時(shí),在較短的一段時(shí)間內(nèi)往往集中于某個(gè)局部,這時(shí)候可能會(huì)碰到一些需要反復(fù)調(diào)用的子程序。系統(tǒng)在工作時(shí),把這些活躍的子程序存入比主存快得多的cache 中。 CPU在訪問內(nèi)存時(shí),首先判斷所要訪問的內(nèi)容是否在cache中,如果在,則稱為命中(hit),此時(shí)CPU直接從cache中調(diào)用該內(nèi)容;否則稱為未命中(miss), CPU會(huì)通過cache對(duì)主存中的相應(yīng)內(nèi)容進(jìn)行操作。Cache的地址映射方式Cache與主存之間可以采取的地址映射方式有以下三種: 全相聯(lián)映射方式 直接相聯(lián)映射方式 組組相聯(lián)映射方式 全相聯(lián)方式全相聯(lián)方式 地址映射規(guī)則:主存的任意一塊可以映射到cache中的任意一塊 (1) 主存
4、與cache分成相同大小的數(shù)據(jù)塊。 (2) 主存的某一數(shù)據(jù)塊可以裝入cache的任意一塊空間中。 優(yōu)點(diǎn):命中率比較高,cache存儲(chǔ)空間利用率高。 缺點(diǎn):訪問相關(guān)存儲(chǔ)器時(shí),每次都要與全部內(nèi)容比較,速度低,成本高,因而應(yīng)用少。 直接相聯(lián)方式直接相聯(lián)方式 地址映射規(guī)則: 主存儲(chǔ)器中一塊只能映射到cache的一個(gè)特定的塊中。 (1) 主存與cache分成相同大小的數(shù)據(jù)塊。 (2) 主存容量應(yīng)是cache容量的整數(shù)倍,將主存空間按cache的容量分成區(qū),主存中每一區(qū)的塊數(shù)與cache的總塊數(shù)相等。 (3) 主存中某區(qū)的一塊存入cache時(shí)只能存入緩存中塊號(hào)相同的位置。 優(yōu)點(diǎn):地址映射方式簡單,數(shù)據(jù)訪問
5、時(shí),只需檢查區(qū)號(hào)是否相等即可,因而可以得到比較快的訪問速度,硬件設(shè)備簡單。 缺點(diǎn):替換操作頻繁,命中率比較低。 組相聯(lián)映射方式組相聯(lián)映射方式 地址映射規(guī)則: (1) 主存和cache按同樣大小劃分成塊。 (2) 主存和cache按同樣大小劃分成組。 (3) 主存容量是cache容量的整數(shù)倍,將主存空間按cache區(qū)的大小分成區(qū),主存中每一區(qū)的組數(shù)與cache的組數(shù)相同。 (4) 當(dāng)主存的數(shù)據(jù)調(diào)入cache時(shí),主存與cache的組號(hào)應(yīng)相等,也就是各區(qū)中的某一塊只能存入cache的同組號(hào)的空間內(nèi),但組內(nèi)各塊地址之間則可以任意存放, 即從主存的組到cache的組之間采用直接映射方式;在兩個(gè)對(duì)應(yīng)的組內(nèi)
6、部采用全相聯(lián)映射方式。 優(yōu)點(diǎn):塊的沖突概率比較低,塊的利用率大幅度提高,塊失效率明顯降低。缺點(diǎn):實(shí)現(xiàn)難度和造價(jià)要比直接映射方式高。 塊:塊是cache與主存的傳輸單位。 路(way): 路是組相聯(lián)映射方式的cache結(jié)構(gòu)中的基本存儲(chǔ)單位,每一路存儲(chǔ)一個(gè)塊的數(shù)據(jù)。 組(entry):組是組相聯(lián)映射方式的cache對(duì)塊進(jìn)行管理的單位。 區(qū) (tag) :塊的地址對(duì)應(yīng)的主存儲(chǔ)器中的區(qū)。 塊內(nèi)偏移地址(offset): 用來標(biāo)示塊內(nèi)一個(gè)字節(jié)的地址。 組相聯(lián)映射方式下主存儲(chǔ)器的地址空間由,區(qū),組和塊內(nèi)偏移地址組成。 組相聯(lián)映射方式下cache的內(nèi)部結(jié)構(gòu)。Cache的替換算法Cache可以采用的替換算法主
7、要有以下幾種: 先入后出(FILO)算法 隨機(jī)替換(RAND)算法 先入先出(FIFO)算法 近期最少使用(LRU)算法 隨機(jī)(RAND)法是隨機(jī)地確定替換的存儲(chǔ)塊。設(shè)置一個(gè)隨機(jī)數(shù)產(chǎn)生器,依據(jù)所產(chǎn)生的隨機(jī)數(shù),確定替換塊。這種方法簡單、易于實(shí)現(xiàn),但命中率比較低。 先進(jìn)先出(FIFO)法是選擇那個(gè)最先調(diào)入的那個(gè)塊進(jìn)行替換。當(dāng)最先調(diào)入并被多次命中的塊,很可能被優(yōu)先替換,因而不符合局部性規(guī)律。這種方法的命中率比隨機(jī)法好些,但還不滿足要求。 近期最少使用(LRU)法是依據(jù)各塊使用的情況,總是選擇那個(gè)最近最少使用的塊被替換。這種方法比較好地反映了程序局部性規(guī)律,命中率最高。如何提高cache的性能 提高c
8、ache的性能也就是要降低主存的平均存取時(shí)間 主存平均存取時(shí)間=命中時(shí)間+未命中率*未命中懲罰 提高cache的性能有以下三種方法:減少命中時(shí)間,減少未命中率,減少未命中懲罰。影響命中率的硬件因素主要有以下四點(diǎn): Cache的容量。 Cache與主存儲(chǔ)器交換信息的單位量(cache line size)。 Cache的組織方式 Cache的替換算法代碼段Afor(i=0;i1024;i+) for(j=0;j4;j+) sum += xij代碼段Bfor(j=0;j4;j+) for(i=0;i1024;i+) sum += xij 通過優(yōu)化代碼提高cache命中率 對(duì)數(shù)組int x10244
9、進(jìn)行求和代碼段A:對(duì)于數(shù)組元素xi0(i=01024)的訪問是miss的,但對(duì)于xi1, xi2, xi3的訪問是hit的,因此miss的總次數(shù)為1024次。代碼段B:對(duì)于數(shù)組元素xi0, xi1, xi2, xi3 (i=01024)的訪問都是miss的,他們被xi+40 , xi+41, xi+42,xi+43所替換,因此miss的總次數(shù)為4096次。 當(dāng)需要對(duì)大量數(shù)據(jù)訪問的時(shí)候,一定要注意對(duì)內(nèi)存的訪問要盡量是連續(xù)而且循環(huán)內(nèi)層的訪問接近c(diǎn)ache的塊大小,以提高cache的命中率,從而提高程序的運(yùn)行效率。 Cache的一致性問題 在采用cache的系統(tǒng)中,同樣一個(gè)數(shù)據(jù)可能既存在于cache
10、中,也存在于主存中,兩者數(shù)據(jù)相同則具有一致性,數(shù)據(jù)不相同就叫做不一致。 Cache主要有兩種寫策略寫直達(dá)法(write through)和寫回法(write back) 寫直達(dá)法(write through)方法:在對(duì)cache進(jìn)行寫操作的同時(shí),也將內(nèi)容寫到主存中。優(yōu)點(diǎn):可靠性較高,操作過程比較簡單。缺點(diǎn):寫操作速度得不到改善,與寫主存的速度相同。 寫回法(write back)方法:在CPU執(zhí)行寫操作時(shí),只寫入cache,不寫入主存。優(yōu)點(diǎn):速度較高。缺點(diǎn):可靠性較差,控制操作比較復(fù)雜。 對(duì)于多個(gè)主設(shè)備的共享存儲(chǔ)總線系統(tǒng),如帶有DMA的系統(tǒng),或者多處理器系統(tǒng),由于其他的主設(shè)備也可以改變主存的內(nèi)容,而這種改變是cache無法得知的,因此必須對(duì)cache的一致性問題進(jìn)行處理。 可以將主存中的一塊地址空間設(shè)置為非cache訪問,CPU對(duì)這部分地址
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 私人車位贈(zèng)與協(xié)議書
- 深圳房屋轉(zhuǎn)讓協(xié)議書
- 委托處理硫酸協(xié)議書
- 商業(yè)店鋪退租協(xié)議書
- 入股合伙協(xié)議書退出
- 兄弟購房協(xié)議書范本
- 學(xué)生托管轉(zhuǎn)讓協(xié)議書
- 社區(qū)施工協(xié)議書范本
- 債務(wù)履行協(xié)議書范本
- 旅游包車協(xié)議書范本
- 碘對(duì)比劑的安全管理-PPT
- 完整版老舊小區(qū)改造工程施工組織設(shè)計(jì)方案
- 北京郵電大學(xué)2016年自主招生申請(qǐng)報(bào)告-(完整)
- 盟史簡介12.10.18課件
- 一夜長大【主持人尼格買提個(gè)人隨筆集】
- 全過程造價(jià)咨詢服務(wù)實(shí)施方案
- 2022年安徽省淮北市電焊工電焊工模擬考試(含答案)
- 有限空間作業(yè)安全培訓(xùn)
- 泰國落地簽證申請(qǐng)表
- 神經(jīng)內(nèi)科住院醫(yī)師規(guī)范化培訓(xùn)結(jié)業(yè)實(shí)踐技能考核指導(dǎo)標(biāo)準(zhǔn)
- GB/T 26081-2022排水工程用球墨鑄鐵管、管件和附件
評(píng)論
0/150
提交評(píng)論