7、地址映射
地址映射也叫地址重定位。
邏輯地址和物理地址是完全不同的,不能用邏輯地址來直接訪問內(nèi)存單元。
為了保證CPU 在執(zhí)行指令的時(shí)候,可以正確地訪問內(nèi)存單元,需要將用戶程序中的邏輯地址轉(zhuǎn)換為運(yùn)
行時(shí)由機(jī)器直接尋址的物理地址。這個(gè)過程稱為:地址映射。
地址映射由存儲管理單元MMU 來完成。
地址映射主要有兩種方式:靜態(tài)地址映射和動(dòng)態(tài)地址映射。
靜態(tài)地址映射:當(dāng)用戶程序被裝入內(nèi)存時(shí),直接對指令代碼進(jìn)行修改,一次性地實(shí)現(xiàn)邏輯地址到物理
地址的轉(zhuǎn)換。
動(dòng)態(tài)地址映射:當(dāng)用戶程序被裝入內(nèi)存時(shí),不對指令代碼做任何修改,而是在程序的運(yùn)行過程中,當(dāng)
它需要訪問內(nèi)存單元的時(shí)候,再來進(jìn)行地址轉(zhuǎn)換。
在具體實(shí)現(xiàn)時(shí),這項(xiàng)轉(zhuǎn)換工作一般是由硬件的地址映射機(jī)制來完成的。通常設(shè)置一個(gè)基地址寄存器,
或者叫重定位寄存器。當(dāng)一個(gè)任務(wù)被調(diào)度運(yùn)行時(shí),就把它所在分區(qū)的起始地址裝入到整個(gè)寄存器中。然后,
在程序運(yùn)行的過程中,當(dāng)需要訪問某個(gè)內(nèi)存單元時(shí),硬件就會自動(dòng)地將其中的邏輯地址加上基地址寄存器
中的內(nèi)容,從而得到實(shí)際的物理地址,并且按照這個(gè)物理地址區(qū)執(zhí)行。
這個(gè)基地址寄存器位于MMU 的內(nèi)部,整個(gè)地址映射過程是自動(dòng)運(yùn)行的。從理論上說,每訪問一次內(nèi)存
都要進(jìn)行一次地址映射。
相關(guān)推薦:軟考嵌入式系統(tǒng)設(shè)計(jì)歷年真題匯總(2007-2010)
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |