caching - 计算总数据+一组关联缓存的开销
问题描述
这是计算机体系结构考试中的一个问题,我不明白如何获得正确答案。
这是问题:
这个问题只涉及主内存和缓存内存。
地址大小: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 但我不知道这是否与解决方案相关,因为我不知道为什么要使用这些数字。
我想如果有人可以解释我在计算中做错了什么以获得不同的答案。
解决方案
推荐阅读
- python - 从 Futures 对象检索结果()时,将 Keras 与 ProcessPoolExecutor 一起使用会给出“TypeError:无法腌制 _thread.RLock 对象”
- r - 如何从列表中按列号删除元素?
- pdf - 如何在 joomla 网站中访问 public_html 之外的 pdf 文件?
- c - 静态初始化器宏是否需要动态清理?(pthread_mutex_initializer 可能需要 pthread_mutex_destroy 吗?)
- sql - SQL 查询有条件地连接来自不同数据库的列
- java - 谷歌地图未在 Android Studio 中显示(只有谷歌图标可见)
- c# - 使用 AddExtension 时无法使用 firefox 驱动程序 selenium 加载扩展
- angular - 如何使用 Angular8 将焦点设置在具有动态生成的元素 ID 的材质输入上
- kubernetes - Pod 之间的亲和性和反亲和性。确保 webapp 连接到本地 redis 缓存
- html - 为什么子 div 不会超出 flex 行容器