KR102064857B1 - Galois field calculating circuit and memory device - Google Patents

Galois field calculating circuit and memory device Download PDF

Info

Publication number
KR102064857B1
KR102064857B1 KR1020130039897A KR20130039897A KR102064857B1 KR 102064857 B1 KR102064857 B1 KR 102064857B1 KR 1020130039897 A KR1020130039897 A KR 1020130039897A KR 20130039897 A KR20130039897 A KR 20130039897A KR 102064857 B1 KR102064857 B1 KR 102064857B1
Authority
KR
South Korea
Prior art keywords
error
circuit
circles
polynomial
linear
Prior art date
Application number
KR1020130039897A
Other languages
Korean (ko)
Other versions
KR20140034677A (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 US14/024,758 priority Critical patent/US9317352B2/en
Publication of KR20140034677A publication Critical patent/KR20140034677A/en
Application granted granted Critical
Publication of KR102064857B1 publication Critical patent/KR102064857B1/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/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

Abstract

본 발명은 갈로아체 상의 m비트에 의해 벡터 표현되는 (2m-1) 개의 원들을 에러 위치 검출 다항식에 대입하는 갈로아체 연산 회로에 관한 것이다. 본 발명의 갈로아체 연산 회로는, (2m-1) 개의 원들로부터 선형 독립인 m개의 원들을 계산하는 기저 계산부, 그리고 (2m-1) 개의 원들로부터 m개의 원들을 제외한 (2m-1-m) 개의 원들을 각각 m개의 원들의 조합으로 계산하는 선형 전개부로 구성된다.The present invention relates to a galloise arithmetic circuit for substituting (2 m -1) circles, vector represented by m bits on a galloise, into an error position detection polynomial. Galois field operation circuit of the present invention, (2 m -1) from the base computing unit, and (2 m -1) of the circles for calculating linearly independent of the m source from the two circles other than the m source (2 m - 1-m) consists of linear developments that compute each circle as a combination of m circles.

Description

갈로아체 연산 회로 및 메모리 장치{GALOIS FIELD CALCULATING CIRCUIT AND MEMORY DEVICE}GALOIS FIELD CALCULATING CIRCUIT AND MEMORY DEVICE}

본 발명은 에러 검출 및 정정 회로로 이용되는 갈로아체 연산 회로 및 메모리 장치에 관한 것이다.The present invention relates to a galloche calculation circuit and a memory device used as an error detection and correction circuit.

전기적으로 다시 쓰기가 가능한 불휘발성 반도체 기억장치(EEPROM, Electrically Erasable and Programmable Read Only Memory)의 하나로 NAND 플래시 메모리가 알려져 있다. NAND 플래시 메모리는, 복수의 메모리 셀을 직렬 접속한 NAND 셀 유닛(NAND string)를 이용하는 것으로, 작은 칩 면적으로 대용량 저장이 가능하다.NAND flash memory is known as one of the electrically rewritable nonvolatile semiconductor memories (EEPROM), Electrically Erasable and Programmable Read Only On Memory. The NAND flash memory uses a NAND cell unit (NAND string) in which a plurality of memory cells are connected in series, so that large capacity can be stored with a small chip area.

NAND 플래시 메모리에서는, 데이터 보관 유지 중 여러가지 원인으로 저장 내용이 손상된다. 예를 들면, 여러번의 다시 쓰기에 수반하는 터널 산화막의 열화등에 인해, 데이터 보관 유지중에 기억소자(메모리 셀)의 보관 유지 특성이 낮아져 에러 비트의 발생율(에러율)이 증가하는 경향이 있다. 특히, NAND 플래시 메모리에서, 메모리 용량의 대규모화와 제조프로세스의 미세화가 진행되면서 에러율이 상승하는 경향이 있다. 이에 대처하기 위해서, 에러 검출 및 정정 회로(ECC 회로)가 NAND 플래시 메모리의 성능 향상을 위해 사용되고 있다. 에러 검출 정정 회로를 on-chip으로 탑재함으로써, 고신뢰성 메모리를 제공하는 것이 가능하다.In NAND flash memory, the stored contents are damaged due to various reasons during data holding. For example, due to deterioration of the tunnel oxide film due to rewriting many times, the holding characteristic of the memory element (memory cell) is lowered during data holding, so that the occurrence rate (error rate) of error bits tends to increase. In particular, in NAND flash memories, the error rate tends to increase as the size of the memory and the size of the manufacturing process become smaller. In order to cope with this, error detection and correction circuits (ECC circuits) are used to improve the performance of NAND flash memories. By mounting the error detection correction circuit on-chip, it is possible to provide a high reliability memory.

또한, 에러 정정 회로로서 유한체(갈로아체)(GF(2^m))에 의한 갈로아체 연산 회로를 이용하는 회로가 있다(특허문헌1 참조). 특허문헌1에 기재된 갈로아체 연산 회로는, 갈로아체(GF(2^m)) 상의 m비트로 벡터 표현되는 2개의 원의 곱셈을 실시할 때, 승산과정에서의 하위 m비트 이외의 상위 비트의 성분에 대해 각각 배타적 논리합(EXOR) 연산하고, 그 출력을, 주어지는 원시 다항식(f(X))에 의해, m비트의 벡터 표현으로 변환하여, 하위 m비트의 성분과 배타적 논리합(EXOR) 연산하는 것으로써, 곱셈된 벡터 출력을 얻는다. 이에 따라, 갈로아체 연산 회로는 갈로아체상에서의 곱셈 회로 구성의 간략화를 꾀한다.In addition, there is a circuit using a gallosome arithmetic circuit formed by a finite body (galloise) (GF (2 ^ m)) as an error correction circuit (see Patent Document 1). The galloache arithmetic circuit described in Patent Literature 1 is a component of an upper bit other than the lower m bit in the multiplication process when multiplying two circles represented by a vector of m bits on a galloise (GF (2 ^ m)). For each exclusive OR, converting its output into a vector representation of m bits by the given source polynomial (f (X)), and performing an exclusive OR with the components of the lower m bits. To get the multiplied vector output. Accordingly, the galloche calculation circuit simplifies the multiplication circuit configuration on the galloche.

일본공개특허 06-314979j호 공보Japanese Patent Application Laid-Open No. 06-314979j

 그런데, BCH 부호나 RS부호로 대표되는 선형 블록 부호를 이용한 에러 정정 처리에서, 가장 시간이 걸리는 것은 에러 위치 검출 다항식(에러 위치 탐색 방정식)(P(X))의 영점을 구하는(에러인지 아닌지를 검출하는) 처리이다. 일반적으로 이 영점을 구하는 처리는, 예를 들면, 도 12에 도시된 갈로아체 연산 회로(4차 다항식의 갈로아체 연산 회로)에서, 에러 위치 검출 다항식(P(X))의 계수들(p0, p1, p2, p3, p4)이 확정된 후, 갈로아체 요소(원)(X)로서 1,α,α2,α3,···,αt-2 (단, t=2^m) 를 순차 입력하여, P(X)의 영점을 구한다. 이 처리에 걸리는 시간은, 다항식의 변수(X)가 취할 수 있는 값의 모든 것을 한 번에 계산하는 것으로 큰폭으로 단축될 수 있다. 예를 들면, 도 13에 도시된바와 같이, 각 요소 1,α,α2,α3,···,αt-2의 각각의 병렬연산 회로를 마련하여, P(1), P(α1), P(α2),···, P(αt-2)(단, t=2^m)를 동시에 연산함으로써, 에러 위치 검출 다항식의 연산 시간이 큰폭으로 단축될 수 있다. 그러나, 도 13에 도시된 방법에서는, 에러 위치 검출 다항식을 산출하기 위한 회로 규모가 매우 커져, 에러 검출 정정 회로를 메모리 장치에 on-chip로 탑재하는 것이 매우 어려워진다.By the way, in the error correction process using the linear block code represented by the BCH code or the RS code, it takes the most time to determine the zero point of the error position detection polynomial (error position search equation) P (X) (error or not). Detecting) process. In general, the process of finding this zero is, for example, in the galloise arithmetic circuit (the galloise arithmetic circuit of the fourth-order polynomial) shown in Fig. 12, the coefficients p0, of the error position detection polynomial P (X). After p1, p2, p3 and p4) are determined, 1, alpha, alpha 2, alpha 3, ..., alpha t-2 (where t = 2 ^ m) are sequentially input as gallosome element (circle) (X). The zero of P (X) is obtained. The time taken for this process can be greatly shortened by calculating all of the values that the variable X of the polynomial can take at once. For example, as shown in FIG. 13, each parallel operation circuit of elements 1, alpha, alpha 2, alpha 3, ..., alpha t-2 is provided, and P (1), P (alpha 1) and P are provided. By simultaneously calculating (? 2), ..., P (? t-2) (where t = 2 ^ m), the calculation time of the error position detection polynomial can be greatly shortened. However, in the method shown in Fig. 13, the circuit scale for calculating the error position detection polynomial becomes very large, and it becomes very difficult to mount the error detection correction circuit on-chip in the memory device.

본 발명이 해결하려고 하는 과제는, 에러 위치 검출 다항식을 연산하기 위한 회로의 규모를 축소하는 갈로아체 연산 회로 및 메모리 장치를 제공하는 데에 있다.An object of the present invention is to provide a galloche arithmetic circuit and a memory device for reducing the scale of a circuit for calculating an error position detection polynomial.

갈로아체(GF(2^m)) 상(m은 정수)의 m비트에 의해 벡터 표현되는 (2m-1) 개의 원들을 에러 위치 검출 다항식에 대입하는 본 발명의 실시 예에 따른 갈로아체 연산 회로는, 상기 (2m-1) 개의 원들로부터, 선형 독립인 m개의 원들을 계산하는 기저 계산부; 그리고 상기 (2m-1) 개의 원들로부터 상기 m개의 원들을 제외한 (2m-1-m) 개의 원들을, 각각 상기 m개의 원들의 조합으로 계산하는 선형 전개부를 포함한다.Galoache operation according to an embodiment of the present invention by substituting (2 m- 1) circles represented by a vector by m bits of GF (2 ^ m) into an error position detection polynomial The circuit comprises: a base calculation unit for calculating m independent circles from the (2 m -1) circles; And (2 m -1-m) circles except for the m circles from the (2 m -1) circles, each of which includes a linear development part for calculating a combination of the m circles.

실시 예로서, 상기 에러 위치 검출 다항식에 대해 동일한 선형 공간을 구성하는 항들을 선형 함수로서 통합하고, 상기 통합된 선형 함수에 대해 상기 기저 계산부와 상기 선형 전개부를 이용하여 연산을 수행한다.In an embodiment, the terms constituting the same linear space for the error position detection polynomial are integrated as a linear function, and the calculation is performed using the basis calculation unit and the linear expansion unit for the integrated linear function.

입력되는 데이터열의 에러 검출을 수행하는 에러 정정 회로를 갖는 본 발명의 실시 예에 따른 메모리 장치에 있어서, 상기 에러 검출 정정 회로는, 상기 입력되는 데이터열로부터 신드롬을 계산하는 신드롬 계산부; 상기 신드롬으로 상기 에러 위치 검출 다항식의 계수를 산출하는 에러 계수 계산부; 상기 데이터열의 데이터의 비트의 위치를 나타내는 값과 상기 계수를 상기 에러 위치 검출 다항식에 대입하여 연산하는 갈로아체 연산 회로; 상기 에러 위치 검출 다항식의 대입 결과에 응답하여, 상기 데이터열의 비트마다 에러가 있는지 아닌지를 나타내는 에러 검출 신호를 출력하는 치엔 탐색부; 그리고 상기 에러 검출 신호에 응답하여 상기 데이터열의 비트의 데이터의 에러를 정정하여 출력하는 에러 정정부를 포함하고, 상기 갈로아체 연산부는 갈로아체(GF(2^m)) 상의 m비트에 의해 벡터 표현되는 (2m-1) 개의 원들을 에러 위치 검출 다항식에 대입하도록 구성되고, 상기 갈로아체 연산부는, (2m-1) 개의 원들(m은 정수)로부터, 선형 독립인 m개의 원들을 계산하는 기저 계산부; 그리고 상기 (2m-1) 개의 원들로부터 상기 m개의 원들을 제외한 (2m-1-m) 개의 원들을, 각각 상기 m개의 원들의 조합으로 계산하는 선형 전개부를 포함한다.A memory device having an error correction circuit for performing an error detection of an input data string, the memory device comprising: a syndrome calculation unit calculating a syndrome from the input data string; An error coefficient calculation unit for calculating a coefficient of the error position detection polynomial with the syndrome; A galloche arithmetic circuit for calculating a value indicating a position of a bit of data of said data string and said coefficient by substituting said error position detection polynomial; A Chien search unit for outputting an error detection signal indicating whether or not there is an error for each bit of the data string in response to the substitution result of the error position detection polynomial; And an error correcting unit for correcting and outputting an error of data of a bit of the data string in response to the error detection signal, wherein the galloche calculation unit is a vector representation by m bits on a galloche GF (2 ^ m). Substituting the (2 m -1) circles into the error position detection polynomial, and the Galoache calculation unit calculates the linearly independent m circles from the (2 m -1) circles (m is an integer). Basis calculation unit; And (2 m -1-m) circles except for the m circles from the (2 m -1) circles, each of which includes a linear development part for calculating a combination of the m circles.

본 발명의 실시 예들에 따른 갈로아체 연산 회로는, 갈로아체(GF(2^m)) 상의 (2m-1) 개의 원들로부터, 선형 독립인 m개의 원을 계산하는 기저 계산부, (2m-1) 개의 원들로부터 선형 독립인 m개의 원을 제외한(2m-1-m) 개의 원을 각각 선형 독립인 m개의 원의 조합으로 구하는 선형 전개부를 구비한다. 이에 따라, 갈로아체 연산 회로에서, 에러 위치 검출 다항식을 연산하기 위한 회로의 규모가 축소될 수가 있다.The galloache arithmetic circuit according to the embodiments of the present invention, a basis calculation unit for calculating m independent linear circles from (2 m -1) circles on the galloise (GF (2 ^ m), (2 m A linear development part is obtained which obtains the circle | round | yen except 2 m circles which are linear independent from -1) circles by the combination of m circles which are each linear independent. Accordingly, in the galloise calculation circuit, the scale of the circuit for calculating the error position detection polynomial can be reduced.

도 1은 본 발명의 실시 예에 따른 메모리 장치를 보여준다.
도 2는 에러 검출 정정 회로의 예를 보여준다.
도 3은 갈로아체(FG(2^4)의 요소를 보여주는 테이블이다.
도 4는 갈로아체의 요소를 보여주는 테이블이다.
도 5a 및 도 5b는 갈로아체 연산 회로의 구성 예를 보여준다.
도 6a 및 도 6b는 다항식의 선형 구조의 예를 보여준다.
도 7은 도 5a에 도시된 갈로아체 연산 회로의 연산 동작을 설명하기 위한 도면이다.
도 8은 X에 대한 선형항을 계산하는 회로의 예를 보여준다.
도 9는 도 4의 테이블에 도시된 원을 3승한 예를 보여준다.
도 10은 X^3에 대한 선형항을 계산하는 회로의 예를 보여준다.
도 11a 및 도 11b는 회로 소자의 삭감 효과를 설명하기 위한 도면이다.
도 12는 종래의 갈로아체 다항식의 영점을 구하는 갈로아체 연산 회로의 예를 보여준다.
도 13은 병렬 연산 회로를 이용한 갈로아체 연산 회로의 예를 보여준다.
도 14는 행렬 연산의 예를 보여준다.
1 illustrates a memory device according to an embodiment of the present invention.
2 shows an example of an error detection correction circuit.
3 is a table showing the elements of Galoache (FG (2 ^ 4)).
4 is a table showing the elements of Galoache.
5A and 5B show a configuration example of a galloche calculation circuit.
6A and 6B show examples of linear structures of polynomials.
FIG. 7 is a diagram for describing an operation of the galloche calculation circuit illustrated in FIG. 5A.
8 shows an example of a circuit that calculates a linear term for X.
9 shows an example of winning a circle shown in the table of FIG.
10 shows an example of a circuit for calculating the linear term for X ^ 3.
11A and 11B are views for explaining the reduction effect of the circuit element.
12 shows an example of a Galoache calculation circuit for finding the zero of a conventional Galoache polynomial.
13 shows an example of a galloche calculation circuit using a parallel calculation circuit.
14 shows an example of a matrix operation.

이하에서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다.DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described with reference to the accompanying drawings so that those skilled in the art may easily implement the technical idea of the present invention. .

종래의 갈로아체 연산 회로는, 예를 들면 도 12에 도시된 회로(4차 다항식의 회로)는, 에러 위치 검출 다항식(P(X))의 계수들(p0, p1, p2, p3, p4)이 확정된 후, 가로아체 요소(원)(X)로서 1(=α^0), α(=α^1), α^2, α^3, ···을 순차 입력하여, 에러 위치 검출 다항식(P(X))의 영점을 구한다.In the conventional Galoache arithmetic circuit, for example, the circuit shown in Fig. 12 (the circuit of the quadratic polynomial) has the coefficients p0, p1, p2, p3, p4 of the error position detection polynomial P (X). After this is confirmed, 1 (= α ^ 0), α (= α ^ 1), α ^ 2, α ^ 3, ... as the tracheal element (circle) (X) are sequentially input and error position is detected. Find the zero of the polynomial (P (X)).

더 상세하게는, 종래의 갈로아체 다항식의 영점을 구하는 갈로아체 연산 회로는, 제 1의 순서로서 계수(pi(i=0, 2, 3, 4))를 계산하고, 제 2의 순서로서 항(piXi)을 계산하고, 제 3의 순서로서 i=0, 1, 3, 4에 대응하는 각 항을 서로 더한다. 그리고, 제 1, 제2 및 제 3의 순서들을, 취할 수 있는 모든 요소 X(1, α, α^2, α^3, ···), 또는 그 일부에 대해서 실시하여, 에러 위치 검출 다항식(P(X))의 영점을 구한다.More specifically, the Galoache calculation circuit for finding the zero of the conventional Galoache polynomial calculates the coefficient pi (i (i = 0, 2, 3, 4) in the first order, and calculates the term as the second order. (piXi) is calculated and each term corresponding to i = 0, 1, 3, 4 is added to each other as a third order. Then, the error position detection polynomial is performed for all elements X (1, α, α ^ 2, α ^ 3, ...), or parts thereof, which can take the first, second and third orders. Find the zero of (P (X)).

그러나, 이 방법에서는, 갈로아체의 요소(1, α, α^2, α^3, ···)를 순차 입력하여 에러 위치 검출 다항식(P(X))의 영점을 구하므로, 영점을 구하는데 매우 긴 시간이 소모된다.In this method, however, the zero of the error position detection polynomial (P (X)) is obtained by sequentially inputting the elements (1, α, α ^ 2, α ^ 3, ...) of galloise. It takes a very long time.

이러한 문제점을 해결하기 위하여, 에러 위치 검출 다항식(P(X))의 영점을 한 번에 구하는 회로(4차 다항식의 예)가 이용될 수가 있다. 예를 들면, 도 13에 도시된 갈로아체 연산 회로에 나타나듯이, 각 요소 1 (α^0), α, α^2, α^3, ···, α^(t-2) (다만 t=2^m)의 각각에 병렬 연산 회로를 마련하여 P(1), P(α^1), P(α^2), P(α^3),···, P(α^(t-2))를 동시에 연산함으로써, 에러 위치 검출 다항식의 연산 시간이 큰폭으로 단축될 수 있다. 그렇지만, 도 13에 도시된 방법에서는, 취할 수 있는 모든 X에 대한 에러 위치 검출 다항식(P(X))를 일괄로 구하므로, 각 비트의 영점를 구하는 시간은 걸리지 않지만, 회로 규모가In order to solve this problem, a circuit (example of the fourth order polynomial) for finding the zero point of the error position detection polynomial P (X) at once can be used. For example, as shown in the galloace calculation circuit shown in FIG. 13, each element 1 (α ^ 0), α, α ^ 2, α ^ 3, ..., α ^ (t-2) (but t P (1), P (α ^ 1), P (α ^ 2), P (α ^ 3), P (α ^ (t) By simultaneously calculating -2)), the computation time of the error position detection polynomial can be greatly shortened. However, in the method shown in Fig. 13, since the error position detection polynomial P (X) for all Xs that can be taken is collectively obtained, it takes no time to zero each bit, but the circuit scale is increased.

매우 커진다.Very large.

도 13에 도시된 바와 같은 회로 구성에서, 각 유닛의 각 항에 대응하는 부분은 정수원을 곱하는 연산이 선형 연산인 것으로부터 행렬 연산으로 표시된다(예를 들면, 도 14에 도시된 행렬 연산의 예를 참조). 여기서, 연산에 사용되는 행렬은, 갈로아체 요소(X)를 벡터로 간주할 때, 이것을 다른 벡터로 변환하는 행렬이다. 그리고, 갈로아체(GF(2^m))를 채용한 경우(m은 갈로아체 요소(X)를 바이너리 데이터로 간주했을 경우의 데이터 길이에 해당), 행렬 연산 부분에 대응하는 회로는 약 m(m-1)/2개의 EXOR 소자로 구성된다. 그리고, 다항식의 차수 n의 경우, 행렬 연산의 결과 m비트를 (n+1)항 분 만큼 서로 더하므로, m×n개의 EXOR 소자가 필요하다. 갈로아체 요소(X)가 취할 수 있는 값의 범위를 갈로아체 전체로 하면, 도 13의 유닛 수는 2m-1개이며, 총계는, (n+1)×(2m-1)×m(m-1)/2+n×(2m-1)×m 이 된다.In the circuit configuration as shown in Fig. 13, the portion corresponding to each term of each unit is indicated by matrix operation since the operation of multiplying integer sources is a linear operation (for example, the matrix operation shown in Fig. 14). See). Here, the matrix used for the calculation is a matrix which converts this into another vector when the galloise element X is regarded as a vector. In the case of adopting the galloace (GF (2 ^ m)) (m is the data length when the galloise element (X) is regarded as binary data), the circuit corresponding to the matrix operation part is about m ( m-1) / 2 EXOR elements. In the case of the order n of the polynomial, since m bits of the matrix operation are added to each other by (n + 1) terms, m x n EXOR elements are required. If the range of values that the Galloache element (X) can take is made into the whole Galloache, the number of units in FIG. 13 is 2 m- 1, and the total is (n + 1) * ( 2m- 1) * m (m It becomes -1) / 2 + n * ( 2m- 1) * m.

 예를 들면, m=8, n=4의 경우, 총계 약 43800개의 EXOR 소자가 필요하게 된다. 이와 같이, 각 항의 연산을 2 입력의 곱셈으로부터 행렬 연산으로 변환하여도, 회로 규모가 매우 커진다.For example, when m = 8 and n = 4, about 43800 EXOR elements in total are required. In this way, even if the operation of each term is converted from multiplication of two inputs to matrix operation, the circuit scale becomes very large.

본 발명의 실시 예에 따른 갈로아체 연산 회로는, 후술되는 바와 같이, 갈로아체 및 에러 위치 검출 다항식의 각 항의 선형성을 이용하여 회로 규모를 감소시킨다. 에러 위치 검출 다항식의 각 항은, 갈로아체 요소(X)에 대해 선형성이 있는 부분 "X, X^2, X^4, X^8, ···", 갈로아체 요소(X^3)에 대한 선형성이 있는 부분 "X^3, X^6, X^12, ···", 갈로아체 요소(X^5)에 대한 선형성이 있는 부분 "X^5, X^10, X^20, ···"과 같이 여러 부분들로 나뉘고, 부분들 각각은 동일한 선형함수로서 통합된다. 그리고, 통합된 선형 함수는, 기저값을 이용하여 계산하는 기저 계산부 및 선형 전개부로 나귀어 원이 계산된다.According to an embodiment of the present invention, the Galoache calculation circuit reduces circuit size by using the linearity of each term of the Galoache and the error position detection polynomial. Each term of the error position detection polynomial is represented by the parts "X, X ^ 2, X ^ 4, X ^ 8, ..." which are linear with respect to the Galoache element (X), and the Galoache element (X ^ 3). For linearity "X ^ 3, X ^ 6, X ^ 12, ...", the linearity for gallosome elements (X ^ 5) "X ^ 5, X ^ 10, X ^ 20, ... "into several parts, each of which is integrated as the same linear function. In addition, the integrated linear function calculates a circle circle by a base calculation unit and a linear development unit which calculate using a base value.

기저 계산부는, 갈로아체(GF(2^m)) 상의 선형 독립인 m개의 원에 대해 에러 위치 검색 다항식을 계산한다. 또한, 선형 독립인 m개의 원을 제외한 나머지 (2m-1-m) 개의 원에 대응하는 에러 위치 검색 다항식의 계산에서는, 선형 전개부에 의해, 기저 계산부의 연산 결과를 가산하여 계산이 수행된다.The basis calculation unit calculates the error position retrieval polynomial for m circles that are linearly independent on Galoache (GF (2 ^ m)). In addition, in the calculation of the error position search polynomial corresponding to the remaining (2 m -1-m) circles except m circles that are linearly independent, the linear expansion unit adds the calculation result of the base calculation unit to perform the calculation.

이에 따라, 원 마다 에러 위치 검출 다항식을 계산하는 갈로아체 연산 회로에 비해, 갈로아체 연산 회로의 회로 규모가 감소될 수 있다. 또한, 단시간에 에러 위치 검출 다항식의 영점을 구하는 갈로아체 연산 회로가, 반도체 메모리에 탑재 가능한 회로 규모로 실현될 수 있다.
Accordingly, the circuit scale of the Galois calculation circuit can be reduced compared to the Galois calculation circuit that calculates the error position detection polynomial per circle. In addition, a galloche calculation circuit for finding the zero point of the error position detection polynomial in a short time can be realized on a circuit scale that can be mounted in a semiconductor memory.

메모리 장치의 구성Memory device configuration

도 1은, 본 발명의 실시 예에 따른 메모리 장치를 보여준다. 메모리 장치로서, NAND 플래시 메모리인 불휘발성 반도체 기억장치(10)가 도 1에 도시된다.1 illustrates a memory device according to an embodiment of the present invention. As a memory device, a nonvolatile semiconductor memory device 10, which is a NAND flash memory, is shown in FIG.

불휘발성 반도체 기억장치(10)는, 메모리 셀 어레이(11), 페이지 버퍼(12), 에러 검출 정정 회로(ECC 회로)(13), 버퍼(14), I/O 패드(15), 제어 회로(16), 어드레스 디코더(17), 그리고 행 및 블록 디코더(18)를 포함한다.The nonvolatile semiconductor memory device 10 includes a memory cell array 11, a page buffer 12, an error detection correction circuit (ECC circuit) 13, a buffer 14, an I / O pad 15, and a control circuit. (16), address decoder 17, and row and block decoder 18.

불휘발성 반도체 기억장치(10)는 일반적인 NAND 플래시 메모리와 동일한 구성을 갖되, 에러 검출 정정 회로(13)내에 설치되는 갈로아체 연산 회로(에러 위치 검출 다항식의 연산 회로)(도 2)에 특징이 있다.The nonvolatile semiconductor memory device 10 has the same configuration as a general NAND flash memory, but is characterized by a galloche arithmetic circuit (an arithmetic circuit of an error position detection polynomial) installed in the error detection correction circuit 13 (Fig. 2). .

이하에서, 불휘발성 반도체 기억장치(10)의 전체적인 구성이 설명된다. 불휘발성 반도체 기억장치(10)에서, 메모리 셀 어레이(11)는, 복수의 스택 게이트 구조의 트랜지스터들, 즉 전기적으로 다시쓰기가 가능한 불휘발성 메모리 셀들(기억소자)이 컬럼 방향(열방향)으로 직렬 접속되고, 비트선 마다 설치된 NAND 셀 스트링이 행방향(비트선의 배열 방향)으로 복수개 배치된 블록들을 포함된다. 블록들은, 비트선의 배선 방향으로 복수개 배치된다. 블록들은, 메모리 셀의 데이터의 소거 단위로 설정된다. 각 블록에는, 동일 행에 배치된 불휘발성 메모리 셀들 각각의 게이트에는, 비트선에 직교 한 워드 라인이 연결된다. 하나의 워드 라인에 의해 선택되는 불휘발성 메모리 셀의 범위가 프로그램 및 읽기의 단위가 되는 페이지이다.In the following, the overall configuration of the nonvolatile semiconductor memory device 10 will be described. In the nonvolatile semiconductor memory device 10, the memory cell array 11 includes a plurality of stacked gate structure transistors, that is, electrically rewritable nonvolatile memory cells (memory elements) in a column direction (column direction). A plurality of NAND cell strings connected in series and provided for each bit line are arranged in a row direction (bit line arrangement direction). A plurality of blocks are arranged in the wiring direction of the bit line. Blocks are set in units of erasing data of a memory cell. In each block, a word line orthogonal to the bit line is connected to the gate of each of the nonvolatile memory cells arranged in the same row. The range of a nonvolatile memory cell selected by one word line is a page which is a unit of program and read.

페이지 버퍼(12)는, 페이지 단위의 데이터의 프로그램 및 읽기를 실시하기 위해, 비트선 마다 설치된 페이지 버퍼 회로를 포함한다. 페이지 버퍼(12)의 페이지 버퍼 회로 각각은, 각각의 비트선에 접속되고 접속된 비트선의 전위를 증폭하여 판정하는 센스 증폭기 회로로 이용되는 래치 회로를 포함한다.The page buffer 12 includes a page buffer circuit provided for each bit line in order to program and read data in page units. Each page buffer circuit of the page buffer 12 includes a latch circuit connected to each bit line and used as a sense amplifier circuit for amplifying and determining the potential of the connected bit line.

페이지 버퍼(12)(데이터 격납부)는, 불휘발성 반도체 기억장치(10)의 데이터 읽기 동작 시에, 메모리 셀 어레이(11)의 하나의 페이지의 메모리 셀들이 기억하는 데이터(데이터 열)인 셀 데이터(Cell Data)를 수신하고, 수신된 데이터를 증폭하여 에러 검출 정정 회로(13)로 출력한다. 한편, 페이지 버퍼(12)는, 불휘발성 반도체 기억 장치(10)의 데이터 기록(프로그램) 동작 시에, 에러 검출 정정 회로(13)로부터 공급된 데이터를 내부의 래치 회로에 저장하고, 베리파이 동작을 실시하면서, 모든 데이터를 부호 데이터(Code Data)로서 하나의 페이지의 메모리 셀들에 기입한다.The page buffer 12 (data storage unit) is a cell that is data (data string) stored in memory cells of one page of the memory cell array 11 during a data read operation of the nonvolatile semiconductor memory device 10. The data Cell # Data is received, and the received data is amplified and output to the error detection correction circuit 13. On the other hand, the page buffer 12 stores the data supplied from the error detection and correction circuit 13 in the internal latch circuit during the data write (program) operation of the nonvolatile semiconductor memory device 10, and verifies the operation. While executing, all data is written into the memory cells of one page as code data Code # Data.

부호 데이터(Code Data)에는, 에러 검출 정정 회로(13)가 생성하는 패리티 데이터(Parity)가 포함된다. 예를 들면, 정보 길이가 512 바이트인 데이터에 대해 BCH 부호를 이용하여 4 bit(비트) 정정을 실시하는 에러 정정 시스템의 예에서, 1 페이지는 2 K(=2048) 바이트, 즉, 16 k(=16384) 비트의 통상 데이터를 각각 기억하는 메모리 셀들과 208 비트의 패리티 데이터를 각각 기억하는 메모리 셀들을 포함한다. 즉, 셀 데이터(Cell Data) 및 부호 데이터(Code Data)는, (16k+208) 비트로 구성된다. 또한, 예를 들어, 1 페이지는, 에러 검출 정정 회로 (13)의 정정의 단위로 4개의 섹터로 분할된다. 즉, 1 섹터에 대응하는 데이터는, 512바이트(=4096 비트)의 통상 데이터 및 52 비트의 패리티 데이터로 구성된다.The code data Code_Data includes parity data Parity generated by the error detection correction circuit 13. For example, in an error correction system that performs 4 bit (bit) correction using a BCH code for data having an information length of 512 bytes, one page is 2 K (= 2048) bytes, that is, 16 k ( 16384) memory cells each storing bits of normal data and memory cells each storing 208 bits of parity data. That is, the cell data Cell # Data and the code data Code # Data are composed of (16k + 208) bits. In addition, for example, one page is divided into four sectors as a unit of correction by the error detection and correction circuit 13. That is, the data corresponding to one sector is composed of 512 bytes (= 4096 bits) of normal data and 52 bits of parity data.

에러 검출 정정 회로(13)는, 불휘발성 반도체 기억장치(10)의 데이터 읽기 동작 시에, 페이지 버퍼(12)로부터 읽어진 데이터를 섹터별로 처리하여 에러 위치 검출 다항식의 계수를 산출하고, 산출 결과를 내부에 래치하여 보관 유지한다. 또한, 에러 검출 정정 회로(13)는, 읽기 동작 시에, 컬럼 주소에 의해 위치가 표시되는 비트의 데이터의 에러를 정정하여, I/O패드(15)를 통해 정정 데이터(Corrected Data)로서 외부로 출력한다.In the data read operation of the nonvolatile semiconductor memory device 10, the error detection correction circuit 13 processes data read from the page buffer 12 for each sector to calculate coefficients of the error position detection polynomial, and calculates the result. Latch and keep it inside. In addition, the error detection correction circuit 13 corrects an error of data of bits whose position is indicated by a column address during a read operation, and externally corrects the data as corrected data through the I / O pad 15. Will output

또한, 에러 검출 정정 회로(13)는, 불휘발성 반도체 기억장치(10)의 데이터 기입 동작 시에, I/O 패드(15)로부터 입력되는 정보 데이터(Information Data)를 버퍼(14)를 통해 수신한다. 에러 검출 정정 회로(13)는, 수신된 정보 데이터(Information Data)로부터 패리티 데이터(Parity)를 생성함과 함께, 수신된 정보 데이터(Information Data) 및 패리티 데이터(Parity)를 페이지 버퍼(12)로 출력한다. 페이지 버퍼(12)는, 수신된 데이터를 부호 데이터(Code Data)로서, 선택된 페이지에 연결된 메모리 셀들에 기입한다.In addition, the error detection correction circuit 13 receives the information data (Information_Data) input from the I / O pad 15 through the buffer 14 during the data write operation of the nonvolatile semiconductor memory device 10. do. The error detection correction circuit 13 generates parity data from the received information data, and sends the received information data and the parity data to the page buffer 12. Output The page buffer 12 writes the received data as code data to memory cells connected to the selected page.

제어 회로(16)는 각종 제어 신호를 입력하여 불휘발성 메모리 셀들에 대한 데이터의 프로그램, 읽기, 소거 등의 동작 및 베리파이의 동작의 제어를 실시한다. 예를 들면, 제어 신호는 외부 클럭 신호, 칩 인에이블 신호(/CE), 읽기 인에이블 신호(/RE), 프로그램 인에이블 신호(WE), 커맨드 래치 인에이블 신호(CLE), 어드레스 래치 인에이블 신호(ALE), 기록방지 신호(/WP) 등을 포함할 수 있다.The control circuit 16 inputs various control signals to perform operations such as programming, reading, erasing data, and verifying operations of the nonvolatile memory cells. For example, the control signal may include an external clock signal, a chip enable signal (/ CE), a read enable signal (/ RE), a program enable signal (WE), a command latch enable signal (CLE), and an address latch enable. Signal ALE, write prevention signal / WP, and the like.

제어 회로(16)는 제어 신호와 I/O 패드(15)로부터 입력되는 커멘드 데이터가 가리키는 동작 모드에 응답하여, 각 회로로 내부 제어 신호를 출력한다. 예를 들면, 제어 회로(16)는, 프로그램 인에이블 신호(/WE)의 첫 시작시에 커멘드 래치 인에이블 신호(CLE)가 로우(L) 레벨로부터 하이(H) 레벨이 되는 것에 응답하여, I/O 패드(15)로부터 커멘드 데이타를 읽고, 내부의 레지스터에 저장한다.The control circuit 16 outputs an internal control signal to each circuit in response to the operation mode indicated by the control signal and the command data input from the I / O pad 15. For example, the control circuit 16 responds to the command latch enable signal CLE from the low (L) level to the high (H) level at the first start of the program enable signal (/ WE), The command data is read from the I / O pad 15 and stored in an internal register.

어드레스 디코더(17)는 I/O 패드(15)로부터 입력되는 어드레스(행 어드레스, 블록 어드레스, 열 어드레스)를 제어 회로(16)로부터의 내부 제어 신호에 기반하여 보관 유지한다. 또한, 어드레스 디코더(17)는 보관 유지되는 주소를 제어 회로(16)로부터의 내부 제어 신호에 기반하여, 행 및 블록 디코더(18), 페이지 버퍼(12), 및 에러 검출 정정 회로(13)로 출력한다.The address decoder 17 holds an address (row address, block address, column address) input from the I / O pad 15 based on an internal control signal from the control circuit 16. In addition, the address decoder 17 transfers the held address to the row and block decoder 18, the page buffer 12, and the error detection correction circuit 13 based on an internal control signal from the control circuit 16. Output

예를 들면, 제어 회로(16)는 프로그램 인에이블 신호(/WE)의 첫 시작 시에 어드레스 래치 인에이블 신호(ALE)가 로우(L) 레벨로부터 하이(H) 레벨이 되는 것에 응답하여, I/O 패드(15)로부터 주소를 읽어 어드레스 디코더(17)의 내부 레지스터에 보관 유지한다.For example, the control circuit 16 responds to the address latch enable signal ALE from the low (L) level to the high (H) level at the first start of the program enable signal (/ WE). The address is read from the / O pad 15 and held in an internal register of the address decoder 17.

행 및 블록 디코더(18)는, 어드레스 디코더(17)가 보관 유지하고 출력하는 행 어드레스 및 블록 어드레스에 응답하여, 메모리 셀 어레이(11)의 블록 및 워드 라인을 선택하여, 1 페이지의 메모리 셀들을 선택한다. 또한, 어드레스 디코더(17)는, 내부로 유지하는 열 주소에 응답하여, 메모리 셀 어레이(11)의 비트선 및 페이지 버퍼(12)의 선택을 실시한다.The row and block decoder 18 selects the block and the word line of the memory cell array 11 in response to the row address and the block address held and output by the address decoder 17 to select one page of memory cells. Choose. In addition, the address decoder 17 selects the bit line and the page buffer 12 of the memory cell array 11 in response to the column address held therein.

에러 검출 정정 회로(13)는 불휘발성 반도체 기억장치(10)의 데이터 읽기 동작 시에, 페이지 버퍼(12)로부터 읽어진 데이터를 섹터별로 처리하고, 에러 위치 검출 다항식의 계수를 산출한다. 또한, 에러 검출 정정 회로(13)는 읽기 동작 시에, 열 어드레스에 의해 위치가 표시되는 비트 마다의 데이터의 에러를 정정하고, I/O 패드(15)를 통해 정정 데이터(Corrected Data)로서 외부로 출력한다.In the data read operation of the nonvolatile semiconductor memory device 10, the error detection correction circuit 13 processes data read from the page buffer 12 sector by sector and calculates the coefficient of the error position detection polynomial. In addition, the error detection correction circuit 13 corrects an error of data for each bit whose position is indicated by a column address during a read operation, and externally corrects the data as corrected data through the I / O pad 15. Will output

또한, 에러 검출 정정 회로(13)는, 불휘발성 반도체 기억장치(10)의 데이터 기입 동작 시에, I/O 패드(15)로부터 입력되는 정보 데이터(Information Data)를 버퍼(14)를 통해 수신한다. 에러 검출 정정 회로(13)는 수신된 정보 데이터(Information Data)로부터 패리티 데이터(Parity)를 생성함과 함께, 수신된 정보 데이터(Information Data) 및 패리티 데이터(Parity)를 페이지 버퍼(12)로 출력한다. 페이지 버퍼(12)는, 수신된 데이터를 부호 데이터(Code Data)로서, 선택된 페이지에 연결된 메모리 셀들에 기입한다.In addition, the error detection and correction circuit 13 receives information data (Information Data) input from the I / O pad 15 through the buffer 14 during the data write operation of the nonvolatile semiconductor memory device 10. do. The error detection correction circuit 13 generates parity data from the received information data, and outputs the received information data and parity data to the page buffer 12. do. The page buffer 12 writes the received data as code data to memory cells connected to the selected page.

상기 구성의 NAND 플래시 메모리에서, 도 2는 에러 검출 정정 회로(13)의 구성 예를 보여준다.In the NAND flash memory of the above configuration, FIG. 2 shows an example of the configuration of the error detection correction circuit 13.

본 발명의 실시 예에서, 에러 검출 정정 회로(13)로서 BCH 부호(Bose-Chaudhuri Hocquenghem code)를 이용한 에러 검출 정정 회로(ECC회로)가 설명된다. 에러 검출 정정 회로는, BCH 부호로 대표되는 갈로아체 연산을 이용한 블록 부호를 사용한다. 덧붙여, BCH 부호의 변형 예, 예를 들면 Hamming 부호(Hamming code), 리드 솔로몬 부호(Reed-Solomon code)를 이용하는 것도 가능하다.In the embodiment of the present invention, an error detection correction circuit (ECC circuit) using a BCH code (Bose-Chaudhuri Hocquenghem code) is described as the error detection correction circuit 13. The error detection correction circuit uses a block code using a galloche operation represented by a BCH code. In addition, it is also possible to use a modified example of the BCH code, for example, a Hamming code (Haming code) and a Reed-Solomon code.

에러 검출 정정 회로(13)는 데이터의 복호를 수행하는 디코더부(30) 및 정정용 패리티 데이터(Parity)를 생성하고 정정용 패리티 데이터(Parity)를 셀에 기입되는 데이터에 부가하는 인코더부(40)를 포함한다.The error detection correction circuit 13 includes a decoder unit 30 for decoding data and an encoder unit 40 for generating correction parity data Parity and adding correction parity data Parity to data written in a cell. Include.

이 중, 인코더부(40)는, 패리티 생성 회로(41)을 구비한다. 패리티 생성 회로(41)는 버퍼(14)에 기입된 정보 데이터(Information Data)를 생성 다항식으로 제산(예를 들어, 나누어)하여 생성되는 패리티 데이터(Parity)를 생성한다. 또, 패리티 생성 회로(41)는, 정보 데이터(Information Data)에 생성한 패리티 데이터(Parity)를 부가하여, 페이지 버퍼(12)로 출력한다. 출력되는 데이터는, 불휘발성 반도체 기억장치(10)의 데이터 기입 시에, 선택된 1 페이지에 기입되는 부호 데이터(Code Data)이다. 또한, 본 발명의 실시 예는, 불휘발성 반도체 기억 장치(10)로부터의 데이터 읽기 시에, 에러 검출 정정 회로(13)가 고속으로 데이터 정정 처리를 실시하는 것과 동시에, 에러 검출 정정 회로(13) 내의 갈로아체 연산 회로(34)의 회로 규모를 축소하는 것에 특징을 가지며, 이하에서는 디코더부(30)에 대해 상세하게 설명된다.Among these, the encoder unit 40 includes a parity generation circuit 41. The parity generating circuit 41 generates parity data generated by dividing (for example, dividing) the information data written in the buffer 14 by a generation polynomial. The parity generating circuit 41 adds the parity data Parity generated to the information data and outputs the parity data to the page buffer 12. The data to be output is code data (Code Data) written in one page selected at the time of writing data of the nonvolatile semiconductor memory device 10. Further, in the embodiment of the present invention, when the data is read from the nonvolatile semiconductor memory device 10, the error detection and correction circuit 13 performs data correction processing at high speed, and at the same time, the error detection and correction circuit 13 The circuit scale of the galloache arithmetic circuit 34 is reduced, and the decoder unit 30 will be described in detail below.

디코더부(30)는 신드롬 계산부(31), 에러 계수 계산부(32), 치엔 탐색부(33), 그리고 에러 정정부(35)를 포함한다. 치엔 탐색부(33)에는 갈로아체 연산 회로(34)가 포함된다.The decoder unit 30 includes a syndrome calculator 31, an error coefficient calculator 32, a Chien search unit 33, and an error corrector 35. The Chien search unit 33 includes a galloche calculation circuit 34.

신드롬 계산부(31)는 불휘발성 반도체 기억장치(10)의 데이터 읽기 시에, 페이지 버퍼(12)에 읽어진 셀 데이터(Cell Data)를 부호 데이터로서 수신하고, 수신된 부호 데이터를 독립인 최소 다항식에서 계산함으로써 신드롬을 계산한다. 4 비트의 데이터의 에러 정정이 가능한 BCH 부호에서 사용되는 독립인 최소 다항식은 4개이다. 신드롬 계산부(31)는 4개의 최소 다항식에 대응하는 4개의 신드롬 계산 회로들(31_1~31_4)을 구비한다. 신드롬 계산 회로들(31_1~31_4)은 각각 신드롬들(S1, S3, S5, S7)을 계산한다.When reading data from the nonvolatile semiconductor memory device 10, the syndrome calculation unit 31 receives the cell data (Cell # Data) read into the page buffer 12 as code data, and receives the received code data as an independent minimum. Compute the syndrome by calculating it in a polynomial. There are four independent minimum polynomials used in the BCH code capable of error correction of four bits of data. The syndrome calculation unit 31 includes four syndrome calculation circuits 31_1 to 31_4 corresponding to four minimum polynomials. The syndrome calculation circuits 31_1 to 31_4 calculate syndromes S1, S3, S5, and S7, respectively.

에러 계수 계산부(32)는, 신드롬들(S1, S3, S5, S7)을 사용하여, 에러 위치 검출 다항식의 계수들을 계산한다. 예를 들면, 에러 위치 검출 다항식이 4차의 다항식(P(X)=p4X4+p3X3+p2X2+p1X+p0)인 경우, 에러 계수 계산부(32)는 계수들(p4, p3, p2, p1, p0)을 계산한다. 그리고, 치엔 탐색부(33)는 갈로아체 연산 회로(34)를 이용하여, 에러 위치 검출 다항식 P(X)를 계산한다. 또한, 에러 위치 검출 다항식 P(X)에서, 변수 X에는, 부호 데이터, 즉 페이지 버퍼에 저장된 셀 데이터(Cell Data)의 비트 위치(예를 들면, 비트선의 위치)를 가리키는 값(갈로아체의 요소)이 입력된다. 즉, 에러 위치 검출 다항식(P(X))은, 페이지 버퍼(12)로부터 읽어진 비트에 잘못이 있는지 아닌지를 탐색할 때에 치엔 탐색부(33)에서 이용된다.The error coefficient calculation unit 32 calculates the coefficients of the error position detection polynomial using the syndromes S1, S3, S5, and S7. For example, when the error position detection polynomial is the fourth order polynomial (P (X) = p4X 4 + p3X 3 + p2X 2 + p1X + p0), the error coefficient calculation unit 32 calculates the coefficients p4, p3, p2, p1, p0. Calculate The Chien search unit 33 calculates the error position detection polynomial P (X) by using the galloche calculation circuit 34. In the error position detection polynomial P (X), the variable X has a value indicating a bit position (for example, the position of the bit line) of the sign data, that is, the cell data stored in the page buffer. ) Is entered. That is, the error position detection polynomial P (X) is used by the Chien search unit 33 when searching whether or not there is an error in the bit read from the page buffer 12.

예를 들어, 치엔 탐색부(33)는, 갈로아체 연산 회로(34)에서 에러 위치 검출 다항식(P(X)=p4X4+p3X3+p2X2+p1X+p0)을 계산하고, 에러 위치 검출 다항식(P(X))의 값이 0인 경우, 에러 검출 신호(Error)를 H레벨로 출력한다. 한편, 에러 위치 검출 다항식(P(X))의 값이 0이 아닌 경우, 치엔 탐색부(33)는 에러 검출 신호(Error)를 L레벨로 출력한다.For example, the Chien search unit 33 calculates the error position detection polynomial (P (X) = p4X 4 + p3X 3 + p2X 2 + p1X + p0) by the galloche calculation circuit 34, and calculates the error position detection polynomial (P (X). If the value of)) is 0, an error detection signal (Error) is output at the H level. On the other hand, when the value of the error position detection polynomial P (X) is not 0, the Chien search unit 33 outputs an error detection signal Error at an L level.

에러 정정부(35)는, 에러 검출 신호(Error)가 H레벨이면, 대응하는 위치의 비트의 데이터의 논리값(0 또는 1)을 반전하여, 정정 데이터(Corrected Data)의 1 비트로 출력한다. 한편, 에러 정정부(35)는, 에러 검출 신호(Error)가 L레벨이면, 대응하는 위치의 비트의 데이터의 논리값을 그대로, 즉 정정하지 않고 정정 데이터(Corrected Data)의 1 비트로서 출력한다.If the error detection signal Error is at the H level, the error correction unit 35 inverts the logical value (0 or 1) of the data of the bit at the corresponding position, and outputs one bit of the corrected data. On the other hand, if the error detection signal (Error) is at L level, the error correction unit 35 outputs the logical value of the data of the bit at the corresponding position as it is, that is, without correcting it as one bit of corrected data. .

즉, 치엔 탐색부(33)에서 갈로아체 연산 회로(34)에 의해 에러 위치 검출 다항식(P(X)=p4X4+p3X3+p2X2+p1X+p0)에 x=α^i (갈로아체의 요소: i는 비트선의 위치)를 각각 대입했을 때, 에러 위치 검출 다항식(P(X))의 값이 0인 경우, 에러 검출 신호(Error<i>)는 H레벨이 된다. 한편, 에러 위치 검출 다항식(P(X))의 값이 0이 아닌 경우, 에러 검출 신호(Error<i>)는 L레벨이 된다.That is, in the Chien search unit 33, the error position detection polynomial (P (X) = p4X 4 + p3X 3 + p2X 2 + p1X + p0) by the galloche calculation circuit 34, x = α ^ i (element of the galloche: i is When the value of the error position detection polynomial P (X) is 0 when the bit line positions) are substituted, the error detection signal Error <i> becomes H level. On the other hand, when the value of the error position detection polynomial P (X) is not 0, the error detection signal Error <i> becomes L level.

에러 정정부(35)의 배타적 논리합 연산 회로(35_i)는, 에러 검출 신호(Error<i>) 및 페이지 버퍼(12)에 읽기 동작에 의해 저장된 셀 데이터(Cell Data) 중 (i) 번째의 비트선의 위치의 비트가 입력된다. 즉, 배타적 논리합 연산 회로(35_i)는, 에러 검출 신호(Error<i>)가 H레벨이면, (i) 번째의 비트선의 위치의 비트의 데이터의 논리값을 반전하여, 정정 데이터(Corrected Data)의 1 비트로서 출력한다. 한편, 배타적 논리합 연산 회로(35_i)는 에러 검출 신호(Error<i>)가 L레벨이면, (i) 번째의 비트선의 위치의 비트의 데이터의 논리값을 그대로, 정정하지 않고 정정 데이터(Corrected Data)의 1 비트로서 출력한다.
The exclusive OR operation circuit 35_i of the error correction unit 35 stores the (i) th bit of the cell data (Cell Data) stored in the error detection signal Error <i> and the page buffer 12 by a read operation. The bits of the position of the line are input. That is, when the error detection signal Error <i> is at the H level, the exclusive OR calculation circuit 35_i inverts the logical value of the data of the bit at the position of the (i) th bit line, thereby correcting the corrected data. Output as 1 bit of. On the other hand, if the error detection signal Error <i> is L level, the exclusive OR operation circuit 35_i does not correct the logical value of the data of the bit at the position of the (i) th bit line without correcting the correction data (Corrected Data). Output as 1 bit of).

다항식이 가지는 선형성과 갈로아체가 가지는 선형 구조Linearity of Polynomials and Linear Structure of Galoache

본 발명의 실시 예에 따른 불휘발성 반도체 기억장치(10)에서, 에러 검출 정정 회로(13)는 갈로아체 연산 회로(34)를 이용하여 에러 위치 검출 다항식의 연산을 실시할 때, 갈로아체 및 다항식이 갖는 선형 구조를 이용하여 회로 규모를 감소시칸다. 여기에서, 최초로, 갈로아체와 다항식이 갖는 선형성에 대해 보충해 설명된다.In the nonvolatile semiconductor memory device 10 according to an embodiment of the present invention, the error detection and correction circuit 13 performs a galloche and a polynomial when the error position detection polynomial is calculated using the galloche calculation circuit 34. The circuit scale is reduced by using the linear structure of the circuit. Here, for the first time, the linearity of galoache and polynomial is supplemented and explained.

이하의 설명에서, 간결한 설명을 위하여, 갈로아체(GF(2^m))에 대해, m=3(혹은, m=4)으로 가정하고, 에러 위치 검출 다항식의 차수를 4차(n=4)로 가정한 경우가 예를 들어 설명된다. 그러나, 차수(m, n)는 한정되지 않는다. 차수(m, n)는 에러 검출의 대상이 되는 데이터의 비트 길이와 에러 정정 비트수에 따라 설정되는 임의의 값이다.In the following description, for the sake of brevity, it is assumed that m = 3 (or m = 4) for the galloace GF (2 ^ m), and the order of the error position detection polynomial is fourth order (n = 4). Is assumed to be an example. However, the orders (m, n) are not limited. The orders (m, n) are arbitrary values set according to the bit length of the data to be subjected to error detection and the number of error correction bits.

어떤 함수(F(X))가 이사의 2개의 조건들을 만족할 때, 함수(F(X))는 X에 대해 선형이다.When a function F (X) satisfies two conditions of moving, the function F (X) is linear with respect to X.

(조건1) F(X1 + X2) = F(X1) + F(X2)(Condition 1) F (X1 + X2) = F (X1) + F (X2)

(조건2) F(aX1) = aF(X1)(Condition 2) F (aX1) = aF (X1)

예를 들어, X가 갈로아체의 요소이면, "F(X)=X^2"는 X의 선형함수이다. 왜냐하면, X1, X2를 갈로아체의 요소로, 그리고 a=1, 0로 한 경우, F(X1+X2)는 수학식 1을 만족하므로, 조건 1을 만족한다.For example, if X is an element of Galoache, then "F (X) = X ^ 2" is a linear function of X. Because X1 and X2 are elements of galloace, and a = 1 and 0, F (X1 + X2) satisfies Equation 1, so that condition 1 is satisfied.

Figure 112013031596956-pat00001
Figure 112013031596956-pat00001

갈로아체 상에서의 가산은 배타적 논리합이며, 1+1=2=0 이므로, 2X1X2는 0.The addition on Galoache is the exclusive OR and 1 + 1 = 2 = 0, so 2 × 1 × 2 is zero.

또한, a는 0, 1이므로, 조건2를 만족하는 것은 명백하다. 마찬가지로, 갈로아체 상에서 "1+1=0"인 것으로부터, X^4, X^8, X^16, ···등 X를 2의 제곱승회만큼 곱하는 함수는 갈로아체상의 선형 함수이다.Since a is 0 and 1, it is clear that the condition 2 is satisfied. Similarly, the function of multiplying X ^ 4, X ^ 8, X ^ 16, ..., etc. by the power of 2 squared from "1 + 1 = 0" on galloise is a linear function on galloise.

여기에서, 갈로아체 다항식의 1차, 2차, 4차의 항에 주목하여, 이러한 조합을 수학식 2와 같이 Q(X)로 정의한다.Here, attention is paid to the terms of the first, second, and fourth order of the Galoache polynomial, and this combination is defined as Q (X) as in Equation (2).

Figure 112013031596956-pat00002
Figure 112013031596956-pat00002

이때, X, Y를 갈로아체의 요소로서 수학식 2에 대입하면, 수학식 3과 같이 정리된다.At this time, if X and Y are substituted into Equation 2 as an element of Galoache, it is summarized as in Equation 3.

Figure 112013031596956-pat00003
Figure 112013031596956-pat00003

갈로아체 상에서의 가산은 배타적 논리합이며, 1+1=2=0 이므로, 2X1X2는 0.The addition on Galoache is the exclusive OR and 1 + 1 = 2 = 0, so 2 × 1 × 2 is zero.

수학식 3에 따르면, 조건 1 및 조건 2가 만족되므로, Q(X)는 X의 선형 함수이다.According to equation (3), since condition 1 and condition 2 are satisfied, Q (X) is a linear function of X.

한편, 다른 항(X4, X2, X 이외의 항)에 대해서도, 예를 들어 X3, X5 등을 변수로 간주하는 것으로, 선형 함수로 간주될 수 있다. 예를 들어, 3차, 6차, 12차의 항을 주목하여, 이들의 조합을 함수(R(X))로 수학식 4와 같이 정의할 수 있다.On the other hand, for other terms (terms other than X4, X2, X), for example, X3, X5, etc. can be regarded as a linear function. For example, paying attention to terms of the third, sixth, and twelfth order, a combination thereof may be defined as a function (R (X)) as shown in Equation (4).

Figure 112013031596956-pat00004
Figure 112013031596956-pat00004

R(X)는 선형 함수이다.R (X) is a linear function.

다음으로, 갈로아체가 갖는 선형 구조에 대해 설명된다.Next, the linear structure which galoache has is demonstrated.

도 3은 원시 다항식(F(X))가 F(X)=X4+X+1 인 때의 갈로아체 GF(2^4)의 요소 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)로 나타날 수 있다.Fig. 3 shows elements 1 (= α ^ 0), α ^ 1, α ^ 2, ... of Galoache GF (2 ^ 4) when the primitive polynomial (F (X)) is F (X) = X4 + X + 1. , α ^ 14 is shown in Table 1. Here, attention is paid to four elements (parts enclosed by dashed lines) of 1, α, α ^ 2, and α ^ 3, and they are linear independence in which they themselves are never expressed by a combination of elements other than themselves. Assuming these are basis vectors, the other elements appear as linear combinations of the basis vectors. That is, by using the relationship of α 4 + α 1 + α 0 = 0, each element 0, α ^ 0 (= 1), α ^ 1, α ^ 2, ..., α ^ 14 are α ^ 0, α, It can be represented by a four-dimensional vector (0, 0, 0, 0) through (1, 1, 1, 1) having α ^ 2 and α ^ 3 as elements.

예를 들어, 갈로아체의 요소들은 수학식 5와 같이 표현될 수 있다.For example, the elements of Galoache can be expressed as shown in Equation 5.

Figure 112013031596956-pat00005
Figure 112013031596956-pat00005

여기에서, βi=0, 1 (i=0, 1, 2, 3)로 가정하면, 임의의 갈로아체 요소는 수학식 6으로 표현된다.Here, assuming that βi = 0, 1 (i = 0, 1, 2, 3), any gallosome element is represented by equation (6).

Figure 112013031596956-pat00006
Figure 112013031596956-pat00006

여기서, β3, β2, β1, β0 는 αj에 대응하는 벡터표현이다.Here, β3, β2, β1, and β0 are vector expressions corresponding to αj.

수학식 2의 Q(X)에 Qj=Q(α^j) (j=0, 1, 2,···)로 정의한다. Q(X)에 수학식 6을 대입하면, 수학식 7로 정리된다.Q (X) in Equation 2 is defined as Qj = Q (α ^ j) (j = 0, 1, 2, ...). Substituting equation (6) into Q (X) results in equation (7).

Figure 112013031596956-pat00007
Figure 112013031596956-pat00007

종래의 경우, (a) 식에 기반하여 Qj=p4α4+p2α2+p1α로서, 각 항을 행렬 연산한 결과를 가산할 필요가 있었지만, 본 발명의 실시 예에서는 (b) 식을 이용하여, 기저 1(=α^0), α^1, α^2, α^3에 대응하는 Q0, Q1, Q2, Q3를 미리 행렬 연산으로 구하고, 단순 가산으로 다른 Qj를 구할 수 있다.In the conventional case, it was necessary to add the result of performing the matrix operation on each term as Qj = p4α 4 + p2α 2 + p1α based on the formula (a), but in the embodiment of the present invention, the basis 1 is obtained by using the equation (b). Q0, Q1, Q2, and Q3 corresponding to (= α ^ 0), α ^ 1, α ^ 2, and α ^ 3 can be obtained by matrix operation in advance, and another Qj can be obtained by simple addition.

도 4는, 원시 다항식(F(X))을 "F(X)=X3+X+1"이라고 했을 때의 갈로아체(GF(2^3))의 요소들(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)로 표현될 수 있다.Fig. 4 shows elements (1 (= α ^ 0) and α ^ 1 of galloache (GF (2 ^ 3)) when the primitive polynomial F (X) is " F (X) = X3 + X + 1 &quot;). , α ^ 2, ..., α ^ 6) is shown in Table 2. Here, attention is paid to the three elements (parts surrounded by the dashed lines) of 1, α, and α ^ 2, which are linear independence in which they are never expressed by a combination of elements other than themselves. Assuming these are basis vectors, the other elements are represented by a linear combination of these basis vectors. That is, using the relationship of "α 3 + α 1 + α 0 = 0", each element 0, α ^ 0 (= 1), α ^ 1, α ^ 2, ..., α ^ 6 are α ^ 0, It can be represented by three-dimensional vectors (0, 0, 0) to (1, 1, 1) having α, α ^ 2 as elements.

갈로아체 연산 회로(34)의 구성Configuration of Galoache Arithmetic Circuit 34

이하에서, 갈로아체 다항식(에러 위치 검출 다항식)의 영점을 구하는 갈로아체 연산 회로(34)의 구성에 대해 설명된다. 갈로아체 연산 회로(34)는, 상술된 에러 위치 검출 다항식(에러 위치 탐색 다항식)이 갖는 선형성과 갈로아체가 갖는 선형 구조를 이용하여 회로 규모를 축소하도록 구성된다. 즉, 갈로아체 연산 회로(34)는, 에러 위치 검출 다항식(P(X))을 연산할 때에, 같은 선형 공간을 구성하는 항을 통합한 선형 함수에 대해, 후술되는 기저 계산부와 선형 전개부를 이용하여 연산을 실시하는 것으로, 회로 규모를 축소한다.Hereinafter, the configuration of the galloace calculation circuit 34 for obtaining the zero point of the galloche polynomial (error position detection polynomial) will be described. The galloche arithmetic circuit 34 is configured to reduce the circuit size by using the linearity of the error position detection polynomial (error position search polynomial) described above and the linear structure of the galloise. That is, when calculating the error position detection polynomial (P (X)), the galloise calculation circuit 34 performs a basis calculation unit and a linear expansion unit which will be described later with respect to a linear function incorporating terms constituting the same linear space. By performing the calculation, the circuit scale is reduced.

도 5a는, 갈로아체 연산 회로(34)의 구성예를 보여주며, 특히 m=3의 경우의 예를 보여준다. 갈로아체 연산 회로(34)는, 기저 계산부(330) 및 선형 전개부(340)를 포함한다. 기저 계산부(330)는 3개의 연산부들(R0, R1, R2)를 구비하고, 선형 전개부(340)는, 4개의 EXOR 소자를 구비한다. 도 5a에 나타내는 갈로아체 연산 회로(34)에서, 기저 계산부(330)는, 요소 x (m-1:0) 중 기저가 되는 요소에 대응하는 선형 함수(y)를 행렬 연산으로 계산하고, 선형 전개부(340)는, 기저 계산부(330)의 계산 결과를 전개(가산)하여, 기저를 제외한 다른 요소에 대응하는 선형 함수(y)의 출력을 획득한다. 도 5a에 도시된 갈로아체 연산 회로(34)의 동작은 후술 된다.5A shows an example of the configuration of the galloche arithmetic circuit 34, and particularly shows an example in the case of m = 3. The galloche calculation circuit 34 includes a base calculation unit 330 and a linear development unit 340. The base calculation unit 330 includes three calculation units R0, R1, and R2, and the linear development unit 340 includes four EXOR elements. In the galloche arithmetic circuit 34 shown in FIG. 5A, the base calculation unit 330 calculates a linear function y corresponding to the base element of the elements x (m−1: 0) by matrix operation, The linear development unit 340 develops (adds) the calculation result of the base calculation unit 330 to obtain an output of the linear function y corresponding to other elements except for the base. The operation of the galloche calculation circuit 34 shown in FIG. 5A will be described later.

이와 같이, 본 발명의 실시 예에 따른 갈로아체 연산 회로(34)는, 에러 위치 검출 다항식에 포함되는 선형 함수에 대해서, 기저 계산부(330)에 의해 기저들을 계산하고, 선형 전개부(340)는, 기저들의 계산 결과들의 단순 가산으로, 선형 함수의 X가 취할 수 있는 모든 값을 한 번에 출력한다. 즉, 갈로아체 연산 회로(34)는 X가 취할 수 있는 값의 갯수(2m-1)로부터 기저의 개수(m)를 감소시킨 갯수(2m-1-m)개에 대해, 행렬 연산부(EXOR 소자를 약 m(m-1)/2개 사용)을 단순 가산(EXOR 소자를 m-1개 사용) 유닛으로 변환하는 것으로, 회로 규모를 축소할 수가 있다.As described above, the Galoache calculation circuit 34 according to the embodiment of the present invention calculates the basis by the base calculation unit 330 for the linear function included in the error position detection polynomial, and the linear development unit 340 , A simple addition of the basis calculation results, outputs all the values that the linear function X can take at once. That is, the galloise calculation circuit 34 has a matrix computation unit (2 m- 1-m) for the number (2 m -1-m) of which the number (2 m -1) of the base is reduced from the number (2 m -1) of the values that X can take. The circuit scale can be reduced by converting about m (m-1) / 2 of EXOR elements into simple additions (using m-1 EXOR elements).

한편, 그림 5b는, 종래의 갈로아체 연산 회로(34')의 구성을 보여준다. 종래의 갈로아체 연산 회로(34')에서는, 각 요소 X의 각각에 대한 7개의 병렬 연산 회로(R0~R6)를 마련하고, 이 7개의 병렬 연산 회로(R0~R6)에 의해, 신호(y0, y1, y2,···, y6)를 동시에 연산한다.On the other hand, Fig. 5B shows the configuration of a conventional galloche calculation circuit 34 '. In the conventional galloche arithmetic circuit 34 ', seven parallel arithmetic circuits R0 to R6 for each of the elements X are provided, and these seven parallel arithmetic circuits R0 to R6 provide a signal y0. , y1, y2, ..., y6) are computed simultaneously.

즉, 4차의 에러 위치 검출 다항식 "P(X) = p4X4 + p3X3 + p2X2 + p1X1 + p0"의 경우, 종래의 갈로아체 연산 회로(34')는 도 6a에 도시된 바와 같이, 각 항(piX^i) 마다 연산을 실시한다. 이것에 대해서, 본 발명의 실시 예에 따른 갈로아체 연산 회로(34)는, 도 6b에 도시된 바와 같이, X에 대한 동일한 선형 구조를 갖는 항을 다항식(선형 함수 "Q(X) = p4X4 + p2X2 + p1X")에 통합한다.That is, in the case of the fourth-order error position detection polynomial "P (X) = p4X 4 + p3X 3 + p2X 2 + p1X 1 + p0", the conventional Galoache calculation circuit 34 'is shown in Fig. 6A. , Each operation (piX ^ i) is performed. On the other hand, the Galoache calculation circuit 34 according to the embodiment of the present invention, as shown in Figure 6b, polynomial (linear function "Q (X) = p4X 4 ) with terms having the same linear structure with respect to X + P2X 2 + p1X ").

그리고, 선형 함수 "Q(X) = p4X4 + p2X2 + p1X"에 대해, 도 5a에 도시된 갈로아체 연산 회로(34)에서 기저 계산부(330)와 선형 전개부(340)에 의해 연산을 실시하는 것으로, 에러 위치 검출 다항식(P(X))의 연산에서, 각 항을 계산하는 유닛의 수가 감소하고, 또한 각 유닛간의 출력을 가산하는 회로의 소자 수도 저감된다. 또한, Q(X) 이외의 항 "p3X^3", "P0"는, 갈로아체 연산 회로(34)내의 미도시된 회로에서 별도로 계산되고, 이후에, "Q(X) = p4X4 + p2X2 + p1X"의 연산 결과와 가산된다.Then, for the linear function "Q (X) = p4X 4 + p2X 2 + p1X", the calculation is performed by the base calculation unit 330 and the linear development unit 340 in the Galoache calculation circuit 34 shown in Fig. 5A. By doing so, in the calculation of the error position detection polynomial P (X), the number of units for calculating each term is reduced, and the number of elements in the circuit for adding the output between the units is also reduced. In addition, the terms "p3X ^ 3" and "P0" other than Q (X) are separately calculated by a circuit not shown in the galloche calculation circuit 34, and then "Q (X) = p4X 4 + p2X. 2 + p1X "and the calculation result are added.

도 7은, 도 5a에 도시된 갈로아체 연산 회로(34)의 동작을 설명하기 위한 도면이며, 변수(X)를 α의 베키승표현으로 도시한 그림이다. 도 7에 도시된 갈로아체 연산 회로(34)는 기저 계산부(330)에 입력되는 요소(원) X를 1, α, α^2로 하고, 기저 계산부(330)에 의해 X에 대한 선형 함수 Q(1), Q(α), Q(α^2)를 산출하고, 선형 전개부(340)에 의해 Q(α^3), Q(α^4), Q(α^5), Q(α^6)를 산출한다.FIG. 7 is a diagram for explaining the operation of the galloace calculation circuit 34 shown in FIG. 5A, and is a diagram showing the variable X in a Becky expression of α. The galoache arithmetic circuit 34 shown in FIG. 7 sets elements (circles) X inputted to the base calculation unit 330 as 1, α, and α ^ 2, and is linear to X by the base calculation unit 330. The functions Q (1), Q (α), and Q (α ^ 2) are calculated, and Q (α ^ 3), Q (α ^ 4), Q (α ^ 5), Q by the linear expansion unit 340. (α ^ 6) is calculated.

도 7에 도시된 바와 같이, 갈로아체 연산 회로(34)는, 기저 계산부(330)와 선형 전개부(340)로 구성되고, 기저 계산부(330)는 3개의 연산부(R0, R1, R2)를 갖고, 선형 전개부(340)는, 4개의 EXOR 소자(341, 342, 343, 344)를 갖는다.As shown in FIG. 7, the Galoache calculation circuit 34 includes a base calculation unit 330 and a linear development unit 340, and the base calculation unit 330 includes three calculation units R0, R1, and R2. In addition, the linear development part 340 has four EXOR elements 341, 342, 343, and 344.

기저 계산부(330)내의 연산부(R0)는, 요소 X (1=α^0)에 대응하는 에러 위치 검출 다항식 내의 선형 함수(Q(1) = p4 14 + p2 12 + p1 11)를 행렬 연산에 의해 산출한다. 연산부(R1)는 요소 X (=α^1=α)에 대한 선형 함수(Q(α)=p4α4 + p2α2 + p1α1)를 행렬 연산에 의해 산출한다. 연산부 R2는, 요소 X(=α2)에 대한 선형 함수(Q(α^2) = p4(α2)4 + p2(α2)2+p1α2)를 행렬 연산에 의해 산출한다.The calculating unit R0 in the base calculating unit 330 is a linear function Q (1) = p4 1 4 + p2 1 2 + p1 1 1 in the error position detection polynomial corresponding to the element X (1 = α ^ 0). Is calculated by matrix operation. The calculation unit R1 calculates a linear function Q (α) = p4α 4 + p2α 2 + p1α 1 for the element X (= α ^ 1 = α) by matrix operation. R2 is operating section, the element X (= α2) of the linear function (= Q (α ^ 2) p4 (α 2) 4 + p2 (α 2) 2 + p1α 2) is calculated by a matrix operation.

선형 전개부(340)는 기저 계산부(330)에 의해 산출된 연산 결과(Q(1), Q(α), Q(α^2))를 단순 가산으로 전개하여 다른 출력을 얻는다. 예를 들어, Q(α^3)ㅇ에서 도 4의 갈로아체(GF(2^3))의 표 2에 도시된 바와 같이, "α^3=α+1"이므로, 상술된 선형성에 의해 "Q(α^3)=Q(α)+Q(1)"로 전개된다. 따라서, Q(α^3)는, EXOR 소자(가산기)(341)에 의해, 기저 계산부(330)의 출력 Q(1)와 Q(α)를 가산하는 것으로써 획득될 수 있다.The linear development unit 340 expands the calculation results Q (1), Q (α), and Q (α ^ 2) calculated by the base calculation unit 330 by simple addition to obtain different outputs. For example, as shown in Table 2 of the gallosome (GF (2 ^ 3)) of FIG. 4 at Q (α ^ 3), since "α ^ 3 = α + 1", "Q" by the linearity mentioned above is used. (α ^ 3) = Q (α) + Q (1) ". Therefore, Q (α ^ 3) can be obtained by adding the output Q (1) and Q (α) of the base calculation unit 330 by the EXOR element (adder) 341.

또한, Q(α^4)에서, 도 4의 갈로아체(GF(2^3))의 표 2에 도시된 바와 같이, "α^4 = α2 + α"이므로, 상술된 선형성에 의해 "Q(α^4) = Q(α^2) + Q(α)"로 전개된다. 따라서, Q(α^4)는, EXOR 소자(342)에 의해, 기저 계산부(330)의 출력 Q(α)와 Q(α^2)를 가산하는 것으로써 획득될 수 있다.Further, in Q (α ^ 4), as shown in Table 2 of the gallosome (GF (2 ^ 3)) of FIG. 4, since "α ^ 4 = α 2 + α", the linearity described above is " Q (α ^ 4) = Q (α ^ 2) + Q (α) ". Therefore, Q (α ^ 4) can be obtained by adding the output Q (α) and Q (α ^ 2) of the base calculation unit 330 by the EXOR element 342.

Q(α^5)에서, "α52+α+1"이며, "α42+α"이므로, "α54+1"이다. 따라서, Q(α^5)는 EXOR 소자(343)에 의해, 기저 계산부(330)의 출력 Q(1)과 EXOR 소자(342)의 출력 Q(α^4)를 가산함으로써 획득될 수 있다. 마찬가지로, Q(α^6)는 "α62+1"이므로, Q(α^6)는, EXOR 소자(344)에 의해 기저 계산부(330)의 출력 Q(1)와 Q(α^2)를 가산하는 것에 의해 획득될 수 있다.In Q (α ^ 5), "α 5 = α 2 + α + 1" and "α 4 = α 2 + α", and therefore "α 5 = α 4 +1". Therefore, Q (α ^ 5) can be obtained by adding the output Q (1) of the base calculation unit 330 and the output Q (α ^ 4) of the EXOR element 342 by the EXOR element 343. . Similarly, since Q (α ^ 6) is "α 6 = α 2 +1", Q (α ^ 6) is the output Q (1) and Q (α) of the base calculation unit 330 by the EXOR element 344. Can be obtained by adding ^ 2).

이와 같이, 갈로아체(GF(2^3))의 경우, 기저 계산부(330)는 3개의 선형 독립인 원들(1,α^1,α^2)에 대해, 이 원들에 대응하는 3개의 선형 함수 Q(1), Q(α^1), Q(α^2)를 계산한다. 그리고, 선형 전개부(340)는 선형 함수 Q(α^3), Q(α^4), Q(α^5), Q(α^6)를 기저 계산부(330)의 Q(1), Q(α^1), Q(α^2)의 연산 결과를 기반으로, EXOR 소자로 가산하여 계산할 수 있다. 이와 같이, 갈로아체 연산 회로(34)에서는, 갈로아체 요소(X)가 취할 수 있는 값의 전체 갯수 7로부터 기저들의 갯수 3을 뺀 4개의 에러 위치 검출 다항식(더 상세하게는, 에러 위치 검출 다항식내의 선형 함수)에 대해, 행렬 연산을 단순 가산으로 변환하는 것으로, 회로 규모를 축소한다.As such, in the case of gallosome GF (2 ^ 3), the basis calculation unit 330 is configured to generate three linearly independent circles (1, α ^ 1, α ^ 2) corresponding to these circles. Calculate the linear functions Q (1), Q (α ^ 1) and Q (α ^ 2). In addition, the linear development unit 340 uses the linear functions Q (α ^ 3), Q (α ^ 4), Q (α ^ 5), and Q (α ^ 6) to Q (1) of the base calculation unit 330, Based on the calculation result of Q (α ^ 1) and Q (α ^ 2), it can be calculated by adding to an EXOR element. As such, in the galloise calculation circuit 34, four error position detection polynomials (more specifically, the error position detection polynomial) is obtained by subtracting the number of bases 3 from the total number 7 of values that the galloise element X can take. Linear function), the circuit scale is reduced by converting the matrix operation to simple addition.

또한, 도 7에 도시된 예에서, 3개의 선형 독립인 기저들로서 도 4의 표 2에 도시된 벡터 표현(001, 010, 100)의 기저들이 이용되고 있다. 그러나, 이와 같이 하나의 비트만이 1인 벡터를 기저로 선택할 필요는 없다. 선형 독립 벡터의 조건을 만족한다면, 어떠한 벡터들도 기저들로 선택될 수 있다.In addition, in the example shown in FIG. 7, the bases of the vector representations 001, 010, 100 shown in Table 2 of FIG. 4 are used as three linear independent bases. However, it is not necessary to select a vector having only one bit as the basis. Any vectors can be selected as basis if the condition of the linear independent vector is satisfied.

이와 같이, 본 발명의 실시 예에 따른 갈로아체 연산 회로(34)는, 에러 위치 검출 다항식에 대해 동일한 선형 공간을 구성하는 항들을 선형 함수로서 통합하고, 통합된한 선형 함수에 대해 기저 계산부(330) 및 선형 전개부(340)에 의해 연산을 실시한다. 이에 따라, 갈로아체 연산 회로(34)는, 에러 위치 검출 다항식을 연산할 때에 필요한 연산 소자의 규모를 큰폭으로 감소시킬 수가 있다. 또한, 에러 위치 검출 다항식의 각 항을 계산하는 유닛들의 수가 감소되어, 각 유닛들 간의 출력을 가산하는 회로의 소자 수도 감소된다.
As described above, the Galoache calculation circuit 34 according to an embodiment of the present invention integrates terms constituting the same linear space with respect to the error position detection polynomial as a linear function, and the basis calculation unit 330 for the integrated linear function. And linear development unit 340. As a result, the galloise calculation circuit 34 can greatly reduce the scale of the calculation element required when calculating the error position detection polynomial. In addition, the number of units that calculate each term of the error position detection polynomial is reduced, so that the number of elements in the circuit that adds the output between each unit is reduced.

에러 위치 검출 다항식이 X2와 X3의 선형 함수를 포함한 경우Error Position Detection Polynomial Contains Linear Functions of X2 and X3

상술된 실시 예에서, X에 대한 선형 함수(Q(X) = p1X4 + p2x2 + p1X)를 계산하는 갈로아체 연산 회로(34)가 설명되었다. 이하에서, 에러 위치 검출 다항식(Λ(X))이, X에 대한 선형 함수와 X^3에 대한 선형 함수를 포함한 경우의 예가 설명된다.In the above-described embodiment, a galloise calculation circuit 34 for calculating a linear function for X (Q (X) = p1X 4 + p2x 2 + p1X) has been described. In the following, an example is described where the error position detection polynomial Λ (X) includes a linear function for X and a linear function for X ^ 3.

예를 들어, 에러 위치 검출 다항식(Λ(X))이, "P(X) = σ1X + σ2X2 + σ4X4 + ··· + σ3X3 + σ6X6 + σ12X12 + ···"으로 표현되는 경우, X에 선형 함수(M(X) = σ1X + σ2X2 + σ4X4 + ···)를, 그리고 X3에 선형 함수(N(X) = σ3X3 + σ6X6 + σ12X12 + ···)를 각각 나누어 통합하여, 각각의 선형 함수에 대해 개별적으로 연산을 실시할 수 있다.For example, the error position detection polynomial (Λ (X)) is expressed by "P (X) = σ1X + σ2X 2 + σ4X 4 + ... + σ3X 3 + σ6X 6 + σ12X 12 + ... In this case, the linear function (M (X) = σ1X + σ2X 2 + σ4X 4 + ...) in X and the linear function (N (X) = σ3X 3 + σ6X 6 + σ12X 12 + 12 ) in X3 By dividing and integrating each, we can perform the calculation separately for each linear function.

예를 들어, 도 8은 X에 대한 선형항을 계산하는 회로의 예를 보여준다. 도 8에 도시된 예에서, 도 5에 도시된 회로와 마찬가지로, 기저 계산부(400)는 3개의 연산부들(401, 402, 403)을 가지며, 선형 전개부(410)는 4개의 EXOR 소자들(411, 412, 413, 414)을 갖는다.For example, FIG. 8 shows an example of a circuit that calculates a linear term for X. In the example shown in FIG. 8, similar to the circuit shown in FIG. 5, the base calculation unit 400 has three calculation units 401, 402, and 403, and the linear deployment unit 410 has four EXOR elements ( 411, 412, 413, 414.

기저 계산부(400)는 연산부(401)를 이용하여 M(α^0)를 산출하고, 연산부(402)를 이용하여 M(α^1)를 산출하고, 연산부(403)를 이용하여 M(α^2)를 산출한다. 즉, 연산부(401)는 요소 X(1=α^0)에 대한 에러 위치 검출 다항식(M(X) = σ1 1 + σ2 12 + σ4 14 + ···)을 행렬 연산에 의해 산출한다. 연산부(402)는 요소 X(=α^1=α)에 대한 에러 위치 검출 다항식(M(X) = σ1α + σ2α2 + σ4α4+···)을 행렬 연산에 의해 산출한다. 또한, 연산부(403)는 요소 X(=α^2)에 대한 에러 위치 검출 다항식(M(X) = σ1(α2) + σ2(α2)2 + σ4(α2)4 + ···)을 행렬 연산에 의해 산출한다.The basis calculation unit 400 calculates M (α ^ 0) using the calculation unit 401, calculates M (α ^ 1) using the calculation unit 402, and uses M ( α ^ 2) is calculated. That is, the calculation unit 401 calculates the error position detection polynomial M (X) = sigma 1 1 + sigma 2 1 2 + sigma 4 1 4 + ... for the element X (1 = α ^ 0) by matrix operation. . The calculation unit 402 calculates the error position detection polynomial M (X) = sigma 1α + sigma 2α 2 + sigma 4α 4 + ... for element X (= alpha ^ 1 = alpha) by matrix operation. In addition, the calculation unit 403 determines the error position detection polynomial (M (X) = sigma 1 (α 2 ) + sigma 2 (α 2 ) 2 + sigma 42 ) 4 + ... for element X (= α ^ 2). ) Is calculated by matrix operation.

그리고, 선형 전개부(410)는 EXOR 소자들(411, 412, 413, 414)을 이용하여, 기저 계산부(400)에 의해 산출된 연산 결과를 단순 가산으로 전개하여, M(α^3), M(α^4), M(α^5), M(α^6)을 산출한다.Then, the linear development unit 410 expands the calculation result calculated by the base calculation unit 400 by simple addition using the EXOR elements 411, 412, 413, and 414, M (α ^ 3), M (α ^ 4), M (α ^ 5) and M (α ^ 6) are calculated.

예를 들어, M(α^3)에서, 도 4의 갈로아체(GF(2^3))의 표 2에 도시된 바와 같이, "α^3=α+1"이므로, 상술한 선형성에 의해, "M(α^3) = M(α)+M(α^0=1)"로 전개된다. 따라서, M(α^3)는, EXOR 소자(가산기)(411)을 이용하여 기저 계산부(400)의 출력 M(α^0=1)와 M(α)를 가산하는 것으로써 획득될 수 있다.For example, in M (α ^ 3), as shown in Table 2 of the gallosome (GF (2 ^ 3)) of FIG. 4, since "α ^ 3 = α + 1", the linearity described above gives " M (α ^ 3) = M (α) + M (α ^ 0 = 1) ". Therefore, M (α ^ 3) can be obtained by adding the output M (α ^ 0 = 1) and M (α) of the base calculation unit 400 using the EXOR element (adder) 411. have.

M(α^4)에서, 도 4의 갈로아체(GF(2^3))의 표 2에 도시된 바와 같이, "α42+α"이므로, 상술된 선형성에 의해 "M(α^4) = M(α^2) + M(α)"로 전개된다. 따라서, M(α^4)는, EXOR 소자(412)를 이용하여, 기저 계산부(400)의 출력 M(α)와 M(α2)를 가산하는 것으로써 획득될 수 있다.In M (α ^ 4), as shown in Table 2 of the gallosome (GF (2 ^ 3)) of FIG. 4 , since "α 4 = α 2 + α", the linearity described above is "M (α ^). 4) = M (α ^ 2) + M (α) ". Therefore, M (α ^ 4) can be obtained by adding the output M (α) and M (α2) of the base calculation unit 400 using the EXOR element 412.

M(α^5)에서 "α52+α+1"이고, "α42+α"이므로, "α54+1"이 된다. 따라서, M(α^5)는 EXOR 소자(413)를 이용하여 기저 계산부(400)의 출력 M(α^0=1)과 EXOR 소자(342)의 출력 M(α^4)을 가산함으로써 획득될 수 있다.Because "α 5 = α 2 + α + 1" , and, "α 4 = α 2 + α" in the M (α ^ 5), is the "α 5 = α 4 +1" . Therefore, M (α ^ 5) adds the output M (α ^ 0 = 1) of the base calculation unit 400 and the output M (α ^ 4) of the EXOR element 342 by using the EXOR element 413. Can be obtained.

마찬가지로, M(α^6)에서, "α62+1"이므로, M(α^6)는, EXOR 소자(414)를 이용하여 기저 계산부(400)의 출력 M(α^0=1) 과 M(α^2)를 가산함으로써 획득될 수 있다.Similarly, in M (α ^ 6), since "α 6 = α 2 +1", M (α ^ 6) uses the EXOR element 414 to output M (α ^ 0 =) of the base calculation unit 400. Can be obtained by adding 1) and M (α ^ 2).

따라서, 갈로아체 연산 회로(34)에서, 선형 함수(σ1X+σ2X2+σ4X4+···)에 대한 연산 회로의 회로 규모가 축소될 수가 있다.Therefore, in the galloise arithmetic circuit 34, the circuit scale of the arithmetic circuit with respect to the linear function (sigma 1X + sigma 2X 2 + sigma 4X 4 + ...) can be reduced.

다음으로, X^3에 대한 함수(N(X)=σ3X3 + σ6X6 + σ12X12+···)의 연산에 대해 설명된다. 도 9는 도 4에 도시된 원시 다항식을 "X3+X+1"으로 했을 때의 갈로아체(GF(2^3))의 원(표 2에 도시된는 원)을 3승 한 것을 표 3으로 도시한다. 이 경우, 도 9에서 점선으로 둘러싸인 부분(1, α^3, α^6)이 기저이고, 그리고 그 외의 원들(α^9, α^12, α^15, α^18)이 기저들의 조합으로 표시될 수 있다.Next, the operation of the function (N (X) = sigma 3X 3 + sigma 6X 6 + sigma 12X 12 + ...) for X ^ 3 will be described. FIG. 9 shows in Table 3 the trigonometry of the circle (circle shown in Table 2) of galloache (GF (2 ^ 3)) when the primitive polynomial shown in FIG. 4 is " X 3 + X + 1 " . In this case, the portion 1, α ^ 3, α ^ 6 enclosed by the dotted line in Fig. 9 is the basis, and the other circles α ^ 9, α ^ 12, α ^ 15, α ^ 18 are combinations of the basis. It may be indicated by.

따라서, 본 발명의 실시 예에서는, X^3, X^6, X^12,···의 항을 정리한 선형함수(N(X)=σ3X3+σ6X6+σ12X12+···)는, 도 10에 도시된 바와 같이, 기저 계산부(500) 및 선형 전개부(510)로 나누어 연산된다. 단, 선형 전개부(510)에 대해 기저를 전개하는 회로 패턴은 도 8과 다르다. 이것은 N(X)에 대해, Y=X^3일 때, "N(Y)=σ3Y+σ6Y2+σ12Y4+···"으로 선형 함수가 되어, Y가 가질 수 있는 값이 한층 더 도 9의 표 3에 도시된 기저들의 가산으로 표현될 수 있기 때문이다. 이 예에서, N(X)를 X의 비선형 함수가 아니고, X^3을 변수로 하는 선형 함수로 간주하여 기저들의 전개에 의한 계산을 실시하므로, 도 8에 도시된 회로와 동등한 회로 감소 효과가 획득된다.Therefore, in the embodiment of the present invention, the linear function (N (X) = σ 3X 3 + sigma 6X 6 + sigma 12X 12 + ...) that summarizes the terms X ^ 3, X ^ 6, X ^ 12, ... As shown in FIG. 10, the calculation is performed by dividing the basis calculation unit 500 and the linear development unit 510. However, the circuit pattern which expands a base with respect to the linear development part 510 is different from FIG. This is a linear function of "N (Y) = σ3Y + sigma 6Y 2 + sigma 12Y 4 + ..." with respect to N (X) when Y = X ^ 3. This is because the sum of the bases shown in Fig. 3 can be expressed. In this example, since N (X) is not a nonlinear function of X but a linear function whose X ^ 3 is a variable, calculation is performed by the expansion of the bases, so that a circuit reduction effect equivalent to the circuit shown in FIG. Obtained.

도 10에 도시된 예에서, 다항식(N(X)=σ1X3+σ6X6+σ12X12+···)에 대해, 기저 계산부(500)내의 연산부(501)를 이용하여 N(α^0)가 행렬 연산으로 산출되고, 연산부(502)를 이용하여 N(α^3)가 행렬 연산으로 산출되고, 연산부(503)를 이용하여 N(α^6)가 행렬 연산으로 산출된다. 그리고, 선형 전개부(510)는 기저 계산부(500)에 의해 산출된 기저들의 연산 결과들(N(α^0), N(α^3), N(α^6))을 기반으로, EXOR소자들(511, 512, 513, 514)을 이용하여 N(α^9), N(α^12), N(α^15), N(α^18),···를 산출한다.In the example shown in Fig. 10, for the polynomial (N (X) = sigma 1X 3 + sigma 6X 6 + sigma 12X 12 + ...), N (α ^ 0) is calculated using the calculation unit 501 in the base calculation unit 500. It is computed by matrix operation, N ((alpha) ^ 3) is calculated by matrix operation using the calculating part 502, and N ((alpha) ^ 6) is calculated by matrix operation using the calculating part 503. FIG. And, the linear development unit 510 is based on the calculation results N (α ^ 0), N (α ^ 3), N (α ^ 6) of the basis calculated by the base calculation unit 500, EXOR The elements 511, 512, 513, and 514 are used to calculate N (α ^ 9), N (α ^ 12), N (α ^ 15), N (α ^ 18),...

예를 들어, N(α^9)에서, 도 9의 표 3에 도시된 바와 같이, "α96+1"이므로, 상술된 선형성에 따라, "N(α^9) = N(α^6) + N(α^0=1)"로 전개될 수 있다. 따라서, N(α^9)는, EXOR 소자(가산기)(511)를 이용하여 기저 계산부(500)의 출력 N(α^0=1)와 N(α6)를 가산하는 것으로써 획득될 수 있다.For example, in N (α ^ 9), as shown in Table 3 of FIG. 9, since "α 9 = α 6 +1", according to the linearity described above, "N (α ^ 9) = N (α) ^ 6) + N (α ^ 0 = 1) ". Therefore, N (α ^ 9) can be obtained by adding the outputs N (α ^ 0 = 1) and N (α6) of the base calculation unit 500 using the EXOR element (adder) 511. have.

N(α^12)에서, 도 9의 표 3에 도시된 바와 같이, "α12 = α6 + α3 + 1"이고, "α9 = α6 + 1"이므로, "α12 = α9 + α3"이다. 따라서, 상술된 선형성에 따라, "N(α^12) = N(α^9) + N(α^3)"로 전개될 수 있다. N(α^12)는 EXOR 소자(512)를 이용하여 기저 계산부(500)의 출력 N(α^3)과 EXOR 소자(512)의 출력 N(α^9)를 가산하는 것으로써 획득될 수 있다.In N (α ^ 12), as shown in Table 3 of FIG. 9, since "α 12 = α 6 + α 3 + 1" and "α 9 = α 6 + 1", "α 12 = α 9 + Α 3 ". Thus, according to the linearity described above, it can be developed as "N (α ^ 12) = N (α ^ 9) + N (α ^ 3)". N (α ^ 12) is obtained by adding the output N (α ^ 3) of the base calculation unit 500 and the output N (α ^ 9) of the EXOR element 512 using the EXOR element 512. Can be.

N(α^15)에서, "α15 = α3+1"이다. 따라서, 상술된 선형성에 따라, N(α^15)는 EXOR 소자(513)을 이용하여 기저 계산부(500)의 출력 N(α^0=1)과 N(α^3)를 가산하는 것으로써 획득될 수 있다.In N (α ^ 15), "α 15 = α 3 +1". Therefore, according to the linearity described above, N (α ^ 15) adds the outputs N (α ^ 0 = 1) and N (α ^ 3) of the base calculator 500 using the EXOR element 513. Can be obtained.

마찬가지로, M(α^18)에서, "α18 = α6 + α3"이므로, N(α^18)는 EXOR 소자(514)를 이용하여 기저 계산부(500)의 출력 N(α^6)와 N(α^3)를 가산하는 것에 따라 획득될 수 있다.Similarly, in M (α ^ 18), since "α 18 = α 6 + α 3 ", N (α ^ 18) is the output N (α ^ 6) of the base calculation unit 500 using the EXOR element 514. ) And N (α ^ 3) can be obtained.

이로 인해, 갈로아체 연산 회로(34)에서, 선형 함수(N(X) = σ3X3 + σ6X6 + σ12X12 + ···)에 대해 연산을 수행할 때의 회로 규모가 감소될 수 있다.For this reason, the circuit scale can be reduced when in the Galois field operation circuit 34 performs an operation on a linear function (N (X) = 3 + σ3X σ6X σ12X 6 + 12 + ···).

상술된 바와 같이, 본 발명의 실시 예에 따른 에러 검출 정정 회로(13)에서, 갈로아체 연산 회로(34)는, 기저를 계산하는 기저 계산부의 회로와 기저를 단순 가산으로 전개하는 선형 전개부의 회로의 2가지를 갖는다.As described above, in the error detection correcting circuit 13 according to the embodiment of the present invention, the Galoache calculation circuit 34 is a circuit of a base calculation unit that calculates a basis and a circuit of a linear development unit that expands the base by simple addition. It has two things.

갈로아체 연산 회로(34)에서, 갈로아체 다항식(P(X))의 계수(pi(i=0, 1, 2,···))가 확정한 후, 에러 위치 검출 다항식(P(X))에 포함되는 각 선형 함수에 대해 기저 계산부(330)는 기저들을 계산하고, 선형 전개부(340)는 이러한 기저들의 단순 가산으로 P(X)의 X가 취할 수 있는 모든 값을 한 번에 출력할 수가 있다. 따라서, 가로아체 연산 회로(34)의 회로 규모가 감소된다.In the galloche arithmetic circuit 34, after the coefficient (pi (i = 0, 1, 2, ...)) of the galloche polynomial P (X) is determined, the error position detection polynomial P (X) For each linear function included in the), the base calculation unit 330 calculates the bases, and the linear development unit 340 outputs all the values that X of P (X) can take at a time by simple addition of these bases. You can do it. Thus, the circuit scale of the truncated arithmetic circuit 34 is reduced.

도 8 및 도 10에 도시된 것과 같이, 동일한 선형 구조를 가지는 항을 통합하여 계산하는 것으로 다항식의 항을 계산하는 유닛들의 수가 감소되고, 또한 각 유닛 간 출력을 가산하는 회로의 소자수도 감소된다.
As shown in Figs. 8 and 10, integrating and calculating terms having the same linear structure reduces the number of units that calculate the terms of the polynomial, and also reduces the number of elements in the circuit that adds the output between each unit.

본 실시 형태에 의한 소자수의 삭감 효과의 구체적인 예Concrete example of reduction effect of the number of elements by this embodiment

다음으로, 계수(pi(i=0, 1, 2,···)), 변수(X)를 갈로아체(GF(2^m))의 요소로 하는 m차 다항식(P(X))의 영점을 구하는 회로에서 사용되는 소자수를 계산하여, 종래 기술의 경우(도 5b의 갈로아체 연산 회로(34')의 경우)와 본 발명의 실시 예에 따른 갈로아체 연산 회로(34)의 경우가 비교된다.Next, the coefficient (pi (i = 0, 1, 2, ...)) and the m-th order polynomial (P (X)) whose variable (X) is the element of galloche (GF (2 ^ m)) By counting the number of elements used in the zero-determining circuit, the case of the prior art (in the case of the galloche arithmetic circuit 34 'of FIG. Are compared.

종래 기술의 경우, EXOR 소자를 약 m(m-1)/2개 필요로 하는 행렬 연산 회로가 2m-1개 필요하고, 이것이 다항식의 항 수에 해당하는 n+1개 필요하다. 또한, 각 항을 가산하기 위한 EXOR 소자는 m개를 필요로 하는 회로가 2m-1개 필요하고, 이것이 n개 필요하다. 따라서, 회로에 필요한 총 소자수는, (n+1)×(2m-1)×m(m-1)/2+n×(2m-1)×m 이다.In the prior art, 2 m-1 matrix arithmetic circuits requiring about m (m-1) / 2 of EXOR elements are required, and n + 1 corresponding to the number of terms of the polynomial. Moreover, the EXOR element for adding each term requires 2 m -1 circuits which require m pieces, and this requires n pieces. Therefore, the total number of elements required for the circuit is (n + 1) × (2 m −1) × m (m −1) / 2 + n × (2 m −1) × m.

본 발명의 실시 예에 따른 갈로아체 연산 회로(34)는 EXOR 소자를 약 m(m-1)/2개 필요로하는 행렬 연산 회로는 m개만 필요하고, 기저 계산부의 연산 결과를 전개하여 그 외의 값을 결정하는 부분은, EXOR 소자 m개가 "2m-1-m"개 필요하다. "X^2, X^4, X^8, X^16,···" 등 X를 2의 베키승회만큼 곱하는 함수는 갈로아체상의 선형 함수이고, 선형 함수 끼리의 선형 결합도 또 선형 함수이므로, 이러한 항은 통합 가능하다. 마찬가지로, "X^3, X^6, X^12,···", "X^5, X^10, X^20,···" 등도 통합 가능하다.In the Galoache calculation circuit 34 according to the embodiment of the present invention, only m matrix calculation circuits requiring about m (m-1) / 2 EXOR elements are needed. The part which determines a value requires "2 m -1-m" m EXOR elements. The function of multiplying X by two Becky times, such as "X ^ 2, X ^ 4, X ^ 8, X ^ 16, ··", is a linear function on Galoache, and the linear combination of linear functions However, these terms can be integrated. Similarly, "X ^ 3, X ^ 6, X ^ 12, ...", "X ^ 5, X ^ 10, X ^ 20, ...", etc. can also be integrated.

이에 따라, 통합 후의 선형 함수의 개수는, 다항식의 차수 n 이하인 홀수의 개수와 동일하다. 정수항(p0)도 고려하면, 통합 후에 필요한 유닛의 수는, n=0 일때 1개 (0), n=1 일때 2개 (0, 1), n=2 일때 2개 (0, 1), n=3 일때 3개 (0, 1, 3), n=4 일때 3개 (0, 1, 3), n=5 일때 4개 (0, 1, 3, 5)로 증가한다.Accordingly, the number of linear functions after integration is equal to the number of odd numbers less than or equal to the order n of the polynomial. Considering the integer term (p0), the number of units required after consolidation is 10 (0) when n = 0, 2 (0, 1) when n = 1, and 2 (0, 1) when n = 2. If n = 3, 3 (0, 1, 3), n = 4, 3 (0, 1, 3), n = 5, 4 (0, 1, 3, 5).

유닛수는 n이 짝수일 때 n/2+1, n이 홀수일 때(n+1)/2+1이다. 기저 계산 부분은 통합 대상외인 것을 고려하면, 회로에 필요한 소자수는 n가 짝수일 때 수학식 8로, 그리고 n이 홀수일 때 수학식 9로 나타난다.The number of units is n / 2 + 1 when n is even and n + 1 when n is odd (n + 1) / 2 + 1. Considering that the basis calculation part is not integrated, the number of elements required for the circuit is represented by Equation 8 when n is even and by Equation 9 when n is odd.

Figure 112013031596956-pat00008
Figure 112013031596956-pat00008

Figure 112013031596956-pat00009
Figure 112013031596956-pat00009

도 11a에서, 다항식의 차수 n=4인 경우, 종래 기술(도 5b에 도시된 갈로아체 연산 회로(34'))과 본 발명의 실시 예의 총 소자수를 비교한 예가 도시된다.In Fig. 11A, when the order n = 4 of the polynomial, an example is shown in which the total number of elements of the prior art (Galoche arithmetic circuit 34 'shown in Fig. 5B) is compared with the embodiment of the present invention.

도 11b에서, n=8인 경우에, 종래 기술(도 5b에 도시된 갈로아체 연산 회로(34'))와 본 발명의 실시 예의 총 소자수를 비교한 예가 도시된다. 가로아체를 특징지우는 파라미터 m의 증가에 따라, 본 발명의 실시 예는 종래의 경우보다 회로규모의 증가를 억제한다.In Fig. 11B, when n = 8, an example is shown in which the total number of elements of the prior art (Galoche arithmetic circuit 34 'shown in Fig. 5B) is compared with the embodiment of the present invention. In accordance with an increase in the parameter m, which characterizes the crossharrow, embodiments of the present invention suppress an increase in circuit scale than in the prior art.

다음으로, 회로 규모의 축소 이외의 유효성에 대해 설명된다. 도 5a에 도시된 선형 전개부(340)의 회로 구조는 취급하는 데이터의 각 비트에 대해 독립인 형태이다. 즉, 선형 전개부(340)는 1 비트에 대응하는 회로를 m개 구비하는 것으로 구현될 수 있다. 이로 인해, 회로의 레이아웃 면적의 축소가 용이해진다.Next, the effectiveness other than the reduction of the circuit scale will be described. The circuit structure of the linear development portion 340 shown in FIG. 5A is independent of each bit of data to be handled. That is, the linear development unit 340 may be implemented with m circuits corresponding to 1 bit. This facilitates the reduction of the layout area of the circuit.

또한, 1 비트에 대응하는 선형 전개 부분은 "m입력/2m-1 출력"의 회로이다. m비트들에 대응하는 부분은 "m2입력/2의 2m-1승 출력"의 회로이며, 모든 입출력 패턴을 현실적인 시간에 검증하는 것이 곤란하다. 한편, 1 비트분을 유닛화한 것은 "m입력/2m-1 출력"의 회로이므로, 현실적인 시간에 모든 입출력 패턴의 검증이 가능하다. 이 유닛으로 모든 입출력 패턴을 검증하고, 상위 계층의 접속을 검증하는 것으로, 보다 정확한 검증이 실시될 수 있다. 또한, 선형 전개부(340)을 m개의 유닛들로 나눌 수 있으므로, 1 유니트로부터의 출력을 보관 유지하고, m회의 클럭으로 최종 결과를 얻는 구성이 가능하다. 이 경우, 영점을 구할때까지, m회의 클락이 필요하지만, 회로 규모를 본 발명의 실시 예의 약 1/m로 축소하는 것이 가능하다.In addition, the linear expansion part corresponding to 1 bit is a circuit of "m input / 2m-1 output." The portion corresponding to the m bits is a circuit of " m 2 input / 2 2 m −1 power output &quot;, and it is difficult to verify all the input / output patterns in a realistic time. On the other hand, since the unit of one bit is a circuit of "m input / 2m-1 output", all input / output patterns can be verified in a realistic time. By verifying all the input / output patterns with this unit and verifying the connection of the upper layer, more accurate verification can be performed. In addition, since the linear deployment unit 340 can be divided into m units, it is possible to maintain the output from one unit and obtain a final result with m clocks. In this case, m clocks are required until zero is obtained, but it is possible to reduce the circuit scale to about 1 / m in the embodiment of the present invention.

본 발명의 실시 예들에 대해 설명되었지만, 여기에서, 본 발명과 상술된 실시 예들과의 대응관계에 대해 보충 설명된다. 즉, 상기 실시 예들에서, 본 발명의 갈로아체 연산 회로는 도 2에 도시된 치엔 탐색부(33)내의 갈로아체 연산 회로(34)에 대응하고, 본 발명의 메모리 장치는 도 1에 도시된 불휘발성 반도체 기억장치(NAND 플래시 메모리 EEPROM)(10)에 대응한다. 본 발명의 기저 계산부는, 예를 들면, 도 5에 도시된 기저 계산부(330)에 대응하고해, 본 발명의 선형 전개부는, 예를 들면, 선형 전개부(340)이 대응한다.While the embodiments of the present invention have been described, the following will further explain the correspondence between the present invention and the above-described embodiments. That is, in the above embodiments, the galloache arithmetic circuit of the present invention corresponds to the galloache arithmetic circuit 34 in the Chien search unit 33 shown in FIG. 2, and the memory device of the present invention is shown in FIG. It corresponds to a volatile semiconductor memory device (NAND flash memory EEPROM) 10. The base calculation unit of the present invention corresponds to the base calculation unit 330 shown in FIG. 5, for example, and the linear development unit of the present invention corresponds to, for example, the linear development unit 340.

본 발명의 에러 검출 정정 회로는, 도 2에 도시된 에러 검출 정정 회로(13)에 대응하고, 본 발명의 신드롬 계산부는 도 2에 도시된 디코더부(30)내의 신드롬계산부(31)에 대응하고, 본 발명의 에러 계수 계산부는 에러 계수 계산부(32)에 대응하고, 본 발명의 치엔 탐색부는 치엔 탐색부(33)에 대응하고, 본 발명의 에러 정정부는 에러 정정부(35)에 대응한다.The error detection correction circuit of the present invention corresponds to the error detection correction circuit 13 shown in FIG. 2, and the syndrome calculation unit of the present invention corresponds to the syndrome calculation unit 31 in the decoder unit 30 shown in FIG. 2. The error coefficient calculation unit of the present invention corresponds to the error coefficient calculation unit 32, the Chien search unit of the present invention corresponds to the Chien search unit 33, and the error correction unit of the present invention corresponds to the error correction unit 35. do.

상술된 실시 예들에서, 갈로아체 연산 회로(34)는, 갈로아체(GF(2^m)) 상(m은 정수)의 m비트에 의해 벡터 표현되는(2m-1) 개의 원을 에러 위치 검출 다항식에 대입하는 갈로아체 연산 회로이며, (2m-1) 개의 원으로부터, 선형 독립인 m개의 원을 계산하는 기저 계산부(330), (2m-1) 개의 원으로부터 m개의 원을 제외한(2m-1-m) 개의 원을 각각 상기 m개의 원의 조합으로 구하는 선형 전개부(340)를 구비한다.In the above-described embodiments, the galloache arithmetic circuit 34 is a vector of (2 m -1) circles represented by m bits on the galloise (GF (2 ^ m)) where m is an integer. Galoache arithmetic circuit substituted in the detection polynomial, and m circles are calculated from (2 m -1) circles from a base calculation unit 330 or m (2 m -1) circles. The linear development part 340 which obtains the excluded ( 2m -1m) circle | round | yen by the combination of said m circles, respectively.

갈로아체 연산 회로(34)는 기저 계산부(330) 및 선형 전개부(340)로 구성된다. 기저 계산부(330)는 갈로아체(GF(2^m)) 상의 선형 독립인 m개의 원에 대해 에러 위치 검출 다항식을 계산한다. 또, 선형 독립인 m개의 원을 제외한 나머지의(2m-1-m) 개의 원에 대응하는 에러 위치 검출 다항식의 계산 시에, 선형 전개부 (340) 및 기저 계산부(330)의 연산 결과를 가산해 계산이 수행된다. 예를 들면, 갈로아체(GF(2^3))의 경우, 에러 위치 검출 다항식(P(X) = p4X4 + p3X3 + p2X2 + p1X1 + p0)의 X의 선형 함수, 예를 들면 "Q(X) = p4X4 + p2X2 + p1X"에 대해, 기저 계산부(330)는 3개의 선형 독립인 원들(1,α^1,α^2)에서 Q(1), Q(α^1), Q(α^2)를 계산한다. 그리고, 선형 전개부(340)는, 원들(α^3,α^4,α^5,α^6)에 대한 선형 함수 Q(α^3), Q(α^4), Q(α^5), Q(α^6)에 대해, Q(1), Q(α^1), Q(α^2)의 연산 결과를 기반으로, 연산 결과 Q(1), Q(α^1), Q(α^2)를 EXOR 소자(341, 342, 343)를 이용하여 가산하여 계산한다.The galloche calculation circuit 34 is composed of a basis calculation unit 330 and a linear development unit 340. The basis calculation unit 330 calculates an error position detection polynomial for m circles that are linearly independent on galloise GF (2 ^ m). In addition, the calculation result of the linear expansion part 340 and the base calculation part 330 is computed at the time of the calculation of the error position detection polynomial corresponding to the remaining (2 m -1-m) circle except m linearly independent circles. Addition calculation is performed. For example, in the case of gallosomes (GF (2 ^ 3)), the linear function of X of the error position detection polynomial (P (X) = p4X 4 + p3X 3 + p2X 2 + p1X 1 + p0), for example For "Q (X) = p4X 4 + p2X 2 + p1X", the basis calculation unit 330 is Q (1), Q (α) in three linearly independent circles (1, alpha ^ 1, alpha ^ 2). ^ 1), Q (α ^ 2) is calculated. In addition, the linear expansion unit 340 includes the linear functions Q (α ^ 3), Q (α ^ 4), and Q (α ^ 5) for the circles α ^ 3, α ^ 4, α ^ 5, α ^ 6. ), For Q (α ^ 6), based on the calculation result of Q (1), Q (α ^ 1), Q (α ^ 2), the calculation result Q (1), Q (α ^ 1), Q (α ^ 2) is added and calculated using the EXOR elements 341, 342, and 343.

따라서, 갈로아체 연산 회로(34)는, 종래의 행렬 연산을 단순 가산으로 변형시큼킴로써, 회로 규모를 감소시킬 수 있다.Thus, the galloise arithmetic circuit 34 can reduce the circuit scale by transforming a conventional matrix operation into a simple addition.

상술된 실시 예들에서, 갈로아체 연산 회로(34)는 에러 위치 검출 다항식에서 동일한 선형 공간을 구성하는 항들을 선형 함수로서 통합하고, 통합된 선형 함수를 기저 계산부(330) 및 선형 전개부(340)를 이용하여 연산한다. 갈로아체 연산 회로(34)는 에러 위치 검출 다항식에서 동일한 선형 구조를 가지는 항들을 통합하여 계산한다. 따라서, 동일한 선형 구조를 가지는 항들을 통합하여 계산하는 것으로써, 다항식의 항들을 계산하는 유닛들의 수가 감소되고, 유닛들 사이의 출력을 연산하는 회로의 소자수도 감소된다.In the above-described embodiments, the galloche arithmetic circuit 34 integrates the terms constituting the same linear space in the error position detection polynomial as a linear function, and integrates the integrated linear function into the base calculation unit 330 and the linear expansion unit 340. Calculate using Galoache calculation circuit 34 calculates by integrating terms having the same linear structure in the error position detection polynomial. Thus, by integrating the terms having the same linear structure, the number of units for calculating the terms of the polynomial is reduced, and the number of elements of the circuit for calculating the output between the units is also reduced.

상술된 실시 예들에서, 메모리 장치(불휘발성 반도체 기억장치(10))는 갈로아체 연산 회로(34)를 이용하여 에러 위치 검출 다항식을 연산하고, 입력되는 데이터열의 에러 검출을 실시하는 에러 정정 회로를 갖는 메모리 장치(불휘발성 반도체 기억장치(10))이다. 에러 검출 정정 회로(13)는 입력되는 데이터열로부터 신드롬을 계산하는 신드롬 계산부(31), 신드롬으로 에러 위치 검출 다항식의 계수를 산출하는 에러 계수 계산부(32), 데이터열의 데이터의 비트 위치를 나타내는 값과 계수를 에러 위치 검출 다항식에 대입하여 연산하는 갈로아체 연산 회로(34), 에러 위치 검출 다항식의 대입 결과에 응답하여 데이터열의 비트마다 에러가 있는지 아닌지를 가리키는 에러 검출 신호를 출력하는 치엔 탐색부(33), 에러 검출 신호에 의해 데이터열에 있어서의 비트의 데이터의 에러를 정정하여 출력하는 에러 정정부(35)를 구비한다.In the above-described embodiments, the memory device (nonvolatile semiconductor memory device 10) uses an galloise calculation circuit 34 to calculate an error position detection polynomial and perform an error correction circuit for performing error detection of an input data string. Memory device (nonvolatile semiconductor memory device 10). The error detection correction circuit 13 includes a syndrome calculation unit 31 for calculating a syndrome from an input data string, an error coefficient calculation unit 32 for calculating a coefficient of an error position detection polynomial with the syndrome, and a bit position of data in the data string. Galois arithmetic circuit 34 for calculating by substituting the values and coefficients indicated by the error position detection polynomial, and Chien search outputting an error detection signal indicating whether or not there is an error for each bit of the data string in response to the substitution result of the error position detection polynomial. A unit 33 is provided with an error correction unit 35 for correcting and outputting an error of data of bits in a data string by an error detection signal.

메모리 장치(불휘발성 반도체 기억장치(10))는, 갈로아체 연산 회로(34)에 서 에러 위치 검출 다항식을 연산할 때, 기저 계산부(330)를 이용하여 갈로아체(GF(2^m)) 상의 선형 독립인 m개의 원에 대해 에러 위치 검출 다항식을 계산한다. 그리고, 선형 전개부(340)는 선형 독립인 m개의 원을 제외한 나머지의(2m-1-m) 개의 원에 대해 에러 위치 검출 다항식을, 기저 계산부(330)의 연산 결과를 기반으로, 연산 결과의 가산으로 생성한다. 따라서, 메모리 장치(불휘발성 반도체 기억장치(10))에 탑재되는 갈로아체 연산 회로(34)의 회로 규모가 감소될 수 있다. 메모리 장치(불휘발성 반도체 기억장치(10))는 고속연산이 가능한 에러 검출 정정 회로를 온-칩(on-chip)으로 탑재할 수 있다.When the memory device (nonvolatile semiconductor memory device 10) calculates the error position detection polynomial in the galloche arithmetic circuit 34, it uses the basis calculation unit 330 to set the galloche (GF (2 ^ m)). Compute the error position detection polynomial for m circles that are linearly independent on. The linear development unit 340 calculates an error position detection polynomial for the remaining (2 m -1-m) circles except for m independent circles, based on the calculation result of the base calculation unit 330. Generate by addition of result. Therefore, the circuit scale of the galloche calculation circuit 34 mounted in the memory device (nonvolatile semiconductor memory device 10) can be reduced. The memory device (nonvolatile semiconductor memory device 10) can mount on-chip an error detection and correction circuit capable of high speed operation.

본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위와 기술적 사상에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.In the detailed description of the present invention, specific embodiments have been described, but various modifications may be made without departing from the scope and spirit of the present invention. Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be defined by the equivalents of the claims of the present invention as well as the following claims.

10; 불휘발성 반도체 기억장치 11; 메모리 셀 어레이
12; 페이지 버퍼 13; 에러 검출 정정 회로
14; 버퍼 15; I/O패드
16; 제어 회로 17; 어드레스 디코더
18; 로우 및 블록 디코더
30; 디코더부 31; 신드롬 계산부
32; 에러 계수 계산부 33; 치엔 탐색부
34; 갈로아체 연산 회로 35; 에러 정정부
40; 인코더부 41; 패리티 생성 회로
330; 기저 계산부 340; 선형 전개부
400; 기저 계산부 410; 선형 전개부
500; 기저 계산부 510; 선형 전개부
10; Nonvolatile semiconductor memory 11; Memory cell array
12; Page buffer 13; Error detection correction circuit
14; Buffer 15; I / O pad
16; Control circuit 17; Address decoder
18; Low and Block Decoder
30; Decoder section 31; Syndrome calculator
32; An error coefficient calculator 33; Chien Seeker
34; Galloche calculation circuit 35; Error correction part
40; An encoder section 41; Parity generation circuit
330; Basis calculation unit 340; Linear development
400; Basis calculation unit 410; Linear development
500; Basis calculation unit 510; Linear development

Claims (8)

갈로아체(GF(2^m)) 상(m은 정수)의 m비트에 의해 벡터 표현되는 (2m-1) 개의 원들을 에러 위치 검출 다항식에 대입하는 갈로아체 연산 회로에 있어서:
상기 (2m-1) 개의 원들로부터, 선형 독립인 m개의 원들을 계산하는 기저 계산부; 그리고
상기 (2m-1) 개의 원들로부터 상기 m개의 원들을 제외한 (2m-1-m) 개의 원들을, 각각 상기 m개의 원들의 조합으로 계산하는 선형 전개부를 포함하는 갈로아체 연산 회로.
In a Galoache computation circuit that assigns (2 m -1) circles to the error-position detection polynomial vector represented by m bits on galoache (GF (2 ^ m)) (m is an integer):
A basis calculation unit for calculating linearly independent m circles from the (2 m -1) circles; And
And a linear development unit for calculating (2 m -1-m) circles except for the m circles from the (2 m -1) circles as a combination of the m circles, respectively.
제 1 항에 있어서,
상기 에러 위치 검출 다항식에 대해 동일한 선형 공간을 구성하는 항들을 선형 함수로서 통합하고, 상기 통합된 선형 함수에 대해 상기 기저 계산부와 상기 선형 전개부를 이용하여 연산을 수행하는 갈로아체 연산 회로.
The method of claim 1,
Galoiche arithmetic circuit for integrating terms constituting the same linear space with respect to the error position detection polynomial as a linear function, and performing operations using the basis calculation unit and the linear expansion unit on the integrated linear function.
입력되는 데이터열의 에러 검출을 수행하는 에러 정정 회로를 갖는 메모리 장치에 있어서:
상기 에러 정정 회로는,
상기 입력되는 데이터열로부터 신드롬을 계산하는 신드롬 계산부;
상기 신드롬으로 에러 위치 검출 다항식의 계수를 산출하는 에러 계수 계산부;
상기 데이터열의 데이터의 비트의 위치를 나타내는 값과 상기 계수를 상기 에러 위치 검출 다항식에 대입하여 연산하는 갈로아체 연산 회로;
상기 에러 위치 검출 다항식의 대입 결과에 응답하여, 상기 데이터열의 비트마다 에러가 있는지 아닌지를 나타내는 에러 검출 신호를 출력하는 치엔 탐색부; 그리고
상기 에러 검출 신호에 응답하여 상기 데이터열의 비트의 데이터의 에러를 정정하여 출력하는 에러 정정부를 포함하고,
상기 갈로아체 연산 회로는 갈로아체(GF(2^m)) 상의 m비트에 의해 벡터 표현되는 (2m-1) 개의 원들을 에러 위치 검출 다항식에 대입하도록 구성되고,
상기 갈로아체 연산 회로는,
(2m-1) 개의 원들(m은 정수)로부터, 선형 독립인 m개의 원들을 계산하는 기저 계산부; 그리고
상기 (2m-1) 개의 원들로부터 상기 m개의 원들을 제외한 (2m-1-m) 개의 원들을, 각각 상기 m개의 원들의 조합으로 계산하는 선형 전개부를 포함하는 메모리 장치.
A memory device having an error correction circuit for performing error detection of an input data string:
The error correction circuit,
A syndrome calculation unit for calculating a syndrome from the input data string;
An error coefficient calculation unit for calculating a coefficient of an error position detection polynomial with the syndrome;
A galloche arithmetic circuit for calculating a value indicating a position of a bit of data of said data string and said coefficient by substituting said error position detection polynomial;
A Chien search unit for outputting an error detection signal indicating whether or not there is an error for each bit of the data string in response to the substitution result of the error position detection polynomial; And
An error correction unit configured to correct and output an error of data of bits of the data string in response to the error detection signal,
The galloise calculation circuit is configured to substitute (2 m −1) circles, which are vector represented by m bits on galloise GF (2 ^ m), into an error position detection polynomial,
The galloche calculation circuit,
A basis calculation unit for calculating m independent circles from (2 m -1) circles (m is an integer); And
And (2 m -1-m) circles except for the m circles from the (2 m -1) circles, each of which includes a linear development unit for calculating a combination of the m circles.
복수의 연산 장치들을 포함하고, 상기 복수의 연산 장치들의 각각은 다항식의 특정한 요소에 대응하는 선형 함수를 계산하고, 상기 다항식의 상기 요소들의 수는 상기 복수의 연산 장치들의 수보다 큰 기저 계산부; 그리고
상기 복수의 연산 장치들의 제1 연산 장치의 출력을 상기 복수의 연산 장치들의 제2 연산 장치의 출력에 더하고, 그리고 별도로 상기 제1 연산 장치의 출력을 상기 복수의 연산 장치들의 제3 연산 장치의 출력에 더하는 선형 전개부를 포함하는 갈로아체 연산 회로.
A plurality of computing devices, each of the plurality of computing devices calculating a linear function corresponding to a particular element of the polynomial, wherein the number of elements of the polynomial is greater than the number of the plurality of computing devices; And
Adding the output of the first computing device of the plurality of computing devices to the output of the second computing device of the plurality of computing devices, and separately outputting the output of the first computing device to the third computing device of the plurality of computing devices Galoache calculation circuit comprising a linear expansion to add.
제4항에 있어서,
상기 제1 연산 장치의 출력은 Q(1)이고, 상기 제2 연산 장치의 출력은 Q(α)이고, 그리고 상기 제3 연산 장치의 출력은 Q(α2)인 갈로아체 연산 회로.
The method of claim 4, wherein
The output of the first computing device is Q (1), the output of the second computing device is Q (α), and the output of the third computing device is Q (α 2 ).
제5항에 있어서,
상기 선형 전개부는:
상기 Q(1) 및 상기 Q(α)를 더하여 Q(α3)을 출력하는 제1 배타적 논리합 장치; 그리고
상기 Q(α) 및 상기 Q(α2)를 더하여 Q(α4)를 출력하는 제2 배타적 논리합 장치를 포함하는 갈로아체 연산 회로.
The method of claim 5,
The linear development is:
A first exclusive logical OR device for adding Q (1) and Q (α) to output Q (α 3 ); And
And a second exclusive logical sum device that adds the Q (α) and the Q (α 2 ) to output Q (α 4 ).
제6항에 있어서,
상기 선형 전개부는:
상기 제2 배타적 논리합 장치의 출력을 상기 Q(1)에 더하는 제3 배타적 논리합 장치; 그리고
상기 Q(1)을 상기 Q(α2)에 더하는 제4 배타적 논리합 장치를 더 포함하는 갈로아체 연산 회로.
The method of claim 6,
The linear development is:
A third exclusive OR device that adds an output of the second exclusive OR device to the Q (1); And
And a fourth exclusive logical OR device for adding the Q (1) to the Q (α 2 ).
제6항에 있어서,
상기 제1 연산 장치는 제1 행렬 연산으로서 X (1=a0)의 요소에 대응하는 에러 위치 검출 다항식 내의 'Q(1) = (p4)(14)+(p2)(12)+(p1)(11)'의 선형 함수를 계산하고,
상기 제2 연산 장치는 제2 행렬 연산으로서 X (=α1=α)에 대응하는 'Q(α) = (p4)(α4)+(p2)(α2)+(p1)(α1)'의 선형 함수를 계산하고, 그리고
상기 제3 연산 장치는 제3 행렬 연산으로서 X (=α2)의 요소에 대응하는 'Q(α2) = (p4)((α2)4)+(p2)((α2)2)+(p1)(α2)'의 선형 함수를 계산하는 갈로아체 연산 회로.
The method of claim 6,
The first computing device is a first matrix operation, where 'Q (1) = (p4) (1 4 ) + (p2) (1 2 ) + in the error position detection polynomial corresponding to the element of X (1 = a 0 ). compute the linear function of (p1) (1 1 ) ',
The second computing device is a second matrix operation that corresponds to X (= α 1 = α) where 'Q (α) = (p4) (α 4 ) + (p2) (α 2 ) + (p1) (α 1 ). Compute the linear function of
The third computing device is a third matrix operation that corresponds to an element of X (= α 2 ) such that 'Q (α 2 ) = (p4) ((α 2 ) 4 ) + (p2) ((α 2 ) 2 ) Galoache arithmetic circuit for calculating a linear function of + (p1) (α 2 ) '.
KR1020130039897A 2012-09-12 2013-04-11 Galois field calculating circuit and memory device KR102064857B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/024,758 US9317352B2 (en) 2012-09-12 2013-09-12 Galois field arithmetic operation circuit and memory device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012200621A JP2014057203A (en) 2012-09-12 2012-09-12 Galois field arithmetic circuit and memory device
JPJP-P-2012-200621 2012-09-12

Publications (2)

Publication Number Publication Date
KR20140034677A KR20140034677A (en) 2014-03-20
KR102064857B1 true KR102064857B1 (en) 2020-02-11

Family

ID=50614159

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130039897A KR102064857B1 (en) 2012-09-12 2013-04-11 Galois field calculating circuit and memory device

Country Status (2)

Country Link
JP (1) JP2014057203A (en)
KR (1) KR102064857B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999016175A1 (en) 1997-09-24 1999-04-01 Hitachi, Ltd. Semiconductor integrated circuit and data processing system
JP2000315955A (en) 1999-04-30 2000-11-14 Mitsubishi Electric Corp Encoding method, syndrome calculating method, number of erroneous bits estimating method, erroneous bit position estimating method, decoding method and decoder

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06314979A (en) 1993-04-28 1994-11-08 Nec Corp Galois field multiplier circuit
JP3556461B2 (en) * 1998-03-18 2004-08-18 富士通株式会社 M-sequence phase shift coefficient calculation method
JP4856110B2 (en) * 2008-03-01 2012-01-18 株式会社東芝 Chain search apparatus and chain search method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999016175A1 (en) 1997-09-24 1999-04-01 Hitachi, Ltd. Semiconductor integrated circuit and data processing system
JP2000315955A (en) 1999-04-30 2000-11-14 Mitsubishi Electric Corp Encoding method, syndrome calculating method, number of erroneous bits estimating method, erroneous bit position estimating method, decoding method and decoder

Also Published As

Publication number Publication date
JP2014057203A (en) 2014-03-27
KR20140034677A (en) 2014-03-20

Similar Documents

Publication Publication Date Title
KR100833600B1 (en) Error correction circuit, method there-of and semiconductor memory device including the circuit
US9128864B2 (en) Memory controller, storage device and error correction method
US8990667B2 (en) Error check and correction circuit, method, and memory device
US20150363263A1 (en) ECC Encoder Using Partial-Parity Feedback
KR102064508B1 (en) Ecc circuit and memory device including the same
JP2008165808A (en) Error correction circuit and method for reducing miscorrection probability and semiconductor memory device including the circuit
JP2009080651A (en) Semiconductor memory device and its control method
US10498364B2 (en) Error correction circuits and memory controllers including the same
US9384083B2 (en) Error location search circuit, and error check and correction circuit and memory device including the same
KR20120063329A (en) Error check and corrector and memory system including 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
JP2009259113A (en) Nonvolatile memory management device
KR20140018095A (en) Error check and correction circuit and memory device
KR102064857B1 (en) Galois field calculating circuit and memory device
JP6479638B2 (en) Video server apparatus and data writing / reading method
KR102021560B1 (en) Error bit search circuit, error check and correction circuit therewith, and memory device therewith
KR102027949B1 (en) Error check and correction circuit and semiconductor memory
JP2014116659A (en) Error detection and correction circuit and semiconductor storage device
JP2014068058A (en) Error location search circuit, error detection and correction circuit and memory device
JP2014064242A (en) Error detection and correction circuit and semiconductor memory
CN111427717A (en) Method and apparatus for encoding and decoding data in a memory system
JP2019028952A (en) Storage device
ANUSHA et al. Reliable MLC NAND Flash Memories Based on Nonlinear Error Correcting Codes

Legal Events

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