處理器中的MMU可以讓我們能夠構建具有多個VA-PA映射表的數字系統。
不同程序操作同一個VA,這個VA被不同的頁表映射到不同的PA。
操作系統內核將每個應用程序的指令和數據放在物理內存中,但是應用程序并不是直接通過物理地址讀寫這些指令和數據。簡單來說,就是通過MMU進行VA-PA轉換,這讓程序設計變得簡單很多。
所有的程序員都應該了解和感謝虛擬地址,它讓你的工作沒那么dirty。因為這個dirty的工作被操作系統和硬件完成了。
頁表
在處理器中這種VA-PA的映射關系稱為頁表,頁表中的每一個頁表項都完成了某個VA-PA的映射對應。頁表格式其實還比較復雜,除了VA-PA的映射關系,還有其他的一些內存屬性和訪問權限定義。
處理器內核生成的地址都是虛擬地址,然后在訪問實際物理內存空間之前通過MMU映射成了物理地址。但是,基于不同的頁表粒度大小,比如說4KB,實際的VA-PA的映射只是將高比特做了替換。
在早期這個VA-PA的映射過程并不是由硬件完成的,后來才由硬件完成這個VA-PA轉換,形象點來說稱為translation table walking。
審核編輯:劉清
-
處理器
+關注
關注
68文章
19265瀏覽量
229669 -
MMU
+關注
關注
0文章
91瀏覽量
18283
發布評論請先 登錄
相關推薦
評論