KR101635695B1 - Adaptive programming and erasure schemes for analog memory cells - Google Patents

Adaptive programming and erasure schemes for analog memory cells Download PDF

Info

Publication number
KR101635695B1
KR101635695B1 KR1020147023284A KR20147023284A KR101635695B1 KR 101635695 B1 KR101635695 B1 KR 101635695B1 KR 1020147023284 A KR1020147023284 A KR 1020147023284A KR 20147023284 A KR20147023284 A KR 20147023284A KR 101635695 B1 KR101635695 B1 KR 101635695B1
Authority
KR
South Korea
Prior art keywords
memory cells
group
memory
programming
duration
Prior art date
Application number
KR1020147023284A
Other languages
Korean (ko)
Other versions
KR20140117583A (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
Priority claimed from US13/356,694 external-priority patent/US9009547B2/en
Priority claimed from US13/471,484 external-priority patent/US9293194B2/en
Application filed by 애플 인크. filed Critical 애플 인크.
Publication of KR20140117583A publication Critical patent/KR20140117583A/en
Application granted granted Critical
Publication of KR101635695B1 publication Critical patent/KR101635695B1/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/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • G11C11/5635Erasing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/344Arrangements for verifying correct erasure or for detecting overerased cells
    • G11C16/3445Circuits or methods to verify correct erasure of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • 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
    • G11C2029/0409Online test

Abstract

다수의 아날로그 메모리 셀들을 포함하는 메모리에서, 데이터 저장을 위한 방법은 메모리 내의 메모리 셀들 중 적어도 하나의 메모리 셀에 저장된 하나 이상의 데이터 값들에 기초하여 메모리 셀들의 그룹에 적용된 반복적 프로세스의 파라미터를 설정하는 단계를 포함한다. 반복적 프로세스는 설정된 파라미터에 따라 메모리 셀들의 그룹에서 수행된다.In a memory including a plurality of analog memory cells, a method for data storage includes setting parameters of an iterative process applied to a group of memory cells based on one or more data values stored in at least one memory cell of the memory cells . The iterative process is performed in the group of memory cells according to the set parameters.

Figure 112014078921006-pct00001
Figure 112014078921006-pct00001

Description

아날로그 메모리 셀들을 위한 적응적 프로그래밍 및 소거 기법들{ADAPTIVE PROGRAMMING AND ERASURE SCHEMES FOR ANALOG MEMORY CELLS}[0001] ADAPTIVE PROGRAMMING AND ERASURE SCHEMES FOR ANALOG MEMORY CELLS [0002]

본 발명은 일반적으로 데이터 저장에 관한 것이며, 특히 아날로그 메모리 셀들의 프로그래밍 및 소거를 위한 방법들 및 시스템들펄스 후 셀 임계 전압들을에 관한 것이다.The present invention relates generally to data storage, and more particularly to methods and systems for post-pulse cell threshold voltages for programming and erasing analog memory cells.

플래시 메모리들과 같은, 여러 유형들의 메모리 디바이스들이 데이터를 저장하기 위한 아날로그 메모리 셀들의 어레이들을 사용한다. 각각의 아날로그 메모리 셀은 셀에 저장된 데이터를 표현하는, 전하 또는 전압과 같은, 주어진 물리적 양의 소정 레벨을 유지한다. 이러한 물리적 양의 레벨들은 또한 저장 값들 또는 아날로그 값들로 지칭된다. 플래시 메모리들에서, 예를 들면, 각각의 아날로그 메모리 셀은 소정 양의 전하를 유지한다. 가능한 아날로그 값들의 범위는 전형적으로 영역들로 분할되며, 각각의 영역은 하나 이상의 데이터 비트 값들을 표현하는 프로그래밍 상태에 대응한다. 데이터는 원하는 비트 또는 비트들에 대응하는 공칭 아날로그 값을 기록함으로써 아날로그 메모리 셀에 기록된다.Various types of memory devices, such as flash memories, use arrays of analog memory cells to store data. Each analog memory cell maintains a predetermined level of a given physical amount, such as charge or voltage, that represents the data stored in the cell. These levels of physical quantity are also referred to as stored values or analog values. In flash memories, for example, each analog memory cell holds a predetermined amount of charge. The range of possible analog values is typically divided into regions, where each region corresponds to a programming state representing one or more data bit values. Data is written to the analog memory cell by writing a nominal analog value corresponding to the desired bit or bits.

흔히 단일-레벨 셀(Single-Level Cell, SLC) 디바이스들로 지칭되는, 몇몇 메모리 디바이스들은 각각의 메모리 셀에 단일 비트의 정보를 저장하며, 즉 각각의 메모리 셀은 2개의 가능한 메모리 상태들을 추정하도록 프로그램될 수 있다. 종종 다중-레벨 셀(Multi-Level Cell, MLC) 디바이스들로 지칭되는, 고-밀도 디바이스들은 메모리 셀당 2 이상의 비트들을 저장하며, 즉 2개 이상의 가능한 메모리 상태들을 추정하도록 프로그램될 수 있다.Some memory devices, often referred to as single-level cell (SLC) devices, store a single bit of information in each memory cell, that is, each memory cell is capable of estimating two possible memory states Can be programmed. High-density devices, often referred to as Multi-Level Cell (MLC) devices, can store more than two bits per memory cell, i.e., can be programmed to estimate two or more possible memory states.

플래시 메모리 디바이스들은, 예를 들면, 본 명세서에 참고로 포함된, 베즈(Bez) 등의 문헌["Introduction to Flash Memory," Proceedings of the IEEE, volume 91, number 4, April, 2003, pages 489-502]에 설명된다. 다중-레벨 플래시 셀들 및 디바이스들은, 예를 들면, 본 명세서에 참고로 포함된, 에이탄(Eitan) 등의 문헌["Multilevel Flash Cells and their Trade-Offs," Proceedings of the 1996 IEEE International Electron Devices Meeting (IEDM), New York, New York, pages 169-172]에 설명된다. 이 문헌은 공통 접지, DINOR, AND, NOR, 및 NAND 셀들과 같은, 여러 종류들의 다중레벨 플래시 셀들을 비교한다.Flash memory devices are described in, for example, Bez et al., "Introduction to Flash Memory," Proceedings of the IEEE, volume 91, number 4, April, 2003, pages 489- 502]. Multi-level flash cells and devices are described in, for example, Eitan et al., &Quot; Multilevel Flash Cells and their Trade-Offs, "Proceedings of the IEEE International Electron Devices Meeting (IEDM), New York, New York, pages 169-172. This document compares several types of multilevel flash cells, such as common ground, DINOR, AND, NOR, and NAND cells.

에이탄 등은, 본 명세서에 참고로 포함된, 문헌["Can NROM, a 2-bit, Trapping Storage NVM Cell, Give a Real Challenge to Floating Gate Cells?" Proceedings of the 1999 International Conference on Solid State Devices and Materials (SSDM), Tokyo, Japan, September 21-24, 1999, pages 522-524]에서 질화물 판독 전용 메모리(Nitride Read Only Memory, NROM)로 불리는 다른 유형의 아날로그 메모리 셀을 설명한다. NROM 셀들은 또한, 본 명세서에 참고로 포함된, 마얀(Maayan) 등의 문헌["A 512 Mb NROM Flash Data Storage Memory with 8 MB/s Data Rate", Proceedings of the 2002 IEEE International Solid-State Circuits Conference (ISSCC 2002), San Francisco, California, February 3-7, 2002, pages 100-101]에서 설명된다. 다른 예시적인 유형들의 아날로그 메모리 셀들은 플로팅 게이트(Floating Gate, FG) 셀들, 강유전성(Ferroelectric) RAM(FRAM) 셀들, 자기 RAM(MRAM) 셀들, 전하 트랩 플래시(Charge Trap Flash, CTF) 및 상 변화 RAM(PRAM, 상 변화 메모리 - PCM으로도 지칭됨) 셀들이다. FRAM, MRAM 및 PRAM 셀들은, 예를 들면, 본 명세서에 참고로 포함된 김(Kim) 및 고(Koh)의 문헌["Future Memory Technology including Emerging New Memories," Proceedings of the 24th International Conference on Microelectronics (MIEL), Nis, Serbia and Montenegro, May 16-19, 2004, volume 1, pages 377-384]에 설명된다.Et al., "Can NROM, a 2-bit, Trapping Storage NVM Cell, Give a Real Challenge to Floating Gate Cells?", Incorporated herein by reference. (NROM) in the Proceedings of the 1999 International Conference on Solid State Devices and Materials (SSDM), Tokyo, Japan, September 21-24, 1999, pages 522-524. An analog memory cell will be described. NROM cells are also described in Maayan et al., "A 512 Mb NROM Flash Data Storage Memory with 8 MB / s Data Rate ", Proceedings of the 2002 IEEE International Solid-State Circuits Conference (ISSCC 2002), San Francisco, California, February 3-7, 2002, pages 100-101. Other exemplary types of analog memory cells may include Floating Gate (FG) cells, Ferroelectric RAM (FRAM) cells, MRAM cells, Charge Trap Flash (CTF) (PRAM, also referred to as phase change memory-PCM) cells. The FRAM, MRAM, and PRAM cells may be fabricated using the techniques described in Kim and Koh, "Future Memory Technology including Emerging New Memories," Proceedings of the 24 th International Conference on Microelectronics (MIEL), Nis, Serbia and Montenegro, May 16-19, 2004, volume 1, pages 377-384.

아날로그 메모리 셀들을 프로그램 및 소거하기 위한 다양한 방법들이 당업계에 알려져 있다. 몇몇 메모리 디바이스들은, 메모리 셀들의 그룹에 펄스들의 시퀀스를 인가하며 상기 시퀀스 동안 프로그램된 값들을 검증하는 반복적 프로그래밍 및 검증(P&V) 프로세스를 사용한다.Various methods for programming and erasing analog memory cells are known in the art. Some memory devices use an iterative programming and verification (P & V) process to apply a sequence of pulses to a group of memory cells and verify the programmed values during the sequence.

본 명세서에 설명되는 본 발명의 실시예는 데이터 저장을 위한 방법을 제공한다. 방법은 아날로그 메모리 셀들의 그룹 내의 메모리 셀들에 펄스들의 시퀀스를 인가하는 반복적 프로세스를 수행함으로써 상기 아날로그 메모리 셀들의 그룹을 각각의 아날로그 값들로 설정하는 단계를 포함한다. 반복적 프로세스 동안, 반복적 프로세스의 진행이 평가되며, 반복적 프로세스의 파라미터는 평가된 진행에 응답하여 수정된다. 반복적 프로세스는 수정된 파라미터에 따라 계속된다.The embodiments of the invention described herein provide a method for data storage. The method includes setting a group of analog memory cells to respective analog values by performing an iterative process of applying a sequence of pulses to memory cells in a group of analog memory cells. During the iterative process, the progress of the iterative process is evaluated, and the parameters of the iterative process are modified in response to the evaluated progress. The iterative process continues according to the modified parameters.

몇몇 실시예들에서, 반복적 프로세스를 수행하는 단계는 데이터에 따라 그룹 내의 메모리 셀들을 프로그램하는 단계를 포함한다. 다른 실시예들에서, 반복적 프로세스를 수행하는 단계는 메모리 셀들의 그룹을 소거하는 단계를 포함한다.In some embodiments, performing the iterative process includes programming the memory cells in the group according to the data. In other embodiments, performing an iterative process includes erasing a group of memory cells.

실시예에서, 진행을 평가하는 단계는 펄스들의 결과로서 각각의 의도된 아날로그 값들에 도달한 그룹 내의 메모리 셀들의 수가 미리 정의된 수를 초과하는지를 평가하는 단계를 포함한다. 파라미터를 수정하는 단계는 시퀀스에서의 연속적 펄스들 사이의 진폭 또는 지속 기간의 증분을 수정하는 단계를 포함한다. 다른 실시예에서, 진행을 평가하는 단계는 그룹 내의 메모리 셀들에 인가된 펄스들의 수가 미리 정의된 수를 초과하는지를 평가하는 단계를 포함한다.In an embodiment, evaluating the progress includes evaluating whether the number of memory cells in the group that reached each intended analog value as a result of the pulses exceeds a predefined number. Modifying the parameters includes modifying the amplitude or duration increments between consecutive pulses in the sequence. In another embodiment, evaluating the progress includes evaluating whether the number of pulses applied to the memory cells in the group exceeds a predefined number.

개시된 실시예에서, 파라미터를 수정하는 단계는 시퀀스에서의 연속적 펄스들 사이의 진폭 또는 지속 기간의 증분, 시퀀스에서의 초기 펄스의 진폭 또는 지속 기간, 메모리 셀들의 그룹에 인가된 프로그래밍 워드 라인 전압(programming word line voltage), 메모리 셀들의 다른 그룹에 인가된 비선택 워드 라인 전압(unselected word line voltage), 후속 펄스들을 수신하도록 의도되는 그룹 내의 메모리 셀들에 인가된 프로그래밍 비트 라인 전압(programming bit line voltage), 및/또는 후속 펄스들을 수신하는 것이 금지되도록 의도되는 그룹 내의 메모리 셀들에 인가된 금지 비트 라인 전압(inhibiting bit line voltage)을 수정하는 단계를 포함한다.In the disclosed embodiment, the step of modifying the parameters may comprise an increment of amplitude or duration between consecutive pulses in the sequence, an amplitude or duration of the initial pulse in the sequence, a programming word line voltage applied to a group of memory cells word line voltage, an unselected word line voltage applied to another group of memory cells, a programming bit line voltage applied to memory cells in the group intended to receive subsequent pulses, And / or modifying an inhibiting bit line voltage applied to the memory cells in the group intended to be inhibited from receiving subsequent pulses.

파라미터를 수정하는 단계는, 후속 펄스들을 수신하도록 의도되는 그룹 내의 메모리 셀들에 인가된 프로그래밍 비트 라인 전압, 메모리 셀들의 그룹에 인가된 프로그래밍 워드 라인 전압, 메모리 셀들의 다른 그룹에 인가된 비선택 워드 라인 전압, 또는 후속 펄스들을 수신하는 것이 금지되도록 의도되는 그룹 내의 메모리 셀들에 인가된 금지 비트 라인 전압에 의존하여, 수정하는 단계를 포함할 수 있다.The step of modifying the parameters may include programming a bit line voltage applied to the memory cells in the group intended to receive subsequent pulses, a programming word line voltage applied to the group of memory cells, Depending on the inhibited bit line voltage applied to the memory cells in the group intended to be inhibited from receiving the voltage, or the subsequent pulses.

본 발명의 실시예에 따라, 메모리 및 저장 회로를 포함하는 데이터 저장을 위한 장치가 부가적으로 제공된다. 메모리는 다수의 아날로그 메모리 셀들을 포함한다. 저장 회로는 아날로그 메모리 셀들의 그룹 내의 메모리 셀들에 펄스들의 시퀀스를 인가하는 반복적 프로세스를 수행함으로써 상기 아날로그 메모리 셀들의 그룹을 각각의 아날로그 값들로 설정하고, 반복적 프로세스의 진행을 평가하고, 평가된 진행에 응답하여 반복적 프로세스의 파라미터를 수정하고, 수정된 파라미터에 따라 반복적 프로세스를 수행하는 것을 진행하도록 구성된다.According to an embodiment of the present invention, there is additionally provided an apparatus for data storage comprising a memory and a storage circuit. The memory includes a plurality of analog memory cells. The storage circuitry sets the group of analog memory cells to respective analog values by performing an iterative process of applying a sequence of pulses to the memory cells in the group of analog memory cells, evaluating the progress of the iterative process, Modify the parameters of the iterative process in response, and proceed to perform the iterative process according to the modified parameters.

본 발명의 실시예에 따라, 다수의 아날로그 메모리 셀들을 포함하는 메모리에서의 데이터 저장을 위한 방법이 또한 제공된다. 방법은 메모리 내의 메모리 셀들 중 적어도 하나의 메모리 셀에 저장된 하나 이상의 데이터 값들에 기초하여 메모리 셀들의 그룹에 적용된 반복적 프로세스의 파라미터를 설정하는 단계를 포함한다. 반복적 프로세스는 설정된 파라미터에 따라 메모리 셀들의 그룹에서 수행된다.According to an embodiment of the present invention, a method for data storage in a memory including a plurality of analog memory cells is also provided. The method includes setting a parameter of an iterative process applied to a group of memory cells based on one or more data values stored in at least one of the memory cells in the memory. The iterative process is performed in the group of memory cells according to the set parameters.

실시예에서, 반복적 프로세스를 수행하는 단계는 데이터에 따라 그룹 내의 메모리 셀들을 프로그램하는 단계를 포함한다. 다른 실시예에서, 반복적 프로세스를 수행하는 단계는 메모리 셀들의 그룹을 소거하는 단계를 포함한다. 실시예에서, 파라미터를 설정하는 단계는 메모리 셀들 중 적어도 하나의 메모리 셀로부터 대안적인 저장 위치로 데이터 값들을 복사하는 단계, 및 복사된 데이터 값들에 기초하여 파라미터를 설정하는 단계를 포함한다.In an embodiment, performing the iterative process includes programming the memory cells in the group according to the data. In another embodiment, performing an iterative process includes erasing a group of memory cells. In an embodiment, the step of setting parameters includes copying data values from at least one of the memory cells to an alternative storage location, and setting parameters based on the copied data values.

다른 실시예에서, 파라미터를 설정하는 단계는 반복적 프로세스에서의 연속적 펄스들 사이의 진폭 또는 지속 기간의 증분, 반복적 프로세스에서의 초기 펄스의 진폭 또는 지속 기간, 메모리 셀들의 그룹에 인가된 프로그래밍 워드 라인 전압, 메모리 셀들의 다른 그룹에 인가된 비선택 워드 라인 전압, 후속 펄스들을 수신하도록 의도되는 그룹 내의 메모리 셀들에 인가된 프로그래밍 비트 라인 전압, 및/또는 후속 펄스들을 수신하는 것이 금지되도록 의도되는 그룹 내의 메모리 셀들에 인가된 금지 비트 라인 전압을 설정하는 단계를 포함한다.In another embodiment, the step of setting the parameters may comprise the step of increasing the amplitude or duration between successive pulses in the iterative process, the amplitude or duration of the initial pulse in the iterative process, the programming wordline voltage A non-selected word line voltage applied to another group of memory cells, a programming bit line voltage applied to memory cells in a group intended to receive subsequent pulses, and / or a memory within the group intended to be prohibited from receiving subsequent pulses And setting a forbidden bit line voltage applied to the cells.

본 발명의 실시예에 따라, 메모리 및 저장 회로를 포함하는 데이터 저장을 위한 장치가 추가로 제공된다. 메모리는 다수의 아날로그 메모리 셀들을 포함한다. 저장 회로는 메모리 내의 메모리 셀들 중 적어도 하나의 메모리 셀에 저장된 하나 이상의 데이터 값들에 기초하여 메모리 셀들의 그룹에 적용된 반복적 프로세스의 파라미터를 설정하고, 설정된 파라미터에 따라 메모리 셀들의 그룹에서 반복적 프로세스를 수행하도록 구성된다.According to an embodiment of the present invention, there is further provided an apparatus for data storage comprising a memory and a storage circuit. The memory includes a plurality of analog memory cells. The storage circuit is configured to set the parameters of the iterative process applied to the group of memory cells based on the one or more data values stored in at least one of the memory cells in the memory and to perform the iterative process in the group of memory cells according to the set parameters .

본 발명의 실시예에 따라, 다수의 아날로그 메모리 셀들을 포함하는 메모리에서의 데이터 저장을 위한 방법이 부가적으로 제공된다. 방법은 프로그래밍 동작을 수행함으로써 데이터에 따라 메모리 셀들 중 하나 이상을 프로그램하는 단계를 포함한다. 프로그램된 메모리 셀들에 대해 수행된 프로그래밍 동작의 성능 측정치(performance measure)가 평가된다. 프로그래밍 동작을 수행한 후, 소거 동작이 프로그래밍 동작의 성능 측정치에 기초하여 구성되며, 메모리의 메모리 셀들의 그룹은 구성된 소거 동작을 수행함으로써 소거된다.According to an embodiment of the present invention, a method for storing data in a memory including a plurality of analog memory cells is additionally provided. The method includes programming one or more of the memory cells according to data by performing a programming operation. A performance measure of the programming operation performed on the programmed memory cells is evaluated. After performing the programming operation, the erase operation is configured based on the performance measurements of the programming operation, and the group of memory cells in the memory is erased by performing a configured erase operation.

몇몇 실시예들에서, 성능 측정치를 평가하는 단계는 프로그래밍 동작의 지속 기간을 측정하는 단계를 포함한다. 실시예에서, 소거 동작을 구성하는 단계는 소거 동작에서의 연속적 소거 펄스들 사이의 진폭 또는 지속 기간의 증분, 소거 동작에서의 초기 펄스의 진폭 또는 지속 기간, 소거 동작 동안 인가된 워드 라인 전압, 및/또는 소거 동작 동안 인가된 비트 라인 전압을 설정하는 단계를 포함한다.In some embodiments, evaluating the performance measure includes measuring the duration of the programming operation. In an embodiment, the step of configuring the erase operation may include an increment of amplitude or duration between successive erase pulses in the erase operation, an amplitude or duration of the initial pulse in the erase operation, a word line voltage applied during the erase operation, And / or setting an applied bit line voltage during an erase operation.

실시예에서, 성능 측정치를 추정하는 단계는 프로그램된 메모리 셀들에 인가된 프로그래밍 및 소거 사이클들의 수를 결정하는 단계를 포함하며, 소거 동작을 구성하는 단계는 프로그래밍 및 소거 사이클들의 결정된 수에 기초하여 소거 동작을 구성하는 단계를 포함한다.In an embodiment, estimating the performance measure includes determining the number of programming and erasing cycles applied to the programmed memory cells, and wherein configuring the erasing operation includes erasing based on a determined number of programming and erasing cycles And configuring the operation.

본 발명의 실시예에 따라, 메모리 및 저장 회로를 포함하는 데이터 저장을 위한 장치가 또한 제공된다. 메모리는 다수의 아날로그 메모리 셀들을 포함한다. 저장 회로는 프로그래밍 동작을 수행함으로써 데이터에 따라 메모리 셀들 중 하나 이상을 프로그램하고, 프로그램된 메모리 셀들에 대해 수행된 프로그래밍 동작의 성능 측정치를 평가하고, 프로그래밍 동작을 수행한 후, 프로그래밍 동작의 성능 측정치에 기초하여 소거 동작을 구성하고, 구성된 소거 동작을 수행함으로써 메모리의 메모리 셀들의 그룹을 소거하도록 구성된다.According to an embodiment of the present invention, there is also provided an apparatus for data storage comprising a memory and a storage circuit. The memory includes a plurality of analog memory cells. The storage circuit may program one or more of the memory cells according to the data by performing a programming operation, evaluate a performance measure of the programming operation performed on the programmed memory cells, perform a programming operation, And erase the group of memory cells in the memory by performing a configured erase operation.

본 발명의 실시예에 따라, 다수의 아날로그 메모리 셀들을 포함하는 메모리에서의 데이터 저장을 위한 방법이 추가로 제공된다. 방법은 메모리 셀들의 그룹에, 그룹 내의 메모리 셀들을 각각의 아날로그 값들로 설정하는 동작을 적용하는 단계를 포함한다. 메모리 셀들의 그룹에 적용된 동작의 성능 측정치가 평가된다. 상기 그룹을 포함하는 메모리 내의 메모리 블록의 헬스 상태(health status)가 동작의 평가된 성능 측정치에 기초하여 평가된다.According to an embodiment of the present invention, a method for storing data in a memory including a plurality of analog memory cells is further provided. The method includes applying to the group of memory cells an operation of setting memory cells in the group to respective analog values. The performance measure of the operation applied to the group of memory cells is evaluated. The health status of the memory blocks in the memory containing the group is evaluated based on the evaluated performance measures of the operation.

동작을 적용하는 단계는 데이터에 따라 그룹 내의 메모리 셀들을 프로그램하는 단계를 포함할 수 있다. 대안적으로, 동작을 적용하는 단계는 메모리 셀들의 그룹을 소거하는 단계를 포함할 수 있다. 실시예에서, 성능 측정치를 평가하는 단계는 동작의 지속 기간을 측정하는 단계를 포함한다. 다른 실시예에서, 헬스 상태를 평가하는 단계는 성능 측정치가 미리 정의된 범위로부터 벗어날 때 메모리 블록을 불량(bad)으로서 마킹하는 단계를 포함한다. 또 다른 실시예에서, 헬스 상태를 평가하는 단계는 성능 측정치가 미리 정의된 범위로부터 벗어날 때 메모리 블록을 부가적인 평가의 대상으로서 마킹하는 단계를 포함한다. 또 다른 실시예에서, 헬스 상태를 평가하는 단계는 성능 측정치에 의존하여 메모리 블록에서의 후속 데이터 저장을 위한 저장 구성을 설정하는 단계를 포함한다.Applying the operation may include programming the memory cells in the group according to the data. Alternatively, applying the operation may comprise erasing the group of memory cells. In an embodiment, evaluating the performance measure comprises measuring the duration of the operation. In another embodiment, evaluating the health state includes marking the memory block as bad when the performance measurement deviates from a predefined range. In another embodiment, evaluating the health state includes marking the memory block as an object of additional evaluation when the performance measurement deviates from a predefined range. In yet another embodiment, evaluating the health state includes setting a storage configuration for subsequent data storage in the memory block, depending on performance measurements.

본 발명의 실시예에 따라, 메모리 및 저장 회로를 포함하는 데이터 저장을 위한 장치가 부가적으로 제공된다. 메모리는 다수의 아날로그 메모리 셀들을 포함한다. 저장 회로는 메모리 셀들의 그룹에, 그룹 내의 메모리 셀들을 각각의 아날로그 값들로 설정하는 동작을 적용하고, 메모리 셀들의 그룹에 적용된 동작의 성능 측정치를 평가하고, 동작의 평가된 성능 측정치에 기초하여, 상기 그룹을 포함하는 메모리 내의 메모리 블록의 헬스 상태를 평가하도록 구성된다.According to an embodiment of the present invention, there is additionally provided an apparatus for data storage comprising a memory and a storage circuit. The memory includes a plurality of analog memory cells. The storage circuit is configured to apply the operation of setting the memory cells in the group to respective analog values in a group of memory cells, to evaluate a performance measure of the operation applied to the group of memory cells, and based on the evaluated performance measure of operation, And to evaluate the health state of the memory block in the memory including the group.

본 발명은 도면들과 함께 취해진, 그 실시예들의 다음의 상세한 설명으로부터 보다 완전히 이해될 것이다.BRIEF DESCRIPTION OF THE DRAWINGS The invention will be more fully understood from the following detailed description of embodiments thereof taken in conjunction with the drawings, in which: Fig.

<도 1>
도 1은 본 발명의 실시예에 따라, 메모리 시스템을 개략적으로 예시하는 블록 다이어그램.
<도 2>
도 2는 본 발명의 실시예에 따라, 아날로그 메모리 셀들의 어레이를 개략적으로 예시하는 회로 다이어그램.
<도 3a>
도 3a는 본 발명의 실시예에 따라, 아날로그 메모리 셀들의 그룹을 프로그램하는 프로세스를 개략적으로 예시하는 다이어그램.
<도 3b>
도 3b는 본 발명의 실시예에 따라, 아날로그 메모리 셀들의 그룹을 소거하는 프로세스를 개략적으로 예시하는 다이어그램.
<도 4>
도 4는 본 발명의 실시예에 따라, 아날로그 메모리 셀들의 그룹을 프로그램 또는 소거하기 위한 방법을 개략적으로 예시하는 흐름도.
<도 5>
도 5는 본 발명의 실시예에 따라, 아날로그 메모리 셀들의 그룹을 프로그램하기 위한 방법을 개략적으로 예시하는 흐름도.
<도 6>
도 6은 본 발명의 실시예에 따라, 아날로그 메모리 셀들의 그룹을 소거하기 위한 방법을 개략적으로 예시하는 흐름도.
<도 7>
도 7은 본 발명의 실시예에 따라, 아날로그 메모리 셀들의 그룹의 헬스 레벨을 평가하기 위한 방법을 개략적으로 예시하는 흐름도.
&Lt; 1 >
1 is a block diagram schematically illustrating a memory system, in accordance with an embodiment of the present invention.
2,
Figure 2 is a circuit diagram that schematically illustrates an array of analog memory cells, in accordance with an embodiment of the present invention.
3A,
Figure 3A is a diagram schematically illustrating a process for programming a group of analog memory cells, in accordance with an embodiment of the present invention.
3b,
Figure 3B is a diagram schematically illustrating a process for erasing a group of analog memory cells, in accordance with an embodiment of the present invention.
<Fig. 4>
4 is a flow diagram schematically illustrating a method for programming or erasing a group of analog memory cells, in accordance with an embodiment of the present invention.
5,
5 is a flow diagram schematically illustrating a method for programming a group of analog memory cells, in accordance with an embodiment of the present invention.
6,
6 is a flow diagram schematically illustrating a method for erasing a group of analog memory cells, in accordance with an embodiment of the present invention.
7,
7 is a flow diagram schematically illustrating a method for evaluating a health level of a group of analog memory cells, in accordance with an embodiment of the present invention.

개요summary

플래시 메모리와 같은 메모리 디바이스들에서, 데이터는 전형적으로 저장된 비트 값들을 표현하는 각각의 아날로그 값들로 메모리 셀들을 프로그램함으로써 아날로그 메모리 셀들에 저장된다. 각각의 비트 값은 각각의 프로그래밍 레벨 또는 프로그래밍 상태에 대응하며, 이는 아날로그 값들의 소정 영역에 의해 표현된다.In memory devices such as flash memory, data is typically stored in analog memory cells by programming memory cells with respective analog values representing stored bit values. Each bit value corresponds to a respective programming level or programming state, which is represented by a predetermined region of analog values.

몇몇 메모리 디바이스들에서, 아날로그 메모리 셀들의 그룹은 반복적 프로그래밍 및 검증(P&V) 프로세스에서 프로그램되며, 이는 그룹 내의 메모리 셀들에 프로그래밍 펄스들의 시퀀스를 인가한다. 메모리 셀들의 아날로그 값들은 프로그램되는 메모리 셀의 의도된 프로그래밍 상태에 대응하는 각각의 검증 임계치에 각각의 아날로그 값을 비교함으로써, 시퀀스 동안 검증된다. 프로그래밍은 단지 그의 아날로그 값들이 여전히 그들의 각각의 검증 임계치들 아래인 메모리 셀들에 대해서만 계속된다. 다른 메모리 셀들은 정확하게 프로그램되는 것으로 추정되며, 후속 프로그래밍 펄스들을 수신하는 것이 금지된다. 플래시 메모리 셀들의 블록은 전형적으로 반복적 소거 프로세스를 사용하여 소거되며, 이는 블록 내의 메모리 셀들에 소거 펄스들의 시퀀스를 인가한다. 메모리 셀들의 아날로그 값들은 그들을 소거 임계치에 비교함으로써 시퀀스 동안 검증된다.In some memory devices, a group of analog memory cells is programmed in a repetitive programming and verification (P & V) process, which applies a sequence of programming pulses to memory cells in the group. The analog values of the memory cells are verified during the sequence by comparing each analog value to a respective verification threshold corresponding to the intended programming state of the memory cell being programmed. Programming continues only for memory cells whose analog values are still below their respective verification thresholds. Other memory cells are presumed to be correctly programmed, and it is prohibited to receive subsequent programming pulses. The block of flash memory cells is typically erased using a recursive erase process, which applies a sequence of erase pulses to the memory cells in the block. The analog values of the memory cells are verified during the sequence by comparing them to the erase threshold.

이하에 설명되는 본 발명의 실시예들은 플래시 셀들과 같은 아날로그 메모리 셀들을 프로그램 및 소거하기 위한 개선된 방법들 및 시스템들을 제공한다. 종래의 프로그래밍 및 소거 기법들과 비교하여, 개시된 기술들은 보다 낮은 프로그래밍 및 소거 시간뿐만 아니라 보다 높은 프로그래밍 및 소거 신뢰성을 달성한다.The embodiments of the invention described below provide improved methods and systems for programming and erasing analog memory cells such as flash cells. Compared to conventional programming and erasing techniques, the disclosed techniques achieve lower programming and erase times as well as higher programming and erase reliability.

몇몇 실시예들에서, 저장 회로(예로서, 메모리 셀들 또는 메모리 제어기에 결합된 판독/기록 회로)는 반복적 프로그래밍 또는 소거 프로세스의 진행을 평가하며, 평가된 진행에 기초하여 반복적 프로세스의 하나 이상의 파라미터들을 수정한다. 진행은 예를 들면, 그들의 의도된 아날로그 값들에 도달한 메모리 셀들의 비율에 대하여, 또는 메모리 셀들에 인가된 프로그래밍 또는 소거 펄스들의 수에 대하여 평가될 수 있다.In some embodiments, a storage circuit (e.g., a read / write circuit coupled to memory cells or a memory controller) evaluates the progress of the iterative programming or erase process and, based on the evaluated progress, Modify it. The progress can be evaluated, for example, for the percentage of memory cells that have reached their intended analog values, or for the number of programming or erase pulses applied to the memory cells.

다양한 프로그래밍 또는 소거 파라미터들은 진행, 예를 들면, 연속적 프로그래밍 또는 소거 펄스들 사이의 진폭 또는 지속 기간의 증분, 초기 펄스 진폭, 또는 프로그래밍 또는 소거 프로세스 동안 인가된 다양한 워드 라인 또는 비트 라인 전압에 기초하여 수정될 수 있다.The various programming or erasing parameters may be modified based on various word lines or bit line voltages applied during the progress, e. G., Continuous programming or increment of amplitude or duration between erase pulses, initial pulse amplitude, .

대안적인 실시예들에서, 저장 회로는 메모리 셀들 중 하나 이상에 저장되는 데이터에 기초하여 프로그래밍 또는 소거 프로세스의 하나 이상의 파라미터들을 설정한다. 다른 실시예들에서, 저장 회로는 프로그래밍 동작의 성능에 기초하여 소거 동작의 하나 이상의 파라미터들을 구성한다. 예를 들면, 저장 회로는 소정 메모리 블록에서의 페이지들에 대한 평균 프로그래밍 시간을 측정할 수 있고, 측정된 프로그래밍 시간에 의존하여 상기 블록에 대한 소거 동작을 구성할 수 있다.In alternative embodiments, the storage circuit sets one or more parameters of a programming or erasing process based on data stored in one or more of the memory cells. In other embodiments, the storage circuit configures one or more parameters of the erase operation based on the performance of the programming operation. For example, the storage circuit may measure an average programming time for pages in a given memory block, and may configure an erase operation for the block depending on the measured programming time.

또 다른 실시예들에서, 저장 회로는 블록에서 수행된 프로그래밍 또는 소거 동작의 성능 측정치에 기초하여(예로서, 프로그래밍 또는 소거 시간에 기초하여) 메모리 블록의 헬스 상태를 평가한다.In still other embodiments, the storage circuit evaluates the health state of the memory block based on (e.g., based on programming or erase time) the performance measure of the programming or erasing operation performed in the block.

시스템 설명System Description

도 1은 본 발명의 실시예에 따라, 메모리 시스템(20)을 개략적으로 예시하는 블록 다이어그램이다. 시스템(20)은 컴퓨팅 디바이스들, 휴대 전화들 또는 다른 통신 단말기들, 제거가능한 메모리 모듈들(때때로 "USB 플래시 드라이브들"로 지칭됨), 솔리드 스테이트 디스크들(SSD), 디지털 카메라들, 음악 및 다른 미디어 플레이어들 및/또는 데이터가 저장되며 검색되는 임의의 다른 시스템 또는 디바이스와 같이, 다양한 호스트 시스템들 및 디바이스들에서 사용될 수 있다.1 is a block diagram that schematically illustrates a memory system 20, in accordance with an embodiment of the present invention. The system 20 may be any of a variety of devices, such as computing devices, cellular phones or other communication terminals, removable memory modules (sometimes referred to as "USB flash drives"), solid state disks May be used in various host systems and devices, such as other media players and / or any other system or device in which data is stored and retrieved.

시스템(20)은 메모리 셀 어레이(28)에 데이터를 저장하는, 메모리 디바이스(24)를 포함한다. 메모리 어레이는 다수의 메모리 블록들(34)을 포함한다. 각각의 메모리 블록(34)은 다수의 아날로그 메모리 셀들(32)을 포함한다. 본 특허 출원의 맥락에서 그리고 청구항들에서, 용어 "아날로그 메모리 셀"은 전압 또는 전하와 같은, 물리적 파라미터의 연속적인, 아날로그 값을 유지하는 임의의 메모리 셀을 설명하기 위해 사용된다. 어레이(28)는 예를 들면, NAND, NOR 및 전하 트랩 플래시(CTF) 플래시 셀들, 상 변화 RAM(PRAM, 상 변화 메모리 - PCM으로도 지칭됨), 질화물 판독 전용 메모리(NROM), 강유전성 RAM(FRAM), 자기 RAM(MRAM) 및/또는 동적 RAM(DRAM) 셀들과 같은, 임의의 종류의 아날로그 메모리 셀들을 포함할 수 있다.The system 20 includes a memory device 24 that stores data in a memory cell array 28. The memory array includes a plurality of memory blocks (34). Each memory block 34 includes a plurality of analog memory cells 32. In the context of the present patent application and in the claims, the term "analog memory cell" is used to describe any memory cell that maintains a continuous analog value of a physical parameter, such as voltage or charge. The array 28 may include, for example, NAND, NOR and charge trap flash (CTF) flash cells, phase change RAM (PRAM, also referred to as phase change memory-PCM), nitride read only memory (NROM), ferroelectric RAM Such as FRAM, magnetic RAM (MRAM), and / or dynamic RAM (DRAM) cells.

셀들에 저장된 전하 레벨들 및/또는 셀들로 기록되며 그로부터 판독되는 아날로그 전압들 또는 전류들은 본 명세서에서 총괄하여 아날로그 값들, 아날로그 저장 값들 또는 저장 값들로 지칭된다. 저장 값들은, 예를 들면, 임계 전압들 또는 임의의 다른 적절한 종류의 저장 값들을 포함할 수 있다. 시스템(20)은 프로그래밍 레벨들로도 지칭되는 각각의 프로그래밍 상태들을 추정하도록 셀들을 프로그램함으로써 아날로그 메모리 셀들에 데이터를 저장한다. 프로그래밍 상태들은 한정된 세트의 가능한 상태들로부터 선택되며, 각각의 프로그래밍 상태는 소정의 공칭 저장 값에 대응한다. 예를 들면, 3 비트/셀 MLC는 8개의 가능한 공칭 저장 값들 중 하나를 셀에 기록함으로써 8개의 가능한 프로그래밍 상태들 중 하나를 추정하도록 프로그램될 수 있다.The charge levels stored in the cells and / or the analog voltages or currents written to and read from the cells are collectively referred to herein as analog values, analog stored values or stored values. The stored values may include, for example, threshold voltages or any other suitable type of stored values. System 20 stores data in analog memory cells by programming the cells to estimate respective programming states, also referred to as programming levels. Programming states are selected from a finite set of possible states, with each programming state corresponding to a predetermined nominal storage value. For example, a 3 bit / cell MLC can be programmed to estimate one of eight possible programming states by writing one of eight possible nominal storage values to the cell.

메모리 디바이스(24)는 판독/기록(R/W) 유닛(36)을 포함하며, 이는 메모리 디바이스에서의 저장을 위한 데이터를 아날로그 저장 값들로 변환하고 그들을 메모리 셀들(32)에 기록한다. 대안적인 실시예들에서, R/W 유닛은 변환을 수행하지 않지만, 전압 샘플들을, 즉 셀들에서의 저장을 위한 저장 값들을 제공받는다. 어레이(28)로부터 데이터를 판독할 때, R/W 유닛(36)은 메모리 셀들(32)의 저장 값들을 하나 이상의 비트들의 분해능을 가진 디지털 샘플들로 변환한다. 데이터는 전형적으로 페이지들로 지칭되는 그룹들 내의 메모리 셀들로 기록되며 그로부터 판독된다. 몇몇 실시예들에서, R/W 유닛은 하나 이상의 음(negative)의 소거 펄스들을 셀들에 인가함으로써 셀들(32)의 그룹을 소거할 수 있다. 소거는 전형적으로 전체 메모리 블록들에서 수행된다.The memory device 24 includes a read / write (R / W) unit 36 which converts the data for storage in the memory device into analog storage values and writes them to the memory cells 32. In alternate embodiments, the R / W unit does not perform the conversion, but is provided with storage values for storing the voltage samples, i. E., In the cells. When reading data from the array 28, the R / W unit 36 converts the stored values of the memory cells 32 into digital samples with resolution of one or more bits. The data is typically written to and read from the memory cells in groups referred to as pages. In some embodiments, the R / W unit may erase a group of cells 32 by applying one or more negative erase pulses to the cells. Erasing is typically performed on the entire memory blocks.

메모리 디바이스(24)에서의 및 그로부터의 데이터의 저장 및 검색은 메모리 제어기(40)에 의해 수행된다. 메모리 제어기는 메모리 디바이스(24)와 통신하기 위한 인터페이스(44), 및 다양한 메모리 관리 기능들을 수행하는 프로세서(48)를 포함한다. 메모리 제어기(40)는 메모리 디바이스에서의 저장을 위한 데이터를 수용하기 위해, 그리고 메모리 디바이스로부터 검색된 데이터를 출력하기 위해 호스트(52)와 통신한다. 메모리 제어기(40), 및 특히 프로세서(48)는 하드웨어로 구현될 수 있다. 대안적으로, 메모리 제어기는 적합한 소프트웨어 또는 하드웨어 및 소프트웨어 요소들의 조합을 구동하는 마이크로프로세서를 포함할 수 있다.The storage and retrieval of data at and at the memory device 24 is performed by the memory controller 40. [ The memory controller includes an interface 44 for communicating with the memory device 24, and a processor 48 that performs various memory management functions. The memory controller 40 communicates with the host 52 to receive data for storage in the memory device and to output the retrieved data from the memory device. The memory controller 40, and in particular the processor 48, may be implemented in hardware. Alternatively, the memory controller may comprise suitable software or a microprocessor that drives a combination of hardware and software elements.

도 1의 구성은 예시적인 시스템 구성이며, 이는 오직 개념적인 명료함을 위해 도시된다. 임의의 다른 적합한 메모리 시스템 구성이 또한 사용될 수 있다. 다양한 인터페이스들, 어드레싱 회로들, 타이밍 및 시퀀싱 회로들, 및 디버깅 회로들과 같은, 본 발명의 원리들을 이해하기 위해 필요하지 않은 요소들이 명료함을 위해 도면으로부터 생략되었다.The configuration of FIG. 1 is an exemplary system configuration, which is shown for conceptual clarity only. Any other suitable memory system configuration may also be used. Elements not required for understanding the principles of the present invention, such as various interfaces, addressing circuits, timing and sequencing circuits, and debugging circuits have been omitted from the drawings for clarity.

도 1의 예는 단일 메모리 디바이스(24)를 도시하지만, 시스템(20)은 메모리 제어기(40)에 의해 제어되는 다수의 메모리 디바이스들을 포함할 수 있다. 도 1에 도시된 예시적인 시스템 구성에서, 메모리 디바이스(24) 및 메모리 제어기(40)는 2개의 별개의 집적 회로들(IC들)로서 구현된다. 그러나, 대안적인 실시예들에서, 메모리 디바이스 및 메모리 제어기는 단일 다중-칩 패키지(Multi-Chip Package, MCP) 또는 시스템 온 칩(System on Chip, SoC)에서 별개의 반도체 다이들 상에 통합될 수 있으며, 내부 버스를 통해 상호접속될 수 있다. 추가로 대안적으로, 메모리 제어기 회로의 일부 또는 전부는 메모리 어레이가 그 상에 배치되는 동일한 다이 상에 존재할 수 있다. 추가로 대안적으로, 메모리 제어기(40)의 기능 중 일부 또는 전부는 소프트웨어로 구현될 수 있으며, 프로세서 또는 호스트 시스템의 다른 요소에 의해 수행될 수 있다. 몇몇 실시예들에서, 호스트(52) 및 메모리 제어기(40)는 동일한 다이 상에 또는 동일한 디바이스 패키지에서의 별개의 다이들 상에 제작될 수 있다.Although the example of Figure 1 illustrates a single memory device 24, the system 20 may include a plurality of memory devices controlled by the memory controller 40. In the exemplary system configuration shown in FIG. 1, the memory device 24 and the memory controller 40 are implemented as two separate integrated circuits (ICs). However, in alternate embodiments, the memory device and the memory controller may be integrated on separate semiconductor dies in a single Multi-Chip Package (MCP) or a System on Chip (SoC) And can be interconnected via an internal bus. Additionally or alternatively, some or all of the memory controller circuitry may be on the same die on which the memory array is disposed. Additionally or alternatively, some or all of the functionality of the memory controller 40 may be implemented in software, and may be performed by a processor or other element of the host system. In some embodiments, the host 52 and the memory controller 40 may be fabricated on the same die or on separate dies in the same device package.

몇몇 실시예들에서, 메모리 제어기(40)는 범용 프로세서를 포함하며, 이는 본 명세서에 설명된 기능들을 수행하기 위해 소프트웨어로 프로그램된다. 소프트웨어는 예를 들어 네트워크를 통해, 전자 형태로 프로세서에 다운로드될 수 있거나, 그것은 대안적으로 또는 부가적으로, 자기, 광학, 또는 전자 메모리와 같은, 비-일시적 유형 매체(non-transitory tangible media) 상에 제공되고/되거나 저장될 수 있다.In some embodiments, the memory controller 40 includes a general purpose processor, which is programmed with software to perform the functions described herein. The software may be downloaded to the processor in electronic form, for example over a network, or it may alternatively or additionally be a non-transitory tangible media, such as magnetic, optical, or electronic memory, And / or &lt; / RTI &gt;

어레이(28)의 예시적인 구성에서, 메모리 셀들(32)은 다수의 행들 및 열들로 배열되며, 각각의 메모리 셀은 플로팅-게이트 트랜지스터(floating-gate transistor)를 포함한다. 각각의 행에서의 트랜지스터들의 게이트들은 워드 라인들에 의해 접속되며, 각각의 열에서의 트랜지스터들의 소스들은 비트 라인들에 의해 접속된다. 메모리 어레이는 전형적으로 다수의 페이지들, 즉 동시에 프로그램되고 판독되는 메모리 셀들의 그룹들로 분할된다. 페이지들은 때때로 섹터들로 세분된다. 몇몇 실시예들에서, 각각의 페이지는 어레이의 전체 행을 포함한다. 대안적인 실시예들에서, 각각의 행(워드 라인)은 2개 이상의 페이지들로 분할될 수 있다. 예를 들면, 몇몇 디바이스들에서 각각의 행은 2개의 페이지들로 분할되며, 하나는 홀수-차수 셀들을 포함하고 다른 하나는 짝수-차수 셀들을 포함한다.In an exemplary configuration of array 28, memory cells 32 are arranged in a plurality of rows and columns, each memory cell including a floating-gate transistor. The gates of the transistors in each row are connected by word lines, and the sources of the transistors in each column are connected by bit lines. A memory array is typically divided into a plurality of pages, i.e., groups of memory cells that are programmed and read simultaneously. Pages are sometimes subdivided into sectors. In some embodiments, each page includes an entire row of the array. In alternative embodiments, each row (word line) may be divided into two or more pages. For example, in some devices each row is divided into two pages, one containing odd-order cells and the other containing even-order cells.

전형적으로, 메모리 제어기(40)는 페이지 단위들로 데이터를 프로그램하지만, 전체 메모리 블록들(34)을 소거한다. 전형적으로, 필수적인 것은 아니지만, 메모리 블록은 대략 106 메모리 셀들인 반면, 페이지는 대략 103 내지 104 메모리 셀들이다.Typically, the memory controller 40 programs the data in page units, but erases the entire memory blocks 34. Typically, though not necessarily, the memory block is approximately 10 6 memory cells, while the page is approximately 10 3 to 10 4 memory cells.

이어지는 설명은 어레이(28)의 메모리 셀들(32)을 프로그램 및 소거하기 위한 여러 예시적인 기술들을 설명한다. 개시된 기술들은 메모리 제어기(40)에 의해 및/또는 R/W 유닛(36)에 의해 수행될 수 있다. 명료함을 위해, 이어지는 설명은 메모리 디바이스에서 R/W 유닛(36)에 의해 수행되는 것으로서 프로그래밍 및 소거 프로세스들을 나타낸다. 그러나, 일반적으로, 개시된 프로그래밍 및 소거 기술들을 이루는 다양한 태스크들은 임의의 적합한 방식으로 메모리 제어기와 R/W 회로 사이에서 분할될 수 있거나, 이들 요소들 중 임의의 하나에 의해 수행될 수 있다. 따라서, 본 특허 출원의 맥락에서, 그리고 청구항들에서, 메모리 제어기(40) 및/또는 R/W 회로(36)는 개시된 기술들을 수행하는 저장 회로로서 공동으로 나타내어진다.The following discussion illustrates several exemplary techniques for programming and erasing the memory cells 32 of the array 28. The disclosed techniques may be performed by the memory controller 40 and / or by the R / W unit 36. For clarity, the following description shows the programming and erasing processes as being performed by the R / W unit 36 in the memory device. However, in general, the various tasks that make up the disclosed programming and erasing techniques may be partitioned between the memory controller and the R / W circuit in any suitable manner, or may be performed by any one of these elements. Thus, in the context of the present patent application, and in the claims, the memory controller 40 and / or the R / W circuit 36 are collectively represented as a storage circuit that performs the disclosed techniques.

도 2는 본 발명의 실시예에 따라, 어레이(28)를 구현하기 위해 사용될 수 있는 아날로그 메모리 셀들의 어레이를 개략적으로 예시하는 회로 다이어그램이다. 이 실시예에서, 어레이는 워드 라인들(64) 및 비트 라인들(68)에 의해 접속된 다수의 플래시 메모리 셀들(플로팅-게이트 트랜지스터들로서 도면에 도시됨)을 포함한다.Figure 2 is a circuit diagram that schematically illustrates an array of analog memory cells that may be used to implement array 28, in accordance with an embodiment of the invention. In this embodiment, the array includes a plurality of flash memory cells (shown in the figure as floating-gate transistors) connected by word lines 64 and bit lines 68.

몇몇 실시예들에서, R/W 유닛(36)은 반복적 프로그래밍 및 검증(P&V) 프로세스를 사용하여 데이터에 따라 주어진 워드 라인(64)에서 메모리 셀들의 그룹(예로서, 워드 라인에서의 모든 메모리 셀들, 홀수-차수 셀들 또는 짝수-차수 셀들)을 프로그램한다. 이러한 프로세스에서, 유닛(36)은 셀들의 그룹에 프로그래밍 펄스들의 시퀀스를 인가하며, 각각의 펄스 후 그룹 내의 셀들의 임계 전압들을 검증한다. 유닛(36)은 그들의 의도된 임계 전압들에 도달한 셀들의 후속 프로그래밍을 금지하며, 이로써 후속 펄스들은 단지 의도된 임계 전압들에 아직 도달하지 않는 이들 셀들에만 선택적으로 인가된다.In some embodiments, the R / W unit 36 uses a repetitive programming and verification (P & V) process to write a group of memory cells (e.g., all memory cells , Odd-numbered cells, or even-numbered cells). In this process, the unit 36 applies a sequence of programming pulses to a group of cells, and verifies the threshold voltages of the cells in the group after each pulse. The unit 36 prohibits subsequent programming of cells that have reached their intended threshold voltages so that subsequent pulses are selectively applied only to those cells that have not yet reached the intended threshold voltages.

P&V 프로세스 동안, 유닛(36)은 적합한 전압들에 따라 다양한 워드 라인들(64) 및 비트 라인들(68)을 바이어싱한다. 도 2의 예는 3개의 워드 라인들(64)을 도시하며, 그의 중간 워드 라인이 프로그램된다. 본 예는 P&V 프로세스 동안 특정 인스턴스를 도시하며, 여기서 메모리 셀(72)이 프로그램된다(그것이 그의 의도된 임계 전압에 아직 도달하지 않았기 때문). 동시에, 동일한 워드 라인에서의 메모리 셀(80)은 그것이 그의 의도된 임계 전압에 이미 도달하였기 때문에 프로그램되는 것이 금지된다. 메모리 셀(80)과 같은, 다른 워드 라인들에서의 메모리 셀들은 프로그램되지 않는다.During the P & V process, the unit 36 biases the various word lines 64 and bit lines 68 in accordance with the appropriate voltages. The example of Figure 2 shows three word lines 64, and its intermediate word lines are programmed. This example illustrates a particular instance during the P & V process where memory cell 72 is programmed (because it has not yet reached its intended threshold voltage). At the same time, the memory cell 80 in the same word line is inhibited from being programmed because it has already reached its intended threshold voltage. Memory cells in other word lines, such as memory cell 80, are not programmed.

적절한 메모리 셀들을 프로그램하기 위해, R/W 유닛(36)은 Vpgm으로 표시된 프로그래밍 전압에 따라 중간 워드 라인을, 그리고 Vpass_pgm으로 표시된 패스 전압에 따라 블록 내의 다른 워드 라인들을 바이어싱한다. 유닛(36)은 Vbitline_pgm으로 표시된 비트 라인 프로그래밍 전압에 따라 프로그램될 비트 라인들, 및 Vbitline_inhibit로 표시된 비트 라인 금지 전압에 따라 프로그램되는 것이 금지될 비트 라인들을 바이어싱한다.To program the appropriate memory cells, the R / W unit 36 biases the intermediate word line according to the programming voltage indicated by Vpgm and the other word lines in the block according to the pass voltage indicated by Vpass_pgm. Unit 36 biases the bit lines to be programmed according to the bit line programming voltage indicated by Vbitline_pgm and the bit lines to be programmed according to the bit line inhibition voltage indicated by Vbitline_inhibit.

도 3a는 본 발명의 실시예에 따라, 아날로그 메모리 셀들(28)의 그룹을 프로그램하는 프로세스를 개략적으로 예시하는 다이어그램이다. 본 예는 데이터에 따라 프로그램되는 2 비트들/셀 메모리 셀들의 그룹(예로서, 워드 라인에서의 모든 메모리 셀들, 홀수-차수 셀들 또는 짝수-차수 셀들)을 도시한다. 각각의 셀은 4개의 임계 전압 분포들(84A…84D)에 대응하는 4개의 가능한 프로그래밍 레벨들(프로그래밍 상태들로도 지칭됨) 중 하나로 프로그램가능하다. 각각의 프로그래밍 레벨은 각각의 2-비트 데이터 값에 대응한다. 음의 임계 전압들에 대응하는 프로그래밍 레벨(84A)은 또한 소거 레벨로서 작용한다. 프로그래밍이 개시되기 전에, 그룹 내의 모든 메모리 셀들은 소거 레벨로 설정된다.3A is a diagram schematically illustrating a process of programming a group of analog memory cells 28, in accordance with an embodiment of the present invention. This example illustrates a group of 2 bits / cell memory cells (e.g., all memory cells, odd-numbered cells, or even-numbered cells in a word line) programmed according to the data. Each cell is programmable to one of four possible programming levels (also referred to as programming states) corresponding to four threshold voltage distributions 84A ... 84D. Each programming level corresponds to a respective 2-bit data value. The programming level 84A corresponding to negative threshold voltages also acts as an erase level. Before programming is started, all the memory cells in the group are set to the erase level.

몇몇 실시예들에서, R/W 유닛(36)은 전술된 바와 같이, 반복적 P&V 프로세스를 사용하여 그룹 내의 메모리 셀들을 프로그램한다. 주어진 프로그래밍 펄스 후 셀 임계 전압들을 검증할 때, 유닛(36)은 하나 이상의 검증 임계치들에 셀 임계 전압들을 비교한다. 사전 설정된 예에서, 유닛(36)은 3개의 검증 임계치들(88A...88C)을 사용하며, 이는 각각 프로그래밍 레벨들(84B...84D)에 대응한다. 소정 프로그래밍 레벨로 프로그램되도록 의도되는 소정 메모리 셀의 임계 전압이 상기 프로그래밍 레벨의 검증 임계치를 초과할 때, 메모리 셀은 후속 프로그래밍 펄스들을 수신하는 것이 금지된다. 금지는 전형적으로 Vbitlie_pgm에서 Vbitline_inhibit로 셀의 비트 라인 전압을 변경함으로써 수행된다.In some embodiments, the R / W unit 36 programs the memory cells in the group using a recursive P & V process, as described above. Upon verifying the cell threshold voltages after a given programming pulse, the unit 36 compares the cell threshold voltages to one or more verification thresholds. In the preset example, the unit 36 uses three verification thresholds 88A ... 88C, which correspond to the programming levels 84B ... 84D, respectively. When a threshold voltage of a given memory cell intended to be programmed at a predetermined programming level exceeds a verification threshold of the programming level, the memory cell is inhibited from receiving subsequent programming pulses. The inhibition is typically performed by changing the bit line voltage of the cell from Vbitlie_pgm to Vbitline_inhibit.

(본 예는 명료함을 위해 모두 4개의 프로그래밍 레벨들을 동시에 프로그램하는 프로그래밍 프로세스를 도시한다. 몇몇 실시예들에서, 유닛(36)은 2개의 상들에서의 2개의 페이지들에 따라 메모리 셀들의 그룹을 프로그램한다 - 하나의 상은 2개의 프로그래밍 레벨들을 사용하여 제1 페이지를 프로그램하며, 제2 상은 모두 4개의 프로그래밍 레벨들을 사용하여 제2 페이지를 프로그램한다.)(This example illustrates a programming process that concurrently programs all four programming levels for clarity.) In some embodiments, the unit 36 includes a group of memory cells according to two pages in two phases - one phase programs the first page using two programming levels and the second phase all uses the four programming levels to program the second page.

도 3b는 본 발명의 실시예에 따라, 아날로그 메모리 셀들(28)의 그룹을 소거하는 프로세스를 개략적으로 예시하는 다이어그램이다. 소거 프로세스는 전형적으로 전체 블록(34)에 동시에 적용된다. 소거 프로세스에서, 유닛(36)은 시퀀스 또는 소거 펄스들을 메모리 셀들에 인가하며, 그들을 소거 임계치(92)에 비교함으로써 셀 임계 전압들을 검증한다. 소거 절차는 블록 내의 모든 메모리 셀들(또는 몇몇 실시예들에서 미리 정의된 제어된 수의 셀들)이 임계치(92)보다 낮은 임계 전압들을 가질 때까지 계속된다.Figure 3B is a diagram schematically illustrating a process for erasing a group of analog memory cells 28, in accordance with an embodiment of the present invention. The erase process is typically applied to the entire block 34 simultaneously. In the erase process, the unit 36 applies the sequence or erase pulses to the memory cells and verifies the cell threshold voltages by comparing them to the erase threshold 92. The erase procedure continues until all the memory cells in the block (or a predefined controlled number of cells in some embodiments) have threshold voltages that are lower than the threshold value 92.

도 3a 및 도 3b의 실시예들은 2 비트들/셀 메모리 셀들의 프로그래밍 및 소거를 나타낸다. 그러나, 개시된 기술들은 임의의 바람직한 수 및 배열의 프로그래밍 레벨들을 가진 임의의 다른 적합한 유형의 메모리 셀들에 적용가능하다.The embodiments of Figures 3A and 3B illustrate the programming and erasing of two bits / cell memory cells. However, the disclosed techniques are applicable to any other suitable type of memory cells having programming levels of any desired number and arrangement.

프로그래밍/소거 진행에 기초한 프로그래밍/소거 반복적 프로세스 파라미터들의 Programming / erasing based on programming / erasing progression 적응적Adaptive 수정 Modified

몇몇 실시예들에서, 아날로그 메모리 셀들의 그룹을 프로그램 또는 소거할 때, R/W 유닛(36)은 반복적 프로그래밍 또는 소거 프로세스의 진행을 평가한다. 진행이 소정 스위칭 조건을 충족시킬 때, 유닛(36)은 프로세스의 파라미터들 중 하나 이상을 수정한다.In some embodiments, when programming or erasing a group of analog memory cells, the R / W unit 36 evaluates the progress of the iterative programming or erase process. When the progress meets certain switching conditions, the unit 36 modifies one or more of the parameters of the process.

유닛(36)은 다양한 방식들로 진행을 평가할 수 있으며, 즉 다양한 종류들의 스위칭 조건들을 정의 및 평가한다. 예를 들면, 유닛(36)은 그룹 내의 메모리 셀들의 미리 정의된 비율이 그들의 의도된 임계 전압들에 도달하였는지(예로서, 프로그래밍 동작에 대한 적절한 검증 임계치를 초과하였는지 또는 소거 동작을 위한 소거 임계치 아래로 떨어졌는지)의 여부를 검사할 수 있다. 소거 동작에서, 유닛(36)은 제1 소거 펄스 후 또는 2개의 소거 펄스들 후 충분히 소거되는 셀들의 수를 평가할 수 있다. 대안적인 실시예들에서, 유닛(36)은 반복적 프로세스의 2개 이상의 상이한 검증 단계들로부터 셀 카운트들을 조합할 수 있다.Unit 36 can evaluate progress in various ways, i.e. define and evaluate various types of switching conditions. For example, the unit 36 may determine whether the predefined ratios of memory cells in the group have reached their intended threshold voltages (e. G., Exceeding the appropriate verification threshold for programming operation or under an erase threshold for erase operation) Or whether it has fallen to the bottom of the screen. In the erase operation, the unit 36 may evaluate the number of cells that are erased sufficiently after the first erase pulse or after two erase pulses. In alternate embodiments, the unit 36 may combine cell counts from two or more different verification steps of the iterative process.

이러한 종류의 조건을 사용할 때, R/W 유닛(36)은 데이터가 프로그래밍 레벨들 중에서 스크램블링(scrambled)되거나 달리 동일하게-분포된다고 추정할 수 있다. 대안적인 실시예들에서, R/W 회로는 프로그래밍 동작을 개시하기 전에 각각의 프로그래밍 레벨에서 셀들의 수를 결정하거나 임의의 다른 적합한 방식으로 이 정보를 획득할 수 있다.When using this kind of condition, the R / W unit 36 can assume that the data is scrambled or otherwise equally distributed among the programming levels. In alternate embodiments, the R / W circuitry may determine the number of cells at each programming level or acquire this information in any other suitable manner before initiating the programming operation.

다른 예시적인 스위칭 조건은 미리 정의된 수의 반복들을 수행한 후, 즉 미리 정의된 수의 프로그래밍 또는 소거 펄스들을 인가한 후 프로그래밍 또는 소거 파라미터들을 수정하는 것이다. 추가로 대안적으로, R/W 유닛은 프로그래밍 또는 소거와 관련 있는 몇몇 파라미터의 절대 값을 결정함으로써 스위칭 조건을 평가할 수 있다.Another exemplary switching condition is to modify the programming or erasing parameters after performing a predefined number of iterations, i. E., Applying a predefined number of programming or erasing pulses. As a further alternative, the R / W unit can evaluate switching conditions by determining the absolute value of some of the parameters associated with programming or erasing.

다양한 실시예들에서, R/W 유닛은 스위칭 조건이 충족될 때, 반복적 프로그래밍 또는 소거 프로세스의 임의의 적합한 파라미터를 수정할 수 있다. 파라미터는 예를 들면, 시퀀스에서의 연속적 프로그래밍/소거 펄스들 사이의 진폭 또는 지속 기간의 증분(때때로 증분적 스텝 펄스 프로그래밍 - ISPP으로 지칭됨), 및/또는 시퀀스에서의 초기 펄스의 진폭 또는 지속 기간을 포함할 수 있다.In various embodiments, the R / W unit may modify any suitable parameters of the iterative programming or erasing process when the switching condition is met. The parameters may include, for example, an amplitude or duration increment (sometimes referred to as an incremental step pulse programming-ISPP) between consecutive programming / erase pulses in the sequence, and / or an amplitude or duration . &Lt; / RTI &gt;

부가적으로 또는 대안적으로, 프로그래밍 동작에서, 수정된 파라미터는 비선택 워드 라인들에 인가된 패스 전압(Vpass_pgm), 선택된 워드 라인에 인가된 워드 라인 전압(Vpgm), 프로그램된 셀들에 인가된 비트 라인 전압(Vbitline_pgm), 금지된 셀들에 인가된 비트 라인 전압(Vbitline_inhibit), 및/또는 임의의 다른 적합한 파라미터를 포함할 수 있다. 또한 부가적으로 또는 대안적으로, 소거 동작에서, 수정된 파라미터는 예를 들면, 소거되는 블록에서 인가된 워드 라인 전압 및/또는 비트 라인 전압을 포함할 수 있다.Additionally or alternatively, in a programming operation, the modified parameters may include a pass voltage (Vpass_pgm) applied to the unselected word lines, a word line voltage (Vpgm) applied to the selected word line, a bit applied to the programmed cells The line voltage Vbitline_pgm, the bit line voltage applied to the forbidden cells Vbitline_inhibit, and / or any other suitable parameter. Additionally or alternatively, in an erase operation, the modified parameter may include, for example, the word line voltage and / or the bit line voltage applied in the erased block.

예시적인 실시예에서, 유닛(36)은 그들의 의도된 프로그래밍 레벨에 도달한 그룹 내의 메모리 셀들의 수를 평가한다. 비율이 미리 정의된 값을 초과할 때, 유닛(36)은 연속적 펄스들 사이의 진폭 증분을 변경한다.In an exemplary embodiment, the unit 36 evaluates the number of memory cells in the group that reached their intended programming level. When the ratio exceeds a predefined value, the unit 36 changes the amplitude increment between successive pulses.

다른 예시적인 실시예에서, 유닛(36)은 큰 소거 펄스 전압에 따라 소거 프로세스를 시작한다. 성공적으로-소거된 메모리 셀들의 비율이 소정의 미리 정의된 값에 도달할 때, 유닛(36)은 후속 펄스들에 대한 소거 펄스 전압을 감소시킨다.In another exemplary embodiment, the unit 36 starts the erase process in accordance with the large erase pulse voltage. When the ratio of successfully-erased memory cells reaches a predetermined predefined value, the unit 36 reduces the erase pulse voltage for subsequent pulses.

다른 실시예에서, R/W 유닛(36)은 Vpgm의 함수로서 바이어싱 전압들(예로서, Vbitline_pgm, Vbitline_inhibit, Vpass_pgm) 중 하나 이상을 수정한다. 이러한 종류의 프로그래밍은 유닛(36)이 워드 라인 및/또는 비트 라인 전압들을 최적화하며, 메모리 셀들을 효율적으로 프로그램할 수 있게 한다.In another embodiment, the R / W unit 36 modifies one or more of the biasing voltages (e.g., Vbitline_pgm, Vbitline_inhibit, Vpass_pgm) as a function of Vpgm. This type of programming allows the unit 36 to optimize the word line and / or bit line voltages and to efficiently program the memory cells.

전압 최적화는, 예를 들면, 인접한 메모리 셀들(인접한 워드 라인들 및/또는 인접한 비트 라인들 상의)로부터의 프로그램 디스터브(disturb)를 최소화하도록 수행될 수 있다. 몇몇 실시예들에서, 최적화는 Vpgm의 절대 값의 함수로서 수행된다.Voltage optimization may be performed, for example, to minimize program disturb from adjacent memory cells (on adjacent word lines and / or adjacent bit lines). In some embodiments, optimization is performed as a function of the absolute value of Vpgm.

도 4는 본 발명의 실시예에 따라, 아날로그 메모리 셀들(32)의 그룹을 프로그램 또는 소거하기 위한 방법을 개략적으로 예시하는 흐름도이다. 방법은 초기화 단계(96)에서, 메모리 셀들의 그룹에서 반복적 프로그래밍 또는 소거 프로세스를 초기화하는 R/W 유닛(36)으로 시작한다.4 is a flow diagram that schematically illustrates a method for programming or erasing a group of analog memory cells 32, in accordance with an embodiment of the present invention. The method begins in an initialization step 96 with an R / W unit 36 that initiates a repetitive programming or erase process in a group of memory cells.

프로그래밍 또는 소거 프로세스 동안 몇몇 포인트에서, 유닛(36)은 진행 평가 단계(100)에서, 프로세스의 진행을 평가한다. 유닛(36)은 완료 검사 단계(104)에서 프로세스가 완료되었는지의 여부를 검사한다. 유닛(36)은 예를 들면, 모든 셀들이 그들의 의도된 임계 전압들에 도달하였는지를 검사할 수 있다. 프로세스가 완료된 경우, 방법은 종료 단계(108)에서 종료한다.At some point during the programming or erasing process, the unit 36 evaluates the progress of the process, in the progress evaluation stage 100. Unit 36 checks whether the process has been completed in completion check step 104. [ The unit 36 may, for example, check whether all of the cells have reached their intended threshold voltages. If the process is complete, the method ends at an end step 108.

그렇지 않다면, 유닛(36)은 스위칭 조건 평가 단계(112)에서, 미리 정의된 스위칭 조건(상기 단계(100)에서 평가된 진행에 기초하여)이 충족되는지의 여부를 검사한다. 반복적 프로세스의 진행이 스위칭 조건을 만족한 경우, 유닛(36)은 파라미터 수정 단계(116)에서, 반복적 프로세스의 파라미터들 중 하나 이상을 수정한다. 방법은 이어서 유닛(36)이 반복적 프로세스의 진행을 계속해서 추적하는 상기 단계(100)로 되돌아간다.Otherwise, the unit 36 checks in the switching condition evaluation step 112 whether a predefined switching condition (based on the progress evaluated in step 100) is satisfied. If the progress of the iterative process satisfies the switching condition, the unit 36 modifies one or more of the parameters of the iterative process in the parameter modification step 116. [ The method then returns to step 100 where the unit 36 continues to track the progress of the iterative process.

데이터에 기초하여 프로세스 파라미터들을 프로그램하는 Programming the process parameters based on the data 적응적Adaptive 설정 Set

몇몇 실시예들에서, R/W 유닛(36)은 현재 메모리 셀들 중 하나 이상에 저장되는 데이터에 기초하여 반복적 프로그래밍 또는 소거 프로세스의 하나 이상의 파라미터들을 설정한다. 임의의 적합한 프로그래밍 또는 소거 프로세스 파라미터가 상기 열거된 파라미터들과 같이(예로서, ISPP, 시퀀스에서의 초기 펄스의 진폭 또는 지속 기간, 및/또는 임의의 워드 라인 또는 비트 라인 전압), 이러한 방식으로 설정될 수 있다.In some embodiments, the R / W unit 36 sets one or more parameters of the iterative programming or erase process based on data stored in one or more of the current memory cells. Any suitable programming or erasing process parameters may be set in this manner, such as the above listed parameters (e.g., ISPP, amplitude or duration of the initial pulse in the sequence, and / or any word line or bit line voltage) .

예를 들면, 메모리 셀들(예로서, 페이지)의 그룹을 프로그램할 때, 유닛(36)은 프로그램된 그룹과 동일한 워드 라인에 저장되는 데이터에 기초하여, 그리고/또는 하나 이상의 다른(예로서, 인접한) 워드 라인들에 저장되는 데이터에 기초하여 프로그래밍 파라미터들을 설정할 수 있다. 예를 들면, 유닛(36)은 인접한 워드 라인에서의 대응하는 셀들에서의 데이터(또는 임계 전압들)에 기초하여 Vbitline_pgm을 프로그램된 그룹의 워드 라인 미만 또는 초과로 설정할 수 있다. 몇몇 실시예들에서, 유닛(36)은 먼저 프로그래밍 파라미터들을 설정하기 위해 사용되는 데이터를 판독하며 프로그래밍 이전에 대안적인 위치에서 데이터를 저장할 수 있다.For example, when programming a group of memory cells (e.g., pages), the unit 36 may be programmed based on data stored in the same word line as the programmed group and / or on one or more other ) &Lt; / RTI &gt; word lines. For example, unit 36 may set Vbitline_pgm to less than or greater than the wordline of the programmed group based on data (or threshold voltages) in corresponding cells in adjacent word lines. In some embodiments, the unit 36 may first read the data used to set the programming parameters and store the data at an alternative location prior to programming.

다른 예로서, 블록을 소거할 때, 유닛(36)은 블록에 저장되는 데이터에 기초하여 소거 프로세스의 하나 이상의 파라미터들을 설정할 수 있다. 예를 들면, 유닛(36)은 소거 이전에 블록에서 프로그램되는 워드 라인들의 수의 함수로서 소거 프로세스의 파라미터들을 설정할 수 있다. 예시적인 실시예에서, 유닛(36)은 블록에서의 워드 라인들 모두가 프로그램된다면 하나의 소거 전압(Verase)을, 그리고 워드 라인들의 단지 일부만이 프로그램된다면 상이한 소거 전압을 설정한다. 몇몇 실시예들에서, 프로그램된 워드 라인들의 수에 관한 지시가 메모리 제어기(40)에 의해 유닛(36)에 제공된다. 다른 실시예들에서, 유닛(36)은 메모리 제어기에 상관없이 프로그램된 워드 라인들의 수를 결정한다. 몇몇 실시예들에서, 유닛(36)은 블록에서의 프로그램된 워드 라인들의 수에 기초하여 프로그래밍 프로세스의 하나 이상의 파라미터들을 변경한다.As another example, when erasing a block, the unit 36 may set one or more parameters of the erase process based on data stored in the block. For example, the unit 36 may set the parameters of the erase process as a function of the number of word lines programmed in the block prior to erasure. In an exemplary embodiment, unit 36 sets one erase voltage (Verase) if all of the word lines in the block are programmed, and a different erase voltage if only a part of the word lines are programmed. In some embodiments, an indication of the number of programmed word lines is provided to the unit 36 by the memory controller 40. In other embodiments, the unit 36 determines the number of programmed word lines regardless of the memory controller. In some embodiments, the unit 36 alters one or more parameters of the programming process based on the number of programmed word lines in the block.

또 다른 예로서, 블록이 높은 임계 전압들로 프로그램되는 다수의 메모리 셀들을 포함한 경우, 유닛(36)은 소거 펄스들의 초기 진폭을 높은 값으로 설정할 수 있으며, 그 역 또한 마찬가지이다.As another example, if the block includes a plurality of memory cells programmed with high threshold voltages, the unit 36 can set the initial amplitude of the erase pulses to a high value, and vice versa.

도 5는 본 발명의 실시예에 따라, 아날로그 메모리 셀들(32)의 그룹을 프로그램하기 위한 방법을 개략적으로 예시하는 흐름도이다. 도 5의 설명은 메모리 셀들의 그룹에서 프로그래밍 프로세스를 나타내지만, 유사한 방법이 또한 소거 프로세스에서 사용될 수 있다.5 is a flow diagram that schematically illustrates a method for programming a group of analog memory cells 32, in accordance with an embodiment of the invention. Although the description of Figure 5 shows the programming process in a group of memory cells, a similar method may also be used in the erase process.

방법은 독출(readout) 단계(120)에서, 하나 이상의 메모리 셀들로부터 데이터를 판독하는 유닛(36)으로 시작한다. 판독 메모리 셀들은 프로그램될 메모리 셀들의 그룹에 속하거나 속하지 않을 수 있다. 단계(120)에서 판독된 데이터에 기초하여, 유닛(36)은 파라미터 설정 단계(124)에서, 프로그래밍 프로세스의 하나 이상의 파라미터들을 설정한다. 유닛(36)은 이어서 프로그래밍 단계(128)에서, 설정된 파라미터들을 가진 반복적 프로그래밍 프로세스를 사용하여 메모리 셀들의 그룹에 데이터를 저장한다.The method begins with a unit 36 for reading data from one or more memory cells in a readout step 120. Read memory cells may or may not belong to a group of memory cells to be programmed. Based on the data read in step 120, the unit 36 sets one or more parameters of the programming process in the parameter setting step 124. Unit 36 then stores the data in a group of memory cells using a repetitive programming process with the set parameters in a programming step 128.

프로그래밍 프로세스의 성능에 기초한 소거 프로세스 파라미터들의 설정Setting of erase process parameters based on the performance of the programming process

몇몇 실시예들에서, 유닛(36)은 메모리에 적용된 프로그래밍 동작의 성능에 기초하여, 메모리 셀들의 그룹에 적용될 소거 동작을 구성한다. 전형적으로, 필수적인 것은 아니지만, 주어진 셀들 그룹(예로서, 블록)에 대한 소거 동작은 그룹 내에서 하나 이상의 메모리 셀들에(예로서, 블록 내에서의 페이지에) 적용된 프로그래밍 동작의 성능에 기초하여 구성된다.In some embodiments, the unit 36 configures an erase operation to be applied to a group of memory cells, based on the performance of the programming operation applied to the memory. Typically, though not necessarily, an erase operation on a given group of cells (e.g., a block) is configured based on the performance of the programming operation applied to one or more memory cells in the group (e.g., on pages in the block) .

이러한 기술은 프로그래밍 동작에(전형적으로 양-전압 프로그래밍 펄스들의 인가에) 대한 메모리 셀들의 응답성이 소거 동작에(전형적으로 음-전압 프로그래밍 펄스들의 인가에) 대한 메모리 셀들의 응답성을 나타낸다는 사실에 기초한다. 유닛(36)은 프로그래밍 동작의 임의의 적합한 종류의 성능 측정치들을 평가할 수 있으며, 평가된 성능 측정치에 기초하여 임의의 적합한 방식으로 소거 동작을 구성할 수 있다.This technique is based on the fact that the responsiveness of the memory cells to the programming operation (typically with the application of positive-voltage programming pulses) represents the responsiveness of the memory cells to the erase operation (typically with the application of negative-voltage programming pulses) . The unit 36 may evaluate the performance measurements of any suitable type of programming operation and may configure the erase operation in any suitable manner based on the evaluated performance measurements.

예를 들면, 유닛(36)은 프로그래밍 동작의 프로그래밍 시간(지속 기간), 예로서 동작의 개시와 완료 사이에서 경과하는 시간, 또는 프로그래밍 동작에서 수행된 P&V 반복들의 수를 측정할 수 있다. 유닛(36)은 이어서 측정된 프로그래밍 시간에 기초하여 소거 동작을 구성할 수 있다. 예시적인 실시예에서, 유닛(36)은 반복 횟수의 함수로서 그들의 의도된 프로그래밍 레벨에 도달한 셀들의 수 또는 비율을 측정할 수 있다. 다시 말해서, 유닛(36)은 성공적으로-프로그램된 셀들의 수의 누적 분포 함수(Cumulative Distribution Function, CDF)를 평가할 수 있다.For example, unit 36 may measure the programming time (duration) of a programming operation, e.g., the time elapsing between the start and completion of an operation, or the number of P & V iterations performed in a programming operation. The unit 36 may then configure the erase operation based on the measured programming time. In an exemplary embodiment, the unit 36 may measure the number or percentage of cells that have reached their intended programming level as a function of the number of iterations. In other words, the unit 36 can evaluate the cumulative distribution function (CDF) of the number of successfully-programmed cells.

유닛(36)은 소거 펄스들의 초기 크기 또는 지속 기간, 연속적 소거 펄스들 사이의 증분 및/또는 소거 동안 인가된 임의의 비트 라인 또는 워드 라인 전압과 같이, 프로그래밍 동작의 성능에 기초하여 임의의 적합한 소거 파라미터를 설정함으로써 소거 동작을 구성할 수 있다.The unit 36 may perform any suitable erase operation based on the performance of the programming operation, such as the initial size or duration of erase pulses, the increment between successive erase pulses, and / or any bit line or word line voltage applied during erase By setting the parameter, the erase operation can be configured.

도 6은 본 발명의 실시예에 따라, 아날로그 메모리 셀들(32)의 그룹을 소거하기 위한 방법을 개략적으로 예시하는 흐름도이다. 도 6의 설명은 메모리 셀들의 동일한 그룹의 프로그래밍 및 소거를 나타낸다. 그러나, 일반적으로, 개시된 기술은 다른 그룹을 프로그램하는 성능에 기초하여 메모리 셀들의 소정 그룹을 소거하기 위해 사용될 수 있다. 2개의 그룹들이 공동으로 메모리 셀들을 갖거나 갖지 않을 수 있다.6 is a flow diagram that schematically illustrates a method for erasing a group of analog memory cells 32, in accordance with an embodiment of the present invention. The description of Figure 6 shows programming and erasing of the same group of memory cells. However, in general, the disclosed technique can be used to erase a certain group of memory cells based on the ability to program other groups. The two groups may or may not have memory cells in common.

방법은 유닛(36)이 프로그래밍 단계(132)에서, 프로그래밍 동작(예로서, P&V 프로세스)을 수행함으로써 데이터에 따라 메모리 셀들의 그룹을 프로그램하는 것으로 시작한다. 유닛(36)은 성능 추정 단계(136)에서, 프로그래밍 동작의 성능 측정치를 추정한다. 예를 들면, 유닛(36)은 프로그래밍 시간(프로그래밍 지속 기간), 또는 임의의 다른 적합한 성능 측정치를 추정할 수 있다.The method begins with the unit 36 programming a group of memory cells according to the data by performing a programming operation (e.g., a P & V process) at a programming step 132. Unit 36 estimates the performance measure of the programming operation in performance estimation step 136. [ For example, the unit 36 may estimate the programming time (programming duration), or any other suitable performance measure.

프로그래밍 동작의 추정된 성능 측정치에 기초하여, 유닛(36)은 소거 구성 단계(140)에서, 메모리 셀들의 그룹에 적용될 소거 동작을 구성한다. 유닛(36)은 소거 단계(144)에서, 구성된 소거 동작을 사용하여 메모리 셀들의 그룹을 소거한다.Based on the estimated performance measure of the programming operation, the unit 36 constructs an erase operation to be applied to the group of memory cells in an erase configuration step 140. [ Unit 36 erases the group of memory cells using the erase operation configured in the erase step 144. [

몇몇 실시예들에서, 유닛(36) 또는 메모리 제어기(40)는 블록에 적용된 프로그래밍 및 소거(P/E) 사이클들의 수에 기초하여서와 같이, 다른 성능 측정치들에 기초하여 소정 메모리 블록에 대한 소거 동작을 구성할 수 있다. 일 실시예에서, 프로그래밍 후, 유닛(36) 또는 메모리 제어기(40)는 블록의 수명의 몇몇 지시를 기록할 수 있으며, 소거 동작을 구성하기 위해 소거 이전에 이러한 지시를 검색할 수 있다.In some embodiments, the unit 36 or the memory controller 40 may perform an erase operation on a predetermined memory block based on other performance measures, such as based on the number of programming and erase (P / E) The operation can be configured. In one embodiment, after programming, unit 36 or memory controller 40 may record some indications of the life of the block and may retrieve such an indication prior to erasure to configure the erase operation.

프로그래밍 또는 소거 성능에 기초한 헬스 레벨 평가Health level evaluation based on programming or erasing performance

몇몇 실시예들에서, 유닛(36)은 메모리 셀들의 그룹에 적용된 반복적 프로그래밍 또는 소거 프로세스의 성능을 측정하며, 측정된 성능에 기초하여 메모리 셀들의 헬스 상태를 평가한다. 이어지는 설명은, 개시된 기술이 다른 적합한 성능 측정치들과 함께 사용될 수 있을지라도, 프로그래밍 또는 소거 프로세스의 지속 기간을 측정하는 것을 나타낸다.In some embodiments, the unit 36 measures the performance of an iterative programming or erasing process applied to a group of memory cells and evaluates the health state of the memory cells based on the measured performance. The following description refers to measuring the duration of a programming or erasing process, although the disclosed technique may be used with other suitable performance measures.

실시예에서, 유닛(36)은 메모리 셀들의 상이한 그룹들의 프로그래밍 또는 소거 시간을 측정한다. 미리 정의된 범위로부터 벗어난(예로서, 소정 하위 임계치 미만 및/또는 소정 상위 임계치 초과) 프로그래밍 또는 소거 시간은 메모리 셀들이 취약한 헬스 상태에 있으며 신뢰가능하지 않거나 곧 고장날 수 있음을 지시할 수 있다.In an embodiment, unit 36 measures the programming or erase time of different groups of memory cells. A programming or erasure time that deviates from a predefined range (e.g., below a certain lower threshold and / or above a certain upper threshold) may indicate that the memory cells are in a vulnerable health state and may be unreliable or fail soon.

몇몇 실시예들에서, 메모리 제어기(40)는 블록의(또는 블록에서의 메모리 셀 그룹들의) 프로그래밍 또는 소거 시간이 미리 정의된 범위로부터 벗어난 경우 주어진 메모리 블록을 불량으로서 또는 의심(suspicious)으로서 마킹한다. 불량 블록은 전형적으로 서비스 불가능으로 취해진다. 의심 블록은 전형적으로 그것을 불량으로 마킹하기 전에 부가적인 평가의 대상이 된다. 메모리 제어기는 블록에 대한 평균 프로그래밍 또는 소거 시간, 블록에 대한 최대 또는 최소 프로그래밍 또는 소거 시간, 또는 블록과 연관된 프로그래밍 또는 소거 시간의 임의의 다른 적합한 측정치에 기초하여 블록을 불량 또는 의심으로서 마킹할 수 있다.In some embodiments, the memory controller 40 marks a given memory block as bad or suspicious if the programming or erase time of the block (or groups of memory cells in the block) is outside the predefined range . Bad blocks are typically taken to be out of service. The suspicious block is typically subject to additional evaluation before marking it as bad. The memory controller may mark the block as bad or suspicious based on the average programming or erase time for the block, the maximum or minimum programming or erase time for the block, or any other suitable measure of programming or erase time associated with the block .

실시예에서, 메모리 제어기는 반복 횟수의 함수 또는 성공적으로-프로그램된 셀들의 수의 CDF로서 그들의 의도된 프로그래밍 레벨에 도달한 셀들의 수 또는 비율을 측정할 수 있고, 블록에 대한 헬스의 측정치로서 이러한 평가를 사용할 수 있다.In an embodiment, the memory controller may measure the number or percentage of cells that reached their intended programming level as a function of the number of iterations or the number of successfully-programmed cells as the CDF, Evaluation can be used.

몇몇 실시예들에서, 메모리 제어기는, 블록에서의 P&V 프로세스들이 성공적으로 완료될지라도, 프로그래밍 시간 기준에 기초하여 블록을 불량으로서 마킹한다. 몇몇 실시예들에서, 메모리 제어기는 프로그래밍 시간이 미리 정의된 범위로부터 벗어난 블록들에 대해서만 P&V 이후의 검증 기술을 적용한다. 이러한 목적을 위해 사용될 수 있는 P&V-후 검증 기술들의 예들은 상기 인용된, 미국 특허 출원 제13/356,694호에서 주어진다.In some embodiments, the memory controller marks the block as bad based on programming time criteria, even if the P & V processes in the block are successfully completed. In some embodiments, the memory controller applies P & V verification techniques only for blocks whose programming time deviates from a predefined range. Examples of P & V-post verification techniques that may be used for this purpose are given in the above-cited U.S. Patent Application No. 13 / 356,694.

소거 동작에서, 유닛(36) 또는 메모리 제어기(40)는 블록의 평가된 헬스 상태에 기초하여 다양한 동작들을 취할 수 있다. 예를 들면, R/W 유닛 또는 메모리 제어기는 블록의 평가된 헬스 상태에 기초하여 블록에서의 후속 프로그래밍 명령어들의 저장 구성(예로서, 에러 정정 코드 및/또는 셀당 비트들의 수)을 설정할 수 있다.In an erase operation, the unit 36 or the memory controller 40 may take various actions based on the evaluated health state of the block. For example, the R / W unit or memory controller may set the storage configuration (e.g., error correction code and / or number of bits per cell) of subsequent programming instructions in the block based on the estimated health state of the block.

도 7은 본 발명의 실시예에 따라, 아날로그 메모리 셀들의 그룹의 헬스 레벨을 평가하기 위한 방법을 개략적으로 예시하는 흐름도이다. 방법은 R/W 유닛(36) 또는 메모리 제어기(40)가 동작 단계(148)에서, 메모리 셀들의 그룹에 프로그래밍 또는 소거 동작을 적용하는 것으로 시작한다. 유닛(36) 또는 메모리 제어기(40)는 성능 추정 단계(152)에서, 프로그래밍 또는 소거 동작의 성능 측정치를 추정한다. 성능 측정치는, 예를 들면, 프로그래밍 또는 소거 동작의 지속 기간을 포함할 수 있다. 유닛(36) 또는 제어기(40)는 헬스 평가 단계(156)에서, 성능 측정치에 기초하여 메모리 셀들의 그룹의 헬스 상태를 평가한다.7 is a flow diagram schematically illustrating a method for evaluating a health level of a group of analog memory cells, in accordance with an embodiment of the present invention. The method begins with the R / W unit 36 or the memory controller 40 applying a programming or erasing operation to the group of memory cells in an operational step 148. Unit 36 or memory controller 40 estimates the performance measure of the programming or erasing operation in a performance estimation step 152. [ The performance measure may include, for example, the duration of the programming or erasing operation. Unit 36 or controller 40 evaluates the health state of the group of memory cells based on the performance measure,

전술된 실시예들은 예로서 인용되며 본 발명은 특히 본 명세서에서 도시되고 전술된 것에 제한되지 않는다는 것이 이해될 것이다. 오히려, 본 발명의 범주는 본 명세서에서 전술된 다양한 특징들의 조합들 및 하위-조합들 둘 모두뿐만 아니라, 전술한 설명을 읽을 때 당업자에게 떠오를 것이고 종래 기술에서 개시되지 않은 변형들 및 수정들을 포함한다. 본 특허 출원에 참고로 포함된 문헌들은, 임의의 용어들이 본 명세서에서 명시적으로 또는 암시적으로 이루어진 정의들과 모순되는 방식으로 이들 포함된 문헌들에 정의되는 경우를 제외하고 본 출원의 통합 부분으로 고려되어야 하며, 오직 본 명세서에서의 정의들만이 고려되어야 한다.It is to be understood that the above-described embodiments are cited by way of example and the present invention is not limited to what has been particularly shown and described herein. Rather, the scope of the present invention includes both combinations and sub-combinations of the various features described hereinabove, as well as variations and modifications that will occur to those skilled in the art upon reading the foregoing description and which are not described in the prior art . The documents incorporated by reference into this patent application are hereby incorporated by reference in their entirety for all purposes to the extent that any term is defined in such incorporated documents in a manner inconsistent with the definitions explicitly or implicitly made herein, , And only the definitions in this specification should be considered.

Claims (20)

데이터 저장을 위한 방법으로서,
다수의 아날로그 메모리 셀들을 포함하는 메모리에서, 상기 메모리 내의 상기 메모리 셀들 중 적어도 하나의 메모리 셀에 저장된 하나 이상의 데이터 값들에 기초하여 상기 메모리 셀들의 그룹에 적용된 반복적 프로세스의 파라미터를 설정하는 단계;
상기 설정된 파라미터에 따라 상기 메모리 셀들의 상기 그룹에 대해 상기 반복적 프로세스를 수행하는 단계;
상기 반복적 프로세스의 지속 기간을 판정하는 단계; 및
상기 반복적 프로세스의 지속 기간에 관해 미리 정의된 범위의 상위 임계치 및 하위 임계치에 상기 반복적 프로세스의 지속 기간을 비교한 것에 의존하여 상기 메모리 셀들의 상기 그룹의 헬스 상태(health status)를 평가하는 단계
를 포함하는, 방법.
CLAIMS 1. A method for data storage,
The method comprising: in a memory including a plurality of analog memory cells, setting parameters of an iterative process applied to a group of memory cells based on one or more data values stored in at least one of the memory cells in the memory;
Performing the iterative process on the group of memory cells according to the set parameters;
Determining a duration of the iterative process; And
Evaluating a health status of the group of memory cells in dependence upon comparing the duration of the iterative process to an upper threshold and a lower threshold of a predefined range for the duration of the iterative process
/ RTI &gt;
제1항에 있어서, 상기 반복적 프로세스를 수행하는 단계는 데이터에 따라 상기 그룹 내의 상기 메모리 셀들을 프로그램하는 단계를 포함하는, 방법.2. The method of claim 1, wherein performing the iterative process comprises programming the memory cells in the group according to data. 제1항에 있어서, 상기 반복적 프로세스를 수행하는 단계는 상기 메모리 셀들의 상기 그룹을 소거하는 단계를 포함하는, 방법.2. The method of claim 1, wherein performing the iterative process comprises erasing the group of memory cells. 제1항에 있어서, 상기 파라미터를 설정하는 단계는 상기 메모리 셀들 중 상기 적어도 하나의 메모리 셀로부터 대안적인 저장 위치로 상기 데이터 값들을 복사하는 단계, 및 상기 복사된 데이터 값들에 기초하여 상기 파라미터를 설정하는 단계를 포함하는, 방법.2. The method of claim 1, wherein setting the parameter comprises: copying the data values from the at least one memory cell of the memory cells to an alternative storage location; and setting the parameter based on the copied data values. &Lt; / RTI &gt; 제1항에 있어서, 상기 파라미터를 설정하는 단계는 상기 반복적 프로세스에서의 연속적 펄스들 사이의 진폭 또는 지속 기간의 증분, 상기 반복적 프로세스에서의 초기 펄스의 진폭 또는 지속 기간, 상기 메모리 셀들의 상기 그룹에 인가된 프로그래밍 워드 라인 전압(programming word line voltage), 상기 메모리 셀들의 다른 그룹에 인가된 비선택 워드 라인 전압(unselected word line voltage), 후속 펄스들을 수신하도록 의도되는 상기 그룹 내의 상기 메모리 셀들에 인가된 프로그래밍 비트 라인 전압(programming bit line voltage), 및 상기 후속 펄스들을 수신하는 것이 금지되도록 의도되는 상기 그룹 내의 상기 메모리 셀들에 인가된 금지 비트 라인 전압(inhibiting bit line voltage)으로 이루어진 유형들의 그룹으로부터 선택된 적어도 하나의 파라미터 유형을 설정하는 단계를 포함하는, 방법.2. The method of claim 1, wherein setting the parameter comprises: incrementing an amplitude or duration between successive pulses in the iterative process, an amplitude or duration of an initial pulse in the iterative process, An applied programming word line voltage, an unselected word line voltage applied to another group of the memory cells, a voltage applied to the memory cells in the group intended to receive subsequent pulses A programming bit line voltage, and an inhibiting bit line voltage applied to the memory cells in the group intended to be inhibited from receiving the subsequent pulses. Set up one parameter type &Lt; / RTI &gt; 데이터 저장을 위한 장치로서,
다수의 아날로그 메모리 셀들을 포함하는 메모리; 및
저장 회로
를 포함하고,
상기 저장 회로는,
상기 메모리 내의 상기 메모리 셀들 중 적어도 하나의 메모리 셀에 저장된 하나 이상의 데이터 값들에 기초하여 상기 메모리 셀들의 그룹에 적용된 반복적 프로세스의 파라미터를 설정하고;
상기 설정된 파라미터에 따라 상기 메모리 셀들의 상기 그룹에서 상기 반복적 프로세스를 수행하고;
상기 반복적 프로세스의 지속 기간을 판정하고;
상기 반복적 프로세스의 지속 기간에 관해 미리 정의된 범위의 상위 임계치 및 하위 임계치에 상기 반복적 프로세스의 지속 기간을 비교한 것에 의존하여 상기 메모리 셀들의 상기 그룹의 헬스 상태를 평가하도록
구성되는, 장치.
An apparatus for data storage,
A memory including a plurality of analog memory cells; And
Storage circuit
Lt; / RTI &gt;
The storage circuit comprising:
Setting a parameter of an iterative process applied to the group of memory cells based on one or more data values stored in at least one of the memory cells in the memory;
Perform the repetitive process in the group of memory cells according to the set parameters;
Determine a duration of the iterative process;
And evaluating a health state of the group of memory cells depending on comparing the duration of the iterative process to an upper threshold and a lower threshold of a predefined range for the duration of the iterative process
Lt; / RTI &gt;
제6항에 있어서, 상기 반복적 프로세스는 데이터에 따라 상기 그룹 내의 상기 메모리 셀들을 프로그램하는 프로그래밍 프로세스를 포함하는, 장치.7. The apparatus of claim 6, wherein the iterative process comprises a programming process for programming the memory cells in the group according to data. 제6항에 있어서, 상기 반복적 프로세스는 상기 메모리 셀들의 상기 그룹을 소거하는 소거 프로세스를 포함하는, 장치.7. The apparatus of claim 6, wherein the iterative process comprises an erase process to erase the group of memory cells. 제6항에 있어서, 상기 저장 회로는 상기 메모리 셀들 중 상기 적어도 하나의 메모리 셀로부터 대안적인 저장 위치로 상기 데이터 값들을 복사하고, 상기 복사된 데이터 값들에 기초하여 상기 파라미터를 설정하도록 구성되는, 장치.7. The apparatus of claim 6, wherein the storage circuit is configured to copy the data values from the at least one memory cell of the memory cells to an alternative storage location and to set the parameter based on the copied data values. . 제6항에 있어서, 상기 저장 회로는 상기 반복적 프로세스에서의 연속적 펄스들 사이의 진폭 또는 지속 기간의 증분, 상기 반복적 프로세스에서의 초기 펄스의 진폭 또는 지속 기간, 상기 메모리 셀들의 상기 그룹에 인가된 프로그래밍 워드 라인 전압, 상기 메모리 셀들의 다른 그룹에 인가된 비선택 워드 라인 전압, 후속 펄스들을 수신하도록 의도되는 상기 그룹 내의 상기 메모리 셀들에 인가된 프로그래밍 비트 라인 전압, 및 상기 후속 펄스들을 수신하는 것이 금지되도록 의도되는 상기 그룹 내의 상기 메모리 셀들에 인가된 금지 비트 라인 전압으로 이루어진 유형들의 그룹으로부터 선택된 적어도 하나의 파라미터 유형을 설정하도록 구성되는, 장치.7. The method of claim 6, wherein the storage circuit further comprises: an increment of amplitude or duration between successive pulses in the iterative process, an amplitude or duration of an initial pulse in the iterative process, A word line voltage, a non-selected word line voltage applied to another group of the memory cells, a programming bit line voltage applied to the memory cells in the group intended to receive subsequent pulses, And to set at least one parameter type selected from the group of types consisting of the inhibited bit line voltage applied to the memory cells in the group intended. 데이터 저장을 위한 방법으로서,
다수의 아날로그 메모리 셀들을 포함하는 메모리에서, 상기 메모리 셀들의 그룹에, 상기 그룹 내의 상기 메모리 셀들을 각각의 아날로그 값들로 설정하는 동작을 적용하는 단계;
상기 메모리 셀들의 상기 그룹에 적용된 상기 동작의 지속 기간을 판정하는 단계; 및
상기 동작의 지속 기간에 관해 미리 정의된 범위의 상위 임계치 및 하위 임계치에 상기 동작의 지속 기간을 비교한 것에 기초하여, 상기 그룹을 포함하는 상기 메모리 내의 메모리 블록의 헬스 상태를 평가하는 단계를 포함하는, 방법.
CLAIMS 1. A method for data storage,
In a memory comprising a plurality of analog memory cells, applying to the group of memory cells an operation of setting the memory cells in the group to respective analog values;
Determining a duration of the operation applied to the group of memory cells; And
Evaluating a health state of a memory block in the memory that includes the group based on comparing the duration of the operation to an upper threshold and a lower threshold of a predefined range for the duration of the operation , Way.
제11항에 있어서, 상기 동작을 적용하는 단계는 데이터에 따라 상기 그룹 내의 상기 메모리 셀들을 프로그램하는 단계를 포함하는, 방법.12. The method of claim 11, wherein applying the operation comprises programming the memory cells in the group according to data. 제11항에 있어서, 상기 동작을 적용하는 단계는 상기 메모리 셀들의 상기 그룹을 소거하는 단계를 포함하는, 방법.12. The method of claim 11, wherein applying the operation comprises erasing the group of memory cells. 제11항에 있어서, 상기 헬스 상태를 평가하는 단계는 상기 동작의 지속 기간이 상기 하위 임계치 미만이라는 판정에 응답하여 상기 메모리 블록을 불량(bad)으로서 마킹하는 단계를 포함하는, 방법.12. The method of claim 11, wherein evaluating the health state comprises marking the memory block as bad in response to a determination that the duration of the operation is less than the lower threshold. 제11항에 있어서, 상기 헬스 상태를 평가하는 단계는 상기 동작의 지속 기간이 상기 상위 임계치 초과라는 판정에 응답하여 상기 메모리 블록을 불량으로서 마킹하는 단계를 포함하는, 방법.12. The method of claim 11, wherein evaluating the health state comprises marking the memory block as bad in response to a determination that the duration of the operation exceeds the upper threshold. 제11항에 있어서, 상기 헬스 상태를 평가하는 단계는 상기 동작의 지속 기간이 상기 하위 임계치 미만이라는 판정에 응답하여 상기 메모리 블록을 부가적인 평가의 대상으로서 마킹하는 단계를 포함하는, 방법.12. The method of claim 11, wherein evaluating the health state comprises marking the memory block as an object of further evaluation in response to a determination that the duration of the operation is less than the lower threshold. 제11항에 있어서, 상기 헬스 상태를 평가하는 단계는 상기 동작의 지속 기간에 의존하여 상기 메모리 블록에서의 후속 데이터 저장을 위한 저장 구성을 설정하는 단계를 포함하는, 방법.12. The method of claim 11, wherein evaluating the health state comprises setting a storage configuration for subsequent data storage in the memory block depending on the duration of the operation. 데이터 저장을 위한 장치로서,
다수의 아날로그 메모리 셀들을 포함하는 메모리; 및
저장 회로
를 포함하고,
상기 저장 회로는,
상기 메모리 셀들의 그룹에, 상기 그룹 내의 상기 메모리 셀들을 각각의 아날로그 값들로 설정하는 동작을 적용하고;
상기 메모리 셀들의 상기 그룹에 적용된 상기 동작의 지속 기간을 판정하고;
상기 동작의 지속 기간에 관해 미리 정의된 범위의 상위 임계치 및 하위 임계치에 상기 동작의 지속 기간을 비교한 것에 기초하여, 상기 그룹을 포함하는 상기 메모리 내의 메모리 블록의 헬스 상태를 평가하도록
구성되는, 장치.
An apparatus for data storage,
A memory including a plurality of analog memory cells; And
Storage circuit
Lt; / RTI &gt;
The storage circuit comprising:
Applying to the group of memory cells an operation of setting the memory cells in the group to respective analog values;
Determine a duration of the operation applied to the group of memory cells;
Evaluating a health state of a memory block in the memory that includes the group based on comparing the duration of the operation with an upper threshold and a lower threshold of a predefined range for the duration of the operation
Lt; / RTI &gt;
제18항에 있어서, 상기 동작은 데이터에 따라 상기 그룹 내의 상기 메모리 셀들을 프로그램하는 프로그래밍 프로세스를 포함하는, 장치.19. The apparatus of claim 18, wherein the operation comprises a programming process for programming the memory cells in the group according to data. 제18항에 있어서, 상기 동작은 상기 메모리 셀들의 상기 그룹을 소거하는 소거 동작을 포함하는, 장치.19. The apparatus of claim 18, wherein the operation includes an erase operation to erase the group of memory cells.
KR1020147023284A 2012-01-24 2013-01-16 Adaptive programming and erasure schemes for analog memory cells KR101635695B1 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US13/356,694 2012-01-24
US13/356,694 US9009547B2 (en) 2011-01-27 2012-01-24 Advanced programming verification schemes for analog memory cells
US13/471,484 2012-05-15
US13/471,484 US9293194B2 (en) 2011-01-27 2012-05-15 Programming and erasure schemes for analog memory cells
PCT/US2013/021756 WO2013112336A2 (en) 2012-01-24 2013-01-16 Programming and erasure schemes for analog memory cells

Publications (2)

Publication Number Publication Date
KR20140117583A KR20140117583A (en) 2014-10-07
KR101635695B1 true KR101635695B1 (en) 2016-07-01

Family

ID=48874052

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147023284A KR101635695B1 (en) 2012-01-24 2013-01-16 Adaptive programming and erasure schemes for analog memory cells

Country Status (6)

Country Link
EP (1) EP2807650A2 (en)
JP (1) JP6001093B2 (en)
KR (1) KR101635695B1 (en)
CN (1) CN104067348B (en)
TW (1) TWI523011B (en)
WO (1) WO2013112336A2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9135975B2 (en) 2013-10-28 2015-09-15 Qualcomm Incorporated Write pulse width scheme in a resistive memory
IT201600121618A1 (en) * 2016-11-30 2018-05-30 St Microelectronics Srl METHOD OF REDUCING THE DURATION OF A MEMORY OPERATION IN A NON-VOLATILE MEMORY DEVICE AND ITS RELATIVE NON-VOLATILE MEMORY DEVICE
KR102533072B1 (en) * 2018-08-13 2023-05-17 에스케이하이닉스 주식회사 Memory system and operation method for determining availability based on block status

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001093287A (en) 1999-09-24 2001-04-06 Sony Corp Nonvolatile semiconductor memory
US20060158940A1 (en) * 2005-01-19 2006-07-20 Saifun Semiconductors, Ltd. Partial erase verify
JP2011008913A (en) 2007-02-20 2011-01-13 Sandisk Corp Variable programming for nonvolatile storage

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10199263A (en) * 1996-12-30 1998-07-31 Sony Corp Non-volatile semiconductor memory device
US20050128807A1 (en) * 2003-12-05 2005-06-16 En-Hsing Chen Nand memory array incorporating multiple series selection devices and method for operation of same
KR100719368B1 (en) * 2005-06-27 2007-05-17 삼성전자주식회사 Apparatus and Method for Adaptive Incremental Step Pulse Programming in Flash Memory Device
US7656710B1 (en) * 2005-07-14 2010-02-02 Sau Ching Wong Adaptive operations for nonvolatile memories
KR100843037B1 (en) * 2007-03-27 2008-07-01 주식회사 하이닉스반도체 Flash memory apparatus and method of erasing thereof
US8085586B2 (en) * 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
JP2010027165A (en) * 2008-07-22 2010-02-04 Toshiba Corp Nonvolatile semiconductor storage device and its data writing method
JP2010123210A (en) * 2008-11-20 2010-06-03 Toshiba Corp Semiconductor memory device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001093287A (en) 1999-09-24 2001-04-06 Sony Corp Nonvolatile semiconductor memory
US20060158940A1 (en) * 2005-01-19 2006-07-20 Saifun Semiconductors, Ltd. Partial erase verify
JP2011008913A (en) 2007-02-20 2011-01-13 Sandisk Corp Variable programming for nonvolatile storage

Also Published As

Publication number Publication date
EP2807650A2 (en) 2014-12-03
CN104067348B (en) 2017-04-05
WO2013112336A3 (en) 2013-09-26
WO2013112336A2 (en) 2013-08-01
KR20140117583A (en) 2014-10-07
JP6001093B2 (en) 2016-10-05
JP2015510653A (en) 2015-04-09
CN104067348A (en) 2014-09-24
TW201346909A (en) 2013-11-16
TWI523011B (en) 2016-02-21

Similar Documents

Publication Publication Date Title
KR101412418B1 (en) Enhanced programming and erasure schemes for analog memory cells
US7864573B2 (en) Programming analog memory cells for reduced variance after retention
US8000135B1 (en) Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US7924587B2 (en) Programming of analog memory cells using a single programming pulse per state transition
US8085586B2 (en) Wear level estimation in analog memory cells
US7773413B2 (en) Reliable data storage in analog memory cells in the presence of temperature variations
US8527819B2 (en) Data storage in analog memory cell arrays having erase failures
US7751240B2 (en) Memory device with negative thresholds
US9153329B2 (en) Selective re-programming of analog memory cells
EP2777046B1 (en) Defective word line detection
US7924623B2 (en) Method for memory cell erasure with a programming monitor of reference cells
US8792281B2 (en) Read threshold estimation in analog memory cells using simultaneous multi-voltage sense
WO2017044165A1 (en) Verify operations using different sense node voltages in a memory device
US8482978B1 (en) Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US9293194B2 (en) Programming and erasure schemes for analog memory cells
KR101635695B1 (en) Adaptive programming and erasure schemes for analog memory cells
US8649200B2 (en) Enhanced programming and erasure schemes for analog memory cells

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190530

Year of fee payment: 4