天天看點

NVDIMM原理與應用之二:X86 Cache 管理的幾種模式

X86 Cache 管理的幾種模式

為了應對不同的應行場景,X86體系結構提供了多種維護cache一緻性的模式和硬體機制。這些應用模式包括write back/write combing/write through/uncache,而和此相關的硬體包括store buffer, write combing buffer, MMTR,CR寄存器等。準确了解上面四種cache模式的差異,了解實作過程中的涉及到的不同硬體的子產品,能夠幫助工程師加深對系統結構的認識,進而能夠針對 具體的應用,比如NVDIMM/NTB/SSD等,選擇最合适的 等裝置的cache模式。

1. store buffer

為了提高性能,允許記憶體寫操作在真正執行完之前指令能夠傳回,X86處理器能夠把對記憶體的寫操作都臨時存儲到一個store buffer裡面去。這個store buffer經常和指令執行部件關聯在一起,它能夠暫存對記憶體的讀寫,這樣處理器就不用等真正的讀寫傳回了。此外處理器還能自動保證序的正确性。當出現下面的情況下,硬體自動把store buffer裡面的東西drain to memory:

中斷;

記憶體屏障;

LOCK操作;

MFENCE/SFENCE;

IO操作

順序指令

2.catch line

當處理器接受到從記憶體讀的操作數剛好是可以cache的時候,處理器會從記憶體中讀出長為cache line的資料到實體的cache line上去。

3.write combing/write through/write back/write protect的差別

3.1 write combiling:

讀寫沒有cache,隻是先寫到了writing combing buffer,硬體不會自己維護memory一緻性,對一緻性有要求的軟體必須留意到寫往可WC的記憶體會出現延遲,并且如果對一緻性有要求必須清空write combing buffer。注意write combing buffer  不同于L1/L2/L3 cache和store buffer,它隻在WC模式下才會用到。它會在下面的情況下被硬體清空:

SFENCE/MFENCE指令

CPUID指令;

讀寫uncache的記憶體區域;

執行LOCK指令

在write combiling模式下,猜測讀是允許的, 寫操作可能會延遲,因為它可能會被合并到writing bffer裡面去,直到後面的串行化指令例如(SFENCE,MFENCE,CPUID, read/write uncached memory,an interrupt, or LOCK instruction)出現。這種write combining 模式适合顯存空間。

3.2 write though

讀寫可合并;寫命中時:既到cache,又到記憶體,然後傳回;寫回記憶體時,invalid的cache沒有catch fill,valid的cache有catch fill或者被invalid;

3.3 write back

讀寫可合并;寫命中時:先到cache, 在需要釋放它的cache line(比如cache full)時再寫回記憶體;寫不命中時,到記憶體,然後進行cache fill。

3.4 Write protect

寫擴大到系統總線,并導緻總線上的所有處理器相應的cache line都被invalid.

3.5 uncached 

如果用unreached模式,隻需要disable cache就可以,下面的步驟可以disablecache:

設定CR0上的CD為1, NW flag = 0;

disable MTRRs 且設定預設的記憶體類型是uncached(或者用MTRR設定所有的記憶體區域是uncache的)。

注意MTRR和OS 頁表/頁目錄表之間的優先級及關系:

BIOS設定了好全局的MTRR表格之後,核心還是可以通過頁表和頁目錄表進行修改。

為了維護cache一緻性,需要用wbinvd指令,寫回并無效所有的L1/L2/L3 Cache。

4. WBINVD和CFLUSH的差別

WBINVD:寫回所有内部cache的有改動的cache line,然後無效L1/L2/L3級cache的内容

CFLUSH:把指定cache line裡面的資料flush到記憶體,然後釋放相應的cache line,這條指令提供了使用者顯示地釋放cache空間的接口,特别當使用者确定目前cache裡面的内容暫時不會再通路到的時候可以用CFLUSH來釋放cache line給其他資料用。

本文轉自存儲之廚51CTO部落格,原文連結:http://blog.51cto.com/xiamachao/1746123 ,如需轉載請自行聯系原作者