KR20230098657A - 메모리 장치 및 그 프로그램 동작 - Google Patents
메모리 장치 및 그 프로그램 동작 Download PDFInfo
- Publication number
- KR20230098657A KR20230098657A KR1020237019080A KR20237019080A KR20230098657A KR 20230098657 A KR20230098657 A KR 20230098657A KR 1020237019080 A KR1020237019080 A KR 1020237019080A KR 20237019080 A KR20237019080 A KR 20237019080A KR 20230098657 A KR20230098657 A KR 20230098657A
- Authority
- KR
- South Korea
- Prior art keywords
- program
- occurrences
- program operation
- memory
- memory device
- Prior art date
Links
- 230000002093 peripheral effect Effects 0.000 claims abstract description 62
- 238000000034 method Methods 0.000 claims description 33
- 230000004044 response Effects 0.000 claims description 19
- 230000008878 coupling Effects 0.000 claims description 7
- 238000010168 coupling process Methods 0.000 claims description 7
- 238000005859 coupling reaction Methods 0.000 claims description 7
- 230000000977 initiatory effect Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 12
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 9
- 229910052710 silicon Inorganic materials 0.000 description 9
- 239000010703 silicon Substances 0.000 description 9
- 230000001960 triggered effect Effects 0.000 description 8
- 239000000872 buffer Substances 0.000 description 7
- 239000004065 semiconductor Substances 0.000 description 7
- 239000000758 substrate Substances 0.000 description 7
- 238000012795 verification Methods 0.000 description 7
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N Silicium dioxide Chemical compound O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 4
- 238000007667 floating Methods 0.000 description 4
- 229910052814 silicon oxide Inorganic materials 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 3
- 229910021420 polycrystalline silicon Inorganic materials 0.000 description 3
- 229920005591 polysilicon Polymers 0.000 description 3
- 230000005641 tunneling Effects 0.000 description 3
- 229910000577 Silicon-germanium Inorganic materials 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 239000010949 copper Substances 0.000 description 2
- 238000007599 discharging Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 229910052732 germanium Inorganic materials 0.000 description 2
- GNPVGFCGXDBREM-UHFFFAOYSA-N germanium atom Chemical compound [Ge] GNPVGFCGXDBREM-UHFFFAOYSA-N 0.000 description 2
- 239000012212 insulator Substances 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000000725 suspension Substances 0.000 description 2
- WFKWXMTUELFFGS-UHFFFAOYSA-N tungsten Chemical compound [W] WFKWXMTUELFFGS-UHFFFAOYSA-N 0.000 description 2
- 229910052721 tungsten Inorganic materials 0.000 description 2
- 239000010937 tungsten Substances 0.000 description 2
- JBRZTFJDHDCESZ-UHFFFAOYSA-N AsGa Chemical compound [As]#[Ga] JBRZTFJDHDCESZ-UHFFFAOYSA-N 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 101000934888 Homo sapiens Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Proteins 0.000 description 1
- 229910052581 Si3N4 Inorganic materials 0.000 description 1
- 102100025393 Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Human genes 0.000 description 1
- LEVVHYCKPQWKOP-UHFFFAOYSA-N [Si].[Ge] Chemical compound [Si].[Ge] LEVVHYCKPQWKOP-UHFFFAOYSA-N 0.000 description 1
- 229910052782 aluminium Inorganic materials 0.000 description 1
- XAGFODPZIPBFFR-UHFFFAOYSA-N aluminium Chemical compound [Al] XAGFODPZIPBFFR-UHFFFAOYSA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 229910017052 cobalt Inorganic materials 0.000 description 1
- 239000010941 cobalt Substances 0.000 description 1
- GUTLYIVDDKVIGB-UHFFFAOYSA-N cobalt atom Chemical compound [Co] GUTLYIVDDKVIGB-UHFFFAOYSA-N 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000003989 dielectric material Substances 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000001976 improved effect Effects 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 229910021421 monocrystalline silicon Inorganic materials 0.000 description 1
- 239000012811 non-conductive material Substances 0.000 description 1
- 230000002028 premature Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000002040 relaxant effect Effects 0.000 description 1
- 229910021332 silicide Inorganic materials 0.000 description 1
- FVBUAEGBCNSCDD-UHFFFAOYSA-N silicide(4-) Chemical compound [Si-4] FVBUAEGBCNSCDD-UHFFFAOYSA-N 0.000 description 1
- HQVNEWCFYHHQES-UHFFFAOYSA-N silicon nitride Chemical compound N12[Si]34N5[Si]62N3[Si]51N64 HQVNEWCFYHHQES-UHFFFAOYSA-N 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5671—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge trapping in an insulator
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/24—Bit-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/32—Timing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- H—ELECTRICITY
- H10—SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
- H10B—ELECTRONIC MEMORY DEVICES
- H10B43/00—EEPROM devices comprising charge-trapping gate insulators
- H10B43/20—EEPROM devices comprising charge-trapping gate insulators characterised by three-dimensional arrangements, e.g. with cells on different height levels
- H10B43/23—EEPROM devices comprising charge-trapping gate insulators characterised by three-dimensional arrangements, e.g. with cells on different height levels with source and drain on different levels, e.g. with sloping channels
- H10B43/27—EEPROM devices comprising charge-trapping gate insulators characterised by three-dimensional arrangements, e.g. with cells on different height levels with source and drain on different levels, e.g. with sloping channels the channels comprising vertical portions, e.g. U-shaped channels
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Abstract
특정 양태에서, 메모리 장치는 메모리 셀들과, 메모리 셀들에 결합된 주변 회로를 포함한다. 주변 회로는 메모리 셀들 중 선택 메모리 셀에 대한 프로그램 동작을 개시하고, 프로그램 동작 동안 하나 이상의 중지의 발생 횟수를 획득하고, 중지의 발생 횟수에 기초하여 프로그램 동작을 위한 프로그램 펄스 한계를 결정하도록 구성된다.
Description
본 발명은 메모리 장치 및 그 동작 방법에 관한 것이다.
플래시 메모리는 전기적으로 소거될 수 있고 재프로그래밍될 수 있는 저비용, 고밀도, 비휘발성의 솔리드-스테이트(solid-state) 저장 매체이다. 플래시 메모리는 NOR 플래시 메모리 및 NAND 플래시 메모리를 포함한다. 각 메모리 셀의 임계 전압을 원하는 레벨로 변경하기 위해, 판독, 프로그램(기록), 및 소거와 같은 다양한 동작이 플래시 메모리에 의해 수행될 수 있다. NAND 플래시 메모리의 경우, 소거 동작은 블록 레벨에서 수행될 수 있고, 프로그램 동작 또는 판독 동작은 페이지 레벨에서 수행될 수 있다.
일 양태에서, 메모리 장치는 메모리 셀들과, 메모리 셀들에 결합된 주변 회로를 포함한다. 주변 회로는 메모리 셀들 중 선택 메모리 셀에 대해 프로그램 동작을 개시하고, 프로그램 동작 동안 하나 이상의 중지의 발생 횟수를 획득하고, 중지의 발생 횟수에 기초하여 프로그램 동작을 위한 프로그램 펄스 한계를 결정하도록 구성된다.
다른 양태에서, 시스템은 데이터를 저장하도록 구성된 메모리 장치와, 메모리 장치에 결합된 메모리 제어기를 포함한다. 메모리 장치는 메모리 셀들과, 메모리 셀들에 결합된 주변 회로를 포함한다. 주변 회로는 메모리 셀들 중 선택 메모리 셀에 대해 프로그램 동작을 개시하고, 프로그램 동작 동안 하나 이상의 중지의 발생 횟수를 획득하고, 중지의 발생 횟수에 기초하여 프로그램 동작을 위한 프로그램 펄스 한계를 결정하도록 구성된다. 메모리 제어기는 프로그램 동작을 개시하기 위해 주변 회로에 프로그램 커맨드를 전송하고, 프로그램 동작 동안 하나 이상의 중지를 유발하기 위해 프로그램 커맨드 후에 하나 이상의 중지 커맨드를 주변 회로에 전송하도록 구성된다.
또 다른 양태에서는, 메모리 장치를 동작시키는 방법이 제공된다. 메모리 장치는 메모리 셀을 포함한다. 메모리 셀들 중 선택된 메모리 셀에 대해 프로그램 동작이 개시된다. 프로그램 동작 동안 하나 이상의 중지의 발생 횟수가 획득된다. 중지의 발생 횟수에 기초하여, 프로그램 동작을 위한 프로그램 펄스 한계가 결정된다.
본 명세서에 포함되어 명세서의 일부를 형성하는 첨부 도면은 본 개시의 양태들을 도시하고, 상세한 설명과 함께, 본 개시의 원리를 설명하고, 관련 기술 분야의 통상의 기술자로 하여금 본 개시를 제조 및 사용할 수 있게 하는 역할도 한다.
도 1은 본 개시의 일부 양태에 따른, 메모리 장치를 갖는 시스템의 블록도를 도시한다.
도 2a는 본 개시의 일부 양태에 따른, 메모리 장치를 갖는 메모리 카드의 도면을 도시한다.
도 2b는 본 개시의 일부 양태에 따른, 메모리 장치를 갖는 솔리드-스테이트 드라이브(SSD)의 도면을 도시한다.
도 3은 본 개시의 일부 양태에 따른, 주변 회로를 포함하는 메모리 장치의 개략도를 도시한다.
도 4a 및 도 4b는 본 개시의 일부 양태에 따른, NAND 메모리 스트링을 포함하는 메모리 셀 어레이의 단면의 측면도 및 평면도를 각각 도시한다.
도 5는 본 개시의 일부 양태에 따른, 메모리 셀 어레이 및 주변 회로를 포함하는 메모리 장치의 블록도를 도시한다.
도 6은 본 개시의 일부 양태에 따른, 프로그램 동작 중지 및 재개의 방식을 도시한다.
도 7은 본 개시의 일부 양태에 따른, 프로그램 동작 중지 및 재개에 응답하는 증분 스텝 펄스 프로그래밍(incremental step pulse programming: ISPP)의 방식을 도시한다.
도 8은 본 개시의 일부 양태에 따른, 정상적인 ISPP 프로그램 동작과 프로그램 중지 및 재개를 갖는 ISPP 프로그램 동작 사이의 비교를 도시한다.
도 9는 본 개시의 일부 양태에 따른, 도 1의 메모리 장치의 제어 로직 및 레지스터의 상세한 블록도를 도시한다.
도 10은 본 개시의 일부 양태에 따른, 프로그램 동작 동안 중지의 발생 횟수를 획득하는 방식의 흐름도를 도시한다.
도 11은 본 개시의 일부 양태에 따른, 도 1의 메모리 장치의 제어 로직 및 레지스터의 다른 상세한 블록도를 도시한다.
도 12는 본 개시의 일부 양태에 따른, 메모리 장치를 동작시키는 방법의 흐름도를 도시한다.
첨부된 도면을 참조하여 본 개시를 설명한다.
도 1은 본 개시의 일부 양태에 따른, 메모리 장치를 갖는 시스템의 블록도를 도시한다.
도 2a는 본 개시의 일부 양태에 따른, 메모리 장치를 갖는 메모리 카드의 도면을 도시한다.
도 2b는 본 개시의 일부 양태에 따른, 메모리 장치를 갖는 솔리드-스테이트 드라이브(SSD)의 도면을 도시한다.
도 3은 본 개시의 일부 양태에 따른, 주변 회로를 포함하는 메모리 장치의 개략도를 도시한다.
도 4a 및 도 4b는 본 개시의 일부 양태에 따른, NAND 메모리 스트링을 포함하는 메모리 셀 어레이의 단면의 측면도 및 평면도를 각각 도시한다.
도 5는 본 개시의 일부 양태에 따른, 메모리 셀 어레이 및 주변 회로를 포함하는 메모리 장치의 블록도를 도시한다.
도 6은 본 개시의 일부 양태에 따른, 프로그램 동작 중지 및 재개의 방식을 도시한다.
도 7은 본 개시의 일부 양태에 따른, 프로그램 동작 중지 및 재개에 응답하는 증분 스텝 펄스 프로그래밍(incremental step pulse programming: ISPP)의 방식을 도시한다.
도 8은 본 개시의 일부 양태에 따른, 정상적인 ISPP 프로그램 동작과 프로그램 중지 및 재개를 갖는 ISPP 프로그램 동작 사이의 비교를 도시한다.
도 9는 본 개시의 일부 양태에 따른, 도 1의 메모리 장치의 제어 로직 및 레지스터의 상세한 블록도를 도시한다.
도 10은 본 개시의 일부 양태에 따른, 프로그램 동작 동안 중지의 발생 횟수를 획득하는 방식의 흐름도를 도시한다.
도 11은 본 개시의 일부 양태에 따른, 도 1의 메모리 장치의 제어 로직 및 레지스터의 다른 상세한 블록도를 도시한다.
도 12는 본 개시의 일부 양태에 따른, 메모리 장치를 동작시키는 방법의 흐름도를 도시한다.
첨부된 도면을 참조하여 본 개시를 설명한다.
특정 구성 및 배열이 논의되지만, 이는 단지 예시적 목적으로 행해진 것임을 이해해야 한다. 이와 같이, 본 개시의 범위를 벗어나지 않으면서 다른 구성 및 배열이 사용될 수 있다. 또한, 본 개시는 다양한 다른 응용에 채용될 수도 있다. 본 개시에 설명된 기능적 및 구조적 특징은 도면에 구체적으로 도시되지 않은 방식으로 서로 조합, 조정 및 수정될 수 있으며, 이러한 조합, 조정 및 수정은 본 개시의 범위 내에 있다.
일반적으로, 용어는 적어도 부분적으로 문맥에서의 용법으로부터 이해될 수 있다. 예를 들어, 본 명세서에서 사용되는 "하나 이상(one or more)"이라는 용어는, 적어도 부분적으로 문맥에 따라, 단수의 의미로 임의의 특징, 구조, 또는 특성을 설명하기 위해 사용될 수 있거나, 복수의 의미로 특징들, 구조들 또는 특성들의 조합을 설명하기 위해 사용될 수 있다. 유사하게, 단수형 용어도, 적어도 부분적으로 문맥에 따라, 단수 용법을 전달하거나 복수 용법을 전달하는 것으로 이해될 수 있다. 또한, "~에 기초한"이라는 용어는 반드시 배타적인 요소 집합을 전달하려는 의도가 아닌 것으로 이해될 수 있으며, 대신, 역시 적어도 부분적으로 문맥에 따라, 반드시 명시적으로 설명되지 않은 추가 요소의 존재를 허용할 수 있다.
NAND 플래시 메모리 장치는 페이지/워드 라인 레벨에서 프로그램(기록) 동작, 즉, 동일한 선택 워드 라인에 결합된 모든 메모리 셀을 동시에 프로그래밍하는 것을 수행할 수 있다. 각각의 프로그램 동작은 프로그램 펄스 및 검증 펄스를 적용하는 다수의 사이클을 각각 갖는 다수의 패스(passes)를 포함함에 따라 상대적으로 긴 시간(예컨대, 수백 마이크로초(μS))을 소모하므로, NAND 플래시 메모리 장치는 일반적으로 한 페이지에서의 프로그램 동작 동안 진행 중인 프로그램 동작을 중지하고 다른 동작(예컨대, 다른 페이지에서의 판독 동작)으로 전환하기 위해 인터럽트를 지원한다. 다른 동작이 마무리되면, 중지된 프로그램 동작이 재개되어 원래 페이지를 프로그래밍할 수 있다.
중지된 기간 동안(예컨대, 프로그램 동작이 중지되는 시간과 프로그램 동작이 재개되는 시간 사이에), 각각의 선택 메모리 스트링(예컨대, NAND 메모리 스트링)의 채널은 플로팅 상태이다. 선택 페이지를 프로그래밍할 때 선택 워드 라인에 인가된 프로그램 전압의 방전은, 선택 워드 라인과 채널 사이의 결합 커패시터와 함께, 채널에서 음의 결합 전위를 유발할 수 있다. 그 결과, 음의 전위에 의해 정공이 끌어당겨져서 선택 메모리 셀의 채널 및 전하 트랩층에 축적될 수 있다. 프로그램 중지 기간 동안 축적된 여분의 정공은 선택 메모리 셀의 임계 전압을 증가시키므로, 프로그램 동작이 재개될 때 선택 메모리 셀이 원하는 임계 전압 레벨로 프로그래밍되지 않더라도 선택 메모리 셀은 더 쉽게 검증을 통과할 수 있다. 또한, 프로그램 동작이 재개된 후 선택 메모리 스트링의 채널 내의 음의 전위가 사라지면 축적된 정공도 함께 해제되어 임계 전압을 낮출 수 있다. 결과적으로, 프로그램 동작의 중지/재개와 관련된 위에서 언급한 "오버-프로그램" 문제로 인해 프로그래밍된 페이지에서의 후속 판독 동작 중에 더 많은 실패 비트(fail bit)가 발생할 수 있다.
오버-프로그램 문제를 해결하기 위해, 프로그램 펄스의 전압을 시작 전압에서 타겟 전압까지 스텝 전압 단위(즉, 증분 전압)로 점진적으로 증가시키는 ISPP 방식의 프로그램 동작의 경우, 프로그램 동작의 각 재개 직후 프로그램 펄스의 증분 전압(즉, 첫 번째 재개된 프로그램 펄스)은 정상적인 프로그램 펄스의 디폴트 증분 전압으로부터 감소될 필요가 있다.
한편, 동일한 워드 라인을 공유하는 다른 메모리 셀이 여전히 프로그래밍되고 있을 때, (예컨대, NAND 메모리 스트링 내에서) 검증된(즉, 프로그램 금지 상태로 설정된) 메모리 셀에 프로그램 교란이 발생할 수 있다. 특히, 특정 워드 라인에 누설 또는 기타 결함이 있는 경우, 워드 라인에 인가되는 프로그램 펄스의 수는 계속 증가할 것이고, 이는 검증된 메모리 셀에 대한 프로그램 교란을 악화시키고 그 임계 전압 분포를 시프트시킨다. 따라서, 프로그램 교란으로 인한 임계 전압의 시프트를 피하기 위해서는 각 프로그램 동작에서 워드 라인에 인가될 수 있는 프로그램 펄스의 총 수를 제한하는 상한(최대값)이 설정되어야 한다.
그러나, ISPP 방식의 프로그램 동작의 경우, 프로그램 중지/재개로 인한 감소된 증분 전압은 타겟 프로그램 전압에 도달하는 데 필요한 프로그램 펄스의 수를 증가시킨다. 결과적으로, 빈번한 프로그램 중지/재개로 인해 프로그램 펄스 한계에 조기에 도달하면 프로그램 동작은 강제로 종료될 수 있다. 반대로, 가능한 프로그램 중지/재개로 인한 프로그램 펄스 한계를 맹목적으로 완화하는 것도 프로그램 교란으로 인한 임계 전압 시프트의 위험을 증가시키므로 바람직하지 않다.
전술한 문제들 중 하나 이상을 해결하기 위해, 본 개시는 각 프로그램 동작에서의 프로그램 중지/재개의 발생 횟수에 기초하여 프로그램 펄스 한계를 동적으로 조정하는 솔루션을 소개하는데, 이는 프로그램 교란으로 인한 임계 전압 시프트의 위험과 프로그램 동작을 완전하게 마무리해야 할 필요성 사이에서 균형을 유지한다. 본 명세서에 개시된 동적 프로그램 펄스 한계 조정 방식을 적용함으로써, 중지/재개에 의해 인터럽트되지 않는 정상적인 프로그램 동작의 경우에 디폴트 프로그램 펄스 한계는 그대로 유지되어 프로그램 교란으로 인한 임계 전압 시프트를 방지하며, 중지/재개에 의해 인터럽트되는 프로그램 동작의 경우에 디폴트 프로그램 펄스 한계는 완화되어 프로그램 동작이 올바르게 마무리되게 할 수 있다. 디폴트 프로그램 펄스 한계는 예를 들어 중지/재개와 무관한 다양한 요인에 기초하여 미리 설정될 수 있다. 일부 구현에서, 디폴트 프로그램 펄스 한계는 상이한 프로그램 동작, 상이한 페이지 등에 기초하여 미리 설정된다. 더 나아가, 일부 구현에서는, 각 프로그램 동작에서 프로그램 펄스 한계에 대한 완화 정도를 동적으로 미세하게 조정하기 위해 프로그램 중지/재개의 발생 횟수가 고려된다.
도 1은 본 개시의 일부 양태에 따른, 메모리 장치를 갖는 예시적 시스템(100)의 블록도를 도시한다. 시스템(100)은 휴대폰, 데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿, 차량용 컴퓨터, 게임 콘솔, 프린터, 포지셔닝 장치, 웨어러블 전자 장치, 스마트 센서, 가상 현실(VR) 장치, 증강 현실(AR) 장치, 또는 저장소를 갖는 임의의 다른 적절한 전자 장치일 수 있다. 도 1에 도시된 바와 같이, 시스템(100)은 호스트(108)와, 하나 이상의 메모리 장치(104) 및 메모리 제어기(106)를 갖는 메모리 시스템(102)을 포함할 수 있다. 호스트(108)는 중앙 처리 장치(CPU)와 같은 전자 장치의 프로세서 또는 애플리케이션 프로세서(AP)와 같은 시스템 온 칩(SoC)의 프로세서일 수 있다. 호스트(108)는 메모리 장치(104)로 데이터를 송신하거나 또는 메모리 장치(104)로부터 데이터를 수신하도록 구성될 수 있다. 데이터를 메모리 장치(104)로 송신하거나 그로부터 수신하기 위해, 호스트(108)는 데이터 외에 명령어를 메모리 시스템(102)으로 송신할 수 있다.
메모리 장치(104)는 본 명세서에 개시된 임의의 메모리 장치일 수 있다. 이하에서 상세히 개시되는 바와 같이, NAND 플래시 메모리 장치와 같은 메모리 장치(104)는 인터럽트에 의해 트리거되는 프로그램 동작 중지를 지원할 수 있다. 메모리 장치(104)는 예를 들어 NAND 메모리 스트링 내의 메모리 셀을 포함할 수 있다. 본 개시의 범위와 일관되게, 메모리 장치(104)는 프로그램 동작 동안 하나 이상의 중지의 발생 횟수를 획득할 수 있고, 중지의 발생 횟수에 기초하여 프로그램 동작을 위한 프로그램 펄스 한계를 결정하여 진행 중인 프로그램 동작에서 허용되는 프로그램 펄스의 최대 수를 조정할 수 있다. 그 결과, 프로그램 교란으로 인한 임계 전압 시프트의 위험과 프로그램 동작을 완전하게 마무리해야 할 필요성 사이에서 균형이 유지될 수 있고, 메모리 장치(104)의 성능이 향상될 수 있다.
일부 구현에 따라, 메모리 제어기(106)는 메모리 장치(104) 및 호스트(108)에 결합되고, 메모리 장치(104)를 제어하도록 구성된다. 메모리 제어기(106)는 메모리 장치(104)에 저장된 데이터를 관리하고 호스트(108)와 통신할 수 있다. 일부 구현에서, 메모리 제어기(106)는, 보안 디지털(SD) 카드, 컴팩트 플래시(CF) 카드, 범용 직렬 버스(USB) 플래시 드라이브, 또는 개인용 컴퓨터, 디지털 카메라, 휴대폰 등과 같은 전자 장치에서 사용하기 위한 다른 매체와 같은, 낮은 듀티 사이클 환경에서 동작하도록 설계된다. 일부 구현에서, 메모리 제어기(106)는 스마트폰, 태블릿, 랩탑 컴퓨터 등과 같은 모바일 장치용 데이터 저장소 및 기업용 저장소 어레이로 사용되는 높은 듀티 사이클 환경 SSD 또는 eMMC(embedded multi-media-cards)에서 동작하도록 설계된다. 메모리 제어기(106)는 판독, 소거 및 프로그램 동작과 같은 메모리 장치(104)의 동작을 제어하도록 구성될 수 있다. 예를 들어, 호스트(108)로부터 수신된 명령어에 기초하여, 메모리 제어기(106)는 메모리 장치(104)의 동작을 제어하기 위해 다양한 커맨드, 예컨대, 프로그램 커맨드, 판독 커맨드, 소거 커맨드 등을 메모리 장치(104)에 전송할 수 있다. 본 개시의 범위와 일관되게, 일부 구현에서, 메모리 제어기(106)는 메모리 장치(104)에 의해 수행되는 프로그램 동작을 개시하기 위해 메모리 장치(104)에 프로그램 커맨드를 전송한다. 진행 중인 프로그램 동작 동안, 예를 들어 호스트(108)로부터 인터럽트/중지가 발생할 수 있고, 메모리 제어기(106)는 프로그램 동작 동안 하나 이상의 중지를 유발하기 위해 메모리 장치(104)에 하나 이상의 중지 커맨드를 전송하도록 구성될 수 있다. 일부 구현에서, 일단 각각의 중지에 의해 트리거된 다른 동작(예컨대, 판독 동작)이 완료되면, 메모리 제어기(106)는 또한 중지된 프로그램 동작을 재개하기 위해 재개 커맨드를 메모리 장치(104)에 전송하도록 구성될 수 있다. 일부 구현에서, 메모리 제어기(106)는 각각의 메모리 장치(104)에 대한 프로그램 동작 동안 중지의 발생 횟수를 기록하고, 발생 횟수를 각각의 메모리 장치(104)에 전송한다.
메모리 제어기(106)는 또한, 불량 블록 관리, 가비지 수집, 논리-물리 주소 변환, 웨어 레벨링(wear leveling) 등을 포함하지만 이에 제한되지는 않는, 메모리 장치(104)에 저장된 또는 저장될 데이터에 대한 다양한 기능을 관리하도록 구성될 수 있다. 일부 구현에서, 메모리 제어기(106)는 또한 메모리 장치(104)로부터 판독되거나 그에 기록된 데이터에 대한 오류 정정 코드(ECC)를 처리하도록 구성된다. 예를 들어 메모리 장치(104)를 포맷하는 것과 같은 임의의 다른 적절한 기능도 또한 메모리 제어기(106)에 의해 수행될 수 있다. 메모리 제어기(106)는 특정 통신 프로토콜에 따라 외부 장치(예컨대, 호스트(108))와 통신할 수 있다. 예를 들어, 메모리 제어기(106)는 USB 프로토콜, MMC 프로토콜, PCI(peripheral component interconnection) 프로토콜, PCI-express(PCI-E) 프로토콜, ATA(advanced technology attachment) 프로토콜, 직렬-ATA 프로토콜, 병렬-ATA 프로토콜, SCSI(small computer small interface) 프로토콜, ESDI(enhanced small disk interface) 프로토콜, IDE(integrated drive electronics) 프로토콜, Firewire 프로토콜 등과 같은 다양한 인터페이스 프로토콜 중 적어도 하나를 통해 외부 장치와 통신할 수 있다.
메모리 제어기(106) 및 하나 이상의 메모리 장치(104)는 예를 들어 UFS(universal Flash storage) 패키지 또는 eMMC 패키지와 같은 동일한 패키지에 포함되는 다양한 유형의 저장 장치에 통합될 수 있다. 즉, 메모리 시스템(102)은 상이한 유형의 최종 전자 제품으로 구현 및 패키징될 수 있다. 도 2a에 도시된 바와 같은 일 예에서는, 메모리 제어기(106) 및 단일 메모리 장치(104)가 메모리 카드(202)에 통합될 수 있다. 메모리 카드(202)는 PC 카드(PCMCIA, personal computer memory card international association), CF 카드, 스마트 미디어(SM) 카드, 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD, SDHC), UFS 등을 포함할 수 있다. 메모리 카드(202)는 메모리 카드를 호스트(예컨대, 도 1의 호스트(108))에 결합시키도록 구성된 메모리 카드 커넥터(204)를 더 포함할 수 있다. 도 2b에 도시된 바와 같은 또 다른 예에서는, 메모리 제어기(106) 및 다수의 메모리 장치(104)가 SSD(206)에 통합될 수 있다. SSD(206)는 SSD(206)를 호스트(예컨대, 도 1의 호스트(108))에 결합시키도록 구성된 SSD 커넥터(208)를 더 포함할 수 있다. 일부 구현에서, SSD(206)의 저장 용량 및/또는 동작 속도는 메모리 카드(202)보다 크다.
도 3은 본 개시의 일부 양태에 따른, 주변 회로(302)를 포함하는 예시적 메모리 장치(300)의 개략적 회로도를 도시한다. 메모리 장치(300)는 도 1의 메모리 장치(104)의 예일 수 있다. 메모리 장치(300)는 메모리 셀 어레이(301)와, 메모리 셀 어레이(301)에 결합된 주변 회로(302)를 포함할 수 있다. 메모리 셀 어레이(301)는 기판(미도시) 위에서 각각 수직으로 연장되는 NAND 메모리 스트링(308)의 어레이로 메모리 셀(306)이 제공되는 NAND 플래시 메모리 셀 어레이일 수 있다. 일부 구현에서, 각 NAND 메모리 스트링(308)은, 직렬로 결합되고 수직으로 적층된 복수의 메모리 셀(306)을 포함한다. 각 메모리 셀(306)은 메모리 셀(306)의 영역 내에 포획된 전자의 수에 따라 달라지는 전압 또는 전하와 같은 연속적인 아날로그 값을 보유할 수 있다. 각 메모리 셀(306)은 플로팅 게이트 트랜지스터를 포함하는 플로팅 게이트형 메모리 셀이거나 전하 트랩 트랜지스터를 포함하는 전하 트랩형 메모리 셀일 수 있다.
일부 구현에서, 각 메모리 셀(306)은, 2개의 가능한 메모리 상태를 가지며 따라서 1 비트의 데이터를 저장할 수 있는 단일 레벨 셀(SLC)이다. 예를 들어, 제1 메모리 상태 "0"은 제1 전압 범위에 대응할 수 있고, 제2 메모리 상태 "1"은 제2 전압 범위에 대응할 수 있다. 일부 구현에서, 각 메모리 셀(306)은 4개보다 많은 메모리 상태에서 단일 비트보다 많은 데이터를 저장할 수 있는 다중 레벨 셀(MLC)이다. 예를 들어, MLC는 셀당 2 비트, 셀당 3 비트(TLC(triple-level cell)로도 알려짐) 또는 셀당 4 비트(QLC(quad-level cell)로도 알려짐)를 저장할 수 있다. 각 MLC는 가능한 공칭 저장 값의 범위를 취하도록 프로그래밍될 수 있다. 일 예에서, 각각의 MLC가 2비트의 데이터를 저장한다면, MLC는 3개의 가능한 공칭 저장 값 중 하나를 셀에 기록함으로써 소거된 상태로부터 3개의 가능한 프로그래밍 레벨 중 하나를 취하도록 프로그래밍될 수 있다. 제4 공칭 저장 값은 소거된 상태에 사용될 수 있다.
도 3에 도시된 바와 같이, 각각의 NAND 메모리 스트링(308)은 또한 그 소스 단부에 소스 선택 게이트(SSG) 트랜지스터(310)를 포함하고, 그 드레인 단부에 드레인 선택 게이트(DSG) 트랜지스터(312)를 포함할 수 있다. SSG 트랜지스터(310) 및 DSG 트랜지스터(312)는 판독 및 프로그램 동작 동안 선택 NAND 메모리 스트링(308)(어레이의 열)을 활성화하도록 구성될 수 있다. 일부 구현에서, 동일한 블록(304) 내의 NAND 메모리 스트링(308)의 소스들은 동일한 소스 라인(SL)(314), 예컨대 공통 SL을 통해 결합된다. 다시 말해, 일부 구현에 따르면, 동일한 블록(304) 내의 모든 NAND 메모리 스트링(308)은 어레이 공통 소스(ACS)를 갖는다. 일부 구현에 따르면, 각 NAND 메모리 스트링(308)의 드레인은 각각의 비트 라인(316)에 결합되는데, 이로부터 출력 버스(미도시)를 통해 데이터가 판독 또는 기록될 수 있다. 일부 구현에서, 각 NAND 메모리 스트링(308)은, 하나 이상의 DSG 라인(313)을 통해 DSG 선택 전압 또는 DSG 미선택 전압을 각각의 DSG 트랜지스터(312)의 게이트에 인가하고/하거나 하나 이상의 SSG 라인(315)을 통해 SSG 선택 전압 또는 SSG 미선택 전압을 각각의 SSG 트랜지스터(310)의 게이트에 인가함으로써 선택 또는 선택 해제되도록 구성된다.
도 3에 도시된 바와 같이, NAND 메모리 스트링(308)은 다수의 블록(304)으로 구조화될 수 있으며, 각 블록(304)은 예컨대 ACS에 결합된 공통 소스(ACS) 라인(314)을 가질 수 있다. 일부 구현에서, 각 블록(304)은 소거 동작을 위한 기본 데이터 단위이고, 즉, 동일한 블록(304) 상의 모든 메모리 셀(306)이 동시에 소거된다. 선택 블록(304) 내의 메모리 셀(306)을 소거하기 위해, 선택 블록(304)과 동일한 평면에 있는 미선택 블록(304)뿐만 아니라 선택 블록(304)에 결합된 소스 라인들(314)은 높은 포지티브 전압(예컨대, 20V 이상)과 같은 소거 전압(Vers)으로 바이어스될 수 있다. 인접한 NAND 메모리 스트링(308)의 메모리 셀들(306)은, 메모리 셀들(306)의 어느 행이 판독 및 프로그램 동작에 의해 영향을 받는지를 선택하는 워드 라인(318)을 통해 결합될 수 있다. 일부 구현에서, 각각의 워드 라인(318)은 메모리 셀들(306)의 페이지(320)에 결합되는데, 이는 프로그램 및 판독 동작을 위한 기본 데이터 단위이다. 한 페이지(320)의 비트 크기는 한 블록(304) 내에서 워드 라인(318)에 의해 결합된 NAND 메모리 스트링(308)의 수와 관련될 수 있다. 각 워드 라인(318)은 각각의 페이지(320) 상의 각 메모리 셀(306)에 있는 복수의 제어 게이트와, 제어 게이트들을 결합시키는 게이트 라인을 포함할 수 있다.
도 4a 및 도 4b는 본 개시의 일부 양태에 따른, NAND 메모리 스트링(308)을 포함하는 예시적 메모리 셀 어레이(301)의 단면의 측면도 및 평면도를 각각 도시한다. 도 4a에 도시된 바와 같이, NAND 메모리 스트링(308)은 기판(402) 위에서 메모리 스택(404)을 통해 수직으로 연장될 수 있다. 기판(402)은 실리콘(예컨대, 단결정 실리콘), 실리콘 게르마늄(SiGe), 갈륨 비소(GaAs), 게르마늄(Ge), 절연체 상의 실리콘(silicon on insulator: SOI), 절연체 상의 게르마늄(germanium on insulator: GOI) 또는 임의의 다른 적절한 재료를 포함할 수 있다. 도 4a에서 x, y, 및 z축은 메모리 장치의 구성요소들의 공간적 관계를 추가로 설명하기 위해 포함된 것임에 유의한다. 기판(402)은 x-y 평면에서 횡방향으로 연장되는 2개의 횡방향 표면, 즉, 메모리 장치가 형성될 수 있는 웨이퍼 전면의 상단 표면 및 웨이퍼 전면의 반대쪽 후면의 하단 표면을 포함한다. z축은 x축과 y축 모두에 수직이다. 본 명세서에서 사용될 때, 기판(402)이 z-방향에서 메모리 장치의 가장 낮은 평면에 위치될 때 z-방향(x-y 평면에 수직인 수직 방향)에서 메모리 장치의 기판(402)에 대해, 메모리 장치의 하나의 구성요소(예컨대, 층 또는 장치)가 다른 구성요소(예컨대, 층 또는 장치) "상에" 있는지, "위에" 있는지 또는 "아래에" 있는지가 결정된다. 공간적 관계를 설명하기 위한 동일한 개념은 본 개시의 전반에 걸쳐 적용된다.
메모리 스택(404)은 인터리브된 게이트 전도층(406) 및 게이트-게이트 유전층(408)을 포함할 수 있다. 메모리 스택(404) 내의 게이트 전도층(406) 및 게이트-게이트 유전층(408)의 쌍 수는 메모리 셀 어레이(301) 내의 메모리 셀(306)의 수를 결정할 수 있다. 게이트 전도층(406)은, 텅스텐(W), 코발트(Co), 구리(Cu), 알루미늄(Al), 폴리실리콘, 도핑된 실리콘, 실리사이드, 또는 이들의 임의의 조합을 포함하지만 이에 제한되지는 않는 전도성 재료를 포함할 수 있다. 일부 구현에서, 각 게이트 전도층(406)은 텅스텐층과 같은 금속층을 포함한다. 일부 구현에서, 각 게이트 전도층(406)은 도핑된 폴리실리콘층을 포함한다. 각 게이트 전도층(406)은 메모리 셀(306)의 제어 게이트, DSG 트랜지스터(312)의 게이트, 또는 SSG 트랜지스터(310)의 게이트를 포함할 수 있고, 메모리 스택(404)의 상부에 있는 DSG 라인(313), 메모리 스택(404)의 하부에 있는 SSG 라인(315), 또는 DSG 라인(313)과 SSG 라인(315) 사이의 워드 라인(318)으로서 횡방향으로 연장될 수 있다. 도 4a에는 하나의 SG 라인(315) 및 하나의 DSG 라인(313)아 도시되어 있지만, SSG 라인(315)의 수 및 DSG 라인(313)의 수(및 SSG 라인(315) 및 DSG 라인(313)에 각각 결합된 SSG 트랜지스터(310) 및 DSG 트랜지스터(312)의 수)는 다른 예에서 변할 수 있다.
도 4a에 도시된 바와 같이, NAND 메모리 스트링(308)은 메모리 스택(404)을 통해 수직으로 연장되는 채널 구조(412)를 포함한다. 일부 구현에서, 채널 구조(412)는 (예컨대, 반도체 채널(420)로서) 반도체 재료(들) 및 (예컨대, 메모리 필름(418)으로서) 유전체 재료(들)로 채워진 채널 개구를 포함한다. 일부 구현에서, 반도체 채널(420)은 폴리실리콘과 같은 실리콘을 포함한다. 일부 구현에서, 메모리 필름(418)은 터널링층(426), 저장층(424)("전하 트랩/저장층"으로도 알려짐) 및 차단층(422)을 포함하는 복합 유전층이다. 채널 구조(412)는 실린더 형상(예컨대, 기둥 형상)을 가질 수 있다. 일부 구현에 따르면, 반도체 채널(420), 터널링층(426), 저장층(424), 차단층(422)은 기둥의 중심으로부터 외부 표면을 향해 이 순서로 방사형으로 배열된다. 터널링 층(426)은 실리콘 산화물, 실리콘 산질화물, 또는 이들의 임의의 조합을 포함할 수 있다. 저장층(424)은 실리콘 질화물, 실리콘 산질화물, 실리콘, 또는 이들의 임의의 조합을 포함할 수 있다. 차단층(422)은 실리콘 산화물, 실리콘 산질화물, 고유전율(high-k) 유전체, 또는 이들의 임의의 조합을 포함할 수 있다. 일 예에서, 메모리 필름(418)은 실리콘 산화물/실리콘 산질화물/실리콘 산화물(ONO)의 복합 층을 포함할 수 있다.
도 4a에 도시된 바와 같이, 일부 구현에 따르면, 기판(402) 내에는 웰(414)(예컨대, P-웰 및/또는 N-웰)이 형성되고, NAND 메모리 스트링(308)의 소스가 웰(414)과 접촉한다. 예를 들어, 소거 동작 동안, 소거 전압을 웰(414), 즉, NAND 메모리 스트링(308)의 소스에 인가하기 위해 소스 라인(314)이 웰(414)에 결합될 수 있다. 전술한 바와 같이, 인터럽트에 응답하여 프로그램 동작에서 프로그램 전압을 방전하는 동안 및 그 후에, 반도체 채널(420)에 결합된 음의 전위로 인해 정공이 웰(414)(예컨대, P-웰)로부터 끌어당겨져서 반도체 채널(420) 및 저장층(424)에 축적될 수 있다. 일부 구현에서, NAND 메모리 스트링(308)은 예컨대 NAND 메모리 스트링(308)의 드레인의 일부로서 NAND 메모리 스트링(308)의 드레인 단부에 채널 플러그(416)를 더 포함한다.
도 4b의 평면도에 도시된 바와 같이, 메모리 셀 어레이(301)의 NAND 메모리 스트링들(308)은 인접한 블록들(304) 사이에서 워드 라인(318)을 전기적으로 분리하는 슬릿 구조(430)(예컨대, 게이트 라인 슬릿(GLS))에 의해 블록(304)으로 배열될 수 있어, 각 블록(304)은 판독, 프로그램 및 소거 동작에서 개별적으로 제어될 수 있다. 일 예에서, 각 슬릿 구조(430)는 x 방향(예컨대, 워드 라인 방향)을 따라 연장될 수 있고, 다수의 블록(304)은 y 방향(예컨대, 비트 라인 방향)을 따라 배열될 수 있다. 일부 구현에서, 각 블록(304)은 인접한 핑거들(434) 사이에서 DSG 라인(313)을 전기적으로 분리하는 DSG 컷(432)에 의해 더 작은 영역(예컨대, 핑거(434))으로 추가로 분할될 수 있어, 상이한 핑거들(434) 내의 DSG 라인들(313)은 판독 및 프로그램 동작에서 개별적으로 제어될 수 있다.
도 4a의 측면도에 도시된 바와 같이, NAND 스트링(308)의 채널 구조(412)는 DRIE(deep reach ion etch)와 같은 딥 홀 에칭 공정의 결과로서 수직 방향을 따라 불균일한 횡방향 치수(예컨대 직경)를 포함할 수 있다. 채널 구조(412)의 수직 방향을 따른 불균일한 횡방향 치수 분포로 인해, 상이한 위치(깊이)에서 워드 라인(318)(게이트 도전층(406)의 일부)에 결합된 메모리 셀(306)은 상이한 채널 횡방향 치수, 예컨대, 직경과 연관될 수 있다. 그 결과, 일부 구현에 따르면, 상이한 위치에서 워드 라인(318)에 결합된 메모리 셀들(306)의 프로그램 속도도 변한다.
다시 도 3을 참조하면, 주변 회로(302)는 비트 라인(316), 워드 라인(318), 소스 라인(314), SSG 라인(315) 및 DSG 라인(313)을 통해 메모리 셀 어레이(301)에 결합될 수 있다. 주변 회로(302)는, 비트 라인(316), 워드 라인(318), 소스 라인(314), SSG 라인(315) 및 DSG 라인(313)을 통해 전압 신호 및/또는 전류 신호를 각 타겟 (선택) 메모리 셀(306)에 인가하고 그로부터 감지함으로써 메모리 셀 어레이(301)의 동작을 용이하게 하는 임의의 적절한 아날로그, 디지털, 및 혼합 신호 회로를 포함할 수 있다. 주변 회로(302)는 MOS(metal-oxide-semiconductor) 기술을 사용하여 형성된 다양한 유형의 주변 회로를 포함할 수 있다. 예를 들어, 도 5는 페이지 버퍼/감지 증폭기(504), 열 디코더/비트 라인 드라이버(506), 행 디코더/워드 라인 드라이버(508), 전압 생성기(510), 제어 로직(512), 레지스터(514), 인터페이스(516) 및 데이터 버스(518)를 포함하는 일부 예시적 주변 회로를 도시한다. 일부 예에서는, 도 5에 도시되지 않은 추가 주변 회로가 또한 포함될 수 있음이 이해되어야 한다.
페이지 버퍼/감지 증폭기(504)는 제어 로직(512)으로부터의 제어 신호에 따라 메모리 셀 어레이(301)로부터 데이터를 판독하고 그에 프로그래밍(기록)하도록 구성될 수 있다. 일 예에서, 페이지 버퍼/감지 증폭기(504)는 메모리 셀 어레이(301)의 한 페이지(320)에 프로그래밍될 프로그램 데이터(기록 데이터)의 한 페이지를 저장할 수 있다. 다른 예에서, 페이지 버퍼/감지 증폭기(504)는 선택 워드 라인(318)에 결합된 선택 메모리 셀(306)에 데이터가 적절하게 프로그래밍되었음을 보장하기 위해 프로그램 검증 동작을 수행할 수 있다. 또 다른 예에서, 페이지 버퍼/감지 증폭기(504)는 또한 판독 동작에서 메모리 셀(306)에 저장된 데이터 비트를 나타내는 비트 라인(316)으로부터의 저전력 신호를 감지할 수 있고 작은 전압 스윙을 인식 가능한 로직 레벨로 증폭할 수 있다. 열 디코더/비트 라인 드라이버(506)는 제어 로직(512)에 의해 제어되고, 전압 생성기(510)로부터 생성된 비트 라인 전압을 인가함으로써 하나 이상의 NAND 메모리 스트링(308)을 선택하도록 구성될 수 있다.
행 디코더/워드 라인 드라이버(508)는 제어 로직(512)에 의해 제어 신호에 따라 제어되고, 메모리 셀 어레이(301)의 블록(304)을 선택/미선택하고, 블록(304)의 워드 라인(318)을 선택/미선택하도록 구성될 수 있다. 행 디코더/워드 라인 드라이버(508)는 또한 전압 생성기(510)로부터 생성된 워드 라인 전압을 사용하여 워드 라인(318)을 구동하도록 구성될 수 있다. 일부 구현에서, 행 디코더/워드 라인 드라이버(508)는 또한 전압 생성기(510)로부터 생성된 SSG 전압 및 DSG 전압을 사용하여 SSG 라인(315) 및 DSG 라인(313)도 역시 선택/선택 해제할 수 있다.
전압 생성기(510)는 제어 로직(512)에 의해 제어되고, 메모리 셀 어레이(301)에 공급될 다양한 워드 라인 전압(예컨대, 판독 전압, 프로그램 전압, 통과 전압, 검증 전압 등), SSG 전압(예컨대, 선택/미선택 전압), DSG 전압(예컨대, 선택/미선택 전압), 비트 라인 전압(예컨대, 접지 전압), 및 소스 라인 전압(예컨대, 접지 전압)을 생성하도록 구성될 수 있다.
제어 로직(512)은 전술한 각각의 주변 회로에 결합될 수 있고, 각각의 주변 회로의 동작을 제어하도록 구성될 수 있다. 레지스터(514)는 제어 로직(512)에 결합될 수 있고, 각각의 주변 회로의 동작을 제어하기 위해 상태 정보, 커맨드 연산 코드(OP 코드) 및 커맨드 주소를 저장하는 상태 레지스터, 커맨드 레지스터 및 주소 레지스터를 포함할 수 있다.
일부 구현에서, 제어 로직(512)은 메모리 제어기(예컨대, 도 1의 메모리 제어기(106))에 의해 발행된 프로그램 커맨드를 수신할 수 있고, 행 디코더/워드 라인 드라이버(508), 열 디코더/비트 라인 드라이버(506) 및 전압 생성기(510)와 같은 다양한 주변 회로에 제어 신호를 송신하여 선택 워드 라인(318)에 결합된 선택 메모리 셀(306)에 대한 프로그램 동작을 개시할 수 있다. 진행 중인 프로그램 동작 동안 메모리 제어기에 의해 발행된 중지 커맨드를 수신하는 것에 응답하여, 제어 로직(512)은 행 디코더/워드 라인 드라이버(508), 열 디코더/비트 라인 드라이버(506) 및 전압 생성기(510)와 같은 다양한 주변 회로에 제어 신호를 송신하여, 프로그램 동작을 중지하고 중지 커맨드에 의해 트리거되는 다른 동작(예컨대, 판독 동작)을 개시할 수 있다. 일부 구현에서, 레지스터(514)는 프로그래밍 페이지, 프로그램 패스, 및 프로그램 동작이 중지되는 프로그램/검증 사이클 등과 같은 중지된 프로그램 동작의 정보를 저장하도록 구성되는데, 이 정보는 중지된 프로그램 동작을 재개하는 데 필요하다. 일부 구현에서, 제어 로직(512)은 레지스터(514)의 상태 레지스터로부터 다른 동작의 상태를 체크하도록 구성된다. 일부 구현에 따르면, 다른 동작(예컨대, 판독 동작)의 완료에 응답하여, 제어 로직(512)은 또한 레지스터(514)에 저장된 중지된 프로그램 동작의 정보를 검색하고, 행 디코더/워드 라인 드라이버(508), 열 디코더/비트 라인 드라이버(506) 및 전압 생성기(510)와 같은 다양한 주변 회로에 제어 신호를 송신하여 레지스터(514)로부터의 검색된 정보에 기초하여 중지된 프로그램 동작을 재개하도록 구성될 수 있다.
본 발명의 범위와 일관되게, 진행 중인 프로그램 동작 동안, 제어 로직(512)은 프로그램 동작 동안 하나 이상의 중지의 발생 횟수를 획득할 수 있고, 그런 다음 중지의 발생 횟수에 기초하여 프로그램 동작을 위한 프로그램 펄스 한계를 결정할 수 있다. 일부 구현에서, 제어 로직(512)은 프로그램 동작 동안 중지의 발생 횟수를 추적하도록 구성되고, 레지스터(514)는 추적된 중지의 발생 횟수를 저장하도록 구성된다. 일부 구현에서, 제어 로직(512)은 메모리 제어기(예컨대, 도 1의 메모리 제어기(106))로부터 프로그램 동작 동안의 중지의 발생 횟수를 수신하도록 구성된다. 프로그램 동작에서의 프로그램 플러스의 수가 프로그램 펄스 한계에 도달한 것에 응답하여, 제어 로직(512)은 행 디코더/워드 라인 드라이버(508), 열 디코더/비트 라인 드라이버(506) 및 전압 생성기(510)와 같은 다양한 주변 회로에 제어 신호를 송신하여 프로그램 동작을 종료할 수 있다. 그렇지 않으면, 일부 구현에 따르면, 선택 워드 라인(318)에 결합된 모든 선택된 메모리 셀(306)이 검증(성공적으로 프로그래밍)될 때 프로그램 동작이 마무리된다.
인터페이스(516)는 제어 로직(512)에 결합될 수 있고, 메모리 제어기(예컨대, 도 1의 메모리 제어기(106))로부터 수신된 제어 커맨드(예컨대, 프로그램 커맨드 및 중지 커맨드)를 제어 로직(512)에 버퍼링 및 중계하고 제어 로직(512)으로부터 수신된 상태 정보(예컨대, 중지 발생 횟수)를 메모리 제어기에 버퍼링 및 중계하는 버퍼로서의 역할을 할 수 있다. 인터페이스(516)는 또한 데이터 버스(518)를 통해 열 디코더/비트 라인 드라이버(506)에 결합될 수 있고, 메모리 셀 어레이(301)로/로부터 데이터를 버퍼링 및 중계하는 데이터 버퍼 및 데이터 입력/출력(I/O) 인터페이스로서의 역할을 할 수 있다.
도 6은 본 개시의 일부 양태에 따른, 프로그램 동작 중지 및 재개의 방식을 도시한다. 도 6에 도시된 바와 같이, 선택 워드 라인에 결합된 선택 메모리 셀을 프로그래밍하기 위해, 하나 이상의 프로그램/검증 사이클(N-1, N, N+1, ...)이 순차적으로 프로그램 동작에 포함된다. 프로그램 동작 동안, 임의의 프로그램/검증 사이클에서, 프로그램 전압(예컨대, Vpgm_n-1, Vpgm_n, 또는 Vpgm_n+1)이 선택 워드 라인에 인가되어 선택 워드 라인에 결합된 선택 메모리 셀을 프로그래밍하고, 이어서 검증 전압(예컨대, Vvf_n-1, Vvf_n, 또는 Vvf_n+1)을 인가하여 프로그래밍된 각 메모리 셀의 임계 전압이 검증 전압에 도달했는지(즉, 검증되는지/성공적으로 프로그램되었는지) 여부를 확인한다. 하나 이상의 메모리 셀(검증 불합격 메모리 셀)이 검증을 통과하지 못하면, 즉, 임계 전압이 검증 전압 미만이면, 증가된 프로그램 전압으로 검증 불합격 메모리 셀에 대해 후속 프로그램/검증 사이클이 적용된다.
프로그램 동작 동안 인터럽트, 예를 들어, 판독 동작을 수행하기 위한 호스트로부터의 명령어가 발생할 경우, 프로그램 동작을 중지시키기 위한 중지 커맨드가 발행된다. 도 6에 도시된 바와 같이, 프로그램 전압(Vpgm_n)을 인가한 상태에서 중지 커맨드가 발행될 경우, 프로그램 전압이 완전히 방전되면 동일한 프로그램/검증 사이클에서 검증 전압(Vvf_n)을 인가하지 않고 프로그램 동작이 중지된다. 그런 다음, 프로그램 동작은 인터럽트에 의해 트리거된 다른 동작이 마무리될 때까지 중지된 상태(점선으로 표시됨)에 들어간다. 프로그램 동작이 재개되면, 동일한 프로그램/검증 사이클에서 대응하는 검증 전압이 인가되어 이 확장된 프로그램/검증 사이클을 마무리한다. 일부 구현에 따르면, 중지 상태의 지속시간은 인터럽트에 의해 트리거된 다른 동작의 지속시간에 따라 달라진다.
일부 구현에서, 프로그램 전압(예컨대, Vpgm_n-1, Vpgm_n 및 Vpgm_n+1)은, 프로세스 및 환경 변화 하에서 프로그램된 셀 임계 전압 분포를 엄격하게 유지하면서 빠른 프로그램 성능을 달성하기 위해 NAND 플래시 메모리 장치와 같은 메모리 장치의 동작에 일반적으로 사용되는 ISPP 방식에 따라 인가된다. ISPP 방식은 워드라인 바이어스 전압(프로그램 전압)을 스텝 전압 단위로 점진적으로 증가시키면서 선택된 메모리 셀을 여러 번 프로그래밍할 수 있다. 이 "스텝"의 크기(예컨대, 직전 프로그램 펄스에 대한 각 프로그램 펄스의 크기 증가)는 본 명세서에서 증분 전압(펄스 스텝 높이라고도 함)으로 지칭된다.
전술한 바와 같이, 중지된 기간 동안, 각각의 선택 메모리 스트링(예컨대, 도 4a의 NAND 메모리 스트링(308))의 채널은 플로팅 상태이다. 선택 페이지를 프로그래밍할 때 선택 워드 라인에 인가된 프로그램 전압의 방전은, 선택 워드 라인과 채널 사이의 결합 커패시터와 함께, 채널에서 음의 결합 전위를 유발할 수 있다. 그 결과, 음의 전위에 의해 예를 들어 P-웰(예컨대, 도 4a의 웰(414))로부터 정공이 끌어당겨져서 선택 메모리 셀의 채널 및 전하 트랩 층에 축적될 수 있다. 프로그램 중지 기간 동안 축적된 여분의 정공은 선택 메모리 셀의 임계 전압을 증가시켜, 프로그램 동작이 재개될 때, 선택 메모리 셀은 원하는 임계 전압 레벨로 프로그래밍되지 않더라도 더 쉽게 검증을 통과한다. 또한, 프로그램 동작이 재개된 후 선택 메모리 스트링의 채널의 음의 전위가 사라지면 축적된 정공도 함께 해제되어 임계 전압을 낮출 수 있다. 결과적으로, 프로그램 동작의 중지/재개와 연관된 위에서 언급한 "오버-프로그램" 문제로 인해 프로그래밍된 페이지에서 후속 판독 동작 중에 더 많은 실패 비트(fail bits)가 발생할 수 있다.
도 7은 본 개시의 일부 양태에 따른, 프로그램 운영 중지 및 재개에 응답하는 ISPP의 방식을 도시한다. ISPP 방식을 사용하는 프로그램 동작에서 중지/재개와 연관된 오버-프로그램 문제를 극복하기 위해, 도 7에 도시된 바와 같이, 일부 구현에 따르면, 프로그램 동작의 각각의 재개 직후에 있는 각각의 프로그램 펄스(예컨대, Vpgm_n+1)에 대해 디폴트 증분 전압(ISPP)이 감소된다. 즉, 프로그램 펄스는 두 가지 유형, 즉, 각각의 프로그램 동작 재개 직후에 있는 재개된 프로그램 펄스(들)(예컨대, Vpgm_n+1)와, 프로그램 동작의 각각의 재개 직후에 있지 않은 다른 프로그램 펄스(들)(예컨대, Vpgm_n-1, Vpgm_n 및 Vpgm_n+2)로 나뉠 수 있다. 유사하게, ISPP 방식에 의해 사용되는 증분 전압도 두 가지 유형, 즉, 재개된 프로그램 펄스(들)에 대한 재개 증분 전압(예컨대, Vpgm_n 및 Vpgm_n+1 사이의 전압차)과, 다른 프로그램 펄스(들)에 대한 디폴트 증분 전압(ISPP)으로 나뉠 수 있다. 일부 구현에서, 도 7에 도시된 바와 같이 재개 증분 전압(ISPP - ΔISPP)은 디폴트 증분 전압(ISPP)보다 예를 들어 ΔISPP만큼 작다. 즉, 각각의 중지 전과 후의 프로그램 전압들 사이의 증분 전압을 줄임으로써, 프로그램 동작에서 중지로 인한 원치 않는 임계 전압 증가가 보상될 수 있다.
도 8은 본 개시의 일부 양태에 따른, 정상적인 ISPP 프로그램 동작과 프로그램 중지 및 재개를 갖는 ISPP 프로그램 동작 사이의 비교를 도시한다. 프로그램 중지가 없는 정상적인 ISPP 프로그램 동작(도 8의 좌측에 도시됨)에서, 일부 구현에 따르면, 프로그램 펄스의 전압은 시작 프로그램 전압(Vpgm_start)에서 타겟 프로그램 전압(Vpgm_target)까지 2개의 인접한 프로그램 펄스 사이의 디폴트 증분 전압(ISPP)으로 점진적으로 증가한다. 타겟 전압에 도달한 후, 일부 구현에 따르면, 검증되지 않은(즉, 검증을 통과하지 못한) 적어도 하나의 선택된 메모리 셀(검증 실패 메모리 셀)이 여전히 존재하면, 프로그램 펄스(들)는 타겟 전압에서 계속 인가된다. 한편, 미리 설정된 프로그램 펄스 한계(최대 프로그램 펄스)는, 위에서 상세히 설명한 바와 같이 프로그램 교란으로 인한 임계 전압 시프트의 위험을 관리하기 위해 진행 중인 프로그램 동작에서 프로그램 펄스의 총 수를 제한할 수 있다. 예를 들어, 시작 전압이 10V, 타겟 전압이 20V, 디폴트 증분 전압이 1V인 ISPP 방식의 경우, 정상적인 프로그램 동작은 타겟 전압에 도달하기 위해 11개의 프로그램 펄스(10V 및 20V 프로그램 펄스를 포함함)를 필요로 할 수 있다. 디폴트 프로그램 펄스 한계가 20으로 설정되면, 이 예의 정상적인 프로그램 동작은 종료되기 전에 20V에서 여전히 최대 9개의 프로그램 전압을 가질 수 있다.
반대로, 프로그램 동작 중지 및 재개를 갖는 ISPP 프로그램 동작에 의해 사용되는 재개 증분 전압은 재개 증분 전압이 디폴트 증분 전압보다 작기 때문에 동일한 타겟 프로그램 전압에 도달하기 위해 더 많은 프로그램 펄스가 사용되게 할 수 있다. 일부 구현에 따르면, 여분의 프로그램 펄스의 수는 프로그램 동작에서의 중지의 발생 횟수와 연관된다. 예를 들어, 프로그램 동작에서 프로그램 중지 및 재개가 더 많이 발생할수록 동일한 타겟 프로그램 전압에 도달하기 위해 더 많은 프로그램 펄스가 필요할 수 있다. 프로그램 타겟 전압에 도달하는 데 필요한 프로그램 펄스의 수가 증가하면 동일한 디폴트 프로그램 펄스 한계에 더 쉽게 도달할 수 있으므로 그 한계 하에서 허용되는 타겟 프로그램 전압에서 프로그램 펄스의 수를 줄일 수 있다. 결과적으로, 프로그램 동작이 조기에 종료될 가능성(선택된 모든 셀의 프로그래밍을 시도할 기회가 충분하지 않음)은 동일한 디폴트 프로그램 펄스 한계 하에서 증가될 수 있다.
프로그램 동작에서 예를 들어 프로그램 동작 중지 및 재개(S/R)가 각각의 프로그램 펄스 후에 발생하는 극단적인 경우(도 8의 우측에 도시됨)를 취하면, 재개 증분 전압(ISPP - ΔISPP)은 각 프로그램 펄스에 대한 디폴트 증분 전압을 본질적으로 대체한다. 예를 들어, 시작 전압이 10V, 타겟 전압이 20V, 각 프로그램 펄스에 대한 재개 증분 전압이 0.5V인 동일한 ISPP 방식의 경우, 동일한 타겟 전압에 도달하려면 21개의 프로그램 펄스(10V 및 20V 프로그램 펄스를 포함함)가 필요할 수 있다. 디폴트 프로그램 펄스 한계가 여전히 20으로 설정되면, 이 예의 프로그램 동작은 타겟 프로그램 전압에 도달하기 전에 종료될 수 있다. 한편, 프로그램 중지 및 재개를 갖는 프로그램 동작을 수용하기 위해 디폴트 프로그램 펄스 한계가 완화되면(예컨대, 25로 증가됨), 완화된 프로그램 펄스 한계는 정상적인 프로그램 동작에 맞지 않을 수 있으며, 정상적인 프로그램 동작에서의 프로그램 교란으로 인한 임계 전압 시프트의 위험이 증가될 수 있다.
본 발명의 범위와 일관되게, 모든 프로그램 동작에 대해 동일한 디폴트 프로그램 펄스 한계를 사용하는 대신에, 프로그램 펄스 한계는 중지의 발생 횟수에 의존하여 상이한 프로그램 동작에 대해 동적으로 조정될 수 있으며, 이에 따라 프로그램 교란으로 인한 임계 전압 변동과 프로그램 동작을 완전하게 마무리해야 할 필요성 사이에서 균형을 유지할 수 있다. 프로그램 중지 및 재개에 적응하는 동적 프로그램 펄스 한계 조정의 다양한 방식은 아래에 상세히 설명된다. 다양한 방식은 도 3, 도 4a, 도 4b 및 도 5와 관련하여 전술된 메모리 장치(300)에 의해 구현될 수 있다.
도 3, 도 4a 및 도 5에 도시된 바와 같이, 주변 회로(302)의 제어 로직(512)은 NAND 메모리 스트링(308)의 선택 메모리 셀(306)에서 프로그램 동작을 개시하도록 구성될 수 있다. 일부 구현에서, 제어 로직(512)은 인터페이스(516)를 통해 메모리 제어기(예컨대, 메모리 제어기(106))로부터 프로그램 커맨드를 수신하고, 그에 응답하여, 적어도 행 디코더/워드 라인 드라이버(508), 열 디코더/비트 라인 드라이버(506) 및 전압 생성기(510)에 제어 신호를 송신하여 선택 워드 라인(318)에 결합된 선택 메모리 셀(306)에 대한 프로그램 동작을 개시한다. 프로그램될 상태의 수(즉, 각 메모리 셀(306), 예컨대, SLC, MLC, TLC, QLC 등의 비트 수)에 따라, 하나 이상의 프로그램 패스가 수행될 수 있다. 도 7에 도시된 바와 같이, 각 프로그램 패스에서 하나 이상의 프로그램/검증 사이클(예컨대, N-1, N, N+1, N+2, ...)이 순차적으로 프로그램 동작에 포함될 수 있다. 프로그램 동작 동안, 임의의 프로그램/검증 사이클에서, 선택 워드 라인(318)에 결합된 선택 메모리 셀(306)을 프로그래밍하기 위해 프로그램 전압(즉, Vpgm_n-1, Vpgm_n, Vpgm_n+1 및 Vpgm_n+2와 같은 하나 이상의 프로그램 펄스를 포함하는 전압 펄스 신호)이 워드 라인 드라이버(508)에 의해 선택 워드 라인(318)에 인가된다.
도 3, 도 4a 및 도 5를 다시 참조하면, 주변 회로(302)의 제어 로직(512)은 또한 예를 들어 일부 프로그램 동작 동안(중지 없는 정상적인 프로그램 동작과 같이 모든 프로그램 동작에서 그런 것은 아님) 메모리 제어기(예컨대, 도 1의 메모리 제어기(106))로부터 하나 이상의 중지 커맨드를 수신하도록 구성될 수 있다. 일부 구현에 따르면, 중지 커맨드는 인터럽트가 발생할 때 메모리 제어기에 의해 발행된다. 인터럽트는, 이벤트가 적시에 처리될 수 있도록 메모리 장치(300)에 의해 수행되는 진행 중인 프로그램 동작을 인터럽트할 필요가 있는 호스트(예컨대, 도 1의 호스트(108))에 의한 임의의 요청일 수 있다. 예를 들어, 현재 수행되고 있는 프로그램 동작이 완료되기 직전에 메모리 셀 어레이(301)의 페이지(320)에 대해 판독 동작이 수행되어야 할 수 있다. 임의의 적절한 인터럽트 이벤트는, 다른 동작(예를 들어, 판독 동작)을 먼저 수행하기 위해 진행 중인 프로그램 동작을 중지시키는 중지 커맨드를 주변 회로(302)의 제어 로직(512)에 전송하도록 메모리 제어기를 트리거할 수 있다는 것을 이해해야 한다. 일부 구현에서, 선택 워드 라인(318)에 프로그램 펄스를 인가하는 동안 인터럽트가 발생한다. 또한 인터럽트(및 중지 커맨드의 수신)는 임의의 프로그램/검증 사이클(첫 번째 사이클, 마지막 사이클, 또는 임의의 중간 사이클을 포함함) 또는 단일 프로그램/검증 사이클에서 발생할 수 있음을 이해해야 한다. 또한, 인터럽트 이벤트의 수 및 결과적인 중지 커맨드는 상이한 프로그램 동작 동안 예를 들어 0(즉, 정상적인 프로그램 동작)에서 (예컨대, 도 8에서) 프로그램 펄스와 동일한 수까지 변할 수 있다는 것을 이해해야 한다.
중지 커맨드를 수신하는 것에 응답하여, 주변 회로(302)는 진행 중인 프로그램 동작을 중지하도록 구성될 수 있다. 일부 구현에서, 제어 로직(512)은 프로그래밍 페이지, 프로그램 패스, 및 프로그램 동작이 중지되는 프로그램/검증 사이클 등과 같은 중지된 프로그램 동작의 정보를 레지스터(514)에 저장하도록 구성되는데, 이 정보는 중지된 프로그램 동작을 재개하는 데 필요하다. 그런 다음, 제어 로직(512)은 수신된 인터럽트 커맨드에 의해 트리거되는 다른 동작을 수행하기 위해 다른 주변 회로(302)에, 예를 들어, 메모리 셀 어레이(301)의 다른 페이지(320)에 대한 판독 동작을 수행하기 위해 행 디코더/워드 라인 드라이버(508), 열 디코더/비트 라인 드라이버(506) 및 전압 생성기(510)에, 제어 신호를 송신할 수 있다. 그런 다음, 메모리 장치(300)의 대응하는 프로그래밍 페이지는 프로그램 중지 상태에 들어갈 수 있다. 인터럽트에 의해 트리거된 다른 동작의 완료에 응답하여, 주변 회로(302)는 중지된 프로그램 동작을 재개하도록 구성될 수 있다. 일부 구현에서, 제어 로직(512)은 또한 레지스터(514)에 저장된 중지된 프로그램 동작의 정보를 검색하고, 일부 구현에 따르면, 레지스터(514)로부터 검색된 정보에 기초하여 적어도 행 디코더/워드 라인 드라이버(508), 열 디코더/비트 라인 드라이버(506) 및 전압 생성기(510)에 제어 신호를 송신하여 중지된 프로그램 동작을 재개하도록 구성된다.
일부 구현에서는, 행 디코더/워드 라인 드라이버(508)가 증분 전압을 갖는 하나 이상의 프로그램 펄스를 선택 워드 라인(318)에 인가하는 ISPP 방식이 프로그램 동작에 적용된다. 프로그램 동작 동안 중지가 발생하는지 여부에 따라, 인접한 프로그램 펄스들 사이의 증분 전압은 디폴트 증분 전압(ISPP)만을 포함하거나(미도시), 디폴트 증분 전압(예컨대, 도 7에서 Vpgm_n과 Vpgm_n-1 사이 및 Vpgm_n+2와 Vpgm_n+1 사이) 및 디폴트 증분 전압보다 작은 재개 증분 전압(ISPP - ΔISPP, 예컨대, 도 7에서 Vpgm_n+1과 Vpgm_n 사이)을 포함할 수 있다.
도 3, 도 4a 및 도 5에 도시된 바와 같이, 주변 회로(302)의 제어 로직(512)은 또한 프로그램 동작 동안 하나 이상의 중지의 발생 횟수(본 명세서에서 중지 발생의 횟수 또는 중지 발생 횟수로도 지칭됨)를 획득하도록 구성될 수 있다. 본 개시의 일부 양태에 따르면, 도 9에 도시된 바와 같이, 제어 로직(512)은 메모리 장치(300) 내의 레지스터(514)와 함께, 각각의 프로그램 동작에서의 중지 발생의 횟수를 추적한다. 도 9에 도시된 바와 같이, 제어 로직(512)은 중지/재개 제어 유닛(900), 최대 펄스 카운트 유닛(902) 및 프로그램 제어 유닛을 포함할 수 있다. 본 명세서에 설명된 제어 로직(512)의 각 유닛은, 제어 로직(512)의 일부인 마이크로제어기 유닛(MCU)과 같은 프로세서 상에서 실행되는 소프트웨어 모듈 및/또는 펌웨어 모듈, 또는 집적 회로(IC, 예컨대, ASIC(application-specific IC), FPGA(field-programmable gate array) 등)와 같은 유한 상태 머신(finite-state machine: FSM)의 하드웨어 모듈, 또는 소프트웨어 모듈, 펌웨어 모듈 및 하드웨어 모듈의 조합일 수 있다. 레지스터(514)는 2개의 상태 레지스터, 즉, 프로그램 중지 추적(program suspension tracking: PST) 레지스터(906) 및 최대 펄스 레지스터(908)를 포함할 수 있다.
일부 구현에서, 중지/재개 제어 유닛(900)은 일부 프로그램 동작에서 메모리 제어기(106)로부터 하나 이상의 중지 커맨드(CMD)을 수신하도록 구성된다. 각각의 중지 커맨드가 각각 프로그램 중지 및 재개의 발생을 야기할 수 있기 때문에, 제어 로직(512)의 중지/재개 제어 유닛(900)은 중지 발생의 횟수를 추적할 수 있고 그 횟수를 PST 레지스터(906)에 저장할 수 있다. 도 10에 도시된 바와 같이, 동작 1002에서 프로그램 동작이 시작된 후, 중지/재개 제어 유닛(900)은 동작 1004에서 프로그램 동작이 마무리될 것인지 여부(예컨대, 모든 선택된 메모리 셀(306)이 검증을 통과한 경우)를 먼저 확인할 수 있다. 대답이 아니오(프로그램 동작은 지금 마무리되지 않을 것임)이면, 중지/재개 제어 유닛(900)은 (예컨대, 중지 커맨드를 수신할 때) 프로그램 중지가 발생하는지 여부를 확인하기 위해 동작 1006으로 진행할 수 있다. 대답이 예(프로그램 중지가 발생함)이면, 동작 1008에서, 중지/재개 제어 유닛(900)은 (예컨대, PST에 1을 추가함으로써) PST 레지스터(906)에 저장된 중지 발생의 추적된 횟수를 업데이트할 수 있다. 대답이 아니오(프로그램 중지가 발생하지 않음)이거나 중지 발생의 횟수를 업데이트한 후, 중지/재개 제어 유닛(900)은 프로그램 동작이 지금 마무리될 것인지 여부를 확인하기 위해 동작 1004로 되돌아갈 수 있다. 대답이 예이면(프로그램 동작이 지금 마무리될 것임), 프로그램 동작은 동작 1010에서 종료되고, PST 레지스터(906)에 저장된 중지 발생의 횟수는 다음 프로그램 동작을 위해 0으로 복귀할 수 있다. 중지가 없는 정상적인 프로그램 동작에서 PST 레지스터(906)에 저장된 중지 발생의 횟수는 0으로 유지될 수 있음을 이해해야 한다. 대답이 여전히 아니오(프로그램 동작은 아직 마무리되지 않을 것임)이면, 중지/재개 제어 유닛(900) 전술한 바와 같이 동작 1006을 반복할 수 있다. 즉, 현재 프로그램 동작이 아직 마무리되지 않은 한, 중지/재개 제어 유닛(900)은 중지 발생의 횟수를 지속적으로 추적할 수 있고, 그 횟수를 PST 레지스터(906)에 업데이트할 수 있다.
본 발명의 일부 양태에 따르면, 도 11에 도시된 바와 같이, 제어 로직(512)은 메모리 장치(300) 내의 레지스터(514)와 함께 각 프로그램 동작에서 중지 발생의 횟수를 추적하지 않고, 대신에 메모리 제어기(106)로부터 중지 발생의 횟수를 수신한다. 도 9와 유사한 도 11에 도시된 바와 같이, 제어 로직(512)은 중지/재개 제어 유닛(900), 최대 펄스 카운트 유닛(902) 및 프로그램 제어 유닛(904)을 역시 포함할 수 있다. 레지스터(514)는 최대 펄스 레지스터(908)를 여전히 포함할 수 있지만 PST 레지스터(906)(도 9에 도시됨)는 포함하지 않는다.
일부 구현에서, 하나 이상의 중지 커맨드(CMD) 외에, 중지/재개 제어 유닛(900)은 또한 일부 프로그램 동작에서 메모리 제어기(106)로부터 중지 발생의 횟수(PST)를 수신한다. 즉, 메모리 제어기(106)는 예를 들어 현재 프로그램 동작에서 각 메모리 장치(300)의 제어 로직(512)에 송신된 중지 커맨드의 수에 기초하여 중지 발생의 횟수를 기록할 수 있고, 중지 발생의 횟수를 재개 제어 유닛(900)으로 전송할 수 있다. 일부 구현에서, 중지 발생의 횟수는 각각의 중지 커맨드의 전송과 함께 전송된다. 즉, 메모리 제어기(106)로부터 중지/재개 제어 유닛(900)에 의해 수신된 중지 발생의 횟수는 새로운 중지 커맨드가 수신될 때마다 업데이트된다. 중지 발생의 횟수가 내부적으로(예컨대, 메모리 장치(300) 내에서) 추적되는지 또는 외부적으로(예컨대, 메모리 제어기(106)에 의해) 추적되는지에 관계없이, 중지 발생의 횟수는 각 프로그램 동작 동안 프로그램 중지의 횟수가 증가함에 따라 동적으로 업데이트될 수 있다는 것을 이해해야 한다.
도 3, 도 4a 및 도 5에 도시된 바와 같이, 주변 회로(302)의 제어 로직(512)은 또한 중지의 발생 횟수에 기초하여 진행 중인 프로그램 동작을 위한 프로그램 펄스 한계를 결정하도록 구성될 수 있다. 일부 구현에서, 제어 로직(512)은 디폴트 프로그램 펄스 한계, 가중치, 및 중지의 발생 횟수에 기초하여 프로그램 펄스 한계를 계산하도록 구성된다. 제어 로직(512)의 최대 펄스 카운트 유닛(902)은 도 9에 도시된 바와 같이 PST 레지스터(906)로부터 중지 발생의 횟수(PST)를 검색하도록 구성될 수 있거나, 도 11에 도시된 바와 같이 중지/재개 제어 유닛(900)을 통해 직접 메모리 제어기(106)로부터 중지 발생의 횟수(PST)를 수신한다. 그럼에도 불구하고, 최대 펄스 카운트 유닛(902)은 획득된 중지 발생 횟수(PST), 가중치(w, 인자라고도 함), 및 디폴트 프로그램 펄스 한계(program_max_pulse_count_def)에 기초하여 프로그램 펄스 한계(program_max_pulse_count)를 계산하도록 구성된다.
일부 구현에서, 최대 펄스 카운트 유닛(902)은 동일한 프로그램 동작에서의 중지 발생의 횟수와 상관되는 특정 정도로 프로그램 동작의 프로그램 펄스 한계를 완화(예컨대, 증가)시킨다. 예를 들어, 중지 발생의 횟수가 많을수록 최대 펄스 카운트 유닛(902)은 완화 정도를 더 크게 계산할 수 있다. 일 예에서, 프로그램 펄스 한계에 대한 완화 정도는 중지 발생의 횟수에 비례한다. 일부 실시예에서, 중지 발생 횟수와 완화 정도 사이의 선형 비례 관계를 정의하기 위해 가중치가 미리 설정(즉, 사전 설정)될 수 있다. 예를 들어, 최대 펄스 카운트 유닛(902)은 완화 정도를 나타내는 중지의 발생 횟수 및 가중치에 기초하여 가중된 중지 횟수를 계산할 수 있다. 최대 펄스 카운트 유닛(902)은 예를 들어 다음 수학식 1에 따라 가중된 중지 발생 횟수에 기초하여 디폴트 프로그램 펄스 한계를 조정할 수 있다.
[수학식 1]
program_max_pulse_count = program_max_pulse_count_def + w × PST
가중치(w)는 다양한 인자 또는 이들의 임의의 조합에 기초하여 설정될 수 있다. 일부 구현에서, 가중치는 재개 증분 전압과 디폴트 증분 전압 간의 차이(예컨대, 도 7 및 도 8에서의 ΔISPP)에 기초하여 설정된다. 도 7 및 도 8과 관련하여 전술한 바와 같이, 재개 증분 전압과 디폴트 증분 전압 간의 차이가 클수록 동일한 타겟 프로그램 전압에 도달하기 위해 더 많은 수의 프로그램 펄스가 필요할 수 있다. 따라서, 재개 전압과 디폴트 증분 전압 간의 차이가 클수록 가중치가 커져서 프로그램 펄스 한계를 더 많이 완화할 수 있다. 일부 구현에서, 가중치는 워드 라인들(318) 중에서 선택 워드 라인(318)의 위치에 기초하여 설정된다. 도 4a와 관련하여 위에서 설명한 바와 같이, 선택 워드 라인(318)의 위치는, 수직 방향을 따른 NAND 메모리 스트링(308)의 채널 구조(412)의 불균일한 횡방향 치수(예컨대, 직경)로 인해 선택 워드 라인(318)에 결합된 메모리 셀(306)의 프로그램 속도에 영향을 미칠 수 있다. 일 예에서, 더 느린 프로그램 속도를 갖는 메모리 셀(306)에 결합된 선택 워드 라인(318)이 더 쉽게 프로그램 펄스 한계에 도달할 수 있기 때문에, 대응하는 가중치는 더 크게 설정되어 프로그램 펄스 한계를 더 많이 완화할 수 있다. 일부 구현에서, 가중치는 디폴트 프로그램 펄스 한계에 기초하여 설정된다. 경우에 따라, 디폴트 프로그램 펄스 한계를 설정할 때 상대적으로 더 큰 마진이 이미 확보되었을 수 있으므로, 대응하는 가중치는 프로그램 펄스 한계가 디폴트 프로그램 펄스 한계에 의해 이미 완화됨에 따라 상대적으로 더 작게 설정될 수 있다.
일부 예에서 가중치는 임의의 다른 적절한 인자들 또는 이들의 조합에 기초하여 설정될 수 있음을 이해해야 한다. 일부 예에서는 완화 정도를 계산하고 디폴트 프로그램 펄스 한계를 조정하기 위해 완화 정도와 중지 발생 횟수 사이의 비선형 관계가 적용될 수 있음을 또한 이해해야 한다. 일부 예에서 완화 정도를 조정하는 것은 디폴트 프로그램 펄스 한계에 직접 추가되지 않을 수 있지만, 대신 디폴트 프로그램 펄스 한계를 선형적으로 조정하는 가중치 또는 디폴트 프로그램 펄스 한계를 비선형 방식으로 조정하는 인자로서 사용될 수 있다. 그럼에도 불구하고, 획득된 중지 발생 횟수는 디폴트 프로그램 펄스 한계를 조정하여 임의의 적절한 방식으로 각 프로그램 동작을 위한 프로그램 펄스 한계를 동적으로 결정하는 데 사용될 수 있다. 중지 발생의 횟수는 각 프로그램 동작 동안 프로그램 중지의 횟수가 증가함에 따라 동적으로 업데이트될 수 있기 때문에, 프로그램 동작 동안, 프로그램 중지 횟수가 증가할 뿐만 아니라 프로그램 펄스 한계가 동적으로 업데이트될 수 있음을 이해해야 한다. 한편, 어떠한 프로그램 중지도 없는 정상적인 프로그램 동작의 경우, 프로그램 펄스 한계는 디폴트 프로그램 펄스 한계로 남아 있을 수 있으므로, 프로그램 교란으로 인한 임계 전압 시프트의 위험은 정상 동작에 대해 증가하지 않을 것이다.
도 9 및 도 11에 도시된 바와 같이, 최대 펄스 카운트 유닛(902)은 계산된 프로그램 펄스 한계를 최대 펄스 레지스터(908)에 저장하고, 프로그램 중지의 횟수가 변할 때 프로그램 펄스 한계를 동적으로 업데이트하도록 구성될 수 있다.
도 3, 도 4a 및 도 5에 도시된 바와 같이, 주변 회로(302)의 제어 로직(512)은 또한, 프로그램 동작에서의 프로그램 펄스의 수가 프로그램 펄스 한계에 도달한 것에 응답하여 프로그램 동작을 종료하도록 구성될 수 있다. 도 9 및 도 11에 도시된 바와 같이, 일부 구현에서, 제어 로직(512)의 프로그램 제어 유닛(904)은 현재 프로그램 동작에서 행 디코더/워드 라인 드라이버(508)에 의해 선택 워드 라인(318)에 인가된 프로그램 펄스의 수를 모니터링하고, 그 수를 최대 펄스 레지스터(908)에 저장된 프로그램 펄스 한계와 비교하도록 구성된다. 프로그램 펄스의 수가 가장 최근에 업데이트된 프로그램 펄스 한계에 도달한 것에 응답하여, 일부 구현에 따르면, 프로그램 제어 유닛(904)은, 프로그램 동작이 아직 마무리되지 않은(예컨대, 모든 선택 메모리 셀(306)이 성공적으로 프로그래밍된 것이 아닌) 경우에도, 진행 중인 프로그램 동작을 종료하도록 행 디코더/워드 라인 드라이버(508)와 같은 주변 회로(302)에 지시하도록 구성된다. 반대로, 프로그램 펄스의 수가 가장 최근에 업데이트된 프로그램 펄스 한계에 아직 도달하지 않은 것에 응답하여, 프로그램 제어 유닛(904)은 진행 중인 프로그램 동작을 종료하도록 주변 회로(302)에 지시하지 않을 수 있다. 프로그램 펄스 한계는 현재 프로그램 동작에서의 프로그램 중지 횟수에 기초하여 동적으로 업데이트되므로, 프로그램 펄스 한계로 인한 진행 중인 프로그램 동작의 종료는 진행 중인 프로그램 동작에서 발생하는 프로그램 중지 빈도를 수용하도록 동적으로 조정될 수도 있다.
도 12는 본 개시의 일부 양태에 따른, 메모리 장치를 동작시키는 방법(1200)의 흐름도를 도시한다. 메모리 장치는 메모리 장치(300)와 같이 본 명세서에 개시된 임의의 적절한 메모리 장치일 수 있다. 방법(1200)은 제어 로직(512), 레지스터(514) 및 행 디코더/워드 라인 드라이버(508)와 같은 주변 회로(302)에 의해 구현될 수 있다. 방법(1200)에 도시된 동작들은 완전한 것이 아닐 수 있고, 도시된 동작들 중 임의의 것의 전, 후 또는 그 사이에 다른 동작들이 수행될 수 있다. 또한, 일부 동작들은 동시에 수행될 수도 있고, 도 12에 도시된 것과 상이한 순서로 수행될 수도 있다.
도 12를 참조하면, 방법(1200)은 프로그램 커맨드가 수신되는 동작 1202에서 시작한다. 예를 들어, 제어 로직(512)은, 메모리 제어기(106)로부터 인터페이스(516)를 통해, 메모리 셀 어레이(301)의 선택 페이지(320)에 있는 (예컨대, NAND 메모리 스트링(308) 내의) 선택 메모리 셀(306)에 대한 프로그램 동작을 개시하기 위한 프로그램 커맨드를 수신할 수 있다.
방법(1200)은 도 12에 도시된 바와 같이 동작 1204로 진행하는데, 여기서는 프로그램 커맨드를 수신하는 것에 응답하여 프로그램 동작이 개시된다. 예를 들어, 제어 로직(512)은 적어도 행 디코더/워드 라인 드라이버(508), 열 디코더/비트 라인 드라이버(506) 및 전압 생성기(510)에 제어 신호를 송신하여 선택 워드 라인(318)에 결합된 선택 메모리 셀(306)에 대한 프로그램 동작을 개시할 수 있다. 일부 구현에서, 워드 라인 드라이버(508)는 (예컨대, ISPP 방식에 따라) 증분 전압을 갖는 일련의 프로그램 펄스를 선택 워드 라인(318)에 인가하여 선택 메모리 셀(306)을 프로그래밍한다.
일부 구현에서, 프로그램 동작 중에 하나 이상의 중지가 발생하여 프로그램 동작을 일시적으로 중지시킨다. 일부 구현에 따르면, 각각의 중지를 유발하기 위해, 프로그램 동작 중에 각각의 중지 커맨드가 수신된다. 일부 구현에서, 중지 커맨드는 선택 워드 라인에 프로그램 펄스를 인가하는 동안 수신된다. 예를 들어, 진행중인 프로그램 동작 동안, 제어 로직(512)은 메모리 제어기(106)로부터 중지 커맨드를 수신할 수 있다. 중지 커맨드는 인터럽트가 발생할 때 메모리 제어기(106)에 의해 발행될 수 있다. 인터럽트는 이벤트가 적시에 처리될 수 있도록 진행 중인 프로그램 동작을 중지할 필요가 있는 호스트(108)에 의한 임의의 요청일 수 있다.
일부 구현에서, 중지 커맨드에 의해 트리거된 다른 동작의 완료에 응답하여 프로그램 동작이 재개된다. 예를 들어, 다른 동작의 완료에 응답하여, 제어 로직(512)은 레지스터(514)에 저장된 중지된 프로그램 동작의 정보를 검색하고, 레지스터(514)로부터 검색된 정보에 기초하여 중지된 프로그램 동작을 재개하도록 행 디코더/워드 라인 드라이버(508), 열 디코더/비트 라인 드라이버(506) 및 전압 생성기(510)에 제어 신호를 송신할 수 있다. 일 예에서, 행 디코더/워드 라인 드라이버(508)는 프로그램 동작의 재개 직후에 재개 증분 전압을 갖는 프로그램 펄스를 인가할 수 있다. 일부 구현에서, 프로그램 중지 및 재개에 의해 유발되는 오버-프로그램을 처리하기 위해, 프로그램 펄스의 재개 증분 전압은 프로그램 펄스의 디폴트 증분 전압보다 작을 수 있다.
방법(1200)은 도 12에 도시된 바와 같이 동작 1206으로 진행하는데, 여기서는 프로그램 동작 동안 하나 이상의 중지의 발생 횟수가 획득된다. 예를 들어, 제어 로직(512)은 프로그램 동작 동안 중지 발생의 횟수를 획득할 수 있다. 일부 구현에서, 중지의 발생 횟수는 프로그램 동작 동안 추적되고, 추적된 중지의 발생 횟수는 저장된다. 예를 들어, 제어 로직(512)은 프로그램 동작 동안 중지 발생 횟수를 추적할 수 있고, 레지스터(514)(예컨대, PST 레지스터(906))는 추적된 중지 발생 횟수를 저장할 수 있다. 일부 구현에서는, 프로그램 동작 동안의 중지의 발생 횟수가 수신된다. 예를 들어, 메모리 제어기(106)는 프로그램 동작 동안 중지 발생의 횟수(예컨대, 메모리 제어기(106)에 의해 송신된 중지 커맨드와 동일한 수)를 기록하고, 중지 발생의 횟수를 제어 로직(512)에 전송할 수 있다.
방법(1200)은 도 12에 도시된 바와 같이 동작 1208으로 진행하는데, 여기서는 중지의 발생 횟수에 기초하여 프로그램 동작을 위한 프로그램 펄스 한계가 결정된다. 예를 들어, 제어 로직(512)은 프로그램 펄스 한계(예컨대, 상한/최대값)를 결정할 수 있다. 일부 구현에서, 프로그램 펄스 한계는 디폴트 프로그램 펄스 한계, 가중치, 및 중지 발생 횟수에 기초하여 계산된다. 일부 구현에서는, 가중치 및 중지 발생 횟수에 기초하여 가중된 중지 발생 횟수가 계산되고, 가중된 중지 발생 횟수에 기초하여 디폴트 프로그램 펄스 한계가 조정된다. 예를 들어, 제어 로직(512)은 디폴트 프로그램 펄스 한계, 가중치, 및 중지 발생 횟수에 기초하여 프로그램 펄스 한계를 계산할 수 있다. 일 예에서, 제어 로직(512)은 가중치 및 중지 발생 횟수에 기초하여 가중된 중지 발생 횟수를 계산할 수 있고, 가중된 중지 발생 횟수에 기초하여 디폴트 프로그램 펄스 한계를 조정할 수 있다. 가중치는 재개 증분 전압과 디폴트 증분 전압 사이의 차이, 워드 라인들 중 선택 워드 라인의 위치, 및/또는 디폴트 프로그램 펄스 한계와 같은 다양한 인자에 기초하여 설정될 수 있다.
방법(1200)은 도 12에 도시된 바와 같이 동작 1210으로 진행하는데, 여기서는 프로그램 동작에서의 프로그램 펄스의 수가 프로그램 펄스 한계에 도달한 것에 응답하여 프로그램 동작이 종료된다. 예를 들어, 프로그램 동작에서의 프로그램 펄스의 수가 프로그램 펄스 한계에 도달한 것에 응답하여, 제어 로직(512)은 프로그램 동작이 마무리(즉, 모든 선택된 메모리 셀(306)이 성공적으로 프로그래밍됨/검증을 통과함)되기 전에 프로그램 동작을 종료하도록 행 디코더/워드 라인 드라이버(508), 열 디코더/비트 라인 드라이버(506), 및 전압 생성기(510)에 제어 신호를 송신한다. 일부 예에서, 프로그램 동작 동안 하나 이상의 중지가 있더라도, 프로그램 동작에서의 프로그램 펄스의 수가 프로그램 펄스 한계에 도달하기 전에 프로그램 동작이 마무리될 수 있음을 이해해야 한다. 또한 일부 예에서 프로그램 동작은 중지 없이 마무리될 수 있음을 이해해야 한다. 일부 예에서, 프로그램 동작은 중지 없이도 프로그램 동작에서의 프로그램 펄스의 수가 프로그램 펄스 한계에 도달한 것에 응답하여 프로그램 동작이 마무리되기 전에 종료될 수 있음을 또한 이해해야 한다.
본 개시의 일 양태에 따르면, 메모리 장치는 메모리 셀들과, 메모리 셀들에 결합된 주변 회로를 포함한다. 주변 회로는 메모리 셀들 중 선택 메모리 셀에 대한 프로그램 동작을 개시하고, 프로그램 동작 동안 하나 이상의 중지의 발생 횟수를 획득하고, 중지의 발생 횟수에 기초하여 프로그램 동작을 위한 프로그램 펄스 한계를 결정하도록 구성된다.
일부 구현에서, 주변 회로는 또한, 프로그램 동작에서의 프로그램 펄스의 수가 프로그램 펄스 한계에 도달한 것에 응답하여 프로그램 동작을 종료하도록 구성된다.
일부 구현에서, 프로그램 펄스 한계를 결정하기 위해, 주변 회로는 디폴트 프로그램 펄스 한계, 가중치, 및 중지의 발생 횟수에 기초하여 프로그램 펄스 한계를 계산하도록 구성된 제어 로직을 포함한다.
일부 구현에서, 프로그램 펄스 한계를 계산하기 위해, 제어 로직은, 가중치 및 중지의 발생 횟수에 기초하여 가중된 중지 발생 횟수를 계산하고, 가중된 중지 발생 횟수에 기초하여 디폴트 프로그램 펄스 한계를 조정하도록 구성된다.
일부 구현에서, 메모리 장치는 주변 회로를 메모리 셀에 결합시키는 워드 라인들을 더 포함한다. 일부 구현에서, 주변 회로는 워드 라인들 중에서 선택 메모리 셀에 결합되는 선택 워드 라인에 결합된 워드 라인 드라이버를 포함하고, 워드 라인 드라이버는 증분 전압을 갖는 프로그램 펄스를 선택 워드 라인에 인가하도록 구성된다. 일부 구현에서, 프로그램 동작의 재개 직후의 프로그램 펄스의 재개 증분 전압(resumed incremental voltage)은 프로그램 펄스의 디폴트 증분 전압보다 작다.
일부 구현에서, 가중치는 재개 증분 전압과 디폴트 증분 전압 사이의 차이에 기초하여 설정된다.
일부 구현에서, 가중치는 워드 라인들 중 선택 워드 라인의 위치에 기초하여 설정된다.
일부 구현에서, 가중치는 디폴트 프로그램 펄스 한계에 기초하여 설정된다.
일부 구현에서, 중지의 발생 횟수를 획득하기 위해, 주변 회로는, 프로그램 동작 동안 중지의 발생 횟수를 추적하도록 구성된 제어 로직과, 제어 로직에 결합되고 추적된 중지의 발생 횟수를 저장하도록 구성된 레지스터를 포함한다.
일부 구현에서, 중지의 발생 횟수를 획득하기 위해, 주변 회로는 프로그램 동작 동안의 중지의 발생 횟수를 메모리 제어기로부터 수신하도록 구성된 제어 로직을 포함한다.
일부 구현에서, 메모리 셀은 NAND 메모리 스트링 내에 있다.
본 개시의 다른 양태에 따르면, 시스템은, 데이터를 저장하도록 구성된 메모리 장치와, 메모리 장치에 결합된 메모리 제어기를 포함한다. 메모리 장치는 메모리 셀들 및 메모리 셀들에 결합된 주변 회로를 포함한다. 주변 회로는, 메모리 셀들 중 선택 메모리 셀에 대한 프로그램 동작을 개시하고, 프로그램 동작 동안 하나 이상의 중지의 발생 횟수를 획득하고, 중지의 발생 횟수에 기초하여 프로그램 동작을 위한 프로그램 펄스 한계를 결정하도록 구성된다. 메모리 제어기는, 프로그램 동작을 개시하도록 프로그램 커맨드를 주변 회로에 전송하고, 프로그램 동작 동안 하나 이상의 중지를 유발하도록, 프로그램 커맨드 후에 하나 이상의 중지 커맨드를 주변 회로에 전송하도록 구성된다.
일부 구현에서, 시스템은 SSD 또는 메모리 카드를 포함한다.
일부 구현에서, 메모리 제어기는 또한 프로그램 동작 동안의 중지의 발생 횟수를 주변 회로에 전송하도록 구성된다.
일부 구현에서, 메모리 장치는 3D NAND 메모리 장치를 포함하고, 메모리 셀들은 NAND 메모리 스트링 내에 있다.
본 개시의 또 다른 양태에 따르면, 메모리 셀들을 포함하는 메모리 장치를 동작시키는 방법이 제공된다. 메모리 장치는 메모리 셀들을 포함한다. 메모리 셀들 중 선택 메모리 셀에 대해 프로그램 동작이 개시된다. 프로그램 동작 동안 하나 이상의 중지의 발생 횟수가 획득된다. 중지의 발생 횟수에 기초하여 프로그램 동작을 위한 프로그램 펄스 한계가 결정된다.
일부 구현에서, 프로그램 동작에서의 프로그램 펄스의 수가 프로그램 펄스 한계에 도달한 것에 응답하여, 프로그램 동작은 종료된다.
일부 구현에서, 프로그램 펄스 한계를 결정하기 위해, 디폴트 프로그램 펄스 한계, 가중치, 및 중지의 발생 횟수에 기초하여 프로그램 펄스 한계가 계산된다.
일부 구현에서, 프로그램 펄스 한계를 계산하기 위해, 가중치 및 중지의 발생 횟수에 기초하여 가중된 중지 발생 횟수가 계산되고, 가중된 중지 발생 횟수에 기초하여 디폴트 프로그램 펄스 한계가 조정된다.
일부 구현에서, 메모리 장치는 선택 메모리 셀에 결합된 선택 워드 라인을 더 포함하고, 선택 워드 라인에는 증분 전압을 갖는 프로그램 펄스가 인가된다. 일부 구현에서, 프로그램 동작의 재개 직후의 프로그램 펄스의 재개 증분 전압은 프로그램 펄스의 디폴트 증분 전압보다 작다.
일부 구현에서, 가중치는 재개 증분 전압과 디폴트 증분 전압의 차이에 기초하여 설정된다.
일부 구현에서, 가중치는 워드 라인들 중 선택 워드 라인의 위치에 기초하여 설정된다.
일부 구현에서, 가중치는 디폴트 프로그램 펄스 한계에 기초하여 설정된다.
일부 구현에서, 선택 워드 라인 상의 프로그램 전압은 방전되고, 선택 워드 라인 상의 프로그램 전압을 방전하는 동안 SSG 전압이 SSG 라인에 인가된다.
일부 구현에서, 중지의 발생 횟수를 획득하기 위해, 프로그램 동작 동안 중지의 발생 횟수가 추적되고, 추적된 중지의 발생 횟수는 저장된다.
일부 구현에서, 중지의 발생 횟수를 획득하기 위해, 프로그램 동작 동안의 중지의 발생 횟수가 수신된다.
특정 구현에 대한 전술한 설명은 다양한 응용을 위해 쉽게 수정 및/또는 조정될 수 있다. 따라서, 그러한 조정 및 수정은 본 명세서에 제시된 교시 및 지침에 기초하여 개시된 구현의 균등물의 의미 및 범위 내에 있는 것으로 의도된다.
본 개시의 폭과 범위는 위에서 설명된 예시적 구현에 의해 제한되어서는 안 되며, 다음 청구범위 및 그 균등물에 따라서만 정의되어야 한다.
Claims (25)
- 메모리 장치로서,
메모리 셀들과,
상기 메모리 셀들에 결합된 주변 회로를 포함하되,
상기 주변 회로는,
상기 메모리 셀들 중 선택 메모리 셀에 대한 프로그램 동작을 개시하고,
상기 프로그램 동작 동안 하나 이상의 중지의 발생 횟수를 획득하고,
상기 중지의 발생 횟수에 기초하여 상기 프로그램 동작을 위한 프로그램 펄스 한계를 결정하도록 구성되는,
메모리 장치.
- 제1항에 있어서,
상기 주변 회로는 또한, 상기 프로그램 동작에서의 프로그램 펄스의 수가 상기 프로그램 펄스 한계에 도달한 것에 응답하여 상기 프로그램 동작을 종료하도록 구성되는,
메모리 장치.
- 제1항 또는 제2항에 있어서,
상기 프로그램 펄스 한계를 결정하기 위해, 상기 주변 회로는 디폴트 프로그램 펄스 한계, 가중치, 및 상기 중지의 발생 횟수에 기초하여 상기 프로그램 펄스 한계를 계산하도록 구성된 제어 로직을 포함하는,
메모리 장치.
- 제3항에 있어서,
상기 프로그램 펄스 한계를 계산하기 위해, 상기 제어 로직은,
상기 가중치 및 상기 중지의 발생 횟수에 기초하여 가중된 중지 발생 횟수를 계산하고,
상기 가중된 중지 발생 횟수에 기초하여 상기 디폴트 프로그램 펄스 한계를 조정하도록 구성되는,
메모리 장치.
- 제3항 또는 제4항에 있어서,
상기 주변 회로를 상기 메모리 셀에 결합시키는 워드 라인들을 더 포함하되,
상기 주변 회로는 상기 워드 라인들 중에서 상기 선택 메모리 셀에 결합되는 선택 워드 라인에 결합된 워드 라인 드라이버를 포함하고,
상기 워드 라인 드라이버는 증분 전압을 갖는 프로그램 펄스를 상기 선택 워드 라인에 인가하도록 구성되고,
상기 프로그램 동작의 재개 직후의 상기 프로그램 펄스의 재개 증분 전압(resumed incremental voltage)은 상기 프로그램 펄스의 디폴트 증분 전압보다 작은,
메모리 장치.
- 제5항에 있어서,
상기 가중치는 상기 재개 증분 전압과 상기 디폴트 증분 전압 사이의 차이에 기초하여 설정되는,
메모리 장치.
- 제5항 또는 제6항에 있어서,
상기 가중치는 상기 워드 라인들 중 상기 선택 워드 라인의 위치에 기초하여 설정되는,
메모리 장치.
- 제3항 내지 제7항 중 어느 한 항에 있어서,
상기 가중치는 상기 디폴트 프로그램 펄스 한계에 기초하여 설정되는,
메모리 장치.
- 제1항 내지 제8항 중 어느 한 항에 있어서,
상기 중지의 발생 횟수를 획득하기 위해, 상기 주변 회로는,
상기 프로그램 동작 동안 상기 중지의 발생 횟수를 추적하도록 구성된 제어 로직과,
상기 제어 로직에 결합되고 상기 추적된 중지의 발생 횟수를 저장하도록 구성된 레지스터를 포함하는,
메모리 장치.
- 제1항 내지 제9항 중 어느 한 항에 있어서,
상기 중지의 발생 횟수를 획득하기 위해, 상기 주변 회로는 상기 프로그램 동작 동안의 상기 중지의 발생 횟수를 메모리 제어기로부터 수신하도록 구성된 제어 로직을 포함하는,
메모리 장치.
- 제1항 내지 제10항 중 어느 한 항에 있어서,
상기 메모리 셀은 NAND 메모리 스트링 내에 있는,
메모리 장치.
- 시스템으로서,
데이터를 저장하도록 구성된 메모리 장치와,
상기 메모리 장치에 결합된 메모리 제어기를 포함하되,
상기 메모리 장치는 메모리 셀들 및 상기 메모리 셀들에 결합된 주변 회로를 포함하고,
상기 주변 회로는,
상기 메모리 셀들 중 선택 메모리 셀에 대한 프로그램 동작을 개시하고,
상기 프로그램 동작 동안 하나 이상의 중지의 발생 횟수를 획득하고,
상기 중지의 발생 횟수에 기초하여 상기 프로그램 동작을 위한 프로그램 펄스 한계를 결정하도록 구성되고,
상기 메모리 제어기는,
상기 프로그램 동작을 개시하도록 프로그램 커맨드를 상기 주변 회로에 전송하고,
상기 프로그램 동작 동안 하나 이상의 중지를 유발하도록, 상기 프로그램 커맨드 후에 하나 이상의 중지 커맨드를 상기 주변 회로에 전송하도록 구성되는,
시스템.
- 제12항에 있어서,
솔리드-스테이트 드라이브(SSD) 또는 메모리 카드를 포함하는
시스템.
- 제12항 또는 제13항에 있어서,
상기 메모리 제어기는 또한 상기 프로그램 동작 동안의 상기 중지의 발생 횟수를 상기 주변 회로에 전송하도록 구성되는,
시스템.
- 제12항 내지 제14항 중 어느 한 항에 있어서,
상기 메모리 장치는 3차원(3D) NAND 메모리 장치를 포함하고, 상기 메모리 셀들은 NAND 메모리 스트링 내에 있는,
시스템.
- 메모리 셀들을 포함하는 메모리 장치를 동작시키는 방법으로서,
상기 메모리 셀들 중 선택 메모리 셀에 대한 프로그램 동작을 개시하는 단계와,
상기 프로그램 동작 동안 하나 이상의 중지의 발생 횟수를 획득하는 단계와,
상기 중지의 발생 횟수에 기초하여 상기 프로그램 동작을 위한 프로그램 펄스 한계를 결정하는 단계를 포함하는,
방법.
- 제16항에 있어서,
상기 프로그램 동작에서의 프로그램 펄스의 수가 상기 프로그램 펄스 한계에 도달한 것에 응답하여, 상기 프로그램 동작을 종료하는 단계를 더 포함하는,
방법.
- 제16항 또는 제17항에 있어서,
상기 프로그램 펄스 한계를 결정하는 단계는, 디폴트 프로그램 펄스 한계, 가중치, 및 상기 중지의 발생 횟수에 기초하여 상기 프로그램 펄스 한계를 계산하는 단계를 포함하는,
방법.
- 제18항에 있어서,
상기 프로그램 펄스 한계를 계산하는 단계는,
상기 가중치 및 상기 중지의 발생 횟수에 기초하여 가중된 중지 발생 횟수를 계산하는 단계와,
상기 가중된 중지 발생 횟수에 기초하여 상기 디폴트 프로그램 펄스 한계를 조정하는 단계를 포함하는,
방법.
- 제18항 또는 제19항에 있어서,
상기 메모리 장치는 상기 선택 메모리 셀에 결합된 선택 워드 라인을 더 포함하고,
상기 방법은 증분 전압을 갖는 프로그램 펄스를 상기 선택 워드 라인에 인가하는 단계를 더 포함하되, 상기 프로그램 동작의 재개 직후의 상기 프로그램 펄스의 재개 증분 전압은 상기 프로그램 펄스의 디폴트 증분 전압보다 작은,
방법.
- 제20항에 있어서,
상기 가중치는 상기 재개 증분 전압과 상기 디폴트 증분 전압의 차이에 기초하여 설정되는,
방법.
- 제20항 또는 제21항에 있어서,
상기 가중치는 워드 라인들 중 상기 선택 워드 라인의 위치에 기초하여 설정되는,
방법.
- 제18항 내지 제22항 중 어느 한 항에 있어서,
상기 가중치는 상기 디폴트 프로그램 펄스 한계에 기초하여 설정되는,
방법.
- 제16항 내지 제23항 중 어느 한 항에 있어서,
상기 중지의 발생 횟수를 획득하는 단계는,
상기 프로그램 동작 동안 상기 중지의 발생 횟수를 추적하는 단계와,
상기 추적된 중지의 발생 횟수를 저장하는 단계를 포함하는,
방법.
- 제16항 내지 제23항 중 어느 한 항에 있어서,
상기 중지의 발생 횟수를 획득하는 단계는 상기 프로그램 동작 동안의 상기 중지의 발생 횟수를 수신하는 단계를 포함하는,
방법.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/114921 WO2023024056A1 (en) | 2021-08-27 | 2021-08-27 | Memory device and program operation thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230098657A true KR20230098657A (ko) | 2023-07-04 |
Family
ID=78982730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237019080A KR20230098657A (ko) | 2021-08-27 | 2021-08-27 | 메모리 장치 및 그 프로그램 동작 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11908522B2 (ko) |
KR (1) | KR20230098657A (ko) |
CN (1) | CN113853655A (ko) |
WO (1) | WO2023024056A1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230098657A (ko) * | 2021-08-27 | 2023-07-04 | 양쯔 메모리 테크놀로지스 씨오., 엘티디. | 메모리 장치 및 그 프로그램 동작 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2986048B2 (ja) * | 1994-04-26 | 1999-12-06 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータ・システムに装着可能な拡張デバイス、拡張デバイスの制御方法及び拡張デバイスを有するコンピュータ・システムの制御方法 |
JP2006294103A (ja) * | 2005-04-07 | 2006-10-26 | Matsushita Electric Ind Co Ltd | 半導体記憶装置 |
US8111544B2 (en) * | 2009-02-23 | 2012-02-07 | Taiwan Semiconductor Manufacturing Company, Ltd. | Programming MRAM cells using probability write |
US8054691B2 (en) * | 2009-06-26 | 2011-11-08 | Sandisk Technologies Inc. | Detecting the completion of programming for non-volatile storage |
KR102569820B1 (ko) * | 2018-10-25 | 2023-08-24 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
US10956081B2 (en) * | 2019-04-18 | 2021-03-23 | Intel Corporation | Method, system, and apparatus for multi-tiered progressive memory program operation suspend and resume |
KR20230098657A (ko) * | 2021-08-27 | 2023-07-04 | 양쯔 메모리 테크놀로지스 씨오., 엘티디. | 메모리 장치 및 그 프로그램 동작 |
-
2021
- 2021-08-27 KR KR1020237019080A patent/KR20230098657A/ko not_active Application Discontinuation
- 2021-08-27 CN CN202180002843.3A patent/CN113853655A/zh active Pending
- 2021-08-27 WO PCT/CN2021/114921 patent/WO2023024056A1/en active Application Filing
- 2021-09-29 US US17/488,701 patent/US11908522B2/en active Active
-
2024
- 2024-01-04 US US18/404,690 patent/US20240145007A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
CN113853655A (zh) | 2021-12-28 |
US20240145007A1 (en) | 2024-05-02 |
US20230069200A1 (en) | 2023-03-02 |
WO2023024056A1 (en) | 2023-03-02 |
US11908522B2 (en) | 2024-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10032518B2 (en) | Two part programming and erase methods for non-volatile charge trap memory devices | |
US11915761B2 (en) | Memory device and program operation thereof | |
WO2021233324A1 (en) | Memory device and program operation thereof | |
KR20180099015A (ko) | 반도체 메모리 장치 및 이의 동작 방법 | |
US20240145007A1 (en) | Memory device and program operation thereof | |
US20230035225A1 (en) | Memory device and program operation thereof | |
WO2023098082A1 (en) | Memory device, memory system, and read operation method thereof | |
WO2022188085A1 (en) | Open block-based read offset compensation in read operation of memory device | |
US20240062821A1 (en) | Memory device and read operation during suspension of program operation thereof | |
US11538537B2 (en) | Negative gate stress operation in multi-pass programming and memory device thereof | |
US12009036B2 (en) | NAND flash memory device and method of reducing program disturb thereof | |
US20230367488A1 (en) | Memory device and program operation thereof | |
US11664078B2 (en) | Negative gate stress operation in multi-pass programming and memory device thereof | |
US11961562B2 (en) | Memory device and operation thereof | |
US20230178160A1 (en) | Memory device, memory system, and read operation method thereof | |
US20240062831A1 (en) | Memory device and read operation during suspension of program operation thereof | |
US20240170073A1 (en) | Memory device, memory system, and operation method thereof | |
KR20160055463A (ko) | 반도체 장치 및 그 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal |