KR101439815B1 - Circuit and method for processing error of memory - Google Patents
Circuit and method for processing error of memory Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/35—Unequal 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/1545—Determination of error locations, e.g. Chien search or other methods or arrangements for the determination of the roots of the error locator polynomial
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/155—Shortening or extension of codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/611—Specific 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
Description
본 발명은 에러 정정 처리 회로 및 에러 정정 처리 방법에 관한 것이고, 보다 구체적으로 메모리에 발생하는 에러를 정정 및 처리하는 회로 및 메모리에 발생하는 에러를 정정 및 처리하는 방법에 관한 것이다.
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
에러 정정 처리 회로(100)는 프로세서(10)와 메모리(20) 사이에 배치되어 인코딩된 데이터, 디코딩된 데이터를 포함하는 데이터를 처리하고, 전달할 수 있다. 다만, 도 3에 도시된 에러 정정 처리 회로(100)는 구현될 수 있는 한가지 예시 형태일 뿐이므로, 이에 한정되는 것은 아니고, 각 구성 혹은 각 구성의 동작을 수행하는 별개의 회로가 분리된 상태로 구현되어 서로 연결될 수도 있다. The error
구체적으로 에러 정정 처리 회로(100)에 포함된 각 구성에 대해 설명하기에 앞서서, 도 4를 참고하여 본 명세서에서 사용되는 용어에 대해 설명하기로 한다. 도 4는 단위 데이터, 보호 데이터 및 비보호 데이터에 대하여 설명하기 위한 도면이다. Before describing each configuration included in the error
메모리(20)에 기록할 데이터는 본 명세서에서 단위 데이터라 지칭되고, 프로세서(10)에서 메모리(20)로 전달되는 데이터일 수 있으며, 도 4는 8비트로 이루어진 단위 데이터의 일 예를 나타내고 있다. 이때, 도 4에 도시된 것처럼 단위 데이터에 a, b, c와 같은 복수의 에러들이 어플리케이션 상태나 환경에 따라 가변적으로 발생할 수 있고, 이러한 에러는 에러 정정 처리 회로(100)가 정정 및 처리할 수 있는 최대 비트(예를 들어, 2비트 또는 미리 설정된 비트 값)를 초과할 수 있다. 이러한 경우 단위 데이터에 발생된 모든 에러에 대한 정정 및 처리가 불가능해지고, 도 4의 좌측 도면처럼 d와 같은 에러가 추가적으로 발생할 수도 있다. Data to be written in the
따라서 본 발명의 일 실시예에 따른 에러 정정 처리 회로(100)가 정정 및 처리할 수 있는 범위를 고려하여 단위 데이터에 발생된 에러를 정정 및 처리한다. 이때, 에러를 정정 및 처리할 수 있는 범위는 후술할 보호 범위 설정부(110)에 의해 설정되고, 보호 범위라 지칭된다. 보호 범위는 동작 전압 및 가변적인 데이터 길이 구조와 밀접한 연관을 가진다. 또한, 본 명세서에서는 이러한 보호 범위 이외의 범위를 비보호 범위라 지칭한다. 도 4의 우측 도면에 도시된 것처럼, 단위 데이터 중 보호 범위에 대응하는 데이터는 보호 데이터라고 할 수 있고, 비보호 범위에 대응하는 데이터는 비보호 데이터라고 할 수 있다. 즉, 보호 데이터에 발생한 에러(a, b)는 에러 정정 처리 회로(100)에 의해 정정되지만, 비보호 데이터에 발생한 에러(c)는 에러 정정 처리 회로(100)에 의해 정정되지 않는다. 이는 에러 정정 처리 회로(100)에서 정정 및 처리할 수 있는 데이터의 길이를 의도적으로 감소시킨 결과이고, 이를 통해 에러 발생 확률을 크게 감소시킬 수 있다. Therefore, in consideration of the range that can be corrected and processed by the error
이하, 도 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
부호화기(Encoder, 120)는 단위 데이터 중 보호 범위에 대응하는 보호 데이터에 대하여 에러 정정 인코딩을 수행하고, 에러 정정 인코딩을 통해 패리티 데이터(parity data)를 생성한다. 즉, 부호화기(120)는 단위 데이터 중 보호 데이터에 대하여 에러 정정 인코딩을 수행하고, 비보호 데이터에 대하여 에러 정정 인코딩을 수행하지 않을 수 있다. 이로 인해 에러 정정 인코딩이 수행된 보호 데이터에 대해서만 후술할 에러 정정 디코딩이 필요할 수 있고, 에러 정정 디코딩을 통해 보호 데이터에 발생된 에러가 정정 및 처리될 수 있다. The
구체적으로, 부호화기(120)는 도 5에 도시된 일 예처럼 에러 정정 인코딩을 수행할 수 있다. 도 5는 도 3에 도시된 구성 중 부호화기의 동작을 설명하기 위한 도면이다. 종래의 경우 128비트의 단위 데이터는 부호화기(120)에 의해 에러 정정 인코딩 될 수 있고, ①과 같이 에러 정정 인코딩이 수행된 128비트의 단위 데이터 및 패리티 데이터가 생성된다. 본 발명의 일 실시예에 따르면 메모리(20)의 동작 전압에 따라 보호 범위가 설정된다. 이로 인해, ②와 같이 128비트의 단위 데이터 중 32비트의 보호 범위와 6비트의 비보호 범위가 설정된다. 이들 중 보호 범위에 대응하는 32비트의 보호 데이터는 부호화기(120)에 의해 에러 정정 인코딩 되고, 비보호 범위에 대응하는 96비트의 비보호 데이터는 제로 패딩(Zero-padding)을 통해 0으로 처리된 후 에러 정정 인코딩이 수행될 수 있다. 결국 에러 정정 인코딩이 수행된 32비트의 보호 데이터 및 패리티 데이터가 생성된다. Specifically, the
보다 구체적으로, 부호화기(120)는 입력되는 데이터에 제너레이터 행렬(Generator Matrix)가 곱해져 에러 정정 인코딩이 수행된 데이터와 패리티 데이터를 포함하는 코드워드(Codeword)를 도 6처럼 생성할 수 있다. 도 6은 도 5의 부호화기에 의한 인코딩 과정을 구체적으로 설명하기 위한 도면이다. 이때, 패리티 데이터는 입력되는 데이터의 크기와 보정 가능한 비트 수에 따라 달라질 수 있고, 제너레이터 행렬은 입력되는 데이터가 그대로 전달되는 아이덴티티 행렬(Identity Matrix)과 패리티 데이터를 생성하는 패리티 행렬로 이루어질 수 있다. More specifically, the
기록부(130)는 단위 데이터를 에러 정정 인코딩에 따라 생성된 패리티 데이터와 매칭하여 메모리(20)에 기록한다. 기록부(130)가 메모리(20)에 데이터를 기록하는 방식이나 단위 데이터와 패리티 데이터를 서로 매칭시키는 방식은 종래에 공개된 방식을 따를 수 있고, 특별히 제한된 것은 아니다. The
통신부(140)는 단위 데이터를 메모리(20)로 전달한 프로세서(10)로부터 독출 신호를 수신하는데, 독출 신호는 메모리(20)에 기록된 단위 데이터를 독출하거나 읽어오기 위한 신호이다. 또한, 통신부(140)는 보호 범위 설정부(110)로부터 보호 범위에 대한 정보를 수신한다. 이때, 보호 범위에 대한 정보는 단위 데이터 중 어떤 데이터가 보호 데이터 혹은 비보호 데이터에 해당하는지 판단할 수 있는 기초 자료가 될 수 있고, 복호화기(150)로 전달될 수 있다. The
복호화기(Decoder, 150)는 독출 신호에 대응하는 단위 데이터 및 독출 신호에 대응하는 단위 데이터에 매칭된 패리티 데이터를 독출하고, 독출된 패리티 데이터 및 보호 범위에 대한 정보를 기초로 에러 정정 인코딩이 수행된 보호 데이터에 대하여 에러 정정 디코딩을 수행한다. The
구체적으로, 복호화기(150)는 독출된 패리티 데이터를 기초로 에러 정정 인코딩이 수행된 보호 데이터에 에러가 발생했는지 여부를 체크할 수 있다. 패리티 데이터는 기록부(130)에 의해 단위 데이터와 매칭되어 메모리(20)에 기록되므로, 복호화기(150)는 독출 신호에 대응하는 단위 데이터 및 그에 매칭된 패리티 데이터를 독출할 수 있다. 또한, 복호화기(150)는 독출 신호에 대응하는 단위 데이터 중 에러 정정 인코딩이 수행된 보호 데이터가 어떤 데이터인지 보호 범위에 대한 정보를 기초로 판단할 수 있고, 에러 정정 인코딩이 수행된 보호 데이터로 판단된 데이터에 대해 에러가 발생했는지 여부를 독출된 패리티 데이터를 기초로 체크할 수 있다. 이때, 에러 정정 인코딩이 수행된 보호 데이터에 에러가 발생한 것으로 판단되면, 복호화기(150)는 발생된 에러를 정정하는 동작을 수행할 수 있다.Specifically, the
도 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
신드롬 생성기(151)는 메모리(20)에 기록된 단위 데이터로부터 신드롬(syndrome)을 생성할 수 있고, 에러 검출기(152)는 생성된 신드롬 및 다항식을 이용하여 에러 정정 인코딩이 수행된 보호 데이터 내 에러 비트의 위치를 검출할 수 있다. 또한, 신드롬 생성기(151) 및 에러 검출기(152)에 BCH(Bose-Chaudhuri-Hocquenghem) 코드가 적용될 수 있고, 에러 검출기(152)는 벌레캠프-매씨 알고리즘(Berlekamp-Massey algorithm)을 이용해 다항식을 산출할 수 있고, 치엔 탐색 알고리즘(Chien search algorithm)을 이용하여 에러 비트의 위치를 검출할 수 있다. 덧붙여, 에러 정정기(153)는 에러 비트의 비트 값을 반전시켜 에러 비트를 정정할 수 있고, 선입선출 제어기(155)로부터 전달된 데이터를 활용할 수 있다.The
도 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
또한, 에러 검출기(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
한편, 본 발명의 각 실시예에 따른 에러 정정 처리 방법을 도 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
이어서, 에러 정정 처리 회로(100) 혹은 동일한 동작을 수행할 수 있는 소정의 회로는 단위 데이터 중 보호 범위에 대응하는 보호 데이터에 대하여 에러 정정 인코딩을 수행한다(S1020). 구체적으로, 수행하는 단계(S1020)는 단위 데이터 중 보호 데이터 이외의 데이터인 비보호 데이터를 0으로 설정하여 에러 정정 인코딩을 수행할 수 있다. 이와 같은 제로 패딩(Zero-padding) 방식을 통해 단위 데이터에 발생된 에러 중 보호 범위 내 데이터에 발생된 에러는 절대적으로 정정할 수 있고, 비보호 범위 내 데이터에 발생된 에러는 무시할 수 있다. 상술한 것처럼 보호 데이터에 MSB가 포함되도록 보호 범위를 설정할 수 있으므로, 제로 패딩 방식은 상대적으로 치명적인 오류/에러 발생을 방지하는 데에 기여할 수 있다. Subsequently, the error
계속해서, 상술한 회로는 단위 데이터를 에러 정정 인코딩에 따라 생성된 패리티 데이터와 매칭하여 메모리(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
메모리(20)에 기록된 단위 데이터를 독출하는 경우, 에러 정정 처리 회로(100) 혹은 동일한 동작을 수행할 수 있는 소정의 회로는 에러 정정 인코딩이 수행된 보호 데이터에 대하여 에러 정정 디코딩을 수행한다. 이러한 에러 정정 디코딩은 독출되는 단위 데이터에 매칭된 패리티 데이터 및 보호 범위에 대한 정보를 기초로 이루어진다. When reading the unit data recorded in the
특히, 에러 정정 디코딩은 상술한 에러 정정 처리 회로(100)의 복호화기(150)에 의해 수행될 수 있는데, 에러 정정 처리 회로(100)는 에러 정정 디코딩이 수행되기에 앞서 복호화기(150)의 제어부(154)로 보호 범위에 대한 정보를 전송할 수 있다. 또한, 독출하고자 하는 단위 데이터에 대한 정보를 포함하는 독출 신호는 프로세서(10)로부터 전달된 것일 수 있다. In particular, the error correction decoding can be performed by the
에러 정정 디코딩을 수행함에 있어서, 상술한 회로는 다음과 같은 과정을 거쳐 수행할 수 있다. 우선, 패리티 데이터를 기초로 에러 정정 인코딩이 수행된 보호 데이터에 에러가 발생했는지 여부를 체크한다. 이때, 에러 정정 인코딩이 수행된 보호 데이터에 에러가 발생한 경우, 그 발생된 에러를 정정한다.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
이와 같은 본 발명의 일 실시예에 따른 에러 정정 처리 방법을 도 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
도 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
한편, 도 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
이하에서는, 본 발명의 일 실시예에 따른 에러 정정 처리 회로 및 에러 정정 처리 방법을 실제로 적용시킨 예에 대해 설명하기로 한다. 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
도 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
도 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.
상기 수행하는 단계는 상기 단위 데이터 중 상기 보호 데이터 이외의 데이터인 비보호 데이터를 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.
상기 에러 정정 인코딩이 수행된 보호 데이터에 대하여 에러 정정 디코딩을 수행하는 복호화기의 제어부로 상기 보호 범위에 대한 정보를 전송하는 단계를 더 포함하는, 에러 정정 처리 방법.
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.
상기 메모리에 기록된 단위 데이터를 독출하는 경우, 상기 독출되는 단위 데이터에 매칭된 패리티 데이터 및 상기 보호 범위에 대한 정보를 기초로 상기 에러 정정 인코딩이 수행된 보호 데이터에 대하여 에러 정정 디코딩을 수행하는 단계를 더 포함하는, 에러 정정 처리 방법.
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:
상기 패리티 데이터를 기초로 상기 에러 정정 인코딩이 수행된 보호 데이터에 에러가 발생했는지 여부를 체크하는 단계;
상기 에러 정정 인코딩이 수행된 보호 데이터에 에러가 발생한 경우 상기 에러를 정정하는 단계를 포함하는, 에러 정정 처리 방법.
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.
상기 메모리에 기록된 단위 데이터로부터 신드롬(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.
상기 정정하는 단계에서 상기 에러가 정정된 데이터에 대하여 상기 에러 정정 디코딩을 수행하는 단계; 및
상기 단위 데이터를 상기 메모리로 전달한 프로세서로 상기 에러 정정 디코딩의 결과 데이터 및 상기 메모리에 기록된 단위 데이터 중 상기 에러 정정 인코딩이 수행된 보호 데이터 이외의 데이터인 비보호 데이터를 전송하는 단계를 더 포함하는, 에러 정정 처리 방법.
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.
상기 단위 데이터를 상기 메모리로 전달한 프로세서로부터 상기 메모리에 기록된 단위 데이터를 독출하기 위한 독출 신호를 수신하고, 상기 보호 범위 설정부로부터 상기 보호 범위에 대한 정보를 수신하는 통신부;
상기 독출 신호에 대응하는 단위 데이터 및 상기 독출 신호에 대응하는 단위 데이터에 매칭된 패리티 데이터를 독출하고, 상기 독출된 패리티 데이터 및 상기 보호 범위에 대한 정보를 기초로 상기 에러 정정 인코딩이 수행된 보호 데이터에 대하여 에러 정정 디코딩을 수행하는 복호화기를 더 포함하는, 에러 정정 처리 회로.
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.
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.
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.
상기 신드롬 생성기는 상기 메모리에 기록된 단위 데이터 중 상기 에러 정정 인코딩이 수행된 보호 데이터로부터 상기 신드롬을 생성하고,
상기 에러 정정 인코딩이 수행된 보호 데이터 이외의 데이터인 비보호 데이터에 대하여 상기 신드롬을 생성하는 동작을 멈추도록 상기 보호 범위에 대한 정보를 기초로 상기 신드롬 생성기를 제어하는 제어부를 더 포함하는, 에러 정정 처리 회로.
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.
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.
상기 메모리에 기록된 단위 데이터 중 상기 에러 정정 인코딩이 수행된 보호 데이터 이외의 데이터인 비보호 데이터에 대하여 상기 에러 비트의 위치를 검출하는 동작을 멈추도록 상기 보호 범위에 대한 정보를 기초로 상기 에러 검출기를 제어하는 제어부를 더 포함하는, 에러 정정 처리 회로.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:
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)
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)
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)
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 |
-
2013
- 2013-03-08 KR KR1020130025034A patent/KR101439815B1/en active IP Right Grant
-
2014
- 2014-03-10 WO PCT/KR2014/001926 patent/WO2014137202A1/en active Application Filing
-
2015
- 2015-07-28 US US14/810,749 patent/US9985659B2/en active Active
Patent Citations (4)
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 |