WFU

2019年5月26日 星期日

AIoT 智能晶片的演進與設計

IoT 智能晶片的架構包括多種物理域,和單純的感測器相較,多了 MCU 以及射頻電路,邏輯閘數不多,大約數十K,時脈也大約數十 MHz,用成熟製程,如 180nm 到 65nm 就足夠。可參見我在 2018 年底在南京的物聯網智能晶片講座



Arm Cortex M0/M3/M33 在市場上已經充分驗證,成熟製程的成本低,很適合系統商、新創團隊、任何想切入物聯網智能晶片的團隊,都可以考慮類似架構。

SoC 和微機電 (MEMS) 整合,以 MEMSIC 多年前量產的單晶片加速計為例,具有低成本、面積小、低功耗的優勢,使用即是成熟標準製程。



MEMS 設計需要特別的布局工具,以複雜的麥克風為例,Knowles 一直運用 Tanner L-Edit 工具多年,畫出大量圓弧狀圖案,做非曼哈頓圖形的物理驗證,在 2011 年五月時,SISONIC系列麥克風就出貨 20億 (2 Billion) 顆晶片。今日 Knowles 仍是世界第一大 MEMS 麥克風供應商。



由於物聯網智能晶片設計方法的成熟,系統商深知物聯網系統的規格,委託或自行開發客製化的 SoC,形成獨特的競爭力,甚至進軍晶片業,開創新的業務。

比起單純收集資料作簡單判斷,更升級的是賦予終端設備 AI 的能力,可以訓練並根據環境的資料作出推論以及回應。


從雲端擴展到終端的人工智慧


人工智慧包含機器學習,其中兩個階段:

  • 訓練  (Training)
  • 推論 (Inference)

訓練需要利用大量過去的資料來訓練演算法,可以利用雲端資料中心的大量伺服器運算資源、電力以及資料庫,進行訓練。

而推論則是在應用的場域中,以現場的狀況,利用現場的資料學習和判讀做出回應。以自動駕駛的例子來說,必須針對路況即時回應,任何的延遲都會造成危險。



如果人工智慧只建構在雲端的資料中心,需要將所有的影像和聲音的每一筆資料,透過網路回傳給雲端的資料中心,再做回應,許多不可測的天候、地形、地區、恐怕都會造成危險,讓人工智慧在自動駕駛的應用成為不切實際。

Google TensorFlow 的技術頭兒 Pete Wardon 一句話總結 AI 往終端發展的必要性:"Fundamentally because that’s where all the data is." 資料所在之處必須有 AI。


AIoT 晶片的開發


AIoT 晶片分為三類,GPU 可以提供即時可靠的運算能力,但缺點面積大、高耗能和高成本,不容易整合在隨身的攝影機。為了在面積、性能、成本之間取得最佳的平衡,就必須選擇 custom platform 包括 FPGA 以及 Custom ASIC。 FPGA 可做為 Custom ASIC 前期的原型 (prototype),或是最終產品。在 Custom ASIC 可實現輕量級、省電、特殊應用的神經處理單 元 (Neural Process Unit, NPU),為終端元件賦予 AI 的能力。
  • GPU
  • FPGA
  • Custom ASIC

AIoT 以應用很廣的電腦視覺晶片來說,演算法相對成熟,市場多元:
  • 安防:門禁監控、犯罪預防,人員追蹤
  • 醫學:人體掃描建構出 3D 影像
  • 汽車:輔助駕駛
  • 消費性:手機、相機、虛擬實境 (Virtual Reality,簡稱 VR)
  • 體育/遊戲:動作特效、擴充實境 (Augmented Reality,簡稱 AR) 
  • 機器人與視覺:自動化、定位、瑕疵檢測、無人機
  • 零售:客戶追蹤,購買行為分析
  • 農業:作物檢視,播種和土地辨識整治

來看看實際的例子,以 NVIDIA Tegra X1 來說,具有如下特點:
  • CPU:ARMv8 的 ARM Cortex-A57 四核、Cortex-A53 四核(64 位元)
  • GPU:Maxwell 架構為主的 256 核 GPU
  • MPEG-4 HEVC和VP9編碼/解碼支持
  • 台積電 20 奈米製程 
  • 功耗小於 10 瓦



NVIDIA 開發時,特別使用高階合成 (High Level Synthesis) 方法,和傳統的 RTL 設計方法相比較,得到的優越結果:
  • 5 倍簡化的程式碼
  • 1000 倍的 CPU 精簡,在回歸測試 (regression test) 階段
  • 1000 倍更多的驗證測試可能
  • 50% 的開發時程降低
  • 40% 的驗證時程精簡
  • 40% 的功率消耗節省

再來看比較小型的例子,Chips&Media 開發的 c.WAVE 100 深度學習電腦視覺 IP:
  • 可用來偵測對象,如人體和汽車
  • 可以處理 4K 解析度以及 30fps 視訊輸入
  • 採行的 Deep Neural Network (DNN) 演算法
  • 基於 Google 的 TensorFlow 框架



Chips&Media成立兩個團隊,其中一組使用傳統的 RTL 設計方法,另一組使用 HLS,促使 Chips&Media 採行 HLS 的原因為:
  • DNN 演算法正在進化中
  • 允許最後階段的改變,直接修改 C/C++ 代碼,重新產生 RTL 代碼。
  • 快速評估探索許多架構,對 Power、Performance、Area (PPA) 優化
  • 加速開發時程:可以精簡設計和驗證週期,以 C/C++ 增加新功能,比起 RTL,C/C++的 程式碼行數少了數倍。

以 HLS 方法獲得優越的成果:
  • 開發週期:RTL 團隊花了 5 個月,而 HLS 團隊僅 2 .5 個月
  • 面積:在 TSMC 28HPC 中相仿
  • HLS 團隊認為將時脈頻率降低,可以更精簡邏輯閘數量,縮小面積。因此改動頻率重新類比合成,獲得更小的面積。而這樣的評估,運用傳統 RTL 設計方法是不可能做到的。
  • 寫 C 程式碼時不需要考慮有限狀態機 (finite state machine),也不需要考慮暫存器 (register) 之間的時序。相較於 RTL,C 程式碼可讀性更高,模擬速度更快,大為加速開發時程。

有更多案例,可以在  Mentor 的學習資源中心免費下載白皮書:



在台灣的人工智慧的晶片設計典範


MTK 的 NeuroPilot 平台

耐能智慧:終端晶片設計

Skymizer:編譯器