iPhone和H.264編碼器:兩個(gè)結(jié)構(gòu)體上的路標(biāo)
最近有兩個(gè)產(chǎn)品的發(fā)布標(biāo)志著關(guān)于SoC結(jié)構(gòu)的考慮來到一個(gè)交叉點(diǎn)。iPhone,站在長久以來以硬件模塊為導(dǎo)向的傳統(tǒng)設(shè)計(jì)的盡頭,開始遠(yuǎn)離過去;而來自Mobilygen公司的H.264高質(zhì)量類(High Profile)編解碼器芯片,源自不同的傳統(tǒng)觀點(diǎn)也有可能會(huì)走向一個(gè)不同的終點(diǎn)。某種程度上講,這兩個(gè)路標(biāo)不僅代表著它們?cè)诮Y(jié)構(gòu)上的不同傳承,也代表著它們公司的演化方向。
首先看一下萬眾矚目的iPhone。由于蘋果公司想要保持些神秘感,因此iPhone只有部分的內(nèi)部細(xì)節(jié)已經(jīng)確定。據(jù)報(bào)道iPhone的核心是來自三星公司的SoC,由一顆ARM-11外加一系列的硬件模塊來處理手持設(shè)備的主要功能:語音和視頻的回放;基于手勢(shì)接口的高動(dòng)態(tài)觸摸屏顯示,一個(gè)類似的動(dòng)態(tài)圖形用戶接口;一個(gè)2百萬像素的相機(jī)和一個(gè)WiFi接口。
再來看一下Mobilygen公司的EnViE視頻編解碼器。它的大部分功能模塊都是獨(dú)立的,每一個(gè)都有它們自己的本地內(nèi)存和ARM處理器;例如(雖然不是很確定)計(jì)算模塊部分涉及到的基帶處理器會(huì)是一個(gè)中等規(guī)模的ARM-11外帶DSP擴(kuò)展,WiFi模塊需要一個(gè)ARM-9級(jí)別的核以及一些硬件協(xié)加速器,具有低運(yùn)算負(fù)荷的功能,例如音頻、藍(lán)牙和系統(tǒng)控制模塊都有自己的ARM-7核。
這些處理器中只有應(yīng)用處理器是多功能的,它需要運(yùn)行用戶接口代碼,與加速器一起處理圖形,為相機(jī)模組做圖像處理以及在空閑時(shí)間執(zhí)行應(yīng)用軟件。當(dāng)設(shè)計(jì)資源緊張時(shí),這種結(jié)構(gòu)甚至?xí)獞?yīng)用處理器來做像素級(jí)的信號(hào)處理,而這個(gè)工作通常是由專用圖像信號(hào)處理核來完成的。但是這種低成本的技巧會(huì)影響相機(jī)的相應(yīng)時(shí)間和幀速率,而且只會(huì)在低分辨率時(shí)有效。
這種由獨(dú)立模塊來組建SoC的方法有很多的優(yōu)點(diǎn)。比如,它可以讓系統(tǒng)集成工程師通過來自外部的授權(quán)模塊完成設(shè)計(jì),而不用找很多高手自己開發(fā)。對(duì)于這種組合設(shè)備例如iPhone,以及相對(duì)比較輕技術(shù)的OEM比如蘋果,這具有很顯著的優(yōu)點(diǎn)。對(duì)于有緊湊周期的項(xiàng)目它同樣有明顯的優(yōu)勢(shì),比如iPhone在用三星取代PortalPlayer作為SoC供應(yīng)商時(shí)面臨的時(shí)間問題。
這個(gè)優(yōu)勢(shì)的一個(gè)很大部分在于功能模塊的獨(dú)立大大簡化了系統(tǒng)級(jí)的建模。除了共享資源例如DRAM,不必再去考慮并給用戶場(chǎng)景的最壞情況建模。
另外,通過提前定義用戶場(chǎng)景,可以在大部分的時(shí)間內(nèi)要SoC的大部分不僅處于空閑甚至休眠的狀態(tài)。因?yàn)閕Phone本質(zhì)上是個(gè)封閉的系統(tǒng),所以蘋果在電源管理上有很大的優(yōu)勢(shì)。比起采用通用可編程器件,他們可以實(shí)現(xiàn)更高的電源效率。
作為對(duì)比,來看最近發(fā)布的EnViE,來自Mobilygen公司的H.264視頻編解碼芯片SoC。從某種程度上講,iPhone系統(tǒng)芯片和Molilygen CoDec芯片在系統(tǒng)框圖上有著顯示的相似點(diǎn)-由不同用戶接口圍繞的神秘核芯片,精心設(shè)計(jì)的外部DRAM通道。同樣地,在功能上每個(gè)芯片都面臨接口服務(wù)、系統(tǒng)管理、數(shù)據(jù)傳遞以及硬實(shí)時(shí)任務(wù)的組合。當(dāng)然,兩個(gè)芯片在細(xì)節(jié)上千差萬別。
Mobilygen考慮視頻CoDec的出發(fā)點(diǎn)是抽象算法和軟件實(shí)現(xiàn),而不是SoC的設(shè)計(jì)。它的核心不是獨(dú)立功能模塊的群集,而是兩個(gè)實(shí)時(shí)多線程處理器。多線程的結(jié)構(gòu)使得核可以在同一CPU上處理來自不同功能的一系列任務(wù),實(shí)現(xiàn)每個(gè)任務(wù)的硬實(shí)時(shí)需求。它也使得CPU可以容忍內(nèi)存延時(shí),因?yàn)楹丝梢栽谝粋€(gè)周期內(nèi)轉(zhuǎn)換線程。
有趣的是,這意味著CoDec核的硬件模塊框圖(一個(gè)CPU對(duì),圍繞著數(shù)據(jù)交換的一些加速器集群)完全不同于功能模塊框圖(更像是三階的流水線)。
在很低功耗水平的情況下,不用將很多負(fù)荷丟給一個(gè)相對(duì)復(fù)雜的結(jié)構(gòu)去做H.264編碼和解碼,這種情況與傳統(tǒng)的用獨(dú)立硬件模塊去進(jìn)行系統(tǒng)設(shè)計(jì)有很大的不同。
或許這樣的結(jié)構(gòu)來源于把系統(tǒng)看作是軟件任務(wù)而不是硬件模塊。SoC(兩個(gè)CPU核,一個(gè)處理用戶代碼的ARM-926以及一系列的硬件加速器)的工作是提供一個(gè)可將任務(wù)動(dòng)態(tài)映射的靈活結(jié)構(gòu),而不再是對(duì)每個(gè)任務(wù)都無法共享資源的固化平臺(tái)。理論上講,這樣的結(jié)構(gòu)在硬件使用上更加有效,在功耗方面也更加出色。
理論上,每種結(jié)構(gòu)都可以完全利用到功耗管理的最先進(jìn)理念:電壓島、動(dòng)態(tài)節(jié)電以及動(dòng)態(tài)電壓頻率調(diào)整。但是實(shí)際上,SoC的真正設(shè)計(jì)者能實(shí)現(xiàn)的技術(shù)有限。另一方面,多用途核的方式將大部分的任務(wù)交給兩個(gè)CPU,而應(yīng)用者可以根據(jù)需要進(jìn)行功耗管理。
我們是否可以說SoC設(shè)計(jì)來到一個(gè)交叉點(diǎn)呢?在這里采用功能獨(dú)立模塊的方式逐漸被拋棄,而將動(dòng)態(tài)任務(wù)分配給通用計(jì)算陣列的方法受到青睞。這么講也許為時(shí)過早。但是看看這兩顆芯片,我們不得不做這樣的考量。
評(píng)論