KR20110093077A - 플래시 메모리 장치 및 그것의 프로그램 방법 - Google Patents

플래시 메모리 장치 및 그것의 프로그램 방법 Download PDF

Info

Publication number
KR20110093077A
KR20110093077A KR1020100012894A KR20100012894A KR20110093077A KR 20110093077 A KR20110093077 A KR 20110093077A KR 1020100012894 A KR1020100012894 A KR 1020100012894A KR 20100012894 A KR20100012894 A KR 20100012894A KR 20110093077 A KR20110093077 A KR 20110093077A
Authority
KR
South Korea
Prior art keywords
program
verify
state
verification
states
Prior art date
Application number
KR1020100012894A
Other languages
English (en)
Other versions
KR101676816B1 (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 KR1020100012894A priority Critical patent/KR101676816B1/ko
Priority to US12/963,867 priority patent/US8411502B2/en
Priority to JP2010286569A priority patent/JP5698968B2/ja
Priority to TW099146352A priority patent/TWI484493B/zh
Priority to CN201610245371.5A priority patent/CN105931671B/zh
Priority to CN201010622089.7A priority patent/CN102157204B/zh
Publication of KR20110093077A publication Critical patent/KR20110093077A/ko
Priority to US13/841,503 priority patent/US9076534B2/en
Priority to US14/726,927 priority patent/US9406394B2/en
Priority to US14/747,786 priority patent/US20150348633A1/en
Application granted granted Critical
Publication of KR101676816B1 publication Critical patent/KR101676816B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • 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
    • 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/5671Digital 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 trapping in an insulator
    • 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
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)

Abstract

여기에 제공되는 플래시 메모리 장치의 프로그램 방법은 선택된 워드 라인의 메모리 셀들을 프로그램하고, 검증 동작을 수행하여 상기 선택된 워드 라인의 메모리 셀들의 문턱 전압들이 목표 상태들의 검증 레벨들과 같거나 높은 지의 여부를 판별하는 것을 포함하고, 상기 목표 상태들 각각과 관련된 상기 검증 동작의 시작점은 상기 목표 상태들 이전에 행해진 초기 상태들의 프로그래밍 동안 최초로 검출된 적어도 하나의 패스 비트의 위치에 의거하여 결정되고, 상기 목표 상태들 각각과 관련된 상기 검증 동작의 종료점은 상기 목표 상태들 중 최하위 목표 상태의 패스 정보에 의거하여 결정된다.

Description

플래시 메모리 장치 및 그것의 프로그램 방법{FLASH MEMORY DEVICE AND PROGRAM METHOD THEREOF}
본 발명은 반도체 메모리 장치에 관한 것으로, 좀 더 구체적으로는 플래시 메모리 장치를 프로그램하는 방법에 관한 것이다.
플래시 메모리 장치는 복수의 메모리 영역들이 한번의 프로그램 동작으로 소거 또는 프로그램되는 일종의 EEPROM이다. 일반적인 EEPROM은 단지 하나의 메모리 영역이 한 번에 소거 또는 프로그램 가능하게 하며, 이는 플래시 메모리 장치를 사용하는 시스템들이 동시에 다른 메모리 영역들에 대해 읽고 쓸 때 보다 빠르고 효과적인 속도로 플래시 메모리 장치가 동작할 수 있음을 의미한다. 플래시 메모리 및 EEPROM의 모든 형태는 데이터를 저장하는 데 사용되는 전하 저장 수단의 열화 또는 전하 저장 수단을 둘러싸고 있는 절연막의 마멸로 인해서 특정 수의 소거 동작들 후에 마멸된다.
플래시 메모리 장치는 실리콘 칩에 저장된 정보를 유지하는 데 전원을 필요로 하지 않는 방법으로 실리콘 칩 상에 정보를 저장한다. 이는 만약 칩에 공급되는 전원이 차단되면 전원의 소모없이 정보가 유지됨을 의미한다. 추가로, 플래시 메모리 장치는 물리적인 충격 저항성 및 빠른 읽기 접근 시간을 제공한다. 이러한 특징들때문에, 플래시 메모리 장치는 배터리에 의해서 전원을 공급받는 장치들의 저장 장치로서 일반적으로 사용되고 있다. 플래시 메모리 장치는 셀이라 불리는 트랜지스터들의 어레이에 정보를 저장하며, 각 셀은 1-비트 정보를 저장한다. 멀티-레벨 셀 장치라 불리는 보다 새로운 플래시 메모리 장치들은 셀의 플로팅 게이트 상에 놓인 전하량을 가변시킴으로써 셀 당 1 비트보다 많이 저장할 수 있다.
본 발명의 목적은 프로그램 성능을 향상시킬 수 있는 프로그램 방법을 제공하는 것이다.
본 발명의 일 특징은 플래시 메모리 장치를 프로그램하는 방법을 제공하는 것이며, 이 방법은 선택된 워드 라인의 메모리 셀들을 프로그램하고, 검증 동작을 수행하여 상기 선택된 워드 라인의 메모리 셀들의 문턱 전압들이 목표 상태들의 검증 레벨들과 같거나 높은 지의 여부를 판별하는 것을 포함하고, 상기 목표 상태들 각각과 관련된 상기 검증 동작의 시작점은 상기 목표 상태들 이전에 행해진 초기 상태들의 프로그래밍 동안 최초로 검출된 적어도 하나의 패스 비트의 위치에 의거하여 결정되고, 상기 목표 상태들 각각과 관련된 상기 검증 동작의 종료점은 상기 목표 상태들 중 최하위 목표 상태의 패스 정보에 의거하여 결정된다.
본 발명의 예시적인 실시예들에 의하면, 프로그램 상태들에 각각 대응하는 검증 시작점들이 도래할 때까지 검증 동작들을 생략함으로써 프로그램 성능을 향상시키는 것이 가능하다. 또한, 프로그램 상태들의 검증 종료점들이 도래한 후 검증 동작들을 생략함으로써 프로그램 성능을 향상시키는 것이 가능하다.
도 1은 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치를 개략적으로 보여주는 블록도이다.
도 2는 올 비트 라인 메모리 구조 또는 오드-이븐 메모리 구조를 위해 메모리 셀 어레이를 메모리 블록들로 구성하는 예를 보여주는 도면이다.
도 3a 내지 도 3c는 메모리 셀에 저장되는 데이터 비트들의 수에 따른 문턱 전압 분포들을 개략적으로 설명하기 위한 도면들이다.
도 4는 선택된 워드 라인의 메모리 셀들을 프로그램하기 위한 일련의 프로그램 펄스들을 보여주는 도면이다.
도 5는 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치의 프로그램 방법을 개략적으로 설명하기 위한 도면이다.
도 6 및 도 7은 도 5a에서 설명된 프로그램 절차의 검증 방식을 설명하기 위한 도면들이다.
도 8 및 도 9는 도 5b에서 설명된 프로그램 절차의 검증 방식을 설명하기 위한 도면들이다.
도 10 및 도 11은 도 5c에서 설명된 프로그램 절차의 검증 방식을 설명하기 위한 도면들이다.
도 12a 내지 도 12c는 도 5a 내지 도 5c에서 설명된 프로그램 절차를 개략적으로 보여주는 도면들이다.
도 13은 본 발명의 다른 예시적인 실시예에 따른 플래시 메모리 장치의 프로그램 방법을 설명하기 위한 도면이다.
도 14는 본 발명의 다른 예시적인 실시예에 따른 플래시 메모리 장치의 프로그램 방법을 설명하기 위한 도면이다.
도 15는 본 발명의 또 다른 예시적인 실시예에 따른 플래시 메모리 장치의 프로그램 방법을 개략적으로 설명하기 위한 도면이다.
도 16은 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치의 프로그램 방법을 설명하기 위한 흐름도이다.
도 17는 멀티-비트 데이터의 문턱 전압 분포들을 개략적으로 보여주는 도면이다.
도 18은 본 발명의 예시적인 실시예에 따른 도 16에서 설명된 프로그램 방법에 적용된 검증 방식을 개략적으로 설명하기 위한 도면이다.
도 19는 본 발명의 다른 예시적인 실시예에 따른 도 16에서 설명된 프로그램 방법에 적용된 검증 방식을 개략적으로 설명하기 위한 도면이다.
도 20은 본 발명의 다른 예시적인 실시예에 따른 플래시 메모리 장치의 프로그램 방법을 설명하기 위한 흐름도이다.
도 21은 본 발명의 일 실시예에 따른 도 20에서 설명된 프로그램 방법에 적용된 검증 방식을 개략적으로 설명하기 위한 도면이다.
도 22는 도 20에서 설명된 프로그램 방법이 적용되는 플래시 메모리 장치를 개략적으로 보여주는 블록도이다.
도 23 내지 도 26은 본 발명의 또 다른 예시적인 실시예들에 따른 플래시 메모리 장치의 프로그램 방법을 개략적으로 설명하기 위한 흐름도들이다.
도 27은 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치를 포함한 집적 회로 카드를 개략적으로 보여주는 블록도이다.
도 28은 본 발명의 예시적인 실시예들에 따른 플래시 메모리 장치를 포함한 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다.
도 29는 본 발명의 예시적인 실시예에 따른 도 28에 도시된 메모리 제어기를 개략적으로 보여주는 블록도이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
도면들에 있어서, 본 발명의 실시 예들은 도시된 특정 형태로 제한되는 것이 아니며 명확성을 기하기 위하여 과장된 것이다. 또한 명세서 전체에 걸쳐서 동일한 참조번호로 표시된 부분들은 동일한 구성요소를 나타낸다.
본 명세서에서 ‘및/또는’이란 표현은 전후에 나열된 구성요소들 중 적어도 하나를 포함하는 의미로 사용된다. 또한, ‘연결되는/결합되는’이란 표현은 다른 구성요소와 직접적으로 연결되거나 다른 구성요소를 통해 간접적으로 연결되는 것을 포함하는 의미로 사용된다. 본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 명세서에서 사용되는 ‘포함한다’ 또는 ‘포함하는’으로 언급된 구성요소, 단계, 동작 및 소자는 하나 이상의 다른 구성요소, 단계, 동작, 소자 및 장치의 존재 또는 추가를 의미한다.
도 1은 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치를 개략적으로 보여주는 블록도이다.
도 1을 참조하면, 플래시 메모리 장치는, 예를 들면, 낸드 플래시 메모리 장치이다. 하지만, 본 발명이 낸드 플래시 메모리 장치에 국한되지 않음은 잘 이해될 것이다. 플래시 메모리 장치는 행들(워드 라인들:WL)과 열들(비트 라인들:BL)로 배열된 메모리 셀들을 갖는 메모리 셀 어레이(100)를 포함한다. 각 메모리 셀은 1-비트 데이터 또는 M-비트(멀티-비트) 데이터(M은 2 또는 그 보다 큰 정수)를 저장한다. 각 메모리 셀은 플로팅 게이트 또는 전하 트랩층과 같은 전하 저장층을 갖는 메모리 셀, 가변 저항 소자를 갖는 메모리 셀, 또는 그와 같은 것으로 구현될 수 있다. 메모리 셀 어레이(100)는 잘 알려진 단층 어레이 구조(single-layer array structure)(또는, 2차원 어레이 구조라고 불림) 또는 다층 어레이 구조(multi-layer array structure)(또는, 3차원 어레이 구조라고 불림)를 갖도록 구현될 것이다. 예시적인 3차원 어레이 구조가 미국특허 공개번호 제20080/0023747호에 "SEMICONDUCTOR MEMORY DEVICE WITH MEMORY CELLS ON MULTIPLE LAYERS"라는 제목으로 그리고 미국특허 공개번호 제2008/0084729호에 "SEMICONDUCTOR DEVICE WITH THREE-DIMENSIONAL ARRAY STRUCTURE"라는 제목으로 각각 게재되어 있으며, 이 출원의 레퍼런스로 포함될 것이다.
행 선택 회로(200)는 메모리 셀 어레이(100)의 행들에 대한 선택 및 구동 동작들을 수행하도록 구성된다. 전압 발생 회로(300)는 제어 로직(400)에 의해서 제어되며, 프로그램, 소거, 그리고 읽기 동작들에 필요한 전압들(예를 들면, 프로그램 전압, 패스 전압, 소거 전압, 읽기 전압, 등)을 생성하도록 구성된다. 읽기/쓰기 회로(500)는 제어 로직(400)에 의해서 제어되며, 동작 모드에 따라 감지 증폭기로서 또는 쓰기 드라이버로서 동작한다. 예를 들면, 읽기 동작 동안, 읽기/쓰기 회로(500)는 선택된 행의 메모리 셀들(또는, 선택된 메모리 셀들)로부터 데이터를 감지하는 감지 증폭기로서 동작한다. 그렇게 읽혀진 데이터는 정해진 입출력 단위로 입출력 회로(600)를 통해 외부로 제공될 것이다. 프로그램 동작 동안, 읽기/쓰기 회로(500)는 프로그램 데이터에 따라 선택된 행의 메모리 셀들을 구동하는 쓰기 드라이버로서 동작한다. 읽기/쓰기 회로(500)는 비트 라인들에 또는 비트 라인 쌍들에 각각 대응하는 페이지 버퍼들을 포함한다. 메모리 셀들 각각이 멀티-비트/멀티-레벨 데이터를 저장하는 경우, 읽기/쓰기 회로(500)의 각 페이지 버퍼는 2개 또는 그 보다 많은 래치들을 갖도록 구성될 것이다. 입출력 회로(600)는 외부(예를 들면, 메모리 제어기 또는 호스트)와 인터페이스하도록 구성될 것이다.
제어 로직(400)은 플래시 메모리 장치의 전반적인 동작을 제어하도록 구성되며, 패스 비트 검출기(410), 패스/페일 판별기(420), 그리고 레지스터(430)를 포함할 것이다. 패스 비트 검출기(410)는 검증 읽기 동작 동안 읽기/쓰기 회로(500)에 의해서 읽혀진 데이터를 제공받는다. 패스 비트 검출기(410)는 검증 읽기 동작 동안 읽기/쓰기 회로(500)로부터 제공되는 읽혀진 데이터에 의거하여, 선택된 메모리 셀들 중 적어도 하나의 문턱 전압이 검증 레벨과 같거나 높은 지의 여부(또는, 적어도 하나의 메모리 셀이 프로그램 패스되었는 지의 여부)를 판별할 것이다. 선택된 메모리 셀들 중 적어도 하나가 프로그램 패스된 것으로 판별되면, 제어 로직(400)은 프로그램 패스된 루프에 대응하는 프로그램 전압과, 검증 레벨들 사이의 전압차에 의거하여 다음에 수행될 검증 읽기 동작들의 시작점들(또는, 루프들)을 결정/예측할 것이다. 다음에 수행될 검증 읽기 동작들의 시작점들(또는, 루프들)이 결정될 때까지 다음에 수행될 검증 읽기 동작들은 생략되며, 이는 이후 상세히 설명될 것이다. 제어 로직(400)은 프로그램 패스된 루프를 나타내는 정보(또는, 패스 비트 정보라 칭함)를 레지스터(430)에 저장할 것이다. 그렇게 저장된 패스 비트 정보는 패스 비트를 검출하는 것이 어려운 검증 조건에서 검증 읽기 동작들의 시작점들(또는 루프들)을 예측/결정하는 데 사용될 것이다. 이는 이후 상세히 설명될 것이다. 또는, 프로그램 패스된 루프를 나타내는 패스 비트 정보는 외부(예를 들면, 메모리 제어기)에 제공될 수도 있다. 패스/페일 판별기(420)는 검증 읽기 동작 동안 읽기/쓰기 회로(500)로부터 제공되는 읽혀진 데이터에 의거하여, 선택된 메모리 셀들이 모두 프로그램 패스되었는 지의 여부를 판별할 것이다.
예시적인 실시예에 있어서, 패스/페일 판별과 패스 비트 검출의 순서는 다양하게 변경될 수 있다. 예를 들면, 패스 비트 검출은 패스/페일 판별에 앞서 행해질 수 있다. 또는, 패스 비트 검출은 패스/페일 판별의 다음에 행해질 수 있다. 또는, 패스/페일 판별은 패스 비트가 검출되었는 지의 여부에 따라 행해질 수도 있다.
도 2는 올 비트 라인 메모리 구조 또는 오드-이븐 메모리 구조를 위해 메모리 셀 어레이를 메모리 블록들로 구성하는 예를 보여주는 도면이다. 메모리 셀 어레이(100)의 예시적인 구조들이 설명될 것이다. 일례로서, 메모리 셀 어레이(100)가 1024개의 메모리 블록들로 나눠진 낸드 플래시 메모리 장치가 설명될 것이다. 각 메모리 블록에 저장된 데이터는 동시에 소거될 수 있다. 일 실시예에 있어서, 메모리 블록은 동시에 소거되는 저장 소자들의 최소 단위이다. 각 메모리 블록에는, 예를 들면, 비트 라인들(예를 들면, 1KB의 비트 라인들)에 각각 대응하는 복수의 열들이 있다. 올 비트 라인 (all bit line: ABL) 구조라 불리는 일 실시예에 있어서, 메모리 블록의 모든 비트 라인들은 읽기 및 프로그램 동작들 동안 동시에 선택될 수 있다. 공통 워드 라인에 속하며 모든 비트 라인들과 연결된 저장 소자들은 동시에 프로그램될 수 있다.
예시적인 실시예에 있어서, 동일한 열에 속한 복수의 저장 소자들은 낸드 스트링(111)을 구성하도록 직렬로 연결된다. 낸드 스트링의 일 단자는 스트링 선택 라인(SSL)에 의해서 제어되는 선택 트랜지스터를 통해 대응하는 비트 라인에 연결되고, 다른 단자는 접지 선택 라인(GSL)에 의해서 제어되는 선택 트랜지스터를 통해 공통 소오스 라인(CSL)에 연결된다.
오드-이븐 구조(odd-even architecture)라 불리는 다른 예시적인 실시예에 있어서, 비트 라인들은 이븐 비트 라인들(BLe)과 오드 비트 라인들(BLo)로 구분된다. 오드/이븐 비트 라인 구조에 있어서, 공통 워드 라인에 속하고 오드 비트 라인들과 연결된 저장 소자들이 제 1 시간에 프로그램되는 반면에, 공통 워드 라인에 속하고 이븐 비트 라인들과 연결된 저장 소자들은 제 2 시간에 프로그램된다. 데이터는 다른 블록들로 프로그램될 수 있고 다른 메모리 블록들로부터 읽혀질 수 있다. 이러한 동작은 동시에 수행될 수 있다.
도 3a 내지 도 3c는 메모리 셀에 저장되는 데이터 비트들의 수에 따른 문턱 전압 분포들을 개략적으로 설명하기 위한 도면들이다.
하나의 메모리 셀에 2-비트 데이터(또는, 4-레벨 데이터/2-페이지 데이터)가 저장되는 경우, 도 3a에 도시된 바와 같이, 플래시 메모리 장치의 메모리 셀들 각각은 4개의 문턱 전압 분포들(10, 11, 12, 13) 중 어느 하나에 속하는 문턱 전압을 갖는다. 여기서, 문턱 전압 분포(10)는 소거된 메모리 셀들의 문턱 전압들을 포함하고, 나머지 문턱 전압 분포들(11∼13)은 프로그램된 메모리 셀들의 문턱 전압들을 포함할 것이다. 전압들(VP1, VP2, VP3)은 메모리 셀들이 문턱 전압 분포들(11∼13)로 각각 프로그램되었는 지의 여부를 판별하기 위한 검증 읽기 전압들을 나타낸다. 선택된 워드 라인의 메모리 셀들의 문턱 전압들은 4-레벨 데이터(또는, 2-페이지 데이터)가 선택된 워드 라인의 메모리 셀들에 프로그램된 후 도 3a에 도시된 바와 같이 분포될 것이다.
하나의 메모리 셀에 3-비트 데이터(또는, 8-레벨 데이터/3-페이지 데이터)가 저장되는 경우, 도 3b에 도시된 바와 같이, 메모리 셀들 각각은 8개의 문턱 전압 분포들(20∼27) 중 어느 하나에 속하는 문턱 전압을 갖는다. 문턱 전압 분포(20)는 소거된 메모리 셀들의 문턱 전압들을 포함하고, 나머지 문턱 전압 분포들(21∼27)은 프로그램된 메모리 셀들의 문턱 전압들을 포함할 것이다. 전압들(VP1∼VP7)은 메모리 셀들이 문턱 전압 분포들(21∼27)로 각각 프로그램되었는 지의 여부를 판별하기 위한 검증 읽기 전압들을 나타낸다. 선택된 워드 라인의 메모리 셀들의 문턱 전압들은 8-레벨 데이터(또는, 3-페이지 데이터)가 선택된 워드 라인의 메모리 셀들에 프로그램된 후 도 3b에 도시된 바와 같이 분포될 것이다.
하나의 메모리 셀에 4-비트 데이터(또는, 16-레벨 데이터/4-페이지 데이터)가 저장되는 경우, 도 3c에 도시된 바와 같이, 메모리 셀들 각각은 16개의 문턱 전압 분포들(30∼45) 중 어느 하나에 속하는 문턱 전압을 갖는다. 문턱 전압 분포(30)는 소거된 메모리 셀들의 문턱 전압들을 포함하고, 나머지 문턱 전압 분포들(31∼45)은 프로그램된 메모리 셀들의 문턱 전압들을 포함할 것이다. 전압들(VP1∼VP15)은 메모리 셀들이 문턱 전압 분포들(31∼45)로 각각 프로그램되었는 지의 여부를 판별하기 위한 검증 읽기 전압들을 나타낸다. 선택된 워드 라인의 메모리 셀들의 문턱 전압들은 16-레벨 데이터(또는, 4-페이지 데이터)가 선택된 워드 라인의 메모리 셀들에 프로그램된 후 도 3c에 도시된 바와 같이 분포될 것이다.
도 4는 선택된 워드 라인의 메모리 셀들을 프로그램하기 위한 일련의 프로그램 펄스들을 보여주는 도면이다.
일반적인 프로그램 방식에 있어서, 프로그램 전압(Vpgm)은 일련의 펄스들로 메모리 셀 즉, 저장 소자의 제어 게이트에 인가된다. 펄스들의 크기는 소정의 스텝 크기만큼 각 연속 펄스(each successive pulse)와 함께 증가된다. 프로그램 펄스들 사이의 구간들에서, 검증 동작들(또는, 검증 읽기 동작들)이 수행된다. 즉, 동시에 프로그램될 저장 소자들(즉, 선택된 워드 라인에 속한 저장 소자들) 각각의 프로그래밍 레벨(또는, 문턱 전압)은 저장 소자가 프로그램될 검증 레벨보다 큰 지 또는 동일한 지의 여부를 결정하기 위해서 연속 프로그램 펄스들 사이에서 읽혀진다.
멀티-레벨 플래시 메모리 소자들의 어레이의 경우, 저장 소자가 자신의 데이터와 관련된 검증 레벨(its data-associated verify level)에 도달했는 지의 여부를 결정하기 위해서 저장 소자의 각 상태에 대해서 검증 동작들이 수행될 것이다. 예를 들면, 도 4에 도시된 바와 같이, 데이터를 4개의 상태들/레벨들로 저장할 수 있는 멀티-레벨 메모리 소자(예를 들면, 4-레벨 MLC)는 3개의 비교 포인터들(VP1, VP2, VP3)과 관련하여 검증 동작들을 필요로 한다. 마찬가지로, 데이터를 8개의 상태들/레벨들로 저장할 수 있는 멀티-레벨 메모리 소자(예를 들면, 8-레벨 MLC)는 7개의 비교 포인터들(VP1∼VP7)과 관련하여 검증 동작들을 수행해야 할 것이다. 데이터를 16개의 상태들/레벨들로 저장할 수 있는 멀티-레벨 메모리 소자(예를 들면, 16-레벨 MLC)의 경우, 15개의 비교 포인터들(VP1∼VP15)과 관련하여 검증 동작들이 수행되어야 한다.
이상의 설명으로부터 이해되는 바와 같이, 단위 면적당 용량을 증가시키기 위하여 멀티-레벨 셀들이 채용됨에 따라, 프로그램 시간이 점점 증가한다. 특히, 상태들/레벨들의 수에 비례하여 검증 동작들의 수가 증가하며, 이러한 검증 시간은 전체 프로그램 시간의 큰 비중을 차지한다. 본 발명의 예시적인 실시예들에 따른 플래시 메모리 장치는 상태들/레벨들의 수에 비례하여 검증 동작들의 수가 증가하더라도 검증 시간의 증가를 최소화할 수 있는 적응적인 검증 스킴을 채용하며, 이는 이하 상세히 설명될 것이다.
도 5는 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치의 프로그램 방법을 개략적으로 설명하기 위한 도면이다. 설명에 앞서, 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치가 셀 당 4-비트 데이터를 저장하고 3-스텝 프로그램 방식에 따라 프로그램 동작을 수행한다고 가정하자. 3-스텝 프로그램 방식에 따른 프로그램 방법이 이하 설명될 것이다.
먼저, 선택된 워드 라인의 메모리 셀들에는 2-페이지 데이터(즉, 제 1 및 제 2 페이지 데이터)가 동시에 저장될 것이다. 이때, 도 5a에 도시된 바와 같이, 소거 상태(E)에 대응하는 문턱 전압 분포에 속한 메모리 셀들은 프로그램될 데이터에 따라 프로그램 상태들(Q1, Q2, Q3)에 각각 대응하는 문턱 전압 분포들에 속한 문턱 전압들을 갖도록 프로그램될 것이다.
그 다음에, 선택된 워드 라인의 메모리 셀들에는 2-페이지 데이터 즉, 제 3 및 제 4 페이지 데이터가 동시에 저장될 것이다. 이때, 도 5b에 도시된 바와 같이, 소거 상태(E)에 대응하는 문턱 전압 분포에 속한 메모리 셀들은 프로그램될 데이터에 따라 프로그램 상태들(P1'∼P31)에 각각 대응하는 문턱 전압 분포들에 속한 문턱 전압들을 갖도록 프로그램될 것이다. 도 5a의 프로그램 상태(Q1)에 대응하는 문턱 전압 분포에 속한 메모리 셀들은 프로그램될 데이터에 따라 프로그램 상태들(P4'∼P7')에 각각 대응하는 문턱 전압 분포들에 속한 문턱 전압들을 갖도록 프로그램될 것이다. 도 5a의 프로그램 상태(Q2)에 대응하는 문턱 전압 분포에 속한 메모리 셀들은 프로그램될 데이터에 따라 프로그램 상태들(P8'∼P11')에 각각 대응하는 문턱 전압 분포들에 속한 문턱 전압들을 갖도록 프로그램될 것이다. 도 5a의 프로그램 상태(Q3)에 대응하는 문턱 전압 분포에 속한 메모리 셀들은 프로그램될 데이터에 따라 프로그램 상태들(P12'∼P15')에 각각 대응하는 문턱 전압 분포들에 속한 문턱 전압들을 갖도록 프로그램될 것이다.
여기서, 문턱 전압 분포들(P1'∼P15')을 결정하는 데 사용되는 검증 전압들(VP1'∼VP15')은 최종 문턱 전압 분포들(P1∼P15)(도 5c 참조)을 결정하는 데 사용되는 검증 전압들(VP1∼VP15)보다 낮다. 예를 들면, 문턱 전압 분포(P1')를 결정하는 데 사용되는 검증 전압(VP1')은 대응하는 최종 문턱 전압 분포(P1)를 결정하는 데 사용되는 검증 전압(VP1)보다 낮다. 도 5b에 도시된 문턱 전압 분포들을 갖도록 메모리 셀들을 프로그램하는 동작은 이하 거친 프로그램 동작(coarse program operation)이라 칭한다.
마지막으로, 최종 문턱 전압 분포들(P1∼P15)을 갖도록 문턱 전압 분포들(P1'∼P15')에 속한 메모리 셀들이 프로그램된다. 이러한 동작은 이하 정교한 프로그램 동작(fine program operation)(또는, 재프로그램 동작이라 불림)이라 칭한다.
도 5a, 도 5b, 그리고 도 5c에서 각각 설명된 프로그램 절차들은 연속적으로 또는 비연속적으로 행해질 수 있으며, 메모리 셀들이 원하는 문턱 전압 분포들의 문턱 전압들을 갖도록 프로그램되었는 지의 여부를 판별하기 위한 검증 동작들을 포함할 것이다. 이는 이하 상세히 설명될 것이다.
도 6 및 도 7은 도 5a에서 설명된 프로그램 절차의 검증 방식을 설명하기 위한 도면들이다. 이하, 도 5a에서 설명된 프로그램 절차의 검증 방식이 도 6 및 도 7을 참조하여 상세히 설명될 것이다.
선택된 워드 라인에 속한 메모리 셀들에 프로그램 전압(Vpgm)이 인가된 후, 프로그램 상태(Q1)를 검증하기 위한 검증 전압이 선택된 워드 라인에 인가된다. 이때, 도 6에 도시된 바와 같이, 프로그램 상태들(Q2, Q3)에 대한 검증 동작들은 수행되지 않는다. 검증 전압이 선택된 워드 라인에 인가된 후, 읽기/쓰기 회로(500)는 선택된 워드 라인의 메모리 셀들로부터 데이터를 읽는다. 그 다음에, 제어 로직(400)의 패스 비트 검출기(410)는 읽혀진 데이터에 의거하여 선택된 워드 라인의 메모리 셀들 중 적어도 하나의 문턱 전압이 검증 레벨/전압과 같거나 그 보다 높은 지의 여부를 검출할 것이다. 만약 검출되지 않으면, 절차는 프로그램 전압(Vpgm)이 소정의 증가분만큼 증가된 후 다음의 루프로 진행할 것이다. 만약 검출되면, 나머지 프로그램 상태들(Q2, Q3)의 검증 동작들이 개시되는 시점들(이하, 검증 시작점들 또는 검증 시작 루프들이라 칭함)이 예측될 것이다. 좀 더 구체적으로 설명하면 다음과 같다.
예를 들면, 도 7을 참조하면, 검증 전압(VQ1)과 같거나 그 보다 높은 문턱 전압을 갖는 적어도 하나의 메모리 셀이 검출되면, 제어 로직(400)은 검증 전압들(VQ1, VQ2)의 전압차(△V)와 검출된 메모리 셀에 인가된 프로그램 전압(Vpgm)의 합에 대응하는 프로그램 전압(Vpgm)이 인가되는 루프를 프로그램 상태(Q2)의 검증 시작점/검증 시작 루프로 결정할 것이다. 검증 전압들 사이의 전압차가 일정하다고 가정하면, 제어 로직(400)은 검증 전압들(VQ1, VQ3)의 전압차(2△V)와 검출된 메모리 셀에 인가된 프로그램 전압(Vpgm)의 합에 대응하는 프로그램 전압(Vpgm)이 인가되는 루프를 프로그램 상태(Q3)의 검증 시작점/검증 시작 루프로 결정할 것이다. 프로그램 상태들(Q2, Q3)의 검증 동작들은, 도 6에 도시된 바와 같이, 그렇게 결정된 검증 시작점들/검증 시작 루프까지 행해지지 않을 것이다.
예시적인 실시예에 있어서, 패스 비트가 검출된 루프(또는, 패스 비트로 판별된 메모리 셀(들)에 인가되는 프로그램 전압)는 제어 로직(400)의 레지스터(430)에 저장될 수 있다. 또는, 패스 비트가 검출된 루프(또는, 패스 비트로 판별된 메모리 셀(들)에 인가되는 프로그램 전압)는 제어 로직(400)의 제어 하에 외부(예를 들면, 메모리 제어기)로 제공될 수 있다.
앞서 설명된 바와 같이, 패스 비트 검출이 행해지기 전후에 패스/페일 판별이 패스/페일 검출기(420)를 통해 행해질 것이다. 또는, 패스 비트가 검출된 후에 패스/페일 판별이 행해질 것이다. 프로그램 상태들(Q1, Q2, Q3) 각각이 프로그램 패스로 판별될 때, 프로그램 패스된 상태에 대한 검증 동작은 종료될 것이다. 이는 프로그램 패스된 메모리 셀의 비트 라인을 프로그램 금지 전압으로 설정함으로써 이루어질 것이다.
도 8 및 도 9는 도 5b에서 설명된 프로그램 절차의 검증 방식을 설명하기 위한 도면들이다. 이하, 도 5b에서 설명된 프로그램 절차의 검증 방식이 도 8 및 도 9를 참조하여 상세히 설명될 것이다.
선택된 워드 라인에 속한 메모리 셀들에 프로그램 전압(Vpgm)이 인가된 후, 프로그램 상태(P1')를 검증하기 위한 검증 전압이 선택된 워드 라인에 인가된다. 이때, 도 8에 도시된 바와 같이, 나머지 프로그램 상태들(P2'∼P15')에 대한 검증 동작들은 수행되지 않는다. 검증 전압이 선택된 워드 라인에 인가된 후, 읽기/쓰기 회로(500)는 선택된 워드 라인의 메모리 셀들로부터 데이터를 읽는다. 그 다음에, 제어 로직(400)의 패스 비트 검출기(410)는 읽혀진 데이터에 의거하여 선택된 워드 라인의 메모리 셀들 중 적어도 하나의 문턱 전압이 검증 전압/레벨과 같거나 그 보다 높은 지의 여부를 검출할 것이다. 만약 검출되지 않으면, 절차는 프로그램 전압(Vpgm)이 소정의 증가분만큼 증가된 후 다음의 루프로 진행할 것이다. 만약 검출되면, 나머지 프로그램 상태들(P2'∼P15')의 검증 동작들이 개시되는 검증 시작점들/검증 시작 루프들이 제어 로직(400)에 의해서 예측될 것이다. 좀 더 구체적으로 설명하면 다음과 같다.
예를 들면, 도 9에 도시된 바와 같이, 검증 전압(VP1')과 같거나 그 보다 높은 문턱 전압을 갖는 적어도 하나의 메모리 셀이 검출되면, 제어 로직(400)은 검증 전압들(VP1', VP2')의 전압차(△V1)와 검출된 메모리 셀에 인가된 프로그램 전압(Vpgm)의 합에 대응하는 프로그램 전압(Vpgm)이 인가되는 루프를 프로그램 상태(P2')의 검증 시작점/검증 시작 루프로 결정할 것이다. 검증 전압들 사이의 전압차가 일정하다고 가정하면, 제어 로직(400)은 검증 전압들(VP1', VP3')의 전압차(2△V1)와 검출된 메모리 셀에 인가된 프로그램 전압(Vpgm)의 합에 대응하는 프로그램 전압(Vpgm)이 인가되는 루프를 프로그램 상태(P3')의 검증 시작점/검증 시작 루프로 결정할 것이다. 나머지 프로그램 상태들(P4'∼P15')의 검증 시작점들/검증 시작 루프들 역시 앞서 설명된 것과 동일하게 결정될 것이다. 도 8에서 이해되는 바와 같이, 프로그램 상태들(P2'∼P15')의 검증 동작들은 그렇게 결정된 검증 시작점들/검증 시작 루프들까지 행해지지 않을 것이다.
예시적인 실시예에 있어서, 거친 프로그램 동작을 수행할 때 검출된 패스 비트 위치를 나타내는 패스 비트 정보(또는, 패스 비트가 검출된 루프/루프의 프로그램 전압을 나타내는 정보)를 제어 로직(400)의 레지스터(430)에 저장될 것이다. 레지스터(430)에 저장된 패스 비트 정보는 정교한 프로그램 동작을 수행할 때 최종 프로그램 상태들(P1∼P15)의 검증 시작점들/검증 시작 루프들을 예측/결정하는 데 사용될 수 있다.
다른 예시적인 실시예에 있어서, 제어 로직(400)의 제어하에 검출된 패스 비트 위치를 나타내는 패스 비트 정보(또는, 패스 비트가 검출된 루프/루프의 프로그램 전압을 나타내는 정보)를 외부(예를 들면, 메모리 제어기)로 출력하는 것이 가능하다. 외부로 출력된 패스 비트 정보는 현재 선택된 워드 라인의 메모리 셀들에 대한 정교한 프로그램 동작을 수행하는 데 사용될 수 있다.
도 10 및 도 11은 도 5c에서 설명된 프로그램 절차의 검증 방식을 설명하기 위한 도면들이다. 이하, 도 5c에서 설명된 프로그램 절차의 검증 방식이 도 10 및 도 11을 참조하여 상세히 설명될 것이다.
앞서의 설명과 달리, 도 10에 도시된 바와 같이, 제어 로직(400)은 선택된 워드 라인의 이전 페이지/이전 스텝 프로그램 절차에서 검출된 패스 비트를 나타내는 패스 비트 정보(예를 들면, 프로그램 전압 또는 루프를 나타냄)에 의거하여 프로그램 상태들(P1∼P15)의 검증 시작점들(또는, 검증 시작 루프들)을 예측/결정할 것이다. 예를 들면, 도 11을 참조하면, 제어 로직(400)은 선택된 워드 라인의 이전 페이지/이전 스텝 프로그램 절차에서 검출된 패스 비트를 나타내는 패스 비트 정보에 의거하여 프로그램 상태(P1)의 검증 시작점/검증 시작 루프를 예측하고, 검증 전압들(VP1, VP2)의 전압차(△V2)와 검출된 패스 비트에 대응하는 루프의 프로그램 전압(Vpgm)의 합에 대응하는 프로그램 전압(Vpgm)이 인가되는 루프를 프로그램 상태(P2)의 검증 시작점/검증 시작 루프로서 결정할 것이다. 검증 전압들 사이의 전압차가 일정하다고 가정하면, 제어 로직(400)은 검증 전압들(VP1, VP3)의 전압차(2△V2)와 검출된 패스 비트에 대응하는 프로그램 전압(Vpgm)의 합에 대응하는 프로그램 전압(Vpgm)이 인가되는 루프를 프로그램 상태(P3)의 검증 시작점/검증 시작 루프로 결정할 것이다. 나머지 프로그램 상태들(P4∼P15)의 검증 시작점들/검증 시작 루프들 역시 앞서 설명된 것과 동일하게 예측/결정될 것이다.
도 5c에 도시된 프로그램 방식의 경우, 예측된/결정된 검증 시작점들/검증 시작 루프들까지 프로그램 상태들(P1∼P15)의 검증 동작들은 수행되지 않는다. 예를 들면, 프로그램 상태(P1)를 검증하기 위한 검증 전압은 현재 루프가 예측된/결정된 검증 시작점/검증 시작 루프에 도달할 때 선택된 워드 라인에 인가된다. 이때, 도 10에 도시된 바와 같이, 나머지 프로그램 상태들(P2∼P15)에 대한 검증 동작들은 수행되지 않는다. 검증 전압이 선택된 워드 라인에 인가된 후, 읽기/쓰기 회로(500)는 선택된 워드 라인의 메모리 셀들로부터 데이터가 의해서 읽는다. 그 다음에, 제어 로직(400)의 패스/페일 검출기(420)는 읽혀진 데이터에 의거하여 선택된 워드 라인의 메모리 셀들이 모두 프로그램되었는 지의 여부를 판별할 것이다. 만약 선택된 워드 라인의 메모리 셀들 중 적어도 하나가 프로그램되지 않은 것으로 판별되면, 절차는 프로그램 전압(Vpgm)이 소정의 증가분만큼 증가된 후 다음의 루프로 진행할 것이다. 만약 검출되면, 프로그램 패스로 판별된 프로그램 상태에 대한 검증 동작은 더 이상 수행되지 않는다.
도 12a는 도 5a에서 설명된 프로그램 절차를 개략적으로 보여주는 도면이고, 도 12b는 도 5b에서 설명된 프로그램 절차를 개략적으로 보여주는 도면이고, 도 12c는 도 5c에서 설명된 프로그램 절차를 개략적으로 보여주는 도면이다.
도 12a에 도시된 바와 같이, 프로그램 상태(Q1)의 검증 동작이 수행되는 동안 패스 비트가 검출될 것이다. 패스 비트가 검출되면, 나머지 프로그램 상태들(Q2, Q3)의 검증 시작점들/검증 시작 루푸들은 제어 로직(400)에 의해서 예측/결정될 것이다. 도 12a와 마찬가지로, 프로그램 상태(P1')의 검증 동작이 수행되는 동안, 도 12b에 도시된 바와 같이, 패스 비트가 검출될 것이다. 패스 비트가 검출되면, 나머지 프로그램 상태들(P2'∼P15')의 검증 시작점들/검증 시작 루프들이 제어 로직(400)에 의해서 예측/결정될 것이다. 이때, 패스 비트를 나타내는 패스 비트 정보(또는, 패스 비트가 검출된 루프/루프의 프로그램 전압을 나타내는 정보)는 동일한 워드 라인의 다음 페이지 프로그램 절차/다음 스텝 프로그램 절차(예를 들면, 정교한 프로그램 단계)의 검증 시작점들/검증 시작 루프들을 결정하는 데 사용되도록 제어 로직(400)의 레지스터(430)에 저장될 것이다. 마지막으로, 도 12c에 도시된 바와 같이, 최종 프로그램 상태들(P1∼P15)의 검증 시작점들/검증 시작 루프들은 레지스터(430)에 저장된 정보에 의거하여 예측/결정될 것이다.
앞서 설명된 프로그램 방식에 따르면, 불필요한 검증 동작들을 제거함으로써 프로그램 속도를 높이는 것이 가능하다.
도 13은 본 발명의 다른 예시적인 실시예에 따른 플래시 메모리 장치의 프로그램 방법을 설명하기 위한 도면이다.
프로그램 상태들의 검증 시작점들/검증 시작 루프들은 이전 상태와 목표 상태의 관계를 고려하여 가변적으로 결정될 수 있다. 예를 들면, 이전 상태와 목표 상태 사이의 관계는 2가지 경우들을 포함할 것이다. 첫 번째 경우는 이전 상태와 목표 상태가 겹치지 않는 경우(또는, 이전 상태가 목표 상태의 검증 레벨을 넘지 않는 경우)이다. 두 번째 경우는 이전 상태와 목표 상태가 겹치는 경우(또는, 이전 상태가 목표 상태의 검증 레벨을 넘는 경우)이다. 만약 검증될 상태가 첫 번째 경우에 속하면, 목표 상태의 검증 시작점/검증 시작 루프는 도 13의 실선으로 도시된 검증 시작점/검증 시작 루프과 비교하여 볼 때 도 13의 일점 쇄선으로 도시된 검증 시작점/검증 시작 루프로 늦춰질 것이다. 이에 반해서, 만약 검증될 상태가 두 번째 경우에 속하면, 목표 상태의 검증 시작점은 도 13의 실선으로 도시된 검증 시작점/검증 시작 루프와 비교하여 볼 때 도 13의 점선으로 도시된 검증 시작점/검증 시작 루프로 당겨질 것이다. 여기서, 실선으로 도시된 검증 시작점/검증 시작 루프는 도 6 또는 도 8에서 설명된 방식에 따라 결정될 것이다.
예를 들면, 도 5a를 참조하면, 첫 번째 경우는 이전 상태(E)와 목표 상태들(Q1∼Q3)을 포함할 것이다. 이러한 경우, 도 6에서 설명된 것과 달리, 제어 로직(400)은 실선 대신 일점쇄선으로 도시된 시점을 검증 시작점들/검증 시작 루프들로 예측/결정할 것이다. 도 5a에서, 두 번째 경우는 존재하지 않는다. 도 5b를 참조하면, 첫 번째 경우는 이전 상태(E)와 목표 상태들(P1'∼P3'), 이전 상태(Q1)과 목표 상태들(P5'∼P7'), 이전 상태(Q2)과 목표 상태들(P9'∼P11'), 그리고 이전 상태(Q3)과 목표 상태들(P13'∼P15')을 포함할 것이다. 이러한 경우, 도 8에서 설명된 것과 달리, 제어 로직(400)은 실선 대신 일점쇄선으로 도시된 시점을 검증 시작점들/검증 시작 루프들로 예측/결정할 것이다. 두 번째 경우는 이전 상태(Q1)과 목표 상태(P4'), 이전 상태(Q2)과 목표 상태(P8'), 그리고 이전 상태(Q3)과 목표 상태(P12')를 포함할 것이다. 이러한 경우, 도 8에서 설명된 것과 달리, 제어 로직(400)은 실선 대신 점선으로 도시된 시점을 검증 시작점들/검증 시작 루프들로 예측/결정할 것이다. 도 5c를 참조하면, 두 번째 경우는 이전 상태들(P1'∼P15')과 목표 상태들(P1∼P15)을 포함할 것이다. 이러한 경우, 도 10에서 설명된 것과 달리, 제어 로직(400)은 실선 대신 일점쇄선으로 도시된 시점을 검증 시작점들/검증 시작 루프들로 예측/결정할 것이다. 도 5c에서, 첫 번째 경우는 존재하지 않는다.
도 14는 본 발명의 다른 예시적인 실시예에 따른 플래시 메모리 장치의 프로그램 방법을 설명하기 위한 도면이다.
도 14에 도시된 프로그램 방법은 검증 시작점들의 예측이 첫 번째 프로그램 상태(P1)에 대한 패스 비트 검출이 아니라 동일한 워드 라인의 이전 페이지 프로그램 절차/이전 스텝 프로그램 절차에서 검출된 패스 비트의 정보에 의거하여 행해진다는 점을 제외하면 도 13에 도시된 것과 실질적으로 동일하며, 그것에 대한 설명은 그러므로 생략될 것이다.
도 13 및 도 14의 설명으로부터 이해되는 바와 같이, 검출된 패스 비트 또는 저장된 패스 비트에 의거하여 또는 검출된 패스 비트 또는 저장된 패스 비트와 이전 상태와 목표 상태의 관계에 의거하여 각 상태의 검증 시작점을 결정/예측하는 것이 가능하다.
도 15는 본 발명의 또 다른 예시적인 실시예에 따른 플래시 메모리 장치의 프로그램 방법을 개략적으로 설명하기 위한 도면이다.
도 15에 도시된 프로그램 방법은 잘 알려진 새도우 프로그램 방식에 따라 수행될 것이다. 새도우 프로그램 방식을 이용하여 프로그램 동작을 수행하는 경우에도 앞서 설명된 검증 시작점 예측 방식이 동일하게 적용됨은 잘 이해될 것이다. 예를 들면, 검출된 패스 비트 또는 저장된 패스 비트에 의거하여 또는 검출된 패스 비트 또는 저장된 패스 비트와 이전 상태와 목표 상태의 관계에 의거하여 각 상태의 검증 시작점을 결정/예측하는 것이 가능하다.
도 16은 본 발명의 또 다른 실시예에 따른 플래시 메모리 장치의 프로그램 방법을 설명하기 위한 흐름도이고, 도 17은 멀티-비트 데이터의 문턱 전압 분포들을 개략적으로 보여주는 도면이다.
설명에 앞서, 프로그램 동작은 크게 프로그램 실행 구간과 검증 구간을 포함할 것이다. 프로그램 실행 구간은 선택된 워드 라인의 메모리 셀들의 문턱 전압들 변화시키기 위한 것이고, 검증 구간은 프로그램 실행 구간 동안 변화된 메모리 셀들의 문턱 전압들이 대응하는 목표 전압들(또는, 검증 전압들)에 각각 도달하였는 지의 여부를 판별하기 위한 것이다. 프로그램 실행 구간 동안 선택된 워드 라인으로 프로그램 전압이 인가되고, 검증 구간 동안 선택된 워드 라인으로 일련의 검증 전압들이 순차적으로 인가된다. 일련의 검증 전압들은 각 메모리 셀에 저장되는 멀티-비트 데이터를 표현하는 데 필요한 문턱 전압 분포들(즉, 프로그램 상태 분포들)에 각각 대응할 것이다. 프로그램될 데이터는 프로그램 실행 구간 이전에 플래시 메모리 장치에 로드될 것이다. 이전에 프로그램된 데이터가 필요에 따라 프로그램될 데이터의 로딩 이전에 읽혀질 수 있다.
도 16을 참조하면, S100 단계에서, 변수들(FLAG, Pi_FLAG)가 '0'로 설정될 것이다. 이후 설명되는 바와 같이, 변수(FLAG)는 프로그램 상태들 중 최하위 프로그램 상태(예를 들면, P1, 도 2 참조)가 패스되었는 지의 여부를 나타내는 데 사용되며, 변수(Pi_FLAG)는 나머지 프로그램 상태들 각각이 패스되었는 지의 여부를 나타내는 데 사용될 것이다. 여기서, 프로그램 상태의 패스는 프로그램 상태에 대응하는 메모리 셀들의 문턱 전압들이 모두 검증 전압과 같거나 그 보다 높음을 나타내는 데 사용되며, 프로그램 동작의 프로그램 패스와 구별될 것이다. S110 단계에서, 프로그램 동작이 수행될 것이다. S110 단계는 프로그램 실행 구간에 대응할 것이다. S120 단계에서, 변수(FLAG)가 '1'로 설정되었는 지의 여부가 판별될 것이다. 만약 변수(FLAG)가 '1'로 설정되지 않은 것으로 판별되면, 절차는 S130 단계로 진행할 것이다. S130 단계에서, 선택된 워드 라인에 검증 전압이 인가된 상태에서, 최하위 프로그램 상태(P1)에 대한 검증 읽기 동작이 행해질 것이다. S140 단계에서, 읽혀진 데이터에 의거하여, 최하위 프로그램 상태(P1)에 대응하는 메모리 셀들의 문턱 전압들이 검증 전압과 같거나 그 보다 높은 지의 여부가 판별될 것이다. 즉, 최하위 프로그램 상태(P1)가 패스되었는 지의 여부가 판별될 것이다.
만약 최하위 프로그램 상태(P1)가 패스된 것으로 판별되면, 절차는 S150 단계로 진행할 것이다. S150 단계에서는 최하위 프로그램 상태(P1)가 패스 상태로 결정되고, 이는 변수(FLAG)를 '1'로 설정함으로써 달성될 것이다. 최하위 프로그램 상태가 패스 상태로 결정됨에 따라, 이후 수행되는 프로그램 루프의 검증 구간 동안 최하위 프로그램 상태에 대한 검증 동작은 생략될 것이다. S160 단계에서, 나머지 프로그램 상태들의 검증 종료점들이 각각 예측될 것이다. 나머지 프로그램 상태들의 검증 종료점들의 예측은 다음과 같이 행해질 것이다.
만약 최하위 프로그램 상태(P1)가 패스되었음이 검출되면, 검출된 시점(예를 들면, 프로그램 루프/프로그램 전압)를 기준으로 나머지 프로그램 상태들이 패스되는 시점들(예를 들면, 프로그램 루프/프로그램 전압)을 예측하는 것이 가능하다. 나머지 프로그램 상태들 각각의 패스 시점들은 [Vpgm(i)=(Vpgm(pass)+Vdif)]에 의해서 결정될 것이다. 여기서, Vdif는 최하위 프로그램 상태(P1)의 검증 전압과 다른 프로그램 상태의 검증 전압 사이의 전압차(N*△V)(N은 1 또는 그 보다 큰 정수)를 나타내며, Vpgm(i)(i는 2 또는 그 보다 큰 정수)는 최하위 프로그램 상태(예를 들면, P1)를 제외한 나머지 프로그램 상태들(예를 들면, P2∼P7) 각각의 패스 시점의 프로그램 전압을 나타낼 것이다. Vpgm(pass)는 최하위 프로그램 상태(P1)가 패스된 시점의 프로그램 전압을 나타낼 것이다.
예를 들면, 각 메모리 셀에 3-비트 데이터가 저장된다고 가정하면, 도 2에 도시된 바와 같이, 각 메모리 셀은 8개의 문턱 전압 분포들(E, P1∼P7) 중 어느 하나를 갖는다. 문턱 전압 분포들(P1∼P7)은 프로그램 상태들에 각각 대응하고, 문턱 전압 분포(E)는 소거 상태에 대응할 것이다. 프로그램 상태들(P1∼P7)은 대응하는 검증 전압들(Vvfy1∼Vvfy7)에 의해서 구별될 것이다. 도 2에 도시된 상태 분포도는 인접한 프로그램 상태들(예를 들면, P1, P2)에 대응하는 검증 전압들(예를 들면, Vvfy1, Vvfy2) 사이의 전압차(△V)가 동일하다는 조건 하에서 도시되었다. 하지만, 전압차가 다르게 설정될 수 있음은 잘 이해될 것이다.
최하위 프로그램 상태(P1)를 제외한 나머지 프로그램 상태들의 패스 시점들은 앞서의 설명과 같이 결정될 것이다. 그렇게 결정된 패스 시점들에 의거하여 나머지 프로그램 상태들의 검증 종료점들이 결정될 것이다. 검증 종료점들은 [Vpgm(i)_VE=Vpgm(i)-Voffset(i)]에 의해서 결정될 것이다. 여기서, Vpgm(i)_VE는 나머지 프로그램 상태들 각각의 검증 종료점에 대응하는 프로그램 전압을 나타내며, Voffset(i)는 나머지 프로그램 상태들 각각에 대한 오프셋 전압을 나타낼 것이다. 나머지 프로그램 상태들에 대한 오프셋 전압들은 동일하게 설정될 것이다. 또는, 나머지 프로그램 상태들에 대한 오프셋 전압들은 서로 다르게 설정될 수 있다.
예시적인 실시예에 있어서, 예측된 검증 종료점들을 나타내는 프로그램 전압들을 현재 프로그램 루프의 프로그램 전압과 비교함으로써 각 프로그램 상태가 검증 종료점에 도달하였는 지의 여부를 판별하는 것이 가능할 것이다. 또는, 예측된 검증 종료점들을 나타내는 프로그램 전압들에 각각 대응하는 프로그램 루프를 현재 프로그램 루프와 비교하는 것도 가능할 것이다. 프로그램 상태가 검증 종료점에 도달하였는 지의 여부를 판별하는 방식이 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다.
프로그램 상태의 패스 시점에 앞서 검증 동작이 종료됨은 프로그램 상태에 대응하는 메모리 셀들 중 일부 메모리 셀들의 문턱 전압들이 프로그램 상태에 대응하는 검증 전압보다 낮음을 의미한다. 즉, 프로그램 상태에 대응하는 메모리 셀들에 저장된 데이터는 페일 비트들을 포함할 것이다. 그러한 페일 비트들은 메모리 제어기의 ECC 유니트에 의해서 정정될 것이다. 그러한 페일 비트들은 프로그램 속도가 느린 메모리 셀들과 관련되며, 슬로우 비트(slow bit)라 불린다.
나머지 프로그램 상태들(예를 들면, P2∼P7)의 검증 종료점들이 결정되면, 절차는 S170 단계로 진행할 것이다. S170 단계에서는 나머지 프로그램 상태들(P2∼P7) 각각에 대한 검증 동작이 수행될 것이다. 이는 이하 상세히 설명될 것이다. 다시 S120 단계로 돌아가면, 만약 변수(FLAG)가 '1'로 설정된 것으로 판별되면, 절차는 S170 단계로 진행할 것이다. 이는 패스로 처리된 프로그램 상태(P1)에 대한 검증 동작이 생략됨을 의미한다.
S170 단계에서 수행되는 나머지 프로그램 상태들의 검증 동작들은 S160 단계에서 결정된 검증 종료점들에 의거하여 자동적으로 종료될 것이다. 좀 더 구체적으로 설명하면, S171 단계에서, 다음 프로그램 상태(예를 들면, P2)에 대한 검증 읽기 동작이 수행될 것이다. 프로그램 상태(P2)에 대응하는 메모리 셀들의 문턱 전압들이 검증 전압(Vvfy2)과 같거나 그 보다 높은 지의 여부가 판별될 것이다. 즉, 프로그램 상태(P2)에 대응하는 메모리 셀들이 모두 프로그램 패스되었는 지의 여부가 판별될 것이다. 만약 프로그램 상태(P2)에 대응하는 메모리 셀들이 모두 프로그램 패스된 것으로 판별되면, 절차는 S173 단계로 진행할 것이다. 만약 프로그램 상태(P2)에 대응하는 메모리 셀들 중 일부가 프로그램 패스되지 않은 것으로 판별되면, 절차는 S174 단계로 진행할 것이다. S174 단계에서는, 프로그램 상태(P2)(또는, 현재의 프로그램 루프/현재의 프로그램 루프에서 사용된 프로그램 전압)가 대응하는 예측된 검증 종료점(또는, 예측된 검증 종료점에 대응하는 프로그램 루프/프로그램 전압)에 도달하였는 지의 여부가 판별될 것이다. 만약 현재의 프로그램 루프(또는, 현재의 프로그램 루프에 사용된 프로그램 전압)가 예측된 검증 종료점에 대응하는 프로그램 루프에 도달하지 않은 것으로 판별되면, 절차는 S173 단계로 진행할 것이다.
S173 단계에서는 프로그램 상태(P2)의 패스를 나타내는 변수(Pi_FLAG)가 패스 상태로 설정될 것이다. 이는 다음 프로그램 루프에서 프로그램 상태(P2)에 대한 검증 동작이 생략됨을 의미한다.
이에 반해서, 만약 현재의 프로그램 루프(또는, 현재의 프로그램 루프에 사용된 프로그램 전압)가 예측된 검증 종료점에 대응하는 프로그램 루프에 도달한 것으로 판별되면, 절차는 S175 단계로 진행할 것이다. S175 단계에서는, 나머지 프로그램 상태들(P2∼P7)에 대한 검증 동작들이 모두 수행되었는 지의 여부가 판별될 것이다. 만약 나머지 프로그램 상태들(P2∼P7)에 대한 검증 동작들이 수행되지 않은 것으로 판별되면, 절차는 S176 단계로 진행할 것이다. S176 단계에서는, 다음의 프로그램 상태에 대한 검증 동작을 위해서 변수(i)가 '1'만큼 증가될 것이다. 이후, 절차는 S171 단계로 진행할 것이다.
만약 나머지 프로그램 상태들에 대한 검증 동작들이 모두 수행된 것으로 판별되면, 절차는 S180 단계로 진행하며, 이 단계에서는 모든 프로그램 상태들(예를 들면, P1∼P7)이 패스되었는 지의 여부가 판별될 것이다. 프로그램 상태들(예를 들면, P1∼P7) 중 일부가 패스되지 않은 것으로 판별되면, 절차는 S190 단계로 진행할 것이다. S190 단계에서는 프로그램 루프를 나타내는 변수(LOOP)가 '1'만큼 증가되고, 절차는 S110 단계로 진행할 것이다. 이후, 앞서 설명된 것과 실질적으로 동일하게 프로그램 루프가 정해진 횟수 내에서 반복될 것이다. 모든 프로그램 상태들(예를 들면, P1∼P7)이 모두 패스된 것으로 판별되면, 프로그램 동작은 프로그램 패스로 처리된 후 종료될 것이다.
도 18은 도 16에서 설명된 프로그램 방법에 적용된 검증 방식의 일예를 개략적으로 설명하기 위한 도면이다.
도 18에 도시된 바와 같이, 최하위 프로그램 상태(P1)에 대응하는 메모리 셀들에 저장된 비트들이 모두 패스될 때, 나머지 프로그램 상태들(P2∼P7)에 대한 검증 종료점들이 예측될 것이다. 현재의 프로그램 루프(또는, 프로그램 전압)가 프로그램 상태의 예측된 검증 종료점에 대응하는 프로그램 루프(또는, 프로그램 전압)에 도달할 때, 각 프로그램 상태는 패스로 처리되고, 그 다음에 각 프로그램 상태의 검증 동작은 종료될 것이다. 도 18에서 이해되는 바와 같이, 예측된 패스 시점들보다 빠르게 검증 종료점들이 설정됨에 따라, 프로그램 상태들(P2∼P7)의 검증 동작들이 검증 종료점들에 각각 종료된 후 프로그램 상태들(P2∼P7)의 나머지 검증 동작들은 생략될 것이다.
도 19는 도 16에서 설명된 프로그램 방법에 적용된 검증 방식의 다른 예를 개략적으로 설명하기 위한 도면이다.
최하위 프로그램 상태의 패스 시점을 기준으로 나머지 프로그램 상태들의 검증 종료점들을 결정하는 것과 달리, 복수의 프로그램 상태들 중 적어도 2개의 프로그램 상태들의 패스 시점들을 기준으로 나머지 프로그램 상태들의 검증 종료점들을 결정하는 것이 가능하다. 예를 들면, 프로그램 상태들은 복수의 그룹들(Gn)(n은 2 또는 그 보다 큰 정수)로 구분될 것이다. 각 그룹에 속한 최하위 프로그램 상태의 패스 시점을 기준으로 각 그룹에 속한 나머지 프로그램 상태들의 검증 종료점들이 결정될 것이다. 검증 종료점들은 앞서 설명된 것과 실질적으로 동일하게 결정되며, 그것에 대한 설명은 그러므로 생략될 것이다. 도 4에 도시된 바와 같이, 예를 들면, 제 1 그룹(G1)의 경우, 최하위 프로그램 상태(P1)의 패스 시점을 기준으로 나머지 프로그램 상태들(P2, P3, P4)의 검증 종료점들이 각각 결정될 것이다. 제 2 그룹(G2)의 경우, 최하위 프로그램 상태(P5)의 패스 시점을 기준으로 나머지 프로그램 상태들(P6, P7, P8)의 검증 종료점들이 각각 결정될 것이다.
예시적인 실시예에 있어서, 각 그룹에 속한 프로그램 상태들의 수는 다양하게 결정될 것이다. 그룹들에 적용되는 오프셋 전압들은 동일하게 또는 다르게 설정될 수 있다. 이 경우, 각 그룹에 속한 프로그램 상태들의 오프셋 전압들은 동일하게 또는 다르게 설정될 수 있다.
도 20은 본 발명의 또 다른 예시적인 실시예에 따른 플래시 메모리 장치의 프로그램 방법을 설명하기 위한 흐름도이다.
프로그램 동작이 개시되면, S200 단계에서, 변수들(FBCPS, VPS, Pi_FLAG)이 '1'로 설정될 것이다. 여기서, 변수(FBCPS)는 페일 비트 카운트가 행해지는 프로그램 상태를 나타내는 데 사용되고, 변수(VPS)는 검증 동작이 행해지는 프로그램 상태를 나타내는 데 사용될 것이다. 변수(Pi_FLAG)는 검증 동작이 행해진 프로그램 상태의 패스 상태를 나타내는 데 사용될 것이다. S210 단계에서, 프로그램 동작이 수행될 것이다. S210 단계는 프로그램 실행 구간에 대응할 것이다. 프로그램 동작이 수행된 후, S220 단계에서, 변수(FBCPS)의 값이 변수(VPS)의 값과 일치하는 지의 여부가 판별될 것이다. 현재 프로그램 루프가 첫 번재 프로그램 루프라고 가정하면, 변수(FBCPS)의 값이 변수(VPS)의 값과 일치할 것이다. 이러한 경우, 절차는 S230 단계로 진행할 것이다. S230 단계에서는, 최하위 프로그램 상태(P1)에 대한 검증 읽기 동작이 수행될 것이다.
S240 단계에서, 최하위 프로그램 상태(P1)에 대한 검증 읽기 동작을 통해 읽혀진 데이터 비트들 중 페일 비트들의 수가 카운트될 것이다. 페일 비트들의 수를 카운트하는 것은 다양하게 구현될 수 있다. 예를 들면, 검증 읽기 동작을 통해 읽혀진 데이터 비트들 중 페일 비트들에 의해서 각각 스위치될 때 흐르는 전류의 양에 의거하여 페일 비트들의 수를 카운트하는 것이 가능하다. 이러한 방식은 전류 감지 방식(current sensing manner)이라 불린다. 이러한 경우, 페일 비트들이 아닌 데이터 비트들에 의한 스위칭 동작은 일어나지 않을 것이다. 또는, 카운터를 이용하여 페일 비트들의 수를 카운트하는 방식이 사용될 수 있다. 하지만, 페일 비트들의 수를 카운트하는 방식이 여기에 개시되어 있는 것에 국한되지 않음은 잘 이해될 것이다.
페일 비트들의 수가 카운트된 후, S250 단계에서, 카운트된 페일 비트 수가 소정의 기준값보다 작은 지의 여부가 판별될 것이다. 만약 카운트된 페일 비트 수가 소정의 기준값보다 작은 것으로 판별되면, 절차는 S260 단계로 진행할 것이다. 만약 카운트된 페일 비트 수가 소정의 기준값보다 작지 않은 것으로 판별되면, 절차는 S270 단계로 진행할 것이다. 여기서, 기준값은 메모리 제어기의 ECC 유니트의 에러 정정 능력을 고려하여 결정될 수 있다. S260 단계에서는, 변수(FBCPS)의 값이 '1'만큼 증가되고, 변수(Pi_FLAG)가 패스 상태를 나타내도록 설정될 것이다. 즉, 첫 번째 프로그램 상태(P1)가 패스 상태로 설정되며, 그 결과 이후의 프로그램 루프에서 프로그램 상태(P1)에 대한 검증 동작은 생략될 것이다. 이후, 절차는 S270 단계로 진행할 것이다.
이상의 설명에 따르면, 프로그램 상태에 대응하는 데이터 비트들 중 페일 비트들의 수가 소정의 기준값보다 작을 때 프로그램 상태는 패스 상태로 설정된다. 이는 프로그램 상태에 대응하는 데이터 비트들이 페일 비트들을 포함하더라도 프로그램 상태의 검증 동작이 종료됨을 의미한다. 그러한 페일 비트들은 슬로우 비트일 것이다. 다시 말해서, 프로그램 상태에 대응하는 데이터 비트들 중 페일 비트들의 수가 소정의 기준값보다 작을 때, 슬로우 비트에 대한 검증 동작은 생략될 것이다.
다시 S220 단계로 돌아가면, 만약 변수(FBCPS)의 값이 변수(VPS)의 값과 일치하지 않는 것으로 판별되면, 절차는 S280 단계로 진행할 것이다. 만약 프로그램 상태(P1)에 대한 카운트된 페일 비트들의 수가 기준값보다 많으면, 변수(FBCPS)의 값은 변화되지 않을 것이다. 이러한 경우, 현재의 검증 동작이 두 번째 프로그램 상태(P2) 또는 그 보다 상위 프로그램 상태에 대한 검증 동작과 관련되어 있다고 가정하면, 페일 비트 수가 카운트되는 프로그램 상태를 나타내는 변수(FBCPS)의 값은 검증 동작이 수행되는 프로그램 상태를 나타내는 변수(VPS)의 값과 일치하지 않을 것이다.
S280 단계에서, 변수(VPS)의 값에 대응하는 프로그램 상태에 대한 검증 읽기 동작이 수행될 것이다. S290 단계에서, 읽혀진 데이터 비트들이 모두 패스 데이터 비트인 지의 여부가 판별될 것이다. 읽혀진 데이터 비트들이 모두 패스 데이터 비트인 것으로 판별되면, S300 단계에서, 변수(Pi_FLAG)가 패스 상태를 나타내도록 설정될 것이다. 이후, 절차는 S270 단계로 진행할 것이다. 읽혀진 데이터 비트들이 모두 패스 데이터 비트가 아닌 것으로 판별되면, 절차는 S270 단계로 진행할 것이다. S270 단계에서, 프로그램 상태들에 대한 검증 동작들이 모두 수행되었는 지의 여부가 판별될 것이다. 프로그램 상태들에 대한 검증 동작들이 모두 수행되지 않은 것으로 판별되면, 절차는 S310 단계로 진행할 것이다.
S310 단계에서, 검증 동작이 수행될 프로그램 루프를 나타내는 변수(VPS)의 값이 '1'만큼 증가될 것이다. 이후, 절차는 S220 단계로 진행할 것이다. 프로그램 상태들에 대한 검증 동작들이 모두 수행된 것으로 판별되면, S320 단계에서, 프로그램 상태들 모두가 패스되었는 지의 여부가 판별될 것이다. 프로그램 상태들 중 적어도 하나가 패스되지 않은 것으로 판별되면, S330 단계에서, 프로그램 루프의 값이 '1'만큼 증가되고 검증 동작이 행해질 프로그램 상태를 나타내는 변수(VPS)가 N으로 설정될 것이다. 여기서, N은 패스된 프로그램 상태를 제외한 나머지 프로그램 상태들 중 최하위 프로그램 상태를 나타내는 값을 가질 것이다. 이후, 절차는 S210 단계로 진행할 것이다. 프로그램 상태들 모두가 패스된 것으로 판별되면, 절차는 종료될 것이다.
예시적인 실시예에 있어서, 변수들이 일치할 때 행해지는 검증 읽기 동작은 프로그램 상태의 패스 여부를 판별하는 동작을 수행하지 않는다. 하지만, 변수들이 일치할 때 행해지는 검증 읽기 동작(S230 단계에 대응함)과 페일 비트들의 수를 카운트하는 동작(S240 단계에 대응함) 사이에 프로그램 상태의 패스 여부를 판별하는 동작이 행해질 수 있다.
도 21은 도 20에서 설명된 프로그램 방법에 적용된 검증 방식의 일예를 개략적으로 설명하기 위한 도면이다.
도 21에 도시된 바와 같이, 첫 번째 프로그램 상태(P1)에 대한 페일 비트 카운트 동작은 페일 비트들의 수가 소정의 기준값보다 작을 때까지 수행될 것이다. 이때, 나머지 프로그램 상태들에 대한 페일 비트 카운트 동작은 수행되지 않는다. 일단 첫 번째 프로그램 상태(P1)의 페일 비트들의 수가 소정의 기준값보다 작아지면, 첫 번째 프로그램 상태(P1)에 대한 검증 동작은 종료되는 반면에, 두 번째 프로그램 상태(P2)에 대한 페일 비트 카운트 동작이 시작될 것이다. 이때, 나머지 프로그램 상태들(즉, 두 번째 프로그램 상태의 상위 프로그램 상태들)에 대한 페일 비트 카운트 동작은 수행되지 않는다. 두 번째 프로그램 상태(P2)의 페일 비트들의 수가 소정의 기준값보다 작아지면, 두 번째 프로그램 상태(P2)에 대한 검증 동작은 종료되는 반면에, 세 번째 프로그램 상태(P3)에 대한 페일 비트 카운트 동작이 시작될 것이다. 나머지 프로그램 상태들에 대한 페일 비트 카운트 동작은 앞서 설명된 것과 실질적으로 동일한 방식으로 결정될 것이다.
도 22는 도 20에서 설명된 프로그램 방법이 적용되는 플래시 메모리 장치를 개략적으로 보여주는 블록도이다.
도 22에 도시된 구성 요소들은 제어 로직(400)에 전류 감지 방식에 따라 페일 비트들의 수를 카운트하는 회로(440)가 추가된다는 점을 제외하면 도 1에 도시된 것과 실질적으로 동일하며, 그것에 대한 설명은 그러므로 생략될 것이다. 페일 비트들의 수를 카운트하는 방식이 전류 감지 방식에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 카운터를 이용하여 페일 비트들의 수를 카운트하는 것이 가능할 것이다.
도 23은 본 발명의 예시적인 실시예들에 따른 플래시 메모리 장치의 프로그램 방법을 개략적으로 설명하기 위한 흐름도이다. 이하, 본 발명의 예시적인 실시예들에 따른 플래시 메모리 장치의 프로그램 방법이 참조 도면들에 의거하여 상세히 설명될 것이다.
설명에 앞서, 메모리 셀 당 3-비트 데이터가 저장된다고 가정하자. 이러한 경우, 하나의 소거 상태(E)와 7개의 프로그램 상태들(P1∼P7)이 존재할 것이다. 게다가, 도 23에 도시된 프로그램 방법은 도 6/8에서 설명된 검증 시작점 예측 방식과 도 16에서 설명된 검증 종료점 예측 방식을 포함할 것이다. 검증 시작점 예측 방식을 통해 패스트 비트들(fast bits)에 대한 검증 동작을 스킵할 수 있고, 검증 종료점 예측 방식을 통해 슬로우 비트들(slow bits)에 대한 검증 동작을 스킵할 수 있다. 이는 이하 상세히 설명될 것이다.
일단 프로그램 동작이 개시되면, S300 단계에서, 변수(i_PGM_Loop)가 '1'로 설정되고, 변수들(P(j)_Verify_Start, P(j)_Verify_End)이 각각 최대 프로그램 루프 횟수(Max_PGM_Loop)로 설정될 것이다. 여기서, 변수(i_PGM_Loop)는 현재의 프로그램 루프를 나타내는 데 사용되고, 변수(P(j)_Verify_Start)는 j번째 프로그램 상태의 검증 시작 루프를 나타내는 데 사용되며, 변수(P(j)_Verify_End)는 j번째 프로그램 상태의 검증 종료 루프를 나타내는 데 사용될 것이다. S310 단계에서, 제어 로직(400)의 제어 하에 프로그램 동작이 실행될 것이다.
프로그램 동작의 실행이 종료되면, S320 단계에서, 프로그램 상태(P1)의 검증 동작이 패스되었는 지의 여부가 판별될 것이다. 만약 프로그램 상태(P1)의 검증 동작이 패스되지 않은 것으로 판별되면, 절차는 S330 단계로 진행할 것이다. S330 단계에서는, 프로그램 상태(P1)에 대한 검증 동작이 수행될 것이다. S340 단계에서, 프로그램 상태(P1)의 검증 동작 동안 적어도 하나의 패스 비트(즉, 패스트 비트)가 검출되었는 지의 여부가 판별될 것이다.
프로그램 상태(P1)의 검증 동작 동안 패스 비트가 검출된 것으로 판별되면, 절차는 S350 단계로 진행할 것이다. S350 단계에서는, 도 6/8에서 설명된 바와 같이, 검출된 패스 비트(검출된 패스 비트를 나타내는 패스 비트 정보)에 의거하여 나머지 프로그램 상태들(P2∼P7)의 검증 시작점들(P(j)_Verify_Start)이 예측될 것이다. 예를 들면, S350 단계는 프로그램 상태를 나타내는 변수(j)를 2로 설정하고(S351), j번째 프로그램 상태의 검증 시작점(P(j)_Verify_Start)을 예측하고(S352), 변수(j)의 값이 MSB 프로그램 상태(P7)를 나타내는 값(7)에 도달하였는 지의 여부를 판별하고(S353), 변수(j)의 값이 MSB 프로그램 상태(P7)를 나타내는 값에 도달하지 않은 것으로 판별될 때 변수(j)의 값을 '1'만큼 증가시키는(S354) 것을 포함할 것이다. 검증 시작점들은 도 13 및 도 14에서 설명된 방식에 따라 가변적으로 예측될 수 있다. S350 단계에서 나머지 프로그램 상태들(P2∼P7)에 대한 검증 시작점들(P(j)_Verify_Start)이 예측되면, 절차는 S360 단계로 진행할 것이다. S340 단계에서, 프로그램 상태(P1)의 검증 동작 동안 패스트 비트(또는, 패스 비트)가 검출되지 않은 것으로 판별되면, 절차는 S360 단계로 진행할 것이다.
S360 단계에서, 프로그램 상태(P1)의 검증 동작이 패스되었는 지의 여부가 판별될 것이다. 만약 프로그램 상태(P1)의 검증 동작이 패스된 것으로 판별되면, 절차는 S370 단계로 진행할 것이다. S370 단계에서는, 도 16에서 설명된 바와 같이, 나머지 프로그램 상태들(P2∼P7)에 대한 검증 종료점들(P(j)_Verify_End)이 예측될 것이다. 예를 들면, S370 단계는 프로그램 상태를 나타내는 변수(j)를 2로 설정하고(S371), j번째 프로그램 상태의 검증 종료점(P(j)_Verify_End)을 예측하고(S372), 변수(j)의 값이 MSB 프로그램 상태(P7)를 나타내는 값(7)에 도달하였는 지의 여부를 판별하고(S373), 변수(j)의 값이 MSB 프로그램 상태(P7)를 나타내는 값(7)에 도달하지 않은 것으로 판별될 때 변수(j)의 값을 '1'만큼 증가시키는(S374) 것을 포함할 것이다. S370 단계에서 나머지 프로그램 상태들(P2∼P7)에 대한 검증 종료점들(P(j)_Verify_End)이 예측되면, 절차는 S380 단계로 진행할 것이다. S360 단계에서 프로그램 상태(P1)의 검증 동작이 패스되지 않은 것으로 판별되면, 절차는 S380 단계로 진행할 것이다.
S380 단계에서는 프로그램 상태를 나타내는 변수(j)가 '2'로 설정될 것이다. S390 단계에서 현재의 프로그램 루프(i_PGM_Loop)가 프로그램 상태(P2)의 검증 시작점(P(j)_Verify_Start)과 같거나 큰 지 그리고 프로그램 상태(P2)의 검증 종료점(P(j)_Verify_End)과 같거나 작은 지의 여부가 판별될 것이다. 현재의 프로그램 루프(i_PGM_Loop)가 프로그램 상태(P2)의 검증 시작점(P(j)_Verify_Start)보다 작다는 것은 프로그램 상태(P2)의 검증 동작이 생략됨을 의미한다. 현재의 프로그램 루프(i_PGM_Loop)가 프로그램 상태(P2)의 검증 시작점(P(j)_Verify_Start)과 같거나 크다는 것은 프로그램 상태(P2)의 검증 동작이 수행되어야 함을 의미한다. 또한, 현재의 프로그램 루프(i_PGM_Loop)가 프로그램 상태(P2)의 검증 종료점(P(j)_Verify_End)보다 크다는 것은 현재의 프로그램 루프가 프로그램 상태(P2)의 예측된 검증 종료점에 도달하였음을 의미한다. 즉, 현재의 프로그램 루프(i_PGM_Loop)가 프로그램 상태(P2)의 검증 종료점(P(j)_Verify_End)보다 크다는 것은 프로그램 루프(P2)의 검증 동작이 예측된 검증 종료점에 의거하여 강제로 패스되었음을 의미한다. 결과적으로, 현재의 프로그램 루프(i_PGM_Loop)가 프로그램 상태(P2)의 검증 종료점(P(j)_Verify_End)보다 큰 것으로 판별될 때, 프로그램 상태들(P2∼P7) 각각의 검증 동작은 S390 단계에서 강제로 패스 상태로 설정될 것이다.
만약 S390 단계에서 현재의 프로그램 루프(i_PGM_Loop)가 프로그램 상태(P2)의 검증 시작점(P(j)_Verify_Start)과 같거나 큰 것으로 또는 프로그램 상태(P2)의 검증 종료점(P(j)_Verify_End)과 같거나 작은 것으로 판별되면, 절차는 S400 단계로 진행할 것이다. S400 단계에서는 프로그램 상태(P2)에 대한 검증 동작이 수행될 것이다. 검증 동작이 수행된 후, 절차는 S410 단계로 진행할 것이다. S390 단계에서 그렇지 않은 것으로 판별되면, 절차는 S410 단계로 진행할 것이다. S410 단계에서, 변수(j)의 값이 MSB 프로그램 상태(P7)를 나타내는 값(7)에 도달하였는 지의 여부가 판별될 것이다. 만약 변수(j)의 값이 MSB 프로그램 상태(P7)를 나타내는 값(7)에 도달하지 않은 것으로 판별되면, S420 단계에서, 변수(j)의 값은 1만큼 증가될 것이다. 변수(j)의 값이 MSB 프로그램 상태(P7)를 나타내는 값(7)에 도달한 것으로 판별되면, 절차는 S430 단계로 진행할 것이다. S430 단계에서는 모든 프로그램 상태들에 대한 검증 동작들이 패스되었는 지의 여부가 판별될 것이다. 만약 그렇지 않으면, S440 단계에서, 프로그램 루프를 나타내는 변수(i_PGM_Loop)이 '1'만큼 증가될 것이다. 이후, 절차는 S310 단계로 진행할 것이다. 만약 모든 프로그램 상태들에 대한 검증 동작들이 패스된 것으로 판별되면, 절차는 종료될 것이다.
도 24는 본 발명의 다른 예시적인 실시예들에 따른 플래시 메모리 장치의 프로그램 방법을 개략적으로 설명하기 위한 흐름도이다. 이하, 본 발명의 다른 예시적인 실시예들에 따른 플래시 메모리 장치의 프로그램 방법이 참조 도면들에 의거하여 상세히 설명될 것이다.
설명에 앞서, 메모리 셀 당 3-비트 데이터가 저장된다고 가정하자. 이러한 경우, 하나의 소거 상태(E)와 7개의 프로그램 상태들(P1∼P7)이 존재할 것이다. 게다가, 도 24에 도시된 프로그램 방법은 도 6/8에서 설명된 검증 시작점 예측 방식과 도 20에서 설명된 검증 종료점 예측 방식을 포함할 것이다. 검증 시작점 예측 방식을 통해 패스트 비트들(fast bits)에 대한 검증 동작을 스킵할 수 있고, 검증 종료점 예측 방식을 통해 슬로우 비트들(slow bits)에 대한 검증 동작을 스킵할 수 있다. 이는 이하 상세히 설명될 것이다.
일단 프로그램 동작이 개시되면, S500 단계에서, 변수(i_PGM_Loop)가 '1'로 설정되고, 변수(P(j)_Verify_Start)가 최대 프로그램 루프 횟수(Max_PGM_Loop)로 설정될 것이다. 여기서, 변수(i_PGM_Loop)는 현재의 프로그램 루프를 나타내는 데 사용되고, 변수(P(j)_Verify_Start)는 j번째 프로그램 상태의 검증 시작 루프를 나타내는 데 사용될 것이다. S510 단계에서, 제어 로직(400)의 제어 하에 프로그램 동작이 실행될 것이다.
프로그램 동작의 실행이 종료되면, S520 단계에서, 프로그램 상태(P1)의 검증 동작이 패스되었는 지의 여부가 판별될 것이다. 만약 프로그램 상태(P1)의 검증 동작이 패스되지 않은 것으로 판별되면, 절차는 S530 단계로 진행할 것이다. S530 단계에서는, 프로그램 상태(P1)에 대한 검증 동작이 수행될 것이다. 검증 동작 동안, 또한, 프로그램 상태(P1)에 대한 페일 비트들의 수가 카운트될 것이다. 도 20에서 설명된 바와 같이, 프로그램 상태(P1)에 대한 페일 비트들의 수가 기준값과 같거나 작은 것으로 판별될 때, 프로그램 상태(P1)의 검증 동작은 패스된 것으로 설정될 것이다.
다음 단계(S540)에서, 프로그램 상태(P1)의 검증 동작 동안 적어도 하나의 패스 비트(즉, 패스트 비트)가 검출되었는 지의 여부가 판별될 것이다. 프로그램 상태(P1)의 검증 동작 동안 패스 비트가 검출된 것으로 판별되면, 절차는 S550 단계로 진행할 것이다. S550 단계에서는, 도 6/8에서 설명된 바와 같이, 검출된 패스 비트에 의거하여 나머지 프로그램 상태들(P2∼P7)의 검증 시작점들(P(i)_Verify_Start)이 예측될 것이다. 예를 들면, S550 단계는 프로그램 상태를 나타내는 변수(j)를 2로 설정하고(S551), j번째 프로그램 상태의 검증 시작점(P(i)_Verify_Start)을 예측하고(S552), 변수(j)의 값이 MSB 프로그램 상태(P7)를 나타내는 값(7)에 도달하였는 지의 여부를 판별하고(S553), 변수(j)의 값이 MSB 프로그램 상태(P7)를 나타내는 값(7)에 도달하지 않은 것으로 판별될 때 변수(j)의 값을 '1'만큼 증가시키는(S554) 것을 포함할 것이다. 검증 시작점들은 도 13 및 도 14에서 설명된 방식에 따라 가변적으로 예측될 수 있다. S350 단계에서 나머지 프로그램 상태들(P2∼P7)에 대한 검증 시작점들(P(j)_Verify_Start)이 예측되면, 절차는 S560 단계로 진행할 것이다. S540 단계에서, 프로그램 상태(P1)의 검증 동작 동안 패스 비트(패스트 비트)가 검출되지 않은 것으로 판별되면, 절차는 S560 단계로 진행할 것이다.
S560 단계에서는 프로그램 상태를 나타내는 변수(j)가 '2'로 설정될 것이다. S570 단계에서, 프로그램 상태(P2)의 검증 동작이 패스되었는 지의 여부가 판별될 것이다. 만약 그렇지 않으면, 절차는 S570 단계로 진행할 것이다. S570 단계에서는 프로그램 상태(P2)의 예측된 검증 시작점이 현재의 프로그램 루프(i_PGM_Loop)와 같거나 작은 지의 여부가 판별될 것이다. 여기서, 현재의 프로그램 루프(i_PGM_Loop)가 프로그램 상태(P2)의 검증 시작점(P(j)_Verify_Start)보다 작다는 것은 프로그램 상태(P2)의 검증 동작이 생략됨을 의미한다. 현재의 프로그램 루프(i_PGM_Loop)가 프로그램 상태(P2)의 검증 시작점(P(j)_Verify_Start)보다 크다는 것은 프로그램 상태(P2)의 검증 동작이 수행되어야 함을 의미한다.
현재의 프로그램 루프(i_PGM_Loop)가 프로그램 상태(P2)의 검증 시작점(P(j)_Verify_Start)과 같거나 큰 것으로 판별되면, 절차는 S590 단계로 진행할 것이다. S590 단계에서는, 프로그램 상태(P2)에 대한 검증 동작이 수행될 것이다. 검증 동작 동안, 또한, 프로그램 상태(P2)에 대한 페일 비트들의 수가 카운트될 것이다. 도 20에서 설명된 바와 같이, 프로그램 상태(P2)에 대한 페일 비트들의 수가 기준값과 같거나 작은 것으로 판별될 때, 프로그램 상태(P2)의 검증 동작은 패스된 것으로 설정될 것이다. 예시적인 실시예에 있어서, 도 20에서 설명된 바와 같이, 프로그램 상태(P2)에 대한 페일 비트 검출 동작은 이전의 프로그램 상태(P1)의 검증 동작이 패스로 설정된 후 행해질 것이다. 검증 동작이 수행된 후, 절차는 S600 단계로 진행할 것이다.
S570 단계에서 프로그램 상태(P(j))의 검증 동작이 패스된 것으로 판별되거나, S580 단계에서 현재의 프로그램 루프가 예측된 검증 시작점에 도달하지 않은 것으로 판별될 때, 절차는 S600 단계로 진행할 것이다. S600 단계에서는, 변수(j)의 값이 MSB 프로그램 상태(P7)를 나타내는 값(7)에 도달하였는 지의 여부가 판별될 것이다. 만약 변수(j)의 값이 MSB 프로그램 상태(P7)를 나타내는 값(7)에 도달하지 않은 것으로 판별되면, S610 단계에서, 변수(j)의 값은 1만큼 증가될 것이다. 변수(j)의 값이 MSB 프로그램 상태(P7)를 나타내는 값(7)에 도달한 것으로 판별되면, 절차는 S620 단계로 진행할 것이다. S620 단계에서는 모든 프로그램 상태들(P1∼P7)에 대한 검증 동작들이 패스되었는 지의 여부가 판별될 것이다. 만약 그렇지 않으면, S630 단계에서, 프로그램 루프를 나타내는 변수(i_PGM_Loop)이 '1'만큼 증가될 것이다. 이후, 절차는 S510 단계로 진행할 것이다. 만약 모든 프로그램 상태들(P1∼P7)에 대한 검증 동작들이 패스된 것으로 판별되면, 절차는 종료될 것이다.
도 25는 본 발명의 다른 예시적인 실시예들에 따른 플래시 메모리 장치의 프로그램 방법을 개략적으로 설명하기 위한 흐름도이다. 이하, 본 발명의 다른 예시적인 실시예들에 따른 플래시 메모리 장치의 프로그램 방법이 참조 도면들에 의거하여 상세히 설명될 것이다.
설명에 앞서, 메모리 셀 당 3-비트 데이터가 저장된다고 가정하자. 이러한 경우, 하나의 소거 상태(E)와 7개의 프로그램 상태들(P1∼P7)이 존재할 것이다. 게다가, 도 25에 도시된 프로그램 방법은 도 10에서 설명된 검증 시작점 예측 방식과 도 16에서 설명된 검증 종료점 예측 방식을 포함할 것이다. 검증 시작점 예측 방식을 통해 패스트 비트들(fast bits)에 대한 검증 동작을 스킵할 수 있고, 검증 종료점 예측 방식을 통해 슬로우 비트들(slow bits)에 대한 검증 동작을 스킵할 수 있다. 이는 이하 상세히 설명될 것이다.
일단 프로그램 동작이 개시되면, S700 단계에서, 변수(i_PGM_Loop)가 '1'로 설정되고, 변수(P(j)_Verify_End)가 최대 프로그램 루프 횟수(Max_PGM_Loop)로 설정될 것이다. 여기서, 변수(i_PGM_Loop)는 현재의 프로그램 루프를 나타내는 데 사용되고, 변수(P(j)_Verify_End)는 j번째 프로그램 상태의 검증 종료 루프를 나타내는 데 사용될 것이다. S710 단계에서는 이전 페이지/이전 스텝 프로그램 절차에서 검출된 패스 비트를 나타내는 패스 비트 정보(예를 들면, 프로그램 전압 또는 프로그램 루프)에 의거하여 프로그램 상태들(예를 들면, P1∼P7)의 검증 시작점들이 예측될 것이다. 예를 들면, S710 단계는 변수(j)를 '1'로 설정하고(S711), 프로그램 상태(P2)의 검증 시작점을 예측하고(S712), 변수(j)의 값이 MSB 프로그램 상태(P7)를 나타내는 값(7)에 도달하였는 지의 여부를 판별하고(S713), 변수(j)의 값이 MSB 프로그램 상태를 나타내는 값(7)에 도달하지 않은 것으로 판별될 때 변수(j)의 값을 '1'만큼 증가시키는(S714) 것을 포함할 것이다. 만약 변수(j)의 값이 MSB 프로그램 상태를 나타내는 값(7)에 도달한 것으로 판별되면, 절차는 S720 단계로 진행할 것이다. S720 단계에서는 제어 로직(400)의 제어 하에 프로그램 동작이 실행될 것이다.
프로그램 동작의 실행이 종료되면, S730 단계에서, 프로그램 상태(P1)의 검증 동작이 패스되었는 지의 여부가 판별될 것이다. 만약 프로그램 상태(P1)의 검증 동작이 패스되지 않은 것으로 판별되면, S740 단계에서는, 프로그램 상태(P1)에 대한 검증 동작이 수행될 것이다. S750 단계에서, 프로그램 상태(P1)의 검증 동작이 패스되었는 지의 여부가 판별될 것이다. 만약 프로그램 상태(P1)의 검증 동작이 패스된 것으로 판별되면, 절차는 S760 단계로 진행할 것이다. S760 단계에서는, 도 16에서 설명된 바와 같이, 나머지 프로그램 상태들(P2∼P7)에 대한 검증 종료점들(P(j)_Verify_End)이 예측될 것이다. 예를 들면, S760 단계는 프로그램 상태를 나타내는 변수(j)를 2로 설정하고(S761), j번째 프로그램 상태의 검증 종료점(P(j)_Verify_End)을 예측하고(S762), 변수(j)의 값이 MSB 프로그램 상태(P7)를 나타내는 값(7)에 도달하였는 지의 여부를 판별하고(S763), 변수(j)의 값이 MSB 프로그램 상태를 나타내는 값에 도달하지 않은 것으로 판별될 때 변수(j)의 값을 '1'만큼 증가시키는(S374) 것을 포함할 것이다. S370 단계에서 나머지 프로그램 상태들(P2∼P7)에 대한 검증 종료점들(P(j)_Verify_End)이 예측되면, 절차는 S770 단계로 진행할 것이다. S750 단계에서 프로그램 상태(P1)의 검증 동작이 패스되지 않은 것으로 판별되면, 절차는 S770 단계로 진행할 것이다.
S770 단계에서는 프로그램 상태를 나타내는 변수(j)가 '2'로 설정될 것이다. S780 단계에서 현재의 프로그램 루프(i_PGM_Loop)가 프로그램 상태(P2)의 검증 시작점(P(j)_Verify_Start)과 같거나 큰 지 그리고 프로그램 상태(P2)의 검증 종료점(P(j)_Verify_End)과 같거나 작은 지의 여부가 판별될 것이다. 현재의 프로그램 루프(i_PGM_Loop)가 프로그램 상태(P2)의 검증 시작점(P(j)_Verify_Start)보다 작다는 것은 프로그램 상태(P2)의 검증 동작이 생략됨을 의미한다. 현재의 프로그램 루프(i_PGM_Loop)가 프로그램 상태(P2)의 검증 시작점(P(j)_Verify_Start)과 같거나 크다는 것은 프로그램 상태(P2)의 검증 동작이 수행되어야 함을 의미한다. 또한, 현재의 프로그램 루프(i_PGM_Loop)가 프로그램 상태(P2)의 검증 종료점(P(j)_Verify_End)보다 크다는 것은 현재의 프로그램 루프가 프로그램 상태(P2)의 예측된 검증 종료점에 도달하였음을 의미한다. 즉, 현재의 프로그램 루프(i_PGM_Loop)가 프로그램 상태(P2)의 검증 종료점(P(j)_Verify_End)보다 크다는 것은 프로그램 푸르(P2)의 검증 동작이 예측된 검증 종료점에 의거하여 강제로 패스되었음을 의미한다. 결과적으로, 현재의 프로그램 루프(i_PGM_Loop)가 프로그램 상태(P2)의 검증 종료점(P(j)_Verify_End)보다 큰 것으로 판별될 때, 프로그램 상태들(P2∼P7) 각각의 검증 동작은 S780 단계에서 강제로 패스 상태로 설정될 것이다.
만약 S780 단계에서 현재의 프로그램 루프(i_PGM_Loop)가 프로그램 상태(P2)의 검증 시작점(P(j)_Verify_Start)과 같거나 큰 것으로 또는 프로그램 상태(P2)의 검증 종료점(P(j)_Verify_End)과 같거나 작은 것으로 판별되면, 절차는 S790 단계로 진행할 것이다. S790 단계에서는 프로그램 상태(P2)에 대한 검증 동작이 수행될 것이다. 검증 동작이 수행된 후, 절차는 S800 단계로 진행할 것이다. S780 단계에서 그렇지 않은 것으로 판별되면, 절차는 S800 단계로 진행할 것이다. S800 단계에서, 변수(j)의 값이 MSB 프로그램 상태(P7)를 나타내는 값(7)에 도달하였는 지의 여부가 판별될 것이다. 만약 변수(j)의 값이 MSB 프로그램 상태(P7)를 나타내는 값(7)에 도달하지 않은 것으로 판별되면, S810 단계에서, 변수(j)의 값은 1만큼 증가될 것이다. 변수(j)의 값이 MSB 프로그램 상태(P7)를 나타내는 값(7)에 도달한 것으로 판별되면, 절차는 S820 단계로 진행할 것이다. S820 단계에서는 모든 프로그램 상태들(P1∼P7)에 대한 검증 동작들이 패스되었는 지의 여부가 판별될 것이다. 만약 그렇지 않으면, S830 단계에서, 프로그램 루프를 나타내는 변수(i_PGM_Loop)이 '1'만큼 증가될 것이다. 이후, 절차는 S720 단계로 진행할 것이다. 만약 그렇다면, 절차는 종료될 것이다.
도 26은 본 발명의 또 다른 예시적인 실시예들에 따른 플래시 메모리 장치의 프로그램 방법을 개략적으로 설명하기 위한 흐름도이다. 이하, 본 발명의 또 다른 예시적인 실시예들에 따른 플래시 메모리 장치의 프로그램 방법이 참조 도면들에 의거하여 상세히 설명될 것이다.
설명에 앞서, 메모리 셀 당 3-비트 데이터가 저장된다고 가정하자. 이러한 경우, 하나의 소거 상태(E)와 7개의 프로그램 상태들(P1∼P7)이 존재할 것이다. 게다가, 도 26에 도시된 프로그램 방법은 도 10에서 설명된 검증 시작점 예측 방식과 도 20에서 설명된 검증 종료점 예측 방식을 포함할 것이다. 검증 시작점 예측 방식을 통해 패스트 비트들(fast bits)에 대한 검증 동작을 스킵할 수 있고, 검증 종료점 예측 방식을 통해 슬로우 비트들(slow bits)에 대한 검증 동작을 스킵할 수 있다. 이는 이하 상세히 설명될 것이다.
일단 프로그램 동작이 개시되면, S900 단계에서, 변수(i_PGM_Loop)가 '1'로 설정되고, 변수(P(j)_Verify_End)가 최대 프로그램 루프 횟수(Max_PGM_Loop)로 설정될 것이다. 여기서, 변수(i_PGM_Loop)는 현재의 프로그램 루프를 나타내는 데 사용되고, 변수(P(j)_Verify_End)는 j번째 프로그램 상태의 검증 종료 루프를 나타내는 데 사용될 것이다. S910 단계에서는 이전 페이지/이전 스텝 프로그램 절차에서 검출된 패스 비트를 나타내는 패스 비트 정보(예를 들면, 프로그램 전압 또는 프로그램 루프)에 의거하여 프로그램 상태들(예를 들면, P1∼P7)의 검증 시작점들이 예측될 것이다. 예를 들면, S910 단계는 변수(j)를 '1'로 설정하고(S911), 프로그램 상태(P2)의 검증 시작점을 예측하고(S912), 변수(j)의 값이 MSB 프로그램 상태를 나타내는 값(7)에 도달하였는 지의 여부를 판별하고(S913), 변수(j)의 값이 MSB 프로그램 상태를 나타내는 값(7)에 도달하지 않은 것으로 판별될 때 변수(j)의 값을 '1'만큼 증가시키는(S914) 것을 포함할 것이다. 만약 변수(j)의 값이 MSB 프로그램 상태를 나타내는 값(7)에 도달한 것으로 판별되면, 절차는 S920 단계로 진행할 것이다. S920 단계에서는 제어 로직(400)의 제어 하에 프로그램 동작이 실행될 것이다.
프로그램 동작의 실행이 종료되면, 절차는 S930 단계로 진행할 것이다. S930 단계에서는 프로그램 상태를 나타내는 변수(j)가 '1'로 설정될 것이다. S940 단계에서, 프로그램 상태(P1)의 예측된 검증 시작점이 현재의 프로그램 루프(i_PGM_Loop)와 같거나 작은 지의 여부가 판별될 것이다. 여기서, 현재의 프로그램 루프(i_PGM_Loop)가 프로그램 상태(P1)의 검증 시작점(P(j)_Verify_Start)보다 작다는 것은 프로그램 상태(P1)의 검증 동작이 생략됨을 의미한다. 현재의 프로그램 루프(i_PGM_Loop)가 프로그램 상태(P1)의 검증 시작점(P(j)_Verify_Start)과 같거나 크다는 것은 프로그램 상태(P1)의 검증 동작이 수행되어야 함을 의미한다.
현재의 프로그램 루프(i_PGM_Loop)가 프로그램 상태(P1)의 검증 시작점(P(j)_Verify_Start)과 같거나 큰 것으로 판별되면, 절차는 S950 단계로 진행할 것이다. S950 단계에서는, 프로그램 상태(P1)에 대한 검증 동작이 수행될 것이다. 검증 동작 동안, 또한, 프로그램 상태(P1)에 대한 페일 비트들의 수가 카운트될 것이다. 도 20에서 설명된 바와 같이, 프로그램 상태(P2)에 대한 페일 비트들의 수가 기준값과 같거나 작은 것으로 판별될 때, 프로그램 상태(P2)의 검증 동작은 패스된 것으로 설정될 것이다. 앞서 언급된 바와 같이, 하위 프로그램 상태에 대한 검증 동작이 패스로 설정된 후, 현재의 프로그램 상태에 대한 페일 비트 카운트 동작이 수행될 것이다. 검증 동작이 수행된 후, 절차는 S960 단계로 진행할 것이다. S940 단계에서 현재의 프로그램 루프가 예측된 검증 시작점에 도달하지 않은 것으로 판별될 때, 절차는 S960 단계로 진행할 것이다. S960 단계에서는, 변수(j)의 값이 MSB 프로그램 상태(P7)를 나타내는 값(7)에 도달하였는 지의 여부가 판별될 것이다. 만약 변수(j)의 값이 MSB 프로그램 상태(P7)를 나타내는 값(7)에 도달하지 않은 것으로 판별되면, S970 단계에서, 변수(j)의 값은 1만큼 증가될 것이다. 변수(j)의 값이 MSB 프로그램 상태(P7)를 나타내는 값(7)에 도달한 것으로 판별되면, 절차는 S980 단계로 진행할 것이다. S980 단계에서는 모든 프로그램 상태들(P1∼P7)에 대한 검증 동작들이 패스되었는 지의 여부가 판별될 것이다. 만약 그렇지 않으면, S990 단계에서, 프로그램 루프를 나타내는 변수(i_PGM_Loop)이 '1'만큼 증가될 것이다. 이후, 절차는 S920 단계로 진행할 것이다. 만약 모든 프로그램 상태들(P1∼P7)에 대한 검증 동작들이 패스된 것으로 판별되면, 절차는 종료될 것이다.
도 27은 본 발명의 예시적인 실시예에 따른 플래시 메모리 장치를 포함한 집적 회로 카드를 개략적으로 보여주는 블록도이다.
도 27을 참조하면, 집적 회로 카드(예를 들면, 스마트카드)는 불 휘발성 메모리 장치(1000)와 제어기(2000)를 포함한다. 불 휘발성 메모리 장치(1000)는 도 1에 도시된 것과 실질적으로 동일하며, 그것에 대한 설명은 그러므로 생략될 것이다. 제어기(2000)는 불 휘발성 메모리 장치(1000)를 제어하며, CPU(2100), ROM(2200), RAM(2300), 그리고 입출력 인터페이스(2400)를 포함한다. CPU(2100)는 ROM(2200)에 저장되는 다양한 프로그램들에 의거하여 집적 회로 카드의 동작을 전반적으로 제어하며, 입출력 인터페이스(2400)는 외부와의 인터페이스를 제공한다. 제어기(2000)는 불 휘발성 메모리 장치(1000)의 프로그램 동작 동안 검출된 패스 비트를 나타내는 정보를 저장하도록 그리고 검출된 패스 비트를 나타내는 정보를 불 휘발성 메모리 장치(1000)에 제공하도록 구성될 수 있다. 그러한 정보는 앞서 설명된 정교한 프로그램 동작을 수행할 때 검증 시작점들을 예측하는 데 사용될 수 있다.
플래시 메모리 장치는 전력이 차단되어도 저장된 데이터를 유지할 수 있는 불 휘발성 메모리 장치이다. 셀룰러 폰, PDA 디지털 카메라, 포터블 게임 콘솔, 그리고 MP3P와 같은 모바일 장치들의 사용 증가에 따라, 플래시 메모리 장치는 데이터 스토리지 뿐만 아니라 코드 스토리지로서 보다 널리 사용된다. 플래시 메모리 장치는, 또한, HDTV, DVD, 라우터, 그리고 GPS와 같은 홈 어플리케이션에 사용될 수 있다. 본 발명의 예시적인 실시예들에 따른 플래시 메모리 장치를 포함한 컴퓨팅 시스템이 도 28에 개략적으로 도시되어 있다.
본 발명에 따른 컴퓨팅 시스템은 버스(3001)에 전기적으로 연결된 마이크로프로세서(3100), 사용자 인터페이스(3200), 베이스밴드 칩셋(baseband chipset)과 같은 모뎀(3300), 메모리 제어기(3400), 그리고 저장 매체로서 플래시 메모리 장치(3500)를 포함한다. 플래시 메모리 장치(3500)는 도 1에 도시된 것과 실질적으로 동일하게 구성될 것이다. 플래시 메모리 장치(3500)는 앞서 설명된 적응적인 검증 방식에 의거하여 프로그램 동작을 수행하며, 그것에 대한 설명은 그러므로 생략될 것이다. 플래시 메모리 장치(3500)에는 마이크로프로세서(3100)에 의해서 처리된/처리될 N-비트 데이터(N은 1 또는 그 보다 큰 정수)가 메모리 제어기(3400)를 통해 저장될 것이다. 본 발명에 따른 컴퓨팅 시스템이 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리(3600)가 추가적으로 제공될 것이다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 메모리 제어기와 플래시 메모리 장치는, 예를 들면, 데이터를 저장하는 데 불 휘발성 메모리를 사용하는 반도체 드라이브/디스크(Solid State Drive/Disk: SSD)를 구성할 수 있다.
도 29는 본 발명의 예시적인 실시예에 따른 도 28에 도시된 메모리 제어기를 개략적으로 보여주는 블록도이다.
도 29를 참조하면, 제어기는 저장 매체에 데이터를 저장하도록 그리고 저장 매체로부터 데이터를 읽도록 구성될 것이다. 제어기는 호스트 인터페이스(4100), 메모리 인터페이스(4200), 처리 유니트(4300), 버퍼 메모리(4400), 그리고 오류 제어 유니트(4500)를 포함한다. 호스트 인터페이스(4100)는 외부 장치(예를 들면, 호스트)와 인터페이스하도록 구성되며, 메모리 인터페이스(4200)는 저장 매체와 인터페이스하도록 구성될 것이다. 처리 유니트(4300)는 제어기의 동작을 전반적으로 제어하도록 구성될 것이다. 버퍼 메모리(4400)는 저장 매체에 저장될 데이터를 또는 저장 매체로부터 읽혀진 데이터를 임시 저장하는 데 사용될 것이다. 또한, 버퍼 메모리(4400)는 처리 유니트(4300)의 작업 메모리(work memory)로서 사용될 수 있다. 버퍼 메모리(4400)는 플래시 메모리 장치에서 출력되는 패스 비트 정보를 저장하는 데 사용될 수 있다. 오류 제어 유니트(4500)는 저장 매체로부터 읽혀진 데이터의 에러를 검출 및 정정하도록 구성될 것이다. 도 25에 도시된 바와 같이, 제어기에 코드 데이터를 저장하기 위한 롬(4600)이 추가적으로 제공될 수 있음은 잘 이해될 것이다.
본 발명의 예시적인 실시예에 있어서, 메모리 셀들은 가변 저항 메모리 셀로 구성될 수 있으며, 예시적인 가변 저항 메모리 셀 및 그것을 포함한 메모리 장치가 미국특허번호 제7529124호에 게재되어 있으며, 이 출원의 레퍼런스로 포함될 것이다.
본 발명의 다른 예시적인 실시예에 있어서, 메모리 셀들은 전하 저장층을 갖는 다양한 셀 구조들 중 하나를 이용하여 구현될 수 있다. 전하 저장층을 갖는 셀 구조는 전하 트랩층을 이용하는 전하 트랩 플래시 구조, 어레이들이 다층으로 적층되는 스택 플래시 구조, 소오스-드레인이 없는 플래시 구조, 핀-타입 플래시 구조, 등을 포함할 것이다.
전하 저장층으로서 전하 트랩 플래시 구조를 갖는 메모리 장치가 미국특허 제6858906호, 미국공개특허 제2004-0169238호, 그리고 미국공개특허 제2006-0180851호에 각각 게재되어 있으며, 이 출원의 레퍼런스로 포함될 것이다. 소오스/드레인이 없는 플래시 구조는 대한민국특허 제673020호에 게재되어 있으며, 이 출원의 레퍼런스로 포함될 것이다.
본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 제어기는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 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), 등과 같은 패키지들을 이용하여 실장될 수 있다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
100: 메모리 셀 어레이
200: 행 디코더 회로
300: 전압 발생 회로
400: 제어 로직
500: 읽기/쓰기 회로
600: 입출력 인터페이스 회로

Claims (10)

  1. 플래시 메모리 장치를 프로그램하는 방법에 있어서:
    선택된 워드 라인의 메모리 셀들을 프로그램하고,
    검증 동작을 수행하여 상기 선택된 워드 라인의 메모리 셀들의 문턱 전압들이 목표 상태들의 검증 레벨들과 같거나 높은 지의 여부를 판별하는 것을 포함하고,
    상기 목표 상태들 각각과 관련된 상기 검증 동작의 시작점은 상기 목표 상태들 이전에 행해진 초기 상태들의 프로그래밍 동안 최초로 검출된 적어도 하나의 패스 비트의 위치에 의거하여 결정되고, 상기 목표 상태들 각각과 관련된 상기 검증 동작의 종료점은 상기 목표 상태들 중 최하위 목표 상태의 패스 정보에 의거하여 결정되는 것을 특징으로 하는 방법.
  2. 제 1 항에 있어서,
    상기 프로그램하는 것과 상기 판별하는 것은 루프를 구성하며, 상기 목표 상태들 각각의 검증 동작은 현재의 루프가 상기 결정된 시작점들 각각에 대응하는 루프에 도달할 때까지 생략되는 것을 특징으로 하는 방법.
  3. 제 2 항에 있어서,
    상기 목표 상태들과 관련된 검증 동작들의 시작점들은 상기 목표 상태들과 상기 초기 상태들 사이의 관계에 따라 조정되는 것을 특징으로 하는 방법.
  4. 제 3 항에 있어서,
    상기 목표 상태들과 상기 초기 상태들 사이의 관계는 목표 상태와 초기 상태가 겹치는 제 1 경우와 목표 상태와 초기 상태가 겹치지 않는 제 2 경우를 포함하는 것을 특징으로 하는 방법.
  5. 제 4 항에 있어서,
    상기 제 1 경우시, 상기 목표 상태와 관련된 검증 동작의 시작점은 상기 패스 비트에 의해서 결정된 시점보다 앞서도록 결정되는 것을 특징으로 하는 방법.
  6. 제 4 항에 있어서,
    상기 제 2 경우시, 상기 목표 상태와 관련된 검증 동작의 시작점은 상기 패스 비트에 의해서 결정된 시점보다 뒤지도록 결정되는 것을 특징으로 하는 방법.
  7. 제 1 항에 있어서,
    상기 판별하는 것은 상기 프로그램 상태들 중 적어도 하나의 프로그램 상태의 패스 시점을 기준으로 상기 적어도 하나의 프로그램 상태를 제외한 프로그램 상태들에 대한 검증 동작들의 검증 종료점들을 예측하는 것을 포함하는 것을 특징으로 하는 플래시 메모리 장치의 프로그램 방법.
  8. 제 7 항에 있어서,
    상기 검증 동작들의 종료점들을 예측하는 것은
    상기 적어도 하나의 프로그램 상태의 패스 시점을 기준으로 상기 적어도 하나의 프로그램 상태를 제외한 프로그램 상태들에 대한 검증 동작들의 패스 시점들을 예측하고,
    상기 예측된 패스 시점들로부터 각각 오프셋값만큼 차감된 시점들을 상기 검증 동작들의 검증 종료점들로서 결정하는 것을 포함하는 것을 특징으로 하는 플래시 메모리 장치의 프로그램 방법.
  9. 제 8 항에 있어서,
    상기 적어도 하나의 프로그램 상태를 제외한 프로그램 상태들의 검증 동작들에 대응하는 오프셋값들은 동일하게 설정되는 것을 특징으로 하는 플래시 메모리 장치의 프로그램 방법.
  10. 제 8 항에 있어서,
    상기 적어도 하나의 프로그램 상태를 제외한 프로그램 상태들의 검증 동작들에 대응하는 오프셋값들은 서로 다르게 설정되는 것을 특징으로 하는 플래시 메모리 장치의 프로그램 방법.
KR1020100012894A 2010-02-11 2010-02-11 플래시 메모리 장치 및 그것의 프로그램 방법 KR101676816B1 (ko)

Priority Applications (9)

Application Number Priority Date Filing Date Title
KR1020100012894A KR101676816B1 (ko) 2010-02-11 2010-02-11 플래시 메모리 장치 및 그것의 프로그램 방법
US12/963,867 US8411502B2 (en) 2010-02-11 2010-12-09 Flash memory device using adaptive program verification scheme and related method of operation
JP2010286569A JP5698968B2 (ja) 2010-02-11 2010-12-22 フラッシュメモリ装置及びそのプログラム方法
TW099146352A TWI484493B (zh) 2010-02-11 2010-12-28 使用適應性程式驗證方法的快閃記憶體元件以及其操作方法
CN201610245371.5A CN105931671B (zh) 2010-02-11 2010-12-30 对非易失性存储器件编程的方法
CN201010622089.7A CN102157204B (zh) 2010-02-11 2010-12-30 使用自适应编程验证方案的闪速存储器件和相关操作方法
US13/841,503 US9076534B2 (en) 2010-02-11 2013-03-15 Flash memory device using adaptive program verification scheme and related method of operation
US14/726,927 US9406394B2 (en) 2010-02-11 2015-06-01 Flash memory device using adaptive program verification scheme and related method of operation
US14/747,786 US20150348633A1 (en) 2010-02-11 2015-06-23 Nonvolatile memory devices and methods of programming nonvolatile memory devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100012894A KR101676816B1 (ko) 2010-02-11 2010-02-11 플래시 메모리 장치 및 그것의 프로그램 방법

Publications (2)

Publication Number Publication Date
KR20110093077A true KR20110093077A (ko) 2011-08-18
KR101676816B1 KR101676816B1 (ko) 2016-11-18

Family

ID=44353607

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100012894A KR101676816B1 (ko) 2010-02-11 2010-02-11 플래시 메모리 장치 및 그것의 프로그램 방법

Country Status (5)

Country Link
US (3) US8411502B2 (ko)
JP (1) JP5698968B2 (ko)
KR (1) KR101676816B1 (ko)
CN (2) CN102157204B (ko)
TW (1) TWI484493B (ko)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150348633A1 (en) * 2010-02-11 2015-12-03 Samsung Electronics Co., Ltd. Nonvolatile memory devices and methods of programming nonvolatile memory devices
KR101855435B1 (ko) * 2010-11-15 2018-05-08 삼성전자주식회사 최대 검증-시간을 조절할 수 있는 비휘발성 메모리 장치, 이의 동작 방법, 및 이를 포함하는 메모리 시스템
CN102969022A (zh) * 2011-09-01 2013-03-13 中国科学院微电子研究所 一种对多位半导体存储器进行编程的方法
DE102012111829A1 (de) 2011-12-06 2013-06-06 Samsung Electronics Co., Ltd. Speichersysteme und Blockkopierverfahren davon
KR101893145B1 (ko) 2011-12-06 2018-10-05 삼성전자주식회사 메모리 시스템들 및 그것들의 블록 복사 방법들
US8854898B2 (en) 2011-12-14 2014-10-07 Micron Technology, Inc. Apparatuses and methods for comparing a current representative of a number of failing memory cells
CN103366811A (zh) * 2012-03-26 2013-10-23 中国科学院微电子研究所 多位半导体存储器的编程方法
US9190149B2 (en) * 2012-08-24 2015-11-17 Infineon Technologies Ag Method and system for switchable erase or write operations in nonvolatile memory
KR102016041B1 (ko) 2012-10-11 2019-08-30 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법
KR102089532B1 (ko) 2013-02-06 2020-03-16 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 메모리 시스템의 동작 방법
KR102112596B1 (ko) 2013-03-15 2020-05-19 삼성전자주식회사 비휘발성 메모리 장치 및 이의 프로그래밍 방법
KR102125376B1 (ko) 2013-07-01 2020-06-23 삼성전자주식회사 저장 장치 및 그것의 쓰기 방법
KR102096285B1 (ko) 2013-07-30 2020-04-02 삼성전자주식회사 메모리 시스템 및 그것의 프로그램 방법
KR102133362B1 (ko) 2013-08-14 2020-07-15 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함하는 메모리 시스템, 및 그것의 프로그램 방법
US9396807B2 (en) * 2013-11-11 2016-07-19 Seagate Technology Llc Incremental programming pulse optimization to reduce write errors
KR102318561B1 (ko) * 2014-08-19 2021-11-01 삼성전자주식회사 스토리지 장치, 스토리지 장치의 동작 방법
KR102291456B1 (ko) 2015-08-13 2021-08-23 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법 및 프로그램 검증 방법
US11437094B2 (en) 2015-08-13 2022-09-06 Samsung Electronics Co., Ltd. Nonvolatile memory device, storage device, and operation method of storage device
US10346097B2 (en) * 2015-11-26 2019-07-09 Samsung Electronics Co., Ltd. Nonvolatile memory device and storage device including nonvolatile memory device
US9842655B2 (en) 2015-12-08 2017-12-12 Intel Corporation Reducing verification checks when programming a memory device
US10141071B2 (en) * 2015-12-26 2018-11-27 Intel Corporation Predictive count fail byte (CFBYTE) for non-volatile memory
KR102423291B1 (ko) * 2016-01-15 2022-07-20 삼성전자주식회사 프로그램 전압을 보정하는 플래시 메모리 장치, 3차원 메모리 장치, 메모리 시스템 및 그의 프로그램 방법
KR102449196B1 (ko) 2016-01-15 2022-09-29 삼성전자주식회사 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 프로그램 방법
US9847133B2 (en) * 2016-01-19 2017-12-19 Ememory Technology Inc. Memory array capable of performing byte erase operation
KR102498248B1 (ko) * 2016-02-04 2023-02-10 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그것의 동작 방법
JP6652470B2 (ja) 2016-09-07 2020-02-26 キオクシア株式会社 半導体記憶装置
KR20180062158A (ko) * 2016-11-30 2018-06-08 삼성전자주식회사 루프 상태 정보를 생성하는 불휘발성 메모리 장치, 그것을 포함하는 저장 장치 및 그것의 동작 방법
US10354738B2 (en) * 2017-09-27 2019-07-16 Micron Technology, Inc. One check fail byte (CFBYTE) scheme
US10410732B1 (en) * 2018-05-21 2019-09-10 Western Digital Technologies, Inc. Failure prediction by cell probing
JP2020013626A (ja) * 2018-07-20 2020-01-23 キオクシア株式会社 メモリシステム
KR102624620B1 (ko) * 2018-11-02 2024-01-15 에스케이하이닉스 주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
TWI708253B (zh) 2018-11-16 2020-10-21 力旺電子股份有限公司 非揮發性記憶體良率提升的設計暨測試方法
US10622080B1 (en) * 2018-11-30 2020-04-14 Macronix International Co., Ltd. Non-volatile memory and reading method thereof
JP2020113351A (ja) * 2019-01-10 2020-07-27 キオクシア株式会社 メモリチップ
EP3853855B1 (en) * 2019-02-20 2023-07-12 Yangtze Memory Technologies Co., Ltd. Method for programming memory system
JP2020144961A (ja) * 2019-03-07 2020-09-10 キオクシア株式会社 半導体記憶装置
US10910076B2 (en) * 2019-05-16 2021-02-02 Sandisk Technologies Llc Memory cell mis-shape mitigation
KR20200141304A (ko) 2019-06-10 2020-12-18 에스케이하이닉스 주식회사 반도체 장치 및 반도체 장치의 동작 방법
KR20210015331A (ko) * 2019-08-01 2021-02-10 삼성전자주식회사 상태 쉐이핑 동작을 수행하기 위한 메모리 장치, 메모리 컨트롤러 및 이를포함하는 메모리 시스템
KR20210062343A (ko) * 2019-11-21 2021-05-31 에스케이하이닉스 주식회사 메모리 장치 및 그 동작 방법
US11049578B1 (en) * 2020-02-19 2021-06-29 Sandisk Technologies Llc Non-volatile memory with program verify skip
KR20210111584A (ko) * 2020-03-03 2021-09-13 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 동작 방법
WO2021223099A1 (en) * 2020-05-06 2021-11-11 Yangtze Memory Technologies Co., Ltd. Control method and controller of 3d nand flash
KR20220021770A (ko) 2020-08-14 2022-02-22 에스케이하이닉스 주식회사 메모리 장치 및 그 동작 방법
KR20220060848A (ko) * 2020-11-05 2022-05-12 에스케이하이닉스 주식회사 메모리 장치 및 이의 동작 방법
KR20220120033A (ko) 2021-02-22 2022-08-30 에스케이하이닉스 주식회사 메모리 장치 및 그 동작 방법
TWI822270B (zh) * 2022-08-24 2023-11-11 旺宏電子股份有限公司 記憶體裝置及其程式化方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100801035B1 (ko) * 2006-12-14 2008-02-04 삼성전자주식회사 멀티 레벨 셀의 프로그램 방법, 페이지 버퍼 블록 및 이를포함하는 불휘발성 메모리 장치
JP2009514138A (ja) * 2005-10-27 2009-04-02 サンディスク コーポレイション スマート検証を利用してマルチステート不揮発性メモリをプログラミングする方法
KR20090119297A (ko) * 2008-05-16 2009-11-19 하진구 영화를 통한 영어학습방법 및 그 장치
WO2009151894A1 (en) * 2008-06-12 2009-12-17 Sandisk Corporation Nonvolatile memory and method with index programming and reduced verify

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6205055B1 (en) * 2000-02-25 2001-03-20 Advanced Micro Devices, Inc. Dynamic memory cell programming voltage
JP2001273792A (ja) 2000-03-27 2001-10-05 Nec Microsystems Ltd フラッシュメモリの書き込み・消去制御方法
US6377507B1 (en) 2001-04-06 2002-04-23 Integrated Memory Technologies, Inc. Non-volatile memory device having high speed page mode operation
US6901010B1 (en) * 2002-04-08 2005-05-31 Advanced Micro Devices, Inc. Erase method for a dual bit memory cell
US7073103B2 (en) 2002-12-05 2006-07-04 Sandisk Corporation Smart verify for multi-state memories
JP4349866B2 (ja) * 2003-09-02 2009-10-21 三洋電機株式会社 Fsk信号復調回路
US7177199B2 (en) * 2003-10-20 2007-02-13 Sandisk Corporation Behavior based programming of non-volatile memory
US6888758B1 (en) 2004-01-21 2005-05-03 Sandisk Corporation Programming non-volatile memory
KR100635203B1 (ko) 2004-05-14 2006-10-16 에스티마이크로일렉트로닉스 엔.브이. 플래쉬 메모리 장치 및 그 구동 방법
JP2005353242A (ja) 2004-06-14 2005-12-22 Toshiba Corp 不揮発性半導体記憶装置及びそのデータ書き込み方法
JP4828901B2 (ja) * 2005-09-22 2011-11-30 株式会社東芝 半導体集積回路装置
US7301817B2 (en) * 2005-10-27 2007-11-27 Sandisk Corporation Method for programming of multi-state non-volatile memory using smart verify
US7366022B2 (en) 2005-10-27 2008-04-29 Sandisk Corporation Apparatus for programming of multi-state non-volatile memory using smart verify
KR100899855B1 (ko) * 2006-01-24 2009-05-29 가부시키가이샤 어드밴티스트 시험장치 및 선택장치
DE602006011451D1 (de) 2006-06-21 2010-02-11 Hynix Semiconductor Inc Verfahren und Vorrichtung zum elektrischen Programmieren von Halbleiterspeicherzellen
JP4344372B2 (ja) * 2006-08-22 2009-10-14 シャープ株式会社 半導体記憶装置及びその駆動方法
KR100805840B1 (ko) * 2006-09-01 2008-02-21 삼성전자주식회사 캐시를 이용한 플래시 메모리 장치 및 그것의 프로그램방법
KR100780773B1 (ko) * 2006-11-03 2007-11-30 주식회사 하이닉스반도체 플래시 메모리소자의 프로그램 시작 바이어스 설정방법 및이를 이용한 프로그램 방법
KR100816161B1 (ko) * 2007-01-23 2008-03-21 주식회사 하이닉스반도체 플래시 메모리 소자의 프로그램 방법
JP5029883B2 (ja) 2007-05-17 2012-09-19 横河電機株式会社 半導体試験装置
KR100884234B1 (ko) 2007-05-25 2009-02-18 삼성전자주식회사 프로그램 성능을 향상시킬 수 있는 플래시 메모리 장치 및그것의 프로그램 방법
KR101322378B1 (ko) 2007-07-09 2013-10-30 삼성전자주식회사 불휘발성 반도체 메모리 장치 및 그것의 프로그램 방법
KR20090011249A (ko) 2007-07-25 2009-02-02 삼성전자주식회사 비휘발성 메모리 셀 프로그래밍 방법
KR100933859B1 (ko) * 2007-11-29 2009-12-24 주식회사 하이닉스반도체 플래시 메모리 소자 및 그것의 프로그램 방법
US7688638B2 (en) 2007-12-07 2010-03-30 Sandisk Corporation Faster programming of multi-level non-volatile storage through reduced verify operations
US7826271B2 (en) 2008-06-12 2010-11-02 Sandisk Corporation Nonvolatile memory with index programming and reduced verify
US7800945B2 (en) 2008-06-12 2010-09-21 Sandisk Corporation Method for index programming and reduced verify in nonvolatile memory
JP5172555B2 (ja) * 2008-09-08 2013-03-27 株式会社東芝 半導体記憶装置
JP2010244668A (ja) 2009-03-18 2010-10-28 Toshiba Corp 不揮発性半導体記憶装置
KR101039962B1 (ko) 2009-06-29 2011-06-09 주식회사 하이닉스반도체 불휘발성 메모리 소자 및 프로그램 방법
KR101554727B1 (ko) 2009-07-13 2015-09-23 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
KR101670922B1 (ko) 2009-08-07 2016-11-09 삼성전자주식회사 아날로그 신호를 출력하는 불휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템
KR101653206B1 (ko) 2010-01-19 2016-09-02 삼성전자주식회사 프로그램 검증 회로 및 이를 포함하는 비휘발성 메모리 장치
KR101802815B1 (ko) 2011-06-08 2017-12-29 삼성전자주식회사 불휘발성 메모리 장치 및 불휘발성 메모리 장치의 프로그램 방법
US8274831B2 (en) 2010-05-24 2012-09-25 Sandisk Technologies Inc. Programming non-volatile storage with synchronized coupling

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009514138A (ja) * 2005-10-27 2009-04-02 サンディスク コーポレイション スマート検証を利用してマルチステート不揮発性メモリをプログラミングする方法
KR100801035B1 (ko) * 2006-12-14 2008-02-04 삼성전자주식회사 멀티 레벨 셀의 프로그램 방법, 페이지 버퍼 블록 및 이를포함하는 불휘발성 메모리 장치
KR20090119297A (ko) * 2008-05-16 2009-11-19 하진구 영화를 통한 영어학습방법 및 그 장치
WO2009151894A1 (en) * 2008-06-12 2009-12-17 Sandisk Corporation Nonvolatile memory and method with index programming and reduced verify

Also Published As

Publication number Publication date
KR101676816B1 (ko) 2016-11-18
US20110194346A1 (en) 2011-08-11
CN105931671A (zh) 2016-09-07
CN105931671B (zh) 2020-08-04
US9406394B2 (en) 2016-08-02
US9076534B2 (en) 2015-07-07
JP5698968B2 (ja) 2015-04-08
CN102157204B (zh) 2016-05-11
JP2011165303A (ja) 2011-08-25
TW201145286A (en) 2011-12-16
CN102157204A (zh) 2011-08-17
US20150262700A1 (en) 2015-09-17
US8411502B2 (en) 2013-04-02
TWI484493B (zh) 2015-05-11
US20130208541A1 (en) 2013-08-15

Similar Documents

Publication Publication Date Title
KR101676816B1 (ko) 플래시 메모리 장치 및 그것의 프로그램 방법
US9159440B2 (en) Read method for nonvolatile memory device, and data storage system using the same
KR101391362B1 (ko) 읽기 전압 레벨이 설정가능한 플래시 메모리 시스템 및읽기 전압 레벨의 설정방법
KR101391881B1 (ko) 멀티-비트 플래시 메모리 장치 및 그것의 프로그램 및 읽기방법
KR100890016B1 (ko) 비휘발성 메모리 장치, 그것을 포함하는 메모리 시스템 및그것의 프로그램 방법
KR101616099B1 (ko) 플래시 메모리 장치 및 그것의 프로그램 방법
KR101434404B1 (ko) 파라미터를 추출하는 불휘발성 메모리 장치 및 그것을포함하는 불휘발성 메모리 시스템
KR101391356B1 (ko) 플래시 메모리 장치 및 그것의 읽기 동작 방법
KR20110055178A (ko) 플래시 메모리 장치 및 그것을 포함한 메모리 시스템
KR20090000463A (ko) 읽기 전압을 최적화할 수 있는 플래시 메모리 장치 및그것의 독출 전압 설정 방법
KR20090099265A (ko) 메모리 장치 및 데이터 판정 방법
KR101662276B1 (ko) 불 휘발성 메모리 장치 및 그것의 프로그램 및 읽기 방법들
US8441862B2 (en) Program method of multi-bit memory device and data storage system using the same
KR20090118396A (ko) 메모리 장치 및 메모리 프로그래밍 방법
KR20120138895A (ko) 멀티-레벨 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 동작 방법
KR101456592B1 (ko) 멀티-비트 플래시 메모리 장치 및 그것의 플래그 셀 분석방법
KR101561270B1 (ko) 플래시 메모리 장치 그리고 그것의 채널 프리챠지 및 프로그램 방법들

Legal Events

Date Code Title Description
A201 Request for examination
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant