烦请TI工程师、论坛大神解惑:
在ccs5.4版本下,使用TI 6678芯片。程序相关配置如下:
1.单核core0处理,且代码都放在LL2
2.cache开辟情况如下:
L1P为32K,LID为32K,L2为128K
3.编译器优化-o3
分别采用11x1模板、1x11模板处理640x512的图像,每个像素占2个bytes。(处理方式为求极大值)。
其中11x1模板编译整幅图像求极大值需耗时2.57ms左右,1x11模板遍历整幅图像求极大值需耗时0.98ms左右。
相应的源代码及汇编头文件见附录。
那么我的问题来了(= - =):
1.两种不同处理方式耗时的如此大差异的原因是因为11x1模块处理时取指次数太多造成的?
如果是,是因为DSP硬件结构、指令周期决定的?如果不是,又是什么原因?
2.如附录代码所示。这样操作像素点是否恰当?是否还有更好的方式?
3.如果在不更改算法的条件下,可有什么巧妙的方式规避这种耗时的操作?
4.参考了相关优化资料,这般使用内部函数、编译器指令使用是否恰当?
优化无止境啊,小白还烦请TI工程师、论坛大神指教一二,万分感激!