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