如何解决标签大小和缓存位练习
我正在为明天到期的计算机体系结构考试而学习,并且坚持进行有关标签大小和缓存位总数的练习。问题来了:
Question 8:
This question deals with main and cache memory only.
Address size: 32 bits
Block size: 128 items
Item size: 8 bits
Cache Layout: 6 way set associative
Cache Size: 192 KB (data only)
Write Policy: Write Back
Answer: The tag size is 17 bits. The total number of cache bits is 1602048.
我知道这是一个失败的直接练习,但我似乎缺乏正确的公式。我也知道N set way associative的结构是|TAG 25 bits|SET 2 bits|OFFSET 5 bits|。并且标签大小 = AddrSize - 设置 - 偏移量(如果有的话 - 项目大小)从而给出 17 位标签大小的答案。
但是,我该如何计算缓存总位数?
解决方法
-
缓存大小(以字节为单位):192*1024 = 196608
-
块数:196608 / 128 = 1536
-
组数:1536 / 6 = 256
-
设置数位:log2(256) = 8
-
偏移量位数:log2(128) = 7
-
标签大小:32-(8+7) = 17
-
元数据:有效+脏 = 2 位
-
总标签 + 元数据:(17+2)*1536 = 29184 位
-
总数据:1536*128*8 = 1572864 位
-
总大小:29184 + 1572864 = 1,602,048
也可能有一些位用于替换策略,但我们可以假设使答案起作用是随机的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。