邏輯地址空間和實體地址空間

2020-07-16 10:04:36
CPU 生成的地址通常稱為邏輯地址,而記憶體單元看到的地址(即載入到記憶體地址暫存器的地址)通常稱為實體地址

編譯時和載入時的地址系結方法生成相同的邏輯地址和實體地址。然而,執行時的地址系結方案生成不同的邏輯地址和實體地址。在這種情況下,我們通常稱邏輯地址為虛擬地址,本節我們對邏輯地址和虛擬地址不加區別。

由程式所生成的所有邏輯地址的集合稱為邏輯地址空間,這些邏輯地址對應的所有實體地址的集合稱為實體地址空間。因此,對於執行時地址系結方案,邏輯地址空間與實體地址空間是不同的。

從虛擬地址到實體地址的執行時對映是由記憶體管理單元(MMU)的硬體裝置來完成。基地址暫存器這裡稱為重定位暫存器。使用者進程所生成的地址在送交記憶體之前,都將加上重定位暫存器的值(如圖 1 所示)。

使用重定位寄存器的動態重定位
圖 1 使用重定位暫存器的動態重定位