为了了解缓存着色的作用,搜集很多资料,但是都不甚满意。有时间会按照自己的理解写一篇博客介绍。
page coloring、cache coloring、缓存着色,是相同的技术,叫法不一样而已。
缓存着色的目的:为了充分利用大cache(例如6M二级cache)而产生的纯软件技术,不需要任何硬件改动。
实现方法:在linux内核的VM管理部分,在为进程分配内存时调用
适用条件:只有在cache是组相连(直接相连是组相连的一种特殊情况)结构时才能适用。
大体介绍每个资料特点,放到博客上供以后参阅。
1、陈怀临老师的博客
优点:该博客为了讲解缓存着色,铺垫了很多内存管理的基础知识;有些内容讲的浅显易懂,例如cache bin的概念;图例较多,便于理解,是所有关于缓存着色技术讲解最全的一篇博文;
缺点:博文里面有些举例不是很合适,有些反而起不到把概念解释清楚的目的,例如“大宋姐妹一盘棋”,“不要输在起跑线上”等比喻,虽然我能看懂,但总觉得还有更好的比喻方式;文字表述有的地方不是很清楚,段落不清晰,其实我写东西也这样,做技术的文字表达能力确实需要提高。
首席(陈怀临的绰号)的技术绝对没话说,首推这篇博文:http://www.valleytalk.org/wp-content/uploads/2011/06/pagecoloringplus.pdf
2、http://www.freebsd.org/doc/en/articles/vm-design/page-coloring-optimizations.html
该链接只是一个简单地关于page coloring的介绍,是freebsd的官网文档,里面的例子还是有些提示作用的。
3、http://blog.csdn.net/maray/article/details/3599845
该博文讲解简单,但是过于简单,不适合对体系结构了解不深的同学看。
4、http://en.wikipedia.org/wiki/Cache_coloring
维基百科的解释,没有原理的解释,用的图片还是日文的,亟需修改,但是给出了缓存着色技术在那些OS中实现了: Solaris,[2]FreeBSD,[1] NetBSD,[3] and Windows NT.[4]
其中给出的链接可以参考。