Caching 直接映射缓存命中&;错过

Caching 直接映射缓存命中&;错过,caching,memory,binary,hit,Caching,Memory,Binary,Hit,4位地址 标签1位 索引2位 偏移量1位 每个块2字节 4套(每套1块) 我试图确定以下地址是命中还是未命中。我正在介绍我迄今为止获得的信息。 (所有积分将计入堆栈溢出) 地址 十四, 第三组 v=0 标签=1 偏移量=0 九, 设置0 v=0 标签=1 偏移量=1 二, 第1组 v=0 标记=0 偏移量=0 六, 第三组 v=1 标记=0 偏移量=0 三, 第1组 v=1 标记=0 offset=1因为它是一个直接映射缓存,并且有4个集,这意味着它有4个块的容量 1) 地址14,二进制为:11

4位地址

标签1位

索引2位

偏移量1位

每个块2字节

4套(每套1块)

我试图确定以下地址是命中还是未命中。我正在介绍我迄今为止获得的信息。 (所有积分将计入堆栈溢出)

地址

十四,

第三组

v=0

标签=1

偏移量=0

九,

设置0

v=0

标签=1

偏移量=1

二,

第1组

v=0

标记=0

偏移量=0

六,

第三组

v=1

标记=0

偏移量=0

三,

第1组

v=1

标记=0


offset=1

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

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

假设在开始时缓存是空的,我们没有命中,我们将这个字存储在缓存中。标记1,在集合3处

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

1号位,0号位,我们错过了。因此,我们将其存储在集合0上

3) 二进制地址2;0010

这个街区在第一集,它是空的。我们错过了一次,把它保存起来。使用标记0

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

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

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

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

假设在开始时缓存是空的,我们没有命中,我们将这个字存储在缓存中。标记1,在集合3处

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

1号位,0号位,我们错过了。因此,我们将其存储在集合0上

3) 二进制地址2;0010

这个街区在第一集,它是空的。我们错过了一次,把它保存起来。使用标记0

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

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