什么是异构计算 SoC

传统 MCU 一个核心干所有事。现在的嵌入式 SoC 已经是"小电脑":一个大核跑 Linux(应用、网络、UI),一个小核跑 RTOS(实时控制),旁边还有 NPU(AI 推理)、DSP(音频/信号)、VPU(视频编解码)。不同核干不同活,这就是异构计算。

异构不是"多几个核"那么简单,是"让合适的活儿跑在合适的核上"。实时任务丢大核上,抖动 5ms 就废了;AI 推理丢 CPU 上,功耗爆炸。
SoC 配图:中央芯片周围空白圆角方块以光线连接
CPU + MCU + NPU + DSP 各司其职

这篇讲怎么把一颗异构 SoC 的算力真正用满。

典型 SoC 架构

主流嵌入式 SoC 举例:

  • 瑞芯微 RK35884×A76 + 4×A55 + 6 TOPS NPU。
  • 全志 H6184×A53 + 1 TOPS NPU。
  • TI AM64xA53 + 实时 MCU 核 + PRU。
  • ESP32-S3Xtensa LX7 双核 + AI 向量指令。
  • 瑞萨 RZ/G2LA53 + Cortex-M 实时核。

NPU:跑 AI 模型

NPU(神经网络处理器)是专门跑矩阵乘的硬件。同精度下,NPU 比 CPU 快 10~100 倍、功耗低 10 倍。部署流程:

// 1. PC 上训练好 PyTorch 模型
// 2. 量化:FP32 -> INT8(用芯片厂商工具)
// 3. 转换成 NPU 专用格式(RKNN / CoreML / TFLite)
// 4. 板端加载模型、喂输入、取输出
import rknn.api as rknn
model = rknn.RKNN()
model.load('yolov5.rknn')
out = model.infer(input_image)

注意:NPU 只支持它认识的算子,自定义算子要自己写插件。

DSP:跑信号处理

DSP(数字信号处理器)是为 MAC(乘加)指令优化的核。音频编解码、电机 FOC、通信基带都跑在 DSP 上。ARM 那边是 Cortex-R 或带 FPU 的 A 核,TI C6000、Cadence Tensilica HiFi 是经典 DSP IP。

什么时候用 DSP
  • 音频回声消除、降噪、编解码。
  • 电机FOC 高带宽控制。
  • 通信调制解调、基带处理。
  • 图像ISP、3A、降噪。