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