如何提高DDR内存的burst写入效率

suaimei   2010-6-8 10:54 楼主
我用的 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个脏数据再一次写入?

回复评论 (2)

upupupupupupupupupup
点赞  2010-6-9 10:30
6410坛子里有很多人在用吧,帮你顶起吧,又落到第二页了。。。
点赞  2010-6-9 20:44
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复