一种自动更新DRAM刷新间隔的方法及装置与流程

文档序号:26269436发布日期:2021-08-13 19:22阅读:155来源:国知局
一种自动更新DRAM刷新间隔的方法及装置与流程

本申请涉及一种dram(dynamicrandomaccessmemory,动态随机存取存储器)的刷新间隔的更新方法。



背景技术:

dram工作时需要以固定的时间间隔刷新,以保证内容不丢失。dram在不同的温度下,所要求的刷新间隔也不同。一般来说,温度越高,要求刷新间隔越短。如果温度高,而刷新间隔不能满足要求,则访问dram可能会出错,导致数据出错,对系统造成损害。

对于lpddrsdram(low-powerdoubledataratesynchronousdynamicrandomaccessmemory,低功耗双倍数据率同步动态随机存取存储器)的第二代lpddr2、第三代lpddr3、第四代lpddr4,dram生产商在产品内部增加了温度传感器,能够获取产品温度,然后要求对应的刷新间隔。在jedec(jointelectrondeviceengineeringcouncil,联合电子设备工程委员会)标准中,软件可以通过mr4命令读取产品要求的实时刷新间隔,从而设置合适的刷新间隔。通常,软件间隔固定时间发送mr4命令读取产品要求的刷新间隔,判断是否需要更新刷新间隔。如果需要,则配置合适的刷新间隔。这种采用软件命令读取dram要求的刷新间隔、配置dram的刷新间隔的方法,有一个弊端。如果软件命令运行的间隔时间过长,可能来不及更新dram的刷新间隔,导致读写dram中的数据出错。如果软件命令运行的间隔时间太短,则会浪费cpu的计算资源。

当前的移动终端或智能设备中,系统的工作模块多、计算量大、工作频率高,对dram访问带宽非常大,导致温度变化很快,现有的软件命令读取及配置dram的刷新间隔的方法越来越不合适。比如需要以几十毫秒为周期运行软件命令时,软件实现的开销就很大,对cpu的资源以及系统的功耗都带来不好的影响。



技术实现要素:

本申请所要解决的技术问题是提供一种dram控制器发送命令(例如mr4命令)读取dram要求的刷新间隔,并且以此更新dram实际的刷新间隔的方法。当温度变化时,该方法自动调整dram的刷新间隔。

为解决上述技术问题,本申请提出了一种自动更新dram的刷新间隔的方法,包括如下步骤。步骤s1:dram控制器设置一个定时器进行循环计时,并在寄存器中存储要求的刷新间隔的不同取值对应的dram刷新间隔值。步骤s2:每间隔该定时器的一个周期,dram控制器发送命令读取dram要求的刷新间隔,获取该命令的读取结果。步骤s3:如果本次读取结果表示自上次读取以来温度无变化,则返回步骤s2;否则进入步骤s4。步骤s4:如果本次读取结果表示dram的温度超出限制,则dram控制器产生中断向软件报告异常,随后返回步骤s2;否则进入步骤s5。步骤s5:dram控制器根据本次读取结果记载的要求的刷新间隔,将该要求的刷新间隔在寄存器中对应存储的dram刷新间隔值配置给dram,作为dram实际的刷新间隔,随后返回步骤s2。

进一步地,所述步骤s1中,定时器的循环计时的周期由软件动态配置。

进一步地,所述步骤s1中,如果定时器的循环计时的周期设为0,则该定时器不工作,dram控制器不执行后续的步骤s2至步骤s5。

进一步地,所述步骤s2中,所述命令为mr4命令。

进一步地,所述步骤s2中,mr4命令的读取结果为8位二进制数据;第一位是温度更新标志,取值为0表示自上次mr4命令读取以来后三位无变化,取值为1表示自上次mr4命令读取以来后三位有变化;后三位是刷新率,取值为000表示sdram低温超出使用极限,取值为001表示要求的刷新间隔为4倍刷新,取值为010表示要求的刷新间隔为2倍刷新,取值为011表示要求的刷新间隔为1倍刷新,取值为100表示为要求的刷新间隔为0.5倍刷新,取值为101表示要求的刷新间隔为0.25倍刷新且不降低交流信号时序,取值为110表示要求的刷新间隔为0.25倍刷新且降低交流信号时序,取值为111表示sdram高温超出使用极限。

进一步地,所述步骤s3中,当本次读取结果中的温度更新标志的取值为0,表示自上次读取以来温度无变化;当本次读取结果中的温度更新标志的取值为1,表示自上次读取以来温度有变化。

进一步地,所述步骤s4中,当本次读取结果中的刷新率的取值为000或111,表示dram的温度超出限制;当本次读取结果中的刷新率的取值既不是000也不是111,表示dram的温度没有超出限制。

进一步地,所述步骤s4中,当dram控制器产生中断向软件报告异常后,由软件改善温度、或者重启、关机。

本申请还提出了一种自动更新dram的刷新间隔的装置,包括定时及存储单元、周期读取单元、温度变化判断单元、温度限制判断单元、刷新间隔更新单元。所述定时及存储单元用来设置一个定时器进行循环计时,并在寄存器中存储要求的刷新间隔的不同取值对应的dram刷新间隔值。所述周期读取单元用来每间隔该定时器的一个周期,发送命令读取dram要求的刷新间隔,获取该命令的读取结果。所述温度变化判断单元用来在本次读取结果表示自上次读取以来温度无变化时,等待所述周期读取单元下一次发送命令;还用来在本次读取结果表示自上次读取以来温度有变化时,由温度限制判断单元继续处理。所述温度限制判断单元用来在本次读取结果表示dram的温度超出限制时,产生中断向软件报告异常,随后等待所述周期读取单元下一次发送命令;还用来在本次读取结果表示dram的温度没有超出限制时,由刷新间隔更新单元继续处理。所述刷新间隔更新单元用来根据本次读取结果记载的要求的刷新间隔,将该要求的刷新间隔在寄存器中对应存储的dram刷新间隔值配置给dram,作为dram实际的刷新间隔,随后等待所述周期读取单元下一次发送命令。

进一步地,所述定时及存储单元、周期读取单元、温度变化判断单元、温度限制判断单元、刷新间隔更新单元均由dram控制器来实现。

本申请取得的技术效果是:由硬件进行dram刷新间隔的更新,减少了软件的工作,减少了对cpu资源的占用,降低了系统功耗。

附图说明

图1是本申请提出的自动更新dram的刷新间隔的方法的流程示意图。

图2是本申请提出的自动更新dram的刷新间隔的装置的流程示意图。

图中附图标记说明:定时及存储单元1、周期读取单元2、温度变化判断单元3、温度限制判断单元4、刷新间隔更新单元5。

具体实施方式

请参阅图1,本申请提出的自动更新dram的刷新间隔的方法包括如下步骤。

步骤s1:dram控制器设置一个定时器进行循环计时,并在寄存器中存储要求的刷新间隔分别为4倍刷新、2倍刷新、1倍刷新、0.5倍刷新、0.25倍刷新时对应的dram刷新间隔值。

优选地,定时器的循环计时的周期(即定时时长)可由软件动态配置。如果定时器的循环计时的周期设为0,则该定时器不工作,dram控制器不会执行后续的步骤s2至步骤s5。

步骤s2:每间隔该定时器的一个周期,dram控制器发送命令(例如mr4命令)读取dram要求的刷新间隔,获取该命令的读取结果。

在jedec标准中,mr4命令的返回值(读取结果)的长度为8位(bit)二进制数据。其中第一位是温度更新标志tuf(temperatureupdateflag),取值为0表示自上次mr4命令读取以来后三位无变化,取值为1表示自上次mr4命令读取以来后三位有变化。后三位是刷新率(refreshrate),取值为000表示sdram(同步动态随机存取存储器)低温超出使用极限,取值为001表示要求的刷新间隔为4倍刷新,取值为010表示要求的刷新间隔为2倍刷新,取值为011表示要求的刷新间隔为1倍刷新(默认值),取值为100表示为要求的刷新间隔为0.5倍刷新,取值为101表示要求的刷新间隔为0.25倍刷新且不降低交流信号时序(noactimingderating),取值为110表示要求的刷新间隔为0.25倍刷新且降低交流信号时序(withactimingderating),取值为111表示sdram高温超出使用极限。

步骤s3:如果本次读取结果表示自上次读取以来温度无变化,例如是读取结果中的温度更新标志tuf的取值为0,则返回步骤s2等待下一次dram控制器发送命令读取。

如果本次读取结果表示自上次读取以来温度有变化,例如是读取结果中的温度更新标志tuf的取值为1,则进入步骤s4。

步骤s4:如果本次读取结果表示dram的温度超出限制,例如是读取结果中的刷新率的取值为000或111(均为二进制数),则dram控制器产生中断向软件报告异常,由软件进行合适的处理——例如改善温度、或者重启、关机等,避免读写dram产生错误数据损害系统。随后返回步骤s2等待下一次dram控制器发送命令读取。

如果本次读取结果表示dram的温度没有超出限制,例如是读取结果中的刷新率的取值既不是000也不是111(均为二进制数),进入步骤s5。

步骤s5:dram控制器根据本次读取结果记载的要求的刷新间隔,将该要求的刷新间隔在寄存器中对应存储的dram刷新间隔值配置给dram,作为dram实际的刷新间隔。随后返回步骤s2等待下一次dram控制器发送命令读取。

所述读取结果记载的要求的刷新间隔例如是读取结果中的刷新率的取值为001、010、011、100、101、110的情形,分别表示要求的刷新间隔是现有刷新间隔的4倍、2倍、1倍(即不变化)、0.5倍、0.25倍、0.25倍。

请参阅图2,本申请提出的自动更新dram的刷新间隔的装置包括定时及存储单元1、周期读取单元2、温度变化判断单元3、温度限制判断单元4、刷新间隔更新单元5。图2所示装置与图1所示方法相对应。

所述定时及存储单元1用来设置一个定时器进行循环计时,并在寄存器中存储要求的刷新间隔分别为4倍刷新、2倍刷新、1倍刷新、0.5倍刷新、0.25倍刷新时对应的dram刷新间隔值。

所述周期读取单元2用来每间隔该定时器的一个周期,发送命令(例如mr4命令)读取dram要求的刷新间隔,获取该命令的读取结果。

所述温度变化判断单元3用来在本次读取结果表示自上次读取以来温度无变化时,等待所述周期读取单元2下一次发送命令读取dram要求的刷新间隔并获取该命令的读取结果。所述温度变化判断单元3还用来在本次读取结果表示自上次读取以来温度有变化时,由温度限制判断单元4继续处理。

所述温度限制判断单元4用来在本次读取结果表示dram的温度超出限制时,产生中断向软件报告异常,随后等待所述周期读取单元2下一次发送命令读取dram要求的刷新间隔并获取该命令的读取结果。所述温度限制判断单元4还用来在本次读取结果表示dram的温度没有超出限制时,由刷新间隔更新单元5继续处理。

所述刷新间隔更新单元5用来根据本次读取结果记载的要求的刷新间隔,将该要求的刷新间隔在寄存器中对应存储的dram刷新间隔值配置给dram,作为dram实际的刷新间隔,随后等待所述周期读取单元2下一次发送命令读取dram要求的刷新间隔并获取该命令的读取结果。

优选地,所述定时及存储单元1、周期读取单元2、温度变化判断单元3、温度限制判断单元4、刷新间隔更新单元5均由dram控制器这个硬件来实现。

与现有技术相比,本申请取得了如下有益的技术效果。第一,发送读取命令、获取读取结果、判断温度是否有变化、判断温度是否超极限范围、查询要求的刷新间隔对应的dram刷新间隔值、更新dram的刷新间隔的工作全部由硬件(dram控制器)完成,减少了软件的工作量。第二,由硬件自动进行dram刷新间隔的更新,比软件操作更快更及时。第三,当发现dram的温度异常时自动产生硬件中断报告系统,避免数据出错对系统的损害。

以上仅为本申请的优选实施例,并不用于限定本申请。对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1