2. STM32N6硬件平台解析

STM32N6 是 ST 面向边缘 AI 场景推出的高性能 MCU 平台,它的核心价值不在于“把主频做高”,而在于把神经网络推理所需的算力、带宽、存储与功耗控制组织成一条可预测的数据通路。理解这颗芯片,建议不要从外设清单入手,而是先抓住四个关键对象:Neural-ART NPU、Cortex-M55、片上内存层次、功耗域与时钟域。它们共同决定了模型能不能跑、跑得多快、功耗是否可控。

一、NPU:把卷积与矩阵运算从 CPU 手中接走

STM32N6 内置的 Neural-ART NPU 是 ST 自研的神经网络加速器,典型算力约 600 GOPS,面向 int8 量化推理。它并不是“协处理器式”的小加速单元,而是具备独立取指、权重缓存、乘加阵列和激活/池化后处理能力的完整推理引擎。CPU 负责准备输入张量、配置网络描述符、启动推理并读取输出;真正的卷积、深度卷积、全连接等算子由 NPU 执行。

对架构设计而言,NPU 的关键参数不是单一算力数字,而是算力与带宽的匹配。例如一个 3×3 卷积层,若输入特征图 64×64×32、输出 64×64×64,则乘加次数约为 64×64×64×32×3×3 ≈ 75.5 M MAC,即约 151 MOP。在 600 GOPS 理论峰值下,纯计算时间约 0.25 ms;但如果权重和特征图频繁从外部存储搬运,实际耗时会被带宽拖长。因此 NPU 的高效运行高度依赖片上 SRAM 与权重缓存。

二、Cortex-M55:控制、调度与轻量算子的执行者

Cortex-M55 是 Armv8.1-M 架构内核,主频可达 800 MHz(不同型号/配置略有差异),支持 Helium(MVE)向量扩展。它的角色不是与 NPU 抢算力,而是承担三类任务:系统控制与中断调度、数据预处理/后处理、以及 NPU 不擅长或未覆盖的轻量算子。Helium 对 int8/int16 的 SIMD 支持,使颜色空间转换、归一化、NMS、阈值筛选等操作可以在 CPU 上高效完成。

一个常见的分工模式是:摄像头接口把图像写入 SRAM,M55 用 Helium 做裁剪、缩放和量化,NPU 执行主干网络,M55 再对输出张量做解码与后处理。这样 NPU 保持高利用率,CPU 也不会成为瓶颈。

三、内存层次:决定推理吞吐的隐形主角

STM32N6 的片上内存层次大致分为:紧耦合的 NPU 权重缓存与激活缓存、大容量片上 SRAM(典型 4.2 MB 级别,含专用 AI RAM)、以及外部存储接口(如 XSPI/HyperFlash、Octo-SPI、SDMMC 等)。NPU 访问片上 SRAM 的延迟和带宽远优于外部存储,因此模型部署时优先把权重和中间激活放在片上。

实际工程中常用“分块 + 复用”策略:把大模型按层切分,权重常驻片上,激活按需滚动。若模型权重超过片上容量,则需从外部 Flash 流式加载,此时 XSPI 的吞吐和 NPU 的预取能力就成为关键。判断内存方案是否合理,可以观察两个指标:NPU 等待权重的时间占比,以及每层推理时间是否随层数线性增长;若某层明显变慢,往往是该层权重或激活发生了外部搬运。

STM32N6 边缘 AI 数据通路与内存层次 图像/传感器输入 DCMI / CSI / ADC 原始数据流 Cortex-M55 800 MHz · Helium (MVE) 预处理 / 后处理 / 调度 轻量算子 · 中断控制 int8 / int16 SIMD Neural-ART NPU 约 600 GOPS · int8 卷积 / 深度卷积 / 全连接 激活 / 池化后处理 权重缓存 + 乘加阵列 张量 片上内存层次(带宽/延迟递减) NPU 权重缓存 最高带宽 AI 专用 SRAM 激活/中间张量 通用 SRAM 约 4.2 MB 级 外部存储:XSPI / HyperFlash / Octo-SPI / SDMMC 权重/激活读写 数据搬运 推理结果输出 分类 / 检测 / 关键点 UART / USB / 显示 功耗域与时钟域(按需供电,降低静态功耗) CPU / NPU 核心域 SRAM / 内存域 外设 / IO 域 低功耗待机 / RTC / 唤醒域

四、外设与功耗域:让算力“按需出现”

STM32N6 的外设围绕边缘视觉与音频展开:DCMI/CSI 摄像头接口、I2S/SAI 音频、USB、以太网、CAN-FD、以及丰富的定时器和串行接口。它们本身不直接提升 AI 算力,但决定了数据能否顺畅进入和离开推理链路。例如摄像头以 30 fps 输出 640×480 RGB888,数据率约 27.6 MB/s,若 DCMI 与 DMA 配置不当,CPU 会被搬运中断拖住,NPU 反而空闲。

功耗域的设计思路是“分域供电、按需唤醒”。CPU/NPU 核心域、SRAM 域、外设 IO 域和低功耗待机域可以独立控制。典型策略是:推理时开启 NPU 与 AI SRAM 域,推理间隙关闭 NPU 时钟,仅保留 M55 低功耗运行;若整机处于待机,则只保留 RTC 和唤醒源。判断功耗方案是否合理,可以测量两个电流值:推理峰值电流和推理间隔的平均电流。若平均电流接近峰值,说明没有真正进入低功耗状态。

五、把四者串起来看:一个可落地的配置思路

假设要部署一个 int8 量化的 MobileNet 级模型,输入 224×224×3,权重约 1.5 MB。合理的做法是:权重常驻 AI SRAM,输入图像由 DCMI+DMA 写入通用 SRAM,M55 用 Helium 完成归一化与量化,NPU 执行主干,输出张量回到 SRAM 由 M55 解码。时钟上让 NPU 与 M55 同源但可独立门控,功耗域上把未用外设全部关闭。

判断平台是否“跑得动”,不要只看 NPU 的 GOPS。先确认权重和激活能否放进片上 SRAM,再确认数据搬运是否由 DMA 承担,最后看功耗域是否支持推理间隙休眠。这三步比单纯比较主频更有实际意义。

总结来说,STM32N6 的硬件平台是一套围绕“数据搬运—计算—存储—供电”协同设计的系统。NPU 提供算力,Cortex-M55 提供控制与轻量计算,内存层次决定实际吞吐,功耗域决定续航与热设计。架构设计时,先画清楚数据从传感器到 NPU 再到输出的路径,再逐段检查带宽、容量和供电是否匹配,才能把纸面参数转化为可稳定运行的边缘 AI 产品。