KR101439815B1 - 메모리에서의 에러 정정 처리 회로 및 에러 정정 처리 방법 - Google Patents

메모리에서의 에러 정정 처리 회로 및 에러 정정 처리 방법 Download PDF

Info

Publication number
KR101439815B1
KR101439815B1 KR1020130025034A KR20130025034A KR101439815B1 KR 101439815 B1 KR101439815 B1 KR 101439815B1 KR 1020130025034 A KR1020130025034 A KR 1020130025034A KR 20130025034 A KR20130025034 A KR 20130025034A KR 101439815 B1 KR101439815 B1 KR 101439815B1
Authority
KR
South Korea
Prior art keywords
data
error correction
error
memory
unit
Prior art date
Application number
KR1020130025034A
Other languages
English (en)
Inventor
박종선
박장원
Original Assignee
고려대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 고려대학교 산학협력단 filed Critical 고려대학교 산학협력단
Priority to KR1020130025034A priority Critical patent/KR101439815B1/ko
Priority to PCT/KR2014/001926 priority patent/WO2014137202A1/ko
Application granted granted Critical
Publication of KR101439815B1 publication Critical patent/KR101439815B1/ko
Priority to US14/810,749 priority patent/US9985659B2/en

Links

Images

Classifications

    • 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/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • 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/1048Adding 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 arrangements adapted for a specific error detection or correction feature
    • 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/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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
    • 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/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
    • 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/155Shortening or extension of 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/611Specific encoding aspects, e.g. encoding by means of decoding

Abstract

본 발명은, 메모리에서의 에러 정정 처리 회로 및 에러 정정 처리 방법에 대해 개시한다. 특히, 본 발명의 일 실시예에 따른 에러 정정 처리 방법은 메모리의 동작 전압에 따라 상기 메모리에 기록할 단위 데이터 중 에러 정정 범위에 해당하는 보호 범위를 적응적으로 설정하는 단계; 상기 단위 데이터 중 상기 보호 범위에 대응하고 MSB(Most Significant Bit)를 포함하는 보호 데이터에 대하여 에러 정정 인코딩을 수행하는 단계; 및 상기 단위 데이터를 상기 에러 정정 인코딩에 따라 생성된 패리티 데이터와 매칭하여 상기 메모리에 기록하는 단계를 포함하고, 상기 설정하는 단계는 상기 메모리의 동작 전압이 낮아질수록 상기 보호 범위를 좁게 설정한다.

Description

메모리에서의 에러 정정 처리 회로 및 에러 정정 처리 방법{CIRCUIT AND METHOD FOR PROCESSING ERROR OF MEMORY}
본 발명은 에러 정정 처리 회로 및 에러 정정 처리 방법에 관한 것이고, 보다 구체적으로 메모리에 발생하는 에러를 정정 및 처리하는 회로 및 메모리에 발생하는 에러를 정정 및 처리하는 방법에 관한 것이다.
에러 정정 부호(Error Correction Code; ECC)는, 수신기가 전송되는 문자가 무엇인가를 추론할 수 있도록 전송되는 데이터 블록에 충분한 여분의 정보(Redundancy)를 포함시키는 부호화(채널부호화) 방식을 말한다. 에러 정정 부호는 디지털 통신에서 중요한 위치를 차지하고, 데이터 저장 및 전송을 위한 하드웨어 내에도 적용되고 있다.
도 1은 메모리에 발생하는 에러 및 이러한 에러를 정정 및 처리하는 에러 정정 처리 회로에 대한 개념을 설명하기 위한 도면이다.
도 1처럼 입력 데이터는 채널 내 메모리 셀에 기록되기 위해 기록 회로를 거치고, 출력 데이터는 독출 회로를 거쳐 메모리 셀로부터 독출된다. 이때, 기록 회로, 독출 회로 및 메모리 셀을 포함하는 메모리에서 에러가 발생할 수 있다. 이렇게 발생된 에러를 정정하기 위해 에러 정정 부호가 적용된 회로가 연결될 수 있다.
한국공개특허 제2009-0091179호(발명의 명칭: 작은 데이터 구조의 ECC 보호 장치, 방법 및 시스템)는 상이한 크기의 데이터 구조에 대한 에러 정정 동작을 지원하는 에러 정정 부호 엔진에 대해 개시하고 있다.
한편, 최근 저전력 하드웨어에 대한 연구가 활발하게 이루어지고 있다. 이때, 하드웨어의 동작 전압을 낮추는 방법이 가장 효과적일 수 있다.
다만, 메모리의 경우 동작 전압이 낮아질수록 에러가 발생할 확률이 도 2처럼 증가한다는 문제점이 있다. 도 2는 메모리의 동작 전압에 따라 달라지는 에러 확률을 나타내는 그래프이다. 즉, 하드웨어의 동작 전압을 감소시키면 전력 소비를 감소시킬 수 있지만, 메모리 부근에 에러 발생 확률이 증가하여 전체적인 출력 품질이 떨어진다는 문제점이 있다.
본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 본 발명의 일부 실시예는 메모리에 기록할 데이터 중 중요도가 높은 데이터에 대하여 발생된 에러를 우선적으로 정정할 수 있는 에러 정정 처리 회로 및 에러 정정 처리 방법을 제공하는 데에 그 목적이 있다.
또한, 본 발명의 일부 실시예는 디코딩을 수행하는 복호화기의 일부 구성을 턴-오프시켜 전체적인 전력소비를 저감시킬 수 있는 에러 정정 처리 회로 및 에러 정정 처리 방법을 제공하는 데에 다른 목적이 있다.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 일 실시예에 따른 메모리에서의 에러 정정 처리 방법은, 상기 메모리의 동작 전압에 따라 상기 메모리에 기록할 단위 데이터 중 에러 정정 범위에 해당하는 보호 범위를 적응적으로 설정하는 단계; 상기 단위 데이터 중 상기 보호 범위에 대응하고 MSB(Most Significant Bit)를 포함하는 보호 데이터에 대하여 에러 정정 인코딩을 수행하는 단계; 및 상기 단위 데이터를 상기 에러 정정 인코딩에 따라 생성된 패리티 데이터와 매칭하여 상기 메모리에 기록하는 단계를 포함하고, 상기 설정하는 단계는 상기 메모리의 동작 전압이 낮아질수록 상기 보호 범위를 좁게 설정한다.
상기 메모리의 동작 전압에 따라 상기 메모리에 기록할 단위 데이터 중 보호 범위를 설정하는 단계; 상기 단위 데이터 중 상기 보호 범위에 대응하는 보호 데이터에 대하여 에러 정정 인코딩을 수행하는 단계; 및 상기 단위 데이터를 상기 에러 정정 인코딩에 따라 생성된 패리티 데이터와 매칭하여 상기 메모리에 기록하는 단계를 포함한다.
또한, 본 발명의 다른 실시예에 따른 메모리에서의 에러 정정 처리 회로는, 상기 메모리의 동작 전압에 따라 상기 메모리에 기록할 단위 데이터 중 에러 정정 범위에 해당하는 보호 범위를 적응적으로 설정하는 보호 범위 설정부; 상기 단위 데이터 중 상기 보호 범위에 대응하고 MSB(Most Significant Bit)를 포함하는 보호 데이터에 대하여 에러 정정 인코딩을 수행하는 부호화기; 및 상기 단위 데이터를 상기 에러 정정 인코딩에 따라 생성된 패리티 데이터와 매칭하여 상기 메모리에 기록하는 기록부를 포함하고, 상기 보호 범위 설정부는 상기 메모리의 동작 전압이 낮아질수록 상기 보호 범위를 좁게 설정한다.
전술한 본 발명의 과제 해결 수단 중 어느 하나인 에러 정정 처리 회로 및 에러 정정 처리 방법은 단위 데이터 중 보호 범위에 대응하는 보호 데이터에 대하여 에러 정정 인코딩을 수행함으로써, 전력 소모 및 계산 결과 오차를 최소화시킬 수 있다는 장점이 있다.
또한, 전술한 본 발명의 과제 해결 수단 중 어느 하나인 에러 정정 처리 회로 및 에러 정정 처리 방법은 독출된 패리티 데이터 및 보호 범위에 대한 정보를 기초로 에러 정정 인코딩이 수행된 보호 데이터에 대하여 에러 정정 디코딩을 수행함으로써, 보호 데이터에 발생된 에러를 명확하게 정정할 수 있다. 또한, 에러 정정 디코딩을 수행함에 있어서, 불필요한 구성에 대하여 턴-오프 처리하여 전체적인 전력 소비를 감소시킬 수 있다.
도 1은 메모리에 발생하는 에러 및 이러한 에러를 정정 및 처리하는 에러 정정 처리 회로에 대한 개념을 설명하기 위한 도면,
도 2는 메모리의 동작 전압에 따라 달라지는 에러 확률을 나타내는 그래프,
도 3은 본 발명의 일 실시예에 따른 에러 정정 처리 회로의 구조를 전체적으로 도시한 블록도,
도 4는 단위 데이터, 보호 데이터 및 비보호 데이터에 대하여 설명하기 위한 도면,
도 5는 도 3에 도시된 구성 중 부호화기의 동작을 설명하기 위한 도면,
도 6은 도 5의 부호화기에 의한 인코딩 과정을 구체적으로 설명하기 위한 도면,
도 7은 도 3에 도시된 구성 중 복호화기의 세부 구조를 설명하기 위한 도면,
도 8은 도 7에 도시된 구성 중 신드롬 생성기의 세부 구조를 설명하기 위한 도면,
도 9는 도 7에 도시된 구성 중 에러 검출기의 세부 구조를 설명하기 위한 도면,
도 10은 본 발명의 일 실시예에 따른 에러 정정 처리 방법을 설명하기 위한 순서도,
도 11은 메모리의 동작 전압이 1000mV인 경우와 700mV인 경우 메모리에 발생된 에러를 정정 및 처리하는 과정을 각각 설명하기 위한 도면,
도 12는 도 8 및 도 9와 같은 제어를 통해 얻을 수 있는 효과를 보여주는 그래프,
도 13은 H.264 회로 및 FFT 처리 회로 상에서 도 3에 도시된 에러 정정 처리 회로가 실제로 적용될 수 있는 위치를 설명하기 위한 도면,
도 14는 H.264 회로에 에러 정정 처리 회로 및 그 방법을 적용시킨 경우 성능 변화를 나타내기 위한 그래프,
도 15는 FFT 처리 회로에 에러 정정 처리 회로 및 그 방법을 적용시킨 경우 성능 변화를 나타내기 위한 그래프이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 3은 본 발명의 일 실시예에 따른 에러 정정 처리 회로의 구조를 전체적으로 도시한 블록도이다.
에러 정정 처리 회로(100)는 메모리에 발생하는 에러를 정정 및 처리하는 회로로서, 보호 범위 설정부(110), 부호화기(120), 기록부(130), 통신부(140) 및 복호화기(150)를 포함한다.
에러 정정 처리 회로(100)는 프로세서(10)와 메모리(20) 사이에 배치되어 인코딩된 데이터, 디코딩된 데이터를 포함하는 데이터를 처리하고, 전달할 수 있다. 다만, 도 3에 도시된 에러 정정 처리 회로(100)는 구현될 수 있는 한가지 예시 형태일 뿐이므로, 이에 한정되는 것은 아니고, 각 구성 혹은 각 구성의 동작을 수행하는 별개의 회로가 분리된 상태로 구현되어 서로 연결될 수도 있다.
구체적으로 에러 정정 처리 회로(100)에 포함된 각 구성에 대해 설명하기에 앞서서, 도 4를 참고하여 본 명세서에서 사용되는 용어에 대해 설명하기로 한다. 도 4는 단위 데이터, 보호 데이터 및 비보호 데이터에 대하여 설명하기 위한 도면이다.
메모리(20)에 기록할 데이터는 본 명세서에서 단위 데이터라 지칭되고, 프로세서(10)에서 메모리(20)로 전달되는 데이터일 수 있으며, 도 4는 8비트로 이루어진 단위 데이터의 일 예를 나타내고 있다. 이때, 도 4에 도시된 것처럼 단위 데이터에 a, b, c와 같은 복수의 에러들이 어플리케이션 상태나 환경에 따라 가변적으로 발생할 수 있고, 이러한 에러는 에러 정정 처리 회로(100)가 정정 및 처리할 수 있는 최대 비트(예를 들어, 2비트 또는 미리 설정된 비트 값)를 초과할 수 있다. 이러한 경우 단위 데이터에 발생된 모든 에러에 대한 정정 및 처리가 불가능해지고, 도 4의 좌측 도면처럼 d와 같은 에러가 추가적으로 발생할 수도 있다.
따라서 본 발명의 일 실시예에 따른 에러 정정 처리 회로(100)가 정정 및 처리할 수 있는 범위를 고려하여 단위 데이터에 발생된 에러를 정정 및 처리한다. 이때, 에러를 정정 및 처리할 수 있는 범위는 후술할 보호 범위 설정부(110)에 의해 설정되고, 보호 범위라 지칭된다. 보호 범위는 동작 전압 및 가변적인 데이터 길이 구조와 밀접한 연관을 가진다. 또한, 본 명세서에서는 이러한 보호 범위 이외의 범위를 비보호 범위라 지칭한다. 도 4의 우측 도면에 도시된 것처럼, 단위 데이터 중 보호 범위에 대응하는 데이터는 보호 데이터라고 할 수 있고, 비보호 범위에 대응하는 데이터는 비보호 데이터라고 할 수 있다. 즉, 보호 데이터에 발생한 에러(a, b)는 에러 정정 처리 회로(100)에 의해 정정되지만, 비보호 데이터에 발생한 에러(c)는 에러 정정 처리 회로(100)에 의해 정정되지 않는다. 이는 에러 정정 처리 회로(100)에서 정정 및 처리할 수 있는 데이터의 길이를 의도적으로 감소시킨 결과이고, 이를 통해 에러 발생 확률을 크게 감소시킬 수 있다.
이하, 도 3 에 도시된 각 구성의 구체적인 동작에 대하여 설명하기로 한다.
보호 범위 설정부(110)는 메모리(20)의 동작 전압에 따라 메모리(20)에 기록할 단위 데이터 중 보호 범위를 설정한다. 즉, 소정의 데이터에 에러가 발생하고, 보호 범위 설정부(110)에 의해 설정된 보호 범위가 소정의 데이터를 포함하는 경우, 본 발명의 일 실시예에 따른 에러 정정 처리 회로(100)는 소정의 데이터에 발생된 에러를 확실하게 정정 및 처리할 수 있다. 이렇게 보호 범위 설정부(110)에 의해 설정되는 보호 범위는 메모리(20)의 동작 전압에 따라 달라질 수 있다. 예를 들면, 메모리(20)의 동작 전압이 1000mV인 경우 보호 범위 설정부(110)는 제 1 보호 범위를 설정하고, 메모리(20)의 동작 전압이 700mV인 경우 보호 범위 설정부(110)는 제 2 보호 범위를 설정할 수 있으며, 제 1 보호 범위보다 제 2 보호 범위가 작을 수 있다.
부호화기(Encoder, 120)는 단위 데이터 중 보호 범위에 대응하는 보호 데이터에 대하여 에러 정정 인코딩을 수행하고, 에러 정정 인코딩을 통해 패리티 데이터(parity data)를 생성한다. 즉, 부호화기(120)는 단위 데이터 중 보호 데이터에 대하여 에러 정정 인코딩을 수행하고, 비보호 데이터에 대하여 에러 정정 인코딩을 수행하지 않을 수 있다. 이로 인해 에러 정정 인코딩이 수행된 보호 데이터에 대해서만 후술할 에러 정정 디코딩이 필요할 수 있고, 에러 정정 디코딩을 통해 보호 데이터에 발생된 에러가 정정 및 처리될 수 있다.
구체적으로, 부호화기(120)는 도 5에 도시된 일 예처럼 에러 정정 인코딩을 수행할 수 있다. 도 5는 도 3에 도시된 구성 중 부호화기의 동작을 설명하기 위한 도면이다. 종래의 경우 128비트의 단위 데이터는 부호화기(120)에 의해 에러 정정 인코딩 될 수 있고, ①과 같이 에러 정정 인코딩이 수행된 128비트의 단위 데이터 및 패리티 데이터가 생성된다. 본 발명의 일 실시예에 따르면 메모리(20)의 동작 전압에 따라 보호 범위가 설정된다. 이로 인해, ②와 같이 128비트의 단위 데이터 중 32비트의 보호 범위와 6비트의 비보호 범위가 설정된다. 이들 중 보호 범위에 대응하는 32비트의 보호 데이터는 부호화기(120)에 의해 에러 정정 인코딩 되고, 비보호 범위에 대응하는 96비트의 비보호 데이터는 제로 패딩(Zero-padding)을 통해 0으로 처리된 후 에러 정정 인코딩이 수행될 수 있다. 결국 에러 정정 인코딩이 수행된 32비트의 보호 데이터 및 패리티 데이터가 생성된다.
보다 구체적으로, 부호화기(120)는 입력되는 데이터에 제너레이터 행렬(Generator Matrix)가 곱해져 에러 정정 인코딩이 수행된 데이터와 패리티 데이터를 포함하는 코드워드(Codeword)를 도 6처럼 생성할 수 있다. 도 6은 도 5의 부호화기에 의한 인코딩 과정을 구체적으로 설명하기 위한 도면이다. 이때, 패리티 데이터는 입력되는 데이터의 크기와 보정 가능한 비트 수에 따라 달라질 수 있고, 제너레이터 행렬은 입력되는 데이터가 그대로 전달되는 아이덴티티 행렬(Identity Matrix)과 패리티 데이터를 생성하는 패리티 행렬로 이루어질 수 있다.
기록부(130)는 단위 데이터를 에러 정정 인코딩에 따라 생성된 패리티 데이터와 매칭하여 메모리(20)에 기록한다. 기록부(130)가 메모리(20)에 데이터를 기록하는 방식이나 단위 데이터와 패리티 데이터를 서로 매칭시키는 방식은 종래에 공개된 방식을 따를 수 있고, 특별히 제한된 것은 아니다.
통신부(140)는 단위 데이터를 메모리(20)로 전달한 프로세서(10)로부터 독출 신호를 수신하는데, 독출 신호는 메모리(20)에 기록된 단위 데이터를 독출하거나 읽어오기 위한 신호이다. 또한, 통신부(140)는 보호 범위 설정부(110)로부터 보호 범위에 대한 정보를 수신한다. 이때, 보호 범위에 대한 정보는 단위 데이터 중 어떤 데이터가 보호 데이터 혹은 비보호 데이터에 해당하는지 판단할 수 있는 기초 자료가 될 수 있고, 복호화기(150)로 전달될 수 있다.
복호화기(Decoder, 150)는 독출 신호에 대응하는 단위 데이터 및 독출 신호에 대응하는 단위 데이터에 매칭된 패리티 데이터를 독출하고, 독출된 패리티 데이터 및 보호 범위에 대한 정보를 기초로 에러 정정 인코딩이 수행된 보호 데이터에 대하여 에러 정정 디코딩을 수행한다.
구체적으로, 복호화기(150)는 독출된 패리티 데이터를 기초로 에러 정정 인코딩이 수행된 보호 데이터에 에러가 발생했는지 여부를 체크할 수 있다. 패리티 데이터는 기록부(130)에 의해 단위 데이터와 매칭되어 메모리(20)에 기록되므로, 복호화기(150)는 독출 신호에 대응하는 단위 데이터 및 그에 매칭된 패리티 데이터를 독출할 수 있다. 또한, 복호화기(150)는 독출 신호에 대응하는 단위 데이터 중 에러 정정 인코딩이 수행된 보호 데이터가 어떤 데이터인지 보호 범위에 대한 정보를 기초로 판단할 수 있고, 에러 정정 인코딩이 수행된 보호 데이터로 판단된 데이터에 대해 에러가 발생했는지 여부를 독출된 패리티 데이터를 기초로 체크할 수 있다. 이때, 에러 정정 인코딩이 수행된 보호 데이터에 에러가 발생한 것으로 판단되면, 복호화기(150)는 발생된 에러를 정정하는 동작을 수행할 수 있다.
도 7은 도 3에 도시된 구성 중 복호화기의 세부 구조를 설명하기 위한 도면이다.
보다 구체적으로, 복호화기(150)는 신드롬 생성기(151), 에러 검출기(152), 에러 정정기(153), 제어부(154) 및 선입선출(FIFO) 제어기(155)를 포함할 수 있다.
신드롬 생성기(151)는 메모리(20)에 기록된 단위 데이터로부터 신드롬(syndrome)을 생성할 수 있고, 에러 검출기(152)는 생성된 신드롬 및 다항식을 이용하여 에러 정정 인코딩이 수행된 보호 데이터 내 에러 비트의 위치를 검출할 수 있다. 또한, 신드롬 생성기(151) 및 에러 검출기(152)에 BCH(Bose-Chaudhuri-Hocquenghem) 코드가 적용될 수 있고, 에러 검출기(152)는 벌레캠프-매씨 알고리즘(Berlekamp-Massey algorithm)을 이용해 다항식을 산출할 수 있고, 치엔 탐색 알고리즘(Chien search algorithm)을 이용하여 에러 비트의 위치를 검출할 수 있다. 덧붙여, 에러 정정기(153)는 에러 비트의 비트 값을 반전시켜 에러 비트를 정정할 수 있고, 선입선출 제어기(155)로부터 전달된 데이터를 활용할 수 있다.
도 8은 도 7에 도시된 구성 중 신드롬 생성기의 세부 구조를 설명하기 위한 도면이고, 도 9는 도 7에 도시된 구성 중 에러 검출기의 세부 구조를 설명하기 위한 도면이다.
신드롬 생성기(151)는 도 8처럼 메모리(20)에 기록된 단위 데이터 중 에러 정정 인코딩이 수행된 보호 데이터(a)로부터 신드롬(S)을 생성할 수 있다. 또한, 제어부(154)는 비보호 데이터(b)에 대하여 신드롬을 생성하는 동작을 멈추도록 보호 범위에 대한 정보를 기초로 신드롬 생성기(151)를 제어할 수 있다. 이때, 비보호 데이터(b)는 메모리(20)에 기록된 단위 데이터 중 에러 정정 인코딩이 수행된 보호 데이터 이외의 데이터를 의미할 수 있다. 예를 들어, 신드롬 생성기(151)는 최대 128비트를 처리할 수 있고, 제어부(154)는 단위 데이터에 대한 보호 범위가 32/64/96/128비트 중 어느 정도인지에 따라 신드롬 생성기(151)를 제어할 수 있다. 만약 도 8처럼 MSB(Most Significant Bit) 부근의 32비트가 보호 데이터에 포함되도록 보호 범위를 설정한 경우라면, 제어부(154)는 신드롬 생성기(151) 내 비보호 데이터(b)를 위한 구성을 턴-오프시키고, 신드롬 생성기(151)가 비보호 데이터(b)를 항상 0으로 처리하도록 제어 신호를 송신할 수 있다. 이로 인하여 본 발명의 일 실시예에 따른 에러 정정 처리 회로(100)는 전력 소모 및 계산 결과 오차를 최소화시킬 수 있다.
또한, 에러 검출기(152)는 도 9처럼 BCH 코드의 치엔 탐색 알고리즘을 통해 에러 정정 인코딩이 수행된 보호 데이터(a) 내 에러 비트의 위치를 검출할 수 있다. 또한, 제어부(154)는 비보호 데이터(b)에 대하여 에러 비트의 위치를 검출하는 동작을 멈추도록 보호 범위에 대한 정보를 기초로 에러 검출기(152)를 제어할 수 있다. 이때, 비보호 데이터(b)는 메모리(20)에 기록된 단위 데이터 중 에러 정정 인코딩이 수행된 보호 데이터 이외의 데이터를 의미할 수 있다. 예를 들어, 에러 검출기(152)는 최대 128비트를 처리할 수 있고, 제어부(154)는 단위 데이터에 대한 보호 범위가 32/64/96/128비트 중 어느 정도인지에 따라 에러 검출기(152)를 제어할 수 있다. 만약 도 9처럼 MSB(Most Significant Bit) 부근의 32비트가 보호 데이터에 포함되도록 보호 범위를 설정한 경우라면, 제어부(154)는 에러 검출기(152) 내 비보호 데이터(b)를 위한 구성을 턴-오프시키고, 에러 검출기(152)가 비보호 데이터(b)를 항상 0으로 처리하도록 제어 신호를 송신할 수 있다. 이로 인하여 본 발명의 일 실시예에 따른 에러 정정 처리 회로(100)는 전력 소모 및 계산 결과 오차를 최소화시킬 수 있다.
한편, 본 발명의 각 실시예에 따른 에러 정정 처리 방법을 도 10 내지 도 12를 참고하여 설명하기로 한다.
도 10은 본 발명의 일 실시예에 따른 에러 정정 처리 방법을 설명하기 위한 순서도이다.
메모리에서 발생하는 에러를 정정 및 처리하기 위해, 에러 정정 처리 회로(100) 혹은 동일한 동작을 수행할 수 있는 소정의 회로는 메모리(20)에 기록할 단위 데이터 중 보호 범위를 설정한다(S1010). 이때, 설정된 보호 범위는 메모리(20)의 동작 전압에 종속적인 관계를 이루고, 메모리(20)의 동작 전압과 비례 관계를 이룰 수 있다. 즉, 설정하는 단계(S1010)는 동작 전압이 낮을수록 보호 범위를 상대적으로 감소시킬 수 있다. 또한, 설정하는 단계(S1010)는 보호 데이터에 MSB(Most Significant Bit)가 포함되도록 보호 범위를 설정할 수 있다.
이어서, 에러 정정 처리 회로(100) 혹은 동일한 동작을 수행할 수 있는 소정의 회로는 단위 데이터 중 보호 범위에 대응하는 보호 데이터에 대하여 에러 정정 인코딩을 수행한다(S1020). 구체적으로, 수행하는 단계(S1020)는 단위 데이터 중 보호 데이터 이외의 데이터인 비보호 데이터를 0으로 설정하여 에러 정정 인코딩을 수행할 수 있다. 이와 같은 제로 패딩(Zero-padding) 방식을 통해 단위 데이터에 발생된 에러 중 보호 범위 내 데이터에 발생된 에러는 절대적으로 정정할 수 있고, 비보호 범위 내 데이터에 발생된 에러는 무시할 수 있다. 상술한 것처럼 보호 데이터에 MSB가 포함되도록 보호 범위를 설정할 수 있으므로, 제로 패딩 방식은 상대적으로 치명적인 오류/에러 발생을 방지하는 데에 기여할 수 있다.
계속해서, 상술한 회로는 단위 데이터를 에러 정정 인코딩에 따라 생성된 패리티 데이터와 매칭하여 메모리(20)에 기록한다(S1030). 에러 정정 인코딩이 수행된 단위 데이터(보호 데이터) 및 패리티 데이터를 코드워드(Codeword)라고 부를 수 있다.
나아가, 메모리(20)에 기록된 단위 데이터를 독출하는 경우에 대한 과정을 설명하면 다음과 같다. 후술할 과정들은 도 10을 참고하여 상술한 기록하는 단계(S1030) 이후에 이루어질 수 있다.
메모리(20)에 기록된 단위 데이터를 독출하는 경우, 에러 정정 처리 회로(100) 혹은 동일한 동작을 수행할 수 있는 소정의 회로는 에러 정정 인코딩이 수행된 보호 데이터에 대하여 에러 정정 디코딩을 수행한다. 이러한 에러 정정 디코딩은 독출되는 단위 데이터에 매칭된 패리티 데이터 및 보호 범위에 대한 정보를 기초로 이루어진다.
특히, 에러 정정 디코딩은 상술한 에러 정정 처리 회로(100)의 복호화기(150)에 의해 수행될 수 있는데, 에러 정정 처리 회로(100)는 에러 정정 디코딩이 수행되기에 앞서 복호화기(150)의 제어부(154)로 보호 범위에 대한 정보를 전송할 수 있다. 또한, 독출하고자 하는 단위 데이터에 대한 정보를 포함하는 독출 신호는 프로세서(10)로부터 전달된 것일 수 있다.
에러 정정 디코딩을 수행함에 있어서, 상술한 회로는 다음과 같은 과정을 거쳐 수행할 수 있다. 우선, 패리티 데이터를 기초로 에러 정정 인코딩이 수행된 보호 데이터에 에러가 발생했는지 여부를 체크한다. 이때, 에러 정정 인코딩이 수행된 보호 데이터에 에러가 발생한 경우, 그 발생된 에러를 정정한다.
구체적으로, 메모리(20)에 기록된 단위 데이터로부터 신드롬(syndrome)을 생성하고, 그 생성된 신드롬을 이용하여 에러 정정 인코딩이 수행된 보호 데이터 내 에러 비트의 위치를 검출하며, 에러 비트의 비트 값을 반전시켜 에러 비트를 정정할 수 있다. 에러 비트를 정정하는 과정을 통해 에러가 정정된 데이터에 대하여 에러 정정 디코딩을 수행할 수 있다. 이어서, 단위 데이터를 메모리(20)로 전달한 프로세서(10)로 상술한 회로는 에러 정정 디코딩의 결과 데이터 및 메모리(20)에 기록된 단위 데이터 중 에러 정정 인코딩이 수행된 보호 데이터 이외의 데이터인 비보호 데이터를 전송할 수 있다.
이와 같은 본 발명의 일 실시예에 따른 에러 정정 처리 방법을 도 11에 도시된 구체적인 예시를 통해 설명하기로 한다. 도 11은 메모리의 동작 전압이 1000mV인 경우와 700mV인 경우 메모리에 발생된 에러를 정정 및 처리하는 과정을 각각 설명하기 위한 도면이다.
도 11의 ①은 메모리(20)의 동작 전압이 1000mV인 경우 종래 회로가 한 개의 워드 데이터 길이(word data length)가 64비트인 단위 데이터에 발생된 에러를 정정 및 처리하는 과정을 나타낸다. 부호화기(120)는 64비트인 단위 데이터 전체를 인코딩하고, 기록부(130)는 인코딩이 수행된 단위 데이터 및 패리티 데이터를 포함하는 코드워드를 메모리(20)에 기록한다. 이후에 복호화기(150)는 독출 신호를 기초로 기록된 코드워드를 독출하고, 디코딩 과정을 수행하여 단위 데이터를 얻는다. 다만, 코드워드 내 에러(a)가 발생할 수 있고, 기존의 방식은 발생된 에러(a)에 대한 정정 및 처리를 보장할 수 없으며, 발생된 에러(a)로 인해 최종적으로 얻는 단위 데이터는 심각한 오류를 가질 수 있다.
도 11의 ②는 메모리(20)의 동작 전압이 700mV인 경우 에러 정정 처리 회로(100)가 단위 데이터 중 보호 범위를 설정한 후 단위 데이터에 발생된 에러를 정정 및 처리하는 과정을 나타낸다. 보호 범위 설정부(110)는 64비트인 단위 데이터 중 32비트만큼을 보호 범위로 설정하고, 부호화기(120)는 비보호 범위에 해당되는 나머지 32비트를 0으로 처리한다(Zero-padding). 부호화기(120)는 32비트인 보호 데이터만을 에러 정정 인코딩한다. 또한, 기록부(130)는 에러 정정 인코딩이 수행된 보호 데이터 및 패리티 데이터를 포함하는 코드워드와, 비보호 데이터를 메모리(20)에 각각 기록한다. 이후에 복호화기(150)는 독출 신호를 기초로 기록된 코드워드 및 비보호 데이터를 독출하고, 독출되는 단위 데이터에 매칭된 패리티 데이터 및 보호 범위에 대한 정보를 기초로 디코딩 과정을 수행하여 에러 정정 디코딩의 결과 데이터 및 비보호 데이터를 얻는다. 이때, 에러 정정 디코딩의 결과 데이터 및 비보호 데이터는 초기 단위 데이터와 실질적으로 동일하다. 코드워드 내 발생된 에러(a)는 에러 정정 처리 회로(100)에 의해 확실하게 정정된다. 비보호 데이터 내 발생된 에러(b)는 에러 정정 처리 회로(100)에 의해 정정될 수 없으나, 정정된 비트보다 상대적으로 중요도가 낮은 비트이므로 에러 정정 처리 회로(100)는 치명적인 오류를 방지할 수 있다.
한편, 도 3에서 도시된 각각의 구성요소는 일종의 '모듈'로 구성될 수 있다. 상기 '모듈'은 소프트웨어 또는 Field Programmable Gate Array(FPGA) 또는 주문형 반도체(ASIC, Application Specific Integrated Circuit)과 같은 하드웨어 구성요소를 의미하며, 모듈은 어떤 역할들을 수행한다. 그렇지만 모듈은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. 모듈은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 구성요소들과 모듈들에서 제공되는 기능은 더 작은 수의 구성요소들 및 모듈들로 결합되거나 추가적인 구성요소들과 모듈들로 더 분리될 수 있다.
또한, 도 3에서 상술한 메모리(20)는 캐쉬, ROM(Read Only Memory), PROM(Programmable ROM), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM) 및 플래쉬 메모리(Flash memory)와 같은 비휘발성 메모리 소자 또는 RAM(Random Access Memory)과 같은 휘발성 메모리 소자 또는 하드디스크 드라이브(HDD, Hard Disk Drive), CD-ROM과 같은 저장 매체 중 적어도 하나로 구현될 수 있으나 이에 한정되지는 않는다.
이하에서는, 본 발명의 일 실시예에 따른 에러 정정 처리 회로 및 에러 정정 처리 방법을 실제로 적용시킨 예에 대해 설명하기로 한다.
도 12는 도 8 및 도 9와 같은 제어를 통해 얻을 수 있는 효과를 보여주는 그래프이다.
이미 상술한 것처럼, 제어부(154)는 도 8처럼 신드롬 생성기(151) 내 비보호 데이터(b)를 위한 구성을 턴-오프시키고, 신드롬 생성기(151)가 비보호 데이터(b)를 항상 0으로 처리하도록 제어 신호를 송신할 수 있다. 또한, 제어부(154)는 도 9처럼 에러 검출기(152) 내 비보호 데이터(b)를 위한 구성을 턴-오프시키고, 에러 검출기(152)가 비보호 데이터(b)를 항상 0으로 처리하도록 제어 신호를 송신할 수 있다. 이로 인해 도 12처럼 복호화기(150)에서의 전력 소모량이 턴-오프시키는 데이터 길이에 따라 감소할 수 있다.
도 13은 H.264 회로 및 FFT 처리 회로 상에서 도 3에 도시된 에러 정정 처리 회로가 실제로 적용될 수 있는 위치를 설명하기 위한 도면이다. 도 13의 위에 나타낸 블록도는 H.264 회로의 구조를 간략하게 도시한 것으로서, 본 발명에서 제안된 에러 정정 처리 회로(100)가 Residual Frame Buffer SRAM, DCT Buffer, Quantization Buffer 등에 실제로 적용될 수 있다. 도 13의 아래에 나타낸 블록도는 FFT 처리 회로의 구조를 간략하게 도시한 것으로서, 본 발명에서 제안된 에러 정정 처리 회로(100)가 8K Embedded SRAM 등에 실제로 적용될 수 있다. 도 13에 도시된 예시는 적용될 수 있는 일 예를 나타내는 것일 뿐, 이와 같은 구현 형태로 제한되는 것은 아니다.
도 14는 H.264 회로에 에러 정정 처리 회로 및 그 방법을 적용시킨 경우 성능 변화를 나타내기 위한 그래프이다. H.264 회로 또는 모듈은 영상 압축 동작을 수행하므로, 결과 영상의 최대 신호 대 잡음비(Peak Signal to Noise Ratio; PSNR)를 통해 동작 품질을 판단할 수 있다. 본 발명에서 제안하는 방식(VL-ECC)을 적용한 경우의 성능이 종래 BCH(Bose-Chaudhuri-Hocquenghem) 코드 방식(conventional ECC)을 적용한 경우의 성능보다 뛰어나다는 것을 확인할 수 있고, 이러한 성능 향상은 낮은 동작 전압이 인가될수록 두드러진다는 것을 알 수 있다.
도 15는 FFT 처리 회로에 에러 정정 처리 회로 및 그 방법을 적용시킨 경우 성능 변화를 나타내기 위한 그래프이다. 24비트가 하나의 워드인 FFT 처리 회로에서 데이터 길이를 변화시키면서 신호 대 양자화 잡음비(Signal to Quantization Noise Ration; SQNR)를 이용하여 출력 품질을 측정한 것이다. 24비트에 해당하는 부분이 종래 BCH 코드 방식(conventional ECC)을 적용한 경우의 성능보다 본 발명에서 제안하는 방식(VL-ECC)을 적용한 경우의 성능이 월등하게 높다는 것을 확인할 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10: 프로세서 20: 메모리
100: 에러 정정 처리 회로 110: 보호 범위 설정부
120: 부호화기 130: 기록부
140: 통신부 150: 복호화기

Claims (16)

  1. 메모리에서의 에러 정정 처리 방법에 있어서,
    상기 메모리의 동작 전압에 따라 상기 메모리에 기록할 단위 데이터 중 에러 정정 범위에 해당하는 보호 범위를 적응적으로 설정하는 단계;
    상기 단위 데이터 중 상기 보호 범위에 대응하고 MSB(Most Significant Bit)를 포함하는 보호 데이터에 대하여 에러 정정 인코딩을 수행하는 단계; 및
    상기 단위 데이터를 상기 에러 정정 인코딩에 따라 생성된 패리티 데이터와 매칭하여 상기 메모리에 기록하는 단계를 포함하고,
    상기 설정하는 단계는 상기 메모리의 동작 전압이 낮아질수록 상기 보호 범위를 좁게 설정하는 에러 정정 처리 방법.
  2. 삭제
  3. 삭제
  4. 제 1 항에 있어서,
    상기 수행하는 단계는 상기 단위 데이터 중 상기 보호 데이터 이외의 데이터인 비보호 데이터를 0으로 설정하여 상기 에러 정정 인코딩을 수행하는, 에러 정정 처리 방법.
  5. 제 1 항에 있어서,
    상기 에러 정정 인코딩이 수행된 보호 데이터에 대하여 에러 정정 디코딩을 수행하는 복호화기의 제어부로 상기 보호 범위에 대한 정보를 전송하는 단계를 더 포함하는, 에러 정정 처리 방법.
  6. 제 1 항에 있어서,
    상기 메모리에 기록된 단위 데이터를 독출하는 경우, 상기 독출되는 단위 데이터에 매칭된 패리티 데이터 및 상기 보호 범위에 대한 정보를 기초로 상기 에러 정정 인코딩이 수행된 보호 데이터에 대하여 에러 정정 디코딩을 수행하는 단계를 더 포함하는, 에러 정정 처리 방법.
  7. 제 6 항에 있어서, 상기 에러 정정 디코딩을 수행하는 단계는
    상기 패리티 데이터를 기초로 상기 에러 정정 인코딩이 수행된 보호 데이터에 에러가 발생했는지 여부를 체크하는 단계;
    상기 에러 정정 인코딩이 수행된 보호 데이터에 에러가 발생한 경우 상기 에러를 정정하는 단계를 포함하는, 에러 정정 처리 방법.
  8. 제 7 항에 있어서, 상기 정정하는 단계는
    상기 메모리에 기록된 단위 데이터로부터 신드롬(syndrome)을 생성하는 단계;
    상기 생성된 신드롬을 이용하여 상기 에러 정정 인코딩이 수행된 보호 데이터 내 에러 비트의 위치를 검출하는 단계; 및
    상기 에러 비트의 비트 값을 반전시켜 상기 에러 비트를 정정하는 단계를 포함하는, 에러 정정 처리 방법.
  9. 제 7 항에 있어서,
    상기 정정하는 단계에서 상기 에러가 정정된 데이터에 대하여 상기 에러 정정 디코딩을 수행하는 단계; 및
    상기 단위 데이터를 상기 메모리로 전달한 프로세서로 상기 에러 정정 디코딩의 결과 데이터 및 상기 메모리에 기록된 단위 데이터 중 상기 에러 정정 인코딩이 수행된 보호 데이터 이외의 데이터인 비보호 데이터를 전송하는 단계를 더 포함하는, 에러 정정 처리 방법.
  10. 메모리에서의 에러 정정 처리 회로에 있어서,
    상기 메모리의 동작 전압에 따라 상기 메모리에 기록할 단위 데이터 중 에러 정정 범위에 해당하는 보호 범위를 적응적으로 설정하는 보호 범위 설정부;
    상기 단위 데이터 중 상기 보호 범위에 대응하고 MSB(Most Significant Bit)를 포함하는 보호 데이터에 대하여 에러 정정 인코딩을 수행하는 부호화기; 및
    상기 단위 데이터를 상기 에러 정정 인코딩에 따라 생성된 패리티 데이터와 매칭하여 상기 메모리에 기록하는 기록부를 포함하고,
    상기 보호 범위 설정부는 상기 메모리의 동작 전압이 낮아질수록 상기 보호 범위를 좁게 설정하는 에러 정정 처리 회로.
  11. 제 10 항에 있어서,
    상기 단위 데이터를 상기 메모리로 전달한 프로세서로부터 상기 메모리에 기록된 단위 데이터를 독출하기 위한 독출 신호를 수신하고, 상기 보호 범위 설정부로부터 상기 보호 범위에 대한 정보를 수신하는 통신부;
    상기 독출 신호에 대응하는 단위 데이터 및 상기 독출 신호에 대응하는 단위 데이터에 매칭된 패리티 데이터를 독출하고, 상기 독출된 패리티 데이터 및 상기 보호 범위에 대한 정보를 기초로 상기 에러 정정 인코딩이 수행된 보호 데이터에 대하여 에러 정정 디코딩을 수행하는 복호화기를 더 포함하는, 에러 정정 처리 회로.
  12. 제 11 항에 있어서, 상기 복호화기는 상기 독출된 패리티 데이터를 기초로 상기 에러 정정 인코딩이 수행된 보호 데이터에 에러가 발생했는지 여부를 체크하고, 상기 에러가 발생한 경우 상기 에러를 정정하는, 에러 정정 처리 회로.
  13. 제 12 항에 있어서, 상기 복호화기는
    BCH(Bose-Chaudhuri-Hocquenghem) 코드가 적용되고, 상기 메모리에 기록된 단위 데이터로부터 신드롬(syndrome)을 생성하는 신드롬 생성기;
    상기 BCH 코드가 적용되고, 상기 생성된 신드롬을 이용하여 상기 에러 정정 인코딩이 수행된 보호 데이터 내 에러 비트의 위치를 검출하는 에러 검출기; 및
    상기 에러 비트의 비트 값을 반전시켜 상기 에러 비트를 정정하는 에러 정정기를 포함하는, 에러 정정 처리 회로.
  14. 제 13 항에 있어서,
    상기 신드롬 생성기는 상기 메모리에 기록된 단위 데이터 중 상기 에러 정정 인코딩이 수행된 보호 데이터로부터 상기 신드롬을 생성하고,
    상기 에러 정정 인코딩이 수행된 보호 데이터 이외의 데이터인 비보호 데이터에 대하여 상기 신드롬을 생성하는 동작을 멈추도록 상기 보호 범위에 대한 정보를 기초로 상기 신드롬 생성기를 제어하는 제어부를 더 포함하는, 에러 정정 처리 회로.
  15. 제 13 항에 있어서, 상기 에러 검출기는 벌레캠프-매씨 알고리즘(Berlekamp-Massey algorithm) 및 치엔 탐색 알고리즘(Chien search algorithm)을 이용하여 구현되는 것인, 에러 정정 처리 회로.
  16. 제 15 항에 있어서, 상기 에러 검출기는 상기 BCH 코드의 상기 치엔 탐색 알고리즘을 통해 상기 에러 정정 인코딩이 수행된 보호 데이터 내 상기 에러 비트의 위치를 검출하고,
    상기 메모리에 기록된 단위 데이터 중 상기 에러 정정 인코딩이 수행된 보호 데이터 이외의 데이터인 비보호 데이터에 대하여 상기 에러 비트의 위치를 검출하는 동작을 멈추도록 상기 보호 범위에 대한 정보를 기초로 상기 에러 검출기를 제어하는 제어부를 더 포함하는, 에러 정정 처리 회로.
KR1020130025034A 2013-03-08 2013-03-08 메모리에서의 에러 정정 처리 회로 및 에러 정정 처리 방법 KR101439815B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020130025034A KR101439815B1 (ko) 2013-03-08 2013-03-08 메모리에서의 에러 정정 처리 회로 및 에러 정정 처리 방법
PCT/KR2014/001926 WO2014137202A1 (ko) 2013-03-08 2014-03-10 메모리에서의 에러 정정 처리 회로 및 에러 정정 처리 방법
US14/810,749 US9985659B2 (en) 2013-03-08 2015-07-28 Error correction processing circuit in memory and error correction processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130025034A KR101439815B1 (ko) 2013-03-08 2013-03-08 메모리에서의 에러 정정 처리 회로 및 에러 정정 처리 방법

Publications (1)

Publication Number Publication Date
KR101439815B1 true KR101439815B1 (ko) 2014-09-11

Family

ID=51491640

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130025034A KR101439815B1 (ko) 2013-03-08 2013-03-08 메모리에서의 에러 정정 처리 회로 및 에러 정정 처리 방법

Country Status (3)

Country Link
US (1) US9985659B2 (ko)
KR (1) KR101439815B1 (ko)
WO (1) WO2014137202A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016063592A1 (ja) * 2014-10-24 2016-04-28 ソニー株式会社 メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法
US10331515B2 (en) 2014-12-10 2019-06-25 Cnex Labs, Inc. Computing system with shift data protection mechanism and method of operation thereof
US9594629B2 (en) 2015-06-03 2017-03-14 King Abdulaziz City For Science And Technology Data error correction from cached error correction information
US20170324425A1 (en) * 2016-05-06 2017-11-09 Infineon Technologies Ag Embedded parity matrix generator
US10558523B2 (en) 2016-05-31 2020-02-11 Cnex Labs, Inc. Computing system with data protection enhancement mechanism and method of operation thereof
US10003360B2 (en) * 2016-10-03 2018-06-19 Macronix Internatonal Co., Ltd. Device and method for finding error location
US11475274B2 (en) 2017-04-21 2022-10-18 International Business Machines Corporation Parameter criticality-aware resilience
KR20190038964A (ko) * 2017-10-02 2019-04-10 에스케이하이닉스 주식회사 에러 정정 코드 유닛, 그것의 인코딩 및 디코딩 방법
US11335405B2 (en) 2018-12-17 2022-05-17 Samsung Electronics Co., Ltd. Nonvolatile memory device and operation method thereof
KR20200075184A (ko) 2018-12-17 2020-06-26 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 동작 방법
US11115055B2 (en) * 2019-01-10 2021-09-07 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding data in memory system
US11010243B2 (en) * 2019-09-09 2021-05-18 Winbond Electronics Corp. Memory apparatus with error bit correction in data reading period

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950033822A (ko) * 1994-02-22 1995-12-26 알베르트 발도르프·롤프 옴케 에러검출 및 정정용 반도체 메모리 장치
JP2010191761A (ja) 2009-02-19 2010-09-02 Nec Computertechno Ltd メモリ制御装置及び制御方法
KR20110100465A (ko) * 2010-03-04 2011-09-14 삼성전자주식회사 메모리 시스템
KR20120096749A (ko) * 2011-02-23 2012-08-31 삼성전자주식회사 메모리 장치 및 메모리 시스템

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950033822U (ko) 1994-05-09 1995-12-18 유재희 직류 무브러시 배기팬 모타의 구동회로
US7581154B2 (en) * 2005-06-30 2009-08-25 Intel Corporation Method and apparatus to lower operating voltages for memory arrays using error correcting codes
US8015473B2 (en) 2006-12-19 2011-09-06 Intel Corporation Method, system, and apparatus for ECC protection of small data structures
US8042022B2 (en) * 2007-03-08 2011-10-18 Micron Technology, Inc. Method, system, and apparatus for distributed decoding during prolonged refresh
US8615690B2 (en) * 2011-05-05 2013-12-24 Mediatek Inc. Controller of memory device and method for operating the same
US8898548B1 (en) * 2012-08-24 2014-11-25 Western Digital Technologies, Inc. Methods, data storage devices and systems having variable size ECC page size
WO2014051625A1 (en) * 2012-09-28 2014-04-03 Hewlett-Packard Development Company, L.P. Dynamically selecting between memory error detection and memory error correction
US9071281B2 (en) * 2013-03-10 2015-06-30 Intel Corporation Selective provision of error correction for memory
CN104575586B (zh) * 2013-10-15 2019-02-22 恩智浦美国有限公司 基于错误信息的存储器设备保持模式
US9654148B2 (en) * 2015-01-06 2017-05-16 Samsung Electronics Co., Ltd. Reconfigurable ECC for memory
US10141955B2 (en) * 2015-04-11 2018-11-27 International Business Machines Corporation Method and apparatus for selective and power-aware memory error protection and memory management

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950033822A (ko) * 1994-02-22 1995-12-26 알베르트 발도르프·롤프 옴케 에러검출 및 정정용 반도체 메모리 장치
JP2010191761A (ja) 2009-02-19 2010-09-02 Nec Computertechno Ltd メモリ制御装置及び制御方法
KR20110100465A (ko) * 2010-03-04 2011-09-14 삼성전자주식회사 메모리 시스템
KR20120096749A (ko) * 2011-02-23 2012-08-31 삼성전자주식회사 메모리 장치 및 메모리 시스템

Also Published As

Publication number Publication date
US9985659B2 (en) 2018-05-29
US20150331741A1 (en) 2015-11-19
WO2014137202A1 (ko) 2014-09-12

Similar Documents

Publication Publication Date Title
KR101439815B1 (ko) 메모리에서의 에러 정정 처리 회로 및 에러 정정 처리 방법
US10135465B2 (en) Error correction methods and apparatuses using first and second decoders
US7890818B2 (en) Read level control apparatuses and methods
US7823043B2 (en) Corruption-resistant data porting with multiple error correction schemes
KR101433620B1 (ko) 처리량을 높이기 위하여 더블 버퍼링 구조와 파이프라이닝기법을 이용하는 디코더 및 그 디코딩 방법
JP4152887B2 (ja) リニアブロックコードに関する消去箇所−及び−単一−エラー訂正デコーダ
US9455749B2 (en) Combination error and erasure decoding for product codes
US8560915B2 (en) 2D product code and method for detecting false decoding errors
US9912355B2 (en) Distributed concatenated error correction
US8533557B2 (en) Device and method for error correction and protection against data corruption
US20060085726A1 (en) Apparatus and method for decoding Reed-Solomon code
KR20090099756A (ko) 메모리 장치 및 인코딩/디코딩 방법
US9811417B2 (en) Semiconductor memory device
KR101819152B1 (ko) 오류 정정 코드를 디코딩하기 위한 방법 및 이와 관련된 디코딩 회로
US9250995B2 (en) Protection of data in memory
JP4790790B2 (ja) 誤り検出訂正回路及び半導体メモリ
US11119847B2 (en) System and method for improving efficiency and reducing system resource consumption in a data integrity check
US9164831B2 (en) Memory controller, semiconductor storage device, and decoding method
US10326477B2 (en) Techniques for miscorrection detection for constituent codewords in product codes
US20150200686A1 (en) Encoding device, decoding device, and operating method thereof
US20090271689A1 (en) Information processing device and information processing method
KR20150107603A (ko) 인터리빙 깊이를 조절하기 위한 장치 및 방법
JP2003298426A (ja) 誤り訂正装置及び方法

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170707

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180723

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190808

Year of fee payment: 6