http://6004.mit.edu/currentsemester/tutprobs/caches_answers.html
给定 DM:直接映射缓存。
S2:具有最近最少使用替换策略的双向组相联缓存。
FA:具有最近最少使用替换策略的全关联缓存。
以下问题提供了内存读取的地址序列。每当您看到“...”时,您都应假设该序列从头开始重复。请记住,使用的是字节寻址;内存中连续字的地址相差 4。每个问题都会询问哪个缓存为该序列提供了最佳命中率。回答时要考虑稳态命中率,即在多次重复该序列后命中缓存的内存引用百分比。
哪些缓存对于序列 0、16、4、36、... 有最佳命中率?
答案是,对于 DM,位置 4 和 36 发生冲突。为什么?我想这与字节寻址有关。有人能解释一下吗?
答案1
在问题 4A 中,缓存长度为 8 个字,每个缓存行中有一个字(4 个字节)。直接映射缓存意味着整个缓存始终支持连续的内存块,这里是 32 个字节,因此您获得缓存内容 0..31 或 32..63 或 64..95 或...
当访问第一个 0 时,缓存为空,因此会丢失缓存,并将 0..31 加载到缓存中。
当访问 16 和 4 时,会命中缓存。
当访问 36 时,会丢失缓存,并将 32..63 加载到缓存中。
当循环再次开始时,会丢失缓存,并将 0..31 再次加载到缓存中。