1
第 6章
存储系统
计算机教学实验中心
2
主要内容
? 微型机存储系统的概念和体系结构
? 存储器的分类及其特点
? 半导体存储芯片的外部特性及其与系统的连接
? 存储器管理技术
? 高速缓存的一般概念
3
§ 6.1 概述
? 存储系统
? 存储器的分类及主要技术指标
4
微型机的存储系统
? 将两个或两个以上速度、容量和价格各不相
同的存储器用硬件、软件或软硬件相结合的
方法连接起来就构成存储系统。
? 系统的存储速度接近较快的存储器,容量接
近较大的存储器。
5
微型计算机系统
Cache存储系统
主存储器
高速缓冲存储器
虚拟存储系统
主存储器
磁盘存储器
6
存储系统的层次结构
由上至下容量越来越大,速度越来越慢,价格越来越低
通用寄存器堆及
指令、数据缓冲栈
高速缓存
主存储器
联机外存储器
脱机外存储器
7
存储系统的主要技术指标
? 存储容量( S)
? 单位容量的平均价格( C)
C =( C1× S1+C2× S2) /( S1+S2)
? 存取周期 T=H· T1+( 1-H) T2
? 访问效率 E=T1/T
命中

8
存储器的分类
? 高速缓冲存储器
? 主存储器
? 辅助存储器
内存储器 —— 半导体存储器
9
半导体存储器
? 由能够表示,0”和,1”、具有记忆功能的
一些物理器件组成。
? 能存放一位二进制数的物理器件称为一个
存储元。
? 若干存储元构成一个存储单元。
10
半导体存储器
随机存取存储器( RAM)
只读存储器( ROM)
FLASH存储器(闪存)
静态 RAM
动态 RAM
掩模 ROM
一次编程型 ROM( PROM)
可读写 ROM EPROM
EEROM
11
半导体存储器的主要技术指标
? 存储容量
? 存取时间和存取周期
? 存储器带宽 —— 单位时间内存储器可读写的字节数
? 平均故障间隔时间( MTBF) —— 可靠性
? 功耗
CPU读写存储器的时间必须大于存储芯片的额定存取时间
12
§ 6.2 随机存取存储器
主要内容:
? SRAM与 DRAM的主要特点
? 几种常用存储器芯片及其与系统的连接
13
一、静态存储器 SRAM
特点:
? 存储元由双稳电路构成,存储信息稳定。
14
典型 SRAM芯片
了解:
? 主要引脚功能
? 工作时序
? 与系统的连接使用
15
SRAM 6264芯片
? 容量,8K× 8
? 芯片外部引线图
16
6264芯片的主要引线
? 地址线,A0~ A12;
? 数据线,D0~ D7;
? 输出允许信号,OE;
? 写允许信号,WE;
? 选片信号,CS1,CS2
17
6264的工作过程
? 读操作
? 写操作
工作时序
18
6264芯片与系统的连接
D0~D7
A0
A12
??
?
WE
OE
CS1
CS2
??
?
A0
A12
MEMW
MEMR
译码
电路
高位地
址信号
D0~D7



线

6264
? ? ?
+5V
19
译码电路
? 将输入的二进制(地址)编码变换为一个特
定的输出信号,即:
将输入的高位地址信号通过变换,产生
一个有效的输出信号,该信号选中某一个存
储器芯片,使该存储器芯片进入工作状态。
?参与译码的高位地址信号决定了存储器的
地址范围。
20
译码方式
? 全地址译码
? 部分地址译码
21
全地址译码
? 用全部的高位地址信号作为译码器的输入
? 存储器芯片的每一个存储单元都具有唯一
的内存地址,即存储单元与地址编号是一
对一的关系。
22
全地址译码例
A19
A18
A17
A16
A15
A14
A13
&
?1
6264
CS1
全部高位地址信号( A19-A13)都作为译码器输入。
低位地址信号( A12-A0)接到 6264的地址引脚。
6264的地址范围 =?
23
部分地址译码
? 用部分高位地址信号(而不是全部)作为译
码器的输入
? 存储器芯片的每一个存储单元具有多个内存
地址,即存储单元与地址编号是一对多的关
系。
24
部分地址译码例
? A18不参加译码,从而使被选中芯片的每个单元都拥
有两个地址。 6264的地址范围=?
A19
A17
A16
A15
A14
A13
&
?1
6264
CS1
25
应用举例
? 将 SRAM 6264芯片与系统连接,使其地址范
围为,38000H~39FFFH。
? 使用 74LS138译码器构成译码电路。
26
应用举例
D0~D7
A0
A12
??
?
WE
OE
CS1
CS2
??
?
A0
A12
MEMW
MEMR
D0~D7
A19
G1
G2A
G2B
C
B
A
&
&
A18
A14A
13
A17A
16A
15
+5V
Y0
??
?



线
74LS138
6264
27
二、动态随机存储器 DRAM
特点:
? 存储元主要由电容构成,由于电容存在的漏电
现象而使其存储的信息不稳定,故 DRAM芯片
需要定时刷新。
28
典型 DRAM芯片 2164A
? 2164A,64K× 1bit
? 采用行地址和列地址来确定一个单元;
? 行列地址分时传送。
? 共用一组地址信号线
? 地址信号线的数量仅
为同等容量 SRAM芯
片的一半。
0
1
0
0
0 1 0 0 COL
ROW 存储矩阵
29
2164A的内部结构
A0~ A7 存储矩阵
256× 256
行地址
锁存
及译码
列地址锁存
及译码
...
..
.
列放大器
...
Dout
Din控制
电路
RAS#
CAS#
WE#
30
主要引线
? RAS:行地址选通信号。用于锁存行地址;
? CAS:列地址选通信号。
地址总线上先送上行地址,后送上列地址,它们
分别在 RAS和 CAS有效期间被锁存芯片中。
?
? A0-A7:地址线
? DIN,数据输入
? DOUT,数据输出
WE=0 数据写入
WE=1 数据读出WE:写允许信号
31
工作时序
? 数据读出
? 数据写入
? 刷新,一次一行
32
2164A在系统中的连接
? 利用 8片 2164A构成 64KB存储体;
? 通过选择控制芯片将存储体与系统相连。
简化的电路原理图
33
§ 6.3 只读存储器 ( ROM)
特点:
? 可随机读取数据,但不能随机写入;
? 掉电后信息不丢失
34
一,EPROM
特点:
? 可多次编程写入;
? 掉电后内容不丢失;
? 内容的擦除需用紫外线擦除器。
35
典型 EPROM芯片 2764
? 8K× 8bit芯片,其引脚与 SRAM 6264完
全兼容 ;
? 地址信号,A0 ~ A12
? 数据信号,D0 ~ D7
? 输出信号,OE
? 片选信号,CE
? 编程脉冲输入,PGM
36
2764的工作方式
数据读出
编程写入
擦除
标准编程方式
快速编程方式
编程写入:
每出现一个编程脉冲就写入一个字节数据
P249表
37
二,EEPROM
特点:
? 可在线编程写入;
? 掉电后内容不丢失;
? 电可擦除。
38
工作方式
? 数据读出
? 编程写入
? 擦除
字节写入,每次写入一个字节
自动页写入:每次写入一页( 32字节)
字节擦除:一次擦除一个字节
片擦除:一次擦除整片
39
典型 EEPROM芯片
98C64A:
? 容量 8K× 8;
? 13根地址线( A0 - A12);
? 8位数据线( D0 - D7);
? 输出允许信号( OE);
? 写允许信号( WE);
? 选片信号( CE);
? 状态输出端( READY/BUSY)。
40
98C64A的写入方法
? 方法 1:
? 每写入一个字节都判断 READY/BUSY端的状态,
仅当该端为高电平时才可写入下一个字节。
? 方法 2:
? 每写一个字节后,等待一段时间 (≥10ms)再
写下一个字节。
? 98C64A的写入时间为 5- 10ms
41
EEPROM芯片应用例
? 使用 98C64A作为存储器芯片,芯片地址
为 30000H——31FFFH,现将其连接到
8086系统,并向其 8K个单元全部写入
FFH。
42
三、闪速存储器 ( Flash)
特点:
? 无需后备电源;
? 可实现在线编程;
? 编程写入及擦除速度快。
43
典型 Flash芯片
28F040:
? 容量,512K× 8b
? 控制方式:
? 利用内部状态寄存器控制芯片的工作
44
Flash的工作方式
数据读出
编程写入:
擦 除
读单元内容
读内部状态寄存器内容
读芯片的厂家及器件标记
数据写入,写软件保护
字节擦除,块擦除,片擦除
擦除挂起
45
§ 6.4 存储器扩展技术
? 用多片 存储芯片构成所需的内存容量,每个
芯片在内存中占据不同的地址范围,任一时
刻仅有一片(或一组)被选中。
位扩展
字扩展
字位扩展
46
存储器扩展技术
? 存储器芯片的存储容量等于:
单元数 × 每单元的位数
字节数 字长
47
位扩展
? 当存储器芯片的字长小于所需内存单元的
字长时,则进行位扩展,使每个单元的字
长满足要求。
48
位扩展例
? 用 8片 2164A( 64K× 1位 DRAM)芯片构成 64KB
存储器。
A0
~
A15
2164A 2164A 2164A
D0 ~D7
D0 D1 D7
A0~A7
…WE#
RAS#
CAS#
行 /列地址多
路转换器
地址选择
A0~A7 A0~A7
49
位扩展原则
? 将每片的地址线、控制线并联,数据线分
别引出。
? 位扩展特点:
存储器的单元数不变,位数增加。
50
字扩展
? 地址空间的扩展。芯片每个单元中的字长满
足,但单元数不满足。
? 扩展原则:
每个芯片的地址线、数据线、控制线并联,
仅片选端分别引出,以实现每个芯片占据不
同的地址范围。
51
字扩展例
? 用 64K× 8的 SRAM芯片构成 128KB的存储器
52
字位扩展
? 根据内存容量及芯片容量确定所需存储芯
片数;
? 进行位扩展以满足字长要求;
? 进行字扩展以满足容量要求。
? 若已有存储芯片的容量为 L× K,要构成容
量为 M × N的存储器,需要的芯片数为:
( M / L) × ( N / K)
53
字位扩展例
? 用 32K× 1位 SRAM芯片构成 256KB的内存。
54
8086的 16位存储器接口
? 数据总线为 16位,但存储器按字节进行编址
? 用两个 8位的存储体 (BANK)构成
BANK1
奇数地址
BANK0
偶数地址
D15-D0
D7-D0 D15-D8
A19-A0
译码器控制信号
体选信号
和读写控制
如何产生?
如何连接?
55
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
56
8086的 16位存储器接口
? 两种译码方法
? 独立的存储体译码
? 每个存储体用一个译码器
? 缺点:电路复杂,使用器件多。
? 独立的存储体写选通
? 译码器共用,但为每个存储体产生独立的写控制
信号
? 但无需为每个存储体产生独立的读信号,因为 8086每
次仅读 1字节。对于字,8086会连续读 2次。
? 电路简单,节省器件。
57
独立的存储体译码
D15-D9
D8-D0
高位存储体
(奇数地址 )
低位存储体
(偶数地址 )
A16-A1 A15-A0
A15-A0
D7-D0
D7-D0
64KB× 8片
64KB× 8片
CS#Y0#
Y7#
Y0#
Y7#
C
B
A
A19
A18
A17
C
B
A
A19
A18
A17 CS#
G1
G2A#
G2B#
G1
G2A#
G2B#
OE#
WE#
OE#
WE#
MEMR#
MEMW#
BHE#
A0
Vcc
Vcc






线



MEMW#信号同时有效,但只有一个存储体被选中
58
独立的存储体写选通
D15-D9
D8-D0
高位存储体
(奇数地址 )
低位存储体
(偶数地址 )
A16-A1 A15-A0
A15-A0
D7-D0
D7-D0
64KB× 8片
64KB× 8片
CS#
Y0#
Y7#
C
B
A
A19
A18
A17 CS#
G1
G2A#
G2B#
OE#
WE#
OE#
WE#
MEMR#
BHE#
A0
Vcc
GND
MEMW#
≥1
≥1
59
§ 6.5 高速缓存 ( Cache)
了解:
? Cache的基本概念;
? 基本工作原理;
? 命中率;
? Cache的分级体系结构
60
Cache的基本概念
? 由于 CPU与主存之间在执行速度上存在
较大的差异,为提高 CPU的效率,并考
虑到价格因素,基于程序的局部性原理,
在 CPU与主存之间增加的高速缓冲存储
器 —— Cache技术
61
Cache的工作原理
CPU
Cache
主 存
DB
62
Cache的命中率
? Cache与内存的空间比一般为,1?128
? CPU读取指令或数据时首先在 Cache中找,若
找到则“命中”,否则为“不命中”。
? 命中率影响系统的平均存取速度
系统的平均存取速度 =
Cache存取速度 × 命中率 +RAM存取速度 × 不命中率
63
Cache的读写操作
读操作
写操作
贯穿读出式
旁路读出式
写穿式
回写式
64
贯穿读出式
? CPU对主存的所有数据请求都首先送到
Cache,在 Cache中查找。 若 命中,则切断
CPU对主存的请求,并将数据送出;如果不
命中,则将数据请求传给主存 。
CPU Cache 主 存
65
旁路读出式
? CPU向 Cache和主存同时发出 数据 请求。 如果
命中,则 Cache将数据回送给 CPU,并同时中
断 CPU对主存的请求;若不命中,则 Cache不
做任何动作,由 CPU直接访问主存。
CPU
Cache
主 存
66
写穿式
? 从 CPU发出的写信号送 Cache的同时也写
入主存。
CPU
Cache
主 存
67
回写式 ( 写更新 )
? 数据一般只写到 Cache,当 Cache中的数据被
再次更新时,将原更新的数据写入主存相应单
元,并接受新的数据。
CPU Cache 主 存
更新写入
68
Cache的分级体系结构
? 一级 Cache:容量一般为 8KB---64KB
? 二级 Cache:容量一般为 128KB---2MB
? 指令 Cache和数据 Cache
69
IBM PC/XT的存储 器 空间分配
00000H
9FFFFH
BFFFFH
FFFFFH
RAM区
640KB
保留区 128KB
ROM区 256KB
70
§ 6.6 外存储器
? 略
71
作业:
? 6.1
? 6.2
? 6.6
? 6.8
? 6.10
? 6.12
? 6.16
? 6.17