滿足多媒體需求,便攜電子風(fēng)行多處理器架構(gòu)
隨著多媒體應(yīng)用要求越來越高,在小小的行動(dòng)裝置內(nèi),除了要有即時(shí)動(dòng)態(tài)影音呈現(xiàn),又必須處理大量圖型化操作介面效果,若是重度游戲需求,3D與觸控和聲光效果又是少不了的系統(tǒng)處理負(fù)荷,嵌入式處理器單純提升時(shí)脈的效能改善幅度有限,透過多處理器紓解系統(tǒng)應(yīng)用的效能瓶頸,已刻不容緩...
以行動(dòng)電話應(yīng)用為例,以往僅限于簡(jiǎn)單的撥號(hào)、簡(jiǎn)訊檢視和MP3音訊處理,在智慧型手機(jī)、功能性手機(jī)不斷強(qiáng)調(diào)多媒體應(yīng)用的趨勢(shì)下,現(xiàn)有的嵌入式處理器在面對(duì)這些龐大的多媒體運(yùn)算,已略顯力不從心之感,雖然大多能順利完成相關(guān)任務(wù),但對(duì)于影音同步與觸控即時(shí)反應(yīng)的應(yīng)用需求,已直接影響行動(dòng)裝置的使用感受,尤其是大量視覺化圖型介面,系統(tǒng)運(yùn)行的效能將直接影響觸控操作的應(yīng)用體驗(yàn)。
對(duì)稱式多處理器架構(gòu) 目前業(yè)界主流
在PC應(yīng)用端,消費(fèi)者已能確實(shí)體驗(yàn)到多核心處理器,帶來的明顯效能提升,不管是雙核、三核還是四核以上的高階應(yīng)用市場(chǎng),具體的操作感受可以從核心數(shù)量得到最直接的驗(yàn)證,但反觀行動(dòng)電話市場(chǎng)的對(duì)稱式處理器架構(gòu),卻未見此類趨勢(shì)發(fā)展,多半僅朝向針對(duì)單一處理器改善架構(gòu)、提升快取記憶體或提高運(yùn)作時(shí)脈等效能提升手法,對(duì)于多核與對(duì)稱多重處理器的效能改善手段,則較少著墨。
觀察目前的行動(dòng)電話應(yīng)用,多半已與桌上型電腦應(yīng)用無異,例如,手機(jī)持有者會(huì)透過行動(dòng)電話處理電子郵件、看圖片、編輯文件、瀏覽網(wǎng)站甚至玩電玩等多元應(yīng)用,針對(duì)通訊的3G/3.5G行動(dòng)上網(wǎng)或是GPS定位導(dǎo)航,絢麗的介面互動(dòng)設(shè)計(jì),甚至是3D整合的動(dòng)態(tài)介面,樣樣都考驗(yàn)行動(dòng)電話的運(yùn)算處理能力。
即便延用現(xiàn)有的循序處理邏輯,加快每組資料的處理效率,一方面可能單一處理器的處理負(fù)荷大幅拉升,將造成處理器所消耗的能量,在行動(dòng)電話的各個(gè)零組件來說過于集中,造成高溫、耗能與主/被動(dòng)散熱成本的額外負(fù)擔(dān),若參考桌上型電腦的處理器發(fā)展軌跡,將原本集中的運(yùn)算資源分散到多處理器、多資料流進(jìn)行處理,一方面可以降低核心處理器的效能負(fù)擔(dān),也可分散核心所產(chǎn)生的高熱,周邊的配套設(shè)置成本將因此增加。
手機(jī)的多線程處理架構(gòu)新挑戰(zhàn)
對(duì)于建構(gòu)系統(tǒng)而言,多線程的設(shè)計(jì)其實(shí)并不容易開發(fā),雖然在PC或Server主機(jī)的多線程系統(tǒng),已發(fā)展有一段時(shí)間,但畢竟行動(dòng)電話屬于運(yùn)算資源相對(duì)較少的微型運(yùn)算環(huán)境,例如處理器僅至256~512MB,RTOS系統(tǒng)的容量也相對(duì)較小,即便是開放性系統(tǒng)的Android或Windows Mobile等行動(dòng)電話系統(tǒng),其系統(tǒng)環(huán)境也相對(duì)迷你。
針對(duì)PC或伺服器環(huán)境開發(fā)的多線程技術(shù),并無法完全轉(zhuǎn)移到行動(dòng)裝置應(yīng)用,因?yàn)槭謾C(jī)并非資源無限的裝置,光是「電力」就是亟需克服解決的限制。另一方面,即時(shí)回應(yīng)在一般伺服主機(jī)的多線程應(yīng)用方面,并非絕對(duì)要求,而行動(dòng)電話平臺(tái),卻多半要求必須能處理開啟電源就能隨即使用的需求,研發(fā)概念與基礎(chǔ)南轅北轍。
以功耗的處理態(tài)度而言,行動(dòng)電話所應(yīng)用的嵌入式處理器,在于可用API的部份,就必須提供更多、更細(xì)緻的電源管理控制功能,例如針對(duì)嵌入式晶片或處理器進(jìn)行進(jìn)階電源控制,對(duì)于臨時(shí)需要針對(duì)多媒體運(yùn)算採(cǎi)取全速運(yùn)行的需求時(shí),又能即時(shí)喚醒系統(tǒng),進(jìn)行箱端應(yīng)用處理,而一般多線程設(shè)計(jì)系統(tǒng)在處理器喚醒步驟較多、耗時(shí)較久,也是導(dǎo)入行動(dòng)電話系統(tǒng)后,首要進(jìn)行改善的重點(diǎn)。
而程序轉(zhuǎn)換過程中,免不了造成的開關(guān)功耗,以往在PC或是伺服器平臺(tái)并不是什麼重要的問題,因?yàn)殡娫醋允须娫丛床唤^供應(yīng),問題的重要性不高,相對(duì)在行動(dòng)電話平臺(tái),幾mW的功耗就是重要的課題了,而在頻繁的程式轉(zhuǎn)換或是反覆睡眠、喚醒,可能花在轉(zhuǎn)換系統(tǒng)模式的耗能,就快佔(zhàn)去系統(tǒng)可用的電力了!這部份尤其在需要面對(duì)節(jié)能所需的如降頻、負(fù)載運(yùn)算平衡與即時(shí)效能運(yùn)算等需求間,取得設(shè)計(jì)平衡點(diǎn)。
兼具效能、節(jié)能要求的異質(zhì)核心設(shè)計(jì)
相對(duì)的,若要達(dá)到多線程的最佳化設(shè)計(jì),其實(shí)多重處理器的系統(tǒng)架構(gòu)將是一大關(guān)鍵。多重處理器的實(shí)踐方式,有分同質(zhì)多核心(homogenous multi-core)與異質(zhì)多核心(heterogeneous multi-core)兩類,同質(zhì)多核心是將數(shù)個(gè)相同的核心整合到單一晶片中,而異質(zhì)多核心則是將不同設(shè)計(jì)的核心整合在單一晶片裡,理論上,兩種設(shè)置架構(gòu),都不影響其功能,但在表現(xiàn)特性上卻有顯著的差異。
以同質(zhì)多核心為例,若因多線程處理出問題,可以關(guān)閉部分核心,讓單一核心繼續(xù)完成工作任務(wù),但若是異質(zhì)核心,則是將不同工作負(fù)荷分散到各重點(diǎn)核心進(jìn)行處理,因?yàn)樵摵诵臑獒槍?duì)該項(xiàng)特殊任務(wù)的最佳化架構(gòu),在處理效能、功耗將會(huì)達(dá)到最佳化表現(xiàn),異質(zhì)核心的代表就如同德州儀器的OMAP,OMAP為通用處理器 (General-Purpose Preprocessor:GPP)、數(shù)位訊號(hào)處理器(Digital signal processing:DSP)與幾個(gè)多媒體加速器架構(gòu)而成,另還有搭配特殊目的的處理核心、加密運(yùn)算的處理核心不同架構(gòu)設(shè)計(jì)。
但若從效率角度檢視,異質(zhì)核心處理器相較PC或伺服器應(yīng)用而言,更適合用于運(yùn)算資源相對(duì)較少的行動(dòng)裝置平臺(tái),例如,針對(duì)加密需求所設(shè)置的核心,或是針對(duì)特殊數(shù)位信號(hào)處理的核心,其若採(cǎi)取一般運(yùn)算用途的核心完成運(yùn)算,所耗費(fèi)的時(shí)間將是DSP或HSP的10~20倍,而這類特定用途的核心,隨時(shí)沒有使用都可以指定關(guān)閉其功能,節(jié)省整體晶片的功耗。
多數(shù)高階設(shè)計(jì)中,為了提升GPP的運(yùn)算效能,導(dǎo)入多核心設(shè)計(jì)是熱門的選項(xiàng),例如,以雙處理器SMP再搭配ARM處理器的協(xié)同運(yùn)作方式,對(duì)于智慧型手機(jī)的一般運(yùn)算而言其效能提升會(huì)是相當(dāng)明顯的效果,當(dāng)使用者多媒體運(yùn)算需求較高,可同時(shí)用雙處理器全速運(yùn)行,若需求僅為一般應(yīng)用,則可減少一個(gè)核心,採(cǎi)單核心運(yùn)作,而ARM的角色則為控制核心工作分配與喚醒核心、關(guān)閉核心的進(jìn)階任務(wù)仲裁角色。
異質(zhì)多核心的架構(gòu)設(shè)計(jì)挑戰(zhàn)
多核心系統(tǒng)程式必須直接面對(duì)許多難解議題,例如包括演算任務(wù)、處理資源管理、通訊服務(wù)、資料同步...等,多核心所架構(gòu)的嵌入式系統(tǒng)可能已經(jīng)不能再僅以單一作業(yè)系統(tǒng)來進(jìn)行系統(tǒng)架構(gòu),可能必須有一個(gè)以上的系統(tǒng)針對(duì)專精領(lǐng)域協(xié)同運(yùn)作,為系統(tǒng)提供上述的多項(xiàng)運(yùn)算服務(wù)。而異質(zhì)多核心系統(tǒng),在多組核心的運(yùn)用,也會(huì)用到RTOS的多作業(yè)系統(tǒng)資源,此狀況就會(huì)產(chǎn)生無法由單組作業(yè)系統(tǒng)管理嵌入式裝置的相關(guān)資源,這個(gè)狀況尤其會(huì)在運(yùn)用如DSP之類的專用處理核心后,態(tài)勢(shì)進(jìn)一步惡化!因?yàn)樵诋愘|(zhì)核心架構(gòu)中,DSP這類硬體加速器不會(huì)去執(zhí)行任何樣式的作業(yè)系統(tǒng),卻又得與各個(gè)不同核心的多作業(yè)系統(tǒng)處理程序交互應(yīng)用,運(yùn)算與協(xié)同複雜度將大幅提升。
常見的開發(fā)模式,可以建構(gòu)針對(duì)叢集內(nèi)運(yùn)算、除錯(cuò)、資源、通訊、等不同目的的溝通標(biāo)準(zhǔn),如叢集內(nèi)通訊而制訂的通訊(TIPC)、多核心除錯(cuò)機(jī)制、資源管理應(yīng)用程式介面(RAPI)、通訊應(yīng)用程式介面(CAPI)。RAPI的應(yīng)用目標(biāo)是為針對(duì)多線程運(yùn)算資源的管理與同步,提供標(biāo)準(zhǔn)化API介面。CAPI則是一個(gè)API規(guī)格,目的在處理嵌入式系統(tǒng)的訊息傳遞與同步需求。此外,多核心的系統(tǒng)平臺(tái),除運(yùn)算效能的增加與功耗問題的相關(guān)挑戰(zhàn)外,其實(shí)多核心系統(tǒng)設(shè)計(jì)人員所面臨挑戰(zhàn)還有如何分割程式碼等問題要解決,并非換了硬體整體設(shè)計(jì)就全面提升。