CN113035262A - 存储器子系统中奇偶校验数据的管理 - Google Patents
存储器子系统中奇偶校验数据的管理 Download PDFInfo
- Publication number
- CN113035262A CN113035262A CN202011551881.8A CN202011551881A CN113035262A CN 113035262 A CN113035262 A CN 113035262A CN 202011551881 A CN202011551881 A CN 202011551881A CN 113035262 A CN113035262 A CN 113035262A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- parity
- xor
- storage area
- 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 title claims abstract description 243
- 238000000034 method Methods 0.000 claims description 46
- 238000012545 processing Methods 0.000 claims description 41
- 238000011084 recovery Methods 0.000 claims description 14
- 238000013523 data management Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 18
- 238000004891 communication Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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
- 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
-
- 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
- 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/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
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30029—Logical and Boolean instructions, e.g. XOR, NOT
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/313—In storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/46—Caching storage objects of specific type in disk cache
- G06F2212/461—Sector or disk block
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/46—Caching storage objects of specific type in disk cache
- G06F2212/466—Metadata, control data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash 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)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请涉及存储器子系统中奇偶校验数据的管理。将主机数据写入到存储器子系统的存储区域的页条带中的一组页。产生对应于写入到所述存储区域的所述一组页的一部分的所述主机数据的一组异或XOR奇偶校验值。通过使用所述一组XOR奇偶校验值执行XOR操作来产生额外XOR奇偶校验值。包含所述一组XOR奇偶校验值和所述额外XOR奇偶校验值的奇偶校验数据存储在所述存储器子系统的高速缓存存储器中。将所述奇偶校验数据写入到所述存储区域的可用页条带。
Description
技术领域
本公开的实施例大体上涉及存储器子系统,且更具体来说,涉及存储器子系统中奇偶校验数据的管理。
背景技术
一种存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统来将数据存储在存储器装置处且从存储器装置检索数据。
发明内容
在一方面中,本公开涉及一种方法,其包括:通过处理装置将主机数据写入到存储器子系统的存储区域的页条带中的一组页;产生对应于写入到存储区域的所述一组页的一部分的主机数据的一组异或(XOR)奇偶校验值;通过使用所述一组XOR奇偶校验值执行XOR操作来产生额外XOR奇偶校验值;将包括所述一组XOR奇偶校验值和额外XOR奇偶校验值的奇偶校验数据存储在存储器子系统的高速缓存存储器中;且将奇偶校验数据写入到存储区域的可用页条带。
在另一方面中,本公开涉及一种包括指令的非暂时性计算机可读媒体,所述指令在由处理装置执行时使所述处理装置执行包括以下各项的操作:检测与写入到存储器子系统的存储区域的页的主机数据相关联的错误;确定对应于主机数据的奇偶校验数据存储在存储器子系统的高速缓存存储器中;且基于存储在高速缓存存储器中的奇偶校验数据执行数据恢复操作。
在又一方面中,本公开涉及一种系统,其包括:存储器装置;和处理装置,其以操作方式与存储器装置耦合以执行包括以下各项的操作:通过处理装置将主机数据写入到存储器子系统的存储区域的页条带中的一组页;产生对应于写入到存储区域的所述一组页的一部分的主机数据的一组异或(XOR)奇偶校验值;通过使用所述一组XOR奇偶校验值执行XOR操作来产生额外XOR奇偶校验值;将包括所述一组XOR奇偶校验值和额外XOR奇偶校验值的奇偶校验数据存储在存储器子系统的高速缓存存储器中;且将奇偶校验数据写入到存储区域的可用页条带。
附图说明
根据下文给出的详细描述和本公开的各种实施例的附图,将更充分地理解本公开。然而,附图不应被视为将本公开限制于具体实施例,而是仅用于解释和理解。
图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
图2为根据一些实施例的用以管理与写入到存储器子系统的存储区域的主机数据有关的奇偶校验数据的实例方法的流程图。
图3说明根据一些实施例的包含具有存储器子系统的奇偶校验数据管理组件的控制器的实例环境。
图4说明根据一些实施例的与奇偶校验数据管理过程相关的存储在存储器子系统的存储区域中的实例块。
图5为根据一些实施例的使用存储在存储器子系统的高速缓存存储器中的奇偶校验数据执行数据恢复操作的实例方法的流程图。
图6为本公开的实施方案可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的各方面涉及存储器子系统中奇偶校验数据的管理。存储器子系统可以是存储装置、存储器模块,或存储装置和存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个组件(例如,存储数据的存储器装置)的存储器子系统。主机系统可提供待存储在存储器子系统处的数据且可请求待从存储器子系统检索的数据。
存储器装置可包含可存储来自主机系统的数据的非易失性存储器装置。非易失性存储器装置的一个实例是与非(NAND)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。各种数据操作可在存储器子系统上的存储器装置的存储器单元上执行。数据可写入到存储器单元、从存储器单元读取以及从存储器单元擦除。存储器单元可分组到写入单元(例如页)中。对于一些类型的存储器装置,页为最小写入单元。页为同一字线上的一组单元。页大小表示页的单元的特定数目。对于一些类型的存储器装置(例如,NAND),存储器单元可分组到擦除单元(例如作为一组页的物理块)中。物理块为页(单元行)和字符串(单元列)的2维存储器阵列。数据可逐页写入到块。可擦除块层级处的数据。然而,无法擦除块的部分。多个块可分组以形成平面。一或多个平面可分组在一起以形成存储器装置的裸片。单个裸片或堆叠在彼此的顶部上的多个裸片可分组以形成封装。封装中的裸片可指派到一或多个信道以用于与存储器子系统控制器通信。
裸片在下文又称为逻辑单元(LUN)。LUN可含有一或多个平面。存储器子系统可使用分带方案来在执行数据操作(例如,写入、读取、擦除)时将数据的各种组处理为单元。LUN条带为在写入、读取或擦除数据时处理为一个单元的平面的集合。LUN条带中的每一平面可并行地进行LUN条带中的所有其它平面的相同操作。块条带为处理为单元的块的集合(LUN条带中的每一平面一个)。块条带中的块在其相应平面中具有相同块标识(例如,块编号)。页条带为在块条带上具有相同页标识(例如,相同页码)且处理为单元的一组页。
数据操作可为主机发起的操作。举例来说,主机系统可在存储器子系统上发起数据操作(例如,写入、读取、擦除等)。主机系统可将存取请求(例如,写入命令、读取命令)发送到存储器子系统,以便将数据存储在存储器子系统处的存储器装置上,且从存储器子系统上的存储器装置读取数据。如由主机请求指定,待读取或写入的数据在下文中称为“主机数据”。主机请求可包含用于主机数据的逻辑地址信息(例如,逻辑块地址(LBA)、名称空间),其为主机系统与主机数据相关联的位置。
由于主机数据存储在存储器子系统上,因此存储器子系统可实施用以在存储主机数据的存储器装置的一部分故障的情况下保护主机数据的冗余机构。举例来说,对于与非(NAND)型快闪存储器装置,存储器子系统可实施用以为存储在存储器子系统上的数据提供冗余的独立NAND冗余阵列(RAIN)操作。
在将从主机系统接收到的数据写入到存储器子系统时,存储器子系统可产生奇偶校验数据。存储器子系统可利用接收到的主机数据基于异或(XOR)操作产生奇偶校验数据,且在存储来自主机系统的数据的存储器装置的部分故障的情况下使用奇偶校验数据来重新构建或重新计算主机数据。作为实例,存储器子系统可针对存储器子系统的单元(例如,块)的特定数目的主机数据位置计算奇偶校验数据。可基于存储在特定数目的主机数据位置上的主机数据中的每一个当中的XOR操作来产生奇偶校验数据。如果存储主机数据中的一个的存储器装置的一部分出现故障且对应数据丢失或损坏,那么存储器子系统可基于其余主机数据和奇偶校验数据当中的XOR操作来重新构建丢失/损坏的数据。
存储器子系统可采用在与将主机数据(例如,由主机系统写入的数据)编程到存储器子系统的存储器装置相关联的存储器缺陷的情况下执行数据恢复的技术。常规地,可由存储器子系统的控制器通过将奇偶校验数据(例如,异或(XOR)奇偶校验数据)与所写入主机数据一起写入在存储器装置(例如,快闪存储器,例如NAND存储器)中来管理存储器缺陷。产生的奇偶校验数据(例如,XOR奇偶校验数据)由控制器写入到物理存储器装置的一部分,使得其与主机数据互混。举例来说,对于单页奇偶校验方法,奇偶校验数据写入到存储器装置的页条带中的最末已知可用“良好”块(例如,存储没有错误或需要恢复的受损数据的主机数据的块)。在多页奇偶校验方法中,奇偶校验数据写入到最末页条带中的最末已知可用良好页(例如,四个裸片信道配置的信道3的平面P3的一组页)。
可使用奇偶校验数据执行数据恢复操作以重新构建主机数据。由于奇偶校验数据写入到存储器子系统,使得其与主机数据互混,因此可不利地影响依序读取操作,在所述依序读取操作中,依序从连续逻辑地址读取页的内容。在依序读取操作期间,使用连续存储器位置来执行多个依序类型或突发的存取。也就是说,可根据当前读取的位置的地址预测待读取的后续存储器位置且因此预测其地址。然而,依序读取操作还导致读取并非待返回到主机系统的有用或有意义数据的存储奇偶校验数据。
另外,存储奇偶校验数据的位置由于其用于存储奇偶校验数据而非用于存储主机数据而仍空闲(例如,在编程操作期间并不可用于存储主机数据),由此不利地影响存储器子系统的写入效能。在这方面,在常规系统中,未充分利用信道容量来存储及读取主机数据。
本公开的方面通过具有一种存储器子系统来解决以上和其它缺陷,所述存储器子系统管理奇偶校验数据以使得能够使用存储在存储器装置的高速缓存存储器中的奇偶校验数据来恢复主机数据。在编程操作期间,存储器子系统存储器控制器将主机数据写入到存储器装置的页条带中的页的完整组(例如,页条带中的所有页)。另外,存储器控制器将一组奇偶校验数据(例如,基于主机数据产生的一组XOR奇偶校验值)写入到高速缓存存储器。可通过使用写入到存储器装置的完整页条带的一部分的主机数据(例如,基于写入到包含具有N页的完整页条带中的N-1页的一部分的主机数据)执行XOR操作来产生奇偶校验数据。存储器子系统控制器可进一步产生额外奇偶校验值且将额外奇偶校验值存储在高速缓存存储器中。可通过对所述一组XOR奇偶校验值(例如,对应于页条带中的所述一组页的部分的先前聚集的一组奇偶校验值)执行XOR操作来产生额外奇偶校验值。在确定高速缓存存储器的页条带(也称为“源页条带”)已满(例如,源页条带存储所述一组奇偶校验数据值和额外奇偶校验值)后,控制器可将奇偶校验数据从高速缓存存储器移动或写入到存储器子系统的较高密度存储区域。
有利的是,主机数据可占用存储器装置的完整页条带,且因此,在依序读取操作期间无总线空闲时段。另外,通过将奇偶校验数据存储在高速缓存存储器中而非将奇偶校验数据与主机数据互混,存储器装置的完整信道容量可用于数据编程和传送。
图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)、双数据速率(DDR)存储器总线、小型计算机系统接口(SCSI)、双列直插式存储器模块(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(3DNAND)。
存储器装置130中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单层级单元(SLC)可每单元存储一个位。其它类型的存储器单元,例如多层级单元(MLC)、三层级单元(TLC)、四层级单元(QLC)和五层级单元(PLC)可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC或这些的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分、MLC部分、TLC部分、QLC部分或PLC部分。存储器装置130的存储器单元可分组为页,所述页可指用于存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,NAND),页可被分组以形成块。
尽管描述非易失性存储器装置,例如3D交叉点非易失性存储器单元阵列及NAND型快闪存储器(例如,2D NAND、3D NAND),但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)快闪存储器和电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器115(为简单起见,控制器115)可与存储器装置130通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据,以及其它这类操作。存储器子系统控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。硬件可包含具有专用(即,硬译码)逻辑的数字电路系统以执行本文中所描述的操作。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。
存储器子系统控制器115可以是处理装置,其包含配置成执行存储在本地存储器119中的指令的一或多个处理器(例如,处理器117)。在所说明的实例中,存储器子系统控制器115的本地存储器119包含配置成存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作(包含处理存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程和例程。
在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然图1中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,而是可依靠外部控制(例如,由外部主机或由与存储器子系统分开的处理器或控制器提供)。
一般来说,存储器子系统控制器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,其可用于产生奇偶校验数据并将所述奇偶校验数据存储在存储器子系统110的高速缓存存储器中,以用于与由主机系统120写入的数据相关联的数据恢复操作。在编程操作期间,奇偶校验数据管理组件113将主机数据写入到存储器装置的页条带中的页的完整组(例如,存储器装置包含各自具有多个平面的多个信道(例如,各自具有四个平面(平面0至平面3)的四个信道配置(信道0至信道3))。奇偶校验数据管理组件113产生一组奇偶校验数据且将其写入到高速缓存存储器的页条带的一部分。在一实施例中,奇偶校验数据管理组件113通过使用主机数据执行XOR操作产生一组奇偶校验数据,以产生一组XOR奇偶校验值。
举例来说,对于具有四个裸片信道和N数目个页的存储器装置,所述一组奇偶校验值可包含存储在高速缓存存储器的页条带中的N-1页中的N-1个XOR奇偶校验值。另外,奇偶校验数据管理组件113可通过对N-1个XOR奇偶校验值的累积应用XOR操作来产生额外奇偶校验值(例如,第N个XOR奇偶校验值)。在具有四个信道、十六页配置的实例中,额外XOR奇偶校验值可以是第十六个值,其是基于对累积的十五页的XOR奇偶校验值应用XOR操作。在所述一组奇偶校验数据和额外奇偶校验数据形成高速缓存存储器的完整页条带时,所述一组奇偶校验数据和额外奇偶校验数据移动或写入到存储器装置。由于在涉及多个逻辑地址的依序读取的依序读取操作期间没有信道空闲,因此将奇偶校验数据存储在高速缓存存储器中以及使得存储器装置的完整页条带能够用于存储主机数据实现最大依序读取效能。
在一实施例中,奇偶校验数据管理组件113可使用存储在高速缓存存储器中的奇偶校验数据来执行数据恢复操作。在一实施例中,由于奇偶校验数据存储在高速缓存存储器中而非存储器装置中,因此奇偶校验数据不包含在包含将存储器子系统的物理存储器块的逻辑地址与物理地址相关联的映射信息的数据结构(也称为“L2P映射数据结构”)中。由于奇偶校验数据不存储在L2P映射数据结构中,因此奇偶校验数据不作为依序读取操作的部分被读取。奇偶校验数据管理组件113确定在擦除来自高速缓存存储器的源块的写入数据之前,已在垃圾收集操作期间写入目的地块的存储器单元的一部分(例如,字线的所有页)。在如此操作时,在功率损失事件在完全编程存储器单元的部分之前发生的情况下,奇偶校验数据管理组件113使用保留的源块的数据实现待执行的数据恢复过程。在一些实施例中,存储器子系统控制器115包含奇偶校验数据管理组件113的至少一部分。举例来说,存储器子系统控制器115可包含处理器117(处理装置),其配置成执行存储在本地存储器119中以用于执行本文中所描述的操作的指令。在一些实施例中,奇偶校验数据管理组件113为主机系统120、应用程序或操作系统的部分。在相同或替代实施例中,奇偶校验数据管理组件113的部分为主机系统120的部分,而奇偶校验数据管理组件113的其它部分在存储器子系统控制器115处执行。
图2为根据一些实施例的用以管理与写入到存储器子系统的存储器装置的主机数据相关联的奇偶校验数据的实例方法200的流程图。方法200可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法200由图1的奇偶校验数据管理组件113执行。虽然以特定顺序或次序来展示,但除非另有指定,否则可修改过程的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序执行,且一些过程可并行执行。另外,在各种实施例中可以省略一或多个过程。因此,在每一实施例中并非需要全部过程。其它过程流程是可能的。
如图2中所展示,在操作210处,处理逻辑将主机数据写入到存储器子系统的存储区域的页条带中的一组页。在一实施例中,存储区域为高密度存储区域,例如MLC、TLC或XLC存储。在一实施例中,响应于从主机系统接收到的用以写入数据的请求而写入主机数据。在一实施例中,页条带中的所述一组页包含页条带中的所有页(也称为“完整页条带”)。举例来说,对于具有多个页条带(例如,N数目个页条带)(各自包含十六页(页0/平面0/信道0到页0/平面3/信道3))的四个信道存储器装置,存储器装置的所有十六页可用以存储主机数据。有利的是,通过将主机数据存储在完整页条带中的每一页中,在执行依序读取操作期间,没有信道空闲。
在操作220处,处理逻辑产生对应于写入到页条带中的所述一组页的一部分的主机数据的一组XOR奇偶校验值。在一实施例中,所述一组页的所述部分为包含N页的页条带中的N-1页。使用所述一组页的所述部分(例如,具有16页的页条带中的前15页)中的主机数据,产生所述一组XOR奇偶校验值。举例来说,所述一组XOR奇偶校验值可表示具有N数目个页的页条带的奇偶校验数据的N-1页。
在操作230处,处理逻辑通过使用所述一组XOR奇偶校验值执行XOR操作来产生额外XOR奇偶校验值。在一实施例中,通过对操作220中产生的所述一组XOR奇偶校验值应用XOR操作来计算额外XOR奇偶校验值。举例来说,额外XOR奇偶校验值是基于累积的N-1个XOR奇偶校验值(例如,具有十六(N)页的页条带的十五个XOR奇偶校验值)。
在操作240处,处理逻辑将包含所述一组XOR奇偶校验值和额外XOR奇偶校验值的奇偶校验数据存储在存储器子系统的高速缓存存储器中。在一实施例中,XOR奇偶校验数据值(例如,所述一组XOR奇偶校验值和额外XOR奇偶校验值)存储在数据高速缓存的页条带中。有利的是,通过将奇偶校验数据值写入到高速缓存存储器且不写入到存储器装置的页条带中,由于不读取奇偶校验数据,因此改进依序读取操作效能。
在操作250处,处理逻辑将奇偶校验数据写入到存储区域的可用页条带。在一实施例中,在确定高速缓存存储器的页条带(例如,源页条带)已满(例如,存储所述一组XOR奇偶校验数据和额外XOR奇偶校验数据的页条带的所有页已满)后,将奇偶校验数据写入到存储器子系统的高密度存储区域。
图3说明包含以操作方式耦合到主机系统120的控制器115的实例系统。如所展示,控制器115配置成将主机数据写入到高密度存储区域(例如,MLC、TLC、XLC存储)。举例来说,主机数据存储在高密度存储区域370的第一页条带中。控制器115包含配置成基于主机数据产生奇偶校验数据的奇偶校验数据管理组件113。在一实施例中,奇偶校验数据包含通过对主机数据应用一或多个操作(例如,XOR操作)而产生的第一组奇偶校验数据,以产生XOR奇偶校验数据。在一实施例中,奇偶校验数据管理组件113基于第一组奇偶校验数据产生额外奇偶校验数据。在一实施例中,通过使用第一组XOR奇偶校验数据执行XOR操作来产生额外奇偶校验数据。如所展示,XOR奇偶校验数据和额外XOR奇偶校验数据存储在高速缓存存储器350的页条带中。
在一实施例中,在确定高速缓存存储器350的页条带已满(例如,页条带中的页充满XOR奇偶校验数据和对应额外XOR奇偶校验数据)后,XOR奇偶校验数据和额外XOR奇偶校验从高速缓存存储器350移动或写入到高密度存储区域370的页条带。在写入到高密度存储区域370之前,将奇偶校验数据存储在高速缓存存储器350中,对应于写入到高密度存储区域370的主机数据的依序读取操作致使避开读取奇偶校验数据。有利的是,在奇偶校验数据产生过程期间,通过经由将奇偶校验数据存储在高速缓存存储器350中来避免在高密度存储区域中具有奇偶校验数据的空闲信道,改进依序读取。
图4说明根据实施例的高密度存储区域的实例块400(也称为“元块”或“超级块”)。如所展示,块400表示具有四个信道(例如,信道0、信道1、信道2和信道3)、四个平面(例如,平面0、平面1、平面2和平面3)和N个页条带(例如,PS 0、PS 1、PS 2、…PS N)的存储器装置。举例来说,页条带0(PS 0)包含经由多个信道(信道0到信道3)的多个平面(平面0到平面3)写入到页0的主机数据。如所展示,页条带13包含存储在对应于信道3的平面3的页中的第一组奇偶校验数据(例如,R0到R13)和对应额外奇偶校验数据(例如,XOR(R0到R13)),其中R0表示对应于主机数据的一部分的XOR奇偶校验值。在图4中所展示的实例中,页条带30和页条带N还将从高速缓存存储器写入的奇偶校验数据存储到高密度存储区域的块400。
在图4中所展示的实例中,块400的信道0的平面3表示不良块(例如,包含受损主机数据的块)。因此,如所展示,每一页条带包含十五个良好(例如,非受损)页,而非十六个良好页。在这一实例中,第一组奇偶校验数据包含十四个XOR奇偶校验值,其对应于包含良好主机数据的页条带中的前十四页。举例来说,页条带13(PS 13)包含含有十四个奇偶校验值(例如,R0到R13)的第一组奇偶校验数据。在这一实例中,通过使用与良好页相关联的奇偶校验数据(例如,XOR(R0到R13))应用XOR操作来计算额外奇偶校验数据。在一实施例中,额外奇偶校验值或数可由以下表达式表示:XOR奇偶校验数=良好页的总数目-1。在写入等同于块400的页条带(例如,PS 0到PS 13)的良好页的总数目的主机数据之后,额外奇偶校验值可存储在下一页条带(例如,PS 14)中。在一实施例中,第一组奇偶校验值(例如,PS 14的R0到R13)和额外奇偶校验值(例如,XOR(R0到R13))可用于数据恢复过程,以恢复对应于信道0的平面3的丢失或受损数据的至少一部分。
图5为根据一些实施例的使用由奇偶校验数据管理组件管理而管理的奇偶校验数据执行数据恢复操作的实例方法500的流程图。方法500可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法500由图1的奇偶校验数据管理组件113执行。在一实施例中,方法500的操作可结合图2的方法200执行。在一实施例中,方法500涉及存储在存储器子系统的高速缓存存储器中的奇偶校验数据的管理。虽然以特定顺序或次序来展示,但除非另有指定,否则可修改过程的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序执行,且一些过程可并行执行。另外,在各种实施例中可以省略一或多个过程。因此,在每一实施例中并非需要全部过程。其它过程流程是可能的。
如图5中所展示,在操作510处,处理逻辑检测到与写入到存储器子系统的存储区域的页的主机数据相关联的错误。在一实施例中,存储区域为高密度存储区域(例如,MLC、TLC、XLC存储)。在一实施例中,维持与对应于主机数据的存储区域的目的地块的地址对应的位置或映射信息(例如,信道标识、平面标识和页标识)。在一实施例中,在逻辑到物理(L2P)映射数据结构(例如,L2P表)中维持对应于主机数据的物理存储器中的位置。
在操作520中,处理逻辑使用数据结构执行查找操作,以识别对应于写入到存储区域的页的主机数据的奇偶校验数据的位置。在一实施例中,对应于不良或受损主机数据的奇偶校验数据的位置(例如,地址)存储在例如L2P映射表的数据结构中。在一实施例中,奇偶校验数据的位置为存储器子系统的高速缓存存储器或高密度存储区域中的地址。
在操作530中,处理逻辑确定奇偶校验数据存储在存储器子系统的高速缓存存储器中。在一实施例中,处理逻辑通过识别存储奇偶校验数据的高速缓存存储器中的块的地址来确定对应奇偶校验数据存储在高速缓存存储器中。在一实施例中,由于如图2中所展示的方法200的操作240,奇偶校验数据存储在高速缓存存储器中。在一实施例中,奇偶校验数据可包含通过使用主机数据执行XOR操作而产生的一组奇偶校验值。在一实施例中,奇偶校验数据还可包含通过使用所述一组奇偶校验值执行XOR操作而产生的额外奇偶校验值。在一实施例中,处理逻辑可替代地确定奇偶校验数据存储在高密度存储区域中(例如,由于图2的方法200的操作250)。
在操作540中,处理逻辑基于存储在高速缓存存储器中的奇偶校验数据执行数据恢复操作。在一实施例中,对奇偶校验值应用数据恢复操作以恢复或重新构建包含由故障而导致的错误(例如,一或多个不良块)的主机数据。有利的是,将奇偶校验数据存储在高速缓存存储器中直到完整页条带准备好移动到高密度存储区域为止使得能够在不使一或多个空闲信道用于存储奇偶校验数据的情况下执行依序读取操作。另外,通过将奇偶校验数据存储在高速缓存存储器中,依序读取操作还读取主机数据且不读取中间或过程内奇偶校验数据。
图6说明计算机系统600的实例机器,在所述实例机器内可执行用于使机器执行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统600可对应于主机系统(例如,图1的主机系统120),其包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用以执行控制器的操作(例如,执行操作系统,以执行对应于图1的奇偶校验数据管理组件113的操作)。在替代实施例中,机器可连接(例如联网)到LAN、内联网、外联网和/或互联网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或网桥、数字或非数字电路系统,或能够执行指定要由这一机器进行的动作的指令集(依序或以其它方式)的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多个)指令集以执行本文中所论述的方法中的任何一或多种。
实例计算机系统600包含处理装置602、主存储器604(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器606(例如,快闪存储器、静态随机存取存储器(SRAM)等),和数据存储系统618,它们经由总线630彼此通信。
处理装置602表示一或多个通用处理装置,例如微处理器、中央处理单元或类似物。更具体来说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置602也可以是一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器或类似物。处理装置602配置成执行用于执行本文中所论述的操作和步骤的指令626。计算机系统600可进一步包含网络接口装置608以经由网络620通信。
数据存储系统618可包含机器可读存储媒体624(也称为计算机可读媒体),其上存储有一或多个指令集626或体现本文中所描述的方法或功能中的任何一或多种的软件。指令626还可在其由计算机系统600执行期间完全或至少部分地驻存在主存储器604内和/或处理装置602内,主存储器604和处理装置602也构成机器可读存储媒体。机器可读存储媒体624、数据存储系统618和/或主存储器604可对应于图1的存储器子系统110。
在一个实施例中,指令626包含实施对应于数据保护组件(例如,图1的奇偶校验数据管理组件113)的功能性的指令。尽管在实例实施例中将机器可读存储媒体624展示为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集且致使机器执行本公开的方法中的任何一或多种的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体以及磁性媒体。
已关于计算机存储器内的数据位的操作的算法和符号表示而呈现先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给本领域的其它技术人员的方式。算法在这里并且通常被认为是产生期望结果的操作的自洽序列。操作是要求对物理量进行物理控制的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元件、符号、字符、术语、数目或类似物是方便的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便标签。本公开可以指将计算机系统的寄存器和存储器内的表示为物理(电子)量的数据操控及变换为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
本公开还涉及用于执行本文中的操作的设备。这一设备可出于预期目的而专门构建,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这类计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘(包含软盘、光盘、CD-ROM和磁性光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适合于存储电子指令的任何类型的媒体,它们各自耦合到计算机系统总线。
本文中呈现的算法和显示在本质上并不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或其可证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。此外,并不参考任何特定编程语言来描述本公开。将了解,可使用多种编程语言来实施如本文中所描述的本公开的教示。
本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前述说明书中,已参考本公开的特定实例实施例描述了本公开的实施例。应显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。
Claims (20)
1.一种方法,其包括:
通过处理装置将主机数据写入到存储器子系统的存储区域的页条带中的一组页;产生对应于写入到所述存储区域的所述一组页的一部分的所述主机数据的一组异或XOR奇偶校验值;
通过使用所述一组XOR奇偶校验值执行XOR操作来产生额外XOR奇偶校验值;
将包括所述一组XOR奇偶校验值和所述额外XOR奇偶校验值的奇偶校验数据存储在所述存储器子系统的高速缓存存储器中;且
将所述奇偶校验数据写入到所述存储区域的可用页条带。
2.根据权利要求1所述的方法,其进一步包括检测对应于写入到所述存储区域的所述页条带的所述主机数据的至少一部分的错误。
3.根据权利要求2所述的方法,其进一步包括使用存储在所述高速缓存存储器中的所述一组XOR奇偶校验值和所述额外XOR奇偶校验值的至少一部分执行数据恢复操作。
4.根据权利要求1所述的方法,其中所述存储区域比所述高速缓存存储器具有更高数据密度。
5.根据权利要求1所述的方法,其中所述一组页的所述部分包括小于所述页条带中的页的总数目。
6.根据权利要求1所述的方法,其进一步包括使用所述存储区域的一或多个页条带执行依序读取操作。
7.根据权利要求1所述的方法,其中将所述奇偶校验数据写入到所述存储区域的所述可用页条带进一步包括确定包括所述一组XOR奇偶校验值和所述额外XOR奇偶校验值的所述高速缓存存储器的源页条带已满。
8.一种包括指令的非暂时性计算机可读媒体,所述指令在由处理装置执行时使所述处理装置执行包括以下各项的操作:
检测与写入到存储器子系统的存储区域的页的主机数据相关联的错误;
确定对应于所述主机数据的奇偶校验数据存储在所述存储器子系统的高速缓存存储器中;且
基于存储在所述高速缓存存储器中的所述奇偶校验数据执行数据恢复操作。
9.根据权利要求8所述的非暂时性计算机可读媒体,所述操作进一步包括:
使用数据结构执行查找操作以识别所述高速缓存存储器的存储对应于写入到所述存储器子系统的所述存储区域的所述主机数据的所述奇偶校验数据的位置。
10.根据权利要求8所述的非暂时性计算机可读媒体,其中所述奇偶校验数据包括对应于写入到所述存储器子系统的所述存储区域的所述页的所述主机数据的一组XOR奇偶校验值。
11.根据权利要求10所述的非暂时性计算机可读媒体,所述操作进一步包括:
将所述奇偶校验数据存储到所述存储器子系统的所述高速缓存存储器,其中所述奇偶校验数据包括所述一组XOR奇偶校验值和对应于所述一组XOR奇偶校验值的额外XOR奇偶校验值。
12.根据权利要求11所述的非暂时性计算机可读媒体,所述操作进一步包括:
确定存储所述奇偶校验数据的所述高速缓存存储器的第一部分已满;且
将所述奇偶校验数据写入到所述存储区域的可用页条带。
13.根据权利要求12所述的非暂时性计算机可读媒体,所述操作进一步包括:
在将所述奇偶校验数据写入到所述存储区域的所述可用页条带之前,执行依序读取操作以从所述存储区域读取主机数据。
14.一种系统,其包括:
存储器装置;和
处理装置,其以操作方式与所述存储器装置耦合以执行包括以下各项的操作:
通过处理装置将主机数据写入到存储器子系统的存储区域的页条带中的一组页;
产生对应于写入到所述存储区域的所述一组页的一部分的所述主机数据的一组异或XOR奇偶校验值;
通过使用所述一组XOR奇偶校验值执行XOR操作来产生额外XOR奇偶校验值;
将包括所述一组XOR奇偶校验值和所述额外XOR奇偶校验值的奇偶校验数据存储在所述存储器子系统的高速缓存存储器中;且
将所述奇偶校验数据写入到所述存储区域的可用页条带。
15.根据权利要求14所述的系统,所述操作进一步包括检测对应于写入到所述存储区域的所述页条带的所述主机数据的至少一部分的错误。
16.根据权利要求15所述的系统,所述操作进一步包括使用存储在所述高速缓存存储器中的所述一组XOR奇偶校验值和所述额外XOR奇偶校验值的至少一部分执行数据恢复操作。
17.根据权利要求14所述的系统,其中所述存储区域比所述高速缓存存储器具有更高数据密度。
18.根据权利要求14所述的系统,其中所述一组页的所述部分包括小于所述页条带中的页的总数目。
19.根据权利要求14所述的系统,所述操作进一步包括使用所述存储区域的一或多个页条带执行依序读取操作。
20.根据权利要求14所述的系统,其中将所述奇偶校验数据写入到所述存储区域的所述可用页条带进一步包括确定包括所述一组XOR奇偶校验值和所述额外XOR奇偶校验值的所述高速缓存存储器的源页条带已满。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962953329P | 2019-12-24 | 2019-12-24 | |
US62/953,329 | 2019-12-24 | ||
US16/834,534 US11630725B2 (en) | 2019-12-24 | 2020-03-30 | Management of parity data in a memory sub-system |
US16/834,534 | 2020-03-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113035262A true CN113035262A (zh) | 2021-06-25 |
Family
ID=76437253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011551881.8A Pending CN113035262A (zh) | 2019-12-24 | 2020-12-24 | 存储器子系统中奇偶校验数据的管理 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11630725B2 (zh) |
CN (1) | CN113035262A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI831701B (zh) * | 2023-05-31 | 2024-02-01 | 慧榮科技股份有限公司 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11210168B1 (en) * | 2020-06-25 | 2021-12-28 | Micron Technology, Inc. | Error handling optimization in memory sub-system mapping |
US11822429B2 (en) * | 2022-04-08 | 2023-11-21 | Dell Products L.P. | Storage device raid data write intermediate parity system |
WO2024016257A1 (en) * | 2022-07-21 | 2024-01-25 | Micron Technology, Inc. | Handling parity data during data folding in a memory device |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445724A (zh) * | 2015-08-11 | 2017-02-22 | Hgst荷兰公司 | 与受保护数据分开存储奇偶校验数据 |
US20180074891A1 (en) * | 2016-09-13 | 2018-03-15 | Sandisk Technologies Llc | Storage System and Method for Reducing XOR Recovery Time |
US20180089078A1 (en) * | 2016-09-26 | 2018-03-29 | Toshiba Memory Corporation | Storage device that restores data lost during a subsequent data write |
CN108062258A (zh) * | 2016-11-08 | 2018-05-22 | 爱思开海力士有限公司 | 用于错误恢复的循环交错的xor阵列 |
US20190361771A1 (en) * | 2018-05-24 | 2019-11-28 | International Business Machines Corporation | Metadata hardening and parity accumulation for log-structured arrays |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5594862A (en) * | 1994-07-20 | 1997-01-14 | Emc Corporation | XOR controller for a storage subsystem |
US6334168B1 (en) * | 1999-02-19 | 2001-12-25 | International Business Machines Corporation | Method and system for updating data in a data storage system |
US6298415B1 (en) * | 1999-02-19 | 2001-10-02 | International Business Machines Corporation | Method and system for minimizing writes and reducing parity updates in a raid system |
US7127668B2 (en) * | 2000-06-15 | 2006-10-24 | Datadirect Networks, Inc. | Data management architecture |
JP4440803B2 (ja) * | 2005-03-03 | 2010-03-24 | 富士通株式会社 | 記憶装置、その制御方法及びプログラム |
JP4435705B2 (ja) * | 2005-03-14 | 2010-03-24 | 富士通株式会社 | 記憶装置、その制御方法及びプログラム |
EP2823398A1 (en) * | 2012-04-27 | 2015-01-14 | Hitachi, Ltd. | Storage system and storage control apparatus |
US10872012B2 (en) * | 2019-01-08 | 2020-12-22 | Western Digital Technologies, Inc. | XOR recovery schemes utilizing external memory |
US11321173B2 (en) * | 2019-12-31 | 2022-05-03 | Micron Technology, Inc. | Managing storage of multiple plane parity data in a memory sub-system |
-
2020
- 2020-03-30 US US16/834,534 patent/US11630725B2/en active Active
- 2020-12-24 CN CN202011551881.8A patent/CN113035262A/zh active Pending
-
2023
- 2023-03-15 US US18/184,395 patent/US20230214298A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445724A (zh) * | 2015-08-11 | 2017-02-22 | Hgst荷兰公司 | 与受保护数据分开存储奇偶校验数据 |
US20180074891A1 (en) * | 2016-09-13 | 2018-03-15 | Sandisk Technologies Llc | Storage System and Method for Reducing XOR Recovery Time |
US20180089078A1 (en) * | 2016-09-26 | 2018-03-29 | Toshiba Memory Corporation | Storage device that restores data lost during a subsequent data write |
CN108062258A (zh) * | 2016-11-08 | 2018-05-22 | 爱思开海力士有限公司 | 用于错误恢复的循环交错的xor阵列 |
US20190361771A1 (en) * | 2018-05-24 | 2019-11-28 | International Business Machines Corporation | Metadata hardening and parity accumulation for log-structured arrays |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI831701B (zh) * | 2023-05-31 | 2024-02-01 | 慧榮科技股份有限公司 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置 |
Also Published As
Publication number | Publication date |
---|---|
US11630725B2 (en) | 2023-04-18 |
US20210191808A1 (en) | 2021-06-24 |
US20230214298A1 (en) | 2023-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11630725B2 (en) | Management of parity data in a memory sub-system | |
US11693768B2 (en) | Power loss data protection in a memory sub-system | |
US20210334200A1 (en) | Storing translation layer metadata in host memory buffer | |
US11907066B2 (en) | Managing storage of multiple plane parity data in a memory sub-system | |
US11487609B2 (en) | Separating parity data from host data in a memory sub-system | |
CN113127255A (zh) | 在低密度存储器系统上实施容错页条带 | |
US11704196B2 (en) | Reduced parity data management | |
CN113093990B (zh) | 存储器子系统处的数据块切换 | |
US11907536B2 (en) | Data dispersion-based memory management | |
US20230045370A1 (en) | Smart swapping and effective encoding of a double word in a memory sub-system | |
CN114968649A (zh) | 扩展存储器单元的大小 | |
US11914471B1 (en) | Block failure protection for zone memory system | |
US11860732B2 (en) | Redundancy metadata media management at a memory sub-system | |
US11556261B2 (en) | Memory stripe coding management | |
US20240028259A1 (en) | Buffer allocation for reducing block transit penalty | |
US20240118971A1 (en) | Temporary parity buffer allocation for zones in a parity group | |
US20240176533A1 (en) | Performing memory access operations based on quad-level cell to single-level cell mapping table | |
US20220197538A1 (en) | Performing data operations on grouped memory cells | |
US20230058217A1 (en) | Redundancy metadata for multi-plane memory access failure | |
CN115437558A (zh) | 存储器系统中的对角页映射 | |
CN117999547A (zh) | 用于存储器子系统中的两遍次编程的虚拟管理单元方案 | |
CN113126899A (zh) | 完全多平面操作启用 | |
CN115048039A (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 |