|
诸如移动音频播放器、机顶盒(STB)、数字电视(DTV)和数字通用光盘(DVD) 播放机和刻录机等消费设备,通常都是采用多功能系统芯片(SOC)来实现的。这样的SOC主要执行两种功能:应用处理和视频/音频信号处理。应用处理(或主处理)通常是通过像MIPS处理器这样的一个可编程内核实现的。由于其计算复杂性的程度,视频信号处理是使用专用的硬件完成的。在某种程度上,与视频信号的处理相比,音频信号处理的计算需求并没有那么大,在过去,都是采用固定线路逻辑或一个数字信号处理器(DSP)进行处理。/ \ O+ W, I0 u6 a4 a
然而,由于用户的产品需要支持更多复杂的算法,音频子系统的需求也在增加,先进的前/后处理和全双工需要进行同时编解码。当音频需求增加时,因架构上的创新,处理器的频率也在提高,使像MIPS科技这样的可编程处理器能够与主功能一起实现要求苛刻的音频应用。
0 I% ?9 T) `+ z5 I; k9 d* B
3 R; V7 m, L8 D8 s$ l3 I' L 在一个MIPS内核上构建两种类型的执行音频应用的SOC结构是可能的:(1)一个是作为主处理CPU,另一个是进行音频处理的专用CPU(参见图1),或者(2)采用一个单CPU作为主处理和音频处理。使用MIPS处理器可以为音频处理带来显著的好处。最重要的是优点,这类解决方案可以提供以下的功能:. L* j2 d( ]+ J: b) M
9 ]& u( O. o! z- X
⊙单处理器架构的高度集成的SOC解决方案
5 v& M, _+ C) W \6 ~9 {% o$ [9 Q9 n2 u7 X( t8 R% A
⊙减少整个SOC设计和制造过程的成本
5 A$ _0 Y" a4 V* q
; {, K# o8 Z- S& i8 j5 u i2 D7 Y ⊙可编程音频处理器可以延长SOC设计的生命周期/ i8 j2 U# Q+ Q+ q
# i: v: T( b1 O! u+ C
⊙快速投放市场的优势
% b. X- u* J, i' p
1 B7 P+ Q) r' O ⊙MIPS的软音频接口有利于应用软件的开发和集成
6 Z, B( ?+ U. |; y
4 R. t. y6 ]6 n5 V) C) c3 b$ z 多内核SOC音频架构% X: J* |% ?" M5 ?! `- j5 T
4 k8 W' q9 ^( T" V" h# F- _ 在多内核的情况下,主CPU运行操作系统、最终用户应用和服务,而用一个专用音频处理器运行音频处理功能。获得MIPS科技的若干授权就可以得到专门用于MIPS音频处理内核的消费电子设备的SOC工具。简而言之,使用MIPS用于音频设计的处理器就可获得一种可编程解决方案。可编程性意味着一个现有的设计可以简便地适用于各种各样的音频算法。这可以提供两个重要的优势:单SOC的能力可用于多最终用户的应用;同时延长SOC设计的生命周期,以跟上音频标准迅速不断进化和变化的脚步。
8 d# d3 @) O3 B. R1 Y
. l) l: L* F: W3 P7 j1 G 专用音频处理器的优点在于它不会与其他应用争夺CPU的周期,因此有许多余裕空间。这种音频协处理器的余裕空间能用于多种方式:(1)备用的CPU周期可以同时用于对多数据流的编码和解码;(2)它可保证高档设计中的最高音频质量;或者(3)余裕空间可以通过降低电压减低处理器的频率,因此而降低音频子系统和整个SOC的功耗。( h" c4 a. \" h
$ i* }; f% ?7 u) P! F8 B3 b; r# P 使用可编程处理器实现音频算法的优点在其配置方面的表现尤为明显,因为它具有符合不断进化形成的全球音频标准的灵活性。利用专用的DSP,电流性能和功率需求可能得到满足,但是它们可能无法根据变化满足未来的需要。MIPS的音频处理器可为通往高性能处理器提供一条清晰而简便的迁徙途径,而且与其上一代产品是二进制兼容的。) |" M, r2 y6 N% N' {& T. A
5 Y: }7 e7 g9 R2 w' W6 Y
: p6 a) G- h7 u7 ]4 x" i# t/ P图1 音频处理架构
' T- }0 c, x- O% `0 r
2 y. F0 ]" L) ?$ r% c3 T! K 当一个内核的音频处理功能与主CPU单独完成时,在主CPU和音频处理器之间需要一种通信机制。在两个MIPS内核之间建立一个通信接口要比在一个MIPS CPU和一个DSP之间简单得多。例如,MIPS CPU上可使用的LL和SC(加载-连接/存储-条件)指令能被用来十分简便地建立起通信和同步化机制。
" B. ^8 a N9 `+ f) [6 t6 b7 j: A" `* l* d
单内核SOC音频架构
, W! Z' A- Q& K) Z7 I2 [2 Q6 O
& f% o3 E9 {) \) ^' ? 在一个单内核环境中,最大的好处是通过完全省掉DSP或固定线路音频模块,而在MIPS主处理器上执行音频。这既减少了裸片尺寸,又节省了总的系统调试时间。反过来,这也保证了减少成本和更为迅速地投放市场。
7 N% o3 ?' |6 o" s2 w% h" A g( I! P/ [0 i% v" |' U. k
利用一个运行在主CPU上的实时操作系统(RTOS),音频处理可以完成系统的线程(任务)之一。RTOS必须保证这个音频线程得到足够的时序时隙,以一种适时的方式完成其任务。通常,音频处理将仅仅需要一小部分CPU周期;因此,这个要求可以容易地得到满足。除了RTOS之外,这个单处理器也能执行其他诸如视频控制等应用。适当的时序机制是保证准时地完成所有任务所必需的。
j7 U& L2 L" o4 t8 c, L6 @: e& U& f; [5 o5 c$ e
在一个单内核解决方案中,由于指令和/或数据高速缓存的干扰会使音频应用的性能下降。这种降级是操作系统与处理器上执行的其他控制功能的特定组合功能。如果性能的下降不可接受,那么就可能需要使用两种方法中的一种。一旦引起降级的原因与指令或数据高速缓存隔离开来,第一种需要的方法是锁定控制关键功能或数据数组占用的高速缓存线路。7 {+ \5 x7 h! ?
C7 p3 @, K5 Q% J- ]2 h0 V% g; @
如果高速缓存线锁方法不理想的话,那么可以使用一个专用的高速暂存存储器RAM(Scratchpad RAM,SPRAM)。SPRAM是为MIPS处理器执行选择提供可预测的低等待时间的片上存储器。如果必要的话,SPRAM的容量可能比高速缓存的容量大得多,不过,通常小容量的SPRAM可能有助于为应用带来显著的性能。通过在SPRAM中加载软件音频解码器的关键功能的“文本”(代码)段,能够减少音频解码器中的指令高速缓存的错误。交替地使用SPRAM可保持常用的数据数组,以减少数据高速缓存的错误。
+ _' g3 u9 U; p/ Y+ ~- I3 c- y0 b/ g, O4 F( W
最低成本的整体解决方案:将MIPS处理器用于音频
* g1 P" m( ~7 |2 O( `
/ _9 W3 ^+ B8 B, X/ G3 c/ l 当做出系统架构决定的时候,需要考虑若干主要的成本因素,例如:授权、版税、裸片尺寸、开发工具和设计时间。尤其是在低档系统中,如果使用一个单内核SOC架构,可以完全省掉DSP,缩小整个裸片的尺寸,且无需支付DSP的授权费用和版税。这将使SOC制造商和OEM的总体成本显著减少。
( M5 W/ o+ w& _% x& V4 X
^2 `% d& ~, x' o2 y0 j0 t* h 不论SOC厂商选择在一个专用的内核上运行音频,还是在主CPU上进行音频处理,由于同样的工具链能用于开发基于主CPU和音频的应用,所以软件开发工具的成本更低。开发工具成本的一个主要组成部分是与工具有关的维护。在专用DSP的情况下,这可能是整个成本的很大一部分。
2 `% Y6 C% j9 O: Y( ^那些使用一个MIPS内核实现控制功能和使用DSP进行音频处理的开发商必须熟悉两种不同的开发环境。一种典型的开发环境可能包括操作系统、编译器、模拟器、仿真器、调试程序、线迹工具、探针和剖面仪。然而,当同样的内核再度使用时,只需熟悉一种开发环境,从而减少总体设计时间和设计成本。
' ?- R% m+ `7 |7 t
) A+ o1 }/ c% R* H2 y& i 前优化音频软件提供上市时间优势2 G# z2 {/ k$ P# N/ q
1 H0 C, R6 k! K, z6 W) o9 p
MIPS科技和其音频软件合作伙伴可为MIPS32内核提供各种各样经过优化的音频应用软件。这些应用软件包括多种用于数码相机、数码摄像机、机顶盒、数字电视和DVD播放机等消费产品的标准音频多媒体数字信号编解码器。这些高度优化的算法与MIPS科技提供的高性能开发工具一道,可帮助开发商把重点放在驱动应用的开发和集成方面,而无需对标准音频的算法进行优化。
1 }& e, o) F* P- z 对于那些希望调整其他音频/DSP算法的用户,MIPS DSP程序库(MIPS DSP Library)作为MIPS软件工具包的一部分可供使用。这个程序库具有广泛的适用于语音压缩、回声消除、噪音消除、通道均衡、音频处理等信号处理功能,还包括滤波器和FFT等通用功能。这些功能已在MIPS科技的多种处理器系列中实现了优化。
' c$ v6 Y- U4 s" g) ?+ n; Q1 c9 t# O5 C. G4 R$ D2 j* c+ y
MIPS内核有许多特性有助于有效地实现像DSP这样的应用。经过优化的音频多媒体数字信号编解码器和DSP程序库可利用这些特性提供重要的优势:$ j& d1 J$ M V. a4 |
& ^: Y B/ m' g8 P
⊙为在所有音频算法中使用32位整数数据的内部计算提供尽可能最优异的音频质量。" ~2 g% i8 o7 a4 c$ z& _
$ L6 b) Z Z# m0 x; O9 F5 M, b
⊙MIPS32乘法积累(Multiply-Accumulate,MADD)指令在对DSP MAC运行进行编码时是非常有效的。
2 a4 H) L. ^1 Q1 F$ W# s0 f, z& U; ^* r
⊙在DSP回路中适当的时候,可使用MIPS32架构中的数据预取指令。这可使数据预取进入高速缓存的下一个反复,同时执行当前的反复指令。由于可避免高速缓存的错误等待时间,可以显著地节省总体运行时间。
* Y' b3 o+ b" H- h9 V3 q9 G9 ?: G, h, e/ E2 }6 H* }
⊙存储器占板面积小对大多数最节省成本的解决方案都是很理想的,MIPS16应用特定扩展(Application Specific Extension,ASE)可用于 减少程序代码容量。这可以通过简便地使用一个编辑时间选择来实现,以显著减少程序代码的容量。4 ~$ N6 H( d% R
0 h! B# k4 K+ B+ u1 `2 N1 J: b- @3 X8 v. a# g0 m0 o
图2 MIPS音频解码的应用实例
7 E$ F- E- Z; K8 l* x
' J7 }% i5 @ P$ s2 b H: P4 x 除了上述的特性之外,该软件还利用其他技术得到尽可能最高的性能:
) s' k0 D6 b( q: N/ A! x6 z/ ^+ V1 A) a$ V6 D4 P. `- s0 N- _. e0 S
⊙MIPS32汇编工具具备加强关键运算计算的人工编码能力;
" ?. r* i# o( I
- y- a4 G9 ~! [- f. Q7 ` ⊙建立在内核到内核基础上的人工时序可以最大限度地减少加载使用(在指令需要的数据开始执行之后,来自高速缓存/存储器系统的加载指令数据到达—直到数据可供使用之前,处理器都不会运行)的瓶颈;
. \. t) _0 n. X% B4 U" J. v b: V! g$ ?% Q$ B
⊙循环展开和软件流水线操作可用于最佳的代码时序。- P; y' _) a G4 B
8 G: @# X$ b5 g2 Y5 A$ F& C
为了提供最大限度的灵活性,可在软件中执行MIPS消费音频平台的所有算法。不过,SOC设计者还是可以通过CorExtend的特性使用MIPS内核指令集来满足新出现的音频标准。用户定义的指令(UDI)或CorExtend可为应用加速增加新的指令和状态。这种定制能力为SOC厂商提供了改进性能和产品个性化的功能。
3 b) x5 S" s: _( [. x6 }7 J6 {/ o4 U, l! C
迁徙途径
4 s, Q( S9 C% @
! q1 }5 _, G$ Y: i9 O) q MIPS科技不断开发越来越先进的内核设计,并实现架构方面的进展,在持续改善性能方面积累了丰富的经验。在内核领域,MIPS科技已在产品中增加了一个8段流水线,从而改进了时钟速度性能。在架构方面,MIPS科技已通过增加第二版架构(Release 2 Architecture)改善了IPC性能。" I% Z$ o, x: p
MIPS科技继续承诺改进性能,最近又为多线程(Multi-Threading,MT)发布了ASE MIPS处理器。这种产品与音频市场有着特殊的关系。MIPS MT ASE利用来自另一个可用线程的有用的工作填充流水线固定位置的方法,改善了整个系统的性能。但是,MT ASE在音频方面更为显著的特性是其提供了服务质量(QoS)时序机制。" f3 z0 V# ^& G
MT ASE采用了一个可以共享一条单流水线的多重虚拟处理元素(Virtual Processing Elements,VPE)的概念。在一个音频环境中,可以使用两个VPE:一个运行OS(操作系统),另一个运行音频应用。MT ASE可以利用时序政策,保证使特定任务的处理器带宽分配最小。此外,它还可提供服务质量特性。这两个特性的结合可以在不跳过任何音频帧的情况下保证音频应用的实时执行,同时也维护了所有其他的实时任务,以及适时方式的OS。0 D2 g% b! M, W* J7 {# o, E, X
QoS特性根本上消除了OS中断对音频功能表现的影响。通常,中断服务可在“发生”异常的线程执行时间方面引起相当大的可变性。MT ASE可提供一个机制,它可使任何异步异常得到延缓,直到OS线程(非豁免线程)被预定。这增加了在一种有限的和受控的方式下OS任务的中断等待时间,同时保持了音频任务的执行。如果中断处理程序的执行仅仅是发生在输出时隙未分配豁免实时QoS线程期间,那么,中断服务对这样的实时代码执行时间没有直接的影响。
% R( U: _- {6 ^
. I/ l! z k% p3 L! `& I+ I; s7 r MIPS音频解码器应用实例
- L3 _) y9 y' W5 s6 t" |( d5 C
, r/ V0 v' D. F5 M 音频解码器通常作为驱动器应用进行存取。驱动器的作用是从适当的输入设备提取引入的位流,并将经过解码的位流发送到音频输出设备,如图2所显示的那样。它也可以执行其他后处理功能,例如在发送到输出设备之前,对经过解码的音频位流进行低音控制。驱动器通过一个标准接口机制访问MIPS的音频产品,也就是MIPS的软音频接口(Soft Audio Interface,SAI)。这个通用接口可使各种来自MIPS科技的音频解码器易于与主应用进行连接。/ J: \7 S' q( C8 {' H5 U2 d
MIPS SAI可提供解码器和主程序,或高级控制和运算监控解码器RTOS之间的接口功能和结构。这种接口为访问控制解码器运算和访问状态和差错信息参数提供了机会。该接口可执行三个基本功能:一个是对解码器进行初始化,第二个是阅读帧标题,第三个实际上是进行解码处理。所有的解码器都具有与特定解码器有关的预确认字段数据结构。解码器对所有的帧进行阅读和结构更新。在帧开始或结束时,主程序可访问数据结构,阅读状态或改变控制参数。参考下面的代码实例,它说明了驱动程序的运行情况。MIPS SAI的功能用粗体字表示。
! L" p8 V4 F8 d, R. J
3 m, m4 t F- ]3 G" v+ E int main(void)
( d) i. Q3 C: X2 D% S% T {
: y0 S0 y6 k! g decoder_specific_struct dec_ptr;
2 z+ f, m; g W" h2 @ //Initialize the decoder.
' x- U( b. {4 y5 }6 g) H3 W( M U mips_sai_dec_init(&dec_ptr);% _) z! U \! b, Y3 t8 y
//Open the bitstream input device.4 W1 [+ V7 H# T5 [5 @4 w% o1 C
open_input();& {* a+ f5 l# K% p4 A/ d, M
//Open the audio output device.4 D" c/ R1 k3 { K* u* |
open_output();* s ~' @* E5 N
//Allocate buffers for decoder operation.8 E+ \# q5 {6 z8 @: {, |) h
allocate_buffers(&dec_ptr);
# d' p6 w( g; N5 a+ B& p, f% f while(not-end-of-input-bitstream)! k5 G* _6 ^* l+ x
//Read the input bitstream." O# C' L1 s) ~- ^
read_input(&dec_ptr);
4 [* X" D2 R+ M2 x //Read the frame header for encoded stream parameters.
J, c% z7 F# Q0 E9 @5 i mips_sai_dec_readheader(&dec_ptr);# J, W; K' \6 s# K) Z# t
//Set up params for decoder operation.
( g* d9 g! V# G9 U% G setup_params(&dec_ptr);: M* B! u3 {; ^8 n
//Decode the frame6 h# J0 B" h, m& w5 S
mips_sai_dec_process(&dec_ptr);0 k4 t& I7 B! c) l, A
//write the decoder output to the device driver.
% q$ y; A* o5 ^2 J$ g write_output(&dec_ptr);- p2 s/ \4 B% d m
end-while. J2 }- V8 D2 p; e
//Close the input and output devices.
0 b) ]7 z5 q2 y5 O close_input();# B9 M. H9 [7 m5 v* L& f
close_output();3 x# Z; E, r) ]" C# u
return 0;
: [* A' ^, ^3 @4 o }5 D. P4 v# t& \& j
& r2 a8 ]3 S' {7 a8 f, W3 X3 x# W 结语
7 E8 S# n Q+ ^, `& r1 S
& N) E6 z$ \7 D7 d. m% g! M, h MIPS处理器可供使用的各种特性为实现消费音频算法提供了一系列的优势。这些优势包括单一的可编程架构、更低的系统成本和缩短上市时间。这使MIPS处理器成为从电池供电的移动音频播放器到高性能DVD刻录设备等消费电子产品音频应用的一种可行和具有吸引力的解决方案。 |
|