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