2) L1、L2的FFT运算测试
在系统的分析设计中,特别如通信、雷达、图像传输、声纳等应用环境中,不可避免地进行频谱分析。FFT是信号频谱分析处理不可或缺的强大算法工具,也是DSP性能测试的重要指标。由于作FFT运算时,通常是在性能最优的存储器中进行,外部的RAM不是必要的外设配置,而且性能也不如L1数据缓存和L2,因此应当选择后两者作为测试对象。作者针对两者进行1024点的复数FFT测试,为了使其性能测试具有通用性和可验证性,下文使用AD公司提供的函数CFFTN作为评测对象,该函数的内核是纯汇编编写,效率在95%以上。函数原型声明如下:
函数的引用方式为CFFTN(in,t,out,w,wst,2048,0,0)。因为复数包含实部和虚部,因此对于1024点FFT,该函数参数中的FFT缓冲的长度为2048。表Ⅱ给出了CFFTN参数放在不同存储器区域的FFT测试数据。之所以需要进行这样的测试,是因为L1数据缓存的资源比较稀缺,合理使用L2,有助于在DSP性能和L1的资源消耗间找到一个平衡点。测试环境:DSP核心时钟fCCLK为300MHz,测试样本数目为15。
从表Ⅱ中可以看出,当数据全部在L1中处理时速度最快,大约是全部在L2中处理速度的5.67倍。当部分参数在L2中时,处理的速度介于前两者之间。其中,输出数组out放在L1数据缓存中时FFT性能显著提高,旋转因子表数组w的位置对FFT性能影响也较大。因此,应当优先保证这两个参数在L1数据缓存中配置空间。