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 内部完成搬运,减少跨芯片往返。

示例(合理假设,非实测):某遥感处理任务,前端 4 路 1 Gbps 图像输入,FPGA 做辐射校正与降噪后,经 SRIO 以 2 Gbps 送往 DSP 做目标检测,CPU 负责结果融合与下传调度。此时瓶颈往往不在 DSP 算力,而在 FPGA 到 DSP 的链路带宽与 DRAM 访问效率。
星载 FPGA 异构计算平台总体架构(任务驱动) 高速采集前端 AD/DA · 图像/射频 FPGA(交换与加速中心) 接口桥接 · 协议转换 信道化 / FFT / 滤波 图像预处理 · 打包解包 片内 BRAM 流水缓存 确定性时延数据通路 CPU(星务主控) 调度 · 模式管理 协议栈 · 故障管理 DSP(密集运算) 解调 · 均衡 向量乘加 · 迭代 ASIC(固化专用) 专用编解码 · 固定变换 低功耗 · 大批量 存储层次 片内 BRAM/Reg 最快 · 最小 片外 SRAM/DRAM 帧级缓存 NAND/Flash 长期数据 · 最大 容量↑ 带宽↓ 时延↑ 高频中间结果留片内 长期数据落 NAND JESD204B PCIe SRIO LVDS/SPI 数据流主链(任务驱动) 采集 FPGA 预处理 DSP 核心运算 CPU 融合判决 存储/下传 ← 主链尽量在 FPGA 内搬运

四、架构设计中的关键权衡

第一,带宽与算力的匹配。若 FPGA 到 DSP 链路只有 2 Gbps,而 DSP 需要 4 Gbps 数据,则 DSP 算力再高也会饿死。设计时应先算清每级吞吐,再选链路。第二,确定性与灵活性的平衡。FPGA/ASIC 时延确定但改动困难,CPU 灵活但时延抖动大,实时控制路径应尽量走 FPGA。第三,可靠性与冗余。星载环境存在单粒子翻转,关键配置存储器需三模冗余或定期刷新,互连链路需 CRC 与重传机制。

一个可操作的架构设计流程是:先列出任务清单与吞吐/时延指标,再按角色判据分配到各单元,然后根据数据量选择互连与存储层次,最后用数据流主链验证每一级是否成为瓶颈。若某级吞吐不足,优先调整数据流(如把部分运算前移到 FPGA),其次才是更换器件。

架构设计的最终检验标准:给定一组星载任务与输入数据率,平台能否在时延约束内完成处理,且各单元利用率均衡、无长期空闲或长期饱和的环节。

综上,星载 FPGA 异构计算平台的总体架构,是以任务为起点、以角色划分为骨架、以互连拓扑为神经、以存储层次与数据流为血液的系统工程。只有让“算得动”和“搬得动”同时成立,异构平台才能真正发挥价值。