随机存取存储器(RAM)是一种正常工作时既能读又能写的存储器,故又称为读写存储器。RAM存储器通常用来存放数据、中间结果和最终结果等,是现代计算机不可缺少的一种半导体存储器。
RAM存储器通常可以分为静态RAM和动态RAM两大类,其差别主要在于基本存储电路存储信息的方式不同。前者依靠触发器存储二进制信息,后者依靠存储电容存储二进制信息。静态RAM的存储容量较小,动态RAM的存储容量较大。
RAM的基本结构由存储矩阵、地址译码器、读/写控制器、输入/输出控制、片选控制等几部分组成,如图5-3所示。
图5-3 RAM的结构示意框图
RAM的核心部分是一个寄存器矩阵,用来存储信息,称为存储矩阵。
图5-4所示是1024×1位的存储矩阵和地址译码器,属多字1位结构,1024个字排列成32×32的矩阵,中间的每一个小方块代表一个存储单元。为了存取方便,给它们编上号,32行编号为X0、X1、…、X31,32列编号为Y0、Y1、…、Y31。这样每一个存储单元都有了一个固定的编号(Xi行、Yj列),称为地址。
图5-4 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列的那个存储单元,从而对该寄存器进行数据的读出或写入。
访问RAM时,对被选中的寄存器究竟是读还是写,通过读/写控制线进行控制。如果是读,则被选中单元存储的数据经数据线、输入/输出线传送给CPU;如果是写,则CPU将数据经过输入/输出线、数据线存入被选中单元。
一般RAM的读/写控制线高电平为读,低电平为写;也有的RAM读/写控制线是分开的,一根为读,另一根为写。
RAM通过输入/输出端与计算机的中央处理单元(CPU)交换数据,读出时它是输出端,写入时它是输入端,即一线两用,由读/写控制线控制。输入/输出端数据线的条数,与一个地址中所对应的寄存器的位数相同,例如在1024×1位的RAM中,每个地址中只有一个存储单元(一位寄存器),因此只有一条输入/输出线;而在256×4位的RAM中,每个地址中有4个存储单元(4位寄存器),所以有4条输入/输出线;也有的RAM输入线和输出线是分开的。RAM的输出端一般都具有集电极开路或三态输出结构。
由于受RAM的集成度限制,一台计算机的存储器系统往往是由许多片RAM组合而成。CPU访问存储器时,一次只能访问RAM中的某一片(或几片),即存储器中只有一片(或几片)RAM中的一个地址接受CPU访问,与其交换信息,而其他片RAM与CPU不发生联系,片选就是用来实现这种控制的。通常一片RAM有一根或几根片选线,当某一片的片选线接入有效电平时,该片被选中,地址译码器的输出信号控制该片某个地址的寄存器与CPU接通;当片选线接入无效电平时,则该片与CPU之间处于断开状态。
图5-5给出了一个简单的输入/输出控制电路。
当选片信号CS=1时,G5、G4输出为0,三态门G1、G2、G3均处于高阻状态,输入/输出(I/O)端与存储器内部完全隔离,存储器禁止读/写操作,即不工作。
当CS=0时,芯片被选通:
当=1时,G5输出高电平,G3被打开,于是被选中的单元所存储的数据出现在I/O端,存储器执行读操作;
当=0时,G4输出高电平,G1、G2被打开,此时加在I/O端的数据以互补的形式出现在内部数据线上,并被存入到所选中的存储单元,存储器执行写操作。
图5-5 输入/输出控制电路
静态RAM的基本存储电路是触发器,通常由6个晶体管组成,如图5-6所示。图中,T3和T4为负载管(相当于两个电阻),T5和T6为门控管,T1和T2为存储管,其他如图5-6所示。工作原理分述如下。
图5-6 6管静态基本存储电路
存储器地址编码经X和Y地址译码器(图中未画出)译码后,使图中的X地址选择线和Y地址选择线变为高电平,故T5、T6、T7和T8导通。若为写“1”,则数据总线上“1”信号经倒相电路后使D变为高电平和变为低电平,经导通管T5、T6、T7和T8的传导作用而导致A点为高电平和B点为低电平(即:T1管截止和T2管导通),表示“1”信息被写入;若为写“0”,则D点为低电平和为高电平,同样经T5、T6、T7和T8而使A点为低电平和B点为高电平(即:T1导通和T2截止),表示“0”信号被写入。
在读出操作时,X地址选择线和Y地址选择线变为高电平,故T5、T6、T7和T8通导。若存储电路中原存“1”(即:A点为高电平和B点为低电平),则A点和B点电平经T5、T6、T7和T8导通管传送到D点和点,其中点的低电平经读出放大器输出高电平逻辑“1”,表示存储电路中“1”信息被读出;若存储电路中原存“0”(即:A点为低电平和B点为高电平),则同样道理可使点变为高电平,经读出放大器倒相后输出逻辑“0”,表示“0”信号被读出。
无论读“1”还是读“0”,由于每次读出时只是把A点和B点的电平传送到D点和点,经读出放大器放大后送到数据总线,并不会改变触发器的工作状态。因此,静态RAM的读出是一种非破坏性读出。
动态RAM基本存储电路是以电荷形式存储二进制信息的,通常可以分为单管、三管和四管动态RAM存储电路。但是,广泛应用的还是单管动态RAM存储电路,现以它为例来分析动态RAM存储信息的原理。
图5-7所示为一个NMOS型单管动态RAM的基本存储电路。图中,Cg为存储电容,若Cg上存有电荷,则表示存储电路存“1”;若Cg上无电荷,则表示它存“0”;T为MOS管,用作开关。工作过程如下。
图5-7 单管动态存储电路
当图中存储电路被选中工作时,字线W为高电平,MOS管T导通,位线b上的写入信息电平便可经过T管直接送入存储电容Cg。若位线b上的写入信息为高电平“1”,则存储电容Cg被充电到这个高电平;若位线b上写入信息为低电平“0”,则Cg被放电到这个低电平。因此,动态RAM存储信息的原理是以存储电容上是否有电荷来标志的,Cg上有电荷表示存“1”,Cg上无电荷表示存“0”。
对存储电路读出时,字线W也变为高电平,T导通,故Cg上电压可直接送到位线b。若读“1”,则Cg上电荷使位线b输出高电平“l”;若读“0”,则Cg上无电荷,故位线b输出低电平“0”。
上述分析表明:单管动态RAM存储一位二进制信息只需一个MOS管,故它集成度高,成本低,适合制造大容量存储器。但对未选中的基本存储电路,由于字线W为低电平,存储“1”的那些存储电容Cg上电荷因无泄漏通路而保持下来。但Cg上电荷总会有泄漏存在,且电容量又小。因此,为了保持住Cg上信息,必须周期性地给存“1”的基本存储电路充电,这种充电过程称为刷新。动态RAM存储器的刷新由刷新电路完成,刷新是周期性地进行,通常需要2ms时间完成芯片上所有存储单元的刷新。由于刷新电路大都是芯片制造商关心的问题,故对刷新电路的刷新原理的分析和研究从略。
6264是Intel公司的产品,其中62是系列号,64是序号,和存储容量有关。这个系列的产品如表5-1所示。现对6264分析如下。
表5-1 常用静态RAM一览表
型 号 |
存储容量 |
最大存取时间 |
所用工艺 |
所需电源 |
管 脚 数 |
2114A |
lK×4 |
100 ns~250ns |
HMOS |
+5V |
18 |
2115A |
lK×8 |
45 ns~95ns |
NMOS |
+5V |
16 |
2128 |
2K×8 |
150 ns~200ns |
HMOS |
+5V |
24 |
6116 |
2K×8 |
200ns |
CMOS |
+5V |
24 |
6264 |
8K×8 |
200ns |
CMOS |
+5V |
28 |
62128 |
16K×8 |
200ns |
CMOS |
+5V |
28 |
62256 |
32K×8 |
200ns |
CMOS |
+5V |
28 |
(1)内部结构和原理。
6264是8KB静态RAM存储器,内部结构如图5-8所示。由图可见,6264采用双译码编址方式,A12~A0地址线共分为两组,行向8条和列向5条。行向地址经行三态输入门和行地址译码后产生256条行地址选择线,列向地址由列三态输入门及译码电路译码产生32条列地址选择线,行、列地址选择线共同对存储阵列中8192个存储单元选址。CSl和为片选控制线,当CSl为高电平和为低电平时本芯片被选中工作,否则本芯片就不工作;为控制读/写线,高电平时6264处于读出状态,低电平时6264处于写入状态,控制读出数据是否送到数据线D8~D1上。
图5-8 6264内部结构框图
若芯片被选中为读出状态(即:CSl=1、=0、=1和=0),则A12~A0地址码经行列译码后选中相应存储单元工作,被选中存储单元中的内容读出后经1#三态门(2#三态门因=1和=0而封锁)被送到数据线D8~D1上;若芯片被选中为写状态(即:=0),则D8~D1上写入信号经2#三态门(1#三态门因=0和=1而封锁)写入由A12~A0选中的存储单元。
(2)引脚功能(28条)。
由表5-1可知,6264、62128和62256都是28引脚的SRAM,其引脚的分配关系如图5-9所示。它们的主要差别是,62128的26号引脚为A13,62256的26号引脚为A13和1号引脚为A14,故它们可公用一个管座。现以6264为例来说明各引脚的功能。
图5-9 6264/62128/62256引脚分配
① 地址线A12~A0(13条):A12~A0为输入地址线,用于传送CPU送来的地址编码信号,高电平表示“1”,低电平表示“0”。
② 数据线D7~D0(8条):D7~D0为双向数据线,D7为最高位,D0为最低位。正常工作时,D7~D0用来传送6264的读写数据。
③ 控制线(4条):允许输出线,该输出线用于控制从6264中读出的数据是否送到数据线D7~D0上。若为低电平,则读出数据可以直接送到数据总线D7~D0;否则,读出数据只能到达6264的内部总线。
片选输入线CSl和:若CS1=1和=0,则本芯片被选中工作;否则,本6264不被选中工作。
读写命令线:若为高电平,则6264处于读出工作状态;若为低电平,则6264处于写入状态。
④ 电源线(2条):VCC为+5V电源线,允许在10%范围内波动。GND为接地线。
(3)工作方式。
6264共有5种工作方式,其中的读出和写入方式是有效方式。每种工作方式对有关引脚上电平的依赖关系如表5-2所示。
表5-2 6264工作方式选择表
工作方式 |
CS1 |
CS1 |
WE |
OE |
功 能 |
禁止 |
0 |
1 |
0 |
0 |
不允许和同时为低电平 |
读出 |
0 |
1 |
1 |
0 |
从6264读出数据到D7~D0 |
写入 |
0 |
1 |
0 |
1 |
把D7~D0数据写入6264 |
选通 |
0 |
1 |
1 |
1 |
输出高阻 |
未选通 |
1 |
1 |
× |
× |
输出高阻 |
DRAM具有集成度高、功耗低、快速和廉价等优点,其存储容量可以做得很大,32M位和64M位的DRAM已相继投放市场。表5-3列出了几种微型机控制系统中常用的DRAM。这里,我们仅对2116的内部结构和使用特点作一介绍。
表5-3 几种常用DRAM存储器
型 号 |
存储容量 |
最大存取时间 |
所用工艺 |
所需电源 |
管 脚 数 |
2104A |
4K×l |
150ns~300ns |
NMOS |
±5V,+12V |
16 |
2108A |
8K×1 |
200ns~300ns |
NMOS |
±5V,+12V |
16 |
2116 |
16K×l |
200ns~300ns |
NMOS |
±5V,+12V |
16 |
2118 |
16K×1 |
100ns~150ns |
HMOS |
+5V |
16 |
2164 |
64K×l |
100ns~150ns |
HMOS |
+5V |
16 |
HM50256 |
256K×1 |
150ns~200ns |
HMOS |
+5V |
16 |
2116是Intel公司的16K位DRAM,采用双层NMOS工艺,单管动态基本存储电路,是一种有16引脚的双列直插式DRAM,其内部结构如图5-10所示。
2116的存储容量为16K×1,按照地址码和存储单元数间的关系(214=16384),共需14条地址线,但图中只有7条地址线。这是为什么呢?原来2116内部的地址锁存器仍有14位,7位行地址锁存器和7位列地址锁存器,14位地址码是通过地址线A6~A0分两次送给行地址锁存器和列地址锁存器的。当A6~A0上出现低7位地址码时,行地址选通信号(Row Address Stroble)上低电平可以把行地址锁存到行地址锁存器;当A6~A0上出现高7位地址码时,列地址选通信号(Column Address Stroble)上低电平可以把列地址锁存到列地址锁存器。2116对14位行列地址译码后可以选中4个32×128存储阵列中某个存储单元工作,若是读出数据方式(线为高电平),则“输入数据锁存器”被封锁,读出信号经“输出锁存及缓冲器”在Dout上输出;若是写入方式(线为低电平),则“输出锁存及缓冲器”封锁,Din上写入信号经“输入数据锁存器”写入由行列地址所选中的存储单元(1位)。
图5-10 Intel 2116内部结构框图
因此,2116的数据输入线Din和数据输出线Dout是分开设置的,都有各自的锁存器,实际使用时应使Din和Dout短接。2116共需+12V、+5V和-5V这3种电源和一条写命令线,且无专用的片选输入线。2116的引脚分配如图5-11所示。
2116内部有专门的刷新电路,刷新由CPU按A6~A0上传送来的刷新地址进行,每次刷新一行(4×128个存储单元,每个存储单元1位)。因此,所有存储单元刷新一遍共需128次。此外,在实际使用时,还必须为2116备有专门的行列地址多路转换器和行列地址切换控制电路,以便把CPU送来的14位地址分时地锁存到2116内部的行地址锁存器和列地址锁存器。
(a)引脚分配 (b)引脚逻辑
图5-11 2116引脚分配和逻辑关系图