SDRAM 工作原理

来源:互联网 发布:赵云 知乎 编辑:程序博客网 时间:2024/04/28 06:32

SDRAM的工作原理 


SDRAM(Synchronous Dynamic Random Access Memory,同步动态随机存储器)

一、SDRAM的工作原理 

SDRAM要不断进行刷新(Refresh)才能保留住数据。 那么要隔多长时间重复一次刷新呢?目前公认的标准是,存储体中电容的数据有效保存期上限是64ms(毫秒,1/1000秒),也就是说每一行刷新的循环周期是64ms。这样刷新速度就是:行数量/64ms。我们在看内存规格时,经常会看到4096 Refresh Cycles/64ms或8192 Refresh Cycles/64ms的标识,这里的4096与8192就代表这个芯片中每个Bank的行数。刷新命令一次对一行有效,发送间隔也是随总行数而变化,4096行时为15.625μs(微秒,1/1000毫秒),8192行时就为7.8125μs。


SDRAM是多Bank结构,例如在一个具有两个Bank的SDRAM的模组中,其中一个Bank在进行预充电期间,另一个Bank却马上可以被读取,这样当进行一次读取后,又马上去读取已经预充电Bank的数据时,就无需等待而是可以直接读取了,这也就大大提高了存储器的访问速度。 


为了实现这个功能,SDRAM需要增加对多个Bank的管理,实现控制其中的Bank进行预充电。在一个具有2个以上Bank的SDRAM中,一般会多一根叫做BAn的引脚,用来实现在多个Bank之间的选择。 


SDRAM具有多种工作模式,内部操作是一个复杂的状态机。SDRAM器件的引脚分为以下几类。 

(1)控制信号:包括片选、时钟、时钟使能、行列地址选择、读写有效及数据有效。          

(2)地址信号:时分复用引脚,根据行列地址选择引脚,控制输入的地址为行地址或列地址。 

       (3)数据信号:双向引脚,受数据有效控制。 


SDRAM的所有操作都同步于时钟。根据时钟上升沿控制管脚和地址输入的状态,可以产生多种输入命令。 

        模式寄存器设置命令。                  

激活命令。                  

预充命令。                  

读命令。                  

写命令。 

        带预充的读命令。                  

带预充的写命令。

                自动刷新命令。                  

自我刷新命令。                  

突发停命令。                  

空操作命令。 


根据输入命令,SDRAM状态在内部状态间转移。内部状态包括模式寄存器设置状态、激活状态、预充状态、写状态、读状态、预充读状态、预充写状态、自动刷新状态及自我刷新状态。 


SDRAM支持的操作命令有初始化配置、预充电、行激活、读操作、写操作、自动刷新、自刷新等。所有的操作命令通过控制线CS#、RAS#、CAS#、WE#和地址线、Bank选地址BA输入。 

1、行激活 

行激活命令选择处于空闲状态存储体的任意一个行,使之进入准备读/写状态。从行激活到允许输入读/写命令的间隔时钟节拍数取决于内部特征延时和时钟频率。SDRAM内部有多个Bank,为了减少器件门数,各个Bank之间的部分电路是公用的,因此它们不能同时被激活,而且从一个Bank的激活过渡到另一个Bank的激活也必须保证有一定的时间间隔。 


2、预充电 

预充电命令用于对已激活的Bank进行预充电即结束活动状态。预充电命令可以作用于单个Bank,也可以同时作用于所有Bank(通过所有行预充电命令)。对于猝发写操作必须保证在写入预充电命令前写操作已经完成,并使用DQM禁止继续写入数据。预充电结束后回到空闲状态,也可以再次被激活,此时也可以输入进入低功耗、自动刷新、自刷新和模式设置等操作命令。 预充电中重写的操作与刷新操作一样,只不过预充电不是定期的,而只是在读操作以后执行的。因为读取操作会破坏内存中的电荷。因此,内存不但要每64ms刷新一次,而且每次读操作之后还要刷新一次。 


3、自动预充电 

如果在猝发读或猝发写命令中,A10/AP位置为“1”,在读写操作完成后自动附加一个预充电动作。操作行结束活动状态,但在内部状态机回到空闲态之前不能给器件发送新的操作命令。 


4、猝发读 

猝发读命令允许某个Bank中的一行被激活后,连续读出若干个数据。第一个数据在经过指定的CAS延时节拍后呈现在数据线上,以后每个时钟节拍都会读出一个新的数据。猝发读操作可以被同Bank或不同Bank的新的猝发读/写命令或同一Bank的预充电命令及猝发停止命令中止。 


5、猝发写 

猝发写命令与猝发读命令类似,允许某个Bank中的一行被激活后,连续写入若干个数据。第一个写数据与猝发写命令同时在数据线上给出,以后每个时钟节拍给出一个新的数据,输入缓冲在猝发数据量满足要求后停止接受数据。猝发写操作可以被猝发读/写命令或DQM数据输入屏蔽命令和预充电命令或猝发停止命令中止。 


6、自动刷新 

由于动态存储器存储单元存在漏电现象,为了保持每个存储单元数据的正确性,SDRAM必须保证在64ms内对所有的存储单元刷新一遍。一个自动刷新周期只能刷新存储单元的一个行,每次刷新操作后内部刷新地址计数器自动加“1”。只有在所有Bank都空闲(因为4个Bank的对应行同时刷新)并且未处于低功耗模式时才能启动自动刷新操作,刷新操作执行期间只能输入空操作,刷新操作执行完毕后所有Bank都进入空闲状态。

7、自刷新 

自刷新是动态存储器的另一种刷新方式,通常用于在低功耗模式下保持SDRAM的数据。在自刷新方式下,SDRAM禁止所有的内部时钟和输入缓冲(CKE除外)。为了降低功耗,刷新地址和刷新时间全部由器件内部产生。一旦进入自刷新方式只有通过CKE变低才能激活,其他的任何输入都将不起作用。给出退出自刷新方式命令后必须保持一定节拍的空操作输入,以保证器件完成从自刷新方式的退出。如果在正常工作期间采用集中式自动刷新方式,则在退出自刷新模式后必须进行一遍集中的自动刷新操作。 


8、时钟和时钟屏蔽 

时钟信号是所有操作的同步信号,上升沿有效。时钟屏蔽信号CKE决定是否把时钟输入施加到内部电路。在读写操作期间,CKE变低后的下一个节拍冻结输出状态和猝发地址,直到CKE变高为止。在所有的体都处于空闲状态时,CKE变低后的下一个节拍SDRAM进入低功耗模式并一直保持到CKE变高为止。 


9、DQM操作 

DQM用于屏蔽输入输出操作,对于输出相当于开门信号,对于输入禁止把总线上的数据写入存储单元。对读操作DQM延迟2个时钟周期开始起作用,对写操作则是当拍有效。


0 0
原创粉丝点击