计算机组成原理 第 4 章

第 4 章 存储器

4.1 概述

  • 存储器可分为那些类型
  • 现代存储器的层次结构,为什么要分层

一、存储器分类

1.按存储介质分类

(1)半导体存储器 TTL、MOS 易失
(2)磁表面存储器 磁头、载磁体
(3)磁芯存储器 硬磁材料、环状元件
(4)光盘存储器 激光、磁光材料

2.按存取方式分类

(1)存取时间与物理地址无关(随机访问)

  • 随机存储器 在程序的执行过程中 可读可写
  • 只读存储器 在程序的执行过程中 只读

(2)存取时间与物理地址有关(串行访问)

  • 顺序存取存储器 磁带
  • 直接存取存储器 磁盘

3.按在计算机中的作用分类

存储器

  • 主存储器
    • RAM 可读可写
      • 静态RAM
      • 动态RAM
    • ROM 只读
      • MROM
      • PROM
      • EPROM
      • EEPROM
  • Flash Memory 半导体存储器,便携式存储器,还可以作为计算机硬盘
  • 高速缓存存储器(Cache),一般情况下就是用静态RAM来做的
  • 辅助存储器 磁盘、磁带、光盘

二、存储器的层次结构

1.存储器三个主要特征的关系

在这里插入图片描述

2.缓存-主存层次和主存-辅存层次

在这里插入图片描述

程序在主存中运行

原理:程序的局部性原理
在这里插入图片描述

典型的指标,现在的计算机比这个要快

缓存-主存:硬件的方法,这个层次主要解决速度问题,数据的调入调出 缓存使用的是主存的地址

主存-辅存:软硬件结合,解决容量问题 虚拟存储器

4.2 主存储器(重点)

问题

  • 主存的基本组成
  • 主存与CPU之间的关系
  • 主存中存储单元地址的分配
  • 主存的技术指标

一、概述

1.主存的基本组成

在这里插入图片描述

2.主存和CPU之间的联系

在这里插入图片描述

数据总线 完成了 CPU和主存之间的数据传输

地址总线连接在MAR寄存器和主存地址总线中间

控制信号读写,由CPU送给主存

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

例如:12345678H 这个数据如何在主存储器中进行存储

高位字节 地址为字地址

在这里插入图片描述

低位字节 地址为字地址
在这里插入图片描述

两种机器进行通信就会产生问题

设地址有 24 根 按 字节 寻址 2^24=16MB

若字长为16为 按 字 寻址 8MW

若字长为32为 按 字 寻址 4MW

4.主存的技术指标

(1)存储容量

​ 主存 存放二进制代码的总位置

(2)存储速度
  • 存储时间 存储器的 访问时间
    • 读出时间 写入时间
  • 存取周期 连续两次独立的存储器操作(读或写)所需的最小间隔时间
    • 读周期 写周期
  • 存储器的宽带 位/秒

二、主存储器–半导体芯片介绍

问题

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

在这里插入图片描述

地址线 单向 数据线 双向 芯片容量

​ 10 4 1K X 4 位

​ 14 1 16K X 1 位

​ 13 8 8K X 8 位

片选线 CS CE (低电平)

读/写控制线 一根线WE 两根线 OE(允许读) WE(允许写)

存储芯片片选线的作用

例如 : 用16K X 1 位的存储芯片组成 64K X 8 位的存储器

把八个芯片分成一组,每个芯片分成一组,这样就组成了16 X 8 位
在这里插入图片描述

布置4组,片选性连接在一起

0-16K地址分到第一组芯片中

16-32K地址分到第二组芯片中

当地址位65535 时,第四组的8片的片选有效

2.半导体存储芯片的译码驱动方式

  • 线选法

  • 重合法

(1)线选法

在这里插入图片描述

一共有4位地址,16个存储单元(A0–A3)

存储器 16 X 8

工作流程

存储占据大

(2)重合法

在这里插入图片描述

把所有的存储单元布局成一个二维的阵列

分为行列地址,不过行列只有一条地址有效

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

1.静态RAM(SRAM)

问题

  • 保存0和1的原理是什么?
  • 基本单元电路的构成是什么?
  • 对单元电路如何进行读出和写入?
  • 典型芯片得到结构式什么样子的?
  • 静态RAM芯片是如何进行读出和写入操作的?
(1)静态RAM基本电路

在这里插入图片描述

T1 - T4 触发器,解决了用什么样的电路来存放0/1

T5 - T6 行开关,解决对存储文件进行读/写

T7 - T8 列开关,一列共用

A 触发器原端 A’ 触发器非端

①静态RAM基本电路的读操作

在这里插入图片描述

②静态RAM基本电路的写操作

在这里插入图片描述

(2)静态RAM芯片举例

①Intel 2114外特性

在这里插入图片描述

存储容量 1K X 4位

②Intel 2114 RAM 矩阵(64 X 64)读

在这里插入图片描述

③Intel 2114 RAM 矩阵(64 X 64)写

在这里插入图片描述

2.动态RAM(DRAM)

问题

  • 保存0和1的原理是什么?
  • 基本单元电路的构成是什么?
  • 对单元电路如何进行读出和写入?
  • 典型芯片得到结构式什么样子的?
  • 动态RAM芯片是如何进行读出和写入操作的?
  • 动态RAM为什么要刷新,刷新方法?
(1)动态RAM基本单元电路

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

保存在电容Cg上

双管和单管

三管

读出与原存信息相反

写入与输入信息相同

读出时数据线有电流位”1“

写入时Cs充电为”1“,放电为”0“

(2)动态RAM芯片举例

①三管动态RAM芯片(Intel 1103)读

在这里插入图片描述

②三管动态RAM芯片(Intel 1103)写

在这里插入图片描述

③单管动态RAM 4116 (16K X 1位)外特性

在这里插入图片描述

④4116(16K X 1位)芯片 读 原理

读放大器:如果在一端强制成 1,另一端便会变成 0
在这里插入图片描述

⑤4116(16K X 1位)芯片 写 原理

在这里插入图片描述

(3)略
(4)动态RAM刷新

动态RAM是利用电容存储电荷的方式来保存信息的,电容很小,很容易漏电,容易造成信息丢失,所以要对动态RAM进行刷新

刷新只和行地址有关

①集中刷新(存取周期位0.5微秒)以128 X128 矩阵为例

在这里插入图片描述

“死区” 为 0.5 X 128 = 64 微秒

”死时间率“ 为 128 / 4 000 X 100% = 3.2%

②分散刷新(存取周期为 1 微秒)以 128 X 128 矩阵为例

过度的刷新

在这里插入图片描述

③分散刷新 与 集中刷新 相结合 (异步刷新)

相对于128 X 128的存储芯片(存取周期为0.5 微秒)

若每隔15.6微秒刷新一行

在这里插入图片描述

每行每隔2 ms 刷新一次 ”死区“为0.5微秒

将刷新安排在指令译码阶段,不会出现”死区“

3.动态RAM和静态RAM的比较

他们采用不同的原理实现的

动态DRAM 静态SRAM
存储原理 电容 触发器
集成度
芯片引脚
功耗
价格
速度
刷新

所以一般情况下,DRAM用于做主存,SRAM作缓存

四、只读存储器(ROM)g

一般用于保存系统程序和系统的配置信息

  • 早期的只读存储器------在厂家写好的,价格便宜
  • 改进1 ------用户可以自己写---- 一次性,写过之后不能更改
  • 改进2 ------ 可以多次写 ----要能对信息进行擦除
  • 改进3 ------ 电可擦写 -----特定设备
  • 改进4 ------ 电可擦写 ------直接连接到计算机

1.掩膜ROM(MROM)

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

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

2.PROM(一次性编程)

在这里插入图片描述

熔丝断 为”0“

熔丝未断 为”1“

3EPROM(多次性编程)

N型沟道浮动栅MOS电路

在这里插入图片描述

D端加正电压 形成浮动栅 S与D不导通为“0”

D端不加正电压 不形成浮动栅 S与D导通为“1”

4.EEPROM(多次行编程)

电可擦写

局部擦写

全部擦写

5.Flash Memory(闪速性存储器)

EPROM 价格便宜 集成度高

EEPROM 电可擦洗重写

比EEPROM快 具备RAM功能

五、存储器与CPU的连接

问题

主存储器——存储器与CPU的连接

通常情况下,CPU的地址线比较多,要构成一个出存储器,需要多个存储芯片共同组成

1.存储器容量的扩展

  • 位扩展
  • 字扩展
  • 同时扩展

2.存储器与CPU的连接

1.位扩展容量的扩展

(1)位扩展(增加存储字长)

用 1 K X 4 位 存储芯片 组成 1K X 8位的存储器

1K 10根地址线 8位 8根地址线

用两片

在这里插入图片描述

问题

2114的地址线、数据线是否需要按序的和系统的地址线、数据线进行连接

(2)字扩展(增加存储字的数量)

用 1 K X 8 位 存储芯片 组成 2K X 8位的存储器

2K X 8 位 11根地址线,8根数据线

在这里插入图片描述

(3)字、位同时扩展

用 1 K X 4 位 存储芯片 组成 4K X 8位的存储器

用8片

4K X 8 12根地址线 8根数据线
在这里插入图片描述

2.存储器与CPU的连接

(1)地址线的连接

(2)数据线的连接

(3)读/写命令线的连接(ROM只读除外)

(4)片选线的连接(重要)

(5)合理的选择存储芯片 芯片的数量尽可能的少,片选逻辑尽可能的简单

(6)其他 时序、负载

解题步骤

(1)写出对应的二进制地址码

(2)确定芯片的数量及类型

(3)分配地址线

(4)确定片选信号

(5)确定片选逻辑

六、存储器的校验

问题

1.为什么要对存储器的信息进行校验?

  1. 为了能够校验出信息是否正确,如何进行编码?

3.纠错或检验错能力与什么因素有关?

4.校验出信息出错后是如何进行纠错的?

5.除了教材上讲的校验码,你还知道哪些容错编码?原理是什么?

合法代码集合

1、{000,001,010,011,100,101,110,111} 检0位错、纠0位错

2、{000,011,101,110} 检1位错,纠0位错

3、{000,111} 检1位错,纠1位错

4、{0000,1111} 检2位错,纠1位错

5、{00000,11111} 检2位错,纠2位错.

编码的检测能力和纠错能力和什么有关?

和 合法代码中 任意两组合法代码之间 二进制位最少差异数 编码的纠错检错能力与编码的最小距离有关

1.编码的最小举例

​ 任意两组合法代码之间二进制位数最少差异编码的纠错检错能力与编码的最小距离有关

L - 1 = D + C ( D >= C )

L —— 编码的最小距离

D —— 检测错误的位数

C —— 纠正错误的位置

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

2.汉明码的组成

  • 汉明码采用奇偶校验
  • 汉明码采用分组校验
  • 汉明码的分组是一种非划分方式

组成汉明码的三要素

汉明码的组成需要增添?位检测位

2^K >= n + k + 1

检测位的位置?

2 ^ i ( i =0,1,2,3,……)

检测位的取值?

检测位的取值与该位所在的检测“小组”有关,承担的奇偶校验任务有关

3.汉明码的纠错过程

形成新的检测位 Pi,其位数与增添的检测位有关

如增添3位(k=3),新的检测位为P4P2P1.

七、提高访存速度的措施

  • 采用高速器件
  • 采用层次结构Cache - - - 主存
  • 调整主存结构

1.单体多字系统

增加存储器的宽度

在这里插入图片描述

存在问题

(1)从单字长寄存器到4个字长的数据寄存器中,再到存储器中,会造成给定的数据的修改

(2)如果取出来的四条指令中第一条是具有很大跳转的跳转指令,则其他三条就不会有用

2.多题并行系统

(1)高位交叉 顺序编址

M0 包括16个存储单元

前两位是存储器的体号,后四位是存储体内部的地址编码

在这里插入图片描述

存在问题

指令按序执行,如果某个指令存放在00 0000中,然后依次存放在00 0001 …… 00 1111,在执行过程中,程序一直在访问M0,其他的三个存储体都是空闲的

高位作为选择器,低位作为存储体内部的地址,和存储器容量的扩展的方式相同

(2)低位交叉 各个体轮流编址

高位表示体内地址,低位表示体号
在这里插入图片描述

低位经过译码之后会选中给定的存储体,高位经过译码之后会选中给定的存储体的存储单元,如果四个存储体式完全独立的,可以进行地址、信号、数据的所存。

和分离式通信方式相同

地位交叉的特点

在不改变存取周期的前提下,增加存储器的宽带

在这里插入图片描述

设四体地位交叉存储器,存取周期为T,总线传输周期为t,为实现流水线方式存取,应满足 T = 4 t

在这里插入图片描述

连续读取 4 个字 所需的时间为 T + ( 4 - 1 )t

高位交叉主要应用于存储器容量的扩展

地位交叉用于存储器带宽的访问速度的提高

3.高性能存储芯片

(1)SDRAM(同步 DRAM)

采用同步的方式要求 CPU和存储器之间在给定的时间点上必须开始或完成给定的操作

在系统时钟的控制下进行读出和写入

CPU无须等待

(2)RDRAM

由Rambus开发,主要解决 存储器宽带 问题

(3)带Cache的DRAM

在DRAM的芯片内集成了一个由SRAM组成的Cache,有利于猝发式读取

4.3 高速缓存存储器

一.概述

1.为什么用Cache

2.Cache 的工作原理

  • 主存和缓存的编址
  • 命中与未命中
  • Cache的命中率
  • Cache–主存系统的效率

3.Cache的基本结构

4.Cache的读写操作

5.Cache的改进

二.Cache–主存的地址映射

三.替换算法

一.概述

1.问题的提出

​ 避免CPU"空等"现象

CPU和主存(DRAM) 的速度差异

在这里插入图片描述

需要依靠程序访问的局部性原理

  • 时间的局部性 当前正在使用的指令和数据,在不久的将来还会使用到,把使用的指令和数据存放在Cache中,在以后用的时候,直接调用

  • 空间的局部性 当前正在使用一个指令和数据,在不久的将来相邻的指令和数据就可能会被用到,把当前使用的指令和数据从内存取出存放在Cache中,在以后用的时候,直接调用

Cache和主存之间的交换单位是"块"

2.Cache的工作原理

(1)主存和缓存的编址

左侧主存储器,右侧Cache块,Cache远远小于主存

在这里插入图片描述

大C远远小于大M

在实际应用中Cache地址意义并不大,不需要真正的去形成Cache地址

一个在内存中进行传送的时候,顺序不会发生任何变化

(2)命中与未命中

缓存共有C块

主存共有M块

主存中的块只有部分块缓存到Cache中

  • 命令 主存块 调入缓存

    • 主存块与缓存块建立了对应关系的主存块号
  • 未命中 主存块未调入缓存

    • 主存块与缓存块未建立对应关系

(3)Cache的命中率

  • CPU欲访问的信息在Cache中的比率

  • 命中率 与 Cache 的容量块长 有关

  • 容量越大,块适中,Cache 的命中率越高

  • 一般每块可取4-8个字

  • 块长取一个存取周期内从主存调出的信息长度

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

效率 e 与命中率有关
e = 访 问 C a c h e 的 时 间 / 平 均 访 问 时 间 ∗ 100 e=访问Cache的时间/平均访问时间 * 100% e=访Cache/访100

设Cache命中率为h,访问Cache的时间为 t c,访问主存的时间为t m


e = ( t c / h ∗ t c + ( 1 − h ) ∗ t m ) ∗ 100 e = (tc/h*tc+(1-h)*tm)*100% e=(tc/htc+(1h)tm)100

3.Cache的基本结构

在这里插入图片描述

  • CPU要访问内存的话,要给出地址,块内地址可以直接给Cache

  • 块好在Cache的映射下判断是否命中,如用命中则需要给出当前的内存块保存在哪个Cache中,如果未命中,则查一下Cache中是否还有空间能装下主存块;如果有,则访问主存,把主存块装入Cache中;如果不能,则访问Cache的替换机构;根据替换算法决定那一个块要从Cache中退出,写回到主存或者直接作废,并且把主存中我们要用的块写到Cache中

  • 映像方法:主存当中的块,如果要放到Cache中,它可以放到Cache哪一个块

  • “直接通路”直接完成 双方的数据交换

4.对Cache的 读写 操作


在这里插入图片描述

如果未命中,则两条路都要走

Cache是内存中某些块缓存,Cache中有的信息,内存中也有

写操作 一定要解决 Cache 和 主存 的 一致性

  • 写直达法

    • 写操作时数据既写入Cache有写入主存
    • 写操作时间就是访问主存的时间,Cache块退出时,不需要对主存执行写操作,更新策略比较容易实现
  • 写回法

    • 写操作时只把数据写入Cache而不写入主存,当Cache数据被替换出去时才写回主存
5.Cache的改进

(1)增加Cache的级数

  • 片载(片内)Cache
  • 片外

(2)统一缓存和分立缓存

  • 指令Cache 数据Cache
  • 与指令执行的控制方式有关 是否流水

二、Cache --主存的地址映射

  • 1.直接映射
  • 2.全相联映射
  • 3.组相联映射
1.直接映射

在这里插入图片描述

  • 把主存储体划分成和Cache一样大小的块,进行编号
  • 任何一个区的第一块只能放在Cache的第一个中
  • Cache的利用率不高

每个缓存块 i 可以和若干和 主存块 对应

每个主存块 j 只能和 一个 缓存块 对应

2.全相联映射

在这里插入图片描述

  • 主存当中任何一个块可以放入到Cache中任何一个块中,利用率高

  • 主存子块标记要和Cache中的所有块进行对比

  • 参加比较的位数比较长

3.组相联映射

以上两个映射的折中

在这里插入图片描述

i = j mod Q

全相联映射:某一主存块 j 按模块 Q 映射 到 缓存 的 第 i 组中的任一块

三、替换算法

  • 它给出了一个内存块如果放入Cache中,可以放入那些位置,如果放入过程中,发现可以放如内存块的Cache的位置都被占用了,没有位置可以存放、装入内存块,必须有一个Cache当中的块替换出来,以使我们需要的内存块装入Cache

1.先进先出 (FIFO)算法

存在问题:先出的那个不确定是否重要

2.近期最少使用(LRU)算法

比较好的体现了程序的局部性原理

小结

  • 直接 某一 主存块 只能 固定 映射到 某一 缓存块 ; 不灵活,速度快,Cache的利用率低
  • 全相联 某一 主存块 映射到 任一 缓存块 ; 成本高,速度慢,Cachd的利用率高
  • 组相联 某一 主存块 只能 映射到 某一 缓存 组的 任一 缓存块 ;两种的折中

4.4 辅助存储器(不是重点)

一、概述

1.特点 不直接与CPU交换信息
2.磁表面存储器的技术指标

(1)记录密度 道密度Dt:硬盘在径向方向上单位长度有多少磁道 位密度Db:单位磁道上保存了多少二进制信息

(2)存储容量 C = n * K * s

(3)平均寻址时间 寻道时间 + 等待时间

​ 辅存的速度:寻址时间,磁头读写时间

(4)数据传输率 Dt = Db * V

(5)误码率 出错的信息位数与读出信息的总位数的比值

二、磁盘录原理

1.磁记录原理

在这里插入图片描述

在这里插入图片描述

三、硬磁盘存储器

1.硬磁盘存储器的类型

(1)固定磁头和移动磁头

(2)可换盘和固定盘

2.硬磁盘存储器结构

在这里插入图片描述

(1)磁盘驱动器

组成部分:主轴,定位驱动,数据控制

在这里插入图片描述

(2)磁盘控制器

  • 接收主机发来的命令,转换成磁盘驱动器的控制命令
  • 实现主机的驱动器之间的数据格式转换
  • 控制磁盘驱动器读写

磁盘驱动器

主机与磁盘驱动器之间的 接口 {

对主机 通过总线

对硬盘 设备直接控制

}

(3)盘片

由硬质铝合金材料制成

四、软磁盘存储器

1.概述
硬盘 软盘
速度
磁头 固定、活动、浮动 活动、接触盘片
盘片 固定盘、盘组大部分不可换 可换盘片
价格
环境 苛刻 不那么苛刻
2.软盘片

在这里插入图片描述

五、光盘存储器

1.概述

采用光存储技术 利用激光写入和读出

  • 第一代光存储技术 采用非磁性介质 不可擦写
  • 第二代光存储技术 采用磁性介质 可擦写
2.光盘的存储原理
  • 只读型和只写一次型 热作用(物理或化学)
  • 可擦光盘 热磁效应

猜你喜欢

转载自blog.csdn.net/lmhnba/article/details/108574506