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

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

Info

Publication number
KR20130107733A
KR20130107733A KR1020120029738A KR20120029738A KR20130107733A KR 20130107733 A KR20130107733 A KR 20130107733A KR 1020120029738 A KR1020120029738 A KR 1020120029738A KR 20120029738 A KR20120029738 A KR 20120029738A KR 20130107733 A KR20130107733 A KR 20130107733A
Authority
KR
South Korea
Prior art keywords
page
program
memory
data
logical page
Prior art date
Application number
KR1020120029738A
Other languages
English (en)
Other versions
KR101962786B1 (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 KR1020120029738A priority Critical patent/KR101962786B1/ko
Priority to US13/661,021 priority patent/US9076516B2/en
Priority to CN2013100441137A priority patent/CN103325417A/zh
Priority to JP2013020275A priority patent/JP2013200935A/ja
Publication of KR20130107733A publication Critical patent/KR20130107733A/ko
Priority to JP2017145333A priority patent/JP6742964B2/ja
Application granted granted Critical
Publication of KR101962786B1 publication Critical patent/KR101962786B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • 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
    • 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/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5648Multilevel memory programming, reading or erasing operations wherein the order or sequence of the operations is relevant
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/70Resistive array aspects
    • G11C2213/71Three dimensional array

Abstract

본 발명의 실시 예에 따른 복수의 행들로 배열되는 메모리 셀들을 포함하는 불휘발성 메모리 장치의 프로그램 방법은, 상기 메모리 셀들의 제 1 논리 페이지 영역과 제 2 논리 페이지 영역에 워드 라인들을 교대로 선택하여 데이터를 프로그램하는 단계, 그리고 상기 제 1 논리 페이지 영역과 상기 제 2 논리 페이지 영역에 대한 프로그램이 완료된 후에, 상기 메모리 셀들의 제 3 논리 페이지 영역에 상기 워드 라인들의 배열된 순서에 따라 데이터를 프로그램하는 단계를 포함하되, 상기 워드 라인들의 배열된 순서에 따라 데이터를 프로그램하는 단계에서, 상기 워드 라인들은 접지 선택 라인으로부터 스트링 선택 라인 방향으로 순차적으로 하나씩 선택된다.

Description

불휘발성 메모리 장치, 메모리 시스템 및 그것의 프로그램 방법{NON-VOLATILE MEMORY DEVICE, NON-VOLATILE MEMORY SYSTEM, AND PROGRAM METHOD OF THE SAME}
본 발명은 반도체 메모리 장치에 관한 것으로, 좀 더 구체적으로는 불휘발성 메모리 장치, 불휘발성 메모리 시스템, 그리고 그것의 프로그램 방법에 관한 것이다.
반도체 메모리 장치는 크게 휘발성 반도체 메모리 장치(Volatile semiconductor memory device)와 불휘발성 반도체 메모리 장치(Non-volatile semiconductor memory device)로 구분될 수 있다. 휘발성 반도체 메모리 장치는 읽고 쓰는 속도가 빠르지만 전원 공급이 끊기면 저장된 내용이 사라져 버리는 단점이 있다. 반면에, 불휘발성 반도체 메모리 장치는 전원 공급이 중단되더라도 그 내용을 보존한다. 그러므로, 불휘발성 반도체 메모리 장치는 전원이 공급되었는지의 여부에 관계없이 보존되어야 할 내용을 기억시키는 데 쓰인다.
불휘발성 반도체 메모리 장치로는 마스크 롬(Mask read-only memory, MROM), 프로그램 가능한 롬(Programmable read-only memory, PROM), 소거 및 프로그램 가능한 롬(Erasable programmable read-only memory, EPROM), 전기적으로 소거 및 프로그램 가능한 롬(Electrically erasable programmable read-only memory, EEPROM) 등이 있다.
불휘발성 메모리 장치의 대표적인 예로 플래시 메모리 장치가 있다. 플래시 메모리 장치는 컴퓨터, 휴대폰, PDA, 디지털카메라, 캠코더, 보이스 리코더, MP3 플레이어, 개인용 휴대 단말기(PDA), 휴대용 컴퓨터(Handheld PC), 게임기, 팩스, 스캐너, 프린터 등과 같은 정보기기들의 음성 및 영상 데이터 저장 매체로서 널리 사용되고 있다.
최근에, 반도체 메모리 장치의 집적도를 향상시키기 위하여 3차원으로 적층되는 메모리 셀을 갖는 반도체 메모리 장치가 활발히 연구되고 있다.
본 발명의 목적은 데이터 무결성을 높일 수 있는 불휘발성 메모리 장치, 불휘발성 메모리 시스템 및 그것의 프로그램 방법을 제공하는 데 있다.
상기 과제를 이루기 위한, 본 발명의 실시 예에 따른 복수의 페이지 영역 단위로 프로그램되는 멀티 레벨 셀들을 포함하는 불휘발성 메모리 장치의 프로그램 방법은, 상기 불휘발성 메모리 장치의 메모리 단위를 선택하는 단계, 그리고 상기 메모리 단위에서 최하위 페이지 영역을 포함하는 적어도 2개 페이지 영역들을 행들이 교대로 선택되는 교대 프로그램 방식에 따라 프로그램하는 단계를 포함하되, 상기 메모리 단위에는 상기 적어도 2개의 페이지 영역들 및 또 다른 적어도 하나의 페이지 영역이 더 포함된다.
상기 과제를 이루기 위한 본 발명의 실시 예에 따른 멀티 레벨 셀을 포함하는 불휘발성 메모리 장치에 쓰기 데이터를 프로그램 방법은, 선택된 메모리 단위의 제 1 페이지 영역과 제 2 페이지 영역에 행들이 교대로 선택되는 교대 프로그램 방식으로 상기 쓰기 데이터의 일부를 프로그램하는 단계, 그리고 상기 메모리 단위의 제 3 페이지 영역에 행들이 순서대로 선택되는 순차 프로그램 방식으로 상기 쓰기 데이터의 나머지 일부를 프로그램하는 단계를 포함한다.
상기 과제를 이루기 위한 본 발명의 실시 예에 따른 멀티 레벨 셀을 포함하는 불휘발성 메모리 장치에 쓰기 데이터를 프로그램 방법은, 선택된 메모리 단위의 제 1 페이지 영역, 제 2 페이지 영역, 그리고 제 3 페이지 영역들에 행들이 교대로 선택되는 교대 프로그램 방식으로 상기 쓰기 데이터의 일부를 프로그램하는 단계, 그리고 상기 메모리 단위의 제 4 페이지 영역에 행들이 순서대로 선택되는 순차 프로그램 방식으로 상기 쓰기 데이터의 나머지 일부를 프로그램하는 단계를 포함한다.
상기 과제를 이루기 위한 본 발명의 실시 예에 따른 불휘발성 메모리 장치는, 복수의 페이지 영역 단위로 프로그램되는 멀티 레벨 셀들을 포함하는 메모리 셀 어레이, 상기 메모리 셀 어레이의 비트 라인들과 연결되는 페이지 버퍼, 워드 라인들 및 선택 라인들을 통해 상기 메모리 셀 어레이에 연결되는 행 디코더, 그리고 선택된 메모리 단위에 포함되는 복수의 페이지 영역에 데이터를 프로그램하도록 상기 페이지 버퍼와 상기 행 디코더를 제어하는 제어 로직을 포함하되, 상기 제어 로직은 쓰기 데이터가 상기 선택된 메모리 단위의 기억 용량보다 작은 경우에는, 상기 복수의 페이지 영역들 중 적어도 하나를 제외한 영역들에 상기 쓰기 데이터의 일부를 행들이 교대로 선택되는 교대 프로그램 방식에 따라 프로그램한다.
상기 과제를 이루기 위한 본 발명의 실시 예에 따른 메모리 시스템은, 복수의 페이지 영역 단위로 프로그램되는 멀티 레벨 셀들을 포함하는 불휘발성 메모리 장치, 그리고 쓰기 데이터를 프로그램하기 위하여, 상기 불휘발성 메모리 장치의 메모리 단위를 선택하는 메모리 컨트롤러를 포함하되, 상기 메모리 컨트롤러는 상기 메모리 단위의 일부 페이지 영역들을 행들이 교대로 선택되는 교대 프로그램 방식에 따라 프로그램하는 부분 교대 프로그램 모드와, 상기 메모리 단위의 모든 페이지 영역들을 상기 교대 프로그램 방식에 따라 프로그램하는 풀 교대 프로그램 모드 중 어느 하나의 모드로 상기 쓰기 데이터를 프로그램하도록 상기 불휘발성 메모리 장치를 제어한다.
상기 과제를 이루기 위한 본 발명의 실시 예에 따른 복수의 행들로 배열되는 메모리 셀들을 포함하는 불휘발성 메모리 장치의 프로그램 방법은, 상기 메모리 셀들의 제 1 페이지 영역과 제 2 페이지 영역에 행들이 교대로 선택되는 교대 프로그램 방식으로 데이터를 프로그램하는 단계, 그리고 상기 제 1 페이지 영역과 제 2 페이지 영역이 채워진 후에, 상기 메모리 셀들의 제 3 페이지 영역에 행들의 배열 순서에 따라 메모리 셀들을 선택하는 순차 프로그램 방식으로 데이터를 프로그램하는 단계를 포함한다.
상기 과제를 이루기 위한 복수의 행들로 배열되는 메모리 셀들을 포함하는 불휘발성 메모리 장치의 프로그램 방법은, 상기 메모리 셀들의 제 1 페이지 영역에 행들의 배열 순서에 따라 순차적으로 메모리 셀들을 선택하여 데이터를 기입하는 단계, 그리고 상기 메모리 셀들의 제 1 페이지 영역이 채워진 후에, 상기 메모리 셀들의 제 2 페이지 영역과 제 3 페이지 영역에 행들이 교대로 선택되는 교대 프로그램 방식으로 데이터를 프로그램하는 단계를 포함한다.
상기 과제를 이루기 위한 각각 페이지 단위로 데이터가 기입되는 복수의 페이지 영역들을 갖는 복수의 행들을 포함하는 불휘발성 메모리 장치의 프로그램 방법은, 상기 복수의 행들 각각의 페이지 영역들 중에서 적어도 2개 페이지 영역들을 제 1 스크램블 방식으로 선택하여 프로그램하는 단계, 그리고 상기 복수의 행들 각각의 페이지 영역들 중에서 다른 하나의 페이지 영역을 행들의 배열 순서에 따라 선택하는 제 2 스크램블 방식으로 프로그램하는 단계를 포함한다.
상기 과제를 이루기 위한 본 발명의 실시 예에 따른 불휘발성 메모리 장치는, 페이지 단위로 프로그램되는 멀티 레벨 셀들을 포함하는 메모리 셀 어레이, 상기 메모리 셀 어레이의 비트 라인들과 연결되는 페이지 버퍼, 워드 라인들 및 선택 라인들을 통해 상기 메모리 셀 어레이에 연결되는 행 디코더, 그리고 선택된 메모리 단위에 포함되는 복수의 페이지 영역에 데이터를 프로그램하도록 상기 페이지 버퍼 또는 상기 행 디코더를 제어하는 제어 로직을 포함하되, 상기 제어 로직은 쓰기 데이터가 상기 선택된 메모리 단위의 기억 용량보다 작은 경우, 상기 복수의 행들 각각의 페이지 영역들 중에서 적어도 2개 페이지 영역들을 제 1 스크램블 방식으로 선택하여 프로그램하고, 적어도 다른 하나의 페이지 영역을 행들의 배열 순서에 따라 선택하는 제 2 스크램블 방식으로 프로그램하도록 상기 페이지 버퍼 또는 상기 행 디코더를 제어한다.
상기 과제를 이루기 위한 본 발명의 실시 예에 따른 메모리 시스템은, 선택된 메모리 블록의 일부 페이지 영역들을 행들이 교대로 선택되는 교대 프로그램 방식에 따라 프로그램하는 부분 교대 프로그램 모드와, 상기 메모리 블록의 모든 페이지 영역들을 상기 교대 프로그램 방식에 따라 프로그램하는 풀 교대 프로그램 모드 중 어느 하나의 모드로 쓰기 데이터를 프로그램하는 불휘발성 메모리 장치, 그리고 속성(Attribute)을 참조하여 부분 교대 프로그램 또는 상기 풀 교대 프로그램 모드 중 어느 하나의 모드로 상기 쓰기 데이터를 프로그램되도록 상기 불휘발성 메모리 장치를 제어하는 메모리 컨트롤러를 포함한다.
상기 과제를 이루기 위한 본 발명의 실시 예에 따른 메모리 시스템은, 선택된 메모리 블록의 일부 페이지 영역들을 행들이 교대로 선택되는 교대 프로그램 방식에 따라 프로그램하는 부분 교대 프로그램 모드와, 상기 메모리 블록의 모든 페이지 영역들을 상기 교대 프로그램 방식에 따라 프로그램하는 풀 교대 프로그램 모드 중 어느 하나의 모드로 쓰기 데이터를 프로그램하는 불휘발성 메모리 장치, 그리고 전원 관리 모드를 참조하여 부분 교대 프로그램 또는 상기 풀 교대 프로그램 모드 중 어느 하나의 모드로 상기 쓰기 데이터를 프로그램되도록 상기 불휘발성 메모리 장치를 제어하는 메모리 컨트롤러를 포함한다.
상기 과제를 이루기 위한 본 발명의 실시 예에 따른 페이지 단위로 프로그램되는 멀티 레벨 셀들을 포함하는 불휘발성 메모리 장치의 프로그램 방법은, 선택된 메모리 단위에서 적어도 2개 페이지 영역들을 행들이 교대로 선택되는 교대 프로그램 방식으로 프로그램하는 단계, 그리고 상기 선택된 메모리 단위에서 다른 적어도 하나의 페이지 영역을 행들의 배열 순서에 따라 선택되는 순차 프로그램 방식으로 프로그램하는 단계를 포함한다.
상기 과제를 이루기 위한 본 발명의 실시 예에 따른 제 1 워드 라인, 상기 제 1 워드 라인에 인접한 제 2 워드 라인, 그리고 상기 제 2 워드 라인에 인접한 제 3 워드 라인에 연결되는 멀티 레벨 메모리 셀들을 포함하는 불휘발성 메모리 장치의 프로그램 방법은, 상기 제 1 워드 라인에 연결된 메모리 셀들의 제 2 페이지 영역을 프로그램하는 단계, 상기 제 3 워드 라인에 연결된 메모리 셀들의 제 1 페이지 영역을 프로그램하는 단계, 상기 제 2 워드 라인에 연결된 메모리 셀들의 제 2 페이지 영역을 프로그램하는 단계, 상기 제 1 워드 라인에 연결된 메모리 셀들의 제 3 페이지 영역을 프로그램하는 단계, 상기 제 2 워드 라인에 연결된 메모리 셀들의 제 3 페이지 영역을 프로그램하는 단계, 그리고 상기 제 3 워드 라인에 연결된 메모리 셀들의 제 3 페이지 영역을 프로그램하는 단계를 포함한다.
상기 과제를 이루기 위한 본 발명의 실시 예에 따른 복수의 행들로 배열되는 메모리 셀들을 포함하는 불휘발성 메모리 장치의 프로그램 방법은, 상기 메모리 셀들의 제 1 논리 페이지 영역과 제 2 논리 페이지 영역에 워드 라인들을 교대로 선택하여 데이터를 프로그램하는 단계, 그리고 상기 제 1 논리 페이지 영역과 상기 제 2 논리 페이지 영역에 대한 프로그램이 완료된 후에, 상기 메모리 셀들의 제 3 논리 페이지 영역에 상기 워드 라인들의 배열된 순서에 따라 데이터를 프로그램하는 단계를 포함하되, 상기 워드 라인들의 배열된 순서에 따라 데이터를 프로그램하는 단계에서, 상기 워드 라인들은 접지 선택 라인으로부터 스트링 선택 라인 방향으로 순차적으로 하나씩 선택된다.
상기 과제를 이루기 위한 본 발명의 실시 예에 따른, 복수의 행들로 배열되는 메모리 셀들을 포함하는 불휘발성 메모리 장치의 프로그램 방법은, 상기 메모리 셀들의 제 1 논리 페이지 영역에 워드 라인들의 배열된 순서에 따라 데이터를 프로그램하는 단계, 그리고 상기 제 1 논리 페이지 영역에 대한 프로그램이 완료된 후에, 상기 메모리 셀들의 제 2 논리 페이지 영역과 제 3 논리 페이지 영역에 워드 라인들을 교대로 선택하여 데이터를 프로그램하는 단계를 포함하되, 상기 워드 라인들의 배열된 순서에 따라 데이터를 프로그램하는 단계에서, 상기 워드 라인들은 접지 선택 라인으로부터 스트링 선택 라인 방향으로 순차적으로 하나씩 선택된다.
상기 과제를 이루기 위한 본 발명의 실시 예에 따른, 복수의 행들로 메모리 셀들이 배열되며, 상기 복수의 행들 각각에 대응하는 메모리 셀들에는 복수의 논리 페이지 영역들이 할당되는 불휘발성 메모리 장치의 프로그램 방법은, 상기 메모리 셀들의 논리 페이지 영역들 중에서 적어도 2개의 논리 페이지 영역들을 제 1 스크램블 방식으로 선택하여 프로그램하는 단계, 그리고 상기 메모리 셀들의 논리 페이지 영역들 중에서 다른 하나의 논리 페이지 영역을 상기 복수의 행들의 배열 순서에 따라 순차적으로 선택하는 제 2 스크램블 방식으로 프로그램하는 단계를 포함한다.
본 발명의 실시 예에 따르면, 최상위 상태로 프로그램되는 메모리 셀들의 수를 최소화시켜, 프로그램 교란(Program Disturbance)을 줄이고 메모리 셀의 열화를 저감할 수 있다. 따라서, 불휘발성 메모리 장치에 저장되는 데이터의 무결성(Data Integrity)을 높일 수 있다.
도 1은 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 보여주는 블록도이다.
도 2는 도 1의 메모리 블록들(BLK1~BLKz) 중 하나(BLKi)를 예시적으로 보여주는 사시도이다.
도 3은 도 2의 절단선(Ⅰ-Ⅰ')에 따른 셀 스트링을 보여주는 단면도이다.
도 4는 도 3의 트랜지스터 구조(TS)를 보여주는 단면도이다.
도 5는 도 2의 메모리 블록(BLKi)을 예시적으로 보여주는 등가 회로도이다.
도 6은 메모리 블록에 데이터가 기입되는 순서를 보여주는 표이다.
도 7은 본 발명의 실시 예에 따른 수직 구조 불휘발성 메모리 장치의 프로그램 방법을 보여주는 표이다.
도 8은 도 1의 메모리 블록의 다른 실시 예를 보여주는 회로도이다.
도 9는 본 발명의 실시 예에 따른 데이터 쓰기 방법을 평면형 셀 스트링을 갖는 메모리 블록에 적용하는 방법을 보여주는 표이다.
도 10은 본 발명의 다른 실시 예에 따른 불휘발성 메모리 장치(400)를 보여주는 블록도이다.
도 11a 및 도 11b는 도 10의 불휘발성 메모리 장치(400)에 의해서 수행되는 부분 교대 프로그램(PA_PGM)과 풀 교대 프로그램(FA_PGM) 방법을 각각 보여주는 표들이다.
도 12는 도 10의 불휘발성 메모리 장치에서 수행되는 프로그램 방법을 간략히 보여주는 순서도이다.
도 13은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 14는 도 13의 메모리 시스템에 의한 프로그램 방법을 보여주는 테이블들이다.
도 15는 도 13의 메모리 시스템에서 수행되는 프로그램 방법을 보여주는 순서도이다.
도 16a는 본 발명의 다른 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 16b는 도 16a에서 설명된 프로그램 방법을 보여주는 순서도이다.
도 17a는 본 발명의 또 다른 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 17b는 도 17a에서 설명된 프로그램 방법을 보여주는 순서도이다.
도 18은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 19는 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 20은 도 19의 어느 하나의 불휘발성 메모리 칩에 대한 부분 교대 프로그램 방법을 보여주는 표이다.
도 21은 복수의 칩들에 데이터가 프로그램되는 경우를 예시적으로 보여주는 표들이다.
도 22는 멀티 칩 패키지로 구성되는 불휘발성 메모리 장치의 다른 예를 간략히 보여주는 블록도이다.
도 23a 내지 도 23d는 본 발명의 부분 교대 프로그램(PA_PGM)의 다양한 응용 예들을 보여주는 도면들이다.
도 24a 내지 도 24c는 본 발명의 프로그램 방법의 다른 예를 보여주는 도면들이다.
도 25a 및 도 25b는 부분 교대 프로그램 방식을 멀티 레벨 셀 불휘발성 메모리 장치에 적용할 때 얻게 되는 이점을 보여주기 위한 도면들이다.
도 26는 본 발명의 실시 예에 따른 솔리드 스테이트 드라이브를 보여주는 블록도이다.
도 27은 본 발명의 실시 예에 따른 데이터 저장 장치를 예시적으로 보여주는 블록도이다.
도 28은 본 발명의 실시 예에 따른 메모리 카드를 예시적으로 보여주는 블록도이다.
도 29는 본 발명에 따른 플래시 메모리 장치 및 그것을 포함하는 컴퓨팅 시스템의 개략적인 구성을 보여주는 도면이다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다. 동일한 구성 요소들은 동일한 참조번호를 이용하여 인용될 것이다. 유사한 구성 요소들은 유사한 참조번호들을 이용하여 인용될 것이다. 아래에서 설명될 본 발명에 따른 플래시 메모리 장치의 회로 구성과, 그것에 의해 수행되는 읽기 동작은 예를 들어 설명한 것에 불과하며, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 다양한 변화 및 변경이 가능하다.
더불어, 이하에서는 멀티 레벨 셀(Multi-Level Cell: MLC)로 구성되는 메모리 영역에서 프로그램 영역을 지칭하기 위해 제 1 페이지 영역, 제 2 페이지 영역, 그리고 제 3 페이지 영역과 같은 용어가 사용될 것이다. 이들 페이지 영역들은 선택된 메모리 영역에서, 논리적으로 구분되는 페이지 영역들을 지칭한다. 제 1 페이지 영역은 최하위 비트들이 저장되는 LSB 페이지 영역에 대응한다.
도 1은 본 발명의 실시 예에 따른 불휘발성 메모리 장치(100)를 보여주는 블록도이다. 도 1을 참조하면, 불휘발성 메모리 장치(100)는 메모리 셀 어레이(110), 행 디코더(120), 페이지 버퍼(130), 그리고 제어 로직(140)을 포함한다.
메모리 셀 어레이(110)는 워드 라인들(WLs) 또는 선택 라인들(SSL, GSL)을 통해 행 디코더(120)에 연결된다. 메모리 셀 어레이(110)는 비트 라인들(BLs)을 통해서 페이지 버퍼(130)에 연결된다. 메모리 셀 어레이(110)는 복수의 낸드형 셀 스트링들(NAND Cell Strings)을 포함한다. 복수의 셀 스트링들은 동작 또는 선택 단위에 따라 메모리 블록, 서브 블록(Sub block), 수퍼 블록(Super block) 등을 구성할 수 있다.
셀 스트링들 각각의 채널은 수직 또는 수평 방향으로 형성될 수 있다. 수평 방향으로 형성되는 셀 스트링들에 의해서 복수의 메모리 블록들(BLK1~BLKz)이 구성될 수 있다. 메모리 셀 어레이(110)에는 복수의 워드 라인들이 수직 방향으로 적층되고, 셀 스트링들 각각의 채널이 수직 방향으로 형성될 수 있다. 이런 셀 스트링의 구조로 메모리 셀 어레이(110)가 형성되는 메모리 장치를 수직 구조 불휘발성 메모리 장치 또는 3차원 구조 불휘발성 메모리 장치라 칭하기도 한다.
셀 스트링이 수평 방향으로 형성되거나 수직 방향으로 형성되는 메모리 장치에서 메모리 셀들 각각은 멀티 레벨 셀(MLC)로 구동될 수 있다. 멀티 레벨 셀(MLC)은 하나의 메모리 셀에 적어도 2-비트를 저장할 수 있는 메모리 셀이다. 멀티 레벨 셀의 프로그램에 있어서, 프로그램 교란(Program disturbance)을 최소화하기 위해서 비순차적으로 또는 교대로 워드 라인을 선택하는 프로그램 방식이 사용되고 있다. 예를 들면, 행 또는 워드 라인들이 교대로 선택되도록 설정되는 셰도우 프로그램(Shadow program) 방식이 사용될 수 있다. 셰도우 프로그램(Shadow program) 방식에 의하면, 현재 프로그램을 위해 선택된 행에 비인접한 행이 다음 프로그램 시퀀스에서 선택된다. 이하에서는 셰도우 프로그램 방식과 같은 프로그램 방식을 교대 프로그램(Alternate Program) 방식이라 칭하기로 한다.
하지만, 이러한 셰도우 프로그램과 같은 교대 프로그램 방식에 따르면, 하나의 메모리 블록에 데이터가 완전히 채워지지 않는 경우에도 각각의 메모리 셀들이 최상위 상태로 프로그램될 가능성이 크다. 본 발명의 부분 교대 프로그램(Partial Alternate Program) 방식에 따르면, 메모리 셀들이 최상위 상태로 프로그램되는 비율을 줄일 수 있다. 따라서, 본 발명의 불휘발성 메모리 장치(100)는 프로그램 교란의 주요 원인인 메모리 셀들이 최상위 상태로의 프로그램되는 빈도를 대폭 줄일 수 있다.
행 디코더(120)는 어드레스(ADD)에 응답하여 메모리 셀 어레이(110)의 메모리 블록들 중 어느 하나를 선택할 수 있다. 행 디코더(120)는 선택된 메모리 블록의 워드 라인들(WLs) 중 어느 하나를 선택할 수 있다. 행 디코더(120)는 선택된 메모리 블록의 워드 라인에 워드 라인 전압을 전달한다. 프로그램 동작시 행 디코더(120)는 선택 워드 라인(Selected WL)에 프로그램 전압(Vpgm)과 검증 전압(Vvfy)을, 비선택 워드 라인(Unselected WL)에는 패스 전압(Vpass)을 전달한다. 그리고 행 디코더(120)는 선택 라인들(SSL, GSL)에 선택 신호를 제공하여 메모리 블록, 서브 블록 등을 선택할 수 있다.
페이지 버퍼(130)는 동작 모드에 따라 기입 드라이버로서 또는 감지 증폭기로서 동작한다. 프로그램 동작시, 페이지 버퍼(130)는 메모리 셀 어레이(110)의 비트 라인으로 프로그램될 데이터에 대응하는 비트 라인 전압을 전달한다. 읽기 동작시, 페이지 버퍼(130)는 선택된 메모리 셀에 저장된 데이터를 비트 라인을 통해서 감지한다. 페이지 버퍼(130)는 감지된 데이터를 래치하여 외부에 전달한다.
제어 로직(140)은 외부로부터 전달되는 명령어(CMD)에 응답하여 페이지 버퍼(130) 행 디코더(120)를 제어한다. 제어 로직(140)은 프로그램 동작시, 입력되는 데이터를 본 발명의 실시 예에 따른 부분 교대 프로그램(이하, PS_PGM) 방식에 따라 선택된 메모리 영역에 프로그램한다. 예를 들면, 메모리 셀 어레이(110)의 각 메모리 블록들(BLK1~BLKz)이 3-비트 멀티 레벨 셀(MLC)이라면, 먼저 선택된 메모리 블록의 제 1 내지 제 2 페이지 영역이 교대 프로그램 방식으로 프로그램된다. 이어서, 선택된 메모리 블록의 제 3 페이지 영역은 교대 프로그램 방식이 아닌 순차 프로그램 방식에 따라 프로그램될 것이다. 즉, 제어 로직(140)의 제어에 따라 선택된 메모리 블록의 일부 페이지 영역만이 교대 프로그램 방식에 따라 프로그램될 것이다. 이런 경우, 메모리 블록 내에는 최상위 상태로 프로그램되는 메모리 셀들의 수를 획기적으로 감소시킬 수 있다.
본 발명의 불휘발성 메모리 장치(100)는 본 발명의 부분 교대 프로그램(PA_PGM) 방식으로 선택 영역(메모리 블록, 서브 블록, 수퍼 블록 등)을 프로그램한다. 따라서, 선택 영역(예를 들면, 메모리 블록) 내에서 최상위 상태로 프로그램되는 메모리 셀의 수를 획기적으로 저감할 수 있다. 따라서, 프로그램 전압의 레벨에 기인한 프로그램 교란 문제를 획기적으로 줄일 수 있다.
도 2는 도 1의 메모리 블록들(BLK1~BLKz) 중 하나(BLKi)를 예시적으로 보여주는 사시도이다. 도 2를 참조하면, 메모리 블록(BLKi)은 3차원 구조 또는 수직 구조로 형성되는 셀 스트링들을 포함한다. 메모리 블록(BLKi)은 복수의 방향들(x, y, z)을 따라 신장된 구조물들을 포함한다.
메모리 블록(BLKi)을 형성하기 위해서는, 우선 기판(111)이 제공된다. 예를 들면, 기판(111)은 붕소(B, Boron)와 같은 5족 원소가 주입되어 형성된 P-웰로 형성될 수 있을 것이다. 또는, 기판(111)은 N-웰 내에 제공되는 포켓 P-웰로 형성될 수 있을 것이다. 이하에서, 기판(111)은 P-웰 인 것으로 가정하기로 한다. 그러나 기판(111)은 P-웰에만 한정되지 않는다.
기판(111) 상에, x 방향을 따라 복수의 도핑 영역들(311~314)이 형성된다. 예를 들면, 복수의 도핑 영역들(311~314)은 기판(111)과 상이한 n 타입의 도전체로 형성될 수 있을 것이다. 이하에서, 제 1 내지 제 4 도핑 영역들(311~314)은 n 타입을 갖는 것으로 가정한다. 그러나, 제 1 내지 제 4 도핑 영역들(311~314)은 n 타입을 갖는 것으로 한정되지 않는다.
제 1 및 제 2 도핑 영역들(311, 312) 사이의 기판(111)의 영역 상에, y 방향을 따라 신장되는 복수의 절연 물질들(112)이 z 방향을 따라 순차적으로 제공된다. 예를 들면, 복수의 절연 물질들(112)은 z 방향을 따라 특정 거리만큼 이격되어 형성될 것이다. 예시적으로, 절연 물질들(112)은 실리콘 산화물(Silicon Oxide)과 같은 절연 물질을 포함할 것이다.
제 1 및 제 2 도핑 영역들(311, 312) 사이의 기판(111) 상부에, y 방향을 따라 순차적으로 배치되며 z 방향을 따라 절연 물질들(112)을 관통하는 필라(113)가 형성된다. 예시적으로, 필라(113)는 절연 물질들(112)을 관통하여 기판(111)과 연결될 것이다. 여기서, 필라(113)는 제 2 및 제 3 도핑 영역들(312, 313) 사이의 기판 상부와, 제 3 및 제 4 도핑 영역들(313, 314) 사이의 기판 상부에도 형성된다.
예시적으로, 각 필라(113)는 복수의 물질들로 구성될 것이다. 예를 들면, 각 필라(113)의 표면층(114)은 제 1 타입을 갖는 실리콘 물질을 포함할 것이다. 예를 들면, 각 필라(113)의 표면층(114)은 기판(111)과 동일한 타입을 갖는 실리콘 물질을 포함할 것이다. 이하에서, 각 필라(113)의 표면층(114)은 p 타입 실리콘을 포함하는 것으로 가정한다. 그러나, 각 필라(113)의 표면층(114)은 p 타입 실리콘을 포함하는 것으로 한정되지 않는다.
각 필라(113)의 내부층(115)은 절연 물질로 구성된다. 예를 들면, 각 필라(113)의 내부층(115)은 실리콘 산화물(Silicon Oxide)과 같은 절연 물질을 포함할 것이다. 예를 들면, 각 필라(113)의 내부층(115)은 에어 갭(Air gap)을 포함할 수 있다.
제 1 및 제 2 도핑 영역들(311, 312) 사이의 영역에서, 절연 물질들(112), 필라들(113), 그리고 기판(111)의 노출된 표면을 따라 절연막(116)이 제공된다. 예시적으로, z 방향을 따라 제공되는 마지막 절연 물질(112)의 z 방향 쪽의 노출면에 제공되는 절연막(116)은 제거될 수 있다.
예시적으로, 절연막(116)의 두께는 절연 물질들(112) 사이의 거리의 1/2 보다 작을 것이다. 즉, 절연 물질들(112) 중 제 1 절연 물질의 하부면에 제공된 절연막(116), 그리고 제 1 절연 물질 하부의 제 2 절연 물질의 상부면에 제공된 절연막(116) 사이에, 절연 물질들(112) 및 절연막(116) 이외의 물질이 배치될 수 있는 영역이 제공될 것이다.
제 1 및 제 2 도핑 영역들(311, 312) 사이의 영역에서, 절연막(116)의 노출된 표면상에 제 1 도전 물질들(211~291)이 제공된다. 예를 들면, 기판(111)에 인접한 절연 물질(112) 및 기판(111) 사이에 y 방향을 따라 신장되는 제 1 도전 물질(211)이 제공된다. 더 상세하게는, 기판(111)에 인접한 절연 물질(112)의 하부면의 절연막(116) 및 기판(111) 사이에, x 방향으로 신장되는 제 1 도전 물질(211)이 제공된다.
절연 물질들(112) 중 특정 절연 물질 상부면의 절연막(116) 및 특정 절연 물질 상부에 배치된 절연 물질의 하부면의 절연막(116) 사이에, y 방향을 따라 신장되는 제 1 도전 물질이 제공된다. 예시적으로, 절연 물질들(112) 사이에, y 방향으로 신장되는 복수의 제 1 도전 물질들(221~281)이 제공된다. 예시적으로, 제 1 도전 물질들(211~291)은 금속 물질일 것이다. 예시적으로, 제 1 도전 물질들(211~291)은 폴리 실리콘 등과 같은 도전 물질들일 것이다.
제 2 및 제 3 도핑 영역들(312, 313) 사이의 영역에서, 제 1 및 제 2 도핑 영역들(311, 312) 상의 구조물과 동일한 구조물이 제공될 것이다. 예시적으로, 제 2 및 제 3 도핑 영역들(312, 313) 사이의 영역에서, y 방향으로 신장되는 복수의 절연 물질들(112), y 방향을 따라 순차적으로 배치되며 x 방향을 따라 복수의 절연 물질들(112)을 관통하는 복수의 필라들(113), 복수의 절연 물질들(112) 및 복수의 필라들(113)의 노출된 표면에 제공되는 절연막(116), 그리고 y 방향을 따라 신장되는 복수의 제 1 도전 물질들(212~292)이 제공된다.
제 3 및 제 4 도핑 영역들(313, 314) 사이의 영역에서, 제 1 및 제 2 도핑 영역들(311, 312) 상의 구조물과 동일한 구조물이 제공될 것이다. 예시적으로, 제 3 및 제 4 도핑 영역들(312, 313) 사이의 영역에서, y 방향으로 신장되는 복수의 절연 물질들(112), y 방향을 따라 순차적으로 배치되며 z 방향을 따라 복수의 절연 물질들(112)을 관통하는 복수의 필라들(113), 복수의 절연 물질들(112) 및 복수의 필라들(113)의 노출된 표면에 제공되는 절연막(116), 그리고 y 방향을 따라 신장되는 복수의 제 1 도전 물질들(213~293)이 제공된다.
복수의 필라들(113) 상에 드레인들(320)이 각각 제공된다. 예시적으로, 드레인들(320)은 제 2 타입으로 도핑된 실리콘 물질들일 것이다. 예를 들면, 드레인들(320)은 n 타입으로 도핑된 실리콘 물질들일 것이다. 이하에서, 드레인들(320)은 n 타입 실리콘을 포함하는 것으로 가정한다. 그러나 드레인들(320)은 n 타입 실리콘을 포함하는 것으로 한정되지 않는다. 예시적으로, 각 드레인(320)의 폭은 대응하는 필라(113)의 폭 보다 클 수 있다. 예를 들면, 각 드레인(320)은 대응하는 필라(113)의 상부면에 패드 형태로 제공될 수 있다.
드레인들(320) 상에, x 방향으로 신장된 제 2 도전 물질들(331~333)이 제공된다. 제 2 도전 물질들(331~333)은 y 방향을 따라 순차적으로 배치된다. 제 2 도전 물질들(331~333) 각각은 대응하는 영역의 드레인들(320)과 연결된다. 예시적으로, 드레인들(320) 및 x 방향으로 신장된 제 2 도전 물질(333)은 각각 콘택 플러그들(Contact plug)을 통해 연결될 수 있다. 예시적으로, 제 2 도전 물질들(331~333)은 금속 물질들일 것이다. 예시적으로, 제 2 도전 물질들(331~333)은 폴리 실리콘 등과 같은 도전 물질들일 것이다.
도 3은 도 2의 수직 구조로 형성된 낸드형 셀 스트링을 보여주는 단면도이다. 도 3을 참조하면, 하나의 셀 스트링에는 비트 라인에 연결되는 필라의 주변에 형성되는 복수의 메모리 셀들이 포함된다. 설명의 편의를 위하여, 하나의 셀 스트링에 7개의 메모리 셀들이 형성되는 것으로 가정하기로 한다.
제 1 및 제 2 도핑 영역들(311, 312) 사이에서, z 방향을 따라 복수 층의 절연 물질들(112)을 관통하는 필라(PL)가 형성된다. 필라(PL)는 절연 물질들(112)을 관통하여 기판(111)과 접촉할 수 있다. 필라(PL)는 채널막(114) 및 내부 물질(115)을 포함할 수 있다.
채널막(114)은 제 1 도전형을 갖는 반도체 물질(예를 들면, 실리콘)을 포함할 수 있다. 예를 들면, 채널막(114)은 기판(111)과 동일한 도전형을 갖는 반도체 물질(예를 들면, 실리콘)을 포함할 수 있다. 이하에서, 채널막(114)은 p 타입 실리콘을 포함하는 것으로 가정한다. 그러나, 채널막(114)은 p 타입 실리콘을 포함하는 것으로 한정되지 않는다. 예를 들면, 채널막(114)은 도전형을 갖지 않는 진성 반도체(Intrinsic semiconductor)를 포함할 수 있다.
내부 물질(115)은 절연 물질을 포함한다. 예를 들면, 내부 물질(115)은 실리콘 산화물(Silicon Oxide)과 같은 절연 물질을 포함할 수 있다. 예를 들면, 내부 물질(115)은 에어 갭(Air gap)을 포함할 수 있다.
제 1 및 제 2 도핑 영역들(311, 312) 사이에서, 절연 물질(112) 및 필라(PL)의 노출된 표면들 상에 정보 저장막들(116, 도 3 참조)이 제공된다. 제 1 및 제 2 도핑 영역들(311, 312) 중 인접한 두 개의 도핑 영역들 사이에서, 정보 저장막들(116)의 노출된 표면들 상에 도전 물질들이 제공된다.
도핑 영역들(311, 312) 상에서, 도전 물질들 및 절연 물질들(112)은 워드 라인 컷(WL cut)에 의해 분리될 수 있다. 예시적으로, 도전 물질들(CM1~CM8)은 금속성 도전 물질을 포함 수 있다. 도전 물질들은 폴리 실리콘 등과 같은 비금속성 도전 물질을 포함할 수 있다.
필라(PL) 상에는 드레인(320)이 형성될 수 있다. 예시적으로, 드레인(320)은 제 2 도전형을 갖는 반도체 물질(예를 들면, 실리콘)을 포함할 수 있다. 예를 들면, 드레인(320)은 n 타입 도전형의 반도체 물질(예를 들면, 실리콘)을 포함할 수 있다. 이하에서, 드레인(320)은 n 타입 실리콘을 포함하는 것으로 가정한다. 그러나, 드레인(320)은 n 타입 실리콘을 포함하는 것으로 한정되지 않는다. 예시적으로, 드레인(320)은 필라(PL)의 채널막(114)의 상부로 확장될 수 있다.
드레인(320) 상에, x 방향으로 신장되는 비트 라인(BL)이 제공된다. 비트 라인(BL)은 드레인(320)과 연결된다. 예시적으로, 드레인(320) 및 비트 라인(BL)은 콘택 플러그들(미도시)을 통해 연결될 수 있다. 예시적으로, 비트 라인(BL)은 금속성 도전 물질들을 포함할 수 있다. 예시적으로, 비트 라인들(BL)은 폴리 실리콘 등과 같은 비금속성 도전 물질들을 포함할 수 있다.
도면에서는, 필라(PL)에 의해서 형성되는 셀 스트링의 채널을 서로 다른 z 방향 위치에서의 단면들(210, 220)이 도시되어 있다. 단면(210)은 워드 라인(WL<0>)에 대응하는 평면에서의 채널 홀(Channel Hole)의 단면이고, 단면(220)은 워드 라인(WL<6>)에 대응하는 평면에서의 채널 홀의 단면이다. 즉, 셀 스트링의 채널을 구성하는 필라(PL)의 지름, 또는 채널 홀의 직경은 채널의 깊이에 따라 달라짐을 알 수 있다.
셀 스트링은 여러 층의 박막을 한 번에 에칭하여 홀(Hole)을 형성하고, 그 내부에 실리콘 채널막을 형성함으로써 만들어진다. 이때, 에칭 공정을 통해 형성된 채널 홀(Hole)의 지름은 깊이에 따라 달라질 수 있으며, 통상적으로는 깊이 내려갈수록 그 지름이 작아진다. 즉, 워드 라인(WL<0>)을 관통하여 형성되는 채널 홀의 반경(R)은 워드 라인(WL<6>)을 관통하는 채널 홀의 반경(r)보다 크다.
셀 스트링의 단면(210)을 살펴보면, 워드 라인(WL<0>)에 연결되는 하나의 셀 트랜지스터의 단면이 도시된다. 셀 트랜지스터는 내부에서부터 순차적으로 내부층(211), 채널층(212), 터널 산화막층(213), 전하 저장층(214), 절연층(215), 그리고 워드 라인에 해당하는 도전층(216)을 포함한다.
가장 안쪽의 내부층(211)은 실리콘 산화물(Silicon Oxide)이나 에어갭(Air gap)으로 형성될 수 있다. 채널층(212)은 p 타입의 실리콘층으로 형성되며, 셀 트랜지스터의 채널로 동작할 것이다. 터널 산화막층(213)은 터널링 효과에 의해서 전하가 이동하는 터널링 절연막으로 동작한다. 전하 저장층(214)은 전하를 포획하는 절연막으로 구성될 수 있다. 전하 저장층(214)은, 예를 들면, 질화막(SiN) 또는 금속(알루미늄이나 하프늄) 산화막으로 형성될 수 있다. 절연막(215)은 도전층(216)과 전하 저장층(214) 사이에서 절연막으로 동작한다. 절연층(215)은 실리콘 산화막으로 형성될 수 있다. 도전층(216)은 셀 트랜지스터의 게이트로 동작할 것이다. 여기서, 터널 산화막층(213), 전하 저장층(214), 그리고 절연층(215)은 ONO(Oxide-Nitride-Oxide) 구조의 절연막으로 형성될 수 있다.
도 4는 도 3의 트랜지스터 구조(TS)를 보여주는 단면도이다. 도 2 내지 도 4를 참조하면, 절연막(116)은 제 1 내지 제 3 서브 절연막들(117, 118, 119)을 포함한다.
필라(113)의 p 타입 실리콘을 포함하는 표면층(114)은 바디(body)로 동작할 것이다. 필라(113)에 인접한 제 1 서브 절연막(117)은 터널링 절연막으로 동작할 것이다. 예를 들면, 필라(113)에 인접한 제 1 서브 절연막(117)은 열산화막을 포함할 것이다.
제 2 서브 절연막(118)은 전하 저장막으로 동작할 것이다. 예를 들면, 제 2 서브 절연막(118)은 전하 포획층으로 동작할 것이다. 예를 들면, 제 2 서브 절연막(118)은 질화막 또는 금속 산화막(예를 들면, 알루미늄 산화막, 하프늄 산화막 등)을 포함할 것이다.
제 1 도전 물질(233)에 인접한 제 3 서브 절연막(119)은 블로킹 절연막으로 동작할 것이다. 예시적으로, 제 1 방향으로 신장된 제 1 도전 물질(233)과 인접한 제 3 서브 절연막(119)은 단일층 또는 다층으로 형성될 수 있다. 제 3 서브 절연막(119)은 제 1 및 제 2 서브 절연막들(117, 118) 보다 높은 유전상수를 갖는 고유전막(예를 들면, 알루미늄 산화막, 하프늄 산화막 등)일 수 있다.
제 1 도전 물질(233)은 게이트(또는 제어 게이트)로 동작할 것이다. 즉, 게이트(또는 제어 게이트)로 동작하는 제 1 도전 물질(233), 블로킹 절연막으로 동작하는 제 3 서브 절연막(119), 전하 저장막으로 동작하는 제 2 서브 절연막(118), 터널링 절연막으로 동작하는 제 1 서브 절연막(117), 그리고 바디로 동작하는 p 타입 실리콘을 포함하는 표면층(114)은 트랜지스터(또는 메모리 셀 트랜지스터 구조)를 형성할 것이다. 예시적으로, 제 1 내지 제 3 서브 절연막들(117~119)은 ONO (oxide-nitride-oxide)를 구성할 수 있다. 이하에서, 필라(113)의 p 타입 실리콘을 포함하는 표면층(114)은 제 2 방향의 바디로 동작하는 것으로 정의된다.
메모리 블록(BLKi)에서, 하나의 필라(113)는 하나의 셀 스트링(NS)에 대응한다. 메모리 블록(BLKi)은 복수의 필라들(113)을 포함한다. 즉, 메모리 블록(BLKi)은 복수의 셀 스트링들(NS)을 포함한다. 더 상세하게는, 메모리 블록(BLKi)은 z 방향(또는 기판과 수직한 방향)으로 신장된 복수의 셀 스트링들(NS)을 포함한다.
각 셀 스트링(NS)은 z 방향을 따라 적층되는 복수의 트랜지스터 구조들(TS)을 포함한다. 각 셀 스트링(NS)의 복수의 트랜지스터 구조들(TS) 중 적어도 하나는 스트링 선택 트랜지스터(SST)로 동작한다. 각 셀 스트링(NS)의 복수의 트랜지스터 구조들(TS) 중 적어도 하나는 접지 선택 트랜지스터(GST)로 동작한다.
게이트들(또는 제어 게이트들)은 y 방향으로 신장된 제 1 도전 물질들(211~291, 212~292, 213~293)에 대응한다. 즉, 게이트들(또는 제어 게이트들)은 y 방향으로 신장되어 워드 라인(WL)들, 그리고 적어도 두 개의 선택 라인들(SL, 예를 들면, 적어도 하나의 스트링 선택 라인(SSL) 및 적어도 하나의 접지 선택 라인(GSL))을 형성한다.
x 방향으로 신장된 제 2 도전 물질들(331~333)은 셀 스트링들(NS)의 일단에 연결된다. 예시적으로, x 방향으로 신장된 제 2 도전 물질들(331~333)은 비트 라인들(BL)로 동작한다. 즉, 하나의 메모리 블록(BLKi)에서, 하나의 비트 라인(BL)에 복수의 셀 스트링들이 연결된다.
y 방향으로 신장된 제 2 타입 도핑 영역들(311~314)이 셀 스트링들의 타단에 제공된다. y 방향으로 신장된 제 2 타입 도핑 영역들(311~314)은 공통 소스 라인(CSL)으로 동작한다.
요약하면, 메모리 블록(BLKi)은 기판(111)에 수직한 방향(z 방향)으로 신장된 복수의 셀 스트링들을 포함하며, 하나의 비트 라인(BL)에 복수의 셀 스트링들(NS)이 연결되는 낸드 플래시 메모리 블록(예를 들면, 전하 포획형)으로 동작한다.
도 5는 도 2의 메모리 블록(BLKi)을 예시적으로 보여주는 등가 회로도이다. 도 2 내지 도 5를 참조하면, 제 1 비트 라인(BL<1>) 및 공통 소스 라인(CSL) 사이에 셀 스트링들(NS11~NS31)이 제공된다. 제 2 비트 라인(BL<2>) 및 공통 소스 라인(CSL) 사이에 셀 스트링들(NS12, NS22, NS32)이 제공된다. 제 3 비트 라인(BL<3>) 및 공통 소스 라인(CSL) 사이에, 셀 스트링들(NS13, NS23. NS33)이 제공된다. 제 1 내지 제 3 비트 라인들(BL<1>~BL<3>)은 x 방향으로 신장된 제 2 도전 물질들(331~333)에 각각 대응할 것이다.
각 셀 스트링(NS)의 스트링 선택 트랜지스터(SST)는 대응하는 비트 라인(BL)과 연결된다. 각 셀 스트링(NS)의 접지 선택 트랜지스터(GST)는 공통 소스 라인(CSL)과 연결된다. 각 셀 스트링(NS)의 스트링 선택 트랜지스터(SST) 및 접지 선택 트랜지스터(GST) 사이에 메모리 셀들(MC0~MC6)이 제공된다.
이하에서, 행 및 열 단위로 셀 스트링들(NS)이 정의된다. 하나의 비트 라인에 공통으로 연결된 셀 스트링들(NS)은 하나의 열을 형성한다. 예를 들면, 제 1 비트 라인(BL<1>)에 연결된 셀 스트링들(NS11~NS31)은 제 1 열에 대응할 것이다. 제 2 비트 라인(BL<2>)에 연결된 셀 스트링들(NS12~NS32)은 제 2 열에 대응할 것이다. 제 3 비트 라인(BL<3>)에 연결된 셀 스트링들(NS13~NS33)은 제 3 열에 대응할 것이다.
하나의 스트링 선택 라인(SSL)에 연결되는 셀 스트링들(NS)은 하나의 행을 형성한다. 예를 들면, 제 1 스트링 선택 라인(SSL<1>)에 연결된 셀 스트링들(NS11~NS13)은 제 1 행을 형성한다. 제 2 스트링 선택 라인(SSL<2>)에 연결된 셀 스트링들(NS21~NS23)은 제 2 행을 형성한다. 제 3 스트링 선택 라인(SSL<3>)에 연결된 셀 스트링들(NS31~NS33)은 제 3 행을 형성한다.
셀 스트링들(NSs) 각각은 접지 선택 트랜지스터(GST)를 포함한다. 접지 선택 트랜지스터들은 하나의 접지 선택 라인(GSL)에 의해서 제어될 수 있다. 혹은 도시되지는 않았지만, 각 행들에 대응하는 셀 스트링들은 서로 다른 접지 선택 라인들에 의해서 제어될 수 있다. 예를 들면, 제 1 행에 대응하는 셀 스트링들(NS11, NS12, NS13) 각각의 접지 선택 트랜지스터들은 제 1 접지 선택 라인(GSL1)에 연결될 수 있다. 그리고 제 2 행에 대응하는 셀 스트링들(NS12, NS22, NS23) 각각의 접지 선택 트랜지스터들은 제 2 접지 선택 라인(GSL2)에 연결될 수 있다. 제 3 행에 대응하는 셀 스트링들(NS31, NS32, NS33) 각각의 접지 선택 트랜지스터들은 제 3 접지 선택 라인(GSL3)에 연결될 수 있다.
동일한 반도체 층에 대응하는 메모리 셀들(MC)은 워드 라인(WL)을 공유한다. 도전 라인들(221~223)이 공통으로 연결되어 제 1 워드 라인(WL<0>)을 형성한다. 도전 라인들(231~233)이 공통으로 연결되어 제 2 워드 라인(WL<1>)을 형성한다. 도전 라인들(241~243)이 공통으로 연결되어 제 3 워드 라인(WL<2>)을 형성한다. 도전 라인들(251~253)이 공통으로 연결되어 제 4 워드 라인(WL<3>)을 형성한다. 도전 라인들(261~263)이 공통으로 연결되어 제 5 워드 라인(WL<4>)을 형성한다. 도전 라인들(271~273)이 공통으로 연결되어 제 6 워드 라인(WL<5>)을 형성한다. 도전 라인들(281~283)이 공통으로 연결되어 제 7 워드 라인(WL<6>)을 형성한다.
동일한 행의 셀 스트링들(NS)은 스트링 선택 라인(SSL)을 공유한다. 상이한 행의 셀 스트링들(NS)은 상이한 스트링 선택 라인들(SSL<1>, SSL<2>, SSL<3>)에 각각 연결된다. 이하에서, 제 1 스트링 선택 트랜지스터들(SST1)은 제 1 스트링 선택 라인(SSL<1>)에 연결된 스트링 선택 트랜지스터들(SST)로 정의된다. 제 2 스트링 선택 트랜지스터들(SST2)은 제 2 스트링 선택 라인(SSL<2>)에 연결된 스트링 선택 트랜지스터들(SST)로 정의된다. 제 3 스트링 선택 트랜지스터들(SST3)은 제 3 스트링 선택 라인(SSL<3>)에 연결된 스트링 선택 트랜지스터들(SST)로 정의된다.
공통 소스 라인(CSL)은 셀 스트링들(NS)에 공통으로 연결된다. 예를 들면, 제 1 내지 제 4 도핑 영역들(311~314)이 서로 연결되어 공통 소스 라인(CSL)을 형성할 것이다.
하나의 메모리 블록(BLKi)은 하나의 스트링 선택 라인(SSL)을 공유하는 복수의 스트링 단위로 구분될 수 있다. 즉, 메모리 블록(BLKi)은 하나의 스트링을 공유하는 복수의 셀 스트링으로 구성된 서브-블록들로 구분될 수 있다. 그리고, 본 발명의 부분 교대 프로그램(Partial Alternate Program: 이하, PA_PGM)의 적용 단위는 하나의 메모리 블록보다 적은 단위인 서브 블록(SB) 단위에 적용될 수도 있다.
제 1 스트링 선택 라인(SSL<1>)을 공유하는 셀 스트링들(NS11, NS12, NS13)은 제 1 메모리 블록(BLK1)으로 구분될 수 있다. 제 2 스트링 선택 라인(SSL<2>)을 공유하는 셀 스트링들(NS21, NS22, NS23)은 제 2 메모리 블록(BLK2)으로 구분될 수 있다. 제 3 스트링 선택 라인(SSL<3>)을 공유하는 셀 스트링들(NS31, NS32, NS33)은 제 3 메모리 블록(BLK3)으로 구분될 수 있다. 비록 9개의 셀 스트링들을 3개의 서브 블록들로 구분했지만, 이러한 구분 기준은 셀 스트링의 수에 관계없이 적용된다.
본 발명의 부분 교대 프로그램(PA_PGM)의 적용 단위는 서브 블록(SB) 단위에도 적용될 수 있을 것이다. 예를 들면, 메모리 블록(BLK1)에 포함되는 메모리 셀들 각각이 3-비트 MLC인 경우, 메모리 블록(BLK1)의 제 1 내지 제 2 페이지 영역들(1st page, 2nd page)까지는 교대 프로그램(Alternate Program)을 적용하여 데이터가 프로그램될 수 있다. 그리고 마지막 제 3 페이지 영역(3rd page)에 저장되는 데이터는 워드 라인 순서에 따라 순차적으로 프로그램될 수 있다.
스트링 선택 라인(SSL)을 공유하는 서브 블록 단위로 본 발명의 부분 교대 프로그램(PA_PGM)이 적용되는 것으로 상술한 도면에서 설명되었으나, 본 발명은 이에 국한되지 않는다. 복수의 서브 블록들(SB1, SB2, SB3)을 포함하고, 소거의 기본 단위가 되는 메모리 블록(BLKi)이 본 발명의 부분 교대 프로그램(PA_PGM)의 적용 단위가 될 수 있다. 예를 들면, 메모리 블록(BLKi)에 포함된 모든 메모리 셀들 각각에 제 1 내지 제 2 페이지 영역(1st page, 2nd page)이 교대 프로그램 방식에 따라 프로그램될 수 있다. 그리고 마지막 제 3 페이지 영역(3rd page)에 저장될 데이터는 워드 라인 순서에 따라 순차적으로 프로그램될 수 있다. 이러한 프로그램 방법에 따르면, 모든 페이지를 교대 프로그램 방식으로 저장하는 경우에 비하여 최상위 상태로 프로그램되는 메모리 셀들의 수를 줄일 수 있다.
도 6은 본 발명의 실시 예에 따른 프로그램 방법을 보여주는 표이다. 도 6을 참조하면, 본 발명의 실시 예에 따른 부분 교대 프로그램(이하, PS_PGM)에 따른 프로그램 순서를 보여준다. 도 6을 설명하기 위해서 하나의 메모리 블록(또는 서브 블록)에는 실질적으로 데이터가 저장되는 메모리 셀들이 16개의 워드 라인들(WL<0>~WL<15>)에 연결된다고 가정하자. 그리고 하나의 메모리 블록에 프로그램될 데이터가 39개 페이지 사이즈(예를 들면, 39×4KByte/page)라 가정하자.
본 발명의 실시 예에 따른 부분 교대 프로그램(PA_PGM) 방식에 따라 32개 페이지에 대응하는 데이터(0~31 pages)가 제 1 내지 제 2 페이지 영역에 교대 프로그램 방식으로 기입된다. 처음에는 제 3 페이지 영역(3rd page, 또는 MSB 페이지 영역)을 제외한 제 1 페이지 영역(1st page, LSB 페이지 영역)와 제 2 페이지 영역(2nd page)이 교대 프로그램 절차에 의해서 프로그램된다. 이어서, 나머지 7개 페이지에 대응하는 데이터(32~38 pages)가 제 3 페이지 영역(3rd page)에 워드 라인의 순서에 따라 순차적으로 프로그램된다.
부분 교대 프로그램(PA_PGM)의 절차를 좀더 자세히 설명하면 다음과 같다. 먼저, 제 1 페이지 영역(1st page, LSB 페이지)과 제 2 페이지 영역(2nd page)에 대한 프로그램이 진행된다. 선택된 메모리 블록의 메모리 셀들은 프로그램 시퀀스(WL<0>→WL<1>→WL<0>→WL<2>→WL<1>→WL<3>→WL<2>→WL<4>→…)에 의거하여 프로그램된다. 즉, 쓰기 데이터 (page 0)이 워드 라인(WL<0>)의 제 1 페이지 영역(1st page, LSB 페이지)에 프로그램된다. 그리고 쓰기 데이터 (page 1)이 워드 라인(WL<1>)의 제 1 페이지 영역(1st page, LSB 페이지)에 프로그램된다. 이어서, 쓰기 데이터 (page 2)가 워드 라인(WL<0>)의 제 2 페이지 영역(2nd page)에 프로그램된다. 그리고 쓰기 데이터 (page 3)이 워드 라인(WL<2>)의 제 1 페이지 영역(1st page, LSB 페이지)에 프로그램된다. 이어서, 쓰기 데이터 (page 4)가 워드 라인(WL<1>)의 제 2 페이지 영역(2nd page)에 프로그램된다. 그리고 쓰기 데이터 (page 5)가 워드 라인(WL<3>)의 제 1 페이지 영역(1st page, LSB 페이지)에 프로그램된다. 이어서 쓰기 데이터 (page 6)이 워드 라인(WL<2>)의 제 2 페이지 영역(2nd page)에 프로그램된다. 이러한 프로그램 절차에 따라 제 1 내지 제 2 페이지 영역들(1st page, 2nd page)에 32개 페이지 사이즈의 쓰기 데이터들(pages 0~31)이 교대 프로그램 방식으로 프로그램된다.
메모리 블록의 제 1 내지 제 2 페이지 영역(1st page, 2nd page)에 32개 페이지 크기의 쓰기 데이터가 교대 프로그램 방식으로 기입된다. 이후에, 나머지 쓰기 데이터 (pages 32~38)는 제 3 페이지 영역(3rd page, MSB 페이지)에 순차적으로 기입된다. 즉, 워드 라인이 교대로 선택되는 것이 아니라 배열 순서에 따라 순차적으로 선택되면서, 쓰기 데이터(pages 32~38)가 제 3 페이지 영역(3rd page)에 프로그램된다. 선택된 메모리 블록의 제 3 페이지 영역(3rd page)에 쓰기 데이터(pages 32~38)가 기입되기 위해서 행(또는 워드 라인)들은 선택 시퀀스(WL<0>→WL<1>→WL<2>→WL<3>→WL<4>→WL<5>→WL<6>)를 따른다.
본 발명의 실시 예에 따른 부분 교대 프로그램(PA_PGM) 절차에 따라 데이터를 프로그램하면, MSB 페이지 영역(예를 들면, 3rd page)이 채워지는 메모리 셀들의 수를 최소화할 수 있다. 즉, 48개 페이지 사이즈를 가지는 3-비트 MLC 메모리 블록에 39개 페이지 데이터를 프로그램하는 경우에, 본 발명의 부분 교대 프로그램(PA_PGM)을 적용하면, 9개의 행들(WL<7>~WL<15>)에 대응하는 메모리 셀들의 제 3 페이지 영역(3rd page)이 비어있게 된다. 9개 워드 라인들(WL<7>~WL<15>)에 연결되는 메모리 셀들의 가장 높은 프로그램 상태는 8개의 상태들 중 프로그램 상태(P3)에 대응한다. 반면, 3개 페이지 영역이 모두 프로그램된 7개 워드 라인들(WL<0>~WL<6>)에 연결된 메모리 셀들의 최상위 프로그램 상태는 8개의 프로그램 상태들 중 프로그램 상태(P7)에 대응한다. 따라서, 3개 페이지 영역들이 모두 프로그램된 7개 워드 라인들(WL<0>~WL<6>)에 연결된 메모리 셀들보다 9개 워드 라인들(WL<7>~WL<15>)에 연결되는 메모리 셀들에서 발생하는 프로그램 교란은 현저히 감소한다.
여기서, 메모리 블록에 할당되는 쓰기 데이터가 32개 페이지 용량보다 적을 수도 있다. 이 경우, 쓰기 데이터는 메모리 블록의 제 1 내지 제 2 페이지 영역(1st page, 2nd page)에 교대 프로그램 방식으로 기입된다. 그리고, 프로그램 절차가 행(WL<15>)에 도달하기 전에 메모리 블록에 대한 쓰기 동작은 종료될 것이다. 본 발명의 부분 교대 프로그램(PA_PGM) 방식에 따르면, 제 3 페이지 영역이 비어있는 메모리 셀들은 9개 워드 라인들(WL<7>~WL<15>)에 대응한다. 반면, 모든 페이지 영역을 교대 프로그램 방식으로 프로그램하는 풀 교대 프로그램(FA_PGM)을 적용하면, 제 3 페이지 영역이 비어있는 메모리 셀들은 4개 워드 라인들(WL<12> ~ WL<15>)에 지나지 않는다.
결론적으로, 할당된 데이터가 메모리 블록에 완전히 채워지지 않는 경우, 부분 교대 프로그램(PA_PGM) 방식이 풀 교대 프로그램(FA_PGM) 방식에 비해 향상된 프로그램 교란(Program disturbance) 특성을 기대할 수 있다.
도 7은 본 발명의 실시 예에 따른 수직 구조 불휘발성 메모리 장치의 프로그램 방법을 보여주는 표이다. 도 6 및 도 7을 참조하면, 각각의 표들은 수직 구조 불휘발성 메모리 장치의 메모리 블록들(BLK1~BLK3)의 프로그램 방법을 보여준다.
3개의 메모리 블록들(BLK1~BLK3)로 구성되고, 쓰기 데이터의 사이즈가 117개 페이지 크기로 입력된다 가정하자. 그러면, 117개의 페이지를 3개의 메모리 블록들(BLK1~BLK3)에 분배하면, 각각의 메모리 블록들에는 39개 페이지(pages 0~38)가 할당된다. 프로그램 동작시, 각각의 메모리 블록들의 제 1 내지 제 2 페이지 영역(1st page, 2nd page)에 할당된 39개의 페이지 데이터 중에서 32개 페이지 데이터가 교대 프로그램 방식으로 프로그램된다. 그리고 각각의 메모리 블록들에 대해 남은 8개의 페이지 데이터가 제 3 페이지 영역(3rd page)에 행 순서대로 순차적으로 프로그램될 것이다. 이러한 경우에, 각각의 메모리 블록들(BLK1~BLK3)에서 제 3 페이지 영역(3rd page)이 비어있는 행들의 수가 9개씩 포함된다. 그리고 메모리 블록들(BLK1~BLK3) 전체적으로는 27개의 제 3 페이지 영역(3rd page)이 비어있는 행들이 존재한다.
부분 교대 프로그램(PA_PGM) 방식을 적용하지 않고 3개의 메모리 블록을 풀 교대 프로그램(FA_PGM) 방식으로 저장하는 경우, 2개의 메모리 블록에는 제 3 페이지 영역이 비어있는 행은 존재하지 않는다. 그리고 나머지 1개의 메모리 블록에 10개 행에 대응하는 메모리 셀들이 제 3 페이지 영역(3rd page)이 비어있는 셀들로 남을 것이다. 결국, 본 발명의 부분 교대 프로그램(PA_PGM) 방식을 적용하면, 제 3 페이지 영역(3rd page)이 비어있는 17개(27-10)개의 행들이 더 포함될 수 있다.
이상에서, 메모리 블록 단위로 부분 교대 프로그램(PA_PGM) 방식이 적용되는 것으로 본 발명의 기술적 특징이 설명되었으나, 본 발명은 여기에만 국한되지 않는다. 예를 들면, 하나의 스트링 선택 라인을 공유하는 셀 스트링들(서브 블록)이 본 발명의 부분 교대 프로그램(PA_PGM)의 적용 단위가 될 수 있다.
도 8은 도 1의 메모리 블록의 다른 실시 예를 보여주는 회로도이다. 도 8을 참조하면, 메모리 블록의 셀 스트링들이 기판에 대해서 평행하게 배치되는 셀 어레이 구조를 보여준다. 복수의 메모리 블럭들(BLK1~BLKz) 중 어느 하나는 복수의 비트 라인들(BL<0>~BL<m-1>)에 연결된 복수의 셀 스트링들을 포함한다.
각각의 셀 스트링은 비트 라인(BL)과 공통 소스 라인(CSL) 사이에 연결되어 있는 복수의 메모리 셀들(MCs)을 포함한다. 각각의 셀 스트링은 스트링 선택 라인(SSL)에 연결되는 스트링 선택 트랜지스터(SST), 복수의 워드 라인들(WL<0>~WL<n-1>)에 연결되는 복수의 메모리 셀들, 그리고 접지 선택 라인(GSL)에 연결되는 접지 선택 트랜지스터(GST)를 포함한다.
스트링 선택 트랜지스터(SST<0)는 비트 라인(BL<0>)에 연결되고, 접지 선택 트랜지스터(GST<0>)는 공통 소스 라인(CSL)에 연결된다. 스트링 선택 트랜지스터(SST<1>)는 비트 라인(BL<1>)에 연결되고, 접지 선택 트랜지스터(GST<1>)는 공통 소스 라인(CSL)에 연결된다. 스트링 선택 트랜지스터(SST<m-1>)는 비트 라인(BL<m-1>)에 연결되고, 접지 선택 트랜지스터(GST<m-1>)는 공통 소스 라인(CSL)에 연결된다. 이상의 구조에 따라 복수의 셀 스트링들이 하나의 메모리 블록을 구성하게 될 것이다.
하나의 메모리 블록(BLKi)에 대한 데이터 쓰기는 본 발명의 부분 교대 프로그램 방식에 따라 수행될 수 있다. 즉, 메모리 블록(BLKi)에 포함되는 모든 셀 스트링들에 대해서, 제 1 내지 제 2 페이지 영역(1st page~2nd page)에 대한 프로그램시에는 교대 프로그램 방식을 적용하고, 제 3 페이지 영역(3rd page)을 프로그램할 때에는 워드 라인들의 순서에 따라 순차적으로 프로그램되도록 설정될 수 있다.
상술한 도 8에서는 동일한 반도체 층에 평면 방향으로 셀 스트링들이 형성되는 메모리 블록(BLKi)의 구조가 설명되었다. 하지만, 이러한 평면 방향으로 셀 스트링들이 형성되는 메모리 블록들이 기판에 대하여 복수의 층으로 형성되는 불휘발성 메모리 장치에도 본 발명의 기술적 특징이 적용될 수 있을 것이다. 각각의 메모리 블록이 서로 다른 반도체 층에 형성되는 불휘발성 메모리 장치에서도 본 발명의 부분 교대 프로그램(PA_PGM) 방식의 데이터 쓰기가 적용될 수 있다.
도 9는 본 발명의 실시 예에 따른 데이터 쓰기 방법을 평면형 셀 스트링을 갖는 메모리 블록에 적용하는 방법을 보여주는 표이다. 도 9를 참조하면, 평면형(Planar type) 셀 스트링들을 포함하는 메모리 블록에 쓰기 데이터가 기입되는 순서가 도시되어 있다. 본 발명의 실시 예에 따른 부분 교대 프로그램(PA_PGM)에 따른 프로그램 순서를 보여준다. 설명을 위하여, 하나의 메모리 블록에는 실질적으로 데이터가 저장되는 메모리 셀들이 16개의 행 또는 워드 라인들(WL<0>~WL<15>)에 연결된다고 가정하자. 그리고 하나의 블록에 저장되는 데이터가 39개 페이지 사이즈(예를 들면, 1 페이지당 4KByte)라 가정하자.
본 발명의 실시 예에 따른 부분 교대 프로그램(PA_PGM) 방식에 따라 32개 페이지에 대응하는 쓰기 데이터(pages 0~31)가 메모리 블록에 교대 프로그램 방식으로 기입된다. 이때, 교대 프로그램 방식이 적용되는 메모리 셀의 페이지 영역은 제 3 페이지 영역(3rd page, 또는 MSB 페이지 영역)을 제외한 제 1 페이지 영역(1st page, LSB 페이지)과 제 2 페이지 영역(2nd page)이다. 제 1 내지 제 2 페이지 영역(1st page, 2nd page)에 32개 페이지 크기의 쓰기 데이터가 교대 프로그램 방식으로 기입된다. 이어서, 쓰기 데이터(pages 32~38)가 메모리 블록의 제 3 페이지 영역(3rd page)에 행들의 배열 순서에 따라 순차적으로 프로그램된다.
부분 교대 프로그램(PA_PGM)의 구체적인 수행 절차는 다음과 같다. 먼저, 제 1 페이지 영역(1st page, LSB 페이지)과 제 2 페이지 영역(2nd page)에 대한 프로그램이 진행된다. 선택된 메모리 블록의 메모리 셀들은 프로그램 시퀀스(WL<0>→WL<1>→WL<0>→WL<2>→WL<1>→WL<3>→WL<2>→WL<4>→…)에 의거하여 프로그램된다. 즉, 쓰기 데이터 (page 0)가 워드 라인(WL<0>)의 제 1 페이지 영역(1st page, LSB 페이지)에 프로그램된다. 그리고 쓰기 데이터 (page 1)이 워드 라인(WL<1>)의 제 1 페이지 영역(1st page, LSB 페이지)에 프로그램된다. 이어서, 쓰기 데이터 (page 2)가 워드 라인(WL<0>)의 제 2 페이지 영역(2nd page)에 프로그램된다. 그리고 쓰기 데이터 (page 3)이 워드 라인(WL<2>)의 제 1 페이지 영역(1st page, LSB 페이지)에 프로그램된다. 이어서, 쓰기 데이터 (page 4)가 워드 라인(WL<1>)의 제 2 페이지 영역(2nd page)에 프로그램된다. 그리고 쓰기 데이터 (page 5)가 워드 라인(WL<3>)의 제 1 페이지 영역(1st page, LSB 페이지)에 프로그램된다. 이어서 쓰기 데이터 (page 6)이 워드 라인(WL<2>)의 제 2 페이지 영역(2nd page)에 프로그램된다. 이러한 프로그램 절차에 따라 제 1 내지 제 2 페이지 영역(1st page, 2nd page)에 32개 페이지 사이즈의 쓰기 데이터들(pages 0~31)이 교대 프로그램 방식으로 프로그램된다.
제 1 내지 제 2 페이지 영역들(1st page, 2nd page)에 32개 페이지 단위의 쓰기 데이터가 교대 프로그램 방식으로 기입된다. 그리고 그 이후에, 나머지 쓰기 데이터(pages 32~38)는 제 3 페이지 영역(3rd page, MSB 페이지)에 워드 라인의 배열 순서에 따라 순차적으로 기입된다. 즉, 워드 라인이 교대로 선택되는 것이 아니라 순차적으로 선택되면서, 쓰기 데이터(pages 32~38)가 제 3 페이지 영역(3rd page)에 프로그램된다. 선택된 메모리 블록의 제 3 페이지 영역(3rd page)에 쓰기 데이터(pages 32~38)가 기입되기 위해서 프로그램 시퀀스(WL<0>→WL<1>→WL<2>→WL<3>→WL<4>→WL<5>→WL<6>)에 의거하여 행들이 선택된다.
본 발명의 실시 예에 따른 부분 교대 프로그램(PA_PGM) 절차에 따라 데이터를 프로그램하면, MSB 페이지 영역(예를 들면, 3rd page)이 채워지는 메모리 셀들의 수를 최소화할 수 있다.
도 10은 본 발명의 다른 실시 예에 따른 불휘발성 메모리 장치(400)를 보여주는 블록도이다. 도 10을 참조하면, 불휘발성 메모리 장치(400)는 메모리 셀 어레이(410), 행 디코더(420), 페이지 버퍼(430), 그리고 제어 로직(440)을 포함한다. 특히, 제어 로직(440)은 외부로부터 제공되는 프로그램 모드(P_Mode)에 따라 선택된 메모리 단위에 대한 부분 교대 프로그램(PA_PGM)을 수행할 수 있다.
메모리 셀 어레이(410), 행 디코더(420), 그리고 페이지 버퍼(430)들 각각은 도 1의 메모리 셀 어레이(210), 행 디코더(220), 그리고 페이지 버퍼(230)들과 동일한 구성이므로, 상세한 설명은 생략하기로 한다.
특히, 제어 로직(440)은 외부로부터 전달되는 명령어와 프로그램 모드(P_Mode)에 따라 행 디코더(420)와 페이지 버퍼(430)를 제어한다. 제어 로직(440)은 프로그램 동작시, 프로그램 모드(P_Mode)에 따라 선택된 메모리 단위에 대한 프로그램 방식을 선택한다. 제어 로직(440)은 프로그램 모드(P_Mode)에 따라 부분 교대 프로그램(PA_PGM) 방식 또는 풀 교대 프로그램(FA_PGM) 방식에 따라 입력된 데이터를 프로그램하도록 행 디코더(420)와 페이지 버퍼(430)를 제어한다.
제어 로직(440)은 외부의 제어에 따라 선택된 메모리 단위(메모리 블록, 서브 블록, 수퍼 블록)에 대한 쓰기 동작을 선택적으로 수행할 수 있다. 이러한 제어 로직(440)에 의해서 선택된 메모리 단위 내에는 최상위 상태로 프로그램되는 메모리 셀들의 수가 획기적으로 감소될 수 있다.
본 발명의 불휘발성 메모리 장치(400)는 본 발명의 부분 교대 프로그램(PA_PGM) 방식으로 선택된 메모리 단위를 프로그램한다. 데이터 쓰기 동작시 외부에서 제공되는 프로그램 모드(P_Mode)에 따라 선택된 메모리 단위를 액세스하게 된다. 따라서, 본 발명의 불휘발성 메모리 장치(400)에 따르면 다양한 메모리 단위에 대한 부분 교대 프로그램(PA_PGM)을 융통성있게 수행할 수 있다. 예를 들면, 어느 하나의 메모리 블록에 대해서는 풀 교대 프로그램(FA_PGM) 방식으로 데이터를 기입하고, 다른 하나의 메모리 블록에 대해서는 부분 교대 프로그램(PA_PGM) 방식으로 데이터를 기입할 수 있다.
도 11a 및 도 11b는 도 10의 불휘발성 메모리 장치(400)에 의해서 수행되는 부분 교대 프로그램(PA_PGM)과 풀 교대 프로그램(FA_PGM) 방법을 각각 보여주는 표들이다. 도 11a는 풀 교대 프로그램(FA_PGM)에 대응하는 프로그램 모드(P_Mode)에서, 도 11b는 부분 교대 프로그램(PA_PGM)에 대응하는 프로그램 모드(P_Mode)에서의 프로그램 절차를 각각 보여주는 표들이다.
도 11a를 참조하면, 외부로부터 제공되는 프로그램 모드(P_Mode)가 풀 교대 프로그램에 대응하는 경우, 3-비트 MLC 블록에서의 프로그램 절차가 예시적으로 도시되어 있다. 풀 교대 프로그램(FA_PGM) 방식에 따라 39개 페이지 사이즈에 대응하는 쓰기 데이터(0~39 pages)가 메모리 블록에 교대 프로그램 방식으로 기입된다. 이때, 교대 프로그램 방식은 제 1 페이지 영역(1st page, LSB 페이지) 내지 제 3 페이지 영역(3rd page, 또는 MSB 페이지)에 대해서 적용된다. 즉, 3-비트 MLC로 구성되는 메모리 블록에서, 모든 페이지 영역들이 교대 프로그램 방식에 의거하여 프로그램된다.
풀 교대 프로그램(FA_PGM)이 수행되는 절차는 다음과 같다. 메모리 블록의 메모리 셀들은 프로그램 시퀀스(WL<0>→WL<1>→WL<0>→WL<2>→WL<1>→WL<0>→WL<3>→WL<2>→WL<1>→WL<4>→WL<3>→WL<2>…)에 의거하여 프로그램된다. 즉, 쓰기 데이터 (page 0)이 워드 라인(WL<0>)의 제 1 페이지 영역(1st page, LSB 페이지)에 프로그램된다. 그리고 쓰기 데이터 (page 1)이 워드 라인(WL<1>)의 제 1 페이지 영역(1st page, LSB 페이지)에 프로그램된다. 이어서, 쓰기 데이터 (page 2)가 워드 라인(WL<0>)의 2 페이지 영역(2nd page)에 프로그램된다. 그리고 쓰기 데이터 (page 3)이 워드 라인(WL<2>)의 제 1 페이지 영역(1st page, LSB 페이지)에 프로그램된다. 이어서, 쓰기 데이터 (page 4)가 워드 라인(WL<1>)의 2 페이지 영역(2nd page)에 프로그램된다. 그리고 쓰기 데이터 (page 5)가 워드 라인(WL<0>)의 제 3 페이지 영역(3rd page, MSB)에 프로그램된다. 풀 교대 프로그램(FA_PGM) 절차에서는 이와 같이 메모리 셀들의 제 1 내지 제 3 페이지 영역(1st page ~ 3rd page)이 순차적으로 선택되어 프로그램된다.
이러한 프로그램 절차에 따라 쓰기 데이터 (page 38)이 워드 라인(WL<11>)에 대응하는 메모리 셀들의 제 3 페이지 영역(3rd page)에 저장됨으로써 메모리 블록에 대한 풀 교대 프로그램(FA_PGM)은 종료된다. 하지만, 39개 페이지에 대응하는 쓰기 데이터(0~38 pages)가 풀 교대 프로그램(FA_PGM)에 따라 프로그램된 이후, 메모리 블록에는 4개의 행들(WL<12>~WL<15>)만이 제 3 페이지 영역(MSB 페이지 영역)이 채워지지 않은 상태로 존재하게 된다.
도 11b는 부분 교대 프로그램(PA_PGM)에 대응하는 프로그램 모드(P_Mode)에서의 선택된 메모리 단위에 대한 프로그램 절차를 보여주는 표이다. 도 11b를 참조하면, 본 발명의 실시 예에 따른 부분 교대 프로그램(PA_PGM) 방식에 따라 32개 페이지에 대응하는 쓰기 데이터(0~31 pages)가 메모리 블록에 교대 프로그램 방식으로 기입된다. 이때, 교대 프로그램 방식이 적용되는 메모리 셀의 페이지는 제 3 페이지 영역(3rd page, 또는 MSB 페이지)을 제외한 제 1 페이지 영역(1st page, LSB 페이지)과 2 페이지 영역(2nd page)이다. 제 1 내지 2 페이지 영역(1st page, 2nd page)에 32개 페이지 단위 데이터들이 교대 프로그램 방식으로 기입된다.
선택된 메모리 단위(예를 들면, 메모리 블록)에 대한 부분 교대 프로그램(PA_PGM)이 수행되는 절차는 다음과 같다. 먼저, 제 1 페이지 영역(1st page, LSB 페이지)과 2 페이지 영역(2nd page)에 대한 프로그램이 진행된다. 선택된 메모리 블록의 메모리 셀들은 프로그램 시퀀스(WL<0>→WL<1>→WL<0>→WL<2>→WL<1>→WL<3>→WL<2>→WL<4>→…)에 의거하여 프로그램된다. 즉, 쓰기 데이터 (page 0)이 워드 라인(WL<0>)의 제 1 페이지 영역(1st page, LSB 페이지)에 프로그램된다. 그리고 쓰기 데이터 (page 1)이 워드 라인(WL<1>)의 제 1 페이지 영역(1st page, LSB 페이지)에 프로그램된다. 이어서, 쓰기 데이터 (page 2)가 워드 라인(WL<0>)의 2 페이지 영역(2nd page)에 프로그램된다. 그리고 쓰기 데이터 (page 3)이 워드 라인(WL<2>)의 제 1 페이지 영역(1st page, LSB 페이지)에 프로그램된다. 이어서, 쓰기 데이터 (page 4)가 워드 라인(WL<1>)의 2 페이지 영역(2nd page)에 프로그램된다. 그리고 쓰기 데이터 (page 5)가 워드 라인(WL<3>)의 제 1 페이지 영역(1st page, LSB 페이지)에 프로그램된다. 이어서 쓰기 데이터 (page 6)이 워드 라인(WL<2>)의 2 페이지 영역(2nd page)에 프로그램된다. 이러한 프로그램 절차에 따라 제 1 내지 2 페이지 영역(1st page, 2nd page)에 32개 페이지 단위의 쓰기 데이터들(pages 0~31)이 교대 프로그램 방식으로 프로그램된다.
메모리 블록의 제 1 내지 2 페이지 영역(1st page, 2nd page)에 32개 페이지 단위의 쓰기 데이터가 교대 프로그램 방식으로 기입된다. 그 이후에, 나머지 쓰기 데이터(pages 32~38)는 제 3 페이지 영역(3rd page, MSB 페이지)에 순차적으로 기입된다. 즉, 워드 라인이 교대로 선택되는 것이 아니라 순차적으로 선택되면서, 쓰기 데이터(pages 32~38)가 제 3 페이지 영역(3rd page)에 프로그램된다. 선택된 메모리 블록의 제 3 페이지 영역(3rd page)에 쓰기 데이터(pages 32~38)가 기입되기 위해서 프로그램 시퀀스(WL<0>→WL<1>→WL<2>→WL<3>→WL<4>→WL<5>→WL<6>)에 의거하여 프로그램된다.
본 발명의 실시 예에 따른 부분 교대 프로그램(PA_PGM) 절차에 따라 데이터를 프로그램하면, MSB 페이지 영역(예를 들면, 3rd page)이 채워지는 메모리 셀들의 수를 최소화할 수 있다. 즉, 48개 페이지 사이즈를 가지는 3-비트 MLC 메모리 블록에 39개 페이지 데이터를 프로그램하는 경우에, 본 발명의 부분 교대 프로그램에 의하면, 제 3 페이지 영역(MSB 페이지 영역)이 비어있는 메모리 셀들은 9개 워드 라인들(WL<7>~WL<15>)에 대응한다. 9개 워드 라인들(WL<7>~WL<15>)에 연결되는 메모리 셀들의 가장 높은 프로그램 상태는 프로그램 상태(P3)에 대응한다. 반면, 3개의 페이지 영역들이 모두 프로그램된 7개 워드 라인들(WL<0>~WL<6>)에 연결된 메모리 셀들의 최상위 프로그램 상태는 프로그램 상태(P7)에 대응한다. 따라서, 3개의 페이지 영역들이 모두 프로그램된 7개 워드 라인들(WL<0>~WL<6>)에 연결된 메모리 셀들보다 9개 워드 라인들(WL<7>~WL<15>)에 연결되는 메모리 셀들에서 발생하는 프로그램 교란은 월등히 감소한다.
이러한 프로그램 절차에 따라 쓰기 데이터 (page 38)이 워드 라인(WL<6>)에 대응하는 메모리 셀들의 제 3 페이지 영역(3rd page)에 저장됨으로써 메모리 블록에 대한 부분 교대 프로그램(PA_PGM)은 종료된다. 하지만, 39개 페이지에 대응하는 쓰기 데이터(0~38 pages)가 부분 교대 프로그램(PA_PGM)에 따라 프로그램된 이후, 메모리 블록에는 9개의 행들(WL<7>~WL<15>)이 MSB 페이지 영역이 채워지지 않은 상태로 존재하게 된다. 따라서, 프로그램 교란을 차단하기 위해서는 부분 교대 프로그램(PA_PGM) 방식이 풀 교대 프로그램(FA_PGM) 방식의 프로그램 모드에 비하여 우수할 것이다.
부분 교대 프로그램(PA_PGM)에 의해서 메모리 블록에 저장 가능한 모든 페이지들을 프로그램하면, 결국 최상위 상태로 프로그램되는 메모리 셀들의 수는 풀 교대 프로그램 방식과 차이가 없다. 본 발명의 부분 교대 프로그램 방식은 기입되는 데이터가 하나의 메모리 단위(예를 들면, 메모리 블록)보다 작은 경우에만 이점을 가진다. 따라서, 외부에서 제공되는 데이터의 사이즈를 참조하여, 프로그램 모드(P_Mode)가 선택되어야 할 것이다.
도 12는 도 10의 불휘발성 메모리 장치에서 수행되는 프로그램 방법을 간략히 보여주는 순서도이다. 도 12를 참조하면, 불휘발성 메모리 장치(400)는 프로그램 모드(P_Mode)에 따라 선택된 메모리 단위에 대한 프로그램 동작을 수행한다.
단계 S110에서, 외부로부터 제공되는 쓰기 명령어(CMD) 및 프로그램 모드(P_Mode)가 제어 로직(440)에 전달될 것이다. 더불어, 어드레스와 쓰기 데이터가 제공될 수 있다.
단계 S120에서, 제어 로직(440)은 입력되는 프로그램 모드(P_Mode)가 부분 교대 프로그램(PA_PGM)에 대응하는지, 또는 풀 교대 프로그램(FA_PGM)에 대응하는지 검출한다. 외부로부터 제공된 프로그램 모드(P_Mode)가 풀 교대 프로그램(FA_PGM)에 대응하는 경우, 절차는 단계 S130으로 이동한다. 반면, 외부로부터 제공된 프로그램 모드(P_Mode)가 부분 교대 프로그램(PA_PGM)에 대응하는 경우, 절차는 단계 S140으로 이동한다.
단계 S130에서, 제어 로직(440)은 외부로부터 입력된 쓰기 데이터를 풀 교대 프로그램(FA_PGM) 방식에 따라 선택된 메모리 영역 단위(예를 들면, 메모리 블록, 서브 블록, 또는 수퍼 블록)에 프로그램되도록 행 디코더(420) 및 페이지 버퍼(430)를 제어한다.
단계 S140에서, 제어 로직(440)은 외부로부터 입력된 쓰기 데이터를 부분 교대 프로그램(PA_PGM) 방식에 따라 선택된 메모리 단위(예를 들면, 메모리 블록, 서브 블록, 또는 수퍼 블록)에 프로그램되도록 행 디코더(420) 및 페이지 버퍼(430)를 제어한다. 즉, 제어 로직(440)은 쓰기 데이터 중에서 제 1 데이터(1st data)를 제 1 페이지 영역(1st page) 및 2 페이지 영역(2nd page)에 교대 프로그램 방식으로 프로그램되도록 행 디코더(420) 및 페이지 버퍼(430)를 제어한다.
단계 S150에서, 외부로부터 입력된 쓰기 데이터 중 단계 S140에서 프로그램되지 않은 제 2 데이터(2nd data)가 선택된 메모리 영역 단위의 제 3 페이지 영역(3rd page)에 순차적으로 프로그램된다. 제어 로직(440)은 외부로부터 입력된 쓰기 데이터 중 제 2 데이터(2nd data)를 선택된 메모리 영역 단위의 제 3 페이지 영역(3rd page)에 프로그램하도록 행 디코더(420) 및 페이지 버퍼(430)를 제어한다. 제 2 데이터(2nd data)가 프로그램될 때, 선택된 메모리 영역 단위에서 행(또는, 워드 라인)의 선택 순서는 교대로 선택되지 않고 순차적으로 선택될 것이다.
데이터 쓰기 동작시 외부에서 제공되는 프로그램 모드(P_Mode)에 따라 선택된 메모리 단위를 액세스하는 경우, 외부의 제어에 따라 다양한 메모리 단위에 대한 부분 교대 프로그램(PA_PGM)을 융통성있게 수행할 수 있다. 예를 들면, 어느 하나의 메모리 블록에 대해서는 풀 교대 프로그램(FA_PGM) 방식으로 데이터를 기입하고, 다른 하나의 메모리 블록에 대해서는 부분 교대 프로그램(PA_PGM) 방식으로 데이터를 기입할 수 있다. 이러한 프로그램 방법을 적용하면, 부분 교대 프로그램(PA_PGM) 방식의 이점과 풀 교대 프로그램(FA_PGM) 방식의 이점을 모두 취할 수 있다.
도 13은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다. 도 13을 참조하면, 메모리 시스템(500)은 메모리 컨트롤러(510)와 불휘발성 메모리 장치(520)를 포함한다. 여기서, 불휘발성 메모리 장치(520)는 셀 스트링들이 기판에 대해 수직 방향으로 형성되는 수직 구조 불휘발성 메모리 장치일 수 있다. 또는, 불휘발성 메모리 장치(520)는 셀 스트링이 기판에 평행한 방향으로 형성되는 평면 구조 불휘발성 메모리 장치일 수 있다. 또는, 불휘발성 메모리 장치(520)는 도 1의 불휘발성 메모리 장치(100) 또는 도 10의 불휘발성 메모리 장치(400)와 실질적으로 동일하게 제공될 수 있다.
메모리 컨트롤러(510)는 외부(또는, 호스트)로부터의 쓰기 요청에 따라 불휘발성 메모리 장치(520)를 액세스한다. 메모리 컨트롤러(510)는 쓰기 요청되는 데이터의 사이즈를 참조하여 프로그램 모드(P_Mode)를 결정한다. 프로그램 모드(P_Mode)의 예로, 부분 교대 프로그램(PA_PGM)이나 풀 교대 프로그램(FA_PGM)을 들 수 있다. 외부로부터 제공되는 쓰기 데이터의 크기가 하나의 메모리 블록 사이즈보다 작은 경우, 메모리 컨트롤러(510)는 선택된 메모리 블록에 부분 교대 프로그램(PA_PGM) 방식으로 프로그램하도록 불휘발성 메모리 장치(400)를 제어한다. 메모리 컨트롤러(510)는 외부로부터 제공되는 쓰기 데이터의 크기가 하나의 메모리 블록 사이즈와 동일한 경우, 선택된 메모리 블록에 풀 교대 프로그램(FA_PGM) 방식으로 프로그램하도록 불휘발성 메모리 장치(400)를 제어한다.
이러한 동작을 구현하기 위해서 메모리 컨트롤러(510)는 프로그램 모드 선택부(515)를 포함한다. 프로그램 모드 선택부(515)는 쓰기 요청되는 데이터의 사이즈를 참조하여 할당된 메모리 블록에 기입하기 위한 프로그램 모드(P_Mode)를 결정한다. 프로그램 모드 선택부(515)는 외부로부터 제공되는 쓰기 데이터의 크기가 복수의 메모리 블록에 대응하는 경우, 선택된 메모리 블록들 중에서 일부에 대한 프로그래 모드(P_Mode)를 풀 교대 프로그램(FA_PGM) 방식으로 선택한다. 프로그램 모드 선택부(515)는 선택된 메모리 블록들 중에서 데이터가 채워지지 않은 나머지 하나의 메모리 블록에는 부분 교대 프로그램(PA_PGM) 방식을 할당할 수 있다.
만일, 3.5개 메모리 블록 사이즈에 대응하는 쓰기 데이터가 입력되면, 메모리 컨트롤러(510)에 의해서 3개의 메모리 블록에는 풀 교대 프로그램(FA_PGM) 방식에 따라 3개 블록 사이즈의 쓰기 데이터를 프로그램될 것이다. 그리고 나머지 0.5개 메모리 블록 사이즈에 대응하는 쓰기 데이터는 마지막 선택된 메모리 블록에 부분 교대 프로그램(PA_PGM) 방식에 따라 프로그램될 수 있다. 이 경우, 풀 교대 프로그램(FA_PGM) 방식의 이점과, 부분 교대 프로그램(PA_PGM) 방식의 이점을 모두 취할 수 있다.
도 14는 도 13의 메모리 시스템에 의한 프로그램 방법을 보여주는 테이블들이다. 도 14를 참조하면, 미디어 데이터와 같은 스트리밍 파일에 대한 쓰기 요청이 발생하면, 메모리 컨트롤러(510)는 풀 교대 프로그램(FA_PGM)과 부분 교대 프로그램(PA_PGM)을 혼용하는 프로그램 동작을 수행한다.
외부로부터 메모리 시스템(500)에 178개 페이지 크기에 대응하는 쓰기 데이터가 입력되었다고 가정하자. 메모리 블록들 각각은 3-비트 MLC 셀들로 구성되며, 각각 16행(16 WLs)에 대응하는 메모리 셀들을 포함하는 것으로 가정한다. 그러면, 메모리 컨트롤러(510)는 4개의 메모리 블록(BLK0~BLK3)에 쓰기 데이터를 할당하게 될 것이다. 특히, 3개 메모리 블록들(BLK0~BLK2)에는 각각 48개 페이지 크기의 데이터가 할당된다. 그리고 나머지 하나의 메모리 블록(BLK3)에는 34개 페이지 데이터가 할당된다. 여기서, 쓰기 데이터가 모든 메모리 영역에 완전히 채워지는 3개 메모리 블록들(BLK0~BLK2)에 대해서는 풀 교대 프로그램(FA_PGM) 방식에 따라 프로그램 동작이 진행될 것이다. 반면, 34개 페이지 데이터는 메모리 블록(BLK3)에 부분 교대 프로그램(PA_PGM) 방식에 따라 프로그램될 것이다.
3개 메모리 블록들(BLK0~BLK2)에 대한 풀 교대 프로그램(FA_PGM)을 통해서, 데이터가 모든 페이지에 기록되는 메모리 블록에서의 데이터 신뢰성을 높일 수 있다. 반면, 데이터가 메모리 블록의 일부에만 저장되는 메모리 블록(BLK3)에서는 부분 교대 프로그램(PA_PGM)을 통해서 최상위 상태로 프로그램되는 메모리 셀들의 수를 최소화시킨다. 따라서, 메모리 블록(BLK3)의 프로그램 동작에서 발생할 수 있는 프로그램 교란(Program Disturbance)을 최소화할 수 있다.
도 15는 도 13의 메모리 시스템에서 수행되는 프로그램 방법을 보여주는 순서도이다. 도 15를 참조하면, 메모리 컨트롤러(510, 도 13 참조)는 쓰기 데이터가 할당되는 메모리 블록에 채워지는지의 여부에 따라 풀 교대 프로그램(FA_PGM) 또는 부분 교대 프로그램(PA_PGM)을 선택적으로 수행할 수 있다.
단계 S210에서, 외부로부터 메모리 컨트롤러(510)는 외부로부터 쓰기 요청(Write request)을 제공받는다.
단계 S220에서, 메모리 컨트롤러(510)는 쓰기 요청되는 데이터를 저장하기 위한 메모리 블록(또는, 서브 블록, 수퍼 블록)을 할당할 것이다. 만일, 쓰기 요청된 데이터의 사이즈가 3.5개 메모리 블록의 용량에 해당하는 경우, 3개의 메모리 블록에는 쓰기 데이터가 채워지도록, 그리고 나머지 하나의 메모리 블록에는 0.5개 블록 용량에 대응하는 데이터가 기입되도록 쓰기 데이터가 할당될 것이다.
단계 S230에서, 메모리 컨트롤러(510)는 불휘발성 메모리 장치(520)에 할당된 4개의 메모리 블록들 중에서 어느 하나를 선택한다.
단계 S240에서, 메모리 컨트롤러(510)는 선택된 메모리 블록에 할당된 쓰기 데이터가 메모리 블록에 여유 공간을 주지 않고 채우는지 판단한다. 만일, 할당된 쓰기 데이터가 선택된 메모리 블록을 채우는 경우, 절차는 단계 S250으로 이동한다. 반면, 할당된 쓰기 데이터가 선택된 메모리 블록을 채우지 못하는 경우, 절차는 단계 S260으로 이동한다.
단계 S250에서, 메모리 컨트롤러(510)는 외부로부터 입력된 쓰기 데이터를 풀 교대 프로그램(FA_PGM)에 따라 선택된 메모리 블록에 프로그램되도록 불휘발성 메모리 장치(520)를 제어한다. 즉, 메모리 컨트롤러(510)는 선택된 메모리 블록의 모든 페이지들 영역들(LSB 페이지로부터 MSB 페이지 영역 모두)에 적용되는 교대 프로그램 절차에 따라 할당된 데이터를 프로그램하도록 불휘발성 메모리 장치(520)를 제어하게 될 것이다. 그리고 남아있는 데이터를 프로그램하기 위해서 메모리 블록을 추가적으로 선택하기 위한 단계 S230으로 복귀한다.
단계 S260에서, 메모리 컨트롤러(510)는 외부로부터 입력된 쓰기 데이터를 부분 교대 프로그램(PA_PGM) 방식에 따라 선택된 메모리 블록에 프로그램되도록 불휘발성 메모리 장치(520)를 제어한다. 특히, 쓰기 데이터 중에서 제 1 데이터(1st data)를 제 1 페이지 영역(1st page) 및 2 페이지 영역(2nd page)에 교대 프로그램 방식으로 프로그램되도록 불휘발성 메모리 장치(520)를 제어한다.
단계 S270에서, 쓰기 데이터 중 단계 S260에서 프로그램되지 않은 제 2 데이터(2nd data)가 선택된 메모리 블록의 제 3 페이지 영역(3rd page)에 순차적으로 프로그램된다. 메모리 컨트롤러(510)는 쓰기 데이터 중 제 2 데이터(2nd data)를 선택된 메모리 블록의 제 3 페이지 영역(3rd page)에 프로그램하도록 불휘발성 메모리 장치(520)를 제어한다. 제 2 데이터(2nd data)가 프로그램될 때, 선택된 메모리 블록에서 행(또는, 워드 라인)의 선택 순서는 교대로 선택되지 않고 순차적으로 선택될 것이다. 선택된 메모리 블록에 대한 부분 교대 프로그램(PA_PGM)이 완료되면, 쓰기 요청에 대한 제반 프로그램 동작은 종료된다.
데이터 쓰기 동작시 외부에서 제공되는 데이터의 사이즈에 따라 선택된 메모리 블록을 액세스하는 경우, 메모리 블록들 대한 부분 교대 프로그램(PA_PGM)을 융통성있게 수행할 수 있다. 예를 들면, 어느 하나의 메모리 블록에 대해서는 풀 교대 프로그램(FA_PGM) 방식으로 데이터를 기입하고, 다른 하나의 메모리 블록에 대해서는 부분 교대 프로그램(PA_PGM) 방식으로 데이터를 기입할 수 있다.
도 16a는 본 발명의 다른 실시 예에 따른 메모리 시스템을 보여주는 블록도이다. 도 16a를 참조하면, 메모리 시스템(600a)은 메모리 컨트롤러(610a)와 불휘발성 메모리 장치(620a)를 포함한다. 여기서, 불휘발성 메모리 장치(620a)는 셀 스트링들이 기판에 대해 수직 방향으로 형성되는 수직 구조 불휘발성 메모리 장치일 수 있다. 또는 불휘발성 메모리 장치(620a)는 셀 스트링이 기판에 평행한 방향으로 형성되는 평면 구조 불휘발성 메모리 장치일 수 있다. 또는, 불휘발성 메모리 장치(620a)는 도 1의 불휘발성 메모리 장치(100) 또는 도 11의 불휘발성 메모리 장치(400)와 실질적으로 동일하게 제공될 수 있다.
메모리 컨트롤러(610a)는 외부(또는, 호스트)로부터의 쓰기 요청에 따라 불휘발성 메모리 장치(620a)를 액세스한다. 메모리 컨트롤러(610a)는 특히 쓰기 요청되는 데이터의 속성(Attribute)에 따라 프로그램 모드를 결정할 수 있다. 예를 들면, 메모리 컨트롤러(610a)는 메타 데이터(Meta data)와 같이 중요도가 높은 데이터를 부분 교대 프로그램(PA_PGM) 방식으로 메타 데이터 영역(621)에 프로그램할 수 있다. 그리고, 메모리 컨트롤러(610)는 쓰기 요청된 데이터가 유저 데이터(User data)인 경우, 풀 교대 프로그램(FA_PGM) 방식으로 유저 데이터 영역(623)에 프로그램할 수 있다.
쓰기 요청된 데이터의 속성(Attribute)이 여기에 개시된 특성에만 국한되지 않음은 잘 이해될 것이다. 다양한 제어 데이터들이나 코드(Code) 데이터가 부분 교대 프로그램(PA_PGM) 방식에 따라 불휘발성 메모리 장치(620)의 선택 영역에 프로그램될 수 있을 것이다.
더불어, 상술한 데이터의 속성에 따른 쓰기 방식과는 반대의 쓰기 방식으로도 수행될 수 있음을 잘 이해될 것이다. 예를 들면, 메모리 컨트롤러(610a)는 메타 데이터(Meta data)와 같이 중요도가 높은 데이터를 풀 교대 프로그램(FA_PGM) 방식으로 메타 데이터 영역(621)에 프로그램할 수 있다. 그리고, 메모리 컨트롤러(610)는 쓰기 요청된 데이터가 유저 데이터(User data)인 경우, 부분 교대 프로그램(PA_PGM) 방식으로 유저 데이터 영역(623)에 프로그램할 수 있다.
도 16b는 도 16a에서 설명된 프로그램 방법을 보여주는 순서도이다. 도 16b를 참조하면, 쓰기 요청되는 데이터의 속성(Attribute)에 따라 프로그램 모드가 결정되는 본 발명의 프로그램 절차가 설명될 것이다.
단계 S310에서, 외부로부터 쓰기 요청이 입력되거나, 메모리 컨트롤러(610a)에서 주기적으로 발생하는 코드 데이터의 업데이트에 의해서 데이터의 쓰기 요청이 발생할 수 있다. 메모리 컨트롤러(610a)는 이런 쓰기 요청을 검출하고 쓰기 동작을 준비한다.
단계 S320에서, 메모리 컨트롤러(610a)는 쓰기 요청되는 데이터의 속성(Attribute)을 판단한다. 외부로부터 제공되는 미디어 데이터나, 음원 데이터 같은 경우에는 유저 데이터(User data)로 분류될 수 있다. 반면, 코드 데이터나 메모리 시스템(600a)에 대한 제어 정보를 포함하는 경우, 메타 데이터(Meta data)로 분류될 것이다.
단계 S330에서, 쓰기 요청되는 데이터의 속성에 따라 서로 다른 방식의 프로그램 절차들로 분기된다. 예를 들면, 쓰기 요청되는 데이터가 메타 데이터(Meta data)가 아닌 유저 데이터인 경우, 절차는 풀 교대 프로그램(FA_PGM)을 수행하기 위한 단계 S340으로 이동한다. 반면, 쓰기 요청되는 데이터가 메타 데이터인 경우, 절차는 부분 교대 프로그램(PA_PGM)을 수행하기 위한 단계 S350으로 이동한다.
단계 S340에서, 메모리 컨트롤러(610a)는 쓰기 요청된 데이터를 풀 교대 프로그램 방식에 따라 유저 데이터 영역(623)의 메모리 블록에 프로그램하도록 불휘발성 메모리 장치(620a)를 제어할 것이다.
단계 S350에서, 메모리 컨트롤러(610a)는 쓰기 요청된 데이터를 부분 교대 프로그램 방식에 따라 메타 데이터 영역(621)에 프로그램되도록 불휘발성 메모리 장치(620a)를 제어할 것이다.
데이터 쓰기 동작시 데이터의 속성(Attribute)에 따라 선택된 메모리 단위를 액세스하는 경우, 데이터의 중요도에 따라 데이터 무결성을 차등화할 수 있다.
도 17a는 본 발명의 또 다른 실시 예에 따른 메모리 시스템을 보여주는 블록도이다. 도 17a를 참조하면, 메모리 시스템(600b)은 메모리 컨트롤러(610b)와 불휘발성 메모리 장치(620b)를 포함한다. 여기서, 불휘발성 메모리 장치(620b)는 셀 스트링들이 기판에 대해 수직 방향으로 형성되는 수직 구조 불휘발성 메모리 장치일 수 있다. 또는 불휘발성 메모리 장치(620b)는 셀 스트링이 기판에 평행한 방향으로 형성되는 평면 구조 불휘발성 메모리 장치일 수 있다. 또는, 불휘발성 메모리 장치(620b)는 도 1의 불휘발성 메모리 장치(100) 또는 도 11의 불휘발성 메모리 장치(400)와 실질적으로 동일하게 제공될 수 있다.
메모리 컨트롤러(610b)는 외부(또는, 호스트)로부터의 쓰기 요청에 따라 불휘발성 메모리 장치(620b)를 액세스한다. 메모리 컨트롤러(610b)는 특히 쓰기 요청되는 데이터의 전원 관리 모드에 따라 프로그램 모드를 결정할 수 있다. 예를 들면, 메모리 컨트롤러(610b)는 예상치 못한 전원 오류(Sudden Power-Off: 이하, SPO)에 대한 호스트의 전원 관리 모드를 참조하여 쓰기 요청되는 데이터의 쓰기 모드를 결정할 수 있다. 즉, 메모리 컨트롤러(610b)는 SPO가 활성화되는 경우, 쓰기 요청되는 데이터를 풀 교대 프로그램(FA_PGM) 방식으로 프로그램하도록 불휘발성 메모리 장치(620b)를 제어할 수 있다. 풀 교대 프로그램(FA_PGM)은 프로그램 동작중에 발생하는 예상치 못한 전원 오류(Sudden Power Off: SPO)에 대응하기에 적절하다. 왜냐하면, 풀 교대 프로그램(FA_PGM)을 수행하기 위해서는 프로그램을 위해서 제공되는 페이지들의 백업이 전제되기 때문이다. 그리고, 메모리 컨트롤러(610b)는 SPO가 비활성화되는 경우, 쓰기 요청되는 데이터를 부분 교대 프로그램(PA_PGM) 방식으로 프로그램하도록 불휘발성 메모리 장치(620b)를 제어할 수 있다.
메모리 컨트롤러(610b)는 전원 관리 모드뿐 아니라 다양한 제어 정보를 참조하여 데이터를 부분 교대 프로그램(PA_PGM) 또는 풀 교대 프로그램(FA_PGM) 방식으로 프로그램되도록 불휘발성 메모리 장치(620b)를 제어할 수 있다.
도 17b는 도 17a에서 설명된 프로그램 방법을 보여주는 순서도이다. 도 17b를 참조하면, 전원 관리 모드(예를 들면, SPO)에 따라 쓰기 요청되는 데이터의 프로그램 모드가 결정된다.
단계 S410에서, 데이터의 쓰기 요청이 발생하면, 메모리 컨트롤러(610b)는 이런 쓰기 요청을 검출하고 쓰기 동작을 준비한다.
단계 S420에서, 메모리 컨트롤러(610b)는 호스트에 의해서 결정된 전원 관리 모드(SPO)의 할성화 여부를 검출한다. 여기서, 전원 관리 모드(SPO)는 호스트의 기본 입출력 시스템(BIOS) 설정으로부터 읽어올 수 있다. 또는, 전원 관리 모드(SPO)는 호스트에 프로그램 가능한 퓨즈 어레이(Fuse Array)로부터 읽어 올 수도 있을 것이다.
단계 S430에서, 전원 관리 모드(SPO)의 활성화 여부에 따라 서로 다른 방식의 프로그램 절차들로 분기된다. 예를 들면, 전원 관리 모드(SPO)가 활성화된 경우, 절차는 풀 교대 프로그램(FA_PGM)을 수행하기 위한 단계 S440으로 이동한다. 반면, 전원 관리 모드(SPO)가 비활성화된 경우, 절차는 부분 교대 프로그램(PA_PGM)을 수행하기 위한 단계 S450으로 이동한다.
단계 S440에서, 메모리 컨트롤러(610b)는 쓰기 요청된 데이터를 풀 교대 프로그램 방식에 따라 선택된 메모리 블록에 프로그램하도록 불휘발성 메모리 장치(620b)를 제어할 것이다.
단계 S450에서, 메모리 컨트롤러(610b)는 쓰기 요청된 데이터를 부분 교대 프로그램 방식에 따라 선택된 메모리 블록에 프로그램되도록 불휘발성 메모리 장치(620b)를 제어할 것이다.
도 18은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다. 도 18을 참조하면, 메모리 시스템(600c)은 메모리 컨트롤러(610c)와 불휘발성 메모리 장치(620c)를 포함한다. 여기서, 불휘발성 메모리 장치(620c)는 셀 스트링들이 기판에 대해 수직 방향으로 형성되는 수직 구조 불휘발성 메모리 장치일 수 있다. 또는, 불휘발성 메모리 장치(620c)는 셀 스트링이 기판에 평행한 방향으로 형성되는 평면 구조 불휘발성 메모리 장치일 수 있다. 특히, 불휘발성 메모리 장치(620c)는 풀 교대 프로그램(FS_PGM) 방식으로 복수의 페이지 영역을 프로그램하는 메모리 장치로 제공될 수 있다.
메모리 컨트롤러(610c)는 외부(또는, 호스트)로부터의 쓰기 요청에 따라 불휘발성 메모리 장치(620c)를 액세스한다. 메모리 컨트롤러(610c)는 외부로부터 제공되는 쓰기 데이터의 크기가 하나의 메모리 블록 사이즈보다 작은 경우, 선택된 메모리 블록에 부분 교대 프로그램(PA_PGM) 방식으로 쓰기 데이터를 프로그램하도록 불휘발성 메모리 장치(620c)를 제어한다. 메모리 컨트롤러(610c)는 외부로부터 제공되는 쓰기 데이터의 크기가 하나의 메모리 블록 사이즈와 동일한 경우, 선택된 메모리 블록에 풀 교대 프로그램(FA_PGM) 방식으로 쓰기 데이터를 프로그램하도록 불휘발성 메모리 장치(620c)를 제어하다.
메모리 컨트롤러(610c)는 선택된 메모리 블록에 대해서 풀 교대 프로그램(FA_PGM) 또는 부분 교대 프로그램(PA_PGM) 방식이 수행되도록 어드레스를 제어한다. 예를 들면, 메모리 컨트롤러(610c)는 선택된 메모리 블록에 대해서 풀 교대 프로그램(FA_PGM) 방식으로 행이 선택되도록 어드레스 스크램블(Address scramble)된 제 1 어드레스(ADD)를 제공할 수 있다. 또는 메모리 컨트롤러(610c)는 선택된 메모리 블록에 대해서 부분 교대 프로그램(PA_PGM) 방식으로 행이 선택되도록 어드레스 스크램블(Address scramble)될 제 2 어드레스(ADD′)를 제공할 수 있다. 이러한 어드레스의 변환을 위해서 메모리 컨트롤러(610c)는 어드레스 변환 유닛(615c)을 포함한다.
어드레스 변환 유닛(615c)은 디폴트로 설정된 어드레스 스크램블(Address scramble)을 특정 방식의 어드레스로 변환할 수 있다. 예를 들면, 어드레스 변환 유닛(615c)은 풀 교대 프로그램(FA_PGM) 방식으로 행이 선택되도록 어드레스 스크램블(Address scramble)된 제 1 어드레스(ADD)를 제 2 어드레스로 변환할 수 있다. 또는 어드레스 변환 유닛(615c)은 부분 교대 프로그램(PA_PGM) 방식으로 행이 선택되도록 어드레스 스크램블(Address scramble)된 제 2 어드레스(ADD)를 제 1 어드레스로 변환할 수 있다. 어드레스 변환 유닛(615c)은 어드레스 변환 테이블이나 펌웨어와 같은 알고리즘으로 구현될 수 있음이 잘 이해될 것이다.
여기서, 불휘발성 메모리 장치(620c)가 별도의 프로그램 모드를 가지지 않고 모든 메모리 블록에 대해서 풀 교대 프로그램(FA_PGM) 방식이 일괄적으로 적용되는 경우에도 본 발명의 프로그램 방식이 적용될 수 있다. 왜냐하면, 메모리 컨트롤러(610c)는 부분 교대 프로그램(PA_PGM)의 필요성이 발생하면, 선택된 메모리 블록에 행 어드레스 제어를 통해서 본 발명의 부분 교대 프로그램(PA_PGM)을 수행할 수 있다.
도 19는 본 발명의 또 다른 실시 예에 따른 메모리 시스템을 보여주는 블록도이다. 도 19를 참조하면, 본 발명의 메모리 시스템(700)은 메모리 컨트롤러(710)와 멀티 칩 패키지로 제공되는 불휘발성 메모리 장치(720)를 포함한다.
불휘발성 메모리 장치(720)에 포함되는 불휘발성 메모리 칩들(NVM Chip_1, NVM Chip_2,…, NVM Chip_N) 각각은 하나의 셀에 적어도 3-비트 이상의 데이터를 저장하는 멀티 레벨 셀들을 포함한다. 불휘발성 메모리 칩들(NVM Chip_1, NVM Chip_2,…, NVM Chip_N) 각각은 또한, 복수의 메모리 블록들을 포함할 수 있다. 그리고 각각의 메모리 블록들은 기판에 대해 수직 방향으로 또는 평행한 방향으로 형성되는 셀 스트링들을 포함할 수 있다.
메모리 컨트롤러(710)는 쓰기 요청되는 데이터를 복수의 불휘발성 메모리 칩들(NVM Chip_1, NVM Chip_2,…, NVM Chip_N)에 할당한다. 외부로부터 메모리 시스템(700)에 쓰기 요청되는 데이터의 사이즈가 하나의 불휘발성 메모리 칩의 사이즈보다 작은 경우, 메모리 컨트롤러(710)는 본 발명의 부분 교대 프로그램(PA_PGM)을 적용한다. 반면, 쓰기 요청되는 데이터가 하나의 불휘발성 메모리 칩의 사이즈와 동일한 경우, 선택된 불휘발성 메모리 칩에는 풀 교대 프로그램(PS_PGM) 방식에 따라 데이터가 프로그램될 것이다.
도 20은 도 19의 어느 하나의 불휘발성 메모리 칩에 대한 부분 교대 프로그램 방법을 보여주는 표이다. 도 20을 참조하면, 선택된 불휘발성 메모리 칩(NVM Chip_i)의 메모리 블록들 각각에는 부분 교대 프로그램(PA_PGM) 방식에 따라 데이터가 프로그램된다.
선택된 불휘발성 메모리 칩의 메모리 블록들 각각에는 32개 페이지 사이즈에 대응하는 데이터(pages 0~31)가 교대 프로그램 방식으로 기입된다. 이때, 교대 프로그램 방식이 적용되는 메모리 셀의 페이지는 제 3 페이지 영역(3rd page, 또는 MSB 페이지)를 제외한 제 1 페이지 영역(1st page, LSB 페이지)과 2 페이지 영역(2nd page)이다. 제 1 내지 2 페이지 영역(1st page, 2nd page)에 32개 페이지 단위 데이터들이 교대 프로그램 방식으로 기입된다.
메모리 블록의 제 1 내지 2 페이지 영역(1st page, 2nd page)에 32개 페이지 단위의 쓰기 데이터가 교대 프로그램 방식으로 기입된 이후에, 나머지 쓰기 데이터(pages 32~38)는 제 3 페이지 영역(3rd page, MSB 페이지)에 순차적으로 기입된다. 즉, 워드 라인이 교대로 선택되는 것이 아니라 순차적으로 선택되면서, 데이터(pages 32~38)가 제 3 페이지 영역(3rd page)에 프로그램된다. 선택된 메모리 블록의 제 3 페이지 영역(3rd page)에 쓰기 데이터(pages 32~38)는 프로그램 시퀀스(WL<0>→WL<1>→WL<2>→WL<3>→WL<4>→WL<5>→WL<6>)에 의거하여 프로그램된다.
본 발명의 실시 예에 따르면, 불휘발성 메모리 칩들(NVM Chip_1, NVM Chip_2,…, NVM Chip_N) 단위로 부분 교대 프로그램 방식이 적용될 수 있다.
도 21은 복수의 칩들에 데이터가 프로그램되는 경우를 예시적으로 보여주는 표들이다. 이 경우, 불휘발성 메모리 칩들(NVM Chip_1, NVM Chip_2, NVM Chip_3)에는 풀 교대 프로그램(FA_PGM) 방식에 따라 데이터가 프로그램될 수 있다. 반면, 데이터가 모든 페이지 영역들(LSB page to MSB page)에 채워지지 않는 불휘발성 메모리 칩(NVM Chip_4)에는 부분 교대 프로그램(PA_PGM)이 적용될 수 있다.
도 22는 멀티 칩 패키지로 구성되는 불휘발성 메모리 장치의 다른 예를 간략히 보여주는 블록도이다. 도 22를 참조하면, 메모리 시스템(800)은 메모리 컨트롤러(810)와 복수의 채널들(CH1, CH2, …,CHn)을 통해서 데이터를 교환하는 멀티 칩 패키지로 제공되는 불휘발성 메모리 장치(820)를 포함한다.
제 1 채널(CH1)에는 m개(m은 자연수)의 메모리 장치들(821: MEM_11, MEM_12, MEM_1m) 각각의 입출력 포트(예를 들면, 8-비트 I/O 포트)가 연결된다. 제 2 채널(CH2) 및 제 3 채널(CH3) 각각에도 동일한 방식으로 복수의 메모리 장치들(822, 823)이 입출력 포트들을 공유한다.
메모리 컨트롤러(810)는 불휘발성 메모리 장치(820)에 데이터를 프로그램할 때, 채널 단위, 웨이 단위(Way: 각각의 채널에서 동시에 선택되는 메모리 장치들)로 부분 교대 프로그램(PA_PGM)의 적용 여부를 결정할 수 있다. 즉, 채널 및 웨이 단위의 선택을 통해서 불휘발성 메모리 장치의 메모리 블록들은 수퍼 블록을 구성할 수 있다. 예를 들면, 제 1 채널(CH1)에 연결된 메모리 장치(NVM_11)와 제 2 채널(CH2)에 연결된 메모리 장치(NVM_21)에서 각각 동시에 선택된 메모리 블록들이 어느 하나의 수퍼 블록(Super blcok)을 구성하게 된다. 이 경우, 본 발명의 부분 교대 프로그램(PA_PGM)은 이러한 수퍼 블록(Super block) 단위로 수행될 수 있다.
도 23a 내지 도 23d는 본 발명의 부분 교대 프로그램(PA_PGM)의 다양한 실시 예들을 보여주는 도면들이다.
도 23a를 참조하면, 부분 교대 프로그램(PA_PGM)이 4-비트 멀티 레벨 셀(MLC)에 적용되는 예를 간략히 보여준다. 하나의 메모리 블록에 대응하는 제 1 내지 제 3 페이지 영역(1st page~3rd page) 영역에 대한 프로그램 시에는 교대 프로그램이 적용된다. 반면, MSB 페이지에 대응하는 제 4 페이지(4th page) 영역에 프로그램되는 데이터는 워드 라인 순서에 따라 순차적으로 프로그램될 것이다.
도 23b를 참조하면, 부분 교대 프로그램(PA_PGM)이 4-비트 멀티 레벨 셀(MLC)에 적용되는 다른 예를 보여준다. 하나의 메모리 블록에 대응하는 제 1 내지 2 페이지 영역(1st page~2nd page) 영역에 대한 프로그램 시에는 교대 프로그램이 적용된다. 반면, 제 3 페이지 및 제 4 페이지 영역(3rd page~4th page)에 프로그램되는 데이터는 워드 라인 순서에 따라 순차적으로 프로그램될 것이다.
도 23c를 참조하면, 부분 교대 프로그램(PA_PGM)이 3-비트 멀티 레벨 셀(MLC)에 적용되는 예를 보여준다. 하지만, 도 23c에 나타난 부분 교대 프로그램(PA_PGM) 방식은 4-비트 멀티 레벨 셀(MLC)에도 동일하게 적용 가능하다. 도 23c에 나타난 부분 교대 프로그램(PA_PGM) 방식에 따르면, 하나의 메모리 블록의 제 1 페이지 영역(1st page)에는 데이터가 워드 라인 순서에 따라 순차적으로 프로그램된다. 하지만, 제 2 내지 제 3 페이지 영역(2nd page~3rd page) 영역의 데이터 프로그램은 교대 프로그램 방식이 적용될 수 있다.
도 23d를 참조하면, 부분 교대 프로그램(PA_PGM)이 4-비트 멀티 레벨 셀(MLC)에 적용되는 예를 보여준다. 도 23d에 나타난 부분 교대 프로그램(PA_PGM) 방식에 따르면, 하나의 메모리 블록의 제 1 페이지 영역(1st page)과 제 2 페이지 영역(2nd page) 각각에는 데이터가 워드 라인 순서에 따라 순차적으로 프로그램된다. 하지만, 제 3 내지 제 4 페이지 영역(3rd page~4th page) 영역의 데이터 프로그램은 교대 프로그램 방식이 적용될 수 있다.
도 23a 내지 도 23d에는 본 발명의 부분 교대 프로그램(PA_PGM)의 예시들이 일부 도시되었을 뿐이다. 더 다양한 방식으로 순차 프로그램과 교대 프로그램을 혼합하여 멀티 레벨 셀로 구성되는 메모리 블록을 프로그램할 수 있을 것이다.
도 24a 내지 도 24c는 본 발명의 프로그램 방식의 다른 예를 보여주는 도면들이다. 도 24a는 2개의 페이지 영역이 하나의 프로그램 절차에 의해서 프로그램되는 예를 보여주는 표이다. 도 24a를 참조하면, 하나의 메모리 블록(또는 서브 블록)에는 실질적으로 데이터가 저장되는 메모리 셀들이 16개의 워드 라인들(WL<0>~WL<15>)에 연결된다고 가정하자. 그리고 하나의 메모리 블록에 프로그램될 데이터가 39개 페이지 사이즈(예를 들면, 39×4KByte/page)라 가정하자.
먼저, 32개 페이지에 대응하는 데이터(0~31 pages)가 제 1 내지 제 2 페이지 영역에 프로그램된다. 여기서, 워드 라인(WL<0>)에 대응하는 제 1 내지 제 2 페이지 영역(1st page, 2nd page)에는 2개의 페이지 데이터(0, 1)가 동시에 프로그램된다. 즉, 하나의 프로그램 동작 구간에서 2-비트의 데이터가 선택된 메모리 셀들에 프로그램될 수 있다. 마찬가지로, 워드 라인(WL<1>)에 대응하는 제 1 내지 제 2 페이지 영역(1st page, 2nd page)에도 2개의 페이지 데이터(2, 3)가 동시에 프로그램된다. 상술한 2-비트 프로그램 방식으로 워드 라인들(WL<0>~WL<15>)에 대응하는 제 1 내지 제 2 페이지 영역(1st page, 2nd page)들이 프로그램될 것이다.
이어서, 제 1 내지 제 2 페이지 영역(1st page, 2nd page)에 대한 프로그램이 완료되면, 나머지 7개 페이지 데이터(32~38 pages)가 제 3 페이지 영역(3rd page)에 워드 라인의 순서에 따라 순차적으로 프로그램된다.
본 발명의 실시 예의 프로그램 절차에 따라 데이터를 프로그램하면, MSB 페이지 영역(예를 들면, 3rd page)이 채워지는 메모리 셀들의 수를 최소화할 수 있다. 즉, 48개 페이지 사이즈를 가지는 3-비트 MLC 메모리 블록에 39개 페이지 데이터를 프로그램하는 경우에, 본 발명의 프로그램 방법을 적용하면, 9개의 행들(WL<7>~WL<15>)에 대응하는 메모리 셀들의 제 3 페이지 영역(3rd page)이 비어있게 된다. 따라서, 3개 페이지 영역들이 모두 프로그램될 확률을 현저히 감소시킬 수 있다. 즉, 프로그램 교란(Program Disturbance)이 현저히 감소한다.
여기서, 예시적으로 제 1 내지 제 2 페이지 영역(1st page, 2nd page)에 대해서 동시에 2-비트가 프로그램되도록 설정되었으나, 본 발명은 여기에 국한되지 않는다. 즉, 제 1 페이지 영역(1st page)을 순차적으로 프로그램하고, 제 2 내지 제 3 페이지 영역(2nd page, 3rd page)들 2-비트 데이터가 프로그램되도록 설정될 수도 있을 것이다. 더불어 3-비트 멀티 레벨 셀(MLC)을 예시로 본 발명의 이점이 설명되었으나, 4-비트 이상의 멀티 레벨 셀(MLC)에 대해서도 적용될 수 있을 것이다. 즉, 동시에 프로그램되는 비트 수도 3-비트 이상이 될 수 있으며, 순차 프로그램이 적용되는 페이지 영역의 위치도 LSB 페이지로부터 MSB 페이지 영역까지 다양하게 변경될 수 있을 것이다.
도 24b 및 도 24c는 각각 2-비트 동시 프로그램과 순차 프로그램시 적용되는 1-비트 프로그램 과정을 각각 보여주는 도면들이다. 도 24b는 도 24a에서 도시된 제 1 페이지 영역 및 제 2 페이지 영역(1st page, 2nd page)의 프로그램에 적용되는 2-비트 프로그램 방법을 보여주는 도면이다. 도 24b를 참조하면, 2-비트 프로그램에 의해서, 메모리 셀들은 소거 상태(E0)로부터 4개의 상태들(E0, Q1, Q2, Q3) 중 어느 하나의 상태로 프로그램될 것이다. 도 24c는 도 24a에서 도시된 제 3 페이지 영역(3rd page)의 프로그램에 적용되는 1-비트 프로그램 방법을 보여주는 도면이다. 도 24c를 참조하면, 순차적으로 1-비트씩 프로그램됨에 따라 메모리 셀들은 4개의 상태들(E0, Q1, Q2, Q3)로부터 8개의 상태들(E0, P1, P2, P3, P4, P5, P6, P7) 중 어느 하나의 상태로 프로그램될 것이다.
도 25a 및 도 25b는 부분 교대 프로그램 방식을 멀티 레벨 셀 불휘발성 메모리 장치에 적용할 때 얻게 되는 이점을 보여주기 위한 도면들이다. 3-비트 MLC로 구성되는 4개의 메모리 블록(BLK0~BLK3)에 328 페이지 사이즈의 데이터를 저장하는 경우를 예시적으로 설명하기로 한다.
도 25a는 풀 교대 프로그램(FA_PGM) 방식으로 328 페이지의 데이터를 4개의 메모리 블록들(BLK0~BLK3)에 기입하는 경우를 보여준다. 먼저 3개의 메모리 블록들(BLK0~BLK2)에 288 페이지의 쓰기 데이터가 풀 교대 프로그램 방식에 따라 프로그램될 것이다. 그리고 나머지 하나의 메모리 블록(BLK3)에 워드 라인들이 교대로 선택되는 풀 교대 프로그램(FA_PGM) 방식에 따라 56 페이지의 쓰기 데이터가 프로그램될 것이다. 이 경우에는, 14번째 행(WL<14>)에 대응하는 메모리 셀들은 제 1 페이지 영역(1st page)까지 프로그램되고, 13번째 행(WL<13>)에 대응하는 메모리 셀들은 제 2 페이지 영역(2nd page)까지 프로그램되며, 그리고 11번째 행(WL<11>)에 대응하는 메모리 셀들은 제 3 페이지 영역(3rd page)까지 프로그램된다.
결과적으로, 풀 교대 프로그램(FA_PGM) 방식으로 328 페이지의 데이터를 4개의 메모리 블록들(BLK0~BLK3)에 기입하면, 메모리 블록(BLK3)에 20개의 행(20 WLs)에 대응하는 메모리 셀들이 최상위 페이지의 프로그램 대상에서 제외된다.
도 25b를 참조하면, 부분 교대 프로그램(PA_PGM) 방식으로 328 페이지의 데이터를 4개의 메모리 블록들(BLK0~BLK3)에 기입하는 경우를 보여준다. 265개의 페이지 데이터가 4개의 메모리 블록들(BLK0~BLK3) 각각의 제 1 내지 제 2 페이지 영역(1st page~2nd page)에 교대 프로그램 방식으로 프로그램된다. 그리고 나머지 72개 페이지 데이터는 4개의 메모리 블록들(BLK0~BLK3) 각각에 18개의 페이지로 분할되어 제 3 페이지에 순차적으로 프로그램될 것이다. 이러한 과정을 통해서 4개의 메모리 블록들(BLK0~BLK3)에 대한 328 페이지 데이터의 부분 교대 프로그램(PA_PGM)이 완료된다. 이 경우에는 각각의 메모리 블록들에는 14개 행(14WLs), 전체적으로는 56개 행(14WLs×4)에 대응하는 메모리 셀들이 최상위 페이지 영역(3rd page)의 프로그램 대상에서 제외된다.
결과적으로, 동일한 용량의 데이터(328 페이지 데이터)를 4개의 메모리 블록들(BLK0~BLK3)에 프로그램하는 경우, 부분 교대 프로그램(FS_PGM) 방식으로 프로그램하면, 최상위 페이지 영역의 프로그램 대상에서 제외되는 행이 36개(56WLs - 20WLs) 더 많아지게 된다. 따라서, 부분 교대 프로그램(FS_PGM) 방식을 적용하는 경우에 프로그램 교란(Program disturbance)이나 메모리 장치의 수명에 있어서 더 장점이 많아진다.
외부로부터 제공되는 쓰기 데이터의 크기가 하나의 메모리 블록 사이즈보다 작은 경우, 선택된 메모리 블록에 부분 교대 프로그램(PA_PGM) 방식으로 쓰기 데이터를 프로그램한다. 메모리 컨트롤러(510)는 외부로부터 제공되는 쓰기 데이터의 크기가 하나의 메모리 블록 사이즈와 동일한 경우, 선택된 메모리 블록에 풀 교대 프로그램(FA_PGM) 방식으로 쓰기 데이터를 프로그램한다.
메모리 컨트롤러(510)는 외부로부터 제공되는 쓰기 데이터의 크기가 복수의 메모리 블록 사이즈에 대응하는 경우, 선택된 메모리 블록들 중에서 일부는 풀 교대 프로그램(FA_PGM) 방식으로 쓰기 데이터를 프로그램한다. 그리고 메모리 컨트롤러(510)는 선택된 메모리 블록들 중에서 데이터가 채워지지 않은 나머지 하나의 메모리 블록에는 부분 교대 프로그램(PA_PGM) 방식으로 쓰기 데이터를 프로그램한다. 예를 들면, 3.5개 메모리 블록 사이즈에 대응하는 쓰기 데이터가 입력되면, 메모리 컨트롤러(510)는 3개의 메모리 블록에는 풀 교대 프로그램(FA_PGM) 방식에 따라 3개 블록 사이즈의 데이터를 프로그램한다. 그리고 메모리 컨트롤러(510)는 나머지 0.5개 메모리 블록 사이즈에 대응하는 쓰기 데이터를 마지막 선택된 메모리 블록에 부분 교대 프로그램(PA_PGM) 방식에 따라 프로그램할 수 있다. 이 경우, 풀 교대 프로그램(FA_PGM) 방식의 이점과, 부분 교대 프로그램(PA_PGM) 방식의 이점을 모두 취할 수 있다.
여기서, 불휘발성 메모리 장치(520)가 별도의 프로그램 모드를 가지지 않고 모든 메모리 블록에 대해서 풀 교대 프로그램(FA_PGM) 방식이 일괄적으로 적용되는 경우에도 본 발명의 프로그램 방식이 적용될 수 있다. 왜냐하면, 메모리 컨트롤러(510)는 부분 교대 프로그램(PA_PGM)의 필요성이 발생하면, 선택된 메모리 블록에 행 어드레스 제어를 통해서 본 발명의 부분 교대 프로그램(PA_PGM)을 수행할 수 있다.
동일한 용량의 데이터를 프로그램하는 경우, 풀 교대 프로그램(FA_PGM) 방식에 따라 프로그램된 메모리 블록에는 MSB 페이지 영역(예를 들면, 3rd page)이 채워지는 행들의 수가 상대적으로 많다. 즉, 풀 교대 프로그램(FA_PGM) 방식에 따라 프로그램하는 경우, 제 3 페이지 영역이 비어있는 메모리 셀들은 4개 워드 라인들(WL<12>~WL<15>)에 대응한다. 반면, 도 7a에서 도시된 바와 같이 본 발명의 부분 교대 프로그램에 의하면, 제 3 페이지 영역이 비어있는 메모리 셀들은 9개 워드 라인들(WL<7>~WL<15>)에 대응한다. 본 발명의 부분 교대 프로그램(PA_PGM) 방식에 따라 메모리 블록을 프로그램하는 경우, 풀 교대 프로그램(FA_PGM) 방식에 따라 메모리 블록을 프로그램할 때보다 프로그램 교란(Program disturbance)이 감소됨을 알 수 있다.
도 26은 본 발명의 실시 예에 따른 솔리드 스테이트 디스크(이하, SSD)를 포함하는 사용자 장치를 보여주는 블록도이다. 도 26을 참조하면, 사용자 장치(1000)는 호스트(1100)와 SSD(1200)를 포함한다. SSD(1200)는 SSD 컨트롤러(1210), 버퍼 메모리(1220), 그리고 불휘발성 메모리 장치(1230)를 포함한다.
SSD 컨트롤러(1210)는 호스트(1100)와 SSD(1200)와의 물리적 연결을 제공한다. 즉, SSD 컨트롤러(1210)는 호스트(1100)의 버스 포맷(Bus format)에 대응하여 SSD(1200)와의 인터페이싱을 제공한다. 특히, SSD 컨트롤러(1210)는 호스트(1100)로부터 제공되는 명령어를 디코딩한다. 디코딩된 결과에 따라, SSD 컨트롤러(1210)는 불휘발성 메모리 장치(1230)를 액세스한다. 호스트(1100)의 버스 포맷(Bus format)으로 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI) 등이 포함될 수 있다.
버퍼 메모리(1220)에는 호스트(1100)로부터 제공되는 쓰기 데이터 또는 불휘발성 메모리 장치(1230)로부터 읽혀진 데이터가 일시 저장된다. 호스트(1100)의 읽기 요청시에 불휘발성 메모리 장치(1230)에 존재하는 데이터가 캐시되어 있는 경우에는, 버퍼 메모리(1220)는 캐시된 데이터를 직접 호스트(1100)로 제공하는 캐시 기능을 지원한다. 일반적으로, 호스트(1100)의 버스 포맷(예를 들면, SATA 또는 SAS)에 의한 데이터 전송 속도는 SSD(1200)의 메모리 채널의 전송 속도보다 월등히 빠르다. 즉, 호스트(1100)의 인터페이스 속도가 월등히 높은 경우, 대용량의 버퍼 메모리(1220)를 제공함으로써 속도 차이로 발생하는 퍼포먼스 저하를 최소화할 수 있다.
버퍼 메모리(1220)는 대용량의 보조 기억 장치로 사용되는 SSD(1200)에서 충분한 버퍼링을 제공하기 위해 동기식 DRAM(Synchronous DRAM)으로 제공될 수 있다. 하지만, 버퍼 메모리(1220)가 여기의 개시에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
불휘발성 메모리 장치(1230)는 SSD(1200)의 저장 매체로서 제공된다. 예를 들면, 불휘발성 메모리 장치(1230)는 대용량의 저장 능력을 가지는 수직 구조 낸드 플래시 메모리(NAND-type Flash memory)로 제공될 수 있다. 불휘발성 메모리 장치(1230)는 복수의 메모리 장치로 구성될 수 있다. 이 경우, 각각의 메모리 장치들은 채널 단위로 SSD 컨트롤러(1210)와 연결된다. 저장 매체로서 불휘발성 메모리 장치(1230)가 낸드 플래시 메모리를 예로 들어 설명되었으나, 또 다른 불휘발성 메모리 장치들로 구성될 수 있다. 예를 들면, 저장 매체로서 PRAM, MRAM, ReRAM, FRAM, NOR 플래시 메모리 등이 사용될 수 있으며, 이종의 메모리 장치들이 혼용되는 메모리 시스템도 적용될 수 있다. 불휘발성 메모리 장치는 실질적으로 도 1에서 설명된 것과 동일하게 구성될 수 있다.
상술한 SSD(1200)에서, 불휘발성 메모리 장치(1230)는 도 1의 불휘발성 메모리 장치와 실질적으로 동일하게 동작할 수 있다. 즉, 불휘발성 메모리 장치(1230)는 선택된 메모리 단위에 대해서 부분 교대 프로그램(PA_PGM) 방식으로 데이터를 프로그램할 수 있다. 따라서, 불휘발성 메모리 장치(1230)는 높은 데이터 무결성(Data Integrity)를 제공할 수 있다.
도 27은 본 발명의 다른 실시 예에 따른 메모리 시스템(2000)을 예시적으로 보여주는 블록도이다. 도 27을 참조하면, 본 발명에 따른 메모리 시스템(2000)은 메모리 컨트롤러(2200)와 불휘발성 메모리(2100)를 포함할 수 있다.
불휘발성 메모리(2100)는 도 1 또는 도 10의 불휘발성 메모리 장치(100)와 실질적으로 동일하게 구성될 수 있다. 따라서, 불휘발성 메모리(2100)에 대한 구체적인 설명은 생략하기로 한다.
메모리 컨트롤러(2200)는 불휘발성 메모리(2100)를 제어하도록 구성될 수 있다. SRAM(2230)은 CPU(2210)의 워킹 메모리로 사용될 수 있다. 호스트 인터페이스(2220)는 메모리 시스템(2000)과 접속되는 호스트의 데이터 교환 프로토콜을 구비할 수 있다. 메모리 컨트롤러(2200)에 구비된 에러 정정 회로(2240)는 불휘발성 메모리(2100)로부터 읽어 온 읽기 데이터에 포함되어 있는 에러를 검출 및 정정할 수 있다. 메모리 인터페이스(2260)는 본 발명의 불휘발성 메모리(2100)와 인터페이싱 할 수 있다. CPU(2210)는 메모리 컨트롤러(2200)의 데이터 교환을 위한 제반 제어 동작을 수행할 수 있다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 메모리 시스템(2000)는 호스트(Host)와의 인터페이싱을 위한 코드 데이터를 저장하는 ROM(미도시됨) 등이 더 제공될 수 있다.
메모리 컨트롤러(2100)는 USB, MMC, PCI-E, SAS, SATA, PATA, SCSI, ESDI, 그리고 IDE 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 통해 외부(예를 들면, 호스트)와 통신하도록 구성될 것이다.
상술한 메모리 시스템(2000)에서, 불휘발성 메모리 장치(2100)는 도 1의 불휘발성 메모리 장치와 실질적으로 동일하게 동작할 수 있다. 즉, 불휘발성 메모리 장치(2100))는 선택된 메모리 단위에 대해서 부분 교대 프로그램(PA_PGM) 방식으로 데이터를 프로그램할 수 있다. 따라서, 불휘발성 메모리 장치(2100)는 높은 데이터 무결성(Data Integrity)를 제공할 수 있다.
본 발명에 따른 메모리 시스템(2000)는, 컴퓨터, 휴대용 컴퓨터, UMPC (Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA, 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), 디지털 카메라(digital camera), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), 정보를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크를 구성하는 다양한 사용자 장치들 중 하나에 적용될 수 있다.
도 28은 본 발명의 다른 실시 예에 따른 데이터 저장 장치(3000)를 예시적으로 보여주는 블록도이다. 도 28을 참조하면, 본 발명에 따른 데이터 저장 장치(3000)는 플래시 메모리(3100)와 플래시 컨트롤러(3200)를 포함할 수 있다. 플래시 컨트롤러(3200)는 데이터 저장 장치(3000) 외부로부터 수신된 제어 신호들에 기초하여 플래시 메모리(3100)를 제어할 수 있다.
상술한 데이터 저장 장치(3000)에서, 플래시 메모리(3100)는 도 1의 불휘발성 메모리 장치와 실질적으로 동일하게 동작할 수 있다. 즉, 플래시 메모리(3100)는 선택된 메모리 단위에 대해서 부분 교대 프로그램(PA_PGM) 방식으로 데이터를 프로그램할 수 있다. 따라서, 플래시 메모리(3100)는 높은 데이터 무결성(Data Integrity)를 제공할 수 있다.
본 발명의 데이터 저장 장치(3000)는 메모리 카드 장치, SSD 장치, 멀티미디어 카드 장치, SD 카드, 메모리 스틱 장치, 하드 디스크 드라이브 장치, 하이브리드 드라이브 장치, 또는 범용 직렬 버스 플래시 장치를 구성할 수 있다. 예를 들면, 본 발명의 데이터 저장 장치(3000)는 디지털, 카메라, 개인 컴퓨터 등과 같은 사용자 장치를 사용하기 위한 산업 표준을 만족하는 카드를 구성할 수 있다.
도 29는 본 발명에 따른 플래시 메모리 장치(4100) 및 그것을 포함하는 컴퓨팅 시스템(4000)의 개략적인 구성을 보여주는 도면이다. 도 29를 참조하면, 본 발명에 따른 컴퓨팅 시스템(4000)은 버스(4400)에 전기적으로 연결된 플래시 메모리 장치(4100), 메모리 컨트롤러(4200), 베이스밴드 칩셋(baseband chipset)과 같은 모뎀(4300), 마이크로프로세서(4500), 그리고 사용자 인터페이스(4600)를 포함할 수 있다.
도 29에 도시된 플래시 메모리 장치(4100)는 구성은 도 1에 도시된 불휘발성 메모리 장치(100)와 실질적으로 동일할 수 있다. 즉, 플래시 메모리 장치(4100)는 선택된 메모리 단위에 대해서 부분 교대 프로그램(PA_PGM) 방식으로 데이터를 프로그램할 수 있다. 따라서, 플래시 메모리 장치(4100)는 높은 데이터 무결성(Data Integrity)를 제공할 수 있다.
본 발명에 따른 컴퓨팅 시스템이 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리(4700)가 추가적으로 제공될 수 있다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있다. 메모리 컨트롤러(4200)와 플래시 메모리 장치(4100)는, 예를 들면, 데이터를 저장하는 데 불휘발성 메모리를 사용하는 SSD(Solid State Drive/Disk)를 구성할 수 있다.
본 발명에 따른 불휘발성 메모리 장치 그리고/또는 메모리 컨트롤러는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 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), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장 될 수 있다.
이상에서와 같이 도면과 명세서에서 실시 예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허 청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허 청구범위의 기술적 사상에 의해 정해져야 할 것이다.
110, 410 : 셀 어레이 120, 420 : 행 디코더
130, 430 : 페이지 버퍼 140, 440 : 제어 로직
111 : 기판 112 : 절연 물질
113 : 필라 114 : 표면층
115 : 내부층 116 : 절연막
211, 221, 231, 241, 251, 261, 271, 281, 291 : 제 1 도전 물질
213, 223, 233, 243, 253, 263, 273, 283, 293 : 제 1 도전 물질
311, 312, 313, 314 : 도핑 영역
320 : 드레인 331, 332, 333 : 비트 라인
510, 610, 710, 810 : 메모리 컨트롤러
520, 620, 720, 820 : 불휘발성 메모리 장치
1100 : 호스트 1200 : SSD
1210 : SSD 컨트롤러 1220 : 버퍼 메모리
1230 : 불휘발성 메모리 장치 2100 : 플래시 메모리
2200 : 메모리 컨트롤러 2210 : CPU
2220 : 호스트 인터페이스 2230 : SRAM
2240 : ECC 2260 : 메모리 인터페이스
3100 : 플래시 메모리 3200 : 플래시 인터페이스
4100 : 플래시 메모리 4200 : 메모리 컨트롤러
4300 : 모뎀 4400 : 시스템 버스
4500 : 마이크로 프로세서 4600 : 유저 인터페이스
4700 : 배터리

Claims (20)

  1. 복수의 행들로 배열되는 메모리 셀들을 포함하는 불휘발성 메모리 장치의 프로그램 방법에 있어서:
    상기 메모리 셀들의 제 1 논리 페이지 영역과 제 2 논리 페이지 영역에 워드 라인들을 교대로 선택하여 데이터를 프로그램하는 단계; 그리고
    상기 제 1 논리 페이지 영역과 상기 제 2 논리 페이지 영역에 대한 프로그램이 완료된 후에, 상기 메모리 셀들의 제 3 논리 페이지 영역에 상기 워드 라인들의 배열된 순서에 따라 데이터를 프로그램하는 단계를 포함하되,
    상기 워드 라인들의 배열된 순서에 따라 데이터를 프로그램하는 단계에서, 상기 워드 라인들은 접지 선택 라인으로부터 스트링 선택 라인 방향으로 순차적으로 하나씩 선택되는 프로그램 방법.
  2. 제 1 항에 있어서,
    상기 제 1 논리 페이지 영역은 멀티 레벨 셀의 최하위 비트(LSB) 페이지 영역에 대응하는 프로그램 방법.
  3. 제 2 항에 있어서,
    상기 제 3 논리 페이지 영역은 상기 멀티 레벨 셀의 최상위 비트(MSB) 페이지 영역에 대응하는 프로그램 방법.
  4. 제 1 항에 있어서,
    상기 메모리 셀들은 소거 단위에 대응하는 메모리 블록을 구성하는 프로그램 방법.
  5. 복수의 행들로 배열되는 메모리 셀들을 포함하는 불휘발성 메모리 장치의 프로그램 방법에 있어서:
    상기 메모리 셀들의 제 1 논리 페이지 영역에 워드 라인들의 배열된 순서에 따라 데이터를 프로그램하는 단계; 그리고
    상기 제 1 논리 페이지 영역에 대한 프로그램이 완료된 후에, 상기 메모리 셀들의 제 2 논리 페이지 영역과 제 3 논리 페이지 영역에 워드 라인들을 교대로 선택하여 데이터를 프로그램하는 단계를 포함하되,
    상기 워드 라인들의 배열된 순서에 따라 데이터를 프로그램하는 단계에서, 상기 워드 라인들은 접지 선택 라인으로부터 스트링 선택 라인 방향으로 순차적으로 하나씩 선택되는 프로그램 방법.
  6. 제 5 항에 있어서,
    상기 제 1 논리 페이지 영역은 멀티 레벨 셀의 최하위 비트(LSB) 페이지 영역에 대응하는 프로그램 방법.
  7. 제 6 항에 있어서,
    상기 제 3 논리 페이지 영역은 상기 멀티 레벨 셀의 최상위 비트(MSB) 페이지 영역에 대응하는 프로그램 방법.
  8. 복수의 행들로 메모리 셀들이 배열되며, 상기 복수의 행들 각각에 대응하는 메모리 셀들에는 복수의 논리 페이지 영역들이 할당되는 불휘발성 메모리 장치의 프로그램 방법에 있어서:
    상기 메모리 셀들의 논리 페이지 영역들 중에서 적어도 2개의 논리 페이지 영역들을 제 1 스크램블 방식으로 선택하여 프로그램하는 단계; 그리고
    상기 메모리 셀들의 논리 페이지 영역들 중에서 다른 하나의 논리 페이지 영역을 상기 복수의 행들의 배열 순서에 따라 순차적으로 선택하는 제 2 스크램블 방식으로 프로그램하는 단계를 포함하는 프로그램 방법.
  9. 제 8 항에 있어서,
    상기 제 1 스크램블 방식은 상기 복수의 행들이 교대로 선택되는 프로그램 방법.
  10. 제 8 항에 있어서,
    상기 적어도 2개의 논리 페이지 영역들이 상기 제 1 스크램블 방식에 따라 프로그램 완료된 후에, 상기 제 2 스크램블 방식에 따라 상기 다른 하나의 논리 페이지 영역이 프로그램되는 프로그램 방법.
  11. 제 8 항에 있어서,
    상기 제 2 스크램블 방식으로 프로그램하는 단계는, 상기 제 1 스크램블 방식으로 선택하여 프로그램하는 단계보다 먼저 수행되는 프로그램 방법.
  12. 제 8 항에 있어서,
    상기 제 1 스크램블 방식으로 선택하여 프로그램하는 단계에서, 상기 복수의 행들 중 어느 하나의 행에 대응하는 적어도 2개의 논리 페이지 영역에는 데이터가 동시에 프로그램되는 프로그램 방법.
  13. 복수의 행들 각각에 연결된 멀티 레벨 메모리 셀들에 페이지 단위로 데이터를 프로그램하는 불휘발성 메모리 장치의 프로그램 방법에 있어서:
    선택된 메모리 단위에 대해 적어도 2개의 논리 페이지 영역들에 행들이 교대로 선택되는 교대 프로그램 방식으로 데이터를 프로그램하는 단계; 그리고
    상기 선택된 메모리 단위에서 다른 적어도 하나의 논리 페이지 영역에 행들의 배열 순서에 따라 선택하는 순차 프로그램 방식으로 데이터를 프로그램하는 단계를 포함하는 프로그램 방법.
  14. 제 13 항에 있어서,
    상기 다른 적어도 하나의 논리 페이지 영역에는 최상위 비트(MSB) 페이지 영역 또는 최하위 비트(LSB) 페이지 영역이 포함되는 프로그램 방법.
  15. 제 13 항에 있어서,
    상기 불휘발성 메모리 장치는 복수의 셀 스트링들이 기판에 대해서 수직 방향으로 형성되는 셀 어레이를 포함하는 프로그램 방법.
  16. 제 13 항에 있어서,
    상기 선택된 메모리 단위는 상기 불휘발성 메모리 장치의 소거 단위에 대응하는 프로그램 방법
  17. 제 13 항에 있어서,
    상기 선택된 메모리 단위는 어느 하나의 스트링 선택 라인에 의해서 선택되는 복수의 셀 스트링들에 대응하는 프로그램 방법.
  18. 제 13 항에 있어서,
    상기 불휘발성 메모리 장치는 복수의 메모리 칩들을 포함하며, 상기 선택된 메모리 단위는 상기 복수의 메모리 칩들 중 어느 하나에 대응하는 프로그램 방법.
  19. 제 13 항에 있어서,
    상기 불휘발성 메모리 장치는 복수의 채널들에 연결되는 복수의 메모리 장치들을 포함하며, 상기 선택된 메모리 단위는 상기 채널 단위, 또는 상기 복수의 채널들에 의해서 서로 다른 메모리 장치로부터 동시에 선택되는 적어도 두 개의 메모리 블록들에 대응하는 수퍼 블록 단위에 대응하는 프로그램 방법.
  20. 선택된 메모리 블록의 일부 논리 페이지 영역들을 행들이 교대로 선택되는 교대 프로그램 방식에 따라 프로그램하는 부분 교대 프로그램 모드와, 상기 메모리 블록의 모든 논리 페이지 영역들을 상기 교대 프로그램 방식에 따라 프로그램하는 풀 교대 프로그램 모드 중 어느 하나의 모드로 쓰기 데이터를 프로그램하는 불휘발성 메모리 장치; 그리고
    속성(Attribute)을 참조하여 부분 교대 프로그램 또는 상기 풀 교대 프로그램 모드 중 어느 하나의 모드로 상기 쓰기 데이터를 프로그램되도록 상기 불휘발성 메모리 장치를 제어하는 메모리 컨트롤러를 포함하는 메모리 시스템.
KR1020120029738A 2012-03-23 2012-03-23 불휘발성 메모리 장치, 메모리 시스템 및 그것의 프로그램 방법 KR101962786B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020120029738A KR101962786B1 (ko) 2012-03-23 2012-03-23 불휘발성 메모리 장치, 메모리 시스템 및 그것의 프로그램 방법
US13/661,021 US9076516B2 (en) 2012-03-23 2012-10-25 Method for programming a nonvolatile memory device
CN2013100441137A CN103325417A (zh) 2012-03-23 2013-02-04 非易失性存储器件、非易失性存储系统、及其编程方法
JP2013020275A JP2013200935A (ja) 2012-03-23 2013-02-05 不揮発性メモリ装置、メモリシステム、及びそれのプログラム方法
JP2017145333A JP6742964B2 (ja) 2012-03-23 2017-07-27 不揮発性メモリ装置、メモリシステム、及びそれのプログラム方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120029738A KR101962786B1 (ko) 2012-03-23 2012-03-23 불휘발성 메모리 장치, 메모리 시스템 및 그것의 프로그램 방법

Publications (2)

Publication Number Publication Date
KR20130107733A true KR20130107733A (ko) 2013-10-02
KR101962786B1 KR101962786B1 (ko) 2019-03-27

Family

ID=49194111

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120029738A KR101962786B1 (ko) 2012-03-23 2012-03-23 불휘발성 메모리 장치, 메모리 시스템 및 그것의 프로그램 방법

Country Status (4)

Country Link
US (1) US9076516B2 (ko)
JP (2) JP2013200935A (ko)
KR (1) KR101962786B1 (ko)
CN (1) CN103325417A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180008951A (ko) * 2016-07-14 2018-01-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20180052465A (ko) * 2016-11-10 2018-05-18 삼성전자주식회사 솔리드 스테이트 드라이브 장치 및 이를 포함하는 저장 시스템
KR20200100167A (ko) * 2017-12-29 2020-08-25 마이크론 테크놀로지, 인크. 정정 불가능 ecc
CN112947849A (zh) * 2019-12-10 2021-06-11 西部数据技术公司 非易失性存储器编程顺序

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8681562B2 (en) * 2011-01-10 2014-03-25 Micron Technology, Inc. Memories and methods of programming memories
US9424442B2 (en) 2013-11-27 2016-08-23 Huawei Technologies Co., Ltd. Nonvolatile memory and electronic device
CN103631732B (zh) * 2013-11-27 2016-09-07 华为技术有限公司 非易失存储器及电子设备
WO2015092879A1 (ja) * 2013-12-18 2015-06-25 株式会社 東芝 半導体記憶装置
CN104766624B (zh) * 2014-01-06 2017-11-28 晶豪科技股份有限公司 自动更新存储器单元的方法及使用其的半导体存储装置
KR102272228B1 (ko) 2014-05-13 2021-07-06 삼성전자주식회사 불휘발성 메모리 장치, 그것을 포함하는 저장 장치 및 그것의 동작 방법
KR102234592B1 (ko) 2014-07-29 2021-04-05 삼성전자주식회사 불휘발성 메모리, 데이터 저장 장치, 및 데이터 저장 장치의 동작 방법
KR102248207B1 (ko) * 2014-10-30 2021-05-06 삼성전자주식회사 저장 장치 및 그것의 동작 방법
KR102211868B1 (ko) 2014-12-15 2021-02-04 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
KR20160127525A (ko) * 2015-04-27 2016-11-04 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR102398611B1 (ko) * 2015-05-07 2022-05-17 에스케이하이닉스 주식회사 메모리 시스템
KR102313017B1 (ko) * 2015-08-21 2021-10-18 삼성전자주식회사 불휘발성 메모리 장치 및 불휘발성 메모리 장치의 쓰기를 제어하는 컨트롤러를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법
KR102057283B1 (ko) * 2015-11-03 2019-12-18 에스케이하이닉스 주식회사 3 차원 비휘발성 메모리 소자의 초기화 방법 및 이의 프로그래밍 방법
KR102389077B1 (ko) * 2015-11-05 2022-04-22 에스케이하이닉스 주식회사 3 차원 비휘발성 메모리 소자의 초기화 방법 및 이의 프로그래밍 방법
KR20170056767A (ko) * 2015-11-13 2017-05-24 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
TWI625729B (zh) * 2015-11-25 2018-06-01 旺宏電子股份有限公司 資料配置方法及應用其之電子系統
KR20170076878A (ko) * 2015-12-24 2017-07-05 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
JP6433933B2 (ja) * 2016-03-14 2018-12-05 東芝メモリ株式会社 半導体記憶装置及びメモリシステム
CN107391296B (zh) 2016-04-27 2020-11-06 慧荣科技股份有限公司 存取闪存模块的方法及相关的闪存控制器与记忆装置
CN111679787B (zh) 2016-04-27 2023-07-18 慧荣科技股份有限公司 闪存装置、闪存控制器及闪存存储管理方法
US10019314B2 (en) 2016-04-27 2018-07-10 Silicon Motion Inc. Flash memory apparatus and storage management method for flash memory
US10289487B2 (en) 2016-04-27 2019-05-14 Silicon Motion Inc. Method for accessing flash memory module and associated flash memory controller and memory device
CN107391026B (zh) 2016-04-27 2020-06-02 慧荣科技股份有限公司 闪存装置及闪存存储管理方法
KR102533016B1 (ko) * 2016-07-28 2023-05-17 에스케이하이닉스 주식회사 메모리 장치 및 이의 동작 방법
US10325657B2 (en) * 2017-01-25 2019-06-18 Samsung Electronics Co., Ltd. Non-volatile memory devices and methods of programming the same
KR102289598B1 (ko) 2017-06-26 2021-08-18 삼성전자주식회사 불휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템 그리고 그것의 프로그램 방법
US11232841B2 (en) * 2017-09-05 2022-01-25 Samsung Electronics Co., Ltd. Methods of operating memory devices based on sub-block positions and related memory system
KR102422252B1 (ko) * 2017-11-15 2022-07-19 에스케이하이닉스 주식회사 메모리 장치
CN108536475B (zh) * 2017-12-27 2023-08-15 贵阳忆芯科技有限公司 完整编程命令处理方法与装置
KR20190099570A (ko) * 2018-02-19 2019-08-28 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR102611566B1 (ko) * 2018-07-06 2023-12-07 삼성전자주식회사 솔리드 스테이트 드라이브 및 그의 메모리 할당 방법
CN110827904B (zh) * 2018-08-09 2023-04-14 旺宏电子股份有限公司 存储器装置及其编程方法
KR102537373B1 (ko) 2018-09-10 2023-05-30 에스케이하이닉스 주식회사 메모리 시스템에서의 데이터 전달 방법 및 장치
TWI696113B (zh) * 2019-01-02 2020-06-11 慧榮科技股份有限公司 用來進行組態管理之方法以及資料儲存裝置及其控制器
KR20200144389A (ko) * 2019-06-18 2020-12-29 삼성전자주식회사 스토리지 장치 및 그것의 액세스 방법
JP2021047941A (ja) 2019-09-17 2021-03-25 キオクシア株式会社 メモリシステム及びメモリシステムの制御方法
CN110908928B (zh) * 2019-10-15 2022-03-11 深圳市金泰克半导体有限公司 搜寻最后写入页的方法及装置
KR20210068699A (ko) * 2019-12-02 2021-06-10 삼성전자주식회사 스토리지 장치, 스토리지 시스템 및 스토리지 장치의 동작 방법
JP2022039654A (ja) * 2020-08-28 2022-03-10 キオクシア株式会社 メモリシステム
KR20230001182A (ko) * 2021-06-28 2023-01-04 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함하는 저장 장치 및 그것의 동작 방법
US11893243B2 (en) 2021-10-06 2024-02-06 Western Digital Technologies, Inc. Storage system and method for program reordering to mitigate program disturbs
US11901014B2 (en) * 2022-05-09 2024-02-13 Micron Technology, Inc. Partial block handling in a non-volatile memory device
US20240118821A1 (en) * 2022-10-04 2024-04-11 Western Digital Technologies, Inc. Read Collision Avoidance in Sequential Mixed Workloads

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100013947A (ko) * 2008-08-01 2010-02-10 주식회사 하이닉스반도체 불휘발성 메모리 장치의 멀티 레벨 셀 프로그램 방법
JP2011253609A (ja) * 2010-06-01 2011-12-15 Samsung Electronics Co Ltd 不揮発性メモリー装置、そのプログラム方法、不揮発性メモリー装置を含むメモリーシステム、電子装置及びシステム
US20120008387A1 (en) * 2010-07-07 2012-01-12 Skymedi Corporation Method of twice programming a non-volatile flash memory with a sequence

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7680977B2 (en) 2004-02-26 2010-03-16 Super Talent Electronics, Inc. Page and block management algorithm for NAND flash
US7493457B2 (en) * 2004-11-08 2009-02-17 Sandisk Il. Ltd States encoding in multi-bit flash cells for optimizing error rate
KR100856292B1 (ko) 2006-09-29 2008-09-03 주식회사 하이닉스반도체 플래시 메모리 소자 및 프로그램 방법
JP2009059453A (ja) * 2007-09-03 2009-03-19 Toshiba Corp 不揮発性半導体記憶装置及びメモリシステム
WO2010002948A1 (en) 2008-07-01 2010-01-07 Lsi Corporation Methods and apparatus for soft demapping and intercell interference mitigation in flash memories
KR20100095938A (ko) 2009-02-23 2010-09-01 엘지전자 주식회사 플래시 메모리장치
JP2010198252A (ja) 2009-02-24 2010-09-09 Nec Corp 不揮発メモリ装置、不揮発メモリの書込み方法、及び不揮発メモリ書込みプログラム
KR101635504B1 (ko) 2009-06-19 2016-07-04 삼성전자주식회사 3차원 수직 채널 구조를 갖는 불 휘발성 메모리 장치의 프로그램 방법
KR20110001701A (ko) 2009-06-30 2011-01-06 주식회사 하이닉스반도체 낸드형 플래시 메모리소자의 프로그램 방법
JP4901968B2 (ja) * 2010-03-01 2012-03-21 株式会社東芝 半導体記憶装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100013947A (ko) * 2008-08-01 2010-02-10 주식회사 하이닉스반도체 불휘발성 메모리 장치의 멀티 레벨 셀 프로그램 방법
JP2011253609A (ja) * 2010-06-01 2011-12-15 Samsung Electronics Co Ltd 不揮発性メモリー装置、そのプログラム方法、不揮発性メモリー装置を含むメモリーシステム、電子装置及びシステム
US20120008387A1 (en) * 2010-07-07 2012-01-12 Skymedi Corporation Method of twice programming a non-volatile flash memory with a sequence

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180008951A (ko) * 2016-07-14 2018-01-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20180052465A (ko) * 2016-11-10 2018-05-18 삼성전자주식회사 솔리드 스테이트 드라이브 장치 및 이를 포함하는 저장 시스템
KR20200100167A (ko) * 2017-12-29 2020-08-25 마이크론 테크놀로지, 인크. 정정 불가능 ecc
KR20220025189A (ko) * 2017-12-29 2022-03-03 마이크론 테크놀로지, 인크. 정정 불가능 ecc
US11694760B2 (en) 2017-12-29 2023-07-04 Micron Technology, Inc. Uncorrectable ECC
CN112947849A (zh) * 2019-12-10 2021-06-11 西部数据技术公司 非易失性存储器编程顺序

Also Published As

Publication number Publication date
US9076516B2 (en) 2015-07-07
KR101962786B1 (ko) 2019-03-27
JP2017195012A (ja) 2017-10-26
JP2013200935A (ja) 2013-10-03
JP6742964B2 (ja) 2020-08-19
CN103325417A (zh) 2013-09-25
US20130250677A1 (en) 2013-09-26

Similar Documents

Publication Publication Date Title
JP6742964B2 (ja) 不揮発性メモリ装置、メモリシステム、及びそれのプログラム方法
US10467133B2 (en) Storage device including nonvolatile memory device and garbage collection method thereof
US8990483B2 (en) Nonvolatile memory device, memory system, and program method therof
KR101868377B1 (ko) 불휘발성 메모리 장치 및 그것의 프로그램 방법
KR102024850B1 (ko) 3차원 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법
KR101997572B1 (ko) 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 쓰기 방법
KR101915719B1 (ko) 불휘발성 메모리 장치 및 그것의 프로그램 동작 방법
US9190155B2 (en) Memory system
KR101792870B1 (ko) 불휘발성 메모리 장치 및 그것의 읽기 방법
KR101916718B1 (ko) 불휘발성 메모리 장치 및 그것의 메모리 관리 방법
KR102295208B1 (ko) 프로그램 영역을 동적으로 할당하는 저장 장치 및 그것의 프로그램 방법
KR102245822B1 (ko) 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 프로그램 방법
KR20160008365A (ko) 저장 매체, 메모리 시스템 및 메모리 시스템에서의 저장 영역 관리 방법
US9576668B2 (en) Semiconductor device and operating method thereof
KR102364381B1 (ko) 메모리 시스템 및 그의 동작방법
KR20130036851A (ko) 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 동작 방법
US9147475B2 (en) Data storage device comprising nonvolatile memory chips and control method thereof
TW201719644A (zh) 記憶體系統和記憶體系統的操作方法
US20150332783A1 (en) Method of operating semiconductor device
KR102157875B1 (ko) 불휘발성 메모리 장치 및 그것을 포함한 메모리 시스템
KR20190122366A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
CN106126437B (zh) 存储系统
US20130138869A1 (en) Nonvolatile memory and memory device including the same
KR102434986B1 (ko) 데이터 신뢰성이 개선된 메모리 장치 및 이의 동작방법

Legal Events

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