MMU 和 MPU 的區別
MMU 和 MPU 是 CPU 使用的記憶體管理硬體。程式生成的所有邏輯地址的集合稱為“邏輯地址空間”。與這些邏輯地址相對應的所有物理地址的集合稱為“物理地址空間”。使用者程式處理虛擬地址;它永遠不會看到真實的物理地址。
閱讀本文以瞭解更多關於 MMU 和 MPU 以及它們之間區別的資訊。
什麼是 MMU?
MMU(記憶體管理單元)用於虛擬記憶體和記憶體保護操作。虛擬地址到物理地址的執行時對映由 MMU 完成,MMU 是一種硬體裝置。
MMU 使用以下機制將虛擬地址轉換為物理地址。基址暫存器中的值會新增到使用者程序生成的每個地址中,該地址在傳送到記憶體時被視為偏移量。例如,如果基址暫存器值為 10000,則使用者嘗試使用地址位置 100 將被動態重新分配到位置 10100。
什麼是 MPU?
MPU(記憶體保護單元)通常是 CPU 的一部分,僅用於記憶體保護。它通常在低功耗處理器中實現,在這些處理器中不需要 MMU 功能(如虛擬記憶體管理),只需要記憶體保護。
MPU 主要用於簡單的系統,因為它可以以較低的複雜性和成本提供所有必要的特性。
MMU 和 MPU 的區別
以下是 MMU 和 MPU 之間的重要區別:
關鍵 |
MMU |
MPU |
---|---|---|
定義 |
MMU 代表記憶體管理單元。 |
MPU 代表記憶體保護單元。 |
主要操作 |
MMU 用於多種與記憶體相關的操作,例如虛擬記憶體、虛擬地址到物理地址的轉換以及記憶體保護。 |
MPU 僅用於記憶體保護。 |
功能 |
MMU 也可以執行 MPU 的功能。 |
MPU 不能用於執行 MMU 的功能。 |
用法 |
執行高階作業系統(如 Windows、Linux 和 Android)的處理器使用 MMU。此類處理器稱為應用程式處理器。 |
執行 RTOS 操作(如 ThreadX)的處理器使用 MPU。此類處理器稱為基帶處理器,在執行 3G/4G 協議的地方很有用。 |
銀行切換 |
MMU 能夠進行銀行切換。 |
MPU 無法執行銀行切換。 |
快取控制 |
MMU 可以執行快取控制操作。 |
MPU 無法執行快取控制。 |
先進性 |
MMU 是更先進的硬體。 |
MPU 是相對不太先進的硬體。 |
開銷 |
MMU 使用更多開銷。 |
MPU 使用更少的開銷。 |
結論
您應該注意到的最顯著的區別是,MMU 用於多種與記憶體相關的操作,例如虛擬記憶體、虛擬地址到物理地址的轉換以及記憶體保護;而 MPU 僅用於記憶體保護。