8位、32位MCU整體研發(fā)成本比較
前言:在多數(shù)的微控器(MCU)應(yīng)用中「成本」向來被視為第一設(shè)計(jì)要?jiǎng)t,因此許多工程師傾向(或被要求)使用初階MCU來精省成本,然這僅是精省了量產(chǎn)時(shí)的硬件料件成本,若從整體成本的角度來審視,結(jié)果往往會(huì)適得其反。
過去,微控器(MCU)的應(yīng)用設(shè)計(jì)相當(dāng)講究硬件料件成本的精省,如果能在一個(gè)產(chǎn)品上多省個(gè)0.1美元,則產(chǎn)品的量產(chǎn)數(shù)愈多,則成本精省效應(yīng)就愈高,所以過往都偏好使用簡易、低廉的MCU,能用4位MCU完成設(shè)計(jì)就用4位MCU,能用8位MCU完成設(shè)計(jì)就用8位MCU,很少在意后續(xù)硬件設(shè)計(jì)上的后續(xù)發(fā)展、擴(kuò)充彈性。
不過,硬件料件精省法只適合于過去的「少樣、多量、少變」生產(chǎn),然今日市場已是「多樣、少量、快變」的走向,如此若再堅(jiān)持「以料件精省為第一要?jiǎng)t的設(shè)計(jì)」不僅無法省成本,反而會(huì)適合其反。ARM公司歐洲區(qū)車用及嵌入式部門經(jīng)理Boris Vittorelli表示。
為了因應(yīng)「多樣、快變」的趨勢,研發(fā)單位必須增加MCU控制程序的撰寫心力,現(xiàn)在MCU應(yīng)用開發(fā)的編制上已到了1:4的軟硬配置,即一個(gè)研發(fā)項(xiàng)目中有1名MCU硬件工程師與4名MCU軟件工程師,或者2名硬件工程師加上8名軟件工程師,可見MCU軟件研發(fā)的重要性大幅增高。
若更進(jìn)一步了解,MCU的軟件研發(fā)成本不單是在功效的首次開發(fā)撰寫上,此方面的比重已退至1/3,有更大的比重(另2/3)是在軟件的后續(xù)維護(hù)支持上,此方面為程序發(fā)表后的持續(xù)更新補(bǔ)強(qiáng)、最佳化微調(diào)、新功能的追加等,這才是真正的成本癥結(jié)所在。
煩人的額外調(diào)修、轉(zhuǎn)移改寫的痛
那么,前面所言的「為精省硬件成本而選用初階MCU,反而是增加整體設(shè)計(jì)開發(fā)成本。」到底是何故呢?那就是「選用低階MCU雖精省了些許硬件成本,但卻使軟件的開發(fā)、維護(hù)成本大增,對(duì)整體成本而言反而是有增無減?!?br />
Boris說明:初階MCU的運(yùn)算力有限、可存取的內(nèi)存容量有限,程序在開發(fā)設(shè)計(jì)時(shí)因這些硬件性限制而無法盡情揮灑,必須要用更多的人工心力來對(duì)程序進(jìn)行最佳化,例如程序過大時(shí)必須想辦法精簡程序代碼,執(zhí)行過慢時(shí)必須對(duì)程序優(yōu)先權(quán)再行調(diào)整,這樣才能完成設(shè)計(jì)并合乎當(dāng)初規(guī)劃設(shè)定的需求,然如此就增加了軟件工程師的額外心力、時(shí)間成本。
只是增加軟件的調(diào)修心力還不是最麻煩的,更麻煩的是:一旦確定原有使用的初階MCU,其架構(gòu)已無法進(jìn)一步滿足新的功效設(shè)計(jì)需求時(shí),就必須進(jìn)行架構(gòu)的替換,這時(shí)就得開始物色新接替的(中階)MCU,然新MCU的架構(gòu)往往與原有的MCU不兼容,這時(shí)原有的控制程序就要全面改寫,如此才能移轉(zhuǎn)到新架構(gòu)上來執(zhí)行。
轉(zhuǎn)移(Migration)與轉(zhuǎn)寫(Porting)就造成相當(dāng)龐大的心力成本。Boris說,原有的程序無法持續(xù)受用、程序設(shè)計(jì)師必須學(xué)習(xí)與適應(yīng)新架構(gòu)、重新摸索新架構(gòu)的對(duì)應(yīng)開發(fā)工具、找尋新架構(gòu)所常用的函式及范例程序等。不僅如此,轉(zhuǎn)寫過程中還有程序重新整合的工作,轉(zhuǎn)寫完成后還要重新再來一次有關(guān)除錯(cuò)、驗(yàn)證、試行的工作,這才是真正的大成本。
如果這些移轉(zhuǎn)僅只一次或許還能勉為其難地接受,但通常若干年后就必須重演一次,因?yàn)檗D(zhuǎn)移后的架構(gòu)又開始不敷使用;或者當(dāng)初物色評(píng)選時(shí)不夠嚴(yán)謹(jǐn),選擇了不全然合用的架構(gòu);或初期合用但逐漸又難以合用的架構(gòu);或發(fā)創(chuàng)該架構(gòu)的業(yè)者自行停終架構(gòu)的后續(xù)發(fā)展,隨之芯片也停產(chǎn)等,這時(shí)上述一切的痛苦就必須再來一遍。
選擇良善架構(gòu)、健全生態(tài)
所以,精省成本的第一目標(biāo)依舊沒變,但實(shí)現(xiàn)手法必須改變,MCU的開發(fā)設(shè)計(jì)者必須在初期就選定一個(gè)最具未來性的MCU架構(gòu),該架構(gòu)要能因應(yīng)日后的各種新發(fā)展、新擴(kuò)增,使程序代碼獲得最長效的沿用,免去每數(shù)年就必須再行轉(zhuǎn)移、改寫的無謂程序。
同時(shí),良善架構(gòu)的MCU也保有開發(fā)設(shè)計(jì)的高度寬裕性,程序設(shè)計(jì)師可以專注于新功效的開發(fā),而不用回頭再去擔(dān)憂新撰寫的程序會(huì)否太占內(nèi)存空間、會(huì)否太耗用運(yùn)算資源。
更重要的是,廣大采用且長時(shí)間受用的MCU架構(gòu),其生態(tài)系統(tǒng)也格外健全,程序設(shè)計(jì)師可以找到最多的范例程序、最多的開發(fā)支持工具,使開發(fā)更省心力、更具效率。有鑒于此ARM針對(duì)MCU應(yīng)用提出最合適的新架構(gòu)核心:Cortex-M3,Cortex-M3比原有ARM7TDMI核心更適合于嵌入式控制應(yīng)用。
針對(duì)嵌入式控制而設(shè)計(jì)
Coretx-M3之所以更適用于嵌入式控制應(yīng)用,主要在于其內(nèi)建了中斷控制,與過往其它未內(nèi)建中斷控制的核心相比,Coretex-M3可以在更快的頻率周期時(shí)間內(nèi)對(duì)中斷作出反應(yīng)。此外Coretex-M3能對(duì)內(nèi)存進(jìn)行最佳化運(yùn)用,能分別以8位、16位、32位的寬度來存取內(nèi)存,如此任何地址都能存取,就不容易產(chǎn)生空隙、未用地址的情形。再加上Coretex-M3使用Thumb-2指令集,Thumb-2指令集能兼顧運(yùn)算效能與內(nèi)存容量,讓嵌入式應(yīng)用以更省的成本達(dá)到最佳的效能。
8位、32位量化比較
「選擇較具寬裕彈性的MCU架構(gòu),以精省軟件開發(fā)維護(hù)成本,進(jìn)而精省整體開發(fā)成本?!惯@對(duì)多數(shù)的嵌入式應(yīng)用工程師而言可說是完全顛覆了過去,恐一時(shí)間難以接受,且依舊會(huì)在意硬件料件成本。
對(duì)此Boris表示:新實(shí)現(xiàn)方式的唯一顧慮就是硬件料件成本的增加,如果連硬件料件成本都低于原有的實(shí)現(xiàn)方式,那么工程師就沒有理由再堅(jiān)持原有的作法。Boris以量化數(shù)字為例說明:今日若有一個(gè)嵌入式應(yīng)用設(shè)計(jì),其效能需求須達(dá)5 DMIPS,程序代碼容量須低于256KB,且芯片都是用臺(tái)積電(TSMC)的180nm一般性制程來產(chǎn)制,以此3項(xiàng)為先決標(biāo)準(zhǔn),則Cortex-M3核心的MCU只需要4MHz的工作頻率,原因是Cortex-M3核心每MHz的運(yùn)算能有1.25 DMIPS的效能。
其次Cortex-M3核心每MHz工作頻率約耗用0.19W的電能,如此4MHz則耗用0.8mW電能。再者用180nm制程產(chǎn)制Coretex-M3核心只需要0.36平方公厘的裸晶面積,而存放程序代碼的閃存則只要64KB容量,理由是Cortex-M3為32位架構(gòu),一般而言比8位架構(gòu)高出4倍的程序代碼密度,64KB Flash Memory用180nm制程產(chǎn)制的結(jié)果只占0.13平方公厘的電路面積。針對(duì)面積部分進(jìn)行加總,0.36+0.13=0.49,0.49平方公厘換算成晶圓成本則約19美分。
相對(duì)的,若不實(shí)行Coretex-M3核心而使用8位架構(gòu)的8051核心,則各項(xiàng)特性表現(xiàn)多無法與Coretex-M3相比。
首先是效能,8051若要達(dá)到5 DMIPS的效能,以最傳統(tǒng)、最標(biāo)準(zhǔn)的8051而言,其每12個(gè)頻率周期才能完成1個(gè)指令的運(yùn)算(若干指令要24、36個(gè)周期),因此每MHz約0.08 DMIPS(更確切而言是0.083),5 MDIPS則需要約63MHz的頻率。(附注1)
頻率頻率為63MHz,且8051核心的功耗約0.5mW/MHz,乘以63則得31.5mW(約32mW),等于是Coretex-M3的39、40倍用電。
至于電路面積方面,8051核心約為0.1平方公厘,純就核心面積確實(shí)8051比Cortex-M3理想,但若將Flash Memory的用量面積算入就全然不同,8051的控制程序必須使用256KB的內(nèi)存容量,180nm制程后的面積為0.52平方公厘,核心與內(nèi)存相加的結(jié)果成為0.62平方公厘,就整體面積而成大于Cortex-M3方案的0.49平方公厘,最后對(duì)應(yīng)到晶圓成本上則是20美分,還比Cortex-M3方式貴1美分。(附注2)
至此毫無疑問:若選擇新精省路線,連硬件料件成本都比原有路線更精省,那么嵌入式應(yīng)用工程師就再也沒有理由或顧忌,當(dāng)下就應(yīng)當(dāng)替換成新的核心架構(gòu),即便今日不替換,數(shù)年后原有架構(gòu)無法再因應(yīng)成長,屆時(shí)一樣要替換,相信聰明的工程師不會(huì)讓自己的明天拘限在窒礙的角落。
附注1:標(biāo)準(zhǔn)傳統(tǒng)8051確實(shí)以12個(gè)頻率為1個(gè)執(zhí)行周期,然今日以8051為核心的MCU多半能以4個(gè)頻率為1個(gè)周期,甚至是1個(gè)頻率為1個(gè)周期。
附注2:以上比較不含核心硅智財(cái)?shù)募夹g(shù)授權(quán)費(fèi)與每件量產(chǎn)的權(quán)利金。
評(píng)論