180204—【操作系统】背景知识:存储器

存储器的层次结构

计算机存储器的设计目标可归纳为三个问题:
多大的容量? 多快的速度? 多贵的价格?
存储器的这三个特征即价格、容量、访问时间之间存在着一定的折中。
实现存储器系统需要各种各样的技术,但各种技术之间存在着如下关系:

  • 存取速度越快,每“位”的价格越高。
  • 容量越大,每“位”的价格越低。
  • 容量越大,存取速度越慢。

划重点啊后两条!!
需求总会是又大又快。。但二者却存在冲突。
解决这一问题的方法是 不使用单一的存储组件或技术,而是 存储器层次结构
这里写图片描述
一种典型的层次结构如图,从上到下有这样的规律:

  • 价格递减;
  • 容量递增;
  • 速度递减;
  • 处理器访问该存储器的频率降低。

最后一条成立的基础是局部性原理
我们把容量较大、价格较低的慢速存储器作为容量小、价格高的快速存储器的后备。

高速缓存

动机:

在整个指令周期中,处理器至少访问一次存储器,处理器的执行速度必然受存储周期的限制。
如果这两者不匹配,这一限制会带来很大问题。。
理想情况下,内存的构造技术可以采用与处理器中的寄存器一样的构造技术,这样的话内存的存储周期才跟得上处理器周期。
但是成本太大。
解决的办法即利用局部性原理:
在处理器和内存之间提供一个容量小但速度快的存储器,称为高速缓存。

原理:

这里写图片描述

上图中,有一个容量相对大但速度慢的内存,以及一个容量小速度快的高速缓存。
高速缓存中有一部分内存数据的副本,当处理器试图读取存储器中的一个字节或字时,首先会检查该数据是否在高速缓存中,
如果在,该字节直接从高速缓存进入处理器;
否,将从内存中取出一个包含需要的字节或字的块,放入高速缓存中。

根据局部性原理,当一块数据被放入高速缓存中以满足一次存储器访问时,很可能接下来的多次访问也会集中在这一个块中。

高速缓存/内存结构:

这里写图片描述

内存有2^n个可以寻址的字组成,每个字有唯一的n位地址,为便于映射,可认为该存储器由一组块组成,每个块有k个字。
高速缓存中有C个存储槽,每个槽可放k个字(即可容纳一个块),槽的数量远小于内存中块的数量。

内存中块的某些自己留在告诉缓存的槽中,当处理器试图读取存储器中某一个块的一个字节或字时,而该块不在高速缓存中的槽之中时,则将这个块取到槽中。
一个槽不可能唯一或永久对应一个块。因此每个槽有一个标签以标识当前为哪个块,
标签通常是地址中较高的若干位,标识以这些位开始的所有地址。

下图为该过程:
这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值