基本介紹
- 中文名:分頁記憶體管理單元
- 外文名:paged memory management unit
- 簡稱:PMMU
機制,記憶體管理單元,
機制
現代的記憶體管理單元是以頁的方式,分割虛擬地址空間(處理器使用的地址範圍)的;頁的大小是2的n次方,通常為幾KB。地址尾部的n位(頁大小的2的次方數)作為頁內的偏移量保持不變。其餘的地址位(address)為(虛擬)頁號。記憶體管理單元通常藉助一種叫做轉譯旁觀緩衝區(Translation Lookaside Buffer,縮寫為TLB)的相聯高速快取(associative cache)來將虛擬頁號轉換為物理頁號。當後備緩衝器中沒有轉換記錄時,則使用一種較慢的機制,其中包括專用硬體(hardware-specific)的數據結構(Data structure)或軟體輔助手段。這個數據結構稱為分頁表,頁表中的數據就叫做頁表項(page table entry,縮寫為PTE)。物理頁號結合頁偏移量便提供出了完整的物理地址。
頁表或轉換後備緩衝器中數據項包括的信息有:一、“髒位”(頁面重寫標誌位)(dirty bit)——表示該頁是否被寫過。二、“存取位”(accessed bit)——表示該頁最後使用於何時,以便於最近最少使用頁面置換算法(least recently used page replacement algorithm)的實現。三、哪種進程可以讀寫該頁的信息,例如用戶模式(user mode)進程還是特權模式(supervisor mode)進程。四、該頁是否應被高速緩衝的信息。
有時,TLB或PTE會禁止對虛擬頁的訪問,這可能是因為沒有物理隨機存取存儲器(random access memory)與虛擬頁相關聯。如果是這種情況,MMU將向CPU發出頁錯誤(page fault)的信號。作業系統operating system)將進行處理,也許會嘗試尋找RAM的空白幀,同時建立一個新的PTE將之映射到所請求的虛擬地址。如果沒有空閒的RAM,可能必須關閉一個已經存在的頁面,使用一些替換算法,將之保存到磁碟中(這被稱之為頁面調度(paging)。在一些MMU中,PTEs或者TLB也存在一些缺點, 在這樣的情況下作業系統將必須釋放空間以供新的映射。