掌桥专利:专业的专利平台
掌桥专利
首页

一种刷新控制电路及存储器

文献发布时间:2023-06-19 19:27:02


一种刷新控制电路及存储器

技术领域

本公开涉及集成电路领域,具体涉及一种刷新控制电路及存储器。

背景技术

随着半导体制造工艺水平的逐渐提高,存储器的密度不断增加,存储单元物理尺寸越来越小缩小,存储单元中的字线在物理上更接近,相邻的字线之间的电容耦合增大,存储单元上存储的数据也越来越容易受到相邻存储行的影响。

存储器存储器存储器同时,随着存储器工作频率的提升,字线被开启的时间缩短,因字线频繁开启或长时间开启会导致的存储器行锤(Row Hammer)问题越来越严重,如何有效解决行锤问题,是当前亟待解决的问题。

发明内容

有鉴于此,本公开实施例提供了一种刷新控制电路及存储器,能够更有针对性地对行锤问题进行防护,提高了保护性刷新的效果。

本公开实施例的技术方案是这样实现的:

本公开实施例提供了一种刷新控制电路,所述刷新控制电路包括:标志信号生成模块,被配置为接收刷新命令,并根据连续接收的所述刷新命令生成n个所述刷新标志信号,n为正整数;地址采样模块,连接所述标志信号生成模块,被配置为接收n个所述刷新标志信号,并响应于n个所述刷新标志信号,将被开启次数最多的n个锤击行地址中的全部或部分依次选择输出;执行模块,连接所述地址采样模块,被配置为依次接收n个所述锤击行地址,并依次对n个所述锤击行地址的相邻受害行地址执行刷新操作。

上述方案中,所述标志信号生成模块,还被配置为接收激活命令,响应于所述激活命令,对n个所述刷新标志信号执行复位操作。

上述方案中,所述地址采样模块,还被配置为在n个所述刷新标志信号被复位时输出默认行地址;所述默认行地址为未被输出的所述锤击行地址中被开启次数最多的一个。

上述方案中,所述标志信号生成模块,还被配置为在连续接收到的所述刷新命令的数量达到第i预设值时,将第i个所述刷新标志信号设置为第一电平值,将其余n-1个所述刷新标志信号设置为第二电平值;i大于等于1,且小于等于n;所述地址采样模块,还被配置为在接收到的n个所述刷新标志信号中仅有第i个为第一电平值时,输出第i个所述锤击行地址。

上述方案中,所述标志信号生成模块,还被配置为在执行所述复位操作中,将n个所述刷新标志信号均设置为第二电平值。

上述方案中,所述标志信号生成模块包括:计数模块和编码模块;所述计数模块,被配置为接收所述刷新命令,对所述刷新命令进行计数以生成计数值;所述编码模块,连接所述计数模块,被配置为对所述计数值编码,生成并输出n个所述刷新标志信号。

上述方案中,所述计数模块包括:m个级联的D触发器;其中,2

上述方案中,所述编码模块包括:n个与门;每个所述与门的m个输入端,分别连接m个所述D触发器的同相输出端或反相输出端;任意两个所述与门均不具有完全相同的输入;n个所述与门的输出端一一对应输出n个所述刷新标志信号。

上述方案中,所述刷新控制电路还包括:命令解码模块;所述命令解码模块,连接所述标志信号生成模块,被配置为解码出刷新命令和激活命令,并将所述刷新命令和所述激活命令传输到所述标志信号生成模块。

上述方案中,所述地址采样模块包括:地址选取单元,被配置为从锤击行地址列表中选取出被开启次数最多的n个所述锤击行地址;地址比较单元,连接所述地址选取单元,被配置为获取n个所述锤击行地址,比较n个所述锤击行地址的被开启次数,并按照所述被开启次数对n个所述锤击行地址进行排序;地址输出单元,连接所述地址比较单元,被配置为接收n个所述刷新标志信号和排序后的n个所述锤击行地址,响应于n个所述刷新标志信号,将排序后的n个所述锤击行地址中的全部或部分依次选择并从其输出端输出。

上述方案中,所述地址选取单元,还被配置为在n个所述刷新标志信号被复位时,响应于所述激活命令,重新选取被开启次数最多的n个所述锤击行地址。

上述方案中,所述地址选取单元,还被配置为将所述地址输出单元输出的所述锤击行地址,从锤击行地址列表中删除。

上述方案中,所述地址输出单元包括:n个级联的数据选择器;每一级所述数据选择器的第一输入端连接下一级所述数据选择器的输出端,最后一级所述数据选择器的第一输入端接收第1个所述锤击行地址,第1级所述数据选择器的输出端作为所述地址输出单元的输出端;第i级所述数据选择器的第二输入端接收第i个所述锤击行地址,第i级所述数据选择器的控制端接收第i个所述刷新标志信号,其中,i大于等于1,且小于等于n。

上述方案中,第1个至第n个所述锤击行地址的被开启次数依次下降。

上述方案中,所述执行模块,还被配置在当前刷新命令期间或者下一个刷新命令期间对所述锤击行地址的相邻受害行地址执行刷新操作。

本公开实施例还提供了一种存储器,所述存储器包括如上述方案中所述的刷新控制电路。

上述方案中,所述存储器为DRAM。

由此可见,本公开实施例提供了一种刷新控制电路及存储器。其中,刷新控制电路包括:标志信号生成模块、地址采样模块和执行模块。标志信号生成模块,被配置为接收刷新命令,并根据连续接收的刷新命令生成n个刷新标志信号,n为正整数。地址采样模块,连接标志信号生成模块,被配置为接收n个刷新标志信号,并响应于n个刷新标志信号,将被开启次数最多的n个锤击行地址依次选择输出;执行模块,连接地址采样模块,被配置为依次接收n个锤击行地址,并依次对n个锤击行地址的相邻受害行地址执行刷新操作。由于被开启次数越多,则越容易对临近的存储单元造成影响。本公开实施例将被开启次数最多的n个地址作为锤击行地址,并通过检测突发刷新中的刷新命令数量,将排序后的锤击行地址依次选择输出,对锤击行地址相邻的受害行地址执行保护性刷新,这样,能够更有针对性地对Row Hammer问题进行防护,提高了保护性刷新的效果。

附图说明

图1为描述突发刷新的示意图;

图2为描述行锤击问题的示意图;

图3为本公开实施例提供的刷新控制电路的结构示意图一;

图4为本公开实施例提供的刷新控制电路的信号示意图一;

图5为本公开实施例提供的刷新控制电路中标志信号生成模块的结构示意图;

图6为本公开实施例提供的刷新控制电路中计数模块的结构示意图一;

图7为本公开实施例提供的刷新控制电路中计数模块的结构示意图二;

图8为本公开实施例提供的刷新控制电路中编码模块的结构示意图一;

图9为本公开实施例提供的刷新控制电路中编码模块的结构示意图二;

图10为本公开实施例提供的刷新控制电路的信号示意图二;

图11为本公开实施例提供的刷新控制电路的结构示意图二;

图12为本公开实施例提供的刷新控制电路中地址采样模块的结构示意图;

图13为本公开实施例提供的刷新控制电路中地址输出单元的结构示意图一;

图14为本公开实施例提供的刷新控制电路中地址输出单元的结构示意图二;

图15为本公开实施例提供的存储器的结构示意图。

具体实施方式

为了使本公开的目的、技术方案和优点更加清楚,下面结合附图和实施例对本公开的技术方案进一步详细阐述,所描述的实施例不应视为对本公开的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。

在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。

如果发明文件中出现“第一/第二”的类似描述则增加以下的说明,在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本公开实施例能够以除了在这里图示或描述的以外的顺序实施。

除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本公开实施例的目的,不是旨在限制本公开。

以下是本公开中相关技术用语的解释:

Row Hammer(行锤):是存储器中的一个漏洞,其主要表现是:当攻击者敲打(Hammering)存储器的特定某几行时,在电磁干扰的作用下,会导致其它行的存储单元相应地翻转(flipping)。

Victim Row(受害行):因为Row Hammer问题而发生翻转的存储单元行。

Auto-Refresh(自动刷新):每隔一定的时间,存储器中自发进行的刷新;其中,进行刷新的存储体(bank)和Row地址由内部的刷新控制器确定。

burst refresh(突发刷新):由突发操作带来的刷新,用以弥补读/写操作期间未进行的Auto-Refresh;执行burst refresh期间,存储器会暂停读/写操作且不发出激活命令。

图1示例出了存储器中的自动刷新和突发刷新。参考图1,在自动刷新期间,每间隔t

需要说明的是,在存储器中,例如在DRAM(动态随机存取存储器)中,会存在RowHammer的问题。这样,对存储器的单个区域进行的读写有可能干扰到邻近的区域,导致电流流入或流出邻近的存储单元。进而,如果反复进行大量读写,有可能改变邻近存储单元的内容,使得0变成1,或者1变成0,这种现象被称为比特翻转(bit-flipping)。比特翻转可被利用于获取更高的权限,例如,利用比特翻转对数据进行暴力修改,从而威胁到数据的安全。

如图2所示,在激活命令的触发下,存储器会执行读/写操作,进而,反复进行了大量读写的存储器行会成为锤击行,相应的,锤击行相邻的存储器行会成为受害行,受害行中有发生比特翻转的风险。也就是说,连续的读/写操作会积累大量锤击行地址。

相关技术中,对于Row Hammer问题的防护设计是:进行Target Row Refresh(目标行刷新)。Target Row Refresh的具体做法是:抓取潜在的Row Hammer的受害行地址,将其嵌入到Auto-Refresh中,以对受害行地址进行保护性刷新,来避免出现比特翻转。例如,可以在每个Auto-Refresh的t

但是,地址被激活需要激活命令的触发,而burst refresh期间并没有激活命令发出,也就是说,无法在burst refresh期间选取被激活的地址作为Victim Row地址。因此,通常是在几次burst refresh的Row Hammer保护时间内,对固定的地址(即reset地址)进行保护性刷新。然而,这样做的话,一方面,对reset地址的重复刷新,可能带来新的Row Hammer问题,改变reset地址邻近的存储单元的内容。另一方面,在执行burst refresh前,通常会存在连续读/写的情况,原因在于:在连续读/写的一段时间内没有刷新命令,从而在连续读/写完成后,需要采用burst refresh弥补缺失的刷新命令。同时,由于在连续读/写的一段时间存储器在大量的存储行地址激活操作,会积累很多行锤击行地址和受害行地址;但是,由于连续读/写期间没有刷新命令,从而可能导致这些受害行地址不能及时被刷新,例如,对于DDR5,精细刷新模式下,连续读/写操作可能维持9*t

综上,相关技术中,在存储器的burst refresh期间,难以有效解决Row Hammer问题。

图3是本公开实施例提供的刷新控制电路的一个可选的结构示意图,如图3所示,刷新控制电路包括:标志信号生成模块101、地址采样模块102和执行模块103。标志信号生成模块101,被配置为接收刷新命令REF,并根据连续接收的刷新命令REF生成n个刷新标志信号Burst_Flag,n为正整数。地址采样模块102,连接标志信号生成模块101,被配置为接收n个刷新标志信号Burst_Flag,并响应于n个刷新标志信号Burst_Flag,将被开启次数最多的n个锤击行地址Hammer_Addr中的全部或部分依次选择输出。执行模块103,连接地址采样模块102,被配置为依次接收n个锤击行地址Hammer_Addr,并依次对n个锤击行地址Hammer_Addr的相邻受害行地址Victim_Addr执行刷新操作。

本公开实施例中,参考图3,刷新命令REF是在存储器的burst refresh期间发出的,因此,能够在burst refresh期间,控制对受害行地址的保护性刷新,以解决Row Hammer问题。每个刷新命令REF对应一个命令脉冲,burst refresh期间的多个刷新命令REF为连续多个命令脉冲,进而,标志信号生成模块101可以统计连续接收到的刷新命令REF的数量(即命令脉冲的数量),以生成n个刷新标志信号Burst_Flag。刷新命令REF的不同计数值,分别对应着不同的刷新标志信号Burst_Flag,因此,任意两个刷新标志信号Burst_Flag的被置为高电平时间均不同。

需要说明的是,每个刷新命令REF期间,可以进行多次刷新,其中,可以预留几次给Row Hammer问题的保护性刷新,本公开中以预留2次刷新作为保护性刷新操作。本公开实施例中获取的n个锤击行地址Hammer_Addr,可以在每个刷新命令REF期间预留的2次保护性刷新操作中进行刷新。并且,每次刷新可以同时打开多行,例如,同时第1、2和4行。因此,地址采样模块102可以在一个刷新标志信号Burst_Flag的触发下,输出多个锤击行地址,例如,同时输出1个、2个或4个锤击行到执行模块103。进而,执行模块103可以利用本次刷新命令REF期间预留的2次保护性刷新操作,分别对接收到锤击行地址两侧的受害行地址进行保护性刷新,即,对锤击行地址一侧的受害行地址进行1次保护性刷新,再对锤击行地址另一侧的受害行地址进行另1次保护性刷新。这样,便可以在当前刷新标志信号Burst_Flag期间,完成对这些锤击行地址相邻行的保护性刷新。

本公开另外一个实施例中,参考图3,标志信号生成模块101还被配置为接收使能信号,根据使能信号控制标志信号生成模块的启动。本公开又一实施例中,控制器(图3中未示出)在发送刷新命令REF时,可以同时发送一个突发刷新的标识信号,该标识信号可以作为标志信号生成模块101的使能信号。这样,在无标识信号的情况下,无需启动刷新控制电路,标志信号生成模块101可以控制刷新控制电路停止作用,从而节省了刷新控制电路的功耗。

图4是刷新命令和刷新标志信号的一种可选的波形示意图。在本公开的一些实施例中,如图4所示,刷新标志信号共有8个,分别为Burst1_Flag至Burst8_Flag。在突发刷新(burst refresh)模式下,控制器不发送激活命令ACT(即激活命令ACT保持低电平),在控制器连续发送8个刷新命令REF时,Burst1_Flag到Burst8_Flag随着刷新命令REF的数量增加依次被置为高电平。具体地,当连续接收到的刷新命令REF的数量达到1时,则仅第1个刷新标志信号Burst1_Flag被置为高电平,其余7个刷新标志信号被置为低电平;当接收到的刷新命令REF的数量达到2时,则仅第2个刷新标志信号Burst2_Flag被置为高电平,其余7个刷新标志信号被置为低电平;依次类推,直至最后一个刷新标志信号Burst8_Flag被置为高电平。

本公开实施例中,继续参考图3,地址采样模块102会在n个刷新标志信号Burst_Flag的控制下,将n个锤击行地址Hammer_Addr依次选择输出。其中,锤击行地址Hammer_Addr可以是在当前的burst refresh之前,被开启次数最多的n个地址。

在一些实施例中,突发刷新(burst refresh)模式下,控制器连续发送的刷新命令的数量是可变的。在连续发送的刷新命令的数量不同时,如前所述,n个刷新标志信号随着突发刷新命令的数量的增加,可被置为高电平的刷新标志信号的数量不同(即不一定为n),进而,响应于n个刷新标志信号可从n个锤击行地址中依次选择输出的地址数量也不同。例如,连续发送的刷新命令的数量为4-9中的任意数值,对突发刷新命令的计数最大值也是4-9;在连续发送的刷新命令的数量为4时,n(n=9)个刷新标志信号随着突发刷新命令数量的增加可被置为高电平的刷新标志信号为Burst1_Flag到Burst4_Flag,响应于n个刷新标志信号可从n个锤击行地址中选择输出的地址为被开启次数最多的4个地址;同理,在连续发送的刷新命令的数量为9时,响应于n个刷新标志信号可从n个锤击行地址中选择输出的地址为被开启次数最多的9个地址。

本公开实施例中,继续参考图3,执行模块103在接收到n个锤击行地址Hammer_Addr后,可以在每个锤击行地址Hammer_Addr相邻的地址中确定出受害行地址Victim_Addr,例如,将锤击行地址Hammer_Addr基础上+1/-1、+2/-2、+3/-3…的地址确定为受害行地址Victim_Addr,本公开中以锤击行地址相邻+1/-1的地址作为受害行地址进行说明。进而,执行模块103可以对受害行地址Victim_Addr执行保护性刷新。

可以理解的是,由于被开启次数越多,则越容易对临近的存储单元造成影响。本公开实施例将被开启次数最多的n个地址作为锤击行地址Hammer_Addr,并通过检测突发刷新中的刷新命令数量,将排序后的锤击行地址依次选择输出,对锤击行地址Hammer_Addr相邻的受害行地址Victim_Addr执行保护性刷新,这样,能够更有针对性地对Row Hammer问题进行有效防护,提高了保护性刷新的效果。

同时,由于任意两个刷新标志信号Burst_Flag被置位高电平的时间均不同(分别对应突发刷新模式中不同的刷新命令),从而,任意两个锤击行地址Hammer_Addr的输出时间也不同,这样,便保证了n个锤击行地址Hammer_Addr能够被依次输出,进而保证能够利用当前刷新命令期间预留的保护性刷新操作对依次输出的锤击行地址相邻的受害行地址Victim_Addr及时执行操作。

另外,如前所述,在一些实施例中,每次刷新操作可以同时刷新多个存储行(例如:2/4/8行),则可在一个突发刷新模式下的一个刷新命令期间,由地址采样模块同时发送多个锤击行地址(与单次刷新操作可刷新的存储行数量对应),或者由执行模块同时对地址采样模块输出的一个锤击行地址的多个相邻行地址(+1/-1、+2/-2、+3/-3…)执行刷新操作。

在本公开的一些实施例中,参考图3,标志信号生成模块101,还被配置为接收激活命令ACT,响应于激活命令ACT,对n个刷新标志信号Burst_Flag执行复位操作;激活命令ACT表征突发刷新结束。

在本公开的一些实施例中,继续参考图3,地址采样模块102,还被配置为在n个刷新标志信号Burst_Flag被复位时输出默认行地址;默认行地址为未被输出的锤击行地址Hammer_Addr中被开启次数最多的一个。其中,刷新控制电路会根据锤击行地址的输出情况及时对锤击行地址列表更新,复位时从锤击行地址列表中选出的n个锤击行地址也会被更新,更新后再选取出默认行地址,默认行地址为当前未被输出且被开启次数最多的的锤击行地址。

本公开实施例中,继续参考图3,由于在burst refresh(突发刷新)模式下,控制器向存储器发送连续的刷新命令REF,期间并没有激活命令被发出,当存储器在接收连续刷新命令后接收到激活命令ACT时,可认为存储器退出burst refresh模式,即表征突发刷新的结束。进而,标志信号生成模块101响应激活命令ACT,对n个刷新标志信号Burst_Flag执行复位操作;地址采样模块102则可以在n个刷新标志信号Burst_Flag被复位时,将未被输出的锤击行地址Hammer_Addr中被开启次数最多的一个作为默认行地址输出。

在一些实施例中,被输出过的锤击行地址会在锤击行地址列表中删除。在n个刷新标志信号Burst_Flag被复位时,地址采样模块102会对n个锤击行地址进行更新,重新选取未被输出过的n个被开启次数最多的行地址,作为新的n个锤击行地址。被输出过的锤击行地址,一般不会被地址采样模块102再次选取。

可以理解的是,在burst refresh结束后,标志信号生成模块101不再继续输出有效的n个刷新标志信号Burst_Flag;进而,地址采样模块102不再继续输出n个锤击行地址Hammer_Addr,而是可以将1个被开启次数最多的锤击行地址作为默认行地址输出,以继续对默认行地址的相邻受害行执行保护性刷新;在另外一些实施方式中,也可以从其他待输出地址表中选择地址作为默认行地址输出。这样,即使在没有突发刷新的情况下,依然能够对受害行地址进行保护性刷新,从而,使得不同情况下都能够针对性地进行保护性刷新,从而,更有效地对Row Hammer问题进行了防护。

在本公开的一些实施例中,参考图3,标志信号生成模块101,还被配置为在连续接收到的刷新命令REF的数量达到第i预设值时,将第i个刷新标志信号Burst_Flag设置为第一电平值,将其余n-1个刷新标志信号Burst_Flag设置为第二电平值;i大于等于1,且小于等于n。地址采样模块102,还被配置为在接收到的n个刷新标志信号Burst_Flag中仅有第i个为第一电平值时,输出第i个锤击行地址Hammer_Addr。

本公开实施例中,结合图3和图4,在n=8的情况下,若标志信号生成模块101连续接收到的刷新命令REF的数量达到1(即第1预设值)时,则第1个刷新标志信号Burst1_Flag被设置为高电平(即第一电平值),其余刷新标志信号(Burst2_Flag至Burst8_Flag)被设置为低电平(即第二电平值);若标志信号生成模块101连续接收到的刷新命令REF的数量达到2(即第2预设值)时,则第2个刷新标志信号Burst2_Flag被设置为高电平(即第一电平值),其余刷新标志信号(Burst1_Flag、以及Burst3_Flag至Burst8_Flag)被设置为低电平(即第二电平值);依次类推,若标志信号生成模块101连续接收到的刷新命令REF的数量达到8(即第n预设值)时,则第8个刷新标志信号Burst8_Flag被设置为高电平(即第一电平值),其余刷新标志信号Burst1_Flag至Burst7_Flag被设置为低电平(即第二电平值)。

可以理解的是,刷新命令REF的不同计数值,分别对应不同的刷新标志信号Burst_Flag,因此,任意两个刷新标志信号Burst_Flag被置为高电平的时间均不同,从而,保证了n个锤击行地址Hammer_Addr能够被依次输出,保证了对受害行地址执行的保护性刷新操作能够依次进行。

在本公开的一些实施例中,继续参考图3,标志信号生成模块101,还被配置为在执行复位操作中,将n个刷新标志信号Burst_Flag均设置为第二电平值。

本公开实施例中,结合图3和图4,标志信号生成模块101在接收到激活命令ACT而执行执行复位操作时,可以将刷新标志信号Burst1_Flag至Burst8_Flag均设置为低电平(即第二电平值)。这样,可以使得地址采样模块102不再继续输出n个锤击行地址Hammer_Addr,刷新控制电路转为以其他方式执行保护性刷新(可以仅输出被开启次数最多的1个锤击行地址输出,也可以从其他待输出地址表中选择地址输出),从而,更有效地对RowHammer问题进行了防护。

在本公开的一些实施例中,如图5所示,标志信号生成模块101包括:计数模块201和编码模块202。计数模块201,被配置为接收刷新命令REF,对刷新命令REF进行计数以生成计数值REF_CNT。编码模块202,连接计数模块201,被配置为对计数值REF_CNT编码,生成并输出n个刷新标志信号Burst_Flag。

本公开实施例中,参考图5,计数值REF_CNT表征了连续接收到的刷新命令REF的数量,也就是说,每接收到一个刷新命令REF,则计数值REF_CNT会相应变化。进而,由计数值REF_CNT编码而成的n个刷新标志信号Burst_Flag,与刷新命令REF的数量具有对应关系。这样,保证了n个锤击行地址能够被依次输出,保证了对受害行地址执行的保护性刷新操作能够依次进行。

在本公开的一些实施例中,参考图6,计数模块201包括:m个级联的D触发器203;其中,2

需要说明的是,D触发器203的数量m,首先需要满足其最大计数值可覆盖burstrefresh模式下连续刷新命令的数量,另外,还可以根据需要生成的刷新标志信号的数量n来确定,即满足2

图7示例出的D触发器203的数量为4个,即m=4。参考图7,第1级D触发器203的时钟输入端CLK接收刷新命令REF。每级D触发器203的反相输出端QB连接其数据输入端D,每级D触发器的反相输出端QB还连接下一级D触发器的时钟输入端CLK。每级D触发器的同相输出端Q输出对应的计数值REF_CNT0至REF_CNT3,每级D触发器的反相输出端QB输出对应的互补计数值REF_CNTB0至REF_CNTB3,其中,计数值REF_CNT0和互补计数值REF_CNTB0互为反相,以此类推,其他计数值与对应的互补计数值也互为反相。

本公开实施例中,继续参考图7,每级D触发器203的复位端RST接收激活命令ACT。激活命令ACT可以控制每级D触发器203将其输出的计数值和互补计数值复位,从而将n级刷新标志信号复位。

在本公开的一些实施例中,参考图8,编码模块202包括:n个与门204。结合图6和图8,每个与门204的m个输入端,分别连接m个D触发器203的同相输出端Q或反相输出端QB,且任意两个与门均不具有完全相同的输入同时,每个与门204的两个输入端不会连接至同一级D触发器203。n个与门204的输出端一一对应输出n个刷新标志信号(即Burst1_Flag至Burstn_Flag)。

图9示出的与门204为5个,即n=5。同时,图9示出的与门204对应于图7示出的D触发器203,每个与门204的输出端的数量与D触发器203的数量m相等,即当m=4的情况下,相应的,每个与门204具有4个输入端。

结合图7和图9,以m=4且n=5为例,每个与门204的4个输入端,分别连接4级D触发器203的同相输出端Q或反相输出端QB,且任意两个与门204均不具有完全相同的输入,同时,每个与门204的两个输入端不会连接至同一级D触发器203。5个与门204的输出端一一对应输出5个刷新标志信号(即Burst1_Flag至Burst5_Flag)。

以图7和图9为例,第1个与门204的4个输入端分别连接至第1级D触发器203的同相输入端Q、第2级D触发器203的反相输入端QB、第3级D触发器203的反相输入端QB和第4级D触发器203的反相输入端QB;第1个与门204接收信号REF_CNT0、REF_CNTB1、REF_CNTB2和REF_CNTB3。

第2个与门204的4个输入端分别连接至第1级D触发器203的反相输入端QB、第2级D触发器203的同相输入端Q、第3级D触发器203的反相输入端QB和第4级D触发器203的反相输入端QB;第2个与门204接收信号REF_CNTB0、REF_CNT1、REF_CNTB2和REF_CNTB3。

第3个与门204的4个输入端分别连接至第1级D触发器203的同相输入端Q、第2级D触发器203的同相输入端Q、第3级D触发器203的反相输入端QB和第4级D触发器203的反相输入端QB;第3个与门204接收信号REF_CNT0、REF_CNT1、REF_CNTB2和REF_CNTB3。

第4个与门204的4个输入端分别连接至第1级D触发器203的反相输入端QB、第2级D触发器203的反相输入端QB、第3级D触发器203的同相输入端Q和第4级D触发器203的反相输入端QB;第4个与门204接收信号REF_CNTB0、REF_CNTB1、REF_CNT2和REF_CNTB3。

第5个与门204的4个输入端分别连接至第1级D触发器203的同相输入端Q、第2级D触发器203的反相输入端QB、第3级D触发器203的同相输入端Q和第4级D触发器203的反相输入端QB;第5个与门204接收信号REF_CNT0、REF_CNTB1、REF_CNT2和REF_CNTB3。

需要说明的是,图10为图7和图9对应的信号示意图,图10示出了图7和图9中部分信号的波形。另外,图10示出了图7中的计数值REF_CNT0至REF_CNT3的波形,而并未示出图7中的互补计数值REF_CNTB0至REF_CNTB3的波形;互补计数值REF_CNTB0至REF_CNTB3的波形与对应的计数值REF_CNT0至REF_CNT3的波形互为反相,可以参考计数值REF_CNT0至REF_CNT3的波形来理解。

结合图7、图9和图10,在突发刷新(burst refresh)模式下,控制器不发送激活命令ACT(即激活命令ACT保持低电平),而连续发送了8个刷新命令REF。进一步的,在burstrefresh模式下,当接收到的刷新命令REF的数量为1时,在第1个刷新命令REF的触发下,计数值REF_CNT0被置为高电平,而计数值REF_CNT1至REF_CNT3为低电平,这样,仅有第1个与门204输出的刷新标志信号Burst1_Flag为高电平,其他与门204均输出低电平。当接收到的刷新命令REF的数量为2时,在第2个刷新命令REF的触发下,计数值REF_CNT0被置为低电平,计数值REF_CNT1被置为高电平,而计数值REF_CNT2和REF_CNT3仍为低电平,这样,仅有第2个与门204输出的刷新标志信号Burst2_Flag为高电平,其他与门204均输出低电平。

以此类推,在burst refresh模式下,当接收到的刷新命令REF的数量从1至5变化时,分别会依次触发第1至5个与门204的输出出现高电平脉冲信号,同时,当任一个与门204输出高电平时,其他与门204均输出低电平。这样,保证了n个锤击行地址能够被依次输出,保证了对受害行地址执行的保护性刷新操作能够依序及时进行。

继续结合图7、图9和图10,在burst refresh模式结束后,控制器发送激活命令ACT(即激活命令ACT产生了脉冲),从而,4级D触发器203输出的计数值(REF_CNT0至REF_CNT3)均被重置为低电平,进而,5个与门204输出的刷新标志信号(Burst1_Flag至Burst5_Flag)均保持为低电平。在这种情况下,未被输出过的行地址中被开启次数最多的行地址,可以作为默认锤击行地址被输出,从而继续进行保护性刷新。

在本公开的一些实施例中,如图11所示,刷新控制电路还包括:命令解码模块104。命令解码模块104,连接标志信号生成模块101。命令解码模块104被配置为解码出刷新命令REF和激活命令ACT,并将刷新命令REF和激活命令ACT传输到标志信号生成模块101。

在本公开的一些实施例中,如图12所示,地址采样模块102包括:地址选取单元301、地址比较单元302和地址输出单元303。地址选取单元301,被配置为从锤击行地址列表中选取出被开启次数最多的n个锤击行地址(以n=5为例,即Addr_A、Addr_B、Addr_C、Addr_D和Addr_E)。地址比较单元302,连接地址选取单元301,被配置为获取n个锤击行地址,比较n个锤击行地址的被开启次数,并按照被开启次数对n个锤击行地址进行排序。地址输出单元303,连接地址比较单元302,被配置为接收n个刷新标志信号Burst_Flag和排序后的n个锤击行地址,响应于n个刷新标志信号Burst_Flag,将排序后的n个锤击行地址中的全部或部分依次选择并从其输出端输出。

需要说明的是,图12以n=5为例,示出了5个锤击行地址,本公开实施例中的n还可以设置为其他值,在此不做限制。

本公开实施例中,参考图12,地址选取单元301从锤击行地址列表中选取出被开启次数最多的5个锤击行地址Addr_A、Addr_B、Addr_C、Addr_D和Addr_E。其中,锤击行地址列表记录了在本次突发刷新之前,被开启次数达到一定阈值的行地址(即锤击行地址)及其对应的被开启次数。

继续参考图12,锤击行地址Addr_A、Addr_B、Addr_C、Addr_D和Addr_E被选取出时,是未经排序过的。地址比较单元302可以比较锤击行地址Addr_A、Addr_B、Addr_C、Addr_D和Addr_E的被开启次数,并按照被开启次数对其进行排序。

在本公开的一些实施例中,参考图12,地址选取单元301,还被配置为在n个刷新标志信号Burst_Flag被复位时,响应于激活命令,重新选取被开启次数最多的n个锤击行地址(Addr_A至Addr_E)。

在本公开的一些实施例中,参考图12,地址选取单元301,还被配置为将地址输出单元303输出的锤击行地址Hammer_Addr,从锤击行地址列表中删除。

本公开实施例中,地址选取单元301可以将已经输出过的锤击行地址从锤击行地址列表中删除,进而,在刷新标志信号Burst_Flag被复位时,响应于激活命令,重新选取被开启次数最多的n个锤击行地址,以继续对其他未被输出的锤击行地址的相邻受害行地址进行保护性刷新。这样,避免了重复对同一个行地址进行保护性刷新;从而,一方面,扩大了保护性刷新的实时性和覆盖范围,提高了保护性刷新的效果;另一方面,避免了重复对某几个锤击行地址重复进行保护性刷新,而不能解决其他锤击行造成的Row Hammer问题,导致保护性刷新达不到对整个存储体进行Row Hammer保护的效果。

在本公开的一些实施例中,第1个至第n个锤击行地址的被开启次数依次下降。也就是说,参考图12,地址比较单元302可以将锤击行地址Addr_A、Addr_B、Addr_C、Addr_D和Addr_E按照被开启次数从多到少进行排序,得到排序后的锤击行地址Addr_1、Addr_2、Addr_3、Addr_4和Addr_5,其中,Addr_1是5个锤击行地址中被开启次数最多的一个,Addr_2是5个锤击行地址中被开启次数次多的一个,以此类推。

在本公开的另一些实施例中,地址比较单元302也可以将锤击行地址Addr_A、Addr_B、Addr_C、Addr_D和Addr_E按照其他排序规则进行排序,例如,按照被开启次数从少到多进行排序,在此不做限制。

本公开实施例中,继续参考图12,地址输出单元303可以响应于刷新标志信号Burst_Flag,将排序后的锤击行地址依次输出。刷新标志信号Burst_Flag的数量与选取并进行排序的锤击行地址的数量相同,从而,地址输出单元303可以每接收到一个刷新标志信号Burst_Flag,则输出对应的一个锤击行地址。例如,地址输出单元303接收到第1个刷新标志信号Burst_Flag,则对应输出锤击行地址Addr_1;地址输出单元303接收到第2个刷新标志信号Burst_Flag,则对应输出锤击行地址Addr_2;以此类推,直至输出所有的锤击行地址。

可以理解的是,从锤击行地址列表中选取出被开启次数最多的n个锤击行地址,并按照被开启次数对n个锤击行地址进行排序,以将n个锤击行地址依次输出。这样,一方面,能够更有针对性地对Row Hammer问题进行防护,提高了保护性刷新的效果;另一方面,保证了对受害行地址执行的保护性刷新操作能够依序及时进行。

在本公开的一些实施例中,参考图13,地址输出单元303包括:n个级联的数据选择器304。每一级数据选择器304的第一输入端(即0输入端)连接下一级数据选择器304的输出端,最后一级数据选择器304的第一输入端(即0输入端)接收第1个锤击行地址Addr_1。第1级数据选择器的输出端作为地址输出单元的输出端,输出锤击行地址Hammer_Addr。第i级数据选择器304的第二输入端(即1输入端)接收第i个锤击行地址,第i级数据选择器304的控制端接收第i个刷新标志信号,其中,i大于等于1,且小于等于n。

图14以n=5为例,示出了5级数据选择器304。如图14所示,第1级数据选择器304的第二输入端(即1输入端)接收第1个锤击行地址Addr_1,第1级数据选择器304的控制端接收第1个刷新标志信号Burst1_Flag;第2级数据选择器304的第二输入端(即1输入端)接收第2个锤击行地址Addr_2,第2级数据选择器304的控制端接收第2个刷新标志信号Burst2_Flag;以此类推,第5级数据选择器304的第二输入端(即1输入端)接收第5个锤击行地址Addr_5,第5级数据选择器304的控制端接收第5个刷新标志信号Burst5_Flag。

本公开实施例中,结合图10和图14,当刷新标志信号Burst1_Flag为高电平,其他刷新标志信号均为低电平时,第1级数据选择器304将其第二输入端(即1输入端)接收的锤击行地址Addr_1作为锤击行地址Hammer_Addr输出。当刷新标志信号Burst2_Flag为高电平,其他刷新标志信号均为低电平时,第2级数据选择器304将其第二输入端(即1输入端)接收的锤击行地址Addr_2传输到第1级数据选择器304的第一输入端(即0输入端),进而,第1级数据选择器304将其第一输入端(即0输入端)接收的锤击行地址Addr_2作为锤击行地址Hammer_Addr输出。以此类推,当刷新标志信号Burst5_Flag为高电平,其他刷新标志信号均为低电平时,由第5级数据选择器304的第二输入端(即1输入端)接收的锤击行地址Addr_5,经过各级数据选择器304后,作为锤击行地址Hammer_Addr被输出。也就是说,不同的刷新标志信号Burst1_Flag至Burst5_Flag依次被置为高电平(触发一个高电平脉冲),分别对应输出不同的锤击行地址Addr_1至Addr_5,从而,保证了锤击行地址Addr_1至Addr_5能够被依次输出,保证了对受害行地址执行的保护性刷新操作能够依次进行。

本公开实施例中,继续结合图10和图14,当刷新标志信号Burst1_Flag至Burst5_Flag均为低电平时,由第5级数据选择器304的第一输入端(即0输入端)接收的锤击行地址Addr_1,经过各级数据选择器304后,作为锤击行地址Hammer_Addr被输出。也就是说,当刷新标志信号Burst1_Flag至Burst5_Flag均被复位为低电平时,锤击行地址Addr_1作为默认行地址而被输出。其中,刷新控制电路会根据锤击行地址的输出情况及时对锤击行地址列表更新,复位时从锤击行地址列表中选出的n个锤击行地址也会被更新,更新后再选取出默认行地址,默认行地址为当前未被输出且被开启次数最多的的锤击行地址。其中,锤击行地址Addr_1是经过排序后得到的,即,锤击行地址Addr_1可以是n个锤击行地址中被开启次数最多的一个。这样,即使在没有突发刷新的情况下,依然能够对受害行地址进行保护性刷新,从而,使得不同情况下都能够针对性地进行保护性刷新,更有效地对Row Hammer问题进行了防护。

在本公开的一些实施例中,参考图3或图11,执行模块103,还被配置在当前刷新命令期间或者下一个刷新命令期间对锤击行地址Hammer_Addr的相邻受害行地址执行刷新操作。

本公开实施例中,参考图3或图11,执行模块103可以在锤击行地址Hammer_Addr的基础上+1或-1,以得到与锤击行地址Hammer_Addr相邻的受害行地址,进而,利用当前刷新命令期间预留的2次刷新操作对受害行地址执行保护性刷新;在其他一些实施例中,也可利用下一个刷新命令期间预留的2次刷新操作对受害行地址执行保护性刷新;值得说明的是,此处以每次刷新命令期间预留的2次刷新操作执行保护性刷新为例进行说明,在其他实施方式中,每次刷新命令器件预留给保护性刷新的操作次数可以为其他数值。

本公开实施例还提供一种存储器,如图15所示,存储器90包括了刷新控制电路80。刷新控制电路80则包括了上述实施例中任一个的结构。

在本公开的一些实施例中,参考图15,存储器90为DRAM。其中,DRAM可以是DDR4(第4代双倍速率同步动态随机存储器)、DDR5(第5代双倍速率同步动态随机存储器)、LPDDR4(第4代低功耗双倍速率同步动态随机存储器)和LPDDR5(第5代低功耗双倍速率同步动态随机存储器)中的任一个。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。本公开所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。本公开所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。本公开所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。

以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 存储器管理方法、存储器控制电路单元与存储器存储装置
  • 解码方法、存储器存储装置及存储器控制电路单元
  • 存储器控制电路单元、存储器存储装置及其控制方法
  • 数据存储方法、存储器存储装置及存储器控制电路单元
  • 自我刷新控制电路和包含自我刷新控制电路的存储器
  • 刷新控制电路和包括刷新控制电路的半导体存储器件
技术分类

06120115917124