您的位置:首页 > 其它

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

2018-02-04 18:19 344 查看

存储器的层次结构

计算机存储器的设计目标可归纳为三个问题:

多大的容量? 多快的速度? 多贵的价格?

存储器的这三个特征即价格、容量、访问时间之间存在着一定的折中。

实现存储器系统需要各种各样的技术,但各种技术之间存在着如下关系:

存取速度越快,每“位”的价格越高。

容量越大,每“位”的价格越低。

容量越大,存取速度越慢。

划重点啊后两条!!

需求总会是又大又快。。但二者却存在冲突。

解决这一问题的方法是 不使用单一的存储组件或技术,而是 存储器层次结构



一种典型的层次结构如图,从上到下有这样的规律:

价格递减;

容量递增;

速度递减;

处理器访问该存储器的频率降低。

最后一条成立的基础是局部性原理

我们把容量较大、价格较低的慢速存储器作为容量小、价格高的快速存储器的后备。

高速缓存

动机:

在整个指令周期中,处理器至少访问一次存储器,处理器的执行速度必然受存储周期的限制。

如果这两者不匹配,这一限制会带来很大问题。。

理想情况下,内存的构造技术可以采用与处理器中的寄存器一样的构造技术,这样的话内存的存储周期才跟得上处理器周期。

但是成本太大。

解决的办法即利用局部性原理:

在处理器和内存之间提供一个容量小但速度快的存储器,称为高速缓存。

原理:



上图中,有一个容量相对大但速度慢的内存,以及一个容量小速度快的高速缓存。

高速缓存中有一部分内存数据的副本,当处理器试图读取存储器中的一个字节或字时,首先会检查该数据是否在高速缓存中,

如果在,该字节直接从高速缓存进入处理器;

否,将从内存中取出一个包含需要的字节或字的块,放入高速缓存中。

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

高速缓存/内存结构:



内存有2^n个可以寻址的字组成,每个字有唯一的n位地址,为便于映射,可认为该存储器由一组块组成,每个块有k个字。

高速缓存中有C个存储槽,每个槽可放k个字(即可容纳一个块),槽的数量远小于内存中块的数量。

内存中块的某些自己留在告诉缓存的槽中,当处理器试图读取存储器中某一个块的一个字节或字时,而该块不在高速缓存中的槽之中时,则将这个块取到槽中。

一个槽不可能唯一或永久对应一个块。因此每个槽有一个标签以标识当前为哪个块,

标签通常是地址中较高的若干位,标识以这些位开始的所有地址。

下图为该过程:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: