MMU記憶體管理單元簡介

2021-10-05 14:08:07 字數 1295 閱讀 6225

mmu

全稱叫做

memory manage unit,也就是記憶體管理單元。

在老版本的

linux

中要求處理器必須有

mmu,但是現在 linux 核心已經支援無

mmu

的處理器了。

mmu

主要完成的功能如下:

虛擬位址

(va,virtual address)

、實體地址

(pa,

physcicaladdress)的概念:

對於 32 位處理器來說,

虛擬位址

範圍是 2^32=4gb。

主機板上有

512mb

的 ddr3

,即 512mb 的

物理記憶體

,經過 mmu

可以將其對映到整個

4gb

的虛擬空間。

開啟了mmu,就不能直接往實體地址寫資料。 

物理記憶體和虛擬記憶體之間的轉換,需要用到兩個函式:ioremap

和 iounmap

ioremap

是個巨集,有兩個引數:

cookie

和 size

,真正起作用的是函式

__arm_ioremap

,此函式有三個引數和乙個返回值

phys_addr

要對映的物理起始位址

size

要對映的記憶體空間大小

mtype

ioremap

的型別,可以選擇

mt_device

、mt_device_nonshared

、 mt_device_cached 和

mt_device_wc

,ioremap

函式選擇

mt_device

返回值

__iomem

型別的指標,指向對映後的虛擬空間首位址

iounmap只有乙個引數 addr

,此引數就是要取消對映的虛擬位址空間首位址。

mmu記憶體管理單元詳解

MMU記憶體管理單元

mmu記憶體管理單元主要負責虛擬位址到實體地址的對映。在沒有使用虛擬儲存器的機器上,虛擬位址被直接送到記憶體匯流排上,使具有相同位址的物理儲存器被讀寫。而在使用了虛擬儲存器的情況下,虛擬位址不是被直接送到記憶體位址匯流排上,而是送到記憶體管理單元 mmu,再由mmu對映到物理記憶體中。如上圖所示,使...

MMU記憶體管理單元介紹

本篇文章簡要闡述mmu的概念,以及以段位址的轉換過程為例,簡單說明mmu將虛擬位址轉換成實體地址的過程。更多詳細內容請檢視 arm mmu 中文手冊 pdf mmu的實現過程,實際上就是乙個查表對映的過程。建立頁表 translate table 是實現mmu功能不可缺少的一步。頁表是位於系統的記憶...

記憶體管理單元MMU實驗

mmu介紹 許可權管理 當我們使用windows時,有時候會彈出位址訪問錯誤,但這不影響整個作業系統的執行。假設a b程式的時序圖如下 因為a b程式的位址空間各不相同。許可權管理就使得a程式無法訪問b程式的位址。如果a程式寫的非常糟糕,a程式並不能破壞核心。假如有兩個hello.c檔案,如圖 這兩...