并行多核体系结构基础——第五章的多级高速缓存中的包含、排他、NINIE策略

这里做题是一个难点,需要深刻理解包含、排他、NINE的实现流程和定义,建议逐字逐句阅读书本P154and155

多级高速缓存的设计中,一个相关的问题是内层高速缓存(容量较小)的内容是否包含在外层高速缓存(容量较大)内。

三种包含策略:

包含(inclusive):如果外层高速缓存包含了内层高速缓存的内容,则称外层高速缓存为包含的(inclusive),或者具有包含属性。

排他(exclusive): 如果外层高速缓存只包含不在内层高速缓存中的数据块,则称外层高速缓存相对于内层高速缓存是排他的(exclusive)。

既不包含又不排他(Non-Inclusive non-Exclusive, NINE):包含性和排他性需要特殊的协议才能实现,否则包含性和排他性都无法保证,这种情况有时被称为既不包含又不排他(Non-Inclusive non-Exclusive, NINE)。

本文以题目为例子:

image.png

  • 非包含:替换互不影响 (笔者尚且还存在疑惑!
  • 包含:L2→L1的反向消息,L1中相关联块会被替换出去
  • 排他:L2总会存储L1中替换出去的块
  • NINE:L2变化,L1不变

(a)非包含(本处,笔者尚且还存在疑惑!)本句为老师答案做出的解释,推理感觉不对。

image.png

(b)排他

image.png

image.png

image.png

原文地址:https://www.cnblogs.com/wangzheming35/p/15674020.html