close

轉自網絡

本文通告地址:http://nancy.spaces.eepw.com.cn/articles/article/item/18046#

標題:8位、32位MCU整體研發成本比較
2008-02-21 13:44:57
 
前言:在多數的微控器(MCU)應用中「成本」向來被視為第一設計要則,因此許多工程師傾向(或被要求)使用初階MCU來精省成本,然這僅是精省了量產時的硬件料件成本,若從整體成本的角度來審視,結果往往會適得其反。

過去,微控器(MCU)的應用設計相當講究硬件料件成本的精省,如果能在一個產品上多省個0.1美元,則產品的量產數愈多,則成本精省效應就愈高,所以過 往都偏好使用簡易、低廉的MCU,能用4位MCU完成設計就用4位MCU,能用8位MCU完成設計就用8位MCU,很少在意後續硬件設計上的後續發展、擴 充彈性。

不過,硬件料件精省法只適合於過去的「少樣、多量、少變」生產,然今日市場已是「多樣、少量、快變」的走向,如此若再堅持「以料件精省為第一要則的設計」不僅無法省成本,反而會適合其反。ARM公司歐洲區車用及嵌入式部門經理Boris Vittorelli表示。

為了因應「多樣、快變」的趨勢,研發單位必須增加MCU控制程序的撰寫心力,現在MCU應用開發的編制上已到了1:4的軟硬配置,即一個研發項目中有1名 MCU硬件工程師與4名MCU軟件工程師,或者2名硬件工程師加上8名軟件工程師,可見MCU軟件研發的重要性大幅增高。

若更進一步瞭解,MCU的軟件研發成本不單是在功效的首次開發撰寫上,此方面的比重已退至1/3,有更大的比重(另2/3)是在軟件的後續維護支持上,此方面為程序發表後的持續更新補強、最佳化微調、新功能的追加等,這才是真正的成本癥結所在。
煩人的額外調修、轉移改寫的痛

那麼,前面所言的「為精省硬件成本而選用初階MCU,反而是增加整體設計開發成本。」到底是何故呢?那就是「選用低階MCU雖精省了些許硬件成本,但卻使軟件的開發、維護成本大增,對整體成本而言反而是有增無減。」

Boris說明:初階MCU的運算力有限、可存取的內存容量有限,程序在開發設計時因這些硬件性限制而無法盡情揮灑,必須要用更多的人工心力來對程序進行 最佳化,例如程序過大時必須想辦法精簡程序代碼,執行過慢時必須對程序優先權再行調整,這樣才能完成設計併合乎當初規劃設定的需求,然如此就增加了軟件工 程師的額外心力、時間成本。

只是增加軟件的調修心力還不是最麻煩的,更麻煩的是:一旦確定原有使用的初階MCU,其架構已無法進一步滿足新的功效設計需求時,就必須進行架構的替換, 這時就得開始物色新接替的(中階)MCU,然新MCU的架構往往與原有的MCU不兼容,這時原有的控制程序就要全面改寫,如此才能移轉到新架構上來執行。

轉移(Migration)與轉寫(Porting)就造成相當龐大的心力成本。Boris說,原有的程序無法持續受用、程序設計師必須學習與適應新架 構、重新摸索新架構的對應開發工具、找尋新架構所常用的函式及範例程序等。不僅如此,轉寫過程中還有程序重新整合的工作,轉寫完成後還要重新再來一次有關 除錯、驗證、試行的工作,這才是真正的大成本。

如果這些移轉僅只一次或許還能勉為其難地接受,但通常若干年後就必須重演一次,因為轉移後的架構又開始不敷使用;或者當初物色評選時不夠嚴謹,選擇了不全 然合用的架構;或初期合用但逐漸又難以合用的架構;或發創該架構的業者自行停終架構的後續發展,隨之芯片也停產等,這時上述一切的痛苦就必須再來一遍。

選擇良善架構、健全生態

所以,精省成本的第一目標依舊沒變,但實現手法必須改變,MCU的開發設計者必須在初期就選定一個最具未來性的MCU架構,該架構要能因應日後的各種新發展、新擴增,使程序代碼獲得最長效的沿用,免去每數年就必須再行轉移、改寫的無謂程序。

同時,良善架構的MCU也保有開發設計的高度寬裕性,程序設計師可以專注於新功效的開發,而不用回頭再去擔憂新撰寫的程序會否太佔內存空間、會否太耗用運算資源。

更重要的是,廣大採用且長時間受用的MCU架構,其生態系統也格外健全,程序設計師可以找到最多的範例程序、最多的開發支持工具,使開發更省心力、更具效 率。有鑑於此ARM針對MCU應用提出最合適的新架構核心:Cortex-M3,Cortex-M3比原有ARM7TDMI核心更適合於嵌入式控制應用。

針對嵌入式控制而設計

Coretx-M3之所以更適用於嵌入式控制應用,主要在於其內建了中斷控制,與過往其它未內建中斷控制的核心相比,Coretex-M3可以在更快的頻 率週期時間內對中斷作出反應。此外Coretex-M3能對內存進行最佳化運用,能分別以8位、16位、32位的寬度來存取內存,如此任何地址都能存取, 就不容易產生空隙、未用地址的情形。再加上Coretex-M3使用Thumb-2指令集,Thumb-2指令集能兼顧運算效能與內存容量,讓嵌入式應用 以更省的成本達到最佳的效能。

8位、32位量化比較

「選擇較具寬裕彈性的MCU架構,以精省軟件開發維護成本,進而精省整體開發成本。」這對多數的嵌入式應用工程師而言可說是完全顛覆了過去,恐一時間難以接受,且依舊會在意硬件料件成本。

對此Boris表示:新實現方式的唯一顧慮就是硬件料件成本的增加,如果連硬件料件成本都低於原有的實現方式,那麼工程師就沒有理由再堅持原有的作法。 Boris以量化數字為例說明:今日若有一個嵌入式應用設計,其效能需求須達5 DMIPS,程序代碼容量須低於256KB,且芯片都是用台積電(TSMC)的180nm一般性製程來產制,以此3項為先決標準,則Cortex-M3核 心的MCU只需要4MHz的工作頻率,原因是Cortex-M3核心每MHz的運算能有1.25 DMIPS的效能。

其次Cortex-M3核心每MHz工作頻率約耗用0.19W的電能,如此4MHz則耗用0.8mW電能。再者用180nm製程產制Coretex-M3 核心只需要0.36平方公釐的裸晶面積,而存放程序代碼的閃存則只要64KB容量,理由是Cortex-M3為32位架構,一般而言比8位架構高出4倍的 程序代碼密度,64KB Flash Memory用180nm製程產制的結果只佔0.13平方公釐的電路面積。針對面積部分進行加總,0.36+0.13=0.49,0.49平方公釐換算成 晶圓成本則約19美分。

相對的,若不實行Coretex-M3核心而使用8位架構的8051核心,則各項特性表現多無法與Coretex-M3相比。

首先是效能,8051若要達到5 DMIPS的效能,以最傳統、最標準的8051而言,其每12個頻率週期才能完成1個指令的運算(若干指令要24、36個週期),因此每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平方公釐,純就核心面積確實8051比Cortex-M3理想,但若將Flash Memory的用量面積算入就全然不同,8051的控制程序必須使用256KB的內存容量,180nm製程後的面積為0.52平方公釐,核心與內存相加的 結果成為0.62平方公釐,就整體面積而成大於Cortex-M3方案的0.49平方公釐,最後對應到晶圓成本上則是20美分,還比Cortex-M3方 式貴1美分。(附註2)

至此毫無疑問:若選擇新精省路線,連硬件料件成本都比原有路線更精省,那麼嵌入式應用工程師就再也沒有理由或顧忌,當下就應當替換成新的核心架構,即便今日不替換,數年後原有架構無法再因應成長,屆時一樣要替換,相信聰明的工程師不會讓自己的明天拘限在窒礙的角落。

附註1:標準傳統8051確實以12個頻率為1個執行週期,然今日以8051為核心的MCU多半能以4個頻率為1個週期,甚至是1個頻率為1個週期。
附註2:以上比較不含核心硅智財的技術授權費與每件量產的權利金。

 

arrow
arrow
    全站熱搜

    包子企業 發表在 痞客邦 留言(0) 人氣()