掌桥专利:专业的专利平台
掌桥专利
首页

在低密度存储器系统上实施容错页条带

文献发布时间:2023-06-19 11:52:33


在低密度存储器系统上实施容错页条带

技术领域

本公开大体上涉及存储器系统,且更确切地说涉及在低密度存储器系统上实施容错页条带。

背景技术

一种存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统以在存储器装置处存储数据且从存储器装置检索数据。

发明内容

本申请的一个方面针对一种系统,所述系统包括:存储器装置;以及处理装置,其操作性地与所述存储器装置耦合以执行包括以下的操作:接收第一主机数据项目;将所述第一主机数据项目存储在存储器装置的第一逻辑单元的第一页中,其中所述第一页与容错条带相关联;接收第二主机数据项目;将所述第二主机数据项目存储在所述存储器装置的所述第一逻辑单元的第二页中,其中所述第二页与所述容错条带相关联,且其中所述第二页由至少预定数目的字线与所述第一页分隔;将与所述容错条带相关联的冗余元数据存储在所述存储器装置的第二逻辑单元的页中。

本申请的另一方面针对一种方法,所述方法包括:由存储器子系统控制器的处理装置接收第一主机数据项目;将所述第一主机数据项目存储在存储器装置的第一逻辑单元的第一页中,其中所述第一页与容错条带相关联;接收第二主机数据项目;将所述第二主机数据项目存储在所述存储器装置的所述第一逻辑单元的第二页中,其中所述第二页与所述容错条带相关联,且其中所述第二页由不存储主机数据的至少一虚设字线与所述第一页分隔;将与所述容错条带相关联的冗余元数据存储在所述存储器装置的第二逻辑单元的页中。

本申请的又一方面针对一种包括可执行指令的非暂时性计算机可读存储介质,所述可执行指令当由处理装置执行时致使所述处理装置执行操作,所述操作包括:接收第一主机数据项目;将所述第一主机数据项目存储在存储器装置的第一逻辑单元的第一页中,其中所述第一页与容错条带相关联;接收第二主机数据项目;将所述第二主机数据项目存储在所述存储器装置的所述第一逻辑单元的第二页中,其中所述第二页与所述容错条带相关联,且其中所述第二页由至少预定数目的字线与所述第一页分隔;将与所述容错条带相关联的冗余元数据存储在所述存储器装置的第二逻辑单元的页中。

附图说明

根据下文给出的详细描述和本公开的各种实施方案的附图,将更充分地理解本公开。

图1示出根据本公开的一些实施例包含存储器子系统的实例计算系统。

图2示意性地示出根据本公开的实施例的存储器装置的实例布局。

图3示意性地示出根据本公开的实施例的存储器装置的实例容错布局。

图4示意性地示出根据本公开的实施例的存储器装置的另一实例冗余方案。

图5示意性地示出根据本公开的实施例的存储器装置的又一实例冗余方案。

图6示意性地示出根据本公开的实施例的存储器装置的又一实例冗余方案。

图7示意性地示出根据本公开的实施例的存储器装置的又一实例冗余方案。

图8是由根据本公开的一些实施例操作的存储器子系统控制器实施容错页条带的实例方法的流程图。

图9是本公开的实施方案可以在其中操作的实例计算机系统的框图。

具体实施方式

本公开的方面是针对将容错条带的数据存储在基于存储器装置的边界的位置处。存储器子系统可为存储装置、存储器模块,或存储装置和存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个组件(例如,存储器装置)的存储器子系统。主机系统可以提供数据以存储在存储器子系统处并且可以请求从存储器子系统检索数据。

存储器装置可以是非易失性存储器装置,其为一或多个裸片的封装。封装中的裸片可指派到一或多个通道以用于与存储器子系统控制器通信。非易失性存储器装置包含经分组为页以存储数据位的单元(即,存储信息的电子电路)。非易失性存储器装置的一个实例是与非(NAND)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。

各种存储器子系统可实施容错冗余方案,例如独立NAND的冗余阵列(RAIN),以用于错误检查和校正。容错冗余方案可将主机数据存储在页群组(本文称为容错条带)中,使得每一条带包含冗余元数据页(例如,奇偶校验页),因此使得在条带的页中的一个失效的情况下能够重建数据。

存储器装置可包含通过字线分组的多个存储器单元阵列。特定字线处的存储器装置的故障可能导致存储于字线处的数据至少部分丢失。此外,导致特定字线的故障的缺陷可能进一步触发接近所述字线的其它字线的故障。因此,缺陷可能导致不同位置处(例如,不同字线处)容错条带的多个数据页丢失。如果相同容错条带的多个数据页位于字线附近,则太多主机数据要素可能同时丢失,因此致使不可能基于可用冗余元数据重建丢失的主机数据要素。相应地,在存储器装置发生故障的情形中,在邻近字线处存储容错条带的数据页可能导致所述容错条带的数据丢失。

本公开的方面通过将主机数据存储在指定大小的容错条带中来解决上述和其它缺陷,所述指定大小可预先确定以便限制由于实施容错方案而导致的过度提供损失。每一容错条带可包含多个数据页,而容错条带的最后页专用于存储可用于错误检测及校正的冗余元数据。可利用来自每个逻辑单元的每个平面的具有循序页编号的多个页形成此容错条带,条件是驻留在相同平面内的页具有足够的字线分隔(例如,由包含层面分隔字线的至少预定数目的字线分隔)。可基于存储器装置的布局动态地调整容错条带大小以便提供必需的字线分隔,如本文中下文更详细地阐释。

图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高速(NVMExpress,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)可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC或这些的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分,和MLC部分、TLC部分或QLC部分。存储器装置130的存储器单元可分组为页,所述页可指用于存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,NAND),页可分组以形成块。本文中的“块”将指代邻接或非邻接存储器页的集合。“块”的实例为“可擦除块”,其是存储器的最小可擦除单元,而“页”是存储器的最小可写入单元。每一页包含存储器单元集合。

尽管描述例如3D交叉点非易失性存储器单元阵列和NAND型快闪存储器(例如,2DNAND、3D NAND)等非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、磁随机存取存储器(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的所需存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作和与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、名字空间)和物理地址(例如,物理块地址)之间的地址转译。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可以将从主机系统接收到的命令转换成存取存储器装置130的命令指令,以及将与存储器装置130相关联的响应转换成用于主机系统120的信息。

存储器子系统110还可以包含未示出的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从存储器子系统控制器115接收地址并解码所述地址以访问存储器装置130。

在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,执行存储器装置130上的媒体管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,其是与本地控制器(例如,本地控制器135)组合以在同一存储器装置封装内进行媒体管理的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。

存储器子系统110包含以容错方式管理存储主机数据的容错管理器113。在一些实施例中,存储器子系统控制器115包含容错管理器113的至少一部分。举例来说,存储器子系统控制器115可包含处理器117(处理装置),其被配置成执行存储在本地存储器119中以用于执行本文中所描述的操作的指令。在一些实施例中,容错管理器113是主机系统110、应用或操作系统的一部分。

容错管理器113可用以实施用于将主机数据存储在存储器装置130处的容错布局。当主机数据正到来时,容错管理器113可对存储器装置的页进行编程以形成指定大小的容错条带,所述指定大小可预先确定以便限制由于实施容错方案而导致的过度提供损失。每一容错条带可包含多个数据页,而容错条带的最后页专用于存储可用于错误检测及校正的冗余元数据。可利用来自存储器装置的逻辑单元的至少一子集的每个逻辑单元的每个平面的具有循序页编号的多个页形成此容错条带,条件是驻留在相同平面内的页具有足够的字线分隔(例如,由包含层面分隔字线的至少预定数目的字线分隔)。

随着对页进行编程(即,随着将页的内容存储到存储器装置),可通过例如借助于互斥或(exclusive disjunction,XOR)运算对页的内容求和来计算冗余元数据,且XOR运算的中间结果可存储于存储器中直至容错条带关闭(即,直至元数据写入到容错条带的最后页)。因为页具有循序页编号,所以不需要额外存储器来存储中间XOR结果,这是因为页#i的XOR结果可继续到页#i+1。在对容错条带的最后数据页进行编程之后,将XOR结果写入到存储器装置。可基于存储器装置的布局动态地调整容错条带大小以便提供必需的字线分隔,如本文中在下文更详细地描述。

图2示意性地示出根据本公开的实施例的存储器装置的实例布局200。如在本文上文中所提及以及由图2示意性地示出,主机数据可存储在存储器装置上,存储器装置可包含多个逻辑单元(也称为“LUN”或“裸片”)。每一逻辑单元可包含驻留在多个平面上的多个块210。每一块可包含通过相应字线WL

多个块可逻辑上组合以形成超级块SB0-SB3,所述超级块包含来自每一逻辑单元的每一平面的至少一个块。相对于存储器装置的编程操作可由超级块执行,即,通过在将主机数据写入到一个超级块的页之后将主机数据写入到另一超级块的页。

存储器子系统控制器可通过在将主机数据写入到一个页之后将主机数据循序写入到另一页使得所述页分组为容错条带来以容错方式存储主机数据。每一容错条带包含特定数目的数据页(即,存储主机数据的页)以及存储待用于错误检测及恢复的元数据的冗余元数据页。如在本文上文中所提及,冗余元数据可由奇偶校验元数据表示,使得可通过执行容错条带的相应数据位页的逐位互斥或(也称为“XOR”)运算来产生容错条带的元数据页的每一位。此冗余方案将在给定容错条带的不超过一个页为错误的情形中提供容错。可通过执行所有剩余数据页和元数据页的逐位互斥或来重建错误的页。

因为上文所描述的容错方案允许每容错条带不超过一个错误页,所以容错条带中可能不存在共享任何给定逻辑单元的单个平面内的一或多个邻近字线的页,这是因为给定字线上一个错误页的存在可指示相同字线上的其它页也是错误的。换句话说,来自逻辑单元的任何给定平面的任何给定字线的不超过一个页可存在于容错条带中。因此,在一些实施方案中,容错条带可包含来自存储器装置的每个逻辑单元的每个平面的页,使得利用容错条带的除一个以外其余所有页来存储主机数据,同时利用剩余页来存储冗余元数据。

图3示意性地示出根据本公开的实施例的存储器装置的实例容错布局300。在图3的说明性实例中,由跨存储器装置的平面和逻辑单元的具有其平面内第一编号的页(例如,页#1)形成一个容错条带,使得利用容错条带的除一个以外其余所有页来存储主机数据,同时利用最后页P1来存储针对容错条带的冗余元数据。由跨存储器装置的平面和逻辑单元的具有其平面内的第二编号的页(例如,页#2)形成另一容错条带,使得利用容错条带的除一个以外其余所有页来存储主机数据,同时利用最后页P2来存储针对容错条带的冗余元数据。图3的说明性实例中的逻辑单元、平面、页、字线和容错条带的数目是出于说明性目的而挑选,且不是限制性的;其它实施方案可使用各种其它数目的逻辑单元、平面、页和容错条带。

因为上文所描述的容错条带包含每个逻辑单元的每个平面的一个页,所以容错条带大小有效地由平面的数目乘以存储器装置中的逻辑单元数目来限制。这在具有相对小数目的逻辑单元和/或平面的低密度装置中可能造成效率问题,因为使每一容错条带的一个页专用于存储冗余元数据将导致逻辑单元数目与平面数目的逆向积的过度提供损失(即,过度提供损失=1/(LUN的数目*平面的数目))。本文中的“过度提供”将指代所分配的物理存储器块数目超出对于主机呈现为可用存储器的逻辑容量。

相应地,减少过度提供损失的一种方式涉及,形成利用来自存储器装置的逻辑单元的至少一子集的每个逻辑单元的每个平面的多个页而非一个页的容错条带,如由图4示意性地示出,图4示意性地示出根据本公开的实施例的存储器装置的实例容错布局400。在图4的说明性实例中,由跨存储器装置的平面和逻辑单元的具有其平面内的第一预定义编号的页(例如,页#1)和具有其平面内的第二预定义编号的页(例如,页#5)形成第一容错条带,使得利用容错条带的除一个以外其余所有页来存储主机数据,同时利用最后页P1来存储针对容错条带的冗余元数据。由跨存储器装置的平面和逻辑单元的具有其平面内的第一预定义编号之后的编号的页(例如,页#2)和具有其平面内的第二预定义编号之后的编号的页(例如,页#6)形成第二容错条带,使得利用容错条带的除一个以外其余所有页来存储主机数据,同时利用最后页P2来存储针对容错条带的冗余元数据。由跨存储器装置的平面和逻辑单元的页#3和页#7形成第三容错条带,使得利用容错条带的除一个以外其余所有页来存储主机数据,同时利用最后页P3来存储针对容错条带的冗余元数据。由跨存储器装置的平面和逻辑单元的页#4和页#8形成第四容错条带,使得利用容错条带的除一个以外其余所有页来存储主机数据,同时利用最后页P4来存储针对容错条带的冗余元数据,等等。

值得注意的是,字线上的物理缺陷可能不仅影响驻留在相同字线上的页,而且还影响一或多个相邻字线的页。相应地,来自给定平面的参与相同容错条带的每一对页可由至少一个字线分隔(例如,页#1和页#5、页#2和页#6等),如由图5示意性地示出,图5示意性地示出根据本公开的实施例的存储器装置的实例容错布局500。

在各种其它实例和实施方案中,来自给定平面的参与相同容错条带的页可由至少指定数目的字线(即,一或多个字线)分隔。相同平面的两个页同时为错误的概率随着分隔两个页的字线的数目增长而减小。

图5的说明性实例中的逻辑单元、平面、页、字线和容错条带的数目是出于说明性目的而挑选且不是限制性的;其它实施方案可使用各种其它数目的逻辑单元、平面、页和容错条带。

归因于各种存储器装置实施方案的物理局限性,中的页仅可以相应平面内的其相应页编号的升序编程。相应地,形成利用来自逻辑单元的至少一子集的每个逻辑单元的每个平面的多个页的容错条带可能需要保持多个容错条带打开,且因此将进一步需要额外存储器(例如,在存储器子系统的非易失性存储器装置上)来存储中间元数据。在说明性实例中,当对页进行编程时(即,当页的内容存储到存储器装置时)页的内容可例如通过互斥或(XOR)运算来求和,且XOR运算的中间结果可存储于存储器中直至容错条带关闭(即,直至元数据写入到容错条带的最后页)。

相应地,如由图6示意性地示出,图6示意性地示出根据本公开的实施例的存储器装置的实例容错布局600,可利用来自存储器装置的逻辑单元的至少一子集的每个逻辑单元的每个平面的具有循序页编号的多个页形成容错条带,条件是驻留在相同平面内的页具有足够的字线分隔(例如,由包含层面分隔字线的至少预定数目的字线分隔)。层面分隔字线指代不包含数据页的虚设字线。层面分隔字线将跨所有平面的逻辑单元有效地拆分为位于层面分隔字线上方的上部层面和位于字分隔字线下方的下部层面。

在图6的说明性实例中,由跨存储器装置的平面和逻辑单元的具有第一预定义编号的页(例如,页#0)和具有在第一预定义编号之后的第二预定义编号的页(例如,页#1)形成第一容错条带,使得利用容错条带的除一个以外其余所有页来存储主机数据,同时利用最后页P1来存储针对容错条带的冗余元数据。页#0由层面分隔字线WL

在操作中,当主机数据正到来时,对具有跨所有逻辑单元的所有平面的第一预定义编号(例如,页#0)进行编程,然后对跨所有逻辑单元的所有平面的第二预定义编号(例如,页#1)进行编程。随着对页进行编程(即,随着将页的内容存储到存储器装置),可通过例如借助于互斥或(XOR)运算对页的内容求和来计算冗余元数据,且XOR运算的中间结果可存储于存储器中直至容错条带关闭(即,直至元数据写入到容错条带的最后页)。因此,不需要额外存储器来存储中间XOR结果,因为页#0的XOR结果可继续到页#1。在对容错条带的最后数据页进行编程之后,将XOR结果写入到存储器装置(图6的说明性实例中的页P)。

图6的说明性实例中的逻辑单元、平面、页、字线和容错条带的数目是出于说明性目的而挑选且不是限制性的;其它实施方案可使用各种其它数目的逻辑单元、平面、页和容错条带。

在一些实施例中,存储器装置布局可能未能为至少一些循序编号页提供必需的字线分隔。在图7的说明性实例中,图7示意性地示出根据本公开的实施例的存储器装置的实例容错布局600,具有第一预定编号的页(例如,页#0)和具有第一预定编号之后的第二预定编号的页(例如,页#1)由单个字线(层面分隔字线)分隔,而必需的分隔字线的数目可以是两个。相应地,至少两个不同大小的容错条带可形成于存储器装置上:对于驻留在邻近于层面分隔字线WL

因为字线分隔可随着页编号增加而增加,所以可基于存储器装置的布局动态地调整容错条带大小以便提供必需的字线分隔。相应地,在图7的说明性实例中,页#0和#1由单个字线(层面分隔字线)分隔,而必需的分隔字线的数目可以是三个。相应地,至少两个不同大小的容错条带可形成于存储器装置上:对于驻留在邻近于层面分隔字线WL

相反,从WL

相应地,当主机数据正在到来时,页被编程为形成指定大小的容错条带,所述指定大小可预先确定以便限制由于实施容错方案而导致的过度提供损失。每一容错条带可包含多个数据页,而容错条带的最后页专用于存储可用于错误检测及校正的冗余元数据。可利用来自存储器装置的逻辑单元的至少一子集的每个逻辑单元的每个平面的具有循序页编号的多个页形成此容错条带,条件是驻留在相同平面内的页具有足够的字线分隔(例如,由包含层面分隔字线的至少预定数目的字线分隔)。

随着对页进行编程(即,随着将页的内容存储到存储器装置),可通过例如借助于互斥或(XOR)运算对页的内容求和来计算冗余元数据,且XOR运算的中间结果可存储于存储器中直至容错条带关闭(即,直至元数据写入到容错条带的最后页)。因为页具有循序页编号,所以不需要额外存储器来存储中间XOR结果,这是因为页#i的XOR结果可继续到页#i+1。在对容错条带的最后数据页进行编程之后,将XOR结果写入到存储器装置。可基于存储器装置的布局动态地调整容错条带大小以便提供必需的字线分隔。

图8是由根据本公开的一些实施例操作的存储器子系统控制器实施容错页条带的实例方法800的流程图。方法800可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,处理装置上运行或执行的指令),或其组合。在一些实施例中,方法800由图1的容错管理器113执行。虽然以特定序列或次序来展示,但是除非另有指定,否则操作的次序可修改。因此,应理解,所说明的实施例仅为实例,且所说明的操作可以不同次序执行,而一些操作可并行地执行。另外,在一些实施例中,可省略一或多个操作。因此,在每个实施例中并不需要所说明的全部操作,且其它过程流是可能的。

在操作810处,存储器子系统控制器的处理装置从主机接收第i主机数据项目(即,待存储在存储器装置上的数据)。

在操作820处,处理装置将第i主机数据项目存储在存储器装置的LUN#m的平面#k的页#j中。所述页与当前打开的容错条带相关联。

在操作830处,处理装置从主机接收第(i+1)主机数据项目。

在操作840处,处理装置将第二主机数据项目存储在存储器装置的LUN#m的平面#k+1的页#j+1中。所述页与当前打开的容错条带相关联。基于存储器装置的布局,平面#k+1的页#j由至少预定数目的字线与平面#k的页#j+1分隔。

在操作850处,处理装置将与当前打开的容错条带相关联的冗余元数据存储在存储器装置的LUN#(m+r)的平面#(k+q)的页#(j+p)中,因此关闭容错条带。

图9示出计算机系统900的实例机器,所述实例机器内可执行用于致使所述机器执行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统900可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的容错管理器113的操作)。在替代实施例中,机器可连接(例如,联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础架构或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中操作

机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或网桥、数字或非数字电路系统,或能够执行指定要由所述机器执行的动作的指令集(循序的或以其它方式)的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述机器单独地或共同地执行一(或多个)指令集以执行本文中所论述的方法中的任何一或多种。

实例计算机系统900包含处理装置902、主存储器904(例如,只读存储器(ROM)、快闪存储器、例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等动态随机存取存储器(DRAM))、静态存储器906(例如,快闪存储器、静态随机存取存储器(SRAM)等),以及数据存储系统918,其经由总线930彼此通信。

处理装置902表示一或多个通用处理装置,例如微处理器、中央处理单元等。更特定来说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置902也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置902被配置成执行指令926以用于执行本文中所论述的操作和步骤。计算机系统900可以进一步包含网络接口装置908以在网络920上通信。

数据存储系统918可以包含机器可读存储介质924(也称为计算机可读介质),其上存储有一或多个指令集926或体现本文中所描述的任何一或多种方法或功能的软件。指令926还可在其由计算机系统900执行期间完全或至少部分地驻留在主存储器904内和/或处理装置902内,主存储器904和处理装置902也构成机器可读存储介质。机器可读存储介质924、数据存储系统918和/或主存储器904可对应于图1的存储器子系统110。

在一个实施例中,指令926包含用以实施对应于容错条带组件(例如,图1的容错管理器113)的功能性的指令。尽管在实例实施例中将机器可读存储介质924展示为单个介质,但术语“机器可读存储介质”应被认为包含存储一或多个指令集的单个介质或多个介质。术语“机器可读存储介质”还应被认为包含能够存储或编码供机器执行的指令集且致使机器执行本公开的方法中的任何一或多种的任何介质。因此,应认为术语“机器可读存储介质”包含但不限于固态存储器、光学介质以及磁性介质。

已关于计算机存储器内的数据位的操作的算法和符号表示而呈现先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。算法在这里并且通常被认为是产生期望的结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操纵的电或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、要素、符号、字符、项目、数字等是方便的。

然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便的标签。本公开可涉及将计算机系统的寄存器和存储器内的表示为物理(电子)量的数据操纵和变换为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。

本公开还涉及用于执行本文中的操作的设备。此设备可以出于既定目的而专门构造,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储介质中,例如但不限于任何类型的盘(包含软盘、光盘、CD-ROM和磁性光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适合于存储电子指令的任何类型的介质,它们各自耦合到计算机系统总线。

本文中呈现的算法和显示在本质上并不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或可证明构造用以执行所述方法的更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。此外,并不参考任何特定编程语言来描述本公开。应了解,可使用多种编程语言来实施本文中所描述的本公开的教示。

本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读介质。机器可读介质包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)介质包含机器(例如,计算机)可读存储介质,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光学存储介质、快闪存储器组件等。

在前述说明书中,已参考其特定实例实施例描述了本公开的实施例。应显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。

相关技术
  • 在低密度存储器系统上实施容错页条带
  • 用于在条带片上实施精确激光切割的方法及实施该方法的设备
技术分类

06120113084246