CN115357952B - 针对动态存储器的行锤攻击防御方法和装置 - Google Patents

针对动态存储器的行锤攻击防御方法和装置 Download PDF

Info

Publication number
CN115357952B
CN115357952B CN202211270418.5A CN202211270418A CN115357952B CN 115357952 B CN115357952 B CN 115357952B CN 202211270418 A CN202211270418 A CN 202211270418A CN 115357952 B CN115357952 B CN 115357952B
Authority
CN
China
Prior art keywords
refresh
dynamic memory
row
command queue
refreshing
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
CN202211270418.5A
Other languages
English (en)
Other versions
CN115357952A (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.)
Shanghai Kuixin Integrated Circuit Design Co ltd
Hefei Kuixian Integrated Circuit Design Co ltd
Original Assignee
Shanghai Kuixin Integrated Circuit Design Co ltd
Hefei Kuixian Integrated Circuit Design Co ltd
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 Shanghai Kuixin Integrated Circuit Design Co ltd, Hefei Kuixian Integrated Circuit Design Co ltd filed Critical Shanghai Kuixin Integrated Circuit Design Co ltd
Priority to CN202211270418.5A priority Critical patent/CN115357952B/zh
Publication of CN115357952A publication Critical patent/CN115357952A/zh
Application granted granted Critical
Publication of CN115357952B publication Critical patent/CN115357952B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Dram (AREA)

Abstract

本发明提供一种针对动态存储器的行锤攻击防御方法和装置,通过在浮动时间窗口内实时检测行锤攻击,在检测到针对任一行或多个行的行锤攻击时,主动生成针对该动态存储器进行攻击防御的刷新命令,并将该进行攻击防御的刷新命令存储至刷新命令队列中,即使此时未到固定的刷新时间点或者由于存储器总线繁忙导致固定的刷新操作被延后,也会主动生成一个刷新命令并存储至该动态存储器对应的刷新命令队列中,并强制发出该刷新命令队列中的所有刷新命令,使得动态存储器可以立即依次基于刷新命令队列中的所有刷新命令进行刷新操作,以在发生行锤攻击时进行及时防御,通过刷新操作及时调整各行电容,从而提升了动态存储器对于行锤攻击的防御能力。

Description

针对动态存储器的行锤攻击防御方法和装置
技术领域
本发明涉及攻击检测和防御技术领域,尤其涉及一种针对动态存储器的行锤攻击防御方法和装置。
背景技术
随着芯片集成度的迅速提升,动态存储器的尺寸愈来愈小,随之带来的是动态存储器对于行锤(row hammer)攻击的防御能力逐渐下降,导致数据丢失。其中,由于动态存储器的尺寸变小,相邻行之间的互相干扰变得更明显,当频繁的打开(activate)和关闭(precharge)动态存储器的某一行数据时,会造成相邻行的电容变化,从而导致相邻行的数据错误,即row hammer攻击。
目前动态存储器防御row hammer攻击的主要手段是当监测到某一行可能存在rowhammer攻击时,在控制器发刷新操作时会额外刷新受row hammer攻击的行的相邻两行或者相邻四行来防止相邻行数据出错。其中,动态存储器控制器发刷新操作的思路是周期性的发刷新命令,或延后固定刷新操作并在某个时间将延后的固定刷新操作一齐发出。然而,动态存储器的本征防御row hammer攻击能力和制程强相关,随着制程的不断缩进,其本征防御row hammer攻击能力却是不断下降的,原先周期性的刷新策略无法充分发挥动态存储器内部刷新性能以克制row hammer攻击,原因在于当在短时间内针对某一行或若干行发生row hammer攻击却没有到达固定刷新时间点或者固定刷新操作被延后时,会由于刷新不及时导致无法实时防御row hammer攻击、造成数据丢失。
发明内容
本发明提供一种针对动态存储器的行锤攻击防御方法和装置,用以解决现有技术中row hammer攻击防御能力不足的缺陷。
本发明提供一种针对动态存储器的行锤攻击防御方法,包括:
在浮动时间窗口内对针对动态存储器内若干行的行锤攻击进行实时检测;其中,所述浮动时间窗口为随着时间移动的固定长度的时间窗口;
若检测到针对任一行或多个行的行锤攻击,则生成针对所述动态存储器进行攻击防御的刷新命令,并将所述进行攻击防御的刷新命令存储至刷新命令队列中;
强制发出所述刷新命令队列中的所有刷新命令,使得所述动态存储器依次基于所述刷新命令队列中的刷新命令进行刷新操作。
根据本发明提供的一种针对动态存储器的行锤攻击防御方法,所述强制发出所述刷新命令队列中的所有刷新命令,使得所述动态存储器依次基于所述刷新命令队列中的刷新命令进行刷新操作,具体包括:
提高所述刷新命令队列中的所有刷新命令对应的执行优先级,使得所述刷新命令队列中的所有刷新命令的执行优先级高于所述动态存储器对应的其他操作的执行优先级,以供所述动态存储器依次基于所述刷新命令队列中的刷新命令进行刷新操作。
根据本发明提供的一种针对动态存储器的行锤攻击防御方法,所述在浮动时间窗口内对针对动态存储器内若干行的行锤攻击进行实时检测,具体包括:
基于页表中记载的所述动态存储器内各行的打开操作和关闭操作的执行时间,确定所述动态存储器内各行在当前浮动时间窗口内的打开关闭次数;
若所述动态存储器内任一行或多个行在当前浮动时间窗口内的打开关闭次数大于等于预设阈值,则确定检测到针对所述任一行或所述多个行的行锤攻击。
根据本发明提供的一种针对动态存储器的行锤攻击防御方法,所述预设阈值是基于所述动态存储器的性能和/或所述动态存储器的实际应用场景确定的;其中,当所述动态存储器的性能越强、对于行锤攻击的防御能力越强,则所述预设阈值越高;当所述动态存储器的实际应用场景对数据安全性要求越高,则所述预设阈值越低。
根据本发明提供的一种针对动态存储器的行锤攻击防御方法,所述在浮动时间窗口内对针对动态存储器内若干行的行锤攻击进行实时检测,之后还包括:
当未检测到针对任一行或多个行的行锤攻击,且当前到达预设的固定刷新时间点时,生成针对所述动态存储器进行固定刷新的刷新命令,并将所述进行固定刷新的刷新命令存储至刷新命令队列中。
根据本发明提供的一种针对动态存储器的行锤攻击防御方法,所述在浮动时间窗口内对针对动态存储器内若干行的行锤攻击进行实时检测,之后还包括:
当未检测到针对任一行或多个行的行锤攻击时,获取总线的忙闲状态以及所述刷新命令队列的存储状态;
若所述总线的忙闲状态指示所述总线为空闲状态,或者所述刷新命令队列的存储状态指示所述刷新命令队列已存满,则发出所述刷新命令队列中的所有刷新命令,使得所述动态存储器依次基于所述刷新命令队列中的刷新命令进行刷新操作。
根据本发明提供的一种针对动态存储器的行锤攻击防御方法,所述生成针对所述动态存储器进行攻击防御的刷新命令,并将所述进行攻击防御的刷新命令存储至刷新命令队列中,之后还包括:
将定时器的数据复位;其中,所述定时器用于指示是否到达预设的固定刷新时间点。
本发明还提供一种针对动态存储器的行锤攻击防御装置,包括:
行锤攻击检测单元,用于在浮动时间窗口内对针对动态存储器内若干行的行锤攻击进行实时检测;其中,所述浮动时间窗为随着时间移动的固定长度的时间窗口;
刷新命令生成单元,用于若检测到针对任一行或多个行的行锤攻击,则生成针对所述动态存储器进行攻击防御的刷新命令,并将所述进行攻击防御的刷新命令存储至刷新命令队列中;
强制刷新单元,用于强制发出所述刷新命令队列中的所有刷新命令,使得所述动态存储器依次基于所述刷新命令队列中的刷新命令进行刷新操作。
根据本发明提供的一种针对动态存储器的行锤攻击防御装置,所述强制发出所述刷新命令队列中的所有刷新命令,使得所述动态存储器依次基于所述刷新命令队列中的刷新命令进行刷新操作,具体包括:
提高所述刷新命令队列中的所有刷新命令对应的执行优先级,使得所述刷新命令队列中的所有刷新命令的执行优先级高于所述动态存储器对应的其他操作的执行优先级,以供所述动态存储器依次基于所述刷新命令队列中的刷新命令进行刷新操作。
根据本发明提供的一种针对动态存储器的行锤攻击防御装置,所述在浮动时间窗口内对针对动态存储器内若干行的行锤攻击进行实时检测,具体包括:
基于页表中记载的所述动态存储器内各行的打开操作和关闭操作的执行时间,确定所述动态存储器内各行在当前浮动时间窗口内的打开关闭次数;
若所述动态存储器内任一行或多个行在当前浮动时间窗口内的打开关闭次数大于等于预设阈值,则确定检测到针对所述任一行或所述多个行的行锤攻击。
本发明提供的针对动态存储器的行锤攻击防御方法和装置,通过在浮动时间窗口内实时检测row hammer攻击,在检测到针对任一行或多个行的行锤攻击时,主动生成针对该动态存储器进行攻击防御的刷新命令,并将该进行攻击防御的刷新命令存储至刷新命令队列中,即使此时未到固定的刷新时间点或者由于存储器总线繁忙导致固定的刷新操作被延后,也会主动生成一个刷新命令并存储至该动态存储器对应的刷新命令队列中,并强制发出该刷新命令队列中的所有刷新命令,使得动态存储器可以立即依次基于刷新命令队列中的所有刷新命令进行刷新操作,以在发生row hammer攻击时进行及时防御,通过刷新操作及时调整各行电容,从而提升了动态存储器对于row hammer攻击的防御能力、保障数据不丢失。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的针对动态存储器的行锤攻击防御方法的流程示意图之一;
图2是本发明提供的针对动态存储器的行锤攻击防御方法的流程示意图之二;
图3是本发明提供的刷新命令发出的示意图;
图4是本发明提供的针对动态存储器的行锤攻击防御装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明提供的针对动态存储器的行锤攻击防御方法的流程示意图,如图1所示,该方法包括:
步骤110,在浮动时间窗口内对针对动态存储器内若干行的行锤攻击进行实时检测;其中,所述浮动时间窗口为随着时间移动的固定长度的时间窗口;
步骤120,若检测到针对任一行或多个行的行锤攻击,则生成针对所述动态存储器进行攻击防御的刷新命令,并将所述进行攻击防御刷新命令存储至刷新命令队列中;
步骤130,强制发出所述刷新命令队列中的所有刷新命令,使得所述动态存储器依次基于所述刷新命令队列中的刷新命令进行刷新操作。
具体地,为了抵御row hammer攻击,可以对动态存储器内的各个行进行实时地行锤攻击检测,以实时判断当前是否存在某一行或某几行的row hammer攻击。其中,为了能够及时探测到针对某一行或几行的row hammer攻击,可以利用能够随着时间移动的固定长度的时间窗口,即浮动时间窗口进行实时检测。此处,考虑到行锤攻击可能出现在任意时间段,但是在任意时间段均是以短时间多次读写为特征,因此可以设置随着时间移动的浮动时间窗口,实时在该浮动时间窗口内检测是否发生row hammer攻击,以保证攻击检测的实时性,同时还可以去除当前浮动时间窗口之前的历史信息,避免一直累积读写次数造成攻击误检测。
例如,浮动时间窗口随着时间移动时,可以将该窗口的末端与当前时间对齐,然后针对当前浮动时间窗口对应的时间范围进行攻击检测。而浮动时间窗口的长度可以根据动态存储器的性能以及当前应用场景对于row hammer攻击的敏感程度二者之一或两者综合确定,动态存储器的性能对于row hammer攻击的防御能力越强、当前应用场景对于rowhammer攻击的敏感程度越低(即该应用场景对于数据丢失的承受能力越强),则浮动时间窗口的长度可以越长。
若检测到针对任一行或多个行的行锤攻击,则主动生成针对该动态存储器进行攻击防御的刷新命令,并将该进行攻击防御的刷新命令存储至刷新命令队列中。此处,由于检测到了实时的row hammer攻击,因此即使此时未到固定的刷新时间点或者由于存储器总线繁忙导致固定的刷新操作被延后,也会主动生成一个刷新命令并存储至该动态存储器对应的刷新命令队列中,并强制发出该刷新命令队列中的所有刷新命令,使得动态存储器可以立即依次基于刷新命令队列中的所有刷新命令进行刷新操作,以在发生row hammer攻击时进行及时防御,通过刷新操作及时调整各行电容,从而保障数据不丢失。
需要说明的是,该动态存储器对应的刷新命令队列中包含有动态存储器控制器按固定刷新周期生成的固定的刷新命令以及当检测到row hammer攻击时主动生成的用于防御row hammer攻击的刷新命令。其中,无论是按固定刷新周期生成的固定的刷新命令还是用于防御row hammer攻击的刷新命令本质上都是用于刷新动态存储器的刷新命令,区别在于两者的生成时机不同,前者是按固定刷新周期生成的,后者是在检测到row hammer攻击时生成的。
本发明实施例提供的方法,通过在浮动时间窗口内实时检测row hammer攻击,在检测到针对任一行或多个行的行锤攻击时,主动生成针对该动态存储器进行攻击防御的刷新命令,并将该进行攻击防御的刷新命令存储至刷新命令队列中,即使此时未到固定的刷新时间点或者由于存储器总线繁忙导致固定的刷新操作被延后,也会主动生成一个刷新命令并存储至该动态存储器对应的刷新命令队列中,并强制发出该刷新命令队列中的所有刷新命令,使得动态存储器可以立即依次基于刷新命令队列中的所有刷新命令进行刷新操作,以在发生row hammer攻击时进行及时防御,通过刷新操作及时调整各行电容,从而提升了动态存储器对于row hammer攻击的防御能力、保障数据不丢失。
基于上述实施例,步骤130具体包括:
提高所述刷新命令队列中的所有刷新命令对应的执行优先级,使得所述刷新命令队列中的所有刷新命令的执行优先级高于所述动态存储器对应的其他操作的执行优先级,以供所述动态存储器依次基于所述刷新命令队列中的刷新命令进行刷新操作。
具体地,动态存储器对应有多种操作队列,用于实现对该动态存储器的诸类操作,例如用于负责存储器刷新的刷新命令队列、对存储器各行进行读写的读写命令队列等。为了在检测到row hammer攻击时进行及时防御,通过刷新操作及时调整各行电容,可以通过提高动态存储器的刷新命令队列中所有刷新命令对应的执行优先级,将刷新命令队列中所有刷新命令的执行优先级提升至最高,使其执行优先级高于动态存储器对应的所有其他操作的执行优先级,从而可以强制使得动态存储器的控制器立即发出并执行刷新命令队列中的所有刷新命令。
基于上述任一实施例,步骤110具体包括:
基于页表中记载的所述动态存储器内各行的打开操作和关闭操作的执行时间,确定所述动态存储器内各行在当前浮动时间窗口内的打开关闭次数;
若所述动态存储器内任一行或多个行在当前浮动时间窗口内的打开关闭次数大于等于预设阈值,则确定检测到针对所述任一行或所述多个行的行锤攻击。
具体地,如图2所示,动态存储器的页表中记录了针对该动态存储器内各行的打开操作和关闭操作以及对应操作的执行时间。利用监控计数器,基于页表中记载的动态存储器内各行的打开操作和关闭操作的执行时间,累计动态存储器内各行在当前浮动时间窗口内的打开关闭次数。其中,累计任一行在当前浮动时间窗口内的打开关闭次数时,可以将当前浮动时间窗口对应的时间范围内针对该行的打开操作和关闭操作的次数进行累加。
若监控计数器计算的动态存储器内任一行或多个行在当前浮动时间窗口内的打开关闭次数大于等于可配置的预设阈值,则可以确定检测到针对该行或该多个行的行锤攻击。若确定检测到针对某一行或多行的行锤攻击,则可以生成一个刷新命令并存储至刷新命令队列中并提高刷新命令队列中所有刷新命令的执行优先级。随后,动态存储器的控制器即可立即发出刷新命令队列中的刷新命令并依次执行相应的刷新命令,实现动态存储器的刷新。
基于上述任一实施例,所述预设阈值是基于所述动态存储器的性能和/或所述动态存储器的实际应用场景确定的;其中,当所述动态存储器的性能越强、对于行锤攻击的防御能力越强,则所述预设阈值越高;当所述动态存储器的实际应用场景对数据安全性要求越高,则所述预设阈值越低。
具体地,上述可配置的预设阈值可以根据动态存储器的性能和/或动态存储器的实际应用场景确定。其中,当动态存储器的性能越强、对于行锤攻击的防御能力越强(即动态存储器中各行的电容可以经受相邻行更多次打开关闭操作的干扰而不致数据丢失),则预设阈值可以设置得越高。当动态存储器的实际应用场景对数据安全性要求越高,对于数据丢失的容忍程度越低,则预设阈值可以设置得越低。此外,也可以综合考虑上述动态存储器的性能和/或动态存储器的实际应用场景等两个因素,选取一个折中值作为预设阈值。
基于上述任一实施例,所述在浮动时间窗口内对针对动态存储器内若干行的行锤攻击进行实时检测,之后还包括:
当未检测到针对任一行或多个行的行锤攻击,且当前到达预设的固定刷新时间点时,生成针对所述动态存储器进行固定刷新的刷新命令,并将所述进行固定刷新的刷新命令存储至刷新命令队列中。
具体地,在及时防御row hammer攻击同时,为了提升存储器总线的效率,不至于由于频繁的刷新操作影响其他任务的执行,可以在未检测到针对任一行或多个行的行锤攻击,且当前到达预设的固定刷新时间点(按照固定刷新周期计算的固定刷新时间点)时,生成针对该动态存储器进行固定刷新的刷新命令,并将上述进行固定刷新的刷新命令存储至刷新命令队列中并进行延后处理,即,在未检测到row hammer攻击时,动态存储器的控制器将暂时不执行刷新命令队列中的刷新命令,以让出总线处理其他任务,从而提升存储器总线的效率。
基于上述任一实施例,所述在浮动时间窗口内对针对动态存储器内若干行的行锤攻击进行实时检测,之后还包括:
当未检测到针对任一行或多个行的行锤攻击时,获取总线的忙闲状态以及所述刷新命令队列的存储状态;
若所述总线的忙闲状态指示所述总线为空闲状态,或者所述刷新命令队列的存储状态指示所述刷新命令队列已存满,则发出所述刷新命令队列中的所有刷新命令,使得所述动态存储器依次基于所述刷新命令队列中的刷新命令进行刷新操作。
具体地,当未检测到针对任一行或多个行的行锤攻击时,还可以获取总线的忙闲状态以及刷新命令队列的存储状态。一方面,在未检测到row hammer攻击时,如上述实施例中提供的方式,为了提升存储器总线的效率,会将在固定刷新时间点生成的刷新命令放置于刷新命令队列中且对其进行延迟处理;另一方面,为了同时保障动态存储器中的数据安全(由于动态存储器本身特性,电容电量会随着时间逐渐流失,因此需要及时进行刷新操作以维持电容电量,保证数据不丢失),可以根据总线的忙闲状态以及刷新命令队列的存储状态确定刷新命令队列中刷新命令的发出时机。
此处,若总线的忙闲状态指示存储器总线为空闲状态,或者刷新命令队列的存储状态指示该刷新命令队列已存满,则可以发出该刷新命令队列中的所有刷新命令,使得动态存储器可以即时基于刷新命令队列中的各个刷新命令进行刷新操作,在提升总线效率的同时兼顾动态存储器中的数据安全。如图3所示,在一个固定刷新周期内还未到达下一个固定刷新时间点Ti时,若检测到row hammer攻击,则生成一个用于抵御row hammer攻击的刷新命令(如图3中虚线箭头所示)并发出刷新命令队列中的所有刷新命令(包含用于抵御rowhammer攻击的刷新命令(即虚线箭头)和固定刷新的刷新命令(即实线箭头)),如图3左侧虚线框中所示。若一直未检测到row hammer攻击且到达了固定刷新时间点时,可以先将固定刷新的刷新命令依次存储至刷新命令队列中,直至总线空闲或刷新命令队列已满,则一次将刷新命令队列中的全部刷新命令发出,如图3右侧虚线框中所示。
基于上述任一实施例,所述生成针对所述动态存储器进行攻击防御的刷新命令,并将所述进行攻击防御的刷新命令存储至刷新命令队列中,之后还包括:
将定时器的数据复位;其中,所述定时器用于指示是否到达预设的固定刷新时间点。
具体地,当检测到row hammer攻击并生成针对动态存储器进行攻击防御的刷新命令,将进行攻击防御的刷新命令存储至刷新命令队列中之后,可以复位用于即时的定时器。其中,定时器用于指示是否到达预设的固定刷新时间点,以不影响动态存储器原本的刷新机制。
下面对本发明提供的针对动态存储器的行锤攻击防御装置进行描述,下文描述的针对动态存储器的行锤攻击防御装置与上文描述的针对动态存储器的行锤攻击防御方法可相互对应参照。
基于上述任一实施例,图4是本发明提供的针对动态存储器的行锤攻击防御装置的结构示意图,如图4所示,该装置包括:行锤攻击检测单元410、刷新命令生成单元420和强制刷新单元430。
其中,行锤攻击检测单元410用于在浮动时间窗口内对针对动态存储器内若干行的行锤攻击进行实时检测;其中,所述浮动时间窗为随着时间移动的固定长度的时间窗口;
刷新命令生成单元420用于若检测到针对任一行或多个行的行锤攻击,则生成针对所述动态存储器进行攻击防御的刷新命令,并将所述进行攻击防御的刷新命令存储至刷新命令队列中;
强制刷新单元430用于强制发出所述刷新命令队列中的所有刷新命令,使得所述动态存储器依次基于所述刷新命令队列中的刷新命令进行刷新操作。
本发明实施例提供的装置,通过在浮动时间窗口内实时检测row hammer攻击,在检测到针对任一行或多个行的行锤攻击时,主动生成针对该动态存储器进行攻击防御的刷新命令,并将该进行攻击防御的刷新命令存储至刷新命令队列中,即使此时未到固定的刷新时间点或者由于存储器总线繁忙导致固定的刷新操作被延后,也会主动生成一个刷新命令并存储至该动态存储器对应的刷新命令队列中,并强制发出该刷新命令队列中的所有刷新命令,使得动态存储器可以立即依次基于刷新命令队列中的所有刷新命令进行刷新操作,以在发生row hammer攻击时进行及时防御,通过刷新操作及时调整各行电容,从而提升了动态存储器对于row hammer攻击的防御能力、保障数据不丢失。
基于上述任一实施例,所述强制发出所述刷新命令队列中的所有刷新命令,使得所述动态存储器依次基于所述刷新命令队列中的刷新命令进行刷新操作,具体包括:
提高所述刷新命令队列中的所有刷新命令对应的执行优先级,使得所述刷新命令队列中的所有刷新命令的执行优先级高于所述动态存储器对应的其他操作的执行优先级,以供所述动态存储器依次基于所述刷新命令队列中的刷新命令进行刷新操作。
基于上述任一实施例,所述在浮动时间窗口内对针对动态存储器内若干行的行锤攻击进行实时检测,具体包括:
基于页表中记载的所述动态存储器内各行的打开操作和关闭操作的执行时间,确定所述动态存储器内各行在当前浮动时间窗口内的打开关闭次数;
若所述动态存储器内任一行或多个行在当前浮动时间窗口内的打开关闭次数大于等于预设阈值,则确定检测到针对所述任一行或所述多个行的行锤攻击。
基于上述任一实施例,所述预设阈值是基于所述动态存储器的性能和/或所述动态存储器的实际应用场景确定的;其中,当所述动态存储器的性能越强、对于行锤攻击的防御能力越强,则所述预设阈值越高;当所述动态存储器的实际应用场景对数据安全性要求越高,则所述预设阈值越低。
基于上述任一实施例,所述在浮动时间窗口内对针对动态存储器内若干行的行锤攻击进行实时检测之后,刷新命令生成单元420还用于:
当未检测到针对任一行或多个行的行锤攻击,且当前到达预设的固定刷新时间点时,生成针对所述动态存储器进行固定刷新的刷新命令,并将所述进行固定刷新的刷新命令存储至刷新命令队列中。
基于上述任一实施例,所述在浮动时间窗口内对针对动态存储器内若干行的行锤攻击进行实时检测之后,强制刷新单元430还用于:
当未检测到针对任一行或多个行的行锤攻击时,获取总线的忙闲状态以及所述刷新命令队列的存储状态;
若所述总线的忙闲状态指示所述总线为空闲状态,或者所述刷新命令队列的存储状态指示所述刷新命令队列已存满,则发出所述刷新命令队列中的所有刷新命令,使得所述动态存储器依次基于所述刷新命令队列中的刷新命令进行刷新操作。
基于上述任一实施例,所述生成针对所述动态存储器进行攻击防御的刷新命令,并将所述进行攻击防御的刷新命令存储至刷新命令队列中之后,刷新命令生成单元420还用于:
将定时器的数据复位;其中,所述定时器用于指示是否到达预设的固定刷新时间点。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (7)

1.一种针对动态存储器的行锤攻击防御方法,其特征在于,包括:
在浮动时间窗口内对针对动态存储器内若干行的行锤攻击进行实时检测;其中,所述浮动时间窗口为随着时间移动的固定长度的时间窗口;
若检测到针对任一行或多个行的行锤攻击,则生成针对所述动态存储器进行攻击防御的刷新命令,并将所述进行攻击防御的刷新命令存储至刷新命令队列中;
强制发出所述刷新命令队列中的所有刷新命令,使得所述动态存储器依次基于所述刷新命令队列中的刷新命令进行刷新操作;所述刷新命令队列中包含有动态存储器控制器按固定刷新周期生成的固定的刷新命令以及当检测到行锤攻击时主动生成的用于防御行锤攻击的刷新命令;
当未检测到针对任一行或多个行的行锤攻击,且当前到达预设的固定刷新时间点时,生成针对所述动态存储器进行固定刷新的刷新命令,并将所述进行固定刷新的刷新命令存储至刷新命令队列中;
所述强制发出所述刷新命令队列中的所有刷新命令,使得所述动态存储器依次基于所述刷新命令队列中的刷新命令进行刷新操作,具体包括:
提高所述刷新命令队列中的所有刷新命令对应的执行优先级,使得所述刷新命令队列中的所有刷新命令的执行优先级高于所述动态存储器对应的其他操作的执行优先级,以供所述动态存储器依次基于所述刷新命令队列中的刷新命令进行刷新操作。
2.根据权利要求1所述的针对动态存储器的行锤攻击防御方法,其特征在于,所述在浮动时间窗口内对针对动态存储器内若干行的行锤攻击进行实时检测,具体包括:
基于页表中记载的所述动态存储器内各行的打开操作和关闭操作的执行时间,确定所述动态存储器内各行在当前浮动时间窗口内的打开关闭次数;
若所述动态存储器内任一行或多个行在当前浮动时间窗口内的打开关闭次数大于等于预设阈值,则确定检测到针对所述任一行或所述多个行的行锤攻击。
3.根据权利要求2所述的针对动态存储器的行锤攻击防御方法,其特征在于,所述预设阈值是基于所述动态存储器的性能和/或所述动态存储器的实际应用场景确定的;其中,当所述动态存储器的性能越强、对于行锤攻击的防御能力越强,则所述预设阈值越高;当所述动态存储器的实际应用场景对数据安全性要求越高,则所述预设阈值越低。
4.根据权利要求1所述的针对动态存储器的行锤攻击防御方法,其特征在于,所述在浮动时间窗口内对针对动态存储器内若干行的行锤攻击进行实时检测,之后还包括:
当未检测到针对任一行或多个行的行锤攻击时,获取总线的忙闲状态以及所述刷新命令队列的存储状态;
若所述总线的忙闲状态指示所述总线为空闲状态,或者所述刷新命令队列的存储状态指示所述刷新命令队列已存满,则发出所述刷新命令队列中的所有刷新命令,使得所述动态存储器依次基于所述刷新命令队列中的刷新命令进行刷新操作。
5.根据权利要求1所述的针对动态存储器的行锤攻击防御方法,其特征在于,所述生成针对所述动态存储器进行攻击防御的刷新命令,并将所述进行攻击防御的刷新命令存储至刷新命令队列中,之后还包括:
将定时器的数据复位;其中,所述定时器用于指示是否到达预设的固定刷新时间点。
6.一种针对动态存储器的行锤攻击防御装置,其特征在于,包括:
行锤攻击检测单元,用于在浮动时间窗口内对针对动态存储器内若干行的行锤攻击进行实时检测;其中,所述浮动时间窗为随着时间移动的固定长度的时间窗口;
刷新命令生成单元,用于若检测到针对任一行或多个行的行锤攻击,则生成针对所述动态存储器进行攻击防御的刷新命令,并将所述进行攻击防御的刷新命令存储至刷新命令队列中;
强制刷新单元,用于强制发出所述刷新命令队列中的所有刷新命令,使得所述动态存储器依次基于所述刷新命令队列中的刷新命令进行刷新操作;所述刷新命令队列中包含有动态存储器控制器按固定刷新周期生成的固定的刷新命令以及当检测到行锤攻击时主动生成的用于防御行锤攻击的刷新命令;
当未检测到针对任一行或多个行的行锤攻击,且当前到达预设的固定刷新时间点时,生成针对所述动态存储器进行固定刷新的刷新命令,并将所述进行固定刷新的刷新命令存储至刷新命令队列中;
所述强制发出所述刷新命令队列中的所有刷新命令,使得所述动态存储器依次基于所述刷新命令队列中的刷新命令进行刷新操作,具体包括:
提高所述刷新命令队列中的所有刷新命令对应的执行优先级,使得所述刷新命令队列中的所有刷新命令的执行优先级高于所述动态存储器对应的其他操作的执行优先级,以供所述动态存储器依次基于所述刷新命令队列中的刷新命令进行刷新操作。
7.根据权利要求6所述的针对动态存储器的行锤攻击防御装置,其特征在于,所述在浮动时间窗口内对针对动态存储器内若干行的行锤攻击进行实时检测,具体包括:
基于页表中记载的所述动态存储器内各行的打开操作和关闭操作的执行时间,确定所述动态存储器内各行在当前浮动时间窗口内的打开关闭次数;
若所述动态存储器内任一行或多个行在当前浮动时间窗口内的打开关闭次数大于等于预设阈值,则确定检测到针对所述任一行或所述多个行的行锤攻击。
CN202211270418.5A 2022-10-18 2022-10-18 针对动态存储器的行锤攻击防御方法和装置 Active CN115357952B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211270418.5A CN115357952B (zh) 2022-10-18 2022-10-18 针对动态存储器的行锤攻击防御方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211270418.5A CN115357952B (zh) 2022-10-18 2022-10-18 针对动态存储器的行锤攻击防御方法和装置

Publications (2)

Publication Number Publication Date
CN115357952A CN115357952A (zh) 2022-11-18
CN115357952B true CN115357952B (zh) 2023-02-03

Family

ID=84008292

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211270418.5A Active CN115357952B (zh) 2022-10-18 2022-10-18 针对动态存储器的行锤攻击防御方法和装置

Country Status (1)

Country Link
CN (1) CN115357952B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102034526A (zh) * 2010-12-17 2011-04-27 天津曙光计算机产业有限公司 一种用fpga实现的sdram刷新的新方法
CN104737234A (zh) * 2012-11-30 2015-06-24 英特尔公司 基于所存储的行锤击阈值的值的行锤击监视
CN111755047A (zh) * 2019-03-29 2020-10-09 英特尔公司 用于行锤击缓解的主机协助的刷新命令控制
CN114974348A (zh) * 2021-02-25 2022-08-30 三星电子株式会社 存储装置及其操作方法
CN115083467A (zh) * 2021-03-15 2022-09-20 长鑫存储技术有限公司 刷新控制电路及存储器

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8539146B2 (en) * 2011-11-28 2013-09-17 International Business Machines Corporation Apparatus for scheduling memory refresh operations including power states
US11152050B2 (en) * 2018-06-19 2021-10-19 Micron Technology, Inc. Apparatuses and methods for multiple row hammer refresh address sequences
US10978132B2 (en) * 2019-06-05 2021-04-13 Micron Technology, Inc. Apparatuses and methods for staggered timing of skipped refresh operations
US11302377B2 (en) * 2019-10-16 2022-04-12 Micron Technology, Inc. Apparatuses and methods for dynamic targeted refresh steals
US20220113868A1 (en) * 2020-10-09 2022-04-14 Microsoft Technology Licensing, Llc Mitigating row-hammer attacks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102034526A (zh) * 2010-12-17 2011-04-27 天津曙光计算机产业有限公司 一种用fpga实现的sdram刷新的新方法
CN104737234A (zh) * 2012-11-30 2015-06-24 英特尔公司 基于所存储的行锤击阈值的值的行锤击监视
CN111755047A (zh) * 2019-03-29 2020-10-09 英特尔公司 用于行锤击缓解的主机协助的刷新命令控制
CN114974348A (zh) * 2021-02-25 2022-08-30 三星电子株式会社 存储装置及其操作方法
CN115083467A (zh) * 2021-03-15 2022-09-20 长鑫存储技术有限公司 刷新控制电路及存储器

Also Published As

Publication number Publication date
CN115357952A (zh) 2022-11-18

Similar Documents

Publication Publication Date Title
CN110741436B (zh) 用于具有集成处理器的dram的行锤效应校正逻辑模块
TWI550606B (zh) 再新率調整技術
EP2724240B1 (en) A memory controller and method of operation of such a memory controller
CN108885892B (zh) 半导体存储装置
US10453503B2 (en) Implementing DRAM row hammer avoidance
US20170371807A1 (en) Cache data determining method and apparatus
WO2017070050A1 (en) Dram adjacent row disturb mitigation
CN109032517B (zh) 一种数据落盘的方法、装置和计算机可读存储介质
CN111723058B (zh) 一种预读数据缓存方法、装置、设备及存储介质
CN115357952B (zh) 针对动态存储器的行锤攻击防御方法和装置
CN102231137A (zh) 一种数据存储系统及方法
CN102779098B (zh) 混合缓存的协同式自适应预取方法、装置和系统
US11226898B2 (en) Data caching method and apparatus
US9229885B2 (en) Adaptive scheduling queue control for memory controllers based upon page hit distance determinations
US20230161496A1 (en) Memory, memory system and operation method of memory system
CN110500232B (zh) 风力发电机组的控制方法及设备
JP6074086B1 (ja) グループ分けによる快速な起動、シャットダウン方法
CN110209346B (zh) 数据写入控制装置及方法
US11756593B2 (en) Memory control circuit, information processing system, and memory control method
JP5741544B2 (ja) キャッシュ制御装置、ディスクアレイ装置、アレイコントローラおよびキャッシュ制御方法
JP6924524B2 (ja) 半導体記憶装置
CN114489474B (zh) 一种解决GlusterFS IO阻塞造成文件系统挂起的方法及系统
Woo et al. Mitigating Row-hammering by Adapting the Probability of Additional Row Refresh
CN116545927B (zh) 一种窄带宽网络下物联网设备的流量控制方法
CN114610653B (zh) 基于gpu内存的地址请求方法

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