4 DDR5 SDRAM命令描述和操作-13
4.13 刷新操作
在DDR5 SDRAM的正常操作中,使用刷新命令(REF)。这个命令是非持久性的,所以每次需要刷新时都必须发出。DDR5 SDRAM要求在平均周期间隔tREFI内进bank刷新循环。
DDR5 SDRAM支持三种类型的刷新操作:
- 正常刷新:通过在正常刷新模式下发出全bank刷新(REFab)命令。
- 细粒度刷新:通过在细粒度刷新模式下发出全bank刷新(REFab)命令。
- 同bank刷新:通过在细粒度刷新模式下发出同bank刷新(REFsb)命令。
本节描述了每种刷新操作类型的详细信息和要求,以及在刷新操作类型之间的转换。
对于正常刷新和细粒度刷新操作,SDRAM的所有bank在发出全bank刷新(REFab)命令之前必须预充电并处于空闲状态,预充电时间至少为tRP(min)。刷新寻址由内部刷新控制器在刷新周期期间生成。一旦开始这个周期,外部地址总线只需要处于有效状态。当刷新周期完成后,SDRAM的所有bank将处于预充电(空闲)状态。刷新命令和下一个有效命令(除了DES,PDE和非目标ODT命令)之间的延迟必须大于或等于最小刷新周期时间tRFC(min),如图61和图62所示。请注意,tRFC时序参数取决于存储密度和刷新模式设置,可以设置为正常刷新模式或细粒度刷新(FGR)模式。
4.13.1 刷新模式
DDR5 SDRAM具有两种不同的刷新模式,具有两种不同的刷新周期时间(tRFC)设置。其中一种是正常刷新模式,另一种是细粒度刷新(FGR)模式。FGR模式提供了更短的刷新周期时间(tRFC2),但同时也要求提供两倍频率的全bank刷新(REFab)命令(tREFI被除以2,即tREFI2 = tREFI1/2)。刷新模式设置通过MRW命令编程,如表278所示。刷新模式在未经MRW命令修改之前是固定的,不支持动态刷新模式更改。
4.13.2 更改刷新模式
如果通过MRW命令更改了刷新模式,新的tREFI和tRFC参数将从速率变化的时刻开始应用。如图63所示,在正常刷新模式下向DRAM发出全bank刷新(REFab)命令时,tRFC1和tREFI1将从命令(REFab)发出的时刻开始应用。而在细粒度刷新(FGR)模式下发出的全bank刷新命令,必须满足tRFC2和tREFI2。
在更改刷新模式之前,必须满足以下条件。否则,无法确保DDR5 SDRAM的数据保持:
1. 在正常刷新模式下,必须完成REFab命令并满足tRFC1,然后才能发出MRW命令以更改刷新模式。
2. 如果在细粒度刷新模式下执行REFab命令,建议在上次通过MRW命令更改刷新模式之后再次使用MRW命令更改刷新模式之前,发出偶数次REFab命令到DDR5 SDRAM。如果满足此条件,在刷新模式改变时不需要额外的刷新命令。如果不满足此条件,则在刷新模式改变时需要额外发出一次REFab命令到DDR5 SDRAM。此额外的刷新命令不计入平均刷新间隔(tREFI)的计算中。请参考图64。
3. 如果在细粒度刷新模式下执行REFsb命令,建议在上次通过MRW命令更改刷新模式之后再次使用MRW命令更改刷新模式之前,所有的bank都接收到了偶数次REFsb命令,因为REFab命令会重置内部bank计数器。如果满足此条件,在刷新模式改变时不需要额外的刷新命令。如果不满足此条件,则在刷新模式改变时需要额外发出一次REFab命令到DDR5 SDRAM。此额外的刷新命令不计入平均刷新间隔(tREFI)的计算中。请参考图65,其中显示了具有4个bank的16Gb及更高密度DRAM的bank组示例。
4.13.3 同一BA刷新
同一bank刷新命令(REFsb)允许DDR5 DRAM将刷新过程应用于每个bank组中的特定bank,与适用于每个bank组中所有bank的全bank刷新命令(REFab)不同。执行同一bank刷新还是全bank刷新的决定取决于DRAM是否发出REFsb或REFab命令,如表241所示。REFsb命令仅在FGR模式(MR4[OP4]=1)下允许使用。
每个同一bank刷新命令(REFsb)会增加一个内部bank计数器,当bank计数器等于bank组中可用bank的数量时,它将被重置,并在下一个后续的REFsb上重新开始。每当内部bank计数器在下一个后续的REFsb上重置并重新开始时,全局刷新计数器也会增加。REFsb命令可以发给任何bank,并且可以按任何bank的顺序发出。然而,在任何bank接收到REFsb命令之前,每个bank必须先接收到一条REFsb命令;因此,在每个bank接收到REFsb命令之前,先发出同一bank的后续REFsb命令是不合法的。第一个发出的REFsb命令是“同步”REFsb命令,并且当以下情况之一发生时,它将重置内部bank计数器为零:
a) 每个bank都接收到一条REFsb命令,
b) 应用RESET,
c) 进入/退出自刷新模式,或
d) 发出REFab命令。
当发出REFab命令或者所有bank都接收到其一条REFsb命令并且“同步”计数重置为零时,DRAM的全局刷新计数器会增加。如果在bank计数器不为零时(即在进行同一bank刷新的中间),发出REFab命令,则在REFab完成之前,SDRAM的全局刷新计数器将不会增加,这实际上会失去此前发出的任何REFsb命令的计数。详细信息请参考表279。
REFsb命令在满足以下条件之前不能发送给设备:
- 在之前的1x或2x REFab命令后,必须满足tRFC1或tRFC2的要求,分别用于1x或2x REFab命令。
- 在之前的REFsb命令后,必须满足tRFCsb的要求。
- 在之前的PRECHARGE命令之后,必须满足tRP的要求。
- 在之前的ACTIVATE命令之后,必须满足tRRD_L的要求(例如,从同一Bank Group的不同bank的ACTIVATE命令到REFsb所在的同一Bank Group的bank之间必须满足tRRD_L)。
发送REFsb命令还有额外的限制:
- 不能满足tFAW的要求(每个REFsb都计为四个激活窗口时序限制中的一个ACTIVATE命令)。
一旦发送了REFsb命令,在同一Bank Group每个Bank中的目标bank将在同一Bank的刷新周期时间(tRFCsb)内无法访问,但是在此同一Bank刷新周期内,同一Bank Group中的其他bank是可访问的并且可以进行寻址。当同一Bank的刷新周期完成后,通过REFsb刷新的bank将处于空闲状态。
发送REFsb命令后,必须满足以下条件:
- 在发送REFab命令之前必须满足tRFCsb的要求。
- 在向同一bank发送ACTIVATE命令之前,必须满足tRFCsb的要求。
- 在向不同bank发送ACTIVATE命令之前,必须满足tREFSBRD的要求。
当n是bank group中bank的数量时,可以用n个REFsb命令替换单个REFab命令,以便安排延迟的刷新命令。
4.13.4 tREFI和tRFC参数
DDR5 SDRAM的最大平均刷新间隔(tREFI)要求取决于刷新模式设置(普通或FGR)和设备的外壳温度(Tcase)。当刷新模式设置为普通刷新模式,发出REFab命令(tRFC1),且Tcase<=85°C时,最大平均刷新间隔(tREFI1)为tREFI。当刷新模式设置为FGR模式,发出REFab命令(tRFC2),且Tcase<=85°C时,最大平均刷新间隔(tREFI2)为tREFI/2。如果刷新模式设置为普通刷新模式,发出REFab命令(tRFC1),但85°C<Tcase<=95°C,同样适用tREFI/2间隔值。最后,如果刷新模式设置为FGR模式,发出REFab命令(tRFC2),且85°C<Tcase<=95°C,最大平均刷新间隔(tREFI2)为tREFI/4。
DDR5 SDRAM包括一种可选方法,用于主机指示刷新命令以2x(tREFI2)刷新间隔速率发出。2x刷新间隔率指示器(MR4:OP[3])向DRAM发出警报,如果主机支持使用CA8作为REF命令的一部分进行刷新间隔率指示。如果启用(MR4:OP[3]=1),主机将使用CA8=H发出1x REF命令(Tcase<=85°C),并使用CA8=L发出2x REF命令(Tcase为任何允许的温度)。MR4:OP[3]是一个状态的读/写“SR/W” MR位,显示DDR5 SDRAM是否支持此可选功能。读取MR4:OP[3]将返回“1”表示支持2x刷新间隔率指示器。如果不支持,将返回“0”。
tREFI基于在DDR5 SDRAM的基准tREF=32ms刷新周期内需要发出的8,192个刷新命令。
4.13.5 3DS设备的tREFI和tRFC参数
典型的平台设计假设在同一时间内最多刷新一个物理rank。为了限制3D堆叠SDRAM的最大刷新电流(IDD5B1),需要将刷新命令错开发送到每个逻辑rank的堆叠中。
单个逻辑rank的tRFC时间定义为tRFC_slr,并被指定为与等效密度的单片式DDR5 SDRAM相同的值。发送到不同逻辑rank(tRFC_dlr)或物理rank(tRFC_dpr)的刷新命令之间的最小错开量被指定为大约tRFC_slr/3(参见表283)。
4.13.6 刷新操作调度灵活性
通常情况下,需要定期地在每个tREFI间隔内向DDR5 SDRAM发出刷新命令。为了在任务调度和切换之间提供更高的效率,对于绝对刷新间隔提供了一定的灵活性。
在普通刷新模式下,最多可以推迟4个REFab命令,这意味着在任何时间点上,总共最多允许推迟4个刷新命令。如果连续推迟了4个REFab命令,周围REFab命令之间的最大间隔将限制为5 × tREFI1(参见图66)。在任何给定时间内,可以在1个tREFI1窗口内发出最多5个REFab命令。最多可以推迟4个REFab命令进入自刷新模式。在具有一个或多个推迟的REFab命令退出自刷新模式后,可以继续推迟更多的REFab命令,但在自刷新之前和之后推迟的总REFab命令数量永远不会超过4。在自刷新模式下,推迟的REFab命令数量不会改变。
在FGR模式下,最多可以推迟8个REFab命令,导致周围REFab命令之间的最大间隔限制为9 × tREFI2(参见图67)。在任何给定时间内,可以在1个tREFI2窗口内发出最多9个REFab命令。相同的8个最大计数适用于进入和退出自刷新时推迟的REFab命令。
4.13.7 自刷新的进入和退出
DDR5 SDRAM可以在普通刷新模式和FGR模式下随时进入自刷新模式,而在进入自刷新之前的模式中发出的刷新命令数量没有任何限制。然而,在退出自刷新模式时,根据自刷新进入的条件可能需要额外的刷新命令。对于额外刷新命令的条件和要求如下:
1. 对于普通刷新模式没有特殊限制。
2. 如果在FGR模式下执行REFab命令,建议在进入自刷新之前,自上次自刷新退出或设置FGR模式的MRW命令之后发出偶数次REFab命令。如果满足此条件,则在退出自刷新时不需要额外的刷新命令。如果不满足此条件,则需要向DDR5 SDRAM发出一个额外的REFab命令在自刷新退出时。这些额外的刷新命令不计入平均刷新间隔(tREFI2)的计算中。参见图68。
3. 如果执行REFsb命令,建议在进入自刷新之前,所有bank都已经接收到了REFsb命令,因为进入和退出自刷新会重置内部bank计数器。如果满足此条件,则在退出自刷新时不需要额外的刷新命令,并且可以按任意顺序向任何bank发出REFsb命令。如果不满足此条件,则需要向DDR5 SDRAM的每个bank发出一个额外的REFab命令或REFsb命令在自刷新退出时。这些额外的刷新命令不计入平均刷新间隔的计算中(例如具有4个bank组的16Gb及更高密度DRAM的情况,参见图69)。