CPU Cache - write combine/write through/write back

转自:http://www.wretch.cc/blog/hyper0672/9867141

 

CPU 為了加速 CODE 和 DATA 的存取,會將存取過的資料放在 Cache 中,以加速讀寫的動作。Cache
是一個比系統記憶體小,讀寫速度更快的記憶體。
Intel 的設計中,Cache 還有分層 (L1, L2, L3 Cache), CPU 會先到 L1
Cache 中尋找所需資料,如果沒有就找 L2 Cache,再沒有就找 L3
Cache,真的找不到資料才會到系統記憶體中去尋找。

專有名詞
Cache line:
Cache 存取資料時的最小單位 (通常為 8
- 512 bytes)。以 Pentium III 為例,其 Cache line 的長度為 32 bytes
Cache line
fill:
將系統記憶體的內容搬移到 Cache 的動作
Cache hit & Cache miss:
Processor
欲讀取一段記憶體時,如果此記憶體已經在 Cache 中存在,稱為 Cache Hit。反之則為 Cache miss。
Write
hit:
Processor 欲寫入一段記憶體時,如果此記憶體已經在 Cache 中存在,稱為 Cache Hit。當 Write hit
發生時,根據不同的 Policy 會執行不同的動作。
Snoop:
在 Multi-Processor 的環境下,CPU 必須監控其它 CPU
對系統記憶體以及 Cache 的動作,以確保所有的 CPU 狀態能夠同步。

Memory Type
根據不同的需要,CPU
可以對系統記憶體執行不同的 Cache 動作。
String Uncacheable (UC)
不能被
Cache
Uncacheable(UC-)
不能被 Cache,但是可以借由 MTRR 的設定,修改為 WC (Write
Combining)
Write Combining(WC)
不能被
Cache,但寫入的動作可以允許延遲,並且和其它的寫入動作合併,以減少記憶體的存取。這樣的特性適用於寫入次序無關緊要的記憶體 (如 Video
Memory)
Write Through(WT)
讀寫的動作都可以被 Cache。寫入的動作必須同時寫入到 Cache
以及系統記憶體中
Write Back(WB)
讀寫的動作都可以被 Cache。寫入的動作只寫入到 Cache,只有當 Cache line
要移除時,才執行寫回到系統記憶體的動作。此種方式可以達到最高的執行效率。
Write Protected(WP)
只有讀的動作可以被 Cache,當
CPU 執行寫入的動作時,被寫入的記憶體,其 Cache 會失效。

转载于:https://www.cnblogs.com/super119/archive/2012/04/06/2434682.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值