设某计算机字长为32位,主存容量为64MB,Cache的容量为8KB,每个Cache数据块的大小为 32B。设计一个四路组相联映像的Cache组织(即Cache的每个组包含4个Cache行)。要求:

设某计算机字长为32位,主存容量为64MB,Cache的容量为8KB,每个Cache数据块的大小为 32B。设计一个四路组相联映像的Cache组织(即Cache的每个组包含4个Cache行)。
(1)画出主存地址中各字段的位数,并说明每一个Cache行的标记有多少位。(10分)

(2)设Cache初态为空,CPU依次从主存0,4,8,……,996号单元中读出250个字(主存一次读出一个字),并重复此次序10次,问命中率是多少?(15分)

(3)若Cache速度是主存速度的5倍,试问有Cache和无 Cache相比,速度提高多少倍?(15分)

(1)(1)
组相连Cache映射的地址可分为:
主存块标记地址 块号 块内地址
假设按字编址!
主存64MB 共有 2^24个字,有24位地址码
Cache容量为8KB,一个数据块为32B所以Cache被分为 8KB ÷ 32B = 2^8块 2^8 ÷ 4 = 2^6 = 64组,共需要6位组号
32B大小的数据块有 8个字,因此需要3位的块内地址
因此主存地址按字段可分为:
主存字块标记 : 24-6-3 = 14
组地址:6位
块内标记 3位
在这里插入图片描述
(2)
首先判定会不会发生替换现象
0 – 996 即 40 -> 4249号单元中读出,按照8个字为1块的规律可分为 0 –> 124共125块。并且按照有序置放,125÷64 = 1.953 <4,所以不发生替换现象!
根据Cache的访问机理,当访问主存时,如果所找的目标单元不在Cache中,需要将目标单元所在的块整体复制到Cache中,而题干中所给的是一个重复访问的过程,因此我们只需要计算计算出CPU共访问了多少次主存即可
第一遍访问,当访问0号单元时会将0-7这8个字组成的块整体复制到Cache中的第0组第0个块中去。而访问4号单元时就不需要再访问主存了,所以第一遍访问的250次中有125次需要去访问主存。
而对于之后的访问,我们不需要这些块已经全都放在Cache中了
总访问次数 = 250 * 10 = 2500
访问主存数 = 125;
因此命中率等于 = 1- (125/2500) = 95%

(3)
设主存访问时间为5t,则Cache访问时间为t
若无Cache访问时间T1 = 2500t;
有Cache访问时间T2 = 125t +(2500-125)*5t = 12000t
速度提高 T2/T1 = 4.8倍

  • 12
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值