第4章 存储体系

本文详细介绍了存储体系的基本概念,包括其构成依据、性能参数,重点剖析了虚拟存储器的管理方式(如段式、页式和段页式),以及高速缓冲存储器(Cache)的工作原理、地址映射和替换算法。讨论了影响主存命中率和CPU效率的因素,以及虚拟存储器设计中的关键问题。最后概述了现代计算机的三级存储体系结构。
摘要由CSDN通过智能技术生成

4.1 基本概念

4.1.1 存储体制及其分支

存储体系是让构成存储体系系统的几个不同的存储器(M1~Mn)之间,配上辅助软、硬件或辅助软件,使之从应用程序员角度来看,它们在逻辑上是一个整体。速度是M1的,容量是Mn的。

4.1.2 存储体系的构成依据

程序的局部性原理

4.1.3 存储体系的性能参数

4.2 存储体系的构成依据

主存-虚拟存储器-辅存

4.2.1 虚拟存储器的管理方式

虚拟存储器通过增设地址映像表机构来实现程序在主存中的定位。

1. 段式管理

将主存按段分配的存储管理方式成为段式管理。

多用户虚地址:基号 + 段号 + 段内位移;

基号:系统分配给程序,使用基号指明程序使用哪个基址寄存器;

段表基址寄存器:段表长度+段表基地址;

段表:段名(段号)+ 地址 + 装入位 + 段长 + 访问方式(rwx)

查找过程:

  • 使用基号找到对应的基址寄存器,获取到段表基地址(段表起始地址)
  • 找到对应段表,根据段号找到该段的起始地址,若装入位为0,从辅存中加载入主存,并将该段装入位置1;若装入位为1,获取该段起始地址
  • 使用段起始地址+段内位移,得到要访问的实际地址,其间还可以使用段长进行越界判断;访问方式字段标记了该段允许的访问方式,以提供段的访问方式保护

2.页式管理

把主存空间和程序空间都机械地等分成固定大小的页,按页顺序编号,通过页表设置虚页与实页的对应关系(虚页号与实页号的对应关系)。

多用户虚地址:用户号 + 虚页号 + 页内位移;

用户号:系统分配给程序,使用用户号指明程序使用哪个基址寄存器;

页表基址寄存器:页表基地址;

页表:虚页号 + 装入位 + 实页号

查找过程:

  • 使用用户号找到对应的基址寄存器,获取到页表基地址(页表起始地址)
  • 找到对应页表,根据虚页号找到该页的起始地址,若装入位为0,从辅存中加载入主存,并将该页装入位置1;若装入位为1,获取该页起始地址
  • 使用页起始地址+页内位移,得到要访问的实际地址

3.段页式管理

将主存机械地等分成固定大小的页,程序按模块分段,每个段又分成与实主存页面大小相同的页。程序通过一个段表和相应的一组页表进行定位。

4.2.2 页式虚拟存储器的构成

1.地址的映像与变换

地址的映像是将每个虚存单元按某种规则(算法)装入(定位于)实主存,建立起多用户虚地址与实(主)存地址之间的对应关系。

地址的变换是指程序按照这种映像关系装入实存后,在执行中,如何将多用户虚地址变换成对应的实地址。

2.页面替换算法

  • 随机算法(RAND):随机替换
  • 先进先出算法(FIFO):将最早装入主存的页作为被替换的页
  • 近期最少使用算法(LRU):将近期最少访问的页作为被替换页

3.虚拟存储器工作的全过程

  • 判断是否在主存,是的话直接获取地址
  • 判断是否在辅存,是的话转换为辅存的实地址,否则去查找磁盘等
  • 获取对应页,加入主存
  • 主存未满,直接加入,否则页面替换,更新页表

4.2.3 页式虚拟存储器实现中的问题

1. 页面失效的问题

2. 提高虚拟存储器等效访问速度的措施

TLB(快表)

页表可能会非常大,从而占用内存也非常大,因此通常也对页表进行分页,存储到虚拟内存中。

快表存储的是页表的一部分,在查找时,先查快表,若命中,则得到物理地址;否则就去查页表,得到物理地址。

优化:经过散列访问TLB

散列算法缩小虚地址查找范围后,再查TLB

3. 影响主存命中率和CPU效率的某些因素

论点1:当分配给某道程序的主存容量S1一定时,随着页面大小Sp由很小开始增大,命中率H先逐渐增大,到达某个最大值后又减小。同时,分配给该道程序的容量S1增大可普遍提高命中率,达到最高命中率时的页面大小Sp页可以大一些。

论点2:分配给某道程序的容量S1的增大也只是在开始时对H提高有明显作用。

4.3 高速缓冲存储器(Cache)

CPU-Cache-主存

4.3.1 工作原理和基本结构

高速缓冲(Cache)存储器是为弥补主存速度的不足,在处理机和主存之间设置衣蛾高速、小容量的Cache,构成Cache-主存存储层次,使之从CPU角度来看,速度接近于Cache,容量却是主存的。

组成部分

  • 有效位字段:标识数据字段和标志字段的是否有效
  • 标志字段:保存相应主存单元的地址信息
  • 数据字段:保存从主存单元复制过来的信息

基本运行原理

  • CPU发出一个地址,首先来找Cache,如果命中,直接返回数据
  • miss的话,去主存找,找到后将它载入主存,同时将数据给CPU

4.3.2 地址的映像与变换

对于Cache存储器而言,地址的映像就是将每个主存块按某种规则装入Cache中;地址的变换就是每次访Cache时怎样将主存地址变换成Cache地址。

块冲突:指出现了主存块要进入Cache中的块位置已经被其他主存块所占用了。

1. 全相联映像和变换

主存中任意一块都可映像装入到Cache中任意一块位置

2. 直接映像及其变换

把主存空间按Cache大小等分成区,每区内的各块只能按位置一一对应到Cache的相应块位置上

3. 组相联映像及其变换

组相联映像指的是各组之间是直接映像,而组内各块之间是全相联映像

4.3.3 替换算法

  • 随机算法(RAND)
  • 先进先出算法(FIFO)
  • 近期最少使用算法(LRU)

4.3.4 Cache存储器的透明性及性能分析

1. Cache存储器的透明性分析及解决办法

写策略是区分不同Cache设计方案的一个重要标志,用于解决CPU写Cache使主存内容跟不上Cache对应内容变化造成不一致的问题。

写回法(Write back)

执行“写”操作时,只写入Cache,仅当Cache中相应的块被替换时,才写回主存(设置“修改位”)

优点:速度快,所使用的存储器带宽较低

写直达法(Write Through)

执行“写”操作时,不仅写入Cache,而且也写入下一级存储器

优点:易于实现,一致性好

多个 Cache的一致性分析(CPU多核,每个核有一个Cache)

写作废协议

在处理器对某个数据项进行写入之前,保证它拥有对该数据项的唯一的访问权。(作废其他副本)

写更新协议

当一个处理器对某数据项进行写入时,通过广播使其他Cache中所有对应该数据项的副本进行更新。

2. Cache的取算法

采用合理的预取法

3. Cache性能分析

块的大小、组的大小与Cache容量对Cache的命中率都有影响

容量越大,命中率越高

块的大小越大,命中率越高

组的大小越大,命中率越高

4.4 三级存储体系

Cache-主存-辅存

现代计算机特点:

  • 既有虚拟存储器,又有Cache存储器
  • 程序用虚地址访存
  • 要求速度接近Cache,容量是辅存的

4.4.1 物理地址Cache

使用物理地址访问Cache和内存

4.4.2 虚地址Cache

直接用虚拟地址访问Cache和内存

4.4.3 全Cache

直接就是Cache-辅存

  • 13
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值