存储体系

多级存储体系的建立

多级存储体系的建立

多级存储体系的建立是成本、容量和速度折中的结果

理想的存储体系应当具有充足的容量和与CPU相匹配的速度。但是实际的存储器都是非理想化的,其制约因素是价格(每位成本)、容量和速度。这三个基本指标是矛盾的。由图2.53(a)可以看出,存储速度越高,每位成本就越高;由图2.53(b)可以看出,随着所使用存储容量的增大,就得使用速度较低的器件。在这里插入图片描述
合理的分配容量、速度和价格的有效措施是实现分级存储。下图是典型的分级存储系统层次结构示意图。在这里插入图片描述
整个层次结构有如下规律:
(1)价格依次降低
(2)容量依次增加
(3)访问时间依次增长
(4)CPU访问频率依次减小
是用这样的存储体系,从CPU看,访问时间是接近于最上层的,容量和成本确实接近最下层的,大大提高了系统的性能价格比。

程序访问的局部性原理

程序访问的局部性原理是建立多级存储体系的可行性基础。它告诉人们,CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个局部。这个局部包含了3个方面的意义。

(1)时间局部性:如果一个信息项正在被访问,那么在近期他很可能会被再次访问到。程序循环、堆栈等是产生时间局部性的原因。
(2)空间局部性:在最近的将来将用到的信息很可能与现在正在使用的信息在空间地址上是临近的。
(3)顺序局部性:在典型程序中,除转移类指令外,大部分指令是顺序执行的。此外,对大型数组的访问也是顺序的。指令的顺序执行、数组的连续存放等是产生顺序局部性的原因。

由于这3个局部性的存在,才有可能将计算机频繁访问的信息放在速度较高的存储器中,而将不频繁访问的信息放在速度较低、价格也较低的存储器中。假设有一个两级的存储系统,第一级容量为1KB,访问时间为1us,第二级容量为1MB,访问时间为10us。CPU访问存储系统时,先访问第一级,如果信息不在第一级,则有存储系统先把第二级的信息送到第一级,然后再由CPU从第一级中读取。如果100%的信息都可以从第一级中得到,则整个存储系统的平均访问时间就等于第一级存储器的访问时间1us。如果在第一级中能得到的信息的百分比下降,则平均访问时间就要加长。利用访问的局部性,可以是访问第一级的存储器的百分比很高,整个层次存储系统的平均访问时间可以很接近第一级的访问时间。

多级存储体系的性能参数

一个多级存储体系的性能,可以用如下3个参数来衡量。为了简单起见,下面仅考虑一个由M1和M2组成的二级存储体系。

1. 平均单位价格

设M1和M2的容量、单价分别为C1、P1及C2、P2,则该存储体系的平均单位价格为:

C=(C1 x P1 +C2 x P2)/(C1 + C2)

显然,当C1<<C2时,C≈C2。

命中率

在层次结构的存储系统中,某一级的命中率是指对该存储器来说,要访问的信息正好在这一级的概率,用命中的访问数与总访问次数之比计算。其中,最主要的是指CPU产生的逻辑地址能在最高级的存储器中访问到的概率。在基于访问的局部性原理而实现的存储器层次体系中,如果存储器的容量足够大、系统调度得当,可以获得较高的命中率 H 。

设在M1和M2中访问的次数分别为N1和N2,则M1的命中率为:

       N1
H = ———————
    N1 + N2

有时,也使用不命中率或失效率F作为评价多级存储体系的参数。显然:

F = 1 - H
平均访问周期

平均访问周期TA是与命中率关系密切的最基本的存储体系的评价指标。设M1和M2的访问周期为TA1和TA2,则CPU对整个存储体系的平均访问周期为:

TA = H x TA1 + F x TA2

如果把存储层次中相邻两级的访问周期之比称为r = TA2 / TA1,又规定存储层次的访问效率为e = TA1 / TA,可以得出:

e=TA1 / TA = TA1/(H·TA1+(1-H)TA2)=1/(H+(1-H)r)=1/(r+(1-r)H)

层次结构存储系统追求的目标是e越接近1越好,也就是说,系统的平均访问周期越接近较快的以及存储器的访问周期(TA1)越好。e是r和H的函数,提高e可以从r和H两个方面入手。

Cache-主存储机制

1. Cache-主存储机制及其结构

在计算机的发展过程中,主存储器件速度的提高赶不上CPU逻辑电路速度的提高,他们的相对差距越来越大。为了解决主存储器与CPU速度不匹配的日益严重的问题,开始采用Cache-主存体系结构,即在CPU与主存之间在增加一级或多级能与CPU速度相匹配的高速缓冲存储器Cache,来提高主存储系统的性能价格比。

Cache一般用存储速度较高的SRAM(静态RAM)原件组成,其速度与CPU相当,但是价格较贵。为了保持最佳的性能价格比,Cache的容量应尽可能小,但太小会影响命中率,所以Cache的容量是性能价格比和命中率的这种。

下图是Cache-主存体系的基本结构,此工作主要在下面4个部件的支持下进行:

(1)主存储器

(2)Cache存储体

(3)主存-Cache地址映像机构

(4)Cache替换机构
在这里插入图片描述

2. Cache-主存机制的基本原理

CPU读Cache时的流程如下图所示:
在这里插入图片描述

(1)CPU向地址主线发送出一个访问地址。

(2)地址映像变换机构的功能是吧CPU发来的主存地址转换成Cache地址,并判定Cache中有无这个地址:若有,称为命中,即从Cache中读取数据字到CPU,结束;若无,则未命中,则执行(3)。

(3)访问主存,取出数据到CPU。同时判断Cache是否已经满:若未满,则将该数据字所在的块调入Cache——程序局部性原理,以备后面的操作使用,结束;若未满,则执行(4)。

(4)由Cache替换机构按照某种原则,将Cache中的块放回覆盖主存对应的块,并将要读取的数据字所在的块调入Cache。之后,结束。

注意:CPU与Cache以字为单位交换数据,而Cache与主存之间一块为单位交换数据。

3. 多层次 Cache

加速比、命中率和成本是决定Cache性能的三项基本因素。为了进一步提高Cache的性价比,多数计算机采用了两级甚至三级Cache。

两级Cache把Cache分为L1(内部)和L2(外部)两级。L1 Cache 比较小,容量在KB级,但速度极高(与主频相同),一般包含一个小的指令Cache和一个小的数据Cache,被作为CPU的一部分制作。L2 Cache多采用 SRAM,容量一般在MB级,运行速度只有主频的一半。这样,当L1 Cache未命中时,可到L2 Cache中搜索。由于L2 Cache容量很大,命中率会很高。

三级Cache则把Cache分为L1、L2和L3三级。L3位于主板上。这三级Cache中的信息时逐级包含的,即L3 Cache一定包含了L2 Cache中的全部信息,L2 Cache一定包含了L1 Cache中的全部信息。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值