CN114610229A - 减少概率性数据完整性扫描冲突 - Google Patents
减少概率性数据完整性扫描冲突 Download PDFInfo
- Publication number
- CN114610229A CN114610229A CN202111430377.7A CN202111430377A CN114610229A CN 114610229 A CN114610229 A CN 114610229A CN 202111430377 A CN202111430377 A CN 202111430377A CN 114610229 A CN114610229 A CN 114610229A
- Authority
- CN
- China
- Prior art keywords
- memory
- read
- operations
- data integrity
- read operation
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/004—Error avoidance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
- G11C16/3427—Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
Abstract
本申请涉及减少概率性数据完整性扫描冲突。示例性方法、设备和系统包含接收读取操作。所述读取操作被划分成读取操作序列的当前组和读取操作序列的一或多个其它组。从所述当前组中选择攻击者读取操作。存储由所述攻击者读取操作读取的存储器位置的标识符,并且响应于确定所述攻击者读取操作的受害者位置的数据完整性扫描将与主机操作发生冲突,延迟所述数据完整性扫描。响应于满足触发条件,执行所述攻击者读取操作的所述受害者位置的经延迟的数据完整性扫描。
Description
技术领域
本公开总体上涉及存储器子系统中的读取干扰错误的减轻,并且更具体地涉及管理主机请求与用于减轻读取干扰错误的概率性数据完整性方案的数据完整性扫描之间的冲突。
背景技术
存储器子系统可以包含存储数据的一或多个存储器装置。存储器装置可以是例如非易失性存储器装置和易失性存储器装置。通常,主机系统可以利用存储器子系统将数据存储在存储器装置处并从存储器装置中检索数据。
发明内容
一方面,本申请提供了一种方法,其包括:接收针对由存储器通道存取的存储器的一部分的多个读取操作,所述多个读取操作被划分成读取操作序列的当前组和读取操作序列的一或多个其它组;从所述当前组中选择攻击者读取操作;存储由所述攻击者读取操作读取的存储器位置的标识符;响应于确定所述攻击者读取操作的受害者位置的数据完整性扫描将与主机操作发生冲突,延迟所述数据完整性扫描;以及响应于满足触发条件,执行所述攻击者读取操作的所述受害者位置的经延迟的数据完整性扫描。
在另一方面,本申请提供了一种非暂时性计算机可读存储媒体,其包括指令,所述指令当由处理装置执行时使所述处理装置:接收针对由存储器通道存取的存储器的一部分的多个读取操作,所述多个读取操作被划分成读取操作序列的当前组和读取操作序列的一或多个其它组;从所述当前组中选择攻击者读取操作;存储由所述攻击者读取操作读取的存储器位置的标识符;响应于确定所述攻击者读取操作的受害者位置的数据完整性扫描将与主机操作发生冲突,延迟所述数据完整性扫描;并且响应于满足触发条件,执行所述攻击者读取操作的所述受害者位置的经延迟的数据完整性扫描。
在另一方面,本申请提供了一种系统,其包括:多个存储器装置;以及处理装置,所述处理装置与所述多个存储器装置操作性地耦接以:接收针对由存储器通道存取的存储器的一部分的多个读取操作,所述多个读取操作被划分成读取操作序列的当前组和读取操作序列的一或多个其它组;从所述当前组中选择攻击者读取操作;存储由所述攻击者读取操作读取的存储器位置的标识符;响应于确定命令队列包含针对所述存储器的所述部分或所述存储器通道的一或多个主机操作,延迟所述攻击者读取操作的受害者存储器位置的完整性扫描;并且响应于满足触发条件,执行所述攻击者读取操作的所述受害者位置的经延迟的数据完整性扫描。
附图说明
根据下文给出的详细描述和本公开的各个实施例的附图,将更充分地理解本公开。然而,附图不应被视为是将本公开限制于具体实施例,而是仅用于解释和理解。
图1展示了根据本公开的一些实施例的包含存储器子系统的示例计算系统。
图2展示了根据本公开的一些实施例的管理存储器子系统的一部分的实例。
图3是根据本公开的一些实施例的用于减少概率性数据完整性扫描冲突的示例方法的流程图。
图4是根据本公开的一些实施例的用于减少概率性数据完整性扫描冲突的另一种示例方法的流程图。
图5是本公开的实施例可以在其中操作的示例计算机系统的框图。
具体实施方式
本公开的各方面涉及管理存储器子系统中的概率性数据完整性扫描。存储器子系统可以是存储装置、存储器模块或存储装置和存储器模块的混合。下面结合图1描述存储装置和存储器模块的实例。通常,主机系统可以利用包含如存储数据的存储器装置等一或多个组件的存储器子系统。主机系统可以提供要存储在存储器子系统处的数据,并且可以请求从存储器子系统中检索的数据。
存储器装置可以是非易失性存储器装置。非易失性存储器装置是一或多个管芯的封装。非易失性存储器装置的一个实例是与非(negative-and或NAND)存储器装置。下面结合图1描述非易失性存储器装置的其它实例。封装中的管芯可以被分配给用于与存储器子系统控制器通信的一或多个通道。每个管芯可以由一或多个平面组成。平面可以分成逻辑单元(LUN)。对于一些类型的非易失性存储器装置(例如,与非存储器装置),每个平面由一组物理块组成,所述一组物理块是用于存储数据的存储器胞元组。胞元是存储信息的电子电路。
根据胞元类型,胞元可以存储一或多个位的二进制信息并且具有与所存储的位数相关的各种逻辑状态。逻辑状态可以由二进制值,如“0”和“1”或此类值的组合表示。存在各种类型的胞元,如单级胞元(SLC)、多级胞元(MLC)、三级胞元(TLC)和四级胞元(QLC)。例如,SLC可以存储一个位的信息并且具有两种逻辑状态。
存储器中的数据可靠性可以随着存储器装置密度的增加而降级(例如,当每个胞元编程多个位时,装置组件的尺寸缩小等)。此可靠性降低的一个促成因素是读取干扰。当在存储器的一部分(例如,一行胞元)(通常被称为攻击者)上执行的读取操作影响存储器的另一部分(例如,相邻行的胞元)(通常被称为受害者)中的阈值电压时会发生读取干扰。存储器装置通常对于这些干扰具有有限的容差。足够量的读取干扰效应,如阈值数量的对相邻攻击者胞元执行的读取操作,可以将存储器的其它/未读取部分中的受害者胞元改变成与原始编程的逻辑状态不同的逻辑状态,这会导致产生错误。
存储器系统可以通过使用每个存储器分区的计数器并且在计数器达到阈值时对给定的存储器分区进行重新编程来跟踪读取干扰。概率性数据完整性方案通过以下方式消耗更少的资源:通过对存储器的一部分(例如,芯片、逻辑单元等)中的读取操作组进行计数或以其它方式进行跟踪并且通过检查每个组中的随机选择的读取操作的一或多个读取干扰受害者的错误率来执行有限的数据完整性扫描。这些数据完整性扫描将以平均而言将包含以N个读取操作的间隔发生的随机选择的攻击者的受害者的频率发生,其中N等于每组读取操作的数量。每个数据完整性扫描可以包含例如1-3个读取,其可能与针对与数据完整性扫描相同的存储器通道的一或多个其它主机请求(例如,读取或写入操作)发生冲突。因此,数据完整性扫描与主机操作之间的冲突可以影响存储器子系统的服务质量。
本公开的各方面通过在减少主机操作与数据完整性扫描之间的冲突的同时实施概率性数据完整性方案来解决上述和其它缺陷。例如,一些实施例通过在完整性扫描将与主机操作发生冲突时推迟完整性扫描,直到达到阈值数量的主机操作来管理数据完整性扫描。因此,存储器子系统可以在减少由主机操作与数据完整性扫描之间的冲突导致的主机时延的同时实施消耗比维护干扰计数器的资源更少的资源的数据完整性方案。
图1展示了根据本公开的一些实施例的包含存储器子系统110的示例计算系统100。存储器子系统110可以包含媒体,如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或此类存储器装置的组合。
存储器子系统110可以是存储装置、存储器模块或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、闪存驱动器、通用串行总线(USB)闪存驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用闪存(UFS)驱动器、安全数字(SD)卡和硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外形DIMM(SO-DIMM)和各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算系统100可以是计算装置,如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、支持物联网(IoT)的装置、嵌入式计算机(例如,包含在交通工具、工业设备或网络化商业装置中的计算机),或者包含存储器和处理装置的此类计算装置。
计算系统100可以包含耦接到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦接到不同类型的存储器子系统110。图1展示了耦接到一个存储器子系统110的主机系统120的一个实例。如本文所使用的,“耦接到(coupled to)”或“与……耦接(coupled with)”通常指组件之间的连接,所述连接可以是间接的通信连接或直接的通信连接(例如,无中间组件),无论是有线的或无线的,包含如电、光、磁性等连接。
主机系统120可以包含处理器芯片组和由处理器芯片组执行的软件堆栈。处理器芯片组可以包含一或多个核心、一或多个高速缓存、存储器控制器(例如,NVDIMM控制器)和存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120使用存储器子系统110,例如将数据写入存储器子系统110并且从存储器子系统110读取数据。
主机系统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可以通过相同的通信连接、多个单独的通信连接和/或通信连接的组合来存取多个存储器子系统。
存储器装置130、140可以包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(RAM),如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含负与(与非)型闪存和原地写入(write-in-place)存储器,如三维交叉点(“3D交叉点”)存储器装置,所述三维交叉点存储器装置是非易失性存储器胞元的交叉点阵列。非易失性存储器的交叉点阵列可以与可堆叠交叉网格数据存取阵列结合基于体电阻的改变执行位存储。另外,与许多基于闪速的存储器相比,交叉点非易失性存储器可以执行原地写入操作,其中可以在先前未擦除非易失性存储器胞元的情况下对非易失性存储器胞元进行编程。与非型闪存包含例如二维与非(2D与非)和三维与非(3D与非)。
虽然描述了非易失性存储器装置如与非型存储器(例如,2D与非、3D与非)和非易失性存储器胞元的3D交叉点阵列,但是存储器装置130可以基于任何其它类型的非易失性存储器,如只读存储器(ROM)、相变存储器(PCM)、自选择性存储器、其它基于硫族化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻式随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(negative-or或NOR)闪存以及电可擦可编程只读存储器(EEPROM)。
存储器子系统控制器115(或为了简单起见,控制器115)可以与存储器装置130通信以执行在存储器装置130处的如读取数据、写入数据或擦除数据等操作以及其它此类操作(例如,响应于由控制器115在命令总线上调度的命令)。存储器子系统控制器115可以包含硬件,如一或多个集成电路和/或分立组件、缓冲存储器或其组合。硬件可以包含具有专用(即,硬编码)逻辑以执行本文所述的操作的数字电路系统。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或者另一种合适的处理器。
存储器子系统控制器115可以包含被配置成执行存储在本地存储器119中的指令的处理装置117(处理器)。在所展示的实例中,存储器子系统控制器115的本地存储器119包含嵌入式存储器,所述嵌入式存储器被配置成存储用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流程和例程(包含处理存储器子系统110与主机系统120之间的通信)的指令。
在一些实施例中,本地存储器119可以包含存储存储器指针、所获取数据等的存储器寄存器。本地存储器119还可以包含用于存储微代码的只读存储器(ROM)。尽管图1中的示例存储器子系统110已经被展示为包含存储器子系统控制器115,但是在本公开的另一个实施例中,存储器子系统110不包含存储器子系统控制器115,而是可以依赖于(例如,由外部主机或由与存储器子系统110分开的处理器或控制器提供的)外部控制。
通常,存储器子系统控制器115可以从主机系统120接收命令或操作并且可以将命令或操作转换成指令或适当的命令以实现对存储器装置130和/或存储器装置140的期望存取。存储器子系统控制器115可以负责其它操作,如损耗均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作以及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、命名空间)与物理地址(例如,物理块地址)之间的地址转换。存储器子系统控制器115可以进一步包含主机接口电路系统,以通过物理主机接口与主机系统120通信。主机接口电路系统可以将从主机系统接收到的命令转换成命令指令以对存储器装置130和/或存储器装置140进行存取以及将与存储器装置130和/或存储器装置140相关联的响应转换成用于主机系统120的信息。
存储器子系统110还可以包含未展示的另外的电路系统或组件。在一些实施例中,存储器子系统110可以包含高速缓存或缓冲器(例如,DRAM)和可以从存储器子系统控制器115接收地址并且解码所述地址以对存储器装置130进行存取的地址电路系统(例如,行解码器和列解码器)。
在一些实施例中,存储器装置130包含本地媒体控制器135,所述本地媒体控制器结合存储器子系统控制器115操作以在存储器装置130的一或多个存储器胞元上执行操作。外部控制器(例如,存储器子系统控制器115)可以在外部管理存储器装置130(例如,在存储器装置130上执行媒体管理操作)。在一些实施例中,存储器装置130是管理型存储器装置,所述管理型存储器装置是与本地控制器(例如,本地控制器135)组合以在同一存储器装置封装内进行媒体管理的原始存储器装置。管理型存储器装置的实例是管理型与非(MNAND)装置。
存储器子系统110包含减轻读取干扰错误的数据完整性管理器113。在一些实施例中,控制器115包含数据完整性管理器113的至少一部分。例如,控制器115可以包含被配置成执行存储在本地存储器119中的用于执行本文所述的操作的指令的处理器117(处理装置)。在一些实施例中,数据完整性管理器113是主机系统120、应用或操作系统的一部分。
数据完整性管理器113可以实施和管理读取干扰减轻方案。例如,数据完整性管理器113可以实施概率性读取干扰减轻方案,并且通过在数据完整性扫描将与主机操作发生冲突时推迟存储器的一部分内的数据完整性扫描直到达到阈值数量的主机操作来管理所述方案内的数据完整性扫描。下面描述了关于数据完整性管理器113的操作的另外的细节。
图2展示了根据本公开的一些实施例的管理存储器子系统200的一部分的实例。在一个实施例中,数据完整性管理器113实施每个存储器单元210的读取干扰减轻方案。例如,数据完整性管理器113可以执行每个LUN的单独的概率性读取干扰减轻方案。
存储器单元210的图示包含存储器胞元阵列。为了提供简单的解释,存储器单元210展示了少量的存储器胞元。存储器单元210的实施例可以包含更多数量的存储器胞元。
每个存储器单元210包含存储器子系统110通过字线215和位线220存取的存储器胞元。例如,存储器装置130可以使用字线230读取存储器的页面。在所述页面内,通过字线230和位线235存取存储器胞元225。如上所述,读取存储器胞元可能导致对其它存储器胞元的读取干扰效应。例如,对存储器胞元225(攻击者)的读取可能导致干扰存储器胞元240和245(受害者)。类似地,对字线230的其它存储器胞元(攻击者)的读取可能导致干扰字线250和255的其它存储器胞元(受害者)。
这种干扰效应可以增加受害者存储器胞元的错误率。在一个实施例中,数据完整性管理器113测量存储器的一部分的错误率作为原始位错误率(RBER)。数据完整性管理器113可以通过跟踪存储器单元210中的读取操作流量并检查受害者的错误率来跟踪和减轻读取干扰。例如,数据完整性管理器113可以选择针对字线230的读取操作作为用于测试读取干扰的攻击者,并且执行对字线250和255的读取以确定每个字线的错误率。响应于检测到存储器的给定受害者部分的错误率满足阈值错误率值,数据完整性管理器113可以将数据从存储器的受害者部分迁移到存储器的不同部分。在一个实施例中,当数据完整性扫描将与主机操作发生冲突时,数据完整性管理器113推迟LUN(或经受读取干扰减轻方案的存储器的其它部分)内的完整性扫描直到达到阈值数量的主机操作。在一个实施例中,数据完整性管理器113对LUN的多个分区中的每个分区的每个存储器类型(例如,每个块)的操作组和对应的完整性扫描进行管理。在另一个实施例中,数据完整性管理器113对每个存储器的不同分区,例如每个块、块组、平面、平面组等的操作组和对应的完整性扫描进行管理。参考图3和4进一步描述读取干扰的这种跟踪和减轻。
图3是根据本公开的一些实施例的用于减少概率性数据完整性扫描冲突的实例的流程图。方法300可以由处理逻辑执行,所述处理逻辑可以包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法300由图1的数据完整性管理器113执行。虽然以特定序列或顺序示出,但除非另有指定,否则可以修改过程的顺序。因此,所展示的实施例应被理解为只是实例,并且所展示的过程可以以不同的顺序执行,并且一些过程可以并行地执行。另外,在各个实施例中可以省略一或多个过程。因此,并非在每个实施例中都需要所有过程。其它过程流程是可能的。
在操作305处,处理装置初始化或重置用于跟踪读取操作的处理的计数器。例如,处理装置可以将计数器设置为零,以开始跟踪读取操作组中的读取操作的处理。在一个实施例中,处理装置以等分的组处理读取操作。例如,如果每组包含10,000个读取操作,则将计数器将初始化或重置到允许计数器对至少10,000个读取操作进行计数的状态。然而,每组的操作的数量可以不同,并且在此将被称为N。
存储器的一部分的数据完整性和无错误读取的能力随着连续的编程-擦除循环(PEC)而降低。在一个实施例中,处理装置基于应用于存储器的所述部分的PEC的数量(例如,从查找表或另一个数据结构确定)使用不同的N值。较低的N值导致较高的扫描频率。如此,一些实施例随着PEC数量的增加而减小N的值。
存储器的一部分的数据完整性和无错误读取的能力也可以基于位密度而变化。例如,存储器的较低位密度部分(例如,SLC)的写入耐久性可以比存储器的较高位密度部分(例如,QLC)的写入耐久性更大。在一个实施例中,处理装置为不同的块类型/位密度选择不同的N值。例如,处理装置可以为SLC块选择比QLC块更高的N的值。可以用不同的N值来单独跟踪不同块类型的读取工作负荷,以便减轻读取干扰错误。
在操作310处,处理装置接收读取操作请求。读取请求可以从一或多个主机系统接收和/或由存储器子系统110内的另一个进程生成。处理装置可以异步地、连续地、分批地等接收读取操作请求。在一个实施例中,存储器子系统110从一或多个主机系统120接收操作请求并将这些请求存储在命令队列中。处理装置可以在N个操作组中处理来自命令队列和/或如内部生成的读取操作。在一个实施例中,处理装置将读取操作划分成N个操作组,其中一个组内的操作针对存储器的同一部分(例如,LUN)。
在操作315处,处理装置选择当前操作组中的攻击者操作。当实施概率性读取干扰处理方案时,处理装置可以通过生成在1到N的范围内的随机数(例如,均匀随机数)并且当读取操作的计数达到当前组中的随机数时将当前/最后读取操作标识为攻击者来选择当前组中的攻击者。
在操作320处,处理装置执行读取操作。例如,存储器子系统110通过沿字线存取存储器胞元并将数据返回到主机系统120或发起读取请求的内部进程来读取数据页面。
另外,处理装置递增读取操作计数器。例如,处理装置可以响应于完成读取操作来递增计数器,以跟踪当前组中的读取操作序列中的当前位置。
在操作325处,处理装置确定读取操作计数器是否已经达到组中的攻击者操作(即,对随机选择的攻击者执行读取)。例如,处理装置可以将计数器的值与所生成的第一随机数进行比较,以标识当前组中的攻击者读取操作。如果计数器尚未到达对应于攻击者操作的序列中的位置,则方法300返回到操作320以继续执行下一个读取操作,如上所述。如果计数器已经到达对应于攻击者操作的序列中的位置(即,处理装置已经执行攻击者读取操作),则方法300进行到操作330。
在操作330处,处理装置确定攻击者的受害者的数据完整性扫描是否将与主机操作发生冲突。例如,处理装置可以确定数据完整性扫描所针对的存储器的部分(例如,同一管芯、LUN或存储器的其它部分)是否空闲或者用于访问存储器的部分以进行数据完整性扫描的存储器通道是否空闲。在一个实施例中,处理装置确定操作队列是否包含针对由与针对当前操作组的数据完整性扫描相同的存储器通道所访问的存储器位置的任何操作。例如,存储器子系统110可以与读取操作的当前组并行地处理另外的主机读取和写入操作。另外的主机读取或写入操作可以针对由与数据完整性扫描相同的存储器通道所访问的存储器位置。这些位置可以在与被数据完整性扫描作为目标的管芯相同的物理存储器管芯上,或者在由与被数据完整性扫描作为目标的管芯相同的存储器通道访问的不同物理存储器管芯上。另外,当前操作组内的其它读取操作也可以针对由与针对当前操作组的数据完整性扫描相同的存储器通道所访问的存储器位置。
在一个实施例中,当存储器能够处理数据完整性扫描而对当前或排队的主机操作几乎没有影响时,处理装置确定数据完整性扫描将不会与主机操作发生冲突。例如,如果存储器支持并行读取和写入操作,则处理装置可以确定存储器的部分或存储器通道在通道不用于执行或包含受害者的存储器的部分(例如,LUN)当前既不执行也不使主机读取操作排队时是空闲的。非读取操作或非主机(内部)操作的执行将不会阻止处理装置确定存储器的部分/通道是空闲的。
如果攻击者的受害者的数据完整性扫描将不会与另一个主机操作发生冲突,则方法300进行到操作360以确定攻击者读取操作的受害者并且对受害者执行数据完整性扫描。如果攻击者的受害者的数据完整性扫描将与另一个主机操作发生冲突,则方法300推迟或以其它方式延迟对受害者的完整性扫描,并且进行到操作335。通过推迟数据完整性扫描,处理装置降低了数据完整性扫描与主机操作之间发生冲突的概率以及对服务质量的对应影响。
在操作335处,处理装置存储攻击者读取操作的标识符。例如,处理装置可以存储经受攻击者读取操作的存储器的部分的逻辑或物理地址,以允许对一或多个受害者存储器位置的后续查找。在一个实施例中,存储器子系统110维持映射存储器位置之间的攻击者和受害者关系的数据结构。在替代性实施例中,处理装置使用标识符来查找受害者并且存储一或多个受害者而不是攻击者的标识符。
在操作340处,处理装置确定读取操作计数器是否已经达到当前组的末尾(即,攻击者操作是组中的最后一个,或者在后续迭代上,当前操作是否是组中的最后一个)或另一限制。例如,处理装置可以将计数器的值与当前操作组内或后续操作组内的N的值进行比较。在一个实施例中,处理装置基于存储器类型(例如,位密度)、编程状态、编程-擦除循环的数量等来选择限制。如果读取操作计数器已经达到当前组的末尾,则方法300进行到操作360。如果读取操作计数器尚未达到当前组的末尾,则方法300进行到操作345。
在操作345处,处理装置确定数据完整性扫描的推迟是否满足延迟阈值。例如,处理装置可以跟踪对存储器通道所执行的操作的计数或在推迟期间经过的时间量。
在一个实施例中,延迟阈值是操作的数量,并且当推迟期间执行的操作的计数等于或大于延迟阈值时,满足阈值。在一个实施例中,延迟阈值被设置为命令队列的深度的倍数(即,命令队列可以保持的操作的数量的倍数)。在另一个实施例中,延迟阈值是时间量。例如,延迟阈值可以是处理给定数量的操作的估计时间量,其同样可以基于命令队列深度。
如果处理装置确定数据完整性扫描的推迟已经满足延迟阈值,则处理装置结束针对此读取操作组的数据完整性扫描的延迟,并且方法300进行到操作360。如果处理装置确定数据完整性扫描的推迟尚未满足延迟阈值,则针对此读取操作组的数据完整性扫描的推迟继续,并且方法300进行到操作350。
在操作350处,处理装置执行一或多个操作。例如,处理装置执行当前操作组中的下一个读取操作,并且针对当前操作组递增计数器。另外,处理装置可以执行未包含在当前操作组中的一或多个操作(例如,针对与数据完整性扫描相同的存储器通道的主机写入操作,并且因此将导致与数据完整性扫描发生冲突)。在一个实施例中,处理装置递增用于跟踪在数据完整性扫描的推迟期间执行的操作的计数器,以便与延迟阈值进行比较。
在操作355处,处理装置确定攻击者的受害者的数据完整性扫描是否将与主机操作发生冲突。例如,如参考操作330所描述的,处理装置可以确定数据完整性扫描所针对的存储器的部分(例如,同一管芯、LUN或存储器的其它部分)是否空闲或者存储器通道是否空闲。如果处理装置确定攻击者的受害者的数据完整性扫描将与另一个主机操作发生冲突,则方法300返回到操作340并且如上所述继续进行。如果处理装置确定攻击者的受害者的数据完整性扫描将不会与另一个主机操作发生冲突,则方法300进行到操作360。
在操作360处,响应于达到N个操作组的末尾、满足延迟阈值或确定数据完整性扫描将不会与主机操作发生冲突,处理装置确定攻击者读取操作的受害者,以便对受害者执行数据完整性扫描。如上所述,处理装置可以使用数据结构或其它映射基于所存储的攻击者的标识符来查找受害者。可替代地,当在操作340处存储受害者的标识符时,处理装置可以读取受害者的标识符而不是执行查找。
在操作365处,处理装置对受害者执行数据完整性扫描。例如,处理装置可以执行对每个受害者的读取以检查随机选择的攻击者读取操作的受害者位置的错误率(或指示读取干扰的其它值)。
在一个实施例中,达到组的末尾不会触发处理装置确定受害者并执行数据完整性扫描。例如,处理装置可以允许数据完整性扫描的推迟,以导致数据完整性扫描的性能在后续操作组中发生。
在一个实施例中,处理装置进一步确定每个受害者的错误率是否满足错误率阈值。例如,对于给定的读取操作,错误率阈值可以等于错误位的数量或百分比。如果受害者的错误率满足错误率阈值,则处理装置将数据从受害者迁移到存储器中的不同位置,以减轻读取干扰对受害者存储器位置的影响。
在操作370处,处理装置确定读取操作计数器是否已经达到当前组的末尾。例如,处理装置可以将计数器的值与N的值进行比较。如果读取操作计数器已经达到当前组的末尾,则方法300返回到操作305以处理下一组操作。如果读取操作计数器尚未达到当前组的末尾,则方法300进行到操作375。
在操作375处,处理装置执行读取操作并递增读取操作计数器,如上文参考操作320所描述的。方法300进行到操作370以再次确定读取操作计数器是否已达到当前组的末尾。
图4是根据本公开的一些实施例的用于减少概率性数据完整性扫描冲突的另一种示例方法400的流程图。方法400可以由处理逻辑执行,所述处理逻辑可以包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法400由图1的数据完整性管理器113执行。虽然以特定序列或顺序示出,但除非另有指定,否则可以修改过程的顺序。因此,所展示的实施例应被理解为只是实例,并且所展示的过程可以以不同的顺序执行,并且一些过程可以并行地执行。另外,在各个实施例中可以省略一或多个过程。因此,并非在每个实施例中都需要所有过程。其它过程流程是可能的。
在操作405处,处理装置接收读取操作,例如,如参考操作310所描述的。处理装置将读取操作划分成读取操作组。例如,处理装置可以使用计数器来跟踪每组要执行的操作的数量N。
在操作410处,处理装置选择当前操作组中的攻击者读取操作。例如,处理装置可以随机选择当前组中的读取操作以标识一或多个受害者作为数据完整性扫描的对象,如参考操作315所描述的。
在操作415处,处理装置存储攻击者读取操作的标识符。例如,处理装置可以存储经受攻击者读取操作影响的存储器的部分的逻辑或物理地址,如上文参考操作335所描述的。
在操作420处,响应于确定数据完整性扫描将与主机操作发生冲突,处理装置延迟对攻击者读取操作的受害者执行数据完整性扫描。例如,处理装置可以确定命令队列是否包含针对与数据完整性扫描相同的存储器通道或存储器的部分的操作,如参考操作330和355所描述的。
在操作425处,响应于满足触发条件,处理装置执行数据完整性扫描(即,结束数据完整性扫描的推迟)。例如,可以通过达到N个操作组的末尾、满足延迟阈值或确定数据完整性扫描将不会与主机操作发生冲突来触发数据完整性扫描,如参考操作340-355所描述的。
图5展示了计算机系统500的示例机器,在所述计算机系统内,可以执行用于使机器执行本文所讨论的方法中的任何一或多种方法的指令集。在一些实施例中,计算机系统500可以对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦接到或利用存储器子系统(例如,图1的存储器子系统110)或可以用于执行控制器的操作(例如,以执行操作系统,从而执行对应于图1的数据完整性管理器113的操作)。在替代性实施例中,机器可以连接(例如,联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可以在客户端-服务器网络环境中以服务器或客户端机器的身份进行操作,在对等(或分布式)网络环境中作为对等机器进行操作,或在云计算基础设施或环境中作为服务器或客户端机器进行操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、web电器、服务器、网络路由器、交换机或桥接器、或能够(顺序地或以其它方式)执行指定所述机器要采取的动作的指令集的任何机器。另外,尽管展示了单个机器,但是术语“机器”还应被视为包含单独地或联合地执行一个指令集(或多个指令集)以执行本文所讨论的方法中的任何一或多种方法的机器的任何集合。
示例计算机系统500包含通过总线530彼此通信的处理装置502、主存储器504(例如,只读存储器(ROM);闪存;动态随机存取存储器(DRAM),如同步DRAM(SDRAM)或兰巴斯DRAM(Rambus DRAM,RDRAM)等)、静态存储器506(例如,闪存、静态随机存取存储器(SRAM)等)和数据存储系统518。
处理装置502表示一或多个通用处理装置,如微处理器、中央处理单元等。更具体地,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或实施其它指令集的处理器、或实施指令集组合的处理器。处理装置502还可以是一或多个专用处理装置,如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置502被配置成执行用于执行本文所讨论的操作和步骤的指令526。计算机系统500可以进一步包含通过网络520进行通信的网络接口装置508。
数据存储系统518可以包含其上存储有使本文所描述的方法或功能中的任何一或多种方法或功能的一或多个指令集526或软件具体化的机器可读存储媒体524(也被称为计算机可读媒体)。指令526还可以在由计算机系统500执行所述指令期间完全或至少部分地驻留在主存储器504和/或处理装置502内,主存储器504和处理装置502也构成机器可读存储媒体。机器可读存储媒体524、数据存储系统518和/或主存储器504可以对应于图1的存储器子系统110。
在一个实施例中,指令526包含用于实施对应于数据完整性管理器(例如,图1的数据完整性管理器113)的功能的指令。尽管在示例实施例中示出的机器可读存储媒体524是单个媒体,但是术语“机器可读存储媒体”应被视为包含存储所述一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码由机器执行且使机器执行本公开的方法中的任何一或多种方法的指令集的任何媒体。因此,术语“机器可读存储媒体”应被视为包含但不限于固态存储器、光学媒体和磁性媒体。
已经以对计算机存储器内的数据位的操作的算法和符号表示的形式呈现了前面详细描述的说明的一些部分。这些算法描述和表示是数据处理领域的技术人员用来向本领域的其它技术人员最有效地传递其工作实质的方式。算法在此处并且通常被认为是产生期望结果的操作的自相一致序列。所述操作是需要对物理量进行物理操纵的操作。通常,尽管不一定,这些量采取能够被存储、组合、比较和以其它方式操纵的电信号或磁信号的形式。已经证明,主要出于通用的原因,有时将这些信号称为位、值、元素、符号、字符、术语、数字等是便利的。
然而,应当记住,所有这些术语和类似术语应当与合适的物理量相关联,并且仅仅是应用于这些量的方便标记。本公开可以涉及计算机系统或类似的电子计算装置的动作和过程,所述计算机系统或类似的电子计算装置对在计算机系统的寄存器和存储器内表示为物理(电子)量的数据进行操作,并将其转换为在计算机系统的存储器或寄存器或其它此类信息存储系统内以类似方式表示为物理量的其它数据。
本公开还涉及用于执行本文的操作的设备。此设备可以被专门构造用于所需目的,或者其可以包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。例如,计算机系统或其它数据处理系统,如控制器115,可以响应于其处理器执行包含在存储器或其它非暂时性机器可读存储媒体中的计算机程序(例如,指令序列)来执行计算机实施的方法300和400。此类计算机程序可以存储在计算机可读存储媒体中,如但不限于任何类型的磁盘,包含各自耦接到计算机系统总线的软盘、光盘、CD-ROM和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或者适于存储电子指令的任何类型的媒体。
本文所呈现的算法和显示并非固有地与任何特定计算机或其它设备相关。各种通用系统可以与根据本文的教导的程序一起使用,或者可以证明,构造用于执行所述方法的更具专用性的设备是方便的。用于各种这些系统的结构将如以下的描述中阐述那样显现。另外,本公开不参考任何特定编程语言进行描述。应理解,可以使用各种编程语言来实施如本文描述的本公开的教导。
本公开可以以计算机程序产品或软件的形式提供,所述计算机程序产品或软件可以包含具有存储于其上的指令的机器可读媒体,所述指令可以用于对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程。机器可读媒体包含用于以机器(例如,计算机)可读形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、闪存组件等。
在前述说明书中,已经参考其具体示例实施例对本公开的实施例进行描述。将显而易见的是,在不脱离如以下权利要求中阐述的本公开的实施例的更广泛的精神和范围的情况下,可以对所述实施例进行各种修改。因此,说明书和附图被认为是说明性意义的,而不是限制性意义的。
Claims (20)
1.一种方法,其包括:
接收针对由存储器通道存取的存储器的一部分的多个读取操作,所述多个读取操作被划分成读取操作序列的当前组和读取操作序列的一或多个其它组;
从所述当前组中选择攻击者读取操作;
存储由所述攻击者读取操作读取的存储器位置的标识符;
响应于确定所述攻击者读取操作的受害者位置的数据完整性扫描将与主机操作发生冲突,延迟所述数据完整性扫描;以及
响应于满足触发条件,执行所述攻击者读取操作的所述受害者位置的经延迟的数据完整性扫描。
2.根据权利要求1所述的方法,其中所述触发条件是所述存储器的所述部分或所述存储器通道是空闲的。
3.根据权利要求1所述的方法,其中所述触发条件是达到所述当前组中的操作的末尾。
4.根据权利要求1所述的方法,其中所述触发条件是延迟阈值。
5.根据权利要求4所述的方法,其中所述延迟阈值是可由命令队列保持的操作数量的倍数。
6.根据权利要求1所述的方法,其中确定所述数据完整性扫描将与主机操作发生冲突包括确定命令队列包含针对所述存储器的部分或所述存储器通道的一或多个主机操作。
7.根据权利要求1所述的方法,其中每组包含N个读取操作,所述方法进一步包括:
生成小于或等于N的第一随机数,其中选择所述攻击者读取操作包含选择在所述当前组中由所述第一随机数指示的位置中的读取操作。
8.一种非暂时性计算机可读存储媒体,其包括指令,所述指令当由处理装置执行时使所述处理装置:
接收针对由存储器通道存取的存储器的一部分的多个读取操作,所述多个读取操作被划分成读取操作序列的当前组和读取操作序列的一或多个其它组;
从所述当前组中选择攻击者读取操作;
存储由所述攻击者读取操作读取的存储器位置的标识符;
响应于确定所述攻击者读取操作的受害者位置的数据完整性扫描将与主机操作发生冲突,延迟所述数据完整性扫描;并且
响应于满足触发条件,执行所述攻击者读取操作的所述受害者位置的经延迟的数据完整性扫描。
9.根据权利要求8所述的非暂时性计算机可读存储媒体,其中所述触发条件是所述存储器的所述部分或所述存储器通道是空闲的。
10.根据权利要求8所述的非暂时性计算机可读存储媒体,其中所述触发条件是达到所述当前组中的操作的末尾。
11.根据权利要求8所述的非暂时性计算机可读存储媒体,其中所述触发条件是延迟阈值。
12.根据权利要求11所述的非暂时性计算机可读存储媒体,其中所述延迟阈值是可由命令队列保持的操作数量的倍数。
13.根据权利要求8所述的非暂时性计算机可读存储媒体,其中确定所述数据完整性扫描将与主机操作发生冲突包括确定命令队列包含针对所述存储器的部分或所述存储器通道的一或多个主机操作。
14.根据权利要求8所述的非暂时性计算机可读存储媒体,其中所述处理装置进一步用于:
生成小于或等于N的第一随机数,其中选择所述攻击者读取操作包含选择在所述当前组中由所述第一随机数指示的位置中的读取操作。
15.一种系统,其包括:
多个存储器装置;以及
处理装置,所述处理装置与所述多个存储器装置操作性地耦接以:
接收针对由存储器通道存取的存储器的一部分的多个读取操作,所述多个读取操作被划分成读取操作序列的当前组和读取操作序列的一或多个其它组;
从所述当前组中选择攻击者读取操作;
存储由所述攻击者读取操作读取的存储器位置的标识符;
响应于确定命令队列包含针对所述存储器的所述部分或所述存储器通道的一或多个主机操作,延迟所述攻击者读取操作的受害者存储器位置的完整性扫描;并且
响应于满足触发条件,执行所述攻击者读取操作的所述受害者位置的经延迟的数据完整性扫描。
16.根据权利要求15所述的系统,其中所述触发条件是所述存储器的所述部分或所述存储器通道是空闲的。
17.根据权利要求15所述的系统,其中所述触发条件是达到所述当前组中的操作的末尾。
18.根据权利要求15所述的系统,其中所述触发条件是延迟阈值。
19.根据权利要求18所述的系统,其中所述延迟阈值是可由命令队列保持的操作数量的倍数。
20.根据权利要求15所述的系统,其中所述处理装置进一步用于:
生成小于或等于N的第一随机数,其中选择所述攻击者读取操作包含选择在所述当前组中由所述第一随机数指示的位置中的读取操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/112,347 | 2020-12-04 | ||
US17/112,347 US11467737B2 (en) | 2020-12-04 | 2020-12-04 | Reducing probabilistic data integrity scan collisions |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114610229A true CN114610229A (zh) | 2022-06-10 |
Family
ID=81848970
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111430377.7A Pending CN114610229A (zh) | 2020-12-04 | 2021-11-29 | 减少概率性数据完整性扫描冲突 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11467737B2 (zh) |
CN (1) | CN114610229A (zh) |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6493270B2 (en) | 1999-07-01 | 2002-12-10 | Micron Technology, Inc. | Leakage detection in programming algorithm for a flash memory device |
US7193901B2 (en) | 2005-04-13 | 2007-03-20 | Intel Corporation | Monitoring the threshold voltage of frequently read cells |
US8291295B2 (en) * | 2005-09-26 | 2012-10-16 | Sandisk Il Ltd. | NAND flash memory controller exporting a NAND interface |
US7593264B2 (en) | 2006-01-09 | 2009-09-22 | Macronix International Co., Ltd. | Method and apparatus for programming nonvolatile memory |
US20080183963A1 (en) | 2007-01-31 | 2008-07-31 | International Business Machines Corporation | System, Method, And Service For Providing A Generic RAID Engine And Optimizer |
US8181089B1 (en) * | 2007-08-24 | 2012-05-15 | Datadirect Networks, Inc. | Method for auto-correction of errors in a solid-state memory system |
US7864588B2 (en) | 2007-09-17 | 2011-01-04 | Spansion Israel Ltd. | Minimizing read disturb in an array flash cell |
US8661218B1 (en) * | 2007-10-18 | 2014-02-25 | Datadirect Networks, Inc. | Method for reducing latency in a solid-state memory system while maintaining data integrity |
CN102203875B (zh) * | 2008-09-30 | 2016-08-03 | Lsi公司 | 使用参考单元的用于存储器器件的软数据生成的方法和装置 |
KR101717644B1 (ko) | 2009-09-08 | 2017-03-27 | 샌디스크 테크놀로지스 엘엘씨 | 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법 |
US8687421B2 (en) * | 2011-11-21 | 2014-04-01 | Sandisk Technologies Inc. | Scrub techniques for use with dynamic read |
KR101811298B1 (ko) * | 2011-12-28 | 2017-12-27 | 삼성전자주식회사 | 랜덤마이져로 씨드를 제공하는 씨드 컨트롤러 및 그것을 포함한 메모리 컨트롤러 |
US9362003B2 (en) * | 2012-03-09 | 2016-06-07 | Sandisk Technologies Inc. | System and method to decode data subject to a disturb condition |
US9274866B2 (en) | 2013-12-09 | 2016-03-01 | International Business Machines Corporation | Programming non-volatile memory using a relaxed dwell time |
US9552171B2 (en) | 2014-10-29 | 2017-01-24 | Sandisk Technologies Llc | Read scrub with adaptive counter management |
KR20160078611A (ko) | 2014-12-24 | 2016-07-05 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 동작 방법 |
US9741421B1 (en) | 2016-04-05 | 2017-08-22 | Micron Technology, Inc. | Refresh circuitry |
US10275541B2 (en) | 2016-08-05 | 2019-04-30 | Micron Technology, Inc. | Proactive corrective actions in memory based on a probabilistic data structure |
US10373695B2 (en) * | 2016-12-30 | 2019-08-06 | Western Digital Technologies, Inc. | Methods and apparatus for read disturb detection and handling |
CN110246533B (zh) | 2018-03-09 | 2020-11-13 | 建兴储存科技(广州)有限公司 | 固态储存装置的失败模式检测方法及错误更正方法 |
KR102499061B1 (ko) | 2018-08-22 | 2023-02-13 | 삼성전자주식회사 | 상 변화 메모리 장치를 포함하는 반도체 메모리 장치 및 상 변화 메모리 장치를 액세스하는 방법 |
KR102610395B1 (ko) | 2019-01-22 | 2023-12-05 | 삼성전자주식회사 | 비휘발성 메모리 장치를 포함하는 메모리 시스템 |
US11287998B2 (en) | 2019-08-02 | 2022-03-29 | Micron Technology, Inc. | Read count scaling factor for data integrity scan |
US20210089385A1 (en) | 2019-09-24 | 2021-03-25 | Micron Technology, Inc. | Imprint recovery management for memory systems |
US11170866B2 (en) | 2019-10-22 | 2021-11-09 | Micron Technology, Inc. | Managing block retirement for temporary operational conditions |
US10950292B1 (en) | 2019-12-11 | 2021-03-16 | Advanced Micro Devices, Inc. | Method and apparatus for mitigating row hammer attacks |
US11372557B2 (en) * | 2020-11-20 | 2022-06-28 | Microsoft Technology Licensing, Llc | Extra-resilient cache for resilient storage array |
-
2020
- 2020-12-04 US US17/112,347 patent/US11467737B2/en active Active
-
2021
- 2021-11-29 CN CN202111430377.7A patent/CN114610229A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220179563A1 (en) | 2022-06-09 |
US11467737B2 (en) | 2022-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11682446B2 (en) | Selective wordline scans based on a data state metric | |
US11762767B2 (en) | Storing highly read data at low impact read disturb pages of a memory device | |
CN115699185A (zh) | 在存储装置上每单元实施可变数目的位 | |
CN113539342A (zh) | 主动读取干扰缓解 | |
US11886736B2 (en) | Memory access threshold based memory management | |
CN116529693A (zh) | 加电时的媒体管理 | |
CN115428083A (zh) | 使用可变预读取电压电平来管理非易失性存储器装置中的写入操作 | |
CN114442920A (zh) | 调整存储器子系统中的可靠性扫描阈值 | |
CN113590023A (zh) | 在多平面存储器装置的单独平面上存储区名称空间中的区 | |
US11699498B2 (en) | Managing probabilistic data integrity scan intervals | |
CN114613405A (zh) | 频繁读取干扰攻击者的标识和高速缓存 | |
US11409599B2 (en) | Managing probabilistic data integrity scans in workloads with localized read patterns | |
CN115910184A (zh) | 基于数据质量改变概率数据完整性扫描的扫描频率 | |
US11467737B2 (en) | Reducing probabilistic data integrity scan collisions | |
US11474738B1 (en) | Probabilistic data integrity scan enhanced by a supplemental data integrity scan | |
CN113093990B (zh) | 存储器子系统处的数据块切换 | |
US20240126448A1 (en) | Adaptive read disturb scan | |
CN115273925B (zh) | 存储器子系统刷新 | |
US11545229B1 (en) | Probabilistic data integrity scan with dynamic scan frequency | |
US20210405913A1 (en) | Host access tracking in a memory sub-system | |
US20230251779A1 (en) | Opportunistic background data integrity scans | |
US20240071522A1 (en) | Read counter adjustment for delaying read disturb scans | |
US11726671B2 (en) | Memory access mode selection | |
US11599300B2 (en) | Voltage threshold prediction-based memory management | |
CN115729453A (zh) | 基于有效存取计数的媒体管理 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |