KR101816642B1 - Error correction circuit, nonvolatile memory device thereof and driving method thereof - Google Patents
Error correction circuit, nonvolatile memory device thereof and driving method thereof Download PDFInfo
- Publication number
- KR101816642B1 KR101816642B1 KR1020110075367A KR20110075367A KR101816642B1 KR 101816642 B1 KR101816642 B1 KR 101816642B1 KR 1020110075367 A KR1020110075367 A KR 1020110075367A KR 20110075367 A KR20110075367 A KR 20110075367A KR 101816642 B1 KR101816642 B1 KR 101816642B1
- Authority
- KR
- South Korea
- Prior art keywords
- message data
- bits
- parity bit
- encoder
- parity
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- 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/1068—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 in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/1201—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising I/O circuitry
-
- 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/11—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 using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Read Only Memory (AREA)
Abstract
에러 정정 회로, 이를 포함하는 비휘발성 메모리 장치 및 이의 구동 방법이 제공된다. 상기 에러 정정 회로는 메시지 데이터를 입력받아, 비트 에러 정정 가능한 패러티 비트를 생성하는 인코더, 및 메시지 데이터와 패러티 비트를 입력받아, 메시지 데이터의 오류 위치를 산출하는 디코더를 포함하되, 메시지 데이터는 n(단, n은 1보다 큰 자연수) 비트씩 병렬로 인코더로 입력되고, 메시지 데이터는 n과 다른 m(단, m은 1보다 큰 자연수) 비트씩 병렬로 디코더로 입력된다. An error correction circuit, a nonvolatile memory device including the same, and a driving method thereof are provided. The error correction circuit includes an encoder for receiving the message data and generating a bit error correctable parity bit, and a decoder for receiving the message data and the parity bit and calculating the error position of the message data, (Where n is a natural number greater than 1) bit by bit into the encoder, and the message data is input to the decoder in parallel by n bits different from n (m is a natural number greater than 1).
Description
본 발명은 에러 정정 회로, 이를 포함하는 비휘발성 메모리 장치 및 이의 구동 방법에 관한 것이다.The present invention relates to an error correction circuit, a nonvolatile memory device including the same, and a driving method thereof.
저항체(resistance material)를 이용한 비휘발성 메모리 장치에는 상변화 메모리 장치(PRAM: Phase change Random Access Memory or PCM : Phase Change Memory), 저항 메모리 장치(RRAM: Resistive RAM), 자기 메모리 장치(MRAM: Magnetic RAM) 등 있다. 동적 메모리 장치(DRAM: Dynamic RAM)나 플래시 메모리 장치는 전하(charge)를 이용하여 데이터를 저장하는 반면, 저항체를 이용한 비휘발성 메모리 장치는 캘코제나이드 합금(chalcogenide alloy)과 같은 상변화 물질의 상태 변화(PRAM), 가변 저항체의 저항 변화(RRAM), 강자성체의 자화상태에 따른 MTJ(Magnetic Tunnel Junction) 박막의 저항 변화(MRAM) 등을 이용하여 데이터를 저장한다. Non-volatile memory devices using resistance materials include phase change random access memories (PRAM), phase change memory (PCM), resistive random access memory (RRAM), magnetic random access memory (MRAM) ). Dynamic RAM (DRAM) or flash memory devices store data using charge, while non-volatile memory devices using resistors are used to store phase change material states such as chalcogenide alloys (PRAM), resistance change of variable resistance (RRAM), and resistance change (MRAM) of MTJ (Magnetic Tunnel Junction) thin film according to magnetization state of ferromagnetic material.
여기서, 상변화 메모리 장치를 예를 들어 설명하면, 상변화 물질은 가열 후 냉각되면서 결정 상태 또는 비정질 상태로 변화되는데, 결정 상태의 상변화 물질은 저항이 낮고 비정질 상태의 상변화 물질은 저항이 높다. 따라서, 결정 상태는 셋(set) 데이터로 정의하고 비정질 상태는 리셋(reset) 데이터로 정의할 수 있다. Here, the phase change memory device will be described by way of example. The phase change material changes into a crystalline state or an amorphous state while being cooled after heating. The crystalline state phase change material has a low resistance and the amorphous state phase change material has a high resistance . Therefore, the determination state can be defined as set data, and the amorphous state can be defined as reset data.
그런데, 상변화 메모리 장치는 리드 동작에 비해서, 라이트 동작이 매우 느리다. 라이트 동작을 하기 위한 전류 소모량도 크기 때문에, 동시에 라이트할 수 있는 비트수가 한정된다.However, the write operation is very slow in the phase change memory device as compared with the read operation. Since the amount of current consumed for the write operation is also large, the number of bits that can be simultaneously written is limited.
한편, 비휘발성 메모리 장치의 메모리 용량이 증가함에 따라, 결함 메모리 셀의 에러를 정정하기 위한 에러 정정 회로를 사용할 필요가 있다. 에러 정정 회로는 예를 들어, 리던던시 메모리 셀을 이용하는 방식과, ECC(Error Correction Code) 방식 등이 있다.On the other hand, as the memory capacity of the nonvolatile memory device increases, it is necessary to use an error correction circuit for correcting the error of the defective memory cell. The error correction circuit includes, for example, a method using a redundancy memory cell and an ECC (Error Correction Code) method.
여기서, ECC 방식은 ECC인코더와 ECC디코더를 사용하는 데, ECC인코더 및 ECC디코더의 사이즈는 상당히 크다. 따라서, ECC 방식을 사용하는 비휘발성 메모리 장치의 칩 사이즈를 줄이기 어렵다.Here, the ECC method uses an ECC encoder and an ECC decoder, and the sizes of the ECC encoder and the ECC decoder are considerably large. Therefore, it is difficult to reduce the chip size of the nonvolatile memory device using the ECC method.
본 발명이 해결하려는 과제는, 사이즈를 최소화할 수 있는 에러 정정 회로를 제공하는 것이다.An object of the present invention is to provide an error correction circuit capable of minimizing the size.
본 발명이 해결하려는 다른 과제는, 사이즈를 최소화할 수 있는 비휘발성 메모리 장치를 제공하는 것이다.Another object of the present invention is to provide a nonvolatile memory device capable of minimizing the size.
본 발명이 해결하려는 또 다른 과제는, 상기 에러 정정 회로의 구동 방법을 제공하는 것이다.A further object of the present invention is to provide a method of driving the error correction circuit.
본 발명이 해결하려는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The problems to be solved by the present invention are not limited to the above-mentioned problems, and other matters not mentioned can be clearly understood by those skilled in the art from the following description.
상기 과제를 해결하기 위한 본 발명의 에러 정정 회로의 일 태양은 메시지 데이터를 입력받아, 비트 에러 정정 가능한 패러티 비트를 생성하는 인코더, 및 메시지 데이터와 패러티 비트를 입력받아, 메시지 데이터의 오류 위치를 산출하는 디코더를 포함하되, 메시지 데이터는 n(단, n은 1보다 큰 자연수) 비트씩 병렬로 인코더로 입력되고, 메시지 데이터는 n과 다른 m(단, m은 1보다 큰 자연수) 비트씩 병렬로 디코더로 입력된다.According to an aspect of the present invention, there is provided an error correction circuit comprising an encoder for receiving a message data and generating a parity bit capable of bit error correction, and an error correction circuit for receiving the message data and the parity bit, , And the message data is input to the encoder in parallel by n bits (n is a natural number greater than 1), and the message data is input to the encoder in parallel with m bits different from n (m is a natural number greater than 1) Decoder.
상기 다른 과제를 해결하기 위한 본 발명의 비휘발성 메모리 장치의 일 태양은 비휘발성 메모리 셀을 포함하는 메모리 코어, 메시지 데이터를 입력받아, 비트 에러 정정 가능한 패러티 비트를 생성하는 인코더, 메시지 데이터와 패러티 비트를 메모리 코어에 라이트하는 라이트 회로, 메모리 코어에 저장되었던 메시지 데이터와 패러티 비트를 리드하는 리드 회로, 및 리드 회로로부터 메시지 데이터와 패러티 비트를 입력받아, 메시지 데이터의 오류 위치를 산출하는 디코더를 포함하되, 메시지 데이터는 n(단, n은 1보다 큰 자연수) 비트씩 병렬로 인코더로 입력되고, 메시지 데이터는 n과 다른 m(단, m은 1보다 큰 자연수) 비트씩 병렬로 디코더로 입력된다.According to another aspect of the present invention, there is provided a nonvolatile memory device including a memory core including a nonvolatile memory cell, an encoder for receiving the message data and generating a bit error correctable parity bit, And a decoder for receiving the message data and the parity bit from the read circuit and calculating the error position of the message data, , And the message data is input to the encoder in parallel by n bits (n is a natural number greater than 1), and the message data is input to the decoder in parallel by n bits different from n (m is a natural number greater than 1).
상기 또 다른 과제를 해결하기 위한 본 발명의 에러 정정 회로의 구동 방법의 일 태양은 인코더와 디코더를 포함하는 에러 정정 회로의 구동 방법에 있어서, 인코더는 메시지 데이터를 입력받아, 비트 에러 정정 가능한 패러티 비트를 생성하고, 디코더는 메시지 데이터와 패러티 비트를 입력받아, 메시지 데이터의 오류 위치를 산출하는 것을 포함하되, 메시지 데이터는 n(단, n은 1보다 큰 자연수) 비트씩 병렬로 인코더로 입력되고, 메시지 데이터는 n과 다른 m(단, m은 1보다 큰 자연수) 비트씩 병렬로 디코더로 입력된다.According to another aspect of the present invention, there is provided a method of driving an error correction circuit including an encoder and a decoder. The encoder receives message data and generates a bit error correctable parity bit And a decoder for receiving the message data and the parity bit and calculating an error position of the message data, wherein the message data is input to the encoder in parallel by n bits (n is a natural number greater than 1) The message data is input to the decoder in parallel by n bits different from n (m is a natural number greater than 1).
상기 또 다른 과제를 해결하기 위한 본 발명의 에러 정정 회로의 구동 방법의 다른 태양은 인코더와 디코더를 포함하는 에러 정정 회로의 구동 방법에 있어서, 인코더는 메시지 데이터를 n(단, n은 1보다 큰 자연수)비트씩 k회 입력받고, 메시지 데이터를 n비트씩 제공받을 때마다 ECC 인코딩을 수행하여 패러티 비트를 생성하고, 디코더는 패러티 비트와 메시지 데이터를 n*k비트씩 입력받아, 메시지 데이터의 오류 위치를 산출하는 것을 포함한다.According to another aspect of the present invention, there is provided a method of driving an error correction circuit including an encoder and a decoder, the encoder including: And the decoder generates parity bits by performing ECC encoding every n bits of the message data, and the decoder receives n * k bits of parity bits and message data, And calculating the position.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Other specific details of the invention are included in the detailed description and drawings.
도 1은 본 발명의 몇몇 실시예에 따른 비휘발성 메모리 장치를 설명하기 위한 블록도이다.
도 2는 도 1에 도시된 메모리 코어 내의 예시적 비휘발성 메모리 셀을 설명하기 위한 도면이다.
도 3는 도 1에 도시된 인코더를 설명하기 위한 블록도이다.
도 4는 도 3에 도시된 인코더를 설명하기 위한 회로도이다.
도 5은 도 4에 도시된 인코더의 동작을 설명하기 위한 타이밍도이다.
도 6은 도 1에 도시된 디코더를 설명하기 위한 블록도이다.
도 7는 본 발명의 몇몇 실시예에 따른 메모리 시스템을 설명하기 위한 블록도이다.
도 8은 도 7의 메모리 시스템의 응용 예를 보여주는 블록도이다.
도 9은 도 8을 참조하여 설명된 메모리 시스템을 포함하는 컴퓨팅 시스템을 보여주는 블록도이다. 1 is a block diagram illustrating a non-volatile memory device according to some embodiments of the invention.
2 is a diagram for illustrating an exemplary nonvolatile memory cell in the memory core shown in FIG.
3 is a block diagram for explaining the encoder shown in FIG.
4 is a circuit diagram for explaining the encoder shown in Fig.
5 is a timing chart for explaining the operation of the encoder shown in Fig.
6 is a block diagram for explaining the decoder shown in FIG.
7 is a block diagram illustrating a memory system in accordance with some embodiments of the present invention.
8 is a block diagram illustrating an application example of the memory system of FIG.
9 is a block diagram illustrating a computing system including the memory system described with reference to FIG.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention and the manner of achieving them will become apparent with reference to the embodiments described in detail below with reference to the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Is provided to fully convey the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims. Like reference numerals refer to like elements throughout the specification.
하나의 소자(elements)가 다른 소자와 "접속된(connected to)" 또는 "커플링된(coupled to)" 이라고 지칭되는 것은, 다른 소자와 직접 연결 또는 커플링된 경우 또는 중간에 다른 소자를 개재한 경우를 모두 포함한다. 반면, 하나의 소자가 다른 소자와 "직접 접속된(directly connected to)" 또는 "직접 커플링된(directly coupled to)"으로 지칭되는 것은 중간에 다른 소자를 개재하지 않은 것을 나타낸다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다. One element is referred to as being "connected to " or" coupled to "another element, either directly connected or coupled to another element, One case. On the other hand, when one element is referred to as being "directly connected to" or "directly coupled to " another element, it does not intervene another element in the middle. Like reference numerals refer to like elements throughout the specification. "And / or" include each and every combination of one or more of the mentioned items.
비록 제1, 제2 등이 다양한 소자, 구성요소 및/또는 섹션들을 서술하기 위해서 사용되나, 이들 소자, 구성요소 및/또는 섹션들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자, 구성요소 또는 섹션들을 다른 소자, 구성요소 또는 섹션들과 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자, 제1 구성요소 또는 제1 섹션은 본 발명의 기술적 사상 내에서 제2 소자, 제2 구성요소 또는 제2 섹션일 수도 있음은 물론이다.Although the first, second, etc. are used to describe various elements, components and / or sections, it is needless to say that these elements, components and / or sections are not limited by these terms. These terms are only used to distinguish one element, element or section from another element, element or section. Therefore, it goes without saying that the first element, the first element or the first section mentioned below may be the second element, the second element or the second section within the technical spirit of the present invention.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.The terminology used herein is for the purpose of illustrating embodiments and is not intended to be limiting of the present invention. In the present specification, the singular form includes plural forms unless otherwise specified in the specification. It is noted that the terms "comprises" and / or "comprising" used in the specification are intended to be inclusive in a manner similar to the components, steps, operations, and / Or additions.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. Unless defined otherwise, all terms (including technical and scientific terms) used herein may be used in a sense commonly understood by one of ordinary skill in the art to which this invention belongs. Also, commonly used predefined terms are not ideally or excessively interpreted unless explicitly defined otherwise.
이하, 본 발명의 실시예들은 상변화 메모리 장치(PRAM: Phase change Random Access Memory)를 이용하여 설명할 것이다. 그러나, 본 발명은 저항성 메모리 장치(RRAM: Resistive RAM), 강유전체 메모리 장치(FRAM: Ferroelectric RAM)과 같이 저항체를 이용한 비휘발성 메모리 장치에 모두 적용될 수 있음은 본 발명이 속하는 기술의 당업자에게 자명하다. Hereinafter, embodiments of the present invention will be described using a phase change random access memory (PRAM). However, it is apparent to those skilled in the art that the present invention can be applied to both nonvolatile memory devices using resistors such as resistive memory devices (RRAMs) and ferroelectric RAM devices (FRAMs).
도 1은 본 발명의 몇몇 실시예에 따른 비휘발성 메모리 장치를 설명하기 위한 블록도이다. 도 2는 도 1에 도시된 메모리 코어 내의 예시적 비휘발성 메모리 셀을 설명하기 위한 도면이다. 1 is a block diagram illustrating a non-volatile memory device according to some embodiments of the invention. 2 is a diagram for illustrating an exemplary nonvolatile memory cell in the memory core shown in FIG.
도 1을 참조하면, 본 발명의 몇몇 실시예에 따른 비휘발성 메모리 장치(1)는 인코더(110), 라이트 회로(180), 메모리 코어(190), 리드 회로(210), 디코더(220) 등을 포함한다. 이러한 구성을 통해서, 본 발명의 몇몇 실시예에 따른 비휘발성 메모리 장치(1)는 ECC를 이용한 에러 정정 동작을 수행할 수 있다. 1, a
메모리 코어(190)은 다수의 비휘발성 메모리 셀(도 5의 MC 참조)을 포함할 수 있다. 비휘발성 메모리 셀(MC)은 저항체를 이용하여 데이터를 라이트하거나 리드할 수 있다. 이러한 비휘발성 메모리 셀(MC)은 저장되는 데이터에 따라 저항이 달라지는 상변화 물질을 구비하는 가변 저항 소자(RC)와, 가변 저항 소자(RC)에 흐르는 전류를 제어하는 억세스 소자(AC)를 포함할 수 있다. 여기서, 억세스 소자(AC)는 가변 저항 소자(RC)와 직렬로 커플링된 다이오드, 트랜지스터 등일 수 있다. 도면에서는 가변 저항 소자(RC)로 다이오드를 도시하였다. 또한, 상변화 물질은 2개의 원소를 화합한 GaSb, InSb, InSe. Sb2Te3, GeTe, 3개의 원소를 화합한 GeSbTe, GaSeTe, InSbTe, SnSb2Te4, InSbGe, 4개의 원소를 화합한 AgInSbTe, (GeSn)SbTe, GeSb(SeTe), Te81Ge15Sb2S2 등 다양한 종류의 물질을 사용할 수 있다. 이 중에서 게르마늄(Ge), 안티모니(Sb), 텔루리움(Te)으로 이루어진 GeSbTe를 주로 이용할 수 있다.The
인코더(110)는 메시지 데이터(M_DATA)를 입력받아, 비트 에러 정정 가능한 패러티 비트(ECCP)를 생성한다.The
라이트 회로(180)는 메시지 데이터(M_DATA)와 패러티 비트(ECCP)를 메모리 코어(190)에 라이트한다. 여기서, "메시지 데이터(M_DATA) + 패러티 비트(ECCP)"를 "코드워드(codeword)"(CW)라고 부를 수 있다. The
리드 회로(210)는 메모리 코어(190)에 저장되었던 메시지 데이터(M_DATA)와 패러티 비트(ECCP)를 리드한다.The
디코더(220)는 리드 회로(210)로부터 메시지 데이터(M_DATA)와 패러티 비트(ECCP)를 입력받아, 메시지 데이터(M_DATA)의 오류 위치를 산출한다. 그 후, 디코더(220)는 메시지 데이터(M_DATA)를 정정하여 정정된 메시지 데이터(CORRECTED_DATA)를 출력할 수 있다.The
본 발명의 몇몇 실시예에 따른 비휘발성 메모리 장치(1)에서, 인코더(110)에 병렬로 입력되는 메시지 데이터(M_DATA)의 개수와, 디코더(220)에 병렬로 입력되는 메시지 데이터(M_DATA)의 개수가 다를 수 있다. 다시 말하면, 메시지 데이터(M_DATA)는 n(단, n은 1보다 큰 자연수)비트씩 병렬로 인코더(110)에 입력되고, 메시지 데이터(M_DATA)는 n과 다른 m(단, m은 1보다 큰 자연수)비트씩 병렬로 디코더(220)에 입력된다. 예를 들어, 인코더(110)에 병렬로 입력되는 메시지 데이터(M_DATA)의 개수를, 디코더(220)에 병렬로 입력되는 메시지 데이터(M_DATA)의 개수보다 작게 할 수 있다. In the
인코더(110)는 메시지 데이터(M_DATA)를 n비트씩 k(단, k는 1보다 큰 자연수)회 제공받고, 메시지 데이터(M_DATA)를 n비트씩 제공받을 때마다 ECC 인코딩을 수행하여 패러티 비트(ECCP)를 생성할 수 있다. 결과적으로, 인코더(110)는 n×k 비트를 제공받아 패러티 비트(ECCP)를 완성한다. 하지만, 인코더(110)는 n×k 비트를 동시에 인코딩하여 패러티 비트(ECCP)를 생성하는 것이 아니고, "메시지 데이터(M_DATA)를 n비트씩 제공받는 것과 ECC 인코딩하는 것"을 k회 반복하여 패러티 비트(ECCP)를 생성한다. The
또한, 디코더(220)는 m비트의 메시지 데이터(M_DATA)를 동시에 인코딩한다. 여기서, m은 n의 k(단, k는 1보다 큰 자연수)배일 수 있다.In addition, the
결과적으로, 디코더(220)는 m비트의 메시지 데이터(M_DATA)를 이용하여 메시지 데이터(M_DATA)의 오류 위치를 산출하고, 인코더(110)도 m(= n×k)비트의 메시지 데이터(M_DATA)를 이용하여 패러티 비트(ECCP)를 생성한다.As a result, the
하지만, 인코더(110)와 디코더(220)가 비대칭적으로(asymmetric) 구성된다. 즉, 인코더(110)는 n×k 비트의 메시지 데이터(M_DATA)를 동시에 인코딩하도록 구성되지 않고, n비트의 메시지 데이터(M_DATA)를 동시에 인코딩하도록 구성된다. 인코더(110)는 동시에 인코딩하는 메시지 데이터(M_DATA)의 개수가 매우 작다. 따라서, 본 발명의 몇몇 실시예에 따른 비휘발성 메모리 장치(1)에서 사용되는 인코더(110)의 사이즈는 상당히 작아질 수 있다. 인코더(110)와 디코더(220)를 비대칭적으로 구성하면, 인코더(110)와 디코더(220)를 대칭적으로(symmectric) 구성하는 것에 비해, 약 88%의 사이즈 감소 효과가 발생할 수 있다.However, the
이러한 ECC 인코딩 동작에 대해서는 도 3 내지 도 5를 이용하여 자세히 후술하도록 하고, ECC 디코딩 동작에 대해서는 도 6을 이용하여 자세히 후술하도록 한다.The ECC encoding operation will be described later in detail with reference to FIGS. 3 to 5, and the ECC decoding operation will be described later in detail with reference to FIG.
한편, 전술한 것과 같이 저항체를 이용한 비휘발성 메모리 셀(예를 들어, 상변화 메모리 셀)의 경우, 리드 동작의 속도에 비해 라이트 동작의 속도가 매우 느리다. 또한, 리드 동작에 사용하는 리드 전류에 비해서, 라이트 동작에 사용되는 라이트 전류의 레벨이 매우 높다. 따라서, 전류 용량(current capacity) 때문에, 동시에 리드할 수 있는 비휘발성 메모리 셀(MC)의 개수는, 동시에 라이트할 수 있는 비휘발성 메모리 셀(MC)의 개수보다 상당히 많다. 예를 들어, 라이트 회로(180)는 32개의 라이트 드라이버를 포함하여, 32개의 비휘발성 메모리 셀(MC)에 동시에 라이트할 수 있다. 반면, 리드 회로(210)는 256개의 센스 앰프를 포함하여, 256개의 비휘발성 메모리 셀(MC)로부터 동시에 리드할 수 있다.On the other hand, in the case of a nonvolatile memory cell (for example, a phase change memory cell) using a resistor as described above, the write operation speed is very slow compared to the read operation speed. In addition, the level of the write current used in the write operation is much higher than the read current used in the read operation. Therefore, because of the current capacity, the number of nonvolatile memory cells MC that can be read at the same time is considerably larger than the number of nonvolatile memory cells MC that can be simultaneously written. For example, the
따라서, 본 발명의 몇몇 실시예에 따른 비휘발성 메모리 장치(1)에서, 인코더(110)는 라이트 회로(180)에 대응되도록 동시에 인코딩하는 메시지 데이터(M_DATA)의 개수가 작을 수 있다. 또한, 디코더(220)는 리드 회로(210)에 대응되도록 동시에 인코딩하는 메시지 데이터(M_DATA)의 개수가 클 수 있다.Therefore, in the
정리하면, 라이트 회로(180)는 n개의 라이트 드라이버(미도시)를 포함하여, n비트의 메시지 데이터(M_DATA)를 동시에 라이트할 수 있다. 인코더(110)는 메시지 데이터(M_DATA)를 n비트씩 병렬로 입력받아, n비트씩 동시에 인코딩할 수 있다. 또한, 리드 회로(210)는 m개의 센스 앰프(미도시)를 포함하여, m비트의 메시지 데이터(M_DATA)를 동시에 리드할 수 있다. 디코더(220)는 메시지 데이터(M_DATA)를 m비트씩 병렬로 입력받아 처리할 수 있다. To summarize, the
도 3 내지 도 5를 참조하여, 인코더(110)의 ECC인코딩 과정을 자세히 설명한다. 3 to 5, the ECC encoding process of the
도 3는 도 1에 도시된 인코더를 설명하기 위한 블록도이다. 도 4는 도 3에 도시된 인코더를 설명하기 위한 회로도이다. 도 5은 도 4에 도시된 인코더의 동작을 설명하기 위한 타이밍도이다.3 is a block diagram for explaining the encoder shown in FIG. 4 is a circuit diagram for explaining the encoder shown in Fig. 5 is a timing chart for explaining the operation of the encoder shown in Fig.
우선, 도 3을 참조하면, 인코더(110)는 XOR게이트 어레이(112), D플립플롭 어레이(114) 등을 포함할 수 있다.3, the
XOR게이트 어레이(112)는 프리 패러티 비트(PRE_ECCP)를 출력한다. 여기서, 도 4 및 도 5를 참조하면, 프리 패러티 비트(PRE_ECCP)는 순차적으로 출력되는 k개의 프리 패러티 비트(PRE_ECCP_1 ~ PRE_ECCP_k)를 의미할 수 있다. 여기서, 마지막으로 출력되는 제k 프리 패러티 비트(PRE_ECCP_k)는 패러티 비트(ECCP)일 수 있다. 또한, 각 프리 패러티 비트(PRE_ECCP_q)는 p(단, q는 1보다 크고 k보다 같거나 작은 자연수)비트일 수 있다. 예를 들어, PRE_ECCP_q 는 PRE_ECCP_q[0]~ PRE_ECCP_q[p-1] 를 포함한다. The
이러한 XOR게이트 어레이(112)는 다수의 XOR게이트(112_1~112_p)를 포함할 수 있다. 각 XOR 게이트(112_1~112_p)에는 n비트의 메시지 데이터(M_DATA) 중에서 선택된 일부 비트가 입력된다. 또한, 각 XOR 게이트(112_1~112_p)에는 프리 패러티 비트(PRE_ECCP_q)가 피드백되어 입력된다. 프리 패러티 비트(PRE_ECCP_q)는 다수의 XOR 게이트(112_1~112_p) 중 적어도 한 개의 XOR 게이트(112_1~112_p)로 피드백될 수 있다. 예를 들어, PRE_ECCP_k[0]이 2개의 XOR게이트(112_1, 112_2)로 피드백되고, PRE_ECCP_k[1]이 2개의 XOR게이트(112_2, 112_3)로 피드백될 수 있으나, 이에 한정되는 것은 아니다. The
D플립플롭 어레이(114)는 다수의 D플립플롭(114_1~114_p)을 포함할 수 있다. 각 D플립플롭(114_1~114_p)은 XOR게이트의 출력(즉, 프리 패러티 비트(PRE_ECCP_q))를 로드 신호(LOAD)에 응답하여 전달한다. 각 D플립플롭(114_1~114_p)은 리셋 신호(RST)에 응답하여 리셋된다.The D
여기서, 도 4 및 도 5를 참고하여 인코더(110)의 동작을 정리하면, 다음과 같다. 이하에서는, 설명의 편의상 메시지 데이터는 32비트씩 8번 순차적으로 입력되는 경우(즉, n=32, k=8)를 설명하도록 한다. Hereinafter, the operation of the
도면 부호 a를 참조하면, CORE-Write Start 신호가 인에이블되면, CORE-Read 신호가 인에이블된다.Referring to reference numeral a, when the CORE-Write Start signal is enabled, the CORE-Read signal is enabled.
이후, 어드레스(WORDADDR)와 메시지 데이터(M_DATA)는 순차적으로 입력된다.Thereafter, the address WORDADDR and the message data M_DATA are sequentially input.
도면 부호 b, c를 참조하면, CORE-Write start 신호가 인에이블되어, 메모리 코어(190)에 메시지 데이터(M_DATA)가 라이트된다. 라이트가 완료되면, CORE-Write done 신호가 인에이블된다. Referring to reference numerals b and c, the CORE-Write start signal is enabled, and the message data M_DATA is written to the
도면 부호 d, e를 참조하면, 인코더(110)의 XOR게이트 어레이(112)는 리셋 상태의 프리 패러티 비트와 메시지 데이터(M_DATA)를 이용하여, 제1 프리 패러티 비트(PRE_ECCP_1)를 생성한다. 로드 신호(LOAD)가 입력되면, D플립플롭 어레이(114)는 제1 프리 패러티 비트(PRE_ECCP_1)를 피드백한다.Referring to reference numerals d and e, the
즉, XOR게이트 어레이(112)는 제q-1(단, q는 1보다 크고 k보다 같거나 작은 자연수) 프리 패러티 비트(PRE_ECCP_q-1)와 메시지 데이터(M_DATA)를 이용하여, 제q 프리 패러티 비트(PRE_ECCP_q)를 생성한다. 제q-1 프리 패러티 비트(PRE_ECCP)는 D플립플롭 어레이(114)로부터 피드백받은 것이다.That is, the
전술한 것과 같은 동작이 반복된다. 결과적으로, 제k 프리 패러티 비트(PRE_ECCP_k)를 생성한다(도면 부호 f 참조). 제k 프리 패러티 비트(PRE_ECCP_k)는 패러티 비트(ECCP)로써 출력된다.The same operation as described above is repeated. As a result, a k th pre-parity bit PRE_ECCP_k is generated (see reference symbol f). The k th pre-parity bit PRE_ECCP_k is output as a parity bit ECCP.
도면 부호 g를 찹조하면, 패러티 비트(ECCP)를 출력한 후, 리셋 신호(RST)에 응답하여 D플립플롭 어레이(114)은 리셋된다.When g is tapped, the D flip-
도 6은 도 1에 도시된 디코더를 설명하기 위한 블록도이다.6 is a block diagram for explaining the decoder shown in FIG.
도 6을 참조하면, 디코더(220)는 신드롬 생성기(222), 에러 위치 검출기(224), 에러 정정기(226) 등을 포함할 수 있다.Referring to FIG. 6, the
신드롬 생성기(222)는 메시지 데이터(M_DATA)와 패러티 비트(ECCP)를 이용하여 신드롬(syndrome)(SDR)을 생성한다. 에러 위치 검출기(224)는 신드롬(SDR)을 이용하여 메시지 데이터(M_DATA)의 오류 위치를 파악한다. 예를 들어, 에러 위치 검출기(224)는 둘 이상의 신드롬(SDR)을 이용하여, 오류 위치 방정식의 계수들을 산출하고, 계수들에 기초하여 오류 위치를 검출할 수 있다. 에러 정정기(226)는 검출된 에러 위치에 기초하여, 메시지 데이터(M_DATA)의 에러를 정정한다. 정정된 메시지 데이터는 CORRECTED_DATA 라 한다.The
여기서, 디코더(220)는 메시지 데이터(M_DATA)를 m비트씩 입력받고, m비트의 메시지 데이터(M_DATA)를 동시에 디코딩할 수 있다. 여기서, m은 n×k 일 수 있다.Here, the
한편, 도 2 내지 도 6을 이용한 ECC 인코딩/디코딩의 설명은, 1비트의 에러 정정하는 경우를 주로 예시하였다. 이러한 것은 예시적인 것에 불과하고, 2비트 이상의 에러 정정의 경우에도 동일하게 적용가능한다.On the other hand, the description of ECC encoding / decoding using Figs. 2 to 6 mainly shows a case of error correction of 1 bit. This is merely an example, and the present invention is equally applicable to error correction of two or more bits.
도 7는 본 발명의 몇몇 실시예에 따른 메모리 시스템을 설명하기 위한 블록도이다. 7 is a block diagram illustrating a memory system in accordance with some embodiments of the present invention.
도 7를 참조하면, 메모리 시스템(1000)은 비휘발성 메모리 장치(1100) 및 컨트롤러(1200)를 포함한다.Referring to FIG. 7,
비휘발성 메모리 장치(1100)는 도 1 내지 도 6을 참조하여 설명된 바와 마찬가지로 구성되고, 동작할 수 있다. The
컨트롤러(1200)는 호스트(Host) 및 비휘발성 메모리 장치(1100)에 연결된다. 호스트(Host)로부터의 요청에 응답하여, 컨트롤러(1200)는 비휘발성 메모리 장치(1100)를 액세스하도록 구성된다. 예를 들면, 컨트롤러(1200)는 비휘발성 메모리 장치(1100)의 읽기, 쓰기, 소거, 그리고 배경(background) 동작을 제어하도록 구성된다. 컨트롤러(1200)는 비휘발성 메모리 장치(1100) 및 호스트(Host) 사이에 인터페이스를 제공하도록 구성된다. 컨트롤러(1200)는 비휘발성 메모리 장치(1100)를 제어하기 위한 펌웨어(firmware)를 구동하도록 구성된다.The
예시적으로, 컨트롤러(1200)는 램(RAM, Random Access Memory), 프로세싱 유닛(processing unit), 호스트 인터페이스(host interface), 그리고 메모리 인터페이스(memory interface)와 같은 잘 알려진 구성 요소들을 더 포함한다. 램(RAM)은 프로세싱 유닛의 동작 메모리, 비휘발성 메모리 장치(1100) 및 호스트(Host) 사이의 캐시 메모리, 그리고 비휘발성 메모리 장치(1100) 및 호스트(Host) 사이의 버퍼 메모리 중 적어도 하나로서 이용된다. 프로세싱 유닛은 컨트롤러(1200)의 제반 동작을 제어한다.Illustratively,
호스트 인터페이스는 호스트(Host) 및 컨트롤러(1200) 사이의 데이터 교환을 수행하기 위한 프로토콜을 포함한다. 예시적으로, 컨트롤러(1200)는 USB (Universal Serial Bus) 프로토콜, MMC (multimedia card) 프로토콜, PCI (peripheral component interconnection) 프로토콜, PCI-E (PCI-express) 프로토콜, ATA (Advanced Technology Attachment) 프로토콜, Serial-ATA 프로토콜, Parallel-ATA 프로토콜, SCSI (small computer small interface) 프로토콜, ESDI (enhanced small disk interface) 프로토콜, 그리고 IDE (Integrated Drive Electronics) 프로토콜 등과 같은 다양한 인터페이스 프로토콜들 중 적어도 하나를 통해 외부(호스트)와 통신하도록 구성된다. 메모리 인터페이스는 비휘발성 메모리 장치(1100)와 인터페이싱한다. 예를 들면, 메모리 인터페이스는 낸드 인터페이스 또는 노어 인터페이스를 포함한다.The host interface includes a protocol for performing data exchange between the host (Host) and the
메모리 시스템(1000)은 오류 정정 블록을 추가적으로 포함하도록 구성될 수 있다. 오류 정정 블록은 오류 정정 코드(ECC)를 이용하여 비휘발성 메모리 장치(1100)로부터 읽어진 데이터의 오류를 검출하고, 정정하도록 구성된다. 예시적으로, 오류 정정 블록은 컨트롤러(1200)의 구성 요소로서 제공된다. 오류 정정 블록은 비휘발성 메모리 장치(1100)의 구성 요소로서 제공될 수 있다.The
컨트롤러(1200) 및 비휘발성 메모리 장치(1100)는 하나의 반도체 장치로 집적될 수 있다. 예시적으로, 컨트롤러(1200) 및 비휘발성 메모리 장치(1100)는 하나의 반도체 장치로 집적되어, 메모리 카드를 구성할 수 있다. 예를 들면, 컨트롤러(1200) 및 비휘발성 메모리 장치(1100)는 하나의 반도체 장치로 집적되어 PC 카드(PCMCIA, personal computer memory card international association), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD, SDHC), 유니버설 플래시 기억장치(UFS) 등과 같은 메모리 카드를 구성할 것이다.
컨트롤러(1200) 및 비휘발성 메모리 장치(1100)는 하나의 반도체 장치로 집적되어 반도체 드라이브(SSD, Solid State Drive)를 구성할 수 있다. 반도체 드라이브(SSD)는 반도체 메모리에 데이터를 저장하도록 구성되는 저장 장치를 포함한다. 메모리 시스템(10)이 반도체 드라이브(SSD)로 이용되는 경우, 메모리 시스템(1000)에 연결된 호스트(Host)의 동작 속도는 획기적으로 개선된다.The
다른 예로서, 메모리 시스템(1000)은 컴퓨터, UMPC (Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA (Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), e-북(e-book), PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 블랙박스(black box), 디지털 카메라(digital camera), 3차원 수상기(3-dimensional television), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), 정보를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크를 구성하는 다양한 전자 장치들 중 하나, 컴퓨터 네트워크를 구성하는 다양한 전자 장치들 중 하나, 텔레매틱스 네트워크를 구성하는 다양한 전자 장치들 중 하나, RFID 장치, 또는 컴퓨팅 시스템을 구성하는 다양한 구성 요소들 중 하나 등과 같은 전자 장치의 다양한 구성 요소들 중 하나로 제공된다.As another example, the
예시적으로, 비휘발성 메모리 장치(1100) 또는 메모리 시스템(1000)은 다양한 형태들의 패키지로 실장될 수 있다. 예를 들면, 비휘발성 메모리 장치(1100) 또는 메모리 시스템(1000)은 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP) 등과 같은 방식으로 패키지화되어 실장될 수 있다.Illustratively,
도 8은 도 7의 메모리 시스템의 응용 예를 보여주는 블록도이다. 8 is a block diagram illustrating an application example of the memory system of FIG.
도 8을 참조하면, 메모리 시스템(2000)은 비휘발성 메모리 장치(2100) 및 컨트롤러(2200)를 포함한다. 비휘발성 메모리 장치(2100)는 복수의 비휘발성 메모리 칩들을 포함한다. 복수의 비휘발성 메모리 칩들은 복수의 그룹들로 분할된다. 복수의 비휘발성 메모리 칩들의 각 그룹은 하나의 공통 채널을 통해 컨트롤러(2200)와 통신하도록 구성된다. 예를 들어, 복수의 비휘발성 메모리 칩들은 제 1 내지 제 k 채널들(CH1~CHk)을 통해 컨트롤러(2200)와 통신하는 것으로 도시되어 있다. 8, the
각 비휘발성 메모리 칩은 도 1 내지 도 6을 참조하여 설명된 비휘발성 메모리 장치(100)와 마찬가지로 구성된다. Each non-volatile memory chip is configured similarly to the non-volatile memory device 100 described with reference to Figures 1-6.
도 8에서, 하나의 채널에 복수의 비휘발성 메모리 칩들이 연결되는 것으로 설명되었다. 그러나, 하나의 채널에 하나의 비휘발성 메모리 칩이 연결되도록 메모리 시스템(2000)이 변형될 수 있음이 이해될 것이다.In Fig. 8, it has been described that a plurality of nonvolatile memory chips are connected to one channel. However, it will be appreciated that the
도 9은 도 8을 참조하여 설명된 메모리 시스템을 포함하는 컴퓨팅 시스템을 보여주는 블록도이다. 9 is a block diagram illustrating a computing system including the memory system described with reference to FIG.
도 9을 참조하면, 컴퓨팅 시스템(3000)은 중앙 처리 장치(3100), 램(3200, RAM, Random Access Memory), 사용자 인터페이스(3300), 전원(3400), 그리고 메모리 시스템(2000)을 포함한다.9, the
메모리 시스템(2000)은 시스템 버스(3500)를 통해, 중앙처리장치(3100), 램(3200), 사용자 인터페이스(3300), 그리고 전원(3400)에 전기적으로 연결된다. 사용자 인터페이스(3300)를 통해 제공되거나, 중앙 처리 장치(3100)에 의해서 처리된 데이터는 메모리 시스템(2000)에 저장된다.The
도 9에서, 비휘발성 메모리 장치(2100)는 컨트롤러(2200)를 통해 시스템 버스(3500)에 연결되는 것으로 도시되어 있다. 그러나, 비휘발성 메모리 장치(2100)는 시스템 버스(3500)에 직접 연결되도록 구성될 수 있다.In FIG. 9,
도 9에서, 도 8을 참조하여 설명된 메모리 시스템(2000)이 제공되는 것으로 도시되어 있다. 그러나, 메모리 시스템(2000)은 도 7를 참조하여 설명된 메모리 시스템(1000)으로 대체될 수 있다.In FIG. 9, it is shown that the
예시적으로, 컴퓨팅 시스템(3000)은 도 7 및 도 8을 참조하여 설명된 메모리 시스템들(1000, 2000)을 모두 포함하도록 구성될 수 있다.Illustratively, the
한편, 본 발명의 몇몇 실시예에 따른 비휘발성 메모리 장치(1)에서 사용되는 에러 정정 회로는, 메모리 장치에 한정되어 사용되는 것은 아니다.On the other hand, the error correction circuit used in the
인코더와 디코더가 비대칭적으로(asymmetric) 구성되는 어떤 장치에도 적용될 수 있다. 즉, 인코더는 n×k 비트의 메시지 데이터를 동시에 인코딩하도록 구성되지 않고 n비트의 메시지 데이터를 동시에 인코딩하도록 구성된다. 또한, 인코더는 n비트씩 메시지 데이터를 입력받을 때마다 인코딩 동작을 하여, 패러티 비트를 최종적으로 출력할 수 있다. 반면, 디코더는 n×k 비트의 메시지 데이터를 동시에 디코딩하여, 메시지 데이터의 에러 위치를 찾아낼 수 있다. 즉, 이러한 구성을 갖는다면, 어떠한 장치에도 적용될 수 있다.It can be applied to any device in which the encoder and the decoder are configured asymmetric. That is, the encoder is not configured to simultaneously encode nxk bits of message data, but is configured to simultaneously encode n bits of message data. In addition, the encoder performs an encoding operation every n bits of received message data, and finally outputs the parity bit. On the other hand, the decoder can simultaneously decode nxk bits of message data to find the error location of the message data. That is, it can be applied to any device if it has such a configuration.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. While the present invention has been described in connection with what is presently considered to be practical exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, You will understand. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive.
1: 비휘발성 메모리 장치 110: 인코더
112: XOR 게이트 어레이 114: D플립플롭 어레이
180: 라이트 회로 190: 메모리 코어
210: 리드 회로 220: 디코더1: non-volatile memory device 110: encoder
112: XOR gate array 114: D flip flop array
180: write circuit 190: memory core
210: Read circuit 220: Decoder
Claims (10)
상기 메시지 데이터와 상기 패러티 비트를 입력받아, 상기 메시지 데이터의 오류 위치를 산출하는 디코더를 포함하되,
상기 메시지 데이터는 n(단, n은 1보다 큰 자연수) 비트씩 병렬로 상기 인코더로 입력되고, 상기 메시지 데이터는 상기 n의 k(단, k는 1 보다 큰 자연수)배인 m(단, m은 1보다 큰 자연수) 비트씩 병렬로 상기 디코더로 입력되고,
상기 인코더는 상기 메시지 데이터를 n비트씩 k회 제공받고, 상기 메시지 데이터를 n비트씩 제공받을 때마다 ECC(Error Correction Code) 인코딩을 수행하여 제1 내지 제k 프리 패러티 비트(pre-parity bit)를 순차적으로 생성하며, 상기 제k 프리 패러티 비트를 상기 패러티 비트로 출력하여 상기 패러티 비트를 생성하고,
제q(단, q는 1보다 크고 k보다 같거나 작은 자연수) 프리 패러티 비트는, 제q-1 프리 패러티 비트와 상기 메시지 데이터를 ECC 인코딩하여 생성되는 에러 정정 회로. An encoder receiving the message data and generating a bit error correctable parity bit; And
And a decoder receiving the message data and the parity bit and calculating an error position of the message data,
Wherein the message data is input to the encoder in parallel by n bits (n is a natural number greater than 1), and the message data is m (where k is a natural number greater than 1) 1) bits in parallel to the decoder,
The encoder receives the message data k times in units of n bits and performs ECC (Error Correction Code) encoding every n bits of the message data to generate first through k-th pre-parity bits, Generating the parity bit by outputting the k < th > pre-parity bit as the parity bit,
The error correction circuit is generated by ECC encoding a q-th (n is a natural number greater than 1 and less than or equal to k) q-th pre-parity bit and the message data.
상기 디코더는 상기 메시지 데이터의 1비트 에러 정정이 가능한 에러 정정 회로.The method according to claim 1,
Wherein the decoder is capable of 1-bit error correction of the message data.
상기 제q-1 프리 패러티 비트를 출력하는 XOR게이트 어레이와, 로드 신호에 응답하여 상기 제q-1 프리 패러티 비트를 전달하는 D플립플롭 어레이를 포함하되,
상기 XOR게이트 어레이는 상기 D플립플롭 어레이로부터 출력된 상기 제q-1 프리 패러티 비트를 피드백받고, 상기 메시지 데이터를 제공받아 제q 프리 패러티 비트를 생성하는 에러 정정 회로. 2. The apparatus of claim 1, wherein the encoder
And a D flip flop array for transferring the q-th < th > pre-parity bit in response to a load signal,
Wherein the XOR gate array receives the q-1 pre-parity bits output from the D flip-flop array and receives the message data to generate a q pre-parity bit.
메시지 데이터를 입력받아, 비트 에러 정정 가능한 패러티 비트를 생성하는 인코더;
상기 메시지 데이터와 상기 패러티 비트를 상기 메모리 코어에 라이트하는 라이트 회로;
상기 메모리 코어에 저장되었던 상기 메시지 데이터와 상기 패러티 비트를 리드하는 리드 회로; 및
상기 리드 회로로부터 상기 메시지 데이터와 상기 패러티 비트를 입력받아, 상기 메시지 데이터의 오류 위치를 산출하는 디코더를 포함하되,
상기 메시지 데이터는 n(단, n은 1보다 큰 자연수) 비트씩 병렬로 상기 인코더로 입력되고, 상기 메시지 데이터는 상기 n의 k(단, k는 1 보다 큰 자연수)배인 m(단, m은 1보다 큰 자연수) 비트씩 병렬로 상기 디코더로 입력되고,
상기 인코더는 상기 메시지 데이터를 n비트씩 k회 제공받고, 상기 메시지 데이터를 n비트씩 제공받을 때마다 ECC 인코딩을 수행하여 제1 내지 제k 프리 패러티 비트(pre-parity bit)를 순차적으로 생성하며, 상기 제k 프리 패러티 비트를 상기 패러티 비트로 출력하여 상기 패러티 비트를 생성하고,
제q(단, q는 1보다 크고 k보다 같거나 작은 자연수) 프리 패러티 비트는, 제q-1 프리 패러티 비트와 상기 메시지 데이터를 ECC 인코딩하여 생성되는 비휘발성 메모리 장치.A memory core including a non-volatile memory cell;
An encoder receiving the message data and generating a bit error correctable parity bit;
A write circuit for writing the message data and the parity bit to the memory core;
A read circuit for reading the message data and the parity bit stored in the memory core; And
And a decoder for receiving the message data and the parity bit from the read circuit and calculating an error position of the message data,
Wherein the message data is input to the encoder in parallel by n bits (n is a natural number greater than 1), and the message data is m (where k is a natural number greater than 1) 1) bits in parallel to the decoder,
The encoder receives the message data k times in units of n bits and performs ECC encoding every n bits of the message data to sequentially generate first to kth pre-parity bits And outputs the k-th parity bit as the parity bit to generate the parity bit,
The non-volatile memory device according to claim 1, wherein the q-th pre-parity bit is generated by ECC-encoding the q-1 pre-parity bit and the message data.
상기 라이트 회로는 n개의 라이트 드라이버를 포함하여, 상기 n비트의 메시지 데이터를 동시에 라이트할 수 있는 비휘발성 메모리 장치.9. The method of claim 8,
Wherein the write circuit includes n write drivers, and is capable of simultaneously writing the n-bit message data.
상기 인코더는 메시지 데이터를 n(단, n은 1보다 큰 자연수)비트씩 k회 입력받고, 상기 메시지 데이터를 n비트씩 제공받을 때마다 ECC 인코딩을 수행하여 제1 내지 제k 프리 패러티 비트(pre-parity bit)를 순차적으로 생성하며, 상기 제k 프리 패러티 비트를 상기 패러티 비트로 출력하여 상기 패러티 비트를 생성하고,
상기 디코더는 상기 패러티 비트와 상기 메시지 데이터를 n*k비트씩 입력받아, 상기 메시지 데이터의 오류 위치를 산출하는 것을 포함하되,
제q(단, q는 1보다 크고 k보다 같거나 작은 자연수) 프리 패러티 비트는, 제q-1 프리 패러티 비트와 상기 메시지 데이터를 ECC 인코딩하여 생성되는 에러 정정 회로의 구동 방법.A method of driving an error correction circuit including an encoder and a decoder,
The encoder receives the message data k times n times (where n is a natural number greater than 1) and performs ECC encoding every n bits of the message data to generate first through kth pre-parity bits pre -parity bits), generating the parity bits by outputting the k < th > pre-parity bits as the parity bits,
Wherein the decoder receives n * k bits of the parity bit and the message data to calculate an error position of the message data,
The method of claim 1, wherein the q-th pre-parity bit is a natural number smaller than or equal to k, and wherein the q-th pre-parity bit and the message data are ECC-encoded.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110075367A KR101816642B1 (en) | 2011-07-28 | 2011-07-28 | Error correction circuit, nonvolatile memory device thereof and driving method thereof |
US13/532,911 US8848465B2 (en) | 2011-07-06 | 2012-06-26 | Memory devices including selective RWW and RMW decoding |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110075367A KR101816642B1 (en) | 2011-07-28 | 2011-07-28 | Error correction circuit, nonvolatile memory device thereof and driving method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130013638A KR20130013638A (en) | 2013-02-06 |
KR101816642B1 true KR101816642B1 (en) | 2018-01-10 |
Family
ID=47894065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110075367A KR101816642B1 (en) | 2011-07-06 | 2011-07-28 | Error correction circuit, nonvolatile memory device thereof and driving method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101816642B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9183086B2 (en) * | 2013-06-03 | 2015-11-10 | Sandisk Technologies Inc. | Selection of data for redundancy calculation in three dimensional nonvolatile memory |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4404673A (en) | 1981-02-09 | 1983-09-13 | National Semiconductor Corporation | Error correcting network |
US20040019743A1 (en) * | 2000-11-22 | 2004-01-29 | Mario Au | FIFO memory devices having multi-port cache memory arrays therein that support hidden EDC latency and bus matching and methods of operating same |
US20040255225A1 (en) * | 2003-01-31 | 2004-12-16 | Yoriharu Takai | Control circuit for error checking and correction and memory controller |
KR100842680B1 (en) | 2007-01-08 | 2008-07-01 | 삼성전자주식회사 | Ecc controller for use in flash memory device and memory system including the same |
-
2011
- 2011-07-28 KR KR1020110075367A patent/KR101816642B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4404673A (en) | 1981-02-09 | 1983-09-13 | National Semiconductor Corporation | Error correcting network |
US20040019743A1 (en) * | 2000-11-22 | 2004-01-29 | Mario Au | FIFO memory devices having multi-port cache memory arrays therein that support hidden EDC latency and bus matching and methods of operating same |
US20040255225A1 (en) * | 2003-01-31 | 2004-12-16 | Yoriharu Takai | Control circuit for error checking and correction and memory controller |
KR100842680B1 (en) | 2007-01-08 | 2008-07-01 | 삼성전자주식회사 | Ecc controller for use in flash memory device and memory system including the same |
Also Published As
Publication number | Publication date |
---|---|
KR20130013638A (en) | 2013-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8848465B2 (en) | Memory devices including selective RWW and RMW decoding | |
US9928140B2 (en) | Non-volatile memory device and method of operating the same | |
US10741245B2 (en) | Resistive memory device and resistive memory system including a plurality of layers, and method of operating the system | |
CN105825896B (en) | Memory system and method of operating the same | |
US9070467B2 (en) | Memory system including nonvolatile memory device and control method thereof | |
US10720209B2 (en) | Memory device comprising resistance change material and method for driving the same | |
US9443586B2 (en) | Nonvolatile memory device, memory system including the same and method for driving nonvolatile memory device | |
CN107093454A (en) | Resistance-change memory device and the voltage generating circuit for resistance-change memory device | |
KR101791508B1 (en) | Nonvolatile memory device | |
US8995203B2 (en) | Non-volatile memory device, driving method of memory controller controlling the non-volatile memory device and memory system including the memory controller and the non-volatile memory device | |
US9299429B2 (en) | Nonvolatile memory device using a resistance material and a driving method thereof | |
US8902633B2 (en) | Resistive memory device comprising selectively disabled write driver | |
US9286156B2 (en) | Data storage device and method for processing error correction code thereof | |
US9135994B2 (en) | Nonvolatile memory device having read circuits for performing Read-While-Write (RWW) operation and Read-Modify-Write (RMW) operation | |
US10074426B2 (en) | Memory device having resistance change material and operating method for the memory device | |
KR101816642B1 (en) | Error correction circuit, nonvolatile memory device thereof and driving method thereof | |
KR101814476B1 (en) | Nonvolatile memory device and driving method thereof | |
KR20130005499A (en) | Nonvolatile memory device and driving method thereof | |
US8635512B2 (en) | Memory system with page-based iterative decoding structure and page-based iterative decoding method thereof | |
US9142294B2 (en) | Nonvolatile resistive memory device and writing method | |
KR20140108984A (en) | Nonvolatile memory device using variable resistive element and driving method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |