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.

cache 读写miss 问题



请问,关于cache  比如L1D 数据cache,为什么会有写miss呢?  写一个数据到DDR或者SDRAM,本来就是一个从无到有的过程。

对于读cache miss我可以理解,就是说CPU请求的数据在L1D cache中没有,请求不到所以miss,但是写miss  感觉有点理解不了。

  • 如果这个DDR的地址前面被读过,则被Cache到L1D,情况就不一样了,那就是先写到L1D了。

  • Tony Tang 说:

    如果这个DDR的地址前面被读过,则被Cache到L1D,情况就不一样了,那就是先写到L1D了。

    谢谢,Tony:

    明白了。

    想请教另外一个问题,从性能优化的角度,如何对c语言算法代码进行修改,以提升cache命中率,

    包括程序cache命中率和数据cache命中率。关于cache优化,也了解一些基本概念

    比如cache line size,DDR与cache 映射机制  直接映射 组相关 全相关等。但是,

    不知道如何修改应用程序,才能提升程序cache和数据cache的命中率。

    具体使用中,往往是知道了程序中有cache miss出现,但是不知道如何改进减少cache miss。

  • 不知楼主对Cache优化是否有了更深入的了解?

    我这里也有几个问题想请教TI的专家们:

    1、比如6678,我们在使用时,除了对cache 进行大小配置等,还有那些设置可以提升代码运行的性能?对于一个已知代码,只修改cache相关的设置,计算性能提升能有多大的空间?

    2、如何测试代码中的cache命中率?我用ccs5时,有用到一个叫 cache analysis 的分析工具,测试一段代码,结果得到的时 L1D 、L1P miss次数为零,以致出现困惑,miss 率会为0 ?

    3、如楼主,如何提升cache命中率,是否有相关的文档介绍?

    谢谢