KR20210045875A - 복수의 에러 정정 레벨들을 위한 패리티 생성 로직, 이를 포함하는 메모리 컨트로러 및 메모리 모듈, 및 패리티 생성 방법 - Google Patents

복수의 에러 정정 레벨들을 위한 패리티 생성 로직, 이를 포함하는 메모리 컨트로러 및 메모리 모듈, 및 패리티 생성 방법 Download PDF

Info

Publication number
KR20210045875A
KR20210045875A KR1020190129436A KR20190129436A KR20210045875A KR 20210045875 A KR20210045875 A KR 20210045875A KR 1020190129436 A KR1020190129436 A KR 1020190129436A KR 20190129436 A KR20190129436 A KR 20190129436A KR 20210045875 A KR20210045875 A KR 20210045875A
Authority
KR
South Korea
Prior art keywords
parity
matrix
column
error correction
symbols
Prior art date
Application number
KR1020190129436A
Other languages
English (en)
Inventor
이성은
송영욱
Original Assignee
에스케이하이닉스 주식회사
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 에스케이하이닉스 주식회사 filed Critical 에스케이하이닉스 주식회사
Priority to KR1020190129436A priority Critical patent/KR20210045875A/ko
Priority to US16/910,865 priority patent/US11171670B2/en
Priority to CN202010745406.8A priority patent/CN112687324A/zh
Publication of KR20210045875A publication Critical patent/KR20210045875A/ko

Links

Images

Classifications

    • 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/2906Coding, 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 using block 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
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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
    • 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/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

패리티 생성 로직은, 오리지널 데이터에 대해 제1 에러정정능력을 갖는 제1 에러정정모드에서 제1 패리티를 생성하는 제1 패리티 생성부와, 그리고 제1 패리티를 이용하여 제2 에러정정능력을 갖는 제2 에러정정모드에서 제2 패리티를 생성하는 제2 패리티 생성부를 포함한다.

Description

복수의 에러 정정 레벨들을 위한 패리티 생성 로직, 이를 포함하는 메모리 컨트로러 및 메모리 모듈, 및 패리티 생성 방법{Parity generating circuit for a plurality of error correction levels, memory controller and memory module including the parity generating circuit, and method for generating the parity}
본 개시의 여러 실시예들은 메모리 시스템에 관한 것으로서, 특히 복수의 에러 정정 레벨들을 위한 패리티 생성 로직, 이를 포함하는 메모리 컨트로러 및 메모리 모듈, 및 패리티 생성 방법에 관한 것이다.
일반적으로 정보를 전송하는 경로를 채널(channel)이라 부를 수 있다. 정보가 유선통신을 이용하여 전송되는 경우, 정보가 전송되는 전송선(transmission line)이 채널을 구성한다. 정보가 무선통신을 이용하여 전송되는 경우, 채널은 정보를 포함하는 전자기파가 통과하는 대기(air)일 수 있다. 메모리 미디어(memory media)가 데이터를 저장하고, 저장된 데이터를 메모리 미디어로부터 읽어내는 과정도 채널을 통해 이루어진다.
채널을 경유하여 데이터가 전송되는 과정에서, 데이터에는 에러(error)가 포함될 수 있다. 이에 따라 데이터의 에러를 검출하고, 검출된 에러를 제거하여 최초의 데이터를 복원하기 위한 장치 및 방법에 관한 연구는 꾸준히 진행되고 있다. 메모리 미디어에 데이터를 라이트(write)하는 과정에서, 라이트 데이터(write data)에 에러 제어 코드 또는 에러 정정 코드(ECC; error control codes 또는 error correction codes)를 부가하여 전송 데이터를 생성하는 과정을 ECC 인코딩이라 한다. 그리고 메모리 미디어에 저장된 데이터에 대한 리드(read) 동작을 수행하여 리드 데이터(read data)로부터 부가된 데이터와 최초의 데이터를 분리하여 최초의 데이터를 복원하는 과정을 ECC 디코딩이라 한다.
본 출원이 해결하고자 하는 과제는, 로직 회로 면적을 줄일 수 있는 복수의 에러 정정 레벨들을 위한 패리티 생성 로직를 제공하는 것이다.
본 출원이 해결하고자 하는 다른 과제는, 위와 같은 패리티 생성 로직을 포함하는 메모리 컨트롤러를 제공하는 것이다.
본 출원이 해결하고자 하는 또 다른 과제는, 위와 같은 패리티 생성 로직을 포함하는 메모리 모듈을 제공하는 것이다.
본 출원이 해결하고자 하는 또 다른 과제는, 위와 같은 패리티 생성 로직을 이용한 패리티 생성 방법을 제공하는 것이다.
본 개시의 일 예에 따른 패리티 생성 로직은, 오리지널 데이터에 대해 제1 에러정정능력을 갖는 제1 에러정정모드에서 제1 패리티를 생성하는 제1 패리티 생성부와, 그리고 제1 패리티를 이용하여 제2 에러정정능력을 갖는 제2 에러정정모드에서 제2 패리티를 생성하는 제2 패리티 생성부를 포함한다.
본 개시의 일 예에 따른 메모리 컨트롤러는, 메모리 장치에 대한 라이트 동작을 제어하는 메모리 컨트롤러로서, 메모리 컨트롤러는, 오리지널 데이터에 대한 패리티를 생성하는 패리티 생성 로직을 갖는 에러정정코드 인코더를 포함한다. 상기 패리티 생성 로직은, 제1 에러정정능력을 갖는 제1 에러정정모드에서 제1 패리티를 생성하는 제1 패리티 생성부와, 그리고 제1 패리티를 이용하여 제2 에러정정능력을 갖는 제2 에러정정모드에서 제2 패리티를 생성하는 제2 패리티 생성부를 포함한다.
본 개시의 일 예에 따른 메모리 모듈은, 복수개의 메모리 미디어들 및 상기 메모리 미디어들에 대한 액세스 동작을 제어하는 메모리 모듈 컨트롤러를 포함하는 메모리 모듈로서, 메모리 모듈 컨트롤러는, 오리지널 데이터에 대한 패리티를 생성하는 패리티 생성 로직을 갖는 에러정정코드 인코더를 포함한다. 상기 패리티 생성 로직은, 제1 에러정정능력을 갖는 제1 에러정정모드에서 제1 패리티를 생성하는 제1 패리티 생성부와, 그리고 제1 패리티를 이용하여 제2 에러정정능력을 갖는 제2 에러정정모드에서 제2 패리티를 생성하는 제2 패리티 생성부를 포함한다.
본 개시의 일 예에 따른 패리티 생성 방법은, 오리지널 데이터에 대해 제1 에러정정능력을 갖는 제1 에러정정모드에서 제1 패리티를 생성하는 단계와, 그리고 제1 패리티를 이용하여 제2 에러정정능력을 갖는 제2 에러정정모드에서 제2 패리티를 생성하는 단계를 포함한다.
본 개시의 일 예에 따른 패리티 생성 방법은, 오리지널 데이터에 대해 제1 인코딩 매트릭스를 이용하여 제1 패리티 매트릭스를 연산하는 단계와, 제1 에러정정모드인 경우 제1 패리티 매트릭스를 출력하고, 제2 에러정정모드인 경우 제1 인코딩 매트릭스 및 변환 매트릭스를 이용하여 제2 패리티 매트릭스를 연산하는 단계와, 그리고 제2 에러정정모드에서 상기 제2 패리티 매트릭스를 출력하는 단계를 포함한다.
여러 실시예들에 따르면, 제2 에러정정모드에서의 에러정정을 위한 제2 패리티를 제1 에러정정모드에서의 에러정정을 위한 제1 패리티를 이용하여 생성함으로써, 복수의 에러 정정 레벨을 위한 패리티 생성 로직이 차지하는 회로 면적을 줄일 수 있다는 이점이 제공된다.
도 1은 본 개시에 따른 패리티 생성 로직을 포함하는 메모리 컨트롤러의 일 예를 나타내 보인 블록도이다.
도 2는 도 1의 메모리 컨트롤러의 패리티 생성 로직의 일 예를 나타내 보인 도면이다.
도 3은 본 개시에 따른 패리티 생성 방법의 일 예를 나타내 보인 플로 챠트이다.
도 4는 본 개시에 따른 패리티 생성 로직을 포함하는 메모리 모듈의 일 예를 나타내 보인 블록도이다.
도 5는 도 4의 메모리 모듈의 패리티 생성 로직의 일 예를 나타내 보인 도면이다.
본 출원의 예의 기재에서 "제1" 및 "제2"와 같은 기재는 부재를 구분하기 위한 것이며, 부재 자체를 한정하거나 특정한 순서를 의미하는 것으로 사용된 것은 아니다.
도 1은 본 개시에 따른 패리티 생성 로직(200)을 포함하는 메모리 컨트롤러(110)의 일 예를 나타내 보인 블록도이다. 도 1을 참조하면, 메모리 컨트롤러(110)는 ECC 로직(120)을 포함한다. ECC 로직(120)은 ECC 인코더(122) 및 ECC 디코더(124)를 포함할 수 있다. ECC 인코더(122)는, 메모리 컨트롤러(110)가 메모리 장치(미도시)에 데이터를 라이트(write)하는 동작 제어 과정에서 ECC 인코딩을 수행한다. ECC 디코더(124)는, 메모리 컨트롤러(110)가 메모리 장치의 데이터를 리드(read)하는 동작 제어 과정에서 ECC 디코딩을 수행한다. ECC 인코더(122)는 패리티 생성 로직(200)을 포함한다.
메모리 장치에 대한 라이트 동작에서, ECC 인코더(122)는, 외부, 예컨대 호스트(host)로부터 메모리 장치에 쓰여질 오리지널 데이터(original data)를 입력받는다. ECC 인코더(122)는, 오리지널 데이터에 에러 제어 코드 또는 에러 정정 코드를 부가한 패리티 데이터(parity data)를 생성한 후 코드워드(codeword)를 출력시킨다. 메모리 컨트롤러(110)는, ECC 인코더(122)로부터 출력되는 코드워드를 메모리 장치에 라이트한다. 코드워드는, 오리지널 데이터에 패리티 데이터가 부가되어 구성된다. 패리티 생성 로직(200)은, ECC 인코더(122) 내에서 코드워드를 구성하는 패리티 데이터를 생성한다.
메모리 장치에 대한 리드 동작에서, 메모리 컨트롤러(110)는, 메모리 장치로부터 액세스한 리드 데이터, 즉 오리지널 데이터 및 패리티 데이터로 구성되는 코드워드가 ECC 디코더(124)에 입력되도록 한다. ECC 디코더(124)는, 입력된 코드워드에 대한 ECC 디코딩을 수행한다. ECC 디코더(124)는, ECC 디코딩 과정에서 에러가 발생된 경우 에러를 정정하여 ECC 디코딩된 데이터(ECC decoded data)를 출력시킨다. ECC 디코딩은, 코드워드에 대한 신드롬을 연산하고, 연산된 신드롬을 이용하여 에러 위치 다항식을 연산하고, 에러 위치 다항식의 해를 구하여 에러 위치 및 에러 값을 연산하며, 그리고 검출된 에러를 정정함으로써 수행될 수 있다. 메모리 컨트롤러(110)는 ECC 디코더(124)로부터 출력되는 ECC 디코딩된 데이터를 외부, 예컨대 호스트로 전송할 수 있다.
본 예에서 ECC 로직(120)은 복수의 에러정정능력들(error correction capabilities), 예컨대 제1 에러정정능력 및 제2 에러정정능력을 갖는다. 일 예에서 에러정정능력은, 에러 정정에 사용되는 알고리즘에 따라 다른 형태를 가질 수 있다. 예컨대 복수개의 데이터 비트들 및 복수개의 패티리 비트들로 이루어진 심볼로 코드가 구성되는 RS(Reed-Solomon) 코드를 에러 정정 코드로 이용하는 경우, 에러정정능력은 에러가 정정될 수 있는 심볼들의 개수로 정의될 수 있다. 하나의 바이너리 데이터 비트 및 바이너리 패리티 비트로 코드가 구성되는 BCH 코드를 이용하는 경우, 에러정정능력은 에러가 정정될 수 있는 비트 수로 정의될 수 있다. 제1 에러정정능력은 제2 에러정정능력과 다를 수 있다. 제1 에러정정능력은 제2 에러정정능력보다 클 수도 있다. 제1 에러정정능력은 제1 에러정정모드에서 수행되고, 제2 에러정정능력은 제2 에러정정모드에서 수행된다. 메모리 장치의 라이트 및 리드 과정에서 에러 발생 확률이 상대적으로 높은 경우 ECC 로직(120)은 제1 에러정정모드에서 동작한다. 이 경우 상대적으로 많은 개수의 제1 패리티 생성이 요구된다. 반면에 메모리 장치의 라이트 및 리드 과정에서 에러 발생 확률이 상대적으로 낮은 경우 ECC 로직(120)은 제2 에러정정모드에서 동작한다. 이 경우 상대적으로 적은 개수의 제2 패리티 생성이 요구된다.
도 2는 도 1의 메모리 컨트롤러(110)의 패리티 생성 로직(200)의 일 예를 나타내 보인 도면이다. 도 2를 참조하면, 패리티 생성 회로(200)는, 제1 패리티 생성부(first parity generating part)(210)와, 제2 패리티 생성부(second parity generating part)(220)와, 그리고 선택출력부(230)를 포함한다. 일 예에서 선택출력부(230)는 멀티플렉서(multiplexer)로 구성될 수 있다. 제1 패리티 생성부(210)는, 오리지널 데이터에 대한 제1 패리티 매트릭스(PA1)를 생성한다. 제1 패리티 매트릭스(PA1)의 매트릭스 원소들 각각은, 제1 에러정정능력을 갖는 제1 에러정정모드에서 사용되는 제1 패리티 심볼로 구성된다. 제2 패리티 생성부(220)는, 제1 패리티 생성부(210)로부터 출력되는 제1 패리티 매트릭스(PA1)를 이용하여 제2 패리티 매트릭스(PA2)를 생성한다. 제2 패리티 매트릭스(PA2)의 매트릭스 원소들 각각은, 제2 에러정정능력을 갖는 제2 에러정정모드에서 사용되는 제2 패리티 심볼로 구성된다. 제2 패리티 매트릭스(PA2)가 제1 패리티 매트릭스(PA1)를 이용하여 생성되므로, 제1 패리티 생성부(210)는 제1 에러정정모드 및 제2 에러정정모드에서 동작된다. 반면에 제2 패리티 생성부(220)는 제2 에러정정모드에서만 동작된다.
이하에서는, RS 코드를 사용하는 RS 알고리즘을 이용하여 ECC 인코딩을 수행하는 경우를 예로 들기로 한다. BCH 코드를 이용하는 경우, 심볼 대신에 데이터 비트 단위로 처리되는 점을 제외하고는 RS 알고리즘을 이용하는 경우와 동일하다. 또한, 오리지널 데이터가 "NN"개("MN"은 자연수)의 데이터 심볼들로 구성되고, 제1 패리티 매트릭스(PA1)가 "NP1"개("NP1"은 자연수)의 제1 패리티 심볼들로 구성되며, 그리고 제2 패리티 매트릭스(PA2)가 "NP2"개("NP2"는 자연수)의 제2 패리티 심볼들로 구성되는 경우를 예로 들기로 한다. 도 1을 참조하여 설명한 바와 같이, 제1 에러정정모드에서의 에러정정능력이 제2 에러정정모드에서의 에러정정능력보다 크므로, 제1 패리티 매트릭스(PA1)의 제1 패리티 심볼들의 개수(NP1)는 제2 패리티 매트릭스(PA2)의 제2 패리티 심볼들의 개수(NP2)보다 크다.
제1 패리티 생성부(210)는, 제1 인코딩 매트릭스 로직(211)과, 데이터 인버스 매트릭스 로직(212)과, 그리고 제1 매트릭스 곱셈기(213)를 포함하여 구성될 수 있다. 제1 인코딩 매트릭스 로직(211)은, 아래의 수학식 1에 의해 연산되는 제1 인코딩 매트릭스(Encoding_Matrix1)를 출력한다.
Figure pat00001
수학식 1에서, [address(check1)]-1은 매트릭스 [address(check1)]의 인버스 매트릭스이다. 매트릭스 [address(check1)]은 아래의 수학식 2와 같이 나타낼 수 있다.
Figure pat00002
수학식 2에서 매트릭스 [address(check1)]은 NP1행과 NP1열을 갖는다. 즉 매트릭스 [address(check1)]의 행들 및 열들의 개수는, 각각 제1 에러정정모드에서의 제1 패리티 심볼들의 개수(NP1)와 동일하다. 매트릭스 [address(check1)]을 구성하는 매트릭스 원소들(matrix elements) 각각은, 패리티 심볼과 곱해져서 신드롬 심볼을 계산할 때 사용되는 상수로 정의된다. 예컨대 1행 및 1열의 매트릭스 원소인 "AP0,0"은 첫번째 패리티 심볼과 곱해져서 첫번째 신드롬을 계산할 때 사용되는 상수이다. 그리고 NP1행 및 NP1열의 매트릭스 원소인 "APNP1-1,NP1-1"은 NP1번째 패리티 심볼과 곱해져서 NP1번째 신드롬을 계산할 때 사용되는 상수이다.
수학식 1에서, [address(data1)]는 아래의 수학식 3과 같이 나타낼 수 있다.
Figure pat00003
수학식 3에서 매트릭스 [address(data1)]은 NP1행과 NN열을 갖는다. 즉 매트릭스 [address(data1)]의 행들의 개수 및 열들의 개수는, 각각 제1 에러정정모드에서의 제1 패리티 심볼들의 개수(NP1) 및 데이터 심볼들의 개수(NN)와 동일하다. 매트릭스 [address(data1)]을 구성하는 매트릭스 원소들(matrix elements) 각각은, 데이터 심볼과 곱해져서 신드롬 심볼을 계산할 때 사용되는 상수로 정의된다. 예컨대 1행 및 1열의 매트릭스 원소인 "AD0,0"은 첫번째 데이터 심볼과 곱해져서 첫번째 신드롬을 계산할 때 사용되는 상수이다. 그리고 NP1행 및 NN열의 매트릭스 원소인 "ADNN1-1,NP-1"은 NN번째 데이터 심볼과 곱해져서 NP1번째 신드롬을 계산할 때 사용되는 상수이다.
데이터 인버스 매트릭스 로직(212)은, 아래의 수학식 4에 의해 연산되는 데이터 인버스 매트릭스(Data_Inverse_Matrix)를 출력한다.
Figure pat00004
수학식 4에서 데이터 인버스 매트릭스(Data_Inverse_Matrix)는 NN행과 1열을 갖는다. 데이터 인버스 매트릭스(Data_Inverse_Matrix)를 구성하는 매트릭스 원소들(matrix elements)(D0, D1, D2, …, DNN-2, DNN-1)은, NN개의 데이터 심볼들로 구성된다.
제1 매트릭스 곱셈기(213)는, 제1 인코딩 매트릭스 로직(211)으로부터 출력되는 제1 인코딩 매트릭스(Encoding_Matrix1)와 데이터 인버스 매트릭스 로직(212)으로부터 출력되는 데이터 인버스 매트릭스(Data_Inverse_Matrix)에 대한 매트릭스 곱셈을 수행하여 제1 패리티 매트릭스(PA1)를 출력한다. 제1 인코딩 매트릭스(Encoding_Matrix1)가 NP1행 및 NN열이고, 데이터 인버스 매트릭스(Data_Inverse_Matrix)가 NN행 및 1열이므로, 제1 패리티 매트릭스(PA1)는, 아래의 수학식 5에 나타낸 바와 같이, NP1행 및 1열의 매트릭스가 된다.
Figure pat00005
수학식 5에서 제1 패리티 매트릭스(PA1)는 NP1행과 1열을 갖는다. 제1 패리티 매트릭스(PA1)를 구성하는 매트릭스 원소들(matrix elements)(P10, P11, P12, …, P1NP1-2, P1NP1-1)은, NP1개의 제1 패리티 심볼들로 구성된다. 즉 제1 에러정정모드에서 사용되는 제1 패리티 심볼은, 제1 패리티 매트릭스(PA1)에서 열들 중 하나에 대응하는 값을 갖는다.
제1 매트릭스 곱셈기(213)로부터 출력되는 제1 패리티 매트릭스(PA1)는 멀티플렉서(230)의 제1 입력단자에 입력된다. 또한 제1 매트릭스 곱셈기(213)로부터 출력되는 제1 패리티 매트릭스(PA1)는 하위의 제1 패리티 매트릭스(PA1_1) 및 상위의 제1 패리티 매트릭스(PA1_2)로 나누어져서 각각 제2 패리티 생성부(220)의 매트릭스 가산기(223) 및 제2 매트릭스 곱셈기(222)에 입력된다. 하위의 제1 패리티 매트릭스(PA1_1)는, 아래의 수학식 6에 나타낸 바와 같이, 제1 패리티 매트릭스(PA1)의 매트릭스 원소들 중 첫번째 행부터 NP2번째 행의 매트릭스 원소들로 구성된다.
Figure pat00006
또한 상위의 제1 패리티 매트릭스(PA1_2)는, 아래의 수학식 7에 나타낸 바와 같이, 제1 패리티 매트릭스(PA1)의 매트릭스 원소들 중 (NP2+1)번째 행부터 마지막 행의 매트릭스 원소들로 구성된다.
Figure pat00007
제2 패리티 생성부(220)는, 변형 매트릭스 로직(221)과, 제2 매트릭스 곱셈기(222)와, 그리고 매트릭스 가산기(223)를 포함하여 구성될 수 있다. 변형 매트릭스 로직(221)은, 제1 패리티 매트릭스(PA1)을 이용하여 제2 패리티 매트릭스(PA2)를 연산하기 위해 사용되는 변형 매트릭스(Trans_Matrix)를 출력한다. 변형 매트릭스(Trans_Matrix)의 도출 과정을 설명하면, 먼저 제2 에러정정모드에서의 제2 인코딩 매트릭스(Encoding_Matrix2)는 아래의 수학식 8과 같다.
Figure pat00008
수학식 8에서, [address(check2)]-1은 매트릭스 [address(check2)]의 인버스 매트릭스이다. 매트릭스 [address(check2)]은 아래의 수학식 9와 같이 나타낼 수 있다.
Figure pat00009
수학식 9에서 매트릭스 [address(check2)]은 NP2행과 NP2열을 갖는다. 즉 매트릭스 [address(check2)]의 행들의 개수 및 열들의 개수는, 각각 제2 에러정정모드에서의 제2 패리티 심볼들의 개수(NP2)와 동일하다. 수학식 2에서의 매트릭스 [address(check1)]과 마찬가지로, 매트릭스 [address(check2)]를 구성하는 매트릭스 원소들 각각은, 패리티 심볼과 곱해져서 신드롬 심볼을 계산할 때 사용되는 상수로 정의된다. 예컨대 1행 및 1열의 매트릭스 원소인 "AP0,0"은 첫번째 패리티 심볼과 곱해져서 첫번째 신드롬을 계산할 때 사용되는 상수이다. 그리고 NP2행 및 NP2열의 매트릭스 원소인 "APNP2-1,NP2-1"은 NP2번째 패리티 심볼과 곱해져서 NP2번째 신드롬을 계산할 때 사용되는 상수이다.
수학식 9에서, [address(data2)]는 아래의 수학식 10과 같이 나타낼 수 있다.
Figure pat00010
수학식 10에서 매트릭스 [address(data2)]은 NP2행과 NN열을 갖는다. 즉 매트릭스 [address(data2)]의 행들의 개수 및 열들의 개수는, 각각 제2 에러정정모드에서의 제2 패리티 심볼들의 개수(NP2) 및 데이터 심볼들의 개수(NN)와 동일하다. 수학식 3에서의 매트릭스 [address(check1)]과 마찬가지로, 매트릭스 [address(data2)]을 구성하는 매트릭스 원소들 각각은, 데이터 심볼과 곱해져서 신드롬 심볼을 계산할 때 사용되는 상수로 정의된다. 예컨대 1행 및 1열의 매트릭스 원소인 "AD0,0"은 첫번째 데이터 심볼과 곱해져서 첫번째 신드롬을 계산할 때 사용되는 상수이다. 그리고 NP2행 및 NN열의 매트릭스 원소인 "ADNN1-1,NP-1"은 NN번째 데이터 심볼과 곱해져서 NP2번째 신드롬을 계산할 때 사용되는 상수이다.
매트릭스 [address(check2)]는 NP2행 및 NP2열이고, 매트릭스 [address(data2)]는 NP2행 및 NN열이므로, 제2 인코딩 매트릭스(Encoding_Matrix2)는 NP2행 및 NN열이 된다. 수학식 8에서 매트릭스 [address(data2)]를 [address(check11)]ㅧ[address(check1)]-1ㅧ[address(data1)]로 분할하면, 수학식 8의 제2 인코딩 매트릭스(Encoding_Matrix2)를 아래의 수학식 11과 같이 나타낼 수 있다.
Figure pat00011
수학식 11에서, 매트릭스 [address(check2)]-1은 NP2행 및 NP2열이고, 매트릭스 [address(check11)]은 NP2행 및 NP1열이고, 매트릭스 [address(check1)]-1은 NP1행 및 NP1열이며, 그리고 매트릭스 [address(data1)]은 NP1행 및 NN열이다. 수학식 11에서 매트릭스 [address(check11)]는 매트릭스 [address(check1)]에서 단지 행들의 일부만 사용한 매트릭스이다. 이는 매트릭스 연산을 위해, 매트릭스 [address(check11)]의 행의 개수를 매트릭스 [address(check2)]-1과의 열의 개수와 일치시키기 위해서이다. 이에 따라 매트릭스 [address(check11)]은, 수학식 2에서 나타낸 NP1행 및 NP1열의 매트릭스 [address(check1)]에서 NP2행까지의 매트릭스 원소를 가지며, 이는 아래의 수학식 12로 나타낼 수 있다.
Figure pat00012
수학식 12의 매트릭스 [address(check11)]은 아래의 수학식 13과 같이 나타낼 수 있다.
Figure pat00013
수학식 13에서와 같이, 매트릭스 [address(check11)]는, 첫번째 열에서 NP2열까지의 매트릭스 원소들로 구성되는 NP2행 및 NP2열의 매트릭스 [address(check2)]와, (NP2+1)열부터 마지막 열, 즉 NP1열까지의 매트릭스 원소들로 구성되는 NP2행 및 (NP1-NP2)열의 매트릭스 Xmat으로 분리될 수 있다. 매트릭스 Xmat에서 매트릭스 원소들은 임의의 상수로 구성된다.
한편 수학식 11에서 NP1행 및 NP1열의 매트릭스 [address(check1)]-1와 NP1행 및 NN열의 매트릭스 [address(data1)]의 매트릭스 곱은, 수학식 1의 제1 인코딩 매트릭스(Encoding_Matrix1)와 동일하다. 따라서 수학식 11의 제2 인코딩 매트릭스(Encoding_Matrix2)는 수학식 14와 같이 나타낼 수 있다.
Figure pat00014
수학식 13을 수학식 14에 적용하면, 제2 인코딩 매트릭스(Encoding_Matrix2)는 수학식 15와 같이 나타낼 수 있다.
Figure pat00015
수학식 15에서 NP2행 및 NP2열의 매트릭스 [address(check2)]-1과 NP2행 및 NP2열의 매트릭스 [address(check1)]의 매트릭스 곱은 NP2행 및 NP2열의 단위 매트릭스(identical matrix)이므로, 제2 인코딩 매트릭스(Encoding_Matrix2)는 수학식 16과 같이 나타낼 수 있다.
Figure pat00016
수학식 13에 따르면, 매트릭스 [Identical Matrix I Ymat]와 제1 인코딩 매트릭스(Encoding_Matrix1)의 매트릭스 곱의 연산을 통해 제2 인코딩 매트릭스(Encoding_Matrix2)가 연산된다. 이는 제2 에러정정모드에서 사용되는 제2 패리티 심볼들로 구성되는 제2 패리티 매트릭스(PA2)가, 매트릭스 [Identical Matrix I Ymat]와 제1 패리티 매트릭스(PA1)의 매트릭스 곱의 연산을 통해 연산될 수 있다는 것을 의미한다. 따라서 제2 패리티 매트릭스(PA2)는 아래의 수학식 17로 나타낼 수 있다.
Figure pat00017
수학식 17에서 하위의 제1 패리티 매트릭스(PA1_1) 및 상위의 제1 패리티 매트릭스(PA1_2)은 제1 패리티 연산부(210)로부터 출력되는 제1 패리티 매트릭스(PA1)로부터 얻어지므로, 제2 패리티 매트릭스(PA2)를 연산하는데 있어서 매트릭스 Ymat만 요구된다. 즉 제2 패리티 생성부(220)의 변형 매트릭스 로직(221)은 수학식 16의 NP2행 및 (NP1-NP2)열의 매트릭스 Ymat를 연산하여 출력시킨다.
제2 매트릭스 연산부(220)의 제2 매트릭스 곱셈기(222)는, 변형 매트릭스 로직(221)으로부터 입력되는 매트릭스 Ymat과 상위의 제1 패리티 매트릭스(PA1_2)의 매트릭스 곱을 연산하여 중간 매트릭스(MM)를 출력시킨다. 제2 매트릭스 곱셈기(222)로부터 출력되는 중간 매트릭스(MM)은 NP2행 및 1열로 구성된다. 제2 매트릭스 곱셈기(222)로부터 출력되는 중간 매트릭스(MM)는 매트릭스 가산기(223)로 입력된다. 매트릭스 가산기(223)는, 제1 패리티 연산부(210)로부터 출력되는 하위의 제1 패리티 매트릭스(PA1_1)와, 제2 매트릭스 곱셈기(222)로부터 출력되는 중간 매트릭스(MM)에 대한 매트릭스 가산 연산을 수행하고, 그 결과인 제2 패리티 매트릭스(PA2)를 출력시킨다. 제2 패리티 매트릭스(PA2)는 NP2행 및 1열로 구성된다. 제2 패리티 매트릭스(PA2)는 멀티플렉서(230)의 제2 입력단자로 입력된다.
멀티플렉서(230)는, 에러정정모드 제어신호(CS_ECL)에 응답하여 제1 입력단자로 입력되는 데이터 및 제2 입력단자로 입력되는 데이터 중 하나를 선택하여 출력시킨다. 멀티플렉서(230)의 제1 입력단자로 제1 패리티 연산부(210)로부터 출력되는 제1 패리티 매트릭스(PA1)가 입력된다. 멀티플렉서(230)의 제2 입력단자로 제2 패리티 연산부(220)로부터 출력되는 제2 패리티 매트릭스(PA2)가 입력된다. 일 예에서 제1 에러정정모드에서 예컨대 "1"의 에러정정모드 제어신호(CS_ECL)가 멀티플렉서(230)로 입력된다. 이 경우 멀티플렉서(230)는 제1 입력단자로 입력되는 제1 패리티 매트릭스(PA1)를 출력시킨다. 반면에 제2 에러정정모드에서 예컨대 "0"의 에러정정모드 제어신호(CS_ECL)가 멀티플렉서(230)로 입력된다. 이 경우 멀티플렉서(230)는 제2 입력단자로 입력되는 제2 패리티 매트릭스(PA2)를 출력시킨다.
도 3은 본 개시에 따른 패리티 생성 방법의 일 예를 나타내 보인 플로 챠트이다. 도 3을 참조하면, 단계 301에서 오리지널 데이터가 입력된다. 그러면 단계 302에서 제1 인코딩 매트릭스(Encoding_Matrix1)를 이용하여 제1 패리티 매트릭스(PA1)를 연산한다. 단계 303에서 제1 에러정정모드인지 제2 에러정정모드인지 판단한다. 단계 303의 판단에서 제1 에러정정모드인 경우, 단계 302에서 연산된 제1 패리티 매트릭스를 출력시킨다. 단계 303의 판단에서 제2 에러정정모드인 경우, 단계 305에서 제1 인코딩 매트릭스 및 변환 매트릭스를 이용하여 제2 패리티 매트릭스(PA2)를 연산한다. 단계 305의 과정은 도 2를 참조하여 설명한 바와 동일하다. 단계 306에서 제2 패리티 매트릭스(PA2)를 출력시킨다.
도 4는 본 개시에 따른 패리티 생성 로직(500)을 포함하는 메모리 모듈(400)의 일 예를 나타내 보인 블록도이다. 도 4를 참조하면, 메모리 모듈(400)은 복수개, 예컨대 20개의 메모리 미디어들(401-1, …, 401-20)과, 메모리 모듈 컨트롤러(410)를 포함한다. 일 예에서 메모리 미디어들(401-1, …, 401-20) 각각은 메모리 칩 형태일 수 있다. 메모리 미디어들(401-1, …, 401-20) 중 예컨대 16개의 메모리 미디어들(401-1, …, 401-16) 각각은 데이터가 저장되는 데이터 칩으로 구성될 수 있다. 메모리 미디어들(401-1, …, 401-20) 중 4개의 메모리 미디어들(401-17, …, 401-20) 각각은 제1 에러정정모드에서 생성되는 패리티들을 저장하는 ECC 칩으로 구성될 수 있다. 제1 에러정정모드에서 생성되는 패리티들을 저장하는 메모리 미디어들(401-17, …, 401-20) 중 2개의 메모리 미디어들(401-17, 401-18) 각각은 제2 에러정정모드에서 생성되는 패리티들을 저장하는 ECC 칩으로 구성될 수 있다. 이에 따라 ECC 칩들 중 메모리 미디어들(401-17, 401-18) 각각은 제1 및 제2 에러정정모드에서 공통으로 패리티가 저장되고, 메모리 미디어들(401-19, 401-20)은 제1 에러정정모드에서만 패리티가 저장된다.
20개의 메모리 미디어들(401-1, …, 401-20) 중 패리티를 저장하는 ECC 칩의 개수가 제1 에러정정모드 및 제2 에러정정모드에서 서로 다르므로, 제1 에러정정모드 및 제2 에러정정모드에서의 에러정정능력이 서로 달라진다. 이하에서는 메모리 미디어들(401-1, …, 401-20) 각각에서 32비트(bit)의 데이터 액세스가 이루어지고, 데이터가 저장되는 메모리 미디어들(401-1, …, 401-16)에서 8비트의 메타 데이터(meta data)가 액세스되며, 그리고 심볼은 7비트로 구성되는 경우를 예로 들기로 한다.
메모리 미디어당 32비트의 데이터가 액세스되므로, 메모리 미디어당 5개의 심볼들이 생성된다. 5개의 심볼들 중 4개의 심볼들 각각은 7비트의 데이터로 구성되고, 마지막 심볼은 4비트의 데이터와 3비트의 임의 데이터로 구성된다. 임의 데이터는 심볼의 데이터 비트수가 7비트가 되도록 임의로 심볼에 포함되는 이진값으로서, 예컨대 "0"의 이진값을 갖는다. 데이터가 저장되는 16개의 메모리 미디어들(401-1, …, 401-16)은, 82개의 심볼들 단위로 액세스된다. 82개의 심볼들은 80개의 데이터 심볼들 및 2개의 메타 데이터 심볼들을 포함한다. 메타 데이터가 모두 8비트이므로, 2개의 메타 데이터 심볼들 중 하나는 1비트의 메타 데이터와 6비트의 임의 데이터로 구성된다.
제1 에러정정모드에서는, 4개의 메모리 미디어들(401-17, …, 401-20)에 패리티 심볼이 저장된다. 메모리 미디어들(401-17, …, 401-20) 각각이 32비트 단위로 데이터 액세스가 이루어지고, 메모리 미디어들(401-17, …, 401-20)에서 8비트의 메타 데이터가 저장된다. 이에 따라 제1 에러정정모드에서, 메모리 미디어들(401-17, …, 401-20)에는 120비트의 패리티 데이터가, 즉 17개의 패리티 심볼들이 저장될 수 있다. 제2 에러정정모드에서는, 2개의 메모리 미디어들(401-17, 401-18)에 패리티 심볼이 저장된다. 메모리 미디어들(401-17, 401-18) 각각이 32비트 단위로 데이터 액세스가 이루어지고, 메모리 미디어들(401-17, 401-18)에서 8비트의 메타 데이터가 저장된다. 이에 따라 제2 에러정정모드에서, 메모리 미디어들메모리 미디어들(401-17, 401-18)에는 56비트의 패리티 데이터가, 즉 8개의 패리티 심볼들이 저장될 수 있다. 17개의 패리티 심볼들이 가능한 제1 에러정정모드에서는 8개의 데이터 심볼들에 대한 에러정정이 가능하다. 반면에 8개의 패리티 심볼들이 가능한 제2 에러정정모드에서는 4개의 데이터 심볼들에 대한 에러정정이 가능하다.
메모리 모듈 컨트롤러(410)는, 외부, 예컨대 호스트(host)와 통신하며, 메모리 미디어들(401-1, …, 401-20)에 대한 액세스 동작을 제어한다. 메모리 모듈 컨트롤러(410)는 ECC 로직(420)을 포함한다. ECC 로직(420)은 ECC 인코더(422) 및 ECC 디코더(424)를 포함할 수 있다. ECC 인코더(422)는, 메모리 모듈 컨트롤러(410)의 라이트(write) 동작 제어 과정에서 ECC 인코딩을 수행한다. ECC 디코더(424)는, 메모리 모듈 컨트롤러(410)의 리드(read) 동작 제어 과정에서 ECC 디코딩을 수행한다. ECC 인코더(422)는 패리티 생성 로직(500)을 포함한다. ECC 인코더(422) 및 ECC 디코더(424)는 도 1을 참조하여 설명한 ECC 인코더(122) 및 ECC 디코더(124)와 동일하므로, 중복되는 설명은 생략하기로 한다.
도 5는 도 4의 메모리 모듈(400)의 패리티 생성 로직(500)의 일 예를 나타내 보인 도면이다. 도 5를 참조하면, 패리티 생성 회로(500)는, 제1 패리티 생성부(510)와, 제2 패리티 생성부(520)와, 그리고 멀티플렉서(530)를 포함한다. 제1 패리티 생성부(410)는, 17ㅧ1의 제1 패리티 매트릭스(PA1)를 생성한다. 제1 패리티 매트릭스(PA1)의 17개의 매트릭스 원소들 각각은, 제1 에러정정모드에서 사용되는 패리티 심볼을 구성한다. 제2 패리티 생성부(520)는, 제1 패리티 생성부(510)로부터 출력되는 제1 패리티 매트릭스(PA1)를 이용하여 8ㅧ1의 제2 패리티 매트릭스(PA2)를 생성한다. 제2 패리티 매트릭스(PA2)의 8개의 매트릭스 원소들 각각은, 제2 에러정정모드에서 사용되는 패리티 심볼을 구성한다. 제2 패리티 매트릭스(PA2)가 제1 패리티 매트릭스(PA1)를 이용하여 생성되므로, 제1 패리티 생성부(510)는 에러정정모드에 상관 없이 동작된다. 반면에 제2 패리티 생성부(520)는 제2 에러정정모드에서만 동작된다.
제1 패리티 생성부(510)는, 제1 인코딩 매트릭스 로직(511)과, 데이터 인버스 매트릭스 로직(512)과, 그리고 제1 매트릭스 곱셈기(513)를 포함하여 구성될 수 있다. 제1 인코딩 매트릭스 로직(511)은, 수학식 1 내지 수학식 3을 참조하여 설명한 바와 같이, 17ㅧ82의 제1 인코딩 매트릭스(Encoding_Matrix1)를 출력하며, 아래의 수학식 18과 같다.
Figure pat00018
데이터 인버스 매트릭스 로직(512)은, 수학식 4를 참조하여 설명한 바와 같이, 82ㅧ1의 데이터 인버스 매트릭스(Data_Inverse_Matrix)를 출력하며, 아래의 수학식 19와 같다.
Figure pat00019
제1 매트릭스 곱셈기(513)는, 제1 인코딩 매트릭스 로직(511)으로부터 출력되는 17ㅧ82의 제1 인코딩 매트릭스(Encoding_Matrix1)와 데이터 인버스 매트릭스 로직(512)으로부터 출력되는 82ㅧ1의 데이터 인버스 매트릭스(Data_Inverse_Matrix)에 대한 매트릭스 곱셈을 수행하여 17ㅧ1의 제1 패리티 매트릭스(PA1)를 출력한다. 제1 패리티 매트릭스(PA1)는 아래의 수학식 20과 같다.
Figure pat00020
제1 매트릭스 곱셈기(513)로부터 출력되는 17ㅧ1의 제1 패리티 매트릭스(PA1)는 멀티플렉서(530)의 제1 입력단자에 입력된다. 또한 수학식 6 및 수학식 7을 참조하여 설명한 바와 같이, 제1 매트릭스 곱셈기(513)로부터 출력되는 17ㅧ1의 제1 패리티 매트릭스(PA1)는, 하위의 제1 패리티 매트릭스(PA1_1) 및 상위의 제1 패리티 매트릭스(PA1_2)로 나누어져서 각각 제2 패리티 생성부(520)의 매트릭스 가산기(523) 및 제2 매트릭스 곱셈기(522)에 입력된다. 하위의 제1 패리티 매트릭스(PA1_1)는 8ㅧ1의 매트릭스 구성을 갖고, 상위의 제1 패리티 매트릭스(PA1_2)는 9ㅧ1의 매트릭스 구성을 갖는다. 하위의 제1 패리티 매트릭스(PA1_1) 및 상위의 제1 패리티 매트릭스(PA1_2)는, 각각 아래의 수학식 21 및 수학식 22와 같다.
Figure pat00021
Figure pat00022
제2 패리티 생성부(520)는, 변형 매트릭스 로직(521)과, 제2 매트릭스 곱셈기(522)와, 그리고 매트릭스 가산기(523)를 포함하여 구성될 수 있다. 변형 매트릭스 로직(521)은, 수학식 8 내지 17을 참조하여 설명한 바와 같이, 제1 패리티 매트릭스(PA1)을 이용하여 제2 패리티 매트릭스(PA2)를 연산하기 위해 사용되는 변형 매트릭스(Trans_Matrix)(Ymat)를 출력한다. 변형 매트릭스(Trans_Matrix)(Ymat)는 아래의 수학식 23과 같다.
Figure pat00023
제2 매트릭스 연산부(520)의 제2 매트릭스 곱셈기(522)는, 변형 매트릭스 로직(521)으로부터 출력되는 변형 매트릭스(Ymat)과 상위의 제1 패리티 매트릭스(PA1_2)의 매트릭스 곱을 연산하여 8ㅧ1의 중간 매트릭스(MM)를 출력시킨다. 중간 매트릭스(MM)의 연산 과정은 아래의 수학식 24로 나타낼 수 있다.
Figure pat00024
제2 매트릭스 곱셈기(522)로부터 출력되는 중간 매트릭스(MM)는 매트릭스 가산기(523)로 입력된다. 매트릭스 가산기(523)는, 제1 패리티 연산부(510)로부터 출력되는 하위의 제1 패리티 매트릭스(PA1_1)와, 제2 매트릭스 곱셈기(522)로부터 출력되는 중간 매트릭스(MM)에 대한 매트릭스 가산 연산을 수행하고, 그 결과인 제2 패리티 매트릭스(PA2)를 출력시킨다. 제2 패리티 매트릭스(PA2)의 계산 과정은 아래의 수학식 25와 같이 나타낼 수 있다.
Figure pat00025
멀티플렉서(530)는, 에러정정모드 제어신호(CS_ECL)에 응답하여 제1 입력단자로 입력되는 데이터 및 제2 입력단자로 입력되는 데이터 중 하나를 선택하여 출력시킨다. 멀티플렉서(530)의 제1 입력단자로 제1 패리티 연산부(510)로부터 출력되는 제1 패리티 매트릭스(PA1)가 입력된다. 멀티플렉서(530)의 제2 입력단자로 제2 패리티 연산부(520)로부터 출력되는 제2 패리티 매트릭스(PA2)가 입력된다. 일 예에서 제1 에러정정모드에서 예컨대 "1"의 에러정정모드 제어신호(CS_ECL)가 멀티플렉서(530)로 입력된다. 이 경우 멀티플렉서(530)는 제1 입력단자로 입력되는 제1 패리티 매트릭스(PA1)를 출력시킨다. 반면에 제2 에러정정모드에서 예컨대 "0"의 에러정정모드 제어신호(CS_ECL)가 멀티플렉서(530)로 입력된다. 이 경우 멀티플렉서(530)는 제2 입력단자로 입력되는 제2 패리티 매트릭스(PA2)를 출력시킨다.
상술한 바와 같이 본 출원의 실시 형태들을 도면들을 예시하며 설명하지만, 이는 본 출원에서 제시하고자 하는 바를 설명하기 위한 것이며, 세밀하게 제시된 형상으로 본 출원에서 제시하고자 하는 바를 한정하고자 한 것은 아니다.
110...메모리 컨트롤러 120, 420...ECC 로직
122, 422...ECC 인코더 124, 424...ECC 디코더
200, 500...패리티 생성 로직 210, 510...제1 패리티 생성부
211, 511...제1 인코딩 매트릭스 212, 512...데이터 인버스 매트릭스
213, 513...제1 매트릭스 곱셈기 220, 520...제2 패리티 생성부
221, 521...변형 매트릭스 222, 522...제2 매트릭스 곱셈기
223, 523...매트릭스 가산기 230, 530...선택출력부
400...메모리 모듈 401-1, …, 401-20...메모리 미디어
420...메모리 모듈 컨트롤러

Claims (30)

  1. 오리지널 데이터에 대해 제1 에러정정능력을 갖는 제1 에러정정모드에서 제1 패리티를 생성하는 제1 패리티 생성부; 및
    상기 제1 패리티를 이용하여 제2 에러정정능력을 갖는 제2 에러정정모드에서 제2 패리티를 생성하는 제2 패리티 생성부를 포함하는 패리티 생성 로직.
  2. 제1항에 있어서,
    상기 제1 패리티 및 제2 패리티 중 어느 하나를 선택적으로 출력시키는 선택출력부를 더 포함하는 패리티 생성 로직.
  3. 제2항에 있어서, 상기 선택출력부는,
    제1 입력단자로 상기 제1 패리티 생성부로부터 출력되는 제1 패리티를 입력받고,
    제2 입력단자로 제2 패리티 생성부로부터 출력되는 제2 패리티를 입력받으며, 그리고
    제어신호 입력단자로 입력되는 에러정정모드 선택 제어신호에 의해 상기 제1 패리티 및 제2 패리티 중 하나를 출력단자를 통해 선택적으로 출력시키는 멀티플렉서를 포함하는 패리티 생성 로직.
  4. 제1항에 있어서,
    상기 제1 패리티는 복수개의 제1 패리티 심볼들을 포함하고,
    상기 제2 패리티는 복수개의 제2 패리티 심볼들을 포함하며, 그리고
    상기 제1 패리티 심볼들의 개수는 상기 제2 패리티 심볼들의 개수보다 많은 패리티 생성 로직.
  5. 제1항에 있어서,
    NP1개(NP1은 자연수)의 제1 패리티 심볼들로 상기 제1 패리티가 구성되며, 그리고 NP2개(NP2는 자연수)(NP2 < NP1)의 제2 패리티 심볼들로 상기 제2 패리티가 구성되는 경우,
    상기 제1 패리티 생성부는 NP1행과 1열을 갖는 제1 패리티 매트릭스를 출력하는 패리티 생성 로직.
  6. 제5항에 있어서, 상기 제2 패리티 생성부는,
    상기 제2 패리티 생성부로부터 출력되는 NP1행과 1열을 갖는 제1 패리티 매트릭스 중 (NP1-NP2)행과 1열을 갖는 하위의 제2 패리티 매트릭스, 및 NP2행과 1열을 갖는 상위의 제2 패리티 매트릭스를 입력받고,
    NP2행과 1열을 갖는 제2 패리티 매트릭스를 출력하는 패리티 생성 로직.
  7. 제1항에 있어서,
    NN개(NN은 자연수)의 데이터 심볼들로 상기 오리지널 데이터가 구성되고, NP1개(NP1은 자연수)의 제1 패리티 심볼들로 상기 제1 패리티가 구성되며, 그리고 NP2개(NP2는 자연수)의 제2 패리티 심볼들로 상기 제2 패리티가 구성되는 경우,
    상기 제1 패리티 생성부는,
    NP1행과 NN열을 갖는 제1 인코딩 매트릭스;
    MN행과 1열을 갖는 데이터 인버스 매트릭스; 및
    상기 데이터 인버스 매트릭스 및 제1 인코딩 매트릭스에 대한 매트릭스 곱셈을 수행하여 NP1행과 1열을 갖는 제1 패리티 매트릭스를 출력하는 제1 매트릭스 곱셈기를 포함하는 패리티 생성 로직.
  8. 제7항에 있어서, 상기 제2 패리티 생성부는,
    NP2행과 (NP1-NP2)열의 변형 매트릭스;
    상기 NP1행과 1열을 갖는 제1 패리티 매트릭스 중 (NP1-NP2)행과 1열을 갖는 하위의 제2 패리티 매트릭스 및 상기 변형 매트릭스에 대한 매트릭스 곱셈을 수행하여 NP2행과 1열의 중간 매트릭스를 출력하는 제2 매트릭스 곱셈기; 및
    상기 제2 매트릭스 곱셈기로부터 출력되는 NP2행과 1열의 중간 매트릭스 및 상기 NP1행과 1열을 갖는 제1 패리티 매트릭스 중 NP2행과 1열을 갖는 상위의 제2 패리티 매트릭스를 매트릭스 가산하여 NP2행과 1열의 제2 패리티 매트릭스를 출력하는 매트릭스 가산기를 포함하는 패리티 생성 로직.
  9. 메모리 장치에 대한 라이트 동작을 제어하는 메모리 컨트롤러에 있어서,
    상기 메모리 컨트롤러는, 오리지널 데이터에 대한 패리티를 생성하는 패리티 생성 로직을 갖는 에러정정코드 인코더를 포함하되,
    상기 패리티 생성 로직은,
    제1 에러정정능력을 갖는 제1 에러정정모드에서 제1 패리티를 생성하는 제1 패리티 생성부, 및
    상기 제1 패리티를 이용하여 제2 에러정정능력을 갖는 제2 에러정정모드에서 제2 패리티를 생성하는 제2 패리티 생성부를 포함하는 메모리 컨트롤러.
  10. 제9항에 있어서,
    상기 패리티 생성 로직은, 상기 제1 패리티 및 제2 패리티 중 어느 하나를 선택적으로 출력시키는 선택출력부를 더 포함하는 메모리 컨트롤러.
  11. 제10항에 있어서, 상기 선택출력부는,
    제1 입력단자로 상기 제1 패리티 생성부로부터 출력되는 제1 패리티를 입력받고,
    제2 입력단자로 제2 패리티 생성부로부터 출력되는 제2 패리티를 입력받으며, 그리고
    제어신호 입력단자로 입력되는 에러정정모드 선택 제어신호에 의해 상기 제1 패리티 및 제2 패리티 중 하나를 출력단자를 통해 선택적으로 출력시키는 멀티플렉서를 포함하는 메모리 컨트롤러.
  12. 제9항에 있어서,
    상기 제1 패리티는 복수개의 제1 패리티 심볼들을 포함하고,
    상기 제2 패리티는 복수개의 제2 패리티 심볼들을 포함하며, 그리고
    상기 제1 패리티 심볼들의 개수는 상기 제2 패리티 심볼들의 개수보다 많은 메모리 컨트롤러.
  13. 제9항에 있어서,
    NP1개(NP1은 자연수)의 제1 패리티 심볼들로 상기 제1 패리티가 구성되며, 그리고 NP2개(NP2는 자연수)(NP2 < NP1)의 제2 패리티 심볼들로 상기 제2 패리티가 구성되는 경우,
    상기 제1 패리티 생성부는 NP1행과 1열을 갖는 제1 패리티 매트릭스를 출력하는 메모리 컨트롤러.
  14. 제13항에 있어서, 상기 제2 패리티 생성부는,
    상기 제2 패리티 생성부로부터 출력되는 NP1행과 1열을 갖는 제1 패리티 매트릭스 중 (NP1-NP2)행과 1열을 갖는 하위의 제2 패리티 매트릭스, 및 NP2행과 1열을 갖는 상위의 제2 패리티 매트릭스를 입력받고,
    NP2행과 1열을 갖는 제2 패리티 매트릭스를 출력하는 메모리 컨트롤러.
  15. 제9항에 있어서,
    NN개(MN은 자연수)의 데이터 심볼들로 상기 오리지널 데이터가 구성되고, NP1개(NP1은 자연수)의 제1 패리티 심볼들로 상기 제1 패리티가 구성되며, 그리고 NP2개(NP2는 자연수)의 제2 패리티 심볼들로 상기 제2 패리티가 구성되는 경우,
    상기 제1 패리티 생성부는,
    NP1행과 NN열을 갖는 제1 인코딩 매트릭스;
    MN행과 1열을 갖는 데이터 인버스 매트릭스; 및
    상기 데이터 인버스 매트릭스 및 제1 인코딩 매트릭스에 대한 매트릭스 곱셈을 수행하여 NP1행과 1열을 갖는 제1 패리티 매트릭스를 출력하는 제1 매트릭스 곱셈기를 포함하는 메모리 컨트롤러.
  16. 제15항에 있어서, 상기 제2 패리티 생성부는,
    NP2행과 (NP1-NP2)열의 변형 매트릭스;
    상기 NP1행과 1열을 갖는 제1 패리티 매트릭스 중 (NP1-NP2)행과 1열을 갖는 하위의 제2 패리티 매트릭스 및 상기 변형 매트릭스에 대한 매트릭스 곱셈을 수행하여 NP2행과 1열의 중간 매트릭스를 출력하는 제2 매트릭스 곱셈기; 및
    상기 제2 매트릭스 곱셈기로부터 출력되는 NP2행과 1열의 중간 매트릭스 및 상기 NP1행과 1열을 갖는 제1 패리티 매트릭스 중 NP2행과 1열을 갖는 상위의 제2 패리티 매트릭스를 매트릭스 가산하여 NP2행과 1열의 제2 패리티 매트릭스를 출력하는 매트릭스 가산기를 포함하는 메모리 컨트롤러.
  17. 복수개의 메모리 미디어들 및 상기 메모리 미디어들에 대한 액세스 동작을 제어하는 메모리 모듈 컨트롤러를 포함하는 메모리 모듈에 있어서,
    상기 메모리 모듈 컨트롤러는, 오리지널 데이터에 대한 패리티를 생성하는 패리티 생성 로직을 갖는 에러정정코드 인코더를 포함하되,
    상기 패리티 생성 로직은,
    제1 에러정정능력을 갖는 제1 에러정정모드에서 제1 패리티를 생성하는 제1 패리티 생성부, 및
    상기 제1 패리티를 이용하여 제2 에러정정능력을 갖는 제2 에러정정모드에서 제2 패리티를 생성하는 제2 패리티 생성부를 포함하는 메모리 모듈.
  18. 제17항에 있어서, 상기 복수개의 메모리 미디어들은,
    데이터가 저장되는 복수개의 데이터 칩들;
    상기 제1 패리티가 저장되는 복수개의 제1 에러정정코드 칩들; 및
    상기 제2 패리티가 저장되며 상기 제1 에러정정코드 칩들 중 일부로 구성되는 복수개의 제2 에러정정코드 칩들을 포함하는 메모리 모듈.
  19. 제17항에 있어서,
    상기 패리티 생성 로직은, 상기 제1 패리티 및 제2 패리티 중 어느 하나를 선택적으로 출력시키는 선택출력부를 더 포함하는 메모리 모듈.
  20. 제17항에 있어서,
    상기 제1 패리티는 복수개의 제1 패리티 심볼들을 포함하고,
    상기 제2 패리티는 복수개의 제2 패리티 심볼들을 포함하며, 그리고
    상기 제1 패리티 심볼들의 개수는 상기 제2 패리티 심볼들의 개수보다 많은 메모리 모듈.
  21. 오리지널 데이터에 대해 제1 에러정정능력을 갖는 제1 에러정정모드에서 제1 패리티를 생성하는 단계; 및
    상기 제1 패리티를 이용하여 제2 에러정정능력을 갖는 제2 에러정정모드에서 제2 패리티를 생성하는 단계를 포함하는 패리티 생성 방법.
  22. 제21항에 있어서,
    상기 제1 에러정정모드에서는 상기 제1 패리티를 선택적으로 출력시키고, 상기 제2 에러정정모드에서는 상기 제2 패리티를 선택적으로 출력시키는 단계를 더 포함하는 패리티 생성 방법.
  23. 제22항에 있어서,
    상기 제1 패리티는 복수개의 제1 패리티 심볼들을 포함하고,
    상기 제2 패리티는 복수개의 제2 패리티 심볼들을 포함하며, 그리고
    상기 제1 패리티 심볼들의 개수는 상기 제2 패리티 심볼들의 개수보다 많은 패리티 생성 방법.
  24. 제21항에 있어서,
    NP1개(NP1은 자연수)의 제1 패리티 심볼들로 상기 제1 패리티가 구성되며, 그리고 NP2개(NP2는 자연수)(NP2 < NP1)의 제2 패리티 심볼들로 상기 제2 패리티가 구성되는 경우,
    상기 제1 패리티를 생성하는 단계는, NP1행과 1열을 갖는 제1 패리티 매트릭스를 출력하여 수행하는 패리티 생성 방법.
  25. 제24항에 있어서,
    상기 제2 패리티를 생성하는 단계는,
    상기 제2 패리티 생성부로부터 출력되는 NP1행과 1열을 갖는 제1 패리티 매트릭스 중 (NP1-NP2)행과 1열을 갖는 하위의 제2 패리티 매트릭스, 및 NP2행과 1열을 갖는 상위의 제2 패리티 매트릭스를 입력받고,
    NP2행과 1열을 갖는 제2 패리티 매트릭스를 출력하여 수행하는 패리티 생성 방법.
  26. 제21항에 있어서,
    NN개(MN은 자연수)의 데이터 심볼들로 상기 오리지널 데이터가 구성되고, NP1개(NP1은 자연수)의 제1 패리티 심볼들로 상기 제1 패리티가 구성되며, 그리고 NP2개(NP2는 자연수)의 제2 패리티 심볼들로 상기 제2 패리티가 구성되는 경우,
    상기 제1 패리티를 생성하는 단계는,
    MN행과 1열을 갖는 데이터 인버스 매트릭스와 NP1행과 NN열을 갖는 제1 인코딩 매트릭스에 대한 매트릭스 곱셈을 수행하여 NP1행과 1열을 갖는 제1 패리티 매트릭스를 출력하는 단계를 포함하는 패리티 생성 방법.
  27. 제26항에 있어서,
    상기 제2 패리티를 생성하는 단계는,
    상기 NP1행과 1열을 갖는 제1 패리티 매트릭스 중 (NP1-NP2)행과 1열을 갖는 하위의 제2 패리티 매트릭스와, NP2행과 (NP1-NP2)열의 변형 매트릭스에 대한 매트릭스 곱셈을 수행하여 NP2행과 1열의 중간 매트릭스를 출력하는 단계; 및
    상기 NP2행과 1열의 중간 매트릭스 및 상기 NP1행과 1열을 갖는 제1 패리티 매트릭스 중 NP2행과 1열을 갖는 상위의 제2 패리티 매트릭스를 매트릭스 가산하여 NP2행과 1열의 제2 패리티 매트릭스를 출력하는 단계를 포함하는 패리티 생성 방법.
  28. 오리지널 데이터에 대해 제1 인코딩 매트릭스를 이용하여 제1 패리티 매트릭스를 연산하는 단계;
    제1 에러정정모드인 경우 상기 제1 패리티 매트릭스를 출력하고, 제2 에러정정모드인 경우 상기 제1 인코딩 매트릭스 및 변환 매트릭스를 이용하여 제2 패리티 매트릭스를 연산하는 단계; 및
    상기 제2 에러정정모드에서 상기 제2 패리티 매트릭스를 출력하는 단계를 포함하는 패리티 생성 방법.
  29. 제28항에 있어서,
    상기 제1 에러정정모드는 제1 에러정정능력을 갖는 모드이고, 상기 제2 에러정정모드는 제2 에러정정능력을 갖는 모드이며,
    상기 제2 에러정정능력은 상기 제1 에러정정능력보다 큰 패리티 생성 방법.
  30. 제28항에 있어서,
    NN개(MN은 자연수)의 데이터 심볼들로 상기 오리지널 데이터가 구성되고, NP1개(NP1은 자연수)의 제1 패리티 심볼들로 상기 제1 패리티가 구성되며, 그리고 NP2개(NP2는 자연수)의 제2 패리티 심볼들로 상기 제2 패리티가 구성되는 경우,
    상기 제1 인코딩 매트릭스는 NP1행 및 NM열의 매트릭스로 구성되고,
    상기 제1 패리티 매트릭스는 NP1행 및 1열의 매트릭스로 구성되고,
    상기 변형 매트릭스는 NP2행 및 (NP1-NP2)열의 매트릭스로 구성되며, 그리고
    상기 제2 패리티 매트릭스는 NP2행 및 1열의 매트릭스로 구성되는 패리티 생성 방법.
KR1020190129436A 2019-10-17 2019-10-17 복수의 에러 정정 레벨들을 위한 패리티 생성 로직, 이를 포함하는 메모리 컨트로러 및 메모리 모듈, 및 패리티 생성 방법 KR20210045875A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020190129436A KR20210045875A (ko) 2019-10-17 2019-10-17 복수의 에러 정정 레벨들을 위한 패리티 생성 로직, 이를 포함하는 메모리 컨트로러 및 메모리 모듈, 및 패리티 생성 방법
US16/910,865 US11171670B2 (en) 2019-10-17 2020-06-24 Parity generation circuits for a plurality of error correction levels, memory controllers, and memory modules including the parity generation circuits
CN202010745406.8A CN112687324A (zh) 2019-10-17 2020-07-29 奇偶校验生成电路、存储器控制器和含该电路的存储模块

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190129436A KR20210045875A (ko) 2019-10-17 2019-10-17 복수의 에러 정정 레벨들을 위한 패리티 생성 로직, 이를 포함하는 메모리 컨트로러 및 메모리 모듈, 및 패리티 생성 방법

Publications (1)

Publication Number Publication Date
KR20210045875A true KR20210045875A (ko) 2021-04-27

Family

ID=75445383

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190129436A KR20210045875A (ko) 2019-10-17 2019-10-17 복수의 에러 정정 레벨들을 위한 패리티 생성 로직, 이를 포함하는 메모리 컨트로러 및 메모리 모듈, 및 패리티 생성 방법

Country Status (3)

Country Link
US (1) US11171670B2 (ko)
KR (1) KR20210045875A (ko)
CN (1) CN112687324A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240103741A1 (en) * 2022-09-26 2024-03-28 Micron Technology, Inc. Providing multiple error correction code protection levels in memory

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5727003A (en) * 1995-07-03 1998-03-10 Cirrus Logic, Inc. Method and apparatus for flash burst error correction
EP2571172A4 (en) * 2010-05-11 2013-10-16 Asip Solutions Inc METHOD AND DEVICE FOR PROCESSING ERROR CORRECTING CODE
US8762805B2 (en) * 2010-12-01 2014-06-24 International Business Machines Corporation Decoding encoded data containing integrated data and header protection
US8984367B2 (en) * 2011-02-25 2015-03-17 Altera Corporation Error detection and correction circuitry
TWI520501B (zh) * 2012-06-07 2016-02-01 威盛電子股份有限公司 記憶體控制器
KR102108386B1 (ko) * 2013-12-23 2020-05-08 삼성전자주식회사 저장 장치 및 그것의 데이터 엔코딩 및 디코딩 방법들
KR102479212B1 (ko) * 2016-08-17 2022-12-20 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 이의 동작 방법
JP6818666B2 (ja) 2017-09-20 2021-01-20 キオクシア株式会社 メモリシステム
KR20190054533A (ko) * 2017-11-14 2019-05-22 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법
KR20210032810A (ko) * 2019-09-17 2021-03-25 삼성전자주식회사 메모리 컨트롤러 및 메모리 시스템

Also Published As

Publication number Publication date
US11171670B2 (en) 2021-11-09
US20210119647A1 (en) 2021-04-22
CN112687324A (zh) 2021-04-20

Similar Documents

Publication Publication Date Title
US10461778B2 (en) Interleaving and puncturing apparatus and method thereof
US9128864B2 (en) Memory controller, storage device and error correction method
US9141467B2 (en) Semiconductor memory system including Reed-Solomon low density parity check decoder and read method thereof
KR100415136B1 (ko) 에러정정방법,에러정정장치,데이터판독장치,및데이터맵핑방법
JP5913560B2 (ja) 低密度パリティチェック符号を使用する符号化および復号技法
US10635528B2 (en) Memory controller and method of controlling memory controller
KR102275717B1 (ko) 플래시 메모리 시스템 및 그의 동작 방법
CN102110481A (zh) 具有ecc电路的半导体存储系统及其控制方法
JP5805727B2 (ja) 縮退故障を有するメモリセルに対応するためのデータ符号化及び復号化
KR20080106849A (ko) 재생 장치
US10090860B2 (en) Memory system using integrated parallel interleaved concatenation
US9960788B2 (en) Memory controller, semiconductor memory device, and control method for semiconductor memory device
WO2019246527A1 (en) Method and apparatus for improved data recovery in data storage systems
US20090276685A1 (en) Data decoding apparatus, magnetic disk apparatus, and data decoding method
KR20210045875A (ko) 복수의 에러 정정 레벨들을 위한 패리티 생성 로직, 이를 포함하는 메모리 컨트로러 및 메모리 모듈, 및 패리티 생성 방법
KR20160075001A (ko) 플래시 메모리 시스템 동작 방법
US10970166B2 (en) Memory system and method of controlling non-volatile memory
US7823049B2 (en) Methods and apparatuses for generating parity symbols for data block
US11003528B2 (en) Memory system including an error correction function
KR20210015087A (ko) 오류 정정 회로, 이를 포함하는 메모리 컨트롤러 및 메모리 시스템
KR102007163B1 (ko) 인코더, 디코더 및 이를 포함하는 반도체 장치
CN110716824A (zh) 编码方法及使用所述编码方法的存储器存储装置
US10951238B1 (en) Memory system and method for controlling non-volatile memory
CN108352845B (zh) 用于对存储数据进行编码的方法以及装置
US20160028419A1 (en) Systems and Methods for Rank Independent Cyclic Data Encoding