基于多核处理器BWDSP1042的FFT性能优化 *
2021-07-02蔺丽华张美春王佳仪
蔺丽华,李 敏 ,苏 涛,张美春,王佳仪
(1.西安科技大学 通信与信息工程学院,西安 710054;2.西安电子科技大学 雷达信号处理国家重点实验室,西安 710126)
0 引 言
快速傅里叶变换(Fast Fourier Transform,FFT)广泛应用于信号、音频、图像等领域的科学计算与处理,是这些领域时频转换的基本研究工具[1]。FFT算法性能的优劣代表着DSP芯片处理能力的高低,FFT运算时间作为表征芯片性能的重要参数,各领域对于FFT计算与处理的实时性要求也越来越高[1-2]。
为响应国家大力发展国内集成电路产业的号召,打破国外的高计算性能领域的核心技术对我国的垄断,中国电科38所自主研发了一款具有自主知识产权的BWDSP产品。BWDSP1042[3]是一款运算速度快、功耗低、实时性强、便携的高性能双核DSP,又名“魂芯二号“,其底层架构、指令集和集成开发环境ECS都是38所自主设计与研发的。BWDSP1042是在第一代产品BWDSP100[4]的基础上所开发的,仍然是16条发射超长指令字(Very Long Instruction Word,VLIW)和4路单指令流多数据流(Single Instruction Multiple Data,SIMD)混合架构的数字信号处理器,但内核升级为eC104+,扩展了指令集,优化了存储空间,执行部件提升了运算性能,在物理存储空间上划分了程序空间和数据空间。
本文基于BWDSP1042的体系结构和指令编排,在开发环境ECS下完成FFT带有C程序调用接口的汇编程序,基于按时间抽选的基-2 FFT[5]算法进行结构优化,通过多阶合并、指令并行、循环展开、软件流水和高效寻址指令等方式进行并行计算,使用汇编程序的实际运行周期来衡量算法优化程度,并与BWDSP100和TMS320C6678函数库中的FFT做对比,使用Matlab程序验证本文汇编程序的正确性,按照误差阈值来判定FFT算法功能编写是否准确。……
