sdram基本原理

2017-08-15  本文已影响0人  sgy1993

原文链接地址
http://www.360doc.com/content/11/0615/14/6105442_127114777.shtml

行地址解码器(row decoder)将会首先确定行地址,然后列地址解码器(column decoder)将会确定列地址,这样就能确定唯一的存储数据的位置,然后该数据就会通过RAM数据接口将数据传到数据总线。

SRAM是“static RAM(静态随机存储器)”的简称,之所以这样命名是因为当数据被存入其中后不会消失(同DRAM动态随机存储器是不同,DRAM必须在一定的时间内不停的刷新才能保持其中存储的数据)

Enable(OE):有的SRAM芯片中也有这个引脚,但是上面的图中并没有。这个引脚同WE引脚的功能是相对的,它是让SRAM知道要进行读取操作而不是写入操作。从Dout引脚读取1bit数据需要以下的步骤:

SRAM读取操作:
1)通过地址总线把要读取的bit的地址传送到相应的读取地址引脚(这个时候/WE引脚应该没有激活,所以SRAM知道它不应该执行写入操作)。

2)激活/CS选择该SRAM芯片。

3)激活/OE引脚让SRAM知道是读取操作。
第三步之后,要读取的数据就会从DOut引脚传输到数据总线。怎么过程非常的简单吧?同样,写入1bit数据的过程也是非常的简单的。

SRAM写入操作:
1)通过地址总线确定要写入信息的位置(确定/OE引脚没有被激活)。

2)通过数据总线将要写入的数据传输到Dout引脚。

3)激活/CS引脚选择SRAM芯片。

4)激活/WE引脚通知SRAM知道要进行写入操作。

DRAM通过DRAM接口把地址一分为二,然后利用两个连续的时钟周期传输地址数据。这样就达到了使用一半的针脚实现同SGRAM同样的功能的目的,这种技术被称为多路技术(multiplexing)

那么为什么好减少地址引脚呢?这样做有什么好处呢?前面我们曾经介绍过,存储1bit的数据SRAM需要4-6个晶体管但是DRAM仅仅需要1个晶体管,那么这样同样容量的SRAM的体积比DRAM大至少4倍。这样就意味着你没有足够空间安放同样数量的引脚(因为针脚并没有因此减少4倍)。当然为了安装同样数量的针脚,也可以把芯片的体积加大,但是这样就提高芯片的生产成本和功耗,所以减少针脚数目也是必要的,对于现在的大容量DRAM芯片,多路寻址技术已经是必不可少的了。

当然多路寻址技术也使得读写的过程更加复杂了,这样在设计的时候不仅仅DRAM芯片更加复杂了,DRAM接口也要更加复杂,在我们介绍DRAM读写过程之前,请大家看一张DRAM芯片内部结构示意图:

首先为了能存储1字节(8 bit)的信息,就需要8个1bit RAM基本存储单元堆叠在一起,这也意味着这8颗芯片被赋予了同样的地址。下面的示意图可以帮助你比较形象的了解这一点(下图所示的图例中仅仅画了4个存储单元,大家当成8个来看就可以了)。

8bit示意图

通常这8颗1bit芯片是通过地址总线和数据总线在PCB(印刷电路板)上连接而成的,对于CPU来说它就是一颗8bit的RAM芯片,而不再是独立的8个1 bit芯片。在上图所示的地址总线位宽是22bit,这样这个地址总线所能控制的存储模块的容量应该是222=4194304bit,也就是4MB的容量;数据总线的位宽是8bit,就是通过刚才提到的8个1bit的基本存储单元的Dout并联在一起实现的--这样也能够满足CPU的要求了。(对于这种存储颗粒我们称之为4194304 x 8模块或者4Mx8,注意这里的“M”不是“MByte”而是“Mbit”)。为了举例说明,我们用一条TI(德仪公司)出品的TM4100GAD8 SIMM内存为例来说明,因为这种内存的构造相对比较简单,便于大家理解。TM4100GAD8基于4M x 8模块制造,容量4MB,采用30线SIMM封装。如果前面我说的东西你看明白了,就应该知道这条内存采用了4Mx1 DRAM颗粒。下面的数据是我在TI官方网站上找到的(目前很少有公司的网站还提供自己以前产品的数据):构造:4194304 × 8。工作电压:5-V。30线SIMM(Single In-Line Memory Module:SIMM)。采用8片4Mbit DRAM内存颗粒,塑料SOJs封装。长刷新期16 ms(1024周期)。

如果一个DRAM芯片具有8个数据引脚,那么这个基本储存单元一次就可以输出8bit的数据,而不像是在原来的TM4100GAD8 SIMM芯片中每次仅仅能输出1bit数据了。这样的话,如果我们需要制造一个同TM4100GAD8一样容量的内存,那么我们可以不使用前面所使用的4M x 1bit芯片,而是采用1M x 8bit芯片,这样仅仅需要4片芯片就可以得到一个容量为4MB,位宽为32bit的模组。芯片数目减少最直接的好处当然是可以减少功耗了,当然也简化了生产过程

1、首先行地址被传送到行地址引脚,在/RAS引脚被激活之前,RAS处于预充电状态,CAS也处于预充电状态,当然/WE此时依然是高电平,FPM至少知道自己不会进行写操作。
  2、/RAS引脚被赋予低电平而被激活,行地址被送到行地址选通器,然后选择正确的行送到传感放大器,就在/RAS引脚被激活的同时,tRAC开始计时。
  3、CAS一直处于预充电状态,直到列地址被传送到列地址引脚并且/CAS引脚得到一个低电平而被激活(tCRC时间开始计时),然后下面的事情我们也应该很清楚了,列地址被送到列地址选通器,然后需要读取的数据位置被锁定,这个时候Dout引脚被激活,第一组数据就被传送到数据总线上。
  4、对于原来介绍的DRAM,这个时候一个读取周期就结束了,不过对于FPM则不同,在传送第一组数据期间,CAS失活(RAS依然保持着激活状态)并且进入预充电状态,等待第二组列地址被传送到列地址引脚,然后进行第二组数据的传输,如此周而复始直至4组数据全部找到并且传输完毕。
  5、当第四组数据开始传送的时候,RAS和CAS相继失活进入到预充电状态,这样FPM的一个完整的读取周期方告结束。FPM之所以能够实现这样的传输模式,就是因为所需要读取的4个字节的行地址是相同的但是列地址不同,所以它们不必为了得到一个相同的列地址而去做重复的工作。
  6、这样的工作模式显然相对于普通的DRAM模式节省了很多的时间,特别是节省了3次RAS预充电的时间和3个tRAC时间,从而进一步提高的效率。

FPM

那些t参数的意思

时间参数的意思

4.11 ACTIVE Command
The ACTIVE command is used to open (or activate) a row in a particular bank for a subsequent access.
(用于对一个特定的bank的行进行连续的访问,前提是open或者activate该行)
This row remains active (or open) for accesses until a precharge command is issued to that bank. A PRECHARGE command must be issued before opening a different row in the same bank
-----行active持续到一个precharge命令发出,在同一个bank中open不同行时需要发出一个precharge命令

4.12 PRECHARGE Command
The PRECHARGE command is used to deactivate the open row in a particular bank or the open row in all banks.
----PRECHARGE命令是用来deactivate行或者activate行 in all banks

上一篇下一篇

猜你喜欢

热点阅读