zoukankan      html  css  js  c++  java
  • 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 會失效。

  • 相关阅读:
    [译]理解Javascript的异步等待
    [译]为什么我要离开gulp和grunt转投npm脚本的怀抱
    [译]代码审查的重要性
    [译]转译器: 今日大不同
    猴年马月都到了
    关于“我是谁”的思考
    ASP.net MVC基础
    利用Spring.Net技术打造可切换的分布式缓存读写类
    JQuery WEB前段开发
    Javascript——说说js的调试
  • 原文地址:https://www.cnblogs.com/super119/p/2434682.html
Copyright © 2011-2022 走看看