原创 ADSP-BF533应用中的注意事项及优化方法

2009-9-14 09:47 1677 5 7 分类: 处理器与DSP
作者:    时间:2008-12-09    来源: 
 
       引 言
随着多媒体技术的快速发展,DSP 在各种电子消费
品中的地位日益突出。多媒体应用正在逐步走向网络化、
多样化、智能化。其中,ADSP 处理器在嵌入式网络多媒
体应用中有着显著的优点:性价比高,体积小,功耗低,外
围接口电路设计简单。目前广泛应用的处理器之一是
ADSP BF533 ,它适合于数码相机、便携式多媒体播放
机、网络媒体适配器、数据和多媒体网关、互联网协议( IP)
机顶盒、2. 5G和3G 无线手机以及汽车信息娱乐与安全
系统等各种应用。ADSP BF533 处理器使用方便,具有
良好的代码兼容性以及极高的性能和极低的功耗。本文
在介绍ADSP BF533 特点的同时,对其在设计应用中的
注意事项及优化方法做了相应的论述。在设计过程中,多
注意细节和优化方法可使设计更加顺利的实现,并为大规
模算法的执行提供有效的时间。
1  ADSP BF533 处理器简介
ADSP BF533 是ADI 公司推出的嵌入式多媒体处
理器,拥有运算频率高达750 MHz 的DSP 内核;采用ADI
公司与Intel 公司共同开发的MSA 体系结构[ 1 ] (微信号结
构) ,这种结构采用了一个综合的信号处理和控制指令集。
这样处理器就不仅是带有增强指令集的DSP ,也不仅是带
有2 个算术逻辑单元的MCU ,而是为同时运行控制指令
和算术指令而进行优化的处理器结构[ 2 ] ,集DSP 和MCU
功能于一身,从而消除了传统的多个不同处理器之间联系
的复杂性。
从讨论C 语言优化的角度出发,ADSP BF533 处理
器具有以下特点:
①处理器支持与分级存储结构相结合的改进型哈佛
结构,最高时钟频率为600 MHz , 峰值处理能力为1. 2
GMIPS。通过对工作频率及电压的动态调节可实现极低
的功耗。动态电源管理完全是由软件实时控制的,可以在
运行时随时改变内核电源,以降低功耗,效果非常明显。
②ADSP BF533 DSP 内核包括2 个40 位的算术逻
辑单元(ALU) 、2 个乘法器累加器(MAC) 、4 个视频ALU
和1 个移位器。ADSP BF533 的硬件结构具有很高的并
行性和运算能力,可以进行双16 位数的加减、交叉和移位
运算,在设计中可以提高运算速度,并使复数运算大大
简化。
③处理器的指令集[ 3 ] 包含了大量的运算指令,可以
快速执行固定点和小数运算,如乘加器和MAC shift 指
令等。
④处理器可以实现零开销硬件循环,其效率比通过
条件分支返回循环起点的方式高得多。
⑤处理器将成组的寄存器与函数单元相关联,从而
加快了运行速度、降低了功耗。例如,Blackfin 处理器既
有运算寄存器或d2reg 寄存器,又有地址寄存器或preg 寄
存器。
⑥DMA[4 ] 数据的重排功能可以优化图像数据在内
存中的存储,这不仅可以提高内部存储空间的利用效率,
也可以提高数据的传输效率。虽然图像数据的传输也可
由软件实现,但会消耗大量的CPU 时钟周期,从而使DSP
的高速性能难以发挥,而由DMA 来完成同样的工作却不
占用CPU 的时钟周期。
2  硬件设计时的注意事项
采用ADSP BF533 处理器设计产品时,为了避免一
般的错误,除了要熟悉相关的规格书、硬件参考手册[5 ] 以
及处理器的勘误表外,在元器件的选择、中断和复位的设
置以及信号的完整性方面也要特别地关注。如果考虑周
全,设计仔细,那么整个系统的设计将减少大量的重复工
作,从而缩短设计周期。
(1) NMI 极性
NMI 全称为Non Maskable Interrupt ,即非屏蔽中断
请求信号。对于ADSP BF531/ 532/ 533/ 535/ 561 ,NMI
引脚激活为高电平;对于其他的处理器,NMI 引脚激活为
低电平。只有这样,才便于同标准的外围设备连接。同
时,也要注意NMI 引脚是否可用它的非激活状态,特别是
不能让NMI 引脚悬空。
(2) 电压范围
直接将5 V 电压连接到引脚可能会损坏引脚,并产生
故障。当Blackfin 处理器输出连接到5 V 输入设备时,可
能会引起引脚左漂移或被上拉到5 V ,而大多数处理器引
脚(除了两线接口引脚) 是不能超过5 V 电压的。所以,引
脚的电压变化应当保证在其规定的电压值或小于其许可
范围的最大值内,高电压中采用限流电阻是不能起到完全
的保护作用的。
(3) 信号完整性
破坏信号完整性将直接导致信号失真、定时错误,以
及产生不正确的数据、地址和控制信号,从而导致系统延
误甚至崩溃。快速的信号上升时间和下降时间是引起信
号完整性的主要问题。处理器的每个引脚上升、下降斜率
不同,一些引脚对噪声和其他引脚的信号反射具有很大的
敏感性差异。采用简单的信号完整性处理方法可以防止
线上传播反射信号干扰时钟和同步信号,其中短的走线和
阻抗特性对以下的信号显得尤为重要:
①CLIN K引脚应当有相应的驱动阻抗匹配;
②SPORT 口信号( TCL K,BCL K,RFS , TFS) 应当采
用终结;
③ PPI 引脚(如PPI2CL K和同步信号) 也同样受益于
标准的信号完整性技术。
(4) 复 位
Blackfin 处理器的引脚没有滞后作用,因此需要一个
单调的上升或下降过程。同时,复位引脚不能直接连接到
R/ C 延时电路上,因为Blackfin 处理器对这种电路噪声比
较敏感,所以在设计复位电路时应当由一个复位芯片产生
一个复位信号。
(5) 旁路电容
当高速的电路对内部供电端加上适当的旁路电容时,
对于电容的选择有两件事需要特别考虑:
①当处理器运行频率高于100 MHz 时,电容要小,
而且走线应当短以减小感应系数。如果选择0402 的表贴
电容,会比更大尺寸的电容效果要明显。
②小电容值比大电容值更容易引起LC 电路的自激。
在低于50 MHz 时应采用几个0. 1μF 的电容;在高于500
MHz 时则应采用VDD2INT 旁加0. 1 p F、0. 01 p F、0. 001
p F 和100 p F 的组合电容。
3  C 语言的优化方法
在对C 程序进行性能优化时,主要包括编译器的自
动优化和编译器无能为力的人为算法优化。在一般情况
下,算法优化总是比编译器优化更为有效。因此,在设计
时应当首先进行算法优化,检测评估当前的算法是否适合
在Blackfin 处理器上运行。在评估C 程序时,应检查其一
般运行情况以及“别名判别”特性,判断编译器是否能够始
终理解正在调用的数据。
同时,在对C 程序进行优化时,还必须结合所用处理
器的处理能力。在处理能力方面,不同的目标处理器各有
所长,各自具有针对某种数学运算特性而专门编写的指
令,如维特比(Viteribi) 运算、位多路复用、向量乘法和加
法等。在设计时这些都必须考虑,采用自己选择的算法,
以确定处理器是否能够实现这些运算。
最后,还要考虑不可移植部分的更改。之前讨论的优
化都是维持一个可以在任何平台上运行的C 程序。如果
在程序中添加某些针对Blackfin 处理器的代码,那么更改
后的程序将不可导入其他处理器;否则,要重新编写部分的
C 代码、添加编译指示,或在代码行中添加汇编语句。为了
修改方便,可以保留一个C 模型备份,以便进行验证。
3. 1  编译器优化
编译器是当今软件开发中最基本的工具。编译器的
性能[ 6 ] 将直接影响生成的可执行程序的性能。其中,改善
程序性能的最快捷、最简单的方法是使用具有优化功能的
编译器。一个好的编译器可以充分利用处理器的特性,使
优化工作自动化,而不必去翻阅厚厚的处理器手册。
编译器的优化设置是在Visual DSP + + 4. 5 开发环境
界面的“编译(compile) ”对话框中进行,也就是通过菜单
“项目(project) ”→“项目选项(project option) ”,对该对话
框进行设置。
在进行编译器自动优化设置时,可以对“输出列表文
件”、“保存临时文件”、“产生调试信息”、“跳过预处理”等
优化项进行适当的选择,使编译器的性能达到设计时的
要求。
3. 2  源码优化
算法优化是程序设计的关键,为了提高程序代码[7 ] 的
效率,必须对要处理的源码进行一定的优化。源码大部分
是用C 语言写成,所做的优化工作包括:
①使用寄存器变量代替局部变量。
②尽量避免使用超过三重循环的运算,因为ADSP
BF533 拥有2 个硬件循环寄存器。充分利用这两个寄存
器,可以实现零开销的硬件循环。
③在编写循环时,应使得上一次循环与下一次循环
没有相关性,并使用“# pragma VECTOR2FOR”标记内层
循环。通知编译器生成向量指令,硬件可以并行执行2 次
循环。
④尽量用定点运算。由于ADSP BF533 没有硬件
浮点单元,所以用定点运算比浮点运算要快得多。
⑤对于sin() 和cos ( ) 这样的复杂函数,可将常数数
组存储于内部全速SRAM 中,用查表来代替。调用AN2
SIC 的sin () 函数需要上百个周期,而用查表方法只需2
个周期。
3. 3  具体优化过程
优化是有侧重点的,优化是一门平衡的艺术,它往
往要以牺牲程序的可读性或
者增加代码长度为代价。虽
然有时可以通过优化程序代
码来提高程序的运行速度,
但在更多的时候, 需要针对
采用的特定硬件, 对程序进
行专用化来提高其运行速
度。最终, 将会构建一个速
度更快,但也更大、更复杂,并且不适于导入其他处理
器的专用程序。
下面分3 个层面来重点讨论如何进行优化:
①首先是程序优化,即尽可能利用编译器的自动优
化特性,实现代码优化。对于信号处理循环,编译器优化
相当有效,可以实现近20 倍的速度提升。但是,必须注意
的是,编译器优化只对部分代码区域有效。编译器优化不
能改变程序的算法,不会对程序进行全局更改,也不能大
规模重新排列数据。就编译器而言,正确性始终比提高性
能更重要。我们的目的就是为编译器提供一个安全的环
境,让其放心大胆地生成运行速度更快的代码;否则,它将
采取保守策略。
②第2 步就是修改程序。只有在不得已的情况下,
才对程序进行必要的修改。要将导入处理器的现成的C
程序精心构建成所谓的“优化C 程序”,可以在其中添加
一些编译指示,其他编译器会将这些编译指示当作代码注
释,从而维持一定程度的可移植性;还可以在一定范围内,
对内置函数和存储限定符等代码进行同样的修改。
③最后可以有针对性地重新编写部分代码,针对采
用的Blackfin 处理器的特性,利用专门特定的程序指令进
行修改程序,以提高效率。
为了最大限度地缩短设计周期和产品的上市时间,可
以采用以下的优化模型:首先,确定性能目标;然后,将C
程序导入Blackfin 处理器;再依次执行上述优化步骤,最
后逐渐实现预设的性能目标。
4  优化实例
下面以去方块滤波模块为例,简要说明代码优化前后
的差别。测试优化效果的方法:将参考代码JM8. 6 中的
去方块滤波C 程序模块[8 ] 加到原有的解码器中进行测试,
再与经过优化的程序模块的测试周期进行对比。选择的
测试图像序列为Clarie. cif 、Paris. cif 、Mobile. cif ,测试数
据如表1 所列。
点击看大图
从表1 可以看出,与优化前的JM8. 6 中的C 程序代
码相比,经过优化后的去方块滤波汇编模块效率提高了7
倍左右。
结 语
本文针对多媒体处理芯片ADSP BF533 的结构特
点,重点阐述了在设计过程中的注意事项和程序优化方
法。随着Blackfin 处理器的普及,ADSP BF533 已经广
泛应用于各种电子工程,相信本文对ADSP BF533 的学
习和应用开发能起到一定的帮助作用.

show_label.gif标签:  DSP  ADI  3G  互联网协议  ADSP BF533
PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

用户1539068 2009-12-8 20:21

用户188034 2009-9-14 19:35

看来要求还很多
相关推荐阅读
用户1414655 2012-11-28 16:09
给你们介绍一些毛骨悚然的骗人技术
星期六下午 2 点多, 我一个人乘70 路至四川路,当中我在和我老公通电话的时候发觉有人拍了下我的肩膀,刚开始我以为是遇到认识的人和我打招呼的,后来一看旁边是40 多岁的...
用户1414655 2009-11-24 23:01
通信电源蓄电池温度监测系统设计
0 引 言    在通信系统的设计和建设中,通信电源被称为通信系统的心脏,电源系统将直接影响通信系统的可靠性和稳定性。美国APC公司的一项调查结果表明,大约有75%以上的通信系统故障都是由于电源设备故...
用户1414655 2009-09-23 08:53
各种白光LED驱动电路特性评比
作者:    时间:2008-12-02    来源:52RD硬件研发         1996年日亚化学的中村氏发表蓝光LED之后,白光LED就被视为次世代照明光源最具发展潜力的元件,因此有关白光L...
用户1414655 2009-09-23 08:52
论机器视觉与图像分析技术
作者:    时间:2008-12-02    来源:52RD硬件研发         也许你仍然希望能得到咨询专家的帮助,不过紧缩包裹型(Shrink-Wrapped)开发工具包现在已经使得缺乏专业...
用户1414655 2009-09-23 08:52
LCD TV视频解码器技术概述
作者:    时间:2008-12-03    来源:52RD硬件研发          CD TV属于高整合性电子产品,它涵盖了演算法、软体、韧体、硬体、晶片、无线射频等领域,且许多专利仍是属于国外...
用户1414655 2009-09-23 08:52
液晶显示器的自动调光技术
作者:    时间:2008-12-03    来源:52RD硬件研发          最近几年大型液晶显示器的应用,从笔记型电脑、PDA、桌上型电脑用监视器,持续扩展至家用液晶电视等领域,液晶电视...
我要评论
2
5
关闭 站长推荐上一条 /3 下一条