KR20230041582A - Storage device, non-volatile memory, and operating mehtod of non-volatile memory - Google Patents

Storage device, non-volatile memory, and operating mehtod of non-volatile memory Download PDF

Info

Publication number
KR20230041582A
KR20230041582A KR1020220079275A KR20220079275A KR20230041582A KR 20230041582 A KR20230041582 A KR 20230041582A KR 1020220079275 A KR1020220079275 A KR 1020220079275A KR 20220079275 A KR20220079275 A KR 20220079275A KR 20230041582 A KR20230041582 A KR 20230041582A
Authority
KR
South Korea
Prior art keywords
program
voltage
reference value
loop
value
Prior art date
Application number
KR1020220079275A
Other languages
Korean (ko)
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 US17/941,570 priority Critical patent/US20230091724A1/en
Priority to EP22195148.6A priority patent/EP4152330A1/en
Priority to CN202211130743.1A priority patent/CN115831178A/en
Publication of KR20230041582A publication Critical patent/KR20230041582A/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/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/26Sensing or reading circuits; Data output 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

  • Read Only Memory (AREA)

Abstract

A nonvolatile memory device, a storage device including the same, and a program operating method of the nonvolatile memory are disclosed. The program operating method of a nonvolatile memory according to the technical idea of the present disclosure includes the steps of: performing a first program loop, wherein the first program loop applies a first program voltage; sensing a first sensing value corresponding to an output based on a first verification voltage; and counting the number of on-cells based on the first sensing value, determining whether the first program state passes according to a result of comparing the first count value and the reference value, and setting a second program voltage in a second program loop.

Description

저장 장치, 비휘발성 메모리, 비휘발성 메모리의 프로그램 동작 방법{STORAGE DEVICE, NON-VOLATILE MEMORY, AND OPERATING MEHTOD OF NON-VOLATILE MEMORY}Storage device, non-volatile memory, program operation method of non-volatile memory

본 개시의 기술적 사상은 전자 장치에 관한 것이며, 저장 장치, 비휘발성 메모리, 비휘발성 메모리의 프로그램 동작 방법에 관한 것이다.The technical idea of the present disclosure relates to an electronic device, a storage device, a non-volatile memory, and a program operating method of the non-volatile memory.

반도체 메모리 장치에는 DRAM, SRAM 등과 같은 휘발성 메모리와 EEPROM, FRAM, PRAM, MRAM, Flash Memory 등과 같은 비휘발성 메모리로 구분될 수 있다. 휘발성 메모리 장치는 전원 공급이 차단되면 저장된 데이터를 잃는, 반면, 비휘발성 메모리는 전원이 차단되더라도 저장된 데이터를 보존한다. Semiconductor memory devices may be classified into volatile memories such as DRAM and SRAM and non-volatile memories such as EEPROM, FRAM, PRAM, MRAM, and flash memories. A volatile memory device loses stored data when power supply is cut off, whereas a non-volatile memory device retains stored data even when power is cut off.

비휘발성 메모리를 사용하는 장치들로는, 예를 들어, MP3 플레이어, 디지털 카메라, 휴대전화, 캠코더, 플래시 카드 및 SSD(Solid State Disk) 등이 있다. 저장장치로 비휘발성 메모리를 사용하는 장치들이 증가하면서, 비휘발성 메모리의 용량도 급속히 증가하고 있다. Devices using non-volatile memory include, for example, an MP3 player, a digital camera, a mobile phone, a camcorder, a flash card, and a solid state disk (SSD). As the number of devices using non-volatile memory as a storage device increases, the capacity of the non-volatile memory is also rapidly increasing.

프로그램 방법으로는 ISPP(Increment Step Pulse Program) 방식에 의한 프로그램 동작이 사용될 수 있고, 프로그램 전압 펄스가 메모리 셀들에 제공된 후 검증 전압을 이용하여 메모리 셀들의 프로그램 상태를 검증할 수 있다. 이에, 전체 프로그램 시간을 감소시키기 위한 연구가 증대되고 있다. As a program method, a program operation based on an increment step pulse program (ISPP) method may be used, and after a program voltage pulse is applied to memory cells, a program state of memory cells may be verified using a verification voltage. Accordingly, research to reduce the total program time is increasing.

본 개시의 기술적 사상은, 프로그램 동작의 속도를 개선하기 위한 저장 장치, 비휘발성 메모리, 비휘발성 메모리의 프로그램 동작 방법을 제공한다.The technical spirit of the present disclosure provides a storage device, a non-volatile memory, and a program operation method of the non-volatile memory for improving the speed of a program operation.

본 개시의 기술적 사상에 따른 비휘발성 메모리의 프로그램 동작 방법은 복수의 메모리 셀들에 대하여 적어도 하나의 프로그램 루프를 수행하고, 적어도 하나의 프로그램 루프의 제1 프로그램 루프는, 제1 프로그램 전압을 인가하는 프로그램 단계, 제1 검증 전압에 기반한 출력에 대응되는 제1 센싱 값을 센싱하는 검증 단계, 및 제1 센싱 값을 기초로 온셀(On cell)의 개수를 카운트하고, 제1 카운트 값과 적어도 하나의 기준 값을 비교하여, 비교 결과에 따라 제1 프로그램 상태의 패스 여부를 판단하고 제1 프로그램 루프 이후의 제2 프로그램 루프에서의 제2 프로그램 전압을 설정하는 패스 확인 단계를 포함한다.A program operation method of a nonvolatile memory according to the technical idea of the present disclosure includes performing at least one program loop on a plurality of memory cells, and a first program loop of the at least one program loop applies a first program voltage. Step, a verification step of sensing a first sensing value corresponding to an output based on a first verification voltage, and counting the number of on cells based on the first sensing value, and measuring the first count value and at least one reference and a pass checking step of comparing the values, determining whether the first program state has passed according to the comparison result, and setting a second program voltage in a second program loop after the first program loop.

또한, 본 개시의 기술적 사상에 따른 비휘발성 메모리는, 복수의 메모리 셀들을 포함하는 메모리 셀 어레이, 복수의 워드 라인들을 통해 메모리 셀 어레이와 연결되고, 복수의 워드 라인들 중 선택된 워드 라인에 전압을 제공하는 전압 생성기, 복수의 비트 라인들을 통해 메모리 셀 어레이와 연결되고, 각 비트 라인을 통해 센싱 값을 센싱하는 페이지 버퍼 회로, 및 복수의 메모리 셀들에 대하여 적어도 하나의 프로그램 루프를 수행하도록 구성된 제어 로직을 포함하고, 제어 로직은, 적어도 하나의 프로그램 루프의 제1 프로그램 루프를 수행하고, 제1 프로그램 루프에서의 제1 프로그램 전압을 인가하도록 전압 생성기를 제어하고, 제1 프로그램 루프에서의 제1 검증 전압을 인가하도록 전압 생성기를 제어하고, 제1 검증 전압에 기반한 출력에 대응되는 제1 센싱 값을 센싱하도록 페이지 버퍼 회로를 제어하고, 제1 센싱 값을 기초로 온셀(On cell)의 개수를 카운트하고, 제1 카운트 값과 미리 저장된 적어도 하나의 기준 값을 비교하여, 비교 결과에 따라 제1 프로그램 상태의 패스 여부를 판단하고 제1 프로그램 루프 이후의 제2 프로그램 루프에서의 제2 프로그램 전압을 설정한다.In addition, a nonvolatile memory according to the technical concept of the present disclosure is connected to the memory cell array through a memory cell array including a plurality of memory cells, a plurality of word lines, and applies a voltage to a selected word line among the plurality of word lines. A voltage generator connected to the memory cell array through a plurality of bit lines, a page buffer circuit configured to sense a sensed value through each bit line, and a control logic configured to perform at least one program loop on the plurality of memory cells. wherein the control logic performs a first program loop of the at least one program loop, controls the voltage generator to apply a first program voltage in the first program loop, and performs a first verification in the first program loop. Control a voltage generator to apply voltage, control a page buffer circuit to sense a first sensed value corresponding to an output based on a first verification voltage, and count the number of on cells based on the first sensed value and compares the first count value with at least one reference value stored in advance, determines whether the first program state passes or not according to the comparison result, and sets a second program voltage in a second program loop after the first program loop. do.

또한, 본 개시의 기술적 사상에 따른 본 개시의 기술적 사상에 따른 비휘발성 메모리의 프로그램 동작 방법은 복수의 싱글 레벨 셀들에 대하여 제1 프로그램 루프를 수행하고, 제1 프로그램 루프는, 제1 프로그램 전압을 인가하는 프로그램 단계, 제1 검증 전압에 기반한 출력에 대응되는 제1 센싱 값을 센싱하는 검증 단계, 및 제1 센싱 값을 기초로 온셀(On cell)의 개수를 카운트하고, 제1 카운트 값과 복수의 기준 범위들을 비교하여, 비교 결과에 따라 프로그램 상태의 패스 여부를 판단하고 제1 프로그램 루프 이후의 제2 프로그램 루프에서의 제2 프로그램 전압을 설정하는 패스 확인 단계를 포함한다.In addition, a program operating method of a nonvolatile memory according to the technical idea of the present disclosure performs a first program loop on a plurality of single-level cells, and the first program loop generates a first program voltage. A program step of applying, a verification step of sensing a first sensing value corresponding to an output based on the first verification voltage, and counting the number of on cells based on the first sensing value, and calculating the first count value and a plurality of and a pass confirmation step of comparing reference ranges of , determining whether the program state passes according to the comparison result, and setting a second program voltage in a second program loop after the first program loop.

또한, 본 개시의 기술적 사상에 따른 저장 장치는 메모리 컨트롤러 및 비휘발성 메모리를 포함하고, 비휘발성 메모리는, 복수의 메모리 셀들을 포함하는 메모리 셀 어레이, 복수의 워드 라인들을 통해 메모리 셀 어레이와 연결되고, 복수의 워드 라인들 중 선택된 워드 라인에 전압을 제공하는 전압 생성기, 복수의 비트 라인들을 통해 메모리 셀 어레이와 연결되고, 각 비트 라인을 통해 센싱 값을 센싱하는 페이지 버퍼 회로, 및 복수의 메모리 셀들에 대하여 적어도 하나의 프로그램 루프를 수행하도록 구성된 제어 로직을 포함하고, 제어 로직은, 적어도 하나의 프로그램 루프의 제1 프로그램 루프를 수행하고, 제1 프로그램 루프에서의 제1 프로그램 전압을 인가하도록 전압 생성기를 제어하고, 제1 프로그램 루프에서의 제1 검증 전압을 인가하도록 전압 생성기를 제어하고, 제1 검증 전압에 기반한 출력에 대응되는 제1 센싱 값을 센싱하도록 페이지 버퍼 회로를 제어하고, 제1 센싱 값을 기초로 온셀(On cell)의 개수를 카운트하고, 제1 카운트 값과 미리 저장된 적어도 하나의 기준 값을 비교하여, 비교 결과에 따라 제1 프로그램 상태의 패스 여부를 판단하고 제1 프로그램 루프 이후의 제2 프로그램 루프에서의 제2 프로그램 전압을 설정한다.In addition, a storage device according to the technical idea of the present disclosure includes a memory controller and a non-volatile memory, and the non-volatile memory is connected to the memory cell array through a memory cell array including a plurality of memory cells and a plurality of word lines. , a voltage generator for providing a voltage to a selected word line among a plurality of word lines, a page buffer circuit connected to the memory cell array through a plurality of bit lines and sensing a sensed value through each bit line, and a plurality of memory cells. and control logic configured to perform at least one program loop for the voltage generator to perform a first program loop of the at least one program loop and to apply a first program voltage in the first program loop. Controls the voltage generator to apply a first verification voltage in the first program loop, controls the page buffer circuit to sense a first sensing value corresponding to an output based on the first verification voltage, and controls the first sensing The number of on-cells is counted based on the value, the first count value is compared with at least one reference value stored in advance, and whether or not the first program state passes is determined according to the comparison result, and after the first program loop Set the second program voltage in the second program loop of

본 개시의 기술적 사상에 의하면, 프로그램 동작의 속도를 개선하는 효과가 있다.According to the technical idea of the present disclosure, there is an effect of improving the speed of program operation.

본 개시의 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 아니하며, 언급되지 아니한 다른 효과들은 이하의 기재로부터 본 개시의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 개시의 실시예들을 실시함에 따른 의도하지 아니한 효과들 역시 본 개시의 실시예들로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.Effects obtainable from the embodiments of the present disclosure are not limited to the above-mentioned effects, and other effects not mentioned above can be obtained from the following description to those of ordinary skill in the art to which the embodiments of the present disclosure belong. can be clearly derived and understood. That is, unintended effects according to the implementation of the embodiments of the present disclosure may also be derived by those skilled in the art from the embodiments of the present disclosure.

도 1은 본 개시의 일 실시예에 따른 저장 장치를 설명하기 위한 도면이다.
도 2는 본 개시의 일 실시예에 따른 비휘발성 메모리를 설명하기 위한 도면이다.
도 3은 본 개시의 일 실시예에 따른 메모리 블록을 나타내는 회로도이다.
도 4는 본 개시의 다른 실시예에 따른 메모리 블록을 나타내는 회로도이다.
도 5는 도 4의 회로도에 따른 메모리 블록을 나타내는 사시도이다.
도 6은 본 개시의 일 실시예에 따른 프로그램 동작에서 프로그램 전압 인가 방법을 설명하기 위한 타이밍도이다.
도 7은 본 개시의 일 실시예에 따른 프로그램 동작에서 검증 전압 인가 방법을 설명하기 위한 타이밍도이다.
도 8a, 도 8b, 및 도 8c는 본 개시에 따른 메모리 셀들의 문턱 전압의 분포를 예시적으로 나타낸 도면들이다.
도 9는 본 개시의 일 실시예에 따른 제1 프로그램 루프에서의 프로그램 동작 방법을 설명하기 위한 흐름도이다.
도 10은 본 개시의 다른 실시예에 따른 프로그램 동작 방법을 구체적으로 설명하기 위한 흐름도이다.
도 11은 본 개시의 일 실시예에 따른 온셀을 카운트하는 방법을 설명하기 위한 도면이다.
도 12는 싱글 레벨 셀에 대한 프로그램 동작 방법의 일 실시예를 설명하기 위한 도면이다.
도 13은 싱글 레벨 셀에 대한 프로그램 동작 방법의 다른 실시예를 설명하기 위한 도면이다.
도 14는 싱글 레벨 셀에 대한 프로그램 동작 방법의 또 다른 실시예를 설명하기 위한 도면이다.
도 15는 본 개시의 일 실시예에 따른 컴퓨팅 시스템을 나타내는 블록도이다.
도 16은 본 개시의 일 실시예에 따른 컴퓨팅 시스템을 솔리드 스테이트 장치를 나타내는 블록도이다.
1 is a diagram for explaining a storage device according to an exemplary embodiment of the present disclosure.
2 is a diagram for explaining a non-volatile memory according to an embodiment of the present disclosure.
3 is a circuit diagram illustrating a memory block according to an exemplary embodiment of the present disclosure.
4 is a circuit diagram illustrating a memory block according to another exemplary embodiment of the present disclosure.
FIG. 5 is a perspective view illustrating a memory block according to the circuit diagram of FIG. 4 .
6 is a timing diagram illustrating a method of applying a program voltage in a program operation according to an embodiment of the present disclosure.
7 is a timing diagram illustrating a method of applying a verification voltage in a program operation according to an embodiment of the present disclosure.
8A, 8B, and 8C are diagrams illustrating threshold voltage distributions of memory cells according to an exemplary embodiment of the present disclosure.
9 is a flowchart illustrating a method of operating a program in a first program loop according to an embodiment of the present disclosure.
10 is a flowchart for specifically explaining a program operation method according to another embodiment of the present disclosure.
11 is a diagram for explaining a method of counting on-cells according to an embodiment of the present disclosure.
12 is a diagram for explaining an embodiment of a method of operating a program for a single-level cell.
13 is a diagram for explaining another embodiment of a method of operating a program for a single-level cell.
14 is a diagram for explaining another embodiment of a method of operating a program for a single-level cell.
15 is a block diagram illustrating a computing system according to an embodiment of the present disclosure.
16 is a block diagram illustrating a solid state device of a computing system according to an embodiment of the present disclosure.

이하, 첨부한 도면을 참조하여 본 개시의 실시예에 대해 상세히 설명한다.Hereinafter, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings.

도 1은 본 개시의 일 실시예에 따른 저장 장치(100)를 설명하기 위한 도면이다.1 is a diagram for explaining a storage device 100 according to an embodiment of the present disclosure.

도 1을 참조하면, 저장 장치(100)는 메모리 컨트롤러(110) 및 비휘발성 메모리(120)를 포함할 수 있다. Referring to FIG. 1 , a storage device 100 may include a memory controller 110 and a non-volatile memory 120 .

메모리 컨트롤러(110)는 호스트로부터의 기록/독출 요청에 응답하여 비휘발성 메모리(120)에 저장된 데이터(DATA)를 독출하거나, 비휘발성 메모리(120)에 데이터(DATA)를 기록(또는, 프로그램)하도록 비휘발성 메모리(120)를 제어할 수 있다. 구체적으로, 메모리 컨트롤러(110)는 비휘발성 메모리(120)에 커맨드/어드레스(CMD/ADD) 및 제어 신호(CTRL)를 제공함으로써, 비휘발성 메모리(120)에 대한 프로그램, 독출 및 소거 동작을 제어할 수 있다. 또한, 기록될 데이터와 독출된 데이터가 메모리 컨트롤러(110)와 비휘발성 메모리(120) 사이에서 송수신될 수 있다.The memory controller 110 reads data DATA stored in the non-volatile memory 120 in response to a write/read request from the host, or writes (or programs) the data DATA into the non-volatile memory 120. The non-volatile memory 120 may be controlled to Specifically, the memory controller 110 controls program, read, and erase operations of the nonvolatile memory 120 by providing a command/address (CMD/ADD) and a control signal (CTRL) to the nonvolatile memory 120 . can do. Also, data to be written and read data may be transmitted and received between the memory controller 110 and the nonvolatile memory 120 .

메모리 컨트롤러(110)는 외부의 호스트와 다양한 표준 인터페이스들을 통해 통신할 수 있다. 예컨대, 메모리 컨트롤러(110)는 인터페이스 회로(미도시)를 포함하고, 인터페이스 회로는 호스트와 메모리 컨트롤러(110) 사이의 각종 표준 인터페이스를 제공할 수 있다. 표준 인터페이스는, ATA(advanced technology attachment), SATA(serial ATA), e-SATA(external SATA), SCSI(small computer small interface), SAS(serial attached SCSI), PCI(peripheral component interconnection), PCI-E(PCI express), IEEE 1394, USB(universal serial bus), SD(secure digital) 카드, MMC(multi media card), eMMC(embedded multi media card), 유니버설 플래시 기억장치(UFS), CF(compact flash) 카드 인터페이스 등과 같은 다양한 인터페이스 방식들을 포함할 수 있다. The memory controller 110 may communicate with an external host through various standard interfaces. For example, the memory controller 110 includes an interface circuit (not shown), and the interface circuit may provide various standard interfaces between a host and the memory controller 110 . Standard interfaces include advanced technology attachment (ATA), serial ATA (SATA), external SATA (e-SATA), small computer small interface (SCSI), serial attached SCSI (SAS), peripheral component interconnection (PCI), PCI-E (PCI express), IEEE 1394, USB (universal serial bus), SD (secure digital) card, MMC (multi media card), eMMC (embedded multi media card), universal flash storage (UFS), CF (compact flash) It may include various interface methods such as a card interface.

비휘발성 메모리(120)는 플래시 메모리 셀들을 포함하는 플래시 메모리 장치일 수 있다. 하지만, 이에 한정되는 것은 아니다. 이하에서 본 개시의 실시예들이 설명됨에 있어서, 비휘발성 메모리(120)가 플래시 메모리 셀들을 포함하는 플래시 메모리 장치인 것으로 가정된다. 플래시 메모리 셀은 메모리 셀로 지칭될 수 있다.The non-volatile memory 120 may be a flash memory device including flash memory cells. However, it is not limited thereto. In describing embodiments of the present disclosure below, it is assumed that the non-volatile memory 120 is a flash memory device including flash memory cells. A flash memory cell may be referred to as a memory cell.

비휘발성 메모리(120)는 메모리 셀 어레이를 포함할 수 있다. 메모리 셀 어레이는 복수의 워드 라인들과 복수의 비트 라인들이 교차하는 영역들에 배치되는 복수의 메모리 셀들을 포함할 수 있다. 메모리 셀들은 프로그램된 데이터에 따라 다수의 문턱 전압 분포들을 가질 수 있다. 예컨대, 메모리 셀이 하나의 메모리 셀 당 하나의 비트를 저장하는 싱글 레벨 셀(이하, SLC)인 경우, 메모리 셀들은 프로그램 상태에 따라 두 개의 문턱 전압 분포들을 가질 수 있다. 다른 예를 들면, 메모리 셀이 하나의 메모리 셀 당 두 개의 비트를 저장하는 멀티 레벨 셀(이하, MLC)인 경우, 메모리 셀들은 프로그램 상태에 따라 4 개의 문턱 전압 분포들을 가질 수 있다. 또 다른 예를 들면, 또한, 메모리 셀이 하나의 메모리 셀 당 세 개 이상의 비트를 저장하는 경우, 메모리 셀들은 프로그램 상태에 따라 8 개 이상의 문턱 전압 분포들을 가질 수 있다.The non-volatile memory 120 may include a memory cell array. The memory cell array may include a plurality of memory cells disposed in regions where a plurality of word lines and a plurality of bit lines intersect. Memory cells may have multiple threshold voltage distributions according to programmed data. For example, when memory cells are single-level cells (hereinafter referred to as SLCs) storing one bit per memory cell, the memory cells may have two threshold voltage distributions according to a program state. For another example, if the memory cells are multi-level cells (hereinafter referred to as MLCs) storing two bits per memory cell, the memory cells may have four threshold voltage distributions according to program states. As another example, when a memory cell stores three or more bits per memory cell, the memory cells may have eight or more threshold voltage distributions according to a program state.

비휘발성 메모리(120)가 복수의 메모리 셀들에 대하여 프로그램 동작을 수행함에 있어서, 다수의 프로그램 루프들이 수행될 수 있다. 각 프로그램 루프가 수행될 때, 각 프로그램 루프에서 복수의 메모리 셀들이 특정 프로그램 상태를 갖도록 하기 위해 프로그램 전압을 인가하는 동작이 수행될 수 있다. 각 프로그램 루프에서 프로그램 상태의 패스 여부를 판별하기 위해 복수의 메모리 셀들의 출력을 센싱하는 동작이 수행될 수 있다. 또한, 각 프로그램 루프에서 센싱 값을 이용하여 프로그램 상태의 패스 여부를 판단하는 동작이 수행될 수 있다. When the nonvolatile memory 120 performs a program operation on a plurality of memory cells, a plurality of program loops may be performed. When each program loop is performed, an operation of applying a program voltage may be performed to have a plurality of memory cells have a specific program state in each program loop. In each program loop, an operation of sensing outputs of a plurality of memory cells may be performed to determine whether the program state passes. Also, in each program loop, an operation of determining whether a program state has passed may be performed using a sensing value.

일 실시예에서, 각 메모리 셀이 SLC인 경우, 문턱 전압 분포는 소거 상태 또는 제1 프로그램 상태를 가질 수 있다. 제1 프로그램 상태로 프로그램될 메모리 셀들에 대해 센싱 동작이 수행되는 경우, 다수의 메모리 셀들에 연결된 비트 라인들 중 제1 프로그램 상태로 프로그램될 메모리 셀들에 연결된 비트 라인들에 대해서만 선택적으로 프리차지 동작이 수행될 수 있다. In one embodiment, when each memory cell is an SLC, the threshold voltage distribution may have an erase state or a first program state. When a sensing operation is performed on memory cells to be programmed in the first program state, a precharge operation is selectively performed on only bit lines connected to memory cells to be programmed in the first program state among bit lines connected to a plurality of memory cells. can be performed

메모리 컨트롤러(110) 및 비휘발성 메모리(120)는 하나의 반도체 장치로 집적될 수 있다. 예시적으로, 메모리 컨트롤러(110) 및 비휘발성 메모리(120)는 하나의 반도체 장치로 집적되어, 메모리 카드를 구성할 수 있다. 예를 들어, 비휘발성 메모리(120) 및 메모리 컨트롤러(110)는 하나의 반도체 장치로 집적되어 PC 카드, 컴팩트 플래시 카드, 스마트 미디어 카드, 메모리 스틱, 멀티미디어 카드, SD 카드, 유니버설 플래시 기억장치 등을 구성할 수 있다. 다른 예를 들면, 메모리 컨트롤러(110) 및 비휘발성 메모리(120)는 하나의 반도체 장치로 집적되어 SSD(Solid State Disk/Drive)를 구성할 수 있다.The memory controller 110 and the nonvolatile memory 120 may be integrated into a single semiconductor device. For example, the memory controller 110 and the nonvolatile memory 120 may be integrated into a single semiconductor device to form a memory card. For example, the non-volatile memory 120 and the memory controller 110 are integrated into a single semiconductor device and can be used for PC cards, compact flash cards, smart media cards, memory sticks, multimedia cards, SD cards, universal flash storage devices, and the like. can be configured. For another example, the memory controller 110 and the nonvolatile memory 120 may be integrated into a single semiconductor device to form a Solid State Disk/Drive (SSD).

도 2는 본 개시의 일 실시예에 따른 비휘발성 메모리(200)를 설명하기 위한 도면이다.2 is a diagram for explaining a nonvolatile memory 200 according to an embodiment of the present disclosure.

도 2를 참조하면, 비휘발성 메모리(200)는 메모리 셀 어레이(210), 제어 로직(220), 전압 생성기(230), 로우 디코더(240) 및 페이지 버퍼 회로(250)를 포함할 수 있다. 다른 실시예에서는 비휘발성 메모리(200)는 데이터 입출력 회로 또는 입출력 인터페이스를 더 포함할 수 있다.Referring to FIG. 2 , the nonvolatile memory 200 may include a memory cell array 210, a control logic 220, a voltage generator 230, a row decoder 240, and a page buffer circuit 250. In another embodiment, the nonvolatile memory 200 may further include a data input/output circuit or an input/output interface.

메모리 셀 어레이(210)는 복수의 메모리 셀들을 포함하고, 워드 라인들(word line, WL), 스트링 선택 라인들(string selection line, SSL), 그라운드 선택 라인들(ground selection line, GSL) 및 복수의 비트 라인들(bit line, BL)에 연결될 수 있다. 구체적으로, 메모리 셀 어레이(210)는 워드 라인들(WL), 스트링 선택 라인들(SSL) 및 그라운드 선택 라인들(GSL)을 통해 로우 디코더(240)에 연결되고, 복수의 비트 라인들(BL)을 통해 페이지 버퍼 회로(250)에 연결될 수 있다.The memory cell array 210 includes a plurality of memory cells, and includes word lines (WL), string selection lines (SSL), ground selection lines (GSL), and a plurality of It may be connected to the bit lines (bit line, BL) of. Specifically, the memory cell array 210 is connected to the row decoder 240 through word lines WL, string select lines SSL, and ground select lines GSL, and includes a plurality of bit lines BL. ) to the page buffer circuit 250.

메모리 셀 어레이(210)는 복수의 블록들(BLK1 내지 BLKz)을 포함할 수 있다. 예를 들면, 복수의 블록들(BLK1 내지 BLKz) 각각은 3차원 구조(또는 수직 구조)를 가질 수 있다. 구체적으로, 각 블록은 제1 내지 제3 방향들을 따라 신장된 구조물들을 포함한다. 예를 들면, 각 블록은 제3 방향을 따라 신장된 복수의 낸드 스트링들(이하 '스트링들'이라 지칭함)을 포함한다. 이때, 복수의 스트링들은 제1 및 제2 방향들을 따라 특정 거리만큼 이격되어 제공될 수 있다. 블록들(BLK1 내지 BLKz)은 로우 디코더(240)에 의해 선택될 수 있다. 예를 들면, 로우 디코더(240)는 블록들(BLK1 내지 BLKz) 중 블록 어드레스에 대응하는 블록을 선택할 수 있다.The memory cell array 210 may include a plurality of blocks BLK1 to BLKz. For example, each of the plurality of blocks BLK1 to BLKz may have a 3D structure (or vertical structure). Specifically, each block includes structures extending along the first to third directions. For example, each block includes a plurality of NAND strings (hereinafter referred to as 'strings') extending along the third direction. At this time, a plurality of strings may be provided spaced apart by a specific distance along the first and second directions. Blocks BLK1 to BLKz may be selected by the row decoder 240 . For example, the row decoder 240 may select a block corresponding to a block address from among the blocks BLK1 to BLKz.

메모리 셀 어레이(210)에 포함되는 메모리 셀들 각각은 적어도 1개 이상의 비트들을 저장할 수 있다. 예를 들어, 메모리 셀은 1 비트의 데이터를 저장하는 SLC일 수 있다. 다른 예를 들어, 메모리 셀은 2 비트의 데이터를 저장하는 MLC일 수 있다. 또 다른 예를 들어, 메모리 셀은 3 비트의 데이터를 저장하는 트리플 레벨 셀(이하, TLC)일 수 있다. 또 다른 예를 들어, 메모리 셀은 4 비트 데이터를 저장하는 쿼드 레벨 셀(또는 쿼드라플 레벨 셀, 이하 QLC)일 수도 있다. 그러나, 본 개시는 이에 한정되지 않는다.Each of the memory cells included in the memory cell array 210 may store at least one bit. For example, a memory cell may be an SLC that stores 1 bit of data. For another example, the memory cell may be an MLC that stores 2-bit data. As another example, the memory cell may be a triple level cell (hereinafter referred to as TLC) that stores 3-bit data. For another example, the memory cell may be a quad-level cell (or quadruple-level cell, hereinafter referred to as QLC) that stores 4-bit data. However, the present disclosure is not limited thereto.

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

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

제어 로직(220)은 비휘발성 메모리(200) 내의 각종 동작을 전반적으로 제어할 수 있다. 예를 들어, 제어 로직(220)은 메모리 컨트롤러(210)로부터 수신한 커맨드(CMD), 어드레스(ADDR) 및 제어 신호(CTRL)를 기초로 하여, 메모리 셀 어레이(210)에 데이터(DATA)를 기입하거나 메모리 셀 어레이(210)로부터 데이터(DATA)를 독출하기 위한 각종 제어 신호를 출력할 수 있다. 일 실시예에서, 복수의 메모리 셀들이 프로그램되는 경우, 제어 로직(220)은 적어도 하나의 프로그램 루프가 순차적으로 수행되도록 비휘발성 메모리(200) 내의 각종 동작을 전반적으로 제어할 수 있다. 이때, 메모리 셀들이 SLC인 경우, 제1 프로그램 루프만이 수행될 수도 있다. The control logic 220 may overall control various operations within the nonvolatile memory 200 . For example, the control logic 220 transmits data DATA to the memory cell array 210 based on the command CMD, address ADDR, and control signal CTRL received from the memory controller 210 . Various control signals for writing or reading data DATA from the memory cell array 210 may be output. In one embodiment, when a plurality of memory cells are programmed, the control logic 220 may generally control various operations in the nonvolatile memory 200 so that at least one program loop is sequentially performed. In this case, when the memory cells are SLC, only the first program loop may be performed.

제어 로직(220)에서 출력된 각종 제어 신호는 전압 생성기(230), 로우 디코더(240) 및 페이지 버퍼 회로(250)에 제공될 수 있다. 제어 로직(220)은 전압 생성기(230)에 전압 제어 신호(CTRL_vol)를 제공할 수 있다. 일 실시예에서, 제어 로직(220)은, 프로그램 동작에 있어서, 메모리 셀 어레이(210)에 제공되는 프로그램 전압 및 검증 전압의 생성을 제어하기 위한 전압 제어 신호(CTRL_vol)를 생성할 수 있다. Various control signals output from the control logic 220 may be provided to the voltage generator 230 , the row decoder 240 and the page buffer circuit 250 . The control logic 220 may provide the voltage control signal CTRL_vol to the voltage generator 230 . In an embodiment, the control logic 220 may generate a voltage control signal CTRL_vol for controlling generation of a program voltage and a verify voltage provided to the memory cell array 210 in a program operation.

일 실시예에서, 제어 로직(220)은 전압 생성기(230)가 각 프로그램 루프에서 적어도 하나의 검증 전압 및 적어도 하나의 프로그램 전압을 생성하도록 전압 생성기(230)를 제어할 수 있고, 제어 로직(220)은 프로그램 루프 횟수가 증가함에 따라 레벨이 변경되는 프로그램 전압을 생성하도록 전압 생성기(230)를 제어할 수 있다. 예를 들어, 프로그램 루프 횟수가 증가함에 따라, 제어 로직(220)은 스텝 전압만큼 증가된 레벨을 가지는 프로그램 전압을 생성하도록 전압 생성기(230)를 제어할 수 있다. In one embodiment, control logic 220 may control voltage generator 230 such that voltage generator 230 generates at least one verify voltage and at least one program voltage in each program loop, and control logic 220 ) may control the voltage generator 230 to generate a program voltage whose level is changed as the number of program loops increases. For example, as the number of program loops increases, the control logic 220 may control the voltage generator 230 to generate a program voltage having a level increased by the step voltage.

다른 실시예에서, 제어 로직(220)은 복수의 메모리 셀들에 대하여 제1 프로그램 루프를 수행할 수 있다. 제어 로직(220)은 제1 프로그램 루프에서의 제1 프로그램 전압을 인가하도록 전압 생성기(230)를 제어할 수 있다. 그리고, 제어 로직(220)은 제1 프로그램 루프에서의 제1 검증 전압을 인가하도록 전압 생성기(230)를 제어할 수 있다. 제어 로직(220)은 제1 검증 전압에 기반한 출력에 대응되는 제1 센싱 값을 센싱하도록 페이지 버퍼 회로(250)를 제어할 수 있다. 제어 로직(220)은 제1 센싱 값을 기초로 온셀(On cell)의 개수를 카운트할 수 있다. 여기서, 온셀은 제1 검증 전압보다 낮은 문턱 전압을 갖는 메모리 셀일 수 있다. 온셀은 슬로우 셀(slow cell)로 지칭될 수 있다. 한편, 제어 로직(220)은 제1 카운트 값과 미리 저장된 적어도 하나의 기준 값을 비교하여, 비교 결과에 따라 제1 프로그램 상태의 패스 여부를 판단하고 제1 프로그램 루프 이후의 제2 프로그램 루프에서의 제2 프로그램 전압을 설정할 수 있다. 이에 대한 구체적인 설명은 도 9, 10, 및 12를 참조하여 후술된다. 적어도 하나의 기준 값은 제어 로직(220) 내부에 이퓨즈(eFuse) 방식으로 저장될 수 있다.In another embodiment, the control logic 220 may perform a first program loop on a plurality of memory cells. The control logic 220 may control the voltage generator 230 to apply the first program voltage in the first program loop. Also, the control logic 220 may control the voltage generator 230 to apply the first verification voltage in the first program loop. The control logic 220 may control the page buffer circuit 250 to sense a first sensed value corresponding to an output based on the first verification voltage. The control logic 220 may count the number of on cells based on the first sensing value. Here, the on-cell may be a memory cell having a threshold voltage lower than the first verification voltage. An on-cell may be referred to as a slow cell. Meanwhile, the control logic 220 compares the first count value with at least one reference value stored in advance, determines whether or not the first program state passes according to the comparison result, and determines whether the first program state passes or not in the second program loop after the first program loop. A second program voltage may be set. A detailed description thereof will be described later with reference to FIGS. 9, 10, and 12 . At least one reference value may be stored in the control logic 220 using an eFuse method.

전압 생성기(230)는 복수의 워드 라인들(WL)을 통해 메모리 셀 어레이(210)와 연결될 수 있다. 전압 생성기(230)는 전압 제어 신호(CTRL_vol)를 기초로 하여 메모리 셀 어레이(210)에 대한 프로그램, 독출 및 소거 동작을 수행하기 위한 다양한 종류의 전압들을 생성할 수 있다. 전압 생성기(230)는 워드 라인 전압(VWL), 예를 들어, 프로그램 전압, 검증 전압 등을 생성할 수 있다. The voltage generator 230 may be connected to the memory cell array 210 through a plurality of word lines WL. The voltage generator 230 may generate various types of voltages for performing program, read, and erase operations on the memory cell array 210 based on the voltage control signal CTRL_vol. The voltage generator 230 may generate a word line voltage VWL, eg, a program voltage and a verify voltage.

일 실시예에서, 전압 생성기(230)는 전압 제어 신호(CTRL_vol)를 기초로 하여 프로그램 루프 횟수가 증가함에 따라 레벨이 변경되는 프로그램 전압 및 검증 전압을 생성할 수 있다. 프로그램 루프가 수행될 때, 일 실시예에 따른 프로그램 방법은 ISPP(Incremental step pulse programming) 방식으로 수행될 수 있으며, 전압 생성기(230)는 프로그램 루프가 수행될 때마다 종전 프로그램 전압보다 스텝 전압만큼 전압 레벨이 높아지는 프로그램 전압을 생성할 수 있다.In an embodiment, the voltage generator 230 may generate a program voltage and a verification voltage whose levels change as the number of program loops increases based on the voltage control signal CTRL_vol. When the program loop is performed, the program method according to an embodiment may be performed in an incremental step pulse programming (ISPP) method, and the voltage generator 230 generates a voltage equal to a step voltage higher than the previous program voltage each time the program loop is performed. A program voltage whose level increases may be generated.

다른 실시예에서, 전압 생성기(230)는 제1 프로그램 루프에서 센싱된 제1 카운트 값에 기초하여 설정되는 제2 프로그램 루프에서의 제2 프로그램 전압을 생성할 수 있다.In another embodiment, the voltage generator 230 may generate a second program voltage in the second program loop that is set based on the first count value sensed in the first program loop.

전압 생성기(230)에 의해 생성된 프로그램 전압, 검증 전압 등은, 복수의 워드 라인들(WL) 중 선택된 워드 라인에 제공될 수 있다. 선택된 워드 라인은 로우 어드레스(X-ADDR)에 의해 선택되는 적어도 하나의 워드 라인일 수 있다.The program voltage, verify voltage, etc. generated by the voltage generator 230 may be provided to a selected word line among the plurality of word lines WL. The selected word line may be at least one word line selected by the row address X-ADDR.

로우 디코더(240)는 제어 로직(220)으로부터 수신한 로우 어드레스(X-ADDR)에 응답하여 워드 라인들(WL) 중 특정 워드 라인을 선택할 수 있다. 구체적으로, 프로그램 동작 시에 로우 디코더(240)는 선택된 워드 라인에 프로그램 전압을 제공할 수 있다. 또한, 로우 디코더(240)는 제어 로직(220)으로부터 수신한 로우 어드레스(X-ARRD)에 응답하여 스트링 선택 라인들(SSL) 중 일부 스트링 선택 라인 또는 그라운드 선택 라인들(GSL) 중 일부 그라운드 선택 라인을 선택할 수 있다. The row decoder 240 may select a specific word line among the word lines WL in response to the row address X-ADDR received from the control logic 220 . Specifically, during a program operation, the row decoder 240 may provide a program voltage to a selected word line. In addition, the row decoder 240 selects some of the string selection lines SSL or some of the ground selection lines GSL in response to the row address X-ARRD received from the control logic 220. line can be selected.

페이지 버퍼 회로(250)는 복수의 비트 라인들(BL)을 통해 메모리 셀 어레이(210)에 연결될 수 있다. 페이지 버퍼 회로(250)는 제어 로직(220)으로부터 수신한 칼럼 어드레스(Y-ADDR)에 응답하여 복수의 비트 라인들(BL) 중 일부 비트 라인을 선택할 수 있다. 프로그램 동작 또는 독출 동작 시에 페이지 버퍼 회로(250)는 감지 증폭기(sense amplifier)로 동작하여 메모리 셀 어레이(210)에 저장된 데이터(DATA)를 센싱할 수 있다. 한편, 프로그램 동작 시에 페이지 버퍼 회로(250)는 기입 드라이버(write driver)로 동작하여 메모리 셀 어레이(210)에 저장하고자 하는 데이터(DATA)를 입력시킬 수 있다. The page buffer circuit 250 may be connected to the memory cell array 210 through a plurality of bit lines BL. The page buffer circuit 250 may select some bit lines from among the plurality of bit lines BL in response to the column address Y-ADDR received from the control logic 220 . During a program operation or a read operation, the page buffer circuit 250 may operate as a sense amplifier to sense data DATA stored in the memory cell array 210 . Meanwhile, during a program operation, the page buffer circuit 250 operates as a write driver to input data DATA to be stored into the memory cell array 210 .

페이지 버퍼 회로(250)는 메모리 셀 어레이(210)로부터 읽은 데이터(DATA)를 저장하거나, 또는 메모리 셀 어레이(210)에 기입될 데이터(DATA)를 저장할 수 있다. 페이지 버퍼 회로(250)는, 제어 로직(220)의 제어에 의해, 검증 전압에 기반한 출력에 대응되는 제1 센싱 값을 센싱할 수 있다. 검증 전압이 인가된 경우, 페이지 버퍼 회로(250)는, 센싱 값을 일시적으로 저장할 수 있다. 저장된 센싱 값은 온셀의 개수에 대응되는 카운트 값일 수 있다.The page buffer circuit 250 may store data DATA read from the memory cell array 210 or data DATA to be written in the memory cell array 210 . The page buffer circuit 250 may sense a first sensing value corresponding to an output based on the verification voltage under the control of the control logic 220 . When the verification voltage is applied, the page buffer circuit 250 may temporarily store the sensed value. The stored sensing value may be a count value corresponding to the number of on-cells.

프로그램 동작 시에 로우 디코더(240)가 선택된 워드 라인에 프로그램 전압을 인가할 때, 페이지 버퍼 회로(250)는 메모리 셀이 프로그램되는 속도에 따라 복수의 비트 라인들(BL)에 프로그램 금지(inhibit) 전압 및 프로그램 전압과 같은 비트 라인 전압을 인가할 수 있다.During a program operation, when the row decoder 240 applies a program voltage to a selected word line, the page buffer circuit 250 inhibits programming to the plurality of bit lines BL according to the programming speed of the memory cell. A bit line voltage such as voltage and program voltage may be applied.

페이지 버퍼 회로(250)는 복수의 비트 라인들(BL)에 각각 연결된 복수의 페이지 버퍼들을 포함할 수 있다. 복수의 페이지 버퍼들은 각각의 비트 라인에 대응하여 배치될 수 있으며, 각 페이지 버퍼는 복수의 래치들을 포함할 수 있다. 이하, 페이지 버퍼 회로가 각각의 비트 라인에 연결된 페이지 버퍼를 포함하는 것으로 정의될 것이다. 그러나, 본 개시의 실시예들은 그 용어가 다르게 정의될 수도 있을 것이며, 일 예로서 다수의 비트 라인들에 대응하여 하나의 페이지 버퍼가 구비되고, 각각의 비트 라인에 대응하여 배치되는 구성의 단위를 페이지 버퍼 유닛으로 정의할 수도 있을 것이다.The page buffer circuit 250 may include a plurality of page buffers respectively connected to a plurality of bit lines BL. A plurality of page buffers may be disposed corresponding to each bit line, and each page buffer may include a plurality of latches. Hereinafter, a page buffer circuit will be defined as including a page buffer connected to each bit line. However, in the embodiments of the present disclosure, the term may be defined differently, and as an example, a unit of configuration in which one page buffer is provided corresponding to a plurality of bit lines and disposed corresponding to each bit line It could also be defined as a page buffer unit.

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

도 3을 참조하면, 메모리 블록(BLKa)은 수평 구조의 낸드 플래쉬 메모리일 수 있다. 메모리 블록(BLKa)은 예를 들어, 8개의 메모리 셀들이 직렬로 연결되는 d(d는 2 이상의 정수)개의 스트링(STR)들을 포함할 수 있다. 각 스트링(STR)은 직렬로 연결된 메모리 셀들(MC)의 양 끝에 각각 연결되는 스트링 선택 트랜지스터(SST) 및 접지 선택 트랜지스터(GST)를 포함할 수 있다. 여기서, 스트링들(STR)의 개수, 워드 라인들(WL)의 개수, 비트 라인들(BL)의 개수는 실시예에 따라 다양하게 변경될 수 있다. Referring to FIG. 3 , 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 8 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.

도 3과 같은 구조를 갖는 메모리 블록을 포함하는 낸드 플래쉬 메모리 장치는 메모리 블록 단위로 소거가 수행되고, 각 워드 라인(WL1 내지 WL8)에 대응되는 페이지(PAGE) 단위로 프로그램을 수행할 수 있다. 일 예에서, 메모리 셀(MC)이 SLC인 경우, 각 워드 라인에 하나의 페이지(PAGE)가 대응될 수 있다. 다른 예에서, 메모리 셀(MC)이 MLC, TLC, 또는 QLC인 경우, 각 워드 라인에 복수의 페이지들(PAGE)이 대응될 수 있다. 예를 들어, 메모리 셀(MC)이 QLC인 경우, 각 워드 라인은 LSB 페이지, ESB 페이지, USB 페이지, MSB 페이지에 대응될 수 있다.In a NAND flash memory device including a memory block having the structure shown in FIG. 3 , 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 cell MC is an SLC, one page (PAGE) may correspond to each word line. In another example, when the memory cell MC is MLC, TLC, or QLC, a plurality of pages PAGE may correspond to each word line. For example, when the memory cell MC is a QLC, each word line may correspond to an LSB page, an ESB page, a USB page, and an MSB page.

일 실시예에서, 제1 프로그램 루프에서의 제1 프로그램 전압은, 각 워드 라인(WL1 내지 WL8)에 따라 다르게 설정될 수 있다. 예를 들어, 제1 워드 라인(WL1)에 인가될 제1 프로그램 전압의 크기는 제2 워드 라인(WL2)에 인가될 제1 프로그램 전압의 크기와 다를 수 있다. 제1 프로그램 루프에서의 제1 프로그램 전압을 각 워드 라인마다 다르게 설정하는 것을 IDC(Individual Die Core)로 지칭될 수 있다. 이러한 동작은 도 2에 도시된 제어 로직(220)에 의해 수행될 수 있다.In one embodiment, the first program voltage in the first program loop may be set differently according to each word line WL1 to WL8. For example, the magnitude of the first program voltage to be applied to the first word line WL1 may be different from the magnitude of the first program voltage to be applied to the second word line WL2. Setting the first program voltage differently for each word line in the first program loop may be referred to as IDC (Individual Die Core). This operation may be performed by the control logic 220 shown in FIG. 2 .

다른 실시예에서, IDC는 도 2에 도시된 비휘발성 메모리(200)에 따라 다르게 설정될 수 있다. 즉, 제1 프로그램 루프에서의 제1 프로그램 전압이 비휘발성 메모리에 따라서 다르게 설정될 수 있다. In another embodiment, the IDC may be set differently according to the nonvolatile memory 200 shown in FIG. 2 . That is, the first program voltage in the first program loop may be set differently according to the nonvolatile memory.

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

도 4를 참조하면, 메모리 블록(BLKb)은 수직 구조의 낸드 플래쉬 메모리일 수 있다. 메모리 블록(BLKb)은 복수의 낸드 스트링들(NS11 내지 NS33), 복수의 워드 라인들(WL1 내지 WL8), 복수의 비트 라인들(BL1 내지 BL3), 그라운드 선택 라인 들(GSL1, GSL2, GSL3), 복수의 스트링 선택 라인들(SSL1 내지 SSL3) 및 공통 소스 라인(CSL)을 포함할 수 있다. 여기서, 낸드 스트링들의 개수, 워드 라인들의 개수, 비트 라인들의 개수, 그라운드 선택 라인의 개수 및 스트링 선택 라인들의 개수는 실시예에 따라 다양하게 변경될 수 있다.Referring to FIG. 4 , 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.

일 실시예에서, 제1 프로그램 루프에서의 제1 프로그램 전압은, 각 워드 라인(WL1 내지 WL8)에 따라 다르게 설정될 수 있다. 다른 실시예에서, 제1 프로그램 루프에서의 제1 프로그램 전압은, 도 2에 도시된 비휘발성 메모리(200)에 따라 다르게 설정될 수도 있다.In one embodiment, the first program voltage in the first program loop may be set differently according to each word line WL1 to WL8. In another embodiment, the first program voltage in the first program loop may be set differently according to the nonvolatile memory 200 shown in FIG. 2 .

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

도 5를 참조하면, 메모리 블록(BLKb)은 기판(SUB)에 대해 수직 방향으로 형성되어 있다. 기판(SUB)은 제1 도전형(예를 들어, p 타입)을 가지며, 기판(SUB) 상에 제1 방향(예를 들어, x방향)을 따라 신장되고, 제2 도전형(예를 들어, n 타입)의 불순물들이 도핑된 공통 소스 라인(CSL)이 제공될 수 있다. 공통 소스 라인(CSL)은 수직형 메모리 셀들로 전류를 공급하는 소스 영역으로서 기능할 수 있다. 인접한 두 공통 소스 라인(CSL) 사이의 기판(SUB)의 영역 상에, 제2 방향(예를 들어, y 방향)을 따라 신장되는 복수의 절연막들(IL)이 제3 방향(예를 들어, z 방향)을 따라 순차적으로 제공되며, 복수의 절연막들(IL)은 제3 방향을 따라 특정 거리만큼 이격된다. 예를 들어, 복수의 절연막들(IL)은 실리콘 산화물과 같은 절연 물질을 포함할 수 있다.Referring to FIG. 5 , the memory block BLKb is formed in a direction perpendicular to the substrate SUB. 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. 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)이 제공될 수 있다. 도 4를 참조하여, 메모리 블록의 실시 예를 설명하였다. 그러나, 이에 제한되는 것은 아니며 메모리 블록의 구조는 다양하게 변형될 수 있다.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. 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.

도 6은 본 개시의 일 실시예에 따른 프로그램 동작에서 프로그램 전압 인가 방법을 설명하기 위한 타이밍도이다.6 is a timing diagram illustrating a method of applying a program voltage in a program operation according to an embodiment of the present disclosure.

도 6을 참조하면, 제1 기간(t1)에서는 각각의 워드 라인들에 초기화 전압이 인가될 수 있다. 예를 들어, 선택된 워드 라인(Selected WL) 및 비선택된 워드 라인들(Unselected WL) 각각에 초기화 전압이 인가될 수 있다. 하지만, 이에 한정되는 것은 아니다.Referring to FIG. 6 , an initialization voltage may be applied to each of the word lines in the first period t1 . For example, an initialization voltage may be applied to each of the selected word line (Selected WL) and the unselected word lines (Unselected WL). However, it is not limited thereto.

제2 기간(t2)에서는 선택된 워드 라인(Selected WL) 및 비선택된 워드 라인들(Unselected WL)에 패스 전압(Vpass)이 인가될 수 있다. 선택된 워드 라인(Selected WL) 및 비선택된 워드 라인들(Unselected WL)은 패스 전압(Vpass)에 의해 턴 온될 수 있다.In the second period t2 , the pass voltage Vpass may be applied to the selected word line (Selected WL) and the unselected word lines (Unselected WL). The selected word line (Selected WL) and the unselected word lines (Unselected WL) may be turned on by the pass voltage (Vpass).

제3 기간(t3)에서는 선택된 워드 라인(Selected WL)에 프로그램 전압(Vpgm)이 인가될 수 있고, 비선택된 워드 라인들(Unselected WL)에 패스 전압(Vpass)이 인가될 수 있다. In the third period t3 , the program voltage Vpgm may be applied to the selected word line Selected WL, and the pass voltage Vpass may be applied to the unselected word lines Unselected WL.

제4 기간(t4)에서는 선택된 워드 라인(Selected WL) 및 비선택된 워드 라인들(Unselected WL)에 인가된 패스 전압(Vpass)이 인가될 수 있다.In the fourth period t4 , the pass voltage Vpass applied to the selected word line (Selected WL) and unselected word lines (Unselected WL) may be applied.

제5 기간(t5)에서는 선택된 워드 라인(Selected WL) 및 비선택된 워드 라인들(Unselected WL)에 초기화 전압이 인가될 수 있다.In the fifth period t5 , an initialization voltage may be applied to the selected word line (Selected WL) and the unselected word lines (Unselected WL).

도 7은 본 개시의 일 실시예에 따른 프로그램 동작에서 검증 전압 인가 방법을 설명하기 위한 타이밍도이다.7 is a timing diagram illustrating a method of applying a verification voltage in a program operation according to an embodiment of the present disclosure.

제1 기간(t1)에서는 비선택된 워드 라인들(Unselected WL)에 비선택 읽기 전압(Vus)이 인가될 수 있다. 선택된 워드 라인(Selected WL)에는 초기화 전압이 인가될 수 있다.In the first period t1, the unselected read voltage Vus may be applied to the unselected word lines Unselected WL. An initialization voltage may be applied to the selected word line Selected WL.

제2 기간(t2)에서는 선택된 워드 라인(Selected WL)에 검증 전압이 인가될 수 있다.In the second period t2 , a verification voltage may be applied to the selected word line Selected WL.

제3 기간(t3)에서는 선택된 워드 라인(Selected WL) 및 비선택된 워드 라인들(Unselected WL)에 초기화 전압이 인가될 수 있다.In the third period t3 , an initialization voltage may be applied to the selected word line (Selected WL) and unselected word lines (Unselected WL).

도 8a, 도 8b, 및 도 8c는 본 개시에 따른 메모리 셀들의 문턱 전압의 분포를 예시적으로 나타낸 도면들이다. 구체적으로, 도 8a는 SLC의 문턱 전압 분포를 나타낸 도면이고, 도 8b는 MLC의 문턱 전압 분포를 나타낸 도면이며, 도 8c는 TLC의 문턱 전압 분포를 나타낸 도면이다.8A, 8B, and 8C are diagrams illustrating threshold voltage distributions of memory cells according to an exemplary embodiment of the present disclosure. Specifically, FIG. 8A is a diagram showing a threshold voltage distribution of SLC, FIG. 8B is a diagram showing a threshold voltage distribution of MLC, and FIG. 8C is a diagram showing a threshold voltage distribution of TLC.

도 8a를 참조하면, SLC에 대해 프로그램 동작이 수행되는 경우, SLC들은 다양한 문턱 전압 분포들(800, 801, 810)을 가질 수 있다. 즉, SLC들은 소거 상태(E) 또는 제1 프로그램 상태(P1) 중 어느 하나의 상태에 대응되는 문턱 전압 분포에 속하는 문턱 전압을 가질 수 있다. 프로그램 동작이 수행되기 전, SLC들은 소거 상태(E)에 대응되는 문턱 전압 분포(800)를 가질 수 있다. 프로그램 동작이 진행되는 동안, SLC들은 문턱 전압 분포(801)를 가질 수 있다. 제2 문턱 전압 분포(801)에서, 제1 전압(Vp1)이 검증 전압으로 인가되면, 제1 전압(Vp1)보다 낮거나 같은 문턱 전압을 갖는 SLC들에서 전류가 흐르고 제1 전압(Vp1)보다 높은 문턱 전압을 갖는 SLC들에서 전류가 흐르지 않을 수 있다. 이와 같이, 제1 전압(Vp1)이 검증 전압인 경우에 검증 전압보다 낮거나 같은 문턱 전압을 갖는 SLC들은 온셀들(On-cells)로 지칭될 수 있고 검증 전압보다 높은 문턱 전압을 갖는 SLC들은 오프셀로 지칭될 수 있다. 제1 프로그램 상태(P1)는 프로그램 동작이 수행된 뒤의 SLC들의 상태일 수 있다. 프로그램이 완료되면, SLC들은 제1 프로그램 상태(P1)에 대응되는 문턱 전압 분포(810)를 가질 수 있다.Referring to FIG. 8A , when a program operation is performed on the SLCs, the SLCs may have various threshold voltage distributions 800 , 801 , and 810 . That is, the SLCs may have a threshold voltage belonging to a threshold voltage distribution corresponding to any one of the erase state (E) and the first program state (P1). Before a program operation is performed, SLCs may have a threshold voltage distribution 800 corresponding to an erase state (E). During the program operation, the SLCs may have a threshold voltage distribution 801 . In the second threshold voltage distribution 801, when the first voltage Vp1 is applied as a verification voltage, current flows in SLCs having threshold voltages lower than or equal to the first voltage Vp1 and higher than the first voltage Vp1. Current may not flow in SLCs with a high threshold voltage. As such, when the first voltage Vp1 is the verification voltage, SLCs having a threshold voltage lower than or equal to the verification voltage may be referred to as on-cells, and SLCs having a threshold voltage higher than the verification voltage are turned off. may be referred to as a cell. The first program state P1 may be a state of SLCs after a program operation is performed. When the programming is completed, the SLCs may have threshold voltage distributions 810 corresponding to the first program state P1.

도 8b를 참조하면, MLC에 대해 프로그램 동작이 수행되는 경우, MLC들은 소거 상태(E) 및 제1 내지 제3 프로그램 상태들(P1, P2, P3) 중 하나의 상태에 대응되는 문턱 전압 분포(800, 810, 820 또는 830)에 속하는 문턱 전압을 가질 수 있다. 프로그램 전압을 인가하는 단계가 진행됨에 따라, 제1 프로그램 상태(P1)에서부터 제3 프로그램 상태(P3)까지 순차적으로 제1 내지 제3 프로그램 상태들(P1, P2, P3) 각각에 대한 검증 단계가 수행될 수 있다. 제1 프로그램 상태(P1)에 대한 검증은, 선택된 MLC들의 문턱 전압들이 제1 프로그램 상태(P1)에 대응되는 문턱 전압에 도달하였는지 판단하는 동작일 수 있다. 제1 전압(Vp1)은, 예를 들어, 제1 프로그램 상태(P1)에 대응되는 문턱 전압 분포(810)를 갖는 MLC들을 검증하기 위한 검증 전압으로 이용될 수 있다. 제1 프로그램 상태(P1)로 프로그램될 MLC들 중 제1 전압(Vp1)보다 높은 전압을 갖는 MLC들은 오프 셀일 수 있다. 제1 프로그램 상태(P1)로 프로그램될 메모리 셀들 중 제1 전압(Vp1)보다 낮거나 같은 메모리 셀들은 온 셀일 수 있다. 제2 및 제3 프로그램 상태들(P2, P3) 각각에 대한 검증은, 제2 및 제3 프로그램 상태들(P2, P3) 각각에 대응되는 문턱 전압, 예를 들어 제2 및 제3 전압들(Vp2, Vp3)에 각각 도달하였는지 판단하는 동작일 수 있다.Referring to FIG. 8B, when a program operation is performed on the MLCs, the MLCs have an erase state E and a threshold voltage distribution corresponding to one of the first to third program states P1, P2, and P3 ( 800, 810, 820 or 830). As the step of applying the program voltage proceeds, the step of verifying each of the first to third program states P1, P2, and P3 sequentially from the first program state P1 to the third program state P3 proceeds. can be performed Verification of the first program state P1 may be an operation of determining whether threshold voltages of the selected MLCs reach the threshold voltage corresponding to the first program state P1. The first voltage Vp1 may be used, for example, as a verification voltage for verifying MLCs having threshold voltage distributions 810 corresponding to the first program state P1. Among the MLCs to be programmed to the first program state P1 , MLCs having voltages higher than the first voltage Vp1 may be off cells. Among the memory cells to be programmed to the first program state P1 , memory cells lower than or equal to the first voltage Vp1 may be on-cells. Verification of each of the second and third program states P2 and P3 may include a threshold voltage corresponding to each of the second and third program states P2 and P3, for example, the second and third voltages ( It may be an operation to determine whether each of Vp2 and Vp3) has been reached.

도 8c를 참조하면, TLC에 대해 프로그램 동작이 수행되는 경우, TLC는 소거 상태(E) 및 제1 내지 제7 프로그램 상태들(P1, P2, P3, P4, P5, P6, P7) 중 하나의 상태에 대응되는 문턱 전압 분포(800, 810, 820, 830, 840, 850, 860, 또는 870)에 속하는 문턱 전압을 가질 수 있다. 프로그램 전압을 인가하는 단계가 진행됨에 따라, 순차적으로 제1 내지 제7 프로그램 상태들(P1, P2, P3, P4, P5, P6, P7) 각각에 대한 검증 단계가 수행될 수 있다. 제1 내지 제7 전압들(Vp1, Vp2, Vp3, Vp4, Vp5, Vp6, Vp7) 각각은, 예를 들어, 제1 내지 제7 프로그램 상태들(P1, P2, P3, P4, P5, P6, P7) 각각에 대응되는 문턱 전압 분포(810, 820, 830, 840, 850, 860, 또는 870)를 갖는 TLC들을 검증하기 위한 검증 전압으로 이용될 수 있다. Referring to FIG. 8C , when a program operation is performed on the TLC, the TLC is in an erase state E and one of the first to seventh program states P1, P2, P3, P4, P5, P6, and P7. It may have a threshold voltage belonging to a threshold voltage distribution (800, 810, 820, 830, 840, 850, 860, or 870) corresponding to the state. As the process of applying the program voltage proceeds, a verification process for each of the first to seventh program states P1 , P2 , P3 , P4 , P5 , P6 , and P7 may be sequentially performed. Each of the first to seventh voltages Vp1, Vp2, Vp3, Vp4, Vp5, Vp6, and Vp7 is, for example, the first to seventh program states P1, P2, P3, P4, P5, P6, P7) may be used as a verification voltage for verifying TLCs having threshold voltage distributions 810, 820, 830, 840, 850, 860, or 870 respectively.

도 9는 본 개시의 일 실시예에 따른 제1 프로그램 루프에서의 프로그램 동작 방법을 설명하기 위한 흐름도이다.9 is a flowchart illustrating a method of operating a program in a first program loop according to an embodiment of the present disclosure.

도 9를 참조하면, 단계 S910에서, 프로그램 전압이 선택 워드 라인에 인가된다. 구체적으로, 제어 로직(220)은 제1 프로그램 루프에서의 제1 프로그램 전압을 설정하고 전압 생성기(230)가 제1 프로그램 전압을 선택 워드 라인에 인가한다. 단계 S910는 프로그램 단계로 지칭될 수 있다.Referring to FIG. 9 , in step S910 , a program voltage is applied to the selected word line. Specifically, the control logic 220 sets a first program voltage in the first program loop and the voltage generator 230 applies the first program voltage to the selected word line. Step S910 may be referred to as a program step.

단계 S920에서, 검증 전압이 선택 워드 라인에 인가되고, 선택 비트 라인이 센싱된다. 즉, 제1 프로그램 루프에서 제1 프로그램 전압이 인가된 후 제1 센싱 값이 센싱된다. 여기서, 제1 센싱 값은 제1 프로그램 루프에서 설정된 제1 검증 전압에 기반한 출력에 대응될 수 있다. 구체적으로, 제어 로직(220)은 제1 프로그램 루프에서의 제1 검증 전압을 설정하고, 전압 생성기(230)가 제1 검증 전압을 선택 워드 라인에 인가하고, 페이지 버퍼 회로(250)가 선택 비트 라인을 통해 제1 센싱 값을 센싱한다. 단계 S920는 검증 단계로 지칭될 수 있다.In step S920, a verification voltage is applied to the selected word line and the selected bit line is sensed. That is, after the first program voltage is applied in the first program loop, the first sensed value is sensed. Here, the first sensing value may correspond to an output based on the first verification voltage set in the first program loop. Specifically, the control logic 220 sets the first verify voltage in the first program loop, the voltage generator 230 applies the first verify voltage to the select word line, and the page buffer circuit 250 selects the select bit. The first sensing value is sensed through the line. Step S920 may be referred to as a verification step.

단계 S930에서, 온셀의 수를 기초로, 프로그램 상태의 패스 여부가 결정되고, 다음 프로그램 루프(예를 들어, 제2 프로그램 루프)에서의 프로그램 전압의 크기가 설정된다. 구체적으로, 제어 로직(220)은 제1 센싱 값을 기초로 온셀(On cell)의 개수를 카운트하고, 제1 카운트 값과 적어도 하나의 기준 값을 비교하여, 비교 결과에 따라 제1 프로그램 상태의 패스 여부를 판단하고 제2 프로그램 전압을 설정한다. 단계 S930는 패스 확인 단계로 지칭될 수 있다.In step S930, whether or not the program state passes is determined based on the number of on-cells, and the magnitude of the program voltage in the next program loop (eg, the second program loop) is set. Specifically, the control logic 220 counts the number of on cells based on the first sensing value, compares the first count value with at least one reference value, and determines the first program state according to the comparison result. Pass or not is determined and a second program voltage is set. Step S930 may be referred to as a pass confirmation step.

전술한 바에 의하면, 조기에 프로그램 동작을 완료함으로써, 프로그램 동작의 성능이 증가될 수 있다.As described above, by completing the program operation early, the performance of the program operation can be increased.

도 10은 본 개시의 다른 실시예에 따른 프로그램 동작 방법을 구체적으로 설명하기 위한 흐름도이다. 본 개시의 다른 실시예에 따른 프로그램 동작 방법은 싱글 레벨 셀에 대해 수행되는 것으로 가정한다.10 is a flowchart for specifically explaining a program operation method according to another embodiment of the present disclosure. It is assumed that the program operation method according to another embodiment of the present disclosure is performed for a single-level cell.

도 10을 참조하면, 단계 S1010에서, 프로그램 루프(이하, PL)가 1로 설정된다. 단계 S1011에서, 제1 프로그램 전압이 선택 워드 라인에 인가된다. 단계 S1012에서, 제1 검증 전압이 선택 워드 라인에 인가되고 제1 센싱 동작이 수행된다. 제1 센싱 동작은 페이지 버퍼 회로(250)가 제1 검증 전압에 의한 제1 센싱 값을 센싱하는 동작일 수 있다. 단계 S1013에서, 온셀이 카운트된다. 구체적으로 제어 로직(220)이 온셀의 개수에 대응되는 카운트 값을 획득할 수 있다. 단계 S1014에서, 제1 카운트 값(이하, CNT1)이 제1 기준 값(이하, Th1) 이하인지 여부가 판단될 수 있다. 구체적으로, 제어 로직(220)은 CNT1가 Th1 이하인지 여부를 판단한다. CNT1가 Th1 이하이면(S1014, 예), 제어 로직(220)은 제1 프로그램 상태를 패스로 판단하고, 제1 프로그램 루프를 종료하며, 프로그램 동작을 완료한다. 이때, 제1 프로그램 상태가 패스된 것으로 판단된 바, 제2 프로그램 루프의 실행이 생략될 수 있다. 따라서, 제어 로직(220)은 제2 프로그램 전압을 설정하는 것을 생략할 수 있다. CNT1가 Th1보다 크면(S1014, 아니오), 단계 S1015에서, CNT1을 기초로 제2 프로그램 전압이 설정된다. CNT1가 Th1보다 크다는 것은, 온셀이 상대적으로 많이 존재한다는 것을 의미하고, 제1 프로그램 상태에 대응되는 문턱 전압 분포가 생성되지 않은 것일 수 있다. 이 경우, 제어 로직(220)은, 제1 프로그램 상태를 페일로 판단하고, CNT1에 기초하여 제2 프로그램 전압의 크기(또는 프로그램 전압의 증가량)를 설정할 수 있다. 일 실시예에서, 제2 프로그램 전압은 제1 프로그램 전압에서 프로그램 전압의 증가량의 합과 동일할 수 있다. 단계 S1010 내지 S1014는 제1 프로그램 루프에 포함될 수 있다. 후술하는 바와 같이, 제어 로직(220)은, CNT1가 Th1 및 제2 기준 값(이하, Th2) 사이에 포함되는지 또는 CNT1가 Th2 이상인지 여부를 판단할 수 있으므로, 단계 S1016도 제1 프로그램 루프에 포함될 수 있다. Th2는 Th1보다 큰 값일 수 있다. Referring to FIG. 10 , in step S1010, a program loop (hereinafter, PL) is set to 1. In step S1011, a first program voltage is applied to the selected word line. In step S1012, a first verification voltage is applied to the selected word line and a first sensing operation is performed. The first sensing operation may be an operation in which the page buffer circuit 250 senses the first sensing value by the first verification voltage. In step S1013, on-cells are counted. In detail, the control logic 220 may obtain a count value corresponding to the number of on-cells. In step S1014, it may be determined whether the first count value (hereinafter, CNT1) is less than or equal to a first reference value (hereinafter, Th1). Specifically, the control logic 220 determines whether CNT1 is less than or equal to Th1. If CNT1 is equal to or less than Th1 (S1014, Yes), the control logic 220 determines that the first program state is pass, ends the first program loop, and completes the program operation. At this time, since it is determined that the first program state has passed, execution of the second program loop may be omitted. Accordingly, the control logic 220 may omit setting the second program voltage. If CNT1 is greater than Th1 (S1014, No), in step S1015, a second program voltage is set based on CNT1. If CNT1 is greater than Th1, it means that there are relatively many on-cells, and a threshold voltage distribution corresponding to the first program state may not be generated. In this case, the control logic 220 may determine the first program state as a fail and set the level of the second program voltage (or the amount of increase in the program voltage) based on CNT1. In one embodiment, the second program voltage may be equal to the sum of increments of the program voltage from the first program voltage. Steps S1010 to S1014 may be included in the first program loop. As will be described later, since the control logic 220 can determine whether CNT1 is included between Th1 and the second reference value (hereinafter referred to as Th2) or whether CNT1 is greater than or equal to Th2, step S1016 is also included in the first program loop. can be included Th2 may have a greater value than Th1.

단계 S1020에서, PL이 1에서 2로 설정된다. 즉, 제1 프로그램 루프의 다음 프로그램 루프인 제2 프로그램 루프가 실행된다. 단계 S1021에서, 제2 프로그램 전압이 선택 워드 라인에 인가된다. 구체적으로, 제어 로직(220)은, 제2 프로그램 루프를 수행하여 제2 프로그램 전압을 인가하도록 전압 생성기(230)를 제어할 수 있다. 전압 생성기(230)는 제2 프로그램 전압을 선택 워드 라인에 인가한다. 제2 프로그램 전압이 적절히 설정됨으로 인해, 제2 프로그램 전압에 의해 싱글 레벨 셀이 제1 프로그램 상태에 도달한 것으로 예상될 수 있다. 단계 S1021는 프로그램 단계로 지칭될 수 있다. 단계 S1016에서, CNT1가 Th1보다 크고 Th2 이하인지 여부가 판단된다. 일 실시예에서, 단계 S1016은 단계 S1014와 함께 수행되는 동작일 수 있다. CNT1가 Th1보다 크고 Th2 이하이면(S1016, 예), 제어 로직(220)은 제1 프로그램 상태를 패스로 판단하고, 프로그램 동작을 종료한다. CNT1가 Th2보다 크면(S1016, 아니오), 단계 S1022에서, 제2 검증 전압이 선택 워드 라인에 인가되고 제2 센싱 동작이 수행된다. 제2 검증 전압은 제2 프로그램 루프에서 설정된 검증 전압일 수 있다. 일 실시예에서, 제2 검증 전압은 제1 검증 전압과 동일할 수 있다. 제2 센싱 동작은 페이지 버퍼 회로(250)가 제2 검증 전압에 의한 제2 센싱 값을 센싱하는 동작일 수 있다. 단계 S1022는 검증 단계로 지칭될 수 있다. 단계 S1020, 단계 S1021, 및 단계 S1022는 제2 프로그램 루프에 포함될 수 있다.In step S1020, PL is set from 1 to 2. That is, a second program loop, which is a program loop following the first program loop, is executed. In step S1021, a second program voltage is applied to the selected word line. In detail, the control logic 220 may control the voltage generator 230 to apply the second program voltage by performing the second program loop. The voltage generator 230 applies the second program voltage to the selected word line. Since the second program voltage is appropriately set, it can be expected that the single-level cell reaches the first program state by the second program voltage. Step S1021 may be referred to as a program step. In step S1016, it is determined whether CNT1 is greater than Th1 and less than or equal to Th2. In one embodiment, step S1016 may be an operation performed together with step S1014. If CNT1 is greater than Th1 and less than or equal to Th2 (S1016, Yes), the control logic 220 determines that the first program state is pass and ends the program operation. If CNT1 is greater than Th2 (S1016, No), in step S1022, a second verification voltage is applied to the selected word line and a second sensing operation is performed. The second verification voltage may be a verification voltage set in the second program loop. In one embodiment, the second verification voltage may be the same as the first verification voltage. The second sensing operation may be an operation in which the page buffer circuit 250 senses a second sensed value by the second verification voltage. Step S1022 may be referred to as a verification step. Steps S1020, S1021, and S1022 may be included in the second program loop.

단계 S1030에서, PL이 2에서 3으로 설정된다. 즉, 제2 프로그램 루프의 다음 프로그램 루프인 제3 프로그램 루프가 실행된다. 단계 S1031에서, 제3 프로그램 전압이 선택 워드 라인에 인가되고, 온셀이 카운트된 제2 카운트 값(이하, CNT2)을 기초로 프로그램 패스 여부가 검출된다. 구체적으로, 제어 로직(220)은 제2 프로그램 전압보다 높은 제3 프로그램 전압을 설정한다. 일 실시예에서, 제어 로직(220)은 ISPP에 따라 미리 설정된 증가량에 제2 프로그램 전압의 크기를 합한 값을 제3 프로그램 전압의 크기로 설정할 수 있다. 전압 생성기(230)가 제3 프로그램 전압을 선택 워드 라인에 인가한다. 제어 로직(220)은 제2 프로그램 루프에서 센싱된 제2 센싱 값을 기초로 CNT2를 획득하고, CNT2와 Th1 및 Th2를 비교하여 제1 프로그램 상태에 대한 프로그램 패스 여부를 검출한다. CNT2가 Th1 이하이면, 제1 프로그램 상태가 패스된 것으로 판단될 수 있다. 제1 프로그램 상태가 패스되면, 프로그램 동작이 완료될 수 있다. 일 실시예에서, 제3 프로그램 전압이 선택 워드 라인에 인가되는 동작과, CNT2를 기초로 프로그램 패스 여부를 결정하는 동작은 함께 수행될 수 있다. 단계 S1030 및 단계 S1031는 제3 프로그램 루프에 포함될 수 있다.In step S1030, PL is set from 2 to 3. That is, a third program loop, which is a program loop following the second program loop, is executed. In step S1031, a third program voltage is applied to the selected word line, and whether the program passes is detected based on a second count value (hereinafter referred to as CNT2) obtained by counting on-cells. Specifically, the control logic 220 sets a third program voltage higher than the second program voltage. In an embodiment, the control logic 220 may set, as the magnitude of the third program voltage, a value obtained by adding the magnitude of the second program voltage to the increment preset according to the ISPP. The voltage generator 230 applies the third program voltage to the selected word line. The control logic 220 obtains CNT2 based on the second sensing value sensed in the second program loop, and compares CNT2 with Th1 and Th2 to detect whether the program passes for the first program state. If CNT2 is less than or equal to Th1, it may be determined that the first program state has passed. When the first program state passes, the program operation may be completed. In one embodiment, an operation of applying the third program voltage to the selected word line and an operation of determining whether to pass the program based on CNT2 may be performed together. Steps S1030 and S1031 may be included in the third program loop.

다른 실시예에서, 단계 S1014 및 단계 S1016에서의 판단 동작은 Th1 및 Th2로 구성되는 복수의 기준 범위들과 CNT1를 서로 비교하는 동작일 수 있다. Th1 및 Th2로 구성되는 복수의 기준 범위들은, 예를 들면, 제1 내지 제3 기준 범위들을 포함할 수 있다. 제1 기준 범위는 0 이상 Th1 이하이고, 제2 기준 범위는 Th1보다 크고 Th2 이하이며, 제3 기준 범위는 Th2보다 큰 범위일 수 있다. 하지만, 이에 한정되는 것은 아니다. 예를 들면, CNT1가 Th1 이하의 제1 기준 범위에 포함되면, 제어 로직(220)은 제1 프로그램 상태가 패스인 것으로 판단하고, 제2 프로그램 전압을 설정하는 것을 생략하고, 제1 프로그램 루프 종료 및 프로그램 동작을 완료할 수 있다. 다른 예를 들면, CNT1가 Th1와 Th2 사이의 제2 기준 범위에 포함되면, 제어 로직(220)은 제2 프로그램 루프를 실행하고, 제2 프로그램 전압을 설정하여 제2 프로그램 전압을 인가하도록 전압 생성기(230)를 제어하며, 제1 프로그램 상태가 패스인 것으로 판단하고, 제2 프로그램 루프 종료 및 프로그램 동작을 완료할 수 있다. 또 다른 예를 들면, 다른 예를 들면, CNT1가 Th2 초과의 제3 기준 범위에 포함되면, 제2 프로그램 루프에서의 프로그램 단계, 및 검증 단계가 수행되고, 제3 프로그램 루프에서 제3 프로그램 전압이 인가되고 CNT2를 기초로 제1 프로그램 상태의 패스 여부가 판단되는 동작이 단계가 수행될 수 있다. 제1 프로그램 상태가 패스되면, 제3 프로그램 루프가 종료되고 프로그램 동작이 완료된다.In another embodiment, the determination operations in steps S1014 and S1016 may be an operation of comparing CNT1 with a plurality of reference ranges composed of Th1 and Th2. The plurality of reference ranges composed of Th1 and Th2 may include, for example, first to third reference ranges. The first reference range may be greater than or equal to 0 and less than or equal to Th1, the second reference range may be greater than Th1 and less than or equal to Th2, and the third reference range may be greater than Th2. However, it is not limited thereto. For example, if CNT1 is included in the first reference range of Th1 or less, the control logic 220 determines that the first program state is PASS, skips setting the second program voltage, and terminates the first program loop. and complete the program operation. For another example, when CNT1 is included in the second reference range between Th1 and Th2, the control logic 220 executes the second program loop, sets the second program voltage, and sets the voltage generator to apply the second program voltage. 230 is controlled, it is determined that the first program state is pass, and the second program loop is terminated and the program operation is completed. For another example, if CNT1 is included in the third reference range greater than Th2, the program step and the verify step in the second program loop are performed, and the third program voltage in the third program loop Then, an operation of determining whether or not the first program state passes based on CNT2 may be performed. When the first program state passes, the third program loop ends and the program operation is complete.

전술한 바에 의하면, 싱글 레벨 셀에 대한 프로그램 동작이 제1 프로그램 루프에서 완료될 수 있고, 이에 따라 프로그램 동작의 속도가 개선될 수 있다.As described above, the program operation for the single-level cell can be completed in the first program loop, and thus the speed of the program operation can be improved.

도 11은 본 개시의 일 실시예에 따른 온셀을 카운트하는 방법을 설명하기 위한 도면이다.11 is a diagram for explaining a method of counting on-cells according to an embodiment of the present disclosure.

도 11을 참조하면, 제1 전압(Vp1)보다 높은 문턱 전압 분포(1110)가 제1 프로그램 상태(P1)에 대응될 수 있다. 일 실시예에서, 제1 전압(Vp1)보다 낮은 전압(Vp0)이 검증 전압으로 사용될 수 있다. 이 경우, 프로그램 전압이 인가됨에 따라 발생한 문턱 전압 분포(1100)에 대하여, 전압(Vp0)보다 낮은 문턱 전압을 갖는 메모리 셀들은 온셀들로 센싱될 수 있다. 전술한 바에 의하면, 제1 전압(Vp1)보다 낮은 전압(Vp0)을 이용함으로써 제2 프로그램 루프에서의 프로그램 전압을 보다 정확히 설정할 수 있다는 장점이 있다.Referring to FIG. 11 , a threshold voltage distribution 1110 higher than the first voltage Vp1 may correspond to the first program state P1. In one embodiment, a voltage Vp0 lower than the first voltage Vp1 may be used as the verification voltage. In this case, with respect to the threshold voltage distribution 1100 generated when the program voltage is applied, memory cells having a threshold voltage lower than the voltage Vp0 may be sensed as on-cells. As described above, there is an advantage in that the program voltage in the second program loop can be more accurately set by using the voltage Vp0 lower than the first voltage Vp1.

도 12는 싱글 레벨 셀에 대한 프로그램 동작 방법의 일 실시예를 설명하기 위한 도면이다. 구체적으로, 도 12는 제1 프로그램 루프(Program loop 1)에서 획득된 제1 카운트 값이 제1 기준 값 이하일 때 프로그램 동작 방법을 예시적으로 나타낸다.12 is a diagram for explaining an embodiment of a method of operating a program for a single-level cell. Specifically, FIG. 12 exemplarily illustrates a program operation method when a first count value obtained in a first program loop (Program loop 1) is equal to or less than a first reference value.

도 1, 도 10 내지 도 12를 참조하면, 비휘발성 메모리(120)는 메모리 컨트롤러(110)의 제어에 응답하여, 프로그램 동작을 시작할 수 있다(PGM START).Referring to FIGS. 1 and 10 to 12 , the nonvolatile memory 120 may start a program operation in response to control of the memory controller 110 (PGM START).

제1 프로그램 루프(Program loop 1)에서는, 프로그램 단계(PGM), 검증 단계(VFY), 및 패스 확인 단계(PF)가 순차적으로 수행될 수 있다. 프로그램 단계(PGM)에서는 제1 프로그램 전압이 인가되며, 제1 프로그램 전압은 비휘발성 메모리(120)의 특성 및/또는 비휘발성 메모리(120)에 포함된 복수의 워드 라인들(WL) 중 선택된 워드 라인에 따라서 다르게 설정될 수 있다. 검증 단계(VFY)에서는 검증 전압이 인가되어 센싱 값이 검출될 수 있다. 이 센싱 값은 온셀의 개수에 대응될 수 있다. 이때, 검증 전압은 도 11에 도시된 바와 같이 제1 전압(Vp1)보다 낮은 전압(Vp0)일 수 있다. 패스 확인 단계(PF)는 온셀의 개수에 해당되는 카운트 값과 제어 로직(예를 들어, 도 2에 도시된 220)에 미리 저장되 적어도 하나의 기준 값을 이용하여 제1 프로그램 상태의 패스 여부가 확인될 수 있다. 패스 확인 단계(PF)에서 제1 카운트 값이 제1 기준 값보다 작거나 같으면, 제2 프로그램 전압을 설정하는 동작이 생략되고 제1 프로그램 루프(Program loop 1)가 종료될 수 있다.In the first program loop (Program loop 1), the program phase (PGM), verification phase (VFY), and pass verification phase (PF) may be sequentially performed. In the program step (PGM), a first program voltage is applied, and the first program voltage is a characteristic of the nonvolatile memory 120 and/or a selected word among a plurality of word lines WL included in the nonvolatile memory 120. It can be set differently depending on the line. In the verification step (VFY), a verification voltage may be applied and a sensed value may be detected. This sensing value may correspond to the number of on-cells. In this case, the verification voltage may be a voltage Vp0 lower than the first voltage Vp1 as shown in FIG. 11 . The pass confirmation step (PF) determines whether the first program state has passed by using a count value corresponding to the number of on-cells and at least one reference value stored in advance in the control logic (eg, 220 shown in FIG. 2). can be confirmed If the first count value is less than or equal to the first reference value in the pass checking step (PF), the operation of setting the second program voltage may be omitted and the first program loop (Program loop 1) may end.

제1 프로그램 루프(Program loop 1)가 종료되면, 비휘발성 메모리(120)는 프로그램 동작을 완료할 수 있다(PGM END).When the first program loop (Program loop 1) ends, the nonvolatile memory 120 may complete the program operation (PGM END).

전술한 바에 의하면, 제1 프로그램 루프(Program loop 1)가 시작되고 종료되는 프로그램 완료 시간(Program completion time)이 감소됨으로써 싱글 레벨 셀에 대한 프로그램 동작의 성능이 개선될 수 있다.As described above, the performance of the program operation for the single-level cell can be improved by reducing the program completion time at which the first program loop (Program loop 1) starts and ends.

도 13은 싱글 레벨 셀에 대한 프로그램 동작 방법의 다른 실시예를 설명하기 위한 도면이다. 구체적으로, 도 13은 제1 프로그램 루프(Program loop 1)에서 획득된 제1 카운트 값이 제1 기준 값보다 크고 제2 기준 값 이하일 때 프로그램 동작 방법을 예시적으로 나타낸다.13 is a diagram for explaining another embodiment of a method of operating a program for a single-level cell. Specifically, FIG. 13 exemplarily illustrates a program operation method when a first count value obtained in a first program loop (Program loop 1) is greater than a first reference value and less than or equal to a second reference value.

도 1, 도 10, 도 11, 및 도 13을 참조하면, 제1 프로그램 루프(Program loop 1)에서 프로그램 단계(PGM), 검증 단계(VFY), 및 패스 확인 단계(PF)가 순차적으로 수행될 수 있다. 프로그램 단계(PGM) 및 검증 단계(VFY)는 도 12를 참조하여 전술한 바와 같다. 패스 확인 단계(PF)에서 제1 카운트 값이 제1 기준 값보다 크고 제2 기준 값보다 작거나 같을 수 있다. 이 경우, 제2 프로그램 전압이 제1 카운트 값에 따라 설정될 수 있다.1, 10, 11, and 13, a program step (PGM), a verification step (VFY), and a pass check step (PF) are sequentially performed in a first program loop (Program loop 1). can The program step (PGM) and verification step (VFY) are as described above with reference to FIG. 12 . In the pass confirmation step (PF), the first count value may be greater than the first reference value and less than or equal to the second reference value. In this case, the second program voltage may be set according to the first count value.

제2 프로그램 루프(Program loop 2)가 수행되고, 제2 프로그램 루프(Program loop 2)에서 프로그램 단계(PGM)가 수행될 수 있다. 제1 프로그램 루프(Program loop 1)에서의 제1 프로그램 전압과 제2 프로그램 루프(Program loop 2)에서의 제2 프로그램 전압의 차이(ΔV1)는, 제1 카운트 값에 비례할 수 있다. 제2 프로그램 루프(Program loop 2)에서의 프로그램 단계(PGM)가 수행되면, 메모리 셀이 제1 프로그램 상태를 갖는 것이 예상되므로, 제2 프로그램 루프(Program loop 2)가 종료되고 프로그램 동작이 완료될 수 있다(PGM END). 도 13에 도시된 프로그램 완료 시간(Program completion time)이 도 12에 도시된 프로그램 완료 시간(Program completion time)보다 다소 증가되었지만, 싱글 레벨 셀에 대한 프로그램 동작이 제2 프로그램 루프 내로 완료됨에 따라 싱글 레벨 셀에 대한 프로그램 동작의 속도를 개선하는 효과가 있다. A second program loop (Program loop 2) is performed, and a program step (PGM) may be performed in the second program loop (Program loop 2). A difference (ΔV1) between the first program voltage in the first program loop (Program loop 1) and the second program voltage in the second program loop (Program loop 2) may be proportional to the first count value. When the program step (PGM) in the second program loop (Program loop 2) is performed, since it is expected that the memory cell has the first program state, the second program loop (Program loop 2) is finished and the program operation is completed. can (PGM END). Although the program completion time shown in FIG. 13 is slightly increased than the program completion time shown in FIG. 12, as the program operation for the single-level cell is completed within the second program loop, the single-level There is an effect of improving the speed of the program operation for the cell.

도 14는 싱글 레벨 셀에 대한 프로그램 동작 방법의 또 다른 실시예를 설명하기 위한 도면이다. 구체적으로, 도 13은 제1 프로그램 루프(Program loop 1)에서 획득된 제1 카운트 값이 제2 기준 값보다 클 때 프로그램 동작 방법을 예시적으로 나타낸다.14 is a diagram for explaining another embodiment of a method of operating a program for a single-level cell. Specifically, FIG. 13 exemplarily illustrates a program operation method when a first count value obtained in a first program loop (Program loop 1) is greater than a second reference value.

도 1, 도 10, 도 11, 및 도 14를 참조하면, 제1 프로그램 루프(Program loop 1)에서 프로그램 단계(PGM), 검증 단계(VFY), 및 패스 확인 단계(PF)가 순차적으로 수행될 수 있다. 프로그램 단계(PGM) 및 검증 단계(VFY)는 도 12를 참조하여 전술한 바와 같다. 패스 확인 단계(PF)에서 제1 카운트 값이 제2 기준 값보다 클 수 있다.Referring to FIGS. 1, 10, 11, and 14, a program step (PGM), a verification step (VFY), and a pass check step (PF) are sequentially performed in a first program loop (Program loop 1). can The program step (PGM) and verification step (VFY) are as described above with reference to FIG. 12 . In the pass confirmation step (PF), the first count value may be greater than the second reference value.

도 13에 도시된 바와 달리, 제1 카운트 값이 제2 기준 값보다 크므로, 제2 프로그램 루프(Program loop 2)에서 프로그램 단계(PGM) 및 검증 단계(VFY)가 순차적으로 수행될 수 있다. 검증 단계(VFY)에서는 제2 검증 전압이 이용될 수 있고, 제2 검증 전압은 제1 검증 전압과 동일할 수 있다. 검증 단계(VFY)를 통해 제2 카운트 값이 획득될 수 있다.Unlike shown in FIG. 13 , since the first count value is greater than the second reference value, the program step (PGM) and the verification step (VFY) may be sequentially performed in the second program loop (Program loop 2). In the verification step VFY, a second verification voltage may be used, and the second verification voltage may be the same as the first verification voltage. The second count value may be obtained through the verification step (VFY).

제3 프로그램 루프(Program loop 3)가 수행되고, 제3 프로그램 루프(Program loop 3)에서 프로그램 단계(PGM) 및 패스 확인 단계(PF)가 함께 수행될 수 있다. 프로그램 단계(PGM)에서는 제3 프로그램 전압이 인가될 수 있다. 제2 프로그램 루프(Program loop 2)에서의 제2 프로그램 전압과 제3 프로그램 루프(Program loop 3)에서의 제1 프로그램 전압의 차이(ΔV2)는, ISPP에 따라 결정될 수 있다. 패스 확인 단계(PF)에서는 제2 카운트 값과 제1 및 제2 기준 값들을 비교하여 제1 프로그램 상태의 패스 여부가 확인될 수 있다. 제2 카운트 값은 제2 프로그램 루프(Program loop 2)에 포함된 검증 단계(VFY)를 통해 획득되어 제어 로직(220)에 일시적으로 저장될 수 있다.A third program loop (Program loop 3) is performed, and in the third program loop (Program loop 3), the program step (PGM) and the pass check step (PF) may be performed together. In the program phase PGM, a third program voltage may be applied. A difference (ΔV2) between the second program voltage in the second program loop (Program loop 2) and the first program voltage in the third program loop (Program loop 3) may be determined according to ISPP. In the pass checking step PF, whether the first program state passes may be checked by comparing the second count value with the first and second reference values. The second count value may be obtained through the verification step (VFY) included in the second program loop (Program loop 2) and temporarily stored in the control logic 220.

도 14에 도시된 프로그램 완료 시간(Program completion time)이 도 13에 도시된 프로그램 완료 시간(Program completion time)보다 다소 증가되었지만, 싱글 레벨 셀에 대한 프로그램 동작이 적어도 제3 프로그램 루프 내로 완료됨에 따라 싱글 레벨 셀에 대한 프로그램 동작의 속도를 개선하는 효과가 있다. Although the program completion time shown in FIG. 14 is somewhat increased than the program completion time shown in FIG. 13, as the program operation for the single-level cell is completed within at least the third program loop, the single There is an effect of improving the speed of the program operation for the level cell.

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

도 15를 참조하면, 컴퓨팅 시스템(1500)은 프로세서(1510), 메모리 컨트롤러(1520), 입력 장치들(1530), 출력 장치들(1540), 불휘발성 메모리 장치(1550), 그리고 주 기억 장치(1560)를 포함한다. 도면에서 실선은 데이터 또는 명령이 이동하는 시스템 버스(System bus)를 나타낸다.Referring to FIG. 15 , a computing system 1500 includes a processor 1510, a memory controller 1520, input devices 1530, output devices 1540, a nonvolatile memory device 1550, and a main memory device ( 1560). In the drawing, a solid line represents a system bus through which data or commands move.

메모리 컨트롤러(1520)와 불휘발성 메모리 장치(1550)는 메모리 카드를 구성할 수 있다. 그리고, 프로세서(1510), 입력 장치들(1530), 출력 장치들(1540), 그리고 주 기억 장치(1560)는 메모리 카드를 기억 장치로 사용하는 호스트를 구성할 수 있다.The memory controller 1520 and the nonvolatile memory device 1550 may form a memory card. Also, the processor 1510, the input devices 1530, the output devices 1540, and the main memory device 1560 may configure a host that uses a memory card as a memory device.

본 발명에 따른 컴퓨팅 시스템(1500)은 입력 장치들(1530)(키보드, 카메라 등)을 통해 외부로부터 데이터를 입력받는다. 입력된 데이터는 사용자에 의한 명령이거나 카메라 등에 의한 영상 데이터 등의 멀티 미디어 데이터일 수 있다. 입력된 데이터는 불휘발성 메모리 장치(1550) 또는 주 기억 장치(1560)에 저장된다.The computing system 1500 according to the present invention receives data from the outside through the input devices 1530 (keyboard, camera, etc.). The input data may be a command by a user or multimedia data such as video data by a camera or the like. The input data is stored in the nonvolatile memory device 1550 or the main memory device 1560 .

프로세서(1510)에 의한 처리 결과는 불휘발성 메모리 장치(1550) 또는 주 기억 장치(1560)에 저장된다. 출력 장치들(1540)은 불휘발성 메모리 장치(1550) 또는 주 기억 장치(1560)에 저장된 데이터를 출력한다. 출력 장치들(1540)은 디지털 데이터를 인간이 감지 가능한 형태로 출력한다. 예를 들어, 출력 장치(1540)는 디스플레이 또는 스피커 등을 포함한다. 불휘발성 메모리 장치(1550)에는 본 발명에 따른 프로그램 방법이 적용될 것이다. 불휘발성 메모리 장치(1550)의 신뢰성이 향상됨에 따라 컴퓨팅 시스템(1500)의 신뢰성도 이에 비례하여 향상될 것이다.A processing result by the processor 1510 is stored in the nonvolatile memory device 1550 or the main memory device 1560 . The output devices 1540 output data stored in the nonvolatile memory device 1550 or the main memory device 1560 . The output devices 1540 output digital data in a human-sensible form. For example, the output device 1540 includes a display or a speaker. The program method according to the present invention will be applied to the nonvolatile memory device 1550 . As the reliability of the nonvolatile memory device 1550 is improved, the reliability of the computing system 1500 will also be improved in proportion thereto.

불휘발성 메모리 장치(1550), 그리고/또는 메모리 컨트롤러(1520)는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 불휘발성 메모리 장치(1550) 그리고/또는 컨트롤러(1520)는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP) 등과 같은 패키지들을 이용하여 실장될 수 있다.The nonvolatile memory device 1550 and/or the memory controller 1520 may be mounted using various types of packages. For example, the nonvolatile memory device 1550 and/or the controller 1520 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), Thin Quad Flatpack (TQFP), System In Package (SIP), Multi Chip Package (MCP), Wafer-level Fabricated Package (WFP) ), and Wafer-Level Processed Stack Package (WSP).

컴퓨팅 시스템(1500)은 컴퓨팅 시스템(1500)의 동작에 필요한 전원을 공급하기 위한 전원 공급부(Power supply)를 포함할 수 있다. 다른 실시예에서, 컴퓨팅 시스템(1500)이 휴대용 기기(mobile device)인 경우, 컴퓨팅 시스템(1500)은 컴퓨팅 시스템(1500)의 동작 전원을 공급하기 위한 배터리를 더 포함할 수도 있다.The computing system 1500 may include a power supply for supplying power necessary for the operation of the computing system 1500 . In another embodiment, when the computing system 1500 is a mobile device, the computing system 1500 may further include a battery for supplying operating power to the computing system 1500 .

도 16은 본 개시의 일 실시예에 따른 컴퓨팅 시스템을 솔리드 스테이트 장치를 나타내는 블록도이다.16 is a block diagram illustrating a solid state device of a computing system according to an embodiment of the present disclosure.

도 16을 참조하면, SSD 시스템(1600)은 SSD 컨트롤러(1610)와 불휘발성 메모리 장치들(1620~323)을 포함한다.Referring to FIG. 16 , an SSD system 1600 includes an SSD controller 1610 and nonvolatile memory devices 1620 to 323 .

본 발명에 따른 불휘발성 메모리 장치는 SSD(Solid State Drive)에도 적용될 수 있다. 최근 하드디스크 드라이브(HDD)를 교체해 나갈 것으로 예상되는 SSD 제품이 차세대 메모리 시장에서 각광을 받고 있다. SSD는 일반적인 하드 디스크 드라이브에서 사용되는 회전 접시 대신에 데이터를 저장하는데 플래시 메모리와 같은 메모리 칩들을 사용한 데이터 저장 장치이다. SSD는 기계적으로 움직이는 하드 디스크 드라이브에 비해 속도가 빠르고 외부 충격에 강하며, 소비 전력도 낮다는 장점을 가진다.The nonvolatile memory device according to the present invention may also be applied to a solid state drive (SSD). Recently, SSD products, which are expected to replace hard disk drives (HDD), are in the limelight in the next-generation memory market. An SSD is a data storage device using memory chips such as flash memory to store data instead of a rotating plate used in a general hard disk drive. Compared to mechanically moving hard disk drives, SSDs are faster, more resistant to external shocks, and have lower power consumption.

중앙처리장치(1611)는 호스트로부터 명령어를 전달받아 호스트로부터의 데이터를 불휘발성 메모리 장치에 저장할지 혹은 불휘발성 메모리 장치의 저장 데이터를 독출하여 호스트로 전송할지 여부를 결정하고 제어한다.The central processing unit 1611 receives a command from the host and determines and controls whether to store data from the host in the nonvolatile memory device or to read and transmit data stored in the nonvolatile memory device to the host.

ATA 인터페이스(1612)는 상술한 중앙처리장치(1611)의 제어에 따라 호스트 측과 데이터를 교환한다. ATA 인터페이스(1612)는 호스트 측으로부터 명령어 및 어드레스를 패치하여 CPU 버스를 통해서 중앙처리장치(1611)로 전달한다. ATA 인터페이스(1612)를 통해 호스트로부터 입력되는 데이터나 호스트로 전송되어야 할 데이터는 중앙처리장치(1611)의 제어에 따라 CPU 버스를 경유하지 않고 SRAM 캐시(1613)를 통해 전달된다. ATA 인터페이스(212)는 S-ATA(serial ATA) 규격 및 P-ATA(parallel ATA) 규격을 포함한다.The ATA interface 1612 exchanges data with the host under the control of the aforementioned CPU 1611. The ATA interface 1612 fetches commands and addresses from the host side and transfers them to the CPU 1611 through the CPU bus. Data input from the host through the ATA interface 1612 or data to be transmitted to the host are transferred through the SRAM cache 1613 without passing through the CPU bus under the control of the CPU 1611 . The ATA interface 212 includes a serial ATA (S-ATA) standard and a parallel ATA (P-ATA) standard.

SRAM 캐시(1613)는 호스트와 불휘발성 메모리 장치들(1620 ~ 323) 간의 이동 데이터를 일시 저장한다. 또한 SRAM 캐시(1613)는 중앙처리장치(1611)에 의해서 운용될 프로그램을 저장하는 데에도 사용된다. SRAM 캐시(1613)는 일종의 버퍼 메모리로 간주할 수 있으며, 반드시 SRAM으로 구성할 필요는 없다. 플래시 인터페이스(1614)는 저장 장치로 사용되는 불휘발성 메모리들과 데이터를 주고받는다. 플래시 인터페이스(1614)는 낸드 플래시 메모리, One-NAND 플래시 메모리, 혹은 멀티-레벨 플래시 메모리를 지원하도록 구성될 수 있다.The SRAM cache 1613 temporarily stores movement data between the host and the nonvolatile memory devices 1620 to 323. Also, the SRAM cache 1613 is used to store programs to be operated by the central processing unit 1611. The SRAM cache 1613 can be regarded as a kind of buffer memory, and does not necessarily need to be composed of SRAM. The flash interface 1614 exchanges data with nonvolatile memories used as storage devices. The flash interface 1614 may be configured to support NAND flash memory, one-NAND flash memory, or multi-level flash memory.

본 발명에 따른 반도체 메모리 시스템은 이동형 저장 장치로서 사용될 수 있다. 따라서, MP3, 디지털 카메라, PDA, e-Book의 저장 장치로서 사용될 수 있다. 또한, 디지털 TV나 컴퓨터 등의 저장 장치로서 사용될 수 있다.The semiconductor memory system according to the present invention can be used as a portable storage device. Therefore, it can be used as a storage device for MP3, digital camera, PDA, and e-Book. Also, it can be used as a storage device such as a digital TV or computer.

본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.It is obvious to those skilled in the art that the structure of the present invention can be variously modified or changed without departing from the scope or spirit of the present invention. In view of the foregoing, it is believed that the present invention covers this invention and its modifications and variations provided that such modifications and variations fall within the scope of the following claims and equivalents.

이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.As above, exemplary embodiments have been disclosed in the drawings and specifications. Although the embodiments have been described using specific terms in this specification, they are only used for the purpose of explaining the technical idea of the present disclosure, and are not used to limit the scope of the present disclosure described in the claims. . Therefore, those of ordinary skill 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.

Claims (20)

복수의 메모리 셀들에 대하여 적어도 하나의 프로그램 루프를 수행하는 비휘발성 메모리의 프로그램 동작 방법에 있어서,
상기 적어도 하나의 프로그램 루프의 제1 프로그램 루프는,
제1 프로그램 전압을 인가하는 프로그램 단계;
제1 검증 전압에 기반한 출력에 대응되는 제1 센싱 값을 센싱하는 검증 단계; 및
상기 제1 센싱 값을 기초로 온셀(On cell)의 개수를 카운트하고, 제1 카운트 값과 적어도 하나의 기준 값을 비교하여, 비교 결과에 따라 제1 프로그램 상태의 패스 여부를 판단하고 상기 제1 프로그램 루프 이후의 제2 프로그램 루프에서의 제2 프로그램 전압을 설정하는 패스 확인 단계를 포함하는, 비휘발성 메모리의 프로그램 동작 방법.
A program operating method of a non-volatile memory that performs at least one program loop on a plurality of memory cells, comprising:
The first program loop of the at least one program loop,
a programming step of applying a first program voltage;
a verification step of sensing a first sensed value corresponding to an output based on the first verification voltage; and
The number of on-cells is counted based on the first sensing value, the first count value is compared with at least one reference value, and whether or not the first program state passes is determined according to the comparison result, and the first A method of operating a program of a non-volatile memory comprising: a pass checking step of setting a second program voltage in a second program loop after the program loop.
제1 항에 있어서,
상기 적어도 하나의 기준 값은,
제1 기준 값, 및 상기 제1 기준 값보다 큰 제2 기준 값을 포함하고,
상기 제1 카운트 값은,
상기 제1 기준 값보다 작거나 같고,
상기 패스 확인 단계는,
상기 제1 프로그램 상태를 패스(Pass)로 판단하고, 상기 제2 프로그램 전압을 설정하는 것을 생략하는 것을 특징으로 하는, 비휘발성 메모리의 프로그램 동작 방법.
According to claim 1,
The at least one reference value,
A first reference value and a second reference value greater than the first reference value,
The first count value is,
Less than or equal to the first reference value,
The pass confirmation step,
The program operating method of a non-volatile memory, characterized in that determining that the first program state is pass and omitting the setting of the second program voltage.
제2 항에 있어서,
상기 복수의 메모리 셀들은, 싱글 레벨 셀이고,
상기 비휘발성 메모리의 프로그램 동작 방법이 상기 제1 프로그램 루프 이후에 완료되는 것을 특징으로 하는, 비휘발성 메모리의 프로그램 동작 방법.
According to claim 2,
The plurality of memory cells are single-level cells,
The method of operating a program of a non-volatile memory, characterized in that the method of operating the program of the non-volatile memory is completed after the first program loop.
제1 항에 있어서,
상기 적어도 하나의 기준 값은,
제1 기준 값, 및 상기 제1 기준 값보다 큰 제2 기준 값을 포함하고,
상기 제1 카운트 값은,
상기 제1 기준 값보다 크고,
상기 패스 확인 단계는,
상기 제1 프로그램 상태를 페일(Fail)로 판단하고, 상기 제1 카운트 값에 기초하여 상기 제2 프로그램 전압의 크기를 설정하는 것을 특징으로 하는, 비휘발성 메모리의 프로그램 동작 방법.
According to claim 1,
The at least one reference value,
A first reference value and a second reference value greater than the first reference value,
The first count value is,
greater than the first reference value,
The pass confirmation step,
The method of claim 1 , wherein the first program state is determined to be a fail and the size of the second program voltage is set based on the first count value.
제4 항에 있어서,
상기 제1 카운트 값은,
상기 제2 기준 값보다 작거나 같고,
상기 제2 프로그램 루프는,
상기 제2 프로그램 전압을 인가하는 프로그램 단계를 포함하는 것을 특징으로 하는, 비휘발성 메모리의 프로그램 동작 방법.
According to claim 4,
The first count value is,
Less than or equal to the second reference value,
The second program loop,
A program operation method of a non-volatile memory comprising a programming step of applying the second program voltage.
제5 항에 있어서,
상기 복수의 메모리 셀들은, 싱글 레벨 셀이고,
상기 비휘발성 메모리의 프로그램 동작 방법이 상기 제2 프로그램 루프 이후에 완료되는 것을 특징으로 하는, 비휘발성 메모리의 프로그램 동작 방법.
According to claim 5,
The plurality of memory cells are single-level cells,
The method of operating a program of a non-volatile memory, characterized in that the method of operating the program of the non-volatile memory is completed after the second program loop.
제4 항에 있어서,
상기 제1 카운트 값은,
상기 제2 기준 값보다 크고,
상기 제2 프로그램 루프는,
상기 제2 프로그램 전압을 인가하는 프로그램 단계; 및
제2 검증 전압에 기반한 출력에 대응되는 제2 센싱 값을 센싱하는 검증 단계를 포함하고,
상기 제2 프로그램 루프 이후의 제3 프로그램 루프는,
상기 제2 프로그램 전압보다 높은 제3 프로그램 전압을 인가하고, 상기 제2 센싱 값을 기초로 온셀의 개수를 카운트하고, 제2 카운트 값과 상기 제1 기준 값 및 상기 제2 기준 값을 비교하여 상기 제1 프로그램 상태의 패스 여부를 판단하는 단계를 포함하는, 비휘발성 메모리의 프로그램 동작 방법.
According to claim 4,
The first count value is,
greater than the second reference value,
The second program loop,
a programming step of applying the second program voltage; and
A verification step of sensing a second sensed value corresponding to an output based on the second verification voltage;
The third program loop after the second program loop,
A third program voltage higher than the second program voltage is applied, the number of on-cells is counted based on the second sensed value, and the second count value is compared with the first reference value and the second reference value to obtain the A method of operating a program in a non-volatile memory comprising determining whether a first program state has passed.
제7 항에 있어서,
상기 복수의 메모리 셀들은, 싱글 레벨 셀이고,
상기 제1 프로그램 상태는 패스로 판단되고,
상기 비휘발성 메모리의 프로그램 동작 방법이 상기 제3 프로그램 루프 이후에 완료되는 것을 특징으로 하는, 비휘발성 메모리의 프로그램 동작 방법.
According to claim 7,
The plurality of memory cells are single-level cells,
The first program state is determined to be pass,
The method of operating a program of a non-volatile memory, characterized in that the method of operating the program of the non-volatile memory is completed after the third program loop.
제1 항에 있어서,
상기 제1 프로그램 전압은,
상기 복수의 메모리 셀들에 연결된 워드 라인에 따라 다르게 설정되는 것을 특징으로 하는, 비휘발성 메모리의 프로그램 동작 방법.
According to claim 1,
The first program voltage is
A program operation method of a non-volatile memory, characterized in that it is set differently according to word lines connected to the plurality of memory cells.
복수의 메모리 셀들을 포함하는 메모리 셀 어레이;
복수의 워드 라인들을 통해 상기 메모리 셀 어레이와 연결되고, 상기 복수의 워드 라인들 중 선택된 워드 라인에 전압을 제공하는 전압 생성기;
복수의 비트 라인들을 통해 상기 메모리 셀 어레이와 연결되고, 각 비트 라인을 통해 센싱 값을 센싱하는 페이지 버퍼 회로; 및
상기 복수의 메모리 셀들에 대하여 적어도 하나의 프로그램 루프를 수행하도록 구성된 제어 로직을 포함하고,
상기 제어 로직은,
적어도 하나의 프로그램 루프의 제1 프로그램 루프를 수행하고,
상기 제1 프로그램 루프에서의 제1 프로그램 전압을 인가하도록 상기 전압 생성기를 제어하고,
상기 제1 프로그램 루프에서의 제1 검증 전압을 인가하도록 상기 전압 생성기를 제어하고,
상기 제1 검증 전압에 기반한 출력에 대응되는 제1 센싱 값을 센싱하도록 상기 페이지 버퍼 회로를 제어하고,
상기 제1 센싱 값을 기초로 온셀(On cell)의 개수를 카운트하고, 제1 카운트 값과 미리 저장된 적어도 하나의 기준 값을 비교하여, 비교 결과에 따라 제1 프로그램 상태의 패스 여부를 판단하고 상기 제1 프로그램 루프 이후의 제2 프로그램 루프에서의 제2 프로그램 전압을 설정하는 것을 특징으로 하는, 비휘발성 메모리.
a memory cell array including a plurality of memory cells;
a voltage generator connected to the memory cell array through a plurality of word lines and providing a voltage to a selected word line among the plurality of word lines;
a page buffer circuit connected to the memory cell array through a plurality of bit lines and sensing a sensed value through each bit line; and
control logic configured to perform at least one program loop for the plurality of memory cells;
The control logic,
performing a first program loop of the at least one program loop;
Controlling the voltage generator to apply a first program voltage in the first program loop;
Controlling the voltage generator to apply a first verification voltage in the first program loop;
Control the page buffer circuit to sense a first sensing value corresponding to an output based on the first verification voltage;
The number of on-cells is counted based on the first sensing value, the first count value is compared with at least one reference value stored in advance, and whether or not the first program state passes is determined according to the comparison result. A non-volatile memory characterized by setting a second program voltage in a second program loop after the first program loop.
제10 항에 있어서,
상기 적어도 하나의 기준 값은,
제1 기준 값을 포함하고,
상기 제어 로직은,
상기 제1 카운트 값이 상기 제1 기준 값보다 이하인지 판단하고,
상기 제1 카운트 값이 상기 제1 기준 값보다 이하이면, 상기 제1 프로그램 상태를 패스(Pass)로 판단하고, 상기 제2 프로그램 전압을 설정하는 것을 생략하고,
상기 제1 카운트 값이 상기 제1 기준 값보다 크면, 상기 제1 프로그램 상태를 페일(Fail)로 판단하고, 상기 제1 카운트 값에 기초하여 상기 제2 프로그램 전압을 설정하는 것을 특징으로 하는, 비휘발성 메모리.
According to claim 10,
The at least one reference value,
Including a first reference value;
The control logic,
determining whether the first count value is less than or equal to the first reference value;
If the first count value is less than or equal to the first reference value, determining that the first program state is Pass and omitting the setting of the second program voltage;
When the first count value is greater than the first reference value, the first program state is determined to be a fail, and the second program voltage is set based on the first count value. volatile memory.
제11 항에 있어서,
상기 복수의 메모리 셀들은, 싱글 레벨 셀이고,
상기 제어 로직은,
상기 제1 프로그램 상태가 패스(Pass)로 판단되면, 상기 제1 프로그램 루프를 종료하고 프로그램 동작을 완료하는 것을 특징으로 하는, 비휘발성 메모리.
According to claim 11,
The plurality of memory cells are single-level cells,
The control logic,
When the first program state is determined to be Pass, the first program loop is terminated and a program operation is completed.
제11 항에 있어서,
상기 적어도 하나의 기준 값은,
상기 제1 기준 값보다 큰 제2 기준 값을 더 포함하고,
상기 제어 로직은,
상기 제1 카운트 값이 상기 제1 기준 값보다 크고 상기 제2 기준 값 이하면, 상기 제2 프로그램 루프를 수행하여 상기 제2 프로그램 전압을 인가하도록 상기 전압 생성기를 제어하는 것을 특징으로 하는, 비휘발성 메모리.
According to claim 11,
The at least one reference value,
Further comprising a second reference value greater than the first reference value,
The control logic,
When the first count value is greater than the first reference value and less than or equal to the second reference value, the voltage generator is controlled to apply the second program voltage by performing the second program loop. Memory.
제11 항에 있어서,
상기 적어도 하나의 기준 값은,
상기 제1 기준 값보다 큰 제2 기준 값을 더 포함하고,
상기 제어 로직은,
상기 제1 카운트 값이 상기 제2 기준 값보다 크면, 상기 제2 프로그램 루프를 수행하여 상기 제2 프로그램 전압을 인가하도록 상기 전압 생성기를 제어하고, 상기 제2 프로그램 루프에서의 제2 검증 전압을 인가하도록 상기 전압 생성기를 제어하고, 상기 제2 검증 전압에 기반한 출력에 대응되는 제2 센싱 값을 센싱하도록 상기 페이지 버퍼 회로를 제어하고,
상기 제2 프로그램 루프 이후의 제3 프로그램 루프를 수행하여 상기 제2 프로그램 전압보다 높은 제3 프로그램 전압을 인가하도록 상기 전압 생성기를 제어하고, 상기 제2 센싱 값을 기초로 온셀의 개수를 카운트하고, 제2 카운트 값과 상기 제1 기준 값 및 상기 제2 기준 값을 비교하여 상기 제1 프로그램 상태의 패스 여부를 판단하는 것을 특징으로 하는, 비휘발성 메모리.
According to claim 11,
The at least one reference value,
Further comprising a second reference value greater than the first reference value,
The control logic,
If the first count value is greater than the second reference value, the second program loop is performed, the voltage generator is controlled to apply the second program voltage, and the second verify voltage is applied in the second program loop. controlling the voltage generator to sense a second sensing value corresponding to an output based on the second verification voltage;
controlling the voltage generator to apply a third program voltage higher than the second program voltage by performing a third program loop after the second program loop, and counting the number of on-cells based on the second sensed value; and determining whether the first program state passes by comparing a second count value with the first reference value and the second reference value.
제10 항에 있어서,
상기 제어 로직은,
상기 선택된 워드 라인에 따라 상기 제1 프로그램 전압을 다르게 설정하는 것을 특징으로 하는, 비휘발성 메모리.
According to claim 10,
The control logic,
and setting the first program voltage differently according to the selected word line.
복수의 싱글 레벨 셀들에 대하여 제1 프로그램 루프를 수행하는 비휘발성 메모리의 프로그램 동작 방법에 있어서,
상기 제1 프로그램 루프는,
제1 프로그램 전압을 인가하는 프로그램 단계;
제1 검증 전압에 기반한 출력에 대응되는 제1 센싱 값을 센싱하는 검증 단계; 및
상기 제1 센싱 값을 기초로 온셀(On cell)의 개수를 카운트하고, 제1 카운트 값과 복수의 기준 범위들을 비교하여, 비교 결과에 따라 프로그램 상태의 패스 여부를 판단하고 상기 제1 프로그램 루프 이후의 제2 프로그램 루프에서의 제2 프로그램 전압을 설정하는 패스 확인 단계를 포함하는, 비휘발성 메모리의 프로그램 동작 방법.
A program operation method of a non-volatile memory in which a first program loop is performed on a plurality of single-level cells, the method comprising:
The first program loop,
a programming step of applying a first program voltage;
a verification step of sensing a first sensed value corresponding to an output based on the first verification voltage; and
The number of on cells is counted based on the first sensing value, the first count value is compared with a plurality of reference ranges, and whether or not the program state passes is determined based on the comparison result, and after the first program loop A method of operating a program of a non-volatile memory comprising a pass checking step of setting a second program voltage in a second program loop of
제16 항에 있어서,
상기 제1 카운트 값은,
상기 복수의 기준 범위들 중 제1 기준 값 이하의 제1 기준 범위에 포함되고,
상기 패스 확인 단계는,
상기 프로그램 상태를 패스(Pass)로 판단하고, 상기 제2 프로그램 전압을 설정하는 것을 생략하고,
상기 비휘발성 메모리의 프로그램 동작 방법이 상기 제1 프로그램 루프 이후에 완료되는 것을 특징으로 하는, 비휘발성 메모리의 프로그램 동작 방법.
According to claim 16,
The first count value is,
Included in a first reference range less than or equal to a first reference value among the plurality of reference ranges,
The pass confirmation step,
determining that the program state is pass, and omitting setting the second program voltage;
The method of operating a program of a non-volatile memory, characterized in that the method of operating the program of the non-volatile memory is completed after the first program loop.
제16 항에 있어서,
상기 제1 카운트 값은,
상기 복수의 기준 범위들 중 제1 기준 값 내지 제2 기준 값 간의 제2 기준 범위에 포함되고,
상기 패스 확인 단계는,
상기 프로그램 상태를 페일(Fail)로 판단하고, 상기 제1 카운트 값에 따라 상기 제2 프로그램 전압의 크기를 설정하고,
상기 제2 프로그램 루프는,
상기 제2 프로그램 전압을 인가하는 프로그램 단계를 포함하고,
상기 비휘발성 메모리의 프로그램 동작 방법이 상기 제2 프로그램 루프 이후에 완료되는 것을 특징으로 하는, 비휘발성 메모리의 프로그램 동작 방법.
According to claim 16,
The first count value is,
Included in a second reference range between a first reference value and a second reference value among the plurality of reference ranges,
The pass confirmation step,
determining that the program state is a fail, and setting the magnitude of the second program voltage according to the first count value;
The second program loop,
A programming step of applying the second program voltage;
The method of operating a program of a non-volatile memory, characterized in that the method of operating the program of the non-volatile memory is completed after the second program loop.
제16 항에 있어서,
상기 제1 카운트 값은,
상기 복수의 기준 범위들 중 제1 기준 값보다 큰 제2 기준 값 이상의 제3 기준 범위에 포함되고,
상기 패스 확인 단계는,
상기 프로그램 상태를 페일(Fail)로 판단하고, 상기 제1 카운트 값에 따라 상기 제2 프로그램 전압의 크기를 설정하고,
상기 제2 프로그램 루프는,
상기 제2 프로그램 전압을 인가하는 프로그램 단계; 및
제2 검증 전압에 기반한 출력에 대응되는 제2 센싱 값을 센싱하는 검증 단계를 포함하고,
상기 제2 프로그램 루프 이후의 제3 프로그램 루프는,
상기 제2 프로그램 전압보다 높은 제3 프로그램 전압을 인가하고, 상기 제2 센싱 값을 기초로 온셀의 개수를 카운트하고, 제2 카운트 값과 상기 제1 기준 값 및 상기 제2 기준 값을 비교하여 상기 프로그램 상태의 패스 여부를 판단하는 단계를 포함하는, 비휘발성 메모리의 프로그램 동작 방법.
According to claim 16,
The first count value is,
Included in a third reference range equal to or greater than a second reference value greater than the first reference value among the plurality of reference ranges,
The pass confirmation step,
determining that the program state is a fail, and setting the magnitude of the second program voltage according to the first count value;
The second program loop,
a programming step of applying the second program voltage; and
A verification step of sensing a second sensed value corresponding to an output based on the second verification voltage;
The third program loop after the second program loop,
A third program voltage higher than the second program voltage is applied, the number of on-cells is counted based on the second sensed value, and the second count value is compared with the first reference value and the second reference value to obtain the A method of operating a program in a non-volatile memory comprising determining whether a program state has passed.
제19 항에 있어서,
상기 프로그램 상태는 패스로 판단되고,
상기 비휘발성 메모리의 프로그램 동작 방법이 상기 제3 프로그램 루프 이후에 완료되는 것을 특징으로 하는, 비휘발성 메모리의 프로그램 동작 방법.
According to claim 19,
The program state is determined to be pass,
The method of operating a program of a non-volatile memory, characterized in that the method of operating the program of the non-volatile memory is completed after the third program loop.
KR1020220079275A 2021-09-17 2022-06-28 Storage device, non-volatile memory, and operating mehtod of non-volatile memory KR20230041582A (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US17/941,570 US20230091724A1 (en) 2021-09-17 2022-09-09 Storage device, non-volatile memory, and method of operating program of non-volatile memory
EP22195148.6A EP4152330A1 (en) 2021-09-17 2022-09-12 Storage device, non-volatile memory, and method of programing the non-volatile memory
CN202211130743.1A CN115831178A (en) 2021-09-17 2022-09-16 Storage device, non-volatile memory device and method of operating program thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210125222 2021-09-17
KR20210125222 2021-09-17

Publications (1)

Publication Number Publication Date
KR20230041582A true KR20230041582A (en) 2023-03-24

Family

ID=85872480

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220079275A KR20230041582A (en) 2021-09-17 2022-06-28 Storage device, non-volatile memory, and operating mehtod of non-volatile memory

Country Status (1)

Country Link
KR (1) KR20230041582A (en)

Similar Documents

Publication Publication Date Title
KR102302187B1 (en) Methods of operating nonvolatile memory devices and nonvolatile memory devices
KR102435027B1 (en) Nonvolatile memory device and read method thereof
KR102139323B1 (en) Nonvolatile memory device and program programming method thereof
KR101891164B1 (en) Flash memory device including program scheduler
KR101734204B1 (en) Flash memory device and system including program sequencer and program method thereof
KR101716713B1 (en) Flash memory device and program method thereof
KR101792870B1 (en) Non-volatile memory device and read method thereof
KR102118979B1 (en) Non-volatile memory device and program method thereof
KR101916192B1 (en) Nonvolatile memory device comprising flag cell and user device comprising the same
US10573378B2 (en) Methods of programming memory devices
KR102314136B1 (en) Non-volatile memory device, memory system and operating method thereof
KR20140025164A (en) Nonvolitile memory device and data processing methods thereof
KR102128825B1 (en) Non-volatile memory device and operation method thereof
KR102449196B1 (en) Nonvolatile memory device and program method of a nonvolatile memory device
KR20140020445A (en) Memory system including three dimensional nonvolatile memory device and programming method thereof
KR20110131648A (en) Nonvolatile memory device, memory system and memory card having its, and programming method thereof
KR20100107294A (en) Memory system including nonvolatile memory device and programing method of nonvolatile memory device
KR20130085154A (en) Nonvolatile memory device, novolatile memory system, program method thereof, and operation method of controller controlling the same
KR102504295B1 (en) Nonvolatile Memory Device, and Programming Method Thereof
KR102345597B1 (en) 3 dimensional flash memory device comprising dummy word line
KR20150015578A (en) Nonvolatile memory device and program verifying method thereof
KR20200117746A (en) Nonvolatile memory devices, operating method thereof and memory system comprising thereof
KR102131060B1 (en) Read and write operation method of nonvolatile memory device
KR101893562B1 (en) Nonvolatile memory device and program method thereof
KR102402667B1 (en) Nonvolatile memory device and operating method of the same