一、I/O連接埠
連接埠(port)是介面電路中能被CPU直接存取的寄存器的地址。幾乎每一種外設都是通過讀寫裝置上的寄存器來進行的。CPU通過這些地址即連接埠向介面電路中的寄存器發送命令,讀取狀態和傳送資料。外設寄存器也稱為“I/O連接埠”,通常包括:控制寄存器、狀態寄存器和資料寄存器三大類,而且一個外設的寄存器通常被連續地編址。
二、IO記憶體
例如,在PC上可以插上一塊圖形卡,有2MB的儲存空間,甚至可能還帶有ROM,其中裝有可執行代碼。
三、IO連接埠和IO記憶體的區分及聯絡
這兩者如何區分就涉及到硬體知識,X86體系中,具有兩個地址空間:IO空間和記憶體空間,而RISC指令系統的CPU(如ARM、PowerPC等)通常只實現一個物理地址空間,即記憶體空間。
記憶體空間:記憶體位址定址範圍,32位作業系統記憶體空間為2的32次冪,即4G。
IO空間:X86特有的一個空間,與記憶體空間彼此獨立的地址空間,32位X86有64K的IO空間。
IO連接埠:當寄存器或記憶體位於IO空間時,稱為IO連接埠。一般寄存器也俗稱I/O連接埠,或者說I/O ports,這個I/O連接埠可以被映射在Memory Space,也可以被映射在I/O Space。
IO記憶體:當寄存器或記憶體位於記憶體空間時,稱為IO記憶體。
四、外設IO連接埠物理地址的編址方式
CPU對外設IO連接埠物理地址的編址方式有兩種:一種是I/O映射方式(I/O-mapped),另一種是記憶體映射方式(Memory-mapped)。而具體採用哪一種則取決於CPU的體繫結構。
1、統一編址
RISC指令系統的CPU(如,PowerPC、m68k、ARM等)通常只實現一個物理地址空間(RAM)。在這種情況下,外設I/O連接埠的物理地址就被映射到CPU的單一物理地址空間中,而成為記憶體的一部分。此時,CPU可以象訪問一個記憶體單元那樣訪問外設I/O連接埠,而不需要設立專門的外設I/O指令。
統一編址也稱為“I/O記憶體”方式,外設寄存器位於“記憶體空間”(很多外設有自己的記憶體、緩衝區,外設的寄存器和記憶體統稱“I/O空間”)。