存储体系

  • 基本概念
  • 存储系统的基本要求
  • 层次存储器系统
  • 存储层次的性能参数
  • 虚拟存储器
  • 部分加载
  • 虚拟存储技术特征
  • 虚拟存储技术必要的支持
  • 三种存储管理
  • 虚拟存储器工作全过程
  • 高速缓冲存储器cache
  • 映像规则&查找方法
  • 替换策略,针对的是cache满的情况
  • 随机法:实现简单
  • FIFO先进先出
  • 最近最少使用LRU
  • 写入策略
  • 一致性分析
  • 写作废协议(作废法):当多个核操作同一cache时,一个核写入,其他核里数据作废,再更新内存
  • 写更新协议 (播写法):当多个核操作同一cache时,一个核写入,告诉其他核更新数据。
  • 性能分析:
  • 使用cache后提升
  • 三级存储体系
  • 现代计算特点


基本概念

存储介质:寄存器、Cache(静态随机存储器)、DRAM(SDRAM动态同步随机存储器)、ROM(只读存储器)、flash(ROM和RAM结合)NOR Flash(随机性能比较 好,集成度低)NAND FLASH(块读取性好,集成度高)、SSD硬盘(固态硬盘,本质也是NAND FLASH,写入速度要比读速度慢)、磁盘(硬盘,靠的是电和磁间的转换来实现读取)、光盘(VCD\DVD\蓝光DVD)、磁带、软盘(淘汰)、云盘(网盘)

存储系统的基本要求

选用生产与运行成本不同的,存储容量不同的,读写速度不同的多种 存储介质,组成一个统一的存储器系统,使每种介质都处于不同的地位,发挥不同的作用,充分发挥各自存取速度,容量、成本方面的优势,从而达到最优的性价比,以满足使用要求。

层次存储器系统

存储层IOTDB集群 存储体系_存储层IOTDB集群

原理:程序局部性原理,时间局部性和空间局部性。紧挨着数据或刚访问数据一会还要再访问。
主要是主存和辅存(以页面为单位,也就是内存和硬盘,主要满足空间的不足,提高容量)层次。还有cache和主存(以块为存储单位。主要是提高速度,速度是cache,容量是主存)层次。

存储层次的性能参数

s:容量

TA:访问时间

C:每位价格

存储层IOTDB集群 存储体系_stm32_02

虚拟存储器

主存与辅存进一步发展的结果,按照管理方式分为段式,页式和段页式
基于局部性原理,虚拟地址与物理地址之间转换,这个过程是一个动态的过程。
进程可分成几块(页,段),且这些块可分别存储在内存的不连续的区域里。
逻辑地址表示的内存空间即虚拟存储空间

部分加载

  1. 运行时进程的所有页段,不必都在内存里,只要下一条要执行的指令和下一个要访问的数据在内存里即可。
  2. 内存中可同时容纳更多的进程(每个进程只加载一部分)
  3. 进程可以比内存大(逻辑地址可以比物理地址大)
  4. 实现尽可能大的地址

虚拟存储技术特征

  • 不连续性,物理内存分配的不连续
  • 部分交换,虚拟存储的调入和调出是对部分虚拟地址空间进行的
  • 大空间,总空间不超过物理内存和外存交换区容量之和

虚拟存储技术必要的支持

硬件支持:内存管理硬件必须要支持分页、分段
需要支持动态的地址转换
软件支持:OS必须管理内存与外存之间的段和页的移动

三种存储管理

段式管理:是一段,这一段不固定长
页式管理:一页是固定长
段页式管理:先按照段,每段里面再按照页管理。
核心要实现虚拟地址到物理地址的转换;段式:通过段号+基址+段内偏移就是物理地址
页式:通过用户进程号+基址查页表+页内偏移查物理
段页式:即有段表又有页表。

虚拟存储器工作全过程

主存是否命中,辅存是否命中
虚拟地址,转成物理地址,在不在主存?在,直接命物理地址访问主存,不在主存,外部地址的转换(把虚地址转成辅存地址),在辅存上找,找到后,调入主存。(这个过程要看主存是否满,满了话,用替换算法)

高速缓冲存储器cache

实质上是主存的子集。组成部分:

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

映像规则&查找方法

  • 全相联:主存中一块可以放在cache中任何一个位置,冲突最小,硬件成本比较高。
  • 直接相联:内存中划分为相应的cache大小的不同区,一个区只有唯一个cache区与它对应。
  • 组相联:与直接相联类似,只不过就是cache区分成了组,内存一个区对应cache中唯一一个组号。然后从组里面,再比较有没有。

替换策略,针对的是cache满的情况

  • 直接映象:别无选择
  • 组相联和直接相联,有多个cache区,就需要替换算法

随机法:实现简单

FIFO先进先出

最近最少使用LRU

写入策略

  • 写回法:只写入cache,仅当cache被替换时,才写回主存
  • 写直达法:不仅写入cache,而且写主存。

一致性分析

写作废协议(作废法):当多个核操作同一cache时,一个核写入,其他核里数据作废,再更新内存

写更新协议 (播写法):当多个核操作同一cache时,一个核写入,告诉其他核更新数据。

性能分析:

块的大小、组的大小与cache容量对cache命中率影响 ,如下图:

存储层IOTDB集群 存储体系_主存_03

使用cache后提升

存储层IOTDB集群 存储体系_存储层IOTDB集群_04

存储层IOTDB集群 存储体系_stm32_05

三级存储体系

现代计算特点

  1. 多数计算机既有虚拟存储器,又有cache存储器
  2. 程序用虚拟地址访存
  3. 要求速度接近于cache,容量是辅存的,因此,实现三级存储可以有三种实现方式,物理地址cache、虚地址cache、全cache
  4. 程序用虚拟地址访存
  5. 要求速度接近于cache,容量是辅存的,因此,实现三级存储可以有三种实现方式,物理地址cache、虚地址cache、全cache