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