CN112445646B - 推迟的纠错奇偶校验计算 - Google Patents
推迟的纠错奇偶校验计算 Download PDFInfo
- Publication number
- CN112445646B CN112445646B CN202010879598.1A CN202010879598A CN112445646B CN 112445646 B CN112445646 B CN 112445646B CN 202010879598 A CN202010879598 A CN 202010879598A CN 112445646 B CN112445646 B CN 112445646B
- Authority
- CN
- China
- Prior art keywords
- error correction
- correction parity
- blocks
- memory subsystem
- memory
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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
- G06F3/0673—Single storage device
-
- 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
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本申请涉及推迟的纠错奇偶校验计算。本公开的各方面配置系统组件,诸如存储器子系统控制器,以推迟针对存储器子系统的存储器组件的块执行纠错奇偶校验计算。特别地,一些实施例的存储器子系统控制器可以推迟(例如,延迟)纠错奇偶校验计算的执行,并且可以推迟纠错奇偶校验计算以使得其在存储器子系统满足空闲状态条件时执行。
Description
技术领域
本公开的实施例整体涉及存储器子系统,并且更具体地,涉及存储器子系统中的纠错奇偶校验计算。
背景技术
存储器子系统可以是存储系统,诸如固态驱动器(SSD),并且可以包括一或多个存储数据的存储器组件。存储器组件可以是例如非易失性存储器组件和易失性存储器组件。通常,主机系统可以利用存储器子系统在存储器组件处存储数据并从存储器组件中检索数据。
发明内容
根据本公开的实施例,提供了一种方法,其包含:接收将用户数据写入存储器子系统的一组存储器组件的请求;响应于所述请求:将所述用户数据写入所述一组存储器组件的一组块中,与此同时推迟对所述一组块执行一组纠错奇偶校验计算;以及更新跟踪数据以指示所述一组块正在等待至少一个纠错奇偶校验计算的执行;确定所述存储器子系统是否满足空闲状态条件;以及基于所述跟踪数据或确定所述存储器子系统是否满足所述空闲状态条件中的至少一者,对所述一组块执行所述一组纠错奇偶校验计算。
根据本公开的实施例,提供了一种系统,其包含:一组存储器组件;以及处理装置,其可操作地耦合到所述一组存储器组件,所述处理装置被配置为执行包含以下内容的操作:在所述系统处接收将用户数据写入所述一组存储器组件的请求;响应接收到所述请求:将所述用户数据写入所述一组存储器组件的一组块中,与此同时推迟对所述一组块执行一组纠错奇偶校验计算;以及更新计数器,所述计数器对等待至少一个纠错奇偶校验计算的执行的块进行计数;确定所述系统是否满足空闲状态条件;以及基于所述计数器或确定所述系统是否满足所述空闲状态条件中的至少一者,对所述一组块执行所述一组纠错奇偶校验计算。
根据本公开的实施例,提供了一种包含指令的非暂态计算机可读存储介质,当所述指令由处理装置执行时,所述指令使所述处理装置执行包含以下内容的操作:将来自主机系统的用户数据写入存储器子系统的一组存储器组件的一组块中,与此同时推迟对所述一组块执行一组纠错奇偶校验计算;更新跟踪数据以指示所述一组块正在等待至少一个纠错奇偶校验计算的执行;确定所述存储器子系统是否满足空闲状态条件;以及响应于确定所述存储器子系统已经开始满足所述空闲状态条件,启动对所述一组块中的一或多个块执行所述一组纠错奇偶校验计算。
附图说明
通过下面给出的详细描述和通过本公开的各种实施例的附图,可以更充分地理解本公开。
图1是示出根据本公开的一些实施例的包括存储器子系统的示例性计算环境的框图。
图2是根据本公开的一些实施方式的示例性推迟的纠错奇偶校验计算器的框图。
图3和4是根据本公开的一些实施方式的用于推迟纠错奇偶校验计算的示例性方法的流程图。
图5呈现了根据本公开的一些实施方式的表格,该表格示出了使用一组存储器组件的专用块来存储纠错奇偶校验数据的示例性纠错保护。
图6A和6B提供了交互图,该交互图示出了在其中执行推迟的纠错奇偶校验计算的方法的一些实施例的背景下计算环境的组件之间的交互。
图7是示出了根据本公开的一些实施例的以计算机系统的形式的机器的示意图的框图,在该计算机系统中可以执行一组指令以使该机器执行本文所讨论的方法中的任何一或多个。
具体实施方式
本公开的各方面涉及推迟(例如,延迟)存储器子系统中的纠错奇偶校验计算。存储器子系统可以是存储装置、存储器模块,或者是存储装置和存储器模块的混合体。下面结合图1描述存储装置和存储器模块的示例。通常,主机系统可以利用包括一或多个存储器组件(诸如存储数据的存储器装置)的存储器子系统。主机系统可以向存储器子系统发送访问请求,诸如以在存储器子系统处存储数据和从存储器子系统读取数据。在下文中将由主机指定的数据称为“主机数据”。主机系统可以向存储器子系统发送访问请求(例如,写入命令、读取命令),诸如以将数据存储在存储器子系统处的存储器装置上,并从存储器子系统上的存储器装置读取数据。在下文中将由主机请求所指定的要读取或写入的数据称为“主机数据”。主机请求可以包括用于主机数据的逻辑地址信息(例如,逻辑块地址(LBA),命名空间),其为主机系统与主机数据相关联的位置。逻辑地址信息(例如,LBA,命名空间)可以是主机数据的元数据的一部分。元数据还可以包括错误处理数据(例如ECC码字、奇偶校验码)、数据版本(例如用于区分写入的数据的龄期)、有效位图(其中LBA或逻辑传输单元含有有效数据)等。
存储器子系统可以对存储在存储器装置上的主机数据启动介质管理操作,诸如写操作。例如,作为垃圾收集管理操作的一部分,存储器子系统的固件可以将先前写入的主机数据从存储器装置上的位置重写到新位置。例如,由固件启动的被重写的数据在下文中被称为“垃圾收集数据”。
在下文中“用户数据”通常是指主机数据和垃圾收集数据。在下文中“系统数据”是指由存储器子系统创建和/或维护的数据,用于响应主机请求执行操作以及进行介质管理。系统数据的实例包括但不限于系统表(例如,逻辑到物理地址映射表)、来自日志的数据、暂存器数据等。
存储器装置可以是非易失性存储器装置。非易失性存储器装置是一或多个小块的封装。每个管芯可以由一或多个平面组成。对于某些类型的非易失性存储器装置(例如,NAND装置),每个平面由一组物理块组成。对于某些存储器装置,块是可擦除的最小区域。每个块由一组页面组成。每个页面由一组存储器单元组成,这些存储器单元存储数据位。存储器装置可以是原始存储器装置(例如,NAND),其例如通过外部控制器在外部进行管理。存储器装置可以是被管理的存储器装置(例如,被管理的NAND),其是与本地嵌入式控制器结合以用于在相同的存储器装置封装内进行存储器管理的原始存储器装置。
常规的存储器子系统可以采用纠错技术,诸如使用独立NAND冗余阵列型闪存存储器装置(以下称为RAIN技术)来保护存储在存储器子系统上的数据(例如主机数据或用户数据)。纠错技术可以包含在一些受到错误保护的数据(例如主机/用户数据)集合上计算奇偶校验(例如XOR奇偶校验)。通过这种纠错技术,如果集合的数据成员由于任何原因丢失(例如,损坏),则可以重新执行奇偶校验计算并重新创建丢失的数据。随着诸如RAIN技术之类的纠错技术变得越来越复杂,为了实现纠错保护而执行的并行奇偶校验计算的数量以及执行并行奇偶校验计算所需的存储器资源也将变得越来越复杂。例如,当一组存储器组件包含多平面NAND装置时,诸如三级单元(TLC)NAND装置,可能需要并行执行多个(例如数十个)奇偶校验计算来实现存储在存储器子系统上的数据保护(例如,用于主机/用户数据)。
遗憾的是,用于在存储器子系统上执行并行计算的存储器资源(例如,存储器子系统的控制器的有效存储器空间)可能变得非常昂贵。例如,对于16KB的存储器页面,对于每个写入游标,32个计算可能需要存储器子系统的控制器512KB的静态随机存取存储器(SRAM)。为了解决此问题,一些RAIN技术使用临时存储器(例如,一或多个单级单元(SLC)NAND装置)来保存临时奇偶校验计算(例如,部分奇偶校验计算),并根据需要换出此类临时奇偶校验计算以减少使用有效存储器(例如SRAM)。然而,RAIN技术的交换可能涉及大量的开销和性能损失,这可能会对存储器子系统的性能产生较大的负面影响。另外,一些RAIN技术将纠错奇偶校验计算结果与主机/用户数据内联地写入存储器子系统中,这可能会降低存储器子系统的顺序读取性能。
本公开的各方面通过将系统组件(诸如存储器子系统的存储器子系统控制器)配置为推迟执行针对存储器子系统的存储器组件的块的纠错奇偶校验计算而解决了上述和其他缺陷。特别地,本文描述的一些实施例的存储器子系统控制器可以推迟(例如,延迟)纠错技术的奇偶校验计算(本文中被称为纠错奇偶检验计算)的执行,并且可以推迟纠错奇偶校验计算以使得其在存储器子系统满足空闲状态条件时(本文中也被称为空闲时间)执行。例如,一些实施例使存储器子系统延迟执行纠错奇偶校验计算和存储纠错奇偶校验计算的结果到存储器子系统满足空闲状态条件时(例如,存储器子系统的空闲时间)。对于一些实施例,存储器子系统包含一组NAND存储器组件,并且纠错奇偶校验计算可以与(由存储器子系统)用于实现对存储在该组NAND存储器组件上的数据(例如,主机/用户数据)进行纠错保护的RAIN技术相关联。
如本文描述,通过推迟(例如,延迟)执行纠错奇偶校验计算和存储其结果,各种实施例可以减少或消除与执行与纠错技术(例如,RAIN技术)相关联的并行奇偶校验计算相关的至少一些性能损失,以及与执行并行奇偶校验计算相关联的至少一些存储器资源使用(例如,SRAM使用)。本文描述的各种实施例将被配置为(例如,经由用于检查空闲状态条件的数据计数阈值和时间段)在推迟(例如,延迟)执行纠错奇偶校验计算之后仅在较小的时间窗口内使数据不受保护。本文描述的各种实施例所呈现的方法可以使纠错奇偶校验数据和主机/用户数据的存储分离,并且可以进一步减少或消除与主机/用户数据内联存储纠错奇偶校验数据的顺序读取相关联的性能损失。本文描述的各种实施例可以减少或去除与针对NAND装置的块(例如,高耐久性交换块)交换中间/部分奇偶校验计算(例如,与RAIN技术相关联)相关联的工作,并且在这样做时,可以使存储器子系统能够为其他目的重新分配这些块,可以提高NAND装置的耐用性,并可以提高存储器子系统的净能量使用(例如,因为不再执行许多中间/部分奇偶校验交换操作,以及用于奇偶校验数据内联存储的顺序读取性能损失)。
根据一些实施例,存储器子系统推迟(例如,延迟)一或多个纠错奇偶校验计算(例如,RAIN技术的),直到该存储器子系统满足空闲状态条件为止。如本文所使用,存储器子系统满足空闲状态条件的时间可以被称为存储器子系统的空闲时间。空闲状态条件的实例可以包括但不限于,当没有来自主机系统的命令保留在存储器子系统的命令队列中时,诸如当主机系统处于空闲状态时。在主机系统包含移动装置的情况下,空闲状态可以包含例如移动装置正在休眠(例如,整夜)的时间,移动装置的显示器关闭并且移动装置正在充电的时间,或移动装置空闲的其他时间。
对于一些实施例,存储器子系统(例如,存储器子系统控制器)从主机系统接收主机数据或用户数据,并将主机/用户数据写入存储器子系统的一组存储器组件上的一组块(例如,打开的块)。当将主机/用户数据写入该组块时,存储器子系统可以这样做,与此同时将针对该组块的一组纠错保护操作推迟到存储器子系统满足空闲状态条件的时间。另外,存储器子系统可以递增等待纠错保护操作的数据计数。对于一些实施例,该组纠错保护操作包含执行一组纠错奇偶校验计算并将其结果写入(例如,存储)在存储器子系统上。取决于实施例,该组纠错奇偶校验计算的结果可以与主机/用户数据内联地写入在该组存储器组件上,或者可以被写入存储器子系统的专用(例如,保留)存储器,诸如该组存储器组件中与用于存储受保护数据(例如主机/用户数据)的块不同的一组专用奇偶校验块。
对于一些实施例,存储器子系统(例如,存储器子系统控制器)随后等待一段时间到存储器子系统满足空闲状态条件时,如果到达空闲状态条件,则存储器子系统可以开始纠错保护操作(例如,一组纠错奇偶校验计算)。这可以被视为是实施后台(或推迟的)纠错保护操作。如果纠错保护操作在存储器子系统离开空闲状态条件之前完成,则可以将由纠错保护操作生成的一组结果写入存储器子系统。直到纠错保护操作被执行并且在存储器子系统上写入结果,可以将主机/用户数据视为通过纠错技术暂时不受保护。执行纠错奇偶校验计算可以包含从正在等待此类计算的一组块中读取存储器页面,然后将纠错奇偶校验计算的结果集写入存储器子系统,诸如到存储器子系统的专用存储器(例如,该组存储器组件的专用奇偶校验块)。在将一组纠错奇偶校验计算结果写入存储器子系统后,存储器子系统可以相应地递减等待纠错保护操作的数据的计数。
对于一些实施例,如果存储器子系统确定在一段时间存储器储器子系统尚未满足空闲状态条件,并且该计数超过阈值(例如,计数值足够大),则存储器子系统可以执行先前推迟并等待执行的纠错保护操作(例如,一组纠错奇偶校验计算)。这可以被视为是实现前台纠错保护操作,当空闲时间不足以开始或完成纠错保护操作时(例如,空闲时间未达到通常足以执行操作的时间,或者持续的时间不足以完成操作),一些实施例可以使用它来确保对等待此类操作的数据执行纠错保护操作。可以将该组纠错保护操作(例如,产生单个页面的错误保护奇偶校验数据的128条读取命令)与针对用户/主机执行的操作(例如,响应于来自主机系统的一或多个命令执行的操作)混合在一起。针对用户/主机执行的操作可以包含读取命令流量,其可以比纠错保护操作所涉及的读取命令慢。
如本文指出,对于一些实施例,(存储器子系统的)一组存储器组件包含用于存储纠错奇偶校验计算数据(例如结果)的一组专用块,纠错保护存储在该组存储器组件上的数据(例如,主机/用户数据),其中该组专用块与存储受保护数据的存储器组件上的一组块分开。以此方式,一些实施例可以减少或避免当纠错奇偶校验计算数据与其所保护的数据内联存储时顺序读取所经历的性能损失(在顺序读取期间无需跳过纠错奇偶校验计算数据,因为其存储在与存储受保护数据的块分开的专用块中)。
对于一些实施例,本文描述的用于推迟的纠错奇偶校验计算的技术与临时物理存储器页面(例如,在单级单元(SLC)高速缓存上)一起用于短期纠错保护。另外,对于一些实施例,本文描述的用于推迟的纠错奇偶校验计算的技术包含周期性地(例如,每天一次)执行垃圾收集清理以确保数据(例如,用户数据)受到纠错保护。
对于本文描述的一些实施例,该组存储器组件包含用于存储用户数据的多个NAND装置,并且该存储器子系统控制器相对于该多个NAND装置实现独立NAND冗余阵列装置(RAIN)技术,其可以为存储在多个NAND装置上的主机/用户数据提供纠错保护。例如,所使用的RAIN保护方案可以包含具有条纹长度(例如,7个数据位)的奇偶校验方案,该条纹长度描述了有多少个主机/用户数据元素(例如,主机/用户数据位)形成由单个奇偶校验元素(例如,单个奇偶校验位)相关联和保护的(存储在多个NAND装置上)的主机/用户数据的单个条纹。可以使用XOR奇偶校验计算来计算与主机/用户数据的给定条纹相关联并保护该给定条纹的给定单个奇偶校验元素。在多个NAND装置包含多平面NAND装置(诸如TLC NAND装置)的情况下,每个平面可以参与单独的XOR奇偶校验计算,从而提供多平面故障检测,并使存储器子系统控制器能够使用奇偶校验数据独立地重建每个平面。
尽管本文将各种实施例描述为是相对于存储器子系统(例如,存储器子系统的控制器)实现的,但是实施例的一些或全部部分可以相对于主机系统来实现,诸如主机系统的软件应用程序或操作系统。
本文公开了执行与执行推迟的纠错奇偶校验计算有关的操作的存储器子系统的一些实例。
图1示出了根据本公开的一些实例的包括存储器子系统110的示例性计算环境100。存储器子系统110可以包括诸如存储器组件112A至112N的介质(在下文中也被称为“存储器装置”)。存储器组件112A至112N可以是易失性存储器装置、非易失性存储器装置或它们的组合。在一些实施例中,存储器子系统110是存储系统。存储器子系统110可以是存储装置、存储器模块或存储装置和存储器模块的混合体。存储装置的实例包括固态驱动器(SSD)、闪存驱动器、通用串行总线(USB)闪存驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用闪存存储(UFS)驱动器和硬盘驱动器(HDD)。存储器模块的实例包括双列直插式存储器模块(DIMM)、小尺寸DIMM(SO-DIMM)和非易失性双列直插式存储器模块(NVDIMM)。
计算环境100可以包括耦合到存储器系统的主机系统120。存储器系统可以包括一或多个存储器子系统110。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1示出了耦合到一个存储器子系统110的主机系统120的一个实例。主机系统120例如使用存储器子系统110来将数据写入存储器子系统110并从存储器子系统110读取数据。如本文所使用,“耦合到”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如,没有中间组件),无论是有线还是无线的,包括诸如电连接、光连接、磁连接等之类的连接。
主机系统120可以是计算装置,诸如台式计算机、膝上型计算机、网络服务器、移动装置、嵌入式计算机(例如,包括在车辆、工业装置或联网的商业装置中的计算机)或包括存储器和处理装置的此类计算装置。主机系统120可以包括或耦合到存储器子系统110,使得主机系统120可以从存储器子系统110读取数据或向存储器子系统写入数据。主机系统120可以经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包括但不限于串行高级技术附件(SATA)接口、外围组件互连快速(PCIe)接口、通用串行总线(USB)接口、光纤通道接口、串行附加的SCSI(SAS)接口等。物理主机接口可用于在主机系统120和存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可以进一步利用NVM快速(NVMe)接口来访问存储器组件112A至112N。物理主机接口可以提供用于在存储器子系统110和主机系统120之间传递控制、地址、数据和其他信号的接口。
存储器组件112A至112N可以包括不同类型的非易失性存储器组件和/或易失性存储器组件的任何组合。非易失性存储器组件的实例包括与非(NAND)型闪存存储器。存储器组件112A至112N中的每个可以包括一或多个存储器单元阵列,诸如单级单元(SLC)或多级单元(MLC)(例如,TLC或QLC)。在一些实施例中,特定的存储器组件112可以同时包括存储器单元的SLC部分和MLC部分两者。每个存储器单元可以存储由主机系统120使用的一或多个位数据(例如,块)。尽管描述了诸如NAND型闪存存储器之类的非易失性存储器组件,但是存储器组件112A至112N可以基于诸如易失性存储器之类的任何其他类型的存储器。在一些实施例中,存储器组件112A至112N可以是但不限于随机存取存储器(RAM)、只读存储器(ROM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、相变存储器(PCM)、磁阻随机存取存储器(MRAM)、或非(NOR)闪存存储器、电可擦可编程只读存储器(EEPROM)以及非易失性存储器单元的交叉点阵列。非易失性存储器单元的交叉点阵列可以结合可堆叠的交叉网格数据访问阵列,基于体电阻的变化执行位存储。另外,与许多基于闪存的存储器相比,交叉点非易失性存储器可以执行就地写入操作,其中可以对非易失性存储器单元进行编程而无需事先擦除非易失性存储器单元。此外,存储器组件112A至112N的存储器单元可以被分组为可以参考存储器组件112的用于存储数据的单元的存储器页面或块。
存储器子系统控制器115可以与存储器组件112A至112N通信以执行诸如在存储器组件112A至112N处读取数据、写入数据或擦除数据的操作以及其他此类操作。存储器子系统控制器115可以包括诸如一或多个集成电路和/或分立组件的硬件、缓冲存储器或其组合。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或另一合适的处理器。存储器子系统控制器115可以包括被配置为执行存储在本地存储器119中的指令的处理器(处理装置)117。在所示的实例中,存储器子系统控制器115的本地存储器119包括嵌入式存储器,该嵌入式存储器被配置为存储用于执行各种过程、操作、逻辑流以及例程的指令,它们控制存储器子系统110的操作,包括处理存储器子系统110和主机系统120之间的通信。在一些实施例中,本地存储器119可以包括存储存储器指针、所取回数据等的存储器寄存器。本地存储器119还可以包括用于存储微码的只读存储器(ROM)。尽管图1中的示例性存储器子系统110被示出为包括存储器子系统控制器115,但是在本公开的另一实施例中,存储器子系统110可以不包括存储器子系统控制器115,并且可以替代地依赖于外部控制(例如,由外部主机,或者由与存储器子系统110分开的处理器117或控制器提供的控制)。
通常,存储器子系统控制器115可以从主机系统120接收命令或操作,并且可以将命令或操作转换为指令或适当的命令以实现对存储器组件112A至112N的期望访问。存储器子系统控制器115可以负责其他操作,诸如损耗均衡操作、垃圾收集操作、错误检测和纠错码(ECC)操作、加密操作、缓存操作以及与存储器组件112A至112N相关联的逻辑块地址和物理块地址之间的地址转换。存储器子系统控制器115可以进一步包括主机接口电路系统,以经由物理主机接口与主机系统120进行通信。主机接口电路系统可以将从主机系统120接收到的命令转换为命令指令以访问存储器组件112A至112N,以及将与存储器组件112A至112N相关联的响应转换为用于主机系统120的信息。
存储器子系统110还可以包括未示出的附加电路系统或组件。在一些实施例中,存储器子系统110可以包括可以从存储器子系统控制器115接收地址并对地址进行解码以访问存储器组件112A至112N的高速缓存或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器)。
存储器装置可以是原始存储器装置(例如,NAND),其例如通过外部控制器(例如,存储器子系统控制器115)在外部进行管理。存储器装置可以是被管理的存储器装置(例如,被管理的NAND),其是与本地嵌入式控制器(例如,本地介质控制器)结合以用于在相同的存储器装置封装内进行存储器管理的原始存储器装置。存储器组件112A至112N中的任何一个可以包括介质控制器(例如,介质控制器113A和介质控制器113N),以管理存储器组件的存储器单元、与存储器子系统控制器115进行通信,以及执行从存储器子系统控制器115接收到的存储器请求(例如,读取或写入)。
存储器子系统110包括根据本文描述的一些实施例执行或促进推迟的纠错奇偶校验计算的推迟的纠错奇偶校验计算器122。在一些实施例中,控制器115包括推迟的纠错奇偶校验计算器122的至少一部分。例如,控制器115可以包括处理器117(处理装置),其被配置为执行存储在本地存储器119中的指令以执行本文描述的操作。在一些实施例中,推迟的纠错奇偶校验计算器122是主机系统120的一部分,诸如主机系统120上的软件应用程序或操作系统。
根据一些实施例,存储器子系统110可以从主机系统120接收将数据(例如,主机/用户数据)写入存储器组件112A至112N的请求。响应于该请求,推迟的纠错奇偶校验计算器122可以使存储器子系统控制器115将数据写入到存储器组件112A至112N的一组块中,与此同时推迟执行对要写入的该组块的一组纠错奇偶校验计算。另外,响应于该请求,推迟的纠错奇偶校验计算器122可以使存储器子系统控制器115更新跟踪数据,以指示该组块正在等待该组纠错奇偶校验计算的执行。例如,在跟踪数据包含等待执行至少一个纠错奇偶校验计算的块的计数器的情况下,该计数器可以递增等待至少一个纠错奇偶校验计算执行的块的数目。取决于实施例,跟踪数据可以保存在存储器子系统110的保留的存储器空间中,该存储器空间可以由存储器组件112A至112N或本地存储器119提供。跟踪数据可以包含可以实现一或多个计数器的数据结构,该计数器指示有多少数据(例如,有多少块)正在等待一组纠错奇偶校验计算的执行。对于一些实施例,跟踪数据标识哪些块正在等待纠错奇偶校验计算的执行。
推迟的纠错奇偶校验计算器122可以使存储器子系统控制器115确定(例如,周期性地确定或监视)存储器子系统是否满足空闲状态条件。以此方式,存储器子系统110可以等待存储器子系统110的空闲时间。如本文指出,示例性空闲状态条件可以包含满足空条件的存储器子系统110的命令队列(未示出),诸如,未含有基于来自主机系统120的请求(例如,写入用户数据的请求)的任何命令的命令队列。
推迟的纠错奇偶校验计算器122可以使存储器子系统控制器115基于跟踪数据或确定存储器子系统110是否满足空闲状态条件中的至少一者对一组块执行一组纠错奇偶校验计算。例如,响应于确定存储器子系统已经开始满足空闲状态条件,推迟的纠错奇偶校验计算器122可以使存储器子系统控制器115启动对一组块中的一或多个块执行该组纠错奇偶校验计算。
随后,在存储器子系统110离开空闲状态条件之前,推迟的纠错奇偶校验计算器122可以使存储器子系统控制器115确定该组纠错奇偶校验计算的执行是否已经结束。响应于确定在存储器子系统110离开空闲状态条件之前已经结束了一组纠错奇偶校验计算的执行,推迟的纠错奇偶校验计算器122可以使存储器子系统控制器115将来自(完成的)该组纠错奇偶校验计算的一组纠奇偶校验计算结果写入到存储器组件112A至112N。另外,响应于确定在存储器子系统110离开空闲状态条件之前已经结束了一组纠错奇偶校验计算的执行,推迟的纠错奇偶校验计算器122可以使存储器子系统控制器115更新跟踪数据以指示该组块中的一或多个块不再等待该组纠错奇偶校验计算的执行。例如,在跟踪数据包含等待执行至少一个纠错奇偶校验计算的块的计数器的情况下,该计数器可以递减不再等待至少一个纠错奇偶校验计算的执行的块的数目。如本文指出,对于一些实施例,一组纠错奇偶校验计算结果被写入到存储器组件112A至112N的一组专用块中。另选地,响应于确定在一组纠错奇偶校验计算的执行结束之前存储器子系统已经离开空闲状态条件,推迟的纠错奇偶校验计算器122可以使存储器子系统控制器115停止(例如中止)该组纠错奇偶校验计算的执行。通过这样做,推迟的纠错奇偶校验计算器122可以使存储器子系统控制器115丢弃迄今为止生成的任何中间/部分纠错奇偶校验数据,从而释放执行该组纠错奇偶校验计算所使用的任何存储器资源(例如,在本地存储器119上)。
对于一些实施例,虽然存储器子系统110不满足空闲状态条件,但是推迟的纠错奇偶校验计算器122可以通过基于跟踪数据确定(例如,周期性地确定)正在等待至少一个纠错奇偶校验计算的执行的块的计数是否超过阈值计数值,使存储器子系统控制器115对该组块执行该组纠错奇偶校验计算。可以例如根据时间间隔(例如,周期性地)或每次更新跟踪数据时来执行对块的计数是否已经超过阈值计数值的确定。阈值计数值可以例如在制造存储器子系统时或由存储器子系统110的用户(例如,经由主机系统120)确定/定义。响应于确定块的计数已经超过阈值计数值,推迟的纠错奇偶校验计算器122可以使存储器子系统控制器115对可能通过跟踪数据识别的一或多个块,从一组纠错奇偶校验计算中启动一或多个纠错奇偶校验计算的执行。以这种方式,各种实施例可以使用块的计数和阈值计数值来限制有多少块可以通过存储器子系统的空闲时间之间的纠错而保持不受保护;在等待至少一个纠错奇偶校验计算的块的数量变得足够高(即,超过阈值计数值)的情况下,可以在前台进行对该组纠错奇偶校验计算的执行。
取决于实施例,推迟的纠错奇偶校验计算器122可以包含使存储器子系统110(例如,存储器子系统控制器115)执行本文中关于推迟的纠错奇偶校验计算器122描述的操作的逻辑(例如,一组机器指令,诸如固件)或一或多个组件。推迟的纠错奇偶校验计算器122可以包含能够执行本文描述的操作的有形单元。下面描述关于推迟的纠错奇偶校验计算器122的操作的更多细节。
图2是根据本公开的一些实施方式的示例性推迟的纠错奇偶校验计算器200的框图。如图所示,推迟的纠错奇偶校验计算器200包含具有推迟的奇偶校验计算的数据写入器210、推迟的奇偶校验计算跟踪器220、空闲状态监视器230和奇偶校验计算管理器240。对于一些实施例,推迟的纠错奇偶校验计算器200可以在组件或布置(例如,更少或更多的组件)上不同于图2中所示的组件或布置。
具有推迟的奇偶校验计算的数据写入器210实现或利于将用户数据写入一组存储器组件112的一组块,与此同时推迟对该组块执行一组纠错奇偶校验计算。推迟的奇偶校验计算跟踪器220实现或利于对跟踪数据的更新,以指示一组块是否正在等待至少一个纠错奇偶校验计算的执行。例如,推迟的奇偶校验计算跟踪器220可以实现或利于递增或递减等待至少一个纠错奇偶校验计算的块的计数。空闲状态监视器230实现或利于确定(例如,周期性地确定或监视)存储器子系统110是否满足空闲状态条件。奇偶校验计算管理器240实现或利于管理一组纠错奇偶校验计算的执行。奇偶校验计算管理器240的管理可以包括但不限于:启动纠错奇偶校验计算的执行;停止当前正在执行的纠错奇偶校验计算的执行(例如,响应于存储器子系统110离开空闲状态条件);清除由已停止的纠错奇偶校验计算产生的中间/部分纠错奇偶校验计算结果的存储器;或当纠错奇偶校验计算已经完成执行时,将来自纠错奇偶校验计算的一组结果写入(例如,到存储器组件112的专用奇偶校验块)。
图3和4是根据本公开的一些实施方式的用于推迟纠错奇偶校验计算的示例性方法300、400的流程图。方法300、400中的任何一个都可以由处理逻辑来执行,该处理逻辑可以包括硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法300由图1的存储器子系统控制器115执行。在这些实施例中,方法300或方法400可以至少部分地由推迟的纠错奇偶校验计算器122执行。尽管以特定的顺序或次序显示了过程,除非另有说明,否则可以修改过程的次序。因此,所示出的实施例应当仅被理解为实例,并且所示出的过程可以以不同的次序执行,并且一些过程可以并行地执行。另外,在各种实施例中可以省略一或多个过程。因此,并非在每个实施例中都需要所有过程。其他处理流程也是可能的。
现在参考图3,方法300在操作305处开始,其中存储器子系统的处理装置(例如,存储器子系统控制器115的处理器的处理装置)接收将数据(以下称为用户数据)写入存储器子系统的一组存储器组件(例如,存储器组件112A至112N)的请求。对于一些实施例,该请求来自通信地耦合到存储器子系统的主机系统(例如,主机系统120)。
在操作310处,存储器子系统的处理装置响应于在操作305处接收到请求,存储器子系统的处理装置将用户数据写入该组存储器组件的一组块中,与此同时推迟对该组块执行一组纠错奇偶校验计算。对于一些实施例,来自对一组块执行一组纠错奇偶校验计算的一组结果集有利于对该组块的纠错保护。例如,该组存储器组件可以包含一组NAND装置,并且错误保护技术(由该组纠错奇偶校验计算促进的错误保护技术)包含如本文描述的RAIN技术。
此后,在操作315处,存储器子系统的处理装置更新跟踪数据以指示该组块正在等待至少一个纠错奇偶校验计算。例如,在跟踪数据包含等待执行至少一个纠错奇偶校验计算的块的计数器的情况下,该计数器可以递增等待至少一个纠错奇偶校验计算执行的块的数目。最终,当执行、完成一或多个纠错奇偶校验计算并将其写入一组存储器组件(例如,写入专用块)时,计数器可以相应地递减。取决于实施例,跟踪数据可以保存在存储器子系统的保留的存储器空间中,该存储器空间可以由一组存储器组件(例如112A至112N)或存储器子系统的控制器(例如,115)的本地存储器(例如119)提供。如本文指出,跟踪数据可以包含可以实现一或多个计数器的数据结构,该计数器指示有多少数据(例如,有多少块)正在等待一组纠错奇偶校验计算的执行。对于一些实施例,跟踪数据标识哪些块正在等待纠错奇偶校验计算的执行。
在操作320处,存储器子系统的处理装置确定(例如,周期性地确定或监视)存储器子系统是否满足空闲状态条件。示例性空闲状态条件可以包含满足空条件的存储器子系统的命令队列,诸如未含有基于来自主机系统(例如120)的请求的任何命令的命令队列。
在操作325处,存储器子系统的处理装置基于(在操作315处更新的)跟踪数据或确定存储器子系统是否满足空闲状态条件(在操作320处)中的至少一者,对一组块执行一组纠错奇偶校验计算。对于一些实施例,操作325包含响应于在操作320处确定存储器子系统已经开始满足空闲状态条件而对一组块中的一或多个块启动一组纠错奇偶校验计算的执行。一旦存储器子系统开始满足空闲状态条件,则在存储器子系统离开空闲状态条件之前,存储器子系统控制器可以确定一组纠错奇偶校验计算的执行是否已经结束。响应于在存储器子系统离开空闲状态条件之前确定一组纠错奇偶校验计算的执行已经结束,存储器子系统控制器可以:将来自(完成的)一组纠错奇偶校验计算的一组纠错奇偶校验计算结果写入到该组存储器组件;并且更新跟踪数据(例如,递减块的计数器)以指示该组块中的一或多个块不再等待该组纠错奇偶校验计算的执行。如本文指出,该组纠错奇偶校验计算结果可以被写入该组存储器组件的一组专用块中。
响应于在一组纠错奇偶校验计算的执行结束之前确定存储器子系统已经离开空闲状态条件,存储器子系统控制器可以停止(例如,中止)(早先启动的)该组纠错奇偶校验计算的执行。在该组纠错奇偶校验计算的执行停止的情况下,存储器子系统可以丢弃迄今为止生成的任何中间/部分纠错奇偶校验数据,从而释放执行该组纠错奇偶校验计算所使用的任何存储器资源(例如,在本地存储器119上)。
虽然存储器子系统不满足空闲状态条件(暂时不满足),但是存储器子系统可以通过基于跟踪数据确定(例如,周期性地确定)正在等待至少一个纠错奇偶校验计算的执行的块的计数是否超过阈值计数值,对该组块执行该组纠错奇偶校验计算。可以例如根据时间间隔(例如,周期性地)或每次更新跟踪数据时来执行对块的计数是否已经超过阈值计数值的确定。
现在参考图4,方法400开始于操作405,其中存储器子系统的处理装置在存储器子系统(例如,存储器子系统110的存储器组件112A至112N)上写入用户数据而没有对所写入的用户数据执行至少一个纠错奇偶校验计算(例如,与由RAIN技术提供的纠错保护相关联的纠错奇偶校验计算)。如本文指出,操作405可以响应于从主机系统(例如120)接收到的请求来执行。根据一些实施例,由于在不执行与所写入的用户数据相关联的一或多个纠错奇偶校验计算的情况下写入用户数据,因此该用户数据至少暂时地不受纠错保护。
方法400继续到操作410,其中存储器子系统的处理装置递增等待至少一个(与保护用户数据的纠错相关联的)纠错奇偶校验计算的用户数据的计数(例如,存储用户数据的块的计数)。此后,在操作415处,方法400继续,其中存储器子系统的处理装置周期性地(例如,基于时间间隔)确定存储器子系统是否满足空闲状态条件。以此方式,存储器子系统可以在针对等待此类计算的用户数据启动一或多个纠错奇偶校验计算的执行之前,等待存储器子系统的空闲时间。
之后,在操作420处,方法400响应于存储器子系统的处理装置确定存储器子系统满足空闲状态条件而继续进行至操作445,否则方法400继续进行至操作425。到达操作445可以是存储器子系统已经开始满足空闲状态条件的指示。
在操作425处,存储器子系统的处理装置确定(等待至少一个纠错奇偶校验计算的)用户数据的计数是否超过阈值。如本文指出,阈值可以是由存储器子系统的制造商或用户定义的阈值(例如,通过由主机系统发布的设置)。方法400继续到操作430,其中,响应于存储器子系统的处理装置确定主机数据的计数超过阈值,方法400继续到操作435,否则方法400返回到操作415。返回操作415可以是该存储器子系统正在继续等待该存储器子系统满足空闲状态条件的指示(例如,继续等待该存储器子系统的空闲时间)。
随后,在操作435处,存储器子系统的处理装置开始对写入在存储器子系统的存储器子系统处理装置上的用户数据(例如,通过操作405)执行一组纠错奇偶校验计算。方法400继续至操作440,其中当操作435的一组纠错奇偶校验计算完成时,存储器子系统的处理装置将一组纠错奇偶校验计算结果(由操作435的一组纠错奇偶校验计算得出)写入存储器子系统(例如存储器子系统110的存储器组件112A至112N的专用块)。随后,方法400继续到操作460,其中存储器子系统的处理装置基于针对其在操作440处写入一组纠错奇偶校验结果的块的数目递减用户数据的计数(存储器子系统的处理装置)。通过实施例,操作435和440可以表示一或多个纠错奇偶校验计算的前台执行。
现在参考操作445,存储器子系统的处理装置开始对写入存储器子系统的存储器子系统处理装置上的用户数据(例如,通过操作405)执行一组纠错奇偶校验计算。方法400继续到操作450,其中存储器子系统的处理装置继续执行纠错奇偶校验计算,与此同时存储器子系统满足(继续满足)空闲状态条件。如果存储器子系统停止满足空闲状态条件(例如,离开空闲状态条件,诸如存储器子系统的命令队列从主机系统120接收命令),则方法400可以返回操作415,另外,存储器子系统可以丢弃到目前为止通过执行一组纠错奇偶校验计算而生成的任何中间/部分纠错奇偶校验计算结果。在该组纠错奇偶校验计算在存储器子系统离开空闲状态条件之前完成的情况下,方法400继续至操作455,存储器子系统的处理装置将一组纠错奇偶校验计算结果(由操作445的一组纠错奇偶校验计算得出)写入存储器子系统(例如,存储器子系统110的存储器组件112A至112N的专用块)。随后,方法400继续到操作460,其中存储器子系统的处理装置基于针对其在操作455处写入一组纠错奇偶校验结果的块的数目递减用户数据的计数(存储器子系统的处理装置)。通过实施例,操作445至455可以表示一或多个纠错奇偶校验计算的后台(或延迟的)执行。
图5呈现了表1,该表示出了根据一些实施例的使用一组存储器组件的专用数据奇偶校验块来存储纠错奇偶校验数据(例如,结果)的纠错保护技术(更具体地说,RAIN技术)的实例。如表1所示,示例性RAIN技术由四个NAND管芯(管芯0到3)实现,其中每个管芯具有四个平面(平面0到3)。对于一些实施例,使用具有多平面支持的SLC NAND装置来实现管芯。每个平面上每个存储器页面0到3的数据块大小可以包含16KB。P0、P1、P2和P3(在管芯3上)每个代表专用的存储器奇偶校验块,其可用于存储对存储在多个存储器页面中的数据块执行的纠错奇偶校验计算的结果。例如,P0可以包含用于页面0、4、8、12,…,56的纠错奇偶校验数据(例如,来自对页面执行的一或多个纠错奇偶校验计算的结果);P1可以包含用于页面1、5、9、13,…,57的纠错奇偶校验数据;P2可以包含用于页面2、6、10、14,…,58的纠错奇偶校验数据;以及P3可以包含用于页面3、7、11、15,...,59的纠错奇偶校验数据。
图6A和6B提供了交互图,该交互图示出了在其中执行推迟的纠错奇偶校验计算的方法的一些实施例的背景下计算环境100的组件之间的交互。该方法的操作可以由处理逻辑来执行,该处理逻辑可以包括硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,该方法由存储器子系统控制器115执行。尽管以特定的顺序或次序显示了操作,除非另有说明,否则可以修改过程的次序。因此,所示出的实施例应当仅被理解为实例,并且所示出的过程可以以不同的次序执行,并且一些过程可以并行地执行。另外,在各种实施例中可以省略一或多个过程。因此,并非在每个实施例中都需要所有过程。
在图6A和6B所示的实例的背景下,主机系统可以包含主机系统120,存储器子系统控制器的处理器可以包含存储器子系统110的处理器117,以及一或多个存储器组件可以包含存储器组件112A至112N中的至少一个。
如图6A所示,在操作602处,主机系统(例如,经由主机系统120的处理器)生成将用户数据写入存储器子系统的请求,并且在操作612处,存储器子系统控制器的处理器从主机系统接收请求。
在操作614处,存储器子系统控制器的处理器将用户数据写入一组存储器组件(例如,存储器组件112A至112N)的一组块(例如,打开的块),与此同时对要写入用户数据的块执行一或多个纠错奇偶校验计算。在操作630处,该组存储器组件接收用户数据并将其存储在该组存储器组件的一组块中。
在操作616处,存储器子系统控制器的处理器更新跟踪数据以指示该组块(通过操作614将用户数据写入的块)正在等待至少一个纠错奇偶校验计算。在操作616处,存储器子系统控制器的处理器确定(例如,周期性地确定或监视)存储器子系统是否满足空闲状态条件,诸如存储器子系统的命令队列中没有从主机接收到的任何命令。
现在参考图6B,在操作620处,存储器子系统控制器的处理器基于(在操作616处更新的)跟踪数据或确定存储器子系统是否满足空闲状态条件中的至少一者对一组(等待执行此类计算的)块执行一组纠错奇偶校验计算。
图7示出了采用计算机系统700形式的示例性机器,在其中可以执行用于使该机器执行本文所讨论的方法中的任何一或多个的一组指令。在一些实施例中,计算机系统700可以对应于主机系统(例如,图1的主机系统120),其包括、耦合到或利用存储器子系统(例如,图1的存储器子系统110),或者可以用于执行控制器的操作(例如,执行操作系统以执行与图1的推迟的纠错奇偶校验计算器122相对应的操作)。在另选实施例中,该机器可以连接(例如,联网)到局域网(LAN)、内联网、外联网和/或因特网中的其他机器。该机器可以在客户端-服务器网络环境中以服务器或客户端机器的身份运行,可以作为对等(或分布式)网络环境中的对等机器,或者作为云计算集成架构或环境中的服务器或客户端机器。
该机器可以是个人计算机(PC)、平板电脑、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、Web装置、服务器、网络路由器、网络交换机、网桥或能够执行指定该机器要采取的动作的一组指令(顺序指令或以其他方式)的任何机器。此外,虽然示出了单个机器,但是术语“机器”也应被理解为包括机器的任何集合,这些机器单独地或共同地执行一组(或多组)指令以执行本文讨论的任何一或多个方法。
示例性计算机系统700包括处理装置702、主存储器704(例如,只读存储器(ROM)、闪存存储器、诸如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)之类的动态随机存取存储器(DRAM)、静态存储器706(例如,闪存存储器、静态随机存取存储器(SRAM)等)和数据存储装置718,它们经由总线730彼此通信。
处理装置702代表一或多个通用处理装置,例如微处理器、中央处理单元等。更具体地,处理装置702可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实现其他指令集的处理器或实现指令集的组合的处理器。处理装置702还可以是一或多个专用处理装置,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置702被配置为执行指令726,以用于执行本文所讨论的操作和步骤。计算机系统700可以进一步包括网络接口装置708,以通过网络720进行通信。
数据存储系统718可以包括机器可读存储介质724(也称为计算机可读介质),在其上存储体现本文描述方法或功能中的任何一或多个的一或多组指令726或软件。在计算机系统700执行指令726的过程中,指令也可以全部或至少部分地驻留在主存储器704内和/或处理装置702内,主存储器704和处理装置702也构成机器可读存储介质。机器可读存储介质724、数据存储系统718和/或主存储器704可以对应于图1的存储器子系统110。
在一个实施例中,指令726包括用于实现与推迟的纠错奇偶校验计算器(例如,图1的推迟的纠错奇偶校验计算器122)相对应的功能的指令。尽管在示例性实施例中将机器可读存储介质724示出为单个介质,但是术语“机器可读存储介质”应被认为包括存储一或多个指令集的单个介质或多个介质。术语“机器可读存储介质”也应被认为包括能够存储或编码一组指令以供机器执行并且使机器执行本公开的任何一或多个方法的任何介质。因此,术语“机器可读存储介质”应被认为包括但不限于固态存储器、光学介质和磁性介质。
已经根据对计算机存储器内的数据位的操作的算法和符号表示来呈现了前述详细描述的某些部分。这些算法描述和表示是数据处理领域技术人员用来最有效地向本领域其他技术人员传达其工作实质的方式。这里,算法通常被认为是导致期望结果的自洽操作序列。这些操作是需要对物理量进行物理操纵的操作。通常,尽管不是必须的,这些量采取能够被存储、组合、比较和以其他方式操纵的电信号或磁信号的形式。主要出于通用的原因,已经证明有时将这些信号称为位、值、元素、符号、字符、项、数字等是方便的。
然而,应当牢记,所有这些和类似术语均应与适当的物理量相关联,并且仅仅是应用于这些量的方便标签。本公开可以涉及计算机系统或类似电子计算装置的动作和过程,该计算机系统或类似电子计算装置将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操纵和转换为类似地表示为计算机系统的存储器或寄存器或其他此类信息存储系统内物理量的其他数据。
本公开还涉及用于执行本文中的操作的设备。此设备可以被专门构造用于预期目的,或者它可以包括由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这样的计算机程序可以被存储在计算机可读存储介质中,诸如但不限于:任何类型的磁盘,包括软盘、光盘、CD-ROM和磁光盘;只读存储器(ROM);随机存取存储器(RAM);可擦可编程只读存储器(EPROM);EEPROM;磁卡或光卡;或适于存储电子指令的任何类型的介质,每个介质都耦合到计算机系统总线。
本文中给出的算法和显示并非固有地与任何特定计算机或其他设备相关。各种通用系统可以与根据本文教导的程序一起使用,或者构造更专用的设备以执行方法可能证明是较方便的。如以上描述中所阐述的,将出现用于各种这些系统的结构。此外,本公开并未参考任何特定编程语言进行描述。应当理解,可以使用各种编程语言来实现对本文描述的本公开的教导。
本公开可以被提供为计算机程序产品或软件,其可以包括其上存储有指令的机器可读介质,该指令可以用于对计算机系统(或其他电子装置)进行编程以执行根据本公开的过程。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)介质包括机器可读(例如,计算机可读)存储介质,诸如只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光学存储介质、闪存存储器组件等。
在前述说明书中,已经参考本公开的特定示例性实施例描述了本公开的实施例。显而易见的是,在不脱离如所附权利要求书中阐述的本公开的实施例的更广泛的精神和范围的情况下,可以对其进行各种修改。因此,说明书和附图应被认为是说明性的而不是限制性的。
实例
实例1是一种方法,其包含:从主机系统接收将用户数据写入存储器子系统的一组存储器组件的请求;响应于所述请求:将所述用户数据写入所述一组存储器组件的一组块中,与此同时推迟对所述一组块执行一组纠错奇偶校验计算;以及更新跟踪数据以指示所述一组块正在等待至少一个纠错奇偶校验计算的执行;确定所述存储器子系统是否满足空闲状态条件;以及基于所述跟踪数据或确定所述存储器子系统是否满足所述空闲状态条件中的至少一者,对所述一组块执行所述一组纠错奇偶校验计算。
在实例2中,实例1的主题任选地包括:其中基于所述跟踪数据或确定所述存储器子系统是否满足所述空闲状态条件中的至少一者,对所述一组块执行所述一组纠错奇偶校验计算包含:响应于确定所述存储器子系统已经开始满足所述空闲状态条件,启动对所述一组块中的一或多个块执行所述一组纠错奇偶校验计算。
在实例3中,实例1或实例2的主题任选地包括:其中基于所述跟踪数据或确定所述存储器子系统是否满足所述空闲状态条件中的至少一者,对所述一组块执行所述一组纠错奇偶校验计算进一步包含:在所述存储器子系统离开所述空闲状态条件之前:确定一组纠错奇偶校验计算的执行是否已经结束;响应于确定所述一组纠错奇偶校验计算的执行已经结束,将来自所述一组纠错奇偶校验计算的一组纠错奇偶校验计算结果写入所述一组存储器组件。
在实例4中,实例1至3中任一项的主题任选地包括:其中基于所述跟踪数据或确定所述存储器子系统是否满足所述空闲状态条件中的至少一者,对所述一组块执行所述一组纠错奇偶校验计算进一步包含:在所述存储器子系统离开所述空闲状态条件之前:响应于确定所述一组纠错奇偶校验计算的执行已经结束,更新所述跟踪数据以指示所述一组块中的所述一或多个块不再等待至少一个纠错奇偶校验计算的执行。
在实例5中,实例1至4中任一项的主题任选地包括:其中基于所述跟踪数据或确定所述存储器子系统是否满足所述空闲状态条件中的至少一者,对所述一组块执行所述一组纠错奇偶校验计算进一步包含:响应于确定在所述一组纠错奇偶校验计算的执行结束之前所述存储器子系统已经离开所述空闲状态条件,停止所述一组纠错奇偶校验计算的执行。
在实例6中,实例1至5中任一项的主题任选地包括:其中所述存储器子系统包含用于对要由所述存储器子系统执行的命令进行排队的命令队列,并且所述空闲状态条件包含满足空条件的命令队列。
在实例7中,实例1至6中任一项的主题任选地包括:其中基于所述跟踪数据或确定所述存储器子系统是否满足所述空闲状态条件中的至少一者,对所述一组块执行所述一组纠错奇偶校验计算包含:当所述存储器子系统不满足所述空闲状态条件时:基于所述跟踪数据,确定等待至少一个纠错奇偶校验计算的执行的块计数是否超过阈值计数值;以及响应于确定所述块计数已经超过所述阈值计数值,对通过所述跟踪数据识别的一或多个块,从所述一组纠错奇偶校验计算中启动一或多个纠错奇偶校验计算的执行。
在实例8中,实例1至7中任一项的主题任选地包括:其中所述跟踪数据包含等待至少一个纠错奇偶校验计算的执行的块的计数器。
在实例9中,实例1至8中任一项的主题任选地包括:其中执行所述一组纠错奇偶校验计算包含并行执行来自所述一组纠错奇偶校验计算中的一或多个纠错奇偶校验计算。
实例10是一种系统,其包含:一组存储器组件;以及处理装置,其可操作地耦合到所述一组存储器组件,所述处理装置被配置为执行包含以下内容的操作:在所述系统处接收将用户数据写入所述一组存储器组件的请求;响应接收到所述请求:将所述用户数据写入所述一组存储器组件的一组块中,与此同时推迟对所述一组块执行一组纠错奇偶校验计算;以及更新计数器,所述计数器对等待至少一个纠错奇偶校验计算的执行的块进行计数;确定所述系统是否满足空闲状态条件;以及基于所述计数器或确定所述系统是否满足所述空闲状态条件中的至少一者,对所述一组块执行所述一组纠错奇偶校验计算。
在实例11中,实例10的主题任选地包括:其中基于所述计数器或确定所述系统是否满足所述空闲状态条件中的至少一者,对所述一组块执行所述一组纠错奇偶校验计算包含:响应于确定所述系统已经开始满足所述空闲状态条件,启动对所述一组块中的一或多个块执行所述一组纠错奇偶校验计算。
在实例12中,实例10或实例11中任一项的主题任选地包括:其中基于所述计数器或确定所述系统是否满足所述空闲状态条件中的至少一者,对所述一组块执行所述一组纠错奇偶校验计算进一步包含:在所述系统离开所述空闲状态条件之前:确定一组纠错奇偶校验计算的执行是否已经结束;响应于确定所述一组纠错奇偶校验计算的执行已经结束,将来自所述一组纠错奇偶校验计算的一组纠错奇偶校验计算结果写入所述一组存储器组件。
在实例13中,实例10至12中任一项的主题任选地包括:其中基于所述计数器或确定所述系统是否满足所述空闲状态条件中的至少一者,对所述一组块执行所述一组纠错奇偶校验计算进一步包含:在所述系统离开所述空闲状态条件之前:响应于确定所述一组纠错奇偶校验计算的执行已经结束,更新所述计数器以指示所述一组块中的所述一或多个块不再等待至少一个纠错奇偶校验计算的执行。
在实例14中,实例10至13中任一项的主题任选地包括:其中基于所述计数器或确定所述系统是否满足所述空闲状态条件中的至少一者,对所述一组块执行所述一组纠错奇偶校验计算进一步包含:响应于确定在所述一组纠错奇偶校验计算的执行结束之前所述系统已经离开所述空闲状态条件,停止所述一组纠错奇偶校验计算的执行。
在实例15中,实例10至14中任一项的主题任选地包括用于对要由所述系统执行的命令进行排队的命令队列,并且所述空闲状态条件包含满足空条件的命令队列。
在实例16中,实例10至15中任一项的主题任选地包括:其中基于所述计数器或确定所述系统是否满足所述空闲状态条件中的至少一者,对所述一组块执行所述一组纠错奇偶校验计算包含:当系统不满足所述空闲状态条件时:确定所述计数器是否已经超过阈值计数值;以及响应于确定所述计数器已经超过所述阈值计数值,对所述一组块中的一或多个块启动一或多个纠错奇偶校验计算的执行。
在实例17中,实例10至16中任一项的主题任选地包括:其中执行所述一组纠错奇偶校验计算包含并行执行来自所述一组纠错奇偶校验计算中的一或多个纠错奇偶校验计算。
实例18是一种包含指令的非暂态计算机可读存储介质,当所述指令由处理装置执行时,所述指令使所述处理装置执行包含以下内容的操作:将来自主机系统的用户数据写入存储器子系统的一组存储器组件的一组块中,与此同时推迟对所述一组块执行一组纠错奇偶校验计算;更新跟踪数据以指示所述一组块正在等待至少一个纠错奇偶校验计算的执行;确定所述存储器子系统是否满足空闲状态条件;以及响应于确定所述存储器子系统已经开始满足所述空闲状态条件,启动对所述一组块中的一或多个块执行所述一组纠错奇偶校验计算。
在实例19中,实例18的主题任选地包括:其中所述操作进一步包含:在所述存储器子系统离开所述空闲状态条件之前:确定一组纠错奇偶校验计算的执行是否已经结束;响应于确定所述一组纠错奇偶校验计算的执行已经结束,将来自所述一组纠错奇偶校验计算的一组纠错奇偶校验计算结果写入所述一组存储器组件。
在实例20中,实例18或实例19中任一项的主题任选地包括:其中所述操作进一步包含:在所述存储器子系统离开所述空闲状态条件之前:响应于确定所述一组纠错奇偶校验计算的执行已经结束,更新所述跟踪数据以指示所述一组块中的所述一或多个块不再等待至少一个纠错奇偶校验计算的执行。
Claims (20)
1.一种方法,其包含:
接收将用户数据写入存储器子系统的一组存储器组件的请求;
响应于所述请求:
将所述用户数据写入所述一组存储器组件的一组块中,与此同时推迟对所述一组块执行一组纠错奇偶校验计算;以及
更新跟踪数据以指示所述一组块正在等待至少一个纠错奇偶校验计算的执行;
确定所述存储器子系统是否满足空闲状态条件;以及
基于所述跟踪数据或确定所述存储器子系统是否满足所述空闲状态条件中的至少一者,对所述一组块执行所述一组纠错奇偶校验计算。
2.根据权利要求1所述的方法,其中基于所述跟踪数据或确定所述存储器子系统是否满足所述空闲状态条件中的至少一者,对所述一组块执行所述一组纠错奇偶校验计算包含:
响应于确定所述存储器子系统已经开始满足所述空闲状态条件,启动对所述一组块中的一个或多个块执行所述一组纠错奇偶校验计算。
3.根据权利要求2所述的方法,其中基于所述跟踪数据或确定所述存储器子系统是否满足所述空闲状态条件中的至少一者,对所述一组块执行所述一组纠错奇偶校验计算进一步包含:
在所述存储器子系统离开所述空闲状态条件之前:
确定一组纠错奇偶校验计算的执行是否已经结束;以及
响应于确定所述一组纠错奇偶校验计算的执行已经结束,将来自所述一组纠错奇偶校验计算的一组纠错奇偶校验计算结果写入所述一组存储器组件。
4.根据权利要求3所述的方法,其中基于所述跟踪数据或确定所述存储器子系统是否满足所述空闲状态条件中的至少一者,对所述一组块执行所述一组纠错奇偶校验计算进一步包含:
在所述存储器子系统离开所述空闲状态条件之前:
响应于确定所述一组纠错奇偶校验计算的执行已经结束,更新所述跟踪数据以指示所述一组块中的所述一个或多个块不再等待至少一个纠错奇偶校验计算的执行。
5.根据权利要求2所述的方法,其中基于所述跟踪数据或确定所述存储器子系统是否满足所述空闲状态条件中的至少一者,对所述一组块执行所述一组纠错奇偶校验计算进一步包含:
响应于确定在所述一组纠错奇偶校验计算的执行结束之前所述存储器子系统已经离开所述空闲状态条件,停止所述一组纠错奇偶校验计算的执行。
6.根据权利要求1所述的方法,其中所述存储器子系统包含用于对要由所述存储器子系统执行的命令进行排队的命令队列,并且所述空闲状态条件包含命令队列满足空条件。
7.根据权利要求1所述的方法,其中基于所述跟踪数据或确定所述存储器子系统是否满足所述空闲状态条件中的至少一者,对所述一组块执行所述一组纠错奇偶校验计算包含:
当所述存储器子系统不满足所述空闲状态条件时:
基于所述跟踪数据,确定等待至少一个纠错奇偶校验计算的执行的块计数是否超过阈值计数值;以及
响应于确定所述块计数已经超过所述阈值计数值,对通过所述跟踪数据识别的一个或多个块,从所述一组纠错奇偶校验计算中启动一个或多个纠错奇偶校验计算的执行。
8.根据权利要求1所述的方法,其中所述跟踪数据包含等待至少一个纠错奇偶校验计算的执行的块的计数器。
9.根据权利要求1所述的方法,其中执行所述一组纠错奇偶校验计算包含并行执行来自所述一组纠错奇偶校验计算中的一个或多个纠错奇偶校验计算。
10.一种系统,其包含:
一组存储器组件;以及
处理装置,其可操作地耦合到所述一组存储器组件,所述处理装置被配置为执行包含以下内容的操作:
在所述系统处接收将用户数据写入所述一组存储器组件的请求;
响应接收到所述请求:
将所述用户数据写入所述一组存储器组件的一组块中,与此同时推迟对所述一组块执行一组纠错奇偶校验计算;以及
更新计数器,所述计数器对等待至少一个纠错奇偶校验计算的执行的块进行计数;
确定所述系统是否满足空闲状态条件;以及
基于所述计数器或确定所述系统是否满足所述空闲状态条件中的至少一者,对所述一组块执行所述一组纠错奇偶校验计算。
11.根据权利要求10所述的系统,其中基于所述计数器或确定所述系统是否满足所述空闲状态条件中的至少一者,对所述一组块执行所述一组纠错奇偶校验计算包含:
响应于确定所述系统已经开始满足所述空闲状态条件,启动对所述一组块中的一个或多个块执行所述一组纠错奇偶校验计算。
12.根据权利要求11所述的系统,其中基于所述计数器或确定所述系统是否满足所述空闲状态条件中的至少一者,对所述一组块执行所述一组纠错奇偶校验计算进一步包含:
在所述系统离开所述空闲状态条件之前:
确定所述一组纠错奇偶校验计算的执行是否已经结束;以及
响应于确定所述一组纠错奇偶校验计算的执行已经结束,将来自所述一组纠错奇偶校验计算的一组纠错奇偶校验计算结果写入所述一组存储器组件。
13.根据权利要求12所述的系统,其中基于所述计数器或确定所述系统是否满足所述空闲状态条件中的至少一者,对所述一组块执行所述一组纠错奇偶校验计算进一步包含:
在所述系统离开所述空闲状态条件之前:
响应于确定所述一组纠错奇偶校验计算的执行已经结束,更新所述计数器以指示所述一组块中的所述一个或多个块不再等待至少一个纠错奇偶校验计算的执行。
14.根据权利要求11所述的系统,其中基于所述计数器或确定所述系统是否满足所述空闲状态条件中的至少一者,对所述一组块执行所述一组纠错奇偶校验计算进一步包含:
响应于确定在所述一组纠错奇偶校验计算的执行结束之前所述系统已经离开所述空闲状态条件,停止所述一组纠错奇偶校验计算的执行。
15.根据权利要求10所述的系统,进一步包含用于对要由所述系统执行的命令进行排队的命令队列,并且所述空闲状态条件包含命令队列满足空条件。
16.根据权利要求10所述的系统,其中基于所述计数器或确定所述系统是否满足所述空闲状态条件中的至少一者,对所述一组块执行所述一组纠错奇偶校验计算包含:
当系统不满足所述空闲状态条件时:
确定所述计数器是否已经超过阈值计数值;以及
响应于确定所述计数器已经超过所述阈值计数值,对所述一组块中的一个或多个块,从所述一组纠错奇偶校验计算中启动一个或多个纠错奇偶校验计算的执行。
17.根据权利要求10所述的系统,其中执行所述一组纠错奇偶校验计算包含并行执行来自所述一组纠错奇偶校验计算中的一个或多个纠错奇偶校验计算。
18.一种包含指令的非暂态计算机可读存储介质,当所述指令由处理装置执行时,所述指令使所述处理装置执行包含以下内容的操作:
将来自主机系统的用户数据写入存储器子系统的一组存储器组件的一组块中,与此同时推迟对所述一组块执行一组纠错奇偶校验计算;
更新跟踪数据以指示所述一组块正在等待至少一个纠错奇偶校验计算的执行;
确定所述存储器子系统是否满足空闲状态条件;以及
响应于确定所述存储器子系统已经开始满足所述空闲状态条件,启动对所述一组块中的一个或多个块执行所述一组纠错奇偶校验计算。
19.根据权利要求18所述的非暂态计算机可读存储介质,其中所述操作进一步包含:
在所述存储器子系统离开所述空闲状态条件之前:
确定一组纠错奇偶校验计算的执行是否已经结束;以及
响应于确定所述一组纠错奇偶校验计算的执行已经结束,将来自所述一组纠错奇偶校验计算的一组纠错奇偶校验计算结果写入所述一组存储器组件。
20.根据权利要求19所述的非暂态计算机可读存储介质,其中所述操作进一步包含:
在所述存储器子系统离开所述空闲状态条件之前:
响应于确定所述一组纠错奇偶校验计算的执行已经结束,更新所述跟踪数据以指示所述一组块中的所述一个或多个块不再等待至少一个纠错奇偶校验计算的执行。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/555,132 US10866861B1 (en) | 2019-08-29 | 2019-08-29 | Deferred error-correction parity calculations |
US16/555,132 | 2019-08-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112445646A CN112445646A (zh) | 2021-03-05 |
CN112445646B true CN112445646B (zh) | 2022-03-04 |
Family
ID=73746870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010879598.1A Active CN112445646B (zh) | 2019-08-29 | 2020-08-27 | 推迟的纠错奇偶校验计算 |
Country Status (2)
Country | Link |
---|---|
US (3) | US10866861B1 (zh) |
CN (1) | CN112445646B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10866861B1 (en) | 2019-08-29 | 2020-12-15 | Micron Technology, Inc. | Deferred error-correction parity calculations |
US11700020B2 (en) * | 2019-10-24 | 2023-07-11 | Microsoft Technology Licensing, Llc | Fault tolerant quantum error correction with linear codes |
US11593032B1 (en) * | 2021-08-06 | 2023-02-28 | Micron Technology, Inc. | Memory sub-system data migration |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106205728A (zh) * | 2014-12-05 | 2016-12-07 | 爱思开海力士有限公司 | 奇偶校验电路及包括该奇偶校验电路的存储器装置 |
CN108984329A (zh) * | 2017-05-31 | 2018-12-11 | 英特尔公司 | 延迟错误处理 |
CN110119246A (zh) * | 2018-02-06 | 2019-08-13 | 阿里巴巴集团控股有限公司 | 使用定制错误校正来适应固态驱动器中的可变页面大小 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5278838A (en) * | 1991-06-18 | 1994-01-11 | Ibm Corp. | Recovery from errors in a redundant array of disk drives |
US7562285B2 (en) * | 2006-01-11 | 2009-07-14 | Rambus Inc. | Unidirectional error code transfer for a bidirectional data link |
US7721160B2 (en) * | 2006-09-11 | 2010-05-18 | Advanced Micro Devices, Inc. | System for protecting data during high-speed bidirectional communication between a master device and a slave device |
WO2008070803A1 (en) * | 2006-12-06 | 2008-06-12 | Fusion Multisystems, Inc. (Dba Fusion-Io) | Apparatus, system, and method for managing data from a requesting device with an empty data token directive |
US8862973B2 (en) * | 2009-12-09 | 2014-10-14 | Intel Corporation | Method and system for error management in a memory device |
US8438344B2 (en) * | 2010-03-12 | 2013-05-07 | Texas Instruments Incorporated | Low overhead and timing improved architecture for performing error checking and correction for memories and buses in system-on-chips, and other circuits, systems and processes |
US10372531B2 (en) * | 2017-01-05 | 2019-08-06 | Texas Instruments Incorporated | Error-correcting code memory |
KR20180127707A (ko) * | 2017-05-22 | 2018-11-30 | 에스케이하이닉스 주식회사 | 메모리 모듈 및 이의 동작 방법 |
US20190243578A1 (en) * | 2018-02-08 | 2019-08-08 | Toshiba Memory Corporation | Memory buffer management for solid state drives |
US10776200B2 (en) * | 2018-06-27 | 2020-09-15 | Intel Corporation | XOR parity management on a physically addressable solid state drive |
US11494103B2 (en) * | 2019-08-02 | 2022-11-08 | EMC IP Holding Company LLC | Memory-efficient processing of RAID metadata bitmaps |
US10838811B1 (en) * | 2019-08-14 | 2020-11-17 | Silicon Motion, Inc. | Non-volatile memory write method using data protection with aid of pre-calculation information rotation, and associated apparatus |
US10866861B1 (en) | 2019-08-29 | 2020-12-15 | Micron Technology, Inc. | Deferred error-correction parity calculations |
-
2019
- 2019-08-29 US US16/555,132 patent/US10866861B1/en active Active
-
2020
- 2020-08-27 CN CN202010879598.1A patent/CN112445646B/zh active Active
- 2020-11-20 US US17/100,622 patent/US11294767B2/en active Active
-
2022
- 2022-03-09 US US17/690,742 patent/US11775389B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106205728A (zh) * | 2014-12-05 | 2016-12-07 | 爱思开海力士有限公司 | 奇偶校验电路及包括该奇偶校验电路的存储器装置 |
CN108984329A (zh) * | 2017-05-31 | 2018-12-11 | 英特尔公司 | 延迟错误处理 |
CN110119246A (zh) * | 2018-02-06 | 2019-08-13 | 阿里巴巴集团控股有限公司 | 使用定制错误校正来适应固态驱动器中的可变页面大小 |
Also Published As
Publication number | Publication date |
---|---|
US20210103497A1 (en) | 2021-04-08 |
US20220197744A1 (en) | 2022-06-23 |
US11775389B2 (en) | 2023-10-03 |
US11294767B2 (en) | 2022-04-05 |
CN112445646A (zh) | 2021-03-05 |
US10866861B1 (en) | 2020-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9753649B2 (en) | Tracking intermix of writes and un-map commands across power cycles | |
US9558125B2 (en) | Processing of un-map commands to enhance performance and endurance of a storage device | |
CN112445646B (zh) | 推迟的纠错奇偶校验计算 | |
CN110928807B (zh) | 用于检查存储器系统中的有效数据的设备和方法 | |
CN113126907B (zh) | 用于存储器装置的异步电力损失恢复 | |
WO2016172235A1 (en) | Method and system for limiting write command execution | |
US11017847B2 (en) | On-demand high performance mode for memory write commands | |
US11042481B1 (en) | Efficient processing of commands in a memory sub-system | |
US11487609B2 (en) | Separating parity data from host data in a memory sub-system | |
CN112835811A (zh) | 存储器系统及其操作方法 | |
CN113031856A (zh) | 存储器子系统中的断电数据保护 | |
CN115543186A (zh) | 使用命令序列分析管理存储器命令引擎 | |
CN113093990B (zh) | 存储器子系统处的数据块切换 | |
KR20220114078A (ko) | 캐시의 데이터 블록의 기록 모드 변경을 기반으로 한 미디어 관리 동작 수행 | |
KR20220041225A (ko) | 메모리 구성요소의 동일한 평면 내에서 데이터 압축 | |
US20230195350A1 (en) | Resequencing data programmed to multiple level memory cells at a memory sub-system | |
EP3853738A1 (en) | Cache operations in a hybrid dual in-line memory module | |
CN112912834B (zh) | 存取单元和管理片段存储器操作 | |
US10817435B1 (en) | Queue-based wear leveling of memory components | |
CN113129974A (zh) | 跟踪在存储器装置处执行的操作 | |
CN113012741A (zh) | 用于存储器子系统的媒体管理的弹性缓冲器 | |
US11966638B2 (en) | Dynamic rain for zoned storage systems | |
CN113253918A (zh) | 用于存储器子系统的介质管理的数据流处理 | |
CN113126899A (zh) | 完全多平面操作启用 | |
CN115512749A (zh) | 部分经编程存储器单元的擦除 |
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 |