缓存着色技术(Cache Coloring)

原创 2008年12月25日 01:20:00

现代的cache设计大都采用set-association方式,即提高利用率又节省硬件。color只能提高这种cache的使用率。如果采用full-association则color没有用处。 而direct-mapped cache是set-association cache的一种特殊情况而已。

简单说来,整个内存被分为n个cache page,每个cache page包含数量固定的cache line。 
整个cache被分为m个cache way,每个cache way有相同数量的cache line。
内存中的数据依据自己在内存中的cache line索引[getCacheLineIndex(addr)]只能被放入某一个cache way中相对应的cache line里面。假设已经从地址中提取出cache line的索引i,那么硬件会同时访问所有cache way的第i块cache line,找出一个拥有空闲行i的cache way,随后数据就可以放到这个空闲行中。如果m个cache way中都没有找到空闲的地i行,则启动淘汰策略,淘出一个空行~ 

比如一个cache有4个cache way(4路cache),每个cache way有16个cache line。某个数据结构的内存地址的cache line索引为2,则它只能被放入的某个cache way ( one of the 4 cache ways ) 的第2个cache line中。假使所有的cache way的第二个cache line都被使用,则必须换出某一个。

因此如果多个数据地址的cache line相同,即使cache中还有很大的空间,还是竞争激烈。 

总结:
(1)多路cache(组相连cache),路间可选,路内固定
(2)对于M路N行Cache,当cache line索引为I(0<=I<N)的地址数超过M时,必然发生冲突,小于M时必然没有冲突
(3)Cache大小一定时,路数越多,发生冲突的概率越小,但电路也越复杂


为了避免Cache替换,不同的数据结构的地址对应的cache line索引最好不要相同,否则冲突的概率增大。


【more】
而使用slab的数据结构都是分配和释放频繁的小的数据结构,而且数目很多,比如dentry,如果没有color,他们在内存中相对于页的偏移量很可能相同,则其cache line索引也相同,对于x86这种2way 的cache结构,即使cache size很大,也一样使用率低下。color则将不同slab中的同样的数据结构的地址进行一个偏移,因此这些数据结构的cache line索引就错开了。从而能更好的利用cache 


版权声明:本文为博主原创文章,未经博主允许不得转载。微信hustos联系博主。

[Cache]页着色小结

学习了很长时间关于页着色的概念,特记录下。 page coloring只对大cache有意义,也就是L2,L3这些动辄上M的cache有意义。 还有就是面向的是PIPT way/set组织的da...
  • insswer
  • insswer
  • 2013年12月08日 16:47
  • 1371

slab着色

看过ULK,LDD和kernel代码后对内存管理的理解加深了不少,但还有一点一直不甚明了,SLAB里面的着色(color)一直不知道什么原理. 关键对CPU CACHE 理解不对. 今天仔细搜了搜终于...
  • zqy2000zqy
  • zqy2000zqy
  • 2006年08月29日 16:41
  • 6271

cache组相连,页着色

粗略的了解了下cache的结构: cache分为全相联,直接相连,组相连。重点讲讲组相连。 什么是cache行?cache是以行为单位进行存储的,如每个cache行为连续的32B。当然,每个cac...
  • yarsen
  • yarsen
  • 2012年11月25日 20:54
  • 1984

关于“缓存着色(cache coloring, page coloring)”技术的相关资料介绍

关于缓存着色(cache coloring)的相关资料
  • qianlong4526888
  • qianlong4526888
  • 2014年01月08日 17:22
  • 3435

缓存着色技术(Cache Coloring)

现代的cache设计大都采用set-association方式,即提高利用率又节省硬件。color只能提高这种cache的使用率。如果采用full-association则color没有用处。 而di...
  • midion9
  • midion9
  • 2016年03月17日 09:01
  • 391

缓存块着色算法和优化的缓存块着色算法

今天看了一篇缓存优化相关的论文,里面介绍了缓存块着色算法和优化的缓存块着色算法,整理如下。         如图1所示,将整个指令存储器划分为以缓存大小为单位的区间,假设缓存大小等于4 个缓存块的大小...
  • ldld1717
  • ldld1717
  • 2015年12月13日 21:05
  • 727

缓存着色技术(Cache Coloring)

现代的cache设计大都采用set-association方式,即提高利用率又节省硬件。color只能提高这种cache的使用率。如果采用full-association则color没有用处。 而di...
  • maray
  • maray
  • 2008年12月25日 01:20
  • 9870

着色

Alice是一个奇怪的画家。她想对一副有N*N个像素点组成的画进行着色,N是2的幂(1,2,4,8,16等等)。每个像素点可以着成黑色或白色。   Alice着色方案不是唯一的,她采用以下不确定的规则...
  • chen1352
  • chen1352
  • 2016年07月13日 19:38
  • 153

Cache 缓存技术

什么是缓存? Web 应用程序通常都是被多个用户访问。一个Web站点可能存在一个“重量级”的加载,它能够使得站点在访问的时候,拖慢整个服务器。当站点被大量用户同时访问的时候,访问速度缓慢是大部分网站...
  • xiao672585132
  • xiao672585132
  • 2012年01月05日 14:31
  • 6185

高端CPU Cache Page Coloring

浅谈高端CPU Cache Page-Coloring(1)浅谈高端CPU Cache Page-Coloring(2)浅谈高端CPU Cache Page-Coloring(3)浅谈高端CPU Ca...
  • pizi0475
  • pizi0475
  • 2014年01月02日 21:04
  • 2410
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:缓存着色技术(Cache Coloring)
举报原因:
原因补充:

(最多只允许输入30个字)