原帖:http://blog.csdn.net/chinacodec/archive/2008/11/29/3408560.aspx
2.4.1
cache
工作原理 圖
2.27給出乙個位於
cpu與主存之間的
cache
最基本的結構。
cache
容量與主存容量相比是很小的,差
二、三個數量級,目前在主存容量配置是幾十
mb到幾百
mb的情況下,
cache
的典型值是8~
512kb
。cache
的工作速度很快,一般是用
sram
,少數也有用高速
dram
組成的。
cache
除ram
外還要有必要的控制邏輯,整合在
cpu晶元內的
cache
(l1 cache
)由cpu
提供它的控制邏輯,速度同於
cpu速度。若
cache
在cpu
晶元外(
l2 cache
),速度接近
cpu,它的控制邏輯一般與主存控制邏輯合成在一起,稱之為主存/
cache
控制器,當然也有單獨
cache
控制器的情況;我們先重點討論資料的快取記憶體。要注意的是,
cpu與
cache
之間的資料交換是以"字
"為單位,而
cache
與主存之間的資料交換是以"塊
"為單位,乙個塊由若干字組成,是定長的,以體現
"儲存下級儲存器剛才被訪問過的資料及其鄰近小範圍的資料
"這一概念。
.27還示意了
cache/
主存系統的讀操作原理,當
cpu試圖讀取主存乙個字時,發出此字記憶體位址同時到達
cache
和主存,此時
cache
控制邏輯依據位址的標記部分進行判斷此字當前是否在
cache
中。若是(命中),此字立即遞交給
cpu,若否(未命中),則要用主存讀取週期把這個字從主存讀出送到
cpu,與此同時把含有這個字的整個資料塊從主存讀出送到
cache
中。由於程式的儲存器訪問具有區域性性,當為滿足一次訪問需求而取來乙個資料塊時,下面的多次訪問很可能是讀取此塊中的其它字。
cache
的讀操作流程示意於圖2.
28。在流程圖中特別應該注意的是:1.
cache
和主存同時接收
cpu的實體地址。2.
實體地址的高階作為標記在
cache
的標記區檢索,如有相同的標記即為命中(
cache
包含此字所在的塊)。反之亦然。3.
命中時由
cache
輸出該字。4.
未命中時由記憶體輸出該字,且將此字所屬塊整體裝入
cache
的乙個相關的行。
cache/
主存系統結的寫操作原理比讀操作複雜,在2.
4.4專題討論。
我們看到
cache
帶來的效能改善,是基於
程式儲存訪問的區域性性( 1ocality of refer- ence)原理。這個原理是說程式執行時對儲存器的訪問傾向於聚集性或成簇( cluster)性,經過一段長的時間後簇可能發生轉移,但很快程式又是主要對著新簇完成儲存器訪問。
在乙個程式執行期間,若
nc表示由
cache
完成訪問的總次數,
nm表示由主存完成訪問的總次數,那未可將命中率(
hit ratio)h
定義成:
1-h為丟失率(
miss ratio
),或稱未命中率,若以
tc表示命中時的
cache
訪問時間,以tm
表示未命中時的主存訪問時間,則
cache/
主存系統的平均訪問時間
ta為:
我們的目標是,希望以不太大的硬體投資能使
cache/
主存系統的平均訪問時間
ta越接近
tc越好。若以
e = tc / ta
作為訪問效率,則有:
式中r = tm/tc
表示主存慢於
cache
的倍率,由
e =f ( r , h )
的函式關係可以得出,
r值太大效果不好。對於
cache/
主存系統,r值以
5~10為宜。應該盡量提高命中率h ,
h一般應不低於0.
85,而且超過此值後e隨
h迅速增長。命中率
h首先與程式的行為有關係(不同的程式命中率不同),但也與
cache設
2 1 Cache的工作原理
處理器微架構訪問 cache 的方法與訪問主儲存器有類似之處。主儲存器使用位址編碼方式,微架構可以位址定址方式訪問這些儲存器。cache 也使用了類似的位址編碼方式,微架構也是使用這些位址操縱著各級 cache 可以將資料寫入 cache 也可以從 cache 中讀出內容。只是這一切微架構針對 ca...
CaChe基本概念及工作原理
計算機中程式執行時所有的指令和資料都是從儲存器中取出來執行的。儲存器是計算機系統中的重要組成部分,相當於計算機的倉庫,用來存放各類程式及其處理的資料。因此儲存器的容量和效能應當隨著處理器的速度和效能的提高而通過提高,以保持系統效能的平衡。然而在過去的 20 多年中,隨著時間的推移,處理器和儲存器在效...
Cache的功能 結構與工作原理
高速緩衝儲存器是存在於主存與cpu之間的一級儲存器,由靜態儲存晶元 sram 組成,容量比較小但速度比主存高得多,接近於cpu的速度。cache的功能是用來存放那些近期需要執行的指令與資料。目的是提高cpu對儲存器的訪問速度。為此需要解決2個技術問題 一是主存位址與快取位址的映象及轉換 二是按一定原...