輸入-Semalt Expert解釋的輸出端口

在計算機中,CPU將RAM以外的任何設備(例如,安裝在擴展卡或主板上的控制器)視為外圍設備。中央處理器和外圍設備之間的數據交換是通過輸入輸出端口進行的。 IO端口是直接連接到計算機IO總線的控制器,數字信號處理器等的緩衝設備或寄存器。通過輸入輸出端口,您可以將各種內部和外部設備連接到計算機以擴展其功能。
IO端口允許您在計算機中的設備和軟件之間建立連接。它們類似於雙向無線電信道,因為任一方向的信息交換都發生在同一信道上。
端口地址
為控制計算機設備之間的數據交換,每個IO端口被分配了自己唯一的編號-端口地址。在PC上,16位代碼用於尋址IO端口。因此,有216=65536個端口,編號從OOOOh到FFFFh。 IBM兼容計算機的標準IO範圍是0-3FFh。這些端口包括用於鍵盤控制器,硬盤驅動器和軟盤,EGA/VGA視頻適配器,聲卡,串行和並行接口,遊戲端口和任何其他外圍設備的端口。外圍設備能夠使用多個IO端口。請注意,您實際上可以使用不超過FFFFh的地址。例如,聲卡的WT綜合處理器的端口的IO範圍為620h-E23h。
端口在執行程序時由中央處理器尋址。為了避免在編程過程中指示每個外圍IO端口的特定地址以及根據特定的計算機配置迅速更改地址,使用了IO基址。基地址分配給每個外圍設備,並且對應於端口組中的最低地址。通過指定相對於基址的偏移量來對外圍設備的其餘端口進行尋址。
外圍設備的IO基址可以是IO範圍內的任何地址。 BIOS為其他外圍設備無法使用的標準硬件設備保留了IO範圍的一部分。例如,對於LPT1接口,保留IO範圍378h-37Eh,可以在其中選擇IO基址。這樣,在以硬件-軟件級別尋址端口時,就可以消除衝突的可能性。由於在此IO範圍內使用三個寄存器來控制和監視LPT1,因此基地址有5種可能的值-378h-s-37Ch。
編程IO
用於與已編程的輸入/輸出(PIO)端口進行數據交換。它使用字符串命令傳輸位深度為8、16或32位的字。可以在一個或多個總線週期內發送該字,並在每個存儲器訪問周期中指示相應的地址。總線交換週期在IO命令執行期間啟動。週期數取決於地址沿字邊界的對齊方式以及所用總線的數據位深度。 PIO數據交換速度超過了標准直接內存訪問(DMA)通道的交換速度。