第七章 半导体存储器数字信息在运算或处理过程中,需要使用专门的存储器进行较长时间的存储,正是因为有了存储器,计算机才有了对信息的记忆功能。存储器的种类很多,本章主要讨论半导体存储器。半导体存储器以其品种多、容量大、速度快、耗电省、体积小、操作方便、维护容易等优点,在数字设备中得到广泛应用。目前,微型计算机的内存普遍采用了大容量的半导体存储器。
存储器——用以存储一系列二进制数码的器件。
半导体存储器的分类根据使用功能的不同,半导体存储器可分为随机存取存储器(RAM—Random Access Memory)和只读存储器(ROM—Read-Only memory)。
按照存储机理的不同,RAM又可分为静态RAM和动态RAM。
存储器的容量存储器的容量=字长(n)×字数(m)
7.1随机存取存储器(RAM)
随机存取存储器简称RAM,也叫做读/写存储器,既能方便地读出所存数据,又能随时写入新的数据。RAM的缺点是数据的易失性,即一旦掉电,所存的数据全部丢失。
一,RAM的基本结构由存储矩阵、地址译码器、读写控制器、输入/输出控制、片选控制等几部分组成。
图7.1—1 RAM的结构示意框图
1,存储矩阵
RAM的核心部分是一个寄存器矩阵,用来存储信息,称为存储矩阵。
图7.1—5所示是1024×1位的存储矩阵和地址译码器。属多字1位结构,1024个字排列成32×32的矩阵,中间的每一个小方块代表一个存储单元。为了存取方便,给它们编上号,32行编号为X0、X1、…、X31,32列编号为Y0、Y1、…、Y31。这样每一个存储单元都有了一个固定的编号(Xi行、Yj列),称为地址。
图7.1-5 1024×1位RAM的存储矩阵址译码器址译码器的作用,是将寄存器地址所对应的二进制数译成有效的行选信号和列选信号,从而选中该存储单元。
存储器中的地址译码器常用双译码结构。上例中,行地址译码器用5输入32输出的译码器,地址线(译码器的输入)为A0、A1,…、A4,输出为X0、X1、…、X31;列地址译码器也用5输入32输出的译码器,地址线(译码器的输入)为A5、A6,…、A9,输出为Y0、Y1、…、Y31,这样共有10条地址线。例如,输入地址码A9A8A7A6A5A4A3A2A1A0=0000000001,则行选线X1=1、列选线Y0=1,选中第X1行第Y0列的那个存储单元。从而对该寄存器进行数据的读出或写入。
3,读/写控制访问RAM时,对被选中的寄存器,究竟是读还是写,通过读/写控制线进行控制。如果是读,则被选中单元存储的数据经数据线、输入/输出线传送给CPU;如果是写,则CPU将数据经过输入/输出线、数据线存入被选中单元。
一般RAM的读/写控制线高电平为读,低电平为写;也有的RAM读/写控制线是分开的,一根为读,另一根为写。
4,输入/输出
RAM通过输入/输出端与计算机的中央处理单元(CPU)交换数据,读出时它是输出端,写入时它是输入端,即一线二用,由读/写控制线控制。输入/输出端数据线的条数,与一个地址中所对应的寄存器位数相同,例如在1024×1位的RAM中,每个地址中只有1个存储单元(1位寄存器),因此只有1条输入/输出线;而在256×4位的RAM中,每个地址中有4个存储单元(4位寄存器),所以有4条输入/输出线。也有的RAM输入线和输出线是分开的。RAM的输出端一般都具有集电极开路或三态输出结构。
5,片选控制由于受RAM的集成度限制,一台计算机的存储器系统往往是由许多片RAM组合而成。CPU访问存储器时,一次只能访问RAM中的某一片(或几片),即存储器中只有一片(或几片)RAM中的一个地址接受CPU访问,与其交换信息,而其他片RAM与CPU不发生联系,片选就是用来实现这种控制的。通常一片RAM有一根或几根片选线,当某一片的偏选线接入有效电平时,该片被选中,地址译码器的输出信号控制该片某个地址的寄存器与CPU接通;当片选线接入无效电平时,则该片与CPU之间处于断开状态。
6,RAM的输入/输出控制电路图7.1—2给出了一个简单的输入/输出控制电路。
图7.1—2 输入/输出控制电路当选片信号CS=1时,G5、G4输出为0,三态门G1、G2、G3均处于高阻状态,输入/输出(I/O)端与存储器内部完全隔离,存储器禁止读/写操作,即不工作。
当CS=0时,芯片被选通:
当=1时,G5输出高电平,G3被打开,于是被选中的单元所存储的数据出现在I/O端,存储器执行读操作;
当=0时,G4输出高电平,G1、G2被打开,此时加在I/O端的数据以互补的形式出现在内部数据线上,并被存入到所选中的存储单元,存储器执行写操作。
7,RAM的工作时序为保证存储器准确无误地工作,加到存储器上的地址、数据和控制信号必须遵守几个时间边界条件。
图7.1—3示出了RAM读出过程的定时关系。读出操作过程如下:
欲读出单元的地址加到存储器的地址输入端;
加入有效的选片信号CS;
在线上加高电平,经过一段延时后,所选择单元的内容出现在I/O端;
让选片信号CS无效,I/O端呈高阻态,本次读出过程结束。
由于地址缓冲器、译码器及输入/输出电路存在延时,在地址信号加到存储器上之后,必须等待一段时间tAA,数据才能稳定地传输到数据输出端,这段时间称为地址存取时间。如果在RAM的地址输入端已经有稳定地址的条件下,加入选片信号,从选片信号有效到数据稳定输出,这段时间间隔记为tACS。显然在进行存储器读操作时,只有在地址和选片信号加入,且分别等待tAA和tACS以后,被读单元的内容才能稳定地出现在数据输出端,这两个条件必须同时满足。图中tRC为读周期,他表示该芯片连续进行两次读操作必须的时间间隔。
图7.1—3 RAM读操作时序图
写操作的定时波形如图7.1—4所示。写操作过程如下:
将欲写入单元的地址加到存储器的地址输入端;
在选片信号CS端加上有效电平,使RAM选通;
将待写入的数据加到数据输入端;
在线上加入低电平,进入写工作状态;
使选片信号无效,数据输入线回到高阻状态。
由于地址改变时,新地址的稳定需要经过一段时间,如果在这段时间内加入写控制信号(即变低),就可能将数据错误地写入其他单元。为防止这种情况出现,在写控制信号有效前,地址必须稳定一段时间tAS,这段时间称为地址建立时间。同时在写信号失效后,地址信号至少还要维持一段写恢复时间tWR。为了保证速度最慢的存储器芯片的写入,写信号有效的时间不得小于写脉冲宽度tWP。此外,对于写入的数据,应在写信号tDW时间内保持稳定,且在写信号失效后继续保持tDH时间。在时序图中还给出了写周期tWC,它反应了连续进行两次写操作所需要的最小时间间隔。对大多数静态半导体存储器来说,读周期和写周期是相等的,一般为十几到几十ns。
图7.1—4 RAM写操作时序图二,RAM的存储单元存储单元是存储器的核心部分。按工作方式不同可分为静态和动态两类,按所用元件类型又可分为双极型和MOS型两种,因此存储单元电路形式多种多样。
1、六管NMOS静态存储单元由六只NMOS管(T1~T6)组成。T1与T2构成一个反相器,T3与T4构成另一个反相器,两个反相器的输入与输出交叉连接,构成基本触发器,作为数据存储单元。
T1导通、T3截止为0状态,T3导通、T1截止为1状态。
T5、T6是门控管,由Xi线控制其导通或截止,他们用来控制触发器输出端与位线之间的连接状态。T7、T8也是门控管,其导通与截止受Yi线控制,他们是用来控制位线与数据线之间连接状态的,工作情况与T5、T6类似。但并不是每个存储单元都需要这两只管子,而是一列存储单元用两只(见图7.1-3)。所以,只有当存储单元所在的行、列对应的Xi、Yi线均为1时,该单元才与数据线接通,才能对它进行读或写,这种情况称为选中状态。
图7.1-6 六管NMOS静态存储单元双极型晶体管存储单元图7.1-8是一个双极型晶体管存储单元电路,它用两只多发射极三极管和两只电阻构成一个触发器,一对发射极接在同一条字线上,另一对发射极分别接在位线B和上。
在维持状态,字线电位约为0.3V,低于位线电位(约1.1V),因此存储单元中导通管的电流由字线流出,而与位线连接的两个发射结处于反偏状态,相当于位线与存储器断开。处于维持状态的存储单元可以是T1导通、T2截止(称为0状态),也可以是T2导通、T1截止(称为1状态)。
当单元被选中时,字线电位被提高到2.2V左右,位线的电位低于字线,于是导通管的电流转而从位线流出。
如果要读出,只要检测其中一条位线有无电流即可。例如可以检测位线,若存储单元为1状态,则T2导通,电流由线流出,经过读出放大器转换为电压信号,输出为1;若存储单元为0状态,则T2截止,线中无电流,读出放大器无输入信号,输出为0。
如果要写入1,则存储器输入端的1信号通过写入电路使B=1、=0,将位线B切断(无电流),迫使T1截止,T2导通,T2的电流由位线流出。当字线恢复到低电平后,T2电流再转向字线,而存储单元状态不变,这样就完成了写1;若要写0,则令B=0,=1,使位线切断,迫使T2截止、T1导通。
图7.1—8 双极型晶体管存储单元
3.四管动态MOS存储单元动态MOS存储单元存储信息的原理,是利用MOS管栅极电容具有暂时存储信息的作用。由于漏电流的存在,栅极电容上存储的电荷不可能长久保持不变,因此为了及时补充漏掉的电荷,避免存储信息丢失,需要定时地给栅极电容补充电荷,通常把这种操作称作刷新或再生。
图7.1—9所示是四管动态MOS存储单元电路。T1和T2交叉连接,信息(电荷)存储在C1、C2上。C1、C2上的电压控制T1、T2的导通或截止。当C1充有电荷(电压大于T1的开启电压),C2没有电荷(电压小于T2的开启电压)时,T1导通、T2截止,我们称此时存储单元为0状态;当C2充有电荷,C1没有电荷时,T2导通、T1截止,我们则称此时存储单元为1状态。T3和T4是门控管,控制存储单元与位线的连接。
T5和T6组成对位线的预充电电路,并且位一列中所有存储单元所共用。在访问存储器开始时,T5和T6栅极上加“预充”脉冲,T5、T6导通,位线B和被接到电源VDD而变为高电平。当预充脉冲消失后,T5、T6截止,位线与电源VDD断开,但由于位线上分布电容CB和的作用,可使位线上的高电平保持一段时间。
在位线保持为高电平期间,当进行读操作时,X线变为高电平,T3和T4导通,若存储单元原来为0态,即T1导通、T2截止,G2点为低电平,G1点为高电平,此时CB通过导通的T3和T1放电,使位线B变为低电平,而由于T2截止,虽然此时T4导通,位线仍保持为高电平 ,这样就把存储单元的状态读到位线B和上。如果此时Y线亦为高电平,则B、的信号将通过数据线被送至RAM的输出端。
位线的预充电电路起什么作用呢?在T3、T4导通期间,如果位线没有事先进行预充电,那么位线的高电平只能靠C1通过T4对充电建立,这样C1上将要损失掉一部分电荷。由于位线上连接的元件较多,甚至比C1还要大,这就有可能在读一次后便破坏了G1的高电平,是存储的信息丢失。采用了预充电电路后,由于位线的电位比G1的电位还要高一些,所以在读出时,C1上的电荷不但不会损失,反而还会通过T4对C1再充电,使C1上的电荷得到补充,即进行一次刷新。
当进行写操作时,RAM的数据输入端通过数据线、位线控制存储单元改变状态,把信息存入其中。
图7.1—9 四管动态MOS存储单元三,RAM的容量扩展在实际应用中,经常需要大容量的RAM。在单片RAM芯片容量不能满足要求时,就需要进行扩展,将多片RAM组合起来,构成存储器系统(也称存储体)。
1.位扩展用8片1024(1K)×1位RAM构成的1024×8位RAM系统。
图7.1—12 1K×1位RAM扩展成1K×8位RAM
字扩展用8片1K×8位RAM构成的8K×8位RAM。
图中输入/输出线,读/写线和地址线A0~A9是并联起来的,高位地址码A10、A11和A12经74138译码器8个输出端分别控制8片1K×8位RAM的片选端,以实现字扩展。
图7.1—13 1K×8位RAM扩展成8K×8位RAM
如果需要,我们还可以采用位与字同时扩展的方法扩大RAM的容量。
四,RAM的芯片简介芯片引脚排列图图7.1—14所示是2K×8位静态CMOS RAM6116的引脚排列图。A0~A10是地址码输入端,D0~D7是数据输出端,是选片端,是输出使能端,是写入控制端。
图7.1—14 静态RAM 6116引脚排列图芯片工作方式和控制信号之间的关系表7.1—1所列是6116的工作方式与控制信号之间的关系,读出和写入线是分开的,而且写入优先。
表7.1—1 静态RAM6116工作方式与控制信号之间的关系
工作状态
1 × × × 高 阻 态 低功耗维持
0 0 1 稳定 输 出 读
0 × 0 稳定 输 入 写
7.2 只读存储器(ROM)
只读存储器因工作时其内容只能读出而得名,常用于存储数字系统及计算机中不需改写的数据,例如数据转换表及计算机操作系统程序等。ROM(Read-Only Memory)存储的数据不会因断电而消失,即具有非易失性。
一,ROM的分类与RAM不同,ROM一般需由专用装置写入数据。按照数据写入方式特点不同,ROM可分为以下几种:
(1)固定ROM。也称掩膜ROM,这种ROM在制造时,厂家利用利用掩膜技术直接把数据写入存储器中,ROM制成后,其存储的数据也就固定不变了,用户对这类芯片无法进行任何修改。
(2)一次性可编程ROM(PROM)。PROM在出厂时,存储内容全为1(或全为0),用户可根据自己的需要,利用编程器将某些单元改写为0(或1)。PROM一旦进行了编程,就不能再修改了。
(3)光可擦除可编程ROM(EPROM)。EPROM是采用浮栅技术生产的可编程存储器,它的存储单元多采用N沟道叠栅MOS管,信息的存储是通过MOS管浮栅上的电荷分布来决定的,编程过程就是一个电荷注入过程。编程结束后,尽管撤除了电源,但是,由于绝缘层的包围,注入到浮栅上的电荷无法泄漏,因此电荷分布维持不变,EPROM也就成为非易失性存储器件了。
当外部能源(如紫外线光源)加到EPROM上时,EPROM内部的电荷分布才会被破坏,此时聚集在MOS管浮栅上的电荷在紫外线照射下形成光电流被泄漏掉,使电路恢复到初始状态,从而擦除了所有写入的信息。这样EPROM又可以写入新的信息。
(4)电可擦除可编程ROM(E2PROM)。E2PROM也是采用浮栅技术生产的可编程ROM,但是构成其存储单元的是隧道MOS管,隧道MOS管也是利用浮栅是否存有电荷来存储二值数据的,不同的是隧道MOS管是用电擦除的,并且擦除的速度要快的多(一般为毫秒数量级)。
E2PROM的电擦除过程就是改写过程,它具有ROM的非易失性,又具备类似RAM的功能,可以随时改写(可重复擦写1万次以上)。目前,大多数E2PROM芯片内部都备有升压电路。因此,只需提供单电源供电,便可进行读、擦除/写操作,这为数字系统的设计和在线调试提供了极大方便。
(5)快闪存储器(Flash Memory)。快闪存储器的存储单元也是采用浮栅型MOS管,存储器中数据的擦除和写入是分开进行的,数据写入方式与EPROM相同,需要输入一个较高的电压,因此要为芯片提供两组电源。一个字的写入时间约为200微秒,一般一只芯片可以擦除/写入100次以上。
二.ROM的结构及工作原理
ROM的内部结构由地址译码器和存储矩阵组成,图7.2—2所示是ROM的内部结构示意图。
图7.2—2 ROM的内部结构示意图
ROM的基本工作原理
(1)电路组成
图7.2—3 二极管ROM电路输入地址码是A1A0,输出数据是D3D2D1D0。输出缓冲器用的是三态门,它有两个作用,一是提高带负载能力;二是实现对输出端状态的控制,以便于和系统总线的连接。
其中与门阵列组成译码器,或门阵列构成存储阵列,其存储容量为4×4=16位。
(2)输出信号表达式与门阵列输出表达式:
或门阵列输出表达式:
(3)ROM输出信号的真值表表7.2—1 ROM输出信号真值表
A1 A0 D3 D2 D1 D0`
0 0 0 1 0 1
0 1 1 0 1 0
1 0 0 1 1 1
1 1 1 1 1 0
(4)功能说明从存储器角度看,A1A0是地址码,D3D2D1D0是数据。表7.2—1说明:在00地址中存放的数据是0101;01地址中存放的数据是1010,10地址中存放的是0111,11地址中存放的是1110。
从函数发生器角度看,A1、、A0是两个输入变量,D3、D2、D1、、D0是4个输出函数。表7.2—1说明:当变量A1、、A0取值为00时,函数D3=0、D2=1、D1=0、、D0=1;当变量A1、、A0取值为01时,函数D3=1、D2=0、D1=1、、D0=0;…。
从译码编码角度看,与门阵列先对输入的二进制代码A1A0进行译码,得到4个输出信号W0、W1、W2、W3,再由或门阵列对W0~W3 4个信号进行编码。表7.2—1说明:W0的编码是0101;W1的编码是1010;W2的编码是0111;W3的编码是1110。
三,ROM的应用
1.作函数运算表电路数学运算是数控装置和数字系统中需要经常进行的操作,如果事先把要用到的基本函数变量在一定范围内的取值和相应的函数取值列成表格,写入只读存储器中,则在需要时只要给出规定“地址”就可以快速地得到相应的函数值。这种ROM,实际上已经成为函数运算表电路。
【例7.2—1】试用ROM构成能实现函数y=x2的运算表电路,x的取值范围为0~15的正整数。
【解】(1)分析要求、设定变量自变量x的取值范围为0~15的正整数,对应的4位二进制正整数,用B=B3B2B1B0表示。根据y=x2的运算关系,可求出y的最大值是152=225,可以用8位二进制数Y=Y7Y6Y5Y4Y3Y2Y1Y0表示。
(2)列真值表—函数运算表表7.2—2 例7.2—1中Y的真值表
B3 B2 B1 B0 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 十进制数
0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 1 1
0 0 1 0 0 0 0 0 0 1 0 0 4
0 0 1 1 0 0 0 0 1 0 0 1 9
0 1 0 0 0 0 0 1 0 0 0 0 16
0 1 0 1 0 0 0 1 1 0 0 1 25
0 1 1 0 0 0 1 0 0 1 0 0 36
0 1 1 1 0 0 1 1 0 0 0 1 49
1 0 0 0 0 1 0 0 0 0 0 0 64
1 0 0 1 0 1 0 1 0 0 0 1 81
1 0 1 0 0 1 1 0 0 1 0 0 100
1 0 1 1 0 1 1 1 1 0 0 1 121
1 1 0 0 1 0 0 1 0 0 0 0 144
1 1 0 1 1 0 1 0 1 0 0 1 169
1 1 1 0 1 1 0 0 0 1 0 0 196
1 1 1 1 1 1 1 0 0 0 0 1 225
(3)写标准与或表达式
Y7=m12+m13+m14+m15
Y6=m8+m9+m10+m11+m14+m15
Y5=m6+m7+m10+m11+m13+m15
Y4=m4+m5+m7+m9+m11+m12
Y3=m3+m5+m11+m13
Y2=m2+m6+m10+m14
Y1=0
Y0= m1+m3+m5+m7+m9+m11+m13+m15
(4)画ROM存储矩阵节点连接图为做图方便,可将ROM矩阵中的二极管用节点表示。
图7.2—5 例7.2—1 ROM存储矩阵连接图在图7.2—5所示电路中,字线W0~W15分别与最小项m0~m15一一对应,我们注意到作为地址译码器的与门阵列,其连接是固定的,它的任务是完成对输入地址码(变量)的译码工作,产生一个个具体的地址—地址码(变量)的全部最小项;而作为存储矩阵的或门阵列是可编程的,各个交叉点—可编程点的状态,也就是存储矩阵中的内容,可由用户编程决定。
当我们把ROM存储矩阵做一个逻辑部件应用时,可将其用方框图表示。
图7.2—6 例7.2—1ROM的方框图表示方法
2.实现任意组合逻辑函数从ROM的逻辑结构示意图可知,只读存储器的基本部分是与门阵列和或门阵列,与门阵列实现对输入变量的译码,产生变量的全部最小项,或门阵列完成有关最小项的或运算,因此从理论上讲,利用ROM可以实现任何组合逻辑函数。
【例7.2—2】试用ROM实现下列函数:
【解】
1,写出各函数的标准与或表达式按A、B、C、D顺序排列变量,将Y1、Y2扩展成为四变量逻辑函数。
2,选用16×4位ROM,画存储矩阵连线图
图7.2—7 例7.2—2 ROM存储矩阵连线图四.常用的EPROM 举例——2764
标准28脚双列直插EPROM 2764逻辑符号
Intel 2764 EPROM 的外形和引脚信号在正常使用时,VCC=+5V、VIH为高电平,即VPP引脚接+5V、引脚接高电平,数据由数据总线输出。在进行编程时,引脚接低电平,VPP引脚接高电平(编程电平+25V),数据由数据总线输入。
:输出使能端,用来决定是否将ROM的输出送到数据总线上去,当=0时,输出可以被使能,当=1时,输出被禁止,ROM数据输出端为高阻态。
:片选端,用来决定该片ROM是否工作,当=0时,ROM工作,当=1时,ROM停止工作,且输出为高阻态(无论为何值)。
ROM输出能否被使能决定于+的结果,当+=0时,ROM输出使能,否则将被禁止,输出端为高阻态。另外,当=1时,还会停止对ROM内部的译码器等电路供电,其功耗降低到ROM工作时的10%以下。这样会使整个系统中ROM芯片的总功耗大大降低。
五.ROM容量的扩展
(1)字长的扩展。(现有型号的EPROM,输出多为8位。)
如图所示是将两片2764扩展成16k×16位EPROM的连线图。
(2)字数扩展。
用8片2764扩展成64k×8位EPROM
本章小节
1.半导体存储器是现代数字系统特别是计算机系统中的重要组成部件,它可分为RAM和ROM两大类,绝大多数属于MOS工艺制成的大规模数字集成电路。
2.RAM是一种时序逻辑电路,具有记忆功能。其它存储的数据随电源断电而消失,因此是一种易失性的读写存储器。它包含有SRAM和DRAM两种类型,前者用触发器记忆数据,后者靠MOS管栅极电容存储数据。因此,在不停电的情况下,SRAM的数据可以长久保持,而DRAM则必需定期刷新。
3.ROM是一种非易失性的存储器,它存储的是固定数据,一般只能被读出。根据数据写入方式的不同,ROM又可分成固定ROM和可编程ROM。后者又可细分为PROM、EPROM、E2PROM和快闪存储器等,特别是E2ROM和快闪存储器可以进行电擦写,已兼有了RAM的特性。
4.从逻辑电路构成的角度看,ROM是由与门阵列和或门阵列构成的组合逻辑电路。ROM的输出是输入最小项的组合,因此采用ROM可方便地实现各种逻辑函数。随着大规模集成电路成本的不断下降,利用ROM构成各种组合、时序电路,愈来愈具有吸引力。
存储器——用以存储一系列二进制数码的器件。
半导体存储器的分类根据使用功能的不同,半导体存储器可分为随机存取存储器(RAM—Random Access Memory)和只读存储器(ROM—Read-Only memory)。
按照存储机理的不同,RAM又可分为静态RAM和动态RAM。
存储器的容量存储器的容量=字长(n)×字数(m)
7.1随机存取存储器(RAM)
随机存取存储器简称RAM,也叫做读/写存储器,既能方便地读出所存数据,又能随时写入新的数据。RAM的缺点是数据的易失性,即一旦掉电,所存的数据全部丢失。
一,RAM的基本结构由存储矩阵、地址译码器、读写控制器、输入/输出控制、片选控制等几部分组成。
图7.1—1 RAM的结构示意框图
1,存储矩阵
RAM的核心部分是一个寄存器矩阵,用来存储信息,称为存储矩阵。
图7.1—5所示是1024×1位的存储矩阵和地址译码器。属多字1位结构,1024个字排列成32×32的矩阵,中间的每一个小方块代表一个存储单元。为了存取方便,给它们编上号,32行编号为X0、X1、…、X31,32列编号为Y0、Y1、…、Y31。这样每一个存储单元都有了一个固定的编号(Xi行、Yj列),称为地址。
图7.1-5 1024×1位RAM的存储矩阵址译码器址译码器的作用,是将寄存器地址所对应的二进制数译成有效的行选信号和列选信号,从而选中该存储单元。
存储器中的地址译码器常用双译码结构。上例中,行地址译码器用5输入32输出的译码器,地址线(译码器的输入)为A0、A1,…、A4,输出为X0、X1、…、X31;列地址译码器也用5输入32输出的译码器,地址线(译码器的输入)为A5、A6,…、A9,输出为Y0、Y1、…、Y31,这样共有10条地址线。例如,输入地址码A9A8A7A6A5A4A3A2A1A0=0000000001,则行选线X1=1、列选线Y0=1,选中第X1行第Y0列的那个存储单元。从而对该寄存器进行数据的读出或写入。
3,读/写控制访问RAM时,对被选中的寄存器,究竟是读还是写,通过读/写控制线进行控制。如果是读,则被选中单元存储的数据经数据线、输入/输出线传送给CPU;如果是写,则CPU将数据经过输入/输出线、数据线存入被选中单元。
一般RAM的读/写控制线高电平为读,低电平为写;也有的RAM读/写控制线是分开的,一根为读,另一根为写。
4,输入/输出
RAM通过输入/输出端与计算机的中央处理单元(CPU)交换数据,读出时它是输出端,写入时它是输入端,即一线二用,由读/写控制线控制。输入/输出端数据线的条数,与一个地址中所对应的寄存器位数相同,例如在1024×1位的RAM中,每个地址中只有1个存储单元(1位寄存器),因此只有1条输入/输出线;而在256×4位的RAM中,每个地址中有4个存储单元(4位寄存器),所以有4条输入/输出线。也有的RAM输入线和输出线是分开的。RAM的输出端一般都具有集电极开路或三态输出结构。
5,片选控制由于受RAM的集成度限制,一台计算机的存储器系统往往是由许多片RAM组合而成。CPU访问存储器时,一次只能访问RAM中的某一片(或几片),即存储器中只有一片(或几片)RAM中的一个地址接受CPU访问,与其交换信息,而其他片RAM与CPU不发生联系,片选就是用来实现这种控制的。通常一片RAM有一根或几根片选线,当某一片的偏选线接入有效电平时,该片被选中,地址译码器的输出信号控制该片某个地址的寄存器与CPU接通;当片选线接入无效电平时,则该片与CPU之间处于断开状态。
6,RAM的输入/输出控制电路图7.1—2给出了一个简单的输入/输出控制电路。
图7.1—2 输入/输出控制电路当选片信号CS=1时,G5、G4输出为0,三态门G1、G2、G3均处于高阻状态,输入/输出(I/O)端与存储器内部完全隔离,存储器禁止读/写操作,即不工作。
当CS=0时,芯片被选通:
当=1时,G5输出高电平,G3被打开,于是被选中的单元所存储的数据出现在I/O端,存储器执行读操作;
当=0时,G4输出高电平,G1、G2被打开,此时加在I/O端的数据以互补的形式出现在内部数据线上,并被存入到所选中的存储单元,存储器执行写操作。
7,RAM的工作时序为保证存储器准确无误地工作,加到存储器上的地址、数据和控制信号必须遵守几个时间边界条件。
图7.1—3示出了RAM读出过程的定时关系。读出操作过程如下:
欲读出单元的地址加到存储器的地址输入端;
加入有效的选片信号CS;
在线上加高电平,经过一段延时后,所选择单元的内容出现在I/O端;
让选片信号CS无效,I/O端呈高阻态,本次读出过程结束。
由于地址缓冲器、译码器及输入/输出电路存在延时,在地址信号加到存储器上之后,必须等待一段时间tAA,数据才能稳定地传输到数据输出端,这段时间称为地址存取时间。如果在RAM的地址输入端已经有稳定地址的条件下,加入选片信号,从选片信号有效到数据稳定输出,这段时间间隔记为tACS。显然在进行存储器读操作时,只有在地址和选片信号加入,且分别等待tAA和tACS以后,被读单元的内容才能稳定地出现在数据输出端,这两个条件必须同时满足。图中tRC为读周期,他表示该芯片连续进行两次读操作必须的时间间隔。
图7.1—3 RAM读操作时序图
写操作的定时波形如图7.1—4所示。写操作过程如下:
将欲写入单元的地址加到存储器的地址输入端;
在选片信号CS端加上有效电平,使RAM选通;
将待写入的数据加到数据输入端;
在线上加入低电平,进入写工作状态;
使选片信号无效,数据输入线回到高阻状态。
由于地址改变时,新地址的稳定需要经过一段时间,如果在这段时间内加入写控制信号(即变低),就可能将数据错误地写入其他单元。为防止这种情况出现,在写控制信号有效前,地址必须稳定一段时间tAS,这段时间称为地址建立时间。同时在写信号失效后,地址信号至少还要维持一段写恢复时间tWR。为了保证速度最慢的存储器芯片的写入,写信号有效的时间不得小于写脉冲宽度tWP。此外,对于写入的数据,应在写信号tDW时间内保持稳定,且在写信号失效后继续保持tDH时间。在时序图中还给出了写周期tWC,它反应了连续进行两次写操作所需要的最小时间间隔。对大多数静态半导体存储器来说,读周期和写周期是相等的,一般为十几到几十ns。
图7.1—4 RAM写操作时序图二,RAM的存储单元存储单元是存储器的核心部分。按工作方式不同可分为静态和动态两类,按所用元件类型又可分为双极型和MOS型两种,因此存储单元电路形式多种多样。
1、六管NMOS静态存储单元由六只NMOS管(T1~T6)组成。T1与T2构成一个反相器,T3与T4构成另一个反相器,两个反相器的输入与输出交叉连接,构成基本触发器,作为数据存储单元。
T1导通、T3截止为0状态,T3导通、T1截止为1状态。
T5、T6是门控管,由Xi线控制其导通或截止,他们用来控制触发器输出端与位线之间的连接状态。T7、T8也是门控管,其导通与截止受Yi线控制,他们是用来控制位线与数据线之间连接状态的,工作情况与T5、T6类似。但并不是每个存储单元都需要这两只管子,而是一列存储单元用两只(见图7.1-3)。所以,只有当存储单元所在的行、列对应的Xi、Yi线均为1时,该单元才与数据线接通,才能对它进行读或写,这种情况称为选中状态。
图7.1-6 六管NMOS静态存储单元双极型晶体管存储单元图7.1-8是一个双极型晶体管存储单元电路,它用两只多发射极三极管和两只电阻构成一个触发器,一对发射极接在同一条字线上,另一对发射极分别接在位线B和上。
在维持状态,字线电位约为0.3V,低于位线电位(约1.1V),因此存储单元中导通管的电流由字线流出,而与位线连接的两个发射结处于反偏状态,相当于位线与存储器断开。处于维持状态的存储单元可以是T1导通、T2截止(称为0状态),也可以是T2导通、T1截止(称为1状态)。
当单元被选中时,字线电位被提高到2.2V左右,位线的电位低于字线,于是导通管的电流转而从位线流出。
如果要读出,只要检测其中一条位线有无电流即可。例如可以检测位线,若存储单元为1状态,则T2导通,电流由线流出,经过读出放大器转换为电压信号,输出为1;若存储单元为0状态,则T2截止,线中无电流,读出放大器无输入信号,输出为0。
如果要写入1,则存储器输入端的1信号通过写入电路使B=1、=0,将位线B切断(无电流),迫使T1截止,T2导通,T2的电流由位线流出。当字线恢复到低电平后,T2电流再转向字线,而存储单元状态不变,这样就完成了写1;若要写0,则令B=0,=1,使位线切断,迫使T2截止、T1导通。
图7.1—8 双极型晶体管存储单元
3.四管动态MOS存储单元动态MOS存储单元存储信息的原理,是利用MOS管栅极电容具有暂时存储信息的作用。由于漏电流的存在,栅极电容上存储的电荷不可能长久保持不变,因此为了及时补充漏掉的电荷,避免存储信息丢失,需要定时地给栅极电容补充电荷,通常把这种操作称作刷新或再生。
图7.1—9所示是四管动态MOS存储单元电路。T1和T2交叉连接,信息(电荷)存储在C1、C2上。C1、C2上的电压控制T1、T2的导通或截止。当C1充有电荷(电压大于T1的开启电压),C2没有电荷(电压小于T2的开启电压)时,T1导通、T2截止,我们称此时存储单元为0状态;当C2充有电荷,C1没有电荷时,T2导通、T1截止,我们则称此时存储单元为1状态。T3和T4是门控管,控制存储单元与位线的连接。
T5和T6组成对位线的预充电电路,并且位一列中所有存储单元所共用。在访问存储器开始时,T5和T6栅极上加“预充”脉冲,T5、T6导通,位线B和被接到电源VDD而变为高电平。当预充脉冲消失后,T5、T6截止,位线与电源VDD断开,但由于位线上分布电容CB和的作用,可使位线上的高电平保持一段时间。
在位线保持为高电平期间,当进行读操作时,X线变为高电平,T3和T4导通,若存储单元原来为0态,即T1导通、T2截止,G2点为低电平,G1点为高电平,此时CB通过导通的T3和T1放电,使位线B变为低电平,而由于T2截止,虽然此时T4导通,位线仍保持为高电平 ,这样就把存储单元的状态读到位线B和上。如果此时Y线亦为高电平,则B、的信号将通过数据线被送至RAM的输出端。
位线的预充电电路起什么作用呢?在T3、T4导通期间,如果位线没有事先进行预充电,那么位线的高电平只能靠C1通过T4对充电建立,这样C1上将要损失掉一部分电荷。由于位线上连接的元件较多,甚至比C1还要大,这就有可能在读一次后便破坏了G1的高电平,是存储的信息丢失。采用了预充电电路后,由于位线的电位比G1的电位还要高一些,所以在读出时,C1上的电荷不但不会损失,反而还会通过T4对C1再充电,使C1上的电荷得到补充,即进行一次刷新。
当进行写操作时,RAM的数据输入端通过数据线、位线控制存储单元改变状态,把信息存入其中。
图7.1—9 四管动态MOS存储单元三,RAM的容量扩展在实际应用中,经常需要大容量的RAM。在单片RAM芯片容量不能满足要求时,就需要进行扩展,将多片RAM组合起来,构成存储器系统(也称存储体)。
1.位扩展用8片1024(1K)×1位RAM构成的1024×8位RAM系统。
图7.1—12 1K×1位RAM扩展成1K×8位RAM
字扩展用8片1K×8位RAM构成的8K×8位RAM。
图中输入/输出线,读/写线和地址线A0~A9是并联起来的,高位地址码A10、A11和A12经74138译码器8个输出端分别控制8片1K×8位RAM的片选端,以实现字扩展。
图7.1—13 1K×8位RAM扩展成8K×8位RAM
如果需要,我们还可以采用位与字同时扩展的方法扩大RAM的容量。
四,RAM的芯片简介芯片引脚排列图图7.1—14所示是2K×8位静态CMOS RAM6116的引脚排列图。A0~A10是地址码输入端,D0~D7是数据输出端,是选片端,是输出使能端,是写入控制端。
图7.1—14 静态RAM 6116引脚排列图芯片工作方式和控制信号之间的关系表7.1—1所列是6116的工作方式与控制信号之间的关系,读出和写入线是分开的,而且写入优先。
表7.1—1 静态RAM6116工作方式与控制信号之间的关系
工作状态
1 × × × 高 阻 态 低功耗维持
0 0 1 稳定 输 出 读
0 × 0 稳定 输 入 写
7.2 只读存储器(ROM)
只读存储器因工作时其内容只能读出而得名,常用于存储数字系统及计算机中不需改写的数据,例如数据转换表及计算机操作系统程序等。ROM(Read-Only Memory)存储的数据不会因断电而消失,即具有非易失性。
一,ROM的分类与RAM不同,ROM一般需由专用装置写入数据。按照数据写入方式特点不同,ROM可分为以下几种:
(1)固定ROM。也称掩膜ROM,这种ROM在制造时,厂家利用利用掩膜技术直接把数据写入存储器中,ROM制成后,其存储的数据也就固定不变了,用户对这类芯片无法进行任何修改。
(2)一次性可编程ROM(PROM)。PROM在出厂时,存储内容全为1(或全为0),用户可根据自己的需要,利用编程器将某些单元改写为0(或1)。PROM一旦进行了编程,就不能再修改了。
(3)光可擦除可编程ROM(EPROM)。EPROM是采用浮栅技术生产的可编程存储器,它的存储单元多采用N沟道叠栅MOS管,信息的存储是通过MOS管浮栅上的电荷分布来决定的,编程过程就是一个电荷注入过程。编程结束后,尽管撤除了电源,但是,由于绝缘层的包围,注入到浮栅上的电荷无法泄漏,因此电荷分布维持不变,EPROM也就成为非易失性存储器件了。
当外部能源(如紫外线光源)加到EPROM上时,EPROM内部的电荷分布才会被破坏,此时聚集在MOS管浮栅上的电荷在紫外线照射下形成光电流被泄漏掉,使电路恢复到初始状态,从而擦除了所有写入的信息。这样EPROM又可以写入新的信息。
(4)电可擦除可编程ROM(E2PROM)。E2PROM也是采用浮栅技术生产的可编程ROM,但是构成其存储单元的是隧道MOS管,隧道MOS管也是利用浮栅是否存有电荷来存储二值数据的,不同的是隧道MOS管是用电擦除的,并且擦除的速度要快的多(一般为毫秒数量级)。
E2PROM的电擦除过程就是改写过程,它具有ROM的非易失性,又具备类似RAM的功能,可以随时改写(可重复擦写1万次以上)。目前,大多数E2PROM芯片内部都备有升压电路。因此,只需提供单电源供电,便可进行读、擦除/写操作,这为数字系统的设计和在线调试提供了极大方便。
(5)快闪存储器(Flash Memory)。快闪存储器的存储单元也是采用浮栅型MOS管,存储器中数据的擦除和写入是分开进行的,数据写入方式与EPROM相同,需要输入一个较高的电压,因此要为芯片提供两组电源。一个字的写入时间约为200微秒,一般一只芯片可以擦除/写入100次以上。
二.ROM的结构及工作原理
ROM的内部结构由地址译码器和存储矩阵组成,图7.2—2所示是ROM的内部结构示意图。
图7.2—2 ROM的内部结构示意图
ROM的基本工作原理
(1)电路组成
图7.2—3 二极管ROM电路输入地址码是A1A0,输出数据是D3D2D1D0。输出缓冲器用的是三态门,它有两个作用,一是提高带负载能力;二是实现对输出端状态的控制,以便于和系统总线的连接。
其中与门阵列组成译码器,或门阵列构成存储阵列,其存储容量为4×4=16位。
(2)输出信号表达式与门阵列输出表达式:
或门阵列输出表达式:
(3)ROM输出信号的真值表表7.2—1 ROM输出信号真值表
A1 A0 D3 D2 D1 D0`
0 0 0 1 0 1
0 1 1 0 1 0
1 0 0 1 1 1
1 1 1 1 1 0
(4)功能说明从存储器角度看,A1A0是地址码,D3D2D1D0是数据。表7.2—1说明:在00地址中存放的数据是0101;01地址中存放的数据是1010,10地址中存放的是0111,11地址中存放的是1110。
从函数发生器角度看,A1、、A0是两个输入变量,D3、D2、D1、、D0是4个输出函数。表7.2—1说明:当变量A1、、A0取值为00时,函数D3=0、D2=1、D1=0、、D0=1;当变量A1、、A0取值为01时,函数D3=1、D2=0、D1=1、、D0=0;…。
从译码编码角度看,与门阵列先对输入的二进制代码A1A0进行译码,得到4个输出信号W0、W1、W2、W3,再由或门阵列对W0~W3 4个信号进行编码。表7.2—1说明:W0的编码是0101;W1的编码是1010;W2的编码是0111;W3的编码是1110。
三,ROM的应用
1.作函数运算表电路数学运算是数控装置和数字系统中需要经常进行的操作,如果事先把要用到的基本函数变量在一定范围内的取值和相应的函数取值列成表格,写入只读存储器中,则在需要时只要给出规定“地址”就可以快速地得到相应的函数值。这种ROM,实际上已经成为函数运算表电路。
【例7.2—1】试用ROM构成能实现函数y=x2的运算表电路,x的取值范围为0~15的正整数。
【解】(1)分析要求、设定变量自变量x的取值范围为0~15的正整数,对应的4位二进制正整数,用B=B3B2B1B0表示。根据y=x2的运算关系,可求出y的最大值是152=225,可以用8位二进制数Y=Y7Y6Y5Y4Y3Y2Y1Y0表示。
(2)列真值表—函数运算表表7.2—2 例7.2—1中Y的真值表
B3 B2 B1 B0 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 十进制数
0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0 0 1 1
0 0 1 0 0 0 0 0 0 1 0 0 4
0 0 1 1 0 0 0 0 1 0 0 1 9
0 1 0 0 0 0 0 1 0 0 0 0 16
0 1 0 1 0 0 0 1 1 0 0 1 25
0 1 1 0 0 0 1 0 0 1 0 0 36
0 1 1 1 0 0 1 1 0 0 0 1 49
1 0 0 0 0 1 0 0 0 0 0 0 64
1 0 0 1 0 1 0 1 0 0 0 1 81
1 0 1 0 0 1 1 0 0 1 0 0 100
1 0 1 1 0 1 1 1 1 0 0 1 121
1 1 0 0 1 0 0 1 0 0 0 0 144
1 1 0 1 1 0 1 0 1 0 0 1 169
1 1 1 0 1 1 0 0 0 1 0 0 196
1 1 1 1 1 1 1 0 0 0 0 1 225
(3)写标准与或表达式
Y7=m12+m13+m14+m15
Y6=m8+m9+m10+m11+m14+m15
Y5=m6+m7+m10+m11+m13+m15
Y4=m4+m5+m7+m9+m11+m12
Y3=m3+m5+m11+m13
Y2=m2+m6+m10+m14
Y1=0
Y0= m1+m3+m5+m7+m9+m11+m13+m15
(4)画ROM存储矩阵节点连接图为做图方便,可将ROM矩阵中的二极管用节点表示。
图7.2—5 例7.2—1 ROM存储矩阵连接图在图7.2—5所示电路中,字线W0~W15分别与最小项m0~m15一一对应,我们注意到作为地址译码器的与门阵列,其连接是固定的,它的任务是完成对输入地址码(变量)的译码工作,产生一个个具体的地址—地址码(变量)的全部最小项;而作为存储矩阵的或门阵列是可编程的,各个交叉点—可编程点的状态,也就是存储矩阵中的内容,可由用户编程决定。
当我们把ROM存储矩阵做一个逻辑部件应用时,可将其用方框图表示。
图7.2—6 例7.2—1ROM的方框图表示方法
2.实现任意组合逻辑函数从ROM的逻辑结构示意图可知,只读存储器的基本部分是与门阵列和或门阵列,与门阵列实现对输入变量的译码,产生变量的全部最小项,或门阵列完成有关最小项的或运算,因此从理论上讲,利用ROM可以实现任何组合逻辑函数。
【例7.2—2】试用ROM实现下列函数:
【解】
1,写出各函数的标准与或表达式按A、B、C、D顺序排列变量,将Y1、Y2扩展成为四变量逻辑函数。
2,选用16×4位ROM,画存储矩阵连线图
图7.2—7 例7.2—2 ROM存储矩阵连线图四.常用的EPROM 举例——2764
标准28脚双列直插EPROM 2764逻辑符号
Intel 2764 EPROM 的外形和引脚信号在正常使用时,VCC=+5V、VIH为高电平,即VPP引脚接+5V、引脚接高电平,数据由数据总线输出。在进行编程时,引脚接低电平,VPP引脚接高电平(编程电平+25V),数据由数据总线输入。
:输出使能端,用来决定是否将ROM的输出送到数据总线上去,当=0时,输出可以被使能,当=1时,输出被禁止,ROM数据输出端为高阻态。
:片选端,用来决定该片ROM是否工作,当=0时,ROM工作,当=1时,ROM停止工作,且输出为高阻态(无论为何值)。
ROM输出能否被使能决定于+的结果,当+=0时,ROM输出使能,否则将被禁止,输出端为高阻态。另外,当=1时,还会停止对ROM内部的译码器等电路供电,其功耗降低到ROM工作时的10%以下。这样会使整个系统中ROM芯片的总功耗大大降低。
五.ROM容量的扩展
(1)字长的扩展。(现有型号的EPROM,输出多为8位。)
如图所示是将两片2764扩展成16k×16位EPROM的连线图。
(2)字数扩展。
用8片2764扩展成64k×8位EPROM
本章小节
1.半导体存储器是现代数字系统特别是计算机系统中的重要组成部件,它可分为RAM和ROM两大类,绝大多数属于MOS工艺制成的大规模数字集成电路。
2.RAM是一种时序逻辑电路,具有记忆功能。其它存储的数据随电源断电而消失,因此是一种易失性的读写存储器。它包含有SRAM和DRAM两种类型,前者用触发器记忆数据,后者靠MOS管栅极电容存储数据。因此,在不停电的情况下,SRAM的数据可以长久保持,而DRAM则必需定期刷新。
3.ROM是一种非易失性的存储器,它存储的是固定数据,一般只能被读出。根据数据写入方式的不同,ROM又可分成固定ROM和可编程ROM。后者又可细分为PROM、EPROM、E2PROM和快闪存储器等,特别是E2ROM和快闪存储器可以进行电擦写,已兼有了RAM的特性。
4.从逻辑电路构成的角度看,ROM是由与门阵列和或门阵列构成的组合逻辑电路。ROM的输出是输入最小项的组合,因此采用ROM可方便地实现各种逻辑函数。随着大规模集成电路成本的不断下降,利用ROM构成各种组合、时序电路,愈来愈具有吸引力。