Answers:
所陈述的问题不是很容易回答。一个字已被定义为32位。我们需要知道系统是“字节可寻址”(您可以访问8位数据块)还是“字可寻址”(最小可访问块是32位),甚至是“半字可寻址”(您可以访问的最小数据块是16位。)您需要知道这一点,才能知道地址的最低位告诉您什么。
然后,您将自下而上地工作。假设系统是字节可寻址的。
然后,每个高速缓存块包含8个字*(4个字节/字)= 32 = 2 5个字节,因此偏移量为5位。
直接映射的缓存的索引是缓存中的块数(在这种情况下为12位,因为2 12 = 4096。)
如前所述,标签就是剩下的所有位。
随着高速缓存变得更具关联性,但保持相同的大小,索引位和标记位将减少。
您的标记位公式正确。
偏移量是三位还是五位取决于处理器使用字节(八位位组)寻址还是字寻址。在DSP之外,几乎所有最新的处理器都使用字节寻址,因此可以安全地假定字节寻址(和5个偏移位)。
完全关联映射中的索引为0 b / s,就像您说set = 1,所以index =以2为底的对数的日志= 0设置offset =以字节为基础2的块大小的对数,因此使用8 = 2 ^ 3或32 = 2 ^ 5标签= 32-0-5 = 27,直接索引= 2 ^ 12 = 12偏移量= 0位标签= 32-12-0 = 20