龙芯开源社区

 找回密码
 注册新用户(newuser)
查看: 2849|回复: 5

MIPS Cache Architecture 分析文档

[复制链接]
发表于 2008-6-28 17:09:47 | 显示全部楼层 |阅读模式
文档见: http://people.openrays.org/~comcat/mydoc/mips.cache.arch.pdf

包括 MIPS Linux Cache 管理的关键代码分析
发表于 2008-6-29 09:51:26 | 显示全部楼层
好东西,慢慢看。
发表于 2008-6-29 11:44:54 | 显示全部楼层
康姆猫出品  必须要顶
发表于 2008-6-29 12:02:05 | 显示全部楼层
好东西!谢楼主!
发表于 2008-6-29 16:35:26 | 显示全部楼层
版主哥哥,问个Mips Cache的问题。我发现include/asm-mips/r4kcache.h里除了__BUILD_BLAST_CACHE生成的blast_xcache_yyy()系列函数以外,还有flush_xcache_line_yyy()系列。
从代码看来,blast系列大都包装cachexx_unroll32(),而flush系列包装cache_op()。我的感觉就是blast系列每次操作32行,flush系列每次操作1行,不知道我这么理解对不对?

另一个问题是,blast系列在flush_cache_all()等函数中调用,但从来没看见flush系列被调用过,为什么?
 楼主| 发表于 2008-6-30 09:43:42 | 显示全部楼层
>>版主哥哥,问个MipsCache的问题。我发现include/asm-mips/r4kcache.h里除了__BUILD_BLAST_CACHE生成的blast_xcache_yyy()系列函数以外,还有flush_xcache_line_yyy()系列。
>>从代码看来,blast系列大都包装cachexx_unroll32(),而flush系列包装cache_op()。我的感觉就是blast系列每次操作32行,flush系列每次操作1行,不知道我这么理解对不对?

恩,是的,从函数名也可以看出来。

>>另一个问题是,blast系列在flush_cache_all()等函数中调用,但从来没看见flush系列被调用过,为什么?

blast 系列只用在对整个 Cache 进行 flush 的情形;
对一行或一个地址范围 (range) 进行 flush 的情形,则只能用普通的操作 cache_op,效率低点但灵活,能精确控制。

本版积分规则

小黑屋|手机版|Archiver|Lemote Inc.  

GMT+8, 2019-9-20 18:30 , Processed in 0.173836 second(s), 18 queries .

快速回复 返回顶部 返回列表