KR102064508B1 - 오류 검출 정정 회로 및 이를 포함하는 메모리 장치 - Google Patents

오류 검출 정정 회로 및 이를 포함하는 메모리 장치 Download PDF

Info

Publication number
KR102064508B1
KR102064508B1 KR1020130122864A KR20130122864A KR102064508B1 KR 102064508 B1 KR102064508 B1 KR 102064508B1 KR 1020130122864 A KR1020130122864 A KR 1020130122864A KR 20130122864 A KR20130122864 A KR 20130122864A KR 102064508 B1 KR102064508 B1 KR 102064508B1
Authority
KR
South Korea
Prior art keywords
error
polynomial
circuit
bit
elements
Prior art date
Application number
KR1020130122864A
Other languages
English (en)
Other versions
KR20140048826A (ko
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 삼성전자주식회사
Publication of KR20140048826A publication Critical patent/KR20140048826A/ko
Application granted granted Critical
Publication of KR102064508B1 publication Critical patent/KR102064508B1/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/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/1545Determination of error locations, e.g. Chien search or other methods or arrangements for the determination of the roots of the error locator polynomial
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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
    • 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
    • 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/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
    • 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
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/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/1525Determination and particular use of error location polynomials
    • H03M13/153Determination and particular use of error location polynomials using the Berlekamp-Massey algorithm
    • 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/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
    • 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/158Finite field arithmetic processing
    • 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/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming 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/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • 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/6566Implementations concerning memory access contentions

Abstract

본 발명은 오류 위치 검출 다항식을 연산하기 위한 회로의 규모를 줄일 수 있는 오류 검출 정정 회로를 제공한다.
본 발명의 오류 검출 정정 회로는, 데이터 열의 비트마다 오류가 있는지 여부를 판정하는 치엔(Chien) 탐색부를 포함하는 오류 검출 정정 회로로서, 상기 치엔 탐색부는, 오류 위치 검출 다항식의 각 차수 중 선형성이 인정되지 않는 차수에 곱하는 계수를 비선형 계수로 하고, 상기 오류 위치 검출 다항식을, 선형성이 인정되는 차수의 항으로 이루어지는 제 1 위치 방정식과 선형성이 인정되지 않는 차수의 항으로 이루어지는 제 2 위치 방정식으로 분할하고, 상기 대입 값을, 상기 제 1 위치 방정식을 상기 비선형 계수로 나눈 제 3 위치 방정식의 각 차수에 각각 대입하고, 상기 제 2 위치 방정식을 상기 비선형 계수로 나눈 제 4 위치 방정식에 대입 값을 대입하고, 상기 제 3 위치 방정식의 결과와 상기 제 4 위치 방정식의 결과와의 배타적 논리합에 의해, 상기 비트에 오류가 있는지 여부를 판정한다.

Description

오류 검출 정정 회로 및 이를 포함하는 메모리 장치{ECC CIRCUIT AND MEMORY DEVICE INCLUDING THE SAME}
본 발명은 오류 검출 정정 회로 및 오류 검출 정정 회로를 포함하는 메모리 장치에 관한 것이다.
전기적으로 소거가능하고 프로그램 가능한 불휘발성 반도체 기억 장치(EEPROM ; Electrically Erasable and Programmable Read Only Memory)의 하나로서, NAND 플래시 메모리가 있다. NAND 플래시 메모리는 복수의 메모리 셀을 직렬 접속한 NAND 셀 유닛(NAND 스트링)을 이용하여 작은 칩 면적으로 대용량의 데이터의 저장을 가능하게 한다.
NAND 플래시 메모리와 같은 대용량 메모리 장치는 데이터 보유 중 여러 가지 원인에 의해 데이터가 소멸될 수 있다. 예를 들어, 다수 회의 고쳐 쓰기에 따른 터널 산화막의 열화 등에 의하여 데이터 보유 중에 메모리 셀(memory cell)의 보유 특성이 소실되고, 에러 비트의 발생율(에러율)이 커지는 경향이 있다. 특히, NAND 플래시 메모리는 메모리 용량의 대규모화와 제조 프로세스의 미세화가 진행할수록 에러율은 상승하는 경향이 있다.
이에 대처하기 위해, 오류 검출 정정 회로(ECC 회로)가 NAND 플래시 메모리의 성능 향상을 위해 사용되어 왔다. 이 오류 검출 정정 회로를 온칩(on-chip)으로 탑재함으로써, 고신뢰성 메모리를 제공하는 것이 가능하다.
또한, 관련되는 갈로아 필드(Galois Field) 연산 회로가 있다(특허문헌 1을 참조). 특허문헌 1에 기재된 갈로아 필드 연산 회로는 갈로아 필드 GF(2m) 상의 m 비트의 벡터로 표현되는 2 개의 요소의 승산 시에, 승산 과정에서의 하위 m 비트 이외의 상위 비트의 성분에 대해서 각각 XOR 연산을 하여 구하고, 그 출력을 주어진 원시 다항식f(X)에 의해, m 비트의 벡터 표현으로 변환하고, 하위 m 비트의 성분과 XOR 연산함으로써, 승산된 벡터 출력을 얻는다. 이것에 의해, 갈로아 필드 상에서의 승산 회로 구성의 간략화를 도모한다.
일본국 특허 공개 평 6-314979호 공보
BCH 부호나 RS 부호로 대표되는 선형 블럭 부호를 사용한 에러 정정 처리에 있어서, 가장 시간이 걸리는 것은 오류 위치 검출 다항식(에러 위치 탐색 방정식, Error locator polynomial)의 근(root)을 구하는 처리이다. 도 12는 갈로아 필드 연산 회로(34B)의 구성을 도시한 도면이다. 일반적으로 상기 근을 구하는 처리는 예를 들어, 도 12에 도시된 갈로아 필드 연산 회로(4차 다항식의 갈로아 필드 연산 회로)(34B)에 있어서, 오류 위치 검출 다항식 P(X)의 계수(e0, e1, e2, e3, e4)가 확정된 후, 갈로아 필드 요소(원) X로서, 1, α, α 2, α 3, …, αt-2, (단, t = 2m)를 순차 입력하고, P(X)의 근을 구한다. 이 처리에 걸리는 시간은 다항식의 변수 X의 취할 수 있는 값의 모두를 한번에 계산함으로써 대폭 단축할 수 있다.
도 13은 갈로아 필드 연산 회로(34C)의 구성을 도시한 도면이다.
도 13에 도시된 갈로아 필드 연산 회로(34C)와 같이, 각 요소 1, α, α 2, α 3, …, αt-2의 각각에 대하여 병렬 연산 회로를 마련하고, P(1), P(α1), P(α2), …, P(αt-2), (단, t = 2m)을 동시에 연산함으로써, 오류 위치 검출 다항식에 있어서의 연산 시간을 대폭 단축할 수 있다. 그러나, 도 13에 도시된 방법에서는, 오류 위치 검출 다항식을 산출하기 위한 회로 규모가 대단히 커지고, 오류 검출 정정 회로를 메모리 장치에 온칩으로 탑재하는 것이 곤란하다.
본 발명이 해결하려고 하는 과제는 오류 위치 검출 다항식을 연산하기 위한 회로의 규모를 줄일 수 있는 오류 검출 정정 회로 및 메모리 장치를 제공하는데 있다.
본 발명의 오류 검출 정정 회로는 갈로아 필드 GF(2m) 상(m은 정수)의 임의의 요소를 오류 위치 검출 다항식으로의 대입 값으로서, 데이터 열의 비트마다 오류가 있는지 여부를 판정하는 치엔(Chien) 탐색부를 포함하는 오류 검출 정정 회로로서, 상기 치엔 탐색부는 오류 위치 검출 다항식의 각 차수 중 선형성이 인정되지 않는 차수에 곱하는 계수를 비선형 계수로 하고, 상기 오류 위치 검출 다항식을, 선형성이 인정되는 차수의 항으로 이루어지는 제 1 위치 방정식과 선형성이 인정되지 않는 차수의 항으로 이루어지는 제 2 위치 방정식으로 분할하고, 상기 대입 값을, 상기 제 1 위치 방정식을 상기 비선형 계수로 나눈 제 3 위치 방정식의 각 차수에 각각 대입하고, 상기 제 2 위치 방정식을 상기 비선형 계수로 나눈 제 4 위치 방정식에 대입 값을 대입하고, 상기 제 3 위치 방정식의 결과와 상기 제 4 위치 방정식의 결과와의 배타적 논리합에 의해, 상기 비트에 오류가 있는지 여부를 판정한다.
또한, 본 발명의 오류 검출 정정 회로는, 상기 치엔 탐색부는, 상기 갈로아 필드 GF(2m) 상(m은 정수)의 m 비트에 의해 벡터 표현되는 (2m-1) 개의 요소를 상기 제 3 위치 방정식에 대입하여 연산을 행할 때에, 상기 (2m-1) 개의 요소 중에서, 선형 독립인 m 개의 요소를 계산하는 기저 계산부; 및 상기 (2m-1) 개의 요소 중에서 상기 m 개의 요소를 제외한 (2m-1-m) 개의 요소를, 각각 상기 m 개의 요소의 조합으로서 구하는 선형 전개부를 포함한다.
또한, 본 발명의 메모리 장치는 상기 오류 검출 정정 회로를 포함하는 메모리 장치로서, 상기 오류 검출 정정 회로는 입력되는 데이터 열로부터 신드롬을 계산하는 신드롬 계산부; 상기 신드롬으로 상기 오류 위치 검출 다항식의 계수를 산출하는 오류 계수 계산부; 상기 데이터 열의 데이터의 비트 위치를 나타내는 값과 상기 계수를 상기 오류 위치 검출 다항식에 대입하고 상기 데이터 열의 비트마다 오류가 있는지 여부를 나타내는 에러 검출 신호를 출력하는 치엔(Chien) 탐색부; 및 상기 에러 검출 신호에 의해 상기 데이터 열에 있어서의 비트의 데이터의 오류를 정정하여 출력하는 오류 정정부를 포함한다.
본 발명의 오류 검출 정정 회로는 오류 위치 검출 다항식을 오류 위치 검출 다항식의 비선형의 항의 계수로 나누는 동시에, 이 계수로 나눈 오류 위치 검출 다항식을 선형 항에서 통합하여 계산한다.
이것에 의해, 오류 검출 정정 회로에 있어서 오류 위치 검출 다항식을 연산하기 위한 회로의 규모를 줄일 수 있다.
도 1은 본 발명의 실시 형태에 따른 메모리 장치를 도시한 도면이다.
도 2는 도 1의 NAND 플래시 메모리에 있어서의 오류 검출 정정 회로의 일 실시 예를 도시한 도면이다.
도 3은 원시 다항식 F(X)를 「F(X) = X4 + X + 1」이라 하였을 때의 갈로아 필드 GF(24)의 요소 1( = α0), α1, α2, …, α14을 나타낸 표이다.
도 4는 원시 다항식 F(X)를 「F(X) = X3 + X + 1」이라 하였을 때의 갈로아 필드 GF(23)의 요소 1( = α0), α1, α2, …, α6을 나타낸 표이다.
도 5는 오류 위치 검출 다항식의 선형 통합의 예를 도시한 도면이다.
도 6은 선형 함수 s(X)의 연산 회로의 예를 도시한 도면이다.
도 7은 데이터 길이가 300 비트인 데이터에 대하여 갈로아 필드 연산 회로(300)에 의해 오류 위치 검출 다항식을 연산하는 회로의 예이다.
도 8은 선형 함수 s'(X)의 연산 회로의 예를 도시한 도면이다.
도 9는 본 발명의 실시 형태에 따른 오류 검출 정정 회로 내의 디코더부의 구성을 도시한 도면이다.
도 10은 정정 비트 수에 따른 계수 값을 나타낸 표이다.
도 11은 2 개의 오류 위치 검출 다항식(a) 및 (b) 모두를 동일 회로에서 사용할 수 있는 갈로아 필드 연산 회로(34A)의 실시 예를 도시한 도면이다.
도 12는 갈로아 필드 연산 회로(34B)의 실시 예를 도시한 도면이다.
도 13은 갈로아 필드 연산 회로(34C)의 실시 예를 도시한 도면이다.
도 14는 행렬 연산의 예를 도시한 도면이다.
이하, 본 발명의 실시의 형태를 첨부 도면을 참조하여 설명한다.
[개요]
종래의 갈로아 필드 연산 회로는 예를 들어, 도 12에 도시된 회로(4차 다항식의 회로)에 있어서, 오류 위치 검출 다항식 P(X)의 계수(e0, e1, e2, e3, e4)가 확정된 후, 갈로아 필드 요소(원) X로서, 1( = α0), α( = α1), α2, α3, …, 을 순차적으로 입력하고, P(X)의 근을 구하고 있다. 보다 구체적으로는, 종래의 갈로아 필드 다항식의 근을 구하는 갈로아 필드 연산 회로(34B)에서는, 제 1 순서로서 계수 ei(i = 0, 1, 2, 3, 4)을 계산하고, 제 2 순서로서 항 eiXi를 계산하고, 제 3 순서로서 i = 0, 1, 2, 3, 4에 대응하는 각 항을 서로 더한다. 그리고, 상기 제 1, 제 2 및 제 3 순서를, 취할 수 있는 모든 요소 X(1, α, α2, α3, …,) 혹은 그 일부에서 대하여 행하고, 다항식 P(X)의 근을 구한다. 그러나, 이 방법에서는 갈로아 필드의 요소(1, α, α2, α3, …)를 순차 입력하여 P(X)의 근을 구하기 때문에, 근을 구하는데 대단히 긴 시간이 걸린다.
이에 대처하기 위해, 다항식 P(X)의 근을 한번에 구하는 회로 (4차 다항식의 예)를 사용할 수 있다. 예를 들어, 도 13에 도시된 갈로아 필드 연산 회로(34C)에 도시된 바와 같이, 각 요소 1, α, α2, α3, …, αt-2, (단, t = 2m)의 각각에 대하여 병렬 연산 회로를 마련하고, P(1), P(α1), P(α2), P(α3), …, P(αt-2)을 동시에 연산함으로써, 오류 위치 검출 다항식에 있어서의 연산 시간을 대폭 단축할 수 있다. 그러나, 도 13에 도시된 방법에서는 취할 수 있는 모든 X에 대한 P(X)를 일괄적으로 구하기 때문에, 근을 구하는데 시간이 걸리지 않지만, 회로 규모가 대단히 커진다.
도 13에 도시된 회로에 있어서, 각 유닛의 각 항에 대응하는 부분은 정수 요소를 곱하는 연산이 선형 연산이므로, 행렬 연산으로 나타낼 수 있다. 도 14는 행렬 연산의 예를 나타내는 도면이다. 예를 들어, 도 14에 도시된 행렬 연산의 예를 참조하면, 연산에 사용되는 행렬은 갈로아 필드 요소 X를 벡터로 간주할 때, 이것을 다른 벡터로 변환하는 행렬이다. 그리고, 갈로아 필드 GF(2m)을 채용한 경우(m은 갈로아 필드 요소를 벡터로 나타낸 경우의 바이너리 데이터의 비트 수에 상당), 행렬 연산 부분에 대응하는 회로는 약 m(m-1)/2 개의 XOR 소자로 구성될 수 있다. 그리고, 다항식의 차수가 n일 때, 이들 행렬 연산의 결과 m 비트를 n + 1항 만큼 서로 더하므로, 이것에 m x n 개의 XOR 소자가 필요하다.
X가 취할 수 있는 값의 범위를 갈로아 필드 전체로 하면, 도 13의 유닛 수는 2m-1개이고, 총계,
(n + 1)×(2m-1)×m(m-1)/2 + n×(2m-1)×m,
이 된다.
예를 들어, m = 8, n = 4의 경우는 총계 약 43800 개의 XOR 소자가 필요하다. 이와 같이, 각 항의 연산을 2 입력의 곱셈으로부터 행렬 연산으로 치환하여도, 회로 규모가 대단히 커진다.
본 실시 형태의 갈로아 필드 연산 회로에서는, 후술하는 바와 같이, 예를 들어, 오류 위치 검출 다항식 「P(X) = e4X4 + e3X3 + e2X2 + e1X + e0」을 비선형 항 X3의 계수(e3)로 나누고, 새로운 오류 위치 검출 다항식 「P'(X) = (e4/e3)X4 + X3 + (e2/e3)X2 + (e1/e3)X + e0/e3」을 구할 수 있다. 이로부터, X3은 각 비트마다 고정 값이 되고, 또한, e0'(= e 0/e3)은 정수가 될 수 있다.
그리고, 새로운 오류 위치 검출 다항식 P'(X)에 있어서, X에 대해서 선형 항을 통합한 선형 함수 「s'(X) = (e4/e3)X4 + (e2/e3)X2 + (e1/e3)X」를 생성할 수 있다.
그리고, 선형 함수 s'(X)을 계산하는 경우에, 후술하는 기저 계산부(101)에 의해 갈로아 필드 GF(2m) 상의 선형 독립인 m 개의 요소에 대하여 선형 함수 s'(X)를 계산하고, 상기의 선형 독립인 m 개의 요소를 제외한 나머지의 (2m-1-m) 개의 요소에 대한 선형 함수 s'(X)의 계산에 대해서는, 선형 전개부(102)에 의해 기저 계산부(101)에 있어서의 연산 결과를 전개(가산)하여 계산을 행한다. 이것에 의해 선형 함수 s'(X)의 계산 회로가 단순해질 수 있다.
이와 같이, 선형 함수 s'(X)의 계산 회로가 단순화되는 동시에, X3이 고정 값으로 되므로, 오류 검출 정정 회로에 있어서 오류 위치 검출 다항식의 다항식을 연산하는 회로가 간략화되고, 그 회로 규모를 줄일 수 있다.
그러므로, 고속 연산으로 오류 위치 검출 다항식의 근을 구하는 오류 검출 정정 회로를, 반도체 메모리에 탑재가능한 회로 규모로 실현할 수 있다.
[메모리 장치의 구성]
도 1은 본 발명의 실시 예에 따른 메모리 장치를 도시한 도면이고, 메모리 장치로서 불휘발성 반도체 기억 장치(10)인 NAND 플래시 메모리를 도시한 도면이다.
불휘발성 반도체 기억 장치(10)는 메모리 셀 어레이(11), 페이지 버퍼(12), 오류 검출 정정 회로(ECC 회로)(13), 버퍼(14), I/O 패드(15), 제어 회로(16), 어드레스 디코더(17), 및 로우 및 블럭 디코더(18)를 포함할 수 있다.
불휘발성 반도체 기억 장치(10)의 구성은 일반적인 구성의 NAND 플래시 메모리와 같은 구성이지만, 본 실시 형태에서는, 오류 검출 정정 회로(13) 내에 포함된 치엔(Chien) 탐색부(33)(도 2) 내의 갈로아 필드 연산 회로(오류 위치 검출 다항식의 연산 회로)(34)에 특징이 있다.
이하, 불휘발성 반도체 기억 장치(10)의 전체의 구성에 대해서 설명한다. 불휘발성 반도체 기억 장치(10)에 있어서, 메모리 셀 어레이(11)는 복수의 스택 게이트 구조의 트랜지스터, 즉 전기적 소거 가능하고 프로그램 가능한 불휘발성 메모리 셀(기억 소자)을 열 방향으로 직렬 접속하여 비트 라인 마다 마련된 NAND 셀 스트링을, 행 방향(비트 라인의 배열 방향)으로 복수 개 배치한 블럭을 포함할 수 있다. 이 블럭은 비트 라인의 배선 방향으로 복수 개 배치될 수 있다. 또한, 메모리 셀의 데이터는 블럭 단위로 소거될 수 있다. 각 블럭에 있어서, 동일 행에 배치된 불휘발성 메모리 각각의 게이트에는, 비트 라인과 직교하는 워드 라인이 접속될 수 있다.
1 개의 워드 라인에 의해 선택되는 불휘발성 메모리 셀의 범위가 프로그램 및 읽기의 단위로 되는 1 페이지이다.
페이지 버퍼(12)는 페이지 단위의 데이터 프로그램 및 읽기를 행하기 위해, 비트 라인마다 마련된 페이지 버퍼 회로로 구성될 수 있다. 이 페이지 버퍼(12)에 있어서의 페이지 버퍼 회로 각각은 각각의 비트 라인에 접속되고, 접속된 비트 라인의 전위를 증폭하여 판정하는 감지 증폭기 회로로서 사용하는 래치 회로를 포함할 수 있다.
페이지 버퍼(12)는 불휘발성 반도체 기억 장치(10)의 데이터 읽기 동작에 있어서, 메모리 셀 어레이(11)의 1 페이지 분의 메모리 셀이 기억하는 데이터(데이터 비트 열)로 이루어지는 셀 데이터(Cell Data)가 입력되고, 이 데이터를 증폭하여 오류 검출 정정 회로(13)로 출력할 수 있다. 한편, 페이지 버퍼(12)는 불휘발성 반도체 기억 장치(10)의 데이터 쓰기(프로그램) 동작에 있어서, 오류 검출 정정 회로(13)로부터 공급되는 데이터를 내부의 래치 회로에 저장하고, 검증 동작을 행하면서, 모든 데이터를 부호 데이터(Code Data)로서 1 페이지 내의 메모리 셀에 기록할 수 있다.
부호 데이터(Code Data)에는 오류 검출 정정 회로(13)가 생성하는 패리티 데이터(Parity)가 포함될 수 있다.
예를 들어, 오류 위치 검출 다항식 P(X)을 「P(X) = e4X4 + e3X3 + e2X2 + e1X + e0」로 하고, 정보 길이 300 비트에 대하여 BCH 부호를 사용하여 4 비트 정정을 행하는 오류 정정 시스템을 예로 할 때, 36 비트의 패리티 비트를 사용할 수 있다. 또한, X는 각 300 비트에 배정된 9 비트 표기의 값이다.
오류 검출 정정 회로(13)는 불휘발성 반도체 기억 장치(10)의 데이터 읽기 동작에 있어서, 페이지 버퍼(12)로부터 읽혀진 데이터를 섹터마다 처리하여 오류 위치 검출 다항식의 계수를 산출하고, 내부에 래치하여 보유할 수 있다. 또한, 오류 검출 정정 회로(13)는 읽기 동작에 있어서, 컬럼 어드레스에 의해 위치가 표시되는 비트의 데이터의 오류를 정정하고, I/O 패드(15)을 통해 정정 완료 데이터(Corrected Data)로서 외부로 출력할 수 있다.
또한, 오류 검출 정정 회로(13)는 불휘발성 반도체 기억 장치(10)의 데이터 쓰기 동작에 있어서, I/O 패드(15)로부터 입력되는 정보 데이터(Information Data)를 버퍼(14)을 통해 수신할 수 있다. 오류 검출 정정 회로(13)는 수신된 정보 데이터(Information Data)로부터 패리티 데이터(Parity)를 생성하는 동시에, 수신된 정보 데이터(Information Data), 및 패리티 데이터(Parity)를 페이지 버퍼(12)로 출력할 수 있다. 페이지 버퍼(12)는 이들의 데이터를 부호 데이터(Code Data)로써, 선택된 페이지에 접속된 메모리 셀에 쓸 수 있다.
제어 회로(16)는 각종 제어 신호를 입력받아 불휘발성 메모리 셀에 대한 데이터 프로그램, 읽기, 소거 등의 동작, 및 검증 동작을 제어할 수 있다.
예를 들어, 제어 신호는 외부 클록 신호, 칩 인에이블 신호(/CE), 읽기 인에이블 신호(/RE), 프로그램 인에이블 신호(/WE), 커맨드 래치 인에이블 신호(CLE), 어드레스 래치 인에이블 신호(ALE), 및 쓰기 보호 신호(/WP) 등을 포함할 수 있다. 제어 회로(16)는 제어 신호와 I/O 패드(15)로부터 입력되는 커맨드 데이터가 나타내는 동작 모드에 따라서 각 회로에 대하여 내부 제어 신호를 출력할 수 있다.
예를 들어, 제어 회로(16)는 프로그램 인에이블 신호(/WE)의 상승 시에 커맨드 래치 인에이블 신호(CLE)가 로우(L) 레벨로부터 하이(H) 레벨로 됨으로써, I/O 패드(15)로부터 커맨드 데이터를 수신하여 내부의 레지스터에 보유할 수 있다.
어드레스 디코더(17)는 I/O 패드(15)로부터 입력되는 어드레스들(로우 어드레스, 블럭 어드레스, 및 컬럼 어드레스)을 제어 회로(16)로부터의 내부 제어 신호에 기초하여 보유할 수 있다. 또한, 어드레스 디코더(17)는 보유한 어드레스를, 제어 회로(16)로부터의 내부 제어 신호에 기초하여, 로우 및 블럭 디코더(18), 페이지 버퍼(12), 및 오류 검출 정정 회로(13)로 출력할 수 있다.
예를 들어, 제어 회로(16)는 프로그램 인에이블 신호(/WE)의 상승 시에 어드레스 래치 인에이블 신호(ALE)가 로우(L) 레벨로부터 하이(H) 레벨로 됨으로써, I/O 패드(15)로부터 어드레스를 수신하여 어드레스 디코더(17)의 내부 레지스터에 보유할 수 있다.
로우 및 블럭 디코더(18)는 어드레스 디코더(17)가 보유하고 출력하는 로우 어드레스 및 블럭 어드레스에 따라서 메모리 셀 어레이(11)의 블럭 및 워드 라인을 선택하고, 1 페이지 상의 메모리 셀을 선택할 수 있다. 또한, 어드레스 디코더(17)는 내부에 보유한 컬럼 어드레스에 따라서 메모리 셀 어레이(11)의 비트 라인 및 페이지 버퍼(12)를 선택할 수 있다.
오류 검출 정정 회로(13)는 불휘발성 반도체 기억 장치(10)의 데이터 읽기 동작에 있어서, 페이지 버퍼(12)로부터 읽혀진 데이터를 섹터마다 처리하여 오류 위치 검출 다항식의 계수를 산출할 수 있다. 또한, 오류 검출 정정 회로(13)는 읽기 동작에 있어서, 컬럼 어드레스에 의해 위치가 나타내는 비트마다 데이터의 오류를 정정하고, I/O 패드(15)을 통해 정정 완료 데이터(Corrected Data)로서 외부로 출력할 수 있다.
또한, 오류 검출 정정 회로(13)는 불휘발성 반도체 기억 장치(10)의 데이터 기입 동작에 있어서, I/O 패드(15)로부터 입력되는 정보 데이터(Information Data)를 버퍼(14)를 통해 수신할 수 있다. 오류 검출 정정 회로(13)는 수신된 정보 데이터(Information Data)로부터 패리티 데이터(Parity)를 생성하는 동시에, 수신된 정보 데이터(Information Data) 및 패리티 데이터(Parity)를 페이지 버퍼(12)에 출력할 수 있다. 페이지 버퍼(12)는 이들의 데이터를 부호 데이터(Code Data)로서, 선택된 페이지에 접속되는 메모리 셀에 쓸 수 있다.
도 2는 도 1의 NAND 플래시 메모리의 오류 검출 정정 회로(13)의 실시 예를 도시한 도면이다.
도 2에 도시된 예는 오류 검출 정정 회로(13)로서, BCH 부호(Bose-Chaudhuri Hocquenghem code)를 사용한 오류 검출 정정 회로(ECC회로)의 예이다. BCH 부호는 갈로아 필드 연산을 이용한 블럭 부호이다. 또한, BCH 부호의 대신에, 예를 들면 허밍 부호(Hamming code), 리드-솔로몬 부호(Reed-Solomon code)을 사용할 수도 있다.
오류 검출 정정 회로(13)는 데이터의 복호를 담당하는 디코더부(30)와 정정용 패리티 데이를 생성하고 정정용 패리티 데이터를 셀로의 쓰기 데이터에 부가하는 인코더부(40)를 포함할 수 있다.
인코더부(40)는 패리티 생성 회로(41)를 포함할 수 있다. 패리티 생성 회로(41)는 버퍼(14)에 쓰여진 정보 데이터(Information Data)를 생성 다항식으로 나누어 얻을 수 있는 패리티 데이터를 생성할 수 있다. 또한, 패리티 생성 회로(41)는 정보 데이터에 생성된 패리티 데이터를 부가하여 페이지 버퍼(12)로 출력할 수 있다. 이들 데이터는 불휘발성 반도체 기억 장치(10)의 데이터 쓰기 시에 있어서 선택된 1 페이지에 쓰여진 부호 데이터(Code Data)가 될 수 있다.
또한, 본 발명의 실시 예에 따르면, 불휘발성 반도체 기억 장치(10)로부터의 데이터 읽기 시에 있어서 오류 검출 정정 회로(13)가 고속으로 데이터 정정 처리를 행하는 동시에, 오류 검출 정정 회로(13) 내의 치엔(Chien) 탐색부(33)(보다 정확하게는 갈로아 필드 연산 회로(34))의 회로 규모를 줄일 수 있다. 이하, 디코더부(30)에 대해서 상세히 설명한다.
디코더부(30)는 신드롬 계산부(31), 오류 계수 계산부(32), 치엔(Chien) 탐색부(33), 및 오류 정정부(35)를 포함할 수 있다. 또한, 치엔(Chien) 탐색부(33)는 갈로아 필드 연산 회로(34)를 포함할 수 있다.
신드롬 계산부(31)는 불휘발성 반도체 기억 장치(10)의 데이터 읽기 시에, 읽어진 셀 데이터가 부호 데이터로서 페이지 버퍼(12)에 입력되고, 부호 데이터를 독립한 최소 다항식으로 나누어 신드롬을 계산할 수 있다. 4 비트 데이터의 오류 정정이 가능한 BCH 부호로 사용되는 독립한 최소 다항식은 4 개일 수 있다. 신드롬 계산부(31)는 이들 4 개의 최소 다항식에 대응하여 4 개의 신드롬 산출 회로(31_1~31_4)을 포함할 수 있다. 신드롬 산출 회로(31_1~31_4)는 각각 신드롬(S1, S3, S5, S7)을 계산할 수 있다.
오류 계수 계산부(32)는 신드롬(S1, S3, S5, S7)을 사용하고, 오류 위치 검출 다항식의 계수를 계산할 수 있다. 예를 들어, 오류 위치 검출 다항식이 4차의 다항식 P(X) = e4X4 + e3X3 + e2X2 + e1X1 + e0일 경우에, 오류 계수 계산부(32)는 계수(e4, e3, e2, e1, 및 e0)을 계산할 수 있다. 그리고, 치엔(Chien) 탐색부(33)에서는, 갈로아 필드 연산 회로(34)에 의해 오류 위치 검출 다항식 P(X)를 계산할 수 있다. 또한, 오류 위치 검출 다항식 P(X)의 변수(X)에는 부호 데이터, 즉 페이지 버퍼에 저장된 셀 데이터의 비트 위치(예를 들어, 비트 라인의 위치)를 나타내는 값(예를 들어, 9 비트 표기의 값)이 입력될 수 있다. 즉, 오류 위치 검출 다항식 P(X)는 페이지 버퍼(12)로부터 읽어진 비트에 오류가 있는지 여부를 탐색할 때에 치엔(Chien) 탐색부(33)에 있어서 사용될 수 있다.
치엔(Chien) 탐색부(33)는 300 비트 데이터의 각 비트에 대하여 갈로아 필드 연산 회로(34)에 의해 오류 위치 검출 다항식 「P(X) = e4X4 + e3X3 + e2X2 + e1X1 + e0」을 계산하고, 각 비트에 대응하는 에러 검출 신호(bch[299:0])를 생성하고, 에러 검출 신호(bch[299:0])를 오류 정정부(35)로 출력할 수 있다. 예를 들어, 치엔 탐색부(33)는 P(X)의 값이 0일 경우, 검출 신호(bch)를 H 레벨로서 출력할 수 있다. 반면, P(X)의 값이 0이 아닐 경우, 치엔(Chien) 탐색부(33)는 검출 신호(bch)를 L 레벨로서 출력할 수 있다.
오류 정정부(35)는 예를 들어, 에러 검출 신호(bch)가 H 레벨이면, 대응하는 위치의 비트의 데이터의 논리(0 또는 1)를 반전하여, 정정 완료 데이터(Corrected Data)의 1 비트로서 출력할 수 있다. 반면에, 오류 정정부(35)는 에러 검출 신호(bch)가 L 레벨이면, 대응하는 위치의 비트의 데이터의 논리를 그대로, 즉 정정하지 않고서 정정 완료 데이터(Corrected Data)의 1 비트로서 출력할 수 있다.
상기 구성의 오류 검출 정정 회로(13)에 있어서, 갈로아 필드 연산 회로(34)는 후술하는 바와 같이, 오류 위치 검출 다항식 P(X)를 비선형 항(예를 들어, e3X3)의 계수(예를 들어, e3)로 나누는 동시에, 이 계수로 나눈 오류 위치 검출 다항식의 연산을 선형 항과 비선형 항으로 구분하여 연산함으로써, 오류 위치 검출 다항식의 연산 회로에 있어서의 회로 규모를 줄일 수 있다.
갈로아 필드와 다항식이 갖는 선형성에 대해서 설명한다. 또한, 이하의 선형성의 설명에 있어서는, 도면의 도시 용이성과 설명을 쉽게 하기 위해, 갈로아 필드 GF(2m)에 있어서, m = 3(혹은 m = 4)으로 하고, 오류 위치 검출 다항식의 차수를 4차(n = 4)라 하였을 경우를 예로 들어 설명하지만, 차수 m 및 n은 오류 검출의 대상이 되는 데이터의 비트 길이와 오류 정정 비트 수에 따라서 임의인 값으로 설정될 수 있다.
[다항식이 갖는 선형성과 갈로아 필드가 갖는 선형 구조]
어떤 함수 F(X)가 이하의 두 가지 조건을 충족시킬 때, F(X)는 X에 대하여 선형이라 한다.
(조건 1) F(X1 + X2) = F(X1) + F(X2)
(조건 2) F(a·X1) = a·F(X1)
예를 들어, X가 갈로아 필드의 요소이면, F(X) = X2은 X의 선형 함수이다. 왜냐하면, X1, X2을 갈로아 필드의 요소라 하고, a = 0, 1이라 하였을 때,
F(X1 + X2) = (X1 + X2)2
= X1 2 + 2X1·X2 + X2 2
= X1 2 + X2 2(∵ 갈로아 필드상에서의 가산은 배타적 논리합이고, 1 + 1 = 2 = 0)
= F(X1) + F(X2)
이 되고, (조건 1)을 충족시킨다. 또한, a는 0 혹은 1이므로, (조건 2)을 충족시키는 것은 명백하다. 마찬가지로, 갈로아 필드 상에서 「1 + 1 = 0」이기 때문에, X4, X8, X16, … 등 X를 2 제곱 회만 곱하는 함수는 갈로아 필드상의 선형 함수인 것을 알 수 있다.
여기서, 갈로아 필드 다항식의 1 차·2 차·4 차의 항에 착안하여, 이들의 합을 「Q(X) = e4X4 + e2X2 + e1X」로 둔다.
이때, X, Y를 갈로아 필드의 요소로서,
Q(X + Y) = e4(X + Y)4 + e2(X + Y)2 + e1(X + Y)
= e4(X4 + Y4) + e2(X2 + Y2) + e1(X + Y)
(∵ 갈로아 필드 상에서 2 = 4 = 0)
= e4X4 + e4Y4 + e2X2 + e2Y2 + e1X + e1Y
= (e4X4 + e2X2 + e1X) + (e4Y4 + e2Y2 + e1Y)
= Q(X) + Q(Y)
이 되고, 상기 (조건 1)을 충족시킨다. 또한, (조건 2)를 충족시키는 것은 명백하므로, Q(X)은 X의 선형 함수이다.
이와 같이, 「Q(X) = e4X4 + e2X2 + e1X」, 은 X에 대해서 선형 함수인 것을 알 수 있다.
한편, 다른 항(X4, X2, X 이외의 항)에 관해서도, 예를 들어, X3이나 X5 등을 변수로 간주함으로써, 선형 함수로 간주하는 것이 가능하다. 예를 들어, 3 차, 6 차, 12 차의 항에 착안하고, R(X) = e12X12 + e6X6 + e3X3로 두면, R(X)은 X3의 선형 함수이다.
갈로아 필드가 갖는 선형 구조에 대해서 설명한다.
도 3은 원시 다항식 F(X)을 「F(X) = X4 + X + 1」이라 하였을 때의 갈로아 필드 GF(24)의 요소 1( = α0), α1, α2, …, α14을 나타낸 표(표 1)이다. 여기서, 1, α, α2, α3의 4 요소(점선으로 둘러싼 부분)에 착안하면, 이들은 자신 이외의 요소의 합으로 자기 자신이 결코 표현되지 않는 선형 독립한 쌍인 것을 알 수 있다. 이들을 기저 벡터라 생각하면, 다른 요소는 이 기저 벡터의 선형 결합으로 표현될 수 있다. 즉, 「α4 + α1 + α0 = 0」의 관계를 사용하여, 각 요소 0, α0( = 1), α1, α2, …, α14는 α0, α, α2, α3을 요소로 하는 4차원 벡터(0, 0, 0, 0)~ (1, 1, 1, 1)로 나타낼 수 있다.
예를 들어, α4 = 1 + α1, 이고, α12 = α(α1 + α2 + α3) = α2 + α3 + α4 = 1 + α1 + α2 + α3와 같이 나타낼 수 있다.
또한, βi = 0, 1(i = 0, 1, 2, 3)이라 가정하면, 임의의 갈로아 필드 요소는 αj = β3α3 + β2α2 + β1α1 + β0α0, (j = 0, 1, 2, …)로 나타낼 수 있다. 여기서, (β3, β2, β1, β0)은 αj에 대응하는 벡터 표현이다.
상기 Q(X)에 대하여, Qj = Q(αj), (j = 0, 1, 2, …)으로 나타내기로 한다. Q(X)에, αj = β3α3 + β2α2 + β1α1 + β0α0을 대입하면,
Qj = Q(αj) … (a)
= Q(β3α3 + β2α2 + β1α1 + β0α0)
= β3Q(α3) + β2Q(α2) + β1Q(α1) + β0Q(α0)
(∵ Q(X)의 선형성에 의해)
= β3Q3 + β2Q2 + β1Q1 + β0Q0 … (b)
를 얻을 수 있다. 종래, 상기 (a)식으로부터, 「Qj = e4α4 + e2α2 + e1α」로서, 각 항을 행렬 연산한 결과를 더 가산할 필요가 있었지만, 본 실시 예에서는 상기 (b)식을 이용하고, 기저 1( = α0), α1, α2, α3에 대응하는 Q0, Q1, Q2, Q3을 미리 행렬 연산으로 구하고, 이들의 단순 가산으로 다른 Qj를 구할 수 있다.
또한, 도 4는 원시 다항식 F(X)를 「F(X) = X3 + X + 1」이라 하였을 때의 갈로아 필드 GF(23)의 요소 1( =α0), α1, α2, …, α6을 도시한 표(표 2)이다. 여기서, 1, α, α2의 3 요소(점선으로 둘러싼 부분)에 착안하면, 이들은 자신 이외의 요소의 합으로 자기 자신이 결코 표현되지 않는 선형 기저 벡터의 선형 결합으로 표현될 수 있다. 즉, 「α3 + α1 + α0 = 0」의 관계를 사용하여, 각 요소 0, α0( = 1), α1, α2, …, α6은 α0, α, α2을 요소로 하는 3차원 벡터(0, 0, 0)~ (1, 1, 1)로 나타낼 수 있다.
[오류 위치 검출 다항식의 선형성을 이용하는 예]
상술한 바와 같이, 오류 위치 검출 다항식에 있어서, 예를 들어, 「s(X) = e4X4 + e2X2 + e1X」라 하면, 다항식 s(X)는 X에 관한 선형 함수가 된다. 선형 함수 s(X)의 계산은 상술한 다항식과 갈로아 필드의 선형성을 이용함으로써 간략화할 수 있다. 여기에서는, 이 선형 함수 s(X)의 연산의 간략화하는 예에 대해서 설명한다. 또한, 도면의 도시 용이성과 설명을 쉽게 하기 위해, 갈로아 필드 GF( 23)을 예로 들고, 선형 항을 통합하여 연산하는 예에 대해서 설명하지만, 임의의 m 차의 갈로아 필드 GF(2m)에 대해서도 마찬가지이다.
도 5는 오류 위치 검출 다항식의 선형 통합의 예를 도시한 도면이다. 도 5(A)에 도시된 바와 같이, 오류 위치 검출 다항식이 4차의 오류 위치 검출 다항식 「P(X) = e4X4 + e3X3 + e2X2 + e1X + e0」일 경우에, 도 5(B)에 도시된 바와 같이, 오류 위치 검출 다항식 P(X)의 선형 항을 통합한 선형 함수 「s(X) = e4X4 + e2X2 + e1X」를 생성하고, 선형 함수 s(X)에 대하여 연산을 행하는 예에 대해서 설명한다.
도 6은 선형 함수 s(X)의 연산 회로의 예를 도시한 도면이다. 연산 회로(200)에 있어서, 기저 계산부(201) 내의 연산부(R0)는 요소 X(1 = α0)에 대한 오류 위치 검출 다항식 내의 선형 함수 「s(1) = e414 + e212 + e11」을 행렬 연산에 의해 산출한다. 연산부(R1)는 요소X( = α1 = α)에 대한 선형 함수 「s(α) = e4α4 + e2α2 + e1α」를 행렬 연산에 의해 산출한다. 연산부(R2)는 요소X( = α2)에 대한 선형 함수 「s(α2) = e42) 4 + e22)2 + e1α2」를 행렬 연산에 의해 산출한다.
그리고, 선형 전개부(210)는 기저 계산부(201)에 의해 산출된 연산 결과 s(1), s(α), s(α2)을 단순 가산으로 전개하여 다른 출력을 얻을 수 있다.
예를 들어, s(α3)은 도 4의 갈로아 필드 GF(23)의 표 2에 도시된 바와 같이, 「α3 = α + 1」이기 때문에, 상술한 선형성에 의해, 「S(α3) = s(α) + s(1)」로 나타낼 수 있다. 그러므로, s(α3)은 XOR 소자(가산기)(211)에 의해 기저 계산부(201)의 출력 s(1)과 s(α)을 가산함으로써 얻을 수 있다.
또한, s(α4)은 도 4의 갈로아 필드 GF(23)의 표 2에 나타내는 바와 같이, 「 α4 = α2 + α」이기 때문에, 상술한 선형성에 의해, 「s(α4) = s(α2) + s(α)」으로 나타낼 수 있다. 그러므로, s(α4)은 XOR 소자(212)에 의해, 기저 계산부(201)의 출력 s(α)와 s(α2)을 가산함으로써 얻을 수 있다.
또한, s(α5)은 「α5 = α2 + α + 1」이고, 또한, 「α4 = α2 + α」이기 때문에, 「α5 = α4 + 1」이 된다. 그러므로, s(α5)은 XOR 소자(213)에 의해, 기저 계산부(201)의 출력 s(1)과, XOR 소자(213)의 출력 s(α4)을 가산함으로써 얻을 수 있다.
마찬가지로, s(α6)은 「α6 = α2 + 1」이기 때문에, s(α6)은 XOR 소자(214)에 의해, 기저 계산부(201)의 출력 s(1)과 s(α2)을 가산함으로써 얻을 수 있다.
이와 같이, 갈로아 필드 GF(23)의 경우에, 기저 계산부(201)는 3 개의 선형독립한 요소(1, α, α2)에 대하여, 이 요소에 대응하는 3 쌍의 선형 함수 s(1), s(α1), s(α2)을 계산할 수 있다. 그리고, 선형 전개부(210)는 선형 함수 s(α3), s(α4), s(α5), s(α6)을 기저 계산부(201)에 있어서의 s(1), s(α), s(α2)의 연산 결과에 기초하여, XOR 소자에 의해 가산하여 계산할 수 있다. 이와 같이, 연산 회로(200)에서는, 요소 X의 취할 수 있는 값의 모든 조합 수 7로부터 기저의 개수 3을 뺀 「4개」의 오류 위치 검출 다항식(보다 정확하게는, 선형 함수 s(X))에 대하여, 행렬 연산을 단순 가산으로 치환함으로써 회로 규모를 줄일 수 있다.
또한, 도 6에 도시된 회로 예에서는, 3 개의 선형 독립한 기저의 쌍으로서, 도 4의 표 2에 나타내는 바와 같이 벡터 표현 (001), (010), (100)의 기저가 사용되고 있지만, 반드시 이러한 1 비트만이 1이 되는 벡터를 기저로 선택할 필요는 없고, 단지 선형 독립한 벡터의 쌍이면 어떤 조합이라도 가능하다.
이와 같이, 연산 회로(200)에서는 오류 위치 검출 다항식에 있어서 동일한 선형 공간을 구성하는 항을 선형 함수 s(X)로서 통합하고, 통합된 선형 함수에 대하여 기저 계산부(201)와 선형 전개부(210)에 의해 연산을 행할 수 있다. 이것에 의해, 연산 회로(200)에서는 오류 위치 검출 다항식을 연산할 때에 필요한 연산 소자의 규모를 줄일 수 있다.
도 7은 데이터 길이가 300 비트인 데이터에 대하여, 갈로아 필드 연산 회로(300)에 의해 오류 위치 검출 다항식을 연산하는 회로의 예이다.
이 갈로아 필드 연산 회로(300)는 오류 위치 검출 다항식에 있어서 선형 항을 통합하는 예를 나타낸 것이고, 본 실시 예의 오류 검출 정정 회로(13)에 있어서 실제로 사용되는 갈로아 필드 연산 회로(34)는 후술하는 바와 같이, 오류 위치 검출 다항식을 비선형의 항의 계수로 나누는 처리가 더 실행될 수 있다. 즉, 본 실시 예의 오류 검출 정정 회로(13)는 도 7에 도시된 갈로아 필드 연산 회로(300)를 더욱 개량한 구성의 갈로아 필드 연산 회로(34)를 사용하는 것이다.
도 7에 도시된 회로(300)에 있어서, 비선형 부분의 연산 회로(SRC0)(301)는 「e3X3 + e0」을 연산하고, 각 비트마다의 연산 결과 i[299:0]을 출력할 수 있다. 또한, 선형 부분의 연산 회로(SRC1)(302)는 선형 함수 「s(X) = e4X4 + e2X2 + e1X」를 연산하고, 각 비트마다의 연산 결과 j[299:0]을 출력할 수 있다. 그리고, 가산 회로(303)는 각 비트마다의 연산 결과의 가산(z0 = i0^j0, …, z299 = i299^j299)을 행하고, 연산 결과 bch[299:0]을 출력할 수 있다. 본 실시 형태에 있어서, 위에 기술한 「^」은 배타적 논리합 연산을 나타낸다.
선형 부분의 연산 회로(302)에 있어서, 선형 함수 「s(X) = e4X4 + e2X2 + e1X」를 연산할 때에, 도 6에 도시된 회로와 마찬가지로, 기저 계산부와 선형 전개부를 사용하여 선형 함수 s(X)의 연산을 행함으로써, 선형 함수 s(X)를 연산할 때에 필요로 하는 회로의 회로 규모(연산 소자의 수)를 줄일 수 있다.
[오류 위치 검출 다항식을 비선형 항의 계수로 나누는 경우의 예]
상술한 바와 같이, 갈로아 필드 연산 회로에서는 오류 위치 검출 다항식의 선형 항을 통합함으로써 회로 규모를 줄일 수 있지만, 본 실시 형태의 오류 검출 정정 회로에서는 회로 규모를 더 줄일 수 있다. 즉, 오류 위치 검출 다항식(예를 들어, P(X) = e4X4 + e3X3 + e2X2 + e1X + e0)을 비선형 항의 계수(예를 들어, e3X3의 계수(e3))로 나누어 새로운 오류 위치 검출 다항식을 생성하고, 새로운 오류 위치 검출 다항식에 있어서의 선형 항을 통합하여 연산함으로써, 회로 규모를 더 줄일 수 있다.
이하, 오류 위치 검출 다항식을 비선형 항의 계수로 나누는 예에 대해서 설명한다. 또한, 이하의 설명에서는, 갈로아 필드 GF(23)의 경우에 대해서 설명한다.
오류 위치 검출 다항식 P(X)을 비선형 항의 계수(e3)로 나누면, 오류 방정식은
P'(X) = s'(X) + X3 + e0',
여기서,
s'(X) = (e4/e3)X4 + (e2/e3)X2 + (e1/e3)X,
= (e4')X4 + (e2')X2 + (e1')X,
e4' = e4/e3, e2' = e2/e3, e1' = e1/e3, e0' = e0/e3, 이다.
이것에 의해, P'(X)의 선형 항을 선형 함수 s'(X)로 통합하여 계산함과 함께, X3의 항이 비트마다의 고정 값이 될 수 있다. 또한, e0'은 정수이므로, 오류 위치 검출 다항식의 다항식을 연산하는 회로를 1개로 완료할 수 있다. 그러므로, 갈로아 필드 연산 회로의 회로 규모를 더욱 줄일 수 있다.
도 8은 선형 함수 s'(X)의 연산 회로의 예를 도시한 도면이고, 도 6에 도시된 회로와 같은 회로이다. 연산 회로(200')에 있어서, 기저 계산부(201') 내의 연산부(R0)는 요소 X(1 = α0)에 대한 오류 위치 검출 다항식 내의 선형 함수 「s'(1 = α0) = e4'14 + e2'12 + e1'1」을 행렬 연산에 의해 산출할 수 있다. 연산부(R1)는 요소X( = α1 = α)에 대한 선형 함수 「s'(α) = e44 + e22 + e1'α」을 행렬 연산에 의해 산출할 수 있다. 연산부(R2)는 요소 X( = α2)에 대한 선형 함수 「s'(α2) = e4'(α2)4 + e2'(α2)2 + e1'(α2)」을 행렬 연산에 의해 산출할 수 있다. 그리고, 선형 전개부(210')는 기저 계산부(201')에 의해 산출된 연산 결과 s'(1), s'(α), s'(α2)을 XOR 소자(211~214)에 의해 단순 가산으로 전개하여 다른 출력을 얻을 수 있다.
이와 같이, 도 8에 도시된 연산 회로(200')에서는, 오류 위치 검출 다항식 P(X)을 비선형 항의 계수(예를 들어, e3X3의 계수(e3))로 나누어 새로운 오류 위치 검출 다항식 P'(X)를 생성하고, X3의 항을 고정 값으로 할 수 있다. 그리고, 연산 회로(200)에서는, 새로운 오류 위치 검출 다항식 P'(X)의 선형 항을 통합하여 선형 함수 s'(X)를 생성하고, 선형 함수 s'(X)를 기저 계산부(201')과 선형 전개부(210)'를 사용하여 연산할 수 있다. 이것에 의해, 갈로아 필드 연산 회로의 회로 규모를 더욱 줄일 수 있다.
[본 발명의 실시 형태에 따른 오류 검출 정정 회로(13)의 구성 예]
이상, 오류 위치 검출 다항식을 연산할 때에 오류 위치 검출 다항식을 비선형 항의 계수(예를 들어, e3X3의 계수(e3))로 나누고, 새로운 오류 위치 검출 다항식을 생성하고, 새로운 오류 위치 검출 다항식의 선형 항을 통합하여 연산을 행할 경우의 예와 효과에 대해서 설명하였다.
본 실시 형태에 있어서의 오류 검출 정정 회로(13)는 상술한 오류 위치 검출 다항식을 비선형 항의 계수로 나누는 기능과, 오류 위치 검출 다항식의 선형 항을 통합하여 연산을 행하는 기능 모두를 갖는 치엔(Chien) 탐색부(33)(보다 정확하게는 갈로아 필드 연산 회로(34))를 구비할 수 있다. 이하, 본 실시 형태에 따른 오류 검출 정정 회로(13)의 치엔 탐색부(33)의 구성 예에 대해서 설명한다.
도 9는 본 발명의 실시 예에 따른 오류 검출 정정 회로(13) 내의 디코더부(30)의 구성을 도시한 도면이다. 도 9에 도시된 회로는 예를 들어, 300 비트(정보 데이터 길이 264 비트 + 패리티 36 비트)를 데이터의 정정 단위로 하고, 그 중의 4 비트의 오류가 정정가능한 BCH 부호를 사용한 오류 검출 정정 회로(13)의 예이다.
도 9를 참조하여, 치엔(Chien) 탐색부(33) 내의 갈로아 필드 연산 회로(34)에 있어서, 오류 위치 검출 다항 식 P(X)을 연산할 때에 오류 위치 검출 다항식 P(X)를 비선형 항의 계수(e3X3의 계수(e3))로 나누어 새로운 오류 위치 검출 다항식 P'(X)를 생성하고, 새로운 오류 위치 검출 다항식 P'(X)의 선형 항을 통합하여 연산을 실행할 수 있다.
치엔 탐색부(33) 내의 갈로아 필드 연산 회로(34)는 오류 위치 검출 다항식 P(X)를, 예를 들어, P(X) = e4X4 + e3X3 + e2X2 + e1X1 + e0 을 연산할 수 있다. 이때, X는 예를 들어, 각 300 비트에 배정된 9 비트 표기의 값일 수 있다.
신드롬 계산 회로(31)는 300 비트의 정보 데이터와 소정의 독립한 최소 다항식에 기초하여, 신드롬(S1, S3, S5, S7)을 생성할 수 있다. 또한, 오류 계수 계산부(32)는 신드롬(S1, S3, S5, S7)을 기초로 하여 오류 위치 검출 다항식의 계수를 계산할 수 있다. 치엔 탐색부(33)는 갈로아 필드 연산 회로(34)에 의해, 오류 위치 검출 다항식 P(X)의 연산을 행하고, 300 비트의 정보 데이터에 있어서의 데이터의 오류 위치를 구할 수 있다.
여기서, 오류 위치 검출 다항식에 있어서, X, X2, X4, X8, X16, …의 항은 갈로아 필드 중에서 선형성이 인정될 수 있고, 오류 위치 검출 다항식 P(X)는 P(X) = s(X) + e3X3 + e0'으로 변형될 수 있다. 여기서, s(X)는 선형 함수이고, s(X) = e4X4 + e2X2 + e1X 일 수 있다.
그리고, 오류 위치 검출 다항식 P(X)를 비선형 항의 계수(e3)로 나누면, 오류 방정식은 P'(X) = s'(X) + X3 + e0' 이고, 여기서, s'(X) = (e4/e3)X4 + (e2/e3)X2 + (e1/e3)X, e0' = e0/e3 이다.
이것에 의해, e0'은 전 비트에 대하여 고정 값이 되고, X3은 각 비트마다 고정 값이 되므로, 계산에 필요한 회로는 선형 함수 s'(X)의 항만으로 될 수 있다.
그리고, 「s'(X) = (e4/e3)X4 + (e2/e3)X2 + (e1/e3)X」는 X에 관한 선형 함수이므로, 갈로아 필드 연산 회로(34)에 있어서, 상술한 도 7에 도시된 회로와 같은 구성의 회로에 의해, 기저 계산부(101)와 선형 전개부(102)를 사용하여 연산할 수 있다.
즉, 갈로아 필드 연산 회로(34) 내의 선형 부분의 연산 회로(SRC)(100)에 있어서, 기저 계산부(101)는 요소 X 중의 기저로 되는 요소에 대한 선형 함수 s'(X)를 행렬 연산으로 계산하고, 선형 전개부(102)는 기저 계산부(101)의 계산 결과를 전개(가산)하여, 기저를 제외한 다른 요소 X에 대한 선형 함수의 출력을 얻을 수 있다. 그리고, 비트마다 고정 값인 X3의 값과 정수인 e0'를 s'(X)의 계산 값에 가산함으로써, 오류 위치 검출 다항식의 연산 결과 bch[299:0]을 얻을 수 있다.
이와 같이, 오류 위치 검출 다항식 P(X)를 비선형 항의 계수(e3)로 나누어 줌으로써, X3은 각 비트마다 고정 값이 되고, e0'은 전 비트에 대하여 고정 값이 될 수 있다. 그리고, 선형 함수 「s'(X) = (e4/e3)X4 + (e2/e3)X2 + (e1/e3)X」에 대하여, 기저 계산부(101)와 선형 전개부(102)를 사용하여 연산함으로써, 갈로아 필드 연산 회로(34)에 있어서, 다항식의 계산 부분을 선형 부분의 연산 회로(100) 1 개로 할 수 있다. 이것에 의해, 갈로아 필드 연산 회로(34)에 있어서, 오류 위치 검출 다항식을 연산할 때에 필요로 하는 소자 수를 줄일 수 있다.
한편, 상술한 바와 같이 오류 위치 검출 다항식을 비선형 계수(e3)로 나누어 줌으로써, 갈로아 필드 연산 회로의 회로 규모를 줄일 수 있다. 도 10은 정정 비트 수에 따른 계수 값을 나타낸 표이다. 도 10의 표 3(정정 비트 수에 따른 계수 값)에 나타난 바와 같이, 통상의 정정 조건 이외의 불규칙한 조건(e3 = 0이 되는 조건)이 존재할 수 있다.
즉, 도 10의 표에 나타난 바와 같이, 4 비트 정정 회로에 있어서의 「1, 3, 4 비트 정정 시」 및 「2 비트 정정 시」에 있어서, 오류 계수(e4, e3, e2, e1, e0)의 생성 조건이 다를 수 있다. 예를 들어, 4 비트 정정 회로에 있어서의 「1, 3, 4 비트 정정 시」에 있어서, 기저로 되는 신드롬(S1)이 「S1 = 0」 또는 「S1≠0」의 케이스에서, 오류 계수(e4, e3, e2, e1, e0)의 생성 조건이 다를 수 있다. 이 예에서는, 「1, 3, 4 비트 정정 시」에 있어서 신드롬(S1)이 0이 될 때에, 오류 계수 계산부(32)는 계수(e3)이 0이 되도록 하여 오류 계수(e4, e3, e2, e1, e0)를 생성할 수 있다.
이와 같이, 신드롬(S1)이 「S1 = 0」 또는 「S1≠0」의 케이스에서 오류 계수(e4, e3, e2, e1, e0)가 구분되는 조건을 하나의 회로에서 충족시키기 위해서는, 정정 조건에 의해 오류 위치 검출 다항식을 구분하여 사용하는 것이 필요할 수 있다.
예를 들어, 1, 3, 4 비트 정정 시에 있어서, 신드롬 「S1≠0(e3≠0)」일 때에는, 오류 위치 검출 다항식 P'(X) = s'(X) + X3 + e0' … (a)를 사용하고, 1, 3, 4 비트 정정 시에 있어서, 신드롬 「S1 = 0」 및 2 비트 정정 시에는, 오류 위치 검출 다항식 P(X) = s(X) + e0 … (b)를 사용할 수 있다.
도 11은 2 개의 오류 위치 검출 다항식(a) 및 (b) 모두를 동일 회로에서 사용할 수 있는 갈로아 필드 연산 회로(34A)의 실시 예를 도시한 도면이다. 도 11에 도시된 갈로아 필드 연산 회로(34A)는 연산부(SRC)(400)에 의해 다항식 「e4'X4 + e2'X2 + e1'X + e0'」을 연산할 수 있다.
다항식 「e4'X4 + e2'X2 + e1'X + e0'」에 있어서, e4'은 e4/e3을 나타내고, e2'은 e2/e3을 나타내며, e0'은 e0/e3을 나타낼 수 있다.
그리고, 연산부(400)는 오류 검출 대상이 되는 데이터의 각 300 비트에 대응하여 다항식 「e4'X4 + e2'X2 + e1'X + e0'」을 계산하고, 그 계산 결과 z0[8:0]~z299[8:0]을 대응하는 각 비트용 회로(410_1~410_299)로 출력할 수 있다.
또한, 불규칙한 조건(e3 = 0이 되는 조건)의 경우에는, 「e4', e2', e1', e0'」을, 각 계수를 e3로 나누지 않은 요소의 값 「e4, e2, e1, e0」으로 바꾸고, 「e4X4 + e2X2 + e1X + e0」을 계산하고, 그 계산 결과 z0[8:0]~z299[8:0]을, 대응하는 각 비트용 회로(410_1~410_299)로 출력할 수 있다.
연산부(SRC)(400)는 상술한 기저 계산부(101)와 선형 전개부(102)를 포함할 수 있고, 다항식 「e4'X4 + e2'X2 + e1'X + e0'」 또는 다항식 「e4X4 + e2X2 + e1X + e0」을 연산할 때에 선형 항을 통합하여 계산하도록 구성될 수 있다.
이하의 설명에 있어서, 예를 들어, z0[8:0]을 나타내는 경우에, 비트 구성을 나타내는 기호 [8:0]의 부분을 생략하고, 단지 z0으로 기재한다(다른 신호(h1, h2) 등에 대해서도 같다).
비트용 회로(410_0~410_299)에 신호(ano), 신호(z0~z299), 신호(X3)이 입력될 수 있다.
비트용 회로(410_0~410_299)로 입력되는 신호(ano)는 「신드롬S1 = 0」 또는 「2 비트 정정」 시인 것을 나타내는 신호이고, 후술하는 식 「h1 = z0」을 선택할 지 또는 식 「h2 = z0^X3(^은 배타적 논리합을 의미한다)」을 선택할지 여부를 트리거(trigger)하는 신호이다. 예를 들어, 신호(ano)가 L 레벨의 경우 h1이 선택되고, 신호(ano)가 H 레벨의 경우 h2가 선택될 수 있다.
비트용 회로(410_0~410_299)에 입력되는 신호(z0~z299)는 상술한 바와 같이 연산부(400)로부터 출력되는 신호이고, 다항식 「e4'X4 + e2'X2 + e1X + e0'」의 계산 값(9 비트 신호)이거나, 또는 다항식 「e4X4 + e2X2 + e1X + e0」의 계산 값(9 비트 신호)일 수 있다. 또한, 신호(X3)은 X3의 계산 값일 수 있다. 예를 들어, 신호(z0)에 대응하는 X3의 값은 9 비트 표기로 「9'b00000_0001」이 되고, 신호(z299)에 대응하는 X3의 값은 9 비트 표기로 「9'b10010_1001」이 될 수 있다.
비트용 회로(410_0~410_299) 내에 있어서, 계산되는 식 h1은 X3(고정 값)을 대입하지 않는 경우(e3 = 0의 경우)에 있어서의 「e4X4 + e2X2 + e0」의 값이고, h2는 X3(고정 값)을 대입하는 경우(e3≠0의 경우)에 있어서의 (e4'X4 + X3 + e2'X2 + e0'」의 값을 나타낼 수 있다.
예를 들어, 비트용 회로(410_0)에 있어서, 「h1 = z0」이고, 「h2 = z0^9'00000_0001」이 될 수 있다.
또한, 식 「z1
Figure 112013093110473-pat00001
(h1[0]|……|h1[8])」에 있어서, z1은 h1[0]~h1 「8」의 각 비트의 OR 연산을 하고, 그 OR 연산된 신호를 반전한 신호이다. 또한, 식 「z2
Figure 112013093110473-pat00002
(h2[0]|……|h2[8])」에 있어서, z2는 h2[0]~h2 「8」의 각 비트의 OR 연산을 하고, 그 OR 연산된 신호를 반전한 신호이다. 즉, z1 및 z2은 대응하는 비트에 오류가 있는 경우 1(H 레벨)이 되고, 오류가 없는 경우 0(L 레벨)이 될 수 있다.
식 「bch[i] = (ano) ? z1 : z2」는 (i = 0~299)는 신호(ano)가 「X3을 대입하지 않은 것을 나타낼 경우(e3 = 0의 경우)」에 bch[i]로서 z1을 선택하고, 신호(ano)가 「X3을 대입하는 것을 나타낼 경우(e3≠0의 경우)」에 bch[i]로서 z2을 선택하는 것을 나타낸다.
이와 같이, 도 11에 도시된 갈로아 필드 연산 회로(34A)에서는, 통상의 정정 조건(e3≠0이 되는 조건)의 경우와, 불규칙한 조건(e3 = 0이 되는 조건)의 경우에 따라서, 오류 위치 검출 다항식을 구분하여 연산을 행할 수 있다. 또한, 갈로아 필드 연산 회로(34A)에서는, 통상의 정정 조건(e3≠0이 되는 조건)의 경우는 오류 위치 검출 다항식을 비선형 계수(e3)로 나누고, 또한 선형 항을 통합함으로써, 연산 회로의 회로 규모를 줄일 수 있다.
또한, 불규칙한 조건(e3 = 0이 되는 조건)의 경우에는, X3의 항을 무시하는 동시에, 요소의 오류 위치 검출 다항식(계수(e3)로 나누지 않은 오류 위치 검출 다항식)의 선형 항을 통합하여 계산함으로써, 연산 회로의 회로 규모를 줄일 수 있다.
상술한 실시 예에서는, 4 비트 정정용의 오류 검출 정정 회로(13)를 예를 들어 설명하였지만, 4 비트 정정용의 오류 검출 정정 회로에만 국한되지 않고, 그 외의 비트 수의 오류 검출 정정 회로에 대해서도 본 실시 형태의 오류 검출 정정 회로가 적용될 수 있다.
이상 설명한 바와 같이, 본 실시 예들에서는 오류 위치 검출 다항식을 비선형 계수로 나누는 동시에 오류 위치 검출 다항식의 선형 항을 통합함으로써, 치엔(Chien) 탐색부(33)(보다 정확하게는 갈로아 필드 연산 회로(34))의 회로 규모를 줄일 수 있다. 이것에 의해, 고속 연산이 가능한 치엔 탐색부(33)를 갖는 오류 검출 정정 회로(13)를 불휘발성 반도체 기억 장치(10)에 탑재하는 것이 가능하다.
이상 본 발명의 실시 형태에 대해서 설명하였지만, 여기서, 본 발명과 상술한 실시 형태와의 대응 관계에 대해서 보충하여 설명한다. 즉, 상기 실시 형태에 있어서, 본 발명에 있어서의 메모리 장치는 도 1에 도시된 불휘발성 반도체 기억 장치(NAND 플래시 메모리 EEPROM)(10)에 대응할 수 있다. 또한, 본 발명에 있어서의 오류 검출 정정 회로는 도 2에 도시된 오류 검출 정정 회로(13)에 대응하고, 본 발명에 있어서의 치엔 탐색부는 치엔 탐색부(33)이 대응할 수 있다. 또한, 본 발명에 있어서의 기저 계산부는 예를 들어, 도 2에 도시된 갈로아 필드 연산 회로(34) 내의 기저 계산부(101)에 대응하고, 본 발명에 있어서의 선형 전개부는 선형 전개부(102)에 대응할 수 있다. 또한, 본 발명에 있어서의 신드롬 계산부는 도 2에 도시된 디코더부(30) 내의 신드롬 계산부(31)에 대응하고, 본 발명에 있어서의 오류 계수 계산부는 오류 계수 계산부(32)에 대응하고, 본 발명에 있어서의 오류 정정부는 오류 정정부(35)에 대응할 수 있다.
상기 실시 예에 있어서, 오류 검출 정정 회로(13)는 갈로아 필드 GF(2m) 상(m은 정수, 이하 같음)의 임의의 요소를 오류 위치 검출 다항식(예를 들어, P(X) = e4X4 + e3X3 + e2X2 + e1X + e0)으로의 대입 값(X)로 하여, 데이터 열의 비트마다 오류가 있는지 여부를 판정하는 치엔(Chien) 탐색부(33)을 구비한 오류 검출 정정 회로(13)일 수 있다. 치엔 탐색부(33)는 오류 위치 검출 다항식의 각 차수 중 선형성이 인정되지 않는 차수(X3)에 곱하는 계수(e3)를 비선형 계수로 하고, 오류 위치 검출 다항식을 선형성이 인정되는 차수를 포함하는 제 1 위치 방정식(e4X4 + e2X2 + e1X)과 선형성이 인정되지 않는 차수를 포함하는 제 2 위치 방정식(e3X3 + e0)으로 하며, 상기 대입 값을 제 1 위치 방정식(e4X4 + e2X2 + e1X)을 상기 비선형 계수(e3)로 나눈 제 3 위치 방정식(s'X)의 각 차수에 각각 대입하고, 제 2 위치 방정식(e3X3 + e0)을 상기 비선형 계수(e3)로 나눈 제 4 위치 방정식(X3 + e0')에 대입 값을 대입하고, 제 3 위치 방정식(s'X)의 결과와 제 4 위치 방정식(X3 + e0')의 결과와의 배타적 논리합에 의해, 비트에 오류가 있는지 여부를 판정할 수 있다.
이러한 구성의 오류 검출 정정 회로(13)에서는, 치엔(Chien) 탐색부(33)(보다 정확하게는 갈로아 필드 연산 회로(34))에 있어서, 예를 들어, 오류 위치 검출 다항식 「P(X) = e4X4 + e3X3 + e2X2 + e1X + e0」을 비선형 항 X3의 계수(e3)로 나누고, 새로운 오류 위치 검출 다항식 「P'(X) = (e4/e3)X4 + X3 + (e2/e3)X2 + (e1/e3)X + e0/e3」을 구한다. 여기서, X3의 항은 비트마다 고정 값으로 되고, e0'은 정수로 될 수 있다.
새로운 오류 위치 검출 다항식 P'(X)에 있어서, X에 관한 선형 항을 통합한 선형 함수 「s'(X) = (e4/e3)X4 + (e2/e3)X2 + (e1/e3)X」를 생성할 수 있다. 그리고, 선형 함수 s'(X)를 계산하는 경우, 기저 계산부(101)에 의해 갈로아 필드 GF(2m) 상의 선형 독립인 m 개의 요소에 대하여 선형 함수 「s'(X) = e4'X4 + e2'X2 + e1'X」를 계산하고, 선형 독립인 m 개의 요소를 제외한 나머지의 (2m-1-m) 개의 요소에 대한 선형 함수 s'(X)의 계산에 대해서는 선형 전개부(102)에 의해 기저 계산부(101)에 있어서의 연산 결과를 가산하여 계산한다. 이것에 의해, 선형 함수 s'(X)의 계산 회로가 간략화될 수 있다.
이와 같이, 선형 함수 s'(X)의 계산 회로가 간략화되는 동시에, X3의 항이 고정 값이 되므로, 오류 위치 검출 다항식의 다항식을 연산하는 회로를 간략화할 수 있고, 오류 검출 정정 회로(13)에 있어서, 오류 위치 검출 다항식의 연산 회로의 회로 규모를 줄일 수 있다. 그러므로, 고속 연산으로 오류 위치 검출 다항식의 근을 구하는 오류 검출 정정 회로(13)를 반도체 메모리(불휘발성 반도체 기억 장치10)에 탑재가능한 회로 규모로써 실현할 수 있다.
또한, 상기 실시 예에 있어서, 치엔(Chien) 탐색부(33)는, 갈로아 필드 GF(2m) 상(m은 정수, 이하 같음)의 m 비트에 의해 벡터 표현되는 (2m-1) 개의 요소를 상기 제 3 위치 방정식(s'X)에 대입하여 연산할 때 (2m-1) 개의 요소 내에서 선형 독립인 m 개의 요소를 계산하는 기저 계산부(101)와, (2m-1) 개의 요소의 내에서 상기 m 개의 요소를 제외한 (2m-1-m) 개의 요소를 각각 상기 m 개의 요소의 조합으로서 구하는 선형 전개부(102)를 포함할 수 있다.
이러한 구성의 오류 검출 정정 회로(13)에서 치엔(Chien) 탐색부(33)는 기저 계산부(101)와 선형 전개부(102)를 포함할 수 있다. 기저 계산부(101)는 갈로아 필드 GF(2m) 상의 선형 독립인 m 개의 요소에 대하여 선형 함수 「s'(X) = e4'X4 + e2'X2 + e1' X」를 계산할 수 있다. 그리고, 선형 전개부(102)는 선형 독립인 m 개의 요소를 제외한 나머지의 (2m-1-m) 개의 요소에 대한 선형 함수 s'(X)의 계산에 대해서 기저 계산부(101)에 있어서의 연산 결과를 전개(가산)하여 계산을 할 수 있다.
이것에 의해, 오류 검출 정정 회로(13)는 치엔 탐색부(33)에 있어서 선형 항을 통합한 선형 함수 s'(X)을 계산할 때에 필요로 하는 회로의 회로 규모를 줄일 수 있다.
상기 실시 예에 있어서, 메모리 장치(불휘발성 반도체 기억 장치(10))는 오류 검출 정정 회로(13)를 포함하는 메모리 장치(불휘발성 반도체 기억 장치(10))이고, 오류 검출 정정 회로(13)는 입력되는 데이터 열로부터 신드롬을 계산하는 신드롬 계산부(31), 신드롬으로 오류 위치 검출 다항식의 계수를 산출하는 오류 계수 계산부(32), 데이터 열의 데이터의 비트 위치를 나타내는 값과 상기 계수를 오류 위치 검출 다항식에 대입하고 데이터 열의 비트마다 오류가 있는지 여부를 나타내는 에러 검출 신호를 출력하는 치엔(Chien) 탐색부(33), 및 에러 검출 신호에 의해 데이터 열에 있어서의 비트의 데이터의 오류를 정정하여 출력하는 오류 정정부(35)를 포함할 수 있다.
이러한 구성의 메모리 장치(불휘발성 반도체 기억 장치(10))에서는, 치엔(Chien) 탐색부(33)에 있어서 오류 위치 검출 다항식을 연산할 때에, 오류 위치 검출 다항식 P(X)를 비선형 항 X3의 계수(e3)로 나누고, 새로운 오류 위치 검출 다항식 P'(X)을 구할 수 있다. 그리고, 새로운 오류 위치 검출 다항식 P'(X)에 있어서 X에 관한 선형 항을 통합한 선형 함수 s'(X)을 생성하여 계산할 수 있다.
이것에 의해, 메모리 장치(불휘발성 반도체 기억 장치(10))에 탑재하는 오류 검출 정정 회로(13)의 회로 규모를 줄일 수 있다. 그러므로, 메모리 장치(불휘발성 반도체 기억 장치(10))는 고속 연산이 가능한 오류 검출 정정 회로(13)를 온칩(on-chip)으로 탑재할 수 있다.
이상, 이 발명의 실시 형태를 도면을 참조하여 설명하였지만, 구체적인 구성은 이 실시 형태에 한정되는 것이 아니라 이 발명의 요지를 벗어나지 않는 범위의 설계 등도 포함된다.
10 : 불휘발성 반도체 기억 장치 11 : 메모리 셀 어레이
12 : 페이지 버퍼 13 : 오류 검출 정정 회로
14 : 버퍼 15 : I/O패드
16 : 제어 회로 17 : 어드레스 디코더
18 : 로우 및 블럭 디코더 30 : 디코더부
31 : 신드롬 계산부 32 : 오류 계수 계산부
33 : 치엔(Chien) 탐색부 34,(34A) : 갈로아 필드 연산 회로
35 : 오류 정정부 40 : 인코더부
41 : 패리티 생성 회로 100 : 선형 부분의 연산 회로
101 : 기저 계산부 102 : 선형 전개부

Claims (8)

  1. 갈로아 필드 GF(2m) 상(m은 정수)의 임의의 요소를 오류 위치 검출 다항식으로의 대입 값으로 하여 데이터 열의 비트마다 오류가 있는지 여부를 판정하는 치엔(Chien) 탐색부를 포함하는 오류 검출 정정 회로에 있어서,
    상기 치엔 탐색부는,
    상기 오류 위치 검출 다항식의 각 차수 중 선형성이 인정되지 않는 차수에 곱하는 계수를 비선형 계수로 하고,
    상기 오류 위치 검출 다항식을 선형성이 인정되는 차수의 항을 포함하는 제 1 위치 방정식과 선형성이 인정되지 않는 차수의 항을 포함하는 제 2 위치 방정식으로 분할하고,
    상기 제 1 위치 방정식을 상기 비선형 계수로 나눈 제 3 위치 방정식의 각 차수에 상기 대입 값을 각각 대입하고, 상기 제 2 위치 방정식을 상기 비선형 계수로 나눈 제 4 위치 방정식에 상기 대입 값을 대입하고, 상기 제 3 위치 방정식의 결과와 상기 제 4 위치 방정식의 결과와의 배타적 논리합에 의해 상기 비트마다 오류가 있는지 여부를 판정하는 오류 검출 정정 회로.
  2. 제 1 항에 있어서,
    상기 치엔 탐색부는,
    상기 갈로아 필드 GF(2m) 상(m은 정수)의 m 비트에 의해 벡터 표현되는 (2m-1) 개의 요소를 상기 제 3 위치 방정식에 대입하여 연산을 행할 때에, 상기 (2m-1) 개의 요소 중에서 선형 독립인 m 개의 요소를 계산하는 기저 계산부; 및
    상기 (2m-1) 개의 요소에서 상기 m 개의 요소를 제외한 (2m-1-m) 개의 요소를 각각 상기 m 개의 요소의 조합으로서 구하는 선형 전개부를 포함하는 오류 검출 정정 회로.
  3. 제 1 항에 있어서,
    상기 배타적 논리합을 수행하기 위한 배타적 논리합 요소들의 수가 (n+1)×(2m-1)×m(m-1)/2+n×(2m-1)×m보다 작은 오류 검출 정정 회로.
  4. 제 3 항에 있어서,
    상기 배타적 논리합을 수행하기 위한 상기 배타적 논리합 요소들의 상기 수가 n인 오류 검출 정정 회로.
  5. 제 1 항에 있어서,
    상기 제 4 위치 방정식은 상기 비트마다 고정 값인 오류 검출 정정 회로.
  6. 오류 검출 정정 회로를 포함하는 메모리 장치에 있어서:
    상기 오류 검출 정정 회로는,
    갈로아 필드 GF(2m) 상(m은 정수)의 임의의 요소를 오류 위치 검출 다항식으로의 대입 값으로 하여 데이터 열의 비트마다 오류가 있는지 여부를 판정하고, 에러 검출 신호를 출력하는 치엔 탐색부,
    입력되는 데이터 열로부터 신드롬을 계산하는 신드롬 계산부,
    상기 신드롬으로 상기 오류 위치 검출 다항식의 계수를 산출하는 오류 계수 계산부, 및
    상기 에러 검출 신호에 의해 상기 데이터 열에 있어서의 비트의 데이터의 오류를 정정하여 출력하는 오류 정정부를 포함하고,
    상기 치엔 탐색부는,
    상기 오류 위치 검출 다항식의 각 차수 중 선형성이 인정되지 않는 차수에 곱하는 계수를 비선형 계수로 하고,
    상기 오류 위치 검출 다항식을 선형성이 인정되는 차수의 항을 포함하는 제 1 위치 방정식과 선형성이 인정되지 않는 차수의 항을 포함하는 제 2 위치 방정식으로 분할하고,
    상기 제 1 위치 방정식을 상기 비선형 계수로 나눈 제 3 위치 방정식의 각 차수에 상기 대입 값을 각각 대입하고, 상기 제 2 위치 방정식을 상기 비선형 계수로 나눈 제 4 위치 방정식에 상기 대입 값을 대입하고, 상기 제 3 위치 방정식의 결과와 상기 제 4 위치 방정식의 결과와의 배타적 논리합에 의해 상기 비트마다 오류가 있는지 여부를 판정하는 메모리 장치.
  7. 갈로아 필드 GF(2m) 상(m은 정수)의 임의의 요소를 대입값으로 하여 데이터 열의 비트마다 오류가 있는지 여부를 판정하는 탐색부를 포함하는 오류 검출 정정 회로에 있어서,
    상기 탐색부는,
    상기 대입값을 사용하는 선형 함수인 오류 위치 검출 다항식에 기초하여 상기 갈로아 필드 GF(2m) 상의 선형 독립인 요소들로부터 기저 벡터들을 생성하는 기저 계산부; 및
    상기 대입값을 사용하는 상기 기저 계산부에 있어서의 연산 결과에 대한 배타적 논리합에 의해 상기 갈로아 필드 GF(2m) 상의 상기 선형 독립인 요소들을 제외한 나머지 요소들을 계산하는 선형 전개부를 포함하되,
    상기 배타적 논리합을 수행하기 위한 상기 선형 전개부의 배타적 논리합 요소들의 수는 (n+1)×(2m-1)×m(m-1)/2+n×(2m-1)×m(n은 상기 오류 위치 검출 다항식의 차수)보다 작은 오류 검출 정정 회로.
  8. 제 7 항에 있어서,
    상기 배타적 논리합을 수행하기 위한 상기 배타적 논리합 요소들의 상기 수가 n인 오류 검출 정정 회로.
KR1020130122864A 2012-10-15 2013-10-15 오류 검출 정정 회로 및 이를 포함하는 메모리 장치 KR102064508B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012227834A JP2014082574A (ja) 2012-10-15 2012-10-15 誤り検出訂正回路、及びメモリ装置
JPJP-P-2012-227834 2012-10-15

Publications (2)

Publication Number Publication Date
KR20140048826A KR20140048826A (ko) 2014-04-24
KR102064508B1 true KR102064508B1 (ko) 2020-01-09

Family

ID=50476586

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130122864A KR102064508B1 (ko) 2012-10-15 2013-10-15 오류 검출 정정 회로 및 이를 포함하는 메모리 장치

Country Status (3)

Country Link
US (1) US9130592B2 (ko)
JP (1) JP2014082574A (ko)
KR (1) KR102064508B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9317352B2 (en) * 2012-09-12 2016-04-19 Samsung Electronics Co., Ltd. Galois field arithmetic operation circuit and memory device
KR102248207B1 (ko) 2014-10-30 2021-05-06 삼성전자주식회사 저장 장치 및 그것의 동작 방법
DE102015118668B4 (de) 2015-10-30 2020-06-04 Infineon Technologies Ag Fehlerkorrektur
US10097207B2 (en) * 2016-03-10 2018-10-09 Toshiba Memory Corporation ECC circuit, storage device and memory system
JP6164712B1 (ja) * 2016-08-18 2017-07-19 ウィンボンド エレクトロニクス コーポレーション フラッシュメモリ
KR20210150149A (ko) * 2020-06-03 2021-12-10 삼성전자주식회사 신드롬과 부분 계수 정보를 병렬적으로 생성하는 에러 정정 장치 및 방법

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2599001B2 (ja) 1989-08-24 1997-04-09 シャープ株式会社 誤り訂正処理回路
JPH0423522A (ja) 1990-05-18 1992-01-27 Fujitsu Ltd 符号化回路および復号化回路
JPH06314979A (ja) 1993-04-28 1994-11-08 Nec Corp ガロア体乗算回路
KR100307583B1 (ko) 1997-12-23 2001-10-19 윤종용 수정치엔탐색회로를이용한리드-솔로몬복호기
JP3272307B2 (ja) * 1998-09-22 2002-04-08 インターナショナル・ビジネス・マシーンズ・コーポレーション リード・ソロモン符号の復号回路
US6279137B1 (en) 1998-12-08 2001-08-21 Lsi Logic Corporation System and method for a storage-efficient parallel Chien Search
US7458007B2 (en) 2000-02-18 2008-11-25 Texas Instruments Incorporated Error correction structures and methods
KR100370239B1 (ko) * 2000-10-25 2003-01-29 삼성전자 주식회사 고속 블럭 파이프라인 구조의 리드-솔로몬 디코더에적용하기 위한 메모리 장치와 메모리 액세스 방법 및 그메모리 장치를 구비한 리드-솔로몬 디코더
US20020104053A1 (en) * 2000-12-15 2002-08-01 Mike Lei In-band FEC encoder for sonet
US20020116679A1 (en) * 2000-12-15 2002-08-22 Mike Lei In-band FEC decoder for sonet
US20030192007A1 (en) * 2001-04-19 2003-10-09 Miller David H. Code-programmable field-programmable architecturally-systolic Reed-Solomon BCH error correction decoder integrated circuit and error correction decoding method
KR100403634B1 (ko) * 2001-10-17 2003-10-30 삼성전자주식회사 고속 파이프라인 리드-솔로몬 디코더에 적용하기 위한메모리 장치와 메모리 액세스 방법 및 그 메모리 장치를구비한 리드-솔로몬 디코더
US7096408B1 (en) * 2002-02-21 2006-08-22 Ciena Corporation Method and apparatus for computing the error locator polynomial in a decoder of a forward error correction (FEC) system
EP1370003A1 (en) 2002-06-07 2003-12-10 Deutsche Thomson-Brandt Gmbh Reed-Solomon Decoder
US7865809B1 (en) 2004-03-11 2011-01-04 Super Talent Electronics, Inc. Data error detection and correction in non-volatile memory devices
KR100594241B1 (ko) * 2004-01-29 2006-06-30 삼성전자주식회사 순방향 치엔 서치 방식의 리드 솔로몬 디코더 회로
US7716562B1 (en) 2005-10-18 2010-05-11 Link—A—Media Devices Corporation Reduced processing in high-speed reed-solomon decoding
JP4598711B2 (ja) * 2006-03-30 2010-12-15 富士通株式会社 誤り訂正装置
KR100856129B1 (ko) * 2006-12-29 2008-09-03 삼성전자주식회사 오정정 확률을 줄이는 에러 정정 회로, 그 방법 및 상기회로를 구비하는 반도체 메모리 장치
KR20080112583A (ko) 2007-06-21 2008-12-26 주식회사 코아로직 리드 솔로몬 디코더 및 그 방법
TWI380599B (en) 2007-08-24 2012-12-21 Lite On Technology Corp Efficient chien search method and system for reed-solomon decoding
KR101437396B1 (ko) * 2008-02-27 2014-09-05 삼성전자주식회사 레이턴시를 줄일 수 있는 에러 정정 블록을 포함하는메모리 시스템 및 그것의 에러 정정 방법
JP2010237822A (ja) 2009-03-30 2010-10-21 Toshiba Corp メモリコントローラおよび半導体記憶装置
JP5525498B2 (ja) * 2011-09-13 2014-06-18 株式会社東芝 誤り検出装置
US8990667B2 (en) * 2012-08-03 2015-03-24 Samsung Electronics Co., Ltd. Error check and correction circuit, method, and memory device
US9317352B2 (en) * 2012-09-12 2016-04-19 Samsung Electronics Co., Ltd. Galois field arithmetic operation circuit and memory device
US9152493B2 (en) * 2012-09-12 2015-10-06 Samsung Electronics Co., Ltd. Error check and correction circuit and semiconductor memory
US9384083B2 (en) * 2012-09-24 2016-07-05 Samsung Electronics Co., Ltd. Error location search circuit, and error check and correction circuit and memory device including the same
US9013921B2 (en) * 2012-12-06 2015-04-21 Samsung Electronics Co., Ltd. Semiconductor memory device

Also Published As

Publication number Publication date
US9130592B2 (en) 2015-09-08
KR20140048826A (ko) 2014-04-24
JP2014082574A (ja) 2014-05-08
US20140108895A1 (en) 2014-04-17

Similar Documents

Publication Publication Date Title
KR102064508B1 (ko) 오류 검출 정정 회로 및 이를 포함하는 메모리 장치
KR100833600B1 (ko) 에러 정정 회로, 그 방법 및 상기 회로를 구비하는 반도체메모리 장치
US7836377B2 (en) Semiconductor memory device
US9384083B2 (en) Error location search circuit, and error check and correction circuit and memory device including the same
US20140108887A1 (en) Storage device
US8990667B2 (en) Error check and correction circuit, method, and memory device
US10498364B2 (en) Error correction circuits and memory controllers including the same
US10802912B2 (en) Semiconductor memory device and memory system having the same
US9317352B2 (en) Galois field arithmetic operation circuit and memory device
US9152493B2 (en) Error check and correction circuit and semiconductor memory
US10133628B2 (en) Apparatuses and methods for encoding using error protection codes
KR20140018095A (ko) 에러 검출 정정 회로 및 메모리 장치
CN110908827A (zh) 用于NAND Flash闪存纠错的并行BCH解码方法
US9092354B2 (en) Storage device, CRC generation device, and CRC generation method
KR102021560B1 (ko) 오류 위치 탐색 회로, 그리고 그것을 포함하는 오류 검출 정정 회로 및 메모리 장치
KR102064857B1 (ko) 갈로아체 연산 회로 및 메모리 장치
KR102027949B1 (ko) 에러 검출 정정 회로 및 반도체 메모리
JP2014068058A (ja) 誤り位置検索回路、誤り検出訂正回路、及びメモリ装置
JP2014116659A (ja) 誤り検出訂正回路、及び半導体記憶装置
JP2013201503A (ja) チェンサーチ回路、復号器、記憶装置およびチェンサーチ方法
JP2014064242A (ja) 誤り検出訂正回路及び半導体メモリ
KR19980077955A (ko) 리드 솔로몬 오류 수정장치
JP2013201482A (ja) チェンサーチ回路、復号器、記憶装置およびチェンサーチ方法

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant