在DSP的算法设计中,经常会遇到这两个的选择,还是两者可以结合一起?俺至今没搞清楚。
option 1: cache
option 2: edma + L2 SRAM
在TI 的网站上, 做过一个关于VLIB算Canny edge的计算, 如果pipeline设计得当, option 2 速度更快。 事实上还取决于很多因素
1. 数据的locality
2. processing的复杂性,越复杂,似乎在L2上越有优势
3. SRAM的大小,目前TI DSP大都最多可以设置 128KB or 256KB L2 SRAM, 于是EDMA的一次搬运数据多少也直接影响速度。
4. edma的设置, 是单次大量数据,还是linked, chained, 或者 ping-pong的都影响很大。
继续前的小结:
1. 先cache吧, 注意cache cohernce,
2. 如果不够快,再测试edma, 最后考虑ping-pong.
更好的建议?????多谢