缓存地址映射如何工作?

时间:2018-02-21 20:18:10

标签: cpu cpu-cache

我开始了解cpu缓存在基础层面的工作原理。虽然我对一点感到困惑。当cpu根据碰巧具有相同标记和设置的两个地址获得命中时会发生什么?

假设我们有一个带有16字节块的64字节缓存。地址是12位,它使用直接映射。标签将具有5位,该组将具有位,并且偏移将具有5位。如果我们有两个地址0x070(0000 0111 0000 inn二进制)和0x068(0000 0110 1000),我们看到标签(前五位)是相同的,设置是相同的,只有偏移量不同。

据我了解,当它是“点击”时,计算机只考虑标签和设置。因此,如果两个地址一个接一个地运行,则缓存将具有“命中”。为什么这样做?这两个地址都不包含不同的信息,因此如果cpu将它们视为同一个东西会导致错误吗?或者cpu然后检查值是否相同然后继续?

如果我遗失了某些内容或犯了错误,请告诉我。

1 个答案:

答案 0 :(得分:2)

两个地址都在同一个缓存行中。 CPU在整个缓存行上运行,使用地址的低位来知道要修改的缓存行中的哪个字节。