控制寄存器,CPU缓存,PWT,PCD
文章目錄
- 控制寄存器
- Cr0寄存器
- Cr2寄存器
- Cr4寄存器
- CPU緩存
- PWT:Page Write Through
- PCD:Page Cache Disabled
控制寄存器
控制寄存器用于控制和確定CPU的操作模式
Cr0 Cr1 Cr2 Cr3 Cr4
Cr1 保留
Cr3 頁目錄表基址(在10-10-12分頁和2-9-9-12分頁結構是不一樣的)
Cr0寄存器
說明:
1.PE位:CR0的位0是啟用保護標志
PE=1保護模式
PE=0實地址模式這個標志開啟段級保護,而并沒有啟用分頁機制。
若要啟用分頁機制,那么PE和PG標志都要置位
2.PG位:當設置該位時即開啟了分頁機制。在開啟這個標志之前必須已經或者同時開啟PE標志
PG=0且PE=0 處理器工作是在實地址模式下
PG=0且PE=1(目前這種操作系統還未出現)處理器工作在沒有開啟分頁機制的保護模式下
PG=1且PE=0(這種情況不存在) 在PE沒有開啟的情況下,無法開啟PG
PG=1且PE=1 處理器工作在開啟了分頁機制的保護模式下
3.WP位
WP:對于Intel 80486或以上的CPU,CR0的位16是寫保護標志,當設置該標志時,處理器會禁止超級用戶程序(例如特權級0的程序)向用戶級只讀頁面執行操作:
當CPL<3的時候:
如果WP=0可以讀寫任意用戶級物理頁,只要線性地址有效
如果WP=1可以讀取任意用戶級物理頁,但對于只讀的物理頁,則不能寫
Cr2寄存器
說明:
當CPU訪問某個無效頁面時,會產生缺頁異常,此時,CPU會將引起異常的線性地址存放在CR2中
(異常處理結束后,會往下繼續執行,所以需要記錄;如果異常處理程序通過判斷,我們訪問的這個頁面是一個未分配的頁面,那么會報異常,在何處的線性地址發生了錯誤(也就是讀取了Cr2寄存器的值))
Cr4寄存器
PAE/PSE說明:
PAE=1是2-9-9-12分頁
PAE=0是10-10-12分頁
PSE(就是PS位的一個總開關):
PSE=1:
- 10-10-12分頁情況下:
- PS=1 4M頁
- PS=0 4K頁
- 2-9-9-12分頁情況下:
- PS=1 2M頁
- PS=0 4K頁
PSE=0:
- 10-10-12分頁情況下:
- PS=1 4K頁
- PS=0 4K頁
- 2-9-9-12分頁情況下:
- PS=1 4K頁
- PS=0 4K頁
CPU緩存
1.CPU緩存是位于CPU與物理內存之間的臨時存儲器,它的容量比內存小得多,但是交換速度卻比內存要快得多
2.CPU緩存可以做的很大,有幾K,幾十K,幾百K,甚至上M的也有
CPU緩存與TLB的區別:
TLB(線性地址和物理地址之間的關系):
線性地址<---------------->物理地址
CPU緩存(物理地址和內容的關系):
物理地址<---------------->內容
舉例:當CPU讀取某個物理頁時,它就可以先查TLB,找到對應的物理地址,再查CPU緩存,找到對應的內容(CPU緩存大小決定了CPU的執行速度,緩存越大,速度越快)
關于PWT/PCD屬性:
PWT:Page Write Through
PWT=1時,寫Cache(緩存 )的時候同時也會將數據寫入內存中
PWT=0時,往緩存中讀寫數據的時候只往緩存中寫,什么時候緩存中的數據映射到內存中呢?由CPU緩存控制器來決定
PCD:Page Cache Disabled
PCD=1時,禁止某個頁寫入緩存,直接寫入內存
比如,做頁表用的項,已經存儲在TLB中了,可能不需要再緩存了
總結
以上是生活随笔為你收集整理的控制寄存器,CPU缓存,PWT,PCD的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中断与异常
- 下一篇: EPROCESS ETHREAD简介