邏輯地址,在電腦架構中是指應用程式角度看到的內存單元(memory cell)、儲存單元(storage element)、網絡主機(network host)的地址。 邏輯地址往往不同於實體位址(physical address),通過地址翻譯器(address translator)或對映函數可以把邏輯地址轉化為實體位址。

內存邏輯地址

編輯

在電腦內存體系結構中,內存管理器件(memory management unit,MMU)把CPU的內存讀取的地址轉譯為內存匯流排(memory bus)使用的實體位址。

在Intel x86硬件環境下,內存邏輯地址是程式角度看到的內存地址。80286之前,分段定址是唯一的內存訪問方式。從80286,特別是80386開始的32位元保護模式下,內存邏輯地址由16位元段選擇符(segment selector)與32位元段內偏移組成。CPU硬件實現把內存邏輯地址翻譯為32位元的內存線性地址(linear address)。內存線性地址再通過分頁機制翻譯為32位元的內存實體位址,之後才能讀寫內存數據。Linux作業系統實際上把上述16位元段地址設為0,從而使得內存邏輯地址與內存線性地址是等價的成為。

參考文獻

編輯
  • The Intel 64 and IA-32 Architectures Software Developer’s Manual, Volume 3A: System Programming Guide, Part 1