第5
章


存储
器


无论简单还是复杂,每款计算机系统都有存储器。静态随机存储器存取速度快,容量
小,造价高。动态随机存储器容量大,价格廉,但地址多路复用,还需要定时刷新。只读存储
器保存永久驻留系统的程序,掉电后信息不丢失。闪存不仅掉电后信息不丢失,还可以在线
擦除。不同种类的存储器构成微型计算机的存储系统。

5.存储器概述
1 

计算机的存储器分为内存储器和外存储器两大类。任何程序和数据必须进驻内存储器
后才能执行,因此,内存储器也称为主存储器。它比外存储器存取速度快,存储容量小。外
存储器也叫辅助存储器,属于计算机的外部设备,如磁盘、光盘和U盘等,存储容量大,存取
速度慢。

5.1 
内存储器分类
1.
内存储器主要由半导体材料构成,所以也称为半导体存储器。按照工作方式,内存储器
可分为随机存储器(RAM)和只读存储器(ROM)两大类,如图5-1所示。随机存储器是一
种易失性存储器(volatilememory), 掉电后信息会丢失,常用来存放正在运行的程序和数
据。只读存储器是一种非易失性存储器,信息一旦写入,就固定不变,掉电后信息也不会丢
失。在使用过程中,只读存储器中的信息只能读出,一般不能修改,所以常用于保存固定不
变且长期使用的程序和数据,如主板上的基本输入/输出系统程序BIOS 、外部设备的驱动
程序等。

随机存储器分为静态随机存储器(StaticRAM,SRAM)和动态随机存储器(Dynamic 
RAM,DRAM )。静态随机存储器以双稳态触发器为基本存储电路,保存的数据不需要刷
新,只要通电就可以保存数据,所以常被称为静态存储器(staticmemory), 与动态随机存储
器比较,它的存取速度快、集成度低、功耗大。动态随机存储器以电容作为基本存储电路,但
它存储的信息随电容上电荷的泄漏可能丢失,所以动态RAM 必须定时刷新,它的存取速度
相对较慢,但是集成度高、成本低。


图5-
1 
内存储器分类

5.2 
存储器件
1.
计算机的存储器由一个或多个存储器件构成。存储器件通过计算机系统的地址总线、
数据总线和控制总线与微处理器相连,实现程序和数据
的读/写操作。所以,所有的存储器件都有地址输入引
脚、数据输出或者数据输入/输出引脚、控制读/写操作的
控制引脚,还有从多片存储芯片中选定一个芯片的片选
引脚,如图5-2所示。

1. 
地址线
所有的存储器件都有地址输入引脚(地址线), 用来
接收CPU 发过来的存储单元地址信息。地址线接收的
地址信息用以选择存储芯片内部的存储单元。地址线都
是从A0 开始标记,一直到An 
。地址线的根数与芯片内
含有的存储单元个数有一个对应的关系。如含有10 根地址线的芯片,地址线标记为A0~ 
A9,存储单元应该有210=1024 个;含有11 根地址线的芯片,地址线标记为A0~A10,存储
容量为211=2048 个存储单元。反过来,一个存储容量为4KB 的存储芯片,应该有12 根地
址线A0~A11;一个存储容量为8KB 的存储芯片,应该有13 根地址线A0~A12;一个存储
容量为1MB 的存储芯片,应该有20 根地址线A0~A19 。

如果存储芯片的地址线为A0~A9,则它的存储单元的地址范围为
0000000000~1111111111B, 即000H~3FFH 。
地址线为A0~A10 根的芯片,地址范围为
00000000000~11111111111B, 即000H~7FFH 。
通常,用3FFH 表示1KB 的存储区域,用7FFH 表示2KB 的存储区域,用FFFH 表示
4KB 的存储区域,用FFFFH 表示64KB 的存储区域,用FFFFFH 表示1MB 的存储区域。

第
5 
章存储器

图5-2存储器件引脚示意图
121

2. 
数据线
所有的存储器件都有数据线,负责数据的输出或者是数据的输入/输出。ROM 芯片的
数据线只输出数据,RAM 芯片的数据线具有输入/输出功能。一般数据线的标识为
O0~Om 
或者D0~Dm 
。数据线的根数说明芯片内一个存储单元所能存放的二进制数的位
数,如HM6264 芯片含有8根数据线D0~D7,说明它的一个存储单元能存放8位二进制
数。数据线的根数通常称为芯片的位宽,8位宽的存储芯片通常称为字节宽存储器件。多
数存储芯片是8位宽,也有16 位宽、4位宽、1位宽的存储芯片。

3. 
芯片选择线
任何单个的存储器件存储容量都是有限的。计算机系统的内存储器通常由多个存储器
芯片构成。所以,所有存储器件都有至少一根芯片选择线,用来选中该器件,或者说激活这
..

个器件。片选择线常被标识为片选CS 、片使能CE 或简称为选择S,这些符号上面的横杠,表
示逻辑0,也就是低电平有效。当在这个引脚上加一个低电平的时候,这个芯片被选中。如
果存储芯片含有多根选择线,则只有在所有选择线都处于有效状态时,芯片才被激活,CPU 
才可以对它进行读/写操作。

4. 
控制线
每个存储器件都有控制数据输入/输出的控制线,通常标记为OE 、WE,低电平有效。
OE 为读允许或输出使能。当OE 为低电平时,存储单元存放的数据流出芯片,出现在系统数
据总线上。WE 为写允许。当WE 为低电平时,存储器件从数据线上接收数据存储到芯片内
部。ROM 存储器件因为只能读出数据不能写入数据,所以通常只有一个输出使能OE 引
脚,有些芯片将其标为G(

..输出选通)。

有些RAM 存储器件受到芯片引脚数量的限制,控制数据输入/输出的引脚只有一个, 
通常标记为R/..W
。当R/W..
引脚为高电平时,芯片输出数据,执行读操作;当它为低电平时, 
芯片接收数据,执行写操作。

如果RAM 芯片有两个控制端WE 和OE,则这两个引脚不能同时有效,也就是不能同时
为低电平。当它们都为高电平时,都处于无效状态,这时芯片既不读出数据,也不写入数据, 
数据线引脚处于高阻状态。

1.存储器件的性能指标
5.3 
衡量半导体存储器件性能的指标有很多,主要性能指标包括制造工艺、存储容量、供电
电压、包装类型、适用的温度范围、存取时间、功耗、引脚配置、内部功能模块图、引脚名称及
功能描述表、读/写时序图等。其中,存储容量和存取时间是使用芯片时必须关注的指标。

1. 
存储容量
存储容量是指存储器件所能容纳二进制信息的总量,通常表示为存储单元个数×每个
存储单元的位数。能存储1位二进制信息的电路称为存储元,多个存储元构成一个存储单

122
微型计算机原理与接口技术(第
2 
版) 


元,存储芯片由若干存储单元构成。例如,静态随机存储器芯片62256 的容量为32K×8b, 
说明它由32K 个存储单元构成,每个存储单元由8个存储元构成,可以存储一字节的信息。
动态随机存储器芯片41256 的容量表示为256K×1b,表示它由256K 个存储单元构成,一
个存储单元存储1位二进制信息。

2. 
存取时间
存储芯片的存取速度通常用存取时间衡量。存取时间又称为访问时间或读/写时间,它

是指从启动一次存储器操作(读或写)到完成该操作所需要的时间()。例如,读出时间是
指从CPU 向存储器发出有效地址开始,到将选中单元的内容送上数据总线为止所用的时
间。写入时间是指从CPU 向存储器发出有效地址开始,到信息写入被选中单元为止所用
的时间。显然,存取时间越短,存取速度越快。

存取时间通常用ns(纳秒)表示。芯片上的标识中“-7”表示70ns,“-12”表示120ns, 
依次类推。SRAM 的存取时间约为60ns,最快可达到1ns。高速缓冲存储器使用的SRAM 
的存取时间都在10ns以内。DRAM 的存取时间为120~250ns。

一个系列的芯片会有一个基本的存取时间。例如,KM62256C 系列静态随机存储器芯
片的存取时间最快是55ns,最慢是70ns。TMS4016 静态随机存储器芯片的最慢存取时间
为250nItl公司27 系列可擦除只读存储器芯片EPROM 的基本读取时间为450s。

taA 

s,nen

5.随机存储器
2 

随机存储器分为静态随机存储器(SRAM)和动态随机存储器(DRAM )。静态随机存
储器以双稳态触发器为基本存储电路,保存的数据不需要刷新。与动态随机存储器比较,它
的存取速度快、集成度低、功耗大。动态RAM 以电容作为基本存储电路,每隔一段时间需
要刷新一次,它的集成度高、成本低。

2.静态随机存储器
5.1 
图5-3是静态随机存储器的功能结构图,由存储体和外围电路(行/列地址译码器、I/O 
缓冲器和读/写控制电路等)组成。存储体由许多个存储元组成,这些存储元通常以矩阵的
形式排列。存储体采用行、列地址单独译码的双译码方式。A0~Ai 
为行地址输入端,Ai+1~ 
An 
为列地址输入端。行地址译码器输出2i+1 根行选择线,每根行选择线选择一行;列地址
译码器输出2n-i根列选择线,每根列选择线选择一列。只有行、列均被选中的存储元,才能
进行读或写的操作。I/O缓冲器从系统数据总线接收数据或者把存储单元存储的数据输出
到数据总线上。常见的静态随机存储器芯片都是8位宽的芯片,有8根数据线,一次可以输
入/输出1字节。

静态随机存储器使用方便,在微型计算机领域有广泛的应用。常用的SRAM 芯片有
6116(2K×8b )、6232(4K×8b )、6264(8K×8b )、62128(16K×8b )、62256(32K×8b)和
62512(64K×8b)等。下面以SRAM 芯片6264 为例,说明静态随机存储器的典型特性及工

第
5 
章存储器

123

作过程。

1.KM6264SRAM 
的引脚功能
KM6264 芯片是一个容量为8K×8b 的CMOS 型SRAM 芯片。它含有8K 个存储单
元,每个存储单元可以存储8位二进制信息。单一+5V 供电,28 脚集成电路封装,额定功
耗200mW,典型存取时间为200ns。KM6264 共有28 根引线,包括13 根地址线、8根数据
线和4根控制信号线,如图5-4所示。


图5-
3 
静态随机存储器的功能结构图图5-
4 
KM6264SRAM 
外部引线图

A0~A12:13 根地址信号线,用来选定8K 个存储单元中的一个。这13 根地址线通常
与系统中地址总线的低13 位(A0~A12)一对一地连接。
D0~D7:8根数据线。每个存储单元可存储8位二进制数。这8根数据线通常与计算
机系统的数据总线一对一地连接。
CS1 、CS2:2根片选信号线,CS1 低电平有效、CS2 高电平有效。计算机系统中剩余的

地址总线A13~A19 用来产生片选信号。
OE:输出允许,低电平有效,接系统读信号RD 。
WE:写允许,低电平有效,接系统写信号WR 。
VCC:+5V 电源。
GND:接地端。
NC:空脚。

2.KM6264 
的工作过程
(1)写数据过程。CPU 把要写入的存储单元物理地址送到地址线上,其中A0~A12 送
到芯片的地址线A0~A12 上,A13~A19 经过地址译码电路生成片选信号使CS1=0、CS2=1; 
124
微型计算机原理与接口技术(第
2 
版) 


接着CPU 送出写控制信号WR=0,并将数据发送到数据线D0~D7 上,WR 信号使芯片的
WE 信号有效,数据就写入了芯片指定的存储单元,如图5-5所示。


图5-
5 
写周期时序图

(2)读数据过程。CPU 把要读出的存储单元物理地址送到地址线上,其中A0~A12 送
到芯片的地址线A0~A12 上,选定某个单元;A13~A19 经过地址译码电路生成片选信号使
CS1=0、CS2=1;接着CPU 送出RD 信号,它使芯片的输出允许信号OE=0,指定单元的存
储内容就出现在数据线D0~D7 上,CPU 就从数据线捕获数据,如图5-6所示。
图5-
6 
读周期时序图

CPU 的总线周期有固定的时序,对存储器的读/写时间有要求。对存储器进行读操作
时,存储器必须在读信号RD 有效期内将选中单元的内容送到数据总线上。进行写操作时, 
存储器也必须在写信号WR 有效期间将数据写入指定的存储单元,否则就会出现读/写
错误。

如果存储器的存取速度太慢,不能满足CPU 的要求,就需要采取适当的措施解决这一
问题。最简单的解决办法是降低CPU 的时钟频率,延长时钟周期TCLK,但这样做会降低系
统的整体运行速度。另一种方法是利用CPU 上的READY 信号,在总线周期中插入一个
或几个等待周期Tw,等待存储器操作完成。

3.HM6116SRAM 
芯片简介
如图5-7所示,HM6116 是容量为2K×8b 的高速静态CMOS 随机存取存储器,其基本
参数如下。

(1)高速:存取时间为100ns/120ns/150ns/200ns(分别以6116-10 、6116-12 、6116-15 、
6116-
(2)低功耗:运行时为240mW, 0μW。

20 为标志)。
空载时为2.

(3)与TTL 兼容。
第
5 
章存储器

125

图5-
7 
HM6116SRAM 
引脚图

(4)引脚输出与2716 芯片兼容。
(5)HM6116 有11 根地址线(A0~A10),8根数据线(D0~D7),1根片选信号线CS, 
2根控制线:读/写控制信号R/..W
和输出允许信号OE,1根电源线、1根地线GND 。

4.KM62256SRAM 
芯片简介
图5-8描述了静态随机存储器KM62256 的引脚图,它的容量为32K×8b,28 脚集成电
路封装,典型的存取时间为85~150ns。KM62256 的存取时间为55~70ns。


图5-
8 
KM62256SRAM 
引脚图

8086/8088CPU 工作在5MHz 时钟下时,总线周期中允许存储器或I/O端口存取数据
的时间是460ns。存储器的存取时间必须小于这个时间才能正常工作。以上的静态随机存
储器芯片都可以直接与其相连,不需要等待状态。

微型计算机原理与接口技术(第
2 
版)

126

5.2 
静态RAM 
芯片应用
2.
在计算机系统中,系统总线是公共的数据通路,各种部件都挂接在系统总线上,总线的

负载能力有限。在存储器芯片较少的系统中,存储器芯片可直接与总线相连;在存储器芯片

较多的系统中,必须增加总线驱动能力,然后连接存储器芯片。KM6264 芯片的功耗很小

(工作时为15mW,未选中时仅10μW), 在简单的应用系统中,可直接和总线相连。

存储器芯片的应用就是将芯片正确接入计算机系统。根据CPU 要求的地址范围,将
芯片上的各种信号与计算机系统的地址线、数据线和控制线连接在一起,存储器芯片就接入
了计算机系统。

(1)数据线的连接。系统中所有的数据线都必须与芯片的数据线直接发生关联,双方
都不能有剩余。如果芯片上的数据线和系统中的数据线的数量一致,则将它们一对一相连; 
如果芯片上的数据线少于系统数据线,如2114(1K×4b)只有4根数据线,则必须选用2个
组成一组,构成数据线为8根的存储器芯片组,才可以与8088CPU 相连。如果芯片上的数
据线多于系统数据线,说明选择的芯片不合适,必须更换。
(2)控制信号线的连接。存储器只有两种操作:读和写。与读/写有关的控制信号通
常只有两个:输出允许和写允许。它们应该分别与系统中的读/写控制信号线相连。
(3)地址线的连接。一般存储芯片上地址线的数量比计算机系统中的地址线根数少, 
所以将芯片正确接入计算机系统,必须解决地址线不匹配的问题。芯片接入系统中时,芯片
上的地址线和系统中的低位地址线一对一相连,使CPU 可以选择芯片内的任一存储单元。
系统中剩余的地址线在芯片中没有对应线,不能直接与芯片发生关联。
将一组输入信号转换为一个输出信号,称为译码。将系统中剩余的地址信号经过译码
电路转换为一个输出信号,作为芯片的片选信号,称为地址译码。经过地址译码,系统中的
全部地址线都与芯片产生了关联,使芯片中每个存储单元在系统地址空间中都有唯一的物
理地址。地址译码是存储器芯片应用的核心和关键。

地址译码的方法有:全地址译码和部分地址译码。

1. 
全地址译码
8088 系统中与存储器相关的信号线有8位数据总线D0~D7,20 位地址总线A0~ 
A19 。8088CPU 工作在最小模式下,与内存相关的控制信号有IO/..RD3根。在最

M、WR 、
大模式下,与内存相关的控制信号有两个:MEMW 、MEMR,这两个信号在8086 系统中标
为MRDC 、MWTC 。

全地址译码就是把系统中的全部地址线与芯片连接,其中高位地址线经过译码电路译

码后作为芯片的片选信号;低位地址线与系统中的相应地址线一对一连接。全地址译码方

式下,每个存储单元都有唯一的物理地址。

【例5-1】要求以全地址译码方式将KM6264SRAM 芯片接入计算机系统,地址范围
为F8000H~F9FFFH 。
接线方法如下。

(1)将6264 芯片的数据线D0~D7 与系统的D0~D7 一对一连接,没有其他接法。
第
5 
章存储器

127

(2)将6264 芯片的地址线A0~A12 与系统的A0~A12 一对一连接,没有其他接法。
8088 系统中剩余的地址线A13~A19 需要通过译码电路,作为片选信号与6264 芯片连接。
(3)将6264 芯片的OE 与系统的MEMR 连接,将WE 与系统的MEMW 连接。如果8088 
CPU 工作在最小模式下,则将6264 芯片的OE 、WE 分别与系统的RD 、WR 连接,如图5-9 
所示。
图5-
9 
6264 
芯片与系统总线的连接(未完成) 

(4)6264 芯片有2根片选信号线,只要控制其中一根信号线就可以,另一根接恒定高电
平或低电平。通常将CS2 接高电平,CS1 接控制信号。这种接法与2764 芯片应用有关,将
3节介绍。在5.
图5-a) 其中除地址线A13~A19 未连接外,

9(是8088CPU 工作在最小模式下的连接方法, 
还有控制信号IO/..M信号在时序上与地址线基本相同,

M。IO/..所以在译码电路中可以把它当
作一根地址线参与译码。图5-9(b)是8088CPU 工作在最大模式下的连接方法。

(5)译码电路的设计有两种方法:一种是利用基本的逻辑门电路搭建译码器;另一种
是利用专用的译码器芯片译码。
将芯片的地址范围以二进制形式表示,如图5-10 所示。其中,虚线右边的A0~A12 已
经与芯片上的地址线一对一连接,不用设计。左边的A13~A19 需要经过译码电路形成芯片
的片选信号,使得芯片在8088 系统1MB 的存储空间中定位在F8000H~F9FFFH 。通过对
图5-10 进行分析可以看到,在F8000H~F9FFFH 的地址范围内,A13 和A14 始终为低电平, 
A15~A19 始终为高电平,译码电路的设计就要利用这个特点。

①基本逻辑门电路译码。
A14 和IO/..是低电平信号,
先用基本逻辑门设计译码电路。A13 、M 可以各经过一个非
门转为高电平;再与A15~A19 一起经过一个8输入端的与非门74LS30 产生低电平信号,接
到6264 的片选端,如图5-11 所示。

128
微型计算机原理与接口技术(第
2 
版) 


图5-10 
地址译码设计


图5-11 
基本逻辑门电路译码

从图5-11 可以看出,当CPU 送出的内存单元地址在F8000~F9FFFH 范围内时,6264 
的片选端CS1 就得到低电平,而CS2 恒定为高电平,如果此时读或写信号有效,CPU 就可以
与6264 芯片交换数据了。

74LS30 是8输入端的与非门,只有8个输入端都为逻辑1时,输出才为逻辑0,因此图
5-11(b)中有一个引脚通过上拉电阻接到高电平上。
利用基本的逻辑门电路搭建译码器,设计灵活,可以设计出多种方案。图5-12 是例5-11 
的另一种译码电路。
利用基本的逻辑门电路搭建译码器的缺点是,有多少个存储芯片,就要设计多少套译码
电路,整体上看,设计复杂,不易修改。而利用专用的译码器芯片译码,方法简单,使用方便。

②译码器芯片译码。
译码器有很多种,如2-4译码器、3-8译码器、4-16 译码器等。最常用的译码器芯片
74LS138 是3-8译码器,74LS139 是双2-4译码器。74LS138 的引脚如图5-13 所示,引脚
G1、G2A 、G2B 为控制端(使能端), 即当G1=1并且G2A=G2B=0时,译码器工作,否则译码器
被禁止。C、B、A是译码输入端,负责输入3位二进制信息。Y0~Y7 为8个译码输出端。
译码器对C、B、A输入端的信号进行译码并通过Y0~Y7 输出译码结果。74LS138 译码器
的真值表如表5-1所示。译码器工作时,在任何情况下8个输出端只有一个为低电平,低电
平有效。

第
5 
章存储器

129