请问,关于cache 比如L1D 数据cache,为什么会有写miss呢? 写一个数据到DDR或者SDRAM,本来就是一个从无到有的过程。
对于读cache miss我可以理解,就是说CPU请求的数据在L1D cache中没有,请求不到所以miss,但是写miss 感觉有点理解不了。
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 比如L1D 数据cache,为什么会有写miss呢? 写一个数据到DDR或者SDRAM,本来就是一个从无到有的过程。
对于读cache miss我可以理解,就是说CPU请求的数据在L1D cache中没有,请求不到所以miss,但是写miss 感觉有点理解不了。
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命中率,是否有相关的文档介绍?
谢谢