第三章 存储系统

在这里插入图片描述

存储系统基本概念

存储器的层次结构

在这里插入图片描述
在这里插入图片描述
主存–辅存:实现虚拟存储系统,解决了主存容量不够的问题
Cache–主存:解决了主存与CPU速度不匹配的问题

存储的分类

存储介质
以半导体器件存储信息:半导体存储器,如主存,Cache;
以磁性材料存储信息:磁表面存储器,如磁盘‘磁带;
以光介质存储信息:光存储器。

存取方式
随机存取存储器RAM:读写任何一个存储单元所需时间都相同,与存储单元所在的物理位置无关;
顺序存取存储器SAM:读写一个存储单元所需时间取决于存储单元所在的物理位置;
直接存取存储器DAM:既有RAM特性,也有SAM特性先直接选取信息所在区域,然后按顺序方式存取;
相联存储器CAM:可以按内容访问的存储器,可以按照内容检查到存储位置进行读写,“快表”就是一种相联存储器。

信息的可更改行
读写存储器:既可读,也可写,如磁盘,内存,Cache;
只读存储器ROM:只能读不能写。

信息的可保存性
断电后,存储信息消失的存储器:易失性存储器,如主存,Cache;
断电后,存储信息依然保持的存储器:非易失性存储器,如磁盘,光盘。

信息读出后,原存储信息被破坏:破坏性读出,如DRAM;
信息读出后,原存储信息不被破坏:非破坏性读出,如SRAM,磁盘,光盘。

存储器的性能指标

存储容量:存储字数 x 字长。MDR位数反映存储字长。
单位成本:每位价格=总成本/总容量。
存储速度:数据传输率=数据宽度/存储周期。数据宽度即存储字长。
在这里插入图片描述
主存带宽:主存带宽又称为数据传输率,表示每秒从主存进出信息的最大容量,单位为字/秒,字节/秒,位/秒。

主存储器

主存储器的基本组成

基本元件
MOS管,作为通电开关;
电容,存储电荷(即存储01二进制)。

存储芯片的结构
译码驱动电路:将地址信号转化成为字选通线的高电平;
存储矩阵(存储体):由多个存储单元构成,每个存储单元又由多个存储元件构成;
读写电路:每次只读/写一个存储字;
地址线、数据线、片选线,读写控制线(两根或一根)。

寻址
现代计算机通信常按字节编址(每个字节),即每个字节对应一个地址。
按字节寻址,按字寻址,按半字寻址,按双字寻址。

SRAM和DRAM

SRAM是静态PAM,DRAM是动态RAM。DRAM用于主存,SRAM用于Cache。
存储元件不同导致的特性差异
DRAM:使用栅极电容存储信息,破坏性读出;
在这里插入图片描述
SRAM:使用双稳态触发器存储信息,非破坏性读出,无重写;
在这里插入图片描述
核心区别:存储元不一样。

DRAM的刷新
刷新周期:一般为2ms;
以行为单位,每次刷新一行存储单元;(行列地址用于减少选通线的数量)
如何刷新?硬件支持,读出一行的信息后再重新写入,占用一个读写周期;
何时刷新?
假设DRAM内部结构排列128x128的形式,读/写周期(存取周期)=0.5μs。
2ms共2ms/μs=4000周期。
分散刷新:每次读写完都刷新一行–>系统的存取周期变为1μs。前0.5μs用于正常读写,后0.5μs用于刷新某行;
集中刷新:2ms内集中安排时间全部刷新–>系统的存取周期还是0.5μs。有一段时间专门用于刷新,无法访问存储器,称为访存四区。
异步刷新:2ms内每行刷新1次即可–>2ms内需要产生128次刷新请求。每隔2ms/128=15.6μs一次,每15.6μs内有0.5μs的“死时间”,可在译码阶段刷新。

DRAM的地址线复用技术
行列地址分两次送,可使地址线减少,芯片引脚更少。

SRAM和DRAM的对比**在这里插入图片描述

只读存储器ROM

RAM具有易失性,断电后数据消失;ROM具有非易失性,断电后数据不会丢失。
MROM掩模式只读存储器
厂家按照客户需求,在芯片生产过程中直接写入信息,之后任何人不可重写,只能读出。可靠性高,灵活性差,生产周期长,只适合批量定制。

PROM可编程只读存储器
用户可用专门的PROM写入器写入信息,写一次之后就不可更改。

EPPROM可擦除可编程只读存储器
允许用户写入信息,之后用某种方式擦除数据,可进行多次重写。
UVEPROM,用紫外线照射8~20分钟,擦除所有信息;
EEPROM,可用电擦除的方式,擦除特定的字。

Flash Memory闪存存储器(U盘,SD卡)
在EPPROM基础上发展而来,断电后也能保存信息,且可进行多次快速擦除重写。由于闪存需要先擦除再写入,因此闪存的“写”比“读”慢。

SSD固态硬盘
由控制单元+存储单元构成,与闪存的核心区别在于控制单元不一样,但存储介质都类似,可进行多次快速擦除重写。SSD速度快,功耗低,价格高。目前个人电脑上常用SSD取代传统的机械硬盘。

计算机内的重要ROM
主板上的BIOS存储了“自举装入程序”,负责引导装入操作系统。主存由ROM+RAM组成,二者统一编制。

主存储器与CPU的连接

存储器芯片的基本结构:译码驱动电路,存储矩阵,读写电路,地址线,数据线,片选线,读写控制线。

增加主存储的存储字长–位扩展
在这里插入图片描述

增加主存储的存储字数–字扩展
线选法:一条线只能是0或1,n条线能得到n个片选信号;电路简单;地址空间不连续
在这里插入图片描述

译码片选法:n条线能得到2n个选片信号;电路复杂,地址空间可连续
在这里插入图片描述

主存容量扩展–字位同时扩展
在这里插入图片描述

双端口RAM
作用:优化多核CPU同时访问一根内存条的速度。
在这里插入图片描述

两个端口对同一主存操作有以下四种情况:
(1) 两个端口同时对不同的地址单元存取数据;
(2)两个端口同时对同一地址单元读数据;
(3)两个端口同时对同一个地址单元写数据;(不能实现)
(4)两个端口同时对同一地址单元,一个读数据另一个写数据。(不能实现)
解决方法:置忙信号为0,由判断逻辑决定暂时关闭一个端口(即被延时),未被关闭的端口正常访问,被关闭的端口延长一个很短的时间后再访问。

多模态存储器
多体并行存储器
高位交叉编址的多体存储器:[体号,体内地址],连续读取n个存储字耗时nT;
地位交叉编址的多体存储器:[体内地址,体号],连续读取n个存储字耗时T+(n-1)r。

采用“流水线”的方式并行存取(宏观上并行,微观上串行);
宏观上,一个存储周期内,m体交叉存储器可以提供的数据量为单个模块的m倍。存储周期为T,存取时间为r(总线传输周期为r),为了使流水线不断,应保证模块数m≥T/r;若m<T/r,则CPU需等待r,若m>T/r,则存储体M闲置r;
每个模块都由相同的容量和存取速度。各模块都由独立的读写控制电路,地址寄存器和数据寄存器,他们既能并行工作又能穿串行工作。

单体多字存储器
每个存储单元存储m个字,总线宽度也为m个字,一次并行读出m个字;每次只能同时存取m个字,不能单独取其中某个字;
指令和数据在主存内必须是连续的。
在这里插入图片描述

外部存储器

计算机的外存储器又称辅助存储器,目前主要使用磁表面存储器。
磁表面存储器的优点:存储量大,位价格低;记录介质可以重复使用;记录信息可以长期保存而不丢失,甚至可以脱机存档;非破坏性读出。
磁表面存储器的缺点:存取速度慢;机械结构复杂;对工作环境要求高。

磁盘存储器

磁盘设备的组成
存储区域:一块硬盘含有若干个记录面,每个记录面划分为若干条磁道,而每条磁道又划分为若干个扇区,扇区(块)是磁盘读写的最小单位,也就是说磁盘按块存取。磁头数即为记录面数,表示硬盘总共有多少个磁头,磁头用于读取/写入盘面上记录的信息,一个记录面对应一个磁头。柱面数表示硬盘的每一面盘片上有多少条磁道,在一个盘组中,不同记录面的相同编号(位置)的诸磁道构成一个柱面。扇区数表示每一条磁道上有多少个扇区。

硬盘存储器:由磁盘驱动器,磁盘控制器和盘片组成。磁盘驱动器的核心部件是磁头组件和磁片组件。磁盘控制器是磁盘存储器和主机的接口,主流的标准由IDE,SCSI,SATA。

磁盘的性能指标
磁盘的容量:一个磁盘所能存储的字节总数。有格式化容量和非格式化容量之分。格式化容量指按照特定的记录格式所能存储的信息;非格式化容量指磁记录面可以利用的磁化单元总数。

记录密度:盘片单位面积上记录的二进制的信息量,通常以道密度,位密度和面密度表示。道密度是沿磁盘半径方向单位长度上的磁道数;位密度是磁道单位长度上能记录的二进制代码的位数;面密度是位密度和道密度的乘积。磁盘所有磁道记录的信息量一定是相等的,并不是圆越大信息越多,所以每个磁道的位密度不同。

平均存取时间:寻道时间(磁头移动到目的磁道的时间)+旋转延迟时间(磁头定位到所在扇区的时间)+传输时间(传输数据所花费的时间)

数据传输率:磁盘存取器在单位时间内向主机传送数据的的字节数。假设磁盘转数为r(转/秒),每条磁道容量为N个字节,则传输速率为D=rN

硬盘地址
在这里插入图片描述
驱动器号:一台电脑可能有多个硬盘;
柱面(磁道)号:移动磁头臂寻道;
盘面号:激活某个磁头;
扇区号:通过旋转将特定扇区划过磁头下方。

磁盘的工作过程
硬盘的主要操作是寻址,读盘,写盘。每个操作都对应一个控制字,硬盘工作时,第一步是取控制字,第二步是执行控制字。
硬盘属于机械式部件,其读写操作是串行的,不可能在同一时刻既读又写,也不可能在同一时刻读两组数据或写两组数据。

磁盘阵列
RAID(廉价冗余磁盘阵列)将多个独立的物理磁盘组成一个独立的逻辑盘。数据在多个物理盘上分割交叉存储,并行访问,具有更好的存储性,可靠性和安全性。

分级:
RAID0:无冗余和无校验的磁盘阵列。类比“地位交叉编址”。
RAOD1:镜像磁盘阵列。
RAID2:采用纠错的海明码的磁盘阵列。
RAID3:位交叉奇偶校验的磁盘阵列。
RAID4:块交叉奇偶校验的磁盘阵列。
RAID5:无独立校验的奇偶校验磁盘阵列。

固态硬盘SSD

原理:基于闪存技术,属于电可擦除ROM,EEPROM。

组成:闪存翻译层,负责翻译逻辑块号,找到对应页;存储介质,多个闪存芯片,每个芯片包含多个块,每个块包含多个页。

读写性能特性:以页为单位读/写,相当于磁盘的扇区。以块为单位擦除,擦干净的块,其中的每页都可以写一次,读无限次。支持随机访问,系统给定一个逻辑地址,闪存翻译层可通过电路迅速定位到对应的物理地址。读块,写慢。要写的页如果有数据,则不能写入,需要将块内其他页面全部复制到一个新的(擦除过的)块中,再写入新的页。

与机械硬盘相比的特点:SSD读写速度快,随机访问性能高,用电路控制访问位置,机械硬盘通过移动磁臂旋转磁盘控制访问位置,有寻道时间和旋转延迟。SSD安静无噪音2,耐摔抗震,耗能低,造价更贵。SSD的一个“块”被擦除次数过多(重复写同一个块)可能会坏掉,而机械硬盘的扇区不会因为写的次数而坏掉。

磨损均衡技术:将“擦除”平均分布在各个块上,以提升使用寿命。动态磨损均衡,写入数据时在,优先选择累计擦除次数少的新闪存块。静态磨损均衡,SSD监测并自动进行数据分配,迁移,让老旧的闪存块承担以读为主的存储任务,让较新的闪存块承担更多的写任务。

Cache

基本概念和原理

工作原理:
将某些主存块复制到Cache中,缓和CPU与主存之间的速度矛盾。

性能分析:
设tc为访问一次Cache所需时间,tm为访问一次主存所需时间,命中率H是指CPU欲访问的信息已在Cache中的比率,缺失率(未命中率)M=1=H。
先访问Cache,若Cache未命中再访问主存,则Cache-主存系统的平均访问时间t为t=Htc+(1-H)(tc+tm);
同时访问Cache和主存,若Cache命中则立即停止访问主存,t=Htc+(1-H)tm。

Cache和主存的映射方式

Cache中存储的信息
有效位(0/1)+标记+整块数据
标记用于指明对应的内存块,不同映射方式,“标记”的位数不同

全相联映射
主存块可以放到Cache的任意位置。
主存地址结构:标记(整个主存块号)+块内地址。
优点:Cache存储空间利用充分,命中率高。
缺点:查找”标记“最慢,有可能需要对比所有的标记。

直接映射
主存块只能放到特定的某个Cache行,行号=主存块号%总行数。
主存地址结构:标记(主存块号前几位)+行号(主存块号末几位)+块内地址。
优点:对于任意一个地址,只需对比一个”标记“,速度最快。
缺点:Cache存储空间利用不充分,命中率低。

组相联映射
主存块可以放到特定分组中的任意位置,所属组号=主存块号%总组数。
主存地址结构:标记(主存块号前几位)+组号(主存块号末几位+)+块内地址。
优点:另外两种方式的折中,综合效果好。
术语:n路组相联映射指每n个Cache为一组。

Cache替换算法

与《操作系统》的页面置换算法类似
随机算法RAND
若Cache已满,则随机选取一块替换。实现简单,但没考虑局部性原理,命中率低,实际效果不确定。

先进先出算法FIFO
若Cache已满,则替换最先被调入Cache的块。不遵循局部性原理,效果差。

最近最少使用LRU
为每一个Cache块设置一个“计数器”,用于记录每个Cache块已经多久没有被访问了。当Cache满后替换“计数器”最大的。
命中时,所命中的行的计数器清零,比其低的计数器+1,其余不变;
未命中且还有空闲时,新装入的行的计数器置0,其余非空闲行计数器+1;
未命中且无空闲行时,计数器值最大的行的信息块被淘汰,新装入行的块的计数器置0,其余全+1;

最不经常使用算法LFU
为每个Cache块设置一个“计数器”,用于记录每个Cache块被访问几次。当Cache满后替换“计数器”最小的。
新调入的块计数器=0,之后每被访问一次计数器+1,需要替换时,选择计数器最小的一行。实际效果运行不好。

Cache写策略

写命中
写回法:当CPU对Cache写命中时,只修改Cache的内容,而不立即写入主存,只有当此块被换出时才写回主存。减少了访存次数,但存在数据不一致的隐患。
全写法(写直通法):当CPU对Cache写命中时,必须把数据同时写入Cache和主存,一般使用写缓冲。访存次数增加,速度变慢,但更能保证数据一致性。

写不命中
写分配法:当CPU对Cache写不命中时,把主存中的块调入Cache,在Cache中修改,通常搭配写回法使用。
非写分配法:当CPU对Cache写不命中时,只写入主存,不调入Cache,通常搭配全写法使用。

现代计算机常采用多级Cache结构,各级Cache间常采用“全写法+非写分配法”;Cache和主存间常采用“写回法+写分配法”。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值