軟件堪稱移動(dòng)電話最重要的元素,它是移動(dòng)電話能否在市場(chǎng)成功的關(guān)鍵要素。它決定了手機(jī)是“熱門產(chǎn)品”還是“三味產(chǎn)品”。它是使用者最先接觸到的功能。它是我們愛恨手機(jī)的主要原因。手機(jī)系統(tǒng)工程師只要想到此點(diǎn)就不寒而栗,因?yàn)檐浖苋菀装l(fā)生問題、成本經(jīng)常超出預(yù)期、而且總是要到手機(jī)量產(chǎn)前才能完成。本文將深入說明軟件為何仍是系統(tǒng)開發(fā)人員的主要考慮,以及為何采用一種符合常識(shí)的設(shè)計(jì)方法和架構(gòu)可以大幅減少這些風(fēng)險(xiǎn)。
手機(jī)內(nèi)的軟件
圖1示出了手機(jī)里的軟件,它們最后都會(huì)在芯片組廠商提供的硬件平臺(tái)上執(zhí)行。在移動(dòng)電話里,這個(gè)平臺(tái)可能是含有MIPS等微控制器 (MCU) 的基帶處理器 (BB) 或應(yīng)用協(xié)同處理器 (ACP)。由于軟件程序代碼必須針對(duì)基帶或應(yīng)用處理器的緩存器、時(shí)序和微控制器種類而特別設(shè)計(jì),因此由最了解硬件的廠商來提供軟件自然是最合理的選擇。
圖1 手機(jī)內(nèi)的軟件
設(shè)計(jì)良好的軟件系統(tǒng)會(huì)將硬件相關(guān)的低階界面隱藏起來,不讓它們出現(xiàn)在比較依賴通用實(shí)時(shí)操作系統(tǒng)服務(wù)和應(yīng)用軟件架構(gòu)的高階接口。以典型的個(gè)人計(jì)算機(jī)應(yīng)用為例,個(gè)人計(jì)算機(jī)應(yīng)用軟件的程序設(shè)計(jì)師就不需要知道底層硬件的任何細(xì)節(jié),這些研發(fā)人員會(huì)利用操作系統(tǒng)提供的服務(wù)以及協(xié)力廠商的工具來設(shè)計(jì)應(yīng)用軟件。
在手機(jī)軟件世界里,這就像是硬件廠商會(huì)發(fā)展基本接口與上層軟件溝通,手機(jī)應(yīng)用程序設(shè)計(jì)人員則會(huì)專注于軟件應(yīng)用,完全不必考慮底層硬件。換言之,圖1就代表這種以專業(yè)知識(shí)為基礎(chǔ)的軟件設(shè)計(jì)分工方式。
盡管如此,手機(jī)軟件系統(tǒng)設(shè)計(jì)通常仍會(huì)涉及眾多廠商,因此實(shí)際情形并不會(huì)像圖1所示那么簡單明確。芯片組廠商雖然有硅芯片設(shè)計(jì)知識(shí),卻不一定了解軟件。因此他們只會(huì)發(fā)展硅芯片,然后由不同的軟件廠商設(shè)計(jì)所需軟件以便與芯片提供的平臺(tái)驅(qū)動(dòng)程序或系統(tǒng)驅(qū)動(dòng)程序等外圍接口和功能溝通。這也難怪許多更具競(jìng)爭力的芯片解決方案雖然提供更強(qiáng)大的集成度和效能,手機(jī)制造商在軟件考慮下總是不太愿意更換硬件平臺(tái)。
手機(jī)內(nèi)的特定軟件
針對(duì)特定芯片所設(shè)計(jì)的軟件大致可分為兩個(gè)領(lǐng)域:俗稱為協(xié)議堆棧 (protocol stack) 的通訊軟件以及直接與芯片上各種外圍接口或驅(qū)動(dòng)程序溝通的軟件。
協(xié)議堆棧軟件必須支持現(xiàn)有的全部電信標(biāo)準(zhǔn)才能通過電信法規(guī)認(rèn)證。由于功能規(guī)格和時(shí)序要求都很嚴(yán)苛,這些軟件必須了解所使用的芯片組平臺(tái)細(xì)節(jié)。幸運(yùn)的是,協(xié)議堆棧完全符合OSI-ISO(Open Systems Interconnect-International Standards Organization) 架構(gòu)要求。該架構(gòu)要求通訊軟件的發(fā)展必須采用分層架構(gòu),而且每層都要有一定程度的功能隔離。多數(shù)協(xié)議堆棧是由OSI模型的第一、二和三層組成 (L1、L2和L3),其中只有俗稱為實(shí)體層的第一層才需要了解底層硬件細(xì)節(jié)。協(xié)議堆棧的其余部份都與硬件無關(guān),它們通過通用接口向下與特定硬件的第一層溝通,向上則與應(yīng)用架構(gòu)溝通。
手機(jī)軟件的評(píng)價(jià)指標(biāo)
介紹了手機(jī)軟件環(huán)境和手機(jī)系統(tǒng)工程師每天都會(huì)遇到的各種軟件整合問題后,我們接著將討論一些重要的評(píng)價(jià)指標(biāo),同時(shí)說明我們所推薦的智能型架構(gòu)如何解決這些問題。下列這些問題對(duì)所有手機(jī)制造商和最終使用者都同樣重要,也是他們都關(guān)心的問題。
成本:當(dāng)制造商談到手機(jī)的元器件用料時(shí) (BOM),他們是指電子元器件用料 (E-BOM) 以及塑料和機(jī)械元器件等其他用料。雖然如此,只有極少數(shù)的制造商有能力計(jì)算和管理他們的軟件成本。經(jīng)驗(yàn)證明軟件成本約占普通手機(jī)成本的15%。軟件成本的另一來源是將現(xiàn)有軟件移植到新芯片平臺(tái)的前置作業(yè)費(fèi)用,這需要的工作量相當(dāng)于一位訓(xùn)練有素而昂貴的工程師工作兩年半才能把原來就有的軟件移植到新平臺(tái)。假設(shè)每位工程師的總成本是每年30萬美元,這表示每個(gè)平臺(tái)需要75萬美元的工程費(fèi)用。在今日競(jìng)爭激烈的市場(chǎng)里,降低軟件成本有助于提高效益進(jìn)而擴(kuò)大整體獲利能力。