KR101532754B1 - 비휘발성 메모리 장치의 프로그램 방법 - Google Patents

비휘발성 메모리 장치의 프로그램 방법 Download PDF

Info

Publication number
KR101532754B1
KR101532754B1 KR1020080092856A KR20080092856A KR101532754B1 KR 101532754 B1 KR101532754 B1 KR 101532754B1 KR 1020080092856 A KR1020080092856 A KR 1020080092856A KR 20080092856 A KR20080092856 A KR 20080092856A KR 101532754 B1 KR101532754 B1 KR 101532754B1
Authority
KR
South Korea
Prior art keywords
program
data
memory device
cells
stored
Prior art date
Application number
KR1020080092856A
Other languages
English (en)
Other versions
KR20100033816A (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 KR1020080092856A priority Critical patent/KR101532754B1/ko
Priority to US12/543,993 priority patent/US8050101B2/en
Publication of KR20100033816A publication Critical patent/KR20100033816A/ko
Application granted granted Critical
Publication of KR101532754B1 publication Critical patent/KR101532754B1/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/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • 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
    • G11C16/12Programming voltage switching circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • 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

Landscapes

  • Read Only Memory (AREA)

Abstract

본 발명에 따른 비휘발성 메모리 장치의 프로그램 방법은, 데이터 변경을 위한 프로그램 셀들로 프로그램 전압을 인가하는 단계, 상기 프로그램 셀들에 대하여 상기 변경된 데이터로 검증하는 단계, 및 상기 프로그램 전압이 인가되더라도 저장된 데이터를 유지하기 위한 프로그램 금지 셀들에 대하여 각각 상기 저장된 데이터로 검증하는 단계를 포함한다.
Figure R1020080092856
검증, 자가 진단, 재프로그램

Description

비휘발성 메모리 장치의 프로그램 방법{PROGRAMMING METHOD OF NONVOLATILE MEMORY DEVICE}
본 발명은 비휘발성 메모리 장치의 프로그램 방법에 관한 것이다.
비휘발성 메모리 장치의 경우, 전원이 공급되지 않아도 셀에 기록된 데이터가 소멸되지 않고 남아있다. 비휘발성 메모리들 중 플래시 메모리는 전기적으로 셀들의 데이터를 일괄적으로 소거하는 기능을 갖기 때문에, 컴퓨터 및 메모리 카드 등에 널리 사용되고 있다.
플래시 메모리는 셀과 비트라인의 연결 상태에 따라 노어 플래시 메모리와 낸드 플래시 메모리로 구분된다. 일반적으로, 노어 플래시 메모리는 전류 소모가 크기 때문에 고집적화에 불리하지만, 고속화에 용이하게 대처할 수 있는 장점을 갖는다. 그리고, 낸드 플래시 메모리는 노어 플래시 메모리에 비해 적은 셀 전류를 소모하기 때문에 고집적화에 유리한 장점을 갖는다.
본 발명의 목적은 프로그램 시간 단축할 수 있는 비휘발성 메모리 장치의 프로그램 방법을 제공하는데 있다.
본 발명의 목적은 프로그램 동작시 검증 페일이 발생할 경우 시간 오버헤드를 줄일 수 있는 비휘발성 메모리 장치의 프로그램 방법을 제공하는데 있다.
본 발명에 따른 비휘발성 메모리 장치의 프로그램 방법은: 데이터 변경을 위한 프로그램 셀들로 프로그램 전압을 인가하는 단계; 상기 프로그램 셀들에 대하여 상기 변경된 데이터로 검증하는 단계; 및 상기 프로그램 전압이 인가되더라도 저장된 데이터를 유지하기 위한 프로그램 금지 셀들에 대하여 각각 상기 저장된 데이터로 검증하는 단계를 포함한다.
실시 예에 있어서, 상기 변경된 데이터로 검증하는 단계에서 검증이 실패할 경우, 상기 프로그램 전압을 소정의 레벨만큼 증가시켜 상기 프로그램 셀들로 인가하는 단계를 포함한다.
실시 예에 있어서, 상기 저장된 데이터로 검증하는 단계에서 검증이 실패할 경우, 프로그램 페일이 발생되고, 상기 발생된 프로그램 페일 정보는 레지스터에 저장되는 것을 특징으로 한다.
실시 예에 있어서, 상기 레지스터에 저장된 상기 프로그램 페일 정보에 따라 상기 프로그램 셀들에 저장될 데이터 및 상기 프로그램 금지 셀들에 상기 저장된 데이터가 상기 비휘발성 메모리 장치 내에서 자체적으로 다른 곳으로 재프로그램되는 것을 특징으로 한다.
실시 예에 있어서, 상기 레지스터에 저장된 상기 프로그램 페일 정보에 따라 외부의 메모리 제어기는 상기 프로그램 셀들에 상기 저장될 데이터 및 상기 프로그램 금지 셀들에 저장된 데이터를 상기 비휘발성 메모리 장치 내에서 다른 곳으로 재프로그램하도록 제어하는 것을 특징으로 한다.
실시 예에 있어서, 상기 프로그램 셀들은 '1' 데이터에서 '0' 데이터로 변경되고, 상기 프로그램 금지 셀들은 '1' 데이터를 유지하도록 하는 것을 특징으로 한다.
본 발명에 따른 다른 비휘발성 메모리 장치의 프로그램 방법은: 선택된 메모리 셀들로 프로그램 동작을 수행하는 단계; 상기 선택된 메모리 셀들에 대하여 모든 데이터로 검증 동작을 수행하는 단계; 및 상기 검증 동작이 실패할 경우 재프로그램 동작을 수행하는 단계를 포함하되, 상기 재프로그램 동작은 상기 비휘발성 메모리 장치의 외부로/로부터의 데이터 입출력없이 프로그램 동작이 수행되는 것을 특징으로 한다.
실시 예에 있어서, 상기 검증 동작을 수행하는 단계는, 상기 비선택된 메모리 셀들에 대하여 저장된 모든 데이터로 검증 동작을 수행하는 단계를 더 포함한다.
실시 예에 있어서, 상기 선택된 메모리 셀들로 프로그램을 수행하는 단계는,상기 선택된 메모리 셀들로 프로그램될 데이터를 외부로부터 전달받아 저장하는 단 계; 및 상기 비선택된 메모리 셀들로부터 저장된 데이터를 읽어 저장해 두는 단계를 더 포함한다.
본 발명에 따른 또 다른 비휘발성 메모리 장치의 프로그램 방법은: 선택된 워드라인에 연결된 메모리 셀들을 프로그램하고, 상기 선택된 워드라인에 연결된 메모리 셀들의 모든 데이터에 대하여 검증하는 제 1 자가 진단 프로그램을 수행하는 단계; 및 상기 제 1 자가 진단 프로그램 수행결과로써 프로그램 페일이 발생할 경우에 외부와의 데이터 입출력 없이 상기 비휘발성 메모리 장치에 내부에 저장된 데이터를 상기 선택된 워드라인과 다른 워드라인에 연결된 메모리 셀들에 프로그램하고 상기 다른 워드라인에 연결된 메모리 셀들의 모든 데이터에 대하여 검증하는 제 2 자가 진단 프로그램을 수행하는 단계를 포함한다.
본 발명에 따른 비휘발성 메모리 장치의 프로그램 방법은 프로그램 상태에 따른 추가적인 읽기/프로그램 동작을 제어기에서 수행하지 않고 비휘발성 메모리 장치 내에서 수행한다. 이로써, 프로그램 동작시 제어기 및 비휘발성 메모리 장치 사이의 데이터 입출력 회수를 줄일 수 있게 된다. 그 결과로써, 본 발명의 프로그램 방법은 오버헤드 시간을 대폭 줄일 수 있게 된다. 이는 시스템 동작 특성의 향상을 가져온다.
또한, 제어기의 소프트웨어 및 하드웨어 부담을 크게 줄일 수 있게 되고, 결과적으로 시스템의 비용이 감소된다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 본 발명의 실시 예를 첨부된 도면을 참조하여 설명한다.
본 발명에 따른 비휘발성 메모리 장치는 프로그램 동작시 프로그램 대상이 되는 메모리 셀들 및 프로그램 대상이 되지 않는 셀들 모두에 대하여 검증 동작을 수행하도록 구현된다. 여기서 프로그램 대상이 되는 메모리 셀들은 데이터 변경을 위하여 문턱 전압의 변화를 가져오기 위한 메모리 셀들을 의미한다. 이로써, 본 발명의 프로그램 방법은 프로그램 페일 발생시 재프로그램 발생에 따른 타임 오버헤드를 크게 줄일 수 있게 된다.
도 1은 본 발명의 개념을 설명하기 위한 도면이다. 도 1을 참조하면, 본 발명의 비휘발성 메모리 장치는 선택된 비트라인들(BLe1,BLe2)에 연결된 프로그램 셀(A)에 대하여 '0' 데이터 검증 동작 및 프로그램 금지 셀(B)에 대하여 '1' 데이터 검증 동작을 수행하고, 비선택된 비트라인들(BLo1,BLo2)에 연결된 메모리 셀들(C,D)에 대하여 '1' 및 '0' 데이터 검증 동작을 수행한다. 여기서 프로그램 셀(A)는 '0' 데이터에 대응하도록 문턱전압의 변화를 가져오기 위한 메모리 셀이고, 프로그램 금지 셀(B)은 '1' 데이터에 대응하는 문턱전압을 유지하기 위한 메모리 셀이다. 또한, 선택된 비트라인들(BLo1,BLo2)에 연결된 메모리 셀들(C,D)은 이미 프로그램 동작이 완료된 상태라고 가정하겠다. 따라서, 선택된 비트라인들(BLe1,BLe2)에 연결된 메모리 셀들(A,B)의 프로그램 동작시, 비선택된 비트라인들(BLo1,BLo2)에 연결된 메모리 셀들(C,D)은 각각 저장된 데이터에 대응하는 문턱 전압을 유지하기 위하여 프로그램 금지될 것이다.
도 1에 도시된 바와 같이, 비휘발성 메모리 장치는 선택된 비트라인들(BLe1,BLe2)에 연결된 메모리 셀들(A,B)의 프로그램 동작시, '1' 데이터를 갖는 프로그램 금지 셀(B)의 데이터 변경이나 비선택된 비트라인들(BLo1,BLo2)에 연결된 메모리 셀들(C,D)의 데이터 변경을 점검한다. 즉, 비휘발성 메모리 장치는 선택된 비트라인들(BLe1,BLe2)에 연결된 프로그램 금지 셀(B)의 '1' 데이터 페일 점검 및 비선택된 비트라인들(BLo1,BLo2)에 연결된 메모리 셀들(C,D)의 '1' 및 '0' 데이터 페일 점검을 수행한다.
상술 된 바와 같이, 본 발명에 따른 비휘발성 메모리 장치는 프로그램 동작시 프로그램 대상이 아닌 메모리 셀들에 저장된 데이터에 대한 검증 동작을 수행함으로써 프로그램 대상이 아닌 메모리 셀의 데이터 오류를 자체적으로 점검할 수 있다.
도 2는 본 발명에 따른 비휘발성 메모리 장치(100)의 제 1 실시 예를 보여주는 도면이다. 도 2를 참조하면, 비휘발성 메모리 장치(100)는 메모리 셀 어레이(110), 로우 디코더(120), 입출력 버퍼회로(130), 및 제어 로직(140)을 포함한다. 본 발명의 비휘발성 메모리 장치(100)는 프로그램 동작시 선택된 워드라인에 연결된 프로그램 셀들 및 프로그램 금지 셀들에 대하여 모든 데이터 검증을 수행하도록 제어 로직(140)을 포함한다. 여기서 프로그램 셀들은 데이터 변경을 위하여 문턱 전압이 변화되는 메모리 셀들이며, 프로그램 금지 셀들은 데이터 변경이 이루어지지 않도록 문턱 전압을 유지하는 메모리 셀들이다. 특히, 제어 로직(140)은 프 로그램 동작시 모든 데이터 검증에 대한 결과를 저장하는 페일 체크 레지스터(142)를 포함하고 있다.
도 2에 도시된 비휘발성 메모리 장치(100)는 낸드 플래시 메모리이다. 그러나 본 발명의 비휘발성 메모리 장치는 낸드 플래시 메모리에 국한될 필요가 없다. 본 발명의 비휘발성 메모리 장치는 노아 플래시 메모리 장치, MRAM, PRAM, FRAM 등 다양한 종류의 비휘발성 메모리에 적용가능하다. 또한 본 발명의 비휘발성 메모리 장치는 3차원 어레이 구조(Three-Dimentional Array Structure)로 구현될 수 있다.
메모리 셀 어레이(110)는 복수의 비트라인들(BL0~BLn-1) 및 복수의 워드라인들(WL0~WLm-1)과, 비트라인들 및 워드라인들이 교차하는 영역에 배치된 복수의 메모리 셀들을 포함한다. 여기서 메모리 셀들 각각에는 멀티 비트 데이터(multi bit dat)가 저장될 수 있다. 메모리 셀 어레이(110)는 복수의 메모리 블록들로 구성될 것이다. 도 2에는 단지 하나의 메모리 블록만이 도시되어 있다. 메모리 셀 어레이(110)의 각각의 메모리 블록들은 복수의 셀 스트링들을 포함하고 있다. 각 스트링은, 도 2에 도시된 바와 같이, 스트링 선택 트랜지스터, 그라운드 선택 트랜지스터, 및 스트링 선택 트랜지스터 및 그라운드 선택 트랜지스터 사이에 직렬 연결된 m개의 메모리 셀들로 구성된다.
각 스트링의 스트링 선택 트랜지스터의 드레인은 대응하는 비트라인에 연결되고, 그라운드 선택 트랜지스터의 소스는 공통 소스 라인(CSL)에 연결된다. 스트링에 교차되도록 복수의 워드라인들(WL0~WLm-1)이 배열된다. 워드라인들(WL0~WLm-1)은 각 스트링의 대응하는 메모리 셀들에 각각 연결된다. 프로그램/읽기 전압을 선택된 워드라인에 인가함으로써 선택된 메모리 셀들로/로부터 데이터를 프로그램/읽기하는 것이 가능하다. 비트라인들(BL0~BLn-1)은 입출력 버퍼회로(130)의 페이지 버퍼들(도시되지 않음)에 전기적으로 연결된다.
로우 디코더(120)는 입력된 어드레스(ADDR)에 따라 메모리 블록을 선택하고, 선택된 메모리 블록의 구동될 워드라인을 선택한다. 예를 들어, 로우 디코더(120)는 프로그램 동작시 입력된 어드레스(ADDR)를 디코딩하여 선택된 메모리 블록에서 구동될 워드라인을 선택한다. 여기서 선택된 워드라인으로 고전압 발생기(도시되지 않음)로부터의 프로그램 전압이 인가된다.
입출력 버퍼회로(130)는 프로그램 동작시 메모리 셀 어레이(110)에 로딩된 데이터를 임시로 저장하거나 읽기 동작시 메모리 셀 어레이(110)로부터 읽혀진 데이터를 임시로 저장하는 복수의 페이지 버퍼들(도시되지 않음)을 포함한다. 페이지 버퍼들 각각은 대응하는 비트라인들(BL0~BLn-1)을 통해 메모리 셀 어레이(110)와 연결된다.
페이지 버퍼들은 프로그램 동작시 로딩된 데이터에 따라 비트라인으로 접지전압(예를 들어, 0V) 혹은 전원전압(Vcc)을 인가한다. 예를 들어, '0'의 데이터가 로딩된 페이지 버퍼와 연결된 비트라인(즉, 프로그램 셀과 연결된 비트라인)에는 접지전압(0V)이 인가된다. 그리고, '1'의 데이터가 로딩된 페이지 버퍼와 연결된 비트라인(즉,프로그램 금지 셀과 연결된 비트라인)에는 전원전압(Vcc)이 인가된다.
한편, 본 발명의 페이지 버퍼들은 프로그램 동작시 프로그램될 외부로부터 전송된 데이터 및 프로그램이 수행될 메모리 셀들에 이미 저장된 데이터를 읽어와 래치해 놓도록 구성된다.
제어 로직(140)은 입력된 제어신호들(CTRL,예를 들어,/CE,/RE,/WE,CLE, ALE,/WP)에 응답하여 각 동작에 필요한 고전압들을 발생하여 로우 디코더(120)로 인가하고, 비휘발성 메모리 장치(100)의 내부 블록들의 모든 동작을 제어한다.
제어 로직(140)은 프로그램 동작시 프로그램 셀들 및 프로그램 금지 셀들의 모든 데이터에 대하여 검증하도록 구현된다. 예를 들어, 제어 로직(140)은 프로그램 셀들의 데이터 '0'을 프로그램한 뒤 선택된 셀들의 데이터 '0'을 검증하고, 및 프로그램 금지 셀들의 데이터 '0'을 검증하도록 구성된다. 이때, 모든 데이터 검증 결과는 페일 체크 레지스터(142)에 저장된다. 페일 체크 레지스터(142)는 프로그램 셀들의 프로그램 성공 유무 및 프로그램 금지 셀들의 데이터 변경 유무를 저장한다. 만약, 프로그램 셀들 중 어느 하나가 프로그램에 성공하지 못하거나 프로그램 금지 셀들 중 어느 하나가 데이터 변경되면, 페일 체크 레지스터(142)는 프로그램 페일에 대응하는 비트들이 저장된다. 페일 체크 레지스터(142)는 프로그램 셀들에 대한 '0' 데이터 프로그램 성공 여부 및 프로그램 금지 셀들에 대한 '1' 데이터 검증 성공 여부를 저장하도록 구성된다.
한편, 프로그램 페일이 발생할 경우, 다른 워드라인으로 프로그램 동작이 수행될 것이다. 아래에서는 이러한 프로그램 동작을 재프로그램 동작이라고 하겠다. 본 발명에서 재프로그램 동작은 외부의 메모리 제어기(도시되지 않음)에서 제어할 수 있도록 구현되거나 혹은 비휘발성 메모리 장치(100)의 제어 로직(140)에서 자체적으로 제어할 수 있도록 구현될 수 있다.
첫째로, 메모리 제어기에서 재프로그램을 제어할 경우에는, 메모리 제어기는 페일 체크 레지스터(142)에 저장된 프로그램 페일 비트들을 읽고 그 결과에 따라 재프로그램 명령 및 새로운 어드레스를 휘발성 메모리 장치(100)로 전달한다. 이에 따라 비휘발성 메모리 장치(100)는 새로운 어드레스에 대응하는 워드라인으로 재프로그램 동작을 수행한다. 이때, 재프로그램될 데이터는 각각의 페이지 버퍼들에 이미 래치된 상태이기 때문에 별도로 외부로부터 전달받을 필요가 없다.
둘째로, 비휘발성 메모리 장치(100)에서 자체적으로 재프로그램을 제어할 경우에는, 제어 로직(140)은 페일 체크 레지스터(142)에 저장된 프로그램 페일 비트들을 읽고 그 결과에 따라 새로운 어드레스 대응하는 워드라인으로 재프로그램 동작을 수행한다. 이때, 재프로그램될 데이터는 각각의 페이지 버퍼들에게 이미 래치된 상태이기 때문에 별도로 외부로부터 전달받을 필요가 없다.
상술 된 바와 같이, 본 발명의 비휘발성 메모리 장치(100)은 재프로그램 발생시 별도로 외부로부터 프로그래될 데이터를 로딩할 필요가 없다.
일반적인 비휘발성 메모리 장치에서는 프로그램 금지 셀들은 데이터 '1'의 페일 체크 동작을 수행하지 않는다. 따라서, 데이터 '1'의 페일 발생시 프로그램 페일이 발생하거나, 혹은 패스전압 윈도우의 특성 열화로 인하여 페일 비트 발생시 칩 레벨 혹은 시스템 레벨의 해결 방안이 없다.
반면에 본 발명의 비휘발성 메모리 장치(100)는 프로그램 셀들 및 프로그램 금지 셀들의 모든 데이터에 대한 검증을 수행하는 자가 진단(self diagonosis) 프로그램을 수행한다. 이러한 자가 진단 프로그램을 수행할 경우에는, 프로그램 페일 로 인하여 재 프로그램을 수행하더라도 외부로부터 다시 데이터를 로딩할 필요가 없다. 왜냐하면, 선택된 셀들 및 비선택된 셀들에 대응하는 데이터가 이미 페이지 버퍼에 로딩되어 있기 때문이다.
이로써, 프로그램 실패로 인하여 재 프로그램을 고려한 프로그램 방법에 있어서, 본 발명의 프로그램 방법은 일반적인 프로그램 방법과 비교하여 프로그램 시간을 현저하게 줄일 수 있게 된다.
도 3은 본 발명의 비휘발성 메모리 장치(100)에 있어서 프로그램 방법을 보여주는 도면이다. 도 2 및 도 3을 참조하면, 프로그램 방법은 제 1 프로그램 시작 전압(Vpgm_start1)부터 시작하여 제 1 소정의 레벨큼(ΔVISPP1) 증가시키면서 선택된 워드라인으로 프로그램 전압을 인가한다. 즉, 비휘발성 메모리 장치(100)는 ISPP(Incremental Step Pluse Programming)으로 프로그램 동작을 수행한다.
각 프로그램 루프에서 프로그램 전압 인가 후에는 프로그램 셀들에 대한 '0' 데이터 검증 동작이 수행된다. '0' 데이터 검증 동작이 모든 프로그램 셀들에 대하여 성공하면, 프로그램 금지 셀들에 대하여 '1' 데이터 검증 동작이 수행된다. 최종적으로 프로그램 동작이 성공되면, 프로그램 셀들은 데이터 '0'에 대응하는 문턱전압을 갖게 될 것이고, 프로그램 금지 셀들은 데이터 '1'에 대응하는 문턱전압을 유지하게 될 것이다.
도 3에서는 프로그램 금지 셀들에 대한 '1' 데이터 검증 동작은 프로그램 셀들에 대한 '0' 데이터 프로그램 동작이 완료된 후 수행된다. 하지만, 본 발명의 비 휘발성 메모리 장치(100)의 '1' 데이터 검증은 반드시 프로그램 셀들에 대한 '0' 데이터 프로그램 동작 수행될 필요는 없다. 본 발명의 프로그램 금지 셀들에 대한 '1' 데이터 검증 동작은 각 프로그램 루프마다 혹은 미리 결정된 프로그램 루프 회수에만 수행될 수도 있다.
도 4는 도 2에 도시된 비휘발성 메모리 장치(100)의 프로그램 방법을 보여주는 제 1 흐름도이다. 도 2 내지 도 4를 참조하면, 프로그램 방법은 다음과 같이 진행된다.
프로그램 동작시, 입력된 어드레스(ADDR)에 대응하는 워드라인이 선택된다. 또한 프로그램될 데이터가 페이지 버퍼들 각각에 로딩된다(S110). 로딩된 데이터에 따라 각각의 비트라인들(BL0~BLn-1)은 비트라인 셋업된다. 예를 들어, 프로그램 데이터 '0'이 로딩된 페이지 버퍼에 대응하는 비트라인들에는 프로그램 전압(0V)이 인가되고, 프로그램 금지 데이터 '1'이 로딩된 페이지 버퍼에 대응하는 비트라인들에는 프로그램 금지 전압(Vcc)이 인가된다.
이후, 선택된 워드라인에 연결된 메모리 셀들 중에서 프로그램 셀들에 대하여 데이터 '0' 프로그램 동작이 수행된다(S120). 도 3에 도시된 바와 같이, 프로그램 셀들이 연결된 선택된 워드라인으로 프로그램 시작 전압(Vpgm_start1)이 인가된다. 이후, 소정의 시간 후에 프로그램 셀들에 대한 '0' 데이터 검증 동작이 수행된다(S130). 여기서 '0' 데이터 검증 결과는 페일 체크 레지스터(142)에 저장된다. '0' 데이터 검증 동작 수행 결과로써, 프로그램 셀들 중 '0' 데이터 프로그램 동작이 완료된 메모리 셀들은 프로그램 금지된다. 예를 들어, '0' 데이터 프로그램 동 작이 완료된 메모리 셀들이 연결된 비트라인들로부터 전원전압(Vcc)이 인가될 것이다. 반면에, '0' 데이터 검증 동작 수행 결과로써, 프로그램 셀들 중 '0' 데이터 프로그램 동작이 완료되지 못한 메모리 셀들의 경우에는 소정의 레벨(ΔVISSP1)만큼 증가된 프로그램 전압을 선택된 워드라인으로 인가함으로 계속해서 프로그램 동작이 수행된다(S140).
모든 프로그램 셀들이 '0' 데이터로 프로그램되면, 프로그램 금지 셀들에 대한 '1' 데이터 검증이 수행된다(S150). '0' 데이터 검증 결과에 따라 검증 동작이 성공했는지 판별된다(S160).
만약 '1' 데이터 검증 동작이 실패하면, 프로그램 페일에 대응하는 플래그 비트가 페일 체크 레지스터(142)에 저장되고(S170), 프로그램 동작은 종료된다. 선택된 워드라인에 대한 프로그램 페일 발생시, 추후에 재프로그램이 수행될 것이다. 메모리 제어기(도시되지 않음)는 프로그램 종료 이후에 페일 체크 레지스터(142)에 저장된 플래그 비트를 읽기를 위한 읽기 명령을 비휘발성 메모리 장치(100)로 전달한다. 이때 전달된 읽기 명령에 의해 비휘발성 메모리 장치(100)는 페일 체크 레지스터(142)에 저장된 페일 정보를 메모리 제어기로 전송한다. 이에 메모리 제어기는 전송된 페일 체크 레지스터(142)의 플래그 비트를 통하여 프로그램 페일을 확인한다. 이때 전송된 플래그 비트가 프로그램 페일에 대응할 때에 메모리 제어기는 에러 정정이 가능한지를 판별한다. 만약 에러 정정이 가능하지 않다면, 메모리 제어기는 재프로그램 동작을 수행하도록 재프로그램 명령 및 새로운 어드레스를 비휘발성 메모리 장치(100)로 전달한다. 비휘발성 메모리 장치(100)는 새롭게 전송된 재 프로그램 명령 및 새로운 어드레스에 근거하여 프로그램 동작을 수행한다.
만약 '1' 데이터 검증 동작이 성공하면, 선택된 워드라인에 대한 프로그램 동작이 완료된다.
본 발명에 따른 비휘발성 메모리 장치(100)의 프로그램 방법은 프로그램 셀들에 대하여 '0' 데이터 검증 동작 및 프로그램 금지 셀들에 대하여 '1' 데이터 검증 동작을 수행한다. 즉, 본 발명의 프로그램 방법은 메모리 셀들의 모든 데이터에 대한 검증 동작을 수행한다.
본 발명의 비휘발성 메모리 장치(100)는 외부로부터 제어되지 않고 자체적으로 재프로그램을 동작을 수행할 수도 있다. 도 5는 본 발명에 따른 비휘발성 메모리 장치(100)의 프로그램 방법을 보여주는 제 2 흐름도이다. 도 5에 도시된 프로그램 방법은 프로그램 페일 발생시 도 4에 도시된 바와 같이 프로그램 동작이 종료되지 않고, 곧 바로 다른 워드라인으로 프로그램 동작이 진행된다(S280). 본 발명의 비휘발성 메모리 장치(100)의 제어 로직(140)은 페일 체크 레지스터(142)에 저장된 플래그 비트에 따라 재프로그램 동작이 자체적으로 수행되도록 한다. 여기서 재프로그램 동작은 새로운 워드라인으로 도 5에 도시된 방법과 동일하게 진행될 것이다.
도 6은 본 발명에 따른 비휘발성 메모리 장치(200)의 제 2 실시 예를 보여주는 도면이다. 본 발명의 비휘발성 메모리 장치(200)는 홀수번째 비트라인들(BLo1~BLon)에 연결된 메모리 셀들을 프로그램하고 짝수번째 비트라인들(BLe1~BLen)에 연결된 메모리 셀들을 프로그램한다. 특히, 비휘발성 메모리 장 치(100)는 선택된 비트라인들에 연결된 프로그램 금지 셀들에 대하여 '1' 데이터 검증 동작을 수행하고, 비선택된 비트라인들에 연결된 메모리 셀들에 대하여 '1' 및 '0' 데이터 검증 동작을 수행한다. 여기서 검증된 결과들은 페일 체크 레지스터(242)에 저장된다.
도 7은 도 6에 도시된 비휘발성 메모리 장치(200)의 프로그램 방법을 보여주는 도면이다. 도 7을 참조하면, 프로그램 방법은 제 2 프로그램 시작 전압(Vpgm_start2)부터 시작하여 제 2 소정의 레벨만큼(ΔVISPP2) 증가시키면서 프로그램 전압을 선택된 워드라인으로 인가한다. 각 프로그램 루프마다 선택된 비트라인들에 연결된 프로그램 셀들 및 비선택된 비트라인들에 연결된 '0' 데이터 셀들에 대하여 '0' 데이터 검증 동작이 수행된다. 선택된 비트라인들에 연결된 모든 프로그램 셀들에 대하여 '0' 데이터 프로그램이 완료되면, 선택된 비트라인들에 연결된 프로그램 금지 셀들 및 비선택된 비트라인들에 연결된 '1' 데이터 셀들에 대하여 '1' 데이터 검증 동작이 수행된다. 최종적으로, 선택된 비트라인들에 연결된 프로그램 셀들에는 '0' 데이터가 프로그램되고, 선택된 비트라인들에 연결된 프로그램 금지 셀들에는 '1' 데이터가 유지되고, 비선택된 비트라인들에 연결된 메모리 셀들에는 각각 저장된 데이터가 유지된다.
본 발명의 프로그램 방법은 선택된 비트라인들에 연결된 프로그램 금지 셀들 및 비선택된 비트라인들에 연결된 메모리 셀들 각각에 저장된 데이터에 대응하는 검증 동작을 수행한다. 이로써, 프로그램 페일 진단이 강화된다.
도 8은 도 6에 도시된 본 발명에 따른 비휘발성 메모리 장치(100)의 프로그 램 방법에 대한 제 1 흐름도이다. 도 6 내지 8을 참조하면, 프로그램 방법은 아래와 같다. 아래에서는 설명의 편의를 위하여 홀수번째 비트라인들(BLo1~BLon)에 연결된 메모리 셀들에는 이미 프로그램 동작이 수행되었고, 짝수번째 비트라인들(BLe1~BLen)에 연결된 메모리 셀들에 프로그램 동작이 수행된다고 가정하겠다. 즉, 아래에서 짝수번째 비트라인들(BLe1~BLen)이 선택된 비트라인들이고, 홀수번째 비트라인들(BLo1~BLon)이 비선택된 비트라인들이라고 가정하겠다.
프로그램될 데이터가 외부로부터 로딩되어 각 짝수번째 페이지 버퍼들에 저장된다(S310). 여기서 짝수번째 페이지 버퍼들 각각은 짝수번째 비트라인들(BLe1~BLen)에 대응된다. 짝수번째 비트라인들(BLe1~BLen)에 연결된 메모리 셀들의 프로그램 동작이기 때문에 선택된 비트라인들은 짝수번째 비트라인(BLe1~BLen)이고, 비선택된 비트라인들은 홀수번째 비트라인들(BLo1~BLon)이다.
데이터 로딩 후, 비선택된 홀수번째 비트라인(BLo1~BLon)에 연결된 메모리 셀들로부터 저장된 데이터를 읽는다(S320). 읽혀진 데이터는 각각 홀수번째 페이지 버퍼들에 래치된다. 이때 읽기 과정을 수행할 동안에는 비선택된 홀수번째 비트라인(BLoe1~BLon)이 활성화되도록 제어될 것이다.
이후, 짝수번째 페이지 버퍼들에 대응되는 짝수번째 비트라인들(BLe1~BLen)이 활성화됨으로, 프로그램 동작이 수행된다(S330). 소정 시간 동안 프로그램 동작이 수행된 후, 선택된 짝수번째 비트라인들(BLe1~BLen)에 연결된 프로그램 셀들 및 비선택된 홀수번째 비트라인들(BLo1~BLon)에 연결된 '0' 데이터 셀들에 대한 '0' 데이터 검증 동작이 수행된다(S340). '0' 데이터 검증 결과로써 '0' 데이터의 프로 그램이 완료되었는지 판별된다(S350). 만약, '0' 데이터 프로그램이 완료되지 못하면, 소정의 레벨만큼 프로그램 전압이 증가되고 상술 된 과정이 반복된다.
만약, '0' 데이터 프로그램이 완료되면, 선택된 짝수 비트라인들(BLe1~BLen)의 프로그램 금지 셀들 및 비선택된 홀수 비트라인들(BLo1~BLon)에 대한 '1' 데이터 검증 동작이 수행된다(S360).
'1' 데이터 검증 결과로써 검증 동작이 판별된다(S370). '1' 데이터 검증이 실패하면 프로그램 동작은 페일이다. 따라서, 검증 동작 페일에 대응하는 플래그 비트가 페일 체크 레지스터(242)에 저장되고 프로그램 동작이 완료된다.
'1' 데이터 검증이 성공하면, 선택된 워드라인에 대한 짝수번째 비트라인들(BLe1~BLen)에 연결된 메모리 셀들에 대한 프로그램 동작이 완료된다.
도 9는 도 6에 도시된 비휘발성 메모리 장치(200)의 프로그램 방법에 대한 제 2 흐름도이다. 도 9의 S490 단계를 참조하면, 도 8과 비교하여 프로그램 페일 발생시 비휘발성 메모리 장치(200)는 자체적으로 재프로그램 동작을 수행한다. 제어 로직(240)은 페일 체크 레지스터(242)에 저장된 플래그 비트에 따라 재프로그램 여부를 결정한다.
도 8 및 도 9에서는 각 프로그램 루프마다 비선택된 비트라인들에 연결된 '0' 데이터 셀들에 대하여 '0' 데이터 검증 동작이 수행된다. 하지만 본 발명의 프로그램 방법이 반드시 여기에 국한될 필요는 없다. 본 발명의 프로그램 방법은 각 프로그램 루프마다 선택된 비트라인들에 연결된 프로그램 셀들에 대하여만 '0' 데이터 검증 동작이 수행될 수도 있다.
도 10은 도 6에 도시된 비휘발성 메모리 장치(200)의 프로그램 방법에 대한 제 3 흐름도이다. 도 10을 참조하면, 각 프로그램 루프마다 선택된 비트라인들에 연결된 프로그램 셀들에 대하여만 '0' 데이터 검증 동작이 수행되고(S540), 선택된 비트라인들에 대한 '0' 데이터 프로그램이 완료되면 선택된 비트라인들 및 비선택된 비트라인들에 연결된 메모리 셀들에 대하여 모든 데이터 검증 동작이 수행된다(S560).
도 11은 도 9에 도시된 프로그램 방법에서 프로그램 페일시 다른 워드라인에 대한 프로그램 방법을 보여주는 흐름도이다. 도 6 및 11을 참조하면, 본 발명의 다른 워드라인에 대한 프로그램 방법은 다음과 같이 진행된다.
선택된 워드라인에 대한 프로그램 실패시, 제어 로직(240)은 새로운 워드라인에 대한 재프로그램 동작을 시작한다. 제어 로직(240)은 새로운 어드레스를 발생하여 로우 디코더(220)로 전달한다. 이때, 각 페이지 버퍼에는 선택된 비트라인들에 연결된 메모리 셀들에 대응하는 데이터 및 비선택된 비트라인들에 연결된 메모리 셀들에 대응하는 데이터가 래치되어 있다. 따라서 각 페이지 버퍼에 대응하는 비트라인이 프로그램 전압(0V) 혹은 프로그램 금지 전압(Vcc)으로 프리차지된다. 이후, 도 7에 도시된 바와 같이 새로운 어드레스로 인하여 선택된 새로운 워드라인으로 제 2 프로그램 시작 전압(Vpgm_start2)을 인가하여 '0' 데이터 프로그램이 수행된다(S491). 이후, 선택된 비트라인들 및 비선택된 비트라인들에 연결된 프로그램 셀들에 대하여 '0' 데이터 검증 동작이 수행된다(S192).
'0' 데이터 검증 동작으로 '0' 데이터 프로그램이 완료되었는 지 판별한 다(S193). 만약 '0' 데이터 검증 동작이 실패할 경우에는 선택된 새로운 워드라인으로 제 2 프로그램 시작 전압으로부터 제 2 소정의 레벨(ΔVISSP2)이 증가된 프로그램 전압을 인가하여 프로그램 동작이 계속된다.
만약, 선택된 비트라인들 및 비선택된 비트라인들에 연결된 모든 프로그램 셀들이 '0' 데이터 프로그램될 때, 선택된 비트라인들 및 비선택된 비트라인들에 연결된 모든 프로그램 금지 셀들에 대하여 '1' 데이터 검증이 수행된다(S494).
제어 로직(240)은 '1' 데이터 검증 동작이 성공했는지 판별한다(S495). '1' 데이터 검증 동작이 성공하면, 다른 워드라인으로 프로그램 동작은 완료된다. 만약 '1' 데이터 검증 동작이 실패하면, 다른 워드라인으로 프로그램 동작이 실패한 것이다. 이에 따라 프로그램 페일에 대응하는 플래그 비트가 페일 체크 레지스터(242)에 저장된다(S496). 이후 제어 로직(240)는 또 다른 어드레스를 생성하고 이에 대응하는 워드라인으로 프로그램 동작을 수행한다.
도 12는 본 발명에 따른 페이지 버퍼의 기능을 보여주는 도면이다. 도 11를 참조하면, 본 발명의 페이지 버퍼들은 프로그램 동작시 비선택된 비트라인들에 연결된 메모리 셀들의 데이터를 읽어 저장하고, 또한 외부로부터 로딩된 데이터를 저장한다. 이렇게 페이지 버퍼에 저장된 데이터는 검증 동작시 데이터 체크를 하는데 이용된다.
본 발명은 프로그램 페일 발생시 다른 워드라인으로 재프로그램하는데 외부의 제어기로부터 데이터 입/출력을 필요치 않는다. 왜냐하면, 본 발명의 각 페이지 버퍼들은 선택된 셀들 및 비선택된 셀들의 데이터를 이미 저장하고 있기 때문이다.
도 13은 본 발명의 메모리 시스템(10)을 보여주는 도면이다. 도 13을 참조하면, 메모리 시스템(10)은 비휘발성 메모리 장치(12) 및 비휘발성 메모리 장치(12)을 제어하는 메모리 제어기(14)를 포함한다. 여기서 비휘발성 메모리 장치(12)은 도 2 및 도 6에 도시된 것과 동일한 기능을 수행한다.
일반적인 메모리 시스템에서는 데이터 '1' 및 비선택된 스트링의 데이터 '1' 혹은 '0'이 페일이 되었는지를 체크하지 않은 상태에서 비휘발성 메모리 장치의 프로그램 동작이 종료된다. 비휘발성 메모리 장치는 알앤비(R/B) 신호를 메모리 제어기로 전달하여 프로그램 종료를 알린다. 따라서 일반적인 메모리 시스템에서는 메모리 제어기가 프로그램 동작이 정상적으로 수행되었는지를 확인하기 위하여 해당 어드레스에 대응하는 데이터를 읽어 확인하고(예를 들어, ECC), 데이터 확인 결과로써 프로그램 페일이 체크되면 다른 어드레스에 대응하는 다른 워드라인으로 프로그램 동작을 수행한다. 이러한 과정에서 비휘발성 메모리 장치 및 메모리 제어기 사이에서는 적어도 2번 이상의 데이터 입출력 동작이 수행된다.
반면에 본 발명의 메모리 시스템(10)에서는 데이터 '1' 및 비선택된 스트링의 데이터 '1' 혹은 '0'의 페일이 되었는지를 비휘발성 메모리 장치(12)에서 점검하고 프로그램 동작이 종료된다. 프로그램 동작 결과로써, 프로그램 페일이 발생하면 비휘발성 메모리 장치(12)에서는 페이지 버퍼들 내부에 저장되어 있는 데이터를 이용하여 자체적으로 다른 워드라인으로 프로그램 동작이 수행된다. 따라서, 본 발명의 메모리 시스템(10)에서는 프로그램 페일이 발생하더라도 비휘발성 메모리 장치(12)와 메모리 제어기(14) 사이의 별도로 데이터 입출력 없이 다른 워드라인으로 프로그램 동작이 수행된다. 그 결과로써, 일반적인 메모리 시스템과 비교하여 본 발명의 메모리 시스템(10)은 프로그램 동작시 프로그램 페일로 발생되는 타임 오버헤드 문제를 크게 개선한다.
도 14는 일반적인 프로그램 방법과 본 발명의 프로그램 방법들의 재프로그램을 고려한 전체적인 프로그램 시간을 비교한 도면이다. 도 14를 참조하면, 본 발명의 프로그램 방법은 일반적인 프로그램 방법보다 시간 오버헤드를 크게 줄일 수 있게 된다. 도 14에 도시된 바와 같이, 일반적인 프로그램 방법은 7번의 데이터 입출력 시간이 사용되지만, 본 발명의 프로그램 방법은 한번의 데이터 입출력 시간이 사용된다.
일반적인 프로그램 방법은 프로그램 실패가 발생 될 경우에 있어서 메모리 제어기와 비휘발성 메모리 장치 사이에 7번의 데이터 입출력 동작이 수행되어야 한다. 반면에 본 발명의 프로그램 방법은 프로그램 실패가 발생되더라도 메모리 제어기 및 비휘발성 메모리 장치 사이에 한번의 데이터 입출력 동작만 수행된다.
본 발명의 제 1 프로그램 방법은 비휘발성 메모리 장치(12)에서 자체적으로 재프로그램 동작을 수행한다. 메모리 제어기(14)로부터 데이터를 입력받아 제 1 자가 진단 프로그램 동작을 수행하고, 이후부터 메모리 제어기(14)로/으로부터 별도의 데이터 입출력없이 제 2 자가 진단 프로그램 동작을 수행한다. 제 1 자가 진단 프로그램 동작에서는 선택된 셀들에 대하여 데이터 '0'이 프로그램 동작이 수행되고, 선택된 셀들에 대하여 '1' 데이터 검증 동작이 수행되고, 선택된 셀들 및 비선택된 셀들에 대하여 '0' 및 '1' 데이터 검증 동작이 수행된다. 여기서 선택된 메모 리 셀들은 선택된 비트라인들에 연결된 프로그램 셀들 및 프로그램 금지 셀들을 말하며, 비선택된 메모리 셀들은 비선택된 비트라인들에 연결된 메모리 셀들을 의미한다.
이후, 제 1 자가 진단 프로그램 동작 결과로써 프로그램 실패할 경우에는 제 2 자가 진단 프로그램 동작이 수행된다. 제 2 자가 진단 프로그램 동작에서는 메모리 제어기(14)로/로부터의 데이터 입출력 없이 선택된 셀들에 대하여 '0' 데이터 프로그램 동작이 수행되고, 비선택된 셀들에 대하여 이전 데이터가 프로그램된다. 상술 된 바와 같이 본 발명의 비휘발성 메모리 장치(12)는 프로그램 동작시 시간 오버헤드를 크게 줄일 수 있다.
본 발명의 제 2 프로그램 방법은 메모리 제어기(14)에 의해 재프로그램 동작이 제어된다. 제 1 자가 진단 프로그램 동작 결과로써 프로그램 실패할 경우에 메모리 제어기(14)는 비휘발성 메모리 장치(12)의 페일 체크 레지스터에 저장된 플래그 비트 값에 따라 재프로그램 여부를 결정한다. 재프로그램이 결정되면, 재프로그램 명령(RP CMD) 및 새로운 어드레스를 비휘발성 메모리 장치(12)로 전달한다. 비휘발성 메모리 장치(12)는 새로운 어드레스에 대응하는 워드라인으로 제 2 자가 진단 프로그램 동작을 수행한다.
본 발명에 따른 비휘발성 메모리 장치의 프로그램 방법은 프로그램 상태에 따른 추가적인 읽기/프로그램 동작을 제어기에서 수행하지 않고 비휘발성 메모리 장치 내에서 수행한다. 이로써, 프로그램 동작시 제어기 및 비휘발성 메모리 장치 사이의 데이터 입출력 회수를 줄일 수 있게 된다. 그 결과로써, 본 발명의 프로그 램 방법은 오버헤드 시간을 대폭 줄일 수 있게 된다. 이는 시스템 동작 특성의 향상된다.
또한, 제어기의 소프트웨어 및 하드웨어 부담을 크게 줄일 수 있게 되고, 결과적으로 시스템의 비용이 감소된다.
본 발명의 프로그램 방법은 MLC 프로그램 방법에도 적용 가능하다. 일반적으로 MLC 프로그램 방법은 LSB 데이터가 저장되는 LSB 프로그램 동작과, MSB 데이터가 저장되는 MSB 프로그램 동작으로 구분된다. LSB 프로그램 동작은 도 1 내지 도 14에 상술 된 프로그램 방법으로 수행될 것이고, MSB 프로그램 동작은 도 1 내지 도 14에 상술 된 프로그램 방법을 응용하여 수행될 것이다. MSB 프로그램 동작 역시 프로그램 셀들에 대하여 변경될 데이터로 검증 동작을 수행하고, 프로그램 금지 셀들에 대하여 유지될 데이터로 검증 동작을 수행할 것이다. 특히 MSB 프로그램 동작시 LSB 데이터를 잃어버리지 않도록 각 페이지 버퍼들은 LSB 데이터를 읽어 저장해 둘 것이다. 이렇게 페이지 버퍼에 저장된 LSB 데이터는 LSB 데이터 복원 동작에 사용될 것이다.
도 15는 본 발명에 따른 비휘발성 메모리 장치를 갖는 메모리 카드(20)를 보여주는 도면이다. 도 15를 참조하면, 메모리 카드(20)는 도 2 및 도 6에 도시된 구성과 실질적으로 동일하게 구성된 비휘발성 메모리 장치(22) 및 비휘발성 메모리 장치(22)를 제어하는 메모리 제어기(24)를 포함한다. 이러한 메모리 카드(20)는 디지털 카메라, PDA, 휴대용 오디오 장치, 휴대폰, 그리고 개인 컴퓨터와 같은 디지털 장치들과 더불어 정보를 저장하기/읽기 위해 사용된다.
도 16은 본 발명에 따른 비휘발성 메모리 장치를 갖는 메모리 시스템(30)을 보여주는 블록도이다. 도 16을 참조하면, 메모리 시스템(30)은 버스(31)에 전기적으로 연결된 중앙처리장치(32), 에스램(34), 메모리 제어기(36) 및 플래시 메모리 장치(38)를 포함한다. 여기서 플래시 메모리 장치(38)는 도 2 및 도 6에 도시된 것들과 실질적으로 동일하게 구성될 것이다. 플래시 메모리 장치(38)에는 중앙처리장치(32)에 의해서 처리된/처리될 N-비트 데이터(N은 1 또는 그보다 큰 정수)가 메모리 제어기(36)를 통해 저장될 것이다.
비록 도면에는 도시되지 않았지만, 본 발명에 따른 메모리 시스템(20)에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 인가될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 메모리 제어기와 플래시 메모리 장치는, 예를 들면, 데이터를 저장하는 데 비휘발성 메모리 장치를 사용하는 SSD(Solid State Drive/Disk)로 구성될 수도 있다.
본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 제어기는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 제어기는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장될 수 있다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지로 변형할 수 있다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구범위 뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
도 1은 본 발명의 개념을 설명하기 위한 도면이다.
도 2는 본 발명에 따른 비휘발성 메모리 장치에 대한 제 1 실시 예를 보여주는 도면이다.
도 3은 도 2에 도시된 비휘발성 메모리 장치의 ISPP 프로그램 방법을 보여주는 도면이다.
도 4는 도 2에 도시된 비휘발성 메모리 장치의 프로그램 방법에 대한 제 1 흐름도이다.
도 5는 도 2에 도시된 비휘발성 메모리 장치의 프로그램 방법에 대한 제 2 흐름도이다.
도 6은 본 발명에 따른 비휘발성 메모리 장치에 대한 제 2 실시 예를 보여주는 도면이다.
도 7은 도 6에 도시된 비휘발성 메모리 장치의 ISPP 프로그램 방법을 보여주는 도면이다.
도 8은 도 6에 도시된 비휘발성 메모리 장치의 프로그램 방법에 대한 제 1 흐름도이다.
도 9는 도 6에 도시된 비휘발성 메모리 장치의 프로그램 방법에 대한 제 2 흐름도이다.
도 10은 도 6에 도시된 비휘발성 메모리 장치의 프로그램 방법에 대한 제 3 흐름도이다.
도 11은 도 9에 도시된 다른 워드라인으로의 프로그램 방법에 대한 흐름도이다.
도 12는 본 발명에 따른 페이지 버퍼의 기능을 보여주는 도면이다.
도 13는 본 발명에 따른 메모리 시스템을 보여주는 도면이다.
도 14는 일반적인 프로그램 방법과 본 발명의 프로그램 방법들의 재프로그램을 고려한 전체적인 프로그램 시간을 비교한 도면이다.
도 15는 본 발명의 비휘발성 메모리 장치를 갖는 메모리 카드를 보여주는 도면이다.
도 16은 본 발명의 비휘발성 메모리 장치를 갖는 컴퓨터 시스템에 관한 도면이다.
*도면의 주요부분에 대한 부호의 설명*
100,200: 비휘발성 메모리 장치 110,110: 메모리 셀 어레이
120,220: 로우 디코더 130,230: 입출력 버퍼회로
140,240: 제어 로직 142,242: 페일 체크 레지스터

Claims (10)

  1. 비휘발성 메모리 장치의 프로그램 방법에 있어서:
    워드라인에 연결된 적어도 하나의 선택된 메모리 셀에 프로그램 동작을 수행하는 단계;
    상기 적어도 하나의 선택된 메모리 셀이 프로그램 데이터로 제대로 프로그램되었는 지를 검증하는 단계;
    상기 워드라인에 연결된 적어도 하나의 비선택된 메모리 셀이 저장된 데이터를 유지하고 있는 지를 검증하는 단계를 포함하는 프로그램 방법.
  2. 제 1 항에 있어서,
    상기 적어도 하나의 선택된 메모리 셀이 제대로 프로그램되지 않았을 때, 상기 워드라인으로 소정의 레벨만큼 증가된 프로그램 전압을 인가하는 방법.
  3. 제 1 항에 있어서,
    상기 적어도 하나의 비선택된 메모리 셀이 상기 저장된 데이터를 유지하지 못할 때, 프로그램 페일 정보가 발생되고,
    상기 발생된 프로그램 페일 정보는 레지스터에 저장되는 프로그램 방법.
  4. 제 3 항에 있어서,
    상기 레지스터에 저장된 상기 프로그램 페일 정보에 따라 상기 적어도 하나의 선택된 메모리 셀에 프로그램될 상기 프로그램 데이터 및 상기 적어도 하나의 비선택 메모리 셀에 저장된 상기 저장된 데이터가 상기 비휘발성 메모리 장치 내에서 자체적으로 다른 곳으로 재프로그램되는 프로그램 방법.
  5. 제 3 항에 있어서,
    상기 비휘발성 메모리 장치를 제어하는 메모리 제어기는 상기 레지스터에 저장된 상기 프로그램 페일 정보에 따라 상기 적어도 하나의 선택된 메모리 셀에 프로그램될 상기 프로그램 데이터 및 상기 적어도 하나의 비선택 메모리 셀에 저장된 상기 저장된 데이터가 상기 비휘발성 메모리 장치 내에서 다른 곳으로 재프로그램되도록 제어하는 프로그램 방법.
  6. 제 1 항에 있어서,
    상기 적어도 하나의 선택된 메모리 셀은 '1' 데이터에서 '0' 데이터로 변경되고,
    상기 적어도 하나의 비선택 메모리 셀은 '1' 데이터를 유지하도록 하는 프로그램 방법.
  7. 비휘발성 메모리 장치의 프로그램 방법에 있어서:
    선택된 메모리 셀들로 프로그램 동작을 수행하는 단계;
    상기 선택된 메모리 셀들에 대하여 프로그램될 데이터로 검증 동작을 수행하는 단계;
    비선택된 메모리 셀들에 대하여 저장된 데이터로 검증 동작을 수행하는 단계; 및
    상기 검증 동작이 실패할 경우 재프로그램 동작을 수행하는 단계를 포함하되,
    상기 재프로그램 동작은 상기 비휘발성 메모리 장치의 외부에서 데이터 입출력없이 프로그램 동작을 수행하는 프로그램 방법.
  8. 삭제
  9. 제 7 항에 있어서,
    상기 선택된 메모리 셀들로 프로그램을 수행하는 단계는,
    상기 선택된 메모리 셀들로 프로그램될 데이터를 외부로부터 전달받아 저장하는 단계; 및
    상기 비선택된 메모리 셀들로부터 저장된 데이터를 읽고, 상기 읽혀진 데이터를 저장해 두는 단계를 포함하는 프로그램 방법.
  10. 삭제
KR1020080092856A 2008-09-22 2008-09-22 비휘발성 메모리 장치의 프로그램 방법 KR101532754B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080092856A KR101532754B1 (ko) 2008-09-22 2008-09-22 비휘발성 메모리 장치의 프로그램 방법
US12/543,993 US8050101B2 (en) 2008-09-22 2009-08-19 Nonvolatile memory devices having erased-state verify capability and methods of operating same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080092856A KR101532754B1 (ko) 2008-09-22 2008-09-22 비휘발성 메모리 장치의 프로그램 방법

Publications (2)

Publication Number Publication Date
KR20100033816A KR20100033816A (ko) 2010-03-31
KR101532754B1 true KR101532754B1 (ko) 2015-07-02

Family

ID=42037537

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080092856A KR101532754B1 (ko) 2008-09-22 2008-09-22 비휘발성 메모리 장치의 프로그램 방법

Country Status (2)

Country Link
US (1) US8050101B2 (ko)
KR (1) KR101532754B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10699788B2 (en) 2017-10-12 2020-06-30 Samsung Electronics Co., Ltd. Non-volatile memory device and operating method thereof for performing an erase detect operation
US11158381B2 (en) 2017-10-12 2021-10-26 Samsung Electronics Co., Ltd. Non-volatile memory device and operating method thereof

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100753156B1 (ko) 2006-09-13 2007-08-30 삼성전자주식회사 플래시 메모리 장치 및 그것의 메모리 셀 어레이
KR101617641B1 (ko) * 2009-08-27 2016-05-03 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템, 및 그것의 프로그램 방법
US8385132B2 (en) * 2010-12-22 2013-02-26 Sandisk Technologies Inc. Alternate bit line bias during programming to reduce channel to floating gate coupling in memory
KR101996004B1 (ko) 2012-05-29 2019-07-03 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법 및 그것의 메모리 시스템
DE102013105356A1 (de) 2012-05-29 2013-12-05 Samsung Electronics Co., Ltd. Verfahren zum Betreiben von nichtflüchtigen Speichervorrichtungen, die effiziente Fehlererkennung unterstützen
US20140198576A1 (en) * 2013-01-16 2014-07-17 Macronix International Co, Ltd. Programming technique for reducing program disturb in stacked memory structures
JP6179206B2 (ja) * 2013-06-11 2017-08-16 株式会社リコー メモリ制御装置
KR20140144989A (ko) * 2013-06-12 2014-12-22 에스케이하이닉스 주식회사 메모리 시스템, 반도체 메모리 장치 및 그것들의 동작 방법
KR102292217B1 (ko) * 2015-02-06 2021-08-24 삼성전자주식회사 내부적으로 데이터 읽기 검증을 수행할 수 있는 메모리 장치, 이의 작동 방법, 및 이를 포함하는 메모리 시스템
US10381094B2 (en) 2016-10-11 2019-08-13 Macronix International Co., Ltd. 3D memory with staged-level multibit programming
KR20190000562A (ko) * 2017-06-23 2019-01-03 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10354738B2 (en) 2017-09-27 2019-07-16 Micron Technology, Inc. One check fail byte (CFBYTE) scheme

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100245413B1 (ko) * 1997-04-12 2000-03-02 윤종용 불 휘발성 반도체 메모리 장치의 기입 방법
KR20050072202A (ko) * 2004-01-06 2005-07-11 주식회사 테라반도체 불휘발성 메모리 장치 및 이의 프로그램 속도 개선 방법
KR100758300B1 (ko) * 2006-07-26 2007-09-12 삼성전자주식회사 플래시 메모리 장치 및 그것의 프로그램 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0172408B1 (ko) * 1995-12-11 1999-03-30 김광호 다수상태 불휘발성 반도체 메모리 및 그의 구동방법
US7031192B1 (en) * 2002-11-08 2006-04-18 Halo Lsi, Inc. Non-volatile semiconductor memory and driving method
US7073103B2 (en) 2002-12-05 2006-07-04 Sandisk Corporation Smart verify for multi-state memories
JP2005353242A (ja) 2004-06-14 2005-12-22 Toshiba Corp 不揮発性半導体記憶装置及びそのデータ書き込み方法
US7408804B2 (en) * 2005-03-31 2008-08-05 Sandisk Corporation Systems for soft programming non-volatile memory utilizing individual verification and additional soft programming of subsets of memory cells
US7436713B2 (en) 2006-04-12 2008-10-14 Sandisk Corporation Reducing the impact of program disturb
DE602006011451D1 (de) 2006-06-21 2010-02-11 Hynix Semiconductor Inc Verfahren und Vorrichtung zum elektrischen Programmieren von Halbleiterspeicherzellen

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100245413B1 (ko) * 1997-04-12 2000-03-02 윤종용 불 휘발성 반도체 메모리 장치의 기입 방법
KR20050072202A (ko) * 2004-01-06 2005-07-11 주식회사 테라반도체 불휘발성 메모리 장치 및 이의 프로그램 속도 개선 방법
KR100758300B1 (ko) * 2006-07-26 2007-09-12 삼성전자주식회사 플래시 메모리 장치 및 그것의 프로그램 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10699788B2 (en) 2017-10-12 2020-06-30 Samsung Electronics Co., Ltd. Non-volatile memory device and operating method thereof for performing an erase detect operation
US10957397B2 (en) 2017-10-12 2021-03-23 Samsung Electronics Co., Ltd. Non-volatile memory device, storage device, and programming method thereof for performing an erase detect operation
US11158381B2 (en) 2017-10-12 2021-10-26 Samsung Electronics Co., Ltd. Non-volatile memory device and operating method thereof

Also Published As

Publication number Publication date
KR20100033816A (ko) 2010-03-31
US20100074025A1 (en) 2010-03-25
US8050101B2 (en) 2011-11-01

Similar Documents

Publication Publication Date Title
KR101532754B1 (ko) 비휘발성 메모리 장치의 프로그램 방법
JP4901348B2 (ja) 半導体記憶装置およびその制御方法
KR100926475B1 (ko) 멀티 비트 플래시 메모리 장치 및 그것의 프로그램 방법
US8189393B2 (en) Nonvolatile memory device with incremental step pulse programming
JP5632210B2 (ja) 非揮発性メモリ装置及びそのプログラム方法
KR101088235B1 (ko) 반도체 메모리를 갖는 메모리 시스템 및 그 데이터 전송 방법
JP4510072B2 (ja) 不揮発性半導体記憶装置とその書き込み方法
TWI602187B (zh) Semiconductor memory devices and memory systems
CN107766171B (zh) 与非型快闪存储器及其读出方法
KR101150645B1 (ko) 비휘발성 반도체 메모리 장치
JP4746658B2 (ja) 半導体記憶システム
JP2012226806A (ja) 不揮発性半導体記憶装置
CN107871515B (zh) 半导体存储器装置及其操作方法
US8885419B2 (en) Semiconductor memory device and methods of operating the same
KR20100011198A (ko) 불휘발성 메모리 장치의 프로그램 방법
JP2011044200A (ja) 不揮発性半導体記憶装置
US20100332946A1 (en) Method of operating nonvolatile memory device and nonvolatile memory device for implementing the same
US9213592B2 (en) Semiconductor memory device and method of operating the same
US20210249090A1 (en) Nonvolatile memory device and method for operating thereof
JP2012203943A (ja) 不揮発性半導体記憶装置
US8205039B2 (en) Nonvolatile semiconductor memory device
US12079075B2 (en) Semiconductor storage apparatus and ECC related information reading method
JPWO2007043133A1 (ja) 半導体装置およびその制御方法
JP2022038392A (ja) 半導体記憶装置及び半導体記憶装置におけるコマンド処理方法

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: 20190530

Year of fee payment: 5