隔離I/O和記憶體對映I/O有什麼區別?
隔離I/O
在隔離I/O配置中,CPU具有明確的輸入和輸出指令,並且每條指令都與介面暫存器的地址相關聯。當CPU獲取並解碼輸入或輸出指令的操作碼時,它會將與指令相關的地址定位到公共地址線上。
同時,它使能I/O讀(對於輸入)或I/O寫(對於輸出)控制線。這指示連線到公共匯流排的外部元件,地址線上的地址用於介面暫存器,而不是記憶體字。
換句話說,當CPU從記憶體中獲取指令或運算元時,它會在地址線上定位記憶體地址並使能記憶體讀或記憶體寫控制線。這指示外部元件該地址用於記憶體字,而不是I/O介面。
隔離I/O方法隔離了記憶體和I/O地址,因此記憶體地址值不受介面地址分配的影響,因為每個地址都有其自己的地址空間。另一種方法是為記憶體和I/O使用相似的地址空間。
這在僅使用一組讀寫訊號且不區分記憶體和I/O地址的計算機中是這種情況。此配置定義為記憶體對映I/O。計算機將介面暫存器視為記憶體系統的一個組成部分。分配給介面暫存器的地址不能用於記憶體字,這降低了可用的記憶體地址範圍。
記憶體對映I/O
在記憶體對映I/O組織中,沒有明確的輸入或輸出指令。CPU可以使用類似於處理記憶體字的指令來處理介面暫存器中佔據的I/O資料。每個介面都排列為一組暫存器,以響應常規地址空間中的讀寫請求。
通常,總地址空間的一部分受限於介面暫存器,但主要地,它們可以基於任何地址,考慮到沒有記憶體字也返回到相等的地址。使用記憶體對映I/O的計算機可以使用記憶體型別指令來訪問I/O資料。它使計算機能夠對輸入輸出傳輸或記憶體傳輸使用類似的指令。
好處是,用於從記憶體讀取和寫入的載入和儲存指令可用於從I/O暫存器輸入和輸出資料。在普通的計算機中,與I/O指令相比,記憶體引用指令更多。使用記憶體對映I/O,所有定義記憶體的指令也可用於I/O。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP