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

时间:2015-05-31 09:00:27

标签: caching system cpu computer-architecture cpu-cache

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

以下是我正在处理的问题:
问题:"高速工作站具有64位字和64位地址,在字节级具有地址分辨率。假设直接映射的高速缓存具有8192个64字节行,那么高速缓存的以下每个地址字段中有多少位? 1)字节2)索引3)标签?"

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

         
  • 64位字 - 处理器一次可处理64位
  •      
  • 64位地址字节级别寻址 - RAM中有2 ^ 64个存储单元,每个存储单元存储一个字节。      
  • Cache高速并被分区为缓存行
  •      
  • Directly Mapped Cache是将RAM内存块映射到一个缓存行的位置(不确定此重要性

现在正在处理Direct Mapped Cache作为参考

          
  1. 字节 - 因为字节行由64字节组成,所以需要6位来识别该字节行中的单个字节
  2.       
  3. 索引 - 因为有8192和#34;行&#34;字节行,至少需要10位才能识别每一行
  4. 现在是我陷入困境的部分。另一个 post表示&#34;所有其他位都是TAG位。&#34;虽然这个讲座post说&#34;每一行都有一个标签,用于指示M中的地址,该行已被复制并且#34;。我猜M是指RAM。

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

1 个答案:

答案 0 :(得分:0)

看了这个 Caching Video之后,我才弄明白这一点。 (强烈推荐这个视频)
如果有任何错误,请纠正我

总共地址有64位。现在为缓存地址的不同组成部分

         
  • 字节 - 字节行中有64个字节。一个字是64位或8字节长。因此字节行可以容纳8个字。因为您需要识别要处理的字(处理器一次处理一个字),所以
  • 需要 3 位      
  • 索引 - 您需要确定地址所指的缓存行。感谢@ Leeor的评论,你需要 13 位才能这样做,因为有8192个缓存行
  •      
  • 标签 - 其余位用于TAG。那是64 - 3 - 13 = 48位