LPDDR4学习笔记(四)

刷新:

命令如下:

同预充电类似,刷新也支持all bank和per bank,通过AB field来指示。

per bank的刷新可以是任何顺序来刷新八个bank,per bank refresh完成对八个bank的刷新之后,controller可以发送另一组刷新命令去刷新bank,可以是和上一次相同的顺序,也可以是和上一次不同的顺序,但是不能对相同的bank发起per bank refresh除非八个bank全部被刷新完成

ddr刷新是按照行来进行的,ddr内部有一个refresh counter来记录当前刷新行号,同时还有一个bank counter用来记录bank的刷新情况,当所有的bank刷新一次之后,bank counter会清0。

bank进行刷新之前,bank必须处于idle状态。同预充电tRPab和tRPpb,对于刷新命令也有tRFCab和tRFCpb,表示刷新命令发出至下一个命令需要等待的时间,还有一个额外的时间参数是tpbR2pbR,表示在发送两个REFpb命令(这里当然是指一组REFpb命令内任意两个REFpb命令)之间的时间间隔。下面两个时序图给出了这两个参数:

除此之外,关于刷新最重要的一个时间参数是tREFI,它表示刷新命令的间隔,也就是说同一个bank平均等待tREFI需要进行一次刷新。但是刷新命令是可以提前或者延后的,如果当前bank空闲,可以在一个tREFI中插入八个刷新命令,这个八个刷新命令间隔需要满足tRFC,那么在后续“忙”的时候,就可以延后刷新命令,以支持推迟8个刷新命令为例,那么即最大9×tREFI窗口内可以不进行刷新操作,也就是如下图所示的。因此这里只需要满足9×tREFI滑动窗内至少有两次刷新操作即可。当然,也有一个限制是,在2×tREFI内,最多只能发送16次刷新命令。

这里需要再提一下tRRD,这个参数不仅仅用于激活不同bank的等待间隔,同时也适用于REFpb命令发送后,去激活别的bank,也需要满足tRRD的要求。如下图:

bank刷新率可通过模式寄存器配置,如下图所示:

根据模式寄存器配置option,lpddr4在刷新率为1倍及其以下tREFI时,支持最大8个刷新命令的延迟,并且在2×tREFImax之内最多发送16个刷新命令。同时也支持最大2个和4个刷新命令的延迟,分别对应不同的刷新率。

下图展示了突发读传输之后,需要完成预充电操作,即进入idle状态,才可以发送RFC命令。

对于同一个bank,支持带自动预充电的读命令之后等待tRC发送该bank的刷新命令。(tRC表示同一个bank的激活命令间隔)

自刷新

自刷新不需要外部刷新命令,lpddr4有一个内置timer去容纳自刷新操作,自刷新命令只允许在突发读传输完成和SDRAMidle状态时。

spec上这个图个人理解是不是画错了,应该是CAS-2命令的第二个上升沿哇~

在self refresh期间,SDRAM可以接受MRR-1, CAS-2, DES, SRX, MPC, MRW-1, MRW-2,但是不可以进行bank masking、segment masking和self refresh中止的设定。同样在SRX(self refresh exit)之后,SDRAM接受的命令规则同上,直至满足tXSR之后,才可以向SDRAM发送其他有效命令。

SDRAM能够在标准温度范围和超过标准温度范围内进行self refresh,并且能够管理功耗,在低温下功耗更低,在高温下功耗更高。

为了self refresh,电源pin脚(VDD1、VDD2、VDDQ)必须要在有效的level,注意在self refresh过程中SDRAM进入power down,VDDQ可能会被关掉,前提是满足tCKELCK。

self refresh mode的使用会带来一个问题,可能会导致sdram内部一个timed的刷新时间被missed,所以在退出self refresh之后,至重新进入下一个self refresh之前,sdram至少需要一次REFab或者八个bank的REFpb命令。注意这个刷新命令不包括在tREFI间隔所需的常规刷新命令的计数中,也不会修改提前或者延迟的刷新命令计数,也不计入2tREFI内允许的最大刷新次数

下图展示了一个self refresh mode从进入到离开的时序图:

在self refresh期间允许SDRAM进入power down。

上图红色框CKE信号的拉低意味着SDRAM此时进入了power down,在满足tCKELCK之后,clk可以停止,VDDQ可以关闭,CS在满足tCKELCS后可以无效。

部分阵列self refresh(PASR

PASR Bank masking

self refresh操作可以以bank进行mask,当某个bank被mask,那么当进行self refresh时,该bank不会进行刷新操作,那么这样数据的维持将不能保证;

PASR Segment masking

部分mask机制,以×16mode,共8192行,模式寄存器17共8个bit,最低bit为1表示第一个1024行块的范围被mask,次低位为1表示第二个1024行块的范围被mask,依次类推,注意每个bit对应一个1024行的范围,相互之间互不影响。此外还需要注意3Gb、6Gb、12Gb,模式寄存器[7:6]必须为0。

下图是模式寄存器16、17的信息:

下图给出了bank masking和segment masking联合使用:

SR Abort

暂时还不理解这个操作。

下图是一些刷新期间的命令时序:

tMRD是两个MRS命令之间的最小延迟,实际上MRS和non-MRS命令之间的最小间隔是tMOD。

  • 32
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值