3. 高速数据处理平台架构设计

在AMD FPGA高速数据处理平台中,架构设计的第一步不是选器件,而是确定“数据怎么走、谁指挥谁、带宽够不够”。同一颗器件,采用数据流架构、控制流架构或混合架构,其吞吐率、时延、资源占用和开发难度可能相差数倍。本节围绕三类架构的取舍、三种互联方案的选型以及带宽预算方法展开,给出可直接用于工程决策的分析路径。

一、三类架构的本质差异

数据流架构以数据到达驱动处理,各处理单元之间通过FIFO或AXI4-Stream直连,没有全局指令流。其典型特征是:一旦流水线填满,每个时钟周期都能输出一个结果,吞吐率由最慢一级决定,时延固定且可预测。适合雷达脉冲压缩、视频像素流水、高速ADC采样预处理等“连续、规则、无分支”的场景。

控制流架构以处理器或状态机为核心,通过AXI4-Memory Map读写DDR中的缓冲区,按指令顺序调度计算。其优势是灵活、易处理分支和复杂协议,但每次访存都要经历地址译码、总线仲裁和存储延迟,吞吐率受限于访存带宽和调度开销。适合协议解析、参数配置、非规则算法等场景。

混合架构是工程中最常见的形态:用数据流通道承担高吞吐主干,用控制流通道完成配置、调度和结果回读。例如,前端ADC数据经AXI4-Stream进入FFT流水线,FFT结果写入DDR;CPU通过AXI4-Memory Map读取DDR并做判决,再把下一帧参数写回寄存器。关键在于明确“哪段必须流、哪段可以控”,避免把高吞吐路径塞进控制流。

三类架构的数据通路与互联选型对照 数据流架构 ADC FFT DSP AXI4-Stream 直连 无地址、无仲裁 吞吐=最慢级,时延固定 适合连续规则流 控制流架构 CPU DDR 外设 AXI4-Memory Map 读写 地址译码+总线仲裁 吞吐受访存带宽限制 适合分支与协议处理 混合架构 流通道 DDR 控制 流主干+控旁路 高吞吐与灵活性兼顾 需划分流/控边界 工程最常用形态 带宽预算示例:250 MSPS × 16 bit 前端链路 ADC采样率 250 MSPS 位宽 16 bit 原始数据率 4.0 Gbps AXI4-Stream 有效带宽 ≥ 5.0 Gbps 余量 25% 计算:250 MSPS × 16 bit = 4000 Mbps = 4.0 Gbps;互联有效带宽需留 20%~30% 余量 若经 DDR 中转,需再叠加读写双向带宽与刷新开销,通常按 1.6~2.0 倍原始率估算

二、互联方案选型:AXI4-Stream、AXI4-Memory Map 与 NoC

AXI4-Stream没有地址概念,只有TVALID/TREADY握手和TDATA/TLAST等边带信号,适合点对点或经Stream Switch汇聚的连续数据。它的带宽利用率高,但缺乏寻址能力,无法直接访问DDR。选型判断:数据连续、无随机访问、处理单元固定时优先使用。

AXI4-Memory Map带地址,可读写寄存器、BRAM和DDR,是CPU与加速器交互的标准接口。其代价是每次传输都要经历地址阶段和数据阶段,突发长度不足时效率明显下降。选型判断:需要随机访问、需要CPU参与调度、需要访问大容量缓存时使用。工程中常用AXI4-Stream做数据面、AXI4-Memory Map做控制面。

NoC(Network-on-Chip)在Versal等器件中提供可编程的片上网络,把多个AXI主从设备通过路由节点连接,替代传统交叉开关。其优势是可扩展、支持多主多从并发、时延可配置;代价是引入路由跳数和协议转换开销。选型判断:当主从设备数量超过6~8个、交叉开关时序难以收敛、或需要多区域并发访问时,NoC比大面积AXI Interconnect更合适。

三、带宽预算:从采样率到互联余量

带宽预算的核心是把“原始数据率”逐级换算到“互联有效带宽”,并留出余量。以250 MSPS、16 bit的ADC前端为例:

原始数据率 = 250e6 × 16 = 4.0 Gbps
AXI4-Stream 有效带宽 = 原始数据率 × (1 + 协议开销)
若 TDATA=64 bit、时钟 200 MHz,理论峰值 = 64 × 200e6 = 12.8 Gbps
考虑握手间隙与背压,有效带宽按 70% 估算 ≈ 8.96 Gbps,满足 4.0 Gbps 需求
若经 DDR 中转:读写双向叠加,按 1.6~2.0 倍原始率估算,需 ≥ 6.4~8.0 Gbps
DDR4-2400 单通道理论 19.2 GB/s,实际有效约 60%~70%,即 11.5~13.4 GB/s,余量充足

预算时需注意三点:一是区分“峰值带宽”和“可持续带宽”,后者才是设计依据;二是把控制流读写也计入总线占用,避免数据流被控制流挤占;三是NoC场景下要按路由跳数折算有效带宽,跳数越多,单跳延迟和仲裁开销越大。

四、架构取舍的决策路径

实际选型可按以下顺序判断:先看数据是否连续、是否允许固定时延——若是,走数据流;再看是否需要CPU参与判决、是否需要随机访问大缓存——若是,在数据流主干旁挂控制流旁路;最后看主从设备数量和时序收敛难度——若AXI Interconnect已难以满足时序或设备数超过8个,改用NoC。混合架构的关键是划清“流/控边界”:边界处用AXI4-Stream FIFO或AXI4-Memory Map桥接,并明确哪一侧承担背压、哪一侧承担调度。

工程建议:在架构设计阶段先画一张“数据通路+带宽标注图”,把每一级的输入输出速率标在连线上。若某条连线标注的速率超过其互联理论峰值的70%,该处就是瓶颈,需要加宽位宽、提高时钟或改为并行通道。
常见误区:把高吞吐数据流直接接入AXI4-Memory Map并频繁读写DDR,导致总线仲裁成为瓶颈;或在数据流路径中插入需要CPU干预的分支判断,破坏流水线连续性。前者应改用Stream直连或增大突发长度,后者应把分支判断移到控制流旁路。

综上,数据流、控制流与混合架构并非互斥,而是按数据特征分层使用;AXI4-Stream、AXI4-Memory Map与NoC也不是替代关系,而是分别承担数据面、控制面和可扩展互连。把带宽预算做在前面,把流/控边界划清楚,后续的RTL实现和时序收敛才有稳定基础。