408关于主存与Cache之间的运算关键点

(2015.15)假定主存地址为32位,按字节编址,主存和Cache之间采用直接映射方式,主存块大小为4个字,每字32位,采用写回法,则能存放4K字数据的Cache的总共容量位数至少是  C.
A. 146K B. 147K C.148 D.158K

这题解题的前提是计算题中Cache中保存了什么,也就是Cache的工作原理,这里简单阐述一下:

根据所给的主存地址,分离出主存地址中的主存字块标记,通过这个主存字块标记,检索Cache中是否存在该主存字块标记,并该块在Cache中有效位为1(这里设有效位为1表示有效),此时便找到了这个数据块,在进行后续操作即可。。。

Cache与主存映射方式下主存地址格式
直接映射下主存地址格式

主存字块标记=

( 位数=主存容量大小/Cached数据大小)

(由Cache存下)

Cache行号字块内地址
全相联映射下主存地址格式主存字块标记(Cache存下)字块内地址
组相联映射下主存地址格式主存字块标记(Cache存下)组地址字块内地址

Cache每行中存储(有效位脏位(写回法有该位,全写法没有该位),主存字块标记,数据块)

现在就可以来解题了

第一步分析计算

cache行数:4K/4=1K行

第二步分析计算:

已经得到Cache行数,现在求每行有的位数,这两个相乘,便是Cache至少总共容量位数

方法一:(主存字块标记 位数=主存容量大小/Cached数据大小)=18

方法二:  =总地址位数—Cache行号—字块内地址(按字节)=32-10-4=18

本题采用写回法,需要每行设置有脏位(1位),如果本题采用全写法(写直通法)就不需要设置脏位。

每行必有有效位(1位)

每行数据位有:一个数据块,4个字也就是128位.

Cache每行二进制位数=128(数据位数)+1(脏位)+1(有效位)+18(主存字块标记)=148位

第三步计算cache总容量:

行数*行大小=1K*148=148K

答案选择:C

  • 10
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值