KR101635695B1 - Adaptive programming and erasure schemes for analog memory cells - Google Patents
Adaptive programming and erasure schemes for analog memory cells Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/021—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5628—Programming or writing circuits; Data input circuits
- G11C11/5635—Erasing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/344—Arrangements for verifying correct erasure or for detecting overerased cells
- G11C16/3445—Circuits or methods to verify correct erasure of nonvolatile memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online 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.
Description
본 발명은 일반적으로 데이터 저장에 관한 것이며, 특히 아날로그 메모리 셀들의 프로그래밍 및 소거를 위한 방법들 및 시스템들펄스 후 셀 임계 전압들을에 관한 것이다.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은 본 발명의 실시예에 따라, 아날로그 메모리 셀들의 그룹의 헬스 레벨을 평가하기 위한 방법을 개략적으로 예시하는 흐름도.≪ 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
시스템(20)은 메모리 셀 어레이(28)에 데이터를 저장하는, 메모리 디바이스(24)를 포함한다. 메모리 어레이는 다수의 메모리 블록들(34)을 포함한다. 각각의 메모리 블록(34)은 다수의 아날로그 메모리 셀들(32)을 포함한다. 본 특허 출원의 맥락에서 그리고 청구항들에서, 용어 "아날로그 메모리 셀"은 전압 또는 전하와 같은, 물리적 파라미터의 연속적인, 아날로그 값을 유지하는 임의의 메모리 셀을 설명하기 위해 사용된다. 어레이(28)는 예를 들면, NAND, NOR 및 전하 트랩 플래시(CTF) 플래시 셀들, 상 변화 RAM(PRAM, 상 변화 메모리 - PCM으로도 지칭됨), 질화물 판독 전용 메모리(NROM), 강유전성 RAM(FRAM), 자기 RAM(MRAM) 및/또는 동적 RAM(DRAM) 셀들과 같은, 임의의 종류의 아날로그 메모리 셀들을 포함할 수 있다.The
셀들에 저장된 전하 레벨들 및/또는 셀들로 기록되며 그로부터 판독되는 아날로그 전압들 또는 전류들은 본 명세서에서 총괄하여 아날로그 값들, 아날로그 저장 값들 또는 저장 값들로 지칭된다. 저장 값들은, 예를 들면, 임계 전압들 또는 임의의 다른 적절한 종류의 저장 값들을 포함할 수 있다. 시스템(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.
메모리 디바이스(24)는 판독/기록(R/W) 유닛(36)을 포함하며, 이는 메모리 디바이스에서의 저장을 위한 데이터를 아날로그 저장 값들로 변환하고 그들을 메모리 셀들(32)에 기록한다. 대안적인 실시예들에서, R/W 유닛은 변환을 수행하지 않지만, 전압 샘플들을, 즉 셀들에서의 저장을 위한 저장 값들을 제공받는다. 어레이(28)로부터 데이터를 판독할 때, R/W 유닛(36)은 메모리 셀들(32)의 저장 값들을 하나 이상의 비트들의 분해능을 가진 디지털 샘플들로 변환한다. 데이터는 전형적으로 페이지들로 지칭되는 그룹들 내의 메모리 셀들로 기록되며 그로부터 판독된다. 몇몇 실시예들에서, R/W 유닛은 하나 이상의 음(negative)의 소거 펄스들을 셀들에 인가함으로써 셀들(32)의 그룹을 소거할 수 있다. 소거는 전형적으로 전체 메모리 블록들에서 수행된다.The
메모리 디바이스(24)에서의 및 그로부터의 데이터의 저장 및 검색은 메모리 제어기(40)에 의해 수행된다. 메모리 제어기는 메모리 디바이스(24)와 통신하기 위한 인터페이스(44), 및 다양한 메모리 관리 기능들을 수행하는 프로세서(48)를 포함한다. 메모리 제어기(40)는 메모리 디바이스에서의 저장을 위한 데이터를 수용하기 위해, 그리고 메모리 디바이스로부터 검색된 데이터를 출력하기 위해 호스트(52)와 통신한다. 메모리 제어기(40), 및 특히 프로세서(48)는 하드웨어로 구현될 수 있다. 대안적으로, 메모리 제어기는 적합한 소프트웨어 또는 하드웨어 및 소프트웨어 요소들의 조합을 구동하는 마이크로프로세서를 포함할 수 있다.The storage and retrieval of data at and at the
도 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
몇몇 실시예들에서, 메모리 제어기(40)는 범용 프로세서를 포함하며, 이는 본 명세서에 설명된 기능들을 수행하기 위해 소프트웨어로 프로그램된다. 소프트웨어는 예를 들어 네트워크를 통해, 전자 형태로 프로세서에 다운로드될 수 있거나, 그것은 대안적으로 또는 부가적으로, 자기, 광학, 또는 전자 메모리와 같은, 비-일시적 유형 매체(non-transitory tangible media) 상에 제공되고/되거나 저장될 수 있다.In some embodiments, the
어레이(28)의 예시적인 구성에서, 메모리 셀들(32)은 다수의 행들 및 열들로 배열되며, 각각의 메모리 셀은 플로팅-게이트 트랜지스터(floating-gate transistor)를 포함한다. 각각의 행에서의 트랜지스터들의 게이트들은 워드 라인들에 의해 접속되며, 각각의 열에서의 트랜지스터들의 소스들은 비트 라인들에 의해 접속된다. 메모리 어레이는 전형적으로 다수의 페이지들, 즉 동시에 프로그램되고 판독되는 메모리 셀들의 그룹들로 분할된다. 페이지들은 때때로 섹터들로 세분된다. 몇몇 실시예들에서, 각각의 페이지는 어레이의 전체 행을 포함한다. 대안적인 실시예들에서, 각각의 행(워드 라인)은 2개 이상의 페이지들로 분할될 수 있다. 예를 들면, 몇몇 디바이스들에서 각각의 행은 2개의 페이지들로 분할되며, 하나는 홀수-차수 셀들을 포함하고 다른 하나는 짝수-차수 셀들을 포함한다.In an exemplary configuration of
전형적으로, 메모리 제어기(40)는 페이지 단위들로 데이터를 프로그램하지만, 전체 메모리 블록들(34)을 소거한다. 전형적으로, 필수적인 것은 아니지만, 메모리 블록은 대략 106 메모리 셀들인 반면, 페이지는 대략 103 내지 104 메모리 셀들이다.Typically, the
이어지는 설명은 어레이(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
도 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
몇몇 실시예들에서, R/W 유닛(36)은 반복적 프로그래밍 및 검증(P&V) 프로세스를 사용하여 데이터에 따라 주어진 워드 라인(64)에서 메모리 셀들의 그룹(예로서, 워드 라인에서의 모든 메모리 셀들, 홀수-차수 셀들 또는 짝수-차수 셀들)을 프로그램한다. 이러한 프로세스에서, 유닛(36)은 셀들의 그룹에 프로그래밍 펄스들의 시퀀스를 인가하며, 각각의 펄스 후 그룹 내의 셀들의 임계 전압들을 검증한다. 유닛(36)은 그들의 의도된 임계 전압들에 도달한 셀들의 후속 프로그래밍을 금지하며, 이로써 후속 펄스들은 단지 의도된 임계 전압들에 아직 도달하지 않는 이들 셀들에만 선택적으로 인가된다.In some embodiments, the R /
P&V 프로세스 동안, 유닛(36)은 적합한 전압들에 따라 다양한 워드 라인들(64) 및 비트 라인들(68)을 바이어싱한다. 도 2의 예는 3개의 워드 라인들(64)을 도시하며, 그의 중간 워드 라인이 프로그램된다. 본 예는 P&V 프로세스 동안 특정 인스턴스를 도시하며, 여기서 메모리 셀(72)이 프로그램된다(그것이 그의 의도된 임계 전압에 아직 도달하지 않았기 때문). 동시에, 동일한 워드 라인에서의 메모리 셀(80)은 그것이 그의 의도된 임계 전압에 이미 도달하였기 때문에 프로그램되는 것이 금지된다. 메모리 셀(80)과 같은, 다른 워드 라인들에서의 메모리 셀들은 프로그램되지 않는다.During the P & V process, the
적절한 메모리 셀들을 프로그램하기 위해, R/W 유닛(36)은 Vpgm으로 표시된 프로그래밍 전압에 따라 중간 워드 라인을, 그리고 Vpass_pgm으로 표시된 패스 전압에 따라 블록 내의 다른 워드 라인들을 바이어싱한다. 유닛(36)은 Vbitline_pgm으로 표시된 비트 라인 프로그래밍 전압에 따라 프로그램될 비트 라인들, 및 Vbitline_inhibit로 표시된 비트 라인 금지 전압에 따라 프로그램되는 것이 금지될 비트 라인들을 바이어싱한다.To program the appropriate memory cells, the R /
도 3a는 본 발명의 실시예에 따라, 아날로그 메모리 셀들(28)의 그룹을 프로그램하는 프로세스를 개략적으로 예시하는 다이어그램이다. 본 예는 데이터에 따라 프로그램되는 2 비트들/셀 메모리 셀들의 그룹(예로서, 워드 라인에서의 모든 메모리 셀들, 홀수-차수 셀들 또는 짝수-차수 셀들)을 도시한다. 각각의 셀은 4개의 임계 전압 분포들(84A…84D)에 대응하는 4개의 가능한 프로그래밍 레벨들(프로그래밍 상태들로도 지칭됨) 중 하나로 프로그램가능하다. 각각의 프로그래밍 레벨은 각각의 2-비트 데이터 값에 대응한다. 음의 임계 전압들에 대응하는 프로그래밍 레벨(84A)은 또한 소거 레벨로서 작용한다. 프로그래밍이 개시되기 전에, 그룹 내의 모든 메모리 셀들은 소거 레벨로 설정된다.3A is a diagram schematically illustrating a process of programming a group of
몇몇 실시예들에서, R/W 유닛(36)은 전술된 바와 같이, 반복적 P&V 프로세스를 사용하여 그룹 내의 메모리 셀들을 프로그램한다. 주어진 프로그래밍 펄스 후 셀 임계 전압들을 검증할 때, 유닛(36)은 하나 이상의 검증 임계치들에 셀 임계 전압들을 비교한다. 사전 설정된 예에서, 유닛(36)은 3개의 검증 임계치들(88A...88C)을 사용하며, 이는 각각 프로그래밍 레벨들(84B...84D)에 대응한다. 소정 프로그래밍 레벨로 프로그램되도록 의도되는 소정 메모리 셀의 임계 전압이 상기 프로그래밍 레벨의 검증 임계치를 초과할 때, 메모리 셀은 후속 프로그래밍 펄스들을 수신하는 것이 금지된다. 금지는 전형적으로 Vbitlie_pgm에서 Vbitline_inhibit로 셀의 비트 라인 전압을 변경함으로써 수행된다.In some embodiments, the R /
(본 예는 명료함을 위해 모두 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
도 3b는 본 발명의 실시예에 따라, 아날로그 메모리 셀들(28)의 그룹을 소거하는 프로세스를 개략적으로 예시하는 다이어그램이다. 소거 프로세스는 전형적으로 전체 블록(34)에 동시에 적용된다. 소거 프로세스에서, 유닛(36)은 시퀀스 또는 소거 펄스들을 메모리 셀들에 인가하며, 그들을 소거 임계치(92)에 비교함으로써 셀 임계 전압들을 검증한다. 소거 절차는 블록 내의 모든 메모리 셀들(또는 몇몇 실시예들에서 미리 정의된 제어된 수의 셀들)이 임계치(92)보다 낮은 임계 전압들을 가질 때까지 계속된다.Figure 3B is a diagram schematically illustrating a process for erasing a group of
도 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 /
유닛(36)은 다양한 방식들로 진행을 평가할 수 있으며, 즉 다양한 종류들의 스위칭 조건들을 정의 및 평가한다. 예를 들면, 유닛(36)은 그룹 내의 메모리 셀들의 미리 정의된 비율이 그들의 의도된 임계 전압들에 도달하였는지(예로서, 프로그래밍 동작에 대한 적절한 검증 임계치를 초과하였는지 또는 소거 동작을 위한 소거 임계치 아래로 떨어졌는지)의 여부를 검사할 수 있다. 소거 동작에서, 유닛(36)은 제1 소거 펄스 후 또는 2개의 소거 펄스들 후 충분히 소거되는 셀들의 수를 평가할 수 있다. 대안적인 실시예들에서, 유닛(36)은 반복적 프로세스의 2개 이상의 상이한 검증 단계들로부터 셀 카운트들을 조합할 수 있다.
이러한 종류의 조건을 사용할 때, R/W 유닛(36)은 데이터가 프로그래밍 레벨들 중에서 스크램블링(scrambled)되거나 달리 동일하게-분포된다고 추정할 수 있다. 대안적인 실시예들에서, R/W 회로는 프로그래밍 동작을 개시하기 전에 각각의 프로그래밍 레벨에서 셀들의 수를 결정하거나 임의의 다른 적합한 방식으로 이 정보를 획득할 수 있다.When using this kind of condition, the R /
다른 예시적인 스위칭 조건은 미리 정의된 수의 반복들을 수행한 후, 즉 미리 정의된 수의 프로그래밍 또는 소거 펄스들을 인가한 후 프로그래밍 또는 소거 파라미터들을 수정하는 것이다. 추가로 대안적으로, 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 . ≪ / RTI >
부가적으로 또는 대안적으로, 프로그래밍 동작에서, 수정된 파라미터는 비선택 워드 라인들에 인가된 패스 전압(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
다른 예시적인 실시예에서, 유닛(36)은 큰 소거 펄스 전압에 따라 소거 프로세스를 시작한다. 성공적으로-소거된 메모리 셀들의 비율이 소정의 미리 정의된 값에 도달할 때, 유닛(36)은 후속 펄스들에 대한 소거 펄스 전압을 감소시킨다.In another exemplary embodiment, the
다른 실시예에서, R/W 유닛(36)은 Vpgm의 함수로서 바이어싱 전압들(예로서, Vbitline_pgm, Vbitline_inhibit, Vpass_pgm) 중 하나 이상을 수정한다. 이러한 종류의 프로그래밍은 유닛(36)이 워드 라인 및/또는 비트 라인 전압들을 최적화하며, 메모리 셀들을 효율적으로 프로그램할 수 있게 한다.In another embodiment, the R /
전압 최적화는, 예를 들면, 인접한 메모리 셀들(인접한 워드 라인들 및/또는 인접한 비트 라인들 상의)로부터의 프로그램 디스터브(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
프로그래밍 또는 소거 프로세스 동안 몇몇 포인트에서, 유닛(36)은 진행 평가 단계(100)에서, 프로세스의 진행을 평가한다. 유닛(36)은 완료 검사 단계(104)에서 프로세스가 완료되었는지의 여부를 검사한다. 유닛(36)은 예를 들면, 모든 셀들이 그들의 의도된 임계 전압들에 도달하였는지를 검사할 수 있다. 프로세스가 완료된 경우, 방법은 종료 단계(108)에서 종료한다.At some point during the programming or erasing process, the
그렇지 않다면, 유닛(36)은 스위칭 조건 평가 단계(112)에서, 미리 정의된 스위칭 조건(상기 단계(100)에서 평가된 진행에 기초하여)이 충족되는지의 여부를 검사한다. 반복적 프로세스의 진행이 스위칭 조건을 만족한 경우, 유닛(36)은 파라미터 수정 단계(116)에서, 반복적 프로세스의 파라미터들 중 하나 이상을 수정한다. 방법은 이어서 유닛(36)이 반복적 프로세스의 진행을 계속해서 추적하는 상기 단계(100)로 되돌아간다.Otherwise, the
데이터에 기초하여 프로세스 파라미터들을 프로그램하는 Programming the process parameters based on the data 적응적Adaptive 설정 Set
몇몇 실시예들에서, R/W 유닛(36)은 현재 메모리 셀들 중 하나 이상에 저장되는 데이터에 기초하여 반복적 프로그래밍 또는 소거 프로세스의 하나 이상의 파라미터들을 설정한다. 임의의 적합한 프로그래밍 또는 소거 프로세스 파라미터가 상기 열거된 파라미터들과 같이(예로서, ISPP, 시퀀스에서의 초기 펄스의 진폭 또는 지속 기간, 및/또는 임의의 워드 라인 또는 비트 라인 전압), 이러한 방식으로 설정될 수 있다.In some embodiments, the R /
예를 들면, 메모리 셀들(예로서, 페이지)의 그룹을 프로그램할 때, 유닛(36)은 프로그램된 그룹과 동일한 워드 라인에 저장되는 데이터에 기초하여, 그리고/또는 하나 이상의 다른(예로서, 인접한) 워드 라인들에 저장되는 데이터에 기초하여 프로그래밍 파라미터들을 설정할 수 있다. 예를 들면, 유닛(36)은 인접한 워드 라인에서의 대응하는 셀들에서의 데이터(또는 임계 전압들)에 기초하여 Vbitline_pgm을 프로그램된 그룹의 워드 라인 미만 또는 초과로 설정할 수 있다. 몇몇 실시예들에서, 유닛(36)은 먼저 프로그래밍 파라미터들을 설정하기 위해 사용되는 데이터를 판독하며 프로그래밍 이전에 대안적인 위치에서 데이터를 저장할 수 있다.For example, when programming a group of memory cells (e.g., pages), the
다른 예로서, 블록을 소거할 때, 유닛(36)은 블록에 저장되는 데이터에 기초하여 소거 프로세스의 하나 이상의 파라미터들을 설정할 수 있다. 예를 들면, 유닛(36)은 소거 이전에 블록에서 프로그램되는 워드 라인들의 수의 함수로서 소거 프로세스의 파라미터들을 설정할 수 있다. 예시적인 실시예에서, 유닛(36)은 블록에서의 워드 라인들 모두가 프로그램된다면 하나의 소거 전압(Verase)을, 그리고 워드 라인들의 단지 일부만이 프로그램된다면 상이한 소거 전압을 설정한다. 몇몇 실시예들에서, 프로그램된 워드 라인들의 수에 관한 지시가 메모리 제어기(40)에 의해 유닛(36)에 제공된다. 다른 실시예들에서, 유닛(36)은 메모리 제어기에 상관없이 프로그램된 워드 라인들의 수를 결정한다. 몇몇 실시예들에서, 유닛(36)은 블록에서의 프로그램된 워드 라인들의 수에 기초하여 프로그래밍 프로세스의 하나 이상의 파라미터들을 변경한다.As another example, when erasing a block, the
또 다른 예로서, 블록이 높은 임계 전압들로 프로그램되는 다수의 메모리 셀들을 포함한 경우, 유닛(36)은 소거 펄스들의 초기 진폭을 높은 값으로 설정할 수 있으며, 그 역 또한 마찬가지이다.As another example, if the block includes a plurality of memory cells programmed with high threshold voltages, the
도 5는 본 발명의 실시예에 따라, 아날로그 메모리 셀들(32)의 그룹을 프로그램하기 위한 방법을 개략적으로 예시하는 흐름도이다. 도 5의 설명은 메모리 셀들의 그룹에서 프로그래밍 프로세스를 나타내지만, 유사한 방법이 또한 소거 프로세스에서 사용될 수 있다.5 is a flow diagram that schematically illustrates a method for programming a group of
방법은 독출(readout) 단계(120)에서, 하나 이상의 메모리 셀들로부터 데이터를 판독하는 유닛(36)으로 시작한다. 판독 메모리 셀들은 프로그램될 메모리 셀들의 그룹에 속하거나 속하지 않을 수 있다. 단계(120)에서 판독된 데이터에 기초하여, 유닛(36)은 파라미터 설정 단계(124)에서, 프로그래밍 프로세스의 하나 이상의 파라미터들을 설정한다. 유닛(36)은 이어서 프로그래밍 단계(128)에서, 설정된 파라미터들을 가진 반복적 프로그래밍 프로세스를 사용하여 메모리 셀들의 그룹에 데이터를 저장한다.The method begins with a
프로그래밍 프로세스의 성능에 기초한 소거 프로세스 파라미터들의 설정Setting of erase process parameters based on the performance of the programming process
몇몇 실시예들에서, 유닛(36)은 메모리에 적용된 프로그래밍 동작의 성능에 기초하여, 메모리 셀들의 그룹에 적용될 소거 동작을 구성한다. 전형적으로, 필수적인 것은 아니지만, 주어진 셀들 그룹(예로서, 블록)에 대한 소거 동작은 그룹 내에서 하나 이상의 메모리 셀들에(예로서, 블록 내에서의 페이지에) 적용된 프로그래밍 동작의 성능에 기초하여 구성된다.In some embodiments, the
이러한 기술은 프로그래밍 동작에(전형적으로 양-전압 프로그래밍 펄스들의 인가에) 대한 메모리 셀들의 응답성이 소거 동작에(전형적으로 음-전압 프로그래밍 펄스들의 인가에) 대한 메모리 셀들의 응답성을 나타낸다는 사실에 기초한다. 유닛(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
예를 들면, 유닛(36)은 프로그래밍 동작의 프로그래밍 시간(지속 기간), 예로서 동작의 개시와 완료 사이에서 경과하는 시간, 또는 프로그래밍 동작에서 수행된 P&V 반복들의 수를 측정할 수 있다. 유닛(36)은 이어서 측정된 프로그래밍 시간에 기초하여 소거 동작을 구성할 수 있다. 예시적인 실시예에서, 유닛(36)은 반복 횟수의 함수로서 그들의 의도된 프로그래밍 레벨에 도달한 셀들의 수 또는 비율을 측정할 수 있다. 다시 말해서, 유닛(36)은 성공적으로-프로그램된 셀들의 수의 누적 분포 함수(Cumulative Distribution Function, CDF)를 평가할 수 있다.For example,
유닛(36)은 소거 펄스들의 초기 크기 또는 지속 기간, 연속적 소거 펄스들 사이의 증분 및/또는 소거 동안 인가된 임의의 비트 라인 또는 워드 라인 전압과 같이, 프로그래밍 동작의 성능에 기초하여 임의의 적합한 소거 파라미터를 설정함으로써 소거 동작을 구성할 수 있다.The
도 6은 본 발명의 실시예에 따라, 아날로그 메모리 셀들(32)의 그룹을 소거하기 위한 방법을 개략적으로 예시하는 흐름도이다. 도 6의 설명은 메모리 셀들의 동일한 그룹의 프로그래밍 및 소거를 나타낸다. 그러나, 일반적으로, 개시된 기술은 다른 그룹을 프로그램하는 성능에 기초하여 메모리 셀들의 소정 그룹을 소거하기 위해 사용될 수 있다. 2개의 그룹들이 공동으로 메모리 셀들을 갖거나 갖지 않을 수 있다.6 is a flow diagram that schematically illustrates a method for erasing a group of
방법은 유닛(36)이 프로그래밍 단계(132)에서, 프로그래밍 동작(예로서, P&V 프로세스)을 수행함으로써 데이터에 따라 메모리 셀들의 그룹을 프로그램하는 것으로 시작한다. 유닛(36)은 성능 추정 단계(136)에서, 프로그래밍 동작의 성능 측정치를 추정한다. 예를 들면, 유닛(36)은 프로그래밍 시간(프로그래밍 지속 기간), 또는 임의의 다른 적합한 성능 측정치를 추정할 수 있다.The method begins with the
프로그래밍 동작의 추정된 성능 측정치에 기초하여, 유닛(36)은 소거 구성 단계(140)에서, 메모리 셀들의 그룹에 적용될 소거 동작을 구성한다. 유닛(36)은 소거 단계(144)에서, 구성된 소거 동작을 사용하여 메모리 셀들의 그룹을 소거한다.Based on the estimated performance measure of the programming operation, the
몇몇 실시예들에서, 유닛(36) 또는 메모리 제어기(40)는 블록에 적용된 프로그래밍 및 소거(P/E) 사이클들의 수에 기초하여서와 같이, 다른 성능 측정치들에 기초하여 소정 메모리 블록에 대한 소거 동작을 구성할 수 있다. 일 실시예에서, 프로그래밍 후, 유닛(36) 또는 메모리 제어기(40)는 블록의 수명의 몇몇 지시를 기록할 수 있으며, 소거 동작을 구성하기 위해 소거 이전에 이러한 지시를 검색할 수 있다.In some embodiments, the
프로그래밍 또는 소거 성능에 기초한 헬스 레벨 평가Health level evaluation based on programming or erasing performance
몇몇 실시예들에서, 유닛(36)은 메모리 셀들의 그룹에 적용된 반복적 프로그래밍 또는 소거 프로세스의 성능을 측정하며, 측정된 성능에 기초하여 메모리 셀들의 헬스 상태를 평가한다. 이어지는 설명은, 개시된 기술이 다른 적합한 성능 측정치들과 함께 사용될 수 있을지라도, 프로그래밍 또는 소거 프로세스의 지속 기간을 측정하는 것을 나타낸다.In some embodiments, the
실시예에서, 유닛(36)은 메모리 셀들의 상이한 그룹들의 프로그래밍 또는 소거 시간을 측정한다. 미리 정의된 범위로부터 벗어난(예로서, 소정 하위 임계치 미만 및/또는 소정 상위 임계치 초과) 프로그래밍 또는 소거 시간은 메모리 셀들이 취약한 헬스 상태에 있으며 신뢰가능하지 않거나 곧 고장날 수 있음을 지시할 수 있다.In an embodiment,
몇몇 실시예들에서, 메모리 제어기(40)는 블록의(또는 블록에서의 메모리 셀 그룹들의) 프로그래밍 또는 소거 시간이 미리 정의된 범위로부터 벗어난 경우 주어진 메모리 블록을 불량으로서 또는 의심(suspicious)으로서 마킹한다. 불량 블록은 전형적으로 서비스 불가능으로 취해진다. 의심 블록은 전형적으로 그것을 불량으로 마킹하기 전에 부가적인 평가의 대상이 된다. 메모리 제어기는 블록에 대한 평균 프로그래밍 또는 소거 시간, 블록에 대한 최대 또는 최소 프로그래밍 또는 소거 시간, 또는 블록과 연관된 프로그래밍 또는 소거 시간의 임의의 다른 적합한 측정치에 기초하여 블록을 불량 또는 의심으로서 마킹할 수 있다.In some embodiments, the
실시예에서, 메모리 제어기는 반복 횟수의 함수 또는 성공적으로-프로그램된 셀들의 수의 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
도 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 /
전술된 실시예들은 예로서 인용되며 본 발명은 특히 본 명세서에서 도시되고 전술된 것에 제한되지 않는다는 것이 이해될 것이다. 오히려, 본 발명의 범주는 본 명세서에서 전술된 다양한 특징들의 조합들 및 하위-조합들 둘 모두뿐만 아니라, 전술한 설명을 읽을 때 당업자에게 떠오를 것이고 종래 기술에서 개시되지 않은 변형들 및 수정들을 포함한다. 본 특허 출원에 참고로 포함된 문헌들은, 임의의 용어들이 본 명세서에서 명시적으로 또는 암시적으로 이루어진 정의들과 모순되는 방식으로 이들 포함된 문헌들에 정의되는 경우를 제외하고 본 출원의 통합 부분으로 고려되어야 하며, 오직 본 명세서에서의 정의들만이 고려되어야 한다.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 >
다수의 아날로그 메모리 셀들을 포함하는 메모리; 및
저장 회로
를 포함하고,
상기 저장 회로는,
상기 메모리 내의 상기 메모리 셀들 중 적어도 하나의 메모리 셀에 저장된 하나 이상의 데이터 값들에 기초하여 상기 메모리 셀들의 그룹에 적용된 반복적 프로세스의 파라미터를 설정하고;
상기 설정된 파라미터에 따라 상기 메모리 셀들의 상기 그룹에서 상기 반복적 프로세스를 수행하고;
상기 반복적 프로세스의 지속 기간을 판정하고;
상기 반복적 프로세스의 지속 기간에 관해 미리 정의된 범위의 상위 임계치 및 하위 임계치에 상기 반복적 프로세스의 지속 기간을 비교한 것에 의존하여 상기 메모리 셀들의 상기 그룹의 헬스 상태를 평가하도록
구성되는, 장치.An apparatus for data storage,
A memory including a plurality of analog memory cells; And
Storage circuit
Lt; / RTI >
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 >
다수의 아날로그 메모리 셀들을 포함하는 메모리에서, 상기 메모리 셀들의 그룹에, 상기 그룹 내의 상기 메모리 셀들을 각각의 아날로그 값들로 설정하는 동작을 적용하는 단계;
상기 메모리 셀들의 상기 그룹에 적용된 상기 동작의 지속 기간을 판정하는 단계; 및
상기 동작의 지속 기간에 관해 미리 정의된 범위의 상위 임계치 및 하위 임계치에 상기 동작의 지속 기간을 비교한 것에 기초하여, 상기 그룹을 포함하는 상기 메모리 내의 메모리 블록의 헬스 상태를 평가하는 단계를 포함하는, 방법.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.
다수의 아날로그 메모리 셀들을 포함하는 메모리; 및
저장 회로
를 포함하고,
상기 저장 회로는,
상기 메모리 셀들의 그룹에, 상기 그룹 내의 상기 메모리 셀들을 각각의 아날로그 값들로 설정하는 동작을 적용하고;
상기 메모리 셀들의 상기 그룹에 적용된 상기 동작의 지속 기간을 판정하고;
상기 동작의 지속 기간에 관해 미리 정의된 범위의 상위 임계치 및 하위 임계치에 상기 동작의 지속 기간을 비교한 것에 기초하여, 상기 그룹을 포함하는 상기 메모리 내의 메모리 블록의 헬스 상태를 평가하도록
구성되는, 장치.An apparatus for data storage,
A memory including a plurality of analog memory cells; And
Storage circuit
Lt; / RTI >
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 >
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)
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)
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)
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 |
-
2013
- 2013-01-16 WO PCT/US2013/021756 patent/WO2013112336A2/en active Application Filing
- 2013-01-16 JP JP2014554739A patent/JP6001093B2/en active Active
- 2013-01-16 CN CN201380006438.4A patent/CN104067348B/en active Active
- 2013-01-16 EP EP13701345.4A patent/EP2807650A2/en not_active Withdrawn
- 2013-01-16 KR KR1020147023284A patent/KR101635695B1/en active IP Right Grant
- 2013-01-23 TW TW102102523A patent/TWI523011B/en active
Patent Citations (3)
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 |