KR20190120690A - Reed solomon decoder and semiconductor deivce including the same - Google Patents
Reed solomon decoder and semiconductor deivce including the same Download PDFInfo
- Publication number
- KR20190120690A KR20190120690A KR1020180167946A KR20180167946A KR20190120690A KR 20190120690 A KR20190120690 A KR 20190120690A KR 1020180167946 A KR1020180167946 A KR 1020180167946A KR 20180167946 A KR20180167946 A KR 20180167946A KR 20190120690 A KR20190120690 A KR 20190120690A
- Authority
- KR
- South Korea
- Prior art keywords
- circuit
- error
- kes
- sub
- calculating
- Prior art date
Links
- 235000014676 Phragmites communis Nutrition 0.000 title claims abstract 3
- 239000004065 semiconductor Substances 0.000 title claims description 26
- 208000011580 syndromic disease Diseases 0.000 claims abstract description 25
- 238000011156 evaluation Methods 0.000 claims abstract description 18
- 239000000872 buffer Substances 0.000 claims description 8
- 238000000034 method Methods 0.000 claims description 4
- 230000003139 buffering effect Effects 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 20
- 238000010845 search algorithm Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/1515—Reed-Solomon codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
Abstract
Description
본 발명은 리드 솔로몬 디코더와 이를 포함하는 반도체 장치에 관한 것이다.The present invention relates to a Reed Solomon decoder and a semiconductor device including the same.
도 1은 종래의 리드 솔로몬 디코더를 나타내는 블록도이다.1 is a block diagram illustrating a conventional Reed Solomon decoder.
종래의 리드 솔로몬 디코더는 코드워드로부터 신드롬을 계산하는 SC(Syndrome Calculation) 회로(10), 신드롬을 이용하여 키 방정식을 풀이하는 KES(Key Equation Solver) 회로(20) 및 KES 회로(20)의 출력을 이용하여 치엔 검색 및 에러 평가를 수행하는 CSEE(Chien Search and Error Evaluation) 회로(30), CSEE 회로(30)의 출력과 수신된 코드워드를 연산하여 에러가 정정된 출력 데이터를 제공하는 에러 정정 에러 정정 연산 회로(40)를 포함한다.Conventional Reed-Solomon decoders have outputs from a Syndrome Calculation (SC)
도 2는 도 1의 KES 회로(20)의 동작을 나타내는 블록도이다.FIG. 2 is a block diagram showing the operation of the
종래의 KES 회로(20)는 신드롬으로부터 에러 위치 다항식과 에러 평가 다항식을 출력하게 되는데 이를 위해서는 2t번의 루프를 돌면서 연산을 수행하게 된다.The
이때 2t는 코드워드에 포함된 패리티 심볼의 개수와 연관된다. 예를 들어 리드 솔로몬 코드로 인코딩된 하나의 블록에 255개의 심볼이 포함되고 이 중에서 데이터 심볼이 223개 패리티 심볼이 32개라면, 2t는 32와 동일하다.In this case, 2t is associated with the number of parity symbols included in the codeword. For example, if a block encoded with a Reed Solomon code includes 255 symbols, and among these, 32 data symbols are 223 parity symbols, 2t is equal to 32.
예를 들어 SC 회로(10)의 동작에 1 클록, CSEE 회로(30)의 동작에 2 클록, KES 회로(20)가 한번 루프를 도는데 1 클록이 필요하다면 레이턴시는 2t+3이 된다.For example, if one clock is required for the operation of the
또한 종래의 리드 솔로몬 디코더는 이전에 입력된 코드워드에 대한 디코딩 동작이 진행되는 도중에 새로운 코드워드에 대한 디코딩 동작을 시작할 수 없다.In addition, the conventional Reed Solomon decoder cannot start the decoding operation for the new codeword while the decoding operation for the previously input codeword is in progress.
이에 따라 종래의 리드 솔로몬 디코더는 레이턴시가 길고 쓰루풋이 낮아 고속의 디코딩이 불가능한 문제가 있다.Accordingly, the conventional Reed Solomon decoder has a long latency and low throughput, and thus high speed decoding is not possible.
본 발명은 고속의 디코딩 동작이 가능한 리드 솔로몬 디코더와 이를 포함하는 반도체 장치를 제공한다.The present invention provides a Reed Solomon decoder capable of a high speed decoding operation and a semiconductor device including the same.
본 발명의 일 실시예에 의한 리드 솔로몬 디코더는 코드워드로부터 신드롬을 계산하는 SC 회로; 신드롬으로부터 에러 위치 다항식과 에러 평가 다항식을 연산하는 KES 회로; 및 에러 위치 다항식과 에러 평가 다항식으로부터 에러 위치와 에러 값을 연산하는 CSEE 회로를 포함하되, KES 회로는 직렬 연결된 다수의 서브 KES 회로를 포함하고, 다수의 서브 KES 회로 각각, 상기 SC 회로 및 상기 CSEE 회로는 파이프라인 단계를 구성한다.Reed Solomon decoder according to an embodiment of the present invention includes an SC circuit for calculating a syndrome from a codeword; A KES circuit for calculating an error position polynomial and an error evaluation polynomial from the syndrome; And a CSEE circuit for calculating an error position and an error value from the error position polynomial and the error evaluation polynomial, wherein the KES circuit includes a plurality of sub-KES circuits connected in series, each of the plurality of sub-KES circuits, the SC circuit and the CSEE. The circuit constitutes a pipeline stage.
본 발명의 일 실시예에 의한 반도체 장치는 데이터를 인코딩하여 코드워드를 출력하는 에러 정정 인코더; 에러 정정 인코더에서 출력되는 코드워드를 저장하는 메모리 셀; 및 메모리 셀에서 출력되는 코드워드를 디코딩하여 에러가 정정된 데이터를 출력하는 에러 정정 디코더를 포함한다.In an embodiment, a semiconductor device may include an error correction encoder that encodes data and outputs a codeword; A memory cell storing a codeword output from an error correction encoder; And an error correction decoder that decodes the codeword output from the memory cell and outputs data in which the error is corrected.
본 발명에 의한 리드 솔로몬 디코더는 SC 회로, CSEE 회로에서 병렬 처리를 수행하여 고속의 연산이 가능하도록 한다.The Reed Solomon decoder according to the present invention performs parallel processing in the SC circuit and the CSEE circuit to enable high-speed computation.
본 발명에 의한 리드 솔로몬 디코더는 KES 회로를 다수의 서브 회로로 분할하여 전체 디코딩 회로의 동작이 파이프라이닝 가능하도록 하여 쓰루풋을 향상시킨다.The Reed Solomon decoder according to the present invention divides the KES circuit into a plurality of sub-circuits so that the operation of the entire decoding circuit can be pipelined to improve throughput.
본 발명에 의한 반도체 장치는 에러 정정 인코더와 디코더를 내부에 내장하여 자체적으로 에러 정정 동작을 수행할 수 있다.The semiconductor device according to the present invention may internally perform an error correction operation by embedding an error correction encoder and a decoder therein.
본 발명에 의한 반도체 장치는 에러 정정을 위하여 별도의 장치를 필요로 하지 않으므로 시스템의 면적과 제조 비용을 줄일 수 있다.Since the semiconductor device according to the present invention does not require a separate device for error correction, the area and manufacturing cost of the system can be reduced.
도 1은 종래의 리드 솔로몬 디코더의 블록도.
도 2는 도 1의 KES 회로의 동작을 나타내는 블록도.
도 3은 본 발명의 일 실시예에 의한 리드 솔로몬 디코더의 블록도.
도 4는 도 3의 SC 회로의 상세 블록도.
도 5는 도 3의 서브 KES 회로의 상세 블록도.
도 6은 도 3의 서브 KES 회로의 동작을 나타내는 알고리즘.
도 7은 도 3의 PE 회로를 나타내는 블록도.
도 8은 도 7의 PE 회로의 상세 블록도.
도 9는 도 7의 제어 회로의 상세 블록도.
도 10은 도 3의 CSEE 회로의 상세 블록도.
도 11은 본 발명의 일 실시예에 의한 반도체 장치의 블록도.1 is a block diagram of a conventional Reed Solomon decoder.
2 is a block diagram showing operation of the KES circuit of FIG.
3 is a block diagram of a Reed Solomon decoder according to an embodiment of the present invention.
4 is a detailed block diagram of the SC circuit of FIG.
5 is a detailed block diagram of the sub KES circuit of FIG.
6 is an algorithm illustrating operation of the sub KES circuit of FIG.
FIG. 7 is a block diagram illustrating the PE circuit of FIG. 3. FIG.
8 is a detailed block diagram of the PE circuit of FIG.
9 is a detailed block diagram of the control circuit of FIG.
10 is a detailed block diagram of the CSEE circuit of FIG.
11 is a block diagram of a semiconductor device according to one embodiment of the present invention.
이하에서는 첨부한 도면을 참조하여 본 발명의 실시예를 개시한다.Hereinafter, with reference to the accompanying drawings discloses an embodiment of the present invention.
도 3은 본 발명의 일 실시예에 의한 리드 솔로몬 디코더(1)의 블록도이다.3 is a block diagram of a Reed Solomon
본 발명의 일 실시예에 의한 리드 솔로몬 디코더(1)는 SC 회로(100), KES 회로(200), CSEE 회로(300)를 포함한다.The Reed Solomon
본 발명의 일 실시예에 의한 리드 솔로몬 디코더(1)는 입력되는 코드워드를 순차적으로 큐잉하는 레지스터(500)와 레지스터(500)에서 제공되는 코드워드와 CSEE 회로(300)에서 출력되는 에러 위치 및 에러 값을 연산하여 에러가 정정된 출력 데이터를 생성하는 에러 정정 연산 회로(400)를 더 포함할 수 있다.Reed Solomon
SC 회로(100)는 코드워드(r(x))를 이용하여 생성된 신드롬(S0 ~ S2t-1)을 출력한다.The
이하에서 코드워드는 코드워드 다항식, 신드롬은 신드롬 다항식으로 표현할 수도 있다.Hereinafter, a codeword may be expressed as a codeword polynomial and a syndrome may be expressed as a syndrome polynomial.
KES 회로(200)는 각각 신드롬으로부터 생성된 에러 위치 다항식(λ(x))과 에러 평가 다항식(Ω(x))을 출력한다.The
CSEE 회로(300)는 에러 위치 다항식(λ(x))과 에러 평가 다항식(Ω(x))을 입력받아 에러 위치와 에러 값을 출력한다.The
본 실시예에서 SC 회로(100), KES 회로(200), CSEE 회로(300)의 기본적인 동작 원리는 도 1에 도시된 종래의 리드 솔로몬 디코더와 유사하다.In this embodiment, the basic operation principle of the
예를 들어 CSEE 회로(300)는 치엔 검색(Chien Search) 알고리즘과 포니(Forney) 알고리즘을 구현할 수 있다.For example, the
이들 알고리즘 자체는 잘 알려진 것이므로 이들에 대해서는 자세한 설명을 생략한다.Since these algorithms are well known, detailed descriptions thereof are omitted.
SC 회로(100) 및 CSEE 회로(300)는 처리 속도를 높이기 위하여 병렬식 구조를 가질 수 있다.
본 실시예에서 KES 회로(200)는 직렬로 연결된 다수의 서브 KES 회로(210)를 포함한다.In this embodiment, the
본 실시예에서 서브 KES 회로(210)는 t(자연수) 개가 포함되어 있다.In the present embodiment, the
t개의 서브 KES 회로(210)는 2t번 루프를 돌며 연산을 수행하는 종래의 KES 회로(20)를 대체한다.The t
이때 각각의 서브 KES 회로(210)와 SC 회로(100)와 CSEE 회로(300)는 각각 파이프라인 단계를 구성할 수 있다.In this case, each
예를 들어 각 파이프라인 단계가 2 클록 동안 연산을 수행한다면 전체 레이턴시를 t+4로 줄일 수 있다.For example, if each pipeline stage operates for two clocks, the overall latency can be reduced to t + 4.
또한 본 발명의 일 실시예에 의한 리드 솔로몬 디코더(1)는 파이프라인 방식으로 동작하므로 이전에 입력된 코드워드에 대한 디코딩 동작이 수행되는 도중에 새로운 코드워드에 대한 디코딩 동작을 진행할 수 있어 쓰루풋을 높일 수 있다. 예를 들어 본 실시예에서는 각 파이프라인 단계를 수행하는데 2 클록이 필요하므로 하나의 코드워드는 매 2 클록마다 디코딩될 수 있다.In addition, since the Reed Solomon
레지스터(500)는 코드워드를 순차적으로 큐잉하고 CSEE 회로(300)에서 출력되는 에러 위치와 에러 값에 대응하는 코드워드를 에러 정정 연산 회로(400)에 제공한다. 일 실시예에서 레지스터(500)는 SC 회로(100), KES 회로(200) 및 CSEE 회로(300)에 포함된 전체 파이프라인 단계만큼의 코드워드를 큐잉하도록 구성될 수 있으며 선입선출 방식으로 동작할 수 있다.The
에러 정정 연산 회로(400)는 에러 위치와 에러 값을 참조하여 에러가 정정된 데이터를 출력한다.The error
도 4는 도 3의 SC 회로(100)를 구성하는 서브 SC 회로(110)의 상세 블록도이다.4 is a detailed block diagram of the
서브 SC 회로(110)는 하나의 신드롬(Si)을 출력하고 SC 회로(100)는 병렬로 배치되어 다수의 신드롬(Si, i = 0, ..., 2t-1)을 동시에 출력하는 다수의 서브 SC 회로(110)를 포함한다. 이때 2t는 코드워드(r(x))에 포함된 패리티 심볼의 개수와 동일하다.The
이하에서 코드워드 다항식을 r(x), 에러가 정정된 데이터 다항식을 c(x)로 표현하고 에러 다항식을 e(x)로 표현한다.Hereinafter, the codeword polynomial is represented by r (x), the error-corrected data polynomial is represented by c (x), and the error polynomial is represented by e (x).
이때 수신된 코드워드 다항식은 다음과 같이 표시할 수 있다.In this case, the received codeword polynomial may be expressed as follows.
r(x) = c(x) + e(x)r (x) = c (x) + e (x)
메시지 다항식을 m(x), 코드워드 생성 다항식을 g(x)라고 하면 코드워드 다항식은 다음과 같이 표현할 수 있다.If the message polynomial is m (x) and the codeword generation polynomial is g (x), the codeword polynomial can be expressed as follows.
g(x) = (x-α1)…(x-α2t)g (x) = (x-α 1 )... (x-α 2t )
c(x) = m(x) g(x)c (x) = m (x) g (x)
위에서 αi(i = 0, ..., 2t-1)는 갈루아 필드를 구성하는 원시 다항식의 근이다.Α i (i = 0, ..., 2t-1) is the root of the primitive polynomial constituting the Galois field.
신드롬 다항식에서 각 신드롬(Si)은 다음과 같이 표현된다.In the syndrome polynomial, each syndrome (Si) is expressed as
Si = r(αi) = c(αi) + e(αi) = e(αi), i = 0, ..., 2t-1Si = r (α i ) = c (α i ) + e (α i ) = e (α i ), i = 0, ..., 2t-1
도 5는 도 3의 서브 KES 회로(210)의 상세 블록도이다.FIG. 5 is a detailed block diagram of the
서브 KES 회로(210)는 3t+1개의 PE(Processing Element) 회로(211)와 이를 제어하는 제어 회로(212)를 포함한다.The
도 5의 서브 KES 회로(210)는 도 3의 서브 KES 회로 중 r번째 서브 KES 회로(r = 0, 1, ..., t-1)에 대응하며 r번째 서브 KES 회로는 지시번호 210 또는 210-r을 사용하여 지시할 수 있다.The
r번째 서브 KES 회로(210)는 이전 단계의 서브 KES 회로로부터 θi(r), δi(r), γ(r) 및 k(r)와 같은 신호를 입력받는다(i = 0, 1, 2, ..., 3t). The r th
예를 들어 θi(r)는 i번째 PE 회로(211-i, i = 0, 1, ..., 3t)에 입력되고 δi+1(r)는 i 번째 PE 회로(211-i, i = 0, 1, ..., 3t-1)에 입력되며 3t번째 PE 회로(211-3t)에는 δ3t+1(r) 대신에 고정된 값 0을 입력받는다. δ0(r), γ(r) 및 k(r)은 제어 회로(212)에 입력된다.For example, θ i (r) is input to the i-th PE circuit 211-i, i = 0, 1, ..., 3t and δ i + 1 (r) is the i-th PE circuit 211-i, i = 0, 1, ..., 3t-1) and a fixed
0번째 서브 KES 회로(211-0)에 대해서, 입력 신호 θi(0)와 δi(0)는 i = 0, 1, ..., 2t-1에 대해서 Si로 초기화되고, i = 2t, 2t+1, ..., 3t-2, 3t-1에 대해서 0으로 초기화되며, i = 3t에 대해서 1로 초기화된다. 또한 k(0)는 0으로 초기화되고 γ(0)은 1로 초기화된다.For the 0th sub KES circuit 211-0, the input signals θ i (0) and δ i (0) are initialized to Si for i = 0, 1, ..., 2t-1, and i = 2t Is initialized to 0 for 2t + 1, ..., 3t-2, 3t-1, and 1 for i = 3t. K (0) is also initialized to 0 and γ (0) is initialized to 1.
r번째 서브 KES 회로(210)는 다음 서브 KES 회로에 θi(r+1), δi(r+1), γ(r+1) 및 k(r+1)와 같은 신호를 출력한다(i = 0, 1, ..., 3t). 이때 θi(r+1), δi(r+1)는 i 번째 PE 회로(211-i)에서 출력되고 γ(r+1) 및 k(r+1)는 제어 회로(212)에서 출력된다.The r-th
(t-1)번째 서브 KES 회로는 에러 위치 방정식 λ(x)의 계수 λi(t)와 에러 평가 방정식 Ω(x)의 계수 Ωi(t)를 제공한다. 이때 λi(t) = δi+1(t), Ωi(t) = δi(t)이다(i = 0, 1, ..., t-1).The (t-1) th sub KES circuit provides the coefficient λ i (t) of the error position equation λ (x) and the coefficient Ω i (t) of the error evaluation equation Ω (x). Λ i (t) = δ i + 1 (t), Ω i (t) = δ i (t) (i = 0, 1, ..., t-1).
PE 회로의 동작에 대해서는 이하에서 개시한다.The operation of the PE circuit is described below.
도 6은 도 3의 KES 회로(200)의 동작을 나타내는 알고리즘이다.FIG. 6 is an algorithm illustrating the operation of the
본 실시예에서 KES 회로(200)는 2단 펼침(2-stage unfolded) RiBM 알고리즘을 사용한다.In this embodiment, the
본 실시예는 종래와 달리 t개의 서브 KES 회로(210)를 포함한다.This embodiment includes t
각각의 서브 KES 회로(210)는 도 6의 알고리즘의 라인 6 ~ 35 사이의 동작을 수행한다.Each
t 개의 서브 KES 회로(210)가 직렬로 연결되어 있으며, r(r = 0,1, ..., t-1) 번째 서브 KES 회로는 도 6의 알고리즘의 라인 5에 기재된 r값에 대응하는 동작을 수행한다.t
제어 회로(212)는 3t+1개의 PE 회로(211) 각각에서 제 1 연산과 제 2 연산을 수행하도록 제어한다. The
제 1 연산은 도 6의 알고리즘의 라인 7 ~ 20에서 수행하는 연산에 대응하고, 제 2 연산은 라인 21 ~ 35에서 수행하는 연산에 대응한다.The first operation corresponds to the operation performed on
제어 회로(212)는 3t+1개의 PE 회로(211)가 제 1 연산을 수행한 후 제 2 연산을 수행하도록 제어한다. 이를 위하여 제어 회로(212)는 도 6의 알고리즘의 라인 8에서 계산되는 판정 결과를 나타내는 신호 MC(r)과 라인 23에서 계산되는 판정 결과를 나타내는 신호 MC'(r)를 3t+1개의 PE 회로(211) 각각에 제공한다.The
제 1 연산과 제 2 연산은 3t+1 개의 PE 회로(211)에서 순차적으로 진행될 수 있다.The first operation and the second operation may be sequentially performed in the 3t + 1
도 7은 도 5에서 i번째 PE 회로(211)를 나타내는 블록도이다.FIG. 7 is a block diagram illustrating the i-
PE 회로(211)는 도 6의 알고리즘의 라인 7, 10, 16에서 수행하는 제 1 연산과 라인 22, 25, 31에서 수행하는 제 2 연산을 위해 필요한 신호를 입출력하는 단자들을 포함한다.The
예를 들어 PE 회로(211)는 θi(r), δi+1(r), δ0(r), γ(r), δ'0(r), γ'(r), MC(r) 및 MC'(r) 등의 신호를 입력받고, θi(r+1), δi(r+1), δ0(r), γ(r), δ'0(r) 및 γ'(r) 등의 신호를 출력한다.For example, the
도 8은 도 7의 PE 회로(211)의 상세 회로도이다.FIG. 8 is a detailed circuit diagram of the
PE 회로(211)는 제 1 연산을 위한 제 1 연산 회로(2111)와 제 2 연산을 위한 제 2 연산 회로(2112)를 포함한다.The
제 1 연산 회로(2111)는 제 1 연산 블록(21111)과 제 2 연산 블록(21112)를 포함한다.The
제 2 연산 회로(2112)는 제 3 연산 블록(21121)과 제 4 연산 블록(21122)을 포함한다.The second
예를 들어 제 1 연산 블록(21111)은 도 6의 알고리즘의 라인 7을 수행하고, 제 2 연산 블록(21112)은 도 6의 알고리즘의 라인 10 또는 16을 수행한다. For example, the
유사하게 제 3 연산 블록(21121)은 도 6의 알고리즘의 라인 22를 수행하고, 제 4 연산 블록(21122)은 도 6의 알고리즘의 라인 25 또는 31을 수행한다.Similarly,
제 3 연산 블록(21121)과 제 4 연산 블록(21122)은 D 플립플롭을 포함하여 대응하는 파이프라인 단계에서 데이터를 유지하도록 한다.The
도 8의 회로에서 각 연산 블록은 도 6의 알고리즘을 그대로 기호화한 것이므로 이에 대한 구체적인 설명은 생략한다.In the circuit of FIG. 8, each operation block is a symbol of the algorithm of FIG. 6 as it is, and thus a detailed description thereof will be omitted.
도 9는 도 7의 제어 회로(212)의 상세 블록도이다.9 is a detailed block diagram of the
제어 회로(212)는 도 6의 알고리즘에서 라인 8, 11, 12, 17, 18에서 수행하는 제 1 제어 연산 및 라인 23, 26, 27, 32, 33에서 수행하는 제 2 제어 연산을 수행한다.The
제어 회로(212)는 제 1 제어 연산을 위한 제 1 제어 회로(2121)와 제 2 제어 연산을 위한 제 2 제어 회로(2122)를 포함한다.The
제 1 제어 회로(2121)는 제 1 제어 블록(21211), 제 2 제어 블록(21212) 및 제 3 제어 블록(21213)을 포함한다.The
제 2 제어 회로(2122)는 제 4 제어 블록(21221), 제 5 제어 블록(21222) 및 제 6 제어 블록(21223)을 포함한다.The
제 5 제어 블록(21222)과 제 6 제어 블록(21223)은 D 플립플롭을 포함하여 대응하는 파이프라인 단계에서 데이터를 유지하도록 한다.The
도 6의 알고리즘의 라인 8의 판단 결과를 나타내는 신호는 MC(r), 라인 23의 판단 결과를 나타내는 신호는 MC'(r)로 표시된다.The signal representing the determination result of
예를 들어 제 1 제어 블록(21211)은 도 6의 알고리즘의 라인 8의 판정 결과에 대응하는 신호 MC(r)를 생성하고, 제 2 제어 블록(21212)은 도 6의 알고리즘의 라인 11 또는 17에 대응하는 동작을 수행하고, 제 3 제어 블록(21213)은 도 6의 알고리즘의 라인 12 또는 18에 대응하는 동작을 수행한다.For example, the first control block 221211 generates a signal MC (r) corresponding to the determination result of
유사하게 제 4 제어 블록(21221)은 도 6의 알고리즘의 라인 23의 판정 결과에 대응하는 신호 MC'(r)를 생성하고, 제 5 제어 블록(21222)은 도 6의 알고리즘의 라인 26 또는 32에 대응하는 동작을 수행하고, 제 6 제어 블록(21223)은 도 6의 알고리즘의 라인 27 또는 33에 대응하는 동작을 수행한다.Similarly, fourth control block 221221 generates signal MC '(r) corresponding to the determination result of
라인 12 및 27의 동작은 음수를 표현하기 위한 2의 보수 연산을 나타낸다. 예를 들어 k(r)의 음수값은 k(r)을 비트별로 반전한 후 1을 더한 것과 같다. 따라서 k(r)을 비트별로 반전한 값은 도 6의 알고리즘의 라인 12와 같이 k(r)의 음수값에서 1을 뺀 것과 같다.The operation of
도 9의 각 제어 블록은 도 6의 대응하는 알고리즘을 직접적으로 기호화한 것이어서 이에 대한 구체적인 설명은 생략한다.Each control block of FIG. 9 is a direct symbolization of the corresponding algorithm of FIG. 6, and thus a detailed description thereof will be omitted.
도 10은 도 3의 CSEE 회로(300)의 상세 블록도이다.10 is a detailed block diagram of the
CSEE 회로(300)는 CS(Chien Search) 회로(310)와 EE(Error Evaluation) 회로(320)를 포함한다.The
CS 회로(310)는 치엔 검색 알고리즘을 구현한 회로로서 KES 회로(200)에서 출력되는 에러 위치 다항식(λ(x))을 입력받아 에러 위치를 연산한다.The
EE 회로(310)는 포니 알고리즘을 구현한 회로로서 KES 회로(200)에서 출력되는 에러 평가 다항식(Ω(x))과 CS 회로(310)에서 출력되는 에러 위치를 입력받아 에러 값을 연산한다.The
치엔 검색 알고리즘과 포니 알고리즘은 구현하는 회로는 종래에 다양하게 알려져 있다.The circuitry for implementing the Chien search algorithm and the Pony algorithm is variously known in the art.
연산 속도를 향상시키기 위해서는 병렬식으로 회로를 구현하는 것이 바람직하다.In order to improve the computational speed, it is desirable to implement the circuit in parallel.
도 11은 본 발명의 일 실시예에 의한 반도체 장치(2)의 블록도이다.11 is a block diagram of a
반도체 장치(2)는 데이터를 입력받는 입력 버퍼(610), 입력 버퍼(610)에서 출력된 데이터를 에러 정정 알고리즘에 따라 인코딩하여 코드워드를 출력하는 에러 정정 인코더(620), 인코딩된 코드워드를 저장하는 메모리 셀(630), 메모리 셀(630)에서 출력된 코드워드를 에러 정정 알고리즘에 따라 디코딩하여 에러가 정정된 데이터를 출력하는 에러 정정 디코더(640), 에러 정정 디코더(640)에서 출력된 데이터를 버퍼링하여 외부에 제공하는 출력 버퍼(650)를 포함한다.The
메모리 셀(630)은 데이터와 패리티를 분리하여 저장할 수 있으며 이 경우 데이터를 저장하는 메인 셀(631)과 패리티를 저장하는 패리티 셀(632)을 포함할 수 있다.The
본 실시예에서 에러 정정 알고리즘은 리드 솔로몬 알고리즘을 포함하며 이때 에러 정정 디코더(640)는 도 3에 개시된 리드 솔로몬 디코더(1)를 포함한다.In this embodiment, the error correction algorithm includes a Reed Solomon algorithm, wherein the
본 발명에 의한 반도체 장치(2)는 반도체 메모리 장치, 네트워크 장치 등 다양한 실시예로 구현될 수 있다.The
도 11은 본 발명에 의한 반도체 장치(2) 내에 포함되는 대표적인 구성을 도시한 것으로서 도 11의 각 블록 사이의 경로에는 데이터가 경유하는 블록들이 추가될 수 있다.FIG. 11 illustrates a representative configuration included in the
본 발명에 의한 반도체 장치(2)는 에러 정정 디코더(640)가 고속으로 디코딩을 수행하므로 디코딩 과정에서의 병목 현상을 방지할 수 있다.In the
본 발명에 의한 반도체 장치(2)는 에러 정정 인코딩 및 디코딩 기능을 자체적으로 수행하므로 반도체 장치 외부에 별도의 인코딩 및 디코딩 장치를 추가할 필요가 없다.Since the
이를 통해 반도체 장치(2)를 포함하는 시스템의 면적 및 제조 비용을 줄일 수 있다.As a result, the area and manufacturing cost of the system including the
이상의 개시는 본 발명의 실시예를 설명하는 것이므로 이상의 개시에 의하여 본 발명의 권리범위가 한정되는 것은 아니다. 본 발명의 권리범위는 이하의 특허청구범위에 문언적으로 기재된 범위와 그 균등범위에 의해 정해진다.Since the above disclosure describes the embodiments of the present invention, the scope of the present invention is not limited to the above disclosure. The scope of the present invention is defined by the scope literally described in the following claims and their equivalents.
1: 리드 솔로몬 디코더
2: 반도체 장치
10, 100: SC 회로
20, 200: KES 회로
210: 서브 KES 회로
211: PE 회로
212: 제어 회로
30, 300: CSEE 회로
310: CS 회로
320: EE 회로
40, 400: 에러 정정 연산 회로
500: 레지스터
610: 입력 버퍼
620: 에러 정정 인코더
630: 메모리 셀
640: 에러 정정 디코더
650: 출력 버퍼1: Reed Solomon Decoder
2: semiconductor device
10, 100: SC circuit
20, 200: KES circuit
210: sub KES circuit
211: PE circuit
212: control circuit
30, 300: CSEE circuit
310: CS circuit
320: EE circuit
40, 400: error correction operation circuit
500: register
610: input buffer
620: error correction encoder
630: memory cell
640: error correction decoder
650 output buffer
Claims (18)
상기 신드롬으로부터 에러 위치 다항식과 에러 평가 다항식을 연산하는 KES 회로; 및
상기 에러 위치 다항식과 상기 에러 평가 다항식으로부터 에러 위치와 에러 값을 연산하는 CSEE 회로
를 포함하되,
상기 KES 회로는 직렬 연결된 다수의 서브 KES 회로를 포함하고,
상기 다수의 서브 KES 회로 각각, 상기 SC 회로 및 상기 CSEE 회로는 파이프라인 단계를 구성하는 리드 솔로몬 디코더. An SC circuit for calculating a syndrome from a codeword;
A KES circuit for calculating an error position polynomial and an error evaluation polynomial from the syndrome; And
CSEE circuit for calculating an error position and an error value from the error position polynomial and the error evaluation polynomial
Including,
The KES circuit includes a plurality of sub KES circuits connected in series,
And each of said plurality of sub KES circuits, said SC circuit and said CSEE circuit constitute a pipeline stage.
상기 코드워드를 큐잉하는 레지스터; 및
상기 레지스터에서 출력된 코드워드와 상기 에러 위치 및 상기 에러 값을 연산하여 에러가 정정된 데이터를 출력하는 에러 정정 연산 회로
를 더 포함하는 리드 솔로몬 디코더.The method according to claim 1,
A register for queuing the codeword; And
An error correction arithmetic circuit for calculating the codeword output from the register, the error position, and the error value and outputting data in which the error is corrected
Reed Solomon decoder including more.
상기 에러 위치 다항식으로부터 에러 위치를 연산하는 CS 회로; 및
상기 에러 평가 다항식 및 상기 에러 위치로부터 에러 값을 연산하는 EE 회로
를 포함하는 리드 솔로몬 디코더.The circuit of claim 1 wherein the CSEE circuitry is
A CS circuit for calculating an error position from the error position polynomial; And
An EE circuit for calculating an error value from the error evaluation polynomial and the error location
Reed Solomon decoder including.
상기 에러 정정 인코더에서 출력되는 코드워드를 저장하는 메모리 셀; 및
상기 메모리 셀에서 출력되는 코드워드를 디코딩하여 에러가 정정된 데이터를 출력하는 에러 정정 디코더
를 포함하되,
상기 에러 정정 디코더는
상기 메모리 셀에서 출력된 코드워드로부터 신드롬을 계산하는 SC 회로;
상기 신드롬으로부터 에러 위치 다항식과 에러 평가 다항식을 연산하는 KES 회로; 및
상기 에러 위치 다항식과 상기 에러 평가 다항식으로부터 에러 위치와 에러 값을 연산하는 CSEE 회로
를 포함하고,
상기 KES 회로는 직렬 연결된 다수의 서브 KES 회로를 포함하고,
상기 다수의 서브 KES 회로 각각, 상기 SC 회로 및 상기 CSEE 회로는 파이프라인 단계를 구성하는
리드 솔로몬 디코더를 포함하는 반도체 장치.An error correction encoder for encoding data and outputting a codeword;
A memory cell storing a codeword output from the error correction encoder; And
An error correction decoder that decodes a codeword output from the memory cell and outputs data with error correction
Including,
The error correction decoder
An SC circuit for calculating a syndrome from a codeword output from the memory cell;
A KES circuit for calculating an error position polynomial and an error evaluation polynomial from the syndrome; And
CSEE circuit for calculating an error position and an error value from the error position polynomial and the error evaluation polynomial
Including,
The KES circuit includes a plurality of sub KES circuits connected in series,
Each of the plurality of sub KES circuits, the SC circuit and the CSEE circuit constitute a pipeline stage.
A semiconductor device comprising a Reed Solomon decoder.
외부에서 입력된 데이터를 버퍼링하여 상기 에러 정정 인코더에 제공하는 입력 버퍼 및
상기 에러 정정 디코더에서 출력되는 데이터를 버퍼링하여 외부에 제공하는 출력 버퍼
를 더 포함하는 반도체 장치.The method according to claim 9,
An input buffer for buffering externally input data and providing the same to the error correction encoder;
An output buffer that buffers the data output from the error correction decoder and provides it to the outside
The semiconductor device further comprising.
상기 메모리 셀에서 출력된 코드워드를 큐잉하는 레지스터; 및
상기 레지스터에서 출력된 코드워드와 상기 에러 위치 및 상기 에러 값을 연산하여 에러가 정정된 데이터를 출력하는 에러 정정 연산 회로
를 더 포함하는 반도체 장치.The method of claim 9, wherein the error correction decoder is
A register for queuing a codeword output from the memory cell; And
An error correction arithmetic circuit for calculating the codeword output from the register, the error position, and the error value and outputting data in which the error is corrected
The semiconductor device further comprising.
상기 에러 위치 다항식으로부터 에러 위치를 연산하는 CS 회로; 및
상기 에러 평가 다항식 및 상기 에러 위치로부터 에러 값을 연산하는 EE 회로
를 포함하는 반도체 장치.
The system of claim 9, wherein the CSEE circuitry is
A CS circuit for calculating an error position from the error position polynomial; And
An EE circuit for calculating an error value from the error evaluation polynomial and the error location
A semiconductor device comprising a.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/239,460 US10879933B2 (en) | 2018-04-16 | 2019-01-03 | Reed solomon decoder and semiconductor device including the same |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180043797 | 2018-04-16 | ||
KR20180043797 | 2018-04-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190120690A true KR20190120690A (en) | 2019-10-24 |
KR102635135B1 KR102635135B1 (en) | 2024-02-08 |
Family
ID=68423474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180167946A KR102635135B1 (en) | 2018-04-16 | 2018-12-21 | Reed solomon decoder and semiconductor deivce including the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102635135B1 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040045922A (en) | 2001-10-26 | 2004-06-02 | 코닌클리즈케 필립스 일렉트로닉스 엔.브이. | Decoding method and decoder for reed solomon code |
KR20120007847A (en) * | 2010-07-15 | 2012-01-25 | 아주대학교산학협력단 | Four channel three-parallel reed-solomon decoder using s-dcme |
KR101226439B1 (en) * | 2011-12-27 | 2013-01-25 | 한국과학기술원 | Rs decoder, memory system having the same and decoding method |
US8365354B1 (en) | 2011-10-25 | 2013-02-05 | Der Sheng Co., Ltd. | Castor having adjustable braking function |
-
2018
- 2018-12-21 KR KR1020180167946A patent/KR102635135B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040045922A (en) | 2001-10-26 | 2004-06-02 | 코닌클리즈케 필립스 일렉트로닉스 엔.브이. | Decoding method and decoder for reed solomon code |
KR20120007847A (en) * | 2010-07-15 | 2012-01-25 | 아주대학교산학협력단 | Four channel three-parallel reed-solomon decoder using s-dcme |
US8365354B1 (en) | 2011-10-25 | 2013-02-05 | Der Sheng Co., Ltd. | Castor having adjustable braking function |
KR101226439B1 (en) * | 2011-12-27 | 2013-01-25 | 한국과학기술원 | Rs decoder, memory system having the same and decoding method |
Non-Patent Citations (1)
Title |
---|
D. V. Sarwate and N. R. Shanbhag, "High-speed Architectures for Reed-Solomon decoders," IEEE Trans. on VLSI Syst., vol. 9, pp. 641-655, Oct. 2001. (Pubitemid 32992893) |
Also Published As
Publication number | Publication date |
---|---|
KR102635135B1 (en) | 2024-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lee | High-speed VLSI architecture for parallel Reed-Solomon decoder | |
US5157671A (en) | Semi-systolic architecture for decoding error-correcting codes | |
JP3256517B2 (en) | Encoding circuit, circuit, parity generation method, and storage medium | |
US6119262A (en) | Method and apparatus for solving key equation polynomials in decoding error correction codes | |
WO2000057561A1 (en) | Pipelined high speed reed-solomon error/erasure decoder | |
US7870468B1 (en) | Reed-solomon decoder using a configurable arithmetic processor | |
Qaqos | Optimized FPGA implementation of the CRC using parallel pipelining architecture | |
US20030188248A1 (en) | Apparatus for iterative hard-decision forward error correction decoding | |
Xie et al. | Reduced-complexity key equation solvers for generalized integrated interleaved BCH decoders | |
KR100970223B1 (en) | A method of soft-decision decoding of reed-solomon codes, and reed-solomon codeword decoder and computer program product | |
JP3447053B2 (en) | Combination circuit, encoding device, decoding device, and semiconductor device using the combination circuit | |
US9337869B2 (en) | Encoding and syndrome computing co-design circuit for BCH code and method for deciding the same | |
US20100174970A1 (en) | Efficient implementation of a key-equation solver for bch codes | |
US20030131308A1 (en) | Method and apparatus for solving key equation polynomials in decoding error correction codes | |
KR102635135B1 (en) | Reed solomon decoder and semiconductor deivce including the same | |
US8984385B1 (en) | Systems and methods for cyclic redundancy check implementation | |
KR100756424B1 (en) | An Area-Efficient Reed-Solomon Decoder using Pipelined Recursive Technique | |
JPH11196006A (en) | Parallel processing syndrome calculation circuit and reed solomon decoding circuit | |
KR101636406B1 (en) | Preprocessing apparatus and method for low latency of syndrome calculation in bch decoder | |
US10218386B1 (en) | Methods and apparatus for performing variable and breakout Reed Solomon encoding | |
US10879933B2 (en) | Reed solomon decoder and semiconductor device including the same | |
KR101267958B1 (en) | Bch decoder, memory system having the same and decoding method | |
TWI523437B (en) | Encoding and syndrome computing co-design circuit for bch code and method for deciding the same | |
JPH06276106A (en) | Error correcting/decoding device | |
US8245103B2 (en) | Arithmetic circuit for concatenated codes and address control method |
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 |