KR102106866B1 - 멀티레벨 불휘발성 메모리 장치 및 프로그램 방법 - Google Patents

멀티레벨 불휘발성 메모리 장치 및 프로그램 방법 Download PDF

Info

Publication number
KR102106866B1
KR102106866B1 KR1020130009836A KR20130009836A KR102106866B1 KR 102106866 B1 KR102106866 B1 KR 102106866B1 KR 1020130009836 A KR1020130009836 A KR 1020130009836A KR 20130009836 A KR20130009836 A KR 20130009836A KR 102106866 B1 KR102106866 B1 KR 102106866B1
Authority
KR
South Korea
Prior art keywords
program
word line
programmed
level
memory cells
Prior art date
Application number
KR1020130009836A
Other languages
English (en)
Other versions
KR20140096796A (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 KR1020130009836A priority Critical patent/KR102106866B1/ko
Priority to US14/165,835 priority patent/US9343158B2/en
Publication of KR20140096796A publication Critical patent/KR20140096796A/ko
Application granted granted Critical
Publication of KR102106866B1 publication Critical patent/KR102106866B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/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/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • 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

Landscapes

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

Abstract

적어도 2회 이상의 프로그램 단계를 거쳐서 메모리 셀들을 멀티레벨로 프로그램 하는 불휘발성 메모리 장치의 프로그램 방법은 1차 프로그램단계에서 소거레벨에서 적어도 하나 이상의 1차 목표레벨들로 프로그램 되는 메모리 셀들의 프로그램동작과 연동하여 프로그램 전후의 문턱전압 변동이 가장 큰 메모리 셀들을 소거레벨 보다는 높고 1차 목표레벨 보다 낮은 레벨로 프리 프로그램 하고, 2차 프로그램 단계에서 프리 프로그램 된 메모리 셀들은 프리 프로그램 된 레벨에서 다음 목표레벨로 프로그램 한다. 따라서 프로그램 전후의 문턱전압의 차이를 감소시킬 수 있으므로 워드라인 커플링에 의한 영향을 최소화하여 산포 왜곡 및 독출 오류를 줄일 수 있다.

Description

멀티레벨 불휘발성 메모리 장치 및 프로그램 방법{ Multi-level Nonvolatile memory and Method of Progmming threrof}
본 발명은 멀티레벨 불휘발성 메모리 장치 및 프로그램 방법에 관한 것으로서, 보다 상세하게는 적어도 2비트 이상의 멀티 레벨 낸드 플래시 메모리의 프로그램 특성을 개선하기 위한 멀티레벨 불휘발성 메모리 장치 및 프로그램 방법에 관한 것이다.
반도체 메모리 장치는 전원 공급이 중단될 때 저장된 데이터를 상실하는지 여부에 따라, 휘발성 메모리 장치(volatile memory device)와 불휘발성 메모리 장치(non-volatile memory device)로 구분될 수 있다. 불휘발성 메모리 장치는 전기적으로 소거 및 프로그램이 가능한 EEPROM (Electrically Erasable and Programmable ROM)을 포함한다.
EEPROM의 동작은 메모리 셀에 데이터를 기입(write)하는 프로그램 모드(program mode), 메모리 셀에 저장된 데이터를 판독하는 독출 모드(read mode), 및 저장된 데이터를 삭제하여 메모리 셀을 초기화하는 소거 모드(erase mode)로 구분될 수 있다. 증가형 스텝 펄스 프로그램(ISPP, Incremental Step Pulse Program) 방식에서는 일반적으로 검증이 완료될 때까지 검증 동작과 검증 후의 재 프로그램 동작이 반복된다.
MLC(Multi -Level Cell)의 프로그램이란 플래시 하나의 메모리 셀에 2비트 이상을 저장하는 것을 말한다. 하나의 MLC에 N 비트가 저장되는 경우, 각각의 MLC의 문턱 전압 산포는 2N개로 세분화되어 각각의 문턱 전압 산포가 N 비트의 데이터를 표현한다. 예를 들어, 하나의 메모리 셀에 2 비트의 데이터가 저장되는 경우, 메모리 셀의 문턱 전압 산포는 4개로 세분화된다. MLC에 기입되는 데이터의 비트값 '0'이 프로그램 허용을 나타내고, '1'이 프로그램 금지를 나타내는 경우에는, 상기 4개의 문턱 전압들을 갖는 MLC의 상태들은 문턱 전압이 낮은 순서로 2비트 데이터 '11', '10', '01' 및 '00'을 나타낸다. 이 경우, '11'은 프로그램 되지 않고 소거된 채로 남아 있는 MLC의 상태를 나타낸다.
이때, 각 스텝을 거치며 인접 워드라인 간 플로팅 게이트 커플링(Floating Gate Coupling)을 주게 되는데 이로 인해 산포(distribution) 왜곡이 발생한다. 산포 왜곡이 심할 경우 프로그램 실패로 리드 오류가 발생될 수 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은 프리 프로그램을 통해 프로그램 전후의 문턱 전압 최대 변동폭을 줄임으로써 워드라인 커플링 영향을 최소화할 수 있는 멀티 레벨 불휘발성 메모리 장치 및 그 프로그램 방법을 제공하는 데 있다.
본 발명의 다른 목적은 프리 프로그램의 다양한 접근 방법을 제시하여 워드라인 커플링 게인과 타임 오버헤드 사이에서 선택할 수 있는 멀티 레벨 불휘발성 메모리 장치 및 그 프로그램 방법을 제공하는 데 있다.
상술한 본 발명의 일 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 적어도 2회 이상의 프로그램 단계를 거쳐서 메모리 셀들을 멀티레벨로 프로그램 하는 불휘발성 메모리 장치의 프로그램 방법은 1차 프로그램단계에서 소거레벨에서 적어도 하나 이상의 1차 목표레벨들로 프로그램 되는 메모리 셀들의 프로그램동작과 연동하여 프로그램 전후의 문턱전압 변동이 가장 큰 메모리 셀들을 소거레벨 보다는 높고 1차 목표레벨 보다 낮은 레벨로 프리 프로그램 하고, 2차 프로그램 단계에서 프리 프로그램 된 메모리 셀들은 프리 프로그램 된 레벨에서 다음 목표레벨로 프로그램 한다.
본 발명에서 프리 프로그램 된 레벨의 문턱전압 산포 범위는 최소한 워드라인 커플링 이득보다 크고 상기 1차 목표레벨의 최대값으로부터 워드라인 커플링 제한마진폭만큼 작은 범위 이내로 하는 것이 바람직하다.
본 발명의 일실시예로 프리 프로그램 되는 메모리 셀들은 1차 목표레벨로 프로그램 되는 메모리 셀들을 프로그램 하기 위한 1차 프로그램의 첫 번째 프로그램 루프의 프로그램 펄스에 의해 동시에 프로그램 될 수 있다.
또한 본 발명의 다른 실시예로 프리 프로그램 되는 메모리 셀들은 1차 목표레벨로 프로그램 되는 메모리 셀들을 위한 1차 프로그램의 첫 번째 프로그램 펄스 직전에 추가되는 프리 프로그램 펄스에 의해 별도로 프로그램 될 수도 있다.
본 발명의 또 다른 실시예로 프리 프로그램 되는 메모리 셀들은 1차 목표레벨로 프로그램 되는 메모리 셀들을 프로그램하기 위한 1차 프로그램의 첫 번째 프로그램 루프에 의해 동시에 프로그램 될 수도 있다.
본 발명의 또 다른 실시예로 프리 프로그램 되는 메모리 셀들은 1차 목표레벨로 프로그램 되는 메모리 셀들을 프로그램하기 위한 1차 프로그램의 첫 번째 프로그램 루프 직전에 추가되는 적어도 1회 이상의 프리 프로그램 루프들에 의해 별도로 프로그램 될 수 있다.
본 발명에서 프리 프로그램 루프는 프리 프로그램 검증 레벨을 가지며, 프리 프로그램 진입 전에 프리 프로그램 된 메모리 셀들 중 문턱전압 레벨이 프리 프로그램 검증 레벨보다 높은 문턱전압 레벨을 가진 메모리 셀은 프리 프로그램을 금지하는 것이 바람직하다.
또한 본 발명의 X회(X는 2 이상의 자연수) 이상의 멀티 스텝 프로그램 단계를 거쳐서 메모리 셀들을 2X 개의 레벨들로 프로그램 하는 불휘발성 메모리 장치의 프로그램 방법에 있어서, 제1워드라인에 연결된 복수의 메모리 셀들 중 1차 프로그램단계에서 2(X-1)-1 개의 1차 목표레벨로 프로그램 되는 메모리 셀들의 프로그램 동작과 연동하여 프로그램 전후의 문턱전압 변동이 가장 큰 메모리 셀들을 소거레벨에서 1차 목표레벨 보다 낮은 레벨로 프리 프로그램 한다. 이어서 제1워드라인에 연결된 복수의 메모리 셀들을 1차 프로그램 한 이후에 제1워드라인에 인접하는 제2워드라인에 연결된 복수의 메모리 셀들에 대해서도 제1워드라인에 연결된 복수의 셀들과 동일한 방법으로 프리 프로그램 및 1차 프로그램을 수행한다. 제2워드라인에 연결된 복수의 메모리 셀들을 1차 프로그램 한 이후에 제1워드라인에 연결 된 복수의 메모리 셀들 중 프리 프로그램 된 메모리 셀들을 프리 프로그램 된 레벨에서 다음 2(X)-1개의 2차 목표 레벨들 중 가장 낮은 레벨로 프로그램 하고 1차 프로그램 된 메모리 셀들은 2(X)-2개의 2차 목표 레벨들 중 어느 하나로 각각 2차 프로그램 한다. 제1워드라인에 연결된 복수의 메모리 셀들을 2차 프로그램 한 이후에 제2워드라인에 연결된 복수의 메모리 셀들에 대해서도 제1워드라인에 연결된 복수의 셀들과 동일한 방법으로 2차 프로그램을 수행한다.
본 발명의 불휘발성 메모리 장치는 셀당 복수의 데이터 비트들이 프로그램 되는 메모리 셀 어레이와 및 복수의 프로그램 루프들을 통해 선택된 메모리 셀들이 프로그램 되도록 제어하는 컨트롤 회로를 포함한다. 컨트롤 회로는 1차 프로그램단계에서 소거레벨에서 적어도 하나 이상의 1차 목표레벨들로 프로그램 되는 메모리 셀들의 프로그램동작과 연동하여 프로그램 전후의 문턱전압 변동이 가장 큰 메모리 셀들을 상기 소거레벨 보다는 높고 1차 목표레벨 보다 낮은 레벨로 프리 프로그램 하는 단계와, 2차 프로그램 단계에서 프리 프로그램 된 메모리 셀들은 프리 프로그램 된 레벨에서 다음 목표레벨로 프로그램 하는 단계를 포함하는 멀티 스텝 프로그램을 수행한다.
또한 본 발명의 불휘발성 메모리 장치의 컨트롤 회로는 X회(X는 2 이상의 자연수) 이상의 멀티 스텝 프로그램 단계를 거쳐서 메모리 셀들을 2X 개의 레벨들로 프로그램 한다. 그리고 제1워드라인에 연결된 복수의 메모리 셀들 중 1차 프로그램단계에서 2(X-1)-1 개의 1차 목표레벨로 프로그램 되는 메모리 셀들의 프로그램 동작과 연동하여 프로그램 전후의 문턱전압 변동이 가장 큰 메모리 셀들을 소거레벨에서 1차 목표레벨 보다 낮은 레벨로 프리 프로그램 하고, 제1워드라인에 연결된 복수의 메모리 셀들을 1차 프로그램 한 이후에 제1워드라인에 인접하는 제2워드라인에 연결된 복수의 메모리 셀들에 대해서도 제1워드라인에 연결된 복수의 셀들과 동일한 방법으로 프리 프로그램 및 1차 프로그램을 수행하고, 제2워드라인에 연결된 복수의 메모리 셀들을 1차 프로그램 한 이후에 제1워드라인에 연결된 복수의 메모리 셀들 중 프리 프로그램 된 메모리 셀들을 프리 프로그램 된 레벨에서 다음 2(X)-1개의 2차 목표 레벨들 중 가장 낮은 레벨로 프로그램 하고 1차 프로그램 된 메모리 셀들은 2(X)-2개의 2차 목표 레벨들 중 어느 하나로 각각 2차 프로그램 하고, 제1워드라인에 연결된 복수의 메모리 셀들을 2차 프로그램 한 이후에 제2워드라인에 연결된 복수의 메모리 셀들에 대해서도 제1워드라인에 연결된 복수의 셀들과 동일한 방법으로 2차 프로그램을 수행하는 단계를 포함하는 멀티 스텝 프로그램을 수행한다.
상기와 같은 본 발명의 실시예들에 따른 멀티 레벨 불휘발성 메모리 장치의 프로그램 방법에서는 프리 프로그램에 의해 프로그램 전후의 문턱전압의 차이를 감소시킬 수 있으므로 워드라인 커플링에 의한 영향을 최소화하여 산포 왜곡 및 독출 오류를 줄일 수 있다.
다만, 본 발명의 효과는 상기에서 언급된 효과로 제한되는 것은 아니며, 상기에서 언급되지 않은 다른 효과들은 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 불휘발성 메모리 장치를 나타내는 블록도.
도 2는 도 1의 메모리 셀 어레이의 바람직한 일 실시예를 나타낸 등가 회로도.
도 3은 일반적인 4레벨 멀티 스텝 프로그램 방법을 설명하기 위한 도면.
도 4는 멀티 스텝 프로그램 동작에 의한 워드라인 커플링에 의한 셀 문턱전압 변화를 설명하기 위한 도면.
도 5는 본 발명에 의한 펄스 프리 프로그램 방식을 도입한 멀티 스텝 프로그램 동작을 설명하기 위한 도면.
도 6은 본 발명에 의한 펄스 프리 프로그램 상태의 문턱전압 산포 범위를 설명하기 위한 도면.
도 7은 본 발명에 의한 프로그램 동작을 설명하기 위한 메인 프로그램 흐름도.
도 8은 도 7의 S104 단계의 바람직한 일 실시예의 서브 프로그램 흐름도.
도 9는 도 8의 일 실시예에서 1차 프로그램의 첫 번째 프로그램 루프의 프로그램 펄스를 프리 프로그램 펄스로 겸용 사용하는 과정을 설명하기 위한 파형도.
도 10은 도 7의 S104 단계의 바람직한 다른 실시예의 서브 프로그램 흐름도.
도 11은 도 10의 다른 실시예에서 1차 프로그램의 첫 번째 프로그램 루프의 프로그램 펄스 전단에 추가된 프리 프로그램 펄스를 설명하기 위한 파형도.
도 12는 도 7의 S104 단계의 바람직한 또 다른 실시예의 서브 프로그램 흐름도.
도 13은 1차 노말 프로그램의 처음 일부 프로그램 루프들을 프리 프로그램 루프로 겸용 사용하는 과정을 설명하기 위한 파형도.
도 14는 도 7의 S104 단계의 바람직한 또 다른 실시예의 서브 프로그램 흐름도.
도 15는 도 14의 또 다른 실시예에서 1차 프로그램의 첫 번째 프로그램 루프의 전단에 추가된 프리 프로그램 루프를 설명하기 위한 파형도.
도 16은 본 발명의 프리 프로그램 루프방식을 채용한 멀티 스텝 프로그램 동작을 설명하기 위한 각 프로그래 단계에서 문턱전압 산포 범위의 변동을 설명하기 위한 도면.
도 17은 본 발명에 의한 루프 프리 프로그램 상태의 문턱전압 산포 범위를 설명하기 위한 도면.
도 18은 프로그램 스텝 수 s=3이고 워드라인 수 w=6인 경우에 본 발명에 의한 프로그램 순서를 나타낸 도면이고,
도 19는 도 18의 프로그램 순서를 도 7의 흐름도 상에 표시한 도면.
도 20은 본 발명의 실시 예에 따른 플래시 메모리 장치를 포함하는 SSD(Solid State Disk) 시스템의 구성을 예시적으로 보여주는 블록도.
도 21은 본 발명에 따른 메모리 시스템의 구성을 예시적으로 보여주는 블록도.
도 22에는 본 발명에 따른 플래시 메모리 장치를 포함한 컴퓨팅 시스템의 구성을 예시적으로 보여주는 블록도이다
도 23은 본 발명의 실시예에 따른 적어도 하나의 메모리 장치를 갖는 메모리 모듈의 기능 블록도.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 본문에 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 구성요소에 대해 사용하였다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시(說示)된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 불휘발성 메모리 장치를 나타내는 블록도이고, 도 2는 도 1의 메모리 셀 어레이를 나타내는 도면이다.
도 1 내지 도 2를 참조하면, 본 발명의 플래시 메모리 장치(100)는 N-비트 데이터 정보(N은 1 또는 그보다 큰 정수)를 저장하는 메모리 셀 어레이(110), 기입 독출 회로(120), 행 선택회로(140) 및 컨트롤 회로(150)를 포함할 수 있다.
셀 당 N-비트 데이터 정보를 저장하는 메모리 셀을 멀티 레벨 셀(multi-level cell ; MLC)이라 한다. 메모리 셀 어레이(110)는 일반 데이터를 저장하기 위한 메인 영역과, 메인 영역 및 일반 데이터와 관련된 부가 정보(예를 들면, 플래그 정보, 에러 정정 코드, 디바이스 코드, 메이커 코드, 페이지 정보 등)를 저장하기 위한 스페어 영역으로 구분될 수 있다. 메인 영역에는 N-비트 데이터가 저장될 수 있고, 스페어 영역에는 1-비트 데이터 또는 N-비트 데이터가 저장될 수 있다.
셀 어레이(110)는 복수의 행들(또는 워드라인들)과 복수의 열들(또는 비트 라인들)로 배열된 메모리 셀들을 포함할 수 있다. 셀 어레이(110)에 포함된 복수의 메모리 셀들은 복수의 메모리 블록들(Memory Blocks)을 구성할 수 있다. 각각의 메모리 블록에 포함된 메모리 셀들은 도 2에 도시된 바와 같이 낸드(NAND) 스트링 구조를 가질 수 있다. 본 발명에서는 낸드 스트링 구조를 가지는 멀티 레벨 셀(MLC) 플래시 메모리의 프로그램 동작에 대해 예시적으로 설명될 것이다. 그러나 아래에서 설명될 본 발명의 프로그램 동작은 특정 형태의 플래시 메모리에만 국한되지 않으며, 노어(NOR) 구조를 포함하여 다양한 형태의 플래시 메모리에 적용될 수 있다.
도 2를 참조하면, 하나의 메모리 블록에는 복수의 열들 또는 비트 라인들(BL1 BLn)에 각각 대응하는 복수의 스트링들이 포함될 수 있다. 각 스트링(111)에는 스트링 선택 트랜지스터(SST), 복수 개의 메모리 셀들(M1 Mm), 그리고 접지 선택 트랜지스터(GST)가 포함될 수 있다. 도 2에는 하나의 스트링에 대해 하나의 스트링 선택 트랜지스터(SST)와 하나의 접지 선택 트랜지스터(GST)가 구비되는 예가 도시되어 있다. 각 스트링(111)에 있어서, 스트링 선택 트랜지스터(SST)의 드레인은 대응하는 비트 라인에 연결되고, 접지 선택트랜지스터(GST)의 소오스는 공통 소오스 라인(CSL)에 연결될 수 있다. 스트링 선택 트랜지스터(SST)의 소오스와 접지 선택 트랜지스터(GST)의 드레인 사이에는 복수 개의 메모리 셀들(M1 Mm)이 직렬 연결될 수 있다. 동일 행에 배열된 메모리 셀들의 제어 게이트들은 대응되는 워드라인(WL1-WLn)과 공통으로 연결될 수 있다. 스트링 선택 트랜지스터(SST)는 스트링 선택 라인(SSL)을 통해 인가되는 전압에 의해 제어되고, 접지 선택 트랜지스터(GST)는 접지 선택 라인(GSL)을 통해 인가되는 전압에 의해 제어될 수 있다. 메모리 셀들(M1 Mm)은 대응하는 워드라인(WL1 WLm)을 통해 인가되는 전압에 의해서 제어될 수 있다. 각각의 워드라인(WL1 WLm)에 접속된 메모리 셀들은 한 페이지 또는 복수 개의 페이지 분량에 해당되는 데이터를 저장할 수 있고, 또는 한 페이지 보다 작은 서브 페이지의 데이터를 저장할 수도 있다. 각각의 워드라인(WL1 WLm)에 접속된 메모리 셀들에서 수행되는 프로그램 단위는 특정 형태에 국한되지 않고 다양한 형태로 변경 및 변형 가능하다.
예시적인 실시예에 있어서, 낸드형 플래시 메모리의 프로그램 또는 읽기 동작은 페이지 단위로 수행되고, 프로그램 된 데이터의 소거 동작은 페이지가 여러 개 모인 단위인 블록 단위로 수행될 수 있다. 셀 당 N 비트의 데이터가 저장되는 멀티 레벨 셀의 경우, 각각의 비트에 대한 프로그램 동작이 최대 M회 까지 각각 독립적으로 수행될 수 있다.
다시 도 1을 참조하면, 컨트롤 회로(150)는 플래시 메모리 장치(100)의 프로그램, 소거, 및 읽기 동작과 관련된 제반 동작을 제어할 수 있다. 프로그램될 데이터는 컨트롤 회로(150)의 제어에 따라 버퍼를 통해 기입 독출 회로(120)로 로딩될 수 있다. 프로그램이 실행되는 구간 동안 컨트롤 회로(150)는 행 선택회로(140), 기입 독출 회로(120)를 제어하여, 선택된 워드라인으로 프로그램 전압(Vpgm)이, 비선택된 워드라인들로 패스 전압(Vpass)이, 그리고 메모리 셀들이 형성된 벌크에 0V의 전압이 인가되도록 할 수 있다.
프로그램 전압(Vpgm)은 증가형 스텝 펄스 프로그래밍(incremental step pulse programming: ISPP) 방식에 따라 발생될 수 있다. 프로그램 전압(Vpgm)의 레벨은 프로그램 루프들이 반복됨에 따라 소정의 전압 증가분( V) 만큼 단계적으로 증가 또는 감소할 수 있다. 각각의 프로그램 루프에서 사용되는 프로그램 전압들(Vpgm)의 인가 횟수, 전압 레벨, 그리고 전압 인가 시간 등은 외부(예를 들면, 메모리 컨트롤러) 또는 내부(예를 들면, 제어회로(150))의 제어에 따라 다양한 형태로 변경 및 변형될 수 있다.
도 1에서, 컨트롤 회로(150)는 동작 모드에 따라서 각각의 워드라인들으로 공급될 워드라인 전압들(프로그램 전압(Vpgm), 패스 전압(Vpass), 검증 전압(Vvfy), 독출 전압(Vread) )과, 메모리 셀들이 형성된 벌크로 공급될 전압을 발생할 수 있다. 행 선택회로(140)는 컨트롤 회로(150)의 제어에 응답해서 메모리 셀 어레이(110)의 메모리 블록들(또는 섹터들) 중 하나를 선택하고, 선택된 메모리 블록의 워드라인들 중 하나를 선택할 수 있다. 행 선택회로(140)는 컨트롤 회로(150)의 제어에 응답해서 워드라인 전압을 선택된 워드라인 및 비선택된 워드라인들로 각각 제공할 수 있다.
기입 독출 회로(120)는 컨트롤 회로(150)에 의해서 제어되며, 동작 모드에 따라 감지 증폭기(sense amplifier)로서 또는 기입 드라이버(write driver)로서 동작할 수 있다. 예를 들면, 검증 독출/정상 독출 동작의 경우 기입 독출 회로(120)는 메모리 셀 어레이(110)로부터 데이터를 독출하기 위한 감지 증폭기로서 동작할 수 있다. 정상 독출 동작시 기입 독출 회로(120)로부터 읽혀진 데이터는 버퍼를 통해 외부(예를 들면, 메모리 컨트롤러 또는 호스트)로 출력되는 반면, 검증 독출 동작시 읽혀진 데이터는 패스/패일 검증 회로로 제공될 수 있다.
프로그램 동작의 경우, 기입 독출 회로(120)는 메모리 셀 어레이(110)에 저장될 데이터에 따라 비트 라인들을 구동하는 기입 드라이버로서 동작할 수 있다. 기입 독출 회로(120)는 프로그램 동작시 메모리 셀 어레이(110)에 쓰일 데이터를 버퍼로부터 입력받고, 입력된 데이터에 따라 비트라인들을 구동할 수 있다. 이를 위해 기입 독출 회로(120)는 열들(또는 비트 라인들) 또는 열쌍(또는 비트 라인 쌍들)에 각각 대응되는 복수 개의 페이지 버퍼들로 구성될 수 있다.
선택된 워드라인에 접속된 메모리 셀들을 프로그램 할 때, 선택된 워드라인으로는 프로그램 전압(Vpgm)과 검증 전압(Vvfy)이 교대로 제공될 수 있다. 검증 동작시 선택된 메모리 셀들 각각에 접속된 비트 라인들이 프리차지될 수 있다. 그리고 프리차지된 비트 라인의 전압 변화가 대응되는 페이지 버퍼를 통해 감지될 수 있다. 검증 읽기 동작시 감지된 데이터는 패스/패일 검증 회로로 제공되어, 메모리 셀들의 프로그램 성공 여부가 판단될 수 있다. 아래에서 상세히 설명되겠지만, 본 발명의 플래시 메모리는 프로그램 동작시 컨트롤 회로(150)의 제어 따라서 프로그램 검증 동작(program verify operation)을 선택적으로 수행할 수 있다.
도 3은 일반적인 프로그램 방법을 설명하기 위한 도면이다. 도 3에는 2비트 멀티비트 플래시 메모리 장치의 프로그램에 따라 형성될 수 있는 문턱 전압 산포가 예시적으로 도시되어 있다. 예시적인 실시예로서, 도 3에는 2스텝 프로그램에 따른 문턱 전압 산포가 개략적으로 표시되어 있다. 가로축은 문턱전압이고 세로축은 셀 수(Number of cell)를 나타낸다.
도 3을 참조하면, 2비트의 데이터가 프로그램 된 메모리 셀의 문턱 전압은 4 레벨의 데이터 상태들(E, P1, P2, P3) 중 어느 하나에 대응될 수 있다. 각각의 데이터 상태는 소정의 문턱전압 윈도우(threshold voltage window)를 형성할 수 있다. 하나의 메모리 셀에는 N 비트(예를 들면, 2비트)가 저장 가능하며, 각각의 비트는 여러 단계의 프로그램 동작을 통해 각각 독립적으로 프로그램 될 수 있다.
예를 들면, 2비트 MLC의 경우, 먼저 2-비트 중 1번째 비트(1st bit)(즉, 최하위 비트(Least Significant Bit LSB))에 대한 프로그램이 먼저 수행될 수 있다. LSB 프로그램 된 메모리 셀의 문턱 전압 산포는 2 레벨의 데이터 상태(E, P0)를 가질 수 있다. 이어서, 2 비트 중 최하위 비트(LSB)를 제외한 상위 1 비트(Most Significant Bit; MSB)에 대한 프로그램이 2 프로그램 스텝들을 통해 프로그램 될 수 있다. 여기서, 각각의 프로그램 스텝은 복수의 프로그램 루프들로 구성될 수 있다. 예를 들면, 2 스텝 프로그램에서 2 레벨의 데이터 상태(E, P0)는, 4 레벨의 데이터 상태들(E, P1, P2, P3)로 프로그램 될 수 있다. 이와 같이, 여러 단계의 프로그램 동작을 거쳐 원하는 최종 문턱 전압으로 프로그램 되는 과정을 멀티 스텝 프로그램 동작(Multi Step Program Operation)이라 한다. 셀 당 복수의 비트들이 저장되는 멀티 레벨 셀은, 복수의 스텝들로 구성된 멀티 스텝 프로그램 동작에 의해 프로그램 될 수 있다.
도 3에 도시한 바와 같이 멀티 스텝 프로그램 동작(Multi Step Program Operation)에서 최대 문턱전압 변화량(161)은 원스텝 프로그램 동작에 의한 최대 문턱전압 변화량(162) 보다 작다. 그러므로 인접워드라인에 결합된 셀에 워드라인 커플링에 의한 영향을 줄일 수 있다.
도 4는 일반적인 멀티 스텝 프로그램 동작에 의한 워드라인 커플링에 의한 셀 문턱전압 변화를 설명하기 위한 도면이다.
도 4를 참조하면 그래프 a)에 도시한 바와 같이 먼저 워드라인(WL n)을 1차 프로그램 하면 E 상태로부터 P0 상태로 문턱전압 산포범위가 이동된다. 이에 워드라인(WL n)에 인가된 프로그램 전압이 워드라인 커플링에 의해 워드라인(WL n+1)에 영향을 주게 된다. 그러므로 워드라인(WL n+1)에 플로팅 게이트가 결합된 소거상태, 즉 E 상태의 셀들의 문턱전압 산포 범위가 실선 산포범위에서 점선 산포범위로 확장된다. 이어서 그래프 b)에 도시한 바와 같이 워드라인(WL n+1)을 1차 프로그램 하면 E 상태로부터 P0 상태로 문턱전압이 변화된다. 이에 워드라인 커플링에 의해 워드라인(WL n)의 E 및 P0상태는 실선 산포범위에서 점선 산포범위로 확장된다. 그래프 c)에 도시한 바와 같이 다시 워드라인(WL n)을 2차 프로그램 하면 E 상태로부터 P1 상태로 프로그램하고 P0 상태로부터 P2 및 P3 상태로 프로그램 한다. 이에 워드라인 커플링에 의해 워드라인(WL n+1)에 연결된 셀 상태 E 및 P0 상태는 실선 산포범위에서 점선 산포범위로 확장된다. 이어서 그래프 d)에 도시한 바와 같이 워드라인(WL n+1)에 연결된 셀들을 2차 프로그램 하면 E 및 P0 상태로부터 P1, P2, P3 상태로 각각 프로그램 된다. 이에 워드라인 커플링에 의해 워드라인(WL n)에 결합된 셀들의 E P1, P2, P3 상태의 문턱전압 산포범위가 실선 산포범위에서 점선 산포범위로 확장된다. 도시한 바와 같이 워드라인((WL n)에 결합된 셀들의 E P1, P2, P3 상태가 점선으로 확장되어 인접 레벨의 산포범위까지 침범할 정도로 왜곡되면 해당 셀의 독출동작시 독출 오류가 발생될 수 있다. 그러므로 워드라인 커플링 영향을 최소화시킬 필요가 있다.
도 5는 본 발명에 의한 프리 프로그램 방식의 바람직한 일예를 도입한 멀티 스텝 프로그램 동작을 설명하기 위한 도면이고, 도 6은 본 발명에 의한 프리 프로그램 상태의 문턱전압 산포 범위를 설명하기 위한 도면이다.
본 발명의 프리 프로그램 방식은 2차 프로그램 동작시 최대 문턱전압 변화량(E ---> P0)을 줄이기 위하여 1차 프로그램 동작시 최대 문턱전압 변화가 요구되는 셀을 E 상태 보다 높은 문턱전압 산포를 가진 프리 프로그램 상태를 형성한다는 것이다.
도 5를 참조하면 그래프 a)에 도시한 바와 같이 먼저 워드라인(WL n)에 연결된 셀들을 1차 프로그램 할 때 E 상태로부터 Pre P1 상태 및 P0 상태를 각각 프로그램 한다. 이때 Pre P1 상태의 문턱전압 산포 범위는 도 6에 도시한 바와 같이 최소한 워드라인 커플링 이득(163)보다 크고 상기 최종 목표레벨의 최대값으로부터 워드라인 커플링 제한마진폭(164)만큼 작은 범위 이내로 한다. 워드라인 커플링 이득(163)은 (Pre P1 Vt_min) - (E Vt_min)이고 워드라인 커플링 제한마진폭(164)은 (Pre P1 Vt_max1) - (E Vt_max1)이다. 여기서 Pre P1 Vt_max0은 프로그램 된 상태의 최대 문턱전압이고 Pre P1 Vt_max1은 워드라인 커플링에 의해 유발된 최대 문턱전압을 나타낸다.
이에 도 5의 그래프 a)에 도시한 바와 같이 워드라인 커플링에 의해 워드라인(WL n+1)에 결합된 셀들의 E상태는 실선 산포범위에서 점선 산포범위로 확장된다. 이어서 도 5의 그래프 b)에 도시한 바와 같이 워드라인(WL n+1)에 결합된 셀들을 1차 프로그램 하면 E 상태로부터 Pre P1 상태 및 P0 상태로 문턱전압 산포범위가 이동된다. 이에 워드라인 커플링에 의해 워드라인(WL n)에 결합된 셀들의 E, Pre P1 및 P0상태는 실선 산포범위에서 점선 산포범위로 확장된다. 도 5의 그래프 c)에 도시한 바와 같이 다시 워드라인(WL n)에 결합된 셀들을 2차 프로그램 스텝을 통하여 Pre P1 상태로부터 P1 상태로 프로그램하고 P0 상태로부터 P2 및 P3 상태로 프로그램 한다. 그러므로 최대 문턱전압 변화량, 즉 프리 프로그램 상태에서 P1 상태로의 문턱전압 최대 변화량이 줄어들게 된다. 그러므로 워드라인 커플링에 의한 영향이 줄게 되어 워드라인(WL n+1)에 결합된 셀들의 E 및 P0 상태는 실선 산포범위에서 점선 산포범위로 확장된다. 이때 워드라인(WL n)의 Pre P1- P1 프로그램시 워드라인(WL n+1)에 유발되는 커플링에 의한 확장 정도는 E P1 프로그램시 유발되는 커플링에 의한 확장 정도에 비해 감소된다. 이어서 도 5의 그래프 d)에 도시한 바와 같이 워드라인(WL n+1)에 결합된 셀들을 2차 프로그램 하면 Pre P1 및 P0 상태로부터 P1, P2, P3 상태로 이동되므로 마찬가지로 최대 문턱전압 변화량이 감소되므로 워드라인 커플링에 의한 영향력이 줄게 된다. 이에 워드라인(WL n)의 E P1, P2, P3의 문턱전압 산포범위가 실선 산포범위에서 점선 산포범위로 확장된다. 그러나 확장 정도는 E P1 프로그램시 유발되는 커플링에 의한 확장 정도(도 4의 그래프 d)에 도시한 점선 산포범위)에 비해 감소됨을 알 수 있다. 따라서 워드라인(WL i)의 Pre P1- P1 프로그램시 인접 워드라인(WL i+1)에 유발되는 커플링에 의한 확장 정도는 워드라인(WL i)의 E P1 프로그램시 인접 워드라인(WL i+1)에 유발되는 커플링에 의한 확장 정도에 비해 감소됨을 알 수 있다.
도 7은 본 발명에 의한 프리 프로그램 동작을 설명하기 위한 바람직한 일 실시예의 메인 프로그램 흐름도이다.
도 7을 참조하면, 먼저 컨트롤 회로에서는 시스템을 초기화 한다(S102). 시스템 초기화 단계(S102)에서는 기입 워드라인 수 w, 프로그램 스텝 수 s, 기입 워드라인 변수 i, 프로그램 스텝 변수 j, 프로그램 스텝 카운터 x, 워드라인 카운터 y의 값들을 초기화 한다. 초기화 값에 의해 Wij 즉 워드라인 1의 1차 프로그램을 수행한다(S104). 이어서 워드라인 카운터 값 y 값이 세팅된 프로그램 스텝 s와 같거나 더 큰 값을 가진 지를 체크한다(S106). S106단계에서 y값이 s 값 보다 작으면 워드라인 변수 i 값이 "1"인지를 체크한다(S108). 워드라인 변수 i 값이 "1"이면 프로그램 스텝 카운터 값 x를 1 증가하고(S110) 다음 워드라인의 1차 프로그램을 수행하기 위하여 워드라인 변수 i와 프로그램 스텝 변수 j 값을 변화시킨다(S112). 그리고 워드라인 카운터 값 y를 1 증가 시킨다(S114). 이어서 변화된 워드라인 변수 및 프로그램 스텝 변수에 의해 다음 워드라인의 1차 프로그램을 수행하기 위하여 S104 단계로 복귀한다. S104~S114 단계로 이루어진 반복 루프에서는 첫 번째 워드라인의 프로그램을 수행 한 후 인접한 다른 워드라인들로 건너 뛰는 과정을 수행한다. 이 반복 루프의 횟수가 증가 할수록 첫 번째 워드라인에 다음에 건너뛰는 워드라인의 번호가 1씩 증가하고 프로그램 차수는 1씩 감소하게 된다.
S108단계에서 워드라인 변수 "i=1"이 아니면 이전 워드라인들의 다음 차수의 프로그램을 위하여 변수 ij의 값을 변화시킨 다음에(S116) S104로 복귀한다. S104-S106-S108-S116을 반복하는 루프는 첫 번째 워드라인에서 다음 워드라인들로 건너 뛴 워드라인에서 이전 워드라인의 다음 차수의 프로그램을 수행하면서 첫 번째 워드라인까지 찾아가는 과정을 수행한다. 그러므로 워드라인 변수는 1씩 줄어들고 프로그램 차수는 1씩 증가한다.
S106단계에서 워드라인 카운터 값 y의 값이 프로그램 스텝 수 s와 동일하게 되면 워드라인 카운터 값 y가 설정된 워드라인 수 w와 동일한지를 체크한다(S118). S118단계에서 동일하지 않으면 프로그램 변수 j가 설정된 프로그램 스텝 수 s와 동일한지 체크한다(S120). S120단계에서 변수 j가 s값과 동일하면 해당 워드라인의 프로그램 스텝을 모두 수행한 것으로 판단하고 s 만큼 이격된 워드라인의 1차 프로그램을 위하여 변수 ij를 변화시킨다. 즉 변수 i는 워드라인 카운터 값 y 만큼 증가시키고 변수 j는 프로그램 스텝 카운터 값 x 만큼 감소시킨다(S122). 이어서 워드라인 카운트 값 y를 1증가시킨 다음에(S124) S104단계로 복귀한다. S120단계에서 ?=s"가 아니면 이전 워드라인들의 다음 프로그램 스텝을 위하여 S116단계를 수행한다.
S118단계에서 워드라인 카운트 값 y가 설정된 워드라인 수 w와 동일하게 되면 변수 j가 프로그램 스텝 수 s와 동일한지를 체크한다(S126). S126단계에서 변수 j가 s값과 동일하면 해당 워드라인의 프로그램 스텝을 모두 수행한 것으로 판단하고 마지막 워드라인의 다음 프로그램 스텝을 위하여 변수 ij를 변화시킨다(S128). S128단계에서 변수 I는 프로그램 스텝 카운트값 x 만큼 증가시키고, 변수 j는 x-1 만큼 감소시킨다. 그리고 프로그램 스텝 카운트 값 x를 1 감소시킨다(S130). 이어서 1 감소된 x 값이 "0"인가를 체크하고(S132) "0"이면 종료하고 "0"이 아니면 S104단계로 복귀한다. S126단계에서 "j=s"가 아니면 S116단계를 수행한다.
도 8은 도 7의 S104 단계의 바람직한 일 실시예의 서브프로그램 흐름도를 나타낸다.
도 8을 참조하면, 컨트롤 회로에서는 1차 프로그램인지를 판단하고(S140), 1차 프로그램 단계이면 워드라인에 연결된 소거 레벨 셀들을 프로그램 금지 상태로 하고 나머지 셀들은 프로그램 루프의 첫 번째 프로그램 펄스(도 9의 참조번호 170)에 의해 프리 프로그램 한다(S142). 이어서 프리 프로그램 된 제1레벨 셀들은 프로그램 금지 상태로 하고 나머지 레벨 셀들은 ISPP 방식으로 프로그램 한다(S144). S140단계에서 1차 프로그램이 아니라면 프리 프로그램된 레벨 또는 이전 프로그램 스텝에서 프로그램 된 레벨로부터 각 셀들의 목표 레벨로 ISPP 방식으로 프로그램 한다(S146).
도 10은 도 7의 S104 단계의 바람직한 다른 실시예의 서브프로그램 흐름도를 나타낸다. 도 10의 다른 실시예는 상술한 일 실시예와 비교하여 프리 프로그램 펄스가 프로그램 신호 상에 새롭게 추가된다는 점이 다르다.
도 10을 참조하면, 컨트롤 회로에서는 1차 프로그램인지를 판단하고(S150), 1차 프로그램 단계이면 워드라인에 연결된 프리 프로그램 될 셀들만 제외한 나머지 셀들을 프로그램 금지 상태로 하고 노말 프로그램 루프 직전에 추가된 프로그램 펄스(도 11의 참조번호 172)에 의해 프리 프로그램 한다(S152). 이어서 프리 프로그램 된 제1레벨 셀들 및 소거 레벨 셀들은 프로그램 금지 상태로 하고 나머지 레벨 셀들은 ISPP 방식으로 프로그램 한다(S154). S150단계에서 1차 프로그램이 아니라면 프리 프로그램 된 레벨 또는 이전 프로그램 스텝에서 프로그램 된 레벨로부터 각 셀들의 목표 레벨로 ISPP 방식으로 프로그램 한다(S156).
상술한 일 실시예와 다른 실시예의 경우에는 프로그램 펄스를 인가하는 방식이므로 프리 프로그램 된 셀들의 문턱전압 산포 범위는 원 샷 산포 프로파일을 따른다.
도 12는 도 7의 S104 단계의 바람직한 또 다른 실시예의 서브프로그램 흐름도를 나타낸다. 도 12의 다른 실시예는 상술한 실시예들과 비교하여 펄스 방식이 아니라 프로그램 루프방식으로 프리 프로그램을 수행한다는 점이 다르다. 프리 프로그램 루프 방식은 프리 프로그램 펄스 방식에 비해 문턱전압 변동폭을 줄일 수 있으므로 워드라인 커플링 영향을 줄일 수 있는 장점이 있다.
도 12를 참조하면, 컨트롤 회로에서는 1차 프로그램인지를 판단하고(S160), 1차 프로그램 단계이면 워드라인에 연결된 소거 레벨 셀들을 프로그램 금지 상태로 하고 나머지 셀들은 ISPP 프로그램의 첫번째 프로그램 루프(도 13의 참조번호 174)에 의해 프리 프로그램 한다(S162). 첫번째 루프의 첫 번째 프로그램 펄스에 의해 프리 프로그램하고 첫 번째 검증 펄스에 의해 프리 프로그램 상태를 검증한다. 검증 레벨 이상으로 프리 프로그램 된 셀들은 프로그램 금지 상태로 하고 검증 레벨 이하의 셀들은 두 번째 루프의 프로그램 펄스에 의해 프리 프로그램 레벨로 프로그램 한다. 마찬가지로 두 번째 검증펄스에 의해 목표 레벨로 프리 프로그램이 완료되면 프리 프로그램 된 셀들은 프로그램 금지하고 나머지 레벨 셀들은 목표 레벨로 프로그램 될 때까지 프로그램 및 검증 루프를 수행한다(S164). S150단계에서 1차 프로그램이 아니라면 프리 프로그램 된 레벨 또는 이전 프로그램 스텝에서 프로그램 된 레벨로부터 각 셀들의 목표 레벨로 ISPP 방식으로 프로그램 한다(S166).
도 14는 도 7의 S104 단계의 바람직한 또 다른 실시예의 서브프로그램 흐름도를 나타낸다. 도 14의 다른 실시예는 상술한 프리 프로그램 루프 방식 실시예와 비교하여 노말 프로그램 루프를 프리 프로그램 루프와 겸용 사용하는 것이 아니라 노말 프로그램 루프 직전에 프리 프로그램 루프를 추가한 점이 다르다.
도 14를 참조하면, 컨트롤 회로에서는 1차 프로그램인지를 판단하고(S170), 1차 프로그램 단계이면 워드라인에 연결된 소거 레벨 셀들을 프로그램 금지 상태로 하고 나머지 셀들은 프리 프로그램 루프(도 15의 참조번호 176)에 의해 프리 프로그램 한다(S172). 각 프리 프로그램 루프의 프리 프로그램 펄스에 의해 프리 프로그램하고 검증 펄스에 의해 프리 프로그램 상태를 검증한다. 검증 레벨 이상으로 프리 프로그램 된 셀들은 프로그램 금지 상태로 하고 검증 레벨 이하의 셀들은 두 번째 루프의 프리 프로그램 펄스에 의해 프리 프로그램 레벨로 프로그램 한다. 마찬가지로 두 번째 검증펄스에 의해 목표 레벨로 프리 프로그램이 완료되면 프리 프로그램 된 셀들은 프로그램 금지하는 방식으로 ISPP 방식으로 프리 프로그램을 수행한다. 이어서 프리 프로그램이 완료되면 나머지 레벨 셀들에 대해서 각 셀들의 목표 레벨로 ISPP 방식으로 프로그램 한다(S174). S170단계에서 1차 프로그램이 아니라면 프리 프로그램 된 레벨 또는 이전 프로그램 스텝에서 프로그램 된 레벨로부터 각 셀들의 목표 레벨로 ISPP 방식으로 프로그램 한다(S176).
도 16은 본 발명의 프리 프로그램 루프방식을 채용한 멀티 스텝 프로그램 동작을 설명하기 위한 도면이다.
도 16은 3비트 8레벨 프로그램 방식에 관한 것으로 3 프로그램 스텝에 의해 프로그램이 이루어진다.
도 16을 참조하면 그래프 a)에 도시한 바와 같이 먼저 워드라인(WL n)에 연결된 셀들을 1차 프로그램 할 때 E 상태로부터 Pre B1 상태 및 A1, A2, A3 상태를 각각 ISPP 방식으로 프로그램 한다. 이때 Pre B1 상태의 문턱전압 산포 범위는 도 17에 도시한 바와 같이 최소한 워드라인 커플링 이득(180)보다 크고 상기 최종 목표레벨의 최대값으로부터 워드라인 커플링 제한마진폭(182)만큼 작은 범위 이내로 한다. 워드라인 커플링 이득(180)은 (Pre B1 Vt_min) - (E Vt_min)이고 워드라인 커플링 제한마진폭은 (Pre B1 Vt_max1) - (E Vt_max1) 값과 소거레벨 변동량에서 프리 프로그램 레벨 변동량을 감산한 값을 더한 값으로 산출된다. 여기서 Pre B1 Vt_max0은 프로그램 된 상태의 최대 문턱전압이고 Pre B1 Vt_max1은 워드라인 커플링에 의해 유발된 최대 문턱전압을 나타낸다. 따라서 Pre B1 상태의 최소값 Pre B1 Vt_min이 프리 프로그램 검증레벨 Pre B1 Vfy 이상으로 될 때까지 프리 프로그램 루프를 다단계로 실행한다.
이에 워드라인 커플링에 의해 워드라인(WL n+1)에 결합된 셀들의 E상태는 실선 산포범위에서 점선 산포범위로 확장된다. 이어서 그래프 b)에 도시한 바와 같이 워드라인(WL n+1)에 결합된 셀들을 1차 프로그램 하면 E 상태로부터 Pre B1 상태 및 A1, A2, A3 상태로 각각 산포 범위가 이동한다. 이에 워드라인 커플링에 의해 워드라인(WL n)에 결합된 셀들의 E, Pre B1 및 A1, A2, A3 상태는 실선 산포범위에서 점선 산포범위로 확장된다. 그래프 c)에 도시한 바와 같이 다시 워드라인(WL n)에 결합된 셀들을 2차 프로그램 스텝을 통하여 Pre B1 상태로부터 B1 상태로 문턱전압이 이동하고 A1, A2, A3 상태로부터 각각 (B2, B3), (B4, B5), (B6, B7) 상태로 문턱전압이 이동한다. 그러므로 최대 문턱전압 변화량, 즉 프리 프로그램 상태에서 B1 상태로의 문턱전압 최대 변화량이 줄어들게 되므로 이에 워드라인 커플링에 의한 영향이 줄게 되어 워드라인(WL n+1)에 결합된 셀들의 E 및 Pre B1, A01, A2, A3 상태는 실선 산포범위에서 점선 산포범위로 확장되나 확장된 크기가 감소된다. 이어서 그래프 d)에 도시한 바와 같이 워드라인(WL n+1)에 결합된 셀들을 2차 프로그램 하면 Pre B1 및 A1, A2, A3 상태로부터 B1, (B2, B3), (B4, B5), (B6, B7) 상태로 이동된다. 마찬가지로 최대 문턱전압 변화량이 감소되므로 워드라인 커플링에 의한 영향력이 줄게 된다. 이어서 파형 e)에 도시한 바와 같이 워드라인(WL n)에 결합된 셀들을 3차 프로그램 하면 B1~B7 상태로부터 P1~P7상태로 이동된다. 마찬가지로 파형 f)에 도시한 바와 같이 워드라인(WL n+1)에 결합된 셀들을 3차 프로그램 하면 B1~B7 상태로부터 P1~P7상태로 이동된다.
따라서 ISPP 방식의 프리 프로그램 루프에 의해 최대 문턱전압 변화량이 줄어든 만큼 워드라인 커플링 영향을 감소시킬 수 있다.
펄스 프리 프로그램 방식은 기존 프로그램 시간에 프리 프로그램 시간의 추가량이 작으나 워드라인 커플링 이득이 작기 때문에 커플링 감소 효과가 적다. 이에 반하여 루프 프리 프로그램 방식은 기존 노말 프로그램 시간에 프리 프로그램 루프 수만큼 프로그램 시간이 증가되므로 전체적인 프로그램 시간이 증대하나 워드라인 커플링 효과를 대폭 감소시킬 수 있다.
도 18은 프로그램 스텝 수 s=3이고 워드라인 수 w=6인 경우에 본 발명에 의한 프로그램 순서를 나타낸 도면이고, 도 19는 도 18의 프로그램 순서를 도 7의 흐름도 상에 표시한 도면이다.
도 18에서는 6개의 연속하는 워드라인들에 3비트 8레벨 데이터를 3 스텝 멀티 프로그램 하는 순서를 나타낸다. 각 워드라인의 1차 프로그램은 본 발명에 의한 프리 프로그램을 수행한다. 각 워드라인의 2차 프로그램은 1차 프로그램에서 프리 프로그램 된 레벨에서 목표 레벨로 프로그램 된다. 그러므로 인접하는 워드라인(WL n+1)의 1차 프리 프로그램이 현재 워드라인(WL n)의 1차와 2차 사이에 수행되도록 프로그램 순서를 결정한다.
도면을 참조하면, 제1워드라인(WL 1)의 셀들을 1차 프로그램하고(도면 표시 ij=11) S106 - S108 - S110 - S112 - S114 단계(이하 "루프 1"이라 함)를 거쳐서 제2워드라인(WL 2)의 셀들을 S104단계에서 1차 프로그램 한다(도면 표시 ij=21). 이어서 S106 - S108 - S116 단계(이하 "루프 2"라 함)를 거쳐서 제1워드라인(WL 1)의 셀들을 S104단계에서 프리 프로그램 레벨 또는 1차 목표 레벨에서 2차 목표 레벨로 프로그램 한다(도면 표시 ij=12). 제1워드라인(WL 1)에 대해 2차 프로그램 이후에 다음 워드라인으로 건너 뛰기 위하여 루프 1 과정을 수행한다. 따라서 제3워드라인(WL 3)의 1차 프로그램이 이루어진다(도면 표시 ij=31). 그리고 워드라인 카운트 값 y는 3을 가지므로 S106 - S118 - S120 - S116 단계(이하 "루프 3:"이라 함)를 반복적으로 수행하여 제2워드라인 2차 프로그램(도면에서 ij=22), 제1워드라인 3차 프로그램(도면에서 ij=13)을 수행한다. 제1워드라인 3차 프로그램이 완료되면 제1 워드라인의 프로그램이 완료된다. S120단계에서 j=3으로 S와 동일한 값을 가지게 되므로 S122 - S124 단계(이하 "루프 4"라 함)를 거쳐서 제4 워드라인(WL 4)의 1차 프로그램을 수행한다(도면 표시 ij=41).
루프 3과 루프 4를 통하여 ij = (32 - 23 - 51 - 42 - 33 - 61)까지 프로그램이 수행된다. 워드라인 카운트 값 y 가 6이 되면 S118 - S126 - S116 단계 (이하 "루프 5"라 칭함)을 통하여 ij = (52 - 43) 까지 프로그램이 수행된다. S126단계에서 ij=43의 j 값이 "3"이므로 S128 - S130 - S132 단계를 거쳐서 마지막 워드라인 (WL 6)의 2차 및 3차 프로그램을 수행한다(도면 표시 ij= (62-53-63)). S130 단계에서 프로그램 스텝 카운트 값 x를 1씩 감소하고 S132단계에서 x = 0이 되면 프로그램을 종료한다.
도 20은 본 발명의 실시 예에 따른 플래시 메모리 장치(100)를 포함하는 SSD(Solid State Disk) 시스템(200)의 구성을 예시적으로 보여주는 블록도이다.
도 20을 참조하면, SSD 시스템(200)은 호스트(210)와 SSD(220)를 포함할 수 있다. SSD(220)는 SSD 컨트롤러(222), 버퍼 메모리(224), 그리고 플래시 메모리 장치(100)를 포함할 수 있다. SSD 컨트롤러(222)는 호스트(210)와 SSD(220)와의 물리적 연결을 제공할 수 있다. 즉, SSD 컨트롤러(222)는 호스트(210)의 버스 포맷(Bus format)에 따라서 SSD(220)와의 인터페이싱을 제공할 수 있다. SSD 컨트롤러(222)는 호스트(210)로부터 제공되는 명령어를 디코딩할 수 있다. 디코딩된 결과에 따라, SSD 컨트롤러(222)는 플래시 메모리 장치(100)를 액세스할 수 있다. 호스트(210)의 버스 포맷(Bus format)으로 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI) 등이 포함될 수 있다. 버퍼 메모리(224)는 SSD(220)에서 충분한 버퍼링을 제공하기 위해 동기식 DRAM(Synchronous DRAM)으로 구성될 수 있다. 그러나 이는 버퍼 메모리(224)를 구성하는 일 예로서, 특정 형태의 메모리에만 국한되지 않고, 다양한 형태로 변경될 수 있다. 버퍼 메모리(224)에는 호스트(210)로부터 제공되는 쓰기 데이터 또는 플래시 메모리 장치(100)로부터 읽혀진 데이터가 임시로 저장될 수 있다. 호스트(210)의 읽기 요청시, 플래시 메모리 장치(100)에 존재하는 데이터가 버퍼 메모리(224)에 저장되어 있는 경우에는, 버퍼 메모리(224)는 저장되어 있는 데이터를 직접 호스트(210)로 제공하는 캐시 기능을 지원할 수 있다. 일반적으로, 호스트(1100)의 버스 포맷(예를 들면, SATA 또는 SAS)에 의한 데이터 전송 속도는 SSD(220)의 메모리 채널의 전송 속도보다 월등히 빠르다. 호스트(210)의 인터페이스 속도가 월등히 높은 경우, 대용량의 버퍼 메모리(224)를 제공함으로써 속도 차이로 발생하는 퍼포먼스 저하를 최소화할 수 있다.
플래시 메모리 장치(100)는 SSD(220)의 주 메모리로서 사용될 수 있다. 이를 위해, 플래시 메모리 장치(100)는 대용량의 저장 능력을 가지는 낸드 플래시 메모리(NAND-type Flash memory)로 구성될 수 있다. 그러나 SSD(220)에 구비되는 플래시 메모리 장치(100)의 형태는 낸드 플래시 메모리에만 국한되는 것은 아니다. 예를들면, 노어 플래시 메모리(NOR-type Flash memory), 적어도 두 종류 이상의 메모리 셀이 혼합된 하이브리드 플래시 메모리, 메모리 칩 내에 컨트롤러가 내장된 One-NAND 플래시 메모리 등도 적용될 수 있다. 그리고 SSD(220) 내에는 복수의 채널들이 구비될 수 있으며, 각각의 채널에는 복수의 플래시 메모리 장치(100)들이 접속될 수 있다.
이상에서는, 주 메모리로서 낸드 플래시 메모리를 예로 들어 설명되었으나, 또 다른 불휘발성 메모리 장치들로 구성될 수 있다. 예를 들면, 주 메모리로서 PRAM, MRAM, ReRAM, FRAM 등의 불휘발성 메모리들과, DRAM, SRAM 등의 휘발성 메모리 장치들 중 적어도 하나가 사용될 수도 있다.
도 20에 도시된 플래시 메모리 장치(100)는 도 1에 도시된 플래시 메모리 장치와 실질적으로 동일하게 구성될 수 있다. 또한, 도 20에 도시된 플래시 메모리 장치(100)는 멀티 레벨 셀(MLC)의 멀티 스텝 프로그램 동작시 인접 워드라인과의 커플링에 의한 영향을 최소화하기 위하여 프리 프로그램 동작이 수행될 수 있다.
도 21은 본 발명에 따른 메모리 시스템(300)의 구성을 예시적으로 보여주는 블록도이다.
도 21을 참조하면, 본 발명에 따른 메모리 시스템(300)은 플래시 메모리 장치(100)와 메모리 컨트롤러(310)를 포함할 수 있다. 도 21에 도시된 플래시 메모리 장치(100)는 도 1에 도시된 플래시 메모리 장치와 실질적으로 동일하게 구성될 수 있다. 또한, 도 21에 도시된 플래시 메모리 장치(100)는 멀티 레벨 셀(MLC)의 멀티 스텝 프로그램 동작시 인접 워드라인과의 커플링에 의한 영향을 최소화하기 위하여 프리 프로그램 동작이 수행될 수 있다.
메모리 컨트롤러(310)는 플래시 메모리 장치(100)를 제어하도록 구성될 수 있다. 플래시 메모리 장치(100)와 메모리 컨트롤러(310)의 결합에 의해 메모리 카드 또는 반도체 디스크 장치(Solid State Disk: SSD)로 제공될 수 있다. SRAM(311)은 프로세서(312)의 동작 메모리로 사용될 수 있다. 호스트 인터페이스(313)는 메모리 시스템(300)과 접속되는 호스트의 데이터 교환 프로토콜을 구비할 수 있다. 에러 정정 블록(314)은 플래시 메모리 장치(100)로부터 독출된 데이터에 포함되는 에러를 검출 및 정정할 수 있다. 메모리 인터페이스(315)는 본 발명의 플래시 메모리 장치(100)와 인터페이싱 할 수 있다. 프로세서(312)는 메모리 컨트롤러(310)의 데이터 교환을 위한 제반 제어 동작을 수행할 수 있다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 메모리 시스템(300)은 호스트(Host)와의 인터페이싱을 위한 코드 데이터를 저장하는 ROM 등이 더 제공될 수 있다.
플래시 메모리 장치(100)는 복수의 플래시 메모리 칩들로 구성되는 멀티-칩 패키지로 제공될 수도 있다. 이상의 본 발명의 메모리 시스템(300)은 에러의 발생 확률이 낮은 고신뢰성의 저장 매체로 제공될 수 있다. 특히, 최근 활발히 연구되고 있는 반도체 디스크 장치(Solid State Disk: 이하 SSD)와 같은 메모리 시스템에서 본 발명의 플래시 메모리 장치가 구비될 수 있다. 이 경우, 메모리 컨트롤러(310)는 USB, MMC, PCI-E, SAS, SATA, PATA, SCSI, ESDI, 그리고 IDE 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 통해 외부(예를 들면, 호스트)와 통신하도록 구성될 것이다. 또한, 메모리 컨트롤러(310)에는 랜덤 연산을 수행하기 위한 구성이 더 포함될 수 있다.
도 22에는 본 발명에 따른 플래시 메모리 장치(100)를 포함한 컴퓨팅 시스템(400)의 구성을 예시적으로 보여주는 블록도이다.
도 22를 참조하면, 본 발명에 따른 컴퓨팅 시스템(400)은 시스템 버스(460)에 전기적으로 연결된 CPU(420), 램(430), 사용자 인터페이스(440), 베이스밴드 칩셋(Baseband chipset)과 같은 모뎀(450) 및 메모리 시스템(410)을 포함할 수 있다. 메모리 시스템(410)은 메모리 컨트롤러(412) 및 플래시 메모리 장치(100)를 포함할 수 있다. 메모리 컨트롤러(410)는 시스템 버스(460)를 통해 CPU(420)와 플래시 메모리 장치(100)와의 물리적 연결을 제공한다. 즉, 메모리 컨트롤러(412)는 CPU(420)의 버스 포맷(Bus format)에 대응하여 플래시 메모리 장치(100)와의 인터페이싱을 제공할 수 있다. 도 22에 도시된 플래시 메모리 장치(100)는 도 1에 도시된 플래시 메모리 장치와 실질적으로 동일하게 구성될 수 있다. 또한, 도 22에 도시된 플래시 메모리 장치(100)는 멀티 레벨 셀(MLC)의 멀티 스텝 프로그램 동작시 인접 워드라인과의 커플링에 의한 영향을 최소화하기 위하여 프리 프로그램 동작이 수행될 수 있다.
본 발명에 따른 컴퓨팅 시스템(400)이 모바일 장치인 경우, 컴퓨팅 시스템(400)의 동작 전압을 공급하기 위한 배터리가 추가적으로 제공될 것이다. 발명에 따른 컴퓨팅 시스템(400)에는 응용 칩셋(Application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램 등이 더 제공될 수 있다. 메모리 시스템(410)은, 예를 들면, 데이터를 저장하는 데 불휘발성 메모리를 사용하는 SSD(Solid State Drive/Disk)를 구성할 수 있다. 예를 들면, 도 22에 도시된 메모리 시스템(410)은 도 20에 도시된 SSD(200)를 구성할 수 있다. 이 경우, 메모리 컨트롤러(412)는 SSD 컨트롤러로서 동작하게 될 것이다.
도 23은 본 발명의 실시예에 따른 적어도 하나의 메모리 장치를 갖는 메모리 모듈의 기능 블록도이다.
메모리모듈(500)은 메모리 카드로서 도시되어 있지만, 메모리 모듈(500)에 관련하여 논의된 개념들은 다른 타입의 이동식 또는 휴대용 메모리(예를 들면, USB 플래시 드라이브)에 적용될 수 있고 본 명세서에서 사용되는 "메모리 모듈"의 범위 내에 있는 것으로 의도된다.
일부 실시예들에서, 메모리 모듈(500)은 하나 이상의 플래시 메모리 장치들(100)을 넣기 위한 하우징(502)을 포함하겠지만, 그러한 하우징(502)은 모든 장치들 또는 장치 응용들에 필수적인 것은 아니다. 적어도 하나의 플래시 메모리 장치(100)는 본 명세서에 설명된 실시예들에 따라서 멀티 스텝 프로그램 동작시 프리 프로그램 된 멀티 레벨 메모리 셀들의 어레이를 포함한다. 하우징(502)이 존재하는 경우, 그것은 호스트 장치와 통신하기 위한 하나의 이상의 콘택트들(504)을 포함한다. 호스트 장치의 예들은 스마트 폰, 디지털 카메라, 디지털 녹화 및 재생 장치, PDA, 퍼스널 컴퓨터, 메모리 카드 리더, 인터페이스 허브, 네비게이션, MP3 플레이어 등을 포함한다. 일부 실시예들에서, 콘택트들(504)은 표준화된 인터페이스의 형태이다. 예를 들면, USB 플래시 드라이브에서, 콘택트들(504)은 USB 타입-A 커넥터의 형태일 수 있다. 일부 실시예들에서, 콘택트들(504)은 샌디스크 코포레이션(Sandisk Corporation)에 의해 라이센싱된 CompactFlashTM 메모리 카드, 소니 코포레이션에 의해 라이센싱된 Memory StickTM 메모리 카드, 도시바 코포레이션에 의해 라이센싱된 SD Secure DigitalTM 카드에서 발견될 수 있는 인터페이스의 형태이다. 그러나 일반적으로, 콘택트들(504)은 메모리 모듈(500)과 콘택트들(504)에 대한 호환성 있는 리셉터들(receptors)을 갖는 호스트 사이에 제어, 어드레스 및/또는 데이터 신호들을 전달하기 위한 인터페이스를 제공한다. 메모리 모듈(500)은 옵션으로 추가의 회로(510)를 포함할 수 있고, 그것은 하나 이상의 집적 회로들 및/또는 이산 컴포넌트들(discrete components)일 수 있다. 일부 실시예들에서, 추가의 회로(510)는 복수의 플래시 메모리 장치들(100)에 걸쳐서 액세스를 제어하기 위한 및/또는 외부 호스트와 플래시 메모리 장치(100) 사이에 변환 층(translation layer)을 제공하기 위한 메모리 컨트롤러를 포함할 수 있다. 예를 들면, 컨택들(504)의 수와 하나 이상의 플래시 메모리 장치들(100)에 대한 접속들의 수 사이에 일대일 대응이 없을 수 있다. 따라서 메모리 컨트롤러는 적절한 때에 적절한 I/O 접속에서 적절한 신호를 수신하거나 적절한 때에 적절한 I/O 접속에서 적절한 신호를 제공하기 위해 플래시 메모리 장치(100)의 I/O 접속을 선택적으로 연결할 수 있다. 유사하게, 호스트와 메모리 모듈(500) 사이의 통신 프로토콜은 플래시 메모리 장치(100)의 액세스를 위해 요구되는 것과 다를 수 있다. 메모리 컨트롤러는 플래시 메모리 장치(100)에의 소망하는 액세스를 달성하기 위해 호스트로부터 수신된 명령 시퀀스들을 적절한 명령 시퀀스들로 변환할 수 있다. 그러한 변환은 명령 시퀀스에 더하여 신호 전압 레벨의 변화를 포함할 수 있다. 추가의 회로(510)는 ASIC에 의해 수행될 수 있는 논리 기능들과 같은 플래시 메모리 장치(100)의 제어와 무관한 기능을 더 포함할 수 있다. 또한, 추가의 회로(510)는 패스워드 보호, 생체인식(biometircs) 등과 같은, 메모리 모듈(500)에의 판독 또는 기입 액세스를 제한하는 회로를 포함할 수 있다. 추가의 회로(510)는 메모리 모듈(500)의 상태를 나타내는 회로를 포함할 수 있다. 예를 들면, 추가의 회로(510)는, 메모리 모듈(500)에 전력이 공급되고 있는지 및 메모리 모듈(500)이 현재 액세스되고 있는지를 결정하고, 전력이 공급되는 동안에는 연속 광(solid light) 및 액세스되는 동안에는 번쩍이는 광(flashing light)과 같은, 그의 상태의 표시를 디스플레이하는 기능을 포함할 수 있다. 추가의 회로(510)는 메모리 모듈(500) 내의 전력 요건을 조절하는 데 도움이 되는 디커플링 커패시터(decoupling capacitor)와 같은 수동 소자들을 더 포함할 수 있다.
본 발명에 따른 불휘발성 메모리 장치 그리고/또는 메모리 컨트롤러는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 PoP(Package onPackage), 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 Fabriated Package(WFP), Wafer-Level Processed Stack Package(WSP) 등과 같은 패키지들을 이용하여 실장될 수 있다.
이상 본 발명의 실시예들에 따른 NAND 형 MLC 플래시 메모리 장치에 대하여 설명의 편의를 위하여 2 내지 3 프로그램 스텝과 3루프로 제한하여 설명하였으나, 본 발명의 기술적 사상의 범위 내에서 그 이상의 멀티 스텝 및 멀티 루프로 확장될 수 있음을 이해하여야 할 것이다.
본 발명은 NAND 타입 플래시 메모리 장치의 멀티 레벨 프로그램시 워드라인들 사이의 커플링 영향을 최소화함으로써 프로그램 혼동에 의한 산포 왜곡을 감소시켜서 플래시 메모리 장치의 제품 신뢰성을 향상시키고 데 유용하게 이용될 수 있다.
상술한 바와 같이, 본 발명의 바람직한 실시예를 참조하여 설명하였지만 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (7)

  1. X회(X는 2 이상의 자연수) 이상의 프로그램 단계를 거쳐서 메모리 셀들을 2X 개의 레벨들로 프로그램 하는 불휘발성 메모리 장치의 프로그램 방법에 있어서,
    1차 프로그램단계에서 소거레벨에서 2(X-1)-1 개의 1차 목표레벨들로 프로그램 되는 메모리 셀들의 프로그램동작과 연동하여 프로그램 전후의 문턱전압 변동이 가장 큰 메모리 셀들을 상기 소거레벨 보다는 높고 상기 1차 목표레벨 보다 낮은 레벨로 프리 프로그램 하는 단계;
    2차 프로그램 단계에서 상기 프리 프로그램 된 메모리 셀들은 프리 프로그램 된 레벨에서 2X-1개의 2차 목표 레벨들 중 가장 낮은 레벨로 프로그램하고 상기 1차 프로그램 된 메모리 셀들은 상기 2X-1개의 2차 목표 레벨들 중에서 상기 가장 낮은 레벨을 제외한 2X-2개의 2차 목표 레벨들 중 어느 하나로 각각 프로그램 하는 단계를 구비하고,
    상기 프리 프로그램 된 레벨의 문턱전압 산포 범위는 최소한 워드라인 커플링 이득보다 크고 상기 1차 목표레벨의 최대값으로부터 워드라인 커플링 제한마진폭만큼 작은 범위 이내 인 것을 특징으로 하는 불휘발성 메모리 장치의 프로그램 방법.
  2. 제1항에 있어서,
    상기 프리 프로그램 되는 메모리 셀들은 상기 1차 목표레벨로 프로그램 되는 메모리 셀들을 프로그램 하기 위한 1차 프로그램의 첫 번째 프로그램 루프에 의해 동시에 프로그램 되는 것을 특징으로 하는 불휘발성 메모리 장치의 프로그램 방법.
  3. 제1항에 있어서,
    상기 프리 프로그램 되는 메모리 셀들은 상기 1차 목표레벨로 프로그램 되는 메모리 셀들을 프로그램 하기 위한 1차 프로그램의 첫 번째 프로그램 루프 직전에 추가되는 적어도 1회 이상의 프리 프로그램 루프들에 의해 별도로 이루어진 것을 특징으로 하는 불휘발성 메모리 장치의 프로그램 방법.
  4. 제3항에 있어서,
    상기 프리 프로그램 루프들의 각각에서 프리 프로그램 검증을 수행하고, n번째(n은 1 이상의 자연수) 프리 프로그램 루프에서 프리 프로그램 된 메모리 셀들 중 문턱전압 레벨이 프리 프로그램 검증 레벨보다 높은 문턱전압 레벨을 가진 메모리 셀은 (n+1)번째 프리 프로그램 루프에서 프리 프로그램을 금지하는 것을 특징으로 하는 불휘발성 메모리 장치의 프로그램 방법.
  5. X회(X는 2 이상의 자연수) 이상의 멀티 스텝 프로그램 단계를 거쳐서 메모리 셀들을 2X 개의 레벨들로 프로그램 하는 불휘발성 메모리 장치의 프로그램 방법에 있어서,
    제1워드라인에 연결된 복수의 메모리 셀들 중 1차 프로그램단계에서 2(X-1)-1 개의 1차 목표레벨로 프로그램 되는 메모리 셀들의 프로그램 동작과 연동하여 프로그램 전후의 문턱전압 변동이 가장 큰 메모리 셀들을 소거레벨에서 상기 1차 목표레벨 보다 낮은 레벨로 프리 프로그램 하는 단계;
    상기 제1워드라인에 연결된 복수의 메모리 셀들을 1차 프로그램 한 이후에 상기 제1워드라인에 인접하는 제2워드라인에 연결된 복수의 메모리 셀들에 대해서도 상기 제1워드라인에 연결된 복수의 셀들과 동일한 방법으로 프리 프로그램 및 1차 프로그램을 수행하는 단계;
    상기 제2워드라인에 연결된 복수의 메모리 셀들을 1차 프로그램 한 이후에 상기 제1워드라인에 연결된 복수의 메모리 셀들 중 프리 프로그램 된 메모리 셀들을 프리 프로그램 된 레벨에서 2X-1개의 2차 목표 레벨들 중 가장 낮은 레벨로 프로그램 하고 상기 1차 프로그램 된 메모리 셀들은 상기 2X-1개의 2차 목표 레벨들 중에서 상기 가장 낮은 레벨을 제외한 2X-2개의 2차 목표 레벨들 중 어느 하나로 각각 2차 프로그램 하는 단계; 및
    상기 제1워드라인에 연결된 복수의 메모리 셀들을 2차 프로그램 한 이후에 상기 제2워드라인에 연결된 복수의 메모리 셀들에 대해서도 상기 제1워드라인에 연결된 복수의 셀들과 동일한 방법으로 2차 프로그램을 수행하는 단계를 구비한 것을 특징으로 하는 불휘발성 메모리 장치의 프로그램 방법.

  6. 삭제
  7. 삭제
KR1020130009836A 2013-01-29 2013-01-29 멀티레벨 불휘발성 메모리 장치 및 프로그램 방법 KR102106866B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130009836A KR102106866B1 (ko) 2013-01-29 2013-01-29 멀티레벨 불휘발성 메모리 장치 및 프로그램 방법
US14/165,835 US9343158B2 (en) 2013-01-29 2014-01-28 Methods of programming multi-level cell nonvolatile memory devices and devices so operating

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130009836A KR102106866B1 (ko) 2013-01-29 2013-01-29 멀티레벨 불휘발성 메모리 장치 및 프로그램 방법

Publications (2)

Publication Number Publication Date
KR20140096796A KR20140096796A (ko) 2014-08-06
KR102106866B1 true KR102106866B1 (ko) 2020-05-06

Family

ID=51222809

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130009836A KR102106866B1 (ko) 2013-01-29 2013-01-29 멀티레벨 불휘발성 메모리 장치 및 프로그램 방법

Country Status (2)

Country Link
US (1) US9343158B2 (ko)
KR (1) KR102106866B1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9171628B2 (en) * 2014-03-13 2015-10-27 Macronix International Co., Ltd. Incremental step pulse programming (ISPP) scheme capable of determining a next starting pulse based on a current program-verify pulse for improving programming speed
KR102135177B1 (ko) * 2014-06-27 2020-07-20 한국전자통신연구원 능동형 이미징 시스템 구현 방법 및 장치
KR102309841B1 (ko) * 2015-08-24 2021-10-12 삼성전자주식회사 표면 실장 기술의 적용에 따른 메모리 셀의 문턱 전압 산포 변화 복구 기능을 갖는 데이터 스토리지 및 그것의 동작 방법
KR102502234B1 (ko) * 2015-12-03 2023-02-21 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법
KR102340328B1 (ko) * 2016-01-07 2021-12-16 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이의 동작 방법
KR102498248B1 (ko) * 2016-02-04 2023-02-10 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그것의 동작 방법
KR102444238B1 (ko) * 2016-02-26 2022-09-16 삼성전자주식회사 메모리 장치의 프로그램 방법 및 이를 적용하는 메모리 시스템
KR102650333B1 (ko) * 2016-08-10 2024-03-25 삼성전자주식회사 불휘발성 메모리 장치 및 불휘발성 메모리 장치를 포함하는 스토리지 장치
KR20180028312A (ko) * 2016-09-08 2018-03-16 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 프로그램 방법
US10381094B2 (en) 2016-10-11 2019-08-13 Macronix International Co., Ltd. 3D memory with staged-level multibit programming
US10600484B2 (en) * 2017-12-20 2020-03-24 Silicon Storage Technology, Inc. System and method for minimizing floating gate to floating gate coupling effects during programming in flash memory
KR102387960B1 (ko) 2018-07-23 2022-04-19 삼성전자주식회사 컨트롤러 및 그것의 동작 방법
KR20200113867A (ko) * 2019-03-26 2020-10-07 에스케이하이닉스 주식회사 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
KR20210054376A (ko) * 2019-11-05 2021-05-13 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 동작 방법
CN112289358B (zh) * 2020-11-02 2022-10-28 长江存储科技有限责任公司 三维存储器系统和对三维存储器进行编程的方法
KR20220169642A (ko) * 2021-06-21 2022-12-28 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100037032A1 (en) 2008-08-11 2010-02-11 Spansion Llc Multi-Level Storage Algorithm To Emphasize Disturb Conditions
US9792071B2 (en) 2014-12-22 2017-10-17 Sandisk Technologies Llc End of life prediction to reduce retention triggered operations
KR101798013B1 (ko) 2010-12-30 2017-11-16 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6522580B2 (en) 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
US6570787B1 (en) 2002-04-19 2003-05-27 Advanced Micro Devices, Inc. Programming with floating source for low power, low leakage and high density flash memory devices
US7196946B2 (en) * 2005-04-05 2007-03-27 Sandisk Corporation Compensating for coupling in non-volatile storage
KR100719368B1 (ko) * 2005-06-27 2007-05-17 삼성전자주식회사 플래시 메모리 장치의 적응적 프로그램 방법 및 장치
US7751242B2 (en) 2005-08-30 2010-07-06 Micron Technology, Inc. NAND memory device and programming methods
US7978845B2 (en) 2005-09-28 2011-07-12 Panduit Corp. Powered patch panel
DE602006013935D1 (de) 2006-03-31 2010-06-10 St Microelectronics Srl Verfahren zum Programmieren einer Speicheranordnung dafür geeignet die Kopplungen der schwebeneden Gatter zu minimieren und eine Speicheranordnung
US7826262B2 (en) 2008-01-10 2010-11-02 Macronix International Co., Ltd Operation method of nitride-based flash memory and method of reducing coupling interference
KR101438666B1 (ko) * 2008-03-25 2014-11-03 삼성전자주식회사 전하의 측면 이동을 줄일 수 있는 메모리 장치의 작동 방법
KR101468099B1 (ko) * 2008-07-24 2014-12-03 삼성전자주식회사 불휘발성 메모리 장치의 프로그램 방법
US8064252B2 (en) * 2008-11-21 2011-11-22 Micron Technology, Inc. Multi-pass programming in a memory device
KR20100058166A (ko) * 2008-11-24 2010-06-03 삼성전자주식회사 불휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템
KR101532584B1 (ko) * 2009-01-30 2015-06-30 삼성전자주식회사 비휘발성 메모리 장치, 및 그의 프로그램 방법
KR20100107294A (ko) * 2009-03-25 2010-10-05 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 불휘발성 메모리 장치의 프로그램 방법
JP5330136B2 (ja) 2009-07-22 2013-10-30 株式会社東芝 半導体記憶装置
US8144511B2 (en) 2009-08-19 2012-03-27 Sandisk Technologies Inc. Selective memory cell program and erase
US8199579B2 (en) 2009-09-16 2012-06-12 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device
KR101616097B1 (ko) * 2009-11-11 2016-04-28 삼성전자주식회사 불휘발성 메모리 장치의 프로그램 방법
KR101656384B1 (ko) * 2010-06-10 2016-09-12 삼성전자주식회사 불휘발성 메모리 장치의 데이터 기입 방법
KR20120009925A (ko) 2010-07-22 2012-02-02 삼성전자주식회사 프로그램 에러를 줄일 수 있는 불휘발성 메모리 장치, 그것의 프로그램 방법 그리고 그것을 포함하는 메모리 시스템
KR20130060687A (ko) * 2011-11-30 2013-06-10 삼성전자주식회사 멀티 레벨 셀의 프로그램 방법
KR101927212B1 (ko) * 2012-05-09 2019-03-07 삼성전자주식회사 비휘발성 메모리 장치의 프로그래밍 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100037032A1 (en) 2008-08-11 2010-02-11 Spansion Llc Multi-Level Storage Algorithm To Emphasize Disturb Conditions
KR101798013B1 (ko) 2010-12-30 2017-11-16 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법
US9792071B2 (en) 2014-12-22 2017-10-17 Sandisk Technologies Llc End of life prediction to reduce retention triggered operations

Also Published As

Publication number Publication date
KR20140096796A (ko) 2014-08-06
US20140211565A1 (en) 2014-07-31
US9343158B2 (en) 2016-05-17

Similar Documents

Publication Publication Date Title
KR102106866B1 (ko) 멀티레벨 불휘발성 메모리 장치 및 프로그램 방법
US10332607B2 (en) Methods of operating a nonvolatile memory device and the nonvolatile memory device thereof
US9224483B2 (en) Nonvolatile memory device, system and programming method with dynamic verification mode selection
CN107093465B (zh) 包括电压搜索单元的数据存储器装置
CN109935267B (zh) 半导体存储器装置及其操作方法
US8539138B2 (en) Flash memory device and method of programming flash memory device
US9281068B2 (en) Nonvolatile memory and related reprogramming method
KR102053953B1 (ko) 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법
KR101618311B1 (ko) 플래시 메모리 장치 및 그것의 읽기 방법
US8270227B2 (en) Nonvolatile memory device and method of reading same
US9818477B2 (en) Methods of programming memory cells in non-volatile memory devices
KR101518033B1 (ko) 멀티-레벨 비휘발성 메모리 장치, 상기 장치를 포함하는 메모리 시스템 및 그 동작 방법
US9514830B2 (en) Non-volatile memory device, memory system including the same, and method of operating the same
KR101534274B1 (ko) 메모리 시스템 및 그것의 프로그램 방법
US10497452B2 (en) Semiconductor memory device and method of operating the same
US8498160B2 (en) Nonvolatile memory device and related programming method using selective bit line precharging
US9524781B2 (en) Nonvolatile memory device and operating method thereof
US8218371B2 (en) Multi-bit flash memory device and method of analyzing flag cells of the same
KR101642930B1 (ko) 더미 셀을 갖는 불휘발성 메모리 장치 및 그것의 프로그램 방법
KR101893562B1 (ko) 불휘발성 메모리 장치 및 그것의 프로그램 방법
KR20210094696A (ko) 비휘발성 메모리 장치, 스토리지 장치, 및 그것의 프로그램 방법

Legal Events

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