学习了很长时间关于页着色的概念,特记录下。
page coloring只对大cache有意义,也就是L2,L3这些动辄上M的cache有意义。
还有就是面向的是PIPT way/set组织的data cache。如果是Virtually indexed的话,没意义。
首先说cache的一些名词
cache entry:
包括tag,flag bits以及cache line的cache row
cache line:
大小为若干字的与内存相对应的cache数据。
cache way/set:
将cache line等分成如干个set,每个set包括way个cache line
每个cache way包含cache size/way/cache line个cache set。
cache bin:
在基于set/way的高端cpu中,给定一块连续的OS或者应用程序分配的物理内存,
会按照一定的映射算法,落在一块连续的cache set中。这个连续的Cache set集合
就是cache bin。
对于一个物理地址,其在OS和cache的角度来看是不同的:
在OS看来(4K页):
[ 页帧号(20位) ] [ 页内偏移(12位) ]