多媒體芯片面臨數(shù)據(jù)“交通堵塞”,消費電子設計者如何應對?
在最近的消費電子展上,我和很多芯片及軟件供應商交談過,這里所展出的那些功能豐富的多媒體移動和嵌入式設備大多是采用了他們的設計。在交談過程中,我總是會想起史蒂夫·馬丁主演的《洛杉磯故事》中的一幕。
馬丁在劇中扮演一個洛杉磯的電視氣象預報員。一天早上他開車去上班,他沒有走高速公路,因為那里堵車了,根本過不去,而是走了一條捷徑:先穿過鄰居的院子,經(jīng)過一條小巷,穿越一片空地,經(jīng)過一個洗車店,然后彎彎曲曲地駛過一個停車場……。
劇中的高速公路都是50年前設計的了,根本無法容納今天的交通流量。這幕場景看起來很搞笑,因為它準確地反映出了真實世界中的情景,而且馬丁的捷徑方案也并不算很夸張,因為現(xiàn)實生活中洛杉磯的司機們有時也會遇到這樣的情況。
嵌入式SoC的“交通堵塞”
在很多移動設備和便攜式電子產(chǎn)品的嵌入式應用中,硅的開發(fā)者和構(gòu)建者們就面臨著同樣的問題。消費者對于多媒體內(nèi)容在高帶寬有線和無線互聯(lián)網(wǎng)上傳播速度的要求越來越高,而MP3播放器、視頻錄象機和移動電視設備以及帶視頻功能的全功能手機的構(gòu)建者們則不得不盡力去滿足這種需求。但是,他們那過時的共享總線結(jié)構(gòu)就成了大問題,因為它們已經(jīng)根本無法承載如此高的數(shù)據(jù)流通負荷了。
在這些設計中使用多核CPU只能偶爾奏效,其它時候甚至會帶來更大的麻煩,因為芯片中用來運輸數(shù)據(jù)的“高速路”已經(jīng)陳舊不堪,早已無法適應當今和未來的需求。
當然,也有新的高速系統(tǒng),比如片上網(wǎng)絡和片上點對點型串行交換光纖鏈接,這些在概念上有點類似于板到板和系統(tǒng)到系統(tǒng)級的Infiniband、PCI Express和RapidIO。在Giovanni De Micheli和Luca Benini二人合著的“Networks On Chips”一書中,就對這些芯片級替代方案及其產(chǎn)生的問題進行了描述。
使用這些多媒體優(yōu)化型SoC至少有兩個問題。第一,它們的種類太多了。這么多SoC,你該如何選擇?你如何判斷它們是否能和現(xiàn)有的“高速路”設計兼容?第二,軟件開發(fā)方面的問題太多了?!癗etworks On Chips”一書也反復提到了這些問題。
讀完這本關(guān)于各種復雜的軟件問題的書之后,我得出了一個結(jié)論:即便我們能夠在片上數(shù)據(jù)流通上達成一個通用的下一代高速系統(tǒng),軟件問題也能在很多年的時間里讓這種系統(tǒng)遲遲無法被廣泛采用。再看看軟件開發(fā)的通用標準吧,創(chuàng)建這樣的通用標準的呼聲在業(yè)界已經(jīng)響了很多年了,可是到現(xiàn)在為止,大家都是光說不做。[!--empirenews.page--]
迂回戰(zhàn)術(shù)
在這樣的困難面前,如果不僅僅是ARM、MIPS、Power和PowerPC的處理器而是有很多產(chǎn)品都會遇到這樣的問題,那也不足為怪。他們把希望寄托在現(xiàn)有的技術(shù),在恰當?shù)臅r候使用現(xiàn)有的共享總線方法,在可以的時候進行更換,或者在解決不了時找一些能夠避過這些問題的迂回方法和捷徑。
比如,最近Atmel推出的專為帶有圖象、音頻和視頻的人機接口應用而設計的ARM926EJ-S微控制器,就把迂回方法發(fā)揮到了極致,以消除ARM架構(gòu)中傳統(tǒng)AMBA總線中常有的數(shù)據(jù)流通的瓶頸,將片上數(shù)據(jù)傳輸率提高到了41.6 Gbps。
另外一個同樣采用了創(chuàng)新型迂回方法的公司是Digi,在它為蜂窩網(wǎng)關(guān)、WiFi設備服務器和無線視頻設備而設計的幾種專用I/O設備中,它所使用的 Netsilicon NS9360也采用了這樣的方法。和Atmel所采用的方法類似,Digi也是依靠現(xiàn)有的AMBA AHB共享總線技術(shù),但是對外圍DMA結(jié)構(gòu)作出了較大的改進。另外,它還采用了一種特別的方法,讓開發(fā)者可以更改某個特定的寄存器,從而直接在軟件中進行控制,而不管分配了多少帶寬。
這樣的例子還有很多。Faraday Technology公司選用了一個QoS-aware型非阻塞交叉開關(guān)以獲得所需的芯片內(nèi)數(shù)據(jù)流帶寬,以及一個自己設計的智能DMA引擎。 PortalPlayer公司也采用了一個自己設計的交叉開關(guān)來代替AMBA,而NXP公司則對總線架構(gòu)進行了改進,并保留AMBA用于可靠控制并處理各種任務,同時還添加了一個自行研發(fā)的用于提供各種多媒體功能的數(shù)據(jù)流總線。其它的公司則選擇了和Cirrus Logic一樣的方法。這種方法既直接又簡單,僅僅是在同一張芯片上放置了兩個AMBA總線,并將數(shù)據(jù)流分開,以使得每個處理單元都能獲得盡可能多的帶寬。
其它的例子,例如德州儀器的OMAP、NXP的Nexperia和東芝的Cell結(jié)構(gòu),則是采用了一個共享內(nèi)存的方法,在最頂部添加了多種消息傳遞機制,盡可能多地依靠現(xiàn)有的標準,例如Open MPI。
盡管業(yè)界在向這種新的架構(gòu)轉(zhuǎn)變,我心中還是有很多疑問。這些迂回方法的作用能持續(xù)多長時間?各種新的NoC總線方案之間有沒有開發(fā)者可以尋求的共同點,以便至少能將從現(xiàn)有的共享總線方法轉(zhuǎn)向新方法的成本降至最低?
是否有任何新型NoC方法能夠降低這一轉(zhuǎn)變的難度?這些被我們考慮用來解決各種現(xiàn)有同類堆成多核環(huán)境中編程和調(diào)試問題的軟件方案,是否能夠在NoC所代表的更為復雜的不同類非對稱多核環(huán)境中也能起作用?
你是如何認為的?你現(xiàn)在采取的是哪些方法?將來呢?最好的轉(zhuǎn)變方法是什么?要知道,史蒂夫·馬丁的方法終究不是長久之計。