标记位存储在直接映射缓存中的啥位置?

Posted

技术标签:

【中文标题】标记位存储在直接映射缓存中的啥位置?【英文标题】:Where are tag bits stored in direct mapped cache?标记位存储在直接映射缓存中的什么位置? 【发布时间】:2022-01-21 02:41:31 【问题描述】:

据我了解,直接映射缓存会比较标记位。但是标签位存储在哪里?它们在缓存中吗?如果是,它们是否存储在缓存块本身中并且实际块大小更大?

【问题讨论】:

【参考方案1】:

缓存标记位是地址中的位(从 CPU 的角度来看),根据缓存的大小和宽度用作标记。

让我们假设一个非常简单的缓存有 8 个 64 字节行

6 个最低有效位表示 64 字节行中的一个位置。接下来的 3 位是标签,因为我们只有 8 行

地址中的位: ... xxxx xxxt ttxx xxxx

在本例中,地址 0x86 和 0x10080 将具有相同的标记

这是一个过于简单的例子,缓存有很多细微差别,所以我建议阅读一些关于该主题的更深入的材料,或者阅读实际实现(即 CPU 手册)以获得更好的感觉这是如何工作的

【讨论】:

以上是关于标记位存储在直接映射缓存中的啥位置?的主要内容,如果未能解决你的问题,请参考以下文章

GoogleService-info.plist 存储在 ios 应用程序的啥位置?

缓存是什么意思?

我应该将 <script> 标签放在 HTML 标记中的啥位置?

能用JS或者前端的啥方法实现清除浏览器缓存吗

参数变量存储在内存中的啥位置?

会话存储在 Rails 中的啥位置?