CN107643958A - 数据恢复方法和使用其的存储器系统和raid存储系统 - Google Patents

数据恢复方法和使用其的存储器系统和raid存储系统 Download PDF

Info

Publication number
CN107643958A
CN107643958A CN201710544300.XA CN201710544300A CN107643958A CN 107643958 A CN107643958 A CN 107643958A CN 201710544300 A CN201710544300 A CN 201710544300A CN 107643958 A CN107643958 A CN 107643958A
Authority
CN
China
Prior art keywords
code word
code
decoding process
ecc decoding
bit
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
Application number
CN201710544300.XA
Other languages
English (en)
Other versions
CN107643958B (zh
Inventor
李明奎
柳根荣
申东旻
金钟河
孔骏镇
慎钒揆
金志烨
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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
Priority claimed from KR1020160082977A external-priority patent/KR102673873B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN107643958A publication Critical patent/CN107643958A/zh
Application granted granted Critical
Publication of CN107643958B publication Critical patent/CN107643958B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/27Coding, 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/2703Coding, 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 the interleaver involving at least two directions
    • H03M13/2707Simple row-column interleaver, i.e. pure block interleaving
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/403Error protection encoding, e.g. using parity or ECC codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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 using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种恢复数据的方法和系统,包括:当针对目标码字的解码器输入的错误校正码(ECC)解码处理已经失败时,从存储器设备读取与目标码字具有码相关的参考码字。基于使用目标码字和参考码字的操作处理来生成校正的目标码字的解码器输入。再次对校正的目标码字的解码器输入执行ECC解码处理。

Description

数据恢复方法和使用其的存储器系统和RAID存储系统
相关申请的交叉引用
本申请要求于2016年6月30日提交到韩国知识产权局的第 10-2016-0082977号的韩国专利申请的权益,其公开内容通过引用全文合并于 此。
背景技术
本公开涉及一种处理数据的方法和数据处理设备,更具体地,涉及一种 恢复数据的方法和使用该恢复数据的方法的存储系统以及廉价盘冗余阵列 (RAID)存储系统。
在数据存储技术领域中,需要非常低的误比特率来为信息传输或存储提 供可靠性。turbo码或低密度奇偶校验(LDPC)码用于纠错。然而,在存储 器密度高的数据存储设备中,尽管使用turbo码或LDPC码,但是难以实现系 统所需的非常低的误比特率。因此,需要有效的数据恢复技术。
发明内容
本公开描述了一种通过使用具有码相关的码字来有效地恢复目标码字的 方法。
本公开描述了一种用于通过使用具有码相关的码字来有效地恢复目标码 字的存储器系统。
本公开还描述了一种用于通过使用具有码相关的码字来有效地恢复目标 码字的廉价盘冗余阵列(RAID)存储系统。
根据本公开的一方面,提供了一种恢复数据的方法,所述方法包括:当 针对目标码字的解码器输入的错误校正码(ECC)解码处理已经失败时,从 存储器设备读取与目标码字具有码相关的参考码字;基于使用所述目标码字 和所述参考码字的操作处理来生成校正的目标码字的解码器输入;以及对校 正的目标码字的解码器输入再次执行ECC解码处理。
根据本公开的另一方面,提供了一种存储器系统,包括被配置为存储数 据的存储器设备和被配置为基于从存储器设备读取的数据来恢复目标码字的 存储器控制器。所述存储器控制器:(1)当针对目标码字的输入的ECC解码 处理失败时,从存储器设备读取与目标码字具有码相关的参考码字,(2)基 于使用目标码字和参考码字的操作处理,生成校正的目标码字的解码器输入; 以及(3)对校正的目标码字的解码器输入再次执行ECC解码处理。
根据本公开的另一方面,提供了一种包括多个存储设备和廉价盘冗余阵 列(RAID)控制器的RAID存储系统。所述RAID控制器:(1)通过使用 从在ECC解码处理中已经失败的存储设备接收的软输入,基于根据码相关的 操作处理,校正在ECC解码处理中已经失败的码字的软输入;以及(2)当 针对从所述多个存储设备之中的形成相同条带的两个或更多个存储设备读取 的码字的ECC解码处理失败时,对从在ECC解码处理中已经成功的存储设 备接收的结果进行解码。另外,RAID控制器对码字的校正的软输入执行ECC 解码处理。
根据本公开的另一方面,提供了一种具有非易失性存储器系统和存储器 控制器的存储器系统。所述存储器控制器:(1)执行由非易失性存储器系统 存储的、通过应用错误校正码(ECC)解码不能正确解码的目标码字的软读 取;(2)执行由非易失性存储器系统存储的、通过应用ECC解码不能正确解 码的第一参考码字的软读取;(3)识别不满足码约束的候选码字,所述候选 码字包括来自目标码字的软读取、第一参考码字的软读取以及通过应用ECC 解码能正确解码的第二参考码字中的每一个的数据;(4)改变归于目标码字 的软读取内的数据单元的数据值,使得候选码字满足码约束,从而创建目标 码字的修改的软读取;以及(5)将ECC解码应用于目标码字的修改的软读 取。
附图说明
从结合附图的以下详细描述中将更清楚地理解本公开的实施例,附图中:
图1是根据实施例的存储器系统的框图;
图2是示出根据实施例的多维码的码矩阵结构的图;
图3A是示出在图1的存储器系统中配置条带(strip)的示例的图;
图3B是示出在图1的存储器系统中配置条带的另一示例的图;
图3C是示出在图1的存储器系统中配置条带的另一示例的图;
图3D是示出在图1的存储器系统中配置条带的另一示例的图;
图3E是示出在图1的存储器系统中配置条带的另一示例的图;
图3F是示出在图1的存储器系统中配置条带的另一示例的图;
图4是图1所示的存储器设备的框图;
图5是示出图4所示的存储单元阵列的示例的图;
图6是示出包括在图5所示的存储器单元阵列中的存储器块的示例的电 路图;
图7是示出包括在图5所示的存储器单元阵列中的存储器块的另一示例 的电路图;
图8是示出包括在图6或图7所示的存储器块中的存储器单元的示例的 截面图;
图9是示出在图1的存储器系统中根据硬判定读取操作生成硬数据的方 法的示例的图;
图10是示出在图1的存储器系统中根据软判定读取操作生成软数据的方 法的示例的图;
图11是示出在图1的存储器系统中根据附加软判定读取操作生成软数据 的方法的示例的图;
图12是作为图1所示的存储器控制器的示例的存储器控制器的框图;
图13是作为图1所示的存储器控制器的另一示例的存储器控制器的框 图;
图14是示出在图1的存储器系统中执行数据恢复处理的操作的图;
图15是示出在图1的存储器系统中执行数据恢复处理的示例的图;
图16是示出在图1的存储器系统中执行数据恢复处理的另一示例的图;
图17是示出在图1的存储器系统中执行数据恢复处理的另一示例的图;
图18是示出在图1的存储器系统中执行数据恢复处理的另一示例的图;
图19是示出在图1的存储器系统中执行数据恢复处理的另一示例的图;
图20是示出在图1的存储器系统中执行数据恢复处理的另一示例的图;
图21是示出在图1的存储器系统中执行数据恢复处理的另一示例的图;
图22A和图22B是示出在图1的存储器系统中执行数据恢复处理的其他 示例的图;
图23是根据实施例的廉价盘冗余阵列(RAID)存储系统的框图;
图24是作为图23所示的RAID控制器的示例的RAID控制器的框图;
图25是作为图23所示的RAID控制器的另一示例的RAID控制器的框 图;
图26是示出图23所示的存储设备的配置的图;
图27是根据实施例的恢复数据的方法的流程图;
图28是图27所示的校正目标码字的操作的流程图;
图29是图28所示的生成所校正的目标码字的解码器输入的操作的流程 图;
图30是图29所示的校正所校正的目标码字的软输入的操作的流程图;
图31是示出可以添加到图27的流程图的操作的流程图;
图32是示出可以添加到图31的流程图的操作的流程图;
图33是示出可以添加到图28的流程图的操作的流程图;
图34是示出可以添加到图27的流程图的操作的流程图;以及
图35是示出可以添加到图33或图34的流程图的操作的流程图。
具体实施方式
在下文中,将参考附图描述本公开的实施例。附图中相同的附图标记表 示相同的元件。
图1是根据实施例的存储器系统100的框图。
参考图1,存储器系统100包括存储器设备10和存储器控制器20。
存储器设备10可以用非易失性存储器设备来实现。例如,存储器设备 10可以包括闪速存储器设备、相变随机存取存储器(PRAM)设备、铁电RAM (FRAM)设备和/或磁RAM(MRAM)设备。存储器设备10可以具有至少 一个非易失性存储设备和至少一个易失性存储设备组合在一起的形式,并且 可以具有至少两种类型的非易失性存储设备组合在一起的形式。
例如,存储器设备10可以包括单个存储器芯片。作为另一示例,存储器 设备10可以包括多个存储器芯片。单个存储器芯片可以包括单个裸片或多个 裸片。单个裸片可以包括单个平面或多个平面。单个平面可以包括多个存储 器块,每个存储器块可以包括多个页,并且每个页可以包括多个扇区。
存储器控制器20控制存储器设备10。例如,存储器控制器20可生成地 址ADDR、命令CMD和控制信号CTRL以控制存储器设备10。存储器控制 器20可通过向存储器设备10提供地址ADDR、命令CMD和控制信号CTRL, 控制存储器设备10的编程(或写入)、读取和擦除操作,。
存储器控制器20还可生成用于执行存储器设备10的硬判定读取操作或 软判定读取操作的控制信号。
例如,存储器控制器20可以通过使用包括在存储器设备10中的多个存 储器芯片来配置条带。作为另一示例,存储器控制器20可以通过使用包括在 存储器设备10中的多个裸片来配置条带。作为另一示例,存储器控制器20 可以通过使用包括在存储器设备10中的多个平面来配置条带。作为另一示 例,存储器控制器20可以基于包括在存储器设备10中的多个块、多个页或 多个扇区来配置条带。
例如,条带可以配置有存储器块、页或扇区,其包括属于存储器设备10 的三维垂直NAND(VNAND)闪速存储器单元结构中的不同平面的存储器 单元。作为另一示例,条带可以被配置有存储器块、页或扇区,其包括属于 存储器设备10的三维VNAND闪速存储器单元结构中的相同平面的存储器单 元。
存储器控制器20可基于以条带为单元从存储器设备10读取的数据生成 多维码。例如,可以使用根据廉价盘冗余阵列(RAID)方法的条带。
存储器控制器20包括恢复模块21和错误校正码(ECC)解码器22。
ECC解码器22对从存储器设备10读取的数据执行错误检测和校正处 理。例如,可以通过使用低密度奇偶校验(LDPC)码、Bose-Chaudhuri- Hocquenghem(BCH)码、turbo码和卷积码执行错误校正处理。
当在ECC解码器22中执行的针对目标码字的ECC解码处理失败时,恢 复模块21执行生成校正的目标码字的操作处理,以恢复在ECC解码处理中 已经失败的数据。这里,目标码字是ECC解码处理单元中的码字,其形成主 机(未示出)请求读取的数据。
例如,当在ECC解码器22中执行的针对目标码字的ECC解码处理失败 时,恢复模块21可以基于使用参考码字和在ECC解码处理中已经失败的目 标码字的操作处理来生成校正的目标码字,该参考码字与目标码字具有码相 关。例如,参考码字可以包括从存储器设备10的存储区域读取的码字,其形 成与目标码字相同的条带。ECC解码器22对从存储器设备10读取的参考码 字执行用于错误检测和校正的ECC解码处理。
例如,恢复模块21可以通过使用在ECC解码处理中已经成功的参考码 字的解码结果、在ECC解码处理中已经失败的参考码字的软输入、以及在 ECC解码处理中已经失败的目标码字的软输入,基于根据码相关的操作处理, 生成针对目标码字的校正的解码器输入。软输入包括码比特信息,所述码比 特信息包括根据软判定读取操作从存储器设备10读取的、以存储器单元为单 位的符号比特和可靠性比特。
当在ECC解码器22中执行的针对参考码字中的至少一个的ECC解码处 理失败时,恢复模块21从码矩阵中检测不满足码约束条件的候选码字,该码 矩阵包括参考码字的解码结果、参考码字的软输入和目标码字的软输入,并 且恢复模块21基于包括在候选码字中的码比特的可靠性,执行校正目标码字 的解码器输入的操作处理。
当针对目标码字的ECC解码处理失败时,ECC解码器22可以对从恢复 模块21输入的所校正的目标字再次执行ECC解码处理,以便恢复目标码字。
图2是示出根据实施例的多维码的码矩阵结构的图。
多维码表示其中可以以多维形式配置码矩阵的码。例如,多维码可以包 括产品码。多维码的码矩阵可以包括在两个方向上的码字。例如,多维码的 码矩阵可以包括从存储器设备10的存储区域读取的码字,其形成条带。
参考图2,多维码的码矩阵包括多个水平码字和多个垂直码字。例如, 多个水平码字的第一水平码字由“HCW1”指示,并且多个垂直码字的第一 垂直码字由“VCW1”指示。水平码字中的每一个和垂直码字中的每一个包 括多个码比特CB。
例如,诸如LDPC码、BCH码、turbo码和卷积码的ECC可以用作水平 码,并且应用于RAID-5的逐比特XOR码可以用作垂直码字。作为另一示例, 应用于RAID-6的Reed-Solomon码可以用作垂直码字。
图3A至图3F是示出在图1的存储器系统100中配置条带的各种示例的 图。
图3A是示出条带被配置有包括在存储器设备10中的裸片的示例的图。 存储器设备10可以包括多个裸片10A-1至10A-N+1。例如,条带可以包括N 个裸片10A-1至10A-N(其中N是等于或大于2的整数),并且一个裸片 10A-N+1可以被分配为备用裸片。例如,备用裸片10A-N+1可以用于存储 在条带的裸片10A-1至10A-N中的ECC解码处理失败之后恢复的数据。作 为另一示例,在条带的裸片10A-1至10A-N中的ECC解码处理失败之后恢 复的数据可以存储在裸片10A-1至10A-N中的任何一个的物理地址中,而不 是使用备用裸片10A-N+1。
存储器系统100A(对应于存储器系统100)的存储器控制器20A(对应 于存储器控制器20)可以读取被分开存储在条带的裸片10A-1至10A-N中的 码字HCW1至HCWN,并生成多维码的码矩阵,如图2所示。例如,可以通 过使用从裸片10A-1至10A-N读取的码字HCW1至HCWN来生成多维码的 码矩阵的水平码字HCW1至HCWN。
图3B是示出条带被配置有包括在存储器设备10中的平面的示例的图。 存储器设备10可以包括多个平面10B-1至10B-N+1。例如,条带可以包括N 个平面10B-1至10B-N(其中N是等于或大于2的整数),并且一个平面 10B-N+1可以被分配为备用平面。例如,备用平面10B-N+1可以用于存储 在条带的平面10B-1至10B-N中的ECC解码处理失败之后恢复的数据。作为 另一示例,在条带的平面10B-1至10B-N中的ECC解码处理失败之后恢复的 数据可以存储在平面10B-1至10B-N中的任何一个的物理地址中,而不是使 用备用平面10B-N+1。
存储器系统100B(对应于存储器系统100)的存储器控制器20B(对应 于存储器控制器20)可以读取被分开存储在条带的平面10B-1至10B-N中的 码字HCW1至HCWN,并且生成多维码的码矩阵,如图2所示。例如,可以 通过使用从平面10B-1到10B-N读取的码字HCW1到HCWN来生成多维码 的码矩阵的水平码字HCW1到HCWN。
图3C是示出条带被配置有包括在存储器设备10中的存储器块的示例的 图。存储器设备10可以包括多个存储器块10C-1至10C-N+1。例如,条带可 以包括N个存储器块10C-1至10C-N(其中N是等于或大于2的整数),并 且至少一个存储器块10C-N+1可以被分配为备用块。例如,备用块10C-N+1 可以用于存储在条带的存储器块10C-1至10C-N中的ECC解码处理失败之后 恢复的数据。作为另一示例,在条带的存储器块10C-1至10C-N中的ECC解 码处理失败之后恢复的数据可以存储在存储器块10C-1至10C-N中的任何一 个的物理地址中,而不是使用备用存储器块10C-N+1。
存储器系统100C(对应于存储器系统100)的存储器控制器20C(对应 于存储器控制器20)可以读取被分开存储在条带的存储器块10C-1至10C-N 中的码字HCW1至HCWN,并生成多维码的码矩阵,如图2所示。例如,可 以通过使用从存储器块10C-1至10C-N读取的码字HCW1至HCWN来生成 多维码的码矩阵的水平码字HCW1至HCWN。
图3D是示出条带被配置有包括在存储器设备10中的页的示例的图。存 储器设备10可以包括多个页10D-1至10D-N+1。例如,条带可以包括N个 页10D-1至10D-N(其中N是等于或大于2的整数),并且至少一个页10D-N +1可以被分配为备用页。例如,备用页10D-N+1可以用于存储在条带的页 10D-1至10D-N中的ECC解码处理失败之后恢复的数据。作为另一示例,在 条带的页10D-1至10D-N中的ECC解码处理失败之后恢复的数据可以存储 在存储器设备10的物理地址中,而不是使用备用页10D-N+1。
存储器系统100D(对应于存储器系统100)的存储器控制器20D(对应 于存储器控制器20)可以读取被分开存储在条带的页10D-1至10D-N中的码 字HCW1至HCWN,并且生成多维码的码矩阵,如图2所示。例如,可以通 过使用从页10D-1到10D-N读取的码字HCW1到HCWN来生成多维码的码 矩阵的水平码字HCW1到HCWN。
图3E是示出条带被配置有包括在存储器设备10中的扇区的示例的图。 存储器设备10可以包括多个扇区10E-1至10E-N+1。例如,条带可以包括N 个扇区10E-1至10E-N(其中N是等于或大于2的整数),并且至少一个扇区 10E-N+1可以被分配为备用扇区。例如,备用扇区10E-N+1可以用于存储在 条带的扇区10E-1至10E-N中的ECC解码处理失败之后恢复的数据。作为另 一示例,在条带的扇区10E-1至10E-N中的ECC解码处理失败之后恢复的数 据可以存储在存储器设备10的物理地址中,而不是使用备用扇区10E-N+1。
存储器系统100E(对应于存储器系统100)的存储器控制器20E(对应 于存储器控制器20)可以读取被分开存储在条带的扇区10E-1至10E-N中的 码字HCW1至HCWN,并且生成多维码的码矩阵,如图2所示。例如,可以 通过使用从扇区10E-1至10E-N读取的码字HCW1至HCWN来生成多维码 的码矩阵的水平码字HCW1至HCWN。
图3F是示出条带被配置有包括在存储器设备10中的存储器芯片的示例 的图。存储器设备10可以包括多个存储器芯片10F-1至10F-N+1。例如,条 带可以包括N个存储器芯片10F-1至10F-N(其中N是等于或大于2的整数), 并且一个存储器芯片10F-N+1可以被分配为备用存储器芯片。例如,备用存 储器芯片10F-N+1可以用于存储在条带的存储器芯片10F-1至10F-N中的 ECC解码处理故障之后恢复的数据。作为另一示例,在条带的存储器芯片 10F-1至10F-N中的ECC解码处理失败之后恢复的数据可以存储在存储器芯 片10F-1至10F-N中的任何一个的物理地址中,而不是使用备用存储器芯片 10F-N+1。
存储器系统100F(对应于存储器系统100)的存储器控制器20F(对应 于存储器控制器20)可以读取被分开存储在条带的存储器芯片10F-1至10F-N 中的码字HCW1至HCWN,并生成多维码的码矩阵,如图2所示。例如,可 以通过使用从存储器芯片10F-1至10F-N读取的码字HCW1至HCWN来生 成多维码的码矩阵的水平码字HCW1至HCWN。
图4是图1所示的存储器设备10的框图。例如,存储器块可以被配置在 图1的存储器设备10中包括的平面中。
参考图4,存储器设备10可以包括存储器单元阵列11、控制逻辑12、 电压生成器13、行解码器14和页缓冲器15。
存储器单元阵列11可以包括分别布置在多个字线与多个位线交叉的多 个区域中的多个存储器单元。在实施例中,多个存储器单元可以是闪速存储 器单元。例如,存储器单元阵列11可以是NAND闪速存储器单元阵列或NOR 闪速存储器单元阵列。在下文中,将在实施例中描述多个存储器单元是NAND 闪速存储器单元的情况。
存储器单元阵列11可以具有存储器单元彼此串联连接的串结构。例如, 在多个单元串中的每一个中,地选择晶体管、一个或多个虚存储器单元、多 个主存储器单元和串选择晶体管可以串联连接在公共源极线CSL和位线BL 之间。一个或多个虚存储器单元可以布置在地选择晶体管和多个主存储器单 元之间,以减小公共源极线CSL对主存储器单元的耦合影响。也就是说,虚 存储器单元可以设置在主存储器单元的边缘中。连接到多个位线的主存储器 单元和虚存储器单元可以分别连接到不同的字线。例如,虚存储器单元连接 到的字线可以被称为虚字线。
另外,在每个单元串中,可以以从最接近连接到全局源极线(GSL)的 地选择晶体管的存储器单元的顺序对多个存储器单元进行编程,以便降低作 为单元串结构的缺点的背面图案依赖性。在这点上,GSL可以被称为地选择 线。
例如,存储器单元阵列11可被设计以具有二维(2D)平面NAND闪速 存储器单元结构。作为另一示例,存储器单元阵列11可以被设计为具有三维 (3D)垂直NAND(VNAND)闪速存储器单元结构。
在本实施例中,具有3D结构的存储器单元阵列11可以是包括被设置在 硅衬底上并且与每个存储单元的操作相关联的有源区域的电路,并且可以以 单片形式配置在至少一个存储器单元阵列的物理级上,每个存储器单元阵列 包括在衬底上或衬底中提供的电路。术语“单片型”可以指构成阵列的每个 级的层恰好堆叠在该阵列的每个较低级的层上。
在实施例中,具有3D结构的存储器单元阵列11可以包括沿垂直方向布 置的垂直NAND串,使得至少一个存储器单元设置在另一存储器单元上。所 述至少一个存储器单元可以包括电荷陷阱层。
美国专利公开号7,679,133、8,553,466、8,654,587和8,559,235以及美国 专利申请号2011/0233648公开了3D存储器阵列的适当元件,该3D存储器阵 列包括多个级并且具有在多个级之间共享的字线和/或位线。参考文献通过引 用全文并入本说明书中。
当擦除电压被施加到存储器单元阵列11时,多个存储器单元MC可处于 擦除状态。当编程电压被施加到存储器单元阵列11时,多个存储器单元MC 可以处于编程状态。在这种情况下,存储器单元MC中的每一个可以具有擦 除状态和第一至第n编程状态P1至Pn中的一个,该第一至第n编程状态P1 至Pn基于阈值电压分类。
在这点上,n可以是等于或大于2的自然数。例如,当存储器单元MC 中的每一个是两比特级单元时,n可以是三。作为另一示例,当存储器单元 MC中的每一个是三比特级单元时,n可以是七。作为另一示例,当存储器单 元MC中的每一个是四比特级单元时,n可以是十五。如上所述,多个存储 器单元MC可以包括多级单元。然而,本公开不限于此。在一些实施例中, 多个存储器单元MC可以包括单级单元。
控制逻辑12可以基于从存储器控制器20接收的控制信号CTRL、命令 CMD、以及地址ADDR,输出用于将数据写入存储器单元阵列11、从存储器 单元阵列11读取数据或擦除存储器单元阵列11的各种控制信号。因此,控 制逻辑12可以控制存储器设备10的所有操作。
控制逻辑12可以基于从存储器控制器20接收的命令CMD、地址ADDR 和控制信号CTRL,生成用于执行硬判定读取操作或软判定读取操作的各种 控制信号。
从控制逻辑12生成的控制信号可以被提供给电压生成器13、行解码器 14和页缓冲器15。例如,控制逻辑12可以将电压控制信号CTRL_vol提供 给电压生成器13,将行地址X_ADDR提供给行解码器14,并将列地址 Y_ADDR提供给页缓冲器15。
电压生成器13可以基于电压控制信号CTRL_vol,生成用于对存储器单 元阵列11执行编程操作、读取操作和擦除操作的各种电压。详细地,电压生 成器13可以生成用于驱动多个字线WL的第一驱动电压VWL、用于驱动多 个串选择线SSL的第二驱动电压VSSL、和用于驱动多个地选择线GSL的第 三驱动电压VGSL。
在这种情况下,第一驱动电压VWL可以是编程电压(或写入电压)、读 取电压、擦除电压、通过电压或编程验证电压。此外,第二驱动电压VSSL 可以是串选择电压,即导通电压或截止电压。此外,第三驱动电压VGSL可 以是地选择电压,即导通电压或截止电压。
行解码器14可以经由多个字线WL连接到存储器单元阵列11,并且可 以响应于从控制逻辑12接收的行地址X_ADDR来激活多个字线WL中的一 些。详细地,在读取操作中,行解码器14可将读取电压施加到被选择的字线, 并且可将通过电压施加到未被选择的字线。
在编程操作中,行解码器14可将编程电压施加到被选择的字线,且可将 通过电压施加到未被选择的字线。
另外,在擦除操作中,行解码器14可将擦除电压(例如,0V)施加到 字线WL,并且可使串选择线SSL和地选择线GSL中的每一个浮置。
页缓冲器15可以经由多个位线BL连接到存储器单元阵列11。详细地, 在读取操作中,页缓冲器15可以作为感测放大器(sense amplifier)操作,以 输出存储在存储器单元阵列11中的数据DATA。在编程操作中,页缓冲器15 可以作为写入驱动器操作,以将要存储在存储器单元阵列11中的数据DATA 输入存储器单元阵列11。
图5是示出图4中所示的存储器单元阵列11的示例的图。
参考图5,存储器单元阵列11可以是闪速存储器单元阵列。在这种情况 下,存储器单元阵列11可以包括a个(其中a是等于或大于2的整数)存储 器块BLK1至BLKa。存储器块BLK1至BLKa中的每一个可以包括b个(其 中b是等于或大于2的整数)页PAGE1至PAGEb。页PAGE1至PAGEb中 的每一个可以包括c个(其中c是等于或大于2的整数)扇区SEC1至SECc。在图5中,为了便于说明,仅将存储器块BLK1示为包括页PAGE1至PAGEb 和扇区SEC1至SECc。然而,其他存储器块BLK2至BLKa可以各自具有与 存储器块BLK1相同的结构。
图6是示出包括在图5中所示的存储器单元阵列11中的存储器块BLK1 的示例的电路图。
参考图6,第一存储器块BLK1可以是具有垂直结构的NAND闪速存储 器,并且图5中所示的存储器块BLK1至BLKa中的每一个可以如图6中实 现。第一存储器块BLK1可以包括例如d个(其中d是等于或大于2的整数) 单元串STR BL1至BLd,其中八个存储器单元彼此串联连接。单元串STR 中的每一个可以包括分别连接到彼此串联连接的存储器单元的两端的串选择 晶体管SST和地选择晶体管GST。在这点上,在一个单元串中包括的八个存 储器单元之中的、与地选择晶体管GST相邻的一个或多个存储器单元可以各 自被设置为虚存储器单元。
在图6的实施例中,与地选择晶体管GST相邻的两个存储器单元可以各 自被设置为虚存储器单元DMC。因此,在一个单元串中包括的八个存储器单 元中的六个可以各自被设置为主存储器单元MMC。作为另一示例,可以在串 选择晶体管SST和主存储器单元MMC之间添加一个或多个虚存储器单元 DMC。
此外,诸如虚字线DWL1和DWL2的虚字线DWL可以分别连接到虚存 储器单元DMC1和DMC2,并且诸如主字线WL1至WL6的主字线MWL可 以分别连接到主存储器单元MMC1到MMC6。如上所述,虚存储器单元DMC1 和DMC2可以在地选择晶体管GST和多个主存储器单元MMC1至MMC6之 间,以便减小公共源极线CSL对主存储器单元MMC1至MMC6的耦合影响。 也就是说,一个或多个虚存储器单元可以布置在主存储器单元的边缘。串选 择线SSL可以连接到串选择晶体管SST,并且地选择线GSL可以连接到地选 择晶体管GST。
在这点上,根据实施例,可以不同地改变单元串STR的数量、虚字线 DWL的数量、主字线MWL的数量和位线BL的数量。
作为另一示例,虚存储器单元DMC可以不布置在存储器块BLK1至 BLKa中的每一个中,并且存储器块BLK1至BLKa中的每一个可以仅包括主 存储器单元MMC1至MMC6。
具有图6所示的结构的NAND闪速存储器设备可以以存储器块为单位擦 除,并且可以以对应于字线的页为单位编程。例如,当存储器单元是单级单 元时,一页可以对应于每个字线。作为另一示例,当存储器单元是多级单元 或三级单元时,多个页可以对应于每个字线。
图7是示出包括在图5中所示的存储器单元阵列11中的存储器块的另一 示例的电路图。
参考图7,第一存储器块BLK1′可以是具有垂直结构的NAND闪速存储 器,并且图5中所示的存储器块BLK1至BLKa中的每一个可以如图7实现。 第一存储器块BLK1′可以包括例如多个单元串STR11至STR33、多个字线 DWL1、DWL2和WL1至WL6、多个位线BL1至BL3、地选择线GSL、多 个串选择线SSL1至SSL3和公共源极线CSL。在这点上,可以根据实施例不 同地改变单元串的数量、字线的数量、位线的数量、地选择线的数量和串选 择线的数量。
单元串STR11至STR33可以连接在位线BL1至BL3与公共源极线CSL 之间。每个单元串(例如,STR11)可以包括彼此串联连接的串选择晶体管 SST、多个存储器单元DMC和MMC以及地选择晶体管GST。
在图7的实施例中,每个单元串中的与地选择晶体管GST相邻的两个存 储器单元DMC1和DMC2可以各自被设置为虚存储器单元DMC。因此,一 个单元串中包括的八个存储器单元MMC1至MMC6中的六个可以各自被设 置为主存储器单元MMC。作为另一示例,可以在串选择晶体管SST和主存 储器单元MMC之间添加一个或多个虚存储器单元DMC。
串选择晶体管SST可以连接到串选择线SSL1至SSL3。多个存储器单元 DMC1、DMC2和MMC1至MMC6可以分别连接到与其对应的多个字线 DW1、DW2和WL1至WL6。地选择晶体管GST可以连接到地选择线GSL。 串选择晶体管SST可以连接到与其对应的位线BL,并且地选择晶体管GST 可以连接到公共源极线CSL。
相同高度的字线(例如,WL1)可以共同连接,并且串选择线SSL1至 SSL3可以彼此间隔开。当对与字线WL1连接并且包括在单元串STR11至STR13中的存储器单元进行编程时,可以选择字线WL1和串选择线SSL1。
例如,条带可以被配置有包括属于第一存储器块BLK1′中的不同平面的 存储器单元的页或扇区。作为另一示例,条带可以被配置有包括属于第一存 储器块BLK1′中的同一平面的存储器单元的页或扇区。
图8是示出包括在图6或图7所示的存储器块中的存储器单元的示例的 截面图。在这点上,存储器单元可以是虚存储器单元DMC或主存储器单元 MMC。
参考图8,存储器单元可以包括沟道区1、电荷存储层2和控制栅极(CG) 3。例如,电荷存储层2可以利用作为导体的浮置栅极实现,并且具有这种结 构的存储器单元可以被称为浮栅结构单元。作为另一示例,电荷存储层2可 以用非导体(例如,SiN)来实现,并且具有这种结构的存储器单元可以被称 为电荷陷阱闪速(CTF)单元。
为了对存储器单元执行编程操作,可以将相对高的编程电压施加到控制 栅极CG3,并且可以将相对低的电压(例如,0V)施加到沟道区1。随着基 于这样的偏置条件在从控制栅极CG 3到沟道区1的方向上生成电场,电荷(例 如,电子)可以沿着箭头P方向(从沟道区1到电荷存储层2的方向)移动, 因此,存储器单元可以被编程。
另外,为了对存储器单元执行擦除操作,可以将相对低的擦除电压(例 如,0V)施加到控制栅极CG 3,并且可以将相对高的电压施加到沟道区1。 随着基于这样的偏置条件在从沟道区1到控制栅极CG 3的方向上生成电场, 电荷(例如,电子)可以沿箭头E方向(从电荷存储层2到沟道区1的方向) 移动,因此,存储器单元可以被擦除。
图9是示出在图1的存储器系统100中根据硬判定读取操作生成硬数据 的方法的示例的图。
图9的水平轴指示阈值电压Vth,并且图9的垂直轴指示存储器单元的 数量#Cell。
在图9中所示的存储器单元的阈值电压Vth的分布中,通过根据读取电 压Vr1的硬判定读取操作来确定比特1的编程状态和比特0的编程状态。例 如,具有小于读取电压Vr1的阈值电压的存储器单元可以被确定为处于比特 1的编程状态,并且具有等于或大于读取电压Vr1的阈值电压的存储器单元 可以被确定为处于比特0的编程状态。
根据硬判定读取操作在一个存储器单元中确定的比特1或比特0可以作 为符号比特输出到存储器控制器20。
图10是示出在图1的存储器系统100中根据软判定读取操作生成软数据 的方法的示例的图。
在图10中所示的存储器单元的阈值电压Vth的分布中,通过根据读取电 压Vr1的硬判定读取操作来获取用于确定比特1的编程状态和比特0的编程 状态的符号比特信息。然后,通过根据读取电压Vr1_a和读取电压Vr1_b的 软判定读取操作来获取可靠性比特信息。
在软判定读取操作中使用的一个读取电压Vr1_a被确定为低于在硬判定 读取操作中使用的读取电压Vr1第一电压,并且在软判定读取操作中使用的 另一个读取电压Vr1_b被确定为高于在硬判定读取操作中使用的读取电压 Vr1第二电压。例如,第一电压和第二电压可以被设置为相同。
因此,关于一个存储器单元,通过软判定读取操作将包括符号比特和可 靠性比特的两个比特输出到存储器控制器20。
例如,在图10中,将对于具有小于读取电压Vr1_a的阈值电压的存储器 单元的读取数据表示为(1_r),将对于具有在读取电压Vr1_a和读取电压Vr1 之间的阈值电压的存储器单元的读取数据表示为(1_u),将对于具有在读取 电压Vr1和读取电压Vr1_b之间的阈值电压的存储器单元的读取数据表示为 (0_u),并且将对于具有等于或大于读取电压Vr1_b的阈值电压的存储器单 元的读取数据表示为(0_r)。在这点上,“u”表示低可靠性,“r”表示高可 靠性。例如,(1_r)表示具有其中符号比特为“1”且可靠性比特为“r”的高 可靠性的比特1。
图11是示出在图1的存储器系统100中根据附加软判定读取操作生成软 数据的方法的示例的图。
在图11中所示的存储器单元的阈值电压Vth的分布中,通过根据读取电 压Vr1的硬判定读取操作来获取用于确定比特1的编程状态和比特0的编程 状态的符号比特信息。此外,在执行根据读取电压Vr1_a和读取电压Vr1_b 的软判定读取操作之后,执行根据读取电压Vr1_c和读取电压Vr1_d的附加 软判定读取操作。
在附加软判定读取操作中使用的一个读取电压Vr1_c被确定为比在软判 定读取操作中使用的读取电压Vr1_a低第三电压,并且在附加软判定读取操 作中使用的另一个读取电压Vr1_d被确定为比在软判定读取操作中使用的读 取电压Vr1_b高第四电压。例如,第三电压和第四电压可以被设置为相同。
因此,关于一个存储器单元,通过附加软判定读取操作将包括符号比特 和两个可靠性比特的三个比特输出到存储器控制器20。
例如,在图11中,将对于具有小于读取电压Vr1_c的阈值电压的存储器 单元的读取数据表示为(1_r2),将对于具有在读取电压Vr1_c和读取电压 Vr1_a之间的阈值电压的存储器单元的读取数据表示为(1_r1),将对于具有 在读取电压Vr1_a和读取电压Vr1之间的阈值电压的存储器单元的读取数据 表示为(1_u),将对于具有在读取电压Vr1和读取电压Vr1_b之间的阈值电 压的存储器单元的读取数据表示为(0_u),将对于具有在读取电压Vr1_b和 读取电压Vr1_d之间的阈值电压的存储器单元的读取数据表示为(0_r1),并 且将对于具有等于或大于读取电压Vr1_d的阈值电压的存储器单元的读取数 据表示为(0_r2)。在这点上,“u”表示低可靠性,“r1”表示高于“u”并且 低于“r2”的可靠性,并且“r2”表示高于“r1”的可靠性。例如,(1_r1)表 示符号比特是“1”,并且可靠性比特是“r1”。
图12是作为包括在图1的存储器系统100中的存储器控制器20的示例 的存储器控制器20A的框图。
如图12所示,存储器控制器20A可以包括处理器210A、恢复模块21A、 ECC解码器22、随机存取存储器(RAM)220A、主机接口230、存储器接口 240和总线250。
存储器控制器20A的元件可以通过总线250彼此电连接。
处理器210A可以通过使用存储在RAM 220A中的程序代码和数据来控 制存储器系统100的所有操作。例如,处理器210A可以用微处理器或中央 处理单元(CPU)来实现。当存储器系统100被初始化时,处理器210A可以 从存储器设备10读取用于控制由存储器系统100执行的操作所需的程序代码 和数据,并且可以将程序代码和数据加载到RAM 220A。条带映射信息可以 存储在RAM 220A中。处理器210A可以基于条带映射信息从存储器设备10读取数据,并且可以生成多维码的码矩阵,如图2中所示。
处理器210A可以在读取操作中向存储器设备10A提供读取命令和地址, 在编程操作中向存储器设备10A提供编程命令、地址和数据,并且在擦除操 作中对存储器设备10A提供擦除命令和地址。此外,处理器210A可以通过 使用存储在RAM 220A中的系统数据,根据图25至图32所示的流程图,执 行数据恢复所需的操作。
主机接口230可以包括用于与连接到存储器系统100的主机(未示出) 交换数据的协议,并且可以将存储器系统100A和主机彼此连接。主机接口 230可以用高级技术附件(ATA)接口、串行ATA(SATA)接口、并行ATA (PATA)接口、通用串行总线(USB)、串行附接的小型计算机系统(SAS) 接口、小型计算机系统接口(SCSI)、嵌入式多媒体卡(eMMC)接口或通用 闪速存储(UFS)接口实现。然而,这仅仅是示例,并且本实施例不限于此。 主机接口230可以从主机接收命令、地址和数据,或者可以根据处理器210A 的控制将数据发送到主机。
存储器接口240可以电连接到存储器设备10。存储器接口240可以向存 储器设备10发送命令、地址和数据,或者可以根据处理器210A的控制从存 储器设备10接收数据。存储器接口240可以被配置为支持NAND闪速存储 器或NOR闪速存储器。存储器接口240可以被配置为通过多个通道执行软件 或硬件交织操作。
ECC解码器22对从存储器设备10读取的数据执行错误检测和校正处 理。例如,可以通过使用LDPC码、BCH码、turbo码和卷积码来执行错误 校正处理。
处理器210A根据软判定读取操作从存储器设备10读取从主机(未示出) 请求的目标码字。例如,可以在ECC解码处理单元中确定目标码字的大小。 例如,如参考图10所描述的,根据软判定读取操作从存储器设备10读取的 目标码字的软输入由包括符号比特和可靠性比特的两个比特表示。由处理器 210A读取的目标码字的软输入被提供给ECC解码器22。
当在ECC解码器22中执行的针对目标码字的软输入的ECC解码处理失 败时,在ECC解码处理中已经失败的目标码字的软输入存储在RAM 220A中。
此后,处理器210A从存储器设备10读取与目标码字具有码相关的参考 码字。参考码字可包括从存储器设备10的存储区域读取的码字,其形成与目 标码字相同的条带。例如,如图2所示,码矩阵可以被配置有目标码字和参 考码字。例如,目标码字和参考码字可以是码矩阵的水平码字HCW1至 HCWN,如图2所示。
例如,处理器210A通过执行硬判定读取操作从存储器设备10读取参考 码字的硬输入,并将参考码字的所读取的硬输入提供给ECC解码器22。ECC 解码器22对从处理器210A接收的参考码字的硬输入执行错误检测和校正处 理。处理器210A将在ECC解码处理中已经成功的参考码字的硬输入的解码 结果存储在RAM 220A中。然后,处理器210A执行用于获取在ECC解码处 理中已经失败的参考码字的软输入的软判定读取操作。对根据软判定读取操作获取的参考码字的软输入执行错误检测和校正处理。处理器210A将在ECC 解码处理中已经成功的参考码字的软输入的解码结果和在ECC解码处理中已 经失败的参考码字的软输入存储在RAM 220A中。
当在ECC解码器22中执行的针对目标码字的ECC解码处理失败时,恢 复模块21A执行生成校正的目标码字的操作处理,以恢复在ECC解码处理中 已经失败的数据。例如,恢复模块21A可以用硬件逻辑电路来实现。
恢复模块21A通过使用在ECC解码处理中已经失败的目标码字的软输 入、在ECC解码处理中已经成功的参考码字的解码结果、以及在ECC解码 处理中已经失败的参考码字的软输入,基于根据码相关的操作处理来生成校 正的目标码字。从RAM 220A读取用于生成校正的目标码字的目标码字的软 输入、参考码字的解码结果和参考码字的软输入。
恢复模块21A从码矩阵中检测不满足码约束条件的候选码字,所述码矩 阵包括在ECC解码处理中已经失败的目标码字的软输入、在ECC解码处理 中已经成功的参考码字的解码结果、以及在ECC解码处理中已经失败的参考 码字的软输入,并且恢复模块21A基于包括在所检测的候选码字中的码比特 的可靠性来执行校正目标码字的操作处理。
例如,恢复模块21A可以将在ECC解码处理中已经失败的目标码字的 软输入、在ECC解码处理中已经成功的参考码字的解码结果、以及在ECC 解码处理中已经失败的参考码字,排列为码矩阵的第一方向上的码字,如图 2所示,并且可以将在码矩阵的第二方向上的码字确定为候选码字,在码矩 阵的第二方向上发生由于对于码矩阵的第二方向的奇偶校验而导致的错误。 例如,码矩阵的第一方向可以是其中排列水平码字的水平方向,并且码矩阵 的第二方向是其中排列垂直码字的垂直方向。
例如,恢复模块21A通过比较候选码字单元中的码比特的可靠性的项来 检测候选码字单元中具有最低可靠性的错误候选码比特,并且执行校正包括 在目标码字中的错误候选码比特的操作处理。例如,可以通过将包括在目标 码字中的错误候选码比特的符号比特反转的方式来校正目标码字。
例如,恢复模块21A可以通过使用与对于在ECC解码处理中已经失败 的目标码字生成校正的目标码字的软输入的操作处理相同的方式,对于在 ECC解码处理中已经失败的参考码字生成校正的参考码字的软输入。
由恢复模块21A生成的校正的目标码字的软输入被提供给ECC解码器 22。因此,ECC解码器22对校正的目标码字的软输入再次执行ECC解码处 理。以相同的方式,可以将由恢复模块21A生成的校正的参考码字的软输入 提供给ECC解码器22。因此,ECC解码器22可以对校正的参考码字的软输 入再次执行ECC解码处理,并且可以恢复在ECC解码处理中已经失败的参 考码字。
当针对在ECC解码器22中再次执行的校正的目标码字的软输入的ECC 解码处理失败时,可以基于在如上文参考图11所描述的附加软判定读取操作 之后获取的软输入,通过如上所述的处理来执行ECC解码处理和数据恢复处 理。
当针对校正的目标码字的软输入的ECC解码处理成功时,处理器210A 可以将针对校正的目标码字的输入的ECC解码结果写入存储器设备10的新 的物理地址,并且可以基于其中已经写入ECC解码结果的新物理地址更新条 带映射信息。
当针对校正的参考码字的软输入的ECC解码处理被再次执行并且成功 时,处理器210A可以将针对校正的参考码字的输入的ECC解码结果写入存 储器设备10的新的物理地址,并且可以基于其中已经写入ECC解码结果的 新物理地址来更新条带映射信息。
图13是作为包括在图1的存储器系统100中的存储器控制器20的另一 示例的存储器控制器20B的框图。
如图13所示,存储器控制器20B可以包括处理器210B、ECC解码器22, RAM 220B、主机接口230、存储器接口240和总线250。
用于控制由存储器系统100执行的操作所需的程序代码和数据可以存储 在RAM220B中。例如,当存储器系统100被初始化时,处理器210B可以 从存储器设备10读取用于控制由存储器系统100执行的操作所需的程序代码 和数据,并且可以将该程序代码和数据加载到RAM 220B中。另外,RAM 220B 可以存储用软件实现的恢复模块21B的程序代码。
处理器210B可以通过使用存储在RAM 220B中的程序代码和数据来控 制存储器系统100的所有操作。例如,处理器210B可以通过使用存储在RAM 220B中的恢复模块21B的程序代码,执行如上参照图12所述的数据恢复处 理。
ECC解码器22、主机接口230、存储器接口240和总线250已经在上面 参考图12进行了描述。因此,不提供它们的重复描述。
图14是示出在图1的存储器系统100中执行数据恢复处理的操作的图。
例如,当在存储器系统100中执行的针对目标码字的ECC解码处理失败 时,执行从多个裸片(即第一到第N个裸片10A-1到10A-N)读取与目标码 字具有码相关的参考码字的操作(操作S1)。图14示出了其中针对从第一裸 片10A-1读取的目标码字的ECC解码处理已经失败、并且针对从第三裸片 10A-3读取的参考码字的ECC解码处理已经失败的示例。例如,使用RAID 的条带可以被配置有多个裸片10A-1至10A-N。
当存储器系统100中的两个或更多个裸片中的ECC解码处理失败时,恢 复模块21基于根据使用目标码字和参考码字的码相关的操作处理,执行校正 目标码字的操作处理(操作S2)。
ECC解码器22从恢复模块21接收校正的目标码字,并通过对校正的目 标码字再次执行ECC解码处理来恢复目标码字(操作S3)。
将参考图15至图22描述在存储器系统100中执行数据恢复处理的各种 示例。
在图15至图22中,假设条带被配置有第一至第六裸片10A-1至10A-6。 此外,假设第一裸片10A-1存储目标码字,并且第二至第六裸片10A-2至 10A-6存储目标码字和形成条带的参考码字。
图15是示出在图1的存储器系统100中执行数据恢复处理的示例的图。 1。
图15示出了针对第一裸片10A-1的目标码字的ECC解码处理已经失败、 并且针对第三裸片10A-3的参考码字的ECC解码处理已经失败的示例。
当在存储器系统100中执行的针对目标码字的ECC解码处理失败时,执 行从多个裸片(即第一到第六裸片10A-1至10A-6)读取与目标码字具有码 相关的参考码字的操作(操作S11)。
恢复模块21通过使用在ECC解码处理中已经失败的第一裸片10A-1的 目标码字的软输入HCW1、在ECC解码处理中已经失败的第三裸片10A-3的 参考码字的软输入HCW3、以及在ECC解码处理中已经成功的第二,第四, 第五和第六裸片10A-2、10A-4、10A-5和10A-6的参考码字的解码结果,来 执行校正目标码字的操作处理(操作S12)。
例如,码矩阵的第一水平码字HCW1被配置有在ECC解码处理中已经 失败的第一裸片10A-1的目标码字的软输入,并且码矩阵的第三水平码字 HCW3被配置有在ECC解码处理中已经失败的第三裸片10A-3的参考码字的 软输入。另外,码矩阵的剩余水平码字被配置有在ECC解码处理中已经成功 的第二、第四、第五和第六裸片10A-2、10A-4、10A-5和10A-6的参考码字 的解码结果。
恢复模块21从以这种方式配置的码矩阵中检测其中不满足码约束条件 的垂直码字。例如,检测不满足偶数奇偶校验的垂直码字。因此,从该码矩 阵中检测不满足偶数奇偶校验的第二垂直码字VCW2、第四垂直码字VCW4 和第五垂直码字VCW5。
恢复模块21从其中不满足码约束条件的垂直码字中检测在垂直码字单 元中具有最低可靠性的错误候选码比特。其中不满足码约束条件的第二垂直 码字VCW2的码比特包括[1_u,0,1_r,0,0,1]。在第二垂直码字VCW2 的码比特中,对应于解码结果的码比特“0”和“1”是具有最高可靠性的码 比特。因此,从第二垂直码字VCW2的码比特之中,通过比较与软输入相对 应的码比特的可靠性的项,可以检测具有最低可靠性的错误候选码比特。结 果,作为第二垂直码字VCW2的码比特的第一码比特的“1_u”被检测为具 有最低可靠性的错误候选码比特。
以相同的方式,不满足码约束条件的第四垂直码字VCW4的码比特[0_u, 0,0_r,1,1,1]的第一码比特的“0_u”被检测为具有最低可靠性的错误候 选码比特。另外,作为不满足码约束条件的第五垂直码字VCW5的码比特 [0_r,1,1_u,1,1,1]的第三码比特的“1_u”被检测为错误具有最低可靠 性的候选码比特。
当目标码字的软输入包括以这种方式检测的错误候选码比特时,恢复模 块21执行将相应的错误候选码比特的符号比特反转的操作处理。也就是说, 码矩阵的第一水平码字HCW1的码比特的第二和第四码比特CB2和CB4是 错误候选码比特。因此,第一水平码字HCW1的第二和第四码比特CB2和CB4的符号比特被反转。也就是说,作为第二码比特CB2的“1_u”被改变 为“0_u”,并且作为第四码比特CB4的“0_u”被改变为“1_u”。
因此,第一水平码字HCW1从[0_u,1_u,1_r,0_u,0_r,1_u]改变为[0_u, 0_u,1_r,1_u,0_r,1_u]。恢复模块21输出根据上述用于ECC解码器22 的操作处理来校正的水平码字HCW1_refine(操作S13)。
ECC解码器22从恢复模块21接收校正的水平码字HCW1_refine,并通 过对校正的水平码字HCW1_refine再次执行ECC解码处理来恢复目标码字 (操作S14)。在这点上,由于校正的水平码字HCW1_refine对应于校正的目 标码字的软输入,所以可以通过对第一裸片10A-1的校正的目标码字的软输 入再次执行ECC解码处理来恢复目标码字。
图16是示出在图1的存储器系统100中执行数据恢复处理的另一示例的 图。
图16示出了针对第一裸片10A-1的目标码字的ECC解码处理已经失败、 并且针对第三和第五裸片10A-3和10A-5的参考码字的ECC解码处理已经失 败的示例。
当在存储器系统100中执行的针对目标码字的ECC解码处理失败时,执 行从多个裸片(即第一到第六裸片10A-1至10A-6)读取与目标码字具有码 相关的参考码字的操作(操作S21)。
恢复模块21通过使用在ECC解码处理中已经失败的第一裸片10A-1的 目标码字的软输入HCW1、在ECC解码处理中已经失败的第三和第五裸片 10A-3和10A-5的参考码字的软输入HCW3和HCW5、以及在ECC解码处 理已经成功的第二,第四和第六裸片10A-2、10A-4和10A-6的参考码字的解 码结果,执行校正目标码字的操作处理(操作S22)。
例如,码矩阵的第一水平码字HCW1可以被配置有在ECC解码处理中 已经失败的第一裸片10A-1的目标码字的软输入,码矩阵的第三水平码字 HCW3可以被配置有在ECC解码处理中已经失败的第三裸片10A-3的参考码 字的软输入,并且码矩阵的第五水平码字HCW5可以被配置有在ECC解码 处理中已经失败的第五裸片10A-5的参考码字的软输入。
恢复模块21从以这种方式配置的码矩阵中检测不满足码约束条件的垂 直码字。例如,检测不满足偶数奇偶校验的垂直码字。因此,从码矩阵中检 测不满足偶数奇偶校验的第二垂直码字VCW2、第四垂直码字VCW4和第五 垂直码字VCW5。
恢复模块21从其中不满足码约束条件的垂直码字中检测在垂直码字单 元中具有最低可靠性的错误候选码比特。其中不满足码约束条件的第二垂直 码字VCW2的码比特包括[1_u,0,1_r,0,0_r,1]。在第二垂直码字VCW2 的码比特之中,对应于解码结果的码比特“0”和“1”是具有最高可靠性的 码比特。因此,从第二垂直码字VCW2的码比特之中,通过比较与软输入相 对应的码比特的可靠性的项,可以检测具有最低可靠性的错误候选码比特。结果,作为第二垂直码字VCW2的码比特的第一码比特的“1_u”被检测为 具有最低可靠性的错误候选码比特。
以相同的方式,其中不满足码约束条件的第四垂直码字VCW4的码比特 [0_u,0,0_r,1,1_r,1]的第一码比特的“0_u”被检测为具有最低可靠性 的错误候选码比特。另外,其中不满足码约束条件的第五垂直码字VCW5的 码比特[0_r,1,1_u,1,1_u,1]的第三和第五码比特是具有最低可靠性的错 误候选码比特。以这种方式,当在其中不满足码约束条件的垂直码字中检测 到多个具有最低可靠性的码比特时,确定在相应的垂直码字中未检测到错误 候选码比特。因此,确定在第五垂直码字VCW5中没有检测到错误候选码比 特。
当目标码字的软输入包括以这种方式检测到的错误候选码比特时,恢复 模块21执行将相应的错误候选码比特的符号比特反转的操作处理。也就是 说,码矩阵的第一水平码字HCW1的码比特的第二和第四码比特CB2和CB4 是错误候选码比特。因此,第一水平码字HCW1的第二和第四码比特CB2 和CB4的符号比特被反转。也就是说,作为第二码比特CB2的“1_u”被改 变为“0_u”,并且作为第四码比特CB4的“0_u”被改变为“1_u”。
因此,第一水平码字HCW1从[0_u,1_u,1_r,0_u,0_r,1_u]改变为[0_u, 0_u,1_r,1_u,0_r,1_u]。恢复模块21输出根据上述针对ECC解码器22 的操作处理所校正的水平码字HCW1_refine(操作S23)。
ECC解码器22从恢复模块21接收校正的水平码字HCW1_refine,并通 过对校正的水平码字HCW1_refine再次执行ECC解码处理来恢复目标码字 (操作S24)。在这点上,由于校正的水平码字HCW1_refine对应于校正的目 标码字的软输入,所以可以通过对第一裸片10A-1的校正的目标码字的软输 入再次执行ECC解码处理来恢复目标码字。
图17是示出在图1的存储器系统100中执行数据恢复处理的另一示例的 图。
图17示出了其中针对第一裸片10A-1的目标码字的ECC解码处理已经 失败、以及针对第三,第五和第六裸片10A-3、10A-5和10A-6的参考码字的 ECC解码处理已经失败的示例。
当在存储器系统100中执行的针对目标码字的ECC解码处理失败时,执 行从多个裸片(即第一到第六裸片10A-1至10A-6)读取与目标码字具有码 相关的参考码字的操作(操作S31)。
恢复模块21通过使用在ECC解码处理中已经失败的第一裸片10A-1的 目标码字的软输入HCW1、在ECC解码处理中已经失败的第三、第五和第六 裸片10A-3、10A-5和10A-6的参考码字的软输入HCW3、HCW5和HCW6、 以及在ECC解码处理中已经成功的第二和第四裸片10A-2和10A-4的参考码 字的解码结果,执行校正目标码字的操作处理(操作S32)。
例如,码矩阵的第一水平码字HCW1可以被配置有在ECC解码处理中 已经失败的第一裸片10A-1的目标码字的软输入,码矩阵的第三水平码字 HCW3可以被配置有在ECC解码处理中已经失败的第三裸片10A-3的参考码 字的软输入,码矩阵的第五水平码字HCW5可以被配置有在ECC解码处理 中已经失败的第五裸片10A-5的参考码字的软输入,并且码矩阵的第六水平 码字HCW6可以被配置有在ECC解码处理中已经失败的第六裸片10A-6的 参考码字的软输入。
恢复模块21从以这种方式配置的码矩阵中检测不满足码约束条件的垂 直码字。例如,检测不满足偶数奇偶校验的垂直码字。因此,从码矩阵中检 测不满足偶数奇偶校验的第二垂直码字VCW2、第四垂直码字VCW4和第五 垂直码字VCW5。
恢复模块21从其中不满足码约束条件的垂直码字中检测在垂直码字单 元中具有最低可靠性的错误候选码比特。不满足码约束条件的第二垂直码字 VCW2的码比特包括[1_u,0,1_r,0,0_r,1_r]。在第二垂直码字VCW2的 码比特之中,对应于解码结果的码比特“0”和“1”是具有最高可靠性的码 比特。因此,在第二垂直码字VCW2的码比特之中,通过比较与软输入相对 应的码比特的可靠性的项,可以检测具有最低可靠性的错误候选码比特。结果,作为第二垂直码字VCW2的码比特的第一码比特的“1_u”被检测为具 有最低可靠性的错误候选码比特。
以相同的方式,作为其中不满足码约束条件的第四垂直码字VCW4的码 比特[0_u,0,0_r,1,1_r,1_r]的第一码比特的“0_u”被检测为具有最低可 靠性的错误候选码比特。另外,不满足码约束条件的第五垂直码字VCW5的 码比特[0_r,1,1_u,1,1_u,1_r]的第三和第五码比特是具有最低可靠性的 错误候选码比特。以这种方式,当在其中不满足码约束条件的垂直码字中检 测到多个具有最低可靠性的码比特时,确定在相应的垂直码字中未检测到错 误候选码比特。因此,确定在第五垂直码字VCW5中没有检测到错误候选码 比特。
当目标码字的软输入包括以这种方式检测到的错误候选码比特时,恢复 模块21执行将相应的错误候选码比特的符号比特反转的操作处理。也就是 说,码矩阵的第一水平码字HCW1的码比特的第二和第四码比特CB2和CB4 是错误候选码比特。因此,第一水平码字HCW1的第二和第四码比特CB2 和CB4的符号比特被反转。也就是说,作为第二码比特CB2的“1_u”被改 变为“0_u”,并且作为第四码比特CB4的“0_u”被改变为“1_u”。
因此,第一水平码字HCW1从[0_u,1_u,1_r,0_u,0_r,1_u]改变为[0_u, 0_u,1_r,1_u,0_r,1_u]。恢复模块21输出根据上述针对ECC解码器22 的操作处理所校正的水平码字HCW1_refine(操作S33)。
ECC解码器22从恢复模块21接收校正的水平码字HCW1_refine,并通 过对校正的水平码字HCW1_refine再次执行ECC解码处理来恢复目标码字 (操作S34)。在这点上,由于校正的水平码字HCW1_refine对应于校正的目 标码字的软输入,所以可以通过对第一裸片10A-1的校正的目标码字的软输 入再次执行ECC解码处理来恢复目标码字。
图18是示出在图1的存储器系统100中执行数据恢复处理的另一示例的 图。
图18示出了其中针对第一裸片10A-1的目标码字的ECC解码处理已经 失败、以及针对第二、第三、第四、第五和第六裸片10A-2、10A-3、10A-4、 10A-5和10A-6的参考码字的ECC解码处理已经失败的示例。也就是说,图 18示出了其中针对配置条带的所有裸片的ECC解码处理已经失败的示例。
当在存储器系统100中执行的针对目标码字的ECC解码处理失败时,执 行从多个裸片(即,第一到第六裸片10A-1至10A-6)读取与目标码字具有 码相关的参考码字的操作(操作S41)。
恢复模块21通过使用在ECC解码处理中已经失败的第一裸片10A-1的 目标码字的软输入HCW1、以及在ECC解码处理中已经失败的第二、第三、 第四、第五和第六裸片10A-2、10A-3、10A-4、10A-5和10A-6的参考码字 的软输入HCW2、HCW3、HCW4、HCW5和HCW6,执行校正目标码字的 操作处理(操作S42)。
例如,码矩阵的第一水平码字HCW1可以被配置有在ECC解码处理中 已经失败的第一裸片10A-1的目标码字的软输入,码矩阵的第二水平码字 HCW2可以被配置有在ECC解码处理中已经失败的第二裸片10A-2的参考码 字的软输入,码矩阵的第三水平码字HCW3可以被配置有在ECC解码处理 中已经失败的第三裸片10A-34的参考码字的软输入,码矩阵的第四水平码字 HCW4可以被配置有在ECC解码处理中已经失败的第四裸片10A-4的参考码 字的软输入,码矩阵的第五水平码字HCW5可以被配置有在ECC解码处理 中已经失败的第五裸片10A-5的参考码字的软输入,并且码矩阵的第六水平 码字HCW6可以被配置有在ECC解码处理中已经失败的第六裸片10A-6的 参考码字的软输入。
恢复模块21从以这种方式配置的码矩阵中检测其中不满足码约束条件 的垂直码字。例如,检测不满足偶数奇偶校验的垂直码字。因此,从码矩阵 中检测不满足偶数奇偶校验的第二垂直码字VCW2、第四垂直码字VCW4和 第五垂直码字VCW5。
恢复模块21从其中不满足码约束条件的垂直码字中检测在垂直码字单 元中具有最低可靠性的错误候选码比特。其中不满足码约束条件的第二垂直 码字VCW2的码比特包括[1_u,0_r,1_r,0_r,0_r,1_r]。可以通过比较对 于第二垂直码字VCW2的软输入的码比特的可靠性的项,检测具有最低可靠 性的错误候选码比特。结果,作为第二垂直码字VCW2的码比特的第一码比 特的“1_u”被检测为具有最低可靠性的错误候选码比特。
以相同的方式,作为其中不满足码约束条件的第四垂直码字VCW4的码 比特[0_u,0_r,0_r,1_r,1_r,1_r]的第一码比特的“0_u”被检测为具有最 低可靠性的错误候选码比特。此外,其中不满足码约束条件的第五垂直码字 VCW5的码比特[0_r,1_r,1_u,1_r,1_u,1_r]的第三和第五码比特是具有 最低可靠性的错误候选码比特。以这种方式,当在其中不满足码约束条件的 垂直码字中检测到多个具有最低可靠性的码比特时,确定在相应的垂直码字 中未检测到错误候选码比特。因此,确定在第五垂直码字VCW5中没有检测 到错误候选码比特。
当目标码字的软输入包括以这种方式检测到的错误候选码比特时,恢复 模块21执行将相应的错误候选码比特的符号比特反转的操作处理。也就是 说,码矩阵的第一水平码字HCW1的码比特的第二和第四码比特CB2和CB4 是错误候选码比特。因此,第一水平码字HCW1的第二和第四码比特CB2 和CB4的符号比特被反转。也就是说,作为第二码比特CB2的“1_u”被改 变为“0_u”,并且作为第四码比特CB4的“0_u”被改变为“1_u”。
因此,第一水平码字HCW1从[0_u,1_u,1_r,0_u,0_r,1_u]改变为[0_u, 0_u,1_r,1_u,0_r,1_u]。恢复模块21输出根据上述针对ECC解码器22 的操作处理所校正的水平码字HCW1_refine(操作S43)。
ECC解码器22从恢复模块21接收校正的水平码字HCW1_refine,并通 过对校正的水平码字HCW1_refine再次执行ECC解码处理来恢复目标码字 (操作S44)。在这点上,由于校正的水平码字HCW1_refine对应于校正的目 标码字的软输入,所以可以通过对第一裸片10A-1的校正的目标码字的软输 入再次执行ECC解码处理来恢复目标码字。
图19是示出在图1的存储器系统100中执行数据恢复处理的示例的图。
图19示出了针对第一裸片10A-1的目标码字的ECC解码处理已经失败、 并且针对第三裸片10A-3的参考码字的ECC解码处理已经失败的示例。
当在存储器系统100中执行的针对目标码字的ECC解码处理失败时,执 行从多个裸片(即,第一到第六裸片10A-1至10A-6)读取与目标码字具有 码相关的参考码字的操作(操作S51)。
恢复模块21通过使用在ECC解码处理中已经失败的第一裸片10A-1的 目标码字的软输入HCW1、在ECC解码处理中已经失败的第三裸片10A-3的 参考码字的软输入HCW3、以及在ECC解码处理中已经成功的第二、第四、 第五和第六裸片10A-2、10A-4、10A-5和10A-6的参考码字的解码结果,执 行校正目标码字的操作处理(操作S52)。
例如,码矩阵的第一水平码字HCW1被配置有在ECC解码处理中已经 失败的第一裸片10A-1的目标码字的软输入,并且码矩阵的第三水平码字 HCW3被配置有在ECC解码处理中已经失败的第三裸片10A-3的参考码字的 软输入。另外,码矩阵的剩余水平码字被配置有在ECC解码处理中已经成功 的第二、第四、第五和第六裸片10A-2、10A-4、10A-5和10A-6的参考码字 的解码结果。
恢复模块21从以这种方式配置的码矩阵中检测其中不满足码约束条件 的垂直码字。例如,检测不满足偶数奇偶校验的垂直码字。因此,从码矩阵 中检测不满足偶数奇偶校验的第二垂直码字VCW2、第四垂直码字VCW4和 第五垂直码字VCW5。
恢复模块21从其中不满足码约束条件的垂直码字中检测在垂直码字单 元中具有最低可靠性的错误候选码比特。其中不满足码约束条件的第二垂直 码字VCW2的码比特包括[1_u,0,1_r,0,0,1]。在第二垂直码字VCW2 的码比特之中,对应于解码结果的码比特“0”和“1”是具有最高可靠性的 码比特。因此,从第二垂直码字VCW2的码比特之中,通过比较与软输入相 对应的码比特的可靠性的项,可以检测具有最低可靠性的错误候选码比特。 结果,作为第二垂直码字VCW2的码比特的第一码比特的“1_u”被检测为 具有最低可靠性的错误候选码比特。
以相同的方式,作为其中不满足码约束条件的第四垂直码字VCW4的码 比特[0_u,0,0_r,1,1,1]的第一码比特的“0_u”被检测为具有最低可靠 性的错误候选码比特。另外,其中不满足码约束条件的第五垂直码字VCW5 的码比特[0_r,1,0_r,0,1,1]的第三和第五码比特是具有最低可靠性的错 误候选码比特。以这种方式,当在其中不满足码约束条件的垂直码字中检测 到多个具有最低可靠性的码比特时,确定在相应的垂直码字中未检测到错误 候选码比特。因此,确定在第五垂直码字VCW5中没有检测到错误候选码比 特。
当目标码字的软输入包括以这种方式检测到的错误候选码比特时,恢复 模块21执行将相应的错误候选码比特的符号比特反转的操作处理。也就是 说,码矩阵的第一水平码字HCW1的码比特的第二和第四码比特CB2和CB4 是错误候选码比特。因此,第一水平码字HCW1的第二和第四码比特CB2 和CB4的符号比特被反转。也就是说,作为第二码比特CB2的“1_u”被改 变为“0_u”,并且作为第四码比特CB4的“0_u”被改变为“1_u”。
因此,第一水平码字HCW1从[0_r,1_u,1_u,0_u,0_r,1_u]改变为[0_r, 0_u,1_u,1_u,0_r,1_u]。恢复模块21输出根据上述针对ECC解码器22 的操作处理所校正的水平码字HCW1_refine(操作S53)。
ECC解码器22从恢复模块21接收校正的水平码字HCW1_refine,并且 对校正的水平码字HCW1_refine再次执行ECC解码处理(操作S54)。
当ECC解码器22中针对校正的水平码字HCW1_refine的数据恢复失败 时,执行附加软判定读取操作,并且通过使用根据附加软判定读取操作获取 的码字来执行数据恢复处理(操作S55)。例如,当针对校正的目标码字的软 输入的ECC解码处理失败时,基于在如图11所示的附加软判定读取操作之 后获取的软输入来执行数据恢复处理。在ECC解码处理中已经失败的校正的 目标码字的软输入的可靠性由{r,u}定义。另一方面,在执行附加软判定读 取操作之后获取的软输入的可靠性可以更具体地由{r2,r1,u}定义。
图20是示出在图1的存储器系统100中执行数据恢复处理的示例的图。
图20示出了当根据图19所示的操作的软输入的数据恢复处理已经失败 时,通过使用由附加软判定读取操作获取的数据再次执行数据恢复处理的示 例。
图20中所示的示例是其中针对通过附加软判定读取操作从第一裸片 10A-1获取的目标码字的ECC解码处理已经失败、并且针对第三裸片10A-3 的参考码字的ECC解码处理已经失败的示例。
当在存储器系统100中执行的针对目标码字的ECC解码处理失败时,执 行从多个裸片(即第一到第六裸片10A-1至10A-6)读取与目标码字具有码 相关的参考码字的操作(操作S61)。
恢复模块21通过使用在ECC解码处理中已经失败的第一裸片10A-1的 目标码字的软输入HCW1、在ECC解码处理中已经失败的第三裸片10A-3的 参考码字的软输入HCW3、以及在ECC解码处理中已经成功的第二、第四、 第五和第六裸片10A-2、10A-4、10A-5和10A-6的参考码字的解码结果,执 行校正目标码字的操作处理(操作S62)。
例如,码矩阵的第一水平码字HCW1被配置有在ECC解码处理中已经 失败的第一裸片10A-1的目标码字的软输入,以及码矩阵的第三水平码字 HCW3被配置有在ECC解码处理中已经失败的第三裸片10A-3的参考码字的 软输入。另外,码矩阵的剩余水平码字被配置有在ECC解码处理中已经成功 的第二、第四、第五和第六裸片10A-2、10A-4、10A-5和10A-6的参考码字 的解码结果。
恢复模块21从以这种方式配置的码矩阵中检测其中不满足码约束条件 的垂直码字。例如,检测不满足偶数奇偶校验的垂直码字。因此,从码矩阵 中检测不满足偶数奇偶校验的第二垂直码字VCW2、第四垂直码字VCW4和 第五垂直码字VCW5。
恢复模块21从其中不满足码约束条件的垂直码字中检测在垂直码字单 元中具有最低可靠性的错误候选码比特。其中不满足码约束条件的第二垂直 码字VCW2的码比特包括[1_u,0,1_r1,0,0,1]。在第二垂直码字VCW2 的码比特之中,对应于解码结果的码比特“0”和“1”是具有最高可靠性的 码比特。因此,从第二垂直码字VCW2的码比特之中,通过比较与软输入相 对应的码比特的可靠性的项,可以检测具有最低可靠性的错误候选码比特。结果,作为第二垂直码字VCW2的码比特的第一码比特的“1_u”被检测为 具有最低可靠性的错误候选码比特。
以相同的方式,作为其中不满足码约束条件的第四垂直码字VCW4的码 比特[0_u,0,0_r1,1,1,1]的第一码比特的“0_u”被检测为具有最低可靠 性的错误候选码比特。另外,与其中不满足码约束条件的第五垂直码字VCW5 的码比特[0_r1,1,0_r2,0,1,1]的第一码比特对应的“0_r1”被检测为具有 最低可靠性的错误候选码比特。
当目标码字的软输入包括以这种方式检测到的错误候选码比特时,恢复 模块21执行将相应的错误候选码比特的符号比特反转的操作处理。也就是 说,码矩阵的第一水平码字HCW1的码比特的第二、第四和第五码比特CB2、 CB4和CB5是错误候选码比特。因此,第一水平码字HCW1的第二、第四 和第五码比特CB2、CB4和CB5的符号比特被反转。也就是说,作为第二码 比特CB2的“1_u”被改变为“0_u”,作为第四码比特CB4的“0_u”被改变 为“1_u”,并且作为第五码比特CB5的“0_r1”被改变为“1_u”。例如,在 反转其可靠性为“r1”或“r2”的码比特的符号比特的情况下,可靠性被改变 为“u”。
因此,第一水平码字HCW1从[0_r1,1_u,1_u,0_u,0_r1,1_u]改变为 [0_r1,0_u,1_u,1_u,1_u,1_u]。恢复模块21输出根据上述针对ECC解 码器22的操作处理所校正的水平码字HCW1_refine(操作S63)。
ECC解码器22从恢复模块21接收校正的水平码字HCW1_refine,并通 过对校正的水平码字HCW1_refine再次执行ECC解码处理来恢复目标码字(操作S64)。因此,可以执行针对通过附加软判定读取操作获取的目标码字 的恢复处理。
图21是示出在图1的存储器系统100中执行数据恢复处理的示例的图。
图21示出了执行校正其中满足码约束条件的码矩阵的垂直码字上的可 靠性比特的操作,以及校正其中不满足码约束条件的码矩阵的垂直码字上的 符号比特的操作的示例。
当在存储器系统100中执行的针对目标码字的ECC解码处理失败时,执 行从多个裸片(即第一到第六裸片10A-1至10A-6)读取与目标码字具有码 相关的参考码字的操作(操作S71)。
恢复模块21通过使用在ECC解码处理中已经失败的第一裸片10A-1的 目标码字的软输入HCW1、在ECC解码处理中已经失败的第三裸片10A-3的 参考码字的软输入HCW3、以及在ECC解码处理中已经成功的第二、第四、 第五和第六裸片10A-2、10A-4、10A-5和10A-6的参考码字的解码结果,执 行校正目标码字的操作处理(操作S72)。
例如,码矩阵的第一水平码字HCW1被配置有在ECC解码处理中已经 失败的第一裸片10A-1的目标码字的软输入,并且码矩阵的第三水平码字 HCW3被配置有在ECC解码处理中已经失败的第三裸片10A-3的参考码字的 软输入。另外,码矩阵的剩余水平码字被配置有在ECC解码处理中已经成功 的第二、第四、第五和第六裸片10A-2、10A-4、10A-5和10A-6的参考码字 的解码结果。
恢复模块21从以这种方式配置的码矩阵中检测其中不满足码约束条件 的垂直码字。例如,检测不满足偶数奇偶校验的垂直码字。因此,从码矩阵 中检测不满足偶数奇偶校验的第二垂直码字VCW2和第四垂直码字VCW4。
恢复模块21从其中不满足码约束条件的垂直码字中检测在垂直码字单 元中具有最低可靠性的错误候选码比特。其中不满足码约束条件的第二垂直 码字VCW2的码比特包括[1_u,0,1_r1,0,0,1]。在第二垂直码字VCW2 的码比特之中,对应于解码结果的码比特“0”和“1”是具有最高可靠性的 码比特。因此,从第二垂直码字VCW2的码比特之中,通过比较与软输入相 对应的码比特的可靠性的项,可以检测具有最低可靠性的错误候选码比特。结果,作为第二垂直码字VCW2的码比特的第一码比特的“1_u”被检测为 具有最低可靠性的错误候选码比特。以相同的方式,作为其中不满足码约束 条件的第四垂直码字VCW4的码比特[0_u,0,0_r1,1,1,1]的第一码比特 的“0_u”被检测为具有最低可靠性的错误候选码比特。
当目标码字的软输入包括以这种方式检测到的错误候选码比特时,恢复 模块21执行将相应的错误候选码比特的符号比特反转的操作处理。也就是 说,码矩阵的第一水平码字HCW1的码比特的第二和第四码比特CB2和CB4 是错误候选码比特。因此,第一水平码字HCW1的第二和第四码比特CB2 和CB4的符号比特被反转。也就是说,作为第二码比特CB2的“1_u”被改 变为“0_u”,并且作为第四码比特CB4的“0_u”被改变为“1_u”。
另外,恢复模块21执行校正其中满足码约束条件的垂直码字上的可靠性 比特的操作。例如,当其中满足码约束条件的垂直码字的码比特的软输入的 可靠性为[r1,r1]时,可靠性可以从r1改变为r2。也就是说,由于与其中满足 码约束条件的第五垂直码字VCW5[0_r1,1,0_r1,1,1,1]中的软输入相对 应的第一码比特“0_r1”和第三码比特“0_r1”的可靠性为r1,因此第一码比 特“0_r1”可以改变为“0_r2”以提高可靠性。因此,第一水平码字HCW1的 第五码比特CB5可以从“0_r1”改变为“0_r2”。作为另一示例,可以关于可 以改变其中满足码约束条件的垂直码字中的软输入的可靠性的条件来对表格 初始设置,并且可以基于该表格改变软输入的可靠性。
因此,第一水平码字HCW1从[0_u,1_u,1_r1,0_u,0_r1,1_u]改变为 [0_u,0_u,1_r1,1_u,0_r2,1_u]。恢复模块21输出根据上述针对ECC解 码器22的操作处理所校正的水平码字HCW1_refine(操作S73)。
ECC解码器22从恢复模块21接收校正的水平码字HCW1_refine,并通 过对校正的水平码字HCW1_refine再次执行ECC解码处理来恢复目标码字 (操作S74)。
图22A和图22B是示出在图1的存储器系统100中执行数据恢复处理的 其他示例的图。
图22A示出了其中针对第一裸片10A-1的目标码字的ECC解码处理已 经失败、并且针对第三和第五裸片10A-3和10A-5的参考码字的ECC解码处 理已经失败的示例。
当在存储器系统100中执行的针对目标码字的ECC解码处理失败时,执 行从多个裸片(即第一到第六裸片10A-1至10A-6)读取与目标码字具有码 相关的参考码字的操作(操作S81)。
恢复模块21通过使用在ECC解码处理中已经失败的第一裸片10A-1的 目标码字的软输入HCW1、在ECC解码处理中已经失败的第三和第五裸片 10A-3和10A-5的参考码字的软输入HCW3和HCW5、以及在ECC解码处 理中已经成功的第二、第四和第六裸片10A-2、10A-4和10A-6的参考码字的 解码结果,执行校正目标码字的操作处理(操作S82)。
例如,码矩阵的第一水平码字HCW1可以被配置有在ECC解码处理中 已经失败的第一裸片10A-1的目标码字的软输入,码矩阵的第三水平码字 HCW3可以被配置有在ECC解码处理中已经失败的第三裸片10A-3的参考码 字的软输入,并且码矩阵的第五水平码字HCW5可以被配置有在ECC解码 处理中已经失败的第五裸片10A-5的参考码字的软输入。
恢复模块21从以这种方式配置的码矩阵中检测其中不满足码约束条件 的垂直码字。例如,检测不满足偶数奇偶校验的垂直码字。因此,从码矩阵 中检测不满足偶数奇偶校验的第二垂直码字VCW2和第四垂直码字VCW4。
恢复模块21从其中不满足码约束条件的垂直码字中检测在垂直码字单 元中具有最低可靠性的错误候选码比特。其中不满足码约束条件的第二垂直 码字VCW2的码比特包括[1_u,0,1_r,0,0_r,1]。在第二垂直码字VCW2 的码比特之中,对应于解码结果的码比特“0”和“1”是具有最高可靠性的 码比特。因此,从第二垂直码字VCW2的码比特之中,通过比较与软输入相 对应的码比特的可靠性的项,可以检测具有最低可靠性的错误候选码比特。结果,作为第二垂直码字VCW2的码比特的第一码比特的“1_u”被检测为 具有最低可靠性的错误候选码比特。以相同的方式,作为不满足码约束条件 的第四垂直码字VCW4的码比特[0_u,0,0_r,1,1_r,1]的第一码比特的“0_u” 被检测为具有最低可靠性的错误候选码比特。
当目标码字的软输入包括以这种方式检测到的错误候选码比特时,恢复 模块21执行将相应的错误候选码比特的符号比特反转的操作处理。也就是 说,码矩阵的第一水平码字HCW1的码比特的第二和第四码比特CB2和CB4 是错误候选码比特。因此,第一水平码字HCW1的第二和第四码比特CB2 和CB4的符号比特被反转。也就是说,作为第二码比特CB2的“1_u”被改 变为“0_u”,并且作为第四码比特CB4的“0_u”被改变为“1_u”。
因此,第一水平码字HCW1从[0_u,1_u,1_r,0_u,0_r,1_u]改变为[0_u, 0_u,1_r,1_u,0_r,1_u]。恢复模块21输出根据上述针对ECC解码器22 的操作处理所校正的水平码字HCW1_refine(操作S83)。
ECC解码器22从恢复模块21接收校正的水平码字HCW1_refine,并通 过对校正的水平码字HCW1_refine再次执行ECC解码处理来恢复目标码字 (操作S84)。在这点上,由于校正的水平码字HCW1_refine对应于校正的目 标码字的软输入,所以可以通过对第一裸片10A-1的校正的目标码字的软输 入再次执行ECC解码处理来恢复目标码字。
图22B示出了通过使用在图22的示例中恢复的第一裸片10A-1的目标 码字的解码结果,对在ECC解码处理中已经失败的第三裸片10A-3的参考码 字执行恢复处理的示例。
图22B示出了其中第一裸片10A-1在针对校正的目标码字的ECC解码 处理中已经成功、并且第三和第五裸片10A-3和10A-5在针对参考码字的ECC 解码处理中已经失败的状态。
恢复模块21通过使用在ECC解码处理中已经成功的第一裸片10A-1的 校正的目标码字的解码结果HCW1、在ECC解码处理中已经失败的第三和第 五裸片10A-3和10A-5的参考码字的软输入HCW3和HCW5、以及在ECC 解码处理中已经成功的第二、第四和第六裸片10A-2、10A-4和10A-6的参考 码字的解码结果,执行校正第三裸片10A-3的参考码字的操作处理(操作 S85)。
例如,码矩阵的第一水平码字HCW1可以被配置有在ECC解码处理中 已经成功的第一裸片10A-1的校正的目标码字的解码结果,码矩阵的第三水 平码字HCW3可以被配置有在ECC解码处理中已经失败的第三裸片10A-3 的参考码字的软输入,并且码矩阵的第五水平码字HCW5可以被配置有在 ECC解码处理中已经失败的第五裸片10A-5的参考码字的软输入。
恢复模块21从以这种方式配置的码矩阵中检测其中不满足码约束条件 的垂直码字。例如,检测不满足偶数奇偶校验的垂直码字。因此,从码矩阵 中检测不满足偶数奇偶校验的第一垂直码字VCW1和第六垂直码字VCW6。
恢复模块21从其中不满足码约束条件的垂直码字中检测在垂直码字单 元中具有最低可靠性的错误候选码比特。其中不满足码约束条件的第一垂直 码字VCW1的码比特包括[1,0,1_r,0,1_u,0]。在第一垂直码字VCW1 的码比特之中,对应于解码结果的码比特“0”和“1”是具有最高可靠性的 码比特。因此,从第一垂直码字VCW1的码比特之中,通过比较与软输入相 对应的码比特的可靠性的项,可以检测具有最低可靠性的错误候选码比特。 结果,作为第一垂直码字VCW1的码比特的第五码比特的“1_u”被检测为 具有最低可靠性的错误候选码比特。以相同的方式,作为其中不满足码约束 条件的第六垂直码字VCW6的码比特[0,1,0_u,1,0_r,0]的第三码比特 的“0_u”被检测为具有最低可靠性的错误候选码比特。
当与要恢复的第三裸片10A-3的参考码字相对应的第三水平码字HCW3 的软输入包括以这种方式检测到的错误候选码比特时,恢复模块21执行将对 应的错误候选码比特的符号比特反转的操作处理。也就是说,码矩阵的第三 水平码字HCW3的码比特的第六码比特CB6是错误候选码比特。因此,第三 水平码字HCW3的第六码比特CB6的符号比特被反转。也就是说,作为第六 码比特CB6的“1_u”被改变为“0_u”。
因此,第三水平码字HCW3从[1_r,1_r,1_u,0_r,0_r,1_u]改变为[1_r, 1_r,1_u,0_r,0_r,0_u]。恢复模块21输出根据针对ECC解码器22的上 述操作处理所校正的水平码字HCW3_refine(操作S86)。
ECC解码器22从恢复模块21接收校正的水平码字HCW3_refine,并通 过对校正的水平码字HCW3_refine再次执行ECC解码处理来恢复第三裸片 10A-3的参考码字(操作S87)。在这点上,由于校正的水平码字HCW3_refine 对应于第三裸片10A-3的校正的参考码字的软输入,所以可以通过对第三裸 片10A-3的校正的参考码字的软输入再次执行ECC解码处理来恢复参考码 字。
图23是根据实施例的RAID存储系统1000的框图。
参考图23,RAID存储系统1000包括多个存储设备1100和RAID控制 器1200。
多个存储设备1100包括N个存储设备1100-1至1100-N(其中N是等于 或大于2的整数)。存储设备1100-1至1100-N中的每一个可以用固态驱动器 (SSD)或硬盘驱动器来实现。
RAID控制器1200基于条带映射信息控制存储设备1100-1至1100-N。
RAID控制器1200可以基于从存储设备1100-1至1100-N以条带为单位 接收的数据来生成多维码。例如,可以使用根据RAID方法的条带。
RAID控制器1200包括恢复模块1201和ECC解码器1202。
当针对从多个存储设备1100-1至1100-N之中的、形成相同条带的两个 或更多个存储设备读取的码字的ECC解码处理失败时,恢复模块1201基于 根据通过使用从在ECC解码处理中已经失败的存储设备接收的软输入、以及 从在ECC解码处理中已经成功的存储设备接收的解码结果的码相关的操作处 理,校正在ECC解码处理中已经失败的码字的软输入。
当针对目标码字的ECC解码处理失败时,恢复模块1201可以基于根据 使用与目标码字具有码相关的参考码字、以及在ECC解码处理中已经失败的 的目标码字的码相关的操作处理,生成校正的目标码字。参考码字可以包括 从存储设备1100-1至1100-N读取的、与目标码字形成相同条带的码字。
恢复模块1201可以从包括参考码字的解码结果、参考码字的软输入和目 标码字的软输入的码矩阵中检测不满足码约束条件的候选码字,并且可以基 于包括在候选码字中的码比特的可靠性来校正目标码字。
由恢复模块1201生成校正的目标码字的操作方法与图1的恢复模块21 中的操作方法基本相同,因此,不提供其重复描述。
ECC解码器1202对由恢复模块1201生成的校正的目标码字或校正的参 考码字的输入执行错误检测和校正处理。例如,可以通过使用LDPC码、BCH 码、turbo码和卷积码来执行错误校正处理。
图24是作为图23所示的RAID控制器1200的示例的RAID控制器1200A 的框图。
如图24所示,RAID控制器1200A可以包括处理器1210A、恢复模块 1201A、ECC解码器1202、RAM 1220A、输入/输出(I/O)接口1230和总线 1240。
存储器控制器1200A的组件可以通过总线1240彼此电连接。
处理器1210A可以通过使用存储在RAM 1220A中的程序代码和数据来 控制RAID存储系统1000的所有操作。例如,处理器1210A可以用微处理器 或CPU来实现。当初始化RAID存储系统1000时,处理器1210A可以从存 储设备1100-1至1100-N读取用于控制在RAID存储系统1000中执行的操作 所需的程序代码和数据,并且可以将程序代码和数据加载到RAM1220A中。
处理器1210A可以通过使用存储在RAM 1220A中的系统数据,根据图 27至图35中所示的流程图执行数据恢复所需的操作。
当针对目标码字的ECC解码处理失败时,恢复模块1201A执行生成校 正的目标码字的操作处理,以恢复在ECC解码处理中已经失败的数据。例如, 恢复模块1201A可以用硬件逻辑电路来实现。ECC解码器1202对由恢复模 块1201A生成的校正的目标码字或校正的参考码字的输入执行错误检测和校 正处理。
I/O接口1230连接到I/O设备,以便向I/O设备发送数据或从I/O设备 接收数据。例如,数据可以被发送到连接到I/O接口1230的存储设备1100-1 到1100-N,或者可以从存储设备1100-1到1100-N接收数据。
图25是作为图23中所示的RAID控制器1200的另一示例的RAID控制 器1200B的框图。
如图25中所示,RAID控制器1200B可以包括处理器1210B、ECC解码 器1202、RAM1220B、I/O接口1230和总线1240。
用于控制在RAID存储系统1000中执行的操作所需的程序代码和数据可 以存储在RAM 1220B中。例如,当初始化RAID存储系统1000时,处理器 1210B可以从存储设备1100-1至1100-N读取用于控制在RAID存储系统1000 中执行的操作所需的程序代码和数据,并且可以将程序代码和数据加载到 RAM 1220B中。另外,RAM 1220B可以存储用软件实现的恢复模块1201B 的程序代码。
处理器1210B可以通过使用存储在RAM 1220B中的程序代码和数据来 控制RAID存储系统1000的所有操作。例如,处理器1210B可以通过使用存 储在RAM 1220B中的恢复模块1201B的程序代码对如上所述在ECC解码处 理中已经失败的数据执行数据恢复处理。
ECC解码器1202、I/O接口1230和总线1240已经在上面参照图24进行 了描述,因此,不提供它们的重复描述。
图26是示出在图23的RAID存储系统1000中包括的存储设备1100-1 的配置的图。
如图26中所示,存储设备1100-1包括存储器设备1110和SSD控制器 1120。
存储器设备1110可以包括多个非易失性存储器(NVM)设备1110-1。 例如,存储器设备1110可以包括闪速存储器设备、PRAM设备、FRAM设备 和/或MRAM设备。
SSD控制器1120可以控制存储器设备1110。SSD控制器1120可以生成 地址ADDR、命令CMD和控制信号CTRL以控制存储器设备1110。SSD控 制器1120可以通过向存储器设备1110提供地址ADDR、命令CMD和控制 信号CTRL来控制存储器设备1110的编程(或写入)、读取和擦除操作。
SSD控制器1120根据RAID控制器1200的请求对从存储器设备1110读 取的数据执行ECC解码处理。当ECC解码处理成功时,SSD控制器1120将 ECC解码结果发送到RAID控制器1200。当ECC解码处理失败时,SSD控 制器1120将在ECC解码处理中已经失败的数据的软输入发送到RAID控制 器1200。
将参考图27至图35的流程图描述在包括图1中所示的存储器系统100 或图23中所示的RAID存储系统1000的各种类型的系统中恢复数据的方法。
图27是根据实施例的恢复数据的方法的流程图。
参考图27,系统对目标码字的输入执行ECC解码处理(操作S110)。例 如,目标码字可以是由主机请求的块数据。
接下来,系统确定根据ECC解码处理的目标码字恢复是否已经成功(操 作S120)。换句话说,系统确定针对目标码字的输入的ECC解码处理是否已 经成功。
当确定针对目标码字的输入的ECC解码处理已经失败时,系统读取与目 标码字具有码相关的参考码字(操作S130)。例如,参考码字可以从与目标 码字形成相同条带的存储器设备的存储区域中读取。
系统基于使用目标码字和参考码字的操作处理来生成校正的目标码字的 解码器输入(操作S140)。例如,校正目标码字的操作可以由图1的恢复模 块21和图21的恢复模块1201执行。
接下来,系统对校正的目标码字的解码器输入再次执行ECC解码处理 (操作S150)。
图28是图27所示的校正目标码字的操作S140的流程图。
参考图28,在完成操作S130之后,系统对读取的参考码字中的每一个 执行ECC解码处理(操作S141)。
接下来,系统通过使用在ECC解码处理中已经成功的参考码字的解码结 果、在ECC解码处理中已经失败的参考码字的软输入、以及在ECC解码处 理中已经失败的目标码字的软输入,基于根据码相关的操作处理,校正目标 码字的解码器输入(操作S142)。
例如,当针对参考码字中的至少一个的ECC解码处理失败时,系统可以 执行操作S142,并且当针对所有参考码字的ECC解码处理成功时,系统可 以通过使用参考码字的解码结果来恢复目标码字。
图29是图28所示的生成校正的目标码字的解码器输入的操作S142的流 程图。
在完成操作S141之后,系统从包括在ECC解码处理中已经成功的参考 码字的解码结果、在ECC解码处理中已经失败的参考码字的软输入、以及在 ECC解码处理中已经失败的目标码字的软输入的码矩阵中,检测不满足码约 束条件的候选码字(操作S142-1)。例如,可以基于多维码来配置码矩阵,如 图2所示。另外,可以通过如上参照图15至图22所描述的方法来检测候选 码字。
系统基于在检测到的候选码字中包括的码比特的可靠性来校正目标码字 的软输入(操作S142-2)。
图30是图29中所示的校正所校正的目标码字的软输入的操作S142-2的 流程图。
在完成操作S142-1之后,系统比较检测到的候选码字单元中码比特的可 靠性的项(操作S142-2A)。
系统基于比较结果来检测候选码字单元中具有最低可靠性的错误候选码 比特(操作S142-2B)。例如,系统可以通过使用包括在候选码字的软输入中 的可靠性比特来检测具有最低可靠性的错误候选码比特。例如,系统可以确 定在其中存在多个具有最低可靠性的码比特的候选码字中没有检测到错误候 选码比特。
系统校正在目标码字的软输入中包括的错误候选码比特(操作 S142-2C)。例如,系统可以通过使用将在目标码字的软输入中包括的错误候 选码比特的符号比特反转的方法来生成校正的目标码字。
图31是示出可以添加到图27的流程图的操作的流程图。
在完成操作S150之后,系统确定目标码字恢复是否已经成功(操作 S160)。换句话说,系统确定针对校正的目标码字的输入的ECC解码处理是 否已经成功。
当确定针对校正的目标码字的输入的ECC解码处理已经失败时,系统执 行附加软判定读取操作(操作S170)。例如,当基于如图10所示的软判定读 取操作获取目标码字的软输入时,可以执行如图11所示的附加软判定读取操 作,以通过可靠性比特来细分可靠性的划分。
在完成执行附加软判定读取操作的操作S170之后,系统执行操作S110 或操作S140。
图32是示出可以添加到图31的流程图的操作的流程图。
当在操作S160中,确定针对校正的目标码字的输入的ECC解码处理已 经成功时,系统将针对已经成功恢复的校正的目标码字的输入的ECC解码结 果写入新的物理地址(操作S180)。
接下来,系统基于已经写入ECC解码结果的新物理地址来更新条带映射 信息(操作S190)。
图33是示出可以添加到图28的流程图的操作的流程图。
在完成操作S141之后,系统基于根据码相关的操作处理,生成针对在 ECC解码处理中已经失败的参考码字的校正的参考码字(操作S143)。可以 以与生成校正的目标码字的操作相同的方式来执行生成校正的参考码字的操 作。
系统再次对校正的参考码字的输入执行ECC解码处理(操作S144)。因 此,可以通过使用校正的参考码字的输入来恢复在ECC解码处理中已经失败 的参考码字。
图34是示出可以添加到图27的流程图的操作的流程图。
在完成操作S150之后,系统通过使用在ECC解码处理中已经成功的校 正的目标码字的解码结果、在ECC解码处理中已经失败的参考码字的软输入、 以及在ECC解码处理中已经成功的目标码字的解码结果,基于根据码相关的 操作处理,生成在ECC解码处理中已经失败的参考码字的校正的解码器输入 (操作S160)。例如,可以以参考图22B描述的方式生成在ECC解码处理中 已经失败的参考码字的校正的解码器输入。
接下来,系统对校正的参考码字的解码器输入再次执行ECC解码处理 (操作S170)。因此,可以通过使用校正的参考码字的解码器输入再次执行 针对在ECC解码处理中已经失败的参考码字的恢复处理。
图35是示出可以添加到图33或图34的流程图的操作的流程图。
在完成操作S144或S170之后,系统将针对已经成功恢复的校正的参考 码字的输入的ECC解码结果写入新的物理地址(操作S145)。
接下来,系统基于写入了ECC解码结果的新物理地址来更新条带映射信 息(操作S146)。
如本领域中传统的,可以按照执行所描述的一个或多个功能的块来描述 和示出实施例。这里可以称为单元或模块等的这些块通过诸如逻辑门、集成 电路、微处理器、微控制器、存储器电路、无源电子部件、有源电子部件、 光学部件、硬连线电路等的模拟和/或数字电路物理地实现,并且可以可选地 由固件和/或软件驱动。电路可以例如被实现在一个或多个半导体芯片中,或 者被实现在诸如印刷电路板等的衬底支撑件上。构成块的电路可以由专用硬 件实现,或由处理器(例如,一个或多个程序化的微处理器和相关联的电路)来实现,或者通过用于执行块的一些功能的专用硬件和用于执行块的其它功 能的处理器的组合来实现。实施例的每个块可以物理上分离成两个或更多个 相互作用和分立的块,而不脱离本公开的范围。同样,实施例的块可以物理 地组合成更复杂的块,而不脱离本公开的范围。
虽然已经参考其实施例具体示出和描述了本公开,但是将理解,可以在 这里进行形式和细节上的各种改变,而不脱离所附权利要求的主旨和范围。

Claims (25)

1.一种恢复数据的方法,所述方法包括:
当针对目标码字的解码器输入的错误校正码(ECC)解码处理已经失败时,从存储器设备读取与目标码字具有码相关的参考码字;
基于使用目标码字和参考码字的操作处理,生成校正的目标码字的解码器输入;以及
对校正的目标码字的解码器输入再次执行ECC解码处理。
2.根据权利要求1所述的方法,其中,所述参考码字包括从与所述目标码字形成相同条带的存储区域读取的码字。
3.根据权利要求1所述的方法,其中,生成校正的目标码字的解码器输入包括:
对参考码字中的每一个执行ECC解码处理;以及
通过使用在ECC解码处理中已经成功的参考码字的解码结果、在ECC解码处理中已经失败的参考码字的软输入、以及在ECC解码处理中已经失败的目标码字的软输入,基于根据所述码相关的操作处理,校正目标码字的解码器输入。
4.根据权利要求3所述的方法,还包括:当针对参考码字中的至少一个的ECC解码处理已经失败时,校正所述目标码字的解码器输入,并且当针对所有参考码字的ECC解码处理成功时,通过使用参考码字的解码结果恢复目标码字。
5.根据权利要求3所述的方法,其中,在所述ECC解码处理中已经失败的参考码字和目标码字中的每一个的软输入包括码比特,所述码比特包含以存储器单元为单位的符号比特和可靠性比特,其中,根据软判定读取操作从存储器设备读取符号比特和可靠性比特。
6.根据权利要求3所述的方法,其中,校正所述目标码字的解码器输入包括:
从包括在ECC解码处理中已经成功的参考码字的解码结果、在ECC解码处理中已经失败的参考码字的软输入、以及在ECC解码处理中已经失败的目标码字的软输入的码矩阵中,检测不满足码约束条件的候选码字;以及
基于包括在候选码字中的码比特的可靠性来校正目标码字的软输入。
7.根据权利要求6所述的方法,还包括:基于所述码矩阵中满足所述码约束条件的码字的可靠性来改变目标码字的软输入的可靠性。
8.根据权利要求6所述的方法,其中,所述码矩阵是基于多维码来配置的。
9.根据权利要求6所述的方法,其中,检测所述候选码字包括:
将在ECC解码处理中已经成功的参考码字的解码结果、在ECC解码处理中已经失败的参考码字的软输入、以及在ECC解码处理中已经失败的目标码字的软输入,排列为在所述码矩阵的第一方向上的码字;以及
将所述码矩阵的第二方向上的、由于针对所述码矩阵的第二方向的奇偶校验而发生错误的码字确定为候选码字。
10.根据权利要求6所述的方法,其中,校正所述目标码字的软输入还包括:
比较候选码字单元中码比特的可靠性的项;
基于所述比较的结果,检测所述候选码字单元中具有最低可靠性的错误候选码比特;以及
校正包括在所述目标码字的软输入中的错误候选码比特。
11.根据权利要求10所述的方法,其中,校正错误候选码比特包括:使包括在所述目标码字中的错误候选码比特的符号比特反转。
12.根据权利要求10所述的方法,其中:
校正目标码字的软输入包括:执行检测在所述码矩阵的第二方向上的候选码字单元中具有最低可靠性的错误候选码比特、并且使在所述码矩阵的第一方向上的目标码字的软输入中包括的错误候选码比特的符号比特反转的操作;以及
将在ECC解码处理中已经成功的参考码字的解码结果、在ECC解码处理中已经失败的参考码字的软输入、以及在ECC解码处理中已经失败的目标码字的软输入排列为所述码矩阵的第一方向上的码字,并且候选码字被确定为在所述码矩阵的第二方向上的、由于针对所述码矩阵的第二方向的奇偶校验而发生错误的码字。
13.根据权利要求10所述的方法,其中,所述候选码字没有多个具有最低可靠性的码比特。
14.根据权利要求3所述的方法,还包括:
通过使用在ECC解码处理中已经成功的参考码字的解码结果、在ECC解码处理中已经失败的参考码字的软输入、以及在ECC解码处理中已经失败的目标码字的软输入,基于根据码相关的操作处理,生成用于在ECC解码处理中已经失败的参考码字的校正的参考码字的解码器输入;以及
对校正的参考码字的解码器输入再次执行ECC解码处理。
15.根据权利要求1所述的方法,还包括:
当对校正的目标码字的解码器输入再次执行的ECC解码处理在数据恢复中成功时,基于根据码相关的操作处理,生成用于在ECC解码处理中已经失败的参考码字的校正的参考码字的解码器输入,所述码相关使用在ECC解码处理中已经成功的校正的目标码字的解码结果、在ECC解码处理中已经成功的参考码字的解码结果、以及在ECC解码处理中已经失败的参考码字的软输入;以及
对校正的参考码字的解码器输入再次执行ECC解码处理。
16.根据权利要求1所述的方法,还包括:
当校正的目标码字的解码器输入包括第一软输入、并且对校正的目标码字的解码器输入再次执行的ECC解码处理在数据恢复中失败时,基于生成指示比第一软输入更细分的可靠性级的可靠性比特的软判定读取操作,获取所述目标码字的第二软输入;以及
基于所述目标码字的第二软输入,针对所述目标码字的恢复处理执行ECC解码。
17.根据权利要求1所述的方法,还包括:
当针对校正的目标码字的解码器输入的ECC解码处理已经成功时,将针对校正的目标码字的解码器输入的ECC解码结果写入所述存储器设备的新的物理地址中,其中
基于已经写入针对所述解码器输入的ECC解码结果的新的物理地址,更新条带映射信息。
18.根据权利要求1所述的方法,其中所述ECC解码处理包括使用低密度奇偶校验(LDPC)码、Bose-Chaudhuri-Hocquenghem(BCH)码、turbo码或卷积码的解码处理。
19.一种廉价盘冗余阵列(RAID)存储系统,包括:
多个存储设备;以及
RAID控制器,被配置为当针对从所述多个存储设备之中的形成相同条带的两个或更多个存储设备读取的码字的错误校正码(ECC)解码处理失败时,通过使用从在ECC解码处理中已经失败的存储设备接收的软输入、以及从在ECC解码处理中已经成功的存储设备接收的解码结果,基于根据码相关的操作处理,校正在ECC解码处理中已经失败的码字的软输入,并且对所述码字的校正的软输入执行ECC解码处理。
20.一种存储器系统,包括:
非易失性存储器系统;以及
存储器控制器,其:
执行对由非易失性存储器系统存储的、通过应用错误校正码(ECC)解码不能正确解码的目标码字的软读取,
执行由非易失性存储器系统存储的、通过应用ECC解码不能正确解码的第一参考码字的软读取,
识别不满足码约束的候选码字,所述候选码字包括来自目标码字的软读取、第一参考码字的软读取以及通过应用ECC解码能正确解码的第二参考码字中的每一个的数据,
改变归于目标码字的软读取内的数据单元的数据值,使得候选码字满足码约束,从而创建目标码字的修改的软读取;以及
将所述ECC解码应用于所述目标码字的所述修改的软读取。
21.根据权利要求20所述的存储器系统,其中,所述码约束为偶数奇偶校验的存在性。
22.根据权利要求20所述的存储器系统,其中,所述目标码字、第一参考码字和第二参考码字中的每一个由所述非易失性存储器系统内的不同存储器裸片、平面、块、页、扇区或芯片存储。
23.根据权利要求20所述的存储器系统,其中,所述目标码字与所述第一和第二参考码字具有码相关。
24.根据权利要求20所述的存储器系统,其中,所述目标码字的软读取向归于所述目标码字的每个数据单元的数据值分配可靠性指示符,所述可靠性指示符识别归于数据单元的数据值正确的可能性。
25.根据权利要求24所述的存储器系统,其中,分配给改变的数据值的可靠性指示符识别分配给候选码字的数据单元的可靠性指示符之中的可靠性的最低可能性。
CN201710544300.XA 2016-06-30 2017-06-30 恢复数据的方法和使用该方法的存储器系统和raid存储系统 Active CN107643958B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020160082977A KR102673873B1 (ko) 2016-06-30 데이터 복구 방법 및 이를 적용하는 메모리 시스템 및 레이드 스토리지 시스템
KR10-2016-0082977 2016-06-30

Publications (2)

Publication Number Publication Date
CN107643958A true CN107643958A (zh) 2018-01-30
CN107643958B CN107643958B (zh) 2022-11-08

Family

ID=60807461

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710544300.XA Active CN107643958B (zh) 2016-06-30 2017-06-30 恢复数据的方法和使用该方法的存储器系统和raid存储系统

Country Status (2)

Country Link
US (1) US10846174B2 (zh)
CN (1) CN107643958B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190019728A (ko) * 2017-08-18 2019-02-27 에스케이하이닉스 주식회사 에러 정정 회로, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치
US10824502B2 (en) * 2018-08-08 2020-11-03 Micron Technology, Inc. Enhanced codeword for media persistence and diagnostics
KR102654297B1 (ko) * 2018-08-27 2024-04-04 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
KR20200058027A (ko) 2018-11-19 2020-05-27 삼성전자주식회사 Ecc 회로를 포함하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 시스템의 에러 정정 방법
US11057060B1 (en) * 2020-03-23 2021-07-06 Sage Microelectronics Corporation Method and apparatus for matrix flipping error correction
US11474920B2 (en) 2020-03-31 2022-10-18 International Business Machines Corporation Dynamic mapping of logical to physical memory for increased performance
US11170869B1 (en) 2020-06-04 2021-11-09 Western Digital Technologies, Inc. Dual data protection in storage devices
JP2022044286A (ja) * 2020-09-07 2022-03-17 キオクシア株式会社 メモリシステム
US11762735B2 (en) 2021-10-01 2023-09-19 Western Digital Technologies, Inc. Interleaved ECC coding for key-value data storage devices
US11934264B2 (en) 2021-11-22 2024-03-19 Western Digital Technologies, Inc. ECC parity biasing for Key-Value data storage devices

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101510448A (zh) * 2008-02-14 2009-08-19 爱特梅尔公司 用于存储器的错误检测/校正方案
US20110047439A1 (en) * 2009-08-20 2011-02-24 Broadcom Corporation Soft error rate protection for memories
US20110209031A1 (en) * 2010-02-25 2011-08-25 Yong June Kim Methods of Performing Error Detection/Correction in Nonvolatile Memory Devices
US20120060071A1 (en) * 2010-09-03 2012-03-08 Snu R&Db Foundation Product code decoding method and device
CN105144115A (zh) * 2013-03-15 2015-12-09 乔纳森·坎特 组合的Turbo解码和Turbo均衡技术
CN105529049A (zh) * 2014-10-21 2016-04-27 爱思开海力士有限公司 控制器、半导体存储系统、数据储存系统及其操作方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5357471A (en) * 1992-03-20 1994-10-18 National Semiconductor Corporation Fault locator architecture and method for memories
JP3154607B2 (ja) 1993-12-28 2001-04-09 三菱電機株式会社 誤り訂正復号装置及び誤り訂正復号方法
US6526531B1 (en) 2000-03-22 2003-02-25 Agere Systems Inc. Threshold detection for early termination of iterative decoding
US6865708B2 (en) 2000-08-23 2005-03-08 Wang Xiao-An Hybrid early-termination methods and output selection procedure for iterative turbo decoders
WO2002078196A1 (en) * 2001-03-22 2002-10-03 University Of Florida Method and coding means for error-correction utilizing concatenated parity and turbo codes
US8046660B2 (en) * 2006-08-07 2011-10-25 Marvell World Trade Ltd. System and method for correcting errors in non-volatile memory using product codes
US8458574B2 (en) * 2009-04-06 2013-06-04 Densbits Technologies Ltd. Compact chien-search based decoding apparatus and method
US8869000B2 (en) 2011-01-31 2014-10-21 Marvell World Trade Ltd. Methods and systems for efficient decoding of concatenated error correction codes
US8788922B2 (en) * 2011-02-28 2014-07-22 Apple Inc Error correction codes for incremental redundancy
US8671326B1 (en) * 2011-05-16 2014-03-11 Sk Hynix Memory Solutions Inc. Concatenated codes for recovering stored data
WO2013147775A1 (en) * 2012-03-28 2013-10-03 Intel Corporation Reconstructing codewords using a side channel
US9053047B2 (en) 2012-08-27 2015-06-09 Apple Inc. Parameter estimation using partial ECC decoding
US9191256B2 (en) * 2012-12-03 2015-11-17 Digital PowerRadio, LLC Systems and methods for advanced iterative decoding and channel estimation of concatenated coding systems
US9870284B2 (en) * 2015-05-27 2018-01-16 International Business Machines Corporation First responder parities for storage array

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101510448A (zh) * 2008-02-14 2009-08-19 爱特梅尔公司 用于存储器的错误检测/校正方案
US20110047439A1 (en) * 2009-08-20 2011-02-24 Broadcom Corporation Soft error rate protection for memories
US20110209031A1 (en) * 2010-02-25 2011-08-25 Yong June Kim Methods of Performing Error Detection/Correction in Nonvolatile Memory Devices
US20120060071A1 (en) * 2010-09-03 2012-03-08 Snu R&Db Foundation Product code decoding method and device
CN105144115A (zh) * 2013-03-15 2015-12-09 乔纳森·坎特 组合的Turbo解码和Turbo均衡技术
CN105529049A (zh) * 2014-10-21 2016-04-27 爱思开海力士有限公司 控制器、半导体存储系统、数据储存系统及其操作方法

Also Published As

Publication number Publication date
US10846174B2 (en) 2020-11-24
US20180004601A1 (en) 2018-01-04
CN107643958B (zh) 2022-11-08
KR20180003320A (ko) 2018-01-09

Similar Documents

Publication Publication Date Title
CN107643958A (zh) 数据恢复方法和使用其的存储器系统和raid存储系统
US10218789B2 (en) Erasure correcting coding using temporary erasure data
US9996285B2 (en) Cyclically interleaved XOR array for error recovery
US10635585B2 (en) On-chip copy with data folding in three-dimensional non-volatile memory array
CN107305791B (zh) 存储装置和存储系统
CN108694097B (zh) 存储设备的不同存储器区域中编程数据的多码本的使用方法及装置
US9411679B2 (en) Code modulation encoder and decoder, memory controller including them, and flash memory system
CN109428606B (zh) 具有ldpc解码器的存储器系统及其操作方法
CN108694099B (zh) 确定用于储存器设备的不同的存储器区域的码本的方法和系统
CN104733046A (zh) 非易失性存储装置的擦除方法及应用该方法的存储装置
US10706944B2 (en) Memory controller for controlling memory device based on erase state information and method of operating the memory controller
JP2006114078A (ja) 不揮発性半導体記憶装置及びその動作方法
CN108022611A (zh) 存储系统及其操作方法
CN106663463A (zh) 存储器裸芯的NAND闪存存储器与ReRAM之间的数据的芯片上复制
JP2016506590A (ja) データストレージシステムのための対数尤度比及び一括対数尤度比生成
US20200142744A1 (en) Logical address distribution in multicore memory system
CN105122372A (zh) 用于在三维非易失性存储器中的冗余计算的数据的选择
CN113053441A (zh) 存储装置和存储装置的操作方法
CN104733051B (zh) 奇偶校验码的解码方法、存储器储存装置及控制电路单元
CN105304142B (zh) 解码方法、存储器存储装置及存储器控制电路单元
CN105280232A (zh) 半导体存储器器件和存储器系统
CN104103318A (zh) 操作存储控制器的方法和包括存储控制器的数据存储设备
KR20200079811A (ko) 오류 정정 장치, 이의 동작 방법 및 이를 이용하는 메모리 시스템
KR20210092986A (ko) 스토리지 컨트롤러, 이를 포함하는 스토리지 시스템 및 스토리지 컨트롤러의 동작 방법
KR102673873B1 (ko) 데이터 복구 방법 및 이를 적용하는 메모리 시스템 및 레이드 스토리지 시스템

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