这是我正在解决的问题:
问题:“高速工作站具有 64 位字和 64 位地址,地址解析度为字节级。假设直接映射缓存具有 8192 条 64 字节线,则缓存的以下每个地址字段中有多少位?1) 字节 2) 索引 3) 标签?”
首先,我定义了这个问题中的术语,并使用了另一个 Stack Overflow Direct Mapped Cache 问题和我的另一个问题缓存作为参考(如果我的定义有误,请纠正我)
- 64 位字 - 处理器一次可以处理 64 位
- 64 位地址,字节级寻址 - RAM 中有 2^64 个内存位置,每个内存位置存储一个字节。
- 缓存速度快,并划分为缓存行
- 直接映射缓存是将 RAM 内存块映射到一个缓存行的地方(不确定这个的重要性
现在正在工作直接映射缓存作为参考
- 字节 - 因为一个字节行由 64 个字节组成,所以需要 6 位来识别该字节行中的单个字节
- 索引 - 因为有 8192 个“行”字节线,所以至少需要 10 位来标识每一行
现在这是我被困住的地方。另一部分邮政说“其他所有位都是 TAG 位。”而本讲座邮政说“每行都有一个标签,指示 M 中该行被复制的地址”。我猜 M 指的是 RAM。
因此,此处所有其他位将是 64 - 6 - 10 = 48 位。但是,您不需要 TAG 中的所有 64 位来指示缓存中的数据来自 RAM 中的哪个内存位置吗?有人可以澄清我在这里的困惑吗?