编辑
2025-11-23
系统知识
0

目录

PCIE体系结构中的角色
PCIE系统的初始化
Linux下用户态与内核态的交互
Linux PCIE驱动框架
PCIE三层协议栈概览
如何通知硬件设备开始DMA操作
被隐藏住的DMA过程中的细节

本篇文章中,我会根据我目前的工作经验,并结合相关资料,从基本流程上简要地探究一下PCIE DMA操作的交互流程。

适用PCIE的设备有很多类型,典型的就是网卡、NVMe SSD、GPU,不同系统上细节也不同,因此我将以Linux为例,进行相关研究。

我们不需要过分追求某个细分主题下的详细内容,因为每个主题都很复杂,不是一篇文章就可以讲完的,本文旨在让你想通完成一个PCIE DMA的操作大体上都会经历什么。

PCIE体系结构中的角色

PCIE系统的初始化

Linux下用户态与内核态的交互

Linux PCIE驱动框架

https://jklincn.com/posts/qemu-edu-driver/

https://www.qemu.org/docs/master/specs/edu.html

PCIE三层协议栈概览

https://www.intel.cn/content/www/cn/zh/docs/programmable/683111/17-1/pci-express-core-architecture.html

如何通知硬件设备开始DMA操作

被隐藏住的DMA过程中的细节

本文作者:Test

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!