KR20160140512A - Decoder and memory controller including the same - Google Patents

Decoder and memory controller including the same Download PDF

Info

Publication number
KR20160140512A
KR20160140512A KR1020160066044A KR20160066044A KR20160140512A KR 20160140512 A KR20160140512 A KR 20160140512A KR 1020160066044 A KR1020160066044 A KR 1020160066044A KR 20160066044 A KR20160066044 A KR 20160066044A KR 20160140512 A KR20160140512 A KR 20160140512A
Authority
KR
South Korea
Prior art keywords
decoder
syndrome
serial operation
bit groups
completed
Prior art date
Application number
KR1020160066044A
Other languages
Korean (ko)
Other versions
KR101791637B1 (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 주식회사 쏠리드
Publication of KR20160140512A publication Critical patent/KR20160140512A/en
Application granted granted Critical
Publication of KR101791637B1 publication Critical patent/KR101791637B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1575Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M9/00Parallel/series conversion or vice versa

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Abstract

The present invention relates to a decoder and a memory controller including the same. According to an embodiment of the present invention, a decoder includes a syndrome calculator for generating syndrome values from a received codeword, wherein the syndrome calculator includes multipliers and adders configured to input the codeword by a bit group unit having a plurality of bits in parallel and performs a serial operation for each of the inputted bit groups in parallel so as to generate the syndrome values. Accordingly, the present invention can minimize the complexity of a decoder structure.

Description

디코더 및 이를 포함하는 메모리 컨트롤러{DECODER AND MEMORY CONTROLLER INCLUDING THE SAME}[0001] DECODER AND MEMORY CONTROLLER INCLUDING THE SAME [0002]

본 발명의 기술적 사상은 디코더 및 이를 포함하는 메모리 컨트롤러에 관한 것으로, 보다 상세하게는 복수의 비트들을 포함하는 비트 그룹 단위로 병렬로 입력받고, 병렬로 입력된 비트 그룹들 각각에 대하여 직렬 연산을 수행함으로써 상기 신드롬 값들을 생성할 수 있는 신드롬 계산기를 포함하는 디코더 및 이를 포함하는 메모리 컨트롤러에 관한 것이다.The present invention is directed to a decoder and a memory controller including the decoder. More particularly, the present invention relates to a decoder and a memory controller including the decoder and the memory controller. And a syndrome calculator capable of generating the syndrome values, and a memory controller including the decoder.

일반적으로 디코더를 설계함에 있어서 복잡도를 최소로 하기를 원하는 경우, 곱셈기가 덧셈기 같은 하나의 리소스를 매 클럭마다 반복적으로 사용하는 구조로 설계되었다. 또한, 디코더를 설계함에 있어서 고속 처리가 필요한 경우, 여러 개의 곱셈기와 덧셈기를 사용하여 한 클럭에 필요한 연산을 동시에 처리할 수 있는 구조로 설계되었다. Generally, when it is desired to minimize the complexity in designing a decoder, the multiplier is designed to repeatedly use one resource such as an adder every clock. In addition, when high speed processing is required in designing a decoder, it is designed to be capable of simultaneously processing necessary operations for one clock by using a multiplier and an adder.

하지만, 복잡도 최소화 및 고속 처리가 모두 필요한 경우에 대해서는 체계화된 방법이나 구조가 제안되지 않아, 경우에 따라 각 서브블록들을 직렬화하거나 병렬화하는 방식으로 설계되어 왔다.However, when both complexity minimization and high-speed processing are required, a structured method or structure is not proposed, and in some cases, the subblocks have been designed to be serialized or parallelized.

BCH(Bose-Chaudhuri-Hoquenbhem) 디코더와 관련하여서도, 직렬/병렬 정도를 자유롭게 조절할 수 있는 체계화된 구조가 없어 확장성(scalability)이 제한되며 효율성이 떨어지고 해당 목적에 맞는 최적의 구조를 보장해 주기 어려운 문제가 있었다. 특히, 다항식 나눗셈을 수행하여야 하는 BCH 코드의 특성상 유연한 직렬화나 병렬화가 쉽지 않은 신드롬 연산 단계와 관련하여 문제되고 있다.As for BCH (Bose-Chaudhuri-Hoquenbhem) decoder, scalability is limited because there is no structured structure capable of freely adjusting serial / parallel degree, efficiency is low and it is difficult to guarantee optimal structure for the purpose There was a problem. Especially, the problem of BCH code which has to perform polynomial division is problematic with respect to the syndrome operation step which is not easy to be flexible serialization or parallelization.

본 발명의 기술적 사상에 따른 디코더 및 이를 포함하는 메모리 컨트롤러가 이루고자 하는 기술적 과제는, 복수의 비트들을 포함하는 비트 그룹 단위로 병렬로 입력받고, 병렬로 입력된 비트 그룹들 각각에 대하여 직렬 연산을 수행함으로써 상기 신드롬 값들을 생성할 수 있는 신드롬 계산기를 포함하는 디코더 및 이를 포함하는 메모리 컨트롤러를 제공하는 것이다.Technical Solution According to an aspect of the present invention, there is provided a decoder and a memory controller including the decoder. The decoder includes a plurality of bit groups, each of which includes a plurality of bits, And a syndrome calculator capable of generating the syndrome values, and a memory controller including the same.

본 발명의 기술적 사상에 의한 일 양태에 따른 디코더(decoder)는 수신된 코드워드(codeword)로부터 신드롬(syndrome) 값들을 생성하는 신드롬 계산기를 포함하고, 상기 신드롬 계산기는 상기 코드워드를 복수의 비트들을 포함하는 비트 그룹 단위로 병렬로 입력받고, 병렬로 입력된 비트 그룹들 각각에 대하여 직렬 연산을 수행함으로써 상기 신드롬 값들을 생성하는 곱셈기들과 덧셈기들을 포함한다.A decoder according to an aspect of the technical idea of the present invention includes a syndrome calculator for generating syndrome values from a received codeword and the syndrome calculator is operable to convert the codeword into a plurality of bits, And multipliers and adders for receiving the syndrome values in units of bit groups included therein and generating the syndrome values by performing a serial operation on each of the bit groups input in parallel.

일부 실시 예에서, 상기 코드워드에 포함된 상기 비트 그룹들 각각에 포함된 상기 복수의 비트들은, 상기 덧셈기들을 통하여 입력될 수 있다.In some embodiments, the plurality of bits contained in each of the bit groups included in the codeword may be input via the adders.

일부 실시 예에서, 상기 비트 그룹들 각각은 적어도 3이상의 비트들을 포함하며, 상기 곱셈기들은 각각이 상기 덧셈기들 사이에 배치되는 누적 곱셈기들을 포함할 수 있다.In some embodiments, each of the bit groups includes at least three or more bits, and the multipliers may include accumulative multipliers, each of which is disposed between the adders.

일부 실시 예에서, 상기 누적 곱셈기들은 서로 동일한 값을 가지는 갈로이스 필드 엘리먼트(Galois Field element)를 누적적으로 곱할 수 있다.In some embodiments, the accumulative multipliers may cumulatively multiply Galois Field elements having the same value.

일부 실시 예에서, 상기 신드롬 계산기는 상기 비트 그룹들 중에서 어느 하나의 비트 그룹에 대한 직렬 연산이 완료되면, 직렬 연산이 완료된 비트 그룹에 대한 처리 데이터를 임시 저장하기 위한 레지스터(register)를 더 포함할 수 있다.In some embodiments, the syndrome calculator further includes a register for temporarily storing processing data for a bit group for which serial operation is completed, when the serial operation for any one of the bit groups is completed .

일부 실시 예에서, 상기 곱셈기들은 직렬 연산이 완료된 상기 비트 그룹에 대하여 단위 갈로이스 필드 엘리먼트를 곱하는 단위 곱셈기를 포함할 수 있다.In some embodiments, the multipliers may include a unit multiplier that multiplies a unit Galois field element for the group of bits for which the serial operation is complete.

일부 실시 예에서, 상기 신드롬 계산기는 상기 레지스터와 상기 단위 곱셈기 사이에 제1스위치를 더 포함하고, 상기 제1스위치는 상기 비트 그룹들 중에서 첫번째 비트 그룹의 직렬 연산이 완료되기 이전에는 턴-오프(turn-off)되고, 상기 첫번째 비트 그룹의 직렬 연산이 완료된 이후에는 턴-온(turn-on)되도록 제어될 수 있다.In some embodiments, the syndrome calculator further comprises a first switch between the register and the unit multiplier, wherein the first switch is turned off before the serial operation of the first bit group among the bit groups is completed off of the first bit group, and may be controlled to be turned on after the serial operation of the first bit group is completed.

일부 실시 예에서, 상기 신드롬 계산기는 상기 신드롬 계산기의 출력단에 위치한 제2스위치를 더 포함하고, 상기 제2스위치는 상기 비트 그룹들 모두에 대한 직렬 연산이 완료되기 이전에는 턴-오프되고, 상기 비트 그룹들 모두에 대한 직렬 연산이 완료된 이후에는 턴-온되도록 제어될 수 있다.In some embodiments, the syndrome calculator further comprises a second switch located at an output of the syndrome calculator, wherein the second switch is turned off before serial operation on all of the bit groups is completed, And may be controlled to be turned on after serial operation on all of the groups is completed.

일부 실시 예에서, 상기 디코더는 상기 신드롬 값들에 기초하여 에러 위치 다항식을 생성하는 키 방정식 솔버(key equation solver), 상기 에러 위치 다항식에 기초하여 에러 위치를 구하는 치엔 서치 블록(chien search block) 및 상기 에러 위치에 기초하여 상기 수신 데이터의 에러를 수정하고, 수정된 수신 데이터를 출력하는 에러 수정 블록을 더 포함할 수 있다.In some embodiments, the decoder includes a key equation solver that generates an error locator polynomial based on the syndrome values, a chien search block that finds an error locus based on the error locator polynomial, And an error correction block for correcting the error of the received data based on the error position and outputting the corrected received data.

본 발명의 기술적 사상에 의한 일 양태에 따른 메모리 컨트롤러(memory controller)는 상기 디코더를 포함할 수 있다.The memory controller according to an aspect of the technical idea of the present invention may include the decoder.

본 발명의 기술적 사상에 의한 실시 예에 따른 방법과 장치는, 복수의 비트들을 포함하는 비트 그룹 단위로 병렬로 입력받고, 병렬로 입력된 비트 그룹들 각각에 대하여 직렬 연산을 수행하여 상기 신드롬 값들을 생성함으로써 디코딩 처리 과정을 고속화하면서도 디코더 구조의 복잡도를 최소화 할 수 있는 효과가 있다.A method and an apparatus according to an embodiment of the present invention may be implemented in parallel by a bit group unit including a plurality of bits and performing serial operation on each of bit groups input in parallel to generate the syndrome values The complexity of the decoder structure can be minimized while speeding up the decoding process.

본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 일 실시 예에 따른 디코더의 블록도이다.
도 2는 도 1에 도시된 신드롬 계산기의 일 실시 예를 나타낸 도면이다.
도 3은 본 발명의 일 실시 예에 따른 메모리 시스템의 블록도이다.
BRIEF DESCRIPTION OF THE DRAWINGS A brief description of each drawing is provided to more fully understand the drawings recited in the description of the invention.
1 is a block diagram of a decoder in accordance with an embodiment of the present invention.
FIG. 2 is a diagram showing an embodiment of the syndrome calculator shown in FIG. 1. FIG.
3 is a block diagram of a memory system in accordance with one embodiment of the present invention.

본 발명의 기술적 사상은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명의 기술적 사상을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 기술적 사상의 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the invention as claimed. However, it should be understood that the technical idea of the present invention is not limited to the specific embodiments but includes all changes, equivalents, and alternatives included in the technical idea of the present invention.

본 발명의 기술적 사상을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS [0029] In the following description of the present invention, a detailed description of known technologies will be omitted when it is determined that the gist of the present invention may be unnecessarily obscured. In addition, numerals (e.g., first, second, etc.) used in the description of the present invention are merely an identifier for distinguishing one component from another.

또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.Also, in this specification, when an element is referred to as being "connected" or "connected" with another element, the element may be directly connected or directly connected to the other element, It should be understood that, unless an opposite description is present, it may be connected or connected via another element in the middle.

또한, 본 명세서에 기재된 "~부(유닛)", "~기", "~자", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.It should be noted that the terms such as " unit, "" to, "" Or a combination of hardware and software.

그리고 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.It is to be clarified that the division of constituent parts in this specification is merely a division by each main function of each constituent part. That is, two or more constituent parts to be described below may be combined into one constituent part, or one constituent part may be divided into two or more functions according to functions that are more subdivided. In addition, each of the constituent units described below may additionally perform some or all of the functions of other constituent units in addition to the main functions of the constituent units themselves, and that some of the main functions, And may be carried out in a dedicated manner.

이하, 본 발명의 기술적 사상에 따른 실시예들을 차례로 상세히 설명한다.Hereinafter, embodiments according to the technical idea of the present invention will be described in detail.

도 1은 본 발명의 일 실시 예에 따른 디코더의 블록도이다.1 is a block diagram of a decoder in accordance with an embodiment of the present invention.

도 1을 참조하면, 실시 예에 따라, 디코더(decoder, 100)는 BCH(Bose-Chaudhuri-Hoquenbhem) 디코더로 구현될 수 있다.Referring to FIG. 1, according to an embodiment, a decoder 100 may be implemented as a Bose-Chaudhuri-Hoquenbhem (BCH) decoder.

디코더(100)는 데이터 버퍼(data buffer, 110), 신드롬 계산기(syndrome calculator, 120), 키 방정식 솔버(key equation solver, 130), 치엔 서치 블록(chien search block, 140), 및 에러 정정 블록(error correcting block, 150)을 포함할 수 있다.The decoder 100 includes a data buffer 110, a syndrome calculator 120, a key equation solver 130, a chien search block 140, and an error correction block an error correcting block 150 may be included.

데이터 버퍼(110)는 수신된 코드워드(R(x))를 임시로 저장하였다가 에러 정정 블록(150)으로 제공할 수 있다.The data buffer 110 may temporarily store the received codeword R (x) and provide it to the error correction block 150.

신드롬 계산기(120)는 수신된 코드워드(R(x))에 기초하여 신드롬 값들(S(x))을 생성한다. 수신된 코드워드(R(x))에 에러가 없는 경우 신드롬 값들(S(x))은 모두 "0"의 값을 가지며, 수신된 코드워드(R(x))에 에러가 있는 경우 신드롬 값들(S(x))은 "0"이 아닌 값을 포함한다.Syndrome calculator 120 generates syndrome values S (x) based on the received codeword R (x). If there is no error in the received codeword R (x), the syndrome values S (x) all have a value of "0 ", and if there is an error in the received codeword R (x) (S (x)) includes a value other than "0 ".

신드롬 값들(S(x))이 모두 "0"의 값을 가지는 경우, 데이터 버퍼(110)에 저장된 코드워드(R(x))는 별도의 에러 정정없이 디코더(100)로부터 출력될 수 있다.The codeword R (x) stored in the data buffer 110 can be output from the decoder 100 without additional error correction if the syndrome values S (x) all have a value of "0".

신드롬 값들(S(x))이 "0"이 아닌 값을 포함하는 경우, 에러 정정을 위하여 신드롬 값들(S(x))이 키 방정식 솔버(130)로 전달된다.Syndrome values S (x) are passed to the key equation solver 130 for error correction if the syndrome values S (x) include a value other than "0".

본 발명의 실시 예에 따른 신드롬 계산기(120)의 구체적인 구조에 대해서는 도 2를 참조하여 상세히 설명된다.The concrete structure of the syndrome calculator 120 according to the embodiment of the present invention will be described in detail with reference to FIG.

키 방정식 솔버(130)는 수신된 신드롬 값들(S(x))에 기초하여 에러 위치 다항식(∧(x))을 생성하여 치엔 서치 블록(140)으로 전달할 수 있다.The key equation solver 130 may generate an error locator polynomial (? (X)) based on the received syndrome values S (x) and pass it to the Chien search block 140.

실시 예에 따라, 키 방정식 솔버(130)는 벌러캠프-매시(Berlekamp-Massey) 알고리즘, 스텝-바이-스텝(Step-By-Step(SBS)) 알고리즘, 유클리드(Euclidean) 알고리즘, 또는 수정 유클리드(modified Euclidean) 알고리즘 등을 이용하여 에러 위치 다항식(∧(x))을 생성할 수 있다.According to an embodiment, the key equation solver 130 may be implemented using a Berlekamp-Massey algorithm, a step-by-step algorithm, an Euclidean algorithm, or a modified Euclidean algorithm modified Euclidean algorithm) to generate an error locator polynomial (∧ (x)).

치엔 서치 블록(140)은 키 방정식 솔버(130)로부터 전달된 에러 위치 다항식(∧(x))에 기초하여, 에러 위치들을 계산하고 계산 결과에 따라 에러 다항식(E(x))을 생성할 수 있다. 치엔 서치 블록(140)은 생성된 에러 다항식(E(x))을 에러 정정 블록(150)으로 전달할 수 있다.The quench search block 140 may calculate error locations and generate an error polynomial E (x), based on the error locator polynomial (∧ (x)) delivered from the key equation solver 130 have. The search query block 140 may pass the generated error polynomial E (x) to the error correction block 150.

에러 정정 블록(150)은 치엔 서치 블록(140)으로부터 전달된 에러 다항식(E(x))에 기초하여 데이터 버퍼(110)로부터 버퍼링되어 수신된 코드워드(R(x))의 에러를 정정하고, 에러가 정정된 코드워드(C(x))를 출력할 수 있다.The error correction block 150 corrects the error of the received codeword R (x) buffered from the data buffer 110 based on the error polynomial E (x) delivered from the CHN search block 140 , The error-corrected code word C (x) can be output.

도 2는 도 1에 도시된 신드롬 계산기의 일 실시 예를 나타낸 도면이다.FIG. 2 is a diagram showing an embodiment of the syndrome calculator shown in FIG. 1. FIG.

도 1과 도 2를 참조하면, 신드롬 계산기(120)는 수신된 코드워드(R(x))를 비트 그룹 단위로 병렬로 입력받고, 병렬로 입력된 비트 그룹들 각각에 대하여 직렬 연산을 수행함으로써 신드롬 값들(Si)을 생성하는 곱셈기들(122-1~122-4)과 덧셈기들(124-1~124-4)을 포함할 수 있다.1 and 2, the syndrome calculator 120 receives a received codeword R (x) in parallel on a bit group basis and performs a serial operation on each of the bit groups input in parallel And may include multipliers 122-1 through 122-4 and adders 124-1 through 124-4 that generate syndrome values S i .

도 2에서는 수신된 코드워드(R(x))를 4비트의 비트 그룹 단위로 병렬로 입력받는 경우를 설명하지만 이에 한정되지 않으며, 신드롬 계산기(120)는 수신된 코드워드(R(x))를 적어도 2이상의 비트들을 포함하는 비트 그룹 단위로 병렬로 입력받을 수 있다.2, a syndrome calculator 120 calculates a syndrome R (x) of a received codeword R (x) in accordance with the following equation: < EMI ID = May be input in parallel in units of bit groups including at least two or more bits.

실시 예에 따라, 수신된 코드워드(R(x))가 비트 그룹의 비트 수로 나누어 떨어지지 않는 경우(예컨대, 3비트의 비트 그룹으로 구성되는 경우), 마지막 비트 그룹에 "0" 값이 삽입되는 형태로 비트 그룹이 구성될 수도 있다.According to the embodiment, when the received codeword R (x) is not divided by the number of bits of the bit group (for example, if it consists of a group of 3 bits), a value of "0 & Bit groups may be formed.

이하에서는 코드워드(R(x))의 비트 그룹의 개념 이해를 위하여 신드롬 값들(Si)의 연산 과정을 함께 설명한다.Hereinafter, the calculation process of the syndrome values (S i ) will be described together to understand the concept of the bit group of the code word (R (x)).

신드롬 값들(Si)은 기본적으로 아래의 [수식 1]에 따라 구해질 수 있다.Syndrome values (S i ) can be basically obtained according to [Equation 1] below.

[수식 1][Equation 1]

Si=

Figure pat00001
= R0 + R1αi + R2α2i +… + RN-1αi(N-1) S i =
Figure pat00001
= R 0 R 1 + R 2 α i + α 2i + ... + R N-1 ? I (N-1)

신드롬 값들(Si)의 병렬 처리를 위하여, 신드롬 값들(Si)을 구하기 위한 [수식 1]은 [수식 2]와 같이 변형될 수 있다.For parallel processing of the syndrome values (S i), [formula 1] to obtain the syndrome values (S i) can be modified as [Equation 2].

[수식 2][Equation 2]

Si=(((RN- 1α3i + RN- 2α2i+ RN- 3αi+ RN- 44i+(RN- 5α3i + RN- 6α2i+ RN- 7αi+ RN-8)) α4i+...)α4i+ R3α3i + R2α2i+ R1αi+ R0 S i = (((R N- 1 ? 3i N- 2i + R 2 α R + N- α i + 3 R 4 N-) α 4i + (R 5 N- α 3i N- α 2i + R 6 R + 7 N- α i + N-R 8)) α + ... 4i) α 4i + α 3i R 3 + R 2 α 2i + α i + R 1 R 0

즉, 코드워드(R(x))는 복수의 비트들을 포함하는 비트 그룹 단위로 구분되어 병렬로 입력될 수 있다. 예컨대, 코드워드(R(x))가 4비트의 비트 그룹으로 구분되는 경우, 첫번째 비트 그룹은 RN-4, RN-3, RN-2, RN-1을 포함하고, 두번째 비트 그룹은 RN-8, RN-7, RN-6, RN- 5을 포함하고, 마지막 비트 그룹은 R0, R1, R2, R3을 포함할 수 있다.That is, the code word R (x) may be divided into unit groups including a plurality of bits and input in parallel. For example, if the code word R (x) is divided into 4 bit groups, the first bit group includes R N-4, R N-3 , R N-2 , R N-1 , The group includes R N-8 , R N-7 , R N-6 and R N- 5 , and the last bit group may include R 0, R 1 , R 2 , and R 3 .

[수식 2]에 따라 신드롬 값들(Si)을 구하는 경우, 본 발명의 실시 예에 따른 도 2의 신드롬 계산기(120)의 구조가 활용될 수 있다.The structure of the syndrome calculator 120 of FIG. 2 according to the embodiment of the present invention can be utilized when the syndrome values S i are obtained according to Equation (2).

신드롬 계산기(120)는 복수의 덧셈기들(124-1~124-4), 복수의 곱셈기들(122-1~122-4), 레지스터(register, 126), 및 스위치들(SW1, SW2)을 포함할 수 있다.The syndrome calculator 120 includes a plurality of adders 124-1 to 124-4, a plurality of multipliers 122-1 to 122-4, a register 126 and switches SW1 and SW2 .

코드워드(R(x))에 포함된 비트 그룹들 각각에 포함된 비트들 각각은 복수의 덧셈기들(124-1~124-4)을 통하여 입력될 수 있다.Each of the bits included in each of the bit groups included in the code word R (x) may be input through a plurality of adders 124-1 to 124-4.

첫번째 비트 그룹의 RN-4, RN-3, RN-2, RN-1 각각이 덧셈기들(124-1~124-4) 각각으로 입력되면, 첫번째 비트 그룹의 RN-4, RN-3, RN-2, RN-1에 대한 직렬 연산이 수행될 수 있다.When each of R N-4, R N-3 , R N-2 and R N-1 of the first bit group is input to each of adders 124-1 through 124-4 , A serial operation on R N-3 , R N-2 , R N-1 can be performed.

제1스위치(SW1)는 첫번째 비트 그룹의 직렬 연산이 완료되기 이전에는 턴-오프(turn-off) 상태로 제어될 수 있다.The first switch SW1 may be controlled in a turn-off state before the serial operation of the first bit group is completed.

첫번째 비트 그룹의 RN-1은 제1덧셈기(124-1)로 입력되며, 제1누적 곱셈기(122-2)에 의해 갈로이스 필드 엘리먼트(Galois Field element) αi가 곱해져서, RN-1αi가 출력될 수 있다.R N-1 of the first group of bits is input to the first adder 124-1, a first cumulative multiplier 122-2 Royce field element (Galois Field element) to go by α i haejyeoseo the product, N- R 1 α i can be output.

제1누적 곱셈기(122-2)의 출력인 RN- 1αi에는 제2덧셈기(124-2)로 입력된 첫번째 비트 그룹의 RN-2가 더해져서, RN-1αi+ RN-2가 출력 될 수 있다.First accumulation multiplier 122-2 output N- R 1 α i, the second adder haejyeoseo (124-2), a first bit group of N-R 2 is further input to a, R N-1 α i + R of N-2 can be output.

제2누적 곱셈기(122-3)에 의해, 제2덧셈기(124-2)의 출력인 RN- 1αi+ RN-2에 갈로이스 필드 엘리먼트αi가 곱해져서, RN-1α2i+ RN-2αi가 출력될 수 있다.Second accumulation by the multiplier 122-3, a second adder (124-2) outputs the N- R 1 α i + R Royce field element go to the N-2, α i is multiplied, R N-1 of α 2i + R N-2 ? I can be output.

제2누적 곱셈기(122-3)의 출력인 RN- 1α2i+ RN- 2αi에는 제3덧셈기 (124-3)로 입력된 첫번째 비트 그룹의 RN-3가 더해져서, RN- 1α2i+ RN- 2αi+ RN-3 가 출력될 수 있다.Second cumulative multiplier 122-3 output N- R 1 α 2i + α i R 2 N- is a third adder (124-3) haejyeoseo the first bit of the group R N-3 are further input to, the R N- 1 ? 2i + RN - 2 ? I + RN-3 can be output.

제3누적 곱셈기(122-4)에 의해, 제3덧셈기(124-3)의 출력인 RN- 1α2i+ RN- 2αi+ RN-3에 갈로이스 필드 엘리먼트αi가 곱해져서, RN- 1α3i+ RN- 2α2i+ RN-3 αi 가 출력 될 수 있다.The third cumulative multiplier by a (122-4), the third field element Royce go to the output of R N- 1 α 2i + R N- 2 α i + R N-3 of the adder (124-3) is multiplied by α i RN - 1 ? 3i + RN - 2 ? 2i + RN -3 ? I can be output.

제3누적 곱셈기(122-4)의 출력인 RN- 1α3i+ RN- 2α2i+ RN-3 αi에는 제4덧셈기 (124-4)로 입력된 첫번째 비트 그룹의 RN-4가 더해져서, RN- 1α3i+ RN- 2α2i+ RN-3 αi+ RN-4가 출력 될 수 있다.The third cumulative multiplier (122-4) outputs the N- 1 α 3i + R N- R 2 α 2i + α i is R N-3 of the first group of bits input to the fourth adder (124-4) of N R -4 can be added so that RN - 1 ? 3i + RN - 2 ? 2i + RN -3 ? I + RN-4 can be output.

제2스위치(SW2)는 비트 그룹들 모두에 대한 직렬 연산이 완료되기 이전에는 턴-오프 상태로 제어되기 때문에, 제4덧셈기(124-4)의 출력인 RN - 1α3i+ RN- 2α2i+ RN-3 αi+ RN- 4은 루프(loop)를 통하여 레지스터(126)로 입력되어 저장될 수 있다. 레지스터(126)로 입력된 데이터는 두번째 비트 그룹이 입력되는 타이밍에 맞추어 다시 출력될 수 있다.A second switch (SW2) is previously turned to series operation for all of the bit group is completed - because it is controlled to the OFF state, the fourth adder (124-4), an output of the N R - 1 α R 3i + N- 2 α 2i + R N-3 α i + R N- 4 , may be stored is input to register 126 via a loop (loop). The data input to the register 126 may be output again according to the timing at which the second bit group is input.

첫번째 비트 그룹의 직렬 연산이 완료되면, 제1스위치(SW1)는 턴-온 상태로 제어될 수 있다.When the serial operation of the first bit group is completed, the first switch SW1 can be controlled to be turned on.

두번째 비트 그룹의 RN-8, RN-7, RN-6, RN-5 각각이 덧셈기들(124-1 ~124-4) 각각으로 입력되면, 첫번째 비트 그룹에 대한 직렬 연산결과를 활용하여 두번째 비트 그룹의 RN-8, RN-7, RN-6, RN-5에 대한 직렬 연산이 수행될 수 있다.When each of the RN -8, RN -7 , RN -6 , and RN -5 of the second bit group is input to each of the adders 124-1 through 124-4, A serial operation on R N-8, R N-7 , R N-6 , and R N-5 of the second bit group may be performed.

레지스터(126)로 저장되어 있던 첫번째 비트 그룹에 대한 직렬 연산결과인 RN-1α3i+ RN- 2α2i+ RN-3 αi+ RN-4에는 단위 곱셈기(122-1)에 의해 갈로이스 필드 엘리먼트α4i가 곱해져서, (RN-1α3i+ RN-2α2i+ RN-3 αi+ RN-44i가 출력될 수 있다.A unit multiplier 122-1 is added to RN -1 ? 3i + RN - 2 ? 2i + RN -3 ? I + RN -4 as a result of serial operation on the first bit group stored in the register 126, (R N-1 ? 3i + R N-2 ? 2i + R N-3 ? I + R N-4 )? 4i is multiplied by the Galois field element? 4i .

이후, 첫번째 비트 그룹과 마찬가지로 병렬로 입력되는 두번째 비트 그룹 및 나머지 비트 그룹들에 대해서도 곱셈기들(122-2~122-4)과 덧셈기들(124-1~124-4)에 의해 직렬 연산을 수행하게 되면, 최종적으로 제4덧셈기(124-4)로부터 (((RN- 1α3i + RN-2α2i+ RN- 3αi+ RN- 44i+(RN- 5α3i + RN- 6α2i+ RN- 7αi+ RN-8))α4i +?)α4i+ R3α3i + R2α2i+ R1αi+ R0값이 출력되며, 이 때 제2스위치(SW1)가 턴-온 되면서 제4덧셈기(124-4)의 출력이 신드롬 계산기(120)의 출력 값으로서 출력될 수 있다. Then, the second bit group and the remaining bit groups input in parallel as in the first bit group are subjected to serial operation by the multipliers 122-2 to 122-4 and the adders 124-1 to 124-4 (((RN - 1 ? 3i ) from the fourth adder 124-4 + R N-2 α 2i + R N- 3 α i + R N- 4) α 4i + (R N- 5 α 3i + R N- 6 α 2i + R N- 7 α i + R N-8)) α 4i +?) α 4i + R 3 α 3i R 2 R 1 + α 2i + α i + R 0 value is output, at this time the second switch (SW1) is turned on, while the output value of the fourth adder (124-4) converter 120, the output of the syndrome As shown in FIG.

즉, 누적 곱셈기들(122-2~122-4)은 덧셈기들(124-1~124-4) 사이에 배치되며, 누적 곱셈기들(122-2~122-4)과 덧셈기들(124-1~124-4)은 병렬로 입력된 비트 그룹들 각각에 대하여 직렬 연산을 수행할 수 있으며, 비트 그룹은 병렬로 입력받은 이후에 직렬 연산을 통해 처리하기 위해 구분되는 코드워드(R(x))의 비트들의 단위를 의미할 수 있다.That is, the accumulative multipliers 122-2 to 122-4 are disposed between the adders 124-1 to 124-4, and the accumulative multipliers 122-2 to 122-4 and the adders 124-1 To 124-4 may perform a serial operation on each of the bit groups input in parallel, and the bit group may include a codeword R (x) divided for processing through a serial operation after being input in parallel, Lt; / RTI > of bits.

비트 그룹이 2비트로 구성되면, 누적 곱셈기의 개수가 1개로 구성될 수 있기 때문에, 비트 그룹이 4이상의 비트로 구성될 때 누적 곱셈기들(122-2~122-4)는 누적적으로 갈로이스 필드 엘리먼트를 곱하여 신드롬 계산기(120)의 구조를 단순화시키는 효과를 가진다.When the bit group is composed of two bits, since the number of accumulative multipliers can be made to be one, when the bit group is composed of four or more bits, the accumulative multipliers 122-2 to 122-4 cumulatively add the Galois field elements So as to simplify the structure of the syndrome calculator 120. FIG.

실시 예에 따라, 누적 곱셈기들(122-2~122-4)은 서로 동일한 값을 가지는 갈로이스 필드 엘리멘트, 예컨대, αi를 누적적(cumulative)으로 곱할 수 있다.According to an embodiment, the accumulative multipliers 122-2 through 122-4 may cumulatively multiply a galois field element having the same value, e.g., [alpha] i .

실시 예에 따라, 단위 곱셈기(122-1)는 직렬 연산이 완료된 비트 그룹에 대하여 일정한 값을 가지는 갈로이스 필드 엘리먼트를 곱하며, 단위 곱셈기(122-1)에서 곱해지는 갈로이스 필드 엘리먼트의 크기는 비트 그룹의 크기에 따라 결정될 수 있다. 예컨대, 비트 그룹이 4비트로 구성되는 경우, 단위 곱셈기(122-1)는 α4i를 곱하고, 비트 그룹이 8비트로 구성되는 경우, 단위 곱셈기(122-1)는 α8i를 곱할 수 있다.According to the embodiment, the unit multiplier 122-1 multiplies the bit group for which the serial operation is completed by the Galois field element having a constant value, and the size of the Galois field element multiplied by the unit multiplier 122-1 is May be determined according to the size of the bit group. For example, when the bit group is composed of 4 bits, the unit multiplier 122-1 multiplies? 4i , and when the bit group is composed of 8 bits, the unit multiplier 122-1 can multiply? 8i .

실시 예에 따라, 신드롬 계산기(120)는 수신된 코드워드(R(x))를 적어도 3이상의 비트들을 포함하는 비트 그룹 단위로 병렬로 입력받는 경우, 2 이상의 누적 곱셈기들을 포함하여 더욱 효율적인 구조로 구현될 수 있다.According to an embodiment, when the received codeword R (x) is input in parallel in units of a bit group including at least three or more bits, the syndrome calculator 120 may include two or more accumulative multipliers to obtain a more efficient structure Can be implemented.

다른 실시 예에 따라, 신드롬 계산기(120)는 수신된 코드워드(R(x))를 2^n(n은 2이상의 자연수) 비트들을 포함하는 비트 그룹 단위로 병렬로 입력받는 경우, 2 이상의 누적 곱셈기들을 포함하면서도 코드워드(R(x))가 비트 그룹 단위로 나누어 떨어지므로 더욱 효율적인 구조로 구현될 수 있다.According to another embodiment, when the syndrome calculator 120 receives the received codeword R (x) in parallel in units of bit groups including 2? N (n is a natural number of 2 or more) bits, The code word (R (x)) is divided into a bit group unit while including multipliers, so that a more efficient structure can be realized.

도 3은 본 발명의 일 실시 예에 따른 메모리 시스템의 블록도이다.3 is a block diagram of a memory system in accordance with one embodiment of the present invention.

도 1 내지 도 3을 참조하면, 메모리 시스템(200)은 호스트(host, 210), 메모리 장치(memory device, 220), 및 메모리 컨트롤러(memory controller, 230)를 포함할 수 있다.1 through 3, the memory system 200 may include a host 210, a memory device 220, and a memory controller 230.

실시 예에 따라, 메모리 시스템(200)은 전자 장치 또는 휴대용 장치(portable device)로 구현될 수 있다. 상기 휴대용 장치는 이동 전화기 (cellular phone), 스마트폰(smart phone), 또는 태블릿(tablet) PC 등으로 구현될 수 있다.According to an embodiment, the memory system 200 may be implemented as an electronic device or a portable device. The portable device may be implemented as a cellular phone, a smart phone, or a tablet PC.

호스트(210)는 내부의 프로세스 처리에 필요한 데이터를 읽기 위한 요청 또는 프로세스 처리 결과에 따른 데이터를 저장하기 위한 요청을 메모리 컨트롤러(230)로 전송할 수 있다.The host 210 may send a request to the memory controller 230 to read data required for internal process processing or to store data according to a process result.

메모리 장치(220)는 호스트(210)에 의해 관리되는 데이터를 저장할 수 있으며, 불휘발성 메모리인 EEPROM(electrically erasable programmable read-only Memory), 플래시 메모리(flash memory), MRAM (magnetic RAM), 스핀전달토크 MRAM(spin-transfer torque MRAM), Conductive bridging RAM(CBRAM), FeRAM (ferroelectric RAM), PRAM(Phase change RAM), 저항 메모리(resistive RAM (RRAM)), 나노튜브 RRAM(nanotube RRAM), 폴리머 RAM (polymer RAM: PoRAM), 나노 부유 게이트 메모리(nano floating gate memory: NFGM), 홀로그래픽 메모리(holographic memory), 분자 전자 메모리 소자 (molecular electronics memory device), 또는 절연 저항 변화 메모리(insulator resistance change memory), 휘발성 메모리인 RAM(random access memory), 예컨대 DRAM(dynamic RAM) 또는 SRAM(static RAM) 등으로 구현될 수 있으나 본 발명의 범위가 이에 한정되는 것은 아니다.The memory device 220 may store data managed by the host 210 and may be an electrically erasable programmable read-only memory (EEPROM), a flash memory, an MRAM (magnetic RAM), a spin transfer (MRAM), conductive bridging RAM (CBRAM), FeRAM (ferroelectric RAM), PRAM (phase change RAM), resistive RAM (RRAM), nanotube RRAM a polymer memory RAM (PoRAM), a nano floating gate memory (NFGM), a holographic memory, a molecular electronics memory device, or an insulator resistance change memory. , A random access memory (RAM) as a volatile memory, for example, a dynamic random access memory (DRAM), or a static random access memory (SRAM), but the scope of the present invention is not limited thereto.

메모리 컨트롤러(230)는 호스트(210)와 메모리 장치(220) 사이의 데이터 송수신을 제어할 수 있다. 메모리 컨트롤러(230)는 인터페이스(interface, 232), 인코더(encoder, 234), 및 디코더(decoder, 236)를 포함할 수 있다.The memory controller 230 can control the transmission / reception of data between the host 210 and the memory device 220. The memory controller 230 may include an interface 232, an encoder 234, and a decoder 236.

인터페이스(232)는 호스트(210)와 메모리 컨트롤러(230) 간의 신호 송수신을 인터페이싱할 수 있다.The interface 232 may interface signal transmission / reception between the host 210 and the memory controller 230.

인코더(234)는 호스트(210)로부터 수신된 데이터를 인코딩하여 메모리 장치(220)로 출력할 수 있다. The encoder 234 may encode the data received from the host 210 and output it to the memory device 220.

실시 예에 따라, 도 3의 디코더(236)는 도 1의 디코더(100)와 같은 형태로 구현될 수 있다. 디코더(236)는 메모리 장치로부터 출력되는 데이터(R(x))의 오류를 검사하고 오류를 정정하여 정정된 데이터(C(x))를 인터페이스(232)를 통하여 호스트(210)로 전송할 수 있다.According to an embodiment, the decoder 236 of FIG. 3 may be implemented in the same manner as the decoder 100 of FIG. The decoder 236 can check the error of the data R (x) output from the memory device and correct the error and transmit the corrected data C (x) to the host 210 via the interface 232 .

이상, 본 발명의 기술적 사상을 다양한 실시예들을 들어 상세하게 설명하였으나, 본 발명의 기술적 사상은 상기 실시예들에 한정되지 않고, 본 발명의 기술적 사상의 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러가지 변형 및 변경이 가능하다.While the present invention has been described in connection with what is presently considered to be practical exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, Various modifications and variations are possible.

100, 236 : 디코더
110 : 데이터 버퍼
120 : 신드롬 계산기
130 : 키 방정식 솔버
140 : 치엔 서치 블록
150 : 에러 정정 블록
200 : 메모리 시스템
210 : 호스트
220 : 메모리 장치
230 : 메모리 컨트롤러
100, 236: decoder
110: data buffer
120: Syndrome Calculator
130: Key equation solver
140: Chien Search Block
150: error correction block
200: Memory system
210: Host
220: memory device
230: Memory controller

Claims (10)

수신된 코드워드(codeword)로부터 신드롬(syndrome) 값들을 생성하는 신드롬 계산기를 포함하고,
상기 신드롬 계산기는,
상기 코드워드를 복수의 비트들을 포함하는 비트 그룹 단위로 병렬로 입력받고, 병렬로 입력된 비트 그룹들 각각에 대하여 직렬 연산을 수행함으로써 상기 신드롬 값들을 생성하는 곱셈기들과 덧셈기들을 포함하는, 디코더(decoder).
And a syndrome calculator for generating syndrome values from the received codeword,
The syndrome calculator includes:
A decoder for receiving the codeword in units of bit groups including a plurality of bits in parallel and multipliers and adders for generating the syndrome values by performing a serial operation on each of the bit groups input in parallel, decoder.
제1항에 있어서,
상기 코드워드에 포함된 상기 비트 그룹들 각각에 포함된 상기 복수의 비트들은, 상기 덧셈기들을 통하여 입력되는, 디코더.
The method according to claim 1,
Wherein the plurality of bits contained in each of the bit groups included in the codeword are input through the adders.
제2항에 있어서,
상기 비트 그룹들 각각은 적어도 3이상의 비트들을 포함하며,
상기 곱셈기들은,
각각이 상기 덧셈기들 사이에 배치되는 누적 곱셈기들을 포함하는, 디코더.
3. The method of claim 2,
Each of the bit groups comprising at least three or more bits,
The multipliers,
Wherein each of the adders comprises cumulative multipliers disposed between the adders.
제3항에 있어서,
상기 누적 곱셈기들은,
서로 동일한 값을 가지는 갈로이스 필드 엘리먼트(Galois Field element)를 누적적으로 곱하는, 디코더.
The method of claim 3,
The accumulative multipliers are operable,
And cumulatively multiplies Galois Field elements having the same value with each other.
제4항에 있어서,
상기 신드롬 계산기는,
상기 비트 그룹들 중에서 어느 하나의 비트 그룹에 대한 직렬 연산이 완료되면, 직렬 연산이 완료된 비트 그룹에 대한 처리 데이터를 임시 저장하기 위한 레지스터(register)를 더 포함하는, 디코더.
5. The method of claim 4,
The syndrome calculator includes:
Further comprising a register for temporarily storing processing data for a bit group in which a serial operation is completed, when a serial operation for any one of the bit groups is completed.
제5항에 있어서,
상기 곱셈기들은,
직렬 연산이 완료된 상기 비트 그룹에 대하여 단위 갈로이스 필드 엘리먼트를 곱하는 단위 곱셈기를 포함하는, 디코더.
6. The method of claim 5,
The multipliers,
And a unit multiplier for multiplying the unit group field element with the bit group for which the serial operation has been completed.
제6항에 있어서,
상기 신드롬 계산기는,
상기 레지스터와 상기 단위 곱셈기 사이에 제1스위치를 더 포함하고,
상기 제1스위치는 상기 비트 그룹들 중에서 첫번째 비트 그룹의 직렬 연산이 완료되기 이전에는 턴-오프(turn-off)되고, 상기 첫번째 비트 그룹의 직렬 연산이 완료된 이후에는 턴-온(turn-on)되도록 제어되는, 디코더.
The method according to claim 6,
The syndrome calculator includes:
Further comprising a first switch between the register and the unit multiplier,
The first switch is turned off before the serial operation of the first bit group among the bit groups is completed and is turned on after the serial operation of the first bit group is completed. Controlled.
제7항에 있어서,
상기 신드롬 계산기는,
상기 신드롬 계산기의 출력단에 위치한 제2스위치를 더 포함하고,
상기 제2스위치는 상기 비트 그룹들 모두에 대한 직렬 연산이 완료되기 이전에는 턴-오프되고, 상기 비트 그룹들 모두에 대한 직렬 연산이 완료된 이후에는 턴-온되도록 제어되는, 디코더.
8. The method of claim 7,
The syndrome calculator includes:
Further comprising a second switch located at the output of the syndrome calculator,
Wherein the second switch is turned off before the serial operation for all of the bit groups is completed and is turned on after the serial operation for all of the bit groups is completed.
제1항에 있어서,
상기 디코더는,
상기 신드롬 값들에 기초하여 에러 위치 다항식을 생성하는 키 방정식 솔버(key equation solver);
상기 에러 위치 다항식에 기초하여 에러 위치를 구하는 치엔 서치 블록(chien search block); 및
상기 에러 위치에 기초하여 상기 수신 데이터의 에러를 수정하고, 수정된 수신 데이터를 출력하는 에러 수정 블록을 더 포함하는, 디코더.
The method according to claim 1,
The decoder includes:
A key equation solver for generating an error locator polynomial based on the syndrome values;
A chien search block for finding an error position based on the error locator polynomial; And
And an error correction block for correcting the error of the received data based on the error position and outputting the corrected received data.
제1항의 상기 디코더를 포함하는 메모리 컨트롤러(memory controller).A memory controller comprising the decoder of claim 1.
KR1020160066044A 2015-05-29 2016-05-29 Decoder and memory controller including the same KR101791637B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020150076192 2015-05-29
KR20150076192 2015-05-29

Publications (2)

Publication Number Publication Date
KR20160140512A true KR20160140512A (en) 2016-12-07
KR101791637B1 KR101791637B1 (en) 2017-10-30

Family

ID=57572969

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160066044A KR101791637B1 (en) 2015-05-29 2016-05-29 Decoder and memory controller including the same

Country Status (1)

Country Link
KR (1) KR101791637B1 (en)

Also Published As

Publication number Publication date
KR101791637B1 (en) 2017-10-30

Similar Documents

Publication Publication Date Title
JP5913560B2 (en) Encoding and decoding techniques using low density parity check codes
US8621329B2 (en) Reconfigurable BCH decoder
US8689078B2 (en) Determining a message residue
US10291258B2 (en) Error correcting code for correcting single symbol errors and detecting double bit errors
US10236913B2 (en) Error checking and correcting decoder
CN114389752B (en) Cyclic redundancy check code generation method, device, equipment, medium and program product
US20180034483A1 (en) Variable t bch encoding
US8332731B1 (en) Error-correcting code and process for fast read-error correction
US9281844B2 (en) Configurable and low power encoder for cyclic error correction codes
US10193574B1 (en) Efficient syndrome calculation in processing a GLDPC code
KR101791637B1 (en) Decoder and memory controller including the same
WO2016181978A1 (en) Matrix operation device, matrix operation method, and program
KR101619049B1 (en) Parallel BCH decoder
JP2015019276A (en) Storage device, crc generation device and crc generation method
US10171109B2 (en) Fast encoding method and device for Reed-Solomon codes with a small number of redundancies
CN106603085B (en) Generating method and generating device for generating polynomial, encoder, controller and electronic equipment
WO2008069465A1 (en) Method and apparatus for checking correction errors using cyclic redundancy check
US10389387B2 (en) Coding device and coding method for a DVB-like LDPC code and a LDPC code in an ETRI format
US8775893B2 (en) Variable parity encoder
US11438013B2 (en) Low-power error correction code computation in GF (2R)
US12034454B2 (en) Verifying data integrity in a receiver
US8381080B2 (en) Reducing a degree of a polynomial in a polynomial division calculation
US20230370091A1 (en) Error Correction With Fast Syndrome Calculation
KR20120064377A (en) Bch decoder, memory system having the same and bch decoding method
Chen et al. Using hash table and cyclotomic coset method for decoding the quadratic residue code

Legal Events

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