CN117632575A - 用于区存储器系统的块失效保护 - Google Patents

用于区存储器系统的块失效保护 Download PDF

Info

Publication number
CN117632575A
CN117632575A CN202311096365.4A CN202311096365A CN117632575A CN 117632575 A CN117632575 A CN 117632575A CN 202311096365 A CN202311096365 A CN 202311096365A CN 117632575 A CN117632575 A CN 117632575A
Authority
CN
China
Prior art keywords
parity
area
cursor
areas
data
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
CN202311096365.4A
Other languages
English (en)
Inventor
S·苏巴劳
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 CN117632575A publication Critical patent/CN117632575A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/1068Adding 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
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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/1048Adding 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 arrangements adapted for a specific error detection or correction feature
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请涉及用于区存储器系统的块失效保护。各种实施例提供用于支持区的存储器子系统的块失效保护,所述存储器子系统如使用独立NAND型快闪存储器装置的冗余阵列RAIN技术用于数据错误校正的存储器子系统。对于一些实施例,存储器子系统的以类似速率填满的非奇偶校验区匹配在一起,针对跨匹配区的所存储的数据产生奇偶校验,并且将所产生的奇偶校验存储于所述存储器装置的奇偶校验区中。

Description

用于区存储器系统的块失效保护
技术领域
本公开的实施例大体上涉及存储器装置,且更具体地,涉及用于支持区的存储器系统或子系统的块失效保护。
背景技术
存储器子系统可以包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统以在存储器装置处存储数据且从存储器装置检索数据。
发明内容
本公开的一实施例提供一种系统,其包括:存储器装置,其包括用于存储数据的多个区,所述多个区中的每一区具有奇偶校验光标和写入光标,个别区的奇偶校验光标包括指示从所述个别区的开头所述个别区中有多少空间已受奇偶校验保护的值,所述个别区的写入光标包括指示数据最后写入到所述个别区中的位置的值;以及处理装置,其操作性地耦合到所述存储器装置,且被配置成执行包括以下操作的操作:接收将用户数据集写入到所述多个区中的选择非奇偶校验区的请求;响应于所述请求而将所述用户数据集写入到所述选择非奇偶校验区;基于所述用户数据集的所述写入,更新所述选择非奇偶校验区的写入光标;确定所述选择非奇偶校验区的所述写入光标的值是否大于所述选择非奇偶校验区的奇偶校验光标的值;以及响应于所述选择非奇偶校验区的所述写入光标的值大于所述选择非奇偶校验区的所述奇偶校验光标的值:扫描所述多个区的至少一部分以找到奇偶校验光标具有类似值且各自的个别写入光标大于个别奇偶校验光标的预定数目的非奇偶校验区;基于所述预定数目的非奇偶校验区的所述奇偶校验光标的所述类似值,针对所述预定数目的非奇偶校验区产生错误校正奇偶校验数据;以及将所述错误校正奇偶校验数据存储到所述多个区中的选择奇偶校验区。
本公开的另一实施例提供至少一种包括指令的非暂时性机器可读存储媒体,所述指令在由处理装置执行时使所述处理装置执行包括以下操作的操作:将用户数据集写入到存储器装置的多个区中的选择非奇偶校验区,所述多个区中的每一区具有奇偶校验光标和写入光标,个别区的奇偶校验光标包括指示从所述个别区的开头所述个别区中有多少空间已受奇偶校验保护的值,所述个别区的写入光标包括指示数据最后写入到所述个别区中的位置的值;基于所述用户数据集的所述写入,更新所述选择非奇偶校验区的写入光标;确定所述选择非奇偶校验区的所述写入光标的值是否大于所述选择非奇偶校验区的奇偶校验光标的值;以及响应于所述选择非奇偶校验区的所述写入光标的值大于所述选择非奇偶校验区的所述奇偶校验光标的值:扫描所述多个区的至少一部分以找到奇偶校验光标具有类似值且各自的个别写入光标大于个别奇偶校验光标的预定数目的非奇偶校验区;基于所述预定数目的非奇偶校验区的所述奇偶校验光标的所述类似值,针对所述预定数目的非奇偶校验区产生错误校正奇偶校验数据;以及将所述错误校正奇偶校验数据存储到所述多个区中的选择奇偶校验区。
本公开的又一实施例提供一种方法,其包括:将用户数据集写入到存储器装置的多个区中的选择非奇偶校验区,所述多个区中的每一区具有奇偶校验光标和写入光标,个别区的奇偶校验光标包括指示从所述个别区的开头所述个别区中有多少空间已受奇偶校验保护的值,所述个别区的写入光标包括指示数据最后写入到所述个别区中的位置的值;基于所述用户数据集的所述写入,更新所述选择非奇偶校验区的写入光标;确定所述选择非奇偶校验区的所述写入光标的值是否大于所述选择非奇偶校验区的奇偶校验光标的值;以及响应于所述选择非奇偶校验区的所述写入光标的值大于所述选择非奇偶校验区的所述奇偶校验光标的值:扫描所述多个区的至少一部分以找到奇偶校验光标具有类似值且各自的个别写入光标大于个别奇偶校验光标的预定数目的非奇偶校验区;基于所述预定数目的非奇偶校验区的所述奇偶校验光标的所述类似值,针对所述预定数目的非奇偶校验区产生错误校正奇偶校验数据;以及将所述错误校正奇偶校验数据存储到所述多个区中的选择奇偶校验区。
附图说明
根据下文给出的详细描述和本公开的各种实施例的附图,将更充分地理解本公开。然而,图式不应视为将本公开限制于具体实施例,而是仅用于解释和理解。
图1是说明根据本公开的一些实施例的包含存储器子系统的实例计算环境的框图。
图2是根据本公开的一些实施例的用于支持区的存储器子系统的块失效保护的实例方法的流程图。
图3和4是说明根据本公开的一些实施例的使用支持区的存储器子系统上的数据分带的实例块失效保护的框图。
图5是根据本公开的一些实施例的用于找到区的实例格(bin)结构的框图。
图6提供说明在其中执行如本文中所描述的用于支持区的存储器子系统的块失效保护的方法的一些实施例的上下文中,计算环境的组件之间的交互的交互图。
图7是其中可操作本公开的实施例的实例计算机系统的框图。
具体实施方式
本公开的方面针对于用于支持区的存储器子系统(在下文为区存储器子系统)的块失效保护,所述存储器子系统如使用独立NAND型快闪存储器装置的冗余阵列(RAIN)技术用于数据错误校正的存储器子系统。存储器子系统可以是存储装置、存储器模块,或存储装置和存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个组件(例如存储数据的存储器装置)的存储器子系统。主机系统可将存取请求发送到存储器子系统,以便在存储器子系统处存储数据且从存储器子系统读取数据。
主机系统可将存取请求(例如,写入命令、读取命令)发送到存储器子系统,以便将数据存储在存储器子系统处的存储器装置上,从存储器子系统上的存储器装置读取数据,或相对于存储器子系统上的存储器装置写入/读取构造(例如,提交和完成队列)。如由主机请求指定的待读取或写入的数据在下文中被称作“主机数据”或“用户数据”。
常规存储器子系统可采用错误校正技术,例如使用独立NAND型快闪存储器装置的冗余阵列(下文称作RAIN技术)来保护存储在存储器子系统上的数据(例如,主机或用户数据)。错误校正技术可包括跨受错误保护的数据(例如,主机/用户数据)的某一集合计算奇偶校验(例如,异或(XOR)奇偶校验)。通过此类错误校正技术,如果由于任何原因而丢失(例如,损坏)所述集合的数据成员,则可重新执行奇偶校验计算且重新产生丢失的数据。由于例如RAIN技术等错误校正技术变得越发复杂,经执行以实现错误校正保护的并行奇偶校验计算的数目以及执行并行奇偶校验计算所需的存储器资源也可能越发复杂。举例来说,当存储器组件的集合包括多平面NAND装置(例如,三层级单元(TLC)NAND装置)时,可能需要并行地执行多个(例如,几十个)奇偶校验计算以实施存储在存储器子系统上的数据保护(例如,针对主机/用户数据)。此类常规存储器子系统中的数据通常跨NAND存储器装置的多个裸片依序写入。当跨存储器装置的指定裸片集的块的给定行完全写入数据时,执行RAIN奇偶校验计算且将其存储在与给定行相关联的奇偶校验块中。
数据可根据区(ZNS)存储于存储器子系统中。这类存储器子系统可被称为基于区的存储器子系统或区存储器子系统。可在存储器子系统中定义各个区,每个区可唯一地与特定用户数据或应用程序集相关联。举例来说,第一区可与第一应用程序(或被识别为从第一应用程序接收的用户数据)相关联,且第二区可与第二应用程序相关联。从第一应用程序接收的主机数据或用户数据可由存储器子系统存储在第一区中。所述区可具有相等或不相等大小,且可横跨裸片上单个块、裸片上多个块、整个裸片或存储器子系统的裸片集的大小。举例来说,每一区可横跨相应裸片或裸片集中的相应块集,而非依序跨块的行,且特定应用程序可与横跨单个裸片的给定区相关联。与所述应用程序相关联的用户或主机数据可存储在单个裸片上的给定区中。可根据NVM高速(NVMe)规范来定义存储器子系统中的区。举例来说,可由发到存储器子系统的一或多个NVMe命令来定义存储器子系统中的区。根据常规方法,当写入到与跨指定裸片集的多个区相关联的整个行时,可产生RAIN奇偶校验。
主机请求可包含用于主机数据的逻辑地址信息(例如,逻辑块地址(LBA)、名字空间),其为主机系统使其与主机数据和其中存储或存取主机数据的特定区相关联的位置。逻辑地址信息(例如,LBA、名字空间)可为主机数据的元数据的部分。元数据还可以包含错误处理数据(例如,错误校正码(ECC)码字、奇偶检验码)、数据版本(例如,用于区分所写入数据的新旧)、有效位图(其LBA或逻辑传送单元含有有效数据)等。
存储器子系统可以对存储在存储器装置上的主机数据发起媒体管理操作,如写入操作。例如,作为垃圾收集管理操作的部分,存储器子系统的固件可将先前写入的主机数据从存储器装置的方位重写到新位置。重写的数据(例如,如通过固件启动)在下文中称为“垃圾收集数据”。
下文中的“用户数据”大体指主机数据和垃圾收集数据。下文中的“系统数据”是指由存储器子系统产生和/或维护以用于响应于主机请求而进行操作和用于媒体管理的数据。系统数据的实例包含但不限于系统表(例如,逻辑到物理存储器地址映射表(在本文中也称为L2P表)、来自日志记录的数据、便签本数据(scratch pad data)等等)。
存储器装置可以为非易失性存储器装置。非易失性存储器装置为一或多个裸片的封装。每一裸片可以由一或多个平面构成。对于一些类型的非易失性存储器装置(例如,AND型装置),每一平面由物理块集组成。对于一些存储器装置,块是可擦除的最小区域。每一块包括页集。每一页由存储数据位的存储器单元集构成。存储器装置可为原始存储器装置(例如,NAND),其例如由外部控制器进行外部管理。存储器装置可以是受管理存储器装置(例如,受管理NAND),其为与本地嵌入式控制器组合以用于同一存储器装置封装内的存储器管理的原始存储器装置。存储器装置可划分成一或多个区,其中每个区与主机数据或用户数据或应用程序的不同集合相关联。
某些存储器装置,例如NAND型存储器装置,包括一或多个块(例如,多个块),其中那些块中的每一个均包括多个存储器单元。举例来说,存储器装置可包括多个页(也称为字线),其中每一页包括存储器装置的存储器单元子集。(块的)存储器单元的阈值电压(VT)可为实施存储器单元的浮动栅极(例如,NAND晶体管)接通且传导(例如,传导到与存储器单元耦合的位线)的电压。通常,将数据写入到这类存储器装置涉及在块的页层级编程存储器装置(借助于编程操作),且从这类存储器装置擦除数据涉及在块层级擦除存储器装置(例如,数据的页层级擦除是不可能的)。
存储器装置可包括一或多个高速缓存块和一或多个非高速缓存块,其中写入到存储器装置的数据首先写入到一或多个高速缓存块,这可促进更快速的写入执行;且存储于高速缓存块上的数据最终可在另一时间(例如,当存储器装置空闲时的时间)移动(例如,复制)到一或多个非高速缓存块,这可促成存储器装置上的较高存储容量。高速缓存块可包括具有多个单层级单元(SLC)的SLC块,且非高速缓存块可包括具有多个多层级单元(MLC)的MLC块、具有多个TLC的TLC块,或具有四层级单元(QLC)的QLC块。首先写入到一或多个SLC块可被称为SLC写入高速缓存或SLC高速缓存(还被称作SLC模式中的缓冲)。通常,当使用传统的完整SLC高速缓存时,在数据从SLC块移动到非高速缓存块(例如,QLC块)且验证非高速缓存块没有错误之后使SLC块释放数据。
常规区存储器子系统可使用完整SLC块高速缓存(还被称作SLC高速缓存),其中数据缓冲(例如,首先写入)于SLC高速缓存块上,且在验证了非高速缓存块(例如,MLC块、TLC块、QLC块)没有缺陷之后,从SLC高速缓存块中释放经缓冲数据。令人遗憾的是,在其中非高速缓存块是QLC块的一些实施方案中,将在每开放QLC块利用四个SLC块,这在资源上可能是相当昂贵的。举例来说,在存储器子系统在每NAND装置平面具有十六个开放QLC块的情况下,将在每平面使用六十四个SLC高速缓存块。这可表示高超量配给(OP)开销(例如,10.5%超量配给)。另外,为了在关闭单个QLC块且打开另一个QLC块时,实现SLC高速缓存块的更平滑过渡,可能使用甚至更大的超量配给(例如,1%额外超量配给)。高超量配给可能会使存储器子系统与其它传统的存储器子系统相比竞争力较低。
本文所描述的各种实施例提供用于支持区的存储器系统或子系统的块失效保护。具体来说,防止在块编程,例如多层级单元(MLC)、三层级单元(TLC)或四层级单元(QLC)块的编程期间发生块失效。对于一些实施例,存储器子系统的以类似速率填满的非奇偶校验区(例如,用以存储非奇偶校验数据,例如用户数据)匹配在一起,跨匹配区产生(例如,计算)用于数据条带(例如,页)的奇偶校验,并且将所产生的奇偶校验存储于存储器装置的奇偶校验区中。举例来说,存储器子系统可使用RAIN技术用于错误校正,且所产生的奇偶校验可包括RAIN奇偶校验数据。在各种实施例中,通过如本文中所描述的区分格(zonebinning)算法来识别匹配的非奇偶校验区。每一区可包括存储器装置的一或多个块。举例来说,每一奇偶校验区可包括一或多个单层级单元(SLC)块,且每一非奇偶校验区可包括一或多个非SLC块,例如MLC、TLC或QLC块。
在检测到块或区失效(例如,归因于在块编程期间发生缺陷)之后,可即刻执行块恢复过程以恢复失效块或区的数据页。对于一些实施例,块恢复过程包括确定(例如,识别)一或多个奇偶校验区、区偏移和与待恢复数据页对应的数据页。使用奇偶校验区元数据,可识别与每一奇偶校验区相关联的非奇偶校验区集。此后,对于每一非奇偶校验区,区偏移处除了失效块或区数据以外的所有区数据被“异或”(XOR)在一起,并将结果与奇偶校验区数据XOR以获得与失效块或区对应的经恢复数据。
本文所描述的各种实施例的使用可在每非高速缓存块使用较少高速缓存块(例如,奇偶校验区的SLC块)的同时,实现编程非高速缓存块(例如,非奇偶校验区的QLC块)的失效保护。举例来说,实施例的区存储器子系统可在QLC块的编程期间实现块失效保护,其中每开放QLC块使用1.35个SLC块。这可表示相较于使用完整SLC高速缓存(例如,每开放QLC块可使用四个SLC块)的传统存储器子系统,SLC块的使用量显著减小。
如本文中所使用,存储器裸片的物理存储器位置可包括块、页或存储器单元。举例来说,在物理存储器位置包括页或存储器单元的情况下,物理存储器位置集可表示单个块或多个块。物理存储器位置集可为相连物理存储器位置集。如本文中所使用,将数据存储于存储器裸片的一或多个物理存储器位置上可包括将数据写入到一或多个物理存储器位置,其中所述写入可包括用数据编程块的一或多个页。
如本文中所描述,本文中公开用于支持区的存储器子系统的块失效保护的一些实例。
图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130),或这类的组合。
存储器子系统110可为存储装置、存储器模块,或存储装置和存储器模块的混合。存储装置的实例包含固态硬盘(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、安全数字(SD)卡、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储器(UFS)驱动器和硬盘驱动器(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)接口、UFS接口、光纤通道、串行连接的SCSI(SAS)、小型计算机系统接口(SCSI)、双倍数据速率(DDR)存储器总线、DIMM接口(例如,支持DDR的DIMM套接接口)、开放NAND快闪接口(ONFI),DDR、低功率双倍数据速率(LPDDR),或任何其它接口。物理主机接口可用于在主机系统120与存储器子系统110之间发射数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可进一步利用NVM高速(NVMe)接口来存取组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传送控制、地址、数据和其它信号的接口。图1说明作为实例的存储器子系统110。一般来说,主机系统120可经由同一通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器子系统。
存储器装置130、140可以包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含NAND型快闪存储器和就地写入存储器,例如三维(3D)交叉点存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列而基于体电阻的改变来进行位存储。另外,与许多基于闪存的存储器对比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。NAND型快闪存储器包含例如二维(2D)NAND和3D NAND。
存储器装置130中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如SLC可每单元存储一个位。其它类型的存储器单元,例如MLC、TLC、QLC和五层级单元(PLC)可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC或此类存储器单元阵列的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分,以及MLC部分、TLC部分或QLC部分。存储器装置130的存储器单元可分组为页,所述页可指用于存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,NAND),页可进行分组以形成块。如本文中所使用,包括SLC的块可被称为SLC块,包括MLC的块可被称为MLC块,包括TLC的块可被称为TLC块,且包括QLC的块可被称为QLC块。
虽然描述了非易失性存储器组件,例如NAND型快闪存储器(例如,2D NAND、3DNAND)和3D交叉点非易失性存储器单元阵列,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、“或非”(NOR)快闪存储器和电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器115(为简单起见,控制器115)可与存储器装置130通信以进行操作,例如在存储器装置130处读取数据、写入数据或擦除数据和其它此类操作。存储器子系统控制器115可以包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。硬件可包含具有执行本文中所描述的操作的专用(即,硬译码)逻辑的数字电路系统。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等),或其它合适的处理器。
存储器子系统控制器115可包含处理器(处理装置)117,其被配置成执行存储在本地存储器119中的指令。在所说明的实例中,存储器子系统控制器115的本地存储器119包含嵌入式存储器,其被配置成存储用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流和例程的指令,包含处置存储器子系统110与主机系统120之间的通信。
在一些实施例中,本地存储器119可以包含存储器指针、所提取的数据等的存储器寄存器。本地存储器119还可包含用于存储微码的ROM。虽然在图1中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一个实施例中,存储器子系统110不包含存储器子系统控制器115,而是替代地可依靠外部控制(例如,由外部主机或由与存储器子系统分开的处理器或控制器提供)。
一般来说,存储器子系统控制器115可从主机系统120接收命令或操作并且可将所述命令或操作转换成指令或适当命令以实现对存储器装置130和/或存储器装置140的所要存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和ECC操作、加密操作、高速缓存操作,以及与存储器装置130相关联的逻辑地址(例如,LBA、名称空间)与物理存储器地址(例如,物理块地址)之间的地址转译。存储器子系统控制器115可另外包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路可将从主机系统120接收到的命令转换为命令指令以存取存储器装置130和/或存储器装置140,以及将与存储器装置130和/或存储器装置140相关联的响应转换为用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路或组件。在一些实施例中,存储器子系统110可以包含高速缓存或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),其可从存储器子系统控制器115接收地址且对地址进行解码以存取存储器装置130。
在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以在存储器装置130的一或多个存储器单元上执行操作。外部控制器(例如,存储器系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,其为与同一存储器装置封装内进行媒体管理的本地控制器(例如,本地控制器135)组合的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。
存储器子系统控制器115包含用于区存储器子系统的块失效保护113(在下文为块失效保护113),所述块失效保护使得存储器子系统控制器115能够或有助于存储器子系统控制器115根据本文中描述的各种实施例来实施用于存储器子系统110的区的块失效保护。替代地,本地媒体控制器135包含块失效保护113中的一些或全部,进而使得本地媒体控制器135能够跨存储器子系统110的区启用或促使块失效保护。根据一些实施例,存储器子系统110上所界定的每一区包括存储器装置130、140的一或多个块。每一个别区可具有奇偶校验光标来指示从个别区的开头有多少空间受奇偶校验数据(例如,RAIN奇偶校验数据)保护,且每一个别区可具有写入光标以指示个别区中被最后写入数据的最后一个位置。举例来说,个别区的奇偶校验光标可包括指示从个别区的开头有多少空间受奇偶校验数据保护的值。奇偶校验光标的值可为相对于个别区的开头的偏移值。类似地,个别区的写入光标可包括指示个别区中被最后写入数据的最后一个位置的值。写入光标的值可为相对于个别区的开头的偏移值。给定区的奇偶校验光标基于其相应值可大于、小于或等于给定区的写入光标(例如,当奇偶校验光标的值大于写入光标的值时,奇偶校验光标大于写入光标)。在奇偶校验数据已经产生并存储(例如,存储于存储器子系统110的奇偶校验区中)之后可更新(例如,递增)给定区的奇偶校验光标。给定区的写入光标可被更新(例如,在数据写入到给定区中的可用空间之后递增)。在存储器子系统110上,可界定多个区以使得某些区(在下文为非奇偶校验区)用以存储非奇偶校验数据,例如用户数据,且某些区(在下文为奇偶校验区)用以存储针对存储于非奇偶校验区中的数据产生的奇偶校验数据。
在数据(例如,用户数据)写入到存储器子系统110上所界定的选择区之后,用于区存储器子系统113的块失效保护可使存储器子系统控制器115基于写入到选择区的数据来更新选择区的写入光标(例如,使所述写入光标的值递增)。可基于从主机系统120发到存储器子系统110的请求来写入数据。在更新之后,块失效保护113可使存储器子系统控制器115确定选择区的写入光标(如经更新)现在是否大于选择区的奇偶校验光标。如果是,那么块失效保护113可使存储器子系统控制器115扫描存储器子系统110的一或多个区以找到(例如,识别)各自的奇偶校验光标值相同(例如,具有目前受奇偶校验数据保护的相同空间量的非奇偶校验区)以及各自的写入光标大于奇偶校验光标的预定数目的非奇偶校验区。是同一格候选集的成员的部分的非奇偶校验区可被视为匹配的非奇偶校验区。寻找的非奇偶校验区的预定数目可在不同实施例之间是不同的。举例来说,预定数目可为32或64。根据各种实施例,针对来自含有预定数目(例如,32)个非奇偶校验区的匹配非奇偶校验区的群组的数据产生奇偶校验数据(例如,RAIN奇偶校验数据),且所产生的奇偶校验数据存储于奇偶校验光标匹配群组的奇偶校验光标的单个奇偶校验区中。举例来说,可针对包括跨群组的匹配的非奇偶校验区的数据部分(例如,由所述数据部分构成)的数据条带产生奇偶校验数据,其中所述数据部分相对于群组的非奇偶校验区的奇偶校验光标位于匹配的非奇偶校验区中。这类数据条带可在本文中被称作区条带。以此方式,本文所描述的各种实施例可实现来自非奇偶校验区群组的数据的预定数目+1(例如,32+1)RAIN奇偶校验数据保护。
对于一些实施例,使用本文中描述的区分格算法执行扫描。举例来说,区分格算法可涉及维持各自包括非奇偶校验区候选集(例如,列表)和奇偶校验区候选集(例如,列表)的格(例如,奇偶校验光标格),所述区候选集的奇偶校验光标的值对应于格的编号(例如,格编号699包括奇偶校验光标值为699的非奇偶校验区候选集和奇偶校验光标值为699的奇偶校验区候选集)。是格候选集的成员的非奇偶校验区的写入光标也可大于其奇偶校验光标。随着更新相应奇偶校验光标(例如,值递增),也可更新一或多个格(例如,非奇偶校验区可在不同格的非奇偶校验候选集之间移动,或奇偶校验区可在不同格的非奇偶校验候选集之间移动)。举例来说,在针对预定数目的非奇偶校验区的数据条带产生错误校正奇偶校验数据之后,那些可更新非奇偶校验区的奇偶校验光标,且基于那些奇偶校验光标的新值,个别非奇偶校验区可从其(一个格的)当前非奇偶校验区候选集移动到(另一格的另一非奇偶校验区候选集)或可响应于个别非奇偶校验区的写入光标等于个别非奇偶校验区的奇偶校验光标而被从其当前非奇偶校验区候选集中移出。另外,在错误校正奇偶校验数据存储于选择奇偶校验区中之后,可更新选择奇偶校验区的奇偶校验光标,且基于奇偶校验光标的新值,选择奇偶校验区可从(一个格的)其当前奇偶校验区的候选集移动到(另一格的)另一奇偶校验区候选集。
对于一些实施例,维持的格数目对应于奇偶校验光标可具有的可能值的数目(例如,700个可能奇偶校验光标值将产生700个格,例如格0到699)。对于一些实施例,基于正在寻找(例如,识别)的区的预定数目来确定每一格的非奇偶校验区候选集的最大大小。举例来说,在其中预定数目是32的情况下,每一非奇偶校验区候选集的最大大小可为32个区。对于一些实施例,基于作用中区的数目和正在寻找(例如,识别)的区的预定数目来确定格的奇偶校验区候选集的最大大小。举例来说,在其中预定数目是32且作用中区的数目是16K的情况下,每一奇偶校验区候选集的最大大小可为512个区。
在找到(例如,识别)一或多个匹配的非奇偶校验区群组之后,块失效保护113可即刻使存储器子系统控制器115针对找到的群组中的至少一个(例如,群组中的每一个)产生错误校正奇偶校验数据。对于匹配的非奇偶校验区的给定群组,可基于与给定群组相关联的奇偶校验光标产生错误校正奇偶校验数据。举例来说,可针对包括来自给定群组中的每一非奇偶校验区的同一位置的数据部分(例如,页)的数据条带(例如,区条带)产生错误校正奇偶校验数据,其中所述位置是基于(例如,相对于)与给定群组相关联的奇偶校验光标的值(例如,偏移值)确定的。此后,块失效保护113可使存储器子系统控制器115将所产生的奇偶校验数据存储到奇偶校验光标匹配给定群组的奇偶校验光标的奇偶校验区。
图2是根据本公开的一些实施例的用于支持区的存储器子系统的块失效保护的实例方法200的流程图。方法200可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,由图1的存储器子系统控制器115基于块失效保护113执行方法200。另外或替代地,对于一些实施例,至少部分地由图1的存储器装置130的本地媒体控制器135来执行方法200。虽然以特定顺序或次序来展示,但除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每一实施例中并不使用所有过程。其它过程流程也是可能的。
现参考图2的方法200,在操作202处,处理装置(例如,存储器子系统控制器115的处理器117)维持具有不同(例如,对应)格编号的多个格,其中每一个别格包括非奇偶校验区候选集和奇偶校验区候选集。根据各种实施例,给定格的非奇偶校验区候选集包括奇偶校验光标值(例如,匹配值对应于给定格的格编号且各自的单个写入光标大于单个奇偶校验光标的非奇偶校验区。另外,对于一些实施例,给定格的奇偶校验区候选集包括奇偶校验光标值对应于个别格的格编号的奇偶校验区。对于一些实施例,操作202维持的多个格用于扫描(例如,在操作212处)多个区的至少一部分以找到奇偶校验光标具有类似值且各自的个别写入光标大于个别奇偶校验光标的预定数目的非奇偶校验区。具体来说,促进扫描多个区以找到相关区的区分格算法可使用多个格。关于图5描述关于区分格算法的更多信息。
在操作204期间,处理装置(例如,117)接收将用户数据集写入到存储器子系统(例如,110)的存储器装置(例如,130、140)的多个区中的选择非奇偶校验区的请求(例如,来自主机系统120)。对于各种实施例,可例如根据NVM高速(NVMe)标准或规范,相对于存储器子系统的一或多个存储器装置界定给定区。多个区可存储数据,其中所述多个区包括用于存储非奇偶校验数据(例如用户数据)的非奇偶校验区,以及用于存储用于非奇偶校验数据的奇偶校验数据的奇偶校验区。根据各种实施例,所述多个区中的每一个别区具有奇偶校验光标和写入光标,其中奇偶校验光标包括指示从个别区的开头个别区中有多少空间已受奇偶校验保护的值(例如,相对于个别区的开头的偏移值),且其中写入光标包括指示数据最后写入到个别区中的位置的值(例如,相对于个别区的开头的偏移值)。对于一些实施例,所述多个区包括次多个奇偶校验区,其中(次多个奇偶校验区中的)每一奇偶校验区包括一或多个单层级单元(SLC)块。另外,对于一些实施例,所述多个区包括次多个非奇偶校验区,其中(次多个非奇偶校验区的)每一非奇偶校验区包括一或多个MLC、TLC或QLC块。
响应于所述请求,在操作206处,处理装置(例如,117)将用户数据集写入到选择非奇偶校验区。在用户数据集写入到选择非奇偶校验区之后,在操作208处,处理装置(例如,117)基于在操作206处写入用户数据集而更新选择非奇偶校验区的写入光标。具体来说,写入光标可经更新(例如,递增)以反映用户数据集已经写入到选择非奇偶校验区。
此后,在操作210处,处理装置(例如,117)确定选择非奇偶校验区的写入光标的值是否大于选择非奇偶校验区的奇偶校验光标的值。响应于处理装置确定选择非奇偶校验区的写入光标的值不大于选择非奇偶校验区的奇偶校验光标的值,处理装置不针对预定数目的非奇偶校验区进行扫描。
响应于处理装置确定选择非奇偶校验区的写入光标的值大于选择非奇偶校验区的奇偶校验光标的值,在操作212处,处理装置(例如,117)扫描所述多个区的至少一部分以找到奇偶校验光标具有类似值且各自的个别写入光标大于个别奇偶校验光标的预定数目的非奇偶校验区(例如,32个非奇偶校验区)。对于一些实施例,通过操作212找到的非奇偶校验区被视为匹配的非奇偶校验区。在个别区的写入光标大于个别区的奇偶校验光标的情况下,所述个别区存储不受奇偶校验数据(例如,RAIN奇偶校验数据)保护的数据(例如,用户数据)。根据一些实施例,基于操作202维持的多个格来确定预定数目的非奇偶校验区。如所提及,促进扫描多个区以找到相关区的区分格算法可使用多个格。举例来说,可检查(例如,扫描)每一格以识别各自具有包括预定数目的非奇偶校验区(例如,32个非奇偶校验区)的非奇偶校验区候选集的一或多个格。根据各种实施例,是给定格的非奇偶校验区候选集的成分的非奇偶校验区被视为匹配的非奇偶校验区且各自具有值类似的奇偶校验光标,其中奇偶校验光标的值对应于给定格的格编号。关于图5描述关于区分格算法的更多信息。
在操作214处,处理装置(例如,117)基于预定数目的非奇偶校验区的奇偶校验光标的值(例如,匹配值),针对预定数目的非奇偶校验区产生错误校正奇偶校验数据。对于一些实施例,针对在相对于预定数目的非奇偶校验区的奇偶校验光标(例如,匹配的奇偶校验光标)的位置处,跨非奇偶校验区的数据条带(例如,页)的预定数目的非奇偶校验区产生错误校正奇偶校验数据。在所产生的错误校正奇偶校验数据是针对每一非奇偶校验区的仅小部分的条件下,错误校正奇偶校验数据可表示用于非奇偶校验区的部分或临时奇偶校验数据。操作214可包括作为后台过程,执行(例如,发起)奇偶校验产生操作,例如RAIN操作。对于一些实施例,操作214包括在预定数目的非奇偶校验区的奇偶校验光标处,从预定数目的非奇偶校验区(例如,跨非奇偶校验区的数据条带)对所存储的数据执行“异或”(XOR)操作。
随后,在操作216处,处理装置(例如,117)将通过操作214产生的错误校正奇偶校验数据存储到多个区中的选择奇偶校验区。在各种实施例中,选择奇偶校验区的奇偶校验光标的值与预定数目的非奇偶校验区的奇偶校验光标的值类似。因此,对于一些实施例,基于选择奇偶校验区的奇偶校验光标从多个区中确定(例如,选择)选择奇偶校验区。根据一些实施例,基于操作202维持的多个格来确定(例如,选择)选择奇偶校验区。举例来说,从多个格,可确定(例如,识别)格编号与操作212找到(例如,识别)的预定数目的非奇偶校验区的奇偶校验光标的值对应的格。随后可从所确定(例如,识别)的格的奇偶校验区候选集中确定(例如,选择)选择奇偶校验区。对于一些实施例,操作216包括基于错误校正奇偶校验数据存储到选择奇偶校验区来更新元数据(例如,奇偶校验区元数据和数据条带元数据),其中元数据将多个区的非奇偶校验区群组(例如,预定数目的非奇偶校验区)与多个区中的奇偶校验区映射在一起。举例来说,奇偶校验区元数据可经更新,将(通过操作212发现的)预定数目的非奇偶校验区中的(在操作214处产生错误校正奇偶校验数据所针对的)非奇偶校验区与选择奇偶校验区映射在一起。另外,数据条带元数据可经更新,映射由跨预定数目的非奇偶校验区中的非奇偶校验区获得的数据部分(例如,数据页)构成的数据条带(例如,区条带)。
最终,当检测到块或区失效时,可执行块恢复过程以恢复失效块或区的数据页。对于一些实施例,块恢复过程包括确定(例如,识别)一或多个奇偶校验区、区偏移以及与待恢复数据页对应的数据页。使用奇偶校验区元数据,可识别与每一奇偶校验区相关联的非奇偶校验区集。此后,对于每一非奇偶校验区,区偏移处除了失效块或区数据以外的所有区数据被“异或”(XOR)在一起,并将结果与奇偶校验区数据XOR以获得与失效块或区对应的经恢复数据。
图3和4是说明根据本公开的一些实施例的使用支持区的存储器子系统上的数据分带的实例块失效保护的框图。具体来说,图3说明实例区集302-K到302-N(ZONESET_K到ZONESET_N),其中所述区集各自表示扫描操作(例如,图2的方法200的操作212)找到的32个匹配的非奇偶校验区的实例。图3可表示根据各种实施例的多个区的32+1RAIN数据保护的实例。对于一些实施例,给定区集中的每一非奇偶校验区安置于存储器装置的不同平面上。如所示出,区集302-K的非奇偶校验区的奇偶校验光标具有区偏移值K,且区集302-N的非奇偶校验区的奇偶校验光标具有区偏移值N。当产生用于区集302-K的错误校正奇偶校验数据时,在区偏移值K下,基于由来自区集302-K的每一非奇偶校验区的数据部分(例如,数据页)构成的数据条带K(DATA-STRIPE_K)产生错误校正奇偶校验数据,所述区偏移值K是区集302-K的奇偶校验光标的值。针对区集302-K产生的错误校正奇偶校验数据在区偏移K下存储于奇偶校验区304(例如,包括一或多个SLC块)中。同样地,当针对区集302-N产生了错误校正奇偶校验数据时,在区偏移值N下,基于由来自区集302-N的每一非奇偶校验区的数据部分构成的数据条带N(DATA-STRIPE_N)产生错误校正奇偶校验数据,所述区偏移值N是区集302-N的奇偶校验光标的值。针对区集302-N产生的错误校正奇偶校验数据在区偏移N下存储于区集302-N中。假设奇偶校验光标具有K到N个可能值(例如,0到699),奇偶校验区元数据可存储关于(例如,描述)K到N区集的数据,且数据条带元数据可存储关于(例如,描述)K到N数据条带的数据。
图4说明如何基于非奇偶校验区402-1到402-P(统称为非奇偶校验区402)构造新数据条带(例如,区条带)的实例,所述非奇偶校验区可表示奇偶校验光标值类似且各自的写入光标大于奇偶校验光标的预定数目的非奇偶校验区(例如,32个非奇偶校验区)。如所示出,非奇偶校验区402-1的写入光标406大于奇偶校验光标408,指示存储于非奇偶校验区402-1中的数据部分(例如,一或多个数据页)不受错误校正奇偶校验数据保护。相对于非奇偶校验区402的奇偶校验光标的当前值确定新数据条带(例如,奇偶校验光标的值+1)。还如所示,针对新数据条带产生的错误校正奇偶校验数据最终存储于奇偶校验区404中,所述奇偶校验区404是奇偶校验光标匹配非奇偶校验区402的奇偶校验光标的奇偶校验区。所产生的错误校正奇偶校验数据可存储于奇偶校验区404中对应于奇偶校验区404的奇偶校验光标的位置处。
图5是根据本公开的一些实施例的用于找到区的实例格结构500的框图。具体来说,根据各种实施例,格结构500可供区分格算法用以促进非奇偶校验和奇偶校验区的扫描。在图5中,奇偶校验光标格502包括对应格编号为0到699的700个格。如所说明,每一格包括(例如,链接到)非奇偶校验区候选集(候选集),以及奇偶校验区候选集(奇偶校验区集中的一个)。因此,候选集0到699(候选集504)对应于格0到699,且奇偶校验区集0到699(奇偶校验区集506)对应于格0到699。对于各种实施例,候选集包括其写入光标大于其奇偶校验光标且其奇偶校验光标的值相同的非奇偶校验区列表。另外,对于一些实施例,奇偶校验区集包括其奇偶校验光标的值相同的奇偶校验区列表。根据各种实施例,每一非奇偶校验区和奇偶校验区从格0开始且在操作期间更新奇偶校验光标时向上行进(例如,直到格699)。
图6提供说明在其中执行如本文中所描述的用于支持区的存储器子系统的块失效保护的方法的一些实施例的上下文中,计算环境的组件之间的交互的交互图。所述方法的操作可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法由主机系统(例如,120)、存储器子系统控制器(例如,115)、存储器装置(例如,130或140)或其某一组合执行。虽然操作以特定顺序或次序来展示,但是除非另外规定,否则所述过程的次序可修改。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每一实施例中并不使用所有过程。在图6中说明的实例的上下文中,主机系统可包含主机系统120,存储器子系统控制器可包含存储器子系统控制器115,且存储器装置可包含存储器装置130。
如图6所示,在操作602处,主机系统120将发送将用户数据写入到存储器子系统110的(例如,在其上界定的)选择非奇偶校验区的请求,且在操作610处,存储器子系统控制器115接收来自主机系统120的请求。
在操作612处,存储器子系统控制器115将用户数据写入到选择非奇偶校验区。为了促进此操作,在操作630处,存储器装置130提供对存储器装置130的与选择非奇偶校验区中正被写入用户数据的部分相关联(例如,相对应)的部分存取。另外,在操作614处,存储器子系统控制器115基于在操作612处写入用户数据而更新选择非奇偶校验区的写入光标。
此后,在操作616处,存储器子系统控制器115确定选择非奇偶校验区的写入光标的值是否大于选择非奇偶校验区的奇偶校验光标的值。响应于存储器子系统控制器115确定选择非奇偶校验区的写入光标的值大于选择非奇偶校验区的奇偶校验光标的值,在操作618处,存储器子系统控制器115扫描多个区的至少一部分以找到奇偶校验光标具有类似值且各自的个别写入光标大于个别奇偶校验光标的预定数目的非奇偶校验区(例如,32个非奇偶校验区)。随后,在操作620处,存储器子系统控制器115基于预定数目的非奇偶校验区的奇偶校验光标的值,针对预定数目的非奇偶校验区产生错误校正奇偶校验数据。在操作622处,存储器子系统控制器115将操作620产生的错误校正奇偶校验数据存储到所述多个区中的选择奇偶校验区。为了促进此操作,在操作632处,存储器装置130提供对存储器装置130的与选择奇偶校验区中正被写入用户数据的部分相关联(例如,相对应)的部分存取。
图7说明计算机系统700的实例机器,可执行所述计算机系统700内的用于致使所述机器执行本文中所论述的方法中的任一种或多种方法的指令集。在一些实施例中,计算机系统700可与主机系统(例如,图1的主机系统120)对应,所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行本文中所描述的操作。在替代实施例中,所述机器可以连接(例如,联网)到局域网(LAN)、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。
所述机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够执行(依序或以其它方式)指定将由所述机器采取的动作的指令集的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多)个指令集以进行本文中所论述的方法中的任何一或多种。
实例计算机系统700包含处理装置702、主存储器704(例如,ROM、快闪存储器、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的块失效保护113)对应的功能性的指令。虽然在实例实施例中将机器可读存储媒体724展示为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集合且致使机器执行本公开的方法中的任何一种或多种的任何媒体。术语“机器可读存储媒体”因此应被视为包含但不限于固态存储器、光学媒体和磁性媒体。
已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。在本文中,且一般将算法构想为产生所要结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。通常(但未必),这些量采用能够存储、组合、比较以及以其它方式操纵的电或磁信号的形式。已经证实,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、项、编号等等有时是便利的。
然而,应牢记,所有这些和类似术语将与适当物理量相关联,且仅仅为应用于这些量的便利标记。本公开可以指操控和变换计算机系统的寄存器和存储器内的表示为物理(电子)数量的数据为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
本发明还涉及用于执行本文中的操作的设备。这一设备可以出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘(包含软盘、光盘、CD-ROM和磁性光盘)、ROM、RAM、EPROM、EEPROM、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可以与根据本文中的教示的程序一起使用,或所述通用系统可以证明为便于构造以用以执行所述方法更加专用的设备。将如下文描述中所阐述的那样来呈现各种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示内容。
本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用以编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如ROM、RAM、磁盘存储媒体、光学存储媒体、闪存存储器组件等。
在前述说明书中,本公开的实施例已经参照其特定实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中阐述的本发明的实施例的更广精神和范围的情况下对本发明进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书及图式。

Claims (20)

1.一种系统,其包括:
存储器装置,其包括用于存储数据的多个区,所述多个区中的每一区具有奇偶校验光标和写入光标,个别区的奇偶校验光标包括指示从所述个别区的开头所述个别区中有多少空间已受奇偶校验保护的值,所述个别区的写入光标包括指示数据最后写入到所述个别区中的位置的值;以及
处理装置,其操作性地耦合到所述存储器装置,且被配置成执行包括以下操作的操作:
接收将用户数据集写入到所述多个区中的选择非奇偶校验区的请求;
响应于所述请求而将所述用户数据集写入到所述选择非奇偶校验区;
基于所述用户数据集的所述写入,更新所述选择非奇偶校验区的写入光标;
确定所述选择非奇偶校验区的所述写入光标的值是否大于所述选择非奇偶校验区的奇偶校验光标的值;以及
响应于所述选择非奇偶校验区的所述写入光标的值大于所述选择非奇偶校验区的所述奇偶校验光标的值:
扫描所述多个区的至少一部分以找到奇偶校验光标具有类似值且各自的个别写入光标大于个别奇偶校验光标的预定数目的非奇偶校验区;
基于所述预定数目的非奇偶校验区的所述奇偶校验光标的所述类似值,针对所述预定数目的非奇偶校验区产生错误校正奇偶校验数据;以及
将所述错误校正奇偶校验数据存储到所述多个区中的选择奇偶校验区。
2.根据权利要求1所述的系统,其中所述选择奇偶校验区的奇偶校验光标的值与所述预定数目的非奇偶校验区的所述奇偶校验光标的值类似。
3.根据权利要求2所述的系统,其中所述操作包括:
基于所述选择奇偶校验区的奇偶校验光标,从所述多个区中的奇偶校验区集中选择所述选择奇偶校验区。
4.根据权利要求1所述的系统,其中所述基于所述预定数目的非奇偶校验区的所述奇偶校验光标的所述类似值针对所述预定数目的非奇偶校验区产生所述错误校正奇偶校验数据包括:
在所述预定数目的非奇偶校验区的所述奇偶校验光标处,从所述预定数目的非奇偶校验区对所存储的数据执行“异或”XOR操作。
5.根据权利要求1所述的系统,其中所述将所述错误校正奇偶校验数据存储到所述多个区中的所述选择奇偶校验区包括:
基于所述错误校正奇偶校验数据存储到所述选择奇偶校验区来更新元数据,所述元数据将非奇偶校验区群组与奇偶校验区映射在一起。
6.根据权利要求1所述的系统,其中所述操作包括:
维持具有不同格编号的多个格,所述多个格中的每一个别格包括:
非奇偶校验区候选集,其奇偶校验光标的值对应于所述个别格的格编号且各自的单个写入光标大于单个奇偶校验光标;以及
奇偶校验区候选集,其奇偶校验光标值对应于所述个别格的所述格编号,所述多个区的所述至少一部分的所述扫描是基于所述多个格。
7.根据权利要求1所述的系统,其中所述预定数目的非奇偶校验区是第一预定数目的非奇偶校验区,其中所述类似值是第一类似值,其中所述错误校正奇偶校验数据是第一错误校正奇偶校验数据,且其中所述操作包括:
响应于所述多个区的所述至少一部分的所述扫描并未找到所述第一预定数目的非奇偶校验区:
扫描所述多个区的所述至少一部分以找到奇偶校验光标具有第二类似值且各自的个别写入光标大于阈值的第二预定数目的非奇偶校验区;
基于所述第二预定数目的非奇偶校验区的所述奇偶校验光标的所述第二类似值,针对所述第二预定数目的非奇偶校验区产生第二错误校正奇偶校验数据;以及
将所述第二错误校正奇偶校验数据存储到所述多个区中的经识别奇偶校验区。
8.根据权利要求1所述的系统,其中所述多个区包括次多个奇偶校验区,所述次多个奇偶校验区中的每一奇偶校验区包括一或多个单层级单元SLC块,所述次多个奇偶校验区包括所述选择奇偶校验区。
9.根据权利要求1所述的系统,其中所述选择非奇偶校验区包括一或多个四层级单元QLC块。
10.根据权利要求1所述的系统,其中所述多个区是根据非易失性存储器高速规范所界定的。
11.至少一种包括指令的非暂时性机器可读存储媒体,所述指令在由处理装置执行时使所述处理装置执行包括以下操作的操作:
将用户数据集写入到存储器装置的多个区中的选择非奇偶校验区,所述多个区中的每一区具有奇偶校验光标和写入光标,个别区的奇偶校验光标包括指示从所述个别区的开头所述个别区中有多少空间已受奇偶校验保护的值,所述个别区的写入光标包括指示数据最后写入到所述个别区中的位置的值;
基于所述用户数据集的所述写入,更新所述选择非奇偶校验区的写入光标;
确定所述选择非奇偶校验区的所述写入光标的值是否大于所述选择非奇偶校验区的奇偶校验光标的值;以及
响应于所述选择非奇偶校验区的所述写入光标的值大于所述选择非奇偶校验区的所述奇偶校验光标的值:
扫描所述多个区的至少一部分以找到奇偶校验光标具有类似值且各自的个别写入光标大于个别奇偶校验光标的预定数目的非奇偶校验区;
基于所述预定数目的非奇偶校验区的所述奇偶校验光标的所述类似值,针对所述预定数目的非奇偶校验区产生错误校正奇偶校验数据;以及
将所述错误校正奇偶校验数据存储到所述多个区中的选择奇偶校验区。
12.根据权利要求11所述的至少一个非暂时性机器可读存储媒体,其中所述选择奇偶校验区的奇偶校验光标的值与所述预定数目的非奇偶校验区的所述奇偶校验光标的值类似。
13.根据权利要求12所述的至少一个非暂时性机器可读存储媒体,其中所述操作包括:
基于所述选择奇偶校验区的奇偶校验光标,从所述多个区中的奇偶校验区集中选择所述选择奇偶校验区。
14.根据权利要求11所述的至少一个非暂时性机器可读存储媒体,其中所述基于所述预定数目的非奇偶校验区的所述奇偶校验光标的所述类似值针对所述预定数目的非奇偶校验区产生所述错误校正奇偶校验数据包括:
在所述预定数目的非奇偶校验区的所述奇偶校验光标处,从所述预定数目的非奇偶校验区对所存储的数据执行“异或”XOR操作。
15.根据权利要求11所述的至少一个非暂时性机器可读存储媒体,其中所述将所述错误校正奇偶校验数据存储到所述多个区中的所述选择奇偶校验区包括:
基于所述错误校正奇偶校验数据存储到所述选择奇偶校验区来更新元数据,所述元数据将非奇偶校验区群组与奇偶校验区映射在一起。
16.根据权利要求11所述的至少一个非暂时性机器可读存储媒体,其中所述操作包括:
维持具有不同格编号的多个格,所述多个格中的每一个别格包括:
非奇偶校验区候选集,其奇偶校验光标的值对应于所述个别格的格编号且各自的单个写入光标大于单个奇偶校验光标;以及
奇偶校验区候选集,其奇偶校验光标值对应于所述个别格的所述格编号,所述多个区的所述至少一部分的所述扫描是基于所述多个格。
17.根据权利要求11所述的至少一个非暂时性机器可读存储媒体,其中所述预定数目的非奇偶校验区是第一预定数目的非奇偶校验区,其中所述类似值是第一类似值,其中所述错误校正奇偶校验数据是第一错误校正奇偶校验数据,且其中所述操作包括:
响应于所述多个区的所述至少一部分的所述扫描并未找到所述第一预定数目的非奇偶校验区:
扫描所述多个区的所述至少一部分以找到奇偶校验光标具有第二类似值且各自的个别写入光标大于阈值的第二预定数目的非奇偶校验区;
基于所述第二预定数目的非奇偶校验区的所述奇偶校验光标的所述第二类似值,针对所述第二预定数目的非奇偶校验区产生第二错误校正奇偶校验数据;以及
将所述第二错误校正奇偶校验数据存储到所述多个区中的经识别奇偶校验区。
18.根据权利要求11所述的至少一个非暂时性机器可读存储媒体,其中所述多个区包括次多个奇偶校验区,所述次多个奇偶校验区中的每一奇偶校验区包括一或多个单层级单元SLC块,所述次多个奇偶校验区包括所述选择奇偶校验区。
19.根据权利要求11所述的至少一个非暂时性机器可读存储媒体,其中所述选择非奇偶校验区包括一或多个四层级单元QLC块。
20.一种方法,其包括:
将用户数据集写入到存储器装置的多个区中的选择非奇偶校验区,所述多个区中的每一区具有奇偶校验光标和写入光标,个别区的奇偶校验光标包括指示从所述个别区的开头所述个别区中有多少空间已受奇偶校验保护的值,所述个别区的写入光标包括指示数据最后写入到所述个别区中的位置的值;
基于所述用户数据集的所述写入,更新所述选择非奇偶校验区的写入光标;
确定所述选择非奇偶校验区的所述写入光标的值是否大于所述选择非奇偶校验区的奇偶校验光标的值;以及
响应于所述选择非奇偶校验区的所述写入光标的值大于所述选择非奇偶校验区的所述奇偶校验光标的值:
扫描所述多个区的至少一部分以找到奇偶校验光标具有类似值且各自的个别写入光标大于个别奇偶校验光标的预定数目的非奇偶校验区;
基于所述预定数目的非奇偶校验区的所述奇偶校验光标的所述类似值,针对所述预定数目的非奇偶校验区产生错误校正奇偶校验数据;以及
将所述错误校正奇偶校验数据存储到所述多个区中的选择奇偶校验区。
CN202311096365.4A 2022-08-30 2023-08-29 用于区存储器系统的块失效保护 Pending CN117632575A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/823,365 2022-08-30
US17/823,365 US11914471B1 (en) 2022-08-30 2022-08-30 Block failure protection for zone memory system

Publications (1)

Publication Number Publication Date
CN117632575A true CN117632575A (zh) 2024-03-01

Family

ID=90000555

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311096365.4A Pending CN117632575A (zh) 2022-08-30 2023-08-29 用于区存储器系统的块失效保护

Country Status (2)

Country Link
US (2) US11914471B1 (zh)
CN (1) CN117632575A (zh)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5506979A (en) * 1991-04-02 1996-04-09 International Business Machines Corporation Method and means for execution of commands accessing variable length records stored on fixed block formatted DASDS of an N+2 DASD synchronous array
DE69621214T2 (de) * 1996-01-31 2002-12-05 Toshiba Kawasaki Kk Ein-Ausgabekontrollverfahren mit Wiederherstellungsfunktion
US7984259B1 (en) * 2007-12-17 2011-07-19 Netapp, Inc. Reducing load imbalance in a storage system
US8082330B1 (en) * 2007-12-28 2011-12-20 Emc Corporation Application aware automated storage pool provisioning
US8793223B1 (en) * 2009-02-09 2014-07-29 Netapp, Inc. Online data consistency checking in a network storage system with optional committal of remedial changes
US10242014B2 (en) * 2015-02-04 2019-03-26 International Business Machines Corporation Filesystem with isolated independent filesets
CN111124257B (zh) * 2018-10-31 2023-09-26 伊姆西Ip控股有限责任公司 用于管理独立盘冗余阵列的方法、设备和计算机程序产品
US11334276B2 (en) * 2020-04-07 2022-05-17 Vmware Inc. Using segment pre-allocation to support large segments

Also Published As

Publication number Publication date
US20240070020A1 (en) 2024-02-29
US20240152424A1 (en) 2024-05-09
US11914471B1 (en) 2024-02-27

Similar Documents

Publication Publication Date Title
US11682446B2 (en) Selective wordline scans based on a data state metric
US11630725B2 (en) Management of parity data in a memory sub-system
US11676664B2 (en) Voltage bin selection for blocks of a memory device after power up of the memory device
US11868643B2 (en) Background memory scan block selection
US11928347B2 (en) Managing voltage bin selection for blocks of a memory device
CN113127254A (zh) 存储器子系统中多平面奇偶校验数据的存储管理
CN113539335A (zh) 针对存储器装置的块族跟踪
US11636044B2 (en) Logical-to-physical mapping
US20220164107A1 (en) Using bad blocks for system data in memory
US11830545B2 (en) Data programming techniques to store multiple bits of data per memory cell with high reliability
US11221776B2 (en) Metadata indication for a memory device
CN113555058A (zh) 存储器装置中使用嵌入式伺服单元的读取电平校准
US11914471B1 (en) Block failure protection for zone memory system
CN113035262B (zh) 存储器子系统中奇偶校验数据的管理
US20240118971A1 (en) Temporary parity buffer allocation for zones in a parity group
US11556261B2 (en) Memory stripe coding management
CN115048039B (zh) 用于基于有效转换单元计数的存储器管理的方法、设备和系统
US11656938B2 (en) Preemptive read verification after hardware write back
US11967386B2 (en) Memory sub-system for memory cell touch-up
US20230395152A1 (en) Memory cell voltage level selection
US20230393981A1 (en) Lbat bulk update
US20240143170A1 (en) Runtime storage capacity reduction avoidance in sequentially-written memory devices
US20240028259A1 (en) Buffer allocation for reducing block transit penalty
CN117631986A (zh) 区域存储器系统中的延迟区域调整
CN115437558A (zh) 存储器系统中的对角页映射

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication