現代PC機主板主要由2個超大規模晶片集或晶片集組成:北橋晶片(Northbridge)和南橋(Southbridge)晶片。北橋晶片用於與CPU、記憶體和AGP視頻介面,這些介面具有很高的傳輸速率,北橋晶片還起著儲存空間控製作用,因此Intel把該晶片標號為MCH(Memory Controler Hub)晶片。南橋晶片用於管理中、低速組件。例如PCI匯流排、IDE硬碟介面、USB連接埠等,因此南橋晶片的名稱為ICH(I/O Controler
Hub)晶片。之所以用“南、北”橋來分別統稱這兩個晶片,原因為在Intel公司公布的典型PC機主板上,他們分別位於主板的下端和上端位置,並起著與CPU進行通道橋接的作用。 通常一個I/O控制器包含訪問資料的資料連接埠、輸出命令的命令連接埠和存取控制器執行狀態的狀態連接埠。連接埠地址的設定方法一般有統一編址和獨立編址這兩種。
連接埠統一編址的原理是把I/O控制器中的連接埠地址歸入儲存空間定址地址空間範圍內,因此這種編址方式也稱為儲存空間映像編址。CPUT訪問一個連接埠的操作與訪問記憶體的操作一樣,也使用訪問記憶體的指令。
連接埠獨立編址的方法是把I/O控制器和控制卡的定址空間單獨作為一個獨立的空間地址對待,稱為I/O地址空間,每個連接埠有一個I/O地址空間與之對應,並且使用專門的I/O指令來訪問連接埠。 IBM PC及其相容性微型機主要使用獨立編址方式,採用了一個獨立的I/O地址空間對控制裝置中的寄存器進行定址和訪問。使用ISA匯流排結構的傳統PC機及其I/O地址空間的範圍為0x000~0x3FF,有1024個I/O連接埠地址可供使用。
IBM PC機也部分地使用了統一編址方式。例如CGA顯示卡上的顯示記憶體的地址就直接佔用了儲存空間地址空間0xB800~0xBC00範圍。因此若要讓一個字元顯示在螢幕上,可以直接使用記憶體操作指令往這個記憶體地區執行寫操作。 對於使用EISA和PCI等匯流排結構的現代PC機,有64KB的I/O定址空間可供使用,在linux系統上可通過查看/proc/ioports檔案(cat /proc/ioports)得到相關控制器或設定使用的I/O位址範圍。 PC機I/O介面傳輸資料控制方式一般可採用程式迴圈查詢方式、中斷處理方式和DMA(Direct memory access)傳輸方式。