存储系统

4.1存储系统概述

image-20210811235549059

4.1.1存储系统的层次结构

对存储器性能的基本要求:

  • 大容量:放得下所有系统软件、多个用户软件
  • 高速度:尽量和CPU匹配
  • 低价格:只占整个计算机系统硬件价格中一个较小而合理的比例
image-20210812000513681

存储体系的定义:image-20210812001707865

一般计算机系统中主要有两种存储系统:

  • Cache存储体系:由Cache和主存储器构成;主要目的是提高存储器速度;对系统程序员以上均透明
  • 虚拟存储体系:由主存储器和硬盘存储器构成;主要目的是扩大存储器容量;对应用程序员透明(看不见)。

4.1.2存储器分类

image-20210812002647850

4.1.3存储器的性能指标

容量

速度

  • 存取时间(访问时间):对存储器中某一个单元的数据进行一次存取所需要的时间;存取周期:连续对存储器进行存取时,完成一次存取所需要的时间;存储器带宽:单位时间里存储器可以读出或写入的字节数。image-20210816102621895

  • image-20210816102418726

可靠性

功耗

价格

4.2内部存储器

4.2.1随机读写存储器RAM

一、内部结构

1.内部译码结构

(1)一维译码

适用于容量很小的芯片。如容量在几百个存储单元以内的芯片。

image-20210816103123494

(2)二维译码

image-20210816103320007

2.单元电路

(1)静态读写存储器(SRAM)

image-20210816104458742

(2)动态读写存储器DRAM

image-20210816105042548

二、主存储器的组成与接口

2.内存构成

(1)单片存储器芯片的链接

image-20210816110027908

(2)字扩展

(3)内存的位扩展

image-20210816111200720 image-20210816111754459

4.2.2只读存储器

特点:存储信息的非易失性。

分类:掩膜型ROM;可编程ROM(PROM、OTR-ROM);可擦可编程ROM(EPROM,闪速flash存储器)

image-20210816150340533

4.2.3动态存储器

一、一般的动态存储器DRAM

行地址、列地址,二维译码结构

从引脚上地址数量减半;

刷新:以行为单位刷新

  • 集中式:“死区”:存取周期0.5us * 256 ;“死时间率”:256个周期/8000 * 100%
  • 分散式(分布式):前0.5us存取,后0.5us刷新,存取周期位0.5+0.5us。
  • 异步式:刷新周期4ms/256周期 = 15.6us,每15.6us刷新一次。不会出现死区。
image-20210816151757021

二、同步动态存储器SDRAM

image-20210816151940135

4.2.5其他存储器

一、多端口存储器

二、多体交叉存储器

三、相联存储器

4.3高速缓冲存储器

4.3.1 Cache的工作原理

1.程序、数据的局部性原理:

  • 时间局部性:循环变量i,使用后在不久的将来还会使用。
  • 空间局部性:数组元素访问后,在不久的将来会访问与它相邻的元素。

2.Cache工作原理:

image-20210816155943269

4.3.2地址映射

地址映象:把主存中的数据按照某种规则装入到Cache中,并建立主存地址与Cache地址之间的对应关系

地址变换:当主存数据已经装入到Cache之后,在程序运行过程中,把主存地址变换为Cache地址

以“”为单位进行调换。

1.全相联

映射规则:主存的任意一块可以映象到Cache的任意一块。

特点:

  • 块冲突概率低,Cache空间利用率高。
  • 相联目录表容量大->成本高、查表速度慢。
image-20210816172550943

2.直接映射

映射规则:主存的每一块只能映象到Cache的一个特定的块中。

整个Cache地址与主存地址的低位部分完全相同

优点:

  • 硬件简单,不需要相联存储器,只要
    • 容量较小的按地址访问的区号标志表存储器;
    • 少量外比较电路。
  • 访问速度快(无需地址变换)。

缺点:

  • Cache块冲突概率高。
  • Cache空间利用率低。
image-20210817095914118

3.组相联

区内直接映射,组内相联映射

优点:

  • 块的冲突概率比较低;
  • 块的利用率大幅度提高;
  • 块的失效率明显降低。

缺点:实现难度和造价比直接映射高。

image-20210817101057041

例题1:

image-20210817103257340

image-20210817103746671

例题2:

image-20210817104152394

image-20210817104637510

例题3:

image-20210817104905213

image-20210817105229865

Cache中存储的其他信息:

有效位;修改位(写回法);计数器(替换策略)。

4.3.3替换算法

直接映射不需要替换算法。

全相联、组相联:

  • 随机替换算法 RAND
  • 先进先出替换算法 FIFO
    • 利用了历史信息
    • 没有反映局部性——最先调入的,可能也是要使用的。
  • 最不经常使用替换法 LFU:计数器位数多,实现困难。
  • 近期最少使用(最久未用)替换算法 LRU:多/少->有/无。替换近期最久未用的块。image-20210817144426980
  • 最佳替换算法 OPT

4.3.4主存与Cache内容的一致性问题

1.写回法

image-20210817145511192

2.全写法(写直达法)

image-20210817145529827 image-20210817150314876

4.3.5Cache性能分析

1.加速比

  • Cache-主存系统的平均访问周期(平均访问时间)TA:

image-20210818192846999

  • Cache的访问周期为Tc,主存的访问周期为Tm,数据块装入Cache的时间(包括替换开销)为Tb,Cache的命中率为H。
  • 当命中率很高时,Cache系统的平均访问周期就接近于Cache的访问周期Tc。
  • Cache-主存系统的加速比Sp:Sp=Tm/Ta
  • 命中率愈高,加速比愈高。

2.成本

image-20210818193619075

3.命中率与Cache容量的关系

image-20210818193939689

4.命中率与块大小的关系

image-20210818194205028

5.两级Cache

两级Cache的总为命中率(总失效率):

总失效率 =(失效率)第一级 *(失效率)第二级

image-20210818194859523

4.4虚拟存储器

一、基本概念

image-20210818200020388

虚拟存储器中有三种地址空间:

  • 虚拟地址空间:程序员编程中用到的地址 -> 编译程序生成。
  • 主存储器地址空间:实际主存的物理地址 -> CPU地址引脚。
  • 辅存地址空间:磁盘存储器的地址。

地址映象:(全相联,LRU)把虚拟地址空间映象到主存地址空间。即把用户按虚拟地址编写的程序按照某种规则装入主存储器,并建立多用户虚地址与主存实地址之间的关系。

地址变换:在程序运行时,把虚地址变换成主存实地址。

因地址映象和变换方法不同,有三种虚拟存储器

  • 段式虚拟存储器
  • 页式虚拟存储器
  • 段页式虚拟存储器

二、段式虚拟存储器

每个程序段都从0地址开始编址,长度可长可短,可以在程序执行过程中动态改变程序段的长度。

image-20210819160356629

段式虚拟存储器的地址变换:

image-20210819160651390

主要优点:

  • 程序的模块化性能好
  • 便于多道程序共享主存中的某些段
  • 程序的动态链接调度比较容易
  • 便于按逻辑意义实现存储器的访问方式保护

主要缺点:

  • 地址变换所花费的时间长,两次加法
  • 段映象表庞大,地址、段长字段太长
  • 主存储器的利用率往往比较低——存储管理复杂;段间“零头”
  • 对辅存(磁盘存储器)的管理比较困难

三、页式虚拟存储器

地址映象方法

image-20210819161249308

地址变换方法:

image-20210819161358573

四、段页式存储管理器

地址映象方法:

每个程序段在段表中占一行,在段表中给出页表长度和页表的起始地址,页表中给出每一页在主存储其中的实页号。

image-20210819161612386

地址变换方法:

image-20210819161726911

五、虚拟存储器地址变换带来的速度问题

image-20210819162636866

快慢表法

快表:TB或TLB

  • 小容量;高速硬件实现;采用相联方式访问。

慢表:

  • 当快表中查不到时,从主存的慢表中查找;
  • 慢表按地址访问,用软件实现。

快表与慢表也构成一个二级存储层次。

image-20210819163341073

查表时,由虚页号同时查快表和慢表,如果在快表中找到,则立即使慢表查找作废。如果在快表中查不到,则经过一个访主存时间,从慢表中查到实页号,并将其送入主存实地址寄存器,同时将此虚页号和对应的实页号送入快表——LRU替换法

七、虚拟存储器实例:Pentium

4.5外存储器