記憶體管理單元MMU(memory management unit)的主要功能是虛擬地址(virtual memory addresses)到物理地址(physical addresses)的轉換。除此之外,它還可以實現記憶體保護(memory protection)、緩存控制(cache contro... ...
記憶體管理單元MMU(memory management unit)的主要功能是虛擬地址(virtual memory addresses)到物理地址(physical addresses)的轉換。除此之外,它還可以實現記憶體保護(memory protection)、緩存控制(cache control)、匯流排仲裁(bus arbitration)以及存儲體切換(bank switching)。
工作機制
CPU將要請求的虛擬地址傳給MMU,然後MMU先在高速緩存TLB(Translation Lookaside Buffer)查找轉換關係,如果找到了相應的物理地址則直接訪問;如果找不到則在地址轉換表(Translation Table)里查找計算。
虛擬地址
現代的記憶體管理單元是以頁的方式來分區虛擬地址空間(the range of addresses used by the processor)的。頁的大小是2的n次方,通常為幾KB。所以虛擬地址就被分為了兩個部分:virtual page number和offset。
頁表項(page table entry)
上面從虛擬頁號在頁表裡找到的存放物理頁表號的條目就是頁表項(PTE)。PTE一般占1個字長,裡面不僅包含了physical page number,還包含了重寫標誌位(dirty bit)、訪問控制位(accessed bit)、允許讀寫的進程類型(user/supervisor mode)、是否可以被cached以及映射類型(PTE最後兩位)。
映射
映射方式
映射方式有兩種,段映射和頁映射。段映射只用到一級頁表,頁映射用到一級頁表和二級頁表。
映射粒度
段映射的映射粒度有兩種,1M section和16M supersection;頁映射的映射粒度有4K small page、64K large page和過時的1K tiny page。
References
1. Memory Management Unit
2. Translating Addresses
3. 映射方式
Copyright (C) 2016 archiexie@cnblogs. All Rights Reserved.