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