CN115705265A - 存储器设备及其操作方法 - Google Patents

存储器设备及其操作方法 Download PDF

Info

Publication number
CN115705265A
CN115705265A CN202210936829.7A CN202210936829A CN115705265A CN 115705265 A CN115705265 A CN 115705265A CN 202210936829 A CN202210936829 A CN 202210936829A CN 115705265 A CN115705265 A CN 115705265A
Authority
CN
China
Prior art keywords
syndrome
bit
received codeword
error
matrix
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
CN202210936829.7A
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.)
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
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN115705265A publication Critical patent/CN115705265A/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/44Indication or identification of errors, e.g. for repair
    • 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/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
    • G06F11/1016Error in accessing a memory location, i.e. addressing 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
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/04Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
    • G11C17/16Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM using electrically-fusible links
    • G11C17/165Memory cells which are electrically programmed to cause a change in resistance, e.g. to permit multiple resistance steps to be programmed rather than conduct to or from non-conduct change of fuses and antifuses
    • 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
    • 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/1105Decoding
    • H03M13/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • 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
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • H03M13/1168Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices wherein the sub-matrices have column and row weights greater than one, e.g. multi-diagonal sub-matrices
    • 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/1575Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

一种存储器设备的操作方法包括:在存储器区域中存储关于包括擦除的码字的位置信息和包括关于擦除的位置信息的擦除信息;在上电期间,将关于包括擦除的码字的位置信息加载到行解码器和列解码器;响应于来自主机的读取指令,确定与读取指令相对应的读取地址与关于包括擦除的码字的位置信息是否一致;当读取地址与关于包括擦除的码字的位置信息一致时,将关于擦除的位置信息传送到纠错码(ECC)解码器;以及由ECC解码器使用关于擦除的位置信息来纠正从存储单元阵列接收的码字中的错误。

Description

存储器设备及其操作方法
对相关申请的交叉引用
本申请要求2021年8月6日向韩国知识产权局提交的第10-2021-0103984号韩国专利申请的优先权,该韩国专利申请的公开内容通过引用整体并入于此。
技术领域
本发明构思涉及一种存储器设备及其操作方法。
背景技术
存储器设备的高度集成或小型化可能增加错误发生的概率,在该错误中,可能读取与要读取的数据不同的数据,或者可能编程与要编程的数据不同的数据。期望一种利用有限的系统资源来提高纠错能力的方法。
发明内容
本发明构思的一方面提供了一种存储器设备,该存储器设备在存储器中存储擦除信息,并且使用擦除信息、利用单比特纠错和双比特检错(SEC-DED)来纠正2比特错误。
根据本发明构思的一方面,一种存储器设备的操作方法包括:在存储器区域中存储关于包括擦除的码字的位置信息和包括关于擦除的位置信息的擦除信息;在上电期间,将关于包括擦除的码字的位置信息加载到行解码器和列解码器;响应于来自主机的读取指令,确定与读取指令相对应的读取地址与关于包括擦除的码字的位置信息是否一致;当读取地址与关于包括擦除的码字的位置信息一致时,将关于擦除的位置信息传送到纠错码(ECC)解码器;以及由ECC解码器使用关于擦除的位置信息来纠正从存储单元阵列接收的码字中的错误。根据本发明构思的一方面,一种存储器设备的操作方法包括:从存储单元阵列接收码字并且计算接收的码字的校验子(syndrome);使用校验子和擦除的列数据计算修正的校验子;确定校验子的权重;以及当校验子的权重是偶数时,使用修正的校验子和擦除的列索引来纠正接收的码字的错误,其中,擦除的列数据是与接收的码字中擦除的位置相对应的H矩阵的分量,并且擦除的列索引指示与接收的码字中的擦除相对应的比特位置。
根据本发明构思的一方面,一种存储器设备的操作方法包括:从存储单元阵列接收码字并且计算接收的码字的校验子;使用校验子和擦除的列数据来计算修正的校验子;确定校验子的权重;以及使用校验子、修正的校验子和校验子的权重来纠正接收的码字的错误,其中,擦除的列数据是与接收的码字中擦除的位置相对应的H矩阵的分量。
根据本发明构思的一方面,一种存储器设备包括:校验子计算器,被配置为从存储单元阵列接收码字并且计算接收的码字的校验子;比特计算单元,被配置为使用校验子和擦除的列数据来计算修正的校验子;解码器,被配置为通过使用校验子和修正的校验子对接收的码字中的错误的位置进行估计来生成错误向量;以及数据转换单元,被配置为使用接收到的码字和错误向量来纠正接收的码字的错误。擦除的列数据是与接收的码字中擦除的位置相对应的H矩阵的列的分量。
附图说明
根据下面结合附图进行的详细描述,将更加清楚地理解本发明构思的上述和其他方面、特征和优点,在附图中:
图1是示意性地示出根据本发明构思的实施例的存储器设备的图;
图2是示出根据本发明构思的实施例的操作纠错码(ECC)编码器的方法的图;
图3和图4是示出根据本发明构思的实施例的ECC解码器的操作方法的比较示例;
图5至图7是示出根据本发明构思的实施例的操作擦除信息的方法的图;
图8和图9是示出根据本发明构思的实施例的ECC解码器的操作方法的图;
图10是示出根据本发明构思的实施例的ECC解码器的图;
图11是示出根据本发明构思的实施例的修正的校验子计算器的图;
图12和图13是示出根据本发明构思的实施例的修正的校验子解码器的图;
图14是示出根据本发明构思的实施例的ECC解码器的图;
图15是示出根据本发明构思的实施例的修正的校验子计算器的图;
图16是示出根据本发明构思的实施例的第一子解码器的图;以及
图17是示出根据本发明构思的实施例的第四解码器的图。
具体实施方式
在下文中,参考附图描述本发明构思的示例实施例。
图1是示意性地示出根据本发明构思的实施例的存储器设备的图。
参考图1,存储器系统10可以包括存储器控制器20和存储器设备30。
存储器控制器20可以控制存储器系统10的整体操作,并且可以控制外部主机与存储器设备30之间的整体数据交换。例如,存储器控制器20可以根据来自主机的编程请求来控制存储器设备30,以将从主机接收的数据编程到存储单元阵列31中。另外,存储器控制器20可以根据来自主机的读取请求来控制存储器设备30,以将从存储单元阵列31接收的数据传送到主机。
根据实施例,存储器设备30可以是动态随机存取(DRAM)、双倍数据速率4(DDR4)同步DRAM(SDRAM)或包括易失性存储单元的DDR5SDRAM。存储器控制器20可以将时钟信号CLK、命令CMD和地址ADDR传送到存储器设备30,控制存储器设备30的操作,以及与存储器设备30交换主数据MD。
存储器设备30可以包括存储单元阵列31、纠错码(ECC)引擎32和逻辑电路35。包括主数据MD和奇偶校验数据的码字可以存储在存储单元阵列31中。
ECC引擎32可以包括ECC编码器33和ECC解码器34。ECC引擎32可以在逻辑电路35的控制下对要存储在存储单元阵列31的目标存储单元行(目标页)中的数据执行ECC编码,并且对从目标页读取的数据执行ECC解码。
具体地,响应于来自主机的编程命令,ECC编码器33可以使用主数据MD和H矩阵生成奇偶校验数据,并且生成包括主数据MD和奇偶校验数据的码字。码字可以被编程到存储单元阵列31中。
响应于来自主机的读取命令,ECC解码器34可以从存储单元阵列31接收码字,并且使用H矩阵来对接收的码字执行错误检测和错误纠正处理。存储器设备30可以向主机传送纠正后的数据。
单比特纠错(SEC)是指纠正码字中发生的单比特错误,而多比特纠错(双比特纠错(DEC))是指纠正码字中发生的多比特错误。与SEC相比,DEC可能会显著地增加诸如奇偶校验和延迟的成本。
单比特纠错和双比特检错(SEC-DED)是指纠正码字中发生的单比特错误并且检测码字中发生的多比特错误。SEC-DED可以通过在SEC中添加1比特的奇偶校验数据来实施。因此,SEC-DED可以以低于DEC的成本实施。
错误的类型包括其中发生错误的数据位置已知的擦除和其中发生错误的数据位置未知的随机错误。例如,在DRAM的情况下,在许多情况下,错误连续地或间歇地发生在相同的位置,并且这种错误可以被认为是擦除。因此,如果使用在存储器缺陷测试或缺陷筛选处理中确定的坏单元位置,则可以仅利用SEC-DED来执行2比特纠错。
根据本发明构思的实施例,擦除信息可以被记录在存储器中,并且2比特错误可通过使用擦除信息的SEC-DED来纠正。因此,可以提供一种易于以低成本实施的纠错方法。
图2是示出根据本发明构思的实施例的ECC编码器的操作方法的图。
参考图2,H矩阵存储在ECC编码器中。H矩阵可以包括与主数据相对应的区域K0至K3以及与奇偶校验数据相对应的区域P0至P3。为了方便,与奇偶数据相对应的区域可以是单位矩阵。单位矩阵可以指其中主对角线的所有分量都是“1”而其他剩余分量是“0”的方阵。H矩阵的列可以具有不同的分量组合。
响应于来自主机的编程命令,ECC编码器可以接收从主机发送的主数据MD。ECC编码器可以使用主数据MD和H矩阵生成奇偶校验数据。
可以通过对与下述位置相对应的主数据的比特执行异或(XOR)运算来获得奇偶校验数据:该位置在与H矩阵的主数据相对应的区域中具有为“1”的分量。例如,可以通过对下述比特执行异或运算来获得第一奇偶校验比特P0:主数据的比特当中的与K0的位置相对应的比特、与K1的位置相对应的比特和与K2的位置相对应的比特;可以通过对下述比特执行异或运算来获得第二奇偶校验比特P1:主数据的比特当中的与K0的位置相对应的比特、与K1的位置相对应的比特和与K3的位置相对应的比特;可以通过对下述比特执行异或运算来获得第三奇偶校验比特P2:主数据的比特当中的与K0的位置相对应的比特、与K2的位置相对应的比特和与K3的位置相对应的比特;以及可以通过对下述比特执行异或运算来获得第四奇偶校验比特P3:主数据的比特当中的与K1的位置相对应的比特、与K2的位置相对应的比特和与K3的位置相对应的比特。
ECC编码器可以生成包括主数据和奇偶校验数据的码字。码字可以被编程到存储单元阵列31中。
图3和图4是示出根据本发明构思的实施例的ECC解码器的操作方法的比较示例。
ECC解码器存储与ECC编码器中存储的H矩阵相同的H矩阵。响应于来自主机的读取命令,ECC解码器可以从存储单元阵列接收码字。
一起参考图3和图4,ECC解码器可以计算校验子S(S110)。校验子S可以通过将H矩阵H乘以接收的码字y来计算。作为计算的结果,如果校验子S是“0000”,则可以意味着在接收的码字y中没有发生错误。如果校验子S不是“0000”,则可以意味着在接收到的码字y中发生了错误。
ECC解码器可以使用计算的校验子S生成错误向量v(S120)。错误向量v可指其中对接收的码字中发生错误的比特的位置进行估计的向量。ECC解码器可以通过错误向量v确定接收的码字中具有高的错误概率的比特的位置。
生成错误向量v的方法如下。首先,ECC解码器可以将校验子S与H矩阵的列的每个分量进行比较,并且确定具有与校验子S相同的分量的H矩阵的列的位置。ECC解码器可以在接收的码字的比特当中,将与具有与校验子S相匹配的分量的H矩阵的列的位置相对应的比特估计为具有高的错误概率的比特。
例如,如果计算的校验子S是“0100”,则图2的H矩阵中具有与校验子S相同的分量的H矩阵的列的位置可以是第六列。因此,接收的码字的比特当中的第六比特可以被估计为具有高的错误概率,并且因此,ECC解码器可以将错误向量生成为“00000100”。
ECC解码器可使用错误向量v来纠正接收的码字中的1比特错误(S130)。ECC解码器可以对接收的码字y和错误向量v执行异或运算,以纠正接收的码字中的1比特错误,并且输出纠错后的码字x
H矩阵的每列可以是奇数权重列,其中,奇数个1存在于分量中。当在接收的码字中发生1比特错误时,在校验子S中存在奇数个1,并且因此,校验子权重可以是奇数。然而,当在接收的码字中发生2比特错误时,在校验子S中存在偶数个1,并且因此,校验子权重可以是偶数。当校验子权重是偶数时,H矩阵中没有具有与校验子S相匹配的分量的列。因此,可能从偶数(even number)的校验子权重中仅检测到2比特错误,并且接收的码字中的错误可能不被纠正。
根据本发明构思的实施例,擦除信息可以被记录在存储器中,并且2比特错误可以通过使用擦除信息和校验子权重的SEC-DED来纠正。因此,可以提供一种易于以低成本实施的纠错方法。
图5至图7是示出根据本发明构思的实施例的操作擦除信息的方法的图。
参考图5和图6,存储器设备可以在存储器区域中以表格的形式存储擦除信息(S210)。擦除信息可以包括行地址RA(RA[0]到RA[n-1])、列地址CA(CA[0]到CA[n-1])和列数据HD(HD[0]到HD[n-1])。行地址RA和列地址CA可以指示存储单元阵列中包括擦除的码字的位置。擦除的列数据HD可以指与码字中擦除的位置相对应的H矩阵的列的分量。例如,参考图2的H矩阵,如果擦除的位置是码字中的第6比特,则擦除的列数据HD可以是“0100”,H矩阵中第6列的分量。
根据实施例,擦除信息可以进一步包括擦除的列索引HI(HI[0]至HI[n-1])。擦除的列索引HI可以指与码字中擦除的位置相对应的H矩阵的列的位置。在上述实施例中,如果擦除的位置是码字中的第6比特,则擦除的列索引HI可以是“00000100”。
根据本发明构思的实施例,擦除信息可以包括:包含擦除的码字的位置信息RA和CA以及擦除的位置信息HD和HI。存储器设备可以将擦除信息RA、CA、HD和HI存储在存储器区域中,并且使用擦除信息RA、CA、HD和HI以及校验子权重来纠正1比特擦除和1比特随机错误。
另外,当擦除信息包括擦除的行地址RA、列地址CA和列数据HD时,不必须在存储器区域中存储擦除列索引HI,并且因此,可以有效地使用系统资源。
参考图7,根据本发明构思的实施例的存储器设备100可以包括存储体110和逻辑电路120。存储体110可以包括具有多个存储单元的体阵列111、行解码器112、列解码器113和读出放大器114。在实施例中,存储器设备100可以包括多个存储体110。
存储器设备100中所包括的多个存储体110可以共享一个逻辑电路120。逻辑电路120可以从体阵列111读取数据,将数据存储在体阵列111中,或者删除在体阵列111中所存储的数据。另外,逻辑电路120可以包括连接到输入/输出引脚的用于传送和接收数据的接收器和传送器,以及用于控制行解码器112、列解码器113、读出放大器114等的控制逻辑。
存储器设备100中用于存储擦除信息的存储器区域可以包括反熔丝阵列和内容可寻址存储器(CAM)中的至少一个,但是不限于此。ECC解码器可以被包括在列解码器113中,并且反熔丝阵列可以被包括在逻辑电路120中。
一起参考图5和图7,当存储器设备上电时,擦除信息RA、CA、HD和HI可以被加载到行解码器112和列解码器113的存储器区域中(S220)。例如,在上电期间,行地址RA可以被加载到行解码器112的SRAM中,列地址CA可以被加载到列解码器113的SRAM中,以及擦除的列数据HD和擦除的列索引HI可以被加载到连接到列解码器113的ECC引擎的SRAM中。
响应于来自主机的读取命令,ECC解码器可以从存储单元阵列接收码字。存储器设备可以确定与读取命令相对应的读取地址和包括擦除的码字的位置信息RA和CA是否彼此匹配(S230)(例如,其是否一致)。例如,行解码器112可以确定读取地址的行地址与擦除信息的行地址RA是否匹配,并且列解码器113可以确定读取地址的列地址与擦除信息的列地址CA是否匹配。
如果读取地址与擦除信息的地址RA和CA匹配(S230中的是),则ECC解码器可以确定在接收的码字中存在擦除。在SRAM中所存储的擦除的列数据HD和擦除的列索引HI可以被输出到ECC解码器(S250)。
ECC解码器可以使用关于擦除的位置信息——即,擦除的列数据HD和/或擦除的列索引HI——来纠正接收的码字中的2比特错误(S260)。2比特错误可以包括1比特的擦除和1比特的随机错误。
如果读取的地址和擦除表的地址不匹配(S230中的否),则ECC解码器可以确定在接收的码字中不存在擦除。ECC解码器可以纠正接收的码字中的1比特的随机错误。
参考图8至图17描述由ECC解码器纠正接收的码字中的错误的方法。
图8和图9是示出根据本发明构思的实施例的ECC解码器的操作方法的图。
一起参考图8和图9,ECC解码器可以从存储单元阵列接收码字,并且计算接收的码字的校验子(S310)。校验子S可以通过将H矩阵H乘以接收的码字y来计算。
ECC解码器可使用校验子S和擦除的列数据HD来计算修正的校验子(S320)。可以通过对校验子S和擦除列数据HD执行异或运算来计算修正的校验子MS。例如,如果校验子S是“1001”并且擦除的列数据HD是“0100”,则修正的校验子可以是“1101”。
ECC解码器可以确定校验子权重(S330)。如果在校验子中存在奇数个1,则校验子权重可以是奇数ODD,而如果在校验子中存在偶数个1,则校验子权重可以是偶数EVEN。
如果校验子权重是偶数(在S320中为EVEN),则ECC解码器可以使用擦除的列索引HI和/或擦除的列数据HD以及修正的校验子MS来生成错误向量(S340)。
如果校验子权重是偶数,这可能意味着在接收的码字中存在2比特的错误。擦除的列索引HI指示与码字中擦除的位置相对应的H矩阵的列的位置,并且因此,ECC解码器可以根据擦除的列索引HI估计擦除的位置。此外,ECC解码器可以根据修正的校验子MS知道随机错误的位置。
例如,参考图2的H矩阵,ECC解码器可以使用擦除的列索引HI来估计接收的码字中擦除的位置。
根据实施例,ECC解码器可以使用擦除的列数据HD来估计接收的码字中擦除的位置。例如,由于擦除的列数据(例如“0100”)与H矩阵中第6列的分量相匹配,所以擦除的位置可以被估计为接收的码字中的第6比特。
ECC解码器可以使用修正的校验子来估计接收到的码字中的随机错误位置。例如,由于修正的校验子(例如,“1101”)与H矩阵中第二列的分量相匹配,所以随机错误的位置可以被估计为接收的码字中的第二比特。因此,ECC解码器可以生成错误向量“01000100”。
ECC解码器可使用错误向量v来纠正1比特的擦除和1比特的随机错误(S350)。因此,可以纠正2比特的错误。ECC解码器可以通过对接收的码字y和错误向量v执行异或运算来纠正接收的码字的错误,并且可以输出纠错后的码字x。
作为确定校验子权重的结果,如果校验子权重是奇数(S320中的ODD),则ECC解码器可以确定在接收的码字中存在1比特的错误,并且使用校验子估计接收的码字中的随机错误位置(S360)。ECC解码器可以使用错误向量来纠正1比特的随机错误(S370)。
图10至图13是示出第一实施例的图,在第一实施例中,擦除信息包括行地址、列地址、擦除的列数据和擦除的列索引;而图14至图17是示出第二实施例的图,在第二实施例中,擦除信息包括擦除的行地址、列地址和列数据。
图10是示出根据本发明构思的实施例的ECC解码器的图。
参考图10,ECC解码器200可以包括第一校验子计算器210至第三校验子计算器230、修正的校验子计算器240、修正的校验子解码器250和数据转换单元260。
根据实施例,包括128比特的主数据MD和9比特的奇偶校验数据PD的码字可以通过输入/输出读出放大器IOSA而从体阵列BA输出到ECC解码器200。ECC解码器200可以接收包括128比特的主数据MD和9比特的奇偶校验数据PD的码字。H矩阵可以是9×(128+9)矩阵。
第一校验子计算器210可以计算针对主数据的至少一部分的第一校验子S1。例如,第一校验子计算器210可以接收128比特的主数据当中的64比特的主数据,并且将H矩阵乘以64比特的主数据以计算第一校验子S1。
第二校验子计算器220可以计算针对主数据的剩余部分的第二校验子S2。例如,第二校验子计算器220可以接收128比特的主数据当中的剩余的64比特的主数据,并且通过将H矩阵乘以64比特的主数据来计算第二校验子S2。
第三校验子计算器230可以从第一校验子计算器210接收第一校验子S1,从第二校验子计算器220接收第二校验子S2,以及通过输入/输出读出放大器IOSA从体阵列BA接收奇偶校验数据PD。第三校验子计算器230可对第一校验子S1、第二校验子S2和奇偶校验数据PD执行异或运算,以计算第三校验子S3。
修正的校验子计算器240可以从第三校验子计算器230接收第三校验子S3,并且从SRAM接收擦除的列数据HD。修正的校验子计算器240可以确定第三校验子S3的权重。
如果第三校验子S3的权重是奇数,则修正的校验子计算器240输出第三校验子作为最终校验子FS;而如果第三校验子S3的权重是偶数,则输出修正的校验子MS作为最终校验子FS。
图11是示出根据本发明构思的实施例的修正的校验子计算器的图。
参考图11,修正的校验子计算器240可以包括权重确定单元241、比特运算单元242和选择器243。修正的校验子计算器240、权重确定单元241、比特运算单元242和选择器243中的每个可以由电路实现,例如包括晶体管、逻辑门和其他组件。
权重确定单元241可从第三校验子计算器230接收第三校验子S3,并且确定第三校验子S3的权重EO。如果第三校验子S3的权重是奇数,则权重确定单元241向选择器243输出“0”;而如果第三校验子S3的权重是偶数,则权重确定单元241向选择器243输出“1”。
比特运算单元242可以从第三校验子计算器230接收第三校验子S3,并且从SRAM接收擦除的列数据HD。比特运算单元242可以通过对第三校验子S3和擦除的列数据HD执行逐比特地(bitwise)异或运算来计算修正的校验子MS。
选择器243可从第三校验子计算器230接收第三校验子S3,并且从比特运算单元242接收修正的校验子MS。选择器243可以响应于第三校验子S3的权重EO,输出第三校验子S3和修正的校验子MS之一。例如,如果第三校验子S3的权重是奇数,则选择器243可以输出第三校验子S3作为最终校验子FS;而如果第三校验子S3的权重是偶数,则选择器243可以输出修正的校验子MS作为最终校验子FS。
返回参考图10,修正的校验子解码器250可以从SRAM接收擦除的列索引HI,并且可以从修正的校验子计算器240接收第三校验子S3的权重EO和最终校验子FS。
修正的校验子解码器250可以使用擦除的列索引HI、第三校验子S3的权重EO和最终校验子FS来生成错误向量v,该错误向量v估计从体阵列BA接收的码字中的擦除的位置和随机错误的位置。
例如,如果第三校验子S3的权重EO是偶数,则修正的校验子解码器250可以使用修正的校验子MS和擦除的列索引HI来生成错误向量。错误向量可以是估计接收的码字中的擦除的位置和随机错误的位置的向量。如果第三校验子S3的权重EO是奇数,则修正的校验子解码器250可以使用第三校验子S3生成错误向量。错误向量可以是估计接收的码字中的随机错误的位置的向量。
图12和图13是示出根据本发明构思的实施例的修正的校验子解码器的图。
参考图12,修正的校验子解码器250可以包括多个解码器250-1至250-16。例如,擦除的列索引HI可以由128比特组成,并且修正的校验子解码器250可以包括16个解码器250-1至250-16。多个解码器250-1至250-16中的每个可以通过8个比特来接收擦除的列索引HI,并且计算第三校验子S3的权重EO和最终校验子FS。
由于擦除的列索引HI指示与码字中擦除的位置相对应的H矩阵的列的位置,所以多个解码器250-1至250-16中的每个可以基于擦除的列索引HI来估计接收的码字中擦除的位置。例如,多个解码器250-1至250-16中的每个可以每次1比特地将第三校验子S3的权重EO与擦除的8比特的列索引HI进行比较。如果第三校验子S3的权重EO是偶数,并且擦除的列索引HI的特定比特是“1”,则接收的码字中与擦除的列索引HI的特定比特是“1”的位置相对应的比特位置可以被估计为擦除的位置,并且因此,多个解码器250-1至250-16中的相对应的解码器可以输出“1”。
另外,多个解码器250-1至250-16中的每个可以将最终校验子FS与H矩阵的每列的分量逐比特地进行比较。如果H矩阵的列的分量与最终校验子FS相匹配(例如,其是一致的),则接收的码字中与H矩阵的列的位置相对应的比特位置可以被估计为随机错误的位置,并且因此,多个解码器250-1至250-16可以分别地输出数据“1”。
因此,多个解码器250-1至250-16可以生成估计接收的码字中的擦除的位置和随机错误的位置的错误向量v。
多个解码器250-1至250-16中的每个可以包括八个子解码器,并且由于多个子解码器中的每个具有彼此相似的结构和功能,所以描述解码器250-1的第一子解码器。
参考图13,第一子解码器SUB可以包括第一逻辑电路251、第二逻辑电路252和第三逻辑电路253。
第一逻辑电路251可以接收擦除的列索引的第一比特HI1和第三校验子S3的权重EO。第一逻辑电路251可以对擦除的列索引的第一比特HI1和第三校验子S3的权重EO执行AND运算。当第三校验子S3的权重EO是偶数并且擦除的列索引HI的第一比特是“1”时,第一逻辑电路251可以输出“1”。以这种方式,接收的码字中的第一比特的位置可以被估计为擦除的位置。
第二逻辑电路252可以对与H矩阵的第一列中的分量“1”相对应的最终校验子FS的比特执行比特翻转。比特翻转是指反向地改变比特信息,例如,将“0”改变为“1”并且将“1”改变为“0”。
第二逻辑电路252可以包括第一逻辑与(AND)门A1至第八逻辑与门A8。假设H矩阵的第一列的分量是“101010000”,第一与门A1可以原样地接收最终校验子FS的第一比特,并且可以通过反转第二比特来接收最终校验子FS的第二比特。第一与门A1可以对最终校验子FS的第一比特和通过反转最终校验子FS的第二比特获得的值执行与运算。
第二与门A2可以原样地接收最终校验子FS的第三比特,并且可以通过反转第四比特来接收最终校验子的第四输入。第二与门A2可以对最终校验子FS的第三比特和通过反转最终校验子FS的第四比特获得的值执行与运算。
第三与门A3可以原样地接收最终校验子FS的第五比特,并且可以通过反转第六比特来接收最终校验子FS的第六比特。第三与门A3可以对最终校验子FS的第五比特和通过反转最终校验子FS的第六比特获得的值执行与运算。
第四与门A4可以通过反转第七比特来接收最终校验子FS的第七比特,并且可以通过反转第八比特来接收最终校验子FS的第八比特。第四与门A4可以对通过反转最终校验子FS的第七比特获得的值和通过反转最终校验子FS的第八比特获得的值执行与运算。
第五与门A5可以对第一与门A1的输出和第二与门A2的输出执行与运算,第六与门A6可以对第三与门A3的输出和第四与门A4的输出执行与运算,以及第七与门A7可以对第五与门A5的输出和第六与门A6的输出执行与运算。
第八与门A8可以对第七与门A7的输出和通过反转最终校验子FS的第九比特获得的值执行与运算。
第二逻辑电路252可以将最终校验子FS与H矩阵的第一列的分量逐比特地进行比较,并且如果最终校验子FS与H矩阵的第一列的分量相匹配,则第二逻辑电路252可以输出“1”。以这种方式,可以估计到接收的码字中与H矩阵的列的位置相对应的比特位置是随机错误的位置。
第三逻辑电路253可以对第一逻辑电路251的输出和第二逻辑电路252的输出执行异或运算。因此,第三逻辑电路253可以在与接收的码字中的擦除的位置或随机错误的位置相对应的比特位置中输出“1”。
当第三校验子S3的权重EO是偶数并且擦除的列索引HI的第二比特是“1”时,第二子解码器可以输出“1”。另外,第二子解码器可以将最终校验子FS与H矩阵的第二列的分量逐比特地进行比较,并且当最终校验子FS与H矩阵的第二列的分量相匹配时,输出“1”。因此,第二子解码器可以在与接收的码字中的擦除的位置或随机错误的位置相对应的比特位置中输出“1”。
以类似于上述的方式,剩余的子解码器中的每个可以在与接收的码字中的擦除的位置或随机错误的位置相对应的比特位置中输出“1”。
返回参考图10,数据转换单元260可以通过对128比特的主数据MD1和MD2以及错误向量v执行逐比特地异或运算来纠正主数据MD1和MD2中的错误。
图14是示出根据本发明构思的实施例的ECC解码器的图。
参考图14,ECC解码器300可以包括第一校验子计算器310至第三校验子计算器330、修正的校验子计算器340、第一解码器350至第三解码器370、权重确定单元380、第四解码器390和数据转换单元395。
根据实施例,包括128比特的主数据MD和9比特的奇偶校验数据PD的码字可以通过输入/输出读出放大器IOSA而从体阵列BA输出到ECC解码器300。ECC解码器300可以接收包括128比特的主数据MD和9比特的奇偶校验数据PD的码字。H矩阵可以是9×(128+9)矩阵。
第一校验子计算器310可以计算针对主数据MD的至少一部分MD1的第一校验子S1。例如,第一校验子计算器310可以接收128比特的主数据MD当中的64比特的主数据MD1,并且将H矩阵乘以64比特的主数据MD1以计算第一校验子S1。
第二校验子计算器320可以计算针对主数据MD的另一部分MD2的第二校验子S2。例如,第二校验子计算器320可以接收128比特的主数据MD当中的剩余的64比特的主数据MD2,并且将H矩阵乘以64比特的主数据MD2以计算第二校验子S2。
第三校验子计算器330可以从第一校验子计算器310接收第一校验子S1,从第二校验子计算器320接收第二校验子S2,以及通过输入/输出读出放大器IOSA从体阵列BA接收奇偶校验数据PD。第三校验子计算器330可以通过对第一校验子S1、第二校验子S2和奇偶校验数据PD执行异或运算来计算第三校验子S3。
修正的校验子计算器340可以从第三校验子计算器330接收第三校验子S3,并且从SRAM接收擦除的列数据HD。
图15是示出根据本发明构思的实施例的修正的校验子计算器的图。
参考图15,修正的校验子计算器340可以包括比特运算单元341。
比特运算单元341可以从第三校验子计算器330接收第三校验子S3,并且可以从SRAM接收擦除的列数据HD。比特运算单元341可对第三校验子S3和擦除的列数据HD执行逐比特的异或操作,以计算修正的校验子MS。
返回参考图14,根据实施例,第一解码器至第四解码器350至370和390可以通过使用第三校验子的权重EO、第三校验子S3和修正的校验子MS来估计接收的码字中的随机错误的位置,从而生成错误向量v。例如,当第三校验子的权重EO是奇数,第三校验子与H矩阵的分量相匹配以及修正的校验子MS与H矩阵的分量相匹配时,则第一解码器至第四解码器350至370和390可以将与接收的码字中H矩阵的列的位置相对应的比特位置估计为随机错误的位置。第一解码器至第四解码器350至370和390可以通过估计接收的码字中随机错误的位置来生成错误向量v。
根据实施例,第一解码器至第四解码器350至370和390可以使用擦除的列数据HD来估计接收的码字中擦除的位置,并且通过使用修正的校验子MS来估计接收的码字中随机错误的位置来生成错误向量v。例如,当第三校验子的权重EO是偶数并且擦除的列数据HD与H矩阵的列的分量相匹配时,接收的码字中与H矩阵的列的位置对应的比特位置可以被估计为擦除的位置。另外,当第三校验子的权重EO是偶数并且修正的校验子MS与H矩阵的列的分量相匹配时,接收的码字中与H矩阵的列的位置相对应的比特位置可以被估计为随机错误的位置。第一解码器至第四解码器350至370和390可以通过估计接收的码字中擦除的位置和随机错误的位置来生成错误向量v。
也被描述为数据转换电路的数据转换单元395可以在128比特的主数据MD1和MD2与错误向量v之间执行逐比特的异或运算,以纠正主数据MD1和MD2中的错误。
第一解码器至第四解码器350至370和390的操作详细描述如下。
第一解码器350可以从修正的校验子计算器340接收修正的校验子MS。第一解码器350可以使用修正的校验子MS生成估计接收的码字中的随机错误的位置的第一错误向量v1。第一解码器350可以包括多个子解码器,并且多个子解码器中的每个可以将修正的校验子MS与H矩阵的每列的分量逐比特地进行比较。如果修正的校验子MS与H矩阵的特定列的分量相匹配,则接收的码字中与H矩阵的相对应的列的位置相对应的比特位置可以被估计为随机错误的位置。因此,当修正的校验子MS与H矩阵的相对应的列的分量相匹配时,多个子解码器中的每个可以输出数据“1”。第一解码器350可以包括128个子解码器,并且由于多个子解码器中的每个具有相似的结构和功能,所以参考图16描述第一子解码器。
图16是示出根据本发明构思的实施例的第一子解码器的图。
参考图16,第一子解码器SUB1可以对与H矩阵的第一列中的分量“1”相对应的修正的校验子MS的比特执行比特翻转。比特翻转是指反向地改变比特信息,例如,将“0”改变为“1”并且将“1”改变为“0”。
第一子解码器SUB1可以包括第一逻辑与门A1至第八逻辑与门A8。假设H矩阵的第一列的分量是“101010000”,第一与门A1可以原样地接收修正的校验子MS的第一比特,并且可以通过反转第二比特来接收最终校验子FS的第二比特。第一与门A1可以对修正的校验子MS的第一比特和通过反转修正的校验子MS的第二比特获得的值执行与运算。
第二与门A2可以原样地接收修正的校验子MS的第三比特,并且可以通过反转第四比特来接收最终校验子的第四输入。第二与门A2可以对修正的校验子MS的第三比特和通过反转修正的校验子MS的第四比特获得的值执行与运算。
第三与门A3可以原样地接收修正的校验子MS的第五比特,并且可以通过反转第六比特来接收修正的校验子MS的第六比特。第三与门A3可以对修正的校验子MS的第五比特和通过反转修正的校验子MS的第六比特获得的值执行与运算。
第四与门A4可以通过反转第七比特来接收修正的校验子MS的第七比特,并且可以通过反转第八比特来接收修正的校验子MS的第八比特。第四与门A4可以对通过反转修正的校验子MS的第七比特获得的值和通过反转修正的校验子MS的第八比特获得的值执行与运算。
第五与门A5可以对第一与门A1的输出和第二与门A2的输出执行与运算,第六与门A6可以对第三与门A3的输出和第四与门A4的输出执行与运算,以及第七与门A7可以对第五与门A5的输出和第六与门A6的输出执行与运算。
第八与门A8可以对第七与门A7的输出和通过反转修正的校验子MS的第九比特获得的值执行与运算。
第一子解码器SUB1可以将修正的校验子MS与H矩阵的第一列的分量逐比特地进行比较,并且如果修正的校验子MS与H矩阵的第一列的分量相匹配,则第二逻辑电路252可以输出“1”。以这种方式,接收的码字中的第一比特位置可以被估计为随机错误的位置。
第二子解码器可以将修正的校验子MS与H矩阵的第二列的分量逐比特地进行比较,并且当修正的校验子MS与H矩阵的第二列的分量相匹配时,输出“1”。以这种方式,接收的码字中的第二比特位置可以被估计为随机错误的位置。
以类似于上述的方式,当修正的校验子MS与H矩阵的列的分量相匹配时,剩余的子解码器中的每个可以输出数据“1”。
返回参考图14,第二解码器360可以从第三校验子计算器330接收第三校验子S3。第二解码器360可以使用第三校验子S3生成第二错误向量v2,该第二错误向量v2估计从体阵列BA接收的码字中的随机错误的位置。第二解码器360可以包括多个子解码器,并且多个子解码器中的每个可以将第三校验子S3与H矩阵的每列的分量逐比特地进行比较。如果第三校验子S3与H矩阵的特定列的分量相匹配,则接收的码字中与下述位置相对应的比特位置可以被估计为随机错误的位置:该位置为H矩阵的相对应的列的位置;并且因此,发生这种情况的子解码器可以输出数据“1”。
由于在第二解码器中所包括的多个子解码器中的每个具有与图16的第一子解码器的结构和功能类似的结构和功能,因此省略了对其的冗余描述。
第三解码器370可以从SRAM接收擦除的列数据HD。第三解码器370可以使用擦除的列数据HD来生成第三错误向量v3,该第三错误向量v3估计从体阵列BA接收的码字中的擦除的位置。第三解码器370可以包括多个子解码器,并且多个子解码器中的每个可以将擦除的列数据HD与H矩阵的每列的分量进行比较。如果擦除的列数据HD与H矩阵的列的分量相匹配,则接收的码字中与H矩阵的列的位置相对应的比特位置可以被估计为擦除的位置,并且因此,发生这种情况的子解码器可以输出数据“1”。
由于在第三解码器中所包括的多个子解码器中的每个具有与图16的第一子解码器的结构和功能类似的结构和功能,因此省略了对其的冗余描述。
权重确定单元380可以确定第三校验子S3的权重。如果第三校验子S3的权重是奇数,则权重确定单元380可以将第三校验子S3的权重EO输出为“1”;而如果第三校验子S3的权重是偶数,则可以将第三校验子S3的权重EO输出为“0”。
第四解码器390可以从第一解码器350接收第一错误向量v1,可以从第二解码器360接收第二错误向量v2,可以从第三解码器370接收第三错误向量v3,以及可以从权重确定单元380接收第三校验子的权重EO。第四解码器390可使用第一错误向量v1、第二错误向量v2、第三错误向量v3和第三校验子的权重EO来生成最终错误向量v。
图17是示出根据本发明构思的实施例的第四解码器的图。
参考图17,第四解码器390可以包括多个子解码器390-1至390-128。作为示例,接收的码字的主数据可以具有128比特,并且第四解码器390可以包括128个子解码器390-1至390-128。子解码器390-1至390-128中的每个可以包括反相器(inverter)391、与门392、第一或(OR)门393和第二或门394。
第一子解码器390-1的操作描述如下。
反相器391可以输出通过反转权重确定单元380的输出EO获得的值。与门392可以接收来自反相器391的输出和与第三解码器370的输出v3的第一比特相对应的值,并且对反相器391的输出和与解码器370的输出v3的第一比特相对应的值执行与运算。如果第三校验子S3的权重是偶数,并且擦除的列数据HD与H矩阵的第一列相匹配,则与门392的输出可以是“1”。因此,擦除的位置可以被估计为接收的码字中的第一比特。
第一或门393可以接收与门392的输出和与第二解码器360的输出v2的第一比特相对应的值,并且对与门392的输出和与第二解码器360的输出v2的第一比特相对应的值执行或运算。如果第三校验子S3与H矩阵的第一列相匹配,但是其不是擦除,则第一或门393的输出可以是“1”。因此,随机错误的位置可以被估计为接收的码字中的第一比特。
替选地,如果第三校验子S3的权重是偶数,擦除的列数据HD与H矩阵的第一列相匹配,但是其不是随机错误,则第一或门393的输出可以是“1”。因此,擦除的位置可以被估计为接收的码字中的第一比特。
第二或门394可以接收第一或门393的输出和与第一解码器350的输出v1中的第一比特相对应的值,并且对第一或门393的输出和与第一解码器350的输出v1中的第一比特相对应的值执行或运算。如果修正的校验子MS与H矩阵的第一列相匹配,第三校验子S3的权重是偶数,擦除的列数据HD与H矩阵的第一列相匹配,但是其不是随机错误,则第二或门394的输出可以是“1”。因此,擦除的位置可以被估计为接收的码字中的第一比特。替选地,如果第三校验子S3与H矩阵的第一列相匹配,但是其不是擦除,则第二或门394的输出可以是“1”。因此,随机错误的位置可以被估计为接收的码字中的第一比特。
以类似于上述的方式,剩余的子解码器中的每个可以在接收的码字中与擦除的位置或随机错误的位置相对应的比特位置中输出“1”。
根据本发明构思的实施例,由于可以使用擦除信息通过SEC-DED来纠正2比特错误,因此可提供一种易于以低成本实现的纠错方法。
虽然上面已经示出和描述了示例性实施例,但是对于本领域技术人员将显而易见的是,在不脱离由所附权利要求限定的本发明的范围的情况下,可以进行修改和变化。

Claims (21)

1.一种存储器设备的操作方法,所述操作方法包括:
在存储器区域中存储关于包括擦除的码字的位置信息和包括关于擦除的位置信息的擦除信息;
在上电期间,将关于包括擦除的码字的位置信息加载到行解码器和列解码器;
响应于来自主机的读取指令,确定与读取指令相对应的读取地址与关于包括擦除的码字的位置信息是否一致;
当读取地址与关于包括擦除的码字的位置信息一致时,将关于擦除的位置信息传送到纠错码(ECC)解码器;以及
由ECC解码器使用关于擦除的位置信息来纠正从存储单元阵列接收的码字中的错误。
2.根据权利要求1所述的操作方法,其中,所述错误包括1比特的擦除和1比特的随机错误。
3.根据权利要求1所述的操作方法,其中,所述存储器区域是反熔丝阵列和内容可寻址存储器(CAM)中的至少一个。
4.根据权利要求1所述的操作方法,其中
由ECC解码器对错误的纠正包括:
使用接收的码字和H矩阵来计算校验子;
使用校验子和关于擦除的位置信息来计算修正的校验子;
确定校验子的权重;以及
当校验子的权重是偶数时,使用关于擦除的位置信息和修正的校验子来纠正错误。
5.根据权利要求4所述的操作方法,其中,使用关于擦除的位置信息纠正接收的码字中的1比特的擦除,并且使用修正的校验子纠正接收的码字中的1比特的随机错误。
6.根据权利要求4所述的操作方法,其中,当所述校验子的权重是奇数时,使用所述校验子来纠正接收的码字中的1比特的随机错误。
7.一种存储器设备的操作方法,所述操作方法包括:
从存储单元阵列接收码字并且计算接收的码字的校验子;
使用校验子和擦除的列数据计算修正的校验子;
确定校验子的权重;以及
当校验子的权重是偶数时,使用修正的校验子和擦除的列索引来纠正接收的码字的错误,
其中,擦除的列数据是与接收的码字中的擦除的位置相对应的H矩阵的分量,并且擦除的列索引指示与接收的码字中的擦除相对应的比特位置。
8.根据权利要求7所述的操作方法,其中,对校验子和擦除的列数据执行逐比特的异或XOR运算,以计算修正的校验子。
9.根据权利要求7所述的操作方法,其中
对错误的纠正包括:
通过使用擦除的列索引估计接收的码字中擦除的位置并且使用修正的校验子估计接收的码字中随机错误的位置来生成错误向量;以及
使用接收的码字和错误向量来纠正接收的码字的错误。
10.根据权利要求9所述的操作方法,其中
错误向量的生成包括:
将接收的码字中与擦除的列索引的特定比特为“1”的位置相对应的比特位置估计为擦除的位置;
将修正的校验子与H矩阵的每列的分量逐比特地进行比较;以及
当修正的校验子和H矩阵的相对应的列的分量彼此一致时,将接收的码字中与H矩阵的相对应的列的位置相对应的比特位置估计为随机错误的位置。
11.根据权利要求7所述的操作方法,其中,
在对错误的纠正中,
当校验子的权重是奇数时,使用校验子来纠正接收的码字的错误。
12.根据权利要求11所述的操作方法,其中
对错误的纠正包括:
通过使用校验子估计接收的码字中的随机错误的位置来生成错误向量;以及
使用接收的码字和错误向量来纠正接收的码字的错误。
13.根据权利要求12所述的操作方法,其中
错误向量的生成包括:
将校验子与H矩阵的每列的分量逐比特地进行比较;以及
当校验子与H矩阵的相对应的列的分量一致时,将接收的码字中与H矩阵的相对应的列的位置相对应的比特位置估计为随机错误的位置。
14.一种存储器设备的操作方法,所述操作方法包括:
从存储单元阵列接收码字并且计算接收的码字的校验子;
使用校验子和擦除的列数据计算修正的校验子;
确定校验子的权重;以及
使用校验子、修正的校验子和校验子的权重来纠正接收的码字的错误,
其中,擦除的列数据是在接收的码字中与擦除的位置相对应的H矩阵的分量。
15.根据权利要求14所述的操作方法,其中,对校验子和擦除的列数据执行逐比特的异或XOR运算,以计算修正的校验子。
16.根据权利要求14所述的操作方法,其中
对错误的纠正包括:
通过使用校验子的权重、校验子和修正的校验子来估计接收的码字中的随机错误的位置,生成错误向量;以及
使用接收的码字和错误向量来纠正接收的码字的错误。
17.根据权利要求16所述的操作方法,其中,
在错误向量的生成中,
当校验子的权重是奇数,校验子和H矩阵的分量彼此一致以及修正的校验子和H矩阵的分量彼此一致时,将接收的码字中与H矩阵的分量的列的位置相对应的比特位置估计为随机错误的位置。
18.根据权利要求14所述的操作方法,其中
对错误的纠正包括:
通过使用擦除的列数据估计接收的码字中擦除的位置并且使用修正的校验子估计接收的码字中随机错误的位置来生成错误向量;以及
使用接收的码字和错误向量来纠正接收的码字的错误。
19.根据权利要求18所述的操作方法,其中,
在错误向量的生成中,
当擦除的列数据和H矩阵的列的分量彼此一致时,接收的码字中与H矩阵的相对应的列的位置相对应的比特位置被估计为擦除的位置,以及
当修正的校验子和H矩阵的列的分量彼此一致时,接收的码字中与H矩阵的相应的列的位置相对应的比特位置被估计为随机错误的位置。
20.根据权利要求19所述的操作方法,其中,所述校验子的权重是偶数。
21.一种存储器设备,其被配置为执行如权利要求1至20中的任一项中所述的方法。
CN202210936829.7A 2021-08-06 2022-08-05 存储器设备及其操作方法 Pending CN115705265A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210103984A KR20230021949A (ko) 2021-08-06 2021-08-06 메모리 장치 및 이의 동작 방법
KR10-2021-0103984 2021-08-06

Publications (1)

Publication Number Publication Date
CN115705265A true CN115705265A (zh) 2023-02-17

Family

ID=82321510

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210936829.7A Pending CN115705265A (zh) 2021-08-06 2022-08-05 存储器设备及其操作方法

Country Status (5)

Country Link
US (1) US11881277B2 (zh)
EP (1) EP4134825A3 (zh)
KR (1) KR20230021949A (zh)
CN (1) CN115705265A (zh)
TW (1) TW202307846A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11637685B2 (en) * 2021-08-31 2023-04-25 Samsung Display Co., Ltd. System and method for transition encoding with flexible word-size
US20230396271A1 (en) * 2022-06-01 2023-12-07 Micron Technology, Inc. Early stopping of bit-flip low density parity check decoding based on syndrome weight

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5020060A (en) * 1987-06-30 1991-05-28 Matsushita Electric Industrial Co., Ltd. Error code correction device having a galois arithmetic unit
US5373511A (en) * 1992-05-04 1994-12-13 Motorola, Inc. Method for decoding a reed solomon encoded signal with inner code and apparatus for doing same
GB2289779B (en) * 1994-05-24 1999-04-28 Intel Corp Method and apparatus for automatically scrubbing ECC errors in memory via hardware
US5715262A (en) * 1995-07-12 1998-02-03 Lsi Logic Corporation Errors and erasures correcting reed-solomon decoder
TW541519B (en) * 2000-05-24 2003-07-11 Acer Labs Inc Encoding/decoding system in optical disk storage device
US6976194B2 (en) * 2002-06-28 2005-12-13 Sun Microsystems, Inc. Memory/Transmission medium failure handling controller and method
US7278085B1 (en) 2003-03-06 2007-10-02 Maxtor Corporation Simple error-correction codes for data buffers
US6992937B2 (en) * 2003-07-28 2006-01-31 Silicon Storage Technology, Inc. Column redundancy for digital multilevel nonvolatile memory
US7322002B2 (en) 2004-05-26 2008-01-22 Micron Technology, Inc. Erasure pointer error correction
JP2006179101A (ja) * 2004-12-22 2006-07-06 Fujitsu Ltd 半導体記憶装置
US8239735B2 (en) 2006-05-12 2012-08-07 Apple Inc. Memory Device with adaptive capacity
US8010875B2 (en) 2007-06-26 2011-08-30 International Business Machines Corporation Error correcting code with chip kill capability and power saving enhancement
US8015475B2 (en) * 2007-07-26 2011-09-06 Texas Instruments Incorporated Erasure decoding for receivers
US8117519B2 (en) 2008-01-15 2012-02-14 Micron Technology, Inc. Memory apparatus and method using erasure error correction to reduce power consumption
KR101466270B1 (ko) 2008-09-19 2014-11-28 삼성전자주식회사 비휘발성 메모리 시스템 및 그것의 데이터 처리 방법
US10230396B1 (en) * 2013-03-05 2019-03-12 Microsemi Solutions (Us), Inc. Method and apparatus for layer-specific LDPC decoding
US9633740B1 (en) 2016-02-11 2017-04-25 Seagate Technology Llc Read retry operations where likelihood value assignments change sign at different read voltages for each read retry
US9323602B2 (en) * 2014-01-20 2016-04-26 Freescale Semiconductor, Inc. Error correction with extended CAM
WO2016014399A1 (en) 2014-07-21 2016-01-28 Rensselaer Polytechnic Institute Error tolerant memory system
US9680509B2 (en) 2015-03-27 2017-06-13 Intel Corporation Errors and erasures decoding from multiple memory devices
JP2017022651A (ja) * 2015-07-14 2017-01-26 ルネサスエレクトロニクス株式会社 誤り訂正装置、半導体記憶装置、および誤り訂正方法
US9768807B2 (en) 2015-08-31 2017-09-19 Sandisk Technologies Llc On-the-fly syndrome and syndrome weight computation architecture for LDPC decoding
KR20170068681A (ko) 2015-12-09 2017-06-20 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10176040B2 (en) * 2016-04-05 2019-01-08 Micron Technology, Inc. Error correction code (ECC) operations in memory
KR102608908B1 (ko) 2016-06-23 2023-12-04 에스케이하이닉스 주식회사 데이터의 오류를 정정하는 방법 및 이를 이용하는 반도체장치
KR102504178B1 (ko) 2016-08-23 2023-02-28 에스케이하이닉스 주식회사 반도체장치
KR20180089104A (ko) 2017-01-31 2018-08-08 에스케이하이닉스 주식회사 메모리 모듈, 이를 포함하는 메모리 시스템 및 이의 에러 정정 방법
US10514983B2 (en) * 2017-04-26 2019-12-24 Micron Technology, Inc. Memory apparatus with redundancy array
US10860419B2 (en) 2018-12-28 2020-12-08 Intel Corporation Minimal aliasing bit-error correction code
US11144391B2 (en) 2019-06-13 2021-10-12 Nvidia Corporation Techniques for generating symbol-preserving error correction codes
US11133831B2 (en) * 2019-10-29 2021-09-28 Seagate Technology Llc Code rate adaptation
KR20220057087A (ko) * 2020-10-29 2022-05-09 에스케이하이닉스 주식회사 리드-솔로몬 코드의 소프트-디시젼 디코딩 방법 및 장치

Also Published As

Publication number Publication date
US20230037996A1 (en) 2023-02-09
TW202307846A (zh) 2023-02-16
EP4134825A2 (en) 2023-02-15
US11881277B2 (en) 2024-01-23
KR20230021949A (ko) 2023-02-14
EP4134825A3 (en) 2023-03-08

Similar Documents

Publication Publication Date Title
US7904790B2 (en) Flash memory device error correction code controllers and related methods and memory systems
US10803971B2 (en) Device for supporting error correction code and test method thereof
US10884848B2 (en) Memory device, memory system including the same and operation method of the memory system
CN115705265A (zh) 存储器设备及其操作方法
JP4864395B2 (ja) 半導体記憶装置
KR20190064100A (ko) 메모리 시스템 및 이의 에러 정정 방법
US20080082870A1 (en) Parallel bit test device and method using error correcting code
KR20170112630A (ko) 반도체장치 및 반도체시스템
US12081234B2 (en) ECC memory chip encoder and decoder
US20210083690A1 (en) Memory system and operating method thereof
US7075851B2 (en) Semiconductor memory device inputting/outputting data and parity data in burst operation
US10665297B2 (en) Memory systems for memory devices and methods of operating the memory systems
US12038807B2 (en) Method and system for on-ASIC error control encoding
US11108412B2 (en) Memory systems and methods of correcting errors in the memory systems
TWI748507B (zh) 資料存取系統及操作資料存取系統的方法
JP2005011386A (ja) 誤り訂正装置
US11928026B2 (en) Memory and operation method of memory
CN113808642B (zh) 数据存取系统和操作数据存取系统的方法
US12034457B2 (en) Memory, memory module, memory system, and operation method of memory system
US20230231578A1 (en) Method and system for on-asic error control decoding
JP4159896B2 (ja) 連想メモリ
JPS5837638B2 (ja) キオクソウチ

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