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