首页 > 解决方案 > 计算总数据+一组关联缓存的开销

问题描述

这是计算机体系结构考试中的一个问题,我不明白如何获得正确答案。

这是问题:

这个问题只涉及主内存和缓存内存。

地址大小:32 位
块大小:128 项
项目大小:8 位
缓存布局:6 路组关联
缓存大小:192 KB(仅数据)
写策略:回写

缓存位的总数是多少?

为了得到标签位数,我发现地址的7位用于字节偏移(0-127),8位用于块号(0-250)(250 = 192000/128/6 ),因此为标签保留了 17 位地址。

要查找缓存中的总位数,我将采用 ( valid bit+ tag size+ bits per block) * number of blocks per set* number of sets= (1 + 17 + 1024) * 250 * 6 = 1,536,000。虽然这不是正确的答案。

正确答案是缓存中总共有1,602,048位,部分答案是有 17 个标记位。在尝试对答案进行逆向工程后,我发现 1,602,048 = 1043 * 256 * 6 但我不知道这是否与解决方案相关,因为我不知道为什么要使用这些数字。

我想如果有人可以解释我在计算中做错了什么以获得不同的答案。

标签: cachingcpu-architecturecpu-cache

解决方案


推荐阅读