存储器是计算机的记忆部件。CPU要执行的程序、要处理的数据、处理的中间结果等都存放在存储器中。
早期计算机用磁心作存储器。20世纪70年代以后,随着大规模集成电路技术的发展,半导体的集成度大大提高,体积急剧减小,加之它具有功耗低、成本低和应用方便等优点,故其应用日益广泛。目前微机的存储器几乎全部采用半导体存储器。存储容量和存取时间是存储器的两项重要指标,它们反映了存储记忆信息的多少与工作速度的快慢。半导体存储器根据应用可分为读写存储器(RAM)和只读存储器(ROM)两大类。
1.读写存储器 ( RAM )
读写存储器又称随机存取存储器(Random Access Memory)简称RAM,它能够在存储器中任意指定的地方随时写入(存入)或读出(取出)信息;当电源掉电时,RAM里的内容则消失。根据存储单元的工作原理,RAM又分为静态RAM和动态RAM。静态RAM用触发器作为存储单元存放1和0,存取速度快,只要不掉电即可持续保持内容不变。一般静态RAM的集成度较低,成本较高。
动态RAM的基本存储电路为带驱动晶体管的电容。电容上有无电荷会被分别视为逻辑1和0。随着时间的推移,电容上的电荷会逐渐减少,所以为保持其内容必须周期性地对其进行刷新(对电容充电)以维持其中所存的数据。
(1)静态RAM
RAM的结构如图1-37所示。它由存储器矩阵,地址译码器和读/写控制电路等组成。
图1-37 RAM的组成框图
存储矩阵是存储器的主体,由若干个触发器存储单元组成,每个存储单元存放一位二进制信息。为了存取方便,存储单元通常设计成很规则的矩阵形式。例如,一个容量为256×4(256个字,每个字4位)的存储器有1024个存储单元,这些单元可排成32行×32列的矩阵形式,如图1-38所示。
图1-38中每行有32个存储单元(圆圈表示存储单元),可存储8个字,每4列为一个字列,可存储32个字。每根行选线选中一行,每根列选择线选中一个字列。因此,图示阵列有32根行选线和8根列选线。
RAM内容的存取是以字为单位的,为了区别不同的字,将存放同一个字的存储单元编为一组,并赋予一个号码,称为地址。存储单元是存储器中最基本的存储细胞,不同的单元有不同的地址。在进行读写操作时,可以按照地址访问某个单元。
地址的选择是借助于地址译码器实现的。在大容量的存储器中,通常采用双译码结构,即将输入地址分为两部分,分别由行译码器和列译码器译码。行、列译码器的输出即为存储矩阵的行、列选择线,由它们共同确定欲选择的地址单元。
图1-38 256×4RAM存储矩阵
对于图1-38所示的存储矩阵,256个字需要8位二进制地址(A 7 ~A 0 )区分(2 8 =256)。其中地址码的低5位A 0 ~A 4 作为行译码输入,产生32根行选择线,地址码的高3位A 5 ~A 7 用于列译码输入,产生8根列选择线,只有被行选择线和列选择线都选中的单元,才能被访问。例如,若输入地址A 7 ~A 0 为00011111时,X 31 和Y 0 输出高电平,位于X 31 和Y 0 交叉处的字单元此时可以进行读出或写入操作,而其余任何字单元都不会被选中。
由于集成度的限制,目前单片机RAM容量很有限,对于一个大容量的存储系统,往往需要若干片RAM组成,而读/写操作时,通常仅与其中的一片(或几片)打交道,这就存在一个片选问题。RAM芯片上特设了一根片选信号线,在片选信号线上加入有效电平,芯片即被选中,可进行读/写操作,未被选中的芯片则不工作。
片选信号仅解决芯片是否工作问题,而芯片执行读还是写操作则还需要有一根读写信号线,所以芯片上还没有读/写控制线。
Intel 2114A是一片1KB×4(1KB即1024个单元)位的静态RAM,它与TTL完全兼容。单接+5V电源。如图1-39所示其外形、逻辑符号和内部结构。
10根地址线A 0 ~A 9 用于行译码,产生64根行选择线:A 0 、A 1 、A 2 、A 9 4根地址线用于列译码,产生16条列选线。每根列选择线同时接至4个基本存储电路,即4位。所以这种双译码结构可寻址64 × 16 × 4=4096个存储单元。 为片选信号线,输入低电平有效; 为低电平,则进行写操作;若使 为高电平则可进行读操作。读写的数据通过I/O 1 ~I/O 4 送到数据总线上,由CPU读取。
6116、6264、62256、628128芯片分别是2KB×8、8KB×8、32KB×8和128KB×8的静态RAM,使用这些芯片时都不必外加刷新电路。
(2)动态RAM
静态RAM的存储单元所用管子数目多、功耗大、集成度低,而动态RAM集成度高,成本低、功耗也很低。动态RAM是一种以电荷形式存储信息的器件,其基本存储电路采用晶体管和电容。目前常用的动态RAM单元电路有两种,一种由三个CMOS管组成,另一种由一个CMOS管组成。
动态RAM的缺点是电容所存信息的电信号会逐渐漏掉。一般要求2 ms周期就要对所存信息全部刷新一遍。所以动态RAM要加有专门的刷新电路。但对大容量存储系统,附加刷新电路的成本会被其高集成度、低功耗和价廉等优点所补偿。
图1-39 Intel 2114A外形,逻辑符号和内部结构
如Intel 2164A是16引脚双列直插动态RAM集成芯片,它采用单一+5V电源,其基本存储电路为单管型,它的引脚及结构可查看有关手册。
2.只读存储器 ( ROM )
只读存储器简称ROM,用以存放不变信息——至少不经常改变的信息。与RAM不同,当ROM仍能保持内容不变。在读取某地址内客这一点,ROM类似于RAM。但ROM并不含修改其内容的结构——只读存储器的名称即由此而得。
一般ROM用来存储程序和一些固定的数据,比如计算机的系统程序、一些固定表格等。而RAM用于存储数据。
只读存储器有掩膜ROM、PROM、EPROM和E 2 PROM等。
(1)掩膜ROM
这种ROM基本存储电路的0或1两种状态,是在制造电路时由生产厂家根据用户提出的要求,通过掩膜技术制作或不制作晶体管栅极来实现0或1状态的。一旦制作完毕,存储内容即不可修改,大批量生产时成本很低。
(2)PROM
为了弥补掩膜ROM成本高和不能改变其内容的不足,出现了一种由用户编程且只能写入的一次的PROM。出厂时PROM设置为熔丝断裂型,未写入时每个基本存储电路都是一个带熔丝的晶体管或二极管。编程后丝断为“l”,未断者为“0”,用户用专用编程器进行编程时,对需写1的单元,通过大电流以熔断其熔丝,丝断后无法复原,因此只能写入一次。在软件开发过程中PROM比掩膜ROM方便价廉。
(3)EPROM
EPROM是一种可多次写入的ROM。其特点是写入的信息可以长期保存,这一点与掩膜ROM一样;与掩膜ROM不同的是,当不需要这些信息或欲进行修改时,可进行擦除和重写。EPROM芯片上开有一石英窗口,当芯片置于紫外线下照射时,高能光子将与EPROM中的电子相碰撞,将其驱散,于是以电荷形成存储的信息即被擦除。EPROM在开发样机时非常有用,因为在研制过程中数次修改程序的情况颇为常见。
现常用的EPROM型号有2732、2764、27128、27256、27514等,其容量分别为4KB、8KB、16KB、32KB、64KB等。以2732A为例,介绍该类芯片的结构及工作方式。图1-40所示2732A引脚及内部结构。它是以HMOS-E工艺制成的24引脚双列直插式芯片。其中A 0 ~A 11 为13位地址线,O 0 ~O 7 为8位数据线, 为芯片允许信号,低电平有效,该引脚在编程时亦作为编程电压输入引脚V CC 和GND分别为+5 V电源和接地端。
图1-40 2732A引脚及内部结构
2732A有六种工作方式,见表1-30。
表1-30 2732A工作方式
读方式:2732A由 和 两条控制线控制。为在输出端读到数据,两者均必须输入低电平V IL 。 为电源控制信号,用来进行器件选择。 为输出控制,用来把数据从输出缓冲器送往输出引脚,即送至数据总线。
2732A采用读方式读出时间约为250ns。
待机方式:若某2732A的 输入端为高电平,则它将处于待机方式。2732A的工作电流为125 mA,待机时的电流可降至35 mA。在这种方式下,输出呈高阻状态,且不受 限制。
输出禁止方式:多个2732A芯片的输出可以并联到数据总线上。在这种接法中,为使存储系统功耗最小并防止各存储芯片争夺总线资源,如果所有芯片的 都接地的话,则可向未被选中芯片的 端输入高电平,使其输出处于高阻状态,这便是输出禁止方式;而被选中芯片的 给低电平信号,因此,只有它的输出才能送往数据总线。但为更有效地利用 和 两条控制线,各片的 (脚18)通常通过译码得来。即在多个EPROM芯片中选中一个使之工作,而各片 (脚20)都接到控制总线的而线 上,这就保证未选中的EPROM处于低功耗待机方式,它们的输出为高阻状态。被选中芯片的 和 均为低电平,因此便将其数据送入数据总线。
编程方式:每次擦除后或新购2732A芯片的所有位均应为1。写入信息时,只是把应为0的位由1改为0。而应为1的位保持不变。当2732A处于编程方式时, 引脚加上21V电压。要求在 和GND两引脚间跨接一个0.1μF的电容,以抑制该两脚间可能产生的尖峰电压。否则,器件可能受损。将要写入的数据8位并行加到2732A的数据输出引脚上。地址与数据输入均为TTL电平。
编程禁止方式:当向多片并联的2732A写入不同数据时,除 引脚外,各片的所有同名引脚(包括 )均呈并联状况。在 接21 V电压的情况下,向某2732A的 脚加一TTL电平的编程脉冲,将对该芯片进行写入。向其他2732A的 引脚输入高电平,则禁止对它们进行写入操作。
校验方式:每写入一个字节后都应校验所写内容是否有误。
读标识码方式:自1982年开始,Intel所生产的EPROM芯片都内含关于厂家及产品型号的标识码。2732A的两个标识字节为8901H;2764、27128和27256的标识分别为8902H,8983H和8904H。读标识应在25±5℃的环境下进行,地址线A 9 (脚22)加11.5V~12.5V电压,其他地址线均为低电平V 1H 时,从输出端读到的第一个字节应为89H,代表Intel产品;当A 0 为高电平V 1H 而其他位不变时,得到第二个字节,对2732A来说,应为01H。
EPROM编程器可以通过读标识的方法来辨认EPROM芯片的型号,从而自动启动相应的编程算法。应当注意,对于不同容量的EPROM芯片来说,编程电压、编程脉冲不尽相同。2764以上的芯片除具有标准编程法(即每字节用50ms宽编程脉冲)外,尚有Intel编程法。例如,32KB的27256,若用Intel编程法只要5min即可写完。读者可以算出,用普通编程法需多长时间。
(4)E 2 PROM。
E 2 PROM是近几年出现的新产品。它既可以在线电擦除,又可以加电写入,并能在断电的情况下保持修改的结果,即具备信息不挥发的特性。它比紫外线擦除的EPROM要方便,可直接在2764插座上在程序运行过程中用电(即+5V工作时)进行改写,并且一次操作可单独改写几位或几个字节。改写与调整其内部数据十分方便。
常见的E 2 PROM型号有2816(2KB×8),2817(2KB×8),2864(8KB×8),2864A等。图1-41所示为2817A的引脚与结构图。
图1-41 2817A引脚与结构图