您好,欢迎来电子发烧友网! ,新用户?[免费注册]

当前位置:电子发烧友网 > 图书频道 > 电子 > 《微计算机原理》 > 第5章 半导体存储器

第2节 读写存储器RAM

 

  第三节 读写存储器RAM

  本节内容:

  一、 基本存储电路

  二、 RAM的结构

  三、 典型RAM芯片举例

  四、 RAM与CPU的连接

  §5.3.1 基本存储电路

  一个基本存储电路存储一位二进制信息0或1。它是存储器的核心。

  1、SRAM基本存储电路

  SRAM的基本存储电路的核心是MOS管构成的双稳态触发器。

  MOS(场效应)管的工作特性如左图所示。

  MOS管构成的双稳态触发器:

  T3、T4的g、s端连在一起,vgs=0,d、s呈现高阻,该大电阻作为负载。 双稳态触发器有两个稳定状态:

  ① 若T1导通,A=0,使T2截止,B=1,B=1又保证T1导通。该状态表示存储信息0。(A=0)。

  ② 若T1截止,A=1,使T2导通,B=0,B=0又保证T1截止。该状态表示存储信息1。(A=1)。

  为了将信息0/1写入或读出触发器,就需要加控制电路。加入控制电路的基本存储单元如下图:

  写操作:CPU送出地址信号、数据信号D和写入信号R/W=0。地址信号分成行地址和列地址,行地址经"行选择译码"产生行选择线信号,使该基本存储电路被选中,T5、T6导通;列地址经"列选择译码"产生列选择线信号,使T7、T8导通。R/W=0,三态缓冲器A1、A3导通,A2禁止,数据信号D经A1、A3、T7、T8、T5、T6进入该基本存储电路。

  如写入1,则I/O=1、I/O=0,它们使A=1、B=0,T1截止、T2导通,即数据1被写入。

  如写入0,则I/O=0、I/O=0,它们使A=0、B=1,T1导通、T2截止,即数据0被写入。

  在写入完成后,地址信号消失,T5、T6、T7、T8截止,双稳态电路保持写入的信息不变。或者说,写入过程相当于将输入电荷存储到T1、T2的栅极上。在写入信号和选择信号消失后,两个作为负载电阻的T3、T4和电源Vcc相连,从而可以不断地往T1、T2的栅极补充电荷(T3给T2、T4给T1补充),加上T1、T2互相控制,能够保持住所写入的数据。

  读操作:CPU送出地址信号,R/W=1。T5、T6、T7、T8导通,R/W=1,三态缓冲器A2导通,A1、A3禁止,基本存储电路A点状态经T5、T7、A2送至数据线D。A=1表示D=1,A=0表示D=0。在读出后,基本存储电路的状态不发生变化,即读操作是非破坏性的。

  SRAM的特点:

  (1) 采用CMOS电路构成,读出/写入速度快(5~15ns)。

  (2) 所用管子数目多,单个器件的容量小,如256×4,16Kb×1,64Kb×8。

  (3) T1、T2总有一个处于导通状态,使得SRAM的功耗较大。

  2、 DRAM基本存储电路(单管DRAM基本存储电路)

  数据以电荷形式存在电容C上,当C上有电荷,表示信息1;当C上无电荷,表示信息0。

  写操作时,"行选择信号"为1,Q导通,若"列选择信号"为1,该基本存储电路被选中,由"数据输入/输出线"送来的信息通过刷新放大器和Q管送入到电容C。

  读操作时,"行选择信号"为高电平,使存储矩阵中该行的所有基本存储电路的Q管导通,"刷新放大器"读取对应电容C上的电压值,刷新放大器的灵敏度很高,放大倍数很大,并且能将从电容上读得的电压值折合为逻辑"0"或逻辑"1"。"列选择信号"所选中的基本存储电路输出数据。

  在读出过程中,选中行上所有基本存储电路中的电容均受到打扰,为了在读出之后,仍能保存所容纳的信息,刷新放大器对这些电容上的电压值读取之后又立即进行重写。

  DRAM的特点:

  (1) 利用电容存储电荷的原理来存储信息的。由于电容会逐渐放电,所以,必须对DRAM中的电容不断地补充电荷,这一过程称为刷新。

  (2) 典型的刷新周期为2ms,一般用专门的DRAM控制器控制刷新,其刷新过程称为刷新周期。

  (3) 所用MOS管较SRAM少,芯片位密度较高,如32Kb×1,16Mb×1。

  (4) 功耗较小。

  §5.3.2 RAM的结构

1、 存储体 
  存储芯片中全部基本存储电路的集合称为"存储体"。存储体中的基本存储电路按矩阵排列,称为"存储矩阵"。 存储矩阵有N×1、N×4、N×8结构。 
  下图是一个4096×1的存储芯片的逻辑示意图和结构示意图。
       
      

 

 

 

 

 


 

2、 外围电路 
   (1) 地址译码。 
      4Kb×1的存储器有4096个存储单元,选择某一单元需要12根地址信号(212=4096),它们被分为行地址和列地址。 
   (2) I/O电路(输出驱动)。 
   (3) 读写控制电路。R/W。 
   (4) 片选信号,CE或CS。 
      微机存储器由多个存储芯片组成,CPU读写存储器时,必须选中一个芯片,该选择信号称为"片选信号",一般用CE或CS表示。只有被选中的芯片(CE/CS有效),才能读出或写入数据。 
   (5) 三态缓冲器(图中未画出) 
      用于连接CPU数据总线和存储器数据总线。当三态缓冲器选通时,CPU才能与存储器交换数据。否则,CPU与存储器断开。 
   (6) 刷新电路(图中未画出,仅DRAM存储器需要) 
       用于控制DRAM刷新。
3、 地址译码方法 
   (1) 单译码(N×8) 
    以32×8存储器为例。需要5根地址线(A4~A0),地址译码后,同时访问存储器中的8位。

 

NX8存储器,单个
芯片同时输入/输
出一字节地所有8
位采用单译码

 

   
   





















 

(2) 双译码(N×1) 
      以1024×1存储器为例。需要10根地址线(210=1024),A4~A0地址译码后,得到32根行选择线X32~X1,选中存储矩阵的某一行;A9~A5地址译码后,得到32根列选择线Y32~Y1,选中存储矩阵的某一列。行和列均被选中的单元可以写入或读出。 

三、 典型RAM芯片举例 
   1、 Intel 2114芯片(1Kb×4) 
     该芯片有1024×4=4096个基本存储单元,排列成64×64矩阵,10根地址信号线(210=1024)译码后选中芯片中的4位。 
     
   存储器中的数据经"输入/输出三态门"与数据总线相连。由片选信号CS和读写信号R/W共同控制三态门。当CS=0,R/W=0,输入三态门打开,数据总线来的数据被写入存储器。当CS=0,R/W=1,输出三态门打开,存储器中的数据输出到数据总线。 
   2114的读写时序如下图。
   (1) 读操作 
   
   ① 存储器收到地址总线上来的地址信号后,经过一定时间,片选信号CS有效(片选信号CS由地址信号译码产生)。 
   ② 片选信号CS有效后,经过时间tCX,存储器开始输出数据。输出数据稳定后,CPU获得数据。从CS有效到数据稳定的时间是tCD。
   ③tOTD:恢复时间,用于存储器内部操作。从输出数据稳定至可以输入新的地址的时间 
   ④ 地址信号消失后,数据维持的时间是tOHA。
   ⑤ 从存储器获得地址信号,到输出数据稳定的时间,称为"存取时间"tA。 
   ⑥ 从存储器获得地址信号,到允许下次地址信号出现的时间,称为"读周期"tRC。 tRC=tA+tOTD。 
   (2)写操作
   
   写周期是指:启动一次写操作至启动下一次写操作的时间。 
   tA:存取时间(写入时间),从地址有效到数据写入。 
   tAW:地址建立时间,从地址出现到稳定。 
   tW:写脉冲宽度。 
   tWR:写操作恢复时间,从数据写入到可以输入新地址的时间,用于存储器内部操作。 
   tDW:数据有效时间,从数据稳定到数据写入。 
   tDH:数据保持时间,写信号无效后,输入数据应保持的时间。
   写周期对时序的要求是:①地址建立时间tAW(从地址输入到稳定)应尽量短,在写入信号WE有效前,地址已稳定。
              ②写脉冲宽度tW应满足要求。 写周期tWC=tAW+tW+tWR。 
   2、Intel 2164芯片(64Kb×1) 
   (1)、外部结构 
    Intel 2164 是64Kb×1 DRAM芯片,其位密度较高,选择其中某个基本存储电路需要16根地址信号,为了减少引腿数目,对于高密度DRAM,一般使行地址和列地址共用一组引腿,并设置行地址选通信号RAS和列地址选通信号CAS,在内部设置行地址寄存器和列地址寄存器。Intel 2164的引脚图及逻辑符号如下图: 

 

A7~A0
地址输入
CAS
列地址选通
RAS
行地址选通
WE
写允许
Din
数据输入
Dout
数据输出
Vdd
+5v
Vss

 

   先在引脚A7~A0上提供行地址RA7~RA0,并使 有效,芯片把该行地址锁存在行地址锁存器中,再在引脚A7~A0上提供列地址CA7~CA0,根据行地址RA7~RA0和列地址CA7~CA0,选中一个基本存储电路。 
   (2)、内部结构 
       该芯片的内部结构如下图,包括存储体、行地址锁存器、时钟控制电路、1/4 I/O门、数据输出缓冲器、数据输入缓冲器等部分构成。 
  
   64K存储体由4个128×128存储矩阵、4个128读出放大器、2个1/128行译码器和2个1/128列译码器构成。行地址中的RA6~RA0同时加到4个存储矩阵上,在每个存储矩阵中均选中一行,共有4×128个基本存储电路被选中,它们的信息被选通至4×128个读出放大器。列地址中的CA6~CA0也同时加到4个存储矩阵上,在每个存储矩阵中均选中一列。这样,经RA6~RA0和CA6~CA0,选中4个基本存储电路。最后,由RA7和CA7控制"1/4 I/O 门"选中其中一个基本存储电路(RA7由"8位地址缓冲器"即行地址寄存器提供,CA7实际使用经"列时钟缓冲器"的CAS代替)。 
   (3)、工作时序 
    读周期工作时序: 
   
   ① 先在A7~A0引脚上提供行地址,在tASR时间后使行地址选通信号RAS有效,把行地址锁存在内部的行地址锁存器中。读周从RAS有效开始,在RAS有效后,A7~A0引脚上的行地址应至少保持tRAH时间。 
   ② 再在A7~A0引脚上提供列地址,在tASC时间后使列地址选通信号CAS有效,在CAS有效后,A7~A0引脚上的列地址还应至少保持tCAH时间。行地址和列地址选中一个基本存储电路。 
   ③ 读信号(WE=1)应在CAS有效前tRCS有效。
   ④ 在CAS有效tCAC后,数据输出线Dout开始输出数据。如果从读周期开始(RAS有效)计算,数据在tRAC后输出。为了保证数据可靠读出,RAS有效的时间tRAS应满足一定的宽度。 
   ⑤ RAS当变高后,对存储电路中的电容进行预充电,预充电时间为tRP,因此,整个读周期的时间tRC=tRAS+tRP。 
   写周期工作时序:
      
   ① 行地址->RAS有效->行地址保持->列地址->CAS有效->列地址保持。行地址和列地址选中一个基本存储电路。 
   ② 写信号(WE=0)应在CAS有效前tWCS有效。为了保证可靠写入数据,写信号的宽度至少应为tWP。 
   ③ 数据信号CAS在有效的下降沿被写入,但数据信号应在CAS有效tDS前有效,且在CAS有效后应维持tDH。 
   ④ 整个写周期的时间tRC=tRAS+tRP。
   读-修改-写周期工作时序: 
   在指令中,常要对某个内存单元(8个基本存储电路)的内容读出进行修改,然后再写回这一单元。为了提高操作速度,在存储器中设计了"读-修改-写"周期。
   这一周期的性质类似于读周期和写周期的组合,但它不是由两个单独的读周期和写周期结合起来的,而是在RAS和CAS同时有效的情况下,由WE信号先实现读出(①,WE=1),在修改后又实现写入(②,WE=0)。 
   
   页模式读周期工作时序: 
   在指令中常要求数据块操作,为了提高数据传送的速度,可采用页模式操作。即维持行地址不变(RAS不变),由连续的CAS信号对不同的列地址进行操作。每个CAS操作一个内存单元。(CAS信号的数量要受RAS信号宽度的限制)。 
    
   首先给存储器指定行地址,然后连续指定几个列地址。在每次列地址有效tASC时间后,CAS信号有效,在CAS信号有效后tCAC时间,数据被读出。 
   当行地址(CPU访问地址的高位)不变,几个列地址(CPU访问地址的低位)对应几个内存单元,这几个内存单元称为一"页",故这种内存操作方式称为"页模式"。如,列地址为8位,则一页等于256字节。
   在页模式操作时,可实现存储器读、存储器写、读-修改-写操作。上图为页模式读操作时序。页模式操作提高了数据传送的速度,又称为"快速页模式FPM(fast page mode)"。 
   刷新周期工作时序: 
   
与一般的存储器刷新方式类似,Intel 2164的刷新周期只需行地址(称为"唯刷新方式")。先在A7~A0上提供行地址,然后使 有效,选中存储体中的一行或几行,由"读出放大器"实施刷新。对于Intel 2164,存储体由4个128×128矩阵构成,每次刷新在4个128×128矩阵中均选中一行,经过128个刷新周期即可完成整个存储体的刷新。在刷新过程中,由于 始终无效,故数据不会读出至Dout线上。

四、 RAM与CPU的连接 
   1、 RAM芯片组的连接 
     以8个4096×1芯片连接成一组4KB的芯片组为例。
   
   连接方法: 
     ① 每一片4096×1芯片输出一位数据,8片输出数据一字节D7~D0。 
     ② 8片的 连接在一起,同时被选中。 
     ③ 8片的 连接在一起,同时被读/写。 
     ④ 8片的地址线A11~A0连接在一起。 
   2、 4KB RAM的连接(全译码) 以8片Intel 2114(1Kb×4)构成4KB RAM为例。 每片Intel 2114需要10根地址线A9~A0,每片输出4位数据,两片构成一组,输出一字节8位数据。
   
   每组的两片应同时被访问,因此,其地址信号A9~A0连接在一起,读/写信号也连接在一起。 
   用地址信号A15~A10译码输出(0~63)选择某组存储器。    

 

组别 A15~A10 组内地址A9~A0 地址范围(A15~A0)
0组 000000 0000000000 ~1111111111

0000,0000,0000,0000(0000FH)~
0000,0011,1111,1111(03FFH)

1组 000001 0000,0100,0000,0000(0400H)~ 
0000,0111,1111,1111(07FFH)
2组 000010 0000,1000,0000,0000(0800H)~ 
0000,1011,1111,1111(0BFFH)
3组 000011 0000,1100,0000,0000(0C00H)~
0000,1111,1111,1111(0FFFH)

   在这种连接方式中,全部高位地址A15~A10(A9~A0为芯片组的组内地址)均参与译码选择芯片组,称为"全译码"。其特点是,每一组的地址是唯一的。 
   3、 4KB RAM的连接(线译码) 
     "线译码"方式:单独用一根地址线选择芯片组。例如,用A10=0选0组,A11=0选1组,A12=0选2组,A13=0选3组。 
   
   线译码的特点是: 
   ① 直接用某根地址线选择芯片组,不需要地址译码器。 
   ② 一组芯片有多组地址。 
    以0组为例(A10=0选中0组)。  

A15~A11
A10
A9~A0
地址范围
00000
0
0000000000~111111111
0000,0000,0000,0000(0000H)~ 0000,0011,1111,1111(03FFH)
00001
0000,1000,0000,0000(0800H)~ 0000,1011,1111,1111(0BFFH)
.....
 
11111
1111,1000,0000,0000(F800H)~ 1111,1011,1111,1111(FBFFH)