第6章 存储系统 计算机教学实验中心
主要内容 微型机存储系统的概念和体系结构 存储器的分类及其特点 半导体存储芯片的外部特性及其与系统的连接 存储器管理技术 高速缓存的一般概念
§6.1 概述 存储系统 存储器的分类及主要技术指标
微型机的存储系统 将两个或两个以上速度、容量和价格各不相同的存储器用硬件、软件或软硬件相结合的方法连接起来就构成存储系统。 系统的存储速度接近较快的存储器,容量接近较大的存储器。
微型计算机系统 主存储器 高速缓冲存储器 Cache存储系统 主存储器 磁盘存储器 虚拟存储系统
存储系统的层次结构 通用寄存器堆及 主存储器 指令、数据缓冲栈 高速缓存 联机外存储器 脱机外存储器 由上至下容量越来越大,速度越来越慢,价格越来越低
存储系统的主要技术指标 存储容量(S) 单位容量的平均价格(C) C =(C1×S1+C2×S2)/(S1+S2) 存取周期 T=H·T1+(1-H)T2 访问效率 E=T1/T 命中率
存储器的分类 高速缓冲存储器 主存储器 辅助存储器 内存储器——半导体存储器
半导体存储器 由能够表示“0”和“1”、具有记忆功能的一些物理器件组成。 能存放一位二进制数的物理器件称为一个存储元。 若干存储元构成一个存储单元。
半导体存储器 静态RAM 动态RAM 随机存取存储器(RAM) 只读存储器(ROM) 掩模ROM FLASH存储器(闪存) 一次编程型ROM(PROM) 可读写ROM EPROM EEROM
半导体存储器的主要技术指标 存储容量 存取时间和存取周期 存储器带宽—— 单位时间内存储器可读写的字节数 平均故障间隔时间(MTBF)—— 可靠性 功耗 CPU读写存储器的时间必须大于存储芯片的额定存取时间
§6.2 随机存取存储器 主要内容: SRAM与DRAM的主要特点 几种常用存储器芯片及其与系统的连接
一、静态存储器SRAM 特点: 存储元由双稳电路构成,存储信息稳定。
典型SRAM芯片 了解: 主要引脚功能 工作时序 与系统的连接使用
SRAM 6264芯片 容量:8K×8 芯片外部引线图
6264芯片的主要引线 地址线:A0~A12; 数据线:D0~D7; 输出允许信号:OE; 写允许信号:WE; 选片信号:CS1,CS2
6264的工作过程 读操作 写操作 工作时序
6264芯片与系统的连接 A0 A0 • • • • • • A12 A12 译码 电路 • • • D0~D7 D0~D7 MEMW WE 系统总线 • • ~ • • • A12 A12 MEMW WE MEMR OE 译码 电路 CS1 高位地址信号 • • • CS2 +5V
译码电路 将输入的二进制(地址)编码变换为一个特定的输出信号,即: 将输入的高位地址信号通过变换,产生一个有效的输出信号,该信号选中某一个存储器芯片,使该存储器芯片进入工作状态。 参与译码的高位地址信号决定了存储器的地址范围。
译码方式 全地址译码 部分地址译码
全地址译码 用全部的高位地址信号作为译码器的输入 存储器芯片的每一个存储单元都具有唯一的内存地址,即存储单元与地址编号是一对一的关系。
全地址译码例 A19 A18 6264 CS1 A17 A16 & A15 A14 1 A13 全部高位地址信号(A19-A13)都作为译码器输入。 低位地址信号(A12-A0)接到6264的地址引脚。 6264的地址范围 =?
部分地址译码 用部分高位地址信号(而不是全部)作为译码器的输入 存储器芯片的每一个存储单元具有多个内存地址,即存储单元与地址编号是一对多的关系。
部分地址译码例 A19 A17 6264 CS1 A16 & A15 A14 1 A13 A18不参加译码,从而使被选中芯片的每个单元都拥有两个地址。6264的地址范围=?
应用举例 将SRAM 6264芯片与系统连接,使其地址范围为:38000H~39FFFH。 使用74LS138译码器构成译码电路。
应用举例 & & A0 A0 • • • • • • • A12 A12 G1 Y0 A19 G2A A17 A16 G2B A15 A18 6264 D0~D7 D0~D7 A0 A0 • • • • • • • 系统总线 A12 A12 MEMW WE MEMR OE & G1 Y0 A19 CS1 G2A +5V A17 CS2 & A16 G2B A15 A18 C A14 B A13 A 74LS138
二、动态随机存储器DRAM 特点: 存储元主要由电容构成,由于电容存在的漏电现象而使其存储的信息不稳定,故DRAM芯片需要定时刷新。
典型DRAM芯片2164A 2164A:64K×1bit 采用行地址和列地址来确定一个单元; 行列地址分时传送。 共用一组地址信号线 地址信号线的数量仅 为同等容量SRAM芯 片的一半。 0 1 0 0 COL 1 ROW 存储矩阵
2164A的内部结构 . ... 行地址 存储矩阵 锁存 256×256 及译码 A0~A7 Dout RAS# 列放大器 控制 CAS# 列地址锁存 ... . 列放大器 Dout Din 控制 电路 A0~A7 RAS# CAS# WE#
主要引线 RAS:行地址选通信号。用于锁存行地址; CAS:列地址选通信号。 A0-A7:地址线 DIN: 数据输入 DOUT:数据输出 地址总线上先送上行地址,后送上列地址,它们 分别在RAS和CAS有效期间被锁存芯片中。 A0-A7:地址线 DIN: 数据输入 DOUT:数据输出 WE=0 数据写入 WE=1 数据读出 WE:写允许信号
工作时序 数据读出 数据写入 刷新,一次一行
2164A在系统中的连接 利用8片2164A构成64KB存储体; 通过选择控制芯片将存储体与系统相连。 简化的电路原理图
§6.3 只读存储器(ROM) 特点: 可随机读取数据,但不能随机写入; 掉电后信息不丢失
一、EPROM 特点: 可多次编程写入; 掉电后内容不丢失; 内容的擦除需用紫外线擦除器。
典型EPROM芯片2764 8K×8bit芯片,其引脚与SRAM 6264完全兼容; 地址信号:A0 ~ A12 数据信号:D0 ~ D7 输出信号:OE 片选信号:CE 编程脉冲输入:PGM
2764的工作方式 数据读出 编程写入 擦除 标准编程方式 快速编程方式 P249表 编程写入: 每出现一个编程脉冲就写入一个字节数据
二、EEPROM 特点: 可在线编程写入; 掉电后内容不丢失; 电可擦除。
工作方式 数据读出 编程写入 擦除 字节擦除:一次擦除一个字节 片擦除:一次擦除整片 字节写入: 每次写入一个字节 字节写入: 每次写入一个字节 自动页写入:每次写入一页(32字节) 字节擦除:一次擦除一个字节 片擦除:一次擦除整片
典型EEPROM芯片 98C64A: 容量8K×8; 13根地址线(A0 - A12); 8位数据线(D0 -D7); 输出允许信号(OE); 写允许信号(WE); 选片信号(CE); 状态输出端(READY/BUSY)。
98C64A的写入方法 方法1: 每写入一个字节都判断READY/BUSY端的状态,仅当该端为高电平时才可写入下一个字节。 方法2: 每写一个字节后,等待一段时间(≥10ms)再写下一个字节。 98C64A的写入时间为5-10ms
EEPROM芯片应用例 使用98C64A作为存储器芯片,芯片地址为30000H——31FFFH,现将其连接到8086系统,并向其8K个单元全部写入FFH。
三、闪速存储器(Flash) 特点: 无需后备电源; 可实现在线编程; 编程写入及擦除速度快。
典型Flash芯片 28F040: 容量:512K×8b 控制方式: 利用内部状态寄存器控制芯片的工作
Flash的工作方式 数据读出 编程写入: 擦 除 读单元内容 读内部状态寄存器内容 读芯片的厂家及器件标记 数据写入,写软件保护 擦 除 数据写入,写软件保护 字节擦除,块擦除,片擦除 擦除挂起
§6.4 存储器扩展技术 用多片存储芯片构成所需的内存容量,每个芯片在内存中占据不同的地址范围,任一时刻仅有一片(或一组)被选中。 位扩展 字扩展 字位扩展
存储器扩展技术 存储器芯片的存储容量等于: 单元数×每单元的位数 字节数 字长
位扩展 当存储器芯片的字长小于所需内存单元的字长时,则进行位扩展,使每个单元的字长满足要求。
位扩展例 … 用8片2164A(64K×1位 DRAM)芯片构成64KB存储器。 D0 D1 D7 A0~A7 A0~A7 A0~A7 WE# RAS# CAS# A0~A7 A0~A7 A0~A7 地址选择 行/列地址多路转换器 A0 ~ A15
位扩展原则 将每片的地址线、控制线并联,数据线分别引出。 位扩展特点: 存储器的单元数不变,位数增加。
字扩展 地址空间的扩展。芯片每个单元中的字长满足,但单元数不满足。 扩展原则: 每个芯片的地址线、数据线、控制线并联,仅片选端分别引出,以实现每个芯片占据不同的地址范围。
字扩展例 用64K×8的SRAM芯片构成128KB的存储器
字位扩展 根据内存容量及芯片容量确定所需存储芯片数; 进行位扩展以满足字长要求; 进行字扩展以满足容量要求。 若已有存储芯片的容量为L×K,要构成容量为M ×N的存储器,需要的芯片数为: (M / L) ×(N / K)
字位扩展例 用32K×1位SRAM芯片构成256KB的内存。
8086的16位存储器接口 数据总线为16位,但存储器按字节进行编址 用两个8位的存储体(BANK)构成 如何连接? A19-A0 体选信号 和读写控制 译码器 BANK0 偶数地址 BANK1 奇数地址 控制信号 如何产生? D7-D0 D15-D8 D15-D0
8086的16位存储器接口 读写数据有以下几种情况: 读写从偶数地址开始的16位的数据 读写从奇数地址开始的16位的数据 读写从偶数地址开始的8位的数据 读写从奇地址开始的8位的数据 8086读写16位数据的特点: 读16位数据时会读两次,每次8位。 读高字节时BHE=0,A0=1; 读低字节时BHE=1,A0=0 每次只使用数据线的一半:D15-D8 或 D7-D0 写16位数据时一次写入。 BHE和A0同时为0 同时使用全部数据线D15~D0
8086的16位存储器接口 两种译码方法 独立的存储体译码 独立的存储体写选通 每个存储体用一个译码器 缺点:电路复杂,使用器件多。 译码器共用,但为每个存储体产生独立的写控制信号 但无需为每个存储体产生独立的读信号,因为8086每次仅读1字节。对于字,8086会连续读2次。 电路简单,节省器件。
独立的存储体译码 64KB×8片 D15-D9 D7-D0 高位存储体 (奇数地址) A16-A1 A15-A0 注意这些信号线的连接 C B A Y0# Y7# CS# OE# WE# Vcc G1 G2A# G2B# BHE# 64KB×8片 MEMR# MEMW# D8-D0 D7-D0 低位存储体 (偶数地址) A15-A0 A19 A18 A17 C B A Y0# Y7# CS# Vcc G1 G2A# G2B# OE# WE# A0 MEMW#信号同时有效,但只有一个存储体被选中
独立的存储体写选通 64KB×8片 D15-D9 D7-D0 高位存储体 (奇数地址) A16-A1 A15-A0 ≥1 CS# OE# BHE# OE# WE# MEMW# ≥1 A0 64KB×8片 MEMR# D8-D0 D7-D0 低位存储体 (偶数地址) A15-A0 A19 A18 A17 C B A Y0# Y7# CS# Vcc GND G1 G2A# G2B# OE# WE#
§6.5 高速缓存(Cache) 了解: Cache的基本概念; 基本工作原理; 命中率; Cache的分级体系结构
Cache的基本概念 由于CPU与主存之间在执行速度上存在较大的差异,为提高CPU的效率,并考虑到价格因素,基于程序的局部性原理,在CPU与主存之间增加的高速缓冲存储器 —— Cache技术
Cache的工作原理 Cache 主 存 CPU DB
Cache的命中率 Cache与内存的空间比一般为:1128 CPU读取指令或数据时首先在Cache中找,若找到则“命中”,否则为“不命中”。 命中率影响系统的平均存取速度 系统的平均存取速度= Cache存取速度×命中率+RAM存取速度×不命中率
Cache的读写操作 贯穿读出式 旁路读出式 读操作 写操作 写穿式 回写式
贯穿读出式 CPU对主存的所有数据请求都首先送到Cache,在Cache中查找。若命中,则切断CPU对主存的请求,并将数据送出;如果不命中,则将数据请求传给主存。 CPU Cache 主 存
旁路读出式 CPU向Cache和主存同时发出数据请求。如果命中,则Cache将数据回送给CPU,并同时中断CPU对主存的请求;若不命中,则Cache不做任何动作,由CPU直接访问主存。 Cache CPU 主 存
写穿式 从CPU发出的写信号送Cache的同时也写入主存。 Cache CPU 主 存
回写式(写更新) 数据一般只写到Cache,当Cache中的数据被再次更新时,将原更新的数据写入主存相应单元,并接受新的数据。 CPU 主 存
Cache的分级体系结构 一级Cache:容量一般为8KB---64KB 二级Cache:容量一般为128KB---2MB
IBM PC/XT的存储器空间分配 00000H RAM区 640KB 9FFFFH 保留区 128KB BFFFFH ROM区 256KB FFFFFH
§6.6 外存储器 略
作业: 6.1 6.2 6.6 6.8 6.10 6.12 6.16 6.17 谢谢!