一、ram的一般结构和读写过程
1.ram的一般结构它由三部分电路组成:
1)行、列地址译码器:它是一个二进制译码器,将地址码翻译成行列对应的具体地址,然后去选通该地址的存储单元,对该单元中的信息进行读出操作或进行写入新的信息操作。
例如:一个10位的地址码a4a3a2a1a0=00101,b4b3b2b1b0=00011时,则将对应于第5行第3列的存储单元被选中。
2)存储体:它是存放大量二进制信息的“仓库”,该仓库由成千上万个存储单元组成。而每个存储单元存放着一个二进制字信息,二进制字可能是一位的,也可能多位。
存储体或ram的容量:存储单元的个数*每个存储单元中数据的位数。
例如,一个10位地址的ram,共有210个存储单元,若每个存储单元存放一位二进制信息,则该ram的容量就是210(字)×1(位)=1024字位,通常称1k字位(容量)。
3)i/o及读/写控制电路:该部分电路决定着存储器是进行读出信息操作还是写入新信息操作。输入/输出缓冲器起数据的锁存作用,通常采用三态输出的电路结构。因此,ram可以与其它的外面电路相连接,实现信息的双向传输(即可输入,也可输出),使信息的交换和传递十分方便。
2.ram的读出信息和写入新信息过程(读/写过程):时序
访问某地址单元的地址码有效,假如你想去访问的具体地址:如a9~a0=0d3h=0011010011b,片选有效=0,选中该片ram为工作状态。读/写操作有效:=1,读出信息;=0,写入信息;
二、ram中的存储单元
按照数据存取的方式不同,ram中的存储单元分为两种:静态存储单元—静态ram(sram);动态存储单元—动态ram(dram)。
1.静态存储单元(sram):它由电源来维持信息,如触发器,寄存器等。
静态存储单元(sram)的典型结构:
t5、t6、t7、t8都是门控管,只要栅极高电平,这些管子就工作在可变电阻区,当作开关。
其中,存储单元通过t5、t6和数据线(位线)相连;数据线又通过t7、t8和再经输入/输出缓冲电路和输入/输出线相连接,以实现信息的传递和交换。写入信息的操作过程,在第一次写入信息之前,存储单元中的信息是随机信息。
假定要写入信息“1”:
1)地址码加入,地址有效后,相对应的行选线x和列选线y都为高电平,t5、t6、t7、t8导电;
2)片选信号有效(低电平);
3)写入信号有效,这时三态门g2、g3为工作态,g1输出高阻态,信息“1”经g2、t7、t5达到q端;经g3反相后信息“0”经t8、t6达到。t4导电,t3截止,显然,信息“1”已写入了存储单元。
假定要读出信息“1”:
1)访问该地址单元的地址码有效;
2)片选有效=0;
3)读操作有效r/=1;此时:三态门g1工作态,g2、g3高阻态,存储单元中的信息“1”经t5、t7、g1三态门读出。
除上述nmos结构的静态sram以外,还有以下几种类型的sram。
cmos结构的sram:功耗更加低,存储容量更加大。
双极型结构sram:功耗较大,存取速度更加快。
2.动态存储单元(dram)
静态存储单元存在静态功耗,集成度做不高,所以,存储容量也做不大。动态存储单元,利用了栅源间的mos电容存储信息。其静态功耗很小,因而存储容量可以做得很大。静态ram功耗大,密度低,动态ram功耗小,密度高。动态ram需要定时刷新,使用较复杂。
动态存储单元(dram)的典型结构:
门控管t3、t4、t5、t6、t7、t8 ,c1、c2为mos电容。
dram的读/写操作过程:
1)访问该存储单元的地址有效;2)片选信号有(未画);3)发出读出信息或写入新信息的控制信号。
读出操作时,令原信息q=1,c2充有电荷,地址有效后,行、列选取线高电平;加片选信号后,送读出信号r=1,w=0;t4、t6、t8导电,经t4、t6、t8读出。写入操作时,假定原信息为“0”,要写入信息“1”,该存储单元的地址有效后,x、y为高电平;在片选信号到达后,加写入命令w=1,r=0,即“1。信息经t7、t5、t3对c2充电。充至一定电压后,t2导电,c1放电,t1截止,所以,q变为高电平,“1”信息写入到了该存储单元中。如果写入的信息是“0”,则原电容上的电荷不变。
动态ram的刷新:由于dram靠mos电容存储信息。当该信息长时间不处理时,电容上的电荷将会因漏电等原因而逐渐的损失,从而造成存储数据的丢失。及时补充电荷是动态ram中一个十分重要的问题。补充充电的过程称为“刷新”—refresh,也称“再生”。
补充充电的过程:加预充电脉冲、预充电管t9、t10导电,c01,c02很快充电至vdd,撤消后,c01,c02上的电荷保持。然而进行读出操作:地址有效,行、列选线x、y高电平;r=1,w=0进行读出操作,如果原信息为q=“1”,说明mos电容c2有电荷,c1没有电荷(即t2导电,t1截止);这时c01上的电荷将对c2补充充电,而c02上的电荷经t2导电管放掉,结果对c2实现了补充充电。读出的数据仍为,,则do=1。
实际上,在每进行一次读出操作之前,必须对dram按排一次刷新,即先加一个预充电脉冲,然后进行读出操作。同时在不进行任何操作时,cpu也应该每隔一定时间对动态ram进行一次补充充电(一般是2ms时间),以弥补电荷损失。
三、静态ram的容量扩展(sram)
通常微处理器的数据总线为8位、16位或32位,而地址总线为16位或24位不等。当静态ram的地址线和数据线不能与微机相匹配时,可用地址线扩展、数据线扩展或地址和数据线同时进行扩展的方法加以解决。
1.ram容量的扩展---位数扩展 数据线扩展
如sram 2114:10位地址,4位数据线,其容量=210×4=1024 ×4=4096字位(4k)。
例:用4k容量的ram2114,实现一个容量为1024×8 (≈8k字位)字位容量的ram。
解:1024×8字位容量,其地址仍是十位,故只要进行数据位扩展即可,选用ram2114两片,将两片的地址线,读/写线及片选线并联,两片的位线分别作为高4位数据和低4位数据,组成8位的数据线即可。扩展后的电路如图所示:
2.sram容量的扩展---字位扩展,地址扩展,数据位扩展。
例:用ram2114,扩展成容量为4096×8字位(32k)的ram。
解:4096需要12位地址,而ram2114只有10位地址,所以需要进行地址扩展,同时应该将一字 4位,扩展成一字8位。字的位扩展用前面方法,地址扩展用译码器完成,用8片ram2114。扩展后的电路如图所示: