KR20130063244A - 비휘발성 메모리 시스템 - Google Patents

비휘발성 메모리 시스템 Download PDF

Info

Publication number
KR20130063244A
KR20130063244A KR1020110129662A KR20110129662A KR20130063244A KR 20130063244 A KR20130063244 A KR 20130063244A KR 1020110129662 A KR1020110129662 A KR 1020110129662A KR 20110129662 A KR20110129662 A KR 20110129662A KR 20130063244 A KR20130063244 A KR 20130063244A
Authority
KR
South Korea
Prior art keywords
ftl
meta
nonvolatile memory
memory device
header
Prior art date
Application number
KR1020110129662A
Other languages
English (en)
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 KR1020110129662A priority Critical patent/KR20130063244A/ko
Publication of KR20130063244A publication Critical patent/KR20130063244A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

비휘발성 메모리 시스템은 제 1 비휘발성 메모리 장치, 제 1 비휘발성 메모리 장치에 비하여 저속으로 쓰기 동작을 수행하고 제 1 비휘발성 메모리 장치와 이종인 제 2 비휘발성 메모리 장치, 및 제 2 비휘발성 메모리 장치로 하여금 호스트로부터 입력되는 데이터를 저장하도록 제어하고 제 1 비휘발성 메모리 장치로 하여금 상기 데이터와 연계되는 FTL 메타 데이터를 저장하도록 제어하는 컨트롤러를 포함하고, 제 1 비휘발성 메모리 장치에는 FTL 메타 데이터가 청크 단위로 분할된 FTL 메타 청크들 및 FTL 메타 청크들을 관리하는 FTL 메타 헤더가 저장된다. 이에, 비휘발성 메모리 시스템은 FTL 메타 데이터를 효율적으로 관리할 수 있고, 서든 파워 오프 발생시 FTL 메타 데이터를 용이하게 복구할 수 있다.

Description

비휘발성 메모리 시스템 {NON-VOLATILE MEMORY SYSTEM}
본 발명은 반도체 메모리 시스템에 관한 것으로, 보다 상세하게는 이종의 비휘발성 메모리 장치들을 구비하는 비휘발성 메모리 시스템에 관한 것이다.
반도체 메모리 장치는 전원이 공급되지 않는 상태에서 데이터를 보존할 수 있는지에 따라 휘발성 메모리 장치와 비휘발성 메모리 장치로 구분될 수 있다. 최근에는, 반도체 메모리 장치의 소형화 및 대용량 추세에 따라, 비휘발성 메모리 장치 중에서 낸드 플래시 메모리 장치(NAND flash memory device)가 소형화 및 대용량에 적합하여 널리 사용되고 있다. 그러나, 낸드 플래시 메모리 장치는 하드 디스크와 달리 덮어쓰기(overwrite) 동작을 지원하지 않기 때문에, 쓰기 전 이레이즈 동작(erase before write operation)을 블록 단위로 수행해야 하고, 기 설정된 조건 하에서 유효 데이터와 무효 데이터를 분류하여 병합하기 위한 병합 동작(merge operation)을 수행해야 하는 등의 여러 제약을 가지고 있다.
하지만, 호스트(host) 측면에서는 낸드 플래시 메모리 장치가 하드 디스크와 유사하게 동작하는 것이 요구되므로, 낸드 플래시 메모리 장치는 플래시 변환 계층(Flash Translation Layer; FTL)을 이용하여 일반적인 파일 시스템을 지원하고 있다. 이 때, FTL은 데이터와 연계되는 FTL 메타 데이터(FTL meta data)에 기초하여 어드레스 맵핑 동작을 수행하고 있다. 일반적으로, FTL이 어드레스 맵핑 동작을 수행함에 있어서 FTL 메타 데이터는 데이터에 비하여 갱신(update)이 자주 이루어진다. 이에, 비휘발성 메모리 시스템은 상기 FTL 메타 데이터를 저장하기 위하여 덮어쓰기 동작을 수행할 수 있는 비휘발성 메모리 장치 예를 들어, 피램(Phase-change Random Access Memory; PRAM) 장치 등을 더 포함할 수 있다.
그러나, 상기 비휘발성 메모리 장치가 덮어쓰기 동작을 수행하더라도, 상기 덮어쓰기 동작에는 물성적인 특성에 따른 한계(예를 들어, 피램의 경우 상변화에 요구되는 시간 등)가 있기 때문에, 상기 덮어쓰기 동작 중에 서든 파워 오프(sudden power off)가 발생하는 경우, FTL 메타 데이터가 유실될 수 있다. 이러한 경우, 호스트에 의하여 데이터에 대한 접근이 이루어질 때, 상기 데이터와 연계된 FTL 메타 데이터가 유실된 이유로, 그에 따른 에러가 발생할 수 있다.
본 발명의 일 목적은 적어도 하나 이상의 낸드 플래시 메모리 장치를 구비하고, 상기 낸드 플래시 메모리 장치와 이종인(heterogeneous) 비휘발성 메모리 장치에 FTL 메타 데이터를 저장함에 있어서, FTL 메타 데이터를 효율적으로 관리하여 비휘발성 메모리 장치에서 FTL 메타 데이터에 대한 덮어쓰기 동작 중에 서든 파워 오프가 발생하더라도 FTL 메타 데이터를 용이하게 복구할 수 있는 비휘발성 메모리 시스템을 제공하는 것이다. 다만, 본 발명의 해결하고자 하는 과제는 이에 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
본 발명의 일 목적을 달성하기 위하여, 본 발명의 실시예들에 따른 비휘발성 메모리 시스템은 제 1 비휘발성 메모리 장치, 상기 제 1 비휘발성 메모리 장치에 비하여 저속으로 쓰기 동작을 수행하고 상기 제 1 비휘발성 메모리 장치와 이종인(heterogeneous) 제 2 비휘발성 메모리 장치, 및 상기 제 2 비휘발성 메모리 장치로 하여금 호스트(host)로부터 입력되는 데이터를 저장하도록 제어하고, 상기 제 1 비휘발성 메모리 장치로 하여금 상기 데이터와 연계되는 플래시 변환 계층(Flash Translation layer; FTL) 메타 데이터를 저장하도록 제어하는 컨트롤러를 포함할 수 있다. 이 때, 상기 제 1 비휘발성 메모리 장치에는 상기 FTL 메타 데이터가 청크(chunk) 단위로 분할된 복수의 FTL 메타 청크들 및 상기 FTL 메타 청크들을 관리하는 FTL 메타 헤더가 저장될 수 있다.
일 실시예에 의하면, 상기 컨트롤러는 상기 FTL 메타 헤더 및 상기 FTL 메타 청크들 중에서 일부를 캐싱(caching)하기 위하여 휘발성 메모리 장치로 구현되는 캐시를 포함할 수 있다.
일 실시예에 의하면, 상기 제 1 비휘발성 메모리 장치는 덮어쓰기 동작(overwrite operation)을 수행할 수 있는 비휘발성 메모리 장치일 수 있다.
일 실시예에 의하면, 상기 제 1 비휘발성 메모리 장치는 피램(Phase-change Random Access Memory; PRAM) 장치이고, 상기 제 2 비휘발성 메모리 장치는 낸드 플래시 메모리(NAND flash memory) 장치일 수 있다.
일 실시예에 의하면, 상기 비휘발성 메모리 시스템은 임베디드 멀티미디어 카드(Embedded Multi Media Card; EMMC)로 제조될 수 있다.
일 실시예에 의하면, 상기 제 1 비휘발성 메모리 장치는 상기 FTL 메타 청크들을 저장하기 위한 복수의 FTL 메타 청크 슬롯(slot)들 및 상기 FTL 메타 헤더를 저장하기 위한 복수의 FTL 메타 헤더 슬롯들을 포함할 수 있다.
일 실시예에 의하면, 상기 FTL 메타 청크 슬롯들 중에서 적어도 하나 이상은 비어 있는 FTL 메타 청크 슬롯 또는 무효 FTL 메타 청크 슬롯이고, 상기 FTL 메타 헤더 슬롯들 중에서 적어도 하나 이상은 비어 있는 FTL 메타 헤더 슬롯 또는 무효 FTL 메타 헤더 슬롯일 수 있다.
일 실시예에 의하면, 갱신된 FTL 메타 청크는 상기 비어 있는 FTL 메타 청크 슬롯 또는 상기 무효 FTL 메타 청크 슬롯에 저장되고, 갱신전 FTL 메타 청크가 저장된 유효 FTL 메타 청크 슬롯은 상기 무효 FTL 메타 청크 슬롯으로 변경될 수 있다.
일 실시예에 의하면, 갱신된 FTL 메타 헤더는 상기 비어 있는 FTL 메타 헤더 슬롯 또는 상기 무효 FTL 메타 헤더 슬롯에 저장되고, 갱신전 FTL 메타 헤더가 저장된 유효 FTL 메타 헤더 슬롯은 상기 무효 FTL 메타 헤더 슬롯으로 변경될 수 있다.
일 실시예에 의하면, 상기 제 1 비휘발성 메모리 장치가 쓰기 동작을 수행하는 도중에 서든 파워 오프(sudden power off)가 발생하면, 상기 컨트롤러는 상기 FTL 메타 헤더 슬롯들에 저장된 상기 FTL 메타 헤더들의 에이지 정보(age information)를 비교하여, 오래된 FTL 메타 헤더를 유효 FTL 메타 헤더로 결정할 수 있다.
본 발명의 실시예들에 따른 비휘발성 메모리 시스템은 적어도 하나 이상의 낸드 플래시 메모리 장치를 구비하고, 상기 낸드 플래시 메모리 장치와 이종(heterogeneous)으로서 덮어쓰기 동작을 수행할 수 있는 비휘발성 메모리 장치에 FTL 메타 데이터(FTL meta data)를 저장할 수 있다. 이 때, 본 발명의 실시예들에 따른 비휘발성 메모리 시스템은 FTL 메타 데이터를 청크(chunk) 단위로 분할한 복수의 FTL 메타 청크들 및 복수의 FTL 메타 청크들을 관리하는 FTL 메타 헤더(FTL meta header)에 기초하여 FTL 메타 데이터를 효율적으로 관리할 수 있다. 그 결과, 비휘발성 메모리 장치가 덮어쓰기 동작을 수행할 때, 서든 파워 오프가 발생하더라도 FTL 메타 데이터를 용이하게 복구할 수 있다. 다만, 본 발명의 효과는 이에 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
도 1은 본 발명의 실시예들에 따른 비휘발성 메모리 시스템을 나타내는 블록도이다.
도 2a 내지 도 2c는 비휘발성 메모리 장치가 FTL 메타 데이터에 대한 덮어쓰기 동작을 수행할 때, 서든 파워 오프가 발생하는 일 예를 나타내는 도면들이다.
도 3은 도 1의 비휘발성 메모리 시스템에서 제 1 비휘발성 메모리 장치에 FTL 메타 데이터가 FTL 메타 헤더와 복수의 FTL 메타 청크들로 저장되는 일 예를 나타내는 도면이다.
도 4는 도 1의 비휘발성 메모리 시스템에서 컨트롤러의 캐시에 FTL 메타 헤더와 복수의 FTL 메타 청크들 중의 일부가 캐싱(caching)되는 일 예를 나타내는 도면이다.
도 5는 도 1의 비휘발성 메모리 시스템에서 제 1 비휘발성 메모리 장치에 FTL 메타 데이터가 저장되는 일 예를 나타내는 순서도이다.
도 6a 내지 도 6c는 도 1의 비휘발성 메모리 시스템에서 제 1 비휘발성 메모리 장치에 FTL 메타 데이터가 저장되는 일 예를 나타내는 도면들이다.
도 7은 도 1의 비휘발성 메모리 시스템에서 제 1 비휘발성 메모리 장치에 FTL 메타 데이터가 복구되는 일 예를 나타내는 순서도이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미이다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미인 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 비휘발성 메모리 시스템을 나타내는 블록도이다.
도 1을 참조하면, 비휘발성 메모리 시스템(100)은 컨트롤러(120), 제 1 비휘발성 메모리 장치(140) 및 제 2 비휘발성 메모리 장치(160)를 포함할 수 있다. 도 1에서는 1개의 제 1 비휘발성 메모리 장치(140)와 1개의 제 2 비휘발성 메모리 장치(160)가 도시되었지만, 이것은 설명의 편의를 위한 것으로서, 비휘발성 메모리 시스템(100)은 적어도 하나 이상의 제 1 비휘발성 메모리 장치(140)와 적어도 하나 이상의 제 2 비휘발성 메모리 장치(160)를 포함하는 것으로 해석되어야 할 것이다.
제 1 비휘발성 메모리 장치(140)는 쓰기 동작이 고속으로 수행되는 비휘발성 메모리 장치일 수 있고, 제 2 비휘발성 메모리 장치(160)는 쓰기 동작이 저속으로 수행되는 비휘발성 메모리 장치일 수 있다. 즉, 제 1 비휘발성 메모리 장치(140)와 제 2 비휘발성 메모리 장치(160)는 이종의 비휘발성 메모리 장치들에 해당한다. 구체적으로, 제 2 비휘발성 메모리 장치(160)는 낸드 플래시 메모리(NAND flash memory) 장치에 상응할 수 있는데, 낸드 플래시 메모리 장치는 플래시 변환 계층(Flash Translation Layer; FTL)을 이용하여 일반적인 파일 시스템을 지원한다. 이 때, FTL은 데이터(DAT)와 연계되는 FTL 메타 데이터(META)에 기초하여 어드레스 맵핑 동작을 수행하고, FTL이 어드레스 맵핑 동작을 수행함에 있어서 FTL 메타 데이터(META)는 데이터(DAT)에 비하여 갱신(update)이 자주 이루어지기 때문에, 비휘발성 메모리 시스템(100)은 호스트(host)로부터 유저 데이터(I/O_DAT)가 입력되면, 제 2 비휘발성 메모리 장치(160)에 데이터(DAT)를 저장하고, 제 1 비휘발성 메모리 장치(140)에는 FTL 메타 데이터(META)를 저장할 수 있다. 그러므로, 제 1 비휘발성 메모리 장치(140)는 제 2 비휘발성 메모리 장치(160)에 비하여 고속으로 쓰기 동작을 수행할 필요가 있으므로, 덮어쓰기 동작을 수행할 수 있는 비휘발성 메모리 장치로 선택될 수 있다. 예를 들어, 제 1 비휘발성 메모리 장치(140)는 피램(Phase-change Random Access Memory; PRAM) 장치로 선택될 수 있다. 다만, 이것은 하나의 예시로서 제 1 비휘발성 메모리 장치들(140)의 종류가 피램(PRAM) 장치로 한정되는 것은 아니다. 한편, 제 2 비휘발성 메모리 장치(160)는 낸드 플래시 메모리 장치로 선택되므로, 비휘발성 메모리 시스템(100)은 소형으로 제조되면서도 대용량의 저장 공간을 제공할 수 있다.
컨트롤러(120)는 호스트(미도시)로부터 유저 데이터(I/O_DAT)가 입력되면, 제 2 비휘발성 메모리 장치(160)로 하여금 유저 데이터(I/O_DAT)에 상응하는 데이터(DAT)를 저장하게 하고, 제 1 비휘발성 메모리 장치(140)로 하여금 상기 데이터(DAT)와 연계되는 FTL 메타 데이터(META)를 저장하도록 제어할 수 있다. 한편, 본 명세서에서는 FTL 메타 데이터(META)를 어드레스 맵핑 데이터(address mapping data)에 상응하는 것으로 설명하고 있으나, 낸드 플래시 메모리 장치에서 사용되는 FTL 메타 데이터(META)는 어드레스 맵핑 데이터 외에도 요구되는 조건에 따라 다양한 데이터(예를 들어, 웨어 레벨링(wear-leveling) 데이터 등)들을 더 포함할 수 있음은 당연하다. 구체적으로, 컨트롤러(120)는 제 1 비휘발성 메모리 장치(140)에 FTL 메타 데이터(META)를 저장함에 있어서, 상기 FTL 메타 데이터(META)를 청크(chunk) 단위로 분할한 복수의 FTL 메타 청크들 및 상기 FTL 메타 청크들을 관리하는 FTL 메타 헤더로 저장할 수 있다. FTL 메타 헤더는 상기 FTL 메타 청크들에 대한 정보를 모두 포함하기 때문에, 호스트에 의하여 데이터(DAT)에 대한 접근(access)이 이루어질 때, 그와 연계된 FTL 메타 데이터(META)가 참조됨에 있어서, 제 1 비휘발성 메모리 장치(140)에서 해당 FTL 메타 청크가 바로 참조되게 할 수 있다. 즉, 비휘발성 메모리 시스템(100)은 FTL 메타 데이터(META) 즉, 어드레스 맵핑 데이터가 제 1 비휘발성 메모리 장치(140)에 청크 단위로 분할되어 있는 위치들을 관리하는 FTL 메타 헤더를 이용함으로써 FTL 메타 데이터(META)를 효율적으로 관리할 수 있다.
일 실시예에서, 컨트롤러(120)는 FTL 메타 헤더 및 FTL 메타 청크들 중에서 일부를 캐싱(caching)하기 위한 캐시(122)를 포함할 수 있다. 일반적으로, 제 2 비휘발성 메모리 장치(160)에 저장된 데이터(DAT)들은 접근되는 빈도가 서로 동일하지 않고, 호스트에 의해 수행되는 어플리케이션 등에 따라 주로 접근되는 데이터(DAT)들은 서로 상이할 수밖에 없다. 이에, 컨트롤러(120)는 캐시(122)를 구비함으로써, FTL 메타 헤더 및 접근되는 빈도가 잦은 데이터(DAT)들과 연계된 FTL 메타 청크들을 제 1 비휘발성 메모리 장치(140)에서 캐시(122)로 로딩(loading)시킬 수 있다. 이 때, 캐시(122)는 고속으로 동작할 수 있어야 하므로, 휘발성 메모리 장치로 구현되는 것이 바람직하다. 예를 들어, 캐시(122)는 디램(Dynamic Random Access Memory; DRAM) 장치, 에스램(Static Random Access Memory; SRAM) 장치 등으로 구현될 수 있다. 그 결과, 비휘발성 메모리 시스템(100)은 호스트에 의하여 데이터(DAT)에 대한 접근이 이루어질 때, 제 1 비휘발성 메모리 장치(140)에 접근하는 횟수를 줄일 수 있으므로 고속으로 동작할 수 있다. 한편, 비휘발성 메모리 시스템(100)은 임베디드 멀티미디어 카드(Embedded Multi-Media Card; EMMC)로 제조될 수 있으나, 그에 한정되는 것은 아니다. 예를 들어, 비휘발성 메모리 시스템(100)은 SD 카드(secure digital card), CF 카드(compact flash card), 메모리 스틱(memory stick), XD 픽쳐 카드(XD picture card) 등으로도 제조될 수 있다.
비휘발성 메모리 시스템(100)에서, 제 1 비휘발성 메모리 장치(140)는 FTL 메타 청크들을 저장하기 위한 복수의 FTL 메타 청크 슬롯들 및 FTL 메타 헤더를 저장하기 위한 복수의 FTL 메타 헤더 슬롯들을 포함할 수 있다. 본 명세서에서는 슬롯(slot)이라는 표현을 사용하였지만, 상기 슬롯은 제 1 비휘발성 메모리 장치(140) 내의 소정의 물리적인(physical) 위치 또는 논리적인(logical) 위치를 의미하는 것으로 이해되어야 할 것이다. 이 때, FTL 메타 청크 슬롯들 중에서 적어도 하나 이상은 비어 있는(vacant) FTL 메타 청크 슬롯 또는 무효(invalid) FTL 메타 청크가 저장되어 있는 무효 FTL 메타 청크 슬롯이고, FTL 메타 헤더 슬롯들 중에서 적어도 하나 이상은 비어 있는 FTL 메타 헤더 슬롯 또는 무효 FTL 메타 헤더가 저장되어 있는 무효 FTL 메타 헤더 슬롯일 수 있다. 이것은 후술할 더블 플리핑 기술(double flipping technique)을 위한 것이다. 구체적으로, 더블 플리핑 기술은 갱신된 FTL 메타 청크를 비어 있는 FTL 메타 청크 슬롯 또는 무효 FTL 메타 청크 슬롯에 저장하고, 갱신전 FTL 메타 청크가 저장된 유효 FTL 메타 청크 슬롯을 무효 FTL 메타 청크 슬롯으로 변경시킬 수 있다. 마찬가지로, 더블 플리핑 기술은 갱신된 FTL 메타 헤더를 비어 있는 FTL 메타 헤더 슬롯 또는 무효 FTL 메타 헤더 슬롯에 저장하고, 갱신전 FTL 메타 헤더가 저장된 유효 FTL 메타 헤더 슬롯을 무효 FTL 메타 헤더 슬롯으로 변경시킬 수 있다.
다시 말하면, 비휘발성 메모리 시스템(100)에서는 갱신된 FTL 메타 청크가 갱신전 FTL 메타 청크가 저장된 유효 FTL 메타 청크 슬롯에 저장되는 것이 아니라, 비어 있는 FTL 메타 청크 슬롯 또는 무효 FTL 메타 청크 슬롯에 저장되고, 갱신전 FTL 메타 청크가 저장된 유효 FTL 메타 청크 슬롯이 무효 FTL 메타 청크 슬롯으로 변경됨으로써, 제 1 비휘발성 메모리 장치(140) 내에 갱신전 FTL 메타 청크와 갱신된 FTL 메타 청크가 일시적으로 모두 저장될 수 있다. 그 결과, 갱신전 FTL 메타 청크가 저장된 무효 FTL 메타 청크 슬롯에 다른 FTL 메타 청크가 저장되기 전까지는, 필요에 따라(예를 들어, FTL 메타 데이터 유실 등의 경우) 갱신전 FTL 메타 청크를 복구시킬 수 있다. 한편, 갱신전 FTL 메타 청크가 저장된 유효 FTL 메타 청크 슬롯이 무효 FTL 메타 청크 슬롯으로 변경되고, 갱신된 FTL 메타 청크가 소정의 FTL 메타 청크 슬롯(즉, 비어 있는 FTL 메타 청크 슬롯 또는 무효 FTL 메타 청크 슬롯)에 저장되기 때문에, 제 1 비휘발성 메모리 장치(140) 내의 FTL 메타 청크들 및 FTL 메타 청크 슬롯들에 대한 정보가 변경되므로, FTL 메타 헤더도 갱신되어야 한다. 이 때, 갱신된 FTL 메타 헤더도 갱신전 FTL 메타 헤더가 저장된 유효 FTL 메타 헤더 슬롯에 저장되는 것이 아니라, 비어 있는 FTL 메타 헤더 슬롯 또는 무효 FTL 메타 헤더 슬롯에 저장되고, 갱신전 FTL 메타 헤더가 저장된 유효 FTL 메타 헤더 슬롯이 무효 FTL 메타 헤더 슬롯으로 변경됨으로써, 제 1 비휘발성 메모리 장치(140) 내에 갱신전 FTL 메타 헤더와 갱신된 FTL 메타 헤더가 일시적으로 모두 저장될 수 있다. 그 결과, 갱신전 FTL 메타 헤더가 저장된 무효 FTL 메타 헤더 슬롯에 다른 FTL 메타 헤더가 저장되기 전까지는, 필요에 따라(예를 들어, FTL 메타 데이터 유실 등의 경우) 갱신전 FTL 메타 헤더를 복구시킬 수 있다. 일 실시예에서, FTL 메타 헤더 슬롯의 개수는 2개일 수 있다.
이러한 더블 플리핑 기술을 적용함으로써, 비휘발성 메모리 시스템(100)은 제 1 비휘발성 메모리 장치(140)가 쓰기 동작을 수행하는 도중에 서든 파워 오프(sudden power off)가 발생하면, FTL 메타 데이터(META)를 용이하게 복구시키는 기능을 제공할 수 있다. 예를 들어, 제 1 비휘발성 메모리 장치(140)가 FTL 메타 데이터(META)에 대한 쓰기 동작을 완료하기 전에 서든 파워 오프가 발생하는 경우, 해당 FTL 메타 데이터(META)는 제 1 비휘발성 메모리 장치(140)에 저장되지 않은 채 유실될 수 있다. 이 때, 호스트에 의하여 데이터(DAT)에 대한 접근이 이루어질 때, 상기 데이터(DAT)와 연계된 FTL 메타 데이터(META)가 유실된 경우, 그에 따른 에러(유저 데이터 유실 등)가 발생할 수 있다. 이는 제 1 비휘발성 메모리 장치(140)가 덮어쓰기 동작을 수행함으로써 고속으로 쓰기 동작을 수행하긴 하지만, 비휘발성 메모리 셀(cell)들의 물성적인 특성에 따른 시간이 소요되기 때문이다. 예를 들어, 피램(PRAM)의 경우 비휘발성 메모리 셀들의 상(phase) 변화 시간이 소요된다. 이와 같이, 제 1 비휘발성 메모리 장치(140)가 디램(DRAM) 장치, 에스램(SRAM) 장치와 같은 휘발성 메모리 장치에 비하여 고속으로 동작하지 못하기 때문에, 비휘발성 메모리 시스템(100)은 서든 파워 오프 발생시 FTL 메타 데이터(META)를 복구시키는 기능을 제공한다.
상술한 바와 같이, 비휘발성 메모리 시스템(100)이 서든 파워 오프 발생시 FTL 메타 데이터(META)를 복구시키는 기능을 제공할 수 있는 이유는 FTL 메타 데이터(META)가 FTL 메타 청크들 및 이를 관리하는 FTL 메타 헤더로 제 1 비휘발성 메모리 장치(140)에 저장되고, 비휘발성 메모리 시스템(100)이 제 1 비휘발성 메모리 장치(140)에 FTL 메타 청크들 및 FTL 메타 헤더를 저장함에 있어서 더블 플리핑 기술을 적용하고 있기 때문이다. 구체적으로, 비휘발성 메모리 시스템(100)은 제 1 비휘발성 메모리 장치(140)가 쓰기 동작을 수행하는 도중에 서든 파워 오프가 발생하면, 컨트롤러(120)로 하여금 FTL 메타 헤더 슬롯들에 저장된 FTL 메타 헤더들의 에이지 정보(age information)를 비교하여, 기 설정된 우선순위(예를 들어, 가장 오래된 FTL 메타 헤더에 최상위 우선순위를 설정할 수 있음)에 따라 상기 FTL 메타 헤더들 중에서 하나를 유효 FTL 메타 헤더로 결정할 수 있다. 예를 들어, FTL 메타 헤더들이 갱신될 때마다 에이지를 감소시키는 경우, 서든 파워 오프 발생시 FTL 메타 헤더 슬롯들에 저장된 FTL 메타 헤더들 중에서 에이지가 가장 큰 FTL 메타 헤더를 유효 FTL 메타 헤더로 결정할 수 있고, FTL 메타 헤더들이 갱신될 때마다 에이지를 증가시키는 경우, 서든 파워 오프 발생시 FTL 메타 헤더 슬롯들에 저장된 FTL 메타 헤더들 중에서 에이지가 가장 작은 FTL 메타 헤더를 유효 FTL 메타 헤더로 결정할 수 있다. 한편, FTL 메타 헤더 슬롯들의 개수는 2개가 바람직하나, 그 이상이 구비될 수도 있다. 이와 같이, 비휘발성 메모리 시스템(100)은 FTL 메타 데이터(META)를 청크 단위로 분할한 FTL 메타 청크들 및 FTL 메타 청크들을 관리하는 FTL 메타 헤더에 기초하여 FTL 메타 데이터(META)를 효율적으로 관리할 수 있고, 제 1 비휘발성 메모리 장치(140)가 덮어쓰기 동작을 수행할 때, 서든 파워 오프가 발생하더라도 FTL 메타 데이터(META)를 복구할 수 있다. 그 결과, 비휘발성 메모리 시스템(100)은 고속으로 동작하면서도 높은 동작 안정성을 확보할 수 있다.
도 2a 내지 도 2c는 비휘발성 메모리 장치가 FTL 메타 데이터에 대한 덮어쓰기 동작을 수행할 때, 서든 파워 오프가 발생하는 일 예를 나타내는 도면들이다.
도 2a 내지 도 2c를 참조하면, 종래의 비휘발성 메모리 장치 내에서 FTL 메타 데이터가 저장되는 일 예가 도시되어 있다. 도 2a에 도시된 바와 같이, 종래의 비휘발성 메모리 장치에서는 FTL 메타 데이터를 갱신할 때에 갱신전 FTL 메타 데이터가 저장된 슬롯(즉, 위치)에 갱신된 FTL 메타 데이터를 덮어쓰는 방식을 사용하고 있다. 그 결과, 도 2b에 도시된 바와 같이, 갱신전 FTL 메타 데이터가 저장된 슬롯에 갱신된 FTL 메타 데이터에 대한 덮어쓰기 동작이 수행될 때 서든 파워 오프가 발생하면, 갱신전 FTL 메타 데이터는 물론 갱신된 메타 데이터도 유실될 수 있고, 그에 따른 에러가 발생할 수 있다. 이것은 비휘발성 메모리 장치에 구비되는 비휘발성 메모리 셀들의 물성적인 특성(예를 들어, 피램의 경우 상 변화 시간 등)에 따른 시간이 상대적으로 길게 소요되기 때문이다. 그 결과, 도 2c에 도시된 바와 같이, 종래의 비휘발성 메모리 시스템은 서든 파워 오프 이후 호스트에 의하여 데이터에 대한 접근이 다시 이루어질 때, 상기 데이터와 연계된 FTL 메타 데이터가 참조될 수 없게 되어, 그에 따른 에러가 발생한다는 문제점이 있다. 반면에, 본 발명의 실시예들에 따른 비휘발성 메모리 시스템(100)은 FTL 메타 데이터를 청크 단위로 분할한 FTL 메타 청크들 및 FTL 메타 청크들을 관리하는 FTL 메타 헤더에 기초하여 더블 플리핑 기술을 적용함으로써, 종래의 비휘발성 메모리 시스템에서 발생하는 문제점을 해결할 수 있다. 그 결과, 본 발명의 실시예들에 따른 비휘발성 메모리 시스템(100)은 높은 동작 안정성을 확보할 수 있다. 이에 대해서는 이하 구체적으로 설명하기로 한다.
도 3은 도 1의 비휘발성 메모리 시스템에서 제 1 비휘발성 메모리 장치에 FTL 메타 데이터가 FTL 메타 헤더와 복수의 FTL 메타 청크들로 저장되는 일 예를 나타내는 도면이고, 도 4는 도 1의 비휘발성 메모리 시스템에서 컨트롤러의 캐시에 FTL 메타 헤더와 복수의 FTL 메타 청크들 중의 일부가 캐싱되는 일 예를 나타내는 도면이다.
도 3을 참조하면, 제 1 비휘발성 메모리 장치(140)의 데이터 구조(300)는 FTL 메타 헤더 슬롯부(320)와 FTL 메타 청크 슬롯부(340)를 포함할 수 있다. 도 3에서는 FTL 메타 헤더 슬롯부(320)가 2개의 FTL 메타 헤더 슬롯들을 포함하고, FTL 메타 청크 슬롯부(340)가 24개의 FTL 메타 청크 슬롯들을 포함하는 것으로 도시되어 있으나, FTL 메타 헤더 슬롯 및 FTL 메타 청크 슬롯의 개수는 이에 한정되는 것이 아니다. 도 3에 도시된 바와 같이, FTL 메타 헤더 슬롯부(320)는 유효 FTL 메타 헤더가 저장되어 있는 유효 FTL 메타 헤더 슬롯(322) 및 무효 FTL 메타 헤더가 저장되어 있는 무효 FTL 메타 헤더 슬롯(324)을 포함할 수 있고, FTL 메타 청크 슬롯부(340)는 유효 FTL 메타 청크가 저장되어 있는 유효 FTL 메타 청크 슬롯(342) 및 무효 FTL 메타 청크가 저장되어 있는 무효 FTL 메타 청크 슬롯(344)을 포함할 수 있다. 한편, 도 3에는 설명의 편의를 위하여, 비어 있는(vacant) FTL 메타 청크 슬롯이 도시되어 있지 않지만, FTL 메타 청크 슬롯부(340)가 비어 있는 FTL 메타 청크 슬롯을 포함할 수 있음은 당연하다. 상술한 바와 같이, 도 1의 비휘발성 메모리 시스템(100)은 더블 플리핑 기술을 적용하고 있다. 따라서, 유효 FTL 메타 청크 슬롯(예를 들어, 1번)에 저장되어 있는 FTL 메타 청크를 갱신한다고 가정할 때, 갱신된 FTL 메타 청크는 1번 FTL 메타 청크 슬롯에 저장되는 것이 아니라, 무효 FTL 메타 청크 슬롯들(즉, 9번, 13번, 22번, 24번) 중에서 하나에 저장되고, 1번 FTL 메타 청크 슬롯은 무효 FTL 메타 청크 슬롯으로 변경될 수 있다. 이 때, 무효 FTL 메타 청크 슬롯들을 선택하는 방식은 라운드 로빈(round robin) 방식으로 수행될 수 있으나, 그에 한정되는 것은 아니다. 이후, 무효 FTL 메타 헤더 슬롯(예를 들어, 2번)에 저장되어 있는 FTL 메타 헤더를 갱신해야 하므로, 갱신된 FTL 메타 헤더는 2번 FTL 메타 헤더 슬롯에 저장되는 것이 아니라, 무효 FTL 메타 헤더 슬롯(즉, 1번)에 저장되고, 2번 FTL 메타 헤더 슬롯은 무효 FTL 메타 헤더 슬롯으로 변경될 수 있다. 한편, 비휘발성 메모리 시스템(100)은 고속으로 동작하기 위하여 컨트롤러(120)에 캐시(122)를 구비함으로써 FTL 메타 헤더 및 FTL 메타 청크들 중에서 일부를 캐싱할 수 있다. 즉, 도 4에 도시된 바와 같이, 캐시(122)의 데이터 구조(400)는 유효 FTL 메타 헤더가 저장되어 있는 유효 FTL 메타 헤더 슬롯(422) 및 접근되는 빈도가 잦은 데이터들과 연계된 FTL 메타 청크들이 저장되어 있는 유효 FTL 메타 청크 슬롯들(422_1, 422_2, 422_3)을 포함할 수 있다. 그 결과, 비휘발성 메모리 시스템(100)은 호스트에 의하여 데이터에 대한 접근이 이루어질 때, 제 1 비휘발성 메모리 장치(140)에 접근하는 횟수를 줄일 수 있으므로, 고속으로 동작할 수 있다.
도 5는 도 1의 비휘발성 메모리 시스템에서 제 1 비휘발성 메모리 장치에 FTL 메타 데이터가 저장되는 일 예를 나타내는 순서도이고, 도 6a 내지 도 6c는 도 1의 비휘발성 메모리 시스템에서 제 1 비휘발성 메모리 장치에 FTL 메타 데이터가 저장되는 일 예를 나타내는 도면들이다.
도 5를 참조하면, 도 1의 비휘발성 메모리 시스템(100)의 메타 데이터 관리 방법은 FTL 메타 데이터를 저장하기 위하여 무효 FTL 메타 청크 슬롯을 선택(Step S110)하고, 갱신된 FTL 메타 청크를 선택된 무효 FTL 메타 청크 슬롯에 저장(Step S120)하며, 갱신전 FTL 메타 청크가 저장된 유효 FTL 메타 청크 슬롯을 무효 FTL 메타 청크 슬롯으로 변경(Step S130)할 수 있다. 이후, 도 1의 비휘발성 메모리 시스템(100)의 메타 데이터 관리 방법은 무효 FTL 메타 헤더 슬롯을 선택(Step S140)하고, 갱신된 FTL 메타 헤더를 선택된 무효 FTL 메타 헤더 슬롯에 저장(Step S150)하며, 갱신전 FTL 메타 헤더가 저장된 유효 FTL 메타 헤더 슬롯을 무효 FTL 메타 헤더 슬롯으로 변경(Step S160)할 수 있다. 이 때, FTL 메타 헤더 슬롯의 개수가 2개인 경우에는 상기 단계(Step S140)는 생략될 수 있다. 이하, 도 1의 비휘발성 메모리 시스템(100)의 메타 데이터 관리 방법에 대하여 도 6a 내지 도 6c를 참조하여 설명하기로 한다. 상술한 바와 같이, 제 1 비휘발성 메모리 장치(140)의 데이터 구조(500)는 FTL 메타 헤더 슬롯부(520)와 FTL 메타 청크 슬롯부(540)를 포함할 수 있다. 이 때, FTL 메타 헤더 슬롯부(520)는 2개의 FTL 메타 헤더 슬롯들을 포함하고, FTL 메타 청크 슬롯부(540)가 24개의 FTL 메타 청크 슬롯들을 포함하며, FTL 메타 헤더 슬롯부(520)는 유효 FTL 메타 헤더 슬롯(522) 및 적어도 하나 이상의 무효 FTL 메타 헤더 슬롯(524)을 포함하고, FTL 메타 청크 슬롯부(540)는 유효 FTL 메타 청크 슬롯(542) 및 적어도 하나 이상의 무효 FTL 메타 청크 슬롯(544)을 포함하는 것으로 가정한다.
도 6a는 유효 FTL 메타 청크 슬롯(예를 들어, 9번)에 저장되어 있는 FTL 메타 청크가 갱신되는 것을 보여주고 있다. 즉, 도 6a에 도시된 바와 같이, 갱신된 FTL 메타 청크는 갱신전 FTL 메타 청크가 저장된 9번 FTL 메타 청크 슬롯에 저장되는 것이 아니라, 무효 FTL 메타 청크 슬롯(예를 들어, 13번)에 저장되고, 9번 FTL 메타 청크 슬롯은 무효 FTL 메타 청크 슬롯(544)으로 변경될 수 있다. 그 결과, 도 6b에 도시된 바와 같이, 9번 FTL 메타 청크 슬롯은 무효 FTL 메타 청크 슬롯(544)이 되고, 13번 FTL 메타 청크 슬롯은 갱신된 FTL 메타 청크가 저장된 유효 FTL 메타 청크 슬롯(542)이 될 수 있다. 한편, 제 1 비휘발성 메모리 장치(140) 내의 FTL 메타 청크들 및 FTL 메타 청크 슬롯들에 대한 정보가 변경되었으므로, FTL 메타 헤더도 갱신되어야 한다. 이 때, 갱신된 FTL 메타 헤더도 갱신전 FTL 메타 헤더가 저장된 2번 FTL 메타 헤더 슬롯에 저장되는 것이 아니라, 무효 FTL 메타 헤더 슬롯(예를 들어, 1번)에 저장되고, 2번 FTL 메타 헤더 슬롯은 무효 FTL 메타 헤더 슬롯(524)으로 변경될 수 있다. 그 결과, 도 6c에 도시된 바와 같이, 2번 FTL 메타 헤더 슬롯은 무효 FTL 메타 헤더 슬롯(524)이 되고, 1번 FTL 메타 헤더 슬롯은 갱신된 FTL 메타 헤더가 저장된 유효 FTL 메타 청크 슬롯(522)이 될 수 있다. 이와 같이, 도 1의 비휘발성 메모리 시스템(100)의 메타 데이터 관리 방법은 더블 플리핑 기술을 적용함으로써, 도 1의 비휘발성 메모리 시스템(100)을 고속으로 동작시킬 수 있고, FTL 메타 데이터를 효율적으로 관리할 수 있다.
도 7은 도 1의 비휘발성 메모리 시스템에서 제 1 비휘발성 메모리 장치에 FTL 메타 데이터가 복구되는 일 예를 나타내는 순서도이다.
도 7을 참조하면, 도 1의 비휘발성 메모리 시스템(100)의 메타 데이터 관리 방법은 FTL 메타 데이터에 대한 덮어쓰기 동작 중에 서든 파워 오프가 발생한 경우에 FTL 메타 데이터를 복구하기 위하여, 제 1 FTL 메타 헤더를 독출(Step S220)하고, 제 2 FTL 메타 헤더를 독출(Step S240)하며, 제 1 FTL 메타 헤더와 제 2 FTL 메타 헤더의 에이지 정보(age information)를 비교(Step S260)할 수 있다. 이 때, 도 1의 비휘발성 메모리 시스템(100)의 메타 데이터 관리 방법은 제 1 및 제 2 FTL 메타 헤더들 중에서 오래된 FTL 메타 헤더를 유효 FTL 메타 헤더로 결정(Step S280)할 수 있다.
상기 단계(Step S260)를 수행함에 있어서, 도 1의 비휘발성 메모리 시스템(100)의 메타 데이터 관리 방법은 FTL 메타 헤더들이 갱신될 때마다 에이지를 감소시키고, 서든 파워 오프 발생시 FTL 메타 헤더 슬롯들에 저장된 FTL 메타 헤더들 중에서 에이지가 가장 큰 FTL 메타 헤더를 유효 FTL 메타 헤더로 결정할 수 있다. 또는, 도 1의 비휘발성 메모리 시스템(100)의 메타 데이터 관리 방법은 FTL 메타 헤더들이 갱신될 때마다 에이지를 증가시키고, 서든 파워 오프 발생시 FTL 메타 헤더 슬롯들에 저장된 FTL 메타 헤더들 중에서 에이지가 가장 작은 FTL 메타 헤더를 유효 FTL 메타 헤더로 결정할 수 있다. 다만, 도 7에서는 FTL 메타 헤더 슬롯의 개수가 2개인 것을 가정하여 설명한 것으로서, FTL 메타 헤더 슬롯의 개수가 3개 이상인 경우에, 도 1의 비휘발성 메모리 시스템(100)의 메타 데이터 관리 방법은 복수의 FTL 메타 헤더들을 독출하고, 상기 FTL 메타 헤더들의 에이지 정보를 비교하여, 기 설정된 우선순위(예를 들어, 가장 오래된 FTL 메타 헤더에 최상위 우선순위를 설정할 수 있음)에 따라 상기 FTL 메타 헤더들 중에서 하나를 유효 FTL 메타 헤더로 결정할 수 있다.
이와 같이, 도 1의 비휘발성 메모리 시스템(100)의 메타 데이터 관리 방법은 FTL 메타 청크들 및 이를 관리하는 FTL 메타 헤더에 기초한 더블 플리핑 기술을 적용하고 있으므로, 상기 단계들(Step S120, Step S140, Step S160, Step 180)을 수행함으로써, 서든 파워 오프 발생시 FTL 메타 데이터를 용이하게 복구시킬 수 있다. 그 결과, 도 1의 비휘발성 메모리 시스템(100)은 높은 동작 안정성을 확보할 수 있다. 이상, 본 발명의 실시예들에 따른 비휘발성 메모리 시스템 및 이의 메타 데이터 관리 방법에 대해 도면을 참조하여 설명하였지만, 상기 설명은 예시적인 것으로서 본 발명의 기술적 사상을 벗어나지 않는 범위에서 해당 기술 분야에서 통상의 지식을 가진 자에 의하여 수정 및 변경될 수 있을 것이다.
본 발명은 이종의 비휘발성 메모리 장치들을 포함하는 비휘발성 메모리 시스템에 적용될 수 있다. 따라서, 본 발명은 멀티미디어 카드(multi media card), 임베디드 멀티미디어 카드(embedded multi media card), SD 카드(secure digital card), CF 카드(compact flash card), 메모리 스틱(memory stick), XD 픽쳐 카드(XD picture card) 등에 적용될 수 있다.
이상에서는 본 발명의 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 비휘발성 메모리 시스템 120: 컨트롤러
122: 캐시 140: 제 1 비휘발성 메모리 장치
160: 제 2 비휘발성 메모리 장치

Claims (10)

  1. 제 1 비휘발성 메모리 장치;
    상기 제 1 비휘발성 메모리 장치에 비하여 저속으로 쓰기 동작을 수행하고, 상기 제 1 비휘발성 메모리 장치와 이종인 제 2 비휘발성 메모리 장치; 및
    상기 제 2 비휘발성 메모리 장치로 하여금 호스트(host)로부터 입력되는 데이터를 저장하도록 제어하고, 상기 제 1 비휘발성 메모리 장치로 하여금 상기 데이터와 연계되는 플래시 변환 계층(Flash Translation layer; FTL) 메타 데이터를 저장하도록 제어하는 컨트롤러를 포함하고,
    상기 제 1 비휘발성 메모리 장치에는 상기 FTL 메타 데이터가 청크(chunk) 단위로 분할된 복수의 FTL 메타 청크들 및 상기 FTL 메타 청크들을 관리하는 FTL 메타 헤더가 저장되는 것을 특징으로 하는 비휘발성 메모리 시스템.
  2. 제 1 항에 있어서, 상기 컨트롤러는
    상기 FTL 메타 헤더 및 상기 FTL 메타 청크들 중에서 일부를 캐싱(caching)하기 위하여 휘발성 메모리 장치로 구현되는 캐시를 포함하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  3. 제 2 항에 있어서, 상기 제 1 비휘발성 메모리 장치는 덮어쓰기 동작(overwrite operation)을 수행할 수 있는 비휘발성 메모리 장치인 것을 특징으로 하는 비휘발성 메모리 시스템.
  4. 제 3 항에 있어서, 상기 제 1 비휘발성 메모리 장치는 피램(Phase-change Random Access Memory; PRAM) 장치이고, 상기 제 2 비휘발성 메모리 장치는 낸드 플래시 메모리(NAND flash memory) 장치인 것을 특징으로 하는 비휘발성 메모리 시스템.
  5. 제 4 항에 있어서, 임베디드 멀티미디어 카드(Embedded Multi Media Card; EMMC)로 제조되는 것을 특징으로 하는 비휘발성 메모리 시스템.
  6. 제 2 항에 있어서, 상기 제 1 비휘발성 메모리 장치는 상기 FTL 메타 청크들을 저장하기 위한 복수의 FTL 메타 청크 슬롯(slot)들 및 상기 FTL 메타 헤더를 저장하기 위한 복수의 FTL 메타 헤더 슬롯들을 포함하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  7. 제 6 항에 있어서, 상기 FTL 메타 청크 슬롯들 중에서 적어도 하나 이상은 비어 있는 FTL 메타 청크 슬롯 또는 무효 FTL 메타 청크 슬롯이고, 상기 FTL 메타 헤더 슬롯들 중에서 적어도 하나 이상은 비어 있는 FTL 메타 헤더 슬롯 또는 무효 FTL 메타 헤더 슬롯인 것을 특징으로 하는 비휘발성 메모리 시스템.
  8. 제 7 항에 있어서, 갱신된 FTL 메타 청크는 상기 비어 있는 FTL 메타 청크 슬롯 또는 상기 무효 FTL 메타 청크 슬롯에 저장되고, 갱신전 FTL 메타 청크가 저장된 유효 FTL 메타 청크 슬롯은 상기 무효 FTL 메타 청크 슬롯으로 변경되는 것을 특징으로 하는 비휘발성 메모리 시스템.
  9. 제 8 항에 있어서, 갱신된 FTL 메타 헤더는 상기 비어 있는 FTL 메타 헤더 슬롯 또는 상기 무효 FTL 메타 헤더 슬롯에 저장되고, 갱신전 FTL 메타 헤더가 저장된 유효 FTL 메타 헤더 슬롯은 상기 무효 FTL 메타 헤더 슬롯으로 변경되는 것을 특징으로 하는 비휘발성 메모리 시스템.
  10. 제 9 항에 있어서, 상기 제 1 비휘발성 메모리 장치가 쓰기 동작을 수행하는 도중에 서든 파워 오프(sudden power off)가 발생하면, 상기 컨트롤러는 상기 FTL 메타 헤더 슬롯들에 저장된 상기 FTL 메타 헤더들의 에이지 정보(age information)를 비교하여, 오래된 FTL 메타 헤더를 유효 FTL 메타 헤더로 결정하는 것을 특징으로 하는 비휘발성 메모리 시스템.
KR1020110129662A 2011-12-06 2011-12-06 비휘발성 메모리 시스템 KR20130063244A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110129662A KR20130063244A (ko) 2011-12-06 2011-12-06 비휘발성 메모리 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110129662A KR20130063244A (ko) 2011-12-06 2011-12-06 비휘발성 메모리 시스템

Publications (1)

Publication Number Publication Date
KR20130063244A true KR20130063244A (ko) 2013-06-14

Family

ID=48860652

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110129662A KR20130063244A (ko) 2011-12-06 2011-12-06 비휘발성 메모리 시스템

Country Status (1)

Country Link
KR (1) KR20130063244A (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015047326A1 (en) * 2013-09-27 2015-04-02 Hewlett-Packard Development Company, L.P. Data management on memory modules
KR20150057153A (ko) * 2013-11-18 2015-05-28 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
US10503406B2 (en) 2015-06-22 2019-12-10 Samsung Electronics Co., Ltd. Data storage device and data processing system having the same
KR102102248B1 (ko) * 2018-12-05 2020-04-20 성균관대학교산학협력단 솔리드 스테이트 드라이브 에뮬레이터의 동작 테스트 방법
US10642497B2 (en) 2016-08-31 2020-05-05 International Business Machines Corporation System, method and computer program product for instantiating blocks of a solid-state disk to include different flash characteristics
KR20200079729A (ko) * 2018-12-26 2020-07-06 울산과학기술원 데이터 일관성을 위한 버퍼 캐시 및 방법
WO2022107920A1 (ko) * 2020-11-20 2022-05-27 울산과학기술원 데이터 일관성을 위한 버퍼 캐시 및 방법

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015047326A1 (en) * 2013-09-27 2015-04-02 Hewlett-Packard Development Company, L.P. Data management on memory modules
US11733932B2 (en) 2013-09-27 2023-08-22 Hewlett Packard Enterprise Development Lp Data management on memory modules
KR20150057153A (ko) * 2013-11-18 2015-05-28 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
US10503406B2 (en) 2015-06-22 2019-12-10 Samsung Electronics Co., Ltd. Data storage device and data processing system having the same
US10642497B2 (en) 2016-08-31 2020-05-05 International Business Machines Corporation System, method and computer program product for instantiating blocks of a solid-state disk to include different flash characteristics
US11435902B2 (en) 2016-08-31 2022-09-06 International Business Machines Corporation System, method and computer program product for instantiating blocks of a solid-state disk to include different flash characteristics
KR102102248B1 (ko) * 2018-12-05 2020-04-20 성균관대학교산학협력단 솔리드 스테이트 드라이브 에뮬레이터의 동작 테스트 방법
KR20200079729A (ko) * 2018-12-26 2020-07-06 울산과학기술원 데이터 일관성을 위한 버퍼 캐시 및 방법
WO2022107920A1 (ko) * 2020-11-20 2022-05-27 울산과학기술원 데이터 일관성을 위한 버퍼 캐시 및 방법

Similar Documents

Publication Publication Date Title
US10866797B2 (en) Data storage device and method for reducing firmware update time and data processing system including the device
US9652386B2 (en) Management of memory array with magnetic random access memory (MRAM)
US8935459B2 (en) Heuristics for programming data in a non-volatile memory
US9720616B2 (en) Data-retention controller/driver for stand-alone or hosted card reader, solid-state-drive (SSD), or super-enhanced-endurance SSD (SEED)
US10789160B2 (en) Utilizing different data storage policies in response to different characteristics of data
KR101572403B1 (ko) 메모리 채널 셧다운에 의한 전력 절약
TWI457756B (zh) 記憶體系統及其操作方法
US20160306552A1 (en) Low write amplification in solid state drive
US9213495B2 (en) Controller management of memory array of storage device using magnetic random access memory (MRAM) in a mobile device
US9830106B2 (en) Management of memory array with magnetic random access memory (MRAM)
US9830257B1 (en) Fast saving of data during power interruption in data storage systems
US20140095555A1 (en) File management device and method for storage system
KR20130063244A (ko) 비휘발성 메모리 시스템
CN105718530B (zh) 文件存储系统及其文件存储控制方法
KR20200130742A (ko) 저장 클래스 메모리를 위한 웨어 레벨링의 장치 및 방법
US20140143489A1 (en) Controller management of memory array of storage device using magnetic random access memory (mram)
US8332575B2 (en) Data management systems, methods and computer program products using a phase-change random access memory for selective data maintenance
JP2007199905A (ja) 半導体記憶装置の制御方法
US20140328127A1 (en) Method of Managing Non-Volatile Memory and Non-Volatile Storage Device Using the Same
CN112166405A (zh) 在存储器系统中分配可变媒体类型的存储器装置
US20140219041A1 (en) Storage device and data processing method thereof
KR20220114078A (ko) 캐시의 데이터 블록의 기록 모드 변경을 기반으로 한 미디어 관리 동작 수행
KR102589609B1 (ko) 분할된 저장장치에서의 스냅샷 관리
US11940912B2 (en) Managing power loss recovery using a dirty section write policy for an address mapping table in a memory sub-system
US11704029B2 (en) Elastic persistent memory regions

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application