KR102024850B1 - 3차원 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법 - Google Patents

3차원 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법 Download PDF

Info

Publication number
KR102024850B1
KR102024850B1 KR1020120086805A KR20120086805A KR102024850B1 KR 102024850 B1 KR102024850 B1 KR 102024850B1 KR 1020120086805 A KR1020120086805 A KR 1020120086805A KR 20120086805 A KR20120086805 A KR 20120086805A KR 102024850 B1 KR102024850 B1 KR 102024850B1
Authority
KR
South Korea
Prior art keywords
data
memory
page
bit
programmed
Prior art date
Application number
KR1020120086805A
Other languages
English (en)
Other versions
KR20140020445A (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 KR1020120086805A priority Critical patent/KR102024850B1/ko
Priority to US13/707,648 priority patent/US9223692B2/en
Priority to TW102105744A priority patent/TWI602184B/zh
Priority to DE102013108456.7A priority patent/DE102013108456B4/de
Priority to JP2013164003A priority patent/JP6315917B2/ja
Priority to CN201310343797.0A priority patent/CN103578551B/zh
Publication of KR20140020445A publication Critical patent/KR20140020445A/ko
Application granted granted Critical
Publication of KR102024850B1 publication Critical patent/KR102024850B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3468Prevention of overerasure or overprogramming, e.g. by verifying whilst erasing or writing
    • G11C16/3481Circuits or methods to verify correct programming of nonvolatile memory cells whilst programming is in progress, e.g. by detecting onset or cessation of current flow in cells and using the detector output to terminate programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix

Abstract

본 발명의 3차원 불휘발성 메모리를 포함하는 메모리 시스템 및 그것의 프로그램 방법에 관한 것이다. 본 발명에 따른 프로그램 방법은 외부로부터 제 1 데이터를 수신하는 단계, 수신된 제 1 데이터를 복수의 물리 페이지들에 분할하여 프로그램하는 제 1 프로그램 단계, 외부로부터 제 2 데이터를 수신하는 단계, 프로그램된 복수의 물리 페이지 중 적어도 하나의 물리 페이지를 선택하는 단계, 및 선택된 물리 페이지의 메모리 셀 마다 멀티 비트 데이터를 동시에 프로그램함으로써, 수신된 제 2 데이터를 선택된 물리 페이지에 프로그램하는 제 2 프로그램 단계를 포함한다.

Description

3차원 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법{MEMORY SYSTEM INCLUDING THREE DIMENSIONAL NONVOLATILE MEMORY DEVICE AND PROGRAMMING METHOD THEREOF}
본 발명은 반도체 메모리 장치에 관한 것으로, 더욱 상세하게는 3차원 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법에 관한 것이다.
반도체 메모리 장치는 크게 휘발성 반도체 메모리 장치(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차원 메모리가 연구되고 있다. 3차원 메모리는 집적도 및 단가 측면에서 기존의 평면형 메모리보다 장점을 가지나, 신뢰성 측면에서 해결되어야할 과제들이 남아 있다.
본 발명의 목적은 3차원 불휘발성 메모리에 데이터를 저장하기 위해 필요한 프로그램 횟수를 감소시킨 3차원 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법을 제공하는 데 있다.
본 발명의 다른 목적은 호스트와의 데이터 호환성을 향상시킨 3차원 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법을 제공하는 데 있다.
본 발명에 따른 메모리 시스템의 프로그램 방법은, 기판 상에 수직 방향으로 셀 스트링들이 형성되며, 복수의 워드 라인 각각은 복수의 스트링 선택 라인(String Selection Line, SSL)에 따라 동작이 선택되는 복수의 물리 페이지를 형성하고, 상기 복수의 메모리 셀은 상기 물리 페이지 단위로 프로그램되는 3차원 불휘발성 메모리 장치를 포함하는 메모리 시스템의 프로그램 방법에 있어서, 외부로부터 제 1 데이터를 수신하는 단계; 상기 수신된 제 1 데이터를 복수의 물리 페이지들에 분할하여 프로그램하는 제 1 프로그램 단계; 외부로부터 제 2 데이터를 수신하는 단계; 상기 프로그램된 복수의 물리 페이지 중 적어도 하나의 물리 페이지를 선택하는 단계; 및 상기 선택된 물리 페이지의 메모리 셀 마다 멀티 비트 데이터를 동시에 프로그램함으로써, 상기 수신된 제 2 데이터를 상기 선택된 물리 페이지에 프로그램하는 제 2 프로그램 단계를 포함한다.
실시 예로서, 상기 복수의 메모리 셀은 멀티 레벨 셀이고, 상기 복수의 물리 페이지 각각은 복수의 논리 페이지를 포함한다.
실시 예로서, 상기 제 1 프로그램 단계에서, 상기 제 1 데이터는 상기 복수의 논리 페이지 중 최하위 비트 페이지에 프로그램된다.
실시 예로서, 상기 제 1 프로그램 단계에서, 상기 제 1 데이터는 상기 최하위 비트 페이지의 크기(size)에 의해 분할된다.
실시 예로서, 상기 최하위 비트 페이지의 크기(size)는 상기 물리 페이지에 포함된 메모리 셀의 개수에 의존한다.
실시 예로서, 상기 복수의 논리 페이지는 최하위 비트 페이지, 중간 비트 페이지 및 최상위 비트 페이지를 포함한다.
실시 예로서, 상기 제 2 프로그램 단계에서, 상기 제 2 데이터는 상기 선택된 물리 페이지의 중간 비트 페이지 및 최상위 비트 페이지에 프로그램된다.
실시 예로서, 상기 제 2 데이터의 크기(size)는 상기 선택된 물리 페이지의 중간 비트 페이지 크기(size) 및 최상위 비트 페이지 크기(size)의 합과 같다.
실시 예로서, 상기 제 1 데이터는 2n 비트 크기를 갖는 데이터이고, 상기 제 2 데이터는 2m 비트 크기를 갖는 데이터이고, 상기 n 및 m은 각각 1 이상의 정수이다.
실시 예로서, 상기 복수의 물리 페이지는 동일한 스트링 선택 라인(String Selection Line, SSL)에 의해 선택된다.
실시 예로서, 상기 복수의 메모리 페이지는 서로 다른 스트링 선택 라인(String Selection Line, SSL)에 의해 선택되는 메모리 페이지들을 포함한다.
본 발명에 따른 메모리 시스템의 프로그램 방법은, 기판 상에 수직 방향으로 셀 스트링들이 형성되며, 복수의 워드 라인 각각은 복수의 스트링 선택 라인(String Selection Line, SSL)에 따라 동작이 선택되는 복수의 물리 페이지를 형성하고, 상기 복수의 메모리 셀은 상기 물리 페이지 단위로 프로그램되는 3차원 불휘발성 메모리 장치를 포함하는 메모리 시스템의 프로그램 방법에 있어서, 데이터를 수신하는 단계; 상기 수신된 데이터를 상기 물리 페이지에 포함된 메모리 셀들의 개수에 따라 분할하는 단계; 및 상기 분할된 데이터들을 복수의 물리 페이지에 나누어 프로그램하는 단계를 포함한다.
실시 예로서, 상기 분할된 데이터들이 프로그램된 후, 새로운 데이터를 수신하는 단계; 및 상기 새로운 데이터를 상기 복수의 물리 페이지 중 적어도 하나의 물리 페이지에 프로그램하는 단계를 더 포함하되, 상기 새로운 데이터를 프로그램하는 단계는 상기 적어도 하나의 물리 페이지의 메모리 셀마다 멀티 비트 데이터를 동시에 프로그램함으로써, 상기 물리 페이지의 메모리 셀들에 상기 새로운 데이터를 프로그램한다.
실시 예로서, 상기 복수의 물리 페이지 각각은 복수의 논리 페이지를 포함하고, 상기 복수의 논리 페이지는 최하위 비트 페이지를 포함하고, 상기 분할된 데이터들은 상기 복수의 물리 페이지 각각의 최하위 비트 페이지에 프로그램된다.
실시 예로서, 상기 복수의 논리 페이지는 중간 비트 페이지 및 최상위 비트 페이지를 더 포함하고, 상기 새로운 데이터는 상기 적어도 하나의 물리 페이지의 중간 비트 페이지 및 최상위 비트 페이지에 프로그램된다.
본 발명에 따른 메모리 시스템은 기판 상에 수직 방향으로 셀 스트링들이 형성되며, 복수의 워드 라인 각각은 복수의 스트링 선택 라인(String Selection Line, SSL)에 따라 동작이 선택되는 복수의 물리 페이지를 형성하고, 상기 복수의 메모리 셀은 상기 물리 페이지 단위로 프로그램되는 3차원 불휘발성 메모리; 및 상기 3차원 불휘발성 메모리를 제어하는 컨트롤러를 포함하되, 상기 컨트롤러는 호스트로부터 데이터를 수신하고, 상기 수신된 데이터를 상기 물리 페이지에 포함된 메모리 셀들의 개수에 따라 분할하고, 상기 분할된 데이터들을 상기 3차원 불휘발성 메모리의 서로 다른 복수의 물리 페이지에 각각 프로그램한다.
실시 예로서, 상기 컨트롤러는 상기 분할된 데이터들이 프로그램된 후에, 상기 프로그램된 복수의 물리 페이지들 중 적어도 하나의 물리 페이지에 새로운 데이터를 프로그램하되, 상기 새로운 데이터의 프로그램에 의해 상기 적어도 하나의 물리 페이지에 포함된 메모리 셀들 각각에 멀티 비트 데이터가 동시에 프로그램된다.
실시 예로서, 상기 분할된 데이터는 상기 적어도 하나의 물리 페이지에 포함된 메모리 셀들 각각의 최하위 비트 데이터로서 프로그램되고, 상기 새로운 데이터는 상기 적어도 하나의 물리 페이지에 포함된 메모리 셀들 각각의 중간 비트 데이터 및 최상위 비트 데이터로서 프로그램된다.
실시 예로서, 상기 3차원 불휘발성 메모리는, 상기 컨트롤러로부터 전송되는 데이터를 상기 복수의 물리 페이지에 프로그램하거나, 상기 복수의 물리 페이지에 저장된 데이터를 읽어내는 페이지 버퍼를 포함하되, 상기 페이지 버퍼는 상기 복수의 물리 페이지에 프로그램되는 데이터를 일시적으로 저장하는 최하위 비트 래치, 중간 비트 래치 및 최상위 비트 래치를 포함한다.
실시 예로서, 상기 복수의 메모리 셀은 차지 트랩 플래시(Charge Trap Flash, CTF) 셀이다.
본 발명에 따르면, 3차원 불휘발성 메모리 장치에 데이터를 저장하기 위해 필요한 프로그램 횟수가 감소된다. 따라서, 데이터 저장 속도가 향상되고, 프로그램을 위한 전력 소모가 감소된다.
또한, 호스트와의 데이터 호환성이 향상됨으로써, 메모리 시스템이 더욱 효율적으로 운영될 수 있다.
도 1은 본 발명에 따른 3차원 불휘발성 메모리 장치를 나타내는 블록도이다.
도 2는 본 발명에 따른 메모리 시스템을 나타내는 블록도이다.
도 3은 도 1에 도시된 3차원 메모리 셀 어레이를 보여주는 블록도이다.
도 4는 도 3의 메모리 블록들 중 하나의 메모리 블록을 보여주는 예시적인 평면도이다.
도 5는 도 4에 도시된 메모리 블록의 예시적인 등가 회로도이다.
도 6은 도 4에 도시된 메모리 블록에서 워드 라인과 연결된 메모리 셀들의 페이지 구조를 예시적으로 나타내는 도면이다.
도 7은 도 4에 도시된 메모리 블록에서 셀 스트링 선택 라인과 연결된 메모리 셀들의 페이지 구조를 예시적으로 나타내는 도면이다.
도 8은 3차원 불휘발성 메모리의 프로그램 시에 인가되는 전압들을 예시적으로 나타내는 도면이다.
도 9 및 도 10은 본 발명에 따른 프로그램 방법을 나타내는 순서도들이다.
도 11 내지 도 17은 본 발명에 따른 프로그램 방법을 구체적으로 설명하기 위한 도면들이다.
도 18은 본 발명에 따른 프로그램 방법의 다른 실시 예를 나타내는 도면이다.
도 19는 본 발명에 따른 메모리 시스템의 다른 실시 예를 나타내는 블록도이다.
도 20은 본 발명의 실시 예에 따른 솔리드 스테이트 드라이브를 나타내는 블록도이다.
도 21은 본 발명의 실시 예에 따른 메모리 카드를 나타내는 블록도이다.
도 22는 본 발명의 실시 예에 따른 컴퓨팅 시스템을 나타내는 블록도이다.
앞의 일반적인 설명 및 다음의 상세한 설명들은 모두 청구된 발명의 부가적인 설명을 제공하기 위한 예시적인 것이다. 그러므로 본 발명은 여기서 설명되는 실시 예에 한정되지 않고 다른 형태로 구체화될 수도 있다. 여기서 소개되는 실시 예는 개시된 내용이 철저하고 완전해 질 수 있도록 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되는 것이다.
본 명세서에서, 어떤 부분이 어떤 구성요소를 포함한다고 언급되는 경우에, 이는 그 외의 다른 구성요소를 더 포함할 수도 있다는 것을 의미한다. 이하, 본 발명의 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명에 따른 3차원 불휘발성 메모리 장치를 나타내는 블록도이다. 도 1을 참조하면, 3차원 불휘발성 메모리 장치(100)는 메모리 셀 어레이(110), 어드레스 디코더(120), 페이지 버퍼(130), 그리고 제어 로직(140)을 포함한다.
메모리 셀 어레이(110)는 워드 라인들(WL), 스트링 선택 라인들(SSL) 및 접지 선택 라인들(GSL)을 통해 어드레스 디코더(120)에 연결되고, 비트 라인들(BL)을 통해 페이지 버퍼(130)에 연결된다. 메모리 셀 어레이(110)는 복수의 메모리 블록들을 포함할 수 있다. 복수의 메모리 블록들 각각은 기판상에서 행 방향 및 열 방향을 따라 배열되고, 기판과 수직한 높이 방향으로 배열되는 3차원 구조의 복수의 메모리 셀들을 포함한다. 또한, 메모리 셀 어레이(110)는 기판 상에 수직 방향으로 셀 스트링들이 형성되며, 복수의 메모리 셀들은 스트링 선택 라인(String Selection Line, SSL) 단위로 선택된다. 복수의 메모리 셀들 각각은 둘 이상의 비트들을 저장할 수 있다. 즉, 복수의 메모리 셀들 각각은 멀티 레벨 셀로서 동작한다.
한편, 복수의 메모리 셀들 각각은 차지 트랩 플래시(Charge Trap Flash, CTF) 셀일 수 있다.
어드레스 디코더(120)는 워드 라인들(WL), 스트링 선택 라인들(SSL) 및 접지 선택 라인들(GSL)을 통해 메모리 셀 어레이(110)에 연결된다. 어드레스 디코더(120)는 제어 로직(140)의 제어에 응답하여 동작하도록 구성된다. 어드레스 디코더(120)는 외부로부터 어드레스(ADDR)를 수신한다.
어드레스 디코더(120)는 수신된 어드레스(ADDR) 중 행 어드레스를 디코딩하도록 구성된다. 디코딩된 행 어드레스를 이용하여, 어드레스 디코더(120)는 워드 라인들(WL), 스트링 선택 라인들(SSL) 및 접지 선택 라인들(GSL)을 선택한다. 어드레스 디코더(1120)는 전달된 어드레스(ADDR) 중 열 어드레스를 디코딩하도록 구성된다. 디코딩된 열 어드레스(DCA)는 페이지 버퍼(130)에 전달된다. 예시적으로, 어드레스 디코더(120)는 행 디코더, 열 디코더, 어드레스 버퍼 등과 같은 구성 요소들을 포함한다.
페이지 버퍼(130)는 비트 라인들(BL)을 통해 메모리 셀 어레이(110)에 연결된다. 페이지 버퍼(130)는 제어 로직(140)의 제어에 응답하여 동작한다. 페이지 버퍼(130)는 어드레스 디코더(120)로부터 디코딩된 열 어드레스(미도시)를 수신하도록 구성될 수 있다. 디코딩된 열 어드레스를 이용하여, 페이지 버퍼(1130)는 비트 라인들(BL)을 선택할 수 있다.
페이지 버퍼(130)는 외부로부터 데이터를 수신하고, 수신된 데이터를 메모리 셀 어레이(110)에 기입한다. 페이지 버퍼(130)는 메모리 셀 어레이(110)로부터 데이터를 읽고, 읽어진 데이터를 외부에 전달한다. 실시 예로서, 페이지 버퍼(130)는 카피-백(copy-back)을 수행할 수 있다. 예를 들면, 페이지 버퍼(130)는 메모리 셀 어레이(110)의 제 1 저장 영역으로부터 데이터를 읽고, 읽어진 데이터를 메모리 셀 어레이(110)의 제 2 저장 영역에 기입한다.
페이지 버퍼(130)는 복수의 페이지 버퍼 유닛들(미도시)을 포함한다. 복수의 페이지 버퍼 유닛들은 각각 비트 라인들(BL)과 연결된다. 복수의 페이지 버퍼 유닛은 프로그램 시에 비트 라인들(BL)을 바이어스하고, 읽기 및 프로그램 검증 시에 비트 라인들(BL)의 전압들을 감지할 수 있다.
제어 로직(140)은 어드레스 디코더(120)와 페이지 버퍼(130)에 연결된다. 제어 로직(140)은 불휘발성 메모리(100)의 제반 동작을 제어하도록 구성된다. 제어 로직(140)은 외부로부터 전달되는 제어 신호(CTRL) 및 커맨드(CMD)에 응답하여 동작한다.
본 발명의 일 실시 예에 따르면, 제어 로직(140)은 외부로부터 제 1 데이터가 페이지 버퍼(130)에 수신되면, 제 1 데이터가 메모리 셀 어레이(110) 에 프로그램되도록 페이지 버퍼(130) 및 어드레스 디코더(120)를 제어한다. 이때, 제 1 데이터는 복수의 분할된 데이터로 나뉘어 페이지 버퍼(130)에 수신될 수 있다. 그러한 경우, 제어 로직(140)은 복수의 분할된 데이터들이 메모리 셀 어레이(110)의 복수의 페이지 버퍼에 각각 저장되도록 어드레스 디코더(120) 및 페이지 버퍼(130)를 제어한다. 이때, 복수의 페이지 버퍼의 메모리 셀들 각각에는 1비트 데이터가 저장된다. 또한, 각각의 분할된 데이터는 각각의 물리 페이지의 최하위 비트 데이터로서 프로그램된다. 여기서, 물리 페이지는 하나의 워드 라인에 연결된 메모리 셀들 중 동일한 행에 위치한 메모리 셀들의 집합을 의미한다. 실시 예로서, 하나의 워드 라인은 복수의 물리 페이지에 연결될 수 있다.
그리고, 제 1 데이터가 프로그램된 후, 제 2 데이터가 페이지 버퍼(130)에 수신되면, 제어 로직(140)은 제 1 데이터가 프로그램된 복수의 물리 페이지 중 적어도 하나의 물리 페이지가 선택되도록 한다. 이때, 선택된 물리 페이지의 메모리 셀들 각각에는 제 1 데이터에 의해 1비트 데이터가 저장된 상태이다. 그리고, 제어 로직(140)은 제 1 데이터가 저장된 선택된 물리 페이지에 제 2 데이터를 더 저장하기 위해, 새로운 프로그램을 수행한다. 이때, 제 2 데이터를 위한 프로그램에서 제어 로직(140)은 멀티 비트 데이터를 선택된 물리 페이지에 동시에 프로그램한다. 제 2 데이터는 선택된 물리 페이지의 메모리 셀에 중간 비트 데이터 및 최상위 비트 데이터로서 프로그램될 수 있다. 이 경우, 각 메모리 셀에는 1비트 크기를 갖는 중간 비트 데이터 및 최상위 비트 데이터가 동시에 프로그램된다. 따라서, 메모리 셀이 저장하는 데이터는 제 2 데이터의 프로그램을 통해 1비트에서 3비트로 증가한다. 여기서, 중간 비트 데이터 및 최상위 비트 데이터가 동시에 프로그램된다는 의미는, 중간 비트 데이터 및 최상위 비트 데이터가 순차적으로 메모리 셀에 프로그램되지 않고, 한번의 프로그램 동작을 통해 동시에 메모리 셀에 프로그램되는 것을 의미한다. 이에 관한 보다 구체적인 설명은 도 9 및 도 17과 함께 후술될 것이다.
한편, 여기서 선택된 물리 페이지의 각 메모리 셀은 최하위 비트 데이터, 중간 비트 데이터 및 최상위 비트 데이터를 저장하는 것(즉, 3비트 데이터를 저장하는 것)으로 가정하였다. 그러나, 본 발명의 범위는 이에 한정되지 않으며 선택된 메모리 페이지의 각 메모리 셀들은 4비트 이상의 데이터를 저장할 수 있다.
상기와 같은 구성에 따르면, 멀티 비트 데이터를 메모리 셀에 동시에 프로그램하므로, 프로그램 횟수가 감소될 수 있다. 따라서, 데이터 저장 속도가 향상되고, 프로그램 동작에 소모되는 전력이 감소된다.
한편, 여기서는 구체적으로 설명되지 않았으나, 제 1 데이터를 복수의 물리 페이지에 분할하여 저장하고, 제 1 데이터를 저장한 물리 페이지에 제 2 데이터를 추가로 프로그램하는 동작을 통해, 호스트와의 데이터 호환성이 향상될 수 있다. 이에 대한 구체적인 설명은, 도 11 내지 도 15와 함께 제공될 것이다.
도 2는 본 발명에 따른 메모리 시스템을 나타내는 블록도이다. 도 2를 참조하면, 메모리 시스템(1200)은 3차원 불휘발성 메모리(1220), 및 컨트롤러(1210)를 포함한다. 그리고, 호스트 시스템(1000)에서, 메모리 시스템(1200)은 호스트(1100)와 인터페이스한다.
3차원 불휘발성 메모리(1220)는 컨트롤러(1300)로부터 제어 신호(CTRL), 커맨드(CMD) 및 어드레스(ADDR)를 수신하고, 컨트롤러(1300)와 데이터(DATA)를 교환하도록 구성된다. 3차원 불휘발성 메모리(1220)는 기판상에서 행 방향과 열 방향으로 배열되고, 기판과 수직한 높이 방향으로 배열되는 복수의 메모리 셀들을 포함할 수 있다. 즉, 3차원 불휘발성 메모리(1220)는 3차원 구조를 가질 수 있다. 3차원 불휘발성 메모리(1100)는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 중 적어도 하나를 포함할 수 있다. 간결한 설명을 위하여, 이하에서 플래시 메모리, 더 상세하게는 3차원 낸드 플래시 메모리의 예를 참조하여 본 발명의 기술적 사상이 설명된다. 그러나, 본 발명의 기술적 사상은 3차원 낸드 플래시 메모리에 한정되지 않는다.
한편, 불휘발성 메모리(1220)에 포함된 메모리 셀은 차지 트랩 플래시(Charge Trap Flash, CTF) 셀일 수 있다.
컨트롤러(1210)는 3차원 불휘발성 메모리(1220)의 읽기, 프로그램 및 소거 동작을 제어할 수 있다. 컨트롤러(1210)는 외부 장치와 통신할 수 있다. 예를 들어, 컨트롤러(1210)는 호스트(1100)와 통신할 수 있다. 컨트롤러(1210)는 호스트(1100)로부터 수신되는 데이터를 3차원 불휘발성 메모리(1220)에 프로그램하고, 3차원 불휘발성 메모리(1220)로부터 읽어지는 데이터를 호스트(1100)로 출력할 수 있다.
본 발명의 일 실시 예에 따르면, 불휘발성 메모리(1220)는 페이지 단위로 프로그램된다. 한편, 컨트롤러(1210)는 호스트(1100)로부터 데이터를 수신하면, 수신된 데이터를 불휘발성 메모리(1220)의 물리 페이지에 포함되는 메모리 셀의 개수로 나눈다. 그리고, 컨트롤러(1210)는 그 결과에 따라 수신된 데이터를 분할한다. 예를 들어, 호스트(1100)로부터 16KB 데이터가 수신되고, 불휘발성 메모리(1220)의 하나의 물리 페이지에 8K개의 메모리 셀이 포함된다고 가정하면, 컨트롤러(1210)는 수신된 데이터를 셋으로 분할한다(16/8=2). 각 메모리 셀을 단일 비트 레벨로 프로그램하는 경우, 각 메모리 셀은 1비트 데이터를 저장하므로, 8K개의 메모리 셀을 포함하는 물리 페이지는 8KB 데이터를 저장할 수 있다. 단, 여기서 단일 비트 레벨로 프로그램한다는 것은 메모리 셀이 두 개의 논리 상태 중 어느 하나를 갖도록(즉, '0' 또는 '1' 논리 상태를 갖도록) 프로그램하는 것을 의미한다. 따라서, 나누어진 숫자 2는 수신된 16KB의 데이터를 단일 비트 레벨로 프로그램하기 위해 2개의 메모리 페이지가 요구됨을 의미한다.
컨트롤러(1210)는 분할된 데이터를 불휘발성 메모리(1220)에 전송한다. 그리고, 분할된 데이터 각각이 서로 다른 물리 페이지에 저장되도록 불휘발성 메모리(1220)를 제어한다. 이때, 분할된 데이터는 서로 다른 물리 페이지에 단일 비트 레벨로 프로그램된다. 실시 예로서, 분할된 데이터는 각각의 물리 페이지의 최하위 비트 데이터로서 프로그램된다.
분할된 데이터들이 모두 프로그램된 후에, 호스트(1100)로부터 새로운 데이터가 수신되면, 컨트롤러(1210)는 새로운 데이터의 크기와 불휘발성 메모리(1220)의 메모리 페이지의 용량을 비교한다. 예를 들어, 불휘발성 메모리(1220)의 메모리 셀이 삼중 레벨 셀(Triple Level Cell, TLC)인 경우, 8K개의 메모리 셀을 포함하는 메모리 페이지는 24KB의 데이터를 저장할 수 있다.
실시 예로서, 새로운 데이터(이하, 제 2 데이터)의 크기가 16KB이면, 앞서 8KB 데이터(이하, 제 1 데이터)를 저장한 물리 페이지에 새로운 데이터를 추가로 프로그램한다. 이때, 제 2 데이터는 제 1 데이터와는 다른 레벨 비트로서 저장된다. 예를 들어, 메모리 셀이 삼중 레벨 셀(TLC)인 경우, 제 1 데이터는 메모리 셀의 최하위 비트로서 저장되고 제 2 데이터는 메모리 셀의 중간 비트 및 최상위 비트로서 저장된다. 이때, 제 2 데이터의 프로그램을 통해, 각 메모리 셀은 종래의 1비트 데이터에 더하여 2비트 데이터를 더 저장하게 된다. 구체적으로, 각 메모리 셀은 제 1 데이터의 프로그램을 통해, 두 개의 논리 상태 중 하나를 갖도록 프로그램된다. 이것은 메모리 셀이 1비트 데이터를 저장함을 의미한다. 그리고, 각 메모리 셀은 제 2 데이터의 프로그램 동작을 통해, 8개의 논리 상태 중 하나를 갖도록 프로그램된다. 이것은 메모리 셀이 3비트 데이터를 저장함을 의미한다. 이 경우, 하나의 물리 페이지는 24KB의 데이터를 저장할 수 있으므로, 물리 페이지는 앞서 저장된 제 1 데이터(8KB)에 더하여 제 2 데이터(16KB)를 더 저장할 수 있다. 한편, 이때, 제 2 데이터는 멀티 비트 데이터로서 물리 페이지에 동시에 프로그램된다.
종래 기술에 따르면, 8K개의 메모리 셀을 가진 물리 페이지에 16KB 데이터를 프로그램하는 경우, 16KB 데이터를 둘로 나누어, 첫 번째 8KB 데이터를 하위 비트 데이터로서 프로그램하고, 이어서 두 번째 8KB 데이터를 상위 비트 데이터로서 프로그램하는 2회의 프로그램 동작을 수행하였다. 그러나, 본 발명에서는 하나의 프로그램 동작을 통해 8KB 데이터를 하위 비트 데이터와 상위 비트 데이터로서 동시에 프로그램한다.
불휘발성 메모리(1220)의 메모리 셀이 차지 트랩 플래시(CTF) 셀인 경우, 플로팅 게이트 셀에 비해 워드 라인 간섭(Word Line Interference)가 매우 적다. 따라서, 이처럼 하나의 메모리 셀에 하위 비트 데이터와 상위 비트 데이터를 동시에 프로그램하여도 워드 라인 간섭에 의해 프로그램 페일이 거의 발생하지 않게 된다.
실시 예로서, 새로운 데이터의 크기가 8KB이면, 앞서 8KB 데이터를 저장한 물리 페이지에 새로운 데이터를 프로그램하게 되면, 메모리 페이지는 16KB의 데이터만을 저장하게 된다. 따라서, 물리 페이지에는 8kB 데이터 용량이 사용되지 않은 채 남겨지고, 이것은 메모리 페이지 관리에 있어서 효율적이지 못하다. 따라서, 이러한 경우, 컨트롤러(1210)는 데이터가 저장되지 않은 새로운 물리 페이지에 수신된 8KB 데이터를 저장할 수 있다.
실시 예로서, 새로운 데이터의 크기가 32KB이면, 앞서 8KB 데이터를 저장한 물리 페이지들 중 두 개의 물리 페이지를 선택하고, 선택된 물리 페이지들에 새로운 데이터를 프로그램한다. 이 경우, 컨트롤러(1210)는 새로운 데이터를 두 개의 16KB 데이터로 분할한다. 그리고, 컨트롤러(1210)는 두 개의 16KB 데이터가 선택된 물리 페이지에 하나씩 프로그램되도록 불휘발성 메모리(1220)를 제어한다. 새로운 데이터를 저장하는 구체적인 방법은 위에서 설명한 바와 동일하다.
한편, 여기서 선택된 물리 페이지의 각 메모리 셀은 최하위 비트 데이터, 중간 비트 데이터 및 최상위 비트 데이터를 저장하는 것(즉, 3비트 데이터를 저장하는 것)으로 가정하였다. 그러나, 본 발명의 범위는 이에 한정되지 않으며 선택된 물리 페이지의 각 메모리 셀들은 4비트 이상의 데이터를 저장할 수 있다.
상기와 같은 구성에 따르면, 프로그램 동작에서 각 메모리 셀에 멀티 비트 데이터를 동시에 프로그램하므로, 프로그램 횟수가 감소될 수 있다. 따라서, 데이터 저장 속도가 향상되고, 프로그램 동작에 소모되는 전력이 감소된다.
또한, 호스트(1100)로부터 수신되는 데이터의 크기에 따라 데이터를 저장할 물리 페이지를 선택함으로써 호스트(1100)와의 데이터 호환성이 향상된다. 호스트(1100)는 일반적으로 2n 크기를 갖는 데이터를 관리한다. 따라서, 호스트(1100)로부터 전송되는 데이터도 2n 크기를 가질 가능성이 높다. 그런, 반면에 불휘발성 메모리(1220)의 하나의 물리 페이지가 저장하는 데이터 용량은 2n 크기가 아닐 수 있다. 예를 들어, 앞서 설명한 바와 같이, 하나의 물리 페이지가 8K개의 메모리 셀을 포함하고, 각 메모리 셀은 트리플 레벨 셀(Triple Level Cell, TLC)라고 가정하자. 이때, 물리 페이지는 총 24KB의 데이터 용량을 갖는다. 따라서, 호스트(1100)로부터 2n 크기의 데이터, 예를 들어 36KB의 데이터가 수신되는 경우, 물리 페이지의 데이터 용량과 매칭되지 않는다.
본 발명에 따르면, 이때 컨트롤러(1210)는 최초에 수신된 36KB 데이터를 물리 페이지에 포함된 메모리 셀의 개수에 따라 분할하고, 분할된 데이터들이 서로 다른 물리 페이지에 저장되도록 불휘발성 메모리(1220)를 제어한다. 그리고, 호스트(1100)로부터 새로운 2n 크기의 데이터, 예를 들어 16KB의 데이터가 수신되는 경우, 앞서 분할된 데이터를 저장한 물리 페이지에 새로운 데이터를 추가로 프로그램한다. 이때, 새로운 데이터가 다른 크기의 데이터인 경우, 예를 들어, 23=8KB 또는 25=32KB, 위에서 든 실시 예와 같이 새로운 데이터를 분할하여 저장하거나 데이터가 저장되지 않은 새로운 물리 페이지에 저장함으로써, 메모리 관리를 효율적으로 할 수 있다.
여기서는 몇 가지 예만을 들었지만, 호스트(1100)로부터 수신되는 데이터 크기 및 물리 페이지에 포함된 메모리 셀의 수에 따라, 컨트롤러(1210)가 다양한 응용을 통해 수신된 데이터를 불휘발성 메모리(1220)에 저장할 수 있음은 당업자에게 자명하다.
도 3은 도 1에 도시된 3차원 메모리 셀 어레이를 보여주는 블록도이다. 도 3을 참조하면, 메모리 셀 어레이(110)는 복수의 메모리 블록들(BLK1~BLKz)을 포함한다. 각 메모리 블록(BLK)은 3차원 구조(또는 수직 구조)를 갖는다. 예를 들면, 각 메모리 블록(BLK)은 제 1 내지 제 3 방향들을 따라 신장된 구조물들을 포함할 수 있다. 각 메모리 블록(BLK)은 제 2 방향을 따라 신장된 복수의 셀 스트링들(미도시)을 포함할 수 있다. 복수의 셀 스트링들(미도시)은 제 1 및 제 3 방향들을 따라 서로 이격될 수 있다.
하나의 메모리 블록의 셀 스트링들(미도시)은 복수의 비트 라인들(BL), 복수의 스트링 선택 라인들(SSL), 복수의 워드 라인들(WL), 하나의 접지 선택 라인 또는 복수의 접지 선택 라인들(GSL), 그리고 공통 소스 라인(미도시)에 연결된다. 복수의 메모리 블록들(BLK1~BLKz)의 셀 스트링들(미도시)은 복수의 비트 라인들(BL)을 공유할 수 있다. 예를 들어, 복수의 비트 라인들(BL)은 제 2 방향을 따라 신장되어, 복수의 메모리 블록들(BLK1~BLKz)에서 공유될 수 있다.
메모리 블록들(BLK1~BLKz)은 도 2에 도시된 행 디코더(120)에 의해 선택될 수 있다. 예를 들면, 행 디코더(120)는 메모리 블록들(BLK1~BLKz) 중 수신된 어드레스(ADDR)에 대응하는 메모리 블록을 선택할 수 있다. 프로그램, 읽기, 그리고 소거는 선택된 메모리 블록에서 수행된다. 메모리 블록들(BLK1~BLKz)은 도 4 내지 도 5를 참조하여 더 상세하게 설명된다.
도 4는 도 3의 메모리 블록들 중 하나의 메모리 블록을 보여주는 예시적인 평면도이다. 도 4를 참조하면, 제 1 내지 제 3 방향들을 따라 신장된 3차원 구조물들이 제공된다.
먼저, 기판(111)이 제공된다. 예시적으로, 기판(111)은 제 1 도전형(conductive type)을 갖는 웰(well) 일 수 있다. 예를 들면, 기판(111)은 붕소(B, Boron)와 같은 3족 원소가 주입되어 형성된 P 웰 일 수 있다. 예를 들면, 기판(111)은 N 웰 내에 제공되는 포켓 P 웰 일 수 있다. 이하에서, 기판(111)은 P 웰(또는 포켓 P 웰)인 것으로 가정한다. 그러나, 기판(111)은 P 도전형을 갖는 것으로 한정되지 않는다.
기판(111) 상에, 제 1 방향을 따라 신장되고, 제 2 방향을 따라 서로 이격된 복수의 공통 소스 영역들(CSR)이 제공된다. 복수의 공통 소스 영역들(CSR)은 공통으로 연결되어, 공통 소스 라인을 구성할 수 있다.
복수의 공통 소스 영역들(CSR)은 기판(111)과 상이한 제 2 도전형(conductive type)을 갖는다. 예를 들면, 복수의 공통 소스 영역들(CSR)은 N 도전형을 가질 수 있다. 이하에서, 복수의 공통 소스 영역들(CSR)은 N 도전형을 갖는 것으로 가정한다. 그러나, 복수의 공통 소스 영역들(CSR)은 N 도전형을 갖는 것으로 한정되지 않는다.
복수의 공통 소스 영역들(CSR) 중 인접한 두 개의 공통 소스 영역들 사이에서, 복수의 절연 물질들(112, 112a)이 제 3 방향(즉, 기판과 수직한 방향)을 따라 기판(111) 상에 순차적으로 제공된다. 복수의 절연 물질들(112, 112a)은 제 3 방향을 따라 서로 이격될 수 있다. 복수의 절연 물질들(112, 112a)은 제 1 방향을 따라 신장된다. 예시적으로, 복수의 절연 물질들(112, 112a)은 반도체 산화막과 같은 절연 물질을 포함할 수 있다. 예시적으로, 복수의 절연 물질들(112, 112a) 중 기판(111)과 접촉하는 절연 물질(112a)의 두께는 다른 절연 물질들(112)의 두께보다 얇을 수 있다.
인접한 두 개의 공통 소스 영역들 사이에서, 제 1 방향을 따라 순차적으로 배치되며 제 2 방향을 따라 복수의 절연 물질들(112, 112a)을 관통하는 복수의 필라들(PL)이 제공된다. 예시적으로, 복수의 필라들(PL)은 절연 물질들(112, 112a)을 관통하여 기판(111)과 접촉할 수 있다.
예시적으로, 인접한 두 개의 공통 소스 영역들 사이에서, 필라들은 제 1 방향을 따라 서로 이격될 수 있다. 필라들은 제 1 방향을 따라 한 줄로 배치될 수 있다.
예시적으로, 복수의 필라들(PL)은 복수의 물질들을 포함할 수 있다. 예를 들면, 필라들(PL)은 채널막들(114) 및 채널막들(114) 내부의 내부 물질들(115)을 포함할 수 있다.
채널막들(114)은 제 1 도전형을 갖는 반도체 물질(예를 들면, 실리콘)을 포함할 수 있다. 채널막들(114)은 기판(111)과 동일한 도전형 갖는 반도체 물질(예를 들면, 실리콘)을 포함할 수 있다. 채널막들(114)은 도전형을 갖지 않는 진성 반도체(intrinsic semiconductor)를 포함할 수 있다.
내부 물질들(115)은 절연 물질을 포함한다. 예를 들면, 내부 물질들(115)은 실리콘 산화물(Silicon Oxide)과 같은 절연 물질을 포함할 수 있다. 예를 들면, 내부 물질들(115)은 에어 갭(air gap)을 포함할 수 있다.
인접한 두 개의 공통 소스 영역들 사이에서, 절연 물질들(112, 112a) 및 필라들(PL)의 노출된 표면들에 정보 저장막들(116)이 제공된다. 정보 저장막들(116)은 전하를 포획 또는 유출함으로써 정보를 저장할 수 있다.
인접한 두 개의 공통 소스 영역들 사이에서 그리고 절연 물질들(112, 112a) 사이에서, 정보 저장막들(116)의 노출된 표면들에 도전 물질들(CM1~CM8)이 제공된다. 도전 물질들(CM1~CM8)은 제 1 방향을 따라 신장될 수 있다. 공통 소스 영역들(CSR) 상에서, 도전 물질들(CM1~CM8)은 워드 라인 컷들(WL cut)에 의해 분리될 수 있다. 워드 라인 컷들(WL Cut)은 공통 소스 영역들(CSR)을 노출할 수 있다. 워드 라인 컷들(WL cut)은 제 1 방향을 따라 신장될 수 있다.
예시적으로, 도전 물질들(CM1~CM8)은 금속성 도전 물질을 포함 수 있다. 도전 물질들(CM1~CM8)은 폴리 실리콘 등과 같은 비금속성 도전 물질을 포함할 수 있다.
예시적으로, 절연 물질들(112, 112a) 중 최상부에 위치한 절연 물질의 상부면에 제공되는 정보 저장막들(116)은 제거될 수 있다. 예시적으로, 절연 물질들(112, 112a)의 측면들 중 필라들(PL)과 대향하는 측면에 제공되는 정보 저장막들(116)은 제거될 수 있다.
복수의 필라들(PL) 상에 복수의 드레인들(30)이 제공된다. 예시적으로, 드레인들(30)은 제 2 도전형을 갖는 반도체 물질(예를 들면, 실리콘)을 포함할 수 있다. 예를 들면, 드레인들(30)은 N 도전형을 갖는 반도체 물질(예를 들면, 실리콘)을 포함할 수 있다. 이하에서, 드레인들(30)은 N 타입 실리콘을 포함하는 것으로 가정한다. 그러나, 드레인들(30)은 N 타입 실리콘을 포함하는 것으로 한정되지 않는다. 예시적으로, 드레인들(30)은 필라들(PL)의 채널막들(114)의 상부들로 확장될 수 있다.
드레인들(30) 상에, 제 2 방향으로 신장되고, 제 1 방향을 따라 서로 이격된 비트 라인들(BL)이 제공된다. 비트 라인들(BL)은 드레인들(30)과 연결된다. 예시적으로, 드레인들(30) 및 비트 라인들(BL)은 콘택 플러그들(미도시)을 통해 연결될 수 있다. 예시적으로, 비트 라인들(BL1, BL2)은 금속성 도전 물질들을 포함할 수 있다. 예시적으로, 비트 라인들(BL1, BL2)은 폴리 실리콘과 같은 비금속성 도전 물질들을 포함할 수 있다.
도전 물질들(CM1~CM8)은 기판(111)으로부터의 순서에 따라 제 1 내지 제 8 높이를 가질 수 있다.
복수의 필라들(PL)은 정보 저장막들(116) 및 복수의 도전 물질들(CM1~CM8)과 함께 복수의 셀 스트링들을 형성한다. 복수의 필라들(PL) 각각은 정보 저장막들(116), 그리고 인접한 도전 물질들(CM1~CM8)과 함께 하나의 셀 스트링을 구성한다.
기판(111) 상에서, 필라들(PL)은 행 방향 및 열 방향을 따라 제공된다. 제 8 도전 물질들(CM8)은 행들을 구성할 수 있다. 동일한 제 8 도전 물질에 연결된 필라들은 하나의 행을 구성할 수 있다. 비트 라인들(BL)은 열들을 구성할 수 있다. 동일한 비트 라인에 연결된 필라들은 하나의 열을 구성할 수 있다. 필라들(PL)은 정보 저장막들(116) 및 복수의 도전 물질들(CM1~CM8)과 함께 행 및 열 방향을 따라 배치되는 복수의 셀 스트링들을 구성한다. 셀 스트링들 각각은 기판과 수직한 방향으로 적층된 복수의 셀 트랜지스터들(CT)을 포함한다.
도 5는 도 4에 도시된 메모리 블록의 예시적인 등가 회로도이다. 도 5를 참조하면, 메모리 블록(BLKa)은 복수의 셀 스트링들(CS11, CS12, CS21, CS22)을 포함한다. 복수의 셀 스트링들(CS11, CS12, CS21, CS22) 각각은 스트링 선택 트랜지스터(SST), 접지 선택 트랜지스터(GST), 그리고 메모리 셀들(MC1~MC6)을 포함한다. 복수의 셀 스트링들(CS11, CS12, CS21, CS22) 각각에서, 메모리 셀들(MC1~MC6)은 스트링 선택 트랜지스터(SST) 및 접지 선택 트랜지스터(GST) 사이에 연결된다.
복수의 셀 스트링들(CS11, CS12, CS21, CS22)의 접지 선택 트랜지스터들(GST)의 제어 게이트들은 접지 선택 라인(GSL)에 공통으로 연결될 수 있다. 접지 선택 트랜지스터들(GST)의 일 단들은 메모리 셀들(MC1)에 연결되고, 타 단들은 공통 소스 라인(CSL)에 공통으로 연결될 수 있다.
복수의 셀 스트링들(CS11, CS12, CS21, CS22)의 메모리 셀들(MC1)은 워드 라인(WL1)에 공통으로 연결되고, 메모리 셀들(MC2)은 워드 라인(WL2)에 공통으로 연결되고, 메모리 셀들(MC3)은 워드 라인(WL3)에 공통으로 연결되고, 메모리 셀들(MC4)은 워드 라인(WL4)에 공통으로 연결되고, 메모리 셀들(MC5)은 워드 라인(WL5)에 공통으로 연결되고, 그리고 메모리 셀들(MC6)은 워드 라인(WL6)에 공통으로 연결될 수 있다.
셀 스트링들(CS11, CS12)의 제어 게이트들은 스트링 선택 라인(SSL1)에 연결되고, 셀 스트링들(CS21, CS22)의 제어 게이트들은 스트링 선택 라인(SSL2)에 연결된다. 셀 스트링들(CS11, CS21)의 스트링 선택 트랜지스터들(SST)의 일 단들은 비트 라인(BL1)에 연결되고, 타 단들은 메모리 셀들(MC6)에 연결된다. 셀 스트링들(CS21, CS22)의 스트링 선택 트랜지스터들(SST)의 일 단들은 비트 라인(BL2)에 연결되고, 타 단들은 메모리 셀들(MC6)에 연결된다.
이하에서, 간결한 설명을 위하여, 행, 열 및 높이가 정의된다. 스트링 선택 라인들(SSL1, SSL2)이 신장되는 방향은 행 방향일 수 있다. 셀 스트링들(CS11, CS12)은 행 방향을 따라 배열되어 제 1 행을 형성할 수 있다. 셀 스트링들(CS21, CS22)은 행 방향을 따라 배열되어 제 2 행을 형성할 수 있다.
비트 라인들(BL1, BL2)이 신장되는 방향은 열 방향일 수 있다. 셀 스트링들(CS11, CS21)은 열 방향을 따라 배열되어 제 1 열을 형성할 수 있다. 셀 스트링들(CS12, CS22)은 열 방향을 따라 배열되어 제 2 열을 형성할 수 있다.
접지 선택 트랜지스터들(GST)로부터 스트링 선택 트랜지스터들(SST)로 향하는 방향은 높이일 수 있다.
메모리 셀들(MC1~MC6)은 행 및 열 방향을 따라 배열되고, 높이 방향을 따라 적층된 3차원 구조를 형성할 수 있다. 동일한 높이의 메모리 셀들(MC)은 하나의 워드 라인(WL)에 공통으로 연결되고, 서로 다른 높이의 메모리 셀들(MC)은 서로 다른 워드 라인들(WL)에 각각 연결될 수 있다. 동일행 행의 스트링 선택 트랜지스터들(SST)은 하나의 스트링 선택 라인(SSL1 또는 SSL2)에 공통으로 연결되고, 서로 다른 행의 스트링 선택 트랜지스터들(SST)은 서로 다른 스트링 선택 라인들(SSL1, SSL2)에 각각 연결될 수 있다. 동일한 열의 스트링 선택 트랜지스터들(SST)은 동일한 비트 라인(BL1 또는 BL2)에 연결되고, 서로 다른 열의 스트링 선택 트랜지스터들(SST)은 서로 다른 비트 라인들(BL1, BL2)에 각각 연결될 수 있다.
메모리 셀들(MC1~MC6) 각각은 둘 이상의 비트들을 저장할 수 있다. 즉, 메모리 셀들(MC1~MC6)은 멀티 레벨 셀들(Multi Level Cells, MLC)일 수 있다.
예시적으로, 도 4에서, 메모리 블록(BLKa)은 네 개의 셀 스트링들(CS11, CS12, CS21, CS22)을 포함하는 것으로 도시되어 있다. 그러나, 메모리 블록(BLKa)의 셀 스트링들의 수는 한정되지 않는다. 셀 스트링들은 행 방향 또는 열 방향을 따라 둘 이상 제공될 수 있다. 도 4에서, 각 셀 스트링은 여섯 개의 메모리 셀들(MC1~MC6)을 포함하는 것으로 도시되어 있다. 그러나, 각 셀 스트링의 메모리 셀들의 수는 한정되지 않는다. 각 셀 스트링에서 높이 방향을 따라 둘 이상의 메모리 셀들이 제공될 수 있다.
예시적으로, 도 4에서, 접지 선택 트랜지스터들(GST)은 하나의 접지 선택 라인(GSL)에 공통으로 연결되는 것으로 도시되어 있다. 그러나, 스트링 선택 트랜지스터들(SST)과 마찬가지로, 동일한 행의 접지 선택 트랜지스터들(GST)은 하나의 접지 선택 라인에 공통으로 연결되고, 서로 다른 행의 접지 선택 트랜지스터들(GST)은 서로 다른 접지 선택 라인들에 연결되도록 메모리 블록(BLKa)의 구조가 변경 및 응용될 수 있다.
예시적으로, 도 4에서, 각 셀 스트링에 하나의 스트링 선택 트랜지스터(SST) 및 하나의 접지 선택 트랜지스터(GST)가 제공되는 것으로 도시되어 있다. 그러나, 각 셀 스트링에 둘 이상의 스트링 선택 트랜지스터들 또는 둘 이상의 접지 선택 트랜지스터들이 제공될 수 있다.
예시적으로, 각 셀 스트링의 메모리 셀들(MC1~MC6) 중 적어도 하나는 더미 메모리 셀로 사용될 수 있다.
도 6은 도 4에 도시된 메모리 블록에서 워드 라인과 연결된 메모리 셀들의 페이지 구조를 예시적으로 나타내는 도면이다. 도 4 및 도 6을 참조하면, 예시적으로, 메모리 셀들(MC1~MC6) 각각은 삼중 레벨 셀(TLC)로서 최하위 비트(Least Significant Bit, LSB), 중간 비트(Central Significant Bit, CSB) 및 최상위 비트(Most Significant Bit, MSB)를 저장할 수 있다. 그러나, 메모리 셀들(MC1~MC6) 각각이 저장하는 비트들의 수는 한정되지 않는다. 메모리 셀들(MC1~MC6) 각각은 2비트 또는 3비트 이상의 데이터를 저장할 수 있다.
도 4 내지 도 6을 참조하면, 워드 라인(WL1)에 연결된 메모리 셀들 중 첫 번째 행의 메모리 셀들(제 1 메모리 셀들)에 저장되는 최하위 비트들(LSB)은 최하위 비트 페이지를 형성하고, 중간 비트들(CSB)은 중간 비트 페이지를 형성하고, 그리고 최상위 비트들(MSB)은 최상위 비트 페이지를 형성한다.
한편, 워드 라인(WL1)에 연결된 메모리 셀들 중 두 번째 행 및 세 번째 행의 메모리 셀들(제 2 메모리 셀들, 제 3 메모리 셀들)도 제 1 메모리 셀들과 동일한 방법으로, 최하위 비트 페이지, 중간 비트 페이지 및 최상위 비트 페이지를 형성한다.
한편, 하나의 워드 라인에 연결된 메모리 셀들 중 동일한 행에 포함되는 메모리 셀들은 하나의 물리 페이지를 구성한다. 예를 들어, 제 1, 제 2 및 제 3 메모리 셀들은 각각 하나의 물리 페이지를 구성할 수 있다. 그리고, 하나의 물리 페이지는 복수의 단일 비트 논리 페이지들을 포함하는 멀티 비트 논리 페이지를 포함할 수 있다. 멀티 비트 논리 페이지는 물리 페이지의 메모리 셀들에 프로그램되는 모든 단일 비트 논리 페이지들을 가리킬 수 있다.
한편, 워드 라인(WL1)에 연결된 메모리 셀들에 의해 형성되는 물리 페이지들 각각은 스트링 선택 라인(SSL1, SSL2, SSL3)에 의해 선택될 수 있다.
도 7은 도 4에 도시된 메모리 블록에서 스트링 선택 라인과 연결된 메모리 셀들의 페이지 구조를 예시적으로 나타내는 도면이다. 도 4 및 도 7을 참조하면, 하나의 스트링 선택 라인(String Selection Line, SSL)은 메모리 셀들에 의해 형성되는 복수의 물리 페이지와 연결될 수 있다.
스트링 선택 라인(SSL1)에 연결된 메모리 셀들 중 워드 라인(WL6)에 연결된 메모리 셀들(제 1 메모리 셀들)에 저장되는 최하위 비트들(LSB)은 최하위 비트 페이지를 형성하고, 중간 비트들(CSB)은 중간 비트 페이지를 형성하고, 그리고 최상위 비트들(MSB)은 최상위 비트 페이지를 형성한다.
한편, 스트링 선택 라인(SSL1)에 연결된 메모리 셀들 중 다른 워드 라인들(WL4, WL5) 에 연결된 메모리 셀들(제 2 메모리 셀들, 제 3 메모리 셀들)도 제 1 메모리 셀들과 동일한 방식으로, 최하위 비트 페이지, 중간 비트 페이지 및 최상위 비트 페이지를 형성한다.
즉, 하나의 워드 라인에 연결된 메모리 셀들 각각에 저장되는 하나의 비트는 단일 비트 논리 페이지를 형성할 수 있다. 또한, 제 1 내지 제 3 메모리 셀들 각각은 복수의 단일 비트 논리 페이지들을 포함하는 멀티 비트 논리 페이지를 형성할 수 있다.
한편, 도 6과 마찬가지로, 제 1, 제 2 및 제 3 메모리 셀들 각각은 하나의 물리 페이지를 구성할 수 있다. 이때, 하나의 물리 페이지는 복수의 단일 비트 논리 페이지들을 포함하는 멀티 비트 논리 페이지를 포함할 수 있다. 멀티 비트 논리 페이지는 물리 페이지의 메모리 셀들에 프로그램되는 모든 단일 비트 논리 페이지들을 가리킬 수 있다.
여기서, 메모리 셀들(MC1~MC6) 각각이 저장하는 비트들의 수는 한정되지 않으며, 메모리 셀들(MC1~MC6) 각각은 2비트 또는 3비트 이상을 저장할 수 있음은 앞서 설명한 바와 같다.
도 8은 3차원 불휘발성 메모리의 프로그램 시에 인가되는 전압들을 예시적으로 나타내는 도면이다. 도 8에서, 가로 축은 시간(T)을 가리키고, 세로 축은 전압(V)을 가리킨다. 도 8을 참조하면, 워드 라인들(WL1~WL6) 중 선택된 워드 라인에 프로그램 전압(VPGM)이 인가된다. 프로그램 전압(VPGM)이 인가된 후에, 검증 전압들(VFY1~VFY7)이 순차적으로 인가될 수 있다. 검증 전압들(VFY1~VFY7)은 멀티 페이지 데이터를 동시에 프로그램하기 위한 전압들일 수 있다. 검증 전압들(VFY1~VFY7)은 메모리 셀들의 문턱 전압들이 목표 레벨에 도달하였는지를 판별하는 전압들일 수 있다.
검증 전압들(VFY1~VFY7)이 순차적으로 인가된 후에, 프로그램 페일인 메모리 셀들(MC)이 존재하면, 프로그램 전압(VPGM)이 다시 인가될 수 있다. 이때, 프로그램 전압(VPGM)의 레벨은 전압 증분(△V) 만큼 증가될 수 있다. 이후에, 검증 전압들(VFY1~VFY7)이 순차적으로 인가될 수 있다.
메모리 셀들(MC)이 프로그램 패스될 때까지, 프로그램 전압(VPGM)과 검증 전압들(VFY1~VFY7)이 반복적으로 인가될 수 있다. 프로그램 전압(VPGM)이 반복적으로 인가될 때마다, 프로그램 전압(VPGM)의 레벨은 전압 증분(△V) 만큼 증가될 수 있다. 즉, ISPP (Incremental Step Pulse Program)가 수행될 수 있다.
도 9 및 도 10은 본 발명에 따른 프로그램 방법을 나타내는 순서도들이다. 도 9는 불휘발성 메모리의 동작 관점에서 기술한 실시 예를 나타낸다. 도 10은 컨트롤러의 제어 관점에서 기술한 실시 예를 나타낸다.
도 9를 참조하면, 본 발명에 따른 메모리 시스템의 프로그램 방법은 S110 단계 내지 S140 단계를 포함한다.
S110 단계에서, 메모리 시스템(1200, 도 2 참조)은 제 1 데이터를 외부 장치로부터 수신한다. 외부 장치는 호스트(1100, 도 2 참조)일 수 있다.
S120 단계에서, 메모리 시스템(1200)은 메모리 시스템(1200)은 수신된 제 1 데이터를 단일 비트 레벨 프로그램에 의해 불휘발성 메모리(1220, 도 2 참조)의 복수의 메모리 페이지에 저장한다.
이때, 메모리 시스템(1200)은 제 1 데이터를 하나의 물리 페이지가 포함하는 메모리 셀의 개수에 따라 분할하고, 분할된 데이터들을 각각 대응되는 복수의 물리 페이지에 저장할 수 있다. 여기서, 물리 페이지는 하나의 워드 라인에 연결되는 메모리 셀들 중 동일 행에 속하는 메모리 셀들의 집합을 의미한다. 한편, 앞서 설명한 바와 같이, 하나의 물리 페이지는 복수의 논리 페이지(예를 들어, 최하위 비트 페이지, 중간 비트 페이지, 최상위 비트 페이지)를 포함할 수 있다. 실시 예로서, 메모리 시스템(1200)은 스트링 선택 라인(SSL)을 제어하여, 제 1 데이터를 저장할 복수의 메모리 페이지를 선택할 수 있다.
S120 단계에서, 메모리 시스템(1200)은 제 1 데이터의 분할된 데이터들을 선택된 물리 페이지들에 나누어 프로그램한다(제 1 프로그램). 이때, 물리 페이지들은 단일 비트 레벨로 프로그램된다. 따라서, 제 1 프로그램에 의해 물리 페이지들의 메모리 셀들은 각각 1비트 데이터를 저장한다. 실시 예로서, 분할된 데이터들은 각 물리 페이지의 논리 페이지들 중 최하위 비트 페이지에 프로그램될 수 있다.
S130 단계에서, 메모리 시스템(1200)은 외부 장치로부터 제 2 데이터를 수신한다. 여기서 제 2 데이터는 제 1 데이터를 수신한 후에 새롭게 수신되는 데이터를 의미한다. 실시 예로서, 외부 장치는 호스트(1100)일 수 있다.
S140 단계에서, 메모리 시스템(1200)은 제 2 데이터를 제 1 데이터가 프로그램된 복수의 물리 페이지 중 적어도 하나의 물리 페이지에 프로그램한다(제 2 프로그램). 제 2 프로그램 동작에서, 메모리 시스템(1200)은 물리 페이지의 메모리 셀에 멀티 비트 데이터를 동시에 프로그램한다.
예를 들어, 메모리 셀이 트리플 레벨 셀(TLC)인 경우, 제 1 프로그램 동작에서, 메모리 셀은 소거 상태 또는 프로그램 상태 중 어느 하나의 논리 상태를 가질 것이다. 이때, 메모리 셀이 소거 상태이면, 메모리 셀은 ‘1’ 데이터를 저장하는 것으로 판단된다. 반대로, 메모리 셀이 프로그램 상태이면, 메모리 셀은 ‘0’ 데이터를 저장하는 것으로 판단된다. 이처럼, 메모리 셀은 둘 중 어느 하나의 논리 상태를 가짐으로써 1비트 데이터를 저장한다.
그리고, 제 2 프로그램 동작에서, 1비트 데이터를 저장하는 메모리 셀은 3비트 데이터를 저장하도록 프로그램된다. 구체적으로, 제 2 프로그램 동작에 의해, 메모리 셀은 8개의 논리 상태 중 어느 하나의 논리 상태를 갖도록 프로그램된다. 그리고, 8개의 논리 상태는 각각 다른 데이터(예를 들어, ‘111’, ‘110’, ‘101’, ‘011’, ‘100’, ‘010’, ‘001’, ‘000’)에 대응된다. 메모리 셀이 어떤 데이터(예를 들어, ‘111’)에 대응되는 논리 상태로 프로그램되면, 메모리 셀은 대응되는 데이터(예를 들어, ‘111’)를 저장한 것으로 인식된다.
즉, 제 2 프로그램 동작을 통해, 메모리 셀이 가질 수 있는 논리 상태는 2개에서 8개로 증가하고, 이것은 메모리 셀의 논리 상태에 대응되는 데이터가 1비트 데이터에서 3비트 데이터로 증가한 것을 의미한다. 즉, 제 2 프로그램에 의해 메모리 셀에는 멀티 비트 데이터(여기서는, 2비트 데이터)가 동시에 더 프로그램된다. 제 2 프로그램과 같이, 메모리 셀에 멀티 비트 데이터를 동시에 프로그램하는 방법을 원-샷 프로그램(one-shot program)이라 한다.
실시 예로서, 제 1 프로그램에 의해 메모리 셀에 프로그램되는 단일 비트 데이터는 메모리 셀의 최하위 비트 데이터일 수 있다. 실시 예로서, 제 2 프로그램에 의해 메모리 셀에 프로그램되는 멀티 비트 데이터는 메모리 셀의 중간 비트 데이터 및 최상위 비트 데이터일 수 있다. 여기서, 제 1 프로그램에 의해 메모리 셀에는 1비트 데이터(최하위 비트 데이터)가 프로그램되고, 제 2 프로그램에 의해 메모리 셀에는 2비트 데이터(중간 비트 데이터 및 최상위 비트 데이터)가 프로그램된다.
예를 들어, 제 1 프로그램에 의해 프로그램될 단일 비트 데이터(제 1 데이터)는 ‘1’ 데이터이고, 제 2 프로그램에 의해 프로그램될 멀티 비트 데이터(제 2 데이터)는 ‘01’ 데이터라고 가정하자. 먼저, 제 1 프로그램에 의해 메모리 셀은 ‘1’ 데이터에 대응되는 논리 상태(예를 들어, 소거 상태)로 프로그램된다. 그리고, 제 2 프로그램에서, ‘01’ 데이터를 메모리 셀에 더 프로그램하기 위해, 메모리 셀은 ‘011’ 데이터에 대응되는 논리 상태로 프로그램된다. 즉, 제 1 프로그램에 의해 단일 비트 데이터가 메모리 셀의 최하위 비트에 프로그램되고, 이어서, 제 2 프로그램에 의해 멀티 비트 데이터(여기서는 2비트 데이터)가 메모리 셀의 중간 비트 및 최상위 비트에 동시에 프로그램된다.
실시 예로서, 제 2 프로그램 동작에서, 메모리 시스템(1200)은 메모리 셀의 프로그램 상태를 참조할 수 있다. 예시한 바와 같이, 제 1 프로그램에 의해 메모리 셀에 ‘1’ 데이터가 프로그램된 경우, 제 2 프로그램 동작에서 제 2 데이터를 프로그램하기 위해 메모리 셀은 ‘011’ 데이터에 대응되는 논리 상태로 프로그램된다. 반면, 예시한 바와 달리 제 1 프로그램에 의해 메모리 셀에 ‘0’ 데이터가 프로그램된 경우, 제 2 프로그램 동작에서 제 2 데이터를 프로그램하기 위해 메모리 셀은 ‘010’ 데이터에 대응되는 논리 상태로 프로그램된다. 즉, 메모리 시스템(1200)은 메모리 셀에 저장된 제 1 데이터에 따라, 메모리 셀이 서로 다른 논리 상태(예를 들어, ‘011’ 또는 ‘010’)로 프로그램 되도록 제 2 프로그램을 제어할 수 있다.
한편, 여기서는 메모리 셀이 트리플 레벨 셀(TLC)인 경우를 예시하였지만, 메모리 셀은 4이상의 비트를 저장하는 멀티 레벨 셀일 수 있다. 이때, 메모리 셀은 제 2 프로그램에 의해 종전 상태보다 적어도 2 이상의 비트 데이터를 더 저장하게 된다.
도 10은 물리 페이지가 복수의 논리 페이지(최하위 비트 페이지, 중간 비트 페이지, 최상위 비트 페이지)를 포함하는 실시 예를 설명하기 위한 도면이다. 도 10을 참조하면, 본 발명에 따른 메모리 시스템의 프로그램 방법은 S210 단계 내지 S250 단계를 포함한다. 여기서, 불휘발성 메모리(1220)에 포함된 메모리 셀들은 트리플 레벨 셀(Triple Level Cell, TLC)인 것으로 예시한다.
S210 단계에서, 메모리 시스템(1200, 도 2 참조) 외부 장치로부터 제 1 데이터를 수신한다. 여기서, 제 1 데이터를 제공하는 외부 장치는 호스트(1100)일 수 있다.
S220 단계에서, 컨트롤러(1210, 도 2 참조)는 수신된 제 1 데이터를 물리 페이지의 메모리 셀의 개수(또는, 메모리 페이지의 단일 비트 페이지 용량)으로 나눈다. 여기서, 물리 페이지는 앞서 설명한 바와 같이 하나의 워드 라인에 연결된 메모리 셀들 중 동일한 행에 속하는 메모리 셀들의 집합을 의미한다. 실시 예로서, 물리 페이지는 멀티 비트 논리 페이지를 포함할 수 있다. 이때, 멀티 비트 논리 페이지는 복수의 단일 비트 논리 페이지들을 포함할 수 있다. 복수의 단일 비트 논리 페이지들은 최하위 비트 페이지, 중간 비트 페이지, 최상위 비트 페이지를 포함할 수 있다. 최하위 비트 페이지, 중간 비트 페이지 및 최상위 비트 페이지에 대한 구체적인 내용은 도 6에서 설명한 바와 동일하다.
구체적으로, 제 1 데이터가 수신되면 컨트롤러(1210)는 제 1 데이터의 크기를 판단한다. 통상, 호스트(1100)는 디지털 장치이므로, 2nKB(여기서, n은 1 이상의 정수) 크기의 데이터를 전송하는 것이 일반적이다. 따라서, 제 1 데이터의 크기도 2nKB일 가능성이 높다.
제 1 데이터의 크기가 2nKB이면, 컨트롤러(1210)는 제 1 데이터의 크기를 불휘발성 메모리(1220, 도 2 참조)에 포함된 물리 페이지의 데이터 저장 용량과 비교한다. 각 물리 페이지의 데이터 저장 용량이 2mKB(여기서, n은 1 이상의 정수)인 경우, 데이터 저장 용량과 제 1 데이터의 크기가 서로 호환되므로, 제 1 데이터를 하나 이상의 물리 페이지에 바로 기입할 수 있다.
각 물리 페이지의 데이터 저장 용량이 2mKB(여기서, n은 1 이상의 정수)가 아닌 경우, 물리 페이지의 데이터 저장 용량과 제 1 데이터의 크기가 서로 호환되지 않는다. 이 경우, 제 1 데이터를 하나 이상의 물리 페이지에 바로 기입하면, 물리 페이지에는 사용되지 않은 채 남겨지는 메모리 공간이 발생할 수 있다. 그리고 이는 메모리 시스템(1200)의 메모리 관리를 비효율적으로 만든다.
예를 들어, 물리 페이지의 데이터 용량이 24KB이고, 제 1 데이터의 크기가 16(=24)KB라고 가정하자. 메모리 장치는 제 1 데이터를 저장하기 위해, 적어도 하나의 물리 페이지가 필요할 것이다. 이때, 하나의 물리 페이지를 선택하여 제 1 데이터를 저장하면, 선택된 물리 페이지에는 8KB의 메모리 공간이 사용되지 않은 채 남겨진다. 그리고, 다시 새로운 데이터(예를 들어, 제 2 데이터)가 호스트(1200)로부터 수신되면, 제 2 데이터는 마찬가지로 16KB 데이터일 가능성이 높다. 이때, 제 1 데이터가 기록된 물리 페이지에는 남겨진 공간이 너무 작아서(8KB) 제 2 데이터를 저장할 수 없다. 따라서, 16KB 데이터 저장을 위한 또 다른 물리 페이지가 필요하고, 제 1 데이터가 기록된 물리 페이지의 일부 메모리 공간(8KB)은 사용되지 않은 채 남겨진다. 물론, 머지(merge)나 가비지 컬렉션(garbage collection)과 같은 메모리 관리 작업을 통해 사용되지 않은 채 남겨지는 공간들을 활용 가능한 상태로 만들 수 있다. 그러나, 머지나 가비지 컬렉션은 메모리 시스템(1200)에 추가적인 로드를 요구한다. 또한, 머지나 가비지 컬렉션을 수행하는 과정에서 발생하는 소거 동작 및 프로그램 동작에 의해 메모리 셀이 열화될 수 있다.
따라서, 본 발명에서는 각 물리 페이지의 데이터 저장 용량이 2mKB(여기서, n은 1 이상의 정수)가 아닌 경우, 물리 페이지의 단일 비트 페이지 용량(물리 페이지의 각 메모리 셀이 단일 비트를 저장할 때의 메모리 용량)을 판단한다. 이때, 단일 비트 페이지 용량은 물리 페이지에 포함된 메모리 셀의 수에 의해 결정될 것이다. 예를 들어, 물리 페이지가 8K개의 메모리를 포함하면, 물리 페이지의 단일 비트 페이지 용량은 8KB가 될 것이다(이 경우, 메모리 셀이 트리플 레벨 셀이라면, 물리 페이지의 전체 용량은 24KB가 된다).
실시 예로서, 데이터 관리의 효율성을 위해, 컨트롤러(1210)가 수신된 제 1 데이터를 물리 페이지의 단일 비트 페이지 용량(예를 들어, 8KB)으로 나눌 수 있다. 제 1 데이터의 크기가 16KB라고 가정하면, 제 1 데이터는 2개로 나뉠 것이다(16KB/8KB=2).
또는, 컨트롤러(1210)는 단순히 물리 페이지에 포함된 메모리 셀 수를 기준으로 제 1 데이터를 나눌 수 있다. 예를 들어, 메모리 셀의 수가 8K개이면, 메모리 시스템(1200)은 제 1 데이터를 메모리 셀의 수로 나눈다(16KB/8K=2). 이 경우에도, 동일하게 제 1 데이터는 3개로 나뉜다. 이때, 나누어진 결과(즉, 3)는 단일 비트 레벨 프로그램에 의해 제 1 데이터를 저장하는데 필요한 물리 페이지의 수가 된다. 실시 예로서, 여기서 고려된 메모리 셀의 수에는 데이터를 저장하지 않는 더미 셀의 수는 제외된다.
그리고, 컨트롤러(1210)는 나누어진 결과에 따라, 제 1 데이터를 분할한다.
S230 단계에서, 컨트롤러(1210)는 제 1 데이터의 분할된 데이터들이 단일 비트 프로그램에 의해 복수의 물리 페이지(여기서는, 3개의 메모리 페이지)에 각각 프로그램 되도록 불휘발성 메모리(1220)를 제어한다. 이때, 분할된 데이터들이 프로그램되는 물리 페이지들은 스트링 선택 라인(SSL)에 의해 선택될 수 있다. 분할된 데이터들은 도 9에서 설명한 제 1 프로그램과 동일한 방법으로 프로그램된다.
실시 예로서, 분할된 데이터들이 프로그램되는 물리 페이지들은 동일한 스트링 선택 라인에 의해 선택될 수 있다. 즉, 하나의 스트링 선택 라인에 연결된 복수의 물리 페이지들을 분할된 데이터를 프로그램할 물리 페이지로서 선택할 수 있다.
또는, 분할된 데이터들이 프로그램되는 물리 페이지들은 서로 다른 스트링 선택 라인에 의해 선택될 수 있다. 즉, 복수의 물리 페이지들 중 어느 하나는 제 1 스트링 선택 라인(SSL1, 도 5 참조)에 의해 선택되는 물리 페이지이고, 다른 하나는 제 2 스트링 선택 라인(SSL2, 도 5 참조)에 의해 선택되는 물리 페이지일 수 있다.
실시 예로서, 컨트롤러(1210)는 분할된 데이터들이 복수의 물리 페이지에 각각 최하위 비트 페이지 데이터로서 프로그램 되도록 불휘발성 메모리(1220)를 제어할 수 있다. 이때, 분할된 데이터들은 물리 페이지의 논리 페이지들 중 최하위 비트 페이지에 저장될 수 있다.
실시 예로서, 컨트롤러(1210)는 분할된 데이터들을 순차적으로 불휘발성 메모리(1220)에 전송하고, 분할된 데이터들이 각 물리 페이지에 순차적으로 하나씩 프로그램되도록 불휘발성 메모리(1220)를 제어할 수 있다. 이 경우, 컨트롤러(1210)는 분할된 데이터들 사이마다 더미 데이터를 전송할 수 있다.
S240 단계에서, 메모리 시스템(1200)은 호스트(1200)로부터 새로운 제 2 데이터를 수신한다. 제 2 데이터의 크기는 제 1 데이터와 마찬가지로 2nKB(n은 1 이상의 정수) 크기를 갖는 데이터로 가정한다. 여기서는 제 2 데이터가 16KB(=24KB) 크기를 갖는 것으로 예시한다.
S250 단계에서, 컨트롤러(1210)는 제 2 데이터를 저장하기 위해, 제 1 데이터의 분할된 데이터들이 저장된(또는, 프로그램된) 복수의 물리 페이지 중 적어도 하나의 물리 페이지를 선택한다. 선택되는 물리 페이지의 수는 제 2 데이터의 크기에 따라 결정될 수 있다. 여기서는, 제 2 데이터의 크기가 16KB이므로, 하나의 물리 페이지가 선택될 수 있다. 선택된 물리 페이지는 제 1 데이터의 프로그램에 의해 8KB 데이터가 저장되어 있다. 그리고, 선택된 물리 페이지에 포함된 메모리 셀들은 트리플 레벨 셀(TLC)이므로, 선택된 메모리 페이지는 16KB의 데이터를 더 저장할 수 있다. 그리고, 이것은 제 2 데이터의 크기와 일치하므로, 제 2 데이터는 하나의 물리 페이지에 완전히 저장될 수 있다.
그리고, 컨트롤러(1210)는 제 2 데이터를 선택된 물리 페이지에 프로그램한다. 이때, 컨트롤러(1210)는 멀티 비트 데이터를 선택된 물리 페이지에 동시에 프로그램한다. 컨트롤러(1210)는 도 9에서 설명한 제 2 프로그램과 실질적으로 동일한 방법으로 멀티 비트 데이터를 프로그램한다. 즉, 컨트롤러(1210)는 단일 레벨 셀(Single Level Cell, SLC)로 프로그램되어진 메모리 셀들이 트리플 레벨 셀(Triple Level Cell, TLC)로 프로그램되어지도록, 멀티 비트 데이터를 메모리 셀에 동시에 프로그램한다.
실시 예로서, 선택된 물리 페이지의 메모리 셀들의 최하위 비트들은 최하위 비트 페이지를 형성할 수 있다. 마찬가지로, 선택된 물리 페이지의 메모리 셀들의 중간 비트 및 최상위 비트들은 중간 비트 페이지 및 최상위 비트 페이지를 형성할 수 있다. 이 경우, 제 1 데이터는 물리 페이지의 최하위 비트 페이지에 프로그램되고, 제 2 데이터는 물리 페이지의 중간 비트 페이지 및 최상위 비트 페이지에 프로그램된다. 그리고, 앞서 설명한 바와 같이 물리 페이지의 중간 비트 페이지 및 최상위 비트 페이지는 동시에 프로그램된다.
한편, 만약 제 2 데이터의 크기가 16KB가 아닌 다른 값을 갖는 경우(예를 들어, 32KB), 두 개의 물리 페이지가 선택되고, 제 2 데이터는 16KB로 나뉘어 각각의 물리 페이지에 프로그램될 수 있다. 각각의 물리 페이지에 16KB 데이터를 프로그램하는 구체적인 방법은 위에서 설명한 바와 동일하다.
S250 단계가 종료하면, 선택된 물리 페이지는 데이터 저장 용량과 동일한 24KB 데이터를 저장하게 된다. 따라서, 사용되지 않은 채 남겨지는 메모리 영역이 감소하고, 메모리 관리의 효율성이 높아진다.
또한, 제 2 데이터를 프로그램 동작에서, 멀티 비트 데이터가 메모리 셀에 동시에 프로그램된다. 따라서, 3차원 불휘발성 메모리 장치에 데이터를 저장하기 위해 필요한 프로그램 횟수가 감소되고, 데이터 저장 속도 향상 및 소모 전력 감소를 도모할 수 있다.
한편, 이후에 제 3 데이터가 새롭게 수신되는 경우, 제 2 데이터의 프로그램 방법과 동일한 방법으로 제 1 데이터의 분할된 데이터를 저장하는 물리 페이지에 제 3 데이터가 프로그램될 수 있다.
도 11 내지 도 17은 본 발명에 따른 프로그램 방법을 구체적으로 설명하기 위한 도면들이다.
도 11은 본 발명에 따른 사용자 환경(2000)을 나타내는 일 실시 예이다. 도 11을 참조하면, 사용자 환경(2000)은 호스트(2100) 및 메모리 시스템(2200)을 포함한다. 그리고, 메모리 시스템(2000)은 컨트롤러(2210) 및 불휘발성 메모리(2220)을 포함한다. 불휘발성 메모리(2220)은 페이지 버퍼(2221) 및 적어도 2 이상의 메모리 페이지(2222, 2223)을 포함한다.
여기서, 호스트(2100)는 디지털 장치로서, 2nKB(단, n은 2 이상의 정수) 크기를 갖는 데이터를 전송한다고 가정한다.
그리고, 각 물리 페이지들(2222, 2223)은 8KB의 단일 비트 페이지 용량을 갖는 것으로 예시한다. 여기서, 각 단일 비트 페이지 용량은 물리 페이지의 메모리 셀들 각각이 단일 레벨 셀(Single Level Cell, SLC)로서 기능할 때의 물리 페이지의 데이터 용량을 의미한다. 따라서, 각 물리 페이지들(2222, 2223)의 단일 비트 페이지 용량은 물리 페이지가 포함하는 메모리 셀의 개수에 의존한다. 예를 들어, 물리 페이지들(2222, 2223) 각각이 8K 개의 메모리 셀을 포함하면, 각 물리 페이지들(2222, 22223)의 단일 비트 페이지 용량은 8KB가 될 것이다. 단, 여기서, 단일 비트 페이지 용량을 산정하기 위한 메모리 셀에는 데이터를 저장하지 않는 더미 셀은 제외된다.
각 물리 페이지들(2222, 2223)에 포함된 메모리 셀이 멀티 레벨 셀인 경우, 각 물리 페이지들(2222, 2223)의 페이지 데이터 용량은 메모리 셀의 멀티 레벨에 단일 비트 페이지 용량을 곱한 것과 동일하다. 각 메모리 셀이 트리플 레벨 셀(TLC)인 것으로 예시하면, 각 물리 페이지들(2222, 2223)은 3×8KB=24KB의 페이지 데이터 용량을 갖는다.
다시 도 11을 참조하면, 호스트(2100)는 제 1 데이터(Data1)을 메모리 시스템(2000)에 전송한다. 제 1 데이터(Data1)는 16KB의 데이터 크기를 갖는다.
컨트롤러(2210)는 제 1 데이터(Data1)를 수신하고, 제 1 데이터(Data1)가 단일 비트 프로그램에 의해 복수의 물리 페이지에 나누어 저장되도록 불휘발성 메모리(2220)을 제어한다. 먼저, 컨트롤러(2210)는 각 물리 페이지들(2222, 2223)의 단일 비트 페이지 용량을 결정한다. 실시 예로서, 컨트롤러(2210)는 각 물리 페이지(2222, 2223)를 읽어내어, 각 메모리 페이지들(2222, 2223)의 단일 비트 페이지 용량을 결정할 수 있다. 또는, 컨트롤러(2210)는 각 메모리 페이지(2222, 2223)의 단일 비트 페이지 용량을 나타내는 별도의 메타 정보를 참조하여 각 메모리 페이지(2222, 2223)의 단일 비트 페이지 용량을 결정할 수 있다.
그리고, 컨트롤러(2210)는 수신된 제 1 데이터(Data1)의 크기와 물리 페이지들(2222, 2223)의 단일 비트 페이지 용량을 비교하고, 그 결과에 따라, 제 1 데이터(Data1)가 제 1 및 제 2 메모리 페이지들(2222, 2223)에 나누에 저장되도록, 제 1 데이터(Data1)를 분할한다. 여기서, 제 1 데이터(Data1)의 크기는 16KB이고, 물리 페이지들(2222, 2223)의 단일 비트 페이지 용량은 8KB이므로, 제 1 데이터(Data1)는 두 개의 데이터로 분할될 것이다(16KB/8KB=2).
그리고, 컨트롤러(2210)는 제 1 데이터의 분할된 데이터들을 불휘발성 메모리(2220)에 제공한다.
불휘발성 메모리(2220)는 컨트롤러(2210)의 제어에 의해 제 1 데이터의 분할된 데이터들을 제 1 및 제 2 물리 페이지(2222, 2223)에 나누어 저장한다. 이때, 페이지 버퍼(2221)는 분할된 데이터들이 제 1 및 제 2 물리 페이지(2222, 2223)에 단일 비트 레벨로 프로그램되도록 제 1 및 제 2 물리 페이지(2222, 2223)를 제어한다.
도 12는 도 11에 도시된 페이지 버퍼가 분할된 데이터들을 물리 페이지들에 프로그램하는 방법을 설명하는 도면이다. 도 12를 참조하면, 각각의 물리 페이지들은 논리 페이지로서 최하위 비트 페이지, 중간 비트 페이지, 최상위 비트 페이지를 포함한다. 여기서, 최하위 비트 페이지, 중간 비트 페이지, 최상위 비트 페이지에 대한 구체적인 내용은 위에서 설명한 바와 동일하다.
페이지 버퍼(2221)는 제 1 프로그램을 통해 제 1 데이터의 분할된 데이터들을 제 1 및 제 2 물리 페이지(2222, 2223)에 나누어 저장한다. 여기서, 제 1 프로그램은 제 1 데이터를 저장하기 위한 프로그램 동작을 의미한다. 실시 예로서, 제 1 프로그램은 하나의 메모리 셀에 1비트 데이터가 저장되도록 메모리 셀을 프로그램하는 단일 비트 프로그램 동작일 수 있다.
제 1 프로그램 동작에서, 제 1 데이터의 분할된 데이터들을 제 1 및 제 2 물리 페이지(2222, 2223)의 최하위 비트 페이지에 각각 저장한다. 제 1 및 제 2 메모리 페이지(2222, 2223)의 최하위 비트 페이지들은 각각 8KB의 데이터 용량을 가지므로, 8KB로 분할된 데이터들은 제 1 및 제 2 메모리 페이지(2222, 2223)에 온전히 저장될 수 있다.
도 13은 도 12에 도시된 제 1 프로그램 동작에서, 제 1 데이터를 저장하는 메모리 셀들의 논리 상태를 나타내는 도면이다. 도 13을 참조하면, 제 1 물리 페이지에 포함된 메모리 셀(Cell1) 및 제 2 물리 페이지에 포함된 메모리 셀(Cell2)의 논리 상태가 나타난다.
제 1 프로그램에 의해 제 1 및 제 2 물리 페이지에 포함된 메모리 셀들(Cell1, Cell2)은 단일 비트 레벨로 프로그램된다. 즉, 메모리 셀들(Cell1, Cell2) 각각은 두 가지 논리 상태(E0, P1) 중 하나의 논리 상태로 프로그램되고, 그에 의해 1비트 데이터를 저장하게 된다. 메모리 셀을 단일 비트 레벨로 프로그램하는 구체적인 방법은 당해 기술 분야에 널리 알려져 있으므로 그에 대한 설명은 생략된다. 한편, 제 1 프로그램에 대한 구체적인 내용은 도 9에서 설명된 것과 동일하다.
도 14는 도 11에서 메모리 시스템(2200)이 제 1 데이터가 프로그램된 물리 페이지에 제 2 데이터를 프로그램하는 방법을 나타내는 도면이다.
먼저, 호스트(2100)는 제 2 데이터(Data2)을 메모리 시스템(2000)에 전송한다. 여기서, 제 2 데이터(Data2)는 제 1 데이터(Data1, 도 11 참조)와 동일하게 16KB의 데이터 크기를 갖는 것으로 가정한다.
컨트롤러(2210)는 제 2 데이터(Data2)를 수신하고, 제 2 데이터(Data2)를 저장할 물리 페이지를 결정하도록 불휘발성 메모리(2220)를 제어한다. 그리고, 컨트롤러(2210)는 제 1 데이터가 프로그램된 복수의 물리 페이지(2222, 2223) 중 적어도 하나의 물리 페이지에 제 2 데이터(Data2)가 프로그램되도록 불휘발성 메모리(2220)를 제어한다.
여기서, 제 2 데이터(Data2)의 크기는 16KB이고, 제 1 및 제 2 물리 페이지의 남겨진 데이터 용량이 16KB이다. 따라서, 제 2 데이터(Data2)를 저장하기 위해서 하나의 물리 페이지만이 필요하다. 다만, 이는 예시적인 것으로서, 제 2 데이터(Data2)의 크기가 16KB보다 크다면, 제 2 데이터(Data2)를 저장하기 위해 2 이상의 물리 페이지가 요구될 수 있다. 이에 대한 구체적인 설명은 후술될 것이다.
컨트롤러(2210)는 제 2 데이터(Data2)를 불휘발성 메모리(2220)에 제공한다. 그리고, 컨트롤러(2210)는 스트링 선택 라인(SSL)에 의해 제 2 데이터(Data2)가 프로그래될 물리 페이지가 선택되도록 불휘발성 메모리(2220)를 제어한다. 여기서는, 제 1 물리 페이지(2222)가 선택된 것으로 가정한다.
컨트롤러(2210)는 제 1 물리 페이지(2222)가 선택되면, 제 2 데이터(Data2)가 제 1 물리 페이지(2222)에 프로그램되도록 불휘발성 메모리(2220)를 제어한다. 이때, 제 1 물리 페이지(2222)의 최하위 비트 페이지에는 제 1 데이터(Data)의 분할된 데이터가 저장되어 있다. 따라서, 컨트롤러(2210)는 제 1 및 제 2 데이터(Data1, Data2)를 모두 저장하기 위해, 제 1 메모리 페이지(2222)를 소거하는 대신 제 2 프로그램을 통해 제 1 물리 페이지(2222)의 중간 비트 페이지 및 최상위 비트 페이지를 프로그램한다. 이때, 제 2 프로그램 동작에 의해 멀티 비트 데이터가 중간 비트 페이지 및 최상위 비트 페이지에 동시에 프로그램된다.
즉, 본 발명에서, 제 2 프로그램에 의해 물리 페이지의 각 메모리 셀에는 2비트 이상의 멀티 비트 데이터가 동시에 프로그램된다. 이 경우, 메모리 셀이 가질수 있는 논리 상태는 2개에서 8개로 증가될 것이다. 제 2 프로그램에 대한 구체적인 내용은 도 9에서 설명된 바와 실질적으로 동일하다.
도 15 및 도 16은 도 14에 도시된 페이지 버퍼가 제 2 데이터를 제 1 물리 페이지에 재프로그램하는 방법을 설명하는 도면이다.
도 15를 참조하면, 제 1 물리 페이지는 최하위 비트 페이지, 중간 비트 페이지, 최상위 비트 페이지를 포함한다. 이때, 최하위 비트 페이지에는 제 1 프로그램에 의해 제 1 데이터(Data1)가 저장되어 있다.
컨트롤러(2210, 도 15 참조)로부터 제공되는 제 2 데이터(Data2)는 페이지 버퍼(2221)에 전달된다. 페이지 버퍼(2221)는 프로그램 데이터를 일시적으로 저장하는 복수의 래치(2221a, 2221b, 2221c)를 포함한다.
페이지 버퍼(2221)는 제 1 물리 페이지에 저장된 최하위 비트 페이지를 읽어내어, 최하위 비트 래치(2221c)에 저장한다. 그리고, 페이지 버퍼(2221)는 제 2 데이터(Data2)를 각각 8KB씩 나누어 중간 비트 래치(2221b) 및 최상위 비트 래치(2221a)에 저장한다.
이어서, 도 16을 참조하면, 페이지 버퍼(2221)는 북수의 래치(2221a, 2221b, 2221c)에 저장된 데이터들을 참조하여 제 1 물리 페이지(2222)에 제 2 데이터를 프로그램한다(제 2 프로그램). 제 2 프로그램 동작을 통해, 제 1 물리 페이지(2222)의 각각의 메모리 셀은 8개의 논리 상태 중 어느 하나를 갖도록 프로그램된다. 이것은 각각의 메모리 셀이 3비트(최하위 비트, 중간 비트 및 최상위 비트)를 저장하고, 멀티 비트 데이터(여기서는, 2비트 데이터)가 동시에 메모리 셀의 중간 비트 및 최상위 비트로서 프로그램되는 것을 의미한다. 실시 예로서, 제 2 프로그램 동작은 복수의 프로그램 전압 및 검증 전압을 이용하여 프로그램과 검증을 반복하는 ISPP(Incremental Step Pulse Program)프로그램 루프를 포함할 수 있다.
도 17은 제 2 프로그램에 의해 변화되는 메모리 셀의 논리 상태를 나타낸 도면이다. 도 17을 참조하면, 제 1 물리 페이지(2222, 도 16 참조)의 메모리 셀(Cell1)의 논리 상태가 예시적으로 도시되어 있다.
한편, 제 1 물리 페이지(2222)의 메모리 셀(Cell1)은 제 1 프로그램에 의해 제 1 데이터(Data1) 중 하나의 비트를 저장한다. 이때, 메모리 셀(Cell1)은 두 개의 논리 상태(E0, P1) 중 어느 하나를 갖는다. 실시 예로서, 소거 상태(E0)는 메모리 셀이 '1' 데이터를 최하위 비트 데이터로서 저장하는 것을 의미한다. 실시 예로서, 제 1 프로그램 상태(P1)는 메모리 셀이 '0' 데이터를 최하위 비트 데이터로서 저장하는 것을 의미한다.
그리고, 제 2 프로그램 동작에 의해 메모리 셀(Cell1)은 제 2 데이터(Data2) 중 2 비트 데이터를 더 저장하게 된다. 이때, 메모리 셀(Cell1)은 8개의 논리 상태(E0, P1, P2, P3, P4, P5, P6, P7) 중 어느 하나를 갖도록 프로그램된다. 다만, 이는 예시적인 것으로서, 메모리 셀(Cell1)은 셀 특성에 따라 3 비트 이상의 데이터를 더 저장할 수 있다.
실시 예로서, 소거 상태(E0)는 메모리 셀이 '111' 데이터를 저장하는 것을 의미한다. 실시 예로서, 각 논리 상태(P1, P2, P3, P4, P5, P6, P7)는 메모리 셀이 데이터 '110', '101', '011', '100', '010', '001', '000' 중 어느 하나의 데이터를 저장하는 것을 의미한다.
즉, 제 2 프로그램 동작을 통해, 제 1 물리 페이지(2222)의 메모리 셀(Cell1)은 8개의 논리 상태 중 어느 하나의 논리 상태로 프로그램된다. 그리고, 이것은 제 2 프로그램 동작에 의해 멀티 비트 데이터(여기서는, 2비트 데이터)가 메모리 셀(Cell1)에 추가적으로 프로그램되는 것을 의미한다.
도 18은 본 발명에 따른 사용자 환경(3000)의 다른 일 실시 예를 나타내는 도면이다. 도 18을 참조하면, 사용자 환경(3000)은 호스트(3100) 및 메모리 시스템(3200)을 포함한다.
도 18의 사용자 환경(3000)은 도 11의 사용자 환경(2000)과 그 물리적 구성이 동일할 수 있다.
본 실시 예에서도, 앞서와 마찬가지로 메모리 시스템(3200)은 호스트로부터 수신되는 제 1 데이터를 복수의 물리 페이지(3222, 3223)에 나누어 저장한다. 메모리 시스템(3200)이 제 1 데이터를 저장하는 구체적인 내용 및 메모리 시스템(3200)의 환경은 도 11에서 설명한 바와 동일하다.
그리고, 메모리 시스템(3200)은 제 1 프로그램이 수행된 뒤, 호스트(3100)로부터 새로운 제 2 데이터(Data2)를 수신한다. 본 실시 예에서, 제 2 데이터(Data2)는 32KB의 데이터 크기를 갖는다.
컨트롤러(3210)는 제 2 데이터(Data2)를 수신한 후, 제 2 데이터(Data2)를 저장할 물리 페이지가 선택되도록 불휘발성 메모리(3220)를 제어한다. 도 11과 마찬가지로, 물리 페이지들(3222, 3223)은 각각 24KB의 데이터 용량을 갖는다. 그리고, 각 물리 페이지(3222, 3223)의 최하위 비트 페이지에는 제 1 프로그램에 의해 8KB 데이터가 저장되어 있다. 따라서, 각 물리 페이지(3222, 3223)의 사용 가능한 데이터 용량은 16KB이다.
따라서, 제 2 데이터(Data2)의 데이터 크기(36KB)가 각 물리 페이지의 사용 가능한 데이터 용량(16KB)을 초과하므로, 제 2 데이터(Data2)는 하나의 물리 페이지에 저장될 수 없다. 따라서, 컨트롤러(3210)는 제 2 데이터(Data2)가 복수의 물리 페이지(3222, 3223)에 저장되도록 불휘발성 메모리(3220)를 제어한다.
실시 예로서, 컨트롤러(3210)는 제 2 데이터(Data2)를 두 개로 분할하여, 분할된 데이터를 페이지 버퍼(3221)에 순차적으로 또는 동시에 제공할 수 있다.
그리고, 컨트롤러(3210)는 제 2 데이터(Data2)를 저장하기 위해 복수의 물리 페이지(3222, 3223)가 선택되도록 불휘발성 메모리(3220)를 제어한다. 이때, 불휘발성 메모리(3220)는 스트링 선택 라인(SSL)을 통해 복수의 물리 페이지를 선택할 수 있다. 실시 예로서, 복수의 물리 페이지(3222, 3223)는 동일한 스트링 선택 라인(SSL)에 연결된 메모리 페이지들일 수 있다. 또는, 복수의 물리 페이지(3222, 3223)는 서로 다른 스트링 선택 라인(SSL)에 연결된 메모리 페이지들 일 수 있다.
그리고, 컨트롤러(3210)는 제 2 데이터(Data2)의 분할된 데이터들이 16KB씩 각 물리 페이지(3222, 3223)에 프로그램되도록 불휘발성 메모리(3220)를 제어한다. 이때, 컨트롤러(3210)는 멀티 비트 데이터를 각 물리 페이지(3222, 3223)의 복수의 논리 페이지에 동시에 프로그램한다. 여기서, 멀티 비트 페이지를 동시에 프로그램하는 구체적인 내용은 앞에서 설명한 제 2 프로그램 방법과 실질적으로 동일하다.
도 19는 본 발명에 따른 메모리 시스템의 다른 실시 예를 나타내는 블록도이다. 도 19를 참조하면, 메모리 시스템(4000)은 불휘발성 메모리 장치(4100) 및 컨트롤러(4200)를 포함한다. 불휘발성 메모리 장치(4100)는 복수의 불휘발성 메모리 칩들을 포함한다. 복수의 불휘발성 메모리 칩들은 복수의 그룹들을 형성한다. 복수의 불휘발성 메모리 칩들의 그룹들 각각은 하나의 공통 채널을 통해 컨트롤러(4200)와 통신하도록 구성된다. 예시적으로, 복수의 불휘발성 메모리 칩들은 제 1 내지 제 k 채널들(CH1~CHk)을 통해 컨트롤러(4200)와 통신할 수 있다.
불휘발성 메모리 칩들 각각은 본 발명의 실시 예에 따른 불휘발성 메모리 장치(100)와 동일한 구조를 가지며, 동일하게 동작할 수 있다. 즉, 불휘발성 메모리 장치(4100)는 기판(111) 상에 제공되는 복수의 셀 스트링들(CS11, CS12, CS21, CS22)을 포함하고, 복수의 셀 스트링들(CS11, CS12, CS21, CS22) 각각은 기판(111)과 수직한 방향으로 적층된 복수의 셀 트랜지스터들(CT)을 포함한다.
도 19에서는 하나의 채널에 복수의 불휘발성 메모리 칩들이 연결되는 것으로 설명되었다. 그러나, 하나의 채널에 하나의 불휘발성 메모리 칩이 연결되도록 메모리 시스템(4000)이 변형될 수 있다.
본 실시 예에서, 컨트롤러(4200)가 공통 채널을 통해 복수의 불휘발성 메모리 칩들과 통신하는 점을 제외하고, 컨트롤러(4200) 및 불휘발성 메모리 장치(4100)에 대한 다른 내용은 도 2에서 설명한 바와 동일하다.
도 20은 본 발명의 실시 예에 따른 솔리드 스테이트 드라이브를 나타내는 블록도이다. 도 20을 참조하면, 사용자 장치(5000)는 호스트(5100)와 SSD(5200)를 포함한다. SSD(5200)는 SSD 컨트롤러(5210), 버퍼 메모리(5220), 그리고 불휘발성 메모리 장치(5230)를 포함한다.
SSD 컨트롤러(5210)는 호스트(5100)와 SSD(5200)와의 물리적 연결을 제공한다. 즉, SSD 컨트롤러(5210)는 호스트(5100)의 버스 포맷(Bus format)에 대응하여 SSD(5200)와의 인터페이싱을 제공한다. 특히, SSD 컨트롤러(5210)는 호스트(5100)로부터 제공되는 명령어를 디코딩한다. 디코딩된 결과에 따라, SSD 컨트롤러(5210)는 불휘발성 메모리 장치(5230)를 액세스한다.
SSD 컨트롤러(5210)는 호스트(Host) 및 불휘발성 메모리 장치(5230)에 연결된다. 호스트(Host)로부터의 요청에 응답하여, 컨트롤러(5210)는 불휘발성 메모리 장치(5230)를 액세스하도록 구성된다. 컨트롤러(5210)는 불휘발성 메모리 장치(5230) 및 호스트(Host) 사이에 인터페이스를 제공하도록 구성된다. 컨트롤러(5210)는 불휘발성 메모리 장치(5230)를 제어하기 위한 펌웨어(firmware)를 구동하도록 구성된다. 컨트롤러(5210)는 불휘발성 메모리 장치(5230)에 제어 신호(CTRL), 커맨드(CMD) 및 어드레스(ADDR)를 제공하도록 구성된다.
SSD 컨트롤러(5210)는 호스트(Host)로부터 수신되는 데이터를 불휘발성 메모리 장치(5230)에 포함된 복수의 메모리 페이지에 나누어 저장한다(제 1 프로그램). SSD 컨트롤러(5210)가 수신된 데이터를 저장하는 구체적인 내용은 도 11에서 컨트롤러(3210, 도 11 참조)가 제 1 데이터를 저장하는 제 1 프로그램과 동일하다.
SSD 컨트롤러(5210)는 제 1 프로그램이 수행된 뒤, 호스트(3100)로부터 새로운 데이터를 수신한다. SSD 컨트롤러(5210)는 새로운 데이터를 수신한 후, 제 1 프로그램에 의해 프로그램된 복수의 메모리 페이지들 중 적어도 하나의 페이지에 새로운 데이터가 제 2 프로그램되도록 불휘발성 메모리 장치(5230)를 제어한다.
여기서, 제 2 프로그램에 대한 구체적인 내용은 도 9에서 설명된 제 2 프로그램과 실질적으로 동일하다.
호스트(5100)의 버스 포맷(Bus format)으로 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI) 등이 포함될 수 있다.
버퍼 메모리(5220)에는 호스트(5100)로부터 제공되는 쓰기 데이터 또는 불휘발성 메모리 장치(5230)로부터 읽혀진 데이터가 일시 저장된다. 호스트(5100)의 읽기 요청시에 불휘발성 메모리 장치(5230)에 존재하는 데이터가 캐시되어 있는 경우에는, 버퍼 메모리(5220)는 캐시된 데이터를 직접 호스트(5100)로 제공하는 캐시 기능을 지원한다. 일반적으로, 호스트(5100)의 버스 포맷(예를 들면, SATA 또는 SAS)에 의한 데이터 전송 속도는 SSD(5200)의 메모리 채널의 전송 속도보다 월등히 빠르다. 즉, 호스트(5100)의 인터페이스 속도가 월등히 높은 경우, 대용량의 버퍼 메모리(5220)를 제공함으로써 속도 차이로 발생하는 퍼포먼스 저하를 최소화할 수 있다.
버퍼 메모리(5220)는 대용량의 보조 기억 장치로 사용되는 SSD(5200)에서 충분한 버퍼링을 제공하기 위해 동기식 DRAM(Synchronous DRAM)으로 제공될 수 있다. 하지만, 버퍼 메모리(5220)가 여기의 개시에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
불휘발성 메모리 장치(5230)는 SSD(5200)의 저장 매체로서 제공된다. 예를 들면, 불휘발성 메모리 장치(5230)는 대용량의 저장 능력을 가지는 낸드 플래시 메모리(NAND-type Flash memory)로 제공될 수 있다. 불휘발성 메모리 장치(5230)는 복수의 메모리 장치로 구성될 수 있다. 이 경우, 각각의 메모리 장치들은 채널 단위로 SSD 컨트롤러(5210)와 연결된다. 저장 매체로서 불휘발성 메모리 장치(5230)가 낸드 플래시 메모리를 예로 들어 설명되었으나, 또 다른 불휘발성 메모리 장치들로 구성될 수 있다. 예를 들면, 저장 매체로서 PRAM, MRAM, ReRAM, FRAM, NOR 플래시 메모리 등이 사용될 수 있으며, 이종의 메모리 장치들이 혼용되는 메모리 시스템도 적용될 수 있다.
한편, 여기서 별도로 설명한 점을 제외하고, 불휘발성 메모리 장치(5230)에 대한 다른 내용은 도 1의 불휘발성 메모리 장치(100)와 동일하다.
도 21은 본 발명의 실시 예에 따른 메모리 카드를 나타내는 블록도이다. 도 21을 참조하면, 메모리 카드(6000)는 불휘발성 메모리 장치(6100), 컨트롤러(6200), 그리고 커넥터(6300)를 포함한다.
불휘발성 메모리 장치(6100)는 본 발명의 실시 예들에 따른 불휘발성 메모리 장치들(100)와 동일한 구조를 가지며, 동일하게 동작할 수 있다. 즉, 불휘발성 메모리 장치(6100)는 기판(111) 상에 제공되는 복수의 셀 스트링들(CS11, CS12, CS21, CS22)을 포함하고, 복수의 셀 스트링들(CS11, CS12, CS21, CS22) 각각은 기판(111)과 수직한 방향으로 적층된 복수의 셀 트랜지스터들(CT)을 포함한다.
컨트롤러(6200)는 불휘발성 메모리 장치(6100)에 연결된다. 컨트롤러(6200)는 불휘발성 메모리 장치(6100)를 액세스하도록 구성된다. 컨트롤러(6200)는 불휘발성 메모리 장치(6100)에 인터페이스를 제공하도록 구성된다. 컨트롤러(6200)는 불휘발성 메모리 장치(6100)에 제어 신호(CTRL), 커맨드(CMD) 및 어드레스(ADDR)를 제공하도록 구성된다.
커넥터(6300)는 메모리 카드(6000)와 호스트를 전기적으로 연결할 수 있다.
컨트롤러(6200)는 커넥터(6300)을 통해 호스트로부터 데이터를 수신한다. 그리고, 컨트롤러(6200)는 수신되는 데이터를 불휘발성 메모리 장치(6100)에 포함된 복수의 메모리 페이지에 나누어 저장한다(제 1 프로그램). 컨트롤러(6200)가 수신된 데이터를 저장하는 구체적인 내용은 도 11에서 컨트롤러(3210, 도 11 참조)가 제 1 데이터를 저장하는 제 1 프로그램과 동일하다.
컨트롤러(6200)는 제 1 프로그램이 수행된 뒤, 호스트로부터 새로운 데이터를 수신한다. 컨트롤러(6200)는 새로운 데이터를 수신한 후, 제 1 프로그램에 의해 프로그램된 복수의 메모리 페이지들 중 적어도 하나의 페이지에 새로운 데이터가 제 2 프로그램되도록 불휘발성 메모리 장치(6100)를 제어한다.
컨트롤러(6200)가 새로운 데이터를 제 2 프로그램하는 구체적인 내용은 도 9에서 설명된 제 2 프로그램과 실질적으로 동일하다.
메모리 카드(6000)는 PC 카드(PCMCIA, personal computer memory card international association), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD, SDHC), 유니버설 플래시 기억장치(UFS) 등과 같은 메모리 카드들을 구성할 수 있다.
도 22는 본 발명의 실시 예에 따른 컴퓨팅 시스템을 나타내는 블록도이다. 도 22를 참조하면, 컴퓨팅 시스템(7000)은 중앙 처리 장치(7100), 램(7200, RAM, Random Access Memory), 사용자 인터페이스(7300), 모뎀(7400), 그리고 메모리 시스템(7600)을 포함한다.
메모리 시스템(7600)은 시스템 버스(7500)를 통해, 중앙처리장치(7100), 램(7200), 사용자 인터페이스(7300), 그리고 모뎀(7400)에 전기적으로 연결된다. 사용자 인터페이스(7300)를 통해 제공되거나, 중앙 처리 장치(7100)에 의해서 처리된 데이터는 메모리 시스템(7600)에 저장된다.
메모리 시스템(7600)은 불휘발성 메모리 장치(7610) 및 컨트롤러(7620)를 포함한다. 메모리 시스템(7600)은 본 발명의 실시 예들에 따른 메모리 시스템들(1000, 2000, 3000, 4000), 메모리 카드(6000), 또는 솔리드 스테이트 드라이브(5000)일 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예를 들어 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한 각 실시 예는 여러 가지 형태로 변형될 수 있다. 또한, 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허 청구범위뿐만 아니라 이 발명의 특허 청구범위와 균등한 것들에 의해 정해져야 한다.
100; 불휘발성 메모리 장치 110; 메모리 셀 어레이
120; 어드레스 디코더 130; 페이지 버퍼
140; 제어 로직
BLK1~BLKz; 메모리 블록들 111; 기판
112, 112a; 절연 물질들 PL; 필라
114; 채널막 115; 내부 물질
116; 정보 저장막 CM1~CM8; 제 1 내지 제 8 도전 물질들
WL Cut; 워드 라인 컷 CSR; 공통 소스 영역들
30; 드레인 BL, BL1, BL2; 비트 라인
CS11, CS12, CS21, CS22; 셀 스트링들
GST; 접지 선택 트랜지스터 GSL; 접지 선택 라인
MC1~MC6; 메모리 셀들 WL1~WL6; 워드 라인들
CSL; 공통 소스 라인 SST; 스트링 선택 트랜지스터
SSL1, SSL2; 스트링 선택 라인들 BLKa1; 등가 회로
1100, 2100, 3100; 호스트
1200, 2200, 3200, 4000; 메모리 시스템
5000; 솔리드 스테이트 드라이브
6000; 메모리 카드 7000; 컴퓨팅 시스템

Claims (20)

  1. 메모리 셀 어레이를 포함하고, 상기 메모리 셀 어레이는 메모리 셀들의 물리 페이지들을 포함하고, 상기 메모리 셀들의 물리 페이지들은 상기 메모리 셀 어레이의 워드 라인에 대응하고, 상기 메모리 셀들의 각각은 적어도 최하위 비트(LSB), 중간 비트(CSB), 그리고 최상위 비트(MBS)를 저장하는 불휘발성 메모리의 프로그램 방법에 있어서:
    외부로부터 제 1 데이터를 수신하는 단계;
    상기 수신된 제 1 데이터를 상기 물리 페이지들에 최하위 비트들로서 분할하여 프로그램하는 제 1 프로그램 단계;
    외부로부터 제 2 데이터를 수신하는 단계;
    상기 제1 데이터가 상기 최하위 비트들로서 프로그램 된 상기 물리 페이지들 중 선택된 물리 페이지에 상기 제 2 데이터를 중간 비트들 및 최상위 비트들로서 동시에 프로그램하는 제 2 프로그램 단계를 포함하는 프로그램 방법.
  2. 제 1 항에 있어서,
    상기 제1 데이터는 상기 물리 페이지들의 각각의 최하위 비트 논리 페이지들에 분할되어 프로그램 되는 프로그램 방법.
  3. 제 2 항에 있어서,
    상기 제2 데이터는 상기 선택된 물리 페이지의 중간 비트 논리 페이지 및 최상위 비트 논리 페이지에만 프로그램 되고,
    상기 제1 데이터의 사이즈는 상기 제2 데이터의 사이즈와 같은 프로그램 방법.
  4. 제 1 항에 있어서,
    상기 메모리 셀 어레이는:
    각각 제1 방향으로 신장되는 셀 스트링들; 그리고
    제3 방향으로 신장되는 비트 라인들을 포함하는 3차원 메모리 셀 어레이이고,
    상기 워드 라인은 제2 방향으로 신장되는 프로그램 방법.
  5. 제 4 항에 있어서,
    상기 물리 페이지들의 각각의 메모리 셀들은 상기 3차원 메모리 셀 어레이에서 동일한 높이에 공통으로 배치되는 프로그램 방법.
  6. 제 4 항에 있어서,
    각 셀 스트링은 상기 비트 라인들 중 하나에 연결되고, 그리고 스트링 선택 트랜지스터 및 접지 선택 트랜지스터의 사이에 직렬 연결되는 메모리 셀들을 포함하는 프로그램 방법.
  7. 제 6 항에 있어서,
    상기 물리 페이지들의 각각은 하나의 스트링 선택 라인에 의해 선택되는 프로그램 방법.
  8. 기판 상에 수직 방향으로 셀 스트링들이 형성되며, 복수의 워드 라인 각각에 연결된 메모리 셀들은 스트링 선택 라인들(String Selection Line, SSL)에 따라 동작이 선택되는 물리 페이지들을 형성하고, 상기 메모리 셀들의 각각은 적어도 최하위 비트(LSB), 중간 비트(CSB), 그리고 최상위 비트(MBS)를 저장하는 3차원 불휘발성 메모리; 및
    상기 3차원 불휘발성 메모리를 제어하는 컨트롤러를 포함하되,
    상기 컨트롤러는 호스트로부터 제1 데이터를 수신하고, 상기 수신된 제1 데이터를 하나의 워드 라인의 상기 물리 페이지들에 최하위 비트들로서 분할하여 프로그램하고,
    상기 컨트롤러는 상기 호스트로부터 제2 데이터를 수신하고, 상기 제1 데이터가 상기 최하위 비트들로서 프로그램 된 상기 물리 페이지들 중 선택된 물리 페이지에 상기 제 2 데이터를 중간 비트들 및 최상위 비트들로서 동시에 프로그램하는 메모리 시스템.
  9. 제 8 항에 있어서,
    상기 제1 데이터는 상기 물리 페이지들의 각각의 최하위 비트 논리 페이지들에 분할되어 프로그램 되는 메모리 시스템.
  10. 제 8 항에 있어서,
    상기 3차원 불휘발성 메모리는,
    상기 컨트롤러로부터 전송되는 데이터를 상기 복수의 물리 페이지에 프로그램하거나, 상기 복수의 물리 페이지에 저장된 데이터를 읽어내는 페이지 버퍼를 포함하되,
    상기 페이지 버퍼는 상기 복수의 물리 페이지에 프로그램되는 데이터를 일시적으로 저장하는 최하위 비트 래치, 중간 비트 래치 및 최상위 비트 래치를 포함하는 메모리 시스템.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020120086805A 2012-08-08 2012-08-08 3차원 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법 KR102024850B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020120086805A KR102024850B1 (ko) 2012-08-08 2012-08-08 3차원 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법
US13/707,648 US9223692B2 (en) 2012-08-08 2012-12-07 Nonvolatile memory device with multi-level memory cells and programming method
TW102105744A TWI602184B (zh) 2012-08-08 2013-02-19 用於非揮發性記憶體的程式化方法、用於記憶體系統的資料管理方法、用於非揮發性記憶體的資料管理方法、記憶體系統以及用於記憶體系統的控制器
DE102013108456.7A DE102013108456B4 (de) 2012-08-08 2013-08-06 Nichtflüchtige Speichervorrichtung und Programmierverfahren
JP2013164003A JP6315917B2 (ja) 2012-08-08 2013-08-07 不揮発性メモリ装置とプログラミング方法
CN201310343797.0A CN103578551B (zh) 2012-08-08 2013-08-08 非易失性存储器件和编程方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120086805A KR102024850B1 (ko) 2012-08-08 2012-08-08 3차원 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법

Publications (2)

Publication Number Publication Date
KR20140020445A KR20140020445A (ko) 2014-02-19
KR102024850B1 true KR102024850B1 (ko) 2019-11-05

Family

ID=50067075

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120086805A KR102024850B1 (ko) 2012-08-08 2012-08-08 3차원 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법

Country Status (4)

Country Link
US (1) US9223692B2 (ko)
JP (1) JP6315917B2 (ko)
KR (1) KR102024850B1 (ko)
TW (1) TWI602184B (ko)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9406385B2 (en) 2013-09-17 2016-08-02 Sandisk Technologies Llc Apparatus and method of storing data at a multi-bit storage element
US9361220B2 (en) 2013-09-17 2016-06-07 Sandisk Technologies Inc. Apparatus and method of using dummy data while storing data at a multi-bit storage element
KR20160000034A (ko) * 2014-06-23 2016-01-04 에스케이하이닉스 주식회사 반도체 장치
KR102293169B1 (ko) * 2014-06-25 2021-08-26 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 동작 방법
KR102247087B1 (ko) * 2014-07-08 2021-05-03 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US9633742B2 (en) 2014-07-10 2017-04-25 Sandisk Technologies Llc Segmentation of blocks for faster bit line settling/recovery in non-volatile memory devices
KR102234592B1 (ko) * 2014-07-29 2021-04-05 삼성전자주식회사 불휘발성 메모리, 데이터 저장 장치, 및 데이터 저장 장치의 동작 방법
KR102238579B1 (ko) * 2014-08-06 2021-04-09 삼성전자주식회사 메모리 장치의 프로그램 방법
US9418750B2 (en) * 2014-09-15 2016-08-16 Sandisk Technologies Llc Single ended word line and bit line time constant measurement
KR102256918B1 (ko) * 2014-09-23 2021-05-27 에스케이하이닉스 주식회사 가변적 ispp 방식을 이용하여 프로그램을 수행하는 3차원 비휘발성 반도체 메모리 장치, 데이터 저장 장치 및 사용자 장치
US9318204B1 (en) 2014-10-07 2016-04-19 SanDisk Technologies, Inc. Non-volatile memory and method with adjusted timing for individual programming pulses
US9349458B2 (en) * 2014-10-16 2016-05-24 Sandisk Technologies Inc. Biasing of unselected blocks of non-volatile memory to reduce loading
US9536600B2 (en) 2014-10-22 2017-01-03 International Business Machines Corporation Simultaneous multi-page commands for non-volatile memories
KR102292183B1 (ko) 2014-11-07 2021-08-25 삼성전자주식회사 불휘발성 메모리의 동작 방법 및 불휘발성 메모리를 포함하는 스토리지 장치의 동작 방법
US9236128B1 (en) 2015-02-02 2016-01-12 Sandisk Technologies Inc. Voltage kick to non-selected word line during programming
US9318210B1 (en) 2015-02-02 2016-04-19 Sandisk Technologies Inc. Word line kick during sensing: trimming and adjacent word lines
US9431120B1 (en) * 2015-03-23 2016-08-30 Sandisk Technologies, Llc Memory die and method for efficient use of data latches in serving mixed traffic loads
KR20160149463A (ko) * 2015-06-18 2016-12-28 에스케이하이닉스 주식회사 비휘발성 메모리 시스템 및 비휘발성 메모리 시스템의 동작방법
US9858994B2 (en) * 2015-06-18 2018-01-02 Samsung Electronics Co., Ltd. Memory system with MLC memory cells and partial page compression or reduction
KR102036514B1 (ko) * 2015-07-13 2019-10-28 엘에스산전 주식회사 메모리 소자를 이용한 데이터 엑세스 장치
KR102313017B1 (ko) 2015-08-21 2021-10-18 삼성전자주식회사 불휘발성 메모리 장치 및 불휘발성 메모리 장치의 쓰기를 제어하는 컨트롤러를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법
US9953703B2 (en) 2015-10-16 2018-04-24 Samsung Electronics Co., Ltd. Programming method of non volatile memory device
TWI613665B (zh) * 2015-11-27 2018-02-01 群聯電子股份有限公司 資料程式化方法與記憶體儲存裝置
US9811284B2 (en) 2015-12-20 2017-11-07 Apple Inc. One-pass programming in a multi-level nonvolatile memory device with improved write amplification
US9721662B1 (en) * 2016-01-13 2017-08-01 Sandisk Technologies Llc Non-volatile memory with efficient programming
KR20170130011A (ko) * 2016-05-17 2017-11-28 삼성전자주식회사 캐시 메모리를 포함하는 서버 장치 및 그것의 동작 방법
JP2018005959A (ja) * 2016-06-30 2018-01-11 東芝メモリ株式会社 メモリシステムおよび書き込み方法
JP6949178B2 (ja) * 2016-06-30 2021-10-13 キオクシア株式会社 メモリシステム
US10203885B2 (en) * 2017-01-18 2019-02-12 Micron Technology, Inc. Memory device including mixed non-volatile memory cell types
JP6856400B2 (ja) 2017-02-20 2021-04-07 キオクシア株式会社 半導体記憶装置及びメモリシステム
CN110462815A (zh) * 2017-03-31 2019-11-15 索尼半导体解决方案公司 存储器装置
US20190034105A1 (en) * 2017-12-28 2019-01-31 Intel Corporation Storage device having programmed cell storage density modes that are a function of storage device capacity utilization
KR102631354B1 (ko) * 2018-10-18 2024-01-31 삼성전자주식회사 비휘발성 메모리 장치 및 이의 동작 방법
JP2020068044A (ja) * 2018-10-22 2020-04-30 キオクシア株式会社 半導体記憶装置
TWI677787B (zh) * 2018-12-05 2019-11-21 核桃運算股份有限公司 資料管理裝置、方法及其電腦程式產品
KR102641097B1 (ko) * 2018-12-31 2024-02-27 삼성전자주식회사 저항성 메모리 장치 및 저항성 메모리 장치의 프로그램 방법
US11651829B2 (en) * 2019-06-17 2023-05-16 Samsung Electronics Co., Ltd. Nonvolatile memory device and operation method thereof
KR20200144197A (ko) 2019-06-17 2020-12-29 삼성전자주식회사 불휘발성 메모리 장치의 동작 방법
US10878923B1 (en) * 2019-06-26 2020-12-29 Sandisk Technologies Llc Partial page sensing mode, method, and apparatus for 3D NAND
CN112148203B (zh) * 2019-06-27 2023-12-05 龙芯中科技术股份有限公司 存储器管理方法、装置、电子设备及存储介质
JP6759440B2 (ja) * 2019-11-28 2020-09-23 キオクシア株式会社 メモリシステム
US11139025B2 (en) * 2020-01-22 2021-10-05 International Business Machines Corporation Multi-level cell threshold voltage operation of one-selector-one-resistor structure included in a crossbar array
JP2022081399A (ja) * 2020-11-19 2022-05-31 キオクシア株式会社 半導体メモリ及び不揮発性メモリ
US20230197172A1 (en) * 2021-12-21 2023-06-22 Sandisk Technologies Llc Edge word line concurrent programming with verify for memory apparatus with on-pitch semi-circle drain side select gate technology

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100894927B1 (ko) * 2006-05-10 2009-04-27 가부시끼가이샤 도시바 반도체 기억 장치
US20100322000A1 (en) * 2009-06-19 2010-12-23 Samsung Electronics Co., Ltd. Programming methods for three-dimensional memory devices having multi-bit programming, and three-dimensional memory devices programmed thereby

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06266596A (ja) * 1993-03-11 1994-09-22 Hitachi Ltd フラッシュメモリファイル記憶装置および情報処理装置
JP3992960B2 (ja) * 2000-10-26 2007-10-17 松下電器産業株式会社 記録装置及びプログラム
KR100648285B1 (ko) * 2005-06-24 2006-11-23 삼성전자주식회사 멀티 레벨 셀 플래시 메모리의 액세스 방법 및 장치
KR100894809B1 (ko) 2006-09-22 2009-04-24 삼성전자주식회사 메모리 시스템 및 그것의 프로그램 방법
KR100874915B1 (ko) * 2007-01-15 2008-12-19 삼성전자주식회사 용도 변환이 가능한 검증 데이터 버퍼를 구비하는 플래시 메모리 장치, 및 이를 이용하는 프로그램 및 검증 방법
KR100877610B1 (ko) 2007-01-23 2009-01-09 삼성전자주식회사 페이지 데이터 저장 방법과 저장 장치
US20080250220A1 (en) * 2007-04-06 2008-10-09 Takafumi Ito Memory system
JP2008276733A (ja) * 2007-04-06 2008-11-13 Toshiba Corp メモリシステム
US8174905B2 (en) 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US7865658B2 (en) 2007-12-31 2011-01-04 Sandisk Il Ltd. Method and system for balancing host write operations and cache flushing
TWI373045B (en) 2008-01-07 2012-09-21 Phison Electronics Corp Flash memory storage apparatus, flash memory controller and switching method thereof
KR101552209B1 (ko) * 2008-10-17 2015-09-11 삼성전자주식회사 멀티 비트를 프로그램하는 가변 저항 메모리 장치
KR101682662B1 (ko) 2009-07-20 2016-12-06 삼성전자주식회사 3차원 메모리 장치 및 그것의 프로그램 방법
KR101626080B1 (ko) 2010-02-17 2016-06-01 삼성전자주식회사 페이지 버퍼 관리 방법과 상기 방법을 수행할 수 있는 장치들
US20110252187A1 (en) * 2010-04-07 2011-10-13 Avigdor Segal System and method for operating a non-volatile memory including a portion operating as a single-level cell memory and a portion operating as a multi-level cell memory
KR101734204B1 (ko) 2010-06-01 2017-05-12 삼성전자주식회사 프로그램 시퀀서를 포함하는 플래시 메모리 장치 및 시스템, 그리고 그것의 프로그램 방법
KR101662827B1 (ko) * 2010-07-02 2016-10-06 삼성전자주식회사 쓰기 패턴에 따라 데이터 블록의 쓰기 모드를 선택하는 메모리 시스템 및 그것의 데이터 쓰기 방법
KR101734199B1 (ko) * 2010-12-29 2017-05-24 삼성전자주식회사 멀티-비트 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 동작 방법
KR20120107336A (ko) * 2011-03-21 2012-10-02 삼성전자주식회사 메모리 시스템 및 그것의 어드레싱 방법
US8587998B2 (en) * 2012-01-06 2013-11-19 Macronix International Co., Ltd. 3D memory array with read bit line shielding
US9606730B2 (en) * 2012-05-04 2017-03-28 Samsung Electronics Co., Ltd. System and method including three dimensional nonvolatile memory device and random access memory

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100894927B1 (ko) * 2006-05-10 2009-04-27 가부시끼가이샤 도시바 반도체 기억 장치
US20100322000A1 (en) * 2009-06-19 2010-12-23 Samsung Electronics Co., Ltd. Programming methods for three-dimensional memory devices having multi-bit programming, and three-dimensional memory devices programmed thereby

Also Published As

Publication number Publication date
TW201407620A (zh) 2014-02-16
US20140047163A1 (en) 2014-02-13
US9223692B2 (en) 2015-12-29
JP6315917B2 (ja) 2018-04-25
JP2014035786A (ja) 2014-02-24
TWI602184B (zh) 2017-10-11
KR20140020445A (ko) 2014-02-19

Similar Documents

Publication Publication Date Title
KR102024850B1 (ko) 3차원 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법
US10467133B2 (en) Storage device including nonvolatile memory device and garbage collection method thereof
US9256530B2 (en) Nonvolatile memory device and sub-block managing method thereof
KR102053953B1 (ko) 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법
KR101891164B1 (ko) 프로그램 스케줄러를 포함하는 플래시 메모리 장치
US9053794B2 (en) Nonvolatile memory device and related method of operation
KR102396422B1 (ko) 불휘발성 메모리 및 불휘발성 메모리를 포함하는 스토리지 장치
US20140056069A1 (en) Nonvolatile memory device having near/far memory cell groupings and data processing method
KR101751506B1 (ko) 불휘발성 메모리 장치 및 그것의 배드 영역 관리 방법
KR101916192B1 (ko) 플래그 셀을 포함하는 불휘발성 메모리 장치 및 그것의 사용자 장치
US20110320688A1 (en) Memory Systems And Wear Leveling Methods
CN106920570B (zh) 存储器系统及其操作方法
KR102360211B1 (ko) 메모리 시스템의 동작 방법
KR102245822B1 (ko) 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 프로그램 방법
US9910607B2 (en) Method of managing a memory, and a memory system
KR20170015708A (ko) 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 프로그램 방법
US20140043901A1 (en) Nonvolatile memory device and operating method with variable memory cell state definitions
KR20120130588A (ko) 플래시 메모리 장치 및 그것의 프로그램 방법
KR20150106778A (ko) 메모리 시스템 및 메모리 시스템의 제어 방법
CN103578551A (zh) 非易失性存储器件和编程方法
CN111128280B (zh) 存储装置及其操作方法
KR20150111692A (ko) 메모리 컨트롤러 구동방법 및 메모리 컨트롤러를 포함하는 메모리 시스템
US9589640B2 (en) Data storage device including nonvolatile memory device and operating method thereof
KR102020818B1 (ko) 3차원 불휘발성 메모리 및 3차원 불휘발성 메모리를 포함하는 메모리 시스템 및의 프로그램 방법
CN106776397B (zh) 存储器系统及其操作方法

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