PCIe设备访问内存:BAR、MMIO与DMA
更新于2026年10月10日 · 通用原理
BAR与MMIO
设备通过BAR描述所需资源窗口,系统为其分配地址范围。驱动可通过映射后的寄存器控制设备;并非每个BAR都是普通内存缓冲区。
DMA缓冲与地址映射
驱动使用系统DMA接口准备缓冲区和设备可用地址,设备在授权范围内传输数据。启用IOMMU时,设备地址可能经过重映射,不应直接等同于CPU物理地址。
完成处理与隔离
具体实现可使用中断或轮询处理完成事件。DMA不意味着任意访问所有内存;操作系统、驱动和平台隔离策略共同约束访问。
与光纤链路的关系
设备获得数据后可以通过另一条传输链路发送出去。链路使用光纤或网络并不能单独证明内存侧的实现。本文不把通用示意当作KDMA固件架构或认证结论。
技术参考:AMD DMA/Bridge Subsystem for PCI Express(PG195)。参考文档解释通用IP,不能用于证明KDMA板卡采用某种固件实现。
