Cache包含策略
三种包含方式
设计多级cache可以有很多种方式,可以根据一个cache的内容是否同时存在于其他级cache来分类,即Cache inclusion policy。
如果较低级别cache中的所有cacheline也存在于较高级别cache中,则称较高级别cache包含(inclusive )较低级别cache。
如果较高级别的cache仅包含较低级别的cache中不存在的cacheline,则称较高级别的cache不包含(exclusive )较低级别的cache。
如果较高级cache的内容既不严格包含也不排除较低级cache,则称为非包含非排他(non-inclusive non-exclusive ,NINE)cache。
方式的比较
inclusive policy
优点在于:在每个处理器都具有私有cache 的并行系统中,如果存在cache miss,则检查其他私有cache以查找该cacheline。如果L2 cache包含L1 cache并且在L1 cache中miss,则不需要再搜索L1 cache。这意味着与inclusive cache和 NINE cache相比,inclusive cache的miss 延迟更短。
缺点是:cache的内存容量由L2 cache决定的。exclusive cache的容量是层次结构中所有cache的总容量。如果L2 cache较小,则在inclusive cache中浪费的cache容量更多。
exclusive policy
尽管exclusive cache具有更多的内存容量,但相比NINE cache,它需要占用更多的带宽,因为L1 cache evict时需要linefill数据到L2 cache。
因此,需要基于成本和收益评估,然后进行选择。
转载自知乎作者xpuu,写的比较详细:https://zhuanlan.zhihu.com/p/443090974