如今,ARM是32位MCU架構中增長最快的部分,有專門為不同嵌入式處理器準備的lO種左右的Cortex授權。一般公XARM陣營的優勢是可利用的豐富的生態環境。
不過,MIPS科技公司這幾年也在尋求突破。Microchipx MlPS架構的積極擁躉者之一,最近,Microchip的Edendur Kristjansson~ARM公司聲稱的32位單片機(MCU)應用的可移植性產生了疑問。
32位單片機的應用可移植性:現實還是神話?
Erlendur首先介紹了事情的原委:2008年11月,ARM公司宣布推出Cortex微控制器軟件接口標準(Microcontroller Software InterfaceStandard,CMSIS)。ARM聲稱,對于新器件的軟件開發項目或將現有軟件在不同芯片廠商的基于Cortex-M的單片機之間移植時,這項標準可降低軟件設計成本。這聽起來很不錯,但事實確實如此嗎?
Erlendur分析道,根據ARM所言,CMSIS是“適用于Cortex-M處理器系列的與廠商無關的硬件抽象層。CMSIS為不同芯片廠商和中間件提供商的處理器提供了簡單一致的軟件接口,這簡化了軟件重用,縮短了開發人員對于新單片機(MCU)的學習過程以及新器件的上市時間。CMSIS的問世使芯片廠商可將資源集中在突出其產品的外設功能上,無需在對單片機進行編程時保持各自不兼容的標準?!?/p>
可移植性的可能性探討
我們已了解各個單片機制造商都能提供什么,現在可以看一下抽象層能為設計人員做些什么(如果有的話)。首先,我們來看CMSIS聲稱所能提供的功能,同時應記住前文所述的系統架構、外設和固件庫。
CMSIS版本1.3
1.內核外設訪問層:包含用于訪問內核寄存器和外設的名稱定義、地址定義和輔助函數。它還定義了一個用于RTOs內核的器件無關接口。其中包含調試通道定義。
2.這些軟件層由芯片合作伙伴通過以下方式進行擴展:
a)器件外設訪問層,提供所有器件外設的定義:
b)用于外設的訪問函數(可選):提供用于外設的附加輔助函數。
仔細閱讀此說明后,我們可以看到CMSIS提供了一種通用語言,通過它可描述MCU的不同元件。
接下來,我們看一下兩個不同的“芯片合作伙伴(使用ARM Cortex-M處理器內核的MCU制造商)”所生產的MCU中包含的部分功能。
顯而易見的是,盡管這兩個32位MCU制造商都使用Cortex-M3內核,但主要功能仍有區別。表l中列出的功能是單片機最標準的功能,即便如此它們仍有不同。這意味著,即使這兩個制造商使用相同的內核,也需要對軟件進行調整才能運行最基本的程序,例如翻轉I/O或使用UART。如果不進行一定程度的代碼重寫,而只是對基本參數進行調整,則無法在A和B之間移植軟件。
另外,在表l的示例中,廠商A和B的單片機都使用了ARM Cortex-M3內核,并且都具有符合CMSIS標準的固件庫。這是否意味著他們的庫(例如電機控制庫)可以互相移植?
其實不見得。這兩個制造商對外設和固件采用了完全不同的方法。廠商A使用專用算法庫(可能由多人經過數年開發而成)來最高效地利用其單片機上的專用外設。而廠商B則專注于使用更通用的外設并構建通用外設庫,對于特定應用則使用示例代碼和應用筆記進行說明。
這兩種完全不同的方法使得在這兩個制造商的MCU之間移植程序(例如電機控制子程序)非常困難,盡管它們使用了相同的內核。此外,庫函數的命名也不相同,這意味著用戶必須重寫代碼中的所有庫函數調用,并且要弄清將哪些變量和值提交給函數。這完全不是所謂的可移植性。
再有,設計人員關注的重點是開發特定最終用途代碼時的速度、效率和可靠性。廠商A和B采用不同的方法來達到這些目標。廠商A使用基于專用硬件的方法,而廠商B的法更加專注于通用硬件。廠商A針對特定應用提供了經過潛心開發的專用庫,以最大限度地利用其單片機的功能。而廠商B只提供基本構件,讓開發人員構建自己的解決方案。
筆者認為,如果真像Microchip所說的32位單片機的應用難以移植,那ARM陣營的優勢會打一定的折扣。如果單挑,Microchip所選的MIPS公司的內核,在計算性能也是有優勢的。
MIPS公司對其IP(知識產權)核功耗高的錯覺進行了澄清。MIPS公司中國區市場總監費浙平稱,最近,全球第一款MIPS智能手機平臺來自于中國的客戶——北京君正,這用事實證明YMIPS架構的高性能、低功耗能力。
那么如何理解高性能、低功耗,MIPS公司在這方面的創新是什么?費浙平說,高性能和低功耗是必須放在一起考量的一對指標。歷史上MIPs一直被比較多地應用于高性能領域,比如15年前多數MIPS平臺就運行在100~200MHz以上,而那時候很多其他架構只需要運行在50MHz以下,顯然,200MHz的設計實現其絕對功耗是遠大于50MHz設計的,不管其結構體系本身多么有優勢。
多年來,MIPS比較多地被應用于絕對性能要求較高的地方,這就是關于
“MIPS高功耗”歷史錯覺形成的主要原因?,F在MIPS鼓勵使用“效率”來進行不同架構內核的比較,效率就是性能/功耗比,即單位能量能夠提供的計算能力。這樣大家就比較容易對不同的處理器架構進行橫向比較了。
一個系統的功耗效率從本質上決定于以下這些因素(如圖3所示):基礎架構、并行處理能力、芯片后端設計和制造工藝、系統軟件設計。MIPS在基礎架構技術方面的優勢是比較公認的:在多核多線程兩項并行處理技術方面也領先一步(兩者結合可以既增加計算平行度,又減少CPU空轉時鐘周期數的浪費)。芯片后端設計和制造工藝對一個芯片性能和功耗的影響現在越來越大,不過這方面的影響與具體CPU架構無關,對任何芯片設計影響都是一樣的;同樣,軟件設計思想上的進步,也可以應用在所有不同CPU架構之上,是通用的。在MIPS現有產品系列中,像MIPS 1074K是雙發射超標量結合多核技術的產品,提供較高性能;MIPS 1004K是多線程和多核技術結合的產品,適合并行度高的任務系統。