0

4位地址

标记 1 位

索引 2 位

偏移 1 位

每块 2 个字节

4组(每组1块)

我正在尝试确定以下地址是命中还是未命中。我正在介绍我迄今为止获得的信息。(所有功劳都归于堆栈溢出)

地址

14

设置 3

v = 0

标签 = 1

偏移量 = 0

9

设置 0

v = 0

标签 = 1

偏移量 = 1

2

设置 1

v = 0

标签 = 0

偏移量 = 0

6

设置 3

v = 1

标签 = 0

偏移量 = 0

3

设置 1

v = 1

标签 = 0

偏移量 = 1

4

1 回答 1

3

因为它是一个直接映射缓存,它有 4 个集合,这意味着它有 4 个块的容量。

1)地址14,二进制为:1110

假设一开始缓存是空的,我们错过了,我们将这个词存储在缓存中。标签 1,在第 3 组。

2)地址9,二进制为:1001

标记 1 ,设置 #0,我们错过了。因此我们将它存储在集合 0 上。

3) 二进制地址2;0010

这个块继续设置 1 并且它是空的。我们错过并存储它。带有标签 0

4) 二进制地址 6:0110 因为我们已经在集合 3 中存储了一个块,所以我们比较它。由于它们的标签不同 Tag 0 != Tag 1 我们驱逐前一个并存储新的。错过

5)二进制地址 3:0011 这个块进入集合 1,因为我们已经在集合 1 中有一个块,所以我们比较它。由于它们的标签等于 0 = 0,我们得到了一个 HIT。

于 2013-12-03T08:45:03.687 回答