cache coloring 缓存着色

cache coloring虽然实现起来很复杂,但其原理很简单。 下面我用几句话简单说明cache coloring的原理:

  • 颜色(color)是物理 page 的颜色。
  • 缓存一个page需要使用一些连续的set,这些set的集合叫做 cache bin。 使用相同 cache bin 的 pages 具有相同的颜色。
  • 物理地址 bitsy-1:12 值相同的所有 page 具有相同的 color 。(为什么是12,因为假设使用4KB page)
  • 物理地址的 bitsy-1:12 也叫做 color bits 或 cache bin bits 。
  • 至此,我们可知,系统中全部的物理内存页就都有了颜色。
  • Hypervisor为VM分配物理内存页时,每个VM使用不同颜色的物理内存,就可以避免VM之间互相踩踏对方的cache。(因为不同颜色的物理内存页的cache一定在不同的set中。)
  • OS在为进程分配物理内存页时,每个进程使用不同颜色的物理内存,可以避免进程之间互相踩踏对方的cache。

关于cache的基本概念参考上一篇https://blog.csdn.net/power1952/article/details/136472919

相关推荐
Wang's Blog4 小时前
Go-Zero项目开发5: 数据库与缓存一致性问题及 go-zero 缓存机制解析
数据库·缓存·golang
蚰蜒螟4 小时前
从 Jedis 到内核:深入剖析 Redis BRPOP 的阻塞与唤醒机制
数据库·redis·缓存
后端观测站5 小时前
第八篇:Redis 为什么不会每次修改都写磁盘?
数据库·redis·缓存
Lucis__9 小时前
基于Cache替换算法的LRU缓存实现
数据结构·c++·算法·缓存·lru
辞旧 lekkk15 小时前
【Redis初阶】常见数据类型
开发语言·数据库·c++·redis·学习·缓存·bootstrap
吴声子夜歌15 小时前
Redis 3.x——集群节点通信
redis·缓存·集群
子非鱼94271 天前
07-Flutter 鸿蒙实战 07:故事集列表与缓存设计
学习·flutter·缓存·华为·harmonyos
数行拙笔1 天前
Redis---list类型
数据库·redis·缓存
fīɡЙtīиɡ ℡1 天前
本地进程缓存
缓存
数行拙笔1 天前
Redis---set类型
数据库·redis·缓存