PCI Address Space Map

在這裏插入圖片描述

PCI體系結構中支持三種地址空間:Memory空間、I/O空間、Configuration空間

x86的處理器可以直接訪問Memory空間和I/O空間。PCI的設備可以直接映射到處理器的Memory空間中,支持32bit/64bit尋址。在I/O地址空間中,PCI支持32bit地址,但是x86只用了16bit訪問I/O空間,所以很多平臺的I/O空間大小限制在64KB

PCI還引入了配置空間(Configuration Space),而且CPU只能間接訪問配置空間。每個功能(Function)包含配置空間的內部寄存器,允許軟件以一種標準化的方式顯示和控制其地址和資源,在PC中提供一個真正的“即插即用”環境。每個PCI功能(PCI Function)最大包含256 Bytes配置空間。鑑於在一個系統中,最多支持256條總線,每條總線最多支持32個設備,每個設備最多支持8個功能(Function),那麼總的配置空間大小就是:256 Bytes * 8 * 32 * 256 = 16MB

鑑於CPU不能直接訪問PCI設備的配置空間,所以只能通過IO寄存器進行間接訪問(PCIe設備還支持將配置空間映射到Memory空間進行訪問)。就像圖1-10所展現的那樣,CPU通過配置地址端口(Configuration Address Space)配置數據端口(Configuration Data Port)訪問PCI設備的配置空間。配置地址端口的地址是CF8h~CFBh,配置地址端口的地址是CFCh~CFFh

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章