频繁读取干扰攻击者的标识和高速缓存的制作方法

文档序号:30387319发布日期:2022-06-11 11:28阅读:102来源:国知局
频繁读取干扰攻击者的标识和高速缓存的制作方法

1.本公开总体上涉及存储器子系统中的读取干扰错误的减轻,并且更具体地涉及标识和高速缓存频繁读取干扰攻击者。


背景技术:

2.存储器子系统可以包含存储数据的一或多个存储器装置。存储器装置可以是例如非易失性存储器装置和易失性存储器装置。通常,主机系统可以利用存储器子系统将数据存储在存储器装置处并从存储器装置中检索数据。


技术实现要素:

3.本公开的一个方面涉及一种方法,其包括:接收针对攻击者位置的读取操作;对所述攻击者位置的受害者位置执行完整性扫描,以确定所述受害者位置的错误值;以及响应于确定所述受害者位置的所述错误值满足第一错误值阈值,将来自所述攻击者位置的数据复制到高速缓存,其中所述高速缓存是与所述攻击者位置不同类型的存储器。
4.本公开的另一方面涉及一种非暂时性计算机可读存储媒体,其包括指令,所述指令当由处理装置执行时使所述处理装置:接收针对攻击者位置的读取操作;对所述攻击者位置的受害者位置执行完整性扫描,以确定所述受害者位置的错误值;以及响应于确定所述受害者位置的所述错误值满足第一错误值阈值,将来自所述攻击者位置的数据复制到高速缓存,其中所述高速缓存是与所述攻击者位置不同类型的存储器。
5.本公开的又一方面涉及一种系统,其包括:存储器装置;以及处理装置,所述处理装置操作性地与所述存储器装置耦接以:接收多个读取操作,所述多个读取操作被划分成读取操作的当前组和读取操作的一或多个后续组;从所述当前组中选择所述读取操作作为针对所述当前组的攻击者位置;对所述攻击者位置的受害者位置执行完整性扫描以确定所述受害者位置的错误值,其中响应于选择所述读取操作作为所述攻击者位置而执行所述完整性扫描;以及响应于确定所述受害者位置的所述错误值满足第一错误值阈值,将来自所述攻击者位置的数据复制到高速缓存,其中所述高速缓存是与所述攻击者位置不同类型的存储器。
附图说明
6.根据下文给出的详细描述和本公开的各个实施例的附图,将更充分地理解本公开。然而,附图不应被视为是将本公开限制于具体实施例,而是仅用于解释和理解。
7.图1展示了根据本公开的一些实施例的包含存储器子系统的示例计算系统。
8.图2展示了根据本公开的一些实施例的管理存储器子系统的一部分的实例。
9.图3是根据本公开的一些实施例的用于标识和高速缓存频繁读取干扰攻击者的示例方法的流程图。
10.图4是根据本公开的一些实施例的用于标识和高速缓存频繁读取干扰攻击者的另
一种示例方法的流程图。
11.图5是本公开的实施例可以在其中操作的示例计算机系统的框图。
具体实施方式
12.本公开的各方面涉及标识和高速缓存存储器子系统中的频繁读取干扰攻击者。存储器子系统可以是存储装置、存储器模块或存储装置和存储器模块的混合。下面结合图1描述存储装置和存储器模块的实例。通常,主机系统可以利用包含如存储数据的存储器装置等一或多个组件的存储器子系统。主机系统可以提供要存储在存储器子系统处的数据,并且可以请求从存储器子系统中检索的数据。
13.存储器装置可以是非易失性存储器装置。非易失性存储器装置是一或多个管芯的封装。非易失性存储器装置的一个实例是与非(negative-and或nand)存储器装置。下面结合图1描述非易失性存储器装置的其它实例。封装中的管芯可以被分配给用于与存储器子系统控制器通信的一或多个通道。每个管芯可以由一或多个平面组成。平面可以分成逻辑单元(lun)。对于一些类型的非易失性存储器装置(例如,与非存储器装置),每个平面由一组物理块组成,所述一组物理块是用于存储数据的存储器胞元组。胞元是存储信息的电子电路。
14.根据胞元类型,胞元可以存储一或多个位的二进制信息并且具有与所存储的位数相关的各种逻辑状态。逻辑状态可以由二进制值,如“0”和“1”或此类值的组合表示。存在各种类型的胞元,如单级胞元(slc)、多级胞元(mlc)、三级胞元(tlc)和四级胞元(qlc)。例如,slc可以存储一个位的信息并且具有两种逻辑状态。
15.存储器中的数据可靠性可以随着存储器装置密度的增加而降级(例如,当每个胞元编程多个位时,装置组件的尺寸缩小等)。此可靠性降低的一个促成因素是读取干扰。当在存储器的一部分(例如,一行胞元)(通常被称为攻击者)上执行的读取操作影响存储器的另一部分(例如,相邻行的胞元)(通常被称为受害者)中的阈值电压时会发生读取干扰。存储器装置通常对于这些干扰具有有限的容差。足够量的读取干扰效应,如阈值数量的对相邻攻击者胞元执行的读取操作,可以将存储器的其它/未读取部分中的受害者胞元改变成与原始编程的逻辑状态不同的逻辑状态,这会导致产生错误。
16.存储器系统可以通过使用每个存储器分区的计数器并且在计数器达到阈值时对给定的存储器分区进行重新编程来跟踪读取干扰。概率性数据完整性方案通过以下方式消耗更少的资源并减少完整性扫描的次数:通过对存储器的一部分(例如,芯片、逻辑单元等)中的读取操作组进行计数或以其它方式进行跟踪并且通过检查每个组中的随机选择的读取操作的一或多个读取干扰受害者的错误率来执行有限的数据完整性扫描。然而,此类方案选择高度访问的位置的趋势可能导致重复性数据完整性扫描。例如,行锤测试重复地访问(锤击)存储器的一部分,如字线,以测试存储器的所述部分的可靠性、读取干扰对作为攻击者的存储器的所述部分的受害者的影响等。行锤测试或类似的局部读取模式可以触发概率性数据完整性方案不必要地读取受害者,以重复地检查频繁攻击者的受害者的错误率,例如当受害者不处于超过阈值错误率的风险时。不必要地检查一或多个受害者的错误率可能导致另外的读取干扰效应以及与主机读取的冲突和主机系统服务质量中的对应损害。另外,行锤测试或类似的局部读取模式可能导致会对一或多个受害者位置造成显著的读取干
扰。
17.本公开的各方面通过在标识和高速缓存频繁读取干扰攻击者的同时实施概率性数据完整性方案来解决上述和其它缺陷。例如,一些实施例通过将频繁攻击者读取操作的数据复制或迁移到高速缓存并且使用所述高速缓存来服务用于攻击者的后续读取操作来减轻读取干扰。因此,存储器子系统可以减轻对频繁攻击者的一些读取干扰影响和对攻击者位置的受害者的对应完整性检查。通过高速缓存频繁读取干扰攻击者,存储器子系统在触发受害者数据的折叠或其它迁移之前增加存储器的有效读取容差(相对于读取干扰)。由于读取干扰引起的数据迁移的对应减少改善了存储器子系统的服务质量。
18.图1展示了根据本公开的一些实施例的包含存储器子系统110的示例计算系统100。存储器子系统110可以包含媒体,如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或此类存储器装置的组合。
19.存储器子系统110可以是存储装置、存储器模块或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(ssd)、闪存驱动器、通用串行总线(usb)闪存驱动器、嵌入式多媒体控制器(emmc)驱动器、通用闪存(ufs)驱动器、安全数字(sd)卡和硬盘驱动器(hdd)。存储器模块的实例包含双列直插式存储器模块(dimm)、小外形dimm(so-dimm)和各种类型的非易失性双列直插式存储器模块(nvdimm)。
20.计算系统100可以是计算装置,如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、支持物联网(iot)的装置、嵌入式计算机(例如,包含在交通工具、工业设备或网络化商业装置中的计算机),或者包含存储器和处理装置的此类计算装置。
21.计算系统100可以包含耦接到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦接到不同类型的存储器子系统110。图1展示了耦接到一个存储器子系统110的主机系统120的一个实例。如本文所使用的,“耦接到(coupled to)”或“与
……
耦接(coupled with)”通常指组件之间的连接,所述连接可以是间接的通信连接或直接的通信连接(例如,无中间组件),无论是有线的或无线的,包含如电、光、磁性等连接。
22.主机系统120可以包含处理器芯片组和由处理器芯片组执行的软件堆栈。处理器芯片组可以包含一或多个核心、一或多个高速缓存、存储器控制器(例如,nvdimm控制器)和存储协议控制器(例如,pcie控制器、sata控制器)。主机系统120使用存储器子系统110,例如将数据写入存储器子系统110并且从存储器子系统110读取数据。
23.主机系统120可以通过物理主机接口耦接到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(sata)接口、外围组件互连快速(pcie)接口、通用串行总线(usb)接口、光纤通道、串行附接的scsi(sas)、小型计算机系统接口(scsi)、双倍数据速率(ddr)存储器总线、双列直插式存储器模块(dimm)接口(例如,支持双数据速率(ddr)的dimm插槽接口)、开放式与非闪存接口(onfi)、双倍数据速率(ddr)、低功率双倍数据速率(lpddr)或任何其它接口。物理主机接口可以用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过pcie接口与主机系统120耦接时,主机系统120可以进一步利用nvm快速(nvme)接口来对组件(例如,存储器装置130)进行存取。物理主机接口可以提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。图1通过举例的方式展示了存储器子系统110。通常,主机系统120可以通过相同的通信连
接、多个单独的通信连接和/或通信连接的组合来存取多个存储器子系统。
24.存储器装置130、140可以包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(ram),如动态随机存取存储器(dram)和同步动态随机存取存储器(sdram)。
25.非易失性存储器装置(例如,存储器装置130)的一些实例包含负与(与非)型闪存和原地写入(write-in-place)存储器,如三维交叉点(“3d交叉点”)存储器装置,所述三维交叉点存储器装置是非易失性存储器胞元的交叉点阵列。非易失性存储器的交叉点阵列可以与可堆叠交叉网格数据存取阵列结合基于体电阻的改变执行位存储。另外,与许多基于闪速的存储器相比,交叉点非易失性存储器可以执行原地写入操作,其中可以在先前未擦除非易失性存储器胞元的情况下对非易失性存储器胞元进行编程。与非型闪存包含例如二维与非(2d与非)和三维与非(3d与非)。
26.虽然描述了非易失性存储器装置如与非型存储器(例如,2d与非、3d与非)和非易失性存储器胞元的3d交叉点阵列,但是存储器装置130可以基于任何其它类型的非易失性存储器,如只读存储器(rom)、相变存储器(pcm)、自选择性存储器、其它基于硫族化物的存储器、铁电晶体管随机存取存储器(fetram)、铁电随机存取存储器(feram)、磁随机存取存储器(mram)、自旋转移矩(stt)-mram、导电桥接ram(cbram)、电阻式随机存取存储器(rram)、基于氧化物的rram(oxram)、或非(negative-or或nor)闪存以及电可擦可编程只读存储器(eeprom)。
27.存储器子系统控制器115(或为了简单起见,控制器115)可以与存储器装置130通信以执行在存储器装置130处的如读取数据、写入数据或擦除数据等操作以及其它此类操作(例如,响应于由控制器115在命令总线上调度的命令)。存储器子系统控制器115可以包含硬件,如一或多个集成电路和/或分立组件、缓冲存储器或其组合。硬件可以包含具有专用(即,硬编码)逻辑以执行本文所述的操作的数字电路系统。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)或者另一种合适的处理器。
28.存储器子系统控制器115可以包含被配置成执行存储在本地存储器119中的指令的处理装置117(处理器)。在所展示的实例中,存储器子系统控制器115的本地存储器119包含嵌入式存储器,所述嵌入式存储器被配置成存储用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流程和例程(包含处理存储器子系统110与主机系统120之间的通信)的指令。
29.在一些实施例中,本地存储器119可以包含存储存储器指针、所获取数据等的存储器寄存器。本地存储器119还可以包含用于存储微代码的只读存储器(rom)。尽管图1中的示例存储器子系统110已经被展示为包含存储器子系统控制器115,但是在本公开的另一个实施例中,存储器子系统110不包含存储器子系统控制器115,而是可以依赖于(例如,由外部主机或由与存储器子系统110分开的处理器或控制器提供的)外部控制。
30.存储器子系统控制器115通常可以从主机系统120接收命令或操作并且可以将命令或操作转化成指令或适当的命令以实现对存储器装置130和/或存储器装置140的期望存取。存储器子系统控制器115可以负责其它操作,如损耗均衡操作、垃圾收集操作、错误检测和错误校正码(ecc)操作、加密操作、高速缓存操作以及与存储器装置130相关联的逻辑地
址(例如,逻辑块地址(lba)、命名空间)与物理地址(例如,物理块地址)之间的地址转换。存储器子系统控制器115可以进一步包含主机接口电路系统,以通过物理主机接口与主机系统120通信。主机接口电路系统可以将从主机系统接收到的命令转化成命令指令以对存储器装置130和/或存储器装置140进行存取以及将与存储器装置130和/或存储器装置140相关联的响应转化成用于主机系统120的信息。
31.存储器子系统110还可以包含未展示的另外的电路系统或组件。在一些实施例中,存储器子系统110可以包含高速缓存或缓冲器(例如,dram)和可以从存储器子系统控制器115接收地址并且解码所述地址以对存储器装置130进行存取的地址电路系统(例如,行解码器和列解码器)。
32.在一些实施例中,存储器装置130包含本地媒体控制器135,所述本地媒体控制器结合存储器子系统控制器115操作以在存储器装置130的一或多个存储器胞元上执行操作。外部控制器(例如,存储器子系统控制器115)可以在外部管理存储器装置130(例如,在存储器装置130上执行媒体管理操作)。在一些实施例中,存储器装置130是管理型存储器装置,所述管理型存储器装置是与本地控制器(例如,本地控制器135)组合以在同一存储器装置封装内进行媒体管理的原始存储器装置。管理型存储器装置的实例是管理型与非(mnand)装置。
33.存储器子系统110包含减轻读取干扰错误的数据完整性管理器113。在一些实施例中,控制器115包含数据完整性管理器113的至少一部分。例如,控制器115可以包含被配置成执行存储在本地存储器119中的用于执行本文所述的操作的指令的处理器117(处理装置)。在一些实施例中,数据完整性管理器113是主机系统120、应用或操作系统的一部分。
34.数据完整性管理器113可以实施和管理读取干扰减轻方案。例如,数据完整性管理器113可以实施包含标识和高速缓存频繁读取干扰攻击者的概率性读取干扰减轻方案。下面描述了关于数据完整性管理器113的操作的另外的细节。
35.图2展示了根据本公开的一些实施例的管理存储器子系统200的一部分的实例。在一个实施例中,数据完整性管理器113实施每个存储器单元210或存储器的另一个分区的读取干扰减轻方案。例如,数据完整性管理器113可以执行每个lun、存储器胞元的类型(例如,slc、mlc、tlc等)等的单独的概率性读取干扰减轻方案。
36.存储器单元210的图示包含存储器胞元阵列。为了提供简单的解释,存储器单元210展示了少量的存储器胞元。存储器单元210的实施例可以包含更多数量的存储器胞元。
37.每个存储器单元210包含存储器子系统110通过字线215和位线220存取的存储器胞元。例如,存储器装置130可以使用字线230读取存储器的页面。在所述页面内,通过字线230和位线235存取存储器胞元225。如上所述,读取存储器胞元可能导致对其它存储器胞元的读取干扰效应。例如,对存储器胞元225(攻击者)的读取可能导致干扰存储器胞元240和245(受害者)。类似地,对字线230的其它存储器胞元(攻击者)的读取可能导致干扰字线250和255的其它存储器胞元(受害者)。
38.这种干扰效应可以增加受害者存储器胞元的错误率。在一个实施例中,数据完整性管理器113测量存储器的一部分的错误率作为原始位错误率(rber)。数据完整性管理器113可以通过跟踪存储器单元210中的读取操作流量并检查受害者的错误率来跟踪和减轻读取干扰。例如,数据完整性管理器113可以选择针对字线230的读取操作作为用于测试读
取干扰的攻击者,并且执行对字线250和255的读取以确定每个字线的错误率。响应于检测到存储器的给定受害者部分的错误率满足阈值错误率值,数据完整性管理器113可以将数据从存储器的受害者部分迁移到存储器的不同部分。具体地,数据完整性管理器113标识和高速缓存频繁读取干扰攻击者。参考图3和4进一步描述读取干扰的这种跟踪和减轻。
39.图3是根据本公开的一些实施例的用于标识和高速缓存频繁读取干扰攻击者的示例方法的流程图。方法300可以由处理逻辑执行,所述处理逻辑可以包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法300由图1的数据完整性管理器113执行。虽然以特定序列或顺序示出,但除非另有指定,否则可以修改过程的顺序。因此,所展示的实施例应被理解为只是实例,并且所展示的过程可以以不同的顺序执行,并且一些过程可以并行地执行。另外,在各个实施例中可以省略一或多个过程。因此,并非在每个实施例中都需要所有过程。其它过程流程是可能的。
40.在操作305处,处理装置接收读取操作请求。读取请求可以从一或多个主机系统接收和/或由存储器子系统110内的另一个进程生成。处理装置可以异步地、连续地、分批地等接收读取操作请求。在一个实施例中,存储器子系统110从一或多个主机系统120接收操作请求并将这些请求存储在命令队列中。处理装置可以在n个操作的集合中处理来自命令队列和/或如内部生成的读取操作。
41.在操作310处,处理装置选择当前操作组中的攻击者操作。当实施概率性读取干扰处理方案时,处理装置可以通过生成在1到n的范围内的第一随机数(例如,均匀随机数)并且当当前组中的读取操作的计数达到第一随机数时将当前/最后读取操作标识为攻击者来选择当前组中的攻击者。
42.在一个实施例中,处理装置在多个单独跟踪的操作组中的每个操作组中选择攻击者操作。例如,处理装置可以在不同的存储器(例如,lun的)分区、存储器类型(例如,不同的存储器密度)、不同的编程状态(例如,部分块对完整块)、不同的降级因子(例如,编程擦除周期)等内明显地跟踪读取干扰。处理装置可以使用不同数量的操作(每组n个)、不同的阈值(例如,错误率阈值)、不同的高速缓存(例如,高速缓存大小的不同分配)等来管理存储器的每个不同部分。如此,处理装置可以基于存储器的对应部分的特性动态地选择此类值中的一或多个值。为了解释起见,对方法300的描述将集中在存储器的经受读取干扰减轻的一部分上。
43.在操作315处,处理装置确定攻击者是否位于高速缓存中。例如,处理装置可以使用逻辑或物理地址作为攻击者位置的标识符并且确定攻击者的地址是否映射到高速缓存。处理装置可以在表格或其它数据结构中实施高速缓存映射。例如,处理装置可以在易失性存储器(如ram)中的第一高速缓存中维护攻击者标识符的列表,其中每个攻击者标识符映射到存储在易失性存储器(如ram)或非易失性存储器(如slc存储器的一部分)中的另一个高速缓存中的对应攻击者数据。处理装置可以使用其它值作为攻击者的用于映射的标识符,例如字线编号、块编号等。
44.如果处理装置没有在高速缓存中定位攻击者,则方法300进行到操作320以执行对攻击者位置的读取操作。如果处理装置在高速缓存中定位攻击者,则方法300进行到操作350以使用高速缓存执行读取操作。
45.在操作320处,处理装置执行对所选择攻击者的读取操作。例如,存储器子系统110执行当前n个操作组中的操作序列中的一或多个读取操作。在到达所选择攻击者时,存储器子系统110通过沿字线存取存储器胞元并将数据返回到主机系统120或发起读取请求的内部进程来读取数据页面。一些实施例对每个操作存储器的其它大小/部分执行读取操作。
46.在操作325处,处理装置针对读取操作的当前组所选择的攻击者的受害者执行完整性扫描。例如,响应于对当前组中的攻击者的选择,处理装置可以执行对每个受害者的读取,以检查随机选择的攻击者读取操作的受害者的错误率。处理装置可以使用错误位的百分比、错误位的数量或错误位的另一个指示作为错误率。可替代地,处理装置可以使用另一个错误值,如受害者的阈值电压的偏移量。
47.在操作330处,处理装置确定受害者的错误值是否满足折叠阈值。例如,处理装置可以确定受害者的错误率是否满足或超过用于折叠的错误率阈值。如上所述,错误率阈值可以是由处理装置例如基于受害者所位于的存储器的部分的特性而选择的动态值。如果受害者错误率满足折叠阈值,则方法300进行到操作335。如果受害者错误率不满足折叠阈值,则方法300进行到操作340。
48.在操作335处,响应于检测到错误值满足折叠阈值,处理装置将数据从存储器的受害者部分折叠或以其它方式迁移到存储器的不同部分以减轻读取干扰对受害者的影响。在一个实施例中,处理装置将受害者数据折叠或以其它方式迁移到与受害者位置相同的存储器类型的存储器的另一部分。
49.在一个实施例中,处理装置确定折叠操作是否迁移先前高速缓存的攻击者的数据。如果处理装置确定高速缓存的攻击者经受折叠操作(或其它迁移),则处理装置从高速缓存中驱逐所述攻击者。
50.如果在当前组中存在剩余的读取操作,则处理装置可以继续执行剩余的读取操作。否则,方法300进行到操作305以接收和处理后续组中的另外的读取操作。
51.在操作340处,处理装置确定受害者的错误值是否满足高速缓存阈值。例如,处理装置可以确定受害者的错误率是否满足或超过高速缓存错误率阈值或受害者是否以其它方式满足高速缓存阈值。在一个实施例中,高速缓存阈值表示比折叠阈值更低的错误率(即,更少的错误)。类似于折叠阈值,高速缓存阈值可以是由处理装置例如基于受害者所位于的存储器的部分的特性而选择的动态值。
52.如上所述,处理装置可以使用另一个度量作为高速缓存阈值。例如,处理装置可以评估受害者的阈值电压分布。如果受害者的电压分布与预期值相差阈值量,则受害者满足高速缓存阈值。如果受害者错误值满足高速缓存阈值,则方法300进行到操作345以将攻击者添加到高速缓存。在一个实施例中,处理装置使用另一个触发器(例如,除了高速缓存阈值之外或作为高速缓存阈值的替代方案)来确定是否要将攻击者添加到高速缓存。例如,处理装置可以使用攻击者标识符的主高速缓存来检测频繁攻击者。在被确定为频繁攻击者之前,处理装置将攻击者数据维持在其原始存储器位置中。在主高速缓存中的攻击者标识符的一或多个命中后,处理装置可以将攻击者数据(和攻击者标识符)复制到次高速缓存,如下文参考操作345所描述的。
53.如果受害者错误值不满足高速缓存阈值,则处理装置可以继续执行任何剩余的读取操作,并且方法300进行到操作305以接收和处理后续组中的另外的读取操作。
54.在操作345处,响应于受害者错误值满足高速缓存阈值,处理装置将攻击者添加到高速缓存。例如,处理装置可以将在操作320中读取的数据的副本保存到高速缓存或重新读取攻击者位置并将数据复制到高速缓存。在一个实施例中,处理装置将受害者错误值与来自攻击者位置的数据一起存储在高速缓存中。
55.如果高速缓存已满,则处理装置可以实施高速缓存管理策略来选择用于驱逐的高速缓存条目。在一个实施例中,高速缓存管理策略驱逐最旧的条目(即,先进先出(fifo)策略)。在另一个实施例中,高速缓存管理策略使用用于驱逐的另一个标准,例如具有最高受害者错误值的高速缓存条目。尽管简单地描述为高速缓存,但处理装置可以跟踪各种类型的数据结构和不同类型的高速缓存中的攻击者。例如,处理装置可以使用全相联高速缓存、组相联高速缓存、直接映射高速缓存或如布隆过滤器(bloom filter)或布谷过滤器(cuckoo filter)的概率性数据结构。
56.在一个实施例中,处理装置创建或更新攻击者位置的标识符的映射以指示将攻击者位置数据复制到高速缓存。例如,处理装置可以将存储器的攻击者部分的逻辑或物理地址或其它标识号或值映射到存储攻击者位置数据的副本的高速缓存条目。
57.在一个实施例中,高速缓存是与攻击者或受害者存储器位置不同类型的存储器。例如,高速缓存可以是易失性存储器(例如,ram),而攻击者存储器位置是非易失性存储器。处理装置可以在不考虑读取干扰的情况下从易失性存储器高速缓存中实现重复读取操作。在另一个实例中,高速缓存和攻击者存储器位置两者都是非易失性存储器但具有不同的位密度。在此类实施例中,当攻击者存储器位置位于存储器的mlc、tlc或qlc部分内时,高速缓存可以使用保留的或以其它方式分配给高速缓存的slc存储器的一部分来实施。尽管slc高速缓存将经受读取干扰,但slc存储器可以比如mlc、tlc或qlc等存储器的更高密度部分容忍更多的读取干扰。
58.在操作350处,响应于检测到针对高速缓存的攻击者位置的读取操作,处理装置使用高速缓存的数据来实现读取操作。因此,处理装置可以避免对作为攻击者位置的受害者的存储器位置造成另外的读取干扰。另外,在一些实施例中,处理装置可以在当前操作组中放弃对受害者位置的完整性扫描。例如,当攻击者数据存储在易失性存储器高速缓存中时,处理装置可以实现读取操作而不考虑读取干扰并且避免触发数据完整性扫描的可能性。当攻击者数据被高速缓存在非易失性存储器的不同位密度部分(例如,slc存储器的一部分)中时,对高速缓存的读取仍然可以触发数据完整性扫描。例如,处理装置可以为存储器的非易失性高速缓存部分实施类似的读取干扰减轻方案,并且相应地对高速缓存读取的受害者执行数据完整性扫描。因为如slc存储器的部分等存储器的较低密度部分可以比如mlc、tlc或qlc等存储器的较高密度部分容忍更多的读取干扰,所以处理装置可以比当数据存储在存储器的较高密度部分中时不太频繁地执行数据完整性扫描(例如,通过使用更大的n值)。使用存储器的较低密度部分作为高速缓存还导致比存储在存储器的较高密度部分时更少的触发折叠或以其它方式迁移受害者数据的事件。
59.在一个实施例中,作为放弃针对当前操作组中的攻击者的受害者的完整性扫描的结果,处理装置不执行针对当前组的完整性扫描。在另一个实施例中,处理装置可以用存储器的另一个位置,如当前组中的另一个读取操作的受害者的完整性扫描来替代攻击者的受害者的完整性扫描。
60.方法300可以继续执行当前组中剩余的任何读取操作,并且进行到操作305以接收和处理后续组中的另外的读取操作。
61.图4是根据本公开的一些实施例的用于标识和高速缓存频繁读取干扰攻击者的另一种示例方法400的流程图。方法400可以由处理逻辑执行,所述处理逻辑可以包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法400由图1的数据完整性管理器113执行。虽然以特定序列或顺序示出,但除非另有指定,否则可以修改过程的顺序。因此,所展示的实施例应被理解为只是实例,并且所展示的过程可以以不同的顺序执行,并且一些过程可以并行地执行。另外,在各个实施例中可以省略一或多个过程。因此,并非在每个实施例中都需要所有过程。其它过程流程是可能的。
62.在操作405处,处理装置接收针对存储器中的攻击者位置的读取操作。例如,处理装置可以用一组n个操作来选择攻击者读取操作,如参考操作305所描述的。
63.在操作410处,处理装置对攻击者读取操作的受害者执行数据完整性扫描。例如,处理装置可以执行对每个受害者的读取以检查受害者的错误值,如参考操作325所描述的。
64.在操作415处,响应于确定受害者的错误值满足高速缓存阈值,处理装置将来自攻击者位置的数据复制到高速缓存。例如,处理装置可以确定受害者的错误值满足或超过高速缓存错误值阈值,并且将攻击者位置数据复制到高速缓存,如参考操作340-345所描述的。如上所述,高速缓存可以是与攻击者或受害者存储器位置不同类型的存储器。
65.图5展示了计算机系统500的示例机器,在所述计算机系统内,可以执行用于使机器执行本文所讨论的方法中的任何一或多种方法的指令集。在一些实施例中,计算机系统500可以对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦接到或利用存储器子系统(例如,图1的存储器子系统110)或可以用于执行控制器的操作(例如,以执行操作系统,从而执行对应于图1的数据完整性管理器113的操作)。在替代性实施例中,机器可以连接(例如,联网)到lan、内联网、外联网和/或因特网中的其它机器。机器可以在客户端-服务器网络环境中以服务器或客户端机器的身份进行操作,在对等(或分布式)网络环境中作为对等机器进行操作,或在云计算基础设施或环境中作为服务器或客户端机器进行操作。
66.机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝电话、web电器、服务器、网络路由器、交换机或桥接器、或能够(顺序地或以其它方式)执行指定所述机器要采取的动作的指令集的任何机器。另外,尽管展示了单个机器,但是术语“机器”还应被视为包含单独地或联合地执行一个指令集(或多个指令集)以执行本文所讨论的方法中的任何一或多种方法的机器的任何集合。
67.示例计算机系统500包含通过总线530彼此通信的处理装置502、主存储器504(例如,只读存储器(rom);闪存;动态随机存取存储器(dram),如同步dram(sdram)或兰巴斯dram(rambus dram,rdram)等)、静态存储器506(例如,闪存、静态随机存取存储器(sram)等)和数据存储系统518。
68.处理装置502表示一或多个通用处理装置,如微处理器、中央处理单元等。更具体地,处理装置可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器、或实施其它指令集的处理器、或实施指令集组合的处理器。处理
装置502还可以是一或多个专用处理装置,如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理装置502被配置成执行用于执行本文所讨论的操作和步骤的指令526。计算机系统500可以进一步包含通过网络520进行通信的网络接口装置508。
69.数据存储系统518可以包含其上存储有使本文所描述的方法或功能中的任何一或多种方法或功能的一或多个指令集526或软件具体化的机器可读存储媒体524(也被称为计算机可读媒体)。指令526还可以在由计算机系统500执行所述指令期间完全或至少部分地驻留在主存储器504和/或处理装置502内,主存储器504和处理装置502也构成机器可读存储媒体。机器可读存储媒体524、数据存储系统518和/或主存储器504可以对应于图1的存储器子系统110。
70.在一个实施例中,指令526包含用于实施对应于数据完整性管理器(例如,图1的数据完整性管理器113)的功能的指令。尽管在示例实施例中示出的机器可读存储媒体524是单个媒体,但是术语“机器可读存储媒体”应被视为包含存储所述一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码由机器执行且使机器执行本公开的方法中的任何一或多种方法的指令集的任何媒体。因此,术语“机器可读存储媒体”应被视为包含但不限于固态存储器、光学媒体和磁性媒体。
71.已经以对计算机存储器内的数据位的操作的算法和符号表示的形式呈现了前面详细描述的说明的一些部分。这些算法描述和表示是数据处理领域的技术人员用来向本领域的其它技术人员最有效地传递其工作实质的方式。算法在此处并且通常被认为是产生期望结果的操作的自相一致序列。所述操作是需要对物理量进行物理操纵的操作。通常,尽管不一定,这些量采取能够被存储、组合、比较和以其它方式操纵的电信号或磁信号的形式。已经证明,主要出于通用的原因,有时将这些信号称为位、值、元素、符号、字符、术语、数字等是便利的。
72.然而,应当记住,所有这些术语和类似术语应当与合适的物理量相关联,并且仅仅是应用于这些量的方便标记。本公开可以涉及计算机系统或类似的电子计算装置的动作和过程,所述计算机系统或类似的电子计算装置对在计算机系统的寄存器和存储器内表示为物理(电子)量的数据进行操作,并将其转换为在计算机系统的存储器或寄存器或其它此类信息存储系统内以类似方式表示为物理量的其它数据。
73.本公开还涉及用于执行本文的操作的设备。此设备可以被专门构造用于所需目的,或者其可以包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。例如,计算机系统或其它数据处理系统,如控制器115,可以响应于其处理器执行包含在存储器或其它非暂时性机器可读存储媒体中的计算机程序(例如,指令序列)来执行计算机实施的方法300和400。此类计算机程序可以存储在计算机可读存储媒体中,如但不限于任何类型的磁盘,包含各自耦接到计算机系统总线的软盘、光盘、cd-rom和磁光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡或者适于存储电子指令的任何类型的媒体。
74.本文所呈现的算法和显示并非固有地与任何特定计算机或其它设备相关。各种通用系统可以与根据本文的教导的程序一起使用,或者可以证明,构造用于执行所述方法的更具专用性的设备是方便的。用于各种这些系统的结构将如以下的描述中阐述那样显现。
另外,本公开不参考任何特定编程语言进行描述。应理解,可以使用各种编程语言来实施如本文描述的本公开的教导。
75.本公开可以以计算机程序产品或软件的形式提供,所述计算机程序产品或软件可以包含具有存储于其上的指令的机器可读媒体,所述指令可以用于对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程。机器可读媒体包含用于以机器(例如,计算机)可读形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、闪存组件等。
76.在前述说明书中,已经参考其具体示例实施例对本公开的实施例进行描述。将显而易见的是,在不脱离如以下权利要求中阐述的本公开的实施例的更广泛的精神和范围的情况下,可以对所述实施例进行各种修改。因此,说明书和附图被认为是说明性意义的,而不是限制性意义的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1