在图3中https://www.systemverilog.io/understanding-ddr4-timing-parameters#refresh,为什么tra利用
定义为两个刷新命令之间的最大时间间隔。这似乎与美光的文件相矛盾。
tRAS指定可激活访问行的最小和最大窗口。最大值受刷新所施加的限制。
DRAM中的每一行都需要定期刷新。tREFI指定刷新操作之间的平均间隔时间(每个操作刷新一行)。所有行都需要在指定的时间内刷新(这通常与温度有关——更热的操作需要更频繁的刷新以保证数据完整性)。对于商业温度范围,这个时间可能是64ms。这意味着,通常需要在64ms内进行8192次刷新操作。
数据表允许您推迟到达9 x trefi的计划刷新(这对性能有所帮助,因为您可以在该间隔期间继续访问该行(而不是在关闭并重新打开行的开销)。该数据表中的定时参数非常保守。意思,如果你没有违反它们,则数据永远不会被损坏。过分克服利用保守的思德并违反这些参数,进入边缘,直到它突破的指出然后退回自己的舒适程度。
如果刷新操作被延迟,控制器需要以某种方式弥补丢失的时间,使平均刷新间隔不超过tREFI。这可以通过在空闲时间发出多于必要的刷新命令来实现,但当事情变得繁忙时,控制器将绝对抢占访问以保持刷新正常。
对于DDR3,我认为JEDEC规定了时间债务的数量如下:控制器必须在8*tREFI时间窗口中发出8个刷新命令。在这个限制下,一个人可以等待将近8个完整的trefi,然后连续发布8个刷新。在DDR4中也是类似的,尽管我认为那里有一些新的刷新功能。
-
-
1\ $ \ begingroup \ $ 这是正确的。PRECHARGE是激活的补充。也就是说,你用ACTIVATE打开一行,然后用PRECHARGE关闭它。这就是我在上面第一句话中提到的。在发出刷新命令之前,必须关闭所有打开的行。PRECHARGE命令可以关闭一个开着的银行或所有开着的银行(每个银行最多可以激活一行)。 \ \ endgroup \美元 2月17日16:41
-
-
1\ $ \ begingroup \ $ 我怀疑这里存在误解(我的意思是mindshare文档是错误的,或者它们有别的意思)。tRC适用于同一银行的连续的activate。所以,根据定义,在两个激活器之间有一个PRECHARGE。类似地,打开的银行必须关闭以发出REFRESH,因此这里也有一个PRECHARGE。时间数字加起来。 \ \ endgroup \美元 2月19日18:46
-
1\ $ \ begingroup \ $ 不。在每个tREFI中添加一个额外的元素,持续8个周期是有效的,或者任何其他安排,使所有页面在64ms内刷新。但是,出于性能方面的考虑,如果有机会,就应该在DRAM空闲时一次性补全差额。 \ \ endgroup \美元 5月17日16:16