KR20130128685A - 불휘발성 메모리 장치 및 그것의 프로그램 방법 - Google Patents
불휘발성 메모리 장치 및 그것의 프로그램 방법 Download PDFInfo
- Publication number
- KR20130128685A KR20130128685A KR1020120052591A KR20120052591A KR20130128685A KR 20130128685 A KR20130128685 A KR 20130128685A KR 1020120052591 A KR1020120052591 A KR 1020120052591A KR 20120052591 A KR20120052591 A KR 20120052591A KR 20130128685 A KR20130128685 A KR 20130128685A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- page
- logical address
- write
- nonvolatile memory
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/24—Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5648—Multilevel memory programming, reading or erasing operations wherein the order or sequence of the operations is relevant
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
본 발명은 불휘발성 메모리 장치에 관한 것으로, 좀더 자세하게는 멀티 레벨 셀 방식을 지원하는 불휘발성 메모리 장치 및 그것의 프로그램 방법에 관한 것이다. 본 발명의 실시 예에 따른 불휘발성 메모리 장치는 불휘발성 메모리 및 상기 불휘발성 메모리를 제어하는 컨트롤러를 포함하며, 상기 컨트롤러는 쓰기 요청된 데이터의 논리 주소가 상기 불휘발성 메모리에 저장된 데이터 중 소정의 데이터의 논리 주소와 일치하는 경우, 상기 소정의 데이터가 속하는 페이지와 동일한 워드 라인을 공유하는 페이지에 대한 프로그램 동작이 수행되기 전에, 상기 쓰기 요청된 데이터에 대한 프로그램 동작을 수행하도록 상기 불휘발성 메모리를 제어한다. 본 발명의 실시 예에 따른 불휘발성 메모리 장치는 LSB 데이터를 보호하기 위한 LSB 백업 동작을 최소화할 수 있다. 따라서, LSB 데이터를 백업하기 위하여 필요한 저장 공간이 감소될 수 있다.
Description
본 발명은 불휘발성 메모리 장치에 관한 것으로, 좀더 자세하게는 멀티 레벨 셀 방식을 지원하는 불휘발성 메모리 장치 및 그것의 프로그램 방법에 관한 것이다.
반도체 메모리 장치에는 DRAM, SRAM 등과 같은 휘발성 메모리와 EEPROM, FRAM, PRAM, MRAM, Flash Memory 등과 같은 불휘발성 메모리 등이 있다. 휘발성 메모리는 전원이 차단될 때 저장된 데이터를 잃지만, 불휘발성 메모리는 전원이 차단되더라도 저장된 데이터를 보존한다.
최근 들어 불휘발성 메모리를 사용하는 장치들이 증가하고 있다. 예를 들면 MP3 플레이어, 디지털 카메라, 휴대전화, 캠코더, 플래시 카드 및 SSD(Solid State Disk) 등은 저장장치로 불휘발성 메모리를 사용하고 있다.
저장장치로 불휘발성 메모리를 사용하는 장치들이 증가하면서, 불휘발성 메모리의 용량도 급속히 증가하고 있다. 메모리 용량을 증가시키는 방법들 중 하나는 하나의 메모리 셀(cell)에 다수의 비트들을 저장하는 방식인 이른바 멀티 레벨 셀(MLC:Multi Level Cell) 방식이다.
그러나 MLC 방식에 의한 프로그램 방법은 메모리 셀에 이미 기입되어 있는 하위 비트의 데이터가 해당 메모리 셀에 입력되는 상위 비트의 데이터와 섞여서 손실되는 것과 같은 오류를 유발할 수 있다. 예를 들어, 상위 비트의 프로그램 중에 서든 파워 오프(SPO; Sudden Power Off)나 프로그램 페일(Program fail)이 발생할 경우, 기존에 메모리 셀에 기입되어 있던 하위 비트의 데이터가 해당 메모리 셀에 입력되는 상위 비트의 데이터의 영향을 받아 값이 변하는 문제가 있다.
본 발명은 LSB 데이터를 보호하기 위한 LSB 백업 동작을 최소화하는 불휘발성 메모리 장치 및 그것의 프로그램 방법을 제공하는 데 있다.
본 발명의 실시 예에 따른 불휘발성 메모리 장치는 불휘발성 메모리; 및 상기 불휘발성 메모리를 제어하는 컨트롤러를 포함하며, 상기 컨트롤러는 쓰기 요청된 데이터의 논리 주소가 상기 불휘발성 메모리에 저장된 데이터 중 소정의 데이터의 논리 주소와 일치하는 경우, 상기 소정의 데이터가 속하는 페이지와 동일한 워드 라인을 공유하는 페이지에 대한 프로그램 동작이 수행되기 전에, 상기 쓰기 요청된 데이터에 대한 프로그램 동작을 수행하도록 상기 불휘발성 메모리를 제어한다.
실시 예로써, 상기 컨트롤러는 상기 쓰기 요청된 데이터의 논리 주소가 상기 소정의 데이터의 논리 주소가 일치하며 그리고 상기 소정의 데이터가 속하는 페이지가 LSB 페이지인 경우에, 상기 소정의 데이터가 속하는 LSB 페이지와 동일한 워드 라인을 공유하는 MSB 페이지에 대한 MSB 프로그램 동작이 수행되기 전에, 상기 소정의 데이터를 무효화한다.
실시 예로써, 상기 컨트롤러는 상기 쓰기 요청된 데이터의 논리 주소를 상기 불휘발성 메모리에 저장된 데이터의 논리 주소와 비교하는 맵핑 체크기; 및 상기 맵핑 체크기로부터 전송된 비교 결과에 기초하여, 상기 쓰기 요청된 데이터가 상기 불휘발성 메모리에 프로그램될 위치를 결정하는 백업 관리기를 포함한다.
실시 예로써, 상기 컨트롤러는 상기 불휘발성 메모리에 저장된 데이터의 논리 주소, 상기 불휘발성 메모리에 저장된 데이터 물리 주소 및 상기 불휘발성 메모리에 저장된 데이터가 저장된 페이지가 LSB 페이지인 지에 관한 정보를 관리하는 맵핑 테이블을 더 포함한다.
실시 예로써, 상기 맵핑 체크기는 상기 쓰기 요청된 데이터의 논리 주소를 상기 맵핑 테이블에서 관리되는 논리 주소와 비교하고, 상기 쓰기 요청된 데이터의 논리 주소가 상기 맵핑 테이블에서 관리되는 논리 주소와 일치하는 경우에 상기 불휘발성 메모리에 저장된 데이터 중 상기 논리 주소에 대응하는 데이터가 저장된 페이지가 LSB 페이지인 지의 여부를 확인한다.
실시 예로써, 상기 쓰기 요청된 데이터의 논리 주소가 상기 맵핑 테이블에서 관리되는 논리 주소와 일치하며 상기 불휘발성 메모리 장치에 저장된 데이터 중 상기 논리 주소에 대응하는 데이터가 저장된 페이지가 LSB 페이지인 경우에, 상기 백업 관리기는 상기 LSB 페이지와 동일한 워드 라인을 공유하는 MSB 페이지에 대한 MSB 프로그램 동작이 수행되기 전에 상기 쓰기 요청된 데이터에 대한 프로그램 동작을 수행한다.
실시 예로써, 상기 쓰기 요청된 데이터의 논리 주소가 상기 맵핑 테이블에서 관리되는 논리 주소와 일치하며 상기 불휘발성 메모리 장치에 저장된 데이터 중 상기 논리 주소에 대응하는 데이터가 저장된 페이지가 MSB 페이지인 경우에, 상기 백업 관리기는 호스트로부터의 쓰기 요청 순서에 따라 상기 쓰기 요청된 데이터에 대한 프로그램 동작을 수행한다.
실시 예로써, 상기 쓰기 요청된 데이터의 논리 주소가 상기 맵핑 테이블에서 관리되는 논리 주소와 일치하지 않는 경우에, 상기 백업 관리기는 호스트로부터의 쓰기 요청 순서에 따라 상기 쓰기 요청된 데이터에 대한 프로그램 동작을 수행한다.
실시 예로써, 상기 컨트롤러는 복수의 페이지 단위로 프로그램 동작을 수행하도록 상기 불휘발성 메모리를 제어한다.
실시 예로써, 상기 불휘발성 메모리는 제 1 워드 라인; 상기 제 1 워드 라인에 인접한 제 2 워드 라인; 및 상기 제 2 워드 라인에 인접한 제 3 워드 라인을 포함하며, 상기 컨트롤러는 상기 제 1 워드 라인에 대한 MSB 프로그램 동작이 수행된 이후에, 상기 제 3 워드 라인에 대한 LSB 프로그램 동작을 수행하도록 상기 불휘발성 메모리를 제어한다.
실시 예로써, 상기 불휘발성 메모리는 상기 제 3 워드 라인에 인접한 제 4 워드 라인을 더 포함하며, 상기 컨트롤러는 상기 쓰기 요청된 데이터의 논리 주소가 상기 제 3 워드 라인의 LSB 페이지에 저장된 데이터의 논리 주소와 일치하는 경우, 상기 쓰기 요청된 데이터를 상기 제 4 워드 라인의 LSB 페이지에 프로그램한 후에 상기 제 3 워드 라인의 MSB 페이지에 대한 프로그램 동작을 수행하도록 상기 불휘발성 메모리를 제어한다.
실시 예로써, 상기 불휘발성 메모리는 제 1 워드 라인; 및 상기 제 1 워드 라인에 인접한 제 2 워드 라인을 포함하며, 상기 컨트롤러는 상기 제 1 워드 라인에 대한 LSB 프로그램 동작, 상기 제 1 워드 라인에 대한 MSB 프로그램 동작, 상기 제 2 워드 라인에 대한 LSB 프로그램 동작, 상기 제 2 워드 라인에 대한 MSB 프로그램 동작이 순차적으로 수행되도록 상기 불휘발성 메모리를 제어한다.
멀티 레벨 셀 방식을 지원하는 불휘발성 메모리 장치의 프로그램 방법은 쓰기 요청된 데이터를 순차적으로 수신하는 단계; 상기 쓰기 요청된 데이터의 논리 주소를 맵핑 테이블에서 관리되는 논리 주소와 비교하는 단계; 및 상기 쓰기 요청된 데이터의 논리 주소가 상기 맵핑 테이블에서 관리되는 논리 주소들 중 소정의 논리 주소와 일치하는 경우, 상기 소정의 논리 주소가 속하는 물리 페이지와 동일한 워드 라인을 공유하는 페이지에 대한 프로그램 동작이 수행되기 전에 상기 쓰기 요청된 데이터에 대한 프로그램 동작을 수행한다.
실시 예로써, 상기 쓰기 요청된 데이터의 논리 주소가 상기 맵핑 테이블에서 관리되는 논리 주소 중 소정의 논리 주소와 일치하는 경우, 상기 소정의 논리 주소에 대응하는 물리 페이지가 LSB 페이지인지의 여부를 확인하는 단계를 더 포함한다.
실시 예로써, 상기 소정의 논리 주소에 대응하는 물리 페이지가 LSB 페이지가 아닌 경우, 상기 쓰기 요청된 데이터에 대한 호스트로부터의 쓰기 요청 순서에 따라 프로그램 동작을 수행한다.
본 발명의 실시 예에 따른 불휘발성 메모리 장치는 LSB 데이터를 보호하기 위한 LSB 백업 동작을 최소화할 수 있다. 따라서, LSB 데이터를 백업하기 위하여 필요한 저장 공간이 감소될 수 있다.
도 1 은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 플래시 메모리 시스템을 보여주는 블록도이다.
도 3 및 도 4는 도 2의 플래시 메모리를 좀더 자세히 보여주는 회로도이다.
도 5는 서든 파워 오프 시의 LSB 페이지에 저장된 데이터가 손상되는 위험성을 설명하기 위한 도면이다.
도 6 및 도 7은 호스트로부터의 쓰기 요청된 순서에 따라 쓰기 요청된 데이터를 플래시 메모리에 프로그램하는 일반적인 경우의 일 예를 보여주는 도면이다.
도 8 및 도 9는 본 발명의 실시 예에 따른 플래시 저장 장치의 프로그램 동작의 일 실시 예를 보여주는 도면이다.
도 10 내지 도 12는 복수의 페이지들을 프로그램 단위로 하는 본 발명의 일 실시 예에 따른 플래시 저장 장치를 설명하는 도면들이다.
도 13 내지 도 15는 짝을 이루는 LSB 페이지와 MSB 페이지를 순차적으로 프로그램하는 본 발명의 일 실시 예에 따른 플래시 저장 장치를 설명하는 도면들이다.
도 16은 본 발명의 실시 예에 따른 플래시 저장 장치의 프로그램 동작을 설명하기 위한 순서도이다.
도 17은 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 메모리 카드 시스템에 적용한 예를 보여주는 블록도이다.
도 18은 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 솔리드 스테이트 드라이브 시스템에 적용한 예를 보여주는 블록도이다.
도 19는 도 18에 도시된 SSD 컨트롤러의 구성을 예시적으로 보여주는 블록도이다.
도 20은 본 발명의 실시 예에 따른 메모리 시스템을 전자 장치로 구현한 예를 보여주는 블록도이다.
도 21은 본 발명에 사용되는 플래시 메모리를 예시적으로 보여주는 블록도이다.
도 22는 도 21에 도시된 메모리 블록의 3차원 구조를 예시적으로 보여주는 사시도이다.
도 23은 도 22에 도시된 메모리 블록(BLK1)의 등가 회로도이다.
도 2는 본 발명의 실시 예에 따른 플래시 메모리 시스템을 보여주는 블록도이다.
도 3 및 도 4는 도 2의 플래시 메모리를 좀더 자세히 보여주는 회로도이다.
도 5는 서든 파워 오프 시의 LSB 페이지에 저장된 데이터가 손상되는 위험성을 설명하기 위한 도면이다.
도 6 및 도 7은 호스트로부터의 쓰기 요청된 순서에 따라 쓰기 요청된 데이터를 플래시 메모리에 프로그램하는 일반적인 경우의 일 예를 보여주는 도면이다.
도 8 및 도 9는 본 발명의 실시 예에 따른 플래시 저장 장치의 프로그램 동작의 일 실시 예를 보여주는 도면이다.
도 10 내지 도 12는 복수의 페이지들을 프로그램 단위로 하는 본 발명의 일 실시 예에 따른 플래시 저장 장치를 설명하는 도면들이다.
도 13 내지 도 15는 짝을 이루는 LSB 페이지와 MSB 페이지를 순차적으로 프로그램하는 본 발명의 일 실시 예에 따른 플래시 저장 장치를 설명하는 도면들이다.
도 16은 본 발명의 실시 예에 따른 플래시 저장 장치의 프로그램 동작을 설명하기 위한 순서도이다.
도 17은 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 메모리 카드 시스템에 적용한 예를 보여주는 블록도이다.
도 18은 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 솔리드 스테이트 드라이브 시스템에 적용한 예를 보여주는 블록도이다.
도 19는 도 18에 도시된 SSD 컨트롤러의 구성을 예시적으로 보여주는 블록도이다.
도 20은 본 발명의 실시 예에 따른 메모리 시스템을 전자 장치로 구현한 예를 보여주는 블록도이다.
도 21은 본 발명에 사용되는 플래시 메모리를 예시적으로 보여주는 블록도이다.
도 22는 도 21에 도시된 메모리 블록의 3차원 구조를 예시적으로 보여주는 사시도이다.
도 23은 도 22에 도시된 메모리 블록(BLK1)의 등가 회로도이다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예 또는 적용 예를 첨부된 도면을 참조하여 설명하기로 한다.
Ⅰ. 쓰기 요청된 데이터의 프로그램 순서를 조정하는 동작을 지원하는 메모리 시스템
도 1 은 본 발명의 실시 예에 따른 메모리 시스템(100)을 보여주는 블록도이다. 도 1을 참조하면, 메모리 시스템(100)은 호스트(110) 및 저장 장치(120)를 포함하며, 저장 장치(120)는 불휘발성 메모리(121)와 컨트롤러(122)를 포함한다.
저장 장치(120)는 호스트(110)로부터의 쓰기 요청에 응답하여, 호스트(110)로부터 전달된 데이터를 불휘발성 메모리(121)에 저장한다. 저장 장치(120)는 호스트(110)로부터의 읽기 요청에 응답하여, 불휘발성 메모리(121)에 저장된 데이터를 호스트(110)에 전달한다. 불휘발성 메모리(121)는 낸드 플래시 메모리를 이용하여 구현될 수 있으며, PRAM, ReRAM, FRAM, PRAM, NOR 플래시 메모리 등을 이용하여 구현될 수 있다.
컨트롤러(122)는 저장 장치(120)의 전반적인 동작을 제어한다. 예를 들어, 호스트(110)로부터 쓰기 요청이 수신되는 경우, 컨트롤러(122)는 호스트(110)로부터 쓰기 요청된 데이터를 수신하고, 쓰기 요청된 데이터가 불휘발성 메모리(121)에 프로그램되도록 불휘발성 메모리(121)를 제어한다. 다른 예로, 호스트(110)로부터 읽기 요청이 수신되는 경우, 컨트롤러(122)는 불휘발성 메모리(121)로부터 읽기 요청된 데이터를 독출하고, 독출된 데이터를 호스트(110)에 전달한다. 컨트롤러(122)는 백업 관리 모듈(123)을 포함한다.
백업 관리 모듈(123)은 호스트(110)로부터 쓰기 요청이 수신되는 경우, 쓰기 요청된 데이터의 논리 주소(LA: Logical Address)가 불휘발성 메모리(121)에 저장된 데이터 중 소정 데이터에 대응하는 논리 주소(LA)와 일치하는 지의 여부를 판단한다. 쓰기 요청된 데이터의 논리 주소(LA)가 불휘발성 메모리(121)의 소정 데이터의 논리 주소(LA)와 일치하는 경우, 백업 관리 모듈(123)은 LSB 백업 동작을 최소화하기 위하여, 쓰기 요청된 데이터가 프로그램될 순서(또는, 쓰기 요청된 데이터가 프로그램될 위치)를 조정한다.
하나의 메모리 셀에 2 비트 이상의 데이터가 저장되는 MLC(Multi-Level Cell) 방식에 있어서, MSB 데이터가 프로그램되는 중에 서든 파워 오프(Sudden Power Off)가 발생할 수 있다. 이 경우, 해당 메모리 셀에 저장된 LSB 데이터가 손상될 위험이 있다. 이러한 위험을 방지하기 위하여, 일반적으로, 불휘발성 메모리(121)의 소정 영역은 LSB 데이터를 백업하기 위한 영역으로 할당된다. 다만, 이러한 방식은 LSB 데이터를 백업하기 위하여 많은 공간을 필요로 함으로써, 불휘발성 메모리(121)의 영역 중 사용자 데이터가 저장될 수 있는 영역이 감소하는 문제가 있다.
이러한 문제를 해결하기 위하여, 본 발명의 실시 예에 따른 메모리 시스템(100)은 백업 관리 모듈(123)을 포함한다. 백업 관리 모듈(123)은 쓰기 요청된 데이터가 프로그램될 순서(또는, 쓰기 요청된 데이터가 프로그램될 위치)를 조정함으로써, LSB 백업 동작을 최소화할 수 있다. 즉, 백업 관리 모듈(123)은 MSB 프로그램 동작이 수행되기 전에 해당 메모리 셀의 LSB 데이터를 무효화(invalidate)함으로써, LSB 백업 동작을 최소화할 수 있다. 따라서, LSB 백업을 위하여 필요한 저장 영역이 감소 될 수 있다.
Ⅱ. LSB 백업 동작을 최소화하는 플래시 저장 장치
도 2는 본 발명의 실시 예에 따른 플래시 메모리 시스템(1000)을 보여주는 블록도이다. 도 2에서는 도 1의 불휘발성 메모리(121)의 예로써, 플래시 메모리(1210)가 도시되어 있다. 또한, 도 2에서는 도 1의 백업 관리 모듈(123)의 예로써, 맵핑 체크기(1223) 및 백업 관리기(1224)가 도시되어 있다.
도 2를 참조하면, 플래시 메모리 시스템(1000)은 호스트(1100) 및 플래시 저장 장치(1200)를 포함하며, 플래시 저장 장치(1200)는 플래시 메모리(1210) 및 컨트롤러(1220)를 포함한다.
플래시 메모리(1210)는 컨트롤러(1220)의 제어에 따라, 소거 동작, 읽기 동작 또는 쓰기 동작을 수행한다. 플래시 메모리(1210)는 복수의 플래인(Plane)으로 구성될 수 있으며, 각각의 플래인은 복수의 페이지들(page)로 구성될 수 있다.
플래시 메모리(1210)의 하나의 메모리 셀에는 한 비트 또는 두 비트 이상의 데이터가 저장될 수 있다. 하나의 메모리 셀에 한 비트 데이터를 저장할 수 있는 메모리 셀은 싱글 레벨 셀(SLC; Single Level Cell) 또는 싱글 비트 셀(single bit cell)이라 부른다. 하나의 메모리 셀에 두 비트 이상의 데이터를 저장할 수 있는 메모리 셀은 멀티 레벨 셀(MLC; Multi Level Cell) 또는 멀티 비트 셀(multi bit cell)이라 부른다. 플래시 메모리(1210)의 구조는 이하의 도 3에서, 좀더 자세히 설명될 것이다.
컨트롤러(1220)는 플래시 저장 장치(1200)의 전반적인 동작을 제어한다. 컨트롤러(1220)는 플래시 변환 계층(1221), 맵핑 테이블(1222), 맵핑 체크기(1223), 백업 관리기(1224), 그리고 버퍼 메모리(1225)를 포함한다.
플래시 변환 계층(1221)은 호스트(1100)로부터 제공된 논리 어드레스(LA; Logical Address)를 플래시 메모리(1210) 상의 물리 어드레스(PA; Physical Address)로 변환한다. 이하에서는, 설명의 편의상 플래시 변환 계층(1221)은 페이지 단위로 데이터를 관리한다고 가정된다. 즉, 플래시 변환 계층(1221)은 호스트(1100)로부터 논리 페이지 번호(LPN; Logical Page Number)를 수신하고, 이를 플래시 메모리(1210) 상의 물리 페이지 번호(PPN; Physical Page Number)로 변환한다고 가정된다.
맵핑 테이블(1222)은 플래시 메모리(1210)에 저장된 데이터의 논리 페이지 번호(LPN)와 물리 페이지 번호(PPN)에 대한 정보를 관리한다. 예를 들어, 호스트(1100)로부터 쓰기 요청이 수신되는 경우, 플래시 변환 계층(1221)은 쓰기 요청된 데이터의 논리 페이지 주소(LPN)를 물리 페이지 주소(PPN)로 변환하고, 논리 페이지 주소(LPN) 및 물리 페이지 주소(PPN)에 대한 정보를 맵핑 테이블(1222)에 기입할 수 있다.
또한, 본 발명의 실시 예에 따른 맵핑 테이블(1222)은 물리 페이지 주소(PPN)에 대응하는 페이지가 LSB 페이지인지 또는 MSB 페이지인지의 여부에 대한 정보를 함께 관리할 수 있다. 맵핑 테이블(1222)은, 예를 들어, 버퍼 메모리(1225) 또는 플래시 메모리(1210)에 저장될 수 있다.
맵핑 체크기(1223)는 호스트(1100)로부터 쓰기 요청된 데이터의 논리 페이지 번호(LPN)가 맵핑 테이블(1222)에서 관리되고 있는 논리 페이지 번호(LPN)와 일치하는 지의 여부를 확인한다. 즉, 호스트(1100)로부터 쓰기 요청된 데이터가 수신되는 경우, 맵핑 체크기(1223)는 쓰기 요청된 데이터의 논리 페이지 번호(LPN)가 맵핑 테이블(1222)에서 관리되고 있는 복수의 논리 페이지 번호들(LPN) 중 소정 논리 페이지 번호와 일치하는 지의 여부를 확인한다.
만약 쓰기 요청된 데이터의 논리 페이지 번호(LPN)가 맵핑 테이블(1222)에서 관리되고 있는 논리 페이지 번호(LPN)와 일치한다면, 이는 쓰기 요청된 데이터가 플래시 메모리(1210)에 저장되어 있는 데이터(이하, 올드(old) 데이터)의 업데이트 데이터임을 의미한다. 쓰기 요청된 데이터의 논리 페이지 번호(LPN)가 맵핑 테이블(1222)에서 관리되고 있는 논리 페이지 번호(LPN)와 일치하는 경우, 맵핑 체크기(1223)는 플래시 메모리(1210)에 저장된 올드 데이터가 LSB 페이지인지 MSB 페이지인지의 여부를 함께 확인한다.
백업 관리기(1224)는 맵핑 체크기(1223)로부터 쓰기 요청된 데이터의 논리 페이지 번호(LPN)가 맵핑 테이블(1222)에서 관리되고 있는 논리 페이지 번호(LPN)와 일치하는 지의 여부에 관한 정보 및 올드 데이터가 저장된 페이지가 LSB 페이지인지의 여부에 관한 정보를 수신한다.
쓰기 요청된 데이터의 논리 페이지 번호(LPN)가 맵핑 테이블(1222)에서 관리되고 있는 논리 페이지 번호(LPN)와 일치하며 올드 데이터가 저장된 페이지가 LSB 페이지인 경우, 백업 관리기(1224)는 올드 데이터가 저장된 LSB 페이지와 짝을 이루는 MSB 페이지(이하, 페어드 MSB 페이지(paired MSB page))에 대한 프로그램 동작이 수행되기 전에 쓰기 요청된 데이터에 대한 프로그램 동작이 수행되도록 프로그램 순서(또는, 프로그램 위치)를 조정한다.
한편, 버퍼 메모리(1225)는 플래시 메모리(1210)로부터 읽은 데이터 또는 호스트(1100)로부터 제동되는 데이터를 임시로 저장할 수 있다. 또한, 버퍼 메모리(1225)는 플래시 변환 계층(Flash Translation Layer; FTL)과 같은 펌웨어를 구동하는 데 사용될 수 있다. 버퍼 메모리(1220)는 DRAM, SRAM, MRAM, PRAM 등으로 구현될 수 있다.
상술한 바와 같이, 쓰기 요청된 데이터가 소정 올드 데이터의 업데이트 데이터이며 올드 데이터가 LSB 페이지에 저장되어 있는 경우, 본 발명의 실시 예에 따른 플래시 저장 장치(1200)는 올드 데이터가 저장된 LSB 페이지의 페어드 MSB 페이지에 대한 프로그램 동작이 수행되기 전에, 쓰기 요청된 데이터에 대한 프로그램 동작을 먼저 수행한다.
따라서, 본 발명의 실시 예에 따른 플래시 저장 장치(1200)는 페어드 MSB 페이지에 대한 프로그램 동작이 수행되기 전에, 올드 데이터가 저장된 LSB 페이지를 무효화시킬 수 있다. 이는 올드 데이터가 저장된 LSB 페이지를 백업할 필요가 없다는 것을 의미한다. 따라서, 본 발명의 실시 예에 따른 플래시 저장 장치(1200)는 LSB 백업 동작을 최소화할 수 있다.
도 3 및 도 4는 도 2의 플래시 메모리(1210)를 좀더 자세히 보여주는 회로도이다.
도 3을 참조하면, 플래시 메모리(1210)는 복수의 메모리 셀들, 스트링 선택 트랜지스터(SST), 및 접지 선택 트랜지스터(GST)를 포함한다. 메모리 셀은 워드 라인(WL)을 통하여 서로 연결된다. 동일한 워드 라인을 통하여 연결된 메모리 셀들은 하나 또는 복수의 페이지들을 형성할 수 있다.
예를 들어, 하나의 메모리 셀에 하나의 비트를 저장하는 SLC(Single Level Cell) 방식에 있어서, 하나의 워드 라인에 연결된 메모리 셀들의 집합은 하나의 페이지를 구성한다. 하나의 메모리 셀에 복 수의 비트를 저장하는 MLC(Multi Level Cell) 방식에 있어서, 하나의 워드라인에 연결된 메모리 셀들의 집합은 복수의 페이지들을 구성한다.
스트링 선택 트랜지스터(SST)의 게이트는 스트링 선택 라인(SSL)에 연결된다. 스트링 선택 트랜지스터(SST)의 드래인은 비트 라인(BL1~BLn)에 연결된다. 접지 선택 트랜지스터(GST)의 게이트는 접지 선택 라인(GSL)에 연결된다. 접지 선택 트랜지스터(GST)의 공통 소스 라인(CSL)에 연결된다.
도 4를 참조하면, 플래시 메모리(1210)의 프로그램 동작이 수행되는 순서가 예시적으로 도시되어 있다. 이하에서는, 설명의 편의상, MLC 방식은 하나의 메모리 셀은 2 비트의 데이터를 저장하는 2 비트 MLC 방식이라 가정된다.
2 비트 MLC 방식에 있어서, 동일한 워드 라인을 공유하는 메모리 셀들은 두 개의 페이지들을 형성한다. 즉, 도 4에 도시된 바와 같이, 동일한 워드 라인을 공유하는 메모리 셀들은 LSB 페이지와 MSB 페이지를 형성한다.
프로그램 동작이 수행될 때 발생하는 프로그램 디스터브(program disturb)의 영향을 최소화하기 위하여, 도 4에 도시된 순서와 같이 프로그램 동작이 수행된다고 가정된다. 즉, "제 1 워드 라인(WL1)에 대한 LSB 프로그램 동작 → 제 2 워드 라인(WL2)에 대한 LSB 프로그램 동작 → 제 1 워드 라인(WL1)에 대한 MSB 프로그램 동작 → 제 3 워드 라인(WL3)에 대한 LSB 프로그램 동작 → …"의 순으로 프로그램 동작이 수행된다고 가정된다.
이와 같은 프로그램 순서에 의하면, 인접하는 워드 라인에 대한 LSB 프로그램 동작이 수행된 후에 MSB 프로그램 동작이 수행된다. 따라서, 프로그램 디스터브의 영향이 최소화될 수 있다.
한편, 이와 같은 프로그램 순서에 의하면, 제 1 워드 라인(WL1)에는 LSB 페이지인 제 1 페이지(page1)와 MSB 페이지인 제 3 페이지(page3)가 대응한다. 이 경우, 제 1 페이지(page1)와 제 3 페이지(page3)는 "짝을 이룬다"고 칭해질 수 있다. 또한, 제 1 페이지(page1)와 제 3 페이지는 서로에 대한 페어드 페이지(paired page)라 칭해질 수 있다. 마찬가지로, 제 2 페이지(page2)와 제 5 페이지(page5)는 제 2 워드 라인을 공유하며, 서로 짝을 이룬다. 제 4 페이지(page4)와 제 7 페이지(page7)는 제 3 워드 라인(WL3)을 공유하며, 서로 짝을 이룬다.
도 5는 서든 파워 오프(sudden power off) 시의 LSB 페이지에 저장된 데이터가 손상되는 위험성을 설명하기 위한 도면이다. 도 5를 참조하면, LSB 프로그램 동작이 수행되는 경우의 문턱 전압의 산포와, MSB 프로그램 동작이 수행되는 경우의 문턱 전압의 산포가 예시적으로 도시되어 있다.
LSB 프로그램 동작이 수행되는 경우, 소거 상태(E)의 메모리 셀들은 소거 상태(E)를 유지하거나, 초기 프로그램 상태(P0)로 프로그램된다. 이 경우, 소거 상태(E)의 메모리 셀들은 "1"의 LSB 데이터를 가지며, 초기 프로그램 상태(P0)의 메모리 셀들은 "0"의 LSB 데이터를 가진다.
MSB 프로그램 동작이 수행되는 경우, 소거 상태(E)의 메모리 셀들은 소거 상태(E)를 유지하거나, 제 1 프로그램 상태(P1)로 프로그램된다. 또한, 초기 프로그램 상태(P0)의 메모리 셀들은 제 2 프로그램 상태(P2)로 프로그램되거나, 제 3 프로그램 상태(P3)로 프로그램된다.
이 경우, 제 1 내지 제 3 프로그램 상태(P1, P2, P3)의 메모리 셀들은 각각 "01", "00", "10"의 데이터를 갖는다. 여기서, 우측의 데이터는 LSB 데이터를 의미하며, 좌측의 데이터는 MSB 데이터를 의미한다. 예를 들어, 제 1 프로그램 상태(P1)의 메모리 셀들은 "01"의 데이터를 가지며, "01" 중 우측의 "1"은 LSB 데이터를 의미하고, "01" 중 좌측의 "0"은 MSB 데이터를 의미한다.
이러한 프로그램 동작에 따르면, 만약 MSB 프로그램 동작이 수행되는 도중에 서든 파워 오프(sudden power off)가 발생한다면, 제 1 프로그램 상태(P1)로 프로그램되는 메모리 셀들 중 "A" 영역에 속하는 메모리 셀들의 LSB 데이터가 손상될 수 있다. 이는 "A" 영역에 속하는 메모리 셀들의 LSB 데이터가 MSB 프로그램 동작에 의하여 "0"에서 "1"로 변경되기 때문이다.
이러한 위험을 방지하기 위하여, 플래시 메모리(1210, 도 2 참조)의 소정 영역이 LSB 데이터를 백업하기 위한 영역으로 할당된다. 그러나, 모든 LSB 데이터에 대하여 LSB 백업 동작을 수행하는 경우, 플래시 메모리(1210)의 영역 중 사용자 데이터가 저장될 수 있는 영역이 감소하는 문제가 있다.
이러한 문제를 해결하기 위하여, 본 발명의 실시 예에 따른 플래시 저장 장치(1200, 도 2 참조)는 쓰기 요청된 데이터의 올드 데이터가 저장된 LSB 페이지의 페어드 MSB 페이지에 대한 프로그램 동작이 수행되기 전에, 쓰기 요청된 데이터에 대한 프로그램 동작을 먼저 수행한다. 따라서, 본 발명의 실시 예에 따른 플래시 저장 장치(1200)는 페어드 MSB 페이지에 대한 프로그램 동작이 수행되기 전에, 올드 데이터가 저장된 LSB 페이지를 무효화시킬 수 있다. 따라서, 본 발명의 실시 예에 따른 플래시 저장 장치(1200)는 LSB 백업 동작을 최소화할 수 있다.
이하에서는, 본 발명의 실시 예에 따른 플래시 저장 장치(1200)의 프로그램 동작이 도 6 내지 도 9를 참조하여 좀더 자세히 설명된다.
도 6 및 도 7은 호스트(1100)로부터의 쓰기 요청된 순서에 따라 쓰기 요청된 데이터를 플래시 메모리(1210)에 프로그램하는 일반적인 경우의 일 예를 보여주는 도면이다.
간략한 설명을 위하여, 쓰기 요청된 데이터들의 논리 페이지 번호들(LPN)과 맵핑 테이블(1222)에서 관리되는 논리 페이지 번호들(LPN)이 일치한다고 가정된다. 또한, 도 4에 도시된 바와 같은 방식으로 플래시 메모리(1210)에 대한 프로그램 동작이 수행된다고 가정된다. 또한, 플래시 메모리(1210)의 제 1 내지 제 5 페이지(page1~page5)에는 데이터가 프로그램되어 있다고 가정된다. 또한, 제 4 페이지(page4)에 저장된 데이터에 대응하는 논리 페이지 번호(LPN)는 "2"이며, 제 5 페이지(page5)에 저장된 데이터에 대응하는 논리 페이지 번호(LPN)는 "1"이라 가정된다.
도 6을 참조하면, 먼저, 플래시 저장 장치(1200)는 호스트(1100)로부터 제 1 쓰기 요청 및 제 2 쓰기 요청을 순차적으로 수신한다. 제 1 쓰기 요청 시에는, 제 1 데이터(Data1)가 쓰기 요청되며, 제 1 데이터(Data1)의 논리 페이지 번호(LPN)는 "1"이라 가정된다. 제 2 쓰기 요청 시에는, 제 2 데이터(Data2)가 쓰기 요청되며, 제 2 데이터(Data2)의 논리 페이지 번호(LPN)는 "2"라고 가정된다. 제 1 데이터(Data1) 및 제 2 데이터(Data2)는 버퍼 메모리(1225)에 순차적으로 저장된다.
이 후, 제 1 및 제 2 데이터(Data1, Data2)를 플래시 메모리(1210)에 기입하는 프로그램 동작이 수행된다. 일반적인 경우, 도 6에 도시된 바와 같이, 제 1 데이터(Data1)와 제 2 데이터(Data2)는 제 6 페이지(page6)와 제 7 페이지(page7)에 순차적으로 프로그램된다.
이 경우, 도 7을 참조하면, 제 4 페이지(page4)와 제 7 페이지(page7)는 짝을 이루며, 제 4 페이지(page4)에는 LSB 데이터가 저장되어 있다. 제 7 페이지(page7)에 제 2 데이터(Data2)를 기입하는 프로그램 동작이 수행되는 경우, 제 4 페이지(page4)에 저장된 데이터는 여전히 유효한 데이터이다.
따라서, 도 6 및 도 7과 같이, 호스트(1100)로부터의 쓰기 요청된 순서에 따라 제 1 데이터(Data1)와 제 2 데이터(Data2)를 순차적으로 프로그램하는 경우, 제 4 페이지(page4)에 저장된 LSB 데이터에 대한 백업 동작이 수행되어야 한다. 이는 플래시 메모리(1210)의 영역 중 사용자 데이터가 저장될 수 있는 영역이 감소함을 의미한다.
도 8 및 도 9는 본 발명의 실시 예에 따른 플래시 저장 장치(1200)의 프로그램 동작의 일 실시 예를 보여주는 도면이다.
설명의 편의상, 호스트(1100)로부터의 쓰기 요청들 및 플래시 메모리(1210)에 저장된 데이터들은 도 6 및 도 7과 동일하다고 가정된다. 또한, 도 4에 도시된 바와 같은 방식으로 플래시 메모리(1210)에 대한 프로그램 동작이 수행된다고 가정된다.
도 8을 참조하면, 먼저, 플래시 저장 장치(1200)는 호스트(1100)로부터 제 1 쓰기 요청(1st write request) 및 제 2 쓰기 요청(2nd write request)을 순차적으로 수신한다. 제 1 데이터(Data1) 및 제 2 데이터(Data2)는 각각 "1" 및 "2"의 논리 페이지 번호(LPN)를 가지며, 버퍼 메모리(1225)에 순차적으로 저장된다.
맵핑 체크기(1223)는 쓰기 요청된 제 1 데이터(Data1)의 논리 페이지 번호(LPN)와 제 2 데이터(Data2)의 논리 페이지 번호(LPN)가 맵핑 테이블(1222)에서 관리되는 논리 페이지 번호(LPN)들과 일치하는 지의 여부를 확인하다.
도 8에서, 제 1 데이터(Data1)의 논리 페이지 번호(LPN) "1"과 제 2 데이터(Data2)의 논리 페이지 번호(LPN) "2"는 모두 맵핑 테이블(1222)에 의하여 관리된다. 이는 제 1 데이터(Data1)가 물리 페이지 번호(PPN) "5"에 저장된 데이터에 대한 업데이트 데이터임을 의미한다. 이 경우, 물리 페이지 번호(PPN) "5"에 저장된 데이터는 "제 1 데이터(Data1)의 올드 데이터"라 칭해질 수 있다. 마찬가지로, 제 2 데이터(Data12)는 물리 페이지 번호(PPN) "4"에 저장된 데이터에 대한 업데이트 데이터임을 의미한다. 이 경우, 물리 페이지 번호(PPN) "4"에 저장된 데이터는 "제 2 데이터(Data2)의 올드 데이터"라 칭해질 수 있다.
논리 페이지 번호(LPN) "1"과 "2"가 모두 맵핑 테이블(1222)에서 관리되는 경우, 맵핑 체크기(1223)는 논리 페이지 번호(LPN) "1" 및 "2"에 대응하는 올드 데이터들이 LSB 페이지에 저장된 데이터인지, MSB 페이지에 저장된 데이터인지의 여부를 확인한다.
도 8에 도시된 바와 같이, 데이터가 저장된 페이지가 LSB 페이지인지, 또는 MSB 페이지인지에 대한 정보는 맵핑 테이블(1222)에 의하여 관리될 수 있다. 또한, 데이터가 저장된 페이지가 LSB 페이지인지, 또는 MSB 페이지인지에 대한 정보는 프로그램 정보(PI; Program Information)라 칭해질 수 있다.
계속해서 도 8을 참조하면, 백업 관리기(1224)는 맵핑 체크기(1223)로부터 제 1 및 제 2 데이터(Data1, Data2)가 플래시 메모리(1210)에 저장된 데이터에 대한 업데이트 데이터임을 나타내는 정보를 수신한다. 또한, 백업 관리기(1224)는 맵핑 체크기(1223)로부터 제 2 데이터(Data2)의 올드 데이터가 저장된 플래시 메모리(1210)의 페이지가 LSB 페이지라는 정보를 수신한다.
이 경우, 백업 관리기(1224)는 제 1 데이터(Data1) 및 제 2 데이터(Data2)의 프로그램 순서를 변경함으로써, 제 4 페이지(page4)에 저장된 데이터에 대한 LSB 백업 동작을 생략할 수 있다. 즉, 백업 관리기(1224)는 제 4 페이지(page4)와 짝을 이루는 제 7 페이지(page7)에 대한 프로그램 동작이 수행되기 전에 제 4 페이지(page4)의 LSB 데이터를 무효화함으로써, LSB 백업 동작을 생략할 수 있다.
구체적으로, 도 8을 참조하면, 제 4 페이지(page4)에는 논리 페이지 번호(LPN) "2"에 해당하는 데이터가 저장되어 있다. 즉, 제 4 페이지(page4)에 저장된 데이터는 제 2 데이터(Data2)에 대한 올드 데이터이다.
도 9를 참조하면, 먼저, 제 6 페이지(page6)에 제 2 데이터(Data2)가 프로그램된다. 이 경우, 제 4 페이지(page4)에 저장된 데이터가 제 2 데이터(Data2)에 대한 올드 데이터이므로, 제 4 페이지(page4)에 저장된 LSB 데이터는 무효화 된다.
이 후, 제 7 페이지(page7)에 제 1 데이터(Data1)가 프로그램된다. 이 경우, 비록 제 7 페이지(page7)와 제 4 페이지(page4)는 짝을 이룬다고 할지라도, 제 4 페이지(page4)에 저장된 데이터는 무효화된 데이터이다. 따라서, 본 발명의 실시 예에 따른 플래시 저장 장치(1200)는, 도 6 및 도 7과 달리, 제 4 페이지(page4)에 저장된 LSB 데이터에 대한 백업 동작을 수행할 필요가 없다.
결국, 본 발명의 실시 예에 따른 플래시 저장 장치(1200)는 소정 LSB 페이지와 짝을 이루는 MSB페이지에 대한 프로그램 동작이 수행되기 이전에, 소정 LSB 페이지에 저장된 데이터를 무효화시킴으로써, LSB 백업 동작을 최소화할 수 있다.
한편, 상술한 설명은 예시적인 것으로 이해되어야 하며, 본 발명의 기술적 사상은 이에 한정되지 않는다. 이하에서는, 본 발명의 기술적 사상이 다양하게 적용 및 응용된 실시 예들이 설명될 것이다.
Ⅲ. 복수의 페이지들을 프로그램 단위로 하는 플래시 저장 장치
도 10 내지 도 12는 복수의 페이지들을 프로그램 단위로 하는 본 발명의 일 실시 예에 따른 플래시 저장 장치를 설명하는 도면들이다.
설명의 편의상, 도 10 내지 도 12에서 설명될 플래시 저장 장치의 구성은 도 2의 플래시 저장 장치(1200)의 구성과 유사하다고 가정된다. 따라서, 유사한 구성 요소는 유사한 참조 번호를 사용하여 설명된다. 다만, 도 2 내지 도 9에서 설명된 플래시 저장 장치가 하나의 페이지를 프로그램 단위로 하는데 반하여, 도 10 내지 도 12에서 설명될 플래시 저장 장치는 4개의 페이지들을 프로그램 단위로 한다.
도 10을 참조하면, 플래시 메모리(1210)는 제 1 및 제 2 다이(Die1, Die2)를 포함하며, 제 1 및 제 2 다이(Die1, Die2)는 각각 제 1 내지 제 4 플래인(Plane1~Plane4)을 포함한다. 여기서, 제 1 및 제 2 다이(Die1, Die2)는 동일한 채널을 통하여 컨트롤러(1220)에 연결될 수 있으며, 각각 서로 다른 칩(Chip)으로 구현될 수 있다. 또한, 각 플래인(Plane)은 복수의 페이지들을 포함한다.
버퍼 메모리(1225)에 저장된 제 1 내지 제 15 데이터(Data1~Data15)는 호스트(1100, 도 2 참조)로부터 순차적으로 쓰기 요청되었다고 가정된다. 또한, 도 10에 도시된 바와 같이, 제 1 및 제 2 다이(Die1, Die2)의 제 1 내지 제 5 페이지들(page1~page5)에는 데이터가 저장되어 있다고 가정된다.
또한, 예를 들어, 제 1 다이(Die1)의 제 1 플래인(Plane1)의 제 4 페이지(page4)의 "LPN 9"는 해당 페이지에 저장된 데이터의 논리 페이지 번호(LPN)가 "9"임을 나타낸다. 마찬가지로, 예를 들어, 버퍼 메모리(1225)에 저장된 제 1 데이터(Data1)의 "LPN1"은 쓰기 요청된 제 1 데이터(Data1)의 논리 페이지 번호(LPN)가 "1"임을 나타낸다.
도 11을 참조하면, 호스트(1100)로부터의 쓰기 요청 순서에 따라, 제 1 내지 제 15 데이터(Data1~Data15)가 플래시 메모리(1210)에 순차적으로 프로그램되는 경우의 실시 예가 도시되어 있다.
도 11에 도시된 바와 같이, 제 1 내지 제 15 데이터(Data1~Data15)가 플래시 메모리(1210)에 순차적으로 프로그램되는 경우, 제 1 및 제 2 다이(Die1, Die2)의 제 4 페이지(page4)들에 대한 LSB 백업 동작이 수행되어야 한다.
즉, 제 7 페이지(page7)들에 대한 프로그램 동작이 수행될 때, 제 7 페이지(page7)들과 짝을 이루는 제 4 페이지(page4)들에 저장된 LSB 데이터는 유효한 데이터이다. 따라서, 이 경우, 제 4 페이지(page4)들에 저장된 LSB 데이터에 대한 백업 동작이 수행되어야 한다. 이는 도 6 및 도 7에서 설명된 일반적인 경우와 유사하므로, 자세한 설명은 생략된다.
도 12를 참조하면, 본 발명의 실시 예에 따른 플래시 저장 장치(1200)의 프로그램 방식의 일 예가 도시되어 있다.
도 12에 도시된 바와 같이, 본 발명의 실시 예에 따른 플래시 저장 장치(1200)는 제 9 내지 제 16 데이터(Data9~Data16)를 제 1 내지 제 8 데이터(Data1~Data8)보다 먼저 프로그램한다.
이 경우, 제 7 페이지(page7)들에 대한 프로그램 동작이 수행되기 전에, 제 7 페이지(page7)들과 짝을 이루는 제 4 페이지(page4)들에 저장된 LSB 데이터가 무효화된다. 따라서, 본 발명의 실시 예에 따른 플래시 저장 장치(1200)는 제 4 페이지(page4)들에 저장된 LSB 데이터를 백업할 필요가 없다. 이는 도 8 및 도 9에서 설명된 바와 유사하므로, 자세한 설명은 생략된다. 결국, 본 발명의 기술적 사상은 복수의 페이지들을 하나의 프로그램 단위로 하는 경우에도 적용될 수 있다.
Ⅳ. 짝을 이루는 LSB 페이지와 MSB 페이지를 순차적으로 프로그램하는 플래시 저장 장치
도 13 내지 도 15는 짝을 이루는 LSB 페이지와 MSB 페이지를 순차적으로 프로그램하는 본 발명의 일 실시 예에 따른 플래시 저장 장치를 설명하는 도면들이다.
설명의 편의상, 도 13 내지 도 15에서 설명될 플래시 저장 장치는 도 10 내지 도 12의 플래시 저장 장치와 유사하다고 가정된다. 다만, 도 10 내지 도 12의 플래시 저장 장치가 제 1 페이지(page1)에서 제 9 페이지(page9)의 순서로 프로그램 동작이 수행되는데 반하여, 도 13 내지 도 15의 플래시 저장 장치는 짝을 이루는 LSB 페이지와 MSB 페이지가 순차적으로 프로그램된다고 가정된다.
예를 들어, 도 13 내지 도 15에서, 제 1 페이지(page1)에 대한 LSB 프로그램 동작이 수행된 후, 제 1 페이지(page1)와 짝을 이루는 제 3 페이지(page3)에 대한 프로그램 동작이 수행된다고 가정된다. 또한, 이 후에 제 2 페이지(page2)에 대한 LSB 프로그램 동작이 수행되며, 제 2 페이지(page2)와 짝을 이루는 제 5 페이지(page5)에 대한 프로그램 동작이 수행된다고 가정된다.
또한, 도 13 내지 도 15에서, "제 3 데이터(Data3) → 제 4 데이터(Data4) → 제 6 데이터(Data6) → 제 8 데이터(Data8) → 제 1 데이터(Data1) → 제 2 데이터(Data2) → 제 5 데이터(Data5) → 제 7 데이터(Data7)"의 순서대로 호스트(1100, 도 2 참조)로부터 쓰기 요청된다고 가정된다. 또한, 도 13 내지 도 15에서, 플래시 저장 장치(1200, 도 2 참조)는 하나의 페이지를 프로그램 단위로 하여 프로그램 동작을 수행한다.
도 13을 참조하면, 쓰기 요청된 데이터들(Data3, Data4, Data6, Data8, Data1, Data2, Data5, Data7)은 버퍼 메모리(1225)에 저장된다.
도 14를 참조하면, 호스트(1100)로부터의 쓰기 요청 순서에 따라, 쓰기 요청된 데이터들(Data3, Data4, Data6, Data8, Data1, Data2, Data5, Data7)이 플래시 메모리(1210)에 순차적으로 프로그램되는 경우의 실시 예가 도시되어 있다.
도 14에 도시된 바와 같이, 쓰기 요청된 데이터들(Data3, Data4, Data6, Data8, Data1, Data2, Data5, Data7)이 플래시 메모리(1210)의 제 7 페이지들(page7)에 순차적으로 프로그램되는 경우, 제 1 다이(Die1) 및 제 2 다이(Die2)의 6 개의 제 4 페이지들(page4)에 대한 LSB 백업 동작이 수행되어야 한다.
이는 제 7 페이지들(page7)에 대한 MSB 프로그램 동작이 수행되는 경우, 제 7 페이지들(page7)과 짝을 이루는 제 4 페이지들(page4)에 저장된 대부분의 LSB 데이터들이 유효한 데이터이기 때문이다.
예를 들어, 제 1 제 1 다이(Die1)의 제 3 플래인(Plane3)의 제 7 페이지(page7)에 대한 MSB 프로그램 동작이 수행되는 경우, 이와 짝을 이루는 제 4 페이지(page4)에 저장된 LSB 데이터는 여전히 유효한 데이터이다. 따라서, 이 경우, 제 1 다이(Die1)의 제 3 플래인(Plane3)의 제 4 페이지(page4)에 저장된 LSB 데이터에 대한 백업 동작이 수행되어야 한다. 이는 도 6 및 도 7에서 설명된 일반적인 경우와 유사하므로, 자세한 설명은 생략된다.
도 15를 참조하면, 본 발명의 실시 예에 따른 플래시 저장 장치(1200)의 프로그램 방식의 일 예가 도시되어 있다. 본 발명의 실시 예에 따른 플래시 저장 장치(1200)는 제 7 페이지들(page7)에 대한 프로그램 동작들이 수행되기 전에, 이와 짝을 이루는 제 4 페이지들(page4)에 저장된 LSB 데이터가 무효화 되도록, 쓰기 요청된 데이터들에 대한 프로그램 순서를 조정한다.
예를 들어, 도 15에 도시된 바와 같이, 본 발명의 실시 예에 따른 플래시 저장 장치(1200)는 쓰기 요청된 데이터들에 대한 프로그램 순서를 "제 1 데이터(Data1) → 제 2 데이터(Data2) → 제 5 데이터(Data5) → 제 7 데이터(Data7) → 제 3 데이터(Data3) → 제 8 데이터(Data8) → 제 4 데이터(Data4) → 제 6 데이터(Data6)"로 변경한다.
이 경우, 플래시 저장 장치(1200)는 도 14와 달리, 2 개의 제 4 페이지들(page4)에 대한 LSB 백업 동작을 필요로 한다. 이는 쓰기 요청된 데이터의 프로그램 순서를 조정함으로써, 대부분의 LSB 데이터가 짝을 이루는 MSB 데이터에 대한 프로그램 동작이 수행되기 전에 무효화 되었기 때문이다.
예를 들어, 제 1 다이(Die1)의 제 3 플래인(Plane3)의 제 4 페이지(page4)의 LSB 데이터는 제 1 다이(Die1)의 제 1 플래인(Plane1)의 제 7 페이지(page4)의 MSB 프로그램 동작에 의하여 무효화 된다. 따라서, 제 1 다이(Die1)의 제 3 플래인(Plane3)의 제 7 페이지(page7)에 대한 MSB 프로그램 동작이 수행되는 경우, 이와 짝을 이루는 제 4 페이지(page4)에 대한 LSB 백업 동작이 수행될 필요가 없다. 이는 도 8 및 도 9에서 설명된 바와 유사하므로, 자세한 설명은 생략된다.
도 16은 본 발명의 실시 예에 따른 플래시 저장 장치(1200)의 프로그램 동작을 설명하기 위한 순서도이다. 이하에서는, 도 2 내지 도 15를 참조하여, 본 발명의 실시 예에 따른 플래시 저장 장치(1200)의 프로그램 동작이 설명된다.
S110 단계에서, 플래시 저장 장치(1200)는 호스트(1100)로부터 쓰기 요청을 수신한다. 이 경우, 플래시 저장 장치(1200)는 쓰기 요청된 데이터 및 쓰기 요청된 데이터의 논리 페이지 번호(LPN)를 함께 수신한다.
S120 단계에서, 플래시 저장 장치(1200)는 쓰기 요청된 데이터의 논리 페이지 번호(LPN)와 맵핑 테이블(1222, 도 2 참조)에서 관리되는 논리 페이지 번호(LPN)를 비교한다. 예를 들어, 플래시 저장 장치(1200)의 맵핑 체크기(1223, 도 2 참조)는 이러한 비교 동작을 수행한다.
S130 단계에서, 쓰기 요청된 데이터의 논리 페이지 번호(LPN)가 맵핑 테이블(1222, 도 2 참조)에서 관리되는 논리 페이지 번호(LPN)와 일치하는 지의 여부가 판단된다.
쓰기 요청된 데이터의 논리 페이지 번호(LPN)가 맵핑 테이블(1222, 도 2 참조)에서 관리되는 논리 페이지 번호(LPN)와 일치하는 경우, 호스트(1100)로부터 쓰기 요청된 순서에 따라 프로그램 동작이 수행된다(S160 단계).
쓰기 요청된 데이터의 논리 페이지 번호(LPN)가 맵핑 테이블(1222, 도 2 참조)에서 관리되는 논리 페이지 번호(LPN)와 일치하는 경우, 맵핑 체크기(1223)는 해당 논리 페이지 번호(LPN)에 대응하는 물리 페이지가 LSB 페이지인 지의 여부를 확인한다(S140 단계).
해당 논리 페이지 번호(LPN)에 대응하는 물리 페이지가 LSB 페이지인 경우, 백업 관리기(1224)는 LSB 백업 동작이 최소화 되도록, 쓰기 요청된 데이터의 프로그램 순서를 조정한다(S150 단계). 예를 들어, 도 2 내지 도 9에서 설명된 바와 같이, 백업 관리기(1224)는 소정 LSB 페이지와 짝을 이루는 MSB페이지에 대한 프로그램 동작이 수행되기 이전에, 소정 LSB 페이지에 저장된 데이터를 무효화시킨다. 따라서, 본 발명의 실시 예에 따른 플래시 저장 장치(1200)는 LSB 백업 동작을 최소화할 수 있다.
또한, 도 10 내지 도 15에서 설명된 바와 같이, 본 발명의 실시 예에 따른 프로그램 순서 조정 방법은 복수의 페이지를 프로그램 단위로 하는 경우에 적용될 수 있으며, 짝을 이루는 LSB 페이지와 MSB 페이지가 순차적으로 프로그램되는 경우에도 적용될 수 있다.
한편, 해당 논리 페이지 번호(LPN)에 대응하는 물리 페이지가 MSB 페이지인 경우, 호스트(1100)로부터 쓰기 요청된 순서에 따라 프로그램 동작이 수행된다(S160 단계).
Ⅴ. 플래시 저장 장치의 적용 예
도 17은 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 메모리 카드 시스템에 적용한 예를 보여주는 블록도이다. 메모리 카드 시스템(10000)은 호스트(11000)와 메모리 카드(12000)를 포함한다. 호스트(11000)는 호스트 컨트롤러(11100), 호스트 접속 유닛(11200), 그리고 디램(11300)을 포함한다.
호스트(11000)는 메모리 카드(12000)에 데이터를 쓰거나, 메모리 카드(12000)에 저장된 데이터를 읽는다. 호스트 컨트롤러(11100)는 커맨드(예를 들면, 쓰기 커맨드), 호스트(11000) 내의 클록 발생기(도시되지 않음)에서 발생한 클록 신호(CLK), 그리고 데이터(DAT)를 호스트 접속 유닛(1120000)을 통해 메모리 카드(12000)로 전송한다. 디램(11300)은 호스트(11000)의 메인 메모리이다.
메모리 카드(12000)는 카드 접속 유닛(12100), 카드 컨트롤러(12200), 그리고 플래시 메모리(1230)를 포함한다. 카드 컨트롤러(12200)는 카드 접속 유닛(12100)을 통해 수신된 커맨드에 응답하여, 카드 컨트롤러(12200) 내에 있는 클록 발생기(도시되지 않음)에서 발생한 클록 신호에 동기하여 데이터를 플래시 메모리(1230)에 저장한다. 플래시 메모리(1230)는 호스트(11000)로부터 전송된 데이터를 저장한다. 예를 들어, 호스트(11000)가 디지털 카메라인 경우에는 영상 데이터를 저장한다.
도 17에 도시된 메모리 카드 시스템(10000)은, 앞에서 설명한 바와 같이, 쓰기 요청된 데이터의 올드 데이터가 저장된 LSB 페이지의 페어드 MSB 페이지에 대한 프로그램 동작이 수행되기 전에, 쓰기 요청된 데이터에 대한 프로그램 동작을 먼저 수행한다. 따라서, LSB 백업 동작이 최소화될 수 있다.
도 18은 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 솔리드 스테이트 드라이브(SSD) 시스템에 적용한 예를 보여주는 블록도이다. 도 18을 참조하면, SSD 시스템(20000)은 호스트(21000)와 SSD(22000)를 포함한다. 호스트(21000)는 호스트 인터페이스(4111), 호스트 컨트롤러(21200), 그리고 디램(21300)을 포함한다.
호스트(21000)는 SSD(22000)에 데이터를 쓰거나, SSD(22000)에 저장된 데이터를 읽는다. 호스트 컨트롤러(21200)는 커맨드, 어드레스, 제어 신호 등의 신호(SGL)를 호스트 인터페이스(4111)를 통해 SSD(22000)로 전송한다. 디램(21300)은 호스트(21000)의 메인 메모리이다.
SSD(22000)는 호스트 인터페이스(22110)를 통해 호스트(21000)와 신호(SGL)를 주고 받으며, 전원 커넥터(power connector, 6221)를 통해 전원을 입력받는다. SSD(22000)는 복수의 불휘발성 메모리(22010~220n0), SSD 컨트롤러(221000), 그리고 보조 전원 장치(22200)를 포함할 수 있다. 여기에서, 복수의 불휘발성 메모리(22010~220n0)는 낸드 플래시 메모리 이외에도 PRAM, MRAM, ReRAM, FRAM 등으로 구현될 수 있다.
복수의 불휘발성 메모리(22010~220n0)는 SSD(22000)의 저장 매체로서 사용된다. 복수의 불휘발성 메모리(22010~220n0)는 복수의 채널(CH1~CHn)을 통해 SSD 컨트롤러(221000)와 연결될 수 있다. 하나의 채널에는 하나 또는 그 이상의 불휘발성 메모리가 연결될 수 있다. 하나의 채널에 연결되는 불휘발성 메모리는 동일한 데이터 버스에 연결될 수 있다.
SSD 컨트롤러(22100)는 호스트 인터페이스(22110)를 통해 호스트(21000)와 신호(SGL)를 주고 받는다. 여기에서, 신호(SGL)에는 커맨드, 어드레스, 데이터 등이 포함될 수 있다. SSD 컨트롤러(22100)는 호스트(21000)의 커맨드에 따라 해당 불휘발성 메모리에 데이터를 쓰거나 해당 불휘발성 메모리로부터 데이터를 읽어낸다. SSD 컨트롤러(22100)의 내부 구성은 도 18를 참조하여 상세하게 설명된다.
보조 전원 장치(22200)는 전원 커넥터(22110)를 통해 호스트(21000)와 연결된다. 보조 전원 장치(22200)는 호스트(21000)로부터 전원(PWR)을 입력받고, 충전할 수 있다. 한편, 보조 전원 장치(22200)는 SSD(22000) 내에 위치할 수도 있고, SSD(22000) 밖에 위치할 수도 있다. 예를 들면, 보조 전원 장치(22200)는 메인 보드에 위치하며, SSD(22000)에 보조 전원을 제공할 수도 있다.
도 19는 도 18에 도시된 SSD 컨트롤러(22100)의 구성을 예시적으로 보여주는 블록도이다. 도 19를 참조하면, SSD 컨트롤러(22100)는 NVM 인터페이스(22110), 호스트 인터페이스(22120), 백업 관리 모듈(22130), 제어 유닛(22140), 그리고 에스램(22150)을 포함한다.
NVM 인터페이스(22110)는 호스트(21000)의 메인 메모리로부터 전달된 데이터를 각각의 채널들(CH1~CHn)로 스캐터링(Scattering)한다. 그리고 NVM 인터페이스(22110)는 불휘발성 메모리(22010~220n0)로부터 읽은 데이터를 호스트 인터페이스(22120)를 경유하여 호스트(21000)로 전달한다.
호스트 인터페이스(22120)는 호스트(21000)의 프로토콜에 대응하여 SSD(22000)와의 인터페이싱을 제공한다. 호스트 인터페이스(22120)는 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI) 등을 이용하여 호스트(21000)와 통신할 수 있다. 또한, 호스트 인터페이스(22120)는 호스트(21000)가 SSD(22000)를 하드 디스크 드라이브(HDD)로 인식하도록 지원하는 디스크 에뮬레이션(Disk Emulation) 기능을 수행할 수 있다.
백업 관리 모듈(22130)은, 도 1에서 설명된 바와 같이, 쓰기 요청된 데이터의 논리 주소(LA: Logical Address)가 불휘발성 메모리에 저장된 데이터 중 소정 데이터에 대응하는 논리 주소(LA)와 일치하는 지의 여부를 판단한다. 쓰기 요청된 데이터의 논리 주소(LA)가 불휘발성 메모리의 소정 데이터의 논리 주소(LA)와 일치하는 경우, 백업 관리 모듈(22130)은 LSB 백업 동작을 최소화하기 위하여, 쓰기 요청된 데이터가 프로그램될 순서(또는, 쓰기 요청된 데이터가 프로그램될 위치)를 조정한다.
제어 유닛(22140)이 전반적인 동작을 수행하는 데 필요한 워크 메모리(work memory)로 사용될 수 있다. 또한, DRAM(22140)은 데이터를 임시로 저장하기 위한 버퍼로 사용될 수 있다.
에스램(22150)은 불휘발성 메모리(22010~220n0)의 효율적 관리를 위해 사용되는 소프트웨어(S/W)를 구동하는 데 사용될 수 있다. 또한, 에스램(22150)은 호스트(21000)의 메인 메모리로부터 입력받은 메타 데이터를 저장하거나, 캐시 데이터를 저장할 수 있다. 서든 파워 오프 동작 시에, 에스램(22150)에 저장된 메타 데이터나 캐시 데이터는 보조 전원 장치(22200)를 이용하여 불휘발성 메모리(22010~220n0)에 저장될 수 있다.
다시 도 18을 참조하면, 본 발명의 실시 예에 따른 SSD 시스템(20000)은, 앞에서 설명한 바와 같이, 쓰기 요청된 데이터의 올드 데이터가 저장된 LSB 페이지의 페어드 MSB 페이지에 대한 프로그램 동작이 수행되기 전에, 쓰기 요청된 데이터에 대한 프로그램 동작을 먼저 수행한다. 따라서, LSB 백업 동작이 최소화될 수 있다.
도 20은 본 발명의 실시 예에 따른 메모리 시스템을 전자 장치로 구현한 예를 보여주는 블록도이다. 여기에서, 전자 장치(30000)는 퍼스널 컴퓨터(PC)로 구현되거나, 노트북 컴퓨터, 휴대폰, PDA(Personal Digital Assistant), 그리고 카메라 등과 같은 휴대용 전자 장치로 구현될 수 있다.
도 20을 참조하면, 전자 장치(30000)는 메모리 시스템(31000), 전원 장치(32000), 보조 전원 장치(32500), 중앙처리장치(33000), 디램(340000), 그리고 사용자 인터페이스(35000)를 포함한다. 메모리 시스템(31000)은 플래시 메모리(31100) 및 메모리 컨트롤러(31200)를 포함한다. 메모리 시스템(31000)은 전자 장치(30000)에 내장될 수 있다.
앞에서 설명한 바와 같이, 본 발명에 따른 전자 장치(30000)는 쓰기 요청된 데이터의 올드 데이터가 저장된 LSB 페이지의 페어드 MSB 페이지에 대한 프로그램 동작이 수행되기 전에, 쓰기 요청된 데이터에 대한 프로그램 동작을 먼저 수행한다. 따라서, LSB 백업 동작이 최소화될 수 있다.
본 발명의 실시 예에 따른 메모리 시스템은 2차원 구조를 갖는 플래시 메모리 뿐만 아니라, 3차원 구조를 갖는 플래시 메모리에도 적용될 수 있다.
도 21은 본 발명에 사용되는 플래시 메모리를 예시적으로 보여주는 블록도이다. 도 21를 참조하면, 플래시 메모리(40000)는 3차원 셀 어레이(41100), 데이터 입출력 회로(41200), 어드레스 디코더(41300), 그리고 제어 로직(41400)을 포함한다.
3차원 셀 어레이(41100)는 복수의 메모리 블록(BLK1~BLKz)을 포함한다. 각각의 메모리 블록은 3차원 구조 (또는 수직 구조)를 가질 수 있다. 2차원 구조 (또는 수평 구조)를 갖는 메모리 블록에서는, 메모리 셀들이 기판과 수평 방향으로 형성된다. 그러나 3차원 구조를 갖는 메모리 블록에서는, 메모리 셀들이 기판과 수직 방향으로 형성된다. 각각의 메모리 블록은 플래시 메모리(21000)의 소거 단위를 이룬다.
데이터 입출력 회로(41200)는 복수의 비트 라인(BLs)을 통해 3차원 셀 어레이(41100)와 연결된다. 데이터 입출력 회로(41200)는 외부로부터 데이터(DATA)를 입력받거나, 3차원 셀 어레이(41100)로부터 읽은 데이터(DATA)를 외부로 출력한다. 어드레스 디코더(41300)는 복수의 워드 라인(WLs) 및 선택 라인(GSL, SSL)을 통해 3차원 셀 어레이(41100)와 연결된다. 어드레스 디코더(41300)는 어드레스(ADDR)를 입력받고 워드 라인을 선택한다.
제어 로직(41400)은 플래시 메모리(40000)의 프로그램, 읽기, 소거 등의 동작을 제어한다. 예를 들면, 제어 로직(41400)은 프로그램 동작 시에, 어드레스 디코더(41300)를 제어함으로 선택 워드 라인으로 프로그램 전압이 제공되도록 하고, 데이터 입출력 회로(41200)를 제어함으로 데이터가 프로그램되도록 할 수 있다.
도 22는 도 21에 도시된 메모리 블록(BLK1)의 3차원 구조를 예시적으로 보여주는 사시도이다. 도 22을 참조하면, 메모리 블록(BLK1)은 기판(SUB)과 수직 방향으로 형성되어 있다. 기판(SUB)에는 n+ 도핑 영역이 형성된다. 기판(SUB) 위에는 게이트 전극막(gate electrode layer)과 절연막(insulation layer)이 교대로 증착된다. 그리고 게이트 전극막(gate electrode layer)과 절연막(insulation layer) 사이에는 전하 저장막(charge storage layer)이 형성될 수 있다.
게이트 전극막과 절연막을 수직 방향으로 패터닝(vertical patterning)하면, V자 모양의 필라(pillar)가 형성된다. 필라는 게이트 전극막과 절연막을 관통하여 기판(SUB)과 연결된다. 필라(Pillar)의 외곽 부분(O)은 채널 반도체로 구성될 수 있고, 내부(I)는 실리콘 산화물(Silicon Oxide)과 같은 절연 물질로 구성될 수 있다.
계속해서 도 22를 참조하면, 메모리 블록(BLK1)의 게이트 전극막(gate electrode layer)은 접지 선택 라인(GSL), 복수의 워드 라인(WL1~WL8), 그리고 스트링 선택 라인(SSL)에 연결될 수 있다. 그리고 메모리 블록(BLK1)의 필라(pillar)는 복수의 비트 라인(BL1~BL3)과 연결될 수 있다. 도 22에서는, 하나의 메모리 블록(BLK1)이 2개의 선택 라인(GSL, SSL), 8개의 워드 라인(WL1~WL8), 그리고 3개의 비트 라인(BL1~BL3)을 갖는 것으로 도시되어 있으나, 실제로는 이것들보다 더 많거나 적을 수 있다.
도 23은 도 22에 도시된 메모리 블록(BLK1)의 등가 회로도이다. 도 23을 참조하면, 비트 라인(BL1~BL3)과 공통 소스 라인(CSL) 사이에는 낸드 스트링(NS11~NS33)이 연결되어 있다. 각각의 낸드 스트링(예를 들면, NS11)은 스트링 선택 트랜지스터(SST), 복수의 메모리 셀(MC1~MC8), 그리고 접지 선택 트랜지스터(GST)를 포함한다.
스트링 선택 트랜지스터(SST)는 스트링 선택 라인(String Selection Line; SSL1~SSL3)에 연결되어 있다. 복수의 메모리 셀(MC1~MC8)은 각각 대응하는 워드 라인(WL1~WL8)에 연결되어 있다. 그리고 접지 선택 트랜지스터(GST)는 접지 선택 라인(Ground Selection Line; GSL1~GSL3)에 연결되어 있다. 스트링 선택 트랜지스터(SST)는 비트 라인(BL)에 연결되고, 접지 선택 트랜지스터(GST)는 공통 소스 라인(CSL; Common Source Line)에 연결되어 있다.
계속해서 도 23을 참조하면, 동일 높이의 워드 라인(예를 들면, WL1)은 공통으로 연결되어 있고, 접지 선택 라인(GSL1~GSL3) 및 스트링 선택 라인(SSL1~SSL3)은 분리되어 있다. 제 1 워드 라인(WL1)에 연결되어 있고 낸드 스트링(NS11, NS12, NS13)에 속해 있는 메모리 셀(이하, 페이지라 함)을 프로그램하는 경우에는, 제 1 워드 라인(WL1)과 제 1 선택 라인(SSL1, GSL1)이 선택된다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
100: 메모리 시스템
110: 호스트
120: 저장 장치
121: 불휘발성 메모리
122: 컨트롤러
123: 백업 관리 모듈
1000: 플래시 메모리 시스템
1100: 호스트
1200: 플래시 저장 장치
1210: 플래시 메모리
1220: 컨트롤러
1221: 플래시 변환 계층
1222: 맵핑 테이블
1223: 맵핑 체크기
1224: 백업 관리기
1225: 버퍼 메모리
110: 호스트
120: 저장 장치
121: 불휘발성 메모리
122: 컨트롤러
123: 백업 관리 모듈
1000: 플래시 메모리 시스템
1100: 호스트
1200: 플래시 저장 장치
1210: 플래시 메모리
1220: 컨트롤러
1221: 플래시 변환 계층
1222: 맵핑 테이블
1223: 맵핑 체크기
1224: 백업 관리기
1225: 버퍼 메모리
Claims (10)
- 불휘발성 메모리; 및
상기 불휘발성 메모리를 제어하는 컨트롤러를 포함하며,
상기 컨트롤러는 쓰기 요청된 데이터의 논리 주소가 상기 불휘발성 메모리에 저장된 데이터 중 소정의 데이터의 논리 주소와 일치하는 경우, 상기 소정의 데이터가 속하는 페이지와 동일한 워드 라인을 공유하는 페이지에 대한 프로그램 동작이 수행되기 전에, 상기 쓰기 요청된 데이터에 대한 프로그램 동작을 수행하도록 상기 불휘발성 메모리를 제어하는 불휘발성 메모리 장치. - 제 1 항에 있어서,
상기 컨트롤러는 상기 쓰기 요청된 데이터의 논리 주소가 상기 소정의 데이터의 논리 주소가 일치하며 그리고 상기 소정의 데이터가 속하는 페이지가 LSB 페이지인 경우에, 상기 소정의 데이터가 속하는 LSB 페이지와 동일한 워드 라인을 공유하는 MSB 페이지에 대한 MSB 프로그램 동작이 수행되기 전에, 상기 소정의 데이터를 무효화하는 불휘발성 메모리 장치. - 제 1 항에 있어서,
상기 컨트롤러는
상기 쓰기 요청된 데이터의 논리 주소를 상기 불휘발성 메모리에 저장된 데이터의 논리 주소와 비교하는 맵핑 체크기; 및
상기 맵핑 체크기로부터 전송된 비교 결과에 기초하여, 상기 쓰기 요청된 데이터가 상기 불휘발성 메모리에 프로그램될 위치를 결정하는 백업 관리기를 포함하는 불휘발성 메모리 장치. - 제 3 항에 있어서,
상기 컨트롤러는
상기 불휘발성 메모리에 저장된 데이터의 논리 주소, 상기 불휘발성 메모리에 저장된 데이터 물리 주소 및 상기 불휘발성 메모리에 저장된 데이터가 저장된 페이지가 LSB 페이지인 지에 관한 정보를 관리하는 맵핑 테이블을 더 포함하는 불휘발성 메모리 장치. - 제 4 항에 있어서,
상기 맵핑 체크기는 상기 쓰기 요청된 데이터의 논리 주소를 상기 맵핑 테이블에서 관리되는 논리 주소와 비교하고, 상기 쓰기 요청된 데이터의 논리 주소가 상기 맵핑 테이블에서 관리되는 논리 주소와 일치하는 경우에 상기 불휘발성 메모리에 저장된 데이터 중 상기 논리 주소에 대응하는 데이터가 저장된 페이지가 LSB 페이지인 지의 여부를 확인하는 불휘발성 메모리 장치. - 제 5 항에 있어서,
상기 쓰기 요청된 데이터의 논리 주소가 상기 맵핑 테이블에서 관리되는 논리 주소와 일치하며 상기 불휘발성 메모리 장치에 저장된 데이터 중 상기 논리 주소에 대응하는 데이터가 저장된 페이지가 LSB 페이지인 경우에, 상기 백업 관리기는 상기 LSB 페이지와 동일한 워드 라인을 공유하는 MSB 페이지에 대한 MSB 프로그램 동작이 수행되기 전에 상기 쓰기 요청된 데이터에 대한 프로그램 동작을 수행하는 불휘발성 메모리 장치. - 제 5 항에 있어서,
상기 쓰기 요청된 데이터의 논리 주소가 상기 맵핑 테이블에서 관리되는 논리 주소와 일치하며 상기 불휘발성 메모리 장치에 저장된 데이터 중 상기 논리 주소에 대응하는 데이터가 저장된 페이지가 MSB 페이지인 경우에, 상기 백업 관리기는 호스트로부터의 쓰기 요청 순서에 따라 상기 쓰기 요청된 데이터에 대한 프로그램 동작을 수행하는 불휘발성 메모리 장치. - 제 5 항에 있어서,
상기 쓰기 요청된 데이터의 논리 주소가 상기 맵핑 테이블에서 관리되는 논리 주소와 일치하지 않는 경우에, 상기 백업 관리기는 호스트로부터의 쓰기 요청 순서에 따라 상기 쓰기 요청된 데이터에 대한 프로그램 동작을 수행하는 불휘발성 메모리 장치. - 제 1 항에 있어서,
상기 컨트롤러는 복수의 페이지 단위로 프로그램 동작을 수행하도록 상기 불휘발성 메모리를 제어하는 불휘발성 메모리 장치. - 멀티 레벨 셀 방식을 지원하는 불휘발성 메모리 장치의 프로그램 방법에 있어서:
쓰기 요청된 데이터를 순차적으로 수신하는 단계;
상기 쓰기 요청된 데이터의 논리 주소를 맵핑 테이블에서 관리되는 논리 주소와 비교하는 단계; 및
상기 쓰기 요청된 데이터의 논리 주소가 상기 맵핑 테이블에서 관리되는 논리 주소들 중 소정의 논리 주소와 일치하는 경우, 상기 소정의 논리 주소가 속하는 물리 페이지와 동일한 워드 라인을 공유하는 페이지에 대한 프로그램 동작이 수행되기 전에 상기 쓰기 요청된 데이터에 대한 프로그램 동작을 수행하는 불휘발성 메모리 장치의 프로그램 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120052591A KR20130128685A (ko) | 2012-05-17 | 2012-05-17 | 불휘발성 메모리 장치 및 그것의 프로그램 방법 |
US13/830,785 US20130311711A1 (en) | 2012-05-17 | 2013-03-14 | Nonvolatile memory device and program method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120052591A KR20130128685A (ko) | 2012-05-17 | 2012-05-17 | 불휘발성 메모리 장치 및 그것의 프로그램 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20130128685A true KR20130128685A (ko) | 2013-11-27 |
Family
ID=49582284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120052591A KR20130128685A (ko) | 2012-05-17 | 2012-05-17 | 불휘발성 메모리 장치 및 그것의 프로그램 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20130311711A1 (ko) |
KR (1) | KR20130128685A (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160071703A (ko) * | 2014-12-12 | 2016-06-22 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR20170125178A (ko) * | 2016-05-03 | 2017-11-14 | 삼성전자주식회사 | Raid 스토리지 장치 및 그것의 관리 방법 |
KR20180000381A (ko) * | 2016-06-22 | 2018-01-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10248503B2 (en) | 2016-12-28 | 2019-04-02 | SK Hynix Inc. | Data storage device and operating method thereof |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9606803B2 (en) | 2013-07-15 | 2017-03-28 | Texas Instruments Incorporated | Highly integrated scalable, flexible DSP megamodule architecture |
KR102344834B1 (ko) | 2014-09-24 | 2021-12-29 | 삼성전자주식회사 | 솔리드 스테이트 드라이브 및 이를 포함하는 컴퓨팅 시스템 |
KR20160074237A (ko) * | 2014-12-18 | 2016-06-28 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
JP6205386B2 (ja) * | 2015-05-18 | 2017-09-27 | 長瀬産業株式会社 | 半導体装置及び情報書込/読出方法 |
KR20160149463A (ko) * | 2015-06-18 | 2016-12-28 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 시스템 및 비휘발성 메모리 시스템의 동작방법 |
US9715342B2 (en) * | 2015-07-03 | 2017-07-25 | Xitore, Inc. | Apparatus, system, and method of logical address translation for non-volatile storage memory |
CN108614744B (zh) * | 2016-12-09 | 2021-12-03 | 北京兆易创新科技股份有限公司 | 基于NAND flash的掉电保护方法和装置 |
KR102474035B1 (ko) * | 2017-08-18 | 2022-12-06 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR102389432B1 (ko) * | 2017-11-07 | 2022-04-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
KR20190099570A (ko) * | 2018-02-19 | 2019-08-28 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
CN115495287B (zh) * | 2022-11-16 | 2024-04-09 | 珠海妙存科技有限公司 | 一种mlc nand的备份数据方法、装置及电子设备 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7752381B2 (en) * | 2005-05-24 | 2010-07-06 | Micron Technology, Inc. | Version based non-volatile memory translation layer |
US7366013B2 (en) * | 2005-12-09 | 2008-04-29 | Micron Technology, Inc. | Single level cell programming in a multiple level cell non-volatile memory device |
KR100850515B1 (ko) * | 2007-01-24 | 2008-08-05 | 삼성전자주식회사 | 멀티레벨 셀 플래시 메모리를 갖는 메모리 시스템 및그것의 프로그램 방법 |
KR100889781B1 (ko) * | 2007-04-30 | 2009-03-20 | 삼성전자주식회사 | 멀티-비트 데이터를 저장하는 메모리 시스템, 그것의프로그램 방법, 그것을 포함한 컴퓨팅 시스템 |
KR101077339B1 (ko) * | 2007-12-28 | 2011-10-26 | 가부시끼가이샤 도시바 | 반도체 기억 장치 |
TWI485563B (zh) * | 2008-09-17 | 2015-05-21 | Silicon Motion Inc | 快閃記憶裝置及其運作方法 |
KR101556779B1 (ko) * | 2009-04-17 | 2015-10-02 | 삼성전자주식회사 | 저장 장치의 액세스 방법 |
JP5002629B2 (ja) * | 2009-08-28 | 2012-08-15 | 株式会社東芝 | メモリシステム |
US8489804B1 (en) * | 2009-09-14 | 2013-07-16 | Marvell International Ltd. | System for using dynamic random access memory to reduce the effect of write amplification in flash memory |
CN102034552A (zh) * | 2009-09-25 | 2011-04-27 | 威刚科技(苏州)有限公司 | 存储装置与其资料处理方法 |
US9037777B2 (en) * | 2009-12-22 | 2015-05-19 | Densbits Technologies Ltd. | Device, system, and method for reducing program/read disturb in flash arrays |
US8549214B2 (en) * | 2010-02-17 | 2013-10-01 | Marvell World Trade Ltd. | Protection against data corruption for multi-level memory cell (MLC) flash memory |
US8589766B2 (en) * | 2010-02-24 | 2013-11-19 | Apple Inc. | Codeword remapping schemes for non-volatile memories |
US8356137B2 (en) * | 2010-02-26 | 2013-01-15 | Apple Inc. | Data storage scheme for non-volatile memories based on data priority |
US8935458B2 (en) * | 2011-01-05 | 2015-01-13 | Intel Corporation | Drive assisted system checkpointing via system restore points |
US8954647B2 (en) * | 2011-01-28 | 2015-02-10 | Apple Inc. | Systems and methods for redundantly storing metadata for non-volatile memory |
US8843693B2 (en) * | 2011-05-17 | 2014-09-23 | SanDisk Technologies, Inc. | Non-volatile memory and method with improved data scrambling |
US9298603B2 (en) * | 2011-09-09 | 2016-03-29 | OCZ Storage Solutions Inc. | NAND flash-based storage device and methods of using |
US20130103889A1 (en) * | 2011-10-25 | 2013-04-25 | Ocz Technology Group Inc. | Page-buffer management of non-volatile memory-based mass storage devices |
-
2012
- 2012-05-17 KR KR1020120052591A patent/KR20130128685A/ko not_active Application Discontinuation
-
2013
- 2013-03-14 US US13/830,785 patent/US20130311711A1/en not_active Abandoned
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20160071703A (ko) * | 2014-12-12 | 2016-06-22 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR20170125178A (ko) * | 2016-05-03 | 2017-11-14 | 삼성전자주식회사 | Raid 스토리지 장치 및 그것의 관리 방법 |
KR20180000381A (ko) * | 2016-06-22 | 2018-01-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10248503B2 (en) | 2016-12-28 | 2019-04-02 | SK Hynix Inc. | Data storage device and operating method thereof |
Also Published As
Publication number | Publication date |
---|---|
US20130311711A1 (en) | 2013-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101979392B1 (ko) | 불휘발성 메모리 장치 및 그것의 프로그램 방법 | |
KR20130128685A (ko) | 불휘발성 메모리 장치 및 그것의 프로그램 방법 | |
KR102501751B1 (ko) | 메모리 콘트롤러, 불휘발성 메모리 시스템 및 그 동작방법 | |
KR102239356B1 (ko) | 클록 제어 유닛 또는 전원 제어 유닛을 포함하는 저장 장치와 메모리 시스템, 그리고 그것의 동작 방법 | |
KR101861170B1 (ko) | 마이그레이션 관리자를 포함하는 메모리 시스템 | |
KR101891164B1 (ko) | 프로그램 스케줄러를 포함하는 플래시 메모리 장치 | |
US9870836B2 (en) | Memory system and method of controlling nonvolatile memory | |
US20150347291A1 (en) | Flash memory based storage system and operating method | |
KR102568203B1 (ko) | 비휘발성 메모리 장치 | |
CN110389720B (zh) | 存储装置及其操作方法 | |
US11036425B2 (en) | Storage devices, data storage systems and methods of operating storage devices | |
KR102140512B1 (ko) | 불휘발성 메모리 장치, 불휘발성 메모리 장치를 포함하는 불휘발성 메모리 시스템 및 불휘발성 메모리 시스템의 동작 방법 | |
KR102637478B1 (ko) | 오픈 채널 솔리드 스테이트 드라이브, 이를 포함하는 비휘발성 메모리 시스템 및 오픈 채널 솔리드 스테이트 드라이브의 파워 로스 프로텍션 방법 | |
CN112306385A (zh) | 存储器控制器及其操作方法 | |
US10998053B2 (en) | Memory device and operating method thereof for applying a channel precharge voltage to bit lines after a sensing operation | |
US11586379B2 (en) | Memory system and method of operating the same | |
CN112447234B (zh) | 存储器控制器及其操作方法 | |
KR102716788B1 (ko) | 메모리 시스템, 메모리 장치 및 메모리 컨트롤러 | |
KR20150059058A (ko) | 호스트 ftl을 갖는 사용자 장치 및 그것의 오픈 블록의 페이지 오프셋 전송 방법 | |
EP4350526A1 (en) | Memory controller with improved mapping information management, memory system including the same, and operating method of memory controller | |
US11404137B1 (en) | Memory system and operating method of memory system | |
US20240118813A1 (en) | Semiconductor memory device and operating method of the semiconductor memory device | |
US20240203505A1 (en) | Memory device and method of managing temperature of the same | |
KR20230138805A (ko) | 저장 장치 및 이의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |