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