SHARCDSP芯片在阵列信号处理中的性能研究-新品速递_第1页
SHARCDSP芯片在阵列信号处理中的性能研究-新品速递_第2页
SHARCDSP芯片在阵列信号处理中的性能研究-新品速递_第3页
SHARCDSP芯片在阵列信号处理中的性能研究-新品速递_第4页
SHARCDSP芯片在阵列信号处理中的性能研究-新品速递_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档-下载后可编辑SHARCDSP芯片在阵列信号处理中的性能研究-新品速递SHARCDSP芯片在阵列信号处理中的性能研究

熊霞,斯炜玮,吴瑛(信息工程大学信息工程学院河南郑州450002)

随着DSP技术的快速发展,实时处理速度的提高,动态范围的增大,数据格式也由定点型向浮点型转换并且支持汇编和语言编程,这些优势使得DSP的应用越来越广泛。AD公司的ADSPSHARC系列处理器是一种高性能的数字信号处理器,这一系列芯片内部采用超级哈佛结构,集成了大容量的双端口SRAM,程序/数据外部总线以及I/O外设,从而形成了一个完整的数字信号处理系统。ADSP21160就是其中的一种,他支持32位浮点和定点数据格式,内部SRAM容量4Mb,片内有2个相同的运算单元,支持SIMD(SinglelnstructionMultipleData)方式,增强了并行处理能力,数据总线的宽度64位,程序总线宽度32位,数据传输吞吐率大,性价比高。本文在实现基本的阵列信号测向算法一MUSIC算法中就选用了ADSP21160芯片。2MUSIC算法MUSIC(MultipleSignalCharacteristic)算法即多重特征结构算法是基本的阵列信号处理方法,通过对来波的空间谱进行估计,并分析其能量的分布状态,以确定空间来波的方向,也就是解决如何从背景噪声中检测出空间源信号并估计出信号的参数,如方位角、仰角等。这种测向技术具有在较强干扰环境下同时对同信道内多个信号进行快速、高灵敏度、高精度的测向功能。

3VisualDSP++的C/C++实时运{亍模式以及C/C++与汇编语言的接口VisualDSP是集成的开发软件平台,支持ADSPSHARC系列处理器的各种产品。VisualDSP通过图形窗口的方式和用户进行信息交换,可以在窗口中进行工程管理,编辑,编译和调试程序,大大提高了编程效率。同时支持汇编语言和C/C++,汇编语言与硬件结合紧密,指令代码短,占用内存少,适合运算速度要求高的场合,而C/C++基本脱离硬件,可读性和可移植性强,开发效率高。程序开发中要将汇编语言和C/C++结合起来,发挥两种编程方法的优势,写出可移植性强,执行效率高的DSP应用程序。3.1C/C++的运行模式利用C/C++开发DSP程序,必须熟悉(C/C++的运行模式以及堆栈的配置、数据访问等。C/C++的运行环境就是一系列的约定,包括寄存器、存储器的使用和程序控制都要遵循约定,在C/C一中调用汇编子程序也要遵循这些约定。程序的运行环境如图2所示。

在C/C++运行模式中,对寄存器的访问有限制,即编译器寄存器和堆栈寄存器属于专用寄存器,不能作为其他用途,寄存器的值不能改变。预保留寄存器和用户寄存器在使用前要先保留这些寄存器的内容,并在程序返回时恢复其内容。使用可擦写寄存器时不必考虑以前的内容,不用保存和恢复寄存器的内容。C/C++运行环境要求指定段名的存储器来放置程序代码,并和链接描述文件的输出段名相对应,在VisunlDSP…-环境中有默认的存储器段名。堆栈在语言程序设计中比较重要,C/C++运行时使用堆栈自动保存变量和返回地址,系统使用帧指针和堆栈指针管理堆栈。

4提高MUSIC算法效率的途径在实际应用中,对测向时间的要求很严格;MUSIC算法中复信号特征值分解的程序复杂,而谱峰搜索所涉及的计算量大,用ADSP21160实现MUSIC算法,其难点在于如何充分利用芯片的结构特点提高程序效率。儿丁满足系统设计的要求,同时从开发程序的简化考虑。总体框架用C/C--语言来实现,复信号的特征值用C语言实现,同时为了缩短程序运行时间,采用了以下措施:4.1充分利用C/C++语言和汇编混合编程MUSIC算法中特征值分解的程序比较复杂,用C/C++实现比较方便,在谱峰搜索中涉及到大量计算COS(x)和sin(x)值,耗用的时间多,采用了查表法,在C语言中插入汇编来实现。在C/C++中计算一个COS(J)的值需要57个指令周期,采用汇编子程序,同时计算出cox(x)和sin(J)只需要37个指令周期,整个程序执行效率提高了30%左右。

4.2尽可能使用ADSP专门的库函数ADSP除了支持标准的C/C++库函数外,还有专门的库函数,可以实现向量和矩阵运算、矩阵转置、滤波器等,这些库函数大多数是用汇编实现的,效率较高,可以直按调用,在谱峰搜索中有大量的矩阵运算,用DSP专门的库函数实现减少了指令周期。4.3利用VisualDSP++中有功能强大的优化器VisualDSP++中优化器充分利用硬件特性对C/C++程序进行优化,ADSP2]160内部具有多总线结构、多运算器结构、指令缓冲与程序流水结构以及长指令结构,优化器尽量利用这些结构资源来优化程序,提供的代码空间和的运行速度,优化器特别对循环语句的优化效率高,可将效率提高10~20倍.4.4利用ADSP21160SMD模式工作ADSP21160内部有两个完全相同的处理单元(PEx和PEy),通过设置系统控制寄存器,他既可以工作于SISD模式下,也可以工作于SIMD模式下,当处在SIMD模式下处理器执行以下并行操作:将同一条指令同时发送到两个处理单元。从存储器载人两组操作数分别送到两个处理单元。同时在两个处理单元里执行同一条指令。将两个运算输出结果同时保存到存储器中。虽然两个处理单元共用一套地址发生器,但是在两个处理单元中有独立的内存访问路径逻辑单元,所以在进行内存访问时,对于地址发生器产生的同一地址,两个处理单元可以访问到不同地址中的数据,使得单指令多数据得以实现。SIMD模式下的指令操作得以扩展,一方面是数据传送指令的扩展,数据传送的SIMD模式是基于64位宽的数据线基础上,在对个处理单元PEx的寄存器堆中的内容执行某个操作的同时,自动对第二个处理单元PEy的寄存器堆执行与个处理单元相同的操作;第二个处理单元是隐含操作,在SIMD模式下自动执行。两个单元可并行执行同一条指令,而操作数不同,这就使处理器的计算能力提升了一倍,效率得以提高;另一方面是条件指令的扩展.两个处理单元的条件指令并不是完全复制的,而是由两个处理单元的状态共同决定,其规则如表1所示。

在汇编程序中实现SIMD模式主要通过指令体现,在C/C++运行环境中要实现SIMD的工作模式有特定的条件限制,必须对数据的大小和在存储器中的位置做合理的安排,然后在指令前标注#pragmaSIMD_for即可实现SIMD工作模式.本文通过使用ADSP21160来实现MUSIC算法,详细讲解了C/C++语言的运行环境和汇编语言接口,并且充分利用ADSP21160中各种优化方式特别是该芯片的SIMD工作模式来提高程序的执行效率。笔者认为熟悉芯片硬件结构并充分理解C/C++的运行模式对于提高程序效率有很大的帮助。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论