在确定缓存是否命中或未命中时,地址中的偏移位代表什么?

问题描述 投票:0回答:1

我很困惑偏移位代表什么。它们在确定缓存是否命中或未命中方面发挥任何作用吗?

例如,如果我们有 4 个集合,每个块 2 个字节,每个集合 1 个块,那么我们需要使用 4 位地址映射。第一位是标签,接下来的两位是我们设置的编号,最后一位是我们的偏移量。我们正在使用直接映射缓存系统。

我的教授的笔记指出,如果我们首先寻找 0000,我们就会错过。这是有道理的,这是一个强制性的错过。但当我们寻找 0001 时,它就成功了。这是因为偏移位没有发挥作用吗?

我最初认为它在 N 集关联缓存中可能有用,但即使如此我也看不到它的作用。

我预计这两个地址都会丢失,但第二个地址却命中了。

caching
1个回答
0
投票

因此,在您的场景中,偏移量并不重要。但是,想象一下您的缓存中的集合允许存储多个块。在这种情况下,偏移量将指示标签将存储在该地址内的哪个块中。

一个集合可以允许存储两个块 - 在这种情况下,第一个空间中将包含偏移量“0”,第二个空间中将包含偏移量“1”。因此,您会出现“未命中”,但仍然可以存储在该缓存集中,而不会删除当前存储在其中的内容。

希望这是有道理的!

© www.soinside.com 2019 - 2024. All rights reserved.