CN111274062A - Nand装置混合奇偶校验管理 - Google Patents
Nand装置混合奇偶校验管理 Download PDFInfo
- Publication number
- CN111274062A CN111274062A CN201911235704.6A CN201911235704A CN111274062A CN 111274062 A CN111274062 A CN 111274062A CN 201911235704 A CN201911235704 A CN 201911235704A CN 111274062 A CN111274062 A CN 111274062A
- Authority
- CN
- China
- Prior art keywords
- data
- parity
- memory
- segment
- block
- 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.)
- Granted
Links
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/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/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- 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
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本文描述了用于NAND装置混合奇偶校验管理的装置和技术。接收对应于第一数据段的第一部分数据以及第二数据段的第二部分数据—分别关于NAND装置的结构进行定义。使用所述第一部分数据和所述第二部分数据计算奇偶校验值,并且然后存储所述奇偶校验值以用于纠错操作。
Description
技术领域
本申请涉及存储器装置并且更具体地说涉及NAND装置混合奇偶校验管理。
背景技术
存储器装置通常被设置为计算机或其它电子装置中的内部半导体集成电路。有多种不同类型的存储器,包含易失性存储器和非易失性存储器。
易失性存储器需要电力来维持其数据并且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)或同步动态随机存取存储器(SDRAM)等。
非易失性存储器在断电时可以保留存储的数据并且包含闪存、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、静态RAM(SRAM)、可擦除可编程ROM(EPROM)、电阻可变存储器如相变随机存取存储器(PCRAM)、电阻随机存取存储器(RRAM)、或磁阻式随机存取存储器(MRAM)等。
闪存作为非易失性存储器被用于广泛范围的电子应用。闪存装置通常包含可以考虑到高存储器密度、高可靠性和低功耗的一或多组单晶体管、浮栅或电荷捕获存储器单元。
两种常见类型的闪存阵列架构包含NAND架构和NOR架构,以各自的基本存储器单元配置被布置成的逻辑形式命名。存储器阵列中的存储器单元通常布置成矩阵。在一个实例中,阵列的行中的每个浮栅存储器单元的栅极耦合到接入线(例如字线)。在NOR架构中,阵列的列中的每个存储器单元的漏极耦合到数据线(例如位线)。在NAND架构中,阵列的串中的每个存储器单元的漏极以源极-漏极的方式共同串联耦合在源极线与位线之间。
NOR架构半导体存储器阵列和NAND架构半导体存储器阵列均通过解码器进行访问,所述解码器通过选择耦合到特定存储器单元的栅极的字线来激活所述特定存储器单元。在NOR架构半导体存储器阵列中,一旦被激活,所选存储器单元就将其数据值置于位线上,从而使不同的电流根据特定单元被编程的状态来流动。在NAND架构半导体存储器阵列中,向漏极侧选择栅极(SGD)线施加高偏置电压。以指定的通过电压(例如V通过)驱动耦合到每组中的未选存储器单元的栅极的字线,以将每组中的未选存储器单元作为传输晶体管进行操作(例如以不受其存储的数据值限制的方式传递电流)。然后,仅受到每组中的选定存储器单元的限制,电流通过每个串联耦合组从源极线流向位线,从而将选定存储器单元的当前编码数据值置于位线上。
NOR架构半导体存储器阵列或NAND架构半导体存储器阵列中的每个闪存单元可以单独或共同编程到一或多个编程状态。例如,单层单元(SLC)可以表示两个编程状态中的一个(例如1或0),从而表示一位数据。
然而,闪存单元也可以表示多于两个编程状态中的一个,从而允许在不增加存储器单元数量的情况下制造更高密度的存储器,因为每个单元可以表示多于一个二进制数位(例如多于一位)。此些单元可以称为多状态存储器单元、多数位单元或多层单元(MLC)。在某些实例中,MLC可以指代每单元可以存储两位数据的存储器单元(例如四个编程状态中的一个),三层单元(TLC)可以指代每单元可以存储三位数据的存储器单元(例如八个编程状态中的一个),并且四层单元(QLC)每单元可以存储四位数据。MLC在其更广的上下文中在本文用于指代每单元可以存储多于一位数据(即可以表示多于两个编程状态)的任何存储器单元。
传统的存储器阵列是布置在半导体衬底的表面上的二维(2D)结构。为了增加给定区域的存储器容量并减少成本,已经减小了单独存储器单元的尺寸。然而,对于单独存储器单元的尺寸的减小有技术上的限制,并且因此,对2D存储器阵列的存储器密度也有技术上的限制。作为回应,正在开发三维(3D)存储器结构,如3D NAND架构半导体存储器装置,以进一步提高存储器密度并降低存储器成本。
此些3D NAND装置常常包含在靠近源极的一或多个源极侧选择栅极(SGS)与靠近位线的一或多个漏极侧选择栅极(SGD)之间串联耦合(例如漏极到源极)的存储单元串。在一个实例中,SGS或SGD可以包含一或多个场效应晶体管(FET)或金属氧化物半导体(MOS)结构装置等。在一些实例中,所述串将通过含有相应字线的多个竖直间隔层而竖直地延伸。半导体结构(例如多晶硅结构)可以延伸相邻的存储单元串,以形成用于所述串中的存储单元的通道。在竖直串的实例中,多晶硅结构可以是竖直延伸柱的形式。在一些实例中,串可以“折叠”并且因此相对于U形柱布置。在其它实例中,多个竖直结构可以堆叠在彼此上,以形成存储单元串的堆叠阵列。
存储器阵列或装置可以组合在一起,以形成存储器系统的存储卷,如固态驱动器(SSD)、通用闪存(UFSTM)装置、多媒体卡(MMC)固态存储装置、嵌入式MMC装置(eMMCTM)等。除其它外,SSD还可以用作计算机的主要存储装置,其在例如性能、尺寸、重量、强度、工作温度范围和功耗等方面优于具有移动零件的传统硬盘驱动器。例如,SSD可以具有与磁盘驱动器(例如机电等)相关联的减少的查找时间、等待时间或其它延迟。SSD使用非易失性存储器单元(如闪存单元)来消除内部电池供电需求,从而允许驱动器更通用且紧凑。
SSD可以包含多个存储器装置(包含多个管芯或逻辑单元(例如逻辑单元号或LUN))并且可以包含执行操作存储器装置或与外部系统接口连接所需的逻辑功能的一或多个处理器或其它控制器。此些SSD可以包含一或多个闪存管芯,包含多个存储器阵列和在所述多个存储器阵列上的外围电路系统。闪存阵列可以包含存储器单元的组成多个物理页的多个块。在许多实例中,SSD还将包含DRAM或SRAM(或其它形式的存储器管芯或其它存储器结构)。SSD可以从主机接收与存储器操作相关联的命令,如用于在存储器装置与主机之间传输数据(例如用户数据和关联完整性数据,如错误数据和地址数据等)的读取或写入操作或者用于擦除来自存储器装置的数据的擦除操作。
发明内容
本公开的一方面提供了一种用于NAND装置混合奇偶校验管理的阵列控制器,所述阵列控制器包括:易失性存储器;以及处理电路系统,所述处理电路系统用于:接收第一部分数据,所述第一部分数据对应于关于所述NAND装置的结构所定义的第一数据段;接收第二部分数据,所述第二部分数据对应于关于所述NAND装置的所述结构所定义的第二数据段,所述第二数据段与所述第一数据段不同;使用所述第一部分数据和所述第二部分数据计算奇偶校验值;以及将所述奇偶校验值存储在所述易失性存储器中。
本公开的另一方面提供了一种用于NAND装置混合奇偶校验管理的方法,所述方法包括:接收第一部分数据,所述第一部分数据对应于关于所述NAND装置的结构所定义的第一数据段;接收第二部分数据,所述第二部分数据对应于关于所述NAND装置的所述结构所定义的第二数据段,所述第二数据段与所述第一数据段不同;使用所述第一部分数据和所述第二部分数据计算奇偶校验值;以及存储所述奇偶校验值。
本公开的另一方面提供了一种系统,其包括用于执行用于NAND装置混合奇偶校验管理的方法的构件,所述方法包括:接收第一部分数据,所述第一部分数据对应于关于所述NAND装置的结构所定义的第一数据段;接收第二部分数据,所述第二部分数据对应于关于所述NAND装置的所述结构所定义的第二数据段,所述第二数据段与所述第一数据段不同;使用所述第一部分数据和所述第二部分数据计算奇偶校验值;以及存储所述奇偶校验值。
本公开的另一方面提供了一种机器可读媒体,其包含当由处理电路系统执行时使所述处理电路系统执行用于NAND装置混合奇偶校验管理的方法的指令,所述方法包括:接收第一部分数据,所述第一部分数据对应于关于所述NAND装置的结构所定义的第一数据段;接收第二部分数据,所述第二部分数据对应于关于所述NAND装置的所述结构所定义的第二数据段,所述第二数据段与所述第一数据段不同;使用所述第一部分数据和所述第二部分数据计算奇偶校验值;以及存储所述奇偶校验值。
附图说明
在不一定按比例绘制的附图中,相同的标号可以描述不同视图中的类似部件。具有不同字母后缀的相同标号可以表示类似部件的不同例子。附图通常以举例方式而非限制的方式展示本文件所讨论的各个实施例。
图1展示了包含存储器装置的环境的实例。
图2展示了独立NAND冗余阵列(RAIN)的奇偶校验映射的实例。
图3展示了RAIN的混合奇偶校验映射的实例。
图4展示了用于混合奇偶校验管理的RAIN数据结构的实例。
图5展示了用于NAND装置混合奇偶校验管理的方法的流程图。
图6是展示了可以在其上实施一或多个实施例的机器的实例的框图。
具体实施方式
闪存装置实施了纠错码(ECC)来检测错误并且在某些情况下从纠错码中恢复。然而,随着装置几何结构的不断缩小和控制器复杂性的增加,采用了独立装置冗余阵列(RAIN)。在概念上,RAIN与用于保护基于硬盘驱动器的存储的奇偶校验独立驱动器冗余阵列(RAID)有关。因为闪存装置已经在装置(例如管芯、块、页等)之间使用了并行性,所以RAIN技术一般不采用RAID的并行方案,而是采用错误恢复技术。
由于存储器装置中的闪存(例如NAND)管芯的数量有限(例如两个、四个或八个管芯)并且由于设计决定包含过度提供(例如存储器装置的容量比其通告的容量大了约6.9%),因此将管芯或甚至平面专用于奇偶校验数据常常是不可行的。为了解决这个问题,已经使用了跨给定块中的多页的奇偶校验累积。这里,奇偶校验未与受保护数据一起(例如同时)写入,而是在与受保护数据一起写入之前暂时性地累积(例如在存储器装置的交换块中)。
通常,RAIN奇偶校验涉及将定义的数据段(如块)映射到奇偶校验时隙。奇偶校验时隙通常在闪存装置的存储器控制器的快速易失性存储器中实施。在将装置数据段(例如块的页)添加到奇偶校验时隙时,装置数据段是彼此异或的(XORed)。通常,一旦一组定义的数据段中的一个完成(例如接收到块的页的定义分组),最终的奇偶校验值就会刷新到交换块等。一旦写入完成,如当数据写入块时,来自交换块的奇偶校验值通常也会写入块中。以此方式,在发生错误时,奇偶校验值可以用于重建写入块中的数据。
在一些RAIN方案如自旋RAIN中,许多奇偶校验组可以同时保持活动,这可能需要装置中有较大的易失性存储器。而且,这些RAIN技术可能涉及不同数据(例如主机数据、无用单元收集数据、系统数据等)正被写入的另外的活动游标(例如为了写入开放的块或“开放块”)。这里,对于这些游标中的每个游标,奇偶校验时隙会维持到逻辑块完成—例如逻辑块关闭,从而使得不再有数据写入块中(例如因为块已满)。这通常涉及维持另外的奇偶校验时隙存储器,从而导致存储器控制器需要另外的快速物理存储器,并且因此,存储器控制器的成本或功耗增加。
为了解决自旋RAIN或类似技术的奇偶校验存储器效率问题,奇偶校验可以在游标之间累积—混合多个块的奇偶校验—并且一起保存在交换块中。奇偶校验-数据参考(例如表)表被用于对奇偶校验值进行解缠以便例如在写入物理装置期间重建损坏的页或将同一逻辑块(例如或块中的一组页)的奇偶校验值写入底层硬件以进行读取错误保护。混合来自多个游标的奇偶校验值实现了奇偶校验时隙的顺序填充。因此,无论逻辑块如何,在奇偶校验时隙填满填充时,奇偶校验时隙可以被刷新并用于下一页数据,而不是保留以用于同一逻辑块中的下一页数据。奇偶校验时隙存储器的这一提高的效率使较小奇偶校验时隙存储器能够服务于先进的RAIN技术,如自旋RAIN。下文提供了另外的细节和实例。
图1展示了包含被配置成通过通信接口进行通信的主机装置105和存储器装置110的环境100的实例。主机装置105或存储器装置110可以包含在各种产品150中,如物联网(IoT)装置(例如冰箱或其它家具、传感器、马达或致动器、移动通信装置、汽车、无人机等),以支持产品150的处理、通信或控制。
存储器装置110包含存储器控制器115和存储器阵列120,所述存储器阵列包含例如多个单独的存储器管芯(例如三维(3D)NAND管芯的堆叠)。在3D架构半导体存储器技术中,竖直结构是堆叠的,从而增加了层数、物理页数并且相应地增加了存储器装置(例如存储装置)的密度。在一个实例中,存储器装置110可以是主机装置105的离散存储器或存储装置部件。在其它实例中,存储器装置110可以是集成电路(例如片上系统(SOC)等)的一部分、堆叠或以其它方式包含在主机装置105的一或多个其它部件。在这些实例中,存储器装置110通过如总线等互连链路111与主机装置105的部件通信。因此,如本文所述,即使存储器装置110集成到主机装置105中,主机或主机装置105的操作也与存储器装置110的那些操作不同。
一或多个通信接口(例如互连链路111)可以用于在存储器装置110与主机装置105的一或多个其它部件之间传输数据,如串行高级技术附件(SATA)接口、外围部件互连高速(PCIe)接口、通用串行总线(USB)接口、通用闪存(UFS)接口、eMMCTM接口或者一或多个其它连接器或接口。主机装置105可以包含主机系统、电子装置、处理器、记忆卡读取器或者在存储器装置110外部的一或多个其它电子装置。在一些实例中,主机105可以是具有参考图6的机器600讨论的部件中的部分部件或全部部件的机器。
存储器控制器115可以从主机105接收指令并且可以与存储器阵列120通信,如以便将数据传输到(例如写入或擦除)存储器阵列120的存储器单元、平面、子块、块或页中的一或多个或者从存储器阵列120的存储器单元、平面、子块、块或页中的一或多个中接收(例如读取)数据。除其它外,存储器控制器115还可以包含电路系统或固件,包含一或多个部件或者一或多个集成电路。例如,存储器控制器115可以包含被配置成控制跨存储器阵列120的访问并且在主机105与存储器装置110之间提供转换层的一或多个存储器控制单元、电路或部件。
除其它外,存储器管理器125还可以包含电路系统或固件,如与各种存储器管理功能相关联的多个部件或集成电路。出于本说明书的目的,实例存储器操作和管理功能将在NAND存储器的上下文中描述。本领域技术人员将认识到,其它形式的非易失性存储器可以具有类似的存储器操作或管理功能。此些NAND管理功能包含磨损平衡(例如无用单元收集或回收)、错误检测或纠正、块引退或者一或多个其它存储器管理功能。存储器管理器125可以将主机命令(例如从主机接收的命令)解析或格式化为装置命令(例如与存储器阵列的操作相关联的命令等)或者用于阵列控制器135或存储器装置110的一或多个其它部件生成装置命令(例如以完成各种存储器管理功能)。
存储器管理器125可以包含包括被配置成维护与存储器装置110的一或多个部件相关联的各种信息(例如与存储器阵列或耦合到存储器控制器115的一或多个存储器单元相关联的各种信息)的一组管理表130。例如,管理表130可以包含关于耦合到存储器控制器115的存储器单元的一或多个块的块龄、块擦除计数、错误历史或者一或多个错误计数的信息(例如写入操作错误计数、读取位错误计数、读取操作错误计数、擦除错误计数等)。在某些实例中,如果在一或多个错误计数中检测到的错误数高于阈值,则可以将位错误称为不可纠正位错误。除其它外,管理表130还可以维持可纠正位错误或不可纠正位错误的计数。在一个实例中,管理表103可以包含转换表或L2P映射。
除其它外,阵列控制器135还可以包含被配置成控制与将数据写入、读取数据自或擦除耦合到存储器控制器115的存储器装置110的一或多个存储器单元相关联的存储器操作的电路系统或部件。存储器操作可以基于例如从主机105接收或者由存储器管理器125在内部生成的主机命令(例如与磨损平衡、错误检测或纠正等相关联)。在一个实例中,基于阵列控制器135在存储器装置110中的操作级别,所述阵列控制器可以区别于存储器控制器115。通常,阵列控制器135的存在是为了处理来自阵列120的基本读取和写入并且存在于任何存储器装置110中,无论存储器控制器115是否包含在存储器装置110中(如所展示的)或在存储器装置外部(例如在主机105中)。
阵列控制器135可以包含纠错码(ECC)部件140,除其它外,所述纠错码部件还可以包含被配置成检测或纠正与将数据写入或读取数据自耦合到存储器控制器115的存储器装置110的一或多个存储器单元相关联的错误的ECC引擎或其它电路系统。存储器控制器115可以被配置成基于阵列控制器135所维持的ECC数据,主动地检测与各种操作或数据存储相关联的错误事件(例如位错误、操作错误等)并从与各种操作或数据存储相关联的错误事件中恢复。这样使存储器控制器115能够维持在主机105与存储器装置110之间传输的数据的完整性或维持存储的数据的完整性。这种完整性维持的一部分可以包含移除(例如引退)失效的存储器资源(例如存储器单元、存储器阵列、页、块等)以防止未来发生错误。
RAIN是存储器装置110可以用来维持数据完整性的另一种技术。阵列控制器135可以被布置成在阵列120中实施RAIN奇偶校验数据生成和存储。如上所述,自旋RAIN是用于减少暴露于某些装置失效(如单个物理块、字线等的失效)的技术。但是,自旋RAIN增加了用于在写入期间生成奇偶校验数据的存储器资源。这些存储器资源通常是SRAM,以提供速度和易变性。然而,与闪存装置相比,SRAM在管芯面积、装置复杂性和功耗方面是昂贵的。因此,使用传统奇偶校验生成技术实施自旋RAIN可能导致阵列控制器135的成本、复杂性或功耗增加。混合奇偶校验管理提供了这个问题的解决方案。
在混合奇偶校验管理中,在数据段之间共享用于增量奇偶校验值生成(例如奇偶校验累积)的存储器资源。例如,将来自第一块的页与来自第二块的页在单个SRAM奇偶校验时隙中组合,以产生中间奇偶校验值。因此,第一块数据与第二块数据混合。由于数据和对应的奇偶校验数据常常一起存储在阵列中,因此混合奇偶校验数据在其在中间奇偶校验存储器资源中累积后的某个点处被解缠。尽管解缠会对存储器装置110施加另外的处理,但是,NAND闪存装置的性质例如提供了众多维持操作,如无用单元收集,或者将中间奇偶校验值传输到阵列120中的交换存储装置或所述阵列120中的最终存储装置。由于解缠会在可能不影响用装置110起作用的用户体验的各种时间发生,因此解缠操作可能不会对性能产生显著影响,同时使更有效的阵列控制器135能够实施先进的RAIN技术,如自旋RAIN。
为了实施混合奇偶校验管理,阵列控制器135被布置成接收—例如通过存储器控制器115从主机105—第一部分数据。这里,第一部分数据对应于关于存储器装置110的结构所定义的第一数据段。在一个实例中,定义第一数据段的存储器装置110的结构是块。在一个实例中,第一部分数据是所述块的页。尽管数据段由存储器装置110的结构定义,但是数据段不一定与阵列120的给定结构直接相关联。例如,数据段可以是虚拟块(例如逻辑块)。在这种情况下,与物理块的实际对应关系可以由存储器管理器125维持。例如,实施自旋RAIN常常需要将单个逻辑块的页扩展到多个物理块上,以实现由所述技术提供的单个装置失效保护。
所述部分数据常常也与阵列120中的结构如页面有直接对应关系。然而,所述部分数据是由存储器装置110所实施的RAIN的奇偶校验技术定义的。因此,所述部分可以是以原子方式自动组合以形成对应的数据段的奇偶校验数据的一组页、平面或其它数据划分。
阵列控制器135被布置成接收对应于与第一数据段不同的第二数据段的第二部分数据。因此,如果第一数据段是逻辑块A,则第二数据段不是逻辑块A(例如第二数据段是逻辑块B)。
阵列控制器135被布置成使用第一部分数据和第二部分数据计算奇偶校验值。因此,生成的奇偶校验值是第一数据段和第二数据段的混合值。如上所述,这不同于传统的奇偶校验值生成或累积,在所述传统的奇偶校验值生成或累积中,数据段的奇偶校验值将会被分离。在一个实例中,通过在第一部分数据和第二部分数据的位之间应用XOR运算来计算奇偶校验值。在一个实例中,阵列控制器135被布置成维持数据结构以存储第一部分数据、第二部分数据和奇偶校验值之间的映射。下面关于图4描述了此数据结构的实例。数据结构实现了给定数据段的奇偶校验数据与混合奇偶校验数据的解缠。
一旦计算出奇偶校验值,阵列控制器135就被布置成存储奇偶校验值。在一个实例中,奇偶校验值存储在阵列控制器的RAM(例如SRAM、DRAM等)中。在一个实例中,奇偶校验值替换RAM中第一数据段的先前奇偶校验值。在本实例中,第一部分或第二部分可以与先前奇偶校验值是XOR的并且替换先前奇偶校验值。因此,通过第一部分数据和第二部分数据与存储在RAM中的先前奇偶校验值的单独组合,第一部分数据和第二部分数据的组合出现。下文关于图2和3描述了这一组合的实例。
在一个实例中,阵列控制器135被布置成将存储在RAM中的奇偶校验数据刷新到物理块。这个物理块可以是交换块,也许实施为闪速SLC,以维持奇偶校验数据直到数据段完成。在一个实例中,刷新奇偶校验数据包含在将所述奇偶校验数据写入交换块之前,将第一部分数据和第二部分数据的奇偶校验数据与从奇偶校验值导出的奇偶校验数据解缠(例如解耦)。在本实例中,解缠发生在刷新期间,从而使将传统的交换块写入阵列120的最终目的地块能够继续进行,如同其在传统奇偶校验生成技术下将会进行的那样。
在一个实例中,阵列控制器135被布置成响应于触发对第一部分数据和第二部分数据的奇偶校验数据进行解耦。上文提到了第一触发,即,将奇偶校验数据从RAM刷新到交换块。其它触发可以包含将奇偶校验数据写入阵列120中的最终目的地(例如物理块)或者数据的写入验证错误或读取验证错误。这些事件中的任何事件可以包含通过混合奇偶校验数据以及指示是混合奇偶校验数据的组成部分(例如块中的页)的数据结构,计算混合奇偶校验数据中给定数据段的奇偶校验。
存储器阵列120可以包含被布置成例如多个装置、平面、子块、块或页的多个存储器单元。作为实例,48GB TLC NAND存储器装置每页可以包含18,592字节(B)数据(16,384+2208字节)、每块可以包含1536页、每平面可以包含548块并且每个装置可以包含4个或4个以上平面。作为另一个实例,32GB MLC存储器装置(每单元存储两位数据(即4个可编程状态))每页可以包含18,592字节(B)数据(16,384+2208字节)、每块可以包含1024页、每平面可以包含548个块并且每个装置可以包含4个平面,但是,与对应的TLC存储器装置相比,具有一半所需写入时间和两倍的编程/擦除(P/E)周期。其它实例可以包含其它数字或布置。在一些实例中,存储器装置或其一部分可以在SLC模式或期望的MLC模式(如TLC、QLC等)下有选择地操作。
在操作时,通常以页的形式将数据写入NAND存储器装置110或从NAND存储器装置110读取数据,并以块的形式擦除数据。然而,如所期望的,可以对较大或较小组存储器单元执行一或多个存储器操作(例如读取、写入、擦除等)。NAND存储器装置110的数据传输大小通常称为页,而主机的数据传输大小通常称为扇区。
尽管一页数据可以包含多个字节的用户数据(例如包含多个扇区的数据的数据有效载荷)和其对应的元数据,但是所述页的大小常常仅指用于存储用户数据的字节数。作为实例,页大小为4KB的数据页可以包含4KB的用户数据(例如假设扇区大小为512B的8个扇区)以及多个字节(例如32B、54B、224B等)的对应于用户数据的元数据,如完整性数据(例如错误检测码数据或纠错码数据)、地址数据(例如逻辑地址数据等)或与用户数据相关联的其它元数据。
不同类型的存储器单元或存储器阵列120可以提供不同的页大小或者会需要与其相关联的不同元数据量。例如,不同的存储器装置类型可以具有不同的误码率,这可能产生确保数据页的完整性所必需的不同元数据量(例如与具有较低误码率的存储器装置相比,具有较高误码率的存储器装置会需要更多字节的纠错码数据)。作为实例,与对应的SLCNAND闪存装置相比,多层单元(MLC)NAND闪存装置可以具有更高的误码率。因此,与对应的SLC装置相比,MLC装置会需要错误数据的更多元数据字节。
图2展示了独立NAND冗余阵列(RAIN)的奇偶校验映射的实例。逻辑到物理映射205展示了跨例如NAND闪存管芯中的平面的四个物理块的条带化逻辑块。因此,逻辑块A占用物理块1的页1、物理块2的页2等,如所展示的。类似地,逻辑块D占用物理块4的页1、物理块1的页2等,如所展示的。而且,如所展示的,基于物理块的数量的模量,可以对逻辑块的页进行分组,逻辑块跨所述物理块条带化。因此,当逻辑块A的前四个页跨四个物理块条带化时,可以对这前四个页进行分组(例如所展示的组HG0)。不仅用户数据(例如主机块)可以条带化,而且无用单元收集块(例如GC块)也可以条带化并受到RAIN奇偶校验保护。
逻辑块映射到存储器控制器的存储器中的奇偶校验时隙210。映射常常基于对逻辑块的属性的直接操纵,以避免跟踪奇偶校验时隙210到逻辑块的映射的开销。通常,奇偶校验时隙210的大小被设定为奇偶校验的最小单位。因此,在页面是XOR的以用于奇偶校验的地方,奇偶校验时隙210的大小是一页。
在操作时,在添加了逻辑块的另外的页时,奇偶校验时隙210的内容随着时间的推移而改变。因此,在第一时间215A的奇偶校验时隙值开始于逻辑块A的第一页(例如1A)。随着时间的推移,奇偶校验时隙的值变为逻辑块的先前值和当前页的组合。因此,当页3A到达时,页1A和2A的XOR结果与页3A是XOR的。如果逻辑块有页,则这种情况继续,直到所述组完成,或者其它一些条件得到满足并且在第二时间215B的奇偶校验时隙值被刷新到交换块220,在页225处与逻辑块(此处为A)和组(此处为HG0)相对应。第三时间215C也与在组HG1处刷新的另一个值相关。刷新后,重置(例如擦除、清空等)奇偶校验时隙210,并且奇偶校验累积再次开始。
交换块220通常是用作用于奇偶校验累积的工作空间的闪存装置。当逻辑块完全写入物理块时,逻辑块的奇偶校验数据通常也写入物理块,以便为其搭配与其有关的数据。通常,交换块220是按速度编码的SLC,如与最终持有数据或奇偶校验数据的物理块的MLC(例如TLC)编码相反的。
如所展示的,奇偶校验时隙210的空单元表示奇偶校验时隙210中的值未改变的时间增量。正是这个特征可能导致需要写入大容量控制器存储器(例如以维持所有逻辑块A、B、C和D的奇偶校验时隙)。
图3展示了RAIN的混合奇偶校验映射的实例。使用上文关于图2描述的相同的逻辑到物理映射205,这里,奇偶校验时隙310不再与逻辑块或物理块相关。相反,奇偶校验时隙310是一或多个奇偶校验时隙中的一个,奇偶校验时隙的总数是调整参数的实现。
这里,对于奇偶校验时隙310,随着时间的推移,从多个逻辑块的先前奇偶校验值导出的奇偶校验数据累积下来。因此,在时间315A,奇偶校验时隙值是页1A(例如逻辑块A的第一页)。到刷新时间315B,奇偶校验值包含逻辑块A和E两者的XOR结果。然后,下一个时间315C持有逻辑块E的下一页的值。因此,与上述奇偶校验时隙210的值相比,奇偶校验时隙310持有从多个逻辑块导出的奇偶校验数据。
当奇偶校验时隙310被刷新时,基于奇偶校验时隙310而不是逻辑块,交换块320持有奇偶校验值325。与关于图2所描述的组织相比,这种变化是由奇偶校验值325的混合性质引起的。因此,如所展示的,奇偶校验值325是多个逻辑块的奇偶校验数据的缠结(例如耦合、混合等)。
为了使用给定逻辑块的奇偶校验数据,将所述奇偶校验数据与其它逻辑块的奇偶校验数据解缠(例如解耦)。这种解缠可以在交换块320写入给定逻辑块的目的地物理块时发生。在一个实例中,解绕可以发生在写入交换块320的奇偶校验时隙刷新期间。这里,与图3所展示的相比,奇偶校验值325将会与单个逻辑块有关。
图4展示了用于混合奇偶校验管理的RAIN数据结构的实例。阴影字段是闪存装置中添加到传统RAIN跟踪结构的那些字段。例如,结构405与传统RAIN表条目相关。结构405将物理地址字段410重新设置为指向扩展表条目420的指针。扩展表条目420可以包含物理地址字段425和指示奇偶校验数据属于逻辑数据块的哪些页的一系列页索引字段,如页索引字段430。
结构405还被修改为包含指向另外的扩展条目的另外的指针。这实现了对虚拟块(例如TLC VB)的所有页的完整奇偶校验数据映射。因为使用了条目指针而不是物理地址,所以结构405所消耗的数据量与传统RAIN表条目所用的数据量相当。
根据使用模型,可以添加到扩展表条目420的字段可以包含另外的字段,以处理如本文所述的混合游标管理、部分填充字段、性能信息等。所展示结构405和扩展表条目420还可以通过实现更好地管理由电源状态变化或自动待机操作诱导的预期刷新来改进传统自旋RAIN技术。
图5展示了用于NAND装置混合奇偶校验管理的方法500的流程图。方法500的操作由计算机硬件执行,如上文或下文所描述的计算机硬件(例如存储器控制器、阵列控制器、处理电路系统等)。
在操作505,接收第一部分数据。这里,第一部分数据对应于关于NAND装置的结构所定义的第一数据段。在一个实例中,定义第一数据段的NAND装置的结构是块。
在操作510,接收第二部分数据。类似于第一部分数据,第二部分数据对应于关于NAND装置的结构所定义的第二数据段。然而,这里,第二数据段与第一数据段不同。在一个实例中,第一数据段和第二数据段对应于块。在一个实例中,块是逻辑的(例如第一数据段是物理块的大小,但与单个物理块不相关)。在一个实例中,第一部分数据和在第一数据段中的第三部分数据是分配到NAND装置中的不同物理块的不同页。
在操作515,使用第一部分数据和第二部分数据计算奇偶校验值。在一个实例中,通过在第一部分数据和第二部分数据的位之间应用XOR运算来计算奇偶校验值。在一个实例中,计算奇偶校验值包含维持数据结构以存储第一部分数据、第二部分数据和奇偶校验值之间的映射。
在操作520,存储奇偶校验值。在一个实例中,奇偶校验值存储在随机存取存储器中。在一个实例中,奇偶校验值替换随机存取存储器中第一数据段的先前奇偶校验值。在一个实例中,存储在随机存取存储器中的奇偶校验数据被刷新到物理块。在一个实例中,刷新奇偶校验数据包含在将所述奇偶校验数据写入交换块之前,将第一部分数据和第二部分数据的奇偶校验数据与从奇偶校验值导出的奇偶校验数据解缠(例如解耦)。
在一个实例中,可以响应于触发将第一部分数据和第二部分数据的奇偶校验数据与从奇偶校验值导出的奇偶校验数据解耦。在一个实例中,所述触发是将奇偶校验数据写入第一部分数据被写入的NAND装置的块。在一个实例中,所述触发是第一部分数据或第二部分数据未成功写入NAND装置的块。在一个实例中,所述触发是第一部分数据或第二部分数据被写入的NAND装置的闭合块的验证错误。
图6展示了实例机器600的框图,本文所讨论的技术(例如方法)中的任何一或多种可以在所述机器上执行。在替代性实施例中,机器600可以作为独立装置操作或者可以连接(例如联网)到其它机器。在联网部署中,机器600可以在服务器-客户端网络环境中以服务器机器、客户端机器或两者的身份操作。在一个实例中,机器600可以充当对等(P2P)(或其它分布式)网络环境中的对等机器。机器600可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、web设备、IoT装置、自动系统或能够(顺序地或以其它方式)执行规定机器要采取的动作的指令的任何机器。进一步地,虽然仅展示了单个机器,但是术语“机器”还应视为包含单独或联合地执行指令集合(或多个集合)以便执行本文所讨论的方法中的任何一或多种方法的任何机器集合,如云计算、软件即服务(SaaS)、其它计算机集群配置。
如本文所述,实例可以包含逻辑、部件、装置、包或机制或者可以由其操作。电路系统是在包含硬件(例如简单电路、门、逻辑等)的有形实体中实施的电路集合(例如电路组)。随着时间的推移和底层硬件的可变性,电路系统的组成可以是灵活的。电路包含在操作时可以单独或组合地执行特定任务的组件。在一个实例中,电路系统的硬件可以不变地设计成执行特定操作(例如硬连线)。在一个实例中,电路系统的硬件可以包含可变连接的物理部件(例如执行单元、晶体管、简单电路等),包含被物理地修改(例如磁性地、电性地、可移动地放置不变的聚集的粒子等)以对特定操作的指令进行编码的计算机可读媒体。在连接物理部件时,将硬件组成部分的潜在电特性例如从绝缘体变为导体,或者反之亦然。指令使参与硬件(例如执行单元或加载机制)能够通过可变连接在硬件中创建电路系统的组件,以便在操作时执行特定任务的一部分。因此,当装置操作时,计算机可读媒体以通信方式耦合到电路系统的其它部件。在一个实例中,任何物理部件均可以用于多于一个电路系统的多于一个组件中。例如,在操作时,执行单元可以在一个时间点上用于第一电路系统中的第一电路中并且由第一电路系统中的第二电路重复使用或者在不同时间由第二电路系统中的第三电路重复使用。
机器(例如计算机系统)600(例如主机装置105、存储器装置110等)可以包含硬件处理器602(例如中央处理单元(CPU)、图形处理单元(GPU)、硬件处理器核或其任何组合,如存储器控制器115等)、主存储器604和静态存储器606,其中的一些或全部可以通过互连链路(例如总线)630彼此通信。机器600可以进一步包含显示装置610、字母数字输入装置612(例如键盘)和用户界面(UI)导航装置614(例如鼠标)。在一个实例中,显示装置610、输入装置612和UI导航装置614可以是触摸屏显示器。机器600可以另外包含存储装置(例如驱动器单元)608、信号生成装置618(例如扬声器)、网络接口装置620和一或多个传感器616,如全球定位系统(GPS)传感器、罗盘、加速计或其它传感器。机器600可以包含输出控制器628,如串行(例如通用串行总线(USB))、并行或者其它有线或无线(例如红外(IR)、近场通信(NFC)等)连接以通信或控制一或多个外围装置(例如打印机、读卡器等)。
存储装置608可以包含机器可读存储媒体622,所述机器可读存储媒体上存储有由本文所述的任何一或多个技术或功能体现或利用的数据结构或指令624(例如软件)的一或多个集合。指令624在由机器600执行期间还可以完全或至少部分地驻留在主存储器604内、静态存储器606内或硬件处理器602内。在一个实例中,硬件处理器602、主存储器604、静态存储器606或存储装置608中的一个或任何组合可以构成机器可读媒体622。
虽然机器可读媒体622被展示为单个媒体,但术语“机器可读媒体”可以包含被配置成存储一或多个指令624的单个媒体或多个媒体(例如集中或分布式数据库或者关联高速缓存和服务器)。
术语“机器可读媒体”可以包含能够存储、编码或携带供机器600执行的指令的任何媒体并且使机器600执行本公开的任何一或多种技术或者能够存储、编码或携带由此些指令使用或与此些指令相关联的数据结构的任何媒体。非限制性机器可读媒体实例可以包含固态存储器以及光学和磁性媒体。在一个实例中,大规模机器可读媒体包括具有质量不变(如静止)的多个粒子的机器可读媒体。因此,大规模机器可读媒体不是暂时性传播信号。大规模机器可读媒体的具体实例可以包含:非易失性存储器,如半导体存储器装置(例如电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))和闪存装置;磁盘,如内部硬盘和可移动盘;磁光盘;以及压缩盘只读存储器(CD-ROM)和数字视频盘只读存储器(DVD-ROM)。
指令624(例如软件、程序、操作系统(OS)等)或其它数据存储在存储装置621上、可以由存储器604访问以供处理器602使用。存储器604(例如DRAM)通常是快速的但具有易失性并且因此是与存储装置621(例如SSD)不同的存储装置类型,所述存储装置适合于长期存储,包含在“关闭”状态下。用户或机器600使用的指令624或数据通常加载在存储器604中以供处理器602使用。当存储器604存满时,可以从存储装置621分配虚拟空间来补充存储器604;然而,因为存储装置621通常比存储器604慢并且写入速度通常比读取速度慢至少两倍,所以使用虚拟存储器会由于存储装置的等待时间而大大降低用户体验(相比于存储器604,例如DRAM)。进一步地,将存储装置621用于虚拟存储器会大大缩短存储装置621的可用寿命。
与虚拟存储器相比,虚拟存储器压缩(例如内核特征“ZRAM”)使用存储器的一部分作为压缩块存储,以避免对存储装置621进行分页。在压缩块中进行分页,直到必需将此些数据写入存储装置621。虚拟存储器压缩增加了存储器604的可用尺寸,同时减少了存储装置621上的磨损。
针对移动电子装置或移动存储装置而优化的存储装置传统上包含MMC固态存储装置(例如微安全数字(microSDTM)卡等)。MMC装置包含与主机装置的许多并行接口(例如8位并行接口)并且常常是从主机装置可移除的并且分离的部件。相比之下,eMMCTM装置附接到电路板上并被认为是主机装置的部件,其读取速度与基于串行ATATM(串行AT(高级技术)附件或SATA)的SSD装置相当。然而,对移动装置性能的需求继续增加,如以便充分启用虚拟或增强现实装置、利用日益增长的网络速度等。响应于这种需求,存储装置已经从并行通信接口转变为串行通信接口。包含控制器和固件的通用闪存(UFS)装置通过专用读/写路径使用低压差分信号(LVDS)串行接口与主机装置进行通信,从而进一步提高了读/写速度。
可以利用多种传输协议(例如帧中继、互联网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、超文本传输协议(HTTP)等)中的任何一种经由网络接口装置620使用传输媒体通过通信网络626进一步发射或接收指令624。实例通信网络可以包含局域网(LAN)、广域网(WAN)、分组数据网络(例如互联网)、移动电话网络(例如蜂窝网络)(如第三代合作伙伴计划(3GPP)标准系列(例如3G、4G、5G、长期演进(LTE)等)所定义的那些)、普通老式电话(POTS)网络和无线数据网络(例如电气与电子工程师协会(IEEE)802.11标准系列,称为)、IEEE 802.15.4标准系列和对等(P2P)网络等。在一个实例中,网络接口装置620可以包含一或多个物理插孔(例如以太网插孔、同轴插孔或电话插孔)或者一或多个天线以连接到通信网络626。在一个实例中,网络接口装置620可以包含多个天线以使用单输入多输出(SIMO)技术、多输入多输出(MIMO)技术或多输入单输出(MISO)技术中的至少一种进行无线通信。术语“传输媒体”应被视为包含能够存储、编码或携带指令以供机器600执行的任何无形媒体,并且包含数字或模拟通信信号或用于促进此软件的通信的其它无形媒体。
另外的实例:
实例1是一种用于NAND装置混合奇偶校验管理的控制器,所述控制器包括:易失性存储器;以及处理电路系统,所述处理电路系统用于:接收第一部分数据,所述第一部分数据对应于关于所述NAND装置的结构所定义的第一数据段;接收第二部分数据,所述第二部分数据对应于关于所述NAND装置的所述结构所定义的第二数据段,所述第二数据段不同于所述第一数据段;使用所述第一部分数据和所述第二部分数据计算奇偶校验值;以及将所述奇偶校验值存储在所述易失性存储器中。
在实例2中,根据实例1所述的主题,其中为了计算所述奇偶校验值,所述处理电路系统在所述第一部分数据和所述第二部分数据的位之间应用异或(XOR)运算。
在实例3中,根据实例1到2中任一实例所述的主题,其中为了计算所述奇偶校验值,所述处理电路系统维持数据结构以存储所述第一部分数据、所述第二部分数据和所述奇偶校验值之间的映射。
在实例4中,根据实例1到3中任一实例所述的主题,其中所述易失性存储器是随机存取存储器。
在实例5中,根据实例4所述的主题,其中所述奇偶校验值替换所述随机存取存储器中所述第一数据段的先前奇偶校验值。
在实例6中,根据实例4到5中任一实例所述的主题,其中所述处理电路系统被布置成将存储在所述随机存取存储器中的奇偶校验数据刷新到NAND块。
在实例7中,根据实例6所述的主题,其中为了刷新所述奇偶校验数据,在将所述奇偶校验数据写入交换块之前,所述处理电路系统将所述第一部分数据和所述第二部分数据的奇偶校验数据与从所述奇偶校验值导出的奇偶校验数据解耦。
在实例8中,根据实例1到7中任一实例所述的主题,其中所述处理电路系统被布置成响应于触发将所述第一部分数据和所述第二部分数据的奇偶校验数据与从所述奇偶校验值导出的奇偶校验数据解耦。
在实例9中,根据实例8所述的主题,其中所述触发是所述第一部分数据或所述第二部分数据未成功写入所述NAND装置的块。
在实例10中,根据实例8到9中任一实例所述的主题,其中所述触发是所述第一部分数据或所述第二部分数据被写入的所述NAND装置的闭合块的验证错误。
在实例11中,根据实例8到10中任一实例所述的主题,其中所述触发是将所述奇偶校验数据写入所述第一部分数据被写入的所述NAND装置的块。
在实例12中,根据实例1到11中任一实例所述的主题,其中定义所述第一数据段和所述第二数据段的所述NAND装置的所述结构是块。
在实例13中,根据实例12所述的主题,其中所述块是逻辑的,并且其中所述第一部分数据和在所述第一数据段中的第三部分数据是分配到所述NAND装置的不同物理块的不同页。
实例14是一种用于NAND装置混合奇偶校验管理的方法,所述方法包括:接收第一部分数据,所述第一部分数据对应于关于所述NAND装置的结构所定义的第一数据段;接收第二部分数据,所述第二部分数据对应于关于所述NAND装置的所述结构所定义的第二数据段,所述第二数据段不同于所述第一数据段;使用所述第一部分数据和所述第二部分数据计算奇偶校验值;以及存储所述奇偶校验值。
在实例15中,根据实例14所述的主题,其中计算所述奇偶校验值包含在所述第一部分数据和所述第二部分数据的位之间应用异或(XOR)运算。
在实例16中,根据实例14到15中任一实例所述的主题,其中计算所述奇偶校验值包含维持数据结构以存储所述第一部分数据、所述第二部分数据和所述奇偶校验值之间的映射。
在实例17中,根据实例14到16中任一实例所述的主题,其中所述奇偶校验值存储于随机存取存储器中。
在实例18中,根据实例17所述的主题,其中所述奇偶校验值替换所述随机存取存储器中所述第一数据段的先前奇偶校验值。
在实例19中,根据实例17到18中任一实例所述的主题,其包括将存储在所述随机存取存储器中的奇偶校验数据刷新到NAND块。
在实例20中,根据实例19所述的主题,其中刷新所述奇偶校验数据包含在将所述奇偶校验数据写入交换块之前,将所述第一部分数据和所述第二部分数据的奇偶校验数据与从所述奇偶校验值导出的奇偶校验数据解耦。
在实例21中,根据实例14到20中任一实例所述的主题,其包括响应于触发将所述第一部分数据和所述第二部分数据的奇偶校验数据与从所述奇偶校验值导出的奇偶校验数据解耦。
在实例22中,根据实例21所述的主题,其中所述触发是所述第一部分数据或所述第二部分数据未成功写入所述NAND装置的块。
在实例23中,根据实例21到22中任一实例所述的主题,其中所述触发是所述第一部分数据或所述第二部分数据被写入的所述NAND装置的闭合块的验证错误。
在实例24中,根据实例21到23中任一实例所述的主题,其中所述触发是将所述奇偶校验数据写入所述第一部分数据被写入的所述NAND装置的块。
在实例25中,根据实例14到24中任一实例所述的主题,其中定义所述第一数据段和所述第二数据段的所述NAND装置的所述结构是块。
在实例26中,根据实例25所述的主题,其中所述块是逻辑的,并且其中所述第一部分数据和在所述第一数据段中的第三部分数据是分配到所述NAND装置的不同物理块的不同页。
实例27是一种机器可读媒体,其包含用于NAND装置混合奇偶校验管理的指令,所述指令当由处理电路系统执行时使所述处理电路系统执行包括以下的操作:接收第一部分数据,所述第一部分数据对应于关于所述NAND装置的结构所定义的第一数据段;接收第二部分数据,所述第二部分数据对应于关于所述NAND装置的所述结构所定义的第二数据段,所述第二数据段不同于所述第一数据段;使用所述第一部分数据和所述第二部分数据计算奇偶校验值;以及存储所述奇偶校验值。
在实例28中,根据实例27所述的主题,其中计算所述奇偶校验值包含在所述第一部分数据和所述第二部分数据的位之间应用异或(XOR)运算。
在实例29中,根据实例27到28中任一实例所述的主题,其中计算所述奇偶校验值包含维持数据结构以存储所述第一部分数据、所述第二部分数据和所述奇偶校验值之间的映射。
在实例30中,根据实例27到29中任一实例所述的主题,其中所述奇偶校验值存储于随机存取存储器中。
在实例31中,根据实例30所述的主题,其中所述奇偶校验值替换所述随机存取存储器中所述第一数据段的先前奇偶校验值。
在实例32中,根据实例30到31中任一实例所述的主题,其中所述操作包括将存储在所述随机存取存储器中的奇偶校验数据刷新到NAND块。
在实例33中,根据实例32所述的主题,其中刷新所述奇偶校验数据包含在将所述奇偶校验数据写入交换块之前,将所述第一部分数据和所述第二部分数据的奇偶校验数据与从所述奇偶校验值导出的奇偶校验数据解耦。
在实例34中,根据实例27到33中任一实例所述的主题,其中所述操作包括响应于触发将所述第一部分数据和所述第二部分数据的奇偶校验数据与从所述奇偶校验值导出的奇偶校验数据解耦。
在实例35中,根据实例34所述的主题,其中所述触发是所述第一部分数据或所述第二部分数据未成功写入所述NAND装置的块。
在实例36中,根据实例34到35中任一实例所述的主题,其中所述触发是所述第一部分数据或所述第二部分数据被写入的所述NAND装置的闭合块的验证错误。
在实例37中,根据实例34到36中任一实例所述的主题,其中所述触发是将所述奇偶校验数据写入所述第一部分数据被写入的所述NAND装置的块。
在实例38中,根据实例27到37中任一实例所述的主题,其中定义所述第一数据段和所述第二数据段的所述NAND装置的所述结构是块。
在实例39中,根据实例38所述的主题,其中所述块是逻辑的,并且其中所述第一部分数据和在所述第一数据段中的第三部分数据是分配到所述NAND装置的不同物理块的不同页。
实例40是一种用于NAND装置混合奇偶校验管理的系统,所述系统包括:用于接收第一部分数据的构件,所述第一部分数据对应于关于所述NAND装置的结构所定义的第一数据段;用于接收第二部分数据的构件,所述第二部分数据对应于关于所述NAND装置的所述结构所定义的第二数据段,所述第二数据段不同于所述第一数据段;用于使用所述第一部分数据和所述第二部分数据计算奇偶校验值的构件;以及用于存储所述奇偶校验值的构件。
在实例41中,根据实例40所述的主题,其中所述用于计算所述奇偶校验值的构件包含用于在所述第一部分数据和所述第二部分数据的位之间应用异或(XOR)运算的构件。
在实例42中,根据实例40到41中任一实例所述的主题,其中所述用于计算所述奇偶校验值的构件包含用于维持数据结构以存储所述第一部分数据、所述第二部分数据和所述奇偶校验值之间的映射的构件。
在实例43中,根据实例40到42中任一实例所述的主题,其中所述奇偶校验值存储于随机存取存储器中。
在实例44中,根据实例43所述的主题,其中所述奇偶校验值替换所述随机存取存储器中所述第一数据段的先前奇偶校验值。
在实例45中,根据实例43到44中任一实例所述的主题,其包括用于将存储在所述随机存取存储器中的奇偶校验数据刷新到NAND块的构件。
在实例46中,根据实例45所述的主题,其中所述用于刷新所述奇偶校验数据的构件包含用于在将所述奇偶校验数据写入交换块之前将所述第一部分数据和所述第二部分数据的奇偶校验数据与从所述奇偶校验值导出的奇偶校验数据解耦的构件。
在实例47中,根据实例40到46中任一实例所述的主题,其包括用于响应于触发将所述第一部分数据和所述第二部分数据的奇偶校验数据与从所述奇偶校验值导出的奇偶校验数据解耦的构件。
在实例48中,根据实例47所述的主题,其中所述触发是所述第一部分数据或所述第二部分数据未成功写入所述NAND装置的块。
在实例49中,根据实例47和48中任一实例所述的主题,其中所述触发是所述第一部分数据或所述第二部分数据被写入的所述NAND装置的闭合块的验证错误。
在实例50中,根据实例47到49中任一实例所述的主题,其中所述触发是将所述奇偶校验数据写入所述第一部分数据被写入的所述NAND装置的块。
在实例51中,根据实例40到50中任一实例所述的主题,其中定义所述第一数据段和所述第二数据段的所述NAND装置的所述结构是块。
在实例52中,根据实例51所述的主题,其中所述块是逻辑的,并且其中所述第一部分数据和在所述第一数据段中的第三部分数据是分配到所述NAND装置的不同物理块的不同页。
实例53是至少一种机器可读媒体,其包含当由处理电路系统执行时使所述处理电路系统执行操作以实施实例1到52中任一实例的指令。
实例54是一种设备,其包括用于实施实例1到52中任一实例的构件。
实例55是一种系统,其用于实施实例1到52中任一实例。
实例56是一种方法,其用于实施实例1到52中任一实例。
以上详细描述包含对附图的参考,所述附图形成了详细描述的一部分。附图以图示的方式示出了可以实践本发明的具体实施例。这些实施例在本文中也被称为“实例”。此些实例可以包含除了所示出或描述的要素之外的要素。然而,本发明的诸位发明人还设想了仅提供所示出或所描述的那些要素的实例。而且,本发明的诸位发明人还设想了使用关于特定实例(或者其一或多个方面)或者关于本文示出或描述的其它实例(或者其一或多个方面)所示出或所描述的那些要素的任何组合或排列(或者其一或多个方面)的实例。
在本文件中,如专利文件中常见的,术语“一个/种(a)”或“一个/种(an)”用于包含一个/种或多于一个/种,而与“至少一个/种”或“一或多个/种”的任何其它情况或用法无关。在本文件中,除非另有指示,否则术语“或”用于指代非排他性或,使得“A或B”可以包含“A而不是B”、“B而不是A”以及“A和B”。在所附权利要求书中,术语“包含(including)”和“其中(in which)”用作相应术语“包括(comprising)”和“其中(wherein)”的通俗英文等价词。而且,在以下权利要求书中,术语“包含(including)”和“包括(comprising)”是开放式的,也就是说,包含除了在权利要求中的此术语之后列出的那些要素之外的要素的系统、装置、物品或工艺仍然被认定为落入所述权利要求的范围内。此外,在以下权利要求书中,术语“第一”、“第二”和“第三”等仅用作标记并且不旨在对其对象强加数字要求。
在各个实例中,除其它外,本文描述的部件、控制器、处理器、单元、引擎或表还可以包含存储在物理装置上的物理电路系统或固件。如本文所使用的,“处理器”是指任何类型的计算电路,如但不限于微处理器、微控制器、图形处理器、数字信号处理器(DSP)或任何其它类型的处理器或处理电路,包含一组处理器或多核装置。
术语“晶片”和“衬底”在本文中通常用于指代在其上形成集成电路的任何结构并且还指代在集成电路制造的各个阶段期间的此些结构。因此,以下详细描述不应以限制性含义来理解,并且各个实施例的范围仅由所附权利要求书以及此些权利要求有权获得的等同物的全部范围来限定。
根据本公开并且本文描述的各个实施例包含利用存储器单元的竖直结构(例如存储器单元的NAND串)的存储器。如本文所使用的,将相对于在其上形成存储器单元的衬底的表面采取方向性形容词(即,竖直结构将被视为远离衬底表面延伸,竖直结构的底端将被视为距衬底表面最近的一端,并且竖直结构的顶端将被视为距衬底表面最远的一端)。
如本文所使用的,操作存储器单元包含从存储器单元读取、向存储器单元写入或擦除存储器单元。将存储器单元置于预期状态的操作在本文中称为“编程”并且可以包含向存储器单元写入或从存储器单元擦除两者(例如存储器单元可以被编程为擦除状态)。
根据本公开的一或多个实施例,位于存储器装置内部或外部的存储器控制器(例如处理器、控制器、固件等)能够确定(例如选择、设置、调整、计算、改变、清除、通信、适配、导出、定义、利用、修改、应用等)磨损周期数或磨损状态(例如记录磨损周期、对磨损周期发生时存储器装置的操作进行计数、跟踪磨损状态启动的存储器装置的操作、评估与磨损状态相对应的存储器装置特性等)。
根据本公开的一或多个实施例,存储器存取装置可以被配置成利用每个存储器操作向存储器装置提供磨损周期信息。存储器装置控制电路系统(例如控制逻辑)可以被编程为补偿对应于磨损周期信息的存储器装置性能变化。存储器装置可以接收磨损周期信息并且响应于磨损周期信息确定一或多个操作参数(例如值、特性)。
本文中描述的方法实例可以至少部分地是机器或计算机实施的。一些实例可以包含编码有指令的计算机可读媒体或机器可读媒体,所述指令可操作以将电子装置配置成执行如以上实例中描述的方法。此些方法的实施方案可以包含代码,如微代码、汇编语言代码、较高级语言代码等。此代码可以包含用于执行各种方法的计算机可读指令。代码可以形成计算机程序产品的一部分。进一步地,代码可以有形地存储在一或多个易失性或非易失性有形计算机可读媒体上,如在执行期间或在其它时间。这些有形计算机可读媒体的实例可以包含但不限于硬盘、可移动磁盘、可移动光盘(例如压缩盘和数字视频盘)、磁带、记忆卡或记忆棒、随机存取存储器(RAM)、只读存储器(ROM)、固态驱动器(SSD)、通用闪存(UFS)装置、嵌入式MMC(eMMC)装置等。
以上描述旨在是说明性的,而非限制性的。例如,上述实例(或其一或多个方面)可以彼此组合地使用。在回顾以上描述后,其它实施例可以如由本领域普通技术人员使用。基于所述描述将不被用于解释或者限制权利要求书的范围或者含义的理解提交所述描述。而且,在以上具体实施方式中,可以将各种特征聚合在一起来简化本公开。这不应被解释为未要求的所公开特征对于任何权利要求都旨在是必不可少的。相反,本发明主题可以在于少于特定公开实施例的所有特征。因此,以下权利要求书被并入具体实施方式中,其中每个权利要求自身作为单独的实施例,并且可以设想此些实施例可以以各种组合或排列彼此组合。本发明的范围应当参考所附权利要求书连同此些权利要求有权获得的等同物的全部范围来确定。
Claims (24)
1.一种用于NAND装置混合奇偶校验管理的阵列控制器,所述阵列控制器包括:
易失性存储器;以及
处理电路系统,所述处理电路系统用于:
接收第一部分数据,所述第一部分数据对应于关于所述NAND装置的结构所定义的第一数据段;
接收第二部分数据,所述第二部分数据对应于关于所述NAND装置的所述结构所定义的第二数据段,所述第二数据段与所述第一数据段不同;
使用所述第一部分数据和所述第二部分数据计算奇偶校验值;以及
将所述奇偶校验值存储在所述易失性存储器中。
2.根据权利要求1所述的阵列控制器,其中所述易失性存储器是随机存取存储器。
3.根据权利要求2所述的阵列控制器,其中所述奇偶校验值替换所述随机存取存储器中所述第一数据段的先前奇偶校验值。
4.根据权利要求2所述的阵列控制器,其中所述处理电路系统被布置成将存储在所述随机存取存储器中的奇偶校验数据刷新到NAND块。
5.根据权利要求4所述的阵列控制器,其中为了刷新所述奇偶校验数据,在将所述奇偶校验数据写入交换块之前,所述处理电路系统将所述第一部分数据和所述第二部分数据的奇偶校验数据与从所述奇偶校验值导出的奇偶校验数据解耦。
6.根据权利要求1所述的阵列控制器,其中所述处理电路系统被布置成响应于触发将所述第一部分数据和所述第二部分数据的奇偶校验数据与从所述奇偶校验值导出的奇偶校验数据解耦。
7.根据权利要求6所述的阵列控制器,其中所述触发是所述第一部分数据或所述第二部分数据未成功写入所述NAND装置的块。
8.根据权利要求6所述的阵列控制器,其中所述触发是所述第一部分数据或所述第二部分数据被写入的所述NAND装置的闭合块的验证错误。
9.根据权利要求6所述的阵列控制器,其中所述触发是将所述奇偶校验数据写入所述第一部分数据被写入的所述NAND装置的块。
10.一种用于NAND装置混合奇偶校验管理的方法,所述方法包括:
接收第一部分数据,所述第一部分数据对应于关于所述NAND装置的结构所定义的第一数据段;
接收第二部分数据,所述第二部分数据对应于关于所述NAND装置的所述结构所定义的第二数据段,所述第二数据段与所述第一数据段不同;
使用所述第一部分数据和所述第二部分数据计算奇偶校验值;以及
存储所述奇偶校验值。
11.根据权利要求10所述的方法,其中计算所述奇偶校验值包含在所述第一部分数据和所述第二部分数据的比特之间应用异或XOR运算。
12.根据权利要求10所述的方法,其中计算所述奇偶校验值包含维持数据结构以存储所述第一部分数据、所述第二部分数据和所述奇偶校验值之间的映射。
13.根据权利要求10所述的方法,其中所述奇偶校验值存储于随机存取存储器中。
14.根据权利要求13所述的方法,其中所述奇偶校验值替换所述随机存取存储器中所述第一数据段的先前奇偶校验值。
15.根据权利要求13所述的方法,其包括将存储在所述随机存取存储器中的奇偶校验数据刷新到NAND块。
16.根据权利要求15所述的方法,其中刷新所述奇偶校验数据包含在将所述奇偶校验数据写入交换块之前,将所述第一部分数据和所述第二部分数据的奇偶校验数据与从所述奇偶校验值导出的奇偶校验数据解耦。
17.根据权利要求10所述的方法,其包括响应于触发将所述第一部分数据和所述第二部分数据的奇偶校验数据与从所述奇偶校验值导出的奇偶校验数据解耦。
18.根据权利要求17所述的方法,其中所述触发是所述第一部分数据或所述第二部分数据未成功写入所述NAND装置的块。
19.根据权利要求17所述的方法,其中所述触发是所述第一部分数据或所述第二部分数据被写入的所述NAND装置的闭合块的验证错误。
20.根据权利要求17所述的方法,其中所述触发是将所述奇偶校验数据写入所述第一部分数据被写入的所述NAND装置的块。
21.根据权利要求10所述的方法,其中定义所述第一数据段和所述第二数据段的所述NAND装置的所述结构是块。
22.根据权利要求21所述的方法,其中所述块是逻辑的,并且其中所述第一部分数据和在所述第一段数据中的第三部分数据是分配到所述NAND装置的不同物理块的不同页。
23.一种系统,其包括用于执行权利要求10到22中所述的任何一种方法的构件。
24.一种机器可读媒体,其包含当由处理电路系统执行时使所述处理电路系统执行权利要求10到22中所述的任何一种方法的指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/210,730 US10949297B2 (en) | 2018-12-05 | 2018-12-05 | NAND device mixed parity management |
US16/210,730 | 2018-12-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111274062A true CN111274062A (zh) | 2020-06-12 |
CN111274062B CN111274062B (zh) | 2023-09-08 |
Family
ID=70971903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911235704.6A Active CN111274062B (zh) | 2018-12-05 | 2019-12-05 | Nand装置混合奇偶校验管理 |
Country Status (2)
Country | Link |
---|---|
US (2) | US10949297B2 (zh) |
CN (1) | CN111274062B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111221676A (zh) * | 2018-11-27 | 2020-06-02 | 美光科技公司 | 用于nand装置混合奇偶校验管理的设备和方法 |
US11609819B2 (en) | 2018-12-05 | 2023-03-21 | Micron Technology, Inc. | NAND device mixed parity management |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11733893B2 (en) * | 2021-07-28 | 2023-08-22 | International Business Machines Corporation | Management of flash storage media |
US20230050061A1 (en) * | 2021-08-11 | 2023-02-16 | Apple Inc. | Logical Slot to Hardware Slot Mapping for Graphics Processors |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120179869A1 (en) * | 2006-12-06 | 2012-07-12 | Fusion-Io, Inc. | Apparatus, system, and method for data storage using progressive raid |
US20130246839A1 (en) * | 2010-12-01 | 2013-09-19 | Lsi Corporation | Dynamic higher-level redundancy mode management with independent silicon elements |
CN107193486A (zh) * | 2016-03-14 | 2017-09-22 | 三星电子株式会社 | 数据存储设备和包括该数据存储设备的数据处理系统 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6785783B2 (en) * | 2000-11-30 | 2004-08-31 | International Business Machines Corporation | NUMA system with redundant main memory architecture |
US8200887B2 (en) * | 2007-03-29 | 2012-06-12 | Violin Memory, Inc. | Memory management system and method |
US8307258B2 (en) * | 2009-05-18 | 2012-11-06 | Fusion-10, Inc | Apparatus, system, and method for reconfiguring an array to operate with less storage elements |
US9575834B2 (en) * | 2014-05-16 | 2017-02-21 | International Business Machines Corporation | Detecting single event upsets and stuck-at faults in RAM-based data path controllers |
US10176039B2 (en) * | 2014-09-19 | 2019-01-08 | Micron Technology, Inc. | Self-accumulating exclusive OR program |
US10133625B2 (en) * | 2015-08-11 | 2018-11-20 | Western Digital Technologies, Inc. | Storing parity data separate from protected data |
US10417092B2 (en) * | 2017-09-07 | 2019-09-17 | Pure Storage, Inc. | Incremental RAID stripe update parity calculation |
US11138069B2 (en) * | 2018-06-11 | 2021-10-05 | Seagate Technology, Llc | Providing additional parity for non-standard sized parity data sets |
US10949297B2 (en) | 2018-12-05 | 2021-03-16 | Micron Technology, Inc. | NAND device mixed parity management |
-
2018
- 2018-12-05 US US16/210,730 patent/US10949297B2/en active Active
-
2019
- 2019-12-05 CN CN201911235704.6A patent/CN111274062B/zh active Active
-
2021
- 2021-03-15 US US17/201,754 patent/US11609819B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120179869A1 (en) * | 2006-12-06 | 2012-07-12 | Fusion-Io, Inc. | Apparatus, system, and method for data storage using progressive raid |
US20130246839A1 (en) * | 2010-12-01 | 2013-09-19 | Lsi Corporation | Dynamic higher-level redundancy mode management with independent silicon elements |
CN107193486A (zh) * | 2016-03-14 | 2017-09-22 | 三星电子株式会社 | 数据存储设备和包括该数据存储设备的数据处理系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111221676A (zh) * | 2018-11-27 | 2020-06-02 | 美光科技公司 | 用于nand装置混合奇偶校验管理的设备和方法 |
US11609819B2 (en) | 2018-12-05 | 2023-03-21 | Micron Technology, Inc. | NAND device mixed parity management |
Also Published As
Publication number | Publication date |
---|---|
CN111274062B (zh) | 2023-09-08 |
US11609819B2 (en) | 2023-03-21 |
US20200183779A1 (en) | 2020-06-11 |
US10949297B2 (en) | 2021-03-16 |
US20210200635A1 (en) | 2021-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111684527B (zh) | Nand装置及相关方法和机器可读介质 | |
CN111538618B (zh) | 用于一次性奇偶校验的装置和技术 | |
CN112115069B (zh) | 适于主机写入活动的垃圾收集 | |
CN113168358B (zh) | 具有奇偶校验保护的多个存储器装置 | |
CN111274062B (zh) | Nand装置混合奇偶校验管理 | |
CN111656330B (zh) | Nand逻辑到物理表区域跟踪 | |
US11397640B2 (en) | Extended error correction in storage device | |
US11955189B2 (en) | NAND data placement schema | |
CN111383689B (zh) | 可调nand写入性能 | |
US20230367478A1 (en) | Clustered parity for nand data placement schema | |
CN112214422A (zh) | 静态slc高速缓存的动态大小 | |
CN112055850B (zh) | Nand装置及相关方法和机器可读媒体 | |
CN112470132B (zh) | 控制nand操作延时 | |
CN112445648B (zh) | 用于共享奇偶校验保护的系统和方法 | |
CN112997254A (zh) | 用于筛选容易出现缺陷的存储器块的基于度量的反应性读取 | |
CN112395123B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |