CN115906087B - 行锤攻击保护方法与存储器 - Google Patents

行锤攻击保护方法与存储器 Download PDF

Info

Publication number
CN115906087B
CN115906087B CN202310223553.2A CN202310223553A CN115906087B CN 115906087 B CN115906087 B CN 115906087B CN 202310223553 A CN202310223553 A CN 202310223553A CN 115906087 B CN115906087 B CN 115906087B
Authority
CN
China
Prior art keywords
address
attack
victim
value
addresses
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202310223553.2A
Other languages
English (en)
Other versions
CN115906087A (zh
Inventor
刘璐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Changxin Memory Technologies Inc
Original Assignee
Changxin Memory Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Changxin Memory Technologies Inc filed Critical Changxin Memory Technologies Inc
Priority to CN202310223553.2A priority Critical patent/CN115906087B/zh
Publication of CN115906087A publication Critical patent/CN115906087A/zh
Application granted granted Critical
Publication of CN115906087B publication Critical patent/CN115906087B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Storage Device Security (AREA)

Abstract

本公开提供一种行锤攻击保护方法和存储器,应用于集成电路技术领域。方法包括:在预设时钟周期内,响应存储器激活指令,将存储器被激活的字线的地址记为攻击地址,将与攻击地址相邻的预设值个地址记为攻击地址的受害地址;对受害地址的受害次数进行计数,距离攻击地址较近的受害地址的计数步进值大于等于距离攻击地址较远的受害地址的计数步进值;获取已记录的受害地址,若攻击地址与已记录的任一受害地址相同,将攻击地址对应的受害次数计数值归零;将受害次数的计数值满足预设条件的受害地址记为目标地址,并在预设时钟周期结束后基于刷新命令对目标地址进行刷新。本公开实施例可以提高存储器对行锤攻击的保护能力。

Description

行锤攻击保护方法与存储器
技术领域
本公开涉及集成电路技术领域,具体而言,涉及一种行锤攻击保护方法以及应用该行锤攻击保护方法的存储器。
背景技术
对计算机的恶意攻击行为可能导致行锤攻击(Row Hammer)。通过在短时间内多次访问某些内存地址(被称为攻击地址),诱导相邻存储单元的存储数据发生变化,以修改这些相邻存储单元(受害地址)的数据。在存储器制造领域,存储器控制器中通常设置有对行锤攻击的防护机制,阻止与攻击地址相邻的存储单元发生数据变化。但是在这种防护机制下,行锤攻击还是会存在一定的成功可能,这种情况为存储器设计带来了挑战。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种行锤攻击保护方法与存储器,用于至少在一定程度上克服行锤攻击成功率不够低的问题。
根据本公开的第一方面,提供一种行锤攻击保护方法,包括:在预设时钟周期内,响应存储器激活指令,将存储器被激活的字线的地址记为攻击地址,将与所述攻击地址相邻的预设值个地址记为所述攻击地址的受害地址;对所述受害地址的受害次数进行计数,距离所述攻击地址较近的受害地址的计数步进值大于等于距离所述攻击地址较远的受害地址的计数步进值;获取已记录的受害地址,若所述攻击地址与已记录的任一所述受害地址相同,将所述攻击地址对应的受害次数计数值归零;将所述受害次数的计数值满足预设条件的所述受害地址记为目标地址,并在所述预设时钟周期结束后基于刷新命令对所述目标地址进行刷新。
在本公开的一个示例性实施例中,所述预设值等于四,每个所述攻击地址对应四个受害地址,所述四个受害地址包括两个第一受害地址和两个第二受害地址,其中所述第一受害地址为与所述攻击地址对应的字线相邻的字线的地址,所述第二受害地址为与所述攻击地址对应的字线间隔一条字线的字线的地址。
在本公开的一个示例性实施例中,对所述受害地址的受害次数进行计数包括:对所述第一受害地址的受害次数增加第一值,对所述第二受害地址的受害次数增加第二值,所述第一值大于所述第二值。
在本公开的一个示例性实施例中,对所述受害地址的受害次数进行计数包括:在将存储器被激活的字线的地址记为攻击地址时,增加所述攻击地址对应的激活次数;监测所述攻击地址的激活次数;若所述攻击地址的激活次数大于第一预设值且小于第二预设值,则增加至少一条所述受害地址的计数步进值;若所述攻击地址的激活次数大于第二预设值,则减小至少一条所述受害地址的计数步进值,所述第二预设值大于所述第一预设值。
在本公开的一个示例性实施例中,所述增加至少一条所述受害地址的计数步进值包括:所述攻击地址对应的多个所述受害地址的计数步进值的增加值均相同;或者,与所述攻击地址的距离不同的多个所述受害地址的计数步进值的增加值不同,其中,距离所述攻击地址较近的受害地址的计数步进值的增加值大于等于距离所述攻击地址较远的受害地址的计数步进值的增加值。
在本公开的一个示例性实施例中,所述减小至少一条所述受害地址的计数步进值包括:所述攻击地址对应的多个所述受害地址的计数步进值的减小值均相同;或者,与所述攻击地址的距离不同的多个所述受害地址的计数步进值的减小值不同,其中,距离所述攻击地址较近的受害地址的计数步进值的减小值大于等于距离所述攻击地址较远的受害地址的计数步进值的减小值。
在本公开的一个示例性实施例中,对所述受害地址的受害次数进行计数包括:在将存储器被激活的字线的地址记为攻击地址时,增加所述攻击地址对应的激活次数;监控多个所述攻击地址的激活次数,当任意两个攻击地址的激活次数的差值超过第三预设值时,记激活次数最多的所述攻击地址为可疑攻击地址,记其他所述攻击地址为常规攻击地址;按照第一计数步进值组对所述可疑攻击地址的多个受害地址的受害次数进行计数;按照第二计数步进值组对所述常规攻击地址的多个受害地址的受害次数进行计数;所述第一计数步进值组中距离所述可疑攻击地址为x的所述受害地址的计数步进值大于所述第二计数步进值组中距离所述常规攻击地址为x的所述受害地址的计数步进值,x小于等于所述预设值的二分之一。
在本公开的一个示例性实施例中,对所述受害地址的受害次数进行计数包括:获取在先的第一攻击地址和在后的第二攻击地址,以及所述第一攻击地址的攻击次序和所述第二攻击地址的攻击次序;若所述第一攻击地址与所述第二攻击地址具有相同的受害地址,则计算所述第一攻击地址与所述第二攻击地址的攻击次序差值;基于所述攻击次序差值调整所述相同的受害地址在所述第二攻击地址影响下的所述计数步进值。
在本公开的一个示例性实施例中,所述基于所述攻击次序差值调整所述相同的受害地址在所述第二攻击地址影响下的所述计数步进值包括:根据所述攻击次序差值,增加所述第二攻击地址对所述相同的受害地址的计数步进值,所述攻击次序差值越小,所述计数步进值的增加值越大。
在本公开的一个示例性实施例中,在所述预设时钟周期结束后基于刷新命令对所述目标地址进行刷新包括:基于主动刷新命令对所述目标地址进行刷新,或者,基于被动刷新命令对所述目标地址进行刷新。
在本公开的一个示例性实施例中,所述预设条件包括所述受害次数的计数值最大,或者,所述预设条件包括所述受害次数的计数值超过预设阈值。
根据本公开的第二方面,提供一种存储器,包括存储器控制器,所述存储器控制器用以执行如上任一实施例所述的方法,以控制所述存储器刷新。
本公开实施例通过将攻击地址的相邻预设值个地址均记为受害地址,并在一定时段内对全部受害地址进行更新和管理,可以有效识别行锤攻击的全部受害地址,从而对受害地址进行及时保护,降低行锤攻击的成功率,提高存储器对行锤攻击的防护力度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本公开示例性实施例中行锤攻击保护方法的流程图。
图2是本公开一个实施例中受害地址的示意图。
图3A和图3B是本公开一个实施例中对受害地址的受害次数进行计数的示意图。
图4是本公开另一个实施例中对受害地址的受害次数进行计数的流程图。
图5是本公开另一个实施例中对受害地址的受害次数进行计数的流程图。
图6是本公开图5实施例中对可疑攻击地址和常规攻击地址的受害地址进行管理的示意图。
图7是本公开再一个实施例中对受害地址的受害次数进行计数的流程图。
图8是图7所示实施例的示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
下面结合附图对本公开示例实施方式进行详细说明。
图1是本公开示例性实施例中行锤攻击保护方法的流程图。
参考图1,行锤攻击保护方法100可以包括:
步骤S1,在预设时钟周期内,响应存储器激活指令,将存储器被激活的字线的地址记为攻击地址,将与攻击地址相邻的预设值个地址记为攻击地址的受害地址;
步骤S2,对受害地址的受害次数进行计数,距离攻击地址较近的受害地址的计数步进值大于等于距离攻击地址较远的受害地址的计数步进值;
步骤S3,获取已记录的受害地址,若攻击地址与已记录的任一受害地址相同,将攻击地址对应的受害次数计数值归零;
步骤S4,将受害次数的计数值满足预设条件的受害地址记为目标地址,并在预设时钟周期结束后基于刷新命令对目标地址进行刷新。
行锤攻击(Row hammer)是指在DRAM中累计多次对一根字线进行访问,影响临近字线的电荷存储,降低DRAM的可靠性。目前针对DRAM的行锤攻击问题,都以找到攻击地址为目标,对攻击地址的相邻地址进行刷新。这种模式下,行锤攻击的成功率仍不能降低到目标以下。
本申请的发明人在研究中发现,除了攻击地址的相邻地址,不同的攻击地址之间的地址(不与任一攻击地址相邻)会受到不同攻击地址的多次影响,该影响在某些情况下不亚于直接受相邻地址的行锤攻击的影响,导致攻击者能够通过选择攻击地址实现对非相邻地址的攻击,进一步导致行锤攻击的成功率仍能维持一定水平。
本公开实施例通过将攻击地址的相邻预设值个地址均记为受害地址,并在一定时段内对全部受害地址进行更新和统一管理,可以有效识别行锤攻击的全部受害地址,从而对受害地址进行及时保护,降低行锤攻击的成功率,提高存储器对行锤攻击的防护力度(retention reliability)。
下面,对方法100的各步骤进行详细说明。
步骤S1,在预设时钟周期内,响应存储器激活指令,将存储器被激活的字线的地址记为攻击地址,将与攻击地址相邻的预设值个地址记为攻击地址的受害地址。
由于存储器设置有自刷新机制,自刷新时会重新对所有存储单元进行数据复写,因此改变存储单元数据的时机在自刷新周期内,每个自刷新周期由多个刷新时段组成,相邻刷新时段之间为上述预设时钟周期,在预设时钟周期内存储控制器对字线进行激活访问,在每个预设时钟周期之后的刷新时段内对一条或多条字线进行刷新。本公开实施例设置在预设时钟周期内检测被攻击影响到的受害地址,并在预设时钟周期结束后的刷新时段对最可能被影响到的受害地址即目标地址进行刷新,有利于避免行锤攻击对存储单元造成影响,影响后续自刷新时的数据回写。
需要说明的是,上述自刷新机制仅用于限定存储器中的所有存储单元(或者说所有字线)会被定时刷新,但并不限定存储器是基于存储控制器发送的刷新命令进行刷新还是基于存储器自身产生的刷新命令进行刷新。
图2是本公开一个实施例中受害地址的示意图。
参考图2,在一个实施例中,预设值个地址中的预设值等于四,每个攻击地址21对应四个受害地址,四个受害地址包括两个第一受害地址21A和两个第二受害地址21B,其中第一受害地址21A为与攻击地址21对应的字线WLi相邻的字线WLi+1、字线WLi-1的地址,第二受害地址21B为与攻击地址21对应的字线WLi间隔一条字线的字线WLi+2、字线WLi-2的地址。
在本公开的其他实施例中,预设值还可以为其他值,例如6、8等,此时按照图2所示原理对受害地址按照与攻击地址的距离进行分类即可。
当预设时钟周期内,存在两个距离较近的攻击地址时,位于这两个攻击地址之间的地址可能同时作为这两个攻击地址的受害地址。因此,下面需要针对每个攻击地址对受害地址的影响进行量化。
步骤S2,对受害地址的受害次数进行计数,距离攻击地址较近的受害地址的计数步进值大于等于距离攻击地址较远的受害地址的计数步进值。
在一个实施例中,当预设值等于四时,在步骤S2可以对第一受害地址的受害次数增加第一值,对第二受害地址的受害次数增加第二值,第一值大于第二值。例如,设置第一值等于2,第二值等于1。
图3A和图3B是本公开一个实施例中对受害地址的受害次数进行计数的示意图。
参考图3A,为了方便后续讲解,设置激活次数以管理每个地址在预设时钟周期内作为攻击地址的次数。在将存储器被激活的字线的地址记为攻击地址时,增加攻击地址对应的激活次数Act。设置全部地址的激活次数Act初始化为0,受害次数初始化为0,并对每次攻击修改相关地址的激活次数或受害次数,以说明激活次数和受害次数的使用过程。
在实际应用中,也可以设置两个空的集合或数组,将攻击地址加入攻击地址集合,将每个攻击地址对应的受害地址加入受害地址集合,对攻击地址集合中的每个地址均初始化激活次数和受害次数,对受害地址集合中的每个地址均初始化激活次数和受害次数,攻击地址集合和受害地址结合可以具有重复的地址。这样,管理的攻击地址和受害地址数量较少,管理效率较高。本领域技术人员可以根据计算机编程的需求设置数据结构,本公开不对激活次数和受害次数的管理形式进行限定。
继续以图3A所示为例,设第一值等于2,第二值等于1,当对攻击地址21(字线WLi)进行一次攻击时,对该攻击地址21的激活次数Act加1,同时,根据预设值计算攻击地址21对应的第一受害地址21A和第二受害地址21B的地址,按照第一值更新第一受害地址21A(字线WLi+1、字线WLi-1)对应的受害次数,按照第二值更新第二受害地址21B(字线WLi+2、字线WLi-2)对应的受害次数。一次攻击后,攻击地址21的第一受害地址21A和第二受害地址21B的激活次数Act仍旧为0,受害次数分别更新为2和1;攻击地址21的激活次数被更新为1,受害次数仍旧为0。
进入图3B,在第二次攻击中,攻击地址22(字线WLi+3)的第一受害地址22A为字线WLi+2和字线WLi+4,攻击地址22的第二受害地址22B为字线WLi+1和字线WLi+5。对应地,将攻击地址22的激活次数更新为1,受害次数维持0;将攻击地址22的第一受害地址22A的受害次数按照第一值更新,即字线WLi+2的受害次数被更新为3,字线WLi+4的受害次数被更新为2;将攻击地址22的第二受害地址22B的受害次数按照第二值更新,将字线WLi+1的受害次数更新为3,将字线WLi+5的受害次数更新为1。
从图3B可以看出,在第二次攻击发生后,字线WLi+1和字线WLi+2的受害次数相同,受到的影响程度相同,属于两次攻击中最受影响的两个地址,最容易发生数据改变,而其他地址的受影响程度明显不如字线WLi+1和字线WLi+2。
当进一步出现更多攻击时,可以按照上述逻辑更新每个地址的激活次数和受害次数,从而筛选出受到预设时钟周期内的攻击总影响最大的若干个地址。
在步骤S3,获取已记录的受害地址,若攻击地址与已记录的任一受害地址相同,将攻击地址对应的受害次数计数值归零。
图3A和图3B所示实施例中未示出攻击受害地址的情况。在实际应用中,当攻击地址为之前被记录为受害地址的地址时,会对该攻击地址进行重新写入,此时该攻击地址的数据发生更新,之前受到受害次数影响所导致的数据变更风险被清零,无需考虑之前的受害次数。因此,直接对攻击地址的受害次数清零即可。后续如果该地址未被再次攻击,但是以或多次成为其他攻击地址的受害地址,则再次更新该地址的受害次数。
在图3A和图3B所示实施例中,对每次攻击,均将该攻击地址对应的第一受害地址的计数步进值设置为第一值,将第二受害地址的计数步进值设置为第二值,此种算法较为简单,效率较高。但是,在一些情况下,如果频繁对一个地址进行攻击,则该地址对应的受害地址的受害程度大幅增加,发生数据翻转的风险大幅增加。在一个临界点之后,如果该地址对应的攻击次数继续增大,则该地址对应的受害地址很可能已经发生数据翻转,此时如果继续增加这些受害地址的受害次数,无法提供更多的识别信息,反而会增加这些受害地址与其他地址的受害次数差值,导致对其他受害程度较大的地址是否需要进行刷新的判断失误(因为与上述受害地址相比其他地址的受害次数都很小),在后续进行保护动作时无法覆盖其他实际受害程度较大、已经具有数据翻转风险的地址,保护不够全面。
基于以上原因或其他原因,例如基于攻击地址的激活次数、基于不同攻击地址之间的激活次数之差、基于受害地址的计数值、基于不同受害地址的计数值之差甚至基于外部环境参数(例如温度、电压和气压)调整受害地址的计数步进值,这种调整既可以是针对某一攻击地址对应的受害地址,也可以是针对所有受害地址,既可以是按绝对值调整,也可以按比例调整,不同的受害地址的调整程度可以相同也可以不同,总之,控制计数步进值能够根据预设条件动态调整,有利于避免极端情况出现时无法有效刷新受害地址,极端情况包括新的攻击策略。
图4是本公开另一个实施例中对受害地址的受害次数进行计数的流程图。
参考图4,在本公开的一个实施例中,步骤S2可以包括:
步骤S21,在将存储器被激活的字线的地址记为攻击地址时,增加所述攻击地址对应的激活次数;
步骤S22,监测攻击地址的激活次数;
步骤S23,若攻击地址的激活次数大于第一预设值且小于第二预设值 ,则增加至少一条受害地址的计数步进值;
步骤S24,若攻击地址的激活次数大于第二预设值,则减小至少一条受害地址的计数步进值,第二预设值大于第一预设值。
在一个实施例中,在步骤S23增加至少一条受害地址的计数步进值时,可以设置攻击地址对应的多个受害地址的计数步进值的增加值均相同,例如对第一受害地址和第二受害地址的计数步进值的增加值均设置为2,将第一受害地址的计数步进值由2增加为4,将第二受害地址的计数步进值由1增加为3。
在另一些实施例中,考虑到距离攻击地址越近的受害地址的受害程度越大,还可以设置与攻击地址的距离不同的多个受害地址的计数步进值的增加值不同,其中,距离攻击地址较近的受害地址的计数步进值的增加值大于等于距离攻击地址较远的受害地址的计数步进值的增加值。例如,将第一受害地址和第二受害地址的计数步进值的增加值分别设置为2和1,将第一受害地址的计数步进值由2增加为4,将第二受害地址的计数步进值由1增加为2。
虽然上述说明以数值的绝对值为例,但是在实际应用中还可以设置增加值为百分比,例如对第一受害地址和第二受害地址的计数步进值均增加50%,或者将第一受害地址和第二受害地址的计数步进值分别增加50%和40%等。
同理,在步骤S24减小至少一条受害地址的计数步进值时,可以设置攻击地址对应的多个受害地址的计数步进值的减小值均相同;或者,与攻击地址的距离不同的多个受害地址的计数步进值的减小值不同,其中,距离攻击地址较近的受害地址的计数步进值的减小值大于等于距离攻击地址较远的受害地址的计数步进值的减小值。减小值同样可以包括绝对值和比例值。减小值的设置方式与增加值相同,于此不再赘述。
除了基于单独的攻击地址的激活次数对受害地址的计数步进值进行调整,还可以根据预设时钟周期内的全面攻击表现,识别出特殊的攻击地址,以对该特殊的攻击地址及其受害地址进行特殊处理。
图5是本公开另一个实施例中对受害地址的受害次数进行计数的流程图。
参考图5,在本公开的一个实施例中,步骤S2可以包括:
步骤S21,在将存储器被激活的字线的地址记为攻击地址时,增加所述攻击地址对应的激活次数;
步骤S22,监测攻击地址的激活次数;
步骤S25,当任意两个攻击地址的激活次数的差值超过第三预设值时,记激活次数最多的攻击地址为可疑攻击地址,记其他攻击地址为常规攻击地址;
步骤S26,按照第一计数步进值组对可疑攻击地址的多个受害地址的受害次数进行计数,按照第二计数步进值组对常规攻击地址的多个受害地址的受害次数进行计数,其中,第一计数步进值组中距离可疑攻击地址为x的受害地址的计数步进值大于第二计数步进值组中距离常规攻击地址为x的受害地址的计数步进值,x小于等于预设值的二分之一。
图6是本公开图5实施例中对可疑攻击地址和常规攻击地址的受害地址进行管理的示意图。
参考图6,设第三预设值等于300,预设值等于4。地址61在预设时钟周期内的激活次数为810次,地址62在预设时钟周期内的激活次数为99次,地址63在预设时钟周期内的激活次数为87次,由于地址61的激活次数和其他攻击地址的激活次数的差值大于300,因此地址61被识别为可疑攻击地址,记为可疑攻击地址61,地址62、地址63被识别为常规攻击地址,记为常规攻击地址62和常规攻击地址63。
每个攻击地址具有4个受害地址,如图2所示实施例。对于可疑攻击地址,将第一计数步进值组设置为(6,3),即对第一受害地址的计数步进值为6,对第二受害地址的计数步进值为3;对于常规攻击地址,将第二计数步进值组设置为(2,1),即对第一受害地址的计数步进值为2,对第二受害地址的计数步进值为1。
即,按照相同规则划分第一受害地址和第二受害地址时,可疑攻击地址的第一受害地址(x=1)的计数步进值6大于常规攻击地址的第一受害地址(x=1)的计数步进值2,可疑攻击地址的第二受害地址(x=2)的计数步进值3大于常规攻击地址的第二受害地址(x=2)的计数步进值1。以强化可疑攻击地址对受害地址的影响。
在图6所示实施例中,地址64同时是可疑攻击地址61和常规攻击地址62的第一受害地址。设地址64的激活次数为0,则作为可疑攻击地址61的第一受害地址,在可疑攻击地址61的激活次数等于810次时,地址64的受害次数等于810×6=4860;作为常规攻击地址62的第一受害地址,在常规攻击地址62的激活次数等于99次时,地址64的受害次数等于99×2=198。最终,地址64的受害次数是两种影响之和,即地址64的受害次数=4860+198=5058。当然,如果地址64的激活次数不等于0,在被激活时会对受害次数清零,从而出现最终的受害次数小于5058的情况。
例如,常规攻击地址62同时作为可疑攻击地址61的第二受害地址,受害次数随着可疑攻击地址61的激活次数增加而增加,但是,常规攻击地址62每次被激活,其对应的受害次数均会清零,因此最终受害次数等于最后一次被激活后受到的可疑攻击地址61的影响,等于12,即在常规攻击地址62最后一次被激活后,可疑受害地址61又发生了4次激活。
同理,可疑攻击地址61也是常规攻击地址61的第二受害地址,但是由于可疑攻击地址61的激活频繁,其受害次数始终维持在较小的数值,如图6中此时可疑攻击地址61的受害次数等于0,最后一次被激活的是可疑攻击地址61。
位于可疑攻击地址61和常规攻击地址63之间的地址65和地址66同样按照上述逻辑计算受害次数。地址65作为可疑攻击地址61的第一受害地址和常规攻击地址63的第二受害地址,在激活次数等于0的情况下,其受害次数=810×6+87×1=4947;受害地址66作为可疑攻击地址61的第二受害地址和常规攻击地址63的第一受害地址,在激活次数等于0的情况下,其受害次数=810×3+87×2=2604。
对应地,地址67、地址68仅作为常规攻击地址63的第一受害地址和第二受害地址,在激活次数均等于0的情况下,地址67的受害次数=87×2=174,地址68的受害次数=87×1=87;地址69仅作为常规攻击地址62的第一受害地址,在激活次数均等于0的情况下,地址69的受害次数=99×2=198。
以上各数值、预设值和可疑受害地址、常规攻击地址的位置关系仅为示例,本领域技术人员可以根据上述示例确定每个地址对应的受害次数。第一计数步进值组、第二计数步进值组可以根据实际需要设置,只要能够增加可疑攻击地址的影响即可。
此外,图6所示实施例也可以与图4所示根据激活次数调整计数步进值的实施例结合,以对各计数步进值进行动态调整。
图7是本公开再一个实施例中对受害地址的受害次数进行计数的流程图。
参考图7,在再一个实施例中,步骤S2可以包括:
步骤S27,获取在先的第一攻击地址和在后的第二攻击地址,以及第一攻击地址的攻击次序和第二攻击地址的攻击次序;
步骤S28,若第一攻击地址与第二攻击地址具有相同的受害地址,则计算第一攻击地址与第二攻击地址的攻击次序差值;
步骤S29,基于攻击次序差值调整相同的受害地址在第二攻击地址影响下的计数步进值。
图8是图7所示实施例的示意图。
参考图8,设第一攻击地址81(字线WLi)是第55次攻击的攻击地址,攻击次序等于55;第二攻击地址82(字线WLi+3)是第60次攻击的攻击地址,攻击次序等于60。第一攻击地址81(字线WLi)和第二攻击地址82(字线WLi+3)具有共同的受害地址83(字线WLi+1)和受害地址84(字线WLi+2)。
此时,在步骤S28计算第一攻击地址81(字线WLi)和第二攻击地址82(字线WLi+3)的攻击次序差值=60-55=5。说明第一攻击地址81对受害地址83(字线WLi+1)和受害地址84(字线WLi+2)的影响经过了5个激活周期,时间较短。
在一个实施例中,可以在步骤S29中根据攻击次序差值,增加第二攻击地址对相同的受害地址的计数步进值,攻击次序差值越小,计数步进值的增加值越大。
当出现目标第二攻击地址82(字线WLi+3)的攻击时,应考虑到受害地址83(字线WLi+1)和受害地址84(字线WLi+2)受到第一攻击地址81(字线WLi)的影响还未消退,相当于叠加了第一攻击地址81(字线WLi)和第二攻击地址82(字线WLi+3)的影响,因此,可以增加第二攻击地址82对受害地址83(字线WLi+1)和受害地址84(字线WLi+2)的计数步进值,以反映该叠加影响。
对于不同的攻击次序差值可以设置不同的计数步进值影响值,例如攻击次序差值等于n时,可以设置将第二攻击地址82对相同受害地址的计数步进值增加2;当攻击次序差值等于n-1时,可以设置将第二攻击地址82对相同受害地址的计数步进值增加3;当攻击次序差值等于n-+时,可以设置将第二攻击地址82对相同受害地址的计数步进值增加1,其中n大于等于2。上述计数步进值也可以根据百分比或绝对值来增加,并不一定要进行倍数增加,本公开对此不作特殊限制。
或者,也可以使用数值范围来管理攻击次序差值对计数步进值的影响。例如,在攻击次序差值属于[1,10]范围时,设置将第二攻击地址82对相同受害地址的计数步进值增加10%;在攻击次序差值属于[11,20]范围时,设置将第二攻击地址82对相同受害地址的计数步进值增加5%;在攻击次序差值属于[20,100]范围时,设置将第二攻击地址82对相同受害地址的计数步进值增加1%等等。
在一些实施例中,当攻击次序差值大到一定数值(例如100)时,在先的受害地址的叠加影响已经很小,此时,可以认为前后两次攻击地址造成的后果不再叠加,可以不调整计数步进值。
图7所示实施例可以与上述任一实施例结合,以调整计数步进值、更新各受害地址的受害次数。
总之,本公开实施例考虑到如果一个地址多次作为二或多个攻击地址的受害地址,则该地址的受害程度是叠加的,叠加会导致受害程度被放大。与该地址距离越近的攻击地址对该地址的受害程度影响越大,两次作为受害地址的间隔时间越短,受害程度叠加影响越大。此外,对于攻击地址而言,其被攻击次数与其对受害地址的影响随时间变化而变化,攻击地址的影响力可以通过调整计数步进值来调整。
步骤S4,将受害次数的计数值满足预设条件的受害地址记为目标地址,并在预设时钟周期结束后基于刷新命令对目标地址进行刷新。
在预设时钟周期内获取到每个地址在多次攻击影响下的总的受害次数后,可以识别每个地址的综合受害程度。在本公开实施例中,可以基于预设条件对受害地址进行衡量,以识别出受害程度达到数据翻转风险的地址,对其进行数据刷新,防止该地址在多次攻击下发生数据翻转。
在一个实施例中,预设条件可以为受害次数的计数值最大,即将受害次数的计数值最大的前N个地址设置为目标地址,N大于等于1。例如,当设置N=2时,可以对图6所示实施例中的地址64和地址65进行刷新。
在另一个实施例中,可以设置预设条件为受害次数的计数值超过预设阈值,即将受害次数达到一定数量的地址均设置为目标地址。上述预设阈值应当远小于实际会造成损害的激活次数,在目前技术中,行锤攻击要造成损害,一般需要访问80000次。
在预设时钟周期结束后,可以基于主动刷新命令或者被动刷新命令对目标地址进行刷新。其中主动刷新命令包括但不限于存储器按照预定自刷新间隔进行刷新;被动刷新包括但不限于受控于存储控制器发送的外部指令刷新。
其中刷新(refresh)是指从存储单元中读取数据后对存储单元回写该数据,回写的数据等于之前读取的数据,但是回写数据后存储单元中的存储电荷恢复到刚被写入数据的状态,不容易因电荷泄露而发生翻转。
刷新目标地址后,对目标地址的受害次数和激活次数均清零,以在下一个刷新周期内重新进行统计。
下面,以实际运行为例对本公开实施例的方法进行说明。
存储器在运行时,可以对采样得到的攻击地址计算其相邻两个地址范围内的受害地址(victim)并存储。每次计算出新的受害地址时,与已存储的受害地址进行匹配,若与任一已存储的受害地址相同,则增加该受害地址的受害次数。进行RHR(Row Hammer Refresh,行锤自刷新)时选择受害次数较大的受害地址进行刷新。
以一个RHR间隔(interval)为周期,在其中随机或周期性抓取x次被访问的攻击地址(aggressor),例如x=10。随机抓取电路可以基于时刻如时钟沿(Ring Osc)或激活事件(Active)来抓取。可以设置多个地址寄存器来存储受害地址,同时设置对应数量的计数器来对每个受害地址的受害次数计数。
每次计算出新的受害地址时,与已存储的受害地址进行匹配,若与任一已存储的受害地址相同,则根据该受害地址与攻击地址的距离增加该受害地址的受害次数。若刷新(refresh)或激活(active)的地址与寄存器存储的受害地址匹配,则将该受害地址对应的计数器复位清零,并在地址寄存器中删除该受害地址。可以设置实时指针指向计数器最大值对应的寄存器,RHR操作时选择计数器数值最大的地址作为目标地址进行刷新,并设置该目标地址对应的计数器和寄存器复位。
通过对受害次数较大的目标地址进行刷新,可以在目标地址受行锤攻击影响严重,且尚未被影响到电荷出现严重变化、数据发生翻转的情况下,恢复该目标地址对应的存储单元的存储电荷状态,消除作为受害地址时受到的电荷影响,保护存储器不受行锤攻击的影响。
本公开实施例的方法可以由存储器控制器执行,以对存储器进行保护。
根据本公开实施例的另一方面,提供一种存储器。该存储器包括存储器控制器,该存储器控制器用以执行上述任一实施例的方法,以控制存储器刷新。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和构思由权利要求指出。

Claims (12)

1.一种行锤攻击保护方法,其特征在于,包括:
在预设时钟周期内,响应存储器激活指令,将存储器被激活的字线的地址记为攻击地址,将与所述攻击地址相邻的预设值个地址记为所述攻击地址的受害地址;
对所述受害地址的受害次数进行计数,距离所述攻击地址较近的受害地址的计数步进值大于等于距离所述攻击地址较远的受害地址的计数步进值;
获取已记录的受害地址,若所述攻击地址与已记录的任一所述受害地址相同,将所述攻击地址对应的受害次数计数值归零;
将所述受害次数的计数值满足预设条件的所述受害地址记为目标地址,并在所述预设时钟周期结束后基于刷新命令对所述目标地址进行刷新。
2.如权利要求1所述的方法,其特征在于,所述预设值等于四,每个所述攻击地址对应四个受害地址,所述四个受害地址包括两个第一受害地址和两个第二受害地址,其中所述第一受害地址为与所述攻击地址对应的字线相邻的字线的地址,所述第二受害地址为与所述攻击地址对应的字线间隔一条字线的字线的地址。
3.如权利要求2所述的方法,其特征在于,对所述受害地址的受害次数进行计数包括:
对所述第一受害地址的受害次数增加第一值,对所述第二受害地址的受害次数增加第二值,所述第一值大于所述第二值。
4.如权利要求1或2所述的方法,其特征在于,对所述受害地址的受害次数进行计数包括:
在将存储器被激活的字线的地址记为攻击地址时,增加所述攻击地址对应的激活次数;
监测所述攻击地址的激活次数;
若所述攻击地址的激活次数大于第一预设值且小于第二预设值 ,则增加至少一条所述受害地址的计数步进值;
若所述攻击地址的激活次数大于第二预设值,则减小至少一条所述受害地址的计数步进值,所述第二预设值大于所述第一预设值。
5.如权利要求4所述的方法,其特征在于,所述增加至少一条所述受害地址的计数步进值包括:
所述攻击地址对应的多个所述受害地址的计数步进值的增加值均相同;或者,
与所述攻击地址的距离不同的多个所述受害地址的计数步进值的增加值不同,其中,距离所述攻击地址较近的受害地址的计数步进值的增加值大于等于距离所述攻击地址较远的受害地址的计数步进值的增加值。
6.如权利要求4所述的方法,其特征在于,所述减小至少一条所述受害地址的计数步进值包括:
所述攻击地址对应的多个所述受害地址的计数步进值的减小值均相同;或者,
与所述攻击地址的距离不同的多个所述受害地址的计数步进值的减小值不同,其中,距离所述攻击地址较近的受害地址的计数步进值的减小值大于等于距离所述攻击地址较远的受害地址的计数步进值的减小值。
7.如权利要求1所述的方法,其特征在于,对所述受害地址的受害次数进行计数包括:
在将存储器被激活的字线的地址记为攻击地址时,增加所述攻击地址对应的激活次数;
监控多个所述攻击地址的激活次数,当任意两个攻击地址的激活次数的差值超过第三预设值时,记激活次数最多的所述攻击地址为可疑攻击地址,记其他所述攻击地址为常规攻击地址;
按照第一计数步进值组对所述可疑攻击地址的多个受害地址的受害次数进行计数;
按照第二计数步进值组对所述常规攻击地址的多个受害地址的受害次数进行计数;
所述第一计数步进值组中距离所述可疑攻击地址为x的所述受害地址的计数步进值大于所述第二计数步进值组中距离所述常规攻击地址为x的所述受害地址的计数步进值,x小于等于所述预设值的二分之一。
8.如权利要求1所述的方法,其特征在于,对所述受害地址的受害次数进行计数包括:
获取在先的第一攻击地址和在后的第二攻击地址,以及所述第一攻击地址的攻击次序和所述第二攻击地址的攻击次序;
若所述第一攻击地址与所述第二攻击地址具有相同的受害地址,则计算所述第一攻击地址与所述第二攻击地址的攻击次序差值;
基于所述攻击次序差值调整所述相同的受害地址在所述第二攻击地址影响下的所述计数步进值。
9.如权利要求8所述的方法,其特征在于,所述基于所述攻击次序差值调整所述相同的受害地址在所述第二攻击地址影响下的所述计数步进值包括:
根据所述攻击次序差值,增加所述第二攻击地址对所述相同的受害地址的计数步进值,所述攻击次序差值越小,所述计数步进值的增加值越大。
10.如权利要求1所述的方法,其特征在于,在所述预设时钟周期结束后基于刷新命令对所述目标地址进行刷新包括:基于主动刷新命令对所述目标地址进行刷新,或者,基于被动刷新命令对所述目标地址进行刷新。
11.如权利要求1所述的方法,其特征在于,所述预设条件包括所述受害次数的计数值最大,或者,所述预设条件包括所述受害次数的计数值超过预设阈值。
12.一种存储器,其特征在于,包括存储器控制器,所述存储器控制器用以执行权利要求1-11任一项所述的方法,以控制所述存储器刷新。
CN202310223553.2A 2023-03-09 2023-03-09 行锤攻击保护方法与存储器 Active CN115906087B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310223553.2A CN115906087B (zh) 2023-03-09 2023-03-09 行锤攻击保护方法与存储器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310223553.2A CN115906087B (zh) 2023-03-09 2023-03-09 行锤攻击保护方法与存储器

Publications (2)

Publication Number Publication Date
CN115906087A CN115906087A (zh) 2023-04-04
CN115906087B true CN115906087B (zh) 2023-07-07

Family

ID=86495129

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310223553.2A Active CN115906087B (zh) 2023-03-09 2023-03-09 行锤攻击保护方法与存储器

Country Status (1)

Country Link
CN (1) CN115906087B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010084868A1 (ja) * 2009-01-26 2010-07-29 株式会社コナミデジタルエンタテインメント ゲーム装置、ゲーム処理方法、情報記憶媒体、ならびに、プログラム
KR20150058366A (ko) * 2012-11-30 2015-05-28 인텔 코포레이션 저장된 행 해머 임계값에 기초한 행 해머 모니터링
CN105684089A (zh) * 2013-08-28 2016-06-15 慧与发展有限责任合伙企业 刷新速率调整
US9691466B1 (en) * 2016-06-03 2017-06-27 SK Hynix Inc. Memory device including refresh controller
CN108369820A (zh) * 2015-10-21 2018-08-03 伊文萨思公司 Dram相邻行干扰缓解
WO2022207999A1 (fr) * 2021-03-29 2022-10-06 Upmem Dispositif memoire et procede de protection d'un dispositif memoire de l'effet de martelage d'un rang
CN115249501A (zh) * 2021-04-28 2022-10-28 长鑫存储技术有限公司 攻击地址的获取方法及其电路、锤击刷新方法和存储器
US11568917B1 (en) * 2021-10-12 2023-01-31 Samsung Electronics Co., Ltd. Hammer refresh row address detector, and semiconductor memory device and memory module including the same
WO2023021452A1 (en) * 2021-08-18 2023-02-23 Eth Zurich A method for protecting a dram module against rowhammer attacks, and a dram module
CN115731983A (zh) * 2021-08-30 2023-03-03 三星电子株式会社 存储器控制器和包括其的存储器系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9030903B2 (en) * 2012-09-24 2015-05-12 Intel Corporation Method, apparatus and system for providing a memory refresh
US9431085B2 (en) * 2014-03-28 2016-08-30 Synopsys, Inc. Most activated memory portion handling
KR102468728B1 (ko) * 2016-08-23 2022-11-21 에스케이하이닉스 주식회사 리프레쉬 제어 회로, 반도체 메모리 장치 및 그의 동작 방법
US11783032B2 (en) * 2018-09-17 2023-10-10 Georgia Tech Research Corporation Systems and methods for protecting cache and main-memory from flush-based attacks
EP3675125A1 (en) * 2018-12-27 2020-07-01 Secure-IC SAS Device and method for protecting a memory
US11556646B2 (en) * 2019-05-31 2023-01-17 International Business Machines Corporation Identifying and responding to a side-channel security threat
US20220129200A1 (en) * 2020-10-26 2022-04-28 Qualcomm Incorporated Dram with quick random row refresh for rowhammer mitigation
US11955159B2 (en) * 2021-07-20 2024-04-09 Samsung Electronics Co., Ltd. Semiconductor memory device and memory system including the same

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010084868A1 (ja) * 2009-01-26 2010-07-29 株式会社コナミデジタルエンタテインメント ゲーム装置、ゲーム処理方法、情報記憶媒体、ならびに、プログラム
KR20150058366A (ko) * 2012-11-30 2015-05-28 인텔 코포레이션 저장된 행 해머 임계값에 기초한 행 해머 모니터링
CN105684089A (zh) * 2013-08-28 2016-06-15 慧与发展有限责任合伙企业 刷新速率调整
CN108369820A (zh) * 2015-10-21 2018-08-03 伊文萨思公司 Dram相邻行干扰缓解
US9691466B1 (en) * 2016-06-03 2017-06-27 SK Hynix Inc. Memory device including refresh controller
WO2022207999A1 (fr) * 2021-03-29 2022-10-06 Upmem Dispositif memoire et procede de protection d'un dispositif memoire de l'effet de martelage d'un rang
CN115249501A (zh) * 2021-04-28 2022-10-28 长鑫存储技术有限公司 攻击地址的获取方法及其电路、锤击刷新方法和存储器
WO2023021452A1 (en) * 2021-08-18 2023-02-23 Eth Zurich A method for protecting a dram module against rowhammer attacks, and a dram module
CN115731983A (zh) * 2021-08-30 2023-03-03 三星电子株式会社 存储器控制器和包括其的存储器系统
US11568917B1 (en) * 2021-10-12 2023-01-31 Samsung Electronics Co., Ltd. Hammer refresh row address detector, and semiconductor memory device and memory module including the same

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Rowhammer 漏洞研究进展;肖超恩等;北京电子科技学院学报;第28卷(第1期);30--41 *
侧信道攻击与防御技术研究进展;王永娟等;计算机学 报;第46卷(第1期);202-228页 *
内存RowHammer 攻击与防御综述;杨莹莹等;广州大学学报( 自然科学版);第20卷(第3期);30-43 *

Also Published As

Publication number Publication date
CN115906087A (zh) 2023-04-04

Similar Documents

Publication Publication Date Title
CN108369820B (zh) 缓解具有可寻址行的存储器阵列中的数据丢失的方法
Yağlikçi et al. Blockhammer: Preventing rowhammer at low cost by blacklisting rapidly-accessed dram rows
Park et al. Graphene: Strong yet lightweight row hammer protection
US11810612B2 (en) Apparatuses and methods for row hammer based cache lockdown
Lee et al. TWiCe: Preventing row-hammering by exploiting time window counters
US9431085B2 (en) Most activated memory portion handling
US20210012832A1 (en) Row hammer correction logic for dram with integrated processor
Kim et al. Mithril: Cooperative row hammer protection on commodity dram leveraging managed refresh
US10108365B1 (en) Bitflip security attack protection
US20220113868A1 (en) Mitigating row-hammer attacks
US9804972B2 (en) Regulating memory activation rates
US20230402086A1 (en) Memory system
CN115249501A (zh) 攻击地址的获取方法及其电路、锤击刷新方法和存储器
Wang et al. Discreet-para: Rowhammer defense with low cost and high efficiency
CN115906087B (zh) 行锤攻击保护方法与存储器
France et al. Reducing the Silicon Area Overhead of Counter-Based Rowhammer Mitigations
WO2023021452A1 (en) A method for protecting a dram module against rowhammer attacks, and a dram module
Kim et al. Hammerfilter: Robust protection and low hardware overhead method for rowhammer
KR20240068641A (ko) 시너지 접근법을 통해 메모리 디바이스를 보호하는 방법 및 장치
US20140032855A1 (en) Information processing apparatus and method
CN114627929A (zh) 存储器控制器和存储器系统
Woo et al. Mitigating Row-hammering by Adapting the Probability of Additional Row Refresh
US11990198B2 (en) Memory system and operation method of memory system
US20230236982A1 (en) Dual cache for row hammer mitigation
US20240055038A1 (en) Address refresh check method and apparatus, storage medium, and electronic device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant