2. FPGA异构计算平台总体架构设计
星载异构计算平台的总体架构设计,核心不是把 FPGA、CPU、DSP、ASIC 简单堆在一起,而是以星载任务为驱动,回答三个问题:谁负责什么、彼此怎么连、数据放在哪里并如何流动。这三者分别对应角色划分、互连拓扑与存储层次/数据流架构。角色划分决定功能边界,互连拓扑决定通信代价,存储层次与数据流决定带宽能否被真正用起来。三者必须协同设计,否则会出现“算力够但搬不动数据”的典型瓶颈。
一、以任务特征划分异构单元角色
星载任务大致可分为四类:强实时控制与调度、高吞吐规则信号处理、复杂但可并行的数值/矩阵运算、固定且大批量的专用变换。据此划分角色:
- CPU(星务/主控):承担任务调度、模式管理、协议栈、故障管理与健康监测。它处理的是“不确定分支多、实时性要求中等”的逻辑,强调灵活性与可维护性,不追求峰值算力。
- FPGA:承担接口桥接、时序收敛、流水线型信号处理与可重构加速。典型任务包括高速 AD/DA 接口、信道化、FFT、滤波、打包解包、图像预处理。其优势是确定性时延与可定制数据通路。
- DSP:承担规则、密集、迭代型的乘加运算,如解调、均衡、部分矩阵运算。其指令与存储结构对定/浮点向量运算友好,适合中等规模、算法相对稳定的处理。
- ASIC:承担算法固化、批量极大、功耗与面积敏感的专用功能,如专用编解码、固定变换。它一旦流片不可更改,因此只用于成熟稳定的算法。
角色划分的判据可归纳为:算法是否稳定(稳定→ASIC/DSP,可变→FPGA/CPU)、实时性是否苛刻(苛刻→FPGA/ASIC)、分支是否复杂(复杂→CPU)、数据吞吐是否巨大(巨大→FPGA)。同一任务可跨单元分工,例如“FPGA 做前端信道化 + DSP 做解调 + CPU 做判决与上报”。
二、互连拓扑:决定通信代价
星载平台常见互连包括:CPU 与 FPGA 之间的 PCIe 或 SpaceWire、FPGA 与 DSP 之间的高速串行链路(如 SRIO、JESD204B)、以及共享总线(如 AXI 总线、1553B 用于低速控制)。拓扑选择的关键是带宽、时延、确定性与可靠性的折中。
推荐采用“交换式星型 + 局部点对点”的混合拓扑:以 FPGA 作为数据交换与协议转换中心,向上通过 PCIe 连接 CPU,向下通过 SRIO/JESD204B 连接 DSP 与高速采集前端,低速控制走 1553B/CAN。这样做的原因是:FPGA 天然适合做多路接口汇聚与流控,能把异构单元之间的协议差异屏蔽掉,同时避免所有数据都绕行 CPU 造成瓶颈。
三、存储层次与数据流架构
存储层次按“容量—带宽—时延”分层:片内寄存器/BRAM(最快、最小)→ 片外 SRAM/DRAM(中等)→ 大容量 NAND/Flash(最慢、最大)。设计原则是:高频中间结果留在片内,帧级缓存放片外 DRAM,长期数据落 NAND。数据流则遵循“采集→预处理→核心运算→融合/判决→存储/下传”的主链,并尽量让数据在 FPGA 内部完成搬运,减少跨芯片往返。
四、架构设计中的关键权衡
第一,带宽与算力的匹配。若 FPGA 到 DSP 链路只有 2 Gbps,而 DSP 需要 4 Gbps 数据,则 DSP 算力再高也会饿死。设计时应先算清每级吞吐,再选链路。第二,确定性与灵活性的平衡。FPGA/ASIC 时延确定但改动困难,CPU 灵活但时延抖动大,实时控制路径应尽量走 FPGA。第三,可靠性与冗余。星载环境存在单粒子翻转,关键配置存储器需三模冗余或定期刷新,互连链路需 CRC 与重传机制。
一个可操作的架构设计流程是:先列出任务清单与吞吐/时延指标,再按角色判据分配到各单元,然后根据数据量选择互连与存储层次,最后用数据流主链验证每一级是否成为瓶颈。若某级吞吐不足,优先调整数据流(如把部分运算前移到 FPGA),其次才是更换器件。
综上,星载 FPGA 异构计算平台的总体架构,是以任务为起点、以角色划分为骨架、以互连拓扑为神经、以存储层次与数据流为血液的系统工程。只有让“算得动”和“搬得动”同时成立,异构平台才能真正发挥价值。