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