如何降低手機(jī)軟件的更換成本
軟件堪稱移動電話最重要的元素,它是移動電話能否在市場成功的關(guān)鍵要素。它決定了手機(jī)是“熱門產(chǎn)品”還是“三味產(chǎn)品”。它是使用者最先接觸到的功能。它是我們愛恨手機(jī)的主要原因。手機(jī)系統(tǒng)工程師只要想到此點(diǎn)就不寒而栗,因?yàn)?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/軟件">軟件很容易發(fā)生問題、成本經(jīng)常超出預(yù)期、而且總是要到手機(jī)量產(chǎn)前才能完成。本文將深入說明軟件為何仍是系統(tǒng)開發(fā)人員的主要考慮,以及為何采用一種符合常識的設(shè)計方法和架構(gòu)可以大幅減少這些風(fēng)險。
手機(jī)內(nèi)的軟件
圖1示出了手機(jī)里的軟件,它們最后都會在芯片組廠商提供的硬件平臺上執(zhí)行。在移動電話里,這個平臺可能是含有MIPS等微控制器 (MCU) 的基帶處理器 (BB) 或應(yīng)用協(xié)同處理器 (ACP)。由于軟件程序代碼必須針對基帶或應(yīng)用處理器的緩存器、時序和微控制器種類而特別設(shè)計,因此由最了解硬件的廠商來提供軟件自然是最合理的選擇。
圖1 手機(jī)內(nèi)的軟件
設(shè)計良好的軟件系統(tǒng)會將硬件相關(guān)的低階界面隱藏起來,不讓它們出現(xiàn)在比較依賴通用實(shí)時操作系統(tǒng)服務(wù)和應(yīng)用軟件架構(gòu)的高階接口。以典型的個人計算機(jī)應(yīng)用為例,個人計算機(jī)應(yīng)用軟件的程序設(shè)計師就不需要知道底層硬件的任何細(xì)節(jié),這些研發(fā)人員會利用操作系統(tǒng)提供的服務(wù)以及協(xié)力廠商的工具來設(shè)計應(yīng)用軟件。
在手機(jī)軟件世界里,這就像是硬件廠商會發(fā)展基本接口與上層軟件溝通,手機(jī)應(yīng)用程序設(shè)計人員則會專注于軟件應(yīng)用,完全不必考慮底層硬件。換言之,圖1就代表這種以專業(yè)知識為基礎(chǔ)的軟件設(shè)計分工方式。
盡管如此,手機(jī)軟件系統(tǒng)設(shè)計通常仍會涉及眾多廠商,因此實(shí)際情形并不會像圖1所示那么簡單明確。芯片組廠商雖然有硅芯片設(shè)計知識,卻不一定了解軟件。因此他們只會發(fā)展硅芯片,然后由不同的軟件廠商設(shè)計所需軟件以便與芯片提供的平臺驅(qū)動程序或系統(tǒng)驅(qū)動程序等外圍接口和功能溝通。這也難怪許多更具競爭力的芯片解決方案雖然提供更強(qiáng)大的集成度和效能,手機(jī)制造商在軟件考慮下總是不太愿意更換硬件平臺。
手機(jī)內(nèi)的特定軟件
針對特定芯片所設(shè)計的軟件大致可分為兩個領(lǐng)域:俗稱為協(xié)議堆棧 (protocol stack) 的通訊軟件以及直接與芯片上各種外圍接口或驅(qū)動程序溝通的軟件。
協(xié)議堆棧軟件必須支持現(xiàn)有的全部電信標(biāo)準(zhǔn)才能通過電信法規(guī)認(rèn)證。由于功能規(guī)格和時序要求都很嚴(yán)苛,這些軟件必須了解所使用的芯片組平臺細(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ī)軟件的評價指標(biāo)
成本:當(dāng)制造商談到手機(jī)的元器件用料時 (BOM),他們是指電子元器件用料 (E-BOM) 以及塑料和機(jī)械元器件等其他用料。雖然如此,只有極少數(shù)的制造商有能力計算和管理他們的軟件成本。經(jīng)驗(yàn)證明軟件成本約占普通手機(jī)成本的15%。軟件成本的另一來源是將現(xiàn)有軟件移植到新芯片平臺的前置作業(yè)費(fèi)用,這需要的工作量相當(dāng)于一位訓(xùn)練有素而昂貴的工程師工作兩年半才能把原來就有的軟件移植到新平臺。假設(shè)每位工程師的總成本是每年30萬美元,這表示每個平臺需要75萬美元的工程費(fèi)用。在今日競爭激烈的市場里,降低軟件成本有助于提高效益進(jìn)而擴(kuò)大整體獲利能力。
上市時程:目前,資源和研發(fā)時間大致會以7:3的比例分配給軟件和硬件。手機(jī)內(nèi)嵌軟件研發(fā)人員通常會用一半以上時間解決軟件和基帶硬件的低階互動問題,但這純粹是生產(chǎn)力的浪費(fèi),因?yàn)楣こ處熢究衫眠@些時間設(shè)計與整合軟件。換言之,軟件整合過程對于手機(jī)極為重要。
圖2 一種彈性良好的手機(jī)軟件架構(gòu)
品質(zhì):移動電話市場競爭極為激烈,因此任何產(chǎn)品隔離要素都非常重要。隔離主要來自于產(chǎn)品外型和使用者界面 (UI),然而手機(jī)制造商卻總是將軟件資源用于修改低階軟件以配合最新最好的芯片組,這會使得內(nèi)嵌軟件的核心變得極不穩(wěn)定;使用者雖然看不到這些重要的工作軟件,卻極度依賴它們執(zhí)行手機(jī)功能,當(dāng)它們變得問題叢生自然會導(dǎo)致手機(jī)經(jīng)常故障和客戶抱怨連連。
效能:為了在不斷縮短的產(chǎn)品開發(fā)時間內(nèi)推出更多手機(jī),內(nèi)嵌軟件工程師只有很少的時間將其軟件效能最佳化。因此他們會把時間用來試驗(yàn)手機(jī)和修補(bǔ)程序以避免宕機(jī),而不會采用良好的軟件工程流程來設(shè)計可靠的軟件。
如何解決這些問題
減少軟件整合的風(fēng)險:只要讓手機(jī)制造商盡量保持原有的軟件架構(gòu)就能做到此點(diǎn)。芯片廠商可以提供平臺驅(qū)動程序與通用接口,讓手機(jī)制造商很容易將現(xiàn)有的軟件整合于它們之上。平臺驅(qū)動程序會把硬件細(xì)節(jié)隱藏起來,同時讓工程師簡單快速而可靠地修改裝置驅(qū)動程序以支持所要使用的特定外圍。這種經(jīng)過嚴(yán)格測試和工作可靠的低階軟件平臺還能讓手機(jī)制造商專心為產(chǎn)品發(fā)展獨(dú)特不同的新功能,他們不必為了支持更新更好的基帶芯片而負(fù)擔(dān)額外的軟件維護(hù)費(fèi)用與軟件升級成本。
制造商修改軟件以配合底層硬件的工作:芯片廠商除了要提供平臺和知道硬件細(xì)節(jié)的系統(tǒng)驅(qū)動程序外,還必須提供易于使用的通用應(yīng)用程序界面給手機(jī)制造商。程序設(shè)計師為了管理這類資源爭奪要求,通常必須安排這些高數(shù)據(jù)產(chǎn)出組件存取高速數(shù)據(jù)端口的順序。針對這種爭奪硬件使用權(quán)的要求,芯片廠商可以提供適當(dāng)?shù)膽?yīng)用程序接口來執(zhí)行管理和排程功能,這將大幅減輕手機(jī)制造商軟件整合團(tuán)隊(duì)的程序設(shè)計負(fù)擔(dān)。在通訊軟件部分,手機(jī)制造商也應(yīng)能保持他們的協(xié)議堆棧原封不動,這是因?yàn)閰f(xié)議堆棧的上層會與手機(jī)應(yīng)用軟件緊密互動以提供通話控制和SIM卡管理等功能。許多手機(jī)制造商不會向基帶器件制造商購買協(xié)議堆棧,他們有些是自己擁有協(xié)議堆棧的原始程序,有些則是向協(xié)議廠商購買所使用的協(xié)議堆棧軟件。協(xié)議堆棧工程師通常會與基帶器件制造商密切合作,這是因?yàn)閰f(xié)議堆棧實(shí)體層與底層基帶功能的互動非常密切。只有芯片廠商最了解基帶器件和它們的關(guān)鍵時序 (critical timing),因此手機(jī)制造商通常很難改用現(xiàn)有協(xié)議堆棧不支持的基帶芯片;換言之,在軟件移植成本的影響下,就算最有吸引力的芯片解決方案也會變得風(fēng)險過高。
雖然如此,OSI-ISO的分層架構(gòu)仍讓協(xié)議堆棧各層之間的功能區(qū)分極為明確。實(shí)體層本身就是由兩層所組成,其中同步實(shí)體層 (SPL) 負(fù)責(zé)提供所有重要基帶時序功能,異步實(shí)體層 (APL) 則負(fù)責(zé)將協(xié)議堆棧上層傳來的訊息轉(zhuǎn)送至同步實(shí)體層。由于第一層與基帶的關(guān)系極為密切,芯片廠商可以自行發(fā)展這層軟件,再由協(xié)議堆棧廠商將協(xié)議堆棧的其余部份移植到這層軟件上。有兩種方法可以讓第一層配合特定的協(xié)議堆棧,一種方法是在異步實(shí)體層和第二層之間增加接口層,另一種方法則是將整個異步實(shí)體層視為同步實(shí)體層與第二層之間的適應(yīng)層 (adaptation layer)。采用第一種建議方法 (在異步實(shí)體層與協(xié)議堆棧其余部份之間加入接口層) 可能都不像最初所想的那么有效。第二種方法似乎較有希望,因?yàn)閰f(xié)議堆棧的多數(shù)實(shí)作都已包含異步實(shí)體層,它們不僅能重復(fù)使用,還可配合基帶器件的同步實(shí)體層。通過這種方式,協(xié)議堆棧廠商或芯片廠商就能移植現(xiàn)有的異步實(shí)體層,并讓它繼續(xù)擔(dān)任第二層和第三層與同步實(shí)體層之間的適應(yīng)層,這能讓第一層的關(guān)鍵時序要求以及協(xié)議堆棧上層與應(yīng)用軟件之間的接口維持不變。除此之外,由于同步實(shí)體層和異步實(shí)體層已成為業(yè)界標(biāo)準(zhǔn)概念,協(xié)議堆棧工程師也不需要學(xué)習(xí)任何新技術(shù)。
最后,芯片廠商還要提供世界級的支持服務(wù),讓制造商通過單一窗口就能解決所有的系統(tǒng)問題。
圖3 通用鏈接庫提供最高質(zhì)量
在各種環(huán)境中測試:芯片廠商只要提供通用標(biāo)準(zhǔn)實(shí)體層 (generic SPL) 和平臺驅(qū)動程序界面就能同時與多家手機(jī)制造商合作,這些制造商很容易就將他們的軟件移植到這個通用低階軟件平臺。由于多家制造商采用同樣的平臺和系統(tǒng)驅(qū)動程序以及標(biāo)準(zhǔn)實(shí)體層,這些核心軟件模塊就能在各式各樣的環(huán)境和平臺上搭配不同的實(shí)時操作系統(tǒng)、外圍、內(nèi)存、軟件架構(gòu)、音訊和視訊編碼器和應(yīng)用軟件一起接受測試。芯片相關(guān)軟件模塊因此會受到最廣泛深入的檢驗(yàn),確保最后完成的軟件擁有最高質(zhì)量。
擁有最佳化專家
這種獨(dú)特而有彈性的手機(jī)軟件架構(gòu)可以提供最完整的測試,它會考驗(yàn)芯片廠商所發(fā)展的低階軟件模塊的每個層面。這能讓手機(jī)制造商確信這些軟件已由一支經(jīng)驗(yàn)豐富和最了解硬件的專業(yè)軟件團(tuán)隊(duì)將它們調(diào)整至最佳狀態(tài)。
結(jié)語
手機(jī)軟件領(lǐng)域極為復(fù)雜,各個層面之間的互動非常密切,這使得成本、上市時程、質(zhì)量和效能成為非常重要的評比指標(biāo)。芯片廠商若能承擔(dān)低階軟件接口的研發(fā)責(zé)任,就可大幅減少利用新手機(jī)平臺開發(fā)產(chǎn)品的風(fēng)險,手機(jī)制造商也能專注于使用者界面和應(yīng)用軟件等產(chǎn)品隔離功能。芯片廠商對于他們所參與的技術(shù)領(lǐng)域必須有更全面的看法,提供給手機(jī)制造商的產(chǎn)品也不應(yīng)局限于硬件解決方案。手機(jī)制造商不應(yīng)只是為了避免軟件轉(zhuǎn)換風(fēng)險而被迫采用次佳芯片組,他們希望芯片平臺能夠提供最高的整合度和效能,同時又有足夠彈性讓他們保留現(xiàn)有的可靠軟件。在競爭激烈的手機(jī)市場上,一套低成本而不影響質(zhì)量、效能或上市時程的全方位解決方案正是手機(jī)制造商的最佳選擇!
評論