|
下一代開放式多媒體應用平台(OMAP)綜述
本文概要介紹了開放式多媒體應用平台(OMAP)的軟、硬體結構,討論了OMAP的一些重要的結構特性、功能,並針對如何滿足目前和今後用戶對PDA、手機、數位相機、相機、MP3/AAC播放器等多媒體應用的需求提出了方案,同時還討論了在OMAP中整合所有這些應用的可能性,最後對三種流行多媒體處理器OMAP、Xscale和DragonBall進行了比較,指出了三者的差異和獨特性。 * w7 _( |# {5 P& d. C2 Q
* `) `% R5 c/ B3 N1 d( i
& S! j5 ~, Z/ s- ?/ V ]將多媒體應用整合在一個元件中,因而支援高速有線和無線通訊應用這一趨勢已越來越明顯。最新的2.5G和3G手機就是一個很好的例子,它們整合了MP3音訊和MPEG4視訊等多媒體功能。手機對多媒體應用的要求主要是由3G網路帶動的,該網路可以提供遠高於現有網路的頻寬,因而使傳輸視訊流成為可能,同時也為展開其他多媒體業務提供了機會。通常情況下,這類多媒體內容豐富的應用都需要一個微控制器來執行作業系統(OS),管理人機介面(MMI)並執行其他一些常規任務。此外,還需要一個數位訊號處理器(DSP)來完成繁重的數學處理任務,例如語音編碼、視訊解碼、音訊解碼等。因此,在大多數基於多媒體的應用中都應將這些任務分散到不同的處理器中去。
* e* |. S; Y8 v' c; ^* L q7 _2 G
# Y3 W: `$ D0 a7 s: W/ w
" H+ M: Y( J W* d, A然而,有些半導體設計商更願意採用單處理器方案來處理這類複雜的多媒體問題。他們的方案是在一個帶內建加速器和再使用器的RSIC處理器上執行這些多媒體應用。這種處理器確實可以完成這類功能,但這並非解決多媒體問題的最佳方法。如果數據處理和訊號處理合二為一,那麼想要對數據和訊號採用不同的數學精密度或者採用不同的工具來處理就會變得很不方便。晶片也會因為要完成很多它並不擅長的功能而不得不消耗很高電能。而且,單晶片方案為將來的擴展留下的空間也很小。當元件中同時執行多項任務時,對時間要求嚴格的多媒體處理任務會被賦予最高的優先級。這樣,要在多媒體處理和響應MMI輸入這兩項任務之間切換時,就可能存在問題。因為單處理器方案必須將目前工作環境保存下來才能安排執行MMI任務,同時它還必須保證不錯過任何對即時性的要求,因此,作業系統將疲於應付多媒體應用不斷成長的需求,結果導致對MMI的響應速度變慢。 0 R- O s7 Y0 C; A
' l+ e) c; R, `4 \) _8 y4 ~* q
% K3 B1 b" y& T' e* }# q& Z$ D) m開放式多媒體應用平台(OMAP)處理器內含一個增強型ARM處理器(ARM925)和TI公司最新研製出的低功耗定點DSP(TMS320C55x)。設計這一雙核心元件的目的就是為了有效處理多媒體應用和MMI應用。在這兩個核心中,ARM925用於執行作業系統(OS),而DSP用於處理所有多媒體應用。將兩個核心放在一個289接腳的晶片中,這樣不但節約電路板空間,而且可以降低功耗和成本。除了這兩個功能強大的核心外,OMAP元件中還備有各種各樣的片上週邊設備,使用戶能夠以一種幾乎無縫的方式與USB、UART、藍芽元件以及GSM模組等通用元件介面。下面分別討論OMAP元件的具體細節。 / z& a$ B/ Q& y+ \( g/ z9 ]2 j
4 ]1 j0 O1 ~4 H) D4 R7 o
+ `% @% J$ {" r: {0 L+ {OMAP硬體結構概述
4 S8 Z& v+ v3 M7 J7 a3 d1 V' w! H+ ^6 J' w) n/ }' x7 P) L' F
7 u/ o2 r/ \# W4 k1 G. t
OMAP平台由一個微處理器子系統(ARM),一個DSP子系統,一個記憶體介面流量控制器、一些專用的多媒體應用週邊設備(MWA)和一個多工介面構成。OMAP中每個核心的最高執行速度都可達到150MHz,並且都可以隨作業頻率的降低而作出相應改動以節約功耗。ARM既支援32位元也支援16位元(Thumb模式)指令集。C55x DSP內有5組數據匯流排,在一個周期內允許三次讀取作業和兩次寫入作業。C55x最獨特的一點就是它具備雙MAC結構,並且其內部具有一個硬體圖形加速器。綜上所述,C55x DSP是一款高度複雜但功能強大的,專為基於多媒體的即時應用而設計低功耗元件。 5 U0 q3 I7 U8 l) w
6 o8 W' @* F J" m* T) U |
. A3 a. f3 _1 C4 ~4 f- L" u. j( T
流量控制器(TC)用於控制對外部記憶體的存取,其最高工作頻率為75MHz。TC提供三個介面,它們分別叫做外部記憶體快速介面(EMIFF),外部記憶體慢介面(EMIFS)和內部記憶體介面(IMIF)。其中,EMIFF可與SDRAM連接,而EMIFS只能與快閃記憶體和速度稍慢的ROM連接。OMAP內還有192K的內部記憶體,由ARM和DSP共享。但只有ARM才能配置DSP中的MMU(記憶體映射單元),因而決定DSP應以怎樣的方式存取這些資源。TC可以看作儲存資源的守衛,由它內部的仲裁器來決定哪個核有權利存取這些資源,以及是否可以讓兩個核同時存取這些資源。
! _( v) z$ Y- G% s
9 n; c7 h7 T u+ c8 `! T( F, N5 _4 l9 Q1 e0 M" D
為了加速數據存取速度以及執行外部記憶體內的代碼,C55x DSP中加入了數據和程式緩衝記憶體。ARM中有一個16KB的程式緩衝記憶體和一個8KB的數據緩衝記憶體。而DSP中只有一個24KB的程式緩衝記憶體。在OMAP中央有一個高性能的9通道系統直接記憶體存取器(DMA)。這個9通道DMA允許在不同的埠間傳送數據,而無需ARM干涉。DMA可作業的埠包括EMIFF、EMIFS、IMIF和周邊元件。在這個9通道DMA的頂端,有一個LCD控制器的專用DMA通道,它可以將數據從IMIF或EMIFF傳送到LCD埠。
+ E9 |! g6 \! r- y6 f7 B$ C. b7 L/ j- k$ i; i3 O8 @. u1 S* z9 l7 j! U
1 _* v& O9 f. L' \* v, ]
OMAP元件中有品種豐富的片上週邊設備,這些週邊設備可分為DSP專用週邊設備、DSP公共週邊設備、MPU/DSP共享週邊設備、MPU公共週邊設備和MPU專用週邊設備,其中有些週邊設備只能用於DSP或ARM,其他的則可由二者共享。有了這些週邊設備,OMAP元件就可以和各種各樣的儲存媒介介面,例如多媒體卡、SD卡、SONY記憶卡以及各種符合串列介面標準的記憶體。此外,OMAP還能作為一個USB1.10主控器,因而基於OMAP的元件就可以直接利用印表機列印相片,而無需接一台PC機。 6 |# H1 V: U1 N/ P8 W
9 e9 i+ y- W1 p" o; w3 V% n3 s* v E: L2 `' M) H
OMAP中的兩個核心透過幾組週邊設備匯流排存取周邊元件。注意,每一個核心都有專用的週邊設備匯流排,這些匯流排又與其他匯流排連接,以實現元件內完全互聯。核心對週邊設備的存取就是這樣控制的。例如,MPU橋和DSP專用週邊設備間就沒有週邊設備匯流排連接。有一個週邊設備很值得注意,這就是共享週邊設備組中的郵箱週邊設備。這些郵箱既可以透過MPU存取,也可以透過DSP存取。這種基本用法的目的是為了方便在處理器內進行通訊。每個核心都有專用郵箱,這些郵箱可以用來給另一個核心發送消息,也可以用來產生中斷。
3 _# {# n3 q8 w# e- _0 @+ R
1 X; W" ]2 a* p' C: e) B# \2 ?/ W; ?7 [! {
OMAP軟體概述
0 w" B) f& P9 v' ]6 U9 U+ D/ t! l
9 e J [7 d" N/ n! _% E" q
前面我們從整體上討論了OMAP的硬體結構和週邊設備,現在我們來討論OMAP處理器的軟體開發平台。OMAP的軟體結構是按幾種風格來設計,可以滿足從系統開發商、多媒體引擎開發商到DSP算法開發商的全方位的需要。下面我們將從一個高級系統開發商的角度來解釋該軟體結構。
5 n9 y$ B% }3 T! m) X- _- c* `; C/ k+ C' A p' O: o" I: O, _- Q
# }1 Z2 A8 ~8 K5 Z; X儘管OMAP是一個雙核心元件,但基於ARM的用戶並不需要知道元件中還有DSP。他們可能希望開發環境仍與單核心處理器時的開發環境相同。應用軟體開發商也會希望在一個特定的商作為業系統下開發其應用軟體。換句話說,他們希望將DSP完全抽離出來。於是,為了使元件中DSP的存在變得透明,TI導入了DSP橋和多媒體引擎(多媒體網路閘道)的概念。DSP橋為ARM和DSP設立鏈接,可將其看作同時存在於兩個核心中的軟體層。這�不詳細討論DSP橋的具體細節,但應該知道,DSP橋主要用來向ARM上執行的多媒體引擎導出一組API,以便其存取DSP資源。而多媒體引擎則向應用軟體導出一組標準API,這些API正是應用軟體開發商所熟悉的。
6 n/ b( Q* A, h3 r+ `' z7 S/ G* T0 o' E; o8 P( c0 c2 R% o
- @/ f: L$ G% U. \) \& O在DSP端,DSP橋用於管理DSP資源和數據流,並向DSP算法提供介面。DSP上執行的算法可以是自行編制的,也可以是由專業算法設計商大量提供的現成算法。在大多數多媒體元件中,系統複雜度日益增大,開發日程也日漸緊縮,因此開發商更傾向於購買第三方軟體設計商提供的算法,而不願倉促地自己編寫。 5 k% v; |9 W6 [ {! _ r
* P \2 x* |0 z+ }% P! I
; X2 [5 r0 ], o
對系統開發商而言,將購買的算法與自編算法整合在一起是一項非常艱巨的任務。不同的算法開發商都會有他們自己獨特的編寫算法的方式。這其中還包括對I/O介面和記憶體的不同用法。因此,在系統開發中,時間更多地被耗費在將不同廠商開發的算法整合起來,並力求使其合作順利,不出差錯。如果管理者決定為了增加產品功能而購買更多的算法,那麼情況會更糟。為了克服這一致命弱點,TI首先發起並開始領導一項算法標準定義工作,以管理DSP算法的編寫方式,並力圖使DSP算法具備類似‘即插即用’的特性。這就是eXpress DSP算法介面標準(eXpress DSP Algorithm Interface Standard),簡稱為xDAIS[2]。
4 D# \4 M3 p- t3 w. P0 }' X( E, a3 n' E3 @" u0 P; y
) t; v2 X6 O7 f: [( o1 H8 E
XDAIS相容的算法將按照一系列的規則設計,以便能夠在系統中實現無縫整合。欲了解更多更深入的xDAIS情況請參看http://dspvillage.ti.com上的白皮書。下面回到我們的討論主題,DSP端的DSP橋為xDAIS相容的DSP算法提供一個介面,我們稱其為節點。圖1中詳細描繪了OMAP的軟體結構。 : w4 x; X% ]& E/ W E4 c- W+ m# K
" ] k' Y1 a" @& z: k. ], t" l% _8 Y" I+ ]/ D! T/ c+ c
DSP橋內的資源管理器(RM)上存有一個資料庫,庫中存放了DSP上所有節點的資訊。當某個應用中涉及多媒體處理任務時,RM會在DSP上為其製作一個節點,然後向ARM申請記憶體。一旦主機得知該節點的存在及其提出的記憶體要求,ARM就會針對這個多媒體任務初始化該節點。接著,RM開始執行應用,於是DSP中的節點就開始執行多媒體任務。沒有數據時DSP是不會開始進行處理的,對DSP橋而言也是如此。當ARM決定停止該任務時,它會發送一個指令以釋放DSP上的任務節點,然後DSP就將釋放該節點佔用的所有記憶體資源。這就為執行其他任務留出了空間,同時也方便了動態圖像加載類系統的實現。 5 Z( `" y- y; g) S) P$ N E; I6 O
+ E4 b0 K# E0 M; k8 D1 I+ C5 I7 X( Z/ M( [
在開始執行一項多媒體任務時,應用軟體開發商只需完成一個他們很熟悉的函數調用,例如PlayMp3(song.mp3),系統就會播放MP3歌曲。其他的一切都由多媒體網路閘道和DSP橋處理。OMAP中採用了一種三步型軟體模型,即製作、執行和刪除。有關網路閘道的三步型軟體模型的概要可參看圖2。 : O- O' P) k( g! g' p# V, o C
& p* f8 ~5 N% \* `/ |& C2 }
. G& s" m: G V. ~! P3 Z- gOMAP的結構將軟體開發商分為三種:應用軟體開發商、DSP算法開發商和多媒體引擎‘中介軟體’開發商。應用軟體開發商著力於設計和實現傳統的作業系統應用,而DSP算法開發商則設計和實現xDAIS相容的訊號處理演算法並完成即時DSP處理任務。最後,‘中介軟體’開發商則致力於將各種DSP算法整合在主系統╱DSP系統,並使它們成為應用軟體設計商的可用材料。 ( [- B# a. `0 ]$ }! m& w" r
( k. }* V. T" A, ?; R3 @
- i' I4 E8 U3 q M0 j
OMAP和現有多媒體處理器的比較
4 Z6 c, s$ T9 t" M
4 l# [% R5 A# r4 \$ N
5 T0 X( b4 L* {, W h$ K市場上還有一些處理器與OMAP有類似的功能,例如英特爾的Xscale處理器和摩托羅拉的DragonBall處理器。這三款處理器中均包含一塊ARM處理器。與具備複雜指令集算法(CISC)結構的處理器相較,這三款處理器能提供更加方便的配置以支援各種I/O需求。我們可以藉由研究這些ARM處理器的內部結構來更清楚地探討他們之間的差異。
( @. P; s4 R* q% g2 }" X/ g
# \$ w7 u. s! l& P% z9 @& h) e7 N) H7 F2 A( ]
英特爾XScale(PXA250)是一款基於高性能低功率StrongARM 2系列處理器的增強版的處理器。StrongAR 2最初由ARM和Digital Equipment公司聯合開發,如今英特爾也有此類產品。英特爾的ARM處理器Xscale屬於第五版ARM系列處理器,它是我們談到的這三款處理器中緩衝記憶體最大的一款,內有32K位元組的指令緩衝記憶體和32K位元組的數據緩衝記憶體。此外,英特爾這一款基於ARM的處理器內部還有一塊工作頻率可達400MHz的DSP。
" ^8 F( B4 t% {+ |! h
9 l' F0 T j" Y( D2 `5 ?) O- b# D' t4 k5 m. q4 x; L2 @
OMAP5910處理器內有一個ARM9TDMI 3(第四版)核心,TI利用TI925T增強了其控制功能和高級OS功能,因而該處理器能提供很高的處理能力而不會犧牲電池壽命。該處理器既支援32位元指令集也支援16位元指令集(Thumb 4模式),內有一個16K位元組的指令緩衝記憶體和一個8K位元組的數據緩衝記憶體。此外,處理器內還有一個帶64通道的轉換後備緩衝器(translation look-aside buffer)和17字寫緩衝的記憶體管理單元,既可管理數據又可管理程式。 : @ ~, ?% L. x
8 c% t6 }1 g" Z: ?" q% D6 }$ H- u
; Q+ f6 ~) |" ~9 W) ?摩托羅拉DragonBall(MC9328MX1)處理器則內含一個ARM920T(第四版)處理器,該處理器也是在ARM9TDMI核心的基礎上設立起來的。MC9328MX1也支援32位元和16位元兩種指令集模式(Thumb 4模式),內有一個16K位元組的指令緩衝記憶體和一個16K位元組的數據緩衝記憶體,這個數據緩衝記憶體比TI OMAP的大。同時,MC9328MX1與OMAP5910類似,也有一個記憶體管理單元。 1 L/ m. ^: O4 I: {1 x9 X
3 ?# E! ~' i7 G; f+ Q) Z
$ k* O5 B) v4 F! ` `
TI OMAP的強項就在於他具備全面的硬體加速器,可處理視訊、圖像、音訊和語音應用。而且,OMAP中還採用一塊專用DSP以應付手持式應用中的訊號處理需求。毫無疑問,基於ARM的處理器當然也能進行快速的乘法和加法運算,但這些處理器並不具備循環緩衝、位反轉、平行移位和硬體循環等針對DSP的尋址功能,這就使其在代碼最佳化方面處於嚴重劣勢。此外,OMAP處理器C5000上可用的DSP應用軟體也比基於ARM的處理器多。 4 s* G9 F3 O: ^; L( d7 W
) N3 D7 a* ]' c# J4 Z4 h. u9 W W3 L$ L
以上談到的這三個公司在處理器的設計上也採用了截然不同的方案:TI採用了DSP協同處理器來增強元件中DSP的功能,英特爾採用了具備增強的DSP性能的單RISC處理器,摩托羅拉則採用了多媒體加速器來加速那些基於DSP的應用的執行速度。TI在設計處理器時考慮了兩組開發者:應用軟體開發商和DSP軟體程式員。這種考慮就使得不同的軟體供應商能夠各自提供應用程式和軟體,由Code Composer Studio在這些不同的開發平台間提供橋接,因而實現應用程式及軟體之間的對接。英特爾和摩托羅拉則不同,他們依靠一個通用的開發平台來實現其應用。這種統一的開發環境有它的優點,它提供的代碼比TI的雙重編程環境簡單。但隨著Code Composer Studio(CCS)最新版本的發佈,雙平台編程方式開始變得越來越完整,而且它能夠比統一開發平台更加方便有效地區分RISC和DSP的代碼。 % O- r% ?* P5 N; v6 v7 a2 z) R
: g$ f0 @3 B* p( Y3 X2 T: W9 C- I5 @
處理器的功能是由支援它的工具箱決定的。OMAP具備完善的DSP工具箱(包括編譯器、匯編器、鏈接器、加載器、具有高級圖形顯示和探測特性的除錯器、晶片支援庫和DSP/OS)、庫、DSP算法標準和第三方軟體網路的支援。同時,OMAP還解除了軟體開發和管理,以及利用平行除錯管理器(PDM)對應用軟體和DSP軟體進行除錯這三者之間的相互依賴性。 4 l8 D3 K6 l8 _- h* w. C
, B7 v6 E* j, D5 i# N8 E
1 t0 i3 ?4 k! o5 F6 `) w% r從傳統的硬體和軟體設計看來,在現有的處理器基礎上建構一個新的設計通常比重新去設計一個處理器更具吸引力。我們前面講到的這些元件都是在已經成功應用的處理器基礎上建構的,也就是基於ARM的元件和DSP。OMAP為將傳統的基於DSP的產品整合在嵌入式系統中提供了新的思維。C55x處理器的高MIPS、低成本和低功耗已經使其成為一款成功的並獲得廣泛應用的DSP晶片。將它與ARM925整合後又構成了一個綜合了RISC和DSP優點的開發平台,因而能夠非常有效地處理數據和訊號。
/ h0 d) ?+ R) }" d S, U
" Q: N, M4 q- {* Q% s g- c+ x3 s: u$ O# r" K. S. N3 v* l# K1 |
這三款多媒體處理器所附帶的週邊設備控制器總的來說基本類似,這主要是因為他們所採用的基於ARM的RISC處理器所提供的支援特性基本相同。但不同的是,OMAP中的C55x處理器還能提供對McBSP、DMA控制器、中斷處理器、定時器等週邊設備的獨特的支援,因而OMAP能夠支援更多的I/O元件,在今後的應用中擴展空間也更大。
8 w9 [7 U1 v- d) u* q% g. d1 u# {3 K7 _4 L, r4 p( W
3 J, N; V! N: v; WOMAP的應用前景
9 D: a+ g8 P; f d& W5 p6 C1 D: q' T' H+ `* x* t" H
. K- O ?5 Q! O
OMAP可以用來開發和擴展手機的功能,使其包含多媒體應用功能,然而OMAP的功能決不僅限於開發手機,許多用傳統的處理器無法實現的應用都可以用OMAP來實現。OMAP的推出,使許多激動人心的應用開始浮出檯面,有待人們開發。圖4中列出了一些可以用OMAP實現的應用。這些應用不但要求強大的處理能力,同時也要求低功耗,而OMAP獨特的硬體和軟體結構恰好能夠滿足這些要求。不僅如此,OMAP的獨特性還使得這種開發具有更大的潛力。 * u8 s( G( C! R+ P- ~3 l# z1 d! @( V
, `$ V/ Q* L7 Q5 t6 x6 ~# h
5 S. D4 h$ T2 ~; ^9 o參考文獻 / V- ~2 q. }9 D1 v
# h$ p, E9 N& z& ]- b" B7 e5 n
6 C) B2 R6 T6 C* | i[1] Texas Instruments, "OMAP Data Manual", Literature
9 S; F% x8 }0 g' j
* M& e8 x6 [0 x6 |, WNumber SPRS197, June 2002
7 a b1 _) ?2 w# q9 l" Q- \7 V/ T5 s4 U& C
y# B( |; c1 u- y3 t7 H$ j, p% y* u3 i
[2] Texas Instruments, "The TMS320 DSP Algorithm Standard"
7 v; K' B" b! ^$ m/ J8 r8 l& i5 p9 h6 q/ U
Literature Number SPRA 581, Nov 2000
* C$ h! r0 g9 M X5 m
- v3 z9 c: C* l
$ _$ l" ^) P* `" }致謝: 作者要感謝Kwee-Song Lim先生(德州儀器新加坡市場主任),是他鼓勵和建議作者完成本文。 2 h3 u* Z; W8 A6 K* P0 z3 b1 R
+ k! V, c! d4 {- I" A1 V$ @$ }; R
& L( b- @$ L' O0 i0 `: {8 {. y作者:Francis Kua * m3 U- b4 P! e; m/ r3 G
2 h0 a# L0 [9 L, q! s3 b4 N
5 o7 B1 D; N3 I5 m+ F2 EFAE
- X) \ M& @. W; r# w# d1 X' D7 E# O' x. z. T- d' o' O$ ^# _0 K' R
7 v7 w7 \+ N6 j3 x3 M* L" X
Meng-Tong Wong
5 r) m- _% @! U5 Q9 h% \& l/ k9 J
1 y* {* P2 c* M
/ {8 ^ w4 D! ~) S- F4 c$ sFAE經理
5 G5 ^ K9 c/ \7 q: ~" t6 t# E# `4 `) o/ K( N; B
1 B6 B; [0 I6 K/ a, x德州儀器新加坡分公司 5 ~& n. n/ p. o! B- p( y! a8 w
- Y# w) n2 J9 P5 \5 E5 K U
+ a2 f2 ]0 i3 Q9 V, V; ]
Woon-Seng Gan 7 Z9 Z" @* T( a7 E6 N
0 p3 b! r# x' m" f2 }2 I' d3 V5 R! A; k) ~" m$ z) J# O; R
新加坡南洋理工大學
) `0 a/ T) D# u9 I- M' J# n
8 [0 a$ \! y% a2 w; j" O[ 本帖最後由 masonchung 於 2008-4-24 01:18 AM 編輯 ] |
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有帳號?申請會員
x
|