欢迎您访问科普小知识本站旨在为大家提供日常生活中常见的科普小知识,以及科普文章!
您现在的位置是:首页  > 科技知识

存储器的层次结构原理图解分析

科普小知识2022-05-20 02:28:06
...

存储器的层次结构原理图解分析

学习目录:

理解多级存储层次的思想及其作用;

掌握存储层次的三个性能参数的定义及计算方法;

掌握“Cache-主存”层次、“主存-辅存”层次及其区别;

理解存储层次的四个问题。

正文:

4.1存储器的层次结构

存储器是计算机的核心部件之一。其性能直接关系到整个计算机系统性能的高低。如何以合理的价格,设计出容量和速度满足计算机系统要求的存储器系统,始终是计算机体系结构设计中的关键问题之一。 计算机软件设计者和计算机用户对于存储器容量的需求是无止境的,他们希望容量越大越好,而且速度还要快,价格要便宜。仅用单一的一种存储器是很难达到这一目标的。较好的方法是采用存储层次,用多种存储器构成存储器的层次结构。

4.1.1从单级存储器到多级存储器

从用户的角度来看,存储器的三个主要指标是:容量、速度和价格(本节中,“价格”均指每位价格)。那么,究竟一个存储器的容量应是多大、速度应多快、价格应是多少才比较合理呢?先来看看人们对这三个指标的期望。

然而,人们对于存储器的容量大、速度快、价格低的三个要求是相互矛盾的。综合考虑不同的存储器实现技术,可以发现:(1) 速度越快,每位价格就越高;(2) 容量越大,每位价格就越低;(3) 容量越大,速度越慢。 如果只采用其中的一种技术,存储器设计者就会陷入困境:从实现“容量大、价格低”的要求来看,应采用能提供大容量的存储器技术;但从满足性能需求的角度来看,又应采用昂贵且容量较小的快速存储器。走出这种困境的唯一方法,是采用多种存储器技术,构成多级存储层次。

存储器的层次结构原理图解分析

要实现上述目标,必须做到:存储器若越靠近 CPU,则 CPU 对它的访问频度越高,而且最好大多数的访问都能在 M1 完成。这是通过利用 局部性原理来实现的。局部性原理指出,绝大多数程序访问的指令和数据是相对簇聚的。我们可以把近期内 CPU 使用的程序和数据放在尽可能靠近 CPU 的存储器中。

4.1.2存储层次的性能参数

为简单起见,我们仅考虑由 M1 和 M2 两个存储器构成的两级存储层次结构。并假设 M1 的容量、访问时间和每位价格分别为 S1,TA1,C1,M2 的参数为 S2,TA2,C2 。

1. 存储层次的平均每位价格C

显然,当 S1<<S2 时,C ≈ C2 。

2. 命中率H

命中率为 CPU 访问存储系统时,在 M1 中找到所需信息的概率。命中率一般用模拟的方法来确定,也就是通过模拟执行一组有代表性的程序,分别记录下访问 M1 和 M2 的次数 N1 和 N2 ,则:

存储器的层次结构原理图解分析

为了突出反映不命中的情况,我们还经常使用不命中率或失效率 F 这个参数。它是指CPU 访存时,在 M1 中找不到所需信息的概率。显然

F=1-H

3. 平均访问时间TA

存储器的层次结构原理图解分析

TA = HTA1+(1-H)(TA1+TM)

= TA1+(1-H)TM

或 TA = TA1+FTM

其中: TA1 -- 命中时间

TM -- 失效开销

4.1.3“cache-主存”和“主存-辅存”层次

“Cache-主存”和“主存-辅存”层次是常见的两种层次结构,几乎所有当代计算机都同时具有这两种层次。我们知道,程序在执行前需先调入主存(在虚拟存储器中也是如此,只是不必一次全部调入,而是调入一部分执行一部分)。因此,下面我们将从主存的角度来讨论这两个存储层次。

1. “Cache-主存”层次

(1) CPU和主存之间在性能上的差距越来越大

存储器的层次结构原理图解分析

现代计算机都采用 Cache 来解决这个问题。

(2) “Cache-主存”层次

存储器的层次结构原理图解分析

这是在 CPU 和主存之间增加一级速度快、但容量较小且每位价格较高的高速缓冲存储器(Cache)。借助于辅助软硬件,它与主存构成一个有机的整体,以弥补主存速度的不足。这个层次的工作主要由硬件实现。

2.“主存-辅存”层次

“主存-辅存”层次的目的是为了弥补主存容量的不足。它是在主存外面增加一个容量更大、每位价格更低、但速度更慢的存储器(称为辅存,一般是硬盘)。它们依靠辅助软硬件的作用,构成一个整体,如图4.1.6所示。“主存-辅存”层次常被用来实现虚拟存储器,向编程人员提供大量的程序空间。

存储器的层次结构原理图解分析

3. 两者的比较

表4.1对“Cache-主存”和“主存-辅存”层次做了一个简单的比较。

表4.1 “Cache-主存”与“主存-辅存”层次的区别

存储器的层次结构原理图解分析

4.1.4存储层次的四个问题

后面几节将论述“Cache-主存”层次和虚拟存储器(“主存-辅存”)。对于每一个层次,都将讨论以下四个问题:

1. 当把一个块调入高一层(靠近CPU)存储器时,可以放到哪些位置上? (映象规则)

动画演示

2. 当所要访问的块在高一层存储器中时,如何找到该块? (查找算法)

动画演示

3. 当发生失效时,应替换哪一块? (替换算法)

4. 当进行写访问时,应进行哪些操作? (写策略)

动画演示

搞清楚这些问题,对于理解一个具体存储层次的工作原理以及设计时的考虑是十分重要的。