32位MCU價(jià)格1美元-剖析Luminary公司ARM基MCU的特點(diǎn)及定位
縱觀微處理器領(lǐng)域的發(fā)展歷史,布滿無數(shù)創(chuàng)新結(jié)構(gòu)和品牌的遺骸。多數(shù)的創(chuàng)新結(jié)構(gòu)都具有優(yōu)于當(dāng)時(shí)主流結(jié)構(gòu)的技術(shù)優(yōu)勢。但大多數(shù)崛起的創(chuàng)新結(jié)構(gòu)都經(jīng)受過類似的殘酷教訓(xùn),即:在市場方面,被當(dāng)時(shí)備受贊譽(yù)的結(jié)構(gòu)所形成的生態(tài)環(huán)境所給予的殘酷壟斷擠壓。然而,本文所介紹的公司由于有富有經(jīng)驗(yàn)的管理團(tuán)隊(duì)組成,避免了過去的教訓(xùn),用創(chuàng)新的結(jié)構(gòu)發(fā)展自己的微處理器新品。
32 位的MCU沒賣上一條胳膊/腿的價(jià)錢
Luminary Micro是一家使用32位ARM基CPU核的公司。Luminary Micro的初始經(jīng)營方略是,使用ARM公司所特殊設(shè)計(jì)的、具有低價(jià)位、低功耗的緊縮型Cortex-M3核的優(yōu)勢來開拓市場。
為加速發(fā)展基于Cortex-M3核的新型群星(Stellars)系列產(chǎn)品,于今年3月26日公司宣布,以每1萬片1美元的分銷商價(jià)出售,震撼了業(yè)界。這比低價(jià)格的領(lǐng)先者Philips公司的ARM基 MCU還低1/3。Luminary Micro的價(jià)格策略正扭轉(zhuǎn)著人們對32位CPU僅適用于高端系統(tǒng)的認(rèn)知。使原使用8、16位的設(shè)計(jì)有了更多理由升級到32位的結(jié)構(gòu)。
公司的另一個(gè)關(guān)鍵的營銷策略就是迅速地?cái)U(kuò)大群星系列的產(chǎn)品譜系,以適應(yīng)不同客戶對于片內(nèi)存儲容量和通用I/O口的需要。因?yàn)镮/O口的增加,LM3S301, LM3S310,LM3S318和LM3S316等新品種的引腳相應(yīng)地增加到48個(gè),價(jià)格從2.53美元起步。有了較多的I/O口,可以額外地集成多通道的片內(nèi)A/D變換器。
Luminary Micro相信自己的ARM基 MCU結(jié)構(gòu)會比其他公司的傳統(tǒng)8位結(jié)構(gòu)具有更多的誘人魅力。公司器件門類的迅速擴(kuò)充和良好的業(yè)績已經(jīng)引起了業(yè)界廣泛的側(cè)目。
Luminary群星系列產(chǎn)品的性能具有相當(dāng)于Microchip 和Freescale 8位微處理器的性能。
內(nèi)置Cortex內(nèi)核
ARM和Luminary Micro雖是兩個(gè)不同的公司,但在MCU的策略觀點(diǎn)方面卻很默契。雙方一致深信Cortex-M3必將取代傳統(tǒng)的MCU結(jié)構(gòu)。Cortex-M3具有基于ARMv7M的ISA (指令集結(jié)構(gòu)),當(dāng)初曾因Cortex-M3用了并非是完整的32位ARM指令集,而是自成一派的Thumb-2指令集,引起過激烈地爭議。Cortex-M3是專為低功耗、小尺寸、短的中斷延時(shí)和優(yōu)異的確定性而設(shè)計(jì)。為此,Thumb-2專門增加了130 條Thumb指令。原來的32位ARM指令集的16位指令子集用于大幅度地降低代碼容量。原ARM處理器支持多種CPU模式,其Thumb指令則在兩種模式之間頻繁地來回切換,以運(yùn)行32位和16位的ARM指令。但是,當(dāng)意外發(fā)生時(shí),必須立刻切換到32位模式予以處理,從而引起很多的麻煩。與此相反,Thumb-2則有32位和16位各自的單周期的指令集,無需再有模式間的來回切換。當(dāng)然,過去的ARM二進(jìn)制指令不再能夠運(yùn)行于像Cortex-M3那樣的Thumb-2機(jī)型之上,與原始 Thumb指令兼容的Thumb-2編程器可以使用統(tǒng)一的ARM匯編程序庫來轉(zhuǎn)換ARM匯編語言的代碼,但是使用C語言庫時(shí)則必須重新編譯。
Cortex-M3同十年前原始的低價(jià)位ARM7TDMI處理器一樣,都不具有指令和數(shù)據(jù)的緩存器。緩存器會給實(shí)時(shí)控制引入最忌諱的不確定性。但是,Cortex-M3比ARM7TDMI的尺寸要小,內(nèi)核需用的邏輯門少(僅需33K個(gè))。另外,Cortex-M3還比ARM7TDMI增加了存儲器保護(hù)單元(MPU)、總線接口、和其他一些及邏輯。全部所需計(jì)算在內(nèi),也僅需60K個(gè)邏輯門。Cortex-M3還專門為Cortex-M3設(shè)計(jì)了有兩個(gè)任選的邏輯部件:存儲器保護(hù)單元(MPU)和嵌入的跟蹤宏單元 (ETM,embedded trace macrocel)。因此,Cortex-M3具有優(yōu)于ARM7TDMI核的性能。
圖2是Cortex-M3的邏輯框圖。為適應(yīng)實(shí)時(shí)控制需要的確定性,已刪除了指令和數(shù)據(jù)緩存器。圖中的保護(hù)單元(MPU)和內(nèi)嵌跟蹤宏單元 (ETM) 屬于任選項(xiàng)。
圖2 Cortex-M3邏輯框圖
給RISC CPU引入 MCU
MCU有許多異于一般嵌入式處理器的特殊功能。試看一個(gè)簡單的馬達(dá)控制系統(tǒng)。系統(tǒng)必須存在一條反饋通道,令MCU及時(shí)知曉當(dāng)前馬達(dá)所處的位置或者是由馬達(dá)拖動的設(shè)備的位移,以便MCU迅速做出下一步響應(yīng)。例如一只機(jī)械手,在撿拾一只蛋的時(shí)候,必須要在手指觸到了蛋的表面時(shí),指尖上的傳感器應(yīng)該發(fā)出信號給MCU,使機(jī)械手適度收緊手指,抓住蛋并將蛋提起。如果機(jī)械手由于嵌入式處理器內(nèi)部存在的緩存未能一次命中或偶爾發(fā)生分頁錯(cuò)誤,致使處理器未能在預(yù)定的時(shí)間點(diǎn)上停住適度收緊手指的馬達(dá),那么機(jī)械手將變成煎蛋餅的手。為了不捏碎那只蛋,Cortex-M3刪除了產(chǎn)生不確定性的指令和數(shù)據(jù)緩存器部分,改用片內(nèi)的閃存或SRAM。
控制系統(tǒng)還必須盡可能快地對異常事件做出響應(yīng),并且得到充分的保證。試想,當(dāng)CPU正在處理其他任務(wù)時(shí),突然外部中斷發(fā)來機(jī)械手中的蛋出現(xiàn)破裂危機(jī)的警報(bào),CPU必須立刻停下當(dāng)前的任務(wù),爭取時(shí)間趕去停掉馬達(dá),防止把裂蛋進(jìn)一步捏碎。Cortex-M3采用硬件的辦法來縮短中斷的延遲,以及有效節(jié)省CPU在接到中斷后轉(zhuǎn)入處理程序所花費(fèi)的時(shí)間。Cortex-M3的這段時(shí)間僅需12個(gè)時(shí)鐘周期。
除此之外,Cortex-M3還有嵌套的中斷控制器,免除不必要的堆棧操作。正在處理前次中斷的過程中又接收到較高優(yōu)先級的中斷請求,這時(shí)沒有必要將前次中斷保存在堆棧中的信息彈出,可以一直留到該次中斷服務(wù)程序結(jié)束時(shí)再行彈出。Cortex-M3知道應(yīng)先把控制轉(zhuǎn)到高優(yōu)先級的中斷及將必要的信息壓棧。這種尾鏈(tail chaining)操作可以減少不必要的存儲流量和加速中斷處理,將延遲降到6個(gè)時(shí)鐘周期。
1美元32位MCU的構(gòu)成
作為新創(chuàng)建的Luminary Micro公司必須緊緊地抓住市場的的注意力,所以大膽地做出極具殺傷力的價(jià)格策略:32位的ARM 基MCU 僅賣1塊美元!公司沒有透露這些器件的芯片尺寸。TSMC(臺積電)生產(chǎn)這類器件使用的是0.25微米 CMOS工藝,具有5層金屬和2層多硅的工藝??梢詫?shí)現(xiàn)混合信號的部件和嵌入閃存,并且具有良好的門密度和低漏電流。而Cortex-M3選用的是簡單的3級流水線、無緩存、以及低鐘頻(最初的器件使用20MHz)的設(shè)計(jì)。ARM指出,如果Cortex-M3使用TSMC的0.18微米的G工藝的話,其鐘頻可以達(dá)到120 MHz,但是使用低的鐘頻可以降低功耗和封裝成本。廉價(jià)的金屬引線鍵合和塑料SOIC封裝對于這類器件已是足夠。只有8KB閃存和2KB SRAM的LM3S101 和 LM3S102肯定是低端的應(yīng)用,其性能和存儲量對于成百萬計(jì)的MCU應(yīng)用綽綽有余。
圖1 Luminary Micro公司的LM3S3xx系列只賣1美圓
Luminary Micro的目標(biāo)是要迅速擴(kuò)大產(chǎn)品的種類,故而決定研制與購買專利并重。最早,全部外設(shè)靠買專利,而將所有精力集中于設(shè)計(jì)流程和生產(chǎn)各個(gè)環(huán)節(jié)的開發(fā)。工程團(tuán)隊(duì)將設(shè)計(jì)開發(fā)的重點(diǎn)放在時(shí)新產(chǎn)品的功能創(chuàng)新。
很快,在1美元產(chǎn)品的Cortex-M3核上增加了類似于先進(jìn)MMU (memory-management unit)的MPU。MPU僅用簡單的對照表將虛擬存儲地址譯成物理地址,用簡單的映射技術(shù)向存儲區(qū)提供多達(dá)8種相互隔離的物理地址,用于隔離代碼、數(shù)據(jù)、和堆棧等。
公司使用帶有MPU的Cortex-M3生產(chǎn)了4種群星系列的新MCU,并為它們擴(kuò)充了通用I/O口,使引腳增加到48只。群星系列的I/O設(shè)計(jì)具有所有外設(shè)能夠同時(shí)訪問的特點(diǎn),不像一些其他公司的I/O口需要重新單獨(dú)設(shè)置復(fù)用。
靈活型ADC拓寬應(yīng)用領(lǐng)域
除去對邊緣掃描和調(diào)試邏輯的改進(jìn)之外,工程設(shè)計(jì)團(tuán)隊(duì)在設(shè)計(jì)對現(xiàn)成邏輯模塊的翻新設(shè)計(jì)方面費(fèi)了很大的精力。雖然已有買來的現(xiàn)成混合信號的ADC IP模塊,但是團(tuán)隊(duì)最終放棄了它,改而設(shè)計(jì)自己的外設(shè)硬件。創(chuàng)新的靈活型ADC共有8個(gè)輸入通道,其總和的采樣率為每秒25萬次。除去對外部模擬源進(jìn)行采樣外,還有專門通道對內(nèi)部溫度傳感器加以采樣。為將CPU從輪番采樣每個(gè)通道的單調(diào)工作中解放出來,ADC另有一套4組可獨(dú)立編程的循環(huán)順序控制器邏輯。它們可以控制某一個(gè)單通道的循環(huán)采樣(包括過采樣),也可以用不同的速率同時(shí)采樣多個(gè)通道。用戶可以靈活隨意地選擇。唯一的限制,就是總的采樣率不超過每秒25萬次。
靈活型ADC的每個(gè)循環(huán)順序控制器都有多個(gè)可供選擇的觸發(fā)源。靈活型ADC特別適用于低價(jià)位的醫(yī)用傳感器采樣和其他多種工業(yè)控制。
群星系列及其競爭者
Luminary Micro的目光放在分銷商們所服務(wù)的通用市場。低時(shí)鐘頻率和殺手價(jià)使群星系列可以直接面對8、16位的應(yīng)用市場。但是,LM3Sxx系列向上游移動的時(shí)候,便有可能會遭遇來自低端32位MCU的激烈碰撞。
環(huán)視8、16位MCU 的核結(jié)構(gòu),Luminary Micro面對的是來自大量廠家的少數(shù)結(jié)構(gòu)。其中最重要的是無處不在的8051結(jié)構(gòu)。8051有大量的生產(chǎn)廠家如:ADI,Atmel,Dallas,Infineon, NEC,Philips,Renesas,Silicon Labs,STM,TI, 以及 Intel自己。應(yīng)該指出,其中的許多廠家已經(jīng)將8051結(jié)構(gòu)進(jìn)行改造和移向一些其他的結(jié)構(gòu)。
Freescale是另一個(gè)具有自己8-bit MCU核結(jié)構(gòu)的領(lǐng)頭大公司,2005的市場份額僅占8-bit MCU 14%。其他具有自己低端MCU核結(jié)構(gòu)的公司還有:Microchip 的PICmicro MCU, NS的COP, Renesas的R8 和M16, 以及NEC的78K等。
當(dāng)然,不可能各種8位的應(yīng)用都來使用32位結(jié)構(gòu),價(jià)格這一關(guān)就過不去。工程師應(yīng)該明白:天下沒有免費(fèi)的東西。需要深入研究8位能干的事,改用32位結(jié)構(gòu)究竟有哪些潛在的好處和壞處,這是真正應(yīng)該認(rèn)真研究的下手之處。
RISC代碼已經(jīng)不再那么臃腫
歷史上曾經(jīng)發(fā)生過,RISC結(jié)構(gòu)較之CISC結(jié)構(gòu)存在過代碼臃腫的事實(shí)。但是,有了16位指令子集的現(xiàn)代CISC結(jié)構(gòu)之后,問題已經(jīng)得到克服,甚至有所逆轉(zhuǎn)。ARM公司已經(jīng)宣布Cortex-M3的代碼密度是8051的4倍,這已是事實(shí)。
之所以有這種巨大的變化,還與現(xiàn)代的高級語言被用于RISC結(jié)構(gòu)有關(guān)。通過對指令集和寄存器文件的調(diào)整,提高指針和函數(shù)參數(shù)的傳送效率等措施,情況已經(jīng)改觀。EEMBC對軟件所作的典型的測評報(bào)告中有關(guān)于代碼容量的信息,可惜許多公司未予公開,故尚難以做出全面的比較。一般說來,Cortex-M3所需的代碼不會大于其他MCU,這是最低水平。至于切換到32位,如果真有一天得出負(fù)面的結(jié)果,那可能還是好事一樁。
對于功耗的比較
Atmel AT89LP是改進(jìn)版的8051結(jié)構(gòu),執(zhí)行的指令大多數(shù)都是單周期的,速度改進(jìn)了10倍。它屬于低功耗的芯片。整片的有效功耗是1 mA@3.0V 和1.0MHz。 相當(dāng)于AT89LP的整片功耗是3mW / MHz。而Cortex-M3的凈核功耗為0.19mW/ MHz。當(dāng)然,比較時(shí)未計(jì)及工藝的不同。但是,其數(shù)值還是可以反映出來32位內(nèi)核的有效功耗并非很大,而說明占用功耗比例很大的卻是外設(shè)、內(nèi)存、和I/O等。
Luminary Micro說,LM3Sxxx 系列的整片有效功耗是35 mA@3.3V 和20MHz。 相當(dāng)于整片功耗是5.8mW / MHz。這個(gè)數(shù)字里應(yīng)該說也包含著有比AT89LP更多外設(shè)的部分在內(nèi)。最好的比較應(yīng)是在同等外設(shè)條件下的比較。
備用狀態(tài)下的功耗則完全是另一個(gè)概念。它取決于晶體管的數(shù)量、設(shè)備電壓、和與工藝有關(guān)的晶體管漏流。顯然,32位的CPU結(jié)構(gòu)比8位需用更多的晶體管,不可避免地加大備用時(shí)的功耗。
群星系列芯片使用外部3.3V電源,片內(nèi)經(jīng)過電壓調(diào)節(jié)器轉(zhuǎn)為2.5V供應(yīng)內(nèi)部邏輯電路。所以,Luminary Micro必須采用低電壓工藝以獲得功耗的改善。當(dāng)然,隨之而來的必然是漏流的增大。高端的CPU采用先進(jìn)的設(shè)計(jì)技術(shù)使低壓時(shí)的漏流減少,這是廉價(jià)的低端CPU無能力問津的方法。所以一般說來,8位CPU在備用模式下(包括休眠)具有比32位絕對的功耗優(yōu)勢。
開發(fā)工具是主要因素
當(dāng)最后進(jìn)入用技術(shù)觀點(diǎn)來剖析使用8位或32位結(jié)構(gòu)之時(shí),開發(fā)工具經(jīng)常成為取舍的決定性因素。若想從功耗、價(jià)格、代碼效率等方面優(yōu)選候選器件的話,設(shè)計(jì)者經(jīng)常選用具有最好硬件和軟件的工具。這就是為什么Freescale在經(jīng)歷過長時(shí)間的磨難,最后走上了各種MCU統(tǒng)一的開發(fā)工具策略。
Luminary令其8、16位 MCU的系統(tǒng)設(shè)計(jì)者一定要為優(yōu)化高水平的軟件開發(fā),而下賭注于使用現(xiàn)代的32位結(jié)構(gòu)一樣的工具。2006年,全世界生產(chǎn)ARM基CPU的諸廠商出貨總計(jì)達(dá)將200萬單位,ARM公司期望2010年之前,達(dá)到450萬單位。那時(shí),無處不在的現(xiàn)實(shí)將成長成巨大的生態(tài)圈,擺在MCU系統(tǒng)設(shè)計(jì)者面前的健康之選,將是轉(zhuǎn)向ARM。
約半數(shù)Luminary的客戶已在使用ARM微處理器,他們的系統(tǒng)也要用到MCU。 Luminary現(xiàn)有開發(fā)工具可供使用,但公司還將投重金,專為群星系列的外設(shè)開發(fā)支持軟件,創(chuàng)建可擴(kuò)展的API庫和樣片的各種驅(qū)動程序,幫助客戶能夠?qū)⒆约旱南到y(tǒng)盡快地轉(zhuǎn)入運(yùn)行。
來自其他32位MCU廠商的競爭
只要群星系列的MCU 滿足功耗要求,Luminary Micro就擁有對其它 8、16位MCU廠商的優(yōu)勢。除非其他廠商家將用戶引向32位MCU,那時(shí)將使競爭變得嚴(yán)酷。主要的競爭還應(yīng)是性能。
作為開始起步的Luminary Micro,能夠分得13 00萬美元的MCU市場的一小杯羹已經(jīng)算是成功了。在短暫的時(shí)間里,公司有了自己的Cortex-M3市場,并且快速地取得領(lǐng)先地位。有許多有實(shí)力的公司正熱衷于追趕,所以公司不可以有些許的懈怠和止步不前。(梁合慶譯自《微處理器報(bào)告》)
評論