2008年12月25日 星期四

8位元世界中的32位元MCU應用(轉載)

這也算是呼應我之前那篇32 位元MCU 的文章...

這其中應該有許多事值得我們用另類的思維....!...

-------------------------------

http://tech.digitimes.com.tw/ShowNews.aspx?zCatId=111&zNotesDocId=0000102696_1BO7A4N18G52HA7JNWVH1

-----

8位元世界中的32位元MCU應用
(寄信給作者)2008/08/25
 
台北訊

全球MCU市場出貨量預估將在2010年超過150億顆,其中,32位元MCU的成長速度,更將是傳統8位元的三倍。許多目前採用8位元MCU的裝置,都將逐漸被32位元MCU所取代。32位元MCU裝置的成長,受到不同市場力量的驅動,其中包括重複使用程式碼的需求、應用複雜度的提升、裝置的逐漸匯整,以及系統的連結。然而,在此同時,廠商仍需考慮成本追加的限制及產品上市時程的控管。

由於8位元MCU移轉至32位元牽涉為數眾多的架構平台與協力廠商,因此在過去被視為不可能的任務。但由於現今程式碼密度與長度的演進,加上矽元件製程的改良,使架構平台匯整的目標得以實現,並使32位元裝置的版圖,能首度拓展至過去由8位元與16位元應用所主宰的低成本市場。




8位元與32位元MCU市況

32位元MCU跨足8位元與16位元的既有市場,原本就會面臨不少挑戰,再加上可預見的未來,將出現低於0.5美元的量產產品市場,或其他矽元件廠商無力觸及的超低成本應用領域,更讓32位元MCU的普及受到限制。雖然如此,市場上仍有為數可觀的應用,讓32位元MCU裝置有機可乘,開始挑戰既有的8位元及16位元市場。例如:Luminary Micro推出超過百款從1美元量購價起跳、搭載ARM® Cortex™-M3處理器技術的MCU。此外,包括Atmel、ADI、NXP、STMicro與TI等許多廠商,也紛紛推出一系列搭載ARM處理器技術的裝置。

上述廠商推出的32位元MCU裝置,提供了比其他平台更高的單位價格效能,並在數量上快速超越了傳統的8位元設計。這些32位元MCU被廣泛應用在無數的電子裝置中,包括遙控器、待機模式控制器、警報系統、電子投票機、家用電器、廚房用品控制器,以及整合許多8位元系統的汽車與資料登入應用。

程式碼長度

部分工程師在決定是否轉換至32位元處理器時,最主要擔憂就是轉換會使程式碼長度大幅增加。但是,許多案例顯示轉換事實上簡化並縮短了程式碼。此外,許多8051指令仍需2或3個位元組,而ARM Thumb®-2指令卻更簡短,且能完成更多工作。

ARM Cortex-M3處理器中的Thumb-2技術等32位元指令集應用,能夠提供更精簡的程式碼與更快的效能。舉例來說,經由Cortex-M3處理器編譯後,推動堆疊中的3個暫存器,以及將它們取出及置回的程式碼,總數僅不到原本的三分之一。

事實上,在最近幾個採用EEMBC業界標準程式碼所進行的獨立標竿測試中,證實了一組先進8051裝置的完整程式碼長度,較Cortex-M3處理器程式碼多出3.6倍。同時,Cortex-M3處理器所提供的效能,更高出該8051裝置有十倍之多。

資料格式的一致性,是比較程式碼長度時的另一個重要考量。在16或32位元指令中,一個指令的長度可能是2或4位元組,但ARM的工具會自動執行轉換,使程式碼長度永遠以位元組為單位。反之,Mircrochip等其他廠商將程式碼長度標示為指令字元,要開發業者自行將數據乘以指令長度,因而經常造成混淆。

MCU中斷處理能力

新一代32位元MCU的中斷能力遠勝於傳統MCU裝置,且提供遠超過傳統8位元裝置的簡易使用度與彈性。新一代的MCU系列,如採用Cortex-M3處理器的Luminary Stellaris與STMicro STM32,都提供超過32個中斷,並支援8或16個優先順序。此外,處理中斷的所有暫存作業都是由硬體自動處理,這不但提供了一個極為簡單、可靠,且可重複的解決方案,也意謂著所有中斷處理裝置都可撰寫成一般的C語言函式,而無須使用組譯程式。將中斷控制器整合至中央核心亦帶來許多其他先進的功能,包括無限制巢套、優先遮罩,與關鍵優先無遮罩中斷。

以Cortex-M3處理器為基礎的32位元MCU,其性能大幅領先8051架構裝置,甚至是效能高於標準8051架構八倍之多的最新一代「加速型」8051架構。雖然許多最新的8051裝置宣稱其中斷延遲僅有5或6個週期,但這並不包括開始處理中斷時所耗費的大量資源。

Cortex-M3處理器的12個週期中斷延遲,包括了將暫存器推入堆疊、取得特殊向量,及擷取ISR指令所耗費的時間。從下表的比較中,我們可看到Cortex-M3處理器的中斷延遲,比加速型8051裝置還要短,而這類加速型裝置的速度已經較標準型8051裝置快上8倍。在許多其他的8051系統中,這些延遲甚至會更長。



位元處理運用的重要性


在32位元與8位元MCU的比較之中,位元處理層面也必須被合理的考量。過去十年,大多數的32位元裝置都著重於資料封包處理,而忽略了真正控制工程所需的個別位元運用。然而,最新一代的32位元裝置已重新開始注重這塊領域,且能夠替個別位元與位元控制提供優異的效能。例如:Cotex-M3處理器定義兩類記憶體,一者是內部SPAM,而另一者為週邊記憶體,能夠提供個別位元達到類似自動化的效能。

此外,在加入支援位元處理作業的一組新指令後,僅須單一指令即可插入、清除或交換一組可編程位元。舉例而言,想要改變資料欄位中的3至5位元,8051架構裝置需要9個位元組與6個時脈週期,但若運用Thumb-2中的位元欄位插入(Bit Field Insert)指令,則僅須4個位元組與1個時脈週期。

工具整合優勢

儘管32位元MCU具備許多優勢,許多開發業者對於嘗試這些新裝置所需的巨額投資,仍存有疑慮。但事實正好相反,許多8位元開發業者所熟悉使用的工具,如:Keil和IAP工具套件,都已支援32位元裝置。(版主註:IAP 應該是誤植了...我想應該是IAR。)

由於整合了使用熟悉的開發環境,因此,改寫大部分的C語言程式碼變得十分簡單,整體開發也更容易。近來,隨著採用Cortex-M3處理器的32位元裝置陸續問市,為這些裝置撰寫程式碼所需的知識門檻也大幅降低。

應用的日趨複雜、裝置匯整,與連結MCU的興起等因素,都持續促使市場邁向效能更高的32位元MCU裝置。最初為了提升程式碼的重複使用性,並降低各部門的成本,而在業界興起平台整合趨勢,卻在最後無心插柳地將這些高效能裝置,帶向始料未及的發展境界,並直接挑戰了傳統的8與16位元裝置市場。(本文由ARM安謀科技股份有限公司資深行銷經理Hayden Povey提供)

 

2 則留言:

  1. 好用是好用,但最後還是會因為價格因素,而不得不放棄,有哪一個RD放著方便的工具,而去用殺死自己青春的工具呀!
    PowerBHY

    回覆刪除
    回覆
    1. 哈... :)) ...兩個理由都成立!...
      針對第一個...那我就要審慎的評估系統產品的附加價值高不高?!...如果啊,每一個案子都要針對方案成本斤斤計較的話...我就會重新評估可行性。因為實在太累了,還有便宜代表量大,金流考慮不得不謹慎啊!...
      ---
      針對第二個理由:我想這一定不要列入考慮了...不方便的開發工具...只代表是沒有廣大的應用客戶群,最後只會讓自己成為原廠遺棄孤兒而已...未來連產品交貨風險更大...不敢玩了。...您知道我在說哪一件事吧!.. :)) ...

      刪除