【计算机组成原理】如何计算cache行的位数和cache的位数

cache中每一行分为标记位,有效位,(脏位),数据位

前面三个好理解,主要说下数据位

下面贴一张王道的图,下图位Cache的结构,最右边就是数据位,它的位数是由块大小决定的



数据位就是cache要存储的数据,对于1B的数据,就是需要8位来存储,1位来表示

同理对于32位的数据,就是32位来存储,5位来表示,平时我们碰到的题目让我们表示的居多,所以容易混淆表示(定位)存储的两种概念
 

来看例题(2题)

下面的t,c,b分别是主存字块标记,Cache字块地址,字块内地址

1.若计算机主存地址为32位,按字节编址,Cache 数据区大小为32KB,主存块大小为32B,采用直接映射方式和回写(Write Back)策略,则cache行的位数至少是?

大小大小的二的次方表示法表示位数存储位数
主存 4GB2的32次方需要32位来表示(定位)这个地址4G*8位
cache32KB2的15次方需要15位来表示(定位)这个地址32K*8位
32B2的5次方需要5位来表示(定位)这个地址32*8位

主存地址结构

b=5位        也就是大小的二的次方表示法的对数

c=15-5=10位     

t=32-15=17位

t            c          b

17        10         5

cache行的位数=标记位 + 有效位 + 脏位 + 数据位
标记位是17位,有效位1位,回写法脏位一位,
数据就是一块的数据,一块的大小为32B,需要32*8=256位来存储

cache行的位数=17+1+1+256=275位

2.假定主存地址为32 位,按字节编址,主存和Cache 之间采用直接映射方式,主存块大小为4 个字,每字32 位,采用回写(Write Back)方式,则能存放4K 字数据的Cache 的总容量的位数至少是( )。

A.146k   B.147K  C.148K  D.158K

Cache大小=4K字=4K*32/8=16KB

块大小=4字=4*32/8=16B

大小大小的二的次方表示法表示位数存储位数
主存 4GB2的32次方需要32位来表示(定位)这个地址4G*8位
cache16KB2的14次方需要14位来表示(定位)这个地址16K*8位
16B2的4次方需要4位来表示(定位)这个地址16*8位

主存地址结构

b=4位        也就是大小的二的次方表示法的对数

c=14-4=10位     

t=32-14=18位

t            c          b

18        10         4

cache行的位数=标记位 + 有效位 + 脏位 + 数据位
标记位是18位,有效位1位,回写法脏位一位,
数据就是一块的数据,一块的大小为16B,需要16*8=128位来存储

cache行的位数=18+1+1+128=148位
现在有1K行
所以cache的位数=行数*每一行的位数=148K位

  • 20
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值