ARM存儲器之:存儲管理單元MMU
(4)段描述符及其地址變換過(guò)程
如果一級頁(yè)表頁(yè)表項的bits[1∶0]=0b10,說(shuō)明此頁(yè)表項指向一個(gè)1MB的存儲段。頁(yè)表項的高12位代替虛擬地址的高12位來(lái)產(chǎn)生物理地址。該頁(yè)表項還包含域屬性、Cahche屬性、緩沖器屬性和訪(fǎng)問(wèn)權限屬性。具體定義如表15.22所示。
表15.22 段頁(yè)表項中各字段含義
字段 | 含義 |
bits[1:0] | 段頁(yè)表項標識 |
bits[3:2] | 定義段的Cache和寫(xiě)緩存屬性 |
bit[4] | 生產(chǎn)商定義 |
bits[8:5] | 本段所在的域 |
bit[9] | 當前未被使用,設置成0 |
bits[11:10] | 訪(fǎng)問(wèn)權限控制AP位,見(jiàn)表15.23 |
bits[19:12] | 當前未被使用,設置成0 |
bits[31:20] | 該段對應的物理空間基地址的高12位 |
表15.23 訪(fǎng)問(wèn)權限控制位的編碼及其含義
訪(fǎng)問(wèn)權限控制AP | S | R | 特權模式 | 用戶(hù)模式 |
0b00 | 0 | 0 | 不可訪(fǎng)問(wèn) | 不可訪(fǎng)問(wèn) |
0b00 | 1 | 0 | 只讀 | 不可訪(fǎng)問(wèn) |
0b00 | 0 | 1 | 只讀 | 只讀 |
0b00 | 1 | 1 | 不可預知 | 不可預知 |
0b01 | X | X | 讀/寫(xiě) | 無(wú)訪(fǎng)問(wèn) |
0b10 | X | X | 讀/寫(xiě) | 只讀 |
0b11 | X | X | 讀/寫(xiě) | 讀/寫(xiě) |
表中S和R位是CP15寄存器c1中的控制位,它們分別對應系統(S)和ROM(R)位。這兩位用來(lái)在不同模式加速系統中訪(fǎng)問(wèn)大的存儲塊。
設置S位使得所有頁(yè)具有不可訪(fǎng)問(wèn)權限,從而允許特權模式任務(wù)對頁(yè)有讀訪(fǎng)問(wèn)權限。因此通過(guò)改變CP15寄存器c1中的一位,所有標識為不可訪(fǎng)問(wèn)的空間一下子變?yōu)榭捎?,而不需要改變每個(gè)頁(yè)表項的AP位,節省了開(kāi)銷(xiāo)。
改變R位使得所有頁(yè)具有不可訪(fǎng)問(wèn)權限,因而特權模式任務(wù)和用戶(hù)模式任務(wù)對頁(yè)都有讀訪(fǎng)問(wèn)權限。同樣,這一位可以加速對大塊存儲塊的訪(fǎng)問(wèn),而不需要修改許多頁(yè)表項的值。
注意 | 地址轉換過(guò)程中,在物理地址產(chǎn)生之前,將會(huì )按表2.22的編碼對訪(fǎng)問(wèn)地址的權限進(jìn)行檢測。 |
基于段的地址變換過(guò)程如圖15.27所示。
圖15.27基于段的地址變換過(guò)程
(5)粗二級頁(yè)表描述符及其地址變換過(guò)程
如果一級頁(yè)表項的bits[1∶0]=0b01,說(shuō)明此頁(yè)表項包含一個(gè)粗二級頁(yè)表首地址指針,同時(shí)還包含一級頁(yè)表項代表的1MB虛存段的域信息。粗頁(yè)表必須與1KB的倍數地址對齊。頁(yè)表項具體定義見(jiàn)表15.24。
表15.24 粗二級頁(yè)表項中各字段含義
字段 | 含義 |
bits[1:0] | 粗二級頁(yè)表描述符標識 |
bits[4:2] | 生產(chǎn)商定義 |
bits[8:5] | 域標識符 |
bit[9] | 當前未被使用,設置成0 |
bits[31:10] | 粗二級頁(yè)表基地址,該地址1KB對齊 |
基于粗二級頁(yè)表的地址變換過(guò)程如圖15.28所示。
(6)細二級頁(yè)表描述符及其地址變換過(guò)程
如果一級頁(yè)表項的bits[1:0]=0b11,說(shuō)明此頁(yè)表項包含一個(gè)細二級頁(yè)表首地址指針,同時(shí)還包含一級頁(yè)表項代表的1MB虛存段的域信息。細頁(yè)表必須與4KB的倍數地址對齊。頁(yè)表項具體定義如表15.25所示。
圖15.28基于粗二級頁(yè)表的地址變換過(guò)程
表15.25 細二級頁(yè)表項中各字段含義
字段 | 含義 |
bits[1:0] | 細二級頁(yè)表描述符標識 |
bits[4:2] | 生產(chǎn)商定義 |
bits[8:5] | 域標識符 |
bits[11:9] | 當前未被使用,設置成0 |
bits[31:12] | 細二級頁(yè)表基地址,該地址4KB對齊 |
存儲器相關(guān)文章:存儲器原理
評論