存储器系统
zKing 2018-11-19 专业知识
# 定义
- 是计算机系统中的记忆设备,用来存放程序和数据
- 计算机中全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中
# 存取方式
# 顺序存取
- 读/写装置 --共享读/写装置
- 访问特性 --特定线性顺序
- 代表 --磁带
# 直接存取
- 读/写装置 --共享读/写装置
- 访问特性 --可直接移到特定数据块
- 代表 --磁盘
# 随机存取
- 读/写装置 --每个可寻址单元专有读/写装置
- 访问特性 --随时访问任何一个存储单元
- 代表 --主存储器
# 相联存取(属于随机存储)
- 读/写装置 --每个可寻址单元专有读/写装置
- 访问特性 --根据内容而非地址来选择读写点
- 代表 --Cache
# 性能
# 存取时间
- 对于随机存储而言,就是完成一次读/写所花的时间
- 对于非随机存取,就是将读/写装置移动到目的位置所花的时间
# 存储器带宽(Mbps)
- 定义
- 每秒能访问的位数
- 通常存储器周期是纳秒级(ns),带宽是越大越好
- 计算公式(常考)
- (1 / 存储器周期) x 每周期可访问的字节数 //字节需要转换成比特
注意
- 1B=8b,1s=10⁹ ns
- B的英文是Byte,中文叫字节,代表一字节,也就是八个二进制位。
- b的英文是bit,中文叫比特,代表一个二进制位。
- 频率和周期是倒数关系
# 数据传输率 (频率)
- 每秒输入/输出的数据位数
- 对于随机存取而言,传输率 R =1 / 存储周期
# 存储器的分类
从下往上,更快更小成本更高
- 寄存器
- Cache(高速缓存存储器
- 主存储器
- 辅助存储器
接下去会逐个进行分析
# 寄存器
# Cache(高速缓存存储器)
告诉缓冲存储器是位于主存与CPU之间的一级存储器,由静态存储芯片(SRAM)组成,容量比较小,速度比主存高得多,接近于CPU的速度,单位成本比内存高。Cache 存储了频繁访问内存的数据
# 原理,命中率,失效率
- 使用Cache改善系统性能的主要依据是程序的局部性原理
- 时间局部性
- 空间局部性
- 命中率
- 能从Cache中访问数据
- 失效率
- 不能从Cache中访问数据
- 计算题
- Cache的访问命中率为 h(通常 1-h 就是Cache的失效率),Cache的访问周期时间是 t1,主存储器的访问周期时间是 t2
- 则整个系统的平均访存时间就是 t3=ht1 +(1-h)t2
# 映射机制
分配给Cache的地址存放在一个相联存储器(CAM)中,CPU发生访存请求时,会先让 CAM 判断所要访问的数据是否在 Cache 中,如果命中就直接使用,这个判断的过程就是Cache地址映射,这个速度应该尽可能快
- 直接映射
- 是一种多对一的映射关系,但一个主存块只能够复制到Cache的一个特定位置上去
- Cache的行号 i 和主存的块号 j 有函数关系
- i= j % m,其中 m 为 Cache总行数
- 全相联映射
- 将主存中任一主存块能映射到Cache中任意行(主存块的容量等于Cache的行容量)
- 根据主存地址不能直接提取Cache行号,而是需要将主存块标记与Cache各页的标记逐个比较,直到找到符合标记符合的页(访问Cache命中),或这全部比较后仍无符合的标记(访问Cache失败)
- 缺点
- 这种映射方式速度很慢,失去了高速缓存的作用
- 组相联映射
- 是前两种方式的折中方案。它将Cache中的块再分成组,各组之间是直接映像,而组内各块之间则是全相联映像
- 主存地址=区号+组号+组内块号+块内地址号 //这条公式是用位数来计算的,即二进制的位数
# 淘汰算法
- 随机淘汰方法
- 先进先出淘汰方法(FIFO)
- 最近最少使用淘汰算法(LRU) --平均命中率最高
# 写操作
在使用Cache时,需要保证其数据与主存一致,因此在写Cache时就要考虑与主存间的同步问题,通常使用以下三种方法
- 写直达
- 当Cache写命中时,Cache与主存同时发生写修改
- 写回
- 当CPU对Cache写命中时,只修改Cache的内容而不立即写入主存,当此行被换出才写回主存
- 标记法
- 数据进入Cache后,有效位置1
- 当CPU对该数据修改时,数据只写入主存并将该有效位置为0
- 当要从Cache中读取数据时要测试其有效位,若为1,则直接从Cache中取数,否则从贮存中取数
# 主存储器
有以下 7 种类别
# RAM
- 定义
- 随机存储器,可读/写,只能暂存数据,断电后数据丢失
- 分类
- SRAM
- 静态随机存储器,在不断电时信息能够一直保持,读写速度快,生产成本高,多用于容量较小的高速缓冲寄存器
- DRAM
- 动态随机存储器,需要定时刷新以维持信息不丢失,读写速度较慢,集成度高,生产成本低,对用于容量较大的主存储器
# ROM
只读存储器,出厂前用掩膜技术写入,常用于存放 BIOS 和微程序控制
# PROM
可编程ROM,只能够一次写入,需用特殊电子设备进行写入
# EPROM
可擦除的PROM,用某种方法可擦去信息,可写入多次
# E²ROM
电可擦除EPROM,可以写入,但速度慢
# 闪速存储器(Flash Memory)
其特性介于 EPROM 与 E²ROM 之间,但不能进行字节级别的删除操作
# CAM(相联存储器)
- CAM 是一种特殊的寄存器,是一种基于数据内容进行访问的存储设备
- 其速度比基于地址进行读写的方式要快
# 辅助存储器
# 磁带
- 是一种顺序存取的设备
- 存储容量大、价格便宜。适合数据的备份存储
# 磁盘
详情请点击 这里
# 光盘
- 通过光盘表面反射机关来读取数据
- 存取速度慢,存储的数据不容易保存
# RAID(独立磁盘冗余阵列)
把多个相对便宜的磁盘组合起来,称为一个磁盘组,配合数据分散排列的设计,提升数据的安全性和整个磁盘系统的效能
# 特点
- 利用多磁盘来提高数据传输率
- 通过数据冗余与校验实现可靠性
# 主要技术
- 分块技术
- 交叉技术
- 重聚技术
# 分级(了解)
- RAID 0级(无冗余和无校验的数据分块)
- 原理
- 把连续的数据分散到多个磁盘上存取,数据请求被多个磁盘并行执行,每个磁盘执行属于自己的那部分数据请求
- 这种数据上的并行操作充分利用总线的带宽,显著提高磁盘整体存取性能
- 优点
- 具有最高的 I/O 性能和最高的磁盘空间利用率,易管理
- 缺点
- 不提供数据冗余,一旦数据损坏,损坏的数据将无法得到恢复
- 总结
- 特别使用于对性能要求较高,对数据安全要求低的领域,如图形工作站等。对于个人用户,也是提高硬盘存储性能的绝佳选择
- 原理
- RAID 1级(磁盘镜像阵列)
- 由磁盘对组成,每个工作盘都有其对应的镜像盘,上面保存着与工作盘完全相同的数据拷贝、具有最高的安全性,但磁盘空间利用率只有50%
- RAID 1主要用于存放系统软件、数据及其其他重要文件
- RAID 2级(采用纠错海明码的磁盘阵列)
- 采用海明码纠错技术,用户增加校验盘来提供纠错和验错功能
- 磁盘驱动组中的第1个、第2个、第4个....第2的n次个磁盘驱动器是专门的校验盘,用于校验和纠错,其余的用于存放数据
- RAID 2最少需要三台磁盘驱动器方能运作
- RAID 3级(采用带奇偶校验码的并行传送)
- RAID 3把数据分成多个“块”,按照奇偶校验算法存放在 N+1 个硬盘上,实际数据占用的有效空间为 N 个硬盘的空间综合,第 N+1 个硬盘上存储的数据是校验容错信息
- 当 N+1 个硬盘中的一个硬盘出现故障时,从其他 N 个硬盘中可以恢复原始数据,所以 RAID 3,安全性可以得到保障
- RAID 3比较适合大文件类型及安全性要求较高的应用,如视频编辑、硬盘播放机和大型数据库等
- RAID 4级(带奇偶校验码的对立磁盘结构)(基本不用)
- RAID 5级(无独立校验盘的奇偶校验码磁盘阵列)
- RAID 5把数据和奇偶校验信息存储到组成 RAID 5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储与不同的磁盘上
- 当 RAID 5的一个磁盘数据损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据
- RAID 5磁盘空间利用率较高:(N-1)/N
- RAID 5 使用了独立存取技术,阵列中每一个磁盘都相互独立地操作,所以 I/O 请求可以并行处理。该技术非常适合于 I/O 请求率较高的应用,不太适合于要求高数据传输率的应用
- RAID 6级(具有独立的数据硬盘与两个独立的分布式校验方案)
- 是一种扩展的 RAID 5等级
- 与 RAID 5的不同之处
- 除了每个硬盘上都有同级数据 XOR 校验区外,还有一个针对每个数据块的 XOR 校验区。当前盘数据块的校验数据不是存在当前盘而是交错存储的,每个数据块有了两个校验保护,所以RAID 6的数据冗余性能相当好
- 但是,由于增加了一个校验,所以写入的效率较 RAID 5还差,而且控制系统的设计也更为复杂,第二块的校验区也减少了有效存储空间
- RAID 10级
- 把 RAID 0 和 RAID 1 技术结合起来,即磁盘分段及镜像的结合,结合了RAID 0 和 RAID 1 的优点
- 它采用两组 RAID 0 的磁盘阵列互为镜像,也就是它们之间又称为一个RAID 1 阵列