硬件环境:DSP TMS320C6670开发板
时钟频率:1.2GHz
注:该型号DSP具有两条数据通路和两套寄存器,在测试结果中会体现。
代码版本1:
for(i=0;i<12;i++)
{
result*=a[i];
}
测试Cycles:101
代码版本2:
for(i=0;i<12;i+=2)
{
result*=a[i];
result*=a[i+1];
}
测试Cycles:59
代码版本3:
for(i=0;i<12;i+=2)
{
result1*=a[i];
result2*=a[i+1];
}
执行Cycles:54
代码版本4:
for(i=0;i<12;i+=4)
{
result1*=a[i];
result2*=a[i+1];
result1*=a[i+2];
result2*=a[i+3];
}
测试Cycles:30
结果分析:
版本1是最简单最原始的代码,版本2利用了两条数据计算通路的特点,性能得到了近1倍的提升,
版本3相较版本2,利用了两次计算结果不相关的方法(result1、result2),流水线性能稍有提升。
版本4则充分利用了数据通路、流水线处理等,并减少了循环次数,因而性能更优越。