2 3 4

第五章 存储系统

存储系统的层次结构

层次结构概述

存储器性能指标

  • 存储容量:\(S_M=w·l·m,w,l,m为存储体的字长,字数,个数\)
  • 存取速度:
    访问时间\(T_A\)—接受命令-操作完成的时间
    存取周期\(T_M\)—两次操作请求的最短间隔时间
    \(T_M=T_A+T_{恢复}\)
  • 传输速度:
    MEM带宽(\(B_M\))—最大数据传输率(最小数据间隔的倒数)
    \(B_M=\frac{m·w}{T_M}\)

层次结构引入

  • MEM用户需求:大容量、高速度、低价格(相互矛盾)
  • 为达到需求,采用多种存储器技术,构成多级存储器层次结构
  • 程序访问的局部性原理(理论支持):
    程序运行时,指令和数据访问所呈现出的相对簇聚现象
    时间局部性—最近访问过的信息,将再次被访问
    空间局部性—最近访问信息的相邻信息,将很快被访问
  • MEM用户需求解决方案:
    MEM组成— 层次结构的快速MEM(近期常用数据,速度保证,容量小)+慢速MEM(近期未用数据,价格保证,容量大

存储系统的层次结构

  • 结构与1组成
    多级MEM级联,按速度分层,协调工作
  • 工作方式:
    信息存储—上级MEM中信息为下级MEM中信息的副本
    信息传递—外部只访问\(M_1\),内部各级MEM间透明地传递信息

存储系统性能参数

  • 存储容量
    有效容量\(S=S_{M_n}\)
  • 每位平均价格
  • 命中率(H)
    \(H=\frac{N_1}{N_1+N_2+\dots +N_n}\)
    缺失率(F)—F=1-H
  • 平均访问时间\(T_A\):
    \(T_A=H·T_1+(1-H)(T_{A2}+T_1)=T_1+(1-H)T_{A2} =T_{命中}+F·T_{缺失}\)\(T_{缺失}\)指缺失引起的停顿时间
    注:\(T_1\)即为命中时间,当不命中时,访问的字不在M1中,需要从M2把包含要访问的字的块(或页面)传送到M1,之后M1才可在M1中访问
  • 层次结构实现要求

层次结构组织

存储系统的层次数量

  • 常用的层次数量
    Cache-主存-辅存,以主存为中心(即CPU只访问主存,按主存地址访存)

层次管理单元的组织

  • 主要功能:实现层次管理,地址变换
  • 涉及内容:
    访问地址类型,层间信息交换单位,层次管理实现方式
  • 存储层次的访问地址类型
    图//
  • 层间信息的交换单位
    减少\(T_A\)的方法—一次交换多个字,采用猝发传送(成组传送)
    \(T_{n个字}=T_{地址}+n*T_{传输}\) <—存取与传输重叠

设计依据—各个层次的平均时延大体相等 <—消除瓶颈

设计结果—MEM里CPU越远,n越大;n通过量化分析得

  • 层次管理实现方式:
    依据—满足性能,性/价要求
    结果—Cache-主存用硬件实现(目标是速度,主存-辅存用软件实现(管理表太大,兼顾成本

层次MEM结构

  • MEM空间管理
    编制单位=访问地址的单元长度
    交换粒度=两种(面向上层及下层)
  • 工作原理:地址变换,数据访问,数据写回

实现问题:映射规则,查找方法,替换算法,写策略

  • 硬件组成:
  • 性能优化

Cache的基本知识

基本工作原理

Cache基本组成

  • 存储空间管理:
    信息交换基本单位—Cache-CPU间为字,Cache-主存间为块
    信息交换管理—目录表(Cache-主存的映射)
  • 组成:存储体,控制器(目录表+比较器+替换机构+读写机构

cache的工作原理

  • 完成访问过程
    地址变换—数据访问—数据写回主存
  • 实现技术
    映射规则,查找方法,替换算法,写策略
  • 实现要求
    全部由硬件完成

实现技术

映射规则

  • 任务:确定一个主存块可放到哪些Cache行(候选行)中

  • 性能指标: 块调入时的冲突率

  • 常见映射:直接,全相联,组相联

  • 性能分析:全相联<组相联<<直接

  • 常见选择:组相联方式(全相联查找/替换成本太高)

查找方法

  • 任务:如何查找目标行
  • 性能指标: 查找速度、成本
  • 常见方法:按地址查找(并行,cache目标是提高速度)、按内容查找(相联MEM)
  • 性能分析: 速度—必须相近 成本—直接<组相联<<全相联
  • 常见选择: 按地址并行查找(性/价较好)
  • Cache命中时的工作过程
    1.取目录项(即行的管理信息),可同时取缓存块
    2.比较是否命中,可同时取或改变块内数据
    3.通知操作是否完。

替换算法

  • 任务: 确定从候选行中如何选出一个牺牲块(行)

  • 性能指标: 对命中率的影响程度,算法的实现成本

  • 常见算法

  • LRU算法的硬件实现

写策略

  • 任务:处理机进行“写”访问时,往Cache写入新数据后,由于Cache内容是主存内容的一个副本,这就导致Cache和主存内容不一致。因此要更新主存。何时
    更新是写策略要解决的问题。
  • 性能指标; 对\(T_A\)、总线占用程度的影响
  • 常见策略:
    全写法:不久把数据写入Cache中相应的块,也写入下一级存储器。这样下一级存储器中的数据就是最新的
    写回法:只把数据写入Cache,不写入下一级存储器,这样有些数据的最新版本就在Cache中,只有数据在相应的块被替换时,才写回下一级存储器
    为此设置一个“修改位”,用于指出该块是否被修改过。当一个块被替换时,若没被修改过,不必写回下一级存储器
  • 写不命中处理方案:
    不按写分配法(用于全写法):写不命中时,直接写入下一级存储器而不将相应的块调入Cache(也被称为绕写法)
    按写分配法(用于写回法):写不命中时,先把所写单元所在块从主存调入Cache,然后进行写入(写时取)

Cache性能分析

Cache性能优化

降低Cache缺失率

  • 缺失的类型
    强制缺失—第一次访问一个块时,该块便不在Cache中,需从下一级存储器中调入Cache
    容量缺失—执行时所需的块不能全部调入Cache中,当某些块被替换后,若游重新被访问,就会发生不命中
    冲突不命中—组相联或直接映像Cache中,太多块映射到同一组(块)中,会出现某个块被别的块替换,又重新被访问的情况
  • 缺失的影响因素
    强制缺失—仅与块大小有关
    容量缺失—与Cache容量、软件工作特性有关
    冲突缺失—与相联度有关

降低缺失率的方法

1.增加Cache块大小
2.增加Cache容量
3.提高相联度
4.伪相联Cache
5.牺牲Cache
6.硬件预取

posted @ 2022-05-06 18:32  kokomi~  阅读(218)  评论(0)    收藏  举报