今天在做axi4匯流排傳輸協議的時候,遇到awcache和arcache訊號需要給賦值,發現有write-through、write-back和no-allocate、read-allocate、write-allocate、read and write-allocate分別排列組合等8種模式(還有4種別的模式這裡先不提了),突然想起cache學習了很久了也沒進行過總結,這裡總結一下。
cache架構
這裡先留出位置,這次先總結cache讀寫機制,以後再補充
cache讀寫機制
首先是write-through和write-back的區別:(這部分參考:
write-through(直寫模式、寫透模式):資料更新時,同時寫入cache和下一級儲存。不存在dirty問題。
優點:簡單可靠,不涉及cahce一致性問題;缺點:速度慢(因為同時寫下一級儲存(比如ddr))。
write-back(回寫模式):資料更新時,只寫cache;當資料被替換出來時,才將該被修改的cache資料寫到下一級儲存。涉及dirty這個概念。
clean:cache資料與下一級儲存位置資料一致
而allocate是針對cache miss時的處理方式,下面是我的理解:
no-allocate:不論讀、寫操作,cache miss時,直接寫下一級儲存(如ddr)
read-allocate:讀操作,cache miss時,在cache中分配乙個空間,從下一級儲存讀取該資料到cache分配的這個空間,最後讀取該值。注意:對於write-back模式,如果分配的這個位置原資料是dirty的,需要將該資料先寫回下一級儲存。
write-allocate:寫操作,cache miss時,在cache中分配乙個空間,將資料先寫入該位置,根據write-back還是write-through決定是否再寫入下一級儲存。注意:對於write-back模式,如果分配的這個位置原資料是dirty的,需要將該資料先寫回下一級儲存。
下面為參考**給出的2個示例圖,第乙個是write-through read-allocate,第二個是write-back read and write-allocate
簡單總結一下該部分:write-through和write-back為寫入cache的模式,區別是在寫cache時是否還同時寫下一級memory;allocate那堆只在cache miss時生效,負責分配cache空間給讀和寫中轉用;另外,dirty只發生在write-back模式,需要額外進行一步回寫。
Cache學習小結
轉至 今天在做axi4匯流排傳輸協議的時候,遇到awcache和arcache訊號需要給賦值,發現有write through write back和no allocate read allocate write allocate read and write allocate分別排列組合等8種模式...
Cache用法小結
把最近接觸到的cache有關的資訊總結到這裡,供日後檢視 一.cache基本概念 what is cache?cache是用來對記憶體資料的快取。cpu要訪問的資料在cache中有快取,稱為 命中 hit 反之則稱為 缺失 miss cpu訪問它的速度介於暫存器與記憶體之間 數量級的差別 實現cac...
spring 3 1中的cache小結
spring 3.1中有cache了,下面結合目前網上的一些資料和手冊的歸納總結下 1 cache註解 在3.1中,都是用註解的了,cacheable註解可以用在方法或者類級別。當他應用於方法級別的時候,就是如上所說的快取返回值了。當應用在類級別的時候,這個類的所有方法的返回值都將被快取。cache...