第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