【计算机组成原理】09-计算机的高速缓存

在这里插入图片描述

一、 高速缓存的工作原理

1.主存

字: 是指存放在一个存储单元中的二进制代码组合
字块: 存储在连续的存储单元中而被看作是一个单元的一组字

◆ 一个字有32位
◆ 一个字块共B个字
◆ 主存共M个字块

BM = 主存总字数
B
M*32 = 主存总容量(bits)
在这里插入图片描述

(1)字的地址

◆ 字的地址包含两个部分
◆ 前m位指定字块的地址
◆ 后b位指定字在字块中的地址

在这里插入图片描述
在这里插入图片描述

(2)例子

假设主存用户空间容量为4G,字块大小为4M,字长为32位,则对于字 地址中的块地址m和块内地址b的位数,至少应该是多少?

4𝐺 = 4096𝑀
字块数:4096 ÷ 4 = 1024
字块地址m: log2 1024 = 10
块内字数:4𝑀 ÷ 32𝑏𝑖𝑡 = 1048576
块内地址b: log2 1048576 = 20
𝑚 ≥ 10 b ≥ 20
在这里插入图片描述

2.高速缓存

◆ 存储的逻辑结构类似
◆ 缓存的容量较小
◆ 缓存的速度更快

◆ CPU需要的数据不在缓存里
◆ CPU需要的数据在缓存里
◆ 不在缓存的数据需要去主存拿
在这里插入图片描述

在这里插入图片描述

(1)命中率

◆ 命中率是衡量缓存的重要性能指标
◆ 理论上CPU每次都能从高速缓存取数据的时候,命中率为1

在这里插入图片描述
在这里插入图片描述

(2)例子

假设CPU在执行某段程序时,共访问了Cache命中2000次,访问主存 50次,已知Cache的存取时间为50ns,主存的存取时间为200ns,求Cache主存系统的命中率、访问效率和平均访问时间。

命中率
在这里插入图片描述
访问效率
在这里插入图片描述

平均访问时间

0.97 ∗ 50 + 1 − 0.97 200 = 54.5𝑛𝑠

二、高速缓存的替换策略

需要性能良好的缓存替换策略

高速缓存中没有需要的数据,所以需要替换

◆ 随机算法
◆ 先进先出算法(FIFO)
  • 优先替换最先进入队列的字块
  • 把高速缓存看做是一个先进先出的队列
◆ 最不经常使用算法(LFU)
  • 需要额外的空间记录字块的使用频率
  • 优先淘汰最不经常使用的字块
◆ 最近最少使用算法(LRU)

最近最少使用算法 (LRU)

  • 有多种实现方法,一般使用双向链表
  • 优先淘汰一段时间内没有使用的字块
  • 把当前访问节点置于链表前面(保证链表头部节点是最近使用的)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值