CN116909802A - 用于经分区存储系统的动态rain - Google Patents
用于经分区存储系统的动态rain Download PDFInfo
- Publication number
- CN116909802A CN116909802A CN202310391705.XA CN202310391705A CN116909802A CN 116909802 A CN116909802 A CN 116909802A CN 202310391705 A CN202310391705 A CN 202310391705A CN 116909802 A CN116909802 A CN 116909802A
- Authority
- CN
- China
- Prior art keywords
- region
- data
- error correction
- zone
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 claims abstract description 281
- 238000012937 correction Methods 0.000 claims description 141
- 238000012545 processing Methods 0.000 claims description 64
- 238000000034 method Methods 0.000 claims description 59
- 230000004044 response Effects 0.000 claims description 26
- 238000013500 data storage Methods 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 description 28
- 230000008569 process Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000014616 translation Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012005 ligant binding assay Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000013102 re-test Methods 0.000 description 1
- 230000017702 response to host Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
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/1064—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 cache or content addressable memories
-
- 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/0689—Disk arrays, e.g. RAID, JBOD
-
- 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/1012—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 using codes or arrangements adapted for a specific type of error
- G06F11/1032—Simple parity
-
- 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/1044—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 with specific ECC/EDC distribution
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本公开涉及用于经分区存储系统的动态RAIN。本公开的各方面配置系统组件,例如存储器子系统控制器,以动态地生成用于基于区的存储器分配的独立节点冗余阵列RAIN奇偶校验信息。基于给定区或一组区是否满足区完整性准则,生成用于所述给定区或一组区的所述RAIN奇偶校验信息。所述区完整性准则可表示指定大小,使得当给定区达到所述指定大小时,生成用于所述区的所述奇偶校验信息。
Description
技术领域
本公开的实施例大体上涉及存储器子系统,且更具体地说,涉及存储器子系统中的纠错奇偶校验计算。
背景技术
存储器子系统可以是存储系统,例如固态硬盘(SSD),且可包含存储数据的一或多个存储器组件。存储器组件可例如为非易失性存储器组件和易失性存储器组件。一般来说,主机系统可利用存储器子系统以在存储器组件处存储数据以及从存储器组件检索数据。
发明内容
根据本公开的一方面,提供一种系统。所述系统包括:一组存储器组件;以及处理装置,其以操作方式耦合到所述一组存储器组件,经配置以执行包括以下各项的操作:接收将一组用户数据写入到存储器子系统的多个区中的区的请求;以及响应于所述请求:将所述一组用户数据写入到所述区;在将所述一组用户数据写入到所述区之后,确定写入到所述区的先前写入数据是否满足区完整性准则;以及基于写入到所述区的所述先前写入数据是否满足所述区完整性准则的所述确定的结果而生成用于所述区的一组纠错奇偶校验数据。
根据本公开的另一方面,提供一种方法。所述方法包括:接收将一组用户数据写入到存储器子系统的多个区中的区的请求;以及响应于所述请求:将所述一组用户数据写入到所述区;在将所述一组用户数据写入到所述区之后,确定写入到所述区的先前写入数据满足区完整性准则;以及基于写入到所述区的所述先前写入数据满足所述区完整性准则的所述确定的结果而生成用于所述区的一组纠错奇偶校验数据。
根据本公开的又一方面,提供一种非暂时性计算机可读存储媒体。所述非暂时性计算机可读存储媒体包括指令,所述指令在由处理装置执行时使所述处理装置执行包括以下各项的操作:接收将一组用户数据写入到存储器子系统的多个区中的区的请求;以及响应于所述请求:将所述一组用户数据写入到所述区;在将所述一组用户数据写入到所述区之后,确定写入到所述区的先前写入数据是否满足区完整性准则;以及基于写入到所述区的所述先前写入数据满足所述区完整性准则的所述确定的结果而生成用于所述区的一组纠错奇偶校验数据。
附图说明
根据下文给出的详细描述和本公开的各种实施例的附图,将更充分地理解本公开。
图1是说明根据本公开的一些实施例的包含存储器子系统的实例计算环境的框图。
图2是根据本公开的一些实施方案的实例基于区的纠错奇偶校验计算器的框图。
图3和4是根据本公开的一些实施方案的执行基于区的纠错奇偶校验计算的实例方法的流程图。
图5呈现说明根据本公开的一些实施方案的用于存储用户数据和纠错奇偶校验数据的一组实例区的表。
图6A和6B提供说明在其中一种方法执行基于区的纠错奇偶校验计算的一些实施例的上下文中计算环境的组件之间的交互的交互图。
图7是说明根据本公开的一些实施例的呈计算机系统形式的机器的图形表示的框图,在所述计算机系统内可执行一组指令以引起机器执行本文中所论述的任何一或多种方法。
具体实施方式
本公开的各方面配置系统组件,例如存储器子系统控制器,以动态地生成纠错奇偶校验数据,例如也称为独立磁盘冗余阵列(RAID)的独立节点冗余阵列(RAIN)奇偶校验数据以用于基于区的存储器分配。基于给定区或一组区是否满足区完整性准则,生成用于所述给定区或所述组区的奇偶校验数据。区完整性准则可表示指定大小和/或指定时间间隔,使得当给定区达到指定大小时和/或当指定时间间隔流逝后,生成用于所述区的奇偶校验数据。
存储器子系统可以是存储装置、存储器模块,或存储装置和存储器模块的混合。下文结合图1来描述存储装置和存储器模块的实例。通常,主机系统可利用存储器子系统,所述存储器子系统包含一或多个存储器组件,例如存储数据的存储器装置。主机系统可将存取请求(例如,写入命令、读取命令)发送到存储器子系统,以便将数据存储在存储器子系统处以及从存储器子系统读取数据。由主机指定的数据在下文中被称作“主机数据”或“用户数据”。数据可根据区存储于存储器子系统中。即,可在存储器子系统中限定各种区,每个区可唯一地与一组特定用户数据或应用程序相关联。举例来说,第一区可与第一应用程序(或被标识为从第一应用程序接收的用户数据)相关联,且第二区可与第二应用程序相关联。从第一应用程序接收的主机数据或用户数据可由存储器子系统存储在第一区中。所述区可具有相等或不相等大小,且可跨裸片上单个块、裸片上多个块、整个裸片或存储器子系统的一组裸片的大小。在一些实例中,存储器子系统包含经分区名字空间(ZNS)SSD存储器子系统。
主机请求可包含用于主机数据的逻辑地址信息(例如,逻辑块地址(LBA)、名字空间),其为主机系统使其与主机数据和其中存储或存取主机数据的特定区相关联的位置。逻辑地址信息(例如,LBA、名字空间)可以是用于主机数据的元数据的部分。元数据还可包含错误处理数据(例如,ECC码字、奇偶校验码)、数据版本(例如,用于区分所写入数据的时效)、有效位图(其LBA或逻辑传送单元含有有效数据)等。
存储器子系统可对存储在存储器装置上的主机数据发起媒体管理操作,例如写入操作。举例来说,存储器子系统的固件可移动各区或区内的数据以执行耗损均衡、读取干扰操作和/或其它类似功能。
“用户数据”可包含主机数据。下文中的“系统数据”是指由存储器子系统产生和/或维护以用于响应于主机请求而执行操作和用于媒体管理的数据。系统数据的实例包含但不限于系统表(例如,逻辑到物理地址映射表)、来自记录的数据、暂存数据等。
存储器装置可以是非易失性存储器装置。非易失性存储器装置是一或多个裸片的封装。每个裸片可包括一或多个平面。对于一些类型的非易失性存储器装置(例如,NAND装置),每个平面包括一组物理块。对于一些存储器装置,块是可擦除的最小区域。每个块包括一组页。每个页包括存储数据位的一组存储器单元。存储器装置可以是原始存储器装置(例如,NAND),其例如由外部控制器外部管理。存储器装置可以是受管理存储器装置(例如,受管理NAND),其为与本地嵌入式控制器组合以用于同一存储器装置封装内的存储器管理的原始存储器装置。存储器装置可划分成一或多个区,其中每个区与不同的一组主机数据或用户数据或应用程序相关联。
常规存储器子系统可采用纠错技术,例如使用独立NAND型快闪存储器装置的冗余阵列(下文称作RAIN技术)来保护存储在存储器子系统上的数据(例如,主机或用户数据)。纠错技术可包括跨受错误保护的数据(例如,主机/用户数据)的某一集合计算奇偶校验(例如,XOR奇偶校验)。通过此类纠错技术,如果由于任何原因而丢失(例如,损坏)集合的数据成员,则可重新执行奇偶校验计算且重新产生丢失的数据。由于例如RAIN技术等纠错技术变得越发复杂,经执行以实现纠错保护的并行奇偶校验计算的数目以及执行并行奇偶校验计算所需的存储器资源也可能越发复杂。举例来说,当一组存储器组件包括多平面NAND装置(例如,三层级单元(TLC)NAND装置)时,可能需要并行地执行多个(例如,几十个)奇偶校验计算以实施存储在存储器子系统上的数据保护(例如,针对主机/用户数据)。此类常规存储器子系统中的数据通常跨NAND存储器装置的多个裸片依序写入。当跨存储器装置的一组指定裸片的块的给定行完全写入数据时,执行RAIN奇偶校验计算且将其存储在与给定行相关联的奇偶校验块中。
虽然用于生成RAIN奇偶校验的此类方法通常对于常规存储器装置很好地起作用,但这些方法无法应用于区(ZNS,经分区名字空间)(或基于区的)存储器系统。这是因为数据被写入到存储器装置的特定区,而非跨存储器装置的顺序块写入数据直到指定数目的块被写入以用于生成RAIN奇偶校验。每个区可跨对应裸片或一组裸片中的一组相应块而非依序跨一行块。因此,整个行被完全写入的点是未知的。举例来说,特定应用程序可与跨单个裸片的区相关联。与所述应用程序相关联的用户或主机数据可存储在单个裸片上的所述区中。根据常规方法,当写入到与跨一组指定裸片的多个区相关联的整个行时(这可能永远不会发生),生成RAIN奇偶校验。这会导致不生成RAIN奇偶校验且丢失数据。
本公开的各方面通过配置系统组件(例如存储器子系统的存储器子系统控制器)以在符合区完整性准则或多个区完整性准则时生成用于特定区或一组区的奇偶校验数据(例如RAIN奇偶校验)来解决以上和其它不足。具体地说,本文所描述的一些实施例的存储器子系统控制器可在与存储器子系统相关联的给定区满足区完整性准则或条件时执行纠错技术的奇偶校验计算(在本文中称为纠错奇偶校验计算)。举例来说,一些实施例使存储器子系统在区的大小达到指定阈值时,例如当写入到所述区的数据大小达到最大区大小或所述区大小的指定分率(例如,最大区大小的25%、50%或75%)时,计算给定区的RAIN奇偶校验。作为另一实例,一些实施例使得存储器子系统在从数据最后写入到给定区的给定块以来流逝的时间达到指定阈值时计算给定区的RAIN奇偶校验。对于一些实施例,存储器子系统包括一组NAND存储器组件,且纠错奇偶校验计算可与(由存储器子系统)用以实现存储在所述一组NAND存储器组件上的数据(例如,主机/用户数据)的纠错保护的RAIN技术相关联。
通过在符合区完整性准则时生成用于给定区的奇偶校验数据,各种实施例可避免由于等待到跨多个裸片和区的整个行被写入所致的数据丢失风险。本文中所描述的各种实施例将经配置以(例如,经由数据计数阈值和时间段)使数据在执行纠错奇偶校验计算之前仅在小时间窗(当不符合区完整性准则时)无保护。
对于一些实施例,存储器子系统(例如,存储器子系统控制器)从主机系统接收主机或用户数据,且将所述主机/用户数据写入到包含存储器子系统的一组存储器组件上的一组块(例如,开放块)的区。当将主机/用户数据写入到所述一组块时,存储器子系统可将所述一组块的一组纠错保护操作延迟到存储器子系统的区满足区完整性准则的时间。对于一些实施例,所述一组纠错保护操作包括执行一组纠错奇偶校验计算且将其结果写入(例如,存储)到存储器子系统上。取决于实施例,所述一组纠错奇偶校验计算的结果可与所述一组存储器组件上的主机/用户数据一并写入,或可写入到存储器子系统的专用(例如,预留的)存储器,例如与所述一组存储器组件中用于存储受保护的数据(例如,主机/用户数据)的块分离的专用奇偶校验块。
执行纠错奇偶校验计算可包含从满足区完整性准则的区读取存储器页。将存储器页复制且存储为例如DRAM的临时存储位置中的初始奇偶校验数据。可确定写入到第二区的数据符合区完整性准则。在此类情况下,来自第二区的数据与存储于DRAM中的初始奇偶校验数据例如通过在当前存储于DRAM中的数据与存储于第二区中的数据之间执行逻辑XOR运算而组合。元数据与存储于DRAM中的奇偶校验数据相关联,所述元数据标识已生成奇偶校验数据的区。元数据可包含一组指针,其指定由存储于DRAM中的奇偶校验数据表示的每个区的起始和结束块地址。当由存储于DRAM中的奇偶校验数据表示的区的数目达到指定量(例如,四个区)时,奇偶校验数据从DRAM移动到存储器子系统上的永久存储位置。具体地说,可将纠错奇偶校验计算的结果集合从DRAM(临时存储位置)复制到存储器子系统上的永久位置,例如复制到存储器子系统的专用存储器(例如,所述一组存储器组件的专用奇偶校验块)。
如本文中所指出,对于一些实施例,(存储器子系统的)所述一组存储器组件包括用于存储纠错保护所述一组存储器组件上存储的数据(例如,主机/用户数据)的纠错奇偶校验计算数据(例如,结果)的一组专用块,其中所述一组专用块与存储器组件上存储受保护数据的一组块分离。以此方式,一些实施例可减少或避免当纠错奇偶校验计算数据与其正保护的数据一并存储时经历的顺序读取的性能代偿(不需要在顺序读取期间跳过纠错奇偶校验计算数据,因为其存储于与存储受保护数据的块分离的专用块中)。
对于本文中所描述的一些实施例,所述一组存储器组件包括用于存储用户数据的多个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的单元。在一些实例中,存储器组件112A到112N的存储器单元可分组成用于存储用于对应应用程序的数据的相等或不相等大小的一组不同区中。在此类情况下,每个应用程序可将数据存储在所述一组不同区中的相关联区中。
存储器子系统控制器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相关联的逻辑块地址与物理块地址之间的地址转换、从主机系统120接收的应用标识符与存储器组件112A到112N的一组区中的对应区之间的地址转换。这可用于将应用程序限制于仅将数据读取和写入到与相应应用程序相关联的一组区中的对应区/从中读取和写入数据。在此类情况下,即使存储器组件112A到112N上的其它处可能存在可用空间,给定应用程序也可例如通过擦除存储在区中的数据且将新数据写入到所述区而仅将数据读取/写入到相关联区/从中读取/写入数据。存储器子系统控制器115还可包含主机接口电路系统以通过物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统120接收到的命令转换成命令指令以存取存储器组件112A到112N,以及将与存储器组件112A到112N相关联的响应转换成用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如,DRAM或其它临时存储位置或装置)和地址电路系统(例如,行解码器和列解码器),其可从存储器子系统控制器115接收地址且对所述地址进行解码以存取存储器组件112A到112N。
存储器装置可以是原始存储器装置(例如,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确定写入到第一区的先前写入数据满足区完整性准则。举例来说,基于区的纠错奇偶校验计算器122可使存储器子系统控制器115检索与第一区相关联的大小阈值,且确定先前写入到第一区的数据的量满足所述大小阈值。如果写入到第一区的先前写入数据的量满足所述大小阈值,则可确定符合区完整性准则。大小阈值可对应于第一区的最大大小(例如,包含用于将数据存储在第一区中的块的裸片的大小)或可对应于最大大小的分率(例如,裸片的大小的25%、50%或75%)。
作为另一实例,基于区的纠错奇偶校验计算器122可使存储器子系统控制器115检索与第一区相关联的时间阈值,且确定自从先前写入数据写入到第一区以来流逝的时间满足时间阈值。如果自从先前写入数据写入到第一区以来流逝的时间满足时间阈值,则可确定符合区完整性准则。在此类情况下,在先前写入数据的量达到大小阈值之前生成第一组纠错奇偶校验数据。
基于区的纠错奇偶校验计算器122可使存储器子系统控制器115基于确定写入到第一区的先前写入数据满足区完整性准则的结果而生成用于第一区的第一组纠错奇偶校验数据。举例来说,基于区的纠错奇偶校验计算器122可使存储器子系统控制器115将先前写入数据从第一区复制到临时存储位置(例如,DRAM)且生成跟踪数据,所述跟踪数据标识与存储于临时存储位置中的纠错奇偶校验数据相关联的一组区。在一些情况下,第一组纠错奇偶校验数据包含独立节点冗余阵列(RAIN)奇偶校验数据。
取决于实施例,跟踪数据可保存在存储器子系统110的预留存储器空间中,所述存储器空间可由存储器组件112A到112N或本地存储器119提供。跟踪数据可包括可实施区标识信息的数据结构,所述区标识信息指示哪些区(邻近或非邻近)与当前存储在临时存储位置中的特定奇偶校验数据相关联。跟踪数据还可在数据结构中包含指示上一次更新奇偶校验数据(例如,由于确定另一区符合对应的区完整性准则)的时间的信息。
基于区的纠错奇偶校验计算器122可使存储器子系统控制器115确定存储于第二区中的数据满足区完整性准则,且响应于确定存储于第二区中的数据满足区完整性准则,基于存储于第二区中的数据更新存储于临时存储位置中的第一组纠错奇偶校验数据。在一些情况下,基于区的纠错奇偶校验计算器122可使存储器子系统控制器115通过组合存储在临时存储位置中的第一组纠错奇偶校验数据与存储在第二区中的数据来更新第一组纠错奇偶校验数据。在一些实例中,存储在临时存储位置中的第一组纠错奇偶校验数据通过执行两组数据的XOR(或其它合适的逻辑运算)而与存储在第二区中的数据组合。在更新第一组纠错奇偶校验数据之后,基于区的纠错奇偶校验计算器122可使存储器子系统控制器115更新跟踪数据以将第二区包含在与存储在临时存储位置中的纠错奇偶校验数据相关联的一组区中。即,跟踪数据可添加标识第一区的存储位置(例如,起始块编号和结束块编号)和第二区的存储位置(起始和结束块编号)的数据结构。
基于区的纠错奇偶校验计算器122可使存储器子系统控制器115确定所述一组区中的区的量满足奇偶校验存储准则。举例来说,奇偶校验存储准则可以是值,其表示多少区可表示为或组合成一组特定奇偶校验数据。奇偶校验存储准则的值可基于风险等级、数据丢失的容差和/或与特定类型的存储器组件112A到112N相关联的数据丢失的可能性而确定。在一些实例中,如果指定高等级的风险或低等级的数据丢失容差(意指无法容许一定量的数据丢失),则可将对应于奇偶校验存储准则的区的数目或量设置为第一量(例如,包含三个区的低量)。在一些实例中,如果指定低等级的风险或高等级的数据丢失容差,则对应于奇偶校验存储准则的区的数目或量可设置为大于第一量的第二量(例如,包含十个区的高量)。随着由奇偶校验存储准则表示的区的数目增加,奇偶校验数据写入到存储器组件112A到112N的次数减少,这会增加操作装置的速度和效率,还会增加数据丢失风险。基于区的纠错奇偶校验计算器122可使存储器子系统控制器115响应于确定区的量满足奇偶校验存储准则而将存储在临时存储位置中的纠错奇偶校验数据写入到存储器组件112A到112N上的指定奇偶校验存储位置。
基于区的纠错奇偶校验计算器122可使存储器子系统控制器115确定存储在临时存储位置中的纠错奇偶校验数据已变为无效。举例来说,归因于造成临时存储位置中的数据损坏或被删除的电力故障或硬件故障,临时存储位置可变得无效。在此类情况下,基于区的纠错奇偶校验计算器122可使存储器子系统控制器115存取跟踪数据以便标识与先前存储于临时存储位置中的纠错奇偶校验数据相关联的第二组区。基于区的纠错奇偶校验计算器122可使存储器子系统控制器115基于存储在第一组区或第二组区中的至少一者中的数据而再生纠错奇偶校验数据以用于存储在临时存储位置中。举例来说,基于区的纠错奇偶校验计算器122可使存储器子系统控制器115执行存储在由跟踪数据指定的所有区中的数据之间的XOR运算,且将XOR运算的结果存储在临时存储位置中。
基于区的纠错奇偶校验计算器122可使存储器子系统控制器115确定存储于第二区中的数据满足第二区完整性准则,所述第二区完整性准则可与第一区所关联的区完整性准则相同或不同。即,第一区完整性准则可对应于完全填充区(例如,其中区的所有块被写入或其中整个裸片已被写入),且第二区完整性准则对应于部分填充区(例如,其中区的某一分率的块被写入或其中整个裸片的某一分率被写入)。响应于确定存储于第二区中的数据满足第二区完整性准则,基于区的纠错奇偶校验计算器122可使存储器子系统控制器115生成用于第二区的第二组纠错奇偶校验数据。
在一些实例中,基于区的纠错奇偶校验计算器122可使存储器子系统控制器115维持各自与不同的区集合和不同类型的区完整性准则相关联的两组纠错奇偶校验。在此类情况下,当与第一组纠错奇偶校验相关联的跟踪数据指示第一组纠错奇偶校验表示的区的量达到奇偶校验存储准则时,基于区的纠错奇偶校验计算器122可使存储器子系统控制器115将第一组纠错奇偶校验写入到非易失性存储位置,而不将第二组纠错奇偶校验写入到另一非易失性存储位置。稍后,当与第二组纠错奇偶校验相关联的跟踪数据指示第二组纠错奇偶校验表示的区的量(其可与第一组纠错奇偶校验相关联的量相同或不同)达到相同或不同奇偶校验存储准则时,基于区的纠错奇偶校验计算器122可使存储器子系统控制器115将第二组纠错奇偶校验写入到对应的非易失性存储位置。
取决于实施例,基于区的纠错奇偶校验计算器122可包括使存储器子系统110(例如,存储器子系统控制器115)执行本文相对于基于区的纠错奇偶校验计算器122所描述的操作的逻辑(例如,一组暂时性或非暂时性机器指令,例如固件)或一或多个组件。基于区的纠错奇偶校验计算器122可包括能够执行本文中所描述的操作的有形或非有形单元。下文描述关于基于区的纠错奇偶校验计算器122的操作的其它细节。
图2是根据本公开的一些实施方案的实例基于区的纠错奇偶校验计算器200的框图。如所说明,基于区的纠错奇偶校验计算器200包括区奇偶校验计算跟踪器220、区完成监测器230和奇偶校验计算管理器240。对于一些实施例,基于区的纠错奇偶校验计算器200可在组件或布置方面与图2中所说明的内容不同(例如,更少或更多组件)。
基于区的纠错奇偶校验计算器200实现或促进将用户数据写入到包含一组存储器组件112的相应块的一组区,同时推迟对所述一组块执行一组纠错奇偶校验计算直到符合区完成准则为止。区奇偶校验计算跟踪器220实现或促进对用以标识与临时存储的奇偶校验数据相关联的一组区的跟踪数据以及自从奇偶校验数据生成以来流逝的时间的更新。举例来说,区奇偶校验计算跟踪器220可实现或促进块索引的生成,所述块索引指定奇偶校验数据已生成且临时存储于DRAM中的区。区完成监测器230实现或促进确定(例如,周期性地确定或监测)一或多个区中的先前写入数据是否满足区完成准则。即,区完成监测器230可存取区完成准则,例如具体区大小,且可将特定区中的当前数据量与具体区大小相比较。当特定区中的当前数据量达到具体区大小时,区完成监测器230可生成指示已符合特定区的区完整性准则的消息或触发事件或通知。
响应于检测到已符合用于特定区的区完整性准则,奇偶校验计算管理器240实现或促进对执行一组纠错奇偶校验计算的管理,例如生成用于特定区的RAIN奇偶校验。奇偶校验计算管理器240进行的管理可包含但不限于:发起对纠错奇偶校验计算的执行;清除由已停止的纠错奇偶校验计算生成的中间/部分纠错奇偶校验计算结果的存储器;例如通过执行XOR运算组合存储在临时存储位置中的当前奇偶校验数据与特定区中的数据;和/或当纠错奇偶校验计算已完成执行时,写入纠错奇偶校验计算的一组结果(例如,到存储器组件112的专用奇偶校验块)。
图3和4是根据本公开的一些实施方案的执行基于区的纠错奇偶校验计算的实例方法300、400的流程图。方法300、400中的任一者可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,通过图1的存储器子系统控制器115执行方法300。在这些实施例中,方法300或方法400可至少部分地由基于区的纠错奇偶校验计算器122执行。尽管以特定顺序或次序来展示过程,但除非另有指定,否则可修改所述过程的次序。因此,所说明实施例仅应理解为实例,所说明过程可以不同次序执行,且一些过程可并行地执行。另外,在各种实施例中可省去一或多个过程。因此,并非每个实施例中都需要所有过程。其它过程流也是可能的。
现参考图3,方法(或过程)300开始于操作305,其中存储器子系统的(例如,存储器子系统控制器115的处理器的)处理装置接收将第一组用户数据写入到存储器子系统的存储器组件(例如,存储器组件112A到112N)的多个区中的第一区的请求。对于一些实施例,所述请求来自以通信方式耦合到存储器子系统的主机系统(例如,主机系统120)。
在操作310,存储器子系统的处理装置响应于在操作305处接收到请求而将第一组用户数据写入到第一区,同时推迟对第一区的一组纠错奇偶校验计算的执行直到符合区完成准则为止。对于一些实施例,对一组块执行所述一组纠错奇偶校验计算的一组结果促进所述一组块的纠错保护。举例来说,一组存储器组件可包括一组NAND装置,且错误保护技术(由所述一组纠错奇偶校验计算促进)包括如本文中所描述的RAIN技术。
此后,在操作315,存储器子系统的处理装置确定写入到第一区的先前写入数据是否满足区完成准则。举例来说,处理装置可存取与第一区完成准则相关联的区大小和当前存储于第一区中的数据量的大小。如果当前存储在第一区中的数据量达到或超过或对应于区大小或阈值大小,则可确定符合区完成准则。在一些实例中,处理装置可存取与第一区完成准则相关联的时间阈值和自从数据写入到第一区以来流逝的时间。如果流逝的时间达到或超过或对应于时间阈值,则可确定符合区完成准则。
在操作320,存储器子系统的处理装置基于确定写入到第一区的先前写入数据是否满足区完整性准则的结果而生成用于第一区的第一组纠错奇偶校验数据。存储器子系统的处理装置例如通过将来自第一区的数据复制到临时存储位置和/或通过将来自第一区的数据与当前存储于临时存储位置中的数据组合来对第一区执行所述一组纠错奇偶校验计算。在一些情况下,临时存储位置可不存储任何数据,因为先前未计算或生成奇偶校验。在此类情况下,仅将来自第一区的数据复制到临时存储位置而不执行任何其它奇偶校验计算(例如,XOR计算)。当第二区将被包含在临时存储位置中时,当前存储在临时存储位置中的数据(例如,第一区数据)与来自第二区的数据进行XOR运算。具体来说,在一些实例中,可在符合区完成准则且更新临时存储位置之后更新第一区中的数据以表示第一区中的数据。在此类情况下,可立即更新临时存储位置以表示第一区中的经更新数据。即,一旦给定区已到达区完成准则,就可在新数据写入到给定区时连续地更新存储在临时存储位置中的对应奇偶校验数据。这确保将奇偶校验数据维持为相对于写入到由奇偶校验数据表示的一组区的数据是当前奇偶校验数据。
处理装置可确定数据写入到第二区(其邻近于或不邻近于第一区)。处理装置可确定还符合第二区的区完成准则。作为响应,处理装置可组合来自第二区的数据与当前存储在临时存储位置中(例如,用于第一区)的奇偶校验数据,以便生成表示来自第一区和第二区的数据的奇偶校验。处理装置可确定由存储在临时存储位置中的奇偶校验数据表示的区的数目已达到阈值或奇偶校验存储准则。在此类情况下,处理装置可将存储在临时存储位置中的奇偶校验数据移动到永久或非易失性存储位置。存储器子系统可舍弃在奇偶校验数据移动到永久存储位置之后以来生成的任何中间/部分纠错奇偶校验数据,由此释放执行一组纠错奇偶校验计算时所使用的任何存储器资源(例如,在本地存储器119上)。
现参考图4,方法(或过程)400开始于操作405,其中存储器子系统的处理装置接收将第一组用户数据写入到第一区的请求。
在操作410,处理装置可将第一组用户数据写入到第一区。此后,在操作415,处理装置可存取用于第一区的区完整性准则,且在操作420,可确定是否已满足用于第一区的区完整性准则(如上文所论述)。响应于确定已满足第一区的区完整性准则,方法进行到操作435。响应于确定尚未满足用于第一区的区完整性准则,方法进行到操作430。
在操作430,处理装置等待对第一区的额外存取请求以重新测试区完整性准则。举例来说,如果写入到第一区的数据量不对应于大小阈值,则处理装置继续监测第一区的存取模式以确定写入到第一区的数据的量何时达到大小阈值。此时,处理装置执行操作435以生成用于第一区的纠错奇偶校验数据。在一些情况下,处理装置通过将数据从第一区复制到临时存储位置和/或通过将第一区数据和当前存储在临时存储位置中的数据组合(执行XOR运算)而生成纠错奇偶校验数据。
此后,处理装置执行操作440以生成与纠错奇偶校验数据相关联的跟踪数据。跟踪数据可指定由纠错奇偶校验数据表示的每个区的边界或索引。在操作445,跟踪数据可连同纠错奇偶校验数据一起存储在永久存储位置中或存储在临时存储位置中。此后,处理装置执行操作450以确定由跟踪数据表示的区的量是否满足奇偶校验存储准则(例如,区的阈值量)。在此类情况下,处理装置执行操作455以将纠错奇偶校验和/或跟踪数据从临时存储位置移动到非易失性或永久存储装置上的指定奇偶校验存储位置。
图5呈现表500,说明根据一些实施例的将纠错奇偶校验生成和存储基于一组存储器组件的专用数据区的纠错保护技术(更具体地,RAIN技术)的实例。如表500中所展示,实例RAIN技术由七个NAND裸片(裸片0到7)实施,其中每个裸片具有一组块或平面。对于一些实施例,使用具有多平面支持的SLC NAND装置实施裸片。每个平面上的每个存储器页0到6的数据组块大小可包括16KB。图中展示的不同着色图案表示与不同应用程序相关联的不同区。
在一些情况下,第一区510可对应于第一大小(例如,裸片0的最大大小)且包含第一数据块512和第二数据块514。第二区520可对应于第二大小且可经配置以将数据存储在裸片1的所有块上;第三区530可经配置以将数据存储在裸片2的所有块上;第四区540可经配置以将数据存储在裸片4的所有块上或裸片4的某一指定分率上;第五区550可经配置以将数据存储在裸片6的所有块上或裸片6的某一指定分率上;且奇偶校验存储位置560可经配置以将数据永久地存储在裸片7上。
在一些实例中,用户数据可写入到第一区510。处理装置可确定写入到第一区510的用户数据未能满足区完整性准则。情况可能如此,因为第一区510经配置以将数据存储在裸片0的所有块上,且写入到第一区510的数据量尚未完全填充裸片0的所有块。同时或稍晚,可将用户数据写入到第二区520。处理装置可确定写入到第二区520的用户数据满足区完整性准则。情况可能如此,因为第二区520经配置以将数据存储在裸片1的所有块上,且写入到第二区520的数据量已完全填充裸片1的所有块。在此类情况下,处理装置可将数据从第二区520复制到临时存储位置。在稍后时间,可将用户数据写入到第五区550。处理装置可确定写入到第五区550的用户数据满足区完整性准则。在此类情况下,处理装置可组合写入到第五区550的数据与先前写入到临时存储位置的第二区520的数据。处理装置可更新跟踪数据以指定第二区520和第五区550由存储于临时存储位置中的奇偶校验数据表示。处理装置可计算多少区当前由跟踪数据表示。响应于确定由跟踪数据表示的区的量超过或对应于奇偶校验存储准则(或如果自从奇偶校验数据最后存储在临时存储位置中以来流逝的时间超过时间阈值),处理装置将奇偶校验数据从临时存储位置移动到奇偶校验存储位置560。
在一些实例中,用户数据可写入到第三区530。处理装置可确定写入到第三区530的用户数据满足区完整性准则。情况可能如此,因为第三区530经配置以将数据存储在裸片2的所有块上,且写入到第二区520的数据量已填充超过裸片2的所有块的指定分率(例如,25%、50%或75%)。在此类情况下,处理装置可将数据从第三区530复制到临时存储位置。在稍后时间,可将用户数据写入到第四区540。处理装置可确定写入到第四区540的用户数据满足区完整性准则(例如,因为写入到第四区540的数据量已填充超过裸片4的所有块的指定分率(例如,25%、50%或75%))。在此类情况下,处理装置可组合写入到第四区540的数据与先前写入到临时存储位置的第三区530的数据。处理装置可更新跟踪数据以指定第三区530和第四区540由存储于临时存储位置中的奇偶校验数据表示。处理装置可计算多少区当前由跟踪数据表示。响应于确定由跟踪数据表示的区的量超过或对应于奇偶校验存储准则(或如果自从奇偶校验数据最后存储在临时存储位置中以来流逝的时间超过时间阈值),处理装置将奇偶校验数据从临时存储位置移动到奇偶校验存储位置560。
图6A和6B提供说明在其中方法(或过程)执行基于区的纠错奇偶校验计算的一些实施例的上下文中计算环境100的组件之间的交互的交互图。方法的操作可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,通过存储器子系统控制器115执行方法。尽管以特定顺序或次序来展示操作,但除非另有指定,否则可修改所述过程的次序。因此,所说明实施例仅应理解为实例,且所说明过程可以不同次序执行,且一些过程可并行地执行。另外,在各种实施例中可省去一或多个过程。因此,并非每个实施例中都需要所有过程。
在图6A和6B中说明的实例的上下文中,主机系统可包括主机系统120,存储器子系统控制器的处理器可包括存储器子系统110的处理器117,且一或多个存储器组件可包括存储器组件112A到112N中的至少一者。
如图6A中所展示,在操作602,主机系统(例如,经由主机系统120的处理器)生成将第一组用户数据写入到存储器子系统的多个区中的第一区的请求,且在操作612,存储器子系统控制器的处理器从主机系统接收所述请求。
在操作614,存储器子系统控制器的处理器将用户数据写入到一组存储器组件(例如,存储器组件112A到112N)的第一区的一组块(例如,开放块),同时推迟对正写入用户数据的块的一或多个纠错奇偶校验计算的执行。在操作630,第一区的所述一组存储器组件接收且存储第一组用户数据。
在操作618,存储器子系统控制器的处理器确定写入到第一区的数据满足区完整性准则。
现参考图6B,在操作620,存储器子系统控制器的处理器基于确定写入到第一区的先前写入数据满足区完整性准则的结果而生成用于第一区的第一组纠错奇偶校验数据。第一组纠错奇偶校验数据存储在临时存储位置中且与指定由临时存储位置奇偶校验数据表示的区的跟踪数据相关联。在操作614,存储器子系统控制器的处理器确定一组区中的区的量满足奇偶校验存储准则(例如,区的量对应于区阈值的量,或自从已更新临时存储位置以来流逝的时间超过时间阈值)。在此类情况下,在操作632,存储器子系统控制器的处理器将第一组纠错奇偶校验数据写入或存储到所述一组存储器组件(例如,通过将奇偶校验数据从临时存储位置移动到所述一组存储器组件)。
图7说明呈计算机系统700的形式的实例机器,在所述计算机系统内可执行一组指令,以用于使所述机器执行本文中所论述的任何一或多个方法。在一些实施例中,计算机系统700可对应于主机系统(例如,图1的主机系统120),其包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的基于区的纠错奇偶校验计算器122的操作)。在替代实施例中,所述机器可连接(例如联网)到局域网(LAN)、内联网、外联网和/或互联网中的其它机器。所述机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的容量进行操作。
所述机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、网络交换机、网桥,或能够(循序或以其它方式)执行指定待由所述机器采取的动作的指令集的任何机器。此外,尽管说明了单个机器,但还应认为术语“机器”包含分别或共同地执行一组(或多组)指令以执行本文所论述的任何一或多个方法的任何机器集合。
实例计算机系统700包含处理装置702、主存储器704(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器706(例如,快闪存储器、静态随机存取存储器(SRAM)等)以及数据存储系统718,它们通过总线730彼此通信。
处理装置702表示一或多个通用处理装置,例如微处理器、中央处理单元等。更具体地,处理装置702可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置702还可以是一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置702经配置以执行用于执行本文所论述的操作和步骤的指令726。计算机系统700还可包含网络接口装置708以在网络720上通信。
数据存储系统718可包含机器可读存储媒体724(也称为计算机可读媒体),其上存储有体现本文所描述的任何一或多个方法或功能的一或多组指令726或软件。指令726还可在其由计算机系统700执行的期间完全或至少部分地驻存在主存储器704内和/或处理装置702内,主存储器704和处理装置702也构成机器可读存储媒体。机器可读存储媒体724、数据存储系统718和/或主存储器704可对应于图1的存储器子系统110。
在一个实施例中,指令726包含用以实施对应于基于区的纠错奇偶校验计算器(例如,图1的基于区的纠错奇偶校验计算器122)的功能的指令。尽管在实例实施例中将机器可读存储媒体724展示为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一组或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行且使机器执行本公开的任何一或多个方法的一组指令的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体以及磁性媒体。
已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域中的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。算法在此处以及通常被认为是产生所要结果的操作的自洽序列。所述操作是要求对物理量进行物理操控的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。有时,已证明主要出于通用的原因将这些信号称为位、值、元件、符号、字符、项、数字等是方便的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便标签。本公开可指计算机系统或类似电子计算装置的动作和过程,其操控且将计算机系统的寄存器和存储器内表示为物理(电子)量的数据变换成类似地表示为计算机系统的存储器或寄存器或其它此类信息存储系统内的物理量的其它数据。
本公开还涉及用于执行本文中的操作的设备。此设备可出于既定目的而专门构造,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储于计算机可读存储媒体中,例如但不限于各自耦合到计算机系统总线的任何类型的盘,其包含软盘、光盘、CD-ROM和磁性光盘;只读存储器(ROM);随机存取存储器(RAM);可擦除可编程只读存储器(EPROM);EEPROM;磁卡或光卡或适合于存储电子指令的任何类型的媒体。
本文中呈现的算法和显示在本质上不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或可证明构建更专用设备以执行所述方法是方便的。如上文描述中所阐述的那样来呈现各种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施本文中所描述的本公开的教示。
本公开可提供为可包含上面存储有指令的机器可读媒体的计算机程序产品或软件,所述指令可用以编程计算机系统(或其它电子装置)以执行根据本公开的过程。机器可读媒体包含用于以机器(例如,计算机)可读形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器可读(例如,计算机可读)存储媒体,例如只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前述说明书中,已参考其特定实例实施例描述了本公开的实施例。应显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和附图。
Claims (20)
1.一种系统,其包括:
一组存储器组件;以及
处理装置,其以操作方式耦合到所述一组存储器组件,经配置以执行包括以下各项的操作:
接收将一组用户数据写入到存储器子系统的多个区中的区的请求;以及
响应于所述请求:
将所述一组用户数据写入到所述区;
在将所述一组用户数据写入到所述区之后,确定写入到所述区的先前写入数据是否满足区完整性准则;以及
基于写入到所述区的所述先前写入数据是否满足所述区完整性准则的所述确定的结果而生成用于所述区的一组纠错奇偶校验数据。
2.根据权利要求1所述的系统,其中写入到所述区的所述先前写入数据是否满足所述区完整性准则的所述确定包括:
确定写入到所述区的所述先前写入数据的量是否满足大小阈值;以及
响应于确定所述量满足所述大小阈值,确定写入到所述区的所述先前写入数据是否满足所述区完整性准则。
3.根据权利要求2所述的系统,其中所述大小阈值对应于所述区的最大大小。
4.根据权利要求2所述的系统,其中所述大小阈值对应于所述区的最大大小的指定分率。
5.根据权利要求2所述的系统,其中写入到所述区的所述先前写入数据是否满足所述区完整性准则的所述确定包括:
确定自从所述先前写入数据写入到所述区以来流逝的时间是否满足时间阈值;以及
响应于确定所述流逝的时间满足所述时间阈值,确定写入到所述区的所述先前写入数据是否满足所述区完整性准则,其中在所述先前写入数据的所述量达到所述大小阈值之前生成所述一组纠错奇偶校验数据。
6.根据权利要求1所述的系统,其中用于生成所述一组纠错奇偶校验数据的所述操作包括:
将所述先前写入数据从所述区复制到临时存储位置;以及
生成跟踪数据,所述跟踪数据标识与存储于所述临时存储位置中的纠错奇偶校验数据相关联的一组区。
7.根据权利要求6所述的系统,其中所述区是第一区,所述操作包括:
确定存储于第二区中的数据是否满足所述区完整性准则;以及
响应于确定存储于所述第二区中的所述数据满足所述区完整性准则,基于存储于所述第二区中的所述数据更新存储于所述临时存储位置中的所述一组纠错奇偶校验数据。
8.根据权利要求7所述的系统,其中用于更新所述一组纠错奇偶校验数据的所述操作包括:
将存储在所述临时存储位置中的所述一组纠错奇偶校验数据与存储在所述第二区中的所述数据组合。
9.根据权利要求7所述的系统,所述操作包括:
更新所述跟踪数据以包含与存储于所述临时存储位置中的所述纠错奇偶校验数据相关联的所述一组区中的所述第二区。
10.根据权利要求9所述的系统,所述操作包括:
确定所述一组区中的区的量是否满足奇偶校验存储准则;以及
响应于确定所述区的量满足所述奇偶校验存储准则,将存储于所述临时存储位置中的所述纠错奇偶校验数据写入到所述存储器子系统上的指定奇偶校验存储位置。
11.根据权利要求9所述的系统,其中所述一组区是第一组区,所述操作包括:
确定存储在所述临时存储位置中的所述纠错奇偶校验数据是否已变为无效;以及
响应于确定存储在所述临时存储位置中的所述纠错奇偶校验数据已变为无效:
存取所述跟踪数据;
基于所述跟踪数据标识与先前存储于所述临时存储位置中的纠错奇偶校验数据相关联的第二组区;以及
基于存储于所述第一组区或所述第二组区中的至少一者中的数据而再生所述纠错奇偶校验数据以用于存储于所述临时存储位置中。
12.根据权利要求6所述的系统,其中所述临时存储位置包括动态随机存取存储器DRAM装置上的数据存储位置。
13.根据权利要求1所述的系统,其中所述一组纠错奇偶校验数据包括独立节点冗余阵列RAIN奇偶校验数据。
14.根据权利要求1所述的系统,其中所述区完整性准则包括第一区完整性准则,所述区是第一区,其中所述一组纠错奇偶校验数据是第一组纠错奇偶校验数据,所述操作包括:
确定存储于第二区中的数据是否满足第二区完整性准则;以及
响应于确定存储于所述第二区中的所述数据满足所述第二区完整性准则,生成用于所述第二区的第二组纠错奇偶校验数据。
15.根据权利要求14所述的系统,其中所述区完整性准则对应于完全填充区,且所述第二区完整性准则对应于部分填充区。
16.根据权利要求14所述的系统,其中所述第一组纠错奇偶校验数据的第一大小不同于所述第二组纠错奇偶校验数据的第二大小。
17.一种方法,其包括:
接收将一组用户数据写入到存储器子系统的多个区中的区的请求;以及
响应于所述请求:
将所述一组用户数据写入到所述区;
在将所述一组用户数据写入到所述区之后,确定写入到所述区的先前写入数据满足区完整性准则;以及
基于写入到所述区的所述先前写入数据满足所述区完整性准则的所述确定的结果而生成用于所述区的一组纠错奇偶校验数据。
18.根据权利要求17所述的方法,其中写入到所述区的所述先前写入数据满足所述区完整性准则的所述确定包括:
确定写入到所述区的所述先前写入数据的量满足大小阈值;以及
响应于确定所述量满足所述大小阈值,确定写入到所述区的所述先前写入数据满足所述区完整性准则。
19.根据权利要求18所述的方法,其中所述大小阈值对应于所述区的最大大小。
20.一种包括指令的非暂时性计算机可读存储媒体,所述指令在由处理装置执行时使所述处理装置执行包括以下各项的操作:
接收将一组用户数据写入到存储器子系统的多个区中的区的请求;以及
响应于所述请求:
将所述一组用户数据写入到所述区;
在将所述一组用户数据写入到所述区之后,确定写入到所述区的先前写入数据是否满足区完整性准则;以及
基于写入到所述区的所述先前写入数据满足所述区完整性准则的所述确定的结果而生成用于所述区的一组纠错奇偶校验数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/720,136 US11966638B2 (en) | 2022-04-13 | 2022-04-13 | Dynamic rain for zoned storage systems |
US17/720,136 | 2022-04-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116909802A true CN116909802A (zh) | 2023-10-20 |
Family
ID=88307573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310391705.XA Pending CN116909802A (zh) | 2022-04-13 | 2023-04-13 | 用于经分区存储系统的动态rain |
Country Status (2)
Country | Link |
---|---|
US (1) | US11966638B2 (zh) |
CN (1) | CN116909802A (zh) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11340987B1 (en) * | 2021-03-04 | 2022-05-24 | Netapp, Inc. | Methods and systems for raid protection in zoned solid-state drives |
US11803329B2 (en) * | 2021-11-22 | 2023-10-31 | Netapp, Inc. | Methods and systems for processing write requests in a storage system |
-
2022
- 2022-04-13 US US17/720,136 patent/US11966638B2/en active Active
-
2023
- 2023-04-13 CN CN202310391705.XA patent/CN116909802A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US11966638B2 (en) | 2024-04-23 |
US20230333783A1 (en) | 2023-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8266501B2 (en) | Stripe based memory operation | |
US11775389B2 (en) | Deferred error-correction parity calculations | |
US11487609B2 (en) | Separating parity data from host data in a memory sub-system | |
US11836392B2 (en) | Relocating data to low latency memory | |
CN111352859A (zh) | 用于存储器子系统的不良块管理 | |
US20230061994A1 (en) | Enabling stripe-based operations for error recovery at a memory sub-system | |
US20210193231A1 (en) | Managing read voltage level of data units in a memory device using program-time proximity | |
US11940912B2 (en) | Managing power loss recovery using a dirty section write policy for an address mapping table in a memory sub-system | |
US20220334759A1 (en) | Data transfer management within a memory device having multiple memory regions with different memory densities | |
US11609855B2 (en) | Bit masking valid sectors for write-back coalescing | |
US20190310918A1 (en) | Meta Data Protection against Unexpected Power Loss in a Memory System | |
US11868633B2 (en) | Smart swapping and effective encoding of a double word in a memory sub-system | |
US11966638B2 (en) | Dynamic rain for zoned storage systems | |
US20230396270A1 (en) | Dynamic decoding for memory systems | |
US11960745B2 (en) | Empty page scan operations adjustment | |
CN114051605B (zh) | 基于耐久性条件而改变待用于条带的存储器组件 | |
US11709601B2 (en) | Redundancy metadata for multi-plane memory access failure | |
US20240143170A1 (en) | Runtime storage capacity reduction avoidance in sequentially-written memory devices | |
US20230395152A1 (en) | Memory cell voltage level selection | |
US20240184695A1 (en) | Managing power loss recovery using a dirty section write policy for an address mapping table in a memory sub-system | |
CN113126899A (zh) | 完全多平面操作启用 | |
CN115437558A (zh) | 存储器系统中的对角页映射 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |