直接映射缓存的地址字段中有多少位?

How many bits are in the address field for a directly mapped cache?

这是一个基于 Direct Mapped Cache 的问题,所以我假设也可以在这里提问。

这是我正在处理的问题:
问题:“一个高速工作站有 64 位字和 64 位地址,地址解析在字节级别。假设直接映射缓存有 8192 个 64 字节行,有多少位在缓存的以下每个地址字段?1)字节 2)索引 3)标记?

首先我定义了这个问题中的术语,并使用了另一个Stack Overflow Direct Mapped Cache问题和我在上的另一个问题作为参考(如果我的定义有任何错误请指正)

正在处理 Direct Mapped Cache 作为参考

  1. 字节 - 因为字节行由 64 个字节组成,所以您需要 6 位来标识该字节行中的单个字节
  2. Index-因为有8192"rows"字节行,所以至少需要10位来标识每一行

现在是我卡住的部分。另一个 post said "All the other bits are TAG bits." while this lecture post 说 "Each line has a tag that indicates the address in M from which the line has been copied"。我猜 M 是 RAM 的意思。

所以在这里,所有其他位都是 64 - 6 - 10 = 48 位。但是,您不需要 TAG 中的所有 64 位来指示缓存中的数据来自 RAM 中的哪个内存位置吗?有人可以澄清我在这里的困惑吗?

看完这个 Caching Video,我明白了。 (强烈推荐这个视频)
如有不妥请指正

地址总共有64位。现在针对不同组件的缓存地址

  • Byte - 一个字节行有 64 个字节。一个字有 64 位或 8 个字节长。因此一个字节行可以容纳 8 个字。因为您需要确定要处理的单词(处理器一次处理一个单词),所以您将需要 3
  • 索引 - 您需要确定该地址指向哪个缓存行。感谢@Leeor 的评论,你将需要 13 位来执行此操作,因为有 8192 个缓存行
  • 标签 - 其余位用于标签。即 64 - 3 - 13 = 48 位