KR20130133419A - 비휘발성 메모리 장치의 프로그램 방법 및 그것의 메모리 시스템 - Google Patents

비휘발성 메모리 장치의 프로그램 방법 및 그것의 메모리 시스템 Download PDF

Info

Publication number
KR20130133419A
KR20130133419A KR1020120056641A KR20120056641A KR20130133419A KR 20130133419 A KR20130133419 A KR 20130133419A KR 1020120056641 A KR1020120056641 A KR 1020120056641A KR 20120056641 A KR20120056641 A KR 20120056641A KR 20130133419 A KR20130133419 A KR 20130133419A
Authority
KR
South Korea
Prior art keywords
data
program
bit
cell
latch
Prior art date
Application number
KR1020120056641A
Other languages
English (en)
Other versions
KR101996004B1 (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 KR1020120056641A priority Critical patent/KR101996004B1/ko
Priority to US13/777,512 priority patent/US9053822B2/en
Priority to DE201310105356 priority patent/DE102013105356A1/de
Priority to CN201310206487.4A priority patent/CN103456361B/zh
Priority to JP2013112780A priority patent/JP6218437B2/ja
Publication of KR20130133419A publication Critical patent/KR20130133419A/ko
Priority to US14/712,939 priority patent/US9183924B2/en
Application granted granted Critical
Publication of KR101996004B1 publication Critical patent/KR101996004B1/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
    • 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
    • G11C11/5635Erasing 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • 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
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • 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/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • G11C16/3413Circuits or methods to recover overprogrammed nonvolatile memory cells detected during program verification, usually by means of a "soft" erasing step
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/562Multilevel memory programming aspects
    • G11C2211/5621Multilevel programming verification

Abstract

본 발명에 따른 비휘발성 메모리 장치의 프로그램 방법은, 로딩된 데이터를 적어도 하나의 제 1 래치에 저장하고, 특정 상태의 페일 비트를 복구하기 위한 복구 기준 비트를 제 2 래치에 저장하고, 상기 메모리 셀에 프로그램 펄스를 인가하고, 제 1 레벨로 상기 메모리 셀의 프로그램 검증하고, 및 상기 프로그램 검증이 패스될 때, 상기 적어도 하나의 제 1 래치에 저장된 데이터를 패스 패턴의 데이터로 변경하는 것으로 구성된 프로그램 동작을 수행하는 단계, 및 제 2 레벨로 상기 메모리 셀을 읽고, 상기 읽혀진 데이터 및 상기 복구 기준 비트를 이용하여 상기 로딩된 데이터를 복구하는 것으로 구성된 데이터 복구 동작을 수행하는 단계를 포함한다.

Description

비휘발성 메모리 장치의 프로그램 방법 및 그것의 메모리 시스템{PROGRAMMING METHOD OF NONVOLATILE MEMORY DEVICE AND MEMORY SYSTEM HAVING THE SAME}
본 발명은 비휘발성 메모리 장치의 프로그램 방법 및 그것을 포함하는 메모리 시스템에 관한 것이다.
반도체 메모리 장치는 크게 휘발성 반도체 메모리 장치와 비휘발성 반도체 메모리 장치로 나누어진다. 비휘발성 반도체 메모리 장치는 전원이 차단되어도 데이터를 저장할 수 있다. 비휘발성 메모리에 저장되는 데이터는 메모리 제조 기술에 따라 영구적이거나 재프로그램 가능하다. 비휘발성 반도체 메모리 장치는 컴퓨터, 항공 전자 공학, 통신, 및 소비자 전자 기술 산업과 같은 넓은 범위의 응용에서 프로그램, 마이크로 코드, 및 사용자 데이터의 저장을 위해서 이용된다.
본 발명의 목적은 데이터의 신뢰성을 향상시키는 메모리 시스템 및 그것의 프로그램 방법을 제공하는데 있다.
본 발명의 목적은, 데이터의 신뢰성을 높이면서 칩 사이즈를 줄이는 메모리 시스템을 제공하는데 있다.
본 발명의 목적은, 소거 페일 비트를 복구할 수 있는 메모리 시스템 및 그것의 프로그램 방법을 제공하는데 있다.
본 발명의 실시 예에 따른 비휘발성 메모리 장치의 프로그램 방법은, 로딩된 데이터를 적어도 하나의 제 1 래치에 저장하고, 특정 상태의 페일 비트를 복구하기 위한 복구 기준 비트를 제 2 래치에 저장하고, 상기 메모리 셀에 프로그램 펄스를 인가하고, 제 1 레벨로 상기 메모리 셀의 프로그램 검증하고, 및 상기 프로그램 검증이 패스될 때, 상기 적어도 하나의 제 1 래치에 저장된 데이터를 패스 패턴의 데이터로 변경하는 것으로 구성된 프로그램 동작을 수행하는 단계; 및 제 2 레벨로 상기 메모리 셀을 읽고, 상기 읽혀진 데이터 및 상기 복구 기준 비트를 이용하여 상기 로딩된 데이터를 복구하는 것으로 구성된 데이터 복구 동작을 수행하는 단계를 포함한다.
실시 예에 있어서, 상기 특정 상태는 소거 상태를 지시한다.
실시 예에 있어서, 상기 패스 패턴의 데이터는 소거 상태에 대응하는 데이터이다.
실시 예에 있어서, 현재 프로그램 루프에서 상기 적어도 하나의 제 1 래치에 저장된 데이터가 상기 패스 패턴의 데이터일 때, 다음 프로그램 루프에서 상기 메모리 셀은 프로그램 금지된다.
실시 예에 있어서, 상기 제 2 레벨은 상기 제 1 레벨보다 낮다.
실시 예에 있어서, 상기 제 2 레벨의 읽기 동작에서 상기 메모리 셀이 오프-셀일 때, 상기 읽혀진 데이터 및 상기 복구 기준 비트를 이용하여 상기 로딩된 데이터가 복구된다.
실시 예에 있어서, 상기 복구된 데이터는 상기 비휘발성 메모리 장치를 제어하는 메모리 제어기로 출력된다.
실시 예에 있어서, 상기 메모리 제어기는 상기 복구된 데이터를 상기 비휘발성 메모리 장치의 다른 메모리 셀에 프로그램시킨다.
본 발명의 다른 실시 예에 따른 비휘발성 메모리 장치의 프로그램 방법은: 입력된 데이터를 제 1 래치들에 저장하고, 비트라인 포싱 비트를 제 2 래치에 저장하고, 프로그램 펄스를 인가하고, 제 1 프로그램 검증을 수행하고, 상기 제 1 프로그램 검증 결과로써 오프-셀인 경우에 상기 제 2 래치에 저장된 상기 비트라인 포싱 비트를 소정의 데이터로 변경하고, 제 2 프로그램 검증을 수행하고, 상기 제 2 프로그램 검증 결과로써 오프-셀인 경우에 상기 제 1 래치들에 저장된 데이터를 소거 상태에 대응하는 패스 패턴의 데이터로 변경하는 것으로 구성된 프로그램 동작을 수행하는 단계; 및 메모리 셀에 대한 적어도 하나의 읽기 동작, 상기 제 1 래치들에 저장된 데이터, 및 상기 제 2 래치에 저장된 데이터를 이용하여 상기 입력된 데이터를 복구하는 것으로 구성된 데이터 복구 동작을 수행하는 단계를 포함한다.
실시 예에 있어서, 현재 프로그램 루프에서 상기 제 1 래치들에 상기 소거 상태에 대응하는 데이터가 저장될 때, 다음 프로그램 루프에서 대응하는 비트라인으로 비트라인 프로그램 금지 전압이 인가된다.
실시 예에 있어서, 현재 프로그램 루프에서 상기 제 1 래치들에 상기 소거 상태에 대응하는 데이터가 저장되지 않고, 상기 제 2 래치에 상기 소정의 데이터가 저장될 때, 다음 프로그램 루프에서 대응하는 비트라인으로 비트라인 포싱 전압이 인가되고, 상기 비트라인 포싱 전압은 상기 비트라인 프로그램 금지 전압보다 낮다.
실시 예에 있어서, 상기 제 2 프로그램 검증을 위한 레벨은 상기 제 1 프로그램 검증을 위한 레벨보다 높다.
실시 예에 있어서, 상기 데이터 복구 동작은, 상기 읽기 동작과 상기 제 1 래치들에 저장된 데이터를 이용하여 상기 입력된 데이터를 복구하는 제 1 데이터 복구 동작; 및 상기 읽기 동작과 상기 제 2 래치에 저장된 데이터를 이용하여 상기 입력된 데이터를 복구하는 제 2 데이터 복구 동작을 포함한다.
실시 예에 있어서, 상기 제 1 데이터 복구 동작은, 상기 읽기 동작 결과로써 읽혀진 데이터가 온-셀을 지시할 때 상기 제 1 래치들에 저장된 데이터가 상기 입력된 데이터로 복구되고, 상기 제 2 데이터 복구 동작은, 상기 읽기 동작 결과로서 상기 읽혀진 데이터가 오프-셀을 지시할 때 상기 제 2 래치에 저장된 데이터를 이용하여 상기 입력된 데이터가 상기 소거 상태에 대응하는 데이터인 지를 판별한다.
실시 예에 있어서, 상기 비휘발성 메모리 장치는 적어도 2개의 비트들을 저장하는 멀티 레벨 셀들을 포함하고, 상기 멀티 레벨 셀들 각각은 상기 적어도 2개의 비트들에 대응하는 복수의 문턱전압 상태들 중 어느 하나로 프로그램되고, 상기 적어도 하나의 읽기 동작은 상기 복수의 문턱전압 상태들 중 최상위 상태를 판별하기 위한 읽기 레벨로 수행된다.
실시 예에 있어서, 상기 데이터 복구 동작을 수행하는 단계는, 상기 복구된 데이터를 상기 비휘발성 메모리 장치를 제어하는 메모리 제어기로 출력하는 단계를 더 포함한다.
실시 예에 있어서, 상기 메모리 제어기는 상기 복구된 데이터를 다른 메모리 셀에 프로그램되도록 상기 비휘발성 메모리 장치를 제어한다.
본 발명의 실시 예에 따른 메모리 시스템은, 로딩된 데이터 및 소거 상태의 페일 비트를 복구하기 위한 복구 기준 비트를 저장한 후에, 프로그램 명령에 따라 프로그램 동작을 수행하고, 프로그램 페일시 상기 프로그램 동작의 실패 정보를 출력하고, 데이터 복구 명령에 따라 메모리 셀들로부터 읽혀진 데이터 및 상기 복구 기준 비트를 이용하여 상기 로딩된 데이터를 복구하는 적어도 하나의 비휘발성 메모리 장치;및 상기 프로그램 동작에서 상기 프로그램 명령과 데이터를 상기 적어도 하나의 비휘발성 메모리 장치로 전송하고, 상기 실패 정보에 응답하여 상기 적어도 하나의 비휘발성 메모리 장치로 상기 데이터 복구 명령을 전송하는 메모리 제어기를 포함하고, 상기 메모리 제어기는 상기 복구된 데이터를 상기 적어도 하나의 비휘발성 메모리 장치의 상기 메모리 셀들과 다른 메모리 셀들로 프로그램시킨다.
실시 예에 있어서, 상기 메모리 제어기는 상기 복구된 데이터를 에러 정정하는 에러 정정 회로를 더 포함한다.
실시 예에 있어서, 상기 프로그램된 메모리 셀들의 상위비트 프로그램 동작에서, 상기 로딩된 데이터에서 상위비트들은 상기 메모리 제어기로부터 전송된다.
실시 예에 있어서, 상기 프로그램된 메모리 셀들의 상위비트 프로그램 동작에서, 상기 로딩된 데이터에서 하위비트들은 상기 프로그램된 메모리 셀들로부터 읽혀진 값들이다.
실시 예에 있어서, 상기 읽혀진 하위비트들은 상기 메모리 제어기에서 에러 정정되고, 상기 에러 정정된 하위비트들이 상기 로딩된 데이터로 이용된다.
본 발명의 또 다른 실시 예에 따른 비휘발성 메모리 장치의 프로그램 방법은: 로딩된 데이터를 제 1 래치들에 저장하는 단계; 소거 상태의 어퍼 테일 페일 비트를 복구하기 위한 복구 기준 비트를 제 2 래치에 저장하는 단계; 상기 제 1 래치들에 저장된 데이터를 메모리 셀들에 프로그램하는 단계; 상기 메모리 셀들에 대하여 프로그램 금지가 성공하였는지 온-셀 검증 동작을 수행하는 단계; 상기 메모리 셀들에 대하여 프로그램이 성공하였는지 오프-셀 검증 동작을 수행하는 단계; 상기 온-셀 검증 동작 및 상기 오프-셀 검증 동작에 따라 프로그램 패스 혹은 페일을 판별하는 단계; 및 상기 프로그램 페일시, 상기 메모리 셀들에 대한 적어도 하나의 읽기 동작과 상기 복구 기준 비트를 이용하여 상기 로딩된 데이터를 복구하는 단계를 포함한다.
실시 예에 있어서, 상기 오프-셀 검증 동작은 2-스텝 검증으로 진행된다.
본 발명의 실시 예에 따른 비휘발성 메모리 장치의 데이터 복구 방법은, 데이터 복구 명령을 입력받는 단계; 상기 데이터 복구 명령에 의거하여 셀 프로그램 동작이 페일일 때 데이터 래치들에 저장된 데이터를 타겟 데이터로 복구하는 단계; 및 상기 데이터 복구 명령에 의거하여 셀 프로그램 동작이 패스일 때 데이터 래치들에 저장된 데이터, 특정 상태의 페일 비트를 복구하는 기준 값인 복구 기준 비트, 및 데이터 복구를 위한 읽기 동작의 결과값에 따라 타겟 데이터를 복구하는 단계를 포함한다.
본 발명의 다른 실시 예에 따른 비휘발성 메모리 장치의 데이터 복구 방법은, 복구 기준 비트 및 읽기 동작을 통하여 제 1 상태의 어퍼 테일 페일 비트를 판별 및 복구하는 단계; 및 데이터 래치에 저장된 데이터를 근거로 하여 제 2 상태의 로어 테일 페일 비트를 판별 및 복구하는 단계를 포함하고, 상기 복구 기준 비트는 상기 제 1 상태의 어퍼 테일 페일 비트를 판별하기 위한 기준값이다.
상술한 바와 같이 본 발명에 따른 비휘발성 메모리 장치 및 그것의 메모리 시스템은, 데이터 복구 동작에서 메모리 셀에 대한 읽기 동작과 복구 기준 비트를 이용함으로써 타겟 데이터를 복구함으로써, 타겟 데이터를 저장하는 별도의 저장 공간을 필요치 않다.
도 1은 본 발명에 따른 비휘발성 메모리 장치를 예시적으로 보여주는 블록도이다.
도 2는 도 1에 도시된 페이지 버퍼에 대한 제 1 실시 예를 보여주는 블록도이다.
도 3은 셀 프로그램 동작이 페일일 때, 로어 테일 데이터 복구 방법을 설명하기 위한 도면이다.
도 4는 도 3에 도시된 로어 테일 데이터 복구 동작에서 페이지 버퍼의 래치들의 데이터 상태를 예시적으로 보여주는 도면이다.
도 5는 셀 프로그램 동작이 패스일 때 어퍼 테일 데이터 복구 방법을 설명하기 위한 도면이다.
도 6은 도 5에 도시된 어퍼 테일 데이터 복구 동작에서 페이지 버퍼의 래치들의 데이터 상태를 예시적으로 보여주는 도면이다.
도 7은 본 발명의 실시 예에 따른 데이터 복구 방법을 설명하기 위한 도면이다.
도 8은 도 7에 도시된 데이터 복구 동작에서 페이지 버퍼의 래치들의 데이터 상태를 예시적으로 보여주는 도면이다.
도 9는 본 발명에 따른 비휘발성 메모리 장치의 프로그램 방법을 개략적으로 보여주는 흐름도이다.
도 10은 도 9에 도시된 데이터 복구 동작을 예시적으로 보여주는 흐름도이다.
도 11은 본 발명에 따른 비휘발성 메모리 장치의 프로그램 방법에 대한 제 1 실시 예를 보여주는 흐름도이다.
도 12는 본 발명에 따른 비휘발성 메모리 장치의 프로그램 방법에 대한 제 2 실시 예를 보여주는 흐름도이다.
도 13은 도 1에 도시된 페이지 버퍼에 대한 제 2 실시 예를 보여주는 블록도이다.
도 14는 본 발명에 따른 비트라인 포싱을 설명하기 위한 도면이다.
도 15는 도 13에 도시된 페이지 버퍼에서 2-스텝 검증 방법을 예시적으로 보여주는 도면이다.
도 16은 도 13에 도시된 페이지 버퍼에서 프로그램 동작에서 래치들의 데이터 변화를 예시적으로 보여주는 도면이다.
도 17은 본 발명에 따른 프로그램 동작에서 타겟 상태에 대응하는 페이지 버퍼의 래치들의 데이터 변화를 예시적으로 보여주는 도면이다.
도 18은 소거 상태(E)와 제 1 프로그램 상태(P1) 사이의 데이터 복구 방법을 예시적으로 보여주는 도면이다.
도 19는 소거 상태(E)와 제 2 프로그램 상태(P2) 사이의 데이터 복구 방법을 예시적으로 보여주는 도면이다.
도 20은 소거 상태(E)와 제 3 프로그램 상태(P3) 사이의 데이터 복구 방법을 예시적으로 보여주는 도면이다.
도 21는 본 발명에 따른 프로그램 동작에서 상위비트 복구 방법을 예시적으로 보여주는 도면이다.
도 22a 및 도 22b는 본 발명에 따른 비휘발성 메모리 장치의 멀티-비트 프로그램 방법에 대한 제 1 실시 예를 보여주는 흐름도이다.
도 23은 본 발명에 따른 비휘발성 메모리 장치의 멀티-비트 프로그램 방법에 대한 제 2 실시 예를 보여주는 흐름도이다.
도 24는 본 발명에 따른 비휘발성 메모리 장치의 멀티-비트 프로그램 방법에 대한 제 3 실시 예를 보여주는 흐름도이다.
도 25는 본 발명에 따른 데이터 복구 동작에 대한 제 1 실시 예를 보여주는 흐름도이다.
도 26은 본 발명에 따른 데이터 복구 동작에 대한 제 2 실시 예를 보여주는 흐름도이다.
도 27은 본 발명에 따른 데이터 복구 동작에 대한 제 3 실시 예를 보여주는 흐름도이다.
도 28은 본 발명에 따른 데이터 복구 동작에 대한 제 4 실시 예를 보여주는 흐름도이다.
도 29는 본 발명의 따른 메모리 블록을 예시적으로 보여주는 도면이다.
도 30 내지 도 35는 본 발명의 응용 예들을 보여주는 도면들이다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 본 발명의 실시 예를 첨부된 도면을 참조하여 설명할 것이다.
도 1은 본 발명에 따른 비휘발성 메모리 장치를 예시적으로 보여주는 블록도이다. 도 1을 참조하면, 비휘발성 메모리 장치(100)는 메모리 셀 어레이(110), 어드레스 디코더(120), 입출력 회로(130), 및 제어 로직(140)을 포함한다.
본 발명에 따른 비휘발성 메모리 장치는 낸드 플래시 메모리(NAND Flash Memory), 수직형 낸드 플래시 메모리(Vertical NAND, 이하, 'VNAND'라고 함), 노아 플래시 메모리(NOR Flash Memory), 저항성 램(Resistive Random Access Memory: RRAM), 상변화 메모리(Phase-Change Memory: PRAM), 자기저항 메모리(Magnetoresistive Random Access Memory: MRAM), 강유전체 메모리(Ferroelectric Random Access Memory: FRAM), 스핀주입 자화반전 메모리(Spin Transfer Torque Random Access Memory: STT-RAM) 등이 될 수 있다. 또한, 본 발명의 비휘발성 메모리 장치는 3차원 어레이 구조(three-dimensional array structure)로 구현될 수 있다. 본 발명은 전하 저장층이 전도성 부유 게이트로 구성된 플래시 메모리 장치는 물론, 전하 저장층이 절연막으로 구성된 차지 트랩형 플래시(charge trap flash; CTF)에도 모두 적용 가능하다. 아래에서는 설명의 편의를 위하여 비휘발성 메모리 장치(100)가 낸드 플래시 메모리 장치라고 하겠다.
메모리 셀 어레이(110)는 복수의 메모리 블록들을 포함한다. 도 1에서는 설명의 편의를 위하여 하나의 메모리 블록을 도시한다. 메모리 블록은, 비트라인들(BL1~BLn, n은 자연수) 각각에 연결된 스트링을 포함한다. 여기서 스트링은 직렬 연결된 스트링 선택 트랜지스터(SST), 메모리 셀들(MC1~MCm, m은 자연수), 접지 선택 트랜지스터(GST)를 포함한다. 스트링 선택 트랜지스터(SST)는 스트링 선택 라인(SSL)을 통하여 전송되는 전압에 의하여 구동된다. 접지 선택 트랜지스터(GST)는 접지 선택 라인(GSL)을 통하여 전송되는 전압에 의하여 구동된다. 메모리 셀들(MC1~MCm) 각각은 적어도 하나의 비트의 데이터를 저장하고, 대응하는 워드라인들(WL1~WLm)에 전송되는 전압들에 의하여 구동된다.
어드레스 디코더(120)는 어드레스에 응답하여 복수의 메모리 블록들 중 어느 하나를 선택하고, 구동에 필요한 워드라인 전압들(예를 들어, 프로그램 전압, 패스 전압, 소거 전압, 검증 전압, 읽기 전압, 읽기 패스 전압 등)을 대응하는 워드라인들로 전송한다.
입출력 회로(130)는 프로그램 동작에서 외부로부터 입력된 데이터를 임시로 저장하였다가 쓰여질 페이지에 로딩하고, 읽기 동작에서 읽혀질 페이지로부터 데이터를 읽어와 임시로 저장하였다가 외부로 출력한다. 입출력 회로(130)는 비트라인들(BL1~BLn) 각각에 대응하는 페이지 버퍼들(PB1~PBn)을 포함한다.
페이지 버퍼들(PB1~PBn) 각각은, 프로그램/읽기 동작의 위한 복수의 래치들을 포함한다. 복수의 래치들 중에서 적어도 하나는 프로그램 동작에서 타겟 데이터(target data; TD)를 저장하고, 대응하는 메모리 셀의 프로그램 동작(이하, '셀 프로그램 동작')이 패스될 때 패스 패턴의 데이터로 변경된다. 여기서 타겟 데이터는 프로그램될 상태를 지시하는 데이터이다. 또한, 복수의 래치들 중 어느 하나는 프로그램 동작에서 복구 기준 비트(recovery reference bit; RRB)를 저장/설정한다. 여기서 복구 기준 비트(RRB)는 데이터 복구 동작에서 이용되는 비트로써, 복구해야 할 특정 상태(예를 들어, 소거 상태)를 지시하는 정보를 포함할 수 있다.
제어 로직(140)은 비휘발성 메모리 장치(100)의 전반적인 동작을 제어한다. 제어 로직(140)은 외부의 메모리 제어기로부터 제공되는 제어 신호들 및 명령어를 해석하고, 해석 결과에 응답하여 어드레스 디코더(120), 및 입출력 회로(130)를 제어한다. 즉, 제어 로직(140)은, 도시되지 않았지만, 구동(예를 들어, 프로그램/읽기/소거 동작)에 필요한 전압들을 발생하도록 전압 발생 회로를 제어하고, 발생된 전압들을 대응하는 워드라인들(WL1~WLm)에 전송하도록 어드레스 디코더(120)를 제어하고, 프로그램될 페이지 데이터 및 읽혀진 페이지 데이터의 입출력을 위하여 입출력 회로(130)를 제어한다.
또한, 제어 로직(140)은 데이터 복구 동작에서 데이터 복구 명령에 응답하여 프로그램 동작이 수행된 메모리 셀들에 대한 적어도 하나의 읽기 동작을 수행하고, 이러한 읽기 동작의 수행 결과로써 읽혀진 데이터와 복구 기준 비트(RRB)를 이용하여 프로그램 동작에서 입력된 타겟 데이터(TD)를 복구할 수 있다. 여기서 데이터 복구 명령은 외부의 메모리 제어기로부터 전송될 수 있다.
일반적인 비휘발성 메모리 장치는, 프로그램 동작에서 데이터 복구 동작을 위하여 별도의 저장 공간에 타겟 데이터를 저장시킨다. 예를 들어, 프로그램 동작에서 타겟 데이터는 비휘발성 메모리 장치의 페이지 버퍼에 저장되거나, 혹은 외부의 메모리 제어기의 버퍼에 저장시켜 두었다가, 데이터 복구 동작에서 저장된 타겟 데이터를 이용하여 다른 물리적 페이지에 프로그램 동작을 수행한다. 이러한, 프로그램 동작은 데이터 복구 동작을 위하여 타겟 데이터를 저장하기 위한 별도의 저장 공간을 구비해야되는 문제점을 갖는다.
반면에, 본 발명의 비휘발성 메모리 장치(100)는 데이터 복구 동작에서 읽기 동작과 복구 기준 비트(RRB)를 이용하여 타겟 데이터(TD)를 복구함으로써, 데이터 복구 동작을 위하여 타겟 데이터(TD)를 별도의 저장 공간에 저장할 필요가 없다. 이에, 본 발명의 비휘발성 메모리 장치(100)는 일반적인 그것과 비교하여 칩 사이즈를 줄일 수 있다.
도 2는 도 1에 도시된 페이지 버퍼(PB1)에 대한 제 1 실시 예를 보여주는 블록도이다. 도 2를 참조하면, 페이지 버퍼(PB1)는 감지 래치(SL), 데이터 래치들(DL1~DLk, k는 자연수, '적어도 하나의 제 1 래치')를 추가 래치(AL, '제 2 래치') 포함한다.
감지 래치(SL)는 프로그램 동작/프로그램 검증 동작/읽기 동작에서 메모리 셀(MC)의 온-셀(on-cell) 혹은 오프-셀(off-cell)인지 여부를 지시하는 데이터를 저장한다. 예를 들어, 감지 래치(SL)는 프로그램 검증/읽기 동작에서 메모리 셀(MC)의 문턱전압이 기준 레벨보다 높지 않을 때 온-셀을 지시하는 데이터를 저장하고, 반대로 메모리 셀(MC)의 문턱전압이 기준 레벨보다 높을 때 오프-셀을 지시하는 데이터를 저장한다. 특히, 감지 래치(SL)는 데이터 복구 동작에서 타겟 데이터(TD)를 복구하기 위한 읽기 동작의 결과값, 즉 읽혀진 데이터를 저장할 수 있다.
데이터 래치들(DL1~DLk)은 프로그램 동작에서 프로그램 상태를 지시하는 타겟 데이터(TD)를 저장한다. 데이터 래치들(DL1~DLk)의 데이터는 셀 프로그램 동작이 패스될 때(Cell PGM Pass), 패스 패턴(Pass Pattern)의 데이터로 변경될 수 있다. 여기서 패스 패턴의 데이터는 메모리 셀(MC)의 소거 상태에 대응하는 데이터일 수 있다.
추가 래치(AL)는 프로그램 동작에서 복구 기준 비트(RRB)를 저장한다. 여기서 복구 기준 비트(RRB)는 페일 비트를 복구하기 위한 특정 상태에 관련된 정보일 수 있다. 여기서 특정 상태는 사용자에 의해 사전에 결정된 상태일 수 있다.
예를 들어, 사용자가 소거 상태에 대한 페일 비트가 많다는 사실을 알고 있다면, 추가 래치(AL)는 소거 상태의 페일 비트를 복구하기 위한 복구 기준 비트(RRB)를 저장할 것이다. 즉, 데이터 복구 동작에서 소거 상태의 페일 비트가 복구되길 원한다면, 복구 기준 비트(RRB)는 페이지 버퍼(PB1)에 입력된 타겟 데이터(TD)가 소거 상태에 대응하는지 여부를 지시하는 비트일 수 있다. 그런데, 특정 상태가 반드시 사용자에 의해 결정될 필요는 없다. 비휘발성 메모리 장치(100)는 내부적으로 페일 비트가 빈번하게 발생하는 프로그램 상태를 판별하고, 판별된 프로그램 상태를 특정 상태로 결정할 수도 있다.
도 2에서는 제 1 페이지 버퍼(PB1)만 도시되었으며, 나머지 페이지 버퍼들(PB2~PBn)도 역시 제 1 페이지 버퍼(PB1)와 동일하게 구현될 것이다.
본 발명에 따른 페이지 버퍼(PB1)에서 수행되는 데이터 복구 동작은 크게 제 1 데이터 복구 동작과 제 2 데이터 복구 동작으로 구분된다. 제 1 데이터 복구 동작은, 셀 프로그램 동작이 페일일 때(Cell PGM Fail), 데이터 래치들(DL1~DLk)에 저장된 데이터를 오리지널 타겟 데이터(Original TD)로 출력한다.
제 2 데이터 복구 동작은, 셀 프로그램 동작이 패스일 때, 데이터 복구를 위한 읽기 동작과 복구 기준 비트(RRB)를 이용하여 타겟 데이터(TD)를 복구한다. 본 발명의 페이지 버퍼(PB1)는 데이터 래치들(DL1~DLk)에 저장된 데이터, 데이터 복구를 위한 읽기 동작의 결과값 및 복구 기준 비트(RRB)를 이용하여 타겟 데이터(TD)를 복구할 수 있다. 한편, 타겟 데이터(TD)가 복구되는 자세한 내용은 아래에서 설명하겠다.
도 3은 셀 프로그램 동작이 페일일 때, 로어 테일(lower tail) 데이터 복구 방법을 설명하기 위한 도면이다. 여기서 로어 테일은, 도 3에 도시된 A 및 B 위치에 있는 메모리 셀들과 같이, 타겟 상태(예를 들어, S2)에 도달하지 못한 것이다. 예를 들어, 메모리 셀(MC, 도 2 참조)이 슬로우 셀(slow cell)일 경우, 프로그램 루프가 최대까지 진행되더라도 메모리 셀(MC)이 제 2 상태(S2)에 도달하지 못할 수 있다.
A 위치에 있는 메모리 셀은 읽기 레벨(RD)보다 높은 문턱전압을 갖고, B 위치에 있는 메모리 셀은 데이터 읽기 레벨(RD)보다 낮은 문턱전압을 갖는다. 여기서 읽기 레벨(RD)은 데이터 복구 동작을 위한 레벨이다. A 혹은 B 위치에 있는 메모리 셀은 데이터 복구 동작을 위한 읽기 동작이 필요하지 않다. 왜냐하면, A 혹은 B 위치에 있는 메모리 셀에 대응하는 데이터 래치들(도 2 참조, DL1~DLk)은 셀 프로그램 동작이 페일된 상태를 지시하는 데이터를 저장하고 있기 때문이다. 즉, A 혹은 B 위치에 있는 메모리 셀에 대응하는 데이터 래치들(DL1~DLk)은 제 2 상태(S2)에 대응하는 타겟 데이터(TD)를 유지할 것이다. 따라서, A 혹은 B 위치에 있는 메모리 셀들은 로어 테일 페일 비트로 판별되고, 데이터 복구 동작에서 데이터 래치들(DL1~DLk)에 저장된 데이터가 오리지널 타겟 데이터(Original TD)로 복구될 것이다.
도 4는 도 3에 도시된 로어 테일 데이터 복구 동작에서 페이지 버퍼의 래치들의 데이터 상태를 예시적으로 보여주는 도면이다. 도 2, 도 3 내지 도 4를 참조하면, 로어 테일 데이터 복구 동작에서 래치들의 데이터 상태는 다음과 같다. 아래에서는 설명의 편의를 위하여, 타겟 상태가 제 2 상태(S2)라고 가정하겠다.
타겟 상태가 제 2 상태(S2)일 때, 프로그램 동작에서 데이터 래치들(DL1~DLk)은 제 2 상태(S2)에 대응하는 데이터를 입력받고, 추가 래치(AL)는 '0'을 저장한다. 따라서, 제 2 상태(S2)에 대응하는 데이터 래치들(DL1~DLk)은 셀 프로그램 동작의 패스 및 페일에 따라 각각 대응하는 데이터를 저장할 것이다.
만일, 데이터 래치들(DL1~DLk)의 데이터가 셀 프로그램 동작이 패스되었다는 것을 지시하는 패스 패턴일 때, 로어 테일 데이터 복구 동작은 필요하지 않다. 반면에, 데이터 래치들(DL1~DLk)의 데이터가 셀 프로그램 동작이 패스되었다는 것을 지시하는 패스 패턴이 아닐 때, 즉, 데이터 래치들(DL1~DLk)의 데이터가 제 2 상태(S2)에 대응하는 데이터를 유지할 때, A 혹은 B 위치에 있는 메모리 셀은 로어 테일 페일 비트로 판별될 것이다. 따라서, 데이터 래치들(DL1~DLk)에 유지된 데이터(S2 Data)는 오리지널 타겟 데이터(Original TD)로 복구될 것이다.
정리하면, 로어 테일 데이터 복구 동작은, 데이터 래치들(DL1~DLk)의 데이터가 셀 프로그램 동작의 패스를 지시하는 패스 패턴이 아닐 때, 데이터 래치들(DL1~DLk)의 데이터를 오리지널 타겟 데이터(Original TD)로 복구할 것이다.
도 5는 셀 프로그램 동작이 패스일 때 어퍼 테일 데이터 복구 방법을 설명하기 위한 도면이다. 여기서 어퍼 테일은, 도 5에 도시된 C 혹은 D 위치에 있는 셀들과 같이, 셀 프로그램 동작이 패스된 메모리 셀이 프로그램 디스터번스(program disturbance) 혹은 읽기 디스터번스(read disturbance)에 의하여 오버 프로그램(over program)된 것이다.
어퍼 테일 데이터 복구 동작은, 어퍼 테일 페일 비트 판별에 따라 데이터 복구를 위한 읽기 동작(Read)으로만 제 1 어퍼 테일 데이터 복구 동작을 수행할 지(①) 혹은 읽기 동작(Read)과 복구 기준 비트(RRB)를 이용하여 제 2 어퍼 테일 데이터 복구 동작을 수행할 지(②)로 구분된다. 여기서 어퍼 테일 페일 비트의 판별은, 셀 프로그램 동작이 패스된 메모리 셀에 대한 읽기 레벨(RD)의 읽기 동작(Read)에 따라 결정될 것이다.
예를 들어, 읽기 동작(Read) 결과로써 온-셀인 C 위치에 있는 메모리 셀은 어퍼 테일 페일 비트로 판별되지 않지만, 오프-셀인 D 위치에 있는 메모리 셀은 어퍼 테일 페일 비트로 판별될 것이다. 또한, 복구 기준 비트(RRB)는 제 1 상태(S1)의 어퍼 테일 데이터 복구에 관련된 값으로, 제 1 상태(S1)에는 '1'이 대응되고, 제 2 상태(S2)에는 '0'이 대응된다.
제 1 어퍼 테일 데이터 복구 동작은, 데이터 복구를 위한 읽기 동작(Read) 결과로써 온-셀(예를 들어, C 위치에 있는 메모리 셀)인 경우에 제 1 상태(S1)에 대응하는 데이터를 타겟 데이터(TD)로 복구할 것이다.
제 2 어퍼 테일 데이터 복구 동작은, 데이터 복구를 위한 읽기 동작(Read) 결과로써 오프-셀(예를 들어, D 위치에 있는 메모리 셀)인 경우에 복구 기준 비트(RRB)의 값(예를 들어, '1')을 근거로 하여 제 1 상태에 대응하는 데이터를 타겟 데이터로 복구할 것이다.
도 6은 도 5에 도시된 어퍼 테일 데이터 복구 동작에서 페이지 버퍼의 래치들의 데이터 상태를 예시적으로 보여주는 도면이다. 도 2, 도 5 및 도 6을 참조하면, 어퍼 테일 데이터 복구 동작에서 래치들의 데이터 상태는 다음과 같다. 아래에서는 설명의 편의를 위하여 타겟 상태가 제 1 상태(S1)라고 가정하겠다.
타겟 상태가 제 1 상태(S1)일 때, 프로그램 동작에서 데이터 래치들(DL1~DLk)은 제 1 상태(S1)에 대응하는 데이터를 입력받고, 추가 래치(AL)는 '1'을 저장한다. 설명의 편의를 위하여 제 1 상태(S1)에 대응하는 메모리 셀은 셀 프로그램 동작이 패스되었다고 가정한다. 따라서, 셀 프로그램 동작이 패스되었기 때문에 제 1 상태(S1)에 대응하는 데이터 래치들(DL1~DLk)의 데이터는 셀 프로그램 동작의 패스를 지시하는 패스 패턴으로 변경될 것이다.
제 1 상태(S1)의 어퍼 테일 복구 동작에서 데이터 복구를 위한 읽기 동작(Read) 결과로써 감지 래치(SL)가 온-셀에 대응하는 데이터를 저장하면, 읽혀진 데이터를 근거로 하여 제 1 상태(S1)에 대응하는 데이터(S1 Data)가 타겟 데이터(TD)로 복구될 것이다. 하지만, C 위치에 있는 메모리 셀은 어퍼 테일 페일 비트로는 판별되지 않는다.
반면에 제 1 상태(S1)의 어퍼 테일 복구 동작에서 데이터 복구를 위한 읽기 동작(Read) 결과로써 감지 래치(SL)가 오프-셀에 대응하는 데이터를 저장하면, 읽혀진 데이터 및 추가 래치(AL)에 저장된 '1'의 복구 기준 비트(RRB)를 이용하여 D 위치에 있는 메모리 셀이 제 1 상태(S1)의 어퍼 테일 페일 비트로 판별되고, 제 1 상태(S1)에 대응하는 데이터(S1 Data)가 타겟 데이터(TD)로 복구될 것이다.
정리하면, 어퍼 테일 데이터 복구 동작은, 데이터 래치들(DL1~DLk)의 데이터가 셀 프로그램 동작 패스를 지시하는 패스 패턴일 때, 데이터 복구를 위한 읽기 동작(Read) 및 복구 기준 비트(RRB)를 이용하여 타겟 데이터(TD)를 복구할 수 있다.
상술 된 바와 같이, 도 3 및 도 4에서는 셀 프로그램 동작 페일일 때 로어 테일 데이터 복구 방법을 설명하였고, 도 5 및 도 6에서는 셀 프로그램 동작 패스일 때 어퍼 테일 데이터 복구 방법을 설명하였다. 한편, 본 발명의 데이터 복구 방법은 셀 프로그램 동작의 패스 혹은 페일 여부에 상관없이 타겟 데이터(TD)를 복구할 수 있다.
도 7은 본 발명의 실시 예에 따른 데이터 복구 방법을 설명하기 위한 도면이다. 도 7을 참조하면, 데이터 복구 방법은, 도 3에 도시된 제 2 상태(S2)의 로어 테일 데이터 복구 방법과 도 5에 도시된 제 1 상태(S1)의 어퍼 테일 데이터 복구 방법을 병합한 것이다.
제 2 상태(S2)의 로어 테일 페일 비트로 판별된 메모리 셀(A/B)은 셀 프로그램 동작이 패스되지 않은 상태이기 때문에 데이터 래치들(DL1~DLk)에 저장된 오리지널 타겟 데이터(Original TD)가 타겟 데이터(TD)로 복구될 것이다.
또한, 제 1 상태(S1)의 어퍼 테일이지만 어퍼 테일 페일 비트로 판별되지 못하는 메모리 셀(C)은, 데이터 복구를 위한 읽기 동작(Read) 결과로써 온-셀이기 때문에 제 1 상태(S1)에 대응하는 데이터를 타겟 데이터(TD)로 복구될 것이다.
또한, 제 1 상태(S1)의 어퍼 테일이면서 어퍼 테일 비트로 판별된 메모리 셀(D)은, 데이터 복구를 위한 읽기 동작(Read) 결과로써 오프-셀이면서, 복구 기준 비트(RRB)가 제 1 상태(S1)의 어퍼 테일 페일 비트를 복구할 것을 지시하는 '1'을 저장하기 때문에 제 1 상태(S1)에 대응하는 데이터를 타겟 데이터(TD)로 복구될 것이다.
도 8은 도 7에 도시된 데이터 복구 동작에서 페이지 버퍼의 래치들의 데이터 상태를 예시적으로 보여주는 도면이다. 도 2, 도 7 및 도 8를 참조하면, 데이터 복구 동작에서 래치들의 데이터 상태는, 도 4에 도시된 제 2 상태(S2)에 대한 래치들의 데이터 상태와 도 6에 도시된 제 1 상태(S1)에 대한 래치들의 데이터 상태의 결합으로 구성된다.
도 8에 도시된 바와 같이, 제 2 상태(S2)에 대한 데이터 래치들(DL1~DLk)의 데이터가 셀 프로그램 동작의 패스를 지시하는 패스 패턴이 아닐 때, A 혹은 B 위치에 있는 메모리 셀은 제 2 상태(S2)의 로어 테일 페일 비트로 판별되고, 데이터 래치들(DL1~DLk)에 저장된 데이터가 타겟 데이터(TD)로 복구될 것이다.
또한, 도 8에 도시된 바와 같이, 제 1 상태(S1)에 대한 데이터 래치들(DL1~DLk)의 데이터가 셀 프로그램 동작의 패스를 지시하는 패스 패턴일 때, 데이터 복구를 위한 읽기 동작(Read)의 결과로써 감지 래치(SL)에 온-셀에 대응하는 데이터가 저장되면, C 위치에 있는 메모리 셀은 읽혀진 데이터를 근거로 하여 제 1 상태에 대응하는 데이터(S1 Data)가 타겟 데이터(TD)로 복구될 것이다. 여기서 B 위치에 있는 메모리 셀은 어퍼 테일 페일 비트로 판별되지 않는다.
또한, 도 8에 도시된 바와 같이, 제 1 상태(S1)에 대한 데이터 래치들(DL1~DLk)의 데이터가 셀 프로그램 동작의 패스를 지시하는 패스 패턴일 때, 데이터 복구를 위한 읽기 동작(Read)의 결과로써 감지 래치(SL)에 오프-셀에 대응하는 데이터가 저장되면, D 위치에 있는 메모리 셀은 읽혀진 데이터 및 복구 기준 비트(RRB)를 근거로 하여 제 1 상태(S1)의 어퍼 테일 페일 비트로 판별되고, 제 1 상태(S1)에 대응하는 데이터(S1 Data)가 타겟 데이터(TD)로 복구될 것이다.
정리하면, 데이터 복구 동작은, 셀 프로그램 동작이 페일일 때 데이터 래치들(DL1~DLk)에 저장된 오리지널 타겟 데이터(Original TD)를 타겟 데이터(TD)로 복구하고, 셀 프로그램 동작이 패스일 때 데이터 복구를 위한 읽기 동작(Read) 및 복구 기준 비트(RRB)를 이용하여 타겟 데이터(TD)를 복구할 수 있다.
도 9는 본 발명에 따른 비휘발성 메모리 장치의 프로그램 방법을 개략적으로 보여주는 흐름도이다. 도 9를 참조하면, 프로그램 방법은 다음과 같다.
타겟 데이터(TD)를 이용하여 메모리 셀들에 프로그램 동작이 수행된다. 이때 메모리 셀들 각각에 대응하는 페이지 버퍼들(PB1~PBn, 도 1 참조)에는 복구 기준 비트(RRB)를 설정한다(S110). 이후, 데이터 복구 동작이 필요한지가 판별된다(S120). 여기서 데이터 복구 동작은, 전체 프로그램 동작(total PGM)이 페일일 때 혹은 외부로부터 데이터 복구 명령이 입력될 때 시작될 수 있다.
데이터 복구 동작이 필요 없다면, 프로그램 동작은 완료될 것이다. 반면에 데이터 복구 동작이 필요하다면, 데이터 래치들(DL1~DLk)의 데이터, 데이터 래치들(DL1~DLk)의 데이터, 메모리 셀에 대한 읽기 동작과 복구 기준 비트(RRB)를 이용하여 타겟 데이터(TD)가 복구될 것이다(S130).
도 10은 도 9에 도시된 데이터 복구 동작(S130)을 예시적으로 보여주는 흐름도이다. 도 1, 도 2 및 도 7 내지 도 10을 참조하면, 데이터 복구 동작은 다음과 같다.
데이터 래치들(DL1~DLk)의 데이터가 셀 프로그램 동작의 패스를 지시하는 패스 패턴인지가 판별된다(S131). 만일, 데이터 래치들(DL1~DLk)의 데이터가 패스 패턴이 아니라면, 셀 프로그램 동작이 페일이기 때문에 데이터 래치들(DL1~DLk)은 오리지널 타겟 데이터(Original TD)를 유지할 것이다. 따라서 데이터 래치들(DL1~DLk)에서 오리지널 타겟 데이터(Original TD)가 복구될 것이다(S132). 반면에, 데이터 래치들(DL1~DLk)의 데이터가 패스 패턴일 때, 즉 셀 프로그램 동작이 패스일 때, 데이터 복구를 위한 읽기 동작이 수행된다(S133). 이후, 읽혀진 데이터가 오프-셀인지가 판별된다(S134).
만일, 읽혀진 데이터가 오프-셀이 아니고 온-셀을 지시하면, 데이터 래치들(DL1~DLk)의 패스 패턴과 읽혀진 데이터를 근거로 제 1 상태(S1)에 대응하는 데이터가 타겟 데이터(TD)로 복구될 것이다(S135). 반면에, 읽혀진 데이터가 오프-셀을 지시하면, 데이터 래치들(DL1~DLk)의 데이터, 읽혀진 데이터, 및 복구 기준 비트(RRB)를 근거로 제 1 상태(S1)의 어퍼 테일 페일 비트(예를 들어, 도 7의 D)가 판별되고, 판별된 어퍼 테일 페일 비트(C)는 제 1 상태(S1)에 대응하는 데이터(S1 Data)가 타겟 데이터(TD)로 복구될 것이다(S136).
본 발명에 따른 데이터 복구 동작은, 데이터 래치들(DL1~DLk)에 저장된 데이터, 읽기 동작, 및 복구 기준 비트(RRB)를 이용하여 타겟 데이터(TD)를 복구할 수 있다.
도 11은 본 발명에 따른 비휘발성 메모리 장치의 프로그램 방법에 대한 제 1 실시 예를 보여주는 흐름도이다. 도 1, 도 2 및 도 11을 참조하면, 프로그램 방법은 다음과 같다.
적어도 하나의 제 1 래치(예를 들어, 도 2의 데이터 래치들(DL1~DLk)에 타겟 데이터(TD)가 로딩되고, 제 2 래치(예를 들어, 도 2의 추가 래치(AL))에 복구 기준 비트(RRB)가 저장된다(S210).
제어 로직(140, 도 1참조)은 로딩된 타겟 데이터(TD)를 메모리 셀들에 프로그램되도록 어드레스 디코더(120) 및 입출력 회로(130)를 제어한다(S220). 즉, 메모리 셀들의 문턱전압들이 타겟 데이터(TD)에 대응하는 프로그램 상태들이 되도록 메모리 셀들에 연결된 워드라인들로 프로그램 전압들이 인가된다.
메모리 셀들에 대한 프로그램 동작이 제대로 수행되었는 지를 판별하기 위하여, 프로그램 검증 동작이 수행된다(S230). 여기서 프로그램 검증 동작은, 메모리 셀 각각의 검증 레벨을 근거로 한 읽기 동작일 수 있다. 각각의 메모리 셀의 검증 동작이 패스될 때, 메모리 셀(MC)에 대응하는 페이지 버퍼의 데이터 래치들(DL1~DLk)은 패스 패턴의 데이터(예를 들어, 소거 상태를 지시하는 데이터)를 저장한다. 따라서, 전체 프로그램 검증 동작의 패스/페일 결과는, 페이지 버퍼들 각각의 데이터 래치들(DL1~DLk)에 저장된 데이터를 근거로 알 수 있다.
만약, 프로그램 검증 동작이 패스되면, 프로그램 패스(PGM Pass)가 판별되고, S250 단계가 진행된다(S240). 반면에 프로그램 검증 동작이 패스되지 않으면 프로그램 페일(PGM Fail)이 판별되고, S260 단계가 진행될 것이다(S245).
이후, 프로그램 패스(PGM Pass)일 때 타겟 데이터(TD)의 복구가 필요한 지가 판별된다(S250). 타겟 데이터(TD)의 복구 동작은 외부로부터 비휘발성 메모리 장치(100)에 입력된 데이터 복구 명령에 따라 수행될 수 있다.
상술 된 바와 같이, 프로그램 패스(PGM Pass)라도 제 1 상태(S1)의 어퍼 테일 페일 비트(D, 도 5, 도 7 참조)가 존재할 수 있고, 프로그램 페일(PGM Pass)이면 제 2 상태(S2)의 로어 테일 페일 비트(A,B, 도 2 및 도 7 참조)가 존재할 수밖에 없다. 따라서, 데이터의 신뢰성을 향상시키기 위해서는 이러한 어퍼 테일 페일 비트 혹은 로어 테일 페일 비트를 복구할 필요가 있다.
실시 예에 있어서, 고도의 데이터의 신뢰성이 요구되는 메모리 시스템은, 데이터의 신뢰성을 목적으로 프로그램 동작 중에 언제든지 데이터 복구 명령을 비휘발성 메모리 장치(100)에 입력시킬 수 있다.
다른 실시 예에 있어서, 프로그램 페일이면, 프로그램 페일에 관련된 정보에 응답하여 즉각적으로 외부로부터 데이터 복구 명령이 비휘발성 메모리 장치(100)로 입력될 수 있다.
이와 같이, 타겟 데이터(TD)의 복구가 필요하다면, 적어도 하나의 읽기 동작과 제 2 래치에 저장된 복구 기준 비트(RRB)를 이용하여, 타겟 데이터(TD)가 복구될 것이다. 여기서 타겟 데이터의 복구 방법은 도 1 내지 도 10에 상술 된 데이터 복구 방법과 동일하기 때문에 설명을 생략하겠다(S260). 이후, 새로운 물리적 페이지에 복구된 타겟 데이터(TD)를 이용하여 카피백 프로그램 동작이 수행될 것이다(S280). 이로써 프로그램 동작은 완료된다.
본 발명의 프로그램 방법은, 데이터 복구 동작이 필요한 지를 판별하고, 데이터 복구가 필요할 때 데이터 래치들(DL1~DLk)에 저장된 데이터, 적어도 하나의 읽기 동작과 복구 기준 비트(RRB)를 이용하여 특정 상태의 페일 비트(어퍼 테일 페일 비트/로어 테일 페일 비트)를 복구할 수 있다.
도 11에서 데이터 복구 동작에서 복구된 타겟 데이터(TD)가 곧바로 새로운 프로그램 동작에 이용되었다. 하지만, 본 발명의 프로그램 방법이 여기에 제한될 필요는 없다. 본 발명의 프로그램 방법은, 복구된 타겟 데이터(TD)를 에러 정정하고, 에러 정정된 타겟 데이터(TD)를 새로운 프로그램 동작에 이용할 수도 있다.
도 12는 본 발명에 따른 비휘발성 메모리 장치(100)의 프로그램 방법에 대한 제 2 실시 예를 보여주는 흐름도이다. 도 12를 참조하면, 프로그램 방법은, 도 11에 도시된 프로그램 방법과 비교하여 S265 및 S270 단계가 더 추가된다.
S265 단계에서는, 복구된 타겟 데이터를 외부의 메모리 제어기로 출력한다. S270 단계에서는, 메모리 제어기에서 복구된 타겟 데이터의 에러가 정정된다. 예를 들어, 메모리 제어기는 ECC(error correction code)를 이용하여 복구된 타겟 데이터의 에러를 정정할 수 있다. 하지만, 복구된 타겟 데이터의 에러 정정 동작이 반드시 메모리 제어기에서 수행될 필요는 없다. 이러한 에러 정정 동작은 ECC 회로를 구비한 비휘발성 메모리 장치(100)에서 내부적으로 수행될 수도 있을 것이다.
본 발명의 프로그램 방법은, 복구된 타겟 데이터의 에러를 정정함으로써, 데이터의 신뢰성을 향상시킬 수 있다.
도 2에 도시된 페이지 버퍼(PB1)는 복구 기준 비트(RRB)를 저장하는 추가 래치(AL)를 구비하였다. 한편, 이러한 추가 래치는 종래의 다른 기능을 수행하는 래치와 겸용될 수 있다. 예를 들어, 본 발명의 추가 래치는 비트라인 포싱을 지시하는 포싱비트 래치를 겸용할 수도 있다.
여기서, 비트라인 포싱은 2-스텝 검증 방법을 이용한 프로그램 동작에서 비트라인으로 비트라인 프로그램 전압(예를 들어, 접지 전압)보다 높고 비트라인 금지 전압(예를 들어, 전원 전압)보다 높은 전압을 인가하는 것을 의미한다. 여기서, 2-스텝 검증 방법은, 어느 하나의 상태를 프로그램 검증하기 위하여 제 1 전압 레벨로 프리 검증(pre-verification)을 수행하고 및 제 2 전압 레벨로 메인 검증(main verification)을 수행하는 것을 의미한다. 여기서 제 1 전압 레벨은 제 2 전압 레벨보다 낮을 것이다. 한편, 2-스텝 검증 방법에 대한 자세한 것은, 삼성전자에서 출원하였으며 이 출원의 참고문헌으로 결합된 US 7,692,970, US 8,068,361, US 2011/0515520, US 2011-0110154에서 설명될 것이다.
도 13은 도 1에 도시된 페이지 버퍼(PB1')에 대한 제 2 실시 예를 보여주는 블록도이다. 도 13을 참조하면, 페이지 버퍼(PB1')는 감지 래치(SL), 상위비트 래치(ML), 하위비트 래치(LL), 및 포싱비트 래치(FL)를 포함한다.
타겟 데이터(TD)는 상위비트(MSB, most significant bit) 및 하위비트(LSB; least significant bit)을 포함한다. 프로그램 동작에서 상위비트(MSB)는 상위비트 래치(ML)에 저장되고, 하위비트(LSB)는 하위비트 래치(LL)에 저장된다. 비트라인 포싱 비트(BFB; bitline forcing bit)는 포싱비트 래치(FL)에 저장된다.
특히, 포싱비트 래치(FL)는 복구 기준 비트(RRB)를 저장하는 추가 래치(도 2의 AL)로 겸용될 수 있다. 즉, 비트라인 포싱 비트(BFB)는 데이터 복구 동작에서 이용되는 복구 기준 비트(RRB)로 이용될 수 있다. 이는 비트라인 포싱 비트(BFB)와 복구 기준 비트(RRB) 사이의 특별한 관계 때문이다.
일반적으로 소거 상태에서는, 프로그램 동작을 수행하지 않기 때문에 비트라인 포싱을 진행할 필요가 없으며, 동시에 프로그램 디스터번스/읽기 디스터번스에 의하여 확률적으로 어퍼 테일 페일 비트를 발생시킬 확률이 높다. 따라서, 포싱비트 래치(FL)에 저장된 데이터는 비트라인 포싱을 수행하는지 여부를 지시하는 비트라인 포싱 비트(BFB)로 이용되면서 동시에 소거 상태의 어퍼 테일 페일 비트를 복구하기 위한 복구 기준 비트(RRB)로 이용될 수 있다. 한편, 프로그램 상태에서는, 프로그램 동작을 수행하기 위하여 비트라인 포싱을 진행할 필요가 있으며, 동시에 어퍼 테일 페일 비트 발생 확률은 소거 상태에 비교하여 상대적으로 낮다.
메모리 셀(MC)의 프로그램 동작이 패스되면, 상위비트 래치(FL)과 하위비트 래치(LL)는 패스 패턴의 데이터를 저장한다. 여기서 패스 패턴의 데이터는 소거 상태(erase state)에 대응하는 데이터(예를 들어, '11')를 일 수 있다.
데이터 복구 동작에서, 셀 프로그램 동작이 패스일 때(Cell PGM Pass) 데이터 복구를 위한 읽기 동작, 상위비트 래치(FL)과 하위비트 래치(LL)의 데이터, 및 포싱비트 래치(FL)의 데이터를 이용하여 타겟 데이터(TD)를 복구하고, 셀 프로그램 동작이 페일일 때(Cell PGM Fail) 상위비트 래치(FL)과 하위비트 래치(LL)에 저장된 데이터를 오리지널 타겟 데이터(Original TD)로 복구한다.
본 발명에 따른 페이지 버퍼(FB1')는 데이터 복구 동작에서 읽기 동작, 상위비트 래치(FL)과 하위비트 래치(LL)의 데이터, 및 포싱비트 래치(FL)의 데이터를 이용하여 타겟 데이터(TD)를 복구할 수 있다.
도 14는 본 발명에 따른 비트라인 포싱을 설명하기 위한 도면이다. 도 14를 참조하면, 제 1 영역(RA)의 메모리 셀(①)의 프로그램 동작에서 워드라인으로 프로그램 전압(VWL)이 인가될 때, 비트라인으로 비트라인 프로그램 전압(BLPV, 예를 들어, 0V)이 인가된다. 또한, 제 2 영역(RB)의 메모리 셀(②)의 프로그램 동작에서, 워드라인으로 프로그램 전압(VWL)이 인가될 때, 비트라인으로 비트라인 포싱 전압(BLFV)이 인가된다.
설명의 편의를 위하여 프로그램 루프가 진행됨에 따라, 타겟 상태(P)로부터 멀리 떨어진 영역(RA)의 메모리 셀은 타겟 상태(P)로부터 인접한 영역(RB)으로 프로그램되고, 타겟 상태(P)로부터 인접한 영역(RB)의 셀은 타겟 상태(P)로 프로그램된다. 여기서 비트라인 프로그램 전압(BLPV)은 0V이고, 비트라인 프로그램 금지 전압(BLIV)은 전원전압(VDD)이라고 하겠다. 이때, 타겟 상태(P)로부터 멀리 떨어진 영역(RA)의 메모리 셀(①)의 경우, 워드라인 전압(VWL)과 비트라인 전압(VBL) 차이(VWL)에 의거하여 프로그램 동작이 수행된다. 그리고, 타겟 상태(P)로부터 인접한 영역(RB)의 메모리 셀(②)의 경우, 워드라인 전압(VWL)과 비트라인 전압(VBL)의 차이(VWLP-BLFC)에 의거하여 프로그램 동작에 이용된다. 마지막으로, 타겟 상태(P)에 진입한 메모리 셀(③)의 경우, 프로그램 금지되는 셀이지만 워드라인 전압(VWL)과 비트라인 전압(VBL)의 차이(VWL-VDD)가 인가된다. 이로써, 타겟 상태(P)에 인접한 영역(RB)의 메모리 셀(②)의 프로그램 동작은, 타겟 상태(P)에 멀리 떨어진 영역(RA)의 메모리 셀(①)의 프로그램 동작보다 세밀하게 진행될 것이다.
한편, 타겟 상태(P)에 인접한 영역(RB)의 메모리 셀의 프로그램 동작에서 비트라인 포싱 전압(BLFV)이 인가되는 구간을 비트라인 포싱 구간이라고 한다. 비트라인 포싱은, 타겟 상태(P)에 대하여 문턱전압이 소정의 값을 넘을 때 시작된다. 또한, 비트라인 포싱 비트(BFB)는 비트라인 포싱 여부를 지시하는 값이다. 예를 들어, 포싱비트 래치(FL)에 저장된 비트라인 포싱 비트(BFB)가 '0'이면, 다음 프로그램 루프에서 비트라인 포싱이 수행된다. 반면에, 포싱비트 래치(FL)에 저장된 비트라인 포싱 비트(BFB)가 '1'이면 다음 프로그램 루프에서 비트라인 포싱이 수행되지 않는다.
도 15는 도 13에 도시된 페이지 버퍼(PB1'1)에서 2-스텝 검증 방법을 예시적으로 보여주는 도면이다. 도 14에서는, 소거 상태(E), 제 1, 제 2, 및 제 3 프로그램 상태들(P1, P2, P3)이 도시된다.
타겟 데이터(TD)가 소거 상태(E)를 지시하고 소거 상태(E)에 대응하는 문턱전압을 갖는 메모리 셀의 경우, 프로그램 동작에서 대응하는 비트라인으로 비트라인 금지 전압(BLIV, 예를 들어, 전원 전압)이 인가된다. 여기서 타겟 데이터는 프로그램될 데이터이다.
타겟 데이터(TD)가 제 1 프로그램 상태(P1)를 지시하고 소거 상태(E)보다 높고 제 1 프리 검증 레벨(PVR1)보다 낮은 문턱전압을 갖는 메모리 셀(EA 영역의 메모리 셀)의 경우, 프로그램 동작에서 대응하는 비트라인으로 비트라인 프로그램 전압(BLPV, 예를 들어 0V)이 인가된다. 또한, 타겟 데이터(TD)가 제 1 프로그램 상태(P1)를 지시하고 제 1 프리 검증 레벨(PVR1)보다 높고 제 1 검증 레벨(VR1)보다 낮은 문턱전압을 갖는 메모리 셀(EB 영역의 메모리 셀)의 경우, 프로그램 동작에서 대응하는 비트라인으로 비트라인 포싱 전압(BLFV, 예를 들어, 1V)이 인가된다.
EA 영역의 메모리 셀은, EB 영역을 거쳐서 제 1 프로그램 상태(P1)가 될 수 있거나, EA 영역을 거치지 않고 곧바로 제 1 프로그램 상태(P1)가 될 수도 있다. 즉, 어느 하나의 메모리 셀이 제 1 프로그램 상태(P1)로 프로그램 완료되기까지 비트라인의 전압 변화는, 프로그램 루프가 증가함에 따라 비트라인 프로그램 전압(BLPV)에서 비트라인 포싱 전압(BLFV)으로, 비트라인 포싱 전압(BLFV)에서 비트라인 프로그램 금지 전압(BLIV)로 변경되거나, 프로그램 루프가 증가함에 따라 비트라인 프로그램 전압(VLPV)에서 비트라인 프로그램 금지 전압(BLIV)로 변경될 수 있다.
타겟 데이터(TD)가 제 2 프로그램 상태(P2)를 지시하고 제 1 프로그램 상태(P1)보다 높고 제 2 프리 검증 레벨(PVR2)보다 낮은 문턱전압을 갖는 메모리 셀의 경우, 프로그램 동작에서 대응하는 비트라인으로 비트라인 프로그램 전압(BLPV)이 인가된다. 또한, 타겟 데이터(TD)가 제 2 프로그램 상태(P1)를 지시하고 제 2 프리 검증 레벨(PVR2)보다 높고 제 2 검증 레벨(VR2)보다 낮은 문턱전압을 갖는 메모리 셀의 경우, 프로그램 동작에서 대응하는 비트라인으로 비트라인 포싱 전압(BLFV)이 인가된다.
타겟 데이터(TD)가 제 3 프로그램 상태(P3)를 지시하고 제 2 프로그램 상태(P2)보다 높고 제 3 프리 검증 레벨(PVR3)보다 낮은 문턱전압을 갖는 메모리 셀의 경우, 프로그램 동작에서 대응하는 비트라인으로 비트라인 프로그램 전압(BLPV)이 인가된다. 또한, 타겟 데이터(TD)가 제 3 프로그램 상태(P3)를 지시하고 제 3 프리 검증 레벨(PVR3)보다 높고 제 3 검증 레벨(VR3)보다 낮은 문턱전압을 갖는 메모리 셀의 경우, 프로그램 동작에서 대응하는 비트라인으로 비트라인 포싱 전압(BLFV)이 인가된다.
정리하면, 각 프로그램 상태들(P1, P2, P3)로 프로그램 동작을 수행할 때,프리 검증 동작이 패스될 때까지는 대응하는 비트라인으로 비트라인 프로그램 전압(BLPV)이 인가되고, 프리 검증 동작이 패스된 후 검증 동작이 패스될 때까지는 대응하는 비트라인으로 비트라인 포싱 전압(BLFV)이 인가되고, 검증 동작이 패스된 후에는 비트라인으로 비트라인 프로그램 금지 전압(BLIV)이 인가된다.
한편, 도 15에 도시된 바와 같이, 소거 상태(E)를 지시하는 타겟 데이터(TD)가 프로그램될 메모리 셀에는 비트라인 포싱이 필요하지 않으나, 제 1 내지 제 2 프로그램 상태들(P1, P2, P3)를 지시하는 타겟 데이터(TD)가 프로그램될 메모리 셀에는 비트라인 포싱이 필요하다. 또한, 소거 상태(E)가 프로그램 디스터번스 혹은 읽기 디스터번스에 의하여 점선과 같이 오버 프로그램될 가능성이 있다. 즉, 소거 상태(E)의 어퍼 테일이 발생될 가능성이 있다. 도 5 내지 도 6에서 어퍼 테일 데이터 복구 방법에서 설명된 바와 같이, 비트라인 포싱 여부는, 데이터 복구 동작에서 소거 상태(E)의 어퍼 테일 데이터를 복구하는 복구 기준 비트(RRB)로 이용 가능함을 알 수 있다.
본 발명에 따른 비휘발성 메모리 장치(100)는 데이터 복구 동작을 위하여 복구 기준 비트(RRB)를 저장하기 위하여 추가적인 래치를 구비하지 않고도, 비트라인 포싱 여부를 지시하는 비트라인 포싱 비트(BFB)를 복구 기준 비트(RRB)로 겸용함으로써 데이터 복구 동작을 수행할 수 있다.
도 16은 도 13에 도시된 페이지 버퍼(PB1')에서 프로그램 동작에서 래치들의 데이터 변화를 예시적으로 보여주는 도면이다. 도 13 내지 도 16을 참조하면, 프로그램 동작에서 래치들의 데이터 변화는 다음과 같다. 여기서 프로그램 동작은 제 2 페이지 프로그램(혹은, 상위비트 페이지 프로그램)에 동작이다.
제 2 페이지 프로그램 동작을 시작할 때, 래치들(ML, LL, FL)의 상태는 다음과 같다. 타겟 상태가 소거 상태(E)인 메모리 셀에 대응하는 페이지 버퍼의 경우에는, 상위비트 래치(ML)는 '1'을 저장하고, 하위비트 래치(LL)는 '1'을 저장하고, 포싱비트 래치(FL)는 '1'을 저장한다.
타겟 상태가 제 1 프로그램 상태(P1)인 메모리 셀에 대응하는 페이지 버퍼의 경우에는, 상위비트 래치(ML)는 '0'을 저장하고, 하위비트 래치(LL)는 '1'을 저장하고, 포싱비트 래치(FL)는 '1'을 저장한다.
타겟 상태가 제 2 프로그램 상태(P2)인 메모리 셀에 대응하는 페이지 버퍼의 경우에는, 상위비트 래치(ML)는 '0'을 저장하고, 하위비트 래치(LL)는 '0'을 저장하고, 포싱비트 래치(FL)는 '1'을 저장한다.
타겟 상태가 제 3 프로그램 상태(P3)인 메모리 셀에 대응하는 페이지 버퍼의 경우에는, 상위비트 래치(ML)는 '1'을 저장하고, 하위비트 래치(LL)는 '0'을 저장하고, 포싱비트 래치(FL)는 '1'을 저장한다.
제 2 페이지 프로그램 동작을 마친 후, 래치들(ML, LL, FL)의 상태 변화는 다음과 같다. 타겟 상태가 소거 상태(E) 혹은 프로그램 금지 상태인 메모리 셀에 대응하는 페이지 버퍼의 경우에는, 상위비트 래치(ML)는 '1'을 유지하고, 하위비트 래치(LL)는 '1'을 유지하고, 포싱비트 래치(FL)는 '1'을 유지한다.
타겟 상태가 제 1 프로그램 상태(P1)인 메모리 셀에 대응하는 페이지 버퍼의 경우에는, 상위비트 래치(ML)의 데이터는 '0'에서 '1'로 변경되고, 하위비트 래치(LL)는 '1'을 유지하고, 포싱비트 래치(FL)의 데이터는 '1'에서 '0'으로 변경된다. 제 1 프로그램 상태(P1)로의 메모리 셀의 프로그램 동작이 패스되었기 때문에, 상위비트 래치(ML) 및 하위비트 래치(ML)는 소거 상태(E)에 대응하는 데이터 패턴 '11'을 저장한다. 또한, 비트라인 포싱이 수행되었기 때문에 포싱비트 래치(FL)는 '0'을 저장한다.
타겟 상태가 제 2 프로그램 상태(P2)인 메모리 셀에 대응하는 페이지 버퍼의 경우에는, 상위비트 래치(ML)의 데이터는 '0'에서 '1'로 변경되고, 하위비트 래치(LL)의 데이터는 '0'에서 '1'로 변경되고, 포싱비트 래치(FL)의 데이터는 '1'에서 '0'으로 변경된다. 제 2 프로그램 상태(P2)로의 메모리 셀의 프로그램 동작이 패스되었기 때문에, 상위비트 래치(ML) 및 하위비트 래치(ML)는 소거 상태(E)에 대응하는 데이터 패턴 '11'을 저장한다. 또한, 비트라인 포싱이 수행되었기 때문에 포싱비트 래치(FL)는 '0'을 저장한다.
타겟 상태가 제 3 프로그램 상태(P3)인 메모리 셀에 대응하는 페이지 버퍼의 경우에는, 상위비트 래치(ML)는 '1'을 유지하고, 하위비트 래치(LL)의 데이터는 '0'에서 '1'로 변경되고, 포싱비트 래치(FL)의 데이터는 '1'에서 '0'으로 변경된다. 제 2 프로그램 상태(P2)로의 메모리 셀의 프로그램 동작이 패스되었기 때문에, 상위비트 래치(ML) 및 하위비트 래치(ML)는 소거 상태(E)에 대응하는 데이터 패턴 '11'을 저장한다. 또한, 비트라인 포싱이 수행되었기 때문에 포싱비트 래치(FL)는 '0'을 저장한다.
도 17은 본 발명에 따른 프로그램 동작에서 타겟 상태에 대응하는 페이지 버퍼의 래치들의 데이터 변화를 예시적으로 보여주는 도면이다. 도 17을 참조하면, 소거상태(E)는 데이터 '11'에 대응하고, 제 1 프로그램 상태(P1)는 데이터 '01'에 대응하고, 제 2 프로그램 상태(P2)는 데이터 '00'에 대응하고, 및 제 3 프로그램 상태(P3)는 데이터 '10'에 대응한다. 하지만, 상태들(E, P1~P3)에 대응하는 데이터가 여기에 제한될 필요는 없다.
타겟 상태가 소거 상태(E; '11')일 때 프로그램될 메모리 셀에 대응하는 페이지 버퍼의 래치들(ML, LL, FL)에 저장된 데이터의 변화는 다음과 같다. 메모리 셀의 문턱전압에 상관없이 상위비트 래치(ML) 및 하위비트 래치(LL)는 '1'을 저장하고, 비트라인 포싱을 수행하지 않기 때문에 포싱비트 래치(FL)는 '1'을 저장한다.
타겟 상태가 제 1 프로그램 상태(P1; '01')일 때 프로그램될 메모리 셀에 대응하는 페이지 버퍼의 래치들(ML, LL, FL)에 저장된 데이터의 변화는 다음과 같다. 메모리 셀의 문턱전압이 제 1 검증 레벨(VR1)을 통과하기 전까지(즉, 제 1 검증 동작을 패스하기 전까지) 상위비트 래치(ML)는 '0'을 저장하고, 하위비트 래치(LL)는 '1'을 저장한다. 메모리 셀의 문턱전압이 제 1 검증 레벨(VR1)을 통과한 후에(즉, 제 1 검증 동작이 패스된 후에) 상위비트 래치(ML) 및 하위비트 래치(LL)는 '1'을 저장한다. 즉, 제 1 검증 동작이 패스된 후에 상위비트 래치(ML) 및 하위비트 래치(LL)는 소거 상태(E)에 대응하는 데이터와 동일한 패스 패턴의 데이터를 저장한다.
또한, 메모리 셀의 문턱전압이 제 1 프리 검증 레벨(PVR1)을 통과하기 전까지(즉, 제 1 프리 검증 동작을 패스하기 전까지) 포싱비트 래치(FL)는 '1'을 저장하고, 메모리 셀의 문턱전압이 제 1 프리 검증 레벨(PVR1)을 통과한 후에(즉, 제 1 프리 검증 동작을 패스한 후에) 포싱비트 래치(FL)는 '0'을 저장한다. 여기서 포싱비트 래치(FL)에 '0'이 저장되면, 다음 프로그램 루프에 비트라인 포싱이 수행된다. 즉, 다음 프로그램 루프에서 비트라인으로 비트라인 포싱 전압(BLFV)이 인가된다.
타겟 상태가 제 2 프로그램 상태(P2; '00')일 때 프로그램될 메모리 셀에 대응하는 페이지 버퍼의 래치들(ML, LL, FL)에 저장된 데이터의 변화는 다음과 같다. 메모리 셀의 문턱전압이 제 2 검증 레벨(VR2)을 통과하기 전까지(즉, 제 2 검증 동작을 패스하기 전까지) 상위비트 래치(ML) 및 하위비트 래치(LL)는 '0'을 저장한다. 메모리 셀의 문턱전압이 제 2 검증 레벨(VR2)을 통과한 후에(즉, 제 2 검증 동작이 패스된 후에) 상위비트 래치(ML) 및 하위비트 래치(LL)는 '1'을 저장한다.
또한, 메모리 셀의 문턱전압이 제 2 프리 검증 레벨(PVR2)을 통과하기 전까지(즉, 제 2 프리 검증 동작을 패스하기 전까지) 포싱비트 래치(FL)는 '1'을 저장하고, 메모리 셀의 문턱전압이 제 2 프리 검증 레벨(PVR2)을 통과한 후에(즉, 제 2 프리 검증 동작을 패스한 후에) 포싱비트 래치(FL)는 '0'을 저장한다. 여기서 포싱비트 래치(FL)에 '0'이 저장되면, 다음 프로그램 루프에 비트라인 포싱이 수행된다.
타겟 상태가 제 3 프로그램 상태(P3; '10')일 때 프로그램될 메모리 셀에 대응하는 페이지 버퍼의 래치들(ML, LL, FL)에 저장된 데이터의 변화는 다음과 같다. 메모리 셀의 문턱전압이 제 3 검증 레벨(VR3)을 통과하기 전까지(즉, 제 3 검증 동작을 패스하기 전까지) 상위비트 래치(ML)는 '1'을 저장하고, 하위비트 래치(LL)는 '0'을 저장한다. 메모리 셀의 문턱전압이 제 3 검증 레벨(VR3)을 통과한 후에(즉, 제 3 검증 동작이 패스된 후에) 상위비트 래치(ML) 및 하위비트 래치(LL)는 '1'을 저장한다.
또한, 메모리 셀의 문턱전압이 제 3 프리 검증 레벨(PVR3)을 통과하기 전까지(즉, 제 3 프리 검증 동작을 패스하기 전까지) 포싱비트 래치(FL)는 '1'을 저장하고, 메모리 셀의 문턱전압이 제 3 프리 검증 레벨(PVR3)을 통과한 후에(즉, 제 3 프리 검증 동작을 패스한 후에) 포싱비트 래치(FL)는 '0'을 저장한다. 여기서 포싱비트 래치(FL)에 '0'이 저장되면, 다음 프로그램 루프에 비트라인 포싱이 수행된다.
정리하면, 타겟 상태에 대한 검증 동작을 패스하면 상위비트 래치(ML) 및 하위비트 래치(LL)의 데이터는 패스 패턴의 데이터로 변경되고, 타겟 상태에 대한 프리 검증 동작을 통과하면, 포싱비트 래치(FL)의 데이터는 다음 프로그램 루프에서 비트라인 포싱을 지시하는 데이터('0')로 변경된다.
도 18은 소거 상태(E)와 제 1 프로그램 상태(P1) 사이의 데이터 복구 방법을 예시적으로 보여주는 도면이다. 도 18을 참조하면, 타겟 상태가 소거 상태(E)인 경우, 메모리 셀(Ea)은 제 1 프리 검증 레벨(PV1)보다 낮은 문턱전압을 갖고, 메모리 셀(Eb)은 제 1 프리 검증 레벨(PV1)보다 높고 제 1 검증 레벨(V1)보다 낮은 문턱전압을 갖고, 메모리 셀(Ec)은 제 1 검증 레벨(V1)보다 높은 문턱전압을 갖는다. 또한, 타겟 상태가 제 1 프로그램 상태(P1)인 경우, 메모리 셀(P1a)은 제 1 프리 검증 레벨(PV1)보다 낮은 문턱전압을 갖고, 메모리 셀(P1b)은 제 1 프리 검증 레벨(PV1)보다 높고 제 1 검증 레벨(V1)보다 낮은 문턱전압을 갖고, 메모리 셀(P1c)은 제 1 검증 레벨(V1)보다 높은 문턱전압을 갖는다.
이때 각 메모리 셀에 대한 래치들(ML, LL, SL, FL)에 저장된 값은 도 8에 도시된 바와 같다. 상위비트 래치(ML)는 타겟 상태의 상위비트(MSB)를 저장하고, 하위비트 래치(LL)는 타겟 상태의 하위비트(LSB)를 저장하고, 감지 래치(SL)는 데이터 복구 동작을 위하여 제 1 읽기 레벨(RD1)로 읽기 동작을 수행한 결과값을 저장하고, 포싱비트 래치(FL)는 비트라인 포싱 비트(BFB)를 저장한다. 상위비트 래치(ML) 및 하위비트 래치(LL) 각각은 셀 프로그램 동작이 패스되었을 때, '1'을 저장한다. 읽기 동작 결과값이 온-셀이면 감지 래치(SL)에 '1'이 저장되고, 오프-셀이면 감지 래치(SL)에 '0'이 저장된다. 비트라인 포싱을 수행하지 않으면 비트라인 포싱 비트(BFB)는 '0'이고, 비트라인 포싱을 수행하면 비트라인 포싱 비트(BFB)는 '1'이다.
타겟 상태가 소거 상태(E)인 경우에, 각각의 메모리 셀들(Ea, Eb, Ec)의 상위비트 래치(ML) 및 하위비트 래치(SL)에 '1'이 저장되고, 메모리 셀(Ea)의 감지 래치(SL)에 '1'이 저장되고, 나머지 메모리 셀들(Eb, Ec)의 감지 래치(SL)에 '0'이 저장되고, 각각의 메모리 셀들(Ea, Eb, Ec)의 포싱비트 래치(FL)에 '1'이 저장된다.
타겟 상태가 제 1 프로그램(P1)인 경우에, 각각의 메모리 셀들(P1a, P1b)의 상위비트 래치(ML)에 '0'이 저장되고, 메모리 셀(P1c)의 상위비트 래치(ML)에 '1'이 저장되고, 각각의 메모리 셀들(P1a, P1b, P1c)의 하위비트 래치(LL)에 '1'이 저장되고, 메모리 셀(P1a)의 감지 래치(SL)에 '1'이 저장되고, 나머지 메모리 셀들(P1b, P1c)의 감지 래치(SL)에 '0'이 저장되고, 메모리 셀(P1a)의 포싱비트 래치(FL)에 '1'이 저장되고, 각각의 메모리 셀들(P1b, P1c)의 포싱비트 래치(FL)에 '0'이 저장된다.
도 18에서 점선 부분으로 표시된 바와 같이, 메모리 셀들(Eb, Ec)과 메모리 셀(P1c)은 상위비트 래치(ML), 하위비트 래치(LL), 및 감지 래치(SL)에 동일한 데이터를 저장하고 있다. 따라서, 데이터 복구를 위한 읽기 동작만으로는 타겟 상태가 무엇인지 알아내기가 어렵다. 이때, 포싱비트 래치(FL)에 저장된 값에 따라, 타겟 상태가 소거 상태(E)인지 제 1 프로그램 상태(P1)인 지 판별할 수 있다. 예를 들어, 메모리 셀들(Eb, Ec)의 포싱비트 래치(FL)에 저장된 값이 '1'이고, 메모리 셀(P1c)의 포싱비트 래치(FL)에 저장된 값은 '0'이다. 따라서, 포싱비트 래치(FL)에 저장된 값에 따라, 상위비트 래치(ML), 하위비트 래치(LL), 및 감지 래치(SL)에 저장된 데이터가 동일하더라도 타겟 상태가 소거 상태(E)이었는지 혹은 제 1 프로그램 상태(P1)이었는지 정확하게 복구될 것이다.
도 18에서 제 1 읽기 레벨(RD1)은 제 1 프리 검증 레벨(PV1)보다 낮게 도시되었다. 그러나 본 발명이 반드시 여기에 제한되지 않을 것이다. 제 1 읽기 레벨(RD1)은 제 1 프리 검증 레벨(PV1)보다 높고 제 1 검증 레벨(V1)보다 낮게 설정될 수도 있다.
도 19는 소거 상태(E)와 제 2 프로그램 상태(P2) 사이의 데이터 복구 방법을 예시적으로 보여주는 도면이다. 도 19를 참조하면, 타겟 상태가 소거 상태(E)인 경우, 메모리 셀(Ed)은 제 2 프리 검증 레벨(PV2)보다 낮은 문턱전압을 갖고, 메모리 셀(Ee)은 제 2 프리 검증 레벨(PV2)보다 높고 제 2 검증 레벨(V2)보다 낮은 문턱전압을 갖는다. 또한, 타겟 상태가 제 2 프로그램 상태(P2)인 경우, 메모리 셀(P2a)은 제 2 읽기 레벨(RD2)보다 낮은 문턱전압을 갖고, 메모리 셀(P2b)은 제 2 읽기 레벨(RD2)보다 높고 제 2 프리 검증 레벨(PV2)보다 낮은 문턱전압을 갖고, 메모리 셀(P2c)은 제 2 프리 검증 레벨(PV2)보다 높고 제 2 검증 레벨(V2)보다 낮은 문턱전압을 갖고, 메모리 셀(P2d)은 제 2 검증 레벨(V2)보다 높은 문턱전압을 갖는다.
이때 각 메모리 셀에 대한 래치들(ML, LL, SL, FL)에 저장된 값은 도 19에 도시된 바와 같다. 도 19에서 점선 부분으로 표시된 바와 같이, 메모리 셀들(Ed, Ee)과 메모리 셀(P2d)은 상위비트 래치(ML), 하위비트 래치(LL), 및 감지 래치(SL)에 동일한 데이터를 저장하고 있다. 따라서, 데이터 복구를 위한 제 2 읽기 레벨(RD2)의 읽기 동작만으로는 타겟 상태가 무엇인지 알아내기가 어렵다. 이때, 데이터 복구 동작에서 포싱비트 래치(FL)에 저장된 값이 '1'이면, 타겟 상태가 소거 상태(E)이고, 포싱비트 래치(FL)에 저장된 값이 '0'이면, 타겟 상태가 제 2 프로그램 상태(P2)로 판별될 것이다.
도 20은 소거 상태(E)와 제 3 프로그램 상태(P3) 사이의 데이터 복구 방법을 예시적으로 보여주는 도면이다. 도 20을 참조하면, 타겟 상태가 소거 상태(E)인 경우, 메모리 셀(Ef)은 제 3 프리 검증 레벨(PV3)보다 낮은 문턱전압을 갖고, 메모리 셀(Eg)은 제 3 프리 검증 레벨(PV3)보다 높고 제 3 검증 레벨(V3)보다 낮은 문턱전압을 갖는다. 또한, 타겟 상태가 제 3 프로그램 상태(P3)인 경우, 메모리 셀(P3a)은 제 3 프리 검증 레벨(PV3)보다 낮은 문턱전압을 갖고, 메모리 셀(P3b)은 제 3 프리 검증 레벨(PV3)보다 높고 제 3 검증 레벨(V3)보다 낮은 문턱전압을 갖고, 메모리 셀(P3c)은 제 3 검증 레벨(V3)보다 높은 문턱전압을 갖는다.
이때 각 메모리 셀에 대한 래치들(ML, LL, SL, FL)에 저장된 값은 도 20에 도시된 바와 같다. 도 20에서 점선 부분으로 표시된 바와 같이, 메모리 셀들(Ef, Eg)과 메모리 셀(P3c)은 상위비트 래치(ML), 하위비트 래치(LL), 및 감지 래치(SL)에 동일한 데이터를 저장하고 있다. 따라서, 데이터 복구를 위한 제 3 읽기 레벨(RD3)의 읽기 동작만으로는 타겟 상태가 무엇인지 알아내기가 어렵다. 이때, 데이터 복구 동작에서 포싱비트 래치(FL)에 저장된 값이 '1'이면, 타겟 상태가 소거 상태(E)이고, 포싱비트 래치(FL)에 저장된 값이 '0'이면, 타겟 상태가 제 3 프로그램 상태(P3)로 판별될 것이다.
도 18 내지 도 20에서는 데이터 복구 동작을 위하여, 세 번의 읽기 동작들을 수행하였다. 그러나, 본 발명의 데이터 복구 동작이 여기에 제한될 필요는 없다. 본 발명의 데이터 복구 동작은, 데이터 래치(ML, LL)의 데이터, 읽기 동작에 따른감지 래치(SL)의 데이터, 및 포싱비트 래치(FL)의 데이터를 다양한 방법으로 조합함으로써 타겟 데이터를 복구할 수 있다. 예를 들어, 데이터 복구를 위하여 한 번의 읽기 동작으로 상위비트를 복구할 수 있다.
도 21은 본 발명에 따른 프로그램 동작에서 상위비트(MSB) 복구 방법을 예시적으로 보여주는 도면이다. 도 21을 참조하면, 데이터 복구 동작에서 각 상태들(E, P1, P2, P3)의 상위비트(MSB) 복구 방법은 다음과 같다.
우선 타겟 상태가 소거 상태(E)일 때 상위비트 복구 동작은 아래와 같다. 상위비트 래치(ML), 하위비트 래치(LL), 및 포싱비트 래치(FL)에 모두 '1'이 저장되어 있다면, 타겟 상태는 소거 상태(E)로 판별된다. 도 18에 도시된 바와 같이, 상위비트 래치(ML), 하위비트 래치(LL) 및 포싱비트 래치(FL)에 모두 '1'이 저장된 상태는 소거 상태(E)가 유일하다. 이로 보건대, 프로그램 동작에서 소거 상태(E)의 어퍼 테일 페일 비트는 래치들(ML, LL, FL)의 데이터 상태로부터 확실하게 복구될 수 있다. 포싱비트 래치(FL)에 저장된 '1'은 소거 상태(E)의 상위비트로 출력될 것이다.
다음으로 타겟 상태가 프로그램 상태(P1/P2/P3)일 때 상위비트 복구 동작은 크게 2 단계(1st RCV, 2nd RCV)로 진행된다.
제 1 단계 복구 동작(1st RCV)은, 프로그램 동작이 패스되지 않은 메모리 셀에 대응하는 페이지 버퍼에서 상위비트 래치(ML)에 '0' 저장되어 있을 때, 포싱비트 래치(FL)의 데이터는 '1'에서 '0'으로 변경시킨다. 도 18에 도시된 바와 같이, 제 1 및 제 2 프로그램 상태들(P1, P2)에서 상위비트 래치(ML)에 '0'이 저장되어 있을 때, 제 1 단계 복구 동작(1st RCV)에서 포싱비트 래치(FL)의 데이터는 '0'으로 변경된다. 따라서, 타겟 상태가 제 1 및 제 2 프로그램 상태들(P1, P2)일 때, 최종적으로 포싱비트 래치(FL)는 '0'을 저장한다. 여기서 최종적으로 포싱비트 래치(FL)에 저장된 '0'는 제 1 및 제 2 프로그램 상태들(P1, P2)의 상위비트로 출력될 것이다.
제 2 단계 복구 동작(2nd RCV)은, 제 3 읽기 레벨(RD3)로 읽기 동작을 수행한다. 읽기 동작 수행 결과로써 메모리 셀이 오프-셀일 때, 포싱비트 래치(FL)의 데이터는 '0'에서 '1'로 변경된다. 도 18에 도시된 바와 같이, 제 3 프로그램 상태(P3)에서 포싱비트 래치(FL)의 데이터는 '1'로 변경된다. 참고로, 제 2 단계 복구 동작(2nd RCV)에서 제 1 및 제 2 프로그램 상태들(P1, P2)의 어퍼 테일 페일 비트가 거의 발생하지 않는다고 가정하겠다. 그러면, 최종적으로 포싱비트 래치(FL)에 저장된 '1'은 제 3 프로그램 상태(P3)의 상위비트로 출력될 것이다.
본 발명에 따른 데이터 복구 동작은, 데이터 래치들(ML, LL)의 데이터, 포싱비트 래치(FL)의 데이터 및 읽기 동작을 이용하여 타겟 데이터(상위비트)를 복구할 수 있다.
도 21에서는 데이터 복구 동작에서 상위비트 복구를 설명하였다. 유사하게 하위비트 복구도 래치들(ML, LL, FL)의 데이터 및 읽기 동작을 통하여 수행될 수 있다.
도 22a 및 도 22b는 본 발명에 따른 비휘발성 메모리 장치의 멀티-비트 프로그램 방법에 대한 제 1 실시 예를 보여주는 흐름도들이다. 도 1, 도 13 내지 도 22a, 도 22b를 참조하면, 멀티-비트 프로그램 방법은 다음과 같다.
상위비트 래치(ML)에 상위비트(MSB)가 로딩되고, 하위비트 래치(LL)에 하위비트(LSB)가 로딩되고, 포싱비트 래치(FL)에 디폴트 포싱 비트(예를 들어, '1')가 설정/저장된다. 여기서 디폴트 포싱 비트는, 비트라인 포싱을 수행하지 않는다는 것을 지시하는 데이터이다(S311).
상위비트 래치(ML) 및 포싱비트 래치(FL)에 저장된 데이터에 따라 비트라인 전압(VBL, 도 14 참조)이 설정되고, 워드라인으로 프로그램 펄스(VWL=ISPP, 도 14 참조)가 인가된다. 예를 들어, 상위비트 래치(ML)에 저장된 데이터가 '0'이고, 포싱비트 래치(FL)에 저장된 데이터가 '1'이면, 비트라인 전압(VBL)은 비트라인 프로그램 전압(BLPV)인, 접지 전압(GND)으로 설정된다. 또, 상위비트 래치(ML)에 저장된 데이터가 '0'이고, 포싱비트 래치(FL)에 저장된 데이터가 '0'이면, 비트라인 전압(VBL)은 비트라인 포싱전압(BLFV)으로 설정된다. 또, 상위비트 래치(ML)에 저장된 데이터가 '1'이면, 비트라인 전압은 비트라인 금지 전압(BLIV), 즉, 전원전압(VDD)으로 설정된다. 한편, 프로그램 펄스(ISPP)는 프로그램 루프의 회수에 따라 증가될 수 있다(S312).
이후, 메모리 셀에 대한 프리 검증 동작이 수행되고, 프리 검증 동작이 패스인지 판별된다(S313). 만일, 프리 검증 동작이 패스이면, 포싱비트 래치(FL)의 비트라인 포싱비트(BFB)는 '1'에서 '0'으로 변경되고(S314), 메모리 셀에 대한 메인 검증 동작 결과로써 메인 검증 동작이 패스인지 판별된다(S315). 만일, 메인 검증 동작이 패스이면, 상위비트 래치(ML)와 하위비트 래치(LL)의 데이터가 다음 프로그램 루프에서 프로그램 금지시키도록 패스 패턴의 데이터(예를 들어, '11')로 변경되고(S316), 전체 메모리 셀들에 대한 프로그램 동작이 패스인지 판별된다(S317).
반면에, 프리 검증 동작이 패스되지 않거나, 메인 검증 동작이 패스되지 않거나, 전체 프로그램 동작이 패스되지 않았다면, 프로그램 루프의 회수가 최대값인지 판별된다(S318). 만일, 프로그램 루프의 회수가 최대값이 아니라면, 프로그램 루프 회수를 증가시키고, 증가된 프로그램 루프 회수에 대응하도록 프로그램 펄스(ISPP)의 레벨이 소정의 값(△ISPP, 도 14 참조)만큼 증가된다(S319). 이후, S312 단계가 진행된다).
한편, 프로그램 루프의 회수가 최대값이면, 프로그램 동작이 페일된 것이다. 프로그램 페일에 응답하여 데이터 복구 동작이 곧바로 진행될 수 있다(S3120). 여기서 데이터 복구 동작은, 도 22b에 도시된 바와 같이, 데이터 복구 동작을 위하여 메모리 셀에 대하여 적어도 하나의 읽기 레벨(예를 들어, 도 21에 도시된 RD3)한 읽기 동작이 수행된다(S321). 읽혀진 데이터와 포싱비트 래치(FL)에 저장된 포싱 비트를 이용하여 로딩된 상위비트(MSB) 및 하위비트(LSB)가 복구될 것이다. 여기서, 데이터 복구 방법에 대한 자세한 것은, 도 21에서 설명된 바와 같다(S322). 이후, 복구된 상위비트(MSB) 및 하위비트(LSB) 데이터의 에러가 정정될 것이다(S323). 여기서 에러 정정 동작은, 비휘발성 메모리 장치(100)의 내부에서 수행되거나 외부의 메모리 제어기에서 수행될 수 있다.
데이터 복구 동작이 완료된 후에, 복구된 상위 비트(MSB) 및 하위비트(LSB) 데이터를 이용하여 새로운 물리 페이지에 카피백 프로그램 동작이 수행된다(S330). 이로써 프로그램 동작이 완료된다.
본 발명에 따른 멀티 비트 프로그램 방법은, 프로그램 페일에 응답하여 비트라인 포싱 여부를 지시하는 포싱비트 및 메모리 셀의 읽기 동작 결과를 이용하여 로딩된 데이터(MSB 혹은 LSB)를 복구할 수 있다.
도 22에서는 전체 프로그램 페일은 프로그램 루프 회수에 따라 결정되었다. 그러나 본 발명의 프로그램 페일 결정이 반드시 여기에 제한될 필요는 없다. 본 발명의 프로그램 페일 결정은, 페일-비트의 개수로 결정될 수도 있다. 한편, 페일 비트의 개수에 따라 프로그램 페일을 결정하는 것에 대한 자세한 것은, 삼성전자에서 출원하였으며, 이 출원의 참고문헌으로 결합된 US 2011/0051514에서 설명될 것이다.
도 23은 본 발명에 따른 비휘발성 메모리 장치의 멀티-비트 프로그램 방법에 대한 제 2 실시 예를 보여주는 흐름도이다. 도 1, 도 13 내지 도 23을 참조하면, 멀티-비트 프로그램 방법은 다음과 같이 진행된다.
프로그램될 타겟 데이터(TD)가 데이터 래치들(예를 들어, 도 13의 ML, LL)에 로딩되고, 비트라인 포싱 여부를 지시하는 포싱 비트(BFB)가 포싱비트 래치(예를 들어, 도 13의 FL)에 설정된다(S410). 대응하는 메모리 셀들에 로딩된 데이터가 프로그램된다(S420).
이후, 메모리 셀들에 대한 온-셀 검증 동작이 수행된다. 여기서 온-셀 검증 동작은, 프로그램 금지될 메모리 셀들이 제대로 프로그램 동작이 수행되지 않았는지를 검증한다. 예를 들어, 온-셀 검증 동작은, 소거 상태(E)가 프로그램 디스터번스에 의해 프로그램되지 않았는지를 검증할 수 있다(S430). 이후, 메모리 셀들에 대한 오프-셀 검증 동작이 수행된다. 여기서 오프-셀 검증 동작은, 프로그램될 메모리 셀들이 타겟 데이터에 대응하는 타겟 상태에 도달하였는지를 검증한다(S440).
한편, 온-셀 검증 동작과 오프-셀 검증 동작과 관련된 자세한 것은, 삼성전자에서 출원하였으며, 이 출원의 참고문헌으로 결합된 US 8,050,101 및 US 2010/0008149에서 설명될 것이다.
온-셀 검증 동작과 오프- 셀 검증 동작 결과를 이용하여, 프로그램 동작의 패스/페일이 결정된다. 예를 들어, 온-셀 검증 동작과 오프-셀 검증 동작 결과로써 페일 비트의 개수가, 에러 정정 코드에서 정정할 수 있는 페일 비트의 개수 이상이면, 프로그램 페일로 처리될 수 있다(S450).
만약, 프로그램 페일이라면, 타겟 데이터를 복구하기 위한 데이터 복구 동작이 수행된다. 여기서 데이터 복구 동작은, 도 18 내지 도 20에 도시된 데이터 복구 동작 혹은 도 21에 도시된 데이터 복구 동작을 이용할 수 있다(S460).
데이터 복구 동작이 완료된 후에, 복구된 타겟 데이터를 이용하여 새로운 물리 페이지에 카피백 프로그램 동작이 수행된다(S470). 이로써, 프로그램 동작이 완료된다.
본 발명에 따른 멀티-비트 프로그램 방법은, 온-셀 검증 동작과 오프-셀 검증 동작의 결과값을 근거로 프로그램 페일 여부를 결정하고, 프로그램 페일시 데이터 복구 동작을 수행한다.
도 22 및 도 23에서 프로그램 페일에 응답하여 데이터 복구 동작이 수행되었다. 그러나 본 발명이 여기에 제한될 필요는 없다. 본 발명은, 외부로부터 입력된 데이터 복구 명령에 근거로 하여 데이터 복구 동작을 개시할 수도 있다.
도 24는 본 발명에 따른 비휘발성 메모리 장치의 멀티-비트 프로그램 방법에 대한 제 3 실시 예를 보여주는 흐름도이다. 도 1, 도 13 내지 도 17, 도 24를 참조하면, 멀티-비트 프로그램 방법은 다음과 같다.
프로그램 동작에서 타겟 상태를 지시하는 타겟 데이터(TD)가 페이지 버퍼에 로딩된다(S510). 아울러, 비트라인 포싱 래치(FL)에 소거 상태(E)의 어퍼 테일 페일 비트를 복구하기 위한 복구 기준 비트(RRB)가 저장된다(S520). 여기서 복구 기준 비트(RRB)는 비트라인 포싱 여부를 지시하는 비트라인 포싱 비트(BFB)일 수 있다.
이후, 대응하는 메모리 셀에 타겟 데이터(TD)가 프로그램된다(S530). 프로그램 페일 여부에 상관없이 외부의 메모리 제어기로부터 데이터 복구 명령에 응답하여 데이터 복구 동작에서 수행된다. 복구 명령이 입력되면, 적어도 하나의 읽기 동작과 복구 기준 비트를 이용하여 로딩된 타겟 데이터(TD)가 복구된다(S540).
데이터 복구 동작이 완료된 후에, 복구된 타겟 데이터를 이용하여 새로운 물리 페이지에 카피백 프로그램 동작이 수행된다(S550). 이로써, 프로그램 동작이 완료된다.
본 발명에 따른 멀티-비트 프로그램 방법은, 데이터 복구 명령에 응답하여 복구 기준 비트(RRB)와 적어도 하나의 읽기 동작을 통하여 이용하여 타겟 데이터를 복구할 수 있다.
도 25는 본 발명의 실시 예에 메모리 시스템의 데이터 복구 동작에 대한 제 1 실시 예를 보여주는 흐름도이다. 도 25를 참조하면, 데이터 복구 동작은 다음과 같다. 여기서 메모리 시스템은, 적어도 하나의 비휘발성 메모리 장치 및 그것을 제어하는 메모리 제어기를 포함한다. 메모리 제어기는 프로그램 동작이 수행된 적어도 하나의 비휘발성 메모리 장치로부터 프로그램된 데이터를 읽어온다(S610). 메모리 제어기는 읽혀진 데이터에 대한 에러 정정 동작을 수행한다(S620). 이때, 메모리 제어기는 에러 정정이 가능한 지를 판별한다(S630). 만일, 에러 정정이 가능하지 않다면, 프로그램된 데이터를 복구하기 위한 데이터 복구 동작을 수행하는 S650 단계로 진입한다. 여기서 S650 단계의 데이터 복구 동작은, 도 1 내지 도 24에서 설명된 것을 이용할 수 있다. 반면에, 에러 정정이 가능하다면, 메모리 제어기는 에러의 개수가 소정의 값보다 큰 지를 판별한다(S640). 만일, 에러의 개수가 소정의 값보다 큰다면, 프로그램된 데이터의 신뢰성을 확보하기 위하여 S650 단계로 진입한다. 반면에, 에러의 개수가 소정의 값보다 크지 않다면, 데이터 복구 동작이 완료된다.
본 발명에 따른 데이터 복구 동작은, 프로그램된 데이터를 읽고, 읽혀진 데이터의 에러에 근거로 하여 데이터 복구 동작 여부를 결정한다.
도 26은 본 발명의 실시 예에 따른 메모리 시스템의 데이터 복구 동작에 대한 제 2 실시 예를 보여주는 흐름도이다. 도 26을 참조하면, 데이터 복구 동작은 다음과 같다.
메모리 제어기는 적어도 하나의 비휘발성 메모리 장치(NVM)의 프로그램 동작의 상태를 지시하는 프로그램 상태 정보(PGM status)를 읽는다(S710). 메모리 제어기는 읽혀진 프로그램 상태 정보에 근거로 하여 데이터 복구 동작이 필요한 지를 판별한다(S720). 예를 들어, 프로그램 상태가 전체 프로그램 페일을 지시할 때, 데이터 복구 동작이 필요하다고 판별될 것이다. 데이터 복구 동작이 필요하다고 판별되면, 메모리 제어기는 비휘발성 메모리 장치(NVM)로 데이터 복구 명령을 출력한다(S730). 비휘발성 메모리 장치(NVM)는 데이터 복구 명령에 따라 데이터 복구 동작을 수행한다(S740). 여기서 데이터 복구 동작은 도 1 내지 도 24에서 설명된 것을 이용할 수 있다.
본 발명에 따른 데이터 복구 동작은, 비휘발성 메모리 장치의 프로그램 상태 정보를 근거로 하여 데이터 복구 동작 여부를 결정한다.
도 27은 본 발명의 실시 예에 따른 메모리 시스템의 데이터 복구 동작에 대한 제 3 실시 예를 보여주는 흐름도이다. 도 27을 참조하면, 데이터 복구 동작은 다음과 같다. 비휘발성 메모리 장치는 프로그램 동작에서 데이터 래치들(DL1~DLk, 도 2 참조)의 데이터를 이용하여 로어 테일 데이터 복구 동작을 수행한다. 로어 테일은, 도 3에 도시된 바와 같이 셀 프로그램 동작이 페일된 부분이다. 따라서, 데이터 래치들(DL1~DLk)은 셀 프로그램 동작이 페일일 때 타겟 상태의 데이터를 유지하고 있다(S810).
또한, 비휘발성 메모리 장치는 복구 기준 비트(RRB) 혹은 데이터 복구 동작을 위한 적어도 하나의 읽기 동작을 이용하여 어퍼 테일 데이터 동작을 수행한다. 어퍼 테일은, 도 5에 도시된 바와 같이 셀 프로그램 동작이 패스된 부분이다. 비휘발성 메모리 장치는, 도 5 및 도 6에 설명된 바와 같이, 복구 기준 비트(RRB) 및 읽기 동작을 이용하여 타겟 상태를 지시하는 타겟 데이터(TD)를 복구할 수 있다.
본 발명에 따른 데이터 복구 동작은, 로어 테일/어퍼 테일 데이터 복구 동작을 수행한다.
도 28은 본 발명의 실시 예에 따른 메모리 시스템의 데이터 복구 동작에 대한 제 4 실시 예를 보여주는 흐름도이다. 도 28을 참조하면, 데이터 복구 동작은 다음과 같다.
비휘발성 메모리 장치는 메모리 제어기로부터 데이터 복구 명령과 어드레스를 입력받는다(S910). 여기서 어드레스는 복구된 데이터를 프로그램시킬 새로운 페이지를 지시할 것이다. 비휘발성 메모리 장치는 입력된 데이터 복구 명령 및 어드레스에 근거로 하여 데이터 복구 동작을 수행한다(S920). 여기서 데이터 복구 동작은, 도 1 내지 도 24에서 설명된 바와 같을 것이다.
본 발명에 따른 데이터 복구 동작은 데이터 복구 명령에 따라 타겟 데이터를 복구하고, 복구된 데이터를 입력된 어드레스가 지시하는 새로운 페이지로 프로그램시킨다.
본 발명은 페일 비트가 상대적으로 많이 발생하는 것으로 알려진 특정 상태에 관련된 상태 정보(예를 들어, RRB)를 프로그램 동작에서 설정/저장해둠으로써, 데이터 복구 동작에서 상태 정보를 이용하여 특정 상태에 대응하는 타겟 데이터를 복구할 수 있다.
본 발명은 수직형 낸드 플래시 메모리 장치에도 적용가능하다.
도 29는 본 발명에 따른 메모리 블록을 예시적으로 보여주는 도면이다. 도 29를 참조하면, 기판 위에 워드라인 컷들 사이에는 적어도 하나의 접지 스트링 라인(GSL), 복수의 워드라인들(WL), 적어도 하나의 스트링 선택 라인(SSL)이 적층된다. 여기서 적어도 하나의 스트링 선택 라인(SSL)은 스트링 선택 라인 컷으로 분리된다. 복수의 필라들이 적어도 하나의 접지 스트링 라인 기판(GSL), 복수의 워드라인들(WL), 적어도 하나의 스트링 선택 라인(SSL)을 관통한다. 여기서 적어도 하나의 접지 스트링 라인(GSL), 복수의 워드라인들(WL), 적어도 하나의 스트링 선택 라인(SSL)은 기판 형태로 구현된다. 또한, 복수의 필라들의 상부면에는 비트라인들(BL)이 연결된다. 도 25에서 메모리 블록은 워드라인 병합 구조이지만, 본 발명이 여기에 제한될 필요는 없다.
본 발명은 다양한 장치들에 응용 가능하다.
도 30은 본 발명에 따른 메모리 시스템을 예시적으로 보여주는 블록도이다. 도 30을 참조하면, 메모리 시스템(1000)은 적어도 하나의 비휘발성 메모리 장치(1100) 및 메모리 제어기(1200)를 포함한다. 비휘발성 메모리 장치(1100)는 도 1 내지 도 28에서 설명된 데이터 복구 동작을 수행하도록 구현될 것이다.
비휘발성 메모리 장치(1100)는 외부로부터 고전압(Vpp)을 옵션적으로 제공받을 수 있다. 메모리 제어기(1200)는 복수의 채널들을 통하여 비휘발성 메모리 장치(1100)에 연결된다. 메모리 제어기(1200)는 적어도 하나의 중앙처리장치(1210), 버퍼 메모리(1220), 에러 정정회로(1230), 롬(1240), 호스트 인터페이스(1250) 및 메모리 인터페이스(1260)를 포함한다. 도시되지 않았지만, 메모리 제어기(1200)는 데이터를 랜덤화시키거나 디랜덤화시키는 랜덤화 회로를 더 포함할 수 있다. 본 발명의 메모리 시스템(1000)은 PPN(Perfect Page New)에 적용가능하다. 비휘발성 메모리 장치(1110)는, 외부의 고전압을 선택적으로 입력받을 수 있다.
메모리 제어기(1200)는 비휘발성 메모리 장치(1100)의 프로그램 동작이 페일되거나 프로그램 동작의 신뢰성이 요구될 때 데이터 복구 명령을 발생하고, 발생된 데이터 복구 명령을 비휘발성 메모리 장치(1100)로 전송할 수 있다.
메모리 제어기(1200)는 에러 정정 코드(error correction code; ECC)에 따라 데이터의 에러를 정정하는 에러 정정 회로(1230)를 포함한다. 에러 정정 회로(1230)는 쓰기 동작에서 프로그램될 데이터의 에러 정정 코드값을 계산하고, 읽기 동작에서 읽혀진 데이터를 에러 정정 코드값에 근거로 하여 에러 정정하고, 데이터 복구 동작에서 비휘발성 메모리 장치(1100)로부터 복구된 데이터의 에러를 정정할 수 있다. 메모리 제어기(1200)는 데이터 복구 동작에서 복구된 데이터를 다른 물리적인 페이지에 프로그램시키도록 비휘발성 메모리 장치(1100)에 프로그램 명령을 전송할 수 있다.
본 발명의 메모리 시스템(1000)은 데이터 복구 동작에서 타겟 데이터를 복구할 수 있음으로써, 데이터의 신뢰성을 향상시킬 수 있다. 또한, 본 발명의 메모리 시스템(1000)은 데이터 복구 동작을 위하여 타겟 데이터를 별도로 저장할 필요가 없기 때문에, 종래의 그것과 비교하여 칩 사이즈를 줄일 수 있다.
도 31은 본 발명에 따른 메모리 카드를 예시적으로 보여주는 블록도이다. 도 31은 참조하면, 메모리 카드(2000)는 적어도 하나의 플래시 메모리 장치(2100), 버퍼 메모리 장치(2200) 및 그것들을 제어하는 메모리 제어기(2300)를 포함한다.
플래시 메모리 장치(2100)는 외부 고전압(Vpp)을 옵션적으로 제공받을 수 있다. 플래시 메모리 장치(2100)는 도 1 내지 도 28에 설명된 데이터 복구 동작을 수행하도록 구현될 것이다. 버퍼 메모리 장치(2200)는 메모리 카드(2000)의 동작 중 생성되는 데이터를 임시로 저장하기 위한 장치이다. 버퍼 메모리 장치(2200)는 디램 혹은 에스램 등으로 구현될 수 있다. 메모리 제어기(2300)는 복수의 채널들을 통하여 플래시 메모리 장치(2100)에 연결된다. 메모리 제어기(2300)는 호스트 및 플래시 메모리 장치(2100)에 사이에 연결된다. 호스트로부터의 요청에 응답하여, 메모리 제어기(2300)는 플래시 메모리 장치(2100)를 억세스한다.
메모리 제어기(2300)는 적어도 하나의 마이크로 프로세서(2310), 호스트 인터페이스(2320), 플래시 인터페이스(2330)를 포함한다. 적어도 하나의 마이크로 프로세서(2310)는 펌웨어(firmware)를 동작하도록 구현된다. 호스트 인터페이스(2320)는 호스트와 메모리 카드(2000) 사이에 데이터 교환을 수행하기 위한 카드 프로토콜(예를 들어, SD/MMC)을 통해 호스트와 인터페이싱한다.
본 발명의 메모리 카드(2000)는 멀티미디어 카드(Multimedia Card: MMC), 보안 디지털(Security Digital: SD), miniSD, 메모리 스틱(Memory Stick), 스마트미디어(Smart Media), 트랜스플래시(TransFlash) 카드 등에 적용가능하다.
도 32는 본 발명에 따른 모비낸드를 예시적으로 보여주는 블록도이다. 도 32를 참조하면, 모비낸드(3000)는 적어도 하나의 낸드 플래시 메모리 장치(3100) 및 제어기(3200)를 포함할 수 있다. 모비낸드(3000)는 MMC 4.4(다른 말로, eMMC) 규격을 지원한다.
낸드 플래시 메모리 장치(3100)는 SDR(Sing Data Rate) 낸드 혹은 DDR(Double Data Rate) 낸드일 수 있다. 실시 예에 있어서, 낸드 플래시 메모리 장치(3100)는 단품의 낸드 플래시 메모리 장치들을 포함할 수 있다. 여기서, 단품의 낸드 플래시 메모리 장치들은 하나의 패키지(예를 들어, FBGA, Fine-pitch Ball Grid Array)에 적층되어 구현될 수 있다. 단품의 낸드 플래시 메모리 장치들 각각은, 도 1 내지 도 24에서 설명된 데이터 복구 동작을 수행하도록 구현될 것이다.
메모리 제어기(3200)는 복수의 채널들을 통하여 플래시 메모리 장치(3100)에 연결된다. 제어기(3200)는 적어도 하나의 제어기 코어(3210), 호스트 인터페이스(3250) 및 낸드 인터페이스(3260)를 포함한다. 적어도 하나의 제어기 코어(3210)는 모비낸드(3000)의 전반적인 동작을 제어한다. 호스트 인터페이스(3250)는 제어기(3210)와 호스트의 인터페이싱을 수행한다. 낸드 인터페이스(3260)는 낸드 플래시 메모리 장치(3100)와 제어기(3200)의 인터페이싱을 수행한다. 실시 예에 있어서, 호스트 인터페이스(3250)는 병렬 인터페이스(예를 들어, MMC 인터페이스)일 수 있다. 다른 실시 예에 있어서, 모비낸드(3000)의 호스트 인터페이스(3250)는 직렬 인터페이스(예를 들어, UHS-II, UFS 인터페이스)일 수 있다.
모비낸드(3000)는 호스트로부터 전원 전압들(Vcc, Vccq)을 제공받는다. 여기서, 제 1 전원 전압(Vcc: 3.3V)은 낸드 플래시 메모리 장치(3100) 및 낸드 인터페이스(3230)에 제공되고, 제 2 전원 전압(Vccq: 1.8V/3.3V)은 제어기(3200)에 제공된다. 실시 예에 있어서, 모비낸드(3000)는 외부 고전압(Vpp)을 옵션적으로 제공받을 수 있다.
본 발명에 따른 모비낸드(3000)는 대용량의 데이터를 저장하는 데 유리할 뿐 아니라, 향상된 읽기 동작 특성을 갖는다. 본 발명의 실시 예에 따른 모비낸드(3000)는 소형 및 저전력이 요구되는 모바일 제품(예를 들어, 갤럭시S, 갤럭시노트, 아이폰 등)에 응용 가능하다.
도 33은 본 발명에 따른 SSD를 예시적으로 보여주는 블록도이다. 도 33을 참조하면, SSD(4000)는 복수의 플래시 메모리 장치들(4100) 및 SSD 제어기(4200)를 포함한다. 플래시 메모리 장치들(4100)은 옵션적으로 외부 고전압(Vpp)을 제공받도록 구현될 수 있다. 플래시 메모리 장치들(4100) 각각은 도 1 내지 도 28에 설명된 데이터 복구 동작을 수행하도록 구현될 것이다. SSD 제어기(4200)는 복수의 채널들(CH1~CH4)을 통하여 플래시 메모리 장치들(4100)에 연결된다. SSD 제어기(4200)는 적어도 하나의 중앙처리장치(4210), 버퍼 메모리(4220), 호스트 인터페이스(4250) 및 플래시 인터페이스(4260)를 포함한다.
본 발명에 따른 SSD(4000)는 데이터의 신뢰성을 향상시키는 프로그램 동작을 수행한다. 한편, SSD(4000)에 대한 좀더 자세한 것은 삼성전자에서 출원하였으며 참고 문헌으로 결합된 US 7,802,054, US 8,027,194, US 8,122,193, US 2007/0106836, US 2010/0082890에서 설명될 것이다.
도 34는 본 발명에 따른 통신장치를 예시적으로 보여주는 블록도이다. 도 34는 참조하면, 모바일 장치(8000)는 통신 유닛(8100), 제어기(8200), 메모리 유닛(8300), 디스플레이 유닛(8400), 터치 스크린 유닛(8500), 및 오디오 유닛(8600)을 포함한다. 메모리 유닛(8300)은 적어도 하나의 디램(8310), 적어도 하나의 원낸드(8320), 및 적어도 하나의 모비낸드(8330)를 포함한다. 원낸드(8320) 및 모비 낸드(8330) 중 적어도 하나는 도 27에 도시된 메모리 시스템(1000)과 동일한 구성 및 동작을 갖도록 구현될 것이다. 한편, 모바일 장치에 대한 좀더 자세한 것은, 삼성 전자에서 출원하였으며, 이 출원의 참고 문헌으로 결합된 미국 공개 번호들 US 2010/0010040, US 2010/0062715, US 2010/0309237, US 2010/0315325에서 설명될 것이다.
도 35는 본 발명에 따른 스마트 TV 시스템을 예시적으로 보여주는 블록도이다. 도 35를 참조하면, 스마트 TV 시스템(9000)은 스마트 TV(9100), 레뷰(9200), 셋톱박스(9300), 무선 공유기(9400), 키패드(9500), 및 스마트폰(9600)을 포함한다. 스마트 TV(9100)과 무선 공유기(9400) 사이에 무선 통신이 수행된다. 스마트 TV(9100)는 개방형 플렛폼인 구글 진영의 레뷰(Revue, 9200)를 구비함으로써, 인터넷에 접속이 가능하다. 스마트 TV(9100)는 셋톱박스(9300)를 통하여 케이블 방송 및 위성 방송을 시청할 수 있다. 스마트(TV)는 키패드(9500)의 제어 혹은 스마트폰(9600)의 제어에 따라 운용될 수 있다. 본 발명의 스마트 TV(9100)는 도 30에 도시된 메모리 시스템(1000)을 포함할 수 있다.
본 발명의 실시 예에 따른 메모리 시스템 혹은 저장 장치는 다양한 형태들의 패키지를 이용하여 실장 될 수 있다. 실시 예에 있어서, 본 발명의 실시 예에 따른 메모리 시스템 혹은 저장 장치는 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), 등과 같은 패키지들을 이용하여 실장될 수 있다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지로 변형할 수 있다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허 청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
PB1~PBn: 페이지 버퍼
DL0~DLk: 데이터 래치
AL: 추가 래치
ML: 상위비트 래치
LL: 하위비트 래치
FL: 포싱비트 래치
SL: 감지 래치
MC: 메모리 셀
TD: 타겟 데이터
RRB: 복구 기준 비트
BFB: 비트라인 포싱 비트
MSB: 상위비트
LSB: 하위비트
RD, RD1, RD2, RD3: 읽기 레벨
PVR1, PVR2, PVR3: 프리 검증 레벨
VR1, VR2, VR3: 검증 레벨
BLPV: 비트라인 프로그램 전압
BLFV: 비트라인 포싱 전압
BLIV: 비트라인 프로그램 금지 전압
100: 비휘발성 메모리 장치
110: 메모리 셀 어레이
120: 어드레스 디코더
130: 입출력 회로
140: 제어 로직

Claims (26)

  1. 비휘발성 메모리 장치의 프로그램 방법에 있어서:
    로딩된 데이터를 적어도 하나의 제 1 래치에 저장하고, 특정 상태의 페일 비트를 복구하기 위한 복구 기준 비트를 제 2 래치에 저장하고, 상기 메모리 셀에 프로그램 펄스를 인가하고, 제 1 레벨로 상기 메모리 셀의 프로그램 검증하고, 및 상기 프로그램 검증이 패스될 때, 상기 적어도 하나의 제 1 래치에 저장된 데이터를 패스 패턴의 데이터로 변경하는 것으로 구성된 프로그램 동작을 수행하는 단계; 및
    제 2 레벨로 상기 메모리 셀을 읽고, 상기 읽혀진 데이터 및 상기 복구 기준 비트를 이용하여 상기 로딩된 데이터를 복구하는 것으로 구성된 데이터 복구 동작을 수행하는 단계를 포함하는 프로그램 방법.
  2. 제 1 항에 있어서,
    상기 특정 상태는 소거 상태를 지시하는 프로그램 방법.
  3. 제 1 항에 있어서,
    상기 패스 패턴의 데이터는 소거 상태에 대응하는 데이터인 프로그램 방법.
  4. 제 1 항에 있어서,
    현재 프로그램 루프에서 상기 적어도 하나의 제 1 래치에 저장된 데이터가 상기 패스 패턴의 데이터일 때, 다음 프로그램 루프에서 상기 메모리 셀은 프로그램 금지되는 프로그램 방법.
  5. 제 1 항에 있어서,
    상기 제 2 레벨은 상기 제 1 레벨보다 낮은 프로그램 방법.
  6. 제 1 항에 있어서,
    상기 제 2 레벨의 읽기 동작에서 상기 메모리 셀이 오프-셀일 때, 상기 읽혀진 데이터 및 상기 복구 기준 비트를 이용하여 상기 로딩된 데이터가 복구되는 프로그램 방법.
  7. 제 1 항에 있어서,
    상기 복구된 데이터는 상기 비휘발성 메모리 장치를 제어하는 메모리 제어기로 출력되는 프로그램 방법.
  8. 제 7 항에 있어서,
    상기 메모리 제어기는 상기 복구된 데이터를 상기 비휘발성 메모리 장치의 다른 메모리 셀에 프로그램시키는 프로그램 방법.
  9. 비휘발성 메모리 장치의 프로그램 방법에 있어서:
    입력된 데이터를 제 1 래치들에 저장하고, 비트라인 포싱 비트를 제 2 래치에 저장하고, 프로그램 펄스를 인가하고, 제 1 프로그램 검증을 수행하고, 상기 제 1 프로그램 검증 결과로써 오프-셀인 경우에 상기 제 2 래치에 저장된 상기 비트라인 포싱 비트를 소정의 데이터로 변경하고, 제 2 프로그램 검증을 수행하고, 상기 제 2 프로그램 검증 결과로써 오프-셀인 경우에 상기 제 1 래치들에 저장된 데이터를 소거 상태에 대응하는 패스 패턴의 데이터로 변경하는 것으로 구성된 프로그램 동작을 수행하는 단계; 및
    메모리 셀에 대한 적어도 하나의 읽기 동작, 상기 제 1 래치들에 저장된 데이터, 및 상기 제 2 래치에 저장된 데이터를 이용하여 상기 입력된 데이터를 복구하는 것으로 구성된 데이터 복구 동작을 수행하는 단계를 포함하는 프로그램 방법.
  10. 제 9 항에 있어서,
    현재 프로그램 루프에서 상기 제 1 래치들에 상기 소거 상태에 대응하는 데이터가 저장될 때, 다음 프로그램 루프에서 대응하는 비트라인으로 비트라인 프로그램 금지 전압이 인가되는 프로그램 방법.
  11. 제 10 항에 있어서,
    현재 프로그램 루프에서 상기 제 1 래치들에 상기 소거 상태에 대응하는 데이터가 저장되지 않고, 상기 제 2 래치에 상기 소정의 데이터가 저장될 때, 다음 프로그램 루프에서 대응하는 비트라인으로 비트라인 포싱 전압이 인가되고,
    상기 비트라인 포싱 전압은 상기 비트라인 프로그램 금지 전압보다 낮은 프로그램 방법.
  12. 제 9 항에 있어서,
    상기 제 2 프로그램 검증을 위한 레벨은 상기 제 1 프로그램 검증을 위한 레벨보다 높은 프로그램 방법.
  13. 제 9 항에 있어서,
    상기 데이터 복구 동작은,
    상기 읽기 동작과 상기 제 1 래치들에 저장된 데이터를 이용하여 상기 입력된 데이터를 복구하는 제 1 데이터 복구 동작; 및
    상기 읽기 동작과 상기 제 2 래치에 저장된 데이터를 이용하여 상기 입력된 데이터를 복구하는 제 2 데이터 복구 동작을 포함하는 프로그램 방법.
  14. 제 13 항에 있어서,
    상기 제 1 데이터 복구 동작은, 상기 읽기 동작 결과로써 읽혀진 데이터가 온-셀을 지시할 때 상기 제 1 래치들에 저장된 데이터가 상기 입력된 데이터로 복구되고,
    상기 제 2 데이터 복구 동작은, 상기 읽기 동작 결과로서 상기 읽혀진 데이터가 오프-셀을 지시할 때 상기 제 2 래치에 저장된 데이터를 이용하여 상기 입력된 데이터가 상기 소거 상태에 대응하는 데이터인 지를 판별하는 프로그램 방법.
  15. 제 9 항에 있어서,
    상기 비휘발성 메모리 장치는 적어도 2개의 비트들을 저장하는 멀티 레벨 셀들을 포함하고, 상기 멀티 레벨 셀들 각각은 상기 적어도 2개의 비트들에 대응하는 복수의 문턱전압 상태들 중 어느 하나로 프로그램되고,
    상기 적어도 하나의 읽기 동작은 상기 복수의 문턱전압 상태들 중 최상위 상태를 판별하기 위한 읽기 레벨로 수행되는 프로그램 방법.
  16. 제 9 항에 있어서,
    상기 데이터 복구 동작을 수행하는 단계는, 상기 복구된 데이터를 상기 비휘발성 메모리 장치를 제어하는 메모리 제어기로 출력하는 단계를 더 포함하는 프로그램 방법.
  17. 제 16 항에 있어서,
    상기 메모리 제어기는 상기 복구된 데이터를 다른 메모리 셀에 프로그램되도록 상기 비휘발성 메모리 장치를 제어하는 프로그램 방법.
  18. 로딩된 데이터 및 소거 상태의 페일 비트를 복구하기 위한 복구 기준 비트를 저장한 후에, 프로그램 명령에 따라 프로그램 동작을 수행하고, 프로그램 페일시 상기 프로그램 동작의 실패 정보를 출력하고, 데이터 복구 명령에 따라 메모리 셀들로부터 읽혀진 데이터 및 상기 복구 기준 비트를 이용하여 상기 로딩된 데이터를 복구하는 적어도 하나의 비휘발성 메모리 장치;및
    상기 프로그램 동작에서 상기 프로그램 명령과 데이터를 상기 적어도 하나의 비휘발성 메모리 장치로 전송하고, 상기 실패 정보에 응답하여 상기 적어도 하나의 비휘발성 메모리 장치로 상기 데이터 복구 명령을 전송하는 메모리 제어기를 포함하고,
    상기 메모리 제어기는 상기 복구된 데이터를 상기 적어도 하나의 비휘발성 메모리 장치의 상기 메모리 셀들과 다른 메모리 셀들로 프로그램시키는 메모리 시스템.
  19. 제 18 항에 있어서,
    상기 메모리 제어기는 상기 복구된 데이터를 에러 정정하는 에러 정정 회로를 더 포함하는 메모리 시스템.
  20. 제 18 항에 있어서,
    상기 프로그램된 메모리 셀들의 상위비트 프로그램 동작에서, 상기 로딩된 데이터에서 상위비트들은 상기 메모리 제어기로부터 전송되는 메모리 시스템.
  21. 제 18 항에 있어서,
    상기 프로그램된 메모리 셀들의 상위비트 프로그램 동작에서, 상기 로딩된 데이터에서 하위비트들은 상기 프로그램된 메모리 셀들로부터 읽혀진 값들인 메모리 시스템.
  22. 제 21 항에 있어서,
    상기 읽혀진 하위비트들은 상기 메모리 제어기에서 에러 정정되고, 상기 에러 정정된 하위비트들이 상기 로딩된 데이터로 이용되는 메모리 시스템.
  23. 비휘발성 메모리 장치의 프로그램 방법에 있어서:
    로딩된 데이터를 제 1 래치들에 저장하는 단계;
    소거 상태의 어퍼 테일 페일 비트를 복구하기 위한 복구 기준 비트를 제 2 래치에 저장하는 단계;
    상기 제 1 래치들에 저장된 데이터를 메모리 셀들에 프로그램하는 단계;
    상기 메모리 셀들에 대하여 프로그램 금지가 성공하였는지 온-셀 검증 동작을 수행하는 단계;
    상기 메모리 셀들에 대하여 프로그램이 성공하였는지 오프-셀 검증 동작을 수행하는 단계;
    상기 온-셀 검증 동작 및 상기 오프-셀 검증 동작에 따라 프로그램 패스 혹은 페일을 판별하는 단계; 및
    상기 프로그램 페일시, 상기 메모리 셀들에 대한 적어도 하나의 읽기 동작과 상기 복구 기준 비트를 이용하여 상기 로딩된 데이터를 복구하는 단계를 포함하는 프로그램 방법.
  24. 제 23 항에 있어서,
    상기 오프-셀 검증 동작은 2-스텝 검증으로 진행되는 프로그램 방법.
  25. 비휘발성 메모리 장치의 데이터 복구 방법에 있어서:
    데이터 복구 명령을 입력받는 단계;
    상기 데이터 복구 명령에 의거하여 셀 프로그램 동작이 페일일 때 데이터 래치들에 저장된 데이터를 타겟 데이터로 복구하는 단계; 및
    상기 데이터 복구 명령에 의거하여 셀 프로그램 동작이 패스일 때 데이터 래치들에 저장된 데이터, 특정 상태의 페일 비트를 복구하는 기준 값인 복구 기준 비트, 및 데이터 복구를 위한 읽기 동작의 결과값에 따라 타겟 데이터를 복구하는 단계를 포함하는 데이터 복구 방법.
  26. 비휘발성 메모리 장치의 데이터 복구 방법에 있어서:
    복구 기준 비트 및 읽기 동작을 통하여 제 1 상태의 어퍼 테일 페일 비트를 판별 및 복구하는 단계; 및
    데이터 래치에 저장된 데이터를 근거로 하여 제 2 상태의 로어 테일 페일 비트를 판별 및 복구하는 단계를 포함하고,
    상기 복구 기준 비트는 상기 제 1 상태의 어퍼 테일 페일 비트를 판별하기 위한 기준값인 데이터 복구 방법.
KR1020120056641A 2012-05-29 2012-05-29 비휘발성 메모리 장치의 프로그램 방법 및 그것의 메모리 시스템 KR101996004B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020120056641A KR101996004B1 (ko) 2012-05-29 2012-05-29 비휘발성 메모리 장치의 프로그램 방법 및 그것의 메모리 시스템
US13/777,512 US9053822B2 (en) 2012-05-29 2013-02-26 Methods of operating nonvolatile memory devices that support efficient error detection
DE201310105356 DE102013105356A1 (de) 2012-05-29 2013-05-24 Verfahren zum Betreiben von nichtflüchtigen Speichervorrichtungen, die effiziente Fehlererkennung unterstützen
CN201310206487.4A CN103456361B (zh) 2012-05-29 2013-05-29 操作非易失性存储装置的方法和集成电路存储系统
JP2013112780A JP6218437B2 (ja) 2012-05-29 2013-05-29 不揮発性メモリ装置のプログラム方法及びそれのメモリシステム
US14/712,939 US9183924B2 (en) 2012-05-29 2015-05-15 Methods of operating nonvolatile memory devices that support efficient error detection

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120056641A KR101996004B1 (ko) 2012-05-29 2012-05-29 비휘발성 메모리 장치의 프로그램 방법 및 그것의 메모리 시스템

Publications (2)

Publication Number Publication Date
KR20130133419A true KR20130133419A (ko) 2013-12-09
KR101996004B1 KR101996004B1 (ko) 2019-07-03

Family

ID=49670084

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120056641A KR101996004B1 (ko) 2012-05-29 2012-05-29 비휘발성 메모리 장치의 프로그램 방법 및 그것의 메모리 시스템

Country Status (4)

Country Link
US (2) US9053822B2 (ko)
JP (1) JP6218437B2 (ko)
KR (1) KR101996004B1 (ko)
CN (1) CN103456361B (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160025076A (ko) * 2014-08-25 2016-03-08 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 검증 방법
US9607698B2 (en) 2015-07-23 2017-03-28 SK Hynix Inc. Semiconductor memory device and operating method thereof
KR20180039970A (ko) * 2016-10-11 2018-04-19 삼성전자주식회사 불휘발성 메모리 장치를 프로그램하는 방법과, 상기 메모리 장치를 포함하는 시스템의 작동 방법
KR20180081956A (ko) * 2017-01-09 2018-07-18 삼성전자주식회사 비휘발성 메모리 장치 및 그 프로그램 방법

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9070444B2 (en) * 2013-02-28 2015-06-30 Kabushiki Kaisha Toshiba Semiconductor memory device
KR102140784B1 (ko) * 2013-12-03 2020-08-03 삼성전자주식회사 비휘발성 메모리 장치의 데이터 기록 방법
KR102272228B1 (ko) * 2014-05-13 2021-07-06 삼성전자주식회사 불휘발성 메모리 장치, 그것을 포함하는 저장 장치 및 그것의 동작 방법
US9922718B2 (en) 2014-05-22 2018-03-20 Seagate Technology Llc Flash command that reports a count of cell program failures
KR102197787B1 (ko) * 2014-07-03 2021-01-04 삼성전자주식회사 비휘발성 메모리 장치 및 그 동작 방법
KR20160108659A (ko) * 2015-03-04 2016-09-20 에스케이하이닉스 주식회사 반도체 메모리 장치의 동작 방법 및 반도체 메모리 장치를 포함하는 메모리 시스템
KR20160138757A (ko) * 2015-05-26 2016-12-06 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그것의 동작 방법
US9570160B1 (en) * 2015-10-29 2017-02-14 Sandisk Technologies Llc Non-volatile storage system with defect detetction and early programming termination
KR102377453B1 (ko) * 2015-11-05 2022-03-23 삼성전자주식회사 불 휘발성 메모리 장치 및 그것의 동작 방법
KR102435026B1 (ko) * 2015-12-15 2022-08-22 삼성전자주식회사 저장 장치의 동작 방법
KR102511459B1 (ko) * 2016-03-17 2023-03-17 삼성전자주식회사 비휘발성 메모리 장치 및 그 동작 방법
US10019314B2 (en) 2016-04-27 2018-07-10 Silicon Motion Inc. Flash memory apparatus and storage management method for flash memory
CN107391026B (zh) 2016-04-27 2020-06-02 慧荣科技股份有限公司 闪存装置及闪存存储管理方法
CN107391296B (zh) 2016-04-27 2020-11-06 慧荣科技股份有限公司 存取闪存模块的方法及相关的闪存控制器与记忆装置
US9910772B2 (en) 2016-04-27 2018-03-06 Silicon Motion Inc. Flash memory apparatus and storage management method for flash memory
US10110255B2 (en) 2016-04-27 2018-10-23 Silicon Motion Inc. Method for accessing flash memory module and associated flash memory controller and memory device
CN111679787B (zh) 2016-04-27 2023-07-18 慧荣科技股份有限公司 闪存装置、闪存控制器及闪存存储管理方法
US10289487B2 (en) 2016-04-27 2019-05-14 Silicon Motion Inc. Method for accessing flash memory module and associated flash memory controller and memory device
US10025662B2 (en) 2016-04-27 2018-07-17 Silicon Motion Inc. Flash memory apparatus and storage management method for flash memory
KR102565888B1 (ko) 2016-09-12 2023-08-11 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그것의 동작 방법
KR20180062158A (ko) * 2016-11-30 2018-06-08 삼성전자주식회사 루프 상태 정보를 생성하는 불휘발성 메모리 장치, 그것을 포함하는 저장 장치 및 그것의 동작 방법
KR102400098B1 (ko) * 2017-01-25 2022-05-23 삼성전자주식회사 비휘발성 메모리 장치 및 상기 비휘발성 메모리 장치의 프로그램 방법
US10074424B1 (en) 2017-04-10 2018-09-11 Macronix International Co., Ltd. Memory device, system and operating method thereof
US10445173B2 (en) 2017-06-26 2019-10-15 Macronix International Co., Ltd. Method and device for programming non-volatile memory
KR102427327B1 (ko) * 2017-07-25 2022-08-01 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 및 그것을 포함하는 저장 장치
US10096380B1 (en) * 2017-08-31 2018-10-09 Micron Technology, Inc. Erase page check
US10658056B2 (en) * 2017-12-22 2020-05-19 Intel Corporation Internal copy to handle NAND program fail
US10725862B2 (en) * 2018-07-06 2020-07-28 Macronix International Co., Ltd. Data recovery method to error correction code in memory
US10593730B1 (en) * 2018-10-10 2020-03-17 Micron Technology, Inc. Three-dimensional memory array
CN111383697B (zh) * 2018-12-30 2022-09-06 北京兆易创新科技股份有限公司 用于部分页编程的位扫描方法,部分页编程方法及非易失性存储器
KR20210011209A (ko) * 2019-07-22 2021-02-01 삼성전자주식회사 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 프로그램 방법
US10832790B1 (en) * 2019-09-26 2020-11-10 Western Digital Technologies, Inc. Performance of non data word line maintenance in sub block mode
CN114138170B (zh) * 2020-09-04 2024-02-27 兆易创新科技集团股份有限公司 非易失性存储器及其操作方法以及电子装置
KR20230057763A (ko) * 2021-10-22 2023-05-02 삼성전자주식회사 다수의 래치들을 포함하는 페이지 버퍼 및 이를 구비하는 메모리 장치
KR20230061029A (ko) * 2021-10-28 2023-05-08 삼성전자주식회사 비휘발성 메모리 장치
KR102409405B1 (ko) 2022-01-17 2022-06-16 주식회사 노바칩스 메모리 컨트롤러의 동작 방법 및 이를 포함하는 비휘발성 메모리 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110006963A (ko) * 2009-07-15 2011-01-21 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템, 및 그것의 프로그램 방법
KR20110131648A (ko) * 2010-05-31 2011-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템 및 메모리 카드 및 그것의 프로그램 방법

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8027194B2 (en) 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
JP3883687B2 (ja) * 1998-02-16 2007-02-21 株式会社ルネサステクノロジ 半導体装置、メモリカード及びデータ処理システム
JP4090570B2 (ja) * 1998-06-02 2008-05-28 株式会社ルネサステクノロジ 半導体装置、データ処理システム及び不揮発性メモリセルの閾値変更方法
JP4170952B2 (ja) * 2004-01-30 2008-10-22 株式会社東芝 半導体記憶装置
KR100645044B1 (ko) * 2004-09-17 2006-11-10 삼성전자주식회사 높은 신뢰도를 갖는 불 휘발성 메모리 장치의 프로그램 방법
KR100632952B1 (ko) * 2004-09-30 2006-10-11 삼성전자주식회사 정전으로 인한 프로그램 페일의 유무를 판별할 수 있는방법 및 장치
US7158421B2 (en) 2005-04-01 2007-01-02 Sandisk Corporation Use of data latches in multi-phase programming of non-volatile memories
US7420847B2 (en) 2004-12-14 2008-09-02 Sandisk Corporation Multi-state memory having data recovery after program fail
US8122193B2 (en) 2004-12-21 2012-02-21 Samsung Electronics Co., Ltd. Storage device and user device including the same
KR100578143B1 (ko) 2004-12-21 2006-05-10 삼성전자주식회사 버퍼 메모리에 저장된 데이터를 무효화시키는 스킴을 갖는저장 시스템 및 그것을 포함한 컴퓨팅 시스템
US7239557B2 (en) 2005-06-17 2007-07-03 Micron Technology, Inc. Program method with optimized voltage level for flash memory
KR100732628B1 (ko) * 2005-07-28 2007-06-27 삼성전자주식회사 멀티-비트 데이터 및 싱글-비트 데이터를 저장하는 플래시메모리 장치
US20070086244A1 (en) 2005-10-17 2007-04-19 Msystems Ltd. Data restoration in case of page-programming failure
KR100660546B1 (ko) 2005-11-10 2006-12-22 삼성전자주식회사 반도체 디스크 제어 장치
US7324382B2 (en) 2006-05-31 2008-01-29 Grace Semiconductor Manufacturing Corporation Current-mode sensing structure used in high-density multiple-port register in logic processing and method for the same
US7607059B2 (en) * 2006-09-19 2009-10-20 Kabushiki Kaisha Toshiba Systems and methods for improved scan testing fault coverage
US7886204B2 (en) 2006-09-27 2011-02-08 Sandisk Corporation Methods of cell population distribution assisted read margining
KR100851853B1 (ko) 2006-11-22 2008-08-13 삼성전자주식회사 플래시 메모리 장치 및 그것의 프로그램 및 프로그램 검증방법
US7652918B2 (en) 2006-12-28 2010-01-26 Sandisk Corporation Retention margin program verification
KR100891005B1 (ko) * 2007-06-28 2009-03-31 삼성전자주식회사 고온 스트레스로 인한 읽기 마진의 감소를 보상하기 위한플래시 메모리 장치 및 그것의 읽기 전압 조정 방법
KR100888842B1 (ko) * 2007-06-28 2009-03-17 삼성전자주식회사 읽기 전압을 최적화할 수 있는 플래시 메모리 장치 및그것의 독출 전압 설정 방법
US7945825B2 (en) 2007-11-25 2011-05-17 Spansion Isreal, Ltd Recovery while programming non-volatile memory (NVM)
KR101513714B1 (ko) 2008-07-09 2015-04-21 삼성전자주식회사 플래시 메모리 장치 및 그것의 프로그램 방법
US8263623B2 (en) 2008-07-11 2012-09-11 Pfizer Inc. Triazol derivatives useful for the treatment of diseases
KR101427896B1 (ko) 2008-08-06 2014-08-11 삼성전자주식회사 공통 소스 라인의 노이즈를 줄이는 플래시 메모리 장치 및그것을 포함하는 메모리 시스템
KR101538803B1 (ko) 2008-09-09 2015-07-22 삼성전자주식회사 펜 테이블로서 기능 할 수 있는 휴대용 전자장치 및 펜 테이블을 사용하는 컴퓨터 시스템
KR101532754B1 (ko) 2008-09-22 2015-07-02 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법
US8327066B2 (en) 2008-09-30 2012-12-04 Samsung Electronics Co., Ltd. Method of managing a solid state drive, associated systems and implementations
KR101026385B1 (ko) 2009-01-06 2011-04-07 주식회사 하이닉스반도체 전하트랩형 플래시 메모리소자의 동작 방법
KR101555210B1 (ko) 2009-01-30 2015-09-23 삼성전자주식회사 휴대용 단말기에서 내장 대용량 메모리를 이용한 컨텐츠 다운로드 방법 및 장치
KR101573850B1 (ko) 2009-06-09 2015-12-02 삼성전자주식회사 마스킹 회로를 포함하는 데이터 처리 시스템과 그 방법
US20100315325A1 (en) 2009-06-16 2010-12-16 Samsung Electronics Co., Ltd. Light source unit and display apparatus including the same
KR101617641B1 (ko) 2009-08-27 2016-05-03 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템, 및 그것의 프로그램 방법
KR101616097B1 (ko) 2009-11-11 2016-04-28 삼성전자주식회사 불휘발성 메모리 장치의 프로그램 방법
US9081501B2 (en) * 2010-01-08 2015-07-14 International Business Machines Corporation Multi-petascale highly efficient parallel supercomputer
US8248850B2 (en) * 2010-01-28 2012-08-21 Sandisk Technologies Inc. Data recovery for non-volatile memory based on count of data state-specific fails
JP2011204298A (ja) * 2010-03-24 2011-10-13 Toshiba Corp 不揮発性半導体メモリ
KR101201582B1 (ko) * 2010-09-06 2012-11-14 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이의 동작 방법
US9001587B2 (en) * 2011-09-16 2015-04-07 Samsung Electronics Co., Ltd. Flash memory and reading method of flash memory
KR101775660B1 (ko) * 2011-09-29 2017-09-07 삼성전자주식회사 워드 라인 전압의 변화없이 상이한 문턱 전압들을 갖는 메모리 셀들을 읽는 방법 및 그것을 이용한 불 휘발성 메모리 장치
KR20130049332A (ko) * 2011-11-04 2013-05-14 삼성전자주식회사 메모리 시스템 및 그것의 동작 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110006963A (ko) * 2009-07-15 2011-01-21 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템, 및 그것의 프로그램 방법
KR20110131648A (ko) * 2010-05-31 2011-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템 및 메모리 카드 및 그것의 프로그램 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160025076A (ko) * 2014-08-25 2016-03-08 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 검증 방법
US9406393B2 (en) 2014-08-25 2016-08-02 Samsung Electronics Co., Ltd. Nonvolatile memory devices and program verification methods using one verification voltage to verify memory cells having different target states
US9607698B2 (en) 2015-07-23 2017-03-28 SK Hynix Inc. Semiconductor memory device and operating method thereof
KR20180039970A (ko) * 2016-10-11 2018-04-19 삼성전자주식회사 불휘발성 메모리 장치를 프로그램하는 방법과, 상기 메모리 장치를 포함하는 시스템의 작동 방법
KR20180081956A (ko) * 2017-01-09 2018-07-18 삼성전자주식회사 비휘발성 메모리 장치 및 그 프로그램 방법

Also Published As

Publication number Publication date
US20150248930A1 (en) 2015-09-03
JP2013246868A (ja) 2013-12-09
US9053822B2 (en) 2015-06-09
US20130322171A1 (en) 2013-12-05
CN103456361A (zh) 2013-12-18
JP6218437B2 (ja) 2017-10-25
KR101996004B1 (ko) 2019-07-03
US9183924B2 (en) 2015-11-10
CN103456361B (zh) 2018-04-20

Similar Documents

Publication Publication Date Title
KR101996004B1 (ko) 비휘발성 메모리 장치의 프로그램 방법 및 그것의 메모리 시스템
US10332607B2 (en) Methods of operating a nonvolatile memory device and the nonvolatile memory device thereof
US9824761B2 (en) Storage device and a write method including a coarse program operation and fine program operation
CN109410998B (zh) 存储器装置及其操作方法
KR101857529B1 (ko) 비휘발성 메모리 장치 및 그것의 구동 방법
KR101617641B1 (ko) 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템, 및 그것의 프로그램 방법
KR101893145B1 (ko) 메모리 시스템들 및 그것들의 블록 복사 방법들
US9390001B2 (en) Nonvolatle memory device and memory system having the same, and related memory management, erase and programming methods
KR102200493B1 (ko) 3차원 메모리 장치 및 그것을 포함하는 저장 장치
KR102469680B1 (ko) 반도체 메모리 장치
KR101596826B1 (ko) 비휘발성 메모리 장치 및 그것의 바이어스 전압 인가 방법
CN107808682B (zh) 控制电路、外围电路、半导体存储器件及其操作方法
KR102128825B1 (ko) 불휘발성 메모리 장치 및 그것의 동작 방법
KR102248835B1 (ko) 불 휘발성 메모리 장치 및 그것의 동작 방법
KR20150125813A (ko) 비휘발성 메모리 장치, 그것을 포함하는 저장 장치 및 그것의 동작 및 읽기 방법들
CN107871515B (zh) 半导体存储器装置及其操作方法
KR20100107294A (ko) 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 불휘발성 메모리 장치의 프로그램 방법
CN101833996A (zh) 非易失性存储设备及其读取方法
KR102452994B1 (ko) 반도체 메모리 장치 및 그 동작 방법
KR20110099570A (ko) 불휘발성 메모리 장치, 그것의 프로그램 방법, 그리고 그것을 포함하는 메모리 시스템
CN113223593B (zh) 存储单元的读取电压优化方法、3d存储器的控制器及其操作方法
KR20190006327A (ko) 반도체 메모리 장치 및 이의 동작 방법
KR20120138895A (ko) 멀티-레벨 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 동작 방법
TW201409480A (zh) 半導體記憶體裝置
KR20180028312A (ko) 반도체 메모리 장치 및 그 프로그램 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant