1. Agilex FPGA 架构概述
Agilex 7 系列是 Intel 基于 10nm SuperFin 工艺打造的高性能 FPGA 平台,专为数据密集型加速、网络与计算应用设计。本章从芯片级架构出发,依次剖析核心逻辑、高速串行接口(HSSI)、PCIe 硬核以及内嵌 DMA 控制器,为后续的 PCIe 接口 DMA 传输与驱动调试建立硬件认知基础。
1.1 Agilex 7 系列芯片架构
Agilex 7 采用异构计算架构,将 FPGA 逻辑阵列、硬核处理器系统(HPS)、高速收发器、PCIe 硬核、内存控制器以及 AI Tensor 模块集成在同一芯片上。其核心架构分为以下几个关键区域:
| 架构模块 | 说明 | 关键特性 |
|---|---|---|
| FPGA 逻辑阵列 | 自适应逻辑模块(ALM)、DSP 块、M20K 嵌入式存储器 | 每 ALM 含 8 个 LUT 与 8 个寄存器;DSP 支持 INT8/FP16/BF16 |
| 硬核处理器系统(HPS) | 四核 ARM Cortex-A76 + 双核 Cortex-R52 | 运行 Linux / RTOS,管理 PCIe 枚举与 DMA 描述符 |
| 高速串行接口(HSSI) | 多达 144 个 58 Gbps / 116 Gbps 收发器通道 | 支持 PCIe Gen5、100G/400G 以太网、CPRI |
| PCIe 硬核 | PCIe Gen5 x16 硬核 IP | 支持 SR-IOV、TLP 直通、DMA 引擎集成 |
| 内存控制器 | DDR5 / HBM2e 硬核控制器 | ECC 保护,带宽可达 1 TB/s(HBM2e) |
| AI Tensor 模块 | 专用矩阵乘法加速器 | 每模块 512 MAC,支持 INT8/FP16 |
架构要点: Agilex 7 的 PCIe 硬核与 HSSI 收发器在物理上紧邻,片内通过 AXI4-Stream 高速总线与 FPGA 逻辑和 HPS 互联,这为低延迟 DMA 传输提供了硬件基础。
1.2 HSSI 与 PCIe 硬核
Agilex 7 的 HSSI(High-Speed Serial Interface) 是一组多协议收发器通道,物理层支持 NRZ 和 PAM4 信令。每个收发器通道可独立配置为 PCIe、以太网、CPRI 或 JESD204B 协议。PCIe 硬核则是在 HSSI 之上实现的专用数字逻辑,负责完成事务层、数据链路层和物理层的协议处理。
PCIe 硬核关键特性
- 支持 Gen5 x16:单向带宽 64 GB/s,双向 128 GB/s。
- SR-IOV:最多 256 个物理功能(PF)和 2048 个虚拟功能(VF),适合虚拟化场景。
- TLP 直通(TLP Bypass):允许用户逻辑直接处理事务层包,实现自定义 DMA 协议。
- 内嵌 DMA 引擎:硬核内部集成描述符取指、数据搬运和完成通知逻辑。
调试要点: 在驱动调试初期,建议先通过 PCIe 配置空间读取 Vendor ID / Device ID 确认硬核枚举成功,再使用内置 Loopback 模式验证 HSSI 收发器链路完整性。
1.3 DMA 控制器简介
Agilex 7 的 DMA 控制器分为两种类型:硬核 DMA(Hard DMA) 和 软核 DMA(Soft DMA)。硬核 DMA 集成在 PCIe 硬核内部,无需消耗 FPGA 逻辑资源;软核 DMA 则使用 FPGA 逻辑实现,灵活性更高。
| 特性 | 硬核 DMA | 软核 DMA |
|---|---|---|
| 资源消耗 | 0 LUT / 0 DSP | 约 2000–5000 LUT + BRAM |
| 最大吞吐 | 接近 PCIe Gen5 线速 | 受 FPGA 频率与逻辑延迟影响 |
| 描述符管理 | 硬件自动取指 | 需用户逻辑或 HPS 软件管理 |
| 适用场景 | 高性能、低延迟、固定模式 | 自定义协议、多通道、动态配置 |
| 驱动复杂度 | 较低(使用 Intel 官方驱动) | 较高(需自行实现描述符环) |
在本次课程中,我们主要使用 硬核 DMA 进行 PCIe 数据传输,因为它能提供最佳的吞吐性能和最低的驱动开发工作量。硬核 DMA 的工作流程如下:
- 描述符提交:主机驱动在内存中构建描述符链表,包含源地址、目的地址、传输长度和标志位。
- 门铃寄存器写入:驱动通过 MMIO 写入门铃寄存器,通知 FPGA 硬核 DMA 引擎取指。
- 硬件取指与搬运:DMA 引擎通过 PCIe 读取描述符,然后发起 Memory Read / Write TLP 完成数据搬运。
- 完成通知:传输完成后,DMA 引擎写回完成状态,并可选触发 MSI-X 中断。
常见误区: 初学者容易混淆“门铃寄存器”与“描述符地址寄存器”。门铃仅用于触发 DMA 引擎开始工作,描述符的地址和长度信息必须预先写入主机内存的描述符链表中,而非直接写入门铃寄存器。
1.4 本章小结
- Agilex 7 采用 FPGA + HPS + HSSI + PCIe 硬核的异构架构,片内通过 AXI4-Stream 总线互联。
- HSSI 收发器支持多协议,PCIe 硬核内嵌 DMA 引擎,支持 Gen5 x16 和 SR-IOV。
- 硬核 DMA 无需消耗 FPGA 逻辑,吞吐高、驱动简单,是本次课程的首选方案。
- DMA 传输流程分为描述符提交、门铃触发、硬件取指搬运、完成通知四个步骤。