微控制器(MCU)正在變得越來越復雜,越來越強大,因而越來越有用。但是這些進步都是都代價的。
開發(fā)帶高級電源管理功能的多核MCU硬件并不太難,由于存儲器的限制,開發(fā)出適合多核MCU的軟件則難得多。CPU系統(tǒng)可以用SRAM片上存儲器,或者外部的DRAM。不過對MCU系統(tǒng)而言,所有的存儲器都在片上。所以CPU系統(tǒng)可以跑大型的Linux或Windows操作系統(tǒng),MCU則只能跑相對簡單的實時操作系統(tǒng)。
“以視頻市場為例,你可以開發(fā)基于MCU的應用,也可以開發(fā)基于CPU的應用,甚至可以開發(fā)兩種系統(tǒng)都能跑的應用,”Cadence IP事業(yè)部CTO Chris Rowen說,“使用MCU的視頻分辨率更低,不論是CPU方案還是MCU方案,多樣化的視頻接口都會讓設計變得復雜。用CPU系統(tǒng)開發(fā)要求相對沒那么嚴,例如你可以把整個緩沖區(qū)(buffer)寫滿,在MCU就不太可能這么干。用MCU開發(fā),數(shù)據(jù)的交換更需要技巧,所以產生故障(bug)的可能性也增加了。”
更難的是利用MCU來分擔CPU的負擔,例如作為協(xié)處理器去加速某種計算,或者作為低功耗應用時的備用處理器。
“考驗MCU的程序員的問題是如何滿足處理速度的要求,” Rowen說,“自動車庫門開啟或者關閉花費幾百毫秒都可以接受,但要滿足高速數(shù)據(jù)流的處理需求,則須采用并行處理。所以當把MCU設計成另一個次級計算引擎(sub-engine)時,你需要處理器有能力進行數(shù)據(jù)計算,這就要求編程風格非常嚴謹。在高速數(shù)據(jù)處理場景下使用MCU,非常非常難。”
雖然有諸多困擾,MCU的應用場景不斷拓展,使用方法也屢屢突破常規(guī),如今在復雜的系統(tǒng)及芯片(SoC)中內建MCU已經很常見。在SoC這種復雜應用場景中,MCU的功能一般都只做特定的任務,例如喚醒CPU,但無論從設計、驗證還是一致性的角度來看,在SoC中讓多個MCU協(xié)同工作都非常難。
“在同一顆SoC中集成Cortex A(CPU)與Cortex M(MCU)的趨勢呈現(xiàn)加速狀態(tài),”Mentor Graphics嵌入式產品高級產品線經理Andrew Caples說,“以高級駕駛輔助系統(tǒng)(ADAS)這個嵌入式應用最精華的代表為例,可以用多個處理單元--微控制器(MCU)、微處理器(MPU)、數(shù)字信號處理器(DSP)--來實現(xiàn)ADAS,SoC意味著更低的故障率、更低的成本以及更低的散熱需求,但增加了軟件設計的復雜性。開發(fā)人員要在SoC集成的MCU、MPU與DSP上開發(fā)多個實時操作系統(tǒng),并在這一顆芯片上開發(fā)和調試。這就需要開發(fā)人員的方案能夠適應不同的平臺(MCU、MPU、DSP),這給半導體公司增加了很多壓力,為了幫助客戶真正利用起SoC中的所有器件,它們需要提供給開發(fā)者足夠的庫文件和解決方案參考?!?/p>
Caples表示只要多核SoC的應用有操作系統(tǒng),就一定會遇到一堆同步問題,因為不同核之間靠等待來協(xié)同工作?!拔覀冋跒檫@個領域的應用開發(fā)工具,”他說,“對于硬件工程師來說,過去這些年摩爾定律一直很有效,硬件的性能在提升,成本在下降。但是軟件開發(fā)卻是另外一回事,隨著系統(tǒng)復雜度越來越高,軟件開發(fā)的成本不斷攀升,而且現(xiàn)在看不到任何可以改善的跡象。”
歡迎來到MCU時代
雖然存在上述挑戰(zhàn),但隨著物聯(lián)網的發(fā)展,物與物之間的通信越來越多,因此開發(fā)人員希望MCU在復雜系統(tǒng)中發(fā)揮越來越重要的的作用。相比CPU,M的功耗更低,價格也更便宜。一方面,8位MCU在一些簡單任務處理中仍然不可或缺;另一方面,32位甚至64位多核MCU已能應對很多復雜應用。所有這些MCU都可以與CPU或GPU集成在同一顆SoC里面,這樣CPU或GPU可以在多數(shù)時間里面處于休眠狀態(tài)。
“MCU越來越復雜,”ARM建模技術總監(jiān) Bill Neifert說,“引入32位微控制器以后,人們開始問可以用這些MCU做什么?!?/p>
MCU當然不只用在汽車的安全領域,從工業(yè)設備到智能拖鞋這種消費類產品都可以用到MCU。以監(jiān)控人是否滑倒的智能拖鞋為例,低成本、低功耗的嵌入式處理器(MCU)就非常適合,因為其可以為某種應用定制。
“每個人都想要最有效的解決方案,定制化的MCU在成本和功耗上都優(yōu)于通用產品,”Neifert說,“特別是物聯(lián)網設備,很多都是電池供電,因此對與功耗非常敏感。用戶希望能找到專用產品幫助他們快速開發(fā),尤其是消費電子領域的客戶。定制化MCU也需要建模,但復雜度比CPU或GPU低多了?!?/p>
復雜度是相對的。“我們打算用64位的MCU開發(fā)真正智能的設備,”Vista Ventures 經營合伙人 Jim Hogan說,“但這些MCU的代碼堆棧相當有限?!?/p>
在這種趨勢下,MCU也開始介入到計算當中--特別是物聯(lián)網的應用?!安皇莻鹘y(tǒng)的計算,” ARM 物聯(lián)網市場副總裁Zach Shelby說,“在MEMS應用中,利用32位和64位MCU來計算已經很常見。關鍵在于我們如何將軟件設計成大量重復任務的類型。FPGA不適合低功耗應用,如果在一顆混合芯片芯片上實現(xiàn)視頻檢測算法,就必須用到微控制器,不過MCU還是用來完成不斷重復的任務。”
MCU的片上存儲容量較少,常常為MCU與CPU或者其他MCU協(xié)調工作帶來麻煩。特別是在視頻流媒體處理與圖像識別應用方面,越來越多的數(shù)據(jù)處理是系統(tǒng)設計需要解決的大問題。從系統(tǒng)上層來看,有兩種方法可以解決這一問題,第一種方法是采用更快的處理器更多的存儲容量,第二種方法是采用更多的處理器以提高處理效率。雖然每個處理單元的速度比較慢,但多個處理單元合作可以將數(shù)據(jù)處理任務在限定時間內完成, 當處理任務繁忙時,這些MCU也可以進入空閑狀態(tài)。
“人們需要這種靈活性,因為你會有很多的異質應用(heterogeneous application)要處理,你又不愿意采用同質模型(homogenous model,CPU或者GPU這種所擅長的計算方式)來實現(xiàn),”NetSpeed Systems CEO與聯(lián)合創(chuàng)始人Sundari Mitra說,“微控制器的優(yōu)點是其有一套可編程的微代碼引擎(microcode engine),用戶可以根據(jù)應用環(huán)境選擇合適的架構,因此比處理器硬核靈活性更高。微處理器可以給用戶一些靈活性--雖然不太多,但畢竟多了些靈活性。這讓用戶在架構方面具備了更多的靈活性。CPU在浮點計算方面更具優(yōu)勢,GPU在視頻處理方面更具優(yōu)勢,MCU則處于兩者之間。MCU可用于可穿戴等物聯(lián)網終端設備,也可用于汽車引擎的控制。MCU的架構要有足夠的靈活性和自適性,以適應不同的應用。如果開發(fā)人員清楚應用的工作流程,并對此進行相應的優(yōu)化,使用MCU能為你的計算引擎帶來一些多樣性?!?/p>
定義MCU
通常來說,MCU是CPU與GPU的瘦身版,計算能力相對弱,跑的時鐘速度也比較低。在存儲架構上MCU與CPU和GPU的區(qū)別更明顯,特別是8位與16位MCU,通常只有片上存儲。因為成本低、功耗更低,所以很受歡迎。但高級的32位MCU與低端CPU的區(qū)別已經不明顯,64位多核MCU的出現(xiàn)更讓人困惑。
“從大的方面來說,根據(jù)工作負荷的不同,CPU通常會為單線程或多線程性能優(yōu)化,”Mitra說,“如果考慮實時性的要求--物聯(lián)網中有很多實時性應用--系統(tǒng)需要做出實時響應,CPU通常不會對實時性任務進行優(yōu)化。假設有這樣一個應用場景,CPU需要監(jiān)測周圍環(huán)境狀況,當環(huán)境發(fā)生變化時做出相應的決策,這時不大可能用CPU來反復的檢測某一點,這就是MCU的用武之地。那么使用MCU到底有什么不同呢?CPU與GPU都很容易理解,但MCU不是這樣。應用MCU要面臨可用信息更少、設計參數(shù)常常變更的狀況,所以開發(fā)人員要適應。”
同樣,由于MCU應用的多樣性,很難清楚的定義MCU的市場,也不容易用統(tǒng)一標準來預測MCU市場的走勢。在2016年5月份的報告中,Brisk Insights預測,到2022年MCU市場將保持15.8%的年復合增長率,Brisk Insights認為在物聯(lián)網應用的推動下,32位MCU將是增長最快的市場。Databeans的數(shù)據(jù)則比Brisk Insights保守很多,其預測年復合增長率為6%,MCU市場最大的推手是工業(yè)需求。
Gartner則給出了MCU 領域的排名前列的廠商,它們是瑞薩、恩智浦(NXP)、意法半導體、Microchip、德州儀器和英飛凌。
但MCU不斷出現(xiàn)在新的應用場景中,這使得MCU的市場越來碎片化,以致難以追蹤。
“每種非常復雜的芯片,幾乎都包含了MCU,” Arteris 市場副總裁Kurt Shuler說道,“在汽車里面,到處可以見到獨立工作的MCU,大型芯片往往也有MCU在后臺運行,MCU在無線數(shù)字基帶應用中也很廣泛?!?/p>
使用MCU的設備通常將程序優(yōu)化以提高電源效率,現(xiàn)在開發(fā)人員仍在通過延長喚醒時間等方式來進一步降低功耗。開發(fā)人員所面臨的挑戰(zhàn)更多不是來自于MCU硬件能力方面,而在于如何在系統(tǒng)中更高的發(fā)揮這些硬件能力。
結論
MCU產業(yè)正在大步前進,雖然MCU的定義在改變,但方向是明確的。在未來幾年,物聯(lián)網的大發(fā)展將使很多終端設備將接到網絡,甚至直接與其他的處理器進行通信,MCU將在這些設備中大放異彩。
MCU的潛力到底有多大,仍有很多值得討論的空間。Mentor的Caples表示,將MCU中的某些功能應用起來,可能需要一名軟件工程師一年的時間?!皼]有人有時間這樣做?!敝辽佻F(xiàn)在沒有人這樣嘗試。
電子發(fā)燒友App













評論