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