在嵌入式系統(tǒng)內(nèi),ARM幾乎已經(jīng)成為一個標(biāo)準(zhǔn) ,但中國芯片公司采用ARM內(nèi)核的比例明顯要比歐美等地方要低得多。另一個值得注意的是,國內(nèi)芯片公司很多時候會強調(diào)他們的軟件都是內(nèi)部開發(fā)的。由于這兩個原因,使得中國芯片公司對第3方開發(fā)編譯器和相關(guān)的嵌入式軟件的需求比國外低很多。也使得中國的獨立的嵌入式軟件開發(fā)商跑去了為外國的半導(dǎo)體公司服務(wù)。在今天芯片利潤主要從芯片上軟件獲取的大趨勢下,我們認(rèn)為第三方軟件供應(yīng)商對芯片公司的作用是不容忽視的,但這必須是在一個在良好的環(huán)境下才能實現(xiàn)的。為了創(chuàng)造這樣良好的開發(fā)環(huán)境,編譯器肯定是一個重要的環(huán)節(jié)。
今天的芯片已經(jīng)不再是一顆功能簡單的芯片,絕大部分都是SoC,功能包羅萬象,為了實現(xiàn)不同的功能,芯片內(nèi)有各式各樣的模組和軟件。從設(shè)計到生產(chǎn),會花掉大量的人力、時間和金錢。相對一個密封的開發(fā)環(huán)境,容許第三方開發(fā)看來會浪費更多的人力和時間。但這恰恰是歐美各大芯片公司跟國內(nèi)芯片公司一個不同之處。我們也不得不承認(rèn)這些歐美大芯片公司基本上已經(jīng)占據(jù)市場的主要位置。如果國內(nèi)芯片公司要挑戰(zhàn)他們的話,首先必須要有同樣或者更超前的思維。
當(dāng)然,世事往往都有例外,近年也有很多公司在密封開發(fā)系統(tǒng)下取得成功,比如在手機上。它們的成功的確堅定國內(nèi)芯片公司對密封的開發(fā)環(huán)境的信心。不過值得注意是,國外公司依然走第三方開發(fā)公司的路, 在這種趨勢,相信未來的一段日子,國內(nèi)的第三方開發(fā)商也只能為國外公司服務(wù)。
要第三方開發(fā)公司的合作,最重要是一個對雙方有利的合作模式和誠懇的態(tài)度。然后,就是一個良好的開發(fā)環(huán)境,比如編譯器。目前,有很多芯片公司會提供免費的編譯器,也有芯片公司會采用專用的編譯器(這些編譯器通常是要購買),更有一些公司的芯片可以用其他公司的編譯器。對ARM的用戶來說,編譯器看起來是最簡單的事,因為ARM跟其它公司有提供很多不同的編譯器,有部分更有試用版,所以,一般來說都不會理會開發(fā)環(huán)境,但隨著ARM CPU會跟其它ARM CPU或其它DSP放在同一顆芯片上,開發(fā)環(huán)境也變得復(fù)雜起來,ARM公司提供的編譯器也不一定能夠滿足最后產(chǎn)品的要求。
好的編譯器不但可以大幅度壓縮代碼密度還可以大大提升性能
另一方面,也有很多芯片公司會跟一些開發(fā)工具的公司合作,如Freescale和Metrowerks, Samsung和Aiji等。畢竟芯片公司的長處是芯片設(shè)計,開發(fā)工具交給一些專業(yè)的公司會更好,但這些開發(fā)工具公司出于自身利益的考慮,會使得芯片公司在推廣一些新的芯片上遇到一些額外阻力。但不可否認(rèn)的是,這些公司的開發(fā)工具是的確有它的優(yōu)勢。但由于Freescale 或其它公司的CPU和DSP已經(jīng)有一定的客戶基礎(chǔ),所以這方面的問題并不突出。
最后,是當(dāng)設(shè)計芯片時已經(jīng)把軟件的兼容問題想好,芯片出來后,能直接執(zhí)行其他芯片的目標(biāo)碼,通常這發(fā)生在一個后續(xù)產(chǎn)品要跟以前的產(chǎn)品兼容,例如ARM11能執(zhí)行很多在ARM9上的軟件,也有一些公司開發(fā)出芯片能執(zhí)行在其他公司開發(fā)的軟件,不過這真的是說易行難。用芯片來配合軟件,我認(rèn)為是比較吃力的一回事。不過在公司資源有限的情形下,這也是一個方法。
今天,編譯器已經(jīng)不是光把源碼轉(zhuǎn)為目標(biāo)碼,大家也開始注意到優(yōu)化的問題。比如ARM它的CPU就有Thumb指令,使得軟件變小,來減少memory并達(dá)到節(jié)約成本的目的,不過多媒體流行的今天,如何能在相對上低階平臺上,提升軟件的速度,使得有一個滿意的多媒體效果,已經(jīng)對現(xiàn)在的嵌入式軟件開發(fā)人員產(chǎn)生一個挑戰(zhàn)。由于很多時候,編譯器的效果不理想,軟件開發(fā)人員就直接用匯編語言來寫。目前來說,無論國內(nèi)和國外,很多項目也是采取這種方式來解決軟件執(zhí)行速度低的問題。但在一些新一代的編譯器其實已經(jīng)能很好的去優(yōu)化目標(biāo)碼,來達(dá)到一個比較高的執(zhí)行速度。這種編譯器能很有效提高軟件的速度,并大幅減短的開發(fā)時間。對于芯片公司來說,開發(fā)一顆芯片是一個巨大的投資,減短的開發(fā)時間意味著提前把產(chǎn)品推出市場,能提前哪怕只是一個月的銷售也是很重要。但可惜的是這種開發(fā)工具一般都很貴,一般的第3方開發(fā)公司根本沒有能力購買,所以還是依賴芯片公司的決定。
怎樣提高軟件的速度,其實一個良好的開發(fā)環(huán)境是可以提供一個幫助,由于新的CPU和DSP的pipeline越來越長,并新增cache,過去依靠軟件人員用匯篇語言編寫軟件會變得越來越不可靠。新的編譯器能對SIMD(Single Instruction Multiple Data)和怎樣減少cache的miss rate這兩方面做出很好的優(yōu)化。這樣他們能盡量利用數(shù)據(jù)的parallelism把軟件的速度提高,這對于CPU 和DSP產(chǎn)生高質(zhì)素的圖像效果至關(guān)重要。隨著新的消費電子產(chǎn)品面世,會讓消費者對圖像的要求大幅提高,從2D到3D,從QVGA到VGA,消費者會要求更逼真和更漂亮的視覺效果,過去的假mp4在未來將會消失,無論是芯片公司,第三方的開發(fā)公司到消費電子的生產(chǎn)者都應(yīng)該把握這個機會.
今天的消費電子產(chǎn)品已經(jīng)比10年前先進(jìn)得多,商業(yè)模式也從過去靠硬件變得更依靠軟件,在這個轉(zhuǎn)變當(dāng)中,我們必須重新評估過去有效的商業(yè)模式,能不能適合今天的市場。電子產(chǎn)品的生命周期很短,但開發(fā)一個產(chǎn)品的時間可以需要很長,甚至比銷售產(chǎn)品的時間更長,面對這樣一個挑戰(zhàn),產(chǎn)品開發(fā)的管理變得重要。在整個管理中,可能大家會很關(guān)心到底怎樣才能在成本和時間上滿足上級的要求。因為,開發(fā)出來的產(chǎn)品的成本和時間能不能趕得上市場才是最關(guān)鍵。無論是自己做,是供應(yīng)商做或者是找第3方來做,最重要還是趕上市場。除了供應(yīng)商外,自己做的或者跟第3方合作的就需要一個開發(fā)環(huán)境。這開發(fā)環(huán)境中最重要的是編譯器,開發(fā)軟件,一般分為2個階段,就是編寫軟件和Debug,當(dāng)中以Debug最費時間。在Debug當(dāng)中,相當(dāng)一部分時間就是編譯器耗掉的時間,所以一個省時的編譯器,能大幅提高開發(fā)的能力。另外,如果能將一些工作,特別是那些陌生的工作交給有經(jīng)驗的第三方也會縮短開發(fā)時間。
當(dāng)MP3把DISCMAN取代,當(dāng)手機把數(shù)碼相機取代后,大家開始討論一個終極的手持產(chǎn)品的出現(xiàn),它能把所有其它的產(chǎn)品取代。從硬件來看,這是肯定的。因為今天不同手持產(chǎn)品的硬件配置可能很相似,但由于它的軟件不同,它就變成不同的產(chǎn)品,但更重要是它的商業(yè)模式不同,所以它變成另一個產(chǎn)品。當(dāng)手機加了攝像頭后,它很輕易就取代了數(shù)碼相機,我已經(jīng)用手機拍照一段時間,現(xiàn)在是越來越喜歡用手機拍照。但目前的手機就沒法替代游戲機,因為游戲機并不靠手機本身,或者是網(wǎng)絡(luò)費用來掙錢,它是靠賣游戲軟件來掙錢。到底這兩種不同的模式誰會占到上風(fēng),目前還不知道,但有一點肯定的是,要在這兩大產(chǎn)業(yè)之間發(fā)展,并且占有先機,一個良好的開發(fā)平臺,并有一群有實力的第三方開發(fā)商,是必需的。