微机原理与接口技术主讲人 王德志
2
2.2 存储器技术
教学重点
芯片 SRAM 2114和 DRAM 4116
芯片 EPROM 2764和 EEPROM 2817A
SRAM,EPROM与 CPU的连接了解内容,
RAM接口应注意什么问题
有几种地址译码方式
3
2.2,1 半导体存储器概述
除采用磁,光原理的辅存外,其它存储器主要都是采用半导体存储器
本章介绍采用半导体存储器及其组成主存的方法
CPU
CACHE
主存(内存)
辅存(外存)
4
2.2.2 半导体存储器的分类
按制造工艺
双极型,速度快,集成度低,功耗大
MOS型:速度慢,集成度高,功耗低
按使用属性
随机存取存储器 RAM,可读可写,断电丢失
只读存储器 ROM:正常只读,断电不丢失
5
图 2.1 半导体存储器的分类半导体存储器只读存储器
( ROM)
随机存取存储器
( RAM)
静态 RAM( SRAM)
动态 RAM( DRAM)
非易失 RAM( NVRAM)
掩膜式 ROM
一次性可编程 ROM( PROM)
紫外线擦除可编程 ROM( EPROM)
电擦除可编程 ROM( EEPROM)
6
读写存储器 RAM
组成单元 速度 集成度 应用
SRAM 触发器 快 低 小容量系统
DRAM 极间电容 慢 高 大容量系统
NVRAM 带微型电池 慢 低 小容量非易失
7
只读存储器 ROM
掩膜 ROM,信息制作在芯片中,不可更改
PROM,允许一次编程,此后不可更改
EPROM,用紫外光擦除,擦除后可编程;
并允许用户多次擦除和编程
EEPROM( E2PROM),采用加电方法在线进行擦除和编程,也可多次擦写
Flash Memory( 闪存 ),能够快速擦写的
EEPROM,但只能按块 ( Block) 擦除
8
2.2.3 半导体存储器芯片的结构地址寄存地址译码存储体控制电路
AB
数据寄存读写电路 DB
OE WE CS
① 存储体
存储器芯片的主要部分,用来存储信息
② 地址译码电路
根据输入的地址编码来选中芯片内某个特定的存储单元
③ 片选和读写控制逻辑
选中存储芯片,控制读写操作
9
① 存储体
每个存储单元具有一个唯一的地址,
可存储 1位 ( 位片结构 ) 或多位 ( 字片结构 ) 二进制数据
存储容量与地址,数据线个数有关:
芯片的存储容量= 2M× N
=存储单元数 × 存储单元的位数
M:芯片的 地址线根数
N:芯片的 数据线根数示例
10
② 地址译码电路译码器
A5
A4
A3
A2
A1
A0
63
0
1
存储单元
64个单元行译码
A2
A1
A0
7
1
0
列译码
A3A4A5
0 1 7
64个单元单译码 双译码
单译码结构
双译码结构
双译码可简化芯片设计
主要采用的译码结构
11
③ 片选和读写控制逻辑
片选端 CS*或 CE*
有效时,可以对该芯片进行读写操作
输出 OE*
控制读操作 。 有效时,芯片内数据输出
该控制端对应系统的读控制线
写 WE*
控制写操作 。 有效时,数据进入芯片中
该控制端对应系统的写控制线
12
2.2.4 随机存取存储器静态 RAM
SRAM 2114
SRAM 6264
动态 RAM
DRAM 4116
DRAM 2164
13
2.2.5 静态 RAM
SRAM的基本存储单元是触发器电路
每个基本存储单元存储二进制数一位
许多个基本存储单元形成行列存储矩阵
SRAM一般采用,字结构,存储矩阵:
每个存储单元存放多位 ( 4,8,16等 )
每个存储单元具有一个地址
14
SRAM芯片 2114
存储容量为 1024× 4
18个 引脚:
10根地址线 A9~ A0
4根数据线 I/O4~ I/O1
片选 CS*
读写 WE*
1
2
3
4
5
6
7
8
9
18
17
16
15
14
13
12
11
10
Vcc
A7
A8
A9
I/O1
I/O2
I/O3
I/O4
WE*
A6
A5
A4
A3
A0
A1
A2
CS*
GND
功能
15
SRAM 2114的读周期数据地址
TCX TODT
TOHA
TRCT
A
TCO
DOUT
WE
CS
TA读取时间从读取命令发出到数据稳定出现的时间给出地址到数据出现在外部总线上
TRC读取周期两次读取存储器所允许的最小时间间隔有效地址维持的时间
16
SRAM 2114的写周期
TWC
TWRT
AW
数据地址
TDTW
TW
DOUT DIN
TDW TDH
WE
CS
TW写入时间从写入命令发出到数据进入存储单元的时间写信号有效时间
TWC写入周期两次写入存储器所允许的最小时间间隔有效地址维持的时间
17
SRAM芯片 6264
存储容量为 8K× 8
28个 引脚:
13根地址线 A12~ A0
8根数据线 D7~ D0
片选 CS1*,CS2
读写 WE*,OE*
功能
+5V
WE*
CS2
A8
A9
A11
OE*
A10
CS1*
D7
D6
D5
D4
D3
NC
A12
A7
A6
A5
A4
A3
A2
A1
A0
D0
D1
D2
GND
1
2
3
4
5
6
7
8
9
10
11
12
13
14
28
27
26
25
24
23
22
21
20
19
18
17
16
15
18
2.2.6 动态 RAM
DRAM的基本存储单元是单个场效应管及其极间电容
必须配备,读出再生放大电路,进行刷新
每次同时对一行的存储单元进行刷新
每个基本存储单元存储二进制数一位
许多个基本存储单元形成行列存储矩阵
DRAM一般采用,位结构,存储体:
每个存储单元存放一位
需要 8个存储芯片构成一个字节单元
每个字节存储单元具有一个地址
19
DRAM芯片 4116
存储容量为 16K× 1
16个 引脚:
7根地址线 A6~ A0
1根数据输入线 DIN
1根数据输出线 DOUT
行地址选通 RAS*
列地址选通 CAS*
读写控制 WE*
VBB
DIN
WE*
RAS*
A0
A2
A1
VDD
VSS
CAS*
DOUT
A6
A3
A4
A5
VCC
1
2
3
4
5
6
7
8
16
15
14
13
12
11
10
9
20
DRAM 4116的读周期
DOUT
地址
TCAC
TRAC
TCAH
TASC
TASR TRAH
TCASTRCD
TRAS
TRC
行地址 列地址
WE
CAS
RAS存储地址需要分两批传送
行地址选通信号 RAS*有效,开始传送行地址
随后,列地址选通信号 CAS*有效,
传送列地址,CAS*相当于片选信号
读写信号 WE*读有效
数据从 DOUT引脚输出
21
DRAM 4116的写周期
TWCS
TDS
列地址行地址地址
TDH
TWR
TCAH
TASCTASR TRAH
TCASTRCD
TRC
TRAS
DIN
WE
CAS
RAS
存储地址需要分两批传送
行地址选通信号 RAS*有效,开始传送行地址
随后,列地址选通信号 CAS*有效,
传送列地址
读写信号 WE*写有效
数据从 DIN引脚进入存储单元
22
DRAM 4116的刷新
TRC
TCRP
TRAS
高阻
TASR TRAH
行地址地址
DIN
CAS
RAS
采用,仅行地址有效,方法刷新
行地址选通 RAS*有效,传送行地址
列地址选通 CAS*无效,没有列地址
芯片内部实现一行存储单元的刷新
没有数据从输入输出
存储系统中所有芯片同时进行刷新
DRAM必须每隔固定时间就刷新
23
DRAM芯片 2164
存储容量为 64K× 1
16个 引脚:
8根地址线 A7~ A0
1根数据输入线 DIN
1根数据输出线 DOUT
行地址选通 RAS*
列地址选通 CAS*
读写控制 WE*
NC
DIN
WE*
RAS*
A0
A2
A1
GND
VSS
CAS*
DOUT
A6
A3
A4
A5
A7
1
2
3
4
5
6
7
8
16
15
14
13
12
11
10
9
24
2.2.7 只读存储器
EPROM
EPROM 2716
EPROM 2764
EEPROM
EEPROM 2717A
EEPROM 2864A
25
2.2.7.1 EPROM
顶部开有一个圆形的石英窗口,用于紫外线透过擦除原有信息
一般使用专门的编程器 ( 烧写器 )
进行编程
编程后,应该贴上不透光封条
出厂未编程前,每个基本存储单元都是信息 1
编程就是将某些单元写入信息 0
26
EPROM芯片 2716
存储容量为 2K× 8
24个 引脚:
11根地址线 A10~ A0
8根数据线 DO7~ DO0
片选 /编程 CE*/PGM
读写 OE*
编程电压 VPP
功能
VDD
A8
A9
VPP
OE*
A10
CE*/PGM
DO7
DO6
DO5
DO4
DO3
1
2
3
4
5
6
7
8
9
10
11
12
24
23
22
21
20
19
18
17
16
15
14
13
A7
A6
A5
A4
A3
A2
A1
A0
DO0
DO1
DO2
Vss
27
EPROM芯片 2764
存储容量为 8K× 8
28个 引脚:
13根地址线 A12~ A0
8根数据线 D7~ D0
片选 CE*
编程 PGM*
读写 OE*
编程电压 VPP
功能
Vpp
A12
A7
A6
A5
A4
A3
A2
A1
A0
D0
D1
D2
GND
Vcc
PGM*
NC
A8
A9
A11
OE*
A10
CE*
D7
D6
D5
D4
D3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
28
27
26
25
24
23
22
21
20
19
18
17
16
15
28
EPROM芯片 27256
1
2
3
4
5
6
7
8
9
10
11
12
13
14 15
16
17
18
19
20
21
22
23
24
25
26
27
28Vpp
A12
A7
A6
A5
A4
A3
A2
A1
A0
D0
D1
D2
GND D3
D4
D5
D6
D7
CE
A10
OE
A11
A9
A8
A13
A14
Vcc
27256引脚图
A14
A13
A12
A11
A10A9
A8A7
A6
A5
A4A3
A2A1
A0 CE OE
D7
D6
D5D4
D3
D2D1
D0
27256逻辑图
29
2.2.8 EEPROM
用加电方法,进行在线 ( 无需拔下,
直接在电路中 ) 擦写 ( 擦除和编程一次完成 )
有字节擦写,块擦写和整片擦写方法
并行 EEPROM:多位同时进行
串行 EEPROM:只有一位数据线
30
EEPROM芯片 2817A
存储容量为 2K× 8
28个 引脚:
11根地址线 A10~ A0
8根数据线 I/O7~ I/O0
片选 CE*
读写 OE*,WE*
状态输出 RDY/BUSY*
功能
NC
A12
A7
A6
A5
A4
A3
A2
A1
A0
I/O0
I/O1
I/O2
GND
Vcc
WE*
NC
A8
A9
NC
OE*
A10
CE*
I/O7
I/O6
I/O5
I/O4
I/O3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
28
27
26
25
24
23
22
21
20
19
18
17
16
15
31
EEPROM芯片 2864A
存储容量为 8K× 8
28个 引脚:
13根地址线 A12~ A0
8根数据线 I/O7~ I/O0
片选 CE*
读写 OE*,WE*
功能
Vcc
WE*
NC
A8
A9
A11
OE*
A10
CE*
I/O7
I/O6
I/O5
I/O4
I/O3
NC
A12
A7
A6
A5
A4
A3
A2
A1
A0
I/O0
I/O1
I/O2
GND
1
2
3
4
5
6
7
8
9
10
11
12
13
14
28
27
26
25
24
23
22
21
20
19
18
17
16
15
32
2.2.9 半导体存储器与 CPU的连接
这是本章的重点内容
SRAM,EPROM与 CPU的连接
译码方法同样适合 I/O端口
33
2.2.10 存储芯片与 CPU的连接存储芯片的数据线存储芯片的地址线存储芯片的片选端存储芯片的读写控制线
34
1,存储芯片数据线的处理
若芯片的数据线正好 8根:
一次可从芯片中访问到 8位数据
全部数据线与系统的 8位数据总线相连
若芯片的数据线不足 8根:
一次不能从一个芯片中访问到 8位数据
利用多个芯片扩充数据位
这个扩充方式简称,位扩充,
35
位扩充
2114
( 1)
A9~ A0
I/O4~ I/O1
片选
D3~ D0
D7~ D4
A9~ A0
2114
( 2)
A9~ A0
I/O4~ I/O1CE
CE
多个位扩充的存储芯片的数据线连接于系统数据总线的不同位数
其它连接都一样
这些芯片应被看作是一个整体
常被称为,芯片组,
36
2,存储芯片地址线的连接
芯片的地址线通常应全部与系统的低位地址总线相连
寻址时,这部分地址的译码是在存储芯片内完成的,我们称为
,片内译码,
37
片内译码
A9~ A0
存储芯片
000H
001H
002H

3FDH
3FEH
3FFH
全 0
全 1
00… 00
00… 01
00… 10

11… 01
11… 10
11… 11
范围( 16进制)A9~ A0
38
3,存储芯片片选端的译码
存储系统常需利用多个存储芯片扩充容量
也就是扩充了存储器地址范围
进行,地址扩充,,需要利用存储芯片的片选端对多个存储芯片 ( 组 ) 进行寻址
这个寻址方法,主要通过将存储芯片的片选端与系统的高位地址线相关联来实现
这种扩充简称为,地址扩充,或,字扩充,
39
地址扩充(字扩充)
片选端
D7~ D0
A19~ A10
A9~ A0
( 2)
A9~ A0 D7~ D0
CE
( 1)
A9~ A0 D7~ D0
CE
译码器
0000000001
0000000000
40
片选端常有效
A19~ A15 A14~ A0
全 0~全 1
D7~ D0
27256
EPROM
A14~ A0
CE
令芯片 ( 组 ) 的片选端常有效
不与系统的高位地址线发生联系
芯片 ( 组 ) 总处在被选中的状态
虽简单易行,但无法再进行地址扩充,会出现,地址重复,
41
地址重复
一个存储单元具有多个存储地址的现象
原因:有些高位地址线没有用,可任意
使用地址:出现地址重复时,常选取其中既好用,又不冲突的一个,可用地址,
例如,00000H~ 07FFFH
选取的原则:高位地址全为 0的地址高位地址译码才更好
42
⑴ 译码和译码器
译码:将某个特定的,编码输入,
翻译为唯一,有效输出,的过程
译码电路可以使用 门电路组合逻辑
译码电路更多的是采用集成 译码器
常用的 2:4译码器 74LS139
常用的 3:8译码器 74LS138
常用的 4:16译码器 74LS154
43
⑵ 全译码
所有的系统地址线均参与对存储单元的译码寻址
包括低位地址线对芯片内各存储单元的译码寻址 ( 片内译码 ),高位地址线对存储芯片的译码寻址 ( 片选译码 )
采用全译码,每个存储单元的地址都是唯一的,不存在地址重复
译码电路可能比较复杂,连线也较多示例
44
全译码示例
A15
A14
A13
A16
C
B
A
E3 138
2764A
19
A18
A17
A12~ A0
CEY6
E2
E1
IO/M
1C000H
1DFFFH
全 0
全 1
0 0 0 1 1 1 0
0 0 0 1 1 1 0
地址范围A12~ A0A19A18A17A16A15A14 A13
45
⑶ 部分译码
只有部分 ( 高位 ) 地址线参与对存储芯片的译码
每个存储单元将对应多个地址 ( 地址重复 ),需要选取一个可用地址
可简化译码电路的设计
但系统的部分地址空间将被浪费示例
46
部分译码示例
138
A17
A16
A11~ A0
A14
A13
A12 (4)(3)(2)(1)
2732273227322732
C
B
A
E3
E2
E1IO/M
CE CE CE CE
Y0
Y1
Y2
Y3
A19~ A15 A14~ A12 A11~ A0 一个可用地址
1
2
3
4
×× 10×
×× 10×
×× 10×
×× 10×
000
001
010
011
全 0~全 1
全 0~全 1
全 0~全 1
全 0~全 1
20000H~ 20FFFH
21000H~ 21FFFH
22000H~ 22FFFH
23000H~ 23FFFH
47
⑷ 线选译码
只用少数几根高位地址线进行芯片的译码,且每根负责选中一个芯片 ( 组 )
虽构成简单,但地址空间严重浪费
必然会出现地址重复
一个存储地址会对应多个存储单元
多个存储单元共用的存储地址不应使用示例
48
线选译码示例
A14
A12~ A0
A13
(1)
2764
(2)
2764
CE CE
A19~ 15 A14 A13 A12~ A0 一个可用地址
1
2
×××××
×××××
1 0
0 1
全 0~全 1
全 0~全 1
04000H~ 05FFFH
02000H~ 03FFFH
切记,A14 A13= 00的情况不能出现
00000H~ 01FFFH的地址不可使用
49
片选端译码小结
存储芯片的片选控制端可以被看作是一根最高位地址线
在系统中,主要与地址发生联系:包括 地址空间的选择 ( 接系统的 IO/M*信号 )
和 高位地址的译码选择 ( 与系统的高位地址线相关联 )
对一些存储芯片通过片选无效可关闭内部的输出驱动机制,起到降低功耗的作用
50
4,存储芯片的读写控制
芯片 OE*与系统的读命令线相连
当芯片被选中,且读命令有效时,
存储芯片将开放并驱动数据到总线
芯片 WE*与系统的写命令线相连
当芯片被选中,且写命令有效时,
允许总线数据写入存储芯片
51
2..2.11 存储芯片与 CPU的配合
存储芯片与 CPU总线的连接,还有两个很重要的问题:
CPU的总线负载能力
CPU能否带动总线上包括存储器在内的连接器件
存储芯片与 CPU总线时序的配合
CPU能否与存储器的存取速度相配合
52
1,总线驱动
CPU的总线驱动能力有限
单向传送的地址和控制总线,可采用三态锁存器和三态单向驱动器等来加以锁存和驱动
双向传送的数据总线,可以采用三态双向驱动器来加以驱动
53
2,时序配合
分析存储器的存取速度是否满足
CPU总线时序的要求
如果不能满足:
考虑更换芯片
总线周期中插入等待状态 TW
切记:时序配合是连接中的难点