CN108062258B - 用于错误恢复的循环交错的xor阵列 - Google Patents
用于错误恢复的循环交错的xor阵列 Download PDFInfo
- Publication number
- CN108062258B CN108062258B CN201710897116.3A CN201710897116A CN108062258B CN 108062258 B CN108062258 B CN 108062258B CN 201710897116 A CN201710897116 A CN 201710897116A CN 108062258 B CN108062258 B CN 108062258B
- Authority
- CN
- China
- Prior art keywords
- page
- stripe
- parity
- data
- memory
- 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.)
- Active
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/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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
-
- 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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/27—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
- H03M13/2757—Interleaver with an interleaving rule not provided for in the subgroups H03M13/2703 - H03M13/2753
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明公开一种存储器***,其可以包括:存储器存储装置,其至少包括第一条带和第二条带,第一条带包括对应于第一条带的数据页面和适用于存储第一XOR奇偶校验的第一奇偶校验页面,并且第二条带包括对应于第二条带的数据页面和适用于存储第二XOR奇偶校验的第二奇偶校验页面,数据页面和奇偶校验页面被存储在多个存储器管芯上,其中每个存储器管芯包括多个平面;以及控制器,其适用于循环交错对应于第一条带的数据页面和对应于第二条带的数据页面。
Description
技术领域
本公开的示例性实施例涉及一种存储器***及其操作方法。
背景技术
计算机环境范例已经转为可在任何时间任何地点使用的普适计算***。因此,诸如移动电话、数码相机和笔记本电脑的便携式电子装置的使用已经快速增长。这些便携式电子装置通常使用具有存储器装置,即数据存储装置的存储器***。数据存储装置用作便携式电子装置的主存储器装置或辅助存储器装置。
因为使用存储器装置的数据存储装置没有移动部件,所以它们提供优良的稳定性、耐久性、高的信息存取速度和低功耗。具有这种优点的数据存储装置的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡和固态驱动器(SSD)。
写入闪速存储器(例如,NAND)中的数据经受读取错误,数据通常由错误校正码保护。在一些情况下,错误校正码可能仍然失效。因此,存在对用于克服读取错误的改进的错误校正码和进程的需要。
发明内容
本发明的方面包括存储器***。存储器***可以包括:存储器存储装置(storage),其至少包括第一条带(stripe)和第二条带,第一条带包括对应于第一条带的数据页面和适用于存储第一XOR奇偶校验的第一奇偶校验页面,并且第二条带包括对应于第二条带的数据页面和适用于存储第二XOR奇偶校验的第二奇偶校验页面,数据页面和奇偶校验页面被存储在多个存储器管芯上,其中每个存储器管芯包括多个平面;以及控制器,其适用于循环交错(cyclically interleaving)对应于第一条带的数据页面和对应于第二条带的数据页面。
本发明的其它方面包括方法。该方法可以包括:将数据页面和奇偶校验页面存储在存储器存储装置的多个存储器管芯上,每个存储器管芯包括多个页面;使数据页面和第一奇偶校验页面与存储器存储装置的第一条带相关联;使数据页面和第二奇偶校验页面与存储器存储装置的第二条带相关联;循环交错与第一条带相关联的第一奇偶校验页面和数据页面以及与第二条带相关联的第二奇偶校验页面和数据页面;对第一条带采取(taking)第一XOR奇偶校验并且将第一XOR奇偶校验存储在第一奇偶校验页面中;以及对第二条带采取第二XOR奇偶校验并且将第二XOR奇偶校验存储在第二奇偶校验页面中。
本发明的另外方面包括存储器装置。该存储器装置可以包括:存储器存储装置,其至少包括第一条带和第二条带,第一条带包括对应于第一条带的数据页面和被配置成存储第一XOR奇偶校验的第一奇偶校验页面,并且第二条带包括对应于第二条带的数据页面和被配置成存储第二XOR奇偶校验的第二奇偶校验页面,数据页面和奇偶校验页面被存储在多个存储器管芯上,其中每个存储器管芯包括多个平面;以及控制器,其被配置成循环交错对应于第一条带的数据页面和对应于第二条带的数据页面。
附图说明
图1是示意性地说明根据本发明的实施例的存储器***的框图。
图2是说明根据本发明的实施例的存储器***的框图。
图3是说明根据本发明的实施例的存储器装置的存储块的电路图。
图4是根据本发明的方面的示例性存储器***的简图。
图5是根据本发明的方面的示例性XOR配置的简图。
图6是根据本发明的方面的具有错误的示例性XOR配置的简图。
图7A是根据本发明的方面的示例性XOR配置的简图。
图7B和图7C是根据本发明的方面的具有错误的示例性XOR配置的简图。
图8A是根据本发明的方面的示例性XOR配置的简图。
图8B和图8C是根据本发明的方面的具有错误的示例性XOR配置的简图。
图9是根据本发明的方面的用于校正错误的方法中的步骤的流程图。
具体实施方式
以下将参照附图更详细地描述各个实施例。然而,本发明可以不同的形式体现并且不应被解释为限于本文阐述的实施例。相反,提供这些实施例使得本公开将是彻底且完全的,并且将向本领域技术人员充分传达本发明的范围。在整个公开中,相同的附图标记在整个本发明的各个附图和实施例中表示相同的部件。
本发明可以包括下列的各种方式实施:进程;设备;***;物质的组成;在计算机可读存储介质上体现的计算机编程产品;和/或处理器,诸如适用于执行存储在存储器上和/或通过联接到处理器的存储器提供的指令的处理器。在本说明书中,这些实施方式或本发明可以采取的任何其它形式可以被称为技术。通常,公开的进程的步骤的顺序可以在本发明的范围内改变。除非另有说明,否则诸如被描述为适于执行任务的处理器或存储器的部件可以被实现为暂时适用于在给定时间执行任务的一般部件或被制造为执行任务的特定部件。如本文使用的,术语“处理器”是指适用于处理诸如计算机编程指令的数据的一个或多个装置、电路和/或处理内核。
以下提供对本发明的一个或多个实施例的详细描述以及说明本发明的原理的附图。虽然结合这些实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求限制,并且本发明包括许多可选方案、变型和等同方案。为了提供对本发明的透彻理解,在以下描述中阐述许多具体细节。提供这些细节为了示例的目的,并且在没有这些具体细节中的一些或全部的情况下,根据权利要求可以实现本发明。为了清楚的目的,与本发明相关的技术领域中已知的技术材料尚未详细描述,使得本发明不被不必要地模糊。
图1是示意性地说明根据本发明的实施例的存储器***10的框图。
参照图1,存储器***10可以包括存储器控制器100和半导体存储器装置200。
存储器控制器100可以控制半导体存储器装置200的全部操作。
半导体存储器装置200可以在存储器控制器100的控制下执行一个或多个擦除操作、编程操作和读取操作。半导体存储器装置200可以通过输入/输出线路接收命令CMD、地址ADDR和数据DATA。半导体存储器装置200可以通过电力线路接收电力PWR并且通过控制线路接收控制信号CTRL。控制信号可以包括命令锁存启用(CLE)信号、地址锁存启用(ALE)信号、芯片启用(CE)信号、写入启用(WE)信号、读取启用(RE)信号等。
存储器控制器100和半导体存储器装置200可以被集成至单个半导体装置中。例如,存储器控制器100和半导体存储器装置200可以被集成至诸如固态驱动器(SSD)的单个半导体装置中。固态驱动器可以包括用于将数据存储在其中的存储装置。当在SSD中使用半导体存储器***10时,可以显著提高联接到存储器***10的主机(未示出)的操作速度。
存储器控制器100和半导体存储器装置200可以被集成至诸如存储卡的单个半导体装置中。例如,存储器控制器100和半导体存储器装置200可以被集成至单个半导体装置中以配置诸如以下的存储卡:个人计算机存储卡国际协会(PCMCIA)的PC卡、标准闪存(CF)卡、智能媒体(SM)卡、记忆棒、多媒体卡(MMC)、尺寸减小的多媒体卡(RS-MMC)、微型尺寸版本的MMC(微型MMC)、安全数字(SD)卡、迷你安全数字(迷你SD)卡、微型安全数字(微型SD)卡、安全数字高容量(SDHC)和通用闪速存储装置(UFS)。
对于另一示例,存储器***10可以被设置成包括诸如以下的电子装置的各种元件中的一种:计算机、超移动PC(UMPC)、工作站、上网本计算机、个人数字助理(PDA)、便携式计算机、网络平板PC、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(PMP)、便携式游戏装置、导航装置、黑匣子、数码相机、数字多媒体广播(DMB)播放器、3维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、数据中心的存储装置、能够在无线环境下接收和传输信息的装置、家庭网络的电子装置中的其中一个、计算机网络的电子装置中的其中一个、远程信息处理网络的电子装置中的其中一个、射频识别(RFID)装置或计算***的元件装置。
图2是说明根据本发明的实施例的存储器***的详细框图。例如,图2的存储器***可以描绘图1所示的存储器***10。
参照图2,存储器***10可以包括存储器控制器100和半导体存储器装置200。存储器***10可以响应于来自主机装置的请求而操作,并且特别地,存储待由主机装置访问的数据。
主机装置可以利用各种电子装置中的任意一种来实施。在一些实施例中,主机装置可以包括诸如以下的电子装置:台式计算机、工作站、3维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器和数字视频播放器。在一些实施例中,主机装置可以包括诸如以下的便携式电子装置:移动电话、智能电话、电子书、MP3播放器、便携式多媒体播放器(PMP)和便携式游戏机。
存储器装置200可以存储待由主机装置访问的数据。
存储器装置200可以利用诸如动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)的易失性存储器装置或诸如下列的非易失性存储器装置:只读存储器(ROM)、掩膜ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电随机存取存储器(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)和电阻式RAM(RRAM)。
控制器100可以控制数据存储在存储器装置200中。例如,控制器100可以响应于来自主机装置的请求来控制存储器装置200。控制器100可以将从存储器装置200读取的数据提供给主机装置,并且将从主机装置提供的数据存储在存储器装置200中。
控制器100可以包括通过总线160联接的存储单元110、控制单元120、错误校正码(ECC)单元130、主机接口140和存储器接口150。
存储单元110可以用作存储器***10和控制器100的工作存储器,并且存储用于驱动存储器***10和控制器100的数据。当控制器100控制存储器装置200的操作时,存储单元110可以存储由存储器控制器100和存储器装置200用于诸如读取操作、写入操作、编程操作和擦除操作的操作的数据。
存储单元110可以利用易失性存储器来实施。存储单元110可以利用静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)来实施。如上所述,存储单元110可以将由主机装置使用的数据存储在存储器装置200中以用于读取操作和写入操作。为了存储数据,存储单元110可以包括编程存储器、数据存储器、写入缓冲器、读取缓冲器、映射缓冲器等。
控制单元120可以控制存储器***10的一般操作,并且可以响应于来自主机装置的写入请求或读取请求来控制存储器装置200的写入操作或读取操作。控制单元120可以驱动被称为闪存转换层(FTL)的固件来控制存储器***10的一般操作。例如,FTL可以执行诸如逻辑到物理(L2P)映射、磨损均衡、垃圾收集和坏块处理的操作。L2P映射被称为逻辑块寻址(LBA)。
ECC单元130可以检测并校正在读取操作期间从存储器装置200读取的数据中的错误。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC单元130可以不校正错误位,并且可以输出指示校正错误位失败的错误校正失败信号。
在一些实施例中,ECC单元130可以基于诸如以下的编码调制执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码、涡轮码、涡轮乘积码(TPC)、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归***码(RSC)、格形编码调制(TCM)、分组编码调制(BCM)等。ECC单元130可以包括用于错误校正操作的所有电路、***或装置。
主机接口140可以通过诸如以下的各种接口协议中的一种或多种与主机装置通信:通用串行总线(USB)、多媒体卡(MMC)、高速***组件互连(PCI-E)、小型计算机***接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)和集成驱动电子设备(IDE)。
存储器接口150可以在控制器100和存储器装置200之间提供接口以允许控制器100响应于来自主机装置的请求控制存储器装置200。存储器接口150可以在CPU 120的控制下生成用于存储器装置200的控制信号并且处理数据。当存储器装置200是诸如NAND闪速存储器的闪速存储器时,存储器接口150可以在CPU 120的控制下生成用于存储器的控制信号并且处理数据。
存储器装置200可以包括存储器单元阵列210、控制电路220、电压生成电路230、行解码器240、页面缓冲器250、列解码器260和输入/输出电路270。存储器单元阵列210可以包括多个存储块211,并且可以将数据存储在其中。电压生成电路230、行解码器240、页面缓冲器250、列解码器260和输入/输出电路270形成用于存储器单元阵列210的***电路。***电路可以执行存储器单元阵列210的编程操作、读取操作或擦除操作。控制电路220可以控制***电路。
电压生成电路230可以生成具有各种电平的操作电压。例如,在擦除操作中,电压生成电路230可以生成诸如擦除电压和通过电压的具有各种电平的操作电压。
行解码器240可以连接至电压生成电路230和多个存储块211。行解码器240可以响应于由控制电路220生成的行地址RADD在多个存储块211中选择至少一个存储块,并且将从电压生成电路230供给的操作电压传输至在多个存储块211中选择的存储块。
页面缓冲器250通过位线BL(未示出)连接至存储器单元阵列210。页面缓冲器250可以响应于通过控制电路220生成的页面缓冲器控制信号,利用正电压对位线BL预充电,在编程操作和读取操作中将数据传输至选择的存储块/接收来自选择的存储块的数据,或临时存储传输的数据。
列解码器260可以将数据传输至页面缓冲器250/接收来自页面缓冲器250的数据或将数据传输至输入/输出电路270/接收来自输入/输出电路270的数据。
输入/输出电路270可以通过输入/输出电路将从外部装置(例如,存储器控制器100)传输的命令和地址传输至控制电路220,将来自外部装置的数据传输至列解码器260,或将来自列解码器260的数据输出到外部装置。
控制电路220可以响应于命令和地址控制***电路。
图3是说明根据本发明的实施例的半导体存储器装置的存储块的电路图。例如,图3的存储块可以是图2所示的存储器单元阵列200的存储块211。
参照图3,存储块211可以包括分别联接到位线BL0至BLm-1的多个单元串221。每一列的单元串可以包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。多个存储器单元或存储器单元晶体管可以串联联接在选择晶体管DST和SST之间。存储器单元MC0至MCn-1中的每一个可以由在每个单元中存储多位数据信息的多层单元(MLC)形成。单元串221可以分别电联接到相应的位线BL0至BLm-1。
在一些实施例中,存储块211可以包括NAND型闪速存储器单元。然而,存储块211不限于NAND闪速存储器,而是可以包括NOR型闪速存储器、其中组合两种或更多种存储器单元的混合闪速存储器或其中控制器内置于存储器芯片的1-NAND闪速存储器。
在图4,示出存储器***40的一般示例。存储器***40可以包括易失性存储器400(例如,DRAM)和与易失性存储器400通信的非易失性存储器(NVM)402(例如,NAND)。易失性存储器400可以包括诸如本文所述的控制器的控制器404、错误校正码模块406和用于将位的物理地址映射到位的逻辑地址的逻辑位地址LBA表410。NVM 402可以包括多个存储块(和/或多个超级存储块),以及用于主机写入的开放块430和用于垃圾收集(GC)的开放块440。存储器***40示出一般的存储器***,并且本领域技术人员将理解附加/可选部件可以与存储器***一起使用以实现本文公开的发明。
如本文所提及的,诸如“NAND”或“NVM”的术语可以指诸如可以实施错误校正码进程的闪速存储器的非易失性存储器。进一步地,“DRAM”可以指可以包括诸如控制器和ECC模块的部件的易失性存储器。
由于NAND上写入的数据经受读取错误(例如,当被读取时位翻转),因此NAND上写入的数据可以通过错误校正码“ECC”受到保护。然而,在一些情况下,诸如由于NAND缺陷或其它干扰导致的情况,ECC解码可能仍然失败。
为了在ECC错误之后恢复数据,通常使用基于XOR的恢复方案。通常,利用基于XOR的方案,来自不同管芯-平面对的数据页面的按位XOR可以被计算并被保存在称为“奇偶校验页面”的页面中,该奇偶校验页面与数据页面一起可以被称为“条带”。
图5示出示例性XOR阵列配置50。配置50包括具有N个管芯(例如,使得最后的管芯被编号为N-1)的存储器存储装置。每个管芯可以包括两个平面(例如,平面0和平面1)。每个条带500、502和504包括来自管芯-平面对中的每一个的相同物理页面。尽管仅描绘三个条带,但是这是为了简单起见,并且本领域技术人员将理解在XOR配置中可以存在另外数量的条带。数据页面被标记为“D”并且奇偶校验页面被标记为“P”。如图所示,对应于最后管芯(管芯N-1)上的最后平面的页面包括奇偶校验页面。
在所示的XOR配置50中,如果条带中的任何数据页面具有ECC错误,则页面中的数据可以通过在包括奇偶校验页面的相同条带中对所有其它页面执行XOR来恢复。例如,如图6的配置60所示,如果条带500在管芯1的平面1上的数据页面处具有错误(例如,由“ER”表示),则可以对条带500的其它数据页面和奇偶校验页面中的每一个采取XOR以恢复错误“ER”。因此,配置50和配置60能够恢复单平面失效。
然而,如果在相同条带中的一个以上的页面具有ECC错误,则配置50和配置60不能恢复错误。因为管芯的平面通常被一起编程,所以单个条带中的多个错误或相同管芯的两个平面上的错误可能普遍发生在NAND闪存中,这可能是由于例如编程问题引起的。
因此,可选的配置对于恢复双平面(或多平面)错误是必需的。解决方案的一个示例是每个条带有两个奇偶校验页面,但是这个解决方案增加数据冗余并且因此减少存储器的超额供应(OP)规格。这增加写入放大(WA),并可能大幅降低存储器的随机写入性能,从而使每个条带的两个奇偶校验页面的解决方案不可行。
本文公开利用具有少量数据冗余(例如,数据冗余的数量类似于图5的配置50的数据冗余的数量)但具有在双平面(或多平面)ECC错误以及单平面NAND失效(例如,诸如在图6的配置60中示出的那些失效的失效)中恢复数据的能力的XOR阵列配置的***、方法、进程和装置。
图7A示出示例性XOR阵列配置70。配置70包括多个管芯以及两个页面700和702,其中每个管芯具有多个平面。数据页面和奇偶校验页面被循环交错,从而形成两个循环交错的条带。换言之,第一条带包括数据页面D1和奇偶校验页面P1,而第二条带包括数据页面D2和奇偶校验页面P2。对于每个条带,数据页面限于每个平面一个数据页面,使得可以校正双平面(或多平面)错误。奇偶校验页面P1存储对所有数据页面D1采取的XOR奇偶校验,并且奇偶校验页面P2存储对所有数据页面D2采取的XOR奇偶校验。因此,相同条带上的所有页面都在不同的管芯/平面/页面组合上。
图7B示出具有单平面失效的配置72。失效被示为管芯0/平面0的D1和管芯0/平面0的D2。失效的管芯-平面对的D1错误和D2错误属于不同的交错的XOR条带,并且因此,错误可以通过在每个条带上运行XOR恢复(例如,由ECC单元)来恢复(例如,使用奇偶校验P1恢复D1错误并且使用奇偶校验P2恢复D2错误)。
图7C示出具有双平面读取错误的配置74。因为管芯0的平面0和平面1都具有错误,所以在配置中,页面700包括双平面错误。D1和D2中的错误处于相同页面上,并且因此通常不能通过配置50和配置60中所示的XOR配置来校正。然而,由于条带被循环交错,因此平面0(D1)上的错误不会发生在与平面1(D2)上的错误相同的条带上。由于错误处于不同的交错条带上,因此它们可以使用用于D1错误的XOR奇偶校验P1和用于D2错误的XOR奇偶校验P2(例如,由ECC单元)来恢复。
图8A、图8B和图8C示出附加配置。条带交错的相同原理可以被归纳为每个管芯具有两个以上的平面的情况。在配置80中,每个管芯具有四个平面(PL0-PL3)。四个物理页面800、802、804和806构成条带组。条带组包括四个交错的条带。第一条带包括对应于第一条带的数据页面D1和第一奇偶校验页面P1,以此类推,使得第四条带包括对应于第四条带的数据页面D4和第四奇偶校验页面P4,其中每个奇偶校验页面存储循环交错的条带的相应XOR奇偶校验。每个条带包括限于每个平面一个数据页面的数据页面。
单平面错误和多平面错误可以使用配置80(例如,由ECC单元)来校正。例如,图8B示出多平面错误的示例。页面800包括在管芯0上的PL0、PL1和PL3处的错误。然而,在PL0处的错误位于D1条带上,在PL1处的错误位于D2条带上,并且在PL3处的错误位于D4条带上。因此,错误可以分别利用存储在P1、P2和P4处的其相应的XOR奇偶校验来恢复。
类似地,图8C示出单平面错误的示例。页面800、802和804包括错误。错误发生在管芯0中的平面PL0处。然而,页面800错误位于D1条带上,页面802错误位于D4条带上,并且页面804错误位于D3条带上。因此,错误可以分别利用存储在P1、P4和P3处的其相应的XOR奇偶校验来恢复。
图9是用于布置XOR阵列的配置和校正错误的示例性步骤的流程图90。流程图90中的步骤以便于说明的顺序来示出,并且本领域技术人员将理解为了实现所公开的发明,可以采用合适的顺序执行流程图90中的步骤。在步骤900处,存储数据页面和奇偶校验页面。数据页面和奇偶校验页面可以沿着包括多个管芯的存储器存储装置来存储,其中每个管芯包括多个平面。
在步骤902处,数据页面和奇偶校验页面与条带相关联。在一些示例中,条带对应于水平上相应的数据。在其它示例中,条带以不同方式来布置。条带的数量可以对应于存储器存储装置中页面的数量,或者对应于由可选的存储器配置可能需要的可选数量。
在步骤904处,循环交错数据页面和奇偶校验页面。如上所述,可以循环交错数据页面和奇偶校验页面以便构建循环交错的数据条带。在一些示例中,循环交错页面,使得每个条带限于每个平面一个数据页面。
在步骤906处,采取并存储XOR奇偶校验。可以对数据页面采取XOR奇偶校验。在一些示例中,诸如当循环交错数据页面时,可以对循环交错的条带采取XOR奇偶校验并且该XOR奇偶校验被存储在对应于循环交错的位置处。
在步骤908处,校正解码错误。例如,ECC单元可以被配置成解码错误。当对存储器***和装置执行读取时,可能会(例如,以位翻转的形式)发生读取错误。错误可以是单个错误或多个错误。当发生多个错误时,错误可以是单平面错误或多平面错误。当使用以上公开和描述的循环交错的条带配置时,可以(例如,由ECC单元)校正这些错误。
虽然为了清楚理解的目的已经详细地描述前述实施例,但本发明不限于提供的细节。存在实施本发明的许多可选方法。公开的实施例是说明性的而不是限制性的。
Claims (14)
1.一种存储器***,其包括:
存储器存储装置,其至少包括第一条带和第二条带,
所述第一条带包括对应于所述第一条带的数据页面和适用于存储第一异或奇偶校验,即第一XOR奇偶校验的第一奇偶校验页面,并且
所述第二条带包括对应于所述第二条带的数据页面和适用于存储第二异或奇偶校验,即第二XOR奇偶校验的第二奇偶校验页面,
所述数据页面和所述奇偶校验页面被存储在多个存储器管芯上,
其中每个存储器管芯包括多个平面;以及
控制器,其适用于:
循环交错对应于所述第一条带的所述数据页面和对应于所述第二条带的所述数据页面,
其中所述数据页面被循环交错,使得对限于每个平面一个数据页面的第一组数据页面采取所述第一XOR奇偶校验,
其中所述数据页面被循环交错,使得对限于每个平面一个数据页面的第二组数据页面采取所述第二XOR奇偶校验。
2.根据权利要求1所述的存储器***,其进一步包括适用于在一个以上平面中校正多个错误的错误校正码单元,即ECC单元。
3.根据权利要求2所述的存储器***,其中所述ECC单元进一步适用于在单个平面中校正多个错误。
4.根据权利要求1所述的存储器***,其中对应于所述第一条带的每个数据页面和所述第一奇偶校验页面被存储在不同的平面上。
5.根据权利要求4所述的存储器***,其中对应于所述第二条带的每个数据页面和所述第二奇偶校验页面被存储在不同的平面上。
6.一种方法,其包括:
将数据页面和奇偶校验页面存储在存储器存储装置的多个存储器管芯上,每个存储器管芯包括多个页面;
使数据页面和第一奇偶校验页面与所述存储器存储装置的第一条带相关联;
使数据页面和第二奇偶校验页面与所述存储器存储装置的第二条带相关联;
循环交错与所述第一条带相关联的所述第一奇偶校验页面和数据页面以及与所述第二条带相关联的所述第二奇偶校验页面和数据页面;
对所述第一条带采取第一异或奇偶校验,即第一XOR奇偶校验并且将所述第一XOR奇偶校验存储在所述第一奇偶校验页面中;以及
对所述第二条带采取第二异或奇偶校验,即第二XOR奇偶校验并且将所述第二XOR奇偶校验存储在所述第二奇偶校验页面中,
执行所述循环交错步骤,使得与所述第一条带相关联的所述第一奇偶校验页面和数据页面限于每个平面一个页面,
执行所述循环交错步骤,使得与所述第二条带相关联的所述第二奇偶校验页面和数据页面限于每个平面一个页面。
7.根据权利要求6所述的方法,其中当在一个以上的平面上发生多个错误时,其进一步包括通过错误校正码单元,即ECC单元并利用所述第一XOR奇偶校验和所述第二XOR奇偶校验校正所述多个错误。
8.根据权利要求6所述的方法,其进一步包括将对应于所述第一条带的每个数据页面和所述第一奇偶校验页面存储在不同的平面上。
9.根据权利要求8所述的方法,其进一步包括将对应于所述第二条带的每个数据页面和所述第二奇偶校验页面存储在不同的平面上。
10.一种存储器装置,其包括:
存储器存储装置,其至少包括第一条带和第二条带,
所述第一条带包括对应于所述第一条带的数据页面和被配置成存储第一异或奇偶校验,即第一XOR奇偶校验的第一奇偶校验页面,并且
所述第二条带包括对应于所述第二条带的数据页面和被配置成存储第二异或奇偶校验,即第二XOR奇偶校验的第二奇偶校验页面,
所述数据页面和所述奇偶校验页面被存储在多个存储器管芯上,
其中每个存储器管芯包括多个平面;以及
控制器,其被配置成循环交错对应于所述第一条带的所述数据页面和对应于所述第二条带的所述数据页面,
所述数据页面被循环交错,使得对限于每个平面一个数据页面的第一组数据页面采取所述第一XOR奇偶校验,
所述数据页面被循环交错,使得对限于每个平面一个数据页面的第二组数据页面采取所述第二XOR奇偶校验。
11.根据权利要求10所述的存储器装置,其进一步包括适用于在一个以上的平面中校正多个错误的错误校正码单元,即ECC单元。
12.根据权利要求11所述的存储器装置,其中所述ECC单元进一步适于在单个平面中校正多个错误。
13.根据权利要求10所述的存储器装置,其中对应于所述第一条带的每个数据页面和所述第一奇偶校验页面被存储在不同的平面上。
14.根据权利要求13所述的存储器装置,其中对应于所述第二条带的每个数据页面和所述第二奇偶校验页面被存储在不同的平面上。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/346,103 US9996285B2 (en) | 2016-11-08 | 2016-11-08 | Cyclically interleaved XOR array for error recovery |
US15/346,103 | 2016-11-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108062258A CN108062258A (zh) | 2018-05-22 |
CN108062258B true CN108062258B (zh) | 2021-05-25 |
Family
ID=62063878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710897116.3A Active CN108062258B (zh) | 2016-11-08 | 2017-09-28 | 用于错误恢复的循环交错的xor阵列 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9996285B2 (zh) |
CN (1) | CN108062258B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10379949B2 (en) * | 2017-09-29 | 2019-08-13 | Apple Inc. | Techniques for managing parity information for data stored on a storage device |
CN109669626B (zh) * | 2017-10-16 | 2021-12-03 | 建兴储存科技(广州)有限公司 | 固态储存装置及其相关数据管理方法 |
US11635894B2 (en) * | 2018-03-16 | 2023-04-25 | Micron Technology, Inc. | Clustered parity for NAND data placement schema |
US11521690B2 (en) | 2018-03-16 | 2022-12-06 | Micron Technology, Inc. | NAND data placement schema |
US10866764B2 (en) * | 2018-07-23 | 2020-12-15 | SK Hynix Inc. | Memory system with parity cache scheme and method of operating such memory system |
KR20200085519A (ko) * | 2019-01-07 | 2020-07-15 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10872012B2 (en) * | 2019-01-08 | 2020-12-22 | Western Digital Technologies, Inc. | XOR recovery schemes utilizing external memory |
US11494107B2 (en) * | 2019-04-11 | 2022-11-08 | Apple Inc. | Managing parity information for data stored on a storage device |
KR20200141172A (ko) * | 2019-06-10 | 2020-12-18 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
US10936415B2 (en) * | 2019-06-28 | 2021-03-02 | Western Digital Technologies, Inc. | Error correction scheme in flash memory |
KR20210017912A (ko) * | 2019-08-09 | 2021-02-17 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
US11630725B2 (en) * | 2019-12-24 | 2023-04-18 | Micron Technology, Inc. | Management of parity data in a memory sub-system |
US11449271B2 (en) * | 2019-12-30 | 2022-09-20 | Micron Technology, Inc. | Implementing fault tolerant page stripes on low density memory systems |
US11321173B2 (en) * | 2019-12-31 | 2022-05-03 | Micron Technology, Inc. | Managing storage of multiple plane parity data in a memory sub-system |
KR20210128224A (ko) * | 2020-04-16 | 2021-10-26 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그것의 동작 방법 |
US20220300374A1 (en) * | 2021-03-17 | 2022-09-22 | Micron Technology, Inc. | Redundant array management techniques |
US11625295B2 (en) * | 2021-05-10 | 2023-04-11 | Micron Technology, Inc. | Operating memory device in performance mode |
WO2023027787A1 (en) * | 2021-08-26 | 2023-03-02 | Micron Technology, Inc. | Access request management using sub-commands |
WO2023028820A1 (en) * | 2021-08-31 | 2023-03-09 | Yangtze Memory Technologies Co., Ltd. | System and apparatus for redundant array of independent disks striping against programming failures |
US11687409B1 (en) | 2021-12-28 | 2023-06-27 | Western Digital Technologies, Inc. | Data storage device and method for data protection using XOR parity |
US11935609B2 (en) | 2022-05-12 | 2024-03-19 | Western Digital Technologies, Inc. | Linked XOR flash data protection scheme |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102124527A (zh) * | 2008-05-16 | 2011-07-13 | 弗森-艾奥公司 | 用于检测和替代失效的数据存储器的装置、***和方法 |
CN102346694A (zh) * | 2007-03-29 | 2012-02-08 | 提琴存储器公司 | 一种在存储***中计算奇偶校验的方法 |
CN102549554A (zh) * | 2009-09-29 | 2012-07-04 | 美光科技公司 | 基于条带的存储器操作 |
CN102687121A (zh) * | 2010-01-04 | 2012-09-19 | 美光科技公司 | 堆叠式存储器中的错误校正 |
CN103339609A (zh) * | 2010-09-28 | 2013-10-02 | 净睿存储股份有限公司 | Raid阵列中的装置内数据保护 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9632870B2 (en) * | 2007-03-29 | 2017-04-25 | Violin Memory, Inc. | Memory system with multiple striping of raid groups and method for performing the same |
US8255620B2 (en) * | 2009-08-11 | 2012-08-28 | Texas Memory Systems, Inc. | Secure Flash-based memory system with fast wipe feature |
US8402217B2 (en) * | 2009-09-15 | 2013-03-19 | Marvell International Ltd. | Implementing RAID in solid state memory |
US9727414B2 (en) * | 2010-12-01 | 2017-08-08 | Seagate Technology Llc | Fractional redundant array of silicon independent elements |
US9183085B1 (en) * | 2012-05-22 | 2015-11-10 | Pmc-Sierra, Inc. | Systems and methods for adaptively selecting from among a plurality of error correction coding schemes in a flash drive for robustness and low latency |
US9176812B1 (en) * | 2012-05-22 | 2015-11-03 | Pmc-Sierra, Inc. | Systems and methods for storing data in page stripes of a flash drive |
KR20150067583A (ko) * | 2013-12-10 | 2015-06-18 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 중복 데이터 제거 방법 |
-
2016
- 2016-11-08 US US15/346,103 patent/US9996285B2/en active Active
-
2017
- 2017-09-28 CN CN201710897116.3A patent/CN108062258B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346694A (zh) * | 2007-03-29 | 2012-02-08 | 提琴存储器公司 | 一种在存储***中计算奇偶校验的方法 |
CN102124527A (zh) * | 2008-05-16 | 2011-07-13 | 弗森-艾奥公司 | 用于检测和替代失效的数据存储器的装置、***和方法 |
CN102549554A (zh) * | 2009-09-29 | 2012-07-04 | 美光科技公司 | 基于条带的存储器操作 |
CN102687121A (zh) * | 2010-01-04 | 2012-09-19 | 美光科技公司 | 堆叠式存储器中的错误校正 |
CN103339609A (zh) * | 2010-09-28 | 2013-10-02 | 净睿存储股份有限公司 | Raid阵列中的装置内数据保护 |
Also Published As
Publication number | Publication date |
---|---|
CN108062258A (zh) | 2018-05-22 |
US20180129430A1 (en) | 2018-05-10 |
US9996285B2 (en) | 2018-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108062258B (zh) | 用于错误恢复的循环交错的xor阵列 | |
US10388400B2 (en) | Generalized product codes for flash storage | |
US10180805B2 (en) | Memory system and operating method thereof | |
CN108073467B (zh) | 具有硬信道信息的位翻转ldpc解码算法 | |
US20190097653A1 (en) | Memory system with decoders and method of operating such memory system and decoders | |
US10693496B2 (en) | Memory system with LDPC decoder and method of operating such memory system and LDPC decoder | |
CN107346214B (zh) | 存储器***及其操作方法 | |
US20200142744A1 (en) | Logical address distribution in multicore memory system | |
US11182243B2 (en) | Memory system with adaptive information propagation and method of operating such memory | |
US9946644B2 (en) | Memory system and operating method thereof | |
US11367488B2 (en) | Memory system and method for read operation based on grouping of word lines | |
US10348335B2 (en) | Miscorrection avoidance for turbo product codes | |
US11271589B2 (en) | Memory system with error-reduction scheme for decoding and method of operating such memory system | |
US11036579B2 (en) | Decoder for memory system and method thereof | |
CN109739681B (zh) | 具有共享缓冲器架构的存储器***及其操作方法 | |
CN112216328B (zh) | 具有低复杂度解码的存储器***及其操作方法 | |
US11062758B2 (en) | Memory system to process multiple word line failures with limited storage and method of operating such memory system | |
US11115062B2 (en) | Memory system with adaptive threshold decoding and method of operating such memory system | |
US11023388B2 (en) | Data path protection parity determination for data patterns in storage devices | |
US11074128B2 (en) | Memory system with hybrid iterative decoding capability and method of operating such memory system | |
US10141072B2 (en) | Efficient encoder based on modified RU algorithm | |
US9996412B2 (en) | Enhanced chip-kill schemes by using sub-trunk CRC | |
CN110047554B (zh) | 具有超级芯片删除恢复的存储器***及其操作方法 | |
CN108073469B (zh) | 用于通用产品代码的数据映射方案 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |