一是由於i/o裝置與cpu之間會爭訪記憶體,導致降低cpu的效率,則可以在cpu與主存之間加上一級快取.二是,因為摩爾定律的原因cpu的速度遠遠高於主存的速度,再加上儲存體系的原因,越快速度的儲存器成本越高,就需要乙個快取記憶體來解決主存與cpu速度不匹配的問題
cache出現使cpu不直接訪問主存而訪問資訊.根據程式訪問的區域性性原理,將近期cpu訪問的資料提前從主存送至cache,則可以在一段時間內cpu只需訪問cache,就解決了容量與速度的矛盾
主存中由2n個可編址的字構成,每個字由惟一的n位位址構成。但是由於cache的大小遠小於2n,但為了能與主存對映,將主存與cache進行分塊處理,每塊內包含若干個字(也就是儲存字),cache與主存的塊大小相同(即字數相同)。其中主存中每個字位址被分為兩段:高m位作為塊號,可得2m=m,m則為塊數。低b位位塊內位址(第幾個字)那麼2b=b,b則為每塊中的字數(注意字數主存與cache相同)。
cache中高c位為塊數,2^c=c,且因為cache容量遠小於主存,則cache位址位數遠小於主存,且主存與cache的塊內字數必須相同,則可得出c名詞整理:
m 主存塊數
c cache塊數
b 塊長(塊內字數)
在任意時刻主存中有一些塊在cache中方,當cpu欲讀取某字時候,有且僅有兩種情況:1.所需的字已在cache中,可直接訪問cache,稱命中。2.所需的字不在cache內,此情況時將字所在的主存整個字塊一次調入cache中(已知cache與主存中按字塊去傳送),稱未命中。且程主存塊與快取塊建立對應關係。
快取塊數遠小於主存塊數,故每個快取塊不可能只對應乙個主存塊,故每個快取塊需要乙個標記,來表示當前塊是哪乙個主存塊,cpu讀取資訊時,只需將高m位與標記進行比較即可知道是否命中.
通用高速緩衝器 CMSPAD Cache
php中的高速緩衝器,對高負載來的 來說是乙個非常需要的元件。其中最經典的使用案例就是使用者會話 session 的高速訪問 如果使用預設的基於檔案的會話控制代碼,負載量較大時會產生大量的io操作,導致系統執行效率降低 而使用基於資料庫的會話控制代碼,雖然效能會得以提高,但負載量大時,還是容易給資料...
cache 高速緩衝儲存器
cache 高速緩衝儲存器 一種特殊的儲存器子系統,其中複製了頻繁使用的資料以利於快速訪問。儲存器的高速緩衝儲存器儲存了頻繁訪問的 ram 位置的內容及這些資料項的儲存位址。當處理器引用儲存器中的某位址時,高速緩衝儲存器便檢查是否存有該位址。如果存有該位址,則將資料返回處理器 如果沒有儲存該位址,則...
Cache 基本概念
cache用來存放最近cpu訪問的一些memory的數值 l1 cache 離cpu比較近的cache,有i cache,d cache l2 cache 離cpu比較遠的cache,如果沒有內部的,可以在外面加 cpu盡可能從cache裡取資料,就減少了向外面訪問的頻率 同時也減小了功耗,外部功耗...