KR20230039043A - Ispp방식의 프로그램 동작을 수행하는 비휘발성 메모리 장치 및 그 동작방법 - Google Patents
Ispp방식의 프로그램 동작을 수행하는 비휘발성 메모리 장치 및 그 동작방법 Download PDFInfo
- Publication number
- KR20230039043A KR20230039043A KR1020210121887A KR20210121887A KR20230039043A KR 20230039043 A KR20230039043 A KR 20230039043A KR 1020210121887 A KR1020210121887 A KR 1020210121887A KR 20210121887 A KR20210121887 A KR 20210121887A KR 20230039043 A KR20230039043 A KR 20230039043A
- Authority
- KR
- South Korea
- Prior art keywords
- program
- voltage level
- pulse
- applying
- loop
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 238000012795 verification Methods 0.000 claims abstract description 37
- 230000002093 peripheral effect Effects 0.000 claims abstract description 26
- 101000833350 Homo sapiens Phosphoacetylglucosamine mutase Proteins 0.000 description 26
- 101001072903 Homo sapiens Phosphoglucomutase-2 Proteins 0.000 description 26
- 102100024440 Phosphoacetylglucosamine mutase Human genes 0.000 description 26
- 102100036629 Phosphoglucomutase-2 Human genes 0.000 description 26
- 239000000872 buffer Substances 0.000 description 22
- 238000010586 diagram Methods 0.000 description 15
- 101000882406 Staphylococcus aureus Enterotoxin type C-1 Proteins 0.000 description 13
- 230000004044 response Effects 0.000 description 12
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 5
- 230000001276 controlling effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 239000003990 capacitor Substances 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000008685 targeting Effects 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects 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
- 238000011017 operating method Methods 0.000 description 2
- 238000005086 pumping Methods 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- -1 ... Proteins 0.000 description 1
- JBRZTFJDHDCESZ-UHFFFAOYSA-N AsGa Chemical compound [As]#[Ga] JBRZTFJDHDCESZ-UHFFFAOYSA-N 0.000 description 1
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 101000934888 Homo sapiens Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Proteins 0.000 description 1
- 102100025393 Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Human genes 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 229910052738 indium Inorganic materials 0.000 description 1
- APFVFJFRJDLVQX-UHFFFAOYSA-N indium atom Chemical compound [In] APFVFJFRJDLVQX-UHFFFAOYSA-N 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction 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/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
- 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
- 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/10—Programming or data input 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/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
-
- 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/30—Power supply 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/562—Multilevel memory programming aspects
- G11C2211/5621—Multilevel programming verification
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Abstract
본 기술은 ISPP(Incremental Step Pulse Program)방식의 프로그램 동작을 수행하는 비휘발성 메모리 장치 및 그 동작방법에 관한 것으로서, 다수의 워드라인과 다수의 비트라인 사이에 접속된 다수의 메모리 셀과, 다수의 비트라인에 대한 셋 업 동작과 선택 워드라인에 프로그램 펄스를 인가하는 인가동작을 포함하는 프로그램 동작, 및 선택 워드라인에 검증전압을 인가하는 검증동작을 포함하는 프로그램 루프(loop)를 수행하는 주변회로, 및 선택 워드라인에 대한 프로그램이 완료될 때까지 프로그램 루프를 반복적으로 수행하도록 주변회로를 제어하며, 최초 프로그램 루프에 포함된, 인가동작의 제1구간에서 선택 워드라인에 제1프로그램 펄스를 인가하고 제2구간에서 제2프로그램 펄스를 인가하며, 셋 업 동작부터 인가동작의 제1구간까지 제1비트라인 그룹을 제1전압레벨로 설정하고 제2비트라인 그룹을 제1전압레벨보다 낮은 제2전압레벨로 설정하며 인가동작의 제2구간에서 제1 및 제2 비트라인 그룹을 제2전압레벨로 재설정하도록 주변회로를 제어하는 제어로직을 포함한다.
Description
본 발명은 메모리 장치에 관한 것으로, 보다 구체적으로 ISPP(Incremental Step Pulse Program)방식의 프로그램 동작을 수행하는 비휘발성 메모리 장치 및 그 동작방법에 관한 것이다.
일반적으로 실리콘(Si, silicon), 게르마늄(Ge, Germanium), 비화 갈륨(GaAs, gallium arsenide), 인화인듐(InP, indium phospide) 등과 같은 반도체를 이용하여 구현되는 여러가지 반도체 장치 중 메모리 시스템(memory system)을 저장 매체로 사용하는 장치, 예컨대, 디지털 카메라와 스마트폰 및 태블릿 피씨 등과 같은 이동형 디지털 전자 장치에서는 데이터를 저장하기 위해 휘발성 메모리 장치(Volatile memory device)와 비휘발성 메모리(Nonvolatile memory device)를 포함할 수 있다. 휘발성 메모리 장치는 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 메모리 장치이다. 휘발성 메모리 장치에는 SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM) 등이 있다. 비휘발성 메모리 장치는 전원 공급이 차단되어도 저장하고 있던 데이터가 유지되는 메모리 장치이다. 비휘발성 메모리 장치에는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리 장치(Flash Memory Device), PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등이 있다. 플래시 메모리는 크게 노어 타입과 낸드 타입으로 구분될 수 있다.
본 발명의 실시예는 ISPP(Incremental Step Pulse Program) 방식의 프로그램 동작에서 메모리 셀의 프로그램 분포를 개선할 수 있는 비휘발성 메모리 장치 및 그 동작방법을 제공한다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 실시예에 따른 비휘발성 메모리 장치는, 다수의 워드라인과 다수의 비트라인 사이에 접속된 다수의 메모리 셀과, 상기 다수의 비트라인에 대한 셋 업 동작과 선택 워드라인에 프로그램 펄스를 인가하는 인가동작을 포함하는 프로그램 동작, 및 상기 선택 워드라인에 검증전압을 인가하는 검증동작을 포함하는 프로그램 루프(loop)를 수행하는 주변회로, 및 상기 선택 워드라인에 대한 프로그램이 완료될 때까지 상기 프로그램 루프를 반복적으로 수행하도록 상기 주변회로를 제어하며, 최초 프로그램 루프에 포함된, 상기 인가동작의 제1구간에서 상기 선택 워드라인에 제1프로그램 펄스를 인가하고 제2구간에서 제2프로그램 펄스를 인가하며, 상기 셋 업 동작부터 상기 인가동작의 제1구간까지 제1비트라인 그룹을 제1전압레벨로 설정하고 제2비트라인 그룹을 상기 제1전압레벨보다 낮은 제2전압레벨로 설정하며 상기 인가동작의 제2구간에서 상기 제1 및 제2 비트라인 그룹을 상기 제2전압레벨로 재설정하도록 상기 주변회로를 제어하는 제어로직을 포함할 수 있다.
본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치의 동작방법은, 다수의 비트라인에 대한 셋 업 동작과 선택 워드라인에 프로그램 펄스를 인가하는 인가동작을 포함하는 프로그램 동작, 및 상기 선택 워드라인에 검증전압을 인가하는 검증동작을 포함하는 프로그램 루프를 반복 수행하는 단계, 최초 프로그램 루프에 포함된 상기 인가동작의 제1구간에서 상기 선택 워드라인에 제1프로그램 펄스를 인가하고 제2구간에서 제2프로그램 펄스를 인가하는 단계, 상기 최초 프로그램 루프에 포함된 상기 셋 업 동작부터 상기 인가동작의 제1구간까지 제1비트라인 그룹을 제1전압레벨로 설정하고 제2비트라인 그룹을 상기 제1전압레벨보다 낮은 제2전압레벨로 설정하는 단계, 및 상기 최초 프로그램 루프에 포함된 상기 인가동작의 제2구간에서 상기 제1 및 제2 비트라인 그룹을 상기 제2전압레벨로 재설정하는 단계를 포함할 수 있다.
본 기술은 ISPP(Incremental Step Pulse Program) 방식의 프로그램 동작 중 최초 프로그램 동작에서 인가되는 프로그램 펄스를 2개로 구분하고, 2개로 구분된 프로그램 펄스를 기준으로 비트라인 셋 업 레벨을 서로 다르게 설정할 수 있다. 이를 통해, 최초 프로그램 동작이 완료된 시점에서 메모리 셀의 프로그램 분포를 개선할 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템을 설명하기 위한 도면이다.
도 2는 도 1에 도시된 메모리 장치를 본 발명의 실시예에 따라 상세하게 설명하기 위한 도면이다.
도 3은 도 2에 도시된 메모리 블록을 본 발명의 실시예에 따라 상세하게 설명하기 위한 도면이다.
도 4는 도 2에 도시된 메모리 장치를 본 발명의 실시예에 따라 상세하게 설명하기 위한 도면이다.
도 5 및 도 6은 본 발명의 제1 실시 예에 따른 프로그램 동작을 설명하기 위한 도면이다.
도 7 및 도 8은 본 발명의 제2 실시 예에 따른 프로그램 동작을 설명하기 위한 도면이다.
도 9 및 도 10은 본 발명의 제3 실시 예에 따른 프로그램 동작을 설명하기 위한 도면이다.
도 11은 본 발명의 실시 예에 따른 프로그램 동작에서 메모리 셀의 프로그램 상태 변화를 설명하기 위한 도면이다.
도 2는 도 1에 도시된 메모리 장치를 본 발명의 실시예에 따라 상세하게 설명하기 위한 도면이다.
도 3은 도 2에 도시된 메모리 블록을 본 발명의 실시예에 따라 상세하게 설명하기 위한 도면이다.
도 4는 도 2에 도시된 메모리 장치를 본 발명의 실시예에 따라 상세하게 설명하기 위한 도면이다.
도 5 및 도 6은 본 발명의 제1 실시 예에 따른 프로그램 동작을 설명하기 위한 도면이다.
도 7 및 도 8은 본 발명의 제2 실시 예에 따른 프로그램 동작을 설명하기 위한 도면이다.
도 9 및 도 10은 본 발명의 제3 실시 예에 따른 프로그램 동작을 설명하기 위한 도면이다.
도 11은 본 발명의 실시 예에 따른 프로그램 동작에서 메모리 셀의 프로그램 상태 변화를 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명하기로 한다. 그러나, 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구성될 수 있으며, 단지 본 실시예는 본 발명의 개시가 완전하도록하며 통상의 지식을 가진자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템을 설명하기 위한 도면이다.
도 1을 참조하면, 데이터 처리 시스템은, 호스트(Host)(102) 및 메모리 시스템(110)을 포함할 수 있다. 호스트(102)는 전자 장치, 예컨대 휴대폰, MP3 플레이어, 랩탑 컴퓨터 등과 같은 휴대용 전자 장치, 또는 데스크탑 컴퓨터, 게임기, TV, 프로젝터 등과 같은 전자 장치를 포함, 즉 컴퓨팅 장치 혹은 유무선 전자 장치를 포함할 수 있다.
호스트(102)는, 적어도 하나의 운영 시스템(OS: operating system)를 포함하며, 운영 시스템은, 호스트(102)의 기능 및 동작을 전반적으로 관리 및 제어하고, 메모리 시스템(110)을 사용하는 사용자와 호스트(102) 간에 상호 동작을 제공할 수 있다. 여기서, 운영 시스템은, 사용자의 사용 목적 및 용도에 상응한 기능 및 동작을 지원하며, 예컨대, 호스트(102)의 이동성(mobility)에 따라 일반 운영 시스템과 모바일 운용 시스템으로 구분할 수 있다. 또한, 운영 시스템에서의 일반 운영 시스템은, 사용자의 사용 환경에 따라 개인용 운영 시스템과 기업용 운영 시스템으로 구분할 수 있으며, 일 예로, 개인용 운영 시스템은, 일반 사용자를 위한 서비스 제공 기능을 지원하도록 특성화된 시스템으로, 윈도우(windows) 및 크롬(chrome) 등을 포함하고, 기업용 운영 시스템은, 고성능을 확보 및 지원하도록 특성화된 시스템으로, 윈도 서버(windows server), 리눅스(linux) 및 유닉스(unix) 등을 포함할 수 있다. 아울러, 운영 시스템에서의 모바일 운영 시스템은, 사용자에게 이동성 서비스 제공 기능 및 시스템의 절전 기능을 지원하도록 특성화된 시스템으로, 안드로이드(android), iOS, 윈도 모바일(windows mobile) 등을 포함할 수 있다. 이때, 호스트(102)는, 다수의 운영 시스템을 포함할 수 있으며, 또한 사용자 요청(user request)에 상응한 메모리 시스템(110)과의 동작 수행을 위해 운영 시스템을 실행한다, 여기서, 호스트(102)는, 사용자 요청에 해당하는 다수의 커맨드를 메모리 시스템(110)으로 전송하며, 그에 따라 메모리 시스템(110)에서는 커맨드에 해당하는 동작, 즉 사용자 요청에 상응하는 동작을 수행할 수 있다.
또한, 메모리 시스템(110)은, 호스트(102)의 요청에 응답하여 동작하며, 특히 호스트(102)에 의해서 액세스되는 데이터를 저장할 수 있다. 다시 말해, 메모리 시스템(110)은, 호스트(102)의 주 기억 장치 또는 보조 기억 장치로 사용될 수 있다. 여기서, 메모리 시스템(110)은 호스트(102)와 연결되는 호스트 인터페이스 프로토콜에 따라, 다양한 종류의 저장 장치 중 어느 하나로 구현될 수 있다. 예를 들면, 메모리 시스템(110)은, 솔리드 스테이트 드라이브(SSD: Solid State Drive), MMC, eMMC(embedded MMC), RS-MMC(Reduced Size MMC), micro-MMC 형태의 멀티 미디어 카드(MMC: Multi Media Card), SD, mini-SD, micro-SD 형태의 시큐어 디지털(SD: Secure Digital) 카드, USB(Universal Storage Bus) 저장 장치, UFS(Universal Flash Storage) 장치, CF(Compact Flash) 카드, 스마트 미디어(Smart Media) 카드, 메모리 스틱(Memory Stick) 등과 같은 다양한 종류의 저장 장치 중 어느 하나로 구현될 수 있다.
그리고, 메모리 시스템(110)은, 호스트(102)에 의해서 액세스되는 데이터를 저장하는 메모리 장치(150), 및 메모리 장치(150)로의 데이터 저장을 제어하는 컨트롤러(130)를 포함할 수 있다.
그리고, 메모리 시스템(110)에 포함된 컨트롤러(130) 및 메모리 장치(150)는 하나의 반도체 장치로 집적될 수 있다. 일 예로, 컨트롤러(130) 및 메모리 장치(150)는 하나의 반도체 장치로 집적되어 SSD를 구성할 수 있다. 메모리 시스템(110)이 SSD로 이용되는 경우, 메모리 시스템(110)에 연결되는 호스트(102)의 동작 속도는 보다 개선될 수 있다. 아울러, 컨트롤러(130) 및 메모리 장치(150)는, 하나의 반도체 장치로 집적되어 메모리 카드를 구성할 수도 있으며, 일 예로 PC 카드(PCMCIA: Personal Computer Memory Card International Association), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD, SDHC), 유니버설 플래시 기억 장치(UFS) 등과 같은 메모리 카드를 구성할 수 있다.
또한, 다른 일 예로, 메모리 시스템(110)은, 컴퓨터, UMPC(Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA(Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 태블릿 컴퓨터(tablet computer), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), e-북(e-book), PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 블랙박스(black box), 디지털 카메라(digital camera), DMB(Digital Multimedia Broadcasting) 재생기, 3차원 텔레비전(3-dimensional television), 스마트 텔레비전(smart television), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), 데이터 센터를 구성하는 스토리지, 정보를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크를 구성하는 다양한 전자 장치 중 하나, 컴퓨터 네트워크를 구성하는 다양한 전자 장치 중 하나, 텔레매틱스 네트워크를 구성하는 다양한 전자 장치 중 하나, RFID(radio frequency identification) 장치, 또는 컴퓨팅 시스템을 구성하는 다양한 구성 요소 중 하나 등을 구성할 수 있다.
한편, 메모리 시스템(110)에서의 메모리 장치(150)는, 전원이 공급되지 않아도 저장된 데이터를 유지할 수 있으며, 특히 라이트(write) 동작을 통해 호스트(102)로부터 제공된 데이터를 저장하고, 리드(read) 동작을 통해 저장된 데이터를 호스트(102)로 제공할 수 있다. 여기서, 메모리 장치(150)는, 데이터를 저장하는 다수의 메모리 셀을 포함하는 메모리 셀 어레이(미도시)를 포함할 수 있다.
메모리 셀 어레이(미도시)는 다수의 메모리 블록을 포함할 수 있다. 각 메모리 블록은 다수의 메모리 셀을 포함할 수 있다. 하나의 메모리 블록은 다수의 페이지를 포함할 수 있다. 실시 예에 따라, 페이지는 메모리 장치(150)에 데이터를 저장하거나, 메모리 장치(150)에 저장된 데이터를 리드하는 단위일 수 있다. 메모리 블록은 데이터를 지우는 단위일 수 있다.
실시 예에 따라, 메모리 장치(150)는 DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory), LPDDR4(Low Power Double Data Rate4) SDRAM, GDDR(Graphics Double Data Rate) SDRAM, LPDDR(Low Power DDR), RDRAM(Rambus Dynamic Random Access Memory), 낸드 플래시 메모리(NAND flash memory), 수직형 낸드 플래시 메모리(Vertical NAND), 노아 플래시 메모리(NOR flash memory), 저항성 램(resistive random access memory: RRAM), 상변화 메모리(phase-change random access memory: PRAM), 자기저항 메모리(magnetoresistive random access memory: MRAM), 강유전체 메모리(ferroelectric random access memory: FRAM), 스핀주입 자화반전 메모리(spin transfer torque random access memory: STT-RAM) 등이 될 수 있다. 본 명세서에서는 설명의 편의를 위해, 메모리 장치(150)가 낸드 플래시 메모리인 경우를 가정하여 설명한다.
메모리 장치(150)는 컨트롤러(130)로부터 커맨드 및 어드레스를 수신하고, 메모리 셀 어레이 중 어드레스에 의해 선택된 영역을 액세스하도록 구성될 수 있다. 메모리 장치는 어드레스에 의해 선택된 영역에 대해 커맨드가 지시하는 동작을 수행할 수 있다. 예를 들면, 메모리 장치(150)는 쓰기 동작 (프로그램 동작), 리드 동작 및 소거 동작을 수행할 수 있다. 프로그램 동작 시에, 메모리 장치(150)는 어드레스에 의해 선택된 영역에 데이터를 프로그램 할 것이다. 리드 동작 시에, 메모리 장치(150)는 어드레스에 의해 선택된 영역으로부터 데이터를 읽을 것이다. 소거 동작 시에, 메모리 장치(150)는 어드레스에 의해 선택된 영역에 저장된 데이터를 소거할 것이다.
컨트롤러(130)는 메모리 시스템(110)의 전반적인 동작을 제어할 수 있다.
메모리 시스템(110)에 전원이 인가되면, 컨트롤러(130)는 펌웨어(firmware, FW)를 실행할 수 있다. 메모리 장치(150)가 플래시 메모리 장치인 경우, 펌웨어(FW)는 호스트(102)와의 통신을 제어하는 호스트 인터페이스 레이어(Host Interface Layer, HIL), 컨트롤러(130)는 호스트(102)와 메모리 장치(150) 간의 통신을 제어하는 플래시 변환 레이어(Flash Translation Layer, FTL) 및 메모리 장치(150)와의 통신을 제어하는 플래시 인터페이스 레이어(Flash Interface Layer, FIL)를 포함할 수 있다.
실시 예에 따라, 컨트롤러(130)는 호스트(102)로부터 데이터와 논리 블록 어드레스(Logical Block Address, LBA)를 입력 받고, 논리 블록 어드레스를 메모리 장치(150)에 포함된 데이터가 저장될 메모리 셀의 주소를 나타내는 물리 블록 어드레스(Physical Block Address, PBA)로 변환할 수 있다. 본 명세서에서 논리 블록 어드레스(LBA)와 "논리 어드레스" 또는 "논리적 어드레스"는 같은 의미로 사용될 수 있다. 본 명세서에서 물리 블록 어드레스(PBA)와 "물리 어드레스" 또는 "물리적 어드레스"는 같은 의미로 사용될 수 있다.
컨트롤러(130)는 호스트(102)의 요청(request)에 따라 프로그램 동작, 리드 동작 또는 소거 동작 등을 수행하도록 메모리 장치(150)를 제어할 수 있다. 프로그램 동작 시, 컨트롤러(130)는 쓰기 커맨드, 물리 블록 어드레스 및 데이터를 메모리 장치(150)에 제공할 수 있다. 리드 동작 시, 컨트롤러(130)는 리드 커맨드 및 물리 블록 어드레스를 메모리 장치(150)에 제공할 수 있다. 소거 동작 시, 컨트롤러(130)는 소거 커맨드 및 물리 블록 어드레스를 메모리 장치(150)에 제공할 수 있다.
실시 예에 따라, 컨트롤러(130)는 호스트(102)로부터의 요청과 무관하게 자체적으로 커맨드, 어드레스 및 데이터를 생성하고, 메모리 장치(150)에 전송할 수 있다. 예를 들면, 컨트롤러(130)는 웨어 레벨링(wear leveling), 리드 리클레임(read reclaim), 가비지 컬렉션(garbage collection)등을 수행하는데 수반되는 리드 동작 및 프로그램 동작을 수행하기 위한 커맨드, 어드레스 및 데이터를 메모리 장치(150)로 제공할 수 있다.
실시 예에 따라, 컨트롤러(130)가 적어도 둘 이상의 메모리 장치(150)를 제어할 수 있다. 이 경우, 컨트롤러(130)는 동작 성능의 향상을 위해 메모리 장치(150)를 인터리빙 방식에 따라 제어할 수 있다. 인터리빙 방식은 적어도 둘 이상의 메모리 장치(150)를 대한 동작이 중첩되도록 제어하는 방식일 수 있다.
호스트(102)는 USB (Universal Serial Bus), SATA (Serial AT Attachment), SAS (Serial Attached SCSI), HSIC (High Speed Interchip), SCSI (Small Computer System Interface), PCI (Peripheral Component Interconnection), PCIe (PCI express), NVMe (NonVolatile Memory express), UFS (Universal Flash Storage), SD (Secure Digital), MMC (MultiMedia Card), eMMC (embedded MMC), DIMM (Dual In-line Memory Module), RDIMM (Registered DIMM), LRDIMM (Load Reduced DIMM) 등과 같은 다양한 통신 방식 중 적어도 하나를 이용하여 메모리 시스템(110)와 통신할 수 있다.
도 2는 도 1에 도시된 메모리 장치를 본 발명의 실시예에 따라 상세하게 설명하기 위한 도면이다.
도 2를 참조하면, 메모리 장치(150)는 메모리 셀 어레이(151), 주변 회로(152) 및 제어 로직(153)을 포함할 수 있다.
메모리 셀 어레이(151)는 다수의 메모리 블록(BLK1~BLKz)을 포함할 수 있다. 다수의 메모리 블록(BLK1~BLKz)은 행 라인(RL)을 통해 어드레스 디코더(155)에 연결될 수 있다. 다수의 메모리 블록(BLK1~BLKz)은 비트 라인(BL1~BLm)을 통해 페이지 버퍼 그룹(156)에 연결될 수 있다. 다수의 메모리 블록(BLK1~BLKz) 각각은 다수의 메모리 셀을 포함할 수 있다. 실시 예로서, 다수의 메모리 셀은 비휘발성 메모리 셀일 수 있다. 같은 워드 라인에 연결된 메모리 셀은 하나의 페이지로 정의될 수 있다. 따라서, 하나의 메모리 블록은 다수의 페이지를 포함할 수 있다.
행 라인(RL)은 적어도 하나 이상의 소스 선택 라인, 다수의 워드 라인 및 적어도 하나 이상의 드레인 선택 라인을 포함할 수 있다.
메모리 셀 어레이(151)에 포함된 메모리 셀은 각각 하나의 데이터 비트를 저장하는 싱글 레벨 셀(Single Level Cell; SLC), 두 개의 데이터 비트를 저장하는 멀티 레벨 셀(Multi Level Cell; MLC), 세 개의 데이터 비트를 저장하는 트리플 레벨 셀(Triple Level Cell; TLC) 또는 네 개의 데이터 비트를 저장할 수 있는 쿼드 레벨 셀(Quad Level Cell; QLC)로 구성될 수 있다.
주변 회로(152)는 제어 로직(153)의 제어에 따라 메모리 셀 어레이(151)의 선택된 영역에 프로그램 동작, 리드 동작 또는 소거 동작을 수행하도록 구성될 수 있다. 주변 회로(152)는 메모리 셀 어레이(151)를 구동할 수 있다. 예를 들어, 주변 회로(152)는 제어 로직(153)의 제어에 따라 행 라인(RL) 및 비트 라인(BL1~BLm)에 다양한 동작 전압을 인가하거나, 인가된 전압을 디스차지 할 수 있다.
주변 회로(152)는 어드레스 디코더(155), 전압 생성부(154), 페이지 버퍼 그룹(156), 데이터 입출력 회로(157) 및 센싱 회로(158)를 포함할 수 있다.
주변 회로(152)는 메모리 셀 어레이(151)를 구동할 수 있다. 예를 들어, 주변 회로(152)는 프로그램 동작, 리드 동작 및 소거 동작을 수행하도록 메모리 셀 어레이(151)를 구동할 수 있다.
어드레스 디코더(155)는 행 라인(RL)을 통해 메모리 셀 어레이(151)에 연결될 수 있다. 행 라인(RL)은 드레인 선택 라인, 워드라인, 소스 선택 라인 및 공통 소스 라인을 포함할 수 있다.
어드레스 디코더(155)는 제어 로직(153)의 제어에 응답하여 동작하도록 구성될 수 있다. 어드레스 디코더(155)는 제어 로직(153)으로부터 어드레스(RADD)를 수신할 수 있다.
어드레스 디코더(155)는 수신된 어드레스(RADD) 중 블록 어드레스를 디코딩하도록 구성될 수 있다. 어드레스 디코더(155)는 디코딩된 블록 어드레스에 따라 메모리 블록(BLK1~BLKz) 중 적어도 하나의 메모리 블록을 선택할 수 있다. 어드레스 디코더(155)는 수신된 어드레스(RADD) 중 로우 어드레스를 디코딩하도록 구성될 수 있다. 어드레스 디코더(155)는 디코딩된 로우 어드레스에 따라 선택된 메모리 블록의 워드라인 중 적어도 하나의 워드라인을 선택할 수 있다. 어드레스 디코더(155)는 선택된 워드라인에 전압 생성부(154)로부터 공급받은 동작 전압(Vop)을 인가할 수 있다.
프로그램 동작 시에, 어드레스 디코더(155)는 선택된 워드라인에 프로그램 전압을 인가하고 비선택된 워드라인에 프로그램 전압보다 낮은 레벨의 패스 전압을 인가할 것이다. 프로그램 검증 동작 시에, 어드레스 디코더(155)는 선택된 워드라인에 검증 전압을 인가하고 비선택된 워드라인에 검증 전압보다 높은 레벨의 검증 패스 전압을 인가할 것이다.
리드 동작 시에, 어드레스 디코더(155)는 선택된 워드라인에 읽기 전압을 인가하고, 비선택된 워드라인에 읽기 전압보다 높은 레벨의 읽기 패스 전압을 인가할 것이다.
메모리 장치(150)의 소거 동작은 메모리 블록 단위로 수행될 수 있다. 소거 동작 시에 메모리 장치(150)에 입력되는 어드레스(ADDR)는 블록 어드레스를 포함할 수 있다. 어드레스 디코더(155)는 블록 어드레스를 디코딩하고, 디코딩된 블록 어드레스에 따라 적어도 하나의 메모리 블록을 선택할 수 있다. 소거 동작 시, 어드레스 디코더(155)는 선택된 메모리 블록에 입력되는 워드라인에 접지 전압을 인가할 수 있다.
전압 생성부(154)는 메모리 장치(150)에 공급되는 외부 전원 전압을 이용하여 다수의 동작 전압(Vop)을 발생하도록 구성될 수 있다. 전압 생성부(154)는 제어 로직(153)의 제어에 응답하여 동작할 수 있다.
실시 예로서, 전압 생성부(154)는 외부 전원 전압을 레귤레이팅하여 내부 전원 전압을 생성할 수 있다. 전압 생성부(154)에서 생성된 내부 전원 전압은 메모리 장치(150)의 동작전압으로서 사용될 수 있다.
실시 예로서, 전압 생성부(154)는 외부 전원 전압 또는 내부 전원 전압을 이용하여 다수의 동작 전압(Vop)을 생성할 수 있다. 전압 생성부(154)는 메모리 장치(150)에서 요구되는 다양한 전압을 생성하도록 구성될 수 있다. 예를 들어, 전압 생성부(154)는 다수의 소거 전압, 다수의 프로그램 전압, 다수의 패스 전압, 다수의 선택 읽기 전압, 다수의 비선택 읽기 전압을 생성할 수 있다.
전압 생성부(154)는 다양한 전압 레벨을 갖는 다수의 동작 전압(Vop)을 생성하기 위해서, 내부 전원 전압을 수신하는 다수의 펌핑 커패시터을 포함하고, 제어 로직(153)의 제어에 응답하여 다수의 펌핑 커패시터을 선택적으로 활성화하여 다수의 동작 전압(Vop)을 생성할 수 있다.
생성된 다수의 동작 전압(Vop)은 어드레스 디코더(155)에 의해 메모리 셀 어레이(151)에 공급될 수 있다.
페이지 버퍼 그룹(156)는 다수의 페이지 버퍼(PB1~PBm)를 포함할 수 있다. 다수의 페이지 버퍼(PB1~PBm)는 각각 다수의 비트라인(BL1~BLm)을 통해 메모리 셀 어레이(151)에 연결될 수 있다. 다수의 페이지 버퍼(PB1~PBm)는 제어 로직(153)의 제어에 응답하여 동작할 수 있다.
다수의 페이지 버퍼(PB1~PBm)는 데이터 입출력 회로(157)와 데이터(DATA)를 통신할 수 있다. 프로그램 시에, 다수의 페이지 버퍼(PB1~PBm)은 데이터 입출력 회로(157) 및 데이터 라인(DL)을 통해 저장될 데이터(DATA)를 수신할 수 있다.
프로그램 동작 시, 다수의 페이지 버퍼(PB1~PBm)는 선택된 워드라인에 프로그램 전압이 인가될 때, 저장될 데이터(DATA)를 데이터 입출력 회로(157)를 통해 수신한 데이터(DATA)를 비트라인(BL1~BLm)을 통해 선택된 메모리 셀에 전달할 것이다. 전달된 데이터(DATA)에 따라 선택된 페이지의 메모리 셀은 프로그램될 수 있다. 프로그램 허용 전압(예를 들면, 접지 전압)이 인가되는 비트라인과 연결된 메모리 셀은 상승된 문턱전압을 가질 것이다. 프로그램 금지 전압(예를 들면, 전원 전압)이 인가되는 비트라인과 연결된 메모리 셀의 문턱전압은 유지될 것이다. 프로그램 검증 동작 시에, 다수의 페이지 버퍼(PB1~PBm)은 선택된 메모리 셀로부터 비트라인(BL1~BLm)을 통해 메모리 셀에 저장된 데이터(DATA)를 읽을 수 있다.
리드 동작 시, 페이지 버퍼 그룹(156)은 선택된 페이지의 메모리 셀로부터 비트라인(BL)을 통해 데이터(DATA)를 읽고, 읽어진 데이터(DATA)를 다수의 페이지 버퍼(PB1~PBm)에 저장할 수 있다.
소거 동작 시에, 페이지 버퍼 그룹(156)은 비트라인(BL)을 플로팅(floating) 시킬 수 있다. 실시 예로서, 페이지 버퍼 그룹(156)는 열 선택 회로를 포함할 수 있다.
데이터 입출력 회로(157)는 데이터 라인(DL)을 통해 다수의 페이지 버퍼(PB1~PBm)에 연결될 수 있다. 데이터 입출력 회로(157)는 제어 로직(153)의 제어에 응답하여 동작할 수 있다.
데이터 입출력 회로(157)는 입력되는 데이터(DATA)를 수신하는 다수의 입출력 버퍼(미도시)을 포함할 수 있다. 프로그램 동작 시, 데이터 입출력 회로(157)는 컨트롤러(130, 도 1 참조)로부터 저장될 데이터(DATA)를 수신할 수 있다. 데이터 입출력 회로(157)는 리드 동작 시, 페이지 버퍼 그룹(156)에 포함된 다수의 페이지 버퍼(PB1~PBm)로부터 전달된 데이터(DATA)를 컨트롤러(130, 도 1 참조)로 출력할 수 있다.
센싱 회로(158)는 리드 동작 또는 검증 동작 시, 제어 로직(153)이 생성한 허용 비트(VRYBIT) 신호에 응답하여 기준 전류를 생성하고, 페이지 버퍼 그룹(156)로부터 수신된 센싱 전압(VPB)과 기준 전류에 의해 생성된 기준 전압을 비교하여 패스 신호 또는 페일 신호를 제어 로직(153)으로 출력할 수 있다.
제어 로직(153)은 어드레스 디코더(155), 전압 생성부(154), 페이지 버퍼 그룹(156), 데이터 입출력 회로(157) 및 센싱 회로(158)에 연결될 수 있다. 제어 로직(153)은 메모리 장치(150)의 제반 동작을 제어하도록 구성될 수 있다. 제어 로직(153)은 외부 장치로부터 전달되는 커맨드(CMD)에 응답하여 동작할 수 있다.
제어 로직(153)은 커맨드(CMD) 및 어드레스(ADDR)에 응답하여 여러 가지 신호를 생성하여 주변 회로(152)를 제어할 수 있다. 예를 들면, 제어 로직(153)은 커맨드(CMD) 및 어드레스(ADDR)에 응답하여 동작 신호(OPSIG), 어드레스(RADD), 읽기 및 쓰기 회로 제어신호(PBSIGNALS) 및 허용 비트(VRYBIT)를 생성할 수 있다. 제어 로직(153)은 동작 신호(OPSIG)를 전압 생성부(154)로 출력하고, 어드레스(RADD)를 어드레스 디코더(155)로 출력하고, 읽기 및 쓰기 제어신호(PBSIGNALS)는 페이지 버퍼 그룹(156)로 출력하고, 허용 비트(VRYBIT)는 센싱 회로(158)로 출력할 수 있다. 또한, 제어 로직(153)은 센싱 회로(158)가 출력한 패스 또는 페일 신호(PASS/FAIL)에 응답하여 검증 동작이 패스 또는 페일 되었는지를 판단할 수 있다.
도 3은 도 2에 도시된 메모리 블록을 본 발명의 실시예에 따라 상세하게 설명하기 위한 도면이다.
도 3을 참조하면, 제1 선택 라인과 제2 선택 라인 사이에 서로 평행하게 배열된 다수의 워드 라인들이 연결될 수 있다. 여기서, 제1 선택 라인은 소스 선택 라인(SSL)일 수 있고, 제2 선택 라인은 드레인 선택 라인(DSL)일 수 있다. 보다 구체적으로 설명하면, 메모리 블록(BLKi)은 비트 라인들(BL1~BLm)과 공통 소스 라인(CSL) 사이에 연결된 다수의 메모리 셀 스트링들(strings; ST)을 포함할 수 있다. 비트 라인들(BL1~BLm)은 메모리 셀 스트링들(ST)에 각각 연결될 수 있고, 공통 소스 라인(CSL)은 메모리 셀 스트링들(ST)에 공통으로 연결될 수 있다. 메모리 셀 스트링들(ST)은 서로 동일하게 구성될 수 있으므로, 제1 비트 라인(BL1)에 연결된 메모리 셀 스트링(ST)을 예를 들어 구체적으로 설명하도록 한다.
메모리 셀 스트링(ST)은 공통 소스 라인(CSL)과 제1 비트 라인(BL1) 사이에서 서로 직렬로 연결된 소스 선택 트랜지스터(SST), 다수의 메모리 셀들(MC1~MC16) 및 드레인 선택 트랜지스터(DST)를 포함할 수 있다. 하나의 메모리 셀 스트링(ST)에는 드레인 선택 트랜지스터(DST)가 적어도 하나 이상씩 포함될 수 있으며, 소스 선택 트랜지스터(SST)과 메모리 셀들(MC1~MC16) 또한 도면에 도시된 개수보다 더 많이 포함될 수 있다.
소스 선택 트랜지스터(SST)의 소스(source)는 공통 소스 라인(CSL)에 연결될 수 있고, 드레인 선택 트랜지스터(DST)의 드레인(drain)은 제1 비트 라인(BL1)에 연결될 수 있다. 메모리 셀들(MC1~MC16)은 소스 선택 트랜지스터(SST)와 드레인 선택 트랜지스터(DST) 사이에서 직렬로 연결될 수 있다. 서로 다른 메모리 셀 스트링들(ST)에 포함된 소스 선택 트랜지스터들(SST)의 게이트들은 소스 선택 라인(SSL)에 연결될 수 있고, 드레인 선택 트랜지스터들(DST)의 게이트들은 드레인 선택 라인(DSL)에 연결될 수 있고, 메모리 셀들(MC1~MC16)의 게이트들은 다수의 워드 라인들(WL1~WL16)에 연결될 수 있다. 서로 다른 메모리 셀 스트링들(ST)에 포함된 메모리 셀들 중에서 동일한 워드 라인에 연결된 메모리 셀들의 그룹을 물리 페이지(physical page; PG)라 할 수 있다. 따라서, 메모리 블록(BLKi)에는 워드 라인들(WL1~WL16)의 개수만큼의 물리 페이지들(PG)이 포함될 수 있다.
하나의 메모리 셀은 1비트의 데이터를 저장할 수 있다. 이를 통상적으로 싱글 레벨 셀(single level cell; SLC)라고 부른다. 이 경우 하나의 물리 페이지(PG)는 하나의 논리 페이지(logical page; LPG) 데이터를 저장할 수 있다. 하나의 논리 페이지(LPG) 데이터는 하나의 물리 페이지(PG)에 포함된 셀 개수만큼의 데이터 비트들을 포함할 수 있다.
하나의 메모리 셀은 2 비트 이상의 데이터를 저장할 수 있다. 이 경우 하나의 물리 페이지(PG)는 2 이상의 논리 페이지(logical page; LPG) 데이터를 저장할 수 있다.
도 4는 도 2에 도시된 메모리 장치를 본 발명의 실시예에 따라 상세하게 설명하기 위한 도면이다.
도 4를 참조하면, 메모리 장치(150)는 메모리 셀 어레이(151), 프로그램 및 검증 회로(41), 전압 생성부(42) 및 프로그램 동작 제어부(43)를 포함할 수 있다.
도 2를 참조하여 설명된 주변회로(152)는 프로그램 및 검증 회로(41)를 포함할 수 있다. 프로그램 및 검증 회로(41)는, 도 2의 어드레스 디코더(155)와 센싱 회로(158)와 페이지 버퍼 그룹(156) 및 데이터 입출력 회로(157)를 포함할 수 있다. 도 2를 참조하여 설명된 제어로직(153)은 프로그램 동작 제어부(43)를 포함할 수 있다. 즉, 하기에서 설명되는 프로그램 및 검증 회로(41)의 동작은 주변회로(152)의 동작이고, 프로그램 동작 제어부(43)의 동작은 제어로직(153)의 동작일 수 있다.
메모리 셀 어레이(151)는, 다수의 메모리 셀들을 포함할 수 있다. 메모리 셀 어레이(151)는 다수의 메모리 셀들과 연결된 다수의 워드라인(WLs)을 통해 프로그램 및 검증 회로(41)에 연결될 수 있다. 메모리 셀 어레이(151)는, 다수의 메모리 셀들과 연결된 다수의 비트라인(BLs)을 통해 프로그램 및 검증 회로(41)에 연결될 수 있다. 다수의 워드라인(WLs)과 다수의 비트라인(BLs)은 도 3에서 설명된 바와 같이 교차되어 연결될 수 있다.
전압 생성부(42)는, 전압 생성 신호(V_Gen)에 응답하여 메모리 셀들에 대한 동작에 필요한 동작 전압들을 생성할 수 있다. 동작 전압들 중 워드라인에 인가되는 전압은 워드라인 전압일 수 있다. 전압 생성부(42)는, 생성한 동작 전압들을 프로그램 및 검증 회로(41)에 제공할 수 있다.
프로그램 및 검증 회로(41)는, 전압 생성부(42)로부터 동작 전압들을 제공받을 수 있다. 프로그램 및 검증 회로(41)는, 다수의 비트라인(BLs)에 대한 셋 업 동작과 다수의 워드라인(WLs) 중 프로그램 대상으로 선택된 워드라인에 프로그램 펄스를 인가하는 인가동작을 포함하는 프로그램 동작을 수행할 수 있다. 프로그램 및 검증 회로(41)는, 다수의 워드라인(WLs) 중 프로그램 대상으로 선택된 워드라인에 검증전압을 인가하는 검증동작을 수행할 수 있다. 프로그램 및 검증 회로(41)는, 프로그램 동작과 검증동작을 하나의 프로그램 루프(loop)로서 수행할 수 있다.
프로그램 동작 제어부(43)는, 다수의 워드라인(WLs) 중 프로그램 대상으로 선택된 워드라인에 대한 프로그램이 완료될 때까지 적어도 한 번 이상의 프로그램 루프를 반복적으로 수행하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다.
프로그램 동작 제어부(43)는, 최초 프로그램 루프에 포함된 프로그램 동작 중 프로그램 펄스 인가동작의 제1구간에서 프로그램 선택 워드라인에 제1프로그램 펄스를 인가하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다. 프로그램 동작 제어부(43)는, 최초 프로그램 루프에 포함된 프로그램 동작 중 프로그램 펄스 인가동작의 제2구간에서 프로그램 선택 워드라인에 제2프로그램 펄스를 인가하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다. 프로그램 동작 제어부(43)는, 최초 프로그램 루프에 포함된 프로그램 동작 중 비트라인 셋 업 동작에서 다수의 비트라인(BLs) 중 제1비트라인 그룹을 제1전압레벨로 설정하고 제2비트라인 그룹을 제1전압레벨보다 낮은 제2전압레벨로 설정한 뒤, 최초 프로그램 루프에 포함된 프로그램 동작 중 프로그램 펄스 인가동작의 제1구간까지 유지하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다. 즉, 프로그램 동작 제어부(43)는, 최초 프로그램 루프에 포함된 프로그램 동작 중 비트라인 셋 업 동작의 시작시점부터 프로그램 펄스 인가동작의 제1구간까지 다수의 비트라인(BLs) 중 제1비트라인 그룹을 제1전압레벨로 설정하고 제2비트라인 그룹을 제1전압레벨보다 낮은 제2전압레벨로 설정하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다. 프로그램 동작 제어부(43)는, 최초 프로그램 루프에 포함된 프로그램 동작 중 프로그램 펄스 인가동작의 제2구간에서 다수의 비트라인(BLs) 중 제1 및 제2비트라인 그룹을 제2전압레벨로 재설정하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다.
프로그램 동작 제어부(43)는, 최초 프로그램 루프 이후 반복될 수 있는 나머지 프로그램 루프에 포함된 프로그램 동작에서 프로그램 선택 워드라인에 제3프로그램 펄스를 ISPP(Increment Step Pulse Program)방식으로 인가하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다.
도 5 및 도 6은 본 발명의 제1 실시 예에 따른 프로그램 동작을 설명하기 위한 도면이다.
도 4 및 도 5를 함께 참조하면, 프로그램 동작 제어부(43)는, 다수의 워드라인(WLs) 중 프로그램 대상으로 선택된 워드라인에 대한 프로그램이 완료될 때까지 N번의 프로그램 루프(PL1, PL2, PL3, … , PLN, N은 2이상의 자연수임)를 반복적으로 수행하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다.
구체적으로, N번의 프로그램 루프(PL1, PL2, PL3, … , PLN) 각각은, 프로그램 동작(PGM1, PGM2, PGM3, … , PGMN)과 검증동작(VARIFY1, VARIFY2, VARIFY3, … , VARIFYN)을 포함할 수 있다. N번의 프로그램 루프(PL1, PL2, PL3, … , PLN) 각각에 포함된 프로그램 동작(PGM1, PGM2, PGM3, … , PGMN)은, 비트라인 셋 업 동작(SET UP1, SET UP2, SET UP3, … , SET UPN) 및 프로그램 펄스 인가동작(SUPPLY1, SUPPLY2, SUPPLY3, … SUPPLYN)을 포함할 수 있다.
여기서, N번의 프로그램 루프(PL1, PL2, PL3, … , PLN) 각각에 포함된 프로그램 동작(PGM1, PGM2, PGM3, … , PGMN)은, 프로그램 선택 워드라인에 연결된 프로그램 대상 메모리 셀에 저장될 데이터에 따라 프로그램 대상 메모리 셀의 문턱전압을 목표 프로그램 상태에 대응하는 목표문턱전압으로 상승시키는 동작일 수 있다. 실시예에 따라, 도 11을 참조하면, 메모리 셀이 트리플 레벨 셀(TLC)라고 가정할 때, 프로그램 대상 메모리 셀에 저장된 데이터에 따라 프로그램 대상 메모리 셀의 문턱전압은, 총 8종류의 프로그램 상태(E, P1, P2, P3, P4, P5, P6, P7)를 목표로 할 수 있다. 프로그램 루프(PL1, PL2, PL3, … , PLN)가 시작되기 전에는 프로그램 대상 메모리 셀이 모두 소거상태(E)이며, 프로그램 대상 메모리 셀 각각이 목표로 하는 프로그램 상태가 될 때까지 프로그램 루프(PL1, PL2, PL3, … , PLN)가 반복될 수 있다. 예컨대, P7프로그램 상태를 목표로 하는 메모리 셀의 경우, 문턱전압레벨이 상대적으로 크게 상승해야 하므로, 프로그램 루프(PL1, PL2, PL3, … , PLN)의 반복횟수가 상대적으로 많아질 수 있다. 반면, P1프로그램 상태를 목표로 하는 메모리 셀의 경우, 문턱전압레벨이 상대적으로 조금 상승해도 되므로, 프로그램 루프(PL1, PL2, PL3, … , PLN)의 반복횟수가 상대적으로 적어질 수 있다.
또한, N번의 프로그램 루프(PL1, PL2, PL3, … , PLN) 각각에 포함된 검증동작(VARIFY1, VARIFY2, VARIFY3, … , VARIFYN)은, 프로그램 대상 메모리 셀에 대한 프로그램 동작(PGM1, PGM2, PGM3, … , PGMN)이 재대로 수행되었는지 검증하는 동작일 수 있다. 즉, 검증동작(VARIFY1, VARIFY2, VARIFY3, … , VARIFYN)은, 프로그램 동작(PGM1, PGM2, PGM3, … , PGMN)이 수행된 메모리 셀의 문턱전압이 프로그램 동작의 목표 프로그램 상태에 대응되는 목표문턱전압에 도달하였는지 체크하는 동작일 수 있다. 실시예에 따라, 도 11을 참조하면, 메모리 셀이 트리플 레벨 셀(TLC)라고 가정할 때, P4프로그램 상태를 목표로 하는 메모리 셀의 경우, 검증동작을 통해 문턱전압레벨이 P1 내지 P3프로그램 상태에 있는 것으로 확인되면 프로그램 루프를 더 반복해야 하지만, 검증동작을 통해 문턱전압레벨이 P4프로그램 상태에 있는 것으로 확인되면 더 이상 프로그램 루프를 반복하지 않을 수 있다.
한편, 본 발명에서는 N번의 프로그램 루프(PL1, PL2, PL3, … , PLN) 중 첫 번째로 수행되는 최초 프로그램 루프(PL1)와, 나머지 프로그램 루프(PL2, PL3, … , PLN)의 동작이 완전히 다른 형태로 구분될 수 있다.
즉, 본 발명에서 N번의 프로그램 루프(PL1, PL2, PL3, … , PLN) 중 최초 프로그램 루프(PL1)에 포함된 프로그램 동작(PGM1)에 포함된 프로그램 펄스 인가동작(SUPPLY1)은, 제1구간(SEC1) 및 제2구간(SEC2)으로 구분될 수 있다. 반면, N번의 프로그램 루프(PL1, PL2, PL3, … , PLN) 중 나머지 프로그램 루프(PL2, PL3, … , PLN)에 포함된 프로그램 동작(PGM2, PGM3, … , PGMN)에 포함된 프로그램 펄스 인가동작(SUPPLY2, SUPPLY3, … SUPPLYN)은, 하나의 구간만 포함하는 형태일 수 있다.
프로그램 동작 제어부(43)는, 최초 프로그램 루프(PL1)에 포함된 프로그램 동작(PGM1) 중 프로그램 펄스 인가동작(SUPPLY1)의 제1구간(SEC1)에서 프로그램 선택 워드라인에 제1프로그램 펄스(PU1)를 인가하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다. 프로그램 동작 제어부(43)는, 최초 프로그램 루프(PL1)에 포함된 프로그램 동작(PGM1) 중 프로그램 펄스 인가동작(SUPPLY1)의 제2구간(SEC2)에서 프로그램 선택 워드라인에 제2프로그램 펄스(PU2)를 인가하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다.
프로그램 동작 제어부(43)는, 최초 프로그램 루프(PL1) 이후 반복되는 나머지 프로그램 루프(PL2, PL3, … , PLN)에 포함된 프로그램 동작(PGM2, PGM3, … , PGMN)에서 프로그램 선택 워드라인에 제3프로그램 펄스(PU3)를 ISPP방식으로 인가하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다. 이때, 제3프로그램 펄스(PU3)는, 도면에서 예시된 것과 같이 프로그램 루프(PL2, PL3, … , PLN)가 반복될 수록 ISPP방식에 따라 그 전압레벨이 증가할 수 있다.
프로그램 동작 제어부(43)는, 제1프로그램 펄스(PU1)의 전압레벨보다 제2프로그램 펄스(PU2)의 전압레벨을 더 낮게 설정하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다.
프로그램 동작 제어부(43)는, 제3프로그램 펄스(PU3)의 전압레벨이 제2프로그램 펄스(PU2)의 전압레벨보다 더 높은 전압레벨을 갖도록 설정하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다. 실시예에 따라, 프로그램 루프(PL2, PL3, … , PLN)의 반복에 따라 전압레벨이 증가하는 제3프로그램 펄스(PU3) 중 가장 작은 펄스의 전압레벨도 제2프로그램 펄스(PU2)의 전압레벨보다 높은 상태로 설정될 수 있다.
프로그램 동작 제어부(43)는, 제3프로그램 펄스(PU3) 중 적어도 하나의 펄스를 제1프로그램 펄스(PU1)의 전압레벨보다 낮은 전압레벨로 설정하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다. 실시예에 따라, 두 번째 프로그램 루프(PL2)에 대응하는 제3프로그램 펄스(PU3)의 전압레벨은 제1프로그램 펄스(PU1)의 전압레벨보다 낮고, 세 번째 프로그램 루프(PL3)에 대응하는 제3프로그램 펄스(PU3)의 전압레벨은 제1프로그램 펄스(PU1)의 전압레벨과 같도록 설정될 수 있다.
프로그램 동작 제어부(43)는, 최초 프로그램 루프(PL1)에 포함된 프로그램 동작(PGM1) 중 비트라인 셋 업 동작(SET UP1)에서 다수의 비트라인(BLs)의 전압레벨을 제1타입(TYPE1)으로 설정한 뒤, 최초 프로그램 루프(PL1)에 포함된 프로그램 동작(PGM1) 중 프로그램 펄스 인가동작(SUPPLY1)의 제1구간(SEC1)까지 유지하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다. 즉, 프로그램 동작 제어부(43)는, 최초 프로그램 루프(PL1)에 포함된 프로그램 동작(PGM1) 중 비트라인 셋 업 동작(SET UP1)의 시작시점부터 프로그램 펄스 인가동작(SUPPLY1)의 제1구간(SEC1)까지 다수의 비트라인(BLs)의 전압레벨을 제1타입(TYPE1)으로 설정하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다.
프로그램 동작 제어부(43)는, 최초 프로그램 루프(PL1)에 포함된 프로그램 동작(PGM1) 중 프로그램 펄스 인가동작(SUPPLY1)의 제2구간(SEC2)에서 다수의 비트라인(BLs)의 전압레벨을 제2타입(TYPE2)으로 재설정하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다.
프로그램 동작 제어부(43)는, 나머지 프로그램 루프(PL2, PL3, … , PLN)에 포함된 프로그램 동작(PGM2, PGM3, … , PGMN) 중 비트라인 셋 업 동작(SET UP2, SET UP3, … , SET UPN)에서 다수의 비트라인(BLs)의 전압레벨을 제3타입(TYPE3)으로 설정한 뒤, 나머지 프로그램 루프(PL2, PL3, … , PLN)에 포함된 프로그램 동작(PGM2, PGM3, … , PGMN) 중 프로그램 펄스 인가동작(SUPPLY2, SUPPLY3, … SUPPLYN)까지 유지하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다. 즉, 프로그램 동작 제어부(43)는, 나머지 프로그램 루프(PL2, PL3, … , PLN)에 포함된 프로그램 동작(PGM2, PGM3, … , PGMN) 중 비트라인 셋 업 동작(SET UP2, SET UP3, … , SET UPN)의 시작시점부터 프로그램 펄스 인가동작(SUPPLY2, SUPPLY3, … SUPPLYN)까지 다수의 비트라인(BLs)의 전압레벨을 제3타입(TYPE3)으로 설정하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다.
여기서, 제1타입(TYPE1)은, 다수의 비트라인(BLs) 중 제1비트라인 그룹을 제1전압레벨로 설정하고 제2비트라인 그룹을 제1전압레벨보다 낮은 제2전압레벨로 설정하는 것을 의미할 수 있다.
그리고, 제2타입(TYPE2)은, 다수의 비트라인(BLs) 중 제1 및 제2비트라인 그룹을 제2전압레벨로 설정하는 것을 의미할 수 있다.
실시예에 따라, 제1 및 제2비트라인 그룹은, 다수의 비트라인(BL) 중 프로그램 대상 메모리 셀이 연결된 비트라인을 의미할 수 있다. 또한, 제1비트라인 그룹은, 프로그램 대상 메모리 셀 중 제1문턱전압레벨을 갖는 것을 목표로 하는 메모리 셀과 연결된 비트라인을 의미할 수 있다. 또한, 제2비트라인 그룹은, 프로그램 대상 메모리 셀 중 제2문턱전압레벨을 갖는 것을 목표로 하는 메모리 셀과 연결된 비트라인을 의미할 수 있다. 실시예에 따라, 도 11을 참조하면, 메모리 셀이 트리플 레벨 셀(TLC)라고 가정할 때, 문턱전압레벨이 P1프로그램 상태에 포함되는 것을 목표로 하는 메모리 셀과 연결된 비트라인을 제1비트라인 그룹으로 구분하고, 문턱전압레벨이 P2 내지 P7프로그램 상태에 포함되는 것을 목표로 하는 메모리 셀과 연결된 비트라인을 제2비트라인 그룹으로 구분할 수 있다. 다른 실시예에 따라, 메모리 셀이 트리플 레벨 셀(TLC)라고 가정할 때, 문턱전압레벨이 P1 내지 P3프로그램 상태에 포함되는 것을 목표로 하는 메모리 셀과 연결된 비트라인을 제1비트라인 그룹으로 구분하고, 문턱전압레벨이 P4 내지 P7프로그램 상태에 포함되는 것을 목표로 하는 메모리 셀과 연결된 비트라인을 제2비트라인 그룹으로 구분할 수 있다.
실시예에 따라, 제1전압레벨은 전원전압(VCORE)레벨을 의미하고, 제2전압레벨은 접지전압(VSS)레벨을 의미할 수 있다.
그리고, 제3타입(TYPE3)은, 다수의 비트라인(BLs) 각각의 전압레벨을 검증동작(VARIFY1, VARIFY2, VARIFY3, … , VARIFYN-1)에 따라 설정하는 것을 의미할 수 있다. 즉, 제3타입(TYPE3)은, 다수의 비트라인(BLs) 중 검증동작(VARIFY1, VARIFY2, VARIFY3, … , VARIFYN)을 통해 프로그램 루프가 더 반복되어야 하는 메모리 셀에 연결된 비트라인은 프로그램 허용레벨에 해당하는 접지전압(VSS)레벨로 설정하고, 프로그램 루프가 반복될 필요가 없는 메모리 셀에 연결된 비트라인의 경우 프로그램 금지레벨에 해당하는 전원전압(VCORE)레벨로 설정하는 경우를 의미할 수 있다.
전술한 설명과 같이 본 발명에서는 N번의 프로그램 루프(PL1, PL2, PL3, … , PLN) 중 첫 번째로 수행되는 최초 프로그램 루프(PL1)와, 나머지 프로그램 루프(PL2, PL3, … , PLN)의 동작이 완전히 다른 형태로 구분하여 수행할 수 있으며, 그 결과, 도 11에 개시된 것과 같이 메모리 셀의 프로그램 상태가 구분될 수 있다.
도 11을 참조하면, 최초 프로그램 루프(PL1)를 수행한 결과, 프로그램 대상 메모리 셀 중 문턱전압레벨이 P1프로그램 상태에 포함되는 것을 목표로 하는 메모리 셀의 문턱전압 레벨의 상승폭은, 문턱전압레벨이 P2 내지 P7프로그램 상태에 포함되는 것을 목표로 하는 메모리 셀의 문턱전압 레벨의 상승폭보다 상대적으로 작을 수 있다. 따라서, 최초 프로그램 루프(PL1)를 수행한 결과, 메모리 셀의 프로그램 상태는, 크게 두 개의 분포를 포함하는 형태가 될 수 있다.
이렇게, 최초 프로그램 루프(PL1)를 수행한 뒤, 나머지 프로그램 루프(PL2, PL3, … , PLN)를 반복하면서, 프로그램 대상 메모리 셀 각각이 목표 문턱전압 레벨을 갖도록 할 수 있다.
도 6을 참조하면, 전술한 도 4 및 도 5에서 설명된 본 발명의 제1 실시 예에 따른 프로그램 동작이 어떤 순서로 수행되는지 알 수 있다.
먼저, 프로그램이 시작되면, 현재 프로그램 루프가 최초 프로그램 루프(PL1)인지 여부를 확인할 수 있다(S60).
S60동작의 확인결과, 최초 프로그램 루프(PL1)인 경우(YES), 프로그램 동작(PGM1) 중 비트라인 셋 업 동작(SET UP1)에서 다수의 비트라인(BLs)을 제1타입(TYPE1)으로 설정할 수 있다(S61). 즉, 다수의 비트라인(BLs) 중 제1비트라인 그룹을 제1전압레벨로 설정하고 제2비트라인 그룹을 제1전압레벨보다 낮은 제2전압레벨로 설정할 수 있다.
S61동작 이후, 프로그램 동작(PGM1) 중 프로그램 펄스 인가동작(SUPPLY1)에 포함된 제1구간(SEC1)에서 프로그램 선택 워드라인에 제1프로그램 펄스(PU1)를 인가할 수 있다(S62).
S62동작 이후, 프로그램 동작(PGM1) 중 프로그램 펄스 인가동작(SUPPLY1)에 포함된 제2구간(SEC2)에서, 다수의 비트라인(BLs)을 제2타입(TYPE2)으로 설정하는 동작(S63)과 프로그램 선택 워드라인에 제2프로그램 펄스(PU2)를 인가하는 동작(S64)을 동시에 수행할 수 있다. 이때, 제2프로그램 펄스(PU2)는, 제1프로그램 펄스(PU1)보다 낮은 전압레벨을 가질 수 있다. 즉, 제2프로그램 펄스(PU2)는, 제1프로그램 펄스(PU1)보다 낮은 전압레벨(SMALLER THAN PU1)을 가질 수 있다.
S63 및 S64동작 이후, 검증동작(VARIFY1)이 수행될 수 있다(S67).
S60동작의 확인결과, 최초 프로그램 루프(PL1)가 아닌 경우(NO), 즉, 나머지 프로그램 루프(PL2, PL3, … , PLN)인 경우, 프로그램 동작(PGM2, PGM3, … , PGMN) 중 비트라인 셋 업 동작(SET UP2, SET UP3, … , SET UPN)에서 다수의 비트라인(BLs)을 제3타입(TYPE3)으로 설정할 수 있다(S65). 즉, 다수의 비트라인(BLs) 각각의 전압레벨을 검증동작(VARIFY1, VARIFY2, VARIFY3, … , VARIFYN-1)에 따라 설정할 수 있다.
S65동작 이후, 프로그램 동작(PGM2, PGM3, … , PGMN) 중 프로그램 펄스 인가동작(SUPPLY2, SUPPLY3, … SUPPLYN)에서 프로그램 선택 워드라인에 제3프로그램 펄스(PU3)를 ISPP방식으로 인가할 수 있다(S66). 이때, 제3프로그램 펄스(PU3)는, 프로그램 루프(PL2, PL3, … , PLN)가 반복될 수록 ISPP방식에 따라 그 전압레벨이 증가할 수 있다. 또한, 제3프로그램 펄스(PU3)의 전압레벨이 제2프로그램 펄스(PU2)의 전압레벨보다 더 높은 전압레벨을 가질 수 있다(BIGGER THAN PU2). 또한, 제3프로그램 펄스(PU3) 중 적어도 하나의 펄스는 제1프로그램 펄스(PU1)의 전압레벨보다 낮은 전압레벨을 가질 수 있다.
S66동작 이후, 검증동작(VARIFY1)이 수행될 수 있다(S67).
S67동작 이후, 프로그램이 완료되었는지 여부를 확인할 수 있다(S68).
S68동작에서 프로그램이 완료된 경우(YES), 프로그램이 종료될 수 있다.
S68동작에서 프로그램이 완료되지 않은 경우(NO). 프로그램 루프를 반복할 수 있다.
도 7 및 도 8은 본 발명의 제2 실시 예에 따른 프로그램 동작을 설명하기 위한 도면이다.
도 4 및 도 7를 함께 참조하면, 도 5 및 도 6에서 설명한 제1 실시 예에서와 같이 본 발명의 제2 실시 예에 따른 프로그램 동작에서도, N번의 프로그램 루프(PL1, PL2, PL3, … , PLN) 중 첫 번째로 수행되는 최초 프로그램 루프(PL1)와, 나머지 프로그램 루프(PL2, PL3, … , PLN)의 동작이 완전히 다른 형태로 구분될 수 있다.
즉, 본 발명에서 N번의 프로그램 루프(PL1, PL2, PL3, … , PLN) 중 최초 프로그램 루프(PL1)에 포함된 프로그램 동작(PGM1)에 포함된 프로그램 펄스 인가동작(SUPPLY1)은, 제1구간(SEC1) 및 제2구간(SEC2)으로 구분될 수 있다. 반면, N번의 프로그램 루프(PL1, PL2, PL3, … , PLN) 중 나머지 프로그램 루프(PL2, PL3, … , PLN)에 포함된 프로그램 동작(PGM2, PGM3, … , PGMN)에 포함된 프로그램 펄스 인가동작(SUPPLY2, SUPPLY3, … SUPPLYN)은, 하나의 구간만 포함하는 형태일 수 있다.
특히, 본 발명의 제2 실시 예에 따른 프로그램 동작에서는, 최초 프로그램 루프(PL1)에 포함된 프로그램 동작(PGM1) 중 프로그램 펄스 인가동작(SUPPLY1)의 길이가, 나머지 프로그램 루프(PL2, PL3, … , PLN)에 포함된 프로그램 동작(PGM2, PGM3, … , PGMN) 중 프로그램 펄스 인가동작(SUPPLY2, SUPPLY3, … SUPPLYN)의 길이보다 상대적으로 더 긴 것을 알 수 있다.
구체적으로, 프로그램 동작 제어부(43)는, 최초 프로그램 루프(PL1)에 포함된 프로그램 동작(PGM1) 중 프로그램 펄스 인가동작(SUPPLY1)의 제1구간(SEC1)에서 프로그램 선택 워드라인에 제1프로그램 펄스(PU1)를 인가하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다. 프로그램 동작 제어부(43)는, 최초 프로그램 루프(PL1)에 포함된 프로그램 동작(PGM1) 중 프로그램 펄스 인가동작(SUPPLY1)의 제2구간(SEC2)에서 프로그램 선택 워드라인에 제2프로그램 펄스(PU2)를 인가하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다. 실시예에 따라, 도면에서와 같이 최초 프로그램 루프(PL1)에 포함된 프로그램 동작(PGM1) 중 프로그램 펄스 인가동작(SUPPLY1)의 제1구간(SEC1)의 길이가 제2구간(SEC2)의 길이보다 긴 상태가 되도록 설정될 수 있다. 다른 실시예에 따라, 도면과 달리 최초 프로그램 루프(PL1)에 포함된 프로그램 동작(PGM1) 중 프로그램 펄스 인가동작(SUPPLY1)의 제1구간(SEC1)의 길이와 제2구간(SEC2)의 길이가 서로 동일한 상태가 되도록 설정될 수 있다.
프로그램 동작 제어부(43)는, 최초 프로그램 루프(PL1) 이후 반복되는 나머지 프로그램 루프(PL2, PL3, … , PLN)에 포함된 프로그램 동작(PGM2, PGM3, … , PGMN)에서 프로그램 선택 워드라인에 제3프로그램 펄스(PU3)를 ISPP방식으로 인가하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다. 이때, 제3프로그램 펄스(PU3)는, 도면에서 예시된 것과 같이 프로그램 루프(PL2, PL3, … , PLN)가 반복될 수록 ISPP방식에 따라 그 전압레벨이 증가할 수 있다.
프로그램 동작 제어부(43)는, 제1프로그램 펄스(PU1)의 전압레벨과 제2프로그램 펄스(PU2)의 전압레벨을 동일하게 설정하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다.
프로그램 동작 제어부(43)는, 제3프로그램 펄스(PU3)의 전압레벨이 제1 및 제2프로그램 펄스(PU1, PU2)의 전압레벨보다 더 높은 전압레벨을 갖도록 설정하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다. 실시예에 따라, 프로그램 루프(PL2, PL3, … , PLN)의 반복에 따라 전압레벨이 증가하는 제3프로그램 펄스(PU3) 중 가장 작은 펄스의 전압레벨도 제1 및 제2프로그램 펄스(PU1, PU2)의 전압레벨보다 높은 상태로 설정될 수 있다.
프로그램 동작 제어부(43)는, 최초 프로그램 루프(PL1)에 포함된 프로그램 동작(PGM1) 중 비트라인 셋 업 동작(SET UP1)에서 다수의 비트라인(BLs)의 전압레벨을 제1타입(TYPE1)으로 설정한 뒤, 최초 프로그램 루프(PL1)에 포함된 프로그램 동작(PGM1) 중 프로그램 펄스 인가동작(SUPPLY1)의 제1구간(SEC1)까지 유지하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다. 즉, 프로그램 동작 제어부(43)는, 최초 프로그램 루프(PL1)에 포함된 프로그램 동작(PGM1) 중 비트라인 셋 업 동작(SET UP1)의 시작시점부터 프로그램 펄스 인가동작(SUPPLY1)의 제1구간(SEC1)까지 다수의 비트라인(BLs)의 전압레벨을 제1타입(TYPE1)으로 설정하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다.
프로그램 동작 제어부(43)는, 최초 프로그램 루프(PL1)에 포함된 프로그램 동작(PGM1) 중 프로그램 펄스 인가동작(SUPPLY1)의 제2구간(SEC2)에서 다수의 비트라인(BLs)의 전압레벨을 제2타입(TYPE2)으로 재설정하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다.
프로그램 동작 제어부(43)는, 나머지 프로그램 루프(PL2, PL3, … , PLN)에 포함된 프로그램 동작(PGM2, PGM3, … , PGMN) 중 비트라인 셋 업 동작(SET UP2, SET UP3, … , SET UPN)에서 다수의 비트라인(BLs)의 전압레벨을 제3타입(TYPE3)으로 설정한 뒤, 나머지 프로그램 루프(PL2, PL3, … , PLN)에 포함된 프로그램 동작(PGM2, PGM3, … , PGMN) 중 프로그램 펄스 인가동작(SUPPLY2, SUPPLY3, … SUPPLYN)까지 유지하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다. 즉, 프로그램 동작 제어부(43)는, 나머지 프로그램 루프(PL2, PL3, … , PLN)에 포함된 프로그램 동작(PGM2, PGM3, … , PGMN) 중 비트라인 셋 업 동작(SET UP2, SET UP3, … , SET UPN)의 시작시점부터 프로그램 펄스 인가동작(SUPPLY2, SUPPLY3, … SUPPLYN)까지 다수의 비트라인(BLs)의 전압레벨을 제3타입(TYPE3)으로 설정하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다.
여기서, 제1타입(TYPE1)은, 다수의 비트라인(BLs) 중 제1비트라인 그룹을 제1전압레벨로 설정하고 제2비트라인 그룹을 제1전압레벨보다 낮은 제2전압레벨로 설정하는 것을 의미할 수 있다.
그리고, 제2타입(TYPE2)은, 다수의 비트라인(BLs) 중 제1 및 제2비트라인 그룹을 제2전압레벨로 설정하는 것을 의미할 수 있다.
실시예에 따라, 제1 및 제2비트라인 그룹은, 다수의 비트라인(BL) 중 프로그램 대상 메모리 셀이 연결된 비트라인을 의미할 수 있다. 또한, 제1비트라인 그룹은, 프로그램 대상 메모리 셀 중 제1문턱전압레벨을 갖는 것을 목표로 하는 메모리 셀과 연결된 비트라인을 의미할 수 있다. 또한, 제2비트라인 그룹은, 프로그램 대상 메모리 셀 중 제2문턱전압레벨을 갖는 것을 목표로 하는 메모리 셀과 연결된 비트라인을 의미할 수 있다. 실시예에 따라, 도 11을 참조하면, 메모리 셀이 트리플 레벨 셀(TLC)라고 가정할 때, 문턱전압레벨이 P1프로그램 상태에 포함되는 것을 목표로 하는 메모리 셀과 연결된 비트라인을 제1비트라인 그룹으로 구분하고, 문턱전압레벨이 P2 내지 P7프로그램 상태에 포함되는 것을 목표로 하는 메모리 셀과 연결된 비트라인을 제2비트라인 그룹으로 구분할 수 있다. 다른 실시예에 따라, 메모리 셀이 트리플 레벨 셀(TLC)라고 가정할 때, 문턱전압레벨이 P1 내지 P3프로그램 상태에 포함되는 것을 목표로 하는 메모리 셀과 연결된 비트라인을 제1비트라인 그룹으로 구분하고, 문턱전압레벨이 P4 내지 P7프로그램 상태에 포함되는 것을 목표로 하는 메모리 셀과 연결된 비트라인을 제2비트라인 그룹으로 구분할 수 있다.
실시예에 따라, 제1전압레벨은 전원전압(VCORE)레벨을 의미하고, 제2전압레벨은 접지전압(VSS)레벨을 의미할 수 있다.
그리고, 제3타입(TYPE3)은, 다수의 비트라인(BLs) 각각의 전압레벨을 검증동작(VARIFY1, VARIFY2, VARIFY3, … , VARIFYN-1)에 따라 설정하는 것을 의미할 수 있다. 즉, 제3타입(TYPE3)은, 다수의 비트라인(BLs) 중 검증동작(VARIFY1, VARIFY2, VARIFY3, … , VARIFYN)을 통해 프로그램 루프가 더 반복되어야 하는 메모리 셀에 연결된 비트라인은 프로그램 허용레벨에 해당하는 접지전압(VSS)레벨로 설정하고, 프로그램 루프가 반복될 필요가 없는 메모리 셀에 연결된 비트라인의 경우 프로그램 금지레벨에 해당하는 전원전압(VCORE)레벨로 설정하는 경우를 의미할 수 있다.
전술한 설명과 같이 본 발명에서는 N번의 프로그램 루프(PL1, PL2, PL3, … , PLN) 중 첫 번째로 수행되는 최초 프로그램 루프(PL1)와, 나머지 프로그램 루프(PL2, PL3, … , PLN)의 동작이 완전히 다른 형태로 구분하여 수행할 수 있으며, 그 결과, 도 11에 개시된 것과 같이 메모리 셀의 프로그램 상태가 구분될 수 있다.
도 11을 참조하면, 최초 프로그램 루프(PL1)를 수행한 결과, 프로그램 대상 메모리 셀 중 문턱전압레벨이 P1프로그램 상태에 포함되는 것을 목표로 하는 메모리 셀의 문턱전압 레벨의 상승폭은, 문턱전압레벨이 P2 내지 P7프로그램 상태에 포함되는 것을 목표로 하는 메모리 셀의 문턱전압 레벨의 상승폭보다 상대적으로 작을 수 있다. 따라서, 최초 프로그램 루프(PL1)를 수행한 결과, 메모리 셀의 프로그램 상태는, 크게 두 개의 분포를 포함하는 형태가 될 수 있다.
이렇게, 최초 프로그램 루프(PL1)를 수행한 뒤, 나머지 프로그램 루프(PL2, PL3, … , PLN)를 반복하면서, 프로그램 대상 메모리 셀 각각이 목표 문턱전압 레벨을 갖도록 할 수 있다.
도 8을 참조하면, 전술한 도 4 및 도 7에서 설명된 본 발명의 제2 실시 예에 따른 프로그램 동작이 어떤 순서로 수행되는지 알 수 있다.
먼저, 프로그램이 시작되면, 현재 프로그램 루프가 최초 프로그램 루프(PL1)인지 여부를 확인할 수 있다(S80).
S80동작의 확인결과, 최초 프로그램 루프(PL1)인 경우(YES), 프로그램 동작(PGM1)의 길이를 확장할 수 있다(S89). 이때, 최초 프로그램 루프(PL1)에 포함된 프로그램 동작(PGM1)의 길이는, 나머지 프로그램 루프(PL2, PL3, … , PLN)에 포함된 프로그램 동작(PGM2, PGM3, … , PGMN)의 길이보다 더 긴 상태(LONGER THAN PGM<2:N>)가 되도록 설정될 수 있다.
S89동작 이후, 프로그램 동작(PGM1) 중 비트라인 셋 업 동작(SET UP1)에서 다수의 비트라인(BLs)을 제1타입(TYPE1)으로 설정할 수 있다(S81). 즉, 다수의 비트라인(BLs) 중 제1비트라인 그룹을 제1전압레벨로 설정하고 제2비트라인 그룹을 제1전압레벨보다 낮은 제2전압레벨로 설정할 수 있다.
S81동작 이후, 프로그램 동작(PGM1) 중 프로그램 펄스 인가동작(SUPPLY1)에 포함된 제1구간(SEC1)에서 프로그램 선택 워드라인에 제1프로그램 펄스(PU1)를 인가할 수 있다(S82).
S82동작 이후, 프로그램 동작(PGM1) 중 프로그램 펄스 인가동작(SUPPLY1)에 포함된 제2구간(SEC2)에서, 다수의 비트라인(BLs)을 제2타입(TYPE2)으로 설정하는 동작(S83)과 프로그램 선택 워드라인에 제2프로그램 펄스(PU2)를 인가하는 동작(S84)을 동시에 수행할 수 있다. 이때, 제2프로그램 펄스(PU2)는, 제1프로그램 펄스(PU1)과 동일한 전압레벨을 가질 수 있다. 즉, 전술한 제1실시예에서 설정된 제1프로그램 펄스(PU1)가 상대적으로 높은 전압레벨(HIGH LEVEL, 도 6참조)을 갖는 것에 비해 제2실시예에서 설정된 제1프로그램 펄스(PU1)는 상대적으로 낮은 전압레벨(SMALL LEVEL)을 가질 수 있다. 또한, 제2실시예에서 설정된 제2프로그램 펄스(PU2)는, 제1프로그램 펄스(PU1)와 같은 전압레벨(SAME LEVEL AS PU1)을 가질 수 있다.
S83 및 S84동작 이후, 검증동작(VARIFY1)이 수행될 수 있다(S87).
S80동작의 확인결과, 최초 프로그램 루프(PL1)가 아닌 경우(NO), 즉, 나머지 프로그램 루프(PL2, PL3, … , PLN)인 경우, 프로그램 동작(PGM2, PGM3, … , PGMN) 중 비트라인 셋 업 동작(SET UP2, SET UP3, … , SET UPN)에서 다수의 비트라인(BLs)을 제3타입(TYPE3)으로 설정할 수 있다(S85). 즉, 다수의 비트라인(BLs) 각각의 전압레벨을 검증동작(VARIFY1, VARIFY2, VARIFY3, … , VARIFYN-1)에 따라 설정할 수 있다.
S85동작 이후, 프로그램 동작(PGM2, PGM3, … , PGMN) 중 프로그램 펄스 인가동작(SUPPLY2, SUPPLY3, … SUPPLYN)에서 프로그램 선택 워드라인에 제3프로그램 펄스(PU3)를 ISPP방식으로 인가할 수 있다(S86). 이때, 제3프로그램 펄스(PU3)는, 프로그램 루프(PL2, PL3, … , PLN)가 반복될 수록 ISPP방식에 따라 그 전압레벨이 증가할 수 있다. 또한, 제3프로그램 펄스(PU3)의 전압레벨이 제1 및 제2프로그램 펄스(PU1, PU2)의 전압레벨보다 더 높은 전압레벨을 가질 수 있다(BIGGER THAN PU1&2).
S86동작 이후, 검증동작(VARIFY1)이 수행될 수 있다(S87).
S87동작 이후, 프로그램이 완료되었는지 여부를 확인할 수 있다(S88).
S88동작에서 프로그램이 완료된 경우(YES), 프로그램이 종료될 수 있다.
S88동작에서 프로그램이 완료되지 않은 경우(NO). 프로그램 루프를 반복할 수 있다.
도 9 및 도 10은 본 발명의 제3 실시 예에 따른 프로그램 동작을 설명하기 위한 도면이다.
도 4 및 도 9를 함께 참조하면, 도 5 및 도 6에서 설명한 제1 실시 예 및 도 7 및 도 8에서 설명된 제2 실시 예에서와 같이 본 발명의 제3 실시 예에 따른 프로그램 동작에서도, N번의 프로그램 루프(PL1, PL2, PL3, … , PLN) 중 첫 번째로 수행되는 최초 프로그램 루프(PL1)와, 나머지 프로그램 루프(PL2, PL3, … , PLN)의 동작이 완전히 다른 형태로 구분될 수 있다.
먼저, 본 발명에서 N번의 프로그램 루프(PL1, PL2, PL3, … , PLN) 중 최초 프로그램 루프(PL1)에 포함된 프로그램 동작(PGM1)에 포함된 프로그램 펄스 인가동작(SUPPLY1)은, 하나의 구간만 포함하는 형태일 수 있다. 즉, 본 발명의 제3실시 예에서는, 제1 실시 예 및 제2 실시 예와 다르게 최초 프로그램 루프(PL1)에 포함된 프로그램 동작(PGM1)에 포함된 프로그램 펄스 인가동작(SUPPLY1)도, 나머지 프로그램 루프(PL2, PL3, … , PLN)에 포함된 프로그램 동작(PGM2, PGM3, … , PGMN)에 포함된 프로그램 펄스 인가동작(SUPPLY2, SUPPLY3, … SUPPLYN)과 마찬가지로 하나의 구간만 포함하는 형태일 수 있다.
차이점은, 프로그램 동작 제어부(43)는, 최초 프로그램 루프(PL1)에 포함된 프로그램 동작(PGM1)에 포함된 프로그램 펄스 인가동작(SUPPLY1)에서 프로그램 선택 워드라인에 제4프로그램 펄스(PU4)를 인가하도록 프로그램 및 검증 회로(41)의 동작을 제어한다는 점이 있을 수 있다. 이때, 제4프로그램 펄스(PU4)의 전압레벨은, 제1 실시 예에서 예시된 제1프로그램 펄스(PU1)보다 작고 제2프로그램 펄스(PU2)보다 클 수 있다. 물론, 제4프로그램 펄스(PU4)의 전압레벨은, 최초 프로그램 루프(PL1) 이후 반복되는 나머지 프로그램 루프(PL2, PL3, … , PLN)에 포함된 프로그램 동작(PGM2, PGM3, … , PGMN)에서 프로그램 선택 워드라인에 제3프로그램 펄스(PU3)보다 작을 수 있다.
또 다른 차이점은, 프로그램 동작 제어부(43)는, 최초 프로그램 루프(PL1)에 포함된 프로그램 동작(PGM1) 중 비트라인 셋 업 동작(SET UP1)에서 다수의 비트라인(BLs)의 전압레벨을 제4타입(TYPE4)으로 설정한 뒤, 최초 프로그램 루프(PL1)에 포함된 프로그램 동작(PGM1) 중 프로그램 펄스 인가동작(SUPPLY1)까지 유지하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다. 즉, 프로그램 동작 제어부(43)는, 최초 프로그램 루프(PL1)에 포함된 프로그램 동작(PGM1) 중 비트라인 셋 업 동작(SET UP1)의 시작시점부터 프로그램 펄스 인가동작(SUPPLY1)까지 다수의 비트라인(BLs)의 전압레벨을 제4타입(TYPE4)으로 설정하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다.
프로그램 동작 제어부(43)는, 나머지 프로그램 루프(PL2, PL3, … , PLN)에 포함된 프로그램 동작(PGM2, PGM3, … , PGMN) 중 비트라인 셋 업 동작(SET UP2, SET UP3, … , SET UPN)에서 다수의 비트라인(BLs)의 전압레벨을 제3타입(TYPE3)으로 설정한 뒤, 나머지 프로그램 루프(PL2, PL3, … , PLN)에 포함된 프로그램 동작(PGM2, PGM3, … , PGMN) 중 프로그램 펄스 인가동작(SUPPLY2, SUPPLY3, … SUPPLYN)까지 유지하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다. 즉, 프로그램 동작 제어부(43)는, 나머지 프로그램 루프(PL2, PL3, … , PLN)에 포함된 프로그램 동작(PGM2, PGM3, … , PGMN) 중 비트라인 셋 업 동작(SET UP2, SET UP3, … , SET UPN)의 시작시점부터 프로그램 펄스 인가동작(SUPPLY2, SUPPLY3, … SUPPLYN)까지 다수의 비트라인(BLs)의 전압레벨을 제3타입(TYPE3)으로 설정하도록 프로그램 및 검증 회로(41)의 동작을 제어할 수 있다.
여기서, 제4타입(TYPE4)은, 제1 실시 예 및 제2 실시 예에서 설명했던 제1타입(TYPE1)과 동일하게 다수의 비트라인(BLs) 중 제1비트라인 그룹을 제1전압레벨로 설정하고 제2비트라인 그룹을 제1전압레벨보다 낮은 제2전압레벨로 설정하는 것을 의미할 수 있다. 다만, 제1 실시 예 및 제2 실시 예에서 설명했던 제1타입(TYPE1)에서 제1전압레벨은 전원전압(VCORE)레벨인 것을 예시한 반면, 제3 실시 예에서 제안하는 제4타입(TYPE4)에서 제1전압레벨은, 전원전압(VCORE)보다 낮고 접지전압(VSS)보다 높은 기준전압레벨을 의미할 수 있다. 물론, 제4타입(TYPE4)에서도 제2전압레벨은 접지전압(VSS)레벨을 의미할 수 있다.
참고로, 제1 실시 예 및 제2 실시 예에서 설명했던 제1타입(TYPE1)에서 제1전압레벨은 전원전압(VCORE)레벨인 것을 가정한 바 있지만, 제1전압레벨이 전원전압(VCORE)보다 낮고 접지전압(VSS)보다 높은 기준전압레벨을 갖는 것도 얼마든지 가능하다. 즉, 설계자의 선택에 따라 제1타입(TYPE1)과 제4타입(TYPE4)이 동일하게 설정되는 것도 얼마든지 가능할 수 있다.
실시예에 따라, 제1 및 제2비트라인 그룹은, 다수의 비트라인(BL) 중 프로그램 대상 메모리 셀이 연결된 비트라인을 의미할 수 있다. 또한, 제1비트라인 그룹은, 프로그램 대상 메모리 셀 중 제1문턱전압레벨을 갖는 것을 목표로 하는 메모리 셀과 연결된 비트라인을 의미할 수 있다. 또한, 제2비트라인 그룹은, 프로그램 대상 메모리 셀 중 제2문턱전압레벨을 갖는 것을 목표로 하는 메모리 셀과 연결된 비트라인을 의미할 수 있다. 실시예에 따라, 도 11을 참조하면, 메모리 셀이 트리플 레벨 셀(TLC)라고 가정할 때, 문턱전압레벨이 P1프로그램 상태에 포함되는 것을 목표로 하는 메모리 셀과 연결된 비트라인을 제1비트라인 그룹으로 구분하고, 문턱전압레벨이 P2 내지 P7프로그램 상태에 포함되는 것을 목표로 하는 메모리 셀과 연결된 비트라인을 제2비트라인 그룹으로 구분할 수 있다. 다른 실시예에 따라, 메모리 셀이 트리플 레벨 셀(TLC)라고 가정할 때, 문턱전압레벨이 P1 내지 P3프로그램 상태에 포함되는 것을 목표로 하는 메모리 셀과 연결된 비트라인을 제1비트라인 그룹으로 구분하고, 문턱전압레벨이 P4 내지 P7프로그램 상태에 포함되는 것을 목표로 하는 메모리 셀과 연결된 비트라인을 제2비트라인 그룹으로 구분할 수 있다.
그리고, 제3타입(TYPE3)은, 다수의 비트라인(BLs) 각각의 전압레벨을 검증동작(VARIFY1, VARIFY2, VARIFY3, … , VARIFYN-1)에 따라 설정하는 것을 의미할 수 있다. 즉, 제3타입(TYPE3)은, 다수의 비트라인(BLs) 중 검증동작(VARIFY1, VARIFY2, VARIFY3, … , VARIFYN)을 통해 프로그램 루프가 더 반복되어야 하는 메모리 셀에 연결된 비트라인은 프로그램 허용레벨에 해당하는 접지전압(VSS)레벨로 설정하고, 프로그램 루프가 반복될 필요가 없는 메모리 셀에 연결된 비트라인의 경우 프로그램 금지레벨에 해당하는 전원전압(VCORE)레벨로 설정하는 경우를 의미할 수 있다.
전술한 설명과 같이 본 발명에서는 N번의 프로그램 루프(PL1, PL2, PL3, … , PLN) 중 첫 번째로 수행되는 최초 프로그램 루프(PL1)와, 나머지 프로그램 루프(PL2, PL3, … , PLN)의 동작이 완전히 다른 형태로 구분하여 수행할 수 있으며, 그 결과, 도 11에 개시된 것과 같이 메모리 셀의 프로그램 상태가 구분될 수 있다.
도 11을 참조하면, 최초 프로그램 루프(PL1)를 수행한 결과, 프로그램 대상 메모리 셀 중 문턱전압레벨이 P1프로그램 상태에 포함되는 것을 목표로 하는 메모리 셀의 문턱전압 레벨의 상승폭은, 문턱전압레벨이 P2 내지 P7프로그램 상태에 포함되는 것을 목표로 하는 메모리 셀의 문턱전압 레벨의 상승폭보다 상대적으로 작을 수 있다. 따라서, 최초 프로그램 루프(PL1)를 수행한 결과, 메모리 셀의 프로그램 상태는, 크게 두 개의 분포를 포함하는 형태가 될 수 있다.
이렇게, 최초 프로그램 루프(PL1)를 수행한 뒤, 나머지 프로그램 루프(PL2, PL3, … , PLN)를 반복하면서, 프로그램 대상 메모리 셀 각각이 목표 문턱전압 레벨을 갖도록 할 수 있다.
도 10을 참조하면, 전술한 도 4 및 도 9에서 설명된 본 발명의 제3 실시 예에 따른 프로그램 동작이 어떤 순서로 수행되는지 알 수 있다.
먼저, 프로그램이 시작되면, 현재 프로그램 루프가 최초 프로그램 루프(PL1)인지 여부를 확인할 수 있다(S100).
S100동작의 확인결과, 최초 프로그램 루프(PL1)인 경우(YES), 프로그램 동작(PGM1) 중 비트라인 셋 업 동작(SET UP1)에서 다수의 비트라인(BLs)을 제4타입(TYPE4)으로 설정할 수 있다(S101). 즉, 다수의 비트라인(BLs) 중 제1비트라인 그룹을 제1전압레벨로 설정하고 제2비트라인 그룹을 제1전압레벨보다 낮은 제2전압레벨로 설정할 수 있다. 특히, 제1비트라인 그룹을 전원전압(VCORE)보다 낮고 접지전압(VSS)보다 높은 기준전압레벨로 설정하고, 제2비트라인 그룹을 접지전압(VSS)레벨로 설정할 수 있다.
S101동작 이후, 프로그램 동작(PGM1) 중 프로그램 펄스 인가동작(SUPPLY1)에 포함된 제1구간(SEC1)에서 프로그램 선택 워드라인에 제4프로그램 펄스(PU4)를 인가할 수 있다(S102). 이때, 제4프로그램 펄스(PU4)는, 전술한 제1실시예에서 설정된 제1프로그램 펄스(PU1)보다 낮고 제2프로그램 펄스(PU2)보다 높은 전압레벨(MIDDLE LEVEL)을 가질 수 있다.
S102동작 이후, 검증동작(VARIFY1)이 수행될 수 있다(S107).
S100동작의 확인결과, 최초 프로그램 루프(PL1)가 아닌 경우(NO), 즉, 나머지 프로그램 루프(PL2, PL3, … , PLN)인 경우, 프로그램 동작(PGM2, PGM3, … , PGMN) 중 비트라인 셋 업 동작(SET UP2, SET UP3, … , SET UPN)에서 다수의 비트라인(BLs)을 제3타입(TYPE3)으로 설정할 수 있다(S105). 즉, 다수의 비트라인(BLs) 각각의 전압레벨을 검증동작(VARIFY1, VARIFY2, VARIFY3, … , VARIFYN-1)에 따라 설정할 수 있다.
S105동작 이후, 프로그램 동작(PGM2, PGM3, … , PGMN) 중 프로그램 펄스 인가동작(SUPPLY2, SUPPLY3, … SUPPLYN)에서 프로그램 선택 워드라인에 제3프로그램 펄스(PU3)를 ISPP방식으로 인가할 수 있다(S106). 이때, 제3프로그램 펄스(PU3)는, 프로그램 루프(PL2, PL3, … , PLN)가 반복될 수록 ISPP방식에 따라 그 전압레벨이 증가할 수 있다. 또한, 제3프로그램 펄스(PU3)의 전압레벨이 제4프로그램 펄스(PU4)의 전압레벨보다 더 높은 전압레벨을 가질 수 있다(BIGGER THAN PU4).
S106동작 이후, 검증동작(VARIFY1)이 수행될 수 있다(S107).
S107동작 이후, 프로그램이 완료되었는지 여부를 확인할 수 있다(S108).
S108동작에서 프로그램이 완료된 경우(YES), 프로그램이 종료될 수 있다.
S108동작에서 프로그램이 완료되지 않은 경우(NO). 프로그램 루프를 반복할 수 있다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속한 기술분야에서 통상의 지식을 가진자에게 있어 명백할 것이다.
예컨대, 전술한 실시예에서 예시한 논리 게이트 및 트랜지스터는 입력되는 신호의 극성에 따라 그 위치 및 종류가 다르게 구현되어야 할 것이다.
Claims (16)
- 다수의 워드라인과 다수의 비트라인 사이에 접속된 다수의 메모리 셀;
상기 다수의 비트라인에 대한 셋 업 동작과 선택 워드라인에 프로그램 펄스를 인가하는 인가동작을 포함하는 프로그램 동작, 및 상기 선택 워드라인에 검증전압을 인가하는 검증동작을 포함하는 프로그램 루프(loop)를 수행하는 주변회로; 및
상기 선택 워드라인에 대한 프로그램이 완료될 때까지 상기 프로그램 루프를 반복적으로 수행하도록 상기 주변회로를 제어하며, 최초 프로그램 루프에 포함된, 상기 인가동작의 제1구간에서 상기 선택 워드라인에 제1프로그램 펄스를 인가하고 제2구간에서 제2프로그램 펄스를 인가하며, 상기 셋 업 동작부터 상기 인가동작의 제1구간까지 제1비트라인 그룹을 제1전압레벨로 설정하고 제2비트라인 그룹을 상기 제1전압레벨보다 낮은 제2전압레벨로 설정하며 상기 인가동작의 제2구간에서 상기 제1 및 제2 비트라인 그룹을 상기 제2전압레벨로 재설정하도록 상기 주변회로를 제어하는 제어로직
을 포함하는 비휘발성 메모리 장치.
- 제1항에 있어서,
상기 제어로직은,
상기 제1프로그램 펄스의 전압레벨보다 상기 제2프로그램 펄스의 전압레벨을 더 낮게 설정하도록 상기 주변회로를 제어하는 비휘발성 메모리 장치.
- 제2항에 있어서,
상기 제어로직은,
상기 최초 프로그램 루프 이후 반복되는 적어도 한 번 이상의 나머지 프로그램 루프에 포함된 상기 인가동작에서 상기 제2프로그램 펄스의 전압레벨보다 높은 전압레벨을 갖는 제3프로그램 펄스를 ISPP(Increment Step Pulse Program) 방식으로 인가하도록 상기 주변회로를 제어하는 비휘발성 메모리 장치.
- 제3항에 있어서,
상기 제어로직은,
상기 제3프로그램 펄스 중 적어도 하나의 펄스를 상기 제1프로그램 펄스의 전압레벨보다 낮은 전압레벨로 설정하도록 상기 주변회로를 제어하는 비휘발성 메모리 장치.
- 제1항에 있어서,
상기 제어로직은,
상기 제1프로그램 펄스의 전압레벨과 상기 제2프로그램 펄스의 전압레벨을 동일하게 설정하도록 상기 주변회로를 제어하며, 상기 최초 프로그램 루프에 포함된 상기 인가동작의 수행길이가 상기 최초 프로그램 루프 이후 반복되는 적어도 한 번 이상의 나머지 프로그램 루프에 포함된 상기 인가동작의 수행 시간보다 더 시간을 갖도록 상기 주변회로를 제어하는 비휘발성 메모리 장치.
- 제5항에 있어서,
상기 제어로직은,
상기 나머지 프로그램 루프에 포함된 상기 인가동작에서 상기 제1 및 제2프로그램 펄스의 전압레벨과 같거나 높은 전압레벨을 갖는 제3프로그램 펄스를 ISPP(Increment Step Pulse Program)방식으로 인가하도록 상기 주변회로를 제어하는 비휘발성 메모리 장치.
- 제1항에 있어서,
상기 제1전압레벨은 전원전압레벨이고, 상기 제2전압레벨은 접지전압레벨인 비휘발성 메모리 장치.
- 제1항에 있어서,
상기 제1전압레벨은 전원전압레벨보다 낮고 접지전압레벨보다 높은 기준전압레벨이고, 상기 제2전압레벨은 접지전압레벨인 비휘발성 메모리 장치.
- 다수의 비트라인에 대한 셋 업 동작과 선택 워드라인에 프로그램 펄스를 인가하는 인가동작을 포함하는 프로그램 동작, 및 상기 선택 워드라인에 검증전압을 인가하여 상기 프로그램 동작을 검증하는 검증단계를 포함하는 프로그램 루프를 반복 수행하는 단계;
최초 프로그램 루프에 포함된 상기 인가동작의 제1구간에서 상기 선택 워드라인에 제1프로그램 펄스를 인가하고, 제2구간에서 제2프로그램 펄스를 인가하는 단계;
상기 최초 프로그램 루프에 포함된 상기 셋 업 동작부터 상기 인가동작의 제1구간까지 제1비트라인 그룹을 제1전압레벨로 설정하고 제2비트라인 그룹을 상기 제1전압레벨보다 낮은 제2전압레벨로 설정하는 단계; 및
상기 최초 프로그램 루프에 포함된 상기 인가동작의 제2구간에서 상기 제1 및 제2 비트라인 그룹을 상기 제2전압레벨로 재설정하는 단계
를 포함하는 비휘발성 메모리 장치의 동작방법.
- 제9항에 있어서,
상기 제1프로그램 펄스의 전압레벨보다 상기 제2프로그램 펄스의 전압레벨을 낮게 설정하는 비휘발성 메모리 장치의 동작방법.
- 제10항에 있어서,
상기 최초 프로그램 루프 이후 반복되는 적어도 한 번 이상의 나머지 프로그램 루프에 포함된 상기 인가동작에서 상기 제2프로그램 펄스의 전압레벨보다 높은 전압레벨을 갖는 제3프로그램 펄스를 ISPP(Increment Step Pulse Program)방식으로 인가하는 단계를 더 포함하는 비휘발성 메모리 장치의 동작방법.
- 제11항에 있어서,
상기 제3프로그램 펄스 중 적어도 하나의 펄스를 상기 제1프로그램 펄스의 전압레벨보다 낮은 전압레벨로 설정하는 비휘발성 메모리 장치의 동작방법.
- 제9항에 있어서,
상기 제1프로그램 펄스의 전압레벨과 상기 제2프로그램 펄스의 전압레벨을 동일하게 설정하고,
상기 최초 프로그램 루프에 포함된 상기 인가동작의 수행 시간이 상기 최초 프로그램 루프 이후 반복되는 적어도 한 번 이상의 나머지 프로그램 루프에 포함된 상기 인가동작의 수행 시간보다 더 긴 시간을 갖도록 하는 비휘발성 메모리 장치의 동작방법.
- 제13항에 있어서,
상기 나머지 프로그램 루프에 포함된 상기 인가동작에서 상기 제1 및 제2프로그램 펄스의 전압레벨과 같거나 높은 전압레벨을 갖는 제3프로그램 펄스를 ISPP(Increment Step Pulse Program)방식으로 인가하는 단계를 더 포함하는 비휘발성 메모리 장치의 동작방법.
- 제9항에 있어서,
상기 제1전압레벨은 전원전압레벨이고, 상기 제2전압레벨은 접지전압레벨인 비휘발성 메모리 장치의 동작방법.
- 제9항에 있어서,
상기 제1전압레벨은 전원전압레벨보다 낮고 접지전압레벨보다 높은 기준전압레벨이고, 상기 제2전압레벨은 접지전압레벨인 비휘발성 메모리 장치의 동작방법.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210121887A KR20230039043A (ko) | 2021-09-13 | 2021-09-13 | Ispp방식의 프로그램 동작을 수행하는 비휘발성 메모리 장치 및 그 동작방법 |
US17/583,884 US11901022B2 (en) | 2021-09-13 | 2022-01-25 | Nonvolatile memory device performing incremental step pulse program operation and operating method thereof |
CN202210930897.2A CN115798553A (zh) | 2021-09-13 | 2022-08-04 | 执行增量步进式脉冲编程操作的存储器装置及其操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210121887A KR20230039043A (ko) | 2021-09-13 | 2021-09-13 | Ispp방식의 프로그램 동작을 수행하는 비휘발성 메모리 장치 및 그 동작방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230039043A true KR20230039043A (ko) | 2023-03-21 |
Family
ID=85431458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210121887A KR20230039043A (ko) | 2021-09-13 | 2021-09-13 | Ispp방식의 프로그램 동작을 수행하는 비휘발성 메모리 장치 및 그 동작방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11901022B2 (ko) |
KR (1) | KR20230039043A (ko) |
CN (1) | CN115798553A (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230045334A (ko) * | 2021-09-28 | 2023-04-04 | 에스케이하이닉스 주식회사 | 메모리 장치 및 메모리 장치의 동작방법 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100585628B1 (ko) * | 2005-01-24 | 2006-06-07 | 삼성전자주식회사 | 불휘발성 반도체 메모리 장치의 프로그램 구동방법 |
US7697338B2 (en) * | 2006-11-16 | 2010-04-13 | Sandisk Corporation | Systems for controlled boosting in non-volatile memory soft programming |
KR20120058157A (ko) | 2010-11-29 | 2012-06-07 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 장치의 프로그래밍 방법 |
KR102118979B1 (ko) * | 2013-09-13 | 2020-06-05 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 프로그램 방법 |
US9947418B2 (en) * | 2016-04-12 | 2018-04-17 | Micron Technology, Inc. | Boosted channel programming of memory |
KR20190073943A (ko) * | 2017-12-19 | 2019-06-27 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그 동작 방법 |
-
2021
- 2021-09-13 KR KR1020210121887A patent/KR20230039043A/ko unknown
-
2022
- 2022-01-25 US US17/583,884 patent/US11901022B2/en active Active
- 2022-08-04 CN CN202210930897.2A patent/CN115798553A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230084766A1 (en) | 2023-03-16 |
US11901022B2 (en) | 2024-02-13 |
CN115798553A (zh) | 2023-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201946065A (zh) | 記憶體裝置以及記憶體裝置的操作方法 | |
KR102611345B1 (ko) | 메모리 컨트롤러 및 그 동작 방법 | |
US20210158875A1 (en) | Memory device and method of operating the same | |
KR20170101000A (ko) | 메모리 장치의 프로그램 방법 및 이를 적용하는 메모리 시스템 | |
CN113129982B (zh) | 在存储器子***中管理子块擦除操作 | |
US11264100B2 (en) | Memory device and operation method thereof | |
US11901022B2 (en) | Nonvolatile memory device performing incremental step pulse program operation and operating method thereof | |
US11984173B2 (en) | Memory device and operating method of the memory device | |
US11776630B2 (en) | Memory device performing incremental step pulse program operation and operating method thereof | |
US11887668B2 (en) | All levels programming of a memory device in a memory sub-system | |
KR20210069262A (ko) | 메모리 장치 및 그것의 동작 방법 | |
US11862258B2 (en) | Memory device and operating method thereof | |
CN116631481A (zh) | 存储器设备及其操作方法 | |
KR20220139020A (ko) | 비휘발성 메모리 장치와 비휘발성 메모리 장치의 동작방법 및 비휘발성 메모리 장치를 포함하는 메모리 시스템 | |
KR20220138961A (ko) | 메모리 장치 및 메모리 장치의 동작 방법 | |
US11894076B2 (en) | Apparatus and method for programming and verifying data in non-volatile memory device | |
US20240257885A1 (en) | Memory device and operating method of the memory device | |
US11742036B2 (en) | Reducing maximum programming voltage in memory programming operations | |
US11508439B2 (en) | Memory device having a control logic to control program operations and method of operating the same | |
KR20220151375A (ko) | 페이지 버퍼를 포함하는 메모리 장치 | |
US20230307055A1 (en) | Concurrent slow-fast memory cell programming | |
KR20220140273A (ko) | 페이지 버퍼, 이를 포함하는 메모리 장치 및 그 동작 방법 | |
KR20240097589A (ko) | 메모리 시스템 및 그 온도 관리 방법 | |
CN116343855A (zh) | 字线或立柱状态检测以实现更快读取存取时间 | |
KR20220013260A (ko) | 페이지 버퍼 및 그 동작 방법 |