KR101304570B1 - Methods of Generating Parity Check Matrix, Error Correction Methods and Devices using thereof, and Memories and Electronic Device using thereof - Google Patents

Methods of Generating Parity Check Matrix, Error Correction Methods and Devices using thereof, and Memories and Electronic Device using thereof Download PDF

Info

Publication number
KR101304570B1
KR101304570B1 KR1020120009201A KR20120009201A KR101304570B1 KR 101304570 B1 KR101304570 B1 KR 101304570B1 KR 1020120009201 A KR1020120009201 A KR 1020120009201A KR 20120009201 A KR20120009201 A KR 20120009201A KR 101304570 B1 KR101304570 B1 KR 101304570B1
Authority
KR
South Korea
Prior art keywords
matrix
decoder
column weight
error correction
weight
Prior art date
Application number
KR1020120009201A
Other languages
Korean (ko)
Other versions
KR20130087931A (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 KR1020120009201A priority Critical patent/KR101304570B1/en
Publication of KR20130087931A publication Critical patent/KR20130087931A/en
Application granted granted Critical
Publication of KR101304570B1 publication Critical patent/KR101304570B1/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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations

Abstract

ECC 모듈의 디코더의 입력 개수를 감소시켜 디코더의 면적을 감소시키는 최대 열 무게(column weight) 선호 디코딩 유닛이 제공된다. 디코딩 유닛의 적어도 하나의 디코더는 최대 열 무게를 갖는 H-행렬의 열의 최대 열 무게와 동일한 입력을 가진다. A maximum column weight preferred decoding unit is provided that reduces the number of inputs of the decoder of the ECC module to reduce the area of the decoder. At least one decoder of the decoding unit has an input equal to the maximum column weight of the column of the H-matrix with the maximum column weight.

Description

패리티 체크 행렬 생성 방법, 이를 이용한 오류 정정 방법 및 장치, 오류 정정 장치용 디코더 그리고 오류 정정 장치를 포함하는 메모리 및 전자장치{Methods of Generating Parity Check Matrix, Error Correction Methods and Devices using thereof, and Memories and Electronic Device using thereof}Method of Generating Parity Check Matrix, Error Correction Methods and Devices using about, and Memories and Electronic, including parity check matrix generation method, error correction method and device, decoder for error correction device, and error correction device Device using kind}

본 발명 개념의 실시 예에는 반도체 소자에 대한 것으로서 더 상세하게는 메모리 오류 정정에 대한 것이다.An embodiment of the inventive concept relates to a semiconductor device, and more particularly, to memory error correction.

메모리의 신뢰성 향상을 위하여 오류 정정 코드 기술은 메모리에 적용되어 왔다. 특히 오류 정정 코드 수행 회로의 면적을 감소시키고, 동작 속도를 향상시키기 위해서 오류 정정 코드 수행 회로의 구조를 개선하고 그 기반이 되는 오류 정정 코드를 개선하는 방향으로 발전하여 왔다. In order to improve the reliability of the memory, error correction code technology has been applied to the memory. In particular, in order to reduce the area of the error correction code execution circuit and to improve the operation speed, it has been developed in order to improve the structure of the error correction code execution circuit and to improve the error correction code on which it is based.

문헌 1은 현재 가장 널리 사용되고 있는 단일 오류 정정 코드인 해밍 코드를 제시하고 있다. 해밍 코드는 1950년에 통신 시스템의 오류를 정정하기 위해서 개발되었다. 이는 H-행렬 내 데이터 비트에 할당 되는 열 벡터 값을 2진수의 순차적 고정된 값을 배정한다. 해밍 코드는 초기의 오류 정정 코드로 통신 시스템의 신뢰성을 크게 향상시켰지만, 이후 메모리 적용에 있어서는 오류 정정 코드 수행 회로의 면적과 동작시간이 크게 요구된다.Document 1 proposes a Hamming code, which is the single error correction code that is most widely used at present. Hamming code was developed in 1950 to correct errors in communication systems. This assigns a sequential fixed value in binary to the column vector value assigned to the data bits in the H-matrix. The Hamming code is an early error correction code that greatly improves the reliability of the communication system. However, in the memory application, the Hamming code requires a large area and an operation time of the error correction code execution circuit.

문헌 2는 H-행렬 내 데이터 비트에 할당되는 모든 열들의 열 무게를 2로 만들어서 오류 정정 코드 수행 회로의 면적 및 동작시간을 크게 감소 시켰다. 하지만 해밍 코드를 비롯한 기존 단일 오류 정정 코드에서 필요한 체크 비트보다 훨씬 많은 체크 비트를 필요로 하는 단점을 가지고 있다.Document 2 significantly reduces the area and operation time of the error correction code execution circuit by making the column weight of all columns allocated to the data bits in the H-matrix equal to two. However, it has a disadvantage of requiring much more check bits than the check bits required in the existing single error correction code, including Hamming code.

문헌 3은 해밍 코드와 동일한 체크 비트가 필요하면서, 오류 정정 코드 수행 회로 중 체크 비트 생성기의 면적 및 동작 시간을 감소시키는데 초점을 맞춰 H-행렬 내 전체 무게를 감소시키고, 가장 큰 행 무게를 일정 수준 이하로 감소시켰다. 하지만 디코더를 비롯한 오류 정정 코드 수행 회로의 다른 부분은 해밍 코드와 동일하게 구성되었다. Literature 3 focuses on reducing the area and operating time of the check bit generator in the error correction code execution circuit, while requiring the same check bits as the Hamming code, reducing the overall weight in the H-matrix and increasing the largest row weight to a certain level. It decreased below. However, other parts of the error correction code execution circuit, including the decoder, are configured identically to the Hamming code.

1. 문헌 1 R. W. Hamming, “Error detecting and error correcting code,” Bell System Technical Journal, vol. 26, pp. 147160, Apr.1950. 1. R. W. Hamming, “Error detecting and error correcting code,” Bell System Technical Journal, vol. 26, pp. 147 160, Apr. 1950. 2. 문헌 2 P. K. Lala, P. Thenappan, and M. T. Anwar, “Single error correcting and double error detecting coding scheme,” IET Electronics Letters, vol. 41, Issue 13, pp. 758760, Feb. 2005.2. Document 2 P. K. Lala, P. Thenappan, and M. T. Anwar, “Single error correcting and double error detecting coding scheme,” IET Electronics Letters, vol. 41, Issue 13, pp. 758760, Feb. 2005. 3. 문헌 3 S. Cha, and H. Yoon, “High speed, minimal area, and low power SEC code for DRAMs with large I/O data widths,” Circuits and Systems, 2007. ISCAS 2007. IEEE International Symposium on, pp. 30263029, May. 2007.3. Document 3 S. Cha, and H. Yoon, “High speed, minimal area, and low power SEC code for DRAMs with large I / O data widths,” Circuits and Systems, 2007. ISCAS 2007. IEEE International Symposium on, pp. 30263029, May. 2007.

본 발명의 개념에 따른 실시 예는 오류 정정 코드를 위한 디코더 유닛을 제공한다.An embodiment according to the inventive concept provides a decoder unit for an error correction code.

본 발명의 개념에 따른 실시 예는 H-행렬 생성 방법을 제공한다. An embodiment according to the inventive concept provides a method of generating an H-matrix.

본 발명의 개념에 따른 실시 예는 오류 정정 코드 모듈을 제공한다.An embodiment according to the inventive concept provides an error correction code module.

본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The technical objects of the present invention are not limited to the above-mentioned technical problems, and other technical subjects not mentioned can be clearly understood by those skilled in the art from the following description.

본 발명의 일 실시 예에 따른 (n, k) 오류 정정 코드를 위한 디코더 유닛은 서로 다른 개수의 입력을 받는 복수 개의 디코더를 포함하고, 상기 복수 개의 디코더 중 적어도 하나는 H-행렬의 최대 열 무게를 갖는 열의 열 무게와 동일한 입력을 갖는다.The decoder unit for the (n, k) error correction code according to an embodiment of the present invention includes a plurality of decoders receiving different numbers of inputs, wherein at least one of the plurality of decoders is the maximum column weight of the H-matrix. Has the same input as the heat weight of the column.

일 실시 예에서, 상기 디코더 유닛은 (n-k)개의 입력을 갖는 적어도 하나의 제1 디코더 및 (n-k)보다 작은 입력을 갖는 적어도 하나의 제2 디코더를 포함한다.In one embodiment, the decoder unit comprises at least one first decoder having (n-k) inputs and at least one second decoder having inputs smaller than (n-k).

일 실시 예에서, 상기 제2 디코더의 입력 개수는 상기 최대 열 무게와 동일하다.In one embodiment, the number of inputs of the second decoder is equal to the maximum column weight.

본 발명의 일 실시 예에 따른 ECC 모듈은 수신한 메세지 데이터(k 비트)로부터 쓰기 체크 비트를 생성하고 수신되어 저장된 메세지 데이터로부터 읽기 체크 비트(m 비트)를 생성하는 체크 비트 생성기, 읽기 체크 비트 및 쓰기 체크 비트로부터 신드롬을 계산하는 신드롬 생성기, 그리고 신드롬 생성기의 출력을 입력으로 하여 오류를 검출하는 디코더 유닛을 포함하며, 상기 디코더 유닛은 서로 다른 개수의 입력을 받는 복수 개의 디코더를 포함하고, 상기 복수 개의 디코더 중 적어도 하나는 H-행렬의 최대 열 무게를 갖는 열의 열 무게와 동일한 입력을 갖는다.An ECC module according to an embodiment of the present invention includes a check bit generator for generating a write check bit from received message data (k bits) and a read check bit (m bit) from received and stored message data, a read check bit, and A syndrome generator for calculating a syndrome from a write check bit, and a decoder unit for detecting an error by using an output of the syndrome generator as an input, the decoder unit including a plurality of decoders receiving different numbers of inputs; At least one of the decoders has an input equal to the column weight of the column with the maximum column weight of the H-matrix.

일 실시 예에 있어서, (n-k)개의 입력을 갖는 적어도 하나의 제1 디코더 및 (n-k)보다 작은 입력을 갖는 적어도 하나의 제2 디코더를 포함한다.In one embodiment, it includes at least one first decoder having (n-k) inputs and at least one second decoder having inputs smaller than (n-k).

일 실시 예에 있어서, 상기 제2 디코더의 입력 개수는 상기 최대 열 무게와 동일하다.In one embodiment, the number of inputs of the second decoder is equal to the maximum column weight.

본 발명의 일 실시 예에 따른 (n, k) 오류 정정 코드를 위한 디코더 유닛은 H-행렬의 열의 개수(n)에 대응하는 n개의 디코더를 포함하고, H-행렬의 최대 열 무게를 갖는 열에 대응하는 디코더는 상기 최대 열 무게와 동일한 입력을 갖는다.The decoder unit for the (n, k) error correction code according to an embodiment of the present invention includes n decoders corresponding to the number n of columns of the H-matrix, and includes a column having a maximum column weight of the H-matrix. The corresponding decoder has an input equal to the maximum column weight.

본 발명의 일 실시 예에 따른 H-행렬 생성 방법은, 모두 0인 열이 없는 제1 조건; 각각의 열은 다른 열과 모두 구분되는 제2 조건; 그리고 최대 열 무게를 가지는 열의 개수를 최대로 하는 제3 조건을 만족한다. H-matrix generating method according to an embodiment of the present invention, the first condition that there is no column of all zeros; A second condition in which each column is distinct from all other columns; The third condition of maximizing the number of rows having the maximum column weight is satisfied.

일 실시 예에서, 각각의 행 무게는 행렬의 전체 무게를 행의 개수로 나눈 수에 가까운 정수로 하는 제4 조건을 더 만족한다.In one embodiment, each row weight further satisfies a fourth condition where the total weight of the matrix is an integer close to the number divided by the number of rows.

일 실시 예에서, 열 무게가 2, 3, ..., MCW-2, MCW, MCW-1인 순서로 열을 채운다.In one embodiment, the heat is filled in the order of 2, 3, ..., MCW-2, MCW, MCW-1.

본 발명의 일 실시 예는 상기 H-행렬을 생성하는 방법을 수행하기 위한 프로그램을 저장하는 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.An embodiment of the present invention provides a computer-readable recording medium storing a program for performing the method of generating the H-matrix.

본 발명의 실시 예에 따르면, 최대 열 무게 선호 디코더를 구성하는 입력 개수가 줄어들게 하여, 최대 열 무게 선호 디코더의 면적 또한 기존 디코더와 대비하여 감소시킬 수 있다. According to an embodiment of the present invention, the number of inputs constituting the maximum column weight preference decoder is reduced, so that the area of the maximum column weight preference decoder is also reduced compared to the existing decoder.

H-행렬의 최대 열 무게를 가지는 열의 개수를 최대로 하는 본 발명의 실시 예에 따른 최대 열 무게 선호 오류 정정 코드를 통하여 최대 열 무게 선호 디코더의 면적 감소 효과를 더욱 극대화 시킬 수 있다. The area reduction effect of the maximum column weight preference decoder may be further maximized through the maximum column weight preference error correction code according to an embodiment of the present invention, which maximizes the number of columns having the maximum column weight of the H-matrix.

본 발명의 실시 예에 따른 최대 열 무게 선호 오류 정정 코드는 모든 행 무게를 비슷하게 맞춰 주어서 체크 비트 생성기에서 가장 긴 동작 시간을 가지는 경로의 동작 시간을 해밍 코드와 비교하여 감소시킬 수 있다. 따라서 전체 오류 정정 코드 수행 회로의 동작 시간을 감소시킬 수 있다.The maximum column weight preference error correcting code according to an embodiment of the present invention can reduce the operation time of the path having the longest operation time in the check bit generator in comparison with the hamming code by matching all the row weights similarly. Therefore, the operation time of the entire error correction code execution circuit can be reduced.

본 발명의 일 실시 예에 따른 최대 열 무게 선호 디코더와 최대 열 무게 선호 단일 오류 정정 코드는 DRAM이나 SRAM과 같이 한 번에 읽기/쓰기 동작을 하는 데이트 비트의 개수가 적은 메모리에 적은 면적 부담과 적은 동작 시간의 오류 정정 코드 수행 회로가 구현될 수 있게 한다. The maximum column weight preference decoder and the maximum column weight preference single error correction code according to an embodiment of the present invention have a small area burden and a small amount of memory in a memory having a small number of data bits that read / write at a time, such as DRAM or SRAM. Enable error correction code execution circuitry of operating time.

도 1은 본 발명의 일 실시 예에 따른 메모리 장치를 도시한다.
도 2는 본 발명의 일 실시 예에 따른 ECC 모듈을 도시한다.
도 3은 ECC 모듈의 예시적인 디코더를 도시한다.
도 4는 종래 기술에 따른 ECC 모듈의 디코더를 도시한다.
도 5는 본 발명의 일 실시 예에 따른 ECC 모듈의 디코더를 도시한다.
도 6은 본 발명의 일 실시 예에 따른 최대 열 무게 선호 디코더를 이용한 최대 열 무게 선호 단일 오류 정정 코드와 기존 해밍 코드를 사용한 오류 정정 코드 수행 회로에서 사용된 트랜지스터의 개수를 비교한 것을 도시한다.
1 illustrates a memory device according to an embodiment of the present invention.
2 illustrates an ECC module according to an embodiment of the present invention.
3 shows an example decoder of an ECC module.
4 shows a decoder of an ECC module according to the prior art.
5 illustrates a decoder of an ECC module according to an embodiment of the present invention.
FIG. 6 illustrates a comparison of the number of transistors used in an error correction code performing circuit using a maximum column weight preferred single error correction code using a maximum column weight preferred decoder and a conventional hamming code according to an embodiment of the present invention.

본 발명의 다른 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술 되는 실시 예를 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예는 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.Other advantages and features of the present invention and methods of achieving them will become apparent with reference to the embodiments described below in detail with reference to the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the concept of the invention to those skilled in the art. Is provided to fully convey the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims.

만일 정의되지 않더라도, 여기서 사용되는 모든 용어들(기술 혹은 과학 용어들을 포함)은 이 발명이 속한 종래 기술에서 보편적 기술에 의해 일반적으로 수용되는 것과 동일한 의미를 가진다. 일반적인 사전들에 의해 정의된 용어들은 관련된 기술 그리고/혹은 본 출원의 본문에 의미하는 것과 동일한 의미를 갖는 것으로 해석될 수 있고, 그리고 여기서 명확하게 정의된 표현이 아니더라도 개념화되거나 혹은 과도하게 형식적으로 해석되지 않을 것이다.Unless defined otherwise, all terms (including technical or scientific terms) used herein have the same meaning as commonly accepted by the generic art in the prior art to which this invention belongs. Terms defined by generic dictionaries may be interpreted to have the same meaning as in the related art and / or in the text of this application, and may be conceptualized or overly formalized, even if not expressly defined herein I will not.

본 명세서에서 사용된 용어는 실시 예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 '포함한다' 및/또는 이 동사의 다양한 활용형들 예를 들어, '포함', '포함하는', '포함하고', '포함하며' 등은 언급된 조성, 성분, 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 조성, 성분, 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.The terminology used herein is for the purpose of illustrating embodiments and is not intended to be limiting of the present invention. In the present specification, the singular form includes plural forms unless otherwise specified in the specification. As used herein, the terms' comprise 'and / or various forms of use of the verb include, for example,' including, '' including, '' including, '' including, Steps, operations, and / or elements do not preclude the presence or addition of one or more other compositions, components, components, steps, operations, and / or components.

본 명세서에서 '및/또는' 이라는 용어는 나열된 구성들 각각 또는 이들의 다양한 조합을 가리킨다.The term 'and / or' as used herein refers to each of the listed configurations or various combinations thereof.

한편, 본 명세서 전체에서 사용되는 '~부', '~기', '~블록', '~모듈', '~ 유닛' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미할 수 있다. 예를 들어 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미할 수 있다. 그렇지만 '~부', '~기', '~블록', '~모듈', '~유닛' 등이 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부', '~기', '~블록', '~모듈', '~유닛' 은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부', '~기', '~블록', '~모듈', '~유닛' 등은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들(procedures), 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '~부', '~기', '~블록', '~모듈', '~유닛' 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부', '~기', '~블록', '~모듈', '~유닛'으로 결합 되거나 추가적인 구성요소들과 '~부', '~기', '~블록', '~모듈', '~유닛'으로 더 분리될 수 있다.On the other hand, the terms '~', '~', '~ block', '~ module', '~ unit' used throughout the present specification may mean a unit for processing at least one function or operation. have. For example, a hardware component, such as a software, FPGA, or ASIC. However, the terms '~', '~', '~ block', '~ module' and '~ unit' are not limited to software or hardware. '~', '~', '~ Block', '~ module', '~ unit' may be configured to be in an addressable storage medium or may be configured to play one or more processors. . Thus, as an example, '~', '~', '~ block', '~ module', '~ unit', etc. are software components, object-oriented software components, class components, and task configurations. Components such as elements, processes, functions, properties, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuits, data, databases, data It includes structures, tables, arrays, and variables. The components and functions provided within '~', '~', '~ block', '~ module', '~ unit' can be divided into smaller components and '~', '~~' , Combined with '~ block', '~ module', '~ unit' or further separated into '~', '~ gi', '~ block', '~ module', '~ unit' Can be.

도 1은 본 발명의 일 실시 예에 따른 메모리 장치이다. 메모리 장치는 오류 정정 코드(ECC) 모듈(100)과 메모리(200)를 포함한다. 1 is a memory device according to an embodiment of the present invention. The memory device includes an error correction code (ECC) module 100 and a memory 200.

ECC 모듈(100)은 호스트(Host)로부터 제공되는 사용자 데이터를 본 발명의 일 실시 예에 따른 에러 정정 부호 방식으로 인코딩한다. ECC 모듈(100)은 패리티 체크 행렬(Parity Check Matrix)을 사용하여 메시지가 포함된 사용자 데이터를 부호어 벡터로 변환하게 될 것이다. 일반적으로 부호어에는 데이터 비트(Data bits)와 체크 비트(Check bits)가 혼합되어 있거나, 순차적으로 연결된 상태로 메모리(200)에 저장된다. 본 발명의 일 실시 예에서는 ECC 모듈(100)은 부호어의 데이터 비트와 체크 비트를 분리하여 이격된 메모리(210, 220)에 각각 저장한다. ECC 모듈(100)은 부호어의 데이터 비트와 체크 비트 각각에 대한 패리티 비트를 추가할 수 있다. 여기서 데이터 비트와 체크 비트 각각에 대한 패리티 방식은 홀수 패리티나 짝수 패리티를 적용할 수 있을 것이다. The ECC module 100 encodes user data provided from a host by an error correction code method according to an embodiment of the present invention. The ECC module 100 may convert user data including a message into a codeword vector using a parity check matrix. In general, data bits and check bits are mixed in a codeword, or are stored in the memory 200 in a sequentially connected state. In an embodiment of the present invention, the ECC module 100 separates the data bit and the check bit of the codeword and stores them in the memory 210 and 220 spaced apart from each other. The ECC module 100 may add parity bits for each of the data bits and the check bits of the codeword. Here, the parity scheme for each of the data bits and the check bits may apply odd parity or even parity.

메모리(200)는 예를 들어 SRAM, DRAM 등과 같이 한 번에 읽기/쓰기 되는 데이터 비트가 적은 메모리일 수 있다. 또한 메모리(200)는 MRAM, ReRAM, PRAM 등과 같은 차세대 메모리 일 수 있다.The memory 200 may be, for example, a memory having few data bits read / written at one time, such as an SRAM or a DRAM. In addition, the memory 200 may be a next-generation memory such as MRAM, ReRAM, PRAM, or the like.

도 2를 참조하여, ECC 모듈(100)에 대해서 구체적으로 설명을 한다. 도 2를 참조하면, ECC 모듈(100)은 체크 비트 생성기(110), 신드롬 생성기(120), 디코더 유닛(130), 수정기(140)를 포함한다. Referring to FIG. 2, the ECC module 100 will be described in detail. Referring to FIG. 2, the ECC module 100 includes a check bit generator 110, a syndrome generator 120, a decoder unit 130, and a modifier 140.

메모리의 쓰기 동작 동안 데이터 비트들은 데이터 비트 메모리(210)에 저장된다. 한편, 체크 비트 생성기(110)는 데이터 비트들로부터 쓰기 체크 비트를 생성하여 체크 비트 메모리(220)에 저장한다. 이때 체크 비트 생성기(110)는 H-행렬에 의해서 설계된다. 쓰기 체크 비트는 입력 데이터 비트들의 특징을 함축해서 가지게 된다. Data bits are stored in the data bit memory 210 during a write operation of the memory. Meanwhile, the check bit generator 110 generates a write check bit from the data bits and stores the write check bit in the check bit memory 220. The check bit generator 110 is designed by an H-matrix. The write check bit implies the characteristics of the input data bits.

메모리의 읽기 동작 동안에는 ECC 모듈(100)은 메모리(210, 220)에 저장되어 있던 데이터 비트와 쓰기 체크 비트를 수신한다. 체크 비트 생성기(110)는 데이터 비트 메모리(210)에서 데이터 비트를 독출하고 이로부터 읽기 체크 비트를 생성한다. 신드롬 생성기(120)는 이렇게 생성된 읽기 체크 비트와 쓰기 동작 동안에 만들어져서 체크 비트 메모리(220)에 저장되어 있던 쓰기 체크 비트를 사용하여 신드롬을 생성한다. 저장되어 있던 데이터 비트와 쓰기 체크 비트에 오류가 없다면, 신드롬의 값은 전부 "0"이 된다. 반면, 저장되어 있던 데이터 비트와 쓰기 체크 비트에 오류가 있다면, 신드롬은 해당 비트 위치의 H-행렬의 열 값과 동일한 값이 된다. 디코더 유닛(130)은 이러한 신드롬을 사용하여 정확한 오류 비트 위치를 찾아낸다. 수정기(140)는 디코더 유닛(130)을 통해서 알아낸 오류 비트의 위치의 데이터 비트와 쓰기 체크 비트 중의 데이터를 반전시켜주어서 오류를 수정한다.
During the read operation of the memory, the ECC module 100 receives the data bits and the write check bits stored in the memories 210 and 220. The check bit generator 110 reads data bits from the data bit memory 210 and generates read check bits therefrom. The syndrome generator 120 generates a syndrome using the read check bit thus generated and the write check bit generated during the write operation and stored in the check bit memory 220. If there are no errors in the stored data bits and the write check bits, the syndrome values are all "0". On the other hand, if there is an error in the stored data bit and the write check bit, the syndrome becomes the same value as the column value of the H-matrix at the corresponding bit position. Decoder unit 130 uses this syndrome to find the correct error bit position. The modifier 140 corrects the error by inverting the data in the write bit and the data bit at the position of the error bit found through the decoder unit 130.

구체적인 예를 통해서 단일 오류 정정 방법을 설명한다. 여기서 (12, 8) 코드를 예를 들어 설명을 하며, 데이터 비트는 0011 1001 8비트이고 생성되는 부호어는 다음과 같은 순서의 데이터 비트와 체크 비트로 구성된다고 가정한다.The specific error correction method will be described through specific examples. Here, a description is given using (12, 8) codes as an example, and it is assumed that data bits are 0011 1001 8 bits and the generated codeword is composed of data bits and check bits in the following order.

Figure 112012007748654-pat00001
Figure 112012007748654-pat00001

데이터 비트와 체크 비트가 서로 섞이어 부호어를 형성하는 것을 예로 들었지만, 체크 비트가 먼저 앞에 오고 데이터 비트가 뒤에 오거나 또는 그 반대로 데이터 비트가 앞에 오고 체크 비크가 뒤에 올 수도 있고, 무작위로 데이터 비트와 체크 비트가 섞일 수도 있다.For example, data bits and check bits are mixed together to form a codeword, but check bits may come first, followed by data bits, or vice versa, data bits may precede, check beak, or randomly Check bits may be mixed.

한편, (12, 8) 코드를 위한 H-행렬은 아래와 같다.Meanwhile, the H-matrix for the (12, 8) code is as follows.

Figure 112012007748654-pat00002

Figure 112012007748654-pat00002

체크 비트 생성기는 데이터 비트를 사용하여 체크 비트를 형성하는데 예를 들어 다음과 같은 연산으로 4개의 체크 비트 C1, C2, C3 및 C4를 생성한다.The check bit generator uses the data bits to form check bits, for example, generating four check bits C1, C2, C3 and C4 with the following operation.

Figure 112012007748654-pat00003
Figure 112012007748654-pat00003

따라서, ECC 모듈(100)의 체크 비트 생성기(110)에 의해서 생성되는 쓰기 체크 비트는,Therefore, the write check bit generated by the check bit generator 110 of the ECC module 100 is

Figure 112012007748654-pat00004
Figure 112012007748654-pat00004

이다.to be.

따라서 생성되는 부호어는 000101101001 이고(굵게 표시된 부분이 체크 비트임), 데이터 비트 '0011 1001'와 쓰기 체크 비트 '0010'는 메모리(210, 2220)에 각각 저장된다.
Accordingly, the generated codeword is 00 0 1 011 0 1001 (in bold, the check bit), and the data bit '0011 1001' and the write check bit '0010' are stored in the memories 210 and 2220, respectively.

다음으로 ECC 모듈(100)의 오류 정정에 대해서 살펴본다. 데이터 비트 0011 1001 에서 5번째 데이터 비트 '1'에 오류가 발생한 경우를 설명한다. 즉, 데이터 비트 메모리(210)에서 읽은 데이터 비트는 5번째 비트에 오류가 발생하여 '0011 0001'이다.Next, the error correction of the ECC module 100 will be described. The case where an error occurs in the fifth data bit '1' from data bit 0011 1001 is described. That is, the data bit read from the data bit memory 210 is '0011 0001' because an error occurs in the fifth bit.

ECC 모듈(100)의 체크 비트 생성기(110)는 독출한 데이터 비트 '0011 0001'로부터 상술한 체크 비트 생성 연산을 이용하여 다음과 같이 읽기 체크 비트 C1', C2', C3', C4'를 생성한다.The check bit generator 110 of the ECC module 100 generates the read check bits C1 ', C2', C3 ', and C4' as follows by using the above-described check bit generation operation from the read data bits '0011 0001'. do.

Figure 112012007748654-pat00005
Figure 112012007748654-pat00005

여기서 네모 박스로 표시된 부분은 오류가 발생한 5번째 데이터 비트이다. Here, the square box is the fifth data bit in which an error occurs.

5번째 데이터 비트에 오류가 발생하여 쓰기 체크 비트 '0010'와 읽기 체크 비트 '1011'는 서로 틀리게 된다.An error occurs in the fifth data bit, so the write check bit '0010' and the read check bit '1011' are different from each other.

ECC 모듈(100)의 신드롬 생성기는 쓰기 체크 비트와 읽기 체크 비트를 2 모듈로 연산하여 신드롬을 생성한다. 즉 신드롬은

Figure 112012007748654-pat00006
이다. 오류가 발생하지 않았다면 신드롬은 '0000'이 되지만, 5번째 데이터 비트에서 오류가 발생하여 신드롬이 '1001'이 되었다. The syndrome generator of the ECC module 100 generates a syndrome by calculating a write check bit and a read check bit into two modules. Syndrome is
Figure 112012007748654-pat00006
to be. If no error occurred, the syndrome would be '0000', but an error occurred on the fifth data bit, resulting in a syndrome of '1001'.

신드롬이 '1001'이므로, 이와 일치하는 전술한 H-행렬의 열의 5번째 열이다. 따라서 5번째 데이터 비트에서 오류가 발생했다는 것을 알 수 있다. Since the syndrome is '1001', it is the fifth column of the above-described column of the H-matrix. Therefore, it can be seen that an error has occurred in the fifth data bit.

ECC 모듈(100)의 디코더 유닛(130)은 신드롬을 사용하여 디코더 유닛(130)은 오류 비트 위치를 찾고 오류가 발생한 위치의 비트를 반전시켜 오류를 수정한다. 디코더 유닛(130)은 H-행렬의 열의 개수 만큼의 디코더를 포함하며, 각 디코더는 대응하는 H-행렬의 열의 각 원소를 입력으로 받는 낸드 게이트일 수 있다.The decoder unit 130 of the ECC module 100 uses a syndrome to find the error bit position and invert the bit at the position where the error occurred to correct the error. The decoder unit 130 includes as many decoders as the number of columns of the H-matrix, and each decoder may be a NAND gate that receives each element of the column of the corresponding H-matrix as an input.

다시 위 예로 돌아가서, (12, 8) 코드의 H-행렬은 4행 12열로 구성되므로, 4개의 입력을 갖는 12개의 낸드 게이트로 디코더 유닛이 구성된다. 예시적으로 도 3은 네 번째 및 다섯 번째 열에 대응하는 디코더를 도시한다. 디코더는 H-행렬의 대응하는 열의 원소를 입력으로 받되 '0'인 경우 반전한 값으로 입력받는다. 오류가 발생하기 않았다면 신드롬 비트 (S01, S02, S03, S04)가 모두 '0'이므로 각 디코더는 '0'을 출력한다. 하지만, 상술한 예에서 5번째 데이터 비트에 오류가 발생하여, 신드롬이 '1001'이 된다. 따라서 다섯 번째 열(다섯 번째 데이터 비트)에 대응하는 디코더(도 3의 우측 디코더) 만이 '0'을 출력하고 나머지 디코더들은 '1'을 출력한다(도 3의 좌측 디코더 참조). 따라서, 다섯 번째 데이터 비트에 오류가 발생한 것을 검출할 수 있다.
Returning to the above example, since the H-matrix of the (12, 8) code is composed of four rows and twelve columns, the decoder unit is composed of twelve NAND gates having four inputs. 3 exemplarily shows a decoder corresponding to the fourth and fifth columns. The decoder receives an input of an element of a corresponding column of the H-matrix as an input, but inverted when it is '0'. If no error occurs, each decoder outputs '0' because the syndrome bits S01, S02, S03, and S04 are all '0'. However, in the above example, an error occurs in the fifth data bit, and the syndrome becomes '1001'. Therefore, only the decoder (the right decoder of FIG. 3) corresponding to the fifth column (the fifth data bit) outputs '0' and the remaining decoders output '1' (see the left decoder of FIG. 3). Thus, it is possible to detect that an error occurs in the fifth data bit.

이러한 ECC 모듈 중 중 가장 큰 비중을 차지하고, H-행렬에 따라 설계가 가장 많이 달라지는 부분이 체크 비트 생성기와 디코더 부분인 반면에 신드롬 생성기와 수정기 부분은 코드에 관계없이 동일하게 설계된다. Among the ECC modules, the portion of the ECC module that has the largest design and the most different design depending on the H-matrix is the check bit generator and decoder, whereas the syndrome generator and the modifier are designed identically regardless of the code.

이에 본 발명의 일 실시 예에서는 체크 비트 생성기의 동작 시간을 감소시킬 수 있고 디코더 유닛의 면적을 크게 감소시킬 수 있는 ECC 모듈을 제공한다.
Accordingly, an embodiment of the present invention provides an ECC module that can reduce an operation time of a check bit generator and can greatly reduce an area of a decoder unit.

본 발명의 실시 예들은 메모리의 오류 정정에 관한 것이다. (n, k) 코드(code)는 n개 비트로 구성된 부호어들(code words)을 사용하는 오류 정정 부호이며, 하나의 부호어는 k개의 데이터 비트와 n-k(=m)개의 체크 비트로 구성된다. 이때, n은 k+m 이 된다. 그리고 일반적인 메모리에서 데이터 비트의 개수 k 는 2m-1이 된다. (n, k) 단일 오류 정정 코드는 (m × n) H-행렬로 표현되고, 이 (m × n) H-행렬은 m개의 행들과 n개의 열들로 구성된다. 이때 n개의 열은 k개의 데이터 비트 열과 m개의 체크 비트 열로 구성된다. 한편 신드롬은 m개의 비트로 구성되고, m개 비트로 구성된 신드롬은 2m개의 벡터를 표현할 수 있다. Embodiments of the present invention relate to error correction of a memory. The (n, k) code is an error correcting code using code words consisting of n bits, and one code word is composed of k data bits and nk (= m) check bits. At this time, n becomes k + m. In a typical memory, the number k of data bits is 2 m-1 . The (n, k) single error correction code is represented by an (m × n) H-matrix, which is composed of m rows and n columns. In this case, n columns include k data bit strings and m check bit strings. On the other hand, a syndrome is composed of m bits, and a syndrome consisting of m bits can represent 2 m vectors.

그런데, 일반적인 메모리에서 사용되는 H-행렬에서 디코딩되어야 하는 열의 개수는 n개, 즉 2m-1+m 이 된다. 따라서, 디코더는 H-행렬의 열중에서 최대 열 무게를 가지는 열을 디코딩하는 NAND 게이트의 입력의 개수를 m보다 작은 값을 가지게 할 수 있다. 이는 디코더가 디코딩해야 하는 열의 개수가 2m 이 아니라 그보다 작은 그에 따라 2m-1+m 이므로 가능하다.However, the number of columns to be decoded in the H-matrix used in a general memory is n, that is, 2 m-1 + m. Thus, the decoder may have the number of inputs of the NAND gate decoding the column having the maximum column weight among the columns of the H-matrix to have a value less than m. This is possible because the number of columns the decoder has to decode is not 2 m , but less than 2 m-1 + m.

이에 대해서 좀더 설명을 한다.This is explained further.

아래는 예시적인 (21, 16) 코드의 H-행렬이다. Below is the H-matrix of exemplary (21, 16) code.

Figure 112012007748654-pat00007
Figure 112012007748654-pat00007

이 같은 경우 통상적으로 디코더는 체크 비트의 개수(신드롬 비트의 개수)인 5개의 입력을 필요로 하고 단일 오류 정정을 위해서는 열의 개수인 21개의 디코더가 필요하다. 도 4에는 그 중에서 8번째 및 11번째 열에 대응하는 디코더를 도시한다.In this case, the decoder typically requires five inputs, the number of check bits (the number of syndrome bits), and 21 decoders, the number of columns, for single error correction. 4 shows decoders corresponding to the eighth and eleventh columns among them.

그런데, 단일 오류 정정을 위해서는 필요한 디코더 수는 25=32 가 아니라 열의 개수인 21개면 충분하다. 따라서, 모든 디코더가 입력이 5개일 필요 없이 최대 열 무게를 가지는 열을 디코딩하는 디코더의 입력의 개수는 그 열의 열 무게와 같아질 수 있다. 도 5에는 최대 열 무게를 가지지 않은 8번째 열에 대응하는 기존 디코더와 동일한 디코더와 최대 열 무게를 가지는 열인 11번째 열에 대응하는 본 발명의 새로운 디코더를 도시한다.However, for single error correction, the number of decoders required is 21 rather than 2 5 = 32. Thus, the number of inputs of a decoder for which every decoder decodes a column having the maximum column weight without having to have five inputs can be equal to the column weight of that column. FIG. 5 shows a new decoder of the present invention corresponding to the same decoder as the existing decoder corresponding to the eighth column having no maximum column weight and the eleventh column as the column having the maximum column weight.

따라서 위 (21, 16) 코드를 위한 디코딩 유닛이, 종래에는 21개의 5입력 디코더로 구성된 반면에, 본 발명의 실시 예에서는 최대 열 무게 선호 디코더는 최대 열 무게가 아닌 열을 디코딩하는 20개의 5입력 디코더와 최대 열 무게를 가지는 열을 디코딩할 1개의 4입력 디코더로 구성된다. 한편, 앞서 예로든 (12, 8) 코드의 경우 4열과 7열이 열 무게 3으로서 최대 열 무게를 가지는바, 종래 디코더 유닛은 12개의 4입력 디코더로 구성되나, 본 발명의 일 실시 예에 따르면 10개의 4입력 디코더와 2개의 3입력 디코더로 구성된다.
Thus, while the decoding unit for the above (21, 16) code is conventionally composed of 21 five-input decoders, in the embodiment of the present invention, the maximum column weight preference decoder is used to decode 20 five to decode columns rather than the maximum column weight. It consists of an input decoder and one four input decoder to decode the column with the maximum column weight. On the other hand, in the case of the (12, 8) code described above, four columns and seven columns have a maximum column weight as a column weight of three, and the conventional decoder unit is composed of twelve four-input decoders, according to an embodiment of the present invention. It consists of ten four-input decoders and two three-input decoders.

최대 열 무게 선호 디코더는 H-행렬에 최대 열 무게를 가지는 열의 개수가 많아질수록 디코더의 면적을 더 많이 감소시킬 수 있다. 그래서 본 발명의 실시 예에서는 디코더의 면적을 감소를 극대화할 수 있는 H-행렬 생성 방법을 제공한다.The maximum column weight preference decoder may further reduce the area of the decoder as the number of columns having the maximum column weight in the H-matrix increases. Therefore, an embodiment of the present invention provides an H-matrix generation method that can maximize the reduction of the area of a decoder.

본 발명자들은 H-행렬을 생성함에 있어서, 가능한 최대 열 무게를 가지는 열의 개수를 최대한으로 하고, 최대 열 무게를 가지는 열을 디코딩하기 위한 디코더의 입력 개수를 최대 열 무게 열의 열 무게 개수와 동일하게 한다.In creating an H-matrix, we maximize the number of columns with the maximum column weight possible, and make the number of inputs of the decoder for decoding the column with the maximum column weight equal to the column weight of the maximum column weight column. .

본 명세서에서 종래의 H-행렬과 비교해서 본 발명의 개념에 따른 가능한 많은 개수의 최대 열 무게를 갖는 H-행렬을 '최대 열 무게 선호 H-행렬'(maximum-column-weight prioritizied H-matrix) 이라 언급할 수 있다. 마찬가지로 최대 열 무게 선호 H-행렬을 기초로 동작하는 디코더를 '최대 열 무게 선호 디코더'로 언급할 수 있다.In this specification, an H-matrix having as many maximum column weights as possible according to the concept of the present invention as compared to a conventional H-matrix is referred to as a 'maximum-column-weight prioritizied H-matrix'. This can be mentioned. Similarly, a decoder operating on the basis of a maximum column weight preference H-matrix can be referred to as a 'maximum column weight preferred decoder'.

최대 열 무게 선호 H-행렬은 다음과 같은 조건을 만족한다.The maximum heat weight preference H-matrix satisfies the following conditions.

1) 어떤 열도 0 벡터가 아니다.1) No column is a zero vector.

2) 각각의 열은 다른 열과 서로 다른 벡터를 가진다.2) Each column has a different vector from the other columns.

3) 최대 열 무게를 가지는 열의 개수를 최대로 한다.3) Maximize the number of rows with the maximum column weight.

4) 각각의 행 무게는 행렬의 전체 무게를 행의 개수로 나눈 수에 가까운 정수로 한다.4) Each row weight is an integer close to the total weight of the matrix divided by the number of rows.

1번 및 2번 제약은 통상적인 해밍 코드와 동일한 제약사항이고, 3번 및 4번 제약 사항은 본 발명자들이 처음 제시하는 제약사항이다.
Constraints 1 and 2 are the same constraints as conventional Hamming code, and constraints 3 and 4 are the constraints first proposed by the inventors.

최대 열 무게 선호 H-행렬 생성 조건 1은 오류가 존재하지 않을 경우 신드롬이 0 벡터가 될 수 있게 한다.The maximum column weight preferred H-matrix generation condition 1 allows the syndrome to be a zero vector if no error exists.

최대 열 무게 선호 H-행렬 생성 조건 2는 오류가 발생한 비트의 위치의 열 벡터와 신드롬의 벡터값이 같게 하여준다. The maximum column weight preference H-matrix generation condition 2 allows the column vector at the position of the bit where the error occurred to be equal to the vector value of the syndrome.

최대 열 무게 선호 H-행렬 생성 조건 3에 의해서 최대 열 무게 선호 디코더를 사용할 경우 디코더의 면적 감소를 극대화할 수 있다. Maximum column weight preference H-matrix generation condition 3 can maximize the area reduction of the decoder when using the maximum column weight preference decoder.

최대 열 무게 선호 H-행렬 생성 조건 4는 모든 행의 무게를 비슷하게 만들어 줌으로써, 체크 비트 생성기의 동작 시간을 감소시킨다. Maximum Column Weight Preferred H-matrix generation condition 4 reduces the run time of the check bit generator by making the weights of all rows similar.

본 발명의 개념에 따른 실시 예에서 최대 열 무게 선호 H-행렬을 위한 위 조건 1 내지 4 중 조건 4는 선택사항이다.
In an embodiment according to the inventive concept, condition 4 of the above conditions 1 to 4 for the maximum heat weight preferred H-matrix is optional.

이하에서 본 발명의 개념의 일 실시 예에 따른 최대 열 무게 선호 H-행렬을 생성하는 방법에 대해서 설명을 한다.Hereinafter, a method of generating a maximum column weight preference H-matrix according to an embodiment of the present invention will be described.

위 최대 열 무게 선호 H-행렬 생성 조건 1 및 2는 통상의 기술자에게 잘 알려져 있으므로 설명을 생략한다. The above maximum column weight preferred H-matrix generation conditions 1 and 2 are well known to those skilled in the art and will not be described.

먼저 최대 열 무게 선호 H-행렬 생성 조건 3에 따른 최대 열 무게를 구하는 방법에 대해서 설명을 한다.First, a method of obtaining the maximum heat weight according to the H-matrix generation condition 3 of the maximum heat weight preference will be described.

(2m-1+ m, 2m-1) 최대 열 무게 선호 단일 오류 정정 코드를 생성하기 위해서는 우선 최대 열 무게 값을 구해야 한다. 최대 열 무게는 아래 <수학식 1>로 구해진다.(2 m-1 + m, 2 m-1 ) Maximum heat weight To generate a single error correction code, the maximum heat weight must first be found. The maximum heat weight is given by Equation 1 below.

Figure 112012007748654-pat00008
Figure 112012007748654-pat00008

여기서 MCW은 최대 열 무게(Maximum column weight)를 의미하고, mCI은 m개의 H-행렬의 행에서 I(I는 2, 3, ... , MCW)이라는 열 무게를 가질 수 있는 열의 개수를 의미한다.
Where MCW is the maximum column weight and m C I is the number of columns that can have a column weight of I (I is 2, 3, ..., MCW) in the m H-matrix rows. Means.

다음으로, 최대 열 무게 선호 H-행렬 생성 조건 3에 따른 최대 열 무게의 개수를 최대로 하는 방법에 대해서 설명을 한다.Next, a method of maximizing the maximum number of column weights according to the maximum column weight preference H-matrix generation condition 3 will be described.

H-행렬의 최대 열 무게가 결정되면, H-행렬에서 최대 열 무게의 개수가 허용하는 한 최대가 되게 한다. 이를 위해 본 발명의 개념에 따른 일 실시 예에서는, 예를 들어, 열 무게가 2, 3, ..., MCW-2, MCW, MCW-1인 순서로 H-행렬을 채운다. 즉, 최대 열 무게를 갖는 열이 맨 나중에 H-행렬에 채워지지 않고, 적어도 마지막에서 두 번째에 채워진다. 최대 열 무게를 갖는 열이 채워진 후에 행렬의 남는 열은(채워지지 않은 열은) 최대 열 무게보다 작은 열들, 예를 들어 MCW-1로 채워진다. 이때 H-행렬 생성 조건 4를 만족하도록, H-행렬의 각 행들의 행 무게가 비슷해질 수 있게 열 무게가 MCW-1인 열들 중에서 열들이 선택될 수 있다.
Once the maximum column weight of the H-matrix is determined, the maximum number of column weights in the H-matrix is maximized as permissible. To this end, in one embodiment according to the concept of the present invention, for example, the H-matrix is filled in the order of the heat weight of 2, 3, ..., MCW-2, MCW, MCW-1. That is, the column with the maximum column weight is not filled last in the H-matrix, but at least last second. After the column with the maximum column weight is filled, the remaining columns of the matrix (unfilled columns) are filled with columns smaller than the maximum column weight, for example MCW-1. At this time, the columns may be selected from the columns having the MCW-1 column weight so that the row weight of each row of the H-matrix is similar to satisfy the H-matrix generation condition 4.

좀더 구체적으로 부호어 비트가 71개이고 데이터 비트가 64개이고 체크 비트가 7개인 (71, 64) 최대 열 무게 선호 코드를 위한 H-행렬의 생성을 예로 들어 설명한다. More specifically, the generation of an H-matrix for the (71, 64) maximum column weight preference code of 71 codeword bits, 64 data bits, and 7 check bits will be described.

먼저 위 <수학식 1>에 따라 최대 열 무게를 계산하면, 27-1 (=64) 7C2 + 7C3 + 7C4 = 21+35+35 이므로, (71, 64) 최대 열 무게 선호 단일 오류 정정 코드의 H-행렬의 최대 열 무게는 4이다. First, calculate the maximum heat weight according to <Equation 1> above, 2 7-1 (= 64) 7 C 2 + 7 C 3 + Since 7 C 4 = 21 + 35 + 35, (71, 64) the maximum column weight is the maximum column weight of the H-matrix of the preferred single error correction code.

따라서, H-행렬은 열 무게가 2인 열들과 열 무게가 MCW-2인 열 무게 4인 열들로 우선 채워지게 된다. 열 무게가 2인 열은 7C2인 21개이고 열 무게가 4인 열은 7C4인 35개이다. H-행렬의 남은 8개의 데이터 비트 열들은 열 무게가 MCE-1인 열 무게가 3인 열들로 채워진다. 이때, 열 무게가 3인 35개의 열들 중에서, 위 제약 조건 4를 만족하도록 즉, 각각의 행 무게가 행렬의 전체 무게를 행의 개수로 나눈 값에 가까운 정수 30 또는 31가 되게 하는 8개의 열들이 선택될 수 있다.Thus, the H-matrix is first populated with rows of column weight 2 and columns of column weight 4 with MCW-2. Rows with a weight of 2 are 21 with 7 C 2 and rows with a weight of 4 are 35 with 7 C 4 . The remaining eight data bit columns of the H-matrix are filled with columns of column weight 3 with column weight MCE-1. Here, out of 35 columns with column weight 3, 8 columns satisfying the above constraint 4, i.e., each row weight becomes an integer 30 or 31 close to the total weight of the matrix divided by the number of rows. Can be selected.

이에 따라 생성되는 (71, 64) 최대 열 무게 선호 단일 오류 정정 코드의 H-행렬의 한 가지 예는 아래와 같다.One example of the H-matrix of the resulting (71, 64) maximum column weight preferred single error correction code is as follows.

Figure 112012007748654-pat00009

Figure 112012007748654-pat00009

상술한 최대 열 무게 선호 H-행렬 생성은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양자의 조합으로서 구현될 수도 있다. 이러한 기능성이 하드웨어로서 구현되는지 또는 소프트웨어로서 구현되는지 여부는 전체 시스템에 부과된 설계 제약 및 특정 애플리케이션에 의존한다. 통상의 기술자는 특정 애플리케이션 각각에 대해 상기 설명된 기능성을 다양한 방식으로 구현할 수도 있지만, 이러한 구현 결정이 본 발명의 범위로부터의 일탈을 야기하는 것으로 해석되어서는 안 된다.The maximum heat weight preference H-matrix generation described above may be implemented as electronic hardware, computer software, or a combination of both. Whether such functionality is implemented as hardware or software depends on the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.

최대 열 무게 선호 H-행렬 생성을 위한 소프트웨어는 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈식 디스크, CD-ROM, 또는 당업계에 공지된 임의의 다른 형태의 저장 매체에 상주할 수도 있다. 일 예시적 저장 매체는 프로세서가 저장 매체로부터 정보를 판독하고 그 저장 매체에 정보를 기입할 수 있도록 프로세서에 연결될 수 있다.
The software for generating maximum thermal weight preferred H-matrix is RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, register, hard disk, removable disk, CD-ROM, or any other form known in the art. May reside in a storage medium. One example storage medium may be coupled to the processor such that the processor may read information from and write information to the storage medium.

이하에서는 본 발명의 일 실시 예에 따른 최대 열 무게 선호 단일 오류 정정 코드와 기존 해밍 코드를 비교한다. 비교를 위해서 제안하는 단일 오류 정코 코드와 해밍 코드가 64개, 128개와 256개의 데이터 비트를 사용했을 때로 가정하였다. 또 간단하게 면적을 비교하기 위하여 체크 비트 생성기, 신드롬 생성기 및 수정기는 2입력 exclusive-or (XOR2) 게이트만을 이용하여 구현하였고, 디코더는 인버터와 2입력 또는 3입력 NAND 게이트와 NOR게이트로 구현하였다. 그리고 XOR2 게이트 한 단을 줄여주기 위하여 체크 비트 생성기와 신드롬 게이트를 하나의 XOR 게이트 트리로 구현하였다. Hereinafter, the maximum column weight preferred single error correction code according to an embodiment of the present invention is compared with the existing hamming code. For comparison, we assume that the proposed single error junk code and Hamming code use 64, 128, and 256 data bits. For simplicity, the check bit generator, syndrome generator, and modifier are implemented using only two input exclusive-or (XOR2) gates, and the decoder is implemented with an inverter, two input or three input NAND gate, and a NOR gate. In order to reduce one stage of the XOR2 gate, the check bit generator and the syndrome gate are implemented as one XOR gate tree.

아래 표 1은 기존의 해밍 코드와 제안하는 최대 열 무게 선호 단일 오류 정정 코드의 H-행렬 내 모든 무게, 최대 행 무게인 MRW (maximum row weight)와 최대 열 무게 (MCW)을 가지는 열의 개수를 나타낸다. Table 1 below shows the number of columns with all the weights in the H-matrix, the maximum row weight, MRW (maximum row weight), and the maximum column weight (MCW) of the existing Hamming code and the proposed maximum column weight preferred single error correction code. .

데이터 비트Data bits 코드 종류Code types H-행렬 내 전체 무게Total weight in H-matrix 최대 행 무게Max row weight 최대 열 무게 개수Maximum number of heat weights 64 비트64 bit 기존 해밍 코드Existing Hamming Code 212212 3636 1One 본 발명 코드Invention code 213213 3131 3535 128 비트
128 bit
기존 해밍 코드Original Hamming Code 470470 6868 1One
본 발명 코드Invention code 434434 5555 7070 256 비트256 bit 기존 해밍 코드Original Hamming Code 10491049 133133 1One 본 발명 코드Invention code 10031003 112112 126126

위 표 1을 보면 본 발명의 코드가 기존 해밍 코드에 비해서 행렬 내 전체무게가 상대적으로 작은 것을 확인할 수 있다. H-행렬 내 모든 무게가 적다는 것은 오류 정정 코드 수행 회로의 면적 부담이 감소하는 것을 의미한다. Looking at Table 1 above, it can be seen that the code of the present invention has a relatively small total weight in the matrix compared to the existing Hamming code. Less weight in the H-matrix means that the area burden of the error correction code execution circuitry is reduced.

또, 본 발명의 코드는 종래 해밍 코드에 비해서 최대 열 무게의 개수가 월등히 많다. 최대 열 무게를 가지는 열의 개수를 크게 증가시킴으로써, 최대 열 무게 선호 디코더의 면적 감소 효과를 극대화할 수 있다. In addition, the code of the present invention has a much higher maximum number of heat weights than the conventional hamming code. By greatly increasing the number of columns having the maximum column weight, the area reduction effect of the maximum column weight preferred decoder can be maximized.

또한, 오류 정정 코드 수행 회로 중 가장 오랜 동작 시간이 걸리는 하나로 구현된 체크 비트 생성기와 신드롬 게이트의 XOR2 게이트 트리의 단수 (L)은 다음과 같은 <수학식 2>로 구할 수 있다.In addition, the stage L of the check bit generator and the XOR2 gate tree of the syndrome gate, which are implemented as one of the longest operating time of the error correction code execution circuit, may be obtained by Equation 2 below.

Figure 112012007748654-pat00010
Figure 112012007748654-pat00010

여기서 [X] 함수는 X보다 작지않은 최소의 정수를 나타낸다. Where [X] is the smallest integer not less than X.

이에 따라 해밍 코드와 대비하여 제안하는 최대 열 무게 단일 오류 정정 코드의 XOR2 게이트 트리의 단수를 모든 데이트 비트에서 한 단을 감소시킬 수 있는 것을 확인하였다.As a result, it was confirmed that the number of stages of the XOR2 gate tree of the proposed maximum column weight single error correction code can be reduced by one stage in all data bits compared to the Hamming code.

도 6은 본 발명의 일 실시 예에 따른 최대 열 무게 선호 디코더를 이용한 최대 열 무게 선호 단일 오류 정정 코드와 기존 해밍 코드를 사용한 오류 정정 코드 수행 회로에서 사용된 트랜지스터의 개수를 비교한 것을 도시한다. FIG. 6 illustrates a comparison of the number of transistors used in an error correction code performing circuit using a maximum column weight preferred single error correction code using a maximum column weight preferred decoder and a conventional hamming code according to an embodiment of the present invention.

하나로 구현된 체크 비트 생성기와 신드롬 생성기에서 해밍 코드와 대비하여 본 발명의 일 실시 예에 따른 최대 열 무게 선호 단일 오류 정정 코드는 64개, 128개와 256개의 데이터 비트가 한 부호어에서 사용되었을 경우 각각 0.5%의 트랜지스터 개수 증가, 7.8%와 4.5%의 트랜지스터 개수 감소를 가져왔다. In the check bit generator and the syndrome generator implemented as one, the maximum column weight preferred single error correction code according to an embodiment of the present invention is 64, 128, and 256 data bits when used in one codeword. The transistor count increased by 0.5%, and the transistor count decreased by 7.8% and 4.5%.

또한 디코더에서 최대 열 무게 선호 단일 오류 정정 코드는 64개, 128개와 256개의 데이터 비트가 한 부호어에서 사용되었을 경우 각각 28.3%, 32.7%와 26.7%의 트랜지스터 개수 감소를 가져왔다. In addition, the maximum column weight preferred single error correction code in the decoder has reduced transistor counts by 28.3%, 32.7% and 26.7%, respectively, when 64, 128 and 256 data bits are used in one codeword.

따라서 전체 오류 정정 코드 수행 회로에서는 최대 열 무게 선호 단일 오류 정정 코드는 64개, 128개와 256개의 데이터 비트가 한 부호어에서 사용되었을 경우 각각 10.6%, 16.1%와 11.8%의 트랜지스터 개수 감소를 가져왔다.
Therefore, in the full error correction code execution circuit, the maximum column weight preferred single error correction code reduced transistor counts by 10.6%, 16.1%, and 11.8%, respectively, when 64, 128, and 256 data bits were used in one codeword. .

이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시 예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.In the present invention as described above has been described by the specific embodiments, such as specific components and limited embodiments and drawings, but this is provided to help a more general understanding of the present invention, the present invention is not limited to the above embodiments. For those skilled in the art, various modifications and variations are possible from these descriptions.

따라서, 본 발명의 사상은 설명된 실시 예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention should not be limited to the described embodiments, and all the things that are equivalent to or equivalent to the scope of the claims as well as the following claims will belong to the scope of the present invention.

100: ECC 모듈
200: 메모리
110: 체크 비트 생성기
120: 신드롬 생성기
130: 디코딩 유닛
140: 수정기
210: 데이터 비트 메모리
220: 체크 비트 메모리
100: ECC module
200: memory
110: check bit generator
120: syndrome generator
130: decoding unit
140: modifier
210: data bit memory
220: check bit memory

Claims (12)

(n, k) 오류 정정 코드를 위한 디코더 유닛에 있어서,
상기 디코더 유닛은 서로 다른 개수의 입력을 받는 복수 개의 디코더를 포함하고, 상기 복수 개의 디코더 중 적어도 하나는 H-행렬의 최대 열 무게를 갖는 열의 열 무게와 동일한 입력을 갖는 것을 특징으로 하는 디코더 유닛.
A decoder unit for a (n, k) error correction code,
The decoder unit comprises a plurality of decoders receiving different numbers of inputs, wherein at least one of the plurality of decoders has an input equal to the column weight of the column having the maximum column weight of the H-matrix.
제1 항에 있어서,
상기 디코더 유닛은 (n-k)개의 입력을 갖는 적어도 하나의 제1 디코더 및 (n-k)보다 작은 입력을 갖는 적어도 하나의 제2 디코더를 포함하는 디코더 유닛.
The method according to claim 1,
The decoder unit comprises at least one first decoder having (nk) inputs and at least one second decoder having inputs smaller than (nk).
제2 항에 있어서,
상기 제2 디코더의 입력 개수는 상기 최대 열 무게와 동일한 디코더 유닛.
The method of claim 2,
And a number of inputs of the second decoder is equal to the maximum column weight.
수신한 메세지 데이터(k 비트)로부터 쓰기 체크 비트를 생성하고 수신되어 저장된 메세지 데이터로부터 읽기 체크 비트(m 비트)를 생성하는 체크 비트 생성기;
읽기 체크 비트 및 쓰기 체크 비트로부터 신드롬을 계산하는 신드롬 생성기; 그리고,
신드롬 생성기의 출력을 입력으로 하여 오류를 검출하는 디코더 유닛을 포함하며,
상기 디코더 유닛은 서로 다른 개수의 입력을 받는 복수 개의 디코더를 포함하고, 상기 복수 개의 디코더 중 적어도 하나는 H-행렬의 최대 열 무게를 갖는 열의 열 무게와 동일한 입력을 갖는 오류 정정 부호 모듈.
A check bit generator for generating a write check bit from the received message data (k bits) and a read check bit (m bits) from the received and stored message data;
A syndrome generator for calculating a syndrome from the read check bit and the write check bit; And,
A decoder unit for detecting an error as an input of an output of the syndrome generator,
And the decoder unit comprises a plurality of decoders receiving different numbers of inputs, wherein at least one of the plurality of decoders has an input equal to a column weight of a column having a maximum column weight of an H-matrix.
제4 항에 있어서,
(m)개의 입력을 갖는 적어도 하나의 제1 디코더 및 (m)보다 작은 입력을 갖는 적어도 하나의 제2 디코더를 포함하는 오류 정정 부호 모듈.
5. The method of claim 4,
at least one first decoder having (m) inputs and at least one second decoder having inputs smaller than (m).
제5 항에 있어서,
상기 제2 디코더의 입력 개수는 상기 최대 열 무게와 동일한 오류 정정 부호 모듈.
6. The method of claim 5,
And an input number of the second decoder is equal to the maximum column weight.
(n, k) 오류 정정 코드를 위한 디코더 유닛에 있어서,
상기 디코더 유닛은 H-행렬의 열의 개수(n)에 대응하는 n개의 디코더를 포함하고, H-행렬의 최대 열 무게를 갖는 열에 대응하는 디코더는 상기 최대 열 무게와 동일한 입력을 갖는 것을 특징으로 하는 디코더 유닛.
A decoder unit for a (n, k) error correction code,
The decoder unit includes n decoders corresponding to the number n of columns of the H-matrix, and the decoder corresponding to the column having the maximum column weight of the H-matrix has an input equal to the maximum column weight. Decoder unit.
오류 정정 코드를 위한 H-행렬 생성 방법으로,
모두 0인 열이 없는 제1 조건, 각각의 열은 다른 열과 모두 구분되는 제2 조건, 및 최대 열 무게를 가지는 열의 개수를 최대로 하는 제3 조건을 만족하는 H-행렬을 생성하는 단계;
를 포함하는 H-행렬 생성 방법.
H-matrix generation method for error correction code,
Generating an H-matrix that satisfies a first condition without all zero columns, a second condition in which each column is distinguished from all other columns, and a third condition maximizing the number of columns having a maximum column weight;
H-matrix generation method comprising a.
제8 항에 있어서, 상기 H-행렬을 생성하는 단계는
상기 생성된 H-행렬의 각각의 행 무게는 행렬의 전체 무게를 행의 개수로 나눈 수에 가까운 정수로 하는 제4 조건을 더 만족하도록 H-행렬을 생성하는 H-행렬 생성 방법.
The method of claim 8, wherein generating the H-matrix
And generating a H-matrix so as to further satisfy a fourth condition in which each row weight of the generated H-matrix is an integer close to the total weight of the matrix divided by the number of rows.
제8 항에 있어서,
열 무게가 2, 3, MCW-2, MCW, MCW-1인 순서로 열을 채우는 H-행렬 생성 방법.
The method of claim 8,
H-matrix generation method of filling columns in the order of 2, 3, MCW-2, MCW, MCW-1.
제8 항 내지 제10 항의 방법 중 어느 한 항의 방법을 수행하기 위한 프로그램을 저장하는 컴퓨터로 읽을 수 있는 기록 매체.A computer-readable recording medium storing a program for performing the method of any one of claims 8 to 10. 제8 항 내지 제10 항의 방법 중 어느 한 항의 방법의 H-행렬 생성 방법을 통해 생성된 H-행렬을 패리티 체크 행렬로 사용하여, 수신된 부호어의 오류를 검출 및 정정하는 오류 정정 부호 모듈.An error correction code module for detecting and correcting an error of a received codeword by using the H-matrix generated by the H-matrix generation method of any one of the methods of claims 8 to 10 as a parity check matrix.
KR1020120009201A 2012-01-30 2012-01-30 Methods of Generating Parity Check Matrix, Error Correction Methods and Devices using thereof, and Memories and Electronic Device using thereof KR101304570B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120009201A KR101304570B1 (en) 2012-01-30 2012-01-30 Methods of Generating Parity Check Matrix, Error Correction Methods and Devices using thereof, and Memories and Electronic Device using thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120009201A KR101304570B1 (en) 2012-01-30 2012-01-30 Methods of Generating Parity Check Matrix, Error Correction Methods and Devices using thereof, and Memories and Electronic Device using thereof

Publications (2)

Publication Number Publication Date
KR20130087931A KR20130087931A (en) 2013-08-07
KR101304570B1 true KR101304570B1 (en) 2013-09-05

Family

ID=49214494

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120009201A KR101304570B1 (en) 2012-01-30 2012-01-30 Methods of Generating Parity Check Matrix, Error Correction Methods and Devices using thereof, and Memories and Electronic Device using thereof

Country Status (1)

Country Link
KR (1) KR101304570B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102504178B1 (en) * 2016-08-23 2023-02-28 에스케이하이닉스 주식회사 Memory device
KR20200058048A (en) * 2018-11-19 2020-05-27 삼성전자주식회사 Semiconductor memory device and memory system having the same

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001092723A (en) * 1999-09-21 2001-04-06 Hitachi Ltd Ecc control circuit and memory system having the same
KR20040050536A (en) * 2002-12-10 2004-06-16 삼성전자주식회사 New pipline Reed Solomon decoding method for providing extreme hardware efficiency
JP2007110265A (en) * 2005-10-11 2007-04-26 Samsung Electronics Co Ltd Decoding apparatus and decoding method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001092723A (en) * 1999-09-21 2001-04-06 Hitachi Ltd Ecc control circuit and memory system having the same
KR20040050536A (en) * 2002-12-10 2004-06-16 삼성전자주식회사 New pipline Reed Solomon decoding method for providing extreme hardware efficiency
JP2007110265A (en) * 2005-10-11 2007-04-26 Samsung Electronics Co Ltd Decoding apparatus and decoding method

Also Published As

Publication number Publication date
KR20130087931A (en) 2013-08-07

Similar Documents

Publication Publication Date Title
US10707899B2 (en) Bit-flipping decoder for G-LDPC codes with syndrome-decoding for component codes
US10439649B2 (en) Data dependency mitigation in decoder architecture for generalized product codes for flash storage
US9391641B2 (en) Syndrome tables for decoding turbo-product codes
US10484020B2 (en) System and method for parallel decoding of codewords sharing common data
US9654147B2 (en) Concatenated error correction device
US20180167088A1 (en) Error-Correcting Code Method and System with Hybrid Block Product Codes
JP2006244259A (en) In-byte plural spotty byte error correction/detection method and device limiting error byte number
US10090860B2 (en) Memory system using integrated parallel interleaved concatenation
US10498366B2 (en) Data dependency mitigation in parallel decoders for flash storage
US11632135B2 (en) Apparatuses and methods for interleaved BCH codes
US9548761B2 (en) Coding and decoding of error correcting codes
US10200066B2 (en) Code reconstruction scheme for multiple code rate TPC decoder
CN110941505A (en) Method for generating error correction circuit
US9584159B1 (en) Interleaved encoding
KR101304570B1 (en) Methods of Generating Parity Check Matrix, Error Correction Methods and Devices using thereof, and Memories and Electronic Device using thereof
CN110113058B (en) Coding and decoding method, device, equipment and computer readable storage medium
Badack et al. Modified DEC BCH codes for parallel correction of 3-bit errors comprising a pair of adjacent errors
KR101355988B1 (en) Encoding, decoding, and multi-stage decoding circuits and methods for concatenated bch code, error correct circuit of flash memory device using the same, and flash memory device using the same
KR102007163B1 (en) Encoder, decoder and semiconductor device including the same
US10404282B2 (en) Apparatuses and methods for integrated interleaved Reed-Solomon encoding and decoding
JP2020046823A (en) Memory system
US9391647B2 (en) Decoder and decoding method thereof for min-sum algorithm low density parity-check code
Spinner et al. A decoder with soft decoding capability for high-rate generalized concatenated codes with applications in non-volatile flash memories
US20140344652A1 (en) Method for generating a maximized linear correcting code, method and device for decoding such a code
KR101355986B1 (en) Encoding, decoding, and multi-stage decoding circuits and methods for concatenated bch code, error correct circuit of flash memory device using the same, and flash memory device using the same

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
FPAY Annual fee payment

Payment date: 20160830

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170821

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180827

Year of fee payment: 6