第4章 存 储 器 4.1 概述 4.2 主存储器 4.3 高速缓冲存储器 4.4 辅助存储器 本章主要知识点小结
4.1 概 述 一、存储器分类 1. 按存储介质分类 易失 非 易 失 (1) 半导体存储器 TTL 、MOS (2) 磁表面存储器 4.1 概 述 一、存储器分类 1. 按存储介质分类 易失 (1) 半导体存储器 TTL 、MOS (2) 磁表面存储器 磁头、载磁体 非 易 失 (3) 磁芯存储器 硬磁材料、环状元件 (4) 光盘存储器 激光、磁光材料
4.1 2. 按存取方式分类 (1) 存取时间与物理地址无关(随机访问) (2) 存取时间与物理地址有关(串行访问) 随机存储器 2. 按存取方式分类 (1) 存取时间与物理地址无关(随机访问) 随机存储器 在程序的执行过程中 可 读 可 写 只读存储器 在程序的执行过程中 只 读 (2) 存取时间与物理地址有关(串行访问) 顺序存取存储器 磁带 直接存取存储器 磁盘
4.1 3. 按在计算机中的作用分类 主存储器 辅助存储器 存 储 器 Flash Memory 高速缓冲存储器(Cache) 3. 按在计算机中的作用分类 静态 RAM 动态 RAM RAM ROM 主存储器 辅助存储器 MROM PROM EPROM EEPROM 存 储 器 Flash Memory 高速缓冲存储器(Cache) 磁盘、磁带、光盘
4.1 二、存储器的层次结构 1. 存储器三个主要特性的关系 速度 容量 价格 位 / 寄存器 缓存 主存 磁盘 光盘 磁带 CPU CPU 1. 存储器三个主要特性的关系 速度 容量 价格 位 / 寄存器 缓存 主存 磁盘 光盘 磁带 CPU CPU 主机 快 小 高 慢 大 低 辅存
重点 2. 缓存 主存层次和主存 辅存层次 为了解决存储器的容量、速度、价格这3个主要性能指标之间的矛盾,通常可将存储系统分为:缓存(Cache)—主存层次;主存—辅存层次。 前者主要解决存储系统的速度问题,后者主要解决存储系统的容量问题。 这两个层次都遵循“程序访问的局部性原理”。 主存与缓存之间的数据调动是硬件自动完成的,主存与辅存之间的数据调动是硬件和操作系统共同完成的。
4.1 2. 缓存 主存层次和主存 辅存层次 CPU 主存 缓存 辅存 (速度) (容量) 缓存 主存 辅存 主存 主存储器 虚拟存储器 2. 缓存 主存层次和主存 辅存层次 10 ns 20 ns 200 ns ms CPU 主存 缓存 辅存 (速度) (容量) 缓存 主存 辅存 主存 主存储器 虚拟存储器 实地址 虚地址 物理地址 逻辑地址
4.2 主存储器 一、概述 1. 主存的基本组成 存储体 驱动器 译码器 MAR 控制电路 读 写 电 路 MDR 地址总线 数据总线 … 图中的驱动器、译码器、读/写电路、控制电路均制作在存储芯片中。而MAR和MDR制作在CPU芯片中
4.2 2. 主存和 CPU 的联系 MDR MAR CPU 主 存 读 数据总线 地址总线 写
4.2 3. 主存中存储单元地址的分配 高位字节 地址为字地址 低位字节 地址为字地址 11 10 9 8 7 6 5 4 3 2 1 4 3. 主存中存储单元地址的分配 高位字节 地址为字地址 低位字节 地址为字地址 字地址 字节地址 11 10 9 8 7 6 5 4 3 2 1 字节地址 字地址 4 5 2 3 1 设地址线 24 根 按 字节 寻址 224 = 16 M 若字长为 16 位 按 字 寻址 8 M 若字长为 32 位 按 字 寻址 4 M
4.2 4. 主存的技术指标 (1) 存储容量 (2) 存储速度 (3) 存储器的带宽 主存 存放二进制代码的总位数 存取时间 存取周期 4. 主存的技术指标 (1) 存储容量 主存 存放二进制代码的总位数 (2) 存储速度 存取时间 存取周期 存储器的 访问时间 读出时间 写入时间 连续两次独立的存储器操作 (读或写)所需的 最小间隔时间 读周期 写周期 (3) 存储器的带宽 位 / 秒
4.2 二、半导体存储芯片简介 1. 半导体存储芯片的基本结构 … … 译 码 驱 动 存 储 矩 阵 读 写 电 路 地 址 线 数 据 1. 半导体存储芯片的基本结构 译 码 驱 动 存 储 矩 阵 读 写 电 路 地 址 线 … 数 据 线 … 片选线 读/写控制线 地址线 (单向) 数据线 (双向) 芯片容量 10 4 1K×4位 14 1 16K×1位 13 8 8K×8位
4.2 存储芯片片选线的作用 以上32片16K*1位的存储芯片分为4组,每组由8片构成,其中各组芯片应分时选中,而同一组中的8片应同时选中. 用 ?片 16K × 1位 的存储芯片组成 64K × 8位 的存储器 8片 16K × 1位 32片 以上32片16K*1位的存储芯片分为4组,每组由8片构成,其中各组芯片应分时选中,而同一组中的8片应同时选中.
4.2 2. 半导体存储芯片的译码驱动方式 (1) 线选法 读/写控制电路 … … 读/写控制电路 … 0,0 15,0 15,7 0,7 地 址 译 码 器 字线 15 … 16×8矩阵 7 D 位线 读 / 写选通 A 3 2 1 0,0 0,7 … … 7 读/写控制电路 读 / 写选通 … D 7
4.2 (2) 重合法 Y 地址译码器 … … 0,0 32×32 A 0,31 0,0 31,0 31,31 地 址 译 码 器 I/O 4 0,31 0,0 31,0 31,31 Y 地址译码器 X 地 址 译 码 器 32×32 矩阵 … 9 I/O 8 7 5 6 Y 31 D 读/写 0,0 31,0 0,31 … 0,0 I/O D 读
首先应说明,上述的“线选法”和“重合法”是对芯片内部存储单元进行选择。但是在对芯片内单元选择之前,首先应选中组成存储器的某一块芯片。 “线选法”和“重合法”的比较 “线选法”的结构虽然简单,但是译码电路比较复杂,译码后产生的字选择线太多,因此只适合于小容量芯片。 “重合法”的结构相对复杂,但是行选择和列选择分开处理,译码电路相对简单,因此适合于大容量芯片。
4.2 三、随机存取存储器 ( RAM ) 1. 静态 RAM (SRAM) ´ (1) 静态 RAM 基本电路 T ~ 触发器 T 、 7 8 A´ A 写放大器 DIN 写选择 读选择 DOUT 读放 位线A ´ 列地址选择 行地址选择 T1 ~ T4 5 T 6 、 行开关 7 T 8 、 列开关 7 T 8 、 一列共用 A 触发器原端 A´ 触发器非端
4.2 ① 静态 RAM 基本电路的 读 操作 ´ A´ T1 ~ T4 A DOUT 行选 T5、T6 开 T7、T8 开 列选 写放大器 DIN 写选择 读选择 读放 位线A ´ 列地址选择 行地址选择 DOUT 行选 T5、T6 开 T7、T8 开 列选 读选择有效 读放 DOUT VA T6 T8 DOUT
4.2 ② 静态 RAM 基本电路的 写 操作 T1 ~ T4 A´ A T1 ~ T4 行选 T5、T6 开 列选 T7、T8 开 DIN 位线A 位线A ´ 列地址选择 行地址选择 写放 读放 DOUT 写选择 读选择 T1 ~ T4 行选 T5、T6 开 列选 T7、T8 开 写选择有效 两个写放 DIN (左) 反相 T5 A´ (右) T8 T6 A DIN T7
4.2 (2) 静态 RAM 芯片举例 ① Intel 2114 外特性 Intel 2114 … I/O A WE CS VCC GND 3 4 A 8 9 WE CS VCC GND Intel 2114 … 存储容量 1K×4 位
4.2 ② Intel 2114 RAM 矩阵 (64 × 64) 读 … 第一组 第二组 第三组 第四组 A3 A4 A5 A6 A7 15 … 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 I/O1 I/O2 I/O3 I/O4 WE CS
4.2 ② Intel 2114 RAM 矩阵 (64 × 64) 读 … 第一组 第二组 第三组 第四组 15 31 16 47 32 15 … 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 I/O1 I/O2 I/O3 I/O4 WE CS
4.2 ② Intel 2114 RAM 矩阵 (64 × 64) 读 … … 第一组 第二组 第三组 第四组 15 31 16 47 32 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 I/O1 I/O2 I/O3 I/O4 WE CS 15 31 16 47 32 63 48 …
4.2 … ② Intel 2114 RAM 矩阵 (64 × 64) 读 … … 第一组 第二组 第三组 第四组 15 31 16 47 15 31 16 47 32 63 48 … 15 … 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 I/O1 I/O2 I/O3 I/O4 WE CS … 16 48 32
4.2 ② Intel 2114 RAM 矩阵 (64 × 64) 读 … 第一组 第二组 第三组 第四组 15 31 16 47 32 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 I/O1 I/O2 I/O3 I/O4 WE CS 16 32 48 CS WE
4.2 ② Intel 2114 RAM 矩阵 (64 × 64) 读 … … … 第一组 第二组 第三组 第四组 15 31 16 47 15 … 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 I/O1 I/O2 I/O3 I/O4 WE CS 15 31 16 47 32 63 48 … 16 32 48 …
4.2 … ② Intel 2114 RAM 矩阵 (64 × 64) 读 … … … … … … … … … … … … … … … … 第一组 第二组 第三组 第四组 15 31 16 47 32 63 48 … … … … … 行 15 16 16 31 32 32 47 48 48 63 … 地 1 址 … … 16 48 32 … … … … … … … … 译 63 码 15 16 31 32 47 48 63 列 地 … 址 15 译 I/O1 I/O2 I/O3 I/O4 读写电路 读写电路 读写电路 读写电路 码 WE CS
4.2 … ② Intel 2114 RAM 矩阵 (64 × 64) 读 … … … 第一组 第二组 第三组 第四组 15 31 16 15 … 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 I/O1 I/O2 I/O3 I/O4 WE CS 15 31 16 47 32 63 48 … 16 32 48 … … 16 48 32 读写电路
4.2 … ② Intel 2114 RAM 矩阵 (64 × 64) 读 … … … 第一组 第二组 第三组 第四组 15 31 16 15 … 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 I/O1 I/O2 I/O3 I/O4 WE CS 15 31 16 47 32 63 48 … 16 32 48 … … 16 48 32 读写电路 I/O1 I/O2 I/O3 I/O4
4.2 ③ Intel 2114 RAM 矩阵 (64 × 64) 写 … 第一组 第二组 第三组 第四组 A3 A4 A5 A6 A7 15 … 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 I/O1 I/O2 I/O3 I/O4 WE CS
4.2 ③ Intel 2114 RAM 矩阵 (64 × 64) 写 … 第一组 第二组 第三组 第四组 15 31 16 47 32 15 … 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 I/O1 I/O2 I/O3 I/O4 WE CS
4.2 ③ Intel 2114 RAM 矩阵 (64 × 64) 写 … … 第一组 第二组 第三组 第四组 15 31 16 47 32 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 I/O1 I/O2 I/O3 I/O4 WE CS 15 31 16 47 32 63 48 …
4.2 … ③ Intel 2114 RAM 矩阵 (64 × 64) 写 … 第一组 第二组 第三组 第四组 15 31 16 47 32 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 I/O1 I/O2 I/O3 I/O4 WE CS … 16 48 32 WE CS
4.2 … ③ Intel 2114 RAM 矩阵 (64 × 64) 写 … 第一组 第二组 第三组 第四组 15 31 16 47 32 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 … 16 48 32 I/O1 I/O2 I/O3 I/O4 I/O1 I/O2 I/O3 I/O4 WE CS
4.2 … ③ Intel 2114 RAM 矩阵 (64 × 64) 写 … 第一组 第二组 第三组 第四组 15 31 16 47 32 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 … 16 48 32 读写电路 I/O1 I/O2 I/O3 I/O4 I/O1 I/O2 I/O3 I/O4 WE CS
4.2 … ③ Intel 2114 RAM 矩阵 (64 × 64) 写 … 第一组 第二组 第三组 第四组 15 31 16 47 32 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 … 16 48 32 读写电路 I/O1 I/O2 I/O3 I/O4 I/O1 I/O2 I/O3 I/O4 WE CS
4.2 … ③ Intel 2114 RAM 矩阵 (64 × 64) 写 … 第一组 第二组 第三组 第四组 15 31 16 47 32 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 WE CS I/O1 I/O2 I/O3 I/O4 … 16 48 32 I/O1 I/O2 I/O3 I/O4
4.2 … ③ Intel 2114 RAM 矩阵 (64 × 64) 写 … … 第一组 第二组 第三组 第四组 15 31 16 47 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 WE CS 15 31 16 47 32 63 48 … I/O1 I/O2 I/O3 I/O4 16 32 48 读写电路 … 16 48 32 I/O1 I/O2 I/O3 I/O4
4.2 (3) 静态 RAM 读 时序 t t t t t 读周期 tRC 地址有效 下一次地址有效 读时间 tA 地址有效 CS D OUT 地址有效 地址失效 片选失效 数据有效 数据稳定 高阻 t A 片选有效 t CO t OHA t OTD tOHA 地址失效后的 数据维持时间 tOTD 片选失效 输出高阻 读周期 tRC 地址有效 下一次地址有效 读时间 tA 地址有效 数据稳定 tCO 片选有效 数据稳定
4.2 (4) 静态 RAM (2114) 写 时序 t t t t t t 写时间 tW 写命令 WE 的有效时间 WC A CS WE D OUT IN t AW t W t WR t DW t DH tDW 数据稳定 WE 失效 tWR 片选失效 下一次地址有效 tDH WE 失效后的数据维持时间 写时间 tW 写命令 WE 的有效时间 写周期 tWC 地址有效 下一次地址有效 tAW 地址有效 片选有效的滞后时间
4.2 2. 动态 RAM ( DRAM ) (1) 动态 RAM 基本单元电路 1 1 1 1 V V 读出与原存信息相反 无电流 有电流 DD 预充电信号 读选择线 写数据线 写选择线 读数据线 V C g T4 T3 T2 T1 DD V 数据线 C s T 字线 T3 T2 T1 1 T 1 1 1 读出与原存信息相反 读出时数据线有电流 为 “1” 写入与输入信息相同 写入时 CS 充电 为 “1” 放电 为 “0”
4.2 … (2) 动态 RAM 芯片举例 ① 三管动态 RAM 芯片 (Intel 1103) 读 … … 读 写 控 制 电 路 单元 电路 读 写 控 制 电 路 列 地 址 译 码 器 … 读选择线 写选择线 D 行 地 址 译 码 器 1 31 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 刷新放大器 写 数 据 线 读 … … 单元 电路 D 读 写 控 制 电 路
4.2 ② 三管动态 RAM 芯片 (Intel 1103) 写 … 行 地 址 译 码 器 D 读 写 控 制 电 路 读 写 控 制 电 路 列 地 址 译 码 器 … 读选择线 写选择线 D 单元 电路 行 地 址 译 码 器 1 31 A4 A3 A2 A1 A0 刷新放大器 写 数 据 线 读
4.2 ② 三管动态 RAM 芯片 (Intel 1103) 写 … 1 行 地 址 译 码 器 D 读 写 控 制 电 路 读 写 控 制 电 路 列 地 址 译 码 器 … 读选择线 写选择线 D 单元 电路 行 地 址 译 码 器 1 31 A4 A3 A2 A1 A0 刷新放大器 写 数 据 线 读 1
4.2 ② 三管动态 RAM 芯片 (Intel 1103) 写 … … 1 行 地 址 译 码 器 D 读 写 控 制 电 路 读 写 控 制 电 路 列 地 址 译 码 器 … 读选择线 写选择线 D 单元 电路 行 地 址 译 码 器 1 31 A4 A3 A2 A1 A0 刷新放大器 写 数 据 线 读 1 …
4.2 ② 三管动态 RAM 芯片 (Intel 1103) 写 … … 1 1 行 地 址 译 码 器 D 读 写 控 制 电 路 读 写 控 制 电 路 列 地 址 译 码 器 … 读选择线 写选择线 D 单元 电路 行 地 址 译 码 器 1 31 A4 A3 A2 A1 A0 刷新放大器 写 数 据 线 读 1 … 1
4.2 … ② 三管动态 RAM 芯片 (Intel 1103) 写 … … 1 1 行 地 址 译 码 器 D 读 写 控 制 电 路 读 写 控 制 电 路 列 地 址 译 码 器 … 读选择线 写选择线 D 单元 电路 行 地 址 译 码 器 1 31 A4 A3 A2 A1 A0 刷新放大器 写 数 据 线 读 … 1 … 1 1 1 1
4.2 … ② 三管动态 RAM 芯片 (Intel 1103) 写 … … 1 1 行 地 址 译 码 器 D D 读 写 控 制 电 路 读 写 控 制 电 路 列 地 址 译 码 器 … 读选择线 写选择线 D 单元 电路 行 地 址 译 码 器 1 31 A4 A3 A2 A1 A0 刷新放大器 写 数 据 线 读 … 1 … D 1 1
4.2 … ② 三管动态 RAM 芯片 (Intel 1103) 写 … … 1 1 行 地 址 译 码 器 D D 读 写 控 制 电 路 读 写 控 制 电 路 列 地 址 译 码 器 … 读选择线 写选择线 D 单元 电路 行 地 址 译 码 器 1 31 A4 A3 A2 A1 A0 刷新放大器 写 数 据 线 读 … 1 … D 读 写 控 制 电 路 1 1
4.2 … ② 三管动态 RAM 芯片 (Intel 1103) 写 … … 1 1 行 地 址 译 码 器 D D 读 写 控 制 电 路 读 写 控 制 电 路 列 地 址 译 码 器 … 读选择线 写选择线 D 单元 电路 行 地 址 译 码 器 1 31 A4 A3 A2 A1 A0 刷新放大器 写 数 据 线 读 … 1 … D 读 写 控 制 电 路 1 1
4.2 … ② 三管动态 RAM 芯片 (Intel 1103) 写 … … 1 1 行 地 址 译 码 器 D D 读 写 控 制 电 路 读 写 控 制 电 路 列 地 址 译 码 器 … 读选择线 写选择线 D 单元 电路 行 地 址 译 码 器 1 31 A4 A3 A2 A1 A0 刷新放大器 写 数 据 线 读 … 1 … D 读 写 控 制 电 路 1 1
4.2 ③ 单管动态 RAM 4116 (16K × 1位) 外特性 时序与控制 DIN DOUT ~ ~ DIN DOUT RAS CAS 行时钟 列时钟 写时钟 WE RAS CAS A ' 6 存储单元阵列 基准单元 行 译 码 列译码器 再生放大器 读 出 放 大 I/O 缓存器 数据输出 驱动 数据输入 寄存器 DIN DOUT ~ 行地址 列地址 A ' 6 ~ DIN DOUT
4.2 ④ 4116 (16K × 1位) 芯片 读 原理 … … … 63 64 127 C 1 D 63 D 128 根行线 128 列 读放大器 … 63 64 127 128 根行线 C s 1 128 列 选 择 读/写线 数据输入 I/O缓冲 输出驱动 D OUT IN 读放大器 … … 63 I/O缓冲 输出驱动 OUT D
4.2 (3) 动态 RAM 时序 行、列地址分开传送 读时序 写时序 行地址 RAS 有效 行地址 RAS 有效 写允许 WE 有效(高) 列地址 CAS 有效 数据 DIN 有效 数据 DOUT 有效 列地址 CAS 有效
重点 4.2 (4) 动态 RAM 的刷新 ① 刷新的原因:由于动态RAM是靠电容存储电荷的 原理来存放信息,而电容会自动放电,其上的电荷一 般只能维持1 ~ 2ms,因此为了保证信息不丢失,对每 一个存储单元应在2ms内对其内容进行一次恢复,这 个过程称为刷新。 ② 刷新的特点:刷新是按行进行的,即一次刷新是将 一行内所有的单元恢复内容。一般取 2ms 作为刷新周 期,即在不大于2ms的时间间隔内刷新一行。 ③ 刷新的方式:集中刷新、分散刷新、异步刷新。
① 集中刷新 ② 分散刷新 ③异步刷新 集中刷新是指在一个刷新周期内,对全部存储单元集中一段时间进行逐行刷新。 分散刷新是指将各行存储单元的刷新分散到每个存取周期内完成。 ③异步刷新 异步刷新是前两种方式的结合,即将各行存储单元分散在 2ms 之内进行刷新。
以128×128 矩阵为例,假定存取周期为0.5s ① 集中刷新 “死区” 为 0.5 s ×128 = 64 s 周期序号 地址序号 t c 1 2 3871 3872 3999 V W 127 读 / 写或维持 刷新 个周期 (1936 s) 128 (64 s) 刷新时间间隔 ( 2 m s ) 刷新序号 ••• X Y • • • “死区” 为 0.5 s ×128 = 64 s 集中刷新的缺点:死时间太长
4.2 ② 分散刷新 将存取周期延长为1s,前 0.5s 对某个存储单元进行读写,后 0.5s 对某一行进行刷新。 W/R REF t R M C 126 127 刷新间隔 128 个存取周期 … tC = tM + tR 读写 刷新 存取周期 分散刷新的特点:优点是无死区;缺点是存取周期延长,刷新过于频繁,导致系统速度降低。
4.2 ③异步刷新 只需保证在2ms时间内,对128行全部刷新一遍即可,因此每隔 2ms / 128 = 15.6s 刷新一行。 异步刷新的特点:是集中刷新与分散刷新的结合。既不会出现死区时间过长的问题,又不会出现刷新过于频繁导致系统速度降低的问题,是较好的一种方案。 将刷新安排在指令译码阶段,不会出现 “死区”。
思考:以上三种刷新方式中,相邻两行的刷新间隔各是多长时间?对于同一行,相邻两次刷新间隔各是多长时间? (1)集中刷新 相邻两行的刷新间隔是: 同一行相邻两次的刷新间隔是: 0.5s 2ms (2)分散刷新 相邻两行的刷新间隔是: 同一行相邻两次的刷新间隔是: 1s 1s ×128 = 128s (3)异步刷新 相邻两行的刷新间隔是: 同一行相邻两次的刷新间隔是: 15.6s 15.6s ×128 = 2ms
4.2 3. 动态 RAM 和静态 RAM 的比较 主存 缓存 DRAM SRAM 存储原理 电容存储电荷 触发器 集成度 高 低 芯片引脚 少 多 功耗 小 大 价格 低 高 速度 慢 快 刷新 有 无
4.2 四、只读存储器(ROM) 1. 掩模 ROM ( MROM ) 2. PROM (一次性编程) 行列选择线交叉处有 MOS 管为“1” 行列选择线交叉处无 MOS 管为“0” 2. PROM (一次性编程) VCC 行线 列线 熔丝 熔丝断 为 “0” 为 “1” 熔丝未断
4.2 3. EPROM (多次性编程 ) (1) N型沟道浮动栅 MOS 电路 紫外线全部擦洗 S G D SiO + + + + + 基片 浮动栅 SiO 2 + + + + + _ _ _ G 栅极 S 源 D 漏 紫外线全部擦洗 D 端加正电压 形成浮动栅 S 与 D 不导通为 “0” D 端不加正电压 不形成浮动栅 S 与 D 导通为 “1”
4.2 (2) 2716 EPROM 的逻辑图和引脚 … PD/Progr 功率下降 / 编程输入端 读出时 为 低电平 控制逻辑 Y 译码 X 译 码 数据缓冲区 Y 控制 128 × 128 存储矩阵 PD/Progr CS A10 A7 A6 A0 DO0 DO7 1 12 A1 VSS DO2 DO1 2716 24 13 VCC A8 A9 VPP DO3 PD/Progr PD/Progr 功率下降 / 编程输入端 读出时 为 低电平
4.2 4. EEPROM (多次性编程 ) 5. Flash Memory (闪速型存储器) 电可擦写 局部擦写 全部擦写 EPROM 价格便宜 集成度高 EEPROM 电可擦洗重写 比 EEPROM快 具备 RAM 功能
4.2 五、存储器与 CPU 的连接 1. 存储器容量的扩展 重点 (1) 位扩展 (增加存储字长) 10根地址线 1. 存储器容量的扩展 (1) 位扩展 (增加存储字长) 10根地址线 用 1K × 4位 存储芯片组成 1K × 8位 的存储器 ?片 2片 9 A ••• 8根数据线 2114 D … 4 7 CS WE
4.2 (2) 字扩展(增加存储字的数量) 用 1K × 8位 存储芯片组成 2K × 8位 的存储器 ?片 2片 11根地址线 8根数据线 CS0 A10 1 CS1 A1 A0 ••• A9 ••• ••• 1K× 8位 ••• ••• D7 D0 ••• WE
4.2 (3) 字、位扩展 用 1K × 4位 存储芯片组成 4K × 8位 的存储器 ?片 8片 12根地址线 8根数据线 ... … … A11 A10 片选 译码 CS3 CS2 CS1 CS0 A8 A9 A0 ... … 1K×4 D7 D0 … WE
4.2 2. 存储器与 CPU 的连接 (1) 地址线的连接 (2) 数据线的连接 (3) 读/写命令线的连接 (4) 片选线的连接 (5) 合理选择存储芯片 (6) 其他 时序、负载
例4.1 解: 4.2 (1) 写出对应的二进制地址码 ROM 1片 2K×8位 A15A14A13 A11 A10 … A7 … A4 A3 … A0 0 1 1 0 0 0 0 0 2K×8位 … 0 1 1 0 0 1 1 1 1 1 1 1 0 1 1 0 1 0 0 0 0 0 0 0 1K×8位 … 0 1 1 0 1 0 1 1 1 1 1 1 RAM 2片1K×4位 (2) 确定芯片的数量及类型
4.2 (3) 分配地址线 0 1 1 0 0 0 0 0 A15 A13 A11 A10 … A7 … A4 A3 … A0 … 0 1 1 1 1 1 1 1 1 0 0 0 1 0 1 1 2K × 8位 1片 ROM 1K × 4位 2片RAM C B A A10~ A0 接 2K × 8位 ROM 的地址线 A9 ~ A0 接 1K × 4位 RAM 的地址线 (4) 确定片选信号
4.2 例 4.1 CPU 与存储器的连接图 & … … … … … … … … … … … … MREQ A14 A15 A13 A12 D7 D4 D3 D0 WR G1 C B A G2B G2A Y5 & Y4 … … … … PD/Progr 2K ×8位 ROM 1K ×4位 RAM … … … … … … …
4.2 例4.2 假设同前,要求最小 4K为系统 程序区,相邻 8K为用户程序区。 (1) 写出对应的二进制地址码 (2) 确定芯片的数量及类型 1片 4K × 8位 ROM 2片 4K × 8位 RAM (3) 分配地址线 A11~ A0 接 ROM 和 RAM 的地址线 (4) 确定片选信号
4.2 例 4.3 设 CPU 有 20 根地址线,8 根数据线。 … 并用 IO/M 作访存控制信号。RD 为读命令, WR 为写命令。现有 2764 EPROM ( 8K × 8位 ), 外特性如下: … D7 D0 CE OE 片选信号 允许输出 PGM 可编程端 A0 A12 用 138 译码器及其他门电路(门电路自定)画出 CPU和 2764 的连接图。要求地址为 F0000H~FFFFFH , 并 写出每片 2764 的地址范围。
4.2 六、存储器的校验 1 . 编码的最小距离 任意两组合法代码之间 二进制位数 的 最少差异 编码的纠错 、检错能力与编码的最小距离有关 L 1 = D + C ( D≥C ) L —— 编码的最小距离 L = 3 具有 一位 纠错能力 D —— 检测错误的位数 C —— 纠正错误的位数 汉明码是具有一位纠错能力的编码
4.2 2 . 汉明码的组成 2k ≥ n + k + 1 … 2i ( i = 0,1,2 ,3 , ) 组成汉明码的三要素 汉明码的组成需增添 ?位检测位 2k ≥ n + k + 1 检测位的位置 ? 2i ( i = 0,1,2 ,3 , ) … 检测位的取值 ? 检测位的取值与该位所在的检测“小组” 中 承担的奇偶校验任务有关
4.2 各检测位 Ci 所承担的检测小组为 … … … … C1 检测的 g1 小组包含第 1,3,5,7,9,11, gi 小组独占第 2i-1 位 gi 和 gj 小组共同占第 2i-1 + 2j-1 位 gi、gj 和 gl 小组共同占第 2i-1 + 2j-1 + 2l-1 位
4.2 例4.4 求 0101 按 “偶校验” 配置的汉明码 解: ∵ n = 4 根据 2k ≥ n + k + 1 得 k = 3 汉明码排序如下: 二进制序号 名称 1 2 3 4 5 6 7 C1 C2 C4 1 0 1 1 ∴ 0101 的汉明码为 0100101
4.2 练习1 按配偶原则配置 0011 的汉明码 解: ∵ n = 4 根据 2k ≥ n + k + 1 取 k = 3 二进制序号 名称 1 2 3 4 5 6 7 C1 C2 C4 0 1 1 1 0 0 C1= 3 5 7 = 1 C2= 3 6 7 = 0 C4= 5 6 7 = 0 ∴ 0011 的汉明码为 1000011
4.2 3. 汉明码的纠错过程 形成新的检测位 Pi , 其位数与增添的检测位有关, 如增添 3 位 (k = 3), 新的检测位为 P4 P2 P1 。 以 k = 3 为例,Pi 的取值为 C1 P1 = 1 3 5 7 C2 P2 = 2 3 6 7 C4 P4 = 4 5 6 7 对于按 “偶校验” 配置的汉明码 不出错时 P1= 0,P2 = 0,P4 = 0
4.2 已知接收到的汉明码为 0100111 例4.5 (按配偶原则配置)试问要求传送的信息是什么? 解: 纠错过程如下 P1= 1 3 5 7 = 0 无错 P2= 2 3 6 7 = 1 有错 P4= 4 5 6 7 = 1 有错 ∴ P4P2P1 = 110 第 6 位出错,可纠正为 0100101, 故要求传送的信息为 0101。
4.2 练习2 练习3 写出按偶校验配置的汉明码 0101101 的纠错过程 P4 = 4 5 6 7 = 1 ∴ P4 P2 P1 = 100 第 4 位错,可不纠 练习3 按配奇原则配置 0011 的汉明码 配奇的汉明码为 0101011
4.2 七、提高访存速度的措施 (1)采用高性能存储芯片 (2)采用层次结构 Cache –主存 (3)调整主存结构,特别是采用低位交叉编址 例如采用DRAM结构的芯片,几乎每隔3年芯片的容量就翻两番。 (2)采用层次结构 Cache –主存 缓存Cache的速度比主存快,将CPU最近使用的代码和数据放到Cache中,就可以做到在一定时间段内CPU只访问Cache。 (3)调整主存结构,特别是采用低位交叉编址 低位交叉编址的主存结构可以很大程度上提高主存的带宽。
1. 单体多字系统 增加存储器的带宽 W位 地址寄存器 主存控制器 . . . 单字长寄存器 数据寄存器 存储体
4.2 2. 多体并行系统 (1) 高位交叉 顺序编址 … 地址 M0 M1 M2 M3 00 0000 00 0001 00 1111 01 0000 01 0001 01 1111 10 0000 10 0001 10 1111 11 0000 11 0001 11 1111 体内地址 体号
高位交叉编址结构的特点: 优点: 缺点: (1)各存储体可以并行地分开工作,即同一时刻,各存储体可以和多个不同的设备交互信息。 (2)由于每个存储体内部的信息编址是连续存储的,因此扩充存储器容易。 缺点: 在同一时刻,对于同一个与主存交互信息的设备来说,存储带宽并未得到提高。
4.2 (2) 低位交叉 各个存储体轮流编址 … 高位 低位 地址 M0 M1 M2 M3 0000 00 0000 01 0000 10 0000 11 M0 … M1 M2 M3 0001 00 0001 01 0001 10 0001 11 1111 00 1111 01 1111 10 1111 11 体号 体内地址 高位 低位
低位交叉编址结构的特点: 优点: 在同一时刻,由于各存储体可以重叠向同一个与主存交互信息的设备传递信息,因此在很大程度上提高了存储带宽。 缺点: (1)在同一时刻,只能有一个设备与主存交互信息,不能是多个设备同时与主存交互信息。 (2)由于同一存储体内信息的编址是不连续的,因此扩充存储器不方便。
4.2 (2) 低位交叉 各个体轮流编址 … 高位 低位 M0 地址 M1 M2 M3 体号 体号 4 4n-4 1 5 4n-3 2 6 (2) 低位交叉 各个体轮流编址 M0 地址 4 … 4n-4 M1 1 5 4n-3 M2 2 6 4n-2 M3 3 7 4n-1 地址译码 体号 体内地址 高位 低位 体号
4.2 低位交叉的特点 在不改变存取周期的前提下,增加存储器的带宽 单体 访存周期 时间 启动存储体 0 启动存储体 1 启动存储体 2 启动存储体 3
设 4 体低位交叉存储器,存取周期为T,总线传输周期为τ,为实现流水线方式存取,应满足 T = 4τ。 注:为保证某一存储体再次启动时,前一次的存取操作已经完成,应取 nτ > T 连续读取 4 个字所需的时间为 T+(4 -1)τ
【课后题4.24】一个 4 体低位交叉存储器,假设存取周期为 T,CPU每隔 1/4 存取周期启动一个存储体,试问依次访问64个字需要多少个存取周期? 【解】 访问64个字所需的时间为 t = T + (n - 1) *τ t = T + ( 64 – 1 ) * ( T / 4 ) = 16.75 T
4.2 (3) 存储器控制部件(简称存控) … 节拍 发生器 控制线路 易发生代码 丢失的请求源,优先级 最高 Q 排队器 CM 来自各个请求源 … 主脉冲 存控标记 触发器 易发生代码 丢失的请求源,优先级 最高 严重影响 CPU 工作的请求源, 给予 次高 优先级
4.2 3.高性能存储芯片 (1) SDRAM (同步 DRAM) (2) RDRAM (3) 带 Cache 的 DRAM 在系统时钟的控制下进行读出和写入 CPU 无须等待 (2) RDRAM 由 Rambus 开发,主要解决 存储器带宽 问题 (3) 带 Cache 的 DRAM 在 DRAM 的芯片内 集成 了一个由 SRAM 组成的 Cache ,有利于 猝发式读取
4.3 高速缓冲存储器 一、概述 1. 问题的提出 避免 CPU “空等” 现象 CPU 和主存(DRAM)的速度差异 缓存 CPU 主存 4.3 高速缓冲存储器 一、概述 1. 问题的提出 避免 CPU “空等” 现象 CPU 和主存(DRAM)的速度差异 缓存 CPU 主存 容量小 速度高 容量大 速度低 程序访问的局部性原理
4.3 2. Cache 的工作原理 ~ … (1) 主存和缓存的编址 主存和缓存按块存储 块的大小相同 B 为块长 1 2c-1 2m-1 (1) 主存和缓存的编址 ~ … 主存块号 主存储器 1 2m-1 字块 0 字块 1 字块 M-1 块内地址 m位 b位 n位 M块 B个字 缓存块号 c位 C块 字块 C-1 2c-1 标记 Cache 主存和缓存按块存储 块的大小相同 B 为块长
4.3 (2) 命中与未命中 缓存共有 C 块 主存共有 M 块 M >> C 命中 主存块 调入 缓存 主存块与缓存块 建立 了对应关系 用 标记记录 与某缓存块建立了对应关系的 主存块号 主存块 未调入 缓存 主存块与缓存块 未建立 对应关系
4.3 (3) Cache 的命中率 命中率是指CPU 欲访问的信息在 Cache 中的 比率。 Nc h = Nc + Nm Nc表示CPU访问缓存的次数 h = Nc Nc + Nm Nm表示CPU访问主存的次数 命中率 与 Cache 的 容量 与 块长 有关。 块长取一个存取周期内从主存调出的信息长度。
4.3 (4) Cache –主存系统的效率 效率 e 与 命中率 有关。 访问 Cache 的时间 e = × 100% 平均访问时间 tc是访问缓存的时间 tm是访问主存的时间 平均访问时间 = h×tc + (1 - h) × tm h是命中率 则 e = × 100% tc h × tc+ (1-h)× tm
4.3 3. Cache 的基本结构 由CPU完成 Cache 替换机构 主存Cache 地址映射 变换机构 Cache 存储体
4.3 4. Cache 的 读写 操作 读 访问Cache 访问主存 取出信息送CPU 将新的主存块 调入Cache中 执行替换算法 腾出空位 结束 命中? Cache满? CPU发出访问地址 开始 是 否
4.3 4. Cache 的 读写 操作 写 Cache 和主存的一致性 写直达法(Write – through) 写操作时间就是访问主存的时间,读操作时不 涉及对主存的写操作,更新策略比较容易实现 写回法(Write – back) 写操作时只把数据写入 Cache 而不写入主存 当 Cache 数据被替换出去时才写回主存 写操作时间就是访问 Cache 的时间, 读操作 Cache 失效发生数据替换时, 被替换的块需写回主存,增加了 Cache 的复杂性
4.3 5. Cache 的改进 (1) 增加 Cache 的级数 (2) 统一缓存和分立缓存 片载(片内)Cache 片外 Cache 与主存结构有关 与指令执行的控制方式有关 是否流水 Pentium 8K 指令 Cache 8K 数据 Cache PowerPC620 32K 指令 Cache 32K 数据 Cache
4.3 二、Cache – 主存的地址映射 1. 直接映射 i = j mod C * … Cache存储体 t位 1 2c-1 = 1. 直接映射 字块2m-1 字块2c+1 字块2c+1-1 字块2c +1 字块2c 字块2c-1 字块1 字块0 … 主存储体 字块 1 标记 字块 0 字块 2c-1 Cache存储体 t位 1 2c-1 字块 字块地址 主存字 块标记 t 位 c 位 b 位 主存地址 比较器(t位) = ≠ 不命中 有效位=1? * m位 Cache 内地址 否 是 命中 字块2c+1 字块2c 字块0 字块 0 i = j mod C 每个缓存块 i 可以和 若干 个 主存块 对应 每个主存块 j 只能和 一 个 缓存块 对应
4.3 2. 全相联映射 m = t + c 位 b位 m = t+c Cache 存储器 主存储器 字块1 字块0 … 标记 主存字块标记 字块内地址 主存地址 m = t + c 位 b位 m = t+c Cache 存储器 主存储器 字块0 主存 中的 任一块 可以映射到 缓存 中的 任一块
4.3 3. 组相联映射 直接映射 全相联映射 i = j mod Q 某一主存块 j 按模 Q 映射到 缓存 的第 i 组中的 任一块 字块2c-r+1 字块2c-r + 1 字块2c-r 字块2c-r - 字块1 字块0 … 字块 3 标记 字块 1 字块 2c-1 字块 2 字块 0 字块 2c-2 字块内地址 组地址 主存字块标记 s = t + r 位 q = c-r 位 b 位 组 1 2c-r-1 主存地址 Cache 主存储器 m 位 共 Q 组,每组内两块(r = 1) 字块0 字块 1 字块 0 字块2c-r 字块2c-r+1 直接映射 全相联映射 i = j mod Q 某一主存块 j 按模 Q 映射到 缓存 的第 i 组中的 任一块
三种地址映射法总结: 特点 优点 缺点 直接 映射 全相联 组相联 某一主存块只能固定地映射到某一缓存块 i = j mod C 硬件成本低,比较电路容易实现 映射方式不灵活,缓存空间得不到有效利用,同一组的主存块之间可能频繁替换 全相联 某一主存块能映射到任何一个缓存块 映射方式灵活 硬件成本高,比较电路实现困难。 组相联 某一主存块只能映射到某一缓存组中的任意一块 综合了前两种方法的优点:硬件成本不高,比较电路实现相对容易;映射方式相对灵活。
缓存和主存地址各字段的分配 缓存 地址 主存 地址 C 块 B 个字 c 位 b 位 M 块 B 个字 m 位 b 位 缓存块号 字块内地址
三种映射方式主存地址各字段的分配 直接 映射 全相联 映射 组相联 映射 c 位 b 位 t 位 m 位 b 位 m 位 q 位 b 位 字块内地址 缓存字块地址 c 位 b 位 主存字块标记 t 位 m 位 字块内地址 b 位 主存字块标记 m 位 全相联 映射 组相联 映射 字块内地址 缓存组地址 q 位 b 位 主存字块标记 s 位 m 位
4.3 三、替换算法 1. 先进先出 ( FIFO )算法 2. 近期最少使用( LRU)算法 3. 随机法 — 没有根据访存的局部性原理 — 较好地利用了访存的局部性原理 3. 随机法 — 没有根据访存的局部性原理
4.4 辅助存储器 一、概述 1. 特点: 不直接与 CPU 交换信息 2. 磁表面存储器的技术指标 (1)记录密度 4.4 辅助存储器 一、概述 1. 特点: 不直接与 CPU 交换信息 2. 磁表面存储器的技术指标 (1)记录密度 道密度 —— 是指磁盘沿半径方向单位长度的磁道数。 位密度 —— 是指单位长度磁道能记录的二进制信息位数。
(2)存储容量 (3)平均寻址时间 存储容量 = n × k × s 平均寻址时间 = 平均找道时间 + 平均等待时间 平均找道时间:是指磁头定位至所要求的磁道上所需的时间。 平均等待时间:是指找道完成后,磁头定位至磁道上待访问的信息所需的时间。
(4)数据传输率 (5)误码率 数据传输率 = n × N n:磁盘旋转速度 N:每条磁道上记录的二进制位数 是指读出的错误信息位数和总信息位数的比值。为了减少出错率,磁盘通常采用循环冗余码来发现并纠正错误。
4.4 二、磁记录原理和记录方式 1. 磁记录原理——写(电-磁变换) 局部磁化单元 载磁体 写线圈 S N I 铁芯 磁通 磁层 写入“0” 写入“1” 写操作:当写线圈中通过一定方向的脉冲电流时,铁芯内就产生一定方向的磁通。
1. 磁记录原理——读(磁-电变换) 4.4 N 读线圈 S 铁芯 磁通 磁层 运动方向 s t f e 读出 “0” 读出 “1” 读操作:当磁头经过载磁体的磁化元时,磁化元的磁力线通过磁头而形成闭合磁通回路。不同极性的磁化元在铁芯里的方向是不同的。
4.4 2. 磁表面存储器的记录方式 1 数据序列 RZ NRZ NRZ1 PM FM MFM T 位周期
4.4 例 NRZ1 的读出代码波形 1 数据序列 驱动电流 磁通变化 感应电势 同步脉冲 读出代码
4.4 三、硬磁盘存储器 1. 硬磁盘存储器的类型 (1) 固定磁头和移动磁头 (2) 固定盘和可换盘 固定磁头的特点是磁盘的每个磁道对应一个磁头 可移动磁头的特点是盘片每面只有一个磁头 (2) 固定盘和可换盘 固定盘是指盘片不能从驱动器中取下 可换盘是指盘片可以脱机保存
温彻斯特磁盘机简称“温盘”,是一种采用先进技术研制的可移动磁头固定盘片的磁盘机。 温盘是一种密封组合式的硬磁盘,即磁头、盘片、电机等驱动部件乃至读写电路等组装成一个不可随意拆卸的整体。工作时,高速旋转在盘面上形成的气垫将磁头平稳浮起。 优点是防尘性能好,可靠性高,对使用环境要求不高,成为最有代表性的硬磁盘存储器。而普通的硬磁盘要求具有超净环境,只能用于大型计算机中。
2. 硬磁盘存储器结构 磁 盘 控 制 器 磁 盘 驱 动 器 盘 片 主 机
4.4 (1) 磁盘驱动器 磁盘驱动器是一种精密的电子和机械装置,因此各部件的加工安装有严格的技术要求。对温盘驱动器,还要求在超净环境下组装。各类磁盘驱动器的具体结构虽然有差别,但基本结构相同,主要由定位驱动系统、主轴系统和数据转换系统组成。
4.4 (2) 磁盘控制器 接收主机发来的命令,转换成磁盘驱动器的控制命令 实现主机和驱动器之间的数据格式转换 控制磁盘驱动器读写 磁盘控制器 是 主机与磁盘驱动器之间的 接口 对主机 对硬盘(设备) 通过总线
(3) 盘片 由硬质铝合金材料制成 盘片的上下两面都能记录信息,通常把磁盘片表面称为记录面。 n 由硬质铝合金材料制成 盘片的上下两面都能记录信息,通常把磁盘片表面称为记录面。 记录面上一系列同心圆称为磁道。个盘片表面通常有几百到几千个磁道。 每个磁道又分为若干个扇区。
硬磁盘的寻址过程: 磁盘的地址格式: 首先确定台号 其次确定柱面(即磁道号) 然后再选定磁头(即盘面号) 最后找到扇段 盘面号 扇段号 台号
4.4 四、软磁盘存储器 1. 概述 硬盘 软盘 速度 高 低 磁头 固定、活动 活动 浮动 接触盘片 盘片 固定盘、盘组 大部分不可换 可换盘片 价格 高 低 环境 苛刻
4.4 2. 软盘片 由聚酯薄膜制成 保护套 主轴孔 实际的软盘片 写保护口 读/写磁头访问槽 衬里/清洁材料
4.4 五、光盘存储器 1. 概述 2. 光盘的存储原理 采用光存储技术 利用激光写入和读出 第一代光存储技术 第二代光存储技术 采用非磁性介质 不可擦写 采用磁性介质 可擦写 2. 光盘的存储原理 只读型和只写一次型 热作用(物理或化学变化) 可擦写光盘 热磁效应
本章主要知识点小结 存储器分类(图4.1) 存储系统的层次结构(重点) 主存(RAM、ROM) 缓存(Cache) 辅存(磁盘、光盘、磁带) 闪存(Flash Memory) 存储系统的层次结构(重点) Cache-主存层次:主要解决存储系统的速度问题 主存-辅存层次:主要解决存储系统的容量问题
主存的基本组成(图4.4) 主存器的技术指标 存储容量 = 存储单元个数 × 存储字长 存取时间:是指启动一次存储器读操作或写操作所需的时间。存取时间分读出时间和写入时间两种。 存储周期:是指存储器连续进行两次存储器操作所需的最小时间间隔。 存储器带宽:单位时间内存储器存取的信息量,单位可用字/秒、字节/秒、位/秒等表示。
半导体存储芯片 随机存取存储器RAM 只读存储器ROM 静态RAM——采用双稳态触发器工作原理存储信息,速度快、无需刷新,被广泛用于Cache。 动态RAM——利用电容存储电荷的原理存储信息,在一定时间内电容的电荷会自动消失,所以在2ms内必须刷新一次。动态RAM的集成度高、功耗小,价格便宜,应此被广泛用于计算机的主存。 动态RAM的几种刷新方式——集中刷新、分散刷新、异步刷新 只读存储器ROM 不可编程的ROM——掩膜ROM 可编程的ROM——PROM、EPROM、E2PROM
主存与CPU的连接(重点) 提高访存速度的措施 存储容量的扩展——位扩展、字扩展、字位扩展 地址线的连接 数据线的连接 读/写命令线的连接 片选线的连接 合理选择存储芯片 提高访存速度的措施 采用高速存储芯片 采用高速缓冲存储器Cache 调整主存结构——采用多体并行系统 控制线
高速缓冲存储器Cache(重点) 程序访问的局部性原理 Cache的工作原理 Cache的基本结构 Cache与主存的地址映射 替换策略 直接映射 全相联映射 组相联映射 替换策略 先进先出算法 近期最少使用算法 随机法