本发明涉及存储器领域,尤其涉及行锤击防御方法、装置及内存控制器。
背景技术:
1、动态随机存储器(dram)设备已被广泛用作现代计算机系统中的主存储器。随着几十年技术发展,存储器单元的特征尺寸逐步减小。随着单元尺寸减小和存储单元密度的增加,dram更容易受到寄生效应影响导致数据错误。dram特征尺寸的减小会导致称为行锤击的硬件漏洞,它广泛存在于几种主流的dram存储设备中,造成严重的安全隐患。行锤漏洞是以足够高的速率打开和关闭一个dram的行会导致物理上相邻的行出现位翻转的现象。并且有足够的证据表明,随着工艺进步,dram中存储单元的密度提升会导致行锤漏洞更容易被触发。
2、目前,行锤击防御措施有在dram芯片内部进行防御,也有在存储器控制器内进行防御。主要的方法有:行激活计数、行激活触发概率刷新、数据完整性检测、制造工艺改进。但行激活计数随着行锤阈值的减小,需要越来越多的开销。行激活触发概率刷新方式本质上存在安全缺陷。数据完整性检测方式要么无法检测和纠正行锤击引起的位翻转,要么仅具有检测能力。制造工艺改进则大多不能很好的与现有商品dram兼容。
3、但是,随着dram特征尺寸的减小,触发行锤击的阈值也变得更小,较小的激活次数就能引起行锤击事件。因此在一个刷新窗口内,更多的行可能是攻击者,这意味着需要大量的资源用于避免行锤击。
技术实现思路
1、因此,本发明旨在如何以更少的资源避免行锤击,减少行锤击防御所需要的资源开销,在实现行锤击防御的同时,降低资源占用率。
2、主要通过以下技术方案实现上述发明目的:
3、第一方面,行锤击防御方法,应用于内存控制器,包括:
4、接收所述内存控制器发送的行激活命令,所述行激活命令包含对应的行地址,对所述行地址进行行激活计数,将行激活次数超过第一阈值的行地址作为目标行地址;
5、对所述目标行地址进行行锤击检测,判断所述目标行地址是否存在行锤击攻击;
6、若是,则反馈异常信号至所述内存控制器,以便所述内存控制器基于所述异常信号降低所述目标行地址对应的行激活命令的发送密度。
7、第二方面,行锤击防御装置,应用于内存控制器,包括:
8、正常行激活过滤模块,用于接收所述内存控制器发送的行激活命令,所述行激活命令包含对应的行地址,对所述行地址进行行激活计数,将行激活次数超过第一阈值的行地址作为目标行地址,并将所述目标行地址和对应的行激活次数发送至行锤击检测模块;
9、行锤击检测模块,用于对所述目标行地址进行行锤击检测,判断所述目标行地址是否存在行锤击攻击;
10、行锤击限流模块,用于当判断所述目标行地址存在行锤击攻击时,则反馈异常信号至所述内存控制器,以便所述内存控制器基于所述异常信号降低所述目标行地址对应的行激活命令的发送密度。
11、第三方面,内存控制器,包括如上所述的行锤击防御装置。
12、相较于现有技术的有益效果:
13、本发明应用于内存控制器,通过对内存控制器发送的行激活命令进行行激活计数,从数量庞大的行激活命令中过滤掉正常的行激活命令,只对行激活次数超过第一阈值的目标行地址进行行锤击检测,若行锤击检测结果为存在行锤击攻击,则反馈异常信号至内存控制器,以降低所述目标行地址对应的行激活命令的发送密度,从而实现行锤击防御的目的,避免行锤击现象,由于使用了基于概率的计数器对行激活命令进行行激活计数,不需要为每一行地址分配计数器,从而节省了大量资源,在实现行锤击防御的同时,降低了资源占用率,实现以更少的资源占用的行激活计数方式实现行锤击防御的目的,解决了现有技术中因dram特征尺寸的减小而导致需要大量的资源用于避免行锤击的技术问题。
1.行锤击防御方法,其特征在于,应用于内存控制器,包括:
2.如权利要求1所述的行锤击防御方法,其特征在于,采用计数式布隆过滤器对所述行地址进行行激活计数。
3.如权利要求2所述的行锤击防御方法,其特征在于,所述计数式布隆过滤器包括第一计数式布隆过滤器、第二计数式布隆过滤器、第一哈希函数、第二哈希函数和第三哈希函数;对所述行地址进行行激活计数,将行激活次数超过第一阈值的行地址作为目标行地址,包括:
4.如权利要求3所述的行锤击防御方法,其特征在于,对所述目标行地址进行行锤击检测,判断所述目标行地址是否存在行锤击攻击,包括:
5.如权利要求4所述的行锤击防御方法,其特征在于,若判断所述目标行地址存在行锤击攻击,则反馈异常信号至所述内存控制器,包括:
6.行锤击防御装置,其特征在于,应用于内存控制器,包括:
7.内存控制器,其特征在于,包括执行如权利要求1~5任一项所述行锤击防御方法的控制器。
8.一种电子设备,所述设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1~5任一项所述的行锤击防御方法的步骤。
9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1~5任一项所述的行锤击防御方法的步骤。