3. 高速数据处理平台架构设计
在AMD FPGA高速数据处理平台中,架构设计的第一步不是选器件,而是确定“数据怎么走、谁指挥谁、带宽够不够”。同一颗器件,采用数据流架构、控制流架构或混合架构,其吞吐率、时延、资源占用和开发难度可能相差数倍。本节围绕三类架构的取舍、三种互联方案的选型以及带宽预算方法展开,给出可直接用于工程决策的分析路径。
一、三类架构的本质差异
数据流架构以数据到达驱动处理,各处理单元之间通过FIFO或AXI4-Stream直连,没有全局指令流。其典型特征是:一旦流水线填满,每个时钟周期都能输出一个结果,吞吐率由最慢一级决定,时延固定且可预测。适合雷达脉冲压缩、视频像素流水、高速ADC采样预处理等“连续、规则、无分支”的场景。
控制流架构以处理器或状态机为核心,通过AXI4-Memory Map读写DDR中的缓冲区,按指令顺序调度计算。其优势是灵活、易处理分支和复杂协议,但每次访存都要经历地址译码、总线仲裁和存储延迟,吞吐率受限于访存带宽和调度开销。适合协议解析、参数配置、非规则算法等场景。
混合架构是工程中最常见的形态:用数据流通道承担高吞吐主干,用控制流通道完成配置、调度和结果回读。例如,前端ADC数据经AXI4-Stream进入FFT流水线,FFT结果写入DDR;CPU通过AXI4-Memory Map读取DDR并做判决,再把下一帧参数写回寄存器。关键在于明确“哪段必须流、哪段可以控”,避免把高吞吐路径塞进控制流。
二、互联方案选型: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桥接,并明确哪一侧承担背压、哪一侧承担调度。
综上,数据流、控制流与混合架构并非互斥,而是按数据特征分层使用;AXI4-Stream、AXI4-Memory Map与NoC也不是替代关系,而是分别承担数据面、控制面和可扩展互连。把带宽预算做在前面,把流/控边界划清楚,后续的RTL实现和时序收敛才有稳定基础。