SDRAM (一) sdrm刷新和自刷新,工作原理_备查(突发传输 , 突发长度)

 

SDRAM的自动刷新AS(Auto Refresh)和自刷新SR(Self Refresh):

     刷新操作分为两种:自动刷新(Auto Refresh,简称AR)与自刷新(Self Refresh,简称SR)。不论是何种刷新方式,都不需要外部提供行地址信息,因为这是一个内部的自动操作。

    对于AR, SDRAM内部有一个行地址生成器(也称刷新计数器)用来自动的依次生成行地址。由于刷新是针对一行中的所有存储体进行,所以无需列寻址,或者说CAS在RAS之前有效。所以,AR又称CBR(CAS Before RAS,列提前于行定位)式刷新。由于刷新涉及到所有L-Bank,因此在刷新过程中,所有L-Bank都停止工作,而每次刷新所占用的时间为9个时钟周期(PC133标准),之后就可进入正常的工作状态,也就是说在这9 个时钟期间内,所有工作指令只能等待而无法执行。64ms之后则再次对同一行进行刷新,如此周而复始进行循环刷新。显然,刷新操作肯定会对SDRAM的性能造成影响,但这是没办法的事情,也是DRAM相对于SRAM(静态内存,无需刷新仍能保留数据)取得成本优势的同时所付出的代价。

    SR则主要用于休眠模式低功耗状态下的数据保存,这方面最著名的应用就是STR(Suspend to RAM,休眠挂起于内存)。在发出AR命令时,将CKE置于无效状态,就进入了SR模式,此时不再依靠系统时钟工作,而是根据内部的时钟进行刷新操作。在SR期间除了CKE之外的所有外部信号都是无效的(无需外部提供刷新指令),只有重新使CKE有效才能退出自刷新模式并进入正常操作状态。 

 

提示:

  有的资料上说 "一般刷新或自刷新是选上的" , 实际上从SDRAM工作的原理看,是 "一定"要enable的.如s3c2440 REFRESH寄存器的[23]是enable的,[22]到底是AR还是SR可以选择自动.另外自己记得在进行suspend to ram的时候应该是使用SR的.

 

附加:

sdram工作原理:

之所以成为DRARM就是因为它要不断进行刷新(Refresh)才能保留住数据,因此它是DRAM最重要的操作。那么要隔多长时间重复一次刷新,目前公认的标准是,存储体中电容的数据有效保存期上限是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。HY57V561620为8192 refresh cycles / 64ms。

  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#和地址线、体选地址BA输入。

  1、行激活

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

  2、预充电

  预充电命令用于对已激活的行进行预充电即结束活动状态。预充电命令可以作用于单个体,也可以同时作用于所有体(通过所有体预充电命令)。对于猝发写操作必须保证在写入预充电命令前写操作已经完成,并使用DQM禁止继续写入数据。预充电结束后回到空闲状态,也可以再次被激活,此时也可以输入进入低功耗、自动刷新、自刷新和模式设置等操作命令。

  预充电中重写的操作与刷新操作一样,只不过预充电不是定期的,而只是在读操作以后执行的。因为读取操作会破坏内存中的电荷。因此,内存不但要每64ms刷新一次,而且每次读操作之后还要刷新一次。

  由于SDRAM的寻址具有独占性,所以在进行完读操作后,如果要对同一L-BANK的另一行进行寻址,就要关闭原来的工作行,重新发送行/列地址。L-BANK关闭现有工作行,准备打开新行的操作就是预充电(precharge).预充电可以通过命令控制,也可以通过辅助设定让芯片在每次读写操作之后自动进行预充电。实际上预充电是一种对工作行中所有存储体进行数据重写,并对行地址进行复位。 

 

 

对于预充电的补充:

 

预充电

 

    由于SDRAM的寻址具有独占性,所以在进行完读写操作后,如果要对同一L-Bank的另一行进行寻址,就要将原来有效(工作)的行关闭,重新发送行/列
地址。L-Bank关闭现有工作行,准备打开新行的操作就是预充电(Precharge)。

   预充电可以通过命令控制,也可以通过辅助设定让芯片在每次读写操作之后自动进行预充电。实际上,预充电是一种对工作行中所有存储体进行数据重写,并对行地址进行复位,同时释放S-AMP(重新加入比较电压,一般是电容电压的1/2,以帮助判断读取数据的逻辑电平,因为S-AMP是通过一个参考电压与存储体位线电压的比较来判断逻辑值的),以准备新行的工作。具体而言,就是将S-AMP中的数据回写,即使是没有工作过的存储体也会因行选通而使存储电容受到干扰,所以也需要S-AMP进行读后重写。此时,电容的电量(或者说其产生的电压)将是判断逻辑状态的依据(读取时也需要),为此要设定一个临界值,一般为电容电量的1/2,超过它的为逻辑1,进行重写,否则为逻辑0,不进行重写(等于放电)。为此,现在基本都将电容的另一端接入一个指定的电压(即1/2电容电压),而不是接地,以帮助重写时的比较与判断。现在我们再回过头看看读写操作时的命令时序图,从中可以发现地址线A10控制着是否进行在读写之后当前L-Bank自动进行预充电,这就是上文所说的“辅助设定”。而在单独的预充电命令中,A10则控制着是对指定的L-Bank还是所有的L-Bank(当有多个L-Bank处于有效/活动状态时)进行预充电,前者需要提供L-Bank的地址,后者只需将A10信号置于高电平。在发出预充电命令之后,要经过一段时间才能允许发送RAS行有效命令打开新的工作行,这个间隔被称为tRP(Precharge command Period,预充电有效周期)。和tRCD、CL一样,tRP的单位也是时钟周期数,具体值视时钟频率而定

 

 


  3、自动预充电

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

  4、猝发读

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

  5、猝发写

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

  6、自动刷新

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

  7、自刷新

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

  8、时钟和时钟屏蔽

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

  9、DQM操作

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

 

附加:

突发传输 ,突发长度 , 非突发传输:

 

  突发(Burst)是指在同一行中相邻的存储单元连续进行数据传输的方式,连续传输所涉及到存储单元(列)的数量就是突发长度(Burst Lengths,简称BL)。在目前,由于内存控制器一次读/写P-Bank位宽的数据,也就是8个字节,但是在现实中小于8个字节的数据很少见,所以一般都要经过多个周期进行数据的传输。上文讲到的读/写操作,都是一次对一个存储单元进行寻址,如果要连续读/写就还要对当前存储单元的下一个单元进行寻址,也就是要不断的发送列地址与读/写命令(行地址不变,所以不用再对行寻址)。虽然由于读/写延迟相同可以让数据的传输在I/O端是连续的,但它占用了大量的内存控制资源,在数据进行连续传输时无法输入新的命令,效率很低(早期的FPE/EDO内存就是以这种方式进行连续的数据传输)。为此,人们开发了突发传输技术,只要指定起始列地址与突发长度,内存就会依次地自动对后面相应数量的存储单元进行读/写操作而不再需要控制器连续地提供列地址。这样,除了第一笔数据的传输需要若干个周期(主要是之前的延迟,一般的是tRCD+CL)外,其后每个数据只需一个周期的即可获得。在很多北桥芯片的介绍中都有类似于X-1-1-1的字样,就是指这个意思,其中的X代表就代表第一笔数据所用的周期数。

   非突发连续读取模式:不采用突发传输而是依次单独寻址,此时可等效于BL=1。虽然可以让数据是连续的传输,但每次都要发送列地址与命令信息,控制资源占用极大,突发连续读取模式:只要指定起始列地址与突发长度,寻址与数据的读取自动进行,而只要控制好两段突发读取命令的间隔周期(与BL相同)即可做到连续的突发传输

转载于:https://www.cnblogs.com/tureno/articles/6085741.html

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用谷歌Chrome浏览器的过程中,用户可能会遇到一些特殊的需求,比如在浏览网页的时候需要网页每隔一段时间就自动刷新的插件,这个需求最理想的情况就是像节假日刷火车票一样,用户如果每隔一段时间都手动点击刷新的话,是谁也受不了,所以需要一种插件来帮助自己完成这个重复性的动作。 但是由于刷票这个需求可能不止是要简单地刷新页面,还需要更加个性化的刷新功能的定制,所以今天给大家介绍的这款定时刷新Chrome页面的插件并不适合刷票的行为,上面只是举了一个需要定时刷新页面的例子。 Chrome自动刷新插件:Auto Refresh是一款可以自行在Chrome中定制刷新时间的谷歌浏览器插件,用户只需要简单的设置就可以让Chrome完成有用但无聊的定时重复刷新的操作。 Auto Refresh的使用方式也是非常的简单,可以安装下面的步骤进行: 1.在Chrome浏览器中安装Auto Refresh插件,并在浏览器的右上角点击Auto Refresh插件按钮来启动配置界面。 2.在自动刷新的分钟和秒数中填写相应的数字表示刷新的时间间隔。 3.点击开始按钮来启动Auto Refresh插件的自动刷新功能。 Auto Refresh插件虽然看起来功能非常的简单,但是其在一个特殊的使用场景中会代替用户的劳动力变得非常的有用。如果您对这款插件感兴趣的话可以点击下面的下载链接安装到自己的Chrome浏览器中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值