3. STM32N6硬件平台解析
STM32N6 是 ST 第一款把自研 NPU 集成进 MCU 的产品线,它的硬件结构决定了“模型能不能跑、跑多快、怎么部署”这三个问题的答案。理解这块芯片,不能只看主频和 TOPS,而要把 CPU、NPU、内存层次和外设放在一条数据通路上看:图像从摄像头进来,经过内存搬运,被 NPU 或 M55 处理,再输出到显示或通信接口。本节围绕这条通路,把关键硬件对象和选型判断讲清楚。
Cortex-M55:带 Helium 的实时控制核心
Cortex-M55 是 ARMv8.1-M 架构的处理器,最高主频 800 MHz(STM32N6 中实际运行频率取决于型号与电压配置)。它最大的特点是支持 Helium 向量扩展(MVE),可以在一周期内对多个 8 位或 16 位数据做 SIMD 运算。对神经网络部署来说,这意味着 M55 不仅能做控制逻辑,还能承担一部分算子:例如深度可分离卷积、逐元素乘加、激活函数、量化/反量化,都可以用 Helium 指令加速。
M55 内部还有一条紧耦合的 TCM(Tightly Coupled Memory)通路,STM32N6 提供 ITCM 和 DTCM,访问延迟确定,适合放中断服务程序、实时控制代码和频繁访问的小张量。需要注意:M55 的算力是“通用算力”,适合小模型或 NPU 不支持的算子回退;不要指望它替代 NPU 跑大卷积网络。
Neural-ART NPU:600 GOPS 的专用推理单元
Neural-ART 是 ST 自研的 NPU,STM32N6 上标称约 600 GOPS(INT8)。它的价值不在“通用”,而在“专用”:卷积、池化、全连接、激活等常见算子由硬件阵列直接执行,功耗远低于 M55 软件实现。NPU 通过 AXI 总线与系统内存交互,推理时通常由 M55 负责准备输入张量、启动 NPU、等待中断、读取输出。
部署时最需要关注的是 NPU 的算子支持列表和量化要求。Neural-ART 主要面向 INT8 量化模型,部分版本支持更低位宽;如果模型里有 NPU 不支持的算子(例如某些自定义层、非标准激活),ST Edge AI Core 会把它切回 M55 执行,形成“NPU + CPU 混合执行”。混合执行会带来额外的数据搬运和同步开销,所以模型设计阶段就要尽量让主干算子落在 NPU 支持范围内。
内存层次:决定模型能不能装下、跑得顺不顺
STM32N6 的内存分三层:最靠近核心的是 TCM 和内部 SRAM,再往外是外部 xSPI 接口挂载的 PSRAM/HyperRAM/Flash。内部 SRAM 容量有限(不同型号从几百 KB 到数 MB 不等),带宽高、延迟低;外部 PSRAM 容量可达几十 MB,但访问延迟明显更高,且与 NPU 争抢 AXI 带宽。
部署时的典型策略是:模型权重放在外部 Flash/PSRAM,推理时按层或按块搬入内部 SRAM;激活值和 DMA 缓冲尽量留在内部 SRAM,减少外部访问。如果模型太大、内部 SRAM 放不下中间张量,就要做张量分块(tiling),这会增加搬运次数,直接影响帧率。判断依据很直接:用 ST Edge AI Core 生成的报告看每层的内存占用和外部访问次数,如果外部访问占比过高,就要考虑减小输入分辨率、换更小的骨干网络,或调整分块策略。
外设资源:决定系统能不能闭环
对视觉类部署,最相关的外设有 DCMIPP(摄像头并行/CSI 接口)、LTDC(显示)、xSPI(外部存储)、DMA 和以太网/USB。DCMIPP 把摄像头数据写入内存,DMA 负责在内存与外设之间搬运,NPU 和 M55 再消费这些数据。一个常见的闭环是:DCMIPP 采集 → 内部 SRAM 缓冲 → M55 预处理 → NPU 推理 → M55 后处理 → LTDC 显示或以太网发送。
这里容易忽略的是带宽和同步:摄像头、显示、NPU 可能同时访问内存,如果都走外部 PSRAM,带宽会成为瓶颈。实际配置时,应把摄像头缓冲和显示缓冲放在内部 SRAM,把权重放外部存储,并用 DMA 双缓冲减少等待。
开发板选型要点
STM32N6 目前主要有 NUCLEO-N657X0-Q、STM32N6570-DK 等板型。选型时按以下顺序判断:第一,看外部 PSRAM 容量和 xSPI 位宽,这决定能直接放多大的模型;第二,看摄像头和显示接口是否匹配你的传感器与屏幕;第三,看调试接口(SWD/JTAG)和是否带 ST-LINK,影响部署迭代效率;第四,看功耗与封装,产品形态如果是电池供电,要确认低功耗模式和散热条件。
把以上几点串起来:M55 是控制与回退核心,NPU 是量化推理主力,内存层次决定模型规模和带宽上限,外设决定数据能否闭环,开发板选型则决定你能否在真实条件下验证这些指标。部署前先画一遍数据通路,标出每一段数据放在哪、由谁搬运、带宽是否够,比直接跑工具更能提前发现问题。