说出以下陈述是否正确:
声明1: L2缓存的全局丢失率与L2缓存的本地丢失率相同。由于对于访问L2的内存引用,错过L1和L2相当于丢失L2,因为因为尝试访问L2而已经错过了L1(对于2个分层缓存的系统 - L1和L2)
声明2: L1缓存的全局丢失率与L1缓存的本地丢失率相同(对于2个分层缓存的系统 - L1和L2)
声明3: Ln缓存的全局丢失率与Ln缓存的本地丢失率相同(对于2个分层缓存的系统 - L1,L2,L3,... ,Ln)
答案 0 :(得分:6)
让我尽可能清楚地回答这个问题。
本地错失率 =此缓存中的未命中数/此缓存的引用数
全局错失率 =此缓存中的未命中数/处理器的引用总数
声明1:错误
说明:
没有。访问L2 = L1中的未命中数
处理器的引用总数=对L1的访问次数 (由于处理器所做的所有内存引用都是由L1缓存首次提供(试图提供)。
因此对于L2缓存,
本地MR = L2中未命中数/ L1中未命中数
全局MR = L2中的未命中数/对L1的访问次数
因此,对于L2,本地MR!=全球MR
声明2:正确
说明:
对于L1缓存,
本地MR = L1中的未命中数/对L1的访问次数
Global MR = L1中的未命中数/处理器的引用总数
处理器的引用总数=对L1的访问次数(因为L1缓存首先提供(尝试提供)处理器所做的所有内存引用。
因此,对于L1,本地MR =全局MR
声明3:错误,更正 - 对于具有n个分层缓存的系统L1,L2,...,Ln
说明:
此声明类似于声明1.这意味着对于2级系统中的L2,3级系统中的L3,4级系统中的L4等等...
我们在声明1中证明了对于2级系统中的L2是错误的。其余部分也有相同的解释。
因此,对于n级分层系统中的Ln,Local MR!= Global MR