隨著物聯網(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產業的中心。
審核編輯:湯梓紅
-
mcu
+關注
關注
146文章
17185瀏覽量
351740 -
物聯網
+關注
關注
2910文章
44778瀏覽量
374748 -
AIoT
+關注
關注
8文章
1414瀏覽量
30772 -
TinyML
+關注
關注
0文章
42瀏覽量
1250
原文標題:當AIoT遇上tinyML是否會成為MCU供應鏈下一個新商機!?
文章出處:【微信號:易心Microbit編程,微信公眾號:易心Microbit編程】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論