• 第三章:存储系统


    1、存储系统基本概念


    🚩 存储器的层次化结构

    寄存器
    cache
    主存(内存)
    磁盘(辅存)
    硬盘、光盘、U盘等(外存)
    
    越往上层,速度越快、容量越小、造价越高
    辅存和外存中的数据只调入内存中才能被CPU访问
    
    主存-辅存:实现了虚拟存储系统,解决了主存容量不够的问题,由“硬件+操作系统”完成
    cache-主存:解决了CPU和主存速度不匹配的问题,由硬件自动完成
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    存储器的分类

    按层次分类:
    	可直接被CPU读写:cache、主存
    	不可直接被CPU读写:辅存、外存
    
    按存储介质:
    	半导体器件:cache、主存
    	磁性材料:磁盘、磁带
    	光介质:光盘
    
    按存取方式:
    	按地址访问:
    		RAM(随机存取存储器):读取时间与存储单元位置无关,如 “内存条”、ROM
    		SAM(顺序存取存储器):读写时间取决于存储单元位置,如 “磁带”
    		DAM(直接存取存储器):既有随机存取特性,也有顺序存取特性,先直接选取信息区域,再顺序存取,如 “磁盘”
    	按内容访问:
    		CAM(按内容访问的存储器/相联存储器):根据内容检索存储位置,如 “快表”
    	注:SAM 和 DAM 统称串行访问存储器:读写时间与存储位置有关
    
    按信息的可更改性:
    	读写存储器
    	只读存储器 ROM(实际上也可以修改,只不过比较麻烦)
    
    按信息的可保存性:
    	易失性存储器:cache、主存
    	非易失性存储器:磁盘、光盘
    
    	破坏性读出:DRAM 芯片
    	非破坏性读出:SRAM 芯片、磁盘、光盘
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    🚩 存储器的性能指标

    存储容量:存储字数 × 存储字长
    单位成本:每bit价格 = 总价格 / 总容量
    存储速度:数据传输率 = 存储字长(数据宽度) / 存取周期(存取时间 + 恢复时间)
    主存带宽(数据传输率):每秒从主存进出信息的最大数量,单位:字/s、B/s、b/s
    
    • 1
    • 2
    • 3
    • 4

    2、主存储器


    主存储器的基本组成

    基本原件:
    	MOS 管,作为通电 “开关”
    	电容,存储电荷,即存储二进制 0/1
    存储芯片的结构:
    	🚩 译码驱动电路:译码器将地址信号转化为字选通线的高低电平
    	存储矩阵(存储体):由多个存储单元构成,每个存储单元又由多个存储元构成
    	读写电路:每次读/写一个存储字
    	🚩 存储芯片对外暴露的金属引脚个数:(除了金属引脚,还有供电引脚、接地引脚)
    		n1(地址线数)+
    		n2(数据线数) + 
    		1(片选线)+ 
    		12(读/写控制线)
    
    		用了地址线复用技术:
    		n1/2(地址线数/2)+
    		n2(数据线数) + 
    		2(行列选通线) +
    		1(片选线)+ 
    		12(读/写控制线)
    寻址
    	现代计算机通常按字节寻址
    	按字节寻址、按字寻址、按半字寻址、按双字寻址
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    在这里插入图片描述

    SRAM 芯片和 DRAM 芯片

    DRAM 的刷新:
    	刷新周期:一般为 2 ms
    	每次刷新一行存储单元(使用行列地址是为了减少选通线的数量)
    	如何刷新:有硬件支持,不需要CPU控制,读出一行的信息后重新写入,占用一个读/写周期
    	🚩 什么时候刷新:
    		分散刷新
    		集中刷新
    		异步刷新
    
    注意:DRAM 已经过时,现在的主存通常采用 SDRAM 芯片(同步动态随机存储器)
    
    DRAM 和 SRAM 的区别⬇
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    DRAM 芯片SRAM 芯片
    🚩存储元件栅极电容双稳态触发器
    破坏性读出
    读后需要重写
    读写速度
    用途主存cache
    制造成本
    集成度
    功耗
    易失性存储器
    需要刷新
    🚩送行列地址分两次送(地址线复用技术)同时送

    只读存储器 ROM

    各种 ROM:
    	MROM(掩模式)—— 芯片生产过程中直接写入信息,之后只能读出
    	PROM(可编程)—— 用专门的 PROM 写入器写入信息,写一次后不可更改
    	EPROM(可擦除可编程)—— 可进行多次重写
    		UVEPROM(用紫外线)—— 擦除所有信息
    		EEPROM(电擦除)—— 擦除特定的字
    	Flash Memory(闪存)—— 可多次快速擦除重写,eg:U盘、SD卡
    		每个存储单元只需单个 MOS 管,位密度比 RAM 高(联想U盘大小)
    		闪存的 “写” 速度比 “读” 速度慢,因为写之前需要擦除
    	SSD(固态硬盘)—— 由控制单元+存储单元(flash芯片)组成,可多次快速擦除重写,速度快,功耗低,价格高
    
    特殊的 ROM:
    	主板上的 BIOS 芯片
    
    注:
    	我们常说的“内存条”就是“主存”,但事实上,主板上的 ROM 芯片也是主存的一部分
    	逻辑上,主存由 RAM+ROM 组成,且二者统一编址
    	很多 ROM 芯片虽然名字是 “Read-Only”,但很多 ROM 也可以写	
    	RAM 芯片是易失性的,ROM 芯片是非易失性的
    	很多 ROM 也有 “随机存取” 的特性
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    3、主存储器与 CPU 的连接


    位扩展
    字扩展
    	线选法
    	🚩 译码片选法:译码器的使用、分析地址空间
    字位同时扩展
    	🚩 选择存储器芯片
    	与CPU进行连接
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    线选法译码片选法
    n 条线 ➡ n 个片选信号n 条线 ➡ 2 n 2^n 2n 个片选信号
    电路简单电路复杂
    地址空间不连续地址可空间连续

    74L138 型号的译码器结构:
    在这里插入图片描述

    双口 RAM 和多模块存储器

    目的:提升主存速度
    🚩 存取周期 T = 存取时间 r + 恢复时间
    
    双端口 RAM:
    	作用:优化多核 CPU 访问一根内存条的速度
    	✔ 可同时读/写不同的存储单元
    	✔ 可同时读同一个存储单元
    	❌ 不能同时写一个同一个存储单元
    	❌ 不能一个读一个写一个存储单元
    	若发生冲突,则发出 “BUSY” 信号,其中一个 CPU 的访问端口暂时关闭
    
    多模块存储器(m 个模块):
    	单体多字存储器——类似于主存储器的位扩展
    		每个存储单元存储 m 个字,总线宽度也为 m 个字,一次并行读出 m 个字,不能单独取其中的某个字
    	多体并行存储器——各个模块之间相互独立
    		高位交叉编址的多体存储器:由于通常使连续访问的,因此性能提升不明显
    		🚩 低位交叉编址的多体存储器
    			m ≥ T/r
    			每个存储周期内可读写地址连续的 m 个字
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    4、外部存储器


    磁盘存储器

    磁盘原理
    	磁盘设备的组成
    		存储区域:磁头、柱面、扇区
    		音高内存储器:磁盘驱动器、磁盘控制器、盘片
    	🚩 性能指标
    		容量:格式化与非格式化
    		记录密度:道密度、位密度、面密度
    		数据传输率
    	磁盘地址
    		驱动器号、柱面号、盘面号、扇区号
    🚩 磁盘冗余阵列
    	思想:利用磁盘廉价的特点提高存储性能、可靠性和安全性
    	RAID0:条带化,提高存储速度,没有容错能力
    	RAID1:镜像磁盘互为备份
    	RAID2~5:通过数据校验提高容错能力
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    固态硬盘 SSD

    组成
    	闪存翻译层——基于闪存技术,属于 EEPROM
    	存储介质:多个闪存芯片——每个芯片包含多个块——每个块包含多个页
    🚩 读写性能特性
    	以 “页” 为单位读写
    	以 “块” 为单位擦除
    	支持随机访问
    	读快、写慢
    与机械硬盘相比的特点
    	SSD 读写更快,随机访问性能高,用电路控制访问位置;
    	SSD 安静无噪音、耐摔抗震、能耗低、造价更贵
    	🚩 容易磨损——SSD 的一个块被擦除次数过多可能会坏掉,而机械磁盘的扇区不会因为写太多而坏掉
    🚩 磨损均衡技术
    	思想:将 “擦除” 平均分布在各个块上
    	动态磨损均衡——写入数据时,寻找擦除次数少的新闪存块
    	静态磨损均衡——SSD 监测并自动进行数据分配、迁移
    		让老的闪存块承担以读为主的内容
    		让新的闪存块承担以写为主的内容
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    5、🚩 高速缓冲存储器

    cache 的基本概念和基本原理

    工作原理
    	将某些主存块复制到 cache 中,缓和 CPU 和主存之间的速度矛盾
    局部性原理
    	时间局部性:现在访问的地址,之后可能会再被访问
    	空间局部性:现在访问的地址,周围的地址可能会被访问
    性能分析
    	理解 cache 命中率、缺失率
    	两种方式
    		1、先访问 cache,未命中再访问主存
    		2、同时访问 cache 和主存,当 cache 命中时停止访问主存
    其他概念
    	主存与 cache 之间以 “块” 为单位进行数据交换
    	主存的 “块” 又叫:页、页框、页面
    	cache 的 “块” 又叫:行
    	主存地址可以拆分为(主存块号、块内地址)的形式
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    cache 和主存间的映射方式

    cache 中存储的信息
    	有效位(0/1)+ 标记 + 整块数据
    	其中 “标记” 用于指明对应的内存块,不同的映射方式,“标记” 的位数不同
    全相联映射
    	主存块可以复制到 cache 的任何位置
    	🚩 主存地址结构:标记(主存块号) + 块内地址
    	优点:空间利用充分,命中率高
    	缺点:查找 “标记” 最慢
    直接映射
    	主存块只能放到特定的 cache 行,cache 行号 = 主存块号 % cache 总行数
    	🚩 主存地址结构:标记(主存块号前几位) + 行号(主存块号末几位) + 块内地址
    	优点:查找 “标记” 最快
    	缺点:空间利用不充分,命中率低
    组相联映射
    	主存块可以放到特定组中的任意位置,所属组号 = 主存块号 % cache 组数
    	🚩 贮存地址结构:标记(主存块号前几位) + 组号(主存块号末几位) + 块内地址
    	优点:另外两种的这种,综合效果较好
    	术语:n 路组相联映射——每 n 个 cache 行为一组
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    cache 替换算法

    随机算法(RAND)
    	随便选择一个块替换
    	效果很差
    先进先出算法(FIFO)
    	优先替换最先被调入 cache 的主存块
    	不遵循局部性原理,效果差
    🚩 近期最少使用(LRU)
    	将最久没有被访问过的主存块替换,每个 cache 行设置一个 “计数器”(cache 有 2^n 块 —— n 位),用于记录多久没有被访问
    	遵循局部性原理,时间运行效果优秀,cache 命中率高
    最不经常使用(LFU)
    	将被访问次数最少的块替换,每个 cache 行设置一个 “计数器”,用于记录被访问过多少次
    	曾经被经常访问的块在未来不一定会用到,实际运行效果不好
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    cache 写策略

    写命中
    	全写法(写直通法):把数据同时写入 cache 和主存,一般使用写缓冲
    	写回法:只修改 cache 的内容,只有此块被换出时再写入主存
    写不命中
    	写分配法:把主存中的块调入 cache 中修改,通常搭配 “写回法” 使用
    	非写分配法:只写入主存,不调入 cache,通常搭配 “全写法” 使用
    多级 cache
    	各级 cache 间常采用 “全写法 + 非写分配法”
    	cache 和主存间常采用 “写回法 + 分配法”
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    6、虚拟存储器

    页式存储器

    在这里插入图片描述
    在这里插入图片描述

    (待)虚拟存储器

    📕 积累归纳

    1、相联存储器是按 "内容指定方式和地址指定方式相结合" 进行寻址的存储器
    2、动态 RAM 采用 "分散刷新" 不存在死时间,采用 "集中刷新、异步刷新" 存在死时间
    3、半导体 RAM 是易失性 RAM,但只要电源不断电,所存信息是不丢失的 (√)
    4、随机存取与随机存取存储器(RAM)不同
    5、DRAM 一次完整的刷新过程只需要占用 "一个" 存储周期
    6、闪存的存储元由 MOS 管组成,是一种半导体存储器
    7、存取周期:可以连续读/写的最短时间间隔
    8、高位四体交叉存储器可能在一个存储周期内连续访问 4 个模块 (√)
    9、闪存是在 EEPROM 的基础上发展起来的,本质上是只读存储器
    10、RAID0 方案是无冗余和无校验的磁盘整列,而 RAID1~5 方案均是加入了冗余(镜像)或校验的磁盘阵列
    11、磁盘存取时间 = 寻道时间 + 延迟时间 + 传输时间 + 其他时间
    	平均延迟时间为旋转半周的时间
    12、磁盘存储器的最小读写单位为一个扇区,即磁盘按块存取
    13、CPU 与 cache(或主存)间信息交互的单位是字,而 cache 与主存之间信息交互的单位是块
    14、虚拟存储系统利用的是局部性原理,程序应当具有较好的局部性
    15、当 CPU 访存时,先要到 cache 中查看该主存地址是否在 cache 中,所以发送的时主存的物理地址。只有在虚拟存储器中,CPU 发出的才是虚拟地址。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    Elasticsearch:(二)2.安装kibana
    [附源码]Python计算机毕业设计毕业生就业信息管理系统
    VUE3 Router学习 第二章 导航守卫(全局前置、后置守卫)、路由元信息(meta)、过渡动效、滚动行为(scrollBehavior)
    指针,动态内存分配
    贪心+二分+DP+矩阵快速幂:CF461E
    PTA_乙级_1011
    uniapp scroll-view下拉刷新无法复位
    Matplotlib | 世界足球俱乐部排名可视化
    导数求函数最大值和最小值
    UNIX 域协议(本地通信协议)
  • 原文地址:https://blog.csdn.net/si_ying/article/details/126417735