存储器(Memory)是计算机和很多数字系统中用来存储大量信息的设备或部件,是这些数字系统的重要组成部分。存储器的种类很多,按存储介质的不同,可划分为半导体存储器、磁存储器和光存储器。由于半导体存储器具有集成度高、价格低、体积小、耗电少和可靠性高等优点,目前在市场上得到了广泛应用。本章讲到的都是半导体存储器。存储器按功能的不同,可分为只读存储器(Read-Only Memory,ROM)和随机存取存储器(Random Access Memory,RAM)。可编程逻辑器件(简称PLD)是可由用户编程、配置的一类逻辑器件的泛称。它具有功能密度大、应用灵活、使用方便和工作稳定可靠,尤其具有加密的独特功能等优点,因此深受广大用户欢迎。
本章主要内容
& 不同类型只读存储器(ROM)的工作原理和特点
& 随机存取存储器(RAM)的工作原理和特点
& 存储器容量的扩展
& 典型的可编程逻辑器件(PLD)介绍
& 可编程逻辑阵列PLA、PAL和通用阵列逻辑GAL,以及现场可编程门阵列逻辑FPGA的介绍
只读存储器是指在正常的工作状态下,只能读出数据而不能修改或写入数据的存储器。其所存信息可长期保留,断电也不消失,适用于存储需长期存放的数据。按存储内容存入方式的不同,只读存储器可以分为固定只读存储器(掩膜只读存储器)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、电可擦除可编程只读存储器(Electrical Erasable Programmable Read-Only Memory,E2PROM)和快闪存储器(Flash Memory)等几种类型。
掩膜只读存储器在制造时由厂家利用掩膜技术直接把数据写入存储器中,存储器制成后,其中的数据也就固定了,即用户只能读出存储器中的内容而不能进行改变。此类型的存储器结构简单、集成度高、价格便宜,一般大批量生产。其电路结构由地址译码器、存储单元矩阵和输出缓冲器3部分组成,如图8-1所示。
图8-1 ROM的电路结构
图中,地址译码器将输入地址代码A0~An-1译成控制信号,以便读取存储单元矩阵的相应单元。地址代码经过地址译码器后输出W0~个高电平有效信号,其中每一个输出信号称为一条字线,字线是用来选择存储单元矩阵的2n个字的。存储单元矩阵实际是个编码器,编码器中和字线相交的线称为位线,字线与位线构成矩阵。当地址译码器的输出线中有一条为高电平时,编码器的或阵列中和该条高电平字线相交的每条位线上将输出一个二值代码,通常,把每条位线上输出的二值代码称为一个位,把与高电平字线相交的所有位线输出的二值代码称为一个字。位线上的输出进入输出缓冲器。输出缓冲器一方面可以提高存储器的带负载能力,使输出电平与TTL电路的逻辑电平匹配,另一方面利用缓冲器的三态控制功能可将存储器的输出端与系统的数据总线直接相连。
存储矩阵中的每个存储单元可以用二极管、晶体管、熔丝或其他存储元件构成。图8-2所示为由二极管构成的具有2位地址输入码和4位数据输出的ROM电路。
图8-2 二极管构成的具有2位地址输入码和4位数据输出的ROM电路
A1A0可给出4个不同地址:00、01、10、11。地址译码器是一个与阵列逻辑结构,它将这4个地址代码分别译成W0~W3高电平有效字线,存储单元阵列是一个由二极管组成的或阵列编码器,字线和位线的每个交叉点是一个存储单元,交叉点处接有二极管时相当于存1,否则存0。如图8-2所示,当A1A0=10时,字线W2=1,其他字线为0,由于位线D2上接有二极管,该二极管导通,D2位线输出高电平,其他位线上没有接二极管,D3、D1、D0输出均为低电平。在读出数据时,只要输入指定的地址码,则指定地址内各存储单元所存的数据便会出现在输出数据线上,如A1A0=10,在位线D3~D0上将输出4位二值代码为0100。只读存储器的全部4个地址及其存储的内容如表8-1所示。
为了简化ROM电路,将图8-2所示电路中的与或矩阵交叉处,有存储元件处加黑点,无存储元件处不加黑点,将电源、电阻和二极管(或三极管、MOS管)等元件省略,可简化成如图8-3所示的ROM电路,这种简化图又称为ROM阵列逻辑图。
表8-1 只读存储器地址及存储内容
输入地址 |
输出数据 |
输入地址 |
输出数据 | |||||||||
A1 |
A0 |
|
D3 |
D2 |
D1 |
D0 |
A1 |
A0 |
D3 |
D2 |
D1 |
D0 |
0 1 |
0 1 |
|
0 0 |
1 0 |
0 1 |
0 1 |
0 1 |
0 1 |
0 0 |
1 1 |
0 1 |
0 0 |
图8-3 ROM阵列逻辑图
可编程只读存储器(PROM)是在固定存储器的基础上设计出来的一种只读存储器。其总体结构与固定存储器一样,由地址译码器、存储单元矩阵和输出电路组成,但基本存储单元和输出电路与前者不同。数据一旦写入可编程只读存储器中,不可再做修改。可编程只读存储器相当于用户自己完成只读存储器生产中写入信息的工序,其余与掩膜只读存储器完全相同,适用于小批量生产。
可编程只读存储器的基本结构有熔丝型和结破坏型两种。
熔丝型可编程只读存储器存储单元的原理图如图8-4所示。它由三极管和串在发射极上的快速熔断丝组成。三极管的be结相当于只读存储器中接在字线与位线间的二极管,熔丝用很细的低熔点合金丝或多晶硅导线制成,在正常工作电流下熔丝不会熔断,但在编程电流(一般是正常工作电流的几倍)下会立即熔断。
可编程只读存储器存储单元矩阵的所有存储单元都由图8-4所示的基本结构组成。可编程只读存储器在出厂时,其所有存储单元的熔丝都是通的,也即内容全部为1。当用户需要写入信息,即编程时,应将需要写入0的存储单元的熔丝熔断。熔断过程是:输入相应的要写入0的单元的地址,使选中字线为高电平,同时在编程单元的位线上加编程脉冲(幅度大约20V,持续时间十几微秒),较大的脉冲电流从VCC经三极管流过熔丝,将其熔断,这样0就存入了该存储单元。
结破坏型可编程只读存储器出厂时,字线、位线交叉处均接有一对正、反连接的二极管,如图8-5所示。由于反向连接的二极管不导通,使存储单元呈现一种逻辑状态;若使用规定的电流将反向连接的二极管击穿短路,则剩下的正向连接二极管便导通,使该存储单元呈现另一种逻辑状态。利用这一原理,用户便可将自己的数据写入可编程只读存储器中。
图8-4 熔丝型可编程只读存储器的存储单元 图8-5 结破坏型可编程只读存储器的存储单元
可擦除可编程只读存储器可多次擦除多次编程,适用于需要经常修改存储内容的场合。根据擦除存储内容方式的不同,可分为紫外线可擦除可编程只读存储器(Ultra-Violet Erasable Programmable Read-Only Memory,UVEPROM或EPROM)和电信号可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM或E2PROM)。20世纪80年代末问世的快闪存储器(Flash Memory,闪存)也是一种电信号可擦除可编程只读存储器。
图8-6 EPROM存储单元 |
紫外线可擦除可编程只读存储器出厂时,所有EPROM管的浮栅不带电荷,EPROM管不导通,位线呈1状态;若FAMOS管的漏极接正常工作电压的正电压(+25V),则漏-源极间产生“雪崩”击穿,浮栅累聚正电荷,使FAMOS导通,位线呈0状态。待高电压撤销后,由于浮栅中的电荷无法泄漏,所存信息不会丢失。若用可编程只读存储器芯片上的石英玻璃窗口,一段时间后,所有FAMOS浮栅中的电荷都会消失,紫外线可擦除可编程只读存储器恢复到全1的初始状态,又可以重新写入新的内容。
实际中,使用专门的编程器和擦除器对芯片进行写入和擦除操作,擦除时将芯片的全部内容擦除。擦除达到一定次数后,绝缘层将被永久性击穿,芯片损坏,所以应尽量减少重写次数。另外,在阳光或日光等照射下,也会引起片内信息丢失,应注意用保护膜遮盖窗口。紫外线可擦除可编程只读存储器常用于实验性开发和限量生产中。
虽然紫外线可擦除可编程只读存储器可多次擦除多次编程,但编程电压高于工作电压,擦除操作复杂、速度慢,而且只能整体擦除,不能按位擦除。电信号可擦除可编程只读存储器就是为克服这些缺点而研制出来的。它的存储单元的内容不需要紫外线照射,而只需加电即可擦除。
电信号可擦除可编程只读存储器存储单元采用浮栅隧道氧化层MOS管(Floating-gate Tunnel Oxide ,Flotox管)。Flotox管的浮栅与漏极之间有一个极薄(厚度在2×10-8m以下)的氧化层区域(称为隧道区)。当漏极接地,控制栅加上足够高的电压,隧道区的电场强度足够大时(>107V/cm),漏极和浮栅间将出现导电隧道,电子可穿过绝缘层到达浮栅,向浮栅注入电流,使其带有负电荷,这种现象称为隧道效应。反之,控制栅接地,漏极接正电压,与上述过程相反,浮栅放电,电荷将泄漏掉。可见,利用浮栅是否存有负电荷可区分存储1或0
图8-7 Flotox管组成的存储单元
|
Flotox管组成的存储单元如图8-7所示。Flotox管的各电极所加电压不同,有读出、写入和擦除3种不同的工作状态。读出时,控制栅上加+3 V电压,字线给出+5 V正常电平,这时T2管导通,若浮栅上有负电荷(假设Flotox管的浮栅上充有负电荷代表存储单元存储的数据为1),则在位线上可读出1,否则,读出0。写入时,在要写入0的存储单元的控制栅加低电平,同时,相应单元的字线和位线上加20V左右、10ms宽的正脉冲,使浮栅上存储的电荷通过隧道区泄漏,即可完成写0操作。擦除时,控制栅和要擦除的单元的字线上加20V左右、10ms宽的正脉冲,漏极接低电平,即可使存储单元回到写入0前的状态,完成擦除操作。
由此可见,对于电信号可擦除可编程只读存储器来说,编程和擦除都是用电信号完成,所需电流小,不需要专门的编程器和擦写器,既可一次全部擦除,也可按位擦除,方便数字系统的在线调试。
图8-8 快闪存储器的存储单元 |
快闪存储器的结构与紫外线可擦除可编程只读存储器存储单元的结构很相似,但快闪存储器的浮栅与衬底间的氧化层的厚度更薄(快闪存储器厚度为10~15nm,紫外线可擦除可编程只读存储器厚度为30~40nm),而且浮栅和源区重叠的部分由源区横向扩散形成,面积很小,使浮栅-源区间的电容较浮栅-控制栅间的电容小得多,使快闪存储器在性能上有了很大进步。
快闪存储器也有读出、写入和擦除3种不同的工作状态。读出时,字线接+5 V高电平,若浮栅上有负电荷,读出高电平,否则,读出低电平。写入时,位线接+5 V左右的高电平,源极VSS接0电平,在要写入的存储单元的控制栅加12V左右、10ms的正脉冲,给浮栅充电可完成写操作。擦除时,控制栅加0电平,VSS加2V左右、100ms宽的正脉冲,浮栅电荷经隧道区释放,擦除了存储单元的内容。擦除时将擦除芯片中全部存储单元的内容。
目前,由于快闪存储器芯片具有非易失性、断电后仍能长久保存信息、集成度高、成本低、擦写速度快等特点,正被用来取代紫外线可擦除可编程只读存储器和电信号可擦除可编程只读存储器。快闪存储器将逐渐成为较大容量磁性存储器的替代产品。