硬件上必須具有MMU(Memory Manage Unit)其功能有三:1。把虛擬地址變換成物理地址;2。控制存儲(chǔ)器空間的訪問(wèn)權(quán)限;3。設(shè)置緩沖。 有了這個(gè)硬件單元的板卡才能夠跑windows CE。uc/os和uclinux沒(méi)有引入虛擬地址也就用不著MMU了。
軟件上引入了頁(yè)表虛擬存儲(chǔ)管理技術(shù)。虛實(shí)地址的變換過(guò)程實(shí)際上就是OS查詢頁(yè)表的過(guò)程。頁(yè)表中存放的是虛擬地址對(duì)應(yīng)的物理地址、訪問(wèn)權(quán)限、緩沖特性等。例如wince下的OEMAddressTable中的虛實(shí)映射關(guān)系。此外,為了加速查詢,還引入了TLB用以存放常用的頁(yè)表。
實(shí)現(xiàn)地址映射的思路是:1。分析邏輯地址,包括頁(yè)號(hào)和頁(yè)內(nèi)偏移地址;2。查找頁(yè)表,即物理頁(yè)面;3。合成實(shí)際物理地址,物理地址=物理頁(yè)面*2的N次方+偏移地址。
嵌入式系統(tǒng)采用兩級(jí)頁(yè)表的方式進(jìn)行虛實(shí)地址變換,這與所用的處理器有關(guān)。比如ARM平臺(tái)下,有1MB,64KB,4KB,1KB四種頁(yè)面大小; X86下則是4KB和4MB。