并行多核体系结构基础——第五章的多级高速缓存中的包含、排他、NINIE策略
这里做题是一个难点,需要深刻理解包含、排他、NINE的实现流程和定义,建议逐字逐句阅读书本P154and155
多级高速缓存的设计中,一个相关的问题是内层高速缓存(容量较小)的内容是否包含在外层高速缓存(容量较大)内。
三种包含策略:
①包含(inclusive):如果外层高速缓存包含了内层高速缓存的内容,则称外层高速缓存为包含的(inclusive),或者具有包含属性。
②排他(exclusive): 如果外层高速缓存只包含不在内层高速缓存中的数据块,则称外层高速缓存相对于内层高速缓存是排他的(exclusive)。
③既不包含又不排他(Non-Inclusive non-Exclusive, NINE):包含性和排他性需要特殊的协议才能实现,否则包含性和排他性都无法保证,这种情况有时被称为既不包含又不排他(Non-Inclusive non-Exclusive, NINE)。
本文以题目为例子:
- 非包含:替换互不影响 (笔者尚且还存在疑惑!)
- 包含:L2→L1的反向消息,L1中相关联块会被替换出去
- 排他:L2总会存储L1中替换出去的块
- NINE:L2变化,L1不变
(a)非包含(本处,笔者尚且还存在疑惑!)本句为老师答案做出的解释,推理感觉不对。
(b)排他