CN112017724A - 存储系统和在存储系统中纠正错误的方法 - Google Patents

存储系统和在存储系统中纠正错误的方法 Download PDF

Info

Publication number
CN112017724A
CN112017724A CN201911297911.4A CN201911297911A CN112017724A CN 112017724 A CN112017724 A CN 112017724A CN 201911297911 A CN201911297911 A CN 201911297911A CN 112017724 A CN112017724 A CN 112017724A
Authority
CN
China
Prior art keywords
reliability
symbol
symbols
logical
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201911297911.4A
Other languages
English (en)
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.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN112017724A publication Critical patent/CN112017724A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/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/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/1044Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30029Logical and Boolean instructions, e.g. XOR, NOT
    • 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
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • 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/154Error and erasure correction, e.g. by using the error and erasure locator or Forney polynomial
    • 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/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
    • 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

Abstract

本发明公开一种存储系统和在存储系统中纠正错误的方法。一种存储系统,包括里德-所罗门(RS)解码器、可靠性跟踪电路和擦除控制电路。RS解码器执行从存储介质输出的“K”个符号的纠错解码操作。可靠性跟踪电路根据由RS解码器执行的纠错解码操作而生成并储存关于符号的可靠性的信息,这些符号的错误发生可能性被区分为多个不同的等级。擦除控制电路控制RS解码器,以使得按照从低可靠性符号到高可靠性符号的符号可靠性的顺序来擦除符号,并且根据储存在可靠性跟踪电路中的关于符号可靠性的信息来执行纠错解码操作。

Description

存储系统和在存储系统中纠正错误的方法
相关申请的交叉引用
本申请要求于2019年5月29日提交的韩国专利申请No.10-2019-0063100的优先权,其全部内容通过引用合并于此。
技术领域
所公开技术的各种实施方式一般地涉及存储系统,更具体地涉及存储系统和在存储系统中纠正错误的方法。
背景技术
通常,传输信息的路径被称为信道。当使用电缆通信来传输信息时,用来传输信息的传输线可以用作信道。当使用无线通信传输信息时,该信道可以是空气,包含信息的电磁波在空气中传播。用于将数据储存到存储器件中以及从存储器件中读取数据的处理可以通过信道执行。
在通过信道传输数据时,数据中可能包含错误。因此,长期以来一直致力于开发用于从错误数据中检测错误并消除检测到的错误,以将错误数据恢复为其原始数据的装置和方法。纠错码(ECC)编码操作和ECC解码操作已在包括存储器件的存储系统中广泛使用。ECC编码操作可以对应于通过在传输原始数据之前向原始数据(即,写入数据)添加错误控制码(或纠错码)来生成传输数据的处理。ECC解码操作可以对应于执行读取操作以读取储存在存储器件中的数据、并将被读取的数据分离成原始数据和所添加的码以将被读取的数据恢复成原始数据的处理。
发明内容
根据一个实施方式,一种存储系统包括里德-所罗门(RS)解码器、可靠性跟踪电路和擦除控制电路。RS解码器可以配置为对从存储介质输出的“K”个符号执行纠错解码操作(其中,“K”表示自然数)。可靠性跟踪电路可以配置为根据由RS解码器执行的纠错解码操作来生成并储存关于符号的可靠性的信息,这些符号的错误发生可能性被划分为多个不同的等级。擦除控制电路可以配置为控制RS解码器,以使得按照从低可靠性符号到高可靠性符号的符号可靠性的顺序来擦除符号,并且根据关于储存在可靠性跟踪电路中的符号的可靠性的信息来执行纠错解码操作。
根据另一个实施方式,提供了一种在存储系统中纠正错误数据的方法。该方法可以包括:根据从存储介质输出的符号的里德-所罗门(RS)解码操作的结果来生成并储存关于符号的可靠性的信息,这些符号的错误发生可能性被区分为多个不同的等级。可以按照从低可靠性符号到高可靠性符号的符号可靠性的顺序擦除符号,而且可以根据关于符号的可靠性的信息来执行RS解码操作。
附图说明
参照附图通过各种实施方式说明所公开技术的某些特征,其中:
图1是示出根据本发明的一个实施方式的存储系统的示例的框图;
图2是示出根据本发明的一个实施方式的存储系统中包括的存储介质的配置的示意图;
图3是示出根据本发明的一个实施方式的存储系统中包括的纠错码(ECC)解码器的配置的示意图;
图4是示出根据本发明的一个实施方式的存储系统中包括的可靠性跟踪电路的第一可靠性跟踪表的示意图;
图5是示出根据本发明的一个实施方式的存储系统中包括的可靠性跟踪电路的第二可靠性跟踪表的示意图;
图6至图8示出根据本发明的一个实施方式的、用于在存储系统中跟踪具有最低可靠性的符号的处理的示例;
图9至图11示出根据本发明的一个实施方式的、用于在存储系统中跟踪具有疑似可靠性的符号的处理的示例;
图12示出根据本发明的一个实施方式的、用于在存储系统中跟踪具有最高可靠性的符号的处理的示例;
图13是示出在图6至图12所示的符号跟踪处理期间被输入到擦除控制电路的符号的可靠性分布的表格;
图14示出相对于图13中所示的符号的可靠性分布的、基于擦除的软判决解码操作的示例;
图15示出相对于图13中所示的符号的可靠性分布的、基于擦除的软判决解码操作的另一示例;以及
图16是示出根据本发明的一个实施方式的在存储系统中纠正错误的方法的流程图。
具体实施方式
在以下的实施方式的描述中,可以理解,术语“第一”和“第二”旨在标识元件,而不是用于仅定义元件本身或表示特定顺序。另外,当元件被称为位于另一元件“上”,“之上”,“上方”,“下”或“下方”时,其旨在指相对位置关系,而不是用来限定某些情形,即该元件直接接触另一元件,或者在它们之间存在至少一个中间元件。因此,本文中使用的术语如“在…上”、“在…之上”、“在…上方”、“在…下”、“在…下方”、“在…之下”等仅出于描述特定实施方式的目的,而无意于限制本发明的范围。而且,当一个元件被称为与另一个元件“连接”或“耦接”时,该元件可以与另一个元件直接电气或机械地连接或耦接,或者也可以通过取代它们之间的另一个元件而形成连接关系或耦接关系。
Reed-Solomon(里德-所罗门,简称RS)解码方法可以使用纠错码(ECC)以符号为单位纠正错误。通常,RS解码方法可以分为两类。一种是基于数学规则的RS硬判决解码(以下称为“RS-HDD”)方法,另一种是基于符号的可靠性信息的RS软判决解码(以下称为“RS-SDD”)方法。RS-HDD方法可以使用数学算法,比如Berlekamp-Messey算法(BMA)、Chien-Search(CS)算法或Forney-Method(FM)算法,而且可纠正符号的数量可以通过数学规则确定。相比而言,根据RS-SDD方法,不是确定可纠正符号的数量,而是根据各种条件确定可纠正符号的概率分布。因此,在RS-SDD方法的情况下,可以使用与构成码字的符号的可靠性有关的信息。码字可以定义为应用了ECC的数据的单位。
RS擦除方法可以用作用于有效执行固定错误纠正操作的RS-HDD的手段。RS擦除方法可以是如下一种算法,该算法在错误符号的位置已知的情况下使用。因此,在使用RS擦除方法的情况下,可以仅使用一个用于发现错误的奇偶校验符号。例如,下面描述RS(32、24)的情形,即,码字包括三十二个符号(包括二十四个数据符号和八个奇偶校验符号)的情形。因为奇偶校验符号的数量是八个,所以在错误的位置和值未知时(即,在必须纠正随机错误符号时),可以使用两个奇偶校验符号来获得错误的位置和值。因此,可以纠正四个错误符号。但是,在两个错误的位置已知的情况下,可以仅使用两个奇偶校验符号来纠正两个固定错误符号。因此,有可能使用剩余的六个奇偶校验符号来纠正三个随机错误符号。因此,在这种情况下,有可能可以纠正总共五个错误符号。类似地,当四个错误的位置已知时,则有可能可以纠正总共六个错误符号(包括四个固定错误符号和两个随机错误符号)。
根据本发明的各种实施方式,可以提供这样的存储系统以及在存储系统中纠正错误符号的方法,该存储系统能够通过使用RS-SDD方法纠正错误,该RS-SDD方法通过改变固定错误符号的位置和数量来反复执行RS-HDD方法。为了改变固定错误符号的位置和数量,可以改变要擦除的符号的位置和数量。在这种情况下,可以通过在对要擦除的符号排序时使用关于符号的可靠性的信息来提高RS-SDD方法的效率。可以通过在使用RS-HDD方法时执行可靠性跟踪操作来生成关于符号的可靠性的信息。下面,参照附图来描述用于跟踪符号的可靠性的处理和用于使用该跟踪处理来纠正错误的处理。
图1是示出根据本发明的一个实施方式的存储系统10的框图。参照图1,存储系统10可以配置为包括:主机100、存储介质200和存储器控制器300。主机100可以向存储器控制器300传送写入数据WD,或者可以从存储器控制器300接收解码的读取数据RD_D。主机100还可以将用于访问存储介质200的各种命令传送到存储器控制器300。存储介质200可以包括易失性存储器件,比如动态随机存取存储器(DRAM)器件。存储介质200还可以包括非易失性存储器件,比如闪存器件、相变存储器(PCRAM)器件、电阻式存储器(ReRAM)器件、铁电存储器(FeRAM)器件或磁存储器(MRAM)器件。
存储器控制器300可以响应于从主机100输出的命令而执行用于访问存储介质200的操作。存储器控制器300可以包括ECC电路301。ECC电路301可以包括RS编码器302和ECC解码器303。在一个实施方式中,ECC解码器303可以包括RS解码器310、可靠性跟踪电路(RTC)320和擦除控制电路330。在存储介质200的写入操作期间,RS编码器302可以对从主机100输出的写入数据WD执行RS编码操作,以生成包括数据符号和奇偶校验符号的码字(即,编码的写入数据WD_E)。存储器控制器300可以执行用于将编码的写入数据WD_E写入存储介质200中的操作。在存储介质200的读取操作期间,RS解码器310可以执行对从存储介质200中读取的读取数据RD的RS解码操作,以输出解码的读取数据RD_D,在读取数据RD是错误数据时该解码的读取数据RD_D的错误被纠正。存储器控制器300可以将解码的读取数据RD_D传送到主机100。
在由RS解码器310执行RS解码操作时,可靠性跟踪电路(RTC)320可以生成并储存关于符号的可靠性的信息。关于符号的可靠性的信息可以被定义为用于将符号区分为表示错误发生可能性的多个不同等级的信息。在一个实施方式中,每一个符号可以被分类成最不可靠的符号(以下称为“LRS”)、疑似可靠的符号(以下称为“SRS”)和最可靠的符号(以下称为“MRS”)中的任一种。在错误符号未被RS解码方法纠正时,擦除控制电路330可以控制RS解码器310,以使得根据储存在可靠性跟踪电路(RTC)320中的可靠性信息来执行基于RS擦除的RS-HDD操作。基于RS擦除的RS-HDD操作可以被定义为这样的处理:在按照从低可靠性符号到高可靠性符号的符号可靠性的顺序来擦除符号时,反复地执行RS解码操作直到纠正了错误为止。
图2是示出图1的存储系统10中包括的存储介质200的配置的示意图。参照图2,存储介质200可以包括多个存储体,例如,十六个存储体(即,第一至第十六存储体BANK0、…、BANK14和BANK15)。在一个实施方式中,存储介质200可以被实现为具有存储芯片的形式。在这种情况下,存储介质200可以被实现为具有包括多个存储芯片的存储模块的形式。第一至第十六存储体BANK0、…、BANK14和BANK15中的每一个存储体可以包括以行和列排列的多个矩阵MAT。每一个矩阵MAT可以具有单元阵列结构,在单元阵列结构中排列有多个存储单元。排列在一行的矩阵MAT可以具有相同的行地址。例如,排列在第一至第十六存储体BANK0、…、BANK14和BANK15的第一行中的矩阵可以具有第一行地址WL0,排列在第一至第十六存储体BANK0、…、BANK14和BANK15的第二行中的矩阵可以具有第二行地址WL1。类似地,排列在第一至第十六存储体BANK0、…、BANK14和BANK15的第三行中的矩阵可以具有第三行地址WL2,排列在第一至第十六存储体BANK0、…、BANK14和BANK15的第四行中的矩阵可以具有第四行地址WL3。第一至第四行地址WL0-WL3中的每一个行地址可以包括字线地址,该字线地址能够指定矩阵MAT中的存储单元之中的排列在一行的存储单元。
在第一存储体BANK0至第十六存储体BANK15中的每一个存储体中具有相同行地址的矩阵MAT中的彼此相邻的八个矩阵(即,第一矩阵M0至第八矩阵M7)可以构成一个矩阵组MG。每一个矩阵组MG可以通过一个数据输入/输出(I/O)引脚DQ接收或输出数据。在一个实施方式中,存储介质200可以具有“K”个数据I/O引脚,例如,十六个数据I/O引脚(即,左存储体BANK_L的第一数据I/O引脚DQ0至第八数据I/O引脚DQ7,右存储体BANK_R的第一数据I/O引脚DQ0至第八数据I/O引脚DQ7),其中,数字“K”表示自然数。一个数据I/O引脚DQ可以接收或输出“N”比特的数据,例如,对应于突发长度BL为“8”的8比特数据,其中,数字“N”表示自然数。由于从一个矩阵MAT输出或输入1比特数据,因此可以通过一个数据I/O引脚DQ传输8比特数据。通过一个数据I/O引脚DQ输出的8比特数据(即,从一个矩阵组MG输出的8比特数据)可以构成一个RS符号。例如,第一存储体BANK0的共享第四行地址WL3的矩阵中的彼此相邻的第一矩阵M0至第八矩阵M7可以构成一个矩阵组MG。因为从构成一个矩阵组MG的第一矩阵M0至第八矩阵M7中的每一个矩阵输出1比特数据,所以可以通过第一数据I/O引脚DQ0输出8比特数据。通过第一数据I/O引脚DQ0输出的8比特数据可以构成第一RS符号SB0。
在本实施方式中,存储体BANK0、…、BANK14和BANK15中的每一个存储体中的矩阵可以通过垂直虚线分成两组,以提供左存储体BANK_L和右存储体BANK_R。左存储体BANK_L可以包括八个矩阵组,从与第一数据I/O引脚DQ0连接的第一矩阵组到与第八数据I/O引脚DQ7连接的第八矩阵组,这八个矩阵组依次设置。右存储体BANK_R也可以包括八个矩阵组,从与另一个第八数据I/O引脚DQ7连接的第八矩阵组到与另一个第一数据I/O引脚DQ0连接的第一矩阵组,这八个矩阵组依次设置。由此,可以通过八个数据I/O引脚DQ0-DQ7从左存储体BANK_L输出64比特数据。从左存储体BANK_L输出的64比特数据可以构成八个RS符号(即,第一RS符号SB0至第八RS符号SB7)。类似地,可以通过其他八个数据I/O引脚DQ0-DQ7从右存储体BANK_R输出64比特数据。从右存储体BANK_R输出的64比特数据可以构成八个RS符号SB8-SB15(即,第九RS符号SB8至第十六RS符号SB15)。总体上,可以通过单次读取操作从存储介质200输出“K×N”比特的数据,即128比特数据,该128比特数据可以构成十六个RS符号(即,第一RS符号SB0至第十六RS符号SB15)。
图3是示出图1的存储系统10中包括的ECC解码器303的配置的示意图。参照图3,ECC解码器303可以配置为包括RS解码器310、RTC 320和擦除控制电路330。RS解码器310可以对从存储介质(图1的200)输出的读取数据RD(即,码字)执行RS解码操作。在一个实施方式中,如参照图2所描述的,当从存储介质200输出128比特数据(即16个RS符号)时,输入到RS解码器310的读取数据RDATA可以包括构成16个RS符号的16字节数据(即,128比特数据)。另外,读取数据RDATA可以进一步包括构成奇偶校验符号的数据。RS解码器310可以输出解码的读取数据RD_D,其错误由RS解码操作来纠正。RS解码器310可以配置为执行RS-HDD操作。尽管在附图中未示出,但是RS解码器310可以配置为包括校正子(syndrome)运算元件、错误位置多项式运算元件、错误位置运算元件和错误纠正运算元件。由于RS解码器310的配置在本领域中是众所周知的,因此在下文中将省略对RS解码器310的额外描述。
可以通过RS解码器310的RS-HDD操作纠正一定数量的错误符号。例如,如果纠错能力为“10”,则仅可以纠正十个或更少的错误符号,而不能纠正十一个或更多的错误符号。RS解码器310可以输出错误代码ERRATA_CODE,其包含与由RS-HDD操作生成的错误有关的信息。错误代码ERRATA_CODE可以包括具有与读取数据RDATA相同的比特数的二进制流。例如,如果读取数据RDATA具有128比特,则错误代码ERRATA_CODE也可以包括具有128比特的二进制流。错误代码ERRATA_CODE可以具有以8比特为单位的相同比特值。例如,当第一符号SB0中存在错误时,错误代码中的与第一符号SB0相对应的8比特二进制流可以包括具有比特值为“1”的8个比特。相反,当第一符号SB0中不存在错误时,错误代码中的与第一符号SB0相对应的8比特二进制流可以包括具有比特值为“0”的8个比特。
RTC 320可以配置为包括跟踪控制器321、第一可靠性跟踪表322、第二可靠性跟踪表323、第一逻辑运算元件324、第二逻辑运算元件325和第三逻辑运算元件326。跟踪控制器321可以从RS解码器310接收错误代码ERRATA_CODE,以辨别是否必须执行可靠性跟踪处理。如果必须执行可靠性跟踪处理,则跟踪控制器321可以输出矩阵组地址MAT_GROUP_ADDR和包括矩阵组MG的错误位置的错误位置数据。矩阵组地址MAT_GROUP_ADDR可以被输入到第一可靠性跟踪表(RTT_AND)322和第二可靠性跟踪表(RTT_OR)323中。错误位置数据可以被输入到第一逻辑运算元件324的一个输入端子(例如,第一输入端子)和第二逻辑运算元件325的一个输入端子(例如,第一输入端子)这两者。错误位置数据可以包括二进制流,在该二进制流中每一个矩阵组MG的错误位置用一个比特值表示。因为从一个矩阵组MG输出的数据构成一个符号,所以错误位置数据可以包括该符号的错误位置。在一个实施方式中,当读取数据RDATA具有128比特时,错误位置数据可以包括16比特二进制流。
第一可靠性跟踪表(RTT_AND)322可以包括其中存储有第一可靠性信息的存储介质,第二可靠性跟踪表(RTT_OR)323可以包括其中存储有第二可靠性信息的存储介质。第一可靠性信息可以定义为关于LRS的位置的信息。第二可靠性信息可以定义为关于SRS的位置的信息。针对存储介质(图1的200)中的每一个矩阵组MG,第一可靠性信息和第二可靠性信息每个都可以包括1比特的值。因此,第一可靠性跟踪表(RTT_AND)322和第二可靠性跟踪表(RTT_OR)323每个都可以具有与存储介质(图1中的200)中的矩阵组(即,符号)相同比特数的存储容量。在第一可靠性跟踪表(RTT_AND)322中的比特值之中,从跟踪控制器321输出的具有矩阵组地址MAT_GROUP_ADDR的比特值可以被输入到第一逻辑运算元件324的另一个输入端子(例如,第二输入端子)。在第二可靠性跟踪表(RTT_OR)323中的比特值之中,从跟踪控制器321输出的具有矩阵组地址MAT_GROUP_ADDR的比特值可以被输入到第二逻辑运算元件325的另一个输入端子(例如,第二输入端子)。
可以使用逻辑与门实现第一逻辑运算元件324。可以使用逻辑或门实现第二逻辑运算元件325。可以使用逻辑或非门实现第三逻辑运算元件326。作为替代方案,可以使用逻辑与非门实现第三逻辑运算元件326。第一逻辑运算元件324可以对从跟踪控制器321输出的错误位置数据和从第一可靠性跟踪表(RTT_AND)322输出的第一可靠性信息的比特值进行逻辑与运算,以生成并输出第一可靠性信息的更新的信息。从第一逻辑运算元件324输出的更新的第一可靠性信息可以被输入到第一可靠性跟踪表(RTT_AND)322。第一可靠性跟踪表(RTT_AND)322可以用从第一逻辑运算元件324输出的更新后的第一可靠性信息来替换当前储存在其中的第一可靠性信息。第二逻辑运算元件325可以对从跟踪控制器321输出的错误位置数据和从第二可靠性跟踪表(RTT_OR)323输出的第二可靠性信息的比特值进行逻辑或运算,以生成并输出第二可靠性信息的更新后的信息。从第二逻辑运算元件325输出的更新后的第二可靠性信息可以被输入到第二可靠性跟踪表(RTT_OR)323。第二可靠性跟踪表(RTT_OR)323可以用从第二逻辑运算元件325输出的更新后的第二可靠性信息来替换当前储存在其中的第二可靠性信息。
第一可靠性跟踪表(RTT_AND)322中的更新后的第一可靠性信息和第二可靠性跟踪表(RTT_OR)323中的更新后的第二可靠性信息可以被输入到擦除控制电路330以及第三逻辑运算元件326。更新后的第一可靠性信息可以包括对于每一个符号具有比特值“0”或“1”的二进制流,而且可以将具有比特值“1”的符号归类到LRS。更新后的第二可靠性信息也可以包括对于每一个符号具有比特值“0”或“1”的二进制流,而且可以将具有比特值“1”的符号归类到SRS。第三逻辑运算元件326可以对更新后的第一可靠性信息和更新后的第二可靠性信息执行逻辑或非运算,而且可以将逻辑或非运算的结果输出到擦除控制电路330。第三逻辑运算元件326的输出数据也可以包括对于每一个符号具有比特值“0”或“1”的二进制流,而且可以将具有比特值“1”的符号归类到MRS。在另一实施方式中,当使用逻辑与非门实现第三逻辑运算元件326时,可以将第三逻辑运算元件326的输出数据中的具有比特值“0”的符号归类到MRS。
擦除控制电路330可以基于从第一可靠性跟踪表(RTT_AND)322输出的更新后的第一可靠性信息、从第二可靠性跟踪表(RTT_OR)323输出的更新后的第二可靠性信息、以及从第三逻辑运算元件326输出的输出数据,按照从低可靠性符号到高可靠性符号的符号可靠性的顺序(即,按照LRS、SRS和MRS的顺序),对符号进行排序。此外,擦除控制电路330可以控制RS解码器310,以使得执行RS-SDD操作以按照LRS、SRS和MRS的顺序来擦除和纠正符号。RS解码器310可以响应于擦除控制电路330的控制信号,与增加被擦除符号的数量一起,反复地执行RS解码操作,直到错误被纠正为止。
图4是示出图1的存储系统10中包括的可靠性跟踪电路(RTC)320的第一可靠性跟踪表322的示意图。参照图4,第一可靠性跟踪表322可以包括多个第一条目ENTRY1。第一条目ENTRY1的数量可以与存储介质200的行地址的总数相等。例如,当如参照图2所描述的,当存储介质200配置为包括第一存储体BANK0至第十六存储体BANK15、每一个存储体具有四个行地址时,可以在第一可靠性跟踪表322中设置64个第一条目ENTRY1。每一个第一条目ENTRY1可以包括与具有相同矩阵组地址MG_ADDR的矩阵组MG(即,符号)有关的第一可靠性信息。第一可靠性信息可以包括具有“K”个比特的第一二进制流,其数量等于存储介质200中的符号(即,数据I/O引脚DQ)的数量。例如,如参照图2所描述的,当通过16个数据I/O引脚DQ从存储介质200输出128比特的数据(即16个符号)时,每一个第一条目ENTRY1可以包括具有16个比特的第一二进制流(即第一16比特二进制流)。在一个实施方式中,由图4中的虚线表示的第一条目ENTRY1中的第一个第一条目ENTRY1可以具有如下矩阵组地址MG_ADDR,该矩阵组地址MG_ADDR与存储介质200的第一存储体BANK0的第四行地址WL3相对应。也就是说,构成第一条目ENTRY1中的第一个第一条目ENTRY1的二进制流“00…10…00”的比特值可以分别表示与具有存储介质200的第一存储体BANK0的第四行地址WL3的矩阵组MG(即,符号)有关的第一可靠性信息。在本实施方式中,与第一条目ENTRY1中的第一个第一条目ENTRY1相对应的第一二进制流中的具有比特值“1”的第八符号SB7可以被归类到LRS。
图5是示出图1的存储系统10中包括的可靠性跟踪电路320的第二可靠性跟踪表323的示意图。第二可靠性跟踪表323可以具有与第一可靠性跟踪表322相同的配置,只是第二可靠性跟踪表323中储存的比特值可以与第一可靠性跟踪表322中储存的比特值不同。参照图5,第二可靠性跟踪表323可以包括多个第二条目ENTRY2。第二条目ENTRY2的数量可以与存储介质200的行地址的总数相等。每一个第二条目ENTRY2可以包括与具有相同的矩阵组地址MG_ADDR的矩阵组MG(即,符号)有关的第二可靠性信息。第二可靠性信息可以包括具有“K”个比特的第二二进制流,其数量等于存储介质200中的符号(即,数据I/O引脚DQ)的数量。例如,如参照图2所描述的,当通过16个数据I/O引脚DQ从存储介质200输出128比特数据(即16个符号)时,每一个第二条目ENTRY2可以包括具有16个比特的第二二进制流(即第二16比特二进制流)。在一个实施方式中,由图5中的虚线表示的第二条目ENTRY2中的第一个第二条目ENTRY2可以具有与存储介质200的第一存储体BANK0的第四行地址WL3相对应的矩阵组地址MG_ADDR。也就是说,构成第二条目ENTRY2中的第一个第二条目ENTRY2的二进制流“00…00…11”的比特值可以分别表示与具有存储介质200的第一存储体BANK0的第四行地址WL3的矩阵组MG(即,符号)有关的第二可靠性信息。在本实施方式中,与第二条目ENTRY2中的第一个第二条目ENTRY2相对应的第二二进制流中的具有比特值“1”的第九符号SB8和第十符号SB9可以被归类到SRS。
图6至图8示出用于在图1的存储系统10中跟踪最不可靠的符号(LRS)的处理的示例。首先,如图6所示,下面将结合一个示例来描述用于在存储系统10中跟踪最不可靠的符号(LRS)的处理,在该示例中,具有与存储介质200的第一存储体BANK0的第一行地址WL0相对应的矩阵组地址MG_ADDR的第一条目ENTRY1包括二进制流“0101100010000000”。尽管第一条目ENTRY1由二进制流表示,但是构成第一条目ENTRY1的二进制流的每一个比特值可以表示关于第一符号SB0至第十六符号SB15中的每一个符号的第一可靠性信息。在本实施方式中,在具有存储介质200中的存储体BK0的第一行地址WL0的第一符号SB0至第十六符号SB15中,具有比特值“1”的第二符号SB1、第四符号SB3、第五符号SB4和第十六符号SB15可以被归类到最不可靠的符号(LRS)。
在上述状态下,可以将具有存储介质200中的第一存储体BK0的第一行地址WL0的第一符号SB0至第十六符号SB15的错误位置数据从跟踪控制器321传送至第一逻辑运算元件324的第一输入端子,如图7所示。在错误位置数据中,错误符号可以具有比特值“1”,而正常符号可以具有比特值“0”。例如,可以假定在具有存储介质200中的第一存储体BK0的第一行地址WL0的第一符号SB0至第十六符号SB15中,第一符号SB0、第二符号SB1和第十六符号SB15是错误的符号,其余符号为正常符号。在这种情况下,错误位置数据的第一符号SB0、第二符号SB1和第十六符号SB15可以具有比特值“1”,而其余符号SB2-SB14可以具有比特值“0”。错误位置数据的比特值被输入到第一逻辑运算元件324的顺序可以根据实施方式设置得不同。在本实施方式中,可以假设与第一符号SB0至第十六符号SB15相对应的比特值被顺序地输入到第一逻辑运算元件324的第一输入端子。也就是说,可以首先将第一符号SB0的比特值“1”输入到第一逻辑运算元件324,然后可以将第二符号SB1的比特值“1”输入到第一逻辑运算元件324的第一输入端子。以这种方式,从第三符号SB2的比特值“0”到第十六符号SB15的比特值“1”的比特值也可以顺序地输入到第一逻辑运算元件324的第一输入端子。
第一逻辑运算元件324的第二输入端子可以顺序地接收与具有存储介质200中的第一存储体BK0的第一行地址WL0的第一符号SB0至第十六符号SB15有关的第一可靠性信息(其储存在第一可靠性跟踪表322中)。表示第一可靠性信息的比特值被输入到第一逻辑运算元件324的顺序可以设置为,与错误位置数据的比特值被输入到第一逻辑运算元件324的顺序相同。因此,表示从第一符号SB0到第十六符号SB15的第一可靠性信息的比特值可以被顺序地输入到第一逻辑运算元件324的第二输入端子。在图6所示的示例的情况下,可以首先将第一符号SB0的比特值“0”输入到第一逻辑运算元件324的第二输入端子,其次将第二符号SB1的比特值“1”输入到第一逻辑运算元件324的第二输入端子。以这种方式,从与关于第三符号SB2的第一可靠性信息相对应的比特值“0”到与关于第十六符号SB15的第一可靠性信息相对应的比特值“1”的比特值也可以顺序地输入到第一逻辑运算元件324的第二输入端子。
第一逻辑运算元件324可以对输入到第一逻辑运算元件324的第一输入端子的错误位置数据的比特值和输入到第一逻辑运算元件324的第二输入端子的第一可靠性信息的比特值执行第一逻辑运算(即,逻辑与运算),从而输出第一逻辑运算的结果作为更新后的第一可靠性信息。在本实施方式的情况下,第一逻辑运算元件324可以首先对第一符号SB0的错误位置数据的比特值“1”与第一符号SB0的第一可靠性信息的比特值“0”进行逻辑与运算,以输出比特值“0”作为输出数据。接着,第一逻辑运算元件324可以其次对第二符号SB1的错误位置数据的比特值“1”与第二符号SB1的第一可靠性信息的比特值“1”进行逻辑与运算,以输出比特值“1”作为输出数据。类似地,在第三次第一逻辑运算元件324可以对第三符号SB2的错误位置数据的比特值“0”与第三符号SB2的第一可靠性信息的比特值“0”进行逻辑与运算,以输出比特值“0”作为输出数据。以这种方式,第一逻辑运算元件324可以顺序地对第四符号SB3至第十五符号SB14执行相同的逻辑与运算,以输出比特值“0”作为输出数据。最后,第一逻辑运算元件324可以接着对第十六符号SB15的错误位置数据的比特值“1”与第十六符号SB15的第一可靠性信息的比特值“1”执行相同的逻辑与运算,以输出比特值“1”作为输出数据。作为第一逻辑运算元件324的逻辑与运算的结果,从第一逻辑运算元件324输出的与第二符号SB1和第十六符号SB15相对应的比特可以具有值“1”,而从第一逻辑运算元件324输出的与其余符号SB0和SB2-SB14相对应的所有比特可以具有值“0”。因为第一逻辑运算元件324输出更新后的第一可靠性信息,所以具有比特值“1”的第二符号SB1和第十六符号SB15可以被归类到最不可靠的符号(LRS)。
如图8所示,从第一逻辑运算元件324顺序地输出的更新后的第一可靠性信息可以被输入到第一可靠性跟踪表322。储存在第一可靠性跟踪表322中的第一可靠性信息可以被替换成第一逻辑运算元件324的输出数据(即,更新后的第一可靠性信息)。因此,虽然在图6所示的示例的情况下,第二符号SB1、第四符号SB3、第五符号SB4和第十六符号SB15被归类到具有比特值“1”的最不可靠的符号(LRS),但是在储存在第一可靠性跟踪表322中的第一可靠性信息被更新了之后,可以仅将第二符号SB1和第十六符号SB15归类到具有比特值“1”的最不可靠的符号(LRS)。在本实施方式中,由于第一符号SB0是错误的符号但未被归类到LRS,因此第一符号SB0可以仍然从LRS中排除。因为第二符号SB1和第十六符号SB15被归类到LRS并且是错误的符号,所以第二符号SB1和第十六符号SB15可以保持LRS状态。因为第四符号SB3和第五符号SB4被归类到LRS但不是错误的符号,所以第四符号SB3和第五符号SB4可以从LRS中排除。
图9至图11示出了用于在图1的存储系统10中跟踪疑似可靠的符号(SRS)的处理的示例。首先,如图9所示,下面将结合一个示例来描述用于在存储系统10中跟踪疑似可靠的符号(SRS)的处理,在该示例中,具有与存储介质200的第一存储体BANK0的第一行地址WL0相对应的矩阵组地址MG_ADDR的第二条目ENTRY2包括二进制流“0001111010110101”。构成第二条目ENTRY2的二进制流的每一个比特值可以表示关于第一符号SB0至第十六符号SB15中的每一个符号的第二可靠性信息。在本实施方式中,在具有存储介质200中的存储体BK0的第一行地址WL0的第一符号SB0至第十六符号SB15中,具有比特值“1”的第四符号SB3至第七符号SB6、第九符号SB8、第十一符号SB10、第十三符号SB12、第十四符号SB13和第十六符号SB15可以被归类到疑似可靠的符号(SRS)。
在上述状态下,可以将具有存储介质200中的第一存储体BK0的第一行地址WL0的第一符号SB0至第十六符号SB15的错误位置数据从跟踪控制器321传送至第二逻辑运算元件325的第一输入端子,如图10所示。在错误位置数据中,第一符号SB0、第二符号SB1和第十六符号SB15可以具有比特值“1”,其余符号SB2-SB14可以具有比特值“0”。在本实施方式中,可以将与第一符号SB0至第十六符号SB15相对应的比特值顺序地输入到第二逻辑运算元件325的第一输入端子。第二逻辑运算元件325的第二输入端子可以顺序地接收与具有存储介质200中的第一存储体BK0的第一行地址WL0的第一符号SB0至第十六符号SB15有关的第二可靠性信息(其储存在第二可靠性跟踪表323中)。表示第二可靠性信息的比特值被输入到第二逻辑运算元件325的顺序可以设置为,与错误位置数据的比特值被输入到第二逻辑运算元件325的顺序相同。因此,表示从第一符号SB0到第十六符号SB15的第二可靠性信息的比特值可以被顺序地输入到第二逻辑运算元件325的第二输入端子。在图6所示的示例的情况下,可以首先将第一符号SB0的比特值“0”输入到第二逻辑运算元件325的第二输入端子,其次可以将第二符号SB1的比特值“0”输入到第二逻辑运算元件325的第二输入端子。以这种方式,从与关于第三符号SB2的第二可靠性信息相对应的比特值“0”到与关于第十六符号SB15的第二可靠性信息相对应的比特值“1”的比特值可以顺序地输入到第二逻辑运算元件325的第二输入端子。
第二逻辑运算元件325可以对输入到第二逻辑运算元件325的第一输入端子的错误位置数据的比特值和输入到第二逻辑运算元件325的第二输入端子的第二可靠性信息的比特值执行第二逻辑运算(即,逻辑或运算),从而输出第二逻辑运算的结果作为更新后的第二可靠性信息。在本实施方式的情况下,第二逻辑运算元件325可以首先对第一符号SB0的错误位置数据的比特值“1”与第一符号SB0的第二可靠性信息的比特值“0”进行逻辑或运算,以输出比特值“1”作为输出数据。接着,第二逻辑运算元件325可以其次对第二符号SB1的错误位置数据的比特值“1”与第二符号SB1的第二可靠性信息的比特值“0”进行逻辑或运算,以输出比特值“1”作为输出数据。类似地,在第三次第二逻辑运算元件325可以对第三符号SB2的错误位置数据的比特值“0”与第三符号SB2的第二可靠性信息的比特值“0”进行逻辑或运算,以输出比特值“0”作为输出数据。以这种方式,第二逻辑运算元件325可以顺序地对第四符号SB3至第十五符号SB14执行相同的逻辑或运算,以输出逻辑或运算的结果作为输出数据。最后,第二逻辑运算元件325可以接着对第十六符号SB15的错误位置数据的比特值“1”与第十六符号SB15的第二可靠性信息的比特值“1”执行相同的逻辑或运算,以输出比特值“1”作为输出数据。作为第二逻辑运算元件325的逻辑或运算的结果,从第二逻辑运算元件325输出的与第一符号SB0和第二符号SB1、第四符号SB3至第七符号SB6、第九符号SB8、第十一符号SB10、第十三符号SB12、第十四符号SB13和第十六符号SB15相对应的比特可以具有值“1”,而从第二逻辑运算元件325输出的与其余符号SB2、SB7、SB9、SB11和SB14相对应的比特可以具有值“0”。也就是说,与从第二逻辑运算元件325输出的更新后的第二可靠性信息相对应的第一符号SB0和第二符号SB1、第四符号SB3至第七符号SB6、第九符号SB8、第十一符号SB10、第十三符号SB12、第十四符号SB13和第十六符号SB15可以被归类到疑似可靠的符号(SRS)。
如图11所示,从第二逻辑运算元件325顺序地输出的更新后的第二可靠性信息可以被输入到第二可靠性跟踪表323。第二可靠性跟踪表323中储存的第二可靠性信息可以被替换为第二逻辑运算元件325的输出数据(即,更新后的第二可靠性信息)。因此,虽然在更新之前第四符号SB3至第七符号SB6、第九符号SB8、第十一符号SB10、第十三符号SB12、第十四符号SB13和第十六符号SB15被归类到具有比特值“1”的疑似可靠的符号(SRS)(参见图9),但是在储存在第二可靠性跟踪表323中的第二可靠性信息被更新之后,第一符号SB0和第二符号SB1、第四符号SB3至第七符号SB6、第九符号SB8、第十一符号SB10、第十三符号SB12、第十四符号SB13和第十六符号SB15可以被归类到具有比特值“1”的疑似可靠的符号(SRS)。根据本实施方式,在更新之前被归类到疑似可靠的符号(SRS)的符号,无论解码操作期间是否发生错误,即使在更新之后仍然可以被归类到疑似可靠的符号(SRS)。另外,如果在解码操作期间发生错误,则在更新之前未被归类到疑似可靠的符号(SRS)的符号可以在更新之后被归类到疑似可靠的符号(SRS)。
图12示出了用于在图1的存储系统10中跟踪最可靠的符号(MRS)的处理的示例。参照图12,从第一可靠性跟踪表(RTT_AND)322输出的关于第一符号SB0至第十六符号SB15的更新后的第一可靠性信息可以被顺序地输入到第三逻辑运算元件326的第一输入端子,而且从第二可靠性跟踪表(RTT_OR)323输出的关于第一符号SB0至第十六符号SB15的更新后的第二可靠性信息可以顺序地输入到第三逻辑运算元件326的第二输入端子。第三逻辑运算元件326可以执行更新后的第一可靠性信息和更新后的第二可靠性信息的逻辑或非运算,以顺序地输出逻辑或非运算的结果。第三逻辑运算元件326的输出数据可以被输入到擦除控制电路330。
在图8和图11所示的示例的情况下,与从第一可靠性跟踪表(RTT_AND)322输出的更新后的第一可靠性信息相对应的二进制流“0100000000000001”的比特值可以被顺序地输入到第三逻辑运算元件326的第一输入端子,而且与从第二可靠性跟踪表(RTT_OR)323输出的与更新后的第二可靠性信息相对应的二进制流“1101111010101101”的比特值可以被顺序地输入到第三逻辑运算元件326的第二输入端子。作为第三逻辑运算元件326的逻辑或非运算的结果,第三逻辑运算元件326可以顺序地输出二进制流“0010000101010010”的比特值。根据本实施方式,在从第三逻辑运算元件326输出的二进制流“0010000101010010”中,比特值“1”意味着与更新后的第一可靠性信息和更新后的第二可靠性信息相对应的比特均具有值“0”。也就是说,在第三逻辑运算元件326的输出数据中具有比特值“1”的符号可以未被归类到LRS和SRS中的任何一个。因此,从第三逻辑运算元件326输出的具有比特值“1”的第三符号SB2、第八符号SB7、第十符号SB9、第十二符号SB11和第十五符号SB14可以被归类到最可靠的符号(MRS)。在另一实施方式中,如果第三逻辑运算元件326是使用与非门实现的,则第三逻辑运算元件326的输出数据中的具有比特值“0”的符号可以被归类到最可靠的符号(MRS)。
图13是示出在图6至图12所示的符号跟踪处理期间输入到擦除控制电路330的符号SB0-SB15的可靠性分布的表格。参照图13,符号SB0-SB15中的每一个符号可以根据其可靠性被归类到LRS、SRS或MRS。LRS可以对应于作为从第一可靠性跟踪表(RTT_AND)322输出的更新后的第一可靠性信息的、具有比特值“1”的符号。在本实施方式中,第二符号SB1和第十六符号SB15可以被归类到LRS。SRS可以对应于作为从第二可靠性跟踪表(RTT_OR)323输出的更新后的第二可靠性信息的、具有比特值“1”的符号。在本实施方式中,第一符号SB0和第二符号SB1、第四符号SB3至第七符号SB6、第九符号SB8、第十一符号SB10、第十三符号SB12、第十四符号SB13和第十六符号SB15可以被归类到SRS。MRS可以对应于作为第三逻辑运算元件326的输出数据的、具有比特值“1”的符号。在本实施方式中,第三符号SB2、第八符号SB7、第十符号SB9、第十二符号SB11和第十五符号SB14可以被归类到MRS。根据本实施方式,第二符号SB1和第十六符号SB15的每个可以被归类到LRS以及SRS。这样一来,如果将一个符号归类成具有两个可靠性等级,则两个可靠性等级中的较低的可靠性等级可以在这两个可靠性等级中更优先。
图14示出了相对于图13中所示的符号SB0-SB15的可靠性分布的、基于擦除的软判决解码操作的示例。参照图3和图14,接收表示符号SB0-SB15的可靠性分布的数据的擦除控制电路330可以控制RS解码器310,以使得RS解码器310执行RS-SDD操作。在RS-SDD操作期间,擦除控制电路330可以按照从低可靠性符号到高可靠性符号的符号可靠性的顺序(即,按照LRS、SRS和MRS的顺序)将符号排序。擦除控制电路330的该控制操作可以包括向RS解码器310提供与符号的擦除顺序有关的信息的操作。RS解码器310可以从擦除控制电路330接收控制信号以擦除被归类到LRS的第二符号SB1和第十六符号SB15中的一个符号(例如,第二符号SB1)并执行第一RS解码操作(第一次迭代)。如果通过第一RS解码操作没有纠正所有错误,则RS解码器310可以额外地擦除第十六符号SB15,而且可以执行第二RS解码操作(第二次迭代)。如果通过第二RS解码操作没有纠正所有错误,则RS解码器310可以额外地擦除被归类到SRS的第一符号SB0、第四符号SB3至第七符号SB6、第九符号SB8、第十一符号SB10、第十三符号SB12和第十四符号SB13中的一个符号(例如,第一符号SB0),而且可以执行第三RS解码操作(第三次迭代)。RS解码器310可以按照由擦除控制电路330提供的符号可靠性的顺序额外地一个一个地擦除符号,而且可以在每当额外地擦除一个符号时迭代地执行RS解码操作,直到所有错误都被纠正为止。
图15示出了相对于图13中所示的符号SB0-SB15的可靠性分布的、基于擦除的软判决解码操作的另一示例。参照图3和图15,擦除控制电路330可以控制RS解码器310,以使得在执行RS-SDD操作时通过一次RS解码操作来擦除两个符号。例如,RS解码器310可以从擦除控制电路330接收控制信号,以擦除被归类到LRS的第二符号SB1和第十六符号SB15这两者,而且执行第一RS解码操作(第一次迭代)。如果通过第一RS解码操作没有纠正所有错误,则RS解码器310可以额外地擦除被归类到SRS的第一符号SB0、第四符号SB3至第七符号SB6、第九符号SB8、第十一符号SB10、第十三符号SB12和第十四符号SB13中的两个符号(例如,第一符号SB0和第四符号SB3),而且可以执行第二RS解码操作(第二次迭代)。如果通过第二RS解码操作没有纠正所有错误,则RS解码器310可以额外地擦除被归类到SRS的第一符号SB0、第四符号SB3至第七符号SB6、第九符号SB8、第十一符号SB10、第十三符号SB12和第十四符号SB13中的两个符号(例如,第五符号SB4和第六符号SB5),而且可以执行第三RS解码操作(第三次迭代)。RS解码器310可以按照由擦除控制电路330提供的符号可靠性的顺序额外地两个两个地擦除符号,而且可以在每当额外地擦除两个符号时迭代地执行RS解码操作,直到所有错误都被纠正为止。
图16是示出在图1所示的存储系统10中纠正错误的方法的流程图。参照图3和图16所示,RS解码器310可以接收读取数据RDATA(即,码字)以执行读取数据RDATA的RS-HDD操作(参见步骤401)。可以辨别是否成功执行了RS-HDD操作(即,是否纠正了所有错误)(参见步骤402)。如果在步骤402没有成功执行RS-HDD操作,则可以执行用于跟踪符号的可靠性的处理(参见步骤405)。如果在步骤402成功执行了RS-HDD操作,则可以辨别错误的数量是否大于“M”(参见步骤403)。在步骤403,可以主动确定数量“M”。在一个实施方式中,数量“M”可以对应于能够通过RS-HDD操作而被纠正的错误的数量。也就是说,数量“M”可以对应于接近纠错能力的符号的数量。如果在步骤403中错误的数量不大于数量“M”,则可以终止RS解码操作(参见步骤404)。如果在步骤403中错误的数量大于数量“M”,则可以执行步骤405。
在步骤405中,可以跟踪符号的可靠性,每一个符号包括码字。用于跟踪符号的可靠性的处理可以由可靠性跟踪电路320执行。如参照图6至图13所描述的,可以在用于跟踪符号的可靠性的处理期间生成更新后的第一可靠性信息和更新后的第二可靠性信息。在步骤405之后,可以更新可靠性跟踪表(参见步骤406)。也就是说,可以将在步骤405中生成的更新后的第一可靠性信息和更新后的第二可靠性信息储存到第一可靠性跟踪表(RTT_AND)322和第二可靠性跟踪表(RTT_OR)323中的相应可靠性跟踪表之中,以更新第一可靠性跟踪表322和第二可靠性跟踪表323。在更新第一可靠性跟踪表322和第二可靠性跟踪表323时,第三逻辑运算元件326可以生成通知MRS的输出数据。擦除控制电路330可以接收从第一可靠性跟踪表322输出的更新后的第一可靠性信息、从第二可靠性跟踪表323输出的更新后的第二可靠性信息、以及从第三逻辑运算元件326输出的输出数据,从而按照从低可靠性符号到高可靠性符号的符号可靠性的顺序(即,按照LRS、SRS和MRS的顺序)对符号进行排序,并向RS解码器310提供与要被擦除的符号的顺序有关的信息(参见步骤407)。
RS解码器310可以响应于擦除控制电路330的控制信号来执行RS-SDD操作(参见步骤408)。因此,可以擦除在LRS、SUS和MRS中具有最低可靠性的符号,而且可以执行RS解码操作以纠正错误。在这种情况下,被擦除的符号可以是一个符号或两个或更多个符号。此后,可以辨别是否成功执行了RS-SDD操作(即,是否通过RS-SDD操作纠正了所有错误)(参见步骤409)。如果在步骤409中成功执行了RS-SDD操作,则RS解码过程可以终止(参见步骤404)。如果在步骤409中没有成功执行RS-SDD操作,则可以额外地擦除符号(参见步骤410),而且可以执行步骤408和409。可以迭代地执行步骤408、409和410,直到所有错误都被纠正为止。
上面已经出于说明的目的,公开了所公开技术的实施方式。本领域普通技术人员会理解,可以进行各种修改、添加和替换。尽管该专利文件包含许多细节,但是这些细节不应被解释为对范围或所要求保护的范围的限制,而应被解释为针对特定实施方式的特定特征的描述。在该专利文件中在分离的不同实施方式的上下文中描述的某些特征也可以在单个实施方式中组合实现。相反,在单个实施方式的上下文中描述的各种特征也可以分别在多个实施方式中单独地实现或以任何合适的子组合来实现。而且,尽管上面可以将特征描述为以某些组合起作用甚至以最初要求保护的方式起作用,但是在某些情况下,可以从要求保护的组合中去除该组合中的一个或多个特征,而且可以将所要求保护的组合用于子组合或子组合的变体。

Claims (20)

1.一种存储系统,包括:
里德-所罗门RS解码器,其被配置为对从存储介质输出的“K”个符号执行纠错解码操作,其中“K”表示自然数;
可靠性跟踪电路,其被配置为根据由所述里德-所罗门RS解码器执行的所述纠错解码操作而生成并储存关于所述符号的可靠性的信息,所述符号的错误发生可能性被区分为多个不同的等级;以及
擦除控制电路,其被配置为控制所述里德-所罗门RS解码器,以便按照从低可靠性符号到高可靠性符号的符号可靠性的顺序来擦除所述符号,并且根据储存在所述可靠性跟踪电路中的关于所述符号的可靠性的信息来执行所述纠错解码操作。
2.根据权利要求1所述的存储系统,
其中,所述存储介质被配置为包括多个矩阵和“K”个数据输入/输出I/O引脚;
其中,所述多个矩阵中的每一个矩阵被配置为接收或输出1比特数据;
其中,被输入到所述多个矩阵中的“N”个矩阵的“N”比特数据或从所述多个矩阵中的“N”个矩阵输出的“N”比特数据通过所述数据输入/输出I/O引脚之一来传送,其中“N”表示自然数;且
其中,具有相同行地址的“K×N”比特数据通过所有的所述数据输入/输出I/O引脚来传送。
3.根据权利要求2所述的存储系统,其中,每一个所述符号包括具有相同行地址且通过每一个所述数据输入/输出I/O引脚输出的“N”比特数据。
4.根据权利要求1所述的存储系统,其中,所述可靠性跟踪电路包括:
第一可靠性跟踪表,其被配置为储存第一可靠性信息;
第二可靠性跟踪表,其被配置为储存第二可靠性信息;
跟踪控制器,其被配置为从所述里德-所罗门RS解码器接收错误代码,并输出所述存储介质的矩阵组地址和包括矩阵组的错误位置的错误位置数据;
第一逻辑运算元件,其被配置为对从所述跟踪控制器输出的所述错误位置数据和从所述第一可靠性跟踪表输出的所述第一可靠性信息执行第一逻辑运算,以生成更新后的第一可靠性信息并将其输出到所述第一可靠性跟踪表;
第二逻辑运算元件,其被配置为对从所述跟踪控制器输出的所述错误位置数据和从所述第二可靠性跟踪表输出的所述第二可靠性信息执行第二逻辑运算,以生成更新后的第二可靠性信息并将其输出到所述第二可靠性跟踪表;以及
第三逻辑运算元件,其被配置为对所述更新后的第一可靠性信息和所述更新后的第二可靠性信息执行第三逻辑运算,以输出所述第三逻辑运算的结果。
5.根据权利要求4所述的存储系统,
其中,所述第一逻辑运算包括对所述错误位置数据和所述第一可靠性信息执行逻辑与运算,以生成所述更新后的第一可靠性信息;
其中,所述第二逻辑运算包括对所述错误位置数据和所述第二可靠性信息执行逻辑或运算,以生成所述更新后的第二可靠性信息;且
其中,所述第三逻辑运算包括对所述更新后的第一可靠性信息和所述更新后的第二可靠性信息执行逻辑或非运算。
6.根据权利要求4所述的存储系统,
其中,所述第一逻辑运算包括对所述错误位置数据和所述第一可靠性信息执行逻辑与运算,以生成所述更新后的第一可靠性信息;
其中,所述第二逻辑运算包括对所述错误位置数据和所述第二可靠性信息执行逻辑或运算,以生成所述更新后的第二可靠性信息;且
其中,所述第三逻辑运算包括对所述更新后的第一可靠性信息和所述更新后的第二可靠性信息执行逻辑与非运算。
7.根据权利要求4所述的存储系统,其中,每一个所述矩阵组包括所述存储介质所包含的多个矩阵中的“N”个矩阵,所述“N”个矩阵具有相同的行地址且彼此共用一个数据输入/输出I/O引脚。
8.根据权利要求7所述的存储系统,
其中,所述第一可靠性跟踪表包括多个第一条目,每一个所述第一条目包括关于所述矩阵组中的具有相同矩阵组地址的一些矩阵组的所述第一可靠性信息;且
其中,所述第二可靠性跟踪表包括多个第二条目,每一个所述第二条目包括关于所述矩阵组中的具有相同矩阵组地址的一些矩阵组的所述第二可靠性信息。
9.根据权利要求8所述的存储系统,
其中,构成每一个所述第一条目的所述第一可靠性信息包括第一二进制流,所述第一二进制流包括与所述符号中的相应符号相对应的“K”个比特值;且
其中,构成每一个所述第二条目的所述第二可靠性信息包括第二二进制流,所述第二二进制流包括与所述符号中的相应符号相对应的“K”个比特值。
10.根据权利要求9所述的存储系统,
其中,所述第一可靠性跟踪表将储存在其中的所述第一可靠性信息替换成从所述第一逻辑运算元件输出的所述更新后的第一可靠性信息,以更新所述第一可靠性信息;且
其中,所述第二可靠性跟踪表将储存在其中的所述第二可靠性信息替换成从所述第二逻辑运算元件输出的所述更新后的第二可靠性信息,以更新所述第二可靠性信息。
11.根据权利要求10所述的存储系统,其中,所述擦除控制电路被配置为:将从所述第一可靠性跟踪表传送到所述第三逻辑运算元件的数据中的具有比特值“1”的符号归类为最不可靠的符号LRS;被配置为:将从所述第二可靠性跟踪表传送到所述第三逻辑算术元件的数据中的具有比特值“1”的符号归类为疑似可靠的符号SRS;并被配置为:将从所述第三逻辑运算元件输出的数据中的具有比特值“1”的符号归类为最可靠的符号MRS。
12.根据权利要求11所述的存储系统,其中,所述擦除控制电路控制所述里德-所罗门RS解码器,以使得与增加按照所述最不可靠的符号LRS、所述疑似可靠的符号SRS和所述最可靠的符号MRS的顺序而被擦除的符号的数量一起,执行所述纠错解码操作。
13.根据权利要求11所述的存储系统,
其中,所述擦除控制电路控制所述里德-所罗门RS解码器,以使得与增加按照所述最不可靠的符号LRS、所述疑似可靠的符号SRS和所述最可靠的符号MRS的顺序而被擦除的符号的数量一起,执行所述纠错解码操作,且
其中,一次被擦除的所述符号的数量为两个或更多个。
14.一种在存储系统中纠正错误的方法,该方法包括:
根据从存储介质输出的所述符号的里德-所罗门(RS)解码操作的结果而生成并储存关于符号的可靠性的信息,所述符号的错误发生可能性被区分为多个不同的等级;以及
按照从低可靠性符号到高可靠性符号的符号可靠性的顺序来擦除所述符号,并根据关于所述符号的可靠性的信息来执行所述里德-所罗门RS解码操作。
15.根据权利要求14所述的方法,其中,在没有成功执行所述解码操作或者错误的数量大于一定数量时,执行生成并储存关于所述符号的可靠性的信息。
16.根据权利要求14所述的方法,其中,生成并储存关于所述符号的可靠性的信息包括:
基于从RS解码器输出的错误代码,生成所述存储介质的矩阵组地址和包括矩阵组的错误位置的错误位置数据;
对从第一可靠性跟踪表输出的第一可靠性信息和所述错误位置数据执行第一逻辑运算,以将与所述第一逻辑运算的结果相对应的更新后的第一可靠性信息储存到所述第一可靠性跟踪表中;
对从第二可靠性跟踪表输出的第二可靠性信息和所述错误位置数据执行第二逻辑运算,以将与所述第二逻辑运算的结果相对应的更新后的第二可靠性信息储存到所述第二可靠性跟踪表中;以及
对储存在所述第一可靠性跟踪表中的所述更新后的第一可靠性信息和储存在所述第二可靠性跟踪表中的所述更新后的第二可靠性信息执行第三逻辑运算,以生成所述第三逻辑运算的结果。
17.根据权利要求16所述的方法,
其中,所述第一逻辑运算为逻辑与运算;
其中,所述第二逻辑运算为逻辑或运算;且
其中,所述第三逻辑运算为逻辑或非运算。
18.根据权利要求16所述的方法,
其中,所述第一逻辑运算为逻辑与运算;
其中,所述第二逻辑运算为逻辑或运算;且
其中,所述第三逻辑运算为逻辑与非运算。
19.根据权利要求16所述的方法,其中,擦除所述符号并执行所述里德-所罗门RS解码操作包括:
将所述更新后的第一可靠性信息中的具有比特值“1”的符号归类为最不可靠的符号LRS;
将所述更新后的第二可靠性信息中的具有比特值“1”的符号归类为疑似可靠的符号SRS;
将与所述第三逻辑运算的结果相对应的数据中的具有比特值“1”的符号归类为最可靠的符号MRS;以及
与增加按照所述最不可靠的符号LRS、所述疑似可靠的符号SRS和所述最可靠的符号MRS的顺序而被擦除的符号的数量一起,执行所述里德-所罗门RS解码操作。
20.根据权利要求16所述的方法,其中,擦除所述符号并执行所述里德-所罗门RS解码操作包括:
将所述更新后的第一可靠性信息中的具有比特值“1”的符号归类为最不可靠的符号LRS;
将所述更新后的第二可靠性信息中的具有比特值“1”的符号归类为疑似可靠的符号SRS;
将与所述第三逻辑运算的结果相对应的数据中的具有比特值“1”的符号归类为最可靠的符号MRS;以及
与增加按照所述最不可靠的符号LRS、所述疑似可靠的符号SRS和所述最可靠的符号MRS的顺序而被擦除的符号的数量一起,执行所述里德-所罗门RS解码操作,
其中,一次被擦除的所述符号的数量为两个或更多个。
CN201911297911.4A 2019-05-29 2019-12-17 存储系统和在存储系统中纠正错误的方法 Pending CN112017724A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190063100A KR20200137184A (ko) 2019-05-29 2019-05-29 메모리 시스템 및 메모리 시스템에서의 에러 정정 방법
KR10-2019-0063100 2019-05-29

Publications (1)

Publication Number Publication Date
CN112017724A true CN112017724A (zh) 2020-12-01

Family

ID=73506820

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911297911.4A Pending CN112017724A (zh) 2019-05-29 2019-12-17 存储系统和在存储系统中纠正错误的方法

Country Status (3)

Country Link
US (1) US11108412B2 (zh)
KR (1) KR20200137184A (zh)
CN (1) CN112017724A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5712861A (en) * 1994-07-12 1998-01-27 Mitsubishi Denki Kabushiki Kaisha Error correcting method and decoder with improved reliability
JPH10163882A (ja) * 1996-11-29 1998-06-19 Nec Corp 二重伸長リードソロモン復号装置
US20090132894A1 (en) * 2007-11-19 2009-05-21 Seagate Technology Llc Soft Output Bit Threshold Error Correction
KR20110020397A (ko) * 2009-08-24 2011-03-03 삼성전자주식회사 리드 솔로몬 및 컨벌루션 연접 코드 방식의 에러 정정 방법 및 장치

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5271022A (en) * 1989-09-29 1993-12-14 Cyclotomics, Incorporated Digital optical sound system
US6112324A (en) * 1996-02-02 2000-08-29 The Arizona Board Of Regents Acting On Behalf Of The University Of Arizona Direct access compact disc, writing and reading method and device for same
US7605940B2 (en) * 1999-09-17 2009-10-20 Silverbrook Research Pty Ltd Sensing device for coded data
US7128270B2 (en) * 1999-09-17 2006-10-31 Silverbrook Research Pty Ltd Scanning device for coded data
US8473826B1 (en) 2009-08-12 2013-06-25 The United States Of America As Represented By The Secretary Of The Navy Hybrid soft decision hard decision reed solomon decoding
US9432298B1 (en) * 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5712861A (en) * 1994-07-12 1998-01-27 Mitsubishi Denki Kabushiki Kaisha Error correcting method and decoder with improved reliability
JPH10163882A (ja) * 1996-11-29 1998-06-19 Nec Corp 二重伸長リードソロモン復号装置
US20090132894A1 (en) * 2007-11-19 2009-05-21 Seagate Technology Llc Soft Output Bit Threshold Error Correction
KR20110020397A (ko) * 2009-08-24 2011-03-03 삼성전자주식회사 리드 솔로몬 및 컨벌루션 연접 코드 방식의 에러 정정 방법 및 장치

Also Published As

Publication number Publication date
US20200382137A1 (en) 2020-12-03
KR20200137184A (ko) 2020-12-09
US11108412B2 (en) 2021-08-31

Similar Documents

Publication Publication Date Title
US10936455B2 (en) Recovery of data failing due to impairment whose severity depends on bit-significance value
KR102102828B1 (ko) 메모리에서 에러 정정 코드(ecc) 연산
US7149949B2 (en) Method for error correction decoding in a magnetoresistive solid-state storage device
US9201718B2 (en) Data recovery in a solid state storage system
US8112692B2 (en) Flash memory device error correction code controllers and related methods and memory systems
US8719662B2 (en) Memory device with error detection
US7107508B2 (en) Manufacturing test for a fault tolerant magnetoresistive solid-state storage device
US7107507B2 (en) Magnetoresistive solid-state storage device and data storage methods for use therewith
US20130227202A1 (en) Implementing raid in solid state memory
US8635508B2 (en) Systems and methods for performing concatenated error correction
JP2021111826A (ja) 復号装置及び復号方法
CN111489783B (zh) 具有阶层式错误校正码层的存储器装置
KR20190009630A (ko) 비휘발성 메모리의 ecc 제어 방법 및 이를 수행하는 메모리 시스템
KR20170112630A (ko) 반도체장치 및 반도체시스템
KR100905712B1 (ko) 에러 정정 코드를 이용한 병렬 비트 테스트 장치
JP2020155167A (ja) 不揮発性メモリ
CN115705265A (zh) 存储器设备及其操作方法
US10186302B2 (en) Semiconductor systems performing double-write operations and methods of operating the same
JP2009157515A (ja) 半導体メモリコントローラおよび半導体メモリ
US11949428B2 (en) Iterative error correction in memory systems
CN110825553A (zh) 针对存储器件的存储系统以及存储系统的操作方法
CN106158031B (zh) 半导体存储器以及数据写入方法
US11108412B2 (en) Memory systems and methods of correcting errors in the memory systems
CN117409844A (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