Cache基礎知識介紹_第1頁
Cache基礎知識介紹_第2頁
Cache基礎知識介紹_第3頁
Cache基礎知識介紹_第4頁
Cache基礎知識介紹_第5頁
已閱讀5頁,還剩17頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、什么是cache Cache又叫高速緩沖存儲器,位于CPU與內存之間,是一種特殊的存儲器子系統。 目前比較常見的是兩極cache結構,即cache系統由一級高速緩存L1 cache和二級高速緩存L2 cache組成,L1 cache通常又分為數據cache(I-Cache)和指令cache(D-Cache),它們分別用來存放數據和執行這些數據的指令。 兩極cache相比較而言,L1 cache的容量小,但數據存取速度較快,L2 cache的容量大,但數據存取速度較慢。部分系統中也存在三級cache的結構。Cache的作用是什么 Cache的作用就是為了提高CPU對存儲器的訪問速度。 電腦的內存

2、是以系統總線的時鐘頻率工作的,這個頻率通常也就是CPU的外頻。但是,CPU的工作頻率(主頻)是外頻與倍頻因子的乘積。這樣一來,內存的工作頻率就遠低于CPU的工作頻率了。這樣造成的直接結果是:CPU在執行完一條指令后,常常需要“等待”一些時間才能再次訪問內存,極大降了CPU工作效率。在這樣一種情況下,cache就應運而生了。 指令地址 96loop: ADD r2, r1, r1 100 SUBI r3, r3, #1 104 BNEZ r3, loop 108 112典型的內存訪問模式 Cache的工作原理 CPU運行程序是一條指令一條指令地執行的,而且指令地址往往是連續的,意思就是說CPU在

3、訪問內存時,在較短的一段時間內往往集中于某個局部,這時候可能會碰到一些需要反復調用的子程序。系統在工作時,把這些活躍的子程序存入比主存快得多的cache 中。 CPU在訪問內存時,首先判斷所要訪問的內容是否在cache中,如果在,則稱為命中(hit),此時CPU直接從cache中調用該內容;否則稱為未命中(miss), CPU會通過cache對主存中的相應內容進行操作。Cache的地址映射方式Cache與主存之間可以采取的地址映射方式有以下三種: 全相聯映射方式 直接相聯映射方式 組組相聯映射方式 全相聯方式全相聯方式 地址映射規則:主存的任意一塊可以映射到cache中的任意一塊 (1) 主存

4、與cache分成相同大小的數據塊。 (2) 主存的某一數據塊可以裝入cache的任意一塊空間中。 優點:命中率比較高,cache存儲空間利用率高。 缺點:訪問相關存儲器時,每次都要與全部內容比較,速度低,成本高,因而應用少。 直接相聯方式直接相聯方式 地址映射規則: 主存儲器中一塊只能映射到cache的一個特定的塊中。 (1) 主存與cache分成相同大小的數據塊。 (2) 主存容量應是cache容量的整數倍,將主存空間按cache的容量分成區,主存中每一區的塊數與cache的總塊數相等。 (3) 主存中某區的一塊存入cache時只能存入緩存中塊號相同的位置。 優點:地址映射方式簡單,數據訪問

5、時,只需檢查區號是否相等即可,因而可以得到比較快的訪問速度,硬件設備簡單。 缺點:替換操作頻繁,命中率比較低。 組相聯映射方式組相聯映射方式 地址映射規則: (1) 主存和cache按同樣大小劃分成塊。 (2) 主存和cache按同樣大小劃分成組。 (3) 主存容量是cache容量的整數倍,將主存空間按cache區的大小分成區,主存中每一區的組數與cache的組數相同。 (4) 當主存的數據調入cache時,主存與cache的組號應相等,也就是各區中的某一塊只能存入cache的同組號的空間內,但組內各塊地址之間則可以任意存放, 即從主存的組到cache的組之間采用直接映射方式;在兩個對應的組內

6、部采用全相聯映射方式。 優點:塊的沖突概率比較低,塊的利用率大幅度提高,塊失效率明顯降低。缺點:實現難度和造價要比直接映射方式高。 塊:塊是cache與主存的傳輸單位。 路(way): 路是組相聯映射方式的cache結構中的基本存儲單位,每一路存儲一個塊的數據。 組(entry):組是組相聯映射方式的cache對塊進行管理的單位。 區 (tag) :塊的地址對應的主存儲器中的區。 塊內偏移地址(offset): 用來標示塊內一個字節的地址。 組相聯映射方式下主存儲器的地址空間由,區,組和塊內偏移地址組成。 組相聯映射方式下cache的內部結構。Cache的替換算法Cache可以采用的替換算法主

7、要有以下幾種: 先入后出(FILO)算法 隨機替換(RAND)算法 先入先出(FIFO)算法 近期最少使用(LRU)算法 隨機(RAND)法是隨機地確定替換的存儲塊。設置一個隨機數產生器,依據所產生的隨機數,確定替換塊。這種方法簡單、易于實現,但命中率比較低。 先進先出(FIFO)法是選擇那個最先調入的那個塊進行替換。當最先調入并被多次命中的塊,很可能被優先替換,因而不符合局部性規律。這種方法的命中率比隨機法好些,但還不滿足要求。 近期最少使用(LRU)法是依據各塊使用的情況,總是選擇那個最近最少使用的塊被替換。這種方法比較好地反映了程序局部性規律,命中率最高。如何提高cache的性能 提高c

8、ache的性能也就是要降低主存的平均存取時間 主存平均存取時間=命中時間+未命中率*未命中懲罰 提高cache的性能有以下三種方法:減少命中時間,減少未命中率,減少未命中懲罰。影響命中率的硬件因素主要有以下四點: Cache的容量。 Cache與主存儲器交換信息的單位量(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 通過優化代碼提高cache命中率 對數組int x10244

9、進行求和代碼段A:對于數組元素xi0(i=01024)的訪問是miss的,但對于xi1, xi2, xi3的訪問是hit的,因此miss的總次數為1024次。代碼段B:對于數組元素xi0, xi1, xi2, xi3 (i=01024)的訪問都是miss的,他們被xi+40 , xi+41, xi+42,xi+43所替換,因此miss的總次數為4096次。 當需要對大量數據訪問的時候,一定要注意對內存的訪問要盡量是連續而且循環內層的訪問接近cache的塊大小,以提高cache的命中率,從而提高程序的運行效率。 Cache的一致性問題 在采用cache的系統中,同樣一個數據可能既存在于cache

10、中,也存在于主存中,兩者數據相同則具有一致性,數據不相同就叫做不一致。 Cache主要有兩種寫策略寫直達法(write through)和寫回法(write back) 寫直達法(write through)方法:在對cache進行寫操作的同時,也將內容寫到主存中。優點:可靠性較高,操作過程比較簡單。缺點:寫操作速度得不到改善,與寫主存的速度相同。 寫回法(write back)方法:在CPU執行寫操作時,只寫入cache,不寫入主存。優點:速度較高。缺點:可靠性較差,控制操作比較復雜。 對于多個主設備的共享存儲總線系統,如帶有DMA的系統,或者多處理器系統,由于其他的主設備也可以改變主存的內容,而這種改變是cache無法得知的,因此必須對cache的一致性問題進行處理。 可以將主存中的一塊地址空間設置為非cache訪問,CPU對這部分地址

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論