大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是ARM Ethos-U55

  ARM 前几天刚发布了 Cortex-M 家族最新一款内核 - Cortex-M55 以及首款面向 Cortex-M 系列的 microNPU - Ethos-U55。Cortex-M55 是第一款面向 AI/ML 的 Cortex-M 内核,痞子衡也专门为此写过一篇小文 《为AI/ML而生(Cortex-M55)》,在那篇小文里痞子衡只是一笔带过 Ethos-U55,未作深入探讨,今天痞子衡就跟大家好好聊聊 Ethos-U55。

  在正式介绍 Ethos-U55 之前,有必要提及一下 ARM 公司的 Project Trillium 项目,这是 ARM 公司于2018年2月推出的一套包括新的高度可扩展处理器的 Arm IP 组合以及相关配套软件的机器学习平台。这个平台里有你肯定不陌生的 Mali 系列 GPU 和 Arm NN 库,以及2019年10月发布的 Ethos-N 系列 NPU,如今 Ethos-U55 也正式加入了 Project Trillium 大军。

  那么 Ethos-U55 到底是什么?其实它是一种小型的专用的 microNPU 推理加速器,强大的运算能力是其最核心的特点,其性能可达 64 - 512 GOP/s(Giga Operations Per Second,每秒十亿次的运算),这个运算能力秒杀 Cortex-M CPU。不过对比用在 Cortex-A 系列上的大型 NPU - Ethos-N 的 1 - 4 TOP/s 性能 (Trillion Operations Per Second,每秒万亿次的运算)还是要弱一些,因此它只能算 microNPU,适合与 Cortex-M 搭配工作。

  在神经网络框架上 Ethos-U55 当前仅支持 TensorFlow Lite Micro,这点跟 Ethos-N 能支持的框架全家桶(TensorFlow, TensorFlow Lite, Caffe2, PyTorch, MXNet, ONNX)相比也单调一些,但毕竟是单片机 AI 嘛,第一步是先能玩起来,TensorFlow Lite 够用了。

  虽然 Ethos-U55 是同 Cortex-M55 一起发布的,但它并不仅仅只能用在 Cortex-M55 上,其还可以搭配 Cortex-M4/M7/M33 一起工作,只不过 Ethos-U55 与 Cortex-M55 搭配起来效果最佳,其组合性能相比 Cortex-M7 单系统要提高 50 倍,而 ML 性能更是提升了令人瞠目结舌的 480 倍。

  前面介绍了那么多 Ethos-U55 性能,我们再来看看它是如何与 Cortex-M 一起协同工作的,且以它的最佳搭档 Cortex-M55 为例。Ethos-U55 上设计了两个 AXI master 接口(64bit),其中 AXI-1 是可读可写的,用于访问共享 SRAM;另外 AXI-2 是只读的,专门用于从 NVM(flash) 里获取指令执行。此外 Ethos-U55 上还设计了一个 APB slave 接口,用以提供控制及配置寄存器的访问。

  所以 Ethos-U55 在系统里的工作流程是,Cortex-M55 通过 APB 接口向 Ethos-U55 发出启动神经网络处理命令,Ethos-U55 收到命令后通过 AXI-2 从 NVM 获取具体命令序列指令,处理完成后 Ethos-U55 通过专门 IRQ 信号线向 Cortex-M55 发出中断事件。

  让我们以一个典型的智能语音应用再来分析 Ethos-U55 与 Cortex-M55 协同工作机制,默认情况下 Ethos-U55 保持低功耗模式,由 Cortex-M55 来完成语音检测以及唤醒词识别(KWS),一旦检测到有效唤醒词,这时候便可激活 Ethos-U55 完成后续语音识别(ASR)任务,以及进一步神经网络处理去识别语义。

  至此 Ethos-U55 痞子衡便介绍完了,不知道哪个 MCU 厂商会率先推出含这款 microNPU 的 MCU,不知道这款 microNPU 会和哪款 Cortex-M 内核初次搭档,留言说出你的答案。

欢迎订阅

文章会同时发布到我的 博客园主页CSDN主页微信公众号 平台上。

微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。

痞子衡嵌入式:Ethos-U55,ARM首款面向Cortex-M的microNPU的更多相关文章

  1. 痞子衡嵌入式:ARM Cortex-M调试那些事(1)- 4线协议标准(JTAG)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式调试里的接口标准JTAG. 在结束<ARM Cortex-M文件那些事>系列文章之后,痞子衡休整了一小段时间,但是讲课的 ...

  2. 痞子衡嵌入式:ARM Cortex-M文件那些事(2)- 链接文件(.icf)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式开发里的linker文件. 在前一节课源文件(.c/.h/.s)里,痞子衡给大家系统地介绍了source文件,source文件是嵌入 ...

  3. 痞子衡嵌入式:ARM Cortex-M文件那些事(3)- 工程文件(.ewp)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式开发里的project文件. 前面两节课里,痞子衡分别给大家介绍了嵌入式开发中的两种典型input文件:源文件(.c/.h/.s). ...

  4. 痞子衡嵌入式:ARM Cortex-M文件那些事(6)- 可执行文件(.out/.elf)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式开发里的executable文件(elf). 第四.五节课里,痞子衡已经给大家介绍了2种output文件,本文继续给大家讲proje ...

  5. 痞子衡嵌入式:ARM Cortex-M文件那些事(1)- 源文件(.c/.h/.s)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式开发里的source文件. 众所周知,嵌入式开发属于偏底层的开发,主要编程语言是C和汇编.所以本文要讲的source文件主要指的就是 ...

  6. 痞子衡嵌入式:ARM Cortex-M文件那些事(4)- 可重定向文件(.o/.a)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式开发里的relocatable文件(object, library). 前三节课里,痞子衡都是在给大家介绍嵌入式开发中的input文 ...

  7. 痞子衡嵌入式:ARM Cortex-M文件那些事(5)- 映射文件(.map)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式开发里的map文件. 第四节课里,痞子衡给大家介绍了第一种output文件-relocatable文件,本文继续给大家讲projec ...

  8. 痞子衡嵌入式:ARM Cortex-M文件那些事(7)- 反汇编文件(.s/.lst/.dump)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式开发里的反汇编文件(.s, .lst, .dump). 痞子衡在第四.五.六节课分别介绍了编译器/链接器生成的3种output文件( ...

  9. 痞子衡嵌入式:ARM Cortex-M文件那些事(8)- 镜像文件(.bin/.hex/.s19)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家讲的是嵌入式开发里的image文件(.bin, .hex, .s19). 今天这节课是痞子衡<ARM Cortex-M文件那些事>主 ...

随机推荐

  1. 假设检验的Python实现

    结合假设检验的理论知识,本文使用Python对实际数据进行假设检验. 导入测试数据 从线上下载测试数据文件,数据链接:https://pan.baidu.com/s/1t4SKF6U2yyjT365F ...

  2. mysql索引创建和使用细节

    最近困扰自己很久的膝盖积液手术终于做完,在家养伤,逛技术博客看到easyswoole开发组成员仙士可博客有关mysql索引方面的知识,自己打算重温下. 正常业务起步数据表数据量较少,不用考虑使用索引, ...

  3. 基于Netty和SpringBoot实现一个轻量级RPC框架-Server篇

    前提 前置文章: Github Page:<基于Netty和SpringBoot实现一个轻量级RPC框架-协议篇> Coding Page:<基于Netty和SpringBoot实现 ...

  4. cannot mount volume over existing file, file exists /var/lib/docker/overlay2/.../merged/usr/share/zoneinfo/UTC 解决

    问题产生原因: linux系统docker-compose.yml文件 放到 mac本启动发现启动报错 cannot mount volume over existing file, file exi ...

  5. 从数组中取出n个不同的数组成子集 y 使 x = Σy

    /**  * 尝试获取arr子集 y  使 x=Σy  * @param {Array} arr   * @param {number} x   * @param {Array} res   */ f ...

  6. 序列积第m小元素 二分答案优化

    给出两个长度为n的数组A和B, 在A和B中各任取一个, 可以得到n×n个积. 求第m小的元素. n<=100000 这一道题的意思就是 a1 a2 a3 a4.. b1 b2 b3 b4 n^2 ...

  7. Git将一个项目同时从本地推送到GitHub和Gitee

    前言 博主是根据自己的情况写这篇博文的,每个人遇到的情况和需求可能不一样哈,所以初始的步骤也不一定一致,但是同时推送到Github和Gitee的步骤都会是一致滴! Gitee拉取Github仓库 直接 ...

  8. Nginx代理服务——正向代理

    正向代理 在/opt/app/code的目录下创建一个joy.html文件 <html> <head> <meta charset="utf-8"&g ...

  9. Sigmoid非线性激活函数,FM调频,胆机,HDR的意义

    前几天家里买了个二手车子,较老,发现只有FM收音机,但音响效果不错,车子带蓝牙转FM,可以手机蓝牙播放音乐,但经过几次转换以及对FM的质疑,所以怀疑音质是否会剧烈下降,抱着试试的态度放了一个手机上的音 ...

  10. 60 个让程序员崩溃的瞬间,太TM真实了

    前方高能!笑死人不偿命系列~ 表演即将开始,吃东西的请停下来,不然你会后悔的 1. 公司实习生找 Bug 2. 在调试时,将断点设置在错误的位置 3. 当我有一个很棒的调试想法时 4. 偶然间看到自己 ...