4.1 概述 4.2 主存储器 4.3 高速缓冲存储器 4.4 辅助存储器
4.1 概 述 一、存储器分类 1. 按存储介质分类 易失 (1) 半导体存储器 TTL 、MOS (2) 磁表面存储器 磁头、载磁体 非 易 失 (3) 磁芯存储器 硬磁材料、环状元件 (4) 光盘存储器 激光、磁光材料
2. 按存取方式分类 (1) 存取时间与物理地址无关(随机访问) 随机存储器 在程序的执行过程中 可 读 可 写 在程序的执行过程中 只读 只读存储器 (2) 存取时间与物理地址有关(串行访问) 顺序存取存储器 磁带 直接存取存储器 磁盘
静态 RAM 动态 RAM 3. 按在计算机中的作用分类 RAM ROM 主存储器 辅助存储器 MROM PROM EPROM EEPROM 存 储 器 Flash Memory 高速缓冲存储器(Cache) 磁盘 磁带 光盘
二、存储器的层次结构 小 高 大 低 速度 容量 价格/位 1. 存储器三个主要特性的关系 寄存器 缓存 主存 磁盘 光盘 磁带 CPU 1. 存储器三个主要特性的关系 寄存器 缓存 主存 磁盘 光盘 磁带 CPU CPU 主机 快 小 高 慢 大 低 辅存
2. 缓存 主存层次和主存 辅存层次 CPU 主存 缓存 辅存 (速度) (容量) 缓存 主存 辅存 主存 主存储器 虚拟存储器 实地址 2. 缓存 主存层次和主存 辅存层次 10 ns 20 ns 200 ns ms CPU 主存 缓存 辅存 (速度) (容量) 缓存 主存 辅存 主存 主存储器 虚拟存储器 实地址 虚地址 物理地址 逻辑地址
4.2 主存储器 一、概述 1. 主存的基本组成 存储体 驱动器 译码器 MAR 控制电路 读 写 电 路 MDR . 地址总线 数据总线
2. 主存和 CPU 的联系 MDR MAR CPU 主 存 读 数据总线 地址总线 写
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. 主存的技术指标 (1) 存储容量 主存 存放二进制代码的总数量 (2) 存储速度 存取时间 存取周期 存储器的 访问时间 读出时间 写入时间 连续两次独立的存储器操作 (读或写)所需的 最小间隔时间 读周期 写周期 (3) 存储器的带宽 位/秒
二、半导体存储芯片简介 1. 半导体存储芯片的基本结构 译 码 驱 动 存 储 矩 阵 读 写 电 路 地 址 线 …… 数 据 线 …… 1. 半导体存储芯片的基本结构 译 码 驱 动 存 储 矩 阵 读 写 电 路 地 址 线 …… 数 据 线 …… 片选线 读/写控制线 地址线 (单向) 数据线 (双向) 芯片容量 1K × 4位 10 4 16K × 1位 14 1 8K × 8位 13 8
当地址为 65 535 时,此 8 片的片选有效 存储芯片片选线的作用 用 16K × 1位 的存储芯片组成 64K × 8位 的存储器 8片 16K × 1位 32片 当地址为 65 535 时,此 8 片的片选有效
读/写控制电路 …… … …… …… 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
Y 地址译码器 … … 0,0 32×32 (2) 重合法 A 0,31 0,0 31,0 31,31 地 址 译 码 器 I/O Y D 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 0,0 31,0 0,31 … I/O D 读
´ 三、随机存取存储器 ( RAM ) 1. 静态 RAM (SRAM) (1) 静态 RAM 基本电路 1 T 4 ~ 触发器 5 T 6 7 8 A´ A 写放大器 DIN 写选择 读选择 DOUT 读放 位线A ´ 列地址选择 行地址选择 T1 ~ T4 5 T 6 、 行开关 7 T 8 、 列开关 7 T 8 、 一列共用 A 触发器原端 A´ 触发器非端
① 静态 RAM 基本电路的 读 操作 ´ A´ T1 ~ T4 A DOUT 行选 T5、T6 开 T7、T8 开 列选 读放 DOUT 写放大器 DIN 写选择 读选择 读放 位线A ´ 列地址选择 行地址选择 DOUT 行选 T5、T6 开 T7、T8 开 列选 读放 DOUT VA T6 T8 DOUT
② 静态 RAM 基本电路的 写 操作 A´ A T1 ~ T4 T5 T6 T7 T8 DIN DOUT 行选 T5、T6 开 列选 列地址选择 行地址选择 写放 读放 DOUT 写选择 读选择 行选 T5、T6 开 列选 T7、T8 开 两个写放 DIN (左) 反相 T5 A´ (右) T8 T6 A DIN T7
(2) 静态 RAM 芯片举例 ① Intel 2114 外特性 . I/O 1 2 3 4 A 8 9 WE CS CC V GND Intel 2114 存储容量 1K×4位
② Intel 2114 RAM 矩阵 (64 × 64) 读 … 第一组 第二组 第三组 第四组 A3 A4 A5 A6 A7 A8 A0 15 … 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 I/O1 I/O2 I/O3 I/O4 WE CS
② Intel 2114 RAM 矩阵 (64 × 64) 读 … 第一组 第二组 第三组 第四组 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
… … ② Intel 2114 RAM 矩阵 (64 × 64) 读 第一组 第二组 第三组 第四组 15 31 16 47 32 63 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 I/O1 I/O2 I/O3 I/O4 WE CS 15 31 16 47 32 63 48 …
② Intel 2114 RAM 矩阵 (64 × 64) 读 … … 第一组 第二组 第三组 第四组 15 31 16 47 32 63 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
② Intel 2114 RAM 矩阵 (64 × 64) 读 … 第一组 第二组 第三组 第四组 15 31 16 47 32 63 48 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 I/O1 I/O2 I/O3 I/O4 WE CS 16 32 48 CS WE
… … ② Intel 2114 RAM 矩阵 (64 × 64) 读 第一组 第二组 第三组 第四组 15 31 16 47 32 63 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 I/O1 I/O2 I/O3 I/O4 WE CS …
② Intel 2114 RAM 矩阵 (64 × 64) 读 … 第一组 第二组 第三组 第四组 15 31 16 47 32 63 48 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 I/O1 I/O2 I/O3 I/O4 WE CS
② Intel 2114 RAM 矩阵 (64 × 64) 读 … 第一组 第二组 第三组 第四组 15 31 16 47 32 63 48 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 I/O1 I/O2 I/O3 I/O4 WE CS 读写电路
② Intel 2114 RAM 矩阵 (64 × 64) 读 … 第一组 第二组 第三组 第四组 15 31 16 47 32 63 48 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 I/O1 I/O2 I/O3 I/O4 WE CS I/O1 I/O2 I/O3 I/O4
③ Intel 2114 RAM 矩阵 (64 × 64) 写 … 第一组 第二组 第三组 第四组 A3 A4 A5 A6 A7 A8 A0 15 … 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 I/O1 I/O2 I/O3 I/O4 WE CS
③ Intel 2114 RAM 矩阵 (64 × 64) 写 … 第一组 第二组 第三组 第四组 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
③ Intel 2114 RAM 矩阵 (64 × 64) 写 … … 第一组 第二组 第三组 第四组 15 31 16 47 32 63 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 I/O1 I/O2 I/O3 I/O4 WE CS 15 31 16 47 32 63 48 …
③ Intel 2114 RAM 矩阵 (64 × 64) 写 … 第一组 第二组 第三组 第四组 15 31 16 47 32 63 48 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 I/O1 I/O2 I/O3 I/O4 WE CS WE CS
③ Intel 2114 RAM 矩阵 (64 × 64) 写 … 第一组 第二组 第三组 第四组 15 31 16 47 32 63 48 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 WE CS I/O1 I/O2 I/O3 I/O4 I/O1 I/O2 I/O3 I/O4 WE CS
③ Intel 2114 RAM 矩阵 (64 × 64) 写 … 第一组 第二组 第三组 第四组 15 31 16 47 32 63 48 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 WE CS I/O1 I/O2 I/O3 I/O4 读写电路 I/O1 I/O2 I/O3 I/O4
③ Intel 2114 RAM 矩阵 (64 × 64) 写 … 第一组 第二组 第三组 第四组 15 31 16 47 32 63 48 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 WE CS I/O1 I/O2 I/O3 I/O4 I/O1 I/O2 I/O3 I/O4
③ Intel 2114 RAM 矩阵 (64 × 64) 写 … 第一组 第二组 第三组 第四组 15 31 16 47 32 63 48 31 16 47 32 63 48 读写电路 1 行 地 址 译 码 列 WE CS I/O1 I/O2 I/O3 I/O4 I/O1 I/O2 I/O3 I/O4
③ Intel 2114 RAM 矩阵 (64 × 64) 写 … … 第一组 第二组 第三组 第四组 15 31 16 47 32 63 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 读写电路 WE CS I/O1 I/O2 I/O3 I/O4
t t t t t 读周期 tRC 地址有效 下一次地址有效 读时间 tA 地址有效 tOHA 地址失效后的 数据维持时间 (3) 静态 RAM 读 时序 t RC A CS D OUT 地址有效 地址失效 片选失效 数据有效 数据稳定 高阻 t A 片选有效 t CO t OHA t OTD tOHA 地址失效后的 数据维持时间 tOTD 片选失效 输出高阻 读周期 tRC 地址有效 下一次地址有效 读时间 tA 地址有效 数据稳定 tCO 片选有效 数据稳定
t t t t t t 写时间 tW 写命令 WE 的有效时间 写周期 tWC 地址有效 tDW 数据稳定 WE 失效 (4) 静态 RAM (2114) 写 时序 t WC A CS WE D OUT IN t AW t W t WR t DW t DH tDW 数据稳定 WE 失效 tDH WE 失效后的数据维持时间 tWR 片选失效 下一次地址有效 tAW 地址有效 片选有效的滞后时间 写时间 tW 写命令 WE 的有效时间 写周期 tWC 地址有效 下一次地址有效
1 1 1 1 2. 动态 RAM ( DRAM ) (1) 动态 RAM 基本单元电路 V V 数据线 T T C s 字线 无电流 有电流 (1) 动态 RAM 基本单元电路 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” 写入与输入信息相同
… … (2) 动态 RAM 芯片举例 读 写 控 制 电 路 列 地 址 译 码 器 D 行 地 址 译 码 器 D ① 三管动态 RAM 芯片 (Intel 1103) 读 单元 电路 读 写 控 制 电 路 列 地 址 译 码 器 … 读选择线 写选择线 D 行 地 址 译 码 器 1 31 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 刷新放大器 写 数 据 线 读 … 单元 电路 D 读 写 控 制 电 路
… 行 地 址 译 码 器 D 读 写 控 制 电 路 列 地 址 译 码 器 ② 三管动态 RAM 芯片 (Intel 1103) 写 读 写 控 制 电 路 列 地 址 译 码 器 … 读选择线 写选择线 D 单元 电路 行 地 址 译 码 器 1 31 A4 A3 A2 A1 A0 刷新放大器 写 数 据 线 读
… 1 行 地 址 译 码 器 D 读 写 控 制 电 路 列 地 址 译 码 器 ② 三管动态 RAM 芯片 (Intel 1103) 写 读 写 控 制 电 路 列 地 址 译 码 器 … 读选择线 写选择线 D 单元 电路 行 地 址 译 码 器 1 31 A4 A3 A2 A1 A0 刷新放大器 写 数 据 线 读 1
… … 1 行 地 址 译 码 器 D 读 写 控 制 电 路 列 地 址 译 码 器 ② 三管动态 RAM 芯片 (Intel 1103) 写 A9 A8 A7 A6 A5 读 写 控 制 电 路 列 地 址 译 码 器 … 读选择线 写选择线 D 单元 电路 行 地 址 译 码 器 1 31 A4 A3 A2 A1 A0 刷新放大器 写 数 据 线 读 1 …
… … 1 1 行 地 址 译 码 器 D 读 写 控 制 电 路 列 地 址 译 码 器 ② 三管动态 RAM 芯片 (Intel 1103) 写 A9 A8 A7 A6 A5 读 写 控 制 电 路 列 地 址 译 码 器 … 读选择线 写选择线 D 单元 电路 行 地 址 译 码 器 1 31 A4 A3 A2 A1 A0 刷新放大器 写 数 据 线 读 1 … 1
… … 1 1 行 地 址 译 码 器 D 读 写 控 制 电 路 列 地 址 译 码 器 ② 三管动态 RAM 芯片 (Intel 1103) 写 A9 A8 A7 A6 A5 读 写 控 制 电 路 列 地 址 译 码 器 … 读选择线 写选择线 D 单元 电路 行 地 址 译 码 器 1 31 A4 A3 A2 A1 A0 刷新放大器 写 数 据 线 读 1 … 1 1 1 1
… … 1 1 行 地 址 译 码 器 D D 读 写 控 制 电 路 列 地 址 译 码 器 ② 三管动态 RAM 芯片 (Intel 1103) 写 A9 A8 A7 A6 A5 读 写 控 制 电 路 列 地 址 译 码 器 … 读选择线 写选择线 D 单元 电路 行 地 址 译 码 器 1 31 A4 A3 A2 A1 A0 刷新放大器 写 数 据 线 读 1 … D 1 1
… … 1 1 行 地 址 译 码 器 D D 读 写 控 制 电 路 读 写 控 制 电 路 列 地 址 译 码 器 ② 三管动态 RAM 芯片 (Intel 1103) 写 A9 A8 A7 A6 A5 读 写 控 制 电 路 列 地 址 译 码 器 … 读选择线 写选择线 D 单元 电路 行 地 址 译 码 器 1 31 A4 A3 A2 A1 A0 刷新放大器 写 数 据 线 读 1 … D 读 写 控 制 电 路 1 1
… … 1 1 行 地 址 译 码 器 D D 读 写 控 制 电 路 读 写 控 制 电 路 列 地 址 译 码 器 ② 三管动态 RAM 芯片 (Intel 1103) 写 A9 A8 A7 A6 A5 读 写 控 制 电 路 列 地 址 译 码 器 … 读选择线 写选择线 D 单元 电路 行 地 址 译 码 器 1 31 A4 A3 A2 A1 A0 刷新放大器 写 数 据 线 读 1 … D 读 写 控 制 电 路 1 1
… … 1 1 行 地 址 译 码 器 D D 读 写 控 制 电 路 读 写 控 制 电 路 列 地 址 译 码 器 ② 三管动态 RAM 芯片 (Intel 1103) 写 A9 A8 A7 A6 A5 读 写 控 制 电 路 列 地 址 译 码 器 … 读选择线 写选择线 D 单元 电路 行 地 址 译 码 器 1 31 A4 A3 A2 A1 A0 刷新放大器 写 数 据 线 读 1 … D 读 写 控 制 电 路 1 1
(4) 动态 RAM 刷新 以 32 × 32 矩阵为例 刷新与行地址有关 ① 集中刷新 (存取周期为0.5μs) 周期序号 地址序号 t c 1 2 3967 3968 3999 V W 31 读 / 写或维持 刷新 个周期 ( 1984 ) 32 16 刷新时间间隔 2m s 刷新序号 •••• ••• μ X Y • • • “死区” 为 0.5 μs ×32 = 16 μs “死时间率” 为 32/4000 ×100% = 0.8%
② 分散刷新(存取周期为1μs) 以 128 ×128 矩阵为例 W/R REF t R M C 126 127 刷新间隔 128 t R M C 126 127 刷新间隔 128 个读写周期 tC = tM + tR 无 “死区” 读写 刷新 (存取周期为 0.5 μs + 0.5 μs)
③ 分散刷新与集中刷新相结合 对于 128 ×128 的存储芯片(存取周期为 0.5μs) “死区” 为 64 μs 若每隔 2 ms 集中刷新一次 若每隔 15.6 μs 刷新一行 而且每行每隔 2 ms 刷新一次 “死区” 为 0.5 μs 将刷新安排在指令译码阶段,不会出现 “死区”
3. 动态 RAM 和静态 RAM 的比较 主存 DRAM SRAM 缓存 电容 触发器 存储原理 高 低 集成度 少 多 芯片引脚 功耗 小 大 价格 低 高 速度 慢 快 刷新 有 无
四、只读存储器(ROM) 1. 掩膜 ROM ( MROM ) 行列选择线交叉处有 MOS 管为“1” 2. PROM (一次性编程) VCC 行线 列线 熔丝 熔丝断 为 “0” 为 “1” 熔丝未断
紫外线全部擦洗 3. EPROM (多次性编程 ) S G D SiO + + + + + _ _ _ (1) N型沟道浮动栅 MOS 电路 基片 浮动栅 SiO 2 + + + + + _ _ _ G 栅极 S 源 D 漏 紫外线全部擦洗 D 端加正电压 形成浮动栅 S 与 D 不导通为 “0” D 端不加正电压 不形成浮动栅 S 与 D 导通为 “1”
4. EEPROM (多次性编程 ) 5. Flash Memory (快擦型存储器) 电可擦写 局部擦写 全部擦写 EPROM 价格便宜 集成度高 EEPROM 电可擦洗重写 比 E2PROM快 具备 RAM 功能
(1) 位扩展 用 2片 1K × 4位 存储芯片组成 1K × 8位 的存储器 五、存储器与 CPU 的连接 ••• •• 10根地址线 1. 存储器容量的扩展 (1) 位扩展 (增加存储字长) 用 2片 1K × 4位 存储芯片组成 1K × 8位 的存储器 9 A ••• 8根数据线 2114 D •• 4 7 CS WE
••• ••• ••• •••• •••• ••• (2) 字扩展(增加存储字的数量) 11根地址线 用 2片 1K × 8位 存储芯片组成 2K × 8位 的存储器 8根数据线 CS0 A10 1 CS1 A1 A0 ••• A9 ••• ••• 1K × 8位 •••• •••• D7 D0 ••• WE
... .. …… (3) 字、位扩展 用 8片 1K × 4位 存储芯片组成 4K × 8位 的存储器 12根地址线 8根数据线 A11 片选 译码 CS3 CS2 CS1 CS0 A8 A9 A0 ... .. 1K×4 D7 D0 …… WE
2. 存储器与 CPU 的连接 (1) 地址线的连接 (2) 数据线的连接 (3) 读/写线的连接 (4) 片选线的连接 (5) 合理选用芯片 (6) 其他 时序、负载
例4.1 解: ROM 1片 2K×8位 (1) 写出对应的二进制地址码 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) 确定芯片的数量及类型
(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.1 CPU 与存储器的连接图 … … … … … … … … … … … … MREQ A14 A15 A13 A12 A11 D7 D4 D3 D0 WR G1 C B A G2B G2A Y5 & Y4 … … … … PD/Progr 2K ×8位 ROM 1K ×4位 RAM … … … … … … …
例4.2 假设同前,要求最小 4K为系统 程序区,相邻 8K为用户程序区。 (1) 写出对应的二进制地址码 (2) 确定芯片的数量及类型 1片 4K × 8位 ROM 2片 4K × 8位 RAM (3) 分配地址线 A11~ A0 接 ROM 和 RAM 的地址线 (4) 确定片选信号
L 1 = D + C ( D≥C ) L = 3 具有 一位 纠错能力 六、存储器的校验 1 . 编码的最小距离 任意两组合法代码之间 二进制位数 的 最少差异 编码的纠错 、检错能力与编码的最小距离有关 L 1 = D + C ( D≥C ) L — 编码的最小距离 L = 3 具有 一位 纠错能力 D — 检测错误的位数 C — 纠正错误的位数 海明码是具有一位纠错能力的编码
奇偶校验码 码距为2 是一种开销最小、能发现信息代码中一位错误的编码。 常用于存储器读写检查或ASCII字符传送过程中的检查。 实现方法: 若干位有效信息(通常为一个字节)加上一个二进制位(校验位)组成。 校验位的取值(0或1)将使整个代码组中“1”的个数为奇数或偶数,若“1”的个数为奇数称为奇校验,“1”的个数为偶数称为偶校验。 码距为2
2 . 海明码的组成 组成海明码的三要素 1、海明码的组成需增添 ?位检测位 2k ≥ n + k + 1 2、检测位的位置 ? 2i ( i = 0、1、2 、3 ……) 3、检测位的取值 ? 检测位的取值与该位所在的检测“小组” 中 承担的奇偶校验任务有关
各检测位 Ci 所承担的检测小组为 C1 检测的 g1 小组包含第 1,3,5,7,9,11 … C2 检测的 g2 小组包含第 2,3,6,7,10,11 … C4 检测的 g3 小组包含第 4,5,6,7,12,13 … C8 检测的 g4 小组包含第 8,9,10,11,12,13,14,15,24 … gi 小组独占第 2i-1 位 gi 和 gj 小组共同占第 2i-1 + 2j-1 位 gi、gj 和 gl 小组共同占第 2i-1 + 2j-1 + 2l-1 位
C1 C2 C4 1 0 1 1 例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
练习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
P1 = 1 3 5 7 P2 = 2 3 6 7 P4 = 4 5 6 7 C1 C2 C4 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.5 已知接收到的海明码为 0100111 (按配偶原则配置)试问要求传送的信息是什么? 解: 纠错过程如下 P1= 1 3 5 7 = 0 无错 P2= 2 3 6 7 = 1 有错 P4= 4 5 6 7 = 1 有错 ∴ P4P2P1 = 110 第 6 位出错,可纠正为 0100101, 故要求传送的信息为 0101。
P4 = 4 5 6 7 = 1 P2 = 2 3 6 7 = 0 P1 = 1 3 5 7 = 0 练习2 写出按偶校验配置的海明码 0101101 的纠错过程 P4 = 4 5 6 7 = 1 P2 = 2 3 6 7 = 0 P1 = 1 3 5 7 = 0 ∴ P4 P2 P1 = 100 第 4 位错,可不纠 练习3 按配奇原则配置 0011 的海明码 配奇的海明码为 0101011
. . . . . . 七、提高访存速度的措施 单字长寄存器 主存控制部件 W位 数据寄存器 存储体 地址寄存器 采用高速器件 采用层次结构 Cache 主存 调整主存结构 1. 单体多字系统 增加存储器的带宽 W位 地址寄存器 主存控制部件 . . . . . . 单字长寄存器 数据寄存器 存储体
… 2. 多体并行系统 M0 地址 n-1 M1 n n+1 M2 M3 (1) 高位交叉 各个体并行工作 1 2n-1 2n 2n+1 1 … n-1 M1 n n+1 2n-1 M2 2n 2n+1 3n-1 M3 3n 3n+1 4n-1 地址译码 体内地址 体号
… (2) 低位交叉 各个体轮流编址 M0 地址 M1 M2 M3 体号 4 4n-4 1 5 4n-3 2 6 4n-2 3 7 4n-1 4 … 4n-4 M1 1 5 4n-3 M2 2 6 4n-2 M3 3 7 4n-1 地址译码 体号 体内地址
低位交叉的特点 在不改变存取周期的前提下,增加存储器的带宽 单体 访存周期 时间 启动存储体 0 启动存储体 1 启动存储体 2 启动存储体 3
(3) 存储器控制部件(简称存控) …… 节拍 发生器 易发生代码 控制线路 丢失的请求源,优先级 最高 Q 排队器 CM 严重影响 CPU 来自各个请求源 …… 主脉冲 存控标记 触发器 易发生代码 丢失的请求源,优先级 最高 严重影响 CPU 工作的请求源, 给予 次高 优先级
4.3 高速缓冲存储器 程序访问的局部性原理 一、概述 1. 问题的提出 避免 CPU “空等” 现象 CPU 和主存(DRAM)的速度差异 4.3 高速缓冲存储器 一、概述 1. 问题的提出 避免 CPU “空等” 现象 CPU 和主存(DRAM)的速度差异 缓存 CPU 主存 容量小 速度高 容量大 速度低 程序访问的局部性原理
~ … 2. Cache 的工作原理 1 2c-1 2m-1 (1) 主存和缓存的编址 主存块号 主存储器 字块 0 字块 1 字块 M-1 (1) 主存和缓存的编址 ~ … 主存块号 主存储器 1 2m-1 字块 0 字块 1 字块 M-1 块内地址 m位 b位 n位 M块 B个字 缓存块号 c位 C块 字块 C-1 2c-1 标记 Cache 主存和缓存按块存储 块的大小相同 B 为块长
(2) 命中与未命中 缓存共有 C 块 主存共有 M 块 M >> C 命中 主存块 调入 缓存 主存块与缓存块 建立 了对应关系 用 标记记录 与某缓存块建立了对应关系的 主存块块号 主存块 未调入 缓存 主存块与缓存块 未建立 对应关系
(3) Cache 的命中率 CPU 欲访问的信息在 Cache 中的 比率 命中率 与 Cache 的 容量 与 块长 有关 一般每块可取 4 至 8 个字 块长取一个存取周期内从主存调出的信息长度 CRAY_1 16体交叉 块长取 16 个存储字 IBM 370/168 4体交叉 块长取 4 个存储字 (64位×4 = 256位)
由 CPU 完成 3. Cache 的基本结构 数据总线 可装进? 命中? 主 存 存储体 块号 块内地址 直接通路 访问主存装入Cache 替换机构 可装进? 命中? 主存Cache 地址映象 变换机构 主 存 访问主 存替换 存储体 块号 块内地址 直接通路 访问主存装入Cache N Y CPU 主存地址 地址总线 Cache地址 由 CPU 完成 主存Cache 地址映象 变换机构 Cache 替换机构 Cache 存储体
读 写 4. Cache 的 读写 操作 访问Cache 访问主存 Y N 取出信息送CPU 将新的主存块 调入Cache中 执行替换算法 腾出空位 结束 命中? Cache满? CPU发出访问地址 开始 Y N 写 Cache 和主存的一致性
Pentium 8K 指令 Cache 8K 数据 Cache (2) 统一缓存和分开缓存 指令 Cache 数据 Cache 与主存结构有关 是否流水 与指令执行的控制方式有关 Pentium 8K 指令 Cache 8K 数据 Cache PowerPC620 32K 指令 Cache 32K 数据 Cache
i = j mod C * 二、Cache—主存的地址映象 … Cache存储体 t位 1 2C-1 = 1. 直接映象 字块2m-1 字块1 字块0 … 主存储体 字块 1 标记 字块 0 字块 2c-1 Cache存储体 t位 1 2C-1 字块 字块地址 主存字 块标记 t 位 c 位 b 位 主存地址 比较器(t位) = ≠ 不命中 有效位=1? * m位 Cache 内地址 否 是 命中 1. 直接映象 i = j mod C 字块2c+1 字块2c 字块0 字块 0 每个缓存块 i 可以和 若干 个 主存块 对应 每个主存块 j 只能和 一 个 缓存块 对应
2. 全相联映象 m = t + c 位 b位 m = t+c Cache 存储器 主存储器 字块2m-1 字块2c-1 字块1 字块0 … 标记 主存字块标记 字块内地址 主存地址 m = t + c 位 b位 m = t+c Cache 存储器 主存储器 字块0 主存 中的 任一块 可以映象到 缓存 中的 任一块
3. 组相联映象 主存储器 Cache … 字块2m-1 字块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 组中的 任一块
成本高 不灵活 三、替换算法 1. 先进先出 ( FIFO )算法 2. 近期最少使用法( LRU)算法 小结 直接 全相联 组相联 某一 主存块 只能固定 映射到 某一 缓存块 某一 主存块 能 映射到 任一 缓存块 某一 主存块 能 映射到 某一 缓存 组 中的 任一块
4.4 辅助存储器 一、概述 C = n × k × s 1. 特点 不直接与 CPU 交换信息 2. 磁表面存储器的技术指标 4.4 辅助存储器 一、概述 1. 特点 不直接与 CPU 交换信息 2. 磁表面存储器的技术指标 (1) 记录密度 (2) 存储容量 (3) 平均寻址时间 (4) 数据传输率 (5) 误码率 道密度 Dt 位密度 Db C = n × k × s 寻道时间 + 等待时间 寻址时间 磁头读写时间 辅存的速度 Dr = D × V 出错信息位数与读出信息的总位数之比
二、硬磁盘存储器 磁 盘 控 制 器 磁 盘 驱 动 器 盘 片 主 机 1. 硬磁盘存储器的类型 (1) 固定磁头和移动磁头 (2) 可换盘和固定盘 2. 硬磁盘存储器结构 磁 盘 控 制 器 磁 盘 驱 动 器 盘 片 主 机
(1) 磁盘驱动器 主轴 定位驱动 数据控制 磁盘 磁 盘 组 主轴 磁头 音圈 电机 位置检测 定位驱动 模拟控制 放 大 闭环自动控制系统 由磁盘控制 器送来的目 标磁道信号 测 速 输 出 读写臂 传动机构
(2) 磁盘控制器 (3) 盘片 接受主机发来的命令,转换成磁盘驱动器的控制命令 实现主机和驱动器之间的数据格式转换 控制磁盘驱动器读写 磁盘控制器 是 主机与磁盘驱动器之间的 接口 对主机 对硬盘(设备) 通过总线 (3) 盘片 由硬质铝合金材料制成
三、软磁盘存储器 1. 概述 硬盘 软盘 高 低 速度 固定、活动 活动 磁头 浮动 接触盘片 固定盘、盘组 大部分不可换 可换盘片 盘片 价格 高 低 环境 苛刻
2. 软盘片 由聚酯薄膜制成 保护套 主轴孔 实际的软盘片 写保护口 读/写磁头访问槽 衬里/清洁材料
四、光盘 1. 概述 2. 光盘的存储原理 采用光存储技术 利用激光写入和读出 第一代光存储技术 第二代光存储技术 采用非磁性介质 不可擦写 采用磁性介质 可擦写 2. 光盘的存储原理 热作用(物理或化学变化) 只读型和只写一次型 热磁效应 可擦写光盘
五、循环冗余校验码(CRC码) M(x) R(x) = Q(x) + G(x) M(x)=Q(x)*G(x)+R(x) 循环冗余校验码是通过除法运算来建立有效信息和校验位之间的约定关系。 假设 待编码的有效信息用多项式M(x)表示,用另一个约定的多项式G(x)去除,在一般情况下可得到一个商Q(x)和余数R(x), 有 M(x) G(x) = Q(x) + R(x) 所以 M(x)=Q(x)*G(x)+R(x) M(x)-R(x)=Q(x)*G(x) 这样可把M(x)-R(x)作为编好的校验码送出,当接收到校验码后,仍用约定的多项式G(x)去除,来确定校验码是否正确。
模2运算 1、模2加减 按位和,用异或逻辑实现。 模2加和模2减等同,相同两数的模2加减结果为0。 2、模2乘法 按模2加计算部分积之和,不进位。 3、模2除法 按模2减求部分余数,不借位。每求一位商应使部分余数减少一位;当部分余数的首位为1时,商取1;当部分余数的首位为0时,商取0;当部分余数的位数小于除数的位数时,该余数就是最后余数。
CRC码的编码方法 编码规律如下: (1)把待编码的N位有效信息表示为多项式M(x)。 (2)把M(x)左移k位,得到M(x)*xk,这样空出了k位,以便拼装k位余数(即校验位)。 (3)用k+1位的生成多项式G(x)去除M(x)*xk(模2除法) (4)把左移k位以后的待编有效信息与余数R(x)作模2加法,形成循环冗余码,此循环冗余码共有n+k 位。
例如:选择生成多项式为1011,把四位有效信息1100编成循环冗余码。 解: 有效信息M(x)=x3+x2=1100 (n=4) 由G(x)=1011= x3+x+1 得k+1=4 所以k=3 将有效信息左移三位后再被G(x)模2除,即 = M(x)* x3 G(x) 1100000 1011 1110 + 010 所以M(x)*x3+R(x)=1100000+010=1100010为CRC码。 这种循环冗余码称为(7,4)码。
CRC码的译码和纠错 序号 N1 N2 N3 N4 N5 N6 N7 余数 出错位 正确 1 1 0 0 0 1 0 000 无 错误 1 1 0 0 0 1 1 001 7 1 1 0 0 0 0 0 010 6 1 1 0 0 1 1 0 100 5 1 1 0 1 0 1 0 011 4 1 1 1 0 0 1 0 110 3 1 0 0 0 0 1 0 111 2 0 1 0 0 0 1 0 101 1
生成多项式的选择 (1)任何一位发生错误都应使余数不为0。 (2)不同位发生错误应当使余数不同。 (3)对余数作模2除法,应当使余数循环。