KR20150084560A - 인코딩 장치, 디코딩 장치 및 그 동작 방법 - Google Patents

인코딩 장치, 디코딩 장치 및 그 동작 방법 Download PDF

Info

Publication number
KR20150084560A
KR20150084560A KR1020140004690A KR20140004690A KR20150084560A KR 20150084560 A KR20150084560 A KR 20150084560A KR 1020140004690 A KR1020140004690 A KR 1020140004690A KR 20140004690 A KR20140004690 A KR 20140004690A KR 20150084560 A KR20150084560 A KR 20150084560A
Authority
KR
South Korea
Prior art keywords
message
parity
block
blocks
error
Prior art date
Application number
KR1020140004690A
Other languages
English (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 KR1020140004690A priority Critical patent/KR20150084560A/ko
Priority to US14/504,293 priority patent/US20150200686A1/en
Publication of KR20150084560A publication Critical patent/KR20150084560A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2909Product codes
    • H03M13/2915Product codes with an error detection code in one dimension
    • 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/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/098Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit using single parity bit

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)

Abstract

본 기술에 의한 인코딩 장치는 다수의 메시지 블록과 다수의 메시지 블록의 패리티 정보를 포함하는 패리티 블록으로부터 메시지 매트릭스를 생성하는 제 1 인코더 및 메시지 매트릭스에 패리티 정보를 부가하는 제 2 인코더를 포함한다.

Description

인코딩 장치, 디코딩 장치 및 그 동작 방법{ENCODING DEVICE, DECODING DEVICE AND OPERATING METHOD THEREOF}
본 발명은 인코딩 장치, 디코딩 장치 및 그 동작 방법에 관한 것으로서 보다 구체적으로는 다수의 메시지 블록과 이들에 대한 패리티 블록을 포함하여 메시지 매트릭스를 생성하고, 디코딩시 패리티 블록을 이용하여 오류가 발생한 메시지 블록의 오류를 정정하는 인코딩 장치, 디코딩 장치 및 그 동작 방법에 관한 것이다.
에러 검출 및 정정을 위하여 블록 단위의 다양한 코딩 기술이 사용되고 있으며 그 대표적인 예로서 연접 BCH 코드 기술이 있다.
일반적으로 행 패리티와 열 패리티가 각각 1개씩 실패하는 (1,1) 오류 패턴이 오류 마루(error floor)에 큰 영향을 미치고 있다. 이러한 (1,1) 오류 패턴은 오류가 발생한 블록을 한정할 수 있으나 해당 블록의 어느 비트에 오류가 발생했는지는 알 수 없다.
이를 위해서 종래에는 문턱값을 변경하면서 해당 메모리 영역을 여러 번 읽어 개별 비트들의 신뢰성을 결정하고 그 결과를 이용해 올바른 데이터를 추정하는 동작을 수행했다. 그러나 이러한 종래의 기술은 다수의 읽기 및 확인 동작으로 인하여 메모리의 읽기 성능이 저하되는 문제가 있다.
본 발명은 다수의 읽기 및 확인 과정을 거치지 않고 오류 마루의 주요 원인이 되는 (1,1) 오류 패턴을 신속하게 해결할 수 있는 인코딩 장치, 디코딩 장치 및 그 동작 방법을 제공한다.
본 발명의 일 실시예에 의한 인코딩 장치는 다수의 메시지 블록과 다수의 메시지 블록의 패리티 정보를 포함하는 패리티 블록으로부터 메시지 매트릭스를 생성하는 제 1 인코더 및 메시지 매트릭스에 패리티 정보를 부가하는 제 2 인코더를 포함한다.
본 발명의 일 실시예에 의한 디코딩 장치는 다수의 메시지 블록과 패리티 블록을 포함하는 메시지 매트릭스 및 메시지 매트릭스에 대한 패리티 정보를 포함하는 인코딩된 메시지를 디코딩하여 상기 메시지 매트릭스에서 오류가 발생한 오류 메시지 블록을 탐지하는 오류 탐지부; 및 다수의 메시지 블록 중 오류 메시지 블록을 제외한 정상 메시지 블록들과 패리티 블록으로부터 오류 메시지 블록의 오류를 정정하는 오류 정정부를 포함한다.
본 발명의 일 실시예에 의한 인코딩 방법은 메시지를 입력받아 다수의 메시지 블록과 다수의 메시지 블록에 대한 패리티 블록을 포함하는 메시지 매트릭스를 생성하는 제 1 단계; 및 메시지 매트릭스에 행 패리티와 열 패리티를 부가하는 제 2 단계를 포함한다.
본 발명의 일 실시예에 의한 디코딩 방법은 다수의 메시지 블록과 패리티 블록을 포함하는 메시지 매트릭스 및 상기 메시지 매트릭스에 대한 패리티 정보를 포함하는 인코딩된 메시지를 디코딩하여 상기 메시지 매트릭스에서 오류가 발생한 오류 메시지 블록을 탐지하는 오류 탐지 단계; 및 다수의 메시지 블록 중 오류 메시지 블록을 제외한 정상 메시지 블록들과 패리티 블록으로부터 오류 메시지 블록의 오류를 정정하는 오류 정정 단계를 포함한다.
본 기술을 통해 오류 마루의 주된 원인이 되는 (1,1) 오류 패턴을 다수의 읽기 및 확인 동작을 수행하지 않고서 신속하게 정정할 수 있고 이에 따라 해당 기술이 채택되는 메모리 장치 또는 통신 장치 등의 성능이 향상될 수 있다.
도 1은 본 발명의 일 실시예에 의한 메시지 매트릭스를 나타낸 다이어그램.
도 2 및 3은 본 발명의 다른 실시예에 의한 메시지 매트릭스를 나타낸 다이어그램.
도 4는 본 발명의 일 실시예에 의한 인코딩 장치의 블록도.
도 5는 본 발명의 일 실시예에 의한 인코딩 방법을 나타낸 순서도.
도 6은 본 발명의 일 실시예에 의한 디코딩 장치의 블록도.
도 7은 본 발명의 일 실시예에 의한 디코딩 방법을 나타낸 순서도.
도 8은 본 발명의 효과를 나타내는 그래프.
이하에서는 첨부한 도면을 참조하여 본 발명의 실시예에 대해서 상세히 설명한다. 이하의 설명에서 동일한 참조 부호는 실질적으로 동일한 대상을 지시한다.
도 1은 본 발명의 일 실시예에 의한 메시지 매트릭스(100)의 구조를 나타낸 다이어그램이다
도 1은 병렬 방식으로 행 패리티(200)와 열 패리티(300)가 연접되는 예를 나타낸 다이어그램으로 행 패리티(200)와 열 패리티(300)는 메시지 매트릭스(100)가 생성된 이후에 메시지 매트릭스(100)에 연접된다. 메시지 매트릭스(100)내의 임의의 메시지 블록(Bi ,j)은 하나의 행 패리티 블록(200i)과 하나의 열 패리티 블록(300j)에 의해 보호될 수 있다.
이하에서 본 발명의 개시는 행 또는 열 패리티 블록을 생성하기 위한 구체적인 코드 기술에 의존하는 것은 아니다. 예를 들어 패리티 블록은 BCH 코드, 해밍 코드 또는 RS 코드를 적용하여 생성할 수도 있고 다른 종류의 코드 기술을 적용하여 생성할 수도 있다.
본 발명은 행 또는 열 패리티가 부가되기 이전의 메시지 매트릭스(100)의 구조와 관련된다. 본 발명에 의한 메시지 매트릭스(100)는 다수의 메시지 블록(100k)과 다수의 메시지 블록(100k)에 대한 패리티 정보를 포함하는 패리티 블록(130)을 포함한다(1 ≤ k ≤ M - 1, M = Nr x Nc ).
패리티 블록(130)은 다수의 메시지 블록(100k)에 대한 단일 패리티 정보를 포함할 수 있다. 도 1에서는 패리티 블록(130)이 메시지 매트릭스(100)의 마지막 블록 위치에 존재하는 것으로 도시되어 있으나 패리티 블록(130)의 위치는 메시지 매트릭스(130) 내에서 다양하게 변경될 수 있다.
본 발명의 일 실시예에 의한 메시지 매트릭스(100)는 메시지 블록(100k)들의 길이와 패리티 블록(130)의 길이를 함께 고려하여 설계된다.
예를 들어 다수의 메시지 블록(100k) 모두가 동일하게 N(N은 자연수) 개의 비트를 포함하는 경우 패리티 블록(130) 역시 N 개의 비트를 포함하도록 설정될 수 있다. 이때 패리티 블록(130)의 n번째 비트(0 ≤ n ≤ N-1 )는 M-1개의 메시지 블록 각각의 n번째 비트들을 XOR 연산하여 결정할 수 있다.
만일 다수의 메시지 블록(100k)의 길이가 서로 다른 경우 다수의 메시지 블록(100k) 중 최대 길이를 N이라고 할 때 패리티 블록(130)의 길이를 N으로 설정할 수 있다. 이때 패리티 블록(130)의 n번째 비트(0 ≤ n ≤ N-1 )는 M-1개의 메시지 블록 각각의 n번째 비트들을 XOR 연산하여 결정할 수 있다. 만일 메시지 블록(100k) 중 n번째 비트가 존재하지 않는 경우 해당 비트를 0이라고 가정할 수 있다.
예를 들어 도 1과 같이 병렬로 연접된 데이터를 디코딩하는 과정에서 i번째 행과 j 번째 열에서 (1,1) 패턴의 오류가 발생하면 메시지 블록(Bi ,j)에 에러 비트가 존재함을 알 수 있다.
메시지 블록(Bi ,j)의 에러를 정정하기 위하여 패리티 블록(130)의 정보를 이용할 수 있다. 예를 들어 메시지 블록(Bi ,j)의 n 번째 비트는 오류가 발생한 메시지 블록(Bi ,j)을 제외한 나머지 메시지 블록(100k)과 패리티 블록(130)의 n 번째 비트를 XOR 연산하여 정정될 수 있다.
이러한 방식으로 (1,1) 오류 패턴에 의한 오류를 해결하는 경우 각 비트 정보의 신뢰성을 확인할 필요가 없어 다수의 메모리 읽기 동작이 생략될 수 있다.
도 2는 직렬 방식으로 행 패리티(200)와 열 패리티(300)가 연접되는 예를 나타낸 다이어그램으로 행 패리티(200)와 열 패리티(300)는 메시지로부터 메시지 매트릭스(100)가 생성된 이후에 메시지 매트릭스(100)에 연접된다.
도 2는 행의 개수와 열의 개수가 각각 6인 메시지 매트릭스(100)를 예로 든 것이다. 도 1에서와 마찬가지로 메시지 매트릭스(100)는 다수의 메시지 블록(100k)과 다수의 메시지 블록(100k)에 대한 패리티 정보를 포함하는 패리티 블록(130)을 포함한다. 패리티 블록(130)의 생성 방법 및 그 위치는 전술한 바와 동일하다.
병렬 연접의 경우와 마찬가지로 직렬 연접에 있어서도 행 패리티 블록(200i)은 메시지 매트릭스(100)의 각 행에 대응하여 생성된다. 열 패리티 블록(300j)은 메시지 매트릭스(100) 및 행 패리티(200) 전체에 대해서 생성된다.
본 실시예에 의한 직렬 연접에 있어서 행 패리티 블록(Ri) 각각은 메시지 매트릭스(100)에 대응하는 행의 어느 하나의 열의 메시지 블록(Bi ,6)에 결합된 것으로 간주된다.
도면에서는 각 행의 6번째 열에 위치하는 메시지 블록에 행 패리티 블록이 결합된 실시예를 도시하고 있다. 즉 열 패리티(200)를 생성함에 있어서 행 패리티 블록(R1)은 메시지 블록(B1,6)에 포함된 것으로 간주되고 행 패리티 블록(R6)은 패리티 블록(130, B6,6)에 포함된 것으로 간주된다.
이렇게 간주하는 경우 1 ~ 5 번째 열에 비하여 6 번째 열이 더 길기 때문에 단순히 열 단위로 열 패리티 블록을 생성하는 것은 바람직하지 않을 수 있다. 본 실시예에서는 열 패리티(300)를 생성하기 위하여 메시지 매트릭스(100)의 열을 재설정한다. 메시지 매트릭스(100)의 열을 재조정하는 방법의 일 예가 도 3에 도시되어 있다.
도 3에서 열 패리티 블록과 이를 생성하는데 사용되는 메시지 블록들이 동일한 패턴으로 표시되어 있다.
도 3에서 j 번째 열 패리티 블록(Cj)과 이를 생성하는데 사용되는 메시지 블록 및 행 패리티 블록의 관계를 식으로 표시하면 다음 수학식 1과 같다. 수학식 1에서 Nc는 열의 개수로서 도 3에서는 6의 값을 가진다.
Figure pat00001
도 4는 본 발명의 일 실시예에 의한 인코딩 장치(1000)를 나타내는 블록도이다.
제 1 인코더(1100)는 메시지로부터 다수의 메시지 블록들(100k)이 격자형으로 배치되는 메시지 매트릭스(100)를 생성하되 메시지 매트릭스(100)는 메시지 블록들(100k)의 패리티 정보를 포함하는 패리티 블록(130)을 더 포함한다.
제 1 인코더(1100)는 메시지의 길이와 패리티 블록(130)의 길이를 함께 고려하여 메시지 매트릭스(100)를 생성할 수 있다. 메시지 매트릭스(100)에 포함된 메시지 블록(100k) 및 패리티 블록(130)은 모두 동일한 길이를 가질 수도 있고 그렇지 않을 수도 있다.
메시지 매트릭스(100)의 행과 열의 개수가 정해진 상태에서 입력된 메시지에 포함된 비트들을 메시지 블록(100k)에 나누어 배치하는 것은 종래의 기술로부터 통상의 기술자에게 용이한 일이다.
본 발명에 있어서는 메시지 매트릭스(100) 중 하나의 블록을 패리티 블록(130)으로 설정한다. 패리티 블록(130)은 나머지 메시지 블록(100k)들의 패리티 정보를 저장한다.
패리티 블록(100k)의 생성 방법의 일 실시예에 대해서는 도 1을 참조하여 설명한 바 있으므로 구체적인 설명을 생략한다.
제 2 인코더(1200)는 패리티 블록(130)을 포함하는 메시지 매트릭스(100)에 대해서 행 패리티(200)와 열 패리티(300)를 부가하여 인코딩된 메시지를 출력한다.
행 패리티(200)와 열 패리티(300)는 디코딩 과정에서 오류 탐지 및 오류 정정을 위해 사용될 수 있다. 행 패리티(200)와 열 패리티(300)의 생성을 위해서 다양한 코드 기술이 적용될 수 있다.
예를 들어 BCH 코드, RS 코드, 해밍 코드 등의 코드 기술을 적용하여 행 패리티 블록과 열 패리티 블록을 생성하고 이를 메시지 매트릭스(100)에 부가하여 인코딩된 메시지를 출력할 수 있다.
인코딩된 메시지는 메모리 장치의 셀 어레이에 기록되거나 통신 채널을 통해 전송될 수 있다.
행 패리티(200)와 열 패리티(300)를 메시지 매트릭스(100)에 부가하는 과정에서 제 2 인코더(1200)는 병렬 연접 또는 직렬 연접의 방식을 사용할 수 있다. 병렬 연접과 직렬 연접에 대해서는 도 1 내지 3을 참조하여 설명하였으므로 구체적인 설명을 생략한다.
도 5는 본 발명의 일 실시예에 의한 인코딩 방법을 나타낸 순서도이다.
본 발명의 일 실시예에 의한 인코딩 방법은 메시지로부터 다수의 메시지 블록과 다수의 메시지 블록에 대한 패리티 정보를 포함하는 패리티 블록을 포함하는 메시지 매트릭스를 생성하는 단계(S110)와 메시지 매트릭스에 BCH 코드, 해밍 코드, RS 코드 등의 코딩 기술을 적용하여 행 패리티와 열 패리티를 생성하는 단계(S120)를 포함한다.
단계(S110)는 도 4의 제 1 인코더(1100)의 동작에 대응하고 단계(S120)는 도 4의 제 2 인코더(1200)의 동작에 대응하므로 구체적인 설명은 생략한다.
도 6은 본 발명의 일 실시예에 의한 디코딩 장치(2000)를 나타내는 블록도이다.
본 발명의 일 실시예에 의한 디코딩 장치(2000)는 오류 탐지부(2100)와 오류 정정부(2200)를 포함한다.
오류 탐지부(2100)는 인코딩된 메시지를 디코딩하여 얻은 행 패리티(200)와 열 패리티(300)를 이용하여 메시지 매트릭스(100)에 존재하는 오류를 탐지한다. 예를 들어 오류 탐지부(2100)는 i 번째 행 패리티 블록(200i)과 j 번째 열 패리티 블록(300j)에서 오류가 발생하는 경우 메시지 블록(Bi ,j)에서 (1,1) 패턴의 오류가 발생하였음을 탐지한다.
오류 정정부(2200)는 오류 탐지부(2100)에서 오류가 발생한 메시지 블록을 탐지한 경우 메시지 매트릭스(100)의 다른 메시지 블록들과 패리티 블록(130)을 이용하여 오류가 발생한 메시지 블록의 오류를 정정한다.
오류 정정부(2200)는 오류가 탐지된 경우 해당 오류가 정정 가능한 것인지 확인하고 이를 정정한다. 예를 들어 메시지 블록(Bi ,j)에서 발생한 오류 패턴이 (1,1) 패턴인 것으로 탐지된 경우에 오류 정정부(2200)는 오류가 발생한 메시지 블록(Bi,j)를 제외한 메시지 블록들과 패리티 블록(130)을 이용하여 오류를 정정한다.
만일 패리티 블록(130)이 메시지 블록(100k)들에 대한 단일 패리티 확인 기능을 가진 경우라면 오류가 발생한 메시지 블록(Bi ,j)의 n 번째 비트의 값은 메시지 블록(Bi ,j)을 제외한 나머지 메시지 블록(100k)들의 n 번째 비트와 패리티 블록(130)의 n 번째 비트를 XOR 연산하여 곧바로 정정할 수 있다.
도 7은 본 발명의 일 실시예에 의한 디코딩 방법을 나타낸 순서도이다.
본 발명의 일 실시예에 의한 디코딩 방법은 인코딩된 메시지를 디코딩하여 메시지 매트릭스와 이에 대한 행 패리티 및 열 패리티를 확인하고 이를 이용하여 메시지 매트릭스에서 오류가 발생한 오류 메시지 블록을 탐지하는 단계(S210)와 메시지 매트릭스의 다른 메시지 블록들과 패리티 블록을 이용하여 오류 메시지 블록을 정정하는 단계(S220)를 포함한다.
인코딩된 메시지를 디코딩하여 오류 메시지 블록을 탐지하는 단계(S210)는 도 6의 오류 탐지부(2100)의 동작에 대응하고 오류 메시지 블록의 오류를 정정하는 단계(S220)는 도 6의 오류 정정부(2200)의 동작에 대응한다. 이들에 대해서는 앞에서 상세히 설명하였으므로 구체적인 설명은 생략한다.
도 8은 본 발명의 효과를 설명하는 그래프이다.
도 8의 그래프는 메시지 블록들의 길이가 서로 다른 불규칙 병렬 연접 방식의 BCH 코드 기술을 이용하여 실험한 결과를 나타낸다.
본 발명의 경우에는 종래와는 메시지에 패리티 블록이 더 추가되는데 사용된 패리티 블록의 길이는 57비트이다.
도 8에서 종래의 경우와 본 발명의 경우 공통적으로 메시지 길이는 65536 비트이고 메시지 블록(100k) 하나의 길이는 56 비트 또는 57비트이며 메시지 매트릭스(100)의 행의 개수와 열의 개수는 각각 34개이다. 또한 메시지 매트릭스의 각 행에 대한 보호 성능은 6이고 행 패리티 블록(200i)의 길이는 66이며, 메시지 매트릭스의 각 열에 대한 보호 성능은 7이고 열 패리티 블록(300j)의 길이는 77이다.
패리티 블록(130)이 포함되지 않은 종래 기술에 의한 메시지 매트릭스(100)의 행과 열은 각각 길이가 1928비트인 행 18개와 길이가 1927 비트인 행 16개로 설계되었고, 패리티 블록(130)이 포함된 본 발명에 의한 메시지 매트릭스(100)의 행과 열은 각각 길이가 1930비트인 행 7개와 길이가 1929 비트인 행 27개로 설계되었다.
도 8에서 가로축은 원 비트 에러율(Raw BER)로서 메모리 셀이 기본적으로 가지고 있는 에러율을 나타내고, 세로축은 페이지 에러율(PER)로서 코딩을 적용한 이후의 페이지 에러율을 나타낸다. 도 8의 그래프는 패리티 블록을 추가함으로써 오류 마루가 종래에 비하여 현저하게 줄어드는 것을 나타낸다.
예를 들어 원 비트 에러율이 3 x 10-3인 경우 페이지 에러율은 종래에 비하여 약 1/1000로 줄어든 것을 알 수 있다. 이를 통해 (1,1) 오류 패턴으로 인하여 오류 마루가 쉽게 낮아지지 않는 종래 기술의 문제를 본 발명을 통해 효과적으로 해결하였음을 알 수 있다.
이상에서 도면을 참조하여 본 발명의 실시예를 개시하였다. 이상의 개시는 설명을 위한 것으로서 본 발명의 권리범위를 한정하는 것은 아니며, 본 발명의 권리범위는 이하의 특허청구범위에 문언적으로 기재된 범위와 그 균등범위에 의해 정해진다.
1000: 인코딩 장치
1100: 제 1 인코더
1200: 제 2 인코더
2000: 디코딩 장치
2100: 오류 패턴 탐지부
2200: 오류 정정부
100: 메시지 매트릭스
110i: 행 메시지 블록
120j: 열 메시지 블록
100k: 메시지 블록
130: 패리티 블록
200: 행 패리티
200i: 행 패리티 블록
300: 열 패리티
300j: 열 패리티 블록

Claims (19)

  1. 다수의 메시지 블록과 상기 다수의 메시지 블록의 패리티 정보를 포함하는 패리티 블록으로부터 메시지 매트릭스를 생성하는 제 1 인코더; 및
    상기 메시지 매트릭스에 패리티 정보를 부가하는 제 2 인코더
    를 포함하는 인코딩 장치.
  2. 청구항 1에 있어서, 상기 패리티 블록은 상기 다수의 메시지 블록에 대한 단일 패리티 정보를 포함하는 인코딩 장치.
  3. 청구항 2에 있어서, 상기 패리티 블록은 다수의 비트를 포함하되 상기 다수의 비트 각각은 상기 다수의 메시지 블록들에서 대응하는 위치의 비트들을 연산하여 생성되는 인코딩 장치.
  4. 청구항 1에 있어서, 상기 다수의 메시지 블록 및 상기 패리티 블록의 길이는 동일한 인코딩 장치.
  5. 청구항 1에 있어서, 상기 다수의 메시지 블록 중 적어도 일부는 길이가 서로 상이하되, 상기 패리티 블록의 길이는 상기 다수의 메시지 블록들의 길이 중 가장 긴 길이와 동일한 인코딩 장치.
  6. 다수의 메시지 블록과 패리티 블록을 포함하는 메시지 매트릭스 및 상기 메시지 매트릭스에 대한 패리티 정보를 포함하는 인코딩된 메시지를 디코딩하여 상기 메시지 매트릭스에서 오류가 발생한 오류 메시지 블록을 탐지하는 오류 탐지부; 및
    상기 다수의 메시지 블록 중 상기 오류 메시지 블록을 제외한 정상 메시지 블록들과 상기 패리티 블록으로부터 상기 오류 메시지 블록의 오류를 정정하는 오류 정정부
    를 포함하는 디코딩 장치.
  7. 청구항 6에 있어서, 상기 오류 탐지부는 상기 패리티 정보로부터 상기 오류 메시지 블록을 탐지하는 디코딩 장치.
  8. 청구항 6에 있어서, 상기 패리티 블록은 상기 다수의 메시지 블록에 대한 단일 패리티 정보를 포함하는 디코딩 장치.
  9. 청구항 8에 있어서, 상기 오류 메시지 블록은 다수의 비트를 포함하고 상기 다수의 비트 각각은 상기 정상 메시지 블록들과 상기 패리티 블록의 대응하는 위치의 비트들을 연산하여 정정되는 디코딩 장치.
  10. 메시지를 입력받아 다수의 메시지 블록과 상기 다수의 메시지 블록에 대한 패리티 블록을 포함하는 메시지 매트릭스를 생성하는 제 1 단계; 및
    상기 메시지 매트릭스에 행 패리티와 열 패리티를 부가하는 제 2 단계
    를 포함하는 인코딩 방법.
  11. 청구항 10에 있어서, 상기 제 1 단계는
    상기 메시지에 포함된 비트들을 상기 다수의 메시지 블록에 분산하여 배치하는 단계 및
    상기 다수의 메시지 블록의 비트들로부터 상기 패리티 블록의 비트를 결정하는 단계
    를 포함하는 인코딩 방법.
  12. 청구항 11에 있어서, 상기 다수의 메시지 블록과 상기 패리티 블록의 길이는 동일한 인코딩 방법.
  13. 청구항 11에 있어서, 상기 다수의 메시지 블록 중 적어도 일부는 길이가 상이하고 상기 패리티 블록의 길이는 상기 다수의 메시지 블록의 길이 중 최대 길이와 동일한 인코딩 방법.
  14. 청구항 11에 있어서, 상기 패리티 블록의 각 비트는 상기 다수의 메시지 블록들의 대응하는 위치의 비트들에 대한 단일 패리티 확인 기능을 수행하는 인코딩 방법.
  15. 청구항 14에 있어서, 상기 패리티 블록의 각 비트는 상기 다수의 메시지 블록들의 대응하는 위치의 비트들을 연산하여 결정되는 인코딩 방법.
  16. 다수의 메시지 블록과 패리티 블록을 포함하는 메시지 매트릭스 및 상기 메시지 매트릭스에 대한 패리티 정보를 포함하는 인코딩된 메시지를 디코딩하여 상기 메시지 매트릭스에서 오류가 발생한 오류 메시지 블록을 탐지하는 오류 탐지 단계; 및
    상기 다수의 메시지 블록 중 상기 오류 메시지 블록을 제외한 정상 메시지 블록들과 상기 패리티 블록으로부터 상기 오류 메시지 블록의 오류를 정정하는 오류 정정 단계
    를 포함하는 디코딩 방법.
  17. 청구항 16에 있어서, 상기 오류 탐지 단계는 상기 패리티 정보로부터 상기 오류 메시지 블록을 탐지하는 단계를 포함하는 디코딩 방법.
  18. 청구항 16에 있어서, 상기 패리티 블록은 상기 다수의 메시지 블록에 대한 단일 패리티 정보를 포함하는 디코딩 방법.
  19. 청구항 18에 있어서, 상기 오류 정정 단계는 상기 정상 메시지 블록들과 상기 패리티 블록의 대응하는 위치의 비트들을 연산하여 상기 오류 메시지 블록의 대응하는 비트 정보를 정정하는 단계를 포함하는 디코딩 방법.


KR1020140004690A 2014-01-14 2014-01-14 인코딩 장치, 디코딩 장치 및 그 동작 방법 KR20150084560A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140004690A KR20150084560A (ko) 2014-01-14 2014-01-14 인코딩 장치, 디코딩 장치 및 그 동작 방법
US14/504,293 US20150200686A1 (en) 2014-01-14 2014-10-01 Encoding device, decoding device, and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140004690A KR20150084560A (ko) 2014-01-14 2014-01-14 인코딩 장치, 디코딩 장치 및 그 동작 방법

Publications (1)

Publication Number Publication Date
KR20150084560A true KR20150084560A (ko) 2015-07-22

Family

ID=53522226

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140004690A KR20150084560A (ko) 2014-01-14 2014-01-14 인코딩 장치, 디코딩 장치 및 그 동작 방법

Country Status (2)

Country Link
US (1) US20150200686A1 (ko)
KR (1) KR20150084560A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9673840B2 (en) 2014-12-08 2017-06-06 SK Hynix Inc. Turbo product codes for NAND flash
KR20170101367A (ko) * 2016-02-26 2017-09-06 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10484014B2 (en) 2016-07-21 2019-11-19 SK Hynix Inc. Controller, semiconductor memory system and operating method thereof
US10700712B2 (en) 2017-10-02 2020-06-30 SK Hynix Inc. Semiconductor device including error correction code unit that generates data block matrix including plural parity blocks and plural data block groups diagonally arranged, and methods of operating the same

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5289418A (en) * 1992-02-14 1994-02-22 Extended Systems, Inc. Memory apparatus with built-in parity generation
KR100433908B1 (ko) * 2001-10-29 2004-06-04 삼성전자주식회사 통신시스템의 오류 검출 정보 송수신 장치 및 방법
US6931583B2 (en) * 2003-03-21 2005-08-16 Arraycomm, Inc. Decoding extended error correcting codes using soft information
US7546510B2 (en) * 2003-12-30 2009-06-09 Sandisk Il Ltd. Compact high-speed single-bit error-correction circuit
US7512862B1 (en) * 2005-04-13 2009-03-31 Network Appliance, Inc. Compression of data for protection
KR100984289B1 (ko) * 2005-12-07 2010-09-30 포항공과대학교 산학협력단 통신 시스템에서 가변 부호화율을 지원하는 신호 송수신장치 및 방법
JP4662278B2 (ja) * 2006-04-28 2011-03-30 富士通株式会社 エラー訂正装置、符号器、復号器、方法及び情報記憶装置
US20090055682A1 (en) * 2007-07-18 2009-02-26 Panasas Inc. Data storage systems and methods having block group error correction for repairing unrecoverable read errors
JP5007676B2 (ja) * 2008-01-31 2012-08-22 富士通株式会社 符号化装置、復号化装置、符号化・復号化装置及び記録再生装置
JP2011193434A (ja) * 2009-10-28 2011-09-29 Panasonic Corp パリティパケットを用いた通信方法、通信装置及び中継器
US8645789B2 (en) * 2011-12-22 2014-02-04 Sandisk Technologies Inc. Multi-phase ECC encoding using algebraic codes
US8972833B1 (en) * 2012-06-06 2015-03-03 Xilinx, Inc. Encoding and decoding of information using a block code matrix

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9673840B2 (en) 2014-12-08 2017-06-06 SK Hynix Inc. Turbo product codes for NAND flash
KR20170101367A (ko) * 2016-02-26 2017-09-06 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10484014B2 (en) 2016-07-21 2019-11-19 SK Hynix Inc. Controller, semiconductor memory system and operating method thereof
US10700712B2 (en) 2017-10-02 2020-06-30 SK Hynix Inc. Semiconductor device including error correction code unit that generates data block matrix including plural parity blocks and plural data block groups diagonally arranged, and methods of operating the same

Also Published As

Publication number Publication date
US20150200686A1 (en) 2015-07-16

Similar Documents

Publication Publication Date Title
CN102201266B (zh) 半导体存储器装置
US9787329B2 (en) Efficient coding with single-error correction and double-error detection capabilities
US20120198309A1 (en) Correcting memory device and memory channel failures in the presence of known memory device failures
US8225175B2 (en) Two-plane error correction method for a memory device and the memory device thereof
US8359518B2 (en) 2D product code and method for detecting false decoding errors
TW200508850A (en) Application of special ECC matrix for solving stuck bit faults in an ECC protected mechanism
KR101550762B1 (ko) 연접 오류 정정 장치
US8527834B2 (en) Information processing device and information processing method
EP3852275A1 (en) Method, device and apparatus for storing data, computer readable storage medium
US9189330B2 (en) Stale data detection in marked channel for scrub
KR20150084560A (ko) 인코딩 장치, 디코딩 장치 및 그 동작 방법
US7721177B2 (en) Device and method for determining a position of a bit error in a bit sequence
US20070260962A1 (en) Methods and apparatus for a memory device with self-healing reference bits
Lastras-Montaño et al. A new class of array codes for memory storage
US6463563B1 (en) Single symbol correction double symbol detection code employing a modular H-matrix
US8856629B2 (en) Device and method for testing a circuit to be tested
US9350390B2 (en) Encoder, decoder and semiconductor device including the same
US11042440B2 (en) Data checksums without storage overhead
KR20190132238A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
RU2450332C1 (ru) Устройство хранения информации с обнаружением одиночных и двойных ошибок
US10902154B2 (en) Data security
KR101948952B1 (ko) 인코딩 장치 및 메시지 매트릭스 생성 방법
JP5357993B2 (ja) 誤り訂正が可能な符号化・復号化方式
US20140344652A1 (en) Method for generating a maximized linear correcting code, method and device for decoding such a code
CN109753369A (zh) 一种寄存器及内存中顺序数组的数据编码及校验方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid