刷新控制方法以及相应存储器控制器与流程

文档序号:17335325发布日期:2019-04-05 22:25阅读:389来源:国知局
刷新控制方法以及相应存储器控制器与流程

本发明大体涉及存储器与控制器,且更具体而言,涉及存储系统以及相关刷新控制方法。



背景技术:

除非此处另有说明外,本部分所描述的方法相对于下面列出的申请专利范围而言不是先前技术,并且本部分的引入并非承认其是先前技术。

图1原理性显示传统存储系统的架构图。如图1所示,存储系统100包含存储器控制器120与动态随机访问存储器(dram)110。

通常地,存储器控制器120与一主机(图未显示)相连。而且,存储器控制器120可从主机写入数据到dram110,或者存储器控制器120可从dram110读取数据并传输数据给主机。例如,双倍速率dram(也被缩写为ddrdram)是普通dram的一种。而且,第三代ddrdram缩写为ddr3dram,而第四代ddrdram被缩写为ddr4dram。

dram110包含具有多个存储器单元的存储器单元阵列。每个存储器单元可包含一存储器电容。dram110更包含一刷新电路。刷新电容用于刷新存储器单元阵列的存储器单元来防止存储器电容的数据丢失。

为了防止存储器电容的数据丢失,刷新电路根据一刷新信息刷新存储器阵列的所有存储器单元。例如,刷新信息可包含指示刷新间隔的刷新速率参数,刷新间隔等于刷新速率参数乘以刷新窗口trefw。当确定了刷新间隔,刷新速率也确定了。因为dram110的数据丢失率与环境温度相关,dram110能根据环境温度自动改变刷新信息。而且,更新的刷新信息储存在dram110的一寄存器内。

当存储器控制器120被禁用或处于睡眠状态,dram110的刷新电路根据dram110内的刷新信息自动执行自刷新动作(self-refreshaction)来防止存储器单元阵列的数据丢失。

当存储器控制器120处于正常工作状态,存储器控制器120必须要首先从dram110的寄存器读取刷新信息。然后,存储器控制器120根据读取的刷新信息周期性发送一刷新命令给dram110。根据该刷新命令,dram110的刷新电路执行刷新动作来防止存储器单元阵列的数据丢失。

例如,dram110的存储器单元阵列包含多个条(bank),且所有条刷新周期时间(allbankrefreshcycletime)trefcab已经在dram规格中有定义。当存储器控制器120处于正常工作状态,存储器控制器120必须要遵守所有条刷新周期时间trefcab来周期性发送所有条刷新命令(all-bankrefreshcommands)或周期性发送每条刷新命令(per-bankrefreshcommands)。所有条刷新周期时间trefcab是两个连续所有条刷新命令之间的时间间隔。而且,所有条刷新周期时间trefcab除以条的总数是每条刷新周期时间,每条刷新周期时间指示两个连续每条刷新命令之间的时间间隔。如上所述,刷新电路在存储器控制器120处于睡眠状态或正常工作状态时刷新存储器单元阵列的所有存储器单元。

但是,传统技术仍有一些不足。例如,dram110的一部分存储单元阵列储存无效数据或并没有储存数据。因为刷新命令在整个存储器单元阵列上执行,存储器控制器120的资源被浪费。类似地,在整个存储器单元阵列上执行自刷新动作的方式也浪费了dram110的资源。



技术实现要素:

为了解决上面的技术问题,本发明提供了一种存储系统的刷新控制方法及存储器控制器。

本发明的一个实施例公开了一种存储系统的刷新控制方法,其特征在于,该存储系统包含具有寄存器组与存储器单元阵列的动态随机访问存储器,该刷新控制方法包含下列步骤:更新该寄存器组来划分该存储器单元阵列为第一区域与第二区域,其中该第一区域设置为遮掩区域,且该第二区域设置为不遮掩区域;以及发送刷新命令给该动态随机访问存储器,其中根据该刷新命令,在该存储器单元阵列的该第二区域上执行一刷新动作。

本发明另一实施例公开了一种存储器控制器,其特征在于,耦接于动态随机访问存储器,该动态随机访问存储器包含存储器单元阵列,寄存器组与刷新电路,该存储器控制器,用于设置该寄存器组,其中该存储器控制器设置该存储器单元阵列的第一区域为遮掩区域且设置该存储器单元阵列的第二区域为不遮掩区域,其中在该存储器控制器发送刷新命令给该动态随机访问存储器后,该刷新电路根据该刷新命令在该存储器单元阵列的该第二区域上执行刷新动作。

本发明的存储系统的刷新控制方法及存储器控制器能够刷新存储器单元阵列的一部分以节省资源。

下面实施例将结合附图给出具体的说明。

附图说明

通过阅读下面详细的说明书以及结合下面附图的示例,本发明可以被更充分理解,其中:

图1原理性显示传统存储系统的架构图;

图2原理性显示根据本发明第一实施例的存储系统的架构;

图3a原理性地显示在条遮掩模式下存储器单元阵列与dram的遮掩状态寄存器的关系;

图3b原理性显示段遮掩模式下存储器单元阵列与dram的遮掩状态寄存器之间的关系;

图3c原理性地显示在混合模式下存储器单元阵列与dram的遮掩状态寄存器的关系;

图4原理性地显示本发明第二实施例的存储系统的架构;

图5原理性显示根据本发明第三实施例的存储系统的架构;

图6显示根据本发明第三实施例的遮掩命令与刷新速率之间的关系的原理时序图。

具体实施方式

以下描述为本发明的较佳实施例。以下实施例仅用来举例阐释本发明的技术特征,并非用以限定本发明。本发明的保护范围当视权利要求书所界定为准。

图2原理性显示根据本发明第一实施例的存储系统的架构。存储系统是应用于dram的自刷新操作。

如图2所示,存储系统包含存储器控制器220以及动态随机访问存储器(dram)210。存储器控制器220与主机相连(图未显示)。存储器控制器220可从主机写入数据到dram210,或者存储器控制器220可从dram210读取数据并传输数据给主机。

此实施例中,dram210包含存储器单元阵列260,寄存器组250以及刷新电路240。寄存器组250包含遮掩状态寄存器(maskingstatusregister)253,刷新速率寄存器252以及模式寄存器254。另一实施例中,刷新速率寄存器252与遮掩状态寄存器253可被包含在模式寄存器254中。

因为dram210的数据丢失率与环境温度相关,dram210能根据环境温度自动改变刷新信息。而且,更新的刷新信息储存在dram210中的刷新速率寄存器252中。例如,随着环境温度的升高,包含在刷新信息中的刷新速率参数会变小,且刷新间隔会变短,这意味着更快的刷新速率。反之,随着环境温度的降低,包含在刷新信息中的刷新速率参数会变大,且刷新间隔会变长,这意味着更慢的刷新速率。

而且,储存在刷新速率寄存器252中的刷新信息能被dram210所更新。存储器控制器220不能修改刷新速率寄存器252的内容,且存储器控制器220仅能从刷新速率寄存器252中读取刷新信息。

此实施例中,存储器单元阵列260被划分成多个区域。遮掩状态寄存器253映射到存储器单元阵列260的所有区域。而且,存储器控制器220选择性发送一遮掩命令或不遮掩命令给遮掩状态寄存器253。根据遮掩命令或不遮掩命令,更新状态寄存器253。结果,存储器单元阵列260的区域被选择性设置为遮掩区域或不遮掩区域。而且,不遮掩区域储存有效数据,且遮掩区域储存无效数据。

当存储器控制器220被禁用或处于睡眠状态,dram210的刷新电路240执行自刷新动作。当执行自刷新动作时,dram根据遮掩状态寄存器253的内容在不遮掩区域上执行刷新。刷新电路240然后能在不遮掩区域上执行自刷新动作。

存储器单元阵列260包含多个存储器条。每个存储器条包含多个存储器段(memorysegments)。换句话说,多个区域是多个存储器条或多个存储器段。

图3a原理性地显示在条遮掩模式(bankmaskmode)下存储器单元阵列与dram的遮掩状态寄存器的关系。如图3a所示,存储器单元阵列260包含多个存储器条bi-2~bi+2。遮掩状态寄存器253a被映射到存储器单元阵列260的储存器条bi-2~bi+2。

在条遮掩模式中,存储器控制器220发送遮掩命令或不遮掩命令来设置遮掩状态寄存器253a。结果,存储器单元阵列260的存储器条被选择性设置为遮掩存储器条(mb)或不遮掩存储器条(ub)。例如,遮掩存储器条(mb)包含存储器条bi-2,bi与bi+1,而不遮掩存储器条(ub)包含储存器条bi-1与bi+2。根据遮掩命令,不遮掩存储器条被设置为遮掩存储器条。根据不遮掩命令,遮掩存储器条被设置为不遮掩存储器条。

当存储器控制器220被禁用或处于睡眠状态时,dram210的刷新电路240根据遮掩状态寄存器253a的内容在不遮掩存储器条上执行自刷新动作。也就是说,刷新电路240对应于dram刷新指针在不遮掩存储器条bi-1及bi+2上执行自刷新动作。并且,dram刷新指针能自动在遮掩存储器条bi-2,bi及bi+1上跳过。

上述方法能防止存储器单元阵列260的不遮掩存储器条bi-1与bi+2的数据丢失。另一方面,遮掩存储器条bi-2,bi及bi+1储存无效数据。即便遮掩存储器条的数据丢失了,存储系统也不会受到影响。

图3b原理性显示段遮掩模式(segmentmaskmode)下存储器单元阵列与dram的遮掩状态寄存器之间的关系。如图3b所示,存储器单元阵列260包含多个存储器条bi-2~bi+2。每个存储器条包含多个存储器段sj-3~sj+3。遮掩状态寄存器253b映射到存储器单元阵列260的存储器段sj-3~sj+3。

在段遮掩模式下,存储器控制器220发送遮掩命令或不遮掩命令来设置遮掩状态寄存器253b。结果,存储器单元阵列260的存储器段被选择性设置为遮掩存储器段(ms)或不遮掩存储器段(us)。例如,遮掩存储器段(ms)包含存储器段sj-2与sj+1,且不遮掩存储器段(us)包含存储器段sj-3,sj-1,sj,sj+2及sj+3。根据遮掩命令,不遮掩存储器段被设置为遮掩存储器段。根据不遮掩命令,遮掩存储器段被设置为不遮掩存储器段。

当存储器控制器220被禁用或处于睡眠状态时,dram210的刷新电路240根据遮掩状态寄存器253b的内容在不遮掩存储器段上执行自刷新动作。也就是说,刷新电路240对应于dram刷新指针在不遮掩存储器段sj-3,sj-1,sj,sj+2及sj+3上执行自刷新动作。并且,dram刷新指针能自动在遮掩存储器段sj-2及sj+1上跳过。

上述方法能防止存储器单元阵列260的不遮掩存储器段sj-3,sj-1,sj,sj+2及sj+3的数据丢失。另一方面,遮掩存储器段sj-2及sj+1储存无效数据。即便遮掩存储器段的数据丢失了,存储系统也不会受到影响。

图3c原理性地显示在混合模式(hybridmode)下存储器单元阵列与dram的遮掩状态寄存器的关系。混合模式是条遮掩模式与段遮掩模式的混合模式。如图3c所示,存储器单元阵列260包含多个存储器条bi-2~bi+2。每个存储器条包含多个存储器段sj-3~sj+3。遮掩状态寄存器253c被映射到存储器单元阵列260的存储器条bi-2~bi+2以及存储器段sj-3~sj+3。

在混合模式中,存储器控制器220发送遮掩命令或不遮掩命令来设置遮掩状态寄存器253c。结果,存储器单元阵列260的存储器条被选择性设置为遮掩存储器条(mb)或不遮掩存储器条(ub),且存储器单元阵列260的存储器段被选择性设置为遮掩存储器段(ms)或不遮掩存储器段(us)。例如,遮掩存储器条(mb)包含存储器条bi-2,bi与bi+1,而不遮掩存储器条(ub)包含储存器条bi-1与bi+2。另外,遮掩存储器段(ms)包含存储器段sj-2与sj+1,而不遮掩存储器段(us)包含储存器段sj-3,sj-1,sj,sj+2与sj+3。根据遮掩命令,不遮掩存储器条被设置为遮掩存储器条或者不遮掩存储器段被设置为遮掩存储器段。根据不遮掩命令,遮掩存储器条被设置为不遮掩存储器条或者遮掩存储器段被设置为不遮掩存储器段。

当存储器控制器220被禁用或处于睡眠状态时,dram210的刷新电路240根据遮掩状态寄存器253c的内容在不遮掩存储器条与不遮掩存储器段上执行自刷新动作。也就是说,刷新电路240对应于dram刷新指针在不遮掩存储器条bi-1及bi+2的存储器段sj-3,sj-1,sj,sj+2及sj+3执行自刷新动作。

上述方法能防止存储器单元阵列260的不遮掩存储器条bi-1与bi+2的存储器段sj-3,sj-1,sj,sj+2及sj+3的数据丢失。另一方面,遮掩存储器段sj-2及sj+1储存无效数据。即便遮掩存储器段的数据丢失了,存储系统也不会受到影响。

从上述描述中,存储器控制器220能设置寄存器组250的遮掩状态寄存器253。结果,存储器单元阵列260的多个区域被选择性设置为遮掩区域或不遮掩区域。当存储器控制器220被禁用或处于睡眠状态时,dram210的刷新电路240根据遮掩状态寄存器253的内容在不遮掩区域上执行自刷新动作。

当存储器控制器220处于正常工作状态,存储器控制器220能设置寄存器组250的遮掩状态寄存器253。另外,存储器控制器220周期性发送刷新命令给dram210。根据刷新命令,dram210的刷新电路执行刷新动作来防止存储器单元阵列260的数据丢失。类似地,存储器控制器220发送遮掩命令及不遮掩命令来设置遮掩状态寄存器253,且具体细节说明此处不再赘述。

图4原理性地显示本发明第二实施例的存储系统的架构。如图4所示,存储系统包含存储器控制器420与动态随机访问存储器(dram)410。存储器控制器420与主机(图未显示)相连。而且,存储器控制器420可从主机410写入数据到dram410,或存储器控制器420可从dram410读取数据并传输数据给主机。

此实施例中,dram410包含存储器单元阵列460,寄存器组450,刷新电路440以及刷新速率调整电路470。寄存器组450包含刷新速率寄存器452,模式寄存器454以及遮掩状态寄存器453。另一实施例中,刷新速率寄存器452与遮掩状态寄存器453可包含在模式寄存器454中。

因为dram410的数据丢失率与环境温度相关,dram410能根据环境温度自动改变刷新信息。而且,更新的刷新信息储存在dram410的刷新速率寄存器452中。而且,刷新速率调整电路470根据遮掩状态寄存器453的内容计算刷新速率。更新的刷新速率储存在刷新速率寄存器452中。

例如,假设刷新窗口trefw是32s且在刷新窗口trefw中所需的所有条刷新命令的数量是1000。如果存储器单元阵列460包含8个不遮掩存储器条,需要在时间段32s内对dram410的所有不遮掩存储器条执行刷新动作。在此情况下,所有条刷新速率rab是1/(32s/1000)=1/(32ms),且每条刷新速率rpb是1/(32s/8/1000)=1/(4ms)。换句话说,存储器控制器420需要以4ms的时间间隔发送每条刷新命令给不同不遮掩存储器条,或以32ms的时间间隔发送所有条刷新命令。

此实施例中,存储器控制器420能进一步发送遮掩命令或不遮掩命令来改变遮掩状态寄存器453的内容。然后,刷新速率调整电路470根据遮掩命令或不遮掩命令来更新刷新速率,且该更新的刷新速率储存在刷新速率寄存器452中。在从刷新速率寄存器452读取更新的刷新速率之后,存储器控制器420根据更新的刷新速率发送刷新命令给dram410。具体操作在下文说明。

例如,在条遮掩模式,存储器单元阵列460包含总共q个存储器条且m个存储器条是不遮掩存储器条以及(q-m)个存储器条为遮掩存储器条。而且,刷新速率寄存器452中储存的刷新信息指示当前所有条刷新速率rab,present。因此,当前每条刷新速率rpb,present大于或等于m×rab,presen(rpb,present≥m×rab,present)。

如果存储器控制器420发送遮掩命令或不遮掩命令来改变遮掩状态寄存器453的内容,且m个不遮掩存储器条被改变为n个不遮掩存储器条,刷新速率调整电路470计算下个每条刷新速率rpb,next,且储存下个每条刷新速率到刷新寄存器452中。即rpb,next≥(n/m)×rpb,present。

在存储器控制器420从刷新速率寄存器452读取下个每条刷新速率rpb,next,存储器控制器420根据下个每条刷新速率rpb,next发送每条刷新命令给dram410。根据每条刷新命令,刷新电路执行每条刷新动作。如上所述,当不遮掩存储器条的数量增加时(i.e.,n>m),每条刷新速率增加,以及当不遮掩存储器条的数量减少时(i.e.,n<m),每条刷新速率减少。

在条遮掩模式下,所有条刷新速率rab并没有被条遮掩命令或条不遮掩命令所影响。在存储器控制器420发送遮掩命令或不遮掩命令来改变遮掩状态寄存器453的内容后,刷新速率调整电路470不会更新所有条刷新速率rab。也就是说,储存在刷新速率寄存器452内的所有条刷新速率rab不改变。在执行所有条刷新命令时,dram刷新指针会根据遮掩状态寄存器453的内容跳过遮掩存储器条并指向不遮掩存储器条。刷新电路440然后对应于dram刷新指针在不遮掩存储器条上执行刷新操作,且不在遮掩存储器条上执行刷新操作。同样地,所有条刷新命令可被多条刷新命令(multi-banksrefreshcommand)或条组刷新命令(bank-grouprefreshcommand)所替换。在此情况下,刷新命令在不遮掩存储器条上执行却不在遮掩存储器条上执行。

例如,在段遮掩模式下,存储器单元阵列460包含x个不遮掩存储器段,且当前所有条刷新速率rab,present与当前每条刷新速率rpb,present储存到刷新速率寄存器452中。

如果存储器控制器420发送遮掩命令或不遮掩命令来修改遮掩状态寄存器453的内容且x个不遮掩存储器段被修改成y个不遮掩存储器段,刷新速率调整电路470计算下个所有条刷新速率rab,next与下个每条刷新速率rpb,next。下个所有条刷新速率rab,next与下个每条刷新速率rpb,next储存进刷新速率寄存器452中。即,rab,next≥(y/x)×rab,present以及rpb,next≥(y/x)×rpb,present。另外,下个所有条刷新速率rab,next或下个每条刷新速率rpb,next可不立即储存到刷新速率寄存器452中。

在存储器控制器420从刷新速率寄存器452读取下个所有条刷新速率rab,next后,存储器控制器420根据下个所有条刷新速率发送所有条刷新命令给dram410。当执行所有条刷新命令时,dram410的刷新电路440在所有存储器条的不遮掩存储器段上执行所有条刷新动作。

在存储器控制器420从刷新速率寄存器452读取下个每条刷新速率rpb,next后,存储器控制器420根据下个每条刷新速率发送每条刷新命令给dram410。当执行每条刷新命令时,dram410的刷新电路440对应该每条刷新命令,在存储器条的不遮掩存储器段上执行每条刷新动作。

例如,在混合模式中,存储器单元阵列460包含m个不遮掩存储器条与x个不遮掩存储器段,且当前所有条刷新速率rab,present与当前每条刷新速率rpb,present储存在刷新速率寄存器452中。

如果存储器控制器420发送遮掩命令或不遮掩命令来修改遮掩状态寄存器453的内容,m个不遮掩存储器条被修改为n个不遮掩存储器条,而x不遮掩存储器段被修改为y个不遮掩存储器段,刷新速率调整电路470计算下个所有条刷新速率rab,next与下个每条刷新速率rpb,next。下个所有条刷新速率rab,next与下个每条刷新速率rpb,next都储存到刷新速率寄存器452中。也就是,rab,next≥(y/x)×rab,present,以及rpb,next≥(n/m)×(y/x)×rpb,present。另外,下个所有条刷新速率rab,next或下个每条刷新速率rpb,next可不立即储存到刷新速率寄存器452中。

在存储器控制器429从刷新速率寄存器452读取下个所有条刷新速率后,存储器控制器420根据下个所有条刷新速率发送所有条刷新命令给dram410。当执行所有条刷新命令时,dram410的刷新电路440在不遮掩存储器条的不遮掩存储器段上执行所有条刷新动作。

在存储器控制器420从刷新速率寄存器452读取下个每条刷新速率rpb,next后,存储器控制器420根据下个每条刷新速率发送每条刷新命令给dram410。当执行每条刷新命令时,dram410的刷新电路440在存储器条的不遮掩存储器段上执行每条刷新动作。

当存储器控制器420处于正常工作状态,存储器控制器420发送遮掩命令或不遮掩命令来设置遮掩状态寄存器453。另外,刷新速率调整电路470计算下个刷新速率并储存下个刷新速率到刷新寄存器452中。然后,存储器控制器420从刷新速率寄存器452读取更新的刷新速率并根据下个刷新速率产生刷新命令给dram410。

图5原理性显示根据本发明第三实施例的存储系统的架构。如图5所示,存储系统包含存储器控制器520与动态随机访问存储器(dram)510。与第二实施例比较,存储器控制器520包含刷新速率调整电路570且dram510并没有配备刷新速率调整电路。

存储器控制器520与主机(图未显示)相连。而且,存储器控制器520可从主机写入数据到dram510,或者存储器520可从dram510读取数据并传送数据给主机。

此实施例中,dram510包含存储器单元阵列560、寄存器组550以及刷新电路540。寄存器组550包含刷新速率寄存器552、遮掩状态寄存器553与模式寄存器554。另一实施例中,刷新速率寄存器552与遮掩状态寄存器553可被包含在模式寄存器554中。

此实施例中,存储器控制器520发送遮掩命令或不遮掩命令来修改遮掩状态寄存器553的内容。然后,存储器控制器520从刷新速率寄存器552读取刷新信息且刷新速率调整电路570更新刷新速率。根据更新的刷新速率,存储器控制器520发送刷新命令给dram510。下文将介绍具体操作。

例如,在条遮掩模式,存储器单元阵列560包含总共q个存储器条以及m个存储器条为不遮掩存储器条且(q-m)个存储器条为遮掩存储器条。而且,储存在刷新速率寄存器552中的刷新信息指示当前所有条刷新速率rab,present。因此,当前每条刷新速率rpb,present大于或等于m×rab,presen(rpb,present≥m×rab,present)。

如果存储器控制器520发送遮掩命令或不遮掩命令来修改遮掩状态寄存器553的内容且m个不遮掩存储器条被修改为n个不遮掩存储器条,刷新速率调整电路570计算下个每条刷新速率rpb,next。即rpb,next≥(n/m)×rpb,present。而且,储存在刷新速率寄存器552中的刷新信息指示当前每条刷新速率为rpb,dram,然后rpb,next≥(n/q)×rpb,dram。

在刷新速率调整电路570计算下个每条刷新速率rpb,next之后,存储器控制器520根据下个每条刷新速率发送每条刷新命令给dram510。根据每条刷新命令,刷新电路540执行每条刷新动作。如前所述,当不遮掩存储器条的数量增加(即,n>m)时,刷新速率调整电路570增加每条刷新速率,当不遮掩存储器条的数量减少(即,n<m)时,刷新速率调整电路570降低每条刷新速率。

在条遮掩模式下,所有条刷新速率并不会受条遮掩命令或条不遮掩命令影响。在存储器控制器520发送遮掩命令或不遮掩命令来修改遮掩状态寄存器553的内容后,刷新速率调整电路570不会更新所有条刷新速率rab,present。当执行所有条刷新命令时,刷新电路540根据遮掩状态553的内容在不遮掩存储器条上执行刷新操作。

在段遮掩模式,存储器单元阵列560总共包含q个存储器条,共包含z个存储器段。而且,x个存储器段是不遮掩存储器段且(z-x)个段是遮掩存储器段。并且,储存在刷新速率寄存器552中的刷新信息指示所有条刷新速率是rab,dram,以及每条刷新速率是rpb,dram。因此,当前所有条刷新速率rab,present=rab,dram,当前每条刷新速率rpb,present大于或等于q×rab,presen(rpb,present≥q×rab,present)。

如果存储器控制器520发送遮掩命令或不遮掩命令来修改遮掩状态寄存器553的内容以及x个不遮掩存储器段被修改为y个不遮掩存储器段,刷新速率调整电路570计算下个所有条刷新速率rab,next以及下个每条刷新速率rpb,next。即,rab,next≥(y/x)×rab,present,且rpb,next≥(y/x)×rpb,present。而且,储存在刷新速率寄存器552中的刷新信息指示所有条刷新速率是rab,dram。且每条刷新速率是rpb,dram。rab,next≥(y/z)×rab,dram,且rpb,next≥(y/z)×rpb,dram。另外,下个所有条刷新速率rab,next或下个每条刷新速率rpb,next可不立即应用。

在应用下个所有条刷新速率rab,next后,存储器控制器520根据下个所有条刷新速率rab,next发送所有条刷新命令给dram510。当执行所有条刷新命令时,dram510的刷新电路540根据遮掩状态寄存器553在所有存储器条的不遮掩存储器段上执行所有条刷新动作。在应用下个每条刷新速率rpb,next后,存储器控制器520根据下个每条刷新速率rpb,next发送每条刷新命令给dram510。当执行每条刷新命令时,dram510的刷新电路540在存储器条的不遮掩存储器段中执行每条刷新动作。

而且,在段遮掩模式中,存储器单元阵列560的不遮掩存储器段的数量在存储器控制器520发出不遮掩命令后增加。结果,下个所有条刷新速率与下个每条刷新速率都增加了。在此情况下,存储器控制器520根据下个所有条刷新速率rab,next或下个每条刷新速率rpb,next,立即对dram510应用所有条刷新命令或每条刷新命令。

另一方面,存储器单元阵列560中不遮掩存储器段的数量在存储器控制器520发出该遮掩命令后减少。结果,下个所有条刷新速率与下个每条刷新速率都会降低。在此情况下,存储器控制器520不能立即根据下个所有条刷新速率rab,next或下个每条刷新速率rpb,next,对dram510应用所有条刷新命令或每条刷新命令。

在存储器控制器520确认在所有存储器段上的刷新动作符合刷新窗口trefw的规范后,存储器控制器520根据下个所有条刷新速率rab,next或下个每条刷新速率rpb,next,发送所有条刷新命令或每条刷新命令给dram510。

图6显示根据本发明第三实施例的遮掩命令与刷新速率之间的关系的原理时序图。例如,存储器单元阵列560包含8个不遮掩存储器段s0~s7,且刷新窗口trefw为32ms,在刷新窗口trefw内需要的所有条刷新命令为rcmd=8(即一个段对应一个所有条刷新命令)。此情况下,所有条刷新速率rab为1/(4ms)。换句话说,存储器控制器520需要以时间间隔为4ms来发送所有条刷新命令。

请参考图6。在时间点0ms,存储器控制器520发送一所有条刷新命令且刷新指针在s0。在时间点4ms,存储器控制器520发送一所有条刷新命令且刷新指针处于s1。在时间点8ms,存储器控制器520发送一所有条刷新命令且刷新指针处于s2。其余的可以类推。换句话说,存储器控制器520在时间点0ms与时间点32ms之间为段s0~s7发送8个所有条命令。

类似地,存储器控制器520在时间点32ms后以同样的所有条刷新速率rab,present发送所有条刷新命令。

在时间点48ms(例如,48.1ms),存储器控制器520发送一遮掩命令来更新遮掩状态寄存器553。根据遮掩命令,存储器段s1,s2,s6与s7设为遮掩存储器段。也就是说,x个不遮掩存储器段被存储器控制器520修改为y个不遮掩存储器段,其中x=8且y=4。刷新速率调整电路570计算下个所有条刷新速率rab,next。也就是,rab,next=(4/8)×rab,present=1/(8ms)。在此情况下,存储器控制器520以时间间隔8ms发送所有条刷新命令。

如上所述,存储器控制器520需要确认所有存储器段上的刷新操作是否符合刷新窗口trefw的规范。另外,存在dram的限制,两个refab之间的最大的间隔,tmaxrefab2refab。结果,在遮掩命令发送已经过了一特定时间段后,当前所有条刷新速率rab,present保持不变。然后,所有条刷新速率rab,present在一特定时间段后改变为下个所有条刷新速率rab,next。特定时间段由下面公式获得:(y/z)×trefw-tmaxrefab2refab≥(4/8)×32ms-tmaxrefab2refab=16ms-tmaxrefab2refab。可是,如果特定时间段长于16ms,仍符合规范。图6中,tmaxrefab2refab被假设为0。

结果,当前所有条刷新速率为rab,present,并在时间点48.1ms与时间点48.1ms(即,48.1ms+16ms=64.1ms)之间由存储器控制器520保持不变。在时间点64.1ms,所有条刷新速率rab,present被刷新速率调整电路570改变到下个所有条刷新速率rab,next。也就是说,存储器控制器520发送所有条刷新命令来于不遮掩存储器段s4,s5,s0及s3上执行刷新动作。其余可同理类推。另外,每条刷新速率为rpb,next≥rab,next*(不遮掩条的数量)且rpb,present≥rab,present*(不遮掩条的数量)。

例如,在混合模式中,存储器单元阵列560包含q个存储器条,其指示z个存储器段。而且,m个存储器段为不遮掩存储器条且x个存储器段为不遮掩存储器段。并且,当前所有条刷新速率是rab,present,而当前每条刷新速率是rpb,present。

如果存储器控制器520发送遮掩命令或不遮掩命令来修改遮掩状态寄存器553的内容,m个不遮掩存储器条修改为n个不遮掩存储器条且x个不遮掩存储器段修改为y个不遮掩存储器段,刷新速率调整电路570计算下个所有条刷新速率rab,next与下个每条刷新速率rpb,next。即,rab,next≥(y/z)×rab,dram,且rpb,next≥(n/q)×(y/z)×rpb,dram。

如果存储器控制器520发送遮掩命令或不遮掩命令来修改遮掩状态寄存器553的内容,m个不遮掩存储器条修改为n个不遮掩存储器条且x个不遮掩存储器段修改为y个不遮掩存储器段,刷新速率调整电路570计算下个所有条刷新速率rab,next与下个每条刷新速率rpb,next。即,rab,next≥(y/z)×rab,unmasked,andrpb,next≥(n/q)×(y/z)×rpb,unmasked。

在下个所有条刷新速率rab,next更新后,存储器控制器520根据下个所有条刷新速率rab,next发送所有条刷新命令给dram510。当执行所有条刷新命令时,dram510的刷新电路540根据遮掩状态寄存器453的内容,在不遮掩存储器条的不遮掩存储器段上执行所有条刷新动作。

在下个每条刷新速率rpb,next更新后,存储器控制器520根据下个每条刷新速率发送每条刷新命令给dram510。当执行每条刷新命令时,dram510的刷新电路540在存储器条的不遮掩存储器段上执行每条刷新动作。

而且,在混合模式中,存储器单元阵列560中的不遮掩存储器段的数量在存储器控制器520发送不遮掩命令后增加。结果,下个所有条刷新速率与下个每条刷新速率都增加了。在此情况下,存储器控制器520立即根据下个所有条刷新速率rab,next或下个每条刷新速率rpb,next应用所有条刷新命令或每条刷新命令到dram510。

另一方面,在存储器控制器520发送遮掩命令后,存储器单元阵列560中的不遮掩存储器段减少。结果,下个所有条刷新速率与下个每条刷新速率都降低了。在此情况下,存储器控制器520不能立即根据下个所有条刷新速率rab,next或下个每条刷新速率rpb,next对dram510应用所有条刷新命令或每条刷新命令。在存储器控制器520确认所有存储器段上的刷新动作符合刷新窗口trefw的规范后,存储器控制器520根据下个所有条刷新速率rab,next或下个每条刷新速率rpb,next对dram510应用所有条刷新命令或每条刷新命令。操作类似于图6的操作,此处不再赘述。

当存储器控制器520处于正常工作状态,存储器控制器520发送遮掩命令或不遮掩命令来设置遮掩状态寄存器553。另外,刷新速率调整电路570计算下个刷新速率。然后,存储器控制器520根据下个刷新速率产生刷新命令。

如上所述,本发明提供该存储系统及相关刷新控制方法。在遮掩状态寄存器被存储器控制器设置后,dram的存储器单元阵列被划分为遮掩区域与不遮掩区域。在存储器控制器发送刷新命令给dram后,刷新电路在存储器单元阵列的不遮掩区域上执行刷新动作。结果,达到部分阵列刷新目的。

根据本发明,存储器控制器能够动态设定存储器单元阵列中的不遮掩区域与遮掩区域。因此,存储器控制器不需要符合dram规范中定义的所有条刷新周期时间trefcab。当存储器控制器处于正常工作状态时,存储器控制器能够发送两个连续的所有条刷新命令,其具有小于所有条刷新周期时间trefcab的时间间隔。

虽然本发明已通过示例的方式和优选实施例的形式来描述,可以理解的是,本发明并不限于所公开的实施例。相反,本发明旨在覆盖各种修改和相似设计(对本领域技术人员而言是清楚的)。因此,所附的权利要求的范围应符合最广泛的解释,以涵盖所有这些修改和相似设计。

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