4. Ethos-U55/U85硬件架构

Ethos-U55/U85 是 Arm 面向微控制器与低功耗边缘设备推出的微型 NPU 系列。理解其硬件架构,关键不是记住某个模块名称,而是看清一条推理数据如何从外部存储进入片上缓存,经过 MAC 阵列完成乘加,再由控制流调度写回结果。U55 与 U85 共享同一套微架构骨架,主要差异在于 MAC 阵列规模、缓存容量与可支持的算子吞吐,因此本节以统一视角展开,并在必要处标注两者差异。

一、核心计算单元:从指令到张量运算

Ethos-U 的核心计算单元并不是一个通用 CPU,而是一个面向张量运算的加速器。它由命令解析、地址生成、权重/激活读取、MAC 阵列、累加与量化、写回等子单元组成。CPU 通过驱动把一段“命令流”写入 NPU 的命令队列,NPU 按命令逐条执行卷积、深度卷积、全连接、池化等操作。每条命令携带输入张量地址、权重地址、输出地址、量化参数和算子类型,硬件据此自动完成数据搬运与计算。

U55 与 U85 在计算单元上的主要区别是 MAC 阵列规模。U55 常见配置为 128 或 256 个 MAC,U85 则提供更大的 256/512 MAC 配置,并支持更宽的权重与激活带宽。这意味着同一模型在 U85 上可显著缩短推理周期,但前提是缓存与带宽能匹配,否则 MAC 阵列会因等待数据而空转。

二、MAC 阵列与权重/激活缓存

MAC 阵列是算力的直接来源,但真正决定实际性能的是“数据能否及时送到阵列”。Ethos-U 采用权重缓存与激活缓存分离的结构:权重缓存保存当前算子所需的卷积核参数,激活缓存保存输入特征图与中间结果。权重通常具有较高的复用率,因此权重缓存侧重减少重复读取;激活缓存则随层间数据流滚动更新,容量和替换策略直接影响带宽压力。

在 U55 中,权重缓存与激活缓存容量较小,适合小模型或低分辨率输入;U85 扩大了片上缓存,并优化了权重预取与激活双缓冲,使大卷积核或高通道数模型能更连续地喂给 MAC 阵列。编程时若模型通道数、输入尺寸与缓存不匹配,就会出现频繁的片外访问,导致实测帧率远低于理论峰值。

Ethos-U55/U85 核心计算与数据流 CPU / 驱动 命令流下发 中断与状态 命令解析与控制流 算子调度 / 地址生成 循环与依赖管理 权重缓存 卷积核参数 高复用预取 激活缓存 输入/中间特征 双缓冲滚动 MAC 阵列 U55:128 / 256 MAC  U85:256 / 512 MAC 乘加 → 累加 → 量化 → 激活 写回与输出张量 结果回写 SRAM / 外部存储,供下一层使用 控制路径 数据路径

三、控制流与数据流:两条路径的配合

Ethos-U 的控制流与数据流是分离的。控制流由命令解析器驱动,负责按算子顺序推进、生成地址、管理循环边界和依赖;数据流则由权重缓存、激活缓存和 MAC 阵列之间的通道完成。控制流决定“下一步算什么”,数据流决定“数据从哪里来、往哪里去”。两者配合不好,就会出现控制等待数据或数据等待控制的情况。

典型的数据流是:激活缓存提供输入特征图,权重缓存提供卷积核,MAC 阵列按输出通道和空间位置展开乘加,累加结果经过量化与激活后写回输出张量。若下一层复用当前输出,则结果可留在片上;若下一层需要不同布局,则需重新排布或写回外部存储。U85 在数据流上支持更宽的内部总线和更大的缓存,因此更适合连续卷积链。

四、参数配置与性能关系

下表列出影响 Ethos-U 实际性能的关键参数与观察点,便于在调试时快速定位瓶颈。

参数/对象 作用 U55 典型表现 U85 典型表现
MAC 数量 决定峰值算力 128 / 256 256 / 512
权重缓存 减少卷积核重复读取 容量较小,需精细复用 容量更大,预取更连续
激活缓存 保存输入与中间特征 适合小分辨率输入 支持更高通道与更大特征图
命令队列 控制算子执行顺序 依赖 CPU 及时下发 可更深度流水,降低空转
量化参数 影响精度与写回格式 需与算子匹配 同样需严格匹配

五、案例:一次卷积层的执行过程

假设一个 1×1 卷积层,输入 56×56×64,输出 56×56×128,权重为 1×1×64×128。CPU 驱动先构造命令,写入输入地址、权重地址、输出地址和量化参数。NPU 命令解析器读取命令后,激活缓存加载输入特征图,权重缓存加载 1×1×64×128 的卷积核。MAC 阵列按输出通道展开,每个输出像素需要 64 次乘加,共 56×56×128 个输出点。计算完成后,结果经量化写回输出张量。若权重缓存不足,硬件会分块加载权重,此时控制流会插入额外的预取命令,数据流出现短暂气泡。

命令示例(伪代码):
CMD_CONV_1x1
  input_addr  = 0x2000_0000
  weight_addr = 0x2001_0000
  output_addr = 0x2002_0000
  in_shape    = 56 x 56 x 64
  out_shape   = 56 x 56 x 128
  quant       = scale=0.0078, zp=-3
  op          = CONV_1X1_RELU

六、常见误区与复盘

误区一:只看 MAC 数量,忽略缓存与带宽。U85 的 MAC 更多,但如果模型通道数过大、激活缓存频繁换出,实际性能可能不如预期。应同时观察权重缓存命中率与激活缓存换出次数。

误区二:把控制流当成数据流。命令解析器只负责调度,不直接搬运数据。若命令下发过慢,MAC 阵列会等待;若数据路径阻塞,控制流也会被迫停顿。

误区三:忽略量化参数与写回格式。量化参数不匹配会导致结果偏差或写回异常,调试时应先核对 scale、zero point 与输出布局。

调试建议:先用小模型验证命令流与数据流是否对齐,再逐步增大通道数和输入分辨率;同时记录 MAC 利用率、缓存命中率和外部存储访问次数,三者结合才能判断瓶颈在算力、缓存还是控制。

总体来看,Ethos-U55/U85 的硬件架构可以概括为“控制流调度、数据流喂数、MAC 阵列计算、缓存决定效率”。理解这四者的关系,才能在编程与调优时做出正确取舍。