滿足多媒體應用需求 行動裝置多處理器整合趨勢 智慧應用 影音
Microchip
DTechforum

滿足多媒體應用需求 行動裝置多處理器整合趨勢

  • DIGITIMES企劃

筆記型電腦、行動裝置採多核心架構處理器已是不可擋的趨勢AMD
筆記型電腦、行動裝置採多核心架構處理器已是不可擋的趨勢AMD

言:隨著多媒體應用要求越來越高,在小小的行動裝置內,除了要有即時動態影音呈現,又必須處理大量圖型化操作介面效果,若是重度遊戲需求,3D與觸控和聲光效果又是少不了的系統處理負荷,嵌入式處理器單純提升時脈的效能改善幅度有限,透過多處理器紓解系統應用的效能瓶頸,已刻不容緩...

本文:
以行動電話應用為例,以往僅限於簡單的撥號、簡訊檢視和MP3音訊處理,在智慧型手機、功能性手機不斷強調多媒體應用的趨勢下,現有的嵌入式處理器在面對這些龐大的多媒體運算,已略顯力不從心之感,雖然大多能順利完成相關任務,但對於影音同步與觸控即時反應的應用需求,已直接影響行動裝置的使用感受,尤其是大量視覺化圖型介面,系統運行的效能將直接影響觸控操作的應用體驗。

ARM Cortex-A9多核心處理架構ARM

ARM Cortex-A9多核心處理架構ARM

對稱式多處理器架構 目前業界主流

在PC應用端,消費者已能確實體驗到多核心處理器,帶來的明顯效能提升,不管是雙核、三核還是四核以上的高階應用市場,具體的操作感受可以從核心數量得到最直接的驗證,但反觀行動電話市場的對稱式處理器架構,卻未見此類趨勢發展,多半僅朝向針對單一處理器改善架構、提升快取記憶體或提高運作時脈等效能提升手法,對於多核與對稱多重處理器的效能改善手段,則較少著墨。

觀察目前的行動電話應用,多半已與桌上型電腦應用無異,例如,手機持有者會透過行動電話處理電子郵件、看圖片、編輯文件、瀏覽網站甚至玩電玩等多元應用,針對通訊的3G/3.5G行動上網或是GPS定位導航,絢麗的介面互動設計,甚至是3D整合的動態介面,樣樣都考驗行動電話的運算處理能力。

即便延用現有的循序處理邏輯,加快每組資料的處理效率,一方面可能單一處理器的處理負荷大幅拉升,將造成處理器所消耗的能量,在行動電話的各個零組件來說過於集中,造成高溫、耗能與主/被動散熱成本的額外負擔,若參考桌上型電腦的處理器發展軌跡,將原本集中的運算資源分散到多處理器、多資料流進行處理,一方面可以降低核心處理器的效能負擔,也可分散核心所產生的高熱,周邊的配套設置成本將因此增加。

手機的多線程處理架構新挑戰

對於建構系統而言,多線程的設計其實並不容易開發,雖然在PC或Server主機的多線程系統,已發展有一段時間,但畢竟行動電話屬於運算資源相對較少的微型運算環境,例如處理器僅至256~512MB,RTOS系統的容量也相對較小,即便是開放性系統的Android或Windows Mobile等行動電話系統,其系統環境也相對迷你。

針對PC或伺服器環境開發的多線程技術,並無法完全轉移到行動裝置應用,因為手機並非資源無限的裝置,光是「電力」就是亟需克服解決的限制。另一方面,即時回應在一般伺服主機的多線程應用方面,並非絕對要求,而行動電話平台,卻多半要求必須能處理開啟電源就能隨即使用的需求,研發概念與基礎南轅北轍。

以功耗的處理態度而言,行動電話所應用的嵌入式處理器,在於可用API的部份,就必須提供更多、更細緻的電源管理控制功能,例如針對嵌入式晶片或處理器進行進階電源控制,對於臨時需要針對多媒體運算採取全速運行的需求時,又能即時喚醒系統,進行箱端應用處理,而一般多線程設計系統在處理器喚醒步驟較多、耗時較久,也是導入行動電話系統後,首要進行改善的重點。

而程序轉換過程中,免不了造成的開關功耗,以往在PC或是伺服器平台並不是什麼重要的問題,因為電源自市電源源不絕供應,問題的重要性不高,相對在行動電話平台,幾mW的功耗就是重要的課題了,而在頻繁的程式轉換或是反覆睡眠、喚醒,可能花在轉換系統模式的耗能,就快佔去系統可用的電力了!這部份尤其在需要面對節能所需的如降頻、負載運算平衡與即時效能運算等需求間,取得設計平衡點。

兼具效能、節能要求的異質核心設計

相對的,若要達到多線程的最佳化設計,其實多重處理器的系統架構將是一大關鍵。多重處理器的實踐方式,有分同質多核心(homogenous multi-core)與異質多核心(heterogeneous multi-core)兩類,同質多核心是將數個相同的核心整合到單一晶片中,而異質多核心則是將不同設計的核心整合在單一晶片裡,理論上,兩種設置架構,都不影響其功能,但在表現特性上卻有顯著的差異。

以同質多核心為例,若因多線程處理出問題,可以關閉部分核心,讓單一核心繼續完成工作任務,但若是異質核心,則是將不同工作負荷分散到各重點核心進行處理,因為該核心為針對該項特殊任務的最佳化架構,在處理效能、功耗將會達到最佳化表現,異質核心的代表就如同德州儀器的OMAP,OMAP為通用處理器(General-Purpose Preprocessor:GPP)、數位訊號處理器(Digital signal processing:DSP)與幾個多媒體加速器架構而成,另還有搭配特殊目的的處理核心、加密運算的處理核心不同架構設計。

但若從效率角度檢視,異質核心處理器相較PC或伺服器應用而言,更適合用於運算資源相對較少的行動裝置平台,例如,針對加密需求所設置的核心,或是針對特殊數位信號處理的核心,其若採取一般運算用途的核心完成運算,所耗費的時間將是DSP或HSP的10~20倍,而這類特定用途的核心,隨時沒有使用都可以指定關閉其功能,節省整體晶片的功耗。

多數高階設計中,為了提升GPP的運算效能,導入多核心設計是熱門的選項,例如,以雙處理器SMP再搭配ARM處理器的協同運作方式,對於智慧型手機的一般運算而言其效能提升會是相當明顯的效果,當使用者多媒體運算需求較高,可同時用雙處理器全速運行,若需求僅為一般應用,則可減少一個核心,採單核心運作,而ARM的角色則為控制核心工作分配與喚醒核心、關閉核心的進階任務仲裁角色。

異質多核心的架構設計挑戰 

多核心系統程式必須直接面對許多難解議題,例如包括演算任務、處理資源管理、通訊服務、資料同步...等,多核心所架構的嵌入式系統可能已經不能再僅以單一作業系統來進行系統架構,可能必須有一個以上的系統針對專精領域協同運作,為系統提供上述的多項運算服務。而異質多核心系統,在多組核心的運用,也會用到RTOS的多作業系統資源,此狀況就會產生無法由單組作業系統管理嵌入式裝置的相關資源,這個狀況尤其會在運用如DSP之類的專用處理核心後,態勢進一步惡化!因為在異質核心架構中,DSP這類硬體加速器不會去執行任何樣式的作業系統,卻又得與各個不同核心的多作業系統處理程序交互應用,運算與協同複雜度將大幅提升。

常見的開發模式,可以建構針對叢集內運算、除錯、資源、通訊、等不同目的的溝通標準,如叢集內通訊而制訂的通訊(TIPC)、
多核心除錯機制、資源管理應用程式介面(RAPI)、通訊應用程式介面(CAPI)。RAPI的應用目標是為針對多線程運算資源的管理與同步,提供標準化API介面。CAPI則是一個API規格,目的在處理嵌入式系統的訊息傳遞與同步需求。此外,多核心的系統平台,除運算效能的增加與功耗問題的相關挑戰外,其實多核心系統設計人員所面臨挑戰還有如何分割程式碼等問題要解決,並非換了硬體整體設計就全面提升。

議題精選-Android專區