KR20120138895A - 멀티-레벨 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 동작 방법 - Google Patents

멀티-레벨 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 동작 방법 Download PDF

Info

Publication number
KR20120138895A
KR20120138895A KR1020110058312A KR20110058312A KR20120138895A KR 20120138895 A KR20120138895 A KR 20120138895A KR 1020110058312 A KR1020110058312 A KR 1020110058312A KR 20110058312 A KR20110058312 A KR 20110058312A KR 20120138895 A KR20120138895 A KR 20120138895A
Authority
KR
South Korea
Prior art keywords
program operation
memory
area
data
stored
Prior art date
Application number
KR1020110058312A
Other languages
English (en)
Other versions
KR101792867B1 (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 KR1020110058312A priority Critical patent/KR101792867B1/ko
Priority to US13/466,280 priority patent/US8638603B2/en
Publication of KR20120138895A publication Critical patent/KR20120138895A/ko
Application granted granted Critical
Publication of KR101792867B1 publication Critical patent/KR101792867B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/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
    • 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

Landscapes

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

Abstract

본 발명은 메모리 컨트롤러의 버퍼 크기를 최소화할 수 있는 데이터 저장 시스템 및 그것의 동작 방법에 관한 것이다. 상기 데이터 저장 시스템은 메모리 컨트롤러와 멀티-레벨 메모리 장치를 포함한다. 상기 멀티-레벨 메모리 장치는 서로 다른 방식으로 프로그램되는 제 1 메모리 영역과 제 2 메모리 영역으로 구분된다. 상기 메모리 컨트롤러는 저장하고자 하는 데이터를 상기 제 1 메모리 영역에 저장하는 버퍼 프로그램 동작과 상기 제 1 메모리 영역으로부터 읽혀진 데이터를 상기 제 2 메모리 영역에 저장하는 메인 프로그램 동작을 수행하도록 상기 멀티-레벨 메모리 장치를 제어한다. 상기 버퍼 프로그램 동작 시, 상기 데이터가 저장될 상기 제 1 영역의 블럭은 멀티-레벨을 구성하는 상기 데이터의 순서에 따라 정해지고, 상기 데이터가 저장될 상기 제 1 영역의 워드 라인은 메인 프로그램을 통해 데이터가 저장될 상기 제 2 영역의 워드 라인과 동일하게 정해질 것이다. 그러한 까닭에, 프로그램 동작 시 워드 라인들에 인가되는 전압들과 읽기 동작 시 워드 라인들에 인가되는 전압들의 셋업 시간과 리셋 시간이 감소될 수 있다. 또한, 상기 버퍼 프로그램과 상기 메인 프로그램 동작을 통해 상기 메모리 컨트롤러에 포함되는 버퍼 메모리의 크기를 최소화시킬 수 있다.

Description

멀티-레벨 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 동작 방법{DATA STORAGE SYSTEM HAVING MULTI-LEVEL MEMORY DEVICE AND OPERATING METHOD THEREOF}
본 발명은 메모리 장치에 관한 것으로, 더욱 상세하게는 멀티-레벨 메모리 장치를 포함한 데이터 저장 시스템에 관한 것이다.
반도체 메모리 장치는 일반적으로 휘발성 메모리와 불휘발성 메모리 장치로 분류된다. 휘발성 메모리 장치는 전원이 차단될 때 저장된 데이터를 잃지만, 불휘발성 메모리 장치는 전원이 차단되더라도 저장된 데이터를 보존할 수 있다. 불휘발성 메모리 장치들은 다양한 형태의 메모리 셀 트랜지스터를 포함한다. 불휘발성 메모리 장치에는 메모리 셀 트랜지스터의 구조에 따라 플래시 메모리(Flash Memory), 강유전체 램(Ferroelectric RAM: FRAM), 마그네틱 램(Magnetic RAM: MRAM), 상 변화 램(Phase change RAM: PRAM)등이 포함된다.
불휘발성 메모리 장치 중에서 플래시 메모리 장치는 메모리 셀과 비트 라인의 연결 상태에 따라 크게 노어(NOR) 플래시 메모리 장치와 낸드(NAND) 플래시 메모리 장치로 구분된다. 노어 플래시 메모리 장치는 1개의 비트 라인에 2개 이상의 메모리 셀 트랜지스터들이 병렬로 연결되는 구조를 갖는다. 따라서, 노어 플래시 메모리 장치는 우수한 랜덤 액세스(random access) 시간 특성을 갖는다. 반면, 낸드 플래시 메모리 장치는 1개의 비트 라인에 2개 이상의 메모리 셀 트랜지스터들이 직렬로 연결되는 구조를 갖는다. 이러한 구조를 셀 스트링(string) 구조라고 하며, 셀 스트링당 한 개의 비트 라인 컨택(contact)을 필요로 한다. 따라서, 낸드 플래시 메모리 장치는 집적도면에서 우수한 특성을 갖는다.
플래시 메모리 장치의 메모리 셀들은 문턱 전압 분포에 따라 온 셀(on cell)과 오프 셀(off cell)로 구분된다. 온 셀은 소거된 셀(erased cell)이고, 오프 셀은 프로그램된 셀(programmed cell)이다. 프로그램된 메모리 셀은 N(N은 1이상의 정수)개의 프로그램 상태(또는 프로그램된 데이터 값)에 대응되는 문턱 전압 분포들 중에서 어느 하나의 문턱 전압을 갖는다.
프로그램 동작 시, 프로그램 되는 선택 메모리 셀과 인접한 메모리 셀 사이에서는 커플링 현상이 발생될 수 있다. 커플링 현상은 인접한 메모리 셀의 문턱 전압 분포를 넓어지게 하고, 인접한 문턱 전압 분포들 사이의 간격이 좁아지게 한다. 그러한 커플링을 “전계 커플링(electric field coupling)” 또는 “F-poly 커플링”이라 한다. 커플링으로 인해 인접한 메모리 셀의 문턱 전압 분포가 변화하고 인접한 문턱 전압 분포들 사이의 간격이 좁아질수록, 메모리 셀의 데이터를 신뢰성 있게 읽어내기가 어려워진다. 이와 같은 문제는 셀 당 저장되는 데이터 비트의 수가 증가할수록 증가하게 된다.
본 발명의 목적은 메모리 컨트롤러의 버퍼 크기를 최소화할 수 있는 데이터 저장 시스템 및 그것의 동작 방법을 제공하는 데 있다.
본 발명의 다른 목적은 동작 성능이 향상된 메모리 장치를 제공하는 데 있다.
본 발명의 실시 예에 따른 데이터 저장 시스템은, 메모리 셀 어레이를 포함하는 불휘발성 메모리 장치; 및 상기 불휘발성 메모리 장치를 제어하도록 구성된 메모리 컨트롤러를 포함하되, 상기 메모리 셀 어레이는 메모리 셀 당 M(M은 양의 정수)-비트 데이터를 저장하는 제 1 영역과 메모리 셀 당 N(N은 양의 정수)-비트 데이터를 저장하는 제 2 영역을 포함하며, 상기 제 1 영역은 적어도 N개의 메모리 블럭들을 포함하고, 상기 메모리 컨트롤러는 상기 제 2 영역에 저장될 N-비트 데이터를 상기 제 1 영역의 N개의 메모리 블럭들 각각에 나누어 저장하는 버퍼 프로그램 동작; 및 상기 제 1 영역에 저장된 상기 N-비트 데이터를 상기 제 2 영역에 저장하는 메인 프로그램 동작을 수행하고, 상기 메모리 컨트롤러는 상기 버퍼 프로그램 동작 시 상기 N-비트 데이터가 저장될 상기 제 2 영역의 워드 라인과 동일한 위치의 상기 제 1 영역의 N개의 메모리 블럭들 각각의 워드 라인에 상기 N-비트 데이터를 나누어 저장한다.
실시 예에 있어서, 상기 메모리 컨트롤러는 버퍼 메모리를 포함하되, 상기 메모리 컨트롤러는 상기 제 1 영역에 대한 최소 프로그램 단위의 데이터가 상기 버퍼 메모리에 저장되면 상기 버퍼 메모리에 저장된 데이터가 상기 제 1 영역에 저장되도록 상기 불휘발성 메모리 장치를 제어함으로써 상기 버퍼 프로그램 동작을 수행한다.
실시 예에 있어서, 상기 메모리 컨트롤러는 상기 제 2 영역에 대한 최소 프로그램 단위의 데이터가 상기 제 1 영역에 저장되면 상기 제 1 영역에 저장된 데이터가 상기 제 2 영역에 저장되도록 상기 불휘발성 메모리 장치를 제어함으로써 상기 메인 프로그램 동작을 수행한다.
실시 예에 있어서, 상기 메인 프로그램 동작은 1-스텝 프로그램 동작, 2-스텝 프로그램 동작, 3-스텝 프로그램 동작 중 적어도 하나를 포함하는 재프로그램 방식을 통해 수행된다.
실시 예에 있어서, 상기 M-비트 데이터는 상기 N-비트 데이터보다 작은 비트 수로 구성된다.
실시 예에 있어서, 상기 제 1 영역은 싱글-비트 프로그램 방식에 따라 프로그램되고, 상기 제 2 영역은 멀티-비트 프로그램 방식에 따라 프로그램된다.
실시 예에 있어서, 상기 제 1 영역은 상기 제 2 영역에 속하는 메모리 셀의 셀 당 저장 가능한 비트 수와 동일한 수의 메모리 블럭들을 포함한다.
본 발명의 실시 예에 따른 제 1 영역과 제 2 영역으로 구분되는 메모리 셀 어레이를 포함하는 불휘발성 메모리 장치; 및 상기 불휘발성 메모리 장치를 제어하도록 구성된 메모리 컨트롤러를 포함하는 데이터 저장 시스템의 동작 방법은, 상기 제 2 영역에 저장될 N(N은 양의 정수)-비트 데이터를 상기 제 1 영역에 포함된 적어도 N개의 메모리 블럭들 각각에 나누어 저장하는 버퍼 프로그램 동작을 수행하는 단계; 및 상기 제 1 영역에 저장된 상기 N-비트 데이터를 상기 제 2 영역에 저장하는 메인 프로그램 동작을 수행하는 단계를 포함하되, 상기 버퍼 프로그램 동작을 수행하는 단계는, 상기 N-비트 데이터가 저장될 상기 제 2 영역의 워드 라인과 동일한 위치의 상기 제 1 영역의 N개의 메모리 블럭들 각각의 워드 라인에 상기 N-비트 데이터를 나누어 저장하는 단계를 포함한다.
실시 예에 있어서, 상기 메인 프로그램 동작을 수행하는 단계는, 상기 제 1 영역에 저장된 N-비트 데이터를 상기 N개의 메모리 블럭들로부터 순차적으로 읽는 단계; 및 상기 읽혀진 N-비트 데이터를 상기 제 2 영역에 저장하는 단계를 포함한다.
실시 예에 있어서, 상기 메인 프로그램 동작은 1-스텝 프로그램 동작, 2-스텝 프로그램 동작, 3-스텝 프로그램 동작 중 적어도 하나를 포함하는 재프로그램 방식을 통해 수행된다.
실시 예에 있어서, 상기 버퍼 프로그램 동작을 위한 일련의 프로그램 명령들을 상기 불휘발성 메모리 장치로 출력하기 전에 상기 버퍼 프로그램 동작으로 진입하기 위한 모드 전환 명령을 상기 불휘발성 메모리 장치로 출력하는 단계를 더 포함한다.
실시 예에 있어서, 상기 메인 프로그램 동작이 수행될 때, 상기 불휘발성 메모리 장치로 출력되는 일련의 명령들은 상기 제 1 영역에 대한 읽기 명령과 상기 제 2 영역에 대한 프로그램 명령을 포함한다.
실시 예에 있어서, 상기 메인 프로그램 동작이 수행된 후에 상기 버퍼 프로그램 동작을 종료하기 위한 모드 전환 명령을 상기 불휘발성 메모리 장치로 출력하는 단계를 더 포함한다.
실시 예에 있어서, 상기 제 1 영역에 속한 메모리 셀들은 셀 당 M-비트 데이터를 저장하고, 상기 제 2 영역에 속한 메모리 셀들은 셀 당 N-비트 데이터를 저장하되, 상기 M-비트 데이터는 상기 N-비트 데이터보다 작은 비트 수로 구성된다.
실시 예에 있어서, 상기 제 1 영역은 싱글-비트 프로그램 방식에 따라 프로그램되고, 상기 제 2 영역은 멀티-비트 프로그램 방식에 따라 프로그램된다.
본 발명의 실시 예들에 따르면, 메모리 컨트롤러의 버퍼 크기를 최소화할 수 있고, 메모리 장치의 동작 성능을 향상시킬 수 있다.
도 1은 멀티-레벨 메모리 장치에 적용되는 어드레스 스크램블 방식을 예시적으로 보여주는 도면이다.
도 2는 메모리 셀이 3-비트 데이터를 저장하고, 3-스텝 프로그램 방식에 따라 프로그램 동작이 수행될 때 변화되는 문턱 전압 분포를 예시적으로 보여주는 도면이다.
도 3은 메모리 셀이 4-비트 데이터를 저장하고, 3-스텝 프로그램 방식에 따라 프로그램 동작이 수행될 때 변화되는 문턱 전압 분포를 예시적으로 보여주는 도면이다.
도 4는 본 발명의 실시 예에 따른 데이터 저장 시스템을 개략적으로 보여주는 블럭도이다.
도 5는 셀 당 3-비트 데이터가 저장되고 3-스텝 재프로그램 방법이 적용되는 멀티-레벨 메모리 장치의 어드레스 스크램블 방식을 예시적으로 보여주는 도면이다.
도 6은 도 4에 도시된 데이터 저장 시스템의 프로그램 동작 동안 데이터 흐름을 개략적으로 보여주는 도면이다.
도 7은 도 4에 도시된 데이터 저장 시스템의 읽기 동작을 설명하기 위한 순서도이다.
도 8 및 도 9는 도 6에서 설명된 일련의 병렬 버퍼 프로그램 동작과 메인 프로그램 동작에 따른 데이터 흐름을 개략적으로 보여주는 도면이다.
도 10 및 도 11은 본 발명의 실시 예에 따른 병렬 버퍼 프로그램 동작 시에 인가되는 워드 라인 전압을 예시적으로 보여주는 도면이다.
도 12는 본 발명의 실시 예에 따른 병렬 버퍼 프로그램/읽기 동작을 수행하도록 멀티-레벨 메모리 장치에 제공되는 명령어를 설명하기 위한 도면이다.
도 13은 본 발명의 실시 예에 따른 병렬 버퍼 프로그램/읽기 동작을 수행하도록 멀티-레벨 메모리 장치에 제공되는 다른 명령어를 설명하기 위한 도면이다.
도 14 내지 도 17은 본 발명의 실시 예에 따른 멀티-레벨 메모리 장치의 제 1 및 제 2 영역들에 대한 다양한 조합들을 설명하기 위한 도면들이다.
도 18은 올 비트 라인 메모리 구조 또는 오드-이븐 메모리 구조를 위해 메모리 셀 어레이를 메모리 블록들로 구성하는 예를 보여주는 도면이다.
도 19는 본 발명의 실시 예에 따른 컴퓨터 시스템을 개략적으로 보여주는 블럭도이다.
도 20은 본 발명의 실시 예에 따른 메모리 컨트롤러를 개략적으로 보여주는 블럭도이다.
도 21은 본 발명의 실시 예에 따른 솔리드 스테이트 드라이브를 개략적으로 보여주는 블럭도이다.
도 22는 도 21에 도시된 솔리드 스테이트 드라이브를 이용한 스토리지를 개략적으로 보여주는 블럭도이다.
도 23은 도 21에 도시된 솔리드 스테이트 드라이브를 이용한 스트리지 서버를 개략적으로 보여주는 블럭도이다.
도 24 내지 도 26은 본 발명의 실시 예들에 따른 데이터 저장 시스템이 적용되는 시스템들을 개략적으로 보여주는 도면들이다.
도 27은 본 발명의 실시 예에 따른 메모리 카드를 개략적으로 보여주는 블럭도이다.
도 28은 본 발명의 실시 예에 따른 디지털 스틸 카메라를 개략적으로 보여주는 블럭도이다.
도 29는 도 27의 메모리 카드가 사용되는 다양한 시스템을 예시적으로 설명하는 도면이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
도면들에 있어서, 본 발명의 실시 예들은 도시된 특정 형태로 제한되는 것이 아니며 명확성을 기하기 위하여 과장된 것이다. 또한, 명세서 전체에 걸쳐서 동일한 참조 번호로 표시된 부분들은 동일한 구성 요소를 나타낸다.
본 명세서에서 특정한 용어들이 사용되었으나, 이는 본 발명을 설명하기 위한 목적에서 사용된 것이며, 의미 한정이나 특허 청구 범위에 기재된 본 발명의 권리 범위를 제한하기 위하여 사용된 것은 아니다. 본 명세서에서 ‘및/또는’이란 표현은 전후에 나열된 구성요소들 중 적어도 하나를 포함하는 의미로 사용된다. 또한, ‘연결되는/결합되는’이란 표현은 다른 구성요소와 직접적으로 연결되거나 다른 구성요소를 통해 간접적으로 연결되는 것을 포함하는 의미로 사용된다. 본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 명세서에서 사용되는 ‘포함한다’ 또는 ‘포함하는’으로 언급된 구성요소, 단계, 동작 및 소자는 하나 이상의 다른 구성요소, 단계, 동작 및 소자의 존재 또는 추가를 의미한다.
이하, 도면들을 참조하여 본 발명의 실시 예에 대해 상세히 설명하기로 한다.
도 1은 멀티-레벨 메모리 장치에 적용되는 어드레스 스크램블 방식을 예시적으로 보여주는 도면이다.
메모리 셀에 저장되는 데이터 비트들의 수가 증가함에 따라, 멀티-레벨(또는, 멀티-비트) 데이터를 저장하는 메모리 장치(이하, 멀티-레벨 메모리 장치라 칭함)의 신뢰성을 확보하는 것이 점차적으로 어려워지고 있다. 신뢰성을 떨어뜨리는 요인들 중 대표적인 하나는 인접 메모리 셀들 사이의 커플링으로 인한 문턱 전압들의 변화일 것이다. 예를 들면, 이전에 프로그램된 메모리 셀의 문턱 전압은 인접한 메모리 셀이 프로그램될 때 발생하는 커플링으로 인해서 변화될 수 있다. 그러한 커플링을 효율적으로 관리하기 위해서 어드레스 스크램블 방식이 멀티-레벨 메모리 장치에 적용될 수 있다.
설명의 간략화를 위해서, 하나의 메모리 셀에 3-비트 데이터가 저장된다는 가정하에 어드레스 스크램블 방식이 설명될 것이다. 또한, 도시의 편의상, 도 1에는 단지 4개의 워드 라인들(WL0~WL3)이 도시 되어있다. 복수의 메모리 셀들(MC)이 워드 라인들(WL0~WL3) 각각에 연결될 것이다.
먼저, 하위 2-비트 데이터가 첫 번째 워드 라인(WL0)에 연결된 메모리 셀들 각각에 저장되는 1-스텝 프로그램 동작이 수행될 것이다. 즉, 1-스텝 프로그램 동작 동안, 2개의 페이지 데이터가 첫 번째 워드 라인(WL0)에 연결된 메모리 셀들에 저장될 것이다. 이는 도 1에서 ①로 표기되어 있다. 그 다음에, 두 번째 워드 라인(WL1)에 연결된 메모리 셀들에 대해서 1-스텝 프로그램 동작이 수행될 것이다. 이는 도 1에서 ②로 표기되어 있다.
두 번째 워드 라인(WL1)에 대한 1-스텝 프로그램 동작이 수행된 후, 두 번째 워드 라인(WL1)의 아래에 위치하고 하위 2-비트 데이터가 프로그램된 첫 번째 워드 라인(WL0)에 연결된 메모리 셀들에 하위 2-비트와 상위 1-비트 데이터가 저장되는 2-스텝 프로그램 동작이 수행될 것이다. 이는 도 1에서 ③으로 표기되어 있다. 첫 번째 워드 라인(WL0)에 연결된 메모리 셀들에 대해서 2-스텝 프로그램 동작이 수행된 후, 세 번째 워드 라인(WL2)에 연결된 메모리 셀들에 대해서 1-스텝 프로그램 동작이 수행될 것이다. 이는 도 1에서 ④로 표기되어 있다.
세 번째 워드 라인(WL2)에 연결된 메모리 셀들에 대해서 1-스텝 프로그램 동작이 수행된 후, 하위 2-비트 데이터가 프로그램된 두 번째 워드 라인(WL1)에 연결된 메모리 셀들에 하위 2-비트와 상위 1-비트 데이터가 저장되는 2-스텝 프로그램 동작이 수행될 것이다. 이는 도 1에서 ⑤로 표기되어 있다.
두 번째 워드 라인(WL1)에 연결된 메모리 셀들에 대해서 2-스텝 프로그램 동작이 수행된 후, 첫 번째 워드 라인(WL0)에 연결된 메모리 셀들에 대해서 3-스텝 프로그램 동작이 수행될 것이다. 이는 도 1에서 ⑥으로 표기되어 있다. 이 후, 1-스텝 프로그램 동작, 2-스텝 프로그램 동작, 3-스텝 프로그램 동작들이 앞서 설명된 순서(도 1 참조)에 따라 순차적으로 수행될 것이다. 이렇게, 도 1에서 설명된 프로그램 순서에 따라 워드 라인들(WL0~WL3)이 선택되는 방식을 어드레스 스크램블 방식이라 칭한다.
1-스텝 프로그램 동작과 2-스텝 프로그램 동작이 완료되면, N-비트 데이터(N은 2 또는 그 보다 큰 정수)에 대응하는 문턱 전압 분포들(예를 들면, 2N개의 문턱 전압 분포들)이 모두 형성될 것이다. 2-스텝 프로그램 동작이 완료됨에 따라 모든 문턱 전압 분포들이 형성되더라도, 문턱 전압 분포들 사이의 마진(즉, 간격)은 문턱 전압 분포들을 명확하게 구분하기에 충분하지 않을 것이다. 문턱 전압 분포들을 명확하게 구분하기에 충분한 마진을 확보하기 위해서 3-스텝 프로그램 동작이 수행될 것이다. 3-스텝 프로그램 동작은 문턱 전압 분포들 각각의 폭을 좁히기 위해서 수행된다. 이를 위해서, 2-스텝 프로그램 동작에서 사용되는 문턱 전압 분포들의 검증 전압들보다 소정의 전압만큼 각각 높은 검증 전압들이 3-스텝 프로그램 동작에서 사용될 것이다. 이러한 프로그램 방식을 통해서 인접한 메모리 셀들 사이의 커플링을 줄이는 것이 가능하다. 이러한 프로그램 방법(또는 알고리즘)을 재프로그램 방법(또는 재프로그램 알고리즘)이라 칭한다.
예시적으로, 3-비트 데이터를 메모리 셀에 저장하기 위한 재프로그램 방법, 즉, 1-스텝 프로그래밍, 2-스텝 프로그래밍, 3-스텝 프로그래밍이 2-비트 데이터 또는 4-비트 데이터를 메모리 셀에 저장하기 위한 재프로그램 방법에도 모두 적용될 수 있음은 잘 이해될 것이다.
앞서 설명된 재프로그램 방법을 통해 멀티-레벨(또는, 멀티-비트) 데이터를 메모리 셀에 저장하기 위해서, 임의의 워드 라인에 대한 3-스텝 프로그램 동작이 종료될 때까지 임의의 워드 라인의 메모리 셀들에 저장된 데이터를 유지할 필요가 있다. 예를 들면, 1-스텝 프로그램 동작은 메모리 컨트롤러에서 멀티-레벨 메모리 장치에 제공되는 데이터에 의거해서 수행되고, 2-스텝 프로그램 동작은 1-스텝 프로그램 동작을 통해 메모리 셀에 저장된 데이터와 메모리 컨트롤러에서 제공되는 데이터에 의거해서 수행될 것이다. 3-스텝 프로그램 동작은 1-스텝 프로그램 동작과 2-스텝 프로그램 동작을 통해 메모리 셀에 저장된 데이터에 의거해서 수행될 것이다. 하지만, 앞서 설명된 바와 같이, 1-스텝 프로그램 동작과 2-스텝 프로그램 동작을 통해 메모리 셀에 저장된 데이터를 정확하게 읽는 것은 어려울 것이다. 이는 3-스텝 프로그램 동작에 필요한 데이터는 메모리 컨트롤러에서 멀티-레벨 메모리 장치로 제공되어야 함을 의미한다. 그러한 까닭에, 임의의 워드 라인에 대한 3-스텝 프로그램 동작이 종료될 때까지 임의의 워드 라인의 메모리 셀들에 저장된 데이터가 메모리 컨트롤러에 의해서 유지될 것이다. 이는 3-스텝 프로그램 동작에 필요한 데이터를 유지하기 위한 큰 용량의 버퍼 메모리가 메모리 컨트롤러에 포함됨을 의미한다.
도 2는 메모리 셀이 3-비트 데이터를 저장하고, 3-스텝 프로그램 방식에 따라 프로그램 동작이 수행될 때 변화되는 문턱 전압 분포를 예시적으로 보여주는 도면이다.
먼저, 선택된 워드 라인(예를 들면, 도 1의 첫 번째 워드 라인(WL0))의 메모리 셀들에는 2개의 페이지 데이터(즉, 제 1 및 제 2 페이지 데이터)가 저장될 것이다. 이때, 도 2의 박스(11)에 도시된 바와 같이, 소거 상태(E)에 대응하는 문턱 전압 분포에 속한 메모리 셀들은 프로그램될 데이터에 따라 프로그램 상태들(Q1, Q2, Q3)에 각각 대응하는 문턱 전압 분포들에 속한 문턱 전압을 갖도록 프로그램될 것이다.
앞서 설명된 바와 같이, 선택된 워드 라인(WL0)에 속한 1-스텝 프로그램된 메모리 셀들에 대한 2-스텝 프로그램 동작은 인접한 워드 라인(예를 들면, WL1)에 속한 메모리 셀들에 대한 1-스텝 프로그램 동작 이후에 수행될 것이다. 이때, 도 2의 박스(12)에 도시된 바와 같이, 선택 워드 라인(WL0)에 속한 1-스텝 프로그램된 메모리 셀들의 산포들이 인접한 워드 라인(예를 들면, WL1)에 속한 메모리 셀들이 프로그램될 때 생기는 커플링으로 인해 넓어질 것이다.
그 다음에, 선택된 워드 라인(WL0)의 메모리 셀들에는 상위 1개의 페이지 데이터(즉, 제 3 페이지 데이터)가 더 저장될 것이다. 이때, 도 2의 박스(13)에 도시된 바와 같이, 이전 상태에 대응하는 문턱 전압 분포에 속한 메모리 셀들은 프로그램될 데이터에 따라 대응하는 문턱 전압 분포들에 속한 문턱 전압을 갖도록 프로그램될 것이다. 예를 들면, 소거 상태(E)에 대응하는 문턱 전압 분포에 속한 메모리 셀들은 프로그램될 데이터에 따라 프로그램 상태(P1')에 대응하는 문턱 전압 분포에 속한 문턱 전압을 갖도록 프로그램될 것이다. 프로그램 상태(Q1)에 대응하는 문턱 전압 분포에 속한 메모리 셀들은 프로그램될 데이터에 따라 프로그램 상태들(P2'~P3') 각각에 대응하는 문턱 전압 분포들에 속한 문턱 전압을 갖도록 프로그램될 것이다. 프로그램 상태(Q2)에 대응하는 문턱 전압 분포에 속한 메모리 셀들은 프로그램될 데이터에 따라 프로그램 상태들(P4'~P5') 각각에 대응하는 문턱 전압 분포들에 속한 문턱 전압을 갖도록 프로그램될 것이다. 프로그램 상태(Q3)에 대응하는 문턱 전압 분포에 속한 메모리 셀들은 프로그램될 데이터에 따라 프로그램 상태들(P6'~P7') 각각에 대응하는 문턱 전압 분포들에 속한 문턱 전압을 갖도록 프로그램될 것이다.
앞서 설명된 바와 같이, 선택 워드 라인(WL0)에 속한 2-스텝 프로그램된 메모리 셀들에 대한 3-스텝 프로그램 동작은 인접한 워드 라인들(예를 들면, WL1 및 WL2)에 대한 2-스텝 프로그램 동작 및 1-스텝 프로그램 동작 이후에 수행될 것이다. 이때, 도 2의 박스(14)에 도시된 바와 같이, 선택 워드 라인(WL0)에 속한 2-스텝 프로그램된 메모리 셀들의 산포들이 인접한 워드 라인들(예를 들면, WL1 및 WL2)에 속한 메모리 셀들이 프로그램될 때 생기는 커플링으로 인해서 넓어질 것이다. 이러한 이유로, 2-스텝 프로그램된 메모리 셀들에 저장된 데이터들을 정확하게 읽는 것이 어렵다.
도 2의 박스(15)에 도시된 바와 같이, 선택 워드 라인(WL0)에 속한 메모리 셀들은 최종 문턱 전압 분포들(P1~P7)을 갖도록 프로그램될 것이다. 이러한 동작은 3-스텝 프로그램 동작을 통해 수행된다. 앞서 설명된 바와 같이, 3-스텝 프로그램 동작은 이전에 프로그램된 데이터(예를 들면, 제 1 내지 제 3 페이지 데이터)를 필요로 한다. 3-스텝 프로그램 동작은 선택 워드 라인(WL0)에 속한 메모리 셀들에 저장된 이전에 프로그램된 데이터를 정확하게 읽는 것이 어렵기 때문에 메모리 컨트롤러로부터 제공되는 데이터(또는, 메모리 장치에 의해서 유지되는 데이터)에 의거해서 수행될 것이다.
도 2의 박스(16)에 도시된 바와 같이, 3-스텝 프로그램된 메모리 셀들의 문턱 전압 분포들 역시 인접한 워드 라인들에 속한 메모리 셀들이 프로그램될 때 생기는 커플링으로 인해 넓어질 수 있다. 이후, 각 워드 라인에 대한 1-스텝 프로그램 동작, 2-스텝 프로그램 동작, 3-스텝 프로그램 동작이 도 1에서 설명된 프로그램 순서에 따라 수행되며, 이는 도 2에서 설명된 것과 동일한 방식으로 수행될 것이다.
도 3은 메모리 셀이 4-비트 데이터를 저장하고, 3-스텝 프로그램 방식에 따라 프로그램 동작이 수행될 때 변화되는 문턱 전압 분포를 예시적으로 보여주는 도면이다.
먼저, 선택된 워드 라인(예를 들면, 도 1의 첫 번째 워드 라인(WL0))의 메모리 셀들에는 2개의 페이지 데이터(즉, 제 1 및 제 2 페이지 데이터)가 저장될 것이다. 이때, 도 3의 박스(21)에 도시된 바와 같이, 소거 상태(E)에 대응하는 문턱 전압 분포에 속한 메모리 셀들은 프로그램될 데이터에 따라 프로그램 상태들(Q1, Q2, Q3)에 각각 대응하는 문턱 전압 분포들에 속한 문턱 전압을 갖도록 프로그램될 것이다.
앞서 설명된 바와 같이, 선택된 워드 라인(WL0)에 속한 1-스텝 프로그램된 메모리 셀들에 대한 2-스텝 프로그램 동작은 인접한 워드 라인(예를 들면, WL1)에 속한 메모리 셀들에 대한 1-스텝 프로그램 동작 이후에 수행될 것이다. 이때, 도 3의 박스(22)에 도시된 바와 같이, 선택 워드 라인(WL0)에 속한 1-스텝 프로그램된 메모리 셀들의 산포들이 인접한 워드 라인(예를 들면, WL1)에 속한 메모리 셀들이 프로그램될 때 생기는 커플링으로 인해 넓어질 것이다.
그 다음에, 선택된 워드 라인(WL0)의 메모리 셀들에는 상위 2개의 페이지 데이터(즉, 제 3 및 제 4 페이지 데이터)가 더 저장될 것이다. 이때, 도 3의 박스(23)에 도시된 바와 같이, 이전 상태에 대응하는 문턱 전압 분포에 속한 메모리 셀들은 프로그램될 데이터에 따라 대응하는 문턱 전압 분포들에 속한 문턱 전압을 갖도록 프로그램될 것이다. 예를 들면, 소거 상태(E)에 대응하는 문턱 전압 분포에 속한 메모리 셀들은 프로그램될 데이터에 따라 프로그램 상태들(P1'~P3') 각각에 대응하는 문턱 전압 분포들에 속한 문턱 전압을 갖도록 프로그램될 것이다. 프로그램 상태(Q1)에 대응하는 문턱 전압 분포에 속한 메모리 셀들은 프로그램될 데이터에 따라 프로그램 상태들(P4'~P7') 각각에 대응하는 문턱 전압 분포들에 속한 문턱 전압을 갖도록 프로그램될 것이다. 프로그램 상태(Q2)에 대응하는 문턱 전압 분포에 속한 메모리 셀들은 프로그램될 데이터에 따라 프로그램 상태들(P8'~P11') 각각에 대응하는 문턱 전압 분포들에 속한 문턱 전압을 갖도록 프로그램될 것이다. 프로그램 상태(Q3)에 대응하는 문턱 전압 분포에 속한 메모리 셀들은 프로그램될 데이터에 따라 프로그램 상태들(P12'~P15') 각각에 대응하는 문턱 전압 분포들에 속한 문턱 전압을 갖도록 프로그램될 것이다.
앞서 설명된 바와 같이, 선택 워드 라인(WL0)에 속한 2-스텝 프로그램된 메모리 셀들에 대한 3-스텝 프로그램 동작은 인접한 워드 라인들(예를 들면, WL1 및 WL2)에 대한 2-스텝 프로그램 동작 및 1-스텝 프로그램 동작 이후에 수행될 것이다. 이때, 도 3의 박스(24)에 도시된 바와 같이, 선택 워드 라인(WL0)에 속한 2-스텝 프로그램된 메모리 셀들의 산포들이 인접한 워드 라인들(예를 들면, WL1 및 WL2)에 속한 메모리 셀들이 프로그램될 때 생기는 커플링으로 인해서 넓어질 것이다. 이러한 이유로, 2-스텝 프로그램된 메모리 셀들에 저장된 데이터들을 정확하게 읽는 것이 어렵다.
도 3의 박스(25)에 도시된 바와 같이, 선택 워드 라인(WL0)에 속한 메모리 셀들은 최종 문턱 전압 분포들(P1~P15)을 갖도록 프로그램될 것이다. 이러한 동작은 3-스텝 프로그램 동작을 통해 수행된다. 앞서 설명된 바와 같이, 3-스텝 프로그램 동작은 이전에 프로그램된 데이터(예를 들면, 제 1 내지 제 4 페이지 데이터)를 필요로 한다. 3-스텝 프로그램 동작은 선택 워드 라인(WL0)에 속한 메모리 셀들에 저장된 이전에 프로그램된 데이터를 정확하게 읽는 것이 어렵기 때문에 메모리 컨트롤러로부터 제공되는 데이터(또는, 메모리 장치에 의해서 유지되는 데이터)에 의거해서 수행될 것이다.
도 3의 박스(26)에 도시된 바와 같이, 3-스텝 프로그램된 메모리 셀들의 문턱 전압 분포들 역시 인접한 워드 라인들에 속한 메모리 셀들이 프로그램될 때 생기는 커플링으로 인해 넓어질 수 있다. 이후, 각 워드 라인에 대한 1-스텝 프로그램 동작, 2-스텝 프로그램 동작, 3-스텝 프로그램 동작이 도 1에서 설명된 프로그램 순서에 따라 수행되며, 이는 도 3에서 설명된 것과 동일한 방식으로 수행될 것이다.
도 4는 본 발명의 실시 예에 따른 데이터 저장 시스템을 개략적으로 보여주는 블럭도이다. 도 4를 참조하면, 데이터 저장 시스템(100)은 호스트(110), 메모리 컨트롤러(120), 및 불휘발성 메모리 장치로서 멀티-레벨 메모리 장치(130)를 포함할 것이다.
멀티-레벨 메모리 장치(130)는 하나 또는 그보다 많은 메모리 장치들로 구성될 수 있다. 멀티-레벨 메모리 장치(130)와 메모리 컨트롤러(120)는, 데이터 저장 장치로서, 메모리 카드, 솔리드 스테이트 드라이브(Solid State Drive: SSD), 메모리 스틱, 또는 그와 같은 것으로 구성될 수 있다. 멀티-레벨 메모리 장치(130)는 복수의 메모리 블럭들을 포함하며, 메모리 블럭들 각각은 행들과 열들로 배열된 복수의 메모리 셀들을 포함할 것이다. 메모리 셀들 각각은 멀티-레벨(또는, 멀티-비트) 데이터를 저장할 것이다. 메모리 셀들은 2차원 어레이 구조를 갖도록 또는 3차원(또는, 수직) 어레이 구조를 갖도록 배열될 수 있다.
본 발명의 실시 예에 따르면, 멀티-레벨 메모리 장치(130)의 메모리 블럭들은 적어도 제 1 영역(131)과 제 2 영역(133)으로 구분될 것이다. 여기에서, 제 1 및 제 2 영역들(131 및 133)은 물리적인 것이 아니라 논리적으로 구분될 수 있음은 잘 이해될 것이다. 즉, 제 1 및 제 2 영역들(131 및 133)은 논리적으로 가변 가능할 것이다. 제 1 영역(131)은 사용자가 접근할 수 없는 감춰진 영역(hidden area)이고, 제 2 영역(133)은 사용자가 접근할 수 있는 사용자 영역(user area)일 것이다.
제 1 영역(131)에 속한 메모리 블럭들은 제 2 영역(133)에 속한 메모리 블럭들과 다른 방식으로 프로그램될 것이다. 예를 들면, 제 1 영역(131)에 속한 메모리 블럭들은 싱글-비트 프로그램 방식(이하, SLC 프로그램 방식이라 칭함)에 따라 프로그램되고, 제 2 영역(133)에 속한 메모리 블럭들은 멀티-비트 프로그램 방식(이하, MLC 프로그램 방식이라 칭함)에 따라 프로그램될 것이다. 다른 예로써, 제 1 영역(131)에 속한 메모리 블럭들과 제 2 영역(133)에 속한 메모리 블럭들은 MLC 프로그램 방식에 따라 프로그램될 것이다. 예를 들면, 제 2 영역(133)에 속한 메모리 블럭들은 앞서 설명된 N-스텝 프로그램 방식에 따라 프로그램될 수 있다. 다시 말해서, 제 1 영역(131)에 속한 메모리 셀들 각각은 1-비트 데이터를 저장하고, 제 2 영역(133)에 속한 메모리 셀들 각각은 N-비트 데이터들(N은 3 또는 그보다 큰 정수)을 저장할 것이다. 또한, 제 1 영역(131)에 속한 메모리 셀들 각각은 제 2 영역(133)에 속한 메모리 셀들 각각에 저장되는 N-비트(N은 3 또는 그보다 큰 정수)보다 작은 수의 데이터 비트들을 저장할 것이다.
제 1 영역(131)에 포함되는 메모리 블럭의 수는 제 2 영역(133)에 속한 메모리 셀들이 저장하는 데이터 비트 수에 따라 가변될 것이다. 예를 들면, 제 2 영역(133)에 속한 메모리 셀들이 N-비트 데이터들(N은 3 또는 그보다 큰 정수)을 저장하는 경우, 제 1 영역(131)은 적어도 N개의 메모리 블럭들을 포함할 것이다. 그리고 제 2 영역(133)에 속한 메모리 셀들에 저장될 N-비트 데이터들(N은 3 또는 그보다 큰 정수)은 대응되는 제 1 영역(131)의 메모리 블럭들에 각각 저장될 것이다.
조금 더 구체적으로 설명하면 다음과 같다. 제 2 영역(133)에 속한 메모리 셀들 각각에 3-비트 데이터가 저장됨을 가정하자. 이 경우, 제 1 영역(131)은 적어도 3개의 메모리 블럭들을 포함할 것이다. 제 2 영역(133)에 속한 메모리 셀들의 최하위 비트(즉, 첫 번째 비트) 데이터들은 제 1 영역(131)의 첫 번째 메모리 블럭에 저장될 것이다. 제 2 영역(133)에 속한 메모리 셀들의 중간 비트(즉, 두 번째 비트) 데이터들은 제 1 영역(131)의 두 번째 메모리 블럭에 저장될 것이다. 그리고 제 2 영역(133)에 속한 메모리 셀들의 최상위 비트(즉, 세 번째 비트) 데이터들은 제 1 영역(131)의 세 번째 메모리 블럭에 저장될 것이다. 이러한 저장 동작은 이후 상세히 설명될 것이다.
계속해서 도 4를 참조하면, 메모리 컨트롤러(120)는 호스트(110)의 요청에 응답하여 멀티-레벨 메모리 장치(130)를 제어하도록 구성될 것이다. 메모리 컨트롤러(120)는 버퍼 메모리(121)를 포함할 것이다. 버퍼 메모리(121)는 호스트(110)로부터 전송된 데이터를 임시 저장하는 데 그리고 멀티-레벨 메모리 장치(130)로부터 읽혀진 데이터를 임시 저장하는데 사용될 것이다.
메모리 컨트롤러(120)는 정적 스케쥴링 방식(static scheduling manner)으로 멀티-레벨 메모리 장치(130)의 프로그램 동작을 제어할 것이다. 예를 들면, 멀티-레벨 메모리 장치(130)의 제 1 영역(131)에 대한 최소 프로그램 단위의 데이터(예를 들면, 페이지 데이터)가 버퍼 메모리(121)에 저장되면, 메모리 컨트롤러(120)는 최소 프로그램 단위의 데이터가 제 1 영역(131)에 저장되도록 멀티-레벨 메모리 장치(130)를 제어할 것이다. 이러한 동작을 버퍼 프로그램 동작이라 정의한다. 버퍼 프로그램 동작은 버퍼 메모리(121)에 저장된 데이터와 관련된 어드레스 정보에 따라 수행될 것이다. 제 2 영역(133)에 대한 최소 프로그램 단위의 데이터가 제 1 영역(131)에 저장되면, 메모리 컨트롤러(120)는 제 2 영역(133)에 대한 최소 프로그램 단위의 데이터가 제 2 영역(133)에 저장되도록 멀티-레벨 메모리 장치(130)를 제어할 것이다. 이러한 동작을 메인 프로그램 동작이라 정의한다. 메인 프로그램 동작은 제 1 영역(131)에 저장된 데이터와 관련된 어드레스 정보에 따라 수행될 것이다. 버퍼 프로그램 동작과 메인 프로그램 동작은 이후 상세히 설명될 것이다.
예시적으로, 제 1 영역(131)에 대한 최소 프로그램 단위와 제 2 영역(133)에 대한 최소 프로그램 단위는 프로그램 방식, 셀 당 저장되는 데이터 비트 수 등에 다라 다양하게 결정될 수 있다. 본 발명의 실시 예에 따르면, 제 1 영역(131)에 대한 최소 프로그램 단위와 제 2 영역(133)에 대한 최소 프로그램 단위는 서로 다를 것이다.
예시적으로, 버퍼 프로그램 동작을 통해 제 1 영역(131)에 데이터를 저장하고, 메인 프로그램 동작을 통해 제 2 영역(133)에 데이터를 저장함으로써 메모리 컨트롤러(120)의 버퍼 메모리(121)의 크기를 최소화시킬 수 있다. 다시 말해서, 버퍼 메모리(121)에 앞서 설명된 3-스텝 프로그램 동작을 위한 데이터를 유지할 필요가 없다. 그러한 까닭에, 메모리 컨트롤러(120)의 버퍼 메모리(121)의 크기를 최소화시킬 수 있다.
도 5는 셀 당 3-비트 데이터가 저장되고 3-스텝 재프로그램 방법이 적용되는 멀티-레벨 메모리 장치의 어드레스 스크램블 방식을 예시적으로 보여주는 도면이다. 도 6은 도 4에 도시된 데이터 저장 시스템의 프로그램 동작 동안 데이터 흐름을 개략적으로 보여주는 도면이다. 이하, 본 발명의 실시 예에 따른 데이터 저장 시스템의 프로그램 동작이 참조 도면들에 의거하여 상세히 설명될 것이다.
설명의 간략화를 위해서, 도 5에 도시된 바와 같이, 제 1 영역(도 4의 131 참조) 및 제 2 영역(도 4의 133 참조)의 메모리 블럭들 각각은 64개의 워드 라인들(WL0~WL63)을 포함하는 것을 가정하고, 메모리 셀들 각각은 3-비트 데이터를 저장하는 것을 가정한다. 이러한 가정에 따르면, 메모리 블럭들 각각에는 192개의 최소 프로그램 단위의 데이터들(이하, 페이지 데이터들이라 칭함)이 저장될 것이다. 그리고, 앞서 설명한 바와 같이, 메모리 셀들 각각이 3-비트 데이터를 저장하기 때문에 제 1 영역(131)은 3개의 블럭들을 포함할 것이다. 제 1 영역(131)의 첫 번째 블럭(BLK0)은 3-비트 데이터의 최하위 페이지 데이터를 저장하기 위해 사용되고, 두 번째 블럭(BLK1)은 3-비트 데이터의 중간 페이지 데이터를 저장하기 위해 사용되고, 세 번째 블럭(BLK2)은 3-비트 데이터의 최상위 페이지 데이터를 저장하기 위해 사용될 것이다.
호스트(도 4의 110 참조)로부터 제공된 제 1 영역(도 4의 131)에 대한 페이지 데이터(Di, i=0~191)가 메모리 컨트롤러(120)의 버퍼 메모리(121)에 저장되면, 버퍼 메모리(121)에 저장된 페이지 데이터(Di)는 버퍼 프로그램 동작을 통해 멀티-레벨 메모리 장치(130)의 제 1 영역(131)에 프로그램될 것이다. 앞서 설명된 바와 같이, 페이지 데이터(Di)는 SLC 프로그램 동작을 통해 제 1 영역(131)에 프로그램될 것이다.
버퍼 프로그램 동작 시, 페이지 데이터(Di)가 저장될 제 1 영역(131)의 블럭은 멀티-레벨을 구성하는 페이지 데이터(Di)의 순서에 따라 정해질 것이다. 예를 들면, 멀티-레벨의 최하위 비트로 구성되는 페이지 데이터(Di)는 제 1 영역(131)의 블럭(BLK0)에, 멀티-레벨의 중간 비트로 구성되는 페이지 데이터(Di)는 제 1 영역(131)의 블럭(BLK1)에, 멀티-레벨의 최상위 비트로 구성되는 페이지 데이터(Di)는 제 1 영역(131)의 블럭(BLK2)에 저장될 것이다. 또한, 버퍼 프로그램 동작 시, 페이지 데이터(Di)가 저장될 워드 라인은 메인 프로그램을 통해 페이지 데이터(Di)가 저장될 제 2 영역의 워드 라인에 따라 정해질 것이다. 다시 말해서, 버퍼 프로그램 동작 시, 페이지 데이터(Di)는 제 2 영역의 워드 라인과 동일한 위치의 제 1 영역의 워드 라인에 저장될 것이다. 본 발명의 실시 예에 따른 이러한 버퍼 프로그램 동작을 병렬 버퍼 프로그램 동작이라 정의한다.
메모리 컨트롤러(120)는 제 2 영역(133)에 대한 페이지 데이터가 제 1 영역(131)에 모아졌는 지의 여부를 판별할 것이다. 판별 결과에 따라 제 2 영역(133)에 대한 메인 프로그램 동작, 즉, 1-스텝 프로그램 동작, 2-스텝 프로그램 동작, 3-스텝 프로그램 동작이 수행될 것이다. 제 2 영역(133)에 대한 1-스텝 프로그램 동작, 2-스텝 프로그램 동작, 3-스텝 프로그램 동작은 도 5에 도시된 어드레스 스크램블 순서에 따라 수행될 것이다.
조금 더 구체적으로 설명하면 다음과 같다. 도 5 및 도 6을 참조하면, 호스트(110)로부터 메모리 컨트롤러(120)의 버퍼 메모리(121)로 제 1 영역(131)에 대한 페이지 데이터(D0)가 전달되면, 버퍼 메모리(121)에 저장된 페이지 데이터(D0)는 메모리 컨트롤러(120)의 제어에 따라 제 1 영역(131)에 프로그램될 것이다. 페이지 데이터(D0)는 워드 라인(WL0)에 저장될 페이지 데이터이고(도 5 참조), 멀티-레벨의 최하위 비트로 구성된다. 그러한 까닭에, 페이지 데이터(D0)는 제 1 영역(131)의 첫 번째 블럭(BLK0)의 워드 라인(WL0)에 프로그램될 것이다.
메모리 컨트롤러(120)는 제 2 영역(133)에 대한 페이지 데이터가 제 1 영역(131)에 모아졌는 지의 여부를 판별하고, 판별 결과에 따라 메인 프로그램 동작을 제어할 것이다. 제 1 영역(131)에는 단지 하나의 페이지 데이터(D0)가 저장되어 있기 때문에, 메인 프로그램 동작은 수행되지 않을 것이다.
계속해서, 호스트(110)로부터 메모리 컨트롤러(120)의 버퍼 메모리(121)로 제 1 영역(131)에 대한 페이지 데이터(D1)가 전달되면, 버퍼 메모리(121)에 저장된 페이지 데이터(D1)는 메모리 컨트롤러(120)의 제어에 따라 제 1 영역(131)에 프로그램될 것이다. 페이지 데이터(D1)는 워드 라인(WL0)에 저장될 페이지 데이터이고(도 5 참조), 멀티-레벨의 중간 비트로 구성된다. 그러한 까닭에, 페이지 데이터(D1)는 제 1 영역(131)의 두 번째 블럭(BLK1)의 워드 라인(WL0)에 프로그램될 것이다.
제 2 영역(133)에 대한 페이지 데이터(예를 들면, 1-스텝 프로그램 동작에 필요한 2개의 페이지 데이터)가 제 1 영역(131)에 모아졌기 때문에, 메모리 컨트롤러(120)는 제 1 영역(131)에 저장된 페이지 데이터들(D0 및 D1)이 제 2 영역(133)에 프로그램되도록 멀티-레벨 메모리 장치(130)를 제어할 것이다. 즉, 제 1 영역(131)에 저장된 페이지 데이터들(D0 및 D1)에 의거해서 워드 라인(WL0)에 대한 1-스텝 프로그램 동작이 수행될 것이다.
동일한 방식으로, 페이지 데이터(D2)는 제 1 영역(131)의 첫 번째 블럭(BLK0)의 워드 라인(WL1)에 프로그램되고, 페이지 데이터(D3)는 제 1 영역(131)의 두 번째 블럭(BLK1)의 워드 라인(WL1)에 프로그램될 것이다. 제 2 영역(133)에 대한 페이지 데이터(예를 들면, 1-스텝 프로그램 동작에 필요한 2개의 페이지 데이터)가 제 1 영역(131)에 모아졌기 때문에, 메모리 컨트롤러(120)는 제 1 영역(131)에 저장된 페이지 데이터들(D2 및 D3)이 제 2 영역(133)에 프로그램되도록 멀티-레벨 메모리 장치(130)를 제어할 것이다. 즉, 제 1 영역(131)에 저장된 페이지 데이터들(D2 및 D3)에 의거해서 워드 라인(WL1)에 대한 1-스텝 프로그램 동작이 수행될 것이다.
계속해서, 호스트(110)로부터 메모리 컨트롤러(120)의 버퍼 메모리(121)로 제 1 영역(131)에 대한 페이지 데이터(D4)가 전달되면, 버퍼 메모리(121)에 저장된 페이지 데이터(D4)는 메모리 컨트롤러(120)의 제어에 따라 제 1 영역(131)에 프로그램될 것이다. 페이지 데이터(D4)는 워드 라인(WL0)에 저장될 데이터이고(도 5 참조), 멀티-레벨의 최상위 비트로 구성된다. 그러한 까닭에, 페이지 데이터(D4)는 제 1 영역(131)의 세 번째 블럭(BLK2)의 워드 라인(WL0)에 프로그램될 것이다.
제 2 영역(133)에 대한 페이지 데이터(예를 들면, 2-스텝 프로그램 동작에 필요한 3개의 페이지 데이터)가 제 1 영역(131)에 모아졌기 때문에, 메모리 컨트롤러(120)는 제 1 영역(131)에 저장된 페이지 데이터들(D0, D1, D4)이 제 2 영역(133)에 프로그램되도록 멀티-레벨 메모리 장치(130)를 제어할 것이다. 즉, 제 1 영역(131)에 저장된 페이지 데이터들(D0, D1, D4)에 의거해서 워드 라인(WL0)에 대한 2-스텝 프로그램 동작이 수행될 것이다.
동일한 방식으로, 페이지 데이터(D5)는 제 1 영역(131)의 첫 번째 블럭(BLK0)의 워드 라인(WL2)에 프로그램되고, 페이지 데이터(D6)는 제 1 영역(131)의 두 번째 블럭(BLK1)의 워드 라인(WL2)에 프로그램될 것이다. 제 2 영역(133)에 대한 페이지 데이터(예를 들면, 1-스텝 프로그램 동작에 필요한 2개의 페이지 데이터)가 제 1 영역(131)에 모아졌기 때문에, 메모리 컨트롤러(120)는 제 1 영역(131)에 저장된 페이지 데이터들(D5 및 D6)이 제 2 영역(133)에 프로그램되도록 멀티-레벨 메모리 장치(130)를 제어할 것이다. 즉, 제 1 영역(131)에 저장된 페이지 데이터들(D5 및 D6)에 의거해서 워드 라인(WL2)에 대한 1-스텝 프로그램 동작이 수행될 것이다.
계속해서, 페이지 데이터(D7)는 제 1 영역(131)의 세 번째 블럭(BLK2)의 워드 라인(WL1)에 프로그램될 것이다. 제 2 영역(133)에 대한 페이지 데이터(예를 들면, 2-스텝 프로그램 동작에 필요한 3개의 페이지 데이터)가 제 1 영역(131)에 모아졌기 때문에, 메모리 컨트롤러(120)는 제 1 영역(131)에 저장된 페이지 데이터들(D2, D3, D7)이 제 2 영역(133)에 프로그램되도록 멀티-레벨 메모리 장치(130)를 제어할 것이다. 즉, 제 1 영역(131)에 저장된 페이지 데이터들(D2, D3, D7)에 의거해서 워드 라인(WL1)에 대한 2-스텝 프로그램 동작이 수행될 것이다.
워드 라인(WL1)에 대한 2-스텝 프로그램 동작이 수행된 후, 제 1 영역(131)에 저장된 페이지 데이터들(D0, D1, D4)에 의거해서 워드 라인(WL0)에 대한 3-스텝 프로그램 동작이 수행될 것이다. 이후, 제 1 영역(131)에 페이지 데이터(D191)가 저장되기 이전까지, 나머지 페이지 데이터들(D8~D190)에 대한 1-스텝 프로그램 동작, 2-스텝 프로그램 동작, 3-스텝 프로그램 동작이 앞서 설명된 방식과 동일하게 수행될 것이다.
계속해서, 페이지 데이터(D191)는 제 1 영역(131)의 세 번째 블럭(BLK2)의 워드 라인(WL63)에 프로그램될 것이다. 제 2 영역(133)에 대한 페이지 데이터(예를 들면, 2-스텝 프로그램 동작에 필요한 3개의 페이지 데이터)가 제 1 영역(131)에 모아졌기 때문에, 메모리 컨트롤러(120)는 제 1 영역(131)에 저장된 페이지 데이터들(D188, D189, D191)이 제 2 영역(133)에 프로그램되도록 멀티-레벨 메모리 장치(130)를 제어할 것이다. 즉, 제 1 영역(131)에 저장된 페이지 데이터들(D188, D189, D191)에 의거해서 워드 라인(WL63)에 대한 2-스텝 프로그램 동작이 수행될 것이다.
워드 라인(WL63)에 대한 2-스텝 프로그램 동작이 수행된 후, 제 1 영역(131)에 저장된 페이지 데이터들(D185, D186, D190)에 의거해서 워드 라인(WL62)에 대한 3-스텝 프로그램 동작이 수행될 것이다. 마지막으로, 제 1 영역(131)에 저장된 페이지 데이터들(D188, D189, D191)에 의거해서 워드 라인(WL63)에 대한 3-스텝 프로그램 동작이 수행될 것이다.
도 7은 도 4에 도시된 데이터 저장 시스템의 읽기 동작을 설명하기 위한 순서도이다. 이하, 본 발명의 실시 예에 따른 데이터 저장 시스템의 읽기 동작이 참조 도면들에 의거해서 상세히 설명될 것이다.
S100 단계에서, 호스트(110)로부터 읽기 동작이 요청될 것이다. S110 단계에서, 메모리 컨트롤러(120)는 읽기 요청이 3-스텝 프로그램 동작이 완료된 워드 라인과 관련되었는 지의 여부를 판별할 것이다. 워드 라인들 각각에 대한 3-스텝 프로그램 동작이 완료되었는지의 여부는 어드레스 맵핑 정보에 의거해서 판별될 것이다.
읽기 요청이 3-스텝 프로그램 동작이 완료된 워드 라인과 관련된 것으로 판별된 경우, S120 단계에서, 메모리 컨트롤러(120)는 제 2 영역(133)으로부터 요청된 데이터가 읽혀지도록 멀티-레벨 메모리 장치(130)를 제어할 것이다. 제 2 영역(133)에 대한 읽기 동작은 MLC 읽기 동작일 것이다. 제 2 영역(133)으로부터 읽혀진 데이터는 메모리 컨트롤러(120)의 버퍼 메모리(121)에 임시 저장될 것이다. 이후, 절차는 S140 단계로 진행할 것이다.
반면, 읽기 요청이 3-스텝 프로그램 동작이 완료되지 않은 워드 라인과 관련된 것으로 판별된 경우, S130 단계에서, 메모리 컨트롤러(120)는 제 1 영역(131)으로부터 요청된 데이터가 읽혀지도록 멀티-레벨 메모리 장치(130)를 제어할 것이다. 제 1 영역(131)에 대한 읽기 동작은 SLC 읽기 동작일 것이다. 제 1 영역(131)으로부터 읽혀진 데이터는 메모리 컨트롤러(120)의 버퍼 메모리(121)에 임시 저장될 것이다. 이후, 절차는 S140 단계로 진행할 것이다. S140 단계에서, 버퍼 메모리(121)에 저장된 데이터는 호스트(110)로 전송될 것이다.
도 8 및 도 9는 도 6에서 설명된 일련의 병렬 버퍼 프로그램 동작과 메인 프로그램 동작에 따른 데이터 흐름을 개략적으로 보여주는 도면이다. 그리고 도 10 및 도 11은 본 발명의 실시 예에 따른 병렬 버퍼 프로그램 동작 시에 인가되는 워드 라인 전압을 예시적으로 보여주는 도면이다.
도 8을 참조하면, 페이지 데이터(D0)가 멀티-레벨 메모리 장치(130)의 페이지 버퍼(135)에 로드되고, 페이지 버퍼(135)에 로드된 페이지 데이터(D0)는 제 1 영역(131)의 첫 번째 블럭(131_0)의 워드 라인(WL0)에 저장될 것이다. 그 후에, 페이지 데이터(D1)가 멀티-레벨 메모리 장치(130)의 페이지 버퍼(135)에 로드되고, 페이지 버퍼(135)에 로드된 페이지 데이터(D1)는 제 1 영역(131)의 두 번째 블럭(131_1)의 워드 라인(WL0)에 저장될 것이다.
도 5 및 도 6에서 설명된 바와 같이, 페이지 데이터들(D0 및 D1) 저장될 워드 라인은 메인 프로그램을 통해 페이지 데이터들(D0 및 D1)이 저장될 제 2 영역의 워드 라인과 동일할 것이다. 그러한 까닭에, 페이지 데이터들(D0 및 D1)은 제 1 영역의 서로 다른 블럭들(131_0 및 131_1) 각각의 워드 라인(WL0)에 저장될 것이다. 이러한 병렬 버퍼 프로그램 동작에 따르면, 도 11에 도시된 바와 같이, 블럭 어드레스만을 변경함으로써(즉, BLK0에서 BLK1으로) 페이지 데이터들(D0 및 D1)을 동일한 워드 라인(WL0)에 저장할 수 있다. 다시 말해서, 한 번 생성한 프로그램 전압(Vpgm)과 패스 전압(Vpass)이 페이지 데이터들(D0 및 D1)을 모두 프로그램하는 데 사용될 수 있다. 그러한 까닭에, 프로그램 전압(Vpgm)과 패스 전압(Vpass)을 생성하기 위한 셋업 시간과 리셋 시간(예를 들면, 회복(recovery) 시간)이 감소될 수 있다.
계속해서 도 8을 참조하면, 제 1 영역(131)에 페이지 데이터들(D0 및 D1)이 저장되면, 즉, 제 2 영역(133)에 대한 페이지 데이터(예를 들면, 1-스텝 프로그램 동작에 필요한 2개의 페이지 데이터)가 제 1 영역(131)에 모아지면, 페이지 데이터들(D0 및 D1)이 페이지 버퍼(135)에 의해서 순차적으로 읽혀질 것이다. 이러한 읽기 동작을 병렬 버퍼 읽기 동작이라 정의한다. 병렬 버퍼 읽기 동작에 따르면, 도 10에 도시된 바와 같이, 블럭 어드레스만을 변경함으로써(즉, BLK0에서 BLK1으로) 페이지 데이터들(D0 및 D1)을 읽어올 수 있다. 다시 말해서, 한 번 생성한 선택 읽기 전압(Vrd)과 비선택 읽기 전압(Vread)이 페이지 데이터들(D0 및 D1)을 모두 읽는데 사용될 수 있다. 그러한 까닭에, 선택 읽기 전압(Vrd)과 비선택 읽기 전압(Vread)을 생성하기 위한 셋업 시간과 리셋 시간(예를 들면, 회복 시간)이 감소될 수 있다.
계속해서 도 8을 참조하면, 페이지 버퍼(135)에 저장된 페이지 데이터들(D0 및 D1)은 메인 프로그램 동작의 1-스텝 프로그램 동작에 따라 제 2 영역(133)에 저장될 것이다.
도 9를 참조하면, 페이지 데이터(D4)가 멀티-레벨 메모리 장치(130)의 페이지 버퍼(135)에 로드되고, 페이지 버퍼(135)에 로드된 페이지 데이터(D4)는 제 1 영역(131)의 세 번째 블럭(131_2)의 워드 라인(WL0)에 저장될 것이다. 도 5 및 도 6에서 설명된 바와 같이, 페이지 데이터(D4)가 저장될 워드 라인은 메인 프로그램을 통해 페이지 데이터(D4)가 저장될 제 2 영역의 워드 라인과 동일할 것이다. 그러한 까닭에, 페이지 데이터(D4)는 페이지 데이터들(D0 및 D1)이 저장된 블럭과 다른 블럭(즉, 세 번째 블럭(131_2))의 워드 라인(WL0)에 저장될 것이다.
제 2 영역(133)에 대한 페이지 데이터(예를 들면, 3-스텝 프로그램 동작에 필요한 3개의 페이지 데이터)가 제 1 영역(131)에 모아지면, 페이지 데이터들(D0, D1, D4)이 병렬 버퍼 읽기 동작에 따라 페이지 버퍼(135)에 의해서 순차적으로 읽혀질 것이다. 이러한 병렬 버퍼 읽기 동작에 따르면, 도 10에 도시된 바와 같이, 블럭 어드레스만을 변경함으로써(즉, BLK0에서 BLK2의 순서로) 페이지 데이터들(D0, D1, D4)을 읽어올 수 있다. 다시 말해서, 한 번 생성한 선택 읽기 전압(Vrd)과 비선택 읽기 전압(Vread)이 페이지 데이터들(D0, D1, D4)을 모두 읽는데 사용될 수 있다.
계속해서 도 9를 참조하면, 페이지 버퍼(135)에 임시 저장된 페이지 데이터들(D0, D1, D4)은 메인 프로그램 동작의 2-스텝 프로그램 동작에 따라 제 2 영역(133)에 저장될 것이다. 3-스텝 프로그램 동작 역시 2-스텝 프로그램 동작과 동일한 방식으로 수행될 것이다. 예를 들면, 제 2 영역(133)의 워드 라인(WL0)에 대한 3-스텝 프로그램 동작은 페이지 데이터들(D0, D1, D4)이 병렬 버퍼 읽기 동작에 따라 페이지 버퍼(135)에 의해서 순차적으로 읽혀지고, 페이지 버퍼(135)에 저장된 페이지 데이터들(D0, D1, D4)이 제 2 영역(133)에 프로그램되는 순서로 수행될 것이다.
도 12는 본 발명의 실시 예에 따른 병렬 버퍼 프로그램/읽기 동작을 수행하도록 멀티-레벨 메모리 장치에 제공되는 명령어를 설명하기 위한 도면이다.
도 12를 참조하면, 병렬 버퍼 프로그램 동작, 병렬 버퍼 읽기 동작, 및 메인 프로그램 동작을 수행하도록 제어하기 위한 명령어가 도시되어 있다. 이러한 명령어들은 메모리 컨트롤러(도 4의 120)로부터 멀티-레벨 메모리 장치(도 4의 130)로 제공될 것이다.
먼저, 병렬 버퍼 프로그램/읽기 동작을 수행하도록 제어하기 위한 병렬 버퍼 프로그램/읽기 시작 명령(PBSh)이 멀티-레벨 메모리 장치(130)로 제공될 것이다. 이러한 명령이 제공되면, 멀티-레벨 메모리 장치(130)는 일반적인 프로그램 명령(80h, 10h)이 제공되더라도 앞서 설명된 바와 같은 병렬 버퍼 프로그램 동작을 수행할 것이다. 또한, 이러한 명령이 제공되면, 멀티-레벨 메모리 장치(130)는 일반적인 읽기 명령(00h, 30h)이 제공되더라도 앞서 설명된 바와 같은 병렬 버퍼 읽기 동작을 수행할 것이다.
병렬 버퍼 읽기 동작이 수행된 후, 메인 프로그램 동작을 수행하도록 제어하기 위한 프로그램 명령(80h, 10h)이 멀티-레벨 메모리 장치(130)로 제공될 것이다. 메인 프로그램 동작은 제 2 영역(133)에 저장될 데이터(즉, 그러한 데이터의 페이지 어드레스)에 따라 병렬 버퍼 프로그램 동작과 구분될 수 있다. 메인 프로그램 동작이 완료되면, 병렬 버퍼 프로그램/읽기 동작을 종료하도록 제어하기 위한 병렬 버퍼 프로그램/읽기 종료 명령(PBEh)이 멀티-레벨 메모리 장치(130)로 제공될 것이다.
예시적으로, 병렬 버퍼 읽기 동작과 메인 프로그램 동작(즉, 1-스텝 프로그램 동작, 2-스텝 프로그램 동작, 또는 3-스텝 프로그램 동작)은 메모리 컨트롤러(120)의 개입 없이 멀티-레벨 메모리 장치(130) 내에서 자동적으로 수행될 수 있다. 다른 예로써, 병렬 버퍼 읽기 동작과 메인 프로그램 동작(즉, 1-스텝 프로그램 동작, 2-스텝 프로그램 동작, 또는 3-스텝 프로그램 동작)은 메모리 컨트롤러(120)의 제어에 따라 수행될 수 있다.
도 13은 본 발명의 실시 예에 따른 병렬 버퍼 프로그램/읽기 동작을 수행하도록 멀티-레벨 메모리 장치에 제공되는 다른 명령어를 설명하기 위한 도면이다.
도 13을 참조하면, 병렬 버퍼 프로그램 동작, 병렬 버퍼 읽기 동작을 수행하도록 제어하기 위한 명령어가 도시되어 있다. 이러한 명령어들은 메모리 컨트롤러(도 4의 120)로부터 멀티-레벨 메모리 장치(도 4의 130)로 제공될 것이다.
먼저, 병렬 버퍼 프로그램 동작을 수행하도록 제어하기 위한 병렬 버퍼 프로그램 명령(PBP1h 및 PBP2h)이 멀티-레벨 메모리 장치(130)로 제공될 것이다. 다른 예로써, 병렬 버퍼 프로그램 명령(PBP1h)과 일반적인 프로그램 명령(예를 들면, 10h 명령)이 멀티-레벨 메모리 장치(130)로 순차적으로 제공될 수 있다. 또 다른 예로써, 일반적인 프로그램 명령(예를 들면, 80h 명령)과 병렬 버퍼 프로그램 명령(PBP2h)이 멀티-레벨 메모리 장치(130)로 순차적으로 제공될 수 있다. 이러한 명령이 제공되면, 멀티-레벨 메모리 장치(130)는 앞서 설명된 바와 같은 병렬 버퍼 프로그램 동작을 수행할 것이다.
메인 프로그램 동작을 수행하기에 앞서, 병렬 버퍼 읽기 동작을 수행하도록 제어하기 위한 병렬 버퍼 읽기 명령(PBR1h 및 PBR2h)이 멀티-레벨 메모리 장치(130)로 제공될 것이다. 다른 예로써, 병렬 버퍼 읽기 명령(PBR1h)과 일반적인 읽기 명령(예를 들면, 30h 명령)이 멀티-레벨 메모리 장치(130)로 순차적으로 제공될 수 있다. 또 다른 예로써, 일반적인 읽기 명령(예를 들면, 00h 명령)과 병렬 버퍼 읽기 명령(PBR2h)이 멀티-레벨 메모리 장치(130)로 순차적으로 제공될 수 있다. 이러한 명령이 제공되면, 멀티-레벨 메모리 장치(130)는 앞서 설명된 바와 같은 병렬 버퍼 읽기 동작을 수행할 것이다.
다시 말해서, 병렬 버퍼 프로그램 동작과 병렬 버퍼 읽기 동작은 대응하는 명령들이 메모리 컨트롤러(120)로부터 멀티-레벨 메모리 장치(130)로 제공될 때 수행될 것이다. 그리고 메인 프로그램 동작은 일반적인 프로그램 명령이 메모리 컨트롤러(120)로부터 멀티-레벨 메모리 장치(130)로 제공될 때 수행될 것이다.
도 14 내지 도 17은 본 발명의 실시 예에 따른 멀티-레벨 메모리 장치의 제 1 및 제 2 영역들에 대한 다양한 조합들을 설명하기 위한 도면들이다. 도면에서, "BP"는 제 1 영역(131)에 대한 버퍼 프로그램 동작을 나타내며, "MP"는 제 2 영역(133)에 대한 메인 프로그램 동작을 나타낸다.
앞서 설명된 바와 같이, 멀티-레벨 메모리 장치(130)는 제 1 영역(131)과 제 2 영역(133)을 포함할 것이다. 여기에서, 제 1 영역(131)과 제 2 영역(133)은 멀티-레벨 메모리 장치(130)의 메모리 셀 어레이를 구성할 것이다. 비록 도면에는 도시되지 않았지만, 메모리 셀 어레이는 더 많은 영역들(예를 들면, 메타 영역, 예비 영역, 등)을 포함할 것이다. 메모리 셀 어레이의 영역들이 물리적으로 구분되는 것이 아니라 논리적으로 구분될 수 있음은 잘 이해될 것이다. 이는 메모리 컨트롤러(120)의 어드레스 맵핑에 따라 영역들이 정의됨을 의미한다.
도 14를 참조하면, 셀 당 3-비트 데이터를 저장하는 멀티-레벨 메모리 장치(130)의 경우, 제 1 영역(131)은 셀 당 1-비트 데이터를 저장하는 메모리 셀들로 구성되고, 제 2 영역(133)은 셀 당 3-비트 데이터를 저장하는 메모리 셀들로 구성될 수 있다. 이 경우, 버퍼 프로그램 동작은 SLC 프로그램 방식에 따라 수행될 것이다. 메인 프로그램 동작은 앞서 설명된 MLC 프로그램 방식에 따라 수행될 것이다.
도 15를 참조하면, 셀 당 4-비트 데이터를 저장하는 멀티-레벨 메모리 장치(130)의 경우, 제 1 영역(131)은 셀 당 1-비트 데이터를 저장하는 메모리 셀들로 구성되고, 제 2 영역(133)은 셀 당 4-비트 데이터를 저장하는 메모리 셀들로 구성될 수 있다. 이 경우, 버퍼 프로그램 동작은 SLC 프로그램 방식에 따라 수행될 것이다. 메인 프로그램 동작은 앞서 설명된 MLC 프로그램 방식에 따라 수행될 것이다.
도 16을 참조하면, 셀 당 3-비트 데이터를 저장하는 멀티-레벨 메모리 장치(130)의 경우, 제 1 영역(131)은 셀 당 2-비트 데이터를 저장하는 메모리 셀들로 구성되고, 제 2 영역(133)은 셀 당 3-비트 데이터를 저장하는 메모리 셀들로 구성될 수 있다. 이 경우, 버퍼 프로그램 동작은 일반적인 또는 앞서 설명된 MLC 프로그램 방식에 따라 수행될 것이다. 메인 프로그램 동작은 앞서 설명된 MLC 프로그램 방식(예를 들면, 재프로그램 방식)에 따라 수행될 것이다.
도 17을 참조하면, 셀 당 4-비트 데이터를 저장하는 멀티-레벨 메모리 장치(130)의 경우, 제 1 영역(131)은 셀 당 2-비트 데이터를 저장하는 메모리 셀들로 구성되고, 제 2 영역(133)은 셀 당 4-비트 데이터를 저장하는 메모리 셀들로 구성될 수 있다. 이 경우, 버퍼 프로그램 동작은 일반적인 또는 앞서 설명된 MLC 프로그램 방식에 따라 수행될 것이다. 메인 프로그램 동작은 앞서 설명된 MLC 프로그램 방식(예를 들면, 재프로그램 방식)에 따라 수행될 것이다.
예시적인 실시 예에 있어서, 도 14 내지 도 17에 도시된 제 1 및 제 2 영역들(131, 133)의 정의가 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 데이터 저장 시스템(도 4의 100)에 포함되는 불휘발성 메모리 장치가 복수의 멀티-레벨 메모리 장치들로 구성되는 경우, 각각의 멀티-레벨 메모리 장치에 제 1 및 제 2 영역들(131, 133)이 정의될 수 있다. 다른 예로써, 복수의 멀티-레벨 메모리 장치들 중에서 임의의 멀티-레벨 메모리 장치에만 제 1 영역(131)이 정의될 수 있다. 또는, 복수의 멀티-레벨 메모리 장치들 중에서, 임의의 멀티-레벨 메모리 장치 전체가 제 1 영역(131)으로 정의될 수 있다.
도 18은 올 비트 라인 메모리 구조 또는 오드-이븐 메모리 구조를 위해 메모리 셀 어레이를 메모리 블록들로 구성하는 예를 보여주는 도면이다. 도 4에 도시된 멀티-레벨 메모리 장치(130)에 포함되는 메모리 셀 어레이의 예시적인 구조들이 설명될 것이다. 예시적으로, 메모리 셀 어레이(110)가 1024개의 메모리 블록들로 나눠진 낸드 플래시 메모리 장치가 설명될 것이다. 각 메모리 블록에 저장된 데이터는 동시에 소거될 수 있다. 일 실시 예에 있어서, 메모리 블록은 동시에 소거되는 저장 소자들의 최소 단위이다. 각 메모리 블록에는, 예를 들면, 비트 라인들(예를 들면, 1KB의 비트 라인들)에 각각 대응하는 복수의 열들이 있다. 올 비트 라인 (all bit line: ABL) 구조라 불리는 일 실시 예에 있어서, 메모리 블록의 모든 비트 라인들은 읽기 및 프로그램 동작들 동안 동시에 선택될 수 있다. 공통 워드 라인에 속하며 모든 비트 라인들과 연결된 저장 소자들은 동시에 프로그램될 수 있다.
예시적인 실시 예에 있어서, 동일한 열에 속한 복수의 저장 소자들은 낸드 스트링(111)을 구성하도록 직렬로 연결된다. 낸드 스트링의 일 단자는 스트링 선택 라인(SSL)에 의해서 제어되는 선택 트랜지스터를 통해 대응하는 비트 라인에 연결되고, 다른 단자는 접지 선택 라인(GSL)에 의해서 제어되는 선택 트랜지스터를 통해 공통 소오스 라인(CSL)에 연결된다.
오드-이븐 구조(odd-even architecture)라 불리는 다른 예시적인 실시 예에 있어서, 비트 라인들은 이븐 비트 라인들(BLe)과 오드 비트 라인들(BLo)로 구분된다. 오드/이븐 비트 라인 구조에 있어서, 공통 워드 라인에 속하며 오드 비트 라인들과 연결된 저장 소자들이 제 1 시간에 프로그램되는 반면에, 공통 워드 라인에 속하며 이븐 비트 라인들과 연결된 저장 소자들은 제 2 시간에 프로그램된다. 데이터는 다른 블록들로 프로그램될 수 있고 다른 메모리 블록들로부터 읽혀질 수 있다. 이러한 동작은 동시에 수행될 수 있다.
멀티-레벨 메모리 장치(130)를 구성하는 플래시 메모리 장치는 전력이 차단되어도 저장된 데이터를 유지할 수 있는 불 휘발성 메모리 장치이다. 셀룰러 폰, PDA 디지털 카메라, 포터블 게임 콘솔, 그리고 MP3 플레이어와 같은 모바일 장치들의 사용 증가에 따라, 플래시 메모리 장치는 데이터 스토리지 뿐만 아니라 코드 스토리지로서 보다 널리 사용된다. 플래시 메모리 장치는, 또한, HDTV, DVD, 라우터, 그리고 GPS와 같은 홈 어플리케이션에 사용될 수 있다.
도 19는 본 발명의 실시 예에 따른 컴퓨터 시스템을 개략적으로 보여주는 블럭도이다.
컴퓨터 시스템은 프로세싱 유닛(2100), 사용자 인터페이스(2200), 베이스밴드 칩셋(baseband chipset)과 같은 모뎀(2300), 메모리 컨트롤러(2400), 그리고 저장 매체로서 멀티-레벨 메모리 장치(2500)를 포함한다. 메모리 컨트롤러(2400)와 멀티-레벨 메모리 장치(2500)는 도 4에 도시된 것과 실질적으로 동일하게 구성될 것이다. 이는 메모리 컨트롤러(2400)에 포함되는 버퍼 메모리의 크기를 최소화하는 것이 가능함을 의미한다. 멀티-레벨 메모리 장치(2500)에는 프로세싱 유닛(2100)에 의해서 처리된/처리될 N-비트 데이터(N은 1 또는 그 보다 큰 정수)가 메모리 컨트롤러(2400)를 통해 저장될 것이다. 컴퓨터 시스템이 모바일 장치인 경우, 컴퓨터 시스템의 동작 전압을 공급하기 위한 배터리(2600)가 추가적으로 제공될 것이다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨터 시스템에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램 등이 더 포함될 수 있음은 잘 이해될 것이다.
도 20은 본 발명의 실시 예에 따른 메모리 컨트롤러를 개략적으로 보여주는 블럭도이다. 도 20을 참조하면, 본 발명의 실시 예에 따른 메모리 컨트롤러는 제 1 인터페이스(3210), 제 2 인터페이스(3220), 프로세싱 유닛(3230), 버퍼(3240), ECC 유닛(3250), 그리고 롬(3260)을 포함할 것이다. 도 20에 도시된 메모리 컨트롤러는 도 4 또는 도 19에 도시된 시스템에 적용될 것이다.
제 1 인터페이스(3210)는 외부(또는, 호스트)와 인터페이스하도록 구성될 것이다. 제 2 인터페이스(3220)는 도 4 또는 도 19에 도시된 메모리 장치와 인터페이스하도록 구성될 것이다. 프로세싱 유닛(3230)은 메모리 컨트롤러의 전반적인 동작을 제어하도록 구성될 것이다. 예를 들면, 프로세싱 유닛(3230)은 롬(3260)에 저장된 플래시 변환 계층(Flash Translation Layer: FTL)과 같은 펌웨어를 운용하도록 구성될 것이다. 버퍼(3240)는 제 1 인터페이스(3210)를 통해 외부로 전달되는 데이터를 임시 저장하는 데 사용될 것이다. 버퍼(3240)는 제 2 인터페이스(3220)를 통해 메모리 장치로부터 전달되는 데이터를 임시 저장하는 데 사용될 것이다. ECC 유닛(3250)은 에 저장될 데이터를 부호화하도록 그리고 메모리 장치로부터 읽혀진 데이터를 복호화하도록 구성될 것이다.
예시적인 실시 예에 있어서, 메모리 컨트롤러는 도 12 및 도 13에서 설명된 명령 시퀀스에 따라 명령들을 순차적으로 발생하도록 구성될 것이다.
도 21은 본 발명의 실시 예에 따른 솔리드 스테이트 드라이브를 개략적으로 보여주는 블럭도이다. 도 21을 참조하면, 솔리드 스테이트 드라이브(4000)는 저장 매체(4100)와 컨트롤러(4200)를 포함할 것이다.
저장 매체(4100)는 복수의 채널들을 통해 컨트롤러(4200)와 연결될 것이다. 각 채널에는 복수의 불휘발성 메모리 장치들이 공통으로 연결될 것이다. 각 불휘발성 메모리 장치는 도 4에서 설명된 멀티-레벨 메모리 장치로 구성될 것이다. 컨트롤러(4200)는 도 5 내지 도 13을 참조하여 설명된 프로그램 방식들 중 어느 하나에 따라 저장 매체(4100)를 제어하도록 구성될 것이다. 이는 컨트롤러(4200)에 포함되는 버퍼 메모리의 크기를 최소화하는 것이 가능함을 의미한다.
도 22는 도 21에 도시된 솔리드 스테이트 드라이브를 이용한 스토리지를 개략적으로 보여주는 블럭도이고, 도 23은 도 21에 도시된 솔리드 스테이트 드라이브를 이용한 스트리지 서버를 개략적으로 보여주는 블럭도이다.
본 발명의 실시 예에 따른 솔리드 스테이트 드라이브(4000)는 스토리지를 구성하는 데 사용될 수 있다. 도 22에 도시된 바와 같이, 스토리지는 도 21에서 설명된 것과 실질적으로 동일하게 구성되는 복수의 솔리드 스테이트 드라이브들을 포함할 것이다. 본 발명의 실시 예에 따른 솔리드 스테이트 드라이브(4000)는 스토리지 서버를 구성하는 데 사용될 수 있다. 도 23에 도시된 바와 같이, 스토리지 서버는 도 21에서 설명된 것과 실질적으로 동일하게 구성되는 복수의 솔리드 스테이트 드라이브들(4000), 그리고 서버(4000A)를 포함할 것이다. 또한, 이 분야에 잘 알려진 RAID 컨트롤러(4000B)가 스토리지 서버에 포함될 수 있음은 잘 이해될 것이다.
도 24 내지 도 26은 본 발명의 실시 예들에 따른 데이터 저장 시스템이 적용되는 시스템들을 개략적으로 보여주는 도면들이다.
본 발명의 실시 예들에 따른 메모리 컨트롤러 및 멀티-레벨 메모리 장치들로 구성되는 데이터 저장 시스템을 포함한 솔리드 스테이트 드라이브가 스토리지에 적용되는 경우, 도 24에 도시된 바와 같이, 시스템(6000)은 유선 그리고/또는 무선으로 호스트와 통신하는 스토리지(6100)를 포함할 것이다. 본 발명의 실시 예들에 따른 데이터 저장 시스템을 포함한 솔리드 스테이트 드라이브가 스토리지 서버에 적용되는 경우, 도 25에 도시된 바와 같이, 시스템(7000)은 유선 그리고/또는 무선으로 호스트와 통신하는 스토리지 서버들(7100, 7200)을 포함할 것이다. 또한, 도 26에 도시된 바와 같이, 본 발명의 실시 예들에 따른 데이터 저장 시스템을 포함한 솔리드 스테이트 드라이브는 메일 서버(8100)에도 적용될 수 있다.
도 27은 본 발명의 실시 예에 따른 메모리 카드를 개략적으로 보여주는 블럭도이다.
메모리 카드는 예를 들어, MMC 카드, SD 카드, 멀티유즈(multiuse) 카드, 마이크로 SD 카드, 메모리 스틱, 컴팩트 SD 카드, ID 카드, PCMCIA 카드, SSD 카드, 칩 카드(chip card), 스마트 카드, USB 카드 등일 수 있다.
도 27을 참조하면, 메모리 카드는 외부와의 인터페이스를 수행하는 인터페이스부(9221), 버퍼 메모리를 포함하며 메모리 카드의 동작을 제어하는 컨트롤러(9222), 하나 또는 그보다 많은 불휘발성 메모리 장치들(9207)을 포함할 것이다. 컨트롤러(9222)는 데이터 버스(DATA)와 어드레스 버스(ADDRESS)를 통해서 불휘발성 메모리 장치(9207) 및 인터페이스부(9221)와 연결되어 있다.
컨트롤러(9222)는 프로세서로서, 불휘발성 메모리 장치(9207)의 프로그램 동작 및 읽기 동작을 제어할 수 있다. 도 27에 도시된 컨트롤러(9222)와 불휘발성 메모리(9207)는 도 4에서 설명된 메모리 컨트롤러(120)와 멀티-레벨 메모리 장치(130)에 대응될 것이다. 컨트롤러(9222)는 도 5 내지 도 13을 참조하여 설명된 프로그램 방식들 중 어느 하나에 따라 불휘발성 메모리(9207)를 제어하도록 구성될 것이다. 이는 컨트롤러(9222)에 포함되는 버퍼 메모리의 크기를 최소화하는 것이 가능함을 의미한다.
도 28은 본 발명의 실시 예에 따른 디지털 스틸 카메라(digital still camera)를 개략적으로 보여주는 블럭도이다.
도 28을 참조하면, 디지털 스틸 카메라는 바디(9301), 슬롯(9302), 렌즈(9303), 디스플레이부(9308), 셔터 버튼(9312), 스트로브(strobe, 9318) 등을 포함한다. 특히, 슬롯(9302)에는 메모리 카드(9331)가 삽입될 수 있고, 메모리 카드(9331)는 도 4에서 설명된 메모리 컨트롤러(120) 및 멀티-레벨 메모리 장치(130)를 포함할 것이다.
메모리 카드(9331) 내에 포함된 메모리 컨트롤러는 도 5 내지 도 13을 참조하여 설명된 프로그램 방식들 중 어느 하나에 따라 멀티-레벨 메모리 장치를 제어하도록 구성될 것이다. 이는 메모리 컨트롤러에 포함되는 버퍼 메모리의 크기를 최소화하는 것이 가능함을 의미한다.
메모리 카드(9331)가 접촉형(contact type)인 경우, 메모리 카드(9331)가 슬롯(9302)에 삽입될 때 메모리 카드(9331)와 회로 기판 상의 특정 전기 회로가 전기적으로 접촉하게 된다. 메모리 카드(9331)가 비접촉형(non-contact type)인 경우, 무선 신호를 통해서 메모리 카드(9331)가 액세스될 것이다.
도 29는 도 27의 메모리 카드가 사용되는 다양한 시스템을 예시적으로 설명하는 도면이다.
도 29를 참조하면, 메모리 카드(9331)는 비디오 카메라, 텔레비전, 오디오 장치, 게임 장치, 전자 음악 장치, 휴대폰, 컴퓨터, PDA(Personal Digital Assistant), 보이스 레코더(voice recorder), PC 카드, 등에 사용될 수 있다.
본 발명의 실시 예에 따른 메모리 컨트롤러 그리고/또는 불휘발성 메모리 장치는 다양한 패키지 방식을 통해 패키징될 수 있다. 예를 들면, 본 발명의 실시 예에 따른 메모리 컨트롤러 그리고/또는 불휘발성 메모리 장치는, 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 : 데이터 저장 시스템
110 : 호스트
120 : 메모리 컨트롤러
130 : 불휘발성 메모리 장치(멀티-레벨 메모리 장치)

Claims (10)

  1. 메모리 셀 어레이를 포함하는 불휘발성 메모리 장치; 및
    상기 불휘발성 메모리 장치를 제어하도록 구성된 메모리 컨트롤러를 포함하되,
    상기 메모리 셀 어레이는 메모리 셀 당 M(M은 양의 정수)-비트 데이터를 저장하는 제 1 영역과 메모리 셀 당 N(N은 양의 정수)-비트 데이터를 저장하는 제 2 영역을 포함하며, 상기 제 1 영역은 적어도 N개의 메모리 블럭들을 포함하고,
    상기 메모리 컨트롤러는 상기 제 2 영역에 저장될 N-비트 데이터를 상기 제 1 영역의 N개의 메모리 블럭들 각각에 나누어 저장하는 버퍼 프로그램 동작; 및 상기 제 1 영역에 저장된 상기 N-비트 데이터를 상기 제 2 영역에 저장하는 메인 프로그램 동작을 수행하고,
    상기 메모리 컨트롤러는 상기 버퍼 프로그램 동작 시 상기 N-비트 데이터가 저장될 상기 제 2 영역의 워드 라인과 동일한 위치의 상기 제 1 영역의 N개의 메모리 블럭들 각각의 워드 라인에 상기 N-비트 데이터를 나누어 저장하는 데이터 저장 시스템.
  2. 제 1 항에 있어서,
    상기 메모리 컨트롤러는 버퍼 메모리를 포함하되,
    상기 메모리 컨트롤러는 상기 제 1 영역에 대한 최소 프로그램 단위의 데이터가 상기 버퍼 메모리에 저장되면 상기 버퍼 메모리에 저장된 데이터가 상기 제 1 영역에 저장되도록 상기 불휘발성 메모리 장치를 제어함으로써 상기 버퍼 프로그램 동작을 수행하는 데이터 저장 시스템.
  3. 제 2 항에 있어서,
    상기 메모리 컨트롤러는 상기 제 2 영역에 대한 최소 프로그램 단위의 데이터가 상기 제 1 영역에 저장되면 상기 제 1 영역에 저장된 데이터가 상기 제 2 영역에 저장되도록 상기 불휘발성 메모리 장치를 제어함으로써 상기 메인 프로그램 동작을 수행하는 데이터 저장 시스템.
  4. 제 1 항에 있어서,
    상기 메인 프로그램 동작은 1-스텝 프로그램 동작, 2-스텝 프로그램 동작, 3-스텝 프로그램 동작 중 적어도 하나를 포함하는 재프로그램 방식을 통해 수행되는 데이터 저장 시스템.
  5. 제 1 항에 있어서,
    상기 M-비트 데이터는 상기 N-비트 데이터보다 작은 비트 수로 구성되되,
    상기 제 1 영역은 싱글-비트 프로그램 방식에 따라 프로그램되고, 상기 제 2 영역은 멀티-비트 프로그램 방식에 따라 프로그램되는 데이터 저장 시스템.
  6. 제 1 영역과 제 2 영역으로 구분되는 메모리 셀 어레이를 포함하는 불휘발성 메모리 장치; 및 상기 불휘발성 메모리 장치를 제어하도록 구성된 메모리 컨트롤러를 포함하는 데이터 저장 시스템의 동작 방법에 있어서:
    상기 제 2 영역에 저장될 N(N은 양의 정수)-비트 데이터를 상기 제 1 영역에 포함된 적어도 N개의 메모리 블럭들 각각에 나누어 저장하는 버퍼 프로그램 동작을 수행하는 단계; 및
    상기 제 1 영역에 저장된 상기 N-비트 데이터를 상기 제 2 영역에 저장하는 메인 프로그램 동작을 수행하는 단계를 포함하되,
    상기 버퍼 프로그램 동작을 수행하는 단계는,
    상기 N-비트 데이터가 저장될 상기 제 2 영역의 워드 라인과 동일한 위치의 상기 제 1 영역의 N개의 메모리 블럭들 각각의 워드 라인에 상기 N-비트 데이터를 나누어 저장하는 단계를 포함하는 데이터 저장 시스템의 동작 방법.
  7. 제 6 항에 있어서,
    상기 메인 프로그램 동작을 수행하는 단계는,
    상기 제 1 영역에 저장된 N-비트 데이터를 상기 N개의 메모리 블럭들로부터 순차적으로 읽는 단계; 및
    상기 읽혀진 N-비트 데이터를 상기 제 2 영역에 저장하는 단계를 포함하는 데이터 저장 시스템의 동작 방법.
  8. 제 6 항에 있어서,
    상기 버퍼 프로그램 동작을 위한 일련의 프로그램 명령들을 상기 불휘발성 메모리 장치로 출력하기 전에 상기 버퍼 프로그램 동작으로 진입하기 위한 모드 전환 명령을 상기 불휘발성 메모리 장치로 출력하는 단계를 더 포함하는 데이터 저장 시스템의 동작 방법.
  9. 제 8 항에 있어서,
    상기 메인 프로그램 동작이 수행될 때, 상기 불휘발성 메모리 장치로 출력되는 일련의 명령들은 상기 제 1 영역에 대한 읽기 명령과 상기 제 2 영역에 대한 프로그램 명령을 포함하는 데이터 저장 시스템의 동작 방법.
  10. 제 9 항에 있어서,
    상기 메인 프로그램 동작이 수행된 후에 상기 버퍼 프로그램 동작을 종료하기 위한 모드 전환 명령을 상기 불휘발성 메모리 장치로 출력하는 단계를 더 포함하는 데이터 저장 시스템의 동작 방법.
KR1020110058312A 2011-06-16 2011-06-16 멀티-레벨 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 동작 방법 KR101792867B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110058312A KR101792867B1 (ko) 2011-06-16 2011-06-16 멀티-레벨 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 동작 방법
US13/466,280 US8638603B2 (en) 2011-06-16 2012-05-08 Data storage system having multi-level memory device and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110058312A KR101792867B1 (ko) 2011-06-16 2011-06-16 멀티-레벨 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 동작 방법

Publications (2)

Publication Number Publication Date
KR20120138895A true KR20120138895A (ko) 2012-12-27
KR101792867B1 KR101792867B1 (ko) 2017-11-02

Family

ID=47353559

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110058312A KR101792867B1 (ko) 2011-06-16 2011-06-16 멀티-레벨 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 동작 방법

Country Status (2)

Country Link
US (1) US8638603B2 (ko)
KR (1) KR101792867B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170099610A (ko) * 2016-02-24 2017-09-01 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9886219B2 (en) 2014-11-26 2018-02-06 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory device and method of programming the same

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101979392B1 (ko) * 2012-05-17 2019-05-16 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
KR20140067400A (ko) * 2012-11-26 2014-06-05 삼성전자주식회사 플래시 메모리, 제 1 버퍼 메모리, 메모리 컨트롤러를 포함하는 메모리 시스템 및 그것의 동작 방법
KR102096285B1 (ko) * 2013-07-30 2020-04-02 삼성전자주식회사 메모리 시스템 및 그것의 프로그램 방법
KR102180595B1 (ko) 2014-02-06 2020-11-19 삼성전자주식회사 불휘발성 메모리 장치의 동작 방법 및 불휘발성 메모리 시스템
WO2021068231A1 (en) * 2019-10-12 2021-04-15 Yangtze Memory Technologies Co., Ltd. Method of programming memory device and related memory device
WO2021081737A1 (en) 2019-10-29 2021-05-06 Yangtze Memory Technologies Co., Ltd. Methods of programming memory device

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4805696B2 (ja) 2006-03-09 2011-11-02 株式会社東芝 半導体集積回路装置およびそのデータ記録方式
KR100813618B1 (ko) 2006-07-25 2008-03-17 삼성전자주식회사 3차원 어레이 구조를 갖는 반도체 메모리 장치
US7646664B2 (en) 2006-10-09 2010-01-12 Samsung Electronics Co., Ltd. Semiconductor device with three-dimensional array structure
KR100873825B1 (ko) 2007-05-02 2008-12-15 삼성전자주식회사 비휘발성 메모리의 멀티 비트 프로그래밍 장치 및 방법
JP4498426B2 (ja) 2008-03-01 2010-07-07 株式会社東芝 メモリシステム
US8040744B2 (en) 2009-01-05 2011-10-18 Sandisk Technologies Inc. Spare block management of non-volatile memories
KR20110001098A (ko) 2009-06-29 2011-01-06 주식회사 하이닉스반도체 불휘발성 메모리 소자의 프로그램 방법
US8437183B2 (en) 2009-12-16 2013-05-07 Sandisk Il Ltd. Auxiliary parity bits for data written in multi-level cells
US7990767B2 (en) 2009-12-30 2011-08-02 Sandisk Il Ltd. Flash memory system having cross-coupling compensation during read operation
US20130031431A1 (en) 2011-07-28 2013-01-31 Eran Sharon Post-Write Read in Non-Volatile Memories Using Comparison of Data as Written in Binary and Multi-State Formats

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9886219B2 (en) 2014-11-26 2018-02-06 Samsung Electronics Co., Ltd. Storage device including nonvolatile memory device and method of programming the same
KR20170099610A (ko) * 2016-02-24 2017-09-01 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법

Also Published As

Publication number Publication date
KR101792867B1 (ko) 2017-11-02
US20120320673A1 (en) 2012-12-20
US8638603B2 (en) 2014-01-28

Similar Documents

Publication Publication Date Title
US9818485B2 (en) Nonvolatle memory device and memory system having the same, and related memory management, erase and programming methods
US9672104B2 (en) Memory system and read reclaim method thereof
US9824761B2 (en) Storage device and a write method including a coarse program operation and fine program operation
JP5660615B2 (ja) マルチビットメモリ装置を含んだデータ格納システム及びそれの動作方法
US9466386B2 (en) Storage device and related programming method
KR101792867B1 (ko) 멀티-레벨 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 동작 방법
US9281068B2 (en) Nonvolatile memory and related reprogramming method
KR101734199B1 (ko) 멀티-비트 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 동작 방법
US20140211565A1 (en) Methods of programming multi-level cell nonvolatile memory devices and devices so operating
US9183938B2 (en) Nonvolatile memory device and method of programming nonvolatile memory device
US8817540B2 (en) Nonvolatile memory device and program method thereof
US8441862B2 (en) Program method of multi-bit memory device and data storage system using the same
KR20120126389A (ko) 멀티-비트 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 온칩 버퍼 프로그램 방법
US9021338B2 (en) Memory system and data storage method
JP2011521393A (ja) メモリ装置およびメモリプログラミング方法
KR20100088898A (ko) 플래시 메모리 장치, 및 이의 프로그램 및 독출 방법
KR20130049330A (ko) 메모리 시스템 및 그것의 메모리 관리 기법
KR101772577B1 (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