初学 PCIe System (二) - 如何访问PCIe设备的配置空间

本文详细介绍了CPU访问PCIe设备配置空间的两种主要方式:Programmed Input/Output (PIO) 和 Direct Memory Access (DMA)。在PIO中,CPU通过地址端口和数据端口与配置地址空间交互,而DMA则允许设备直接访问内存,提高效率。通过理解这两种机制,可以更好地理解PCIe系统的内部工作原理。

初学 PCIe System (一) - PCIe介绍及其配置空间有提到可以从PCIe设备的配置空间(Configuration Space)获取许多重要的资讯,那在CPU中,访问配置空间常用的两种方式如下:

Programmed Input/Output (PIO)

PIO 是由CPU主动向Device 获取资料 ,CPU 会等待Device资料传输完后才去做其他事情。使用PIO会占住CPU资源,会让系统变得低效,因此此技术已几乎被直接记忆体访问(DMA)所取代。

这边简单介绍一下PIO的作法,首先每个PCI Function的配置空间中和PCI相容的前256 Bytes会映射到一个第三个空间:配置地址空间(configuration address space)。因为PCI Function最多会有(2^8) * (2^5) * (2^3) = 65536个,每个Function都会映射256Byte的配置空间,因此配置地址空间的大小为 65536 * 256 Bytes = 16 MB。

CPU 通过主桥(Host Bridge)中的 IO 映射地址端口(Address Port )和资料端口(Data Port)进行索引来间接访问 PCI 配置空间。

地址端口(Address Port )位于 IO 地址 CF8h-CFBh,是一个大小为32 bits的暂存器,需要填入CONFIG_ADDRESS,其格式如下

Bit 31 Bits 30-24 Bits 23-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值