神說要有光,於是萬物都上網了,物聯網(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差異比較圖 (OmniXRI整理繪製, 2021/8/14) [21] (點擊圖放大) |
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)和精簡指令集(Reduced Instruction 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屬性分類圖。(OmniXRI整理繪製, 2021/9/9) (點擊圖放大) |
早在1980年代台灣就已切入MCU的生產,第一家半導體公司聯華電子就有生產知名的INTEL 8051系列單晶片。發展至今台灣通用型MCU相關公司,共有上市8家,上櫃10家,如下所示。(依股票代號排序,相關產品連結如文末參考文獻[1] ~ [18])
上市公司:
- 凌陽Sunplus (2401) [1]
- 偉詮 Weltrend (2436) [2]
- 義隆 Elan (2458) [3]
- 新唐NuvoTon (4919) [4]
- 凌通Generalplus (4952) [5]
- 松翰 Sonix (5471) [6]
- 盛群Holtek (6202) [7]
- 迅杰 ENE (6243) [8]
上櫃公司:
- 笙泉 Megawin (3122) [9]
- 金麗科 RDC (3228) [10]
- 陞達 Sentelic (4945) [11]
- 太欣 Syntek (5302) [12]
- 世紀 Myson (5314) [13]
- 通泰 TonTek (5487) [14]
- 紘康Hycon (6457) [15]
- 九齊Nyquest (6494) [16]
- 應廣 Padauk (6716) [17]
- 佑華 Alpha (8024) [18]
經筆者初步整理後可知,台灣通用型MCU廠商早期多以Intel 8051(8bit CISC指令集)系列為主,隨著技術演進及用途陸續發展出自己(或相容)的指令集。1985年Arm推出第一顆RISC架構的CPU「Arm1」。Arm是一家不生產實體積體電路(Integrated Circuit, IC)的公司,它只授權矽智財(Intellectual Property Core, IP)給其它公司整合成實體積體電路。Arm 於2004年推出第一顆32bit RISC指令集的MCU IP 「Cortex-M3」,此後接連發展出Cortex-M (MCU)系列,包括M1, M0, M4, M0+, M7, M23, M33, M35P, M55等,國內幾個大廠亦陸續取得授權,生產相關MCU[19]。近年亦有些廠商不想支付鉅額的矽智財授權費用或需要更複雜客製化應用,進而轉向第五代CPU開源精簡指令集RISC-V(V為羅馬數字5)發展出自家的MCU,而其IP就由台灣知名RISC-V矽智財供應商「晶心科技(Andes Tech.)」所支援。完整的MCU供應廠商、產品系列、指令集家族及對應的工作時脈、程式碼區及隨機記憶體區容量大小,請參見Table 1。
Table 1 台灣通用型MCU產品分類對照 (依公司英文名稱排序,OmniXRI整理繪製作, 2021/9/9) (點擊圖放大)
註1:以上內容非各廠商全部產品系列,在此僅列出通用型MCU相關產品,更完整產品資訊請參考文末參考文獻[1] ~ [18]。
註2:程式碼區的容量大小需對應產品系列欄位種類,其中MASK為訂製型不可自行燒錄,OTP表一次性燒錄型,EEPROM表可重覆燒錄型,未標註括號者為可重覆燒錄Flash型式。
註3:隨機記憶區通常指的為靜態隨機記憶體(SRAM),少數使用動態記憶體(DRAM, DDR)。
註4:程式碼區及隨機記憶體容量表示方式,B = Byte, KB = 2^10 B = 1024, MB = 2^20 B = 1024KB。
註5:歸類在「其它家族」表示可能是自行開發或未表明為何種MCU指令集家族產品。
AIoT與MCU關連
物聯網(Internet of Thing, IoT)主要希望萬事萬物都能上網,讓使用者能透過網路隨時可以得物件的狀態,如開關、溫濕度及各式感測器,甚至可以下命令(遠端遙控)改變物件的工作內容,如電氣設備啟動停止、冷氣照度調整等。所以IoT大致包含幾大項目,「感測元件」負責收集物件及環境狀態,而「作動元件 則改變物件的電氣狀態或機構動作,而這些輸出入須由「微處理器(MCU)」來處理相關運算工作。另外為了讓使用者能透過行動通訊裝置(如手機、平板等)遠端工作,所以還需要透過不同等級的有線及無線「通訊元件」(如Blue Tooth, ZigBee, WiFi, Ethernet, LoRa, NBIoT, 4G等)分段接力將資訊傳送到雲端,必要時還可以把這些資料長期儲存在雲端。從上述可知MCU在IoT中拌演著非常重要的中介角色。
Fig. 3 智慧物聯網架構 (OmniXRI整理繪製, 2021/9/9) (點擊圖放大) |
過去經常有很多人誤解,以為只要一直定時收集一個或多個感測器變化資訊或者使用者操作記錄,電腦就能接著自動提取資料特徵或分析預測時序變化,大數據會自動變成人工智慧,幫忙預測和決策。但很遺憾地是後半段的工作通常沒人去做,所以根本沒有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高峰會有近六十個贊助商,其中台灣也有四家,分別是奇景光電(Himax)、裝智(On-Device AI)、原相(PixArt)及威盛(VIA)。(如Fig.4 所示)
Fig. 4 tinyML基金會贊助商清單(OmniXRI整理製作, 2021/8/14) [21](點擊圖放大) |
根據該基金會對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支援的廠商算是最多的(含通用型和專用型),台灣亦有六個廠商生產(如Table 1所示)。其市佔率也是最高的,光2020第4季統計就出貨了44億顆晶片。其規格跨度很大,很容選用到合適的系列,從最小的M0, M0+, M1, M3, M4, M7, M23, M33到M35,最新的M55還有搭配上AI加速計算晶片U55(實體IC即將上市)。由於相同的系列不同廠商製作規格可能有所不同,這裡以STM32為例,其工作時脈速度可由32MHz (M0+) 到550MHz (M7),其算力可從75 CoreMark (M0+) 到 3224 CoreMark (M7)。
Fig.5 STM Cortex-M相關產品規格表。[21](點擊圖放大) |
台灣公司新唐(NuvoTon)亦有生產Cortex-M0, M0+, M4, M7及M23(沒有M3)通用型MCU,工作時脈從24MHz (M0)到192MHz (M4),其規格和STM32同系列來比,規格低了不少,可能和客群需求有很大關連。由上述內容可知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等級晶片智慧運算能力與適用情境。[21](點擊圖放大) |
通常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專用函式庫(如Arm Common Microcontroller Software Interface Standard for Cortex-M, 以下簡稱CMSIS)的開發組合,確保開發出來的內容一定可以在特定系列的MCU上執行。由於MCU種類繁多,不同廠牌及家族間相容性不高,所以很少有開發工具有辦法支援所有的MCU,工程師須在開發前要注意是否滿足。
Fig. 7 AI應用程式開發流程。[21](點擊圖放大) |
一般來說開發一個AI應用程式需要很多種軟體工具及硬體平台才能完成,為了讓更多原先使用MCU的工程師能順利開發tinyML應用,於是許多平台開發商推出了從資料採集一直到佈署全部包辦的一站式雲端開發平台,包括Edge Impulse, AIfES, cAInavas, SensiML等。有些甚至還有提供調參可視化介面,方便AI工程師了解模型表現能力及調整對策,亦有提供記憶體(含程式碼及變數)需求表,方便MCU工程師了解資源分配及應用範圍。所以有了這樣的平台就更能帶動使用者發展自己的數據集及應用,大大加速了tinyML的發展。
台灣MCU廠商的機會與挑戰
從以上分析來看,tinyML或者說MCU等級的Edge AI會隨著晶片等級升高,價格下跌,讓AIoT的應用從雲端慢慢轉移到本地(邊緣)端,同時也會讓帶有AI算法的MCU成為未來爆量的明星產品,如此便可大幅增加通用型MCU的附加價值,不再淪為紅海價格戰產品。
從幾大tinyML及Arm的開發平台所支援的MCU清單來看,目前台灣只有奇景光電(Himax) WE-I Plus(ARC EM9D @400MHz, Flash 2MB, SRAM 2MB)。從國際主流MCU產品規格來看,現有台灣通用型MCU的規格普遍偏低,性價比不足,深究其原因可能是著重在利潤較高的專用型MCU上,而忽略通用型MCU的發展,因此可能失去一個翻轉產業的大好契機。
雖然國際大廠已在硬體端及平台端都已有充份佈局,但tinyML的重點還是在AI應用軟體(包括模型開發及優化),若台灣MCU供應商能積極自行開發或者大幅投資第三方AI技術供應商產出特定用途AI算法,那就還有機會彌補短期無高性價比產品的缺點。待未來AI應用需求更為聚焦時,推出更高性價比的產品,那真正邊緣端AIoT的無限商機就指日可待了。
小結
人工智慧(AI)或深度學習(DL)這幾年已成為顯學,整個生態系也逐漸形成,過往不受重視的tinyML(MCU等級的AI)正在悄悄崛起,且已在國際上受到重視,積極發展中,但台灣的MCU供應商似乎仍未感受到新一波浪潮即將來襲,實在令人擔憂。幸運地是,國際上才剛開始兩三年,若以台灣堅強的半導體設計製作、軟韌體及AIoT產品的開發能力,只要大膽投資、積極面對產業變化,急起直追,相信不久的將來台灣就會變成另一個世界級Edge AI及tinyML產業的中心。
更多tinyML的介紹及學習資源可參考[21] [22]。
參考文獻
[1] 凌陽Sunplus https://w3.sunplus.com/tw/products/
[2] 偉詮 Weltrend http://www.weltrend.com.tw/zh-tw/product/index/13
[3]義隆 Elan http://www.emc.com.tw/emc/tw/Product/Product/Microcontrollers/GeneralPurpose
[4] 新唐NuvoTon https://www.nuvoton.com/products/microcontrollers/
[5] 凌通 Generalplus https://www.generalplus.com/2LVlangLN9SVprot_noSNproduct
[6] 松翰 Sonix https://www.sonix.com.tw/category-tw-145
[7] 盛群Holtek https://www.holtek.com.tw/web/guest/producthome
[8] 迅杰 ENE http://www.ene.com.tw/chinese/pro/mcu.php
[9] 笙泉 Magawin http://www.megawin.com.tw/zh-tw/product/index
[10] 金麗科 RDC https://www.rdc.com.tw/?route=home/mcu32bit
[11] 陞達 Sentelic https://www.sentelic.com/index.php/zh-tw/product/own-brand/stl5000
[12] 太欣 Syntek https://www.stk.com.tw/tchinese/product-0147da.html?Product_Type=56
[13] 世紀 Myson http://www.myson.com.tw/product.php
[14] 通泰 Tontek https://www.tontek.com.tw/product/category?lang=&lv1=2
[15] 紘康Hycon https://www.hycontek.com/category/products/mixed/msp/mcu
[16] 九齊 Nyquest https://www.nyquest.com.tw/tw/product
[17] 應廣 Padauk http://www.padauk.com.tw/tw/product/
[18] 佑華 Alpha http://www.ealpha.com.tw/tw/am32-ic.asp
[19] ARM Cortex-M 維基百科 https://zh.wikipedia.org/wiki/ARM_Cortex-M
[20] tinyML Foundation https://www.tinyml.org/
[21] 許哲豪,【課程簡報】20210814 Arm DevTalks 2021_Edge AI的最後一哩路:Embedded ML http://omnixri.blogspot.com/2021/08/20210814-arm-devtalks-2021edge.html
[22] 許哲豪,【tinyML】學習資源整理 https://omnixri.blogspot.com/2021/08/tinyml.html
沒有留言:
張貼留言