議題背景:
2020年隨著物聯網發展,嵌入式技術、嵌入式系統(Embedded System)可以應用在更廣泛的領域,產業的使用意願提高,也加速了技術的研發。嵌入式智慧被視為對人類生活有重大影響的新興科技,但究竟它目前的研發趨勢為何?如何解決它越趨複雜的功能所產生的耗能問題?有哪些最新的相關研究呢?我們邀請專家說明。

2020/01/15
長庚大學資訊工程學系 張哲維助理教授

Q1. 為什麼嵌入式系統在近10年來發展汽車、IoT為主導的應用?

隨著軟硬體技術的發展,嵌入式系統已具有充足的運算能力來處理許多樣的應用,進一步地產業需求的系統要能更即時(即時運算Real-Time Computing)與更精準,希望機器能處理使用者所輸入的需求,並且讓它的統整更具目的性與自動化,而自駕車便是相關技術於當下消費市場上的一項主流應用。考量到行車安全,必須在極短的時間內做出精準的決定,對應的系統需求即為即時運算與極低的錯誤率限制。而隨著網路的發達,資料的來源更多元、用途更廣泛,為了解決多個同時運行的工作,系統必須具備即時性工作排程,以期精準地在時限內完成工作,因此也讓嵌入式系統的相關技術在物聯網(IoT)產業被廣泛使用。

Q2. 嵌入式系統的位元數發展從16、32到64,數字越高一定越好嗎?

尋求更高的位元發展是希望能提升記憶體及作業效能,但是提高位元數亦有對應之代價。一個64位元指令會比一個32位元指令佔用更多記憶體與儲存裝置空間。另一代價是,雖然64位元可以描述的指令複雜度較高,記憶體的定址空間也較大,但是許多嵌入式系統仰賴電池供電,越複雜且多元的處理器架構很有可能會伴隨著較高的耗電量與硬體成本。若不需要如此複雜的運算即可達到工作目標,仍可用32位元或更低位元數的指令集架構。

Q3. 如何知道該用32還是64位元的系統?

應該預先分析嵌入式系統可能執行的應用程式有哪些,以及同時執行的效能需求與記憶體用量。也可以分別用不同位元數的實際硬體或模擬器來執行程式,再分析應用程式的計算負載、記憶體用量、耗電量。

Q4. 為什麼現在嵌入式系統的趨勢是往異質/同質多核心發展?

比起提升運算頻率,多核心(Multiple Cores)、多處理器(Multiple Processors)透過平行處理來增加運算速率,較不耗電且散熱問題較小。當某些運算在熱門的應用中廣泛被執行時,使用專為此類運算所制定的異質計算核心則具有進一步提升效能以及降低功耗的潛力。例如:在需要頻繁處理訊號的通訊或是多媒體系統中,除了一般通用的處理器,也可以再加入「異質」的數位訊號處理器(Digital Signal Processor),用其特有的指令集更有效率地執行如「快速傅立葉變換」之類的訊號處理計算,達到加速或是省電的結果。

Q5. 為了提高嵌入式系統能源效率,有哪些最新的解決方案?這些方案的挑戰是?

硬體透過平行處理來降低功耗大致有三個層面:多處理器、多核心、超執行緒(Hyper-Threading)。多處理器是指在一個電腦系統中使用多個處理器來平行處理多項工作,多核心是指在一個處理器上包含多個計算核心。而超執行緒是指單一核心上的暫存器有兩組或多組,因此這一核心可以同時載入兩個或多個執行序,讓執行緒輪流使用此一計算核心,減少計算核心因等待記憶體資料存取而產生的閒置時間。

在硬體支援各層面的平行處理後,系統軟體要面臨的挑戰有:

  1. 工作希望能平均地分攤給所有核心,達到負載平衡的最佳平行執行結果,但是由於程式的相依性以及其他因素,實際面臨的應用軟體可能無法完美的等分。所以分類工作與安排程序很重要,也因此發展出多核心程序排程的技術,靜態地分割、分類應用軟體的相關工作,或動態地調整多核心的工作分派與排程。
  2. 作業系統或其他系統軟體要能夠即時監控每一個核心的計算負載,分析各個工作計算需求,做為多核心程序排程的參考依據。
  3. 電腦中各個元件的耗電並非完全獨立,例如:如果多個核心共享同一快取記憶體,只要任一個核心開啟,則快取記憶體就必須運作、供電。因此分析元件的相依性至關重要,再由相依性問題衍生新的解決方案,例如:加速將多個核心的工作完成,縮短工作時間讓快取記憶體提早關閉省電。

除了計算上的耗電,在執行大量資料的應用程式時,保持與存取記憶體資料所產生的功耗也不容忽視,當嵌入式系統連結高耗電的周邊裝置時,亦需考慮管理周邊裝置的動態功耗。例如:非揮發性記憶體的使用是近期硬體與系統軟體的研究重點之一,此類記憶體在保持大量資料時僅需極低的功耗,有利於減省系統整體的功耗。

版權聲明

本文歡迎媒體轉載使用,惟需附上資料來源,請註明新興科技媒體中心。
若有採訪需求或其他合作事宜,請聯絡媒體公關:

曾雨涵

haharain331@rsprc.ntu.edu.tw
02-3366-3366#55925