我用的 ARM6410 (532MHz) + mDDr(外频133MHz)系统,burst为8。
我的程序里有大量的形如
N=19200;
for (i=0; i
{
a = b*c+d;
}
这样的数组读写代码。
对于数组读取,因为有cache,一次性读8个32位数据效率很高,
但是对于写入就适得其反,无论写入的是1字节还是4个字节,写回操作费时都与写回8个32位数据一样。因此,上面的循环每秒只能循环20M次左右。
如果使用汇编,可以使用stmia指令一次性写入8个32位数据,但我觉得在C里面大量嵌入汇编代码很难维护。
1。我上面描述的“无论写入的是1字节还是4个字节,写回操作费时都与写回8个32位数据一样”,这种理解是否有误?写缓冲为什么不能像读缓冲一样高效率工作?
2。已知我的循环会顺序写回一个数组的情况下,能否配置写缓冲,满8个脏数据再一次写入?
6410坛子里有很多人在用吧,帮你顶起吧,又落到第二页了。。。