KR20130087931A - 패리티 체크 행렬 생성 방법, 이를 이용한 오류 정정 방법 및 장치, 오류 정정 장치용 디코더 그리고 오류 정정 장치를 포함하는 메모리 및 전자장치 - Google Patents

패리티 체크 행렬 생성 방법, 이를 이용한 오류 정정 방법 및 장치, 오류 정정 장치용 디코더 그리고 오류 정정 장치를 포함하는 메모리 및 전자장치 Download PDF

Info

Publication number
KR20130087931A
KR20130087931A KR1020120009201A KR20120009201A KR20130087931A KR 20130087931 A KR20130087931 A KR 20130087931A KR 1020120009201 A KR1020120009201 A KR 1020120009201A KR 20120009201 A KR20120009201 A KR 20120009201A KR 20130087931 A KR20130087931 A KR 20130087931A
Authority
KR
South Korea
Prior art keywords
decoder
matrix
column weight
error correction
weight
Prior art date
Application number
KR1020120009201A
Other languages
English (en)
Other versions
KR101304570B1 (ko
Inventor
윤홍일
차상언
Original Assignee
연세대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 연세대학교 산학협력단 filed Critical 연세대학교 산학협력단
Priority to KR1020120009201A priority Critical patent/KR101304570B1/ko
Publication of KR20130087931A publication Critical patent/KR20130087931A/ko
Application granted granted Critical
Publication of KR101304570B1 publication Critical patent/KR101304570B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

ECC 모듈의 디코더의 입력 개수를 감소시켜 디코더의 면적을 감소시키는 최대 열 무게(column weight) 선호 디코딩 유닛이 제공된다. 디코딩 유닛의 적어도 하나의 디코더는 최대 열 무게를 갖는 H-행렬의 열의 최대 열 무게와 동일한 입력을 가진다.

Description

패리티 체크 행렬 생성 방법, 이를 이용한 오류 정정 방법 및 장치, 오류 정정 장치용 디코더 그리고 오류 정정 장치를 포함하는 메모리 및 전자장치{Methods of Generating Parity Check Matrix, Error Correction Methods and Devices using thereof, and Memories and Electronic Device using thereof}
본 발명 개념의 실시 예에는 반도체 소자에 대한 것으로서 더 상세하게는 메모리 오류 정정에 대한 것이다.
메모리의 신뢰성 향상을 위하여 오류 정정 코드 기술은 메모리에 적용되어 왔다. 특히 오류 정정 코드 수행 회로의 면적을 감소시키고, 동작 속도를 향상시키기 위해서 오류 정정 코드 수행 회로의 구조를 개선하고 그 기반이 되는 오류 정정 코드를 개선하는 방향으로 발전하여 왔다.
문헌 1은 현재 가장 널리 사용되고 있는 단일 오류 정정 코드인 해밍 코드를 제시하고 있다. 해밍 코드는 1950년에 통신 시스템의 오류를 정정하기 위해서 개발되었다. 이는 H-행렬 내 데이터 비트에 할당 되는 열 벡터 값을 2진수의 순차적 고정된 값을 배정한다. 해밍 코드는 초기의 오류 정정 코드로 통신 시스템의 신뢰성을 크게 향상시켰지만, 이후 메모리 적용에 있어서는 오류 정정 코드 수행 회로의 면적과 동작시간이 크게 요구된다.
문헌 2는 H-행렬 내 데이터 비트에 할당되는 모든 열들의 열 무게를 2로 만들어서 오류 정정 코드 수행 회로의 면적 및 동작시간을 크게 감소 시켰다. 하지만 해밍 코드를 비롯한 기존 단일 오류 정정 코드에서 필요한 체크 비트보다 훨씬 많은 체크 비트를 필요로 하는 단점을 가지고 있다.
문헌 3은 해밍 코드와 동일한 체크 비트가 필요하면서, 오류 정정 코드 수행 회로 중 체크 비트 생성기의 면적 및 동작 시간을 감소시키는데 초점을 맞춰 H-행렬 내 전체 무게를 감소시키고, 가장 큰 행 무게를 일정 수준 이하로 감소시켰다. 하지만 디코더를 비롯한 오류 정정 코드 수행 회로의 다른 부분은 해밍 코드와 동일하게 구성되었다.
1. 문헌 1 R. W. Hamming, "Error detecting and error correcting code," Bell System Technical Journal, vol. 26, pp. 147160, Apr.1950. 2. 문헌 2 P. K. Lala, P. Thenappan, and M. T. Anwar, "Single error correcting and double error detecting coding scheme," IET Electronics Letters, vol. 41, Issue 13, pp. 758760, Feb. 2005. 3. 문헌 3 S. Cha, and H. Yoon, "High speed, minimal area, and low power SEC code for DRAMs with large I/O data widths," Circuits and Systems, 2007. ISCAS 2007. IEEE International Symposium on, pp. 30263029, May. 2007.
본 발명의 개념에 따른 실시 예는 오류 정정 코드를 위한 디코더 유닛을 제공한다.
본 발명의 개념에 따른 실시 예는 H-행렬 생성 방법을 제공한다.
본 발명의 개념에 따른 실시 예는 오류 정정 코드 모듈을 제공한다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 실시 예에 따른 (n, k) 오류 정정 코드를 위한 디코더 유닛은 서로 다른 개수의 입력을 받는 복수 개의 디코더를 포함하고, 상기 복수 개의 디코더 중 적어도 하나는 H-행렬의 최대 열 무게를 갖는 열의 열 무게와 동일한 입력을 갖는다.
일 실시 예에서, 상기 디코더 유닛은 (n-k)개의 입력을 갖는 적어도 하나의 제1 디코더 및 (n-k)보다 작은 입력을 갖는 적어도 하나의 제2 디코더를 포함한다.
일 실시 예에서, 상기 제2 디코더의 입력 개수는 상기 최대 열 무게와 동일하다.
본 발명의 일 실시 예에 따른 ECC 모듈은 수신한 메세지 데이터(k 비트)로부터 쓰기 체크 비트를 생성하고 수신되어 저장된 메세지 데이터로부터 읽기 체크 비트(m 비트)를 생성하는 체크 비트 생성기, 읽기 체크 비트 및 쓰기 체크 비트로부터 신드롬을 계산하는 신드롬 생성기, 그리고 신드롬 생성기의 출력을 입력으로 하여 오류를 검출하는 디코더 유닛을 포함하며, 상기 디코더 유닛은 서로 다른 개수의 입력을 받는 복수 개의 디코더를 포함하고, 상기 복수 개의 디코더 중 적어도 하나는 H-행렬의 최대 열 무게를 갖는 열의 열 무게와 동일한 입력을 갖는다.
일 실시 예에 있어서, (n-k)개의 입력을 갖는 적어도 하나의 제1 디코더 및 (n-k)보다 작은 입력을 갖는 적어도 하나의 제2 디코더를 포함한다.
일 실시 예에 있어서, 상기 제2 디코더의 입력 개수는 상기 최대 열 무게와 동일하다.
본 발명의 일 실시 예에 따른 (n, k) 오류 정정 코드를 위한 디코더 유닛은 H-행렬의 열의 개수(n)에 대응하는 n개의 디코더를 포함하고, H-행렬의 최대 열 무게를 갖는 열에 대응하는 디코더는 상기 최대 열 무게와 동일한 입력을 갖는다.
본 발명의 일 실시 예에 따른 H-행렬 생성 방법은, 모두 0인 열이 없는 제1 조건; 각각의 열은 다른 열과 모두 구분되는 제2 조건; 그리고 최대 열 무게를 가지는 열의 개수를 최대로 하는 제3 조건을 만족한다.
일 실시 예에서, 각각의 행 무게는 행렬의 전체 무게를 행의 개수로 나눈 수에 가까운 정수로 하는 제4 조건을 더 만족한다.
일 실시 예에서, 열 무게가 2, 3, ..., MCW-2, MCW, MCW-1인 순서로 열을 채운다.
본 발명의 일 실시 예는 상기 H-행렬을 생성하는 방법을 수행하기 위한 프로그램을 저장하는 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
본 발명의 실시 예에 따르면, 최대 열 무게 선호 디코더를 구성하는 입력 개수가 줄어들게 하여, 최대 열 무게 선호 디코더의 면적 또한 기존 디코더와 대비하여 감소시킬 수 있다.
H-행렬의 최대 열 무게를 가지는 열의 개수를 최대로 하는 본 발명의 실시 예에 따른 최대 열 무게 선호 오류 정정 코드를 통하여 최대 열 무게 선호 디코더의 면적 감소 효과를 더욱 극대화 시킬 수 있다.
본 발명의 실시 예에 따른 최대 열 무게 선호 오류 정정 코드는 모든 행 무게를 비슷하게 맞춰 주어서 체크 비트 생성기에서 가장 긴 동작 시간을 가지는 경로의 동작 시간을 해밍 코드와 비교하여 감소시킬 수 있다. 따라서 전체 오류 정정 코드 수행 회로의 동작 시간을 감소시킬 수 있다.
본 발명의 일 실시 예에 따른 최대 열 무게 선호 디코더와 최대 열 무게 선호 단일 오류 정정 코드는 DRAM이나 SRAM과 같이 한 번에 읽기/쓰기 동작을 하는 데이트 비트의 개수가 적은 메모리에 적은 면적 부담과 적은 동작 시간의 오류 정정 코드 수행 회로가 구현될 수 있게 한다.
도 1은 본 발명의 일 실시 예에 따른 메모리 장치를 도시한다.
도 2는 본 발명의 일 실시 예에 따른 ECC 모듈을 도시한다.
도 3은 ECC 모듈의 예시적인 디코더를 도시한다.
도 4는 종래 기술에 따른 ECC 모듈의 디코더를 도시한다.
도 5는 본 발명의 일 실시 예에 따른 ECC 모듈의 디코더를 도시한다.
도 6은 본 발명의 일 실시 예에 따른 최대 열 무게 선호 디코더를 이용한 최대 열 무게 선호 단일 오류 정정 코드와 기존 해밍 코드를 사용한 오류 정정 코드 수행 회로에서 사용된 트랜지스터의 개수를 비교한 것을 도시한다.
본 발명의 다른 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술 되는 실시 예를 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예는 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
만일 정의되지 않더라도, 여기서 사용되는 모든 용어들(기술 혹은 과학 용어들을 포함)은 이 발명이 속한 종래 기술에서 보편적 기술에 의해 일반적으로 수용되는 것과 동일한 의미를 가진다. 일반적인 사전들에 의해 정의된 용어들은 관련된 기술 그리고/혹은 본 출원의 본문에 의미하는 것과 동일한 의미를 갖는 것으로 해석될 수 있고, 그리고 여기서 명확하게 정의된 표현이 아니더라도 개념화되거나 혹은 과도하게 형식적으로 해석되지 않을 것이다.
본 명세서에서 사용된 용어는 실시 예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 '포함한다' 및/또는 이 동사의 다양한 활용형들 예를 들어, '포함', '포함하는', '포함하고', '포함하며' 등은 언급된 조성, 성분, 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 조성, 성분, 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
본 명세서에서 '및/또는' 이라는 용어는 나열된 구성들 각각 또는 이들의 다양한 조합을 가리킨다.
한편, 본 명세서 전체에서 사용되는 '~부', '~기', '~블록', '~모듈', '~ 유닛' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미할 수 있다. 예를 들어 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미할 수 있다. 그렇지만 '~부', '~기', '~블록', '~모듈', '~유닛' 등이 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부', '~기', '~블록', '~모듈', '~유닛' 은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부', '~기', '~블록', '~모듈', '~유닛' 등은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들(procedures), 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '~부', '~기', '~블록', '~모듈', '~유닛' 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부', '~기', '~블록', '~모듈', '~유닛'으로 결합 되거나 추가적인 구성요소들과 '~부', '~기', '~블록', '~모듈', '~유닛'으로 더 분리될 수 있다.
도 1은 본 발명의 일 실시 예에 따른 메모리 장치이다. 메모리 장치는 오류 정정 코드(ECC) 모듈(100)과 메모리(200)를 포함한다.
ECC 모듈(100)은 호스트(Host)로부터 제공되는 사용자 데이터를 본 발명의 일 실시 예에 따른 에러 정정 부호 방식으로 인코딩한다. ECC 모듈(100)은 패리티 체크 행렬(Parity Check Matrix)을 사용하여 메시지가 포함된 사용자 데이터를 부호어 벡터로 변환하게 될 것이다. 일반적으로 부호어에는 데이터 비트(Data bits)와 체크 비트(Check bits)가 혼합되어 있거나, 순차적으로 연결된 상태로 메모리(200)에 저장된다. 본 발명의 일 실시 예에서는 ECC 모듈(100)은 부호어의 데이터 비트와 체크 비트를 분리하여 이격된 메모리(210, 220)에 각각 저장한다. ECC 모듈(100)은 부호어의 데이터 비트와 체크 비트 각각에 대한 패리티 비트를 추가할 수 있다. 여기서 데이터 비트와 체크 비트 각각에 대한 패리티 방식은 홀수 패리티나 짝수 패리티를 적용할 수 있을 것이다.
메모리(200)는 예를 들어 SRAM, DRAM 등과 같이 한 번에 읽기/쓰기 되는 데이터 비트가 적은 메모리일 수 있다. 또한 메모리(200)는 MRAM, ReRAM, PRAM 등과 같은 차세대 메모리 일 수 있다.
도 2를 참조하여, ECC 모듈(100)에 대해서 구체적으로 설명을 한다. 도 2를 참조하면, ECC 모듈(100)은 체크 비트 생성기(110), 신드롬 생성기(120), 디코더 유닛(130), 수정기(140)를 포함한다.
메모리의 쓰기 동작 동안 데이터 비트들은 데이터 비트 메모리(210)에 저장된다. 한편, 체크 비트 생성기(110)는 데이터 비트들로부터 쓰기 체크 비트를 생성하여 체크 비트 메모리(220)에 저장한다. 이때 체크 비트 생성기(110)는 H-행렬에 의해서 설계된다. 쓰기 체크 비트는 입력 데이터 비트들의 특징을 함축해서 가지게 된다.
메모리의 읽기 동작 동안에는 ECC 모듈(100)은 메모리(210, 220)에 저장되어 있던 데이터 비트와 쓰기 체크 비트를 수신한다. 체크 비트 생성기(110)는 데이터 비트 메모리(210)에서 데이터 비트를 독출하고 이로부터 읽기 체크 비트를 생성한다. 신드롬 생성기(120)는 이렇게 생성된 읽기 체크 비트와 쓰기 동작 동안에 만들어져서 체크 비트 메모리(220)에 저장되어 있던 쓰기 체크 비트를 사용하여 신드롬을 생성한다. 저장되어 있던 데이터 비트와 쓰기 체크 비트에 오류가 없다면, 신드롬의 값은 전부 "0"이 된다. 반면, 저장되어 있던 데이터 비트와 쓰기 체크 비트에 오류가 있다면, 신드롬은 해당 비트 위치의 H-행렬의 열 값과 동일한 값이 된다. 디코더 유닛(130)은 이러한 신드롬을 사용하여 정확한 오류 비트 위치를 찾아낸다. 수정기(140)는 디코더 유닛(130)을 통해서 알아낸 오류 비트의 위치의 데이터 비트와 쓰기 체크 비트 중의 데이터를 반전시켜주어서 오류를 수정한다.
구체적인 예를 통해서 단일 오류 정정 방법을 설명한다. 여기서 (12, 8) 코드를 예를 들어 설명을 하며, 데이터 비트는 0011 1001 8비트이고 생성되는 부호어는 다음과 같은 순서의 데이터 비트와 체크 비트로 구성된다고 가정한다.
Figure pat00001
데이터 비트와 체크 비트가 서로 섞이어 부호어를 형성하는 것을 예로 들었지만, 체크 비트가 먼저 앞에 오고 데이터 비트가 뒤에 오거나 또는 그 반대로 데이터 비트가 앞에 오고 체크 비크가 뒤에 올 수도 있고, 무작위로 데이터 비트와 체크 비트가 섞일 수도 있다.
한편, (12, 8) 코드를 위한 H-행렬은 아래와 같다.
Figure pat00002

체크 비트 생성기는 데이터 비트를 사용하여 체크 비트를 형성하는데 예를 들어 다음과 같은 연산으로 4개의 체크 비트 C1, C2, C3 및 C4를 생성한다.
Figure pat00003
따라서, ECC 모듈(100)의 체크 비트 생성기(110)에 의해서 생성되는 쓰기 체크 비트는,
Figure pat00004
이다.
따라서 생성되는 부호어는 000101101001 이고(굵게 표시된 부분이 체크 비트임), 데이터 비트 '0011 1001'와 쓰기 체크 비트 '0010'는 메모리(210, 2220)에 각각 저장된다.
다음으로 ECC 모듈(100)의 오류 정정에 대해서 살펴본다. 데이터 비트 0011 1001 에서 5번째 데이터 비트 '1'에 오류가 발생한 경우를 설명한다. 즉, 데이터 비트 메모리(210)에서 읽은 데이터 비트는 5번째 비트에 오류가 발생하여 '0011 0001'이다.
ECC 모듈(100)의 체크 비트 생성기(110)는 독출한 데이터 비트 '0011 0001'로부터 상술한 체크 비트 생성 연산을 이용하여 다음과 같이 읽기 체크 비트 C1', C2', C3', C4'를 생성한다.
Figure pat00005
여기서 네모 박스로 표시된 부분은 오류가 발생한 5번째 데이터 비트이다.
5번째 데이터 비트에 오류가 발생하여 쓰기 체크 비트 '0010'와 읽기 체크 비트 '1011'는 서로 틀리게 된다.
ECC 모듈(100)의 신드롬 생성기는 쓰기 체크 비트와 읽기 체크 비트를 2 모듈로 연산하여 신드롬을 생성한다. 즉 신드롬은
Figure pat00006
이다. 오류가 발생하지 않았다면 신드롬은 '0000'이 되지만, 5번째 데이터 비트에서 오류가 발생하여 신드롬이 '1001'이 되었다.
신드롬이 '1001'이므로, 이와 일치하는 전술한 H-행렬의 열의 5번째 열이다. 따라서 5번째 데이터 비트에서 오류가 발생했다는 것을 알 수 있다.
ECC 모듈(100)의 디코더 유닛(130)은 신드롬을 사용하여 디코더 유닛(130)은 오류 비트 위치를 찾고 오류가 발생한 위치의 비트를 반전시켜 오류를 수정한다. 디코더 유닛(130)은 H-행렬의 열의 개수 만큼의 디코더를 포함하며, 각 디코더는 대응하는 H-행렬의 열의 각 원소를 입력으로 받는 낸드 게이트일 수 있다.
다시 위 예로 돌아가서, (12, 8) 코드의 H-행렬은 4행 12열로 구성되므로, 4개의 입력을 갖는 12개의 낸드 게이트로 디코더 유닛이 구성된다. 예시적으로 도 3은 네 번째 및 다섯 번째 열에 대응하는 디코더를 도시한다. 디코더는 H-행렬의 대응하는 열의 원소를 입력으로 받되 '0'인 경우 반전한 값으로 입력받는다. 오류가 발생하기 않았다면 신드롬 비트 (S01, S02, S03, S04)가 모두 '0'이므로 각 디코더는 '0'을 출력한다. 하지만, 상술한 예에서 5번째 데이터 비트에 오류가 발생하여, 신드롬이 '1001'이 된다. 따라서 다섯 번째 열(다섯 번째 데이터 비트)에 대응하는 디코더(도 3의 우측 디코더) 만이 '0'을 출력하고 나머지 디코더들은 '1'을 출력한다(도 3의 좌측 디코더 참조). 따라서, 다섯 번째 데이터 비트에 오류가 발생한 것을 검출할 수 있다.
이러한 ECC 모듈 중 중 가장 큰 비중을 차지하고, H-행렬에 따라 설계가 가장 많이 달라지는 부분이 체크 비트 생성기와 디코더 부분인 반면에 신드롬 생성기와 수정기 부분은 코드에 관계없이 동일하게 설계된다.
이에 본 발명의 일 실시 예에서는 체크 비트 생성기의 동작 시간을 감소시킬 수 있고 디코더 유닛의 면적을 크게 감소시킬 수 있는 ECC 모듈을 제공한다.
본 발명의 실시 예들은 메모리의 오류 정정에 관한 것이다. (n, k) 코드(code)는 n개 비트로 구성된 부호어들(code words)을 사용하는 오류 정정 부호이며, 하나의 부호어는 k개의 데이터 비트와 n-k(=m)개의 체크 비트로 구성된다. 이때, n은 k+m 이 된다. 그리고 일반적인 메모리에서 데이터 비트의 개수 k 는 2m-1이 된다. (n, k) 단일 오류 정정 코드는 (m × n) H-행렬로 표현되고, 이 (m × n) H-행렬은 m개의 행들과 n개의 열들로 구성된다. 이때 n개의 열은 k개의 데이터 비트 열과 m개의 체크 비트 열로 구성된다. 한편 신드롬은 m개의 비트로 구성되고, m개 비트로 구성된 신드롬은 2m개의 벡터를 표현할 수 있다.
그런데, 일반적인 메모리에서 사용되는 H-행렬에서 디코딩되어야 하는 열의 개수는 n개, 즉 2m-1+m 이 된다. 따라서, 디코더는 H-행렬의 열중에서 최대 열 무게를 가지는 열을 디코딩하는 NAND 게이트의 입력의 개수를 m보다 작은 값을 가지게 할 수 있다. 이는 디코더가 디코딩해야 하는 열의 개수가 2m 이 아니라 그보다 작은 그에 따라 2m-1+m 이므로 가능하다.
이에 대해서 좀더 설명을 한다.
아래는 예시적인 (21, 16) 코드의 H-행렬이다.
Figure pat00007
이 같은 경우 통상적으로 디코더는 체크 비트의 개수(신드롬 비트의 개수)인 5개의 입력을 필요로 하고 단일 오류 정정을 위해서는 열의 개수인 21개의 디코더가 필요하다. 도 4에는 그 중에서 8번째 및 11번째 열에 대응하는 디코더를 도시한다.
그런데, 단일 오류 정정을 위해서는 필요한 디코더 수는 25=32 가 아니라 열의 개수인 21개면 충분하다. 따라서, 모든 디코더가 입력이 5개일 필요 없이 최대 열 무게를 가지는 열을 디코딩하는 디코더의 입력의 개수는 그 열의 열 무게와 같아질 수 있다. 도 5에는 최대 열 무게를 가지지 않은 8번째 열에 대응하는 기존 디코더와 동일한 디코더와 최대 열 무게를 가지는 열인 11번째 열에 대응하는 본 발명의 새로운 디코더를 도시한다.
따라서 위 (21, 16) 코드를 위한 디코딩 유닛이, 종래에는 21개의 5입력 디코더로 구성된 반면에, 본 발명의 실시 예에서는 최대 열 무게 선호 디코더는 최대 열 무게가 아닌 열을 디코딩하는 20개의 5입력 디코더와 최대 열 무게를 가지는 열을 디코딩할 1개의 4입력 디코더로 구성된다. 한편, 앞서 예로든 (12, 8) 코드의 경우 4열과 7열이 열 무게 3으로서 최대 열 무게를 가지는바, 종래 디코더 유닛은 12개의 4입력 디코더로 구성되나, 본 발명의 일 실시 예에 따르면 10개의 4입력 디코더와 2개의 3입력 디코더로 구성된다.
최대 열 무게 선호 디코더는 H-행렬에 최대 열 무게를 가지는 열의 개수가 많아질수록 디코더의 면적을 더 많이 감소시킬 수 있다. 그래서 본 발명의 실시 예에서는 디코더의 면적을 감소를 극대화할 수 있는 H-행렬 생성 방법을 제공한다.
본 발명자들은 H-행렬을 생성함에 있어서, 가능한 최대 열 무게를 가지는 열의 개수를 최대한으로 하고, 최대 열 무게를 가지는 열을 디코딩하기 위한 디코더의 입력 개수를 최대 열 무게 열의 열 무게 개수와 동일하게 한다.
본 명세서에서 종래의 H-행렬과 비교해서 본 발명의 개념에 따른 가능한 많은 개수의 최대 열 무게를 갖는 H-행렬을 '최대 열 무게 선호 H-행렬'(maximum-column-weight prioritizied H-matrix) 이라 언급할 수 있다. 마찬가지로 최대 열 무게 선호 H-행렬을 기초로 동작하는 디코더를 '최대 열 무게 선호 디코더'로 언급할 수 있다.
최대 열 무게 선호 H-행렬은 다음과 같은 조건을 만족한다.
1) 어떤 열도 0 벡터가 아니다.
2) 각각의 열은 다른 열과 서로 다른 벡터를 가진다.
3) 최대 열 무게를 가지는 열의 개수를 최대로 한다.
4) 각각의 행 무게는 행렬의 전체 무게를 행의 개수로 나눈 수에 가까운 정수로 한다.
1번 및 2번 제약은 통상적인 해밍 코드와 동일한 제약사항이고, 3번 및 4번 제약 사항은 본 발명자들이 처음 제시하는 제약사항이다.
최대 열 무게 선호 H-행렬 생성 조건 1은 오류가 존재하지 않을 경우 신드롬이 0 벡터가 될 수 있게 한다.
최대 열 무게 선호 H-행렬 생성 조건 2는 오류가 발생한 비트의 위치의 열 벡터와 신드롬의 벡터값이 같게 하여준다.
최대 열 무게 선호 H-행렬 생성 조건 3에 의해서 최대 열 무게 선호 디코더를 사용할 경우 디코더의 면적 감소를 극대화할 수 있다.
최대 열 무게 선호 H-행렬 생성 조건 4는 모든 행의 무게를 비슷하게 만들어 줌으로써, 체크 비트 생성기의 동작 시간을 감소시킨다.
본 발명의 개념에 따른 실시 예에서 최대 열 무게 선호 H-행렬을 위한 위 조건 1 내지 4 중 조건 4는 선택사항이다.
이하에서 본 발명의 개념의 일 실시 예에 따른 최대 열 무게 선호 H-행렬을 생성하는 방법에 대해서 설명을 한다.
위 최대 열 무게 선호 H-행렬 생성 조건 1 및 2는 통상의 기술자에게 잘 알려져 있으므로 설명을 생략한다.
먼저 최대 열 무게 선호 H-행렬 생성 조건 3에 따른 최대 열 무게를 구하는 방법에 대해서 설명을 한다.
(2m-1+ m, 2m-1) 최대 열 무게 선호 단일 오류 정정 코드를 생성하기 위해서는 우선 최대 열 무게 값을 구해야 한다. 최대 열 무게는 아래 <수학식 1>로 구해진다.
Figure pat00008
여기서 MCW은 최대 열 무게(Maximum column weight)를 의미하고, mCI은 m개의 H-행렬의 행에서 I(I는 2, 3, ... , MCW)이라는 열 무게를 가질 수 있는 열의 개수를 의미한다.
다음으로, 최대 열 무게 선호 H-행렬 생성 조건 3에 따른 최대 열 무게의 개수를 최대로 하는 방법에 대해서 설명을 한다.
H-행렬의 최대 열 무게가 결정되면, H-행렬에서 최대 열 무게의 개수가 허용하는 한 최대가 되게 한다. 이를 위해 본 발명의 개념에 따른 일 실시 예에서는, 예를 들어, 열 무게가 2, 3, ..., MCW-2, MCW, MCW-1인 순서로 H-행렬을 채운다. 즉, 최대 열 무게를 갖는 열이 맨 나중에 H-행렬에 채워지지 않고, 적어도 마지막에서 두 번째에 채워진다. 최대 열 무게를 갖는 열이 채워진 후에 행렬의 남는 열은(채워지지 않은 열은) 최대 열 무게보다 작은 열들, 예를 들어 MCW-1로 채워진다. 이때 H-행렬 생성 조건 4를 만족하도록, H-행렬의 각 행들의 행 무게가 비슷해질 수 있게 열 무게가 MCW-1인 열들 중에서 열들이 선택될 수 있다.
좀더 구체적으로 부호어 비트가 71개이고 데이터 비트가 64개이고 체크 비트가 7개인 (71, 64) 최대 열 무게 선호 코드를 위한 H-행렬의 생성을 예로 들어 설명한다.
먼저 위 <수학식 1>에 따라 최대 열 무게를 계산하면, 27-1 (=64) 7C2 + 7C3 + 7C4 = 21+35+35 이므로, (71, 64) 최대 열 무게 선호 단일 오류 정정 코드의 H-행렬의 최대 열 무게는 4이다.
따라서, H-행렬은 열 무게가 2인 열들과 열 무게가 MCW-2인 열 무게 4인 열들로 우선 채워지게 된다. 열 무게가 2인 열은 7C2인 21개이고 열 무게가 4인 열은 7C4인 35개이다. H-행렬의 남은 8개의 데이터 비트 열들은 열 무게가 MCE-1인 열 무게가 3인 열들로 채워진다. 이때, 열 무게가 3인 35개의 열들 중에서, 위 제약 조건 4를 만족하도록 즉, 각각의 행 무게가 행렬의 전체 무게를 행의 개수로 나눈 값에 가까운 정수 30 또는 31가 되게 하는 8개의 열들이 선택될 수 있다.
이에 따라 생성되는 (71, 64) 최대 열 무게 선호 단일 오류 정정 코드의 H-행렬의 한 가지 예는 아래와 같다.
Figure pat00009

상술한 최대 열 무게 선호 H-행렬 생성은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 양자의 조합으로서 구현될 수도 있다. 이러한 기능성이 하드웨어로서 구현되는지 또는 소프트웨어로서 구현되는지 여부는 전체 시스템에 부과된 설계 제약 및 특정 애플리케이션에 의존한다. 통상의 기술자는 특정 애플리케이션 각각에 대해 상기 설명된 기능성을 다양한 방식으로 구현할 수도 있지만, 이러한 구현 결정이 본 발명의 범위로부터의 일탈을 야기하는 것으로 해석되어서는 안 된다.
최대 열 무게 선호 H-행렬 생성을 위한 소프트웨어는 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈식 디스크, CD-ROM, 또는 당업계에 공지된 임의의 다른 형태의 저장 매체에 상주할 수도 있다. 일 예시적 저장 매체는 프로세서가 저장 매체로부터 정보를 판독하고 그 저장 매체에 정보를 기입할 수 있도록 프로세서에 연결될 수 있다.
이하에서는 본 발명의 일 실시 예에 따른 최대 열 무게 선호 단일 오류 정정 코드와 기존 해밍 코드를 비교한다. 비교를 위해서 제안하는 단일 오류 정코 코드와 해밍 코드가 64개, 128개와 256개의 데이터 비트를 사용했을 때로 가정하였다. 또 간단하게 면적을 비교하기 위하여 체크 비트 생성기, 신드롬 생성기 및 수정기는 2입력 exclusive-or (XOR2) 게이트만을 이용하여 구현하였고, 디코더는 인버터와 2입력 또는 3입력 NAND 게이트와 NOR게이트로 구현하였다. 그리고 XOR2 게이트 한 단을 줄여주기 위하여 체크 비트 생성기와 신드롬 게이트를 하나의 XOR 게이트 트리로 구현하였다.
아래 표 1은 기존의 해밍 코드와 제안하는 최대 열 무게 선호 단일 오류 정정 코드의 H-행렬 내 모든 무게, 최대 행 무게인 MRW (maximum row weight)와 최대 열 무게 (MCW)을 가지는 열의 개수를 나타낸다.
데이터 비트 코드 종류 H-행렬 내 전체 무게 최대 행 무게 최대 열 무게 개수
64 비트 기존 해밍 코드 212 36 1
본 발명 코드 213 31 35
128 비트
기존 해밍 코드 470 68 1
본 발명 코드 434 55 70
256 비트 기존 해밍 코드 1049 133 1
본 발명 코드 1003 112 126
위 표 1을 보면 본 발명의 코드가 기존 해밍 코드에 비해서 행렬 내 전체무게가 상대적으로 작은 것을 확인할 수 있다. H-행렬 내 모든 무게가 적다는 것은 오류 정정 코드 수행 회로의 면적 부담이 감소하는 것을 의미한다.
또, 본 발명의 코드는 종래 해밍 코드에 비해서 최대 열 무게의 개수가 월등히 많다. 최대 열 무게를 가지는 열의 개수를 크게 증가시킴으로써, 최대 열 무게 선호 디코더의 면적 감소 효과를 극대화할 수 있다.
또한, 오류 정정 코드 수행 회로 중 가장 오랜 동작 시간이 걸리는 하나로 구현된 체크 비트 생성기와 신드롬 게이트의 XOR2 게이트 트리의 단수 (L)은 다음과 같은 <수학식 2>로 구할 수 있다.
Figure pat00010
여기서 [X] 함수는 X보다 작지않은 최소의 정수를 나타낸다.
이에 따라 해밍 코드와 대비하여 제안하는 최대 열 무게 단일 오류 정정 코드의 XOR2 게이트 트리의 단수를 모든 데이트 비트에서 한 단을 감소시킬 수 있는 것을 확인하였다.
도 6은 본 발명의 일 실시 예에 따른 최대 열 무게 선호 디코더를 이용한 최대 열 무게 선호 단일 오류 정정 코드와 기존 해밍 코드를 사용한 오류 정정 코드 수행 회로에서 사용된 트랜지스터의 개수를 비교한 것을 도시한다.
하나로 구현된 체크 비트 생성기와 신드롬 생성기에서 해밍 코드와 대비하여 본 발명의 일 실시 예에 따른 최대 열 무게 선호 단일 오류 정정 코드는 64개, 128개와 256개의 데이터 비트가 한 부호어에서 사용되었을 경우 각각 0.5%의 트랜지스터 개수 증가, 7.8%와 4.5%의 트랜지스터 개수 감소를 가져왔다.
또한 디코더에서 최대 열 무게 선호 단일 오류 정정 코드는 64개, 128개와 256개의 데이터 비트가 한 부호어에서 사용되었을 경우 각각 28.3%, 32.7%와 26.7%의 트랜지스터 개수 감소를 가져왔다.
따라서 전체 오류 정정 코드 수행 회로에서는 최대 열 무게 선호 단일 오류 정정 코드는 64개, 128개와 256개의 데이터 비트가 한 부호어에서 사용되었을 경우 각각 10.6%, 16.1%와 11.8%의 트랜지스터 개수 감소를 가져왔다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시 예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시 예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
100: ECC 모듈
200: 메모리
110: 체크 비트 생성기
120: 신드롬 생성기
130: 디코딩 유닛
140: 수정기
210: 데이터 비트 메모리
220: 체크 비트 메모리

Claims (12)

  1. (n, k) 오류 정정 코드를 위한 디코더 유닛에 있어서,
    상기 디코더 유닛은 서로 다른 개수의 입력을 받는 복수 개의 디코더를 포함하고, 상기 복수 개의 디코더 중 적어도 하나는 H-행렬의 최대 열 무게를 갖는 열의 열 무게와 동일한 입력을 갖는 것을 특징으로 하는 디코더 유닛.
  2. 제1 항에 있어서,
    상기 디코더 유닛은 (n-k)개의 입력을 갖는 적어도 하나의 제1 디코더 및 (n-k)보다 작은 입력을 갖는 적어도 하나의 제2 디코더를 포함하는 디코더 유닛.
  3. 제2 항에 있어서,
    상기 제2 디코더의 입력 개수는 상기 최대 열 무게와 동일한 디코더 유닛.
  4. 수신한 메세지 데이터(k 비트)로부터 쓰기 체크 비트를 생성하고 수신되어 저장된 메세지 데이터로부터 읽기 체크 비트(m 비트)를 생성하는 체크 비트 생성기;
    읽기 체크 비트 및 쓰기 체크 비트로부터 신드롬을 계산하는 신드롬 생성기; 그리고,
    신드롬 생성기의 출력을 입력으로 하여 오류를 검출하는 디코더 유닛을 포함하며,
    상기 디코더 유닛은 서로 다른 개수의 입력을 받는 복수 개의 디코더를 포함하고, 상기 복수 개의 디코더 중 적어도 하나는 H-행렬의 최대 열 무게를 갖는 열의 열 무게와 동일한 입력을 갖는 오류 정정 부호 모듈.
  5. 제4 항에 있어서,
    (m)개의 입력을 갖는 적어도 하나의 제1 디코더 및 (m)보다 작은 입력을 갖는 적어도 하나의 제2 디코더를 포함하는 오류 정정 부호 모듈.
  6. 제5 항에 있어서,
    상기 제2 디코더의 입력 개수는 상기 최대 열 무게와 동일한 오류 정정 부호 모듈.
  7. (n, k) 오류 정정 코드를 위한 디코더 유닛에 있어서,
    상기 디코더 유닛은 H-행렬의 열의 개수(n)에 대응하는 n개의 디코더를 포함하고, H-행렬의 최대 열 무게를 갖는 열에 대응하는 디코더는 상기 최대 열 무게와 동일한 입력을 갖는 것을 특징으로 하는 디코더 유닛.
  8. 오류 정정 코드를 위한 H-행렬 생성 방법으로,
    모두 0인 열이 없는 제1 조건;
    각각의 열은 다른 열과 모두 구분되는 제2 조건; 그리고,
    최대 열 무게를 가지는 열의 개수를 최대로 하는 제3 조건;
    을 만족하는 H-행렬 생성 방법.
  9. 제8 항에 있어서,
    각각의 행 무게는 행렬의 전체 무게를 행의 개수로 나눈 수에 가까운 정수로 하는 제4 조건;을 더 만족하는 H-행렬 생성 방법.
  10. 제8 항에 있어서,
    열 무게가 2, 3, MCW-2, MCW, MCW-1인 순서로 열을 채우는 H-행렬 생성 방법.
  11. 제8 항 내지 제10 항의 방법을 수행하기 위한 프로그램을 저장하는 컴퓨터로 읽을 수 있는 기록 매체.
  12. 제8 항의 H-행렬 생성 방법을 사용하여 수신된 부호어의 오류를 검출 및 정정하는 오류 정정 부호 모듈.
KR1020120009201A 2012-01-30 2012-01-30 패리티 체크 행렬 생성 방법, 이를 이용한 오류 정정 방법 및 장치, 오류 정정 장치용 디코더 그리고 오류 정정 장치를 포함하는 메모리 및 전자장치 KR101304570B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120009201A KR101304570B1 (ko) 2012-01-30 2012-01-30 패리티 체크 행렬 생성 방법, 이를 이용한 오류 정정 방법 및 장치, 오류 정정 장치용 디코더 그리고 오류 정정 장치를 포함하는 메모리 및 전자장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120009201A KR101304570B1 (ko) 2012-01-30 2012-01-30 패리티 체크 행렬 생성 방법, 이를 이용한 오류 정정 방법 및 장치, 오류 정정 장치용 디코더 그리고 오류 정정 장치를 포함하는 메모리 및 전자장치

Publications (2)

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

Family

ID=49214494

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120009201A KR101304570B1 (ko) 2012-01-30 2012-01-30 패리티 체크 행렬 생성 방법, 이를 이용한 오류 정정 방법 및 장치, 오류 정정 장치용 디코더 그리고 오류 정정 장치를 포함하는 메모리 및 전자장치

Country Status (1)

Country Link
KR (1) KR101304570B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180022014A (ko) * 2016-08-23 2018-03-06 에스케이하이닉스 주식회사 반도체장치
CN111198779A (zh) * 2018-11-19 2020-05-26 三星电子株式会社 半导体存储器装置和存储器系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001092723A (ja) * 1999-09-21 2001-04-06 Hitachi Ltd Ecc制御回路及びそれを有するメモリシステム
KR100510503B1 (ko) * 2002-12-10 2005-08-26 삼성전자주식회사 하드웨어 효율을 극대화한 새로운 파이프라인 리드 솔로몬디코딩 방법
JP4819470B2 (ja) * 2005-10-11 2011-11-24 三星電子株式会社 復号装置および復号方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180022014A (ko) * 2016-08-23 2018-03-06 에스케이하이닉스 주식회사 반도체장치
CN111198779A (zh) * 2018-11-19 2020-05-26 三星电子株式会社 半导体存储器装置和存储器系统

Also Published As

Publication number Publication date
KR101304570B1 (ko) 2013-09-05

Similar Documents

Publication Publication Date Title
JP4036338B2 (ja) 誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置
US10439649B2 (en) Data dependency mitigation in decoder architecture for generalized product codes for flash storage
US20180167088A1 (en) Error-Correcting Code Method and System with Hybrid Block Product Codes
US9654147B2 (en) Concatenated error correction device
US9391641B2 (en) Syndrome tables for decoding turbo-product codes
US10484020B2 (en) System and method for parallel decoding of codewords sharing common data
US10090860B2 (en) Memory system using integrated parallel interleaved concatenation
US10498366B2 (en) Data dependency mitigation in parallel decoders for flash storage
US11632135B2 (en) Apparatuses and methods for interleaved BCH codes
US9548761B2 (en) Coding and decoding of error correcting codes
US10200066B2 (en) Code reconstruction scheme for multiple code rate TPC decoder
CN110941505A (zh) 产生错误校正电路的方法
US9584159B1 (en) Interleaved encoding
KR101304570B1 (ko) 패리티 체크 행렬 생성 방법, 이를 이용한 오류 정정 방법 및 장치, 오류 정정 장치용 디코더 그리고 오류 정정 장치를 포함하는 메모리 및 전자장치
CN110113058B (zh) 编译码方法、装置、设备及计算机可读存储介质
Badack et al. Modified DEC BCH codes for parallel correction of 3-bit errors comprising a pair of adjacent errors
KR101355988B1 (ko) 연접 비씨에이치 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치
KR102007163B1 (ko) 인코더, 디코더 및 이를 포함하는 반도체 장치
US10404282B2 (en) Apparatuses and methods for integrated interleaved Reed-Solomon encoding and decoding
US9391647B2 (en) Decoder and decoding method thereof for min-sum algorithm low density parity-check code
Sim et al. Design of Two Interleaved Error Detection and Corrections Using Hsiao Code and CRC
US20140344652A1 (en) Method for generating a maximized linear correcting code, method and device for decoding such a code
KR101355986B1 (ko) 연접 비씨에이치 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치
KR102633829B1 (ko) 버스트 에러 정정 코드 생성 방법, 컴퓨터 판독 가능한 기록 매체, 컴퓨터 프로그램 및 장치
KR20120064377A (ko) 비씨에이치 디코더, 이를 포함하는 메모리 시스템 및 비씨에이치 디코딩 방법

Legal Events

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

Payment date: 20160830

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170821

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180827

Year of fee payment: 6