KR102502234B1 - Programming method of a non volatile memory device - Google Patents

Programming method of a non volatile memory device Download PDF

Info

Publication number
KR102502234B1
KR102502234B1 KR1020150171434A KR20150171434A KR102502234B1 KR 102502234 B1 KR102502234 B1 KR 102502234B1 KR 1020150171434 A KR1020150171434 A KR 1020150171434A KR 20150171434 A KR20150171434 A KR 20150171434A KR 102502234 B1 KR102502234 B1 KR 102502234B1
Authority
KR
South Korea
Prior art keywords
program
memory cells
voltage
word line
memory
Prior art date
Application number
KR1020150171434A
Other languages
Korean (ko)
Other versions
KR20170065240A (en
Inventor
한욱기
유창연
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020150171434A priority Critical patent/KR102502234B1/en
Priority to US15/294,995 priority patent/US9953703B2/en
Publication of KR20170065240A publication Critical patent/KR20170065240A/en
Priority to US15/917,753 priority patent/US10090045B2/en
Application granted granted Critical
Publication of KR102502234B1 publication Critical patent/KR102502234B1/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • 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
    • G11C16/0408Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/30Power supply circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Read Only Memory (AREA)

Abstract

비휘발성 메모리 장치의 프로그램 방법이 개시된다. 본 개시의 실시 예에 따른 비휘발성 메모리 장치의 프로그램 방법은, 메모리 셀들의 적어도 일부를 타겟 상태로 프로그램하도록 설정되는 1차 프로그램 전압을 기초로 상기 메모리 셀들을 프로그램하는 단계; 상기 메모리 셀들의 문턱 전압 산포에 따라 판단되는 상기 메모리 셀들의 프로그램 속도에 기초하여, 상기 메모리 셀들을 문턱 전압 산포 폭이 서로 다른, 복수의 셀 그룹으로 구분하는 단계; 상기 복수의 셀 그룹간의 문턱 전압 차이에 기초하여 설정되는 복수의 2차 프로그램 전압을 기초로, 상기 복수의 셀 그룹 중 상기 타겟 상태로 프로그램된 제1 셀 그룹을 제외한 다른 셀 그룹들을 상기 타겟 상태로 재프로그램하는 단계를 포함한다. A method of programming a non-volatile memory device is disclosed. A programming method of a nonvolatile memory device according to an embodiment of the present disclosure includes programming memory cells based on a first program voltage set to program at least some of the memory cells to a target state; dividing the memory cells into a plurality of cell groups having different threshold voltage distribution widths based on program speeds of the memory cells determined according to the threshold voltage distribution of the memory cells; Based on a plurality of secondary program voltages set based on differences in threshold voltages between the plurality of cell groups, other cell groups other than the first cell group programmed to the target state among the plurality of cell groups are brought into the target state. Including reprogramming.

Description

비휘발성 메모리 장치의 프로그램 방법{Programming method of a non volatile memory device}Programming method of a non volatile memory device

본 개시의 기술적 사상은 반도체 장치에 관한 것으로서, 구체적으로 비휘발성 메모리 장치의 프로그램 방법에 관한 것이다. The technical concept of the present disclosure relates to a semiconductor device, and more specifically, to a method for programming a non-volatile memory device.

메모리 장치는 데이터를 저장하는데 사용되며, 휘발성 메모리 장치와 비휘발성 메모리 장치로 구분된다. 비휘발성 메모리 장치의 일 예로서, 플래쉬 메모리 장치는 휴대폰, 디지털 카메라, 휴대용 정보 단말기(PDA), 이동식 컴퓨터 장치, 고정식 컴퓨터 장치 및 기타 장치에서 사용될 수 있다.Memory devices are used to store data and are classified into volatile memory devices and non-volatile memory devices. As an example of a non-volatile memory device, a flash memory device may be used in a mobile phone, a digital camera, a personal digital assistant (PDA), a mobile computer device, a stationary computer device, and other devices.

본 개시의 기술적 사상이 해결하려는 과제는 프로그램 속도를 향상시키고, 프로그램 상태의 메모리 셀들의 문턱 전압 산포의 폭을 감소시킬 수 있는 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 프로그램 방법을 제공하는 데에 있다.An object to be solved by the technical idea of the present disclosure is to provide a non-volatile memory device and a method for programming the non-volatile memory device capable of improving program speed and reducing the width of threshold voltage distribution of memory cells in a programmed state. .

상기 기술적 과제를 달성하기 위한 본 개시의 실시 예에 따른 멀티 비트 데이터를 저장하는 메모리 셀들을 포함하는 비휘발성 메모리 장치의 프로그램 방법은, 메모리 셀들의 적어도 일부를 타겟 상태로 프로그램하도록 설정되는 1차 프로그램 전압을 기초로 상기 메모리 셀들을 프로그램하는 단계; 상기 메모리 셀들의 문턱 전압 산포에 따라 판단되는 상기 메모리 셀들의 프로그램 속도에 기초하여, 상기 메모리 셀들을 문턱 전압 산포 폭이 서로 다른, 복수의 셀 그룹으로 구분하는 단계; 및 상기 복수의 셀 그룹간의 문턱 전압 차이에 기초하여 설정되는 복수의 2차 프로그램 전압을 기초로, 상기 복수의 셀 그룹 중 상기 타겟 상태로 프로그램된 제1 셀 그룹을 제외한 다른 셀 그룹들을 상기 타겟 상태로 재프로그램하는 단계를 포함한다.In order to achieve the above technical problem, a method for programming a non-volatile memory device including memory cells storing multi-bit data according to an embodiment of the present disclosure includes a first program set to program at least some of the memory cells to a target state. programming the memory cells based on voltage; dividing the memory cells into a plurality of cell groups having different threshold voltage distribution widths based on program speeds of the memory cells determined according to the threshold voltage distribution of the memory cells; and other cell groups other than the first cell group programmed to the target state among the plurality of cell groups based on a plurality of secondary program voltages set based on differences in threshold voltages between the plurality of cell groups. It includes reprogramming to

상기 기술적 과제를 달성하기 위한 본 개시의 다른 실시 예에 따른 비휘발성 메모리 장치의 프로그램 방법은, 메모리 셀들을 제N-1 (N은 2 이상의 정수) 상태로 프로그램하는 단계; 상기 메모리 셀들에 연결된 워드라인의 프로그램 속도를 검출하는 단계; 상기 검출된 워드라인의 프로그램 속도를 기초로, 제N 상태에 대응하는 제N 프로그램 전압 셋의 전압 레벨을 조절하는 단계; 및 상기 제N 프로그램 전압 셋을 기초로 상기 메모리 셀들의 적어도 일부를 상기 제N 상태로 프로그램하는 단계를 포함하고, 상기 메모리 셀들을 상기 제N-1 상태로 프로그램하는 단계는, 상기 메모리 셀들에 인가된 1차 프로그램 전압에 따른 메모리 셀들의 문턱 전압 산포를 기초로, 상기 메모리 셀들을 프로그램 속도에 따라 문턱 전압 범위가 서로 다른 복수의 셀 그룹으로 구분하고, 상기 복수의 셀 그룹 중 일부 셀 그룹에 상기 복수의 셀 그룹의 문턱 전압 차이에 기초하여 설정되는 복수의 2차 프로그램 전압을 인가할 수 있다. A programming method of a nonvolatile memory device according to another embodiment of the present disclosure for achieving the above technical problem includes programming memory cells to an N−1th state (N is an integer greater than or equal to 2); detecting a program speed of a word line connected to the memory cells; adjusting a voltage level of an Nth program voltage set corresponding to an Nth state based on the detected program speed of the word line; and programming at least some of the memory cells to the Nth state based on the Nth program voltage set, wherein the programming of the memory cells to the N−1th state comprises: Based on the threshold voltage distribution of memory cells according to the first program voltage, the memory cells are divided into a plurality of cell groups having different threshold voltage ranges according to the program speed, and some of the plurality of cell groups have the A plurality of secondary program voltages set based on differences in threshold voltages of the plurality of cell groups may be applied.

상기 기술적 과제를 달성하기 위한 본 개시의 다른 실시 예에 따른 멀티 비트 데이터를 저장하는 메모리 셀들을 포함하는 비휘발성 메모리 장치의 프로그램 방법은, n번째(n은 정수) 워드라인의 메모리 셀들을 상기 n번째 워드라인에 대응하는 1차 프로그램 전압을 기초로 프로그램하는 단계; n+1번째 워드라인의 메모리 셀들을 상기 n+1번째 워드라인에 대응하는 1차 프로그램 전압을 기초로 프로그램하는 단계; 및 상기 n번째 워드라인의 상기 메모리 셀들을 프로그램 속도에 따른 복수의 셀 그룹으로 구분하고, 상기 복수의 셀 그룹간의 문턱 전압 차이에 기초하여 설정되는 복수의 2차 프로그램 전압을 기초로, 상기 n번째 워드라인의 메모리 셀들을 상기 타겟 상태로 재프로그램하는 단계를 포함한다.In order to achieve the above technical problem, a method for programming a non-volatile memory device including memory cells storing multi-bit data according to another embodiment of the present disclosure includes memory cells of an n-th (n is an integer) word line as the n programming based on a first program voltage corresponding to a th word line; programming memory cells of an n+1 th word line based on a first program voltage corresponding to the n+1 th word line; and classifying the memory cells of the n-th word line into a plurality of cell groups according to program speeds, and based on a plurality of secondary program voltages set based on a threshold voltage difference between the plurality of cell groups, and reprogramming memory cells of a word line to the target state.

본 개시의 기술적 사상에 따른 비휘발성 메모리 장치의 프로그램 방법에 따르면, 원-샷 메모리 셀의 문턱 전압 산포를 기초로, 메모리 셀들을 프로그램 속도에 따른 복수의 셀 그룹으로 구분하고, 서로 다른 문턱 전압 산포 폭을 갖는 복수의 셀 그룹 각각이 타겟 상태로 프로그램되도록 상기 복수의 셀 그룹의 문턱 전압 차이를 기초로 설정된 프로그램 전압들을 기초로, 각각의 셀 그룹을 프로그램함으로써, 메모리 셀 어레이에 데이터를 프로그램하는데 소요되는 시간을 감소시키고 각 프로그램 상태의 문턱 전압 산포의 폭을 감소시킬 수 있다.According to a method for programming a non-volatile memory device according to technical features of the present disclosure, memory cells are divided into a plurality of cell groups according to program speeds based on threshold voltage distribution of one-shot memory cells, and different threshold voltage distributions are obtained. It takes time to program data into a memory cell array by programming each cell group based on program voltages set based on a threshold voltage difference between the plurality of cell groups so that each cell group having a width is programmed to a target state. time and the width of the threshold voltage distribution of each program state may be reduced.

또한, 본 개시의 기술적 사상에 따른 비휘발성 메모리 장치의 프로그램 방법에 따르면, 메모리 셀들을 각각의 프로그램 상태로 프로그램하기 전, 워드 라인 별 프로그램 속도를 체크하고, 상기 프로그램 속도에 따른 보상 전압을 프로그램 전압에 반영함으로써, 메모리 셀 어레이에 프로그램된 프로그램 상태 각각의 문턱 전압 산포의 폭을 감소시킬 수 있다. In addition, according to the method of programming a nonvolatile memory device according to the technical idea of the present disclosure, before programming memory cells in respective program states, a program speed for each word line is checked, and a compensation voltage according to the program speed is set to a program voltage. The width of the threshold voltage distribution of each program state programmed into the memory cell array can be reduced by reflecting the .

또한, 본 개시의 기술적 사상에 따른 비휘발성 메모리 장치의 프로그램 방법에 따르면, 하나의 워드라인의 메모리 셀들에 대하여 프로그램 수행 시, 상기 워드라인 및 상기 워드라인에 인접한 워드라인에 대하여 각각의 워드 라인에 대응하는, 1차 프로그램 전압을 인가하여 1차 프로그램을 수행한 후, 상기 워드라인의 원-샷 메모리 셀의 문턱 전압 산포를 기초로 상기 워드라인의 메모리 셀들에 대하여 2차 프로그램을 수행함으로써, 워드라인간 커플링 효과에 따른 각 프로그램 상태들의 문턱 전압 산포의 이동을 방지할 수 있다.In addition, according to the method of programming a nonvolatile memory device according to the technical concept of the present disclosure, when performing programming on memory cells of one word line, each word line is programmed for the word line and word lines adjacent to the word line. After performing the first program by applying the corresponding first program voltage, and then performing the second program on the memory cells of the word line based on the threshold voltage distribution of the one-shot memory cell of the word line, the word It is possible to prevent a shift in threshold voltage distribution of each program state due to an inter-line coupling effect.

본 개시의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 개시의 실시예에 따른 메모리 장치를 나타내는 블록도이다.
도 2는 본 개시의 실시예에 따른 메모리 블록의 일 예를 나타내는 회로도이다.
도 3은 본 개시의 실시예에 따른 메모리 블록의 다른 예를 나타내는 회로도이다.
도 4는 도 3의 회로도에 따른 메모리 블록을 나타내는 사시도이다.
도 5a 및 도 5b는 본 개시의 실시예에 따른 메모리 장치의 동작 방법을 설명하는 도면이다.
도 6은 본 개시의 실시예에 따른 메모리 장치의 동작 방법을 나타내는 흐름도이다.
도 7a 및 도 7b는 셀 그룹들의 문턱 전압 범위의 설정에 따른 메모리 셀들의 산포를 나타내는 그래프이다.
도 8(a)~(d)는 본 개시의 실시예에 따른 프로그램 방법의 일 예를 단계별로 나타낸 그래프이다.
도 9는 도 8에서 프로그램되는 메모리 셀에 연결된 워드 라인에 인가되는 전압의 파형도이다.
도 10은 본 개시의 실시예에 따른 프로그램 방법을 보다 상세하게 설명한 도면이다.
도 11(a)~(c)는 본 개시의 실시예에 따른 프로그램 방법의 일 예를 단계별로 나타낸 그래프이다.
도 12는 도 11에서 프로그램되는 메모리 셀에 연결된 워드 라인에 인가되는 전압의 파형도이다.
도 13은 본 개시의 실시예에 따른 프로그램 방법을 보 다상세하게 설명한 도면이다.
도 14a 및 도 14b는 본 개시의 실시예에 따른 메모리 장치의 동작 방법을 설명하는 도면이다.
도 15(a)~(f)는 본 개시의 실시예에 따른 프로그램 방법의 일 예를 단계별로 나타낸 그래프이다.
도 16은 도 15에서 프로그램되는 메모리 셀에 연결된 워드 라인에 인가되는 전압의 파형도이다.
도 17(a)~(d)는 본 개시의 실시예에 따른 프로그램 방법의 일 예를 단계별로 나타낸 그래프이다.
도 18은 도 17에서 프로그램되는 메모리 셀에 연결된 워드 라인에 인가되는 전압의 파형도이다.
도 19는 본 개시의 실시예에 다른 메모리 장치의 동작 방법을 나타내는 흐름도이다.
도 20은 본 개시의 실시예에 따른 메모리 장치의 동작 방법을 나타내는 흐름도이다.
도 21은 각 프로그램 상태에 따른 메모리 셀들의 문턱 전압 산포를 나타낸다.
도 22는 본 개시의 실시예에 따른 메모리 장치의 동작 방법의 일 예로서, 워드 라인에 인가되는 전압 펄스를 나타내는 파형이다.
도 23은 본 개시의 실시예에 따른 메모리 장치의 동작 방법의 일 예로서, 워드 라인에 인가되는 전압 펄스를 나타내는 파형이다.
도 24는 본 개시의 실시예에 따른 프로그램 방법의 다른 예를 나타내는 흐름도이다.
도 25a 내지 도 25c는 도 24의 흐름도에서, 각 단계에 따른 워드라인의 문턱 전압 산포를 나타내는 그래프이다.
도 26a 및 도 26b는 워드라인의 메모리 셀들에 대한 초기 프로그램 단계 및 후기 프로그램단계를 나타내는 도면이다.
도 27은 본 개시의 실시예에 따른 프로그램 방법의 다른 예를 나타내는 흐름도이다.
도 28은 본 개시의 실시예에 따른 메모리 셀 어레이의 프로그램 방법을 나타낸다.
도 29는 워드 라인 별 프로그램 속도를 나타내는 그래프이다.
도 30은 본 개시의 실시예에 따른 메모리 장치의 동작 방법을 나타내는 흐름도이다.
도 31은 본 개시의 실시예에 따른 워드 라인의 프로그램 속도 감지 및 프로그램 전압 레벨 보상 방법을 설명하는 도면이다.
도 32는 본 개시의 실시예에 따른 워드 라인의 프로그램 속도를 반영하여 프로그램 전압 레벨을 설정하는 방법을 나타내는 도면이다.
도 33a 내지 도 33c는 본 개시의 실시예에 따른 프로그램 방법의 단계별 워드라인의 문턱 전압 산포를 나타내는 그래프이다.
도 34는 본 개시의 실시예에 따른 메모리 장치의 동작 방법을 나타내는 흐름도이다.
도 35는 프로그램 수행 중 워드 라인의 프로그램 속도 감지 방법을 나타내는 도면이다.
도 36은 본 개시의 실시예에 따른 메모리 장치의 동작 방법의 일 실시예를 나타낸다.
도 37은 본 개시의 실시예에 따른 메모리 장치의 동작 방법을 보다 상세하게 나타낸 흐름도이다.
도 38은 본 개시의 실시예에 따른 프로그램 제어부의 일 예를 나타내는 블록도이다.
도 39는 본 개시의 실시예에 따른 메모리 시스템을 나타내는 블록도이다.
도 40은 본 개시의 일 실시예에 따른 메모리 카드 시스템을 나타내는 블록도이다.
도 41은 본 개시의 일 실시예에 따른 컴퓨팅 시스템을 나타내는 블록도이다.
도 42는 본 개시의 일 실시예에 따른 SSD 시스템을 나타내는 블록도이다.
도 43은 본 개시의 실시예에 따른 UFS(uiversal flash storage)를 나타내는 블록도이다.
In order to more fully understand the drawings cited in the detailed description of the present disclosure, a brief description of each drawing is provided.
1 is a block diagram illustrating a memory device according to an exemplary embodiment of the present disclosure.
2 is a circuit diagram illustrating an example of a memory block according to an exemplary embodiment of the present disclosure.
3 is a circuit diagram illustrating another example of a memory block according to an exemplary embodiment of the present disclosure.
FIG. 4 is a perspective view illustrating a memory block according to the circuit diagram of FIG. 3 .
5A and 5B are views illustrating an operating method of a memory device according to an exemplary embodiment of the present disclosure.
6 is a flowchart illustrating a method of operating a memory device according to an exemplary embodiment of the present disclosure.
7A and 7B are graphs illustrating distribution of memory cells according to setting threshold voltage ranges of cell groups.
8(a) to (d) are graphs showing an example of a program method step by step according to an embodiment of the present disclosure.
FIG. 9 is a waveform diagram of a voltage applied to a word line connected to a memory cell programmed in FIG. 8 .
10 is a diagram illustrating a program method according to an embodiment of the present disclosure in more detail.
11 (a) to (c) are graphs showing an example of a program method step by step according to an embodiment of the present disclosure.
FIG. 12 is a waveform diagram of a voltage applied to a word line connected to a memory cell programmed in FIG. 11 .
13 is a diagram illustrating a program method according to an embodiment of the present disclosure in more detail.
14A and 14B are views illustrating an operating method of a memory device according to an exemplary embodiment of the present disclosure.
15 (a) to (f) are graphs showing an example of a program method step by step according to an embodiment of the present disclosure.
FIG. 16 is a waveform diagram of a voltage applied to a word line connected to a memory cell programmed in FIG. 15 .
17 (a) to (d) are graphs showing an example of a program method step by step according to an embodiment of the present disclosure.
FIG. 18 is a waveform diagram of a voltage applied to a word line connected to a memory cell programmed in FIG. 17 .
19 is a flowchart illustrating a method of operating a memory device according to an exemplary embodiment of the present disclosure.
20 is a flowchart illustrating a method of operating a memory device according to an exemplary embodiment of the present disclosure.
21 shows threshold voltage distribution of memory cells according to each program state.
22 is a waveform illustrating a voltage pulse applied to a word line as an example of a method of operating a memory device according to an embodiment of the present disclosure.
23 is a waveform illustrating a voltage pulse applied to a word line as an example of a method of operating a memory device according to an embodiment of the present disclosure.
24 is a flowchart illustrating another example of a program method according to an embodiment of the present disclosure.
25A to 25C are graphs showing the distribution of threshold voltages of word lines according to each step in the flowchart of FIG. 24 .
26A and 26B are diagrams illustrating an initial programming step and a later programming step for memory cells of a word line.
27 is a flowchart illustrating another example of a program method according to an embodiment of the present disclosure.
28 illustrates a method of programming a memory cell array according to an embodiment of the present disclosure.
29 is a graph showing program speed for each word line.
30 is a flowchart illustrating a method of operating a memory device according to an exemplary embodiment of the present disclosure.
31 is a diagram explaining a method of detecting a program speed of a word line and compensating for a program voltage level according to an embodiment of the present disclosure.
32 is a diagram illustrating a method of setting a program voltage level by reflecting a program speed of a word line according to an embodiment of the present disclosure.
33A to 33C are graphs illustrating threshold voltage distributions of word lines in each step of a program method according to an embodiment of the present disclosure.
34 is a flowchart illustrating a method of operating a memory device according to an exemplary embodiment of the present disclosure.
35 is a diagram illustrating a method of detecting a program speed of a word line during program execution.
36 illustrates an embodiment of a method of operating a memory device according to an embodiment of the present disclosure.
37 is a flowchart illustrating in detail a method of operating a memory device according to an exemplary embodiment of the present disclosure.
38 is a block diagram illustrating an example of a program control unit according to an embodiment of the present disclosure.
39 is a block diagram illustrating a memory system according to an exemplary embodiment of the present disclosure.
40 is a block diagram illustrating a memory card system according to an exemplary embodiment of the present disclosure.
41 is a block diagram illustrating a computing system according to an embodiment of the present disclosure.
42 is a block diagram illustrating an SSD system according to an embodiment of the present disclosure.
43 is a block diagram illustrating a uiversal flash storage (UFS) according to an embodiment of the present disclosure.

이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명한다. 본 발명의 실시예는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되는 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다. 첨부된 도면에 있어서, 구조물들의 치수는 본 발명의 명확성을 기하기 위하여 실제보다 확대하거나 축소하여 도시한 것이다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. The embodiments of the present invention are provided to more completely explain the present invention to those skilled in the art. Since the present invention can have various changes and various forms, specific embodiments are illustrated in the drawings and described in detail. However, it should be understood that this is not intended to limit the present invention to the specific disclosed form, and includes all modifications, equivalents, and substitutes included in the spirit and scope of the present invention. In describing each figure, like reference numbers are used for like elements. In the accompanying drawings, the dimensions of the structures are shown enlarged or reduced than actual for clarity of the present invention.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Terms used in this application are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly dictates otherwise. In this application, terms such as "comprise" or "have" are intended to designate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, but one or more other features It should be understood that it does not preclude the possibility of the presence or addition of numbers, steps, operations, components, parts, or combinations thereof.

또한, 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 벗어나지 않으면서, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. Also, terms such as first and second may be used to describe various components, but the components should not be limited by the terms. The terms may be used for the purpose of distinguishing one component from another. For example, a first element could be termed a second element, and similarly, a second element could be termed a first element, without departing from the scope of the present invention.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and unless explicitly defined in this application, it should not be interpreted in an ideal or excessively formal meaning. don't

도 1은 본 개시의 실시예에 따른 메모리 장치를 나타내는 블록도이다. 1 is a block diagram illustrating a memory device according to an exemplary embodiment of the present disclosure.

도 1을 참조하면, 메모리 장치(100)는 메모리 셀 어레이(110), 로우 디코더(120), 입출력 회로(130), 전압 생성부(140) 및 제어 로직(150)을 포함할 수 있다. 메모리 장치(100)는 비휘발성 메모리 셀들을 포함하는 비휘발성 메모리 장치일 수 있다. Referring to FIG. 1 , a memory device 100 may include a memory cell array 110 , a row decoder 120 , an input/output circuit 130 , a voltage generator 140 and a control logic 150 . The memory device 100 may be a non-volatile memory device including non-volatile memory cells.

메모리 셀 어레이(110)는 복수의 메모리 셀들을 포함할 수 있다. 예를 들어, 복수의 메모리 셀들은 플래쉬 메모리 셀들일 수 있다. 이하에서는, 복수의 메모리 셀들이 낸드(NAND) 플래쉬 메모리 셀들인 경우를 예로 하여 실시예들을 상술하기로 한다. 그러나, 본 개시의 기술적 사상은 이에 제한되지 않고, 다른 실시예에서, 복수의 메모리 셀들은 RRAM(resistive RAM), PRAM(phase change RAM) 또는 MRAM(magnetic RAM)과 같은 저항형 메모리 셀들일 수 있다.The memory cell array 110 may include a plurality of memory cells. For example, the plurality of memory cells may be flash memory cells. Hereinafter, embodiments will be described in detail taking a case in which the plurality of memory cells are NAND flash memory cells as an example. However, the technical spirit of the present disclosure is not limited thereto, and in another embodiment, the plurality of memory cells may be resistive memory cells such as resistive RAM (RRAM), phase change RAM (PRAM), or magnetic RAM (MRAM). .

일 실시예에서, 메모리 셀 어레이(110)는 3차원 (3D) 메모리 셀 어레이일 수 있다. 3차원 메모리 셀 어레이는 실리콘 기판 위에 배치되는 활성 영역과, 메모리 셀들의 동작과 관련된 회로로서 상기 기판 상에 또는 상기 기판 내에 형성된 회로를 가지는 메모리 셀 어레이들의 적어도 하나의 물리적 레벨에 모놀리식으로 형성된다. 상기 용어 "모놀리식"은 상기 어레이를 구성하는 각 레벨의 층들이 상기 어레이 중 각 하부 레벨의 층들의 바로 위에 적층되어 있음을 의미한다. 상기 3D 메모리 셀 어레이는 적어도 하나의 메모리 셀이 다른 메모리 셀의 위에 위치하도록 수직 방향으로 배치된 낸드 스트링들을 포함한다. 상기 적어도 하나의 메모리 셀은 전하 트랩층을 포함할 수 있다. 그러나, 이에 제한되는 것은 아니며, 다른 실시예에 있어서, 메모리 셀 어레이(110)는 2차원 메모리 셀 어레이일 수 있다. In one embodiment, memory cell array 110 may be a three-dimensional (3D) memory cell array. A three-dimensional memory cell array is monolithically formed on at least one physical level of memory cell arrays having an active region disposed over a silicon substrate and circuitry associated with operation of the memory cells formed on or within the substrate. do. The term "monolithic" means that the layers of each level of the array are stacked directly on top of the layers of each lower level of the array. The 3D memory cell array includes NAND strings arranged in a vertical direction such that at least one memory cell is positioned above another memory cell. The at least one memory cell may include a charge trap layer. However, it is not limited thereto, and in another embodiment, the memory cell array 110 It may be a two-dimensional memory cell array.

본 실시예에서, 메모리 셀 어레이(110)에 포함되는 각 메모리 셀은 2 비트 이상의 데이터를 저장하는 멀티 레벨 셀(multi level cell, MLC)일 수 있다. 예를 들어, 메모리 셀은 2 비트 데이터를 저장하는 멀티 레벨 셀(multi level cell, MLC)일 수 있다. 또 다른 예로서, 메모리 셀은 3 비트 데이터를 저장하는 트리플 레벨 셀(triple level cell, TLC)일 수 있다. 그러나, 본 개시는 이에 한정되지 않고, 다른 실시예에서, 메모리 셀 어레이(110)에 포함되는 일부 메모리 셀들은 1 비트 데이터를 저장하는 싱글 레벨 셀(single level cell, SLC)이고, 다른 일부 메모리 셀들은 멀티 레벨 셀(multi level cell, MLC)일 수 있다.In this embodiment, each memory cell included in the memory cell array 110 may be a multi-level cell (MLC) that stores data of 2 bits or more. For example, the memory cell may be a multi-level cell (MLC) that stores 2-bit data. As another example, the memory cell may be a triple level cell (TLC) that stores 3-bit data. However, the present disclosure is not limited thereto, and in another embodiment, some memory cells included in the memory cell array 110 are single level cells (SLCs) that store 1-bit data, and some other memory cells may be multi-level cells (MLC).

메모리 셀 어레이(110)는 복수의 메모리 셀들을 포함하고, 워드 라인들(WL), 스트링 선택 라인들(SSL), 그라운드 선택 라인들(GSL) 및 비트 라인들(BL)에 연결될 수 있다. 구체적으로 메모리 셀 어레이(110)는 워드 라인들(WL) 또는 선택 라인들(SSL, GSL)을 통해 로우 디코더(120)에 연결되고, 비트 라인들(BL)을 통해서 입출력 회로(130)에 연결될 수 있다. The memory cell array 110 includes a plurality of memory cells and may be connected to word lines WL, string select lines SSL, ground select lines GSL, and bit lines BL. Specifically, the memory cell array 110 is connected to the row decoder 120 through word lines WL or select lines SSL and GSL, and is connected to the input/output circuit 130 through bit lines BL. can

메모리 셀 어레이(110)는 복수의 메모리 블록(BL1~BLKi)을 포함할 수 있다. 복수의 메모리 블록(BLK1~BLKi)은 싱글 레벨 셀들을 포함하는 싱글 레벨 셀 블록, 멀티 레벨 셀들을 포함하는 멀티 레벨 셀 블록 및 트리플 레벨 셀들을 포함하는 트리플 레벨 셀 블록 중 적어도 하나를 포함할 수 있다. 메모리 셀 어레이(110)에 포함된 복수의 메모리 블록들 중 일부 메모리 블록은 싱글 레벨 셀 블록일 수 있고, 다른 블록들은 멀티 레벨 셀 블록 또는 트리플 레벨 셀 블록일 수 있다.The memory cell array 110 may include a plurality of memory blocks BL1 to BLKi. The plurality of memory blocks BLK1 to BLKi may include at least one of a single-level cell block including single-level cells, a multi-level cell block including multi-level cells, and a triple-level cell block including triple-level cells. . Some of the plurality of memory blocks included in the memory cell array 110 may be single-level cell blocks, and other blocks may be multi-level cell blocks or triple-level cell blocks.

메모리 셀 어레이(110)에 소거 전압이 인가되면 복수의 메모리 셀들은 소거 상태가 되며, 메모리 셀 어레이(110)에 프로그램 전압이 인가되면 복수의 메모리 셀들은 프로그램 상태가 된다. 이때, 각 메모리 셀은 문턱 전압(threshold voltage, Vth)에 따라 구분되는 소거 상태(E) 및 적어도 하나의 프로그램 상태를 가질 수 있다.When an erase voltage is applied to the memory cell array 110, a plurality of memory cells are in an erase state, and when a program voltage is applied to the memory cell array 110, a plurality of memory cells are in a program state. In this case, each memory cell may have an erase state (E) and at least one program state classified according to a threshold voltage (Vth).

일 실시예에서, 메모리 셀이 싱글 레벨 셀인 경우, 메모리 셀은 소거 상태 및 프로그램 상태를 가질 수 있다. 다른 실시예에서, 메모리 셀이 멀티 레벨 셀인 경우, 메모리 셀은 소거 상태 및 적어도 세 개의 프로그램 상태를 가질 수 있다. In one embodiment, when the memory cell is a single-level cell, the memory cell may have an erase state and a program state. In another embodiment, when the memory cell is a multi-level cell, the memory cell may have an erase state and at least three program states.

본 실시예에 있어서, 메모리 셀들은 프로그램되는 속도에 따라 복수의 셀 그룹으로 구분되어, 프로그램될 수 있다. In this embodiment, memory cells may be divided into a plurality of cell groups according to programming speeds and programmed.

예를 들어, 메모리 셀들은 프로그램 상태에 대응하여 미리 설정된 1차 프로그램 전압에 기초하여 프로그램된 후, 상기 메모리 셀들의 가우시안 형태의 문턱 전압 산포(이후, 간략하게 산포라고 개시한다)에 기초하여 프로그램 속도에 따른 세 개의 셀 그룹으로 구분될 수 있다. 이후, 세 개의 셀 그룹 중 메모리 셀들의 산포의 최상위 영역에 대응하는 제1 셀 그룹을 제외한 다른 셀 그룹들이, 복수의 2차 프로그램 전압을 기초로, 상기 프로그램 상태로 재프로그램될 수 있다. 이때, 복수의 2차 프로그램 전압은 원-샷 메모리 셀들의 산포 및 1차 프로그램 전압에 따라 미리 설정될 수 있다. For example, memory cells are programmed based on a preset primary program voltage corresponding to a program state, and then the program speed is determined based on a Gaussian-type threshold voltage distribution of the memory cells (hereinafter referred to simply as distribution). It can be divided into three cell groups according to Thereafter, cell groups other than the first cell group corresponding to the uppermost region of the distribution of memory cells among the three cell groups may be reprogrammed to the programmed state based on the plurality of secondary program voltages. In this case, the plurality of secondary program voltages may be preset according to the distribution of one-shot memory cells and the primary program voltage.

일 실시예에 있어서, 제1 셀 그룹은 세 개의 셀 그룹 중 가장 빠른 속도로 프로그램되며, 제1 셀 그룹의 산포는 프로그램 상태의 타겟 산포에 포함될 수 있다. In one embodiment, the first cell group is programmed at the fastest speed among the three cell groups, and the distribution of the first cell group may be included in the target distribution of programmed states.

일 실시예에 있어서, 메모리 셀들의 산포의 중간 영역에 대응하는 셀 그룹의 문턱 전압 범위는 다른 셀 그룹들의 문턱 전압 범위보다 좁을 수 있다. In one embodiment, a threshold voltage range of a cell group corresponding to a middle region of the distribution of memory cells may be narrower than that of other cell groups.

이러한 단계들을 포함하는 1회의 프로그램 싸이클 동안 상기 메모리 셀들이 복수의 프로그램 상태들 중 하나로 프로그램될 수 있다. 복수회의 프로그램 싸이클 동안 메모리 셀들이 복수의 프로그램 상태로 프로그램될 수 있다. 예를 들어, 메모리 셀이 2 비트의 데이터를 저장하는 멀티 비트 셀일 경우, 메모리 셀은 3개의 프로그램 상태를 가질 수 있고, 3회의 프로그램 싸이클 동안 복수의 메모리 셀들 각각이 상기 3개의 프로그램 상태 중 하나로 프로그램될 수 있다. During one program cycle including these steps, the memory cells may be programmed into one of a plurality of program states. Memory cells may be programmed into a plurality of program states during a plurality of program cycles. For example, when a memory cell is a multi-bit cell storing 2-bit data, the memory cell may have three program states, and each of a plurality of memory cells is programmed into one of the three program states during three program cycles. It can be.

로우 디코더(120)는 로우 어드레스(X-ADDR)에 응답하여 워드 라인들(WL) 중 일부 워드 라인을 선택할 수 있다. 로우 디코더(120)는 워드 라인에 워드 라인 전압을 전달한다. 프로그램 동작시, 로우 디코더(120)는 선택된 워드라인에 프로그램 전압과 검증 전압을, 비선택된 워드 라인(Unselected WL)에는 프로그램 인히빗 전압을 인가할 수 있다. 예컨대 독출 동작시, 로우 디코더(120)는 선택 워드 라인에는 독출 전압을, 비선택된 워드 라인에는 독출 인히빗 전압을 인가할 수 있다. 또한, 로우 디코더(120)는 로우 어드레스(X-ARRD)에 응답하여 스트링 선택 라인들(SSL) 중 일부 스트링 선택 라인 또는 그라운드 선택 라인들(GSL) 중 일부 그라운드 선택 라인을 선택할 수 있다.The row decoder 120 may select some word lines from among the word lines WL in response to the row address X-ADDR. The row decoder 120 transfers the word line voltage to the word line. During a program operation, the row decoder 120 may apply a program voltage and a verify voltage to a selected word line and a program inhibit voltage to an unselected word line (Unselected WL). For example, during a read operation, the row decoder 120 may apply a read voltage to a selected word line and a read inhibit voltage to an unselected word line. Also, the row decoder 120 may select some string selection lines among the string selection lines SSL or some ground selection lines among the ground selection lines GSL in response to the row address X-ARRD.

입출력 회로(130)는 외부로부터(예를 들어, 메모리 콘트롤러) 데이터를 입력 받고, 입력된 데이터를 메모리 셀 어레이(110)에 저장한다. 또한, 입출력 회로(130)는 메모리 셀 어레이(110)로부터 데이터를 읽고, 독출된 데이터를 외부로 출력할 수 있다. 입출력 회로(130)는 비트 라인들(BL)에 대응하는 페이지 퍼버들(미도시)을 포함할 수 있다. 페이지 버퍼는 비트 라인들(BL)을 통해 메모리 셀 어레이(110)에 연결될 수 있고, 제어 로직(150)으로부터 수신한 칼럼 어드레스(Y-ADDR)에 응답하여 비트 라인들(BL) 중 일부 비트 라인을 선택할 수 있다. 프로그램 동작 시 페이지 버퍼는 기입 드라이버로 동작하여 메모리 셀 어레이(110)에 저장하고자 하는 데이터(DATA)를 프로그램할 수 있다. The input/output circuit 130 receives data from the outside (eg, a memory controller) and stores the input data in the memory cell array 110 . Also, the input/output circuit 130 may read data from the memory cell array 110 and output the read data to the outside. The input/output circuit 130 may include page buffers (not shown) corresponding to the bit lines BL. The page buffer may be connected to the memory cell array 110 through bit lines BL, and some of the bit lines BL in response to the column address Y-ADDR received from the control logic 150. can choose During the program operation, the page buffer operates as a write driver to program data DATA to be stored in the memory cell array 110 .

전압 생성부(140)는 전압 제어 신호(CTRL_vol)를 기초로 하여 메모리 셀 어레이(110)에 대한 프로그램, 독출 및 소거 동작을 수행하기 위한 다양한 종류의 전압들을 생성할 수 있다. 구체적으로, 전압 생성부(140)는 워드 라인 전압, 예를 들어, 프로그램 전압(또는 기입 전압), 독출 전압, 패스 전압(또는 워드 라인 비선택 전압), 또는 검증 전압 등을 생성할 수 있다. 전압 생성부(140)는 비트 라인 전압, 예를 들어 비트 라인 포싱 전압, 인히빗 전압 등을 생성할 수 있다. 또한, 전압 생성부(140)는 전압 제어 신호(CTRL_vol)를 기초로 하여 스트링 선택 라인 전압 및 그라운드 선택 라인 전압을 더 생성할 수 있다. The voltage generator 140 may generate various types of voltages for performing program, read, and erase operations on the memory cell array 110 based on the voltage control signal CTRL_vol. Specifically, the voltage generator 140 may generate a word line voltage, eg, a program voltage (or write voltage), a read voltage, a pass voltage (or a word line unselect voltage), or a verify voltage. The voltage generator 140 may generate a bit line voltage, eg, a bit line forcing voltage or an inhibit voltage. Also, the voltage generator 140 may further generate a string selection line voltage and a ground selection line voltage based on the voltage control signal CTRL_vol.

제어 로직(150)은 메모리 컨트롤러(도 1의 200)로부터 수신한 커맨드(CMD), 어드레스(ADDR) 및 제어 신호(CTRL)를 기초로 하여, 메모리 셀 어레이(110)에 데이터를 기입하거나 메모리 셀 어레이(110)로부터 데이터를 독출하기 위한 각종 제어 신호를 출력할 수 있다. 이로써, 제어 로직(150)은 메모리 장치(100) 내의 각종 동작을 전반적으로 제어할 수 있다.The control logic 150 writes data into the memory cell array 110 or writes data to the memory cell array 110 based on the command CMD, address ADDR, and control signal CTRL received from the memory controller (200 in FIG. 1). Various control signals for reading data from the array 110 may be output. Accordingly, the control logic 150 may control various operations within the memory device 100 as a whole.

제어 로직(150)에서 출력된 각종 제어 신호는 전압 생성부(140), 로우 디코더(120) 및 입출력 회로(130)에 제공될 수 있다. 구체적으로, 제어 로직(150)은 전압 생성부(140)에 전압 제어 신호(CTRL_vol)를 제공할 수 있고, 로우 디코더(120)에 로우 어드레스(X-ADDR)를 제공할 수 있으며, 입출력 회로(130)에 칼럼 어드레스(Y-ADDR)를 제공할 수 있다. 그러나, 본 개시는 이에 한정되지 않고, 제어 로직(150)은 전압 생성부(140), 로우 디코더(120) 및 입출력 회로(130)에 다른 제어 신호들을 더 제공할 수 있다.Various control signals output from the control logic 150 may be provided to the voltage generator 140 , the row decoder 120 , and the input/output circuit 130 . Specifically, the control logic 150 may provide a voltage control signal CTRL_vol to the voltage generator 140, may provide a row address X-ADDR to the row decoder 120, and an input/output circuit ( 130) may be provided with a column address (Y-ADDR). However, the present disclosure is not limited thereto, and the control logic 150 may further provide other control signals to the voltage generator 140 , the row decoder 120 , and the input/output circuit 130 .

제어 로직(150)은 본 개시의 프로그램 방법에 따른 프로그램 시퀀스에 따라, 메모리 셀 어레이(110)에 대한 프로그램을 제어하기 위한 프로그램 제어부(160)를 구비할 수 있다. The control logic 150 may include a program controller 160 for controlling a program for the memory cell array 110 according to a program sequence according to the programming method of the present disclosure.

프로그램 제어부(160)는 메모리 장치의(100)의 프로그램 동작을 제어할 수 있다. 실시예에 있어서, 프로그램 제어부(160)는 복수의 프로그램 상태들 각각에 대응하는 복수의 구동 전압들의 전압 레벨을 설정할 수 있다. 복수의 구동 전압은, 복수의 프로그램 상태 각각에 대응하는 프로그램 전압들, 검증 전압들, 오프셋 전압들, 워드라인의 프로그램 속도에 따른 보상 전압들 등을 포함할 수 있다. The program controller 160 may control a program operation of the memory device 100 . In an embodiment, the program controller 160 may set voltage levels of a plurality of driving voltages corresponding to each of a plurality of program states. The plurality of driving voltages may include program voltages corresponding to each of a plurality of program states, verification voltages, offset voltages, compensation voltages according to a program speed of a word line, and the like.

실시예에 있어서, 프로그램 제어부(160)는 메모리 셀 어레이(110)에 테스트 프로그램 전압을 인가하고, 적어도 하나의 독출 전압을 기초로 메모리 셀들의 가우시안 형태의 문턱 전압 분포를 판단할 수 있다. 프로그램 제어부(160)는 상기 메모리 셀들의 문턱 전압 분포를 기초로, 프로그램 동작 시, 프로그램될 메모리 셀들을 프로그램 속도별 그룹으로 분할하기 위한 제어 신호들, 예컨대 적어도 하나의 검증 전압, 검증 독출 시, 센싱 타임을 설정 신호 등을 설정할 수 있다. 또한, 프로그램 제어부(160)는 각 프로그램 상태별로 대응하는 프로그램 전압 셋(예컨대, 1차 프로그램 전압 및 복수의 2차 프로그램 전압들)의 전압 레벨을 설정할 수 있다. In an embodiment, the program controller 160 may apply a test program voltage to the memory cell array 110 and determine a Gaussian-shaped threshold voltage distribution of memory cells based on at least one read voltage. The program control unit 160 generates control signals for dividing memory cells to be programmed into groups according to program speeds during a program operation based on the distribution of threshold voltages of the memory cells, for example, at least one verify voltage, and during a verify read operation, sensing You can set the time, signal, etc. In addition, the program control unit 160 may set the voltage level of a program voltage set (eg, a first program voltage and a plurality of second program voltages) corresponding to each program state.

실시예에 있어서, 프로그램 제어부(160)는 메모리 셀들을 각각의 프로그램 상태로 프로그램하기 전, 예컨대, 이전 상태의 프로그램 수행 시, 각 워드 라인 별 프로그램 속도를 감지하고, 프로그램 속도에 따른 워드 라인 별 보상 전압을 설정할 수 있다. 또한, 프로그램 제어부(160)는 각 프로그램 상태에 대한 프로그램 전압 설정 시, 상기 보상 전압 및 이전 상태의 프로그램 전압을 기초로 프로그램 전압의 전압 레벨을 조절할 수 있다. In an embodiment, the program control unit 160 detects the program speed of each word line before programming the memory cells to each program state, eg, when the program of the previous state is executed, and compensates for each word line according to the program speed. voltage can be set. Also, when setting the program voltage for each program state, the program control unit 160 may adjust the voltage level of the program voltage based on the compensation voltage and the program voltage of the previous state.

실시예에 있어서, 프로그램 제어부(160)는 메모리 셀 어레이(110)의 워드라인별 프로그램 시퀀스를 제어할 수 있다. 프로그램 제어부(160)는 한 워드라인의 메모리 셀들에 대하여 프로그램이 수행될 때, 상기 워드라인의 메모리 셀들에 대하여 1차 프로그램 전압을 기초로 1차 프로그램을 수행하고, 상기 1차 프로그램이 수행된 메모리 셀들을 프로그램 속도별로 복수의 셀 그룹으로 구분하고, 상기 복수의 셀 그룹의 문턱 전압 차이에 기초하여 설정되는 복수의 2차 프로그램 전압을 기초로 상기 메모리 셀들에 대하여 2차 프로그램을 수행할 수 있다. 이때, 상기 프로그램 제어부(160)는 한 워드라인의 메모리 셀들에 대하여 1차 프로그램을 수행하고, 인접한 워드라인에 대하여 1차 프로그램을 수행한 후, 상기 워드라인의 메모리 셀들에 대하여 2차 프로그램을 수행하도록 프로그램 시퀀스를 설정함으로써, 인접한 워드라인간 커플링 효과를 방지할 수 있다. In an exemplary embodiment, the program controller 160 may control a program sequence for each word line of the memory cell array 110 . When programming is performed on memory cells of one word line, the program control unit 160 performs the first program on the memory cells of the word line based on the first program voltage, and performs the first program on the memory cells where the first program is performed. Cells may be divided into a plurality of cell groups according to program speeds, and secondary programming may be performed on the memory cells based on a plurality of secondary program voltages set based on differences in threshold voltages of the plurality of cell groups. At this time, the program control unit 160 performs a first program on the memory cells of one word line, performs a first program on an adjacent word line, and then performs a second program on the memory cells of the word line. By setting the program sequence to do so, the coupling effect between adjacent word lines can be prevented.

본 실시예에 따른 메모리 장치(100)는 프로그램 수행 시, 복수의 프로그램 상태 각각에 대응하여 미리 설정된 프로그램 전압을 기초로 메모리 셀들을 프로그램할 수 있다. 또한, 메모리 장치(100)는 원-샷 메모리 셀의 문턱 전압 산포를 기초로, 메모리 셀들을 프로그램 속도에 따른 복수의 셀 그룹으로 구분하고, 서로 다른 문턱 전압 산포 폭을 갖는 복수의 셀 그룹 각각이 타겟 상태로 프로그램되도록 상기 복수의 셀 그룹의 문턱 전압 차이를 기초로 설정된 프로그램 전압들을 기초로, 각각의 셀 그룹을 프로그램함으로써, 각 프로그램 상태에 대하여 동일한 프로그램 횟수를 적용하여 프로그램할 수 있다. 이에 따라 메모리 장치(100)의 프로그램 시간이 감소될 수 있고 또한 각 프로그램 상태의 문턱 전압 산포의 폭이 감소될 수 있다. When performing a program, the memory device 100 according to this embodiment may program memory cells based on a preset program voltage corresponding to each of a plurality of program states. Also, the memory device 100 divides memory cells into a plurality of cell groups according to program speeds based on the threshold voltage distribution of the one-shot memory cells, and each of the plurality of cell groups having different threshold voltage distribution widths By programming each cell group based on program voltages set based on a difference in threshold voltages of the plurality of cell groups to be programmed to a target state, the same program number may be applied to each program state for programming. Accordingly, the program time of the memory device 100 may be reduced and the width of the threshold voltage distribution in each program state may be reduced.

또한, 본 실시예에 따른 메모리 장치(100)는 메모리 셀들을 각각의 프로그램 상태로 프로그램하기 전, 워드 라인 별 메모리 셀들의 프로그램 속도를 체크하고, 상기 프로그램 속도에 따른 보상 전압을 프로그램 전압에 반영함으로써, 메모리 셀 어레이에 프로그램된 프로그램 상태 각각의 문턱 전압 산포의 폭을 감소시킬 수 있다. In addition, the memory device 100 according to the present embodiment checks the program speed of memory cells for each word line before programming the memory cells to each program state, and reflects a compensation voltage according to the program speed to the program voltage. , the width of the threshold voltage distribution of each program state programmed into the memory cell array may be reduced.

또한, 본 실시예에 따른 메모리 장치(100)는 하나의 워드라인의 메모리 셀들에 대하여 프로그램 수행 시, 상기 워드라인 및 상기 워드라인에 인접한 워드라인에 대하여 각각의 워드 라인에 대응하는, 1차 프로그램 전압을 인가하여 1차 프로그램을 수행한 후, 상기 워드라인의 원-샷 메모리 셀의 문턱 전압 산포를 기초로 상기 워드라인의 메모리 셀들에 대하여 2차 프로그램을 수행함으로써, 워드라인간 커플링 효과를 감소시킬 수 있다.In addition, when performing programming on memory cells of one word line, the memory device 100 according to the present embodiment performs a first program corresponding to each word line with respect to the word line and word lines adjacent to the word line. After performing the first program by applying a voltage, and then performing the second program on the memory cells of the word line based on the threshold voltage distribution of the one-shot memory cell of the word line, the coupling effect between word lines is reduced. can reduce

이하, 본 개시의 실시예에 따른 메모리 장치(100) 및 메모리 장치의 프로그램 방법 및 동작 방법에 대하여 보다 상세하게 설명하기로 한다.
Hereinafter, the memory device 100 and a programming method and operating method of the memory device according to an exemplary embodiment of the present disclosure will be described in detail.

도 2는 본 개시의 실시예에 따른 메모리 블록의 일 예를 나타내는 회로도이다. 2 is a circuit diagram illustrating an example of a memory block according to an exemplary embodiment of the present disclosure.

도 2를 참조하면, 메모리 블록(BLKa)은 수평 구조의 낸드 플래쉬 메모리일 수 있다. 메모리 블록(BLKa)은 예를 들어, 개의 메모리 셀들이 직렬로 연결되는 d(d는 2 이상의 정수)개의 스트링(STR)들을 포함할 수 있다. 각 스트링(STR)은 직렬로 연결된 메모리 셀들(MC)의 양 끝에 각각 연결되는 스트링 선택 트랜지스터(SST) 및 접지 선택 트랜지스터(GST)를 포함할 수 있다. 여기서, 스트링들(STR)의 개수, 워드 라인들(WL)의 개수, 비트 라인들(BL)의 개수는 실시예에 따라 다양하게 변경될 수 있다. Referring to FIG. 2 , the memory block BLKa may be a NAND flash memory having a horizontal structure. The memory block BLKa may include, for example, d (d is an integer greater than or equal to 2) strings STRs in which the memory cells are connected in series. Each string STR may include a string select transistor SST and a ground select transistor GST respectively connected to both ends of the memory cells MC connected in series. Here, the number of strings STR, the number of word lines WL, and the number of bit lines BL may be variously changed according to embodiments.

도 2와 같은 구조를 갖는 메모리 블록을 포함하는 낸드 플래쉬 메모리 장치는 메모리 블록 단위로 소거가 수행되고, 각 워드 라인(WL1 내지 WL8)에 대응되는 페이지(PAGE) 단위로 프로그램을 수행할 수 있다. 일 예에서, 메모리 셀(MC)이 싱글 레벨 셀인 경우, 각 워드 라인에 하나의 페이지(PAGE)가 대응될 수 있다. 다른 예에서, 메모리 셀(MC)이 멀티 레벨 셀 또는 트리플 레벨 셀인 경우, 각 워드 라인에 복수의 페이지들(PAGE)이 대응될 수 있다.
In a NAND flash memory device including a memory block having the structure shown in FIG. 2 , erasing may be performed in units of memory blocks, and programming may be performed in units of pages corresponding to word lines WL1 to WL8 . In one example, when the memory cells MC are single-level cells, one page may correspond to each word line. In another example, when the memory cell MC is a multi-level cell or a triple-level cell, a plurality of pages PAGE may correspond to each word line.

도 3은 본 개시의 실시예에 따른 메모리 블록의 다른 예를 나타내는 회로도이다.3 is a circuit diagram illustrating another example of a memory block according to an exemplary embodiment of the present disclosure.

도 3을 참조하면, 메모리 블록(BLKb)은 수직 구조의 낸드 플래쉬 메모리일 수 있다. 메모리 블록(BLKb)은 복수의 낸드 스트링들(NS11 내지 NS33), 복수의 워드 라인들(WL1 내지 WL8), 복수의 비트 라인들(BL1 내지 BL3), 그라운드 선택 라인 들(GSL1, GSL2, GSL3), 복수의 스트링 선택 라인들(SSL1 내지 SSL3) 및 공통 소스 라인(CSL)을 포함할 수 있다. 여기서, 낸드 스트링들의 개수, 워드 라인들의 개수, 비트 라인들의 개수, 그라운드 선택 라인의 개수 및 스트링 선택 라인들의 개수는 실시예에 따라 다양하게 변경될 수 있다.Referring to FIG. 3 , the memory block BLKb may be a NAND flash memory having a vertical structure. The memory block BLKb includes a plurality of NAND strings NS11 to NS33, a plurality of word lines WL1 to WL8, a plurality of bit lines BL1 to BL3, and ground select lines GSL1, GSL2, and GSL3. , a plurality of string select lines SSL1 to SSL3 and a common source line CSL. Here, the number of NAND strings, the number of word lines, the number of bit lines, the number of ground selection lines, and the number of string selection lines may be variously changed according to embodiments.

제1 비트 라인(BL1)과 공통 소스 라인(CSL) 사이에 낸드 스트링들(NS11, NS21, NS31)이 제공되고, 제2 비트 라인(BL2)과 공통 소스 라인(CSL) 사이에 낸드 스트링들(NS12, NS22, NS32)이 제공되고 제3 비트 라인(BL3)과 공통 소스 라인(CSL) 사이에 낸드 스트링들(NS13, NS23, NS33)이 제공된다. 각 낸드 스트링(예를 들면, NS11)은 직렬로 연결된 스트링 선택 트랜지스터(SST), 복수의 메모리 셀들(MC1 내지 MC8) 및 그라운드 선택 트랜지스터(GST)를 포함할 수 있다. 이하에서는, 편의상 낸드 스트링을 스트링이라고 지칭하기로 한다.NAND strings NS11, NS21, and NS31 are provided between the first bit line BL1 and the common source line CSL, and the NAND strings are provided between the second bit line BL2 and the common source line CSL. NS12, NS22, and NS32 are provided, and NAND strings NS13, NS23, and NS33 are provided between the third bit line BL3 and the common source line CSL. Each NAND string (eg, NS11) may include a string select transistor SST, a plurality of memory cells MC1 to MC8, and a ground select transistor GST connected in series. Hereinafter, for convenience, a NAND string will be referred to as a string.

하나의 비트 라인에 공통으로 연결된 스트링들은 하나의 칼럼을 구성한다. 예를 들어, 제1 비트 라인(BL1)에 공통으로 연결된 스트링들(NS11, NS21, NS31)은 제1 칼럼에 대응되고, 제2 비트 라인(BL2)에 공통으로 연결된 스트링들(NS12, NS22, NS32)은 제2 칼럼에 대응되며, 제3 비트 라인(BL3)에 공통으로 연결된 스트링들(NS13, NS23, NS33)은 제3 칼럼에 대응될 수 있다.Strings commonly connected to one bit line constitute one column. For example, the strings NS11, NS21, and NS31 commonly connected to the first bit line BL1 correspond to the first column, and the strings NS12, NS22, and NS22 are commonly connected to the second bit line BL2. NS32) may correspond to the second column, and strings NS13, NS23, and NS33 commonly connected to the third bit line BL3 may correspond to the third column.

하나의 스트링 선택 라인에 연결되는 스트링들은 하나의 로우를 구성한다. 예를 들어, 제1 스트링 선택 라인(SSL1)에 연결된 스트링들(NS11, NS12, NS13)은 제1 로우에 대응되고, 제2 스트링 선택 라인(SSL2)에 연결된 스트링들(NS21, NS22, NS23)은 제2 로우에 대응되며, 제3 스트링 선택 라인(SSL3)에 연결된 스트링들(NS31, NS32, NS33)은 제3 로우에 대응될 수 있다.Strings connected to one string selection line constitute one row. For example, the strings NS11, NS12, and NS13 connected to the first string selection line SSL1 correspond to the first row, and the strings NS21, NS22, and NS23 connected to the second string selection line SSL2 corresponds to the second row, and the strings NS31, NS32, and NS33 connected to the third string selection line SSL3 may correspond to the third row.

스트링 선택 트랜지스터(SST)는 스트링 선택 라인(SSL1 내지 SSL3)에 연결된다. 복수의 메모리 셀들(MC1 내지 MC8)은 각각 대응하는 워드 라인(WL1 내지 WL8)에 연결된다. 그라운드 선택 트랜지스터(GST)는 그라운드 선택 라인들(GSL1, GSL2, GSL3)에 연결된다. 스트링 선택 트랜지스터(SST)는 대응하는 비트 라인(BL)에 연결되고, 그라운드 선택 트랜지스터(GST)는 공통 소스 라인(CSL)에 연결된다.The string select transistor SST is connected to the string select lines SSL1 to SSL3. The plurality of memory cells MC1 to MC8 are connected to corresponding word lines WL1 to WL8, respectively. The ground select transistor GST is connected to the ground select lines GSL1 , GSL2 , and GSL3 . The string select transistor SST is connected to the corresponding bit line BL, and the ground select transistor GST is connected to the common source line CSL.

동일 높이의 워드 라인(예를 들면, WL1)은 공통으로 연결되어 있고, 스트링 선택 라인들(SSL1 내지 SSL3)은 서로 분리되어 있다. 예를 들어, 제 1 워드 라인(WL1)에 연결되어 있고 스트링(NS11, NS12, NS13)에 속해 있는 메모리 셀들을 프로그램하는 경우에는, 제1 워드 라인(WL1)과 제1 스트링 선택 라인(SSL1)이 선택될 수 있다. 일 실시예에 있어서, 도 4에 도시된 바와 같이, 그라운드 선택 라인들(GSL1, GSL2, GSL3)은 서로 분리될 수 있다. 다른 실시예에 있어서, 그라운드 선택 라인들(GSL1, GSL2, GSL3)은 서로 연결될 수 있다.
Word lines (eg, WL1) of the same height are commonly connected, and string select lines SSL1 to SSL3 are separated from each other. For example, when programming memory cells connected to the first word line WL1 and belonging to the strings NS11, NS12, and NS13, the first word line WL1 and the first string select line SSL1 can be selected. In one embodiment, as shown in FIG. 4 , the ground select lines GSL1 , GSL2 , and GSL3 may be separated from each other. In another embodiment, the ground selection lines GSL1 , GSL2 , and GSL3 may be connected to each other.

도 4는 도 3의 회로도에 따른 메모리 블록을 나타내는 사시도이다. FIG. 4 is a perspective view illustrating a memory block according to the circuit diagram of FIG. 3 .

도 4를 참조하면, 메모리 블록(BLK)은 기판(SUB)에 대해 수직 방향으로 형성되어 있다. 기판(SUB)은 도 1의 제1 반도체층(10)일 수 있다. 기판(SUB)은 제1 도전형(예를 들어, p 타입)을 가지며, 기판(SUB) 상에 제1 방향(예를 들어, x방향)을 따라 신장되고, 제2 도전형(예를 들어, n 타입)의 불순물들이 도핑된 공통 소스 라인(CSL)이 제공될 수 있다. 공통 소스 라인(CSL)은 수직형 메모리 셀들로 전류를 공급하는 소스 영역으로서 기능할 수 있다.Referring to FIG. 4 , the memory block BLK is formed in a direction perpendicular to the substrate SUB. The substrate SUB may be the first semiconductor layer 10 of FIG. 1 . The substrate SUB has a first conductivity type (eg, p-type), extends on the substrate SUB in a first direction (eg, x direction), and has a second conductivity type (eg, x direction). , n-type) impurities may be doped with the common source line CSL. The common source line CSL may function as a source region supplying current to vertical memory cells.

인접한 두 공통 소스 라인(CSL) 사이의 기판(SUB)의 영역 상에, 제2 방향(예를 들어, y 방향)을 따라 신장되는 복수의 절연막들(IL)이 제3 방향(예를 들어, z 방향)을 따라 순차적으로 제공되며, 복수의 절연막들(IL)은 제3 방향을 따라 특정 거리만큼 이격된다. 예를 들어, 복수의 절연막들(IL)은 실리콘 산화물과 같은 절연 물질을 포함할 수 있다.On a region of the substrate SUB between two adjacent common source lines CSL, a plurality of insulating layers IL extending along a second direction (eg, y direction) are formed in a third direction (eg, y direction). z direction), and the plurality of insulating layers IL are spaced apart by a specific distance along the third direction. For example, the plurality of insulating layers IL may include an insulating material such as silicon oxide.

인접한 두 공통 소스 라인들(CSL) 사이의 기판(SUB)의 영역 상에, 제1 방향을 따라 순차적으로 배치되며, 제3 방향을 따라 복수의 절연막들(IL)을 관통하는 채널홀이 형성될 수 있다. 채널홀은 수직 방향으로 연장하는 컵 형상(또는 바닥이 막힌 실린더 형상)으로 형성될 수 있다. 또는 채널홀은 도시된 바와 같이 필라 형상으로 형성될 수 있다. 이하, 채널홀은 필라(pillars)라고 지칭하기로 한다. 복수의 필라들(P)은 복수의 절연막들(IL)을 관통하여 기판(SUB)과 컨택할 수 있다. 구체적으로, 각 필라 (P)의 표면층(surface layer)(S)은 제1 타입을 갖는 실리콘 물질을 포함할 수 있고, 채널 영역으로 기능할 수 있다. 한편, 각 필라(P)의 내부층(I)은 실리콘 산화물과 같은 절연 물질 또는 에어 갭(air gap)을 포함할 수 있다.Channel holes sequentially disposed along the first direction and penetrating the plurality of insulating layers IL along the third direction may be formed on a region of the substrate SUB between two adjacent common source lines CSL. can The channel hole may be formed in a cup shape (or a cylinder shape with a closed bottom) extending in a vertical direction. Alternatively, the channel hole may be formed in a pillar shape as shown. Hereinafter, channel holes will be referred to as pillars. The plurality of pillars P may contact the substrate SUB by penetrating the plurality of insulating layers IL. Specifically, the surface layer (S) of each pillar (P) may include a first type silicon material and may function as a channel region. Meanwhile, the inner layer I of each pillar P may include an insulating material such as silicon oxide or an air gap.

인접한 두 공통 소스 라인들(CSL) 사이의 영역에서, 절연막들(IL), 필라들(P) 및 기판(SUB)의 노출된 표면을 따라 전하 저장층(charge storage layer, CS)이 제공된다. 예를 들어, 전하 저장층(CS)은 ONO(oxide-nitride-oxide) 구조를 가질 수 있다. 또한, 인접한 두 공통 소스 라인들(CSL) 사이의 영역에서, 전하 저장층(CS)의 노출된 표면 상에 게이트 전극(GE)이 제공될 수 있다.In a region between two adjacent common source lines CSL, a charge storage layer CS is provided along the insulating layers IL, the pillars P, and the exposed surface of the substrate SUB. For example, the charge storage layer CS may have an oxide-nitride-oxide (ONO) structure. In addition, a gate electrode GE may be provided on an exposed surface of the charge storage layer CS in a region between two adjacent common source lines CSL.

복수의 필라들(P) 상에는 드레인들 또는 드레인 컨택들(DR)이 각각 제공된다. 예를 들어, 드레인들 또는 드레인 컨택들(DR)은 제2 도전형을 갖는 불순물들이 도핑된 실리콘 물질을 포함할 수 있다. 드레인들 또는 드레인 컨택들(DR) 상에, 제2 방향(예를 들어, y 방향)으로 신장되고 제1 방향을 따라 특정 거리만큼 이격되어 배치된 비트 라인들(BL)이 제공될 수 있다.Drains or drain contacts DR are respectively provided on the plurality of pillars P. For example, the drains or drain contacts DR may include a silicon material doped with impurities of the second conductivity type. Bit lines BL extending in the second direction (eg, y direction) and spaced apart by a specific distance along the first direction may be provided on the drains or drain contacts DR.

도 4를 참조하여, 메모리 블록의 실시 예를 설명하였다. 그러나, 이에 제한되는 것은 아니며 메모리 블록의 구조는 다양하게 변형될 수 있다.
An exemplary embodiment of a memory block has been described with reference to FIG. 4 . However, it is not limited thereto and the structure of the memory block may be variously modified.

도 5a 및 도 5b는 본 개시의 실시예에 따른 메모리 장치의 동작 방법을 설명하는 도면이다. 도 5a는 메모리 셀들의 원-샷 산포를 기초로 메모리 셀들을 프로그램 속도에 따라 복수의 셀 그룹으로 구분하는 방법을 나타내고, 도 5b는 프로그램 속도에 따라 구분되는 복수의 셀 그룹에 인가되는 프로그램 전압을 나타낸다.5A and 5B are views illustrating an operating method of a memory device according to an exemplary embodiment of the present disclosure. 5A shows a method of classifying memory cells into a plurality of cell groups according to program speeds based on a one-shot distribution of memory cells, and FIG. 5B shows a program voltage applied to a plurality of cell groups classified according to program speeds. indicate

원-샷 산포는 선택된 워드라인으로 하나의 프로그램 펄스 전압이 인가될 때 발생되는 메모리 셀들의 문턱 전압의 산포를 의미한다. 도 5a를 참조하면, 워드라인에 하나의 프로그램 펄스 전압이 인가되면, 상기 워드라인에 연결된 메모리 셀들의 문턱 전압 산포, 다시 말해 원-샷 산포는 도시된 바와 같이, 가우시안 분포를 가질 수 있다. The one-shot distribution refers to distribution of threshold voltages of memory cells generated when one program pulse voltage is applied to a selected word line. Referring to FIG. 5A , when one program pulse voltage is applied to a word line, a threshold voltage distribution of memory cells connected to the word line, that is, a one-shot distribution, may have a Gaussian distribution.

본 실시예에 따른 메모리 장치의 동작 방법, 다시 말해 프로그램 방법에 따르면, 1차 프로그램 전압(primary program voltage), 예컨대 제1 프로그램 전압(Vpgm1)을 기초로 형성되는 메모리 셀의 원-샷 산포(OS)를 기초로, 메모리 셀들을 프로그램 속도에 따른 복수의 셀 그룹(MCG1, MCG2, MCG3)으로 구분하고, 복수의 셀 그룹(MCG1, MCG2, MCG3)들 간의 문턱 전압 차이 또는 복수의 셀 그룹(MCG1, MCG2, MCG3)들의 문턱 전압 범위(dVth1, dVth2, dVth3; 또는 문턱 전압 산포 폭이라고 함)에 기초하여 설정되는 복수의 2차 프로그램 전압들, 예컨대 제2 프로그램 전압(Vpgm2) 및 제3 프로그램 전압(Vpgm3)을 기초로, 메모리 셀들을 타겟 프로그램 상태(Pn)로 프로그램할 수 있다. 이때, 복수의 셀 그룹(MCG1, MCG2, MCG3)의 문턱 전압 범위(dVth1, dVth2, dVth3)는 서로 다르게 설정될 수 있다. 실시예에 있어서, 문턱 전압 범위(dVth1, dVth2, dVth3)는 각각의 셀 그룹의 단위 문턱 전압 범위에 포함되는 메모리 셀의 개수에 기초하여 설정될 수 있다. 예컨대, 문턱 전압 범위(dVth1, dVth2, dVth3)는 각각의 셀 그룹의 단위 문턱 전압 범위에 포함되는 메모리 셀의 개수(이하, 단위 셀 개수라고 함)에 반비례하게 설정될 수 있다. 도시된 가우시안 형태의 원-샷 산포에 따르면, 원-샷 산포의 중간 영역에 포함되는 제2 셀 그룹(MCG2)의 단위 셀 개수는 원-샷 산포의 엣지 영역에 포함되는 제1 셀 그룹(MCG1) 또는 제3 셀 그룹(MCG3)의 단위 셀 개수보다 많을 수 있다. 따라서, 제2 셀 그룹(MCG2)의 문턱 전압 범위(dVth2)는 제1 셀 그룹(MCG1) 또는 제2 셀 그룹(CMG3)의 문턱 전압 범위(dVth1, dVth3)보다 좁게 설정될 수 있다. According to a method of operating a memory device according to the present embodiment, that is, a program method, a one-shot distribution (OS) of a memory cell formed based on a primary program voltage, for example, the first program voltage Vpgm1. ), the memory cells are divided into a plurality of cell groups MCG1, MCG2, and MCG3 according to the program speed, and the threshold voltage difference between the plurality of cell groups MCG1, MCG2, and MCG3 or the plurality of cell groups MCG1 , MCG2, MCG3, a plurality of secondary program voltages set based on the threshold voltage ranges (dVth1, dVth2, dVth3; or referred to as threshold voltage distribution width), for example, the second program voltage (Vpgm2) and the third program voltage Based on (Vpgm3), memory cells may be programmed to the target program state Pn. In this case, the threshold voltage ranges dVth1 , dVth2 , and dVth3 of the plurality of cell groups MCG1 , MCG2 , and MCG3 may be set differently. In an embodiment, the threshold voltage ranges dVth1, dVth2, and dVth3 may be set based on the number of memory cells included in the unit threshold voltage range of each cell group. For example, the threshold voltage ranges dVth1, dVth2, and dVth3 may be set in inverse proportion to the number of memory cells included in the unit threshold voltage range of each cell group (hereinafter referred to as the number of unit cells). According to the illustrated Gaussian-shaped one-shot distribution, the number of unit cells of the second cell group MCG2 included in the middle area of the one-shot distribution is the first cell group MCG1 included in the edge area of the one-shot distribution. ) or the number of unit cells of the third cell group MCG3. Accordingly, the threshold voltage range dVth2 of the second cell group MCG2 may be set narrower than the threshold voltage ranges dVth1 and dVth3 of the first cell group MCG1 or the second cell group CMG3.

한편, 프로그램 전압들(Vpgm1, Vpgm2, Vpgm3) 간의 오프셋 전압(Voff1, Voff2) 다시 말해, 전압 증가량은 상기 복수의 셀 그룹(MCG1, MCG2, MCG3)의 문턱 전압 차이 또는 문턱 전압 범위(dVth1, dVth2, dVth3)에 기초하여 설정될 수 있다. 예컨대, 제1 오프셋 전압(Voff1) 및 제2 오프셋 전압(Voff2)은 제2 셀 그룹(MCG2)의 문턱 전압 범위(dVth2) 및 제3 셀 그룹(MCG3)의 문턱 전압 범위(dVth3)에 기초하여 설정될 수 있다. 실시예에 있어서, 제1 오프셋 전압(Voff1) 및 제2 오프셋 전압(Voff2)은 제2 셀 그룹(MCG2)의 문턱 전압 범위 (dVth2)및 제3 셀 그룹(MCG3)의 문턱 전압 범위(dVth3)에 비례할 수 있다. 실시예에 있어서, 제1 오프셋 전압(Voff1) 및 제2 오프셋 전압(Voff2)은 각각 문턱 전압 범위 dVth2 및 dVth3와 같을 수 있다. dVth3가 dVth2보다 넓으므로, 제2 오프셋 전압(Voff2)이 제1 오프셋 전압(Voff1) 보다 클 수 있다. Meanwhile, the offset voltages (Voff1, Voff2) between the program voltages (Vpgm1, Vpgm2, Vpgm3), that is, the amount of voltage increase is the threshold voltage difference or the threshold voltage range (dVth1, dVth2) of the plurality of cell groups (MCG1, MCG2, MCG3). , dVth3). For example, the first offset voltage Voff1 and the second offset voltage Voff2 are based on the threshold voltage range dVth2 of the second cell group MCG2 and the threshold voltage range dVth3 of the third cell group MCG3. can be set. In an embodiment, the first offset voltage Voff1 and the second offset voltage Voff2 are the threshold voltage range dVth2 of the second cell group MCG2 and the threshold voltage range dVth3 of the third cell group MCG3. can be proportional to In an embodiment, the first offset voltage Voff1 and the second offset voltage Voff2 may be equal to the threshold voltage ranges dVth2 and dVth3, respectively. Since dVth3 is wider than dVth2, the second offset voltage Voff2 may be greater than the first offset voltage Voff1.

한편, 1차 프로그램 전압, 다시 말해 제1 프로그램 전압(Vpgm1)은 메모리 셀들의 적어도 일부, 예컨대 메모리 셀들 중 프로그램 속도가 상대적으로 빠른 메모리 셀들이 타겟 상태(Pn)의 타겟 산포(TP)에 포함되도록 미리 설정된 전압일 수 있다. 실시예에 있어서, 제1 프로그램 전압(Vpgm1)은 원-샷 산포의 최상위 셀 그룹, 예컨대 제1 셀 그룹(MCG1)의 메모리 셀들이 타겟 산포(TP)에 포함되도록 미리 설정된 전압일 수 있다. Meanwhile, the first program voltage, that is, the first program voltage Vpgm1 is applied such that at least some of the memory cells, for example, memory cells having a relatively fast program speed among the memory cells are included in the target distribution TP of the target state Pn. It may be a preset voltage. In an embodiment, the first program voltage Vpgm1 may be a preset voltage so that the uppermost cell group of the one-shot distribution, eg, memory cells of the first cell group MCG1 are included in the target distribution TP.

도 6은 본 개시의 실시예에 따른 메모리 장치의 동작 방법을 나타내는 흐름도이다. 도 5a, 5b 및 도 6을 참조하여, 본 개시의 실시예에 따른 메모리 장치의 동작 방법에 따라 메모리 셀들을 복수의 프로그램 상태 중 어느 하나의 상태로 프로그램하는 방법을 설명하기로 한다. 6 is a flowchart illustrating a method of operating a memory device according to an exemplary embodiment of the present disclosure. A method of programming memory cells into one of a plurality of program states according to an operating method of a memory device according to an exemplary embodiment of the present disclosure will be described with reference to FIGS. 5A, 5B, and 6 .

도 6을 참조하면, 1차 프로그램 전압을 기초로 메모리 셀들을 프로그램할 수 있다(S110). 1차 프로그램 전압은 제1 프로그램 전압(Vpgm1)을 포함한다. 이전 상태(Pn-1)(또는 소거 상태)의 메모리 셀들에 제1 프로그램 전압(Vpgm1)을 인가함으로써, 1차 프로그램을 수행한다. 메모리 셀들의 일부, 프로그램 속도가 빠른 메모리 셀들이 타겟 산포(TP)에 포함될 수 있다. Referring to FIG. 6 , memory cells may be programmed based on the first program voltage (S110). The primary program voltage includes the first program voltage Vpgm1. The first program is performed by applying the first program voltage Vpgm1 to the memory cells in the previous state Pn−1 (or erase state). Some of the memory cells, memory cells having a high program speed, may be included in the target distribution TP.

예를 들어, 메모리 셀들이 제1 프로그램 상태로 프로그램될 경우, 제1 프로그램 상태에 대응하여 미리 설정된 1차 프로그램 전압, 다시 말해 제1 프로그램 전압(Vpgm1)이 메모리 셀들에 인가될 수 있다. 이에 따라, 메모리 셀들이 러프하게 제1 프로그램 상태로 프로그램될 수 있다. 메모리 셀들의 일부, 예컨대 메모리 셀들 중 프로그램 속도가 상대적으로 빠른 일부 메모리 셀들이 제1 프로그램 상태의 타겟 산포에 포함될 수 있다. For example, when the memory cells are programmed into the first program state, a preset first program voltage corresponding to the first program state, that is, the first program voltage Vpgm1 may be applied to the memory cells. Accordingly, the memory cells may be roughly programmed into the first program state. Some of the memory cells, for example, some of the memory cells having a relatively high programming speed may be included in the target distribution of the first program state.

1차 프로그램이 수행된 메모리 셀들을 검증 독출하고, 메모리 셀들의 문턱 전압 기초로 상기 메모리 셀들을 프로그램 속도에 따른 복수의 셀 그룹으로 구분할 수 있다(S120). 예컨대, 메모리 셀들이 적어도 세 개의 셀 그룹으로 구분될 수 있다. Memory cells subjected to the first program may be verified and read, and the memory cells may be divided into a plurality of cell groups according to program speeds based on threshold voltages of the memory cells (S120). For example, memory cells may be divided into at least three cell groups.

1차 프로그램 수행에 따라, 메모리 셀들의 원-샷 산포가 형성되며, 메모리 셀들을 검증 독출하여 복수의 셀 그룹으로 구분할 수 있다. 도 5a에는 메모리 셀들이 세 개의 셀 그룹으로 구분되는 것으로 도시되었으나, 이에 제한되는 것은 아니다. 메모리 셀들은 더 많은 수의 셀 그룹으로 구분될 수 있다. According to the execution of the first program, a one-shot distribution of memory cells is formed, and the memory cells can be verified and read to be divided into a plurality of cell groups. 5A shows that memory cells are divided into three cell groups, but is not limited thereto. Memory cells may be divided into a larger number of cell groups.

메모리 셀이 2 비트의 데이터를 저장하는 멀티 레벨 셀일 경우, 메모리 셀들을 세 개의 셀 그룹으로 구분할 수 있다. 다른 실시예에 있어서, 메모리 셀이 3 비트의 데이터를 저장하는 트리플 레벨 셀일 경우, 메모리 셀들을 다섯 개의 셀 그룹으로 구분할 수 있다. 그러나, 이에 제한되는 것은 아니며, 프로그램 상태의 타겟 산포의 폭에 따라서 셀 그룹의 개수가 결정될 수 있다. 예컨대, 프로그램 상태의 타겟 산포 폭이 좁을 경우의 셀 그룹의 개수는 프로그램 상태의 타겟 산포 폭이 넓을 경우의 셀 그룹의 개수보다 많을 수 있다.When the memory cells are multi-level cells storing 2-bit data, the memory cells may be divided into three cell groups. In another embodiment, when a memory cell is a triple-level cell storing 3-bit data, the memory cells may be divided into five cell groups. However, it is not limited thereto, and the number of cell groups may be determined according to the width of the target distribution of the program state. For example, the number of cell groups when the target distribution width of the program state is narrow may be greater than the number of cell groups when the target distribution width of the program state is wide.

한편, S120 단계에서, 복수의 셀 그룹의 문턱 전압 범위는 서로 다르게 설정될 수 있다. 예컨대, 복수의 셀 그룹 중 메모리 셀들의 산포의 중간 영역에 대응하는 셀 그룹의 문턱 전압 범위는 다른 셀 그룹들의 문턱 전압 범위보다 상대적으로 좁게 설정될 수 있다. 또한, 메모리 셀들의 산포의 상위 영역 또는 하위 영역에 대응하는 셀 그룹들의 문턱 전압 범위는 다른 메모리 셀들의 문턱 전압 범위보다 상대적으로 넓게 설정될 수 있다. Meanwhile, in step S120, threshold voltage ranges of a plurality of cell groups may be set differently. For example, a threshold voltage range of a cell group corresponding to a middle region of a distribution of memory cells among a plurality of cell groups may be set to be relatively narrower than that of other cell groups. Also, threshold voltage ranges of cell groups corresponding to an upper region or a lower region of the distribution of memory cells may be set to be relatively wider than those of other memory cells.

예컨대, 도 5a에 도시된 바와 같이, 제1 내지 제3 셀 그룹(MCG1, MCG2, MCG3) 중, 메모리 셀들의 산포의 중간 영역에 대응하는 제2 셀 그룹(MCG2)의 문턱 전압 범위(dVth2)는 산포의 엣지 영역에 대응하는 제1 셀 그룹(MCG1) 또는 제3 셀 그룹(MCG3)의 문턱 전압 범위(dVth1, dVth3)보다 상대적으로 좁게 설정될 수 있다. For example, as shown in FIG. 5A , the threshold voltage range dVth2 of the second cell group MCG2 corresponding to the middle region of the distribution of memory cells among the first to third cell groups MCG1 , MCG2 , and MCG3 may be set to be relatively narrower than the threshold voltage ranges dVth1 and dVth3 of the first cell group MCG1 or the third cell group MCG3 corresponding to the edge region of the distribution.

한편, 상기 메모리 셀들은 미리 설정된 검증 전압을 기초로 검증 독출됨으로써, 복수의 셀 그룹으로 구분될 수 있다. 이때, 검증 전압은 복수의 셀 그룹들이 서로 다른 문턱 전압 범위를 갖도록 설정될 수 있다. 검증 전압은, 메모리 장치의 제조 단계, 메모리 장치의 초기화 단계 또는 트레이닝 단계 등에서, 원-샷 프로그램에 따른 메모리 셀들의 프로그램 상태(예컨대, 원-샷 산포의 산포 범위, 산포의 위치 등) 및 복수의 셀 그룹의 문턱 전압 범위들에 기초하여 설정될 수 있다Meanwhile, the memory cells may be classified into a plurality of cell groups by performing a verification read based on a preset verification voltage. In this case, the verification voltage may be set so that the plurality of cell groups have different threshold voltage ranges. The verification voltage is the program state of memory cells according to the one-shot program (eg, distribution range of one-shot distribution, position of distribution, etc.) and a plurality of It can be set based on the threshold voltage ranges of the cell group.

예컨대, 제1 검증 전압(Vrf1) 및 제2 검증 전압(Vrf2)을 기초로 메모리 셀들을 검증 독출함으로써, 메모리 셀들을 복수의 셀 그룹으로 구분할 수 있다. 제1 검증 전압(Vrf1)과 제2 검증 전압(Vrf2)의 전압 차이는 제2 셀 그룹(MCG2)의 문턱 전압 범위(dVth2)에 비례할 수 있다. For example, the memory cells may be divided into a plurality of cell groups by verifying and reading the memory cells based on the first and second verifying voltages Vrf1 and Vrf2 . A voltage difference between the first verifying voltage Vrf1 and the second verifying voltage Vrf2 may be proportional to the threshold voltage range dVth2 of the second cell group MCG2.

일 실시예에 있어서, 하나의 검증 전압을 기초로 메모리 셀들을 시간을 달리하여 두 번 센싱함으로써, 메모리 셀들을 한번의 검증 독출 동작을 통하여 세 개의 셀 그룹으로 구분할 수 있다. 이를 더블 센싱 동작이라고 지칭할 수 있다. 이때, 첫번째 센싱 시점과 두 번째 센싱 시점간의 시간 간격은 제2 셀 그룹(MCG2)의 문턱 전압 범위(dVth2)에 기초하여 설정될 수 있다. 예를 들어, 제2 셀 그룹(MCG2)의 문턱 전압 범위가 1V(volt) 일 때의 상기 시간 간격은, 문턱 전압 범위가 0.8V일 때의 상기 시간 간격보다 좁게 설정될 수 있다.In an embodiment, memory cells may be divided into three cell groups through one verify read operation by sensing memory cells twice at different times based on one verify voltage. This may be referred to as a double sensing operation. In this case, the time interval between the first sensing time and the second sensing time may be set based on the threshold voltage range dVth2 of the second cell group MCG2. For example, the time interval when the threshold voltage range of the second cell group MCG2 is 1V (volt) may be set to be smaller than the time interval when the threshold voltage range is 0.8V.

이후, 복수의 셀 그룹의 문턱 전압 차이를 기초로 전압 레벨이 설정된 2차 프로그램 전압, 예컨대 제2 프로그램 전압(Vpgm2) 및 제3 프로그램 전압(Vpgm3)을 기초로, 복수의 셀 그룹 중 적어도 일부의 셀 그룹을 재 프로그램할 수 있다(S130). 다시 말해, 복수의 셀 그룹 중, 타겟 산포(TP)에 포함되는 셀 그룹을 제외한 셀 그룹들을 재 프로그램할 수 있다. 예를 들어, 제1 셀 그룹(MCG1)이 타겟 산포(TP)에 포함되고, 다른 셀 그룹들(MCG2, MCG3)이 타겟 산포(TP)를 벗어난 경우, 타겟 산포(TP)에 포함되는 제1 셀 그룹(MCG1)을 제외한 제2 셀 그룹(MCG2) 및 제3 셀 그룹(MCG3)을 타겟 상태로 재프로그램할 수 있다. 제2 셀 그룹(MCG2) 및 제3 셀 그룹(MCG3)을 복수의 2차 프로그램 전압, 다시 말해 제2 프로그램 전압(Vgpm2) 및 제3 프로그램 전압(Vpgm3)을 기초로 재프로그램할 수 있다. 제2 셀 그룹(MCG2) 및 제3 셀 그룹(MCG3)에 제1 프로그램 전압(Vpgm1)으로부터 제1 오프셋 전압 (Voff1)만큼 전압 레벨이 증가된 제2 프로그램 전압(Vpgm2)을 인가할 수 있다. 이에 따라 제2 셀 그룹(MCG2)의 메모리 셀들이 타겟 산포(TP)에 포함될 수 있다. 다음으로, 제3 셀 그룹(MVG3)에, 제2 프로그램 전압(Vpgm2)로부터 제2 오프셋 전압(Voff2)만큼 전압 레벨이 증가된 제3 프로그램 전압(Vpgm3)을 인가할 수 있다. 이에 따라 제3 셀 그룹(MCG3)의 메모리 셀들이 타겟 산포(TP)에 포함될 수 있다. Thereafter, at least some of the plurality of cell groups are generated based on the second program voltage, for example, the second program voltage Vpgm2 and the third program voltage Vpgm3, the voltage levels of which are set based on the difference in threshold voltages of the plurality of cell groups. The cell group can be reprogrammed (S130). In other words, among the plurality of cell groups, cell groups other than the cell group included in the target distribution (TP) may be reprogrammed. For example, when the first cell group MCG1 is included in the target distribution TP and the other cell groups MCG2 and MCG3 deviate from the target distribution TP, the first cell group included in the target distribution TP The second cell group MCG2 and the third cell group MCG3 excluding the cell group MCG1 may be reprogrammed to a target state. The second cell group MCG2 and the third cell group MCG3 may be reprogrammed based on a plurality of secondary program voltages, that is, the second program voltage Vgpm2 and the third program voltage Vpgm3. The second program voltage Vpgm2, the voltage level of which is increased by the first offset voltage Voff1 from the first program voltage Vpgm1, may be applied to the second cell group MCG2 and the third cell group MCG3. Accordingly, the memory cells of the second cell group MCG2 may be included in the target distribution TP. Next, the third program voltage Vpgm3 whose voltage level is increased by the second offset voltage Voff2 from the second program voltage Vpgm2 may be applied to the third cell group MVG3. Accordingly, the memory cells of the third cell group MCG3 may be included in the target distribution TP.

일 실시예에 있어서, 제2 셀 그룹(MCG2) 및 제3 셀 그룹(MCG3)에 제1 프로그램 전압(Vpgm1)으로부터 제1 오프셋 전압(Voff1) 및 제2 오프셋 전압(Voff2)의 합만큼 전압 레벨이 증가된 제2 프로그램 전압(Vpgm2)을 인가함으로써, 2차 프로그램을 수행할 수 있다. 이때, 제2 셀 그룹(MCG2)의 메모리 셀들의 비트 라인에 포싱 전압을 인가함으로써, 제2 셀 그룹(MCG2)의 프로그램 속도를 늦출 수 있다. 포싱 전압의 전압 레벨은, 제2 오프셋 전압(Voff2) 레벨과 동일할 수 있다. 이에 따라, 제2 셀 그룹(MCG2) 및 제3 셀 그룹(MCG3)의 메모리 셀들이 타겟 산포(TP)에 포함될 수 있다.
In an embodiment, the voltage level of the second cell group MCG2 and the third cell group MCG3 is equal to the sum of the first offset voltage Voff1 and the second offset voltage Voff2 from the first program voltage Vpgm1. By applying the increased second program voltage Vpgm2, the second program can be performed. In this case, the programming speed of the second cell group MCG2 may be slowed down by applying a forcing voltage to the bit lines of the memory cells of the second cell group MCG2 . A voltage level of the forcing voltage may be equal to a level of the second offset voltage Voff2. Accordingly, memory cells of the second cell group MCG2 and the third cell group MCG3 may be included in the target distribution TP.

도 7a 및 도 7b는 셀 그룹들의 문턱 전압 범위의 설정에 따른 메모리 셀들의 산포를 나타내는 그래프이다. 도 7a는 셀 그룹들의 문턱 전압 범위를 동일하게 설정한 경우를 나타내고, 도 7b는 본 개시의 실시예에 따라 셀 그룹들의 문턱 전압 범위를 서로 다르게 설정한 경우를 나타낸다.7A and 7B are graphs illustrating distribution of memory cells according to setting threshold voltage ranges of cell groups. FIG. 7A shows a case in which the threshold voltage ranges of cell groups are identically set, and FIG. 7B shows a case in which the threshold voltage ranges of cell groups are set differently according to an embodiment of the present disclosure.

도 7a를 참조하면, 예를 들어, 메모리 셀들을 ISPP(Incremental Step Pulse Programming) 방식에 따라 프로그램할 경우, 메모리 셀들은 문턱 전압 범위가 동일한 복수개의 셀 그룹으로 구분될 수 있다. 각 프로그램 단계에 따라 전압 펄스가 일정한 레벨로 증가하므로, 각 프로그램 단계에서 타겟 프로그램 상태로 프로그램되는 셀 그룹들의 문턱 전압 범위(또는 산포 폭)또한 서로 동일할 수 있다. 이때, 제2 셀 그룹(MCG2)의 메모리 셀의 개수는 제1 셀 그룹(MCG1) 또는 제 3 셀 그룹(MCG3)의 메모리 셀의 개수보다 많다. 따라서, 제2 셀 그룹(MCG2)의 최종 산포의 문턱 전압 범위(dVthF2)는 제1 셀 그룹(MCG1) 및 제3 셀 그룹(MCG3)의 최종 산포의 문턱 전압 범위(dVthF1)보다 넓을 수 있다. 이와 같이, 메모리 셀들을 문턱 전압 범위가 동일한 복수개의 셀 그룹으로 구분하여 프로그램할 경우, 셀 그룹들의 최종 문턱 산포의 문턱 전압 범위가 서로 다를 수 있다. 셀 그룹들의 최종 문턱 산포는 타겟 프로그램 상태의 타겟 산포에 포함되어야 한다. 따라서, 셀 그룹들 중 가장 산포가 넓은 셀 그룹의 최종 산포를 상기 타겟 산포에 맞추기 위해서 프로그램 횟수가 증가될 수 있다.Referring to FIG. 7A , for example, when memory cells are programmed using an incremental step pulse programming (ISPP) method, the memory cells may be divided into a plurality of cell groups having the same threshold voltage range. Since the voltage pulse increases at a constant level according to each program step, threshold voltage ranges (or spread widths) of cell groups programmed to a target program state in each program step may also be the same. At this time, the number of memory cells in the second cell group MCG2 is greater than the number of memory cells in the first cell group MCG1 or the third cell group MCG3. Accordingly, the final distribution threshold voltage range dVthF2 of the second cell group MCG2 may be wider than the final distribution threshold voltage range dVthF1 of the first cell group MCG1 and the third cell group MCG3. As such, when memory cells are divided into a plurality of cell groups having the same threshold voltage range and programmed, the final threshold distribution of the cell groups may have different threshold voltage ranges. The final threshold distribution of cell groups should be included in the target distribution of target program state. Accordingly, the number of programs may be increased to match the final distribution of the cell group having the widest distribution among the cell groups to the target distribution.

그러나, 도 7b에 도시된 바와 같이, 본 개시의 실시예에 따라 메모리 셀들을 문턱 전압 범위를 달리하여 복수개의 셀 그룹으로 구분하되, 각 셀 그룹의 단위 셀 개수에 반비례하게 각 셀 그룹의 문턱 전압 범위를 설정하면, 각 셀 그룹에 포함되는 메모리 셀들의 개수의 차이가 크지 않을 수 있다. However, as shown in FIG. 7B , according to an embodiment of the present disclosure, memory cells are divided into a plurality of cell groups with different threshold voltage ranges, but the threshold voltage of each cell group is in inverse proportion to the number of unit cells in each cell group. When the range is set, a difference in the number of memory cells included in each cell group may not be large.

상기 문턱 전압 범위에 따라 전압 레벨이 설정되는 프로그램 전압들에 기초하여 복수의 셀 그룹을 프로그램하면, 각 셀 그룹들의 최종 산포의 문턱 전압 범위(dVthF3)는 서로 유사할 수 있다. 도 7a의 프로그램 방법으로 프로그램할 경우와 비교하면, 각 셀 그룹의 최종 산포의 문턱 전압 범위 중 최대값(dVthF3)은 도 7a의 각 셀 그룹의 최종 산포 중 최대값(dVthF2)보다 좁을 수 있다. 따라서, 본 개시의 실시예에 따른 프로그램 방법에 따라, 셀 그룹들의 문턱 전압 범위를 서로 다르게 설정하여 프로그램하면, 프로그램 횟수가 감소되거나 또는 프로그램이 완료된 메모리 셀들의 문턱 전압 산포의 폭이 감소될 수 있다.
When a plurality of cell groups are programmed based on program voltages whose voltage levels are set according to the threshold voltage range, the final distribution threshold voltage range dVthF3 of each cell group may be similar to each other. Compared to the case of programming by the programming method of FIG. 7A , the maximum value (dVthF3) of the final distribution threshold voltage range of each cell group may be narrower than the maximum value (dVthF2) of the final distribution of each cell group of FIG. 7A . Therefore, if programming is performed by setting different threshold voltage ranges of cell groups according to the programming method according to an embodiment of the present disclosure, the number of times of programming or the width of the threshold voltage distribution of programmed memory cells may be reduced. .

도 8(a)~(d)는 본 개시의 실시예에 따른 프로그램 방법의 일 예를 단계별로 나타낸 그래프이다. 도 9는 도8에서 프로그램되는 메모리 셀에 연결된 워드 라인에 인가되는 전압의 파형도이다.8(a) to (d) are graphs showing an example of a program method step by step according to an embodiment of the present disclosure. FIG. 9 is a waveform diagram of a voltage applied to a word line connected to a memory cell programmed in FIG. 8 .

도 8(a) 및 도 9를 참조하면, 소거 상태(E)의 메모리 셀들에 1차 프로그램 전압, 다시 말해 제1 프로그램 전압(Vpgm1)을 인가한다. 이에 따라, 제1 프로그램 전압(Vpgm1)에 따른 메모리 셀들의 원-샷 산포가 형성된다. 원-샷 산포는 가우시안 형태를 가질 수 있다. 원-샷 산포의 상위 영역(원-샷 산포의 우측 영역)은 제1 프로그램 상태(P1)의 타겟 산포(TP1)에 포함될 수 있다. 다시 말해, 메모리 셀들의 원-샷 산포에서, 상위 일부의 메모리 셀들의 문턱 전압은 타겟 산포(TP1)의 문턱 전압 범위(dVT)내에 포함될 수 있다. Referring to FIGS. 8A and 9 , a first program voltage, that is, a first program voltage Vpgm1 is applied to memory cells in an erase state E. Accordingly, a one-shot distribution of memory cells according to the first program voltage Vpgm1 is formed. The one-shot distribution may have a Gaussian shape. An upper region of the one-shot distribution (a region to the right of the one-shot distribution) may be included in the target distribution TP1 of the first program state P1. In other words, in the one-shot distribution of memory cells, the threshold voltages of the upper portion of memory cells may be included within the threshold voltage range dVT of the target distribution TP1.

도 8(b)를 참조하면, 메모리 셀들의 문턱 전압을 기초로, 메모리 셀들을 프로그램 속도에 따른 세 개의 셀 그룹(G1, G2, G3)로 구분한다. 검증 독출을 통해 메모리 셀들을 세 개의 셀 그룹으로 구분할 수 있다. 일 실시예에 있어서, 제1 검증 전압(Vrf1) 및 제2 검증 전압(Vrf2)을 기초로 메모리 셀들을 검증 독출함으로써, 메모리 셀들을 세 개의 셀 그룹으로 구분할 수 있다. 실시예에 있어서, 제1 검증 전압(Vrf1) 과 제2 검증 전압(Vrf2)의 전압 차이는 제2 셀 그룹(G2)의 문턱 전압 범위(dVth2)와 같을 수 있다. 실시예에 있어서, 제1 검증 전압(Vrf1)은 메모리 셀들이 제1 프로그램 상태로 정상적으로 프로그램되었는지 검증하는 제1 프로그램 상태에 대한 검증 독출 전압(Vv1)과 동일할 수 있다. Referring to FIG. 8B , memory cells are classified into three cell groups G1 , G2 , and G3 according to program speeds based on threshold voltages of the memory cells. Through the verification read, memory cells may be divided into three cell groups. In an exemplary embodiment, the memory cells may be divided into three cell groups by verifying and reading the memory cells based on the first verifying voltage Vrf1 and the second verifying voltage Vrf2. In an embodiment, a voltage difference between the first verifying voltage Vrf1 and the second verifying voltage Vrf2 may be the same as the threshold voltage range dVth2 of the second cell group G2. In an embodiment, the first verification voltage Vrf1 may be the same as the verification read voltage Vv1 for the first program state for verifying whether the memory cells are normally programmed into the first program state.

셀 그룹들(G1, G2, G3)의 문턱 전압 범위(dVth1, dVTh2, dVth3)는 대응하는 셀 그룹의 단위 문턱 전압 범위에 기초하여 설정될 수 있다. 예컨대, 문턱 전압 범위(dVth1, dVth2, dVth3)는 각각의 셀 그룹의 단위 문턱 전압 범위에 포함되는 메모리 셀의 개수(이하, 단위 셀 개수라고 함)에 반비례하게 설정될 수 있다. 제2 셀 그룹(G2)의 문턱 전압 범위(dVth2)는 제1 셀 그룹(G1)의 문턱 전압 범위(dVth1) 또는 제2 셀 그룹(G3)의 문턱 전압 범위(dVth3)보다 좁을 수 있다. The threshold voltage ranges dVth1 , dVTh2 , and dVth3 of the cell groups G1 , G2 , and G3 may be set based on the unit threshold voltage range of the corresponding cell group. For example, the threshold voltage ranges dVth1, dVth2, and dVth3 may be set in inverse proportion to the number of memory cells included in the unit threshold voltage range of each cell group (hereinafter referred to as the number of unit cells). The threshold voltage range dVth2 of the second cell group G2 may be narrower than the threshold voltage range dVth1 of the first cell group G1 or the threshold voltage range dVth3 of the second cell group G3.

제2 셀 그룹(G2) 및 제3 셀 그룹(G3)의 메모리 셀들에 복수의 2차 프로그램 전압 중 제2 프로그램 전압(Vpgm2)이 인가됨으로써, 메모리 셀들의 산포가 도 8(c)에 도시된 바와 같이 변경된다. 제2 프로그램 전압(Vpgm2)의 전압 레벨은 제1 프로그램 전압(Vpgm1)의 전압 레벨에, 제1 오프셋 전압(Voff1)이 더해진 값이다. 제1 오프셋 전압(Voff1)은 제2 셀 그룹(G2)의 문턱 전압 범위(dVth2)와 같을 수 있다. As the second program voltage Vpgm2 among the plurality of secondary program voltages is applied to the memory cells of the second cell group G2 and the third cell group G3, the distribution of the memory cells is shown in FIG. 8(c). change as bar The voltage level of the second program voltage Vpgm2 is a value obtained by adding the first offset voltage Voff1 to the voltage level of the first program voltage Vpgm1. The first offset voltage Voff1 may be equal to the threshold voltage range dVth2 of the second cell group G2.

이미 타겟 산포(TP1)에 포함된 제1 셀 그룹(G1)을 제외한, 제2 셀 그룹(G2) 및 제3 셀 그룹(G3)의 메모리 셀들에 제2 프로그램 전압(Vpgm2)이 인가됨으로써, 제2 셀 그룹(G2) 및 제3 셀 그룹(G3)의 문턱 전압 산포가 우측으로 이동하며, 제2 셀 그룹(G2)은 타겟 산포(TP1)에 포함될 수 있다. The second program voltage Vpgm2 is applied to the memory cells of the second cell group G2 and the third cell group G3, except for the first cell group G1 already included in the target distribution TP1, so that the second program voltage Vpgm2 is applied. The threshold voltage distributions of the second cell group G2 and the third cell group G3 shift to the right, and the second cell group G2 may be included in the target distribution TP1.

이후, 도 8(d)에 도시된 바와 같이, 제3 셀 그룹(G3)의 메모리 셀들에 2차 프로그램 전압 중 제3 프로그램 전압(Vpgm3)이 인가된다. 제3 프로그램 전압(Vpgm3)의 전압 레벨은 제2 프로그램 전압(Vpgm2)의 전압 레벨에, 제2 오프셋 전압(Voff2)이 더해진 값이다. 제2 오프셋 전압(Voff1)은 제3 셀 그룹(G3)의 문턱 전압 범위(dVth3)와 같을 수 있다. 따라서, 제3 셀 그룹(G3)의 문턱 전압 산포가 우측으로 이동하며, 제3 셀 그룹(G3)은 타겟 산포(TP1)에 포함될 수 있다. 이로써, 메모리 셀들이 제1 프로그램 상태(P1)로 프로그램될 수 있다. Then, as shown in FIG. 8(d), the third program voltage Vpgm3 among the secondary program voltages is applied to the memory cells of the third cell group G3. The voltage level of the third program voltage Vpgm3 is a value obtained by adding the second offset voltage Voff2 to the voltage level of the second program voltage Vpgm2. The second offset voltage Voff1 may be equal to the threshold voltage range dVth3 of the third cell group G3. Accordingly, the threshold voltage distribution of the third cell group G3 shifts to the right, and the third cell group G3 may be included in the target distribution TP1. As a result, the memory cells may be programmed to the first program state P1.

이상, 도 8 및 도 9를 참조하여, 메모리 셀들을 제1 프로그램 상태(P1)로 프로그램하는 경우를 단계적으로 설명하였다. 상술한 방법은, 메모리 셀들을, 다른 프로그램 상태로 프로그램하는 경우에도 적용될 수 있다.
In the above, the case of programming the memory cells to the first program state P1 has been described step by step with reference to FIGS. 8 and 9 . The above-described method may be applied even when memory cells are programmed in a different program state.

도 10은 본 개시의 실시예에 따른 프로그램 방법을 보다 상세하게 설명한 도면이다. 도 10은 도 8 및 도 9에 따른 프로그램 방법을 보다 상세하게 설명한 것으로서, 도 8및 도 9를 참조하여 설명한 내용은 도 10의 실시예에 적용될 수 있다. 10 is a diagram illustrating a program method according to an embodiment of the present disclosure in more detail. 10 illustrates the program method according to FIGS. 8 and 9 in more detail, and the contents described with reference to FIGS. 8 and 9 may be applied to the embodiment of FIG. 10 .

도 10을 참조하면, 메모리 셀들이 연결된 워드 라인에 제1 프로그램 전압을 인가함으로써 제1 프로그램을 수행할 수 있다(S210). 메모리 셀들의 일부의 산포, 다시 말해, 메모리 셀들의 원-샷 산포의 상위 영역의 산포는 타겟 프로그램 상태의 타겟 산포에 포함될 수 있다. Referring to FIG. 10 , a first program may be performed by applying a first program voltage to a word line to which memory cells are connected (S210). A distribution of a portion of memory cells, that is, a distribution of an upper region of the one-shot distribution of memory cells may be included in the target distribution of the target program state.

메모리 셀들의 문턱 전압을 기초로 메모리 셀들을 프로그램 속도에에 따른 세 개의 셀 그룹으로 구분한다(S220). 미리 설정된 검증 전압을 기초로 제1 프로그램된 메모리 셀들을 검증 독출하여, 메모리 셀들을 문턱 전압에 따라 세 개의 셀 그룹으로 구분할 수 있다. 이때, 상대적으로 문턱 전압이 높은 셀 그룹, 예컨대 제1 셀 그룹은, 프로그램 속도가 빠른 패스트 셀을 포함하고, 상대적으로 문턱 전압이 낮은 셀 그룹, 예컨대 제 3 셀 그룹은 프로그램 속도가 느린 슬로우 셀을 포함한다. 따라서, 메모리 셀들은 프로그램 속도에 따른 세 개의 셀 그룹으로 구분될 수 있다. 이때, 세 개의 셀 그룹 중 메모리 셀들의 산포의 중간 영역에 해당하는 셀 그룹, 예컨대 제2 셀 그룹의 문턱 전압 범위는 다른 셀 그룹들, 예컨대 제1 셀 그룹 및 제2 셀 그룹의 문턱 전압 범위보다 좁게 설정될 수 있다. Based on the threshold voltages of the memory cells, the memory cells are divided into three cell groups according to the program speed (S220). The first programmed memory cells may be verified and read based on a preset verification voltage, and the memory cells may be divided into three cell groups according to threshold voltages. In this case, the cell group having a relatively high threshold voltage, for example, the first cell group includes fast cells having a high program speed, and the cell group having a relatively low threshold voltage, for example, the third cell group includes slow cells having a slow program speed. include Accordingly, memory cells may be divided into three cell groups according to program speed. At this time, the threshold voltage range of the cell group corresponding to the middle region of the distribution of memory cells among the three cell groups, eg, the second cell group, is higher than that of the other cell groups, eg, the first cell group and the second cell group. can be narrowly set.

메모리 셀들이 세 개의 셀 그룹으로 구분된 후, 제2 프로그램 단계(S230) 및 제3 프로그램 단계(S240)가 수행될 수 있다. After memory cells are divided into three cell groups, a second programming step ( S230 ) and a third programming step ( S240 ) may be performed.

우선, 제1 셀 그룹의 메모리 셀들의 비트 라인에 인히빗 전압을 인가한다(S231). 제1 셀 그룹의 산포는 타겟 프로그램 상태의 타겟 산포에 포함될 수 있다. 따라서, 제1 셀 그룹에 대한 프로그램은 더이상 진행되지 않는다. 제1 셀 그룹에 대하여 프로그램이 수행되는 것을 방지하기 위하여 제1 셀 그룹의 메모리 셀들의 비트 라인에 인히빗 전압이 인가될 수 있다.First, an inhibit voltage is applied to the bit lines of the memory cells of the first cell group (S231). The distribution of the first cell group may be included in the target distribution of the target program state. Accordingly, the program for the first cell group does not proceed any further. An inhibit voltage may be applied to bit lines of memory cells of the first cell group to prevent the program from being performed on the first cell group.

이후, 워드 라인에 제2 프로그램 전압을 인가할 수 있다(S232). 제2 프로그램 전압은 제1 프로그램 전압으로부터 제1 오프셋 전압만큼 전압 레벨이 증가된 전압이며, 제1 오프셋 전압은 제2 셀 그룹의 문턱 전압 범위에 기초하여 설정될 수 있다. 제2 프로그램(S230)에 따라, 제2 셀 그룹의 산포는 타겟 프로그램 상태의 타겟 산포에 포함될 수 있다. Thereafter, a second program voltage may be applied to the word line (S232). The second program voltage is a voltage obtained by increasing a voltage level by the first offset voltage from the first program voltage, and the first offset voltage may be set based on a threshold voltage range of the second cell group. According to the second program S230, the distribution of the second cell group may be included in the target distribution of the target program state.

제1 셀 그룹 및 제2 셀 그룹의 산포가 타겟 산포에 포함되므로, 이후 제3 셀 그룹에 대하여 제3 프로그램(S240)이 수행될 수 있다.Since the distribution of the first cell group and the second cell group are included in the target distribution, the third program (S240) may be executed for the third cell group thereafter.

제1 셀 그룹 및 제2 셀 그룹의 메모리 셀들의 비트 라인에 인히빗 전압을 인가하고(S241), 워드 라인에, 제3 프로그램 전압을 인가한다(S242). 제3 프로그램 전압은 제2 프로그램 전압으로부터 제2 오프셋 전압만큼 전압 레벨이 증가된 전압이며, 제2 오프셋 전압은 제3 셀 그룹의 문턱 전압 범위에 기초하여 설정될 수 있다. 제3 프로그램(S240)에 따라, 제3 셀 그룹의 산포는 타겟 산포에 포함될 수 있다. 이로써, 하나의 프로그램 상태에 대한 프로그램이 완료될 수 있다.An inhibit voltage is applied to the bit lines of the memory cells of the first cell group and the second cell group (S241), and a third program voltage is applied to the word line (S242). The third program voltage is a voltage obtained by increasing the voltage level by the second offset voltage from the second program voltage, and the second offset voltage may be set based on a threshold voltage range of the third cell group. According to the third program (S240), the distribution of the third cell group may be included in the target distribution. In this way, the program for one program state can be completed.

한편, 도시되지는 않았으나, 일 실시예에 있어서, 상기 S240 단계 이후, 메모리 셀들이 정상적으로 타겟 프로그램 상태로 프로그램되었는지를 판단하는 검증 독출 단계가 수행될 수 있다. 임계값을 넘는 수의 메모리 셀들이 타겟 프로그램 상태의 타겟 산포를 벗어나는 경우, 상기 메모리 셀들에 대하여 추가적인 프로그램이 수행될 수도 있다. 또는 상기 메모리 셀들이 포함되는 페이지는 페일(fail) 처리될 수 있다.
Meanwhile, although not shown, in one embodiment, after step S240 , a verification read step of determining whether memory cells are normally programmed to a target program state may be performed. When the number of memory cells exceeding the threshold exceeds the target distribution of target program states, additional programming may be performed on the memory cells. Alternatively, a page including the memory cells may be processed as a fail.

도 11(a)~(c)는 본 개시의 실시예에 따른 프로그램 방법의 일 예를 단계별로 나타낸 그래프이다. 도 12는 도 11에서 프로그램되는 메모리 셀에 연결된 워드 라인에 인가되는 전압의 파형도이다. 11 (a) to (c) are graphs showing an example of a program method step by step according to an embodiment of the present disclosure. FIG. 12 is a waveform diagram of a voltage applied to a word line connected to a memory cell programmed in FIG. 11 .

도 11(a) 및 도 12를 참조하면, 소거 상태(E)의 메모리 셀들에 1차 프로그램 전압, 즉 제1 프로그램 전압(Vpgm1)인가되어, 메모리 셀들에 대하여 제1 프로그램(PGM1)이 수행될 수 있다. 도 11(b)를 참조하면, 메모리 셀들의 문턱 전압을 기초로, 메모리 셀들을 프로그램 속도에 따른 세 개의 셀 그룹(G1, G2, G3)로 구분한다. 도 11(a) 및 도 11(b)의 단계는 도 8(a),(b)의 단계와 동일한 바, 자세한 설명은 생략하기로 한다.11(a) and 12, a first program voltage, that is, a first program voltage Vpgm1 is applied to memory cells in an erase state E, and the first program PGM1 is performed on the memory cells. can Referring to FIG. 11( b ) , memory cells are classified into three cell groups G1 , G2 , and G3 according to program speeds based on threshold voltages of the memory cells. The steps of FIGS. 11(a) and 11(b) are the same as those of FIGS. 8(a) and (b), and detailed description thereof will be omitted.

제2 셀 그룹(G2) 및 제3 셀 그룹(G3)의 메모리 셀들에 제2 프로그램 전압(Vpgm2)이 인가됨으로써, 제2 프로그램(PGM2)이 수행될 수 있다. 메모리 셀들의 산포가 도 11(c)에 도시된 바와 같이 변경된다. 제2 프로그램 전압(Vpgm2)의 전압 레벨은 제1 프로그램 전압(Vpgm1)의 전압 레벨에, 오프셋 전압(Voff)이 더해진 값이다. 오프셋 전압(Voff)은 제2 셀 그룹(G2)의 문턱 전압 범위(dVth2)와 제3 셀 그룹(G3)의 문턱 전압 범위(dVth3)와 같을 수 있다. 이미 타겟 산포(TP1)에 포함된 제1 셀 그룹(G1)을 제외한, 제2 셀 그룹(G2) 및 제3 셀 그룹(G3)의 메모리 셀들에 제2 프로그램 전압(Vpgm2)이 인가됨으로써, 제2 셀 그룹(G2) 및 제3 셀 그룹(G3)의 문턱 전압 산포가 우측으로 이동할 수 있다. 한편, 제2 셀 그룹(G3)의 메모리 셀들에 제2 프로그램 전압(Vpgm2)이 인가되면, 제2 셀 그룹(G3)는 과프로그램(over program)될 수 있다. 제2 셀 그룹(G3)의 메모리 셀들의 산포의 문턱 전압은 타겟 산포(TP1)의 문턱 전압보다 높아질 수 있다. 이를 방지하기 위하여, 제2 셀 그룹(G2)의 메모리 셀들의 비트 라인에 포싱 전압(VBLF)를 인가함으로써, 제2 셀 그룹(G2)의 프로그램 속도를 늦출 수 있다. 예컨대, 포싱 전압(VBLF)의 레벨은, 인히빗 전압의 레벨보다 낮을 수 있다. 예컨대, 포싱 전압(VBLF)의 레벨은, 제3 셀 그룹(G3)의 문턱 전압 범위(dVth3)에 대응할 수 있다. 이에 따라, 제2 프로그램 전압(Vpgm2) 및 포싱 전압(VBLF)을 기초로, 2차 프로그램(PGM2) 수행함에 따라, 제2 셀 그룹(G2) 및 제3 셀 그룹(G3)이 타겟 산포(TP1)에 포함될 수 있다. 이로써, 메모리 셀들이 제1 프로그램 상태(P1)로 프로그램될 수 있다.
As the second program voltage Vpgm2 is applied to the memory cells of the second cell group G2 and the third cell group G3, the second program PGM2 may be performed. The distribution of memory cells is changed as shown in Fig. 11(c). The voltage level of the second program voltage Vpgm2 is a value obtained by adding the offset voltage Voff to the voltage level of the first program voltage Vpgm1. The offset voltage Voff may be equal to the threshold voltage range dVth2 of the second cell group G2 and the threshold voltage range dVth3 of the third cell group G3. The second program voltage Vpgm2 is applied to the memory cells of the second cell group G2 and the third cell group G3, except for the first cell group G1 already included in the target distribution TP1, so that the second program voltage Vpgm2 is applied. The threshold voltage distributions of the second cell group G2 and the third cell group G3 may shift to the right. Meanwhile, when the second program voltage Vpgm2 is applied to the memory cells of the second cell group G3, the second cell group G3 may be overprogrammed. The distribution threshold voltage of the memory cells of the second cell group G3 may be higher than the threshold voltage of the target distribution TP1. To prevent this, the programming speed of the second cell group G2 may be slowed down by applying the forcing voltage VBLF to the bit lines of the memory cells of the second cell group G2. For example, the level of the forcing voltage VBLF may be lower than the level of the inhibit voltage. For example, the level of the forcing voltage VBLF may correspond to the threshold voltage range dVth3 of the third cell group G3. Accordingly, as the second program PGM2 is performed based on the second program voltage Vpgm2 and the forcing voltage VBLF, the target distribution TP1 of the second cell group G2 and the third cell group G3 ) can be included. As a result, the memory cells may be programmed to the first program state P1.

도 13은 본 개시의 실시예에 따른 프로그램 방법을 보다 상세하게 설명한 도면이다. 도 13은 도 11 및 도 12에 따른 프로그램 방법을 보다 상세하게 설명한 것으로서, 도 11 및 도 12를 참조하여 설명한 내용은 도 13의 실시예에 적용될 수 있다. 13 is a diagram illustrating a program method according to an embodiment of the present disclosure in more detail. 13 illustrates the program method according to FIGS. 11 and 12 in more detail, and the contents described with reference to FIGS. 11 and 12 may be applied to the embodiment of FIG. 13 .

도 13을 참조하면, 메모리 셀들이 연결된 워드 라인에 제1 프로그램 전압을 인가하여, 메모리 셀들에 대하여 제1 프로그램을 수행하고(S310), 메모리 셀들의 문턱 전압을 기초로 메모리 셀들을 프로그램 속도에에 따른 세 개의 셀 그룹으로 구분한다(S320). S310 및 S320 단계는 도 10의 S210 및 S220 단계와 동일한 바, 상세한 설명은 생략하기로 한다. Referring to FIG. 13 , a first program is applied to the memory cells by applying a first program voltage to a word line to which the memory cells are connected (S310), and the memory cells are adjusted to a program speed based on the threshold voltages of the memory cells. It is divided into three cell groups according to (S320). Steps S310 and S320 are the same as steps S210 and S220 of FIG. 10, so detailed descriptions thereof will be omitted.

메모리 셀들을 세 개의 셀 그룹으로 구분한 후, 제2 프로그램(S330)을 수행할 수 있다. After dividing the memory cells into three cell groups, a second program (S330) may be performed.

제1 셀 그룹의 메모리 셀들의 비트 라인에 인히빗 전압을 인가한다(S331). 제1 셀 그룹의 산포는 타겟 프로그램 상태의 타겟 산포에 포함될 수 있다. 따라서, 제1 셀 그룹에 대한 프로그램은 더이상 진행되지 않는다. 제1 셀 그룹에 대하여 재프로그램이 수행되는 것을 방지하기 위하여 제1 셀 그룹의 메모리 셀들의 비트 라인에 인히빗 전압이 인가될 수 있다.An inhibit voltage is applied to the bit lines of the memory cells of the first cell group (S331). The distribution of the first cell group may be included in the target distribution of the target program state. Accordingly, the program for the first cell group does not proceed any further. In order to prevent reprogramming of the first cell group, an inhibit voltage may be applied to bit lines of memory cells of the first cell group.

제2 셀 그룹의 메모리 셀들의 비트 라인에 포싱 전압을 인가한다(S332). A forcing voltage is applied to the bit lines of the memory cells of the second cell group (S332).

제2 셀 그룹 및 제3 셀 그룹의 산포는 문턱 전압 상에서의 산포의 위치 및 범위가 서로 다르다. 이러한 제2 셀 그룹 및 제3 셀 그룹을 동시에 타겟 상태로 프로그램하기 위하여, 상대적으로 프로그램 속도가 빠른 제2 셀 그룹의 메모리 셀들의 비트 라인에 포싱 전압을 인가하여, 프로그램 속도를 늦춘다.The distributions of the second cell group and the third cell group have different positions and ranges of distributions on the threshold voltage. In order to simultaneously program the second cell group and the third cell group to the target state, a forcing voltage is applied to bit lines of memory cells of the second cell group whose program speed is relatively high, thereby slowing down the program speed.

이후, 워드 라인에, 제2 프로그램 전압을 인가한다(S343). 제2 프로그램 전압은 1차 프로그램 전압, 다시 말해 제1 프로그램 전압으로부터 오프셋 전압만큼 전압 레벨이 증가된 전압이며, 오프셋 전압은 제2 셀 그룹의 문턱 전압 범위 및 제3 셀 그룹의 문턱 전압 범위에 기초하여 설정될 수 있다. 예컨대, 오프셋 전압은 제2 셀 그룹의 문턱 전압 범위 및 제3 셀 그룹의 문턱 전압 범위의 합과 같다. Then, a second program voltage is applied to the word line (S343). The second program voltage is a primary program voltage, that is, a voltage whose voltage level is increased by an offset voltage from the first program voltage, and the offset voltage is based on the threshold voltage range of the second cell group and the threshold voltage range of the third cell group. can be set by For example, the offset voltage is equal to the sum of the threshold voltage range of the second cell group and the threshold voltage range of the third cell group.

일 실시예에서, 인히빗 전압 인가(S331) 및 포싱 전압 인가(S332)는 동시에 수행될 수 있다. 더 나아가, 인히빗 전압 인가(S331), 포싱 전압 인가(S332) 및 제2 프로그램 전압 인가(S343)는 동시에 수행될 수 있다.
In one embodiment, the application of the inhibit voltage (S331) and the application of the forcing voltage (S332) may be performed simultaneously. Furthermore, the application of the inhibit voltage (S331), the application of the forcing voltage (S332), and the application of the second program voltage (S343) may be performed simultaneously.

도 14a 및 도 14b는 본 개시의 실시예에 따른 메모리 장치의 동작 방법을 설명하는 도면이다. 도 14a는 메모리 셀들의 원-샷 산포를 기초로 메모리 셀들을 프로그램 속도에 따른 다섯 개의 셀 그룹으로 구분하는 방법을 나타내고, 도 14b는 복수의 셀 그룹에 인가되는 프로그램 전압을 나타낸다. 14A and 14B are views illustrating an operating method of a memory device according to an exemplary embodiment of the present disclosure. 14A shows a method of classifying memory cells into five cell groups according to program speeds based on a one-shot distribution of memory cells, and FIG. 14B shows program voltages applied to a plurality of cell groups.

도 14a를 참조하면, 메모리 셀들의 원-샷 산포를 기초로, 메모리 셀들을 프로그램 속도에 따른 다섯 개의 셀 그룹(MCG1 ~ MCG5)으로 구분할 수 있다. 다섯 개의 셀 그룹(MCG1~MCG5)의 문턱 전압 범위는 서로 다를 수 있다. Referring to FIG. 14A , based on the one-shot distribution of memory cells, memory cells may be classified into five cell groups (MCG1 to MCG5) according to program speed. Threshold voltage ranges of the five cell groups (MCG1 to MCG5) may be different from each other.

예컨대, 문턱 전압 범위(dVth1 ~ dVth5)는 각각의 셀 그룹의 단위 문턱 전압 범위에 포함되는 메모리 셀의 개수(이하, 단위 셀 개수라고 함)에 반비례하게 설정될 수 있다. 도시된 원-샷 산포에 따르면, 제3 셀 그룹(MCG3)의 단위 셀 개수는 상대적으로 다른 셀 그룹들의 단위 셀 개수보다 많을 수 있다. 따라서, 제3 셀 그룹(MCG3)의 문턱 전압 범위(dVth3)가 다른 셀 그룹들의 문턱 전압 범위보다 좁게 설정될 수 있다. 반대로, 원-샷 산포의 엣지 영역, 예컨대, 제1 셀 그룹(MCG1) 또는 제5 셀 그룹(MCG5)의 단위 셀 개수는 상대적으로 다른 셀 그룹들의 단위 셀 개수보다 적다. 따라서, 1 셀 그룹(MCG1)의 문턱 전압 범위(dVth1) 또는 제5 셀 그룹(MCG5)의 문턱 전압 범위(dVth5)는 다른 셀 그룹들의 문턱 전압 범위보다 넓게 설정될 수 있다. For example, the threshold voltage ranges dVth1 to dVth5 may be set in inverse proportion to the number of memory cells included in the unit threshold voltage range of each cell group (hereinafter referred to as the number of unit cells). According to the illustrated one-shot distribution, the number of unit cells in the third cell group MCG3 may be relatively greater than the number of unit cells in other cell groups. Accordingly, the threshold voltage range dVth3 of the third cell group MCG3 may be set to be narrower than the threshold voltage ranges of the other cell groups. Conversely, the number of unit cells in the edge area of the one-shot distribution, eg, the first cell group MCG1 or the fifth cell group MCG5, is relatively smaller than the number of unit cells in other cell groups. Accordingly, the threshold voltage range dVth1 of the first cell group MCG1 or the threshold voltage range dVth5 of the fifth cell group MCG5 may be set wider than the threshold voltage ranges of the other cell groups.

이와 같이, 문턱 전압 범위가 서로 다르게 설정된 다섯 개의 셀 그룹(MCG1 MCG5)으로 구분된 메모리 셀들은, 복수의 셀 그룹(MCG1~MCG5)의 문턱 전압 차이 또는 문턱 전압 범위(dVth1~dVth5)에 기초하여 설정되는 복수의 2차 프로그램 전압들(Vpgm2~Vpgm5)을 기초로, 타겟 프로그램 상태(Pn)로 재프로그램될 수 있다. In this way, memory cells divided into five cell groups (MCG1 MCG5) with different threshold voltage ranges are set based on the threshold voltage difference or threshold voltage ranges (dVth1 to dVth5) of the plurality of cell groups (MCG1 to MCG5). Based on the plurality of secondary program voltages Vpgm2 to Vpgm5 to be set, it can be reprogrammed to the target program state Pn.

도 14b를 참조하면, 제1 프로그램 전압(Vpgm1)은 메모리 셀들의 적어도 일부가 타겟 상태(Pn)의 타겟 산포(TP)에 포함되도록 미리 설정된 전압일 수 있다. 실시예에 있어서, 제1 프로그램 전압(Vpgm1)은 원-샷 산포의 최상위 셀 그룹, 예컨데 제1 셀 그룹(MCG1)의 메모리 셀들이 타겟 산포(TP)에 포함되도록 미리 설정된 전압일 수 있다.Referring to FIG. 14B , the first program voltage Vpgm1 may be a preset voltage such that at least some of the memory cells are included in the target distribution TP of the target state Pn. In an embodiment, the first program voltage Vpgm1 may be a preset voltage so that memory cells of the uppermost cell group of the one-shot distribution, eg, the first cell group MCG1, are included in the target distribution TP.

제2 내지 제5 프로그램 전압(Vpgm2 ~ Vpgm5)은 제1 프로그램 전압(Vpgm1)으로부터 차례로 전압 레벨이 증가된 전압일 수 있다. 프로그램 전압들(Vpgm1 ~ Vpgm5) 간의 오프셋 전압들(Voff1 ~ Voff4) 다시 말해, 전압 증가량은 제2 내지 제5 셀 그룹(MCG2 ~ MCG5)의 문턱 전압 차이 또는 문턱 전압 범위(dVth2 ~ dVth5)에 기초하여 설정될 수 있다. 실시예에 있어서, 오프셋 전압들(Voff1 ~ Voff4)은 문턱 전압 범위(dVth2 ~ dVth5)에 비례할 수 있다. 실시예에 있어서 오프셋 전압들(Voff1 ~ Voff4)은 각각 문턱 전압 범위(dVth2 ~ dVth5)와 같을 수 있다. 이에 따라, 제2 오프셋 전압(Voff2)이 상대적으로 작고, 제4 오프셋 전압(Voff4)이 상대적으로 클 수 있다.
The second to fifth program voltages Vpgm2 to Vpgm5 may be voltages whose voltage levels are sequentially increased from the first program voltage Vpgm1. Offset voltages (Voff1 to Voff4) between program voltages (Vpgm1 to Vpgm5), that is, the amount of voltage increase is based on the threshold voltage difference between the second to fifth cell groups (MCG2 to MCG5) or the threshold voltage range (dVth2 to dVth5). can be set by In an embodiment, the offset voltages Voff1 to Voff4 may be proportional to the threshold voltage range dVth2 to dVth5. In an embodiment, the offset voltages Voff1 to Voff4 may be equal to the range of threshold voltages dVth2 to dVth5, respectively. Accordingly, the second offset voltage Voff2 may be relatively small and the fourth offset voltage Voff4 may be relatively large.

도 15(a)~(f)는 본 개시의 실시예에 따른 프로그램 방법의 일 예를 단계별로 나타낸 그래프이다. 도 16은 도 15에서 프로그램되는 메모리 셀에 연결된 워드 라인에 인가되는 전압의 파형도이다. 15 (a) to (f) are graphs showing an example of a program method step by step according to an embodiment of the present disclosure. FIG. 16 is a waveform diagram of a voltage applied to a word line connected to a memory cell programmed in FIG. 15 .

도 15(a) 및 도 16을 참조하면, 제1 프로그램(PGM1)을 수행한다. 소거 상태(E)의 메모리 셀들에 제1 프로그램 전압(Vpgm1)이 인가할 수 있다. 이에 따라, 제1 프로그램 전압(Vpgm1)에 따른 메모리 셀들의 원-샷 산포가 형성된다. 원-샷 산포의 상위 영역(원-샷 산포의 우측 영역)은 제1 프로그램 상태(P1)의 타겟 산포(TP1)에 포함될 수 있다.15(a) and 16, the first program PGM1 is executed. The first program voltage Vpgm1 may be applied to the memory cells in the erased state (E). Accordingly, a one-shot distribution of memory cells according to the first program voltage Vpgm1 is formed. An upper region of the one-shot distribution (a region to the right of the one-shot distribution) may be included in the target distribution TP1 of the first program state P1.

도 15(b)를 참조하면, 메모리 셀들의 문턱 전압을 기초로, 메모리 셀들을 프로그램 속도에 따른 다섯 개의 셀 그룹(G1~ G5)으로 구분한다. 일 실시예에서, 적어도 네 개의 검증 전압을 기초로, 순차적으로 메모리 셀들을 독출함으로써, 메모리 셀들을 다섯 개의 셀 그룹(G1~ G5)으로 구분할 수 있다. 다른 실시예에 있어서, 도 16에 도시된 바와 같이, 적어도 2회의 검증 단계(VF1, VF2)를 통해 메모리 메모리 셀들을 다섯 개의 셀 그룹(G1 ~ G5)으로 구분할 수 있다. Referring to FIG. 15(b) , memory cells are divided into five cell groups G1 to G5 according to program speeds based on threshold voltages of the memory cells. In an embodiment, memory cells may be divided into five cell groups G1 to G5 by sequentially reading memory cells based on at least four verification voltages. In another embodiment, as shown in FIG. 16 , memory cells may be divided into five cell groups G1 to G5 through at least two verification steps VF1 and VF2 .

본 실시예에서는, 도 16에 도시된 바와 같이, 적어도 2회의 검증 단계(VF1, VF2)를 통해 메모리 메모리 셀들을 다섯 개의 셀 그룹(G1 ~ G5)으로 구분하는 것을 가정하여 설명하기로 한다. 제1 검증 단계(VF1)에서, 제1 검증 전압(Vrf1) 및 제2 검증 전압(Vrf2)을 기초로 메모리 셀들을 검증 독출함으로써, 메모리 셀들을 세 개의 셀 그룹으로 구분할 수 있다. 메모리 셀들은, 제1 셀 그룹(G1), 제2 셀 그룹(G2) 및 나머지 셀 그룹(G3, G4, G5)으로 구분될 수 있다. In this embodiment, as shown in FIG. 16 , it is assumed that memory cells are divided into five cell groups G1 to G5 through at least two verification steps VF1 and VF2. In the first verification step VF1 , the memory cells may be divided into three cell groups by verifying and reading the memory cells based on the first verification voltage Vrf1 and the second verification voltage Vrf2 . The memory cells may be divided into a first cell group G1, a second cell group G2, and the remaining cell groups G3, G4, and G5.

이후, 제2 프로그램(VPGM2)을 수행한다. 타겟 산포(TP1)에 포함된 제1 셀 그룹(G1)을 제외한 제2 셀 그룹(G2) 및 나머지 셀 그룹들(G3~ G5)의 메모리 셀들에 제2 프로그램 전압(Vpgm2)이 인가됨으로써, 메모리 셀들의 산포가 도 15(C)에 도시된 바와 같이, 변경된다. 제2 프로그램 전압(Vpgm2)의 전압 레벨은 제1 프로그램 전압(Vpgm1)의 전압 레벨에 제1 오프셋 전압(Voff1)이 더해진 값이다. 제1 오프셋 전압(Voff1)은 제2 셀 그룹(G2)의 문턱 전압 범위(dVth2)와 같을 수 있다. 제2 내지 제5 셀 그룹들(G2~ G5)의 문턱 전압 산포가 우측으로 이동하며, 제2 셀 그룹(G2)은 타겟 산포(TP1)에 포함될 수 있다.After that, the second program (VPGM2) is executed. As the second program voltage Vpgm2 is applied to the memory cells of the second cell group G2 and the remaining cell groups G3 to G5 except for the first cell group G1 included in the target distribution TP1, the second program voltage Vpgm2 is applied to the memory cells. The distribution of cells is changed, as shown in Fig. 15(C). The voltage level of the second program voltage Vpgm2 is a value obtained by adding the first offset voltage Voff1 to the voltage level of the first program voltage Vpgm1. The first offset voltage Voff1 may be equal to the threshold voltage range dVth2 of the second cell group G2. The threshold voltage distribution of the second to fifth cell groups G2 to G5 shifts to the right, and the second cell group G2 may be included in the target distribution TP1.

다음으로, 제3 프로그램(VPGM3)을 수행한다. 나머지 셀 그룹, 예컨대 제3 내지 제5 셀 그룹(G3~G5)의 메모리 셀들에 제3 프로그램 전압(Vpgm3)이 인가됨으로써, 메모리 셀들의 산포가 도 15(d)에 도시된 바와 같이 변경된다. 제3 셀 그룹(G3)은 타겟 산포(TP1)에 포함될 수 있다. 제3 프로그램 전압(Vpgm3)의 전압 레벨은 2 차 프로그램 전압(Vpgm2)의 전압 레벨에, 제2 오프셋 전압(Voff2)이 더해진 값이다. 제2 오프셋 전압(Voff2)은 제3 셀 그룹(G3)의 문턱 전압 범위(dVth3)와 같을 수 있다. 제2 오프셋 전압(Voff2)은 제1 오프셋 전압(Voff1)보다 작을 수 있다. 이에 따라, 제3 프로그램(VPGM3)에 따른 메모리 셀들의 산포의 이동 폭은 제2 프로그램 (VPGM2)에 따른 메모리 셀들의 산포의 이동 폭보다 작을 수 있다. Next, the third program (VPGM3) is executed. As the third program voltage Vpgm3 is applied to the memory cells of the remaining cell groups, for example, the third to fifth cell groups G3 to G5, the distribution of the memory cells is changed as shown in FIG. 15(d). The third cell group G3 may be included in the target distribution TP1. The voltage level of the third program voltage Vpgm3 is a value obtained by adding the second offset voltage Voff2 to the voltage level of the second program voltage Vpgm2. The second offset voltage Voff2 may be equal to the threshold voltage range dVth3 of the third cell group G3. The second offset voltage Voff2 may be smaller than the first offset voltage Voff1. Accordingly, the movement width of the distribution of memory cells according to the third program VPGM3 may be smaller than the movement width of the distribution of memory cells according to the second program VPGM2.

다음으로, 2차 검증(VF2)을 수행한다. 제1 검증 전압(Vrf1) 및 제2 검증 전압(Vrf2)을 기초로 메모리 셀들을 검증 독출함으로써, 메모리 셀들을 세 개의 셀 그룹으로 구분할 수 있다. 메모리 셀들은, 타겟 산포(TP1)에 포함되는 제1 내지 제3 셀 그룹(G1~G3), 제4 셀 그룹(G4) 및 제5 셀 그룹(G5)으로 구분될 수 있다. 일 실시예에 있어서, 제1 셀 그룹(G1) 및 제2 셀 그룹(G2)을 제외한, 상기 나머지 셀 그룹(G3~G5)의 메모리 셀들을 검증 독출함으로써, 상기 나머지 셀 그룹(G3~G5)의 메모리 셀들을 제3 셀 그룹(G3), 제4 셀 그룹(G4) 및 제5 셀 그룹(G5)로 구분할 수 있다. 이러한 경우 검증 독출에 따른 소비 전력을 줄일 수 있다. Next, a secondary verification (VF2) is performed. Memory cells may be divided into three cell groups by verifying and reading the memory cells based on the first and second verify voltages Vrf1 and Vrf2 . The memory cells may be divided into first to third cell groups G1 to G3, a fourth cell group G4, and a fifth cell group G5 included in the target distribution TP1. In an exemplary embodiment, memory cells of the remaining cell groups G3 to G5 excluding the first cell group G1 and the second cell group G2 are verified and read, thereby generating the remaining cell groups G3 to G5. The memory cells of can be divided into a third cell group G3, a fourth cell group G4, and a fifth cell group G5. In this case, power consumption according to verification read can be reduced.

이후, 제4 프로그램(PGM4)을 수행한다. 타겟 산포(TP1)에포함된 제1 내지 3 셀 그룹(G1 ~ G3)을 제외한 제4 셀 그룹(G4) 및 제5 셀 그룹(G5)의 메모리 셀들에 제4 프로그램 전압(Vpgm4)이 인가됨으로써, 메모리 셀들의 산포가 도 15(e)에 도시된 바와 같이, 변경된다. 제4 프로그램 전압(Vpgm4)의 전압 레벨은 제3 프로그램 전압(Vpgm3)의 전압 레벨에 제3 오프셋 전압(Voff3)이 더해진 값이다. 제3 오프셋 전압(Voff3)은 제4 셀 그룹(G4)의 문턱 전압 범위(dVth4)와 같을 수 있다. 제4 셀 그룹(G4) 및 제5 셀 그룹(G5)의 문턱 전압 산포가 우측으로 이동하며, 제4 셀 그룹(G4)은 타겟 산포(TP1)에 포함될 수 있다.After that, the fourth program (PGM4) is executed. The fourth program voltage Vpgm4 is applied to the memory cells of the fourth cell group G4 and the fifth cell group G5 excluding the first to third cell groups G1 to G3 included in the target distribution TP1. , the distribution of memory cells is changed, as shown in FIG. 15(e). The voltage level of the fourth program voltage Vpgm4 is a value obtained by adding the third offset voltage Voff3 to the voltage level of the third program voltage Vpgm3. The third offset voltage Voff3 may be equal to the threshold voltage range dVth4 of the fourth cell group G4. The threshold voltage distributions of the fourth cell group G4 and the fifth cell group G5 shift to the right, and the fourth cell group G4 may be included in the target distribution TP1.

다음으로, 제5 프로그램(VPGM5)을 수행한다. 타겟 산포(TP1)에 포함되지 않은 나머지 셀 그룹, 다시 말해 제5 셀 그룹(G5)의 메모리 셀들에 제5 프로그램 전압(Vpgm5)이 인가됨으로써, 메모리 셀들의 산포가 도 15(f)에 도시된 바와 같이 변경된다. 제5 프로그램 전압(Vpgm5)의 전압 레벨은 제4 프로그램 전압(Vpgm4)의 전압 레벨에, 제4 오프셋 전압(Voff4)이 더해진 값이다. 제4 오프셋 전압(Voff4)은 제5 셀 그룹(G5)의 문턱 전압 범위(dVth5)와 같을 수 있다. 제4 오프셋 전압(Voff4)은 다른 오프셋들보다 상대적으로 클 수 있다. 따라서, 5차 프로그램(VPGM5)에 따른 메모리 셀들의 산포의 이동폭이 전술한 2차 내지 4차 프로그램(VPGM2~VPMG4) 수행 단계보다 상대적으로 클 수 있다. 이에 따라, 제5 셀 그룹(G5)은 타겟 산포(TP1)에 포함될 수 있다. 이로써, 메모리 셀들이 제1 프로그램 상태(P1)로 프로그램될 수 있다.
Next, the fifth program (VPGM5) is executed. As the fifth program voltage Vpgm5 is applied to the memory cells of the remaining cell groups not included in the target distribution TP1, that is, the fifth cell group G5, the distribution of memory cells is shown in FIG. 15(f). change as bar The voltage level of the fifth program voltage Vpgm5 is a value obtained by adding the fourth offset voltage Voff4 to the voltage level of the fourth program voltage Vpgm4. The fourth offset voltage Voff4 may be equal to the threshold voltage range dVth5 of the fifth cell group G5. The fourth offset voltage Voff4 may be relatively greater than other offsets. Therefore, the movement width of the distribution of memory cells according to the 5th program VPGM5 may be relatively larger than the above-described steps of performing the 2nd to 4th programs VPGM2 to VPMG4. Accordingly, the fifth cell group G5 may be included in the target distribution TP1. As a result, the memory cells may be programmed to the first program state P1.

도 17(a)~(d)는 본 개시의 실시예에 따른 프로그램 방법의 일 예를 단계별로 나타낸 그래프이다. 도 18은 도 17에서 프로그램되는 메모리 셀에 연결된 워드 라인에 인가되는 전압의 파형도이다. 17 (a) to (d) are graphs showing an example of a program method step by step according to an embodiment of the present disclosure. FIG. 18 is a waveform diagram of a voltage applied to a word line connected to a memory cell programmed in FIG. 17 .

도 17(a)~(d)에 따른 프로그램 방법은 도 15(a) ~(f)와 유사하다. 다만, 본 실시예에 따른 프로그램 방법에서는, 제2 프로그램 단계(PGM2) 및 제3 프로그램(PGM3) 단계에서, 두 개의 셀 그룹이 타겟 산포(TP1)에 포함될 수 있다. 도 17(b) 및 도 18의 제2 프로그램 단계(PGM2)를 참조하면, 제2 프로그램 단계(PGM2)에서, 제2 셀 그룹(G2)의 메모리 셀들에 제1 포싱 전압(VBF1)을 인가하고, 제2 내지 제5 셀 그룹(G2~G5)의 메모리 셀들에, 제2 프로그램 전압(Vpgm2)을 인가할 수 있다. 이에 따라, 제2 셀 그룹(G2) 및 제3 셀 그룹(G3)의 메모리 셀들이 타겟 산포(TP1)에 포함될 수 있다. 이때, 제2 프로그램 전압(Vpgm2)의 전압 레벨은 제1 프로그램 전압(Vpgm1)으로부터 제1 오프셋 전압(Voff1)만큼 증가된 레벨일 수 있다. 제1 오프셋 전압(Voff1)은 제2 셀 그룹의(G2)의 문턱 전압 범위(dVth2) 및 제3 셀 그룹(G3)의 문턱 전압 범위(dVth3)의 합과 같을 수 있으며, 제1 포싱 전압(VBLF1)은 제3 셀 그룹(G3)의 문턱 전압 범위(dVth3)과 같을 수 있다. The programming method according to FIGS. 17 (a) to (d) is similar to FIG. 15 (a) to (f). However, in the program method according to the present embodiment, two cell groups may be included in the target distribution TP1 in the second program step PGM2 and the third program step PGM3. Referring to FIGS. 17(b) and 18 , in the second program step PGM2, a first forcing voltage VBF1 is applied to memory cells of the second cell group G2. , the second program voltage Vpgm2 may be applied to the memory cells of the second to fifth cell groups G2 to G5. Accordingly, the memory cells of the second cell group G2 and the third cell group G3 may be included in the target distribution TP1. In this case, the voltage level of the second program voltage Vpgm2 may be a level increased by the first offset voltage Voff1 from the first program voltage Vpgm1. The first offset voltage Voff1 may be equal to the sum of the threshold voltage range dVth2 of the second cell group G2 and the threshold voltage range dVth3 of the third cell group G3, and the first forcing voltage ( VBLF1) may be equal to the threshold voltage range dVth3 of the third cell group G3.

또한, 도 17(c) 및 도 18의 제3 프로그램 단계(PGM3)를 참조하면, 제3 프로그램 단계(PGM3)에서, 제4 셀 그룹(G4)의 메모리 셀들에 제2 포싱 전압(VBF2)을 인가하고, 제4 및 제5 셀 그룹(G4, G5)의 메모리 셀들에 제3 프로그램 전압(Vpgm3)을 인가할 수 있다. 이에 따라 제4 셀 그룹(G3) 및 제5 셀 그룹(G5)의 메모리 셀들이 타겟 산포(TP1)에 포함될 수 있다. 이때, 제3 프로그램 전압(Vpgm3)의 전압 레벨은 제2 프로그램 전압(Vpgm2)으로부터 제2 오프셋 전압(Voff2)만큼 증가된 레벨일 수 있다. 제2 오프셋 전압(Voff2)은 제4 셀 그룹의(G4)의 문턱 전압 범위(dVth4) 및 제5 셀 그룹(G5)의 문턱 전압 범위(dVth3)의 합과 같을 수 있으며, 제2 포싱 전압(VBLF2)은 제5 셀 그룹(G5)의 문턱 전압 범위(dVth5)과 같을 수 있다. 17(c) and 18, in the third program step PGM3, the second forcing voltage VBF2 is applied to the memory cells of the fourth cell group G4. and the third program voltage Vpgm3 may be applied to the memory cells of the fourth and fifth cell groups G4 and G5. Accordingly, the memory cells of the fourth cell group G3 and the fifth cell group G5 may be included in the target distribution TP1. In this case, the voltage level of the third program voltage Vpgm3 may be increased from the second program voltage Vpgm2 by the second offset voltage Voff2. The second offset voltage Voff2 may be equal to the sum of the threshold voltage range dVth4 of the fourth cell group G4 and the threshold voltage range dVth3 of the fifth cell group G5, and the second forcing voltage ( VBLF2) may be equal to the threshold voltage range dVth5 of the fifth cell group G5.

이로써, 메모리 셀들을 타겟 프로그램 상태, 예컨대 제1 프로그램 상태(P1)로 프로그램할 수 있으며, 이때, 제2 및 제3 프로그램 단계에서, 적어도 두 개의 셀 그룹을 동시에 타겟 산포(TP)에 포함될 수 있도록 프로그램함으로써, 프로그램 단계를 줄일 수 있다.
Accordingly, memory cells may be programmed to a target program state, for example, a first program state P1, and at this time, in the second and third program steps, at least two cell groups may be simultaneously included in the target distribution TP. By programming, the number of programming steps can be reduced.

도 19는 본 개시의 실시예에 다른 메모리 장치의 동작 방법을 나타내는 흐름도이다. 도 19는 도 17의 메모리 장치의 동작 방법을 보다 상세하게 설명하는 도면이다.19 is a flowchart illustrating a method of operating a memory device according to an exemplary embodiment of the present disclosure. FIG. 19 is a diagram explaining a method of operating the memory device of FIG. 17 in more detail.

도 19를 참조하면, 메모리 셀들이 연결된 워드 라인에 1차 프로그램 전압, 다시 말해 제1 프로그램 전압을 인가함으로써, 제1 프로그램을 수행한다(S410). 메모리 셀들의 일부의 산포는 타겟 산포에 포함될 수 있다.Referring to FIG. 19 , a first program is performed by applying a first program voltage, that is, a first program voltage to a word line to which memory cells are connected (S410). A distribution of a subset of memory cells may be included in the target distribution.

이후, 제1 프로그램이 수행된 메모리 셀들을 문턱 전압을 기초로, 프로그램 속도에 따른 세 개의 셀 그룹으로 구분할 수 있다(S420). 예컨대, 메모리 셀들을 제1, 제2 및 나머지 셀 그룹으로 구분할 수 있다. 미리 설정된 검증 전압을 기초로 메모리 셀들을 검증 독출함으로써, 메모리 셀들을 세 개의 셀 그룹으로 구분할 수 있다. 예컨대, 제1 및 제2 검증 전압(Vrf1, Vrf2)를 기초로, 메모리 셀들을 세 개의 셀 그룹으로 구분할 수 있다. 제1 셀 그룹의 문턱 전압이 가장 높고, 나머지 셀 그룹의 문턱 전압이 가장 낮을 수 있다. 이때, 메모리 셀들의 문턱 전압이 높을수록 메모리 셀들의 프로그램 속도가 빠를 수 있다. 따라서, 메모리 셀들은 프로그램 속도에 따른 세 개의 셀 그룹으로 구분될 수 있다.Thereafter, the memory cells on which the first program has been performed may be divided into three cell groups according to the program speed based on the threshold voltage (S420). For example, memory cells may be divided into first, second, and remaining cell groups. The memory cells may be divided into three cell groups by verifying the memory cells based on a preset verification voltage. For example, memory cells may be divided into three cell groups based on the first and second verification voltages Vrf1 and Vrf2. The first cell group may have the highest threshold voltage and the other cell groups may have the lowest threshold voltage. In this case, the higher the threshold voltage of the memory cells, the faster the program speed of the memory cells. Accordingly, memory cells may be divided into three cell groups according to program speed.

이후, 제2 및 나머지 셀 그룹에 대하여 제2 프로그램을 수행할 수 있다(S430). 이때, 문턱 전압이 가장 높은 셀 그룹인, 제1 셀 그룹은 타겟 산포에 포함될 수 있다. 따라서, 제1 셀 그룹에 대하여 프로그램이 수행되는 것을 방지하기 위하여 제1 셀 그룹의 메모리 셀들의 비트 라인에 인히빗 전압을 인가할 수 있다(S431). Thereafter, a second program may be performed on the second and remaining cell groups (S430). In this case, the first cell group, which is a cell group having the highest threshold voltage, may be included in the target distribution. Accordingly, an inhibit voltage may be applied to the bit lines of the memory cells of the first cell group to prevent the program from being performed on the first cell group (S431).

제2 셀 그룹의 메모리 셀들의 비트 라인에 제1 포싱 전압을 인가하고(S432) 워드 라인에 제2 프로그램 전압을 인가(S433)함으로써, 제2 프로그램을 수행할 수 있다. 제2 셀 그룹의 산포의 이동 폭은 나머지 셀 그룹의 산포의 이동 폭보다 적어야 한다. 따라서, 제2 셀 그룹의 메모리 셀들의 비트 라인에 포싱 전압을 인가함으로써, 제2 셀 그룹의 프로그램 속도를 늦출 수 있다. 이에 따라, 제2 프로그램 전압을 기초로, 제2 셀 그룹 및 나머지 셀 그룹 중 일부, 예컨대 제3 셀 그룹의 메모리 셀들을 동시에 타겟 프로그램 상태로 프로그램할 수 있다. 이때 제2 프로그램 전압의 전압 레벨은 제1 프로그램 전압으로부터 제1 오프셋 전압만큼 증가된 레벨일 수 있다. 제1 오프셋 전압은 제2 셀 그룹의의 문턱 전압 범위 및 나머지 셀 그룹 중 문턱 전압이 상대적으로 높은 셀 그룹, 예컨대 제3 셀 그룹의 문턱 전압 범위의 합과 같을 수 있으며, 제1 포싱 전압은 제3 셀 그룹의 문턱 전압 범위와 같을 수 있다. The second program may be performed by applying a first forcing voltage to the bit line of the memory cells of the second cell group (S432) and applying a second program voltage to the word line (S433). The shift width of the distribution of the second cell group should be smaller than the shift width of the distribution of the other cell groups. Accordingly, the programming speed of the second cell group may be slowed down by applying the forcing voltage to the bit lines of the memory cells of the second cell group. Accordingly, memory cells of the second cell group and some of the remaining cell groups, for example, the third cell group, may be simultaneously programmed to the target program state based on the second program voltage. In this case, the voltage level of the second program voltage may be a level increased by the first offset voltage from the first program voltage. The first offset voltage may be equal to the sum of the threshold voltage range of the second cell group and the threshold voltage range of a cell group having a relatively high threshold voltage among the remaining cell groups, for example, the third cell group. It may be the same as the threshold voltage range of the 3 cell group.

다음으로, 메모리 셀들을 문턱 전압에 따라 다시 세 개의 셀 그룹으로 구분할 수 있다(S440). 실시예에 있어서, 전술한 예컨대, 제1 및 제2 검증 전압(Vrf1, Vrf2)를 기초로, 메모리 셀들을 세 개의 셀 그룹으로 구분할 수 있다. Next, memory cells may be further divided into three cell groups according to threshold voltages (S440). In an embodiment, memory cells may be divided into three cell groups based on the foregoing, eg, first and second verification voltages Vrf1 and Vrf2.

실시예에 있어서, 나머지 셀 그룹을 검증 독출함으로써, 나머지 셀 그룹을 상기 제3, 제4 및 제5 셀 그룹으로 구분할 수 있다. 이때, 제3 셀 그룹의 메모리 셀들은 타겟 산포에 포함될 수 있다.In an embodiment, the remaining cell groups may be divided into the third, fourth, and fifth cell groups by verifying and reading the remaining cell groups. In this case, memory cells of the third cell group may be included in the target distribution.

제4 및 제5 셀 그룹의 메모리 셀들에 대하여 제3 프로그램을 수행할 수 있다(S450). 이미 타겟 산포에 포함된 제1 셀 그룹, 제2 셀 그룹 및 제3 셀 그룹의 메모리 셀들에 대하여 프로그램이 수행되는 것을 방지하기 위하여 제1 내지 제3 셀 그룹의 메모리 셀들의 비트 라인에 인히빗 전압을 인가할 수 있다(S451). A third program may be performed on the memory cells of the fourth and fifth cell groups (S450). In order to prevent the memory cells of the first cell group, the second cell group, and the third cell group from being programmed, which are already included in the target distribution, an inhibit voltage is applied to the bit lines of the memory cells of the first to third cell groups. can be applied (S451).

제4 셀 그룹의 메모리 셀들의 비트 라인에 포싱 전압을 인가하고(S452), 워드 라인에 제3 프로그램 전압을 인가함으로써, 제3 프로그램을 수행할 수 있다(S453). 제4 셀 그룹의 산포의 이동 폭은 제5 셀 그룹의 산포의 이동 폭보다 적어야 한다. 따라서, 제4 셀 그룹의 메모리 셀들의 비트 라인에 포싱 전압을 인가함으로써, 제4 셀 그룹의 프로그램 속도를 늦출 수 있다. 이에 따라, 제3 프로그램 전압을 기초로, 제4 셀 그룹 및 제5 셀 그룹의 메모리 셀들을 동시에 타겟 프로그램 상태로 프로그램할 수 있다. 이때 제3 프로그램 전압의 전압 레벨은 제2 프로그램 전압으로부터 제2 오프셋 전압만큼 증가된 레벨일 수 있다. 제2오프셋 전압은 제4 셀 그룹의의 문턱 전압 범위 및 제5 셀 그룹의 문턱 전압 범위의 합과 같을 수 있으며, 제2 포싱 전압은 제5 셀 그룹의 문턱 전압 범위와 같을 수 있다.A third program may be performed by applying a forcing voltage to the bit line of the memory cells of the fourth cell group (S452) and applying a third program voltage to the word line (S453). The shift width of the distribution of the fourth cell group should be smaller than the shift width of the distribution of the fifth cell group. Accordingly, the programming speed of the fourth cell group may be slowed down by applying the forcing voltage to the bit lines of the memory cells of the fourth cell group. Accordingly, memory cells of the fourth cell group and the fifth cell group may be simultaneously programmed to the target program state based on the third program voltage. In this case, the voltage level of the third program voltage may be increased from the second program voltage by the second offset voltage. The second offset voltage may be equal to the sum of the threshold voltage range of the fourth cell group and the threshold voltage range of the fifth cell group, and the second forcing voltage may be equal to the threshold voltage range of the fifth cell group.

이처럼, 제1 프로그램 상태로 프로그램되도록 설정된 메모리 셀들 전체에 대하여 제1 프로그램이 수행된 이후, 메모리 셀들은 프로그램 속도에 따른 다섯 개의 셀 그룹으로 구분되고, 제1 셀 그룹을 제외한 다른 셀 그룹들에 대하여 2 개의 셀 그룹 단위로, 재프로그램을 수행할 수 있다.
As such, after the first program is performed on all memory cells set to be programmed in the first program state, the memory cells are divided into five cell groups according to the program speed, and cell groups other than the first cell group Reprogramming may be performed in units of two cell groups.

도 20은 본 개시의 실시예에 따른 메모리 장치의 동작 방법을 나타내는 흐름도이다. 도 20은 메모리 장치가 메모리 셀 각각에 2 비트의 데이터를 저장하는 경우의 프로그램 방법을 나타낸다. 도 21은 각 프로그램 상태에 따른 메모리 셀들의 문턱 전압 산포를 나타낸다. 20 is a flowchart illustrating a method of operating a memory device according to an exemplary embodiment of the present disclosure. 20 illustrates a program method when a memory device stores 2-bit data in each memory cell. 21 shows threshold voltage distribution of memory cells according to each program state.

도 20을 참조하면, 메모리 장치(도 1의 100)는 외부, 예컨대 메모리 컨트롤러로부터 멀티 비트 데이터 및 프로그램 명령을 수신하면(S510), 본 개시의 실시예에 따른 프로그램 동작을 수행할 수 있다. Referring to FIG. 20 , the memory device ( 100 of FIG. 1 ) may perform a program operation according to an embodiment of the present disclosure when receiving multi-bit data and a program command from an external device, for example, a memory controller (S510).

메모리 장치는 제1 프로그램 전압 셋을 기초로, 메모리 셀들을 제1 프로그램 상태로 프로그램할 수 있다(S520). 제1 프로그램 전압 셋은, 메모리 셀들을 제1 프로그램 상태로 프로그램하기 위한, 제1 내지 제n 프로그램 전압을 포함할 수 있다. 제1 프로그램 전압은, 1차 프로그램 전압이고, 제2 내지 제n 프로그램 전압은 복수의 2차 프로그램 전압이다. 예컨대, 도 5a에 도시된 바와 같이, 메모리 셀들을 프로그램 속도에 따라 세 개의 셀 그룹으로 구분하여 프로그램하는 경우, 제1 프로그램 전압 셋은, 제1 내지 제3 프로그램 전압을 포함할 수 있다. 다른 실시예에 있어서, 제1 프로그램 전압 셋은, 제1 및 제2 프로그램 전압과 포싱 전압을 포함할 수 있다. The memory device may program the memory cells into a first program state based on the first program voltage set (S520). The first program voltage set may include first through nth program voltages for programming memory cells into a first program state. The first program voltage is a primary program voltage, and the second through nth program voltages are a plurality of secondary program voltages. For example, as shown in FIG. 5A , when memory cells are divided into three cell groups according to program speed and programmed, the first program voltage set may include first to third program voltages. In another embodiment, the first program voltage set may include first and second program voltages and a forcing voltage.

이때, 제1 프로그램 전압은, 메모리 셀들의 적어도 일부가 타겟 프로그램 상태의 타겟 산포에 포함되도록 미리 설정된 전압일 수 있다. 일 실시예에 있어서, 제1 프로그램 전압은, 1차 프로그램이 수행된 후, 메모리 셀들이 복수의 셀 그룹으로 구분될 경우, 원-샷 산포의 최상위 셀 그룹의 메모리 셀들이 타겟 산포에 포함되도록 미리 설정된 전압일 수 있다. 제2 내지 제n 프로그램 전압은, 복수의 셀 그룹들간의 문턱 전압 차이에 따라 설정된 전압일 수 있다.In this case, the first program voltage may be a preset voltage such that at least some of the memory cells are included in the target distribution of the target program state. In one embodiment, the first program voltage is set in advance so that memory cells of the highest cell group of the one-shot distribution are included in the target distribution when the memory cells are divided into a plurality of cell groups after the first program is performed. It may be a set voltage. The second through nth program voltages may be voltages set according to differences in threshold voltages between the plurality of cell groups.

제1 프로그램 상태에 대한 프로그램이 완료되면, 메모리 장치는 제2 프로그램 전압 셋을 기초로 메모리 셀들을 제2 프로그램 상태로 프로그램할 수 있다(530). 제2 프로그램 전압 셋은, 메모리 셀들을 제2 프로그램 상태로 프로그램하기 위한, 제1 내지 제n 프로그램 전압을 포함할 수 있다. When the programming for the first program state is completed, the memory device may program the memory cells to the second program state based on the second program voltage set (530). The second program voltage set may include first through nth program voltages for programming the memory cells into the second program state.

일 실시예에 있어서, 메모리 장치는 제1 프로그램 상태로 프로그램된 메모리 셀들 중 일부의 메모리 셀들을 제2 프로그램 상태로 프로그램할 수 있다. 다른 실시예에 있어서, 메모리 장치는 제1 프로그램 상태로 프로그램된 메모리 셀들과는 다른 메모리 셀들을 제2 프로그램 상태로 프로그램할 수 있다. In one embodiment, the memory device may program some of the memory cells programmed in the first program state into the second program state. In another embodiment, the memory device may program memory cells different from memory cells programmed in the first program state into the second program state.

제2 프로그램 상태에 대한 프로그램이 완료되면, 메모리 장치는 제3 프로그램 전압 셋을 기초로 메모리 셀들을 제3 프로그램 상태로 프로그램할 수 있다(S540). 제3 프로그램 전압 셋은, 메모리 셀들을 제3 프로그램 상태로 프로그램하기 위한, 제1 내지 제n 프로그램 전압을 포함할 수 있다. When the programming for the second program state is completed, the memory device may program the memory cells to the third program state based on the third program voltage set (S540). The third program voltage set may include first to nth program voltages for programming memory cells into a third program state.

일 실시예에 있어서, 메모리 장치는 제2 프로그램 상태로 프로그램된 메모리 셀들 중 일부의 메모리 셀들을 제3 프로그램 상태로 프로그램할 수 있다. 다른 실시예에 있어서, 메모리 장치는 제1 및 제2 프로그램 상태로 프로그램된 메모리 셀들과는 다른 메모리 셀들을 제3 프로그램 상태로 프로그램할 수 있다.In one embodiment, the memory device may program some of the memory cells programmed in the second program state into a third program state. In another embodiment, the memory device may program memory cells different from memory cells programmed in the first and second program states into a third program state.

한편, 각 프로그램 상태에 대한 제1 프로그램 전압, 다시 말해 1차 프로그램 전압의 전압 레벨은, 이전 프로그램 상태의 제1 프로그램 전압 및, 프로그램 오프셋에 의하여 설정될 수 있다. Meanwhile, the voltage level of the first program voltage for each program state, that is, the first program voltage, may be set by the first program voltage of the previous program state and the program offset.

도 21에 도시된 바와 같이, 제2 프로그램 상태(P2)와 제1 프로그램 상태(P1)의 문턱 전압 차이가 제2 프로그램 오프셋(VoffP2)일 경우, 제2 프로그램 상태(P2)에 대한 제1 프로그램 전압(Vpgm12)의 전압 레벨은 제1 프로그램 상태(P1)에 대한 제1 프로그램 전압(Vpgm11) 및 제2 프로그램 오프셋(VoffP2)에 기초하여 설정될 수 있다. 또한, 제3 프로그램 상태(P3)와 제2 프로그램 상태(P2)의 문턱 전압 차이가 제3 프로그램 오프셋(VoffP3)일 경우, 제3 프로그램 상태(P3)에 대한 제1 프로그램 전압(Vpgm13)은 제2 프로그램 상태(P2)에 대한 1차 프로그램 전압(Vpgm12) 및 제3 프로그램 오프셋(VoffP3)에 기초하여 설정될 수 있다. As shown in FIG. 21, when the threshold voltage difference between the second program state P2 and the first program state P1 is the second program offset VoffP2, the first program for the second program state P2 The voltage level of the voltage Vpgm12 may be set based on the first program voltage Vpgm11 and the second program offset VoffP2 for the first program state P1. Also, when the threshold voltage difference between the third program state P3 and the second program state P2 is the third program offset VoffP3, the first program voltage Vpgm13 for the third program state P3 is It may be set based on the first program voltage (Vpgm12) and the third program offset (VoffP3) for the second program state (P2).

한편, 각각의 프로그램 단계(S520, S530, S540)에는 도 5a내지 도 19를 참조하여 설명한 본 개시의 실시예에 따른 프로그램 방법이 적용될 수 있다. 각각의 프로그램 단계에서, 제1 프로그램 전압, 다시 말해 1차 프로그램 전압에 따라 제1 프로그램이 수행된 메모리 셀들을 프로그램 속도에 따른 복수의 셀 그룹으로 구분하고, 상기 복수의 셀 그룹들의 서로 다른 문턱 전압 범위에 대응하여 설정되는 복수의 2차 프로그램 전압들이 타겟 산포에 포함되지 않는 메모리 셀 그룹에 인가되어, 프로그램이 수행될 수 있다. Meanwhile, the program method according to the embodiment of the present disclosure described with reference to FIGS. 5A to 19 may be applied to each of the program steps S520, S530, and S540. In each program step, memory cells subjected to the first program according to the first program voltage, that is, the first program voltage, are divided into a plurality of cell groups according to the program speed, and the plurality of cell groups have different threshold voltages. A plurality of secondary program voltages set to correspond to the range may be applied to a memory cell group not included in the target distribution, and the program may be performed.

메모리 셀들을 복수의 프로그램 상태로 프로그램할 때, ISPP 방식으로 프로그램 할 경우, 두 프로그램 상태 간의 문턱 전압 차이가 상대적으로 클 경우, 두 프로그램 상태 간의 문턱 전압 차이가 상대적으로 작은 경우보다 프로그램 횟수가 증가될 수 있다. 그러나, 본 개시의 실시예에 따른 메모리 장치의 동작 방법에 따르면, 각각의 프로그램 상태에 대응하는 프로그램 전압을 미리 설정하고, 미리 설정된 프로그램 전압을 기초로 메모리 셀들을 각 프로그램 상태로 프로그램하므로, 두 프로그램 상태 간의 문턱 전압 차이에 무관하게 미리 설정된 프로그램 횟수에 따라 메모리 셀들이 프로그램될 수 있다.
When programming memory cells in a plurality of program states, when programming using the ISPP method, when the threshold voltage difference between the two program states is relatively large, the number of programs is increased compared to when the threshold voltage difference between the two program states is relatively small. can However, according to the method of operating a memory device according to an exemplary embodiment of the present disclosure, program voltages corresponding to respective program states are previously set, and memory cells are programmed into respective program states based on the preset program voltages. Memory cells may be programmed according to a preset number of programs regardless of a threshold voltage difference between states.

도 22는 본 개시의 실시예에 따른 메모리 장치의 동작 방법의 일 예로서, 워드 라인에 인가되는 전압 펄스를 나타내는 파형이다. 22 is a waveform illustrating a voltage pulse applied to a word line as an example of a method of operating a memory device according to an embodiment of the present disclosure.

도 22에는, 메모리 셀이 2 비트의 데이터를 저장하는 멀티 비트 셀인 경우, 메모리 셀들이 제1 프로그램 상태(P1), 제2 프로그램 상태(P2) 및 제3 프로그램 상태(P3)가 차례로 프로그램되는 방법이 도시된다. 22 illustrates a method in which memory cells are sequentially programmed in a first programmed state P1, a second programmed state P2, and a third programmed state P3 when the memory cell is a multi-bit cell storing 2-bit data. this is shown

도 22를 참조하면, 메모리 장치의 프로그램 단계는 제1 프로그램 구간(P1 PGM), 제2 프로그램 구간(P2 PGM) 및 제3 프로그램 구간(P3 PGM)을 포함할 수 있다. Referring to FIG. 22 , the program phase of the memory device may include a first program period (P1 PGM), a second program period (P2 PGM), and a third program period (P3 PGM).

외부(예컨대 메모리 컨트롤러)로부터 멀티 비트 데이터 및 상기 멀티 비트 데이터의 저장을 요청하는 커맨드가 수신되면, 제1 프로그램 구간(P1 PGM)에 메모리 셀들이 제1 프로그램 상태로 프로그램되고, 제2 프로그램 구간(P2 PGM)에 메모리 셀들이 제2 프로그램 상태로 프로그램되고, 제3 프로그램 구간(P3 PGM)에 메모리 셀들이 제3 프로그램 상태로 프로그램 될 수 있다. 이로써, 멀티 비트 데이터가 메모리 셀 어레이(도 1의 110)의 하나의 워드 라인에 연결된 메모리 셀들, 예컨대 페이지에 저장될 수 있다. When multi-bit data and a command requesting storage of the multi-bit data are received from the outside (eg, a memory controller), memory cells are programmed in a first program state in the first program period (P1 PGM), and in the second program period ( Memory cells may be programmed in the second program state in the P2 PGM, and memory cells may be programmed in the third program state in the third program period P3 PGM. Accordingly, multi-bit data may be stored in memory cells connected to one word line of the memory cell array (110 in FIG. 1), for example, a page.

각각의 프로그램 구간, 다시 말해 각 프로그램 루프에는 적어도 두 번의 프로그램 단계, 예컨대, 제1 및 제2 프로그램 단계 및 검증 독출 단계(VF)를 포함할 수 있다. 도 22에는 각각의 프로그램 구간에, 두 번의 프로그램 단계 및 한번의 검증 독출 단계를 포함하는 것으로 도시되었으나, 이에 제한되는 것은 아니다. 메모리 셀들이 프로그램 속도에 따라 몇 개의 셀 그룹으로 구분되는지, 일부 셀 그룹에 대하여 비트라인 포싱 프로그램이 수행되는지 여부 등에 따라 프로그램 횟수 또는 검증 독출 횟수가 더 증가될 수 있다. Each program section, that is, each program loop, may include at least two program steps, eg, first and second program steps and a verify read step (VF). 22 shows that each program section includes two program steps and one verification read step, but is not limited thereto. Depending on how many cell groups memory cells are divided into according to program speed and whether a bit line forcing program is performed on some cell groups, the number of programs or verification reads may be further increased.

한편, 각각의 프로그램 구간에서 수행되는, 프로그램 단계 및 검증 독출 단계는, 도 5a 내지 도19를 참조하여 설명한 바에 따라, 수행될 수 있다. 1차 프로그램 전압을 기초로, 제1 프로그램이 수행된 메모리 셀들을 검증 독출 단계(VF)에서, 프로그램 속도에 따른 복수의 셀 그룹으로 구분하고, 타겟 산포에 포함되지 않는 셀 그룹에 대하여 복수의 셀 그룹의 문턱 전압 범위를 기초로 전압 레벨이 설정되는 복수의 2차 프로그램 전압들, 예컨대 제2 및 제3 프로그램 전압을 기초로 재프로그램(예컨대, 제2 프로그램 및 제3 프로그램을 수행)하여, 메모리 셀들을 각 프로그램 상태의 타겟 산포에 포함되도록 프로그램할 수 있다. Meanwhile, the program step and the verification read step, which are performed in each program section, may be performed as described with reference to FIGS. 5A to 19 . Based on the primary program voltage, the memory cells on which the first program has been performed are divided into a plurality of cell groups according to the program speed in the verify read step (VF), and a plurality of cells are divided into cell groups not included in the target distribution. By reprogramming (eg, performing a second program and a third program) based on a plurality of secondary program voltages, for example, second and third program voltages, the voltage levels of which are set based on the threshold voltage range of the group, Cells can be programmed to be included in the target distribution of each programmed state.

한편, 각 프로그램 구간에서, 1차 프로그램 전압(Vpgm11, Vpgm12, Vpgm13)의 전압 레벨은, 이전 프로그램 구간의 1차 프로그램 전압 및 각 프로그램 상태의 프로그램 오프셋에 따라 결정될 수 있다. 이때, 프로그램 오프셋은, 도 21에 도시된 바와 같이, 프로그램 상태들 간의 문턱 전압 차이를 의미한다. 예를 들어, 제2 프로그램 구간(P2 PGM)에서, 1차 프로그램 전압(Vpgm12)의 전압 레벨은, 제1 프로그램 구간(P1 PGM)에서의 1차 프로그램 전압(Vpgm11)에 제2 프로그램 오프셋(VoffP2)이 더해진 값일 수 있다. 제3 프로그램 구간(P3 PGM)에서, 1차 프로그램 전압(Vpgm13)의 전압 레벨은, 제2 프로그램 구간(P1 PGM)에서의 1차 프로그램 전압(Vpgm12)에 제3 프로그램 오프셋(VoffP3)이 더해진 값일 수 있다. Meanwhile, in each program period, voltage levels of the first program voltages Vpgm11, Vpgm12, and Vpgm13 may be determined according to the first program voltage of the previous program period and the program offset of each program state. In this case, the program offset, as shown in FIG. 21, means a threshold voltage difference between program states. For example, in the second program period P2 PGM, the voltage level of the first program voltage Vpgm12 is equal to the first program voltage Vpgm11 in the first program period P1 PGM and the second program offset VoffP2. ) may be added. The voltage level of the first program voltage Vpgm13 in the third program period P3 PGM is the value obtained by adding the third program offset VoffP3 to the first program voltage Vpgm12 in the second program period P1 PGM. can

한편, 메모리 셀들이 제3 프로그램 상태로 프로그램된 후, 검증 독출 동작이 수행될 수 있다. 검증 독출 동작을 통하여 메모리 셀들이 정상적으로 프로그램 되었는지를 판단할 수 있다. 일 실시예에 있어서, 제3 프로그램 상태에 대하여 검증 독출 동작이 수행될 수 있다. 메모리 셀들이 정상적으로 제3 프로그램 상태로 프로그램되었다고 판단되는 경우, 다른 메모리 셀들 또한 정상적으로 제1 프로그램 상태 또는 제2 프로그램 상태로 프로그램되었다고 판단할 수 있다. 그러나, 이에 제한되는 것은 아니며, 다른 실시예에 있어서, 제1 내지 제3 프로그램 상태 각각에 대하여 검증 독출 동작이 수행될 수도 있다.
Meanwhile, after the memory cells are programmed into the third program state, a verify read operation may be performed. It may be determined whether the memory cells are normally programmed through the verify read operation. In one embodiment, a verify read operation may be performed on the third program state. When it is determined that the memory cells are normally programmed into the third programmed state, it may be determined that other memory cells are also normally programmed into the first programmed state or the second programmed state. However, the present invention is not limited thereto, and in another embodiment, a verify read operation may be performed for each of the first to third program states.

도 23은 본 개시의 실시예에 따른 메모리 장치의 동작 방법의 일 예로서, 워드 라인에 인가되는 전압 펄스를 나타내는 파형이다. 23 is a waveform illustrating a voltage pulse applied to a word line as an example of a method of operating a memory device according to an embodiment of the present disclosure.

도 23에는, 메모리 셀이 2 비트의 데이터를 저장하는 멀티 비트 셀인 경우, 메모리 셀들이 제1 프로그램 상태(P1), 제2 프로그램 상태(P2) 및 제3 프로그램 상태(P3)가 차례로 프로그램되는 방법이 도시된다. 도23의 프로그램 방법은 도 22에 도시된 프로그램 방법과 유사하다. 다만, 도 23에서, 메모리 셀들을 제1 프로그램 상태로 프로그램하는 제1 프로그램 구간(P1 PGM)의 검증독출 단계(VF)에서 메모리 셀들이 프로그램 속도에 따른 복수의 셀 그룹으로 구분되고, 상기 메모리 셀들 각각에 대응하는 셀 그룹이 레지스터에 저장될 수 있다. 예컨대, 복수의 셀 그룹은 제1 내지 제3 셀 그룹을 포함하고, 제1 셀 그룹은 패스트 셀, 제2 셀 그룹은 노멀 셀, 제3 셀 그룹은 슬로우 셀로 지정될 경우, 상기 메모리 셀들이 패스트 셀, 노멀 셀 및 슬로우 셀 중 어떤 셀에 해당하는지에 대한 정보가 저장될 수 있다. 예를 들어, 상기 정보는 프로그램 제어부(예컨대 도 1의 160) 내부에 구비되는 레지스터에 저장될 수 있다. 23 illustrates a method in which memory cells are sequentially programmed in a first programmed state P1, a second programmed state P2, and a third programmed state P3 when the memory cell is a multi-bit cell storing 2-bit data. this is shown The program method of FIG. 23 is similar to the program method shown in FIG. However, in FIG. 23, in the verify read step (VF) of the first program period (P1 PGM) for programming the memory cells to the first program state, the memory cells are divided into a plurality of cell groups according to the program speed, and the memory cells are Cell groups corresponding to each may be stored in registers. For example, if the plurality of cell groups include first to third cell groups, the first cell group is designated as fast cells, the second cell group is designated as normal cells, and the third cell group is designated as slow cells, the memory cells are fast. Information about which cell among a cell, a normal cell, and a slow cell corresponds to may be stored. For example, the information may be stored in a register provided inside the program control unit (eg, 160 of FIG. 1 ).

이에 따라, 제2 프로그램 구간(P2 PGM) 및 제3 프로그램 구간(P3 PGM) 에서는, 1차 프로그램 전압(Vpgm12, Vpg12)이 인가된 후, 검증 독출 단계 없이, 상기 제1 프로그램 구간(P1 PGM)에서 제1 셀 그룹, 예컨대 패스트 셀로 분류된 메모리 셀들을 제외한 다른 메모리 셀들에 대하여 제2 프로그램 전압(Vpgm22, Vpgm23)을 인가함으로써 재프로그램할 수 있다.
Accordingly, in the second program period P2 PGM and the third program period P3 PGM, after the first program voltages Vpgm12 and Vpg12 are applied, the first program period P1 PGM without a verification read step. Reprogramming may be performed by applying the second program voltages Vpgm22 and Vpgm23 to memory cells other than the first cell group, eg, memory cells classified as fast cells.

도 24는 본 개시의 실시예에 따른 프로그램 방법의 다른 예를 나타내는 흐름도이고, 도 25a 내지 도 25c는 도 24의 흐름도에서, 각 단계에 따른 워드라인의 문턱 전압 산포를 나타내는 그래프이다. 도 24의 프로그램 방법은, 본 개시의 실시예에 따른 프로그램 방법에 있어서, 인접한 워드라인간의 커플링 효과를 감소시키기 위한 프로그램 방법을 나타낸다. 도 24의 프그램 방법은 도 5a 내지 도 19의 프로그램 방법의 변형례이다. 따라서 도 5a내지 도 19를 참조하여 설명한 내용은 본 실시예에 적용될 수 있다.24 is a flowchart illustrating another example of a program method according to an embodiment of the present disclosure, and FIGS. 25A to 25C are graphs illustrating threshold voltage distribution of word lines according to respective steps in the flowchart of FIG. 24 . The program method of FIG. 24 shows a program method for reducing a coupling effect between adjacent word lines in the program method according to an embodiment of the present disclosure. The program method of FIG. 24 is a modified example of the program method of FIGS. 5A to 19 . Therefore, the contents described with reference to FIGS. 5A to 19 may be applied to the present embodiment.

도 24 를 참조하면, n번째(n은 정수) 워드라인(WLn)의 메모리 셀들에 대하여 초기 프로그램(primary program)(1st PGM)을 수행한다(S610). 이때, 초기 프로그램 단계(1st PGM)는 메모리 셀들에 1차 프로그램 전압을 인가하는 단계를 포함할 수 있다. 이에 따라, 1차 프로그램 전압에 따른 메모리 셀들의 원-샷 산포가 형성될 수 있다. 이때, 상기 1차 프로그램 전압은, 메모리 셀들에 저장되는 멀티 비트 데이터에 대응하는 복수의 프로그램 상태 각각에 대응하는 복수의 제1 프로그램 전압을 포함할 수 있다. 일 실시예에 있어서, 상기 복수의 제1 프로그램 전압은 상기 n번째 워드라인의 메모리 셀들 중 상대적으로 프로그램 속도가 빠른 m개 미만의 메모리 셀들이 각각 대응하는 프로그램 상태로 프로그램되도록 설정된 전압일 수 있다. 상기 초기 프로그램 단계(1st PGM)는, 상기 n번째 워드라인(WLn)에 상기 복수의 제1 프로그램 전압을 차례로 인가하는 단계를 포함할 수 있다. 이에 따라, 도 25a에 도시된 바와 같이, 각각의 프로그램 상태, 예컨대 제1 내지 제3 프로그램 상태(P1, P2, P3)에 대한 메모리 셀들의 원-샷 산포가 형성될 수 있다. Referring to FIG. 24 , an initial program (1st PGM) is performed on the memory cells of the n-th (n is an integer) word line WLn (S610). In this case, the initial program step (1st PGM) may include applying a first program voltage to the memory cells. Accordingly, one-shot distribution of memory cells according to the first program voltage may be formed. In this case, the first program voltage may include a plurality of first program voltages corresponding to each of a plurality of program states corresponding to multi-bit data stored in memory cells. In one embodiment, the plurality of first program voltages may be a voltage set to program less than m memory cells having a relatively high program speed among the memory cells of the nth word line to a corresponding program state. The initial programming step (1st PGM) may include sequentially applying the plurality of first program voltages to the n-th word line WLn. Accordingly, as shown in FIG. 25A , one-shot distribution of memory cells for each program state, for example, the first to third program states P1, P2, and P3 may be formed.

이후, n+1 번째 워드라인(WLn+1)의 메모리 셀들에 대하여 초기 프로그램(1st PGM)을 수행한다(S620). n+1번째 워드라인(WLn+1)은 n번째 워드라인(WLn)에 인접하게 배치되는 워드라인이며, n번째 워드라인(WLn)보다 프로그램이 나중에 수행되는 워드라인일 수 있다. n+1 번째 워드라인(WLn+1)에, 대응하는 복수의 제1 프로그램 전압이 인가될 수 있으며, n+1 번째 워드라인에 대하여 도 25a에 도시된 바와 같이, 각각의 프로그램 상태에 대한 n+1 번째 워드라인(WLn+1)의 메모리 셀들의 원-샷 산포가 형성될 수 있다. 이때, n+1번째 워드라인(WLn+1)의 메모리 셀들을 프로그램함에 따라 n번째 워드라인(WLn)의 메모리 셀들에 커플링 효과가 발생할 수 있다. 이에 따라, 도 25b에 도시된 바와 같이, n번째 워드라인(WLn)의 메모리 셀들의 각 프로그램 상태에 대응하는 원-샷 산포가 우측으로 이동할 수 있다. Thereafter, an initial program (1st PGM) is performed on the memory cells of the n+1th word line (WLn+1) (S620). The n+1 th word line WLn+1 is a word line disposed adjacent to the n th word line WLn, and may be a word line in which a program is executed later than the n th word line WLn. A plurality of corresponding first program voltages may be applied to the n+1 th word line WLn+1, and as shown in FIG. 25A for the n+1 th word line, n for each program state. A one-shot distribution of memory cells of the +1 th word line WLn+1 may be formed. In this case, as the memory cells of the n+1 th word line WLn+1 are programmed, a coupling effect may occur in the memory cells of the n th word line WLn. Accordingly, as shown in FIG. 25B , the one-shot distribution corresponding to each program state of the memory cells of the n-th word line WLn may move to the right.

다음으로, n번째 워드라인(WLn)의 메모리 셀들에 대하여 후기 프로그램(secondary program) (2nd PGM)을 수행한다(S630). 후기 프로그램 단계(2nd PGM)는, 검증 독출을 통하여, n번째 워드라인(WLn)의 메모리 셀들을 프로그램 속도에 기초하여 문턱 전압 산포 폭이 서로 다른 복수의 셀 그룹으로 구분하는 단계(VF) 및 복수의 셀 그룹간의 문턱 전압 차이에 기초하여 설정되는 복수의 2차 프로그램 전압을 기초로, 상기 복수의 셀 그룹 중 일부 셀 그룹, 예컨대 상기 복수의 셀 그룹 중 타겟 상태로 프로그램된 제1 셀 그룹을 제외한 다른 셀 그룹들을 재프로그램하는 단계(PGM2)를 포함할 수 있다. 일 실시예에 있어서, 상기 복수의 셀 그룹 중 문턱 전압 산포가 가장 높은 제1 셀 그룹은, m개 또는 m개 이상의 메모리 셀들을 포함할 수 있다. Next, a secondary program (2nd PGM) is performed on the memory cells of the n-th word line WLn (S630). The latter programming step (2nd PGM) includes a step (VF) of dividing the memory cells of the n-th word line (WLn) into a plurality of cell groups having different threshold voltage distribution widths based on the program speed through a verification read; Based on a plurality of secondary program voltages set based on a difference in threshold voltage between cell groups of , excluding some cell groups among the plurality of cell groups, for example, a first cell group programmed to a target state among the plurality of cell groups. A step of reprogramming other cell groups (PGM2) may be included. In one embodiment, a first cell group having the highest threshold voltage distribution among the plurality of cell groups may include m or more than m memory cells.

일 실시예에 있어서, 후기 프로그램 단계(2nd PGM)는, n번째 워드라인(WLn)의 메모리 셀들이 대응하는 프로그램 상태로 정상적으로 프로그램되었는지를 판단하는 검증 독출 단계를 더 포함할 수 있다. In one embodiment, the latter programming step (2nd PGM) may further include a verification reading step of determining whether the memory cells of the n-th word line (WLn) are normally programmed to a corresponding programmed state.

본 실시예에 따르면, 상기 n번째 워드라인(WLn)에 대한 프로그램 수행 시, 후기 프로그램(2nd PGM) 수행 전에 상기 n+1 번째 워드라인(WLn+1)의 메모리 셀들에 초기 프로그램(1st PGM)을 수행함으로써, 커플링 효과가 미리 반영된 n번째 워드라인(WLn)의 메모리 셀들의 원-샷 산포를 기초로 n번째 워드라인(WLn)의 메모리 셀들에 대하여 후기 프로그램(2nd PGM)을 수행함으로써, 워드라인간 커플링 효과에 따른 각 프로그램 상태들의 문턱 전압 산포 이동을 방지할 수 있다.
According to this embodiment, when performing a program on the n-th word line WLn, an initial program (1st PGM) is performed on memory cells of the n+1-th word line WLn+1 before performing a later program (2nd PGM). By performing a later program (2nd PGM) on the memory cells of the n-th word line WLn based on the one-shot distribution of the memory cells of the n-th word line WLn in which the coupling effect is reflected in advance, It is possible to prevent a shift in distribution of threshold voltages of respective program states due to coupling effects between word lines.

도 26a 및 도 26b는 워드라인의 메모리 셀들에 대한 초기 프로그램 단계 및 후기 프로그램단계를 나타내는 도면이다. 메모리 셀들에 2 비트의 데이터가 저장되며, 메모리 셀들이 제1 내지 제3 프로그램 상태로 프로그램되는 경우를 가정하여 설명하기로 한다. 26A and 26B are diagrams illustrating an initial programming step and a later programming step for memory cells of a word line. A case in which 2-bit data is stored in memory cells and memory cells are programmed to first through third program states will be described.

도 26a 및 도 26b를 참조하면, 워드라인(예컨대 n번째 워드라인(WLn))의 메모리 셀들에 제1 내지 제3 프로그램 상태 각각에 대응하는 제1 프로그램 전압이 차례로 인가됨으로써, 제1 내지 제3 프로그램 상태 각각에 대응하는 초기 프로그램(PGM11, PGM12, PGM13)(1st PGM)이 수행될 수 있다. Referring to FIGS. 26A and 26B , first program voltages corresponding to first to third program states are sequentially applied to memory cells of a word line (eg, an n-th word line WLn), so that first to third program voltages are sequentially applied. Initial programs (PGM11, PGM12, PGM13) (1st PGM) corresponding to each program state may be executed.

이후, 워드라인의 메모리 셀들에, 후기 프로그램(2nd PGM)이 수행될 수 있다. 이때, 도 26a에 도시된 바와 같이, 각 프로그램 상태에 대한 검증 독출 단계 및 재프로그램 단계가 차례로 수행될 수 있다. 예컨대, 제1 프로그램 상태에 대한 검증독출 단계(VF_1) 및 재프로그램 단계(예컨대 제2 프로그램 단계(PGM21))가 수행됨으로서, 제1 프로그램 상태로 프로그램되는 메모리 셀들에 대한 프로그램이 완료되고, 이후, 제2 프로그램 상태에 대한 검증독출 단계(VF_2) 및 재프로그램 단계(예컨대 제2 프로그램 단계(PGM22))가 수행됨으로서, 제2 프로그램 상태로 프로그램되는 메모리 셀들에 대한 프로그램이 완료되고, 마지막으로, 제3 프로그램 상태에 대한 검증독출 단계(VF_3) 및 재프로그램 단계(예컨대 제2 프로그램 단계(PGM23))가 수행됨으로서, 제3 프로그램 상태로 프로그램되는 메모리 셀들에 대한 프로그램이 완료될 수 있다. Thereafter, a later program (2nd PGM) may be performed on the memory cells of the word line. At this time, as shown in FIG. 26A, a verification read step and a reprogramming step for each program state may be sequentially performed. For example, by performing the verify read step (VF_1) and the reprogramming step (eg, the second program step (PGM21)) for the first program state, the programming of the memory cells to be programmed in the first program state is completed, and then, By performing the verification read step (VF_2) and the reprogramming step (eg, the second program step (PGM22)) for the second program state, the programming of the memory cells to be programmed in the second program state is completed, and finally, the second program step (PGM22) is performed. By performing the verification read step (VF_3) and the reprogramming step (eg, the second program step (PGM23)) for the third program state, programming of the memory cells programmed in the third program state may be completed.

다른 실시예로서, 도 26 b에 도시된 바와 같이, 후기 프로그램 단계(2nd PGM)에서, 각 프로그램 상태에 대한 검증 독출 단계(VF_1, VF2, VF3)가 모두 수행된 후, 각 프로그램 상태에 대한 재프로그램 단계(예컨대 각 프로그램 상태에 대한 제2 프로그램 단계(PGM21, PGM22, PGM3)가 수행될 수 있다.
As another embodiment, as shown in FIG. 26B , in the latter program stage (2nd PGM), after all of the verification read steps (VF_1, VF2, and VF3) for each program state are performed, a readout for each program state is performed. Program steps (eg, second program steps PGM21, PGM22, and PGM3 for each program state) may be performed.

도 27은 본 개시의 실시예에 따른 프로그램 방법의 다른 예를 나타내는 흐름도이다. 도 27의 프로그램 방법은, 도 25a 내지 25c에 따른 프로그램 방법과 유사하다. 다만, 도 14a 도시된 바와 같이, 메모리 셀들을 프로그램 속도에 따른 복수의 셀 그룹으로 구분하는 단계에서, 메모리 셀들을 적어도 5개의 셀 그룹으로 구분할 경우, 도 27에 도시된 바와 같이, 후기 프로그램 단계는 복수회의 검증 독출 단계 및 복수회의 재프로그램 단계를 포함할 수 있다.
27 is a flowchart illustrating another example of a program method according to an embodiment of the present disclosure. The programming method of FIG. 27 is similar to the programming method according to FIGS. 25A to 25C. However, as shown in FIG. 14A, in the step of dividing memory cells into a plurality of cell groups according to the program speed, when the memory cells are divided into at least 5 cell groups, as shown in FIG. 27, the later programming step A plurality of verification read steps and a plurality of reprogramming steps may be included.

도 28은 본 개시의 실시예에 따른 메모리 셀 어레이의 프로그램 방법을 나타낸다. 일 실시예에 있어서, 메모리 셀 어레이는 2차원 메모리 셀 어레이를 포함할 수 있다. 28 illustrates a method of programming a memory cell array according to an embodiment of the present disclosure. In one embodiment, the memory cell array may include a two-dimensional memory cell array.

도 28을 참조하면, 메모리 셀 어레이는 복수의 워드 라인, 예컨대 제1 내지 제8 워드 라인(WL1~WL8)을 포함하는 복수의 메모리 블록을 포함할 수 있다. 일 실시예에 있어서, 제1 내지 제8 워드 라인(WL1~WL8)은 차례 인접하게 배치될 수 있으며, 제1 워드라인(WL1)부터 제8 워드라인(WL8)의 순서로 프로그램이 수행될 수 있다. Referring to FIG. 28 , the memory cell array may include a plurality of memory blocks including a plurality of word lines, for example, first to eighth word lines WL1 to WL8. In one embodiment, the first to eighth word lines WL1 to WL8 may be sequentially disposed adjacent to each other, and a program may be performed in order from the first word line WL1 to the eighth word line WL8. there is.

이때, 인접한 워드라인에 대하여 프로그램이 수행됨에 따라 발생하는 커플링 효과를 감소시키기 위하여, 도 24를 참조하여 전술한 바와 같이, 하나의 워드 라인에 대하여 프로그램 수행시, 상기 워드라인 이후에 프로그램되는 인접한 워드라인에 대하여 초기 프로그램(1st PGM)을 수행한 후, 상기 워드 라인에 대하여 후기 프로그램(2nd PGM)을 수행할 수 있다. At this time, in order to reduce the coupling effect that occurs as a program is performed on an adjacent word line, as described above with reference to FIG. 24, when a program is performed on one word line, an adjacent After an initial program (1st PGM) is performed on a word line, a later program (2nd PGM) may be performed on the word line.

예컨대, 제1 워드 라인(WL1)의 메모리 셀들에 대하여 초기 프로그램(1st PGM)을 수행하고, 제2 워드라인(WL2)의 메모리 셀들에 대하여 초기 프로그램(1st PGM)을 수행할 수 있다. 이후, 제1 워드라인(WL1)의 메모리 셀들에 대하여 후기 프로그램(2nd PGM)을 수행함으로써, 제1 워드라인(WL1)의 메모리 셀들에 대한 프로그램을 완료할 수 있다. For example, initial programming (1st PGM) may be performed on the memory cells of the first word line WL1, and initial programming (1st PGM) may be performed on the memory cells of the second word line WL2. Thereafter, the programming of the memory cells of the first word line WL1 may be completed by performing a later program (2nd PGM) on the memory cells of the first word line WL1.

다음으로, 제3 워드라인(WL3)에 대하여 초기 프로그램(1st PGM)을 수행한 후, 제2 워드라인(WL2)에 대하여 후기 프로그램(2nd PGM)을 수행함으로써, 제2 워드라인(WL2)의 메모리 셀들에 대한 프로그램을 완료할 수 있다. Next, after the initial program (1st PGM) is performed on the third word line (WL3) and the later program (2nd PGM) is performed on the second word line (WL2), the second word line (WL2) A program for memory cells may be completed.

이러한 방법으로, 차례로 모든 워드라인들, 예컨대 제1 내지 제8 워드 라인(WL1~WL8)에 대하여 프로그램을 수행할 수 있다.
In this way, programming may be sequentially performed on all word lines, for example, the first to eighth word lines WL1 to WL8.

도 29는 워드 라인 별 프로그램 속도를 나타내는 그래프이다.29 is a graph showing program speed for each word line.

가로축은 워드 라인 번호, 세로축은 각 워드 라인에 메모리 셀들을 소정의 상태, 예컨대 프리 프로그램 상태로 프로그램하기 위한, 원-샷 전압 펄스를 인가하였을 때, 워드 라인별 문턱 전압을 나타낸다. 문턱 전압이 높을수록 프로그램 속도가 빠르다고 판단할 수 있다. The horizontal axis represents the word line number, and the vertical axis represents the threshold voltage for each word line when a one-shot voltage pulse is applied to program memory cells to a predetermined state, for example, a preprogram state. It can be determined that the higher the threshold voltage, the faster the program speed.

도 29에 도시된 바와 같이, 프로그램 속도는 워드 라인별로 차이가 있을 수 있다. 또한, 동일한 워드 라인이라 할지라도, 프로그램 싸이클에 따라 프로그램 속도가 달라질 수 있다. 도 29에 도시된 바와 같이, 프로그램 싸이클, 즉 프로그램 및 소거 횟수가 증가할수록, 워드 라인의 프로그램 속도가 증가할 수 있다. As shown in FIG. 29, the program speed may differ for each word line. Also, even for the same word line, the program speed may vary depending on the program cycle. As shown in FIG. 29 , the program speed of the word line may increase as the number of program cycles, i.e., program and erase counts, increases.

워드 라인별 프로그램 속도의 차이가 크면, 프로그램된 메모리 셀들의 각 프로그램 상태의 산포 폭이 증가할 수 있다. 따라서, 프로그램 속도의 보상이 필요하다.If the difference in programming speed for each word line is large, a distribution width of each program state of programmed memory cells may increase. Therefore, compensation of program speed is necessary.

도 30은 본 개시의 실시예에 따른 메모리 장치의 동작 방법을 나타내는 흐름도이다. 30 is a flowchart illustrating a method of operating a memory device according to an exemplary embodiment of the present disclosure.

도 30을 참조하면, 메모리 장치(도 1의 100)는 외부, 예컨대 메모리 컨트롤러로부터 멀티 비트 데이터 및 프로그램 명령을 수신할 수 있다(S710). 메모리 장치는 프로그램이 수행될 어드레스에 대응하는 워드라인의 프로그램 속도를 감지할 수 있다(S720). Referring to FIG. 30 , the memory device ( 100 of FIG. 1 ) may receive multi-bit data and a program command from an external device, for example, a memory controller (S710). The memory device may detect a program speed of a word line corresponding to an address where a program is to be executed (S720).

일 실시예에 있어서, 메모리 장치는 프로그램이 수행될 워드 라인에 프리 프로그램 전압을 인가하고, 프리 프로그램 상태로 프로그램된 오프셀 개수를 카운팅하여 상기 워드 라인의 프로그램 속도를 감지할 수 있다. In one embodiment, the memory device may sense a program speed of the word line by applying a pre-program voltage to a word line on which a program is to be executed and counting the number of off-cells programmed in a pre-program state.

메모리 장치는 감지된 워드 라인의 프로그램 속도를 반영하여 워드 라인별 프로그램 속도를 보상하여 프로그램 전압들의 전압 레벨을 설정할 수 있다(S730). 예를 들어, 워드 라인의 프로그램 속도가 기준 값과 다르면, 감지된 프로그램 속도와 기준 값의 차이에 대응하여 설정된 보상 전압이 프로그램 전압들의 디폴트 레벨에 더해질 수 있다. The memory device may set the voltage levels of the program voltages by reflecting the detected program speed of the word line and compensating for the program speed of each word line (S730). For example, if the program speed of the word line is different from the reference value, a compensation voltage set corresponding to the difference between the detected program speed and the reference value may be added to the default level of the program voltages.

한편, 도 22에 도시된 바와 같이, 프로그램 전압들의 전압 레벨은, 각 프로그램 상태의 1차 프로그램 전압(Vpgm11, Vpgm12, Vpgm13)을 기초로 설정되며, 제2 프로그램 상태에 대한 1차 프로그램 전압(Vpgm12)의 전압 레벨은 제1 프로그램 상태에 대한 1차 프로그램 전압(Vpgm11)에 기초하여 설정될 수 있다. 따라서, 제1 프로그램 상태에 대한 1차 프로그램 전압(Vpgm11)의 전압 레벨 설정 시, 상기 프로그램 속도에 따른 보상 전압을 반영함으로써, 워드 라인별 프로그램 속도를 보상한 프로그램 전압들의 전압 레벨을 설정할 수 있다. 이에 따라 각 프로그램 상태 각각에 대한 프로그램 전압 셋이 설정될 수 있다. 프로그램 전압 셋은 1차 프로그램 전압 및 복수의 2차 프로그램 전압을 포함할 수 있다. Meanwhile, as shown in FIG. 22, the voltage levels of the program voltages are set based on the first program voltages Vpgm11, Vpgm12, and Vpgm13 for each program state, and the first program voltage Vpgm12 for the second program state. The voltage level of ) may be set based on the primary program voltage Vpgm11 for the first program state. Accordingly, when setting the voltage level of the first program voltage Vpgm11 for the first program state, the voltage level of the program voltages compensated for the program speed for each word line may be set by reflecting the compensation voltage according to the program speed. Accordingly, a program voltage set for each program state may be set. The program voltage set may include a first program voltage and a plurality of second program voltages.

이후, 프로그램 속도가 반영된 프로그램 전압들의 전압 레벨에 따라 각 프로그램 상태에 대한 프로그램이 수행될 수 있다. 제n 프로그램 전압 셋을 기초로 메모리 셀들을 제n 프로그램 상태로 프로그램할 수 있다(S740). 예컨대, 메모리 셀들이 제1 내지 제3 프로그램 상태로 프로그램될 경우, 제1 내지 제3 프로그램 전압 셋을 기초로 메모리 셀들이 각각 제1 내지 제3 프로그램 상태로 프로그램될 수 있다.
Thereafter, a program for each program state may be performed according to the voltage levels of the program voltages in which the program speed is reflected. The memory cells may be programmed into an n-th program state based on the set of n-th program voltages (S740). For example, when memory cells are programmed in first to third program states, the memory cells may be programmed in first to third program states based on first to third program voltage sets.

도 31은 본 개시의 실시예에 따른 워드 라인의 프로그램 속도 감지 및 프로그램 전압 레벨 보상 방법을 설명하는 도면이다.31 is a diagram explaining a method of detecting a program speed of a word line and compensating for a program voltage level according to an embodiment of the present disclosure.

도 31을 참조하면, 워드 라인의 프로그램 속도를 감지하기 위하여, 메모리 장치는 워드 라인에 원-샷의 프리 프로그램 전압을 인가함으로써, 워드 라인의 메모리 셀들을 프리 프로그램 상태(P0)로 프로그램할 수 있다. 이때, 메모리 장치는, 프리 프로그램 상태(P0)로 프로그램된 메모리 셀들, 즉 프리 프로그램 상태(P0)에 대한 오프셀들의 개수를 카운팅함으로써, 워드 라인의 프로그램 속도를 감지할 수 있다. Referring to FIG. 31 , in order to detect the program speed of the word line, the memory device may apply a one-shot pre-program voltage to the word line, thereby programming the memory cells of the word line to a pre-program state P0. . In this case, the memory device may detect the program speed of the word line by counting the number of memory cells programmed to the pre-program state P0, that is, the number of offcells for the pre-program state P0.

프리 프로그램 상태(P0)는, 소거 상태(E)와 제1 프로그램 상태(P1)의 사이에 위치하는 상태일 수 있다. 상기 프리 프로그램 상태(P0)는 메모리 셀들에 저장되는 멀티 비트 데이터에 대응하는 상태는 아니며, 워드 라인의 프로그램 속도를 검출하기 위한 임의의 상태일 수 있다. The pre-program state P0 may be a state located between the erase state E and the first program state P1. The pre-program state P0 is not a state corresponding to multi-bit data stored in memory cells, and may be an arbitrary state for detecting a program speed of a word line.

카운팅된 프리 프로그램 상태의 오프셀의 개수는 워드 라인의 프로그램 속도에 대응할 수 있다. 오프셀의 개수가 많을수록 프로그램 속도가 빠를 수 있다. 메모리 장치는 오프셀의 개수를 기초로 프로그램 속도를 판단하고, 프로그램 전압들의 전압 레벨 설정 시 프로그램 속도에 대응하는 보상 전압을 적용할 수 있다. The counted number of offcells in the pre-program state may correspond to the program speed of the word line. The larger the number of offcells, the faster the program speed. The memory device may determine a program speed based on the number of off cells, and may apply a compensation voltage corresponding to the program speed when setting voltage levels of the program voltages.

일 실시예에 있어서, 메모리 장치, 예컨대 프로그램 제어부(도 1의 160)는 오프셀의 개수에 따른 보상 전압을 저장한 테이블을 포함할 수 있다. 메모리 장치는 상기 테이블을 참조로, 카운팅된 오프셀 개수에 따른 보상 전압을 선택하고, 상기 보상 전압을 프로그램 전압 레벨 설정 시 적용할 수 있다.In one embodiment, a memory device, for example, a program controller (160 in FIG. 1 ) may include a table storing compensation voltages according to the number of off cells. The memory device may select a compensation voltage according to the counted number of offcells with reference to the table, and apply the compensation voltage when setting a program voltage level.

예를 들어, 도 31에 도시된 바와 같이, 프로그램의 시작 전압 설정 시 보상 전압이 적용될 수 있다. 예컨대, 프로그램 시작 전압은, 제1 프로그램 상태의 1차 프로그램 전압(Vpgm11)일 수 있다. 디폴트 레벨의 프로그램 시작 전압(Vdf1)에 워드라인의 프로그램 속도에 따른 보상 전압(VoffWL)이 더해져 제1 프로그램 상태의 1차 프로그램 전압(Vpgm11)의 전압 레벨이 설정될 수 있다.
For example, as shown in FIG. 31 , a compensation voltage may be applied when a program start voltage is set. For example, the program start voltage may be the primary program voltage Vpgm11 in the first program state. The voltage level of the primary program voltage Vpgm11 in the first program state may be set by adding the compensation voltage VoffWL according to the program speed of the word line to the program start voltage Vdf1 of the default level.

도 32는 본 개시의 실시예에 따른 워드 라인의 프로그램 속도를 반영하여 프로그램 전압 레벨을 설정하는 방법을 나타내는 도면이다.32 is a diagram illustrating a method of setting a program voltage level by reflecting a program speed of a word line according to an embodiment of the present disclosure.

도 32를 참조하면, 프리 프로그램 단계(P0 PGM)에서, 메모리 셀들에 프리 프로그램 전압이 인가되고, 검증 독출을 통해 프리 프로그램 상태의 오프셀 개수를 카운팅 함으로써, 워드 라인의 프로그램 속도가 감지될 수 있다. 이후, 각 프로그램 단계(P1 PGM, P2 PGM, P3 PGM)에서, 각각의 프로그램 단계에 대응하는 프로그램 전압 셋 설정시 상기 보상 전압을 적용할 수 있다. 예컨대, 각 프로그램 단계의 제1 프로그램 전압(Vpgm11, Vpgm12, Vpgm13) 설정시 상기 보상 전압이 적용될 수 있다.
Referring to FIG. 32 , in the pre-program step P0 PGM, a pre-program voltage is applied to memory cells, and the number of off-cells in a pre-program state is counted through a verification read, so that the program speed of the word line can be sensed. . Thereafter, in each program step (P1 PGM, P2 PGM, P3 PGM), the compensation voltage may be applied when setting a set of program voltages corresponding to each program step. For example, when setting the first program voltages Vpgm11, Vpgm12, and Vpgm13 in each program step, the compensation voltage may be applied.

도 33a 내지 도 33c는 본 개시의 실시예에 따른 프로그램 방법의 단계별 워드라인의 문턱 전압 산포를 나타내는 그래프이다.33A to 33C are graphs illustrating threshold voltage distributions of word lines in each step of a program method according to an embodiment of the present disclosure.

도 33a 내지 도 33c에 도시된 프로그램 방법은 도 24의 프로그램 방법의 변형례이다. 도 33a 및 도 33b를 참조하면, n번째 워드라인(WLn)의 메모리 셀들에 대하여 초기 프로그램(1st PGM)이 수행되고, 이후, n+1 번째 워드라인(WLn)의 메모리 셀들에 대하여 초기 프로그램(1st PGM)이 수행될 수 있다. 이때, 초기 프로그램 단계는 프리 프로그램 단계(PGM0), 프리 독출 검증 단계(VF0) 및 메모리 셀들에 대하여 각 프로그램 단계에 대응하는 1차 프로그램 전압을 인가하는 단계(PGM1)를 포함할 수 있다. 프리 프로그램 단계(PGM0)에서, 메모리 셀들에 프리 프로그램 전압을 인가하고, 프리 독출 검증 단계(VF0)에서, 프리 프로그램 상태에 대한 오프셀의 개수를 카운팅함으로써, 워드라인의 프로그램 속도를 감지할 수 있다. 감지된 워드라인의 프로그램 속도에 따른 보상 전압을 기초로 각 프로그램 단계에 대한 프로그램 전압 셋의 전압 레벨을 설정할 수 있다. 예컨대, 각 프로그램 단계에 대응하는 1차 프로그램 전압의 전압 레벨에 보상 전압이 더해질 수 있다. 이후, 프리 프로그램 전압이 인가된 메모리 셀들에 대하여 워드라인의 프로그램 속도에 따른 보상 전압이 더해진 각 프로그램 단계에 따른 1차 프로그램 전압을 인가함으로써, 프로그램 상태들 각각에 대응하는 원-샷 산포가 형성될 수 있다. The program method shown in FIGS. 33A to 33C is a modified example of the program method shown in FIG. 24 . 33A and 33B, an initial program (1st PGM) is performed on the memory cells of the n-th word line WLn, and then an initial program (1st PGM) on the memory cells of the n+1-th word line WLn. 1st PGM) may be performed. In this case, the initial program step may include a pre-program step (PGM0), a pre-read verify step (VF0), and a step of applying a primary program voltage corresponding to each program step (PGM1) to memory cells. In the pre-program step PGM0, the pre-program voltage is applied to the memory cells, and in the pre-read verify step VF0, the number of off-cells in the pre-program state is counted, thereby detecting the program speed of the word line. . A voltage level of the program voltage set for each program step may be set based on the compensation voltage according to the detected program speed of the word line. For example, a compensation voltage may be added to the voltage level of the first program voltage corresponding to each program stage. Thereafter, a one-shot distribution corresponding to each of the programmed states is formed by applying a primary program voltage according to each program stage to which a compensation voltage according to the program speed of the word line is added to the memory cells to which the pre-program voltage has been applied. can

이후, 도 33에 도시된 바와 같이, n번째 워드 라인(WLn)에 대하여 후기 프로그램(2nd PGM)을 수행함으로써, n번째 워드라인(WLn)의 메모리 셀들에 대하여 프로그램이 완료될 수 있다. 후기 프로그램 단계(2nd PGM)는, 검증 독출을 통하여, n번째 워드라인(WLn)의 메모리 셀들을 프로그램 속도에 기초하여 문턱 전압 산포 폭이 서로 다른 복수의 셀 그룹으로 구분하는 단계(VF) 및 복수의 셀 그룹간의 문턱 전압 차이에 기초하여 설정되는 복수의 2차 프로그램 전압을 기초로, 상기 복수의 셀 그룹 중 일부 셀 그룹, 예컨대 상기 복수의 셀 그룹 중 타겟 상태로 프로그램된 제1 셀 그룹을 제외한 다른 셀 그룹들을 재프로그램하는 단계(PGM2)를 포함할 수 있다. 이때, 상기 복수의 2차 프로그램 전압은 상기 복수의 그룹간의 문턱 전압 차이 및 상기 워드라인의 프로그램 속도에 따른 보상 전압에 기초하여 설정될 수 있다.
Thereafter, as shown in FIG. 33 , programming of the memory cells of the n-th word line WLn may be completed by performing the latter program (2nd PGM) on the n-th word line WLn. The latter programming step (2nd PGM) includes a step (VF) of dividing the memory cells of the n-th word line (WLn) into a plurality of cell groups having different threshold voltage distribution widths based on the program speed through a verification read; Based on a plurality of secondary program voltages set based on a difference in threshold voltage between cell groups of , excluding some cell groups among the plurality of cell groups, for example, a first cell group programmed to a target state among the plurality of cell groups. A step of reprogramming other cell groups (PGM2) may be included. In this case, the plurality of secondary program voltages may be set based on a difference in threshold voltage between the plurality of groups and a compensation voltage according to a program speed of the word line.

도 34는 본 개시의 실시예에 따른 메모리 장치의 동작 방법을 나타내는 흐름도이다. 34 is a flowchart illustrating a method of operating a memory device according to an exemplary embodiment of the present disclosure.

도 34를 참조하면, 메모리 셀들이 제N-1 프로그램 상태(N은 2이상의 정수)로 프로그램될 수 있다(S810). 제N-1 프로그램 상태는, 복수의 프로그램 상태들 중, 문턱 전압이 가장 높은 최상위 프로그램 상태를 제외한 프로그램 상태일 수 있다. Referring to FIG. 34 , memory cells may be programmed to an N−1th programmed state (N is an integer greater than or equal to 2) (S810). The N−1th program state may be a program state excluding the highest program state having the highest threshold voltage among a plurality of program states.

메모리 셀들이 제N-1 프로그램 상태로 프로그램된 후, 또는 제N-1 상태로 프로그램 되는 중에, 워드 라인의 프로그램 속도를 검출할 수 있다(S820). 일 실시예에 있어서, 제N-1 프로그램 상태에 대한 검증 독출 동작 시, 오프셀의 개수를 카운팅 함으로써, 프로그램 속도를 감지할 수 있다. 예컨대, 메모리 셀들에 대하여 1차 프로그램을 수행한 후, 메모리 셀들을 복수의 셀 그룹으로 구분할 때, 복수의 셀 그룹 중 문턱 전압 레벨이 가장 높은 제1 셀 그룹의 메모리 셀들의 개수를 카운팅함으로써, 워드 라인의 프로그램 속도를 검출할 수 있다. After the memory cells are programmed to the N−1 th program state or while being programmed to the N−1 th state, the program speed of the word line may be detected (S820). In an embodiment, during a verify read operation for the N−1 th program state, the program speed may be detected by counting the number of off cells. For example, when the memory cells are divided into a plurality of cell groups after performing the first program on the memory cells, the number of memory cells of the first cell group having the highest threshold voltage level among the plurality of cell groups is counted. The program speed of the line can be detected.

검출된 워드라인의 프로그램 속도에 따른 보상 전압을 기초로 제N 프로그램 상태에 대한 프로그램 전압, 예컨대 제N 프로그램 전압 셋의 전압 레벨을 설정할 수 있다(S830). 다시 말해, 제N-1 프로그램 상태에 대응하는 워드라인의 프로그램 속도에 따른 보상 전압이 제N 프로그램 전압 셋에 반영될 수 있다. A program voltage for an Nth program state, for example, a voltage level of an Nth program voltage set may be set based on the compensation voltage according to the program speed of the detected word line (S830). In other words, the compensation voltage according to the program speed of the word line corresponding to the N−1th program state may be reflected in the Nth program voltage set.

이에 따라, 제N-1 프로그램 상태에 대응하는 워드 라인의 프로그램 속도에 따른 보상 전압이 반영된 제N 프로그램 전압 셋을 기초로, 메모리 셀들을 제N 프로그램 상태로 프로그램할 수 있다(S840). Accordingly, the memory cells may be programmed into the Nth program state based on the Nth program voltage set in which the compensation voltage according to the program speed of the word line corresponding to the N−1th program state is reflected (S840).

일 실시예에 있어서, 도 34의 흐름도는, 도 30의 S730 단계 이후에 수행되는 동작 방법을 나타낸다. In one embodiment, the flowchart of FIG. 34 shows an operation method performed after step S730 of FIG. 30 .

전술한 도 30의 S720 단계 및 S730 단계에 따라, 메모리 셀들에 대한 프로그램 수행 전, 워드 라인의 프로그램 속도가 감지되고, 이에 따라 워드 라인의 프로그램 속도를 보상한 프로그램 전압 레벨이 설정될 수 있다. 이후, 도 34의 S810 단계 및 S840 단계에 따라, 각 프로그램 루프마다 워드라인의 프로그램 속도를 감지하고, 상기 프로그램 속도를 기초로 다음 프로그램 루프의 프로그램 전압에 반영할 수 있다. According to steps S720 and S730 of FIG. 30 described above, before performing programming on memory cells, the program speed of the word line may be detected, and accordingly, a program voltage level compensated for the program speed of the word line may be set. Thereafter, according to steps S810 and S840 of FIG. 34 , the program speed of the word line may be detected for each program loop, and the program speed may be reflected in the program voltage of the next program loop based on the program speed.

도 30을 참조하면, 메모리 장치는 메모리 셀들에 대한 프로그램 수행 전, 워드 라인의 프로그램 속도(예컨대, 초기 프로그램 속도)를 감지하고, 워드 라인별 프로그램 속도를 기초로 프로그램 전압들의 전압 레벨을 조절할 수 있다. 이에 따라, 워드 라인별 프로그램 속도가 보상될 수 있다. 그러나, 프로그램이 수행됨에 따라, 워드 라인의 프로그램 속도가 달라지고 프로그램 산포가 증가될 수 있다. 본 실시예에 따른 동작 방법에 따르면, 매 프로그램 루프마다 워드 라인의 프로그램 속도를 감지하고, 프로그램 속도에 따른 보상 전압을 다음 프로그램 루프의 프로그램 전압에 반영함으로써, 프로그램 산포 특성을 향상시킬 수 있다.
Referring to FIG. 30 , the memory device may detect a program speed (eg, an initial program speed) of a word line before performing programming on memory cells, and adjust voltage levels of program voltages based on the program speed for each word line. . Accordingly, the program speed for each word line may be compensated. However, as the program is executed, the program speed of the word line may change and the program distribution may increase. According to the operating method according to the present embodiment, program distribution characteristics can be improved by detecting the program speed of the word line in each program loop and reflecting the compensation voltage according to the program speed to the program voltage of the next program loop.

도 35는 프로그램 수행 중 워드 라인의 프로그램 속도 감지 방법을 나타내는 도면이다.35 is a diagram illustrating a method of detecting a program speed of a word line during program execution.

도 35는 도 5a 내지 도 19를 참조하여 전술한 본 개시의 실시예에 따른 프로그램 방법에 따라, 메모리 셀들을 프로그램 속도에 따른 복수의 셀 그룹으로 구분하여 프로그램할 때, 워드 라인의 프로그램 속도 감지 방법을 나타낸다.35 is a method for detecting a program speed of a word line when memory cells are divided into a plurality of cell groups according to program speeds and programmed according to the programming method according to the embodiment of the present disclosure described above with reference to FIGS. 5A to 19 . indicates

도 35를 참조하면, 메모리 셀들이 제1 프로그램 상태(P1)로 프로그램될 경우, 우선 1차 프로그램 전압(Vpgm11)이 메모리 셀들에 인가될 수 있다. 이때, 메모리 셀들의 일부, 예컨대 원-샷 산포의 상위 영역의 메모리 셀들은 제1 프로그램 상태(P1)의 타겟 산포에 포함될 수 있다. Referring to FIG. 35 , when memory cells are programmed to the first program state P1 , the first program voltage Vpgm11 may be applied to the memory cells. In this case, some of the memory cells, for example, memory cells in an upper region of the one-shot distribution may be included in the target distribution of the first program state P1.

메모리 셀들을 세 개의 셀 그룹으로 구분하기 위하여, 검증 독출이 수행될 수 있다. 이때, 제1 프로그램 상태(P1)에 대한 오프셀의 개수를 카운트하여, 워드 라인의 프로그램 속도를 감지할 수 있다. 예컨대, 제1 프로그램 상태(P1)의 오프셀은, 제1 셀 그룹(MCG1)에 포함되는 셀들일 수 있다. Verification read may be performed to divide the memory cells into three cell groups. At this time, the program speed of the word line may be sensed by counting the number of offcells for the first program state P1. For example, the off-cells in the first program state P1 may be cells included in the first cell group MCG1.

이후, 오프셀을 제외한 메모리 셀들, 예컨대 제2 셀 그룹(MCG2) 및 제3 셀 그룹(MCG3)의 메모리 셀들이 재프로그램되고, 이에 따라, 메모리 셀들이 모두 제1 프로그램 상태(P1)로 프로그램된 후, 메모리 셀들 중 일부가 제2 프로그램 상태(P2)로 프로그램될 수 있다. 이때, 제2 프로그램 상태(P2)에 대한 프로그램 전압 레벨이 설정될 수 있다. 제1 프로그램 상태(P1)를 프로그램 하던 중 감지된 프로그램 속도에 따른 보상 전압에 기초하여 제2 프로그램 상태(P2)에 대한 프로그램 전압들의 전압 레벨, 예컨대 제2 프로그램 전압 셋의 전압 레벨이 설정될 수 있다.Thereafter, memory cells other than the off-cells, for example, memory cells of the second cell group MCG2 and the third cell group MCG3 are reprogrammed. Accordingly, all of the memory cells are programmed to the first program state P1. Afterwards, some of the memory cells may be programmed to the second program state P2. At this time, a program voltage level for the second program state P2 may be set. The voltage level of the program voltages for the second program state P2, for example, the voltage level of the second program voltage set, may be set based on the compensation voltage according to the program speed detected during programming of the first program state P1. there is.

제1 프로그램 상태(P1)의 1차 프로그램 전압(Vpgm11)에 제2 프로그램 오프셋(VoffP2)이 더해져 제2 프로그램 상태(P2)의 1차 프로그램 전압(Vpgm12)이 설정될 수 있는데, 이때, 프로그램 속도에 따른 보상 전압(VoffWL)이 추가로 더해질 수 있다. 이에 따라, 제2 프로그램 상태(P2)의 프로그램 전압들의 전압 레벨에는, 제1 프로그램 상태(P1) 에 대한 프로그램 수행 시 감지된 워드 라인의 프로그램 속도가 반영될 수 있다. The first program voltage Vpgm12 of the second program state P2 may be set by adding the second program offset VoffP2 to the first program voltage Vpgm11 of the first program state P1. At this time, the program speed A compensation voltage VoffWL according to may be additionally added. Accordingly, the program speed of the word line sensed during the program execution of the first program state P1 may be reflected in the voltage levels of the program voltages of the second program state P2.

전술한 본 개시의 실시예에 따른 동작 방법, 다시 말해 프로그램 방법에 따르면, 매 프로그램 루프마다, 워드 라인의 프로그램 속도가 검출되고, 검출된 프로그램 속도는 다음 프로그램 루프의 프로그램 전압에 반영하여 프로그램을 수행함으로써, 각 프로그램 상태의 산포 특성이 향상될 수 있다.
According to the above-described operating method, that is, the program method, according to an embodiment of the present disclosure, the program speed of a word line is detected in every program loop, and the detected program speed is reflected in the program voltage of the next program loop to perform a program. By doing so, the distribution characteristics of each program state can be improved.

도 36은 본 개시의 실시예에 따른 메모리 장치의 동작 방법의 일 실시예를 나타낸다. 36 illustrates an embodiment of a method of operating a memory device according to an embodiment of the present disclosure.

도 36을 참조하면, 매 프로그램 루프마다, 워드 라인의 프로그램 속도가 감지될 수 있다. 메모리 셀이 2 비트의 데이터를 저장하는 멀티 레벨 셀일 경우, 메모리 셀은 제1 내지 제3 프로그램 상태(P1, P2, P3) 중 하나로 프로그램될 수 있다. Referring to FIG. 36 , the program speed of the word line may be detected in every program loop. When the memory cell is a multi-level cell storing 2-bit data, the memory cell may be programmed into one of first to third program states P1, P2, and P3.

메모리 셀들에 대하여 프로그램이 수행되기 전, 1차 프로그램 속도 감지(SPD1)가 수행될 수 있다. 1차 프로그램 속도 감지(SPD1)에 따른, 워드 라인의 프로그램 속도에 따라, 1차 프로그램 상태(P1)에 대응하는 프로그램 전압들의 전압 레벨, 예컨대, 1차 프로그램 상태(P1)의 1차 프로그램 전압(Vpgm11)이 조절될 수 있다. Prior to performing programming on memory cells, first program speed detection (SPD1) may be performed. Voltage levels of program voltages corresponding to the first program state P1, for example, the first program voltage ( Vpgm11) can be regulated.

이후, 제1 프로그램 상태(P1)에 대한 프로그램 수행 중, 검증 독출(VF) 단계에서 2차 프로그램 속도 감지(SPD2)가 수행되고, 2차 프로그램 속도 감지(SPD2)에 따른 워드 라인의 프로그램 속도에 따라, 제2 프로그램 상태(P2)에 대응하는 프로그램 전압들의 전압 레벨이 조절될 수 있다. 예컨대, 2차 프로그램 상태(P2)의 1차 프로그램 전압(Vpgm12)의 전압 레벨이 조절될 수 있다. Thereafter, during program execution for the first program state P1, secondary program speed detection (SPD2) is performed in the verification read (VF) step, and the program speed of the word line according to the secondary program speed detection (SPD2) is determined. Accordingly, voltage levels of program voltages corresponding to the second program state P2 may be adjusted. For example, the voltage level of the first program voltage Vpgm12 of the second program state P2 may be adjusted.

제2 프로그램 상태(P2)에 대한 프로그램 수행 중, 검증 독출(VF) 단계에서, 3차 프로그램 속도 감지(SPD3)가 수행될 수 있다. 3차 프로그램 속도 감지(SPD3)에 따른, 워드 라인의 프로그램 속도에 따라, 3차 프로그램 상태(P3)에 대응하는 프로그램 전압들의 전압 레벨이 조절될 수 있다. 에컨대, 제3 프로그램 상태(P3)의 1차 프로그램 전압(Vpgm13)의 전압 레벨이 조절될 수 있다.
During the execution of the program for the second program state P2, in the verification read step VF, the tertiary program speed detection SPD3 may be performed. Voltage levels of program voltages corresponding to the tertiary program state P3 may be adjusted according to the program speed of the word line according to the tertiary program speed detection SPD3. For example, the voltage level of the first program voltage Vpgm13 of the third program state P3 may be adjusted.

도 37은 본 개시의 실시예에 따른 메모리 장치의 동작 방법을 보다 상세하게 나타낸 흐름도이다.37 is a flowchart illustrating in detail a method of operating a memory device according to an exemplary embodiment of the present disclosure.

도 37을 참조하면, 워드 라인에 대한 1차 프로그램 속도 감지가 수행될 수 있다(S910). 상기 1차 프로그램 속도 감지는 메모리 셀들에 대하여 프로그램이 수행 되기 이전에 수행될 수 있으며, 감지된 프로그램 속도를 기초로, 제1 프로그램 상태에 대한 프로그램 전압 레벨이 설정될 수 있다(S920).Referring to FIG. 37 , first program speed detection for a word line may be performed (S910). The detection of the first program speed may be performed before programming of memory cells is performed, and a program voltage level for a first program state may be set based on the detected program speed (S920).

예컨대, 제1 프로그램 상태(P1)의 1차 프로그램 전압(Vpgm11)에 프로그램 속도에 따른 제1 보상 전압(VoffWL1)이 반영될 수 있다. For example, the first compensation voltage VoffWL1 according to the program speed may be reflected in the first program voltage Vpgm11 of the first program state P1.

메모리 셀들에 제1 프로그램 상태(P1)의 1차 프로그램 전압(Vpgm11)이 인가됨으로써, 메모리 셀들이 제1 프로그램 상태를 타겟으로 1차 프로그램될 수 있다(S930). By applying the primary program voltage Vpgm11 of the first program state P1 to the memory cells, the memory cells may be primarily programmed with the first program state as a target (S930).

이후, 메모리 셀들의 문턱 전압을 기초로 메모리 셀들을 프로그램 속도에 따른 세 개의 셀 그룹으로 구분할 수 있다(S940). 이때, 워드 라인에 대한 2차 프로그램 속도 감지가 수행될 수 있다(S950). 메모리 셀들이 프로그램 속도에 따른 세 개의 셀 그룹으로 구분될 때, 문턱 전압 영역에서 최상위 상태에 해당하는 제1 셀 그룹은 제1 프로그램 상태(P1)의 타겟 산포에 포함될 수 있다. 상기 제1 셀 그룹에 포함되는 메모리 셀들의 개수를 카운팅하여, 프로그램 속도를 감지할 수 있다. Thereafter, the memory cells may be divided into three cell groups according to the program speed based on the threshold voltages of the memory cells (S940). At this time, secondary program speed detection for the word line may be performed (S950). When the memory cells are divided into three cell groups according to the program speed, the first cell group corresponding to the highest state in the threshold voltage region may be included in the target distribution of the first program state P1. A program speed may be detected by counting the number of memory cells included in the first cell group.

이후, 계속하여 제1 프로그램 상태(P1)에 대한 프로그램이 수행된다. 셀 그룹의 산포가 제1 프로그램 상태(P1)의 타겟 산포에 포함되도록, 메모리 셀들에 대하여 재 프로그램(예컨대 제2 프로그램, 또는 제3 프로그램 등)이 수행될 수 있다. 이에 따라 메모리 셀들이 제1 프로그램 상태(P1)로 프로그램될 수 있다.Thereafter, the program for the first program state P1 is continuously performed. Reprogramming (eg, a second program or a third program) may be performed on the memory cells so that the distribution of the cell groups is included in the target distribution of the first program state P1. Accordingly, the memory cells may be programmed to the first program state P1.

제1 프로그램 상태(P1)의 프로그램이 완료된 후, 2차 프로그램 속도 감지에 따른 워드 라인의 프로그램 속도를 기초로 제2 프로그램 상태에 대한 프로그램 전압들의 전압 레벨이 설정될 수 있다(S970). 예컨대, 제2 프로그램 상태(P2)의 1차 프로그램 전압(Vpgm12)에 프로그램 속도에 따른 제2 보상 전압(VoffWL2)이 더해질 수 있다.After the programming of the first program state P1 is completed, voltage levels of program voltages for the second program state may be set based on the program speed of the word line according to the detection of the second program speed (S970). For example, the second compensation voltage VoffWL2 according to the program speed may be added to the first program voltage Vpgm12 of the second program state P2.

메모리 셀들에 제2 프로그램 상태(P2)의 1차 프로그램 전압(Vpgm12)이 인가됨으로써, 메모리 셀들이 제2 프로그램 상태(P2)를 타겟으로 1차 프로그램될 수 있다. 이후, 전술한 바와 같이, 각 프로그램 단계마다 워드 라인의 프로그램 속도가 감지되며, 이에 따라 다음 프로그램 단계의 프로그램 전압들의 전압 레벨이 조절될 수 있다.
By applying the primary program voltage Vpgm12 of the second program state P2 to the memory cells, the memory cells may be primarily programmed with the second program state P2 as a target. Then, as described above, the program speed of the word line is sensed in each program step, and accordingly, the voltage levels of program voltages in the next program step may be adjusted.

도 38은 본 개시의 실시예에 따른 프로그램 제어부의 일 예를 나타내는 블록도이다.38 is a block diagram illustrating an example of a program control unit according to an embodiment of the present disclosure.

일 실시예에 있어서, 프로그램 제어부(160a)는 제어 로직(도 1의 150)에 포함될 수 있다. 다른 실시예에 있어서, 프로그램 제어부(160a)는 별도의 기능 블록으로서 구현될 수 있다. In one embodiment, the program controller 160a may be included in the control logic ( 150 in FIG. 1 ). In another embodiment, the program controller 160a may be implemented as a separate functional block.

도 38을 참조하면, 프로그램 제어부(160a)는 프로그램 제어 로직(160-1) 및 레지스터(160-2)를 포함할 수 있다. 프로그램 제어 로직(160-1)은 프로그램 동작을 위한 구동 전압들을 설정하는 동작을 수행하고, 설정된 구동 전압들의 전압 레벨을 레지스터(160-2)에 저장될 수 있다. 또한, 프로그램 제어 로직(160-1)은 워드 라인의 프로그램 속도에 따른 보상 전압을 설정하는 동작을 수행하고, 설정된 워드 라인별 보상 전압을 레지스터(160-2)에 저장할 수 있다. Referring to FIG. 38 , the program controller 160a may include a program control logic 160-1 and a register 160-2. The program control logic 160-1 may perform an operation of setting driving voltages for a program operation, and may store voltage levels of the set driving voltages in the register 160-2. In addition, the program control logic 160-1 may perform an operation of setting compensation voltages according to the program speed of word lines and store the set compensation voltages for each word line in the register 160-2.

일 실시예에 있어서, 구동 전압들 및 워드 라인별 보상 전압은 테이블 형태로 레지스터(160-2)에 저장될 수 있다. 레지스터(160-2)는 구동 전압들의 전압 레벨, 예컨대 구동 전압들의 디폴트 레벨을 포함하는 제1 테이블(TB1) 및 워드 라인의 프로그램 속도에 따른 보상 전압 레벨을 포함하는 제2 테이블(TB2)을 포함할 수 있다. In one embodiment, driving voltages and compensation voltages for each word line may be stored in the register 160-2 in the form of a table. The register 160-2 includes a first table TB1 including voltage levels of driving voltages, for example, default levels of driving voltages, and a second table TB2 including compensation voltage levels according to program speeds of word lines. can do.

일 실시예에 있어서, 프로그램 제어 로직(160-1)은 메모리 컨트롤러로부터 기입 요청 커맨드가 수신되기 전(예컨대 메모리 장치의 초기화 구간, 등 트레이닝 구간 또는 등)에 구동 전압들의 디폴트 레벨을 설정할 수 있다. 이후, 프로그램 명령이 수신되면, 프로그램될 워드 라인의 프로그램 속도를 검출하고, 프로그램 속도에 따른 보상 전압(VoffWL)의 레벨을 결정할 수 있다. In an embodiment, the program control logic 160 - 1 may set default levels of driving voltages before a write request command is received from the memory controller (eg, an initialization period of the memory device, a training period, etc.). Then, when a program command is received, the program speed of the word line to be programmed may be detected, and the level of the compensation voltage VoffWL according to the program speed may be determined.

제1 테이블(TB1)에 저장된 구동 전압들의 전압 레벨은 디폴트 레벨일 수 있다. 각각의 워드 라인에 대하여 프로그램이 수행될 경우, 디폴트 레벨의 구동 잔압들에 보상 전압(VoffWL)이 적용되어 구동 전압들이 보상될 수 있다. The voltage levels of the driving voltages stored in the first table TB1 may be default levels. When a program is performed for each word line, the driving voltages may be compensated by applying the compensation voltage VoffWL to the residual driving voltages of a default level.

예를 들어, 메모리 컨트롤러로부터 멀티 비트 데이터 및 프로그램 명령이 수신되면, 프로그램 제어부(160)는 워드 라인의 프로그램 속도를 감지하고, 제어 로직(160-1)은 레지스터(160-2)를 액세스하여, 제1 테이블(TB1)의 구동 전압들 및 제2 테이블(TB2)의 프로그램 속도에 따른 보상 전압을 기초로 대응하는 구동 전압들의 전압 레벨을 설정할 수 있다. 또한, 본 개시의 실시예에 따라 프로그램 제어부(160)는 프로그램 수행 중, 워드 라인의 프로그램 속도를 감지하고, 감지된 프로그램 속도에 따라, 제2 테이블(TB2)의 프로그램 속도에 따른 보상 전압을 기초로, 다음 프로그램 상태에 대한 구동 전압들, 예컨대 프로그램 전압들의 전압 레벨을 설정할 수 있다. 그리고, 상기 구동 전압의 전압 레벨을 나타내는 프로그램 제어 신호(CTRL_PGM)를 생성하여 전압 발생부(도 1의 140)에 제공할 수 있다. For example, when multi-bit data and a program command are received from the memory controller, the program controller 160 senses the program speed of the word line, and the control logic 160-1 accesses the register 160-2, Voltage levels of corresponding driving voltages may be set based on the driving voltages of the first table TB1 and the compensating voltage according to the program speed of the second table TB2. Also, according to an embodiment of the present disclosure, the program control unit 160 detects the program speed of the word line during program execution, and based on the detected program speed, a compensation voltage according to the program speed of the second table TB2. , driving voltages for the next program state, for example, voltage levels of the program voltages may be set. In addition, a program control signal (CTRL_PGM) indicating the voltage level of the driving voltage may be generated and provided to the voltage generator (140 in FIG. 1).

이상으로 도 38을 참조하여 메모리 장치에 구비되는 프로그램 제어부의 구성 및 기능을 설명하였다. 그러나, 상술한 내용은 일 실시예이며, 본 개시의 기술적 사상은 이에 제한되는 것은 아니다. 레지스터(160-2)에 저장되는 구동 전압들 및 보상 전압들의 형태는 다양할 수 있다. 또한, 프로그램 제어부는 본 개시의 실시예들에 따른 프로그램 방법에 따라 메모리 셀 어레이에 대하여 프로그램이 수행될 수 있도록 메모리 장치를 제어하는 더 다양한 기능들을 수행할 수 있다.
The configuration and functions of the program control unit included in the memory device have been described above with reference to FIG. 38 . However, the above description is only an example, and the technical spirit of the present disclosure is not limited thereto. The driving voltages and compensation voltages stored in the register 160-2 may have various forms. Also, the program control unit may perform more various functions of controlling the memory device so that a program may be performed on the memory cell array according to the program method according to example embodiments.

도 39는 본 개시의 실시예에 따른 메모리 시스템을 나타내는 블록도이다. 39 is a block diagram illustrating a memory system according to an exemplary embodiment of the present disclosure.

메모리 시스템(1000)은 컴퓨터(computer), 노트북(laptop), 핸드폰(cellular), 스마트폰(smart phone), MP3 플레이어, 피디에이(Personal Digital Assistants: PDA), 피엠피(Portable Multimedia Player: PMP), 디지털 TV, 디지털 카메라, 포터블 게임 콘솔(portable game console) 등과 같은 전자 장치에 탑재될 수 있다.The memory system 1000 includes a computer, a laptop, a cellular phone, a smart phone, an MP3 player, a personal digital assistant (PDA), a portable multimedia player (PMP), a digital It can be mounted on electronic devices such as TVs, digital cameras, portable game consoles, and the like.

도 39를 참조하면, 메모리 시스템(1000)은 메모리 장치(100) 및 메모리 컨트롤러(200)를 포함할 수 있다. 메모리 장치(100)는 메모리 셀 어레이(110), 제어 로직(150) 및 프로그램 제어부(160)를 포함할 수 있다.Referring to FIG. 39 , a memory system 1000 may include a memory device 100 and a memory controller 200 . The memory device 100 may include a memory cell array 110 , a control logic 150 and a program controller 160 .

메모리 셀 어레이(110)는 복수의 메모리 셀 블록을 포함할 수 있으며, 메모리 컨트롤러로부터 수신되는 데이터를 저장할 수 있다. The memory cell array 110 may include a plurality of memory cell blocks and may store data received from a memory controller.

제어 로직(150)은 메모리 컨트롤러(200)로부터 수신한 커맨드(CMD), 어드레스(ADDR) 및 제어 신호(CTRL)를 기초로 하여, 메모리 장치(100) 내의 각종 동작을 전반적으로 제어할 수 있다. 예컨대, 제어 로직(150)은 메모리 셀 어레이(110)에 데이터를 기입하거나 메모리 셀 어레이(110)로부터 데이터를 독출하기 위한 각종 제어 신호를 출력할 수 있다. The control logic 150 may generally control various operations within the memory device 100 based on the command CMD, address ADDR, and control signal CTRL received from the memory controller 200 . For example, the control logic 150 may output various control signals for writing data to or reading data from the memory cell array 110 .

프로그램 제어부(160)는, 메모리 셀 어레이(110)에 멀티 비트 데이터가 저장되도록 메모리 장치(100)를 제어할 수 있다. 프로그램 제어부(160)는, 하나의 프로그램 상태로 프로그램이 수행되도록 설정된 메모리 셀들을 프로그램 속도에 따라 적어도 세 개의 셀 그룹으로 구분하고 각각의 셀 그룹에 대하여 서로 다른 프로그램 전압 또는 프로그램 횟수가 적용되어 상기 메모리 셀들이 프로그램될 수 있도록 메모리 장치(100)를 제어할 수 있다. 프로그램 제어부(160)는 또한, 워드 라인별 프로그램 속도를 검출하고, 프로그램 속도에 따른 보상 전압을 기초로, 상기 워드 라인에 인가되는 각 프로그램 상태의 프로그램 전압들의 전압 레벨을 조절할 수 있다. 프로그램 제어부(160)는 매 프로그램 루프마다, 프로그램 속도를 감지하고, 감지된 프로그램 속도에 따른 보상 전압을 기초로, 다음 프로그램 루프에 대한 프로그램 전압들의 전압 레벨을 조절할 수 있다. 또한, 프로그램 제어부(160)는 한 워드 라인에 대한 프로그램 수행 시, 상기 워드 라인에 대한 초기 프로그램 수행 후, 인접한 워드라인에 대하여 초기 프로그램을 수행한 후, 상기 워드 라인에 대하여 후기 프로그램을 수행하도록 프로그램 시퀀스를 설정함으로써, 인접한 워드라인간의 커플링 효과를 감소시킬 수 있다. 이외에도, 프로그램 제어부(160)는 도 5a 내지 도 38을 참조하여 설명한 본 개시의 실시예에 따른 메모리 장치의 프로그램 방법에 따라 프로그램이 수행될 수 있도록, 메모리 장치(100)의 각 구성요소, 예컨대, 로우 디코더, 입출력 회로, 전압 생성부 등을 제어할 수 있다. The program controller 160 may control the memory device 100 to store multi-bit data in the memory cell array 110 . The program control unit 160 divides memory cells set to be programmed in one program state into at least three cell groups according to program speeds, and applies different program voltages or program numbers to each cell group to determine the memory cells. The memory device 100 may be controlled so that cells may be programmed. The program control unit 160 may also detect a program speed for each word line and adjust voltage levels of program voltages of each program state applied to the word line based on a compensation voltage according to the program speed. The program controller 160 may detect a program speed in each program loop and adjust voltage levels of program voltages for the next program loop based on a compensation voltage according to the detected program speed. In addition, when performing a program on one word line, the program control unit 160 performs a program to perform an initial program on the word line, an initial program on an adjacent word line, and then a later program on the word line. By setting the sequence, coupling effects between adjacent word lines can be reduced. In addition, the program control unit 160 controls each component of the memory device 100, for example, to execute a program according to the programming method of the memory device according to an embodiment of the present disclosure described with reference to FIGS. 5A to 38 . Row decoders, input/output circuits, voltage generators, etc. can be controlled.

메모리 컨트롤러(200)는 호스트(HOST)로부터의 독출/기입 요청에 응답하여 메모리 장치(100)에 저장된 데이터를 독출하도록 또는 메모리 장치(100)에 데이터를 기입하도록 메모리 장치(100)를 제어할 수 있다. 구체적으로, 메모리 컨트롤러(200)는 메모리 장치(100)에 어드레스(ADDR), 커맨드(CMD) 및 제어 신호(CTRL)를 제공함으로써, 메모리 장치(100)에 대한 프로그램(또는 기입), 독출 및 소거 동작을 제어할 수 있다. 메모리 컨트롤러(200)는 프로그램 동작을 위한 데이터(DATA)를 메모리 장치(100)에 송신할 수 있다. 메모리 컨트롤러(200)는 메모리 장치(100)의 프로그램 단위에 해당하는 사이즈의 데이터(DATA), 상기 데이터가 저장되는 어드레스(ADDR) 및 기입 요청을 나타내는 커맨드(CMD)를 메모리 장치(100)로 제공할 수 있다. The memory controller 200 may control the memory device 100 to read data stored in the memory device 100 or write data to the memory device 100 in response to a read/write request from the host HOST. there is. Specifically, the memory controller 200 provides an address ADDR, a command CMD, and a control signal CTRL to the memory device 100 to program (or write), read, and erase the memory device 100 . You can control the action. The memory controller 200 may transmit data DATA for a program operation to the memory device 100 . The memory controller 200 provides data DATA having a size corresponding to a program unit of the memory device 100, an address ADDR where the data is stored, and a command CMD indicating a write request to the memory device 100. can do.

도시되지는 않았으나, 메모리 컨트롤러(200)는 램(RAM), 프로세싱 유닛(processing unit), 호스트 인터페이스 및 메모리 인터페이스를 포함할 수 있다. 램은 프로세싱 유닛의 동작 메모리로서 이용될 수 있고, 프로세싱 유닛은 메모리 컨트롤러(200)의 동작을 제어할 수 있다. 호스트 인터페이스는 호스트 및 메모리 컨트롤러(200) 사이의 데이터 교환을 수행하기 위한 프로토콜(protocol)을 포함할 수 있다. 예를 들어, 메모리 컨트롤러(200)는 USB, MMC, PCI-E, ATA(Advanced Technology Attachment), Serial-ATA, Parallel-ATA, SCSI, ESDI, 그리고 IDE(Integrated Drive Electronics) 등과 같은 다양한 인터페이스 프로토콜들 중 적어도 하나를 통해 외부(HOST)와 통신하도록 구성될 수 있다.Although not shown, the memory controller 200 may include RAM, a processing unit, a host interface, and a memory interface. The RAM may be used as an operating memory of the processing unit, and the processing unit may control the operation of the memory controller 200 . The host interface may include a protocol for exchanging data between the host and the memory controller 200 . For example, the memory controller 200 uses various interface protocols such as USB, MMC, PCI-E, ATA (Advanced Technology Attachment), Serial-ATA, Parallel-ATA, SCSI, ESDI, and IDE (Integrated Drive Electronics). It may be configured to communicate with the outside (HOST) through at least one of them.

한편, 다른 실시예에 있어서, 프로그램 제어부(160)의 일부 기능은 메모리 컨트롤러(200)에서 수행될 수 있다. 예컨대, 메모리 컨트롤러(200)는 메모리 장치(100)의 메모리 셀 어레이(110)에 대한 프로그램 동작을 제어할 수 있다. 일 실시예에 있어서, 메모리 컨트롤러(200)는 또한, 본 개시의 실시예들에 따른 프로그램 방법을 적용하는 시퀀스를 결정하고, 상기 시퀀스를 나타내는 제어 신호(CTRL)를 메모리 장치(100)에 제공할 수 있다. Meanwhile, in another embodiment, some functions of the program controller 160 may be performed by the memory controller 200 . For example, the memory controller 200 may control a program operation of the memory cell array 110 of the memory device 100 . In an embodiment, the memory controller 200 may also determine a sequence to which the program method according to embodiments of the present disclosure is applied, and provide a control signal CTRL indicating the sequence to the memory device 100. can

예컨대, 프로그램 동작을 위한 구동 전압들의 설정을 제어하기 위한 제어 신호(CTRL)를 메모리 장치(100)에 제공할 수 있다. 또한, 메모리 컨트롤러(200)는 메모리 셀 어레이(110)의 산포 특성 등을 판단하고, 판단 결과에 따라, 프로그램 수행 시 메모리 셀들을 프로그램 속도에 따라 몇 개의 셀 그룹으로 구분할지 결정할 수 있다. 예를 들어, 메모리 셀 어레이(110)의 일부 영역의 메모리 셀들이 열화되어 산포 특성이 나쁘다고 판단되면, 상기 영역의 메모리 셀들에 대하여 프로그램 동작이 수행될 경우, 프로그램 속도에 따라 구분되는 셀 그룹의 개수를 증가시킴으로서, 프로그램 상태의 산포 특성을 개선할 수 있다. For example, a control signal CTRL for controlling setting of driving voltages for a program operation may be provided to the memory device 100 . In addition, the memory controller 200 may determine distribution characteristics of the memory cell array 110 and, based on the determination result, determine how many cell groups to classify memory cells into according to program speed during program execution. For example, when it is determined that distribution characteristics are poor due to deterioration of memory cells in a portion of the memory cell array 110, when a program operation is performed on the memory cells in the area, the number of cell groups classified according to the program speed. By increasing , it is possible to improve the distribution characteristics of the program state.

이와같이, 메모리 컨트롤러(200)는 메모리 장치(100)의 프로그램 속도 또는 프로그램 상태의 메모리 셀들의 산포 특성이 향상되도록 메모리 장치(100)를 제어할 수 있다.
As such, the memory controller 200 may control the memory device 100 to improve the programming speed of the memory device 100 or the distribution characteristics of memory cells in a programmed state.

도 40은 본 개시의 일 실시예에 따른 메모리 카드 시스템을 나타내는 블록도이다.40 is a block diagram illustrating a memory card system according to an exemplary embodiment of the present disclosure.

도 40을 참조하면, 메모리 카드 시스템(2000)은 호스트(2100) 및 메모리 카드(2200)를 포함할 수 있다. 호스트(2100)는 호스트 컨트롤러(2110) 및 호스트 접속부(2120)를 포함할 수 있다. 메모리 카드(2200)는 카드 접속부(2210), 카드 컨트롤러(2220) 및 메모리 장치(2220)를 포함할 수 있다. Referring to FIG. 40 , a memory card system 2000 may include a host 2100 and a memory card 2200 . The host 2100 may include a host controller 2110 and a host connection unit 2120 . The memory card 2200 may include a card connector 2210 , a card controller 2220 and a memory device 2220 .

호스트(2100)는 메모리 카드(2200)에 데이터를 기입하거나, 메모리 카드(2200)에 저장된 데이터를 독출할 수 있다. 호스트 컨트롤러(2110)는 커맨드(CMD), 호스트(2100) 내의 클럭 발생기(미도시)에서 발생한 클럭 신호(CLK) 및 데이터(DATA)를 호스트 접속부(2120)를 통해 메모리 카드(2200)로 전송할 수 있다.The host 2100 may write data to the memory card 2200 or read data stored in the memory card 2200 . The host controller 2110 may transmit a command CMD, a clock signal CLK generated from a clock generator (not shown) in the host 2100, and data DATA to the memory card 2200 through the host interface 2120. there is.

카드 컨트롤러(2220)는 카드 접속부(2210)를 통해 수신된 커맨드에 응답하여, 카드 컨트롤러(2220) 내에 있는 클럭 발생기(미도시)에서 발생한 클럭 신호에 동기하여 데이터를 메모리 장치(2220)에 저장할 수 있다. 메모리 장치(2220)는 호스트(2100)로부터 전송된 데이터를 저장할 수 있다. 메모리 장치(2220)는 도 1을 참조하여 전술한 메모리 장치(도 1의 100)를 포함할 수 있으며, 메모리 장치(2220)는 도 5a 내지 도 38을 참조하여 설명한 본 개시의 실시예에 따른 프로그램 방법 또는 동작 방법에 따라 카드 컨트롤러(2110)으로부터 수신되는 데이터(DATA)를 메모리 셀 어레이에 저장할 수 있다. 데이터를 프로그램 하는 시간이 단축될 수 있으며, 프로그램 산포 특성이 향상됨에 따라, 메모리 카드(2200)의 동작 속도 및 메모리 카드 시스템(2000)의 동작 속도가 향상될 수 있다. The card controller 2220 may store data in the memory device 2220 in synchronization with a clock signal generated by a clock generator (not shown) in the card controller 2220 in response to a command received through the card connector 2210. there is. The memory device 2220 may store data transmitted from the host 2100 . The memory device 2220 may include the memory device 100 of FIG. 1 described above with reference to FIG. 1 , and the memory device 2220 may include a program according to an embodiment of the present disclosure described with reference to FIGS. 5A to 38 . Data DATA received from the card controller 2110 may be stored in a memory cell array according to a method or operation method. The time to program data can be shortened, and the operating speed of the memory card 2200 and the memory card system 2000 can be improved as program distribution characteristics are improved.

메모리 카드(2220)는 컴팩트 플래쉬 카드(CFC: Compact Flash Card), 마이크로 드라이브(Microdrive), 스마트 미디어 카드(SMC: Smart Media Card) 멀티미디어 카드(MMC: Multimedia Card), 보안 디지털 카드(SDC: Security Digital Card), 메모리 스틱(Memory Stick), 및 USB 플래쉬 메모리 드라이버 등으로 구현될 수 있다.
The memory card 2220 includes a compact flash card (CFC), a microdrive, a smart media card (SMC), a multimedia card (MMC), and a security digital card (SDC). Card), memory stick, and USB flash memory driver.

도 41은 본 개시의 일 실시예에 따른 컴퓨팅 시스템을 나타내는 블록도이다. 41 is a block diagram illustrating a computing system according to an embodiment of the present disclosure.

도 41을 참조하면, 컴퓨팅 시스템(3000)은 메모리 시스템(3100), 프로세서(3200), RAM(3300), 입출력 장치(3400), 및 전원 장치(3500) 포함할 수 있다. 한편, 도 19에는 도시되지 않았지만, 컴퓨팅 시스템(3000)은 비디오 카드, 사운드 카드, 메모리 카드, USB 장치 등과 통신하거나, 또는 다른 전자 기기들과 통신할 수 있는 포트(port)들을 더 포함할 수 있다. 컴퓨팅 시스템(3000)은 퍼스널 컴퓨터로 구현되거나, 노트북 컴퓨터, 휴대폰, PDA(personal digital assistant) 및 카메라 등과 같은 휴대용 전자 장치로 구현될 수 있다.Referring to FIG. 41 , a computing system 3000 may include a memory system 3100, a processor 3200, a RAM 3300, an input/output device 3400, and a power supply 3500. Meanwhile, although not shown in FIG. 19 , the computing system 3000 may further include ports capable of communicating with video cards, sound cards, memory cards, USB devices, etc., or with other electronic devices. . The computing system 3000 may be implemented as a personal computer or as a portable electronic device such as a notebook computer, a mobile phone, a personal digital assistant (PDA), and a camera.

프로세서(3200)는 특정 계산들 또는 태스크(task)들을 수행할 수 있다. 실시예에 따라, 프로세서(3200)는 마이크로프로세서(micro-processor), 중앙 처리 장치(Central Processing Unit; CPU)일수 있다. 프로세서(3200)는 어드레스 버스(address bus), 제어 버스(control bus) 및 데이터 버스(data bus) 등과 같은 버스(3600)를 통하여 RAM(3300), 입출력 장치(3400) 및 메모리 시스템(3100)과 통신을 수행할 수 있다. 실시예에 따라, 프로세서(3200)는 주변 구성요소 상호연결(Peripheral Component Interconnect; PCI) 버스와 같은 확장 버스에도 연결될 수 있다. Processor 3200 may perform certain calculations or tasks. Depending on the embodiment, the processor 3200 may be a micro-processor or a central processing unit (CPU). The processor 3200 communicates with the RAM 3300, the input/output device 3400, and the memory system 3100 through a bus 3600 such as an address bus, a control bus, and a data bus. communication can be performed. According to an embodiment, the processor 3200 may also be connected to an expansion bus such as a Peripheral Component Interconnect (PCI) bus.

메모리 시스템(3100)은 버스(3600)를 통하여 프로세서(3200), RAM(3300) 및 입출력 장치(3500)와 통신할 수 있다. 메모리 시스템(3100)은 프로세서(3200)의 요청에 따라, 수신되는 데이터를 저장하거나 저장된 데이터를 프로세서(3200), RAM(3300) 또는 입출력 장치(3400)에 제공할 수 있다. 한편, 메모리 시스템(3100)은 도 39를 참조하여 설명한 메모리 시스템(1000) 이 적용될 수 있다. 또는 메모리 시스템(3100)은 도 1을 참조하여 설명한 메모리 장치(100)를 포함할 수 있으며, 메모리 장치(3110)는 도 5a 내지 도 38을 참조하여 설명한 본 개시의 실시예에 따른 프로그램 방법 또는 동작 방법에 따라 메모리 컨트롤러(3120)으로부터 수신되는 데이터(DATA)를 메모리 셀 어레이에 저장할 수 있다. 이에 따라 데이터를 프로그램 하는 시간이 단축될 수 있으며, 프로그램 산포 특성이 개선되어, 메모리 시스템(3100)의 동작 속도 및 컴퓨팅 시스템(3000) 동작 속도가 향상될 수 있다. The memory system 3100 may communicate with the processor 3200 , the RAM 3300 , and the input/output device 3500 through the bus 3600 . The memory system 3100 may store received data or provide stored data to the processor 3200, the RAM 3300, or the input/output device 3400 according to a request of the processor 3200. Meanwhile, the memory system 1000 described with reference to FIG. 39 may be applied to the memory system 3100 . Alternatively, the memory system 3100 may include the memory device 100 described with reference to FIG. 1 , and the memory device 3110 may include a program method or operation according to embodiments of the present disclosure described with reference to FIGS. 5A to 38 . Depending on the method, data DATA received from the memory controller 3120 may be stored in the memory cell array. Accordingly, the time to program data can be shortened, and program distribution characteristics can be improved, so that the operating speed of the memory system 3100 and the computing system 3000 can be improved.

RAM(3300)은 컴퓨팅 시스템(3000)의 동작에 필요한 데이터를 저장할 수 있다. 예를 들어, RAM(3300)은 디램(DRAM), 모바일 디램, 에스램(SRAM), 피램(PRAM), 에프램(FRAM), 알램(RRAM) 및/또는 엠램(MRAM)으로 구현될 수 있다. The RAM 3300 may store data necessary for the operation of the computing system 3000 . For example, the RAM 3300 may be implemented as DRAM, mobile DRAM, SRAM, PRAM, FRAM, RRAM, and/or MRAM. .

입출력 장치(3400)는 키보드, 키패드, 마우스 등과 같은 입력 수단 및 프린터, 디스플레이 등과 같은 출력 수단을 포함할 수 있다. 전원 장치(3500)는 컴퓨팅 시스템(2000)의 동작에 필요한 동작 전압을 공급할 수 있다.
The input/output device 3400 may include input means such as a keyboard, keypad, and mouse, and output means such as a printer and a display. The power supply 3500 may supply an operating voltage necessary for the operation of the computing system 2000 .

도 42는 본 개시의 일 실시예에 따른 SSD 시스템을 나타내는 블록도이다. 42 is a block diagram illustrating an SSD system according to an embodiment of the present disclosure.

도 42를 참조하면, SSD 시스템(4000)은 호스트(4100) 및 SSD(4200)를 포함할 수 있다. SSD(4200)는 신호 커넥터(signal connector)를 통해 호스트(4100)와 신호를 주고 받으며, 전원 커넥터(power connector)를 통해 전원을 입력 받는다. Referring to FIG. 42 , an SSD system 4000 may include a host 4100 and an SSD 4200. The SSD 4200 exchanges signals with the host 4100 through a signal connector and receives power through a power connector.

SSD(4200)는 SSD 컨트롤러(4210), 보조 전원 장치(4220) 및 복수의 메모리 장치들(4230, 4240, 4250)을 포함할 수 있다. 상기 복수의 메모리 장치들(4230, 4240, 4250)은 수직 적층형 NAND 플래시 메모리 장치일 수 있다. 복수의 메모리 장치들(4230, 4240, 4250) 중 적어도 하나는 도 1을 참조하여 설명한 메모리 장치(100)를 포함할 수 있다. 구체적으로, 복수의 메모리 장치들(4230, 4240, 4250) 중 적어도 하나는, 도 5a 내지 도 38을 참조하여 설명한 본 개시의 실시예에 따른 프로그램 방법 또는 동작 방법에 따라 SSD 컨트롤러(4210)으로부터 수신되는 데이터(DATA)를 메모리 셀 어레이에 저장할 수 있다. 이에 따라 데이터를 프로그램 하는 시간이 단축될 수 있고 프로그램 산포 특성이 향상되어, SSD(4200)의 동작 특성이 향상될 수 있다.
The SSD 4200 may include an SSD controller 4210, an auxiliary power supply 4220, and a plurality of memory devices 4230, 4240, and 4250. The plurality of memory devices 4230, 4240, and 4250 may be vertically stacked NAND flash memory devices. At least one of the plurality of memory devices 4230 , 4240 , and 4250 may include the memory device 100 described with reference to FIG. 1 . Specifically, at least one of the plurality of memory devices 4230, 4240, and 4250 is received from the SSD controller 4210 according to the program method or operation method according to the embodiment of the present disclosure described with reference to FIGS. 5A to 38 The data DATA may be stored in the memory cell array. Accordingly, the time to program data may be shortened, and program distribution characteristics may be improved, thereby improving operating characteristics of the SSD 4200 .

도 43은 본 개시의 실시예에 따른 UFS(uiversal flash storage)를 나타내는 블록도이다. 43 is a block diagram illustrating a uiversal flash storage (UFS) according to an embodiment of the present disclosure.

도 43을 참조하면, UFS 시스템(5000)은 UFS 호스트(5100), UFS 장치들(5200, 5300), 임베디드 UFS 장치(5400), 착탈형 UFS 카드(5500)를 포함할 수 있다. UFS 호스트(5100)는 모바일 장치의 어플리케이션 프로세서일 수 있다. UFS 호스트(5100), UFS 장치들(5200, 5300), 임베디드 UFS 장치(5400), 및 착탈형 UFS 카드(5500) 각각은 UFS 프로토콜에 의하여 외부의 장치들과 통신할 수 있다. UFS 장치들(5200, 5300), 임베디드 UFS 장치(5400), 및 착탈형 UFS 카드(5500) 중 적어도 하나는 도 1 에 도시된 메모리 장치(100)를 포함할 수 있다. 또한, UFS 장치들(5200, 5300), 임베디드 UFS 장치(5400), 및 착탈형 UFS 카드(5500) 중 적어도 하나는 도 5a 내지 도 38을 참조하여 설명한 본 개시의 실시예들에 따른 프로그램 방법이 적용될 수 있다. 이에 따라, UFS 시스템(5000)의 동작 속도가 향상될 수 있다. Referring to FIG. 43 , a UFS system 5000 may include a UFS host 5100, UFS devices 5200 and 5300, an embedded UFS device 5400, and a removable UFS card 5500. The UFS host 5100 may be an application processor of a mobile device. Each of the UFS host 5100, the UFS devices 5200 and 5300, the embedded UFS device 5400, and the removable UFS card 5500 may communicate with external devices through the UFS protocol. At least one of the UFS devices 5200 and 5300 , the embedded UFS device 5400 , and the removable UFS card 5500 may include the memory device 100 shown in FIG. 1 . In addition, at least one of the UFS devices 5200 and 5300, the embedded UFS device 5400, and the removable UFS card 5500 may be applied with the program method according to the embodiments of the present disclosure described with reference to FIGS. 5A to 38. can Accordingly, the operating speed of the UFS system 5000 can be improved.

한편, 임베디드 UFS 장치(5400)와 착탈형 UFS 카드(5500)는 UFS 프로토콜이 아닌 다른 프로토콜에 의해 통신할 수 있다. UFS 호스트(5100)와 착탈형 UFS 카드(5500)는 다양한 카드 프로토콜(예를 들어, UFDs, MMC, SD, mini SD, Micro SD 등)에 의해 통신할 수 있다.
Meanwhile, the embedded UFS device 5400 and the removable UFS card 5500 may communicate by a protocol other than the UFS protocol. The UFS host 5100 and the removable UFS card 5500 can communicate through various card protocols (eg, UFDs, MMC, SD, mini SD, Micro SD, etc.).

본 개시의 실시예들에 따른 메모리 카드, 비휘발성 메모리 장치, 카드 컨트롤러는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 개시에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장 될 수 있다.A memory card, a non-volatile memory device, and a card controller according to embodiments of the present disclosure may be mounted using various types of packages. For example, a flash memory device and/or memory controller according to the present disclosure may include Package on Package (PoP), Ball grid arrays (BGAs), Chip scale packages (CSPs), Plastic Leaded Chip Carrier (PLCC), Plastic Dual In- Line Package (PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board (COB), Ceramic Dual In-Line Package (CERDIP), Plastic Metric Quad Flat Pack (MQFP), Thin Quad Flatpack (TQFP), Small Outline (SOIC), Shrink Small Outline Package (SSOP), Thin Small Outline (TSOP), System In Package (SIP), Multi Chip Package (MCP), Wafer-level Fabricated Package (WFP), Wafer-Level Processed Stack Package ( WSP), etc. can be mounted using packages such as

본 개시는 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의하여 정해져야 할 것이다.Although the present disclosure has been described with reference to the embodiments shown in the drawings, this is only exemplary, and those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom. Therefore, the true technical scope of protection of the present disclosure should be determined by the technical spirit of the appended claims.

1000: 메모리 시스템
100: 메모리 장치
200: 메모리 컨트롤러
160: 프로그램 제어부
1000: memory system
100: memory device
200: memory controller
160: program control unit

Claims (10)

멀티 비트 데이터를 저장하는 메모리 셀들을 포함하는 비휘발성 메모리 장치의 프로그램 방법에 있어서,
n번째 워드라인의 메모리 셀들을 상기 n번째 워드라인에 대응하는 복수의 1차 프로그램 전압을 기초로 프로그램하는 단계;
상기 n번째 워드라인의 메모리 셀들을 프로그램한 이후에, 상기 n번째 워드 라인에 인접한 n+1번째 워드라인의 메모리 셀들을 상기 n+1번째 워드라인에 대응하는 복수의 1차 프로그램 전압을 기초로 프로그램하는 단계; 및
상기 n+1번째 워드라인의 메모리 셀들을 프로그램한 이후에, 상기 n번째 워드라인의 상기 메모리 셀들을 문턱 전압 산포에 기초하여 프로그램 속도에 따른 복수의 셀 그룹으로 구분하고, 상기 복수의 셀 그룹간의 문턱 전압 차이에 기초하여 설정되는 복수의 2차 프로그램 전압을 기초로, 상기 n번째 워드라인의 메모리 셀들을 재프로그램하는 단계를 포함하며,
상기 n번째 워드라인의 메모리 셀들을 재프로그램하는 단계는,
상기 n번째 워드라인의 상기 복수의 셀 그룹 중 문턱 전압 산포의 최상위 영역에 대응하는 셀 그룹을 제외한 다른 셀 그룹들의 메모리 셀들을 상기 복수의 2차 프로그램 전압을 기초로 프로그램하는 것을 특징으로 하는 비휘발성 메모리 장치의 프로그램 방법.
A method of programming a non-volatile memory device including memory cells storing multi-bit data, the method comprising:
programming memory cells of an n-th word line based on a plurality of primary program voltages corresponding to the n-th word line;
After programming the memory cells of the n-th word line, memory cells of the n+1-th word line adjacent to the n-th word line are programmed based on a plurality of primary program voltages corresponding to the n+1-th word line. programming; and
After programming the memory cells of the n+1 th word line, the memory cells of the n th word line are divided into a plurality of cell groups according to program speed based on threshold voltage distribution, and reprogramming memory cells of the n-th word line based on a plurality of secondary program voltages set based on a threshold voltage difference;
Reprogramming the memory cells of the n-th word line may include:
and programming memory cells of cell groups other than the cell group corresponding to the uppermost region of a threshold voltage distribution among the plurality of cell groups of the n-th word line based on the plurality of secondary program voltages. How to program a memory device.
제1 항에 있어서,
상기 n번째 워드라인에 대응하는 상기 복수의 1차 프로그램 전압은 상기 멀티 비트 데이터에 대응하는 복수의 프로그램 상태 각각에 대응하여 설정되고,
상기 n번째 워드라인의 메모리 셀들을 상기 복수의 1차 프로그램 전압을 기초로 프로그램하는 단계는,
상기 n번째 워드라인의 메모리 셀들에 상기 복수의 1차 프로그램 전압을 차례로 인가하는 단계를 포함하는 비휘발성 메모리 장치의 프로그램 방법.
According to claim 1,
The plurality of primary program voltages corresponding to the n-th word line are set corresponding to each of a plurality of program states corresponding to the multi-bit data;
The step of programming the memory cells of the n-th word line based on the plurality of primary program voltages,
and sequentially applying the plurality of primary program voltages to memory cells of the n-th word line.
제2 항에 있어서, 상기 복수의 프로그램 상태는 제1 내지 제3 프로그램 상태를 포함하고,
상기 복수의 1차 프로그램 전압은, 상기 제1 내지 제3 프로그램 상태 각각에 대응하여 설정되는 것을 특징으로 하는 비휘발성 메모리 장치의 프로그램 방법.
3. The method of claim 2, wherein the plurality of program states include first to third program states,
The program method of a nonvolatile memory device, wherein the plurality of primary program voltages are set corresponding to each of the first to third program states.
제2 항에 있어서, 상기 n번째 워드라인의 메모리 셀들을 상기 복수의 1차 프로그램 전압을 기초로 프로그램하는 단계는,
상기 n번째 워드라인에 상기 복수의 1차 프로그램 전압 중 제1 프로그램 상태에 대응하는 제1의 1차 프로그램 전압을 인가하는 단계; 및
상기 n번째 워드라인에 상기 복수의 1차 프로그램 전압 중 제2 프로그램 상태에 대응하는 제2의 1차 프로그램 전압을 인가하는 단계를 포함하는 비휘발성 메모리 장치의 프로그램 방법.
3. The method of claim 2, wherein programming the memory cells of the n-th word line based on the plurality of primary program voltages comprises:
applying a first primary program voltage corresponding to a first program state among the plurality of primary program voltages to the n-th word line; and
and applying a second primary program voltage corresponding to a second program state among the plurality of primary program voltages to the n-th word line.
제1 항에 있어서, 상기 n번째 워드라인의 메모리 셀들을 재프로그램하는 단계는,
상기 n번째 워드라인의 메모리 셀들을 상기 멀티 비트 데이터에 대응하는 복수의 프로그램 상태 각각에 대한 복수의 셀 그룹으로 구분하는 단계; 및
상기 복수의 프로그램 상태 각각에 대한 상기 복수의 셀 그룹간의 문턱 전압 차이에 기초하여 설정되는 상기 복수의 프로그램 상태 각각에 대한 상기 복수의 2차 프로그램 전압을 기초로, 상기 n번째 워드라인의 메모리 셀들을 재프로그램하는 단계를 포함하는 비휘발성 메모리 장치의 프로그램 방법.
The method of claim 1 , wherein the reprogramming of the memory cells of the n-th word line comprises:
dividing memory cells of the n-th word line into a plurality of cell groups corresponding to a plurality of program states corresponding to the multi-bit data; and
Based on the plurality of secondary program voltages for each of the plurality of program states, which is set based on a difference in threshold voltage between the plurality of cell groups for each of the plurality of program states, memory cells of the nth word line are A method of programming a non-volatile memory device comprising the step of reprogramming.
제5 항에 있어서, 복수의 셀 그룹으로 구분하는 단계는,
상기 n번째 워드라인의 메모리 셀들 중 제1 프로그램 상태에 대응하는 제1 의 1차 프로그램 전압이 인가된 메모리 셀들을 상기 제1 프로그램 상태에 대한 복수의 셀 그룹으로 구분하는 단계;
상기 n번째 워드라인의 메모리 셀들 중 제2 프로그램 상태에 대응하는 제2의 1차 프로그램 전압이 인가된 메모리 셀들을 상기 제2 프로그램 상태에 대한 복수의 셀 그룹으로 구분하는 단계를 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 프로그램 방법.
The method of claim 5, wherein the dividing into a plurality of cell groups comprises:
classifying memory cells of the n-th word line to which a first program voltage corresponding to a first program state is applied, among memory cells of the n-th word line, into a plurality of cell groups corresponding to the first program state;
and dividing memory cells of the n-th word line to which a second primary program voltage corresponding to a second program state is applied, among memory cells of the n-th word line, into a plurality of cell groups for the second program state. A method of programming a non-volatile memory device to be used.
제1 항에 있어서, 상기 n번째 워드라인의 메모리 셀들을 재프로그램하는 단계는,
상기 n번째 워드라인의 메모리 셀들 중 제1 프로그램 상태에 대응하는 제1의 1차 프로그램 전압이 인가된 제1 메모리 셀들을 복수의 제1 셀 그룹으로 구분하고, 제1의 2차 프로그램 전압을 기초로 상기 복수의 제1 셀 그룹 중 문턱 전압 산포의 최상위 영역에 대응하는 셀 그룹을 제외한 나머지 셀 그룹의 메모리 셀들을 재프로그램하는 단계; 및
상기 n번째 워드라인의 메모리 셀들 중 제2 프로그램 상태에 대응하는 제2의 1차 프로그램 전압이 인가된 제2 메모리 셀들을 복수의 제2 셀 그룹으로 구분하고, 제2의 2차 프로그램 전압을 기초로 상기 복수의 제2 셀 그룹 중 문턱 전압 산포의 최상위 영역에 대응하는 셀 그룹을 제외한 나머지 셀 그룹의 메모리 셀들을 재프로그램하는 단계를 포함하는 비휘발성 메모리 장치의 프로그램 방법.
The method of claim 1 , wherein the reprogramming of the memory cells of the n-th word line comprises:
Among the memory cells of the n-th word line, first memory cells to which a first primary program voltage corresponding to a first program state is applied are divided into a plurality of first cell groups, and based on the first secondary program voltage reprogramming memory cells of the remaining cell groups except for the cell group corresponding to the uppermost region of the threshold voltage distribution among the plurality of first cell groups with; and
Among the memory cells of the n-th word line, second memory cells to which a second primary program voltage corresponding to a second program state is applied are divided into a plurality of second cell groups, based on the second secondary program voltage. and reprogramming memory cells of a cell group other than a cell group corresponding to an uppermost region of a threshold voltage distribution among the plurality of second cell groups with the method.
제2 항에 있어서,
상기 n번째 워드라인에 대응하는 상기 복수의 1차 프로그램 전압이, 상기 n번째 워드라인의 메모리 셀들 중 상대적으로 프로그램 속도가 빠른 m개 미만의 메모리 셀들을 각각 대응하는 타겟 상태로 프로그램하도록 설정될 때,
상기 n번째 워드라인의 상기 복수의 셀 그룹 중, 문턱 전압이 가장 높은 제1 셀 그룹은, m개의 메모리 셀들을 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 프로그램 방법.
According to claim 2,
When the plurality of primary program voltages corresponding to the n-th word line are set to program less than m memory cells having a relatively high program speed among the memory cells of the n-th word line, respectively, to a corresponding target state. ,
A first cell group having the highest threshold voltage among the plurality of cell groups of the n-th word line includes m memory cells.
제1 항에 있어서,
상기 n번째 워드라인의 초기 프로그램 속도를 검출하는 단계; 및
상기 초기 프로그램 속도를 기초로, 상기 멀티 비트 데이터에 대응하는 복수의 프로그램 상태들 각각에 대응하는 상기 복수의 1차 프로그램 전압의 전압 레벨을 조절하는 단계를 더 포함하는 비휘발성 메모리 장치의 프로그램 방법.
According to claim 1,
detecting an initial program speed of the n-th word line; and
and adjusting a voltage level of the plurality of primary program voltages corresponding to each of a plurality of program states corresponding to the multi-bit data based on the initial program speed.
제9 항에 있어서, 상기 n번째 워드라인의 초기 프로그램 속도를 검출하는 단계는,
상기 n번째 워드라인에 프리 프로그램 전압을 인가하는 단계; 및
프리 프로그램 상태에 대한 오프셀로 검출된 메모리 셀들의 개수를 카운팅하는 단계를 포함하는 것을 특징으로 하는 비휘발성 메모리 장치의 프로그램 방법.
10. The method of claim 9, wherein the detecting of the initial program speed of the n-th word line comprises:
applying a preprogram voltage to the nth word line; and
A method of programming a non-volatile memory device, comprising counting the number of memory cells detected as off-cells in a pre-program state.
KR1020150171434A 2015-10-16 2015-12-03 Programming method of a non volatile memory device KR102502234B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020150171434A KR102502234B1 (en) 2015-12-03 2015-12-03 Programming method of a non volatile memory device
US15/294,995 US9953703B2 (en) 2015-10-16 2016-10-17 Programming method of non volatile memory device
US15/917,753 US10090045B2 (en) 2015-10-16 2018-03-11 Programming method of non volatile memory device according to program speed of memory cells

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150171434A KR102502234B1 (en) 2015-12-03 2015-12-03 Programming method of a non volatile memory device

Publications (2)

Publication Number Publication Date
KR20170065240A KR20170065240A (en) 2017-06-13
KR102502234B1 true KR102502234B1 (en) 2023-02-21

Family

ID=59218738

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150171434A KR102502234B1 (en) 2015-10-16 2015-12-03 Programming method of a non volatile memory device

Country Status (1)

Country Link
KR (1) KR102502234B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102688480B1 (en) 2018-12-11 2024-07-26 에스케이하이닉스 주식회사 Semiconductor memory device and operating method thereof
KR20210129490A (en) 2020-04-20 2021-10-28 에스케이하이닉스 주식회사 Semiconductor memory device and operating method thereof

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100891405B1 (en) * 2007-09-27 2009-04-02 주식회사 하이닉스반도체 Non volatile memory device and method for operating thereof

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7177199B2 (en) * 2003-10-20 2007-02-13 Sandisk Corporation Behavior based programming of non-volatile memory
KR101821604B1 (en) * 2011-07-25 2018-01-24 삼성전자주식회사 Method of programming a nonvolatile memory device
KR101939235B1 (en) * 2011-08-03 2019-01-17 삼성전자 주식회사 Non-volatile memory device and program method thereof
KR20130016619A (en) * 2011-08-08 2013-02-18 삼성전자주식회사 Program method of non-volatile memory device
KR102007007B1 (en) * 2012-12-10 2019-08-02 에스케이하이닉스 주식회사 Semiconductor device and operating method thereof
KR102106866B1 (en) * 2013-01-29 2020-05-06 삼성전자주식회사 Multi-level Nonvolatile memory and Method of Progmming threrof
KR102137075B1 (en) * 2013-09-10 2020-07-23 에스케이하이닉스 주식회사 Semiconductor memory device and programming method thereof
KR102170975B1 (en) * 2013-10-31 2020-10-28 삼성전자주식회사 Nonvolatile memory device and defected wordline detection method thereof
KR20150091684A (en) * 2014-02-03 2015-08-12 에스케이하이닉스 주식회사 Semiconductor Apparatus
KR102288764B1 (en) * 2014-12-01 2021-08-11 (주)에이알케이 Sludge dewatering device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100891405B1 (en) * 2007-09-27 2009-04-02 주식회사 하이닉스반도체 Non volatile memory device and method for operating thereof

Also Published As

Publication number Publication date
KR20170065240A (en) 2017-06-13

Similar Documents

Publication Publication Date Title
US10090045B2 (en) Programming method of non volatile memory device according to program speed of memory cells
CN107123442B (en) Memory device and memory system
KR102579879B1 (en) Nonvolatile memory devices and method of reading the same
EP3579236B1 (en) Non-volatile memory device and erasing method of the same
CN109785887B (en) Nonvolatile memory device and method of operating the same
CN106486166B (en) Memory device, memory system and operating method thereof
KR102505852B1 (en) Operating method of non-volatile memory device
KR101913331B1 (en) Nonvolatile memory device, novolatile memory system, program method thereof, and operation method of controller controlling the same
KR102449196B1 (en) Nonvolatile memory device and program method of a nonvolatile memory device
KR102118979B1 (en) Non-volatile memory device and program method thereof
KR102274280B1 (en) Method of operating a non-volatile memory device
CN109872761B (en) Nonvolatile memory device for improving data reliability and method of operating the same
KR102347182B1 (en) Memory device, Memory system, Method of operating the memory device and Method of operating the memory system
KR102504295B1 (en) Nonvolatile Memory Device, and Programming Method Thereof
KR20110034068A (en) Non-volatile memory device and non-volatile memory system having the same
KR20190102508A (en) Nonvolatile memory device and operating method of the same
KR20150031778A (en) Non-volatile memory device and method of operation thereof
KR102502234B1 (en) Programming method of a non volatile memory device
KR102397394B1 (en) Operating method of a non volatile memory device
KR102361642B1 (en) Programming method and operating method of a non volatile memory device
KR20210054376A (en) Semiconductor memory device and operating method thereof
US20230091724A1 (en) Storage device, non-volatile memory, and method of operating program of non-volatile memory
KR20230041582A (en) Storage device, non-volatile memory, and operating mehtod of non-volatile memory

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