計算機體係結構7_緩存控製機製
一,緩存控製機製
AMD64提供一係列機製用於設置內存的緩存特性:
Cache disable
CR0的bit 30為cache-disable bit,CR0.CD. CR0.CD=0,開啟緩存功能;CR0.CD=1,關閉緩存功能。
當緩存功能被關閉時,讀寫均通過主存完成。
當緩存中存有有效數據或指令時,軟件可以關閉緩存功能。
當緩存功能被關閉時,如果讀或寫操作命中L1數據緩存或者L2緩存,處理器執行如下操作:
1. 如果cache line為modified或owned狀態,寫回內存;
2.使cache line失效;
3.通過執行一次non-cacheable的主存讀或寫。
當緩存功能被關閉時,如果取指令命中L1指令緩存,處理器通過緩存讀指令而不是主存。
當緩存功能被關閉時,處理器同樣會相應其他處理器的probe。如果probe命中緩存,會導致當前處理器執行1,當probe是由主存寫,
或者exclusive讀時, 2步驟會被執行。
Writethrough Disable
CR0的bit 29為not writethrough bit,CR0.NW.
在早期的X86處理器中,CR0.NW=0使能主存的writeback功能,關閉writethrough功能。當CR0.NW=0時,軟件可以通過
使用其他的控製機製關閉特定內存頁或區域的writeback功能。 CR0.NW=1關閉主存的writeback功能,開啟writethrough
功能。
AMD64的緩存操作模式:
Page-Level Cache Disable,以頁為單位的緩存關閉機製。
Page-Level Writethrough Enable,以頁為單位的寫通控製機製。
Memory Type,軟件可以通過兩種機製設置內存區間的特性:
MTRRs(memory-type range registers),根據物理地址控製內存的功能。
PAT(page-attribute table),根據虛擬地址控製內存的功能。
二,緩存機製優先級
緩存機製優先級如下:
在低優先級機製內存區域中,可以設置區域中的區段為高優先級機製,反則不允許。
參考:
AMD64 Architecture Programmer’s Manual Volume 2: System Programming
最後更新:2017-04-03 14:54:08