KR20180053700A - 저전력 이중 에러 정정―삼중 에러 검출(deb―ted) 디코더 - Google Patents

저전력 이중 에러 정정―삼중 에러 검출(deb―ted) 디코더 Download PDF

Info

Publication number
KR20180053700A
KR20180053700A KR1020187010280A KR20187010280A KR20180053700A KR 20180053700 A KR20180053700 A KR 20180053700A KR 1020187010280 A KR1020187010280 A KR 1020187010280A KR 20187010280 A KR20187010280 A KR 20187010280A KR 20180053700 A KR20180053700 A KR 20180053700A
Authority
KR
South Korea
Prior art keywords
output
error
dual
correction
input
Prior art date
Application number
KR1020187010280A
Other languages
English (en)
Other versions
KR102599033B1 (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 KR20180053700A publication Critical patent/KR20180053700A/ko
Application granted granted Critical
Publication of KR102599033B1 publication Critical patent/KR102599033B1/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/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
    • 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
    • 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
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1575Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • 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/617Polynomial operations, e.g. operations related to generator polynomials or parity-check 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing

Landscapes

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

Abstract

에러 검출 및 정정 디코딩 장치는, 단일 비트 에러들의 경우에 전력 소비 및 레이턴시를 감소시키고 다중-비트 에러들의 경우에 강력한 에러 정정을 제공하기 위해, 데이터 입력이 단일 비트 에러를 포함하는지 또는 다중-비트 에러를 포함하는지에 따라 SEC-DED(single error correction-double error detection) 또는 DEC-TED(double error correction-triple error detection)를 수행한다.

Description

저전력 이중 에러 정정―삼중 에러 검출(DEB―TED) 디코더
[0001] 본원에 설명된 다양한 실시예들은 에러 정정에 관한 것이며, 보다 상세하게는, 단일-비트 및 다중-비트 에러 정정에 관한 것이다.
[0002] 메모리들과 같은 디지털 장치 및 디바이스들에서의 에러 검출 및 정정을 위해 다양한 방식들이 고안되어 왔다. 메모리 디바이스들에서의 에러 정정의 영역에서, 에러 검출 및 에러 정정은 개별적으로 수행될 수 있다. 예컨대, 이중-비트 에러가 검출되면, 단일-비트 에러의 정정을 허용하는 SEC-DED(single error correcting-double error detecting)와 같은 방식들이 고안되었다. 그러나, 다중-비트 에러들의 경우에, 종래의 SEC-DED 방식들은 이러한 에러들을 완화하기에 충분히 강력하지 않을 수 있다.
[0003] 다중-비트 에러들의 문제를 해결하기 위해 더욱 강력한 에러 검출 및 정정 방식들이 고안되었다. 예컨대, 종래의 SEC-DED 방식들보다 더 강력한 에러 정정 능력들을 제공할 DEC-TED(double error correcting-triple error detecting)와 같은 방식들이 고안되었다. 그러나, 통상적으로 DEC-TED에 요구되는 회로의 영역은 SEC-DED에 요구되는 영역보다 훨씬 더 클 것이다. 더욱이, 종래의 DEC-TED 회로는 통상적으로 더 많은 전력을 소비하고, 종래의 SEC-DED 회로보다 더 긴 레이턴시 또는 시간 지연을 초래한다. 예컨대, 단일 에러를 정정하기 위해 DEC-TED 회로가 활용될 때, 전력 소비 및 시간 지연은 SEC-DED 회로보다 훨씬 더 클 것이다.
[0004] 또한, 단일- 또는 다중-비트 에러 정정을 위한 에러 정정 코드를 구현하는 순수한 조합 회로들은, 에러 로케이션 디코딩에서의 무효 트랜지션들(invalid transitions)로 인해 입력이 변할 때, 통상적으로 많은 양의 동적 전력을 소비할 수 있다. 에러 검출 및 정정을 위해, 특히 저전력 메모리 칩들과 같은 저전력 집적 회로 디바이스들에서 다중-비트 에러 검출 및 정정을 위해 요구되는 전력 소비량을 감소시키는 것이 바람직할 것이다.
[0005] 본 개시내용의 예시적인 실시예들은 전력 소비가 감소된, 메모리에서의 이중 에러 정정 장치 및 방법에 관한 것이다.
[0006] 실시예에서, 에러 검출 및 정정 장치가 제공되고, 에러 검출 및 정정 장치는: 입력 데이터에서 단일 에러들을 로케이팅하도록 구성된 단일 에러 로케이션 디코더; 입력 데이터에서 이중 에러들을 로케이팅하도록 구성된 이중 에러 로케이션 디코더; 및 정정된 출력 데이터를 생성하기 위해 단일 에러 로케이션 디코더 및 이중 에러 로케이션 디코더에 커플링된 에러 정정기를 포함한다.
[0007] 다른 실시예에서, 에러 검출 및 정정 장치가 제공되고, 에러 검출 및 정정 장치는: 입력 데이터에서 단일 에러들을 로케이팅하기 위한 단일 에러 로케이션 디코딩을 위한 수단; 입력 데이터에서 이중 에러들을 로케이팅하기 위한 이중 에러 로케이션 디코딩을 위한 수단; 및 단일 에러들 및 이중 에러들에 기반하여 정정된 출력 데이터를 생성하기 위한 에러들을 정정하기 위한 수단을 포함한다.
[0008] 다른 실시예에서, 에러 검출 및 정정 장치가 제공되고, 에러 검출 및 정정 장치는: 입력 데이터에서 단일 에러들을 로케이팅하도록 구성된 로직; 입력 데이터에서 이중 에러들을 로케이팅하도록 구성된 로직; 및 단일 에러들 및 이중 에러들에 기반하여 정정된 출력 데이터를 생성하도록 구성된 로직을 포함한다.
[0009] 또 다른 실시예에서, 메모리가 제공되고, 메모리는: 메모리 셀; 및 메모리 셀로부터 입력 데이터를 수신하고 정정된 출력 데이터를 메모리 셀로 송신하도록 커플링된 에러 검출 및 정정 장치를 포함하고, 에러 검출 및 정정 장치는: 입력 데이터에서 단일 에러들을 로케이팅하도록 구성된 단일 에러 로케이션 디코더; 입력 데이터에서 이중 에러들을 로케이팅하도록 구성된 이중 에러 로케이션 디코더; 및 정정된 출력 데이터를 생성하기 위해 단일 에러 로케이션 디코더 및 이중 에러 로케이션 디코더에 커플링된 에러 정정기를 포함한다.
[0010] 첨부 도면들은 본 개시내용의 실시예들의 설명을 보조하도록 제시되며, 본 개시내용의 제한이 아니라 실시예들의 예시를 위해서만 제공된다.
[0011] 도 1은 에러 검출 및 정정 장치의 실시예를 예시하는 블록도이다.
[0012] 도 2는 플립-플롭 및 타이밍 제어기를 갖는 에러 검출 및 정정 장치의 다른 실시예를 예시하는 블록도이다.
[0013] 도 3은 도 2의 에러 정정 및 디코딩 장치의 실시예에서 타이밍 제어기로 지연 라인의 실시예를 예시한 블록도이다.
[0014] 도 4는 플립-플롭들, 타이밍 제어기, 별개의 SEC(single error correction) 및 DEC(double error correction) 에러 로케이션 디코더들, 멀티플렉서 및 플래그 생성기를 갖는 에러 검출 및 정정 장치의 다른 실시예를 예시하는 블록도이다.
[0015] 도 5는 에러 검출 및 정정 기능들을 수행하도록 구성된 로직을 갖는 에러 검출 및 정정 장치의 실시예를 예시한 블록도이다.
[0016] 도 6은 에러 검출 및 정정 장치가 구현될 수 있는 메모리 디바이스의 실시예를 예시하는 블록도이다.
[0017] 본 개시내용의 양상들은 특정 실시예들에 관련된 다음의 설명 및 관련 도면들에 설명된다. 대안적인 실시예들은 본 개시내용의 범위에서 벗어나지 않고서 고안될 수 있다. 부가적으로, 본 개시내용의 관련 상세들을 모호하게 하지 않기 위해, 잘 알려진 엘리먼트들은 상세하게 설명되지 않거나 생략될 것이다.
[0018] "예시적인"이라는 단어는 본원에서 "예, 사례 또는 예시로서 기능하는 것"을 의미하도록 사용된다. 본원에서 “예시적인” 것으로 설명되는 임의의 실시예는 반드시 다른 실시예들에 비해 선호되거나 유리한 것으로 해석될 필요는 없다. 마찬가지로, "실시예들"이란 용어는 모든 실시예들이 논의된 특징, 이점 또는 동작 모드를 포함하도록 요구하는 것은 아니다.
[0019] 본원에 사용되는 용어는 단지 특정 실시예들을 설명하기 위한 것이며, 실시예들을 제한하는 것으로 의도되지 않는다. 본원에서 사용되는 바와 같이, 단수 형태들은, 컨텍스트가 달리 명확히 표시하지 않으면, 복수 형태들을 또한 포함하도록 의도된다. "포함한(comprises)", "포함하는(comprising)", "포함하다(includes)" 또는 "포함하는(including)"이라는 용어들은 본원에서 이용될 때, 서술된 특징들, 정수들, 단계들, 동작들, 엘리먼트들 및/또는 컴포넌트들의 존재를 특정하지만, 하나 또는 그 초과의 다른 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 컴포넌트들 또는 그들의 그룹들의 존재 또는 추가를 배제하지 않는다는 것이 추가로 이해될 것이다. 또한, "또는"이라는 단어가 불 연산자(Boolean operator) "OR"와 동일한 의미를 갖고, 즉, "또는"이 "어느 하나" 및 "둘 모두"의 가능성들을 포함하고, 달리 명백히 언급되지 않는다면, "배타적 or(XOR)"로 제한되지 않는다는 것이 이해된다. 2 개의 인접한 단어들 사이의 심볼 "/"이, 달리 명백히 언급되지 않는다면, "또는"과 동일한 의미를 갖는다는 것이 또한 이해된다. 또한, "에 연결된", "에 커플링된" 또는 "와 통신하는"과 같은 구절들은, 달리 명백히 언급되지 않는다면, 직접적인 연결들로 제한되지 않는다.
[0020] 또한, 많은 실시예들은, 예컨대, 컴퓨팅 디바이스의 엘리먼트들에 의해 수행될 동작들의 시퀀스들에 관련하여 설명된다. 본원에 설명된 다양한 동작들이 특정 회로들, 예컨대, CPU들(central processing units), GPU들(graphic processing units), DSP들(digital signal processors), ASIC들(application specific integrated circuits), FPGA들(field programmable gate arrays), 또는 다양한 다른 타입들의 범용 또는 특수 목적 프로세서들 또는 회로들에 의해, 하나 또는 그 초과의 프로세서들에 의해 실행되는 프로그램 명령들에 의해 또는 둘 모두의 조합에 의해 수행될 수 있다는 것이 인식될 것이다. 부가적으로, 본원에 설명된 이러한 시퀀스의 동작들은, 실행 시에, 연관된 프로세서로 하여금 본원에 설명된 기능을 수행하게 할 대응하는 세트의 컴퓨터 명령들이 그 안에 저장된 임의의 형태의 컴퓨터 판독 가능 저장 매체 내에서 전체적으로 구현되는 것으로 고려될 수 있다. 따라서, 본 개시내용의 다양한 양상들은 다수의 상이한 형태들로 구현될 수 있고, 이들 모두는 청구된 청구 대상의 범위 내에 있는 것으로 고려된다. 또한, 본원에 설명된 실시예들 각각에 대해, 대응하는 형태의 임의의 그러한 실시예들은, 예컨대, 설명된 동작을 수행"하도록 구성된 로직"으로서 본원에 설명될 수 있다.
[0021] 도 1은 데이터 입력(databit_in)(102), 에러 체크 입력(checkbit_in)(104) 및 정정된 데이터 출력(databit_out)(106)을 갖는 에러 검출 및 정정 장치(100)의 실시예를 예시하는 블록도이다. 이러한 에러 정정 코드 디코더는 데이터 에러를 정정하기 위한 다양한 디지털 장치 또는 디바이스들, 예컨대, 메모리 디바이스들, 이를테면, STT-MRAM들(spin-transfer torque magnetic random access memories)에서 구현될 수 있다. 본 개시내용의 실시예들에 따른 에러 정정 코드 디코더가 또한 당업자들에 의해 다양한 다른 장치 또는 디바이스들에서 사용될 수 있다는 것이 인식될 것이다. 도 1을 참조하면, 에러 검출 및 정정 장치(100)는, 데이터 입력(databit_in)(102) 및 에러 체크 입력(checkbit_in)(104)을 수신하도록 구성된 신드롬 생성기(108)를 포함한다. 실시예에서, 신드롬 생성기(108)는 데이터 입력(databit_in)(102) 및 에러 체크 입력(checkbit_in)(104)에 대한 응답으로 제 1 벡터 신호 출력(S0), 제 2 벡터 신호 출력(S1) 및 제 3 벡터 신호 출력(S3)을 생성할 수 있다.
[0022] 실시예에서, 신드롬 생성기(108)는 패리티-체크 행렬 디코더를 포함하고, 에러 체크 입력(checkbit_in)(104)은 패리티-체크 비트 입력을 포함한다. 이러한 신드롬 생성기(108)는 많은 공지된 에러 정정 코드들(ECC들) 중 하나를 사용함으로써 구성될 수 있다. 실시예에서, 패리티-체크 행렬 디코더는 XOR-트리 기반의 패리티-체크 행렬 디코더를 포함할 수 있다. 예컨대, 신드롬 생성기(108)는 ECC, 이를테면, DEC-TED(double error correcting-triple error detecting) BCH(Bose-Chaudhuri-Hocquenghem) 코드를 구현함으로써 구성될 수 있고, 여기서 α는 GF(Galois field)(2n)에서 원시 엘리먼트(primitive element)이다.
[0023]
Figure pct00001
[0024] 상기 패리티-체크 행렬에 의해 생성된 신드롬은 3 개의 부분들로 분할될 수 있다.
[0025]
Figure pct00002
[0026] 대안적인 실시예들에서, 다른 타입들의 신드롬 생성기들이 또한 에러 검출 및 정정을 위해 구현될 수 있다.
[0027] 도 1에 예시된 실시예에서, 에러 검출 및 정정 장치(100)는 또한, 신드롬 생성기(108)로부터 제 1 벡터 신호 출력(S0), 제 2 벡터 신호 출력(S1) 및 제 3 벡터 신호 출력(S3)을 수신하고, 신드롬 생성기(108)로부터의 3 개의 벡터 신호들(S0, S1 및 S3) 중 적어도 2 개에 기반하여 단일 에러 정정 출력(SEC_output) 및 이중 에러 정정 출력(DEC_output)을 생성하도록 구성된 제어기(110)를 포함한다.
[0028] 실시예에서, 제어기(110)는 단일 에러 정정 출력(SEC_output) 및 더블 에러 정정 출력(DEC_output)을 생성하도록 구현되고, 이들은 단일 에러 정정(SEC) 에러 로케이션 디코더(118) 및 더블 에러 정정(DEC) 에러 로케이션 디코더(120)의 입력들로 각각 송신된다. SEC 에러 로케이션 디코더(118) 및 DEC 에러 로케이션 디코더(120)는 아래에 더 상세히 설명될 것이다. 실시예에서, SEC 에러 로케이션 디코더(118) 및 DEC 에러 로케이션 디코더(120) 둘 모두가 동일한 시간에서 능동적으로 동작하지 않도록 함으로써, 에러 검출 및 정정 장치(100)의 지연 및 동적 전력 소비를 감소시키는 것이 바람직하다. 예컨대, 데이터 입력의 에러가 단일 에러이면, DEC 에러 로케이션 디코더(120)는 활성화되지 않아야 한다. 마찬가지로, 에러가 이중 에러이면, SEC 에러 로케이션 디코더(118)는 활성이 되지 않아야 한다.
[0029] 실시예에서, 제어기(110)의 단일 에러 정정 출력(SEC_output) 및 이중 에러 정정 출력(DEC_output)은 상기 조건들을 만족시키도록 설정된다. 예컨대, 신드롬 생성기(108)로부터의 제 1 벡터 신호 출력(S0)이 데이터 입력이 단일 에러를 갖는 것으로 가정되는 것을 의미하는 1이면, 제어기(110)의 이중 에러 정정 출력(DEC_output)은 제로 벡터이다. 이와 대조적으로, 신드롬 생성기(108)로부터의 제 1 벡터 신호 출력(S0)이 데이터 입력이 이중 에러를 갖는 것으로 가정되는 것을 의미하는 제로이면, 제어기의 단일 에러 정정 출력(SEC_output)은 제로 벡터이다.
[0030] 실시예에서, 제어기(110)의 출력들(SEC_output 및 DEC_output)은 신드롬 생성기(108)로부터의 제 1 벡터 신호 출력(S0), 제 2 벡터 신호 출력(S1) 및 제 3 벡터 신호 출력(S3)에 기반하여 다음 수학식들에 의해 생성될 수 있다.
[0031]
Figure pct00003
[0032]
Figure pct00004
[0033] 여기서 "~"는 로지컬 보수(logical complement) 또는 "NOT"을 나타낸다. 삼중 에러 경우에 대해 S0은 1이고, 이는 단일 에러 경우와 동일하다.
[0034] 도 1에 예시된 실시예에서, 에러 검출 및 정정 장치(100)는 추가로, 신드롬 생성기(108)로부터 제 1 벡터 신호 출력(S0), 제 2 벡터 신호 출력(S1) 및 제 3 벡터 신호 출력(S3)을 수신하도록 커플링된 입력들, 및 신드롬 생성기(108)로부터 수신된 3 개의 벡터 신호들(S0, S1 및 S3)에 기반하여 이중 에러 검출 출력(AL_DED)(114)을 생성하는 출력을 갖는 이중 에러 검출기(112)를 포함한다.
[0035] 실시예에서, 이중 에러 검출기(112)로부터의 이중 에러 검출 출력(AL_DED)(114)은 신드롬 생성기(108)로부터의 제 2 벡터 신호 출력(S1) 및 제 3 벡터 신호 출력(S3)에 기반하여 다음 수학식에 의해 생성될 수 있다.
[0036]
Figure pct00005
[0037] 추가의 실시예에서, 플래그 생성기(116)가 도 1에 예시된 에러 검출 및 정정 장치(100)에 제공된다. 실시예에서, 플래그 생성기(116)는 제로 에러로부터 삼중 에러까지의 에러들의 수를 결정하기 위해 제공된다. 실시예에서, 플래그 생성기(116)는 에러 플래그(error_flag)(122)라 불리는 2-비트 변수를 생성하는데, 이는 제로 에러, 단일 에러, 이중 에러 또는 삼중 에러의 2-비트 표시자로서 에러 검출 및 정정 장치(100)로부터 출력된다.
[0038] 실시예에서, 에러 플래그(error_flag)(122)는 이중 에러 검출기(112)로부터의 이중 에러 검출 출력(AL_DED)(114) 및 신드롬 생성기(108)로부터의 제 1 벡터 신호 출력(S0)에 기반하여 결정될 수 있다.
Figure pct00006
[0039] 위의 표에 따라, error_flag와 S0 간의 관계는 다음과 같이 표현될 수 있다.
[0040] error_flag의 MSB(Most significant bit) = AL_DED
[0041] error_flag의 LSB(Least significant bit) = S0
[0042] 위에 설명된 바와 같이, SEC 에러 로케이션 디코더(118)는 단일 에러를 로케이팅하기 위해 제공되고, DEC 에러 로케이션 디코더(120)는 이중 에러를 로케이팅하기 위해 제공된다. 실시예에서, SEC 에러 로케이션 디코더(118)는 제어기(110)로부터의 단일 에러 정정 출력(SEC_output)을 수신하도록 커플링되고, 제어기(110)로부터의 SEC_output에 기반하여 단일 에러 로케이션 디코더 출력(e_sec)(124)을 출력한다. 실시예에서, DEC 에러 로케이션 디코더(120)는 제어기(110)로부터의 이중 에러 정정 출력(DEC_output)을 수신하도록 커플링되고, 제어기(110)로부터의 DEC_output에 기반하여 이중 에러 로케이션 디코더 출력(e_dec)(126)을 출력한다.
[0043] 실시예에서, 멀티플렉서 출력(130)을 생성하기 위해 멀티플렉서(128)가 에러 검출 및 정정 장치(100)에 제공된다. 도 1에 예시된 실시예에서, 멀티플렉서(128)는 단일 에러 로케이션 디코더 출력(e_sec)(124)에 커플링된 제 1 입력, 이중 에러 로케이션 디코더 출력(e_dec)(126)에 커플링된 제 2 입력, 및 제어 입력(132)에 기반하여 단일 에러 로케이션 디코더 출력(e_sec) 또는 이중 에러 로케이션 디코더 출력(e_dec) 중 어느 하나를 출력하기 위한 멀티플렉서 출력(130)을 포함하는 2:1 멀티플렉서를 포함한다.
[0044] 도 1에 예시된 실시예에서, 멀티플렉서(128)에 대한 제어 입력(132)은, 이중 에러 검출기(112)로부터 이중 에러 검출 출력(AL_DED)의 로지컬 보수(logical complement)를 수신하는 입력이다. 실시예에서, 멀티플렉서(128)의 제어 입력(132)에서(~AL_DED) 인 제어 신호는 다음의 관계들에 따라 멀티플렉서(128)의 출력(130)을 결정한다.
제어 신호(~AL_ DED ) 멀티플렉서의 출력
0 DEC 에러 로케이션 디코더 e_dec의 출력
1 SEC 에러 로케이션 디코더 e_sec의 출력
[0045] 이러한 실시예에서, 데이터 입력의 최대 이중 에러까지의 비트 에러들이 정정될 수 있다. 삼중 에러들이 이러한 실시예에서 정정 가능하지 않을 수 있지만, 플래그 생성기(116)에 의해 생성된 에러 플래그(122)는 삼중 에러의 존재를 표시할 수 있다. 예컨대, 위의 표 1에 관련하여 설명된 실시예에서, 11인 2-비트 에러 플래그는 삼중 에러의 존재를 나타낸다.
[0046] 위에 설명된 실시예에서, 에러들의 수, 신드롬 생성기(108)로부터의 제 1 벡터 신호 출력(S0), SEC 에러 로케이션 디코더(118)로부터의 출력(e_sec)(124), DEC 에러 로케이션 디코더(120)로부터의 출력(e_dec)(126), AL_DED(~AL_DED)의 로지컬 보수 및 멀티플렉서(128)의 출력(e)(130) 간의 관계들이 다음 표에 요약된다.
에러들의 수 S 0 e_sec e_dec ~AL_ DED 멀티플렉서 출력
에러 없음 0 제로 벡터 제로 벡터 1 e_sec = 제로 벡터
단일 에러 1 단일 에러에 대한 정확한 에러 벡터 제로 벡터 1 e_sec = 단일 에러에 대한 정확한 에러 벡터
이중 에러 0 제로 벡터 이중 에러에 대한 정확한 에러 벡터 0 e_dec = 이중 에러에 대한 정확한 에러 벡터
삼중 에러 1 삼중 에러에 대한 부정확한 에러 제로 벡터 0 e_dec = 제로 벡터
[0047] 추가의 실시예에서, 입력 데이터(databit_in)를 수신하도록 커플링된 데이터 입력, 멀티플렉서(128)의 에러 벡터 출력(e)(130)에 커플링된 에러 벡터 입력, 및 정정된 데이터(databit_out)를 출력하는 출력(106)을 갖는 에러 정정기(134)가 제공된다.
[0048] 도 2는, 플립-플롭 및 타이밍 제어기를 포함하지만 멀티플렉서를 갖는 별개의 SEC 및 DEC 에러 로케이션 디코더들을 포함하지 않는 에러 검출 및 정정 장치(200)의 다른 실시예를 예시하는 블록도이다. 도 2에서, 에러 검출 및 정정 장치(200)는 데이터 입력(databit_in)(202), 에러 체크 입력(checkbit_in)(204), 제어 입력(206), 정정된 데이터 출력(databit_out)(208), 단일 에러 검출 출력(AL_SED)(210) 및 삼중 에러 검출 출력(AL_TED)(212)을 갖는다. 도 2에 예시된 실시예에서, 에러 검출 및 정정 장치(200)는 신드롬 생성기(214)를 포함한다. 실시예에서, 도 2의 신드롬 생성기(214)는 도 1에 도시되고 위에서 설명된 신드롬 생성기(108)와 유사할 수 있다. 예컨대, 도 2의 신드롬 생성기(214)는 도 1에 도시된 실시예에 관련하여 위에서 설명된 바와 같이, BCH 코드를 사용하는 XOR-트리 기반 패리티-체크 행렬 디코더와 같은 패리티-체크 행렬 디코더를 포함할 수 있다.
[0049] 도 2에 예시된 실시예에서, 타이밍 제어기(216)가 제공된다. 실시예에서, 타이밍 제어기(216)는 지연 라인을 포함하고, 지연 라인의 실시예는 도 3을 참조하여 아래에 더 상세히 설명될 것이다. 도 2를 참조하면, 타이밍 제어기(216)는 제어 입력(206)에 커플링되고, 착신 신호가 제어 출력(218)에서 타이밍 제어기(216)를 나가기 전에, 주어진 양의 시간만큼 제어 입력(206)으로부터의 입력 신호를 지연시킨다. 실시예에서, 에러 검출 및 정정 장치(200)는 신드롬 생성기(214)의 출력에 커플링된 데이터 입력(222), 타이밍 제어기(216)의 제어 출력(218)에 커플링된 토글 입력(224), 및 신드롬 제어기(214)로부터 수신된 신드롬에 기반한 전달되는 신드롬 출력(226) 및 타이밍 제어기(216)의 제어 출력(218)을 출력하는 출력을 갖는 플립-플롭(220)을 포함한다.
[0050] 실시예에서, 에러 검출 및 정정 장치(200)에는 에러 로케이션 디코더(228)가 제공된다. 실시예에서, 에러 로케이션 디코더(228)는 플립-플롭(220)으로부터 전달된 신드롬 출력(226)을 수신하도록 커플링된 입력, 에러 로케이션 디코더 출력(230), 단일 에러 디코더 출력(SED)(232) 및 이중 에러 디코더 출력(DED)(234)을 갖는다. 도 2에 도시된 실시예에서, 에러 검출 및 정정 장치(200)에는 에러 정정기(236)가 제공된다. 실시예에서, 에러 정정기(236)는 데이터 입력(databit_in)(202)에 커플링된 제 1 입력, 에러 로케이션 디코더 출력(230)에 커플링된 제 2 입력, 및 에러 검출 및 정정 장치(200)의 정정된 데이터 출력(databit_out)(208)을 생성하는 출력을 갖는다.
[0051] 실시예에서, 에러 검출 및 정정 장치(200)는 또한, 단일 에러 검출 출력(AL_SED)(210) 및 삼중 에러 검출 출력(AL_TED)(212)을 생성하는 에러 검출기(238)를 포함한다. 실시예에서, 에러 검출기(238)는 플립-플롭(220)으로부터 전달된 신드롬 출력(226)을 수신하도록 커플링된 제 1 입력, 단일 에러 디코더 출력(SED)(232)을 수신하도록 커플링된 제 2 입력, 및 에러 로케이션 디코더(228)로부터 이중 에러 디코더 출력(DED)(234)을 수신도록 커플링된 제 3 입력을 갖는다.
[0052] 실시예에서, 에러 검출기(238)는 전달된 신드롬 출력(226)을 수신하도록 커플링된 입력 및 단일 에러 검출 출력(AL_SED)(210)을 출력하도록 구성된 출력을 갖는 OR 게이트(240)를 포함한다. 추가의 실시예에서, 에러 검출기(238)는 또한 OR 게이트(240)의 출력에 결합된 제 1 입력, 단일 에러 디코더 출력(SED)(232)의 보수에 커플링된 제 2 입력, 및 이중 에러 디코더 출력(DED)(234)의 보수에 커플링된 제 3 출력을 갖는 AND 게이트(242)를 포함한다. 도 2에 도시된 실시예에서, AND 게이트(242)의 출력은 삼중 에러 검출 출력(AL_TED)(212)이다.
[0053] 도 3은, 도 2의 에러 검출 및 정정 장치의 실시예에서 플립-플롭(220)에 대한 제어 신호를 생성하기 위한 지연 라인(300)을 포함하는 타이밍 제어기(216)의 실시예를 예시하는 블록도이다. 실시예에서, 제어 입력(206)은 포지티브 리딩 에지(leading edge)를 갖는 클록 신호(302)를 수신하고, 클록 신호(302)의 포지티브 리딩 에지는 클록 신호(302)가 지연 라인(300)의 출력(218)을 나갈 때 주어진 양의 시간만큼 지연된다.
[0054] 실시예에서, 복수의 로직 게이트들 또는 버퍼들이 클록 신호(302)의 전파를 지연시키기 위해 지연 라인(300)에 제공될 수 있다. 도 3에 도시된 실시예에서, 지연 라인(300)은, 입력(206)으로부터 지연 라인(300)의 출력(218)으로의 클록 신호(302)의 전파를 지연시키기 위한 AND 게이트들(304a, 304b, 304c 및 304d)과 같은 하나 또는 그 초과의 AND 게이트들, NAND 게이트(306)와 같은 하나 또는 그 초과의 NAND 게이트들, 및 버퍼들(308a, 308b 및 308c)과 같은 하나 또는 그 초과의 버퍼들을 포함한다. 다른 타입들의 로직 게이트들, 버퍼들 또는 지연 라인들은 또한 본 개시내용의 범위 내에서 구현될 수 있다. 또한, 도 3이 D 플립-플롭과 같은 포지티브 에지 트리거 플립-플롭(220)을 예시하지만, 다른 타입들의 플립-플롭들이 다른 실시예들에서 구현될 수 있다. 예컨대, 포지티브 에지 트리거링 대신에, 네거티브 에지 트리거링과 같은 다른 타입들의 트리거링이 구현될 수 있다.
[0055] 실시예에서, 도 3의 지연 라인(300) 및 플립-플롭(220)은 도 2에 도시된 바와 같이, 에러 로케이션 디코더(228)에서의 무효 트랜지션들의 확률을 감소시키도록 구현된다. 설정된 양의 시간 지연이 지연 라인(300)에 의해 제공되는 경우에, 신드롬이 정착된 후에, 클록 신호(302)는 플립-플롭(220)에 도달하고, 신드롬이 무효 트랜지션들을 피하기 위해 정착된 후에만 전달되는 신드롬으로서 신드롬이 플립-플롭(220)에 의해 에러 로케이션 디코더(228)로 전달된다. 실시예에서, 지연 라인(300)은 신드롬 생성기(214)에 의해 생성된 신드롬의 최악의 지연을 모방하기 위해 제공된다. 실시예에서, 지연 라인(300)은 데이터 및 에러 체크(databit_in) 및(checkbit_in) 입력들(202 및 204)로부터 신드롬 생성기(214)의 출력으로의 회로의 임계 경로를 모방함으로써 생성된다. 이러한 임계 경로의 최악의 경우 시간 지연은 신드롬들 정착시키기 위해 필요로 되는 최대 시간(TI-S)이다.
[0056] 실시예에서, 적절한 플립-플롭 동작을 보장하기 위해, 지연 라인(300)은, 에러 검출 및 정정 장치(200)의 전체 지연이 약간 증가될지라도, 지연 라인(300)에 의해 생성된 총 시간 지연이 신드롬들을 정착시키기 위해 필요로 되는 최대 시간(TI -S)보다 약간 더 크도록, 설계될 수 있다. 예컨대, 도 3에 도시된 실시예에서, AND 게이트들(304a, 304b, 304c 및 304d) 및 NAND 게이트(306)와 같은 로직 게이트들의 수는 신드롬 입력들로부터 신드롬 출력으로의 임계 경로 상에서 신드롬들을 정착시키기 위해 필요로 되는 최대 시간(TI -S)을 모방하도록 구현될 수 있고, 버퍼들(308a, 308b 및 308c)과 같은 버퍼들은 부가적인 시간 지연을 생성하도록 부가될 수 있다.
[0057] 도 4는 플립-플롭들, 타이밍 제어기, 별개의 SEC(single error correction) 및 DEC(double error correction) 에러 로케이션 디코더들, 멀티플렉서 및 플래그 생성기를 갖는 에러 검출 및 정정 장치의 다른 실시예를 예시하는 블록도이다. 도 4에 예시된 실시예에서, 에러 검출 및 정정 장치(400)는 데이터 입력(databit_in)(402), 에러 체크 입력(checkbit_in)(404) 및 정정된 데이터 출력(databit_out)(406)을 갖는다. 이러한 실시예에서, 에러 검출 및 정정 장치(400)는, 데이터 입력(databit_in)(402) 및 에러 체크 입력(checkbit_in)(404)을 수신하도록 구성된 신드롬 생성기(408)를 포함한다.
[0058] 실시예에서, 신드롬 생성기(408)는, 도 1에 도시되고 위에 설명된 실시예에서 신드롬 생성기(108)와 유사한 방식으로, 데이터 입력(databit_in)(402) 및 에러 체크 입력(checkbit_in)(404)에 대한 응답으로 제 1 벡터 신호 출력(S0), 제 2 벡터 신호 출력(S1) 및 제 3 벡터 신호 출력(S3)을 생성할 수 있다. 실시예에서, 신드롬 생성기(408)는 패리티-체크 행렬 디코더를 포함하고, 에러 체크 입력(checkbit_in)(404)은 패리티-체크 비트 입력을 포함한다. 실시예에서, 패리티-체크 행렬 디코더는 XOR-트리 기반의 패리티-체크 행렬 디코더를 포함할 수 있다. 예컨대, 신드롬 생성기(408)는 BCH 코드와 같은 임의의 공지된 ECC를 구현함으로써 구성될 수 있다.
[0059] 도 4에 예시된 실시예에서, 에러 검출 및 정정 장치(400)는 또한, 신드롬 생성기(408)로부터 제 1 벡터 신호 출력(S0), 제 2 벡터 신호 출력(S1) 및 제 3 벡터 신호 출력(S3)을 수신하고, 신드롬 생성기(108)로부터의 3 개의 벡터 신호들(S0, S1 및 S3)에 기반하여 단일 에러 정정 출력(SEC_output) 및 이중 에러 정정 출력(DEC_output)을 생성하도록 구성된 제어기(410)를 포함한다. 실시예에서, SEC_output 및 DEC_output은 도 1에 관련하여 위에 설명된 방식과 동일한 방식으로 생성될 수 있다.
[0060] 도 4에 예시된 실시예에서, 에러 검출 및 정정 장치(400)는 추가로, 신드롬 생성기(108)로부터 제 1 벡터 신호 출력(S0), 제 2 벡터 신호 출력(S1) 및 제 3 벡터 신호 출력(S3)을 수신하도록 커플링된 입력들, 및 신드롬 생성기(408)로부터 수신된 3 개의 벡터 신호들(S0, S1 및 S3) 중 적어도 2 개에 기반하여 이중 에러 검출 출력(AL_DED)(414)을 생성하는 출력을 갖는 이중 에러 검출기(412)를 포함한다.
[0061] 실시예에서, 이중 에러 검출기(412)로부터의 이중 에러 검출 출력(AL_DED)(414)은 신드롬 생성기(108)로부터 수신된 제 2 벡터 신호 출력(S1) 및 제 3 벡터 신호 출력(S3)에 기반하여, 도 1에 관련하여 위에서 설명된 동일한 수학식에 의해 생성될 수 있다.
[0062]
Figure pct00007
[0063] 실시예에서, 플래그 생성기(416)는, 도 1에 관련하여 위에서 설명된 실시예와 유사한 방식으로, 도 4에 예시된 에러 검출 및 정정 장치(400)에 제공된다. 도 4를 참조하면, 플래그 생성기(416)는 2-비트 에러 플래그(error_flag)(422)를 생성하는데, 이는 제로 에러, 단일 에러, 이중 에러 또는 삼중 에러의 2-비트 표시자로서 에러 검출 및 정정 장치(400)로부터 출력된다. 실시예에서, 2-비트 에러 플래그(error_flag)(422)는 도 1에 관련하여 위에서 설명된 표 1에 따라 제로, 단일, 이중 또는 삼중 에러들의 존재를 표시하도록 생성될 수 있다.
[0064] 도 4를 참조하면, 클록 신호를 수신하는 제어 입력(426) 및 시간-지연된 클록 출력을 생성하는 출력(428)을 갖는 타이밍 제어기(424)가 제공된다. 실시예에서, 타이밍 제어기(424)는 도 3에서 예시되고 위에 설명된 지연 라인(300)과 같은 지연 라인을 포함할 수 있다. 예컨대, 그러한 지연 라인은, 도 3에 도시된 바와 같이, AND 또는 NAND 게이트들과 같은 하나 또는 그 초과의 로직 게이트들, 또는 하나 또는 그 초과의 버퍼들, 또는 로직 게이트들 및 버퍼들의 조합을 포함할 수 있다. 도 4를 참조하면, 타이밍 제어기(424)의 출력(428)으로부터의 시간-지연된 클록 출력은 2 개의 플립-플롭들(430 및 432)에 대한 토글 입력들로서 제공된다.
[0065] 도 4에 도시된 실시예에서, 제어기(410)로부터 단일 에러 정정 출력(SEC_output)을 수신하기 위한 데이터 입력(434) 및 타이밍 제어기(424)로부터의 시간-지연된 클록 출력을 수신하기 위한 토글 입력(436)을 포함하는 제 1 플립-플롭(430)이 제공된다. 실시예에서, 제 1 플립-플롭(430)은 포지티브 에지 트리거링을 갖는 D 플립-플롭을 포함한다. 마찬가지로, 제어기(410)로부터 이중 에러 정정 출력(DEC_output)을 수신하기 위한 데이터 입력(438) 및 타이밍 컨트롤러(424)로부터 시간-지연된 클록 출력을 수신하기 위한 토글 입력(440)을 포함하는 제 2 플립-플롭(432)이 제공된다. 추가의 실시예에서, 제 2 플립-플롭(432)은 또한 포지티브 에지 트리거링을 갖는 D 플립-플롭을 포함할 수 있다. 대안적인 실시예들에서, 다른 타입들의 플립-플롭들이 구현될 수 있고, 플립-플롭들의 트리거링은 클록 신호들에 의한 포지티브 에지 트리거링 일 필요는 없다.
[0066] 도 4에 도시된 실시예에서, 제 1 플립-플롭(430)은 전달된 SEC_output(442)을 단일 에러 정(SEC) 에러 로케이션 디코더(444)로 출력하는 반면에, 제 2 플립-플롭(432)은 전달된 DEC_output(446)을 이중 에러 정정(DEC) 에러 로케이션 디코더(448)로 출력한다. SEC_output 및 DEC_output은 도 1에 관련하여 위에 설명된 방식과 동일한 방식으로 제어기(410)에 의해 생성될 수 있다. 신드롬이 무효 트랜지션들을 회피하기 위해 정착된 후에만, SEC_output 및 DEC_output이 SEC 에러 로케이션 디코더(444) 및 DEC 에러 로케이션 디코더(448)에 각각 전달되는 것을 보장하기 위한 제 1 및 제 2 플립-플롭 들(430 및 432)이 도 4에 도시된 실시예에 제공된다.
[0067] 실시예에서, 도 4의 SEC 에러 로케이션 디코더(444) 및 DEC 에러 로케이션 디코더(448)는, 도 1에 관련하여 위에 설명된 방식과 동일한 방식으로, 단일 에러 로케이션 디코더 출력(e_sec)(450) 및 이중 에러 로케이션 디코더 출력(e_dec)(452)을 각각 생성한다. 도 4를 참조하면, 멀티플렉서(454)는 단일 에러 로케이션 디코더 출력(e_sec)(450)을 수신하도록 커플링된 제 1 입력, 이중 에러 로케이션 디코더 출력(e_dec)(452)을 수신하도록 커플링된 제 2 입력 및 제어 입력(456)을 갖는다. 실시예에서, 제어 입력(456)은 도 1에 관련하여 위에 설명된 방식과 동일한 방식으로 AL_DED의 로지컬 보수를 수신하도록 커플링된다. 실시예에서, 멀티플렉서(454)의 출력(e)(458)은, 예컨대, 표 2 및 3에 설명된 관계들에 따라, 도 1에 관련하여 위에 설명된 방식과 동일한 방식으로 선택된다.
[0068] 추가의 실시예에서, 도 4의 에러 검출 및 정정 장치(400)에는 에러 정정기(460)가 제공된다. 실시예에서, 에러 정정기는 입력 데이터(databit_in)를 수신하도록 커플링된 데이터 입력, 멀티플렉서(454)의 에러 벡터 출력(e)(458)에 커플링된 에러 벡터 입력, 및 정정된 데이터(databit_out)를 출력하는 출력(406)을 갖는다.
[0069] 도 5는 에러 검출 및 정정 기능들을 수행하도록 구성된 로직을 갖는 에러 검출 및 정정 장치의 실시예를 예시한 간략화된 블록도이다. 도 5에 예시된 실시예에서, 에러 검출 및 정정 장치(500)는 블록(505)에서 단일 에러들을 로케이팅하도록 구성된 로직, 이중 에러들(510)을 로케이팅하도록 구성된 로직 및 정정된 출력 데이터(515)를 생성하도록 구성된 로직을 포함한다. 블록들(505, 510 및 515)에서 예시된 바와 같은, 단일 에러를 로케이팅하도록 구성된 로직, 이중 에러들을 로케이팅하도록 구성된 로직 및 정정된 출력 데이터를 생성하도록 구성된 로직 각각은 도 1-4에 관련하여 위에 설명된 에러 검출 및 정정 장치의 다양한 실시예들에서 하나 또는 그 초과의 엘리먼트들을 포함할 수 있다.
[0070] 도 6은 에러 검출 및 정정 장치가 구현될 수 있는 메모리 디바이스의 실시예를 예시하는 블록도이다. 도 6에 예시된 실시예에서, 메모리(600)는 메모리 셀들(605) 및 에러 검출 및 정정 장치(610)를 포함한다. 에러 검출 및 정정 장치(610)는 메모리 셀들(605)과 동일한 칩 상에 집적될 수 있거나 또는 별개의 칩 상에 제공될 수 있다. 도 6에 도시된 바와 같이, 메모리 셀로부터의 로우(raw) 데이터는 에러 검출 및 정정을 위해 화살표(615)를 따라 에러 검출 및 정정 장치(610)로 송신될 수 있고, 에러 검출 및 정정 장치(610)로부터의 정정된 데이터는 화살표(620)를 따라 다시 메모리 셀들(605)로 송신될 수 있다. 에러 검출 및 정정 장치(610)는 도 1-4에 관련하여 위에 설명된 다양한 실시예들 중 임의의 것을 포함할 수 있다.
[0071] 당업자들은, 정보 및 신호들이 다양한 상이한 기술들 및 기법들을 이용하여 표현될 수 있다는 것을 인식할 것이다. 예컨대, 상기 설명 전반에 걸쳐 참조될 수 있는 데이터, 명령들, 커맨드들, 정보, 신호들, 비트들, 심볼들 및 칩들은 전압들, 전류들, 전자기파들, 자기 필드들 또는 자기 입자들, 광 필드들 또는 광 입자들, 또는 이들의 임의의 결합으로 표현될 수 있다.
[0072] 더욱이, 당업자들은 본원에 개시된 실시예들에 관련하여 설명되는 다양한 예시적인 로지컬 블록들, 모듈들, 회로들, 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이 둘의 결합들로서 구현될 수 있음을 인식할 것이다. 하드웨어와 소프트웨어의 이러한 상호교환가능성을 명확히 예시하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들이 그들의 기능성 관점에서 일반적으로 상술되었다. 이러한 기능성이 하드웨어로서 구현되는지 또는 소프트웨어로서 구현되는지는 전체 장치에 부과되는 설계 제약들 및 특정 애플리케이션에 의존한다. 당업자들은 설명된 기능을 각각의 특정 애플리케이션에 대해 다양한 방식들로 구현할 수 있지만, 그러한 구현 결정들이 본 개시내용의 범위를 벗어나게 하는 것으로서 해석되지는 않아야 한다.
[0073] 본원에 개시된 실시예들과 관련하여 설명된 방법들, 시퀀스들 또는 알고리즘들은 직접 하드웨어로, 프로세서에 의해 실행되는 소프트웨어 모듈로, 또는 이 둘의 결합으로 구현될 수 있다. 소프트웨어 모듈은, RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 착탈식 디스크, CD-ROM, 또는 당분야에 공지된 임의의 다른 형태의 저장 매체에 상주할 수 있다. 예시적인 저장 매체는, 프로세서가 저장 매체로부터 정보를 판독하고, 저장 매체에 정보를 기입할 수 있도록 프로세서에 커플링된다. 대안으로, 저장 매체는 프로세서에 통합될 수 있다.
[0074] 따라서, 본 개시내용의 실시예는 에러 검출 및 정정을 위한 방법을 포함하는 컴퓨터 판독 가능 매체들을 포함할 수 있다. 이에 따라, 본 개시내용은 예시된 예들로 제한되지 않고 본원에서 설명되는 기능성을 수행하기 위한 임의의 수단이 본 개시내용의 실시예들에 포함된다.
[0075] 위의 개시내용이 예시적인 실시예들을 도시하지만, 다양한 변화들 및 변형들이 첨부된 청구항들의 범위로부터 벗어남 없이 여기서 이루어질 수 있다는 것이 주의되어야 한다. 본원에 설명된 실시예들에 따른 방법 청구항들의 기능들, 단계들 또는 동작들은 달리 명백히 언급되지 않는다면 임의의 특정 순서로 수행될 필요는 없다. 또한, 엘리먼트들이 단수 형태로 설명 또는 청구될 수 있지만, 단수에 대한 제한이 명시적으로 언급되지 않는다면, 복수가 고려된다.

Claims (28)

  1. 에러 검출 및 정정 장치로서,
    입력 데이터에서 단일 에러들을 로케이팅(locate)하도록 구성된 단일 에러 로케이션 디코더;
    상기 입력 데이터에서 이중 에러들을 로케이팅하도록 구성된 이중 에러 로케이션 디코더;
    특정 데이터 입력이 단일 에러를 갖거나 또는 이중 에러를 갖는 것으로 예측되는지를 결정하고, 상기 에러 예측에 기반하여 상기 특정 데이터 입력에 대해 에러 로케이션을 수행하기 위해 상기 단일 에러 로케이션 디코더 및 상기 이중 에러 로케이션 디코더 중 하나만을 선택하고, 그리고 선택되지 않은 에러 로케이션 디코더를 비활성화하도록 구성된 제어기; 및
    정정된 출력 데이터를 생성하기 위해 상기 단일 에러 로케이션 디코더 및 상기 이중 에러 로케이션 디코더에 커플링된 에러 정정기(error corrector)를 포함하는,
    에러 검출 및 정정 장치.
  2. 제 1 항에 있어서,
    상기 장치는, 상기 입력 데이터를 수신하고, 상기 입력 데이터에 기반하여 제 1 벡터 신호 출력 및 하나 또는 그 초과의 부가적인 벡터 신호 출력들을 생성하도록 구성된 신드롬 생성기(syndrome generator)를 더 포함하고,
    상기 제어기는 추가로 상기 제 1 벡터 신호 출력 및 상기 하나 또는 그 초과의 부가적인 벡터 신호 출력들을 수신하고, 상기 제 1 벡터 신호 출력 및 상기 하나 또는 그 초과의 부가적인 벡터 신호 출력들에 기반하여 단일 에러 정정 출력 및 이중 에러 정정 출력을 생성하도록 구성되고,
    상기 단일 에러 로케이션 디코더는 상기 단일 에러 정정 출력을 수신하고, 단일 에러 로케이션 디코더 출력을 생성하도록 구성되고; 그리고
    상기 이중 에러 로케이션 디코더는 상기 이중 에러 정정 출력을 수신하고, 이중 에러 로케이션 디코더 출력을 출력하도록 구성되는,
    에러 검출 및 정정 장치.
  3. 제 2 항에 있어서,
    상기 신드롬 생성기는 패리티-체크 행렬 디코더(parity-check matrix decoder)를 포함하는,
    에러 검출 및 정정 장치.
  4. 제 3 항에 있어서,
    상기 패리티-체크 행렬 디코더는 XOR-트리 기반의 패리티-체크 행렬 디코더(XOR-tree based parity-check matrix decoder)를 포함하는,
    에러 검출 및 정정 장치.
  5. 제 2 항에 있어서,
    상기 신드롬 생성기로부터 상기 제 1 벡터 신호 출력 및 상기 하나 또는 그 초과의 부가적인 벡터 신호 출력을 수신하도록 구성된 이중 에러 검출기를 더 포함하는,
    에러 검출 및 정정 장치.
  6. 제 5 항에 있어서,
    상기 이중 에러 검출기는 상기 제 1 벡터 신호 출력 및 상기 하나 또는 그 초과의 부가적인 벡터 신호 출력들 중 2 개 또는 그 초과에 기반하여 이중 에러 검출 출력을 생성하도록 구성되는,
    에러 검출 및 정정 장치.
  7. 제 6 항에 있어서,
    상기 이중 에러 검출기로부터 상기 이중 에러 검출 출력 및 상기 신드롬 생성기로부터 상기 제 1 벡터 신호 출력을 수신하고, 상기 이중 에러 검출 출력 및 상기 제 1 벡터 신호 출력에 기반하여 에러 플래그(error flag)를 생성하도록 구성된 플래그 생성기를 더 포함하는,
    에러 검출 및 정정 장치.
  8. 제 6 항에 있어서,
    상기 장치는 멀티플렉서를 더 포함하고, 상기 멀티플렉서는:
    상기 단일 에러 로케이션 디코더 출력에 커플링된 제 1 입력; 및
    상기 이중 에러 로케이션 디코더 출력에 커플링된 제 2 입력을 포함하는,
    에러 검출 및 정정 장치.
  9. 제 8 항에 있어서,
    상기 멀티플렉서는 추가로:
    상기 이중 에러 검출 출력을 수신하도록 구성된 제어 입력; 및
    상기 제어 입력에 기반하여 상기 단일 에러 로케이션 디코더 출력 또는 상기 이중 에러 로케이션 디코더 출력 중 어느 하나를 출력하도록 구성된 출력을 포함하는,
    에러 검출 및 정정 장치.
  10. 제 9 항에 있어서,
    상기 장치는 에러 정정기를 더 포함하고, 상기 에러 정정기는:
    상기 입력 데이터를 수신하도록 구성된 입력;
    상기 멀티플렉서의 출력에 커플링된 에러 로케이션 디코더 입력; 및
    상기 입력 데이터 및 상기 에러 로케이션 디코더 입력에 기반하여, 정정된 출력 데이터를 출력하도록 구성된 출력을 포함하는,
    에러 검출 및 정정 장치.
  11. 제 2 항에 있어서,
    제어 입력 및 제어 출력을 갖는 타이밍 제어기;
    상기 단일 에러 정정 출력을 수신하도록 커플링된 입력, 상기 타이밍 제어기의 제어 출력에 커플링된 토글(toggle) 입력, 및 제 1 전달되는 신드롬 출력을 출력하도록 구성된 출력을 포함하는 제 1 플립-플롭(flip-flop); 및
    상기 이중 에러 정정 출력을 수신하도록 커플링된 입력, 상기 타이밍 제어기의 제어 출력에 커플링된 토글 입력, 및 제 2 전달되는 신드롬 출력을 출력하도록 구성된 출력을 포함하는 제 2 플립-플롭을 더 포함하는,
    에러 검출 및 정정 장치.
  12. 제 11 항에 있어서,
    상기 타이밍 제어기는 지연 유닛을 포함하는,
    에러 검출 및 정정 장치.
  13. 제 12 항에 있어서,
    상기 지연 유닛은 하나 또는 그 초과의 로직 게이트들을 포함하는,
    에러 검출 및 정정 장치.
  14. 제 13 항에 있어서,
    상기 지연 유닛은 추가로 하나 또는 그 초과의 버퍼들을 포함하는,
    에러 검출 및 정정 장치.
  15. 제 11 항에 있어서,
    상기 제 1 플립-플롭은 제 1 포지티브 에지 트리거 플립-플롭(positive edge triggered flip-flop)을 포함하고, 상기 제 2 플립-플롭은 제 2 포지티브 에지 트리거 플립-플롭을 포함하는,
    에러 검출 및 정정 장치.
  16. 에러 검출 및 정정 장치로서,
    입력 데이터에서 단일 에러들을 로케이팅하기 위한 단일 에러 로케이션 디코딩을 위한 수단;
    상기 입력 데이터에서 이중 에러들을 로케이팅하기 위한 이중 에러 로케이션 디코딩을 위한 수단;
    특정 데이터 입력이 단일 에러를 갖거나 또는 이중 에러를 갖는 것으로 예측되는지를 결정하기 위한 수단;
    상기 에러 예측에 기반하여 상기 특정 데이터 입력에 대한 에러 로케이션을 수행하기 위해, 상기 단일 에러 로케이션 디코더 및 상기 이중 에러 로케이션 디코더 중 하나만을 선택하기 위한 수단;
    선택되지 않은 에러 로케이션 디코더를 비활성화하기 위한 수단; 및
    상기 단일 에러 로케이션 디코딩을 위한 수단에 의해 로케이팅된 상기 단일 에러들 및 상기 이중 에러 로케이션 디코딩 수단에 의해 로케이팅된 상기 이중 에러들에 기반하여, 정정된 출력 데이터를 생성하기 위해 에러들을 정정하기 위한 수단을 포함하는,
    에러 검출 및 정정 장치.
  17. 제 16 항에 있어서,
    신드롬을 생성하기 위한 수단 ― 상기 신드롬을 생성하기 위한 수단은 상기 입력 데이터를 수신하고, 상기 입력 데이터에 기반하여 제 1 벡터 신호 출력 및 하나 또는 그 초과의 부가적인 벡터 신호 출력들을 출력하도록 구성됨 ― ; 및
    단일 에러 정정 출력 및 이중 에러 정정 출력을 생성하기 위한 수단 ― 상기 단일 에러 정정 출력 및 상기 이중 에러 정정 출력을 생성하기 위한 수단은 상기 제 1 벡터 신호 출력 및 상기 하나 또는 그 초과의 부가적인 벡터 신호 출력들을 수신하고, 상기 제 1 벡터 신호 출력 및 상기 하나 또는 그 초과의 부가적인 벡터 신호 출력들에 기반하여 단일 에러 정정 출력 및 이중 에러 정정 출력을 생성하도록 구성됨 ― 을 더 포함하고,
    상기 단일 에러 로케이션 디코딩을 위한 수단은 상기 단일 에러 정정 출력을 수신하고, 단일 에러 로케이션 디코더 출력을 출력하도록 구성되고; 그리고
    상기 이중 에러 로케이션 디코딩을 위한 수단은 상기 이중 에러 정정 출력을 수신하고, 이중 에러 로케이션 디코더 출력을 출력하도록 구성되는,
    에러 검출 및 정정 장치.
  18. 제 17 항에 있어서,
    상기 신드롬을 생성하기 위한 수단은 패리티-체크 행렬 디코더를 포함하는,
    에러 검출 및 정정 장치.
  19. 제 17 항에 있어서,
    이중 에러 검출 출력을 생성하기 위해 상기 제 1 벡터 신호 출력 및 상기 하나 또는 그 초과의 부가적인 벡터 신호 출력들에 기반하여 이중 에러들을 검출하기 위한 수단을 더 포함하는,
    에러 검출 및 정정 장치.
  20. 제 19 항에 있어서,
    상기 이중 에러 검출 출력 및 상기 제 1 벡터 신호 출력에 기반하여 에러 플래그를 생성하기 위한 수단을 더 포함하는,
    에러 검출 및 정정 장치.
  21. 제 20 항에 있어서,
    상기 장치는 멀티플렉싱하기 위한 수단을 더 포함하고, 상기 멀티플렉싱하기 위한 수단은:
    상기 단일 에러 로케이션 디코더 출력에 커플링된 제 1 입력;
    상기 이중 에러 로케이션 디코더 출력에 커플링된 제 2 입력;
    상기 이중 에러 검출 출력을 수신하도록 구성된 제어 입력; 및
    상기 제어 입력에 기반하여 상기 단일 에러 로케이션 디코더 출력 또는 상기 이중 에러 로케이션 디코더 출력 중 어느 하나를 출력하도록 구성된 출력을 포함하는,
    에러 검출 및 정정 장치.
  22. 제 21 항에 있어서,
    상기 장치는 에러들을 정정하기 위한 수단을 더 포함하고, 상기 에러들을 정정하기 위한 수단은:
    상기 입력 데이터를 수신하도록 구성된 데이터 입력;
    상기 멀티플렉싱하기 위한 수단의 출력에 커플링된 에러 로케이션 디코더 입력; 및
    상기 데이터 입력 및 상기 에러 로케이션 디코더 입력에 기반하여, 정정된 데이터를 출력하도록 구성된 출력을 포함하는,
    에러 검출 및 정정 장치.
  23. 제 17 항에 있어서,
    타이밍을 제어하기 위한 수단 - 상기 타이밍을 제어하기 위한 수단은 제어 입력 및 제어 출력을 가짐 - ;
    상기 단일 에러 정정 출력을 수신하도록 커플링된 입력, 상기 타이밍을 제어하기 위한 수단의 제어 출력에 커플링된 토글 입력, 및 제 1 전달되는 신드롬 출력을 출력하도록 구성된 출력을 포함하는 제 1 플립-플롭; 및
    상기 이중 에러 정정 출력을 수신하도록 커플링된 입력, 상기 타이밍을 제어하기 위한 수단의 제어 출력에 커플링된 토글 입력, 및 제 2 전달되는 신드롬 출력을 출력하도록 구성된 출력을 포함하는 제 2 플립-플롭을 더 포함하는,
    에러 검출 및 정정 장치.
  24. 제 23 항에 있어서,
    상기 제 1 전달되는 신드롬 출력은 상기 단일 에러 로케이션 디코딩을 위한 수단으로 전달되고, 상기 제 2 전달되는 신드롬 출력은 상기 이중 에러 로케이션 디코딩을 위한 수단으로 전달되는,
    에러 검출 및 정정 장치.
  25. 메모리로서,
    메모리 셀; 및
    상기 메모리 셀로부터 입력 데이터를 수신하고, 정정된 출력 데이터를 상기 메모리 셀로 송신하도록 커플링된 에러 검출 및 정정 장치를 포함하고, 상기 에러 검출 및 정정 장치는:
    입력 데이터에서 단일 에러들을 로케이팅하도록 구성된 단일 에러 로케이션 디코더;
    상기 입력 데이터에서 이중 에러들을 로케이팅하도록 구성된 이중 에러 로케이션 디코더;
    특정 데이터 입력이 단일 에러를 갖거나 또는 이중 에러를 갖는 것으로 예측되는지를 결정하고, 상기 에러 예측에 기반하여 상기 특정 데이터 입력에 대해 에러 로케이션을 수행하기 위해 상기 단일 에러 로케이션 디코더 및 상기 이중 에러 로케이션 디코더 중 하나만을 선택하고, 그리고 선택되지 않은 에러 로케이션 디코더를 비활성화하도록 구성된 제어기; 및
    정정된 출력 데이터를 생성하기 위해 상기 단일 에러 로케이션 디코더 및 상기 이중 에러 로케이션 디코더에 커플링된 에러 정정기를 포함하는,
    메모리.
  26. 제 25 항에 있어서,
    상기 에러 검출 및 정정 장치는:
    상기 입력 데이터를 수신하고, 상기 입력 데이터에 기반하여 제 1 벡터 신호 출력 및 하나 또는 그 초과의 부가적인 벡터 신호 출력들을 생성하도록 구성된 신드롬 생성기를 더 포함하고,
    상기 제어기는 추가로 상기 제 1 벡터 신호 출력 및 상기 하나 또는 그 초과의 부가적인 벡터 신호 출력들을 수신하고, 상기 제 1 벡터 신호 출력 및 상기 하나 또는 그 초과의 부가적인 벡터 신호 출력들에 기반하여 단일 에러 정정 출력 및 이중 에러 정정 출력을 생성하도록 구성되고,
    상기 단일 에러 로케이션 디코더는 상기 단일 에러 정정 출력을 수신하고, 단일 에러 로케이션 디코더 출력을 생성하도록 구성되고; 그리고
    상기 이중 에러 로케이션 디코더는 상기 이중 에러 정정 출력을 수신하고, 이중 에러 로케이션 디코더 출력을 출력하도록 구성되는,
    메모리.
  27. 제 26 항에 있어서,
    상기 에러 검출 및 정정 장치는 추가로:
    제어 입력 및 제어 출력을 갖는 타이밍 제어기;
    상기 단일 에러 정정 출력을 수신하도록 커플링된 입력, 상기 타이밍 제어기의 제어 출력에 커플링된 토글 입력, 및 제 1 전달되는 신드롬 출력을 출력하도록 구성된 출력을 포함하는 제 1 플립-플롭; 및
    상기 이중 에러 정정 출력을 수신하도록 커플링된 입력, 상기 타이밍 제어기의 제어 출력에 커플링된 토글 입력, 및 제 2 전달되는 신드롬 출력을 출력하도록 구성된 출력을 포함하는 제 2 플립-플롭을 포함하는,
    메모리.
  28. 에러 디코딩의 방법으로서,
    특정 데이터 입력이 단일 에러를 갖거나 또는 이중 에러를 갖는 것으로 예측되는지를 결정하는 단계;
    상기 결정하는 단계에 기반하여 상기 특정 데이터 입력에 대해 에러 로케이션을 수행하기 위해, 입력 데이터에서 단일 에러들을 로케이팅하도록 구성된 단일 에러 로케이션 디코더 및 상기 입력 데이터에서 이중 에러들을 로케이팅하도록 구성된 이중 에러 로케이션 디코더 중 하나만을 선택하는 단계; 및
    선택되지 않은 에러 로케이션 디코더를 비활성화하는 단계를 포함하는,
    에러 디코딩의 방법.
KR1020187010280A 2015-09-14 2016-08-25 저전력 이중 에러 정정―삼중 에러 검출(deb―ted) 디코더 KR102599033B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/852,988 2015-09-14
US14/852,988 US9800271B2 (en) 2015-09-14 2015-09-14 Error correction and decoding
PCT/US2016/048604 WO2017048474A1 (en) 2015-09-14 2016-08-25 Low-power double error correcting-triple error detecting (deb-ted) decoder

Publications (2)

Publication Number Publication Date
KR20180053700A true KR20180053700A (ko) 2018-05-23
KR102599033B1 KR102599033B1 (ko) 2023-11-03

Family

ID=56896776

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187010280A KR102599033B1 (ko) 2015-09-14 2016-08-25 저전력 이중 에러 정정―삼중 에러 검출(deb―ted) 디코더

Country Status (7)

Country Link
US (2) US9800271B2 (ko)
EP (1) EP3350930B1 (ko)
JP (1) JP6884138B2 (ko)
KR (1) KR102599033B1 (ko)
CN (1) CN108055876B (ko)
TW (2) TWI662796B (ko)
WO (1) WO2017048474A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102045437B1 (ko) * 2018-09-07 2019-12-02 고려대학교 산학협력단 저복잡도 신드롬 기반 복호 장치 및 그 방법
KR20200025059A (ko) * 2018-08-29 2020-03-10 남서울대학교 산학협력단 Sec부호에서 멀티오류정정을 위한 복호기 및 그 복호 방법

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9800271B2 (en) 2015-09-14 2017-10-24 Qualcomm Incorporated Error correction and decoding
US10268539B2 (en) * 2015-12-28 2019-04-23 Intel Corporation Apparatus and method for multi-bit error detection and correction
KR102453437B1 (ko) 2018-01-25 2022-10-12 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법
KR102583797B1 (ko) * 2018-04-09 2023-10-05 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
RU2704499C1 (ru) * 2018-11-22 2019-10-29 Федеральное государственное автономное образовательное учреждение высшего образования "Санкт-Петербургский государственный университет аэрокосмического приборостроения" Декодер кода Боуза-Чоудхури-Хоквингема с каноническим декодером Хэмминга
US11016843B2 (en) * 2018-12-06 2021-05-25 Micron Technology, Inc. Direct-input redundancy scheme with adaptive syndrome decoder
KR20200074467A (ko) * 2018-12-17 2020-06-25 삼성전자주식회사 에러 정정 코드 회로, 반도체 메모리 장치 및 메모리 시스템
CN111835320A (zh) * 2019-04-22 2020-10-27 珠海格力电器股份有限公司 一种信号的边沿检测装置
KR102705065B1 (ko) * 2019-07-29 2024-09-09 에스케이하이닉스 주식회사 낮은 레이턴시를 갖는 에러정정코드 디코더
US11095313B2 (en) 2019-10-21 2021-08-17 International Business Machines Corporation Employing single error correction and triple error detection to optimize bandwidth and resilience under multiple bit failures
KR20210092391A (ko) * 2020-01-16 2021-07-26 삼성전자주식회사 반도체 메모리 장치의 에러 정정 회로 및 반도체 메모리 장치
JP2023005919A (ja) * 2021-06-29 2023-01-18 ルネサスエレクトロニクス株式会社 半導体装置および誤り検出方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1612949B1 (en) * 2004-06-30 2010-04-21 STMicroelectronics Srl Method and system for correcting errors in electronic memory devices

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3623155A (en) * 1969-12-24 1971-11-23 Ibm Optimum apparatus and method for check bit generation and error detection, location and correction
US3650107A (en) * 1970-08-12 1972-03-21 Sperry Rand Corp Power transmission
US4030067A (en) 1975-12-29 1977-06-14 Honeywell Information Systems, Inc. Table lookup direct decoder for double-error correcting (DEC) BCH codes using a pair of syndromes
US4397022A (en) * 1981-01-30 1983-08-02 Weng Ming I Weighted erasure codec for the (24, 12) extended Golay code
US4556977A (en) 1983-09-15 1985-12-03 International Business Machines Corporation Decoding of BCH double error correction - triple error detection (DEC-TED) codes
US4979174A (en) * 1988-12-29 1990-12-18 At&T Bell Laboratories Error correction and detection apparatus and method
US5323402A (en) * 1991-02-14 1994-06-21 The Mitre Corporation Programmable systolic BCH decoder
KR950008789B1 (ko) * 1992-07-30 1995-08-08 삼성전자주식회사 멀티-이씨씨(ecc)회로를 내장하는 반도체 메모리 장치
DE69317766T2 (de) 1993-06-10 1998-07-30 Bull Hn Information Syst Fehlerkorrekturgerät für digitale Daten zur Korrektur von Einfachfehlern (sec), von Doppelfehlern (ded) und Vielfacheinzelbytefehlern (sbd) und zur Korrektur von Einzelbytefehlern ungerader Anzahl (odd sbc)
JP2691973B2 (ja) * 1994-10-20 1997-12-17 博一 岡野 単一誤り訂正および多重誤り検出bch符号の復号装置
US5666371A (en) * 1995-02-24 1997-09-09 Unisys Corporation Method and apparatus for detecting errors in a system that employs multi-bit wide memory elements
JP3258897B2 (ja) * 1996-03-18 2002-02-18 富士通株式会社 軟判定誤り訂正復号装置
TW432362B (en) * 1997-04-02 2001-05-01 Matsushita Electric Ind Co Ltd High speed data input-output device which fetches data into internal memory and performs operations on the data before outputting the data
US6662336B1 (en) * 1999-07-06 2003-12-09 Cirrus Logic, Inc. Error correction method and apparatus
US6662333B1 (en) * 2000-02-04 2003-12-09 Hewlett-Packard Development Company, L.P. Shared error correction for memory design
US6701480B1 (en) * 2000-03-08 2004-03-02 Rockwell Automation Technologies, Inc. System and method for providing error check and correction in memory systems
US7634709B2 (en) 2001-10-05 2009-12-15 Unisys Corporation Familial correction with non-familial double bit error detection
US7051264B2 (en) * 2001-11-14 2006-05-23 Monolithic System Technology, Inc. Error correcting memory and method of operating same
GB2391769B (en) * 2002-07-31 2005-07-06 Hewlett Packard Co Reed-Solomon decoder and decoding method for errors and erasures decoding
TWI234937B (en) * 2003-05-22 2005-06-21 Edimax Technology Co Ltd Encoding technology to detect and correct error
JP3892832B2 (ja) * 2003-08-11 2007-03-14 株式会社東芝 半導体記憶装置
US7243293B2 (en) * 2003-12-23 2007-07-10 International Business Machines Corporation (18, 9) Error correction code for double error correction and triple error detection
US7502986B2 (en) * 2005-02-09 2009-03-10 International Business Machines Corporation Method and apparatus for collecting failure information on error correction code (ECC) protected data
KR100732628B1 (ko) * 2005-07-28 2007-06-27 삼성전자주식회사 멀티-비트 데이터 및 싱글-비트 데이터를 저장하는 플래시메모리 장치
US7793195B1 (en) * 2006-05-11 2010-09-07 Link—A—Media Devices Corporation Incremental generation of polynomials for decoding reed-solomon codes
JP5162763B2 (ja) * 2007-08-07 2013-03-13 株式会社メガチップス メモリアクセスシステム
KR101433620B1 (ko) * 2007-08-17 2014-08-25 삼성전자주식회사 처리량을 높이기 위하여 더블 버퍼링 구조와 파이프라이닝기법을 이용하는 디코더 및 그 디코딩 방법
CN101493804B (zh) * 2008-01-24 2011-07-20 国际商业机器公司 数据总线系统及其编解码器和编解码方法
KR101437396B1 (ko) * 2008-02-27 2014-09-05 삼성전자주식회사 레이턴시를 줄일 수 있는 에러 정정 블록을 포함하는메모리 시스템 및 그것의 에러 정정 방법
US8261165B2 (en) 2008-11-14 2012-09-04 Silicon Laboratories Inc. Multi-syndrome error correction circuit
TWI399042B (zh) * 2009-06-06 2013-06-11 Univ Ishou To detect the wrong position of the detection device
US8381083B2 (en) * 2009-10-22 2013-02-19 Arm Limited Error control coding for single error correction and double error detection
WO2011109713A2 (en) 2010-03-05 2011-09-09 Board Of Regents Of The University Of Texas System Error detecting/correcting code enhanced self-checked/corrected/timed nanoelectronic circuits
US8984367B2 (en) * 2011-02-25 2015-03-17 Altera Corporation Error detection and correction circuitry
US8612834B2 (en) * 2011-03-08 2013-12-17 Intel Corporation Apparatus, system, and method for decoding linear block codes in a memory controller
GB201114831D0 (en) * 2011-08-26 2011-10-12 Univ Oxford Brookes Circuit with error correction
US8762821B2 (en) * 2012-03-30 2014-06-24 Intel Corporation Method of correcting adjacent errors by using BCH-based error correction coding
US8694862B2 (en) * 2012-04-20 2014-04-08 Arm Limited Data processing apparatus using implicit data storage data storage and method of implicit data storage
US8745472B2 (en) 2012-09-01 2014-06-03 Texas Instruments Incorporated Memory with segmented error correction codes
US8984368B2 (en) * 2012-10-11 2015-03-17 Advanced Micro Devices, Inc. High reliability memory controller
US9246516B2 (en) * 2012-12-20 2016-01-26 Intel Corporation Techniques for error correction of encoded data
US9054742B2 (en) * 2013-03-14 2015-06-09 Intel Corporation Error and erasure decoding apparatus and method
US9417957B2 (en) * 2013-10-04 2016-08-16 Infineon Technologies Ag Method of detecting bit errors, an electronic circuit for detecting bit errors, and a data storage device
US9800271B2 (en) 2015-09-14 2017-10-24 Qualcomm Incorporated Error correction and decoding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1612949B1 (en) * 2004-06-30 2010-04-21 STMicroelectronics Srl Method and system for correcting errors in electronic memory devices

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200025059A (ko) * 2018-08-29 2020-03-10 남서울대학교 산학협력단 Sec부호에서 멀티오류정정을 위한 복호기 및 그 복호 방법
KR102045437B1 (ko) * 2018-09-07 2019-12-02 고려대학교 산학협력단 저복잡도 신드롬 기반 복호 장치 및 그 방법

Also Published As

Publication number Publication date
TWI662796B (zh) 2019-06-11
KR102599033B1 (ko) 2023-11-03
JP6884138B2 (ja) 2021-06-09
TWI625943B (zh) 2018-06-01
EP3350930A1 (en) 2018-07-25
CN108055876A (zh) 2018-05-18
US10263645B2 (en) 2019-04-16
TW201714411A (zh) 2017-04-16
JP2018533254A (ja) 2018-11-08
WO2017048474A1 (en) 2017-03-23
US9800271B2 (en) 2017-10-24
TW201818666A (zh) 2018-05-16
US20170077963A1 (en) 2017-03-16
US20180019767A1 (en) 2018-01-18
EP3350930B1 (en) 2023-07-26
CN108055876B (zh) 2022-11-18

Similar Documents

Publication Publication Date Title
US10263645B2 (en) Error correction and decoding
US11349496B2 (en) Memory controller and method of data bus inversion using an error detection correction code
JP4036338B2 (ja) 誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置
US11740960B2 (en) Detection and correction of data bit errors using error correction codes
US7328377B1 (en) Error correction for programmable logic integrated circuits
US20170126249A1 (en) Temperature dependent multiple mode error correction
JP2009070356A (ja) ハミングコードh行列における最小重み付けコード数を増やすべくチェック・ビットのパリティビット幅および追加チェック・ビットの使用によるデータブロックの症候群発生を減らす技術
Cha et al. Efficient implementation of single error correction and double error detection code with check bit pre-computation for memories
US20080082870A1 (en) Parallel bit test device and method using error correcting code
US20180343018A1 (en) Error correcting code for correcting single symbol errors and detecting double bit errors
US9105358B2 (en) Memory system having an encoding processing circuit for redundant encoding process
KR20210156713A (ko) 개선된 ecc 메모리 칩 인코더 및 디코더
Farheen et al. Error Detection and Correction Using RP SEC-DED
Badack et al. Modified DEC BCH codes for parallel correction of 3-bit errors comprising a pair of adjacent errors
KR101304570B1 (ko) 패리티 체크 행렬 생성 방법, 이를 이용한 오류 정정 방법 및 장치, 오류 정정 장치용 디코더 그리고 오류 정정 장치를 포함하는 메모리 및 전자장치
JP3743915B2 (ja) スポッティバイト誤り訂正・検出方法及び装置
TWI706416B (zh) 多個記憶體裝置共用的錯誤更正系統
BR112018004992B1 (pt) Aparelho e método de detecção e correção de erros para um código bose-chaudhuri-hocquenghem, bch, de correção de erros duplos e detecção de erros triplos, dec-ted, e, memória
JP2006101429A (ja) バイト内複数スポッティバイト誤り訂正・検出方法及び装置
JP2006060465A (ja) スポッティバイト誤り訂正・検出方法及び装置

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