閱讀133 返回首頁    go 阿裏雲 go 技術社區[雲棲]


計算機體係結構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

  上一篇:go 劍指Offer之數值的整數次方
  下一篇:go 起泡排序【模板】