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

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