KR101222063B1 - 불휘발성 메모리 장치 및 그 동작방법 - Google Patents

불휘발성 메모리 장치 및 그 동작방법 Download PDF

Info

Publication number
KR101222063B1
KR101222063B1 KR1020110017930A KR20110017930A KR101222063B1 KR 101222063 B1 KR101222063 B1 KR 101222063B1 KR 1020110017930 A KR1020110017930 A KR 1020110017930A KR 20110017930 A KR20110017930 A KR 20110017930A KR 101222063 B1 KR101222063 B1 KR 101222063B1
Authority
KR
South Korea
Prior art keywords
program
page area
page
start voltage
voltage
Prior art date
Application number
KR1020110017930A
Other languages
English (en)
Other versions
KR20120098164A (ko
Inventor
한정철
박성제
Original Assignee
에스케이하이닉스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이하이닉스 주식회사 filed Critical 에스케이하이닉스 주식회사
Priority to KR1020110017930A priority Critical patent/KR101222063B1/ko
Priority to US13/104,475 priority patent/US8456912B2/en
Priority to CN201110141927.3A priority patent/CN102651235B/zh
Priority to JP2011187344A priority patent/JP6154986B2/ja
Publication of KR20120098164A publication Critical patent/KR20120098164A/ko
Application granted granted Critical
Publication of KR101222063B1 publication Critical patent/KR101222063B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits

Abstract

불휘발성 메모리 장치 및 그 동작에 관한 것으로서, 다수의 노말 셀과 다수의 보조 셀을 포함하는 페이지 영역과, 페이지 영역의 프로그램 대상 셀 중 기준전압보다 큰 전압으로 프로그램된 셀이 발생하는 경우 1 비트 패스 신호를 출력하는 비트 패스 검출부와, 페이지 영역에 대한 제1 프로그램 동작과정에서 1 비트 패스 신호가 출력되는 시점까지 인가된 프로그램 펄스의 횟수를 다수의 보조 셀에 저장하는 프로그램 펄스 인가횟수 저장부, 및 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수를 기초로 하여 페이지 영역의 제2 프로그램 동작에 대한 프로그램 시작전압을 설정하는 프로그램 시작 전압 설정부를 구비하는 불휘발성 메모리 장치를 제공한다.

Description

불휘발성 메모리 장치 및 그 동작방법{NON VOLATILE MEMORY DEVICE AND OPERATING METHOD THEREOF}
본 발명은 반도체 설계 기술에 관한 것으로서, 구체적으로 불휘발성 메모리 장치 및 그 동작에 관한 것이다.
최근 들어 전기적으로 프로그램(program)과 소거(erase)가 가능하고, 일정 주기로 데이터를 재작성해야하는 리프레시(refresh) 기능이 필요 없는 불휘발성 메모리 소자에 대한 수요가 증가하고 있다.
상기 불휘발성 메모리 셀은 전기적인 프로그램/소거 동작이 가능한 소자로서 얇은 산화막에 인가되는 강한 전기장에 의해 전자가 이동하면서 셀의 문턱전압을 변화시켜 프로그램 및 소거 동작을 수행한다. 상기 불휘발성 메모리 셀의 프로그램 동작시에는 프로그램 대상 셀이 검증 전압이상으로 프로그램되었는지 여부를 확인하는 검증동작을 수행하게 된다. 싱글 레벨 셀 프로그램 방식에서는 서로 다른 두 상태의 셀들만이 존재하므로 상기 검증 전압은 하나이지만, 멀티 레벨 셀 프로그램 방식에서는 여러 상태의 셀들이 하나의 페이지에 존재하게 되므로, 상기 검증 전압도 복수가 된다. 예를 들어 2비트 멀티 레벨 셀 프로그램 방식에서 상위 비트 프로그램(MSB PGM) 동작을 수행하는 경우에는 세 가지 검증 전압을 기준으로 검증동작을 수행하게 된다.
ISPP(Incremental step pulse program) 프로그램 방식에 따르면, 한 번의 펄스가 인가된 후 세 번의 검증 동작을 수행하게 될 필요가 있다. 이때, 각 검증동작 을 동시에 수행하지 않고 셀의 프로그램 속도를 고려하여 일부 검증동작만을 수행하는 블라인드 검증방법이 알려져 있다. 다만, 불휘발성 메모리 장치의 프로그램/소거 횟수가 증가하는 경우 프로그램 속도가 증가하는 경향이 있어, 이를 고려한 프로그램 방법이 필요한 상황이다.
본 발명은 전술한 종래기술의 문제점을 해결하기 위해 제안된 것으로서, 불휘발성 메모리 장치의 프로그램 시간 중 검증 동작에 소요되는 시간을 최소화시킬 수 있는 프로그램 방법을 제공하는데 그 목적이 있다.
상기의 해결하고자 하는 과제를 달성하기 위한 본 발명의 일 측면에 따르면, 다수의 노말 셀과 다수의 보조 셀을 포함하는 페이지 영역; 상기 페이지 영역의 프로그램 대상 셀 중 기준전압보다 큰 전압으로 프로그램된 셀이 발생하는 경우 1 비트 패스 신호를 출력하는 비트 패스 검출부; 상기 페이지 영역에 대한 제1 프로그램 동작과정에서 상기 1 비트 패스 신호가 출력되는 시점까지 인가된 프로그램 펄스의 횟수를 상기 다수의 보조 셀에 저장하는 프로그램 펄스 인가횟수 저장부; 및 상기 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수를 기초로 하여 상기 페이지 영역의 제2 프로그램 동작에 대한 프로그램 시작전압을 설정하는 프로그램 시작 전압 설정부를 구비하는 불휘발성 메모리 장치를 제공한다.
또한, 상기의 해결하고자 하는 과제를 달성하기 위한 본 발명의 다른 측면에 따르면, 다수의 노말 셀과 다수의 보조 셀을 각각 포함하며, 워드라인을 공유하는 제1 및 제2 페이지 영역; 상기 제1 페이지 영역의 프로그램 대상 셀 중 기준전압보다 큰 전압으로 프로그램된 셀이 발생하는 경우 1 비트 패스 신호를 출력하는 비트 패스 검출부; 상기 제1 페이지 영역에 대한 프로그램 동작과정에서 상기 1 비트 패스 신호가 출력되는 시점까지 인가된 프로그램 펄스의 횟수를 상기 제1 페이지 영역의 다수의 보조 셀에 저장하는 프로그램 펄스 인가횟수 저장부; 및 상기 제1 페이지 영역의 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수를 기초로 하여 상기 제1 또는 제2 페이지 영역에 대한 프로그램 시작전압을 설정하는 프로그램 시작 전압 설정부를 구비하는 불휘발성 메모리 장치를 제공한다.
또한, 상기의 해결하고자 하는 과제를 달성하기 위한 본 발명의 또 다른 측면에 따르면, 다수의 노말 셀과 다수의 보조 셀을 각각 포함하며, 스트링을 공유하는 제1 및 제2 페이지 영역; 상기 제1 페이지 영역의 프로그램 대상 셀 중 기준전압보다 큰 전압으로 프로그램된 셀이 발생하는 경우 1 비트 패스 신호를 출력하는 비트 패스 검출부; 상기 제1 페이지 영역에 대한 프로그램 동작과정에서 상기 1 비트 패스 신호가 출력되는 시점까지 인가된 프로그램 펄스의 횟수를 상기 제1 페이지 영역의 다수의 보조 셀에 저장하는 프로그램 펄스 인가횟수 저장부; 상기 제1 페이지 영역의 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수를 기초로 하여 상기 제2 페이지 영역에 대한 프로그램 시작전압을 설정하는 프로그램 시작 전압 설정부를 구비하는 불휘발성 메모리 장치를 제공한다.
또한, 상기의 해결하고자 하는 과제를 달성하기 위한 본 발명의 또 다른 측면에 따르면, 다수의 노말 셀과 다수의 보조 셀을 각각 포함하며, 스트링을 공유하는 제1 및 제2 페이지 영역; 상기 제1 또는 제2 페이지 영역의 프로그램 대상 셀 중 기준전압보다 큰 전압으로 프로그램된 셀이 발생하는 경우 1 비트 패스 신호를 출력하는 비트 패스 검출부; 제1 프로그램 시작전압이 적용된 상기 제1 페이지 영역의 제1 프로그램 동작과정에서 상기 1 비트 패스 신호가 출력되는 시점까지 인가된 프로그램 펄스의 횟수를 상기 제1 페이지 영역의 다수의 보조 셀에 저장한 뒤, 저장된 프로그램 펄스의 횟수에 따라 상기 제1 프로그램 시작전압을 조절하여 상기 제1 페이지 영역의 제2 프로그램 동작에 적용하는 제1 프로그램 시작전압 조절부; 상기 제1 프로그램 시작전압과 제2 프로그램 시작전압이 선택적으로 적용된 상기 제2 페이지 영역의 제1 프로그램 동작과정에서 상기 1 비트 패스 신호가 출력되는 시점까지 인가된 프로그램 펄스의 횟수를 상기 제2 페이지 영역의 다수의 보조 셀에 저장한 뒤, 저장된 프로그램 펄스의 횟수에 따라 상기 제2 프로그램 시작전압을 조절하여 상기 제2 페이지 영역의 제2 프로그램 동작에 적용하는 제2 프로그램 시작전압 조절부를 구비하는 불휘발성 메모리 장치를 제공한다.
또한, 상기의 해결하고자 하는 과제를 달성하기 위한 본 발명의 또 다른 측면에 따르면, 초기화된 프로그램 시작전압을 적용하여 다수의 노말 셀 및 다수의 보조 셀을 포함하는 페이지 영역의 제1 프로그램 동작을 수행하는 단계; 상기 제1 프로그램 동작과정에서 상기 페이지 영역의 프로그램 대상 셀 중 검증 전압보다 큰 전압으로 프로그램된 셀이 발생하기 전까지 상기 페이지 영역으로 인가되는 프로그램 펄스의 횟수를 카운팅하는 단계; 상기 카운팅하는 단계에 의해 결정된 프로그램 펄스의 인가횟수를 상기 다수의 보조 셀에 저장하는 단계; 상기 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수에 따라 상기 프로그램 시작전압을 설정하는 단계; 상기 설정하는 단계에 의해 결정된 상기 프로그램 시작전압을 적용하여 상기 페이지 영역의 제2 프로그램 동작을 수행하는 단계를 포함하는 불휘발성 메모리 장치의 동작방법을 제공한다.
또한, 상기의 해결하고자 하는 과제를 달성하기 위한 본 발명의 또 다른 측면에 따르면, 프로그램 시작전압을 적용하여 다수의 노말 셀과 다수의 보조 셀을 포함하는 제1 페이지 영역의 프로그램 동작을 수행하는 단계; 상기 프로그램 시작전압을 적용하여 다수의 노말 셀과 다수의 보조 셀을 포함하고 상기 제1 페이지 영역과 워드라인을 공유하는 제2 페이지 영역의 프로그램 동작을 수행하는 단계; 상기 제1 페이지 영역에 대한 프로그램 동작과정에서 상기 제1 페이지 영역의 프로그램 대상 셀 중 검증 전압보다 큰 전압으로 프로그램된 셀이 발생하기 전까지 상기 제1 페이지 영역으로 인가되는 프로그램 펄스의 횟수를 카운팅하는 단계; 상기 카운팅하는 단계에 의해 결정된 프로그램 펄스의 인가횟수를 상기 제1 페이지 영역의 다수의 보조 셀에 저장하는 단계; 및 상기 제1 페이지 영역의 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수에 따라 상기 프로그램 시작전압을 설정하는 단계를 포함하는 불휘발성 메모리 장치의 동작방법을 제공한다.
또한, 상기의 해결하고자 하는 과제를 달성하기 위한 본 발명의 또 다른 측면에 따르면, 제1 프로그램 시작전압을 적용하여 다수의 노말 셀과 다수의 보조 셀을 포함하는 제1 페이지 영역의 프로그램 동작을 수행하는 제1 프로그램 동작단계; 상기 제1 프로그램 동작단계에서 상기 제1 페이지 영역의 프로그램 대상 셀 중 검증 전압보다 큰 전압으로 프로그램된 셀이 발생하기 전까지 상기 제1 페이지 영역으로 인가되는 프로그램 펄스의 횟수를 상기 제1 페이지 영역의 다수의 보조 셀에 저장하는 제1 저장단계; 상기 제1 프로그램 동작단계에서 상기 제1 페이지 영역의 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수에 따라 상기 제1 프로그램 시작전압을 설정하는 단계; 상기 제1 프로그램 동작단계 이후 상기 설정하는 단계에서 설정된 상기 제1 프로그램 시작전압과 제2 프로그램 시작전압을 전압선택신호에 따라 선택적으로 적용하여 다수의 노말 셀과 다수의 보조 셀을 포함하고 상기 제1 페이지 영역과 스트링을 공유하는 제2 페이지 영역의 프로그램 동작을 수행하는 제2 프로그램 동작단계; 및 상기 제2 프로그램 동작단계에서 상기 제1 페이지 영역의 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수에 따라 상기 전압선택신호의 값을 결정하는 단계를 포함하는 불휘발성 메모리 장치의 동작방법을 제공하고, 또한, 상기 제1 페이지 영역의 각각의 노말 셀 및 각각의 보조 셀과 및 제2 페이지 영역의 각각의 노말 셀 및 각각의 보조 셀이 멀티 레벨 셀(MLC)일 때, 상기 제2 프로그램 동작단계에서 상기 제2 페이지 영역의 프로그램 대상 셀 중 검증 전압보다 큰 전압으로 프로그램된 셀이 발생하기 전까지 상기 제2 페이지 영역으로 인가되는 프로그램 펄스의 횟수를 상기 제2 페이지 영역의 다수의 보조 셀에 저장하는 제2 저장단계; 및 상기 제2 프로그램 동작단계에서 상기 제2 페이지 영역의 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수에 따라 상기 제2 프로그램 시작전압을 설정하는 단계를 더 포함하는 불휘발성 메모리 장치의 동작방법을 제공한다.
전술한 본 발명은 다수의 노말 셀과 다수의 보조 셀을 포함하는 단일 페이지 영역를 제1 프로그램 동작시킬 때 알 수 있는 최적의 프로그램 시작전압에 대한 정보를 다수의 보조 셀에 저장한 후, 단일 페이지 영역를 제2 프로그램 동작시킬 때 적용시킬 수 있다. 이로 인해, 불휘발성 메모리 장치의 프로그램 시간 중 검증 동작에 소요되는 시간을 최소화시키는 효과가 있다.
또한, 다수의 노말 셀과 다수의 보조 셀을 각각 포함하는 제1 페이지 영역를 프로그램 동작시킬 때 알 수 있는 최적의 프로그램 시작전압에 대한 정보를 제1 페이지 영역의 다수의 보조 셀에 저장한 후, 제2 페이지 영역를 프로그램 동작시킬 때 적용시킬 수 있다. 이로 인해, 불휘발성 메모리 장치의 프로그램 시간 중 검증 동작에 소요되는 시간을 최소화시키는 효과가 있다.
또한, 최적의 프로그램 시작전압에 대한 정보를 다수의 보조 셀에 저장하므로 불휘발성 메모리 장치에 전원이 공급되지 않는 경우에도 그 정보가 사라지지 않는 상태가 된다. 이로 인해, 데이터 입/출력 과정에서 전원 공급 상황이 수시로 변동되는 경우에도 언제나 안정적으로 프로그램 시간 중 검증 동작에 소요되는 시간을 최소화시키는 효과가 있다.
도 1은 통상적인 불휘발성 메모리 장치의 멀티 레벨 셀 프로그램 방법을 설명하기 위한 도면.
도 2는 통상적인 불휘발성 메모리 장치의 ISPP 프로그램 방법의 개념을 설명하기 위한 도면.
도 3은 통상적인 ISPP 프로그램 방법에서 프로그램 펄스인가에 따른 문턱전압의 이동을 도시한 도면.
도 4는 통상적인 ISPP 프로그램 방법에서 프로그램 시작전압의 설정에 따른 분포 변화를 도시한 도면.
도 5는 프로그램 소거 동작횟수에 따른 불휘발성 메모리 장치의 프로그램 속도 변화의 개념을 도시한 도면.
도 6은 통상적인 불휘발성 메모리 장치의 검증 방법 중 블라인드 검증 방법의 개념을 설명하기 위한 도면.
도 7은 통상적인 불휘발성 메모리 장치의 상위 비트 프로그램에 대한 프로그램/검증방법을 설명하기 위한 도면.
도 8은 통상적인 불휘발성 메모리 장치의 프로그램/검증방법을 설명하기 위한 도면.
도 9는 본 발명의 실시예에 따른 불휘발성 메모리 장치를 도시한 블록 다이어그램.
도 10은 도 9에 도시된 본 발명의 실시예에 따른 불휘발성 메모리 장치의 메모리 셀 어레이 및 페이지 버퍼링부의 첫 번째 구성을 상세히 도시한 블록 다이어그램.
도 11은 도 9에 도시된 본 발명의 실시예에 따른 불휘발성 메모리 장치의 프로그램 동작을 설명하기 위해 도시한 순서도.
도 12는 도 9에 도시된 본 발명의 실시예에 따른 불휘발성 메모리 장치의 메모리 셀 어레이 및 페이지 버퍼링부의 두 번째 구성을 상세히 도시한 블록 다이어그램.
도 13은 도 9에 도시된 본 발명의 실시예에 따른 불휘발성 메모리 장치의 메모리 셀 어레이 및 페이지 버퍼링부의 세 번째 구성을 상세히 도시한 블록 다이어그램.
도 14는 도 9에 도시된 본 발명의 실시예에 따른 불휘발성 메모리 장치에 전압선택신호 생성부가 더 포함된 블록 다이어그램.
도 15를 도 14에 도시된 본 발명의 실시예에 따른 불휘발성 메모리 장치의 프로그램 동작을 설명하기 위해 도시한 순서도.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명하기로 한다. 그러나, 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구성될 수 있으며, 단지 본 실시예는 본 발명의 개시가 완전하도록하며 통상의 지식을 가진자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다.
도 1은 통상적인 불휘발성 메모리 장치의 멀티 레벨 셀 프로그램 방법을 설명하기 위한 도면이다.
하위비트 프로그램(LSB PGM) 동작에서는 프로그램 동작에 의하여 서로 다른 두 개의 셀 분포가 나타난다. 즉, 검증전압(LPV1)이상으로 프로그램된 셀의 분포를 제2 상태라 하고, 그렇지 않은 셀의 분포를 제1 상태라 한다.
이렇게 하위비트 프로그램 동작을 수행한 상태에서 상위 비트 프로그램(MSB PGM)동작을 수행하게 된다. 상위 비트 프로그램 동작에서 의하여 서로 다른 문턱전압을 갖는 네 개의 셀 분포(제3 내지 제6 상태)가 나타난다. 이때, 각 분포별로 검증 전압이 상이한바, 낮은 순서부터 정렬하면, 제1 검증전압(MPV1), 제2 검증전압(MPV2), 제3 검증전압(MPV3)을 들 수 있다. 즉, 제3 검증전압(MPV3)이상으로 프로그램된 상태를 제6 상태, 제3 검증전압보다 낮으나 제2 검증전압(MPV2)이상으로 프로그램된 상태를 제5 상태, 제2 검증전압보다 낮으나 제1 검증전압(MPV1)이상으로 프로그램된 상태를 제4 상태, 제1 검증전압보다 낮게 프로그램된 상태를 제3 상태라 한다. 또한, 상기 제4 상태로 프로그램하고자 하는 셀들을 제1 검증 대상 셀, 제5 상태로 프로그램하고자 하는 셀들을 제2 검증 대상 셀, 제6 상태로 프로그램하고자 하는 셀들을 제3 검증 대상 셀로 정의한다.
이와 같이 상위비트 프로그램 동작에서는 하위비트 프로그램 동작에 비하여 더 많은 검증전압을 기준으로 검증동작을 수행하여야 한다.
도 2는 통상적인 불휘발성 메모리 장치의 ISPP 프로그램 방법의 개념을 설명하기 위한 도면이다.
ISPP(Incremental step pulse program) 프로그램 방법에 따르면, 프로그램 펄스를 반복하여 인가하되, 매 반복 시마다 검증동작을 수행하고, 프로그램 펄스를 스텝 전압(Vstep) 만큼 증가시켜 인가한다.
도시된 바와 같이, 최초에는 프로그램 시작 전압(Vstart)을 인가하고, 다음 프로그램 펄스 인가시에는 스텝 전압(Vstep) 만큼 증가된 프로그램 펄스를 인가한다. 그리고 매 프로그램 펄스의 인가시마다 검증 동작을 수행한다. 따라서 한번의 프로그램 펄스에 인가에 소요되는 시간은 프로그램 펄스 인가시간(tPULSE)과 검증시간(tVFY)의 합과 같다.
한편, 소거 상태의 셀들에 대하여 프로그램 시작전압(Vstart)을 최초로 인가할 경우 셀들의 분포를 고유 분포(△Vthi)라 정의한다. 도면에서는 고유 분포가 대략 4V인 경우가 도시되어 있다. 프로그램 시작전압(Vstart), 스텝 전압(Vstep), 제1 검증전압(PV1)을 기준으로 프로그램 동작을 수행하면, 각 문턱전압이 제1 검증전압(PV1) 이상이고 고유 분포(△Vthi)의 최대값보다 낮은 셀들의 분포가 형성된다. 이때 프로그램이 완료된 셀들의 분포는 스텝 전압(Vstep)의 크기와 같다.
이론적으로는, 프로그램 동작의 완료에 필요한 펄스 인가횟수(Npgm)는 고유분포(△Vthi)와 스텝 전압(Vstep)의 비에 의하여 결정된다. 예를 들어, 고유 분포(△Vthi)가 4V이고, 스텝 전압(Vstep)이 1V 이면 총 4회의 펄스가 인가되어야 한다.
전체 프로그램 동작에 소요되는 시간(tPROG)은 상기 펄스 인가횟수(Npgm)와 한번의 프로그램 펄스에 인가에 소요되는 시간(tPULSE+tVFY)의 곱과 같다.
이와 같은 ISPP 프로그램 특성에 따르면, 스텝전압(Vstep)을 증가시킬수록 펄스 인가횟수(Npgm)가 감소하므로, 전체 프로그램 동작에 소요되는 시간(tPROG)은 감소된다. 그러나 프로그램이 완료된 셀들의 분포는 스텝전압(Vstep)과 같으므로, 전체 분포가 넓어지게 되는 문제가 발생한다.
도 3은 통상적인 ISPP 프로그램 방법에서 프로그램 펄스인가에 따른 문턱전압의 이동을 도시한 도면이다.
프로그램 시작전압(Vstar)이 16V이고 스텝전압(Vstep)이 1V, 고유 분포(△Vthi)가 4V라고 가정한다. 프로그램하고자 하는 목표전압은 1V~2V이며, 검증전압은 1V 이다.
최초 프로그램 펄스인가시의 프로그램 전압(Vpgm)은 16V가 된다. 최초 프로그램 펄스 인가시에는 상기 고유 분포(△Vthi)에 따라 각 셀들의 문턱전압이 결정된다. 상기 최초 프로그램 펄스 인가이후 1V 이상으로 프로그램 된 셀들은 페이지 버퍼에 저장된 데이터가 변경되어, 이후 프로그램 펄스가 더 이상 인가되지 않는다.
두 번째 프로그램 펄스 인가시에, 1V 보다 문턱전압이 낮은 셀들은 프로그램 펄스 인가로 인해 문턱전압이 더욱 상승한다. 바람직하게는 1V 보다 문턱전압이 낮은 셀들이 1V씩 문턱전압이 상승하게 된다. 최초 프로그램 펄스 인가시의 셀들의 분포가 전체적으로 1V 만큼 상승했음을 알 수 있다. 다만 앞서 언급한바와 같이 최초 프로그램 펄스 시 1V이상으로 프로그램 된 셀들에 대해서는 프로그램 펄스가 더 인가되지 않으므로 문턱전압의 변화가 없다.
세 번째, 네 번째 프로그램 펄스 인가시에도 상기와 마찬가지로 1V 씩 문턱전압이 상승하는 것을 알 수 있다. 그리고 프로그램이 완료된 상태의 문턱전압의 분포는 스텝전압의 크기와 같게 된다.
도 4는 통상적인 ISPP 프로그램 방법에서 프로그램 시작전압의 설정에 따른 분포 변화를 도시한 도면이다.
프로그램 시작전압(Vstatr)이 16V 인 경우와 17V 인 경우(고유 분포(△Vthi)는 4V, 스텝 전압(Vstep)은 1V) 프로그램 동작이 완료되었을 때 문턱전압의 분포 상태가 상이해 짐을 알 수 있다. 즉, 프로그램 시작전압이 커지면, 최대 문턱 전압 값이 더욱 커지게 된다. 프로그램 시작전압(Vstatr)이 16V 인 경우의 최대 문턱 전압 값은 2V 이지만, 프로그램 시작전압(Vstatr)이 17V 인 경우의 최대 문턱 전압 값은 3V 가 된다. 이때, 프로그램이 종료된 상태에서의 최대 문턱 전압 값은 상이하지만, 문턱전압의 분포 자체는 1V로 동일함을 알 수 있다. 앞서 언급한 바와 같이 문턱전압의 분포는 스텝 전압(Vstep)에 의해 결정되기 때문이다.
이와 같이 프로그램 시작 전압의 변화에 따라 프로그램이 종료된 상태는 달라지게된다. 이때, 프로그램 펄스 인가횟수 및 프로그램 동작에 소요되는 시간은 동일하다. 이러한 특성에 비추어볼때, 여러 가지 문턱전압 분포 상태를 필요로 하는 MLC 프로그램 동작에서는 하나의 프로그램 시작 전압을 기준으로 프로그램 동작을 수행할 필요가 있다. 즉, 목표로하는 문턱전압이 가장 낮은 셀을 기준으로 프로그램 시작 전압을 설정하여야 오버 프로그램을 방지할 수 있다.
예를 들어, 목표로 하는 문턱전압이 1V~2V인 경우, 17V를 프로그램 시작전압으로 설정하게 되면, 도시된 바와 같이 한번의 프로그램 펄스 인가로 2V~3V의 문턱전압을 갖는 셀이 발생하는바, 이러한 셀들은 오버 프로그램 된 것으로 본다. 따라서 16V를 프로그램 시작전압으로 설정하여 프로그램 동작을 수행한다.
도 5는 프로그램 소거 동작횟수에 따른 불휘발성 메모리 장치의 프로그램 속도 변화의 개념을 도시한 도면이다.
불휘발성 메모리 장치를 사용하게 되면, 프로그램 동작과 소거 동작을 수회 반복하게 된다. 이때 프로그램 동작은 페이지 단위로, 소거 동작은 블록 단위로 진행된다. 프로그램/소거 동작 횟수가 증가할수록 불휘발성 메모리 장치의 프로그램 속도가 빨라지는 경향이 있다. 즉, 프로그램/소거 동작 횟수의 증가에 따라 불휘발성 메모리 셀의 플로팅 게이트에 트랩되는 차지의 양이 증가하므로, 일반 셀들에 비하여 프로그램 속도가 증가한다. 이 때 프로그램 속도는 한 번의 프로그램 펄스 인가에 따른 문턱 전압의 변화량으로 정의될 수 있다.
따라서 ISPP의 프로그램 펄스 인가 횟수(Npgm)를 결정하는 요소인 고유분포(△Vthi)에 프로그램/소거 횟수 증가에 따른 변화량을 추가하여 고려해야 한다. 이때 상기 변화량은 프로그램/소거 횟수가 증가할수록 커지게 된다.
이러한 특성을 고려하여 프로그램 시작전압을 설정한다면, 프로그램/소거 횟수가 최소일 경우에 비하여 프로그램 시작전압을 낮게 설정하여야 한다. 즉, 불휘발성 메모리 장치의 최초 동작시부터 프로그램/소거 횟수 증가에 따른 프로그램 속도를 고려하여 프로그램 시작전압을 낮게 인가하는 것이다. 이러한 구성에 따른다면, 최초 동작시부터 특정 프로그램/소거 횟수 도달전까지는 실질적으로 더미(dummy) 프로그램 펄스를 인가하게 되는 효과가 발생하므로, 전체적으로 프로그램 동작에 소요되는 시간이 증가하게 되는 문제점이 발생한다.
도 6은 통상적인 불휘발성 메모리 장치의 검증 방법 중 블라인드 검증 방법의 개념을 설명하기 위한 도면이다.
상기 검증 방법은 MLC 프로그램 방법에 적용된다. 도시된 검증 방법은 2비트 멀티 레벨 셀 프로그램시의 검증 방법이다. 총 세 개의 검증 전압(PV1, PV2, PV3)을 기준으로 검증 동작을 수행한다. 상기 세 개의 검증 전압을 기준으로 각각 검증 동작을 수행하므로, 원칙적으로는 한번의 프로그램 펄스 인가 후 세 번의 검증 동작을 수행하여야 한다.
그러나 앞서 언급한 바와 같이 프로그램 시작전압은 문턱전압이 제일 낮은 상태를 기준으로 설정되므로, 최초 프로그램 펄스 인가시에는 제2 검증 전압(PV2)및 제3 검증 전압(PV3)이상으로 프로그램되는 셀은 발생하지 않게 된다. 즉, 프로그램 펄스가 어느 정도 인가된 후에야 제2 검증 전압, 제3 검증 전압 이상으로 프로그램 되는 셀들이 발생하게 된다. 따라서 검증 동작에서 소요되는 시간을 단축시키기 위해, 최초 몇 구간 동안은 프로그램 펄스 후 제1 검증 전압을 기준으로 한 검증 동작만을 수행한다. 이와 같이 일부 검증 동작을 생략한다 하여 블라인드(blind) 검증 방법이라 한다. 다만, 이와 같은 블라인드 검증 방법의 개념에 더하여, 앞서 설명한 프로그램/소거 검증 횟수에 따른 프로그램 속도 변화를 고려한 프로그램 펄스 인가방법을 적용할 경우 다음과 같은 문제점이 발생한다.
도 7은 통상적인 불휘발성 메모리 장치의 상위 비트 프로그램에 대한 프로그램/검증방법을 설명하기 위한 도면이다.
제1 프로그램/검증방법에 따르면, 앞서 설명한 블라인드 검증 방법에 따라 최초 프로그램 전압인가 후에 제1 검증전압(MPV1)을 기준으로 하는 검증동작만을 실시한다. 원칙적으로는 제2 검증전압, 제3 검증전압등을 기준으로 하는 검증동작도 같이 실시하여야 하나, 앞서 설명한 블라인드 검증 방법에 따라 제1 검증전압을 기준으로 하는 검증동작만 실시한다.
프로그램 펄스 인가 및 제1 검증전압을 기준으로 하는 검증동작만을 3회 정도 실시한 후에, 제1 검증전압뿐만 아니라 제2 검증전압을 기준으로 하는 검증동작도 실시한다. 또한, 제1 및 제2 검증전압을 기준으로 하는 검증동작을 3 회 정도 실시한 후에 제3 검증전압을 기준으로 한 검증동작을 실시한다. 한편, 제1 검증전압만을 기준으로 하는 검증동작이 실시되는 횟수, 제1 및 제2 검증전압만을 기준으로 하는 검증동작이 실시되는 횟수는 미리 설정되어 있다.
다음으로 제2 프로그램/검증방법에 대하여 살펴보자. 상기 제2 프로그램/검증 방법은 프로그램/소거 횟수의 증가에 따라 프로그램 속도가 증가하는 경향을 보상하기 위하여 프로그램 시작 펄스를 낮춰서 인가한다. 즉, 도시된 바와 같이 제1 프로그램/검증 방법에 비하여 프로그램 시작 펄스를 낮춰서 인가하게 된다. 다만, 이는 프로그램/소거 횟수에 따라 문제점을 나타낼 수 있다.
즉, 프로그램/소거 횟수가 높은 경우에는 프로그램 속도가 빠르기 때문에 낮은 프로그램 펄스의 인가에도 문턱전압의 변화량이 크다. 따라서 낮은 프로그램 전압의 인가시에도 검증동작을 수행할 필요가 있다. 또한, 문턱전압이 일부 상승한 시점이후(A 이후)에는 제1 및 제2 검증전압을 기준으로 한 검증동작을 실시할 필요가 있다.
그러나 프로그램/소거 횟수가 작은 경우에는 프로그램 속도가 늦기 때문에 낮은 프로그램 펄스의 인가에 대한 문턱전압의 변화량이 작은 편이다. 따라서 낮은 프로그램 전압의 인가시에 검증동작을 수행해야할 필요는 적어진다. 또한, 문턱전압의 상승 폭이 작기 때문에, 프로그램 펄스가 어느 정도 인가된 이후(A 이후)에도 제1 검증전압을 기준으로 한 검증동작 이외에 제2 검증전압을 기준으로 한 검증동작까지 실시해야할 필요는 적어진다.
도 8은 통상적인 불휘발성 메모리 장치의 프로그램/검증방법을 설명하기 위한 도면이다.
도 8을 참조하면, 통상적인 불휘발성 메모리 장치에서는 다만, 이러한 상태에서 앞서 설명한 블라인드(blind) 검증 방법을 단편적으로 적용할 경우, 프로그램/소거 횟수가 낮은 초기 동작에서는 제1 검증전압을 기준으로 하는 검증 동작외에 불필요하게 제2 검증전압을 기준으로 하는 검증 동작을 실시하게 되는 경우가 존재 한다.
이를 방지하기 위하여 본원 발명에서는 제1 검증전압 이상으로 프로그램된 셀이 검출된 경우에 한하여 블라인드 검증방법을 적용한다.
즉, 도시된 바와 같이 제1 검증전압 이상으로 프로그램된 셀이 검출되기 전까지는 제1 검증전압을 기준으로 하는 제1 검증동작과, ISPP 프로그램 동작을 번갈아서 수행한다. 그리고 제1 검증전압 이상으로 프로그램된 셀이 검출되면, 검출될 때까지 인가된 프로그램 펄스 횟수를 저장하였다가 다른 페이지 영역에 프로그램을 수행할 때 저장된 프로그램 펄스 횟수를 기준으로 프로그램 시작전압을 조절하여 상기 설명한 블라인드 검증방법을 수행한다.
예컨대, 통상적인 불휘발성 메모리 장치에서는 제1 페이지 영역에 대해 프로그램을 수행하면서 제1 검증전압 이상으로 프로그램된 셀이 검출될 때까지 인가되는 프로그램 펄스 횟수를 카운팅하게 된다. 도 8에서는 제1 페이지 영역에 대한 프로그램 펄스 인가 횟수가 '4'인 것을 알 수 있다. 따라서, 제1 페이지 영역에 대한 프로그램 시작전압에 4배의 스텝전압을 더하여 제2 페이지 영역에 대한 프로그램 시작전압을 설정하고, 설정된 프로그램 시작전압에 따라 제2 페이지 영역에 대한 프로그램 동작을 수행하게 된다. 이와 같이 제1 페이지 영역의 프로그램 결과를 근거로 제2 페이지 영역의 프로그램 시작전압을 가변적으로 설정하므로, 더미 프로그램 펄스의 인가에 소요되는 시간을 단축시킬 수 있다. 즉, 도 8의 경우와 같이 제2 페이지 영역에 대한 프로그램 동작시 네 번의 더미 프로그램 펄스 인가 및 검증동작에 소요되는 시간을 감소시킬 수 있다.
그런데, 통상적인 불휘발성 메모리 장치에서는 제1 검증전압 이상으로 프로그램된 셀이 검출될 때까지 인가된 프로그램 펄스 횟수를 저장하기 위한 수단으로 컨트롤러에 포함된 래치를 사용하였다.
즉, 불휘발성 메모리 장치에는 페이지 영역의 개수가 적어도 수십 개에서 수백 개 포함되는 것이 일반적이므로 불휘발성 메모리 장치에 포함된 모든 페이지 영역의 프로그램 펄스 횟수를 저장하기 위해서는 페이지 영역 수에 대응하는 만큼의 래치가 컨트롤러 내부에 존재해야 하는데, 이는 실질적으로 가능한 구성이 아니다.
따라서, 통상적인 불휘발성 메모리 장치에서는 설정된 일부 페이지 영역에 대응하는 소수의 래치를 컨트롤러에 구비한 상태에서 설정된 페이지 영역의 프로그램 동작을 통해 조절가능한 프로그램 시작전압을 설정된 페이지 영역 주변의 다수의 페이지 영역에 일괄적으로 적용하는 방식을 사용하였다.
하지만, 아무리 근처에 위치한 두 개의 페이지 영역라고 하더라도 두 페이지 영역사이에 공정(Process), 사이클링(cycling)정도 등의 요인으로 어떤 차이가 발생한다면 동일한 값을 적용하였을 때 정상적으로 데이터를 검출할 수 없을 수 있는 문제가 있다. 즉, 아무리 근처에 위치한 두 개의 페이지 영역라고 하더라도 두 페이지 영역 사이의 차이를 감안한 마진(margin)을 두어야 한다.
예를 들어, 어떤 페이지 영역가 프로그램 동작시 4번의 프로그램 펄스를 인가하는 동작으로 제1 검증전압 이상으로 프로그램된 셀이 검출되더라도 근처의 다른 페이지 영역은 같은 조건에서 이보다 빠른 2번의 프로그램 펄스가 인가되거나 3번의 프로그램 펄스가 인가되는 동작으로 제1 검증전압 이상으로 프로그램된 셀이 존재할 수 있다.
즉, 상기에서 설명한 통상적인 불휘발성 메모리 장치의 동작방법은 반도체 칩 또는 동작 계획(plane) 등의 전체 변수를 판단해 마진(margin)을 두어야 하는데 이 마진에 따라 불휘발성 메모리 장치의 프로그램/검증방법 성능에 차이가 발생할 수 있다.
도 9는 본 발명의 실시예에 따른 불휘발성 메모리 장치를 도시한 블록 다이어그램이다.
도 10은 도 9에 도시된 본 발명의 실시예에 따른 불휘발성 메모리 장치의 메모리 셀 어레이 및 페이지 버퍼링부의 첫 번째 구성을 상세히 도시한 블록 다이어그램이다.
도 9를 참조하면, 본 발명의 실시예에 따른 불휘발성 메모리 장치는, 불휘발성 메모리 셀 어레이(900)와, 페이지 버퍼링부(910)와, 비트 패스 검출부(920)와, 컨트롤러 내부에 구비되는 프로그램 시작전압 설정부(930)와, 프로그램 펄스 인가횟수 저장부(940)와, 프로그램 펄스 카운팅부(950), 및 고전압 발생기(960)을 구비한다.
참고로, 그 동작에 따른 구성이 구체적으로 도시되진 않았지만 컨트롤러는 불휘발성 메모리 장치의 프로그램 동작, 독출 동작, 소거 동작등 각종 동작을 수행한다. 외부에서 입력되는 명령어, 어드레스, 데이터등을 입력받아 해당하는 동작을 수행한다. 또한 고전압 발생기(960)를 제어하여 각 동작에 해당하는 고전압(프로그램 전압, 패스전압, 독출전압 등)을 메모리 셀어레이에 인가시킨다. 또한 프로그램 동작시에 수행되는 검증 동작에서는 각 메모리 셀이 기준전압 이상으로 프로그램 되었는지 여부를 확인하는바, 패스 완료신호가 입력되면 프로그램 동작이 종료되도록 제어한다.
즉, 컨트롤러 내부에 도시된 프로그램 시작전압 설정부(930)와 프로그램 펄스 인가횟수 저장부(940)와 프로그램 펄스 카운팅부(950)는 본 발명의 특징적인 동작인 페이지 영역의 프로그램 대상 셀 중 기준전압 이상으로 프로그램이 완료된 셀이 발생한 시점, 즉 1 비트 패스 시점까지 인가된 프로그램 펄스 인가횟수를 측정하고 그에 따라 프로그램 시작전압을 설정하기 위해 필요한 구성요소들이다.
구체적으로, 메모리 셀 어레이(900)와 페이지 버퍼링부(910)의 구체적인 구성을 도시한 도 10을 참조하여 본 발명의 실시예에 따른 불휘발성 메모리 장치의 구성을 설명하면 다음과 같다.
먼저, 메모리 셀 어레이(900)는 노말 영역(900A)과 보조 영역(900B)을 포함한다. 마찬가지로, 페이지 버퍼링부(910)는 메모리 셀 어레이(900)의 노말 영역(900A)에 대응하는 노말 페이지 버퍼링부(910A)와 보조 영역(900B)에 대응하는 보조 페이지 버퍼링부(910B)를 포함한다.
여기서, 메모리 셀 어레이(900)의 노말 영역(900A)은 상기에서 설명한 통상적인 불휘발성 메모리 장치의 메인 영역과 스페어 영역 및 리던던시 영역을 모두 아우르는 영역이다. 반면, 메모리 셀 어레이(900)의 보조 영역(900B)은 상기에서 설명한 통상적인 불휘발성 메모리 장치에는 포함되지 않았던 영역이다. 즉, 메모리 셀 어레이(900)의 보조 영역(900B)은 본 발명의 실시예에 따른 불휘발성 메모리 장치를 위해 추가된 영역이며 수 바이트(byte)의 용량을 가질 수 있도록 설계된다. 이때, 메모리 셀 어레이(900)의 보조 영역(900B)은 통상적인 불휘발성 메모리 장치에 완전히 새롭게 추가된 영역으로써 메모리 셀 어레이(900)의 전체 영역 크기를 조금 더 증가시키는 방식으로 통해 구현될 수 있다. 물론, 메모리 셀 어레이(900)의 전체 영역 크기를 증가시키지 않고 상기에서 설명한 통상적인 불휘발성 메모리 장치에 이미 포함되어 있는 스페어 영역 또는 리던던시 영역의 일부 구간을 분할하여 보조 영역(900B)으로서 설정하는 것도 가능하다.
이렇게, 메모리 셀 어레이(900)가 노말 영역(900A)과 보조 영역(900B)을 포함하기 때문에 메모리 셀 어레이(900)에 구비되어 각각 다수의 셀을 포함하는 다수의 단일 페이지 영역(900<0:K>, 901<0:K>, …)도 다수의 노말 셀(BL<0:M-1>에 대응함)과 다수의 보조 셀(BL<M:N-1>에 대응함)을 포함하는 형태로 구성된다. 즉, 각각의 단일 페이지 영역(900<0:K>, 901<0:K>, …)별로 다수의 노말 셀(BL<0:M-1>에 대응함)과 다수의 보조 셀(BL<M:N-1>에 대응함)을 포함하는 형태가 된다.
그리고, 단일 페이지 영역(900<0:K>, 901<0:K>, …)의 프로그램 대상 셀 중 기준전압보다 큰 전압으로 프로그램된 셀이 발생하는 경우 1 비트 패스 신호(1BIT_PASS)를 출력하는 비트 패스 검출부(920)와, 단일 페이지 영역(900<0:K>, 901<0:K>, …)에 대한 제1 프로그램 동작과정에서 1 비트 패스 신호(1BIT_PASS)가 출력되는 시점까지 인가된 프로그램 펄스의 횟수를 다수의 보조 셀(BL<M:N-1>에 대응함)에 저장하는 프로그램 펄스 인가횟수 저장부(940), 및 다수의 보조 셀(BL<M:N-1>에 대응함)에 저장된 프로그램 펄스의 인가횟수를 기초로 하여 단일 페이지 영역(900<0:K>, 901<0:K>, …)의 제2 프로그램 동작에 대한 프로그램 시작전압을 설정하는 프로그램 시작 전압 설정부(930)를 구비한다.
또한, 제1 프로그램 동작과정에서 1 비트 패스 신호(1BIT_PASS)가 출력되는 시점까지 단일 페이지 영역(900<0:K>, 901<0:K>, …)으로 인가되는 프로그램 펄스의 횟수를 카운팅하여 프로그램 펄스 인가횟수 저장부(940)로 전달하는 프로그램 펄스 카운팅부(950)를 더 구비한다.
전술한 구성에서 메모리 셀 어레이(900)에 구비된 다수의 셀은 모두 멀티 레벨 셀(Multi Level Cell : MLC)이다. 즉, 단일 페이지 영역(900<0:K>, 901<0:K>, …)에 포함된 다수의 노말 셀(BL<0:M-1>에 대응함)과 다수의 보조 셀(BL<M:N-1>에 대응함)은 모두 멀티 레벨 셀(MLC)이다. 따라서, 본 발명의 실시예에 따른 불휘발성 메모리 장치의 프로그램 동작은 도 11에 도시된 순서도와 같이 제1 프로그램 동작과 제2 프로그램 동작으로 나누어진다. 이때, 제1 프로그램 동작은 예컨대 하위비트 프로그램 동작이 되고 제2 프로그램 동작은 예컨대 상위비트 프로그램 동작이 될 것이다.
도 11을 참조하여 본 발명의 실시예에 따른 불휘발성 메모리 장치의 프로그램 동작을 구체적으로 설명하면 다음과 같다.
먼저, 불휘발성 메모리 장치에 파워가 공급(1100)될 때, '초기화된 제1 프로그램 시작전압'과 '초기화된 제2 프로그램 시작전압'은 미리 알 수 있는 값이다. 이때, '초기화된 제1 프로그램 시작전압'과 '초기화된 제2 프로그램 시작전압'은 상기의 도 2에서 설명했던 소거 상태의 셀들에 대하여 최초로 인가되는 프로그램 시작전압(Vstart)라고 볼 수 있으며, 설계자에 의해 그 기본 값(default value)이 조절된다. 참고로, '초기화된 제1 프로그램 시작전압'과 '초기화된 제2 프로그램 시작전압'은 다수의 단위 페이지 영역(900<0:K>, 901<0:K>, …)에 각각 적용될 상수이므로 일반적으로는 서로 같아지도록 그 기본 값(default value)이 조절된다. 물론, '초기화된 제1 프로그램 시작전압'과 '초기화된 제2 프로그램 시작전압'의 기본 값이 같아지도록 조절된다는 것은 어디까지나 설계자의 선택에 의해 변화될 수 있는 사항이므로, 서로 달라지도록 조절되는 것도 얼마든지 가능하다.
그 후, 어떤 프로그램 동작을 수행할 것인지를 결정(1110)하게 된다. 즉, 제1 프로그램 동작을 수행할 것인지 아니면 제2 프로그램 동작을 수행하게 될 것인지를 선택하게 된다. 이때, 소거 상태의 단일 페이지 영역(900<0:K>, 901<0:K>, …)를 대상으로 프로그램 동작이 수행될 때에는 제1 프로그램 동작을 수행하게 될 것이고, 제1 프로그램 동작이 이미 수행된 이후의 단일 페이지 영역(900<0:K>, 901<0:K>, …)를 대상으로 프로그램 동작이 수행될 때에는 제2 프로그램 동작을 수행하게 될 것이다. 예컨대, 일반적인 불휘발성 메모리 장치에서 소거 상태의 셀을 대상으로 먼저 하위비트 프로그램 동작을 수행되고 이후에 상위비트 프로그램 동작을 수행되는 것과 같다.
먼저, 제1 프로그램 동작을 설명하면, '초기화된 제1 프로그램 시작전압'이 단일 페이지 영역(900<0:K>, 901<0:K>, …)으로 공급(1120)하게 되고, 이어서 1 비트 패스가 검출되었는지 확인(1122)한다. 이때, 1 비트 패스가 검출되지 않았다면 '초기화된 제1 프로그램 시작전압'에'스텝전압'을 합한 전압을 단일 페이지 영역(900<0:K>, 901<0:K>, …)으로 다시 공급(1120)하게 되고, 이어서 다시 1 비트 패스가 검출되었는지 확인(1122)한다. 또 다시 1 비트 패스가 검출되지 않았다면 '초기화된 제1 프로그램 시작전압'에'스텝전압 * 2 '를 합한 전압을 단일 페이지 영역(900<0:K>, 901<0:K>, …)으로 다시 공급(1120)하게 되고, 이어서 다시 1 비트 패스가 검출되었는지 확인(1122)한다.
이와 같이 단일 페이지 영역(900<0:K>, 901<0:K>, …)에 프로그램 전압을 공급하는 동작(1120)과 1 비트 패스가 검출되었는지 확인하는 동작(1122)를 계속 반복하면서 단일 페이지 영역(900<0:K>, 901<0:K>, …)에 공급되는 프로그램 전압의 크기를 '스텝전압 * N'(N = 반복횟수)씩 증가시킨다. 즉, '초기화된 제1 프로그램 시작전압'을 기준으로 일반적인 ISPP동작을 수행하면서 1 비트 패스가 검출되었는지 확인하는 동작(1122)을 계속 수행한다.
이렇게, 단일 페이지 영역(900<0:K>, 901<0:K>, …)에 프로그램 전압을 공급하는 동작(1120)과 1 비트 패스가 검출되었는지 확인하는 동작(1122)를 계속 반복되다가 1 비트 패스가 검출되는 경우, 프로그램 펄스 카운팅부(950)에서 출력되는 1 비트 패스가 검출되기까지 카운팅된 프로그램 펄스 횟수(PD)를 프로그램 펄스 인가횟수 저장부(940)를 통해 단일 페이지 영역(900<0:K>, 901<0:K>, …)의 보조 페이지 버퍼링부(910B)에 셋팅(1124)하고 이어서 제1 프로그램 동작을 계속 수행(1126)하여 제1 프로그램 동작이 완료(1150)될 수 있도록 한다.
이와 같이, 프로그램 펄스 인가횟수 저장부(940)가 프로그램 펄스 카운팅부(950)에서 출력되는 1 비트 패스가 검출되기까지 카운팅된 프로그램 펄스 횟수(PD)를 보조 페이지 버퍼링부(910B)에 셋팅한 후 제1 프로그램 동작을 수행을 완료하게 되면, 보조 페이지 버퍼링부(910B)에 대응하는 다수의 보조 셀(BL<M:N-1>에 대응함)에 프로그램 펄스 카운팅부(950)에서 출력되는 1 비트 패스가 검출되기까지 카운팅된 프로그램 펄스 횟수(PD)가 저장된다는 것을 알 수 있다.
또한, 다수의 단위 페이지 영역(900<0:K>, 901<0:K>, …)은 각각 다수의 노말 셀(BL<0:M-1>에 대응함)과 다수의 보조 셀(BL<M:N-1>에 대응함)을 구비하고 있으므로, 각 단위 페이지 영역(900<0:K>, 901<0:K>, …)의 다수의 보조 셀(BL<M:N-1>에 대응함)에는 각각의 단위 페이지 영역(900<0:K>, 901<0:K>, …)에 대응하는 1 비트 패스가 검출되기 까지 카운팅된 프로그램 펄스 횟수(PD)가 독립적으로 저장되는 것을 알 수 있다.
참고로, 전술한 제1 프로그램 동작에는 도 9에 도시된 컨트롤러 내부의 프로그램 펄스 카운팅부(950)와 프로그램 펄스 인가횟수 저장부(940)가 대응될 것이다. 즉, 일반적인 ISPP 동작을 수행하는 회로는 도 9에 도시된 컨트롤러에 이미 포함되어 있고 도시되지 않았다는 것을 알 수 있다.
그리고, 제2 프로그램 동작을 설명하면, 제1 프로그램 동작이 완료되어 1 비트 패스가 검출되기까지 카운팅된 프로그램 펄스 횟수(PD)가 다수의 보조 셀(BL<M:N-1>에 대응함)에 저장된 단위 페이지 영역에서 제2 프로그램 동작이 수행되어야 하기에 '초기화된 제2 프로그램 시작전압'을 공급하기 전에 먼저 다수의 보조 셀(BL<M:N-1>에 대응함)에 저장된 1 비트 패스가 검출되기까지 카운팅된 프로그램 펄스 횟수(PD)를 리드(1140)한다.
리드된 1 비트 패스가 검출되기까지 카운팅된 프로그램 펄스 횟수(PD)를 '초기화된 제2 프로그램 시작전압'에 적용하는 것은 도 9에 도시된 프로그램 시작전압 설정부(930)에 의해 이루어지는데, 그 방식은 다음과 같이 두 가지로 나뉘어 질 수 있다.
첫 번째는, 다수의 보조 셀(BL<M:N-1>에 대응함)에 저장된 프로그램 펄스의 인가횟수(PD)를 리드한 뒤, 리드된 프로그램 펄스의 인가횟수(PD)에 '스텝전압'을 곱한 값을 '초기화된 제2 프로그램 시작전압'의 값에 더하여 새로운 '제2 프로그램 시작전압'으로서 설정(1142)하게 된다.
두 번째는, 다수의 보조 셀(BL<M:N-1>에 대응함)에 저장된 프로그램 펄스의 인가횟수(PD)를 리드한 뒤, 리드된 프로그램 펄스의 인가횟수(PD)가 임계값보다 큰 경우 리드된 프로그램 펄스 인가횟수(PD)와 임계값의 차이만큼 '스텝전압'을 곱한 값을 '초기화된 제2 프로그램 시작전압'의 값에 더하여 새로운 '제2 프로그램 시작전압'으로서 설정(1142)한다. 하지만, 리드된 프로그램 펄스의 인가횟수(PD)가 임계값보다 작거나 같은 경우 '초기화된 제2 프로그램 시작전압'을 그대로 '제2 프로그램 시작전압'으로서 설정(1142)하게 된다. 이때. 임계값은 셀의 특성등에 따라 실시자에 의해 최적의 값으로 선택될 수 있다. 예컨대, 리드된 프로그램 펄스의 인가횟수(PD)가 '2'보다 작은 값이면 큰 의미가 없다고 판단하여 '2'를 임계값으로 설정할 수 있다.
이와 같이 리드된 1 비트 패스가 검출되기까지 카운팅된 프로그램 펄스 횟수(PD)를 '초기화된 제2 프로그램 시작전압'에 적용하는 방법 통해 결정된 새로운 '제2 프로그램 시작전압'을 공급받아 제2 프로그램 동작이 수행된다. 이때, 제2 프로그램 동작은 새로운 '제2 프로그램 시작전압'을 공급받기 때문에 제1 프로그램 동작보다 더 빠른 타이밍에 프로그램 동작을 완료하는 것이 가능하다. 참고로, 제2 프로그램 동작도 일반적인 ISPP 방식을 사용하여 동작한다.
전술한 도 9 내지 도 11을 통해 단일 페이지 영역(900<0:K>, 901<0:K>, …)를 프로그램 시킬 때 하위비트 프로그램 동작이 발생하는 과정에서 단일 페이지 영역(900<0:K>, 901<0:K>, …)의 특성에 적합한 초기 시작전압을 찾아내기 위해 필요한 정보 - 1 비트 패스가 검출되기까지 카운팅된 프로그램 펄스 횟수(PD)임 - 를 내부에 포함된 다수의 보조 셀에 저장할 수 있다. 이렇게 내부의 다수의 보조 셀에 저장된 단일 페이지 영역(900<0:K>, 901<0:K>, …)의 특성에 적합한 초기 시작전압을 찾아내기 위해 필요한 정보는 상위비트 프로그램 동작이 발생하는 과정에서 사용되어 상위비트 프로그램 동작에 걸리는 시간을 크게 단축시킬 수 있다.
또한, 단일 페이지 영역(900<0:K>, 901<0:K>, …) 내부의 다수의 보조 셀에 저장된 단일 페이지 영역(900<0:K>, 901<0:K>, …)의 특성에 적합한 초기 시작전압을 찾아내기 위해 필요한 정보는 불휘발성 메모리 장치에 전원이 공급되지 않는 상황에서도 지워지지 않는다. 따라서, 하위비트 프로그램 동작이 발생한 이후 전원공급이 끊어졌다가 다시 공급되더라도 상위비트 프로그램 동작이 발생하는 과정에서 사용되어 상위비트 프로그램 동작에 걸리는 시간을 크게 단축시킬 수 있다. 마찬가지로, 단일 페이지 영역(900<0:K>, 901<0:K>, …) 내부의 다수의 노말 셀(BL<0:M-1>에 대응함)에 대한 소거 동작과 다수의 보조 셀(BL<M:N-1>에 대응함)에 대한 소거 동작을 서로 다른 방식으로 컨트롤할 수 있다면, 불휘발성 메모리 장치의 동작 초기에 다수의 단일 페이지 영역(900<0:K>, 901<0:K>, …) 각각의 특성에 적합한 초기 시작전압을 찾아내어 내부의 다수의 보조 셀(BL<M:N-1>에 대응함)에 저장한 다음 이후의 모든 프로그램 동작에 적용하는 것도 가능하다. 즉, 다수의 노말 셀(BL<0:M-1>에 대응함) 및 다수의 보조 셀(BL<M:N-1>에 대응함)이 멀티 레벨 셀(Multi Level Cell : MLC)인 경우 뿐만 아니라 싱글 레벨 셀(Single Level Cell : SLC)라고 하여도 그 프로그램 동작 속도를 단축시키는데 본 발명의 아이디어가 적용될 수 있다.
도 12는 도 9에 도시된 본 발명의 실시예에 따른 불휘발성 메모리 장치의 메모리 셀 어레이 및 페이지 버퍼링부의 두 번째 구성을 상세히 도시한 블록 다이어그램이다.
참고로, 도 12에 도시된 도면은 전술한 도 10과 마찬가지로 도 9에 도시된 불휘발성 메모리 장치의 구성요소 중 메모리 셀 어레이(900)와 페이지 버퍼링부(910)의 구체적인 구성을 도시한 도면이라는 것을 알 수 있다. 다만, 도 10에 도시된 메모리 셀 어레이(900)의 구체적인 구성이 도 10에 도시된 도면과 큰 차이점을 갖기 때문에 그 전반적인 동작도 차이가 발생할 수 있으며, 이하에서 개시될 도 12에 대한 설명에서는 도 10과 도 12의 차이점을 기준으로 설명이 이루어질 것이다.
도 12를 참조하면, 본 발명의 실시예에 따른 불휘발성 메모리 장치의 메모리 셀 어레이(900)는, 노말 영역(900C)와 보조 영역(900D)를 포함한다. 마찬가지로, 페이지 버퍼링부(910)는 메모리 셀 어레이(900)의 노말 영역(900C)에 대응하는 노말 페이지 버퍼링부(910C)와 보조 영역(900D)에 대응하는 보조 페이지 버퍼링부(910D)를 포함한다.
여기서, 메모리 셀 어레이(900)의 노말 영역(900C)은 상기에서 설명한 통상적인 불휘발성 메모리 장치의 메인 영역과 스페어 영역 및 리던던시 영역을 모두 아우르는 영역이다. 반면, 메모리 셀 어레이(900)의 보조 영역(900D)은 상기에서 설명한 통상적인 불휘발성 메모리 장치에는 포함되지 않았던 영역이다. 즉, 메모리 셀 어레이(900)의 보조 영역(900D)은 본 발명의 실시예에 따른 불휘발성 메모리 장치를 위해 추가된 영역이며 수 바이트(byte)의 용량을 가질 수 있도록 설계된다. 이때, 메모리 셀 어레이(900)의 보조 영역(900D)은 통상적인 불휘발성 메모리 장치에 완전히 새롭게 추가된 영역으로써 메모리 셀 어레이(900)의 전체 영역 크기를 조금 더 증가시키는 방식으로 통해 구현될 수 있다. 물론, 메모리 셀 어레이(900)의 전체 영역 크기를 증가시키지 않고 상기에서 설명한 통상적인 불휘발성 메모리 장치에 이미 포함되어 있는 스페어 영역 또는 리던던시 영역의 일부 구간을 분할하여 보조 영역(900D)으로서 설정하는 것도 가능하다.
이렇게, 메모리 셀 어레이(900)가 노말 영역(900C)과 보조 영역(900D)을 포함하기 때문에 메모리 셀 어레이(900)에 구비되어 각각 다수의 셀을 포함하며 서로 워드라인(WL<0:K>)을 공유하는 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …) 및 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)도 각각 다수의 노말 셀(BLE<0:M-1> 및 BLO<0:M-1>에 대응함)과 다수의 보조 셀(BLE<M:N-1> 및 BLO<M:N-1>에 대응함)을 포함하는 형태로 구성된다. 즉, 워드라인(WL<0:K>)을 공유하는 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)도 다수의 노말 셀(BLE<0:M-1>에 대응함)과 다수의 보조 셀(BLE<M:N-1>에 대응함)을 포함하는 형태로 구성되고, 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)도 다수의 노말 셀(BLO<0:M-1>에 대응함)과 다수의 보조 셀(BLO<M:N-1>에 대응함)을 포함하는 형태로 구성된다.
참고로, 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)과 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)은 워드라인(WL<0:K>)을 공유하는 형태이기 때문에 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)에 포함된 다수의 노말 셀(BLE<0:M-1>에 대응함) 및 다수의 보조 셀(BLE<M:N-1>에 대응함)과 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)에 포함된 다수의 노말 셀(BLO<0:M-1>에 대응함) 및 다수의 보조 셀(BLO<M:N-1>에 대응함)이 도면에서 도시된 것과 같이 서로 번갈아 가면서 위치하게 되는 것을 알 수 있다. 이와 같은 아키텍쳐 방식은 일반적으로 페이지 버퍼가 차지하는 면적 비해 메모리 셀 어레이 스트링이 차지하는 면적이 더 작기 때문에 이루어지는 방식이며, 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)과 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)은 서로 워드라인(WL<0:K>)을 공유한다는 점 이외에 완전히 독립된 동작을 수행하게 된다.
그리고, 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 프로그램 대상 셀 중 기준전압보다 큰 전압으로 프로그램된 셀이 발생하는 경우 1 비트 패스 신호(1BIT_PASS)를 출력하는 비트 패스 검출부(920)와, 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)에 대한 프로그램 동작과정에서 1 비트 패스 신호(1BIT_PASS)가 출력되는 시점까지 인가된 프로그램 펄스의 횟수를 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 다수의 보조 셀(BLE<M:N-1>에 대응함)에 저장하는 프로그램 펄스 인가횟수 저장부(940), 및 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 다수의 보조 셀(BLE<M:N-1>에 대응함)에 저장된 프로그램 펄스의 인가횟수를 기초로 하여 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …) 또는 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)의 프로그램 동작에 대한 프로그램 시작전압을 설정하는 프로그램 시작 전압 설정부(930)를 구비한다.
또한, 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)에 대한 프로그램 동작과정에서 1 비트 패스 신호(1BIT_PASS)가 출력되는 시점까지 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)으로 인가되는 프로그램 펄스의 횟수를 카운팅하여 프로그램 펄스 인가횟수 저장부(940)로 전달하는 프로그램 펄스 카운팅부(950)를 더 구비한다.
전술한 구성에서 메모리 셀 어레이(900)에 구비된 다수의 셀은 모두 싱글 레벨 셀(SLC)일 수도 있고 멀티 레벨 셀(MLC)일 수도 있다. 즉, 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)에 포함된 다수의 노말 셀(BLE<0:M-1>에 대응함)과 다수의 보조 셀(BLE<M:N-1>에 대응함) 및 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)에 포함된 다수의 노말 셀(BLO<0:M-1>에 대응함)과 다수의 보조 셀(BLO<M:N-1>에 대응함)은 모두 싱글 레벨 셀(SLC)일 수도 있고 멀티 레벨 셀(MLC)일 수도 있다. 메모리 셀 어레이(900)에 구비된 다수의 셀이 싱글 레벨 셀(SLC)인지 아니면 멀티 레벨 셀(MLC)인지에 따라 그 동작이 약간 달라질 수 있지만 도 11에 도시된 순서도를 통해 모두 설명가능하다.
구체적으로 도 11을 참조하여 본 발명의 실시예에 따른 불휘발성 메모리 장치의 메모리 셀 어레이(900)에 구비된 다수의 셀이 싱글 레벨 셀(SLC)인 경우를 설명하면 다음과 같다.
먼저, 불휘발성 메모리 장치에 파워가 공급(1100)될 때, '초기화된 제1 프로그램 시작전압'과 '초기화된 제2 프로그램 시작전압'이 제공되는 것으로 되어 있는데, 도 12에 도시된 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)과 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)에 포함된 다수의 셀은 싱글 레벨 셀(SLC)이므로 하나의 셀에 대해 두 번의 프로그램 동작이 이루어질 수 없다. 따라서, '초기화된 제1 프로그램 시작전압'은 '제1 페이지 영역의 초기화된 프로그램 시작전압'으로 대치될 수 있고, '초기화된 제2 프로그램 시작전압'은 '제2 페이지 영역의 초기화된 프로그램 시작전압'으로 대치될 수 있다. 이때, '제1 페이지 영역의 초기화된 프로그램 시작전압'과 '제2 페이지 영역의 초기화된 프로그램 시작전압'은 상기의 도 2에서 설명했던 소거 상태의 셀들에 대하여 최초로 인가되는 프로그램 시작전압(Vstart)라고 볼 수 있으며, 설계자에 의해 그 기본 값(default value)이 조절된다. 참고로, '제1 페이지 영역의 초기화된 프로그램 시작전압'과 '제2 페이지 영역의 초기화된 프로그램 시작전압'은 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …) 및 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)에 각각 적용될 상수이므로 일반적으로는 서로 같아지도록 그 기본 값(default value)이 조절된다. 물론, '제1 페이지 영역의 초기화된 프로그램 시작전압'과 '제2 페이지 영역의 초기화된 프로그램 시작전압'의 기본 값이 같아지도록 조절된다는 것은 어디까지나 설계자의 선택에 의해 변화될 수 있는 사항이므로, 서로 달라지도록 조절되는 것도 얼마든지 가능하다.
그 후, 어떤 프로그램 동작을 수행할 것인지를 결정(1110)하게 된다. 즉, '제1 프로그램 동작'을 수행할 것인지 아니면 '제2 프로그램 동작'을 수행하게 될 것인지를 선택하게 된다. 이때, 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …) 및 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)에 포함된 다수의 셀은 모두 싱글 레벨 셀(SLC)이므로 도 11에 도시된 '제1 프로그램'은 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 프로그램 동작에 대응되고, 도 11에 도시된 '제2 프로그램'은 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)의 프로그램 동작에 대응된다. 즉, 싱글 레벨 셀(SLC)을 갖는 일반적인 불휘발성 메모리 장치에서 단위 셀에 대한 프로그램 동작은 한 번만 이루어진다는 것과 같다.
먼저, '제1 프로그램 동작'에 대응하는 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)에 대한 프로그램 동작을 설명하면, '제1 페이지 영역의 초기화된 프로그램 시작전압'이 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)으로 공급(1120)하게 되고, 이어서 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)에서 1 비트 패스가 검출되었는지 확인(1122)한다. 이때, 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)에서 1 비트 패스가 검출되지 않았다면 '제1 페이지 영역의 초기화된 프로그램 시작전압'에'스텝전압'을 합한 전압을 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)으로 다시 공급(1120)하게 되고, 이어서 다시 1 비트 패스가 검출되었는지 확인(1122)한다. 또 다시 1 비트 패스가 검출되지 않았다면 '제1 페이지 영역의 초기화된 프로그램 시작전압'에'스텝전압 * 2 '를 합한 전압을 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)으로 다시 공급(1120)하게 되고, 이어서 다시 1 비트 패스가 검출되었는지 확인(1122)한다.
이와 같이 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)에 프로그램 전압을 공급하는 동작(1120)과 1 비트 패스가 검출되었는지 확인하는 동작(1122)를 계속 반복하면서 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)에 공급되는 프로그램 전압의 크기를 '스텝전압 * N'(N = 반복횟수)씩 증가시킨다. 즉, '제1 페이지 영역의 초기화된 프로그램 시작전압'을 기준으로 일반적인 ISPP동작을 수행하면서 1 비트 패스가 검출되었는지 확인하는 동작(1122)을 계속 수행한다.
이렇게, 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)에 프로그램 전압을 공급하는 동작(1120)과 1 비트 패스가 검출되었는지 확인하는 동작(1122)를 계속 반복되다가 1 비트 패스가 검출되는 경우, 프로그램 펄스 카운팅부(950)에서 출력되는 1 비트 패스가 검출되기까지 카운팅된 프로그램 펄스 횟수(PD)를 프로그램 펄스 인가횟수 저장부(940)를 통해 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 보조 페이지 버퍼링부(910D)에 셋팅(1124)하고 이어서 제1 프로그램 동작을 계속 수행(1126)하여 제1 프로그램 동작이 완료(1150)될 수 있도록 한다.
이와 같이, 프로그램 펄스 인가횟수 저장부(940)가 프로그램 펄스 카운팅부(950)에서 출력되는 1 비트 패스가 검출되기까지 카운팅된 프로그램 펄스 횟수(PD)를 보조 페이지 버퍼링부(910D)에 셋팅한 후 제1 프로그램 동작을 수행을 완료하게 되면, 보조 페이지 버퍼링부(910D)에 대응하는 다수의 보조 셀(BL<M:N-1>에 대응함)에 프로그램 펄스 카운팅부(950)에서 출력되는 1 비트 패스가 검출되기까지 카운팅된 프로그램 펄스 횟수(PD)가 저장된다는 것을 알 수 있다.
또한, 다수의 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)은 각각 다수의 노말 셀(BLE<0:M-1>에 대응함)과 다수의 보조 셀(BLE<M:N-1>에 대응함)을 구비하고 있으므로, 각 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 다수의 보조 셀(BLE<M:N-1>에 대응함)에는 각각의 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)에 대응하는 1 비트 패스가 검출되기 까지 카운팅된 프로그램 펄스 횟수(PD)가 독립적으로 저장되는 것을 알 수 있다.
참고로, 전술한 제1 페이지 영역의 프로그램 동작에는 도 9에 도시된 컨트롤러 내부의 프로그램 펄스 카운팅부(950)와 프로그램 펄스 인가횟수 저장부(940)가 대응될 것이다. 즉, 일반적인 ISPP 동작을 수행하는 회로는 도 9에 도시된 컨트롤러에 이미 포함되어 있고 도시되지 않았다는 것을 알 수 있다.
그리고, 제2 프로그램 동작을 설명하면, 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 프로그램 동작이 완료되어 1 비트 패스가 검출되기까지 카운팅된 프로그램 펄스 횟수(PD)가 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 다수의 보조 셀(BL<M:N-1>에 대응함)에 저장된 상태에서 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)의 프로그램 동작이 수행되어야 하기에 '제2 페이지 영역의 초기화된 프로그램 시작전압'을 공급하기 전에 먼저 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 다수의 보조 셀(BLE<M:N-1>에 대응함)에 저장된 1 비트 패스가 검출되기까지 카운팅된 프로그램 펄스 횟수(PD)를 리드(1140)한다.
리드된 1 비트 패스가 검출되기까지 카운팅된 프로그램 펄스 횟수(PD)를 '제2 페이지 영역의 초기화된 프로그램 시작전압'에 적용하는 것은 도 9에 도시된 프로그램 시작전압 설정부(930)에 의해 이루어지는데, 그 방식은 다음과 같이 두 가지로 나뉘어 질 수 있다.
첫 번째는, 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 다수의 보조 셀(BLE<M:N-1>에 대응함)에 저장된 프로그램 펄스의 인가횟수(PD)를 리드한 뒤, 리드된 프로그램 펄스의 인가횟수(PD)에 '스텝전압'을 곱한 값을 '제2 페이지 영역의 초기화된 프로그램 시작전압'의 값에 더하여 새로운 '제2 페이지 영역의 프로그램 시작전압'으로서 설정(1142)하게 된다.
두 번째는, 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 다수의 보조 셀(BL<M:N-1>에 대응함)에 저장된 프로그램 펄스의 인가횟수(PD)를 리드한 뒤, 리드된 프로그램 펄스의 인가횟수(PD)가 임계값보다 큰 경우 리드된 프로그램 펄스 인가횟수(PD)와 임계값의 차이만큼 '스텝전압'을 곱한 값을 '제2 페이지 영역의 초기화된 프로그램 시작전압'의 값에 더하여 새로운 '제2 페이지 영역의 프로그램 시작전압'으로서 설정(1142)한다. 하지만, 리드된 프로그램 펄스의 인가횟수(PD)가 임계값보다 작거나 같은 경우 '제2 페이지 영역의 초기화된 프로그램 시작전압'을 그대로 '제2 페이지 영역의 프로그램 시작전압'으로서 설정(1142)하게 된다. 이때. 임계값은 셀의 특성등에 따라 실시자에 의해 최적의 값으로 선택될 수 있다. 예컨대, 리드된 프로그램 펄스의 인가횟수(PD)가 '2'보다 작은 값이면 큰 의미가 없다고 판단하여 '2'를 임계값으로 설정할 수 있다.
이와 같이 리드된 1 비트 패스가 검출되기까지 카운팅된 프로그램 펄스 횟수(PD)를 '제2 페이지 영역의 초기화된 프로그램 시작전압'에 적용하는 방법을 통해 결정된 새로운 '제2 페이지 영역의 프로그램 시작전압'을 공급받아 제2 페이지 영역의 프로그램 동작이 수행된다. 이때, 제2 페이지 영역의 프로그램 동작은 새로운 '제2 페이지 영역의 프로그램 시작전압'을 공급받기 때문에 제1 페이지 영역의 프로그램 동작보다 더 빠른 타이밍에 프로그램 동작을 완료하는 것이 가능하다. 참고로, 제2 페이지 영역의 프로그램 동작도 일반적인 ISPP 방식을 사용하여 동작한다.
전술한 도 9와 도 11 및 도 12를 통해 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)를 프로그램 동작시키는 과정에서 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 특성에 적합한 초기 시작전압을 찾아내기 위해 필요한 정보 - 1 비트 패스가 검출되기까지 카운팅된 프로그램 펄스 횟수(PD)임 - 를 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)에 포함된 다수의 보조 셀에 저장할 수 있다. 이때, 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)과 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)은 워드라인(WL<0:K>)을 공유하는 형태이기 때문에 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 특성에 적합한 초기 시작전압은 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)의 특성에 적합한 초기 시작전압이 될 수 있다. 따라서, 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 다수의 보조 셀에 저장된 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 특성에 적합한 초기 시작전압을 찾아내기 위해 필요한 정보는 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)의 프로그램 동작이 발생하는 과정에서 사용되어 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)의 프로그램 동작에 걸리는 시간을 크게 단축시킬 수 있다.
또한, 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 다수의 보조 셀에 저장된 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 특성에 적합한 초기 시작전압을 찾아내기 위해 필요한 정보는 불휘발성 메모리 장치에 전원이 공급되지 않는 상황에서도 지워지지 않는다. 따라서, 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 프로그램 동작이 발생한 이후 전원공급이 끊어졌다가 다시 공급되더라도 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)의 프로그램 동작이 발생하는 과정에서 사용되어 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)의 프로그램 동작에 걸리는 시간을 크게 단축시킬 수 있다.
그리고, 도 11을 참조하여 본 발명의 실시예에 따른 불휘발성 메모리 장치의 메모리 셀 어레이(900)에 구비된 다수의 셀이 멀티 레벨 셀(MLC)인 경우를 설명하면 다음과 같다.
먼저, 불휘발성 메모리 장치에 파워가 공급(1100)될 때, '초기화된 제1 프로그램 시작전압'과 '초기화된 제2 프로그램 시작전압'이 제공되는 것으로 되어 있는데, 도 12에 도시된 메모리 셀 어레이(900)는 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)과 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)를 포함하는 구성이면서 동시에 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)과 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)에 각각 포함된 다수의 셀들이 모두 멀티 레벨 셀(MLC)이기 때문에 단순히 '초기화된 제1 프로그램 시작전압'과 '초기화된 제2 프로그램 시작전압'라는 2가지 프로그램 시작전압으로 구분될 수 없다. 따라서, '초기화된 제1 프로그램 시작전압'은 '제1 페이지 영역의 초기화된 제1 프로그램 시작전압' 및 '제1 페이지 영역의 초기화된 제2 프로그램 시작전압'으로 대치될 수 있고, '초기화된 제2 프로그램 시작전압'은 '제2 페이지 영역의 초기화된 제1 프로그램 시작전압' 및 '제2 페이지 영역의 초기화된 제2 프로그램 시작전압'으로 대치될 수 있다.
이때, '제1 페이지 영역의 초기화된 제1 프로그램 시작전압'과 '제1 페이지 영역의 초기화된 제2 프로그램 시작전압'및'제2 페이지 영역의 초기화된 제1 프로그램 시작전압'과 '제2 페이지 영역의 초기화된 제2 프로그램 시작전압'은 상기의 도 2에서 설명했던 소거 상태의 셀들에 대하여 최초로 인가되는 프로그램 시작전압(Vstart)라고 볼 수 있으며, 설계자에 의해 그 기본 값(default value)이 조절된다. 참고로, '제1 페이지 영역의 초기화된 제1 프로그램 시작전압'과 '제1 페이지 영역의 초기화된 제2 프로그램 시작전압'및'제2 페이지 영역의 초기화된 제1 프로그램 시작전압'과 '제2 페이지 영역의 초기화된 제2 프로그램 시작전압'은 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …) 및 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)에 각각 적용될 상수이므로 일반적으로는 서로 같아지도록 그 기본 값(default value)이 조절된다. 물론, '제1 페이지 영역의 초기화된 제1 프로그램 시작전압'과 '제1 페이지 영역의 초기화된 제2 프로그램 시작전압'및'제2 페이지 영역의 초기화된 제1 프로그램 시작전압'과 '제2 페이지 영역의 초기화된 제2 프로그램 시작전압'의 기본 값이 같아지도록 조절된다는 것은 어디까지나 설계자의 선택에 의해 변화될 수 있는 사항이므로, 서로 달라지도록 조절되는 것도 얼마든지 가능하다.
그 후, 어떤 프로그램 동작을 수행할 것인지를 결정(1110)하게 된다. 즉, '제1 프로그램 동작'을 수행할 것인지 아니면 '제2 프로그램 동작'을 수행하게 될 것인지를 선택하게 된다. 이때, 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …) 및 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)에 포함된 다수의 셀은 모두 멀티 레벨 셀(MLC)이므로 도 11에 도시된 '제1 프로그램'과 '제2 프로그램'은 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …) 및 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)의 프로그램 동작에 모두 대응될 수 있다. 즉, 멀티 레벨 셀(MLC)을 갖는 일반적인 불휘발성 메모리 장치에서 단위 셀에 대한 프로그램 동작은 하위비트 프로그램 동작이 수행되고 이후에 상위비트 프로그램 동작이 수행되는 것과 같다.
여기서, 본 발명의 실시예에 따른 불휘발성 메모리 장치의 메모리 셀 어레이(900)에 구비된 다수의 셀이 멀티 레벨 셀(MLC)이고, 워드라인(WL<0:K>)을 공유하는 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)과 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)를 포함하기 때문에 특별히 달라질 수 있는 동작이 추가된다.
구체적으로, 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 제1 프로그램 동작을 수행할 때에는 도 11에 도시된 '제1 프로그램' 동작을 그대로 수행한다. '제1 프로그램'동작은 전술한 설명에 구체적으로 개시되어 있으므로 이하의 설명에서는 자세히 개시하지 않도록 하겠다.
이렇게, '제1 프로그램'동작이 수행되므로 인해 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 보조 셀(BLE<M:N-1>에 대응함)에는 1 비트 패스가 검출되기까지 카운팅된 프로그램 펄스 횟수(PD)가 저장된다.
이어서, 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 제2 프로그램 동작을 수행할 때에는 도 11에 도시된 '제2 프로그램' 동작을 그대로 수행한다. '제2 프로그램'동작은 전술한 설명에 구체적으로 개시되어 있으므로 이하의 설명에서는 자세히 개시하지 않도록 하겠다.
이렇게, 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 제2 프로그램 동작을 수행할 때'제2 프로그램' 동작을 그대로 수행되면서 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 보조 셀(BLE<M:N-1>에 대응함)에 저장되어 있던 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 특성에 적합한 초기 시작전압을 찾아내기 위해 필요한 정보를 그대로 사용하여 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 제2 프로그램 동작을 수행할 수 있으므로 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 제2 프로그램 동작에 걸리는 시간을 크게 단축시킬 수 있다.
이어서, 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)의 제1 프로그램 동작을 수행할 때에는 도 11에 도시된 '제1 프로그램'동작을 수행하는 것이 아니라 '제2 프로그램'동작을 수행한다. 이는, 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)과 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)가 서로 워드라인(WL<0:K>)을 공유하는 상태이기 때문에 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 특성에 적합한 초기 시작전압은 곧 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)의 특성에 적합한 초기 시작전압이라고 봐도 무방하기에 가능한 동작이다. 즉, 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 제1 프로그램 동작이 도 11의 '제1 프로그램'동작과 같은 방식으로 수행됨으로 인해 이미 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 다수의 보조 셀(BLE<M:N-1>에 대응함)에 저장되어 있는 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 특성에 적합한 초기 시작전압을 찾아내기 위해 필요한 정보를 그대로 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)의 프로그램 동작에 적용할 수 있다는 것을 의미한다. 따라서, 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)의 제1 프로그램 동작 및 제2 프로그램 동작을 수행할 때 모두 도 11에 도시된 '제2 프로그램'동작을 그대로 적용하여 수행하더라도 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 제1 프로그램 동작에 걸리는 시간이 크게 감소하는 것과 같이 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)의 제1 프로그램 동작 및 제2 프로그램 동작에 걸리는 시간이 크게 감소되도록 할 수 있다.
또한, 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 다수의 보조 셀(BLE<M:N-1>에 대응함)에 저장된 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 특성에 적합한 초기 시작전압을 찾아내기 위해 필요한 정보는 불휘발성 메모리 장치에 전원이 공급되지 않는 상황에서도 지워지지 않는다. 따라서, 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 제1 프로그램 동작이 발생한 이후 전원공급이 끊어졌다가 다시 공급되더라도 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 제2 프로그램 동작과 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)의 제1 프로그램 동작 및 제2 프로그램 동작이 발생하는 과정에서 사용되어 제1 페이지 영역(900<E0:EK>, 901<E0:EK>, …)의 제2 프로그램 동작과 제2 페이지 영역(900<O0:OK>, 901<O0:OK>, …)의 제1 프로그램 동작 및 제2 프로그램 동작에 걸리는 시간을 크게 단축시킬 수 있다.
도 13은 도 9에 도시된 본 발명의 실시예에 따른 불휘발성 메모리 장치의 메모리 셀 어레이 및 페이지 영역 버퍼링부의 세 번째 구성을 상세히 도시한 블록 다이어그램이다.
참고로, 전술한 설명에 개시된 도 10의 구성은 도시된 단일 페이지 영역(900<0:K>, 901<0:K>, …)가 각각 독립된 것과 같은 상태가 되어 한 개의 페이지 영역에서 발생하는 프로그램 동작 단위로 설정하였을 때를 가정한 것이다.
하지만, 도 10 도시된 단일 페이지 영역(900<0:K>, 901<0:K>, …)를 두 개 이상의 페이지 영역에서 발생하는 프로그램 동작 단위로 한정하여 설정하면 도 10의 구성은 도 13에 도시된 구성과 같이 정의될 수 있다.
도 13을 참조하면, 본 발명의 실시예에 따른 불휘발성 메모리 장치의 메모리 셀 어레이(900)는, 다수의 노말 셀(BL0:M-1>에 대응함)과 다수의 보조 셀(BL<M:N-1>에 대응함)을 각각 포함하여 서로 스트링을 공유하는 제1 페이지 영역(900<0>) 및 제2 페이지 영역(900<1:K>, 901<0:OK>, …)를 포함하는 형태가 된다. 즉, 메모리 셀 어레이(900)에 포함된 다수의 단일 페이지 영역(900<0:K>, 901<0:K>, …) 중 어느 하나의 페이지 영역(900<0>)가 제1 페이지 영역으로 설정되면 나머지 페이지 영역(900<1:K>, 901<0:OK>, …)은 제2 페이지 영역으로 설정될 수 있다는 것을 알 수 있다.
이렇게, 다수의 단일 페이지 영역(900<0:K>, 901<0:K>, …)를 제1 페이지 영역(900<0>)과 제2 페이지 영역(900<1:K>, 901<0:OK>, …)으로 구분하여 설정한 것을 제외하면 나머지 구성은 도 10에 도시된 구성과 동일하다.
구체적으로 메모리 셀 어레이(900)에 포함된 다수의 셀이 모두 싱글 레벨 셀(SLC)이라고 가정하면, 도 13에 도시된 불휘발성 메모리 장치는, 제1 페이지 영역(900<0>)의 프로그램 대상 셀 중 기준전압보다 큰 전압으로 프로그램된 셀이 발생하는 경우 1 비트 패스 신호(1BIT_PASS)를 출력하는 비트 패스 검출부(920)와, 제1 페이지 영역(900<0>)에 대한 프로그램 동작과정에서 1 비트 패스 신호(1BIT_PASS)가 출력되는 시점까지 인가된 프로그램 펄스의 횟수를 제1 페이지 영역(900<0>)의 다수의 보조 셀(BL<M:N-1>에 대응함)에 저장하는 프로그램 펄스 인가횟수 저장부(940), 및 제1 페이지 영역(900<0>)의 다수의 보조 셀(BL<M:N-1>에 대응함)에 저장된 프로그램 펄스의 인가횟수를 기초로 하여 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 프로그램 동작에 대한 프로그램 시작전압을 설정하는 프로그램 시작 전압 설정부(930)를 구비한다.
또한, 제1 페이지 영역(900<0>)에 대한 프로그램 동작과정에서 1 비트 패스 신호(1BIT_PASS)가 출력되는 시점까지 제1 페이지 영역(900<0>)으로 인가되는 프로그램 펄스의 횟수를 카운팅하여 프로그램 펄스 인가횟수 저장부(940)로 전달하는 프로그램 펄스 카운팅부(950)를 더 구비한다.
그리고, 메모리 셀 어레이(900)에 포함된 다수의 셀이 모두 멀티 레벨 셀(MLC)이라고 가정하면, 도 13에 도시된 불휘발성 메모리 장치는, 제1 페이지 영역(900<0>) 또는 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 프로그램 대상 셀 중 기준전압보다 큰 전압으로 프로그램된 셀이 발생하는 경우 1 비트 패스 신호(1BIT_PASS)를 출력하는 비트 패스 검출부(920)와, 제1 프로그램 시작전압이 적용된 제1 페이지 영역(900<0>)의 제1 프로그램 동작과정에서 1 비트 패스 신호(1BIT_PASS)가 출력되는 시점까지 인가된 프로그램 펄스의 횟수를 제1 페이지 영역(900<0>)의 다수의 보조 셀(BL<M:N-1>에 대응함)에 저장한 뒤, 저장된 프로그램 펄스의 횟수에 따라 제1 프로그램 시작전압을 조절하여 제1 페이지 영역(900<0>)의 제2 프로그램 동작에 적용하는 제1 프로그램 시작전압 조절부(930, 940, 950), 및 제1 프로그램 시작전압과 제2 프로그램 시작전압이 선택적으로 적용된 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 제1 프로그램 동작과정에서 1 비트 패스 신호(1BIT_PASS)가 출력되는 시점까지 인가된 프로그램 펄스의 횟수를 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 다수의 보조 셀(BL<M:N-1>에 대응함)에 저장한 뒤, 저장된 프로그램 펄스의 횟수에 따라 제2 프로그램 시작전압을 조절하여 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 제2 프로그램 동작에 적용하는 제2 프로그램 시작전압 조절부(930, 940, 950, 910)를 구비한다.
여기서, 제1 프로그램 시작전압 조절부(930, 940, 950)와 제2 프로그램 시작전압 조절부(930, 940, 950, 910)는 그 구성요소가 서로 겹치는 것을 알 수 있는데, 이는 전술한 설명과 같이 도 13의 구성과 도 10과 동일한 구성요소를 갖지만 그 동작이 다르다는 것을 나타내기 위해 도 9에 개시되었던 구성을 다른 범위로 나타냈다는 것을 의미한다.
먼저, 제1 프로그램 시작전압 조절부(930, 940, 950)는 도 9에 도시된 프로그램 펄스 인가횟수 저장부(940)와 프로그램 시작전압 설정부(930) 및 프로그램 펄스 카운팅부(950)를 그대로 구비하는 구성이다. 즉, 제1 프로그램 시작전압이 적용된 제1 페이지 영역(900<0>)의 제1 프로그램 동작과정에서 1 비트 패스 신호(1BIT_PASS)가 출력되는 시점까지 인가된 프로그램 펄스의 횟수를 제1 페이지 영역(900<0>)의 다수의 보조 셀(BL<M:N-1>에 대응함)에 저장하는 제1 프로그램 펄스 인가횟수 저장부(940)와, 제1 페이지 영역(900<0>)의 다수의 보조 셀(BL<M:N-1>에 대응함)에 저장된 프로그램 펄스의 인가횟수에 따라 제1 프로그램 시작전압을 설정하여 제1 페이지 영역(900<0>)에 대한 제2 프로그램 동작에 적용하는 제1 프로그램 시작전압 설정부(930), 및 제1 페이지 영역(900<0>)에 대한 제1 프로그램 동작과정에서 1 비트 패스 신호(1BIT_PASS)가 출력되는 시점까지 인가된 프로그램 펄스의 횟수를 카운팅하여 제1 프로그램 펄스 인가횟수 저장부(940)로 전달하는 프로그램 펄스 카운팅(950)를 구비하는 구성이다.
따라서, 제1 프로그램 시작전압 조절부(930, 940, 950)의 동작만을 살펴보면 도 11에 도시된 '제1 프로그램'동작과 '제2 프로그램'동작을 그대로 적용하는 것이 가능하다.
하지만, 제2 프로그램 시작전압 조절부(930, 940, 950, 910)는, 제1 프로그램 시작전압 조절부(930, 940, 950)와 다르게 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 제1 프로그램 동작에 적용되는 프로그램 시작전압을 제1 프로그램 시작전압과 제2 프로그램 시작전압 중 어느 하나의 전압으로 선택하는 동작이 추가된다. 이와 같은 동작상의 차이점으로 인해 제2 프로그램 시작전압 조절부(930, 940, 950, 910)는 도 9에 도시된 프로그램 펄스 인가횟수 저장부(940)와 프로그램 시작전압 설정부(930) 및 프로그램 펄스 카운팅부(950)를 그대로 구비하는 구성과 함께 페이지 버퍼링부(910)의 구성에 포함되어 동작되는 전압선택신호 생성부(9102)의 구성이 더 포함되어야 한다. 즉, 도 14에 도시된 구성과 같은 형태가 되어야 한다.
따라서, 제2 프로그램 시작전압 조절부(930, 940, 950, 910)는, 제1 페이지 영역(900<0>)의 다수의 보조 영역(900D)에 저장된 프로그램 펄스의 인가횟수를 임계값과 비교하여 전압선택신호(VSEL)를 생성하는 전압선택신호 생성부(9102)와, 전압선택신호(VSEL)에 따라 제1 프로그램 시작전압과 제2 프로그램 시작전압이 선택적으로 적용된 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 제1 프로그램 동작과정에서 1 비트 패스 신호(1BIT_PASS)가 출력되는 시점까지 인가된 프로그램 펄스의 횟수를 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 다수의 보조 영역(900D)에 저장하는 제2 프로그램 펄스 인가횟수 저장부(940)와, 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 다수의 보조 영역(900D)에 저장된 프로그램 펄스의 인가횟수에 따라 제2 프로그램 시작전압을 설정하여 제2 페이지 영역(900<1:K>, 901<0:OK>, …)에 대한 제2 프로그램 동작에 적용하는 제2 프로그램 시작전압 설정부(930), 및 제2 페이지 영역(900<1:K>, 901<0:OK>, …)에 대한 제1 프로그램 동작과정에서 1 비트 패스 신호(1BIT_PASS)가 출력되는 시점까지 인가된 프로그램 펄스의 횟수를 카운팅하여 제2 프로그램 펄스 인가횟수 저장부(940)로 전달하는 프로그램 펄스 카운팅부(950)를 더 구비하는 형태가 된다.
이렇게, 제2 프로그램 시작전압 조절부(930, 940, 950, 910)의 동작은 제1 프로그램 시작전압 조절부(930, 940, 950)의 동작과 서로 다르므로 도 11에 도시된 '제1 프로그램'동작과 '제2 프로그램'동작을 그대로 적용할 수 없다. 때문에, 도 11에 도시된 '제1 프로그램'동작과 '제2 프로그램'동작을 약간 변형한 도 15에 도시된 '제1 프로그램'동작과 '제2 프로그램'동작을 적용하게 된다.
도 15를 참조하여 본 발명의 실시예에 따른 불휘발성 메모리 장치의 프로그램 동작을 구체적으로 설명하면 다음과 같다.
먼저, 불휘발성 메모리 장치에 파워가 공급(1600)될 때, '초기화된 제1 프로그램 시작전압'과 '초기화된 제2 프로그램 시작전압'이 제공되는 것으로 되어 있는데 이는 도 15의 동작단계가 단일 페이지 영역(900<0:K>, 901<0:K>, …)에 각각 적용되는 것을 가정하여 정의된 동작인 반면, 제2 프로그램 시작전압 조절부(930, 940, 950, 910)에서는 제1 프로그램 시작전압 조절부(930, 940, 950)에서 그 값이 이미 조절되며 제1 페이지 영역(900<0>)의 제1 프로그램 동작과 제2 프로그램 동작에 대응하는 프로그램 시작전압을 제1 프로그램 시작전압으로 그 동작을 정의하고, 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 제1 프로그램 동작과 제2 프로그램 동작에 대응하는 프로그램 시작전압을 제2 프로그램 시작전압으로 그 동작을 정의하였으므로, 도 15에 개시된'초기화된 제1 프로그램 시작전압'과 '초기화된 제2 프로그램 시작전압'이 제1 페이지 영역(900<0>)의 동작에 적용될 경우는 모두 제1 페이지 영역(900<0>)의 제1 프로그램 시작전압으로 대치될 수 있고, 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 동작에 적용될 경우는 모두 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 제2 프로그램 시작전압으로 대치될 수 있다.
불휘발성 메모리 장치에 파워가 공급(1600)된 이 후, 어떤 프로그램 동작을 수행할 것인지를 결정(1610)하게 된다. 즉, 도 15에 도시된 동작은 제2 프로그램 시작전압 조절부(930, 940, 950, 910)의 동작이므로 도 15에 도시된 '제1 프로그램' 동작을 수행하는 것은 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 제1 프로그램 동작을 수행하는 것이 되고, 도 15에 도시된 '제2 프로그램' 동작을 수행하는 것은 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 제2 프로그램 동작을 수행하는 것이 된다.
이때, 도 11에 도시된 '제1 프로그램'동작을 통해 제1 페이지 영역(900<0>)의 다수의 보조 셀(BL<M:N-1>에 대응함)에는 1 비트 패스가 검출되기까지 카운팅된 프로그램 펄스 횟수(PD[0])가 저장되어 있는 상태이므로, 도 15에 도시된 '제1 프로그램' 동작을 통해 수행되는 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 제1 프로그램 동작에서 제1 페이지 영역(900<0>)의 보조 셀(BL<M:N-1>에 대응함)에 저장된 프로그램 펄스 횟수(PD[0])를 리드(1630)하게 된다.
이후, 전압선택신호 생성부(9102)의 동작을 통해 리드된 제1 페이지 영역(900<0>)에서 1 비트 패스가 검출되기까지 카운팅된 프로그램 펄스 횟수(PD[0])를 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 임계값과 비교하는 동작(1631)을 수행하여 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 제2 프로그램 시작전압에 대치된 '초기화된 제1 프로그램 시작전압'을 설정하는 동작(1632)하게 된다.
즉, 리드된 제1 페이지 영역(900<0>)에서 1 비트 패스가 검출되기까지 카운팅된 프로그램 펄스 횟수(PD[0])가 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 임계값보다 큰 경우 전압선택신호(VSEL)가 활성화되어 리드된 프로그램 펄스 인가횟수(PD[0])와 '스텝전압'을 곱한 값을 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 제2 프로그램 시작전압에 대치된 '초기화된 제1 프로그램 시작전압'의 값에 더하여 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 제2 프로그램 시작전압에 대치된 새로운 '제1 프로그램 시작전압'으로서 설정(1632)되도록 한다. 물론, 전압선택신호(VSEL)가 활성화되는 것에 대응하여 리드된 프로그램 펄스 인가횟수(PD[0])와 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 임계값의 차이만큼 '스텝전압'을 곱한 값을 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 제2 프로그램 시작전압에 대치된 '초기화된 제1 프로그램 시작전압'의 값에 더하여 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 제2 프로그램 시작전압에 대치된 새로운 '제1 프로그램 시작전압'으로서 설정(1632)되도록 하는 것도 가능하다.
반대로, 리드된 제1 페이지 영역(900<0>)에서 1 비트 패스가 검출되기까지 카운팅된 프로그램 펄스 횟수(PD[0])가 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 임계값보다 작은 경우 전압선택신호(VSEL)가 비활성화되어 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 제2 프로그램 시작전압에 대치된 '초기화된 제1 프로그램 시작전압'이 그 값을 그대로 유지(1632)하도록 하게 된다.
참고로, 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 임계값은 셀의 특성등에 따라 실시자에 의해 최적의 값으로 선택될 수 있다. 예컨대, 리드된 프로그램 펄스의 인가횟수(PD[0])가 '2'보다 작은 값이면 큰 의미가 없다고 판단하여 '2'를 임계값으로 설정할 수 있다. 또한, 리드된 제1 페이지 영역(900<0>)에서 1 비트 패스가 검출되기까지 카운팅된 프로그램 펄스 횟수(PD[0])가 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 임계값보다 큰 상태가 되어 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 제2 프로그램 시작전압에 대치된 새로운 '제1 프로그램 시작전압'이 설정되는 경우는 제1 프로그램 시작전압 조절부(930, 940, 950)의 동작을 통해 설정이 끝난 제1 페이지 영역(900<0>)의 제1 프로그램 시작전압과 같은 값을 갖는 상태라는 것을 알 수 있으며, 따라서, 도 15에 도시된 '제1 프로그램'동작 중 도면부호'1630, 1631, 1632'에 해당하는 동작은 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 제2 프로그램 시작전압이 제1 페이지 영역(900<0>)의 제1 프로그램 시작전압에 대응하는 전압이 될지 아니면 '초기화된 제1 프로그램 시작전압'에 대응하는 전압이 될지를 결정하는 동작이 되는 것을 알 수 있다.
이렇게, 도 15에 도시된 '제1 프로그램' 동작 중 도면부호'1630, 1631, 1632'에 해당하는 동작이 종료되어 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 제2 프로그램 시작전압이 결정된 이후의 동작은 도 11에 도시된 '제1 프로그램'동작과 동일한 상태가 된다. 즉, 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 제1 프로그램 동작 중 1 비트 패스가 검출되기까지 카운팅된 프로그램 펄스 횟수(PD)를 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 다수의 보조 셀(BL<M:N-1>에 대응함)에 저장하게 된다.
그리고, 도 15에 도시된 '제2 프로그램' 동작은 도 11에 도시된 '제2 프로그램' 동작과 동일한 상태가 된다. 즉, 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 제2 프로그램 동작에 대응하는 제2 프로그램 시작전압은 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 보조 셀(BL<M:N-1>에 대응함)에 저장된 1 비트 패스가 검출되기까지 카운팅된 프로그램 펄스 횟수(PD)를 기준으로 결정된다.
전술한 도 9와 도 11 및 도 13 내지 도 15를 통해 메모리 셀 어레이(900)에 포함된 다수의 셀들이 싱글 레벨 셀(SLC)이라고 하면, 제1 페이지 영역(900<0>)를 프로그램 동작시키는 과정에서 제1 페이지 영역(900<0>)의 동작특성에 적합한 초기 시작전압을 찾아내기 위해 필요한 정보 - 1 비트 패스가 검출되기까지 카운팅된 프로그램 펄스 횟수(PD)임 - 를 제1 페이지 영역(900<0>)의 다수의 보조 셀(BL<M:N-1>에 대응함)에 저장한 뒤, 제2 페이지 영역(900<1:K>, 901<0:OK>, …)를 프로그램 동작시키는 과정에서 제1 페이지 영역(900<0>)의 동작특성에 적합한 초기 시작전압을 찾아내기 위해 필요한 정보를 기준으로 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 동작특성에 적합한 초기 시작전압을 찾아내는 동작을 수행할 수 있으며, 이를 통해 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 프로그램 동작에 걸리는 시간을 단축시키는 것이 가능하다.
또한, 메모리 셀 어레이(900)에 포함된 다수의 셀들이 멀티 레벨 셀(MLC)이라고 하면, 제1 페이지 영역(900<0>)를 제1 프로그램 동작시키는 과정에서 제1 페이지 영역(900<0>)의 동작특성에 적합한 초기 시작전압을 찾아내기 위해 필요한 정보 - 1 비트 패스가 검출되기까지 카운팅된 프로그램 펄스 횟수(PD)임 - 를 제1 페이지 영역(900<0>)의 다수의 보조 셀(BL<M:N-1>에 대응함)에 저장한 뒤, 제1 페이지 영역(900<0>)의 제2 프로그램 동작에 적용하여 제1 페이지 영역의 제2 프로그램 동작에 걸리는 시간을 크게 단축시킬 수 있을 뿐만 아니라 제2 페이지 영역(900<1:K>, 901<0:OK>, …)를 제1 프로그램 동작시키는 과정에서 제1 페이지 영역(900<0>)의 동작특성에 적합한 초기 시작전압을 찾아내기 위해 필요한 정보를 기준으로 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 동작특성에 적합한 초기 시작전압을 찾아내는 동작을 수행할 수 있으며, 이를 통해 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 동작특성에 적합한 초기 시작전압을 찾아내는 동작에 걸리는 시간과 제2 페이지 영역(900<1:K>, 901<0:OK>, …)의 제1 프로그램 동작에 걸리는 시간을 단축시킬 수 있다.
이상에서 살펴본 바와 같이 본 발명의 실시예를 적용하면, 다수의 노말 셀과 다수의 보조 셀을 포함하는 단일 페이지 영역를 제1 프로그램 동작시킬 때 알 수 있는 최적의 프로그램 시작전압에 대한 정보를 다수의 보조 셀에 저장한 후, 단일 페이지 영역를 제2 프로그램 동작시킬 때 적용함으로써, 불휘발성 메모리 장치의 프로그램 시간 중 검증 동작에 소요되는 시간을 최소화시킬 수 있다.
또한, 다수의 노말 셀과 다수의 보조 셀을 각각 포함하는 제1 페이지 영역를 프로그램 동작시킬 때 알 수 있는 최적의 프로그램 시작전압에 대한 정보를 제1 페이지 영역의 다수의 보조 셀에 저장한 후, 제2 페이지 영역를 프로그램 동작시킬 때 적용함으로써, 불휘발성 메모리 장치의 프로그램 시간 중 검증 동작에 소요되는 시간을 최소화시킬 수 있다.
또한, 최적의 프로그램 시작전압에 대한 정보를 다수의 보조 셀에 저장하므로 불휘발성 메모리 장치에 전원이 공급되지 않는 경우에도 그 정보가 사라지지 않는 상태가 된다. 이로 인해, 데이터 입/출력 과정에서 전원 공급 상황이 수시로 변동되는 경우에도 언제나 안정적으로 프로그램 시간 중 검증 동작에 소요되는 시간을 최소화시킬 수 있다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속한 기술분야에서 통상의 지식을 가진자에게 있어 명백할 것이다.
900 : 메모리 셀 어레이 910 : 페이지 버퍼링부
920 : 비트 패스 검출부 930 : 프로그램 시작전압 설정부
940 : 프로그램 펄스 인가횟수 저장부 960 : 고전압 발생기
900A, 900C : 노말 영역
910A, 910C : 노말 페이지 버퍼링부
900B, 900D : 보조 영역
910B, 910D : 보조 페이지 버퍼링부

Claims (58)

  1. 다수의 노말 셀과 다수의 보조 셀을 포함하는 페이지 영역;
    상기 페이지 영역의 프로그램 대상 셀 중 기준전압보다 큰 전압으로 프로그램된 셀이 발생하는 경우 1 비트 패스 신호를 출력하는 비트 패스 검출부;
    상기 페이지 영역에 대한 제1 프로그램 동작과정에서 상기 1 비트 패스 신호가 출력되는 시점까지 인가된 프로그램 펄스의 횟수를 상기 다수의 보조 셀에 저장하는 프로그램 펄스 인가횟수 저장부; 및
    상기 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수를 기초로 하여 상기 페이지 영역의 제2 프로그램 동작에 대한 프로그램 시작전압을 설정하는 프로그램 시작 전압 설정부
    를 구비하는 불휘발성 메모리 장치.
  2. 제1항에 있어서,
    상기 제1 프로그램 동작과정에서 상기 1 비트 패스 신호가 출력되는 시점까지 상기 페이지 영역으로 인가되는 프로그램 펄스의 횟수를 카운팅하여 상기 프로그램 펄스 인가횟수 저장부로 전달하는 프로그램 펄스 카운팅부를 더 구비하는 것을 특징으로 하는 불휘발성 메모리 장치.
  3. 제2항에 있어서,
    상기 다수의 노말 셀에 대응하는 노말 페이지 버퍼링부; 및
    상기 다수의 보조 셀에 대응하는 보조 페이지 버퍼링부를 더 구비하는 것을 특징으로 하는 불휘발성 메모리 장치.
  4. 제3항에 있어서,
    상기 프로그램 펄스 인가횟수 저장부는,
    상기 프로그램 펄스 카운팅부로부터 전달되는 프로그램 펄스의 인가횟수를 상기 보조 페이지 버퍼링부에 셋팅하여 상기 제1 프로그램 동작 중에 상기 프로그램 펄스 카운팅부로부터 전달되는 프로그램 펄스의 인가횟수가 상기 다수의 보조 셀에 저장될 수 있도록 하는 것을 특징으로 하는 불휘발성 메모리 장치.
  5. 제1항에 있어서,
    상기 프로그램 시작 전압 설정부는,
    상기 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수를 리드한 뒤, 리드된 프로그램 펄스의 인가횟수에 스텝전압을 곱한 값을 상기 제1 프로그램 동작의 시작전압 값에 더하여 상기 제2 프로그램 동작의 시작전압 값으로 설정하는 것을 특징으로 하는 불휘발성 메모리 장치.
  6. 제1항에 있어서,
    상기 프로그램 시작 전압 설정부는,
    상기 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수를 리드한 뒤, 리드된 프로그램 펄스의 인가횟수가 임계값보다 큰 경우 상기 리드된 프로그램 펄스 인가횟수와 임계값의 차이만큼 스텝전압을 곱한 값을 상기 제1 프로그램 동작의 시작전압 값에 더하여 상기 제2 프로그램 동작의 시작전압 값으로 설정하고,
    상기 리드된 프로그램 펄스의 인가횟수가 임계값보다 작거나 같은 경우 상기 제1 프로그램 동작의 시작전압 값을 상기 제2 프로그램 동작의 시작전압 값으로 설정하는 것을 특징으로 하는 불휘발성 메모리 장치.
  7. 제1항에 있어서,
    각각의 노말 셀 및 각각의 보조 셀은 멀티 레벨 셀(MLC)이며,
    상기 제1 프로그램 동작은 하위비트 프로그램 동작이고,
    상기 제2 프로그램 동작은 상위비트 프로그램 동작인 것을 특징으로 하는 불휘발성 메모리 장치.
  8. 다수의 노말 셀과 다수의 보조 셀을 각각 포함하며, 워드라인을 공유하는 제1 및 제2 페이지 영역;
    상기 제1 페이지 영역의 프로그램 대상 셀 중 기준전압보다 큰 전압으로 프로그램된 셀이 발생하는 경우 1 비트 패스 신호를 출력하는 비트 패스 검출부;
    상기 제1 페이지 영역에 대한 프로그램 동작과정에서 상기 1 비트 패스 신호가 출력되는 시점까지 인가된 프로그램 펄스의 횟수를 상기 제1 페이지 영역의 다수의 보조 셀에 저장하는 프로그램 펄스 인가횟수 저장부; 및
    상기 제1 페이지 영역의 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수를 기초로 하여 상기 제1 또는 제2 페이지 영역에 대한 프로그램 시작전압을 설정하는 프로그램 시작 전압 설정부
    를 구비하는 불휘발성 메모리 장치.
  9. 제8항에 있어서,
    상기 제1 페이지 영역에 대한 프로그램 동작과정에서 상기 1 비트 패스 신호가 출력되는 시점까지 상기 제1 페이지 영역으로 인가되는 프로그램 펄스의 횟수를 카운팅하여 상기 프로그램 펄스 인가횟수 저장부로 전달하는 프로그램 펄스 카운팅부를 더 구비하는 것을 특징으로 하는 불휘발성 메모리 장치.
  10. 제9항에 있어서,
    상기 제1 및 제2 페이지 영역의 다수의 노말 셀에 대응하는 노말 페이지 버퍼링부; 및
    상기 제1 및 제2 페이지 영역의 다수의 보조 셀에 대응하는 보조 페이지 버퍼링부를 더 구비하는 것을 특징으로 하는 불휘발성 메모리 장치.
  11. 제10항에 있어서,
    상기 제1 페이지 영역의 각각의 노말 셀 및 각각의 보조 셀과 및 제2 페이지 영역의 각각의 노말 셀 및 각각의 보조 셀은 싱글 레벨 셀(SLC)인 것을 특징으로 하는 불휘발성 메모리 장치.
  12. 제11항에 있어서,
    상기 프로그램 펄스 인가횟수 저장부는,
    상기 프로그램 펄스 카운팅부로부터 전달되는 프로그램 펄스의 인가횟수를 상기 보조 페이지 버퍼링부에 셋팅하여 상기 제1 페이지 영역에 대한 프로그램 동작 중에 상기 프로그램 펄스 카운팅부로부터 전달되는 프로그램 펄스의 인가횟수가 상기 제1 페이지 영역의 다수의 보조 셀에 저장될 수 있도록 하는 것을 특징으로 하는 불휘발성 메모리 장치.
  13. 제11항에 있어서,
    상기 프로그램 시작 전압 설정부는,
    상기 제1 페이지 영역의 다수의 보조 셀에 저장된 상기 프로그램 펄스의 인가횟수를 리드한 뒤, 리드된 프로그램 펄스의 인가횟수에 스텝전압을 곱한 값을 상기 제1 페이지 영역에 대한 프로그램 동작의 시작전압 값에 더하여 상기 제2 페이지 영역에 대한 프로그램 동작의 시작전압 값으로 설정하는 것을 특징으로 하는 불휘발성 메모리 장치.
  14. 제11항에 있어서,
    상기 프로그램 시작 전압 설정부는,
    상기 제1 페이지 영역의 다수의 보조 셀에 저장된 상기 프로그램 펄스의 인가횟수를 리드한 뒤, 리드된 프로그램 펄스의 인가횟수가 임계값보다 큰 경우 상기 리드된 프로그램 펄스 인가횟수와 임계값의 차이만큼 스텝전압을 곱한 값을 상기 제1 페이지 영역에 대한 프로그램 동작의 시작전압 값에 더하여 상기 제2 페이지 영역에 대한 프로그램 동작의 시작전압 값으로 설정하고,
    상기 리드된 프로그램 펄스의 인가횟수가 임계값보다 작거나 같은 경우 상기 제1 페이지 영역에 대한 프로그램 동작의 시작전압 값을 상기 제2 페이지 영역에 대한 프로그램 동작의 시작전압 값으로 설정하는 것을 특징으로 하는 불휘발성 메모리 장치.
  15. 제10항에 있어서,
    상기 제1 페이지 영역의 각각의 노말 셀 및 각각의 보조 셀과 및 제2 페이지 영역의 각각의 노말 셀 및 각각의 보조 셀은 멀티 레벨 셀(MLC)인 것을 특징으로 하는 불휘발성 메모리 장치.
  16. 제15항에 있어서,
    상기 프로그램 펄스 인가횟수 저장부는,
    상기 프로그램 펄스 카운팅부로부터 전달되는 프로그램 펄스의 인가횟수를 상기 보조 페이지 버퍼링부에 셋팅하여 상기 제1 페이지 영역에 대한 제1 프로그램 동작 중에 상기 프로그램 펄스 카운팅부로부터 전달되는 프로그램 펄스의 인가횟수가 상기 제1 페이지 영역의 다수의 보조 셀에 저장될 수 있도록 하는 것을 특징으로 하는 불휘발성 메모리 장치.
  17. 제15항에 있어서,
    상기 프로그램 시작 전압 설정부는,
    상기 제1 페이지 영역의 다수의 보조 셀에 저장된 상기 프로그램 펄스의 인가횟수를 리드한 뒤, 리드된 프로그램 펄스의 인가횟수에 스텝전압을 곱한 값을 상기 제1 페이지 영역에 대한 제1 프로그램 동작의 시작전압 값에 더하여 상기 제1 페이지 영역에 대한 제2 프로그램 동작과 상기 제2 페이지 영역에 대한 제1 및 제2 프로그램 동작의 시작전압 값으로 설정하는 것을 특징으로 하는 불휘발성 메모리 장치.
  18. 제15항에 있어서,
    상기 프로그램 시작 전압 설정부는,
    상기 제1 페이지 영역의 다수의 보조 셀에 저장된 상기 프로그램 펄스의 인가횟수를 리드한 뒤, 리드된 프로그램 펄스의 인가횟수가 임계값보다 큰 경우 상기 리드된 프로그램 펄스 인가횟수와 임계값의 차이만큼 스텝전압을 곱한 값을 상기 제1 페이지 영역에 대한 제1 프로그램 동작의 시작전압 값에 더하여 상기 제1 페이지 영역에 대한 제2 프로그램 동작과 상기 제2 페이지 영역에 대한 제1 및 제2 프로그램 동작의 시작전압 값으로 설정하고,
    상기 리드된 프로그램 펄스의 인가횟수가 임계값보다 작거나 같은 경우 상기 제1 페이지 영역에 대한 제1 프로그램 동작의 시작전압 값을 상기 제1 페이지 영역에 대한 제2 프로그램 동작 및 상기 제2 페이지 영역에 대한 제1 및 제2 프로그램 동작의 시작전압 값으로 설정하는 것을 특징으로 하는 불휘발성 메모리 장치.
  19. 제17항 또는 제18항에 있어서,
    상기 제1 및 제2 페이지 영역에 대한 제1 프로그램 동작은 하위비트 프로그램 동작이고,
    상기 제1 및 제2 페이지 영역에 대한 제2 프로그램 동작은 상위비트 프로그램 동작인 것을 특징으로 하는 불휘발성 메모리 장치.
  20. 다수의 노말 셀과 다수의 보조 셀을 각각 포함하며, 스트링을 공유하는 제1 및 제2 페이지 영역;
    상기 제1 페이지 영역의 프로그램 대상 셀 중 기준전압보다 큰 전압으로 프로그램된 셀이 발생하는 경우 1 비트 패스 신호를 출력하는 비트 패스 검출부;
    상기 제1 페이지 영역에 대한 프로그램 동작과정에서 상기 1 비트 패스 신호가 출력되는 시점까지 인가된 프로그램 펄스의 횟수를 상기 제1 페이지 영역의 다수의 보조 셀에 저장하는 프로그램 펄스 인가횟수 저장부;
    상기 제1 페이지 영역의 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수를 기초로 하여 상기 제2 페이지 영역에 대한 프로그램 시작전압을 설정하는 프로그램 시작 전압 설정부
    를 구비하는 불휘발성 메모리 장치.
  21. 제20항에 있어서,
    상기 제1 페이지 영역에 대한 프로그램 동작과정에서 상기 1 비트 패스 신호가 출력되는 시점까지 상기 제1 페이지 영역으로 인가되는 프로그램 펄스의 횟수를 카운팅하여 상기 프로그램 펄스 인가횟수 저장부로 전달하는 프로그램 펄스 카운팅부를 더 구비하는 것을 특징으로 하는 불휘발성 메모리 장치.
  22. 제21항에 있어서,
    상기 제1 및 제2 페이지 영역의 다수의 노말 셀에 대응하는 노말 페이지 버퍼링부; 및
    상기 제1 및 제2 페이지 영역의 다수의 보조 셀에 대응하는 보조 페이지 버퍼링부를 더 구비하는 것을 특징으로 하는 불휘발성 메모리 장치.
  23. 제22항에 있어서,
    상기 프로그램 펄스 인가횟수 저장부는,
    상기 프로그램 펄스 카운팅부로부터 전달되는 프로그램 펄스의 인가횟수를 상기 보조 페이지 버퍼링부에 셋팅하여 상기 제1 페이지 영역에 대한 프로그램 동작 중에 상기 프로그램 펄스 카운팅부로부터 전달되는 프로그램 펄스의 인가횟수가 상기 제1 페이지 영역의 다수의 보조 셀에 저장될 수 있도록 하는 것을 특징으로 하는 불휘발성 메모리 장치.
  24. 제20항에 있어서,
    상기 프로그램 시작 전압 설정부는,
    상기 제1 페이지 영역의 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수를 리드한 뒤, 리드된 프로그램 펄스의 인가횟수에 스텝전압을 곱한 값을 상기 제1 페이지 영역에 대한 프로그램 동작의 시작전압 값에 더하여 상기 제2 페이지 영역에 대한 프로그램 동작의 시작전압 값으로 설정하는 것을 특징으로 하는 불휘발성 메모리 장치.
  25. 제20항에 있어서,
    상기 프로그램 시작 전압 설정부는,
    상기 제1 페이지 영역의 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수를 리드한 뒤, 리드된 프로그램 펄스의 인가횟수가 임계값보다 큰 경우 상기 리드된 프로그램 펄스 인가횟수와 임계값의 차이만큼 스텝전압을 곱한 값을 상기 제1 페이지 영역에 대한 프로그램 동작의 시작전압 값에 더하여 상기 제2 페이지 영역에 대한 프로그램 동작의 시작전압 값으로 설정하고,
    상기 리드된 프로그램 펄스의 인가횟수가 임계값보다 작거나 같은 경우 상기 제1 페이지 영역에 대한 프로그램 동작의 시작전압 값을 상기 제2 페이지 영역에 대한 프로그램 동작의 시작전압 값으로 설정하는 것을 특징으로 하는 불휘발성 메모리 장치.
  26. 제20항에 있어서,
    상기 제1 페이지 영역의 각각의 노말 셀 및 보조 셀과 상기 제2 페이지 영역의 각각의 노말 셀 및 각각의 보조 셀은 싱글 레벨 셀(SLC)인 것을 특징으로 하는 불휘발성 메모리 장치.
  27. 다수의 노말 셀과 다수의 보조 셀을 각각 포함하며, 스트링을 공유하는 제1 및 제2 페이지 영역;
    상기 제1 또는 제2 페이지 영역의 프로그램 대상 셀 중 기준전압보다 큰 전압으로 프로그램된 셀이 발생하는 경우 1 비트 패스 신호를 출력하는 비트 패스 검출부;
    제1 프로그램 시작전압이 적용된 상기 제1 페이지 영역의 제1 프로그램 동작과정에서 상기 1 비트 패스 신호가 출력되는 시점까지 인가된 프로그램 펄스의 횟수를 상기 제1 페이지 영역의 다수의 보조 셀에 저장한 뒤, 저장된 프로그램 펄스의 횟수에 따라 상기 제1 프로그램 시작전압을 조절하여 상기 제1 페이지 영역의 제2 프로그램 동작에 적용하는 제1 프로그램 시작전압 조절부;
    상기 제1 프로그램 시작전압과 제2 프로그램 시작전압이 선택적으로 적용된 상기 제2 페이지 영역의 제1 프로그램 동작과정에서 상기 1 비트 패스 신호가 출력되는 시점까지 인가된 프로그램 펄스의 횟수를 상기 제2 페이지 영역의 다수의 보조 셀에 저장한 뒤, 저장된 프로그램 펄스의 횟수에 따라 상기 제2 프로그램 시작전압을 조절하여 상기 제2 페이지 영역의 제2 프로그램 동작에 적용하는 제2 프로그램 시작전압 조절부를 구비하는 불휘발성 메모리 장치.
  28. 제27항에 있어서,
    상기 제1 프로그램 시작전압 조절부는,
    상기 제1 프로그램 시작전압이 적용된 상기 제1 페이지 영역의 제1 프로그램 동작과정에서 상기 1 비트 패스 신호가 출력되는 시점까지 인가된 프로그램 펄스의 횟수를 상기 제1 페이지 영역의 다수의 보조 셀에 저장하는 제1 프로그램 펄스 인가횟수 저장부; 및
    상기 제1 페이지 영역의 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수에 따라 상기 제1 프로그램 시작전압을 설정하여 상기 제1 페이지 영역에 대한 제2 프로그램 동작에 적용하는 제1 프로그램 시작전압 설정부를 구비하는 것을 특징으로 하는 불휘발성 메모리 장치.
  29. 제28항에 있어서,
    상기 제2 프로그램 시작전압 조절부는,
    상기 제1 페이지 영역의 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수를 임계값과 비교하여 전압선택신호를 생성하는 전압선택신호 생성부;
    상기 전압선택신호에 따라 상기 제1 프로그램 시작전압과 제2 프로그램 시작전압이 선택적으로 적용된 상기 제2 페이지 영역의 제1 프로그램 동작과정에서 상기 1 비트 패스 신호가 출력되는 시점까지 인가된 프로그램 펄스의 횟수를 상기 제2 페이지 영역의 다수의 보조 셀에 저장하는 제2 프로그램 펄스 인가횟수 저장부; 및
    상기 제2 페이지 영역의 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수에 따라 상기 제2 프로그램 시작전압을 설정하여 상기 제2 페이지 영역에 대한 제2 프로그램 동작에 적용하는 제2 프로그램 시작전압 설정부를 구비하는 것을 특징으로 하는 불휘발성 메모리 장치.
  30. 제29항에 있어서,
    상기 제1 페이지 영역에 대한 제1 프로그램 동작과정에서 상기 1 비트 패스 신호가 출력되는 시점까지 인가된 프로그램 펄스의 횟수를 카운팅하여 상기 제1 프로그램 펄스 인가횟수 저장부로 전달하고, 상기 제2 페이지 영역에 대한 제1 프로그램 동작과정에서 상기 1 비트 패스 신호가 출력되는 시점까지 인가된 프로그램 펄스의 횟수를 카운팅하여 상기 제2 프로그램 펄스 인가횟수 저장부로 전달하는 프로그램 펄스 카운팅부를 더 구비하는 것을 특징으로 하는 불휘발성 메모리 장치.
  31. 제30항에 있어서,
    상기 제1 및 제2 페이지 영역의 다수의 노말 셀에 대응하는 노말 페이지 버퍼링부; 및
    상기 제1 및 제2 페이지 영역의 다수의 보조 셀에 대응하는 보조 페이지 버퍼링부를 더 구비하는 것을 특징으로 하는 불휘발성 메모리 장치.
  32. 제31항에 있어서,
    상기 제1 프로그램 펄스 인가횟수 저장부는,
    상기 프로그램 펄스 카운팅부로부터 전달되는 프로그램 펄스의 인가횟수를 상기 보조 페이지 버퍼링부에 셋팅하여 상기 제1 페이지 영역에 대한 제1 프로그램 동작 중에 상기 프로그램 펄스 카운팅부로부터 전달되는 프로그램 펄스의 인가횟수가 상기 제1 페이지 영역의 다수의 보조 셀에 저장될 수 있도록 하는 것을 특징으로 하는 불휘발성 메모리 장치.
  33. 제32항에 있어서,
    상기 제2 프로그램 펄스 인가횟수 저장부는,
    상기 프로그램 펄스 카운팅부로부터 전달되는 프로그램 펄스의 인가횟수를 상기 보조 페이지 버퍼링부에 셋팅하여 상기 제2 페이지 영역에 대한 제1 프로그램 동작 중에 상기 프로그램 펄스 카운팅부로부터 전달되는 프로그램 펄스의 인가횟수가 상기 제2 페이지 영역의 다수의 보조 셀에 저장될 수 있도록 하는 것을 특징으로 하는 불휘발성 메모리 장치.
  34. 제29항에 있어서,
    상기 전압선택신호 생성부는,
    상기 제1 페이지 영역의 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수를 리드한 뒤, 리드된 프로그램 펄스의 인가횟수가 임계값보다 큰 경우 상기 전압선택신호를 활성화시켜 상기 제2 페이지 영역에 대한 제1 프로그램 동작에 상기 제1 프로그램 시작전압이 적용되도록 하고,
    리드된 프로그램 펄스의 인가횟수가 임계값보다 작거나 같은 경우 상기 전압선택신호를 비활성화시켜 상기 제2 페이지 영역에 대한 제1 프로그램 동작에 상기 제2 프로그램 시작전압이 적용되도록 하는 것을 특징으로 하는 불휘발성 메모리 장치.
  35. 제29항에 있어서,
    상기 제1 프로그램 시작 전압 설정부는,
    상기 제1 페이지 영역의 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수를 리드한 뒤, 리드된 프로그램 펄스의 인가횟수에 스텝전압을 곱한 값만큼 상기 제1 프로그램 시작전압 값을 증가시켜 상기 제1 페이지 영역에 대한 제2 프로그램 동작에 적용하는 것을 특징으로 하는 불휘발성 메모리 장치.
  36. 제29항에 있어서,
    상기 제1 프로그램 시작 전압 설정부는,
    상기 제1 페이지 영역의 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수를 리드한 뒤, 리드된 프로그램 펄스의 인가횟수가 임계값보다 큰 경우 상기 리드된 프로그램 펄스 인가횟수와 임계값의 차이만큼 스텝전압을 곱한 값만큼 상기 제1 프로그램 시작전압 값을 증가시켜 상기 제1 페이지 영역에 대한 제2 프로그램 동작에 적용되도록 하고,
    상기 리드된 프로그램 펄스의 인가횟수가 임계값보다 작거나 같은 경우 상기 제1 프로그램 시작전압이 그대로 상기 제1 페이지 영역에 대한 제2 프로그램 동작에 적용되도록 하는 것을 특징으로 하는 불휘발성 메모리 장치.
  37. 제29항에 있어서,
    상기 제2 프로그램 시작 전압 설정부는,
    상기 제2 페이지 영역의 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수를 리드한 뒤, 리드된 프로그램 펄스의 인가횟수에 스텝전압을 곱한 값만큼 상기 제2 프로그램 시작전압 값을 증가시켜 상기 제2 페이지 영역에 대한 제2 프로그램 동작에 적용하는 것을 특징으로 하는 불휘발성 메모리 장치.
  38. 제29항에 있어서,
    상기 제2 프로그램 시작 전압 설정부는,
    상기 제2 페이지 영역의 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수를 리드한 뒤, 리드된 프로그램 펄스의 인가횟수가 임계값보다 큰 경우 상기 리드된 프로그램 펄스 인가횟수와 임계값의 차이만큼 스텝전압을 곱한 값만큼 상기 제2 프로그램 시작전압 값을 증가시켜 상기 제2 페이지 영역에 대한 제2 프로그램 동작에 적용되도록 하고,
    상기 리드된 프로그램 펄스의 인가횟수가 임계값보다 작거나 같은 경우 상기 제2 프로그램 시작전압이 그대로 상기 제2 페이지 영역에 대한 제2 프로그램 동작에 적용되도록 하는 것을 특징으로 하는 불휘발성 메모리 장치.
  39. 제27항에 있어서,
    상기 제1 페이지 영역의 각각의 노말 셀 및 보조 셀과 상기 제2 페이지 영역의 각각의 노말 셀 및 각각의 보조 셀은 멀티 레벨 셀(MLC)이며,
    상기 제1 및 제2 페이지 영역에 대한 제1 프로그램 동작은 하위비트 프로그램 동작이고,
    상기 제1 및 제2 페이지 영역에 대한 제2 프로그램 동작은 상위비트 프로그램 동작인 것을 특징으로 하는 불휘발성 메모리 장치.
  40. 초기화된 프로그램 시작전압을 적용하여 다수의 노말 셀 및 다수의 보조 셀을 포함하는 페이지 영역의 제1 프로그램 동작을 수행하는 단계;
    상기 제1 프로그램 동작과정에서 상기 페이지 영역의 프로그램 대상 셀 중 검증 전압보다 큰 전압으로 프로그램된 셀이 발생하기 전까지 상기 페이지 영역으로 인가되는 프로그램 펄스의 횟수를 카운팅하는 단계;
    상기 카운팅하는 단계에 의해 결정된 프로그램 펄스의 인가횟수를 상기 다수의 보조 셀에 저장하는 단계;
    상기 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수에 따라 상기 프로그램 시작전압을 설정하는 단계;
    상기 설정하는 단계에 의해 결정된 상기 프로그램 시작전압을 적용하여 상기 페이지 영역의 제2 프로그램 동작을 수행하는 단계
    를 포함하는 불휘발성 메모리 장치의 동작방법.
  41. 제40항에 있어서,
    상기 저장하는 단계는,
    상기 카운팅하는 단계에 의해 결정된 프로그램 펄스의 인가횟수를 상기 다수의 보조 셀에 대응하는 보조 페이지 버퍼에 셋팅하는 단계; 및
    상기 셋팅하는 단계 이후 상기 제1 프로그램 동작을 계속 진행하여 상기 보조 페이지 버퍼에 셋팅된 프로그램 펄스의 인가횟수가 상기 다수의 보조 셀에 저장되도록 하는 단계를 포함하는 것을 특징으로 하는 불휘발성 메모리 장치의 동작방법.
  42. 제40항에 있어서,
    상기 설정하는 단계는,
    상기 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수를 리드하는 단계;
    상기 리드하는 단계에 의해 출력되는 프로그램 펄스의 인가횟수에 스텝전압을 곱한 값만큼 상기 프로그램 시작전압을 증가시키는 단계를 포함하는 것을 특징으로 하는 불휘발성 메모리 장치의 동작방법.
  43. 제40항에 있어서,
    상기 설정하는 단계는,
    상기 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수를 리드하는 단계;
    상기 리드하는 단계에 의해 출력되는 프로그램 펄스의 인가횟수가 임계값보다 큰 경우 상기 리드하는 단계에 의해 출력되는 프로그램 펄스의 인가횟수와 임계값의 차이에 스텝전압을 곱한 값만큼 상기 프로그램 시작전압을 증가시키는 단계; 및
    상기 리드하는 단계에 의해 출력되는 프로그램 펄스의 인가횟수가 임계값보다 작거나 같은 경우 상기 프로그램 시작전압을 그대로 유지하는 단계를 포함하는 것을 특징으로 하는 불휘발성 메모리 장치의 동작방법.
  44. 제40항에 있어서,
    각각의 노말 셀 및 각각의 보조 셀은 멀티 레벨 셀(MLC)이며,
    상기 제1 프로그램 동작은 하위비트 프로그램 동작이고,
    상기 제2 프로그램 동작은 상위비트 프로그램 동작인 것을 특징으로 하는 불휘발성 메모리 장치의 동작방법.
  45. 프로그램 시작전압을 적용하여 다수의 노말 셀과 다수의 보조 셀을 포함하는 제1 페이지 영역의 프로그램 동작을 수행하는 단계;
    상기 프로그램 시작전압을 적용하여 다수의 노말 셀과 다수의 보조 셀을 포함하고 상기 제1 페이지 영역과 워드라인을 공유하는 제2 페이지 영역의 프로그램 동작을 수행하는 단계;
    상기 제1 페이지 영역에 대한 프로그램 동작과정에서 상기 제1 페이지 영역의 프로그램 대상 셀 중 검증 전압보다 큰 전압으로 프로그램된 셀이 발생하기 전까지 상기 제1 페이지 영역으로 인가되는 프로그램 펄스의 횟수를 카운팅하는 단계;
    상기 카운팅하는 단계에 의해 결정된 프로그램 펄스의 인가횟수를 상기 제1 페이지 영역의 다수의 보조 셀에 저장하는 단계; 및
    상기 제1 페이지 영역의 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수에 따라 상기 프로그램 시작전압을 설정하는 단계
    를 포함하는 불휘발성 메모리 장치의 동작방법.
  46. 제45항에 있어서,
    상기 저장하는 단계는,
    상기 카운팅하는 단계에 의해 결정된 프로그램 펄스의 인가횟수를 상기 제1 페이지 영역의 다수의 보조 셀에 대응하는 보조 페이지 버퍼에 셋팅하는 단계; 및
    상기 셋팅하는 단계 이후 상기 제1 페이지 영역의 프로그램 동작을 계속 진행하여 상기 보조 페이지 버퍼에 셋팅된 프로그램 펄스의 인가횟수가 상기 제1 페이지 영역의 다수의 보조 셀에 저장되도록 하는 단계를 포함하는 것을 특징으로 하는 불휘발성 메모리 장치의 동작방법.
  47. 제45항에 있어서,
    상기 설정하는 단계는,
    상기 제1 페이지 영역의 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수를 리드하는 단계;
    상기 리드하는 단계에 의해 출력되는 프로그램 펄스의 인가횟수에 스텝전압을 곱한 값만큼 상기 프로그램 시작전압의 값을 증가시키는 단계를 포함하는 것을 특징으로 하는 불휘발성 메모리 장치의 동작방법.
  48. 제45항에 있어서,
    상기 설정하는 단계는,
    상기 제1 페이지 영역의 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수를 리드하는 단계;
    상기 리드하는 단계에 의해 출력되는 프로그램 펄스의 인가횟수가 임계값보다 큰 경우 상기 리드하는 단계에 의해 출력되는 프로그램 펄스의 인가횟수와 임계값의 차이에 스텝전압을 곱한 값만큼 상기 프로그램 시작전압의 값을 증가시키는 단계; 및
    상기 리드하는 단계에 의해 출력되는 프로그램 펄스의 인가횟수가 임계값보다 작거나 같은 경우 상기 프로그램 시작전압의 값을 그대로 유지하는 단계를 포함하는 것을 특징으로 하는 불휘발성 메모리 장치의 동작방법.
  49. 제45항에 있어서,
    상기 제1 페이지 영역의 각각의 노말 셀 및 각각의 보조 셀과 및 제2 페이지 영역의 각각의 노말 셀 및 각각의 보조 셀이 멀티 레벨 셀(MLC)일 때,
    상기 제1 페이지 영역의 프로그램 동작은 상기 제1 페이지 영역의 제1 및 제2 프로그램 동작으로 나누어지고, 상기 제2 페이지 영역의 프로그램 동작은 상기 제2 페이지 영역의 제1 및 제2 프로그램 동작으로 나누어지며,
    상기 제1 페이지 영역의 제1 프로그램 동작과정에서 상기 카운팅하는 단계와 상기 저장하는 단계 및 상기 설정하는 단계가 수행되고, 수행결과 설정된 상기 프로그램 시작전압에 따라 상기 제1 페이지 영역의 제2 프로그램 동작과 상기 제2 페이지 영역의 제1 및 제2 프로그램 동작이 수행되는 것을 특징으로 하는 불휘발성 메모리 장치의 동작방법.
  50. 제49항에 있어서,
    상기 제1 및 제2 페이지 영역에 대한 제1 프로그램 동작은 하위비트 프로그램 동작이고,
    상기 제1 및 제2 페이지 영역에 대한 제2 프로그램 동작은 상위비트 프로그램 동작인 것을 특징으로 하는 불휘발성 메모리 장치의 동작방법.
  51. 제1 프로그램 시작전압을 적용하여 다수의 노말 셀과 다수의 보조 셀을 포함하는 제1 페이지 영역의 프로그램 동작을 수행하는 제1 프로그램 동작단계;
    상기 제1 프로그램 동작단계에서 상기 제1 페이지 영역의 프로그램 대상 셀 중 검증 전압보다 큰 전압으로 프로그램된 셀이 발생하기 전까지 상기 제1 페이지 영역으로 인가되는 프로그램 펄스의 횟수를 상기 제1 페이지 영역의 다수의 보조 셀에 저장하는 제1 저장단계;
    상기 제1 프로그램 동작단계에서 상기 제1 페이지 영역의 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수에 따라 상기 제1 프로그램 시작전압을 설정하는 단계;
    상기 제1 프로그램 동작단계 이후 상기 설정하는 단계에서 설정된 상기 제1 프로그램 시작전압과 제2 프로그램 시작전압을 전압선택신호에 따라 선택적으로 적용하여 다수의 노말 셀과 다수의 보조 셀을 포함하고 상기 제1 페이지 영역과 스트링을 공유하는 제2 페이지 영역의 프로그램 동작을 수행하는 제2 프로그램 동작단계; 및
    상기 제2 프로그램 동작단계에서 상기 제1 페이지 영역의 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수에 따라 상기 전압선택신호의 값을 결정하는 단계
    를 포함하는 불휘발성 메모리 장치의 동작방법.
  52. 제51항에 있어서,
    상기 제1 저장단계는,
    상기 제1 프로그램 동작단계에서 상기 제1 페이지 영역의 프로그램 대상 셀 중 검증 전압보다 큰 전압으로 프로그램된 셀이 발생하기 전까지 상기 제1 페이지 영역으로 인가되는 프로그램 펄스의 횟수를 카운팅하는 단계;
    상기 카운팅하는 단계에 의해 결정된 프로그램 펄스의 인가횟수를 상기 제1 페이지 영역의 다수의 보조 셀에 대응하는 보조 페이지 버퍼에 셋팅하는 단계; 및
    상기 셋팅하는 단계 이후 상기 제1 프로그램 동작단계가 계속 수행되도록 하여 상기 보조 페이지 버퍼에 셋팅된 프로그램 펄스의 인가횟수가 상기 제1 페이지 영역의 다수의 보조 셀에 저장되도록 하는 단계를 포함하는 것을 특징으로 하는 불휘발성 메모리 장치의 동작방법.
  53. 제51항에 있어서,
    상기 설정하는 단계는,
    상기 제1 페이지 영역의 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수를 리드하는 단계;
    상기 리드하는 단계에 의해 출력되는 프로그램 펄스의 인가횟수에 스텝전압을 곱한 값만큼 상기 제1 프로그램 시작전압의 값을 증가시키는 단계를 포함하는 것을 특징으로 하는 불휘발성 메모리 장치의 동작방법.
  54. 제51항에 있어서,
    상기 설정하는 단계는,
    상기 제1 페이지 영역의 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수를 리드하는 단계;
    상기 리드하는 단계에 의해 출력되는 프로그램 펄스의 인가횟수가 임계값보다 큰 경우 상기 리드하는 단계에 의해 출력되는 프로그램 펄스의 인가횟수와 임계값의 차이에 스텝전압을 곱한 값만큼 상기 제1 프로그램 시작전압을 증가시키는 단계; 및
    상기 리드하는 단계에 의해 출력되는 프로그램 펄스의 인가횟수가 임계값보다 작거나 같은 경우 상기 제1 프로그램 시작전압의 값을 그대로 유지하는 단계를 포함하는 것을 특징으로 하는 불휘발성 메모리 장치의 동작방법.
  55. 제51항에 있어서,
    상기 결정하는 단계는,
    상기 제1 페이지 영역의 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수를 리드하는 단계;
    상기 리드하는 단계에 의해 출력되는 프로그램 펄스의 인가횟수가 임계값보다 큰 경우 상기 전압선택신호를 활성화시켜 상기 제2 프로그램 동작단계에 상기 설정하는 단계에서 설정된 상기 제1 프로그램 시작전압이 적용되도록 하는 단계; 및
    상기 리드하는 단계에 의해 출력되는 프로그램 펄스의 인가횟수가 임계값보다 작거나 같은 경우 상기 전압선택신호를 비활성화시켜 상기 제2 프로그램 동작단계에 상기 제2 프로그램 시작전압이 적용되도록 하는 단계를 포함하는 것을 특징으로 하는 불휘발성 메모리 장치의 동작방법.
  56. 제51항에 있어서,
    상기 제1 페이지 영역의 각각의 노말 셀 및 각각의 보조 셀과 및 제2 페이지 영역의 각각의 노말 셀 및 각각의 보조 셀이 멀티 레벨 셀(MLC)일 때,
    상기 제2 프로그램 동작단계에서 상기 제2 페이지 영역의 프로그램 대상 셀 중 검증 전압보다 큰 전압으로 프로그램된 셀이 발생하기 전까지 상기 제2 페이지 영역으로 인가되는 프로그램 펄스의 횟수를 상기 제2 페이지 영역의 다수의 보조 셀에 저장하는 제2 저장단계; 및
    상기 제2 프로그램 동작단계에서 상기 제2 페이지 영역의 다수의 보조 셀에 저장된 프로그램 펄스의 인가횟수에 따라 상기 제2 프로그램 시작전압을 설정하는 단계를 더 포함하며,
    상기 제1 페이지 영역의 프로그램 동작은 상기 제1 페이지 영역의 제1 및 제2 프로그램 동작으로 나누어지고 상기 제2 페이지 영역의 프로그램 동작은 상기 제2 페이지 영역의 제1 및 제2 프로그램 동작으로 나누어지는 것을 특징으로 하는 불휘발성 메모리 장치의 동작방법.
  57. 제56항에 있어서,
    상기 제1 페이지 영역의 제1 프로그램 동작과정에서 상기 제1 저장단계와 상기 제1 프로그램 시작전압을 설정하는 단계가 수행되고, 수행결과 설정된 상기 제1 프로그램 시작전압이 상기 제1 페이지 영역의 제2 프로그램 동작에 적용되며,
    상기 제2 페이지 영역의 제1 프로그램 동작과정에서 상기 제2 저장단계와 상기 제2 프로그램 시작전압을 설정하는 단계가 수행되고, 수행결과 설정된 상기 제2 프로그램 시작전압이 상기 제2 페이지 영역의 제2 프로그램 동작에 적용되는 것을 특징으로 하는 불휘발성 메모리 장치의 동작방법.
  58. 제56항에 있어서,
    상기 제1 및 제2 페이지 영역에 대한 제1 프로그램 동작은 하위비트 프로그램 동작이고,
    상기 제1 및 제2 페이지 영역에 대한 제2 프로그램 동작은 상위비트 프로그램 동작인 것을 특징으로 하는 불휘발성 메모리 장치의 동작방법.
KR1020110017930A 2011-02-28 2011-02-28 불휘발성 메모리 장치 및 그 동작방법 KR101222063B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020110017930A KR101222063B1 (ko) 2011-02-28 2011-02-28 불휘발성 메모리 장치 및 그 동작방법
US13/104,475 US8456912B2 (en) 2011-02-28 2011-05-10 Nonvolatile memory device and method for operating the same
CN201110141927.3A CN102651235B (zh) 2011-02-28 2011-05-30 非易失性存储装置及其操作方法
JP2011187344A JP6154986B2 (ja) 2011-02-28 2011-08-30 不揮発性メモリ装置およびその動作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110017930A KR101222063B1 (ko) 2011-02-28 2011-02-28 불휘발성 메모리 장치 및 그 동작방법

Publications (2)

Publication Number Publication Date
KR20120098164A KR20120098164A (ko) 2012-09-05
KR101222063B1 true KR101222063B1 (ko) 2013-01-15

Family

ID=46693227

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110017930A KR101222063B1 (ko) 2011-02-28 2011-02-28 불휘발성 메모리 장치 및 그 동작방법

Country Status (4)

Country Link
US (1) US8456912B2 (ko)
JP (1) JP6154986B2 (ko)
KR (1) KR101222063B1 (ko)
CN (1) CN102651235B (ko)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8385123B2 (en) * 2010-08-18 2013-02-26 Micron Technology, Inc. Programming to mitigate memory cell performance differences
KR101211840B1 (ko) * 2010-12-30 2012-12-12 에스케이하이닉스 주식회사 반도체 메모리 장치의 프로그램 방법
US9324433B2 (en) * 2011-04-25 2016-04-26 Microsoft Technology Licensing, Llc Intelligent flash reprogramming
US8693252B2 (en) * 2011-07-12 2014-04-08 Samsung Electronics Co., Ltd. Method and system for adjusting read voltage in flash memory device
WO2013173729A1 (en) * 2012-05-18 2013-11-21 Cornell University Methods and systems for providing hardware security functions using flash memories
US8842477B2 (en) * 2012-06-01 2014-09-23 Spansion Llc Method, apparatus, and manufacture for flash memory adaptive algorithm
US9142298B2 (en) * 2013-02-11 2015-09-22 Sandisk Technologies Inc. Efficient smart verify method for programming 3D non-volatile memory
KR102118979B1 (ko) * 2013-09-13 2020-06-05 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
KR20150047821A (ko) 2013-10-25 2015-05-06 에스케이하이닉스 주식회사 반도체 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 동작 방법
JP2015176620A (ja) * 2014-03-14 2015-10-05 株式会社東芝 半導体記憶装置
JP6196199B2 (ja) * 2014-09-12 2017-09-13 東芝メモリ株式会社 半導体記憶装置
KR20160059174A (ko) * 2014-11-18 2016-05-26 에스케이하이닉스 주식회사 반도체 장치
KR20160108770A (ko) 2015-03-06 2016-09-20 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그것의 동작 방법
KR20160112450A (ko) 2015-03-19 2016-09-28 에스케이하이닉스 주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 및 그것을 포함하는 테스트 시스템
US9548130B2 (en) * 2015-04-08 2017-01-17 Sandisk Technologies Llc Non-volatile memory with prior state sensing
JP6538496B2 (ja) * 2015-09-11 2019-07-03 東芝メモリ株式会社 メモリシステム
US9792999B2 (en) * 2015-10-30 2017-10-17 SK Hynix Inc. Adaptive scheme for incremental step pulse programming of flash memory
KR102391514B1 (ko) * 2015-11-04 2022-04-27 삼성전자주식회사 메모리 장치 및 메모리 장치의 동작 방법
KR102340328B1 (ko) * 2016-01-07 2021-12-16 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이의 동작 방법
KR102505852B1 (ko) * 2016-01-15 2023-03-03 삼성전자 주식회사 비휘발성 메모리 장치의 동작 방법
JP2017168156A (ja) * 2016-03-14 2017-09-21 東芝メモリ株式会社 半導体記憶装置
KR20190007252A (ko) 2017-07-12 2019-01-22 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10049729B1 (en) * 2017-09-19 2018-08-14 Qualcomm Incorporated Flexible memory assistance scheme
KR20190050487A (ko) * 2017-11-03 2019-05-13 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그것의 동작 방법
US10535412B2 (en) * 2018-02-09 2020-01-14 Sandisk Technologies Llc Single pulse verification of memory cells
KR20200017220A (ko) * 2018-08-08 2020-02-18 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
CN111383697B (zh) * 2018-12-30 2022-09-06 北京兆易创新科技股份有限公司 用于部分页编程的位扫描方法,部分页编程方法及非易失性存储器
KR20200106748A (ko) * 2019-03-05 2020-09-15 에스케이하이닉스 주식회사 메모리 장치 및 그 동작 방법
CN111951856B (zh) * 2019-05-14 2023-06-02 兆易创新科技集团股份有限公司 一种部分编程的方法和装置
KR20200136173A (ko) * 2019-05-27 2020-12-07 에스케이하이닉스 주식회사 메모리 장치 및 그 동작 방법
JP2022040515A (ja) * 2020-08-31 2022-03-11 ウィンボンド エレクトロニクス コーポレーション フラッシュメモリおよびプログラミング方法
CN113707204B (zh) * 2021-08-31 2023-08-08 长江存储科技有限责任公司 存储器编程方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100089504A (ko) * 2009-02-04 2010-08-12 주식회사 하이닉스반도체 불휘발성 메모리 장치 및 그 동작 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001084788A (ja) * 1999-09-10 2001-03-30 Toshiba Corp 不揮発性半導体記憶装置
JP2003051193A (ja) * 2001-08-07 2003-02-21 Hitachi Ltd 半導体装置
JP2004158053A (ja) * 2002-11-01 2004-06-03 Fujitsu Ltd 不揮発性半導体記憶装置
KR100635203B1 (ko) * 2004-05-14 2006-10-16 에스티마이크로일렉트로닉스 엔.브이. 플래쉬 메모리 장치 및 그 구동 방법
KR100691379B1 (ko) * 2005-06-24 2007-03-09 삼성전자주식회사 프로그램 동작 안정성이 향상된 불휘발성 반도체 메모리장치 및 이에 대한 프로그램 구동방법
KR100742278B1 (ko) * 2005-11-23 2007-07-24 삼성전자주식회사 향상된 동작 속도 및 듀얼 프로그램 기능을 갖는 낸드플래시 메모리 장치
US7630249B2 (en) * 2007-06-21 2009-12-08 Sandisk Corporation Intelligent control of program pulse duration
KR100953045B1 (ko) * 2008-05-23 2010-04-14 주식회사 하이닉스반도체 불휘발성 메모리 장치의 프로그램 방법
KR100965071B1 (ko) * 2008-07-10 2010-06-21 주식회사 하이닉스반도체 불휘발성 메모리 장치의 프로그램 방법
KR100976696B1 (ko) * 2008-07-10 2010-08-18 주식회사 하이닉스반도체 불휘발성 메모리 장치의 프로그램 방법
JP5292052B2 (ja) * 2008-10-21 2013-09-18 力晶科技股▲ふん▼有限公司 不揮発性半導体記憶装置とその書き込み方法
US8102712B2 (en) * 2009-12-22 2012-01-24 Intel Corporation NAND programming technique

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100089504A (ko) * 2009-02-04 2010-08-12 주식회사 하이닉스반도체 불휘발성 메모리 장치 및 그 동작 방법

Also Published As

Publication number Publication date
JP6154986B2 (ja) 2017-06-28
JP2012181907A (ja) 2012-09-20
KR20120098164A (ko) 2012-09-05
CN102651235B (zh) 2018-05-04
US20120218818A1 (en) 2012-08-30
US8456912B2 (en) 2013-06-04
CN102651235A (zh) 2012-08-29

Similar Documents

Publication Publication Date Title
KR101222063B1 (ko) 불휘발성 메모리 장치 및 그 동작방법
KR101532584B1 (ko) 비휘발성 메모리 장치, 및 그의 프로그램 방법
US8238161B2 (en) Nonvolatile memory device
US7881110B2 (en) Method of programming nonvolatile memory device
EP2427885B1 (en) Multiple level program verify in a memory device
US7839687B2 (en) Multi-pass programming for memory using word line coupling
US10573378B2 (en) Methods of programming memory devices
US8902666B2 (en) Programming method for nonvolatile memory device
US8520435B2 (en) Nonvolatile memory device and method of operating the same
US8305816B2 (en) Method of controlling a memory cell of non-volatile memory device
US20080056006A1 (en) Flash memory device and method for programming multi-level cells in the same
US9627070B2 (en) Program method of nonvolatile memory device for having dense threshold voltage distribution by controlling voltage of bit line according to threshold voltage of memory cell
JP2009032386A (ja) 不揮発性メモリセルプログラミング方法
KR20100006659A (ko) 불휘발성 메모리 장치의 프로그램 방법
JP5687356B2 (ja) セグメント化されたプログラミングの方法およびメモリデバイス
KR20100016761A (ko) 플래시 메모리 장치의 동작 제어 방법
CN111833949A (zh) 存储器控制器、存储器系统及其操作方法
KR101985952B1 (ko) 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 구동 방법
KR20110001101A (ko) 불휘발성 메모리 장치 및 그것의 동작 방법
US8000154B2 (en) Non-volatile memory device and method of controlling a bulk voltage thereof
CN111145814A (zh) 非易失性存储器装置和非易失性存储器系统
KR20100006666A (ko) 불휘발성 메모리 장치 및 그 멀티 레벨 셀 프로그램 방법
KR101495789B1 (ko) 불휘발성 메모리 장치 및 그것의 프로그램 방법
KR100880329B1 (ko) 플래시 메모리 소자 및 그 프로그램 방법
KR101013200B1 (ko) 비휘발성 메모리 프로그램 동작에서의 가변 프로그램 전압 증분값

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20151221

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161125

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171220

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20181219

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20191224

Year of fee payment: 8