如果你拆开过一台机器人,大概率会看到不止一颗芯片。关节模组里有一颗小小的微控制器在跑电流环,视觉计算单元上是一颗带GPU的处理器在推理模型,两者之间通过CAN总线或以太网交换数据。

为什么不能只用一颗芯片搞定? 这个问题背后的答案,涉及嵌入式系统最核心的一组架构分野:MCU(微控制器)和MPU(微处理器)。

一、一颗芯片的"出厂设置":MCU和MPU到底差在哪

MCU和MPU最根本的区别,不在于主频高低或价格贵贱,而在于是否配备MMU(内存管理单元) 。

MMU的作用是把虚拟地址映射到物理地址,让每个进程拥有独立的地址空间。有了它,Linux、Android这类多用户多进程操作系统才能运行——因为操作系统需要为每个进程分配隔离的内存空间,一个进程崩溃不会拖垮整个系统。

而没有MMU的芯片,只能运行裸机程序或RTOS(实时操作系统),因为RTOS的任务共享同一个物理地址空间,不需要虚拟内存机制。

这个硬件差异,直接决定了两类芯片的"出厂设定":

维度MCU(Cortex-M系列)MPU(Cortex-A系列)
MMU无(部分有MPU存储保护单元)有
操作系统裸机 / RTOSLinux / Android
功耗范围µA~mA级数百mA级
启动时间微秒级秒级
典型场景电机控制、传感器采集视觉推理、路径规划

在机器人系统中,这种分工几乎是天然形成的:关节电机控制、IMU数据采集、安全急停这类任务,要求微秒级的确定性响应,交给MCU;视觉推理、SLAM、任务规划这类计算密集型任务,交给MPU。

一个具体的例子:某运动控制器从Cortex-A7升级到Cortex-M7后,外部中断响应延迟从最坏3.2μs降至0.35μs,电机FOC控制环路频率从10kHz提升到20kHz。这不是"性能提升",而是"确定性"的提升——在电机控制中,最坏情况延迟比平均延迟重要得多。

二、指令集的哲学分歧:Thumb-2与AArch64

Cortex-M和Cortex-A的指令集设计,反映了两条完全不同的技术路线。

Cortex-M系列的核心里,Thumb-2是唯一的指令集。Thumb-2混合了16位和32位指令,开发者不需要在ARM状态和Thumb状态之间切换,所有代码直接混写。这种设计的目标是代码密度——同样功能的程序,Thumb-2编译出来的体积比纯32位ARM指令小30%左右,对Flash容量通常只有几百KB到几MB的MCU来说至关重要。

Cortex-A系列则支持完整的ARM指令集(在64位下是AArch64),指令长度固定为32位或64位,流水线更深,支持乱序执行和分支预测。它追求的是绝对性能,而非代码密度。

对AI推理来说,这个差异意味着什么?

MCU上运行的AI模型通常是TinyML级别的——关键词唤醒、简单手势识别、振动异常检测。这些模型的参数量在几十KB到几MB之间,Thumb-2的代码密度优势让它们能塞进MCU有限的Flash里。Cortex-M55还新增了150条DSP矢量扩展指令(MVE),可以在数据送到NPU之前做预处理。

MPU上运行的则是完整的CNN或Transformer模型。Cortex-A系列的大缓存、高带宽内存接口和NEON/SVE矢量指令,才是支撑这类模型实时推理的硬件基础。

但这不意味着MCU不能做AI。STM32N6在MCU中集成了自研NPU,算力达到600 GOPS,功耗仅3TOPS/W,运行AI模型时不需要散热装置。这种"MCU+NPU"的架构,正在模糊MCU和MPU在AI推理上的边界。

三、哈佛架构与冯·诺依曼架构:AI推理的底层效率之争

指令集的差异之上,还有一个更底层的架构选择:哈佛架构还是冯·诺依曼架构。

冯·诺依曼架构中,指令和数据共享同一条总线和同一块内存。CPU要么取指令,要么取数据,两者不能同时进行。这在AI推理中会成为一个显著的瓶颈:当数据搬运需要多个总线周期时,处理器只能空转等待。

哈佛架构则拥有独立的总线和独立的物理内存区域分别存放指令和数据。CPU可以在等待当前指令所需数据返回的同时,预取下一条指令。这种并行取指能力让哈佛架构在执行密集计算任务时效率更高。

Cortex-M系列采用的是哈佛架构(ARMv7-M),这正是它在实时控制场景中表现优异的原因之一。ARM7与Cortex-M3的对比很能说明问题:ARM7采用冯·诺依曼架构,指令和数据总线共用,会出现瓶颈;Cortex-M3采用哈佛架构,指令和数据总线分开,无瓶颈。中断延迟方面,ARM7需要24到42个时钟周期,而Cortex-M3最快只需6个时钟周期。

对于端侧AI推理来说,哈佛架构的价值在于:模型权重和输入数据可以在不争抢总线的情况下被并行访问。当NPU在执行矩阵乘法时,CPU可以通过独立的总线预取下一层的权重数据,减少推理延迟。

当然,纯粹的哈佛架构也有代价——芯片面积更大、设计更复杂。所以实际芯片中常见的是"改进哈佛架构":物理内存可能共用,但总线分离。

四、端侧AI芯片的典型SoC架构

现实中,没有哪颗芯片是"纯MCU"或"纯MPU"。端侧AI芯片本质上都是异构SoC,把不同类型的内核集成在同一颗芯片上,让它们各司其职。

以典型的高性能端侧AI SoC为例,芯片内部通常包含:

  • CPU集群:Cortex-A系列大核负责操作系统和通用计算,Cortex-M或Cortex-R系列小核负责实时控制

  • GPU/NPU:负责并行计算和神经网络推理加速

  • DSP:负责信号处理和传感器数据预处理

  • MCU子系统:负责电源管理、安全监控和低功耗待机

这种异构架构的设计哲学是:让最合适的核心做最合适的事。视觉推理跑在GPU/NPU上,电机控制跑在MCU上,操作系统跑在Cortex-A上,三者互不干扰。

以VLX系列模型为例(开源地址:https://github.com/om-ai-lab),它的三个模型恰好对应了异构SoC上三种不同的计算负载。VLX-Flow需要持续处理视频流、维护长时记忆,对内存带宽和持续推理能力要求高,适合跑在NPU上;VLX-Seek对单帧推理延迟敏感,需要低延迟的内存访问和高效的算子调度,适合跑在GPU或DSP上;VLX-Go输出的航点和运动轨迹需要与底层电机控制环紧密协同,它的决策结果最终要下发到MCU侧的控制器执行。一个模型体系要跑通“感知-定位-行动”的完整闭环,本身就要求芯片架构提供对应的异构算力支撑。

这也解释了为什么端侧AI的部署远比"把模型跑起来"复杂。模型需要被拆解、量化、分配到不同的计算单元上,还要保证不同单元之间的通信延迟不会拖垮整个系统的实时性。芯片架构的选择,直接决定了这套分工能不能跑通。

五、选型逻辑:不是一个二选一的问题

回到最初的问题:MCU和MPU谁更适合机器人?

答案是取决于任务的时间特性和计算特性。

MCU适合的场景:电机换相控制(需要微秒级确定性)、IMU数据采集与滤波(需要低抖动采样)、安全急停逻辑(需要在任何情况下都能及时响应)、电池供电的轻量AI推理(关键词唤醒、简单分类)。

MPU适合的场景:视觉模型推理(需要高带宽内存和并行算力)、SLAM与路径规划(需要大内存和复杂算法)、多模态融合(需要同时处理多种传感器输入)、运行ROS 2的完整导航栈。

异构SoC适合的场景:几乎所有真实的机器人系统。MCU和MPU不是竞争关系,而是分工关系。一颗芯片无法同时满足"微秒级确定性"和"TOPS级算力",所以工程师选择让它们各管一摊。

这也意味着,当你评估一个端侧AI模型是否适合你的机器人平台时,不能只看它的精度指标,还要看它的计算特性——它是适合跑在NPU上的持续推理任务,还是适合跑在GPU上的低延迟任务,还是需要与MCU紧耦合的实时控制任务。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐