Cache基本原理

2021-06-21 04:19:10 字數 1523 閱讀 9508

在設計和開發系統程式和應用程式時,程式設計師通常採用模組化的程式設計方法。某一模組的程式,往往集中在儲存器邏輯位址空間中很小的一塊範圍內,且程式位址分布是連續的。也就是說,cpu在一段較短的時間內,是對連續位址的一段很小的主存空間頻繁地進行訪問,而對此範圍以外位址的訪問甚少,這種現象稱為程式訪問的區域性性。

高速緩衝儲存器(cache)技術就是利用程式訪問的區域性性原理,把程式中正在使用的部分(活躍塊)存放在乙個小容量的高速cache中,使cpu的訪存操作大多針對cache進行,從而解決高速cpu和低速主存之間速度不匹配的問題,使程式的執行速度大大提高。

1. cache的功能

cache是介於cpu和主存之間的小容量儲存器,訪問速度比主存快,接近cpu。它能高速地向cpu提供指令和資料,提高程式的執行速度。cache技術是為了解決cpu和主存之間速度不匹配而採用的一項重要技術。

cache是主存的緩衝儲存器,由高速的sram組成,所有控制邏輯全部由硬體實現,對程式設計師而言是透明的。隨著半導體器件整合度的不斷提高,當前有些cpu已內建cache,並且出現了兩級以上的多級cache系統。cache系統與cpu和主存的關係如圖3-12所示。

2. cache的基本原理

cpu與cache之間的資料交換是以字為單位的,而cache與主存之間的資料交換則是以塊為單位的。乙個塊由若干個定長字組成。

當cpu讀取主存中的乙個字時,該字的主存位址被發給cache和主存,此時,cache控制邏輯依據位址判斷該字當前是否存在於cache中:若在,該字立即被從cache傳送給cpu;若不在,則用主存讀週期把該字從主存讀出送到cpu,同時把含有這個字的整個資料塊從主存讀出送到cache中,並採用一定的替換策略將cache中的某一塊替換掉,替換演算法由cache管理邏輯電路來實現。

cache原理圖如圖3-13所示。圖中,按內容定址的相聯儲存器(表),用於存放與cache中資料相對應的主存位址,可以快速檢索、判斷cpu讀取的某個字當前是否存在於cache中。

3. cache的命中率

基於程式訪問的區域性性原理,增加cache使得要訪問的資料絕大多數都可以在cache中找到,這樣才能在效能上使主存的平均讀出時間盡可能接近cache的讀出時間。cache的工作效率通常用「命中率」來表示。

命中率指的是cpu要訪問的資訊在cache中的概率,cache的命中率越高,cpu訪問主存的速度就越接近訪問cache的速度。通常cache的容量越大,儲存的塊也越多,cpu的命中率就越高。但是,當cache的容量達到一定值時,命中率並不會隨著容量的增大而增加,而且cache容量的增大將導致成本的增加,所以,cache的容量一般是命中率與成本**的折中。

在乙個程式執行期間,設 nc表示cache完成訪問的總次數,nm表示主存完成訪問的總次數,h定義為命中率,則有

若tc表示命中時的cache訪問時間,tm表示未命中時的主存訪問時間,1-h表示未命中率,則cache-主存系統的平均訪問時間ta為:

設e表示訪問效率,則有

為提高訪問效率e,命中率h越接近1越好。命中率h與程式的行為、cache的容量、組織方式、塊的大小有關。

計算機Cache基本原理

計算機裡面的記憶體一般情況下速度是比cpu要慢的多,所以為了解決這個問題,大家都想了很多辦法,其中有個是在cpu和記憶體之間增加乙個高速緩衝器cache的辦法。目錄 區域性性原理 結構和流程 實現方式 cache的對映方法 1 fully associated 全相連對映 3 set associa...

mysql的基本原理 Mysql 基本原理

mysql 基本原理 mysql是一種關聯式資料庫管理系統,關聯式資料庫將資料儲存在不同的表中,而不是將所有資料放在乙個大倉庫內,這樣就增加了速度並提高了靈活性 ysql是資料庫登入命令 uroot預設超級使用者登入 p 預設沒密碼 中寫密碼 mysqladmin uroot password 12...

8 2 1 基本原理

乙個舞台動畫物件在包含許多舞台資訊 出現在何處,佔多大面積,處在什麼角度,是否可見 這些資訊分別儲存在動畫物件的屬性中。在 中讀取這些屬性可以了解物件的位置 大小 角度等狀態資訊 修改這些屬性可以改變物件的位置 大小 角度等狀態。如果從資料的角度去理解,動畫就是在固定時間間隔點不斷修改動畫物件某項屬...