大数跨境

技术洞见 | DDR Study - LPDDR5 Refresh Management

技术洞见 | DDR Study - LPDDR5 Refresh Management 牛芯半导体
2025-07-03
1
导读:本文转载自CSDN论坛作者晴天饺子的博客,转载文章仅供学习和研究使用。

本文转载自CSDN论坛作者晴天饺子的博客,转载文章仅供学习和研究使用。


RFM - Refresh Management


DRAM Cell由1个晶体管M与1个电容Cs组成。电容中的电荷,也会随着晶体管的开关漏电流而慢慢流失。所以也就决定了DRAM必须要每间隔一段时间进行一次刷新,对随时间流失的电荷进行补充。
补充的方式分为Precharge(访问前的单行充电)+Refresh(整个Bank周期性充电)。
在读写操作中,通过行选择与列选择线来选择操作的基本存储单元。如上图所示,存储单元位于行列选择线的交叉处。
那存储在DRAM Cell中电容Cs存储的高低电平数据是如何被读取出来的?
在DRAM Bank中,除了存储bit信息的Cell单元,还有用于放大Cell数据的Sense单元和供电单元,如下图所示。
因为DRAM单次只支持一个Row的访问,所以平时不访问的时候,供电模块并不会给Workline供电。
所以每一次访问DRAM之前,都需要Pre-Charge预充电来读取到Row上面所有Cell存储的信息,详细过程如下:
  • 关闭所有Row Line - Wordline的供电。
  • 所有Bit Line接1/2 VCC供电,充/放电到1/2 VCC,这一步就是Pre-Charge。
  • 根据Activate请求,选中对应的Row- Wordline开始供电,对此行所有的奇数/偶数列根据Cell中的数据对Row上的位电容进行充/放电。
  • 如下图所示:如果CELL0数据为1,Cs电容高于B0 Bit Line上的1/2 VCC,也就是VB0的电平状态为高。反之为低。
而LPDDR的刷新基本分为AR(Auto-Refresh)+SR(Self-Refresh)两种,AR刷新主要应用在DRAM Busy场景下保证数据完整性,SR主要应用在DRAM IDLE场景下降低功耗。
基于LPDDR5 Truth Table可以确认Refresh的刷新指令内容,如下图所示:
部分缩写定义如下:
  • H - High Level
  • L - Low Level
  • X - 可以为任意电平状态,包括浮动电平信号
  • V - 可以为High或者Low电平,但不可以为浮动电平信号
  • DSM - 为High表示自刷新和深度睡眠Deep Sleep同时出现,为异常状态
  • PD - 为High表示自刷新和下电Power Down同时出现,为异常状态
下图是Self-Refresh的Timing信息,可以看到需要MC控制器端发送对应的刷新指令控制刷新的开始与结束:
参数tSR和tXSR分别是用于MC控制器端等待DRAM执行自刷新和退出自刷新的时长限制,相关参数限制如下:
并且在LPDDR5中基于REFpb(Per Bank Refresh)和REFab(All Banks Refresh)命令,增加了对于不同Bank Architecture的Refresh控制设计:
BG / 16B Mode
BG和16B Mode下,Per Bank Refresh命令每次可以刷新两个Bank。每执行一次REFpb都会增加Bank Counter计数值。
并且,必须独立执行8次之后,保证所有16个Bank均被刷新,才能对同一个Bank再次执行Refresh。
每执行一次REFab都会清空Bank Counter计数值,而每次所有Bank都完成刷新后,Ref Counter(Row Address)会加1。
如下图所示,是一次基于BG/16B Mode的REFpb+REFab的信息变化图,顺序:(0,8)-(1,9)-(2,10)-(3,11)-(4,12)-(5,13)-(6,14)-(7,15)
8B Mode
8B Mode下,Per Bank Refresh命令每次可以刷新一个Bank。并且必须独立执行8次之后,保证所有8个Bank均被刷新,才能对同一个Bank再次执行Refresh。
同样的,每执行一次REFab都会清空Bank Counter计数值。每次所有Bank都完成刷新后,Ref Counter(Row Address)会加1。
如下图所示,是一次基于8B Mode的REFpb+REFab的信息变化图,顺序:0-1-2-3-4-5-6-7
那么可以推测如果每次Refresh都需要通过MC控制器端发送,那么在高频场景下就会增加很多延时,因为每次DRAM刷新都需要从外部接受指令才能进行。


LPDDR4 RFM


LPDDR4中就针对此类Refresh场景导致高延时问题而提出了RFM方案,通过增加对ACTIVE激活指令的Monitor。
每次ACTIVE激活指令都会增加累计变量RAA - Rolling Accumulated ACT。
当RAA的累计值超过阈值 RAAIMT(由Vendor提供此Value),DRAM内部就会自动执行刷新,而不用MC控制器端的参与。
当RFM执行或者MC发出SRE命令时,对应Bank里的RAA计数就会减少,减少的值为RAAIMT x RAADEC,RAADEC倍数信息由MR36控制。
RFM指令也可以累计或者延时,但是RAA的累加值不能超过RAAMMT倍数的RAAIMT数量。
并且在LPDDR4上,RFM可以通过RFMab命令为所有bank执行refresh,也可以通过RFMpb命令为单独bank执行refresh。
上图中的部分变量信息如下:
  • RAA - Rolling Accumulated ACT,监控ACTIVE激活指令次数的变量
  • RAAIMT - RAA累计阈值,用于触发一次RFM
  • RAAMMT - 累计的RAA计数值倍数信息,用于控制RFM延时执行的最大阈值
  • RAADEC - 累计的RAA计数值倍数信息,用于执行RFM后计算需要减少的RAA计数值
  • tREFIe - 内部有效刷新间隔
  • RFMTH - RFMTH = RAAIMT * tRC(RAS cycle time),不启用RFM场景下,MC需要发出SRE命令的间隔阈值


LPDDR5 RFM


保留了LPDDR4中对于RFM的相关参数,RAA/RAAIMT/RAAMMT/RAADEC/RFMTH的定义都是一样的。
不同的是,因为LPDDR5拥有3中不同mode的Bank Architecture,并且增加了SB0 - Single Bank的标志位:
并且LPDDR5提供了ARFM - Adaptive RFM供Vendor选择不同挡位的RFM.


Optimized Refresh


LPDDR5还有Optimized Refresh的相关设计,由MR25 OP[7]控制开关。
由于Self-Refresh的行为是由MC控制端的SRE+SRX命令控制的,就会存在基于Timer设定的DRAM Internal Refresh事件由于过早SRX执行导致丢失的问题。
所以在执行SRX退出Self-Refresh之后,在执行新一轮的Self-Refresh之前,必须至少执行一次Refresh,防止一直丢失Refresh。
而这种保证Refresh可以通过如下的方式进行管理:
在上图中可以看到,SRX退出Self-Refresh时(T4),DRAM Internal Timer也Stop Count。直到下一次SRE命令过来,再Resume Timer,这个期间的Counter Value始终为N。
而这个DRAM Internal Timer就是用于控制ABR - All Bank Refresh,Timer每次达到MAX计数就会执行REFab或者所有Bank的REFpb,完成ABR同时清空Timer计数。
从而避免过早SRX执行导致Refresh Event丢失的问题。

往期推荐

01

牛芯半导体成功入围2024年度深圳高成长企业TOP100

▲ 点击阅读

02

牛芯DDR5 IP取得突破性进展

▲ 点击阅读

03

牛芯半导体荣获2024年度深圳市集成电路产业双奖

▲ 点击阅读


牛芯半导体(深圳)有限公司(简称“牛芯半导体”)成立于2020年,聚焦接口IP的开发和授权,并提供相关整体解决方案,致力成为全球领先的IP供应商。


牛芯半导体在主流先进工艺布局SerDes、DDR等中高端接口IP,产品广泛应用于消费电子、网络通信、数据存储、人工智能、汽车电子、医疗电子等领域。


未来,牛芯半导体持续响应IP市场需求,适应不断演进的接口技术和日益拓展的接口互联场景,赋能数智时代下的千行百业。

【声明】内容源于网络
0
0
牛芯半导体
牛芯半导体,专注于高速互联技术的研发和持续创新,拥有完全自主可控的知识产权,提供全栈式接口IP授权和高速互联芯片的定制方案,赋能芯片国产化;已服务客户超百家,涵盖智能驾驶、人工智能、特种计算等领域,致力成为全球领先的高速互联半导体公司。
内容 0
粉丝 0
牛芯半导体 牛芯半导体,专注于高速互联技术的研发和持续创新,拥有完全自主可控的知识产权,提供全栈式接口IP授权和高速互联芯片的定制方案,赋能芯片国产化;已服务客户超百家,涵盖智能驾驶、人工智能、特种计算等领域,致力成为全球领先的高速互联半导体公司。
总阅读0
粉丝0
内容0