邏輯位址,在電腦架構中是指應用程式角度看到的主記憶體單元(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