CN115910184A - 基于数据质量改变概率数据完整性扫描的扫描频率 - Google Patents

基于数据质量改变概率数据完整性扫描的扫描频率 Download PDF

Info

Publication number
CN115910184A
CN115910184A CN202210832968.5A CN202210832968A CN115910184A CN 115910184 A CN115910184 A CN 115910184A CN 202210832968 A CN202210832968 A CN 202210832968A CN 115910184 A CN115910184 A CN 115910184A
Authority
CN
China
Prior art keywords
data integrity
memory
read operations
determining
processing device
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
Application number
CN202210832968.5A
Other languages
English (en)
Inventor
S·谢里菲·德黑兰尼
G·辛格
P·帕拉沙里
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.)
Micron Technology Inc
Original Assignee
Micron Technology 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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN115910184A publication Critical patent/CN115910184A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/30Accessing single arrays
    • G11C29/32Serial access; Scan testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/02Arrangements for writing information into, or reading information out from, a digital store with means for avoiding parasitic signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • G11C29/4401Indication or identification of errors, e.g. for repair for self repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/46Test trigger logic
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C2029/5002Characteristic

Abstract

本公开涉及基于数据质量改变概率数据完整性扫描的扫描频率。示范性方法、设备和系统包含接收多个读取操作。所述读取操作被划分成读取操作序列的当前集合和一或多个其它集合。所述当前集合的大小为第一数目个读取操作。从所述当前集合选择侵入者读取操作。对侵入者的受害者执行数据完整性扫描,并基于第一数据完整性扫描确定第一数据完整性指示符。基于数据完整性指示符,将后续读取操作集合的大小设定为第二数目,所述第二数目小于所述第一数目。

Description

基于数据质量改变概率数据完整性扫描的扫描频率
技术领域
本公开大体上涉及存储器子系统中的读取干扰错误的减轻,且更确切地说,涉及确定和使用用于概率数据完整性扫描方案的动态数据完整性扫描窗口。
背景技术
存储器子系统可包含存储有数据的一或多个存储器装置。存储器装置可以是例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统在存储器装置处存储数据并从存储器装置检索数据。
发明内容
在一个方面,本公开提供一种方法,其包括:接收针对由存储器通道存取的存储器部分的多个读取操作,所述多个读取操作划分成读取操作序列的当前集合和读取操作序列的一或多个其它集合,所述当前集合的大小为第一数目个读取操作;从所述当前集合选择侵入者读取操作;对所述侵入者读取操作的受害者执行数据完整性扫描;基于所述数据完整性扫描确定数据完整性指示符;以及基于所述数据完整性指示符将后续读取操作集合的大小设定为第二数目个读取操作,所述第二数目不同于所述第一数目。
在另一个方面,本公开提供一种包括指令的非暂时性计算机可读存储媒体,所述指令在由处理装置执行时使所述处理装置:接收针对由存储器通道存取的存储器部分的多个读取操作,所述多个读取操作划分成读取操作序列的当前集合和读取操作序列的一或多个其它集合,所述当前集合的大小为第一数目个读取操作;从所述当前集合选择侵入者读取操作;对所述侵入者读取操作的受害者执行数据完整性扫描;基于所述数据完整性扫描确定数据完整性指示符;以及基于所述数据完整性指示符将后续读取操作集合的大小设定为第二数目个读取操作,所述第二数目不同于所述第一数目。
在另一个方面,本公开提供一种系统,其包括:多个存储器装置;及处理装置,其与所述多个存储器装置可操作地耦合以:接收针对由存储器通道存取的存储器部分的多个读取操作,所述多个读取操作划分成读取操作序列的当前集合和读取操作序列的一或多个其它集合,所述当前集合的大小为第一数目个读取操作;从所述当前集合选择侵入者读取操作;对所述侵入者读取操作的受害者执行数据完整性扫描;基于所述数据完整性扫描确定数据完整性指示符,其中所述数据完整性指示符是错误率;以及基于所述数据完整性指示符将后续读取操作集合的大小设定为第二数目个读取操作,所述第二数目不同于所述第一数目。
附图说明
根据下文给出的详细描述并根据本公开的各种实施例的附图,将更充分地理解本公开。然而,图示不应理解为将本公开限于特定实施例,而是仅为了解释和理解。
图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
图2说明根据本公开的一些实施例的管理存储器子系统的一部分的实例。
图3为根据本公开的一些实施例的实施概率数据完整性扫描方案的动态数据完整性扫描频率的实例方法的流程图。
图4为根据本公开的一些实施例的实施概率数据完整性扫描方案的动态数据完整性扫描频率的另一实例方法的流程图。
图5为根据本公开的一些实施例的实施概率数据完整性扫描方案的动态数据完整性扫描频率的另一实例方法的流程图。
图6为根据本公开的一些实施例的实施概率数据完整性扫描方案的动态数据完整性扫描频率的另一实例方法的流程图。
图7是其中可操作本公开的实施例的实例计算机系统的框图。
具体实施方式
本公开的各方面是关于在存储器子系统中实施概率数据完整性扫描方案。存储器子系统可为存储装置、存储器模块或存储装置与存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个组件的存储器子系统,例如存储数据的存储器装置。主机系统可提供将存储在存储器子系统处的数据,并且可请求将从存储器子系统检索的数据。
存储器装置可以为非易失性存储器装置。非易失性存储器装置为一或多个裸片的封装。非易失性存储器装置的一个实例为与非(NAND)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。封装中的裸片可分配给一或多个通道以用于与存储器子系统控制器通信。每一裸片可由一或多个平面组成。平面可分组为逻辑单元(LUN)。对于一些类型的非易失性存储器装置(例如,NAND存储器装置),每一平面由一组物理块组成,所述物理块是用于存储数据的存储器单元的群组。单元为存储信息的电子电路。
取决于单元类型,单元可存储一或多个二进制信息位,且具有与所存储的位数相关的各种逻辑状态。逻辑状态可表示为二进制值,例如“0”和“1”,或此类值的组合。存在各种类型的单元,例如单层级单元(SLC)、多层级单元(MLC)、三层级单元(TLC)和四层级单元(QLC)。例如,SLC可以存储一个信息位且具有两种逻辑状态。
存储器中的数据可靠性可随着存储器装置的密度增加而下降(例如,装置组件在大小上按比例缩小,当每单元编程多个位时,等等)。这种可靠性降低的一个促成因素是读取干扰。当对存储器的一个部分(例如,一行单元)(通常称为侵入者)执行的读取操作影响存储器的另一部分(例如,相邻的一行单元)(通常称为受害者)中的阈值电压时,发生读取干扰。存储器装置对这些干扰的容忍度通常是有限的。足量的读取干扰效应,例如对相邻侵入者单元执行的阈值数目个读取操作,可将存储器的其它/未读取部分中的受害者单元改变为与原始编程不同的逻辑状态,这会导致错误。
存储器系统可通过针对每个存储器子部分使用计数器且当计数器达到阈值时对给定存储器子部分进行重新编程来跟踪读取干扰。通过对存储器部分(例如,裸片、逻辑单元等)中的读取操作集合进行计数或以其它方式跟踪读取操作集合并通过检查每一集合(也被称作窗口)中的经随机选择读取操作的一或多个读取干扰受害者的错误率来执行有限数据完整性扫描,概率数据完整性方案消耗的存储更少。然而,当集合或窗口大小根据存储器可靠性的最坏情况设定为固定值时,概率数据完整性方案的数据完整性扫描频率高于可靠性指标优于最坏情况的存储器部分所需的频率。例如,基于存储器可靠性最坏情况的概率数据完整性扫描可能会导致带宽下降(与使用读取干扰计数器相比),因为并非所有存储器部分都在最坏情况的可靠性水平下执行,所以扫描存储器部分的频率比需要的频率更高。
本公开的各方面通过基于每一存储器部分的可靠性动态地选择所述存储器部分的扫描频率来解决以上及其它不足。较高扫描频率与较小概率数据完整性扫描窗口大小相关,而较低扫描频率与较大概率数据完整性扫描窗口大小相关。例如,可以根据存储器部分的错误率或其它可靠性指标来选择窗口大小。因此,概率数据完整性方案可以根据可靠性的实际量度启动数据完整性扫描,从而降低扫描频率并增加可靠性良好的存储器部分的带宽,同时不牺牲表示最坏情况的那些存储器部分的可靠性覆盖率。
图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的一个实例。如本文所使用,“耦合到……”或“与……耦合”通常是指组件之间的连接,所述连接可以是间接通信连接或直接通信连接(例如,没有中间组件),无论是有线还是无线的,包含例如电连接、光学连接、磁连接等连接。
主机系统120可包含处理器芯片集和由所述处理器芯片集执行的软件堆栈。处理器芯片集可包含一或多个核心、一或多个高速缓存、存储器控制器(例如,NVDIMM控制器)和存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120使用存储器子系统110,例如将数据写入到存储器子系统110以及从存储器子系统110读取数据。
主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于,串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)、小型计算机系统接口(SCSI)、双数据速率(DDR)存储器总线、双列直插式存储器模块(DIMM)接口(例如,支持双数据速率(DDR)的DIMM套接接口)、开放NAND快闪接口(ONFI)、双数据速率(DDR)、低功率双数据速率(LPDDR)或任何其它接口。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可进一步利用NVM高速(NVMe)接口来存取组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。图1说明存储器子系统110作为实例。一般来说,主机系统120可经由同一通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器子系统。
存储器装置130、140可以包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可为但不限于随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(NAND)型快闪存储器和就地写入存储器,例如三维交叉点(“3D交叉点”)存储器装置,所述三维交叉点存储器装置为非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变而执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可进行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元执行编程。NAND型快闪存储器包含例如二维NAND(2D NAND)和三维NAND(3D NAND)。
虽然描述了非易失性存储器装置,如NAND型存储器(例如,2D NAND、3D NAND)和3D交叉点非易失性存储器单元阵列,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)快闪存储器,以及电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器115(或为简单起见称为控制器115)可与存储器装置130通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据和其它此类操作(例如,响应于由控制器115在命令总线上调度的命令)。存储器子系统控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器,或其组合。硬件可包含具有专用(即,硬编码)逻辑的数字电路系统以执行本文中所描述的操作。存储器子系统控制器115可为微控制器、专用逻辑电路(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等),或另一合适的处理器。
存储器子系统控制器115可包含处理装置117(处理器),所述处理装置经配置以执行存储于本地存储器119中的指令。在所说明的实例中,存储器子系统控制器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)组合以在同一存储器装置封装内进行媒体管理的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。
存储器子系统110包含减轻读取干扰和其它数据错误的数据完整性管理器113。在一些实施例中,控制器115包含数据完整性管理器113的至少一部分。例如,控制器115可包含处理器117(处理装置),所述处理器经配置以执行存储在本地存储器119中的指令以用于执行本文中所描述的操作。在一些实施例中,数据完整性管理器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可使用其它测量来表示错误率或数据可靠性,例如电压分布值(例如,读取阈值电压分布)。在一个实施例中,数据完整性管理器113将当前、最近或平均电压分布值与理想或预期电压分布值(例如,由新的或无压力的存储器产生的值)进行比较,差值表示错误率或其它数据可靠性指示。数据完整性管理器113可通过跟踪存储器部件210中的读取操作业务和检查受害者的错误率来跟踪和减轻读取干扰。例如,数据完整性管理器113可选择针对作为用于测试读取干扰的侵入者的字线230的读取操作,且执行字线250和255的读取以确定每一字线的错误率。响应于检测到存储器的给定受害者的错误率满足阈值错误率值,数据完整性管理器113可将数据从存储器的受害者部分迁移到存储器的不同部分。
在一个实施例中,数据完整性管理器113还维持执行数据完整性扫描的数据完整性的一或多个指示符(例如,RBER或其它数据可靠性值)。例如,数据完整性管理器113可将当前数据完整性扫描的RBER值与一或多个所保存的最大RBER值进行比较,且在当前数据完整性扫描的RBER值超出所保存的值时替换所保存的值。数据完整性管理器113使用所保存的代表性数据可靠性值来动态地更新概率读取干扰处置方案的窗口大小。参考图3-5进一步描述概率读取干扰处置方案的这种和其它特征。
图3为根据本公开的一些实施例的实施概率数据完整性扫描方案的动态数据完整性扫描频率的实例方法300的流程图。方法300可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法300由图1的数据完整性管理器113执行。虽然以特定序列或次序展示,但是除非另外规定,否则过程的次序可以修改。因此,应理解说明的实施例仅为实例,且所说明的过程可以不同次序执行,且一些过程可并行地执行。另外,可以在各种实施例中省略一或多个过程。因此,并非在每一实施例中都需要所有过程。其它过程流程是可能的。
在操作305处,处理装置初始化或复位用于跟踪读取操作的处理的计数器。例如,处理装置可将计数器设定为零以开始跟踪读取操作集合中的读取操作的处理。在一个实施例中,处理装置处理读取操作序列集合中的操作。例如,如果一个集合包含10,000个读取操作,那么将计数器初始化或复位到允许其对至少10,000个读取操作计数的状态。然而,每个集合的操作数目是动态值,且在此被称为N。
在操作310处,处理装置接收读取操作请求。读取请求可从一或多个主机系统接收和/或由存储器子系统110内的另一过程产生。处理装置可以异步、连续、分批等方式接收读取操作请求。在一个实施例中,存储器子系统110从一或多个主机系统120接收操作请求且将这些请求存储在命令队列中。处理装置可以处理具有N个操作的集合中来自命令队列和/或在内部产生的读取操作。
在操作315处,处理装置在当前操作集合中选择侵入者操作。当实施概率读取干扰处置方案时,处理装置可通过以下操作来选择当前集合中的侵入者:产生在1到N的范围内的随机数(例如,均匀随机数),并且当读取操作的计数达到当前集合中的随机数时,将当前/最后读取操作识别为侵入者。
在操作320处,处理装置执行读取操作。例如,存储器子系统110通过沿着字线存取存储器单元且将数据返回到主机系统120或启动读取请求的内部过程来读取数据页。另外,处理装置使读取操作计数器增加。例如,处理装置可以响应于完成读取操作而增加计数器,以跟踪当前集合中读取操作序列中的当前位置。
在操作325处,处理装置确定读取操作计数器是否已到达集合中的侵入者操作。例如,处理装置可将计数器的值与所产生的第一随机数相比较以识别当前集合中的侵入者读取操作。如果计数器尚未到达序列中对应于侵入者操作的位置,那么方法300返回到操作320以继续执行下一次读取操作,如上文所描述。如果计数器已到达序列中对应于侵入者操作的位置,那么方法300进行到操作330。
在操作330处,处理装置执行选定侵入者的受害者的完整性扫描。例如,处理装置可执行每一受害者的读取以确定受害者的数据完整性指示符。在一个实施例中,这包含检查受害者的错误率,例如原始位错误率(RBER)。在另一实施例中,确定受害者的数据完整性指示符包含将受害者/经采样存储器部分的阈值电压分布与预期电压分布相比较。如果受害者存储器位置的错误率满足折叠阈值(例如,符合或超过错误率阈值),那么处理装置通过(例如)对受害者存储器位置的数据进行错误校正且将经校正数据写入到新位置来折叠所述数据。
在操作335处,处理装置确定受害者的数据完整性指示符是否大于一或多个当前最大最差值。例如,处理装置可以为存储器部分的数据完整性指示符维持最高的最大错误率值和次高的最大错误率值。然而,对于数据完整性的另一指示符,最差值可能不是最大值。例如,当使用阈值电压分布作为数据可靠性的指示符时,处理装置可以通过确定形状是否单调递增/递减、比较局部极小值、比较直方图的宽度、确定直方图的偏移量(左/右)等等来比较测得的分布值/直方图的“形状”与理想值。作为另一实例,处理装置可以比较阈值电压分布/直方图或其部分的“总体”(例如,在某些读取位置之间)。满足在读取位置之间相比于理想总体具有阈值增加量的最近直方图总体可以作为数据可靠性(或缺乏可靠性)的指示。作为另一实例,处理装置可评估与阈值错误校正极限相比的容限,测量到的容限越低,数据可靠性越差。为了便于描述下面的实例,应该理解,最大值可以与最差值互换使用。
如果受害者的数据完整性指示符大于一或多个当前最差值,那么方法300进行到操作340。如果受害者的数据完整性指示符不大于当前最差值,那么方法300进行到操作345。
处理装置可以为各个存储器子部分(例如,每个裸片/LUN、平面、独立字线段、字线组、LUN组、块或块组等)维持一或多个最差值。在一个实施例中,处理装置确定平均值或其它指示符组合,以反映存储器子部分的最差值。例如,处理装置可确定LUN中的每一存储器块的数据完整性指示符,且将数据完整性指示符平均或组合为整个LUN的指示符。在一个实施例中,基于使用粒度,处理装置针对所述部分存储器的每个唯一子部分维持最差值。例如,如果每个LUN维持最差值,那么处理装置可维持每一存储器块的最差值,同一块无法既提供最差值又提供第二差值。
在操作340处,处理装置更新一或多个最差/最大值以反映新的最差/最大值。例如,当受害者的数据完整性指示符大于当前最高最大值时,处理装置将当前最高最大值降级为新的次高最大值,且将受害者的数据完整性指示符设定为新的当前最高最大值。当受害者的数据完整性指示符大于次高最大值(而非最高最大值)时,处理装置将受害者的数据完整性指示符设定为新的次高最大值(例如,替换以前的值)。当现有最差/最大值用于与受害者相同的存储器块/子部分时,处理装置用受害者的数据完整性指示符替换所述最差/最大值,且在适用时,可对最差和第二差值重新排序。
在操作345处,处理装置确定当前最差/最大值是否满足一或多个阈值。例如,处理装置可以通过一或多个阈值将数据完整性值的范围划分为子范围,并且每个子范围可以与不同的数据完整性扫描窗口大小相关联。处理装置通过当前最大值超过、等于或低于给定阈值来确定当前最大值是否落在一个子范围内。数据完整性值的范围可例如从零错误率跨到折叠阈值。
作为简单实例,数据完整性值的范围可划分成两个子范围:低范围及高范围,所述低范围对应于大数据完整性扫描窗口大小,且所述高范围对应于小数据完整性扫描窗口大小。可将所述低范围定义为包含在零与动态窗口阈值之间的错误率值,且可将所述高范围定义为包含动态窗口阈值与折叠阈值之间的错误率值。
在一个实施例中,单个动态窗口阈值可划分子范围,并且小于此阈值的当前最大值属于低范围,大于此阈值的当前最大值属于高范围。在另一实施例中,两个动态窗口阈值可划分子范围,并且所使用的阈值可基于先前最大值视当前子范围而定。例如,当先前最大值属于低范围时,大阈值可用来触发从低范围到高范围的移动,而小阈值可用来触发从高范围到低范围的移动。因此,不同阈值可更适当地触发数据完整性扫描窗口大小的改变。
在一个实施例中,处理装置实施动态窗口大小,所述动态窗口大小允许窗口大小快速收缩但缓慢增长。例如,处理装置可在使用小于当前窗口大小的经更新窗口大小之前插入延迟(时间、集合的数目等)。此延迟可允许后续集合更改最差/最大值且可能消除窗口大小的减小。因此,处理装置可避免窗口大小的急剧波动。在一个实施例中,插入的延迟量随以下而变:(1)在存储器或存储器部分上执行的编程/擦除(P/E)循环数和/或(2)块类型(SLC、MLC、TLC等)。例如,P/E循环数越大或块的密度越大,由处理装置选择的延迟就越大。
如果当前最大值满足一或多个动态窗口阈值(例如,将使处理装置基于数据完整性值的当前范围触发数据完整性扫描窗口大小的改变),那么方法300进行到操作350。如果当前最大值不满足一或多个阈值(例如,数据完整性值的先前范围未改变),那么方法进行到操作355。
在操作350处,处理装置更新下一操作集合的集合大小。例如,响应于当前最大值满足阈值,并且因此属于数据完整性值的新范围,处理装置通过更新每个集合的操作数N来改变数据完整性扫描窗口大小,从下一个集合开始,或者如果延迟,则从另一个后续集合开始。当前集合继续使用N的当前值,而处理装置存储要应用于下一集合的N(或增量)的更新值。因此,处理装置可在数据完整性指示符的最大值增加时减小窗口大小以扫描更多受害者,并且在数据完整性指示符的最大值减少时增加窗口大小以扫描更少受害者。在动态窗口大小改变为双向的情况下,实施例可将N的初始值(例如,在电力循环之后)设定为小窗口大小或设定为大窗口大小,且允许后续集合按需要动态调整窗口大小。在一个实施例中,处理装置将N的当前值存储在非易失性存储器中,且N的所述值在电力循环之后使用。
在操作355处,处理装置确定读取操作计数器是否已到达当前集合的末尾。例如,处理装置可将计数器的值与当前集合的N的值进行比较。如果读取操作计数器已到达当前集合的末尾,那么方法300进行到操作305以复位计数器(例如,复位到下一集合的N的值)且处理下一读取操作集合。如果读取操作计数器尚未到达当前集合的末尾,那么方法300进行到操作360。
在操作360处,处理装置执行读取操作且使读取操作计数器增加,如上文参考操作325所描述。方法300进行到操作355以再次确定读取操作计数器是否已到达当前集合的末尾。
在一个实施例中,响应于满足数据完整性指示符最大值的阈值、满足数据完整性指示符最大值的阈值达阈值次数、满足编程/擦除循环的阈值数目等,处理装置停用数据完整性扫描窗口的动态特征。因此,处理装置在后续集合中绕过操作335-350。
图4为根据本公开的一些实施例的实施概率数据完整性扫描方案的动态数据完整性扫描频率的另一实例方法的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法400由图1的数据完整性管理器113执行。虽然以特定序列或次序展示,但是除非另外规定,否则过程的次序可以修改。因此,应理解说明的实施例仅为实例,且所说明的过程可以不同次序执行,且一些过程可并行地执行。另外,可以在各种实施例中省略一或多个过程。因此,并非在每一实施例中都需要所有过程。其它过程流程是可能的。
在操作405处,处理装置接收折叠操作。例如,处理装置可以接收将数据复制到新位置的请求或操作,以响应于确定数据完整性指示符满足折叠阈值或另一内部垃圾收集过程。
在操作410处,处理装置确定进行折叠操作的存储器位置是否映射到数据完整性指示符的当前最差/最大值。例如,除如上文所描述保存最大值之外,处理装置还可保存最大值与已进行数据完整性扫描的存储器位置的地址或其它识别之间的映射,所述数据完整性扫描确定了数据完整性指示符的最大值。如果进行折叠操作的存储器位置映射到数据完整性指示符的当前最大值,那么方法400进行到操作415。如果进行折叠操作的存储器位置未映射到数据完整性指示符的当前最大值,那么方法400进行到操作420。
在操作415处,处理装置响应于折叠操作而更新最差/最大值。例如,如果折叠操作映射到最高最大值,则处理装置将使用第二差/次高最大值覆盖最高最大值(提升次高值)。在一个实施例中,处理装置删除次高值,将其标记为需要更新,或者以其它方式备注提升。作为另一实例,如果折叠操作映射到次高最大值,则处理装置删除次高值,将其标记为需要更新,或以其它方式备注次高值不再有效。在任一情境中,处理装置可使用后续数据完整性扫描来再次添加第二最大值,如上文所描述。虽然上文所阐述的实例涉及两个最差/最大值,但实施例可维持和使用多于两个最差/最大值。
在操作420处,处理装置执行折叠操作。例如,处理装置从源位置读取数据且将数据写入到目标位置。此折叠操作可用于减少将来读取数据时发生错误的可能性、释放存储器的可写入单元等。
图5为根据本公开的一些实施例的实施概率数据完整性扫描方案的动态数据完整性扫描频率的另一实例方法的流程图。方法500可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法500由图1的数据完整性管理器113执行。虽然以特定序列或次序展示,但是除非另外规定,否则过程的次序可以修改。因此,应理解说明的实施例仅为实例,且所说明的过程可以不同次序执行,且一些过程可并行地执行。另外,可以在各种实施例中省略一或多个过程。因此,并非在每一实施例中都需要所有过程。其它过程流程是可能的。
在操作505处,处理装置初始化或复位用于跟踪读取操作的处理的计数器。例如,处理装置可将计数器设定为零以开始跟踪读取操作集合中的读取操作的处理。在一个实施例中,处理装置处理读取操作序列集合中的操作。例如,如果一个集合包含10,000个读取操作,那么将计数器初始化或复位到允许其对至少10,000个读取操作计数的状态。然而,每个集合的操作数目是动态值,且在此被称为N。
在操作510处,处理装置接收读取操作请求。读取请求可从一或多个主机系统接收和/或由存储器子系统110内的另一过程产生。处理装置可以异步、连续、分批等方式接收读取操作请求。在一个实施例中,存储器子系统110从一或多个主机系统120接收操作请求且将这些请求存储在命令队列中。处理装置可以处理具有N个操作的集合中来自命令队列和/或在内部产生的读取操作。
在操作515处,处理装置在当前操作集合中选择侵入者操作。当实施概率读取干扰处置方案时,处理装置可通过以下操作来选择当前集合中的侵入者:产生在1到N的范围内的随机数(例如,均匀随机数),并且当读取操作的计数达到当前集合中的随机数时,将当前/最后读取操作识别为侵入者。
在操作520处,处理装置执行读取操作。例如,存储器子系统110通过沿着字线存取存储器单元且将数据返回到主机系统120或启动读取请求的内部过程来读取数据页。另外,处理装置使读取操作计数器增加。例如,处理装置可以响应于完成读取操作而增加计数器,以跟踪当前集合中读取操作序列中的当前位置。
在操作525处,处理装置确定读取操作计数器是否已到达集合中的侵入者操作。例如,处理装置可将计数器的值与所产生的第一随机数相比较以识别当前集合中的侵入者读取操作。如果计数器尚未到达序列中对应于侵入者操作的位置,那么方法500返回到操作520以继续执行下一次读取操作,如上文所描述。如果计数器已到达序列中对应于侵入者操作的位置,那么方法500进行到操作530。
在操作530处,处理装置执行选定侵入者的受害者的完整性扫描。例如,处理装置可执行每一受害者的读取以确定受害者的数据完整性指示符。在一个实施例中,这包含检查受害者的错误率,例如原始位错误率(RBER)。在另一实施例中,确定受害者的数据完整性指示符包含将受害者/经采样存储器部分的阈值电压分布与预期电压分布相比较。当使用阈值电压分布作为数据可靠性的指示符时,处理装置可以通过确定形状是否单调递增/递减、比较局部极小值、比较直方图的宽度、确定直方图的偏移量(左/右)等来比较测得的分布值/直方图的“形状”与理想值。作为另一实例,处理装置可以比较阈值电压分布/直方图或其部分的“总体”(例如,在某些读取位置之间)。满足在读取位置之间相比于理想总体具有阈值增加量的最近直方图总体可以作为数据可靠性(或缺乏可靠性)的指示。作为另一实例,处理装置可评估与阈值错误校正极限相比的容限,测量到的容限越低,数据可靠性越差。为了便于描述下面的实例,应该理解,最大值可以与最差值互换使用。
如果受害者存储器位置的错误率满足折叠阈值(例如,符合或超过错误率阈值),那么处理装置通过(例如)对受害者存储器位置的数据进行错误校正且将经校正数据写入到新位置来折叠所述数据。
处理装置可以为各个存储器子部分(例如,每个裸片/LUN、平面、独立字线段、字线组、LUN组、块或块组等)维持一或多个数据完整性值。在一个实施例中,处理装置确定平均值或其它指示符组合,以反映存储器子部分的数据完整性值。例如,处理装置可确定LUN中的每一存储器块的数据完整性指示符,且将数据完整性指示符平均或组合为整个LUN的指示符。
在操作535处,处理装置确定受害者的数据完整性指示符是否满足滞后范围。例如,处理装置可使用存储器部分的数据完整性值范围,且所述范围内的数据完整性指示符可触发对数据完整性扫描频率的更新。使用错误率继续此实例,低于滞后范围最小值的错误率将不会触发窗口大小/扫描频率的改变。另外,高于滞后范围最大值的错误率可触发对经扫描存储器部分的数据的折叠,如上文所描述,而非对窗口大小/扫描频率的更新。
如果受害者的数据完整性指示符满足/处于滞后范围内,那么方法500进行到操作540。如果受害者的数据完整性指示符不满足/不处于滞后范围内,那么方法500进行到操作550。在另一实施例中,处理装置绕过操作535并进行到操作540。
在操作540处,处理装置使用数据完整性指示符确定当前比例因子。处理装置还可使用数据完整性指示符和所述存储器部分的编程/擦除循环(PEC)数来确定当前比例因子。在一个实施例中,处理装置使用具有数据完整性指示符和PEC的加权公式作为输入。例如,可使用基于经加权指数曲线的公式确定当前比例因子(CSF),例如:
Figure BDA0003746238900000141
W1和W2表示不同的权重值。在一个实施例中,W1和W2为固定值。在另一实施例中,W1和W2为基于PEC值(在PEC最大值和PEC最小值之间)范围和对应于所述范围的默认窗口大小的比率的动态值。例如,以下公式可用于推导权重:
W1=(PEC Max-PEC Min)/(10×默认窗口大小)
W2=(PEC Max-PEC Min)/(默认窗口大小)。
可以按工作负载分配针对存储器子系统的读取。因此,LUN中的几个块/页与其它块/页相比可具有更高数目的读取。因此,错误率(或数据完整性的其它指示符)可显著变化,即使在单个LUN内也如此。另外,特定字线或其它存储器部分可能比其它部分更容易发生数据完整性问题。块或其它存储器部分的折叠可使得存储器部分的错误率(或数据完整性的其它指示符)显著降低。鉴于这些因素,取决于选定侵入者和对应的受害者,数据完整性的指示可存在显著差异/变化。实施例可使用滞后方案以避免窗口大小中的剧烈波动。在一个实施例中,处理装置基于历史比例因子(HSF)修改当前比例因子。例如,处理装置可使用用于窗口大小的最近调适的比例因子(作为HSF)以及当前比例因子。例如,以下公式可用于修改CSF:
经修改CSF=(W3×HSF)+(W4×CSF)。
W3和W4表示不同的权重值。在一个实施例中,W3大于W4(以偏置历史比例因子并减小当前比例因子的变化),且W3+W4=1。在一个实施例中,W3和W4为固定值。在另一实施例中,W3和W4为基于数据完整性指示符的动态值。例如,随着数据完整性指示符接近折叠阈值,W3将增加且w4将减小。
在操作545处,处理装置更新下一操作集合的集合大小。例如,处理装置通过更新每个集合的操作数N而改变数据完整性扫描窗口大小,从下一个集合开始,或者如果延迟,则从另一个后续集合开始。在一个实施例中,处理装置通过将CSF(或经修改CSF)乘以N的当前值来确定N的更新值。当前集合继续使用N的当前值,而处理装置存储要应用于下一集合的N(或CSF)的更新值。因此,处理装置可在数据完整性指示符的值增加时减小窗口大小以扫描更多的受害者,并且在数据完整性指示符的值减少时增加窗口大小以扫描更少的受害者。在动态窗口大小改变为双向的情况下,实施例可将N的初始或默认值(例如,在电力循环之后)设定为小窗口大小或设定为大窗口大小,且允许后续集合按需要动态调整窗口大小。在一个实施例中,基于存储器部分的表征数据(例如,在制造时确定或作为制造后测试的结果)、存储器部分的工作负载类型和/或PEC的数目而设定N的默认值。在一个实施例中,处理装置将N的当前值存储在非易失性存储器中,且N的所述值在电力循环之后使用。
在操作550处,处理装置确定读取操作计数器是否已到达当前集合的末尾。例如,处理装置可将计数器的值与当前集合的N的值进行比较。如果读取操作计数器已到达当前集合的末尾,那么方法500进行到操作505以复位计数器(例如,复位到下一集合的N的值)且处理下一读取操作集合。如果读取操作计数器尚未到达当前集合的末尾,那么方法500进行到操作560。
在操作555处,处理装置执行读取操作且使读取操作计数器增加,如上文参考操作525所描述。方法500进行到操作550以再次确定读取操作计数器是否已到达当前集合的末尾。
图6为根据本公开的一些实施例的实施概率数据完整性扫描方案的动态数据完整性扫描频率的另一实例方法的流程图。方法600可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法600由图1的数据完整性管理器113执行。虽然以特定序列或次序展示,但是除非另外规定,否则过程的次序可以修改。因此,应理解说明的实施例仅为实例,且所说明的过程可以不同次序执行,且一些过程可并行地执行。另外,可以在各种实施例中省略一或多个过程。因此,并非在每一实施例中都需要所有过程。其它过程流程是可能的。
在操作605处,处理装置接收读取操作,例如,如参考操作310或510所描述。处理装置将读取操作划分为读取操作的集合。例如,处理装置可使用计数器来跟踪每个集合待执行的操作数N。
在操作610,处理装置在当前操作集合中选择侵入者读取操作,例如,如参考操作315或515所描述。处理装置可随机选择当前集合中的读取操作以将一或多个受害者识别为数据完整性扫描的对象。
在操作615处,处理装置执行受害者存储器位置的数据完整性扫描。例如,处理装置可以执行对受害者的读取,以检查每个受害者的错误率,如上文关于操作330或530所描述。
在操作620处,基于扫描确定数据完整性指示符。例如,处理装置确定受害者/经采样存储器部分的RBER或阈值电压分布,如上文关于操作330或530所描述。
在操作625处,处理装置基于数据完整性指示符将后续读取操作集合的大小设定为第二/不同数目的读取操作。例如,处理装置可以更新一或多个后续集合的集合大小N,如上文关于操作350或545所描述。
虽然以上实例集中于基于最差数据完整性值动态地选择数据完整性扫描频率,但其它实施例可基于P/E循环数或类似的数据可靠性指示符动态地调整扫描频率。例如,处理装置可将存储器部分/子部分的当前P/E循环数与一或多个阈值相比较并针对P/E循环的不同范围更新扫描频率。
图7说明计算机系统700的实例机器,所述实例机器内可执行用于使得所述机器执行本文中所论述的方法中的任何一或多种的指令集合。在一些实施例中,计算机系统700可对应于包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)的主机系统(例如,图1的主机系统120),或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的数据完整性管理器113的操作)。在替代性实施例中,机器可连接(例如联网)到LAN、内联网、外联网和/或互联网中的其它机器。机器可作为客户端-服务器网络环境中的服务器或客户端机器、作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而进行操作。
所述机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络设备、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定待由所述机器采取的动作的指令集合的任何机器。此外,虽然说明了单个机器,但术语“机器”还应被认为包含机器的任何集合,所述机器单独地或共同地执行一个指令集(或多个指令集)以执行本文中所论述的方法中的任何一或多个。
实例计算机系统700包含处理装置702、主存储器704(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器706(例如,快闪存储器、静态随机存取存储器(SRAM)等)和数据存储系统718,它们经由总线730彼此通信。
处理装置702表示一或多个通用处理装置,例如微处理器、中央处理单元等。更具体地说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置702也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置702经配置以执行指令726,以用于执行本文中所论述的操作和步骤。计算机系统700可进一步包含通过网络720通信的网络接口装置708。
数据存储系统718可包含机器可读存储媒体724(也称为计算机可读媒体),在其上存储有一或多组指令726或体现本文中所描述的方法或功能中的任何一或多种的软件。指令726还可在其由计算机系统700执行期间完全或至少部分地驻留在主存储器704内和/或处理装置702内,主存储器704和处理装置702也构成机器可读存储媒体。机器可读存储媒体724、数据存储系统718和/或主存储器704可对应于图1的存储器子系统110。
在一个实施例中,指令726包含实施对应于数据完整性管理器(例如,图1的数据完整性管理器113)的功能性的指令。虽然在实例实施例中机器可读存储媒体724展示为单个媒体,但应认为术语“机器可读存储媒体”包含存储一或多个指令集的单个媒体或多个媒体。还应认为术语“机器可读存储媒体”包含能够存储或编码供机器执行且使得机器执行本公开方法中的任何一或多种的指令集的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体和磁性媒体。
已依据计算机存储器内的数据位的操作的算法和符号表示呈现了先前详细描述的一些部分。这些算法描述和表示为数据处理领域的技术人员用于将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。算法在这里且通常认为是引起所需结果的操作的自洽序列。操作为需要对物理量进行物理操纵的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操纵的电或磁信号的形式。有时,主要出于通用的原因,已证明将这些信号称为位、值、元件、符号、字符、术语、数字等是方便的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅为应用于这些量的方便标签。本公开可指将计算机系统的寄存器和存储器内的表示为物理(电子)量的数据操控和变换为计算机系统存储器或寄存器或其它此类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
本公开还涉及用于执行本文中的操作的设备。此设备可以出于既定目的而专门构造,或者其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。例如,计算机系统或其它数据处理系统(例如控制器115)可响应于其处理器执行存储器或其它非暂时性机器可读存储媒体中所含的计算机程序(例如,指令序列)而执行计算机实施的方法300-600。此类计算机程序可存储于计算机可读存储媒体中,例如但不限于任何类型的盘(包含软盘、光盘、CD-ROM和磁性光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适合于存储电子指令的任何类型的媒体,它们各自耦合到计算机系统总线。
本文中呈现的算法和显示本质上不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或者其可证明构造更专用的设备来执行方法是方便的。将如下文描述中所示呈现用于这些各种系统的结构。另外,不参考任何特定编程语言描述本公开。应了解,可使用各种编程语言来实施如本文所描述的本公开的教示。
本公开可提供为计算机程序产品或软件,所述计算机程序产品或软件可包含其上存储有可用以对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前述说明书中,已经参考本公开的特定实例实施例描述了本公开的实施例。将显而易见的是,可在不脱离如所附权利要求书中所阐述的本公开的实施例的更广泛精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。

Claims (20)

1.一种方法,其包括:
接收针对由存储器通道存取的存储器部分的多个读取操作,所述多个读取操作划分成读取操作序列的当前集合和读取操作序列的一或多个其它集合,所述当前集合的大小为第一数目个读取操作;
从所述当前集合选择侵入者读取操作;
对所述侵入者读取操作的受害者执行数据完整性扫描;
基于所述数据完整性扫描确定数据完整性指示符;以及
基于所述数据完整性指示符将后续读取操作集合的大小设定为第二数目个读取操作,所述第二数目不同于所述第一数目。
2.根据权利要求1所述的方法,其进一步包括:
响应于确定所述第一数据完整性指示符大于存储器子部分的数据完整性指示符的当前最大值,将所述当前最大值设定为所述第一数据完整性指示符,其中响应于确定所述当前最大值满足第一阈值,将所述后续读取操作集合的所述大小设定为所述第二数目。
3.根据权利要求2所述的方法,其进一步包含:
从所述后续集合选择第二侵入者读取操作;
对来自所述后续集合的所述第二侵入者读取操作的受害者执行第二数据完整性扫描;
基于所述第二数据完整性扫描确定第二数据完整性指示符;以及
响应于确定所述第二数据完整性指示符大于存储器子部分的数据完整性指示符的第二最大值,将所述第二最大值设定为所述第二数据完整性指示符。
4.根据权利要求3所述的方法,其进一步包括:
响应折叠所述第一侵入者读取操作的所述受害者,将所述当前最大值设定为所述第二最大值;以及
响应于确定所述当前最大值不再满足所述第一阈值,将后续读取操作集合的大小设定为所述第一数目个读取操作。
5.根据权利要求1所述的方法,其进一步包括:
使用所述数据完整性指示符和所述存储器部分的编程擦除循环数来确定比例因子,其中使用所述比例因子将所述后续读取操作集合的所述大小设定为所述第二数目。
6.根据权利要求5所述的方法,其中响应于确定所述数据完整性指示符在滞后范围内而执行确定所述比例因子。
7.根据权利要求5所述的方法,所述确定所述比例因子包括:
确定第一和第二乘积值的总和,所述第一乘积值是通过将历史比例因子值乘以第一权重而产生的,且所述第二乘积值是通过将当前比例因子乘以第二权重而产生的。
8.一种包括指令的非暂时性计算机可读存储媒体,所述指令在由处理装置执行时使所述处理装置:
接收针对由存储器通道存取的存储器部分的多个读取操作,所述多个读取操作划分成读取操作序列的当前集合和读取操作序列的一或多个其它集合,所述当前集合的大小为第一数目个读取操作;
从所述当前集合选择侵入者读取操作;
对所述侵入者读取操作的受害者执行数据完整性扫描;
基于所述数据完整性扫描确定数据完整性指示符;以及
基于所述数据完整性指示符将后续读取操作集合的大小设定为第二数目个读取操作,所述第二数目不同于所述第一数目。
9.根据权利要求8所述的非暂时性计算机可读存储媒体,其中所述处理装置进一步进行以下操作:
响应于确定所述第一数据完整性指示符大于存储器子部分的数据完整性指示符的当前最大值,将所述当前最大值设定为所述第一数据完整性指示符,其中响应于确定所述当前最大值满足第一阈值,将所述后续读取操作集合的所述大小设定为所述第二数目。
10.根据权利要求9所述的非暂时性计算机可读存储媒体,其中所述处理装置进一步进行以下操作:
从所述后续集合选择第二侵入者读取操作;
对来自所述后续集合的所述第二侵入者读取操作的受害者执行第二数据完整性扫描;
基于所述第二数据完整性扫描确定第二数据完整性指示符;以及
响应于确定所述第二数据完整性指示符大于存储器子部分的数据完整性指示符的第二最大值,将所述第二最大值设定为所述第二数据完整性指示符。
11.根据权利要求10所述的非暂时性计算机可读存储媒体,其中所述处理装置进一步进行以下操作:
响应折叠所述第一侵入者读取操作的所述受害者,将所述当前最大值设定为所述第二最大值;以及
响应于确定所述当前最大值不再满足所述第一阈值,将后续读取操作集合的大小设定为所述第一数目个读取操作。
12.根据权利要求8所述的非暂时性计算机可读存储媒体,其中所述处理装置进一步进行以下操作:
使用所述数据完整性指示符和所述存储器部分的编程擦除循环数来确定比例因子,其中使用所述比例因子将所述后续读取操作集合的所述大小设定为所述第二数目。
13.根据权利要求12所述的非暂时性计算机可读存储媒体,其中响应于确定所述数据完整性指示符在滞后范围内而执行确定所述比例因子。
14.根据权利要求12所述的非暂时性计算机可读存储媒体,所述确定所述比例因子包括:
确定第一和第二乘积值的总和,所述第一乘积值是通过将历史比例因子值乘以第一权重而产生的,且所述第二乘积值是通过将当前比例因子乘以第二权重而产生的。
15.一种系统,其包括:
多个存储器装置;及
处理装置,其与所述多个存储器装置可操作地耦合以:
接收针对由存储器通道存取的存储器部分的多个读取操作,所述多个读取操作划分成读取操作序列的当前集合和读取操作序列的一或多个其它集合,所述当前集合的大小为第一数目个读取操作;
从所述当前集合选择侵入者读取操作;
对所述侵入者读取操作的受害者执行数据完整性扫描;
基于所述数据完整性扫描确定数据完整性指示符,其中所述数据完整性指示符是错误率;以及
基于所述数据完整性指示符将后续读取操作集合的大小设定为第二数目个读取操作,所述第二数目不同于所述第一数目。
16.根据权利要求15所述的系统,其中所述处理装置进一步进行以下操作:
响应于确定所述第一数据完整性指示符大于存储器子部分的数据完整性指示符的当前最大值,将所述当前最大值设定为所述第一数据完整性指示符,其中响应于确定所述当前最大值满足第一阈值,将所述后续读取操作集合的所述大小设定为所述第二数目。
17.根据权利要求16所述的系统,其中所述处理装置进一步进行以下操作:
从所述后续集合选择第二侵入者读取操作;
对来自所述后续集合的所述第二侵入者读取操作的受害者执行第二数据完整性扫描;
基于所述第二数据完整性扫描确定第二数据完整性指示符;以及
响应于确定所述第二数据完整性指示符大于存储器子部分的数据完整性指示符的第二最大值,将所述第二最大值设定为所述第二数据完整性指示符。
18.根据权利要求17所述的系统,其中所述处理装置进一步进行以下操作:
响应于折叠所述第一侵入者读取操作的所述受害者,将所述当前最大值设定为所述第二最大值;以及
响应于确定所述当前最大值不再满足所述第一阈值,将后续读取操作集合的大小设定为所述第一数目个读取操作。
19.根据权利要求15所述的系统,其中所述处理装置进一步进行以下操作:
使用所述数据完整性指示符和所述存储器部分的编程擦除循环数来确定比例因子,其中使用所述比例因子将所述后续读取操作集合的所述大小设定为所述第二数目。
20.根据权利要求19所述的系统,其中响应于确定所述数据完整性指示符在滞后范围内而执行确定所述比例因子。
CN202210832968.5A 2021-08-09 2022-07-14 基于数据质量改变概率数据完整性扫描的扫描频率 Pending CN115910184A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/397,853 2021-08-09
US17/397,853 US11694758B2 (en) 2021-08-09 2021-08-09 Changing scan frequency of a probabilistic data integrity scan based on data quality

Publications (1)

Publication Number Publication Date
CN115910184A true CN115910184A (zh) 2023-04-04

Family

ID=85153430

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210832968.5A Pending CN115910184A (zh) 2021-08-09 2022-07-14 基于数据质量改变概率数据完整性扫描的扫描频率

Country Status (2)

Country Link
US (1) US11694758B2 (zh)
CN (1) CN115910184A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11922029B2 (en) * 2022-06-02 2024-03-05 Micron Technology, Inc. Modified read counter incrementing scheme in a memory sub-system

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994019748A2 (en) 1993-01-11 1994-09-01 Central Point Software, Inc. Method of transferring data using dynamic data block sizing
KR101518039B1 (ko) 2008-12-08 2015-05-07 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
KR101556779B1 (ko) 2009-04-17 2015-10-02 삼성전자주식회사 저장 장치의 액세스 방법
US8719401B1 (en) 2010-07-12 2014-05-06 Vmware, Inc. Decentralized input/output resource management
US8516315B2 (en) 2010-09-03 2013-08-20 Stmicroelectronics International N.V. Testing of non stuck-at faults in memory
US9727272B2 (en) 2012-01-31 2017-08-08 International Business Machines Corporation Increased destaging efficiency for smoothing of destage tasks based on speed of disk drives
US9160386B2 (en) 2013-04-05 2015-10-13 Qualcomm Incorporated Non-linear interference cancellation across aggressor transmitters and victim receivers
US9513982B1 (en) 2014-04-09 2016-12-06 Seagate Technology Llc Methods and systems for reducing decoder error floor for an electronic non-volatile computer storage apparatus
US9640242B1 (en) 2015-12-02 2017-05-02 Qualcomm Incorporated System and method for temperature compensated refresh of dynamic random access memory
US10331573B2 (en) 2016-11-04 2019-06-25 Oracle International Corporation Detection of avoidable cache thrashing for OLTP and DW workloads
US10482983B2 (en) 2016-12-22 2019-11-19 Seagate Technology Llc Read disturb detection based on dynamic bit error rate estimation
US10340016B2 (en) * 2017-06-26 2019-07-02 Micron Technology, Inc. Methods of error-based read disturb mitigation and memory devices utilizing the same
KR102499061B1 (ko) 2018-08-22 2023-02-13 삼성전자주식회사 상 변화 메모리 장치를 포함하는 반도체 메모리 장치 및 상 변화 메모리 장치를 액세스하는 방법
KR102586786B1 (ko) 2018-09-28 2023-10-11 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
KR102576373B1 (ko) 2018-09-28 2023-09-07 에스케이하이닉스 주식회사 저장 공간을 동적으로 할당하는 제어 장치 및 이를 포함하는 데이터 저장 장치
US11086565B2 (en) 2018-10-01 2021-08-10 International Business Machines Corporation Reducing effects of read array operations of read apparent voltage
US10896123B2 (en) * 2018-12-13 2021-01-19 Western Digital Technologies, Inc. Enhancing the effectiveness of read scan performance and reliability for non-volatile memory
US11361831B2 (en) 2020-04-13 2022-06-14 Micron Technology, Inc. Proactive read disturb mitigation

Also Published As

Publication number Publication date
US11694758B2 (en) 2023-07-04
US20230039624A1 (en) 2023-02-09

Similar Documents

Publication Publication Date Title
CN115699185A (zh) 在存储装置上每单元实施可变数目的位
US11837291B2 (en) Voltage offset bin selection by die group for memory devices
WO2023018514A1 (en) Probabilistic data integrity scan with an adaptive scan frequency
CN115148267A (zh) 基于块族的电压分布参数来避免错误
CN115148266A (zh) 基于块的电压分布参数来避免错误
CN114596889A (zh) 管理概率数据完整性扫描间隔
CN114613405A (zh) 频繁读取干扰攻击者的标识和高速缓存
CN115910184A (zh) 基于数据质量改变概率数据完整性扫描的扫描频率
US11960740B2 (en) Implementing automatic rate control in a memory sub-system
US11853556B2 (en) Combining sets of memory blocks in a memory device
CN114842898A (zh) 基于电压分布参数的错误避免
US11068168B2 (en) Managing storage performance consistency with feedback control
US11545229B1 (en) Probabilistic data integrity scan with dynamic scan frequency
US11467897B1 (en) Adaptive data integrity scan frequency
US11823722B2 (en) Determining voltage offsets for memory read operations
US11675529B2 (en) Threshold voltage determination for calibrating voltage bins of a memory device
US11947452B2 (en) Controlling variation of valid data counts in garbage collection source blocks
US20230205450A1 (en) Voltage threshold prediction-based memory management
US20240071522A1 (en) Read counter adjustment for delaying read disturb scans
US20230064781A1 (en) Dynamic buffer limit for at-risk data
US20240053901A1 (en) Adaptive bitline voltage for memory operations
CN114610229A (zh) 减少概率性数据完整性扫描冲突
CN115525215A (zh) 存储器存取模式选择

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication