页着色与软件缓存分区
更新时间:2026-10-01。没有硬件分区支持时,OS 可用地址映射“悄悄”把缓存切开。
本文要回答的问题
- 物理页和缓存组有什么对应关系?
- 页着色如何减少相互干扰?
一、颜色即组集合
物理地址高位(页内之上)与组索引高位重叠,决定一个页映射到哪些缓存组——这就是“颜色”。让不同任务只使用不同颜色的物理页,它们的数据自然落在不重叠组上,等价软分区。
二、用途与代价
可显著降低多程序互扰、收紧实时下界,不需特殊 CPU;但 OS 要维护按颜色的空闲页,颜色数有限时分配受限,并要兼顾大页和虚拟迁移。
三、常见坑
- 全相联/不同索引几何下着色不适用。
- 颜色规划不对照缓存几何。
- 忽略分配碎片。
小结
页着色利用物理地址—组映射做软分区,用页管理复杂度换隔离与可预测性。下一篇 缓存刷新与一致性指令。
总结
物理地址的页帧号高位与缓存组索引高位天然重叠,于是一个页能映射到哪些缓存组是固定的——这就是页的"颜色";让不同任务只使用不同颜色的物理页,它们的数据就落在互不重叠的组上,无需任何专用硬件即实现缓存软分区,可显著降低多程序干扰、收紧实时系统的时间下界。页着色是用 OS 页管理的复杂度换隔离性:颜色数有限会造成分配碎片,还要兼顾大页、虚拟化和缓存几何,几何不匹配时该技巧直接失效。