一 頁表
1. 頁表是放置在RAM(一般為DRAM)中的一個數據段。
2. ARM的地址空間為2^32字節,即4G字節。
3. 一級頁表總共有4096條記錄,每條記錄對應的地址塊為1M,一級頁表中的記錄將虛擬的連續4G尋址空間等分。
4. 一級頁表中的每條記錄的內容就是虛擬的4G尋址空間的物理地址,舉例如下:
a. 將一級頁表基址設置為:0x31000000,則從基址開始,之後的4096 * 4字節對應一級頁表。
b. 一級頁表的第0條記錄對應著虛擬地址的0x0000,0000~0x000F,FFFF,第1條記錄對應著虛擬地址的0x0010,0000~0x001F,FFFF,依次類推。
c. 相應的,一級頁表的第0條記錄(高12位)的內容對應虛擬地址0x0000,0000~0x000F,FFFF的物理地址(基地址),第1條記錄(高12位)對應虛擬地址 0x0010,0000~0x001F,FFFF的物理地址(基地址),每條記錄中的低位中都包含著權限訪問控制位。
二 TLB(Translation Lockaside buffer):快表
快表可理解為頁表的cache,頁表是存在於RAM中的一段數據,訪問延遲較高,將相鄰的頁表加載到快表中可極大的加速MMU合成地址。
三 Cache
未完待續...
N 關於MMU的啟動
若將頁表設置為虛擬地址 = 物理地址,則開啟MMU後代碼的運行、數據的存儲於讀取、堆棧等不受影響,代碼將繼續地正確運行。