This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ddr cache 的问题

各位专家:据我看文档说ddr是默认不cache的,我加了

CACHE_enableCaching (128);
CACHE_enableCaching (129);
CACHE_enableCaching (130);
CACHE_enableCaching (131);

enable了48兆的ddr内存,但是运行的时间还是差不多,请问这是为何啊?

  • 1. 需要确认你的数据放在上述对应的DDR空间;

    2. 设置合适的L1、L2 cache size;

    3. 循环多次测试对cycle取平均。

  • 1.必须保证自己的算法用到的内存在48MB的空间上

    2.感觉你上面代码应该是enable 64MB空间

  • 谢谢Andy Yin1,L1d和L1p是全cache,L2是256kb,数据放在ddr最开头的内存里面。我的那些代码对应的应该是ddr开头的64M空间吧,文档里面也找不到

    CACHE_enableCaching ( Uint8  mar  ) 

    的mar到底是什么。如果不使用CACHE_enableCaching是肯定不cache ddr的么?问题比较多,谢谢!

  • 是滴,算错了,不好意思。我那样声明的是ddr开始的64M吧?如下图,哪里也找不到CACHE_enableCaching(CACHE_MAR128)里面的CACHE_MAR128的定义啊!

    求大神帮助啊!不胜感激

  • 晕倒,你都贴出MAR的表格了,还在问MAR是干嘛的!在手册里不是有讲述MAR register的定义功能么!

    每个MAR是用于定义对应memory段的cache及prefetch属性,如MAR128对应0x800000000开始16MB memory的属性。

    确认你的数据存放的地址段,通过查看寄存器再一次确认L1,L2cache配置大小,寄存器在corepac手册中都有,你好好看看也是一个学习的过程。

  • 你好,他想看的可能是这个