KR102403202B1 - 메타 데이터 관리자를 포함하는 메모리 시스템 및 동작 방법 - Google Patents

메타 데이터 관리자를 포함하는 메모리 시스템 및 동작 방법 Download PDF

Info

Publication number
KR102403202B1
KR102403202B1 KR1020150035049A KR20150035049A KR102403202B1 KR 102403202 B1 KR102403202 B1 KR 102403202B1 KR 1020150035049 A KR1020150035049 A KR 1020150035049A KR 20150035049 A KR20150035049 A KR 20150035049A KR 102403202 B1 KR102403202 B1 KR 102403202B1
Authority
KR
South Korea
Prior art keywords
meta
memory
log
data area
meta data
Prior art date
Application number
KR1020150035049A
Other languages
English (en)
Other versions
KR20160110832A (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 KR1020150035049A priority Critical patent/KR102403202B1/ko
Priority to US14/995,758 priority patent/US9891838B2/en
Publication of KR20160110832A publication Critical patent/KR20160110832A/ko
Application granted granted Critical
Publication of KR102403202B1 publication Critical patent/KR102403202B1/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation

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)
  • Library & Information Science (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명에 따른 메모리 시스템은 메타 데이터 영역과 유저 데이터 영역을 갖는 불휘발성 메모리와 메타데이터 관리자를 갖는 메모리 컨트롤러를 포함하고, 상기 메타데이터 관리자는 메모리 장치의 특성에 따라 메타 로그를 상기 불휘발성 메모리의 메타데이터 영역에 선택적으로 저장 할 수 있다.

Description

메타 데이터 관리자를 포함하는 메모리 시스템 및 동작 방법 {MEMORY SYSTEM AND OPERATING METHOD HAVING META DATA MANAGER}
본 발명은 반도체 메모리 장치에 관한 것으로, 좀 더 구체적으로는 불휘발성 메모리를 기반으로 하는 메모리 시스템 및 메타 데이터 관리 동작에 관한 것이다.
반도체 메모리 장치는 일반적으로 DRAM, SRAM 등과 같은 휘발성 메모리 장치와 EEPROM, FRAM, PRAM, MRAM, RRAM, 플래시 메모리 등과 같은 불휘발성 메모리 장치로 구분할 수 있다. 휘발성 메모리 장치는 전원이 차단될 때 저장된 데이터를 잃지만, 불휘발성 메모리는 전원이 차단되더라도 저장된 데이터를 보존한다. 특히, 플래시 메모리는 전원이 차단되더라도 저장된 데이터를 보존한다. 특히, 플래시 메모리는 높은 프로그래밍 속도, 낮은 전력 소비, 대용량 데이터 저장 등의 장점을 갖는다. 따라서 플래시 메모리를 포함하는 메모리 시스템은 데이터 저장 매체로 널리 사용되고 있다.
불휘발성 메모리 시스템은 데이터를 저장하고자 할 때, 유저 데이터와 메타데이터를 메모리 장치에 저장한다. 유저 데이터는 사용자 어플리케이션이 저장하고자 하는 파일의 내용을 포함하고, 메타데이터는 파일 또는 유저 데이터의 속성과 유저 데이터가 저장되는 블록의 위치 등을 포함한다.
본 발명의 목적은 메모리 시스템의 메타 데이터 관리를 최적화 하여 메타 데이터 영역의 열화 현상을 개선하고 메모리 장치의 수명을 연장 할 수 있는 메타 데이터 관리자를 포함하는 메모리 시스템 및 동작 방법을 제공하는 데 있다.
본 발명은 메모리 시스템의 동작 방법에 관한 것으로, 메모리 시스템은 메타 데이터 영역과 유저 데이터 영역을 갖는 불 휘발성 메모리와 메타 데이터 관리자를 갖는 메모리 컨트롤러를 포함하고, 상기 메모리 시스템의 동작 방법은, 상기 유저 데이터 영역의 제 1 메모리 블록에 제 1 데이터를 프로그램하고, 상기 메타 데이터 관리자는, 상기 프로그램에 기초하여 메타 로그를 생성하고, 상기 메타 로그를 상기 메모리 컨트롤러에 저장하고, 파워 오프 동작 시에, 상기 불 휘발성 메모리의 특성에 따라 상기 메타 로그를 선택적으로 상기 불 휘발성 메모리의 메타 데이터 영역에 저장할 수 있다.
실시 예로서, 상기 불 휘발성 메모리의 특성은 파워 온 동작 이후에, 상기 제 1 메모리 블록에 수행된 프로그램 횟수이고, 상기 메타 데이터 관리자는 상기 프로그램 횟수가 제 1 기준값 보다 클 때, 상기 메타 로그를 상기 불 휘발성 메모리의 상기 메타 데이터 영역에 저장하고, 상기 프로그램 횟수가 상기 제 1 기준값 보다 작거나 같으면, 메타 로그 저장 동작을 생략 할 수 있다. 상기 불 휘발성 메모리의 특성은 파워 온 동작 이후에, 상기 제 1 메모리 블록에 프로그램 된 데이터의 양이고, 상기 메타 데이터 관리자는 상기 프로그램 된 데이터의 양이 제 2 기준값 보다 클 때, 상기 메타 로그를 상기 불휘발성 메모리의 상기 메타 영역에 저장하고, 상기 프로그램 된 데이터 양이 제 2 기준값 보다 작거나 같으면, 메타 로그 저장 동작을 생략할 수 있다.
실시 예로서, 상기 불 휘발성 메모리의 특성은 파워 온 동작 이후에, 생성된 메타 로그의 개수이고, 상기 메타 데이터 관리자는 상기 메타 로그의 개수가 제 3 기준값 보다 클 때, 상기 메타 로그를 상기 불휘발성 메모리의 상기 메타 영역에 저장하고, 상기 생성된 메타 로그의 개수가 제 3 기준값 보다 작거나 같으면, 메타 로그 저장 동작을 생략할 수 있다. 상기 불 휘발성 메모리의 특성은 상기 메타 영역의 이레이즈 횟수이고, 상기 메타 데이터 관리자는 상기 이레이즈 횟수가 제 4 기준값 보다 클 때, 상기 메타 로그를 상기 불휘발성 메모리의 상기 메타 영역에 저장하고, 상기 메타 영역의 이레이즈 횟수가 제 4 기준값 보다 작거나 같으면, 메타 로그 저장 동작을 생략할 수 있다.
실시 예로서, 상기 불 휘발성 메모리의 특성은 상기 메타 영역의 이레이즈 횟수와 상기 제 1 메모리 블록의 이레이즈 횟수의 차이 값이고, 상기 메타 데이터 관리자는 상기 이레이즈 횟수의 차이 값이 제 5 기준값 보다 작을 때, 상기 메타 로그를 상기 불휘발성 메모리의 상기 메타 영역에 저장하고, 상기 이레이즈 횟수의 차이가 제 5 기준값 보다 크거나 같으면, 메타 로그 저장 동작을 생략할 수 있다. 상기 불 휘발성 메모리의 특성은 제 1 시간 동안 상기 메모리 컨트롤러에 수신된 파워 오프 알림 신호의 횟수이고, 상기 메타 데이터 관리자는 상기 파워 오프 알림 신호의 횟수가 제 6 기준값 보다 작을 때, 상기 메타 로그를 상기 불휘발성 메모리의 상기 메타 영역에 저장하고, 상기 파워 오프 알림 신호의 횟수가 제 6 기준값 보다 크거나 같으면, 메타 로그 저장 동작을 생략할 수 있다.
실시 예로서, 상기 메모리 컨트롤러는 RAM을 포함하며, 상기 RAM은 상기 메타 로그를 저장할 수 있다. 상기 메타 로그를 상기 불휘발성 메모리의 메타 데이터 영역에 저장하는 것은 상기 RAM 에 저장된 상기 메타 로그를 상기 불휘발성 메모리의 메타 데이터 영역에 프로그램 하고, 상기 파워 오프 알림 신호 수신 마크를 상기 메타 데이터 영역의 상기 메타 로그가 저장된 인접한 페이지에 저장할 수 있다.
실시 예로서, 상기 메타 로그는 상기 제 1 데이터가 저장된 상기 제 1 메모리 블록의 제 1 물리적 주소를 포함 할 수 있다. 상기 제 1 메모리 블록은 복수개의 페이지를 포함하고, 상기 복수개의 페이지 각각은 메인 파트와 스페어 파트를 포함하고, 상기 제1 데이터는 상기 메인 파트에 저장되고, 상기 제 1 물리적 주소에 대응하는 제 1 논리적 주소가 상기 스페어 파트에 저장될 수 있다. 상기 메타 데이터 영역은 제1 메타 페이지를 포함하고, 상기 메타 페이지는 메타 메인 파트와 메타 스페어 파트를 포함하고, 상기 메타 페이지의 메인 파트에는 매핑 정보를 저장하고, 상기 스페어 파트에는 메타 인덱스를 저장할 수 있다. 상기 메타 데이터 영역은 복수개의 메타 인덱스를 포함하는 이니셜 메타 데이터 및 상기 메타 로그를 포함할 수 있다. 상기 불휘발성 메모리는 3차원 플래시 메모리 일 수 있다.
본 발명에 따른 메모리 컨트롤러의 동작 방법의 다른 예는 상기 메모리 컨트롤러는 메타 데이터 관리자를 포함하고, 메타 데이터 영역과 유저 데이터 영역을 갖는 불 휘발성 메모리의 동작 조건을 컨트롤 하되, 상기 메모리 컨트롤러의 동작 방법은, 상기 불 휘발성 메모리의 상기 유저 데이터 영역의 제 1 메모리 블록의 제 1워드라인에 제 1 데이터를 프로그램하고, 상기 메타데이터 관리자는, 상기 프로그램에 기초하여 메타 로그를 생성하고, 상기 생성된 메타 로그를 상기 메모리 컨트롤러에 저장하고, 파워 오프 동작 시에, 상기 제 1 메모리 블록에 수행된 프로그램 횟수에 기초하여 상기 메타 로그를 선택적으로 상기 메타 데이터 영역에 저장할 수 있다.
실시 예로서, 상기 메모리 컨트롤러는 RAM을 포함 하며, 상기 메타 로그는 상기 메모리 컨트롤의 상기 RAM에 저장될 수 있다. 상기 메타 로그를 상기 불 휘발성 메모리의 메타 데이터 영역에 저장하는 것은, 상기 RAM에 저장된 상기 메타 로그를 상기 불 휘발성 메모리의 메타 데이터 영역에 프로그램 하고, 상기 파워 오프 알림 신호 수신 마크를 상기 메타 데이터 영역의 상기 메타 로그가 저장된 인접한 페이지에 저장할 수 있다.
실시 예로서, 상기 제 1 워드라인은 메인 파트와 스페어 파트를 포함하고, 상기 제 1데이터는 상기 메인 파트에 저장되고 상기 제 1워드라인에 대응하는 제 1 논리적 주소는 상기 스페어 파트에 저장될 수 있다. 상기 메타 데이터 영역은 제 1 메타 페이지를 포함하고, 상기 제1 메타 페이지는 메타 메인 파트와 메타 스페어 파트를 포함하고, 상기 메타 데이터 관리자는 상기 메타 메인 파트에 매핑 정보를 저장 하고, 상기 메타 스페어 파트에 메타 인덱스를 저장 할 수 있다. 상기 메타 데이터 영역은 이니셜 메타 데이터를 포함하고, 상기 이니셜 메타 데이터는 최초 매핑 정보를 포함할 수 있다. 상기 불 휘발성 메모리는 3차원 플래시 메모리 일 수 있다.
본 발명에 의하면, 메모리 시스템은 메타 데이터 관리자를 이용하여, 메타 데이터 저장을 효율적으로 관리함으로, 메타 데이터 영역의 열화 현상을 개선하고 메모리 장치의 수명을 연장 할 수 있다.
도 1은 본 발명에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 2는 본 발명에 따른 메모리 시스템의 또 다른 실시 예를 개략적으로 보여주는 블록도이다.
도 3는 도 1에 도시된 메모리 컨트롤러(1200)를 예시적으로 보여주는 블록도이다.
도 4은 도 1에 도시된 메모리 컨트롤러의 또 다른 실시 예를 보여주는 블록도이다.
도 5는 본 발명에 사용되는 플래시 메모리를 예시적으로 보여주는 블록도이다.
도 6는 도 5에 도시된 메모리 블록(BLK1)의 3차원 구조를 예시적으로 보여주는 사시도이다.
도 7은 도 6에 도시된 메모리 블록(BLK1)의 등가 회로도이다.
도 8은 도 1에 도시된 메타 데이터 관리자가 메타 로그를 저장하는 것을 설명하기 위한 개념도 도면이다.
도 9는 메타 데이터 영역을 설명하기 위한 개념도 이다.
도 10은 메모리 장치의 메타 데이터 영역에 저장된 이니셜 메타 데이터 의 구성을 보여 주는 개념도 이다
도 11은 메모리 장치의 메타 데이터 영역에 저장된 매핑 정보의 구성을 보여 주는 도표 이다.
도 12는 매핑 정보가 변경되어 메타 로그가 생성되는 것을 설명하기 위한 개념도 이다.
도 13 및 도 14는 메모리 컨트롤러가 메타 데이터를 복구하는 방법을 설명하기 위한 개념도 이다.
도 15는 메모리 시스템에 반복적으로 SPO가 발생하는 상태를 설명하기 위한 개념도 이다.
도 16은 도 1에 도시된 메타 데이터 관리자를 개략적으로 보여주는 블록도이다.
도 17은 도 1에 도시된 메타 데이터 관리자가 메타 로그를 생성하고 저장 하는 동작을 설명하기 위한 순서도 이다.
도 18 내지 도 23은 도 1에 도시된 메타 데이터 관리자가 메타 로그를 생성하고 선택적으로 저장 하는 동작을 설명하기 위한 또 다른 실시 예를 보여주는 순서도 이다.
도 24 및 도 25은 본 발명에 따른 메모리 시스템의 다양한 적용 예를 보여주는 블록도이다.
도 26은 본 발명의 실시 예에 따른 메모리 시스템을 메모리 카드 시스템에 적용한 예를 보여주는 블록도이다.
도 27은 본 발명의 실시 예에 따른 메모리 시스템을 솔리드 스테이드 드라이브(SSD) 시스템에 적용한 예를 보여주는 블록도이다.
도 28는 도 27에 도시된 SSD 컨트롤러의 구성을 예시적으로 보여주는 블록도이다.
도 29은 본 발명의 실시 예에 따른 메모리 시스템을 전자 장치로 구현한 예를 보여주는 블록도이다.
이하에서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다. Ⅰ. 메타 데이터 관리자를 포함하는 메모리 시스템
도 1은 본 발명에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다. 도 1을 참조하면, 본 발명에 따른 메모리 시스템(1000)은 메모리 장치(1100), 메모리 컨트롤러(1200) 및 호스트(1300)를 포함한다.
메모리 장치(1100)는 메모리 컨트롤러(1200)에 의해서 제어되며, 메모리 컨트롤러(1200)의 요청에 대응하는 동작들(예를 들면, 읽기 또는 쓰기 동작 등)을 수행할 수 있다. 메모리 장치(1100)는 복수의 메모리 블록을 포함 할 수 있다. 메모리 장치(1100)는 메타 데이터 영역(1111)과 유저 데이터 영역(1112)를 포함한다.
메타 데이터 영역(1111)은 셀 당 1-비트 데이터를 저장하는 단일-레벨 셀(single level cell)로 구성 될 수 있다. 유저 데이터 영역(1112)는 셀당 N-비트 데이터(N은 2 또는 그 보다 큰 정수) 를 저장하는 멀티-레벨 셀(Multi level cell)로 구성될 수 있다, 또는 메타 데이터 및 유저 데이터 영역(1111,1112) 각각은 멀티 레벨 셀로 구성될 수 있다. 이러한 경우, 메타 데이터 영역(1111)의 멀티 레벨 셀은 단일 레벨 셀과 같이 동작 하도록 LSB 프로그램 동작만을 수행 할 수 있다. 메타 데이터 영역(1111)과 유저 데이터 영역(1112) 은 단이 레벨 셀로 구성될 수 있다.
메타 데이터 영역(1111)과 유저 데이터 영역(1112)은 하나의 메모리 장치로 구현 되거나, 별도의 메모리 장치로 구현될 수 있다. 메타 데이터 영역(1111)에 저장된 데이터는 호스트(1300)의 쓰기 요청에 따라 유저 데이터 영역(1112)에 저장되는 파일 데이터(또는 유저 데이터)의 속성과 파일 데이터(또는 유저 데이터)가 저장되는 블록의 위치 등이 포함된 메타 데이터 또는 저장된 메타 데이터가 변경될 때 생성되는 메타 로그 일 수 있다. 유저 데이터 영역(1112)에 저장된 데이터는 호스트(1300)의 쓰기 요청에 의해 외부로부터 제공된 데이터 일 수 있다.
메모리 컨트롤러(1200)는 메모리 장치(1100)와 호스트(1300)사이에 연결된다. 메모리 컨트롤러(1200)는 호스트(1300)의 요청에 응답하여 메모리 장치(1100)에 대한 읽기 및 쓰기 동작들을 제어한다. 메모리 컨트롤러(1200)는 호스트(1300)로부터 호스트 데이터(Data_h)를 입력 받고, 메모리 장치(1100)로 데이터(DATA)를 전송할 수 있다. 메모리 컨트롤러(1200)는 메모리 장치(1100)로 커멘드(CMD; command), 어드레스(ADDR; address), 데이터(DATA), 그리고 제어 신호(CTRL)를 제공할 수 있다.
계속해서 도 1을 참조하면, 메모리 컨트롤러(1200)는 메타 데이터 관리자(1250, meta data manager)를 포함한다. 메타 데이터 관리자 (1250)는 메타 데이터에 관련된 동작을 컨트롤 한다. 메타 데이터 관리자(1250)는 메타 데이터를 생성하고, 생성된 메타 데이터를 메모리 시스템(1100)의 상태에 따라 선택적으로 메타 영역(1111)에 저장 한다.
본 발명의 실시 예에 따른 메모리 시스템(1000)은 메모리 장치(1100)의 프로그램 수행 시, 매핑 정보가 변경되는 경우에 메타 로그를 생성 할 수 있다. 본 발명에 의하면, 메모리 시스템(1000)은 메모리 장치(1100)에 수행된 프로그램 횟수에 따라 메타 로그를 메모리 시스템의 메타 데이터 영역(1111)에 선택적으로 저장 할 수 있다. 본 발명에 의하면, 메모리 시스템(1000)은 메모리 장치(1100)에 저장된 프로그램 데이터의 양에 따라 생성된 메타 로그를 메모리 장치(1100)의 메타 데이터 영역(1111)에 선택적으로 저장 할 수 있다.
본 발명에 의하면, 메모리 시스템(1000)은 생성된 메타 로그의 개수에 따라 메타 로그를 메모리 장치(1100)의 메타 데이터 영역(1111)에 선택적으로 저장 할 수 있다. 본 발명에 의하면, 메모리 시스템(1000)은 메타 데이터 영역(1111)에 수행된 이레이즈 횟수에 따라 메타 로그를 메모리 장치(1100)의 메타 데이터 영역(1111)에 선택적으로 저장 할 수 있다.
본 발명에 의하면, 메모리 시스템(1000)은 메타 데이터 영역(1111)과 유저 데이터 영역(1112)의 이레이즈 횟수에 따라 메타 로그를 메타 데이터 영역(1111)에 선택적으로 저장 할 수 있다. 본 발명에 의하면, 메모리 시스템(1000)은 파워 오프 알림 신호의 횟수에 따라 생성된 메타 로그를 메타 데이터 영역(1111)에 선택적으로 저장 할 수 있다. 본 발명에 의하면, 메모리 시스템(1000)은 메모리 장치(1100)의 파워 오프 동작 시 발생하는 메타 로그 저장을 선택적으로 하여 메모리 장치(1100)의 수명을 연장할 수 있다.
도 2는 도 1에 도시된 메모리 시스템의(1000)의 다른 실시 예를 보여주는 블록도이다. 도 2를 참조하면 메모리 시스템(1000b)의 메모리 장치 (1100) 및 메모리 컨트롤러(1200)의 구성 요소는 도 1과 동일함으로 중복적인 설명은 생략하도록 한다. 도 2를 참조하면 메모리 시스템(1000b)은 어플리케이션 프로세서(1400) 및 DRAM(Dynamic Random Access Memory, 1500)을 포함 할 수 있다. 메모리 시스템(1000b)은 어플리케이션 프로세서(1400)를 통해 메타 데이터 관리자(1250)가 생성한 메타 데이터를 DRAM(1500)에 저장 할 수 있다.
도 3은 도 1에 도시된 메모리 컨트롤러(1200)를 예시적으로 보여주는 블록도이다. 도 3를 참조하면, 메모리 컨트롤러(1200a)는 시스템 버스(1210), 호스트 인터페이스(1220), 프로세서(1230), RAM(Random Access Memory, 1240), 메타 데이터 관리자(1250) 및 메모리 인터페이스(1260)를 포함한다.
시스템 버스(1210)는 호스트 인터페이스(1220), 프로세서(1230), RAM(1240), 메타 데이터 관리자(1250), 메모리 인터페이스(1260) 사이에 채널을 제공한다.
호스트 인터페이스(1220)는 특정한 통신 규격에 따라 호스트(도1 참조, 1300) 및 어플리케이션 프로세서(도2 참조, 1400)와 통신할 수 있다. 예시적으로, 메모리 컨트롤러(1200)는 USB(Universal Serial Bus), PCI(Peripheral Component Interconnection), PCI-E(PCI-Express), ATA(Advanced Technology Attachment), Serial-ATA, Parallel-ATA, SCSI(Small Computer Small Interface), ESDI(Enhanced Small Disk Interface), IDE(Integrated Drive Electronics), 그리고 파이어와이어(Firewire) 등과 같은 다양한 통신 규격들 중 적어도 하나를 통해 호스트(1300) 및 어플리케이션 프로세서(1400)와 통신 할 수 있다.
프로세서(1230)는 호스트(1300)로부터 호스트 데이터(Data_h) 및 커맨드를 입력 받고, 메모리 컨트롤러(1200)의 제반 동작을 제어할 수 있다. 프로세서(1230)는 ROM(Read Only Memory, 미도시)을 포함 할 수 있다. 프로세서(1230)에 저장된 정보를 이용하여 메모리 컨트롤러(1200)의 동작을 제어 할 수 있다.
RAM(1240)은 메모리 컨트롤러(1200)의 내부 동작의 동작 메모리, 캐시 메모리, 또는 버퍼 메모리 중 적어도 하나로 이용될 수 있다.
메타 데이터 관리자(1250, meta data manager)는 도 1에 설명한 바와 같이 메타 데이터를 관리한다. 또한, 메타 데이터 관리자(1250)는 메모리 장치(1100)의 상태를 확인하고, 확인 결과에 따라 메타 데이터 저장 동작을 수행할 수 있다. 메타 데이터 관리자(1250)의 동작 원리는 도 8 내지 도 25를 참조하여 상세하게 설명될 것이다.
메모리 인터페이스(1260)는 메모리 장치(1100)와 인터페이싱한다. 예를 들면, 메모리 인터페이스(1260)는 낸드 플래시 인터페이스 또는 VNAND(Vertical NAND) 인터페이스 등을 포함한다.
도 4는 도 1에 도시된 메모리 컨트롤러(1200)의 다른 실시 예를 보여주는 블록도이다. 도 4를 참조하면 메모리 컨트롤러(1200b)의 구성 요소는 도 3과 동일함으로 중복적인 설명은 생략하도록 한다. 도 4를 참조하면 메타 데이터 관리자(1250)는 RAM(1240)에서 구동될 수 있다.
도 1에 도시된 메모리 장치(1100)는 2차원 구조를 갖는 플래시 메모리뿐만 아니라, 3차원 구조를 갖는 플래시 메모리(3D Flash Memory)에도 적용 될 수 있다.
도 5는 도 1에 도시된 메모리 장치가 3차원 플래시 메모리임을 예시적으로 보여주는 블록도이다. 도 5를 참조하면, 메모리 장치(1100)는 3차원 셀 어레이(1110), 데이터 입출력 회로(1120), 어드레스 디코더(1130), 그리고 제어 로직(1140)을 포함한다.
3차원 셀 어레이(1110)는 복수의 메모리 블록(BLK1~BLKz)을 포함한다. 메타 데이터 영역(1111) 및 유저 데이터 영역(1112)은 복수의 메모리 블록으로 구성 될 수 있다. 각각의 메모리 블록은 3차원 구조 (또는 수직 구조)를 가질 수 있다. 2차원 구조 (또는 수평 구조)를 갖는 메모리 블록에서는, 메모리 셀들이 기판과 수평 방향으로 형성된다. 그러나 3차원 구조를 갖는 메모리 블록에서는, 메모리 셀들이 기판과 수직 방향으로 형성된다. 각각의 메모리 블록은 메모리 장치(1100)의 소거 단위를 이룬다.
데이터 입출력 회로(1120)는 복수의 비트라인(BLs)을 통해 3차원 셀 어레이(1110)와 연결된다. 데이터 입출력 회로(1120)는 외부로부터 데이터(DATA)를 입력받거나, 3차원 셀 어레이(1110)로부터 읽은 데이터(DATA)를 외부로 출력한다. 어드레스 디코더(1130)는 복수의 워드라인(WLs) 및 선택 라인(GSL, SSL)을 통해 3차원 셀 어레이(1110)와 연결된다. 어드레스 디코더(1130)는 어드레스(ADDR)를 입력 받고 워드 라인을 선택한다.
제어 로직(1140)은 메모리 장치(1100)의 프로그램, 읽기, 소거 등의 동작을 제어한다. 예를 들면, 제어 로직(1140)은 프로그램 동작 시에, 어드레스 디코더(1130)를 제어함으로 선택 워드 라인으로 프로그램 전압이 제공되도록 하고, 데이터 입출력 회로(1120)를 제어함으로 데이터가 프로그램 되도록 할 수 있다.
도 6는 도 5에 도시된 메모리 블록(BLK1)의 3차원 구조를 예시적으로 보여주는 사시도이다. 도 6를 참조하면, 메모리 블록(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)과 같은 절연 물질로 구성될 수 있다.
계속해서 도 6를 참조하면, 메모리 블록(BLK1)의 게이트 전극막(gate electrode layer)은 접지 선택 라인(GSL), 복수의 워드 라인(WL1~WL8), 그리고 스트링 선택 라인(SSL)에 연결될 수 있다. 그리고 메모리 블록(BLK1)의 필라(pillar)는 복수의 비트라인(BL1~BL3)과 연결될 수 있다. 도 6에서는, 하나의 메모리 블록(BLK1)이 2개의 선택 라인(GSL, SSL), 8개의 워드라인(WL1~WL8), 그리고 3개의 비트 라인(BL1~BL3)을 갖는 것으로 도시되어 있으나, 실제로는 이것들보다 더 많거나 적을 수 있다. 또한 2개의 선택 라인(SSL, GSL)과 워드라인(WL) 사이에 적어도 하나 이상의 더미 워드라인(미 도시)을 포함 할 수 있다.
도 7은 도 6에 도시된 메모리 블록(BLK1)의 등가 회로도이다. 도 7을 참조하면, 비트 라인(BL1 ~BL3)과 공통 소스 라인(CSL) 사이에는 낸드 스트링(NS11 ~ NS33)이 연결되어 있다. 각각의 낸드 스트링(예를 들면, NS11)은 스트링 선택 트랜지스터(SST), 복수의 메모리 셀(MC1~MC8), 그리고 접지 선택 트랜지스터(GST)를 포함한다.
스트링 선택 트랜지스터(SST)는 스트링 선택 라인(String Selection Line; SSL1~SSL3)에 연결되어 있다. 복수의 메모리 셀(MC1~MC8)은 각각 대응하는 워드 라인(WL1~WL8)에 연결되어 있다. 그리고 접지 선택 트랜지스터(GST)는 접지 선택 라인(Ground Selection Line; GSL)에 연결되어 있다. 스트링 선택 트랜지스터(SST)는 비트 라인(BL)에 연결되고, 접지 선택 트랜지스터(GST)는 공통 소스 라인(CSL; Common Source Line)에 연결되어 있다.
계속해서 도 7을 참조하면, 동일 높이의 워드라인(예를 들면, WL1) 및 접지 선택 라인(GSL)은 공통으로 연결되어 있고, 스트링 선택(SSL1~SSL3)은 분리 되어 있다. 제 1 워드라인(WL1)에 연결되어 있고 낸드 스트링(NS11, NS12, NS13)에 속해 있는 메모리 셀(이하, 페이지라 함)을 프로그램 하는 경우에는, 제 1 워드라인 (WL1)과 제 1 선택 라인(SSL)이 선택 된다.
Ⅱ. 메타 데이터 관리자의 동작 방법
도 8은 도 1에 도시된 메모리 시스템의 메타 데이터 관리자의 동작을 설명하기 위한 개념도 이다. 도 8은 메타 데이터 관리자(1250)가 메타 데이터 영역에 메타 로그를 저장하는 동작을 보여 준다.
플래시 메모리를 포함하는 메모리 시스템은 파일 데이터를 효율적으로 관리하고 시스템의 성능을 향상하기 위하여, 메타 데이터 영역을 사용한다. 즉, 메모리 시스템은 데이터를 유저 데이터 영역에 저장하기 위해 매핑 정보를 생성하고 저장 할 수 있다. 매핑 정보는 논리적 주소에 따른 물리적 주소를 포함 할 수 있다.
계속해서, 도 8을 참조하면, 메모리 컨트롤러(1200)가 유저 데이터를 유저 데이터 영역(1112)에 저장(또는 프로그램)한다 (①). 이때, 유저 데이터 영역(1112)에 저장 되는 데이터는 호스트(1300)에서 전송된 데이터 일 수 있다. 예시적으로, 메모리 컨트롤러(1200)은 호스트(1300)로부터 프로그램 커맨드와 데이터를 수신하고, 수신된 데이터를 유저 데이터 영역(1112)에 프로그램 할 수 있다.
유저 데이터 영역에 프로그램이 완료 된 후, 메모리 컨트롤러(1200)는 RAM에 저장된 매핑 정보를 업데이트 할 수 있다(②). 예시적으로, 메모리 컨트롤러(1200)은 수신된 데이터를 관리하는 논리적 주소와 수신된 데이터가 저장된 메모리 장치(1100)의 메타 데이터 영역(1112)의 물리적 주소를 매핑한 정보(또는 메타 로그)를 저장 할 수 있다. 논리적 주소와 물리적 주소의 매핑 정보들이 모여 매핑 테이블을 구성 할 수 있다. 매핑 테이블은 메모리 컨트롤러(1200)의 RAM(1240)에 저장 될 수 있다.
메모리 컨트롤러(1200)는 호스트(1300)로부터 수신된 파워 오프 알림(PON, Power off notification) 신호를 수신 할 수 있다(③). 예시적으로, 메모리 시스템(1000)에 공급 되는 파워가 정상적으로 공급 중단이 되는 상황 이 발생할 수 있다. 메모리 컨트롤러(1200)는 메모리 시스템의 파워 공급이 중단 되기 전에, 호스트로부터 파워 오프 알림 신호(PON)를 수신 할 수 있다.
메모리 컨트롤러(1200)가 파워 오프 알림 신호(PON)을 수신하면, 메타 데이터 관리자(1250)는 메모리 시스템(1000)의 상태에 따라 메모리 컨트롤러의 RAM(1240)에 저장된 메타 로그에 관하여 메모리 장치(1100)의 프로그램 여부를 결정 한다(④). 예를 들어, 메타 데이터 관리자(1250)는 마지막 메타 로그 저장 시점 이후에 수행된 프로그램 횟수가 기준 값 보다 클 때, 메타 로그를 메모리 장치(1100)의 메타 데이터 영역(1111)에 저장하도록 결정 할 수 있다. 메타 데이터 관리자(1250)는 PON을 수신하지 않더라도 RAM(1240)에 저장된 메타 로그를 메모리 장치(1100)에 저장 할 수 있다. 예를 들어, 메타 데이터 관리자(1250)는 RAM(1240)에 메타 로그를 저장할 공간이 부족할 때, PON을 수신 하지 않아도, 메타 로그를 메모리 장치(1100)에 저장 할 수 있다. 메타 데이터 관리자(1250)가 메타 로그를 메타 데이터 영역(1111)에 저장여부를 결정하는 것은 도 17 내지 도 23을 참조하여 상세하게 설명될 것이다.
메모리 컨트롤러는 메타 데이터 관리자(1250)의 명령에 따라 메모리 컨트롤러의 RAM(1240)에 저장된 메타 로그를 메모리 장치(1100)의 메타 데이터 영역(1111)에 저장 할 수 있다(⑤).
도 9는 메모리 장치의 메타 영역에 저장된 메타 데이터의 구성을 보여주는 개념도이다. 도 9를 참조하면, 메타 데이터는 메모리 장치(1100, 도1 참조)의 메타 데이터 영역(1111)에 저장되어 있다. 메타 데이터는 메모리 장치에 저장 되는 데이터의 매핑 정보 및 메모리 장치의 동작에 관한 정보를 포 함 할 수 있다. 설명의 편의를 위해, 메타 데이터는 매핑 정보라고 가정하자.
메타 데이터 영역(1111)에 저장되는 메타 데이터는 이니셜 메타 데이터(Initial meta data)와 메타 로그를 포함 할 수 있다. 이니셜 메타 데이터는 메모리 시스템(1000)의 동작 초기에 저장된 매핑 정보이다. 이니셜 메타 데이터(Initial Meta data)는 메타 인덱스(Meta index)를 포함 할 수 있다. 메타 인덱스는 매핑 정보들의 그룹에 따라 정해 질 수 있다. 메타 인덱스에 대해서는 도 10을 참조하여 상세하게 설명될 것이다. 메타 로그(Meta log)는 이니셜 메타 데이터에 저장된 매핑 정보가 변경 되었을 때, 생성되는 매핑 정보이다.
도 10은 메모리 장치의 메타 데이터 영역에 저장된 이니셜 메타 데이터 의 구성을 보여 주는 개념도 이다. 도 10를 참조하면, 메타 데이터 영역(1111)은 복수개의 페이지로 구성 될 수 있다. 각 메타 페이지는 메타 메인 파트(meta main part)와 메타 스페어 파트(meta spare part)를 포함 할 수 있다. 메타 메인 파트는 입력 데이터들의 매핑 정보를 저장 할 수 있다. 메타 스페어 파트는 매핑 정보들의 그룹에 해당하는 메타 인덱스(meta index)를 저장 할 수 있다. 메타 인덱스는 유저 데이터 영역(1112)에서 데이터를 리드 했을 때, 리드 데이터의 매핑 정보를 확인하기 위해 사용된다.
예시적으로, 제 1 메타 페이지(1st meta page)의 메타 메인 파트에 저장된 매핑 정보들은 제 1 매핑 정보(Mapping 1)이다. 제 1 매핑 정보에 대응 하는 제 1 메타 인덱스는 제 1 메타 페이지의 메타 스페어 파트에 저장 된다. 또한, 제 2 메타 페이지(2nd meta page)의 메타 메인 파트에 저장된 매핑 정보들은 제 2 매핑 정보(Mapping 2)이다. 제 2 매핑 정보에 대응 하는 제 2 메타 인덱스는 제 2 메타 페이지의 메타 스페어 파트에 저장 된다. 제 M 메타 페이지(Mth meta page)의 메타 메인 파트에 저장된 매핑 정보들은 제 M 매핑 정보(Mapping M)이다. 제 M 매핑 정보에 대응 하는 제 M 메타 인덱스는 제 M 메타 페이지의 메타 스페어 파트에 저장 된다.
도 11은 메모리 장치의 메타 데이터 영역에 저장된 매핑 정보의 구성을 보여 주는 도표 이다. 도 11을 참조하면, 매핑 정보는 논리적 주소(Logical Address, 이하 LA)와 물리적 주소(Physical address, 이하 PA)를 포함 한다. LA는 메모리 컨트롤러(1200)가 데이터를 저장 할 때 사용하는 주소이다. PA는 실제 메모리 장치(1100)에 데이터가 저장되는 주소 이다. 예를 들어, 제 1 매핑 정보는 제1 메타 페이지의 메타 메인 영역의 저장 가능한 데이터 용량의 매핑 정보들을 포함 할 수 있다. 제 1 메타 페이지에 저장된 매핑 정보들은 제 1 매핑 정보 일 수 있다.
예시적으로, 제 1 매핑 정보들은 제 1 메타 인덱스에 대응 될 수 있다. 메모리 컨트롤러(1200)의 LA가 1 일 때, 메모리 장치(1100)의 PA가 100인 곳에 데이터가 프로그램 된다. 메모리 컨트롤러(1200)의 LA가 2 일 때, 메모리 장치(1100)의 PA가 101인 곳에 입력 받은 데이터가 프로그램 된다. 메모리 컨트롤러(1200)의 LA가 N일 때, 메모리 장치(1100)의 PA가 M인 곳에 입력 받은 데이터가 프로그램 된다.
도 12는 매핑 정보가 변경되어 메타 로그가 생성되는 것을 설명하기 위한 개념도 이다. 도 12를 참조하면, 메타 데이터 관리자(1250)은 이니셜 메타 데이터에 저장된 매핑 정보가 변경되면, 변경된 매핑 정보에 대응되는 새로운 메타 로그를 생성할 수 있다.
예를 들어, 이니셜 메타 데이터에 저장된 제 2 매핑 정보가 변경되었을 경우를 가정하자. 이니셜 메타 데이터의 제 2 매핑 정보에 따르면, 메모리 컨트롤러(1200)는 LA 100에 해당하는 데이터를 PA 200인 곳에 프로그램 한다. 이후, LA 100에 해당하는 유효한 새로운 데이터를 수신하면, 메모리 컨트롤러(1200)는 LA 100의 유효 데이터를 PA 500에 저장하고 PA 200에 저장된 데이터를 무효화 할 수 있다.
LA 100의 유효 데이터가 이니셜 메타 데이터에 저장된 PA 200과 다른 PA 500에 저장되면, 메타 데이터 관리자 (1250)은 제 2 매핑 정보에 관한 메타 로그(Mapping2`)를 생성 할 수 있다. 메타 데이터 관리자(1250)는 제2 매핑 정보에 대응 되는 제2 메타 로그(Mapping2`)를 생성하고, 메타 스페어 파트에 메타 인덱스 2를 저장한다. 메모리 컨트롤러는 이후, 메타 데이터 영역을 리드했을 때, 이니셜 메타 데이터와 메타 로그를 리드하고, 메타 로그에 저장된 메타 인덱스를 확인하고, 동일한 메타 인덱스를 포함하는 이니셜 메타 데이터의 매핑 정보는 메타 로그에 저장된 매핑 정보로 대체 한다.
도 13 및 도 14는 메모리 컨트롤러가 메타 데이터를 복구하는 방법을 설명하기 위한 개념도 이다. 메모리 컨트롤러(1200) 및 메타 데이터 관리자(1250)은 도 13 및 도 14에 설명된 동작을 선택적으로 수행 할 수 있다.
도 13을 참조하면, 메모리 컨트롤러(1200)는 RAM(1240)에 메모리 시스템(1000)의 동작 중에 변경되는 매핑 정보를 저장한다. 메모리 컨트롤러(1200)은 메모리 장치(1100)의 유저 데이터 영역에 유저 데이터들(user data 1, user data 2, … user data N)을 저장 할 수 있다. 메모리 컨트롤러(1200)은 메모리 장치(1100)의 메타 데이터 영역에 메타 로그를 저장 할 수 있다.
유저 데이터 영역(1112)은 복수개의 페이지를 포함 할 수 있다. 각 페이지는 메인 파트(main part)와 스페어 파트(spare part)를 포함 할 수 있다. 유저 데이터 는 각 페이지의 메인 파트에 저장 될 수 있다. 각 페이지의 저장된 데이터에 대응 하는 LA는 스페어 파트에 저장 될 수 있다.
예를 들어, 제 1 유저 데이터(user data 1)은 PA가 100인 제 1페이지의 메인 파트에 저장될 수 있다. 제 1 유저 데이터에 대응하는 LA 1은 제 1 페이지의 스페어 파트에 저장 될 수 있다. 제 2 유저 데이터(user data 2)은 PA가 101인 제 2페이지의 메인 파트에 저장될 수 있다. 제 2 유저 데이터에 대응하는 LA 2은 제 2 페이지의 스페어 파트에 저장 될 수 있다. 제 N 유저 데이터(user data N)은 PA가 M인 제 N페이지의 메인 파트에 저장될 수 있다. 제 N 유저 데이터에 대응하는 LA N은 제 N페이지의 스페어 파트에 저장 될 수 있다.
메모리 컨트롤러(1200)은 메모리 장치(1100)의 매핑 정보가 변경 되면 메타 로그를 생성할 수 있다. 메모리 컨트롤러(1200)은 변경된 매핑 정보를 메모리 장치(1100)가 파워 오프 동작을 수행 할 때, 변경된 매핑 정보에 관련된 메타 로그를 메타 데이터 영역에 프로그램 할 수 있다.
메모리 시스템 (1000)은 동작 중에 예기치 않은 상황에 의해 갑자기 공급 전원이 중단되는 서든 파워 오프(sudden power off, 이하 SPO)가 발생 할 수 있다. 메모리 시스템(1000)에 서든 파워 오프가 발생되면, 메모리 시스템(1000)은 변경된 매핑 정보를 메타 데이터 영역에 저장하기 전에 수행 중인 동작을 중단할 수 있다.
메모리 시스템(1000)의 공급 전원이 갑자기 중단 되면, 메모리 컨트롤러(1200)의 RAM(1240)에 저장된 매핑 정보는 메모리 장치의 메타 데이터 영역에 업데이트 되기 전에 소실될 수 있다. SPO 상황에서 매핑 정보의 변경으로 생성된 메타 로그가 메타 데이터 영역(1111)에 업데이트 되지 않고 메모리 시스템(1000)의 파워가 종료 되면, 메모리 컨트롤러(1200)은 다음 파워 온 동작 시에 유저 데이터 영역의 스페어 파트를 스캔하여 매핑 정보를 재 구성 할 수 있다. 예를 들어, 계속 해서 도 13을 참조하면, SPO가 발생 후, 전원 공급 전원이 중단 되어, RAM에 저장되어 있던 메타 데이터들이 모두 휘발 되었다. SPO 이후, 메모리 시스템(1000)에 다시 전원이 공급 되면, 메모리 컨트롤러(1200)은 SPO 이전에 마지막으로 프로그램이 진행 되었던 유저 데이터 영역(1112)의 메모리 블록을 스캔(scan)한다. 메모리 컨트롤러(1200)가 유저 데이터 영역에 스캔을 수행하면, 메모리 블록의 스페어 파트를 리드하여 LA와 PA의 매핑 정보를 구성 할 수 있다. 이와 같은 방식으로, 메모리 컨트롤러(1200)는 SPO이전에 RAM(1240)에 저장되어 있던 매핑 정보를 구성 할 수 있다.
도 14는 메타 데이터 관리자가 메타 데이터를 복구하는 방법을 설명하기 위한 개념도 이다.
도 14을 참조하면, 정상 동작(Normal operation) 모드는 전원 공급이 중단 되기 전의 메모리 시스템(1000)의 상태이다. 메모리 컨트롤러(1200)의 RAM(1240)은 변경된 매핑 정보를 포함 할 수 있다. 메모리 장치(1100)의 유저 데이터 영역(1112)에는 유저 데이터와 데이터에 대응 되는 LA 가 프로그램 될 수 있다. 예를 들어, 메모리 장치(1100)에 LA1에 해당하는 유효한 제 1 데이터가 프로그램 될 때, 메모리 컨트롤러(1200)의 RAM(1240)에 LA 1에 대응하는 PA 100의 매핑 정보가 저장 될 수 있다. RAM(1240)에 저장된 LA 2에 대응되는 PA 5000, 및 LA N에 대응되는 PA 5100은 이니셜 매핑 정보 일 수 있다. PA가 100인 페이지에 제 1 유저 데이터와 제1 유저 데이터에 대응되는 LA1 이 프로그램 될 수 있다. 메모리 컨트롤러(1200)의 메타 데이터 관리자(1250)은 정상 동작 모드 일 때, 메모리 장치(1100)의 메타 데이터 영역(1111)에 RAM (1240)에 저장된 매핑 정보를 실시간으로 업데이트 하지 않을 수 있다.
메모리 시스템(1000)의 사용자가 전원을 중단할 것을 호스트(1300)에 요청하거나, 호스트(1300)가 메모리 시스템(1000)의 에너지를 절약하고자 절전 모드 진입을 결정한다면, 호스트(1300)은 전원 중단 알림(Power-Off Notification, 이하 PON)을 전송할 수 있다. 메모리 컨트롤러(1200)의 메타 데이터 관리자(1250)는 PON이 수신되면, RAM에 저장된 이니셜 매핑 정보가 변경되어 생성된 매핑 정보(메타 로그)를 메모리 장치(1100)의 메타 데이터 영역(1111)에 프로그램 할 수 있다. 메타 데이터 관리자는 메타 데이터 영역(1111)에 PON 수신 여부를 추가적으로 프로그램 할 수 있다.
예를 들어, 메타 데이터 관리자(1250)가 PON을 수신하면, 메타 데이터 영역의 메타 메인 파트에 RAM에 저장되어 있던 메타 로그를 저장할 수 있다. 메타 데이터 관리자(1250)는 PON 수신 이후, 전원이 재 공급되면(파워-온 또는 파워-업 동작 시), 빠른 메타 데이터 복구를 위해 메인 메타 파트에 저장된 메타 로그에 대응하는 메타 인덱스를 메타 스페어 파트에 저장 한다. 메타 데이터 관리자(1250)은 제 1 유저 데이터가 PA 100에 프로그램이 수행되면서 생성된 메타 로그를 메타 메인 파트에 저장하고, LA1을 포함하는 메타 인덱스 1을 메타 스페어 파트에 저장 할 수 있다. 메타 로그는 LA1에 대응되는 데이터가 PA 100에 저장되었다는 정보를 포함 할 수 있다. 메타 인덱스 1에 포함된 기타 변경되지 않은 이니셜 매핑 정보들은 변경된 매핑 정보와 함께 메타 로그로 프로그램 될 수 있다. 예시적으로, 메타 인덱스 1은 LA 1 부터 LA N까지의 매핑 정보를 포함 할 수 있다. LA1에 해당 되는 PA가 변경되어 새로운 메타 로그가 생성되면, LA2 부터 LA N까지의 매핑 정보는 이니셜 매핑 정보일 수 있다.
메모리 시스템(1000)에 공급 전원이 공급되어 초기화 모드(Initial mode)가 수행 되면, 메모리 컨트롤러(1200)는 메타 영역에 저장된 메타 로그에 기초하여 RAM(1240)에 저장되는 매핑 테이블을 구성 할 수 있다.
도 13 내지 도 14은 도 1에 도시된 메모리 컨트롤러(1200) 및 메타 데이터 관리자(1250)가 메타 로그를 생성하고 메타 영역에 메타 로그를 업데이트 하는 방법을 설명하기 위한 도면이다. 메타 데이터 관리자(1250)는 메모리 시스템(1000)의 상황에 따라 도 13 내지 도 14에 설명된 동작을 선택적으로 수행 할 수 있다.
메타 데이터 관리자 (1250)은 파워 업 동작 이후 매핑 테이블 구성을 위해 스캔해야할 페이지가 적은 경우에는 도 13에 설명된 방법과 같이 메타 로그를 저장하지 않고 데이터 영역의 스페어 파트를 스캔하여 매핑 테이블을 구성 할 수 있다.
메타 데이터 관리자(1250)는 파워 업 동작 이후 매핑 테이블 구성을 위해 스캔 해야할 페이지가 많은 경우에는 도 14에 설명된 방법과 같이 메타 로그(Meta log)를 메타 데이터 영역에 저장하여 파워 업 동작 시, 유저 데이터 영역의 스페어 파트를 스캔하지 않고 메타 로그만 리드하여 매핑 테이블을 구성 할 수 있다.
도 15는 메모리 시스템에 반복적으로 SPO가 발생하는 상태를 설명하기 위한 개념도 이다.
도 15를 참조하면, 설명의 편의를 위해, 메모리 장치에 한 페이지 프로그램 후 SPO가 반복적으로 발생한다고 가정하자. 유저 데이터 영역(1112)의 PA가 100인 페이지에 제 1 데이터가 프로그램 되고, SPO가 발생하면, 메타 데이터 관리자(1250)은 생성된 제1 메타 로그를 메타 데이터 영역(1111)의 제 1페이지에 저장하고, PON 수신신호를 제 2 페이지에 저장한다.
이후, 정상적으로 전원이 공급되고, 제 2 유저 데이터가 PA가 101인 페이지에 프로그램 되고, SPO가 발생하면, 메타 데이터 관리자(1250)은 생성된 제2 메타 로그를 메타 데이터 영역(1111)의 제 3페이지에 저장하고, PON 수신신호를 제 4 페이지에 저장한다.
이후, 정상적으로 전원이 공급되고, 제 3 유저 데이터가 PA가 102인 페이지에 프로그램 되고, SPO가 발생하면, 메타 데이터 관리자(1250)은 생성된 제3 메타 로그를 메타 데이터 영역(1111)의 제 5페이지에 저장하고, PON 수신 정보를 제 6 페이지에 저장한다.
위에 상술한 바와 같이, 메모리 시스템에 한 페이지 데이터를 프로그램하고 SPO가 반복적으로 발생하면, 파워 종료 동작 시, 메타 데이터 영역에는 메타로그를 저장하기 위한 페이지와 PON 수신 정보를 저장하기 위한 페이지, 총 2 페이지에 프로그램이 수행된다. 이와 같이 한 페이지 프로그램에 두 페이지의 메타 데이터 영역을 사용해야 하는 경우, 메타 데이터 영역의 수명이 급격하게 감소 되기 때문에, 메타 데이터 관리자는 도 13 및 도 14에서 기술 된 방법을 선택 적으로 적용한다.
도 16은 도 1에 도시된 메타 데이터 관리자를 개략적으로 보여주는 블록도이다. 도 16을 참조하면, 메타 데이터 관리자(1250)은 메타 데이터 컨트롤 유닛(1251)과 메타 로그 라이트 유닛(1252)를 포함할 수 있다.
메타 데이터 컨트롤 유닛(1251)은 프로그램 커맨드를 수신할 수 있다. 메타 데이터 컨트롤 유닛(1251)이 프로그램 커맨드를 수신하면, 메타 데이터 컨트롤 유닛(1251)은 프로그램 커맨드와 함께 수신된 데이터가 기록될 PA와 이에 대응 하는 LA에 관한 메타 로그(Meta log)를 생성하고 생성된 메타 로그를 메타 로그 라이트 유닛(1252)로 전송 할 수 있다.
메타 데이터 컨트롤 유닛(1251)은 전원 공급 중단을 알려주는 PON 신호를 수신 할 수 있다. 메타 데이터 컨트롤 유닛(1251)이 PON을 수신하면, 메타 로그를 메모리 장치(1100)의 메타 데이터 영역(1111)에 업데이트(기록 또는 프로그램) 하라는 명령을 생성 할 수 있다. 메타 데이터 컨트롤 유닛(1251)은 메타 로그를 메타 데이터 영역(1111)에 저장하라는 명령을 메타 로그 라이트 유닛(1252)로 전송 할 수 있다.
메타 로그 라이트 유닛(1252)은 메타 데이터 컨트롤 유닛(1251)에서 생성된 메타 로그를 수신하면, 수신된 메타 로그를 메모리 컨트롤러(1200)의 RAM(1240)에 업데이트(또는 저장)한다. 메타 로그 라이트 유닛(1252)은 메타 데이터 컨트롤 유닛(1251)으로 부터 메타 로그를 메타 데이터 영역(1111)에 저장하라는 명령을 수신하면, RAM(1240)에 저장된 메타 로그를 리드하고, 리드된 메타 로그들을 메모리 장치(1100)의 메타 데이터 영역(1111)에 저장 한다.
도 17은 도 1에 도시된 메타 데이터 관리자가 메타 로그를 생성하고 저장 하는 동작을 설명하기 위한 순서도 이다.
S110 단계에서, 메타 데이터 관리자(1250)은 PON 신호를 수신한다. 메타 데이터 관리자(1250)는 PON 신호를 호스트(1300)로부터 수신 할 수 있다.
S120 단계에서, 메타 데이터 관리자(1250)는 메타 데이터를 저장 여부를 결정 할 수 있다. 메타 데이터 관리자(1250)는 메모리 장치(1100)의 메타 데이터 영역(1111)에 저장 해야 할 메타 로그의 양에 기초하여 메타 데이터를 저장 할 수 있다.
메타 데이터 관리자(1250)는 메모리 장치(1100)에 수행된 프로그램 횟수에 기초하여 메타 로그를 메타 데이터 영역(1111)에 저장 할 수 있다. 메타 데이터 관리자(1250)는 메모리 장치에 저장된 프로그램 데이터의 양에 따라 메타 로그를 메타 데이터 영역(1111)에 프로그램 할 수 있다. 메타 데이터 관리자(1250)은 메모리 장치의 메타 데이터 영역(1111)에 수행된 이레이즈 횟수에 기초하여 메타 로그를 저장 할 수 있다.
메타 데이터 관리자(1250)는 메타 데이터 영역(1111)의 이레이즈 횟수와 유저 데이터 영역(1112)의 이레이즈 횟수의 차이에 따라 메타 로그를 메타 데이터 영역(1111)에 저장 할 수 있다. 메타 데이터 관리자(1250)는 기준 시간 동안 수신한 PON 신호 개수에 기초하여 메타 로그를 메타 데이터 영역(1111)에 저장 할 수 있다.
S130 단계에서, 메타 데이터 관리자(1250)는 RAM(1240)에 저장된 메타 로그를 메타 데이터 영역(1111)에 저장 할 수 있다.
S140 단계에서, 메타 데이터 관리자(1250)은 PON 수신 마크를 메타 데이터 영역(1111)에 저장 할 수 있다.
도 18은 도 1에 도시된 메타 데이터 관리자가 메타 로그를 생성하고 선택적으로 저장 하는 동작을 설명하기 위한 또 다른 실시 예를 보여주는 순서도 이다.
S210 단계에서, 메타 데이터 관리자(1250)는 PON 신호를 수신한다. 메타 데이터 관리자(1250)는 PON 신호를 호스트(1300)로부터 수신 할 수 있다.
S220 단계에서, 메타 데이터 관리자(1250)는 메모리 장치(1100)에 수행된 프로그램 횟수를 확인한다. 프로그램 횟수는 마지막 메타 로그 저장 시점부터 현재 시점 까지 발생된 프로그램 명령의 개수 일수 있다. 프로그램 횟수는 메모리 컨트롤러(1200)의 RAM(1240)에 저장될 수 있다. 프로그램 횟수는 메타 로그가 메모리 장치(1100)에 저장되면 초기화 될 수 있다. 있다.
S230 단계에서, 메타 데이터 관리자(1250)는 프로그램 횟수와 제 1 기준값을 비교한다. 메타 데이터 관리자 (1250)는 프로그램 횟수가 제 1 기준값 보다 크면, S240 단계를 진행한다. 예시적으로, 제 1 기준값은 20 일 수 있다. 메타 데이터 관리자는 이전 메타 데이터 업데이트 이후, 수행된 프로그램 횟수가 20 보다 크면 S240 단계를 진행 할 수 있다. 메타 데이터 관리자(1250)는 프로그램 횟수가 제1 기준값 보다 작거나 같으면, 메타 로그를 메타 데이터 영역(1111)에 저장 하지 않고 종료 한다.
S240 단계에서, 메타 데이터 관리자(1250)은 RAM에 저장된 메타 로그를 메모리 장치(1100)의 메타 데이터 영역(1111)에 저장한다. 메타 데이터 관리자(1250)는 RAM에 저장된 메타 로그를 메타 데이터 영역에 프로그램 할 수 있다.
S250 단계에서, 메타 데이터 관리자(1250)은 PON 수신 마크를 메타 데이터 영역(1111)에 저장 할 수 있다. 메타 데이터 관리자(1250)은 메타 데이터 영역의 S240 단계에서 메타 로그를 저장한 인접 페이지에 PON 수신 마크를 프로그램 할 수 있다.
도 18을 참조하면, 메타 데이터 관리자(1250)은 유저 데이터 영역에 수행된 프로그램 횟수에 따라 메타 로그 저장여부를 결정 할 수 있다. 메타 데이터 관리자(1250)는 유저 데이터 영역에 수행된 프로그램 횟수가 기준 값 보다 작거나 같으면, PON 수신 이후, 파워가 정상적으로 공급되고 초기화 동작이 진행 될 때, 매핑 테이블 구성을 위해 수행되어야 할 페이지 스캔의 시간이 적다고 판단 한다. 따라서, 메타 로그를 메타 데이터 영역에 저장하지 않는다. 메타 데이터 관리자(1250)은 메타 데이터 영역(1111)에 수행될 프로그램 횟수를 감소시켜 메타 데이터 영역의 수명을 증가 시킬 수 있다.
도 19는 도 1에 도시된 메타 데이터 관리자가 메타 로그를 생성하고 선택적으로 저장 하는 동작을 설명하기 위한 또 다른 실시 예를 보여주는 순서도 이다.
S310 단계에서, 메타 데이터 관리자(1250)는 PON 신호를 수신한다. 메타 데이터 관리자(1250)는 PON 신호를 호스트(1300)로부터 수신 할 수 있다.
S320 단계에서, 메타 데이터 관리자(1250)는 메모리 장치(1100)에 저장된 프로그램 데이터의 양을 확인한다. 프로그램 데이터 양은 마지막 메타 로그 저장 시점 부터 현재 시점 까지 발생된 프로그램 데이터의 양 일수 있다. 프로그램 데이터의 양은 메모리 컨트롤러(1200)의 RAM(1240)에 저장될 수 있다. 프로그램 데이터의 양은 메타 로그를 메모리 장치(1100)에 저장하면 초기화 될 수 있다.
S330 단계에서, 메타 데이터 관리자(1250)는 프로그램 데이터의 양을 제 2 기준값과 비교한다. 메타 데이터 관리자 (1250)는 프로그램 데이터의 양이 제 2 기준값 보다 크면, S340 단계를 진행한다. 예시적으로, 제 2 기준값은 200KB(Kilo byte) 일 수 있다. 메타 데이터 관리자는 이전 메타 데이터 업데이트 이후, 누적된 프로그램 데이터가 200KB 보다 크면 S340 단계를 진행 할 수 있다. 메타 데이터 관리자(1250)은 프로그램 데이터의 양이 제2 기준값 보다 작거나 같으면, 메타 로그를 메타 데이터 영역(1111)에 저장 하지 않고 종료 한다.
S340 단계에서, 메타 데이터 관리자(1250)는 RAM에 저장된 메타 로그를 메모리 장치(1100)의 메타 데이터 영역(1111)에 저장한다. 메타 데이터 관리자(1250)은 RAM에 저장된 메타 로그를 메타 데이터 영역에 프로그램 할 수 있다.
S350 단계에서, 메타 데이터 관리자(1250)는 PON 수신 마크를 메타 데이터 영역(1111)에 저장 할 수 있다. 메타 데이터 관리자(1250)은 메타 데이터 영역의 S340 단계에서 메타 로그를 저장한 인접 페이지에 PON 수신 마크를 프로그램 할 수 있다.
도 19을 참조하면, 메타 데이터 관리자(1250)는 유저 데이터 영역에 수행된 프로그램의 데이터 양에 따라 메타 로그 저장여부를 결정 할 수 있다. 메타 데이터 관리자(1250)는 유저 데이터 영역(1112)에 마지막 메타 로그를 저장한 이후, 수행된 프로그램 데이터의 양이 기준 값 보다 작거나 같으면, 저장 해야 할 메타 로그의 변경 양이 작다고 판단할 수 있다. 따라서, 메타 데이터 관리자(1250)은 공급 전원이 재개 되고, 초기화 동작이 진행 될 때, 매핑 테이블 구성을 위해 수행되어야 할 페이지 스캔을 위한 시간이 짧다고 결정 할 수 있다. 따라서, 메타 로그를 메타 데이터 영역에 저장하지 않는다. 메타 데이터 관리자(1250)는 메타 데이터 영역(1111)에 수행될 프로그램 횟수를 감소시켜 메타 데이터 영역의 수명을 증가 시킬 수 있다.
도 20은 도 1에 도시된 메타 데이터 관리자가 메타 로그를 생성하고 선택적으로 저장 하는 동작을 설명하기 위한 또 다른 실시 예를 보여주는 순서도 이다.
S410 단계에서, 메타 데이터 관리자(1250)는 PON 신호를 수신한다. 메타 데이터 관리(1250)은 PON 신호를 호스트(1300)로부터 수신 할 수 있다.
S420 단계에서, 메타 데이터 관리자(1250)는 변경된 메타 로그의 양을 확인한다. 메타 로그의 개수는 마지막 메타 로그 저장 이후 부터 현재 시점 까지 변경된 메타 로그의 양 일수 있다. 변경된 메타 로그의 양은 메타 로그를 메모리 장치(1100)에 저장 시, 초기화 될 수 있다. 메타 로그의 양은 메모리 컨트롤러(1200)의 RAM(1240)에 저장될 수 있다.
S430 단계에서, 메타 데이터 관리자(1250)는 메타 로그의 개수를 제 3 기준값과 비교한다. 메타 데이터 관리자 (1250)는 메타 로그의 개수가 제 3 기준값 보다 크면, S440 단계를 진행한다. 예시적으로, 제 3 기준값은 20 일 수 있다. 메타 데이터 관리자는 이전 메타 데이터 업데이트 이후, 생성된 메타 로그의 개수가 20 보다 크면 S440 단계를 진행 할 수 있다. 메타 데이터 관리자(1250)는 메타 로그의 개수가 제3 기준값 보다 작거나 같으면, 메타 로그를 메타 데이터 영역(1111)에 저장 하지 않고 종료 한다.
S440 단계에서, 메타 데이터 관리자(1250)는 RAM에 저장된 메타 로그를 메모리 장치(1100)의 메타 데이터 영역(1111)에 저장한다. 메타 데이터 관리자(1250)은 RAM에 저장된 메타 로그를 메타 데이터 영역에 프로그램 할 수 있다.
S450 단계에서, 메타 데이터 관리자(1250)는 PON 수신 마크를 메타 데이터 영역(1111)에 저장 할 수 있다. 메타 데이터 관리자(1250)은 메타 데이터 영역의 S440 단계에서 메타 로그를 저장한 인접 페이지에 PON 수신 마크를 프로그램 할 수 있다.
도 20을 참조하면, 메타 데이터 관리자(1250)는 마지막 메타 로그 저장 동작 이후, 생성된 메타 로그의 양에 따라 메타 로그 저장여부를 결정 할 수 있다. 메타 데이터 관리자(1250)은 초기화 동작(파워 업) 이후, 생성된 메타 로그의 개수가 기준 값 보다 작거나 같으면, 저장 해야 할 메타 로그의 양이 작다고 판단할 수 있다. 따라서, 메타 데이터 관리자(1250)은 공급 전원이 재개 되고, 초기화 동작이 진행 될 때, 매핑 테이블 구성을 위해 수행되어야 할 페이지 스캔을 위한 시간이 짧다고 결정 할 수 있다. 따라서, 메타 데이터 영역의 수명을 연장 시키기 위해서 메타 로그를 메타 데이터 영역에 저장하지 않는다. 메타 데이터 관리자(1250)은 메타 데이터 영역(1111)에 수행될 프로그램 횟수를 감소시켜 메타 데이터 영역의 마모 현상을 감소 시킬 수 있다.
도 21은 도 1에 도시된 메타 데이터 관리자가 메타 로그를 생성하고 선택적으로 저장 하는 동작을 설명하기 위한 또 다른 실시 예를 보여주는 순서도 이다.
S510 단계에서, 메타 데이터 관리자(1250)는 PON 신호를 수신한다. 메타 데이터 관리(1250)는 PON 신호를 호스트(1300)로부터 수신 할 수 있다.
S520 단계에서, 메타 데이터 관리자(1250)는 메타 데이터 영역(1111)에 수행된 이레이즈 횟수를 확인한다. 메타 데이터 영역(1111)은 복수의 메모리 블록들을 포함 할 수 있다. 메타 영역의 이레이즈 횟수는 메타 데이터 영역의 각각의 메모리 블록의 이레이즈 횟수의 평균 값 일 수 있다. 메타 데이터 영역의 이레이즈 횟수는 메타 데이터 영역에 포함된 특정 메모리 블록에 수행된 이레이즈 횟수 일 수 있다. 메타 데이터 영역의 이레이즈 횟수는 메타 데이터 영역에 포함된 복수의 메모리 블록에 수행된 이레이즈 횟수의 총 합 일 수 있다.
S530 단계에서, 메타 데이터 관리자(1250)는 메타 데이터 영역(1111)의 이레이즈 횟수를 제 4 기준값과 비교한다. 메타 데이터 관리자 (1250)는 메타 데이터 영역의 이레이즈 횟수가 제 4 기준값 보다 작으면, S540 단계를 진행한다. 예시적으로, 제 4 기준값은 20 일 수 있다. 메타 데이터 관리자는 메타 데이터 영역의 수행된 이레이즈 횟수가 1000보다 작으면 S540 단계를 진행 할 수 있다. 메타 데이터 관리자(1250)는 메타 데이터 영역의 이레이즈 횟수가 제4 기준값 보다 크거나 같으면, 메타 로그를 메타 데이터 영역(1111)에 저장 하지 않고 종료 한다.
S540 단계에서, 메타 데이터 관리자(1250)은 RAM에 저장된 메타 로그를 메모리 장치(1100)의 메타 데이터 영역(1111)에 저장한다. 메타 데이터 관리자(1250)은 RAM에 저장된 메타 로그를 리드하고, 메타 데이터 영역에 프로그램 할 수 있다.
S550 단계에서, 메타 데이터 관리자(1250)은 PON 수신 마크를 메타 데이터 영역(1111)에 저장 할 수 있다. 메타 데이터 관리자(1250)은 메타 데이터 영역의 S540 단계에서 메타 로그를 저장한 인접 페이지에 PON 수신 마크를 프로그램 할 수 있다.
도 21을 참조하면, 메타 데이터 관리자(1250)는 메타 데이터 영역에 수행된 이레이즈 횟수에 따라 메타 로그 저장여부를 결정 할 수 있다. 메타 데이터 관리자(1250)은 메타 데이터 영역의 이레이즈 횟수가 기준 값 보다 크거나 같으면, 메타 데이터 영역의 열화가 진행 되었다고 판단 할 수 있다. 따라서, 메타 데이터 관리자(1250)은 메타 데이터 영역의 수명을 연장 시키기 위해서 메타 로그를 메타 데이터 영역에 저장하지 않는다. 메타 데이터 관리자(1250)는 메타 데이터 영역(1111)에 수행될 프로그램과 이레이즈 횟수를 감소시켜서 메타 데이터 영역의 마모 현상을 감소 시킬 수 있다.
도 22는 도 1에 도시된 메타 데이터 관리자가 메타 로그를 생성하고 선택적으로 저장 하는 동작을 설명하기 위한 또 다른 실시 예를 보여주는 순서도 이다.
S610 단계에서, 메타 데이터 관리자(1250)는 PON 신호를 수신한다. 메타 데이터 관리자(1250)는 PON 신호를 호스트(1300)로부터 수신 할 수 있다.
S620 단계에서, 메타 데이터 관리자(1250)는 메타 데이터 영역(1111)에 수행된 이레이즈 횟수 및 유저 데이터 블록에 수행된 이레이즈 횟수를 확인한다. 메타 데이터 영역(1111)에 수행된 이레이즈 횟수의 정의는 도 21에 설명된 것과 유사하므로 중복적인 설명을 생략하기로 한다.
유저 데이터 영역(1112)은 복수의 메모리 블록들을 포함 할 수 있다. 유저 데이터 영역(1112)의 이레이즈 횟수는 유저 데이터 영역(1112)의 각각의 메모리 블록의 이레이즈 횟수의 평균 값 일 수 있다. 유저 데이터 영역(1112)의 이레이즈 횟수는 유저 데이터 영역에 포함된 특정 메모리 블록에 수행된 이레이즈 횟수 일 수 있다. 유저 데이터 영역의 이레이즈 횟수는 유저 데이터 영역에 포함된 복수의 메모리 블록에 수행된 이레이즈 횟수의 총 합 일 수 있다.
S630 단계에서, 메타 데이터 관리자(1250)는 메타 데이터 영역(1111)의 이레이즈 횟수와 유저 데이터 블록의 이레이즈 횟수의 차이 값을 구할 수 있다. 메타 데이터 관리자(1250)는 생성된 차이값과 제 5 기준값을 비교한다. 메타 데이터 관리자 (1250)는 생성된 이레이즈 횟수 차이값이 제 5 기준값 보다 작으면, S640 단계를 진행한다. 예시적으로, 제 5 기준값은 100 일 수 있다. 메타 데이터 관리자는 차이값이 100 보다 작으면, S640 단계를 진행 할 수 있다. 메타 데이터 관리자(1250)은 메타 로그의 개수가 제5 기준값 보다 크거나 같으면, 메타 로그를 메타 데이터 영역(1111)에 저장 하지 않고 종료 한다.
S640 단계에서, 메타 데이터 관리자(1250)는 RAM에 저장된 메타 로그를 메모리 장치(1100)의 메타 데이터 영역(1111)에 저장한다. 메타 데이터 관리자(1250)는 RAM에 저장된 메타 로그를 리드하고, 메타 데이터 영역에 프로그램 할 수 있다.
S650 단계에서, 메타 데이터 관리자(1250)는 PON 수신 마크를 메타 데이터 영역(1111)에 저장 할 수 있다. 메타 데이터 관리자(1250)는 메타 데이터 영역의 S640 단계에서 메타 로그를 저장한 인접 페이지에 PON 수신 마크를 프로그램 할 수 있다.
도 22을 참조하면, 메타 데이터 관리자(1250)는 메타 데이터 영역과 유저 데이터 영역에 수행된 이레이즈 횟수의 차이 값에 따라 메타 로그 저장여부를 결정 할 수 있다. 메타 데이터 관리자(1250)은 이레이즈 횟수 차이 값이 기준 값 보다 크거나 같으면, 메타 데이터 영역이 유저 데이터 영역보다 마모가 과하게 진행 되었다고 판단 할 수 있다. 따라서, 메타 데이터 관리자(1250)는 메타 데이터 영역의 수명을 연장 시키기 위해서 메타 로그를 메타 데이터 영역에 저장하지 않는다. 메타 데이터 관리자(1250)는 메타 데이터 영역(1111)에 수행될 프로그램과 이레이즈 횟수를 감소시켜서 메타 데이터 영역의 마모 현상을 감소 시킬 수 있다.
도 23은 도 1에 도시된 메타 데이터 관리자가 메타 로그를 생성하고 선택적으로 저장 하는 동작을 설명하기 위한 또 다른 실시 예를 보여주는 순서도 이다.
S710 단계에서, 메타 데이터 관리자(1250)는 PON 신호를 수신한다. 메타 데이터 관리자(1250)는 PON 신호를 호스트(1300)로부터 수신 할 수 있다.
S720 단계에서, 메타 데이터 관리자(1250)는 제 1시간 동안 메모리 컨트롤러(1200)에 수신된 PON 신호를 횟수를 확인 할 수 있다.
S730 단계에서, 메타 데이터 관리자(1250)는 제1 시간 동안 수신된 PON 신호 횟수와 제 6 기준값을 비교한다. 메타 데이터 관리자 (1250)는 수신된 PON 신호 횟수가 제 6 기준값 보다 작으면, S740 단계를 진행한다. 예시적으로, 제 6 기준값은 50 일 수 있다. 메타 데이터 관리자는 이전 메타 데이터 업데이트 이후, 수신된 PON 신호 횟수가 50 보다 작으면, S740 단계를 진행 할 수 있다. 메타 데이터 관리자(1250)은 메타 로그의 개수가 제6 기준값 보다 크거나 같으면, 메타 로그를 메타 데이터 영역(1111)에 저장 하지 않고 종료 한다.
S740 단계에서, 메타 데이터 관리자(1250)은 RAM에 저장된 메타 로그를 메모리 장치(1100)의 메타 데이터 영역(1111)에 저장한다. 메타 데이터 관리자(1250)는 RAM에 저장된 메타 로그를 리드하고, 메타 데이터 영역에 프로그램 할 수 있다.
S750 단계에서, 메타 데이터 관리자(1250)는 PON 수신 마크를 메타 데이터 영역(1111)에 저장 할 수 있다. 메타 데이터 관리자(1250)는 메타 데이터 영역의 S740 단계에서 메타 로그를 저장한 인접 페이지에 PON 수신 마크를 프로그램 할 수 있다.
도 23을 참조하면, 메타 데이터 관리자(1250)는 일정 시간 동안 수신된 PON 신호의 횟수에 따라 메타 로그 저장 여부를 결정 할 수 있다. 메타 데이터 관리자(1250)은 일정 시간 동안 수시한 PON 신호가 기준 값보다 크면, 메모리 시스템이 정상 동작을 하지 않는 다고 판단 할 수 있다. 따라서 메타 데이터 관리자(1250)은 비 정상 적인 상태에서 생성된 메모리 시스템(1000)의 메타 로그를 메타 데이터 영역(1111)에 저장하지 않는다. 메타 데이터 관리자(1250)는 메타 데이터 영역(1111)에 저장할 메타 로그의 양을 감소시킬 수 있다.
Ⅲ. 메타 데이터 관리자를 포함하는 다양한 적용 예
도 24 및 도 25은 본 발명에 따른 메모리 시스템의 다양한 적용 예를 보여주는 블록도이다. 도 24 및 도 25를 참조하면, 메모리 시스템(2000a, 2000b)은 저장 장치(2100a, 2100b) 및 호스트(2200a, 2200b)를 포함한다. 저장 장치(2100a, 2100b)는 플래시 메모리(2110a, 2110b) 및 메모리 컨트롤러(2120a, 2120b)를 포함한다.
저장 장치(2100a, 2100b)는 메모리 카드(예를 들면, SD, MMC 등)나 착탈 가능한 이동식 저장 장치(예를 들면, USB 메모리 등)와 같은 저장 매체를 포함한다. 저장 장치(2100a, 2100b)는 호스트(2200a, 2200b)와 연결되어 사용될 수 있다. 저장 장치(2100a, 2100b)는 호스트 인터페이스를 통해 호스트와 데이터를 주고 받는다. 저장 장치(2100a, 2100b)는 호스트(2200a, 2200b)로부터 전원을 공급받아서 내부 동작을 수행할 수 있다.
도 24을 참조하면, 메타 데이터 관리자(2101a)는 플래시 메모리(2110a) 내에 포함될 수 있다. 도 25를 참조하면, 메타 데이터 관리자(2201b)는 호스트(2200b) 내에 포함될 수 있다. 본 발명의 실시 예에 따른 메모리 시스템(2000a, 2000b)은 메타 데이터 관리자(2101a, 2201b)를 이용하여, 메타 로그를 효율적으로 저장하여 메타 데이터 영역의 열화 현상을 개선하고 메모리 장치의 수명을 연장 할 수 있다.
도 26은 본 발명의 실시 예에 따른 메모리 시스템을 메모리 카드 시스템에 적용한 예를 보여주는 블록도이다. 메모리 카드 시스템(3000)은 호스트(3100)와 메모리 카드(3200)를 포함한다. 호스트(3100)는 호스트 컨트롤러(3110), 호스트 접속 유닛(3120), 그리고 디램(3130)을 포함한다.
호스트(3100)는 메모리 카드(3200)에 데이터를 쓰거나, 메모리 카드(3200)에 저장된 데이터를 읽는다. 호스트 컨트롤러(3110)는 커맨드(예를 들면, 쓰기 커맨드), 호스트(3100) 내의 클록 발생기(도시되지 않음)에서 발생한 클록 신호(CLK), 그리고 데이터(DAT)를 호스트 접속 유닛(3120)을 통해 메모리 카드(3200)로 전송한다. 디램(3130)은 호스트(3100)의 메인 메모리이다.
메모리 카드(3200)는 카드 접속 유닛(3210), 카드 컨트롤러(3220), 그리고 플래시 메모리(3230)를 포함한다. 카드 컨트롤러(3220)는 카드 접속 유닛(3210)을 통해 수신된 커맨드에 응답하여, 카드 컨트롤러(3220) 내에 있는 클록 발생기(도시되지 않음)에서 발생한 클록 신호에 동기하여 데이터를 플래시 메모리(3230)에 저장한다. 플래시 메모리(3230)는 호스트(3100)로부터 전송된 데이터를 저장한다. 예를 들어, 호스트(3100)가 디지털 카메라인 경우에는 영상 데이터를 저장한다.
호스트 컨트롤러(3110) 또는 카드 컨트롤러(3220)는 내부에 메타 데이터 관리자(도시되지 않음)를 포함 할 수 있다. 본 발명의 실시 예에 따른 카드 시스템(3000)은 메타 데이터 관리자(도시되지 않음)을 이용하여, 메모리 메타 로그 저장 동작을 최적화하여 메타 로그 저장으로 발생하는 메타 데이터 영역의 열화 현상을 개선하고 플래시 메모리(3230)의 수명을 연장 할 수 있다.
도 27는 본 발명의 실시 예에 따른 메모리 시스템을 솔리드 스테이트 드라이브(SSD) 시스템에 적용한 예를 보여주는 블록도이다. 도 27을 참조하면, SSD 시스템(4000)은 호스트(4100)와 SSD(4200)를 포함한다. 호스트(4100)는 호스트 인터페이스(4111), 호스트 컨트롤러(4120), 그리고 디램(4130)을 포함한다.
호스트(4100)는 SSD(4200)에 데이터를 쓰거나, SSD(4200)에 저장된 데이터를 읽는다. 호스트 컨트롤러(4120)는 커맨드, 어드레스, 제어 신호 등의 신호(SGL)를 호스트 인터페이스(4111)를 통해 SSD(4200)로 전송한다. 디램(4130)은 호스트(4100)의 메인 메모리이다.
SSD(4200)는 호스트 인터페이스(4211)를 통해 호스트(4100)와 신호(SGL)를 주고 받으며, 전원 커넥터(power connector, 4221)를 통해 전원을 입력받는다. SSD(4200)는 복수의 불휘발성 메모리(4201~420n), SSD 컨트롤러(4210), 그리고 보조 전원 장치(4220)를 포함할 수 있다. 여기에서, 복수의 불휘발성 메모리(4201~420n)는 낸드 플래시 메모리 이외에도 PRAM, MRAM, ReRAM, FRAM 등으로 구현될 수 있다.
복수의 불휘발성 메모리(4201~420n)는 SSD(4200)의 저장 매체로서 사용된다. 복수의 불휘발성 메모리(4201~420n)는 복수의 채널(CH1~CHn)을 통해 SSD 컨트롤러(4210)와 연결될 수 있다. 하나의 채널에는 하나 또는 그 이상의 불휘발성 메모리가 연결될 수 있다. 하나의 채널에 연결되는 불휘발성 메모리는 동일한 데이터 버스에 연결될 수 있다.
SSD 컨트롤러(4210)는 호스트 인터페이스(4211)를 통해 호스트(4100)와 신호(SGL)를 주고 받는다. 여기에서, 신호(SGL)에는 커맨드, 어드레스, 데이터 등이 포함될 수 있다. SSD 컨트롤러(4210)는 호스트(4100)의 커맨드에 따라 해당 불휘발성 메모리에 데이터를 쓰거나 해당 불휘발성 메모리로부터 데이터를 읽어낸다. SSD 컨트롤러(4210)의 내부 구성은 도 28를 참조하여 상세하게 설명된다.
보조 전원 장치(4220)는 전원 커넥터(4221)를 통해 호스트(4100)와 연결된다. 보조 전원 장치(4220)는 호스트(4100)로부터 전원(PWR)을 입력 받고, 충전할 수 있다. 한편, 보조 전원 장치(4220)는 SSD(4200) 내에 위치할 수도 있고, SSD(4200) 밖에 위치할 수도 있다. 예를 들면, 보조 전원 장치(4220)는 메인 보드에 위치하며, SSD(4200)에 보조 전원을 제공할 수도 있다.
도 28은 도 27에 도시된 SSD 컨트롤러(4210)의 구성을 예시적으로 보여주는 블록도이다. 도 28를 참조하면, SSD 컨트롤러(4210)는 NVM 인터페이스(4211), 호스트 인터페이스(4212), 메타 데이터 관리자(4213), 제어 유닛(4214), 그리고 에스램(4215)을 포함한다.
NVM 인터페이스(4211)는 호스트(4100)의 메인 메모리로부터 전달된 데이터를 각각의 채널들(CH1~CHn)로 스캐터링(Scattering)한다. 그리고 NVM 인터페이스(4211)는 불휘발성 메모리(4201~420n)로부터 읽은 데이터를 호스트 인터페이스(4212)를 경유하여 호스트(4100)로 전달한다.
호스트 인터페이스(4212)는 호스트(4100)의 프로토콜에 대응하여 SSD(4200)와의 인터페이싱을 제공한다. 호스트 인터페이스(4212)는 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI) 등을 이용하여 호스트(4100)와 통신할 수 있다. 또한, 호스트 인터페이스(4212)는 호스트(4100)가 SSD(4200)를 하드 디스크 드라이브(HDD)로 인식하도록 지원하는 디스크 에뮬레이션(Disk Emulation) 기능을 수행할 수 있다.
메타 데이터 관리자(4213)는 앞에서 설명한 바와 같이 불휘발성 메모리(4201~420n)의 메타 로그 저장 동작을 관리할 수 있다. 제어 유닛(4214)은 호스트(4100)로부터 입력된 신호(SGL)를 분석하고 처리한다. 제어 유닛(4214)은 호스트 인터페이스(4212)나 NVM 인터페이스(4211)를 통해 호스트(4100)나 불휘발성 메모리(4201~420n)를 제어한다. 제어 유닛(4214)은 SSD(4200)을 구동하기 위한 펌웨어에 따라서 불휘발성 메모리(4201~420n)의 동작을 제어한다.
에스램(4215)은 불휘발성 메모리(4201~420n)의 효율적 관리를 위해 사용되는 소프트웨어(S/W)를 구동하는 데 사용될 수 있다. 또한, 에스램(4215)은 호스트(4100)의 메인 메모리로부터 입력받은 메타 데이터를 저장하거나, 캐시 데이터를 저장할 수 있다. 서든 파워 오프 동작 시에, 에스램(4215)에 저장된 메타 데이터나 캐시 데이터는 보조 전원 장치(4220)를 이용하여 불휘발성 메모리(4201~420n)에 저장될 수 있다.
다시 도 28를 참조하면, 본 발명의 실시 예에 따른 SSD 시스템(4000)은 앞에서 설명한 바와 같이, SSD(4200)의 메타 데이터 관리자(4213)를 이용하여, 메타 데이터 저장 동작을 최적화하여 메타 데이터 저장으로 발생하는 메타 데이터 영역의 열화 현상을 개선하고 메모리 장치의 수명을 연장 할 수 있다.
도 29은 본 발명의 실시 예에 따른 메모리 시스템을 전자 장치로 구현한 예를 보여주는 블록도이다. 여기에서, 전자 장치(5000)는 퍼스널 컴퓨터(PC)로 구현되거나, 노트북 컴퓨터, 휴대폰, PDA(Personal Digital Assistant), 그리고 카메라 등과 같은 휴대용 전자 장치로 구현될 수 있다.
도 29을 참조하면, 전자 장치(5000)는 메모리 시스템(5100), 전원 장치(5200), 보조 전원 장치(5250), 중앙처리장치(5300), 디램(5400), 그리고 사용자 인터페이스(5500)를 포함한다. 메모리 시스템(5100)은 플래시 메모리(5110) 및 메모리 컨트롤러(5120)를 포함한다. 메모리 시스템(5100)은 전자 장치(5000)에 내장될 수 있다.
앞에서 설명한 바와 같이, 본 발명에 따른 전자 장치(5000)는 메모리 시스템의 메타 데이터 관리자를 이용하여, 메타 로그 저장 동작을 최적화하여 메타 로그 프로그램으로 발생하는 메타 데이터 영역의 열화 현상을 개선하고 메모리 장치의 수명을 연장할 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위와 기술적 사상에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
1000: 메모리 시스템 1100: 메모리 장치
1200: 메모리 컨트롤러 1300: 호스트
1210: 시스템 버스 1220: 호스트 인터페이스
1230: 프로세서 1240: RAM
1250: 메타 데이터 관리자 1260: 메모리 인터페이스
1110: 3차원 셀 어레이 1111: 메타 데이터 영역
1112: 유저 데이터 영역

Claims (19)

  1. 메모리 시스템의 동작 방법에 있어서:
    상기 메모리 시스템은 메타 데이터 영역과 유저 데이터 영역을 갖는 불휘발성 메모리와 메타 데이터 관리자를 갖는 메모리 컨트롤러를 포함하고,
    상기 메모리 시스템의 동작 방법은,
    상기 유저 데이터 영역의 제 1 메모리 블록에 제 1 데이터를 프로그램하고,
    상기 메타 데이터 관리자는,
    상기 프로그램에 기초하여 메타 로그를 생성하고
    상기 메타 로그를 상기 메모리 컨트롤러에 저장하고,
    파워 오프 동작 시에, 상기 불 휘발성 메모리의 상태 정보에 기초하여 상기 메타 로그를 선택적으로 상기 불 휘발성 메모리의 메타 데이터 영역에 저장하고,
    상기 메타 로그는 상기 제 1 데이터가 저장된 상기 제 1 메모리 블록의 제 1 물리적 주소를 포함하고,
    상기 제 1 메모리 블록은 복수개의 페이지를 포함하고,
    상기 복수개의 페이지 각각은 메인 파트와 스페어 파트를 포함하고,
    상기 제1 데이터는 상기 메인 파트에 저장되고, 상기 제 1 데이터가 저장된 제 1 물리적 주소에 대응하는 제 1 논리적 주소가 상기 스페어 파트에 저장되는 메모리 시스템의 동작 방법.
  2. 제 1항에 있어서,
    상기 불 휘발성 메모리의 상태 정보는 마지막 메타 로그 저장 동작 이후에, 상기 제 1 메모리 블록에 수행된 프로그램 횟수이고,
    상기 메타 데이터 관리자는 상기 프로그램 횟수가 제 1 기준값 보다 클 때, 상기 메타 로그를 상기 불 휘발성 메모리의 상기 메타 데이터 영역에 저장하고,
    상기 프로그램 횟수가 상기 제 1 기준값 보다 작거나 같으면, 메타 로그 저장 동작을 생략하는 메모리 시스템의 동작 방법.
  3. 제 1항에 있어서,
    상기 불 휘발성 메모리의 상태 정보는 마지막 메타 로그 저장 동작 이후에, 상기 제 1 메모리 블록에 프로그램 된 데이터의 양이고,
    상기 메타 데이터 관리자는
    상기 프로그램 된 데이터의 양이 제 2 기준값 보다 클 때, 상기 메타 로그를 상기 불휘발성 메모리의 상기 메타 데이터 영역에 저장하고,
    상기 프로그램 된 데이터 양이 제 2 기준값 보다 작거나 같으면, 메타 로그 저장 동작을 생략하는 메모리 시스템의 동작 방법.
  4. 제 1항에 있어서,
    상기 불 휘발성 메모리의 상태 정보는 마지막 메타 로그 저장 동작 이후에, 생성된 메타 로그의 개수이고,
    상기 메타 데이터 관리자는 상기 메타 로그의 개수가 제 3 기준값 보다 클 때, 상기 메타 로그를 상기 불휘발성 메모리의 상기 메타 데이터 영역에 저장하고,
    상기 생성된 메타 로그의 개수가 제 3 기준값 보다 작거나 같으면, 메타 로그 저장 동작을 생략하는 메모리 시스템의 동작 방법.
  5. 제 1항에 있어서,
    상기 불 휘발성 메모리의 상태 정보는 상기 메타 데이터 영역의 이레이즈 횟수이고,
    상기 메타 데이터 관리자는 상기 이레이즈 횟수가 제 4 기준값 보다 작을 때, 상기 메타 로그를 상기 불휘발성 메모리의 상기 메타 데이터 영역에 저장하고,
    상기 메타 데이터 영역의 이레이즈 횟수가 제 4 기준값 보다 크거나 같으면, 메타 로그 저장 동작을 생략하는 메모리 시스템의 동작 방법.
  6. 제 1항에 있어서,
    상기 불 휘발성 메모리의 상태 정보는 상기 메타 데이터 영역의 이레이즈 횟수와 상기 제 1 메모리 블록의 이레이즈 횟수의 차이 값이고,
    상기 메타 데이터 관리자는
    상기 이레이즈 횟수의 차이 값이 제 5 기준값 보다 작을 때, 상기 메타 로그를 상기 불휘발성 메모리의 상기 메타 데이터 영역에 저장하고,
    상기 이레이즈 횟수의 차이가 제 5 기준값 보다 크거나 같으면, 메타 로그 저장 동작을 생략하는 메모리 시스템의 동작 방법.
  7. 제 1항에 있어서,
    상기 불 휘발성 메모리의 상태 정보는 제 1 시간 동안 상기 메모리 컨트롤러에 수신된 상기 파워 오프 동작을 알리는 알림 신호의 횟수이고,
    상기 메타 데이터 관리자는
    상기 알림 신호의 횟수가 제 6 기준값 보다 작을 때, 상기 메타 로그를 상기 불휘발성 메모리의 상기 메타 데이터 영역에 저장하고,
    상기 알림 신호의 횟수가 제 6 기준값 보다 크거나 같으면, 메타 로그 저장 동작을 생략하는 메모리 시스템의 동작 방법.
  8. 제 1항에 있어서,
    상기 메모리 컨트롤러는 RAM을 포함하며, 상기 RAM은 상기 메타 로그를 저장하는 것을 특징으로 하는 메모리 시스템의 동작 방법.
  9. 제 8항에 있어서,
    상기 메타 로그를 상기 불휘발성 메모리의 메타 데이터 영역에 저장하는 것은
    상기 RAM 에 저장된 상기 메타 로그를 상기 불휘발성 메모리의 메타 데이터 영역에 프로그램 하고,
    파워 오프 동작을 알리는 알림 신호의 수신 마크를 상기 메타 데이터 영역의 상기 메타 로그가 저장된 인접한 페이지에 저장하는 메모리 시스템의 동작 방법.
  10. 제 1항에 있어서,
    상기 메타 데이터 영역은
    복수개의 메타 인덱스를 포함하는 이니셜 메타 데이터 및 상기 메타 로그를 포함하는 메모리 시스템의 동작 방법.
  11. 제 1항에 있어서,
    상기 불휘발성 메모리는 3차원 플래시 메모리인 것을 특징으로 하는 메모리 시스템의 동작 방법.
  12. 메모리 컨트롤러의 동작 방법에 있어서:
    상기 메모리 컨트롤러는 메타 데이터 관리자를 포함하고, 메타 데이터 영역과 유저 데이터 영역을 갖는 불 휘발성 메모리의 동작 조건을 컨트롤 하되,
    상기 메모리 컨트롤러의 동작 방법은,
    상기 불 휘발성 메모리의 상기 유저 데이터 영역의 제 1 메모리 블록의 제 1워드라인에 제 1 데이터를 프로그램하고,
    상기 메타 데이터 관리자는,
    상기 프로그램에 기초하여 메타 로그를 생성하고,
    상기 생성된 메타 로그를 상기 메모리 컨트롤러에 저장하고,
    파워 오프 동작 시에, 상기 제 1 메모리 블록에 수행된 프로그램 횟수에 기초하여 상기 메타 로그를 선택적으로 상기 메타 데이터 영역에 저장하고,
    상기 제 1 워드라인은 메인 파트와 스페어 파트를 포함하고,
    상기 제 1데이터는 상기 메인 파트에 저장되고 상기 제 1워드라인에 대응하는 제 1 논리적 주소는 상기 스페어 파트에 저장되는 메모리 컨트롤러의 동작 방법.
  13. 제 12항에 있어서,
    상기 메모리 컨트롤러는 RAM을 포함 하며,
    상기 메타 로그는 상기 메모리 컨트롤의 상기 RAM에 저장되는 메모리 컨트롤러의 동작 방법.
  14. 제 12 항에 있어서,
    상기 메타 데이터 영역은 제 1 메타 페이지를 포함하고,
    상기 제 1 메타 페이지는 메타 메인 파트와 메타 스페어 파트를 포함하고,
    상기 메타 데이터 관리자는 상기 메타 메인 파트에 매핑 정보를 저장 하고, 상기 메타 스페어 파트에 메타 인덱스를 저장 하는 메모리 컨트롤러의 동작 방법.
  15. 제 14항에 있어서,
    상기 메타 데이터 영역은 이니셜 메타 데이터를 포함하고,
    상기 이니셜 메타 데이터는 최초 매핑 정보를 포함하는 메모리 컨트롤러의 동작방법.
  16. 제 12항에 있어서,
    상기 불 휘발성 메모리는 3차원 플래시 메모리인 것을 특징으로 하는 메모리 컨트롤러의 동작 방법.
  17. 삭제
  18. 삭제
  19. 삭제
KR1020150035049A 2015-03-13 2015-03-13 메타 데이터 관리자를 포함하는 메모리 시스템 및 동작 방법 KR102403202B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150035049A KR102403202B1 (ko) 2015-03-13 2015-03-13 메타 데이터 관리자를 포함하는 메모리 시스템 및 동작 방법
US14/995,758 US9891838B2 (en) 2015-03-13 2016-01-14 Method of operating a memory system having a meta data manager

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150035049A KR102403202B1 (ko) 2015-03-13 2015-03-13 메타 데이터 관리자를 포함하는 메모리 시스템 및 동작 방법

Publications (2)

Publication Number Publication Date
KR20160110832A KR20160110832A (ko) 2016-09-22
KR102403202B1 true KR102403202B1 (ko) 2022-05-30

Family

ID=56887814

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150035049A KR102403202B1 (ko) 2015-03-13 2015-03-13 메타 데이터 관리자를 포함하는 메모리 시스템 및 동작 방법

Country Status (2)

Country Link
US (1) US9891838B2 (ko)
KR (1) KR102403202B1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180054364A (ko) * 2016-11-15 2018-05-24 삼성전자주식회사 트레이스 데이터를 생성하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
KR20180058328A (ko) * 2016-11-24 2018-06-01 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작 방법
US10282294B2 (en) 2017-02-15 2019-05-07 Samsung Electronics Co., Ltd. Mitigating DRAM cache metadata access overhead with SRAM metadata cache and bloom filter
KR20180097026A (ko) * 2017-02-22 2018-08-30 에스케이하이닉스 주식회사 불휘발성 메모리 장치, 그것을 포함하는 데이터 저장 장치 및 데이터 저장 장치의 동작 방법
KR102234725B1 (ko) * 2017-05-30 2021-04-02 에스케이하이닉스 주식회사 컨트롤러 및 메모리 시스템 및 메모리 시스템의 동작 방법
KR102430798B1 (ko) * 2018-01-11 2022-08-10 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10854299B2 (en) * 2018-05-31 2020-12-01 Micron Technology, Inc. Data erase operations for a memory system
KR102553261B1 (ko) 2018-10-10 2023-07-07 삼성전자 주식회사 메모리 컨트롤러, 상기 메모리 컨트롤러를 포함하는 스토리지 장치, 및 상기 메모리 컨트롤러의 동작 방법
KR20200099825A (ko) * 2019-02-15 2020-08-25 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
JP6727365B1 (ja) * 2019-03-27 2020-07-22 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
US10990311B2 (en) 2019-06-19 2021-04-27 Western Digital Technologies, Inc. Multi-stream non-volatile storage system
CN115729478B (zh) * 2023-01-10 2023-05-02 苏州浪潮智能科技有限公司 固态硬盘block修正方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100280995A1 (en) 2009-04-30 2010-11-04 Texas Instruments Incorporated File systems, processes, circuits, devices and electronic systems
US20120069664A1 (en) * 2010-09-20 2012-03-22 Kim Yongjune Flash memory system and word line interleaving method thereof
US20130042054A1 (en) * 2011-08-09 2013-02-14 Samsung Electronics Co., Ltd. Methods of Managing Meta Data in a Memory System and Memory Systems Using the Same
US20140310483A1 (en) * 2005-04-21 2014-10-16 Violin Memory Inc. Method and system for storage of data in non-volatile media
US20150347247A1 (en) 2014-06-03 2015-12-03 Jungwon University Industry Academy Cooperation Corps. Read/write cache device and method persistent in the event of a power failure

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7533214B2 (en) 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
JP2010086009A (ja) 2008-09-29 2010-04-15 Hitachi Ltd 記憶装置およびメモリ制御方法
KR101543431B1 (ko) * 2008-11-20 2015-08-11 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 액세스 방법
US8874824B2 (en) 2009-06-04 2014-10-28 Memory Technologies, LLC Apparatus and method to share host system RAM with mass storage memory RAM
JP5377175B2 (ja) 2009-09-08 2013-12-25 株式会社東芝 コントローラ、及びデータ記憶装置
KR20110046243A (ko) 2009-10-27 2011-05-04 삼성전자주식회사 사용자 장치 및 그것의 맵핑 데이터 관리 방법
KR101691092B1 (ko) 2010-08-26 2016-12-30 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8553466B2 (en) 2010-03-04 2013-10-08 Samsung Electronics Co., Ltd. Non-volatile memory device, erasing method thereof, and memory system including the same
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
JP5570406B2 (ja) 2010-12-14 2014-08-13 株式会社日立製作所 メモリコントローラ、及びデータ記録装置
KR101890767B1 (ko) 2011-07-01 2018-09-28 시게이트 테크놀로지 인터내셔날 주소 사상 정보 관리 방법 이를 적용한 저장 장치
KR20130019891A (ko) 2011-08-18 2013-02-27 삼성전자주식회사 메타 라이팅 빈도를 줄이기 위한 메타 데이터 라이팅 방법
JP2013061799A (ja) 2011-09-13 2013-04-04 Toshiba Corp 記憶装置、記憶装置の制御方法およびコントローラ
US9104614B2 (en) 2011-09-16 2015-08-11 Apple Inc. Handling unclean shutdowns for a system having non-volatile memory
KR101301828B1 (ko) 2011-09-29 2013-08-29 한양대학교 산학협력단 플래시 메모리에 기반한 ssd에서의 전원-손실 복구 방법 및 장치
JP2013196155A (ja) 2012-03-16 2013-09-30 Toshiba Corp メモリシステム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140310483A1 (en) * 2005-04-21 2014-10-16 Violin Memory Inc. Method and system for storage of data in non-volatile media
US20100280995A1 (en) 2009-04-30 2010-11-04 Texas Instruments Incorporated File systems, processes, circuits, devices and electronic systems
US20120069664A1 (en) * 2010-09-20 2012-03-22 Kim Yongjune Flash memory system and word line interleaving method thereof
US20130042054A1 (en) * 2011-08-09 2013-02-14 Samsung Electronics Co., Ltd. Methods of Managing Meta Data in a Memory System and Memory Systems Using the Same
US20150347247A1 (en) 2014-06-03 2015-12-03 Jungwon University Industry Academy Cooperation Corps. Read/write cache device and method persistent in the event of a power failure

Also Published As

Publication number Publication date
KR20160110832A (ko) 2016-09-22
US9891838B2 (en) 2018-02-13
US20160266795A1 (en) 2016-09-15

Similar Documents

Publication Publication Date Title
KR102403202B1 (ko) 메타 데이터 관리자를 포함하는 메모리 시스템 및 동작 방법
KR102239356B1 (ko) 클록 제어 유닛 또는 전원 제어 유닛을 포함하는 저장 장치와 메모리 시스템, 그리고 그것의 동작 방법
KR102501751B1 (ko) 메모리 콘트롤러, 불휘발성 메모리 시스템 및 그 동작방법
KR101861170B1 (ko) 마이그레이션 관리자를 포함하는 메모리 시스템
KR102190670B1 (ko) 마이그레이션 관리자를 포함하는 메모리 시스템
KR102210961B1 (ko) 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 동적 접근 방법
KR101979392B1 (ko) 불휘발성 메모리 장치 및 그것의 프로그램 방법
KR102015906B1 (ko) 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 읽기 방법
KR101997572B1 (ko) 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 쓰기 방법
KR102365269B1 (ko) 데이터 스토리지 및 그것의 동작 방법
KR101891164B1 (ko) 프로그램 스케줄러를 포함하는 플래시 메모리 장치
KR20150139112A (ko) 가비지 컬렉션 유닛을 포함하는 메모리 시스템 및 동작 방법
KR102245822B1 (ko) 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 프로그램 방법
KR20130057306A (ko) 플래시 메모리를 기반으로 하는 저장 장치 및 그것을 포함한 사용자 장치
KR20160039018A (ko) 이레이즈 컨트롤 유닛을 포함하는 메모리 시스템 및 동작 방법
KR102140512B1 (ko) 불휘발성 메모리 장치, 불휘발성 메모리 장치를 포함하는 불휘발성 메모리 시스템 및 불휘발성 메모리 시스템의 동작 방법
KR20190101095A (ko) 키-밸류 스토리지 장치 및 이의 동작 방법
KR20130128685A (ko) 불휘발성 메모리 장치 및 그것의 프로그램 방법
KR20210001414A (ko) 메모리 시스템, 메모리 컨트롤러 및 그 저장 방법
CN111435289A (zh) 映射数据访问性能提高的存储器控制器及其操作方法
US11704048B2 (en) Electronic device
KR20210057355A (ko) 메모리 장치, 메모리 컨트롤러, 메모리 시스템 및 그 동작 방법
KR20210101785A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
KR20200132171A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 장치
KR20200057473A (ko) 스토리지 장치 및 이를 포함하는 스토리지 시스템

Legal Events

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