我现在在dm8148 dsp 中添加一个算法,但是算法使用的时间有点长,没有办法实时处理,于是就想在dsp上用DMA将数据从ddr加载到L2,然后再L2上算完,再用DMA从L2 cp 回ddr,但是我使用了两个int*型的数据指向了L2 RAM 上的地址,然后使用另外两个int型的ddr静态数组,进行非常简单的数据相乘运算,运算量相同,都是8K,但是结果出人意料,ddr数组计算的时间比L2 RAM上的时间快很多,不能理解,希望有人能给我指点一下,谢谢了!如果我的操作方式不对,能指点一下吗?
xi pan:
思路是对的,加速就是这么做的,但是要注意L2 cache,L1 cache 的使用
lu pan:
回复 xi pan:
能不能说得再详细一点,谢谢!为什么我操作L2 RAM没有成功。。。。
xi pan:
回复 lu pan:
你的L2 ram和cache是怎么分的,再就是看看你的汇编代码,其实你只是省了ddr到L2 cache的时间,L2 ram里的数据还是要进入L1 cache的
lu pan:
回复 xi pan:
L2的分配的情况应该是ti 默认的配置,L2总共256K,其中128K用作cache, 128k用作RAM.
lu pan:
回复 lu pan:
@Allen Yin 谢谢了,帮我分析一下吧
Allen35065:
回复 lu pan:
抱歉,8148我并不了解,这里应该有更熟悉的工程师,你应该把你的代码贴出来,这样更加好分析一些,如果有些算法不能公开,就做一个简单的工程share到这里。
xi pan:
回复 lu pan:
你可以看看他对应的汇编代码,编译的时候有个选项可以看到asm