I/O 對映 I/O 的優點和記憶體對映 I/O 的缺點
在討論 I/O 對映 I/O 的優點和記憶體對映 I/O 的缺點之前,讓我們先泛泛地討論一下 I/O 對映 I/O 和記憶體對映 I/O 之間的區別。
在記憶體對映輸入輸出中 -
我們將記憶體地址分配給輸入輸出裝置。
任何與記憶體相關的指令都可以被此輸入輸出裝置訪問。
輸入輸出裝置資料也提供給算術邏輯單元。
I/O 對映輸入輸出 -
我們將 I/O 地址分配給輸入輸出裝置。
只有 IN 和 OUT 指令可以被此類裝置訪問。
ALU 運算不直接適用於此類輸入輸出資料。
因此,我們可以總結如下 -
I/O 是處理器/控制器用於處理連線到它的外圍裝置的任何通用埠。
I/O 對映 I/O 具有與記憶體不同的地址空間。因此,總定址容量是連線的 I/O 裝置數量和連線的記憶體數量之和。使用單獨的 I/O 相關指令來訪問 I/O 裝置。使用單獨的訊號來定址 I/O 裝置。
記憶體對映 I/O 與外部記憶體共享記憶體空間。因此,總定址容量僅為連線的記憶體。如果您的處理器支援 I/O 對映 I/O,則這是資源的低效利用。在這種情況下,用於訪問 I/O 的指令與用於記憶體的指令相同。
以 8085 處理器為例。它具有 16 根地址線,即 64 KB 記憶體的定址容量。它支援 I/O 對映 I/O。它最多可以定址 256 個 I/O。
如果我們將 I/O 連線到 I/O 對映 I/O,則它可以定址 256 個 I/O + 64 KB 記憶體。並使用特殊的 IN 和 OUT 指令來訪問外圍裝置。在這裡,我們充分利用了處理器的定址能力。
如果外圍裝置以記憶體對映方式連線,則它最多隻能定址 64K 個裝置。這是資源的低效利用。並且只使用記憶體訪問指令(如 MVI、MOV、LOAD、SAVE)來訪問 I/O 裝置。
現在我們將討論 I/O 對映 I/O 的優點和記憶體對映 I/O 的缺點 -
我們使用 IN 和 OUT 指令來定址輸入輸出對映輸入輸出埠。這些指令的助記符表明處理器正在與輸入輸出埠進行通訊。要從地址為 FFF0H 的記憶體對映輸入埠載入累加器,我們執行指令 LDA FFF0H。
有些微處理器包含一個控制引腳,用於選擇記憶體位置或輸入輸出埠。例如,在 8085 處理器中,IO/M* 引腳用於選擇輸入輸出埠或記憶體位置。
為輸入輸出埠的地址空間分配 256 個位置,因為它們的大小隻有 8 位。記憶體的地址空間包含 64K 個位置,因為記憶體的地址長度為 16 位。
如果我們將輸入輸出埠作為記憶體對映輸入輸出埠定址,其地址範圍為 FF00H-FFF0H,則不應為任何記憶體晶片分配這些地址範圍。

資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP