KR20170035795A - 오류 정정 코드를 디코딩하기 위한 방법 및 이와 관련된 디코딩 회로 - Google Patents

오류 정정 코드를 디코딩하기 위한 방법 및 이와 관련된 디코딩 회로 Download PDF

Info

Publication number
KR20170035795A
KR20170035795A KR1020160116682A KR20160116682A KR20170035795A KR 20170035795 A KR20170035795 A KR 20170035795A KR 1020160116682 A KR1020160116682 A KR 1020160116682A KR 20160116682 A KR20160116682 A KR 20160116682A KR 20170035795 A KR20170035795 A KR 20170035795A
Authority
KR
South Korea
Prior art keywords
error
result
correction code
decoding
error correction
Prior art date
Application number
KR1020160116682A
Other languages
English (en)
Other versions
KR101819152B1 (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 실리콘 모션 인코포레이티드
Publication of KR20170035795A publication Critical patent/KR20170035795A/ko
Application granted granted Critical
Publication of KR101819152B1 publication Critical patent/KR101819152B1/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/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
    • 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/1545Determination of error locations, e.g. Chien search or other methods or arrangements for the determination of the roots of the error locator polynomial
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block 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/1525Determination and particular use of error location polynomials
    • 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/159Remainder calculation, e.g. for encoding and syndrome calculation
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3738Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with judging correct decoding
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes

Abstract

본 발명은 에러 정정 코드 디코딩 방법 및 그에 관한 디코딩 회로를 제공하며, 상기 방법은, 에러 정정 코드의 일련의 오류 신드롬을 계산하는 단계
Figure pat00190
상기 에러 정정 코드는 t
Figure pat00191
에러 정정 코드이고 t개의 에러를 정정하는 능력을 가지며, 상기 한 세트의 에러 신드롬의 개수 s는 t보다 작음 - ; 대략적으로 추정된 에러 위치자 다항식을 세우기 위해, 상기 일련의 에러 신드롬 중 적어도 한 부분의 에러 신드롬에 따라, 상기 에러 정정 코드의 에러 위치자 다항식의 복수의 계수 중에서 일련의 계수를 순차적으로 결정하는 단계; 상기 대략적으로 추정된 에러 위치자 다항식의 복수 개의 근을 결정하기 위해 치엔(Chien) 검색을 수행하는 단계; 상기 에러 정정 코드의 디코딩 결과로서 상기 에러 정정 코드의 정정 결과를 선택적으로 이용하도록 적어도 한 번의 확인 작업을 수행하는 단계를 포함한다.

Description

오류 정정 코드를 디코딩하기 위한 방법 및 그에 관한 디코딩 회로{METHOD AND ASSOCIATED DECODING CIRCUIT FOR DECODING AN ERROR CORRECTION CODE}
본 발명은 오류 정정 처리의 제어에 관한 것으로서, 보다 상세하게는, 오류 정정 코드를 디코딩하기 위한 방법 및 그에 관한 디코딩 회로에 관한 것이다.
오류 정정 코드는 데이터 오류를 정정하는 데에 이용될 수 있다. 종래의 통신 시스템에서 데이터는 일반적으로 송신 장치에 의해 송신되기 전에 오류 정정 코드로서 인코딩되었다. 통신 시스템 내의 수신 장치는 복구된 임의의 데이터 오류를 정정하기 위해 오류 정정 코드를 수신하고 디코딩할 수 있다. 다른 일례로, 종래의 데이터 저장 시스템이 저장 매체에 데이터를 저장하기 전에, 데이터는 일반적으로 오류 정정 코드로서 인코딩되며, 이 때 저장 매체에 저장된 데이터가 부분적으로 손실되면, 데이터 저장 시스템은 오류 정정 코드를 디코딩하여 원래 데이터를 복구한다. 오류 정정 코드의 예시들은 Bose, Ray-Chaudhuri, Hocquenghem(BCH) 및 Reed-Solomon(RS) 코드를 포함할 수 있다(그러나 이에 제한되지 않는다). BCH 코드는 주로 플래시 메모리에서의 오류 정정에 적용되고, RS 코드는 주로 광 저장 매체에서의 오류 정정에 적용된다.
종래의 데이터 저장 시스템이 저장 매체로부터 데이터를 판독할 때에는, 한 세트의 오류 정정 코드를 이용하여 데이터가 저장되기 때문에, 원래 데이터를 복구하기위해서 데이터 저장 시스템은 한 세트의 오류 정정 코드를 디코딩해야 한다. US 특허 제8,370, 727호는 오류 정정 방법을 제안하였다. 저장 장치(예를 들어, SD/MMC, CF, MS, XD 규격(specification)을 따르는 메모리 카드)의 용량이 커졌기 때문에, 단말 사용자는 큰 사이즈의 데이터에 액세스하기 위해 그와 같은 저장 장치를 이용할 수 있다. 그에 따라 사용자 경험을 향상시키기 위해, 휴대용 저장 장치 등 다양한 유형의 저장 장치를 위한 오류 정정 효율성을 높일 필요가 있다.
본 발명의 목적은 오류 정정의 효율성을 향상시킬 수 있는 오류 정정 코드를 디코딩하는 방법 및 그에 관한 디코딩 회로를 제공하는 것이다.
본 발명의 다른 목적은 오류 정정을 수행하는 메모리 컨트롤러의 전력 소모를 줄일 수 있는 오류 정정 코드를 디코딩하기 위한 방법 및 그에 관한 장치를 제공하는 것이다.
본 발명의 적어도 하나의 바람직한 실시예는 오류 정정 코드를 디코딩하는 방법을 제공한다. 이 방법은 상기 오류 정정 코드의 한 세트의 오류 신드롬(error syndromes)을 산출하는 단계; 개산된(roughly-estimated) 오류 위치자 다항식(error locator polynomial)을 만들기 위해, 상기 한 세트의 오류 신드롬 내의 오류 신드롬 중 적어도 일부에 따라 상기 오류 정정 코드의 오류 위치자 다항식의 복수의 계수 내의 한 세트의 계수를 연속적으로 결정하는 단계; 상기 개산된 오류 위치자 다항식의 복수의 근을 결정하기 위해 치엔(Chien) 탐색을 수행하는 단계; 상기 개산된 오류 위치자 다항식에 따라 상기 오류 정정 코드를 정정하여 상기 오류 정정 코드의 정정 결과를 생성하는 단계; 및
상기 오류 정정 코드의 디코딩 결과로서 상기 정정 결과를 선택적으로 이용하기 위해 적어도 한 번의 검사 작업을 수행하는 단계를 포함하고, 상기 오류 정정 코드는 t-오류 정정 코드로서 t개의 오류를 정정하는 성능을 가지고, 상기 한 세트의 오류 신드롬의 개수 s는 t보다 작으며, 상기 복수의 계수의 개수는 t와 같고, 상기 한 세트의 계수의 개수는 s와 같다.
상기 디코딩 회로에 더하여, 본 발명은 또한 오류 정정 코드를 디코딩하기 위한 디코딩 회로를 제공한다. 이 디코딩 회로는 오류 신드롬 산출 모듈, 오류 위치자 다항식 결정 모듈, 치엔 탐색 모듈, 검사 모듈 및 제어 모듈을 포함한다. 오류 신드롬 산출 모듈은 오류 정정 코드의 한 세트의 오류 신드롬을 산출하도록 구성되어 있으며, 상기 오류 정정 코드는 t-오류 정정 코드로서 t개의 오류를 정정하는 성능을 가지고, 상기 한 세트의 오류 신드롬의 개수 s는 t보다 작다. 오류 위치자 다항식 결정 모듈은, 개산된 오류 위치자 다항식을 만들기 위해, 상기 한 세트의 오류 신드롬 내의 오류 신드롬 중 적어도 일부를 참고하여 상기 오류 정정 코드의 오류 위치자 다항식의 복수의 계수 내의 한 세트의 계수를 연속적으로 결정하도록 구성되어 있으며, 상기 복수의 계수의 개수는 t와 같고, 상기 한 세트의 계수의 개수는 s와 같다. 치엔 탐색 모듈은 개산된 오류 위치자 다항식의 복수의 근을 결정하기 위해 치엔 탐색을 수행하도록 구성되어 있다. 오류 정정 모듈은 개산된 오류 위치자 다항식의 근을 참고하여 상기 오류 정정 코드의 정정 결과를 생성하기 위해 상기 오류 정정 코드를 정정하도록 구성되어 있다. 검사 모듈은 상기 오류 정정 코드의 정정 결과에 대해 적어도 한 번의 검사 작업을 수행하여 적어도 하나의 검사 결과를 생성하도록 구성되어 있다. 제어 모듈은 상기 디코딩 회로의 동작을 제어하도록 구성되어 있으며, 상기 제어 모듈의 제어 하에, 상기 디코딩 회로는 상기 검사 작업의 검사 결과를 참고하여 상기 오류 정정 코드의 디코딩 결과로서 상기 정정 결과를 선택적으로 이용한다.
상기 디코딩 회로에 더하여, 본 발명은 또한 상술한 디코딩 회로를 포함하는 메모리 컨트롤러를 제공한다.
상기 디코딩 회로에 더하여, 본 발명은 또한 상술한 디코딩 회로를 포함하는 저장 장치를 제공한다.
상기 디코딩 회로에 더하여, 본 발명은 또한 전자 장치의 컨트롤러를 제공하며, 컨트롤러는 상술한 디코딩 회로를 포함한다.
관련 기술의 데이터 처리 방법과 비교할 때, 상술한 본 발명의 방법 및 그에 관한 디코딩 회로는 오류 정정의 효율성을 크게 향상시킬 수 있다. 나아가, 상술한 본 발명의 방법 및 그에 관한 디코딩 회로는 오류 정정을 수행하는 메모리 컨트롤러의 전력 소모를 크게 줄일 수 있다.
본 발명의 다른 목적은 여러 도면 및 그림에서 설명되는 바람직한 실시예에 대한 이하의 상세한 설명을 읽은 후 통상의 기술자에게 확실히 명확해질 것이다.
도 1은 본 발명의 일 실시예에 따른 오류 정정 코드를 디코딩하기 위한 디코딩 회로를 보여주는 도면이다.
도 2는 본 발명의 일 실시예에 따른 오류 정정 코드를 디코딩하기 위한 방법을 보여주는 작업 흐름도이다.
도 3은 본 발명의 일 실시예에 따른, 도 2에 도시된 방법의 작업 흐름도이다.
도 4는 본 발명의 다른 일 실시예에 따른, 도 2에 도시된 방법의 작업 흐름도이다.
도 5는 본 발명의 일 실시예에 따른, 도 1에 도시된 디코딩 회로를 포함하는 저장 장치를 보여주는 도면이다.
도 6은 본 발명의 다른 일 실시예에 따른, 도 1에 도시된 디코딩 회로를 포함하는 저장 장치를 보여주는 도면이다.
도 1은 본 발명의 일 실시예에 따른 오류 정정 코드를 디코딩하기 위한 디코딩 회로를 보여주는 도면이다. 오류 정정 코드는 한 세트의 메시지 비트와 한 세트의 패리티 비트(parity bit)를 포함할 수 있으나, 이는 설명적 목적을 위한 것일 뿐이며 본 발명을 제한하는 것은 아니다.
도 1에 도시된 바와 같이, 디코딩 회로(100)는 제어 모듈(105), 오류 신드롬(syndrome) 산출 모듈(110), 오류 위치자(locator) 다항식 결정 모듈(120), 치엔(Chien) 탐색 모듈(130), 오류 정정 모듈(140), 및 검사 모듈(150)을 포함할 수 있으며, 여기서 오류 신드롬 산출 모듈(110)은, 오류 신드롬 산출 유닛 110-1, 110-2, …, 및 110-t와 같은 복수의 오류 신드롬 산출 유닛을 포함할 수 있다. 본 실시예에 따르면, 제어 모듈(150)은 디코딩 회로(100)의 작동을 제어하기 위해 배치된다. 구체적으로 제어 모듈(105)은, t개의 오류 신드롬 산출 유닛 110-1, 110-2, …, 및 110-t 중에서 이네이블되는(enabled) 오류 신드롬 산출 유닛 110-1, 110-2, …, 및 110-s의 개수 s를 선택적으로 제어할 수 있으며, 여기서 s, t는 모두 양의 정수이고, s는 t보다 작다. 나아가, 제어 모듈(105)은 오류 위치자 다항식 결정 모듈(120)이 대응되는 작동 흐름에서 오류 정정을 실행하는 횟수 s를 선택적으로 제어할 수 있으며, 여기서 오류 위치자 다항식 결정 모듈(120)은 대응되는 작동 흐름에서 횟수 s만큼 오류 정정 코드에 대해 루프(loop) 산출을 실행한다.
도 1에 도시된 방식에 기초하여, 제어 모듈(105)은, 오류 신드롬 산출 모듈(110) 내의 오류 신드롬 산출 유닛들 중 적어도 한 부분(예를 들어 부분 또는 전체)를 선택적으로 턴온(turn on)하고, 오류 위치자 다항식 결정 모듈(120)의 실행 시간을 대응적으로 제어할 수 있다. 예를 들면, 제어 모듈(105)은 오류 신드롬 산출 유닛 110-1, 110-2, …, 및 110-s를 선택적으로 턴온할 수 있으며, 오류 신드롬 산출 유닛 110-1, 110-2, …, 및 110-s의 개수 s는 오류 신드롬 산출 유닛 110-1, 110-2, …, 및 110-t의 개수 t보다 작을 수 있다. 다른 예시에서는, 제어 모듈(105)이, 오류 신드롬 산출 유닛 110-1, 110-2, …, 및 110-s와 같이 오류 신드롬 산출 유닛들 중 일부를 선택적으로 턴온하고, 제어 모듈(105)은, 오류 위치자 다항식 결정 모듈(120)으로 하여금 하나의 단일 코드워드에 대한 최대 횟수 t가 달성될 때까지 코드워드를 계속하여 실행하게 하지 않고, 오류 위치자 다항식 결정 모듈(120)의 실행 횟수를 대응적으로 제어할 수 있다. 따라서 오류 위치자 다항식 결정 모듈(120)은 스케줄에 앞서서 특정 메시지(예를 들어 특정 코드워드)를 처리할 수 있고, 그 후에 즉시 다음 메시지(예를 들어 다음 코드워드)를 처리할 수 있다. 치엔 탐색 모듈(130)이 특정 메시지(예를 들어 특정 코드워드)를 처리하고 있을 때, 오류 위치자 다항식 결정 모듈(120)은 다음 메시지(예를 들어 다음 코드워드) 처리를 이미 시작한 상태이다. 따라서 제어 모듈(105)의 제어 하에서, 디코딩 회로(100)는 시간을 절약하고 전력 소모를 줄일 수 있다. 또한 디코딩 회로(100)를 포함하는 전자 장치의 전체적인 효율성이 향상될 수 있다.
제어 모듈(105)의 제어 하에서, 디코딩 회로(100)는 몇몇의 디코딩 오류를 참작하여 디코딩을 다시 수행할 수 있다. 보다 구체적으로, 디코딩 회로(100)는, 정확한 디코딩 결과를 얻기 위해, 상술한 개수 s가 상술한 개수 t와 동일해지도록 일시적으로 설정할 수 있다. 정상적인 상황에서는 오류가 발생할 가능성이 낮기 때문에, 오류 정정 코드의 제어 파라미터가 적절하게 설계되어 있는 한, 모든 데이터에 대한 디코딩 회로(100)의 전체 디코딩 효율성은 부작용이 나타나지 않고 향상될 수 있다. 디코딩 작업을 다시 수행하는 것은 필연적으로 시간을 낭비함에도 불구하고, 디코딩 회로(100)를 포함하는 전자 장치의 향상된 전체적 효율성이 그 희생을 보상할 수 있다.
실제로, 오류 정정 코드는 Bose, Ray-Chaudhuri 및 Hocquenghem(BCH) 코드일 수 있다. 다만 본 발명의 몇몇 실시예에 따르면 오류 정정 코드는 Reed-Solomon(RS) 코드일 수 있다.
도 2는 본 발명의 일 실시예에 따른 오류 정정 코드를 디코딩하기 위한 방법을 보여주는 작업 흐름도이다. 오류 정정 코드는 한 세트의 메시지 비트 및 한 세트의 패리티(parity) 비트를 포함할 수 있다. 도 2에 도시된 방법은 도 1에 도시된 디코딩 회로(100)에 적용될 수 있다. 이하에서 본 방법(200)이 설명된다.
단계 210에서, 오류 신드롬 산출 모듈(110)은, s개의 오류 신드롬과 같이, 오류 정정 코드의 오류 신드롬 한 세트를 산출하며, 이 때 오류 정정 코드는 t-오류 정정 코드로서 t개의 오류를 정정하는 성능을 가지고, s는 t보다 작다. 보다 구체적으로, 오류 신드롬 산출 모듈(110) 내의 오류 신드롬 산출 유닛 110-1, 110-2, …, 및 110-s는 각각 s개의 오류 신드롬을 산출할 수 있다.
단계 220에서, 오류 위치자 다항식 결정 모듈(120)은, 개산(槪算)된(roughly estimated) 오류 위치자 다항식을 만들기 위해, 한 세트의 오류 신드롬 내의 오류 신드롬들 중 적어도 한 부분(예를 들어 일부 또는 전부)을 참고하여(refer), 오류 정정 코드의 오류 위치자 다항식(예를 들어, 다항식 Λ(x))의 복수의 계수 Λ1, Λ2, …, 및 Λt 내의 한 세트의 계수 Λ1, Λ2, …, 및 Λs를 연속적으로 결정하며, 복수의 계수 Λ1, Λ2, …, 및 Λt의 개수는 t이고, 한 세트의 계수 Λ1, Λ2, …, 및 Λs의 개수는 s이다. 실제로, 오류 위치자 다항식의 복수의 계수 Λ1, Λ2, …, 및 Λt 내의 한 세트의 계수 Λ1, Λ2, …, 및 Λs의 산출 순서는 일차 계수(first-order) Λ1부터 최고차 계수(highest-order) Λs까지이다.
단계 230에서, 치엔 탐색 모듈(130)은 치엔 탐색을 실행하여 개산된 오류 위치자 다항식의 근(root)을 구한다. 보다 구체적으로, 치엔 탐색 모듈(130)은 한 세트의 계수 Λ1, Λ2, …, 및 Λs를 참고하여 개산된 오류 위치자 다항식을 만든 후, 치엔 탐색을 실행하여 개산된 오류 위치자 다항식의 근을 구할 수 있다. 예를 들어, 개산된 오류 위치자 다항식은 아래의 식에 따라 세워질 수 있다:
1 + Λ1 x + Λ2 x2 + … + Λs xs;
본 발명의 몇몇 실시예에 따라 위의 식은 수정될 수 있으며, 그러한 경우 복수의 계수 Λ1, Λ2, …, 및 Λt와, 한 세트의 계수 Λ1, Λ2, …, 및 Λs이 변경될 수 있다.
단계 240에서, 오류 정정 모듈(140)은, 오류 정정 코드의 정정 결과를 생성하기 위해, 개산된 오류 위치자 다항식의 근을 참고하여 오류 정정 코드를 정정한다.
단계 250에서, 검사 모듈(150)은 정정 결과에 대해 적어도 한 번의 검사 작업을 수행하여, 디코딩 회로(100)로 하여금 오류 정정 코드의 디코딩 결과로서 정정 결과를 선택적으로 이용할 수 있게 한다. 보다 구체적으로, 검사 모듈(150)은 정정 결과에 대해 검사 작업을 수행하여 적어도 하나의 검사 결과를 생성한다. 제어 모듈(105)의 제어 하에, 디코딩 회로(100)는 검사 작업의 검사 결과를 참고하여 오류 정정 코드의 디코딩 결과로서 정정 결과를 선택적으로 이용한다.
도 2는 단계 210 내지 단계 250을 포함하는 동작의 흐름을 보여주는 것임에 유의하라. 이는 설명적인 목적을 위한 것일 뿐, 본 발명의 제한을 의도하는 것이 아니다. 본 실시예의 변경에 따라 동작의 흐름은 조정될 수 있다. 예를 들어, 단계 210 내지 단계 250에서의 동작 중 적어도 동작의 한 부분은 반복되어 실행될 수 있다. 다른 예시로서, 단계 210 내지 단계 250 중 적어도 동작의 한 부분은 동시에 실행될 수 있다.
본 실시예에 따르면, 제어 모듈(105)은, t개의 오류 신드롬 산출 유닛 110-1, 110-2, …, 및 110-t 중에서 이네이블된(enabled) 오류 신드롬 산출 유닛의 개수를 선택적으로 제어할 수 있고, 오류 위치자 다항식 결정 모듈(120)이 대응되는 작업 흐름 내에서 오류 정정 코드를 실행하는 횟수를 선택적으로 제어할 수 있다. 오류 신드롬 산출 유닛 110-1, 110-2, …, 및 110-s의 개수가 오류 신드롬 산출 유닛 110-1, 110-2, …, 및 110-t의 개수보다 작고(즉, s<t), 오류 위치자 다항식 결정 모듈(120)이 대응되는 작업 흐름 중에서 오류 정정 코드를 실행하는 횟수가 상술한 상한선 t보다 작은 한, 제어 모듈(105)은 전력을 절감하기 위해 오류 신드롬 산출 모듈(110)을 제어할 수 있고, 처리 시간을 줄이기 위해 오류 위치자 다항식 결정 모듈(120)을 제어할 수 있다. 따라서, 이 방법(200)을 채용하는 디코딩 회로(100)는 시간과 전력을 절약한다는 목표를 달성할 수 있고, 따라서 이 방법(200)을 채용하는 전자 장치(특히 디코딩 회로(100)를 포함하는 전자 장치)의 전반적인 효율성이 향상될 수 있다.
실제로, 오류 정정 코드는 BCH 코드일 수 있다. 본 발명의 다른 실시예들에 따르면 오류 정정 코드는 RS 코드일 수 있다.
도 1의 방식에 도시된 바와 같이, 검사 모듈(150) 및 제어 모듈(105)은 두 개의 분리된 모듈에 묘사된다. 다만 본 발명의 몇몇 실시예에 따르면, 검사 모듈(150)과 제어 모듈(105)은, 제어 및 검사 모듈과 같이 동일한 모듈에 통합될 수 있다. 따라서 단계 250에서는, 디코딩 회로(100)로 하여금 오류 정정 코드의 디코딩 결과로서 정정 결과를 선택적으로 이용하게 할 수 있도록, 제어 및 검사 모듈이 정정 결과에 대해 검사 작업을 수행할 수 있다.
본 발명의 몇몇 실시예에 따르면, 제어 모듈(105)의 제어 하에, 검사 작업의 검사 결과가, 정정 결과가 올바르다는 것을 나타내는 경우, 디코딩 회로(100)는 오류 정정 코드의 디코딩 결과로서 정정 결과를 이용한다. 보다 구체적으로, 제어 모듈(105)의 제어 하에, 적어도 한 번의 검사 작업의 검사 결과가, 정정 결과가 올바르다는 것을 나타내는 경우, 디코딩 회로(100)는 오류 정정 코드의 디코딩 결과로서 정정 결과를 이용하고; 그렇지 않은 경우, 디코딩 회로(100)는 오류 정정 코드의 디코딩 결과로서 정정 결과를 이용하는 것을 방지한다(prevent). 예를 들어, 검사 작업의 검사 결과가, 정정 결과가 올바르지 않음을 나타내는 상황 하에서, 디코딩 회로(100)는 제어 모듈(105)의 제어 하에 오류 정정 코드를 한 번 더 디코딩할 수 있다.
본 발명의 몇몇 실시예에 따르면, 검사 작업은 사후 검사 작업(post check operation) 및/또는 순환 중복 검사(Cyclic Redundancy Check, CRC) 작업을 포함할 수 있다. 예를 들어, 검사 작업은 사후 검사 작업을 포함할 수 있다. 다른 예시에서, 검사 작업은 CRC 검사 작업을 포함할 수 있다. 또 다른 예시에서, 검사 작업은 사후 검사 작업 및 CRC 검사 작업을 모두 포함할 수 있다.
보다 구체적으로, 검사 작업이 사후 검사 작업을 포함하는 상황 하에서, 검사 모듈(150)은, 정정 결과에 대응되는 모든 오류 신드롬이 0과 동일한지 여부를 검출하기 위해, 정정 결과를 참조하여 정정 결과에 대응되는 하나 이상의 오류 신드롬을 산출할 수 있다. 나아가, 제어 모듈(105)의 제어 하에, 디코딩 회로(100)는, 정정 결과에 대응되는 모든 오류 신드롬이 0과 동일한지 여부를 참조하여, 오류 정정 코드의 디코딩 결과로서 오류 정정 코드의 정정 결과를 선택적으로 이용할 수 있다. 예를 들어, 제어 모듈(105)의 제어 하에, 정정 결과에 대응되는 모든 오류 신드롬이 0과 동일할 경우, 디코딩 회로(100)는 오류 정정 코드의 디코딩 결과로서 오류 정정 코드의 정정 결과를 이용한다. 다른 예시에서, 제어 모듈(105)의 제어 하에, 정정 결과에 대응되는 모든 오류 신드롬이 0과 동일한 것은 아닌 경우, 디코딩 회로(100)는 오류 정정 코드의 디코딩 결과로서 오류 정정 코드의 정정 결과를 이용할 수 없다. 실제로, 정정 결과에 대응되는 하나 이상의 오류 신드롬 중, 0과 동일하지 않은 적어도 하나의 오류 신드롬이 존재한다는 것이 검출되는 경우(정정 결과가 올바르지 않음을 의미함), 디코딩 회로(100)는 제어 모듈(105)의 제어 하에 오류 정정을 한 번 더 디코딩할 수 있다.
본 발명의 몇몇 실시예에 따르면, 제어 모듈(105)의 제어 하에, 검사 작업의 검사 결과가, 정정 결과가 바르지 않다는 것을 나타내는 경우, 오류 신드롬 산출 모듈(110)은, 오류 위치자 다항식을 만들기 위해 오류 정정 코드의 적어도 하나의 다른 오류 신드롬을 산출하여 또 다른 한 세트의 오류 신드롬을 생성하고, 그에 따라 오류 정정 코드의 또 다른 정정 결과를 생성하며, 이때 다른 한 세트의 오류 신드롬은 한 세트의 오류 신드롬 및 오류 신드롬을 포함하고, 다른 한 세트의 오류 신드롬의 개수는 t와 같다. 보다 구체적으로, 제어 모듈(105)의 제어 하에, 오류 지시자 다항식 결정 모듈(120)은, 다른 한 세트의 오류 신드롬 내의 오류신드롬 중 적어도 한 부분(예를 들어 일부 또는 전체)을 참고하여 오류 정정 코드의 오류 위치자 다항식의 복수의 계수 Λ1, Λ2, …, 및 Λ 중 적어도 하나의 다른 계수를 연속적으로 결정함으로써, 오류 위치자 다항식을 만든다. 예를 들어 계수는, 복수의 계수 Λ1, Λ2, …, 및 Λt 중, (t-s)개의 계수 Λs +1, Λs +2, …, 및 Λt를 포함할 수 있다. 다른 예시에서, 단계 210에서 언급된 한 세트의 오류 신드롬의 개수 s가 (t-1)로 설정된 상황에서, 복수의 계수 Λ1, Λ2, …, 및 Λt 중의 계수는 계수 Λt를 포함할 수 있다.
실제로, 오류 위치자 다항식의 복수의 계수 Λ1, Λ2, …, 및 Λt의 산출 순서는 일차 계수 Λ1부터 시작하여 최고차 계수 Λt까지이다. 한 세트의 계수 Λ1, Λ2, …, 및 Λs가 미리 저장되어 있는 한, 오류 위치자 다항식 결정 모듈(120)은 한 세트의 계수 Λ1, Λ2, …, 및 Λs를 직접 획득하여, (t-s)개의 계수 Λs +1, Λs +2, …, 및 Λt와 같이 다른 계수를 산출할 수 있으며, (t-s)개의 계수 Λs +1, Λs +2, …, 및 Λt는 (s+1)차 계수 Λs+1에서부터 최고차 계수 Λt까지 산출된다.
복수의 계수 Λ1, Λ2, …, 및 Λt 중 다른 계수의 수와 상관없이, 치엔 탐색 모듈(130)은 치엔 탐색을 실행하여 오류 위치자 다항식(예를 들어, Λ(x))의 근을 찾아내고, 오류 정정 모듈(140)은 오류 위치자 다항식의 근을 참고하여 오류 정정 코드의 다른 정정 결과를 생성하기 위한 오류 정정 코드를 정정한다. 보다 구체적으로, 치엔 탐색 모듈(130)은 복수의 계수 Λ1, Λ2, …, 및 Λt를 참고하여 오류 위치자 다항식을 만들고, 치엔 탐색을 실행하여 오류 위치자 다항식의 근을 찾아낸다. 예를 들어, 오류 위치자 다항식은 아래의 식에 따라 세워질 수 있다:
1 + Λ1 x + Λ2 x2 + … + Λt xt;
본 발명의 몇몇 실시예에 따라 위의 식은 수정될 수 있으며, 그러한 경우 복수의 계수 Λ1, Λ2, …, 및 Λt가 변경될 수 있다.
본 발명의 몇몇 실시예에 따라, 오류 정정 코드는 상술한 한 세트의 메시지 비트를 포함할 수 있고, 상술한 한 세트의 패리티 비트를 더 포함할 수 있다. 디코딩 회로(100)는 한 세트의 메시지 비트를 인코딩하여 한 세트의 인코딩된 비트를 생성할 수 있다. 나아가, 디코딩 회로(100)는 인코딩된 한 세트의 비트 및 한 세트의 패리티 비트에 대해 비트별 배타적(exclusive) OR(bitwise XOR) 연산을 수행할 수 있으며, 한 세트의 패리티 미스매치(mismatch) 비트는 또한 ‘디스패리티(disparity)’라 칭할 수 있다. 오류 신드롬 산출 모듈(110)은 한 세트의 패리티 미스매치 비트를 참고하여 한 세트의 오류 신드롬을 생성하기 위한 변환(conversion) 작업을 수행할 수 있다.
도 3은 본 발명의 일 실시예에 따른 도 2에 도시된 방법(200)의 작업 흐름이다. 단계 310에서, 제어 모듈(105)은 임계값 s를 설정하고, 보다 구체적으로는, 오류 신드롬 산출 모듈(110) 및 오류 위치자 다항식 결정 모듈(120)을 위한 임계값 s를 설정한다. 임계값 s는 도 1의 실시예에서 언급된 오류 신드롬 산출 유닛 110-1, 110-2, …, 및 110-s의 개수 s로서 사용될 수 있다. 다른 예시에서, 임계값 s는 대응 작업 흐름 내에서의 오류 정정 코드에 대한 오류 위치자 다항식 결정 모듈(120)(도 1의 실시예에서 언급되었음)의 실행 횟수로서 사용될 수 있다. 일반적으로, 단계 310에서 언급된 임계값 s의 초기값은 작업 흐름 300에서의 t보다 작게 설정된다.
단계 312에서, 오류 신드롬 산출 모듈(110)(특히 그 안의 오류 신드롬 산출 유닛 110-1, 110-2, …, 및 110-s)은 s개의 오류 신드롬을 산출한다. 예를 들어, s<t인 경우, 단계 312에서 언급된 s개의 오류 신드롬은 단계 210에서 언급된 s개의 오류 신드롬일 수 있다. s=t인 경우, 단계 312에서 언급된 s개의 오류 신드롬은 상술한 다른 한 세트의 에르 신드롬일 수 있다.
단계 314에서, 오류 위치자 다항식 결정 모듈(120)을 이용하여 s개의 루프(loop) 산출을 실행함으로써, 디코딩 회로(100)(특히, 그 안의 오류 위치자 다항식 결정 모듈(120) 및 치엔 탐색 모듈(130))는 대응되는 오류 위치자 다항식을 결정하기 위해 s개의 오류 신드롬을 참고한다. 예를 들어, s<t인 경우, 대응되는 오류 위치자 다항식은 단계 220에서 언급된 개산된 오류 위치자 다항식을 나타낼 수 있으며, 이 때 단계 314의 동작은 단계 220의 동작을 포함할 수 있고, 치엔 탐색 모듈(130)은 개산된 오류 위치자 다항식을 만들 수 있다. 다른 예시에서, s=t인 경우, 대응되는 오류 위치자 다항식은 단계 220에서 언급된 개산된 오류 위치자 다항식을 나타낼 수 있으며, 오류 위치자 다항식 결정 모듈(120)은 다른 한 세트의 오류 신드롬 내의 오류 신드롬들 중 일부(예를 들어, 일부 또는 전부)를 참고할 수 있다. 오류 정정 코드의 오류 위치자 다항식의 복수의 계수 Λ1, Λ2, …, 및 Λt 중의 계수는 그에 따라, 치엔 탐색 모듈(130)이 오류 위치자 다항식(예를 들어, Λ(t))을 만들기 위해 연속적으로 결정될 수 있다.
단계 316에서, 제어 모듈(105)은 안정성 지표(safety index) y에 기초한 검사 작업을 수행함으로써, 안정성 인자 y가 통과되었는지 여부를 확인한다. 보다 구체적으로, 제어 모듈(105)는 최근의(latest) y개의 루프들의 차이 Δ가 0과 동일한지 아닌지 여부를 검사할 수 있다(도 3에 도시된 바와 같이, 요컨대, “최근의 y개의 루프들의 Δ=0?”). 제어 모듈(105)은 최근의 연속된(succesive) y개의 루프 각각의 차이 Δ가 0과 동일한 경우, 제어 모듈(105)은 안정성 지표 y가 통과된 것으로 판정한다. 그렇지 않은 경우(즉, 최근의 연속된 y개의 루프 각각의 차이 Δ가 0과 동일하지 않은 경우), 제어 모듈(105)은 안정성 지표 y가 통과되지 않은 것으로 판정한다. 제어 모듈(105)이, 안정성 지표가 통과된 것으로 판정하면, 작업 흐름은 단계 320으로 진행되고; 그렇지 않은 경우, 작업 흐름은 단계 318로 진행된다.
단계 318에서, 제어 모듈(105)는, 디코딩을 다시 수행하기 위해 s=t로 설정한다.
단계 320에서, 디코딩 회로(100)(특히 그 안의 치엔 탐색 모듈(130), 오류 정정 모듈(140) 및 검사 모듈(150))은 치엔 탐색, 오류 정정 및 검사 작업을 수행한다. s<t인 경우, 단계 320의 동작은 단계 230, 240 및 250의 동작을 포함할 수 있다. s=t인 경우, 단계 320의 동작은: 치엔 탐색 모듈(130)을 사용하여 치엔 탐색을 실행함으로서 개산된 오류 위치자 다항식(예를 들어 Λ(x))의 근을 구하고; 오류 정정 코드의 다른 정정 결과를 생성하기 위해, 오류 정정 모듈(140)이 개산된 오류 위치자 다항식의 근을 참고하여 오류 정정 코드를 정정하고; 검사 모듈(150)이 다른 정정 결과에 대해 검사 작업을 수행하여, 검사 작업이 통과되었는지 여부를 판정하기 위해, 대응되는 검사 결과를 생성하는 것을 포함할 수 있다.
단계 322에서, 제어 모듈(105)은 (단계 320에서 얻어진) 근의 개수가 대응되는 (단계 314에서 언급된)오류 위치자 다항식의 차수(number of dimensions)와 동일한지 여부를 검사함으로써, 오류가 정정 가능한 것인지(correctable) 여부를 판정한다. s<t인 상황에서, 제어 모듈(105)은 개산된 오류 위치자 다항식의 근의 개수가 개산된 오류 위치자 다항식의 차수와 동일한지 여부를 검사하고, 오류가 정정 가능한 것인지 여부를 판정하기 위해, 정정 결과(예를 들어, 단계 240에서 언급된 정정 결과)가 단계 320에서 획득되었는지 여부가 검사 작업을 통과한다. 다른 예시에서, s=t인 상황에서, 제어 모듈(105)은, 오류가 정정 가능한 것인지 아니지 여부를 판정하기 위해, 오류 위치자 다항식의 근의 개수가 오류 위치자 다항식의 차수와 동일한지 여부와, 단계 320에서 획득된 다른 정정 결과가 검사 작업을 통과하였는지 여부를 검사한다. 근의 개수가, 대응되는 오류 위치자 다항식의 차수와 동일한 것으로 검출되고, 검사 작업이 통과되었을 때(즉, 오류가 정정 가능한 것으로 판정됨), 추가적인 판정 작업을 수행하기 위해, 작업 흐름은 단계 330-1로 진행되며; 그렇지 않은 경우, 작업 흐름은 단계 330-2로 진행된다.
단계 324에서, 제어 모듈(105)은 s=t인지 여부를 검사함으로써, 오류가 정정 불가능한 것인지(uncorrectable) 여부를 판정한다. s=t인 것으로 검출되면(즉, 오류가 정정 불가능한 것으로 판정됨), 작업 흐름은 단계 330-2로 진행되고; 그렇지 않은 경우, 작업 흐름은 단계 318로 진행된다.
단계 330-1에서, 제어 모듈(105)은 오류가 정정 가능하다는 결과에 기초하여 대응되는 디코딩 결과를 출력한다. 예를 들어, s<t인 경우, 제어 모듈(105)은 디코딩 회로(100)를 제어하여 오류 정정 코드의 디코딩 결과로서 정정 결과(예를 들어 단계 250에서 언급된 정정 결과)를 출력한다. 다른 예시에서, s=t인 경우, 제어 모듈(105)은 디코딩 회로(100)를 제어하여 오류 정정 코드의 디코딩 결과로서 다른 정정 결과를 출력한다.
단계 330-2에서, 오류가 정정 불가능하다는 결과에 기초하여, 제어 모듈(105)은 오류가 정정 불가능함을 나타내는 통지를 출력한다.
실제로, 단계 316에서 언급된 차이 Δ를 계산하는 방법은, BCH 인코딩/디코딩과 연관된 방법 등 관련된 기술적 방법들에 사용될 수 있다. 간결하게 하기 위해, 차이 계산에 관한 구체적인 설명은 여기서는 생략한다.
작업 흐름 300에서, 단계 312에서 언급된 s개의 오류 신드롬 중 모든 오류 신드롬이 0과 동일한지 여부를 검사하는 단계는, 단계 312와 단계 314 사이에 묘사되어 있지 않다. 다만 본 발명의 몇몇 실시예에 따르면, 도 3에 도시된 작업 흐름(300)이 수정될 수 있다. 예를 들면 단계 312에서 언급된 s개의 모든 오류 신드롬이 0과 동일한지 여부를 판정하기 위해, 검사 단계가 단계 312와 단계 314 사이에 추가될 수 있다. 보다 구체적으로, 본 발명의 실시예들에서, 단계 312에서 언급된 s개의 모든 오류 신드롬이 0과 동일한지 여부를 검출할 때, 적어도 하나의 뒤따르는 단계가 생략될 수 있다.
도 4는 본 발명의 다른 일 실시예에 따른, 도 2에 도시된 방법(200)의 작업 흐름(400)이다. 도 4에 도시된 바와 같이, 작업 흐름(400)의 대부분의 단계는 도 3에 도시된 작업 흐름(300)의 단계들과 유사하며, 다만 도 4의 실시예에서는 단계 316이 단계 416으로 대체되었다. 단계 416을 제외한 도 4의 단계들은, 도 3에 도시된 단계들이므로, 간결성을 위해 생략되어 있다.
단계 416에서, 제어 모듈(105)은 안정성 지표 y에 기초하여 검사 작업을 수행한다. 보다 구체적으로, y=1일 경우, 제어 모듈(105)은 최근의 루프들의 차이 Δ가 0과 동일한지 아닌지 여부를 검사할 수 있다(도 4의 “최근의 y개의 루프들의 Δ=0?”에 의해 설명됨). 최근의 루프들의 차이 Δ가 0과 동일할 경우, 제어 모듈(105)은 안정성 지표 y가 통과되었다는 결과에 기초하여 검사 작업을 판정하고; 그렇지 않은 경우, 제어 모듈(105)은 안정성 지표 y가 통과되지 않았다는 결과에 기초하여 검사 작업을 판정한다. 제어 모듈(105)이 안정성 지표 y가 통과되었다는 결과에 기초하여 검사 작업을 판정하는 경우, 작업 흐름은 단계 320으로 진행되고; 그렇지 않은 경우, 작업 흐름은 단계 318로 진행된다. 도 3에 도시된 작업 흐름(300)과 비교할 때, 이와 같은 작업 흐름(400)은 전력 및 시간을 더욱 절감할 수 있다.
본 발명의 몇몇 실시예에 따르면, 디코딩 회로(100)를 포함하는 시스템에서, 안정성 지표 y의 값은, 예를 들면 한 세트의 메시지 비트에 대한 한 세트의 패리티 비트의 비율과 같이, 시스템의 인코딩에 의해 제공되는 데이터를 보호하는 힘(strength)에 기초하여 결정될 수 있다. 예를 들어, 시스템의 인코딩에 의해 제공되는 데이터를 보호하는 강도(intensity)가 약해질 때, 안정성 지표 y의 값은 더 크게 설정될 것이다. 시스템의 인코딩에 의해 제공되는 데이터를 보호하는 강도가 강해질 때, 안정성 지표 y의 값은 더 작아지도록 설정될 수 있다.
도 5는, 본 발명의 일 실시예에 따른, 도 1에 도시된 디코딩 회로(100)를 포함하는 저장 장치(500)를 보여주는 도면으로서, 도 2에 도시된 방법(200)이 도 5에 도시된 저장 장치(500)(특히, 그 안의 디코딩 회로(100))에 적용될 수 있다. 보다 나은 이해를 위해, 본 실시예에서 저장 장치(500)는 휴대용 메모리 장치(예를 들어, SD/MMC, CF, MS 및 XD 사양을 따르는 메모리 카드)일 수 있다. 본 실시예에 대한 일부 변경에 따르면, 저장 장치(500)는 SSD(solid state drive)와 같은 다른 유형의 메모리 장치일 수 있다.
도 5에 도시된 바와 같이, 저장 장치(500)는 플래시 메모리(520)와, 플래시 메모리(520)에 액세스하기 위한 컨트롤러를 포함하며, 컨트롤러는 메모리 컨트롤러(510)와 같은 스토리지 컨트롤러일 수 있다. 본 실시예에 따르면, 메모리 컨트롤러(510)는 마이크로컨트롤러(512), ROM(read only memory)(512M), 제어 로직(control logic)(514), 버퍼 메모리(buffer memory)(516), 인터페이스 로직(interface logic)(518) 및 오류 정정 코드 인코딩/디코딩 모듈(510ECC)를 포함하며, 오류 정정 코드 인코딩/디코딩 모듈(510ECC)는 도 1에 도시된 디코딩 회로(100)를 포함한다. ROM은 프로그램 코드(512C)를 저장하도록 배열되고, 마이크컨트롤러(512)는 플래시 메모리(520)로의 액세스를 제어하기 위해 프로그램 코드(512C)를 실행하도록 배열된다.
일반적으로, 플래시 메모리(520)는 복수의 블록을 포함하고; 플래시 메모리(520)의 데이터를 삭제하기 위한 컨트롤러(예를 들어, 마이크로컨트롤러(512)를 이용함으로써 프로그램 코드(512C)를 실행하는 메모리 컨트롤러(510))의 의 최소 삭제 유닛(smallest erase unit) 한 개의 블록일 수 있다. 나아가, 블록은 미리 정해진 수의 페이지를 기록할 수 있으며, 플래시 메모리(520)에 기록하기 위한 컨트롤러(예를 들어, 마이크로컨트롤러(512)를 통해 프로그램 코드(512C)를 실행하는 메모리 컨트롤러(510))의 최소 기록 유닛(smallest write unit)은 하나의 페이지일 수 있다.
실제로, 마이크로컨트롤러(512)를 통해 프로그램 코드(512C)를 실행하는 메모리 컨트롤러(510)는 그 내부의 요소들을 이용하여 다양한 제어 동작을 수행할 수 있다. 예를 들어 메모리 컨트롤러(510)는, 오류 정정 코드 인코딩/디코딩 모듈(510ECC)을 이용하여 기록 데이터에 대해 오류 정정 코드 인코딩 작업을 수행할 수 있고, 오류 정정 코드 인코딩/디코딩 모듈(510ECC)(특히 그 안의 디코딩 회로(100))을 이용하여 기록 데이터에 대해 오류 정정 코드 디코딩 작업을 수행할 수 있으며, 제어 로직(514)를 이용하여 플래시 메모리(520)의 액세스 작업(특히, 적어도 하나의 블록 또는 적어도 하나의 페이지에 대한 액세스 작업)을 제어할 수 있고, 버퍼 메모리(516)를 이용하여 버퍼링 작업을 수행할 수 있으며, 인터페이스 로직(518)을 이용하여 호스트 장치와 통신할 수 있다. 전술한 실시예/변경예에서의 특징들과 유사한 본 실시예의 몇몇 특징은 간결성을 위해 여기서는 생략되었다.
도 5의 방식에서는, 저장 장치(500)가 플래시 메모리(520)를 포함한다. 본 실시예의 일부 변경에 따르면, 저장 장치(500)는 다른 유형의 저장 장치일 수 있으며, 저장 장치(500)는 다른 유형의 저장 매체를 포함할 수 있고, 컨트롤러는 다른 유형의 저장 매체에 액세스할 수 있다. 전술한 실시예/변경예에서의 특징들과 유사한 본 실시예의 몇몇 특징은 간결성을 위해 여기서는 생략되었다.
본 실시예의 일부 변경에 따르면, 저장 장치(500)는 전자 장치에 설치될 수 있다. 이와 같이, 디코딩 회로(100)와 마찬가지로, 전자 장치 역시 시간과 전력을 절감하기 위한 목적을 달성할 수 있다. 따라서 관련 기술과 비교할 때, 위 방법(200)으로 실현되는 전자 장치의 전반적인 효율성은 높아질 것이다.
본 실시예의 일부 변경에 따르면, 디코딩 회로(100)는 전자 장치의 컨트롤러 내에 설치될 수 있다. 이와 같이, 디코딩 회로(100)와 마찬가지로, 전자 장치 역시 시간과 전력을 절감하기 위한 목적을 달성할 수 있다. 따라서 관련 기술과 비교할 때, 위 방법(200)으로 실현되는 전자 장치의 전반적인 효율성은 높아질 것이다.
도 6은 본 발명의 다른 일 실시예에 따른, 도 1에 도시된 디코딩 회로(100)를 포함하는 저장 장치(600)를 보여주는 도면으로서, 도 2에 도시된 방법(200)은 도 6에 도시된 저장 장치(600)(윽히 그 안의 디코딩 회로(100))에 적용될 수 있다. 보다 나은 이해를 위해, 본 실시예에서 저장 장치(600)는 휴대용 메모리 장치(예를 들어, SD/MMC, CF, MS 및 XD 사양을 따르는 메모리 카드)일 수 있다. 본 실시예에 대한 일부 변경에 따르면, 저장 장치(600)는 SSD와 같은 다른 유형의 메모리 장치일 수 있다.
도 6에 도시된 바와 같이, 오류 정정 코드 인코딩/디코딩 모듈(510ECC)(특히 그 안의 디코딩 회로(100)) 및 제어 로직(514)은, 본 실시예에서, 하나의 모듈, 즉, 제어 로직(514)로 통합된다. 이와 같은 구조의 변경에 응답하여, 컨트롤러는 본 실시예에서 메모리 컨트롤러(610)이라 일컬어질 수 있다. 전술한 실시예/변경예에서의 특징들과 유사한 본 실시예의 몇몇 특징은 간결성을 위해 여기서는 생략되었다.
본 실시예의 일부 변경에 따르면, 저장 장치(600)는 전자 장치의 컨트롤러 내에 설치될 수 있다. 이와 같이, 디코딩 회로(100)와 마찬가지로, 전자 장치 역시 시간과 전력을 절감하기 위한 목적을 달성할 수 있다. 따라서 관련 기술과 비교할 때, 위 방법(200)으로 실현되는 전자 장치의 전반적인 효율성은 높아질 것이다.
통상의 기술자는 본 발명의 사상을 유지하면서 상술한 장치 및 방법의 수많은 변경 및 개조가 이루어질 수 있음을 쉽게 이해할 것이다. 그에 따라, 위의 개시는 첨부된 청구범위의 한계 및 경계에 의해서만 제한되도록 해석되어야 한다.

Claims (23)

  1. 오류 정정 코드를 디코딩하는 방법으로서,
    상기 오류 정정 코드의 한 세트의 오류 신드롬(error syndromes)을 산출하는 단계;
    개산된(roughly-estimated) 오류 위치자 다항식(error locator polynomial)을 만들기 위해, 상기 한 세트의 오류 신드롬 내의 오류 신드롬 중 적어도 일부에 따라 상기 오류 정정 코드의 오류 위치자 다항식의 복수의 계수 내의 한 세트의 계수를 연속적으로 결정하는 단계;
    상기 개산된 오류 위치자 다항식의 복수의 근을 결정하기 위해 치엔(Chien) 탐색을 수행하는 단계;
    상기 개산된 오류 위치자 다항식에 따라 상기 오류 정정 코드를 정정하여 상기 오류 정정 코드의 정정 결과를 생성하는 단계; 및
    상기 오류 정정 코드의 디코딩 결과로서 상기 정정 결과를 선택적으로 이용하기 위해 적어도 한 번의 검사 작업을 수행하는 단계
    를 포함하고,
    상기 오류 정정 코드는 t-오류 정정 코드로서 t개의 오류를 정정하는 성능을 가지고, 상기 한 세트의 오류 신드롬의 개수 s는 t보다 작으며,
    상기 복수의 계수의 개수는 t와 같고, 상기 한 세트의 계수의 개수는 s와 같은,
    오류 정정 코드를 디코딩하는 방법.
  2. 제1항에 있어서,
    상기 오류 정정 코드의 디코딩 결과로서 상기 정정 결과를 선택적으로 이용하기 위해 적어도 한 번의 검사 작업을 수행하는 단계가,
    상기 검사 작업의 적어도 하나의 검사 결과가, 상기 정정 결과가 올바르다는(correct) 것을 나타내는 경우, 상기 오류 정정 코드의 디코딩 결과로서 상기 정정 결과를 이용하는 단계를 더 포함하는,
    오류 정정 코드를 디코딩하는 방법.
  3. 제2항에 있어서,
    상기 오류 정정 코드의 디코딩 결과로서 상기 정정 결과를 선택적으로 이용하기 위해 적어도 한 번의 검사 작업을 수행하는 단계가,
    상기 검사 작업의 적어도 하나의 검사 결과가, 상기 정정 결과가 올바르다는 것을 나타내는 경우, 상기 오류 정정 코드의 디코딩 결과로서 상기 정정 결과를 이용하고; 그렇지 않은 경우, 상기 오류 정정 코드의 디코딩 결과로서 정정 결과를 이용하는 것을 방지하는(preventing) 단계를 더 포함하는,
    오류 정정 코드를 디코딩하는 방법.
  4. 제1항에 있어서,
    상기 검사 작업은 사후(post) 검사 작업을 포함하고,
    상기 오류 정정 코드의 디코딩 결과로서 상기 정정 결과를 선택적으로 이용하기 위해 적어도 한 번의 검사 작업을 수행하는 단계는,
    상기 정정 결과에 대응되는 모든 오류 신드롬이 0과 동일한지 여부를 검출하기 위해, 상기 정정 결과에 따라 상기 정정 결과에 대응되는 하나 이상의 오류 신드롬을 산출하는 단계; 및
    상기 정정 결과에 대응되는 모든 오류 신드롬이 0과 동일한지 여부에 따라, 상기 오류 정정 코드의 디코딩 결과로서 상기 정정 결과를 선택적으로 이용하는 단계
    를 더 포함하는,
    오류 정정 코드를 디코딩하는 방법.
  5. 제4항에 있어서,
    상기 검사 작업은 순환 중복 검사(Cyclic Redundancy Check, CRC) 작업을 더 포함하는, 오류 정정 코드를 디코딩하는 방법.
  6. 제1항에 있어서,
    상기 검사 작업은 순환 중복 검사(Cyclic Redundancy Check, CRC) 작업을 포함하는, 오류 정정 코드를 디코딩하는 방법.
  7. 제1항에 있어서,
    상기 검사 작업의 적어도 하나의 검사 결과가, 상기 정정 결과가 올바르지 않다는 것을 나타내는 경우, 상기 오류 위치자 다항식을 만들고 그에 따라 상기 오류 정정 코드의 다른 정정 결과를 생성하기 위해, 상기 오류 정정 코드의 적어도 하나의 다른 오류 신드롬을 산출하여 다른 한 세트의 오류 신드롬을 생성하는 단계를 더 포함하고,
    상기 다른 한 세트의 오류 신드롬은 상기 한 세트의 오류 신드롬과 적어도 상기 다른 오류 신드롬을 포함하고, 상기 다른 한 세트의 오류 신드롬의 개수는 t와 같은,
    오류 정정 코드를 디코딩하는 방법.
  8. 제7항에 있어서,
    상기 오류 위치자 다항식을 만들기 위해, 상기 다른 한 세트의 오류 신드롬 내의 오류 신드롬 중 적어도 일부에 따라, 상기 오류 정정 코드의 오류 위치자 다항식의 복수의 계수 중 적어도 하나의 다른 계수를 연속적으로 결정하는 단계를 더 포함하는,
    오류 정정 코드를 디코딩하는 방법.
  9. 제8항에 있어서,
    상기 오류 위치자 다항식의 근을 구하도록 치엔 탐색을 실행하는 단계; 및
    상기 오류 위치자 다항식의 근에 따라 상기 오류 정정 코드를 정정하여 상기 오류 정정 코드의 다른 오류 정정 결과를 생성하는 단계
    를 더 포함하는 오류 정정 코드를 디코딩하는 방법.
  10. 제1항에 있어서,
    상기 오류 정정 코드는 한 세트의 메시지 비트 및 한 세트의 패리티(parity) 비트를 포함하고,
    상기 한 세트의 메시지 비트를 인코딩하여 한 세트의 인코딩된 비트를 생성하는 단계;
    상기 한 세트의 인코딩된 비트와 상기 한 세트의 패리티 비트에 대해 비트별 배타적(exclusive) OR(bitwise XOR) 연산을 수행하여 한 세트의 패리티 미스매치(mismatch) 비트를 생성하는 단계; 및
    상기 한 세트의 패리티 미스매치 비트에 따라 변환(converting) 작업을 수행하여 상기 한 세트의 오류 신드롬을 생성하는 단계
    를 더 포함하는 오류 정정 코드를 디코딩하는 방법.
  11. 오류 정정 코드를 디코딩하기 위한 디코딩 회로로서,
    상기 오류 정정 코드의 한 세트의 오류 신드롬을 산출하도록 구성된 오류 신드롬 산출 모듈;
    개산된 오류 위치자 다항식을 만들기 위해, 상기 한 세트의 오류 신드롬 내의 오류 신드롬 중 적어도 일부를 참고하여 상기 오류 정정 코드의 오류 위치자 다항식의 복수의 계수 내의 한 세트의 계수를 연속적으로 결정하도록 구성된 오류 위치자 다항식 결정 모듈;
    상기 개산된 오류 위치자 다항식의 복수의 근을 결정하기 위해 치엔(Chien) 탐색을 수행하도록 구성된 치엔 탐색 모듈;
    상기 개산된 오류 위치자 다항식의 근을 참고하여 상기 오류 정정 코드의 정정 결과를 생성하기 위해 상기 오류 정정 코드를 정정하도록 구성된 오류 정정 모듈;
    상기 오류 정정 코드의 정정 결과에 대해 적어도 한 번의 검사 작업을 수행하여 적어도 하나의 검사 결과를 생성하도록 구성된 검사 모듈; 및
    상기 디코딩 회로의 동작을 제어하도록 구성된 제어 모듈
    을 포함하고,
    상기 오류 정정 코드는 t-오류 정정 코드로서 t개의 오류를 정정하는 성능을 가지고, 상기 한 세트의 오류 신드롬의 개수 s는 t보다 작으며,
    상기 복수의 계수의 개수는 t와 같고, 상기 한 세트의 계수의 개수는 s와 같고,
    상기 제어 모듈의 제어 하에, 상기 디코딩 회로는 상기 검사 작업의 검사 결과를 참고하여 상기 오류 정정 코드의 디코딩 결과로서 상기 정정 결과를 선택적으로 이용하는,
    디코딩 회로.
  12. 제11항에 있어서,
    상기 제어 모듈의 제어 하에, 상기 검사 작업의 검사 결과가, 상기 정정 결과가 올바르다는 것을 나타내는 경우, 상기 디코딩 회로는 상기 오류 정정 코드의 디코딩 결과로서 상기 정정 결과를 이용하는,
    디코딩 회로.
  13. 제12항에 있어서,
    상기 제어 모듈의 제어 하에, 상기 검사 작업의 검사 결과가, 상기 정정 결과가 올바르다는 것을 나타내는 경우, 상기 디코딩 회로는 상기 오류 정정 코드의 디코딩 결과로서 상기 정정 결과를 이용하고; 그렇지 않은 경우, 상기 디코딩 회로는 상기 오류 정정 코드의 디코딩 결과로서 상기 정정 결과를 이용하는 것을 방지하는,
    디코딩 회로.
  14. 제11항에 있어서,
    상기 검사 작업은 사후 검사 작업을 포함하고,
    상기 검사 모듈은, 사익 정정 결과를 참고하여, 상기 정정 결과에 대응되는 하나 이상의 오류 신드롬을 산출하여 상기 정정 결과에 대응되는 모든 오류 신드롬이 0과 동일한지 여부를 검출하고,
    상기 제어 모듈의 제어 하에, 상기 디코딩 회로는, 상기 정정 결과에 대응되는 모든 오류 신드롬이 0과 동일한지 여부를 참고하여 상기 오류 정정 코드의 디코딩 결과로서 상기 오류 정정 코드의 정정 결과를 선택적으로 이용하는,
    디코딩 회로.
  15. 제14항에 있어서,
    상기 검사 작업은 순환 중복 검사(Cyclic Redundancy Check, CRC) 작업을 더 포함하는, 디코딩 회로.
  16. 제11항에 있어서,
    상기 검사 작업은 순환 중복 검사(Cyclic Redundancy Check, CRC) 작업을 포함하는, 디코딩 회로.
  17. 제11항에 있어서,
    상기 제어 모듈의 제어 하에, 상기 검사 작업의 적어도 하나의 검사 결과가, 상기 정정 결과가 올바르지 않다는 것을 나타내는 경우, 상기 오류 신드롬 산출 모듈은, 상기 오류 위치자 다항식을 만들고 그에 따라 상기 오류 정정 코드의 다른 정정 결과를 생성하기 위해, 상기 오류 정정 코드의 적어도 하나의 다른 오류 신드롬을 산출하여 다른 한 세트의 오류 신드롬을 생성하고,
    상기 다른 한 세트의 오류 신드롬은 상기 한 세트의 오류 신드롬과 적어도 상기 다른 오류 신드롬을 포함하고, 상기 다른 한 세트의 오류 신드롬의 개수 s는 t와 같은,
    디코딩 회로.
  18. 제17항에 있어서,
    상기 제어 모듈의 제어 하에, 상기 오류 위치자 다항식 결정 모듈은, 상기 오류 위치자 다항식을 만들기 위해, 상기 다른 한 세트의 오류 신드롬 내의 오류 신드롬 중 적어도 일부를 참고하여 상기 오류 정정 코드의 오류 위치자 다항식의 복수의 계수 중 적어도 하나의 다른 계수를 연속적으로 결정하는,
    디코딩 회로.
  19. 제18항에 있어서,
    상기 치엔 탐색 모듈은 상기 오류 위치자 다항식의 근을 구하기 위해 치엔 탐색을 실행하하고,
    상기 오류 정정 모듈은 상기 오류 위치자 다항식의 근을 참고함으로써 상기 오류 정정 코드를 정정하여 상기 오류 정정 코드의 다른 오류 정정 결과를 생성하는,
    디코딩 회로.
  20. 제11항에 있어서,
    상기 오류 정정 코드는 한 세트의 메시지 비트 및 한 세트의 패리티(parity) 비트를 포함하고,
    상기 디코딩 회로는 상기 한 세트의 메시지 비트를 인코딩하여 한 세트의 인코딩된 비트를 생성하고,
    상기 디코딩 회로는 상기 한 세트의 인코딩된 비트와 상기 한 세트의 패리티 비트에 대해 비트별 배타적 OR(XOR) 연산을 수행하여 한 세트의 패리티 미스매치 비트를 생성하고,
    상기 오류 신드롬 산출 모듈은 상기 한 세트의 패리티 미스매치 비트를 참고함으로써 변환 작업을 수행하여 상기 한 세트의 오류 신드롬을 생성하는,
    디코딩 회로.
  21. 메모리 컨트롤러로서,
    제11항의 디코딩 회로를 포함하는 메모리 컨트롤러.
  22. 저장 장치로서,
    제1항의 디코딩 회로를 포함하는 저장 장치.
  23. 전자 장치의 컨트롤러로서,
    상기 컨트롤러는 제11항의 디코딩 회로를 포함하는,
    전자 장치의 컨트롤러.
KR1020160116682A 2015-09-10 2016-09-09 오류 정정 코드를 디코딩하기 위한 방법 및 이와 관련된 디코딩 회로 KR101819152B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW104129917 2015-09-10
TW104129917A TWI566091B (zh) 2015-09-10 2015-09-10 用來對一錯誤更正碼進行解碼之方法與解碼電路

Publications (2)

Publication Number Publication Date
KR20170035795A true KR20170035795A (ko) 2017-03-31
KR101819152B1 KR101819152B1 (ko) 2018-01-16

Family

ID=58257714

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160116682A KR101819152B1 (ko) 2015-09-10 2016-09-09 오류 정정 코드를 디코딩하기 위한 방법 및 이와 관련된 디코딩 회로

Country Status (4)

Country Link
US (2) US10404283B2 (ko)
KR (1) KR101819152B1 (ko)
CN (2) CN110768751B (ko)
TW (1) TWI566091B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10740179B2 (en) 2017-11-29 2020-08-11 SK Hynix Inc. Memory and method for operating the memory

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10312944B2 (en) 2017-03-17 2019-06-04 Micron Technology, Inc. Error correction code (ECC) operations in memory for providing redundant error correction
TWI657336B (zh) * 2017-08-28 2019-04-21 慧榮科技股份有限公司 用以檢測資料儲存裝置之資料儲存方法及其資料儲存裝置
US10831596B2 (en) * 2018-01-22 2020-11-10 Micron Technology, Inc. Enhanced error correcting code capability using variable logical to physical associations of a data block
US10756763B2 (en) * 2018-09-28 2020-08-25 Innogrit Technologies Co., Ltd. Systems and methods for decoding bose-chaudhuri-hocquenghem encoded codewords
WO2022019886A1 (en) * 2020-07-20 2022-01-27 Pqsecure Technologies, Llc An architecture and method for hybrid isogeny-based cryptosystems

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643819B1 (en) 2000-01-26 2003-11-04 Maxtor Corporation Hybrid root-finding technique
FR2817418B1 (fr) 2000-11-27 2003-02-21 Matra Nortel Communications Procede de decodage d'un bloc de symboles et dispositif mettant en oeuvre un tel procede
US7028245B2 (en) 2001-08-21 2006-04-11 Equator Technologies, Inc. Even-load software Reed-Solomon decoder
FR2860360B1 (fr) * 2003-09-29 2005-12-09 Canon Kk Dispositif de codage /decodage utilisant un codeur/decodeur de reed-solomon
JP4856110B2 (ja) * 2008-03-01 2012-01-18 株式会社東芝 チェンサーチ装置およびチェンサーチ方法
TWI387214B (zh) * 2009-02-03 2013-02-21 Silicon Motion Inc 糾錯碼的解碼方法及電路
US8370727B2 (en) * 2009-02-03 2013-02-05 Silicon Motion, Inc. Method and circuit for decoding an error correction code
US8453038B2 (en) * 2009-06-30 2013-05-28 Apple Inc. Chien search using multiple basis representation
KR101314232B1 (ko) * 2009-07-01 2013-10-02 실리콘 모션 인코포레이티드 에러 정정 코드의 부호화 및 복호화 방법 그리고 코덱
JP5017407B2 (ja) 2010-03-24 2012-09-05 株式会社東芝 半導体記憶装置
KR20120063329A (ko) * 2010-12-07 2012-06-15 삼성전자주식회사 에러 체크 및 정정기 및 그것을 포함하는 메모리 시스템
KR101807538B1 (ko) * 2010-12-30 2017-12-12 삼성전자주식회사 듀얼-신드롬 생성기를 포함하는 에러 정정 코드 블록, 이의 동작 방법, 및 상기 에러 정정 코드 블록을 포함하는 시스템
WO2012098157A2 (en) * 2011-01-18 2012-07-26 Universität Zürich Evaluation of polynomials over finite fields and decoding of cyclic tools
KR101747794B1 (ko) 2011-03-29 2017-06-16 삼성전자주식회사 에러 정정 디코더 및 그것의 에러 정정 방법
CN102567134B (zh) 2012-01-06 2015-01-07 威盛电子股份有限公司 存储器模块的错误检查与校正系统以及方法
JP2014033364A (ja) 2012-08-03 2014-02-20 Samsung Electronics Co Ltd 誤り検出訂正回路、及びメモリ装置
KR101432909B1 (ko) 2012-12-21 2014-08-22 인하대학교 산학협력단 병렬 bch 복호기를 위한 고속 소면적의 수정된 스텝-바이-스텝 복호 방법 및 그 연산 회로
US9906240B2 (en) * 2015-06-03 2018-02-27 SK Hynix Inc. One-shot decoder for two-error-correcting BCH codes

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10740179B2 (en) 2017-11-29 2020-08-11 SK Hynix Inc. Memory and method for operating the memory

Also Published As

Publication number Publication date
TWI566091B (zh) 2017-01-11
US10404283B2 (en) 2019-09-03
KR101819152B1 (ko) 2018-01-16
CN106533615A (zh) 2017-03-22
US20190341937A1 (en) 2019-11-07
US10848184B2 (en) 2020-11-24
CN110768751A (zh) 2020-02-07
CN110768751B (zh) 2022-01-25
US20170077962A1 (en) 2017-03-16
TW201710893A (zh) 2017-03-16
CN106533615B (zh) 2019-11-15

Similar Documents

Publication Publication Date Title
KR101819152B1 (ko) 오류 정정 코드를 디코딩하기 위한 방법 및 이와 관련된 디코딩 회로
US9037941B2 (en) Systems and methods for error checking and correcting for memory module
US7823043B2 (en) Corruption-resistant data porting with multiple error correction schemes
US8122328B2 (en) Bose-Chaudhuri-Hocquenghem error correction method and circuit for checking error using error correction encoder
US20170163287A1 (en) Error correction methods and apparatuses using first and second decoders
US8713407B2 (en) Semiconductor memory system having ECC circuit and controlling method thereof
US20120254686A1 (en) Non-volatile semiconductor memory devices and error correction methods
KR101712619B1 (ko) 에러 정정 코드의 인코딩 및 디코딩 방법
US9100054B2 (en) Data processing systems and methods providing error correction
KR101439815B1 (ko) 메모리에서의 에러 정정 처리 회로 및 에러 정정 처리 방법
KR20110031092A (ko) 메모리 시스템 및 메모리 시스템의 제어 방법
JP2008299855A (ja) エンベデッドメモリを利用したマルチチャンネルエラー訂正コーダを備えたメモリシステム及びその方法
KR20110107273A (ko) 반도체 기억 장치
KR20090099756A (ko) 메모리 장치 및 인코딩/디코딩 방법
JP2011198272A (ja) 半導体記憶装置および半導体記憶装置の制御方法
JP2019057752A (ja) メモリシステム
US9164831B2 (en) Memory controller, semiconductor storage device, and decoding method
KR101314232B1 (ko) 에러 정정 코드의 부호화 및 복호화 방법 그리고 코덱
US20090106634A1 (en) Error detecting and correcting circuit using chien search, semiconductor memory controller including error detecting and correcting circuit, semiconductor memory system including error detecting and correcting circuit, and error detecting and correcting method using chien search
US20150200686A1 (en) Encoding device, decoding device, and operating method thereof
US10326477B2 (en) Techniques for miscorrection detection for constituent codewords in product codes
TW202006735A (zh) 編碼方法及使用所述編碼方法的記憶體儲存裝置
CN112286716A (zh) 一种1024字节的存储系统差错控制模块
JP2010033181A (ja) エラー訂正回路、および半導体メモリシステム
KR20190062908A (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