CN113127254A - 存储器子***中多平面奇偶校验数据的存储管理 - Google Patents

存储器子***中多平面奇偶校验数据的存储管理 Download PDF

Info

Publication number
CN113127254A
CN113127254A CN202011603068.0A CN202011603068A CN113127254A CN 113127254 A CN113127254 A CN 113127254A CN 202011603068 A CN202011603068 A CN 202011603068A CN 113127254 A CN113127254 A CN 113127254A
Authority
CN
China
Prior art keywords
data
parity
plane
parity data
sub
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011603068.0A
Other languages
English (en)
Inventor
罗贤钢
J·黄
L·K·K·瓦卡缇
H·R·桑吉迪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN113127254A publication Critical patent/CN113127254A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1064Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/403Error protection encoding, e.g. using parity or ECC codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers

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)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请涉及存储器子***中多平面奇偶校验数据的存储管理。接收待写入到包含存储器装置的一组多个平面的存储区域的主机数据。基于所述主机数据的所述一组多个平面的一部分执行第一奇偶校验生成操作以生成一组多平面奇偶校验数据。将所述一组多平面奇偶校验数据存储在存储器子***的控制器的高速缓冲存储器中。基于所述主机数据的所述一组所述多个平面执行第二奇偶校验生成操作以生成一组多页面奇偶校验数据。将所述一组多页面奇偶校验数据存储在所述存储器子***的所述控制器的所述高速缓冲存储器中。基于所述一组多平面奇偶校验数据和所述一组多页面奇偶校验数据执行数据恢复操作。

Description

存储器子***中多平面奇偶校验数据的存储管理
技术领域
本公开的实施例大体上涉及存储器子***,且更具体地说,涉及存储器子***中的多平面奇偶校验数据的存储管理。
背景技术
一种存储器子***可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置和易失性存储器装置。一般来说,主机***可利用存储器子***以在存储器装置处存储数据并从存储器装置检索数据。
发明内容
在一方面,本公开提供一种方法,其包括:由处理装置接收待写入到包含一组多个平面的存储区域的主机数据;基于所述主机数据的所述一组多个平面的一部分执行第一奇偶校验生成操作以生成一组多平面奇偶校验数据;将所述一组多平面奇偶校验数据存储在存储器子***的控制器的高速缓冲存储器中;基于所述主机数据的所述一组多个平面执行第二奇偶校验生成操作以生成一组多页面奇偶校验数据;将所述一组多页面奇偶校验数据存储在所述存储器子***的所述控制器的所述高速缓冲存储器中;以及基于所述一组多平面奇偶校验数据和所述一组多页面奇偶校验数据执行数据恢复操作。
在另一方面,本公开进一步提供一种包括指令的非暂时性计算机可读媒体,所述指令在由处理装置执行时使所述处理装置执行包括以下各项的操作:检测与写入到包含一组多个平面的存储器子***的存储区域的页面的主机数据相关联的错误;从所述存储器子***的控制器的高速缓冲存储器检索第一组奇偶校验数据,其中所述第一组奇偶校验数据是基于小于所述主机数据的平面的总数而生成;以及至少部分地基于所述第一组奇偶校验数据执行数据恢复操作。
在另一方面,本公开进一步提供一种***,其包括:存储器装置;以及处理装置,其与所述存储器装置以操作方式耦合以执行包括以下各项的操作:接收待写入到包含一组多个平面的存储区域的主机数据;基于所述主机数据的所述一组多个平面的一部分执行第一奇偶校验生成操作以生成一组多平面奇偶校验数据;将所述一组多平面奇偶校验数据存储在存储器子***的控制器的高速缓冲存储器中;基于所述主机数据的所述一组多个平面执行第二奇偶校验生成操作以生成一组多页面奇偶校验数据;将所述一组多页面奇偶校验数据存储在所述存储器子***的所述控制器的所述高速缓冲存储器中;以及基于所述一组多平面奇偶校验数据和所述一组多页面奇偶校验数据执行数据恢复操作。
附图说明
根据下文给出的详细描述和本公开的各种实施例的附图,将更充分地理解本公开。然而,附图不应视为将本公开限制于特定实施例,而是仅用于解释和理解。
图1说明根据本公开的一些实施例的包含存储器子***的实例计算***。
图2说明根据一些实施例的管理控制器的高速缓冲存储器以存储奇偶校验数据的实例奇偶校验数据管理组件。
图3说明根据一些实施例生成的实例奇偶校验数据。
图4说明根据一些实施例的管理控制器的高速缓冲存储器以存储奇偶校验数据的实例奇偶校验数据管理组件。
图5说明根据一些实施例生成的实例奇偶校验数据。
图6是根据一些实施例生成的使用奇偶校验数据来执行数据恢复操作的实例方法的流程图。
图7是本公开的实施方案可在其中操作的实例计算机***的框图。
具体实施方式
本公开的各方面涉及存储器子***中的多平面奇偶校验数据的存储管理。存储器子***可为存储装置、存储器模块或存储装置与存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机***可以利用包含一或多个组件(例如存储数据的存储器装置)的存储器子***。主机***可以提供要存储在存储器子***处的数据,并且可以请求要从存储器子***中检索的数据。
存储器子***可采用在与将用户数据(例如,由主机***写入的数据)编程到存储器子***的存储器装置相关联的存储器缺陷的情况下执行数据恢复的技术。常规地,存储器缺陷可由存储器子***的控制器通过基于所写入的主机数据生成奇偶校验数据(例如,异或(XOR)奇偶校验数据)来管理。由控制器将生成的奇偶校验数据(例如,XOR奇偶校验数据)写入到控制器的高速缓冲存储器(例如,易失性存储器装置,例如随机存取存储器(RAM)、动态随机存取存储器(DRAM)或同步动态随机存取存储器(SDRAM))。
在包含具有存储器单元阵列的存储器装置的多个电子装置(例如,移动装置)中,所述存储器单元阵列每单元存储多个位(例如,四层级单元(QLC)),采用多个页面(多页面)奇偶校验保护和多个平面(多平面)奇偶校验保护(例如,对存储器装置的所有平面的失效的保护)两者。在此类***中,需要大量高速缓冲存储器存储空间以便存储多页面奇偶校验数据和多平面奇偶校验数据两者。例如,对于多页面奇偶校验保护,针对存储器子***的每一页面行生成16KB的奇偶校验数据。另外,常规存储器子***可具有多平面存储器裸片(例如,N个平面),所述多平面存储器裸片包含布置在可针对多个平面(例如,多平面存储器装置)采用多平面奇偶校验保护的所述多个平面中的多个存储器单元块。可将每一块划分成各自包含多个页面(例如,每一子块三个页面)的多个子块。
具有多个平面(例如,每一存储器裸片的N个平面)的存储器子***需要生成并存储多平面奇偶校验数据以实现针对多平面失效的保护(例如,存储器装置的所有平面的失效)。例如,对于多平面布置(例如,具有N个平面的存储器裸片),常规***可通过基于由主机***写入到存储器子***的多个逻辑单元(例如,逻辑单元1到逻辑单元Y)的数据(也被称作资源值(R))执行异或运算(XOR)而生成多平面奇偶校验数据,其中每一逻辑单元包含多个平面(例如,平面0、平面1、…平面N-1)。针对每一平面的多平面奇偶校验数据存储在控制器(例如,RAM)的高速缓冲存储器中。常规地,控制器对与所有平面(例如,N个平面)相关联的数据执行额外XOR操作以从每一页面或页面行生成多页面奇偶校验数据。此多页面奇偶校验数据还存储在控制器的高速缓冲存储器中。
例如,对于具有具有两个子块的N个平面的多平面存储器裸片,其中每一子块包含三个页面,每平面生成并存储16KB的奇偶校验数据。因此,需要每N个平面每子块约48KB的奇偶校验数据存储。
此外,对于多平面存储器的每一子块需要高速缓冲存储器的额外子块以便生成多平面奇偶校验数据。例如,在管理具有四个平面(N=4)的多平面存储器的奇偶校验数据的常规***中,多平面奇偶校验保护的一个子块的总控制器高速缓冲存储器要求为每平面96KB,产生384KB(例如,96KB×4平面)的高速缓冲存储器要求。这表示与多页面和多平面奇偶校验保护的常规管理相关联的控制器高速缓冲存储消耗较大。因此,需要减少与多页面奇偶校验数据的存储和用于在主机写入数据丢失的情况下执行数据恢复操作的多平面奇偶校验数据有关的控制器高速缓冲存储器的消耗。
本公开的各方面通过具有由存储器子***的控制器的高速缓冲存储器存储区域管理多页面奇偶校验数据和多平面奇偶校验数据的存储的存储器子***来解决以上和其它不足。在实施例中,对于具有多个平面(N个平面)的存储器子***,对存储在存储器子***的逻辑单元(LUN)中的主机数据的多个平面(N-1个平面)的一部分执行第一奇偶校验数据生成操作(例如,异或(XOR)操作)以生成用于存储在控制器高速缓冲存储器(例如,控制器的RAM)中的第一组多平面奇偶校验数据(P)。例如,对于具有四个平面(例如,N=4)的存储器子***,通过使用多个平面(例如,平面0到平面2(即,平面N-2))的一部分(N-1个平面)执行XOR操作来生成多平面奇偶校验数据以生成多平面奇偶校验数据。例如,对于具有N=4个平面的***,多平面奇偶校验数据包含一组多平面奇偶校验数据值,所述一组多平面奇偶校验数据值包含:表示页面0、平面0的奇偶校验数据的“P00”;表示页面1、平面0的奇偶校验数据的“P10”;表示页面2、平面0…的奇偶校验数据的“P20”;表示页面5、平面0的奇偶校验数据的“P50”;表示页面0、平面3的奇偶校验数据的“P0N-1”;表示页面1、平面3的奇偶校验数据“P1N-1”等。有利地,利用较少控制器高速缓冲存储器来存储由于使用多个平面(例如,平面0到平面N-2)的一部分(例如,N-1平面)执行奇偶校验操作而生成的多平面奇偶校验数据,以实现与上述常规方法相比约48KB的高速缓冲存储器节省。在此实施例中,对于如本文所描述的具有多平面多子块奇偶校验保护的多平面***产生1/N的控制器高速缓存节省。例如,具有四个平面的存储器装置实现25%的控制器高速缓冲存储节省(例如,96KB节省),且具有两个平面的存储器装置实现与多平面多子块奇偶校验数据的存储相关联的50%的控制器高速缓冲存储节省(192KB节省)。
在实施例中,使用存储在存储器子***的逻辑单元(LUN)中的多个平面(N个平面)的主机数据执行第二奇偶校验数据生成操作以生成用于存储在控制器高速缓冲存储器(例如,控制器的RAM)中的一组多页面奇偶校验数据。
在数据失效的情况下,可从控制器的高速缓冲存储器检索对应于N-1个平面和多页面奇偶校验数据的多平面奇偶校验数据以用于数据恢复操作。在实施例中,数据恢复操作可使用多平面奇偶校验数据(对应于主机数据的N-1个平面)和多页面奇偶校验数据来检索对应于第N平面(例如,最后一个平面)的主机数据。
在实施例中,提供额外保护以保护主机数据的子块。为了保护主机数据的子块,使用两个数据的子块执行奇偶校验数据生成操作以生成多平面多子块保护(例如,生成用于主机数据的多个子块(例如,子块0和子块1)的奇偶校验数据。在此实施例中,如在常规***中,将高速缓存要求从奇偶校验数据的两个子块减少到由用于组合第一子块和第二子块的奇偶校验数据生成操作产生的奇偶校验数据(例如,多平面多子块奇偶校验数据)的一个子块。在子块多平面失效的情况下,可对第一子块的多平面奇偶校验数据和存储在存储器装置高速缓冲存储器(例如,NAND锁存器)中的第二子块的数据执行奇偶校验数据生成操作以检索第一子块(例如,子块0)的奇偶校验数据并恢复先前子块的主机数据。
在此实施例中,对于如本文所描述的具有多平面多子块奇偶校验保护的多平面***产生1/N的另一控制器高速缓存节省。例如,具有四个平面的存储器装置实现25%的控制器高速缓冲存储节省(例如,96KB节省),且具有两个平面的存储器装置实现与多平面多子块奇偶校验数据的存储相关联的50%的控制器高速缓冲存储节省(192KB节省)。
图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(3D NAND)。
存储器装置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和/或存储器装置140相关联的逻辑地址(例如,逻辑块地址(LBA)、名称空间)和物理地址(例如,物理块地址)之间的地址转换。存储器子***控制器115可进一步包含主机接口电路***以经由物理主机接口与主机***120通信。主机接口电路可将从主机***接收的命令转换为命令指令以存取存储器装置130和/或存储器装置140,以及将与存储器装置130和/或存储器装置140相关联的响应转换为用于主机***120的信息。
存储器子***110还可包含未示出的额外电路***或组件。在一些实施例中,存储器子***110可包含可以从存储器子***控制器115接收地址并将地址解码以存取存储器装置130的高速缓存或缓冲器(例如,DRAM)和地址电路***(例如,行解码器和列解码器)。
在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子***控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子***控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,其是与本地控制器(例如,本地控制器135)组合以在同一存储器装置封装内进行媒体管理的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。
存储器子***110包含奇偶校验数据管理组件113,所述奇偶校验数据管理组件可用于生成奇偶校验数据并将所述奇偶校验数据存储在存储器子***110的控制器的高速缓冲存储器中,以用于与由主机***120写入的数据相关联的数据恢复操作。在具有多个平面(N个平面)的存储器子***中,奇偶校验数据管理组件113使用存储在存储器子***的逻辑单元(LUN 1到LUN Y)中的多个平面(N-1个平面)的一部分执行第一奇偶校验数据操作以生成用于存储在控制器高速缓冲存储器(例如,控制器的RAM)中的第一组多平面奇偶校验数据(P)。例如,对于具有四个平面(例如,N=4)的存储器子***,通过使用与平面0到平面N-2(例如,多个平面的部分)相关联的主机数据执行XOR操作来生成多平面奇偶校验数据,并将所述多平面奇偶校验数据存储在控制器高速缓冲存储器(例如,控制器的RAM)中。
在实施例中,使用存储在存储器子***的逻辑单元(LUN)中的多个平面(N个平面)的主机数据执行第二奇偶校验数据生成操作以生成用于存储在控制器高速缓冲存储器中的一组多页面奇偶校验数据。在实施例中,从每一页面行(例如,具有两个子块的存储器装置的页面0、页面1、页面2、页面3、页面4和页面5,其中每一子块包含三个页面)生成16KB的多页面奇偶校验数据。在实施例中,奇偶校验数据管理组件113可使用存储在控制器高速缓冲存储器中的奇偶校验数据执行数据恢复操作以实现多页面和多平面奇偶校验保护,同时实现控制器高速缓冲存储器存储空间节省。
在实施例中,奇偶校验数据管理组件113可基于多个平面(N-1个平面)的子部分为一组子块的第一子块(例如,对于具有各自具有三个页面的两个子块的存储器装置,SB X-1,其中X=1、2或3)及第二子块(SB X)生成一组多平面多子块奇偶校验数据,以生成用于存储在控制器高速缓冲存储器中的多平面多子块奇偶校验数据。在此实施例中,通过在控制器高速缓冲存储器中存储当前子块(子块X)和先前子块(SB X-1)的多平面多子块奇偶校验数据来实现存储节省(例如,对于每一子块,每N个平面实现48KB的存储节省)。
在第一实施例中,奇偶校验数据管理组件113可生成多平面奇偶校验数据(例如,使用第一奇偶校验数据生成操作)。在第二实施例中,奇偶校验数据管理组件113可生成多平面多子块奇偶校验数据。在第三实施例中,奇偶校验数据管理组件113可生成多平面奇偶校验数据和多平面多子块奇偶校验数据两者。
在一些实施例中,存储器子***控制器115包含奇偶校验数据管理组件113的至少一部分。例如,存储器子***控制器115可包含处理器117(处理装置),其经配置以执行存储在本地存储器119中以用于执行本文中所描述的操作的指令。在一些实施例中,奇偶校验数据管理组件113为主机***120、应用程序或操作***的部分。在相同或替代实施例中,奇偶校验数据管理组件113的部分为主机***120的部分,而奇偶校验数据管理组件113的其它部分在存储器子***控制器115处执行。
图2说明包含以操作方式耦合到主机***120的控制器115的实例***。如所示出,控制器115经配置以将主机数据写入到高密度存储器装置(例如,QLC NAND装置)260的存储器装置阵列262。在实施例中,在将主机数据写入或编程到高密度存储器装置260的存储器装置高速缓存261(例如,NAND锁存器)之前,将所述主机数据写入到控制器115的写入缓冲器255。
在实施例中,多个LUN存储主机数据与物理存储器装置阵列262之间的逻辑关联。控制器115包含奇偶校验数据管理组件113,其经配置以基于存储在多个LUN中的主机数据生成一组多平面奇偶校验数据和一组多页面奇偶校验数据以用于存储在控制器高速缓冲存储器250中。
图3说明包含存储对应于具有多个平面(例如,多平面存储器装置)的存储器装置阵列的主机数据的多个LUN(LUN 1到LUN Y)的实例数据结构300。在示出的实例中,存储器装置包含N个平面,各自包含各自具有三个页面的两个子块(例如,子块0和子块1)。如所示出,LUN 1包含针对每一平面(平面0到平面N-1)的每一页面(例如,页面0到页面5)的主机数据或资源值(R)。在示出的实例中,LUN 1存储表示页面0、平面0的主机数据的“R00”;表示页面1平面0、页面1…的主机数据的“R10”;以及表示页面5、平面N-1的主机数据的“R5N-1”。如在图3中示出的实例中所说明,数据结构300包含存储在多个LUN(例如,LUN 1到LUN Y)中的每一页面(页面0到页面5)和每一平面(平面P0到平面PN-1)的主机数据(R值)。
如图2所示,主机数据230可包含对应于多个LUN(LUN 1到LUN Y)的平面0到平面N-2(即,“倒数第二个平面”)的第一主机数据组232,在第一写入操作233中将所述第一主机数据组从写入缓冲器255写入到高密度存储器装置260。主机数据230可包含对应于多个LUN(LUN 1到LUN Y)的平面N-1的第二主机数据组234,在第二写入操作235中将所述第二主机数据组从写入缓冲器255写入到高密度存储器装置260。
在实施例中,如图2和3中所示出,奇偶校验数据管理组件113执行第一奇偶校验数据操作以使用第一主机数据组232生成一组多平面奇偶校验数据210。所述一组多平面奇偶校验数据210存储在控制器高速缓冲存储器250(例如,控制器115的RAM)中。在实施例中,第一奇偶校验数据操作为用于所有LUN(LUN 1到LUN Y)的第一组主机数据(例如,平面0到平面N-2)的XOR操作。例如,第一奇偶校验数据操作可由以下表达式表示:
XOR[LUN 1(平面0到平面N-2)到LUN Y(平面0到平面N-2)]
在实施例中,可在从写入缓冲器255到高密度存储器装置260的第一写入操作期间或响应于第一写入操作(即,在写入第一组主机数据(例如,平面0到平面N-2)期间)执行第一奇偶校验数据操作。如图3所示,一组多平面奇偶校验数据210包含一组平面0到平面N-2的奇偶校验数据值,所述一组奇偶校验数据值包含表示页面0、平面0的“P00”;表示页面1、平面0的“P10”;…以及表示页面5、平面N-2的“P5N-2”。有利地,与基于控制器的高速缓冲存储器中的N-1个数据平面存储多平面奇偶校验数据的常规***相比,在控制器高速缓冲存储器250中通过基于N-1个数据平面生成并存储一组多平面奇偶校验数据来实现对应于数据平面(例如,控制器高速缓冲存储器的1/N*100%,其中N为平面的数目)的存储容量节省。
在实施例中,奇偶校验数据管理组件113通过执行第二奇偶校验数据操作320生成包含每一页(页面0到页面5)的页面行奇偶校验数据(例如,P0、P1、P2、P3、P4和P5)的一组多页面奇偶校验数据220。在实施例中,第二奇偶校验数据操作为使用用于每一页面或页面行的所有N个平面的主机数据的XOR操作。例如,根据以下实例表达式,执行第二奇偶校验数据操作以生成页面0的页面行奇偶校验数据(在图3中表示为奇偶校验值“P0”):
XOR[主机数据(P00到P0N-1)]=P0。
在实施例中,可在从写入缓冲器255到高密度存储器装置260的第二写入操作期间或响应于第二写入操作(即,在写入第二组主机数据(例如,平面N-1)期间)执行第二奇偶校验数据操作。
在实施例中,在数据失效的情况下,可从控制器的高速缓冲存储器检索对应于N-1平面210的一组多平面奇偶校验数据以用于数据恢复操作。数据恢复操作可使用所述一组多平面奇偶校验数据210和多页面奇偶校验数据220来检索第N平面的数据。有利地,上述方法实现控制器的高速缓冲存储器的1/N的节省需要提供多平面保护(例如,所有平面的失效)。
图4说明包含以操作方式耦合到主机***120的控制器115的实例***。如所示出,控制器115经配置以将主机数据写入到高密度存储器装置(例如,QLC NAND装置)260的存储器装置阵列262。在实施例中,在将主机数据写入或编程到高密度存储器装置260的存储器装置高速缓存261(例如,NAND锁存器)之前,将所述主机数据写入到控制器115的写入缓冲器255。如图4所示,主机数据包含数据(例如,SB X-1数据、SB X数据…和SB X+Z数据)的多个子块(SB),其中每一子块包含多个页面(例如,三个页面)。在实施例中,对应于第一子块(SB X-1数据)和第二子块(SB X数据)的第一组主机数据存储在控制器写入缓冲器155中。
图5说明包含存储对应于具有具有多个子块(例如,SB 0、SB 1)的多个平面的存储器装置阵列的主机数据的多个LUN(LUN 1到LUN Y)的实例数据结构500。在示出的实例中,存储器装置包含N个平面,各自包含各自具有三个页面的三个子块(例如,SB 0和SB 3)。如所示出,LUN 1包含针对每一平面(平面0到平面N-1)的每一页面(例如,页面0到页面5)的主机数据或资源值(R)。在示出的实例中,LUN 1存储表示页面0、平面0的主机数据的“R00”;表示页面1平面0、页面1…的“R10”;以及表示页面5、平面N-1的“R5N-1”。
在实施例中,如图4所示,在操作401中,将第一子块(例如,子块X-1)的数据从控制器写入缓冲器155传送到高密度存储器装置460(例如,QLC NAND)的存储器装置高速缓冲存储器461(例如,NAND锁存器)。在操作401期间或响应于操作401,奇偶校验数据管理组件113执行奇偶校验数据操作以生成对应于第一子块数据的第一多平面子块奇偶校验数据(在本文中被称作“多平面子块奇偶校验数据”)。多平面子块奇偶校验数据(例如,SB X-1的多平面奇偶校验数据)存储在控制器高速缓冲存储器150中。在实施例中,通过使用对应于对应子块(例如,SB 0,其中X=1)的页面(例如,页面0、页面1、页面2)的主机数据(例如,R00、R10、R20、…R2N-2)的一部分执行XOR操作来生成第一多平面子块奇偶校验数据(例如,SBX-1的奇偶校验数据)。在实施例中,有利地,与使用所有平面(例如,P0到PN-1)生成奇偶校验数据的常规***相比,可使用平面P0到平面PN-2生成多平面子块奇偶校验数据,从而减少控制器高速缓冲存储器150的消耗。
在实施例中,在操作403中,将子块X-1数据从存储器装置高速缓冲存储器461编程到存储器装置阵列462。在操作403期间或响应于操作403,在操作404中,将对应于第二子块(例如,SB X数据)的第二组主机数据从控制器写入缓冲器155传送到高密度存储器装置460的存储器装置高速缓冲存储器461。另外,在操作403期间或响应于操作403,生成第二组多平面子块奇偶校验数据(对应于子块X 405)并将其存储在控制器高速缓冲存储器150中。在实施例中,由于多平面子块SB X奇偶校验数据405涉及操作404,则所述多平面子块SB X奇偶校验数据被称作“当前子块奇偶校验数据”,并且由于在操作403中对应的主机数据(例如,子块X-1数据)已经被编程到存储器装置阵列462,则多平面子块SB X-1奇偶校验数据被称作“先前子块奇偶校验数据”。
在操作406中,奇偶校验数据管理组件113基于SBX(当前子块,例如子块1)和SBX-1(先前子块,例如子块0)的多平面子块奇偶校验数据执行奇偶校验数据生成操作以生成多平面多子块奇偶校验数据407。在实施例中,奇偶校验数据生成操作为SBX和SBX-1的多平面子块奇偶校验数据的XOR。在实施例中,多平面多子块奇偶校验数据存储在控制器高速缓冲存储器150中。
如图4和5中所示,奇偶校验数据管理组件113执行奇偶校验数据操作以生成每一页面行的多页面奇偶校验数据。如上文所描述,通过使用所有平面(例如,平面0到平面N-1)的主机数据执行奇偶校验数据操作来生成每一页面(页面0到页面5)的页面行奇偶校验数据(例如,P0、P1、P2、P3、P4和P5)。例如,执行奇偶校验数据操作以生成页面0的页面行奇偶校验数据(在图5中表示为奇偶校验值“P0”)可由以下表达式表示:XOR[主机数据(平面0到平面N-1)]=P0。
在实施例中,奇偶校验数据管理组件113***可响应于子块多平面失效而执行数据恢复操作。在实施例中,通过使用存储器装置高速缓冲存储器461和多平面多子块奇偶校验数据407中的子块X数据执行XOR操作来执行数据恢复操作以检索先前子块(例如,SBX-1)奇偶校验数据并恢复先前子块的数据(例如,SBX-1的数据)。有利地,结合图4和5说明和描述的方法相比于常规方法,可产生50%控制器高速缓冲存储器的存储节省。例如,子块0的多平面奇偶校验数据(例如,三个页面的奇偶校验数据)可与子块1的多平面奇偶校验数据(例如,三个页面的奇偶校验数据)组合,其中所产生的三个页面的多平面奇偶校验数据存储在控制器高速缓冲存储器中,由此在控制器高速缓冲存储器中产生等效于三个页面的数据存储的节省。
在实施例中,可使用当前子块及先前子块反复地执行奇偶校验数据生成操作(例如,XOR操作)。例如,子块0的多平面奇偶校验数据可与子块1的多平面奇偶校验数据组合,子块1的多平面奇偶校验数据可与子块2的多平面奇偶校验数据组合,子块2的多平面奇偶校验数据可与子块3的多平面奇偶校验数据组合,等等。
在实施例中,奇偶校验数据管理组件113可在第一实施例中执行结合图2和3所描述的方法,在第二实施例中执行结合图4和5所描述的方法,或在第三实施例中一起执行这两种方法。
图6是根据本公开的实施例的用于使用由奇偶校验数据管理组件管理的奇偶校验数据来执行数据恢复操作的实例方法600的流程图。方法600可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路***、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法600由图1、2和4的奇偶校验数据管理组件113执行。在实施例中,方法600涉及存储在存储器子***的控制器的高速缓冲存储器中的奇偶校验数据的管理。虽然以特定顺序或次序来展示,但除非另外规定,否则可修改过程的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序进行,且一些过程可并行进行。此外,可在各种实施例中省略一或多个过程。因此,并非每个实施例中都需要所有过程。其它过程流程是可能的。在实施例中,如所示出,由短划线表示的操作(例如,操作651-655)表示如上文结合图4和5详述的另一实施例。
如图6所示,在操作610处,处理逻辑接收待写入到包含存储器装置的一组多个平面的存储区域的主机数据。在实施例中,存储区域为具有多个平面(例如,QLC NAND)的高密度存储区域。所述一组多个平面可包含N个平面(例如,其中N=4)。在实施例中,多个逻辑单元(例如,多个LUN)用于将对应于主机数据的数据存储在包含多个平面的数据结构中。
在操作620处,处理逻辑基于主机数据的多个平面的一部分执行第一奇偶校验生成操作以生成一组多平面奇偶校验数据。在实施例中,第一奇偶校验生成操作为基于主机数据的N-1个平面的XOR操作。所述一组多个平面的部分小于整个组的平面。例如,对于整个组的N个平面,所述部分包含主机数据的N-1个平面。在实施例中,一组多个平面的部分不包含主机数据的最后一个平面。在实施例中,一组多平面奇偶校验数据包含基于主机数据的N-1个平面的奇偶校验值。例如,对于包含四个平面的一组多个平面,所述一组多平面奇偶校验数据是基于主机数据的三个平面(例如,平面0、平面1和平面2)。
在操作630处,处理逻辑将一组多平面奇偶校验数据存储在存储器子***的控制器的高速缓冲存储器中。在实施例中,与基于主机数据的所有N个平面存储奇偶校验数据相比,在高速缓冲存储器中(基于主机数据的N-1个平面)存储一组多平面奇偶校验数据所需的存储量减少。
在操作640处,基于主机数据的一组多个平面执行第二奇偶校验生成操作以生成一组多页面奇偶校验数据。在实施例中,基于主机数据的所有平面(N个平面)为每一页面行生成多页面奇偶校验数据(图3中示出的P0、P1、P2、P3、P4和P5)。在操作650处,处理逻辑将多页面奇偶校验数据存储在存储器子***的控制器的高速缓冲存储器中。
在操作660处,处理逻辑基于一组多平面奇偶校验数据和一组多页面奇偶校验数据执行数据恢复操作。在实施例中,数据恢复操作应用于一组多平面奇偶校验数据和一组多页面奇偶校验数据,以恢复或重构由于失效而包含错误的主机数据(例如,一或多个损坏的数据页面或块)。有利地,与常规***相比,可以执行数据恢复操作以使用存储在具有较低存储要求的控制器的高速缓冲存储器中的奇偶校验数据提供多平面和多页面奇偶校验保护。由于基于数据的平面(例如,N个平面)的总数的一部分(例如,N-1个平面)存储多平面奇偶校验数据,实现了存储节省效益。
在实施例中,处理逻辑可执行操作651-655以生成并存储多平面多子块奇偶校验数据,如上文结合图4和5所描述。在操作651中,处理逻辑基于主机数据的一组多个平面的部分的第一子块执行第三奇偶校验生成操作以生成第一组多平面子块奇偶校验数据。在实施例中,多个平面的每一平面包含多个子块(例如,子块(SB)0、SB 1等),其中每一子块包含多个页面(例如,每一子块三个页面)。在实施例中,对存储在控制器的高速缓冲存储器中的一组多个平面的部分的第一子块执行第三奇偶校验生成操作。第一子块在图4和5中表示为SB X-1。在实施例中,第一子块为SB 0(其中X=1)。在实施例中,第三奇偶校验生成操作为使用多平面的XOR操作。
在操作652中,处理逻辑基于主机数据的一组多个平面的部分的第二子块执行第四奇偶校验生成操作以生成第二组多平面子块奇偶校验数据。在实施例中,第二子块在图4和5中表示为SB X。在实施例中,第二子块为SB 1(其中X=1)。在实施例中,在从控制器写入缓冲器到高密度存储器装置的存储器装置高速缓冲存储器的第二子块数据的传送期间或响应于第二子块数据的传送而执行第四奇偶校验生成操作。因此,第二子块(SB 1)可被称作“当前”子块,且第一子块(SB 0)被称作“先前”子块。在实施例中,第一子块和第二子块为包含先前子块和当前子块(例如,SB 0和SB 1;SB 1和SB 2;SB 2和SB 3等)的子块对。
在操作653中,处理逻辑基于第一组多平面子块奇偶校验数据和第二组多平面子块奇偶校验数据执行第五奇偶校验生成操作以生成一组多平面多子块奇偶校验数据。
在操作654中,处理逻辑将一组多平面多子块奇偶校验数据存储在存储器子***的控制器的高速缓冲存储器中。
在操作655中,处理逻辑基于一组多平面多子块奇偶校验数据和一组多页面奇偶校验数据执行数据恢复操作。应注意,在实施例中,可代替操作660来响应于失效的识别而执行操作655以使得能够恢复数据。
图7说明计算机***700的实例机器,所述实例机器内可执行用于使得所述机器执行本文中所论述的方法中的任何一或多者的一组指令。在一些实施例中,计算机***700可对应于主机***(例如,图1的主机***120)或可用于执行控制器的操作(例如,执行操作***以执行对应于图1的数据保护组件113的操作),所述主机***包含、耦合到或利用存储器子***(例如,图1的存储器子***110)。在替代性实施例中,机器可连接(例如联网)到LAN、内联网、外联网和/或互联网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或网桥、数字或非数字电路***,或能够执行指定要由此机器进行的动作的指令集(顺序的或以其它方式)的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行指令的集合(或多个集合)以执行本文中所论述的方法中的任何一或多种。
实例计算机***700包含处理装置702、主存储器704(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器706(例如,快闪存储器、静态随机存取存储器(SRAM)等)以及数据存储***718,它们经由总线730彼此通信。
处理装置702表示一或多个通用处理装置,例如微处理器、中央处理单元等。更具体地说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置702也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置702经配置以执行用于执行本文中所论述的操作和步骤的指令726。计算机***700可另外包含网络接口装置708以在网络720上通信。
数据存储***718可以包含机器可读存储媒体724(也称为计算机可读媒体),其上存储有一或多组指令726或体现本文中所描述的方法或功能中的任何一或多种的软件。指令726还可在其由计算机***700执行期间完全或至少部分地驻留在主存储器704内和/或处理装置702内,主存储器704和处理装置702也构成机器可读存储媒体。机器可读存储媒体724、数据存储***718和/或主存储器704可对应于图1的存储器子***110。
在一个实施例中,指令726包含实施对应于数据保护组件(例如,图1的数据保护组件113)的功能性的指令。虽然在实例实施例中将机器可读存储媒体724展示为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集合且致使机器执行本公开的方法中的任何一种或多种的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体以及磁性媒体。
已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。算法在这里并且通常被认为是产生期望的结果的操作的自洽序列。操作为要求对物理量进行物理控制的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。主要出于通用的原因,已经证明将这些信号称为位、值、元件、符号、字符、术语、数字等有时是便利的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅是应用于这些量的方便标签。本公开可以指操控和变换计算机***的寄存器和存储器内的表示为物理(电子)量的数据为计算机***存储器或寄存器或其它此类信息存储***内的类似地表示为物理量的其它数据的计算机***或类似电子计算装置的动作和过程。
本公开还涉及用于执行本文的操作的设备。此设备可出于预期目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,如但不限于任何类型的盘(包含软盘、光盘、CD-ROM和磁性光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适合于存储电子指令的任何类型的媒体,它们各自耦合到计算机***总线。
本文中呈现的算法和显示器并非在本质上与任何特定计算机或其它设备相关。各种通用***可与根据本文中的教示的程序一起使用,或其可证明构造用以执行所述方法更加专用的设备是便利的。将如下文描述中所示呈现用于各种这些***的结构。另外,不参考任何特定编程语言来描述本公开。将了解,可使用多种编程语言来实施如本文中所描述的本公开的教示。
本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机***(或其它电子装置)以进行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前述说明书中,已参考其特定实例实施例描述了本公开的实施例。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。

Claims (20)

1.一种方法,其包括:
由处理装置接收待写入到包含一组多个平面的存储区域的主机数据;
基于所述主机数据的所述一组多个平面的一部分执行第一奇偶校验生成操作以生成一组多平面奇偶校验数据;
将所述一组多平面奇偶校验数据存储在存储器子***的控制器的高速缓冲存储器中;
基于所述主机数据的所述一组所述多个平面执行第二奇偶校验生成操作以生成一组多页面奇偶校验数据;
将所述一组多页面奇偶校验数据存储在所述存储器子***的所述控制器的所述高速缓冲存储器中;以及
基于所述一组多平面奇偶校验数据和所述一组多页面奇偶校验数据执行数据恢复操作。
2.根据权利要求1所述的方法,其中所述一组多个平面的所述部分包括小于所述主机数据的平面的总数。
3.根据权利要求1所述的方法,其进一步包括基于所述主机数据的所述一组多个平面的所述部分的第一子块执行第三奇偶校验生成操作以生成第一组多平面子块奇偶校验数据。
4.根据权利要求3所述的方法,其进一步包括基于所述主机数据的所述一组多个平面的所述部分的第二子块执行第四奇偶校验生成操作以生成第二组多平面子块奇偶校验数据。
5.根据权利要求4所述的方法,其进一步包括基于所述第一组多平面子块奇偶校验数据和所述第二组多平面子块奇偶校验数据执行第五奇偶校验生成操作以生成一组多平面多子块奇偶校验数据。
6.根据权利要求1所述的方法,其中所述第一奇偶校验生成操作包括异或XOR操作,且其中所述一组多平面奇偶校验数据包括一组XOR奇偶校验值。
7.根据权利要求1所述的方法,其中响应于失效而执行所述数据恢复操作以恢复所述主机数据。
8.一种包括指令的非暂时性计算机可读媒体,所述指令在由处理装置执行时使所述处理装置执行包括以下各项的操作:
检测与写入到包含一组多个平面的存储器子***的存储区域的页面的主机数据相关联的错误;
从所述存储器子***的控制器的高速缓冲存储器检索第一组奇偶校验数据,其中所述第一组奇偶校验数据是基于小于所述主机数据的平面的总数而生成;以及
至少部分地基于所述第一组奇偶校验数据执行数据恢复操作。
9.根据权利要求8所述的非暂时性计算机可读媒体,所述操作进一步包括:
使用对应于小于平面的所述总数的所述主机数据执行第一奇偶校验生成操作以生成所述第一组奇偶校验数据。
10.根据权利要求8所述的非暂时性计算机可读媒体,所述操作进一步包括:
从所述控制器的所述高速缓冲存储器检索第二组奇偶校验数据,其中所述第二组奇偶校验数据包括多页面奇偶校验数据,且其中使用所述第二组奇偶校验数据执行所述数据恢复操作。
11.根据权利要求10所述的非暂时性计算机可读媒体,所述操作进一步包括:
使用对应于平面的所述总数的所述主机数据执行第二奇偶校验生成操作以生成所述第二组奇偶校验数据。
12.根据权利要求8所述的非暂时性计算机可读媒体,其中所述第一组奇偶校验数据包括对应于包括小于所述主机数据的平面的所述总数的所述主机数据的一部分的一组XOR奇偶校验值。
13.根据权利要求12所述的非暂时性计算机可读媒体,所述操作进一步包括:
基于所述主机数据的所述部分的第一子块生成第三组奇偶校验数据;
基于所述主机数据的所述部分的第二子块生成第四组奇偶校验数据;
基于所述第三组奇偶校验数据和所述第四组奇偶校验数据生成第五组奇偶校验数据,其中使用所述第五组奇偶校验数据执行所述数据恢复操作。
14.一种***,其包括:
存储器装置;以及
处理装置,其与所述存储器装置以操作方式耦合以执行包括以下各项的操作:
接收待写入到包含一组多个平面的存储区域的主机数据;
基于所述主机数据的所述一组多个平面的一部分执行第一奇偶校验生成操作以生成一组多平面奇偶校验数据;
将所述一组多平面奇偶校验数据存储在存储器子***的控制器的高速缓冲存储器中;
基于所述主机数据的所述一组所述多个平面执行第二奇偶校验生成操作以生成一组多页面奇偶校验数据;
将所述一组多页面奇偶校验数据存储在所述存储器子***的所述控制器的所述高速缓冲存储器中;以及
基于所述一组多平面奇偶校验数据和所述一组多页面奇偶校验数据执行数据恢复操作。
15.根据权利要求14所述的***,其中所述一组多个平面的所述部分包括小于所述主机数据的平面的总数。
16.根据权利要求14所述的***,所述操作进一步包括基于所述主机数据的所述一组多个平面的所述部分的第一子块执行第三奇偶校验生成操作以生成第一组多平面子块奇偶校验数据。
17.根据权利要求16所述的***,所述操作进一步包括基于所述主机数据的所述一组多个平面的所述部分的第二子块执行第四奇偶校验生成操作以生成第二组多平面子块奇偶校验数据。
18.根据权利要求17所述的***,所述操作进一步包括基于所述第一组多平面子块奇偶校验数据和所述第二组多平面子块奇偶校验数据执行第五奇偶校验生成操作以生成一组多平面多子块奇偶校验数据。
19.根据权利要求14所述的***,其中所述第一奇偶校验生成操作包括异或XOR操作,且其中所述一组多平面奇偶校验数据包括一组XOR奇偶校验值。
20.根据权利要求14所述的***,其中响应于失效而执行所述数据恢复操作以恢复所述主机数据。
CN202011603068.0A 2019-12-31 2020-12-30 存储器子***中多平面奇偶校验数据的存储管理 Pending CN113127254A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962955748P 2019-12-31 2019-12-31
US62/955,748 2019-12-31
US16/854,429 US11321173B2 (en) 2019-12-31 2020-04-21 Managing storage of multiple plane parity data in a memory sub-system
US16/854,429 2020-04-21

Publications (1)

Publication Number Publication Date
CN113127254A true CN113127254A (zh) 2021-07-16

Family

ID=76546538

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011603068.0A Pending CN113127254A (zh) 2019-12-31 2020-12-30 存储器子***中多平面奇偶校验数据的存储管理

Country Status (2)

Country Link
US (2) US11321173B2 (zh)
CN (1) CN113127254A (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11630725B2 (en) * 2019-12-24 2023-04-18 Micron Technology, Inc. Management of parity data in a memory sub-system
US11886295B2 (en) * 2022-01-31 2024-01-30 Pure Storage, Inc. Intra-block error correction
CN114625563B (zh) * 2022-05-11 2022-08-23 深圳佰维存储科技股份有限公司 Ssd的数据保护方法、装置、可读存储介质及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130024748A1 (en) * 2011-07-22 2013-01-24 Sandisk Technologies Inc. Systems and methods of storing data
US20140189421A1 (en) * 2010-12-01 2014-07-03 Lsi Corporation Non-Volatile Memory Program Failure Recovery Via Redundant Arrays
CN107729174A (zh) * 2016-08-11 2018-02-23 爱思开海力士有限公司 闪速存储器装置中的可修改条带长度
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阵列

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6993701B2 (en) * 2001-12-28 2006-01-31 Network Appliance, Inc. Row-diagonal parity technique for enabling efficient recovery from double failures in a storage array
US8316175B2 (en) * 2009-11-03 2012-11-20 Inphi Corporation High throughput flash memory system
US9471419B2 (en) * 2013-03-12 2016-10-18 Sandisk Technologies Llc Systems and methods for performing data recovery in a memory system
US9354973B2 (en) * 2013-03-13 2016-05-31 Intel Corporation Data integrity management in memory systems
US20160070507A1 (en) * 2014-09-08 2016-03-10 Kabushiki Kaisha Toshiba Memory system and method of controlling memory device
US10176039B2 (en) * 2014-09-19 2019-01-08 Micron Technology, Inc. Self-accumulating exclusive OR program
KR102372825B1 (ko) * 2015-07-31 2022-03-14 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10120751B2 (en) * 2015-09-25 2018-11-06 Intel Corporation Techniques to recover data using exclusive OR (XOR) parity information
TWI591643B (zh) * 2016-03-22 2017-07-11 群聯電子股份有限公司 資料保護方法、記憶體控制電路單元與記憶體儲存裝置
CN107391296B (zh) * 2016-04-27 2020-11-06 慧荣科技股份有限公司 存取闪存模块的方法及相关的闪存控制器与记忆装置
US10339000B2 (en) * 2016-09-13 2019-07-02 Sandisk Technologies Llc Storage system and method for reducing XOR recovery time by excluding invalid data from XOR parity
KR102648774B1 (ko) * 2016-11-10 2024-03-19 에스케이하이닉스 주식회사 랜더마이즈 동작을 수행하는 반도체 메모리 장치
US11521690B2 (en) * 2018-03-16 2022-12-06 Micron Technology, Inc. NAND data placement schema
US10872012B2 (en) * 2019-01-08 2020-12-22 Western Digital Technologies, Inc. XOR recovery schemes utilizing external memory
US20210055994A1 (en) * 2019-08-19 2021-02-25 Cnex Labs, Inc. Storage system with data reliability mechanism and method of operation thereof

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140189421A1 (en) * 2010-12-01 2014-07-03 Lsi Corporation Non-Volatile Memory Program Failure Recovery Via Redundant Arrays
US20130024748A1 (en) * 2011-07-22 2013-01-24 Sandisk Technologies Inc. Systems and methods of storing data
CN107729174A (zh) * 2016-08-11 2018-02-23 爱思开海力士有限公司 闪速存储器装置中的可修改条带长度
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阵列

Also Published As

Publication number Publication date
US11907066B2 (en) 2024-02-20
US20220261313A1 (en) 2022-08-18
US11321173B2 (en) 2022-05-03
US20210200637A1 (en) 2021-07-01

Similar Documents

Publication Publication Date Title
US11682446B2 (en) Selective wordline scans based on a data state metric
CN113035262B (zh) 存储器子***中奇偶校验数据的管理
US11907066B2 (en) Managing storage of multiple plane parity data in a memory sub-system
US11775179B2 (en) Enabling stripe-based operations for error recovery at a memory sub-system
WO2021216783A1 (en) Storing translation layer metadata in host memory buffer
CN113127255A (zh) 在低密度存储器***上实施容错页条带
US20240134554A1 (en) Smart swapping and effective encoding of a double word in a memory sub-system
US11321176B2 (en) Reduced parity data management
WO2023034449A1 (en) Managing host input/output in a memory system executing a table flush
US11409661B2 (en) Logical-to-physical mapping
US11556261B2 (en) Memory stripe coding management
US11656938B2 (en) Preemptive read verification after hardware write back
US11860732B2 (en) Redundancy metadata media management at a memory sub-system
US11709601B2 (en) Redundancy metadata for multi-plane memory access failure
US11636008B2 (en) Tracking host-provided metadata in a memory sub-system
US11625295B2 (en) Operating memory device in performance mode
US11720273B2 (en) Codeword error leveling for 3DXP memory devices
US11941291B2 (en) Memory sub-system command fencing
US20240028259A1 (en) Buffer allocation for reducing block transit penalty
US20230060744A1 (en) Memory sub-system signature generation
US20230186995A1 (en) Performing data integrity checks to identify defective wordlines
CN113126899A (zh) 完全多平面操作启用
KR20240055821A (ko) 대규모 코드워드의 rain 보호를 위한 리던던시 메타데이터 방식
CN115437558A (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