当AIoT遇上tinyML是否会成为MCU供应链下一个新商机

随着物联网(internet of thing, iot)诞生,万物都上网,新产品如果没有「iot+」或「+iot」就好像跟时代脱了节。接下来人工智能(artificial intelligence, ai)兴起,于是星爷说:「争什么争,把两样掺在一起做濑尿虾牛丸不就得了,笨蛋!」,因此智慧物联网「ai + iot = aiot」就理所当然变成最佳的营销术语了。
不过本来只要把各种传感器(sensor)侦测到的信号利用超便宜的单片微机(single chip microprocessor或micro control unit,mcu)(以下简称mcu)加上通讯模块就能把数据送上云端进行储存及各种智能分析、预测。但随着云端通讯、储存及计算费用的增加,数据隐私及计算结果反应速度的不足,于是大家就把目光重新拉回那个吃苦耐劳又便宜的mcu上,期望在不上网的情况下,在本地端(边缘)就能完成边缘智能(以下简称edge ai)的运算,所以微型机器学习基金会(tinyml.org)这个国际组识因运而生,提供大家更多的解决方案。
接下来就让我们来进一步了解aiot、mcu及tinyml的机会在哪里,要如何整合才能变成下一个明星产业。
何谓mcu?为何爆红?
2020年受covid-19疫情爆发影响,世界大部份的工厂都无法顺利生产及出货,波及各行各业,半导体(ic)产业亦成为重灾区。不论上游的原物料,中游的晶圆代工厂、封装测试厂、设备供货商,到下游的电子、家电、计算机及外围产品无一不受影响。由于整个半导体供应链失序,因此开始出现大缺货现象。刚开始主要在抢高阶芯片(如cpu, gpu, 手机芯片等)产能,后来开始排挤到中低阶微处理器(mcu),间接导致2021年几乎所有mcu个个涨势如虹。
什么是mcu呢?这是一种发展了四十多年的技术,它将运算单元(cpu)、输出入单元(gpio)、辅助控制单元(timer, uart, i2c, spi, adc等)及内存(flash, sram,eeprom)整合在同一颗芯片上,相当于把一部计算机塞进一个芯片中,故早期亦将mcu称为「微电脑芯片」。近年来更有许多厂商把无线通信部份(如wifi, bluetooth, zeebee, 4g, 5g等)甚至人工智能所需的神经运算加速单元(如npu)加入其中。
mcu充斥在我们的日常生活中,食衣住行育乐都能看见它的身影,包括各式家电、行动(穿戴)装置、多媒体设备、电动玩具、物联网产品甚至汽机车的控制及电源管理系统等,让我们越来越不能没有它。另外我们常见的高阶手机芯片功能虽也是包山包海,它属于系统级芯片(system on chip, soc),单价高(>us$100),频率速度高、计算能力强,但操作系统、应用程序及内存未包含在芯片中,且鲜少直接用于一般边缘端aiot产品中,故本文就暂不讨论这类产品。
fig. 1 嵌入式系统soc及mcu差异比较图
mcu的优点是体积小、价格便宜(视功能配置,约us$0.5 ~ 20)、功耗极低(mw等级)可使用电池供电、功能强大,从4bit到32bit都有,容易开发,有非常完整的工具链(tool chain)及生态体系(ecosystem),连中小学生在玩的micro:bit, arduino开发板都属于mcu的范围。但缺点是系统架构种类及供货商太多,没有统一的开发工具。
另外受限价格因素,通常工作频率不高(mhz等级),程序及内存区域都很小(kbyte等级,少数能到mbyte),不利大量运算,通常也没有操作系统,仅有少数像arm mbed,rtos能运行在较高阶的mcu上,所以开发出来的程序就很难像手机上的app一样可以任意运行在不同硬件的手机上。
mcu产业现况
mcu目前是非常成熟产业,包含可以让用户任意自行开发程序运用所有资源的通用型mcu,和搭配专属功能只需少量程序甚至不用写程序的专用型mcu(如lcd驱动,电源管理等)。由于本文会将重点放在讨论mcu如何加入edge ai相关算法,故仅会列出通用型mcu相关信息。
这里粗略整理一下,国外知名通用型mcu供货商,包括analog, atmel, cypress, freescale, infineon, microchip, nec, nxp,renesas, samsung, silicon labs, stmicroelectronics (stm), texas instruments(ti), toshiba, zilog等(依英文字母顺序排列)。
国产方面大约有五十家,包括中微、中颖、宏晶、雅特力、芯圣、汇春、灵动、晟硅、芯海、乐鑫、贝特莱、兆易、云间、健天、炬芯、国民、复旦、贝岭、巨泉、国芯、东软、沁恒、华芯、希格码、华大、万高、时代、航顺、赛元、峰岹、极海、赛腾、杰发、芯旺、比亚迪及琪浦维。
而mcu指令集依宽度可分为4/8/16/32 bit,依工作架构又可分为复杂指令集(complex instruction set computer, cisc)和精简指令集(reducedinstruction set computer, risc),前者主要代表有intel 8051系列,而后者常见代表则有arm cortex-m, risc-v等系列,而后者有指令工作周期短及省电优势,因此目前risc已逐渐取cisc。
而cortex-m4之后的指令集更加入浮点及平行运算(如simd)指令集,而risc-v则有p及v指令子集可以对应。更多mcu分类方式可参考fig. 2。
fig. 2 mcu属性分类图。
通用型mcu厂商早期多以intel 8051(8bit cisc指令集)系列为主,随着技术演进及用途陆续发展出自己(或兼容)的指令集。1985年arm推出第一颗risc架构的cpu「arm1」。arm是一家不生产实体集成电路(integrated circuit, ic)的公司,它只授权知识产权(intellectual property core, ip)给其它公司整合成实体集成电路。
arm 于2004年推出第一颗32bitrisc指令集的mcu ip 「cortex-m3」,此后接连发展出cortex-m (mcu)系列,包括m1, m0, m4, m0+, m7, m23, m33, m35p, m55等,国内几个大厂亦陆续取得授权,生产相关mcu。
近年亦有些厂商不想支付巨额的授权费用或需要更复杂客制化应用,进而转向第五代cpu开源精简指令集risc-v(v为罗马数字5)发展出自家的mcu。
aiot与mcu关连
物联网(internet of thing, iot)主要希望万事万物都能上网,让用户能透过网络随时可以得对象的状态,如开关、温湿度及各式传感器,甚至可以下命令(远程遥控)改变对象的工作内容,如电气设备启动停止、冷气照度调整等。所以iot大致包含几大项目,「感测组件」负责收集对象及环境状态,而「作动组件则改变对象的电气状态或机构动作,而这些输出入须由「微处理器(mcu)」来处理相关运算工作。
另外为了让用户能透过行动通讯装置(如手机、平板等)远程工作,所以还需要透过不同等级的有线及无线「通讯组件」(如blue tooth, zigbee, wifi, ethernet, lora, nbiot, 4g等)分段接力将信息传送到云端,必要时还可以把这些数据长期储存在云端。从上述可知mcu在iot中拌演着非常重要的中介角色。
fig. 3 智慧物联网架构
过去经常有很多人误解,以为只要一直定时收集一个或多个传感器变化信息或者用户操作记录,计算机就能接着自动提取数据特征或分析预测时序变化,大数据会自动变成人工智能,帮忙预测和决策。
但很遗憾地是后半段的工作通常没人去做,所以根本没有ai + iot变成aiot这回事。为什么呢?因为大部份mcu的工程师要搞懂如何把数据从本地(边缘)端串接到云端就已费尽大部份的力气,此时还要让他们再搞懂ai的算法和应用就是难上加难。
若此时搭配一个专业ai工程师直接从云端处理数据,那应该就没问题了吧。不幸地是这里常需结合领域知识,由专业人士进行特征定义及协助标注监督式学式所需的数据集,不然很难取得有用成果。
或许有人会说那用非监督式学习算法(如回归、聚类等)或者采用时序预测模型算法来解决不就好了。但现实上还是要有专业人士协助定义问题及需求,如此提取出的特征和预测的结果才具实务意义。
此时若我们把aiot的智能能力限缩一些,不要包山包海,不要企图找出通用模型,那或许就较容易找到特定问题的解答。
再来说到云端aiot,如果你的口袋够深,它几乎拥有无限的储存空间和算力,不管再复杂的算法都没问题。可是当要采用只有几块美金的mcu来完成edge ai应用时,常用算法要移植到只有数kbyte到数mbyte的程序代码区及数十byte到数十kbyte的随机内存区,加上只有数mhz到数十mhz的计算能力的mcu上时,就很难达成了。因此目前mcu能适用的edge ai范围就必须有所限制。
tinyml时代来临mcu迅速崛起
人工智能(ai)时代来临,好像不管什么产品只要加上ai两字就能大卖,就像三十多年前家电产品加上「微电脑控制」(其实就是mcu)就能更受消费者青睐。但传统云端式aiot,不仅产品制造商花费很多,如电费、通讯、储存、计算、训练、布署等维护费用,使用者亦要随之付月费,如此才能持续获得ai服务,所以常会令人却步,认真思考投入后是否划算。
基于上述问题,许多厂商开始思考将ai微型化、本地(边缘)化,以低带宽(甚至完全断网)、低延迟(快速反应)、高隐私(数据不外流)及低成本来完成像智能传感器(smart sensor)等微型ai应用,如此就有很大机会能使用中高阶mcu来完成。
基于上述ai微型化理念,许多cpu, gpu, mcu, ai加速计算芯片大厂、ai开发工具及应用厂商纷纷响应,于2019年成立微型机器学习基金会(tinyml foundation) ,每年定期会举办高峰会,让厂商、学界、社群都能共襄盛举。2021高峰会有近六十个赞助商(如fig.4 所示)。
根据该基金会对tinyml的定义:「微型机器学习(以下简称tinyml)为一个快速发展的机器学习(machine learning)技术和应用领域,包括硬件、算法和应用软件。其能够以极低功耗执行设备上的传感器(sensor)的数据分析,通常在mw(毫瓦特)以下范围,进而实现各种永远上线(或称常时启动)(always on)的应用例及使用电池供电的设备。」
这里的ml虽然指的是机器学习,不过亦可延伸解释到深度学习(deep learning, dl)甚至人工智能(ai)、边缘智能(edge ai)。从上述定义可得知tinyml 几乎是锁定mcu及低阶cpu所推动的edge ai,明显会对未来mcu的市场动能提供新一波的助力。
市售通用型mcu的类型非常多,目前以arm cortex-m系列mcu支持的厂商算是最多的(含通用型和专用型),其市占率也是最高的,光2020第4季统计就出货了44亿颗芯片。其规格跨度很大,很容选用到合适的系列,从最小的m0, m0+, m1, m3, m4, m7, m23, m33到m35,最新的m55还有搭配上ai加速计算芯片u55。
由于相同的系列不同厂商制作规格可能有所不同,这里以stm32为例,其工作频率速度可由32mhz (m0+) 到550mhz (m7),其算力可从75 coremark (m0+) 到 3224 coremark (m7)。
fig.5 stm cortex-m相关产品规格表。
由上述内容可知mcu的普及已帮 aiot打下很棒的基础,未来若再加上tinyml就能引爆下一波新的微型edge ai应用。
tinyml开发平台及应用领域
目前tinyml基金会并没有明确的定义那些项目才算是其范围,也没有制定特定的开发框架及函式库(如机器人操作系统ros),而是开放给硬件及开发平台供货商自行解释及彼此合作。
目前较常见的应用,包括振动侦测、手势(运动传感器)侦测、传感器融合、关键词侦测(声音段分类)、(时序讯号)异常侦测、影像分类、(影像)对象侦测等应用,而所需算力也依序递增。(如fig. 6所示)
一般来说智能传感器(如声音、振动、温湿度等)大约arm cortex-m0+, m3左右就能满足,而智能影像传感器(小尺寸影像)要完成影像分类及对象侦测工作,则需要cortex-m4, m7甚至要到cortex-a, r系列。当然亦可使用非arm系列等价算力mcu完成,就看各开发平台供货商是否有支持。
fig. 6 arm mcu等级芯片智能运算能力与适用情境。
通常ai应用程序开发包含有很多步骤,包括数据收集(含非时序型及时序型)、标注(监督式学习用)、模型选用、训练、超参数调整(以下简称调参)、优化,最后才是布署到指定硬件上进行推论、验证及重新训练等工作项目,不论是大型ai应用程序或者小型tinyml应用皆是如此。
不过虽然mcu的执行速度及内存容量勉强可以满足小型ai应用的推论工作,但因mcu速度较慢,内存较小,所以训练、调参的工作多半还是会在落在较高阶的cpu(如intel core i7)甚至是gpu(如nvidia gtx)。
目前常见的ai开发框架有tensorflow, pytorch, onnx, caffe等,但这些都不适用小型的单板微电脑硬件(如树莓派)运行,更不要说是在mcu上布署。于是就有像tensorflow lite for microcontroller (以下简称tflm)搭配mcu专用函式库(如armcommon microcontroller software interface standard for cortex-m, 以下简称cmsis)的开发组合,确保开发出来的内容一定可以在特定系列的mcu上执行。
由于mcu种类繁多,不同厂牌及家族间兼容性不高,所以很少有开发工具有办法支持所有的mcu,工程师须在开发前要注意是否满足。
fig. 7 ai应用程序开发流程。
一般来说开发一个ai应用程序需要很多种软件工具及硬件平台才能完成,为了让更多原先使用mcu的工程师能顺利开发tinyml应用,于是许多平台开发商推出了从资料采集一直到布署全部包办的一站式云端开发平台,包括edge impulse, aifes, cainavas, sensiml等。
有些甚至还有提供调参可视化接口,方便ai工程师了解模型表现能力及调整对策,亦有提供内存(含程序代码及变量)需求表,方便mcu工程师了解资源分配及应用范围。所以有了这样的平台就更能带动用户发展自己的数据集及应用,大大加速了tinyml的发展。
国产mcu厂商的机会与挑战
从以上分析来看,tinyml或者说mcu等级的edge ai会随着芯片等级升高,价格下跌,让aiot的应用从云端慢慢转移到本地(边缘)端,同时也会让带有ai算法的mcu成为未来爆量的明星产品,如此便可大幅增加通用型mcu的附加价值,不再沦为红海价格战产品。
从国际主流mcu产品规格来看,现有国产通用型mcu的规格普遍偏低,性价比不足,深究其原因可能是着重在利润较高的专用型mcu上,而忽略通用型mcu的发展,因此可能失去一个翻转产业的大好契机。
虽然国际大厂已在硬件端及平台端都已有充份布局,但tinyml的重点还是在ai应用软件(包括模型开发及优化),若国产mcu供货商能积极自行开发或者大幅投资第三方ai技术供货商产出特定用途ai算法,那就还有机会弥补短期无高性价比产品的缺点。待未来ai应用需求更为聚焦时,推出更高性价比的产品,那真正边缘端aiot的无限商机就指日可待了。
小结
人工智能(ai)或深度学习(dl)这几年已成为显学,整个生态系也逐渐形成,过往不受重视的tinyml(mcu等级的ai)正在悄悄崛起,且已在国际上受到重视,积极发展中。
若以国内市场巨大的需求支撑,国内厂商加强的半导体设计制作、软韧体及aiot产品的开发能力,只要大胆投资、积极面对产业变化,急起直追,相信不久的将来中国就会变成另一个世界级edge ai及tinyml产业的中心。


如何使用fpga做数字磁通传感器系统
小家电升维攻坚战, IoT领域成美的最大手牌
有机阳离子和金属掺杂效应对二维无铅基钙钛矿光伏性能影响
HS1101LF湿度传感器在存酒中的应用
初步认识FreeRTOS
当AIoT遇上tinyML是否会成为MCU供应链下一个新商机
基于无线数据传输的水下爆炸压力遥测系统
猎鹰9发射一箭十星,今年已经成功发射20颗卫星
通过应用程序性能监控保护关键基础设施
谷歌发布全新AI SDK,简化安卓应用集成
ENS145空气质量传感器的特点及在家居有害气体检测中的应用
小米手表尊享版正式推出 售价1999元
适用于运行高级用户界面的安全及保密产品的理想之选
Apple Store中国官网出现Bug价格
两相漏电保护器工作原理
探析传感器智能化的三大核心技术
手指静脉识别技术中红外线是做什么用的
美满电子科技推出Alaska 88E1680千兆以太网收发器
FPGA市场保持8年没变 可编程逻辑到底怎么了
FreeRTOS给任务传递单个参数