邏輯地址和物理地址之間的關鍵區別在於CPU在程序執行期間生成邏輯地址,而物理地址是內存單元中的一個位置。
簡單地說,CPU生成邏輯地址或虛擬地址。從正在運行的程序的角度來看,項目似乎位於邏輯地址提供的地址。存儲器單元觀察物理地址。此外,它允許通過數據總線訪問主存儲器中的特定存儲單元。
目錄
1. 概述和主要區別
2. 什麼是邏輯地址
3. 什麼是物理地址
4. 並排比較-邏輯地址與物理地址的表格形式
5. 摘要
什麼是邏輯地址(logical address)?
CPU生成邏輯地址。從正在運行的程序的角度來看,項目似乎位於邏輯地址提供的地址。計算機上運行的應用程序看不到物理地址。它們總是使用邏輯地址工作。邏輯地址空間是程序生成的邏輯地址集。在使用邏輯地址之前,有必要將邏輯地址映射到物理地址。硬件設備內存管理單元(MMU)處理這個映射過程。
mmu映射方案
MMU遵循幾種映射方案。在最簡單的映射方案中,重定位寄存器中的值被加到應用程序產生的每個邏輯地址上,然後再將它們發送到內存中。還有一些其他複雜的方法來生成映射。地址綁定(即將指令和數據分配到內存地址)可以在三個不同的時間發生。
首先,如果預先知道了實際的內存位置,它可能在編譯時發生,這將在編譯時生成絕對代碼。如果預先不知道內存位置,也可能在加載時發生。為此,需要在編譯時生成可重新定位的代碼。此外,地址綁定可以在執行時發生。這需要硬件支持地址映射。在編譯時和加載時地址綁定中,邏輯地址和物理地址是相同的。但是當地址綁定發生在執行時,這個過程是不同的。
什麼是實際地址(physical address)?
存儲器單元觀察物理地址或實際地址。它允許數據總線訪問主存儲器中的特定存儲單元。MMU將邏輯地址映射到物理地址。例如,使用最簡單的映射方案,將重定位寄存器(假設寄存器中的值是y)值添加到邏輯地址,從0到x的邏輯地址範圍將映射到物理地址範圍y到x+y。
此外,這也被稱為該程序的物理地址空間。所有的邏輯地址都需要映射到物理地址才能使用。
邏輯地址(logical address)和實際地址(physical address)的區別
邏輯地址與物理地址 | |
邏輯地址是從正在執行的應用程序的角度看,項目似乎駐留在該地址。 | 物理地址是在地址總線電路上以二進制數的形式表示的存儲器地址,以使數據總線能夠訪問主存儲器的特定存儲單元或存儲器映射的I/O設備的寄存器。 |
能見度 | |
用戶可以查看程序的邏輯地址。 | 用戶無法查看程序的物理地址。 |
生成方法 | |
CPU生成邏輯地址。 | MMU計算物理地址。 |
無障礙 | |
用戶可以使用邏輯地址訪問物理地址。 | 用戶不能直接訪問物理地址。 |
總結 - 邏輯地址(logical address) vs. 實際地址(physical address)
邏輯地址和物理地址的區別在於,程序執行時CPU生成邏輯地址,而物理地址是內存單元中的一個位置。所有邏輯地址都需要映射到物理地址,然後MMU才能使用它們。當使用編譯時地址綁定和加載時地址綁定時,物理地址和邏輯地址是相同的,但在使用執行時地址綁定時,它們是不同的。
引用
1.“邏輯地址”,維基百科,維基媒體基金會,2018年4月30日。此處提供2.“物理地址”,維基百科,維基媒體基金會,2018年4月30日。此處提供
2.“物理地址”,維基百科,維基媒體基金會,2018年4月30日。