KR101606168B1 - Non-volatile multilevel memory with adaptive setting of reference voltage levels for program, verify and read - Google Patents

Non-volatile multilevel memory with adaptive setting of reference voltage levels for program, verify and read Download PDF

Info

Publication number
KR101606168B1
KR101606168B1 KR1020107026822A KR20107026822A KR101606168B1 KR 101606168 B1 KR101606168 B1 KR 101606168B1 KR 1020107026822 A KR1020107026822 A KR 1020107026822A KR 20107026822 A KR20107026822 A KR 20107026822A KR 101606168 B1 KR101606168 B1 KR 101606168B1
Authority
KR
South Korea
Prior art keywords
storage elements
voltages
volatile storage
sets
data
Prior art date
Application number
KR1020107026822A
Other languages
Korean (ko)
Other versions
KR20110018336A (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 US12/111,748 external-priority patent/US7808836B2/en
Priority claimed from US12/111,729 external-priority patent/US7808819B2/en
Application filed by 샌디스크 아이엘 엘티디 filed Critical 샌디스크 아이엘 엘티디
Publication of KR20110018336A publication Critical patent/KR20110018336A/en
Application granted granted Critical
Publication of KR101606168B1 publication Critical patent/KR101606168B1/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
    • 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
    • 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
    • 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
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50004Marginal testing, e.g. race, voltage or current testing of threshold voltage
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)

Abstract

비휘발성 메모리 디바이스는 디바이스 및/또는 비휘발성 저장 소자들의 블록들 또는 워드 라인들과 같은, 디바이스의 일부분들을 커스터마이즈하는 전압들을 이용해서 액세스된다. 액세스하는 것은 프로그래밍하는 것, 검증하는 것 또는, 읽는 것을 포함할 수 있다. 전압들(Vpgtn, VV)을 커스터마이징하는 것에 의해서, 성능이 프로그램 혼란에 의해 야기되는 임계 전압에서 변경들을 어드레싱하는 것을 포함해서, 최적화될 수 있다. 하나의 방식에서, 메모리 디바이스에서 저장 소자들의 다른 세트들은 랜덤 테스트 데이터로 프로그램된다. 임계 전압 분포는 저장 소자들의 다른 세트들을 위해 결정된다. 전압들(Vpgm, VV)의 세트는 임계 전압 분포를 근거로 결정되고, 저장 소자들의 다른 세트들을 액세스하는 이후의 사용을 위해 비휘발성 저장 위치에 저장된다. 전압들의 세트는 최종 사용자에 의해 데이터를 액세스하는 연속적인 사용을 위한 제조 시점에 결정될 수 있다.A non-volatile memory device is accessed using voltages that customize portions of the device, such as blocks and word lines of the device and / or non-volatile storage elements. Accessing may include programming, verifying, or reading. By customizing the voltages V pgtn , V V , performance can be optimized, including addressing changes in the threshold voltage caused by program confusion. In one approach, other sets of storage elements in a memory device are programmed with random test data. The threshold voltage distribution is determined for different sets of storage elements. The set of voltages V pgm , V V is determined based on the threshold voltage distribution and stored in a non-volatile storage location for later use to access other sets of storage elements. The set of voltages may be determined at the time of manufacture for subsequent use to access data by the end user.

Figure 112010078404176-pct00001
Figure 112010078404176-pct00001

Description

프로그램, 검증 및, 읽기를 위한 참조 전압 레벨들의 적응적인 세팅을 갖는 비휘발성 멀티레벨 메모리{NON-VOLATILE MULTILEVEL MEMORY WITH ADAPTIVE SETTING OF REFERENCE VOLTAGE LEVELS FOR PROGRAM, VERIFY AND READ}VOLATILE MULTILEVEL MEMORY WITH ADAPTIVE SETTING OF REFERENCE VOLTAGE LEVELS FOR PROGRAM, VERIFY AND READ WITH HAVING APPLE SETTINGS OF REFERENCE VOLTAGE LEVELS FOR PROGRAM,

본 발명은 메모리 디바이스에 관한 것이다.The present invention relates to a memory device.

반도체 메모리는 다양한 전자 디바이스들에서 더욱 일반적으로 사용된다. 예를 들어, 비휘발성 반도체 메모리(non-volatile semiconductor memory)는 셀룰러 전화기들, 디지털 카메라들, 개인 휴대 정보 단말기들(personal digital assistants : PDA), 이동 컴퓨팅 디바이스들(mobile computing devices), 미이동 컴퓨팅 디바이스들(non-mobile computing devices) 및, 다른 디바이스들에서 사용된다. 전기적 소거 및 프로그램 가능 읽기 전용 메모리(Electrically Erasable Programmable Read Only Memory : EEPROM)와 플래시 메모리(flash memory)는 가장 일반적인 비휘발성 반도체 메모리들 중에 하나이다. 플래시 메모리와 함께, 또한 EEPROM의 타입, 전체 메모리 어레이의 콘텐츠들, 또는 메모리 일부의 콘텐츠들은, 전통적인, 전-기능 EEPROM(full-featured EEPROM)과는 달리, 원 스텝(one step)으로 소거될 수 있다.Semiconductor memory is more commonly used in various electronic devices. For example, a non-volatile semiconductor memory may be used in various applications such as cellular telephones, digital cameras, personal digital assistants (PDAs), mobile computing devices, Devices, non-mobile computing devices, and other devices. Electrically Erasable and Programmable Read Only Memory (EEPROM) and flash memory are among the most common non-volatile semiconductor memories. Along with the flash memory, the contents of the EEPROM, the contents of the entire memory array, or portions of the memory can also be erased in one step, unlike the traditional, full-featured EEPROM have.

전통적인 EEPROM과 플래시 메모리는 반도체 기판에서 채널 영역 위에 위치되고 상기 채널 영역과 절연되는 플로팅 게이트(floating gate)를 사용한다. 플로팅 게이트는 소스(source)와 드레인(drain) 영역들 사이에 위치된다. 제어 게이트는 플로팅 게이트 위에 제공되고 상기 플로팅 게이트와 절연된다. 따라서, 형성된 트랜지스터의 임계 전압(VTH)은 플로팅 게이트에 유지되는 전하량에 의해서 제어된다. 즉, 그의 소스와 드레인 사이의 전도(conduction)를 허용하기 위해 트랜지스터가 턴온되기 전에 제어 게이트에 인가되어야만 하는 최소 전압 양은, 플로팅 게이트 상의 전하 레벨에 의해 제어된다.Conventional EEPROMs and flash memories use floating gates which are located above the channel region in the semiconductor substrate and isolated from the channel region. The floating gate is located between the source and drain regions. A control gate is provided over the floating gate and is insulated from the floating gate. Thus, the threshold voltage (V TH ) of the formed transistor is controlled by the amount of charge held in the floating gate. That is, the minimum amount of voltage that must be applied to the control gate before the transistor is turned on to allow conduction between its source and drain is controlled by the charge level on the floating gate.

일부 EEPROM과 플래시 메모리 디바이스들은 2가지 범위의 전하들을 저장하기 위해 사용되는 플로팅 게이트를 가진다. 그러므로 메모리 소자는 예를 들어, 소거된 상태(erased state)와 프로그램된 상태(programmed state)인, 2가지 상태들 간에 프로그램되거나/소거될 수 있다. 그러한 플래시 메모리 디바이스는 때때로 각각의 메모리 소자가 1 비트의 데이터를 저장할 수 있기 때문에 바이너리 플래시 메모리 디바이스(binary flash memory device)에 인용된다.Some EEPROM and flash memory devices have floating gates that are used to store two ranges of charges. Thus, the memory element may be programmed / erased between two states, e. G., An erased state and a programmed state. Such a flash memory device is sometimes referred to as a binary flash memory device because each memory device can store one bit of data.

전통적으로, 셀당 1비트를 저장하는 메모리들은 "단일 레벨 셀(single level cell)" (SLC) 메모리들이라 불리고, 셀당 1 비트 이상 저장하는 메모리들은 "멀티 레벨 셀(multi level cell)" (MLC) 메모리들이라 불린다. 예를 들어, 각각의 MLC 메모리 소자는 상기 소자가 4개의 특정 임계 전압 범위들(distinct threshold voltage ranges)에 대응하는 4개의 이산 전압 밴드들(discrete charge bands) 중 어느 하나에 위치될 수 있을 때, 2 비트의 데이터를 저장할 수 있다.Traditionally, memories storing one bit per cell are called " single level cell "(SLC) memories and memories storing more than one bit per cell are called" multi level cell " . For example, when each MLC memory element can be located in one of four discrete charge bands that correspond to four distinct threshold voltage ranges, 2-bit data can be stored.

관습적으로, 프로그램 동작(program operation)이 시간에 대한 크기로 증가시키는 연속적인 펄스들로 인가되는 동안, 프로그램 전압(VPGM)이 제어 게이트에 인가된다. 하나의 가능한 방식에서, 예를 들어, 0.2V 내지 0.4V와 같은, 펄스들의 크기는 기결정된 스텝 사이즈에 의해서 각각의 연속된 펄스와 함께 증가된다. VPGM은 플래시 메모리 소자들의 상기 제어 게이트들에 인가될 수 있다. 프로그램 펄스들 사이의 기간들(주기들) 동안에, 검증 동작들(verify operations)이 수행된다. 즉, 병행하여 프로그램된 그룹 소자들의 각각의 소자의 프로그래밍 레벨은 검증 레벨과 동일하거나 또는 더 크게 소자가 프로그램된 게 있는지를 결정하기 위해서 연속된 프로그래밍 펄스들 사이에 읽혀진다. 멀티-상태 플래시 메모리 소자들의 어레이들에 대해서, 검증 단계는 소자가 그의 데이터-관련 검증 레벨에 도달했는지 아닌지를 결정하기 위해서 소자의 각각의 상태에 대해 수행될 수 있다. 예를 들어, 4개의 상태들로 데이터를 저장할 수 있는 멀티-상태 메모리 소자는 3개의 비교 포인트들(three compare points)을 위한 검증 동작들을 수행하기 위한 요구일 수 있다.Conventionally, the program voltage V PGM is applied to the control gate while the program operation is applied with successive pulses increasing in magnitude over time. In one possible way, the magnitude of pulses, such as, for example, 0.2 V to 0.4 V, is increased with each successive pulse by a predetermined step size. V PGM may be applied to the control gates of the flash memory devices. During periods (periods) between program pulses, verify operations are performed. That is, the programming level of each element of the parallel programmed group elements is read between successive programming pulses to determine whether the element has been programmed equal to or greater than the verification level. For arrays of multi-state flash memory devices, the verify step may be performed for each state of the device to determine whether or not the device has reached its data-related verify level. For example, a multi-state memory element capable of storing data in four states may be a request to perform verify operations for three compare points.

또한, EEPROM 또는 NAND 스트링(NAND string)에서 NAND 플래시 메모리 디바이스(NAND flash memory device)와 같은 플래시 메모리 디바이스를 프로그래밍할 때, 일반적으로 셀 또는 메모리 소자, 예를 들어, 저장 소자의 채널에서 전자들을 플로팅 게이트로 주입되도록 야기하는, VPGM은 제어 게이트에 인가되고, 비트 라인(bit line)은 접지된다. 전자들이 플로팅 게이트에 축적될 때, 플로팅 게이트는 음으로 충전되고, 메모리 소자의 임계 전압은 상승한다. 그 결과, 메모리 소자는 프로그램된 상태인 것으로 고려된다. 그러한 프로그래밍에 관한 더 많은 정보는 미국 등록 특허 번호 제6,859,397호인, "Source Side Self Boosting Technique For Non-Volatile Memory"와 미국 공개 특허 번호 제2005/0024939호인, "Detecting Over Programmed Memory" (공개일 2005년 2월 3일)에서 찾아볼 수 있다 ; 두 경우 모두 그의 전체 내용이 본원 명세서에서 참조로 인용된다.Also, when programming a flash memory device, such as a NAND flash memory device, in an EEPROM or NAND string, it is typically necessary to float the electrons in the cell or memory element, V PGM , which causes the gate to be implanted, is applied to the control gate and the bit line is grounded. When electrons accumulate in the floating gate, the floating gate is charged negatively and the threshold voltage of the memory element rises. As a result, the memory element is considered to be in the programmed state. More information about such programming can be found in U.S. Patent No. 6,859,397 entitled " Source Side Self-Boosting Technique For Non-Volatile Memory "and U. S. Patent Publication No. 2005/0024939 entitled" Detecting Over Programmed Memory " February 3); Both of which are incorporated herein by reference in their entirety.

또한, 읽기 동작(read operation) 동안, 읽기 참조 전달들(read reference voltages)이 읽혀지기 위해서 저장 소자들의 세트에 인가되고, 읽기 참조 전압이 저장 소자를 전도하기 위해서 야기하는 것에 대한 판별이 수행된다. 읽기 참조 전압들은 저장 소자들의 데이터 상태들이 구별되는 것을 허용하도록 설정된다.Also, during a read operation, read reference voltages are applied to the set of storage elements to be read, and a determination is made that the read reference voltage causes the storage element to conduct. The read reference voltages are set to allow the data states of the storage elements to be distinguished.

그러나 프로그래밍, 검증 및, 읽기 동안 사용되는 전압들은 일반적으로 고정되고, 임계 전압 분포(threshold voltage distribution)가 다양해질 수 있다는 사실을 고려하지 않는다. 예를 들어, 임계 전압 분포는 프로그램 혼란(program disturb)과 같은 쟁점들 때문에 다양해질 수 있다. 그 결과로, 고정된 프로그래밍, 검증 및, 읽기 전압들의 사용은 비-최적화된 성능을 초래한다.However, the voltages used during programming, verification, and reading are generally fixed and do not take into account the fact that the threshold voltage distribution can vary. For example, the threshold voltage distribution can be varied due to issues such as program disturb. As a result, the use of fixed programming, verification, and read voltages results in non-optimized performance.

본 발명은 성능을 최적화하기 위해서, 쓰기, 읽기 및, 검증 동작들과 같은, 전압 레벨들을 설정하는 비휘발성 저장 시스템을 제공한다.The present invention provides a non-volatile storage system that sets voltage levels, such as write, read, and verify operations, to optimize performance.

일 실시예에서, 저장 시스템은 멀티-레벨 저장 소자들인 비휘발성 저장 소자들의 개별 세트들, 비휘발성 저장 위치(non-volatile storage location) 및, 적어도 하나의 제어 회로를 포함한다. 상기 적어도 하나의 제어 회로는 : a) 상기 비휘발성 저장 소자들의 개별 세트들을 위해 개별 임계 전압 분포들(respective threshold voltage distributions)을 측정하고, b) 상기 개별 임계 전압 분포를 근거로 각각의 비휘발성 저장 소자들의 개별 세트를 위해 전압들의 개별 세트를 결정하며, 상기 전압들의 개별 세트는 상기 비휘발성 저장 소자들의 개별 세트를 커스터마이즈(customize)하고, c) 상기 비휘발성 저장 위치에, 전압들의 각각의 세트를 저장하고, d) 상기 저장 후에, 상기 비휘발성 저장 위치에서 전압들의 개별 세트들 중 적어도 하나를 획득하고, 상기 전압들의 개별 세트들 중 적어도 하나를 이용해서 상기 비휘발성 저장 소자들의 개별 세트들 중 적어도 하나를 포함하는 쓰기 동작을 수행한다.In one embodiment, the storage system includes separate sets of non-volatile storage elements that are multi-level storage elements, a non-volatile storage location, and at least one control circuit. Said at least one control circuit comprising: a) measuring respective threshold voltage distributions for respective sets of said non-volatile storage elements; b) Determining a separate set of voltages for a respective set of elements, a separate set of voltages customizing a separate set of the non-volatile storage elements, and c) applying a respective set of voltages to the non-volatile storage location Volatile storage location; and d) after said storing, obtaining at least one of the discrete sets of voltages at said non-volatile storage location, and using at least one of the discrete sets of voltages, And performs a write operation including one.

다른 실시예에서, 저장 시스템은 멀티-레벨 저장 소자들인 비휘발성 저장 소자들의 개별 세트들, 비휘발성 저장 위치 및, 적어도 하나의 제어 회로를 포함한다. 상기 적어도 하나의 제어 회로는 : a) 상기 비휘발성 저장 소자들의 개별 세트들을 위해 개별 임계 전압 분포들을 측정하며, 상기 측정하는 것은 상기 비휘발성 저장 소자들의 개별 세트들에 데이터를 쓰는 것을 포함하고, b) 상기 개별 임계 전압 분포를 근거로 각각의 비휘발성 저장 소자들의 개별 세트들을 위해 전압들의 개별 세트를 결정하며, 상기 전압들의 개별 세트는 상기 비휘발성 저장 소자들의 개별 세트를 커스터마이즈하고, c) 상기 비휘발성 저장 위치에, 전압들의 각각의 세트를 저장하고, d) 상기 저장 후에, 상기 비휘발성 저장 위치에서 적어도 하나의 전압들의 개별 세트들을 획득하고, 상기 적어도 하나의 전압들의 개별 세트들을 이용해서 적어도 하나의 상기 비휘발성 저장 소자들의 개별 세트들을 액세스한다(access).In another embodiment, the storage system includes separate sets of non-volatile storage elements, non-volatile storage locations, and at least one control circuit, which are multi-level storage elements. The at least one control circuit comprising: a) measuring individual threshold voltage distributions for the respective sets of non-volatile storage elements, the measuring comprising writing data to the individual sets of non-volatile storage elements; ) A separate set of voltages for respective sets of respective non-volatile storage elements, based on the individual threshold voltage distributions, a separate set of voltages customizing a separate set of non-volatile storage elements, and c) At a non-volatile storage location, each set of voltages; and d) after said storing, obtaining separate sets of at least one voltages at the non-volatile storage location, and using at least one To access the separate sets of non-volatile storage elements of the non-volatile storage elements.

다른 실시예는 개별 메모리 디바이스들(separate memory devices)의 세트를 포함한다. 각각의 개별 메모리 디바이스는 하나 이상의 비휘발성 저장 소자들의 개별 세트들, 개별 비휘발성 저장 위치 및, 적어도 하나의 제어 회로를 포함한다. 상기 비휘발성 저장 소자들은 멀티-레벨 저장 소자들이다. 상기 적어도 하나의 제어 회로는 : (a) 상기 메모리 디바이스에서 상기 하나 이상의 비휘발성 저장 소자들의 개별 세트들을 위해 하나 이상의 개별 임계 전압 분포들을 측정하고, (b) 상기 개별 임계 전압 분포를 근거로 각각의 비휘발성 저장 소자들의 개별 세트를 위해 전압들의 개별 세트를 결정하고, (c) 상기 개별 비휘발성 저장 위치에 각각의 비휘발성 저장 소자들의 개별 세트를 위해 상기 전압들의 개별 세트를 저장하고, (d) 상기 저장 후에, 상기 개별 비휘발성 저장 위치에서 적어도 하나의 전압들의 개별 세트들을 획득하고, 상기 적어도 하나의 전압들의 개별 세트들을 이용해서 상기 하나 이상의 비휘발성 저장 소자들의 개별 세트들을 포함하는 쓰기 동작을 수행한다. 또한, 상기 전압들의 개별 세트들은 각각의 비휘발성 저장 소자들의 개별 세트로 커스터마이즈되고, 상기 개별 메모리 디바이스들 중에서 변화한다.Another embodiment includes a set of separate memory devices. Each discrete memory device comprises discrete sets of one or more non-volatile storage elements, discrete non-volatile storage locations, and at least one control circuit. The non-volatile storage elements are multi-level storage elements. Wherein the at least one control circuit is configured to: (a) measure one or more individual threshold voltage distributions for the respective sets of the one or more non-volatile storage elements in the memory device; and (b) (C) storing a separate set of voltages for a respective set of respective non-volatile storage elements in the respective non-volatile storage location; and (d) After said storing, obtaining separate sets of at least one of the voltages at the respective non-volatile storage location and performing a write operation comprising separate sets of the at least one non-volatile storage elements using the at least one respective set of voltages do. In addition, the individual sets of voltages are customized to a respective set of respective non-volatile storage elements, and vary among the individual memory devices.

다른 실시예는 개별 메모리 디바이스들의 세트를 포함한다. 각각의 개별 메모리 디바이스는 하나 이상의 비휘발성 저장 소자들의 개별 세트들, 개별 비휘발성 저장 위치 및, 적어도 하나의 제어 회로를 포함한다. 상기 비휘발성 저장 소자들은 멀티-레벨 저장 소자들이다. 상기 적어도 하나의 제어 회로는 : (a) 상기 메모리 디바이스에서 상기 하나 이상의 비휘발성 저장 소자들의 개별 세트들을 위해 하나 이상의 개별 임계 전압 분포들을 측정하며, 상기 측정하는 것은 상기 하나 이상의 비휘발성 저장 소자들의 개별 세트들에 데이터를 쓰는 것을 포함하고, (b) 상기 개별 임계 전압 분포를 근거로 각각의 비휘발성 저장 소자들의 개별 세트를 위해 전압들의 개별 세트를 결정하고, (c) 상기 개별 비휘발성 저장 위치에 각각의 비휘발성 저장 소자들의 개별 세트를 위해 상기 전압들의 개별 세트를 저장하고, (d) 상기 저장 후에, 상기 개별 비휘발성 저장 위치에서 적어도 하나의 전압들의 개별 세트들을 획득하고, 상기 적어도 하나의 전압들의 개별 세트들을 이용해서 상기 하나 이상의 비휘발성 저장 소자들의 개별 세트들을 액세스한다. 또한, 상기 전압들의 개별 세트들은 각각의 비휘발성 저장 소자들의 개별 세트로 커스터마이즈되고, 상기 개별 메모리 디바이스들 중에서 변화한다.Another embodiment includes a set of individual memory devices. Each discrete memory device comprises discrete sets of one or more non-volatile storage elements, discrete non-volatile storage locations, and at least one control circuit. The non-volatile storage elements are multi-level storage elements. Wherein the at least one control circuit is configured to: (a) measure one or more individual threshold voltage distributions for the respective sets of the one or more non-volatile storage elements in the memory device, (B) determining a discrete set of voltages for a respective set of respective non-volatile storage elements based on the discrete threshold voltage distribution, and (c) Volatile storage elements; (d) after said storing, acquiring separate sets of at least one voltages at the respective non-volatile storage location; and for each of the at least one voltage The individual sets of one or more non-volatile storage elements The process. In addition, the individual sets of voltages are customized to a respective set of respective non-volatile storage elements, and vary among the individual memory devices.

여기에 제공되는 상기 방법들을 수행하기 위한 대응하는 방법들, 시스템들 및, 컴퓨터- 또는 프로세서-읽기 가능한 저장 디바이스들이 제공된다.Corresponding methods, systems and computer- or processor-readable storage devices for performing the methods provided herein are provided.

도 1은 NAND 스트링의 평면도이다.
도 2는 도 1의 NAND 스트링의 등가 회로도이다.
도 3은 NAND 플래시 저장 소자들의 어레이의 블록 다이어그램이다.
도 4는 기판 상에 형성되는 NAND 스트링의 단면도를 나타낸 도이다.
도 5는 저장 소자들의 블록을 나타낸 도이다.
도 6a는 대응하는 검증 및 읽기 전압들을 갖는, 비휘발성 저장 소자들의 세트의 초기 임계 전압 분포를 나타낸 도이다.
도 6b는 프로그램 혼란을 경험한 비휘발성 저장 소자들의 세트의 임계 전압 분포를 나타낸 도이다.
도 6c는 도 6b의 임계 전압 분포의 측정과 대응하는 읽기 전압들의 세팅을 나타낸 도이다.
도 7은 프로그래밍 전압들과 검증 전압들의 펄스열(pulse train)을 나타낸 도이다.
도 8a는 프로그래밍 동안에 사용될 수 있는 연속적인 쓰기 또는 프로그램 전압들을 나타낸 도이다.
도 8b는 비휘발성 저장 소자들의 다른 세트들을 커스터마이즈하는 쓰기, 검증 및, 읽기 전압들을 포함하는 데이터를 나타낸 도이다.
도 9a는 비휘발성 저장 소자들의 세트를 위해 전압들을 결정하기 위한 프로세스(process)를 나타낸 도이다.
도 9b는 도 9a의 프로세스에 의해서 결정된 기결정된 전압들을 이용해서 비휘발성 저장 소자들의 세트의 사용자 데이터를 액세스하기 위한 프로세스를 나타낸 도이다.
도 9c는 비휘발성 저장 소자들의 다중 세트들을 위해 전압들을 결정하기 위한 프로세스를 나타낸 도이다.
도 10은 도 9c의 프로세스에 의해서 결정된 기결정된 전압들을 이용해서 비휘발성 저장 소자들의 다중 세트들의 사용자 데이터를 액세스하기 위한 프로세스를 나타낸 도이다.
도 11은 NAND 플래시 저장 소자들의 어레이의 블록 다이어그램이다.
도 12는 호스트 컨트롤러와 메모리 디바이스의 개략을 나타낸 도이다.
도 13은 단일 행/열 디코더들(single row/column decoders)과 읽기/쓰기 회로들을 이용하는 비휘발성 메모리 시스템의 블록 다이어그램이다.
1 is a top view of a NAND string.
2 is an equivalent circuit diagram of the NAND string of FIG.
3 is a block diagram of an array of NAND flash storage elements.
4 is a cross-sectional view of a NAND string formed on a substrate.
Figure 5 shows a block of storage elements.
6A is a diagram illustrating an initial threshold voltage distribution of a set of non-volatile storage elements having corresponding verify and read voltages.
6B is a diagram illustrating the threshold voltage distribution of a set of non-volatile storage elements experiencing program confusion.
6C is a diagram illustrating the measurement of the threshold voltage distribution of FIG. 6B and the setting of the corresponding read voltages.
7 shows a pulse train of programming voltages and verify voltages.
Figure 8A is a diagram illustrating successive write or program voltages that may be used during programming.
Figure 8B illustrates data including write, verify, and read voltages that customize different sets of non-volatile storage elements.
9A is a diagram illustrating a process for determining voltages for a set of non-volatile storage elements.
FIG. 9B illustrates a process for accessing user data in a set of non-volatile storage elements using predetermined voltages determined by the process of FIG. 9A. FIG.
9C illustrates a process for determining voltages for multiple sets of non-volatile storage elements.
Figure 10 is a diagram illustrating a process for accessing multiple sets of non-volatile storage elements user data using predetermined voltages determined by the process of Figure 9c.
11 is a block diagram of an array of NAND flash storage elements.
12 is a diagram showing the outline of a host controller and a memory device.
Figure 13 is a block diagram of a non-volatile memory system using single row / column decoders and read / write circuits.

본 발명은 성능을 최적화하기 위해서, 쓰기, 읽기 및, 검증 동작들과 같은, 전압 레벨들을 설정하는 비휘발성 저장 시스템을 제공한다.The present invention provides a non-volatile storage system that sets voltage levels, such as write, read, and verify operations, to optimize performance.

본 발명을 구현하기에 적당한 메모리 시스템의 일 예는 2개의 선택 게이트들(two select gates) 사이에 직렬로 다중 트랜지스터들을 배열하는 것을 포함하는 NAND 플래시 메모리 구조를 사용한다. 직렬 트랜지스터들과 선택 게이트들은 NAND 스트링에 인용된다. 도 1은 NAND 스트링의 평면도이다. 도 2는 도 1의 등가 회로이다. 도 1과 도 2에 도시된 NAND 스트링은 직렬로 연결된 4개의 트랜지스터들(100, 102, 104, 106)을 포함하고, 상기 트랜지스터들은 제1 선택 게이트(120)와 제2 선택 게이트(122) 사이에 위치된다. 선택 게이트(120)는 NAND 스트링을 비트 라인(126)에 연결한다. 선택 게이트(122)는 NAND 스트링을 소스 라인(128)에 연결한다. 선택 게이트(120)는 제어 게이트(control gate)(120CG)에 적당한 전압들을 인가하는 것에 의해서 제어된다. 선택 게이트(122)는 제어 게이트(122CG)에 적당한 전압들을 인가하는 것에 의해서 제어된다. 각각의 트랜지스터들(100, 102, 104, 106)은 제어 게이트와 플로팅 게이트를 갖는다. 트랜지스터(100)는 제어 게이트(100CG)와 플로팅 게이트(100FG)를 갖는다. 트랜지스터(102)는 제어 게이트(102CG)와 플로팅 게이트(102FG)를 갖는다. 트랜지스터(104)는 제어 게이트(104CG)와 플로팅 게이트(104FG)를 갖는다. 트랜지스터(106)는 제어 게이트(106CG)와 플로팅 게이트(106FG)를 갖는다. 제어 게이트(100CG)는 워드 라인(WL3)에 연결되고, 제어 게이트(102CG)는 워드 라인(WL2)에 연결되고, 제어 게이트(104CG)는 워드 라인(WL1)에 연결되고, 제어 게이트(106CG)는 워드 라인(WL0)에 연결된다. 제어 게이트들은 또한 워드 라인들의 일부분으로 제공될 수 있다. 일 실시예에서, 트랜지스터들(100, 102, 104, 106)은 또한 메모리 셀들(memory cells)에 인용되는, 각각의 저장 소자들이다. 다른 실시예들에서, 저장 소자들은 다중 트랜지스터들을 포함할 수 있거나 또는, 도 1 및 도 2에 나타낸 것과는 다를 수 있다. 선택 게이트(120)는 선택 라인(select line) SDG (드레인 선택 게이트 : drain select gate)에 연결된다. 선택 게이트(122)는 선택 라인 SGS (소스 선택 게이트 : source select gate)에 연결된다.One example of a memory system suitable for implementing the present invention employs a NAND flash memory architecture that includes arranging multiple transistors in series between two select gates. The series transistors and select gates are quoted in the NAND string. 1 is a top view of a NAND string. Fig. 2 is an equivalent circuit of Fig. The NAND string shown in FIGS. 1 and 2 includes four transistors 100, 102, 104 and 106 connected in series, which are connected between the first select gate 120 and the second select gate 122 . Select gate 120 couples the NAND string to bit line 126. Select gate 122 couples the NAND string to source line 128. The select gate 120 is controlled by applying appropriate voltages to the control gate 120CG. Select gate 122 is controlled by applying appropriate voltages to control gate 122CG. Each of the transistors 100, 102, 104, and 106 has a control gate and a floating gate. The transistor 100 has a control gate 100CG and a floating gate 100FG. The transistor 102 has a control gate 102CG and a floating gate 102FG. The transistor 104 has a control gate 104CG and a floating gate 104FG. The transistor 106 has a control gate 106CG and a floating gate 106FG. Control gate 104CG is connected to word line WL1 and control gate 106CG is connected to word line WL2 and control gate 102CG is connected to word line WL2, Is connected to the word line WL0. The control gates may also be provided as part of the word lines. In one embodiment, the transistors 100, 102, 104, and 106 are also respective storage elements, also referred to as memory cells. In other embodiments, the storage elements may comprise multiple transistors or may differ from those shown in Figures 1 and 2. Select gate 120 is connected to a select line SDG (drain select gate). Select gate 122 is connected to select line SGS (source select gate).

도 3은 3개의 NAND 스트링들을 나타낸 회로도이다. NAND 구조를 이용하는 플래시 메모리 시스템을 위한 일반적인 아키텍처(architecture)는 복수의 NAND 스트링들을 포함할 수 있다. 예를 들어, 3개의 NAND 스트링들(320, 340, 360)이 더 많은 NAND 스트링들을 갖는 메모리 어레이에 도시된다. 각각의 NAND 스트링들은 2 개의 선택 게이트들과 4개의 저장 소자들을 포함한다. 4개의 저장 소자들이 간단하게 도시되었지만, 현대의 NAND 스트링들은 예를 들어, 32개 또는 64개까지 저장 소자들을 가질 수 있다.3 is a circuit diagram showing three NAND strings. A general architecture for a flash memory system using a NAND architecture may include a plurality of NAND strings. For example, three NAND strings 320, 340, and 360 are shown in a memory array having more NAND strings. Each NAND string includes two select gates and four storage elements. Although four storage elements are shown schematically, modern NAND strings can have, for example, up to 32 or 64 storage elements.

예를 들어, NAND 스트링(320)은 선택 게이트들(322와 327)과 저장 소자들(323 내지 326)을 포함하고, NAND 스트링(340)은 선택 게이트들(342와 347)과 저장 소자들(343 내지 346)을 포함하고, NAND 스트링(360)은 선택 게이트들(362와 367)과 저장 소자들(363 내지 366)을 포함한다. 각각의 NAND 스트링은 그의 선택 게이트들 (예를 들어, 선택 게이트들(327, 347 또는, 367))에 의해 소스 라인에 연결된다. 선택 라인(SGS)은 소스측 선택 게이트들을 제어하기 위해 사용된다. 다양한 NAND 스트링들(320, 340, 360)은 선택 게이트들(322, 342, 362 등)에서 선택 트랜지스터들(select transistors)에 의해 개별 비트 라인들(321, 341, 361)에 연결된다. 이러한 선택 트랜지스터들은 드레인 선택 라인(SGD)에 의해 제어된다. 다른 실시예들에서, 선택 라인들은 NAND 스트링들 사이에서 반드시 공통일 필요는 없다; 즉, 다른 선택 라인들은 다른 NAND 스트링들에 제공될 수 있다. 워드 라인(WL3)은 저장 소자들(323, 343, 363)을 위해 제어 게이트들에 연결된다. 워드 라인(WL2)은 저장 소자들(324, 344, 364)을 위해 제어 게이트들에 연결된다. 워드 라인(WL1)은 저장 소자들(325, 345, 365)을 위해 제어 게이트들에 연결된다. 워드 라인(WL0)은 저장 소자들(326, 346, 366)을 위해 제어 게이트들에 연결된다. 볼 수 있는 바와 같이, 각각의 비트 라인과 개별 NAND 스트링은 저장 소자들의 어레이(array) 또는 세트의 열(column)을 포함한다. 워드 라인들(WL3, WL2, WL1, WL0)은 어레이 또는 세트의 행들(rows)을 포함한다. 각각의 워드 라인은 행에서 각각의 저장 소자의 제어 게이트들을 연결한다. 또는, 제어 게이트들은 워드 라인들 그들 자신들에 의해 제공될 수도 있다. 예를 들어, 워드 라인(WL2)은 저장 소자들(324, 344, 364)을 위해 상기 제어 게이트들을 제공한다. 실제로, 워드 라인에 수천 개의 저장 소자들이 있을 수 있다.For example, NAND string 320 includes select gates 322 and 327 and storage elements 323 to 326, and NAND string 340 includes select gates 342 and 347 and storage elements < RTI ID = 0.0 > 343 through 346, and NAND string 360 includes select gates 362 and 367 and storage elements 363 through 366. Each NAND string is coupled to a source line by its select gates (e.g., select gates 327, 347 or 367). The selection line SGS is used to control the source side selection gates. The various NAND strings 320,340 and 360 are connected to the individual bit lines 321,341 and 361 by select transistors at select gates 322,342 and 362, These select transistors are controlled by a drain select line SGD. In other embodiments, the select lines need not necessarily be common between the NAND strings; That is, other select lines may be provided to other NAND strings. The word line WL3 is connected to the control gates for the storage elements 323, 343 and 363. Word line WL2 is connected to the control gates for storage elements 324, 344, Word line WLl is connected to control gates for storage elements 325, 345, The word line WL0 is connected to the control gates for the storage elements 326, 346 and 366. As can be seen, each bit line and individual NAND string includes an array or set of storage elements. The word lines WL3, WL2, WL1, WL0 comprise the rows of the array or set. Each word line connects the control gates of each storage element in a row. Alternatively, the control gates may be provided by the word lines themselves. For example, word line WL2 provides the control gates for storage elements 324,344, and 364. In practice, there may be thousands of storage elements in a word line.

각각의 저장 소자는 데이터를 저장할 수 있다. 예를 들어, 1 비트의 디지털 데이터를 저장할 때, 저장 소자의 가능한 임계 전압들(VTH)의 범위는 논리 데이터 "1"과 "0"에 할당되는 2개의 범위만큼 나뉘게 된다. NAND 타입 플래시 메모리의 일 실시예에서, 저장 소자가 소거된 이후에 VTH는 음의 값을 가지며, 논리 "1"로 정의된다. 프로그램 동작 후에 VTH는 양의 값을 가지며, 논리 "0"으로 정의된다. VTH가 음의 값을 가지고 읽기가 시도될 때, 저장 소자는 저장된 논리 "1"을 나타내기 위해서 턴온될 것이다. VTH가 양의 값을 가지고 읽기 동작이 시도될 때, 저장 소자는 저장된 논리 "0"을 나타내기 위해서 턴온되지 않을 것이다. 저장 소자는 또한 예를 들어, 디지털 데이터의 다중 비트들인, 정보의 다중 레벨들을 저장할 수 있다. 이 경우에, VTH 값의 범위는 데이터의 레벨들의 수만큼 나뉘게 된다. 예를 들어, 정보의 4개 레벨들이 저장되는 경우에, 데이터 값들 "11", "10", "01" 및, "00"으로 할당된 4개의 VTH 범위들이 있을 수 있다. NAND 타입 메모리의 일 실시예에서, 소거 동작 이후의 VTH는 음이며 "11"로 정의된다. 양의 VTH 값들은 "10", "01" 및, "00" 상태들로 사용된다. 저장 소자 내에 프로그램된 데이터와 소자의 임계 전압 범위들 사이의 특정 관계는 저장 소자들에 적용된 데이터 인코딩 방식에 의존한다. 예를 들어, 본원 명세서에서 참조로 인용되는, 미국 등록 특허 번호 제6,222,762호와 미국 등록 특허 번호 제7,237,074호는 멀티-상태 플래시 저장 소자들을 위한 다양한 데이터 인코딩 방식들을 기술한다.Each storage element may store data. For example, when storing one bit of digital data, the range of possible threshold voltages (V TH ) of the storage element is divided by two ranges assigned to logical data "1" and "0 ". In one embodiment of the NAND type flash memory, V TH has a negative value and is defined as a logic "1 " after the storage element is erased. After program operation, V TH has a positive value and is defined as logic "0 ". When V TH is attempted to read with a negative value, the storage element will be turned on to indicate the stored logic "1 ". When V TH is positive and a read operation is attempted, the storage element will not turn on to indicate the stored logic "0 ". The storage element may also store multiple levels of information, e.g., multiple bits of digital data. In this case, the range of the V TH value is divided by the number of levels of the data. For example, if four levels of information are stored, there may be four V TH ranges assigned with data values "11", "10", "01" and "00" In one embodiment of the NAND type memory, V TH after erase operation is negative and is defined as "11 ". Positive V TH values are used as "10 "," 01 ", and "00" states. The specific relationship between the threshold voltage ranges of the device and the data programmed into the storage device depends on the data encoding scheme applied to the storage devices. For example, U.S. Patent No. 6,222,762 and U.S. Patent No. 7,237,074, which are incorporated herein by reference, describe various data encoding schemes for multi-state flash storage devices.

NAND 타입 플래시 메모리들에 관련된 예들과 그들의 동작은, 각각이 본원 명세서에서 참조로 인용되는, 미국 등록 특허 번호 제5,386,422호, 제5,570,315호, 제6,046,935호, 제6,456,528호 및, 제6,522,580호에서 제공된다.Examples related to NAND type flash memories and their operation are provided in U.S. Patent Nos. 5,386,422, 5,570,315, 6,046,935, 6,456,528, and 6,522,580, each of which is incorporated herein by reference .

플래시 저장 소자를 프로그래밍할 때, 프로그램 전압이 저장 소자의 제어 게이트에 인가되고, 저장 소자와 관련된 비트 라인은 접지된다. 채널에서의 전자들은 플로팅 게이트로 주입된다. 전자들이 플로팅 게이트에 축적될 때, 상기 플로팅 게이트는 음으로 충전되고 상기 저장 소자의 VTH는 상승한다. 프로그램되는 저장 소자의 제어 게이트에 프로그램 전압을 인가하기 위해서, 프로그램 전압은 적당한 워드 라인에 인가된다. 앞서 논의된 바와 같이, 각각의 NAND 스트링들에서의 하나의 저장 소자는 동일한 워드 라인을 공유한다. 예를 들어, 도 3의 저장 소자(324)를 프로그래밍할 때, 프로그램 전압은 또한 저장 소자들(344, 364)의 제어 게이트들에 인가될 수 있다. 선택되지 않은 저장 소자들(unselected storage elements)(344, 364)은 프로그램 혼란(program disturb)이라 호칭한다. 선택된 저장 소자(selected storage element)와 같은 동일한 워드 라인에서 미선택된 저장 소자가 상기 선택된 워드 라인에 상대적으로 높은 프로그램 전압의 적용(application) 때문에 의도하지 않게 프로그램될 때, 프로그램 혼란이 발생한다.When programming the flash storage element, the program voltage is applied to the control gate of the storage element, and the bit line associated with the storage element is grounded. Electrons in the channel are injected into the floating gate. When the electrons are accumulated in the floating gate, the floating gate is charged negatively and the V TH of the storage element is raised. To apply the program voltage to the control gate of the storage element being programmed, the program voltage is applied to the appropriate word line. As discussed above, one storage element in each NAND string shares the same word line. For example, when programming the storage element 324 of FIG. 3, the program voltage may also be applied to the control gates of the storage elements 344, 364. Unselected storage elements 344 and 364 are referred to as program disturb. Program disruption occurs when an unselected storage element on the same word line, such as a selected storage element, is unintentionally programmed due to application of a relatively high program voltage to the selected word line.

도 4는 기판 상에 형성되는 NAND 스트링의 단면도를 나타낸 도이다. 상기 도는 간단하게 되어 있고 일정 비율로 그려진 것은 아니다. NAND 스트링(400)은 기판(490) 상에 형성되는, 소스측 선택 게이트(406), 드레인측 선택 게이트(424) 및, 8개의 저장 소자들(408, 410, 412, 414, 416, 418, 420, 422)을 포함한다. 다수의 소스/드레인 영역들이, 소스 드레인 영역(430)이 있는 일 예에서, 각각의 저장 소자와 상기 선택 게이트들(06, 424)의 어느 한 측에 제공된다. 하나의 방식에서, 기판(490)은 p-타입 기판 영역(496) 내에 차례로 있는, n-웰 영역(494) 내의 p-웰 영역(492)을 포함하는 삼중-웰 기술(triple-well technology)을 채택한다. NAND 스트링과 그의 비휘발성 저장 소자들은 p-웰 영역 상에, 적어도 일부가 형성될 수 있다. 전위 VSOURCE를 갖는 소스 공급 라인(source supply line)(404)이 전위 VBL를 갖는 비트 라인(426)에 추가로 제공된다. 전압들은 또한 터미널(402)을 통해 p-웰 영역(492)에 인가되고 터미널(403)을 통해 n-웰 영역(494)에 인가될 수 있다.4 is a cross-sectional view of a NAND string formed on a substrate. The figures are simplified and are not drawn to scale. The NAND string 400 includes a source side select gate 406, a drain side select gate 424 and eight storage elements 408, 410, 412, 414, 416, 418, 420, and 422, respectively. A plurality of source / drain regions are provided on either side of each storage element and the selection gates 06, 424, in one example where the source drain region 430 is present. In one approach, the substrate 490 is a triple-well technology comprising a p-well region 492 in an n-well region 494, which in turn is in a p-type substrate region 496. [ . The NAND string and its non-volatile storage elements may be at least partially formed on the p-well region. A source supply line 404 having a potential V SOURCE is further provided to the bit line 426 having a potential V BL . Voltages may also be applied to the p-well region 492 through terminal 402 and to n-well region 494 via terminal 403. [

읽기 동작 동안에, 제어 게이트 전압(VCG)이 저장 소자(414)와 도시되지 않은 다른 저장 소자들과 관련된 선택된 워드 라인, 예를 들어 WL3 상에 제공된다. 또한, 저장 소자의 제어 게이트가 워드 라인의 일부분으로 제공될 수 있도록 재호출한다. 예를 들어, WL0, WL1, WL2, WL3, WL4, WL5, WL6 및, WL7은 개별적으로 저장 소자들(408, 410, 412, 414, 416, 418, 420 및, 422)의 제어 게이트들을 통해 확장할 수 있다. 읽기 패스 전압(read pass voltage : VREAD )이 하나의 가능한 방식에서, NAND 스트링(400)과 관련된 남은 워드 라인들에 인가된다. VSGS와 VSGD이 개별적으로, 선택 게이트들(406, 424)에 인가된다.During a read operation, a control gate voltage (V CG ) is provided on the selected word line, e.g., WL3, associated with the storage element 414 and other storage elements not shown. It also recalls so that the control gate of the storage element can be provided as part of the word line. For example, WL0, WL1, WL2, WL3, WL4, WL5, WL6 and WL7 may be individually extended through the control gates of storage elements 408, 410, 412, 414, 416, 418, 420 and 422 can do. A read pass voltage (V READ ) is applied to the remaining word lines associated with the NAND string 400 in one possible manner. V SGS and V SGD are applied to select gates 406 and 424, respectively.

도 5는 저장 소자들의 블록을 나타낸 도이다. 일 예의 구현에서, NAND 플래시 EEPROM은 1024개의 블록들로 나뉠 수 있다. 각각의 블록에 저장된 데이터는 동시에 소거될 수 있다. 일 실시예에서, 블록은 동시에 소거되는 저장 소자들의 최소 단위이다. 이 예에서는, 각각의 블록에서, 비트 라인들(BL0, BL1, ... , BL4255)에 대응하는 4256개의 열들이 있다. 모든 비트 라인(all bit line : ABL) 아키텍처에 인용되는 일 실시예에서, 하나의 블록의 모든 비트 라인들은 읽기 및 프로그램 작동들 동안에 동시에 선택될 수 있고, 공통 워드 라인을 지나고 임의의 비트 라인에 연결된 저장 소자들은 동시에 프로그램될 수 있다.Figure 5 shows a block of storage elements. In one example implementation, the NAND flash EEPROM may be divided into 1024 blocks. The data stored in each block can be erased simultaneously. In one embodiment, the block is the smallest unit of storage elements that are simultaneously erased. In this example, in each block there are 4256 columns corresponding to bit lines (BL0, BL1, ..., BL4255). In one embodiment, which is referred to in the all bit line (ABL) architecture, all bit lines of a block can be selected simultaneously during read and program operations, and are connected to any bit line The storage elements can be programmed simultaneously.

제공되는 일 예에서, 8개의 저장 소자들은 NAND 스트링을 형성하기 위해서 직렬로 연결되고, 8개의 데이터 워드 라인들(WL0 내지 WL7)이 있다. NAND 스트링은 또한 더미 저장 소자들(Dummy memory cells)과 관련된 워드 라인들을 포함할 수 있다. 다른 실시예들에서, NAND 스트링들은 8개의 데이터 저장 소자들보다 더 많거나 더 적은 개수를 가질 수 있다. 데이터 메모리 셀들(Data memory cells)은 사용자 또는 시스템 데이터를 저장할 수 있다. 더미 메모리 셀들(Dummy memory cells)은 일반적으로 사용자 또는 시스템 데이터를 저장하기 위해서 사용되지 않는다.In one example provided, eight storage elements are connected in series to form a NAND string, and there are eight data word lines (WL0 to WL7). The NAND string may also include word lines associated with dummy memory cells. In other embodiments, the NAND strings may have more or fewer numbers than the eight data storage elements. Data memory cells may store user or system data. Dummy memory cells are typically not used to store user or system data.

각각의 NAND 스트링의 일측 터미널(One terminal)은 (선택 게이트 드레인 라인(SGD)에 연결된) 드레인 선택 게이트를 통해 대응하는 비트 라인에 연결되고, 타측 터미널은 (선택 게이트 소스 라인(SGS)에 연결된) 소스 선택 게이트를 통해 공통 소스(common source)(505)에 연결된다. 따라서, 상기 공통 소스(505)는 각각의 NAND 스트링에 연결된다.One terminal of each NAND string is connected to the corresponding bit line through a drain select gate (connected to the select gate drain line SGD) and the other terminal is connected to the select gate source line SGS. And is connected to a common source 505 through a source select gate. Thus, the common source 505 is connected to each NAND string.

일 실시예에서, 홀수-짝수 아키텍처(odd-even architecture)에 인용되는, 비트 라인들은 짝수 비트 라인들(even bit lines : BLe)과 홀수 비트 라인들(odd bit lines : BLo)로 나뉘게 된다. 이 경우에, 공통 워드 라인을 지나고 홀수 비트 라인들에 연결된 저장 소자들은 일시에(동시에, at one time) 프로그램되고, 한편, 공통 워드 라인을 지나고 짝수 비트 라인들에 연결된 저장 소자들은 다른 일시에(at another time) 프로그램된다. 각각의 블록에서, 행들은 짝수 행들과 홀수 행들로 나뉘게 된다.In one embodiment, the bit lines, quoted in an odd-even architecture, are divided into even bit lines (BLe) and odd bit lines (BLo). In this case, the storage elements connected to the odd bit lines passing through the common word line are programmed at one time (at the same time), while the storage elements connected to the even bit lines after the common word line are programmed at different times at another time. In each block, the rows are divided into even rows and odd rows.

읽기 및 프로그래밍 동작들의 일 구성 동안에, 4256개의 저장 소자들이 동시에 선택된다. 선택된 저장 소자들은 동일한 워드 라인을 가지고, 따라서 공통 물리 페이지(common physical page)의 일 부분이다. 그러므로 또한 논리 페이지(logical page)를 형성하는, 532 바이트의 데이터가 동시에 읽혀지거나 프로그램될 수 있고, 메모리의 하나의 블록은 적어도 8개의 논리 페이지들을 저장할 수 있다. 이 예에서, 물리 페이지와 논리 페이지는 동일하지만 일반적으로, 이것이 요구되지는 않는다. 예를 들어, 물리 페이지는 다중 논리 페이지들을 포함할 수 있다. 논리 페이지는 일반적으로 동시에 쓰이는(프로그램되는) 가장 작은 저장 소자들의 세트이다. 멀티-상태 저장 소자들을 위해서, 각각의 저장 소자가 2 비트의 데이터를 저장할 때, 하나의 블록은 16개의 논리 페이지들을 저장한다. 여기서, 상기 각각의 2개의 비트는 다른 페이지에 저장된다. 다른 크기의 블록들과 페이지들이 또한 사용될 수 있다.During one configuration of read and program operations, 4256 storage elements are selected at the same time. The selected storage elements have the same word line, and thus are part of a common physical page. Therefore, 532 bytes of data, which also form a logical page, can be simultaneously read or programmed, and one block of memory can store at least eight logical pages. In this example, the physical page and the logical page are the same, but generally this is not required. For example, a physical page may include multiple logical pages. A logical page is typically the smallest set of storage elements that are used (programmed) simultaneously. For multi-state storage elements, when each storage element stores two bits of data, one block stores sixteen logical pages. Here, each of the two bits is stored in a different page. Other sizes of blocks and pages may also be used.

ABL 또는 상기 홀수-짝수 아키텍처를 위해서, 저장 소자들은 p-웰을 소거 전압(예를 들어, 20V)으로 상승시키고, 선택된 블록의 워드 라인들을 접지시키는 것에 의해서 소거될 수 있다. 소스와 비트 라인들은 플로팅된다. 소거는 한번에 하나의 블록에서 또는 한번에 몇 개의 블록에서의 일부 플래시 메모리 디바이스들에서 수행될 수 있다. 전자들(electrons)은 저장 소자들의 플로팅 게이트들에서 p-웰 영역으로 이동된다. 그 결과, 저장 소자들의 VTH가 음이 된다.For ABL or the odd-even architecture, the storage elements can be erased by raising the p-well to an erase voltage (e.g., 20V) and grounding the word lines of the selected block. The source and bit lines are floated. Erasing can be performed in one block at a time or in some flash memory devices in several blocks at a time. Electrons are moved from the floating gates of the storage elements to the p-well region. As a result, V TH of the storage elements becomes negative.

읽기 및 검증 동작들에서, 패스 게이트들(pass gates)과 같이 작동하도록 만들기 위해서, 선택 게이트들(SGD와 SGS)은 2.5V에서 4.5V 범위의 전압으로 연결되고, 선택되지 않은 워드 라인들은 읽기 패스 전압(VREAD) (일반적으로 4.5V에서 6V 범위의 전압)으로 상승한다. 선택된 워드 라인은 전압에 연결되며, 전압의 레벨은 각각의 읽기 및 검증 동작에 특정되며, 이는 관심있는 저장 소자의 VTH가 이러한 레벨보다 높은지 또는 낮은지를 결정하기 위해서이다. 예를 들어, 2-레벨 저장 소자를 위한 읽기 동작에서, 선택된 워드 라인은 접지될 수 있다. 그 결과, VTH가 0V보다 더 높은지 아닌지가 검출된다. 2-레벨 저장 소자를 위한 검증 동작에서, 선택된 워드 라인은 예를 들어, 0.8V에 연결된다. 그 결과, VTH가 적어도 0.8V에 도달했는지 아닌지가 검증된다. 소스 및 p-웰은 약 0V이다. 선택된 비트 라인들은 예를 들어, 0.7V의 레벨로 기충전(pre-charged)된다. VTH가 워드 라인에서의 읽기 또는 검증 레벨보다 높으면, 관심있는 저장 소자와 관련된 비트 라인의 전위 레벨은 비-도전성 저장 소자(non-conductive storage element) 때문에 하이 레벨(high level)을 유지한다. 반면에, VTH가 읽기 또는 검증 레벨보다 낮으면, 관심있는 비트 라인의 전위 레벨은 도전성 저장 소자(conductive storage element)가 비트 라인을 방전하기 때문에 예를 들어, 0.5V보다 낮은 로우 레벨(low level)로 감소한다. 저장 소자의 상태는 하나의 가능한 구현에서, 비트 라인에 연결되는 전압 비교 감지 증폭기(voltage comparator sense amplifier)에 의해 그로 인하여 검출될 수 있다. 프로그래밍과 마찬가지로, 읽기 동작들은 페이지 단위로(per-page basis) 수행될 수 있다.In the read and verify operations, the select gates (SGD and SGS) are connected to a voltage ranging from 2.5V to 4.5V, and the unselected word lines are connected to the read pass Rises to the voltage V READ (typically a voltage ranging from 4.5V to 6V). The selected word line is connected to a voltage and the level of the voltage is specified for each read and verify operation, in order to determine if the V TH of the storage element of interest is higher or lower than this level. For example, in a read operation for a two-level storage element, the selected word line may be grounded. As a result, it is detected whether V TH is higher than 0 V or not. In a verify operation for a two-level storage element, the selected word line is connected to, for example, 0.8V. As a result, it is verified whether V TH has reached at least 0.8V or not. The source and p-well are about 0V. The selected bit lines are pre-charged to a level of, for example, 0.7V. If V TH is higher than the read or verify level at the word line, the potential level of the bit line associated with the storage element of interest remains at a high level due to the non-conductive storage element. On the other hand, if V TH is lower than the read or verify level, the potential level of the bit line of interest is lower than the read or verify level because the conductive storage element discharges the bit line, ). In one possible implementation, the state of the storage element may be detected thereby by a voltage comparator sense amplifier coupled to the bit line. As with programming, read operations can be performed on a per-page basis.

상기 기술된 소거, 읽기 및 검증 동작들의 많은 자세한 내용들은 당업계에서 알려진 기술에 의해서 수행된다. 따라서, 설명된 많은 상세한 설명들이 당업계에서 하나의 숙달된 기술에 의해서 다양화될 수 있다. 또한, 당업계에서 알려진 다른 소거, 읽기 및 검증 기술들이 사용될 수 있다.Many details of the erase, read and verify operations described above are performed by techniques known in the art. Accordingly, many of the details described can be varied by one skilled in the art. Other erase, read, and verify techniques known in the art may also be used.

도 6a 내지 도 6c는 어떻게 프로그램 혼란이 비휘발성 저장 소자들의 세트의 임계 전압 분포를 변화시킬 수 있는지를 설명하고, 이러한 쟁점을 처리하기 위한 프로세스를 설명한다. 도 6a는 대응하는 검증 및 읽기 전압들을 갖는, 비휘발성 저장 소자들의 세트의 초기 임계 전압 분포를 나타낸 도이다. 저장 소자의 임계 전압은, 저장 소자의 제어 게이트에 인가될 때, 비-도전성 상태(non-conducting state)에서 도전성 상태(conducting state)로 채널 상태를 변경시키는 가장 낮은 전압이다. 이 전압은 플로팅 게이트에서 막힌 음의 전하의 양에 의해 영향을 받는다. : 전하가 더 많을수록, 셀의 임계 전압이 더 높아진다.Figures 6A-6C illustrate how program disruption can change the threshold voltage distribution of a set of non-volatile storage elements and describe a process for handling such issues. 6A is a diagram illustrating an initial threshold voltage distribution of a set of non-volatile storage elements having corresponding verify and read voltages. The threshold voltage of the storage element is the lowest voltage that changes the channel state from a non-conducting state to a conducting state when applied to the control gate of the storage element. This voltage is affected by the amount of negative charge clogged in the floating gate. : The more the charge, the higher the threshold voltage of the cell.

가장 일반적인 종류의 다중 레벨 셀(Multi Level Cell : MLC)-타입 디바이스들은 제로 전하(zero charge)를 포함하는, 플로팅 게이트에서 4개의 전하량을 사용한다. 여기서, 상태는 4개의 전압 레벨들로 표시되고, 따라서 MLC 저장 소자는 2 비트의 데이터를 저장한다. 일반적으로, 저장 소자당 N 비트는 2N 전압 레벨들을 이용해서 표시될 수 있다. 새로운 디바이스들은 8개 이상의 전압 레벨들을 사용하는게 기대된다. 저장 소자당 더 많은 수의 비트들을 이용하는 것은 플래시 디바이스들의 생산이 높은 데이터 밀도를 가지는 것을 허용하고, 따라서 플래시 디바이스당 전체 비용을 줄인다. 멀티-레벨 데이터 저장은 일부 NROM 디바이스들에서 사용된 것과 같은 멀티-비트 데이터 저장과 구별된다는 것에 주목해야 한다. 그러한 멀티-비트 데이터 저장은 0 또는 1에 각각 대응하는 전하 레벨들을 포함한다. 멀티-레벨 데이터 저장은 MLC 저장 소자가 예를 들어, 2 비트의 데이터를 저장할 때, 00, 01, 10 및 11에 대응하는 전하 레벨들의 범위를 포함한다.The most common types of Multi Level Cell (MLC) -type devices use four charges in the floating gate, including a zero charge. Here, the state is represented by four voltage levels, and thus the MLC storage element stores two bits of data. In general, N bits per storage element can be represented using 2 N voltage levels. New devices are expected to use more than eight voltage levels. Using a greater number of bits per storage element allows the production of flash devices to have a higher data density, thus reducing the overall cost per flash device. It should be noted that multi-level data storage is distinct from multi-bit data storage as used in some NROM devices. Such multi-bit data storage includes charge levels corresponding to 0 or 1, respectively. Multi-level data storage includes a range of charge levels corresponding to 00, 01, 10 and 11 when the MLC storage element stores, for example, two bits of data.

4개의 상태들을 갖는 MLC 디바이스에서의 읽기 동작은 3개의 참조 전압 레벨들(reference voltage levels)을 사용하고, 8개의 상태들을 갖는 MLC 디바이스는 7개의 참조 전압 레벨들을 사용하고, 일반적으로, 2N 상태들로 표시되는, 셀당 N 비트들을 저장하는 디바이스는 읽기 동작들을 위해서 2N-1개의 참조 전압 레벨들을 사용한다.A read operation in an MLC device with four states uses three reference voltage levels, and an MLC device with eight states uses seven reference voltage levels and is generally referred to as a 2 N state The device storing N bits per cell uses 2 N -1 reference voltage levels for read operations.

도 6a에서, 그래프는 임계 전압을 표시하는 x-축과 저장 소자들의 수를 표시하는 y-축을 포함한다. 일 예에서, MLC 디바이스는 검증 전압들 VV1 내지 VV7와 관련되고 읽기 전압들 VR1 내지 VR7과 관련된, 상태 0 내지 상태 7까지의 8개의 상태들을 포함한다. 각각의 상태를 위한 분포는 각각의 저장 소자가 원하는 전압 그룹으로 프로그램되기 때문에 상대적으로 좁다. 또한, 저장 소자들을 읽기 위한 대응하는 참조 전압들, 예를 들어, VR1 내지 VR7은 일반적으로 이전 분포 바로 위인(just above), 전압 그룹들 사이에 있다. 예를 들어, VR1은 상태 0의 분포 바로 위인, 상태 0과 상태 1 사이에 있고, VR2는 상태 1의 분포 바로 위인, 상태 1과 상태 2 사이에 있고, 기타 등등일 수 있다.In Figure 6A, the graph includes an x-axis representing the threshold voltage and a y-axis representing the number of storage elements. In one example, the MLC device includes eight states from state 0 to state 7, associated with verify voltages V V1 to V V7 and associated with read voltages V R1 to V R7 . The distribution for each state is relatively narrow because each storage element is programmed with the desired voltage group. Also, the corresponding reference voltages for reading the storage elements, e.g., V R1 to V R7, are generally between the voltage groups, just above the previous distribution. For example, V R1 may be between state 0 and state 1, just above the distribution of state 0, and V R2 may be between state 1 and state 2, just above the distribution of state 1, and so on.

언급한 바와 같이, 프로그램 혼란은 임계 전압 분포에서 심각한 변경들을 야기할 수 있다. 선택된 저장 소자와 같은 동일한 워드 라인에서 미선택된 저장 소자가 상기 선택된 워드 라인에 상대적으로 높은 프로그램 전압의 적용 때문에 의도하지 않게 프로그램될 때, 프로그램 혼란이 발생한다. 따라서 프로그램 혼란은 저장 소자의 임계 전압을 상승시키는 경향이 있다. 또한, 가장 낮은 상태, 예를 들어, 소거 상태는 가장 높게 상승하는 경향이 있고, 그러므로 저장 소자들의 세트에서 경험된 프로그램 혼란 양의 나쁜 케이스 지시자(worst case indicator)의 역할을 할 수 있다. 플래시 메모리 디바이스들에서 수행된 측정들은 프로그램 혼란의 양이 다른 메모리 디바이스들 사이, 동일 디바이스 내의 다른 블록들 사이 및, 동일 블록 내의 다른 워드 라인들 사이에서조차 상당히 변화한다는 것을 보여준다. 신뢰도에서 모든 메모리 디바이스들의 최대 성능을 보장하기 위해서 (예를 들어, 가장 작은 수의 에러들), 모든 디바이스들을 위한 유사 레벨에서의 프로그램 혼란을 유지하거나 또는, 전압 레벨들을 특정 디바이스, 블록 및/또는 워드 라인에서 프로그램 혼란의 실제 값에 적응시키는 것이 바람직하다. 기술은 프로그램 혼란을 제어하고, 검증 및/또는 읽기 전압 레벨들에 대한 프로그램 혼란을 매칭하기 위해서 제공된다. 더욱 일반적으로, 기술은 저장 소자들의 세트를 액세스하기 위해 사용되는 검증 및/또는 읽기 전압을 커스터마이즈한다.As mentioned, program confusion can cause serious changes in the threshold voltage distribution. Program disruption occurs when unselected storage elements in the same word line, such as the selected storage element, are unintentionally programmed due to application of a relatively high program voltage to the selected word line. Thus, program confusion tends to raise the threshold voltage of the storage element. Also, the lowest state, e. G., The erase state, tends to rise the highest and can therefore serve as a worst case indicator of the amount of program confusion experienced in the set of storage elements. Measurements performed in flash memory devices show that the amount of program disruption varies considerably between different memory devices, between other blocks in the same device, and even between other word lines in the same block. To maintain program confusion at a similar level for all devices, or to maintain voltage levels at a specific device, block, and / or level, to ensure maximum performance of all memory devices in reliability (e.g., the smallest number of errors) It is desirable to adapt to the actual value of the program confusion in the word line. Techniques are provided to control program confusion and to match program confusion to verify and / or read voltage levels. More generally, the technique customizes the verify and / or read voltage used to access the set of storage elements.

도 6b는 프로그램 혼란을 경험한 비휘발성 저장 소자들의 세트의 임계 전압 분포를 나타낸 도이다. 도시된 읽기 참조 전압들(VR1 내지 VR7)은 도 6a에서와 동일하다. 여기서, 낮은 상태들을 위한 임계 전압 분포는 프로그램 혼란 때문에 도 6a에 도시된 분포와 비교해서 넓어지고 위쪽으로 시프트된다. 프로그램 혼란이 낮은 전압 상태들에서 큰 의미가 있는 반면에, 일반적으로 위쪽 상태들(upper states)은 프로그램 혼란에 고통받지 않는다. 인접한 데이터 상태들에 대한 분포들이 또한 일부 경우들에서 오버랩될 수 있다는 것에 주목해야 한다. 여기서, 도 6a의 동일한 읽기 전압들이 이 예에서, 적어도 읽기 전압들(VR1 내지 VR5)을 위해, 도 6b에서 표시된 데이터 상태들을 읽기 위해 사용되는 경우, 읽기 에러들이 야기할 수 있다는 것을 보일 수 있다. 각각의 읽기 전압들(VR1 내지 VR5)은 낮은 임계 전압 분포에 의해 오버랩된다. 대조적으로, 읽기 전압들(VR6 내지 VR7)은 이 예에서 낮은 임계 전압 분포에 의해 오버랩되지 않는다.6B is a diagram illustrating the threshold voltage distribution of a set of non-volatile storage elements experiencing program confusion. The read reference voltages V R1 through V R7 shown are the same as in FIG. 6A. Here, the threshold voltage distribution for the low states is widened and shifted upward compared to the distribution shown in FIG. 6A due to program confusion. While program disruption has great significance in low voltage states, generally upper states do not suffer from program confusion. It should be noted that distributions for adjacent data states may also overlap in some cases. Here, it can be seen that the same read voltages of FIG. 6A are used in this example to read the data states shown in FIG. 6B, at least for the read voltages V R1 to V R 5 , have. Each of the read voltages V R1 to VR 5 is overlapped by a low threshold voltage distribution. In contrast, the read voltages V R6 to VR 7 are not overlapped by a low threshold voltage distribution in this example.

또한, 프로그램 혼란의 효과들은 저장 소자들의 다른 세트들별로 다를 수 있다. 예를 들어, 저장 소자들의 다른 세트들의 임계 전압 분포는 디바이스, 블록 및/또는 워드 라인 레벨에서와 같이 변화할 수 있다. 따라서, 읽기 전압들의 고정된 세트가 사용되는, 동일한 경우에, 이것은 읽기 동작들 동안에 에러들을 야기하는 것과 같이, 비최적화된 결과들(non-optimal results)을 얻을 수 있다. 또한, 온도 변화들과 프로그래밍/소거 사이클들의 수와 같은 다른 요소들과, NAND 스트링의 소스 또는 드레인에서 저장 소자의 근접성을 근거로 하는 것과 같은 블록에서의 저장 소자의 상대적인 위치는 프로그램 혼란에 영향을 줄 수 있다.Also, the effects of program disruption may be different for different sets of storage elements. For example, the threshold voltage distributions of different sets of storage elements may vary, such as at the device, block and / or word line level. Thus, in the same case, where a fixed set of read voltages is used, this may result in non-optimal results, such as causing errors during read operations. In addition, the relative location of the storage elements in the block, such as those based on the temperature changes and the number of programming / erase cycles, and the proximity of the storage element in the source or drain of the NAND string, You can give.

도 6c는 도 6b의 임계 전압 분포의 측정과 대응하는 읽기 전압들의 세팅을 나타낸 도이다.6C is a diagram illustrating the measurement of the threshold voltage distribution of FIG. 6B and the setting of the corresponding read voltages.

실제 임계 분포를 측정하는 프로세스는 개별 읽기 동작들(separate read operations)에서 메모리 디바이스를 읽는 것을 포함한다. 여기서 읽기 동작들의 수는 분포 측정의 원하는 레졸루션(resolution)에 근거한다. 예를 들어, 저장 디바이스가 저장 소자당 3 비트를 표시하는 8개의 상태들을 사용하고, 상태당 10개의 포인트의 레졸루션이 원하게 되는 경우, 그 후, 읽기 동작들이 각각의 79개의 전압 임계 레벨들에 대해 수행된다. 도 6c에서, 각각의 도트는 읽기 포인트(read point)를 표시하고, 실선은 도 6b에서와 같이 동일하다. 각각의 빈(bin)의 높이가 그의 임계 전압이 상기 빈에 의해 지정된 범위에 있는 저장 소자들의 수를 나타내는 히스토그램이 제공될 수 있다. 저장 소자들의 주어진 세트를 위한 가장 적당한 읽기 레벨이 예를 들어, 인접한 상태들 사이의 최소값들로, 결정될 수 있다. 최소값들의 범위가 있을 때, 두 개의 데이터 상태들 사이의 가장 적당한 읽기 레벨은 두 상태들의 가장 낮은 분포 바로 위에 있을 수 있다. 여기서, 읽기 레벨들(V'R1 내지 V'R5)은 도 6b의 레벨들에 비례해서 최적의 레벨들로 시프트되는 반면에, VR6와 VR7은 변경되지 않는다. 도 6b의 읽기 레벨들이 사용되는 경우, 실질적인 읽기 에러들이 야기할 것이다. 일반적으로, 또한 최대 데이터 보유 시프트(maximum data retention shift)를 허용하기 위해서 읽기 레벨을 이전 레벨에 근접하게 두는 것이 바람직하다.The process of measuring the actual threshold distribution involves reading the memory device in separate read operations. Where the number of read operations is based on the desired resolution of the distribution measurement. For example, if the storage device uses eight states representing three bits per storage element, and a resolution of ten points per state is desired, then read operations may be applied to each of the 79 voltage threshold levels . In Fig. 6C, each dot represents a read point, and the solid line is the same as in Fig. 6B. A histogram may be provided in which the height of each bin represents the number of storage elements whose threshold voltage is in the range specified by the bin. The most suitable read level for a given set of storage elements can be determined, for example, with minimum values between adjacent states. When there is a range of minimum values, the most appropriate read level between two data states can be directly over the lowest distribution of the two states. Here, the read level (V 'to V R1' R5) is on the other hand is in proportion to the levels of Figure 6b shifts to the optimum level, V R6 R7 and V are not changed. If the read levels of FIG. 6B are used, substantial read errors will result. In general, it is also desirable to keep the read level close to the previous level to allow a maximum data retention shift.

일반적으로, 저장 소자들의 세트의 "임계 전압 분포"를 획득하는 것은 저장 소자들의 임계 전압들의 범위를 다중 서브-범위들로 나누는 것을 포함하고, 그 뒤 각각의 서브-범위에서 저장 소자들의 개별 발생 수들을 카운팅하는 것을 포함한다. 저장 소자들의 세트에서 저장 소자들의 모든 또는, 단지 일부분의 발생들을 카운트하는 것이 가능하다. 서브-범위들의 단지 일부분, 예를 들어, 하나 이상의 서브-범위들에 대한 발생들을 카운트하고, 다른 서브-범위들에 대한 결과를 추정하는 것이 가능하다.In general, acquiring the "threshold voltage distribution" of a set of storage elements involves dividing the range of threshold voltages of the storage elements into multiple sub-ranges, Lt; / RTI > It is possible to count occurrences of all or only a portion of the storage elements in the set of storage elements. It is possible to count occurrences of only a subset of the sub-ranges, for example, one or more sub-ranges, and to estimate the result for the other sub-ranges.

하나의 방식에서, 현재 디바이스, 블록 및/또는 워드 라인을 위한 프로그램 혼란의 온-라인 평가와, 상기 평가된 프로그램 혼란을 위한 전압 레벨 세팅들의 조정이 제공된다. 각각 제조된 메모리 디바이스의 실제 프로그램 혼란은 예를 들어, 블록-바이-블록 기초(block-by-block basis)로 측정될 수 있고, 매치는 전압 레벨 세팅들 (다른 데이터 상태들을 위한 읽기 및 검증 전압들)과 그러한 블록에 대해 측정된 프로그램 혼란들 사이에 만들어질 수 있다. 이러한 "블록당 매칭된(matched-per-block)" 전압 레벨 세팅들이 그 뒤 이후의(subsequent) 프로그램과 읽기 동작들에서 사용될 수 있다. 프로그램 혼란을 다루기 위해서, 그것은 검증 전압들 또는, 읽기 전압들, 또는 두 가지 모두를 수정해야한다.In one approach, an on-line evaluation of the program confusion for the current device, block and / or word line, and adjustment of the voltage level settings for the evaluated program confusion are provided. The actual program confusion of each fabricated memory device may be measured, for example, on a block-by-block basis, and the match may be determined by voltage level settings (read and verify voltages ) And the program confusion measured for such a block. Such "matched-per-block" voltage level settings may be used in subsequent program and read operations. To deal with program confusion, it must modify the verify voltages, the read voltages, or both.

프로그램 혼란 값은 존재하는 모든 데이터 상태들을 위한 페이지에서 소거 상태의 임계 전압 분포의 폭으로 정의될 수 있다. 즉, 페이지에 프로그램되는 데이터는 모든 가능한 데이터 상태들의 표시를 포함한다. 임계 전압 분포는 ECC 수정 특성들(ECC correction capabilities)에 따라서, 셀들의 임의의 백분위까지 고려될 수 있다. 프로그램 혼란 값은 예를 들어, 메모리 디바이스에 데이터를 랜덤하게 프로그래밍하고, 그 뒤, 모든 데이터 상태들의 임계 전압 분포를 읽고, 소거된 상태의 폭을 고려하는 것에 의해서 획득될 수 있다. 디폴트 전압 레벨 세팅이 이러한 프로그래밍에 사용될 수 있다.The program confusion value can be defined as the width of the threshold voltage distribution in the erased state in the page for all existing data states. That is, the data programmed into the page includes an indication of all possible data states. The threshold voltage distribution may be considered to any percentage of the cells, depending on the ECC correction capabilities. The program confusion value can be obtained, for example, by randomly programming the data in the memory device and then reading the threshold voltage distribution of all data states and considering the width of the erased state. Default voltage level settings can be used for such programming.

소거 레벨 임계 전압 분포의 폭이 획득되면, 남은 데이터 상태들을 위한 전압 레벨 세팅들이 결정될 수 있다. 전압 레벨들의 계산을 위한 두 가지 방식들이 있을 수 있다. 즉, "고정된 프로그램 혼란(fixed program disturb)" 방식과 "고정된 전압 윈도(fixed voltage window)" 방식이 있을 수 있다. 2개의 방식들은 동일한 원리를 갖는다.Once the width of the erase level threshold voltage distribution is obtained, the voltage level settings for the remaining data states can be determined. There can be two ways to calculate the voltage levels. That is, there may be a "fixed program disturb" scheme and a "fixed voltage window" scheme. The two schemes have the same principle.

첫째로, 우리는 소거된 상태를 제외한 모든 데이터 상태들에 이용할 수 있는 전압 윈도우(voltage window)를 확인한다. 8개의 데이터 상태들이 있을 때, 이용 가능한 전압 윈도우는 소거된 상태의 "엔드(end)" (가장 오른쪽) 전압 (예를 들어, 프로그램 혼란 값)과 VV7인 가장 높은 가능성 있는 데이터 상태(the highest possible data state)의 검증 전압 사이의 거리로 정의될 수 있다. 또한, 전압 윈도우는 소거 상태의 가장 낮은 (가장 왼쪽) 전압에서 시작하는 것으로 정의될 수 있다.First, we identify the voltage window available for all data states except the erased state. When there are eight data states, the available voltage window is the highest (most right) voltage of the erased state (e.g., the program disturbance value) and the highest possible data state of V V7 possible data state). Further, the voltage window can be defined to start at the lowest (leftmost) voltage of the erased state.

둘째로, 우리는 비례적으로 데이터 상태들 사이의 이러한 윈도우를 이러한 상태들의 상대적인 데이터 보유 시프트로 나눈다. 블록의 임의의 조건들(예를 들어, 쓰기/소거 사이클링)에 대한 저장 소자들의 데이터 보유 시프트와 주어진 보유 시간(given retention time)은 저장 소자 임계 전압에 의존한다 - 임계 전압이 높을수록, 시프트가 더 커진다. 이러한 의존의 양의 특성들은 기술적 특징이고, 예를 들어, 테스팅 및/또는 이론적인 계산들에 의해 획득될 수 있다. 데이터 상태들 사이의 이용 가능한 전압 윈도우의 분할은 이러한 특성들에 따를 수도 있다.Second, we proportionally divide this window between data states into a relative data hold shift of these states. The data retention shift and the given retention time of the storage elements for any conditions of the block (e.g., write / erase cycling) depend on the storage element threshold voltage - the higher the threshold voltage, It gets bigger. The positive properties of this dependency are technical features and can be obtained, for example, by testing and / or theoretical calculations. The division of the available voltage window between data states may be subject to these properties.

셋째로, 우리는 위의 내용에 근거하여, 각각의 상태들을 위한 읽기 레벨과 검증 레벨을 결정한다. 2개의 언급된 방식들 사이의 차이는 다음과 같다. 고정된 프로그램 혼란 방식에서, 프로그램 혼란 값은 전압 윈도우를 수정하는 것에 의해서, 예를 들어, 가장 높은 데이터 상태의 검증 전압 레벨을 수정하는 것에 의해서 기결정된 고정된 값으로 조정된다. 프로그램 혼란 현상은 프로그래밍 동안에 워드 라인에 인가되는 높은 프로그래밍 전압에 의해 소거된 상태에서 저장 소자들에 야기되는 스트레스에 의해서 야기된다. 또한, 선택된 저장 소자가 가장 높은 데이터 상태로 프로그램될 때와 같이, 워드 라인에 인가되는 프로그래밍 전압이 높아질 때, 프로그램 혼란은 높아진다. 이것은 프로그램 혼란이 가장 높은 데이터 상태의 검증 레벨을 변경시키는 것에 의해서 제어될 수 있음을 의미한다. 반복하는 절차는 원하는 프로그램 혼란 값을 획득하기 위해서 구현될 수 있다. 예를 들어, 프로그램 혼란이 너무 높은 경우, 우리는 가장 높은 데이터 상태의 검증 레벨(verify level of the highest data state)을 감소시킬 수 있다. 그 뒤, 프로그램 혼란은 예를 들어, 원하는 레벨에 근접하도록 결정하기 위해서, 임계 전압 분포를 결정하는 것에 의해서, 다시 결정된다. 프로그램 혼란이 여전히 너무 높은 경우, 우리는 가장 높은 데이터 상태의 검증 레벨을 다시 감소시킬 수 있다.Third, we determine the read and verify levels for each state based on the above. The difference between the two mentioned schemes is as follows. In a fixed program confusion scheme, the program confusion value is adjusted to a predetermined fixed value by modifying the voltage window, e.g., by modifying the verify voltage level of the highest data state. The program confusion phenomenon is caused by the stress caused to the storage elements in the erased state by the high programming voltage applied to the word line during programming. Also, when the programming voltage applied to the word line is high, such as when the selected storage element is programmed to the highest data state, the program confusion is high. This means that the program confusion can be controlled by changing the verification level of the highest data state. The iterative procedure can be implemented to obtain the desired program confusion value. For example, if the program confusion is too high, we can reduce the verify level of the highest data state. The program confusion is then determined again, for example, by determining the threshold voltage distribution to determine that it is close to the desired level. If the program confusion is still too high, we can reduce the verification level of the highest data state again.

모든 상태들의 검증 레벨들이 선형(linear) 또는 비선형(non-linear)인 알려진 함수(function)와 이용 가능한 전압 윈도우에 의해 서로 관련될 수 있다는 것에 주목해야 한다. 예를 들어, 가장 높은 상태들의 가장 높은 데이터 보유 손실(the higher data retention loss) 때문에, 일반적으로 검증 레벨들은 상대적으로 높은 상태들을 위한 공간보다 낮은 상태들을 위한 공간을 제공하기 위해서 세트된다. 따라서, 전체 전압 윈도우가 알려지게 되면, 우리는 읽기 또는 검증 전압들을 계산할 수 있다.It should be noted that the verification levels of all states may be correlated by known voltage windows with known functions that are linear or non-linear. For example, due to the higher data retention loss of the highest states, the verification levels are typically set to provide space for states that are lower than space for relatively higher states. Thus, once the full voltage window becomes known, we can calculate the read or verify voltages.

고정된 전압 윈도우 방식에서, 가장 높은 데이터 상태의 검증 레벨은 워드 라인에서 워드 라인으로, 블록에서 블록으로 및/또는 디바이스에서 디바이스로 달라질 수 있는 측정된 것과 같은 프로그램 혼란을 얻게 되어서, 디폴트값으로 고정되어 남는다. 변경 가능한 프로그램 혼란 값은 남은 데이터 상태들을 위해 변경 가능한 상태 폭의 결과를 얻을 수 있다.In the fixed voltage window scheme, the verify level of the highest data state has the same program confusion as measured, which can vary from word line to word line, from block to block, and / or from device to device, Respectively. The changeable program confusion value can result in a changeable state width for the remaining data states.

전압 레벨 세팅들을 조정하기 위한 절차는 메모리 디바이스의 제조 단계에서 수행되거나 또는, 메모리 디바이스가 예를 든 방식들에서, 최종 사용자에게 전달된 후에 수행될 수 있다. 또한, 원할 경우, 조정은 다른 시간에 반복될 수 있다. 또는, 조정은 메모리 디바이스의 한 주기(life) 동안 단지 한 차례 수행될 수 있다. 실제로, 프로그램 혼란은 메모리 디바이스가 추가 프로그램-소거 주기들을 경험할 때마다 줄어든다. 그 결과, 이후의 조정(subsequent adjustment)이 필요하지 않을 수 있다.The procedure for adjusting the voltage level settings may be performed at the manufacturing stage of the memory device, or may be performed after the memory device has been delivered to the end user, in the illustrative ways. Also, if desired, adjustments can be repeated at different times. Alternatively, the adjustment may be performed only once during one lifetime of the memory device. Indeed, program confusion is reduced each time the memory device experiences additional program-erase cycles. As a result, subsequent adjustments may not be necessary.

예를 들어, 디바이스가 최종 사용자에게 전달되면, 조정은 온도 변화들, 다수 프로그래밍 주기들의 패싱, 데이터가 마지막으로 쓰인 후 임의의 시간의 패싱 등과 같은, 다른 이벤트들에 의해서 트리거될 수 있다. 적당한 트래킹 구성 요소들 및/또는 프로세스들이 이러한 목적을 위해 제공된다. 하나의 방식에서, 조정된 전압 값들은 ROM 퓨즈에서 플래시 내부 파라미터들의 저장과 유사한 읽을 수 있는 프로그래밍 방법(reliable programming method)을 이용하는 각각의 디바이스 블록을 위해 메모리 디바이스에 저장될 수 있다. 블록이 프로그래밍되거나 또는 읽혀지기 위해 어드레스되어질 때, 이러한 블록-지정 값들(block-specific values)은 메모리 디바이스의 정상적인 동작을 위해 검색되고 사용될 수 있다.For example, if a device is delivered to an end user, the adjustment may be triggered by other events, such as temperature changes, passing of multiple programming cycles, passing of arbitrary time since the data was last written, and so on. Appropriate tracking components and / or processes are provided for this purpose. In one approach, the adjusted voltage values may be stored in the memory device for each device block using a reliable programming method similar to the storage of flash internal parameters in a ROM fuse. When a block is programmed or addressed to be read, such block-specific values can be retrieved and used for normal operation of the memory device.

따라서, 하나의 방식에서, 읽기 및/또는 검증 전압들의 커스터마이즈된 세트들은 제조 과정에서와 같이, 메모리 디바이스에서 저장 소자들의 세트를 위해 결정될 수 있다. 전압들의 세트는 메모리 디바이스에서 비휘발성 저장 위치에 저장될 수 있고, 읽기 또는 프로그래밍 동작이 수행될 때마다 그 다음에 액세스될 수 있다. 추가적인 상세한 내용은 도 9a 내지 도 9c 및 도 10에서 보인다.Thus, in one approach, customized sets of read and / or verify voltages can be determined for a set of storage elements in a memory device, such as in a manufacturing process. The set of voltages may be stored in a non-volatile storage location in the memory device and then accessed each time a read or programming operation is performed. Additional details are shown in Figures 9a-9c and 10.

도 7은 프로그래밍 전압들 및 검증 전압들의 펄스열(700)을 나타낸 도이다. 프로그램 전압들은 계단식 방식(step wise manner)으로 크기가 증가한다. 예를 들어, 프로그램 전압들은 VPGM1의 크기를 갖는 프로그램 펄스(705)에서 시작하여, VPGM2의 크기를 갖는 프로그램 펄스(710)가 뒤를 잇고, VPGM3의 크기를 갖는 프로그램 펄스(715) 등과 같이 증가한다. 각각의 프로그램 펄스 후에, 연속적인 검증 전압들(VV1 내지 VV7)이 파형들(720, 725 및, 730)로 표시되는 것과 같이, 인가된다. 이러한 검증 전압들은 도 6a 내지 도 6c와 관련해서 논의된 바와 같이 저장 소자들의 주어진 세트로 커스터마이즈될 수 있다.7 shows a pulse train 700 of programming voltages and verify voltages. The program voltages increase in size in a step wise manner. For example, the program voltages may be programmed starting with program pulses 705 having a magnitude of V PGM1 followed by program pulses 710 having a magnitude of V PGM2 , such as program pulses 715 having a magnitude of V PGM3 , . After each program pulse, successive verify voltages V V1 through V V7 are applied, as indicated by waveforms 720, 725 and 730. These verify voltages can be customized to a given set of storage elements as discussed in connection with Figures 6A-6C.

또한 쓰기 전압들은 비휘발성 저장 소자들의 다른 세트들로 커스터마이즈될 수 있다. 도 8a는 프로그래밍 동안에 사용될 수 있는 연속적인 쓰기 또는 프로그램 전압들을 나타낸 도이다. 중간 검증 전압들(intermediate verify voltages)은 명확성을 위해 생략된다. 앞서 언급한 바와 같이, 모든 저장 소자들이 그들의 대응하는 상태들로 프로그램되었거나 또는 마지막 전압인 VPGM - FINAL이 두 개 중 가장 최근에 도달할 때까지, 일반적으로 쓰기 전압들은 초기 레벨인, VPGM - INITIAL에서 시작하고, 스텝 크기(step size)에 따라 크기가 증가한다. 하나의 방식에서, 하나 이상의 쓰기 전압 파라미터들이 저장 소자들의 특정 세트로 커스터마이즈될 수 있다. 예를 들어, 낮은 상태들을 갖는 저장 소자들의 세트의 임계 전압 분포가 그러한 상태들을 위한 임계 전압이 기대값보다 높거나 또는 임계 분포의 폭이 기대하는 것보다 큰 것을 나타내는 경우, 우리는 프로그래밍 효과가 평균보다 더 우세한(stronger) 것으로 결론지을 수 있다. 이러한 경우들에서, 우리는 VPGM - INITIAL 및/또는 스텝 크기를 줄이는 것에 의해서 쓰기 전압들을 감소시킬 수 있다. 일부 경우들에서, 최대 허용 가능한 VPGM - FINAL 또는 가장 낮은 레벨들에서의 펄스들이 반복될 수 있다. 프로그래밍 효과가 저장 소자들의 세트에 대한 평균보다 약해지는 경우, 예를 들어, 모든 저장 소자들이 그들의 대응하는 상태들로 프로그램되기 전에 VPGM-FINAL에 도달하는 경우, 유사한 조정들이 만들어질 수 있다. 그러한 조정들은 VPGM - FINAL, 스텝 크기 및/또는, 최대 허용 가능한 VPGM - FINAL을 증가시키는 것을 포함할 수 있다. 스텝 크기는 직접적으로 분포 상태들의 폭에 영향을 준다는 것에 주목해야만 한다. 그 결과, 각각의 분포의 폭이 평균보다 넓어지는 경우 스텝 크기가 감소할 수 있고, 각각의 분포의 폭이 평균보다 좁아지는 경우 스텝 크기는 예를 들어, 더 빠르게 프로그래밍에 도달하기 위해서 증가할 수 있다.The write voltages may also be customized to other sets of non-volatile storage elements. Figure 8A is a diagram illustrating successive write or program voltages that may be used during programming. Intermediate verify voltages are omitted for clarity. As noted earlier, all storage elements to their the corresponding or programmed with the state or the last voltage V PGM - until it reaches the last of the two is FINAL dog, typically writing voltages in the initial level, V PGM - Start at INITIAL and increase in size according to the step size. In one approach, one or more write voltage parameters may be customized to a particular set of storage elements. For example, if the threshold voltage distribution of a set of storage elements having low states indicates that the threshold voltage for such states is higher than expected or the width of the threshold distribution is greater than expected, It can be concluded that it is stronger than that. In these cases, we can reduce the write voltages by reducing V PGM - INITIAL and / or step size. In some cases, the pulses at the maximum allowable V PGM - FINAL or lowest levels may be repeated. Similar adjustments can be made if the programming effect is weaker than the average for a set of storage elements, for example when V PGM-FINAL is reached before all storage elements are programmed to their corresponding states. Such adjustments may include increasing V PGM - FINAL , step size and / or maximum allowable V PGM - FINAL . It should be noted that the step size directly affects the width of the distribution states. As a result, the step size may decrease if the width of each distribution is wider than the average, and the step size may increase, for example, to reach programming faster if the width of each distribution is narrower than the average have.

도 8b는 비휘발성 저장 소자들의 다른 세트들을 커스터마이즈하는 쓰기, 검증 및 읽기 전압들을 포함하는 데이터를 나타낸 도이다. 언급한 바와 같이, 쓰기, 검증 및/또는 읽기 전압들은 저장 소자들의 다른 세트들로 커스터마이즈될 수 있다. 저장 소자들의 각각의 세트를 위한 최적의 전압들이 이후의 사용(subsequent use)을 위해 결정되고 저장될 수 있다. 예를 들어, 메모리 디바이스에서 특정 메모리 디바이스, 블록 워드 라인 및/또는 그룹 워드 라인들을 위한 전압들은 메모리 디바이스의 비휘발성 저장 위치에 저장될 수 있다. 여기서, 세트 1인, 저장 소자들의 제1 세트를 위한 쓰기 전압들은 VPGM -1로 표시되고, 검증 전압들은 VV1 -1, VV2 -2, 등등으로 표시되고, 읽기 전압들은 VR1 -1, VR2 -2, 등등으로 표시된다. 또한, VPGM -1은 세트 1에 대해서, 하나 이상의 VPGM - INITIAL, 스텝 크기 및 VPGM - FINAL로 표시될 수 있다. 각각의 이러한 3개의 변수들은 저장 소자들의 다른 세트들에 맞추어질 수 있다. 유사하게, 세트 2인, 저장 소자들의 제2 세트를 위한 쓰기 전압들은 VPGM -2로 표시되고 (예를 들어, 세트 2에 대해서, 하나 이상의 VPGM - INITIAL, 스텝 크기 및, VPGM -FINAL로 표시된다), 저장 소자들의 제2 세트를 위한 검증 전압들은 VV2 -1, VV2 -2, 등으로 표시되고, 읽기 전압들은 VR1 -2, VR2 -2, 등으로 표시된다. 일반적으로, 세트 i인, 저장 소자들의 i번째 세트를 위한 프로그래밍 전압들은 VPGM -i 등으로 표시되고 (예를 들어, 세트 i에 대해서, 하나 이상의 VPGM - INITIAL, 스텝 크기 및, VPGM - FINAL로 표시된다), 한편 저장 소자들의 i번째 세트를 위한 검증 전압들은 VV1 -i, VV2 -i, 등으로 표시되고, 읽기 전압들은 VR1 -i, VR2 -i, 등으로 표시된다.8B is a diagram illustrating data including write, verify, and read voltages that customize different sets of non-volatile storage elements. As noted, write, verify, and / or read voltages may be customized with different sets of storage elements. Optimal voltages for each set of storage elements may be determined and stored for subsequent use. For example, in a memory device, voltages for a particular memory device, a block word line, and / or a group word line may be stored in a non-volatile storage location of the memory device. Here, the set 1, the voltage for writing the first set of storage elements are represented as V PGM -1, verify voltages are denoted by V1 -1 V, -2 V V2, and so on, read voltages V R1 -1 , V R2 -2 , and so on. In addition, V PGM -1 may be represented by one or more of V PGM - INITIAL , step size and V PGM - FINAL for set 1. Each of these three variables can be tailored to different sets of storage elements. Similarly, write voltages for the second set of storage elements, which are set 2, are represented by V PGM -2 (e.g., for set 2, one or more V PGM - INITIAL , step size, and V PGM - FINAL , The verify voltages for the second set of storage elements are labeled V V2 -1 , V V2 -2 , etc., and the read voltages are labeled V R1 -2 , V R2 -2 , and so on. In general, the set of i, the programming voltage for the i-th set of storage elements being represented by V PGM -i, etc. (for example, more than one set for the i V PGM - INITIAL, the step size, and, V PGM - FINAL ), while the verify voltages for the i-th set of storage elements are labeled V V1 -i , V V2 -i , etc., and the read voltages are labeled V R1 -i , V R2 -i , .

도 9a는 비휘발성 저장 소자들의 세트를 위해 전압들을 결정하기 위한 프로세스를 나타낸 도이다. 단계 900은 비휘발성 저장 소자들의 세트를 위해 전압들 (예를 들어, 읽기, 검증 및/또는 쓰기 전압들)의 세트를 획득하기 위한 프로세스를 시작하는 것을 포함한다. 세트는 다중 워드 라인들을 갖는 블록에서 하나 이상의 특정 워드 라인들과 관련되는 저장 소자들, 다중 블록들을 갖는 메모리 디바이스에서 특정 블록과 관련되는 저장 소자들 또는, 전체 특정 메모리 디바이스와 관련되는 저장 소자들을 표시할 수 있다. 단계 902는 하나의 방식에서, 랜덤 테스트 데이터를 갖는 비휘발성 저장 소자들의 세트를 프로그래밍하는 것을 포함한다. 테스트 데이터는 모든 데이터 상태들을 포함해야 한다. 예를 들어, 메모리 디바이스가 전달되기 전에 제조 시설(manufacturing site)에서 테스팅을 경험할 때, 그러한 테스트 데이터가 이용 가능할 수 있다. 메모리 디바이스가 전달된 후에, 어떠한 테스트 데이터도 이용 가능하지 않은 경우, 그 뒤 존재하는 사용자 데이터가 대신 프로그램될 수 있다. 사용자 데이터는 또한 뒤섞일 수 있다. 그 결과, 모든 데이터 상태들을 상대적으로 균등하게 표시한다. 예를 들어, 하나의 주어진 블록과 같은, 메모리 디바이스의 하나의 위치에 존재하는 사용자 데이터는, 읽기/검증 전압들이 결정되기 위한 저장 소장들의 특정 세트를 포함하는 다른 블록과 같은, 다른 위치에 복사될 수 있다.Figure 9A illustrates a process for determining voltages for a set of non-volatile storage elements. Step 900 includes initiating a process for obtaining a set of voltages (e.g., read, verify and / or write voltages) for a set of non-volatile storage elements. The set may include storage elements associated with one or more particular word lines in a block having multiple word lines, storage elements associated with a particular block in a memory device having multiple blocks, or storage elements associated with the entire particular memory device can do. Step 902 includes, in one manner, programming a set of non-volatile storage elements having random test data. The test data should include all data states. For example, such test data may be available when the memory device experiences testing at a manufacturing site prior to delivery. If no test data is available after the memory device is delivered, then the existing user data may be programmed instead. User data can also be scrambled. As a result, all data states are displayed relatively evenly. For example, user data residing at one location of a memory device, such as one given block, may be copied to another location, such as another block containing a particular set of storage locations for which the read / verify voltages are to be determined .

단계 902 이후에, 두 경로들 중 어느 하나가 수행될 수 있다. 제1 경로에서, 단계 904는 예를 들어, 도 6c에 도시된 바와 같이, 다른 증가하는 전압 임계 레벨들에 읽기 동작들을 수행하는 것에 의해서, 저장 소자들의 세트의 임계 전압 분포를 결정하는 것을 포함한다. 일반적으로, 이것은 모든 데이터 상태들의 임계 전압 분포를 결정하는 것을 포함할 수 있다. 단계 906은 임계 전압 분포를 근거로 전압들의 세트를 결정하는 것을 포함한다. 예를 들어, 읽기 전압들의 세트는 도 6c에 도시된 바와 같이, 임계 전압 분포의 최소값을 근거로 결정될 수 있다. 검증 전압들의 세트는 전압 윈도우를 근거로 결정될 수 있다. 예를 들어, 전압 윈도우는 임계 전압 분포로부터 결정될 수 있고, 검증 전압들은 전체 전압 윈도우의 제약 내에서 검증 전압들 사이의 원하는 상대적인 공간을 제공하는 함수로부터 결정될 수 있다. 단계 912는 비휘발성 저장 위치에서 전압들의 세트를 확인하는 데이터를 저장하는 것을 포함한다. 예를 들어, 전압들의 세트의 데이터는 임계 전압 분포가 획득된 메모리 디바이스에 있는 저장 소자들에 저장될 수 있다. 이것들은 예를 들어, 사용자 데이터를 저장하지 않는 저장 소자들일 수 있다. 하나의 방식에서, 데이터는 임계 전압 분포가 획득된 블록의 저장 소자들에 저장된다. 다른 방식에서, 데이터는 임계 전압 분포가 획득된 워드 라인의 저장 소자들에 저장된다. 또는, 메모리 디바이스의 컨트롤러에 의해 사용되는 비휘발성 저장 위치가 사용될 수 있다. 다른 위치들 또한 사용될 수 있다.After step 902, either one of the two paths can be performed. In the first path, step 904 includes determining the threshold voltage distribution of the set of storage elements by performing read operations on other increasing voltage threshold levels, for example, as shown in Figure 6C . Generally, this may include determining the threshold voltage distribution of all data states. Step 906 includes determining a set of voltages based on the threshold voltage distribution. For example, the set of read voltages may be determined based on the minimum value of the threshold voltage distribution, as shown in Figure 6C. The set of verify voltages may be determined based on the voltage window. For example, a voltage window can be determined from a threshold voltage distribution, and verify voltages can be determined from a function that provides a desired relative space between verify voltages within the constraints of the overall voltage window. Step 912 includes storing data identifying a set of voltages in a non-volatile storage location. For example, data of a set of voltages may be stored in storage elements in a memory device from which a threshold voltage distribution is obtained. These may be, for example, storage elements that do not store user data. In one approach, the data is stored in storage elements of the block from which the threshold voltage distribution is obtained. In another approach, the data is stored in the storage elements of the word line from which the threshold voltage distribution is obtained. Alternatively, a non-volatile storage location used by the controller of the memory device may be used. Other positions may also be used.

두 번째 경로에서, 단계 908은 모든 데이터 상태들보다 더 적은 저장 소자들의 세트의 임계 전압 분포를 결정하는 것을 포함한다. 예를 들어, 소거된 상태의 임계 전압 분포가 결정될 수 있다. 언급한 바와 같이, 소거된 상태의 임계 전압 분포의 상부 에지(upper edge)는 이러한 상태가 프로그램 혼란에 가장 영향을 받기 쉽기 때문에, 프로그램 혼란의 레벨을 측정하기 위해서 사용될 수 있다. 상태 1을 위한 최적 읽기 레벨은 이러한 상부 에지를 근거로 결정될 수 있고, 남은 상태들을 위한 최적 읽기 레벨들은 상태들을 위한 읽기 레벨들 사이의 알려진 관계를 근거로 결정될 수 있다. 즉, 공식은 상태 i (i>2)를 위한 최적 읽기 레벨을 상태 1을 위한 최적 읽기 레벨과 관련시키기 위해 사용될 수 있다. 또한, 상태들 1과 2를 위한 것과 같이, 다중 데이터 상태들을 위한 저장 소자들의 세트의 임계 전압 분포를 결정하는 것이 가능할 수 있고, 이것들을 다른 상태들과 관련시키는 것이 가능할 수 있다. 예를 들어, 공식은 상태 i (i>3)를 위한 최적 읽기 레벨과 상태들 1과 2를 위한 최적의 읽기 레벨들을 관련시키기 위해 사용될 수 있다. 그러한 공식들은 이론적인 관계들 및/또는 경험적인 테스트 결과들로부터 획득될 수 있다. 따라서 단계 910은 모든 데이터 상태들보다 더 작은 임계 전압 분포를 근거로 전압들의 세트를 결정하는 것을 포함한다.In the second path, step 908 includes determining a threshold voltage distribution of the set of storage elements that is less than all data states. For example, the threshold voltage distribution of the erased state can be determined. As mentioned, the upper edge of the threshold voltage distribution in the erased state can be used to measure the level of program disruption, since such conditions are most susceptible to program disturbances. The optimal read level for state 1 may be determined based on this upper edge and the optimal read levels for the remaining states may be determined based on a known relationship between read levels for states. That is, the formula can be used to relate the optimal read level for state i (i > 2) to the optimal read level for state one. It may also be possible to determine the threshold voltage distribution of a set of storage elements for multiple data states, such as for states 1 and 2, and it may be possible to associate them with other states. For example, the formula can be used to relate the optimal read level for state i (i > 3) to the optimal read levels for states 1 and 2. Such formulas can be obtained from theoretical relationships and / or empirical test results. Thus, step 910 includes determining a set of voltages based on a lower threshold voltage distribution than all data states.

또한, 전압들의 세트의 데이터는 임의의 방식으로 표시될 수 있다. 앞서 논의된 도 8b는 하나의 가능한 예를 제공한다. 또한, 저장 소자들의 식별자(identifier)가 (예를 들어, set 1, 2, ..., i)로 도시된 바와 같이, 일부 경우들에서 사용될 수 있다. 예를 들어, 컨트롤러는 대응하는 디바이스에서 각각의 블록을 위한 또는, 디바이스에서 블록들의 그룹들을 위한 전압들의 다른 세트를 저장하는 저장 위치를 가질 수 있다. 이 경우에, 저장 소자들의 세트의 식별자는 전압들의 각각의 세트와 관련될 수 있다. 다른 경우들에서, 전압들의 세트의 위치는 전압들을 인가하는 저장 소자들의 식별자 역할을 한다. 예를 들어, 블록에 저장되는 전압들의 세트는 그 블록에 인가될 수 있거나 또는, 워드 라인에 저장된 전압들의 세트는 그 워드 라인에 인가될 수 있다. 다른 예에서, 다른 블록들의 전압들의 세트들은 하나의 블록에 저장되고, 이러한 경우에, 식별자는 블록과 전압들의 그의 대응하는 세트를 관련시키기 위해서 필요할 수도 있다. 일부 경우들에서, 저장 위치에서 그들의 관계있는 위치가 전압들을 인가하는 저장 소자들을 확인하도록, 전압들의 세트들이 저장될 수 있다. 예를 들어, 저장 위치에서 제1 위치는 제1 블록에 대응할 수 있고, 한편 저장 위치에서 제2 위치는 제2 블록에 대응할 수 있고, 기타 등등일 수 있다. 또는, 저장 위치는 블록 내에 있을 수 있다. 여기서, 저장 위치에서 제1 위치는 제1 워드 라인 또는 블록에서 워드 라인들의 세트에 대응할 수 있고, 한편 저장 위치에서 제2 위치는 제2 워드 라인 또는 블록에서 워드 라인들의 세트에 대응할 수 있고, 기타 등등일 수 있다.Also, the data of the set of voltages may be displayed in any manner. Figure 8b discussed above provides one possible example. Also, the identifier of the storage elements may be used in some cases, as shown by (e.g., set 1, 2, ..., i). For example, the controller may have a storage location for storing a different set of voltages for each block in the corresponding device, or for groups of blocks in the device. In this case, the identifier of the set of storage elements may be associated with each set of voltages. In other cases, the location of the set of voltages serves as an identifier for the storage elements that apply the voltages. For example, a set of voltages stored in a block may be applied to the block, or a set of voltages stored in a word line may be applied to the word line. In another example, the sets of voltages of different blocks are stored in one block, in which case the identifier may be needed to relate the block to its corresponding set of voltages. In some cases, sets of voltages may be stored so that their relative positions at the storage location identify the storage elements to which to apply the voltages. For example, the first location in the storage location may correspond to the first block, while the second location in the storage location may correspond to the second block, and so on. Alternatively, the storage location may be within a block. Wherein the first location in the storage location may correspond to a set of word lines in a first word line or block while the second location in the storage location may correspond to a set of word lines in a second word line or block, And so on.

또한, 전압들의 절대값들이 저장될 수 있거나 또는, 오프셋 값들(offset values)이 값들의 참조 세트 또는 단일 참조 값에서 오프셋들을 나타내기 위해 저장될 수 있다. 또는, 전압 회로를 직접 제어하기 위해 사용되는 데이터가 디지털-아날로그 변환기에 입력되는 바이너리 코드 워드와 같이, 사용될 수 있다. 임의의 경우에서, 그러한 데이터는 전압들의 세트를 나타내기 위한 것으로 이해된다.In addition, the absolute values of the voltages may be stored, or offset values may be stored to indicate offsets in a reference set of values or a single reference value. Alternatively, data used to directly control the voltage circuit may be used, such as a binary code word to be input to the digital-to-analog converter. In any case, such data is understood to represent a set of voltages.

여기서 유리하게 제공되는 기술은 참조 저장 소자들의 사용을 요구하지 않는다. 그러한 참조 저장 소자들은 디바이스가 경험했던 임계 전압 변경들을 추적하기 위해 비사용자 데이터(non-user data)를 저장하는 추가적인 저장 소자들이다. 참조 저장 소자들은 사용자 데이터를 저장하는 저장 소자들의 범위를 넘어서 메모리 디바이스에서 추가적인 공간을 소비한다. 참조 저장 소자들은 일반적으로 "온 더 플라이(on the fly)"를 읽는다. 그 결과, 데이터의 페이지가 읽힐 때마다 조정이 일어난다. 이 경우에, 이후의 사용을 위한 비휘발성 저장 위치에서 전압들의 세트의 어떠한 저장도 없다. 또한, 일반적으로 참조 저장 소자들은 임계 전압 분포들을 측정하는 것을 포함하지 않는다. 참조 저장 소자들이면, 측정들은 저장 소자들의 비-오버래핑 세트인, 제2의 전압들을 결정하는데 사용하기 위한, 예를 들어, 참조 저장 소자들인, 저장 소자들의 하나의 세트에서 진행된다. 대조적으로, 여기서 제공되는 기술이면, 전압들을 이용해서 그 이후에 액세스되는 저장 소자들의 동일 세트에 대해서, 측정들이 진행되고, 전압들이 결정된다.The technique advantageously provided here does not require the use of reference storage elements. Such reference storage elements are additional storage elements that store non-user data to track threshold voltage changes experienced by the device. Reference storage elements consume additional space in the memory device beyond the range of storage elements that store user data. Reference storage elements typically read "on the fly ". As a result, adjustments occur each time a page of data is read. In this case, there is no storage of a set of voltages in a non-volatile storage location for later use. Also, reference storage elements generally do not include measuring threshold voltage distributions. For reference storage elements, the measurements proceed in one set of storage elements, for example reference storage elements, for use in determining the second voltages, which is a non-overlapping set of storage elements. In contrast, in the case of the technique provided here, measurements are made and voltages determined for the same set of storage elements subsequently accessed using voltages.

도 9b는 도 9a의 프로세스에 의해서 결정된 기결정된 전압들을 이용해서 비휘발성 저장 소자들의 세트의 사용자 데이터를 액세스하기 위한 프로세스를 나타낸 도이다. 하나의 방식에서, 메모리 디바이스가 사용자에게 전달된 후에, 액세스하는 것이 발생한다. 즉, 디바이스가 제조되었고 사용자에 의해 사용되는 호스트 시스템에 인스톨된 후에, 액세스하는 것이 발생한다. 단계 920은 비휘발성 저장 소자들의 세트를 위한 동작 (예를 들어, 프로그램, 검증 또는 읽기)을 시작하는 것을 포함한다. 단계 922는 비휘발성 저장 위치에서 전압들의 세트를 획득하는 것을 포함한다. 단계 924는 전압들의 세트를 이용해서 비휘발성 저장 소자들의 세트를 위해 사용자 데이터를 액세스하는 것을 포함한다. 그러한 액세스하는 것은 프로그래밍하는 것/검증하는 것 또는 읽는 것을 포함할 수 있다.FIG. 9B illustrates a process for accessing user data in a set of non-volatile storage elements using predetermined voltages determined by the process of FIG. 9A. FIG. In one approach, access occurs after the memory device is delivered to the user. That is, access occurs after the device is manufactured and installed in the host system used by the user. Step 920 includes initiating an operation (e.g., program, verify, or read) for the set of non-volatile storage elements. Step 922 includes acquiring a set of voltages at a non-volatile storage location. Step 924 includes accessing the user data for a set of non-volatile storage elements using a set of voltages. Such accessing may include programming / verifying or reading.

도 9c는 비휘발성 저장 소자들의 다중 세트들을 위해 전압들을 결정하기 위한 프로세스를 나타낸 도이다. 언급한 바와 같이, 전압들은 단일 메모리 디바이스 내에서 그리고 다른 메모리 디바이스들 사이에서 포함하는, 저장 소자들의 다른 세트들로 커스터마이즈될 수 있다. 많은 단계가 도 9a에서의 단계들과 비슷하다. 단계 930은 메모리 디바이스에서 하나 이상의 비휘발성 저장 소자들의 세트들을 선택하는 것을 포함한다. 단계 932는 전압들의 대응하는 세트를 획득하기 위한 프로세스를 시작하는 것을 포함한다. 단계 934는 랜덤 테스트 데이터를 갖는 비휘발성 저장 소자들의 세트를 프로그래밍하는 것을 포함한다. 단계 936은 하나 이상의 비휘발성 저장 소자들의 세트들을 위해 임계 전압 분포를 결정하는 것을 포함한다. 단계 938은 임계 전압 분포를 근거로 전압들의 세트를 결정하는 것을 포함한다. 단계 940은 비휘발성 저장 위치에서 현재 선택된 하나 이상의 비휘발성 저장 소자들의 세트들을 위해 전압들의 대응하는 세트를 저장하는 것을 포함한다. 결정 단계 942에서, 메모리 디바이스에 저장 소자들의 다음 세트(next set)가 있으면, 프로세스는 다음의 하나 이상의 비휘발성 저장 소자들의 세트들을 선택하는, 단계 930을 계속한다. 메모리 디바이스에 저장 소자들의 다음 세트가 없으면, 프로세스는 결정 단계 946을 계속한다. 다중 메모리 디바이스들이 분석되는 제조 환경에서와 같이, 전압들이 결정되기 위한 다음 메모리 디바이스가 있으면, 프로세스는 단계 930을 계속한다. 단계 946에서 다음 메모리 디바이스가 없으면, 프로세스는 단계 948에서 종료한다.9C illustrates a process for determining voltages for multiple sets of non-volatile storage elements. As mentioned, the voltages can be customized into different sets of storage elements, including within a single memory device and between different memory devices. Many steps are similar to the steps in FIG. 9A. Step 930 includes selecting one or more sets of non-volatile storage elements in the memory device. Step 932 includes starting a process for obtaining a corresponding set of voltages. Step 934 includes programming a set of non-volatile storage elements having random test data. Step 936 includes determining a threshold voltage distribution for the one or more sets of non-volatile storage elements. Step 938 includes determining a set of voltages based on the threshold voltage distribution. Step 940 includes storing a corresponding set of voltages for the set of one or more non-volatile storage elements currently selected in the non-volatile storage location. In decision step 942, if there is a next set of storage elements in the memory device, the process continues with step 930, where the next set of one or more non-volatile storage elements is selected. If there is no next set of storage elements in the memory device, the process continues with decision step 946. [ If there are next memory devices for which voltages are to be determined, such as in a manufacturing environment where multiple memory devices are analyzed, the process continues at step 930. [ If at step 946 the next memory device is not present, then the process ends at step 948.

예를 들어, 프로세스를 통한 각각의 경로는 저장 소자들의, 워드 라인을 위한 전압들의 세트, 워드 라인들의 세트, 블록 또는, 블록들의 세트를 획득하는 것을 포함할 수 있다. 예를 들어, 전압들의 주어진 세트는 개별 워드 라인의 저장 소자들 또는 워드 라인들의 세트에 인가될 수 있거나 또는, 개별 블록 또는 블록들의 세트에 인가될 수 있다. 또한, 전압들의 다중 세트들, 예를 들어, 쓰는 것, 검증하는 것 및/또는 읽는 것이 결정될 때, 각각의 세트는 저장 소자들의 다른 그룹에 인가될 수 있음에 주목해야 한다. 예를 들어, 검증 전압들의 하나의 세트는 전체 메모리 디바이스를 위해 획득될 수 있고, 한편 읽기 전압들의 다른 세트들은 메모리 디바이스에서 다른 블록들을 위해 획득된다. 프로세스를 통한 다중 경로들은 연속적으로 또는 동시에 수행될 수 있다.For example, each path through a process may include obtaining a set of voltages, a set of word lines, a block, or a set of blocks of storage elements. For example, a given set of voltages may be applied to a set of storage elements or word lines of an individual word line, or may be applied to a separate block or set of blocks. It should also be noted that when multiple sets of voltages are determined, e.g., writing, verifying and / or reading, each set may be applied to another group of storage elements. For example, one set of verify voltages may be obtained for the entire memory device, while the other sets of read voltages are obtained for the other blocks in the memory device. The multipaths through the process can be performed continuously or simultaneously.

도 10은 도 9c의 프로세스에 의해서 결정된 기결정된 전압들을 이용해서 비휘발성 저장 소자들의 다중 세트들의 사용자 데이터를 액세스하기 위한 프로세스를 나타낸 도이다. 단계 1000은 메모리 디바이스에서 하나 이상의 비휘발성 저장 소자들의 세트들을 선택하는 것을 포함한다. 단계 1002 내지 단계 1006은 도 9b의 단계 920 내지 단계 940에 개별적으로 대응한다. 단계 1002는 하나 이상의 비휘발성 저장 소자들의 세트들을 위한 작동 (예를 들어, 프로그램, 검증 또는 읽기)을 시작하는 것을 포함한다. 단계 1004는 비휘발성 저장 위치에서 전압들의 대응하는 세트를 획득하는 것을 포함한다. 단계 1006은 전압들의 대응하는 세트를 이용해서 하나 이상의 비휘발성 저장 소자들의 세트들을 위해 사용자 데이터를 액세스하는 것을 포함한다. 그러한 액세스하는 것은 프로그래밍하는 것/검증하는 것 또는 읽는 것을 포함할 수 있다. 결정 단계 1008에서, 메모리 디바이스에서 액세스하기 위한 저장 소자들의 다음 세트가 있으면, 프로세서는 메모리 디바이스에서 다음 하나 이상의 비휘발성 저장 소자들의 세트들이 선택되는, 단계 1000을 계속한다. 결정 단계 1008에서, 메모리 디바이스에서 액세스하기 위한 저장 소자들의 다음 세트가 없으면, 프로세스는 단계 1010에서 종료한다.Figure 10 is a diagram illustrating a process for accessing multiple sets of non-volatile storage elements user data using predetermined voltages determined by the process of Figure 9c. Step 1000 includes selecting one or more sets of non-volatile storage elements in the memory device. Steps 1002 to 1006 individually correspond to steps 920 to 940 of FIG. 9B. Step 1002 includes initiating an operation (e.g., program, verify, or read) for one or more sets of non-volatile storage elements. Step 1004 includes obtaining a corresponding set of voltages at a non-volatile storage location. Step 1006 includes accessing the user data for one or more sets of non-volatile storage elements using a corresponding set of voltages. Such accessing may include programming / verifying or reading. At decision step 1008, if there is a next set of storage elements for access in the memory device, the processor continues with step 1000, where the next set of one or more non-volatile storage elements is selected in the memory device. In decision step 1008, if there is no next set of storage elements for access in the memory device, then the process ends at step 1010. [

이전과 같이, 프로세스를 통한 각각의 경로는 저장 소자들의, 워드 라인을 위한 전압들의 세트, 워드 라인들의 세트, 블록 또는, 블록들의 세트를 획득하는 것과, 대응하는 저장 소자들을 액세스하는 것을 포함할 수 있다. 전압들의 주어진 세트는 개별 워드 라인의 저장 소자들 또는 워드 라인들의 세트에 인가될 수 있거나 또는, 개별 블록 또는 블록들의 세트에 인가될 수 있다. 프로세스를 통한 다중 경로들은 연속적으로 또는 동시에 수행될 수 있다.As before, each path through the process may include obtaining a set of voltages, a set of wordlines, a block, or a set of blocks, of the storage elements, and the corresponding storage elements have. A given set of voltages may be applied to a set of storage elements or word lines of an individual word line or may be applied to a separate block or set of blocks. The multipaths through the process can be performed continuously or simultaneously.

도 11은 도 1과 도 2에 도시된 것과 같은, NAND 플래시 저장 소자들의 어레이의 블록 다이어그램이다. 각각의 열(column)을 따라서, 비트 라인은 관련된 NAND 스트링을 위한 드레인 선택 게이트의 드레인 터미널에 연결된다. 예를 들어, 비트 라인(1106)은 NAND 스트링(1150)을 위한 드레인 선택 게이트의 드레인 터미널(1126)에 연결된다. NAND 스트링들의 행(row)을 따라서, 소스 라인(1104)은 NAND 스트링들의 소스 선택 게이트들의 모든 소스 터미널들(1128)을 연결할 수 있다. NAND 아키텍처 어레이와 메모리 시스템의 일부분으로서의 그의 동작의 예는 미국 등록 특허 번호 제5,570,315호, 제5,774,397호 및, 제6,046,935호에서 찾아볼 수 있다.Figure 11 is a block diagram of an array of NAND flash storage elements, such as that shown in Figures 1 and 2. Along each column, the bit line is connected to the drain terminal of the drain select gate for the associated NAND string. For example, bit line 1106 is coupled to the drain terminal 1126 of the drain select gate for NAND string 1150. Along a row of NAND strings, the source line 1104 may connect all the source terminals 1128 of the source select gates of the NAND strings. Examples of NAND architecture arrays and their operation as part of a memory system can be found in U.S. Patent Nos. 5,570,315, 5,774,397, and 6,046,935.

저장 소자들의 어레이는 저장 소자들이 많은 수의 블록들로 나뉘게 된다. 플래시 EEPROM 시스템들을 위해 일반적인 것처럼, 블록은 소거의 단위(unit)이다. 즉, 각각의 블록은 함께 소거되는 저장 소자들의 최소한의 수를 포함한다. 각각의 블록은 일반적으로 다수의 페이지로 나뉘게 된다. 페이지는 프로그래밍의 단위이다. 하나 이상의 데이터의 페이지들은 일반적으로 저장 소자들의 하나의 행에 저장된다. 페이지는 하나 이상의 섹터들(sectors)을 저장할 수 있다.The array of storage elements divides the storage elements into a large number of blocks. As is common for flash EEPROM systems, a block is a unit of erase. That is, each block includes a minimum number of storage elements that are erased together. Each block is generally divided into a plurality of pages. A page is a unit of programming. Pages of one or more data are typically stored in one row of storage elements. A page may store one or more sectors.

섹터는 사용자 데이터와 오버헤드 데이터(overhead data)를 포함한다. 일반적으로 오버헤드 데이터는 섹터의 사용자 데이터에서 계산한 에러 정정 코드(Error Correction Code : CEE)를 포함한다. 데이터가 어레이에서 프로그램될 때 컨트롤러 (아래에서 기술됨)의 일부가 ECC를 계산하고, 또한 데이터가 어레이에서 읽혀질 때 ECC를 확인한다. 양자 택일로, ECC들 및/또는 다른 오버헤드 데이터는 그들이 관계하는 사용자 데이터보다는 다른 페이지들 또는, 심지어 다른 블록들에 저장된다.Sectors include user data and overhead data. Generally, the overhead data includes an error correction code (CEE) calculated from the user data of the sector. When data is programmed in the array, a portion of the controller (described below) calculates the ECC and also verifies the ECC when the data is read from the array. Alternatively, the ECCs and / or other overhead data are stored in different pages or even in different blocks than the user data they are associated with.

사용자 데이터의 섹터는 마그네틱 디스크 드라이브들에서 섹터의 크기에 대응하여, 일반적으로 512 바이트이다. 오버헤드 데이터는 일반적으로 추가 16 내지 20 바이트들이다. 많은 수의 페이지들은 8개의 페이지에서 예를 들어, 32, 64, 128, 또는 그 이상의 페이지들 사이의 블록을 형성한다. 일부 실시예들에서, NAND 스트링들의 행은 블록을 포함한다.The sector of the user data corresponds to the size of the sector in the magnetic disk drives, and is generally 512 bytes. The overhead data is typically an additional 16 to 20 bytes. A large number of pages form a block between, for example, 32, 64, 128, or more pages in eight pages. In some embodiments, a row of NAND strings includes a block.

도 12는 저장 시스템에서 호스트 컨트롤러와 메모리 디바이스의 개략을 나타낸 도이다. 또한, 메모리 디바이스는 홀로 저장 시스템인 것으로 고려될 수도 있다. 저장 소자들(1205)은 프로그래밍하는 것/검증하는 것 및 읽는 것과 같은 동작들을 수행하기 위해 그 자신의 컨트롤러(1210)를 갖는 메모리 디바이스(1200)에서 제공될 수 있다. 메모리 디바이스는 예를 들어, 랩톱 컴퓨터(laptop computer), 디지털 카메라, 개인 휴대 정보 단말기(PDA), 디지털 오디오 플레이어 또는 이동 폰(mobile phone)과 같은 호스트 디바이스에 삽입되는, 착탈 가능한 메모리 카드(removable memory card) 또는 USB 플래시 드라이브(USB flash drive)에 형성될 수 있다. 호스트 디바이스는 사용자 데이터를 읽거나 또는 쓰기 위한 것과 같이, 메모리 디바이스와 상호 작용하기 위한 컨트롤러(1225)를 가질 수 있다. 예를 들어, 데이터를 읽을 때, 호스트 컨트롤러는 검색되기 위한 사용자 데이터의 어드레스를 나타내는 메모리 디바이스에 명령어들을 전송할 수 있다. 메모리 디바이스 컨트롤러는 그러한 명령어들을 명령어 신호들(memory device controller)로 변환하고, 그것은 메모리 디바이스에서 제어 회로부에 의해 해석되고 실행될 수 있다. 컨트롤러(1210)는 또한 이전에 논의된 바와 같이, 전압들의 세트들을 저장하기 위한 비휘발성 저장 위치(1215)와, 메모리 어레이에 쓰거나 메모리 어레이에서 읽는 사용자 데이터를 임시로 저장하기 위한 버퍼 메모리(1220)를 포함할 수 있다. 호스트 컨트롤러는 메모리 디바이스의 밖에(outside) 또는 메모리 디바이스의 외부에(external) 있는 실체인 것으로 고려될 수 있다. 메모리 디바이스는 예를 들어, 도 13과 관련하여 논의되는, 하나 이상의 메모리 다이(memory die)를 포함할 수 있고, 호스트 컨트롤러는 하나 이상의 메모리 다이 밖에 있을 수 있다.12 is a schematic diagram of a host controller and a memory device in a storage system; Also, the memory device may be considered to be a storage system alone. The storage elements 1205 may be provided in a memory device 1200 having its own controller 1210 to perform operations such as programming / verifying and reading. A memory device may be a removable memory card inserted into a host device such as, for example, a laptop computer, a digital camera, a personal digital assistant (PDA), a digital audio player or a mobile phone, card or a USB flash drive. The host device may have a controller 1225 for interacting with the memory device, such as for reading or writing user data. For example, when reading data, the host controller may send instructions to a memory device that indicates the address of the user data to be searched. The memory device controller converts such instructions into memory device controllers, which can be interpreted and executed by the control circuitry in the memory device. The controller 1210 also includes a nonvolatile storage location 1215 for storing sets of voltages and a buffer memory 1220 for temporarily storing user data written to or read from the memory array, . ≪ / RTI > A host controller can be considered to be an entity external to (outside) a memory device or external to a memory device. The memory device may include, for example, one or more memory dies, discussed in conjunction with FIG. 13, and the host controller may be outside one or more memory dies.

메모리 디바이스는 저장 소자들에서 데이터를 읽는 것에 의해서 그리고, 그것을 호스트 컨트롤러에서 이용 가능하게 만드는 것에 의해서 읽기 명령어에 반응한다. 하나의 가능한 방식에서, 메모리 디바이스는 버퍼(1220)에 읽기 데이터를 저장하고, 데이터가 읽혀질 수 있을 때 호스트 컨트롤러에 알린다. 호스트 컨트롤러는 버퍼에서 데이터를 읽는 것에 의해서 반응하고, 다른 어드레스에서 데이터를 읽기 위해 다른 명령어를 메모리 디바이스에 전송한다. 예를 들어, 데이터는 한 페이지씩(page by page) 읽을 수 있다. 호스트 컨트롤러는 메모리 디바이스의 저장 소자들의 임계 전압 분포를 결정하기 위해서 읽기 데이터를 프로세스할 수 있다. 다른 방식에서, 메모리 디바이스의 제어 회로는 임계 전압 분포를 결정한다. 또한, 메모리 디바이스의 상세한 실시예들이 아래 제공된다.The memory device responds to the read command by reading the data in the storage elements and making it available on the host controller. In one possible way, the memory device stores the read data in the buffer 1220 and notifies the host controller when the data can be read. The host controller responds by reading the data from the buffer and sends another instruction to the memory device to read the data at the other address. For example, data can be read page by page. The host controller may process the read data to determine a threshold voltage distribution of the storage elements of the memory device. In another approach, the control circuitry of the memory device determines the threshold voltage distribution. Further, detailed embodiments of the memory device are provided below.

일반적인 메모리 시스템은 집적 회로 칩(integrated circuit chip)과 하나 이상의 집적 회로 칩들을 포함한다. 여기서, 집적 회로 칩은 컨트롤러(1210)를 포함한다. 여기서, 하나 이상의 집적 회로 칩들은 각각이 메모리 어레이와 관련된 제어, 입력/출력 및 상태 머신 회로들을 포함한다. 메모리 디바이스는 호스트 시스템의 일부로서 내장(embedded)될 수 있거나 또는, 호스트 시스템의 메이팅 소켓(mating socket)에 착탈 가능하게 삽입할 수 있는 메모리 카드에 포함될 수 있다. 그러한 카드는 전체 메모리 디바이스를 포함할 수 있거나 또는, 관련된 주변 회로들을 갖는 컨트롤러 및 메모리 어레이는 개별 카드들에 제공될 수 있다.A typical memory system includes an integrated circuit chip and one or more integrated circuit chips. Here, the integrated circuit chip includes a controller 1210. Wherein the one or more integrated circuit chips each include control, input / output, and state machine circuits associated with the memory array. The memory device may be embedded as part of the host system or may be included in a memory card that may be removably inserted into a mating socket of the host system. Such a card may include an entire memory device, or a controller and memory array with associated peripheral circuits may be provided to individual cards.

도 13은 단일 행/열 디코더들과 읽기/쓰기 회로들을 이용하는 비휘발성 메모리 시스템의 블록 다이어그램이다. 다이어그램은 본 발명의 일 실시예에 따른 병렬로 저장 소자들의 페이지를 읽고 프로그래밍하기 위한 읽기/쓰기 회로들을 갖는 메모리 디바이스(1396)를 도시한다. 메모리 디바이스(1396)는 하나 이상의 메모리 다이(1398)를 포함할 수 있다. 메모리 다이(1398)는 저장 소자들(1400)의 2D 어레이(two-dimensional array), 제어 회로(1310) 및, 읽기/쓰기 회로들(1365)을 포함한다. 일부 실시예들에서, 저장 소자들의 어레이는 3D(three dimensional)일 수 있다. 메모리 어레이(1400)는 행 디코더(1330)를 통해 워드 라인들에 의해 어드레스할 수 있고, 열 디코더(1360)를 통해 비트 라인들에 의해 어드레스할 수 있다. 읽기/쓰기 회로들(1365)은 다중 감지 블록들(multiple sense blocks)(1300)을 포함하고, 저장 소자들의 페이지가 병렬로 읽혀지거나 또는 프로그램되는 것을 허용한다. 일반적으로 컨트롤러(1350)는 하나 이상의 메모리 다이(1398)와 같은 동일한 메모리 디바이스(1396) (예를 들어, 착탈 가능한 저장 카드)에 포함된다. 명령어들과 데이터는 라인들(1320)을 통해 호스트와 컨트롤러(1350) 사이에 전송되고, 라인들(1321)을 통해 컨트롤러와 하나 이상의 메모리 다이(1398) 사이에 전송된다.Figure 13 is a block diagram of a non-volatile memory system using single row / column decoders and read / write circuits. The diagram illustrates a memory device 1396 having read / write circuits for reading and programming pages of storage elements in parallel in accordance with an embodiment of the present invention. The memory device 1396 may include one or more memory dies 1398. The memory die 1398 includes a two-dimensional array of storage elements 1400, a control circuit 1310, and read / write circuits 1365. In some embodiments, the array of storage elements may be three dimensional (3D). The memory array 1400 can be addressed by word lines via a row decoder 1330 and addressed by bit lines via a column decoder 1360. Read / write circuits 1365 include multiple sense blocks 1300, which allow pages of storage elements to be read or programmed in parallel. In general, the controller 1350 is included in the same memory device 1396 (e.g., a removable storage card), such as one or more memory dies 1398. The instructions and data are transferred between the host and the controller 1350 via lines 1320 and between the controller and the one or more memory die 1398 via lines 1321. [

제어 회로(1310)는 메모리 어레이(1100)에서 메모리 동작들을 수행하기 위해서 읽기/쓰기 회로들(1365)과 협력한다. 제어 회로(1310)는 상태 머신(state machine)(1312), 온-칩 어드레스 디코더(on-chip address decoder)(1314) 및, 전력 제어 모듈(power control module)(1316)을 포함한다. 상태 머신(1312)은 메모리 동작들의 칩-레벨 제어를 제공한다. 온-칩 어드레스 디코더(1314)는 호스트 또는 메모리 컨트롤러에 의해 사용된 그것 사이의 어드레스 인터페이스를 디코더들(1330과 1360)에 의해 사용된 하드웨어 어드레스에 제공한다. 전력 제어 모듈(1316)은 메모리 작동 동안에 워드 라인들과 비트 라인들에 공급되는 전력과 전압들을 제어한다. 예를 들어, 전력 제어 모듈(1316)은 읽기 동작들 동안에 사용하고 저장 소자들의 세트의 임계 전압 분포를 결정하기 위해서, 제어 게이트 읽기 전압을 선택된 워드 라인에 제공하고, 읽기 패스 전압들을 미선택된 워드 라인들에 제공한다. 전력 제어 모듈(1316)은 또한 전압 스윕(voltage sweep)을 선택된 워드 라인에 제공할 수 있다. 전력 제어 모듈(1316)은 예를 들어, 이러한 목적을 위해서, 하나 이상의 디지털-아날로그 변환기를 포함할 수 있다. 이 경우에서, 제어 회로는 예를 들어, 메모리 다이(1398) 밖에서, 외부 테스트 장치를 위한 요구없이, 전압 스윕을 생성할 수 있다. 최종 사용자가 메모리 디바이스를 소유했을 때, 이것은 메모리 디바이스의 제조 후에 포함하는, 전압 스윕을 언제든지 생성하는 것을 허용하기 때문에 이점이 있다. 또한, 메모리 디바이스(1396)는 저장 소자들의 임계 전압 분포를 결정하기 위한 회로를 포함할 수 있다. 그 결과, 이러한 프로세스는 외부 테스트 장치 또는 외부 호스트에 대한 요구없이, 메모리 다이(1398) 내에서 내부적으로 수행될 수 있다. 이것은 외부 장치없이 임계 전압 분포를 언제든지 결정하는 것을 허용하기 때문에 이점이 있다.The control circuit 1310 cooperates with the read / write circuits 1365 to perform memory operations in the memory array 1100. Control circuitry 1310 includes a state machine 1312, an on-chip address decoder 1314, and a power control module 1316. State machine 1312 provides chip-level control of memory operations. The on-chip address decoder 1314 provides the address interface between the host or memory controller used therein to the hardware address used by the decoders 1330 and 1360. A power control module 1316 controls the power and voltages supplied to the word lines and bit lines during memory operation. For example, the power control module 1316 may be used during read operations to provide a control gate read voltage to the selected word line and to set the read pass voltages to an unselected word line Lt; / RTI > The power control module 1316 may also provide a voltage sweep to the selected word line. The power control module 1316 may, for example, include one or more digital-to-analog converters for this purpose. In this case, the control circuit can generate a voltage sweep outside the memory die 1398, for example, without the need for an external test device. This is advantageous because, when the end user owns the memory device, it allows to generate a voltage sweep at any time, including after the manufacture of the memory device. In addition, the memory device 1396 may include circuitry for determining the threshold voltage distribution of the storage elements. As a result, this process can be performed internally within the memory die 1398, without requiring an external test device or an external host. This is advantageous because it allows to determine the threshold voltage distribution at any time without an external device.

일부 실시예들에서, 도 13의 일부 구성 요소들이 결합할 수 있다. 다양한 설계들에서, 저장 소자 어레이(1100)를 제외한(other than), 하나 이상의 구성 요소들 (홀로 또는 결합으로)은 관리 또는 제어 회로로 생각될 수 있다. 예를 들어, 하나 이상의 관리 또는 제어 회로들은 제어 회로(1310), 상태 머신(1312), 디코더들(1314/1360), 전력 제어(1316), 감지 블록들(1300), 읽기/쓰기 회로들(1365), 컨트롤러(1350), 호스트 컨트롤러(1399), 기타 등등을 포함하는 것 중에서 임의의 하나 또는 그의 결합을 포함할 수 있다.In some embodiments, some of the components of FIG. 13 may be combined. In various designs, one or more of the components (alone or in combination), other than the storage element array 1100, may be considered as management or control circuitry. For example, one or more management or control circuits may include control circuitry 1310, state machine 1312, decoders 1314/1360, power control 1316, sense blocks 1300, read / write circuits 1365, a controller 1350, a host controller 1399, and so on, or any combination thereof.

메모리 어레이에 저장된 데이터는 열 디코더(column decoder)(1360)에 의해 밖으로 읽혀지고, 데이터 I/O 라인과 데이터 입력/출력 버퍼(1352)를 통해 외부 I/O 라인들로 출력된다. 메모리 어레이에 저장되기 위한 프로그램 데이터는 외부 I/O 라인들을 통해 데이터 입력/출력 버퍼(1352)에 입력된다. 메모리 디바이스를 제어하기 위한 명령어 데이터는 컨트롤러(1350)에 입력된다. 명령어 데이터는 어떤 작동이 요구되는지를 플래시 메모리에 알린다. 입력 명령어는 제어 회로(1310)에 전송된다. 상태 머신(1312)은 READY/BUSY 또는 PASS/FAIL와 같은 메모리 디바이스의 상태를 출력할 수 있다. 메모리 디바이스가 비지(busy)일 때, 새로운 읽기 또는 쓰기 명령어들을 수신할 수 없다.Data stored in the memory array is read out by a column decoder 1360 and output to external I / O lines through a data I / O line and a data input / output buffer 1352. Program data to be stored in the memory array is input to the data input / output buffer 1352 through external I / O lines. The command data for controlling the memory device is input to the controller 1350. [ The instruction data informs the flash memory which operation is required. The input command is sent to the control circuit 1310. State machine 1312 may output the state of the memory device, such as READY / BUSY or PASS / FAIL. When the memory device is busy, it can not receive new read or write commands.

도 12의 저장 위치(1215)와 비슷한, 데이터 저장 위치(1354)는 또한 컨트롤러(1350)와 관련해서 제공될 수 있다.Similar to the storage location 1215 of FIG. 12, a data storage location 1354 may also be provided in connection with the controller 1350.

다른 가능한 구성에서, 비휘발성 저장 시스템은 듀얼 행/열 디코더들 및 읽기/쓰기 회로들을 이용할 수 있다. 이 경우에, 다양한 주변 회로들에 의해 메모리 어레이에 대한 액세스는 어레이의 반대측 상에서, 대칭적인 방식(symmetric fashion)으로 구현된다. 그 결과 각 측면에서의 액세스 라인들과 회로의 밀도는 반으로 줄어든다.In another possible configuration, the non-volatile storage system may utilize dual row / column decoders and read / write circuits. In this case, access to the memory array by various peripheral circuits is implemented in a symmetric fashion on the opposite side of the array. As a result, the density of access lines and circuitry on each side is reduced by half.

본 발명의 앞선 상세한 설명은 도면과 설명의 목적들을 위해 소개된다. 또한, 상기 상세한 설명은 정확한 양식으로 출원된 본 발명을 철저하게 하거나 또는 제한하는 것으로 생각해서는 안 된다. 많은 수정들과 변화들이 상기 언급된 설명으로부터 미루어보아 가능하다. 기술된 실시예들은 본 발명의 원리들을 최상으로 설명하기 위해 선택되고, 상기 기술된 실시예들에 의한 본 발명의 실질적인 응용은 당업계에서 다른 기술들을 특정한 사용을 고려하기에 적당하도록 다양한 실시예들과 다양한 수정을 가진 본 발명을 최상으로 이용할 수 있게 한다. 본 발명에 첨부된 청구항들에 의해 정의된 발명의 범위 내에서 생각된다.The foregoing detailed description of the invention has been presented for purposes of illustration and description. It should also be understood that the above detailed description is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in light of the above description. The described embodiments are chosen to best explain the principles of the invention, and practical applications of the invention by the described embodiments may be implemented in various embodiments in the art, And various modifications of the present invention. But are considered within the scope of the invention as defined by the claims appended hereto.

Claims (20)

메모리 디바이스를 구성하는 방법으로서,
상기 메모리 디바이스에서 비휘발성 저장 소자들(1205)의 개별 세트들에 대해 개별 임계 전압 분포들을 측정하는 단계와, 상기 비휘발성 저장 소자들은 멀티-레벨 저장 소자들이며;
상기 개별 임계 전압 분포를 근거로 비휘발성 저장 소자들의 개별 세트 각각에 대해 전압들(VPGM-i, VV1-i, VR1-i)의 개별 세트를 결정하는 단계와, 상기 전압들의 개별 세트는 상기 비휘발성 저장 소자들의 개별 세트에 대해 커스터마이즈(customize)되어 있고;
비휘발성 저장 위치(1354)에, 전압들의 각각의 세트를 나타내는 데이터를 저장하는 단계와;
상기 저장하는 단계 이후에, 상기 비휘발성 저장 위치로부터 상기 전압들의 개별 세트들 중 적어도 하나의 세트의 데이터를 획득하는 단계, 그리고 상기 전압들의 개별 세트들 중 적어도 하나의 세트의 데이터를 이용해서 상기 비휘발성 저장 소자들의 개별 세트들 중 적어도 하나의 세트와 관련된 쓰기 동작을 수행하는 단계와; 그리고
비휘발성 저장 소자들의 각각의 세트에 대한 프로그래밍 효과를 판단하는 단계를 포함하고,
상기 전압들은 초기 프로그램 전압과 스텝 사이즈(step size) 중 적어도 하나를 포함하는 쓰기 전압들을 포함하고,
프로그래밍 효과가 평균보다 더 우세한 비휘발성 저장 소자들의 세트에 대해 쓰기 전압이 감소되는 것을 특징으로 하는 메모리 디바이스 구성 방법.
A method of configuring a memory device,
Measuring individual threshold voltage distributions for individual sets of non-volatile storage elements (1205) in the memory device; and the non-volatile storage elements are multi-level storage elements;
Determining a respective set of voltages (V PGM-i , V V1 -i , V R1-i ) for each discrete set of non-volatile storage elements based on the discrete threshold voltage distribution; Is customized for a respective set of non-volatile storage elements;
Storing data representing a respective set of voltages in a non-volatile storage location (1354);
The method of claim 1, further comprising: after the storing, obtaining data of at least one of the discrete sets of voltages from the non-volatile storage location; and using data of at least one of the discrete sets of voltages, Performing a write operation associated with at least one set of discrete sets of volatile storage elements; And
Determining a programming effect for each set of non-volatile storage elements,
The voltages comprising write voltages comprising at least one of an initial program voltage and a step size,
Wherein a write voltage is reduced for a set of non-volatile storage elements in which the programming effect predominates over the average.
제1항에 있어서,
상기 측정하는 단계는 각각의 세트의 프로그램 혼란(program disturb)의 양(amount)을 측정하고,
상기 결정하는 단계는 상기 프로그램 혼란의 양에 근거하여 실행되는 것을 특징으로 하는 메모리 디바이스 구성 방법.
The method according to claim 1,
Wherein the measuring step measures an amount of program disturb of each set,
Wherein the determining step is performed based on an amount of the program disruption.
제2항에 있어서,
상기 프로그램 혼란의 양은 모든 데이터 상태들이 존재하는 페이지에서의 소거된 상태의 상기 임계 전압 분포의 폭에 근거하는 것을 특징으로 하는 메모리 디바이스 구성 방법.
3. The method of claim 2,
Wherein the amount of program disruption is based on a width of the threshold voltage distribution in an erased state on a page in which all data states are present.
제1항에 있어서,
상기 측정하는 단계와, 상기 결정하는 단계와, 그리고 상기 저장하는 단계는, 상기 메모리 디바이스가 최종 사용자에게 전달되기 전에, 제조 시설에서 실행되고,
상기 획득하는 단계와 상기 쓰기 동작을 수행하는 단계는, 상기 디바이스가 상기 최종 사용자에게 전달된 후에, 실행되는 것을 특징으로 하는 메모리 디바이스 구성 방법.
The method according to claim 1,
The measuring step, the determining step, and the storing step may be performed at a manufacturing facility, before the memory device is delivered to an end user,
Wherein the obtaining and performing the write operation are performed after the device is delivered to the end user.
제1항 내지 제4항 중 어느 하나의 항에 있어서,
상기 메모리 디바이스에서 비휘발성 저장 소자들의 상이한 블록들에 대해 전압들(VPGM-i, VV1-i, VR1-i)의 상이한 세트들이 결정되고,
비휘발성 저장 소자들의 각각의 블록은 비휘발성 저장 소자들의 다른 블록들과 독립적으로 소거가능한 것을 특징으로 하는 메모리 디바이스 구성 방법.
5. The method according to any one of claims 1 to 4,
Different sets of voltages (V PGM-i , V V1-i , V R1-i ) are determined for different blocks of non-volatile storage elements in the memory device,
Wherein each block of non-volatile storage elements is erasable independently of other blocks of non-volatile storage elements.
제1항 내지 제4항 중 어느 하나의 항에 있어서,
상기 메모리 디바이스에서 비휘발성 저장 소자들의 워드 라인들의 상이한 그룹들에 대해 전압들의 상이한 세트들이 결정되고,
각각의 그룹은 하나 이상의 워드 라인들을 포함하는 것을 특징으로 하는 메모리 디바이스 구성 방법.
5. The method according to any one of claims 1 to 4,
Wherein different sets of voltages are determined for different groups of word lines of non-volatile storage elements in the memory device,
Wherein each group comprises one or more word lines.
제1항 내지 제4항 중 어느 하나의 항에 있어서,
상기 전압들의 세트들은 읽기 전압과 검증 전압 중 적어도 하나를 포함하고,
상기 전압들의 세트들은 가장 높은 데이터 상태의 검증 전압 레벨이 수정되게 되는 고정 프로그램 혼란 방식(fixed program disturb approach)을 이용해서 결정되는 것을 특징으로 하는 메모리 디바이스 구성 방법.
5. The method according to any one of claims 1 to 4,
The sets of voltages comprising at least one of a read voltage and a verify voltage,
Wherein the sets of voltages are determined using a fixed program disturb approach in which the verify voltage level of the highest data state is modified.
제7항에 있어서,
원하는 프로그램 혼란 값(desired program disturb value)보다 프로그램 혼란의 양이 더 많은 경우 상기 가장 높은 데이터 상태의 검증 전압 레벨은 감소되는 것을 특징으로 하는 메모리 디바이스 구성 방법.
8. The method of claim 7,
Wherein the verify voltage level of the highest data state is decreased when the amount of program disruption is greater than a desired program disturb value.
제1항 내지 제4항 중 어느 하나의 항에 있어서,
상기 전압들의 세트들은 읽기 전압과 검증 전압 중 적어도 하나를 포함하고,
상기 전압들의 세트들은 가장 높은 데이터 상태의 검증 전압 레벨이 고정되게 되는 고정 전압 윈도우 방식(fixed voltage window approach)을 이용해서 결정되는 것을 특징으로 하는 메모리 디바이스 구성 방법.
5. The method according to any one of claims 1 to 4,
The sets of voltages comprising at least one of a read voltage and a verify voltage,
Wherein the sets of voltages are determined using a fixed voltage window approach in which the verify voltage level of the highest data state is fixed.
제1항 내지 제4항 중 어느 하나의 항에 있어서,
상기 측정하는 단계는 각각의 세트에 대해서 복수의 데이터 상태들을 포함하는 임계 전압 분포를 측정하는 것을 특징으로 하는 메모리 디바이스 구성 방법.
5. The method according to any one of claims 1 to 4,
Wherein the measuring step measures a threshold voltage distribution comprising a plurality of data states for each set.
저장 시스템으로서,
비휘발성 저장 소자들(1205)의 개별 세트들과, 상기 비휘발성 저장 소자들은 멀티-레벨 저장 소자들이며;
비휘발성 저장 위치(1354)와; 그리고
적어도 하나의 제어 회로(1350)를 포함하며,
상기 적어도 하나의 제어 회로는:
a) 상기 비휘발성 저장 소자들의 개별 세트들에 대해 개별 임계 전압 분포들을 측정하고,
b) 상기 개별 임계 전압 분포를 근거로 비휘발성 저장 소자들의 개별 세트 각각에 대해 전압들(VPGM-i, VV1-i, VR1-i)의 개별 세트를 결정하고, 상기 전압들의 개별 세트는 상기 비휘발성 저장 소자들의 개별 세트에 대해 커스터마이즈되어 있으며,
c) 상기 비휘발성 저장 위치에, 전압들의 각각의 세트를 나타내는 데이터를 저장하고,
d) 상기 데이터를 저장한 이후에, 상기 비휘발성 저장 위치로부터 상기 전압들의 개별 세트들 중 적어도 하나의 세트의 데이터를 획득하고, 상기 전압들의 개별 세트들 중 적어도 하나의 세트의 데이터를 이용해서 상기 비휘발성 저장 소자들의 개별 세트들 중 적어도 하나의 세트와 관련된 쓰기 동작을 수행하며,
상기 전압들의 세트들은 읽기 전압과 검증 전압 중 적어도 하나를 포함하고,
상기 전압들의 세트들은 가장 높은 데이터 상태의 검증 전압 레벨이 고정되게 되는 고정 전압 윈도우 방식을 이용해서 결정되는 것을 특징으로 하는 저장 시스템.
As a storage system,
Separate sets of non-volatile storage elements 1205 and the non-volatile storage elements are multi-level storage elements;
A non-volatile storage location 1354; And
At least one control circuit (1350)
Said at least one control circuit comprising:
a) measuring individual threshold voltage distributions for respective sets of non-volatile storage elements;
b) determining a respective set of voltages (V PGM-i , V V1 -i , V R1-i ) for each individual set of non-volatile storage elements based on said individual threshold voltage distribution, Are customized for a respective set of non-volatile storage elements,
c) storing, at the non-volatile storage location, data representative of each set of voltages,
d) after storing the data, obtaining data of at least one of the discrete sets of voltages from the non-volatile storage location, and using data of at least one of the discrete sets of voltages, Performing a write operation associated with at least one of the discrete sets of non-volatile storage elements,
The sets of voltages comprising at least one of a read voltage and a verify voltage,
Wherein the sets of voltages are determined using a fixed voltage window scheme in which the verify voltage level of the highest data state is fixed.
제11항에 있어서,
상기 적어도 하나의 제어 회로는 비휘발성 저장 소자들의 각각의 세트에 대한 프로그래밍 효과를 판단하고,
상기 전압들은 초기 프로그램 전압과 스텝 사이즈 중 적어도 하나를 포함하는 쓰기 전압들을 포함하고,
프로그래밍 효과가 평균보다 더 우세한 비휘발성 저장 소자들의 세트에 대해 쓰기 전압이 감소되는 것을 특징으로 하는 저장 시스템.
12. The method of claim 11,
Wherein the at least one control circuit determines a programming effect for each set of non-volatile storage elements,
The voltages comprising write voltages comprising at least one of an initial program voltage and a step size,
Characterized in that the write voltage is reduced for a set of non-volatile storage elements whose programming effects predominate over the average.
제11항에 있어서,
상기 적어도 하나의 제어 회로는 각각의 세트의 프로그램 혼란의 양을 측정하고,
상기 전압들의 개별 세트를 결정하는 것은 상기 프로그램 혼란의 양에 근거하여 실행되는 것을 특징으로 하는 저장 시스템.
12. The method of claim 11,
Wherein the at least one control circuit measures the amount of program disruption in each set,
Wherein determining a separate set of voltages is performed based on an amount of the program disruption.
제13항에 있어서,
상기 프로그램 혼란의 양은 모든 데이터 상태들이 존재하는 페이지에서의 소거된 상태의 상기 임계 전압 분포의 폭에 근거하는 것을 특징으로 하는 저장 시스템.
14. The method of claim 13,
Wherein the amount of program confusion is based on a width of the threshold voltage distribution in an erased state on a page in which all data states are present.
제11항 내지 제14항 중 어느 하나의 항에 있어서,
상기 적어도 하나의 제어 회로는, 상기 저장 시스템에서 비휘발성 저장 소자들의 상이한 블록들과, 상기 저장 시스템에서 비휘발성 저장 소자들의 블록들의 상이한 그룹들과, 그리고 상기 저장 시스템에서 비휘발성 저장 소자들의 워드 라인들의 상이한 그룹들 중 적어도 하나의 그룹들에 대해 전압들의 상이한 세트들을 결정하는 것을 특징으로 하는 저장 시스템.
15. The method according to any one of claims 11 to 14,
Volatile storage elements in the storage system and different groups of blocks of non-volatile storage elements in the storage system, and a plurality of non-volatile storage elements in the storage system, Gt; of the at least one of the different groups of < / RTI >
제11항 내지 제14항 중 어느 하나의 항에 있어서,
상기 측정하는 것은 각각의 세트에 대해서 복수의 데이터 상태들을 포함하는 임계 전압 분포를 측정하는 것을 특징으로 하는 저장 시스템.
15. The method according to any one of claims 11 to 14,
Wherein said measuring measures a threshold voltage distribution comprising a plurality of data states for each set.
저장 시스템으로서,
비휘발성 저장 소자들(1205)의 개별 세트들과, 상기 비휘발성 저장 소자들은 멀티-레벨 저장 소자들이며;
비휘발성 저장 위치(1354)와; 그리고
적어도 하나의 제어 회로(1350)를 포함하며,
상기 적어도 하나의 제어 회로는:
a) 상기 비휘발성 저장 소자들의 개별 세트들에 대해 개별 임계 전압 분포들을 측정하고,
b) 상기 개별 임계 전압 분포를 근거로 비휘발성 저장 소자들의 개별 세트 각각에 대해 전압들(VPGM-i, VV1-i, VR1-i)의 개별 세트를 결정하고, 상기 전압들의 개별 세트는 상기 비휘발성 저장 소자들의 개별 세트에 대해 커스터마이즈되어 있으며,
c) 상기 비휘발성 저장 위치에, 전압들의 각각의 세트를 나타내는 데이터를 저장하고,
d) 상기 데이터를 저장한 이후에, 상기 비휘발성 저장 위치로부터 상기 전압들의 개별 세트들 중 적어도 하나의 세트의 데이터를 획득하고, 상기 전압들의 개별 세트들 중 적어도 하나의 세트의 데이터를 이용해서 상기 비휘발성 저장 소자들의 개별 세트들 중 적어도 하나의 세트와 관련된 쓰기 동작을 수행하며,
상기 전압들의 세트들은 읽기 전압과 검증 전압 중 적어도 하나를 포함하고,
상기 전압들의 세트들은 가장 높은 데이터 상태의 검증 전압 레벨이 수정되게 되는 고정 프로그램 혼란 방식을 이용해서 결정되는 것을 특징으로 하는 저장 시스템.
As a storage system,
Separate sets of non-volatile storage elements 1205 and the non-volatile storage elements are multi-level storage elements;
A non-volatile storage location 1354; And
At least one control circuit (1350)
Said at least one control circuit comprising:
a) measuring individual threshold voltage distributions for respective sets of non-volatile storage elements;
b) determining a respective set of voltages (V PGM-i , V V1 -i , V R1-i ) for each individual set of non-volatile storage elements based on said individual threshold voltage distribution, Are customized for a respective set of non-volatile storage elements,
c) storing, at the non-volatile storage location, data representative of each set of voltages,
d) after storing the data, obtaining data of at least one of the discrete sets of voltages from the non-volatile storage location, and using data of at least one of the discrete sets of voltages, Performing a write operation associated with at least one of the discrete sets of non-volatile storage elements,
The sets of voltages comprising at least one of a read voltage and a verify voltage,
Wherein the sets of voltages are determined using a fixed program confusion scheme in which the verify voltage level of the highest data state is modified.
제17항에 있어서,
원하는 프로그램 혼란 값보다 프로그램 혼란의 양이 더 많은 경우 상기 가장 높은 데이터 상태의 검증 전압 레벨은 감소되는 것을 특징으로 하는 저장 시스템.
18. The method of claim 17,
Wherein the verify voltage level of the highest data state is reduced when the amount of program disruption is greater than a desired program confusion value.
삭제delete 삭제delete
KR1020107026822A 2008-04-29 2009-04-27 Non-volatile multilevel memory with adaptive setting of reference voltage levels for program, verify and read KR101606168B1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US12/111,748 US7808836B2 (en) 2008-04-29 2008-04-29 Non-volatile memory with adaptive setting of state voltage levels
US12/111,729 2008-04-29
US12/111,729 US7808819B2 (en) 2008-04-29 2008-04-29 Method for adaptive setting of state voltage levels in non-volatile memory
US12/111,748 2008-04-29

Publications (2)

Publication Number Publication Date
KR20110018336A KR20110018336A (en) 2011-02-23
KR101606168B1 true KR101606168B1 (en) 2016-03-24

Family

ID=40929666

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107026822A KR101606168B1 (en) 2008-04-29 2009-04-27 Non-volatile multilevel memory with adaptive setting of reference voltage levels for program, verify and read

Country Status (6)

Country Link
EP (1) EP2274746A1 (en)
JP (1) JP5410507B2 (en)
KR (1) KR101606168B1 (en)
CN (1) CN102027548B (en)
TW (1) TWI410975B (en)
WO (1) WO2009133553A1 (en)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5676842B2 (en) * 2008-05-30 2015-02-25 ピーエスフォー ルクスコ エスエイアールエルPS4 Luxco S.a.r.l. Semiconductor device
EP3338795A1 (en) * 2008-07-21 2018-06-27 Probiodrug AG Diagnostic antibody assay
US8223556B2 (en) * 2009-11-25 2012-07-17 Sandisk Technologies Inc. Programming non-volatile memory with a reduced number of verify operations
CN102163461A (en) * 2011-05-03 2011-08-24 苏州聚元微电子有限公司 Method for improving yield and reading reliability of electrically erasable programmable read-only memory (EEPROM)
JP2013143155A (en) * 2012-01-06 2013-07-22 Powerchip Technology Corp Nonvolatile semiconductor memory device and write-in method thereof
KR102069864B1 (en) * 2012-11-05 2020-01-23 에스케이하이닉스 주식회사 Semiconductor memory device and operating method thereof
CN104217761B (en) * 2013-05-31 2018-12-14 慧荣科技股份有限公司 Data storage device and error correction method thereof
KR102210961B1 (en) * 2013-06-12 2021-02-03 삼성전자주식회사 Memory system including nonvolatile memory device and dynamic access method thereof
JP6262063B2 (en) * 2014-03-18 2018-01-17 東芝メモリ株式会社 Nonvolatile memory and writing method
JP5784788B2 (en) * 2014-04-16 2015-09-24 力晶科技股▲ふん▼有限公司 Nonvolatile semiconductor memory device and writing method thereof
JP6365457B2 (en) * 2015-08-05 2018-08-01 株式会社デンソー Semiconductor memory device and writing method thereof
US10332593B2 (en) * 2015-09-14 2019-06-25 Toshiba Memory Corporation Semiconductor memory device configured to sense memory cell threshold voltages in ascending order
US9875811B2 (en) 2016-01-13 2018-01-23 Macronix International Co., Ltd. Method and device for reading a memory
TWI621125B (en) * 2016-01-26 2018-04-11 旺宏電子股份有限公司 Method and device for reading a memory
CN108733305B (en) * 2017-04-13 2021-09-03 旺宏电子股份有限公司 Memory device, system and operation method thereof
US10347344B2 (en) * 2017-08-29 2019-07-09 Micron Technology, Inc. Read voltage calibration based on host IO operations
JP6929171B2 (en) * 2017-09-05 2021-09-01 ローム株式会社 Non-volatile semiconductor storage device
KR102395196B1 (en) * 2017-10-17 2022-05-06 삼성전자주식회사 Storage device having parameter calibration function and method of operating the storage device
JP2019153366A (en) * 2018-03-06 2019-09-12 東芝メモリ株式会社 Memory system, reading method, program and memory controller
US10930355B2 (en) * 2019-06-05 2021-02-23 SanDiskTechnologies LLC Row dependent sensing in nonvolatile memory
CN110619919B (en) * 2019-09-23 2021-08-13 上海华力微电子有限公司 Method for testing endurance performance of Flash device
CN111066087A (en) 2019-10-29 2020-04-24 长江存储科技有限责任公司 Method for programming a memory device
CN111341375B (en) * 2020-02-19 2020-12-01 哈尔滨工业大学 Threshold voltage obtaining method for TLC type NAND Flash
US11133062B1 (en) * 2020-05-07 2021-09-28 Micron Technology, Inc. Two memory cells sensed to determine one data value
CN114705973B (en) * 2022-06-01 2022-11-11 北京航空航天大学杭州创新研究院 Non-invasive complex environment integrated circuit aging monitoring method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6278633B1 (en) 1999-11-05 2001-08-21 Multi Level Memory Technology High bandwidth flash memory that selects programming parameters according to measurements of previous programming operations
US20030169621A1 (en) 2002-03-08 2003-09-11 Fujitsu Limited Nonvolatile multilevel cell memory
US20070159891A1 (en) 2006-01-12 2007-07-12 Loc Tu Trimming of analog voltages in flash memory devices

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002288988A (en) * 2001-03-28 2002-10-04 Mitsubishi Electric Corp Non-volatile semiconductor memory
US6813194B2 (en) * 2002-01-10 2004-11-02 Silicon Storage Technology, Inc. Bias distribution network for digital multilevel nonvolatile flash memory
JP4086583B2 (en) * 2002-08-08 2008-05-14 シャープ株式会社 Nonvolatile semiconductor memory device and data write control method
JP3889699B2 (en) * 2002-11-29 2007-03-07 株式会社東芝 Nonvolatile semiconductor memory device and data writing method thereof
US7177199B2 (en) * 2003-10-20 2007-02-13 Sandisk Corporation Behavior based programming of non-volatile memory
US7092290B2 (en) * 2004-11-16 2006-08-15 Sandisk Corporation High speed programming system with reduced over programming
US7254071B2 (en) * 2006-01-12 2007-08-07 Sandisk Corporation Flash memory devices with trimmed analog voltages
JP2007250133A (en) * 2006-03-17 2007-09-27 Sharp Corp Method for testing nonvolatile semiconductor storage device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6278633B1 (en) 1999-11-05 2001-08-21 Multi Level Memory Technology High bandwidth flash memory that selects programming parameters according to measurements of previous programming operations
US20030169621A1 (en) 2002-03-08 2003-09-11 Fujitsu Limited Nonvolatile multilevel cell memory
JP2003263897A (en) 2002-03-08 2003-09-19 Fujitsu Ltd Nonvolatile multi-level semiconductor memory device
US20070159891A1 (en) 2006-01-12 2007-07-12 Loc Tu Trimming of analog voltages in flash memory devices

Also Published As

Publication number Publication date
TWI410975B (en) 2013-10-01
CN102027548A (en) 2011-04-20
CN102027548B (en) 2014-01-01
KR20110018336A (en) 2011-02-23
JP2011519110A (en) 2011-06-30
JP5410507B2 (en) 2014-02-05
TW201007744A (en) 2010-02-16
WO2009133553A1 (en) 2009-11-05
EP2274746A1 (en) 2011-01-19

Similar Documents

Publication Publication Date Title
KR101606168B1 (en) Non-volatile multilevel memory with adaptive setting of reference voltage levels for program, verify and read
US7808819B2 (en) Method for adaptive setting of state voltage levels in non-volatile memory
US7808836B2 (en) Non-volatile memory with adaptive setting of state voltage levels
KR100945057B1 (en) Starting program voltage shift with cycling of non-volatile memory
KR101012129B1 (en) Programming non-volatile memory with self-adjusting maximum program loop
KR101736414B1 (en) Programming non-volatile storage includng reducing impact from other memory cells
KR101564399B1 (en) Read disturb mitigation in non-volatile memory
JP5250117B2 (en) Adaptive erase and soft programming for memory
JP5613663B2 (en) Erase confirmation processing of non-volatile storage device
KR101595044B1 (en) Data state-based temperature compensation during sensing in non-volatile memory
KR101559088B1 (en) Sensing in non-volatile storage using pulldown to regulated source voltage to remove system noise
KR100966357B1 (en) Method for programming non-volatile memory with reduced program disturb using modified pass voltages
KR101373795B1 (en) Non-volatile storage with source bias all bit line sensing
KR101020812B1 (en) Programming defferently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory
KR101075253B1 (en) Method for non-real time reprogramming of non-volatile memory to achieve distribution of threshold voltages
TWI389124B (en) System and method for coarse/fine program verification in non-volatile memory using different reference levels for improved sensing
JP2007533055A (en) Variable programming of non-volatile memory
KR101518437B1 (en) Increasing read throughput in non-volatile memory
WO2010044993A1 (en) Multi-pass programming for memory using word line coupling
KR100984563B1 (en) Last-first mode and method for programming of non-volatile memory of nand type with reduced program disturb

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20200218

Year of fee payment: 5