KR101439815B1 - Circuit and method for processing error of memory - Google Patents

Circuit and method for processing error of memory 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
Korean (ko)
Inventor
박종선
박장원
Original Assignee
고려대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 고려대학교 산학협력단 filed Critical 고려대학교 산학협력단
Priority to KR1020130025034A priority Critical patent/KR101439815B1/en
Priority to PCT/KR2014/001926 priority patent/WO2014137202A1/en
Application granted granted Critical
Publication of KR101439815B1 publication Critical patent/KR101439815B1/en
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

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

In the present invention, disclosed are a circuit and a method for correcting the error of a memory. Specially, the method for correcting the error of a memory according to one embodiment of the present invention includes the steps of: adaptively setting a protection range corresponding to an error correction range among unit data to be written in the memory according to an operation voltage of the memory; performing the error correction encoding of protection data which include the most significant bit (MSB) and corresponds to the protection range among the unit data; and writing the unit data in the memory by matching the unit data with parity data which are generated by the error correction encoding. The setting step narrowly sets the protection range according as the operation voltage of the memory becomes low.

Description

메모리에서의 에러 정정 처리 회로 및 에러 정정 처리 방법{CIRCUIT AND METHOD FOR PROCESSING ERROR OF MEMORY}Technical Field [0001] The present invention relates to an error correction processing circuit and an error correction processing method in a memory,

본 발명은 에러 정정 처리 회로 및 에러 정정 처리 방법에 관한 것이고, 보다 구체적으로 메모리에 발생하는 에러를 정정 및 처리하는 회로 및 메모리에 발생하는 에러를 정정 및 처리하는 방법에 관한 것이다.
The present invention relates to an error correction processing circuit and an error correction processing method, and more particularly to a circuit for correcting and processing an error occurring in a memory and a method for correcting and processing errors occurring in the memory.

에러 정정 부호(Error Correction Code; ECC)는, 수신기가 전송되는 문자가 무엇인가를 추론할 수 있도록 전송되는 데이터 블록에 충분한 여분의 정보(Redundancy)를 포함시키는 부호화(채널부호화) 방식을 말한다. 에러 정정 부호는 디지털 통신에서 중요한 위치를 차지하고, 데이터 저장 및 전송을 위한 하드웨어 내에도 적용되고 있다. An error correction code (ECC) refers to a coding (channel coding) scheme in which redundant information sufficient for a data block to be transmitted is included so that a receiver can infer what the transmitted character is. Error correction codes occupy an important position in digital communications and are also applied within hardware for data storage and transmission.

도 1은 메모리에 발생하는 에러 및 이러한 에러를 정정 및 처리하는 에러 정정 처리 회로에 대한 개념을 설명하기 위한 도면이다. 1 is a diagram for explaining an error occurring in a memory and a concept of an error correction processing circuit for correcting and processing such error.

도 1처럼 입력 데이터는 채널 내 메모리 셀에 기록되기 위해 기록 회로를 거치고, 출력 데이터는 독출 회로를 거쳐 메모리 셀로부터 독출된다. 이때, 기록 회로, 독출 회로 및 메모리 셀을 포함하는 메모리에서 에러가 발생할 수 있다. 이렇게 발생된 에러를 정정하기 위해 에러 정정 부호가 적용된 회로가 연결될 수 있다. As shown in Fig. 1, input data is passed through a write circuit to be written to a memory cell in a channel, and output data is read from a memory cell via a read circuit. At this time, an error may occur in the memory including the recording circuit, the reading circuit, and the memory cell. A circuit to which an error correction code is applied may be connected to correct the errors generated.

한국공개특허 제2009-0091179호(발명의 명칭: 작은 데이터 구조의 ECC 보호 장치, 방법 및 시스템)는 상이한 크기의 데이터 구조에 대한 에러 정정 동작을 지원하는 에러 정정 부호 엔진에 대해 개시하고 있다. Korean Patent Publication No. 2009-0091179 (entitled " ECC protection device, method and system with small data structure ") discloses an error correction code engine that supports error correction operations on data structures of different sizes.

한편, 최근 저전력 하드웨어에 대한 연구가 활발하게 이루어지고 있다. 이때, 하드웨어의 동작 전압을 낮추는 방법이 가장 효과적일 수 있다. On the other hand, researches on low-power hardware have been actively conducted recently. At this time, a method of lowering the operating voltage of the hardware may be most effective.

다만, 메모리의 경우 동작 전압이 낮아질수록 에러가 발생할 확률이 도 2처럼 증가한다는 문제점이 있다. 도 2는 메모리의 동작 전압에 따라 달라지는 에러 확률을 나타내는 그래프이다. 즉, 하드웨어의 동작 전압을 감소시키면 전력 소비를 감소시킬 수 있지만, 메모리 부근에 에러 발생 확률이 증가하여 전체적인 출력 품질이 떨어진다는 문제점이 있다.
However, in the case of a memory, the probability of occurrence of an error increases as the operating voltage decreases, as shown in FIG. 2 is a graph showing the error probability depending on the operating voltage of the memory. That is, if the operating voltage of the hardware is reduced, the power consumption can be reduced. However, there is a problem that the probability of occurrence of errors increases in the vicinity of the memory, thereby deteriorating the overall output quality.

본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 본 발명의 일부 실시예는 메모리에 기록할 데이터 중 중요도가 높은 데이터에 대하여 발생된 에러를 우선적으로 정정할 수 있는 에러 정정 처리 회로 및 에러 정정 처리 방법을 제공하는 데에 그 목적이 있다. SUMMARY OF THE INVENTION The present invention has been made in order to solve the above problems of the conventional art, and it is an object of the present invention to provide an error correction circuit and an error correction circuit which can correct errors generated with respect to data, And an object of the present invention is to provide a correction processing method.

또한, 본 발명의 일부 실시예는 디코딩을 수행하는 복호화기의 일부 구성을 턴-오프시켜 전체적인 전력소비를 저감시킬 수 있는 에러 정정 처리 회로 및 에러 정정 처리 방법을 제공하는 데에 다른 목적이 있다. It is another object of the present invention to provide an error correction processing circuit and an error correction processing method which can reduce the overall power consumption by turning off a part of the decoder for performing decoding.

다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
It should be understood, however, that the technical scope of the present invention is not limited to the above-described technical problems, and other technical problems may exist.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 일 실시예에 따른 메모리에서의 에러 정정 처리 방법은, 상기 메모리의 동작 전압에 따라 상기 메모리에 기록할 단위 데이터 중 에러 정정 범위에 해당하는 보호 범위를 적응적으로 설정하는 단계; 상기 단위 데이터 중 상기 보호 범위에 대응하고 MSB(Most Significant Bit)를 포함하는 보호 데이터에 대하여 에러 정정 인코딩을 수행하는 단계; 및 상기 단위 데이터를 상기 에러 정정 인코딩에 따라 생성된 패리티 데이터와 매칭하여 상기 메모리에 기록하는 단계를 포함하고, 상기 설정하는 단계는 상기 메모리의 동작 전압이 낮아질수록 상기 보호 범위를 좁게 설정한다.
상기 메모리의 동작 전압에 따라 상기 메모리에 기록할 단위 데이터 중 보호 범위를 설정하는 단계; 상기 단위 데이터 중 상기 보호 범위에 대응하는 보호 데이터에 대하여 에러 정정 인코딩을 수행하는 단계; 및 상기 단위 데이터를 상기 에러 정정 인코딩에 따라 생성된 패리티 데이터와 매칭하여 상기 메모리에 기록하는 단계를 포함한다.
According to an aspect of the present invention, there is provided an error correction processing method in a memory, the method comprising: Adaptively setting a protection range; Performing error correction encoding on protection data corresponding to the protection range of the unit data and including an MSB (Most Significant Bit); And writing the unit data in the memory by matching with the parity data generated according to the error correction encoding, wherein the setting step narrows the protection range as the operating voltage of the memory is lowered.
Setting a protection range of unit data to be written in the memory according to an operating voltage of the memory; Performing error correction encoding on the protection data corresponding to the protection range of the unit data; And writing the unit data to the memory by matching the unit data with the parity data generated according to the error correction encoding.

또한, 본 발명의 다른 실시예에 따른 메모리에서의 에러 정정 처리 회로는, 상기 메모리의 동작 전압에 따라 상기 메모리에 기록할 단위 데이터 중 에러 정정 범위에 해당하는 보호 범위를 적응적으로 설정하는 보호 범위 설정부; 상기 단위 데이터 중 상기 보호 범위에 대응하고 MSB(Most Significant Bit)를 포함하는 보호 데이터에 대하여 에러 정정 인코딩을 수행하는 부호화기; 및 상기 단위 데이터를 상기 에러 정정 인코딩에 따라 생성된 패리티 데이터와 매칭하여 상기 메모리에 기록하는 기록부를 포함하고, 상기 보호 범위 설정부는 상기 메모리의 동작 전압이 낮아질수록 상기 보호 범위를 좁게 설정한다.
The error correction processing circuit in the memory according to another embodiment of the present invention may further include a protection range adaptively setting a protection range corresponding to an error correction range of unit data to be written in the memory in accordance with an operating voltage of the memory, Setting section; An encoder for performing error correction encoding on protection data corresponding to the protection range of the unit data and including an MSB (Most Significant Bit); And a write unit for matching the unit data with parity data generated according to the error correction encoding and recording the unit data in the memory. The protection range setting unit narrows the protection range as the operating voltage of the memory decreases.

전술한 본 발명의 과제 해결 수단 중 어느 하나인 에러 정정 처리 회로 및 에러 정정 처리 방법은 단위 데이터 중 보호 범위에 대응하는 보호 데이터에 대하여 에러 정정 인코딩을 수행함으로써, 전력 소모 및 계산 결과 오차를 최소화시킬 수 있다는 장점이 있다.The error correction processing circuit and the error correction processing method according to any one of the above objects of the present invention perform error correction encoding on the protection data corresponding to the protection range of the unit data so as to minimize the power consumption and the calculation result error There is an advantage that it can be.

또한, 전술한 본 발명의 과제 해결 수단 중 어느 하나인 에러 정정 처리 회로 및 에러 정정 처리 방법은 독출된 패리티 데이터 및 보호 범위에 대한 정보를 기초로 에러 정정 인코딩이 수행된 보호 데이터에 대하여 에러 정정 디코딩을 수행함으로써, 보호 데이터에 발생된 에러를 명확하게 정정할 수 있다. 또한, 에러 정정 디코딩을 수행함에 있어서, 불필요한 구성에 대하여 턴-오프 처리하여 전체적인 전력 소비를 감소시킬 수 있다.
According to another aspect of the present invention, there is provided an error correction processing circuit and an error correction processing method for performing error correction decoding on protected data on which error correction encoding has been performed based on information on read parity data and a protection range The error generated in the protected data can be clearly corrected. Further, in performing error correction decoding, it is possible to reduce the overall power consumption by performing a turn-off process on an unnecessary configuration.

도 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 처리 회로에 에러 정정 처리 회로 및 그 방법을 적용시킨 경우 성능 변화를 나타내기 위한 그래프이다.
1 is a diagram for explaining an error occurring in a memory and an error correction processing circuit for correcting and processing such error,
2 is a graph showing the error probability depending on the operating voltage of the memory,
3 is a block diagram showing the entire structure of an error correction processing circuit according to an embodiment of the present invention;
4 is a diagram for explaining unit data, protected data, and unprotected data;
5 is a diagram for explaining the operation of the encoder shown in FIG. 3,
FIG. 6 is a diagram for specifically explaining an encoding process by the encoder of FIG. 5,
FIG. 7 is a view for explaining the detailed structure of the decoder shown in FIG. 3,
8 is a view for explaining the detailed structure of the syndrome generator in the configuration shown in FIG. 7,
9 is a view for explaining the detailed structure of the error detector in the configuration shown in FIG. 7,
10 is a flowchart for explaining an error correction processing method according to an embodiment of the present invention,
11 is a diagram for explaining a process of correcting and processing an error generated in the memory when the operating voltage of the memory is 1000 mV and when it is 700 mV,
FIG. 12 is a graph showing the effect that can be obtained through the control shown in FIGS. 8 and 9,
13 is a diagram for explaining a position where the error correction processing circuit shown in FIG. 3 can actually be applied on the H.264 circuit and the FFT processing circuit,
FIG. 14 is a graph showing an error correction processing circuit and a performance change when the method is applied to the H.264 circuit,
FIG. 15 is a graph for illustrating a change in performance when an error correction processing circuit and the method are applied to an FFT processing circuit.

아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings, which will be readily apparent to those skilled in the art. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when an element is referred to as "comprising ", it means that it can include other elements as well, without excluding other elements unless specifically stated otherwise.

도 3은 본 발명의 일 실시예에 따른 에러 정정 처리 회로의 구조를 전체적으로 도시한 블록도이다. 3 is a block diagram showing the entire structure of an error correction processing circuit according to an embodiment of the present invention.

에러 정정 처리 회로(100)는 메모리에 발생하는 에러를 정정 및 처리하는 회로로서, 보호 범위 설정부(110), 부호화기(120), 기록부(130), 통신부(140) 및 복호화기(150)를 포함한다. The error correction processing circuit 100 is a circuit for correcting and processing errors occurring in the memory and includes a protection range setting unit 110, an encoder 120, a recording unit 130, a communication unit 140, and a decoder 150 .

에러 정정 처리 회로(100)는 프로세서(10)와 메모리(20) 사이에 배치되어 인코딩된 데이터, 디코딩된 데이터를 포함하는 데이터를 처리하고, 전달할 수 있다. 다만, 도 3에 도시된 에러 정정 처리 회로(100)는 구현될 수 있는 한가지 예시 형태일 뿐이므로, 이에 한정되는 것은 아니고, 각 구성 혹은 각 구성의 동작을 수행하는 별개의 회로가 분리된 상태로 구현되어 서로 연결될 수도 있다. The error correction processing circuit 100 may be disposed between the processor 10 and the memory 20 to process and transmit data including encoded data and decoded data. However, the error correction processing circuit 100 shown in FIG. 3 is only one example that can be implemented. Therefore, the present invention is not limited thereto, and a separate circuit for performing the operation of each configuration or each configuration may be separated May be implemented and connected to each other.

구체적으로 에러 정정 처리 회로(100)에 포함된 각 구성에 대해 설명하기에 앞서서, 도 4를 참고하여 본 명세서에서 사용되는 용어에 대해 설명하기로 한다. 도 4는 단위 데이터, 보호 데이터 및 비보호 데이터에 대하여 설명하기 위한 도면이다. Before describing each configuration included in the error correction processing circuit 100 in detail, the terms used in this specification will be described with reference to FIG. 4 is a diagram for explaining unit data, protection data, and unprotected data.

메모리(20)에 기록할 데이터는 본 명세서에서 단위 데이터라 지칭되고, 프로세서(10)에서 메모리(20)로 전달되는 데이터일 수 있으며, 도 4는 8비트로 이루어진 단위 데이터의 일 예를 나타내고 있다. 이때, 도 4에 도시된 것처럼 단위 데이터에 a, b, c와 같은 복수의 에러들이 어플리케이션 상태나 환경에 따라 가변적으로 발생할 수 있고, 이러한 에러는 에러 정정 처리 회로(100)가 정정 및 처리할 수 있는 최대 비트(예를 들어, 2비트 또는 미리 설정된 비트 값)를 초과할 수 있다. 이러한 경우 단위 데이터에 발생된 모든 에러에 대한 정정 및 처리가 불가능해지고, 도 4의 좌측 도면처럼 d와 같은 에러가 추가적으로 발생할 수도 있다. Data to be written in the memory 20 is referred to as unit data herein and may be data transferred from the processor 10 to the memory 20, and FIG. 4 shows an example of 8-bit unit data. 4, a plurality of errors such as a, b, and c may occur in the unit data according to the application state or environment, and such errors may be corrected and corrected by the error correction processing circuit 100 (For example, 2 bits or a predetermined bit value). In this case, it is impossible to correct and process all errors generated in the unit data, and an error such as d may additionally occur as shown in the left drawing of FIG.

따라서 본 발명의 일 실시예에 따른 에러 정정 처리 회로(100)가 정정 및 처리할 수 있는 범위를 고려하여 단위 데이터에 발생된 에러를 정정 및 처리한다. 이때, 에러를 정정 및 처리할 수 있는 범위는 후술할 보호 범위 설정부(110)에 의해 설정되고, 보호 범위라 지칭된다. 보호 범위는 동작 전압 및 가변적인 데이터 길이 구조와 밀접한 연관을 가진다. 또한, 본 명세서에서는 이러한 보호 범위 이외의 범위를 비보호 범위라 지칭한다. 도 4의 우측 도면에 도시된 것처럼, 단위 데이터 중 보호 범위에 대응하는 데이터는 보호 데이터라고 할 수 있고, 비보호 범위에 대응하는 데이터는 비보호 데이터라고 할 수 있다. 즉, 보호 데이터에 발생한 에러(a, b)는 에러 정정 처리 회로(100)에 의해 정정되지만, 비보호 데이터에 발생한 에러(c)는 에러 정정 처리 회로(100)에 의해 정정되지 않는다. 이는 에러 정정 처리 회로(100)에서 정정 및 처리할 수 있는 데이터의 길이를 의도적으로 감소시킨 결과이고, 이를 통해 에러 발생 확률을 크게 감소시킬 수 있다. Therefore, in consideration of the range that can be corrected and processed by the error correction processing circuit 100 according to the embodiment of the present invention, the error generated in the unit data is corrected and processed. At this time, the range in which errors can be corrected and processed is set by a protection range setting unit 110 to be described later, and is referred to as a protection range. The protection range is closely related to the operating voltage and the variable data length structure. Further, in this specification, a range other than the above-mentioned protection range is referred to as an unprotected range. As shown in the right drawing of Fig. 4, data corresponding to the protection range of the unit data can be referred to as protected data, and data corresponding to the unprotected range can be referred to as unprotected data. That is, the errors (a, b) generated in the protection data are corrected by the error correction processing circuit 100, but the error (c) generated in the unprotected data is not corrected by the error correction processing circuit 100. This is a result of intentionally reducing the length of data that can be corrected and processed by the error correction processing circuit 100, thereby greatly reducing the error occurrence probability.

이하, 도 3 에 도시된 각 구성의 구체적인 동작에 대하여 설명하기로 한다. Hereinafter, a specific operation of each configuration shown in FIG. 3 will be described.

보호 범위 설정부(110)는 메모리(20)의 동작 전압에 따라 메모리(20)에 기록할 단위 데이터 중 보호 범위를 설정한다. 즉, 소정의 데이터에 에러가 발생하고, 보호 범위 설정부(110)에 의해 설정된 보호 범위가 소정의 데이터를 포함하는 경우, 본 발명의 일 실시예에 따른 에러 정정 처리 회로(100)는 소정의 데이터에 발생된 에러를 확실하게 정정 및 처리할 수 있다. 이렇게 보호 범위 설정부(110)에 의해 설정되는 보호 범위는 메모리(20)의 동작 전압에 따라 달라질 수 있다. 예를 들면, 메모리(20)의 동작 전압이 1000mV인 경우 보호 범위 설정부(110)는 제 1 보호 범위를 설정하고, 메모리(20)의 동작 전압이 700mV인 경우 보호 범위 설정부(110)는 제 2 보호 범위를 설정할 수 있으며, 제 1 보호 범위보다 제 2 보호 범위가 작을 수 있다.The protection range setting unit 110 sets the protection range of the unit data to be written in the memory 20 according to the operating voltage of the memory 20. [ That is, when an error occurs in predetermined data, and the protection range set by the protection range setting unit 110 includes predetermined data, the error correction processing circuit 100 according to an embodiment of the present invention performs predetermined processing It is possible to surely correct and process errors generated in the data. The protection range set by the protection range setting unit 110 may vary depending on the operating voltage of the memory 20. [ For example, when the operating voltage of the memory 20 is 1000 mV, the protection range setting unit 110 sets the first protection range. When the operating voltage of the memory 20 is 700 mV, the protection range setting unit 110 sets The second protection range can be set, and the second protection range can be smaller than the first protection range.

부호화기(Encoder, 120)는 단위 데이터 중 보호 범위에 대응하는 보호 데이터에 대하여 에러 정정 인코딩을 수행하고, 에러 정정 인코딩을 통해 패리티 데이터(parity data)를 생성한다. 즉, 부호화기(120)는 단위 데이터 중 보호 데이터에 대하여 에러 정정 인코딩을 수행하고, 비보호 데이터에 대하여 에러 정정 인코딩을 수행하지 않을 수 있다. 이로 인해 에러 정정 인코딩이 수행된 보호 데이터에 대해서만 후술할 에러 정정 디코딩이 필요할 수 있고, 에러 정정 디코딩을 통해 보호 데이터에 발생된 에러가 정정 및 처리될 수 있다. The encoder 120 performs error correction encoding on the protection data corresponding to the protection range of the unit data, and generates parity data through error correction encoding. That is, the encoder 120 performs the error correction encoding on the protected data in the unit data, and does not perform the error correction encoding on the unprotected data. This may require error correction decoding to be described later only for the protection data for which error correction encoding has been performed, and errors generated in the protection data through error correction decoding can be corrected and processed.

구체적으로, 부호화기(120)는 도 5에 도시된 일 예처럼 에러 정정 인코딩을 수행할 수 있다. 도 5는 도 3에 도시된 구성 중 부호화기의 동작을 설명하기 위한 도면이다. 종래의 경우 128비트의 단위 데이터는 부호화기(120)에 의해 에러 정정 인코딩 될 수 있고, ①과 같이 에러 정정 인코딩이 수행된 128비트의 단위 데이터 및 패리티 데이터가 생성된다. 본 발명의 일 실시예에 따르면 메모리(20)의 동작 전압에 따라 보호 범위가 설정된다. 이로 인해, ②와 같이 128비트의 단위 데이터 중 32비트의 보호 범위와 6비트의 비보호 범위가 설정된다. 이들 중 보호 범위에 대응하는 32비트의 보호 데이터는 부호화기(120)에 의해 에러 정정 인코딩 되고, 비보호 범위에 대응하는 96비트의 비보호 데이터는 제로 패딩(Zero-padding)을 통해 0으로 처리된 후 에러 정정 인코딩이 수행될 수 있다. 결국 에러 정정 인코딩이 수행된 32비트의 보호 데이터 및 패리티 데이터가 생성된다. Specifically, the encoder 120 may perform error correction encoding as illustrated in FIG. 5 is a view for explaining the operation of the encoder shown in FIG. In the conventional case, 128-bit unit data can be error-correction-encoded by the encoder 120, and 128-bit unit data and parity data in which error-correction encoding has been performed are generated as in (1). According to an embodiment of the present invention, a protection range is set according to the operating voltage of the memory 20. [ As a result, the protection range of 32 bits and the non-protection range of 6 bits are set out of the 128-bit unit data as shown by (2). The 32-bit protected data corresponding to the protection range is error-correction-encoded by the encoder 120, and the 96-bit unprotected data corresponding to the unprotected range is processed as zero through zero padding, Correction encoding can be performed. As a result, 32-bit protected data and parity data in which error correction encoding is performed are generated.

보다 구체적으로, 부호화기(120)는 입력되는 데이터에 제너레이터 행렬(Generator Matrix)가 곱해져 에러 정정 인코딩이 수행된 데이터와 패리티 데이터를 포함하는 코드워드(Codeword)를 도 6처럼 생성할 수 있다. 도 6은 도 5의 부호화기에 의한 인코딩 과정을 구체적으로 설명하기 위한 도면이다. 이때, 패리티 데이터는 입력되는 데이터의 크기와 보정 가능한 비트 수에 따라 달라질 수 있고, 제너레이터 행렬은 입력되는 데이터가 그대로 전달되는 아이덴티티 행렬(Identity Matrix)과 패리티 데이터를 생성하는 패리티 행렬로 이루어질 수 있다. More specifically, the encoder 120 may generate a code word (codeword) including parity data and data in which error correction encoding is performed by multiplying input data by a generator matrix, as shown in FIG. FIG. 6 is a diagram for explaining the encoding process by the encoder of FIG. 5 in detail. At this time, the parity data may be changed according to the size of the input data and the number of bits that can be corrected. The generator matrix may be composed of an identity matrix for transmitting input data as it is and a parity matrix for generating parity data.

기록부(130)는 단위 데이터를 에러 정정 인코딩에 따라 생성된 패리티 데이터와 매칭하여 메모리(20)에 기록한다. 기록부(130)가 메모리(20)에 데이터를 기록하는 방식이나 단위 데이터와 패리티 데이터를 서로 매칭시키는 방식은 종래에 공개된 방식을 따를 수 있고, 특별히 제한된 것은 아니다. The recording unit 130 matches the unit data with the parity data generated in accordance with the error correction encoding and records the unit data in the memory 20. The manner in which the recording unit 130 records data in the memory 20 or the manner in which the unit data and the parity data are matched with each other can follow conventional methods and is not particularly limited.

통신부(140)는 단위 데이터를 메모리(20)로 전달한 프로세서(10)로부터 독출 신호를 수신하는데, 독출 신호는 메모리(20)에 기록된 단위 데이터를 독출하거나 읽어오기 위한 신호이다. 또한, 통신부(140)는 보호 범위 설정부(110)로부터 보호 범위에 대한 정보를 수신한다. 이때, 보호 범위에 대한 정보는 단위 데이터 중 어떤 데이터가 보호 데이터 혹은 비보호 데이터에 해당하는지 판단할 수 있는 기초 자료가 될 수 있고, 복호화기(150)로 전달될 수 있다. The communication unit 140 receives a read signal from the processor 10 that transfers the unit data to the memory 20, and the read signal is a signal for reading or reading the unit data recorded in the memory 20. The communication unit 140 also receives information on the protection range from the protection range setting unit 110. [ At this time, the information on the protection range may be basic data for determining which data in the unit data corresponds to the protected data or the unprotected data, and may be transmitted to the decryptor 150.

복호화기(Decoder, 150)는 독출 신호에 대응하는 단위 데이터 및 독출 신호에 대응하는 단위 데이터에 매칭된 패리티 데이터를 독출하고, 독출된 패리티 데이터 및 보호 범위에 대한 정보를 기초로 에러 정정 인코딩이 수행된 보호 데이터에 대하여 에러 정정 디코딩을 수행한다. The decoder 150 reads the parity data matched with the unit data corresponding to the read signal and the unit data corresponding to the read signal and performs error correction encoding on the basis of the read parity data and information on the protection range And performs error correction decoding on the protected data.

구체적으로, 복호화기(150)는 독출된 패리티 데이터를 기초로 에러 정정 인코딩이 수행된 보호 데이터에 에러가 발생했는지 여부를 체크할 수 있다. 패리티 데이터는 기록부(130)에 의해 단위 데이터와 매칭되어 메모리(20)에 기록되므로, 복호화기(150)는 독출 신호에 대응하는 단위 데이터 및 그에 매칭된 패리티 데이터를 독출할 수 있다. 또한, 복호화기(150)는 독출 신호에 대응하는 단위 데이터 중 에러 정정 인코딩이 수행된 보호 데이터가 어떤 데이터인지 보호 범위에 대한 정보를 기초로 판단할 수 있고, 에러 정정 인코딩이 수행된 보호 데이터로 판단된 데이터에 대해 에러가 발생했는지 여부를 독출된 패리티 데이터를 기초로 체크할 수 있다. 이때, 에러 정정 인코딩이 수행된 보호 데이터에 에러가 발생한 것으로 판단되면, 복호화기(150)는 발생된 에러를 정정하는 동작을 수행할 수 있다.Specifically, the decoder 150 may check whether or not an error has occurred in the protection data in which the error correction encoding has been performed based on the read parity data. Since the parity data is matched with the unit data by the recording unit 130 and is recorded in the memory 20, the decoder 150 can read the unit data corresponding to the read signal and the parity data matched thereto. In addition, the decoder 150 can determine, based on the information on the protection range, which of the unit data corresponding to the read signal is the error-correction-encoded protection data, It is possible to check whether or not an error has occurred in the determined data based on the read parity data. At this time, if it is determined that an error occurs in the protection data on which the error correction encoding has been performed, the decoder 150 may perform an operation of correcting the generated error.

도 7은 도 3에 도시된 구성 중 복호화기의 세부 구조를 설명하기 위한 도면이다. FIG. 7 is a view for explaining the detailed structure of the decoder shown in FIG. 3. FIG.

보다 구체적으로, 복호화기(150)는 신드롬 생성기(151), 에러 검출기(152), 에러 정정기(153), 제어부(154) 및 선입선출(FIFO) 제어기(155)를 포함할 수 있다. More specifically, the decoder 150 may include a syndrome generator 151, an error detector 152, an error corrector 153, a controller 154, and a first-in-first-out (FIFO) controller 155.

신드롬 생성기(151)는 메모리(20)에 기록된 단위 데이터로부터 신드롬(syndrome)을 생성할 수 있고, 에러 검출기(152)는 생성된 신드롬 및 다항식을 이용하여 에러 정정 인코딩이 수행된 보호 데이터 내 에러 비트의 위치를 검출할 수 있다. 또한, 신드롬 생성기(151) 및 에러 검출기(152)에 BCH(Bose-Chaudhuri-Hocquenghem) 코드가 적용될 수 있고, 에러 검출기(152)는 벌레캠프-매씨 알고리즘(Berlekamp-Massey algorithm)을 이용해 다항식을 산출할 수 있고, 치엔 탐색 알고리즘(Chien search algorithm)을 이용하여 에러 비트의 위치를 검출할 수 있다. 덧붙여, 에러 정정기(153)는 에러 비트의 비트 값을 반전시켜 에러 비트를 정정할 수 있고, 선입선출 제어기(155)로부터 전달된 데이터를 활용할 수 있다.The syndrome generator 151 may generate syndromes from the unit data recorded in the memory 20 and the error detector 152 may use the generated syndromes and polynomials to generate errors in the error- The position of the bit can be detected. Bose-Chaudhuri-Hocquenghem (BCH) codes may be applied to the syndrome generator 151 and the error detector 152 and the error detector 152 may calculate the polynomial using the Berlekamp-Massey algorithm , And the position of the error bit can be detected using the Chien search algorithm. In addition, the error corrector 153 can correct the error bit by inverting the bit value of the error bit, and utilize the data transferred from the first-in first-out controller 155.

도 8은 도 7에 도시된 구성 중 신드롬 생성기의 세부 구조를 설명하기 위한 도면이고, 도 9는 도 7에 도시된 구성 중 에러 검출기의 세부 구조를 설명하기 위한 도면이다.FIG. 8 is a view for explaining the detailed structure of the syndrome generator in the configuration shown in FIG. 7, and FIG. 9 is a view for explaining the detailed structure of the error detector in the configuration shown in FIG.

신드롬 생성기(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)는 전력 소모 및 계산 결과 오차를 최소화시킬 수 있다. The syndrome generator 151 may generate the syndrome S from the protection data (a) in which the error correction encoding is performed among the unit data recorded in the memory 20 as shown in FIG. Also, the control unit 154 can control the syndrome generator 151 based on the information on the protection range so as to stop the operation of generating the syndrome for the unprotected data (b). At this time, the unprotected data b may mean data other than the protected data in which the error correction encoding is performed among the unit data recorded in the memory 20. [ For example, the syndrome generator 151 can process a maximum of 128 bits, and the control unit 154 controls the syndrome generator 151 according to how much the protection range for the unit data is 32/64/96/128 bits. Can be controlled. If the protection range is set such that 32 bits in the MSB (Most Significant Bit) are included in the protection data as shown in FIG. 8, the control unit 154 turns off the configuration for the unprotected data b in the syndrome generator 151, And the syndrome generator 151 can transmit a control signal to process the unprotected data b at all times. Accordingly, the error correction processing circuit 100 according to the embodiment of the present invention can minimize the power consumption and the calculation result error.

또한, 에러 검출기(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)는 전력 소모 및 계산 결과 오차를 최소화시킬 수 있다. In addition, the error detector 152 can detect the position of the error bit in the protection data (a) in which the error correction encoding has been performed through the CHN search algorithm of the BCH code as shown in Fig. In addition, the control unit 154 can control the error detector 152 based on the information on the protection range so as to stop the operation of detecting the position of the error bit with respect to the unprotected data (b). At this time, the unprotected data b may mean data other than the protected data in which the error correction encoding is performed among the unit data recorded in the memory 20. [ For example, the error detector 152 may process a maximum of 128 bits, and the controller 154 may control the error detector 152 according to how much the protection range for the unit data is 32/64/96/128 bits. Can be controlled. If the protection range is set so that 32 bits in the MSB (Most Significant Bit) are included in the protection data as shown in FIG. 9, the control unit 154 turns off the configuration for the unprotected data b in the error detector 152, Off, and the error detector 152 can transmit a control signal to process the unprotected data b at all times. Accordingly, the error correction processing circuit 100 according to the embodiment of the present invention can minimize the power consumption and the calculation result error.

한편, 본 발명의 각 실시예에 따른 에러 정정 처리 방법을 도 10 내지 도 12를 참고하여 설명하기로 한다. The error correction processing method according to each embodiment of the present invention will be described with reference to FIGS. 10 to 12. FIG.

도 10은 본 발명의 일 실시예에 따른 에러 정정 처리 방법을 설명하기 위한 순서도이다. 10 is a flowchart for explaining an error correction processing method according to an embodiment of the present invention.

메모리에서 발생하는 에러를 정정 및 처리하기 위해, 에러 정정 처리 회로(100) 혹은 동일한 동작을 수행할 수 있는 소정의 회로는 메모리(20)에 기록할 단위 데이터 중 보호 범위를 설정한다(S1010). 이때, 설정된 보호 범위는 메모리(20)의 동작 전압에 종속적인 관계를 이루고, 메모리(20)의 동작 전압과 비례 관계를 이룰 수 있다. 즉, 설정하는 단계(S1010)는 동작 전압이 낮을수록 보호 범위를 상대적으로 감소시킬 수 있다. 또한, 설정하는 단계(S1010)는 보호 데이터에 MSB(Most Significant Bit)가 포함되도록 보호 범위를 설정할 수 있다. In order to correct and process an error occurring in the memory, the error correction processing circuit 100 or a predetermined circuit capable of performing the same operation sets a protection range of unit data to be written in the memory 20 (S1010). At this time, the set protection range is dependent on the operating voltage of the memory 20 and can be proportional to the operating voltage of the memory 20. That is, in the setting step S1010, the lower the operating voltage, the smaller the protection range can be. In addition, the setting step (S1010) may set the protection range such that the MSB (Most Significant Bit) is included in the protection data.

이어서, 에러 정정 처리 회로(100) 혹은 동일한 동작을 수행할 수 있는 소정의 회로는 단위 데이터 중 보호 범위에 대응하는 보호 데이터에 대하여 에러 정정 인코딩을 수행한다(S1020). 구체적으로, 수행하는 단계(S1020)는 단위 데이터 중 보호 데이터 이외의 데이터인 비보호 데이터를 0으로 설정하여 에러 정정 인코딩을 수행할 수 있다. 이와 같은 제로 패딩(Zero-padding) 방식을 통해 단위 데이터에 발생된 에러 중 보호 범위 내 데이터에 발생된 에러는 절대적으로 정정할 수 있고, 비보호 범위 내 데이터에 발생된 에러는 무시할 수 있다. 상술한 것처럼 보호 데이터에 MSB가 포함되도록 보호 범위를 설정할 수 있으므로, 제로 패딩 방식은 상대적으로 치명적인 오류/에러 발생을 방지하는 데에 기여할 수 있다. Subsequently, the error correction processing circuit 100 or a predetermined circuit capable of performing the same operation performs error correction encoding on the protection data corresponding to the protection range of the unit data (S1020). Specifically, the step of performing (S1020) may perform error correction encoding by setting the unprotected data, which is data other than the protected data, to 0 in the unit data. Errors generated in the data within the protection range among the errors generated in the unit data by the zero padding scheme can be corrected absolutely, and errors generated in the data in the unprotected range can be ignored. Since the protection range can be set so that the MSB is included in the protection data as described above, the zero padding scheme can contribute to prevention of a relatively fatal error / error occurrence.

계속해서, 상술한 회로는 단위 데이터를 에러 정정 인코딩에 따라 생성된 패리티 데이터와 매칭하여 메모리(20)에 기록한다(S1030). 에러 정정 인코딩이 수행된 단위 데이터(보호 데이터) 및 패리티 데이터를 코드워드(Codeword)라고 부를 수 있다. Subsequently, the above-described circuit matches the unit data with the parity data generated according to the error correction encoding and records the unit data in the memory 20 (S1030). Unit data (protection data) and parity data on which error correction encoding has been performed may be referred to as a codeword.

나아가, 메모리(20)에 기록된 단위 데이터를 독출하는 경우에 대한 과정을 설명하면 다음과 같다. 후술할 과정들은 도 10을 참고하여 상술한 기록하는 단계(S1030) 이후에 이루어질 수 있다. The process of reading the unit data recorded in the memory 20 will be described below. The processes to be described later may be performed after the recording step S1030 described above with reference to FIG.

메모리(20)에 기록된 단위 데이터를 독출하는 경우, 에러 정정 처리 회로(100) 혹은 동일한 동작을 수행할 수 있는 소정의 회로는 에러 정정 인코딩이 수행된 보호 데이터에 대하여 에러 정정 디코딩을 수행한다. 이러한 에러 정정 디코딩은 독출되는 단위 데이터에 매칭된 패리티 데이터 및 보호 범위에 대한 정보를 기초로 이루어진다. When reading the unit data recorded in the memory 20, the error correction processing circuit 100 or a predetermined circuit capable of performing the same operation performs error correction decoding on the protection data on which the error correction encoding has been performed . Such error correction decoding is performed based on parity data matched to the unit data to be read and information on the protection range.

특히, 에러 정정 디코딩은 상술한 에러 정정 처리 회로(100)의 복호화기(150)에 의해 수행될 수 있는데, 에러 정정 처리 회로(100)는 에러 정정 디코딩이 수행되기에 앞서 복호화기(150)의 제어부(154)로 보호 범위에 대한 정보를 전송할 수 있다. 또한, 독출하고자 하는 단위 데이터에 대한 정보를 포함하는 독출 신호는 프로세서(10)로부터 전달된 것일 수 있다. In particular, the error correction decoding can be performed by the decoder 150 of the error correction processing circuit 100 described above, in which the error correction processing circuit 100 performs error correction decoding The control unit 154 can transmit information on the protection range. In addition, the read signal including the information on the unit data to be read may be transmitted from the processor 10.

에러 정정 디코딩을 수행함에 있어서, 상술한 회로는 다음과 같은 과정을 거쳐 수행할 수 있다. 우선, 패리티 데이터를 기초로 에러 정정 인코딩이 수행된 보호 데이터에 에러가 발생했는지 여부를 체크한다. 이때, 에러 정정 인코딩이 수행된 보호 데이터에 에러가 발생한 경우, 그 발생된 에러를 정정한다.In performing error correction decoding, the above-described circuit can be performed through the following process. First, it is checked whether an error has occurred in the protection data on which error correction encoding has been performed based on the parity data. At this time, if an error occurs in the protection data in which the error correction encoding has been performed, the generated error is corrected.

구체적으로, 메모리(20)에 기록된 단위 데이터로부터 신드롬(syndrome)을 생성하고, 그 생성된 신드롬을 이용하여 에러 정정 인코딩이 수행된 보호 데이터 내 에러 비트의 위치를 검출하며, 에러 비트의 비트 값을 반전시켜 에러 비트를 정정할 수 있다. 에러 비트를 정정하는 과정을 통해 에러가 정정된 데이터에 대하여 에러 정정 디코딩을 수행할 수 있다. 이어서, 단위 데이터를 메모리(20)로 전달한 프로세서(10)로 상술한 회로는 에러 정정 디코딩의 결과 데이터 및 메모리(20)에 기록된 단위 데이터 중 에러 정정 인코딩이 수행된 보호 데이터 이외의 데이터인 비보호 데이터를 전송할 수 있다. Specifically, a syndrome is generated from the unit data recorded in the memory 20, the position of the error bit in the protection data subjected to the error correction encoding is detected using the generated syndrome, and the bit value of the error bit Can be inverted to correct the error bit. The error correction decoding can be performed on the error corrected data through the process of correcting the error bit. Then, the above-mentioned circuit to the processor 10 that transfers the unit data to the memory 20 stores the result data of the error correction decoding and the unit data recorded in the memory 20 as unprotected data, which is data other than the protection data on which error- Data can be transmitted.

이와 같은 본 발명의 일 실시예에 따른 에러 정정 처리 방법을 도 11에 도시된 구체적인 예시를 통해 설명하기로 한다. 도 11은 메모리의 동작 전압이 1000mV인 경우와 700mV인 경우 메모리에 발생된 에러를 정정 및 처리하는 과정을 각각 설명하기 위한 도면이다. The error correction processing method according to an embodiment of the present invention will be described with reference to a concrete example shown in FIG. 11 is a diagram for explaining a process of correcting and processing errors generated in the memory when the operating voltage of the memory is 1000 mV and when the operating voltage is 700 mV, respectively.

도 11의 ①은 메모리(20)의 동작 전압이 1000mV인 경우 종래 회로가 한 개의 워드 데이터 길이(word data length)가 64비트인 단위 데이터에 발생된 에러를 정정 및 처리하는 과정을 나타낸다. 부호화기(120)는 64비트인 단위 데이터 전체를 인코딩하고, 기록부(130)는 인코딩이 수행된 단위 데이터 및 패리티 데이터를 포함하는 코드워드를 메모리(20)에 기록한다. 이후에 복호화기(150)는 독출 신호를 기초로 기록된 코드워드를 독출하고, 디코딩 과정을 수행하여 단위 데이터를 얻는다. 다만, 코드워드 내 에러(a)가 발생할 수 있고, 기존의 방식은 발생된 에러(a)에 대한 정정 및 처리를 보장할 수 없으며, 발생된 에러(a)로 인해 최종적으로 얻는 단위 데이터는 심각한 오류를 가질 수 있다. 11 shows a process of correcting and processing an error generated in the unit data in which the conventional circuit has one word data length of 64 bits when the operating voltage of the memory 20 is 1000 mV. The encoder 120 encodes all the 64-bit unit data, and the recording unit 130 records the code words including the encoded unit data and the parity data in the memory 20. Thereafter, the decoder 150 reads the recorded codeword on the basis of the read signal, and performs a decoding process to obtain unit data. However, the error (a) in the code word can occur, and the conventional method can not guarantee correction and processing for the generated error (a), and the unit data finally obtained due to the generated error (a) You may have an error.

도 11의 ②는 메모리(20)의 동작 전압이 700mV인 경우 에러 정정 처리 회로(100)가 단위 데이터 중 보호 범위를 설정한 후 단위 데이터에 발생된 에러를 정정 및 처리하는 과정을 나타낸다. 보호 범위 설정부(110)는 64비트인 단위 데이터 중 32비트만큼을 보호 범위로 설정하고, 부호화기(120)는 비보호 범위에 해당되는 나머지 32비트를 0으로 처리한다(Zero-padding). 부호화기(120)는 32비트인 보호 데이터만을 에러 정정 인코딩한다. 또한, 기록부(130)는 에러 정정 인코딩이 수행된 보호 데이터 및 패리티 데이터를 포함하는 코드워드와, 비보호 데이터를 메모리(20)에 각각 기록한다. 이후에 복호화기(150)는 독출 신호를 기초로 기록된 코드워드 및 비보호 데이터를 독출하고, 독출되는 단위 데이터에 매칭된 패리티 데이터 및 보호 범위에 대한 정보를 기초로 디코딩 과정을 수행하여 에러 정정 디코딩의 결과 데이터 및 비보호 데이터를 얻는다. 이때, 에러 정정 디코딩의 결과 데이터 및 비보호 데이터는 초기 단위 데이터와 실질적으로 동일하다. 코드워드 내 발생된 에러(a)는 에러 정정 처리 회로(100)에 의해 확실하게 정정된다. 비보호 데이터 내 발생된 에러(b)는 에러 정정 처리 회로(100)에 의해 정정될 수 없으나, 정정된 비트보다 상대적으로 중요도가 낮은 비트이므로 에러 정정 처리 회로(100)는 치명적인 오류를 방지할 수 있다. 11 shows a process of correcting and processing errors generated in the unit data after the error correction processing circuit 100 sets the protection range of the unit data when the operating voltage of the memory 20 is 700 mV. The protection range setting unit 110 sets 32 bits of the 64-bit unit data to the protection range, and the encoder 120 processes the remaining 32 bits corresponding to the unprotected range to zero (zero padding). The encoder 120 error-corrects only 32-bit protected data. Also, the recording unit 130 records the protection word and the codeword including the parity data and the unprotected data in the memory 20, respectively, in which the error correction encoding has been performed. Thereafter, the decoder 150 reads out the recorded codeword and unprotected data based on the read signal, performs a decoding process based on the parity data matched to the read unit data and the information on the protection range, and performs error correction decoding And obtains the resultant data and the unprotected data. At this time, the resultant data of the error correction decoding and the unprotected data are substantially the same as the initial unit data. The error (a) generated in the code word is reliably corrected by the error correction processing circuit 100. The error (b) generated in the unprotected data can not be corrected by the error correction processing circuit 100, but the error correction processing circuit 100 can prevent a fatal error because the bit is relatively less important than the corrected bit .

한편, 도 3에서 도시된 각각의 구성요소는 일종의 '모듈'로 구성될 수 있다. 상기 '모듈'은 소프트웨어 또는 Field Programmable Gate Array(FPGA) 또는 주문형 반도체(ASIC, Application Specific Integrated Circuit)과 같은 하드웨어 구성요소를 의미하며, 모듈은 어떤 역할들을 수행한다. 그렇지만 모듈은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. 모듈은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 구성요소들과 모듈들에서 제공되는 기능은 더 작은 수의 구성요소들 및 모듈들로 결합되거나 추가적인 구성요소들과 모듈들로 더 분리될 수 있다.Meanwhile, each of the components shown in FIG. 3 may be configured as a 'module'. The term 'module' refers to a hardware component such as software or a Field Programmable Gate Array (FPGA) or an Application Specific Integrated Circuit (ASIC), and the module performs certain roles. However, a module is not limited to software or hardware. A module may be configured to reside on an addressable storage medium and may be configured to execute one or more processors. The functionality provided by the components and modules may be combined into a smaller number of components and modules or further separated into additional components and modules.

또한, 도 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과 같은 저장 매체 중 적어도 하나로 구현될 수 있으나 이에 한정되지는 않는다.In addition, the memory 20 described above with reference to FIG. 3 may be implemented as a cache, a ROM (Read Only Memory), a PROM (Programmable ROM), an EPROM (Erasable Programmable ROM), an EEPROM (Electrically Erasable Programmable ROM) But is not limited to, a volatile memory device such as a nonvolatile memory device or a random access memory (RAM), or a storage medium such as a hard disk drive (HDD) and a CD-ROM.

이하에서는, 본 발명의 일 실시예에 따른 에러 정정 처리 회로 및 에러 정정 처리 방법을 실제로 적용시킨 예에 대해 설명하기로 한다. Hereinafter, an example in which the error correction processing circuit and the error correction processing method according to the embodiment of the present invention are actually applied will be described.

도 12는 도 8 및 도 9와 같은 제어를 통해 얻을 수 있는 효과를 보여주는 그래프이다. FIG. 12 is a graph showing the effect that can be obtained through the control as shown in FIGS. 8 and 9. FIG.

이미 상술한 것처럼, 제어부(154)는 도 8처럼 신드롬 생성기(151) 내 비보호 데이터(b)를 위한 구성을 턴-오프시키고, 신드롬 생성기(151)가 비보호 데이터(b)를 항상 0으로 처리하도록 제어 신호를 송신할 수 있다. 또한, 제어부(154)는 도 9처럼 에러 검출기(152) 내 비보호 데이터(b)를 위한 구성을 턴-오프시키고, 에러 검출기(152)가 비보호 데이터(b)를 항상 0으로 처리하도록 제어 신호를 송신할 수 있다. 이로 인해 도 12처럼 복호화기(150)에서의 전력 소모량이 턴-오프시키는 데이터 길이에 따라 감소할 수 있다. The control unit 154 turns off the configuration for the unprotected data b in the syndrome generator 151 as shown in Figure 8 so that the syndrome generator 151 always treats the unprotected data b as 0 A control signal can be transmitted. 9, the control unit 154 turns off the configuration for the unprotected data b in the error detector 152 and outputs a control signal to the error detector 152 so that it always treats the unprotected data b as 0 Can be transmitted. As a result, the power consumption of the decoder 150 can be reduced according to the data length of turning off the power as shown in FIG.

도 13은 H.264 회로 및 FFT 처리 회로 상에서 도 3에 도시된 에러 정정 처리 회로가 실제로 적용될 수 있는 위치를 설명하기 위한 도면이다. 도 13의 위에 나타낸 블록도는 H.264 회로의 구조를 간략하게 도시한 것으로서, 본 발명에서 제안된 에러 정정 처리 회로(100)가 Residual Frame Buffer SRAM, DCT Buffer, Quantization Buffer 등에 실제로 적용될 수 있다. 도 13의 아래에 나타낸 블록도는 FFT 처리 회로의 구조를 간략하게 도시한 것으로서, 본 발명에서 제안된 에러 정정 처리 회로(100)가 8K Embedded SRAM 등에 실제로 적용될 수 있다. 도 13에 도시된 예시는 적용될 수 있는 일 예를 나타내는 것일 뿐, 이와 같은 구현 형태로 제한되는 것은 아니다. Fig. 13 is a diagram for explaining a position where the error correction processing circuit shown in Fig. 3 can be actually applied on the H.264 circuit and the FFT processing circuit. The block diagram shown in FIG. 13 briefly shows the structure of the H.264 circuit, and the error correction processing circuit 100 proposed in the present invention can be actually applied to a Residual Frame Buffer SRAM, a DCT Buffer, a Quantization Buffer, and the like. The block diagram shown below in FIG. 13 is a simplified illustration of the structure of the FFT processing circuit, and the error correction processing circuit 100 proposed in the present invention can be actually applied to an 8K embedded SRAM or the like. The example shown in Fig. 13 is merely an example that can be applied, and is not limited to this embodiment.

도 14는 H.264 회로에 에러 정정 처리 회로 및 그 방법을 적용시킨 경우 성능 변화를 나타내기 위한 그래프이다. H.264 회로 또는 모듈은 영상 압축 동작을 수행하므로, 결과 영상의 최대 신호 대 잡음비(Peak Signal to Noise Ratio; PSNR)를 통해 동작 품질을 판단할 수 있다. 본 발명에서 제안하는 방식(VL-ECC)을 적용한 경우의 성능이 종래 BCH(Bose-Chaudhuri-Hocquenghem) 코드 방식(conventional ECC)을 적용한 경우의 성능보다 뛰어나다는 것을 확인할 수 있고, 이러한 성능 향상은 낮은 동작 전압이 인가될수록 두드러진다는 것을 알 수 있다. FIG. 14 is a graph for showing a performance change when an error correction processing circuit and the method are applied to the H.264 circuit. Since the H.264 circuit or module performs the image compression operation, the operation quality can be determined through the maximum signal-to-noise ratio (PSNR) of the resultant image. It can be seen that the performance when the method proposed by the present invention (VL-ECC) is applied is superior to the performance when the conventional BCH (Bose-Chaudhuri-Hocquenghem) code scheme (conventional ECC) is applied. It can be seen that the more the operating voltage is applied, the more prominent it is.

도 15는 FFT 처리 회로에 에러 정정 처리 회로 및 그 방법을 적용시킨 경우 성능 변화를 나타내기 위한 그래프이다. 24비트가 하나의 워드인 FFT 처리 회로에서 데이터 길이를 변화시키면서 신호 대 양자화 잡음비(Signal to Quantization Noise Ration; SQNR)를 이용하여 출력 품질을 측정한 것이다. 24비트에 해당하는 부분이 종래 BCH 코드 방식(conventional ECC)을 적용한 경우의 성능보다 본 발명에서 제안하는 방식(VL-ECC)을 적용한 경우의 성능이 월등하게 높다는 것을 확인할 수 있다. FIG. 15 is a graph for illustrating a change in performance when an error correction processing circuit and the method are applied to an FFT processing circuit. The output quality is measured using the Signal to Quantization Noise Ratio (SQNR) while varying the data length in the FFT processing circuit in which 24 bits are one word. It can be seen that the performance of the part corresponding to 24 bits is much higher when the method (VL-ECC) proposed in the present invention is applied than the performance when the conventional BCH code method (conventional ECC) is applied.

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.It will be understood by those skilled in the art that the foregoing description of the present invention is for illustrative purposes only and that those of ordinary skill in the art can readily understand that various changes and modifications may be made without departing from the spirit or essential characteristics of the present invention. will be. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. For example, each component described as a single entity may be distributed and implemented, and components described as being distributed may also be implemented in a combined form.

본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
The scope of the present invention is defined by the appended claims rather than the detailed description and all changes or modifications derived from the meaning and scope of the claims and their equivalents are to be construed as being included within the scope of the present invention do.

10: 프로세서 20: 메모리
100: 에러 정정 처리 회로 110: 보호 범위 설정부
120: 부호화기 130: 기록부
140: 통신부 150: 복호화기
10: processor 20: memory
100: Error correction processing circuit 110: Protection range setting section
120: Encoder 130:
140: Communication unit 150: Decoder

Claims (16)

메모리에서의 에러 정정 처리 방법에 있어서,
상기 메모리의 동작 전압에 따라 상기 메모리에 기록할 단위 데이터 중 에러 정정 범위에 해당하는 보호 범위를 적응적으로 설정하는 단계;
상기 단위 데이터 중 상기 보호 범위에 대응하고 MSB(Most Significant Bit)를 포함하는 보호 데이터에 대하여 에러 정정 인코딩을 수행하는 단계; 및
상기 단위 데이터를 상기 에러 정정 인코딩에 따라 생성된 패리티 데이터와 매칭하여 상기 메모리에 기록하는 단계를 포함하고,
상기 설정하는 단계는 상기 메모리의 동작 전압이 낮아질수록 상기 보호 범위를 좁게 설정하는 에러 정정 처리 방법.
In an error correction processing method in a memory,
Adaptively setting a protection range corresponding to an error correction range of unit data to be written in the memory according to an operating voltage of the memory;
Performing error correction encoding on protection data corresponding to the protection range of the unit data and including an MSB (Most Significant Bit); And
And recording the unit data in the memory by matching the unit data with the parity data generated according to the error correction encoding,
Wherein the setting step sets the protection range to be narrower as the operating voltage of the memory decreases.
삭제delete 삭제delete 제 1 항에 있어서,
상기 수행하는 단계는 상기 단위 데이터 중 상기 보호 데이터 이외의 데이터인 비보호 데이터를 0으로 설정하여 상기 에러 정정 인코딩을 수행하는, 에러 정정 처리 방법.
The method according to claim 1,
Wherein the performing of the error correcting encoding comprises setting the non-protected data, which is data other than the protected data, to zero among the unit data, and performing the error correcting encoding.
제 1 항에 있어서,
상기 에러 정정 인코딩이 수행된 보호 데이터에 대하여 에러 정정 디코딩을 수행하는 복호화기의 제어부로 상기 보호 범위에 대한 정보를 전송하는 단계를 더 포함하는, 에러 정정 처리 방법.
The method according to claim 1,
And transmitting information on the protection range to a control unit of a decoder that performs error correction decoding on the protection data on which the error correction encoding has been performed.
제 1 항에 있어서,
상기 메모리에 기록된 단위 데이터를 독출하는 경우, 상기 독출되는 단위 데이터에 매칭된 패리티 데이터 및 상기 보호 범위에 대한 정보를 기초로 상기 에러 정정 인코딩이 수행된 보호 데이터에 대하여 에러 정정 디코딩을 수행하는 단계를 더 포함하는, 에러 정정 처리 방법.
The method according to claim 1,
When reading the unit data recorded in the memory, error correction decoding is performed on the protection data on which the error correction encoding has been performed based on the parity data matched to the read unit data and the information on the protection range Further comprising the steps of:
제 6 항에 있어서, 상기 에러 정정 디코딩을 수행하는 단계는
상기 패리티 데이터를 기초로 상기 에러 정정 인코딩이 수행된 보호 데이터에 에러가 발생했는지 여부를 체크하는 단계;
상기 에러 정정 인코딩이 수행된 보호 데이터에 에러가 발생한 경우 상기 에러를 정정하는 단계를 포함하는, 에러 정정 처리 방법.
7. The method of claim 6, wherein performing the error correction decoding comprises:
Checking whether an error has occurred in the protection data in which the error correction encoding is performed based on the parity data;
And correcting the error if an error occurs in the protection data on which the error correction encoding has been performed.
제 7 항에 있어서, 상기 정정하는 단계는
상기 메모리에 기록된 단위 데이터로부터 신드롬(syndrome)을 생성하는 단계;
상기 생성된 신드롬을 이용하여 상기 에러 정정 인코딩이 수행된 보호 데이터 내 에러 비트의 위치를 검출하는 단계; 및
상기 에러 비트의 비트 값을 반전시켜 상기 에러 비트를 정정하는 단계를 포함하는, 에러 정정 처리 방법.
8. The method of claim 7, wherein the correcting step
Generating syndromes from unit data recorded in the memory;
Detecting a position of an error bit in the protection data in which the error correction encoding is performed using the generated syndrome; And
And correcting the error bit by inverting the bit value of the error bit.
제 7 항에 있어서,
상기 정정하는 단계에서 상기 에러가 정정된 데이터에 대하여 상기 에러 정정 디코딩을 수행하는 단계; 및
상기 단위 데이터를 상기 메모리로 전달한 프로세서로 상기 에러 정정 디코딩의 결과 데이터 및 상기 메모리에 기록된 단위 데이터 중 상기 에러 정정 인코딩이 수행된 보호 데이터 이외의 데이터인 비보호 데이터를 전송하는 단계를 더 포함하는, 에러 정정 처리 방법.
8. The method of claim 7,
Performing the error correction decoding on the error corrected data in the correcting step; And
And transmitting unprotected data, which is data other than the protection data on which the error correction encoding is performed, out of the result data of the error correction decoding and the unit data recorded in the memory, to the processor that has transmitted the unit data to the memory. Error correction processing method.
메모리에서의 에러 정정 처리 회로에 있어서,
상기 메모리의 동작 전압에 따라 상기 메모리에 기록할 단위 데이터 중 에러 정정 범위에 해당하는 보호 범위를 적응적으로 설정하는 보호 범위 설정부;
상기 단위 데이터 중 상기 보호 범위에 대응하고 MSB(Most Significant Bit)를 포함하는 보호 데이터에 대하여 에러 정정 인코딩을 수행하는 부호화기; 및
상기 단위 데이터를 상기 에러 정정 인코딩에 따라 생성된 패리티 데이터와 매칭하여 상기 메모리에 기록하는 기록부를 포함하고,
상기 보호 범위 설정부는 상기 메모리의 동작 전압이 낮아질수록 상기 보호 범위를 좁게 설정하는 에러 정정 처리 회로.
In an error correction processing circuit in a memory,
A protection range setting unit for adaptively setting a protection range corresponding to an error correction range of unit data to be written in the memory according to an operation voltage of the memory;
An encoder for performing error correction encoding on protection data corresponding to the protection range of the unit data and including an MSB (Most Significant Bit); And
And a recording unit for recording the unit data in the memory by matching the unit data with the parity data generated according to the error correction encoding,
And the protection range setting unit sets the protection range to be narrower as the operating voltage of the memory decreases.
제 10 항에 있어서,
상기 단위 데이터를 상기 메모리로 전달한 프로세서로부터 상기 메모리에 기록된 단위 데이터를 독출하기 위한 독출 신호를 수신하고, 상기 보호 범위 설정부로부터 상기 보호 범위에 대한 정보를 수신하는 통신부;
상기 독출 신호에 대응하는 단위 데이터 및 상기 독출 신호에 대응하는 단위 데이터에 매칭된 패리티 데이터를 독출하고, 상기 독출된 패리티 데이터 및 상기 보호 범위에 대한 정보를 기초로 상기 에러 정정 인코딩이 수행된 보호 데이터에 대하여 에러 정정 디코딩을 수행하는 복호화기를 더 포함하는, 에러 정정 처리 회로.
11. The method of claim 10,
A communication unit for receiving a read signal for reading unit data recorded in the memory from a processor that has transmitted the unit data to the memory and receiving information about the protection range from the protection range setting unit;
The unit data corresponding to the read signal and the parity data matched to the unit data corresponding to the read signal are read out and the error correction encoding performed on the basis of the read parity data and the information on the protection range And a decoder for performing error correction decoding on the error correction signal.
제 11 항에 있어서, 상기 복호화기는 상기 독출된 패리티 데이터를 기초로 상기 에러 정정 인코딩이 수행된 보호 데이터에 에러가 발생했는지 여부를 체크하고, 상기 에러가 발생한 경우 상기 에러를 정정하는, 에러 정정 처리 회로.
12. The apparatus of claim 11, wherein the decoder is configured to check whether an error has occurred in the protection data in which the error correction encoding has been performed based on the read parity data, and to correct the error if the error occurs, Circuit.
제 12 항에 있어서, 상기 복호화기는
BCH(Bose-Chaudhuri-Hocquenghem) 코드가 적용되고, 상기 메모리에 기록된 단위 데이터로부터 신드롬(syndrome)을 생성하는 신드롬 생성기;
상기 BCH 코드가 적용되고, 상기 생성된 신드롬을 이용하여 상기 에러 정정 인코딩이 수행된 보호 데이터 내 에러 비트의 위치를 검출하는 에러 검출기; 및
상기 에러 비트의 비트 값을 반전시켜 상기 에러 비트를 정정하는 에러 정정기를 포함하는, 에러 정정 처리 회로.
13. The apparatus of claim 12, wherein the decoder
A syndrome generator to which a BCH (Bose-Chaudhuri-Hocquenghem) code is applied and which generates syndromes from unit data recorded in the memory;
An error detector to which the BCH code is applied and detects a position of an error bit in the protection data in which the error correction encoding is performed using the generated syndrome; And
And an error corrector for inverting the bit value of the error bit to correct the error bit.
제 13 항에 있어서,
상기 신드롬 생성기는 상기 메모리에 기록된 단위 데이터 중 상기 에러 정정 인코딩이 수행된 보호 데이터로부터 상기 신드롬을 생성하고,
상기 에러 정정 인코딩이 수행된 보호 데이터 이외의 데이터인 비보호 데이터에 대하여 상기 신드롬을 생성하는 동작을 멈추도록 상기 보호 범위에 대한 정보를 기초로 상기 신드롬 생성기를 제어하는 제어부를 더 포함하는, 에러 정정 처리 회로.
14. The method of claim 13,
Wherein the syndrome generator generates the syndrome from the protection data in which the error correction encoding is performed among unit data recorded in the memory,
Further comprising a control unit for controlling the syndrome generator based on the information on the protection range so as to stop the operation of generating the syndrome for unprotected data which is data other than the protection data on which the error correction encoding has been performed, Circuit.
제 13 항에 있어서, 상기 에러 검출기는 벌레캠프-매씨 알고리즘(Berlekamp-Massey algorithm) 및 치엔 탐색 알고리즘(Chien search algorithm)을 이용하여 구현되는 것인, 에러 정정 처리 회로.
14. The error correction processing circuit according to claim 13, wherein the error detector is implemented using a Berlekamp-Massey algorithm and a Chien search algorithm.
제 15 항에 있어서, 상기 에러 검출기는 상기 BCH 코드의 상기 치엔 탐색 알고리즘을 통해 상기 에러 정정 인코딩이 수행된 보호 데이터 내 상기 에러 비트의 위치를 검출하고,
상기 메모리에 기록된 단위 데이터 중 상기 에러 정정 인코딩이 수행된 보호 데이터 이외의 데이터인 비보호 데이터에 대하여 상기 에러 비트의 위치를 검출하는 동작을 멈추도록 상기 보호 범위에 대한 정보를 기초로 상기 에러 검출기를 제어하는 제어부를 더 포함하는, 에러 정정 처리 회로.
16. The apparatus of claim 15, wherein the error detector detects the location of the error bit in the protection data in which the error correction encoding was performed via the search algorithm of the BCH code,
The error detector may be configured to stop the operation of detecting the position of the error bit with respect to unprotected data, which is data other than the protection data on which the error correction encoding is performed, among unit data recorded in the memory, The error correction processing circuit comprising:
KR1020130025034A 2013-03-08 2013-03-08 Circuit and method for processing error of memory KR101439815B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020130025034A KR101439815B1 (en) 2013-03-08 2013-03-08 Circuit and method for processing error of memory
PCT/KR2014/001926 WO2014137202A1 (en) 2013-03-08 2014-03-10 Error correction processing circuit in memory and error correction processing method
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 (en) 2013-03-08 2013-03-08 Circuit and method for processing error of memory

Publications (1)

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

Family

ID=51491640

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130025034A KR101439815B1 (en) 2013-03-08 2013-03-08 Circuit and method for processing error of memory

Country Status (3)

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

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016063592A1 (en) * 2014-10-24 2016-04-28 ソニー株式会社 Memory controller, memory system, and memory controller control method
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 (en) * 2017-10-02 2019-04-10 에스케이하이닉스 주식회사 Error correction code unit and encoding and decoding methods thereof
US11335405B2 (en) 2018-12-17 2022-05-17 Samsung Electronics Co., Ltd. Nonvolatile memory device and operation method thereof
KR20200075184A (en) 2018-12-17 2020-06-26 삼성전자주식회사 Nonvolatile memory device and operation method thereof
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 (en) * 1994-02-22 1995-12-26 알베르트 발도르프·롤프 옴케 Error detection and correction semiconductor memory device
JP2010191761A (en) 2009-02-19 2010-09-02 Nec Computertechno Ltd Memory controller and control method
KR20110100465A (en) * 2010-03-04 2011-09-14 삼성전자주식회사 Memory system
KR20120096749A (en) * 2011-02-23 2012-08-31 삼성전자주식회사 Memory device and memory system

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950033822U (en) 1994-05-09 1995-12-18 유재희 Drive circuit of DC brushless exhaust fan motor
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
CN104813409A (en) * 2012-09-28 2015-07-29 惠普发展公司,有限责任合伙企业 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 (en) * 2013-10-15 2019-02-22 恩智浦美国有限公司 Memory devices based on error message keep mode
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 (en) * 1994-02-22 1995-12-26 알베르트 발도르프·롤프 옴케 Error detection and correction semiconductor memory device
JP2010191761A (en) 2009-02-19 2010-09-02 Nec Computertechno Ltd Memory controller and control method
KR20110100465A (en) * 2010-03-04 2011-09-14 삼성전자주식회사 Memory system
KR20120096749A (en) * 2011-02-23 2012-08-31 삼성전자주식회사 Memory device and memory system

Also Published As

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

Similar Documents

Publication Publication Date Title
KR101439815B1 (en) Circuit and method for processing error of memory
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 (en) Decoder for increasing throughput using double buffering structure and pipelining technique and decoding method thereof
JP4152887B2 (en) Erase location for linear block codes-and-single-error correction decoder
US9455749B2 (en) Combination error and erasure decoding for product codes
US8560915B2 (en) 2D product code and method for detecting false decoding errors
US20090024902A1 (en) Multi-channel error correction coder architecture using embedded memory
US8533557B2 (en) Device and method for error correction and protection against data corruption
US20060085726A1 (en) Apparatus and method for decoding Reed-Solomon code
KR20090099756A (en) Memory device and encoding and/or decoding method
US20170093438A1 (en) Distributed concatenated error correction
US9811417B2 (en) Semiconductor memory device
KR101819152B1 (en) Method and associated decoding circuit for decoding an error correction code
US9250995B2 (en) Protection of data in memory
JP4790790B2 (en) Error detection and correction circuit and semiconductor memory
US11119847B2 (en) System and method for improving efficiency and reducing system resource consumption in a data integrity check
KR20130112897A (en) Decoding encoded data containing integrated data and header protection
WO2014059888A1 (en) Block-interleaved and error correction code (ecc)-encoded sub data set (sds) format
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 (en) Method and apparatus for controlling interleaving depth

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