随机存取存储器(RAM),既可向指定单元写入消息又可从指定单元读出消息,且读、写时间与信息所处位置无关。随机存取存储器按存储单元工作原理的不同,可分为静态随机存取存储器(Static Random Access Memory,SRAM)和动态随机存取存储器(Dynamic Random Access Memory,DRAM)。动态随机存取存储器存储单元结构简单,所能达到的集成度远高于静态存储器,但动态存储器需要刷新,存取速度也比不上静态存储器,所以在计算机中,动态存储器常用于做主存,而静态存储器常用于做高速缓存。
随机存取存储器的基本结构如图8-9所示。它由地址译码器、存储单元矩阵和读写控
制电路3部分组成,并通过地址线、数据线和控制线与外界发生联系。
图8-9 随机存取存储器的基本结构
其中,地址译码器实现地址的选择,在大容量存储器中常采用双译码结构,即将输入地址分为行地址和列地址两部分,分别经过行、列地址译码电路形成行、列地址选择线,并共同选择存储单元矩阵中的某个地址单元。存储矩阵由若干存储单元组成,一个存储单元称为存储器的一个“字”,每个存储单元由若干个可以存放一位二进制信息的基本存储电路组成,一个存储单元所含有的基本存储电路的个数,也就是能存放的二进制位数(称为存储器的“字长”)。存储器的每个字都有唯一一个编号,这个编号即“地址”。读/写控制电路控制芯片的工作状态。控制信号主要有芯片选择输入信号(CS)'(简称片选信号)和读/写控制信号R/W'。当片选信号有效,即(CS)'=0时,随机存取存储器处于正常工作状态,可以对该片进行读写操作,即可通过数据线将内容写入芯片和将芯片中的内容读出。当(CS)' =1时,RAM的所有数据输入/输出端处于高阻状态,这时不能对该片进行读写操作。
能存储一位二进制数位的单元称为基本存储单元,它是存储器的基本组成。在有电源供应的前提下,所存的信息能稳定保持。不需要进行定时“刷新”的基本存储单元称为静态存储单元,由静态存储单元组成的随机存取存储器就称为静态随机存取存储器。存储单元按所采用元件的类型分为双极型和MOS型,存储单元电路多种多样,这里仅以MOS型为例加以讨论。
MOS型静态随机存取存储器存储单元一般由6管N MOS或C MOS组成。由于C MOS具有微功耗特点,大容量静态存储器多采用C MOS存储单元,但其也有制造工艺较N MOS复杂的缺点。6管N MOS静态存储单元结构如图8-10所示。
图8-10 6管N MOS静态存储单元结构图
图中,虚线框内的6个N MOS管组成静态随机存取存储器的存储单元。T1、T3两个反相器交叉耦合构成一个基本RS触发器,可用于存储一位二进制信息,Q和Q'是触发器的一对互补输出。T2、T4分别作为两个反相器的负载管。T5、T6是行选通管,它们受行选线(字线)Xi控制,用来控制触发器与位线D、D'之间的通断。当Xi为高电平时,T5、T6导通,位线D、D'与存储单元接通;当Xi为低电平时,T5、T6截止,位线D、D'与存储单元断开。
图中,T7、T8是位线与数据线之间的门控管,为列内各个单元所公用,控制位线与数据线的通断。当Yi为高电平时,T7、T8导通,位线D、D'上的信息分别被送到数据线I/O和I/O'上,从而使触发器的Q和Q'与外界数据线相通。读数据操作时,使行选线Xi、列选线Yi均为1,触发器存储的信息由Q和Q'经D和D'从I/O和I/O'读出。写数据操作时,也使行选线Xi、列选线Yi均为1,同时将要写入的数据加在I/O和I/O'上,其原理是:要写入1时,使I/O=1、I/O'=0;要写入0时,使I/O=0、I/O'=1,经D和D'、Q和Q'最终加到T1、T3的栅极,从而使触发器发生相应的翻转,从而存入信息。信息一旦写入后,只要不断电,触发器便能保持其不变。
图8-11 单管MOS动态存储单元 |
动态随机存取存储器(DRAM)的存储单元是利用MOS管栅极电容可以暂存电荷的原理制成的。该电容存储的电荷,在栅-源间处于高阻的情况下,可以保持数毫秒至数百毫秒的暂存时间。为了避免存储的信息丢失,需定时对电容补充漏掉的电荷,即进行“刷新”。早期的动态存储单元由4个或3个MOS管组成,但这种电路集成度不高。为了提高存储器的集成度,目前大容量的动态随机存取存储器多采用单管电路。存储单元的基本结构如图8-11所示。
图中,用于存储信息的电容Cs和门控管T组成存储单元。通过字线X控制门控管T的导通,可把存储单元的信息读到位线上,或把信息从位线送到存储单元。
当字线X输出高电平时,T导通,可以对存储单元进行读写操作。执行写操作时,来自数据线的待写入信息经位线存入电容Cs中。写入1时,位线为1,电容Cs充电;写入0时,位线为0,电容Cs放电。执行读操作时,若电容Cs上无电荷,位线上就没有电流流过,表示读出信息0。若电容Cs上存有电荷,便会通过位线上的电容Co放电,位线上有电流流过,表示读出信息1。读出1信息后,Cs上的电荷因转移到Co,Cs上的电压降低,不足以维持原来的高电平,这种读出称为“破坏性读出”,在读出1信息后必须进行“再生”操作,使存储单元原来的存储信息恢复。另外,电容不可避免存在漏电流,电容上存储的电荷不能长时间保存,为避免电荷流失造成存储信息的丢失,也必须定时对电容进行刷新操作。需要注意的是,再生与刷新是两个不同的概念,再生是对完成了读出1信息的存储单元进行的操作,而刷新是对动态随机存取存储器中所有存储单元进行的常规性操作。由上可知,与静态随机存取存储器相比,动态随机存取存储器的优点是单元电路结构简单、集成度高、功耗低、价格便宜,缺点是需要刷新和再生操作,外围电路复杂。
虽然单片存储器的容量随着集成度的提高已经越来越大,但在实际应用中单片集成芯片很难满足大容量存储器的要求,为此,常常需要用若干片经过适当连接满足更大容量的存储器的需要,即进行存储容量的扩展。扩展方法根据需要,有位扩展、字扩展和字位扩展3种。
若一个存储器的字数够用而位数不够用时,可用位扩展方式将多片集成芯片连接成满足要求的存储器。例如,利用4片容量为256×4位随机存取存储器可以扩展为256×16位随机存取存储器。扩展方法是将几个存储器芯片的地址线、读/写控制线和片选信号线并接起来,而将其数据线分别引出接到存储器的数据总线上。连接方法如图8-12所示。
图8-12 位扩展连接方法
若一个存储器的位数够用而字数不够用时,可用字扩展方式将多片集成芯片连接成满足要求的存储器。例如,用4片容量为1K×4位随机存取存储器可以扩展为4K×4位随机存取存储器。扩展方法为将各个芯片的数据线、地址线和读写控制线分别连接在一起,而将片选信号线单独连接。各片的地址分配见表8-2,连接方法如图8-13所示。
表8-2 存储器地址分配表
地址范围 |
译码器的有 效输出端 |
有效的芯片 | |||||
扩展的地址输入端 |
RAM芯片地址输入端 |
十六进制表示的地址码 | |||||
A 11 |
A10 |
A9 |
A8……A1 |
A0 |
| ||
|
|
0 |
0……0 |
0 |
000H |
|
|
0 |
0 |
|
…… |
|
…… |
Y0 |
0片 |
|
|
1 |
1……1 |
1 |
3FFH |
|
|
|
|
0 |
0……0 |
0 |
400H |
|
|
0 |
1 |
|
…… |
|
…… |
Y1 |
1片 |
|
|
1 |
1……1 |
1 |
7FFH |
|
|
|
|
0 |
0……0 |
0 |
800H |
|
|
0 |
0 |
|
…… |
|
…… |
Y2 |
2片 |
|
|
1 |
1……1 |
1 |
BFFH |
|
|
|
|
0 |
0……0 |
0 |
C00H |
|
|
1 |
1 |
|
…… |
|
…… |
Y3 |
3片 |
|
|
1 |
1……1 |
1 |
FFFH |
|
|
图8-13 字扩展连接方法
在实际应用中,经常需要字、位同时进行扩展。扩展时,先计算出所需芯片的总数及片内地址线、数据线的条数,再用前面的方法进行分步扩展,可以先进行位扩展,再进行字扩展,也可先进行字扩展,再进行位扩展。例如,用8片256×4位随机存取存储器可以扩展为1K×8位随机存取存储器。具体连接方法如图8-14所示。
芯片容量为256×4位,片内字数256=28,所以地址线有8条(A0~A7),每字4位,数据线有4条(D0~D3),而需要容量为1K×8位,1 K=210,所以地址线有10条(A0~A9),每字8位,数据线有8条(D0~D7)。高位地址线A9、A8用作译码器对芯片的片选信号线。图中只画了4片,第0片与第1片的数据线分开连接,分别与存储总线的低4位及高4位相连,其余的芯片两片为一组与前两片连接方式一样,形成4组256×8位的存储器,再通过它们的片选信号线分别与译码器的输出连接,进行字扩展,最后扩展成1K×8位的存储器。
图8-14 字、位同时扩展连接法
只读存储器的容量扩展方法与随机存取存储器类似,这里不再赘述。