KR20170020658A - 불휘발성 메모리 장치 및 그것의 프로그램 방법 및 프로그램 검증 방법 - Google Patents

불휘발성 메모리 장치 및 그것의 프로그램 방법 및 프로그램 검증 방법 Download PDF

Info

Publication number
KR20170020658A
KR20170020658A KR1020150114801A KR20150114801A KR20170020658A KR 20170020658 A KR20170020658 A KR 20170020658A KR 1020150114801 A KR1020150114801 A KR 1020150114801A KR 20150114801 A KR20150114801 A KR 20150114801A KR 20170020658 A KR20170020658 A KR 20170020658A
Authority
KR
South Korea
Prior art keywords
fail
program
reference value
value
fail bit
Prior art date
Application number
KR1020150114801A
Other languages
English (en)
Other versions
KR102291456B1 (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 KR1020150114801A priority Critical patent/KR102291456B1/ko
Priority to US15/155,162 priority patent/US10061633B2/en
Priority to CN201610665846.6A priority patent/CN106448733B/zh
Publication of KR20170020658A publication Critical patent/KR20170020658A/ko
Priority to US16/108,408 priority patent/US10777264B2/en
Priority to US17/018,097 priority patent/US11437094B2/en
Application granted granted Critical
Publication of KR102291456B1 publication Critical patent/KR102291456B1/ko
Priority to US17/901,308 priority patent/US11756613B2/en
Priority to US18/238,212 priority patent/US20230410900A1/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/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
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • 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/08Address circuits; Decoders; Word-line control 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/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
    • 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/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

Abstract

본 발명의 실시 예에 따른 불휘발성 메모리 장치의 프로그램 검증 방법은 복수의 스테이지들 중 제1 스테이지에 대한 제1 페일 비트 카운팅 동작을 수행하여 제1 페일 비트 누적값을 생성하는 단계, 생성된 제1 페일 비트 누적값 및 제1 페일 기준값을 비교하여 프로그램 페일 여부를 판별하는 단계, 생성된 제1 페일 비트 누적값이 제1 페일 기준값보다 작은 경우, 복수의 스테이지들 중 제2 스테이지에 대한 제2 페일 비트 카운팅 동작을 수행하여 제2 페일 비트 누적값을 생성하는 단계, 및 제2 페일 기준값 및 생성된 제2 페일 비트 누적값을 비교하여 프로그램 페일 여부를 판별하는 단계를 포함한다.

Description

불휘발성 메모리 장치 및 그것의 프로그램 방법 및 프로그램 검증 방법{NONVOLATILE MEMORY DEVICE AND PROGRAM METHOD AND PROGRAM VERIFICATION METHOD THEREOF}
본 발명은 반도체 메모리에 관한 것으로 더욱 상세하게는 불휘발성 메모리 장치 및 그것의 프로그램 방법 및 프로그램 검증 방법에 관한 것이다.
반도체 메모리(semiconductor memory)는 실리콘(Si, silicon), 게르마늄(Ge, Germanium), 비화 갈륨(GaAs, gallium arsenide), 인화 인듐(InP, indium phospide) 등과 같은 반도체를 이용하여 구현되는 기억 장치이다. 반도체 메모리 장치는 크게 휘발성 메모리 장치(Volatile Memory Device) 및 불휘발성 메모리 장치(Nonvolatile Memory Device)로 구분된다.
특히, 불휘발성 메모리 장치의 일종인 플래시 메모리 장치는 빠른 동작 속도, 저전력, 저소음, 고용량 등의 이점으로 인해 다양한 분야에서 사용된다. 일반적인 플래시 메모리 장치는 증가형 스텝 펄스 프로그램(ISPP; Incremental Step Pulse Programming) 방식을 사용하여 데이터를 프로그램한다. ISPP 방식은 복수의 프로그램 루프들을 수행함으로써 데이터를 프로그램하는 방식이다. 복수의 프로그램 루프들 각각은 프로그램 펄스를 인가하는 프로그램 단계 및 프로그램된 메모리 셀들의 상태를 검증하는 검증 단계를 포함한다.
검증 단계에서, 검증 읽기 결과를 기반으로 페일 비트(즉, 목표 프로그램 상태로 프로그램되지 않은 메모리 셀들)를 카운팅함으로써 프로그램 패스 또는 페일 여부가 판별되고, 패스 또는 페일 여부에 따라 다음 프로그램 루프가 수행될 수 있다. 일반적으로, 프로그램 단계 또는 검증 읽기 동작의 동작 시간보다 페일 비트 카운팅 동작의 동작 시간이 길다. 즉, 카운팅 동작에 의한 지연으로 인하여 다음 프로그램 루프의 수행이 지연될 수 있고, 이는 불휘발성 메모리 장치의 전체적인 프로그램 속도 저하를 일으킨다.
본 발명의 목적은 페일 비트 카운팅 동작으로 인한 오버헤드를 감소시킴으로써 향상된 성능을 갖는 불휘발성 메모리 장치 및 그것의 프로그램 방법 및 프로그램 검증 방법을 제공하는데 있다.
본 발명의 일 실시 예에 따른 불휘발성 메모리 장치의 프로그램 검증 방법은 복수의 스테이지들 중 제1 스테이지에 대한 제1 페일 비트 카운팅 동작을 수행하여 제1 페일 비트 누적값을 생성하는 단계, 상기 생성된 제1 페일 비트 누적값 및 제1 페일 기준값을 비교하여 프로그램 페일 여부를 판별하는 단계, 상기 생성된 제1 페일 비트 누적값이 상기 제1 페일 기준값보다 작은 경우, 상기 복수의 스테이지들 중 제2 스테이지에 대한 제2 페일 비트 카운팅 동작을 수행하여 제2 페일 비트 누적값을 생성하는 단계, 및 제2 페일 기준값 및 상기 생성된 제2 페일 비트 누적값을 비교하여 프로그램 페일 여부를 판별하는 단계를 포함하되, 복수의 메모리 셀들에 대한 검증 읽기 결과가 상기 복수의 스테이지들 각각으로 분할되고, 상기 제2 페일 기준값은 상기 제1 페일 기준값과 다르다.
본 발명의 일 실시 예에 따른 불휘발성 메모리 장치의 프로그램 검증 방법은 제1 페일 기준값을 기반으로 복수의 스테이지들 중 적어도 하나의 스테이지에 대한 페일 비트 카운팅 동작을 수행하여 프로그램 페일 여부를 판별하는 단계, 및 상기 제1 페일 기준값과 다른 제2 페일 기준값을 기반으로 나머지 스테이지들 중 적어도 하나의 스테이지에 대한 페일 비트 카운팅 동작을 수행하여 프로그램 페일 여부를 판별하는 단계를 포함하되, 복수의 메모리 셀들에 대한 검증 읽기 결과가 상기 복수의 스테이지들 각각으로 분할된다.
본 발명의 일 실시 예에 따른 불휘발성 메모리 장치의 프로그램 방법은 선택된 워드라인으로 프로그램 전압을 인가하는 단계, 상기 선택된 워드라인으로 적어도 하나의 검증 전압을 인가하여 상기 선택된 워드라인과 연결된 메모리 셀들에 대한 검증 읽기 동작을 수행하는 단계, 및 상기 검증 읽기 동작의 결과를 기반으로 프로그램 패스 또는 페일 여부를 판별하는 단계를 포함하고, 상기 프로그램 패스 또는 페일 여부를 판별하는 단계는 상기 검증 읽기 동작의 결과를 기반으로 상기 메모리 셀들에 대한 페일 비트 카운팅 동작을 수행하여 페일 비트 페일 비트 누적값을 생성하고, 상기 페일 비트 페일 비트 누적값 및 페일 비트 기준값을 비교하여 프로그램 패스 또는 페일 여부를 판별하는 단계를 포함하고, 상기 페일 비트 카운팅 동작이 수행되는 동안 상기 페일 기준값이 가변된다.
본 발명의 일 실시 예에 따른 불휘발성 메모리 장치의 프로그램 검증 방법은 복수의 스테이지들 중 제1 스테이지에 대한 제1 페일 비트 카운팅 동작을 수행하여 제1 페일 비트 누적값을 생성하는 단계, 상기 생성된 제1 페일 비트 누적값 및 제1 패스 기준값을 비교하여 프로그램 패스 여부를 판별하는 단계, 상기 생성된 제1 페일 비트 누적값이 상기 제1 패스 기준값보다 큰 경우, 상기 복수의 스테이지들 중 제2 스테이지에 대한 제2 페일 비트 카운팅 동작을 수행하여 제2 페일 비트 누적값을 생성하는 단계, 및 제2 패스 기준값 및 상기 생성된 제2 페일 비트 누적값을 비교하여 프로그램 패스 여부를 판별하는 단계를 포함하되, 복수의 메모리 셀들에 대한 검증 읽기 결과가 상기 복수의 스테이지들 각각으로 분할되고, 상기 제2 패스 기준값은 상기 제1 패스 기준값과 다르다.
본 발명의 일 실시 예에 따른 불휘발성 메모리 장치는 복수의 워드라인들과 연결된 복수의 메모리 셀들을 포함하는 메모리 셀 어레이, 비트 라인들을 통해 상기 메모리 셀 어레이와 연결되고, 검증 읽기 시에 검증 읽기 결과를 저장하고, 상기 검증 읽기 결과를 복수의 스테이지들로 분할하고, 상기 검증 읽기 결과를 상기 분할된 스테이지 단위로 순차적으로 출력하도록 구성되는 페이지 버퍼 회로, 및 상기 페이지 버퍼 회로로부터 출력되는 복수의 스테이지들 각각에 대한 페일 비트 카운팅 동작을 수행하여 프로그램 패스 또는 페일 여부를 판별하는 패스 페일 체커를 포함하되, 상기 패스 페일 체커는 상기 복수의 스테이지들 각각에 대한 상기 페일 비트 카운팅 동작을 순차적으로 수행하여 복수의 페일 비트 누적값들을 생성하고, 상기 복수의 페일 비트 누적값들 및 페일 비트 기준값을 비교하여 프로그램 패스 페일 여부를 판별하되, 상기 페일 비트 카운팅 동작이 수행되는 동안 상기 페일 비트 기준값을 가변한다.
본 발명에 따르면, 페일 비트 카운팅 동작으로 인한 오버헤드가 감소되므로, 향상된 성능을 갖는 불휘발성 메모리 장치 및 그것의 프로그램 방법 및 프로그램 검증 방법이 제공된다.
도 1은 본 발명의 실시 예에 따른 불휘발성 메모리 시스템을 보여주는 블록도이다.
도 2는 도 1의 불휘발성 메모리 장치를 상세하게 보여주는 블록도이다.
도 3은 도 2의 메모리 셀 어레이를 예시적으로 보여주는 회로도이다.
도 4는 도 3의 메모리 셀 어레이의 메모리 셀들의 문턱 전압 산포도 및 메모리 셀들에 대한 프로그램 동작을 설명하기 위한 도면들이다.
도 5는 도 2의 불휘발성 메모리 장치를 더욱 상세하게 보여주는 블로도이다.
도 6은 도 5의 P/F 체커의 동작을 보여주는 순서도이다.
도 7은 도 6의 동작 방법을 상세하게 설명하기 위한 도면이다.
도 8은 도 7의 복수의 프로그램 루프들 중 어느 하나의 프로그램 루프를 상세하게 보여주는 도면이다.
도 9는 도 8의 동작에 따른 예시적인 실시 예를 보여주는 도면이다.
도 10은 도 5의 P/F 체커의 다른 실시 예를 설명하기 위한 타이밍도이다.
도 11은 불휘발성 메모리 장치의 또 다른 실시 예를 설명하기 위한 타이밍도이다.
도 12는 도 5의 기준값 관리부를 예시적으로 보여주는 블록도이다.
도 13은 본 발명의 또 다른 실시 예에 따른 불휘발성 메모리 장치의 일부를 보여주는 블록도이다.
도 14는 도 13의 불휘발성 메모리 장치의 동작을 보여주는 순서도이다.
도 15는 본 발명의 또 다른 실시 예에 따른 불휘발성 메모리 장치를 보여주는 블록도이다.
도 16은 도 15의 P/F 체커의 동작을 보여주는 순서도이다.
도 17은 도 16의 동작 방법을 설명하기 위한 도면이다.
도 18은 도 14의 P/F 체커의 다른 동작을 보여주는 순서도이다.
도 19는 도 18의 동작 방법을 설명하기 위한 타이밍도이다.
도 20은 본 발명의 실시 예에 따른 불휘발성 메모리 장치의 프로그램 동작을 설명하기 위한 도면이다.
도 21은 본 발명에 따른 불휘발성 메모리 장치의 메모리 셀 어레이에 포함된 메모리 블록의 예시적인 회로도이다.
도 22는 본 발명의 실시 예들에 따른 저장 장치가 적용된 메모리 카드 시스템을 보여주는 블록도이다.
도 23은 본 발명에 따른 저장 장치가 적용된 SSD(Solid State Drive) 시스템을 예시적으로 보여주는 블록도이다.
도 24는 본 발명의 실시 예에 따른 저장 장치를 포함하는 전자 시스템의 구성 및 본 발명의 실시 예에 따라 작동하는 인터페이스들을 나타낸 블록도이다.
이하에서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예들을 첨부된 도면들을 참조하여 설명하기로 한다.
본 발명의 실시 예에 따른 불휘발성 메모리 장치는 복수의 프로그램 루프들을 수행함으로써 메모리 셀들을 프로그램한다. 복수의 프로그램 루프들 각각은 프로그램 단계 및 검증 단계를 포함하고, 검증 단계는 검증 읽기 동작 및 페일 비트 카운팅 동작을 포함한다.
본 발명에 따른 불휘발성 메모리 장치는 페일 비트 카운팅 동작에서 복수의 스테이지들 각각에 대한 카운팅 동작을 수행하여 카운팅 값 및 누적값을 생성하고, 누적값 및 대응하는 기준값을 비교함으로써 카운팅된 값과 기준값을 비교함으로써 프로그램 패스 또는 페일 여부를 판별한다. 불휘발성 메모리 장치는 프로그램 패스 또는 페일 여부에 따라 다음 프로그램 루프를 수행할 수 있다. 이때, 본 발명에 따른 불휘발성 메모리 장치는 각 스테이지에 대한 페일 비트 카운팅 동작에서 대응하는 기준값을 가변함으로써, 모든 스테이지들에 대한 페일 비트 카운팅 동작이 수행되기 이전에 프로그램 패스 또는 페일 여부를 미리 판별할 수 있다. 프로그램 패스 또는 페일 여부가 판별된 이후에, 나머지 스테이지들에 대한 카운팅 동작은 생략된다. 따라서, 페일 비트 카운팅 동작으로 인한 오버헤드가 감소되기 때문에, 불휘발성 메모리 장치의 프로그램 성능이 향상된다.
도 1은 본 발명의 실시 예에 따른 불휘발성 메모리 시스템을 보여주는 블록도이다. 도 1을 참조하면, 불휘발성 메모리 시스템(100)은 메모리 컨트롤러(110) 및 불휘발성 메모리 장치(120)를 포함한다. 예시적으로, 불휘발성 메모리 시스템(100)은 하나의 칩, 하나의 반도체 패키지, 또는 하나의 모듈로 구현될 수 있다. 또는 불휘발성 메모리 시스템(100)의 메모리 컨트롤러(110) 및 불휘발성 메모리 장치(120) 각각은 하나의 칩, 하나의 반도체 패키지, 또는 하나의 모듈로 구현될 수 있다. 불휘발성 메모리 시스템(100)은 외부 장치(예를 들어, 호스트, 애플리케이션 프로세서 등)와 연결되고, 외부 장치의 저장 매체로서 사용될 수 있다. 불휘발성 메모리 시스템(100)은 메모리 카드, 메모리 스틱, SSD(Solid State Drive)와 같은 대용량 저장 매체일 수 있다.
메모리 컨트롤러(110)는 외부 장치의 제어에 따라 불휘발성 메모리 장치(120)를 제어할 수 있다. 메모리 컨트롤러(110)는 불휘발성 메모리 장치(120)로 어드레스(ADDR) 및 커맨드(CMD)를 전송하거나 또는 불휘발성 메모리 장치(120)와 데이터(DATA) 및 제어 신호(CTRL)를 주고 받을 수 있다. 예를 들어, 메모리 컨트롤러(110)는 불휘발성 메모리 장치(120)에 데이터(DATA)를 저장하기 위하여 어드레스(ADDR), 커맨드(CMD), 데이터(DATA), 및 제어 신호(CTRL)를 불휘발성 메모리 장치(120)로 전송할 수 있다. 메모리 컨트롤러(110)는 불휘발성 메모리 장치(120)에 저장된 데이터(DATA)를 읽기 위하여, 어드레스(ADDR), 커맨드(CMD), 및 제어 신호(CTRL)를 불휘발성 메모리 장치(120)로 전송할 수 있다.
예시적으로, 메모리 컨트롤러(110)는 불휘발성 메모리 시스템(100)의 신뢰도 또는 수명을 향상시키기 위하여, 어드레스(ADDR) 및 커맨드(CMD)를 불휘발성 메모리 장치(120)로 전송하고, 불휘발성 메모리 장치(120)와 데이터(DATA) 및 제어 신호(CTRL)를 주고 받을 수 있다.
메모리 컨트롤러(110)는 에러 정정 회로(111)를 포함할 수 있다. 에러 정정 회로(111)는 불휘발성 메모리 장치(120)로부터 읽은 데이터(DATA)의 에러를 검출 및 정정할 수 있다. 예를 들어, 에러 정정 회로(111)는 불휘발성 메모리 장치(120)에 저장될 제1 데이터에 대한 에러 정정 코드를 생성할 수 있다. 에러 정정 회로(111)는 불휘발성 메모리 장치(120)로부터 제1 데이터를 읽은 후에, 제1 데이터 대한 에러 정정 코드를 기반으로 제1 데이터의 에러를 검출 및 정정할 수 있다. 예시적으로, 에러 정정 회로(111)는 에러 정정 능력을 갖는다. 즉, 에러 정정 회로(111)는 에러 정정 능력 범위 내의 에러 비트를 검출 및 정정할 수 있다.
불휘발성 메모리 장치(120)는 메모리 컨트롤러(110)의 제어에 따라 동작할 수 있다. 예를 들어, 불휘발성 메모리 장치(120)는 메모리 컨트롤러(110)로부터 수신된 신호에 응답하여 데이터(DATA)를 저장(또는 프로그램)할 수 있다. 불휘발성 메모리 장치(120)는 메모리 컨트롤러(110)로부터 수신된 신호에 응답하여, 저장된 데이터(DATA)를 독출할 수 있다.
예시적으로, 불휘발성 메모리 장치(120)는 낸드 플래시 메모리를 포함할 수 있다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니며, 불휘발성 메모리 장치(120)는 PRAM, ReRAM, FRAM, MRAM, NOR 플래시 메모리, 또는 그것들의 조합을 포함할 수 있다.
예시적으로, 불휘발성 메모리 장치(120)는 증가형 스텝 펄스 프로그램(ISPP; Incremental Step Pulse Programming) 방식을 기반으로, 메모리 컨트롤러(110)로부터 수신된 데이터(DATA)를 저장(또는 프로그램)할 수 있다. ISPP 방식은 복수의 프로그램 루프들을 포함하고, 복수의 프로그램 루프들 각각은 선택된 워드라인으로 프로그램 전압을 인가하는 프로그램 단계 및 선택된 워드라인과 연결된 메모리 셀들을 검증하는 검증 단계를 포함한다. 복수의 프로그램 루프들 각각은 이전 프로그램 루프의 검증 단계의 검증 결과에 따라 수행될 수 있다. 예를 들어, 제1 프로그램 루프의 검증 단계의 검증 결과가 프로그램 페일을 가리키는 경우, 이 후의 제2 프로그램 루프가 수행되고, 제1 프로그램 루프의 검증 단계의 검증 결과가 프로그램 패스를 가리키는 경우, 이후의 제2 프로그램 루프가 수행되지 않을 수 있다.
예시적으로, 검증 단계는 선택된 메모리 셀들의 프로그램 상태를 독출하는 검증 읽기 동작 및 검증 읽기 동작의 결과를 기반으로 페일 비트를 카운팅하여 프로그램 패스 또는 페일 여부를 판별하는 판별 동작을 포함한다. 판별 동작에서, 페일 비트 개수가 검출되고, 페일 비트 개수 및 기준값을 비교함으로써 프로그램 패스 또는 페일 여부가 판별될 수 있다. 예시적으로, 기준값은 에러 정정 회로(111)에 의해 정정 가능한 에러 비트 개수 또는 불휘발성 메모리 장치(120)의 읽기 마진을 기반으로 결정될 수 있다.
본 발명에 따른 불휘발성 메모리 장치(120)는 프로그램 패스 또는 페일 여부를 판별하기 위한 기준값을 하나의 검증 단계의 판별 동작 중에 가변함으로써 프로그램 패스 또는 페일 여부를 미리 판별할 수 있다. 따라서, 불휘발성 메모리 장치(120)의 프로그램 속도가 향상된다. 본 발명에 따른 불휘발성 메모리 장치(120) 및 그것의 동작 방법은 이하의 도면들을 참조하여 더욱 상세하게 설명된다.
도 2는 도 1의 불휘발성 메모리 장치를 상세하게 보여주는 블록도이다. 도 1 및 도 2를 참조하면, 불휘발성 메모리 장치(120)는 메모리 셀 어레이(121), 어드레스 디코더(122), 전압 발생기(123), 제어 회로(124), 페이지 버퍼 회로(125), 입출력 회로(126), 및 패스/페일 체커(127)를 포함한다.
메모리 셀 어레이(121)는 복수의 메모리 셀들을 포함한다. 예를 들어, 메모리 셀 어레이(121)는 행 방향 및 열 방향을 따라 배열된 복수의 메모리 셀들을 포함한다. 복수의 메모리 셀들 각각은 하나 또는 그 이상의 비트들을 저장할 수 있다.
어드레스 디코더(122)는 워드라인들(WL), 스트링 선택 라인들(SSL), 및 접지 선택 라인들(GSL)을 통해 메모리 셀 어레이(121)와 연결된다. 어드레스 디코더(122)는 메모리 컨트롤러(110)로부터 수신된 어드레스(ADDR)를 디코딩하도록 구성된다. 어드레스 디코더(122)는 디코딩된 어드레스(ADDR)를 기반으로 복수의 워드라인들(WL) 중 적어도 하나의 워드라인을 선택하고, 선택된 워드라인의 전압을 제어할 수 있다.
전압 발생기(123)는 불휘발성 메모리 장치(120)가 동작하는데 요구되는 다양한 전압들을 생성할 수 있다. 예를 들어, 전압 발생기(123)는 복수의 프로그램 전압들, 복수의 패스 전압들, 복수의 검증 전압들, 복수의 선택 읽기 전압들, 복수의 비선택 읽기 전압들, 복수의 소거 전압들 등과 같은 다양한 전압들을 생성할 수 있다.
제어 회로(124)는 메모리 컨트롤러(110)로부터 커맨드(CMD) 및 제어 신호(CTRL)를 수신하고, 수신된 신호들에 응답하여 어드레스 디코더(122), 전압 발생기(123), 페이지 버퍼 회로(125), 입출력 회로(126), 및 패스/페일 체커(127)를 제어할 수 있다.
페이지 버퍼 회로(125)는 복수의 비트라인들(BL)을 통해 메모리 셀 어레이(121)와 연결되고, 복수의 데이터 라인들(DL)을 통해 입출력 회로(126)와 연결된다. 페이지 버퍼 회로(125)는 데이터 라인들(DL)을 통해 입출력 회로(126)로부터 수신된 데이터(DATA)가 메모리 셀 어레이(121)에 저장되도록, 제어 회로(124)의 제어에 따라 복수의 비트라인들(BL)을 제어할 수 있다. 페이지 버퍼 회로(125)는 제어 회로(124)의 제어에 따라 메모리 셀 어레이(121)에 저장된 데이터(DATA)를 읽을 수 있다.
예시적으로, 페이지 버퍼 회로(125)는 선택된 워드라인과 연결된 메모리 셀들에 대한 검증 읽기 동작의 결과를 저장할 수 있다. 페이지 버퍼 회로(125)는 검증 읽기 동작의 결과를 페이지 버퍼 신호(PBS)로서 출력할 수 있다.
예시적으로, 페이지 버퍼 회로(125)는 다단 구조(multi-stage)를 가질 수 있다. 예를 들어, 페이지 버퍼 회로(125)는 복수의 스테이지들을 포함하고, 복수의 스테이지들 각각은 복수의 페이지 버퍼들을 포함한다. 복수의 페이지 버퍼들 각각은 복수의 비트라인들(BL)과 각각 연결된다. 복수의 페이지 버퍼들 각각은 선택된 워드라인과 연결된 메모리 셀들 각각에 대한 검증 읽기 동작의 결과를 저장할 수 있다.
페이지 버퍼 회로(125)는 제어 회로(124)의 전송 신호(TF)에 응답하여 복수의 스테이지들 각각의 페이지 버퍼에 저장된 검증 읽기 동작의 결과를 페이지 버퍼 신호(PBS)로서 출력할 수 있다. 예를 들어, 페이지 버퍼 회로(125)는 제어 회로(124)의 전송 신호(TF)에 응답하여 제1 스테이지의 페이지 버퍼에 저장된 값들(즉, 검증 읽기 동작의 결과)을 페이지 버퍼 신호(PBS)로서 출력할 수 있다. 이 후에, 페이지 버퍼 회로(125)는 제어 회로(124)의 전송 신호(TF)에 응답하여 제2 스테이지의 페이지 버퍼에 저장된 값들(즉, 검증 읽기 동작의 결과)을 페이지 버퍼 신호(PBS)로서 출력할 수 있다. 즉, 페이지 버퍼 회로(125)는 1회의 검증 읽기 동작에 대하여, 제어 회로(124)의 전송 신호(TF) 또는 복수의 스테이지들에 따라 복수 회에 걸쳐 순차적으로 또는 비순차적으로 페이지 버퍼 신호(PBS)를 출력할 수 있다.
입출력 회로(126)는 데이터 라인들(DL)을 통해 페이지 버퍼 회로(125)와 연결된다. 입출력 회로(126)는 제어 회로(124)의 제어에 따라, 메모리 컨트롤러(110)로부터 수신된 데이터(DATA)를 페이지 버퍼 회로(125)로 전송할 수 있다. 입출력 회로(126)는 제어 회로(124)의 제어에 따라, 페이지 버퍼 회로(125)로부터 수신된 데이터(DATA)를 제어 신호(CTRL)에 동기하여 메모리 컨트롤러(110)로 전송할 수 있다.
패스/페일 체커(127)(이하에서, 'P/F 체커'라 칭한다.)는 페이지 버퍼 회로(125)로부터 페이지 버퍼 신호(PBS)를 수신하고, 수신된 페이지 버퍼 신호(PBS)를 기반으로 페일 비트를 카운팅할 수 있다. 예시적으로, 페일 비트는 선택된 워드라인과 연결된 메모리 셀들 중 목표 프로그램 상태(target program state)로 프로그램되지 않은 메모리 셀들의 개수를 가리킬 수 있다.
P/F 체커(127)는 카운팅된 페일 비트 및 기준값을 비교하고, 비교 결과에 따라 패스 신호(PASS) 또는 페일 신호(FAIL)를 출력할 수 있다. 예를 들어, P/F 체커(127)는 카운팅된 페일 비트가 기준값보다 큰 경우, 프로그램 페일을 가리키는 페일 신호(FAIL)를 제어 회로(124)로 전송한다. 이 경우, 제어 회로(124)는 페일 신호(FAIL)에 응답하여 이 후의 프로그램 동작 또는 다음 프로그램 루프 또는 다음 프로그램 루프의 검증 읽기 동작을 더 수행할 수 있다.
예시적으로, 앞서 설명된 바와 같이, 페이지 버퍼 회로(125)는 복수의 스테이지들을 포함하고, 복수 회에 걸쳐 복수의 스테이지들 각각에 대하여 페이지 버퍼 신호(PBS)를 출력할 수 있다. 이때, P/F 체커(127)는 복수 회에 걸쳐 수신된 페이지 버퍼 신호(PBS) 각각에 대하여 페일 비트 카운팅을 수행하고, 이를 누적하여 누적된 페일 비트 개수를 생성할 수 있다.
본 발명에 따른 P/F 체커(127)는 복수의 스테이지들 각각에 대하여 누적된 페일 비트 개수가 생성될 때마다 기준값을 변경할 수 있다. 좀 더 상세한 예로서, P/F 체커(127)는 제1 및 제2 스테이지들에 대한 페이지 버퍼 신호(PBS)를 기반으로 생성된 누적된 페일 비트 개수 및 제1 기준값을 비교함으로써 프로그램 패스 또는 페일 여부를 판별할 수 있다. P/F 체커(127)는 제1 내지 제4 스테이지들에 대한 페이지 버퍼 신호(PBS)를 기반으로 생성된 누적된 페일 비트 개수 및 제2 기준값을 비교함으로써 프로그램 패스 또는 페일 여부를 판별할 수 있다. 이때, 제2 기준값은 제1 기준값보다 작을 것이다. 즉, 카운팅된 스테이지의 개수가 작을수록 기준값은 작아질 수 있다.
예시적으로, 제1 및 제2 기준값들은 카운팅된 스테이지의 개수를 기반으로 결정될 수 있다. 즉, 카운팅된 스테이지의 개수가 작을수록 기준값을 작게 함으로써, 프로그램 페일 여부를 미리 판별할 수 있고, 이로 인하여 페일 비트 카운팅 동작에 따른 오버헤드를 감소시킬 수 있다. 예시적으로, 카운팅된 스테이지의 개수는 제어 회로(124)로부터 전송 정보(TFI)로서 제공될 수 있다. P/F 체커(127)는 제어 회로(124)로부터의 전송 정보(TFI)를 기반으로 기준값을 변경할 수 있다. 예시적으로, 전송 정보(TFI)는 페이지 버퍼 회로(125)의 복수의 스테이지들 중 활성화된 스테이지의 개수에 대한 정보를 포함할 수 있다. 또는 전송 정보(TFI)는 전송 신호(TF)를 포함할 수 있다.
도 3은 도 2의 메모리 셀 어레이를 예시적으로 보여주는 회로도이다. 도 4는 도 3의 메모리 셀 어레이의 메모리 셀들의 문턱 전압 산포도 및 메모리 셀들에 대한 프로그램 동작을 설명하기 위한 도면들이다.
먼저, 도 2 및 도 3을 참조하면, 메모리 셀 어레이(121)는 복수의 셀 스트링들(STR)을 포함한다. 복수의 셀 스트링들(STR) 각각은 스트링 선택 트랜지스터(SST), 복수의 메모리 셀들(MC), 및 접지 선택 트랜지스터(GST)를 포함한다. 스트링 선택 트랜지스터(SST)는 스트링 선택 라인(SSL)과 연결된다. 복수의 메모리 셀들(MC)은 복수의 워드라인들(WL_1~WL_i)과 각각 연결된다. 접지 선택 트랜지스터(GST)는 접지 선택 라인(GSL)과 연결된다.
복수의 메모리 셀들(MC) 각각은 서로 직렬 연결된다. 스트링 선택 트랜지스터(SST)는 직렬 연결된 메모리 셀들(MC) 및 각 비트라인(예를 들어, BL_1) 사이에 제공된다. 접지 선택 트랜지스터(GST)는 직렬 연결된 메모리 셀들(MC) 및 공통 소스 라인(CSL) 사이에 제공된다.
불휘발성 메모리 장치(120)의 프로그램 동작시, 복수의 워드라인들(WL_1~WL_i) 중 어느 하나의 워드라인이 선택되고, 선택된 워드라인과 연결된 메모리 셀들이 페이지 단위 또는 워드라인 단위로 프로그램된다.
다음으로, 도 2 내지 도 4를 참조하면, 메모리 셀 어레이(121)의 메모리 셀들(MC)은 소거 상태(E) 및 제1 내지 제3 프로그램 상태들(P1~P3) 중 어느 하나의 상태를 가질 수 있다. 예시적으로, 소거 상태(E)의 메모리 셀들은 소거 상태(E) 및 제1 내지 제3 프로그램 상태들(P1~P3) 중 어느 하나의 상태를 갖도록 프로그램될 수 있다.
앞서 설명된 바와 같이, 불휘발성 메모리 장치(120)는 ISPP 방식을 기반으로 메모리 셀들을 프로그램할 수 있다. 예를 들어, 도 4의 제2 섹션에 도시된 바와 같이, 불휘발성 메모리 장치(120)는 복수의 프로그램 루프들을 수행함으로써 메모리 셀들을 프로그램할 수 있다. 복수의 프로그램 루프들 각각은 선택된 워드라인으로 프로그램 전압(Vpgm)을 인가하는 프로그램 단계(PGM) 및 메모리 셀들의 프로그램 상태를 검증하기 위한 검증 단계(VFY)를 포함한다.
복수의 프로그램 루프들이 순차적으로 수행될 때마다 프로그램 단계(PMG)에서 선택된 워드라인으로 인가되는 프로그램 전압(Vpgm)은 소정의 레벨만큼 증가한다. 검증 단계(VFY)는 검증 읽기 동작(VFY_R) 및 판별 동작(DO; Determination Operation)을 포함한다.
검증 읽기 동작(VFY_R)은 제1 내지 제3 검증 전압들(Vvfy1~Vvfy3)을 기반으로 메모리 셀들을 읽는 동작을 가리킨다. 예를 들어, 목표 프로그램 상태가 제1 프로그램 상태(P1)인 메모리 셀들은 제1 검증 전압(Vvfy1)에 의해 읽어질 수 있다. 목표 프로그램 상태가 제1 프로그램 상태(P1)이나, 제1 프로그램 상태(P1)로 아직 프로그램되지 않은 메모리 셀은 제1 검증 전압(Vvfy1)에 의해 온-셀로 읽혀진다. 목표 프로그램 상태가 제1 프로그램 상태(P1)이고, 제1 프로그램 상태(P1)로 프로그램된 메모리 셀은 제1 검증 전압(Vvfy1)에 의해 오프-셀로 읽혀진다. 즉, 제1 검증 전압(Vvfy1)에 의해 온-셀로 읽혀진 메모리 셀들은 프로그램 페일된 메모리 셀이고, 제1 검증 전압(Vvfy1)에 의해 오프-셀로 읽혀진 메모리 셀들은 프로그램 패스된 메모리 셀일 것이다.
목표 프로그램 상태가 제2 또는 제3 프로그램 상태(P2 or P3)인 메모리 셀들 또한, 제2 또는 제3 검증 전압들(Vvfy2 or Vvfy3)에 의해 상술된 바와 유사하게 검증될 수 있다.
앞서 설명된 바와 같이, 페이지 버퍼 회로(125)는 제어 회로(124)의 전송 신호(TF)에 따라 복수 회에 걸쳐 검증 읽기 동작의 결과를 페이지 버퍼 신호(PBS)를 통해 출력할 수 있다. P/F 체커(127)는 검증 단계(VFY)의 판별 동작(DO) 동안 페이지 버퍼 신호(PBS)를 기반으로 페일 비트를 카운팅할 수 있다.
이때, P/F 체커(127)는 복수 회에 걸쳐 수신되는 페이지 버퍼 신호(PBS) 각각에 대하여 카운팅 동작을 수행함으로써 누적된 페일 비트 개수를 생성할 수 있다. P/F 체커(127)는 복수의 기준값들 및 누적된 페일 비트 개수를 각각 비교함으로써 프로그램 패스 또는 페일 여부를 판별할 수 있다.
예를 들어, 판별 동작(DO) 동안 P/F 체커(127)는 페이지 버퍼(125)의 제1 스테이지에 대응하는 페이지 버퍼 신호(PBS)를 수신하고, 수신된 페이지 버퍼 신호(PBS)를 기반으로 제1 페일 비트 개수를 카운팅할 수 있다. P/F 체커(127)는 카운팅된 제1 페일 비트 개수 및 제1 기준값을 비교함으로써 프로그램 패스 또는 페일 여부를 판별할 수 있다. 제1 페일 비트 개수가 제1 기준값보다 작은 경우, P/F 체커(127)는 페이지 버퍼(125)의 제2 스테이지에 대응하는 페이지 버퍼 신호(PBS)를 수신하고, 수신된 페이지 버퍼 신호를 기반으로 제2 페일 비트 개수를 카운팅할 수 있다. P/F 체커(127)는 제1 및 제2 페일 비트 개수들의 누적 개수 및 제2 기준값을 비교함으로써 프로그램 패스 또는 페일 여부를 판별할 수 있다.
예시적으로, 판별 동작(DO) 도중에 프로그램 페일로 판별된 경우, P/F 체커(127)는 페일 신호(FAIL)를 제어 회로(124)로 전송하고, 판별 동작(DO) 또는 나머지 스테이지들에 대한 카운팅 동작이 종료된다. 제어 회로(124)는 페일 신호(FAIL)에 응답하여 다음 프로그램 루프 또는 다음 프로그램 루프의 검증 단계(VFY)를 수행할 수 있다.
예시적으로, 판별 동작(DO)의 결과에 따라 이 후 프로그램 루프의 수행 여부가 결정될 수 있다. 예를 들어, 제1 프로그램 루프의 제1 검증 단계의 제1 판별 동작이 완료된 이 후에, 제2 프로그램 루프의 제2 프로그램 단계의 수행 여부가 결정될 수 있다.
예시적으로, 판별 동작(DO)은 다음 프로그램 루프의 프로그램 단계와 함께 수행될 수 있다. 예를 들어, 제1 프로그램 루프의 제1 검증 단계의 제1 판별 동작(DO)은 제2 프로그램 루프의 제2 프로그램 단계와 함께 수행될 수 있다.
도 5는 도 2의 불휘발성 메모리 장치를 더욱 상세하게 보여주는 블로도이다. 예시적으로, 도 5를 참조하여, 본 발명에 따른 P/F 체커(127) 및 그것의 동작 방법이 상세하게 설명된다.
간결한 설명을 위하여, 본 발명에 따른 P/F 체커(127)를 설명하는데 불필요한 구성 요소들은 생략된다. 또한, 도 5에 도시된 기능 블록들은 예시적인 것이며, 본 발명의 범위가 이에 한정되는 것은 아니다.
또한, 이하에서 불휘발성 메모리 장치(120)는 복수의 프로그램 루프들을 수행하여 선택된 메모리 셀들을 프로그램하고, 복수의 프로그램 루프들 각각은 프로그램 전압을 인가하는 프로그램 단계 및 선택된 메모리 셀들의 프로그램 상태를 검증하는 검증 단계를 포함하고, 검증 단계는 적어도 하나의 검증 전압을 사용하여 선택된 메모리 셀들을 읽는 검증 읽기 동작 및 검증 읽기 동작의 결과를 기반으로 프로그램 패스 또는 페일을 판별하는 판별 단계를 포함하는 것으로 가정한다.
또한, 이하에서 기재된 '카운팅 동작'은 페이지 버퍼 회로(124)로부터의 하나의 페이지 버퍼 신호 세트(PBS_s)를 기반으로 페일 비트를 카운팅하는 동작을 가리킨다. 즉, 1회의 판별 동작(DO) 동안 P/F 체커(127)는 페이지 버퍼 회로(124)로부터 복수 회에 걸쳐 페이지 버퍼 신호 세트들(PBS_s)을 수신하고, 복수 회의 카운팅 동작을 수행한다.
또한, 이하에서 기재된 '특정 스테이지에 대한 카운팅 동작'은 특정 스테이지에 대응하는 페이지 버퍼 신호 세트를 기반으로 특정 스테이지에 포함된 페이지 버퍼들과 연결된 메모리 셀들 중 프로그램 완료되지 않은 메모리 셀들의 개수(즉, 페일 비트)를 카운팅하여 카운팅 값을 생성하는 동작인 것으로 가정한다.
또한, 이하에서 기재된 '카운팅 값(CV; Counted Value)'은 하나의 스테이지(예를 들어, 제1 스테이지(STG_1))에 포함된 페이지 버퍼들과 연결되거나 혹은 대응되는 메모리 셀들 중 프로그램 완료되지 않은 메모리 셀들의 개수 또는 하나의 스테이지(예를 들어, 제1 스테이지(STG_1))에 포함된 페이지 버퍼들과 연결되거나 혹은 대응되는 메모리 셀들 중에서 특정 목표 프로그램 상태를 갖는 메모리 셀들 중 프로그램 완료되지 않은 메모리 셀들의 개수를 가리키는 것으로 가정한다. 다시 말해서, '카운팅 값(CV)'은 특정 스테이지에 대한 페일 비트를 가리키는 것으로 가정한다.
또한, 이하에서 기재된 '누적값(AV; Accumulated Value)'은 하나의 프로그램 루프의 검증 단계의 카운팅 동작에서, 누적된 카운팅 값을 가리키는 것으로 가정한다. 다시 말해서, P/F 체커(127)가 제1 내지 제3 스테이지들(STG_1~STG_3) 각각에 대한 카운팅 동작을 순차적으로 수행하여 제1 내지 제3 카운팅 값들(CV_1~CV_3)을 생성한 경우, 제1 누적값(AV_1)은 제1 카운팅 값(CV_1)이고, 제2 누적값(AV_2)은 제1 및 제2 카운팅 값들(CV_1, CV_2)의 합이고, 제3 누적값(AV_3)은 제1 내지 제3 카운팅 값들(CV_1~CV_3)의 합일 것이다.
상술된 한정 사항들은 본 발명의 기술적 사상을 용이하게 설명하기 위한 예시일뿐, 본 발명의 범위가 이에 한정되는 것은 아니다.
도 5를 참조하면, 페이지 버퍼 회로(125)는 복수의 스테이지들(STG_1~STG_k)을 포함한다. 복수의 스테이지들(STG_1~STG_k) 각각은 복수의 페이지 버퍼들(PB_1~BL_k, PB_k+1~PB_2k, PB_p+1~PB_ak)을 포함하도록 구성된다. 복수의 페이지 버퍼들(PB_1~BL_k, PB_k+1~PB_2k, PB_p+1~PB_ak) 각각은 복수의 비트라인들(BL_1~BL_k, BL_k+1~BL_2k, BL_p+1~BL_ak) 각각과 연결된다.
예시적으로, 복수의 스테이지들(STG_1~STG_k) 각각은 서로 동일한 개수의 페이지 버퍼들을 포함할 수 있다. 복수의 스테이지들(STG_1~STG_k)의 페이지 버퍼들(PB)은 서로 연결될 수 있다. 예를 들어, 복수의 스테이지들(STG_1~STG_k) 각각에서, 하나의 페이지 버퍼들(예를 들어, PB_1~PB_k)은 와이어드-오아(Wired-OR) 구조로 연결되고, 각각은 전송 신호(TF_1~TF_k)에 응답하여 제1 페이지 버퍼 신호(PBS_1)를 출력할 수 있다. 마찬가지로, 복수의 스테이지들(STG_1~STG_k) 각각에서, 하나의 페이지 버퍼들(예를 들어, PB_k+1~PB_2k)은 와이어드-오아(Wired-OR) 구조로 연결되고, 각각은 전송 신호(TF_1~TF_k)에 응답하여 제2 페이지 버퍼 신호(PBS_2)를 출력할 수 있다.
복수의 페이지 버퍼들(PB_1~BL_k, PB_k+1~PB_2k, PB_p+1~PB_ak) 각각은 선택된 워드라인과 연결된 메모리 셀들 각각에 대한 검증 읽기 동작의 결과를 저장할 수 있다. 예를 들어, 선택된 워드라인과 연결된 메모리 셀들 중 제1 비트라인(BL_1)과 직접적 또는 간접적으로 연결된 메모리 셀에 대한 검증 읽기 동작의 결과가 페일인 경우, 제1 비트라인(BL_1)과 연결된 페이지 버퍼(PB_1)는 로직 로우의 논리 값을 저장할 수 있다. 선택된 워드라인과 연결된 메모리 셀들 중 제2 비트라인(BL_2)과 직접적 또는 간접적으로 연결된 메모리 셀에 대한 검증 읽기 동작의 결과가 패스인 경우, 제2 비트라인(BL_2)과 연결된 페이지 버퍼(PB_2)는 로직 하이의 논리 값을 저장할 수 있다.
페이지 버퍼 회로(125)는 제어 회로(124)의 전송 신호(TF)에 응답하여 복수의 페이지 버퍼들(PB)에 저장된 값을 페이지 버퍼 신호들(PBS_1~PBS_a)로서 출력할 수 있다. 예를 들어, 제어 회로(125)는 제1 내지 제k 전송 신호들(TF_1~TF_k)을 순차적으로 또는 비순차적으로 페이지 버퍼 회로(125)로 전송할 수 있다. 페이지 버퍼 회로(125)는 수신된 제1 내지 제k 전송 신호들(TF_1~TF_k)에 응답하여 제1 내지 제k 스테이지들(STG_1~STG_k)을 각각 활성화하여 페이지 버퍼 신호들(PBS_1~PBS_a)을 출력할 수 있다.
좀 더 상세한 예로서, 페이지 버퍼 회로(125)는 제어 회로(124)로부터의 제1 전송 신호(TF_1)에 응답하여 제1 스테이지(STG_1)의 페이지 버퍼들(PB_1, PB_k+1,…PB_p+1)에 저장된 값을 페이지 버퍼 신호들(PBS_1~PBS_a)로서 출력할 수 있다. 페이지 버퍼 회로(125)는 제어 회로(124)로부터의 제1 전송 신호(TF_1)에 응답하여 제1 스테이지(STG_1)의 페이지 버퍼들(PB_1, PB_k+1,…PB_p+1)에 저장된 값을 페이지 버퍼 신호들(PBS_1~PBS_a)로서 출력할 수 있다. 즉, 1회의 프로그램 루프의 검증 단계(VFY)의 판별 동작(DO)에서, 페이지 버퍼 회로(125)는 제어 회로(124)의 전송 신호들(TF_1~TF_k)에 따라 복수 회에 걸쳐 페이지 버퍼 신호들(PBS_1~PBS_a)을 출력할 수 있다.
이때, 복수 회의 페이지 버퍼 신호들은 복수의 스테이지들(STG_1~STG_k) 각각과 대응될 수 있다. 간결한 설명을 위하여, 제1 내지 제k 스테이지들(STG_1~STG_k) 각각과 대응되는 페이지 버퍼 신호들은 제1 내지 제k 페이지 버퍼 신호 세트(PBS_s1~PBS_sk)라 칭한다.
즉, 페이지 버퍼 회로(124)는 제어 회로(124)의 제1 전송 신호(TF_1)에 응답하여 제1 스테이지(STG_1)에 페이지 버퍼들(PB)에 저장된 값을 제1 페이지 버퍼 신호 세트(PBS_s1)으로 출력하고, 제2 전송 신호(TF_2)에 응답하여 제2 스테이지(STG_2)에 페이지 버퍼들(PB)에 저장된 값을 제2 페이지 버퍼 신호 세트(PBS_s2)으로 출력할 것이다.
간결한 설명을 위하여, 제어 회로(124)는 제1 내지 제k 스테이지들(STG_1~STG_k)의 제1 내지 제k 페이지 버퍼 신호 세트들(PBS_s1~PBS_sk)이 순차적으로 출력되도록 제1 내지 제k 전송 신호들(TF_1~TF_k)을 출력하는 것으로 가정한다. 그러나 제어 회로(124)로부터 출력되는 제1 내지 제k 전송 신호들(TF_1, TF_k)의 순서가 도면 또는 상세한 설명에 기재된 내용에 국한되는 것은 아니다. 제어 회로(124)는 1 내지 제k 스테이지들(STG_1~STG_k)의 제1 내지 제k 페이지 버퍼 신호 세트들(PBS_s1~PBS_sk)이 비순차적으로 출력되도록 제1 내지 제k 전송 신호들(TF_1~TF_k)을 제어할 수 있다.
P/F 체커(126)는 페이지 버퍼 회로(125)로부터 복수의 페이지 버퍼 신호들(PBS_1~PBS_a)을 수신할 수 있다. P/F 체커(127)는 제어 회로(124)로부터 제어 신호(CS; control signal) 및 전송 정보(TFI; transmission information)를 수신할 수 있다. P/F 체커(126)는 수신된 신호들을 기반으로 프로그램 패스 또는 페일 여부를 판별하여, 패스 신호(PASS) 또는 페일 신호(FAIL)를 제어 회로(124)로 제공할 수 있다. 예시적으로, 전송 정보(TFI)는 전송 신호들(TF_1~TF_k)을 포함할 수 있다.
P/F 체커(126)는 카운팅부(127a), 누적부(127b), 기준값 관리부(127c), 및 비교부(127d)를 포함할 수 있다. 카운팅부(127a)는 제어 회로(124)의 제어 신호(CS)에 응답하여 페이지 버퍼 회로(125)로부터 제공되는 페이지 버퍼 신호들(PBS_1~PBS_a)을 기반으로 페일 비트를 카운팅할 수 있다.
예를 들어, 페이지 버퍼 회로(125)는 제1 전송 신호(TF_1)에 응답하여 제1 페이지 버퍼 신호 세트(PBS_s1)를 출력할 수 있다. P/F 체커(127)의 카운팅부(127a)는 제1 페이지 버퍼 신호 세트(PBS_s1)의 복수의 페이지 버퍼 신호들(PBS_1~PBS_a)을 기반으로 페일 비트를 카운팅하여 제1 카운팅 값(CV_1)을 생성할 수 있다.
마찬가지로, 페이지 버퍼 회로(125)는 제2 전송 신호(TF_2)에 응답하여 제2 페이지 버퍼 신호 세트(PBS_s2)를 출력할 수 있다. P/F 체커(127)의 카운팅부(127a)는 제2 페이지 버퍼 신호 세트(PBS_s2)의 복수의 페이지 버퍼 신호들(PBS_1~PBS_a)을 기반으로 페일 비트를 카운팅하여 제2 카운팅 값(CV_2)을 생성할 수 있다. 카운팅부(127a)는 복수의 페이지 버퍼 신호 세트들(PBS_s1~PBS_sk) 각각을 기반으로 복수의 카운팅 값들(CV_n; n은 자연수)을 생성할 수 있다. 생성된 복수의 카운팅 값들(CV_n) 각각은 누적부(127b)로 제공된다.
누적부(127b)는 카운팅부(127a)로부터 수신된 카운팅 값들(CV_n)을 누적하여 누적값(AV_n)을 생성할 수 있다. 예를 들어, 누적부(127b)는 제1 카운팅 값(CV_1)을 기반으로 제1 누적값(CV_1)을 생성할 수 있다. 이 후, 누적부(127b)는 카운팅부(127a)로부터 제2 카운팅 값(CV_2)을 수신하고, 수신된 제2 카운팅 값(CV_2) 및 제1 누적값(AV_1)을 합하여 제2 누적값(AV_2)을 생성할 수 있다. 마찬가지로, 누적부(127b)는 카운팅부(127a)로부터 수신된 카운팅 값들(CV_n)을 누적하여 누적값(AV_n)을 생성할 수 있다.
기준값 관리부(127c)는 제어 회로(124)로부터의 전송 정보(TFI)를 기반으로 복수의 기준값들(RV_n)을 생성할 수 있다. 예시적으로, 전송 정보(TFI)는 1회의 프로그램 루프의 검증 단계(VFY)의 판별 동작(DO)에서 활성화된 스테이지들의 개수에 대한 정보를 포함할 수 있다. 예를 들어, 판별 동작(DO) 동안, 제1 스테이지(STG_1)가 활성화되어 제1 페이지 버퍼 신호 세트(PBS_s1)가 출력된 경우, 기준값 관리부(127c)는 제1 기준값(RV_1)을 출력할 수 있고, 제1 내지 제4 스테이지들(STG_1~STG_4)이 활성화되어 제1 내지 제4 페이지 버퍼 신호 세트들(PBS_s1~PBS_s4)이 출력된 경우, 기준값 관리부(127c)는 제4 기준값(RV_4)을 출력할 수 있다. 즉, 기준값 관리부(127c)는 활성화된 스테이지 개수, 또는 생성된 페이지 버퍼 신호 세트의 개수에 따라 서로 다른 기준값을 생성할 수 있다.
예시적으로, 기준값 관리부(127c)는 에러 정정 회로(111, 도 1 참조)의 에러 정정 능력, 또는 읽기 마진, 또는 셀당 저장되는 비트의 수, 또는 목표 프로그램 상태에 의해 미리 결정된 대표 기준값을 포함할 수 있다. 전송 정보(TFI)를 기반으로 생성된 복수의 기준값들(RV_n) 각각은 대표 기준값을 기반으로 결정될 수 있다. 예시적으로, 복수의 기준값들(RV_n)은 대표 기준값에 비례하는 값일 수 있다.
비교부(127d)는 누적부(127b)로부터 누적값(AV_n)을 수신하고, 기준값 관리부(127c)로부터 기준값(RV_n)을 수신하고, 수신된 누적값(AV_n) 및 기준값(RV_n)을 비교하여 패스 신호(PASS) 또는 페일 신호(FAIL)를 출력할 수 있다.
예를 들어, 제어 회로(124)의 전송 신호(TF)에 의해 제1 내지 제4 스테이지들(STG_1~STG_4)이 활성화되어 제1 내지 제4 페이지 버퍼 신호 세트들(PBS_s1~PBS_s4) 각각이 출력된 경우, 누적부(127b)는 제1 내지 제4 카운팅 값들(CV_1~CV_4)이 누적된 제4 누적값(AV_4)을 출력하고, 기준값 관리부(127c)는 제어 회로(124)의 전송 정보(TFI)에 응답하여 제4 기준값(RV_4)을 생성할 것이다. 비교부(127d)는 제4 누적값(AV_4) 및 제4 기준값(RV_4)을 비교할 수 있다. 제4 누적값(AV_4)이 제4 기준값(RV_4)보다 크거나 같은 경우, 비교부(127d)는 프로그램 페일로 판별한다. 제4 누적값(AV_4)이 제4 기준값(RV_4)보다 작은 경우, P/F 체커(127)는 나머지 스테이지들에 대한 카운팅 동작을 계속 수행하여 프로그램 패스 또는 페일 여부를 판별할 수 있다.
프로그램 페일로 판별된 경우, 비교기(127d)는 페일 신호(FAIL)를 제어 회로(124)로 전송하고, 제어 회로(124)는 페일 신호(FAIL)에 응답하여 나머지 스테이지들에 대한 카운팅 동작이 수행되지 않도록 페이지 버퍼 회로(125) 및 P/F 체커(127)를 제어할 수 있다. 예시적으로, 제어 회로(124)는 페일 신호(FAIL)에 응답하여 다음 프로그램 루프 또는 다음 프로그램 루프의 검증 읽기 동작을 수행할 수 있다.
상술된 본 발명의 실시 예에 따르면, 프로그램 패스 또는 페일 여부를 판별하기 위한 판별 동작(DO)시, 페이지 버퍼 회로(125)의 스테이지들 중 활성화된 스테이지에 따라 기준값을 가변함으로써 모든 스테이지들에 대한 카운팅 동작이 수행되기 이전에 프로그램 페일 여부를 미리 판별할 수 있다.
예를 들어, 종래의 P/F 체커는 페이지 버퍼 회로의 모든 스테이지들에 대하여 페일 비트 카운팅 동작을 수행하여 최종 누적값을 생성하고, 생성된 최종 누적값과 대표 기준값(즉, 미리 정해진 값 또는 특정 값)을 비교함으로써 프로그램 패스 또는 페일 여부를 판별한다. 그러나 본 발명에 따른 P/F 체커(127)는 각 스테이지에 따라 기준값을 가변함으로써 프로그램 페일을 미리 판별하기 때문에, 카운팅 동작으로 인한 오버헤드를 감소시킬 수 있다.
좀 더 상세한 예로서, 페이지 버퍼 회로(127)는 제1 내지 제8 스테이지들(STG_1~STG_8)을 포함하고, 대표 기준값이 128 bit라 가정하자. 종래의 기술에 따르면, P/F 체커는 제1 내지 제8 스테이지들 전부에 대하여 페일 비트를 카운팅하여 최종 누적값을 생성하고, 생성된 최종 누적값과 대표 기준값인 128 bit를 비교함으로써 프로그램 패스 또는 페일 여부를 판별한다. 그러나 본 발명에 따른 P/F 체커(127)는 제1 내지 제8 스테이지들(STG_1~STG_8) 각각에 대한 제1 내지 제8 누적값들(AV_1~AV_8) 각각과 제1 내지 제8 기준값들(RV_1~RV_8)을 비교하여 프로그램 패스 페일 여부를 판별한다.
이때, 제1 내지 제8 기준값들(RV_1~RV_8) 각각은 대표 기준값인 128 bit에 비례할 수 있다. 예를 들어, 제1 기준값(RV_1)은 하나의 스테이지(즉, 제1 스테이지(STG_1))의 누적값에 대한 비교 대상이므로, 128bit *1/8(즉, 16 bit)일 수 있다. 마찬가지로, 제2 누적값(RV_2)은 두 개의 스테이지들(즉, 제1 및 제2 스테이지들(STG_1, STG_2))의 누적값에 대한 비교 대상이므로, 128 bit*2/8(즉, 32 bit)일 수 있다. 제2 누적값(AV_2)이 제2 기준값(RV_2, 즉, 32bit)보다 큰 경우, 프로그램 페일로 판별될 수 있다. 이 경우, 제3 내지 제8 스테이지들(STG_3~STG_8)에 대한 페일 비트 카운팅 동작이 생략될 수 있다.
상술된 바와 같이, 활성화된 스테이지 개수에 따라 기준값을 변경함으로써 프로그램 페일 여부가 미리 판별된다. 따라서, 페일 비트 카운팅으로 인한 오버헤드가 감소되므로, 불휘발성 메모리 장치의 프로그램 성능이 향상된다.
예시적으로, 도면에 상세하게 도시되지는 않았으나, 페이지 버퍼들(PB) 각각은 복수의 래치들 및 전송 트랜지스터를 포함할 수 있다. 페이지 버퍼들(PB) 각각의 복수의 래치들은 감지 래치, 데이터 래치, 캐시 래치 등으로 사용될 수 있다. 전송 트랜지스터는 제어 회로(124)로부터의 전송 신호들(TF)에 응답하여 래치들에 저장된 정보를 페이지 버퍼 신호(PBS)로서 출력하도록 구성될 수 있다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니며, 페이지 버퍼는 다양한 구조로 변형 또는 구현될 수 있다.
또한, 도면에 상세하게 도시되지는 않았으나, 카운팅부(127a), 누적부(127b), 기준값 관리부(127c), 및 비교부(127d) 각각은 아날로그 회로 또는 디지털 회로 또는 아날로그 및 디지털 조합 회로로 구현될 수 있다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니며, 본 발명의 기술적 사상으로부터의 벗어남없이 P/F 체커(126)의 구현 방식은 다양하게 변형될 수 있음은 잘 이해될 것이다.
도 6은 도 5의 P/F 체커의 동작을 보여주는 순서도이다. 예시적으로, 도 6의 순서도에 따른 동작 방법은 프로그램 패스 또는 페일을 판별하기 위한 1회의 판별 동작(DO)을 보여준다. 예시적으로, 1회의 판별 동작(DO)은 복수의 카운팅 동작들을 포함할 수 있다.
도 5 및 도 6을 참조하면, S110 단계에서, P/F 체커(127)가 리셋되고, 변수(n)가 "1"로 초기화된다. 예를 들어, 제어 회로(124)로부터의 제어 신호(CS)에 응답하여 P/F 체커(127)가 리셋되고, 변수(n)가 "1"로 초기화될 수 있다.
S120 단계에서, P/F 체커(127)는 제n 스테이지(STG_n)의 페일 비트를 카운팅하여 제n 누적값(AV_n)을 생성할 수 있다. 예를 들어, 앞서 설명된 바와 같이, 페이지 버퍼 회로(125)는 제어 회로(124)로부터의 제n 전송 신호(TF_n)에 응답하여 제n 스테이지(STG_n)를 활성화하고, 제n 스테이지(STG_n)의 페이지 버퍼들(PB)의 정보를 페이지 버퍼 신호들(PBS)(즉, 제n 페이지 버퍼 신호 세트(PBS_sn)로서 출력할 수 있다. P/F 체커(127)는 제n 페이지 버퍼 신호 세트(PBS_sn)를 기반으로 제n 스테이지(STG_n)의 페일 비트를 카운팅하여 제n 카운팅 값(CV_n)을 생성하고, 생성된 카운팅 값(CV_n)을 기반으로 제n 누적값(CV_n)을 생성할 수 있다. 예시적으로, 이전에 카운팅된 스테이지가 없는 경우, 제n 카운팅 값(CV_n)은 제n 누적값(AV_n)과 동일할 수 있다.
S130 단계에서, P/F 체커(127)는 생성된 제n 누적값(AV_n) 및 제n 기준값(RV_n)을 비교할 수 있다. 예를 들어, 앞서 설명된 바와 같이, P/F 체커(127)의 기준값 관리부(127d)는 제어 회로(124)의 전송 정보(TFI)에 따라 제n 기준값(RV_n)을 출력할 수 있다. 앞서 설명된 바와 같이, 제n 기준값(RV_n)은 카운팅 또는 활성화된 스테이지의 개수에 기반된 값일 수 있다.
제n 누적값(AV_n)이 제n 기준값(RV_n)보다 크거나 같은 경우, S140 단계에서, P/F 체커(127)는 프로그램 페일로 판별하고, 페일 신호(FAIL)를 제어 회로(124)로 전송한다. 예시적으로, 프로그램 페일로 판별된 경우, 판별 동작(DO)은 종료되고, 제어 회로(124)에 의해 다음 프로그램 루프가 수행될 수 있다.
제n 누적값(AV_n)이 제n 기준값(RV_n)보다 작은 경우, S150 단계에서, 변수(n)가 최대 값(예를 들어, k)인지 판별된다. 즉, 페이지 버퍼 회로(124)의 모든 스테이지들(STG_1~STG_k)에 대하여 카운팅 동작이 수행되었는지 판별될 수 있다. 변수(n)가 최대값이 아닌 경우, S160 단계에서, 변수(n)가 1만큼 증가되고, S120 단계의 동작이 다시 수행된다.
변수(n)가 최대값인 경우, S170 단계에서, P/F 체커(127)는 프로그램 패스로 판별하고, 패스 신호(PASS)를 제어 회로(124)로 전송한다. 예시적으로, 제어 회로(124)는 패스 신호(PASS)에 응답하여 프로그램 동작을 종료하거나 또는 다른 목표 프로그램 상태들을 위한 다음 프로그램 루프들을 수행할 수 있다.
도 7은 도 6의 동작 방법을 상세하게 설명하기 위한 도면이다. 예시적으로, 도 7은, 불휘발성 메모리 장치(120)의 프로그램 동작에서, 메모리 셀 어레이(121)(특히, 선택된 워드라인)에 인가되는 워드라인 전압 및 P/F 체커(126)의 동작을 보여주는 타이밍도이다.
도면의 간결성 및 간결한 설명을 위하여, 복수의 프로그램 루프들 각각은 프로그램 단계(PGM) 및 검증 단계(VFY)를 포함하고, 검증 단계(VFY)는 검증 읽기 동작(VFY Read) 및 판별 동작(DO)을 포함하는 것으로 가정한다. 판별 동작(DO)은 다음 프로그램 루프의 프로그램 단계(PGM)과 함께 수행되는 것으로 가정한다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니며, 판별 동작(DO)의 결과에 따라 다음 프로그램 루프의 프로그램 단계가 수행될 수 있다. 또는 판별 동작(DO)과 이후 프로그램 루프의 프로그램 단계 또는 검증 읽기 동작이 중첩되어 수행되고, 판별 동작의 결과에 따라 다음 프로그램 루프의 판별 동작이 수행될 수 있다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니다.
또한, 도면의 간결성을 위하여 검증 읽기 동작은 1회의 읽기 전압(Vvfy)이 인가되는 것으로 도시되나 본 발명의 범위가 이에 한정되는 것은 아니며, 검증 읽기 동작 동안 목표 프로그램 상태들에 따라 복수의 검증 전압들이 더 인가될 수 있다.
또한, 페이지 버퍼 회로(124)는 제1 내지 제8 스테이지들(STG_1~STG_8)을 포함하며, P/F 체커(127)는 제1 내지 제8 스테이지들(STG_1~STG_8) 각각에 대하여 카운팅 값 및 누적값을 생성하는 것으로 가정한다.
상술된 가정들 및 예시들은 본 발명의 기술적 사상을 용이하게 설명하기 위한 예시적인 것이며, 본 발명의 범위가 이에 한정되는 것은 아니다.
도 5 및 도 7을 참조하면, 앞서 설명된 바와 같이, 불휘발성 메모리 장치(120)는 ISPP 방식을 기반으로 선택된 워드라인과 연결된 메모리 셀들을 프로그램할 수 있다. 예를 들어, ISPP 방식은 도 4를 참조하여 설명되었으므로, 이에 대한 상세한 설명은 생략된다.
P/F 체커(127)는 검증 읽기 동작의 결과를 기반으로 판별 동작(DO)을 수행할 수 있다. 앞서 설명된 바와 같이, P/F 체커(127)는 페이지 버퍼 회로(125)로부터 복수의 스테이지들(STG_1~STG_k) 각각에 대한 복수의 페이지 버퍼 신호 세트들(PBS_s1~PBS_sk)를 수신하고, 수신된 신호 세트들을 기반으로 페일 비트를 카운팅할 수 있다.
좀 더 상세한 예로서, 제1 프로그램 루프(PL1)의 프로그램 단계(PGM)에서, 선택된 워드라인으로 프로그램 전압(Vpgm1)이 인가된다. 이 후, 제1 프로그램 루프(PL1)의 검증 단계에서, 검증 전압(Vvfy)이 선택된 워드라인으로 인가하여 선택된 메모리 셀들을 읽는 제1 검증 읽기 동작(VFY_R1)이 수행된다. 이 후, P/F 체커(127)는 제1 검증 읽기 동작(VFY_R1)의 결과를 기반으로 제1 판별 동작(DO1)을 수행하여 프로그램 패스 또는 페일 여부를 판별할 수 있다.
이때, P/F 체커(127)는 도 5 및 도 6을 참조하여 설명된 방법을 기반으로 프로그램 패스 또는 페일 여부를 판별할 수 있다. 즉, P/F 체커(127)는 페이지 버퍼 회로(125)의 복수의 스테이지들(STG_1~STG_k)에 대한 복수의 누적값들을 생성하고, 생성된 복수의 누적값들 각각을 서로 다른 기준값들과 비교함으로써 프로그램 패스 또는 페일 여부를 판별할 수 있다. 예시적으로, 특정 스테이지에 대한 누적값 및 대응하는 기준값의 비교 결과에 따라 프로그램 페일로 판별된 경우, 나머지 스테이지들에 대한 페일 비트 카운팅 동작이 생략된다.
도 7에 도시된 바와 같이, 제1 판별 동작(DO1)의 결과가 프로그램 페일을 가리키는 경우, 제2 프로그램 루프(PL2)의 제2 검증 읽기 동작(VFY_R2)이 수행된다. 제2 프로그램 루프(PL2)의 제2 검증 읽기 동작(VFY_R2)의 결과를 기반으로 제2 판별 동작(DO2)이 수행된다. 마찬가지로, P/F 체커(127)는 제2 판별 동작(DO2)을 수행하여 프로그램 패스 또는 페일 여부를 판별한다. 제2 판별 동작(DO2)의 결과가 프로그램 페일을 가리키는 경우, 제3 프로그램 루프(PL3)의 제3 검증 읽기 동작(VFY_R3)이 수행될 수 있다. P/F 체커(127)는 제3 프로그램 루프(PL3)의 제3 검증 읽기 동작(VFY_R3)의 결과를 기반으로 제3 판별 동작(DO3)을 수행하여 프로그램 패스 또는 페일 여부를 판별한다. 제3 판별 동작(DO3)의 결과가 프로그램 패스를 가리키는 경우, 이후 프로그램 루프가 수행되지 않을 수 있다.
예시적으로, 각 프로그램 루프들(PL1, PL2, PL3)의 제1 내지 제3 판별 동작들(DO1~DO3)의 수행 시간은 서로 다를 수 있다. 예를 들어, 제1 판별 동작(DO1)의 수행 시간은 제2 판별 동작(DO2)의 수행시간보다 짧을 수 있다. 이는 제1 판별 동작(DO1) 동안 카운팅된 스테이지의 개수가 제2 판별 동작(DO2) 동안 카운팅된 스테이지 개수보다 작음을 의미한다. 즉, P/F 체커(127)는 복수의 스테이지들(STG_1~STG_k) 각각의 누적값에 따라 서로 다른 기준값을 적용하여 프로그램 패스 페일을 판단함으로써, 프로그램 페일을 미리 판단할 수 있고, 프로그램 페일로 판단된 이후에 나머지 스테이지들에 대한 카운팅 동작을 생략할 수 있다. 따라서, 하나의 판별 동작(DO) 동안 카운팅 동작에 의한 오버헤드가 감소되므로, 불휘발성 메모리 장치의 프로그램 성능이 향상된다.
도 8은 도 7의 복수의 프로그램 루프들 중 어느 하나의 프로그램 루프를 상세하게 보여주는 도면이다. 도 8의 X축은 시간을 가리킨다. 예시적으로, 간결한 설명을 위하여, 페이지 버퍼 회로(127)는 제1 내지 제8 스테이지들(STG_1~STG_8)로 구성되고, 제어 회로(124)는 제1 내지 제8 스테이지들(STG_1~STG_8)이 순차적으로 활성화되도록 전송 신호들(TF)을 출력하는 것으로 가정한다. 이에 따라, P/F 체커(127)는 제1 내지 제8 스테이지들(STG_1~STG_8)에 대한 제1 내지 제8 카운팅 동작들(CO1~CO8)을 순차적으로 수행하여 제1 내지 제8 카운팅 값들(CV_1~CV_8) 및 제1 내지 제8 누적값들(AV_1~AV_8)을 순차적으로 생성하는 것으로 가정한다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니며, 페이지 버퍼 회로(124)는 복수의 스테이지들을 더 포함할 수 있고, 제어 회로(124)는 제1 내지 제8 스테이지들(STG_1~STG_8)이 비순차적으로 활성화되도록 전송 신호(TF)를 출력할 수 있다.
도 5, 도 7, 및 도 8을 참조하면, 불휘발성 메모리 장치(120)는 선택된 워드라인으로 프로그램 전압(Vpgm)을 인가하는 프로그램 단계(PGM)를 수행하고, 선택된 워드라인으로 검증 전압(Vvfy)을 인가하는 검증 읽기 동작(VFY_R)을 수행할 수 있다. 불휘발성 메모리 장치(120)는 검증 읽기 동작(VFY_R)의 결과를 기반으로 판별 동작(DO)을 수행할 수 있다.
예를 들어, 앞서 설명된 바와 같이, 페이지 버퍼 회로(124)는 제1 내지 제8 스테이지들(STG_1~STG_8)을 포함하고, 제어 회로(124)의 전송 신호(TF)에 응답하여 제1 내지 제8 스테이지들(STG_1~STG_8)에 대응하는 페이지 버퍼 신호 세트들(PSB_s1~PSB_s8)을 순차적으로 출력할 수 있다. P/F 체커(127)는 페이지 버퍼 회로(124)로부터 페이지 버퍼 신호 세트들(PSB_s1~PSB_s8)을 순차적으로 수신하고, 수신된 신호들을 기반으로 제1 내지 제8 카운팅 동작들(CO1~CO8)을 순차적으로 수행하여 제1 내지 제8 카운팅 값들(CV_1~CV_8) 및 제1 내지 제8 누적값들(AV_1~AV_8)을 순차적으로 생성할 수 있다. P/F 체커(127)는 생성된 제1 내지 제8 누적값들(AV_1~AV_8)을 각각 제1 내지 제8 기준값들(RV_1~RV_8)과 비교함으로써 프로그램 패스 또는 페일 여부를 판별할 수 있다.
먼저, 예를 들어, P/F 체커(127)는 제1 스테이지(STG_1)에 대한 제1 카운팅 동작(CO1)을 수행하여 제1 카운팅 값(CV_1) 및 제1 누적값(AV_1)을 생성할 수 있다. P/F 체커(127)는 생성된 제1 누적값(AV_1)과 제1 기준값(RV_1)을 비교할 수 있다. 제1 기준값(RV_1)은 제어 회로(124)로부터의 전송 정보(TFI)에 응답하여 기준값 관리부(127c)에 의해 생성될 수 있다.
이후, P/F 체커(127)는 제2 스테이지(STG_2)에 대한 제2 카운팅 동작(CO2)을 수행하여 제2 카운팅 값(CV_2) 및 제2 누적값(AV_1)을 생성할 수 있다. 제2 누적값(AV_1)은 제1 누적값(AV_1) 및 제2 카운팅 값(CV_2)의 합이다. P/F 체커(127)는 제2 누적값(AV_2) 및 제2 기준값(RV_2)을 비교할 수 있다. 제2 기준값(RV_2)은 전송 정보(TFI)에 응답하여 기준값 관리부(127c)에 의해 생성될 수 있다.
마찬가지로, P/F 체커(127)는 제3 내지 제8 스테이지들(STG_3~STG_8) 각각에 대한 제3 내지 제8 카운팅 동작들(CO3~CO8)을 순차적으로 수행하여 제3 내지 제8 카운팅 값들(CV_3~CV_8) 및 제3 내지 제8 누적값들(AV_3~AV_8)을 각각 생성할 수 있다. 예시적으로, 제3 내지 제8 누적값들(AV_3~AV_8) 각각은 대응하는 카운팅 값과 이전 누적값의 합이다. P/F 체커(127)는 제3 내지 제8 누적값들(AV_3~AV_8) 및 제3 내지 제8 기준값들(RV_3~RV_8)을 각각 비교할 수 있다. 제3 내지 제8 기준값들(RV_3~RV_8)은 전송 정보(TFI)에 응답하여 기준값 관리부(127c)에 의해 생성될 수 있다.
예시적으로, P/F 체커(127)의 판별 동작(DO)이 수행되는 동안, 다음 프로그램 루프의 프로그램 단계(PGM)가 함께 수행될 수 있다. 즉, P/F 체커(127)의 판별 동작(DO)이 수행되는 동안, 선택된 워드라인으로 프로그램 전압(Vpgm)이 인가될 수 있다.
상술된 바와 같이, 본 발명에 따른 P/D 체커(127)는 하나의 프로그램 루프의 판별 동작(DO)에서, 카운팅되는 스테이지에 따라 기준값을 가변함으로써 모든 스테이지들에 대한 카운팅 동작이 완료 또는 수행되기 이전에 프로그램 페일 여부를 미리 판단할 수 있다. 예시적으로, 특정 스테이지에 대한 페일 비트 카운팅 동작에 의해 프로그램 페일로 판별된 경우, 나머지 스테이지들에 대한 페일 비트 카운팅 동작은 생략된다.
도 9는 도 8의 동작에 따른 예시적인 실시 예를 보여주는 도면이다. 도 8의 X축은 시간을 가리킨다. 간결한 설명을 위하여, 중복되는 구성 요소 및 동작들에 대한 설명은 생략된다. 도 5, 도 7, 및 도 9를 참조하면, 제0 시점(t0) 내지 제1 시점(t1)동안 P/F 체커(127)는 제1 스테이지(STG_1)에 대한 제1 카운팅 동작(CO1)을 수행하여 제1 누적값(AV_1)을 생성할 수 있다. 제1 시점(t1)에 P/F 체커(127)는 생성된 제1 누적값(AV_1)과 제1 기준값(RV_1)을 비교할 수 있다.
예시적으로, 제1 누적값(AV_1)이 제1 기준값(RV_1)보다 작을 경우, 제1 시점(t1) 내지 제2 시점(t2) 동안, P/F 체커(127)는 제2 스테이지(STG_2)에 대한 제2 카운팅 동작(CO2)을 수행하여 제2 누적값(AV_2)을 생성할 수 있다. 제2 시점(t2)에서, P/F 체커(127)는 제2 누적값(AV_2)과 제2 기준값(RV_2)을 비교할 수 있다.
예시적으로, 제2 누적값(AV_2)이 제2 기준값(RV_2)보다 작을 경우, 제2 시점(t2) 내지 제3 시점(t0) 동안, P/F 체커(127)는 제3 스테이지(STG_3)에 대한 제3 카운팅 동작(CO3)을 수행하여 제3 누적값(AV_3)을 생성할 수 있다. 제3 시점(t3)에서, P/F 체커(127)는 제3 누적값(AV_3)과 제3 기준값(RV_3)을 비교할 수 있다.
예시적으로, 제3 누적값(AV_3)이 제3 기준값(RV_3)보다 큰 경우, P/F 체커(127)는 프로그램 페일로 판별하고, 페일 신호(FAIL)를 출력한다. 제어 회로(124)는 페일 신호(FAIL)에 응답하여 나머지 스테이지들(즉, 제4 내지 제8 스테이지들(STG_4~STG_8))에 대한 제4 내지 제8 카운팅 동작들(CO3~CO8)을 생략하고, 다음 프로그램 루프의 검증 읽기 동작(VFY_R)을 수행할 수 있다.
앞서 설명된 바와 같이, 종래의 P/F 체커는 제4 시점(t4)까지 카운팅 동작을 수행하고, (즉, 제1 내지 제8 스테이지들(STG_1~STG_8)에 대한 제1 내지 제8 카운팅 동작들(CO1~CO8)을 수행하고,) 최종 누적값을 생성한 이후에, 프로그램 패스 또는 페일 여부를 판별한다. 그러나 본 발명에 따른 P/F 체커(127)는 판별 동작(DO)이 수행되는 동안 기준값을 가변하여 프로그램 패스 또는 페일 여부를 미리 판별함으로써, 카운팅 동작에 의한 오버헤드(예를 들어, 도 9의 실시 예에서, 제4 내지 제8 스테이지들(STG_4~STG_8)에 대한 제4 내지 제8 카운팅 동작들(CO4~CO8))를 감소시킬 수 있다. 따라서, 불휘발성 메모리 장치의 프로그램 성능이 향상된다.
도 10은 도 5의 P/F 체커의 다른 실시 예를 설명하기 위한 타이밍도이다. 간결한 설명을 위하여, 앞서 설명된 구성 요소 또는 중복되는 설명은 생략된다.
도 5 및 도 10을 참조하면, P/F 체커(127)는 도 1 내지 도 10을 참조하여 설명된 바와 유사하게, 제1 내지 제8 스테이지들(STG_1~STG_8) 각각에 대한 제1 내지 제8 카운팅 동작들(CO1~CO8)을 수행할 수 있다. 도 10의 실시 예는 도 9의 실시 예와 달리, 미리 정해진 스테이지에 대한 카운팅 동작을 수행한 이후에, 누적값 및 기준값을 비교할 수 있다.
예를 들어, P/F 체커(127)는 제1 및 제2 스테이지들(STG_1, STG_2)에 대한 제1 및 제2 카운팅 동작들(CO1, CO2)을 수행하여 제2 누적값(AV_2)을 생성하고, 제5 시점(t5)에서, 제2 누적값(CV_2) 및 제2 기준값(RV_2)을 비교할 수 있다. 이 후, 제3 및 제4 스테이지들(STG_3, STG_4)에 대한 제3 및 제4 카운팅 동작들(CO3, CO4)을 수행하여 제4 누적값(AV_4)을 생성하고, 제6 시점(t6)에서, 제4 누적값(AV_4) 및 제4 기준값(RV_4)을 비교할 수 있다.
예시적으로, 앞서 설명된 바와 마찬가지로, 비교 동작의 결과에 따라 프로그램 페일로 판별된 경우, P/F 체커(127)는 페일 신호(FAIL)를 출력하고, 제어 회로(124)는 페일 신호(FAIL)에 응답하여 나머지 스테이지들에 대한 카운팅 동작을 생략하고, 다음 프로그램 루프 또는 다음 프로그램 루프의 검증 읽기 동작을 수행할 수 있다.
상술된 실시 예에서, 특정 스테이지에 대한 페일 비트 카운팅 동작이 수행된 이후에, 누적값 및 기준값을 비교하는 동작이 설명되었으나, 본 발명의 범위가 이에 한정되는 것은 아니다. 예를 들어, P/F 체커(127)는 미리 정해진 개수의 스테이지들에 대한 페일 비트 카운팅 동작을 수행한 이후에, 누적값 및 대응하는 기준값을 비교할 수 있다.
도 11은 불휘발성 메모리 장치의 또 다른 실시 예를 설명하기 위한 타이밍도이다. 간결한 설명을 위하여, 앞서 설명된 구성 요소 또는 중복되는 설명은 생략된다.
도 5 및 도 11을 참조하면, P/F 체커(127)는 도 1 내지 도 10을 참조하여 설명된 바와 유사하게, 제1 내지 제8 스테이지들(STG_1~STG_8) 각각에 대한 제1 내지 제8 카운팅 동작들(CO1~CO8)을 수행할 수 있다. 도 11의 실시 예는 도 9 및 도 10의 실시 예들과 달리, 제1 내지 제8 스테이지들(STG_1~STG_8) 각각에 대한 카운팅 동작 및 비교 동작을 수행하되, 특정 스테이지에 대한 카운팅 동작 이후에, 기준값을 가변할 수 있다.
예를 들어, P/F 체커(127)는 제1 스테이지(STG_1)에 대한 제1 카운팅 동작(CO1)을 수행하여 제1 누적값(AV_1)을 생성하고, 제1 누적값(AV_1) 및 제1 기준값(RV_1)을 비교할 수 있다. 이 후, P/F 체커(127)는 제2 스테이지(STG_2)에 대한 제2 카운팅 동작을 수행하여 제2 누적값(AV_2)을 생성하고, 제2 누적값(AV_2) 및 제1 기준값(RV_1)을 비교할 수 있다. 이 후, P/F 체커(127)는 제3 스테이지(STG_3)에 대한 제3 카운팅 동작(CO3)을 수행하여 제3 누적값(AV_3)을 생성한다. 이때, P/F 체커(127)는 기준값을 제1 기준값(RV_1)에서 제3 기준값(RV_3)으로 변경할 수 있다. P/F 체커(127)는 제3 누적값(AV_3) 및 제3 기준값(RV_3)을 비교할 수 있다.
상술된 바와 유사하게, P/F 체커(127)는 제4 내지 제8 스테이지들(STG_4~STG_8) 각각에 대한 제4 내지 제8 카운팅 동작들(CO4~CO8)을 수행하여 제4 내지 제8 누적값들(AV_4~AV_8)을 생성하고, 생성된 누적값 및 대응하는 기준값을 비교할 수 있다. 이때, P/F 체커(127)는 제5 스테이지(STG_5)에 대한 제5 카운팅 동작(CO5) 이후에 제3 기준값(RV_3)을 제5 기준값(RV_5)으로 변경하고, 제8 스테이지(STG_8)에 대한 제8 카운팅 동작(CO8) 이후에 제5 기준값(RV_5)을 제8 기준값(RV_8)으로 변경할 수 있다.
예시적으로, 앞서 설명된 바와 마찬가지로, 비교 동작의 결과에 따라 프로그램 페일로 판별된 경우, P/F 체커(127)는 페일 신호(FAIL)를 출력하고, 제어 회로(124)는 페일 신호(FAIL)에 응답하여 나머지 스테이지들에 대한 페일 비트 카운팅 동작을 생략하고, 다음 프로그램 루프 또는 다음 프로그램 루프의 검증 읽기 동작을 수행할 수 있다.
상술된 실시 예에서, 특정 스테이지에 대한 페일 비트 카운팅 동작 이후에 기준값을 가변하는 동작이 설명되었으나, 본 발명의 범위가 이에 한정되는 것은 아니다. P/F 체커(127)는 미리 정해진 개수의 스테이지들에 대한 카운팅 동작 이후에, 기준값을 가변할 수 있다.
도 12는 도 5의 기준값 관리부를 예시적으로 보여주는 블록도이다. 도 5 및 도 12를 참조하면, 기준값 관리부(127c)는 시프트 레지스터(Shift Register)로 구현될 수 있다. 시프트 레지스터(125)는 대표 기준값(RV)을 별도의 저장 장치(예를 들어, 레지스터, 퓨즈 등)로부터 수신할 수 있다. 예시적으로, 대표 기준값(RV)은 에러 정정 회로(111)(도 1 참조)의 에러 정정 능력, 읽기 마진, 셀당 저장되는 비트 수, 목표 프로그램 상태 등을 기반으로 미리 정해진 값일 수 있다. 예시적으로, 읽기 마진은 어느 하나의 프로그램 상태에 대한 검증 전압 및 어느 하나의 프로그램 상태에 대한 읽기 전압의 차이를 가리킨다. 시프트 레지스터(125)는 제어 회로(124)로부터 전송 정보(TFI)를 수신하고, 수신된 전송 정보(TFI)에 응답하여 기준값(RV_n)을 출력할 수 있다.
예를 들어, 제어 회로(124)는 페이지 버퍼 회로(125)의 복수의 스테이지들(STG)이 순차적으로 또는 비순차적으로 활성화되도록 전송 신호(TF)를 출력할 수 있다. 제어 회로(124)는 출력된 전송 신호(TF)에 기반된 전송 정보(TFI)를 기준값 관리부(127c)로 제공할 수 있다. 즉, 전송 정보(TFI)는 활성화된 스테이지에 대한 정보 또는 활성화된 스테이지들의 개수에 대한 정보를 포함할 수 있다.
시프트 레지스터(127c)는 전송 정보(TFI)에 응답하여 대응하는 기준값(RV_n)을 출력할 수 있다. 예시적으로, 기준값(RV_n)은 각 스테이지에 대응되는 값이거나 또는 스테이지들의 각 그룹에 대응되는 값일 수 있다.
도 13은 본 발명의 또 다른 실시 예에 따른 불휘발성 메모리 장치의 일부를 보여주는 블록도이다. 간결한 설명을 위하여, 제어 회로(224), 페이지 버퍼 회로(225), 복수의 스테이지들(STG_1~STG_k), P/F 체커(227), 카운팅부(227a), 누적부(227b), 기준값 관리부(227c), 및 비교부(227d)는 도 5를 참조하여 설명되었으므로, 이에 대한 상세한 설명은 생략된다.
기준값 관리부(227c)는 전송 정보(TFI)를 기반으로 기준값(RV_n)을 생성할 수 있다. 기준값 관리부(227c)는 고정 기준값(RV_c)을 출력할 수 있다. 고정 기준값(RV_c)은 카운팅 값(CV_n)과 비교되는 값이다.
비교부(227d)는 도 1 내지 도 12를 참조하여 설명된 바와 유사하게 누적값(AV_n) 및 대응하는 기준값(AV_n)을 비교하여 프로그램 패스 또는 페일 여부를 판별할 수 있다. 비교부(227d)는 카운팅부(227d)의 카운팅 값(CV_n) 및 고정 기준값(RV_n)을 비교하여 프로그램 패스 또는 페일 여부를 판별할 수 있다. 예를 들어, P/F 체커(227)는 특정 스테이지(예를 들어, 제3 스테이지(STG_3))에 대한 카운팅 동작을 수행하여 제3 카운팅 값(CV_3) 및 제3 누적값(AV_3)을 생성할 수 있다. P/F 체커(227)는 제3 카운팅 값(CV_3) 및 고정 기준값(RV_c)을 비교하여 프로그램 패스 또는 페일 여부를 판별할 수 있다.
예시적으로, 제3 카운팅 값(CV_3)이 고정 기준값(RV_c)보다 크다는 것은 제3 스테이지(STG_3)에 대응되는 메모리 셀들 중 페일 비트가 다수 존재하다는 것을 의미한다. 즉, 제3 카운팅 값(CV_3)이 고정 기준값(RV_c)보다 큰 경우, 프로그램 페일될 확률이 높을 것이다. 따라서, 제3 카운팅 값(CV_3)이 고정 기준값(RV_c)보다 큰 경우, P/F 체커(227)는 프로그램 페일로 판별할 수 있다. 프로그램 페일로 판별된 경우, 제어 회로(124)는 나머지 스테이지들에 대한 페일 비트 카운팅 동작을 생략하고, 다음 프로그램 루프 또는 다음 프로그램 루프의 검증 읽기 동작을 수행할 수 있다.
도 14는 도 13의 불휘발성 메모리 장치의 동작을 보여주는 순서도이다. 도 13 및 도 14를 참조하면, P/F 체커(227)는 S210 단계 및 S220 단계의 동작들을 수행한다. S210 단계 및 S220 단계의 동작들은 도 6의 S110 단계 및 S120 단계의 동작들과 유사하므로, 이에 대한 상세한 설명은 생략된다.
S230 단계에서, P/F 체커(227)는 제n 카운팅 값(CV_n) 및 고정 기준값(RV_c)을 비교할 수 있다. 도 13을 참조하여 설명된 바와 같이, P/F 체커(227)는 하나의 스테이지(즉, 제n 스테이지(STG_n))에 대한 제n 카운팅 값(CV_n) 및 고정 기준값(RV_n)을 비교할 수 있다. 제n 카운팅 값(CV_n)이 고정 기준값(RV_n)보다 크거나 같은 경우, P/F 체커(227)는 프로그램 페일로 판별하고, S250 단계를 수행할 수 있다.
제n 카운팅 값(CV_n)이 고정 기준값(RV_n)보다 작은 경우, P/F 체커(227)는 S240 단계 내지 S290 단계의 동작들을 수행할 수 있다. S240 단계 내지 S290 단계의 동작들은 도 6의 S130 단계 내지 S170 단계의 동작들과 유사하므로, 이에 대한 상세한 설명은 생략된다.
예시적으로, S230 단계 및 S240 단계의 동작들의 순서는 도 14에 도시된 순서에 제한되지 않으며, S240 단계의 동작이 S230 단계의 동작보다 먼저 수행되고, S240 단계의 결과에 따라 S230 단계의 동작이 수행되고, S230 단계의 결과에 따라 S260 단계의 동작이 수행될 수 있다. 또는, S230 단계 및 S240 단계의 동작들은 함께 수행될 수 있고, S230 단계 또는 S240 단계의 결과가 프로그램 페일인 경우, S250 단계의 동작이 수행될 수 있다.
도 15는 본 발명의 또 다른 실시 예에 따른 불휘발성 메모리 장치를 보여주는 블록도이다. 예시적으로, 도 15는 불휘발성 메모리 장치(300)의 일부를 보여준다. 도면의 간결성을 위하여, 본 발명의 기술적 특징을 설명하는데 불필요한 구성 요소들은 생략된다. 또한, 앞서 설명된 구성 요소 또는 중복되는 구성 요소들에 대한 상세한 설명은 생략된다.
도 15를 참조하면, 불휘발성 메모리 장치(300)는 제어 회로(324), 페이지 버퍼 회로(325), 및 P/F 체커(327)를 포함한다. 비록 도면에 도시되지는 않았으나, 도 2를 참조하여 설명된 바와 같이, 불휘발성 메모리 장치(300)는 메모리 셀 어레이, 어드레스 디코더, 전압 발생기, 또는 입출력 회로와 같은 구성 요소들을 더 포함할 수 있다.
페이지 버퍼 회로(325)는 복수의 스테이지들(STG_1~STG_k)을 포함하고, 복수의 스테이지들(STG_1~STG_k) 각각은 복수의 버퍼들(PB)을 포함한다. P/F 체커(327)는 카운팅부(327a), 누적부(327b), 기준값 관리부(327c), 및 비교부(327d)를 포함한다. 불휘발성 메모리 장치(300)에 포함된 구성 요소들은 도 2를 참조하여 설명되었으므로, 이에 대한 상세한 설명은 생략된다.
도 15의 P/F 체커(327)는 도 1 내지 도 14의 P/F 체커들(127, 227)과 달리, 프로그램 패스 여부를 미리 예측할 수 있다. 예를 들어, P/F 체커(327)의 기준값 관리부(327)는 페일 기준값(FRV_n) 및 패스 기준값(PRV_n)을 출력할 수 있다. 예를 들어, P/F 체커(327)는, 앞서 설명된 바와 유사하게, 제어 회로(324)의 전송 정보(TFI)에 응답하여 페일 기준값(FRV_n) 및 패스 기준값(PRV_n)을 출력할 수 있다. 예시적으로, 페일 기준값(FRV_n)은 프로그램 페일을 판단하기 위한 기준값을 가리키고, 패스 기준값(PRV_n)은 프로그램 패스를 판단하기 위한 기준값을 가리킨다. 예시적으로, 패스 기준값(PRV_n)은 페일 기준값(FRV_n)보다 작거나 같은 값일 수 있다. 예시적으로, 패스 기준값(PRV_n)은 에러 정정 회로(111)(도 1 참조)의 에러 정정 능력, 읽기 마진, 셀당 저장되는 비트 수, 목표 프로그램 상태 등에 의해 결정될 수 있다.
좀 더 상세한 예로서, P/F 체커(327)는 제1 내지 제3 스테이지들(STG_1~STG_3) 각각에 대한 카운팅 동작을 수행하여 제3 누적값(AV_3)을 생성할 수 있다. 비교부(327d)는 제3 누적값(AV_3)과 제3 패스 기준값(PRV_3)을 비교할 수 있다. 예시적으로, 제3 누적값(AV_3)이 제3 패스 기준값(PRV_3)보다 작은 경우, 프로그램 패스될 확률이 증가할 것이다. 따라서, 제3 누적값(AV_3)이 제3 패스 기준값(PRV_3)보다 작은 경우, 비교부(327d)는 패스 신호(PASS)를 출력한다.
좀 더 상세한 예로서, 제1 내지 제8 스테이지들(STG_1~STG_8) 각각에 대한 카운팅 값이 5 bit이고, 페일 기준값이 80 bit인 경우, P/F 체커는 제1 내지 제8 스테이지들(STG_1~STG_8) 각각에 대한 카운팅 동작을 수행한 이후에, 프로그램 패스를 판별하고, 패스 신호(PASS)를 출력할 것이다. 그러나 제3 스테이지(STG_3)에 대한 제3 패스 기준값(PRV_1)을 18 bit로 설정한 경우, P/F 체커(327)는 제3 스테이지(STG_3)에 대한 카운팅 동작을 수행한 이후에, 프로그램 패스를 판별하고, 패스 신호(PASS)를 출력할 것이다. 이 경우, 나머지 스테이지들(즉, STG_4~STG_8)에 대한 카운팅 동작이 생략될 수 있다.
예시적으로, 제어 회로(324)는 패스 신호(PASS)에 응답하여 프로그램 동작을 종료할 수 있다. 또는, 제어 회로(324)는 패스 신호(PASS)에 응답하여 다른 목표 프로그램 상태를 갖는 메모리 셀들을 프로그램하기 위한 프로그램 루프들을 더 수행할 수 있다.
상술된 바와 같이, P/F 체커(327)는 누적값(AV_n) 및 대응하는 패스 기준값(PRV_n)을 비교함으로써 프로그램 패스 여부를 미리 판단할 수 있다. 이 경우, 나머지 스테이지들에 대한 카운팅 동작으로 인한 오버헤드가 감소될 수 있다.
도 16은 도 15의 P/F 체커의 동작을 보여주는 순서도이다. 도 15 및 도 16을 참조하면, P/F 체커(327)는 S310 단계 및 S320 단계의 동작들을 수행할 수 있다. S310 단계 및 S320 단계의 동작들은 도 6의 S110 단계 및 S120 단계의 동작들과 유사하므로 이에 대한 상세한 설명은 생략된다.
S330 단계에서, P/F 체커(327)는 제n 누적값(AV_n) 및 제n 패스 기준값(PRV_n)을 비교한다. 앞서 설명된 바와 같이, 제n 누적값(AV_n)이 제n 패스 기준값(PRV_n)보다 작거나 같은 경우, 프로그램 패스될 확률이 증가할 것이다. 즉, 제n 누적값(AV_n)이 제n 패스 기준값(PRV_n)보다 작거나 같은 경우, S340 단계에서, P/F 체커(327)는 패스 신호(PASS)를 제어 회로(324)로 전송한다.
제n 누적값(AV_n)이 제n 패스 기준값(PRV_n)보다 큰 경우, S350 단계에서, P/F 체커(327)는 변수(n)가 최대값(k)인지 판별한다. 즉, P/F 체커(327)는 페이지 버퍼 회로(325)의 모든 스테이지들(STG_1~STG_k)의 모든 페이지 버퍼들에 대하여 카운트가 수행되었는지 판별된다. 변수(n)가 최대값이 아닌 경우, S360 단계에서, 변수(n)가 1만큼 증가되고, S320 단계의 동작이 다시 수행된다.
변수(n)가 최대값인 경우, S370 단계에서, P/F 체커(327)는 제k 누적값(AV_k) 및 제k 페일 기준값(FRV_k)을 비교한다. 예시적으로, 제k 페일 기준값(FRV_k)은 대표 페일 기준값일 수 있다. 대표 페일 기준값은 에러 정정 회로(111)(도 1 참조)의 에러 정정 능력, 읽기 마진, 셀당 저장되는 비트 수, 목표 프로그램 상태 등에 의해 결정될 수 있다.
제k 누적값(AV_k)이 제k 페일 기준값(FRV_k)보다 크거나 같은 경우, S380 단계에서, P/F 체커(327)는 페일 신호(FAIL)를 제어 회로(324)로 전송하고, 제k 누적값(AV_k)이 제k 페일 기준값(FRV_k)보다 작은 경우, S340 단계에서, P/F 체커(327)는 패스 신호(PASS)를 제어 회로(324)로 전송한다.
예시적으로, 제어 회로(324)는 패스 신호(PASS) 또는 페일 신호(FAIL)에 응답하여, 프로그램 동작을 종료하거나 또는 다음 프로그램 루프 또는 다음 프로그램 루프의 검증 읽기 동작을 수행할 수 있다.
도 17은 도 16의 동작 방법을 설명하기 위한 도면이다. 간결한 설명을 위하여, 앞서 설명된 구성 요소 또는 중복되는 구성 요소들에 대한 설명은 생략된다.
도 15 내지 도 17을 참조하면, P/F 체커(327)는 제어 회로(324)의 제어에 따라 제1 내지 제8 스테이지들(STG_1~STG_8) 각각에 대한 카운팅 동작을 순차적으로 수행할 수 있다. 예시적으로, 도 15 및 도 16을 참조하여 설명된 바와 같이, P/F 체커(327)는 누적값(AV_n) 및 대응하는 패스 기준값(PRV_n)을 비교함으로써 프로그램 패스 여부를 미리 판별할 수 있다.
예를 들어, 도 17에 도시된 바와 같이, P/F 체커(327)는 제1 및 제2 스테이지들(STG_1, STG_2)에 대한 카운팅 동작을 수행하여 제2 누적값(AV_2)을 생성할 수 있다. P/F 체커(327)는 제2 누적값(AV_2) 및 제2 패스 기준값(PRV_2)을 비교할 수 있다. 이때, 제2 누적값(AV_2)이 제2 패스 기준값(PRV_2)보다 작은 경우, P/F 체커(327)는 프로그램 패스로 판별하고, 패스 신호(PASS)를 제어 회로(324)로 전송한다. 즉, 제1 및 제2 스테이지들(STG_1, STG_2)와 대응되는 메모리 셀들 중 프로그램 완료되지 않은 메모리 셀들의 개수가 제2 패스 기준값보다 작은 경우, 프로그램 패스로 판별된다.
예시적으로, 제어 회로(324)는 나머지 스테이지들(예를 들어, STG_3~STG_8)에 대한 카운팅 동작을 수행하지 않을 수 있다.
도 18은 도 14의 P/F 체커의 다른 동작을 보여주는 순서도이다. 도 14 및 도 17을 참조하면, P/F 체커(327)는 S410 단계 내지 S440 단계의 동작을 수행한다. S410 단계 내지 S440 단계의 동작들은 도 15의 S310 단계 내지 S340 단계의 동작들과 유사하므로, 이에 대한 상세한 설명은 생략된다.
제n 누적값(AV_n)이 제n 패스 기준값(PRV_n)보다 큰 경우, P/F 체커(327)는 S450 단계 내지 S490 단계의 동작들을 수행한다. S450 단계 내지 S490 단계의 동작들은 도 6의 S130 단계 내지 S170 단계의 동작들과 유사하므로 이에 대한 상세한 설명은 생략된다.
도 19는 도 18의 동작 방법을 설명하기 위한 타이밍도이다. 도 14, 도 18, 및 도 19를 참조하면, P/F 체커(327)는 제어 회로(324)의 제어에 따라 제1 내지 제8 스테이지들(STG_1~STG_8) 각각에 대한 카운팅 동작을 수행하여 누적값들을 생성하고, 생성된 누적값들을 대응하는 패스 기준값 및 대응하는 페일 기준값과 비교할 수 있다.
예를 들어, 도 19에 도시된 바와 같이, P/F 체커(327)는 제어 회로(324)의 제어에 따라 제1 스테이지(STG_1)에 대한 카운팅 동작을 수행하여 제1 누적값(AV_1)을 생성한다. 제1 누적값(AV_1)이 제1 패스 기준값(PRV_1)보다 크고, 제1 페일 기준값(FRV_1)보다 작은 경우, P/F 체커(327)는 제어 회로(324)의 제어에 따라 제2 스테이지(STG_2)에 대한 카운팅 동작을 수행하여 제2 누적값(AV_2)을 생성한다.
예시적으로, 제2 누적값(AV_2)이 제2 패스 누적값(PRV_2)보다 작을 수 있다. 이 경우, P/F 체커(327)는 프로그램 패스로 판별하고, 패스 신호(PASS)를 제어 회로(324)로 전송한다.
예시적으로, 프로그램 패스로 판별된 이후에, 제어 회로(324)는 나머지 스테이지들(예를 들어, STG_3~STG_8)에 대한 카운팅 동작을 생략할 수 있다.
도 20은 본 발명의 실시 예에 따른 불휘발성 메모리 장치의 프로그램 동작을 설명하기 위한 도면이다. 불휘발성 메모리 장치(100)에 포함된 메모리 셀들은 2-비트를 저장하는 멀티 레벨 셀인 것으로 가정한다.
도 2 및 도 20을 참조하면, 메모리 셀 어레이(121)(특히, 선택된 워드라인)으로 프로그램 전압들(Vpgm1~Vpgm7)이 인가되고, 제1 내지 제3 검증 전압들(Vvfy1~Vvfy3)이 인가된다. 하나의 프로그램 전압(예를 들어, Vpgm1) 및 제1 내지 제3 검증 전압들(Vvfy1~Vvfy3)은 하나의 프로그램 루프를 구성할 수 있다. 예시적으로, 프로그램 전압들(Vpgm1~Vpgm7)이 인가되는 프로그램 단계들(PGM1~PGM7)은 카운팅 동작들(CO1~CO7)과 중첩되어 수행될 수 있다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니다.
예시적으로, 제1 검증 전압(Vvfy1)은 목표 프로그램 상태가 제1 프로그램 상태(P1)(도 4 참조)인 메모리 셀들을 검증하기 위한 검증 전압이고, 제2 검증 전압(Vvfy2)은 목표 프로그램 상태가 제2 프로그램 상태(P2)인 메모리 셀들을 검증하기 위한 검증 전압이고, 제3 검증 전압(Vvfy3)은 목표 프로그램 상태가 제3 프로그램 상태(P3)인 메모리 셀들을 검증하기 위한 검증 전압일 수 있다.
P/F 체커(127)는 제1 내지 제3 검증 전압들(Vvfy1~Vvfy3)에 의한 제1 검증 읽기 동작(VFY_R1)의 결과를 기반으로 카운팅 동작을 수행함으로써 프로그램 패스 또는 페일 여부를 판별할 수 있다. 이때, P/F 체커(127)는 제1 내지 제3 검증 전압들(Vvfy1~Vvfy3) 중 가장 낮은 레벨의 검증 전압(즉, 제1 검증 전압(Vvfy1))의 검증 읽기 결과에 대한 카운팅 동작을 수행할 수 있다. 예를 들어, P/F 체커(127)는 도 1 내지 도 19를 참조하여 설명된 카운팅 동작들(즉, 프로그램 패스 페일 판별 동작들)을 기반으로 제1 카운팅 동작(CO1)을 수행하여 프로그램 패스 또는 페일 여부를 판별할 수 있다. 이때, 제1 카운팅 동작(CO1)은 제1 검증 읽기 동작(VFY_R1)의 결과 중 제1 검증 전압(Vvfy1)에 의한 검증 읽기 결과에 대한 카운팅 동작일 것이다. 즉, P/F 체커(127)는 제1 카운팅 동작(CO1)을 통해 목표 프로그램 상태가 제1 프로그램 상태(P1)인 메모리 셀들에 대하여 프로그램 패스 또는 페일 여부를 판별한다.
제1 카운팅 동작(CO1)의 결과로서 페일 신호(FAIL)가 출력될 수 있다. 이 경우, 메모리 셀 어레이(121)로 제1 내지 제3 검증 읽기 전압들(Vvfy1~Vvfy3)이 인가됨으로써 제2 검증 읽기 동작(VFY_R2)이 수행된다. 이후, P/F 체커(127)는 제2 카운팅 동작(CO2)을 수행할 수 있다. 마찬가지로, 제2 카운팅 동작(CO2)은 제1 검증 전압(Vvfy1)의 검증 읽기 결과에 대한 카운팅 동작일 것이다. 제2 카운팅 동작(CO2)의 결과로서 페일 신호(FAIL)가 출력될 수 있다. P/F 체커(127)는 제1 검증 전압(Vvfy1)에 의한 검증 읽기 동작의 결과에 대한 카운팅 동작의 결과가 프로그램 패스로 판별될 때까지 상술된 동작을 반복 수행할 수 있다.
예시적으로, 제3 카운팅 동작(CO3)에서, 프로그램 패스(PASS)로 판별될 수 있다. 는 제1 검증 전압(Vvfy1)에 의해 검증되는 메모리 셀들(즉, 목표 프로그램 상태가 제1 프로그램 상태(P1)인 메모리 셀들)이 정상적으로, 또는 에러 정정 가능한 범위 내의 에러가 포함되도록, 또는 읽기 마진에 의해 정상적으로 독출되도록 프로그램되었음을 가리킬 수 있다.
예시적으로, 제1 검증 전압(Vvfy1)의 검증 읽기 결과가 프로그램 패스로 판별되면, 나머지 검증 읽기 동작들에서, 제1 검증 전압(Vvfy1)이 더 이상 메모리 셀 어레이(121)로 인가되지 않을 수 있다. 이 후, P/F 체커(127)는 제2 검증 전압(Vvfy2)에 의한 검증 읽기 동작의 결과에 대하여 카운팅 동작을 수행한다.
예를 들어, 제3 카운팅 동작(CO3)의 결과로서 패스 신호(PASS)가 출력된 경우, 메모리 셀 어레이(121)로 제1 내지 제3 검증 전압들(Vvfy1~Vvfy3) 또는 제2 및 제3 검증 전압들(Vvfy2, Vvfy3)이 인가됨으로써 제4 검증 읽기 동작(VFY_R4)이 수행된다. P/F 체커(127)는 제4 검증 읽기 동작(VFY_R4)의 결과 중 제2 검증 전압(Vvfy2)에 의한 검증 읽기 결과를 기반으로 제4 카운팅 동작(CO4)을 수행한다. 예시적으로, 제4 카운팅 동작(CO4)의 결과로서 페일 신호(FAIL)가 출력될 수 있고, 이 경우, 제5 검증 읽기 동작(CO5)이 수행된다.
제3 카운팅 동작(CO4)에서, 페일로 판별된 경우, 다음 프로그램 루프의 검증 읽기 동작이 수행되고, P/F 체커(127)는 제5 카운팅 동작(CO5)을 수행한다. 제5 카운팅 동작(CO5)의 결과로서 패스 신호(PASS)가 출력된 경우, 나머지 검증 읽기 동작들에서, 제2 검증 전압(Vvfy2)이 더 이상 메모리 셀 어레이(121)로 인가되지 않을 수 있다. 이 후, P/F 체커(127)는 제3 검증 전압(Vvfy3)에 의한 검증 읽기 동작의 결과에 대하여 카운팅 동작을 수행한다.
예를 들어, 제5 카운팅 동작(CO5)의 결과로서 패스 신호(PASS)가 출력된 경우, 메모리 셀 어레이(121)로 제1 내지 제3 검증 전압들(Vvfy1~Vvfy3) 또는 제2 및 제3 검증 전압들(Vvfy2, Vvfy3) 또는 제3 검증 전압(Vvfy3)이 인가됨으로써 제6 검증 읽기 동작(VFY_R6)이 수행된다. P/F 체커(127)는 제6 검증 읽기 동작(VFY_R6)의 결과 중 제3 검증 전압(Vvfy3)에 의한 검증 읽기 결과를 기반으로 제6 카운팅 동작(CO6)을 수행한다. 예시적으로, 제6 카운팅 동작(CO6)의 결과로서 패스 신호(PASS)가 출력될 수 있고, 제어 회로(124)는 프로그램 동작을 종료할 수 있다.
예시적으로, 동시에 프로그램되는 프로그램 상태들의 수는 한정되지 않는다. n개의 프로그램 상태들이 동시에 프로그램될 때, n개의 검증 전압들을 이용하여 프로그램 및 검증이 수행될 수 있다.
상술된 바와 같이, P/F 체커(127)는 메모리 셀들의 목표 프로그램 상태에 따라 순차적으로 카운팅 동작을 수행함으로써 각 목표 프로그램 상태에 대한 프로그램 패스 또는 페일 여부를 판별할 수 있다. 이때, 각 카운팅 동작은 도 1 내지 도 19를 참조하여 설명된 바와 같이, 복수의 스테이지들에 따라 페일 기준값 또는 패스 기준값을 가변함으로써, 카운팅 동작에 따른 오버 헤드를 감소시킬 수 있다. 예를 들어, 도 20에 도시된 바와 같이, 제1 카운팅 동작(CO1)이 수행되는 시간은 제3 카운팅 동작(CO3)이 수행되는 시간보다 짧을 수 있다. 이는 제1 카운팅 동작(CO1)에서 카운팅된 스테이지들의 개수가 제3 카운팅 동작(CO3)에서 카운팅된 스테이지들의 개수보다 작음을 의미한다. 즉, 각 스테이지에 따라 페일 기준값 또는 패스 기준값을 가변 또는 조절함으로써 프로그램 패스 또는 페일을 미리 판별할 수 있기 때문에, 불휘발성 메모리 장치의 프로그램 시간이 단축된다.
상술된 본 발명의 실시 예들에 따르면, 불휘발성 메모리 장치는, 프로그램 패스 또는 페일 여부를 판별할 때, 복수의 스테이지들 각각에 대한 카운팅 동작을 수행하여 누적값들을 생성하고, 생성된 누적값들을 대응하는 기준값들과 비교함으로써, 프로그램 패스 또는 페일 여부를 판별할 수 있다. 불휘발성 메모리 장치는 프로그램 패스 또는 페일 여부가 판별된 이후에 나머지 스테이지들에 대한 카운팅 동작을 생략함으로써 카운팅 동작에 따른 오버헤드를 감소시킬 수 있다. 따라서, 향상된 성능의 불휘발성 메모리 장치 및 그것의 동작 방법이 제공된다.
상술된 본 발명의 실시 예들은 예시적인 것이며, 본 발명의 범위가 상술된 실시 예들에 국한되는 것은 아니다. 예를 들어, 본 발명에 따른 불휘발성 메모리 장치는 복수의 스테이지들 각각에 대한 카운팅 동작에서 페일 기준값 또는 패스 기준값을 변경하거나 또는 특정 스테이지에 대한 카운팅 동작에서 페일 기준값 또는 패스 기준값을 변경하거나 또는 특정 개수의 스테이지들에 대한 카운팅 동작 이후에 페일 기준값 또는 패스 기준값을 변경할 수 있다.
도 21은 본 발명에 따른 불휘발성 메모리 장치의 메모리 셀 어레이에 포함된 메모리 블록의 예시적인 회로도이다. 예시적으로, 도 21을 참조하여 3차원 구조의 제1 메모리 블록(BLK1)이 설명된다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니며, 다른 메모리 블록들 또한 제1 메모리 블록(BLK1)과 유사한 구조를 가질 수 있다.
도 21을 참조하면, 제1 메모리 블록(BLK1)은 복수의 셀 스트링들(CS11, CS12, CS21, CS22)을 포함한다. 복수의 셀 스트링들(CS11, CS12, CS21, CS22)은 행 방향(row direction) 및 열 방향(column direction)을 따라 배치되어 행들 및 열들을 형성할 수 있다.
예를 들어, 셀 스트링들(CS11, CS12)은 스트링 선택된 라인들(SSL1a, SSL1b)와 연결되어, 제1 행을 형성할 수 있다. 셀 스트링들(CS21, CS22)은 스트링 선택된 라인들(SSL2a, SSL2b)와 연결되어 제2 행을 형성할 수 있다. 셀 스트링들(CS11, CS21)은 제1 비트라인(BL1)과 연결되어 제1 열을 형성할 수 있다. 셀 스트링들(CS12, CS22)은 제2 비트라인(BL2)과 연결되어 제2 열을 형성할 수 있다.
복수의 셀 스트링들(CS11, CS12, CS21, CS22) 각각은 복수의 셀 트랜지스터들을 포함한다. 예를 들어, 복수의 셀 스트링들(CS11, CS12, CS21, CS22) 각각은 스트링 선택 트랜지스터들(SSTa, SSTb), 복수의 메모리 셀들(MC1~MC8), 접지 선택 트랜지스터들(GSTa, GSTb), 및 더미 메모리 셀들(DMC1, DMC2)을 포함할 수 있다.
예시적으로, 복수의 셀 스트링들(CS11, CS12, CS21, CS22)에 포함된 복수의 셀 트랜지스터들 각각은 전하 트랩형 플래시(CTF; charge trap flash) 메모리 셀일 수 있다.
복수의 메모리 셀들(MC1~MC8)은 직렬 연결되며, 행 방향 및 열 방향에 의해 형성된 평면(예를 들어, 기판)과 수직한 방향인 높이 방향(height direction)으로 적층된다. 스트링 선택 트랜지스터들(SSTa, SSTb)은 직렬 연결되고, 직렬 연결된 스트링 선택 트랜지스터들(SSTa, SSTb)은 복수의 메모리 셀들(MC1~MC8) 및 비트라인(BL) 사이에 제공된다. 접지 선택 트랜지스터들(GSTa, GSTb)은 직렬 연결되고, 직렬 연결된 접지 선택 트랜지스터들(GSTa, GSTb)은 복수의 메모리 셀들(MC1~MC8) 및 공통 소스 라인(CSL) 사이에 제공된다.
예시적으로, 복수의 메모리 셀들(MC1~MC8) 및 접지 선택 트랜지스터들(GSTa, GSTb) 사이에 제1 더미 메모리 셀(DMC1)이 제공될 수 있다. 예시적으로, 복수의 메모리 셀들(MC1~MC8) 및 스트링 선택 트랜지스터들(SSTa, SSTb) 사이에 제2 더미 메모리 셀(DMC2)이 제공될 수 있다.
셀 스트링들(CS11, CS12, CS21, CS22)의 접지 선택 트랜지스터들(GSTa, GSTb)은 접지 선택 라인(GSL)에 공통으로 연결될 수 있다. 예시적으로, 동일한 행의 접지 선택 트랜지스터들은 동일한 접지 선택 라인에 연결될 수 있고, 다른 행의 접지 선택 트랜지스터들은 다른 접지 선택 라인에 연결될 수 있다.
기판(또는 접지 선택 트랜지스터(GSTa, GSTb))으로부터 동일한 높이의 메모리 셀들은 동일한 워드라인에 공통으로 연결되고, 서로 다른 높이의 메모리 셀들은 서로 다른 워드라인에 연결된다. 예시적으로, 동일한 높이의 더미 메모리 셀들은 동일한 더미 워드라인과 연결되고, 다른 높이의 더미 메모리 셀들은 다른 더미 워드라인과 연결된다.
동일한 높이의 제1 스트링 선택 트랜지스터들(SSTa) 중 동일한 행의 스트링 선택 트랜지스터들은 동일한 스트링 선택 라인과 연결되고, 다른 행의 스트링 선택 트랜지스터들은 다른 스트링 선택 라인과 연결된다. 예를 들어, 제1 행의 셀 스트링들(CS11, CS12)의 제1 스트링 선택 트랜지스터들(SSTa)은 스트링 선택 라인(SSL1a)과 공통으로 연결되고, 제2 행의 셀 스트링들(CS21, CS22)의 제1 스트링 선택 트랜지스터들(SSTa)은 스트링 선택 라인(SSL1a)과 공통으로 연결된다.
마찬가지로, 동일한 높이의 제2 스트링 선택 트랜지스터들(SSTb) 중 동일한 행의 스트링 선택 트랜지스터들은 동일한 스트링 선택 라인과 연결되고, 다른 행의 스트링 선택 트랜지스터들은 다른 스트링 선택 라인과 연결된다. 예를 들어, 제1 행의 셀 스트링들(CS11, CS12)의 제2 스트링 선택 트랜지스터들(SSTb)은 스트링 선택 라인(SSL1b)과 공통으로 연결되고, 제2 행의 셀 스트링들(CS21, CS22)의 제2 스트링 선택 트랜지스터들(SSTb)은 스트링 선택 라인(SSL2b)과 공통으로 연결된다.
비록 도면에 도시되지는 않았으나, 동일한 행의 셀 스트링들의 스트링 선택 트랜지스터들은 동일한 스트링 선택 라인에 공통으로 연결될 수 있다. 예를 들어, 제1 행의 셀 스트링들(CS11, CS12)의 제1 및 제2 스트링 선택 트랜지스터들(SSTa, SSTb)은 동일한 스트링 선택 라인에 공통으로 연결될 수 있다. 제2 행의 셀 스트링들(CS21, CS22)의 제1 및 제2 스트링 선택 트랜지스터들(SSTa, SSTb)은 동일한 스트링 선택 라인에 공통으로 연결될 수 있다.
제1 메모리 블록(BLK1)에서, 읽기 및 쓰기는 행 단위로 수행될 수 있다. 예를 들어, 스트링 선택 라인들(SSL1a, SSL1b, SSL2a, SSL2b)에 의해 메모리 블록(BLKa)의 하나의 행이 선택될 수 있다. 제1 메모리 블록(BLK1)에서, 소거는 메모리 블록 단위 또는 서브 블록의 단위로 수행될 수 있다.
예시적으로, 도 27에 도시된 제1 메모리 블록(BLK1)은 예시적인 것이며, 셀 스트링들의 개수는 증가 또는 감소할 수 있으며, 셀 스트링들의 개수에 따라 셀 스트링들이 구성하는 행들 및 열들의 개수는 증가 또는 감소할 수 있다. 또한, 제1 메모리 블록(BLK1)의 셀 트랜지스터들(GST, MC, DMC, SST 등)의 개수들는 각각 증가 또는 감소될 수 있으며, 셀 트랜지스터들의 개수들에 따라 제1 메모리 블록(BLK1)의 높이가 증가 또는 감소할 수 있다. 또한, 셀 트랜지스터들의 개수들에 따라 셀 트랜지스터들과 연결된 라인들(GSL, WL, DWL, SSL 등)의 개수들이 증가 또는 감소될 수 있다.
도 22는 본 발명의 실시 예들에 따른 저장 장치가 적용된 메모리 카드 시스템을 보여주는 블록도이다. 도 22를 참조하면, 메모리 카드 시스템(1000)은 컨트롤러(1100), 불휘발성 메모리(1200), 및 커넥터(1300)를 포함한다.
컨트롤러(1100)는 불휘발성 메모리(1200)와 연결된다. 컨트롤러(1100)는 불휘발성 메모리(1200)를 액세스하도록 구성된다. 예를 들어, 컨트롤러(1100)는 불휘발성 메모리(1200)의 읽기, 쓰기, 소거, 그리고 배경(background) 동작을 제어하도록 구성된다. 배경(background) 동작은 마모도 관리, 가비지 콜렉션 등과 같은 동작들을 포함한다.
컨트롤러(1100)는 불휘발성 메모리(1200) 및 호스트(Host) 사이에 인터페이스를 제공하도록 구성된다. 컨트롤러(1100)는 불휘발성 메모리(1200)를 제어하기 위한 펌웨어(firmware)를 구동하도록 구성된다.
예시적으로, 컨트롤러(1100)는 램(RAM, Random Access Memory), 프로세싱 유닛(processing unit), 호스트 인터페이스(host interface), 메모리 인터페이스(memory interface), 에러 정정부와 같은 구성 요소들을 포함할 수 있다.
컨트롤러(1100)는 커넥터(1300)를 통해 외부 장치와 통신할 수 있다. 컨트롤러(1100)는 특정한 통신 규격에 따라 외부 장치(예를 들어, 호스트)와 통신할 수 있다. 예시적으로, 컨트롤러(1100)는 DDR(Double Data Rate) interface, USB (Universal Serial Bus), MMC (multimedia card), eMMC(embeded MMC), PCI (peripheral component interconnection), PCI-E (PCI-express), ATA (Advanced Technology Attachment), Serial-ATA, Parallel-ATA, SCSI (small computer small interface), ESDI (enhanced small disk interface), IDE (Integrated Drive Electronics), 파이어와이어(Firewire), UFS(Universal Flash Storage), NVMe (Nonvolatile Memory express) 등과 같은 다양한 통신 규격들 중 적어도 하나를 통해 외부 장치와 통신하도록 구성된다.
불휘발성 메모리(1200)는 EPROM (Electrically Erasable and Programmable ROM), 낸드 플래시 메모리, 노어 플래시 메모리, PRAM (Phase-change RAM), ReRAM (Resistive RAM), FRAM (Ferroelectric RAM), STT-MRAM(Spin-Torque Magnetic RAM) 등과 같은 다양한 불휘발성 메모리 소자들로 구현될 수 있다.
예시적으로, 불휘발성 메모리(1200)는 도 1 내지 도 20을 참조하여 설명된 불휘발성 메모리 장치를 포함할 수 있다. 불휘발성 메모리(1200)는 도 1 내지 도 20을 참조하여 설명된 프로그램 패스 또는 페일 판별 방법을 기반으로 프로그램 동작을 수행할 수 있다.
예시적으로, 컨트롤러(1100) 및 불휘발성 메모리(1200)는 하나의 반도체 장치로 집적될 수 있다. 예시적으로, 컨트롤러(1100) 및 불휘발성 메모리(1200)는 하나의 반도체 장치로 집적되어 솔리드 스테이트 드라이브(SSD, Solid State Drive)를 구성할 수 있다. 컨트롤러(1100) 및 불휘발성 메모리(1200)는 하나의 반도체 장치로 집적되어, 메모리 카드를 구성할 수 있다. 예를 들면, 컨트롤러(1100) 및 불휘발성 메모리(1200)는 하나의 반도체 장치로 집적되어 PC 카드(PCMCIA, personal computer memory card international association), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro, eMMC), SD 카드(SD, miniSD, microSD, SDHC), 유니버설 플래시 기억장치(UFS) 등과 같은 메모리 카드를 구성할 수 있다.
불휘발성 메모리(1200) 또는 메모리 카드 시스템(1000)은 다양한 형태의 패키지로 실장될 수 있다. 예를 들면, 불휘발성 메모리(1200) 또는 메모리 카드 시스템(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) 등과 같은 방식으로 패키지화되어 실장될 수 있다.
도 23은 본 발명에 따른 저장 장치가 적용된 SSD(Solid State Drive) 시스템을 예시적으로 보여주는 블록도이다. 도 23을 참조하면, SSD 시스템(2000)은 호스트(2100) 및 SSD(2200)를 포함한다. SSD(2200)는 신호 커넥터(2001)를 통해 호스트(2100)와 신호(SIG)를 주고 받고, 전원 커넥터(2002)를 통해 전원(PWR)을 입력받는다. SSD(2200)는 SSD 컨트롤러(2210), 복수의 플래시 메모리들(2221~222n), 보조 전원 장치(2230), 및 버퍼 메모리(2240)를 포함한다.
SSD 컨트롤러(2210)는 호스트(2100)로부터 수신된 신호(SIG)에 응답하여 복수의 채널들(CH1~CHn)을 통해 복수의 플래시 메모리들(2221~222n)을 제어할 수 있다. 복수의 플래시 메모리들(2221~222n)은 SSD 컨트롤러(2210)의 제어에 따라 프로그램 동작을 수행할 수 있다.
보조 전원 장치(2230)는 전원 커넥터(2002)를 통해 호스트(2100)와 연결된다. 보조 전원 장치(2230)는 호스트(2100)로부터 전원(PWR)을 입력받고, 충전할 수 있다. 보조 전원 장치(2230)는 호스트(2100)로부터의 전원 공급이 원활하지 않을 경우, SSD 시스템(2000)의 전원을 제공할 수 있다. 예시적으로, 보조 전원 장치(2230)는 SSD(2200) 내에 위치할 수도 있고, SSD(2200) 밖에 위치할 수도 있다. 예를 들면, 보조 전원 장치(2230)는 메인 보드에 위치하며, SSD(2200)에 보조 전원을 제공할 수도 있다.
버퍼 메모리(2240)는 SSD(2200)의 버퍼 메모리로 동작한다. 예를 들어, 버퍼 메모리(2240)는 호스트(2100)로부터 수신된 데이터 또는 복수의 플래시 메모리들(2221~222n)로부터 수신된 데이터를 임시 저장하거나, 플래시 메모리들(2221~222n)의 메타 데이터(예를 들어, 매핑 테이블)를 임시 저장할 수 있다. 버퍼 메모리(2240)는 DRAM, SDRAM, DDR SDRAM, LPDDR SDRAM, SRAM 등과 같은 휘발성 메모리 또는 FRAM ReRAM, STT-MRAM, PRAM 등과 같은 불휘발성 메모리들을 포함할 수 있다.
예시적으로, 플래시 메모리들(2221~222n) 각각은 도 1 내지 도 20을 참조하여 설명된 불휘발성 메모리 장치일 수 있다. 플래시 메모리들(2221~222n) 각각은 도 1 내지 도 20을 참조하여 설명된 프로그램 패스 페일 판단 방법을 기반으로 프로그램 동작을 수행할 수 있다.
도 23은 본 발명의 실시 예에 따른 저장 장치를 포함하는 전자 시스템의 구성 및 본 발명의 실시 예에 따라 작동하는 인터페이스들을 나타낸 블록도이다. 예시적으로, 전자 시스템(3000)은 MIPI 연합에 의해 제안된 인터페이스를 이용하거나 지원할 수 있는 데이터 처리 장치로 구현될 수 있다. 예시적으로, 전자 시스템(3000)은 휴대용 통신 단말기, PDA(Personal Digital Assistant), PMP(Portable Media Player), 스마트폰, 또는 웨어러블(Wearable) 장치 형태로 구현될 수 있다.
전자 시스템(3000)은 애플리케이션 프로세서(3100), 디스플레이(3220), 및 이미지 센서(3230)를 포함할 수 있다. 애플리케이션 프로세서(3100)는 DigRF 마스터(3110), DSI(Display Serial Interface) 호스트(3120), CSI(Camera Serial Interface) 호스트(3130), 및 물리 계층(3140)을 포함할 수 있다.
DSI 호스트(3120)는 DSI에 따라 디스플레이(3220)의 DSI 장치(3225)와 통신할 수 있다. 예로서, DSI 호스트(3120)에는 광 시리얼라이저(SER)가 구현될 수 있다. 예로서, DSI 장치(3225)에는 광 디시리얼라이저(DES)가 구현될 수 있다.
CSI 호스트(3130)는 CSI에 따라 이미지 센서(3230)의 CSI 장치(3235)와 통신할 수 있다. 예로서, CSI 호스트(3130)에는 광 디시리얼라이저(DES)가 구현될 수 있다. 예로서, CSI 장치(3235)에는 광 시리얼라이저(SER)가 구현될 수 있다.
DSI 및 CSI는 물리 계층 및 링크 계층을 이용할 수 있다. DSI 및 CSI는 본 발명의 실시 예들을 채용할 수 있다. 예로서, DSI 호스트(3120) 및 DSI 장치(3225)는 물리 계층 및 링크 계층 간의 P2P 통신을 통해 에러 로그를 선택적으로 추출할 수 있다. 또는, CSI 장치(3235) 및 CSI 호스트(3130)는 물리 계층 및 링크 계층 간의 P2P 통신을 통해 에러 로그를 선택적으로 추출할 수 있다.
전자 시스템(3000)은 애플리케이션 프로세서(3100)와 통신하는 RF(Radio Frequency) 칩(3240)을 더 포함할 수 있다. RF 칩(3240)은 물리 계층(3242), DigRF 슬레이브(3244), 및 안테나(3246)를 포함할 수 있다. 예로서, RF 칩(3240)의 물리 계층(3242)과 애플리케이션 프로세서(3100)의 물리 계층(3140)은 MIPI 연합에 의해 제안된 DigRF 인터페이스에 의해 서로 데이터를 교환할 수 있다.
전자 시스템(3000)은 워킹 메모리(Working Memory; 3250) 및 임베디드/카드 스토리지(3255)를 더 포함할 수 있다. 워킹 메모리(3250) 및 임베디드/카드 스토리지(3255)는 애플리케이션 프로세서(3100)로부터 제공받은 데이터를 저장할 수 있다. 워킹 메모리(3250) 및 임베디드/카드 스토리지(3255)는 저장된 데이터를 어플리케이션 프로세서(3100)로 제공할 수 있다.
워킹 메모리(3250)는 애플리케이션 프로세서(3100)에 의해 처리된 또는 처리될 데이터를 일시적으로 저장할 수 있다. 워킹 메모리(3250)는 SRAM, DRAM, SDRAM 등과 같은 휘발성 메모리, 또는 플래시 메모리, PRAM, MRAM, ReRAM, FRAM 등과 같은 불휘발성 메모리를 포함할 수 있다.
임베디드/카드 스토리지(3255)는 전원 공급 여부와 관계없이 데이터를 저장할 수 있다. 실시 예로서, 임베디드/카드 스토리지(3255)는 UFS 인터페이스 규약에 따라 작동할 수 있으나, 본 발명은 이 실시 예로 한정되지 않는다. 예시적으로, 임베디드/카드 스토리지(3255)는 도 1 내지 도 20을 참조하여 설명된 불휘발성 메모리 장치를 포함할 수 있다. 임베디드/카드 스토리지(3255)에 포함된 불휘발성 메모리 장치는 도 1 내지 도 20을 참조하여 설명된 프로그램 패스 페일 판별 방식을 기반으로 프로그램 동작을 수행할 수 있다.
전자 시스템(3000)은 Wimax(World Interoperability for Microwave Access; 3260), WLAN(Wireless Local Area Network; 3262), UWB(Ultra Wideband; 3264) 등을 통해 외부 시스템과 통신할 수 있다.
전자 시스템(3000)은 음성 정보를 처리하기 위한 스피커(3270) 및 마이크(3275)를 더 포함할 수 있다. 예시적으로, 전자 시스템(3000)은 위치 정보를 처리하기 위한 GPS(Global Positioning System) 장치(3280)를 더 포함할 수 있다. 전자 시스템(3000)은 주변 장치들과의 연결을 관리하기 위한 브릿지(Bridge) 칩(3290)을 더 포함할 수 있다.
상술된 본 발명의 실시 예들에 따른 불휘발성 메모리 장치는 판별 동작에서, 프로그램 패스 또는 페일 여부를 판별하기 위한 패스 기준값 및 페일 기준값을 가변할 수 있다. 이로 인하여, 하나의 프로그램 루프의 판별 동작에서, 모든 스테이지들에 대한 카운팅 동작이 수행되기 이전에 프로그램 패스 또는 페일 여부가 미리 판별된다. 따라서, 불휘발성 메모리 시스템의 프로그램 성능이 향상된다.
본 발명의 상세한 설명에서는 구체적인 실시 예들에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
100 : 불휘발성 메모리 시스템 110 : 메모리 컨트롤러
111 : 에러 정정 회로 120 : 불휘발성 메모리 장치
121 : 메모리 셀 어레이 122 : 어드레스 디코더
123 : 전압 발생기 124 : 제어 회로
125 :페이지 버퍼 회로 126 : 입출력 회로
127 : P/F 체커 STG : 스테이지
TF : 전송 신호 TFI : 전송 정보
PASS : 패스 신호 FAIL : 페일 신호
CV : 카운팅 값 AV : 누적값
RV : 기준값 FRV : 페일 기준값
PRV : 패스 기준값

Claims (20)

  1. 불휘발성 메모리 장치의 프로그램 검증 방법에 있어서,
    복수의 스테이지들 중 제1 스테이지에 대한 제1 페일 비트 카운팅 동작을 수행하여 제1 페일 비트 누적값을 생성하는 단계;
    상기 생성된 제1 페일 비트 누적값 및 제1 페일 기준값을 비교하여 프로그램 페일 여부를 판별하는 단계;
    상기 생성된 제1 페일 비트 누적값이 상기 제1 페일 기준값보다 작은 경우, 상기 복수의 스테이지들 중 제2 스테이지에 대한 제2 페일 비트 카운팅 동작을 수행하여 제2 페일 비트 누적값을 생성하는 단계; 및
    제2 페일 기준값 및 상기 생성된 제2 페일 비트 누적값을 비교하여 프로그램 페일 여부를 판별하는 단계를 포함하되,
    복수의 메모리 셀들에 대한 검증 읽기 결과가 상기 복수의 스테이지들 각각으로 분할되고,
    상기 제2 페일 기준값은 상기 제1 페일 기준값과 다른 프로그램 검증 방법.
  2. 제 1 항에 있어서,
    상기 생성된 제1 페일 비트 누적값 및 제1 페일 기준값을 비교하여 프로그램 페일 여부를 판별하는 단계는,
    상기 생성된 제1 페일 비트 누적값이 상기 제1 페일 기준값보다 크거나 같은 경우, 페일 신호를 출력하는 단계를 포함하는 프로그램 검증 방법.
  3. 제 2 항에 있어서,
    상기 생성된 제1 페일 비트 누적값이 상기 제1 페일 기준값보다 크거나 같은 경우, 상기 제1 페일 기준값과 다른 제2 페일 기준값 및 상기 생성된 제2 페일 비트 누적값을 비교하여 프로그램 페일 여부를 판별하는 단계를 생략하는 프로그램 검증 방법.
  4. 제 1 항에 있어서,
    상기 제1 페일 비트 카운팅 동작은 상기 제1 스테이지에 대응하는 메모리 셀들 중 목표 프로그램 상태로 프로그램되지 않은 메모리 셀들을 카운팅하는 동작을 가리키고, 상기 제2 페일 비트 카운팅 동작은 상기 제2 스테이지에 대응하는 메모리 셀들 중 목표 프로그램 상태로 프로그램되지 않은 메모리 셀들을 카운팅하는 동작을 가리키는 프로그램 검증 방법.
  5. 제 1 항에 있어서,
    상기 제1 페일 기준값은 상기 제2 페일 기준값보다 작은 프로그램 검증 방법.
  6. 제 1 항에 있어서,
    상기 생성된 제1 페일 비트 누적값 및 제1 페일 기준값을 비교하여 프로그램 페일 여부를 판별하는 단계 또는 상기 제1 페일 기준값과 다른 제2 페일 기준값 및 상기 생성된 제2 페일 비트 누적값을 비교하여 프로그램 페일 여부를 판별하는 단계에서 프로그램 페일로 판별된 경우, 상기 복수의 메모리 셀들에 대한 검증 읽기 동작을 수행하는 단계를 더 포함하는 프로그램 검증 방법.
  7. 제1 항에 있어서,
    상기 생성된 제1 페일 비트 누적값 및 제1 페일 기준값을 비교하여 프로그램 페일 여부를 판별하는 단계는,
    상기 제1 페일 비트 누적값 및 제1 패스 기준값을 비교하여 프로그램 패스 여부를 판별하는 단계를 포함하는 프로그램 검증 방법.
  8. 제 7 항에 있어서,
    상기 제1 페일 비트 누적값이 상기 제1 패스 기준값보다 작거나 같은 경우, 프로그램 패스로 판별하고, 상기 제2 페일 비트 카운팅 동작을 수행하여 상기 제2 페일 비트 누적값을 생성하는 단계 및 상기 제2 페일 기준값 및 상기 제2 페일 비트 누적값을 비교하여 프로그램 페일 여부를 판별하는 단계를 생략하는 프로그램 검증 방법.
  9. 제 7 항에 있어서,
    상기 제1 패스 기준값은 상기 제1 페일 기준값보다 작은 프로그램 검증 방법.
  10. 제 1 항에 있어서,
    상기 복수의 스테이지들 중 제1 스테이지에 대한 제1 페일 비트 카운팅 동작을 수행하여 제1 페일 비트 누적값을 생성하는 단계는,
    상기 제1 스테이지에 대한 상기 제1 페일 비트 동작을 수행하여, 상기 제1 스테이지에 대응되는 메모리 셀들 중 목표 프로그램 상태로 프로그램되지 않은 메모리 셀들의 개수를 가리키는 제1 페일 비트 카운팅 값을 생성하는 단계를 포함하는 프로그램 검증 방법.
  11. 제 10 항에 있어서,
    상기 생성된 제1 페일 비트 누적값 및 제1 페일 기준값을 비교하여 프로그램 페일 여부를 판별하는 단계는,
    상기 제1 페일 비트 카운팅 값 및 고정 페일 기준값을 비교하여 프로그램 페일 여부를 판별하는 단계를 포함하는 프로그램 검증 방법.
  12. 제 1 항에 있어서,
    상기 제1 및 제2 페일 기준값들은 상기 불휘발성 메모리 장치의 읽기 마진, 셀당 저장되는 비트 수, 검증되는 목표 프로그램 상태, 또는 외부 장치의 에러 정정 능력을 기반으로 결정되는 프로그램 검증 방법.
  13. 제 1 항에 있어서,
    상기 불휘발성 메모리 장치는 3차원 메모리 어레이를 포함하는 프로그램 검증 방법.
  14. 제 13 항에 있어서,
    상기 3차원 메모리 어레이는 상기 복수의 메모리 셀들을 포함하고,
    상기 복수의 메모리 셀들 각각은 실리콘 기판 위에 배치되는 활성 영역들을 갖는 메모리 셀들의 하나 또는 그 이상의 물리 레벨들에 모놀리식으로(monolithically) 형성되는 프로그램 검증 방법.
  15. 제 13 항에 있어서,
    상기 3차원 메모리 어레이의 상기 복수의 메모리 셀들 각각은 전하 트랩형 메모리 셀인 프로그램 검증 방법.
  16. 제 13 항에 있어서,
    상기 3차원 메모리 어레이의 워드라인들 및 비트라인들은 레벨들 사이에서 공유되는 프로그램 검증 방법.
  17. 불휘발성 메모리 장치의 프로그램 검증 방법에 있어서,
    제1 페일 기준값을 기반으로 복수의 스테이지들 중 적어도 하나의 스테이지에 대한 페일 비트 카운팅 동작을 수행하여 프로그램 페일 여부를 판별하는 단계; 및
    상기 제1 페일 기준값과 다른 제2 페일 기준값을 기반으로 나머지 스테이지들 중 적어도 하나의 스테이지에 대한 페일 비트 카운팅 동작을 수행하여 프로그램 페일 여부를 판별하는 단계를 포함하되,
    복수의 메모리 셀들에 대한 검증 읽기 결과가 상기 복수의 스테이지들 각각으로 분할되는 프로그램 검증 방법.
  18. 불휘발성 메모리 장치의 프로그램 방법에 있어서,
    선택된 워드라인으로 프로그램 전압을 인가하는 단계;
    상기 선택된 워드라인으로 적어도 하나의 검증 전압을 인가하여 상기 선택된 워드라인과 연결된 메모리 셀들에 대한 검증 읽기 동작을 수행하는 단계; 및
    상기 검증 읽기 동작의 결과를 기반으로 프로그램 패스 또는 페일 여부를 판별하는 단계를 포함하고,
    상기 프로그램 패스 또는 페일 여부를 판별하는 단계는,
    상기 검증 읽기 동작의 결과를 기반으로 상기 메모리 셀들에 대한 페일 비트 카운팅 동작을 수행하여 페일 비트 페일 비트 누적값을 생성하고, 상기 페일 비트 페일 비트 누적값 및 페일 비트 기준값을 비교하여 프로그램 패스 또는 페일 여부를 판별하는 단계를 포함하고,
    상기 페일 비트 카운팅 동작이 수행되는 동안 상기 페일 기준값이 가변되는 것을 특징으로 하는 프로그램 방법.
  19. 불휘발성 메모리 장치의 프로그램 검증 방법에 있어서,
    복수의 스테이지들 중 제1 스테이지에 대한 제1 페일 비트 카운팅 동작을 수행하여 제1 페일 비트 누적값을 생성하는 단계;
    상기 생성된 제1 페일 비트 누적값 및 제1 패스 기준값을 비교하여 프로그램 패스 여부를 판별하는 단계;
    상기 생성된 제1 페일 비트 누적값이 상기 제1 패스 기준값보다 큰 경우, 상기 복수의 스테이지들 중 제2 스테이지에 대한 제2 페일 비트 카운팅 동작을 수행하여 제2 페일 비트 누적값을 생성하는 단계; 및
    제2 패스 기준값 및 상기 생성된 제2 페일 비트 누적값을 비교하여 프로그램 패스 여부를 판별하는 단계를 포함하되,
    복수의 메모리 셀들에 대한 검증 읽기 결과가 상기 복수의 스테이지들 각각으로 분할되고,
    상기 제2 패스 기준값은 상기 제1 패스 기준값과 다른 프로그램 검증 방법.
  20. 복수의 워드라인들과 연결된 복수의 메모리 셀들을 포함하는 메모리 셀 어레이;
    비트 라인들을 통해 상기 메모리 셀 어레이와 연결되고, 검증 읽기 시에 검증 읽기 결과를 저장하고, 상기 검증 읽기 결과를 복수의 스테이지들로 분할하고, 상기 검증 읽기 결과를 상기 분할된 스테이지 단위로 순차적으로 출력하도록 구성되는 페이지 버퍼 회로; 및
    상기 페이지 버퍼 회로로부터 출력되는 복수의 스테이지들 각각에 대한 페일 비트 카운팅 동작을 수행하여 프로그램 패스 또는 페일 여부를 판별하는 패스 페일 체커를 포함하되,
    상기 패스 페일 체커는 상기 복수의 스테이지들 각각에 대한 상기 페일 비트 카운팅 동작을 순차적으로 수행하여 복수의 페일 비트 누적값들을 생성하고, 상기 복수의 페일 비트 누적값들 및 페일 비트 기준값을 비교하여 프로그램 패스 페일 여부를 판별하되, 상기 페일 비트 카운팅 동작이 수행되는 동안 상기 페일 비트 기준값을 가변하는 것을 특징으로 하는 불휘발성 메모리 장치.
KR1020150114801A 2015-08-13 2015-08-13 불휘발성 메모리 장치 및 그것의 프로그램 방법 및 프로그램 검증 방법 KR102291456B1 (ko)

Priority Applications (7)

Application Number Priority Date Filing Date Title
KR1020150114801A KR102291456B1 (ko) 2015-08-13 2015-08-13 불휘발성 메모리 장치 및 그것의 프로그램 방법 및 프로그램 검증 방법
US15/155,162 US10061633B2 (en) 2015-08-13 2016-05-16 Nonvolatile memory device and program method and program verification method thereof
CN201610665846.6A CN106448733B (zh) 2015-08-13 2016-08-12 非易失性存储器设备、编程方法和其编程验证方法
US16/108,408 US10777264B2 (en) 2015-08-13 2018-08-22 Nonvolatile memory device and program method and program verification method thereof
US17/018,097 US11437094B2 (en) 2015-08-13 2020-09-11 Nonvolatile memory device, storage device, and operation method of storage device
US17/901,308 US11756613B2 (en) 2015-08-13 2022-09-01 Nonvolatile memory device
US18/238,212 US20230410900A1 (en) 2015-08-13 2023-08-25 Nonvolatile memory device, operation method of a nonvolatile memory device, and operation method of a controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150114801A KR102291456B1 (ko) 2015-08-13 2015-08-13 불휘발성 메모리 장치 및 그것의 프로그램 방법 및 프로그램 검증 방법

Publications (2)

Publication Number Publication Date
KR20170020658A true KR20170020658A (ko) 2017-02-23
KR102291456B1 KR102291456B1 (ko) 2021-08-23

Family

ID=57995430

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150114801A KR102291456B1 (ko) 2015-08-13 2015-08-13 불휘발성 메모리 장치 및 그것의 프로그램 방법 및 프로그램 검증 방법

Country Status (3)

Country Link
US (2) US10061633B2 (ko)
KR (1) KR102291456B1 (ko)
CN (1) CN106448733B (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170110768A (ko) * 2016-03-23 2017-10-12 삼성전자주식회사 페이지 버퍼를 포함하는 불휘발성 메모리 장치 및 그것의 프로그램 검증 방법
KR20190054451A (ko) * 2017-11-13 2019-05-22 삼성전자주식회사 매스비트 카운터를 포함하는 메모리 장치 및 그의 동작 방법
US11842779B2 (en) 2021-05-21 2023-12-12 SK Hynix Inc. Memory device and operating method for performing verify operation

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102341262B1 (ko) * 2015-08-11 2021-12-20 삼성전자주식회사 메모리 장치 및 메모리 장치의 동작 방법
US10346097B2 (en) * 2015-11-26 2019-07-09 Samsung Electronics Co., Ltd. Nonvolatile memory device and storage device including nonvolatile memory device
KR102634421B1 (ko) * 2016-11-21 2024-02-06 에스케이하이닉스 주식회사 페일 비트 카운터 및 이를 포함하는 반도체 메모리 장치
KR20200144311A (ko) * 2019-06-18 2020-12-29 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
KR20210062343A (ko) * 2019-11-21 2021-05-31 에스케이하이닉스 주식회사 메모리 장치 및 그 동작 방법
KR20210092860A (ko) 2020-01-16 2021-07-27 삼성전자주식회사 불휘발성 메모리 장치 및 불휘발성 메모리 장치를 포함하는 스토리지 장치
US11355208B2 (en) * 2020-06-30 2022-06-07 Sandisk Technologies Llc Triggering next state verify in progam loop for nonvolatile memory
US11605437B2 (en) * 2021-06-25 2023-03-14 Sandisk Technologies Llc Memory programming with selectively skipped verify pulses for performance improvement
US11790992B2 (en) * 2021-06-28 2023-10-17 Sandisk Technologies Llc State dependent VPVD voltages for more uniform threshold voltage distributions in a memory device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120136116A (ko) * 2011-06-08 2012-12-18 삼성전자주식회사 불휘발성 메모리 장치 및 불휘발성 메모리 장치의 프로그램 방법
US20140237298A1 (en) * 2013-02-21 2014-08-21 Sandisk Technologies Inc. Methods, systems, and computer readable media for early detection of potential flash failures using an adaptive system level algorithm based on flash program verify

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7355892B2 (en) * 2006-06-30 2008-04-08 Sandisk Corporation Partial page fail bit detection in flash memory devices
US7593259B2 (en) * 2006-09-13 2009-09-22 Mosaid Technologies Incorporated Flash multi-level threshold distribution scheme
KR100875035B1 (ko) * 2006-10-31 2008-12-19 주식회사 하이닉스반도체 불휘발성 메모리 장치의 멀티 레벨 셀 카피백 프로그램방법
US7440319B2 (en) 2006-11-27 2008-10-21 Sandisk Corporation Apparatus with segmented bitscan for verification of programming
US7616499B2 (en) * 2006-12-28 2009-11-10 Sandisk Corporation Retention margin program verification
KR100884234B1 (ko) 2007-05-25 2009-02-18 삼성전자주식회사 프로그램 성능을 향상시킬 수 있는 플래시 메모리 장치 및그것의 프로그램 방법
US7746680B2 (en) * 2007-12-27 2010-06-29 Sandisk 3D, Llc Three dimensional hexagonal matrix memory array
US7872941B2 (en) 2008-07-10 2011-01-18 Hynix Semiconductor Inc. Nonvolatile memory device and method of operating the same
JP2010176761A (ja) 2009-01-30 2010-08-12 Toshiba Corp 半導体記憶装置
KR101022882B1 (ko) * 2009-06-12 2011-03-16 주식회사 하이닉스반도체 불휘발성 메모리 장치의 동작 방법
US8054691B2 (en) * 2009-06-26 2011-11-08 Sandisk Technologies Inc. Detecting the completion of programming for non-volatile storage
KR101617641B1 (ko) * 2009-08-27 2016-05-03 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템, 및 그것의 프로그램 방법
KR101653206B1 (ko) 2010-01-19 2016-09-02 삼성전자주식회사 프로그램 검증 회로 및 이를 포함하는 비휘발성 메모리 장치
KR101676816B1 (ko) * 2010-02-11 2016-11-18 삼성전자주식회사 플래시 메모리 장치 및 그것의 프로그램 방법
JP2011253593A (ja) 2010-06-02 2011-12-15 Toshiba Corp 不揮発性半導体記憶装置
KR101656384B1 (ko) * 2010-06-10 2016-09-12 삼성전자주식회사 불휘발성 메모리 장치의 데이터 기입 방법
US8737141B2 (en) * 2010-07-07 2014-05-27 Stec, Inc. Apparatus and method for determining an operating condition of a memory cell based on cycle information
KR101201582B1 (ko) * 2010-09-06 2012-11-14 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이의 동작 방법
US8493792B2 (en) * 2010-12-02 2013-07-23 Hynix Semiconductor Inc. Programming method of non-volatile memory device
JP2012133840A (ja) * 2010-12-20 2012-07-12 Samsung Yokohama Research Institute Co Ltd 半導体記憶装置、及び記憶方法
US8867278B2 (en) 2011-02-28 2014-10-21 Samsung Electronics Co., Ltd. Nonvolatile memory device, memory system including the same, and method of operating nonvolatile memory device
JP5259765B2 (ja) 2011-03-29 2013-08-07 株式会社東芝 不揮発性半導体メモリ
JP5542746B2 (ja) * 2011-06-08 2014-07-09 株式会社東芝 半導体記憶装置
US20130159610A1 (en) * 2011-12-16 2013-06-20 Samsung Electronics Co., Ltd. Non-volatile semiconductor memory device related method of operation
JP5740296B2 (ja) * 2011-12-16 2015-06-24 株式会社東芝 半導体記憶装置、半導体記憶装置の制御方法、制御プログラム
KR20140006460A (ko) * 2012-07-05 2014-01-16 에스케이하이닉스 주식회사 불휘발성 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치
KR20140020155A (ko) * 2012-08-08 2014-02-18 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이의 동작 방법
US9449924B2 (en) * 2013-12-20 2016-09-20 Sandisk Technologies Llc Multilevel contact to a 3D memory array and method of making thereof
US9417945B2 (en) * 2014-03-05 2016-08-16 International Business Machines Corporation Error checking and correction for NAND flash devices
KR102235492B1 (ko) * 2014-08-25 2021-04-05 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 검증 방법
US20160196062A1 (en) * 2015-01-05 2016-07-07 Kabushiki Kaisha Toshiba Memory system
KR102320955B1 (ko) * 2015-02-02 2021-11-05 삼성전자주식회사 불 휘발성 메모리 장치 및 그것의 읽기 방법
ITUB20151149A1 (it) * 2015-05-27 2016-11-27 Sk Hynix Inc Memoria non volatile comprendente un blocco di controllo del rilevamento di corrente e corrispondente metodo di verifica di programmazione

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120136116A (ko) * 2011-06-08 2012-12-18 삼성전자주식회사 불휘발성 메모리 장치 및 불휘발성 메모리 장치의 프로그램 방법
US20140237298A1 (en) * 2013-02-21 2014-08-21 Sandisk Technologies Inc. Methods, systems, and computer readable media for early detection of potential flash failures using an adaptive system level algorithm based on flash program verify

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170110768A (ko) * 2016-03-23 2017-10-12 삼성전자주식회사 페이지 버퍼를 포함하는 불휘발성 메모리 장치 및 그것의 프로그램 검증 방법
KR20190054451A (ko) * 2017-11-13 2019-05-22 삼성전자주식회사 매스비트 카운터를 포함하는 메모리 장치 및 그의 동작 방법
US11594294B2 (en) 2017-11-13 2023-02-28 Samsung Electronics Co., Ltd. Memory device including massbit counter and method of operating the same
US11776642B2 (en) 2017-11-13 2023-10-03 Samsung Electronics Co., Ltd. Memory device including massbit counter and method of operating the same
US11842779B2 (en) 2021-05-21 2023-12-12 SK Hynix Inc. Memory device and operating method for performing verify operation

Also Published As

Publication number Publication date
US10777264B2 (en) 2020-09-15
US10061633B2 (en) 2018-08-28
US20180358088A1 (en) 2018-12-13
US20170046210A1 (en) 2017-02-16
CN106448733A (zh) 2017-02-22
KR102291456B1 (ko) 2021-08-23
CN106448733B (zh) 2022-04-12

Similar Documents

Publication Publication Date Title
KR102291456B1 (ko) 불휘발성 메모리 장치 및 그것의 프로그램 방법 및 프로그램 검증 방법
CN109935267B (zh) 半导体存储器装置及其操作方法
US9275751B2 (en) Nonvolatile memory device and program method
US10748633B2 (en) Semiconductor memory device
US9224483B2 (en) Nonvolatile memory device, system and programming method with dynamic verification mode selection
CN109410998B (zh) 存储器装置及其操作方法
US11756613B2 (en) Nonvolatile memory device
CN108305658B (zh) 半导体存储装置及其操作方法
US9281068B2 (en) Nonvolatile memory and related reprogramming method
US9286990B1 (en) Storage device, nonvolatile memory and method operating same
US8902666B2 (en) Programming method for nonvolatile memory device
US9627070B2 (en) Program method of nonvolatile memory device for having dense threshold voltage distribution by controlling voltage of bit line according to threshold voltage of memory cell
KR102122239B1 (ko) 비휘발성 메모리 장치 및 그 프로그램 방법
KR20160087431A (ko) 불휘발성 메모리 장치, 그것의 동작 방법, 및 그것의 프로그램 방법
US20170169866A1 (en) Page buffer and memory device having the same
CN110197693B (zh) 半导体存储器装置和与操作半导体存储器装置有关的方法
KR20190073128A (ko) 메모리 장치 및 그 동작 방법
KR20190006327A (ko) 반도체 메모리 장치 및 이의 동작 방법
CN106504788B (zh) 具有空闲存储器件的存储系统及其操作方法
CN116580744A (zh) 存储器装置中的双单层级单元编程
KR20180028292A (ko) 반도체 메모리 장치 및 그것의 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right