计算机的存储器

一、概述

1、存储器的分类
(1) 按存储介质分类
  1. 半导体存储器----TTL、MOS-----易失
  2. 磁表面存储器----磁头、载磁体-----不易失
  3. 磁芯存储器----硬磁材料、环状元件-----不易失
  4. 光盘存储器----激光、磁光材料-----不易失
(2) 按存取方式分类
  1. 存取时间与物理地址无关(随机访问):随机存储器(程序执行过程中可读可写);只读存储器(程序执行过程中只读)
  2. 存取时间与物理地址有关(串行访问):顺序存取存储器(磁带);直接存取存储器(磁盘)
(3) 按在计算机中的作用分类

在这里插入图片描述

2、存储器的层次结构

缓存——主存层次和主存——辅存层次
在这里插入图片描述

  1. 缓存与主存之间主要解决速度问题(cpu和主存速度的不匹配),因此通过硬件方法实现(主存速度的更新换代远跟不上CPU的发展,速度差异存在“剪刀差”)。
  2. 主存与辅存之间主要解决容量问题,因此使用软硬件相结合的方法。
  3. 缓存与主存使用的是主存储器的地址,也就是实地址(也叫物理地址);主存与辅存构成虚拟存储器,使用的是虚地址(也叫逻辑地址)。

二、主存储器

1、概述
(1) 主存的基本组成

在这里插入图片描述

(2)主存和CPU的联系

在这里插入图片描述

(3) 主存中存储单元地址的分配

在这里插入图片描述

2、半导体存储芯片

RAM 和 ROM 都属于半导体存储器,ROM 在系统停止供电的时候仍然可以保持数据,而 RAM 通常都是在掉电之后就丢失数据,所以 RAM 是易失性半导体存储器,ROM 是非易失性半导体存储器。

(1) 半导体存储芯片的基本结构

在这里插入图片描述

  1. 地址线(单向):由CPU或I/O设备的控制器指向存储器
  2. 数据线(双向)
  3. 芯片容量:如果地址线是10位,数据线是4位,则芯片容量=2的10次方×4
  4. 读/写控制线:
    WE(低电平写、高电平读)
    OE(允许读)WE(允许写)
  5. 片选线用来选择存储芯片,由于半导体存储器是由许多芯片组成的,为此需用片选信号来确定哪个芯片被选中。
(2) 半导体存储芯片的译码驱动方式

译码驱动:如何找到给定存储单元,把地址总线送来的地址信号翻译成对应存储单元的选择信号,该信号在读/写电路的配合下完成对被选中单元的读/写操作。

  1. 线选法
    在这里插入图片描述

  2. 重合法

3、随机存取存储器(RAM)

随机存取存储器按其存储信息的原理不同,可分为静态 RAM 和动态 RAM。静态 RAM 采用触发器原理来存储信息,动态 RAM 采用电容存储电荷原理来存储信息,都属于易失性半导体存储器。

(1) 静态RAM(SRAM)

静态 RAM 是用触发器工作原理存储信息,因此即使信息读出后,它仍然保持其原状态,不需要再生。

静态RAM基本电路
在这里插入图片描述
T1~T4:构成一个双稳态触发器,存放0,1
T5~T6:对存储元件读或写

静态RAM芯片举例
在这里插入图片描述

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

(2) 动态RAM(DRAM)

常见的动态 RAM 基本单元电路有三管式和单管式(MOS 管)两种,分别如下面左右两图所示,它们的共同特点都是靠电容存储电荷的原理来寄存信息。若电容上有足够多的电荷表示存“1”,电容上无电荷表示存“0”。

动态RAM基本单元电路(左:三管式;右:单管式)
在这里插入图片描述

动态 RAM 芯片举例
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

动态RAM刷新
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(3) 动态 RAM 和静态 RAM 的比较

在这里插入图片描述

4、只读存储器
(1) 掩模 ROM ( MROM )

只能读、不能擦除

行列选择线交叉处有 MOS 管为“1”
行列选择线交叉处无 MOS 管为“0”

(2) PROM (一次性编程)

如果保存“0”,用大的电流将熔丝烧断;破坏性编程
如果保存“1”,熔丝不烧断;

在这里插入图片描述

(3) EPROM (多次性编程 )

在这里插入图片描述

(4) EEPROM (多次性编程 )

电可擦写
局部擦写
全部擦写

(5) Flash Memory (闪速型存储器)

比 EEPROM快,具备 RAM 功能

5、存储器与CPU的连接
(1) 存储器容量的扩展
  1. 位扩展
    在这里插入图片描述

  2. 字扩展
    A10为两个芯片的片选信号,如果A10为0,选择第一个芯片;如果A10为1,选择第二个芯片。在这里插入图片描述

  3. 字、位扩展
    8个芯片分成4组,每组为 1K×8 位。
    片选译码器:如果是00,选择第一组芯片;01选择第二组芯片;10选择第三组芯片;11选择第四组芯片。
    在这里插入图片描述

(2) 存储器与CPU的连接
  1. 地址线的连接
  2. 数据线的连接
  3. 读/写命令线的连接
  4. 片选线的连接
  5. 合理选择存储芯片
  6. 其他 时序、负载

示例一
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
示例二

在这里插入图片描述

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

6、存储器的校验

为什么要有校验码?
因为在数据存取和传送的过程中,由于元器件或者噪音的干扰等原因会出现错误,这个时候我们就需要采取相应的措施,发现并纠正错误,对于错误的检测和校正,大多采取“冗余校验”的思想,即除原数据外,额外增加若干位编码,这些新增的代码称为校验位
在这里插入图片描述

(1) 编码的最小距离

任意两组合法代码之间二进制位数的最少差异

编码的纠错、检错能力与编码的最小距离有关。.

汉明码是具有一位纠错能力的编码

(2) 奇偶校验码

奇偶校验码的实现方法是在每个被传送码的左边或右边加上1位奇偶校验位“0”或“1”,若采用奇校验位,只需把每个编码中1的个数凑成奇数;若采用偶校验位,只要把每个编码中1的个数凑成偶数。

(3) 汉明码的组成

汉明码采用分组的奇偶检验、分组校验

划分方式:
在这里插入图片描述

汉明码的分组是一种非划分方式。
在这里插入图片描述
汉明编码分组规则
在这里插入图片描述
组成汉明码的三要素

汉明码的组成需增添 ?位检测位
在这里插入图片描述
检测位的位置 ?在这里插入图片描述
检测位的取值 ?

在这里插入图片描述

(4) 汉明编码示例

依据汉明编码分组规则所得:
在这里插入图片描述
在这里插入图片描述

(5) 汉明码的纠错过程

形成新的检测位 Pi,如增添 3 位(k = 3)。新的检测位为 P4 P2 P1。以 k = 3 为例,Pi的取值为
在这里插入图片描述
对于按“偶校验”配置的汉明码不出错时,P1=0,P2=0,P4=0。

(6) 汉明编码纠错示例

示例:
在这里插入图片描述
在这里插入图片描述

汉明编码可检错1位,纠错1位,根据公式得:码距为3
.

7、提高访存速度的措施
  1. 采用高速器件
  2. 采用层次结构 Cache -主存
  3. 调整主存结构
(1) 单体多字系统

增加存储器的带宽
在这里插入图片描述

(2) 多体并行系统

高位前面2位对存储体进行编号
低位后面4位是对存储体内部地址编码

将M0存放满后再存放入M1
缺点:造成某一存储体(M0)繁忙,其他存储体空闲
在这里插入图片描述
依次存放至M0、M1、M2、M3的第一个存储单元,以此类推。

三、高速缓冲存储器

1、概述
(1) Cache 的工作原理

主存和缓存的编址
在这里插入图片描述
备注:
主存和缓存的块内地址完全一致。
缓存中的标记对应主存中的主存块号,像指针一样。
主存和缓存按块存储,块的大小相同,B 为块长。

(2) 命中与未命中

缓存共有 C 块,主存共有 M 块。其中,M >> C。
命中:主存块调入缓存,主存块与缓存块 建立 了对应关系。
未命中:主存块未调入缓存,主存块与缓存块未建立对应关系。

(3) Cache 的命中率

Cache 的命中率:CPU 欲访问的信息在 Cache 中的比率
命中率 与 Cache 的 容量块长 有关
容量越大,命中率越大。容量越小,命中率越小。
块长越大,命中率越大。块长越小,命中率越小。

(4) Cache –主存系统的效率

访问效率 e 与 命中率 有关
在这里插入图片描述
设 Cache 命中率 为 h,访问 Cache 的时间为 tc , 访问 主存 的时间为 tm。并行访问:同时访问主存和缓存。
在这里插入图片描述

(5) Cache 的基本结构

在这里插入图片描述

(6) Cache 的读写操作

读操作:
在这里插入图片描述

写操作:Cache 和主存的一致性
写直达法(Write – through):写操作时数据既写入Cache又写入主。写操作时间就是访问主存的时间,Cache块退出时,不需要对主存执行写操作,更新策略比较容易实现。
写回法(Write – back):写操作时只把数据写入 Cache 而不写入主存。当 Cache 数据被替换出去时才写回主存,写操作时间就是访问 Cache 的时间,Cache块退出时,被替换的块需写回主存,增加了Cache 的复杂性。

2、Cache-主存的地址映射
(1) 直接映射

主存储体划分成若干与Cache存储体相等的区,每个区的大小与Cache存储体的大小相同。在进行映射时,主存储体中任何一个区的第0号只能放入Cache存储体字块0中…以此类推。
在这里插入图片描述

每个缓存块 i 可以和 若干 个 主存块 对应
每个主存块 j 只能和 一 个 缓存块 对应

直接映射:硬件简单,成本低,地址变换速度快,而且不涉及替换算法问题。但是这种方式不够灵活,Cache的存储空间得不到充分利用,每个主存块只有一个固定位置可存放,容易产生冲突,使Cache效率下降,因此只适合大容量Cache采用。

(2) 全相联映射

主存 中的 任一块 可以映射到 缓存 中的 任一块。当寻找一个地址是否已经被cache时,需要遍历每一个cache line来寻找,这个代价很高。
在这里插入图片描述
全相联映射方式:比较灵活,主存的各块可以映射到Cache的任一块中,Cache的利用率高,块冲突概率低,只要淘汰Cache中的某一块,即可调入主存的任一块。

(3) 组相联映射

主存和Cache都分组,主存中一个组内的块数与Cache中的分组数相同,组间采用直接映射,组内采用全相联映射。即:将Cache分成2u组,每组包含2v块,主存块存放到哪个组是固定的,至于存到该组哪一块则是灵活的。

在这里插入图片描述

如果组相联方式Cache中所有的块都分成一组,组相联的映射方式变为全相联;
如果组相联方式中每一组只有唯一的一块,组相联就变成直接相连。
靠近CPU的Cache层次,采用直接相连或者路数比较少的组相联;中间的层次采用组相联;距离CPU最远的采用全相联(Cache的利用率高)。

3、替换算法
  1. 先进先出 ( FIFO )算法
  2. 近期最少使用( LRU)算法

四、辅助存储器

1、概述

特点:不直接与 CPU 交换信息。

2、磁记录原理

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

3、硬磁盘储存器
(1) 硬磁盘存储器的类型
  1. 固定磁头和移动磁头
  2. 可换盘和固定盘
(2) 硬磁盘存储器结构

在这里插入图片描述
磁盘驱动器
在这里插入图片描述
磁盘控制器
接收主机发来的命令,转换成磁盘驱动器的控制命令。
实现主机和驱动器之间的数据格式转换。并控制磁盘驱动器读写。

4、软磁盘存储器

在这里插入图片描述

5、 光盘存储器

在这里插入图片描述

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值