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 PDF

Info

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
Application number
KR1020110075367A
Other languages
Korean (ko)
Other versions
KR20130013638A (en
Inventor
전성현
정회주
김서희
김성훈
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020110075367A priority Critical patent/KR101816642B1/en
Priority to US13/532,911 priority patent/US8848465B2/en
Publication of KR20130013638A publication Critical patent/KR20130013638A/en
Application granted granted Critical
Publication of KR101816642B1 publication Critical patent/KR101816642B1/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/1201Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising I/O circuitry
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural 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

에러 정정 회로, 이를 포함하는 비휘발성 메모리 장치 및 이의 구동 방법{Error correction circuit, nonvolatile memory device thereof and driving method thereof}[0001] The present invention relates to an error correction circuit, a nonvolatile memory device including the same, and a driving method thereof.

본 발명은 에러 정정 회로, 이를 포함하는 비휘발성 메모리 장치 및 이의 구동 방법에 관한 것이다.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 non-volatile memory device 1 according to some embodiments of the present invention includes an encoder 110, a write circuit 180, a memory core 190, a read circuit 210, a decoder 220, . Through such a configuration, the nonvolatile memory device 1 according to some embodiments of the present invention can perform an error correction operation using ECC.

메모리 코어(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 memory core 190 may include a plurality of non-volatile memory cells (see MC in FIG. 5). The nonvolatile memory cell MC can write or read data by using a resistor. The nonvolatile memory cell MC includes a variable resistance element RC having a phase change material whose resistance varies according to data to be stored and an access element AC for controlling a current flowing through the variable resistance element RC can do. Here, the access element AC may be a diode, a transistor, or the like coupled in series with the variable resistive element RC. In the drawing, a diode is shown as a variable resistance element (RC). The phase change material is GaSb, InSb, and InSe. Sb2Te3, GeTe, GeSbTe, GaSeTe, InSbTe, SnSb2Te4, InSbGe combined with four elements, AgInSbTe, GeSn, SbTe, GeSb (SeTe), Te81Ge15Sb2S2 and the like can be used. Of these, GeSbTe composed of germanium (Ge), antimony (Sb) and tellurium (Te) can be mainly used.

인코더(110)는 메시지 데이터(M_DATA)를 입력받아, 비트 에러 정정 가능한 패러티 비트(ECCP)를 생성한다.The encoder 110 receives the message data M_DATA and generates a bit error correctable parity bit (ECCP).

라이트 회로(180)는 메시지 데이터(M_DATA)와 패러티 비트(ECCP)를 메모리 코어(190)에 라이트한다. 여기서, "메시지 데이터(M_DATA) + 패러티 비트(ECCP)"를 "코드워드(codeword)"(CW)라고 부를 수 있다. The write circuit 180 writes the message data M_DATA and the parity bit ECCP to the memory core 190. Here, the "message data (M_DATA) + parity bit (ECCP)" may be referred to as "codeword" (CW).

리드 회로(210)는 메모리 코어(190)에 저장되었던 메시지 데이터(M_DATA)와 패러티 비트(ECCP)를 리드한다.The read circuit 210 reads out the message data M_DATA and the parity bit ECCP which have been stored in the memory core 190. [

디코더(220)는 리드 회로(210)로부터 메시지 데이터(M_DATA)와 패러티 비트(ECCP)를 입력받아, 메시지 데이터(M_DATA)의 오류 위치를 산출한다. 그 후, 디코더(220)는 메시지 데이터(M_DATA)를 정정하여 정정된 메시지 데이터(CORRECTED_DATA)를 출력할 수 있다.The decoder 220 receives the message data M_DATA and the parity bit (ECCP) from the read circuit 210 and calculates the error position of the message data M_DATA. Thereafter, the decoder 220 can correct the message data M_DATA and output the corrected message data CORRECTED_DATA.

본 발명의 몇몇 실시예에 따른 비휘발성 메모리 장치(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 nonvolatile memory device 1 according to some embodiments of the present invention, the number of message data M_DATA input in parallel to the encoder 110 and the number of message data M_DATA input in parallel to the decoder 220 The number may vary. In other words, the message data M_DATA is input to the encoder 110 in parallel by n bits (where n is a natural number greater than 1), and the message data M_DATA is m different from n (where m is larger than 1 Natural number) bits to the decoder 220 in parallel. For example, the number of message data M_DATA input to the encoder 110 in parallel can be made smaller than the number of message data M_DATA input to the decoder 220 in parallel.

인코더(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 encoder 110 receives the message data M_DATA every n bits of k (k is a natural number larger than 1) and performs ECC encoding every n bits of the message data M_DATA to generate a parity bit ECCP). As a result, the encoder 110 receives the nxk bits to complete the parity bit (ECCP). However, the encoder 110 does not generate parity bits (ECCP) by simultaneously encoding nxk bits, but repeats k times of receiving "message data (M_DATA) in n bits and performing ECC encoding" Bit (ECCP).

또한, 디코더(220)는 m비트의 메시지 데이터(M_DATA)를 동시에 인코딩한다. 여기서, m은 n의 k(단, k는 1보다 큰 자연수)배일 수 있다.In addition, the decoder 220 simultaneously encodes the m-bit message data M_DATA. Here, m may be a multiple of k (where k is a natural number greater than 1) times n.

결과적으로, 디코더(220)는 m비트의 메시지 데이터(M_DATA)를 이용하여 메시지 데이터(M_DATA)의 오류 위치를 산출하고, 인코더(110)도 m(= n×k)비트의 메시지 데이터(M_DATA)를 이용하여 패러티 비트(ECCP)를 생성한다.As a result, the decoder 220 calculates the error position of the message data M_DATA using the m-bit message data M_DATA, and the encoder 110 calculates the error location of the message data M_DATA of m (= nxk) To generate a parity bit (ECCP).

하지만, 인코더(110)와 디코더(220)가 비대칭적으로(asymmetric) 구성된다. 즉, 인코더(110)는 n×k 비트의 메시지 데이터(M_DATA)를 동시에 인코딩하도록 구성되지 않고, n비트의 메시지 데이터(M_DATA)를 동시에 인코딩하도록 구성된다. 인코더(110)는 동시에 인코딩하는 메시지 데이터(M_DATA)의 개수가 매우 작다. 따라서, 본 발명의 몇몇 실시예에 따른 비휘발성 메모리 장치(1)에서 사용되는 인코더(110)의 사이즈는 상당히 작아질 수 있다. 인코더(110)와 디코더(220)를 비대칭적으로 구성하면, 인코더(110)와 디코더(220)를 대칭적으로(symmectric) 구성하는 것에 비해, 약 88%의 사이즈 감소 효과가 발생할 수 있다.However, the encoder 110 and the decoder 220 are configured asymmetric. That is, the encoder 110 is not configured to simultaneously encode nxk bits of message data M_DATA, but is configured to simultaneously encode n bits of message data M_DATA. The encoder 110 has a very small number of message data M_DATA to be simultaneously encoded. Thus, the size of the encoder 110 used in the non-volatile memory device 1 according to some embodiments of the present invention can be significantly reduced. Asymmetrically configuring the encoder 110 and the decoder 220 may result in a size reduction effect of about 88% compared to configuring the encoder 110 and the decoder 220 symmetrically.

이러한 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 write circuit 180 may include 32 write drivers so that it can simultaneously write to 32 nonvolatile memory cells MC. On the other hand, the read circuit 210 includes 256 sense amplifiers, and can read simultaneously from 256 nonvolatile memory cells MC.

따라서, 본 발명의 몇몇 실시예에 따른 비휘발성 메모리 장치(1)에서, 인코더(110)는 라이트 회로(180)에 대응되도록 동시에 인코딩하는 메시지 데이터(M_DATA)의 개수가 작을 수 있다. 또한, 디코더(220)는 리드 회로(210)에 대응되도록 동시에 인코딩하는 메시지 데이터(M_DATA)의 개수가 클 수 있다.Therefore, in the nonvolatile memory device 1 according to some embodiments of the present invention, the number of message data M_DATA that are simultaneously encoded by the encoder 110 to correspond to the write circuit 180 may be small. Also, the number of message data (M_DATA) to be simultaneously encoded by the decoder 220 to correspond to the read circuit 210 may be large.

정리하면, 라이트 회로(180)는 n개의 라이트 드라이버(미도시)를 포함하여, n비트의 메시지 데이터(M_DATA)를 동시에 라이트할 수 있다. 인코더(110)는 메시지 데이터(M_DATA)를 n비트씩 병렬로 입력받아, n비트씩 동시에 인코딩할 수 있다. 또한, 리드 회로(210)는 m개의 센스 앰프(미도시)를 포함하여, m비트의 메시지 데이터(M_DATA)를 동시에 리드할 수 있다. 디코더(220)는 메시지 데이터(M_DATA)를 m비트씩 병렬로 입력받아 처리할 수 있다. To summarize, the write circuit 180 can write n-bit message data M_DATA simultaneously including n write drivers (not shown). The encoder 110 receives the message data M_DATA in parallel in units of n bits, and can simultaneously encode n bits at a time. Also, the read circuit 210 may include m sense amplifiers (not shown) to simultaneously read the m-bit message data M_DATA. The decoder 220 may receive and process the message data M_DATA in parallel by m bits at a time.

도 3 내지 도 5를 참조하여, 인코더(110)의 ECC인코딩 과정을 자세히 설명한다. 3 to 5, the ECC encoding process of the encoder 110 will be described in detail.

도 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 encoder 110 may include an XOR gate array 112, a D flip flop array 114, and the like.

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 gate array 112 outputs the pre-parity bit PRE_ECCP. Referring to FIGS. 4 and 5, the pre-parity bit PRE_ECCP may mean k pre-parity bits (PRE_ECCP_1 to PRE_ECCP_k) sequentially output. Here, the last k th pre-parity bit PRE_ECCP_k may be a parity bit (ECCP). Further, each of the parity bits PRE_ECCP_q may be p (where q is a natural number greater than 1 and less than or equal to k). For example, PRE_ECCP_q includes PRE_ECCP_q [0] to PRE_ECCP_q [p-1].

이러한 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 XOR gate array 112 may include a plurality of XOR gates 112_1 to 112_p. Some bits selected from the n-bit message data M_DATA are input to the XOR gates 112_1 to 112_p. Further, a pre-parity bit PRE_ECCP_q is fed back to each of the XOR gates 112_1 to 112_p. The pre-parity bit PRE_ECCP_q may be fed back to at least one of the XOR gates 112_1 to 112_p among the plurality of XOR gates 112_1 to 112_p. For example, PRE_ECCP_k [0] may be fed back to two XOR gates 112_1 and 112_2, and PRE_ECCP_k [1] may be fed back to two XOR gates 112_2 and 112_3.

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 flip flop array 114 may include a plurality of D flip flops 114_1 through 114_p. Each D flip-flop 114_1 to 114_p transfers the output of the XOR gate (i.e., the parity bit PRE_ECCP_q) in response to the load signal LOAD. Each D flip-flop 114_1 to 114_p is reset in response to a reset signal RST.

여기서, 도 4 및 도 5를 참고하여 인코더(110)의 동작을 정리하면, 다음과 같다. 이하에서는, 설명의 편의상 메시지 데이터는 32비트씩 8번 순차적으로 입력되는 경우(즉, n=32, k=8)를 설명하도록 한다. Hereinafter, the operation of the encoder 110 will be summarized below with reference to FIGS. 4 and 5. FIG. Hereinafter, for convenience of explanation, it is assumed that the message data is sequentially inputted eight times by 32 bits (i.e., n = 32, k = 8).

도면 부호 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 memory core 190. When the write is complete, the CORE-Write done signal is enabled.

도면 부호 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 gate array 112 of the encoder 110 generates a first pre-parity bit (PRE_ECCP_1) using the pre-parity bit and the message data M_DATA in the reset state. When the load signal LOAD is input, the D flip-flop array 114 feeds back the first pre-parity bit PRE_ECCP_1.

즉, 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 XOR gate array 112 uses the pre-parity bit PRE_ECCP_q-1 and the message data M_DATA of q-1 (where q is a natural number larger than 1 and smaller than or equal to k) and message data M_DATA, Bit PRE_ECCP_q. The (q-1) th parity bit PRE_ECCP is fed back from the D flip flop array 114.

전술한 것과 같은 동작이 반복된다. 결과적으로, 제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-flop array 114 is reset in response to the reset signal RST after outputting the parity bit ECCP.

도 6은 도 1에 도시된 디코더를 설명하기 위한 블록도이다.6 is a block diagram for explaining the decoder shown in FIG.

도 6을 참조하면, 디코더(220)는 신드롬 생성기(222), 에러 위치 검출기(224), 에러 정정기(226) 등을 포함할 수 있다.Referring to FIG. 6, the decoder 220 may include a syndrome generator 222, an error location detector 224, an error corrector 226, and the like.

신드롬 생성기(222)는 메시지 데이터(M_DATA)와 패러티 비트(ECCP)를 이용하여 신드롬(syndrome)(SDR)을 생성한다. 에러 위치 검출기(224)는 신드롬(SDR)을 이용하여 메시지 데이터(M_DATA)의 오류 위치를 파악한다. 예를 들어, 에러 위치 검출기(224)는 둘 이상의 신드롬(SDR)을 이용하여, 오류 위치 방정식의 계수들을 산출하고, 계수들에 기초하여 오류 위치를 검출할 수 있다. 에러 정정기(226)는 검출된 에러 위치에 기초하여, 메시지 데이터(M_DATA)의 에러를 정정한다. 정정된 메시지 데이터는 CORRECTED_DATA 라 한다.The syndrome generator 222 generates a syndrome (SDR) using the message data M_DATA and the parity bit ECCP. The error position detector 224 detects the error position of the message data M_DATA using the syndrome (SDR). For example, the error location detector 224 may use two or more syndromes (SDR) to calculate the coefficients of the error location equation and to detect the error location based on the coefficients. The error corrector 226 corrects the error of the message data M_DATA based on the detected error position. Corrected message data is called CORRECTED_DATA.

여기서, 디코더(220)는 메시지 데이터(M_DATA)를 m비트씩 입력받고, m비트의 메시지 데이터(M_DATA)를 동시에 디코딩할 수 있다. 여기서, m은 n×k 일 수 있다.Here, the decoder 220 receives m bits of the message data M_DATA and can simultaneously decode the m bits of the message data M_DATA. Here, m may be n x k.

한편, 도 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, memory system 1000 includes a non-volatile memory device 1100 and a controller 1200.

비휘발성 메모리 장치(1100)는 도 1 내지 도 6을 참조하여 설명된 바와 마찬가지로 구성되고, 동작할 수 있다. The non-volatile memory device 1100 may be configured and operated as described with reference to Figures 1-6.

컨트롤러(1200)는 호스트(Host) 및 비휘발성 메모리 장치(1100)에 연결된다. 호스트(Host)로부터의 요청에 응답하여, 컨트롤러(1200)는 비휘발성 메모리 장치(1100)를 액세스하도록 구성된다. 예를 들면, 컨트롤러(1200)는 비휘발성 메모리 장치(1100)의 읽기, 쓰기, 소거, 그리고 배경(background) 동작을 제어하도록 구성된다. 컨트롤러(1200)는 비휘발성 메모리 장치(1100) 및 호스트(Host) 사이에 인터페이스를 제공하도록 구성된다. 컨트롤러(1200)는 비휘발성 메모리 장치(1100)를 제어하기 위한 펌웨어(firmware)를 구동하도록 구성된다.The controller 1200 is connected to the host (Host) and the nonvolatile memory device 1100. In response to a request from the host (Host), the controller 1200 is configured to access the non-volatile memory device 1100. For example, the controller 1200 is configured to control the read, write, erase, and background operations of the non-volatile memory device 1100. The controller 1200 is configured to provide an interface between the non-volatile memory device 1100 and the host (Host). The controller 1200 is configured to drive firmware for controlling the non-volatile memory device 1100.

예시적으로, 컨트롤러(1200)는 램(RAM, Random Access Memory), 프로세싱 유닛(processing unit), 호스트 인터페이스(host interface), 그리고 메모리 인터페이스(memory interface)와 같은 잘 알려진 구성 요소들을 더 포함한다. 램(RAM)은 프로세싱 유닛의 동작 메모리, 비휘발성 메모리 장치(1100) 및 호스트(Host) 사이의 캐시 메모리, 그리고 비휘발성 메모리 장치(1100) 및 호스트(Host) 사이의 버퍼 메모리 중 적어도 하나로서 이용된다. 프로세싱 유닛은 컨트롤러(1200)의 제반 동작을 제어한다.Illustratively, controller 1200 further includes well known components such as RAM (Random Access Memory), a processing unit, a host interface, and a memory interface. The RAM may be used as at least one of an operation memory of the processing unit, a cache memory between the nonvolatile memory device 1100 and the host, and a buffer memory between the nonvolatile memory device 1100 and the host. do. The processing unit controls all operations of the controller 1200.

호스트 인터페이스는 호스트(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 controller 1200. Illustratively, the controller 1200 may be implemented using any of a variety of communication protocols, such as a Universal Serial Bus (USB) protocol, a multimedia card (MMC) protocol, a peripheral component interconnection (PCI) protocol, a PCI- (Host) interface through at least one of various interface protocols such as a Serial-ATA protocol, a Parallel-ATA protocol, a small computer small interface (SCSI) protocol, an enhanced small disk interface (ESDI) protocol, . The memory interface interfaces with the non-volatile memory device 1100. For example, the memory interface includes a NAND interface or a NOR interface.

메모리 시스템(1000)은 오류 정정 블록을 추가적으로 포함하도록 구성될 수 있다. 오류 정정 블록은 오류 정정 코드(ECC)를 이용하여 비휘발성 메모리 장치(1100)로부터 읽어진 데이터의 오류를 검출하고, 정정하도록 구성된다. 예시적으로, 오류 정정 블록은 컨트롤러(1200)의 구성 요소로서 제공된다. 오류 정정 블록은 비휘발성 메모리 장치(1100)의 구성 요소로서 제공될 수 있다.The memory system 1000 may be further configured to include error correction blocks. The error correction block is configured to detect and correct errors in the data read from non-volatile memory device 1100 using an error correction code (ECC). Illustratively, the error correction block is provided as a component of the controller 1200. The error correction block may be provided as a component of the non-volatile memory device 1100.

컨트롤러(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) 등과 같은 메모리 카드를 구성할 것이다.Controller 1200 and non-volatile memory device 1100 may be integrated into a single semiconductor device. Illustratively, the controller 1200 and the non-volatile memory device 1100 may be integrated into a single semiconductor device to form a memory card. For example, the controller 1200 and the non-volatile memory device 1100 may be integrated into a single semiconductor device and may be a PC card (PCMCIA), a compact flash card (CF), a smart media card (SM) (SD), miniSD, microSD, SDHC), universal flash memory (UFS), and the like.

컨트롤러(1200) 및 비휘발성 메모리 장치(1100)는 하나의 반도체 장치로 집적되어 반도체 드라이브(SSD, Solid State Drive)를 구성할 수 있다. 반도체 드라이브(SSD)는 반도체 메모리에 데이터를 저장하도록 구성되는 저장 장치를 포함한다. 메모리 시스템(10)이 반도체 드라이브(SSD)로 이용되는 경우, 메모리 시스템(1000)에 연결된 호스트(Host)의 동작 속도는 획기적으로 개선된다.The controller 1200 and the nonvolatile memory device 1100 may be integrated into a single semiconductor device to form a solid state drive (SSD). A semiconductor drive (SSD) includes a storage device configured to store data in a semiconductor memory. When the memory system 10 is used as a semiconductor drive (SSD), the operating speed of the host connected to the memory system 1000 is drastically improved.

다른 예로서, 메모리 시스템(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 memory system 1000 may be a computer, a UMPC (Ultra Mobile PC), a workstation, a netbook, a PDA (Personal Digital Assistants), a portable computer, a web tablet, A mobile phone, a smart phone, an e-book, a portable multimedia player (PMP), a portable game machine, a navigation device, a black box A digital camera, a digital camera, a 3-dimensional television, a digital audio recorder, a digital audio player, a digital picture recorder, a digital picture player, a digital video recorder, a digital video player, a device capable of transmitting and receiving information in a wireless environment, one of various electronic devices constituting a home network, Ha Is provided as one of various components of an electronic device, such as one of a variety of electronic devices, one of various electronic devices that make up a telematics network, an RFID device, or one of various components that make up a computing system.

예시적으로, 비휘발성 메모리 장치(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, non-volatile memory device 1100 or memory system 1000 may be implemented in various types of packages. For example, the non-volatile memory device 1100 or the memory system 1000 may include a package on package (PoP), ball grid arrays (BGAs), chip scale packages (CSPs), plastic leaded chip carriers Linear 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 (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 -Level Processed Stack Package (WSP) or the like.

도 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 memory system 2000 includes a non-volatile memory device 2100 and a controller 2200. The non- Non-volatile memory device 2100 includes a plurality of non-volatile memory chips. The plurality of non-volatile memory chips are divided into a plurality of groups. Each group of the plurality of non-volatile memory chips is configured to communicate with the controller 2200 over one common channel. For example, a plurality of non-volatile memory chips are shown as communicating with controller 2200 through first through k-th channels CH1-CHk.

각 비휘발성 메모리 칩은 도 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 memory system 2000 can be modified such that one nonvolatile memory chip is connected to one channel.

도 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 computing system 3000 includes a central processing unit 3100, a random access memory (RAM) 3200, a user interface 3300, a power source 3400, and a memory system 2000 .

메모리 시스템(2000)은 시스템 버스(3500)를 통해, 중앙처리장치(3100), 램(3200), 사용자 인터페이스(3300), 그리고 전원(3400)에 전기적으로 연결된다. 사용자 인터페이스(3300)를 통해 제공되거나, 중앙 처리 장치(3100)에 의해서 처리된 데이터는 메모리 시스템(2000)에 저장된다.The memory system 2000 is electrically coupled to the central processing unit 3100, the RAM 3200, the user interface 3300 and the power supply 3400 via the system bus 3500. Data provided through the user interface 3300 or processed by the central processing unit 3100 is stored in the memory system 2000.

도 9에서, 비휘발성 메모리 장치(2100)는 컨트롤러(2200)를 통해 시스템 버스(3500)에 연결되는 것으로 도시되어 있다. 그러나, 비휘발성 메모리 장치(2100)는 시스템 버스(3500)에 직접 연결되도록 구성될 수 있다.In FIG. 9, non-volatile memory device 2100 is shown coupled to system bus 3500 via controller 2200. However, the non-volatile memory device 2100 may be configured to be coupled directly to the system bus 3500.

도 9에서, 도 8을 참조하여 설명된 메모리 시스템(2000)이 제공되는 것으로 도시되어 있다. 그러나, 메모리 시스템(2000)은 도 7를 참조하여 설명된 메모리 시스템(1000)으로 대체될 수 있다.In FIG. 9, it is shown that the memory system 2000 described with reference to FIG. 8 is provided. However, the memory system 2000 may be replaced by the memory system 1000 described with reference to FIG.

예시적으로, 컴퓨팅 시스템(3000)은 도 7 및 도 8을 참조하여 설명된 메모리 시스템들(1000, 2000)을 모두 포함하도록 구성될 수 있다.Illustratively, the computing system 3000 may be configured to include all of the memory systems 1000, 2000 described with reference to FIGS.

한편, 본 발명의 몇몇 실시예에 따른 비휘발성 메모리 장치(1)에서 사용되는 에러 정정 회로는, 메모리 장치에 한정되어 사용되는 것은 아니다.On the other hand, the error correction circuit used in the nonvolatile memory device 1 according to some embodiments of the present invention is not limited to the memory device.

인코더와 디코더가 비대칭적으로(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항에 있어서,
상기 디코더는 상기 메시지 데이터의 1비트 에러 정정이 가능한 에러 정정 회로.
The method according to claim 1,
Wherein the decoder is capable of 1-bit error correction of the message data.
삭제delete 삭제delete 삭제delete 삭제delete 제 1항에 있어서, 상기 인코더는
상기 제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.
제 8항에 있어서,
상기 라이트 회로는 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.
KR1020110075367A 2011-07-06 2011-07-28 Error correction circuit, nonvolatile memory device thereof and driving method thereof KR101816642B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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