如何降低手機軟體的更換成本
本文作者:admin
點擊:
2006-03-07 00:00
前言:
軟體:它是行動電話能否在市場成功的關鍵要素。它決定了手機是「熱門產品」還是「平凡無味」。它是使用者最先接觸到的功能。它是我們愛恨手機的主要原因。
軟體堪稱行動電話最重要的組件,手機系統工程師只要想到此點就不寒而慄,因為軟體很容易發生問題、成本經常超出預期、而且總是要到手機量產前才能完成。本文將深入說明軟體為何仍是系統開發人員的主要考量,以及為何採用一種符合常識的設計方法和架構可以大幅減少這些風險。
手機內的各種軟體
定義:
晶片組廠商:提供無線通訊元件和晶片讓軟體在上面執行的半導體廠商。
週邊廠商:液晶螢幕、相機模組和調頻廣播接收器等組件的製造商。
協定堆疊 (Protocol Stack) 供應商:通訊軟體供應商,這些軟體負責控制手機與行動電話網路基礎設施之間的所有互動。
手機製造商:行動電話製造商,像是三星、諾基亞、摩托羅拉、新力-易利信或LG等。
協力廠商 (third parties):即時作業系統、MP3解碼器或文字辨識等中間軟體廠商。
系統整合廠商:手機製造商為降低成本,有時會將公司內部資源用於先進技術,而將較舊的技術外包給系統整合廠商。
手機裡的各種軟體,它們最後都會在晶片組廠商提供的硬體平台上執行。在行動電話裡,這個平台可能是含有MIPS等微控制器 (MCU) 的基頻處理器 (BB) 或應用協同處理器 (ACP)。由於軟體程式碼必須針對基頻或應用處理器的暫存器、時序和微控制器種類而特別設計,因此由最瞭解硬體的廠商來提供軟體自然是最合理的選擇。
設計良好的軟體系統會將硬體相關的低階界面隱藏起來,不讓它們出現在比較依賴通用即時作業系統服務和應用軟體架構的高階界面。以典型的個人電腦應用為例,個人電腦應用軟體的程式設計師就不需要知道底層硬體的任何細節,這些研發人員會利用作業系統提供的服務以及協力廠商的工具來設計應用軟體。
在手機軟體世界裡,這就像是硬體廠商會發展基本界面與上層軟體溝通,手機應用程式設計人員則會專注於軟體應用,完全不必考慮底層硬體。換言之,圖1就代表這種以專業知識為基礎的軟體設計分工方式。
儘管如此,手機軟體系統設計通常仍會涉及眾多廠商,因此實際情形並不會像圖1所示那麼簡單明確。晶片組廠商雖然有矽晶片設計知識,卻不一定瞭解軟體。因此他們只會發展矽晶片,然後由不同的軟體廠商設計所需軟體以便與晶片提供的平台驅動程式或系統驅動程式等週邊界面和功能溝通。這也難怪許多更具競爭力的晶片解決方案雖然提供更強大的整合度和效能,手機製造商在軟體考量下總是不太願意更換硬體平台。
手機內含的各種軟體
針對特定晶片所設計的軟體大致可分為兩個領域:(1) 俗稱為協定堆疊 (protocol stack) 的通訊軟體,以及 (2) 直接與晶片上各種週邊界面或驅動程式溝通的軟體。
協定堆疊軟體必須支援現有的全部電信標準才能通過電信法規認證。由於功能規格和時序要求都很嚴苛,這些軟體必須瞭解所使用的晶片組平台細節。幸運的是,協定堆疊完全符合OSI-ISO (Open Systems Interconnect-International Standards Organization) 架構要求。該架構要求通訊軟體的發展必須採用分層架構,而且每層都要有一定程度的功能區隔。多數協定堆疊是由OSI模型的第一、二和三層組成 (L1、L2和L3),其中只有俗稱為實體層的第一層才需要瞭解底層硬體細節。協定堆疊的其餘部份都與硬體無關,它們透過通用界面向下與特定硬體的第一層溝通,向上則與應用架構溝通。
雖然I2C、SSI和UART等各種週邊界面的應用相當廣泛,不同硬體平台之間仍然存在著細微差異。因此手機製造商每次更換不同晶片組時,都要花許多工夫把現有程式碼移植到軟體工程師不想去瞭解細節的低階硬體界面。
手機軟體的重要評比指標
介紹了手機軟體環境和手機系統工程師每天都會遇到的各種軟體整合問題後,我們接著將討論一些重要的評比指標,同時說明我們所推薦的智慧型架構如何解決這些問題。下列這些問題對所有手機製造商和最終使用者都同樣重要,也是他們都關心的問題。
成本:當製造商談到手機的零件用料時 (BOM),他們是指電子零件用料 (E-BOM) 以及塑膠和機械零件等其它用料。雖然如此,只有極少數的製造商有能力計算和管理他們的軟體成本。經驗證明軟體成本約佔普通手機成本的15%。軟體成本的另一來源是將現有軟體移植到新晶片平台的前置作業費用,這大約需要30個人力月的工作量,相當於一位訓練有素而昂貴的工程師工作兩年半才能把原來就有的軟體移植到新平台。假設每位工程師的總成本是每年30萬美元,這表示每個平台需要75萬美元的工程費用。在今日競爭激烈的市場裡,降低軟體成本有助於提高效益進而擴大整體獲利能力。
上市時程:今天,資源和研發時間大致會以7:3的比例分配給軟體和硬體。手機內嵌軟體研發人員通常會用一半以上時間解決軟體和基頻硬體的低階互動問題,但這純粹是生產力的浪費,因為工程師原本可利用這些時間設計與整合軟體。換言之,我們從此即可看出軟體整合過程對於手機極為重要。
品質:行動電話市場競爭極為激烈,因此任何產品區隔要素都非常重要。區隔主要來自於產品外型和使用者界面 (UI),然而手機製造商卻總是將軟體資源用於修改低階軟體以配合最新最好的晶片組,這會使得內嵌軟體的核心變得極不穩定;使用者雖然看不到這些重要的工作軟體,卻極度依賴它們執行手機功能,當它們變得問題叢生自然會導致手機經常故障和客戶抱怨連連。
效能:為了在不斷縮短的產品開發時間內推出更多手機,內嵌軟體工程師只有很少的時間將其軟體效能最佳化。因此他們會把時間用來試驗手機和修補程式以避免當機,而不會採用良好的軟體工程流程來設計可靠的軟體。
那麼工程師應如何著手解決這些問題?
減少軟體整合的風險
只要讓手機製造商盡量保持原有的軟體架構就能做到此點。晶片廠商可以提供平台驅動程式與通用界面,讓手機製造商很容易將現有的軟體整合於它們之上。平台驅動程式會把硬體細節隱藏起來,同時讓工程師簡單快速而可靠地修改裝置驅動程式以支援所要使用的特定週邊。這種經過嚴格測試和工作可靠的低階軟體平台還能讓手機製造商專心為產品發展獨特不同的新功能,他們不必為了支援更新更好的基頻晶片而負擔額外的軟體維護費用與軟體升級成本。
讓手機製造商修改軟體以配合底層硬體的工作越簡單越好
晶片廠商除了要提供平台和知道硬體細節的系統驅動程式外,還必須提供易於使用的通用應用程式界面給手機製造商。舉例來說,相機的預覽功能經常會要求基頻元件的高速連接埠同時支援相機和螢幕,這是為了將相機所拍攝的資料傳送到晶片給軟體處理,再將處理結果傳送至螢幕顯示。程式設計師為了管理這類資源爭奪要求,通常必須安排這些高資料產出元件存取高速資料埠的順序。針對這種爭奪硬體使用權的要求,晶片廠商可以提供適當的應用程式界面來執行管理和排程功能,這將大幅減輕手機製造商軟體整合團隊的程式設計負擔。
在通訊軟體部份,手機製造商也應能保持他們的協定堆疊原封不動,這是因為協定堆疊的上層會與手機應用軟體緊密互動以提供通話控制和SIM卡管理等功能。許多手機製造商不會向基頻元件製造商購買協定堆疊,他們有些是自己擁有協定堆疊的原始程式,有些則是向協力廠商購買所使用的協定堆疊軟體。協定堆疊工程師通常會與基頻元件製造商密切合作,這是因為協定堆疊實體層與底層基頻功能的互動非常密切。如前所述,只有晶片廠商最瞭解基頻元件和它們的關鍵時序 (critical timing),因此手機製造商通常很難改用現有協定堆疊不支援的基頻晶片;換言之,在軟體移植成本的影響下,就算最有吸引力的晶片解決方案也會變得風險過高。
雖然如此,OSI-ISO的分層架構仍讓協定堆疊各層之間的功能區隔極為明確。實體層本身就是由兩層所組成,其中同步實體層 (SPL) 負責提供所有重要基頻時序功能,非同步實體層 (APL) 則負責將協定堆疊上層傳來的訊息轉送至同步實體層。由於第一層與基頻的關係極為密切,晶片廠商可以自行發展這層軟體,再由協定堆疊廠商將協定堆疊的其餘部份移植到這層軟體上。有兩種方法可以讓第一層配合特定的協定堆疊,一種方法是在非同步實體層和第二層之間增加界面層,另一種方法則是將整個非同步實體層視為同步實體層與第二層之間的適應層 (adaptation layer)。一般而言,第三層與第一層的功能切割並不一定明確,有些協定堆疊會將某些功能實作於第三層,有些則由第一層提供這些功能。因此無論就技術或時間層面而言,採用第一種建議方法 (在非同步實體層與協定堆疊其餘部份之間加入界面層) 可能都不像最初所想的那麼有效。第二種方法似乎較有希望,因為協定堆疊的多數實作都已包含非同步實體層,它們不僅能重複使用,還可配合基頻元件的同步實體層。透過這種方式,協定堆疊廠商或晶片廠商就能移植現有的非同步實體層,並讓它繼續擔任第二層和第三層與同步實體層之間的適應層,這能讓第一層的關鍵時序要求以及協定堆疊上層與應用軟體之間的界面維持不變。除此之外,由於同步實體層和非同步實體層已成為業界標準概念,協定堆疊工程師也不需要學習任何新技術。
最後,晶片廠商還要提供世界水準的支援服務,讓製造商透過單一窗口就能解決所有的系統問題。
在各種環境中測試
晶片廠商只要提供通用標準實體層 (generic SPL) 和平台驅動程式界面就能同時與多家手機製造商合作,這些製造商很容易就將他們的軟體移植到這個通用低階軟體平台。由於多家製造商採用同樣的平台和系統驅動程式以及標準實體層,這些核心軟體模組就能在各式各樣的環境和平台上搭配不同的即時作業系統、週邊、記憶體、軟體架構、音訊和視訊編碼器和應用軟體一起接受測試。晶片相關軟體模組因此會受到最廣泛深入的檢驗,確保最後完成的軟體擁有最高品質。
擁有最佳化專家
這種獨特而有彈性的手機軟體架構可以提供最完整的測試,它會考驗晶片廠商所發展的低階軟體模組的每個層面。這能讓手機製造商確信這些軟體已由一支經驗豐富和最瞭解硬體的專業軟體團隊將它們調整至最佳狀態。
結語
手機軟體領域極為複雜,各個層面之間的互動非常密切,這使得成本、上市時程、品質和效能成為非常重要的評比指標。晶片廠商若能承擔低階軟體界面的發展責任,即可大幅減少利用新手機平台開發產品的風險,手機製造商也能專注於使用者界面和應用軟體等產品區隔功能。晶片廠商對於他們所參與的技術領域必須有更全面的看法,提供給手機製造商的產品也不應侷限於硬體解決方案。手機製造商不應只是為了避免軟體轉換風險而被迫採用次佳晶片組,他們希望晶片平台能夠提供最高的整合度和效能,同時又有足夠彈性讓他們保留現有的可靠軟體。在競爭激烈的手機市場上,一套低成本而不影響品質、效能或上市時程的全方位解決方案正是手機製造商的最佳選擇!(本文由Silicon Labs提供)