KR20200086143A - 저장 장치 및 그것의 데이터 처리 방법 - Google Patents

저장 장치 및 그것의 데이터 처리 방법 Download PDF

Info

Publication number
KR20200086143A
KR20200086143A KR1020190002399A KR20190002399A KR20200086143A KR 20200086143 A KR20200086143 A KR 20200086143A KR 1020190002399 A KR1020190002399 A KR 1020190002399A KR 20190002399 A KR20190002399 A KR 20190002399A KR 20200086143 A KR20200086143 A KR 20200086143A
Authority
KR
South Korea
Prior art keywords
metadata
data
journal data
block
journal
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
KR1020190002399A
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 KR1020190002399A priority Critical patent/KR20200086143A/ko
Priority to US16/551,298 priority patent/US11487630B2/en
Priority to CN201911152698.8A priority patent/CN111414342B/zh
Publication of KR20200086143A publication Critical patent/KR20200086143A/ko
Priority to KR1020240161965A priority patent/KR20240165314A/ko
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 operations
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 operations
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 operations
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 operations
    • G06F11/1471Error detection or correction of the data by redundancy in operations involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/38Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/383Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/907Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/908Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/304In main memory subsystem

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Library & Information Science (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 개시에 따르면, 저장 장치는 메타 데이터 영역과 저널 데이터 영역을 포함하는 메모리 장치 및 메모리 장치가 메타 데이터를 포함하는 메타 데이터 블록을 메타 데이터 영역에 기입하도록 메모리 장치를 제어하고, 메모리 장치가 메타 데이터에 대한 로그 정보를 포함하는 저널 데이터 및 메타 데이터 블록의 저장에 관한 정보를 포함하는 메타 데이터 저장 정보를 포함하는 저널 데이터 블록을 저널 데이터 영역에 기입하도록 메모리 장치를 제어하도록 구성되는 메모리 컨트롤러를 포함할 수 있다.

Description

저장 장치 및 그것의 데이터 처리 방법{STORAGE DEVICE AND DATA PROCESSING METHOD THEREOF}
본 개시의 기술적 사상은 저장 장치 및 저장 장치의 데이터 처리 방법에 관한 것으로서, 자세하게는 저널 데이터를 이용해 사용자 데이터 및/또는 메타 데이터를 업데이트하는 저장 장치 및 그것의 데이터 처리 방법에 관한 것이다.
스마트 폰, 태블릿 및 컴퓨터와 같은 전자 장치는 다양한 사용자 경험을 제공하기 위해, 다양한 데이터들을 저장할 수 있다. 다양한 데이터의 운용을 위해서, 전자 장치는 주 메모리(예를 들어, RAM(Random Access Memory) 및 저장 장치를 포함할 수 있다.
전자 장치의 동작 중에 예상하지 못한 전원 문제 또는 시스템 크래시(system crash) 등이 발생하는 경우, 파일 시스템의 일부 데이터가 손상되는 문제가 발생할 수 있다. 전자 장치는 이러한 상황에 대비하여 저널링(journaling) 파일 시스템을 구현할 수 있다. 저널링 파일 시스템은 주 파일 시스템에 변경 사항을 반영하기 이전에 메모리 안에 변경 사항을 로깅하여 변경 사항을 추적하기 위한 파일 시스템이다.
본 개시의 기술적 사상은 저장 장치 및 저장 장치의 데이터 처리 방법에 있어서, 메모리 장치에 기입되는 메타 데이터의 양을 줄이고, 서든 파워 오프(sudden power off)와 같은 예상치 못한 이벤트(event)가 발생한 경우에도 메타 데이터와 저널 데이터 간의 정합성(consistency)을 보장하기 위한 방법 및 장치를 제공한다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 저장 장치는, 메타 데이터 영역과 저널 데이터 영역을 포함하는 메모리 장치 및 메모리 장치가 메타 데이터를 포함하는 메타 데이터 블록을 메타 데이터 영역에 기입하도록 메모리 장치를 제어하고, 메모리 장치가 메타 데이터에 대한 로그 정보를 포함하는 저널 데이터 및 메타 데이터 블록의 저장에 관한 정보를 포함하는 메타 데이터 저장 정보를 포함하는 저널 데이터 블록을 저널 데이터 영역에 기입하도록 메모리 장치를 제어하도록 구성되는 메모리 컨트롤러를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 저장 장치의 데이터 처리 방법은, 메모리 컨트롤러가, 메타 데이터를 메타 데이터 블록에 축적하는 단계, 메모리 컨트롤러가, 메타 데이터에 대한 로그 정보를 포함하는 저널 데이터를 저널 데이터 블록에 축적하는 단계, 메모리 컨트롤러가, 메타 데이터 블록이 메모리 장치의 메타 데이터 영역에 기입되는 것에 응답하여 메타 데이터 블록의 저장에 관한 메타 데이터 저장 정보를 저널 데이터 블록에 추가하는 단계 및 저널 데이터 블록에 축적된 데이터의 용량이 제2 사이즈에 도달하는 경우, 저널 데이터 블록을 메모리 장치의 저널 데이터 영역에 기입하는 단계를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 저장 장치의 데이터 처리 방법은, 메모리 컨트롤러가, 제1 저널 데이터를 저널 데이터 블록에 축적하는 단계, 제1 메타 데이터 블록을 메모리 장치의 메타 데이터 영역에 기입하는 단계, 메모리 컨트롤러가, 제1 메타 데이터 블록의 저장에 관한 메타 데이터 저장 정보를 저널 데이터 블록에 축적하는 단계, 메모리 컨트롤러가, 제2 저널 데이터를 저널 데이터 블록에 축적하는 단계 및 저널 데이터 블록을 메모리 장치의 저널 데이터 영역에 기입하는 단계를 포함할 수 있다.
본 개시의 예시적 실시 예에 따른 저장 장치 및 저장 장치의 데이터 처리 방법에 의하면, 메타 데이터 및 저널 데이터를 각각 메타 데이터 블록 및 저널 데이터 블록에 분리하여 관리 및 저장함으로써, 메모리 장치에 기입되는 메타 데이터의 양이 감소될 수 있다. 이에 따라, 저장 장치가 불필요하게 낭비하는 전력이 감소되어, 저장 장치의 성능이 향상될 수 있다.
또한, 상기 메타 데이터 블록이 메모리 장치에 저장되는 때에 저널 데이터 블록에 메타 데이터 저장 정보를 추가함으로써, 서든 파워 오프와 같은 예상치 못한 이벤트가 발생한 경우에도 메타 데이터와 저널 데이터 간의 정합성이 보장될 수 있다.
또한, 저장 장치 외부의 데이터 보장 요청에 기초해 L1 캐시의 모든 영역에 저장된 데이터를 하나의 블록으로서 메모리 장치의 저널 데이터 영역에 저장하여, 서든 파워와 같은 예상치 못한 이벤트가 발생한 경우에도 L1 캐시에 저장된 저널 데이터를 보호할 수 있다.
뿐만 아니라, 저장 장치가 메타 데이터를 저장하는 DRAM과 같은 버퍼 메로리를 포함하지 않거나, 적은 용량의 버퍼 메모리를 포함하는 경우에도, 저널 데이터와 메타 데이터 간의 정합성이 보장될 수 있다.
저널 데이터와 메타 데이터 간의 정합성이 보장됨에 따라, 저장 장치의 신뢰성이 증가할 수 있다.
도 1은 본 개시의 예시적 실시 예에 따른 데이터 처리 시스템을 나타낸다.
도 2는 본 개시의 예시적 실시 예에 따른 메모리 컨트롤러를 나타낸다.
도 3은 본 개시의 예시적 실시 예에 따른 데이터 처리 시스템의 소프트웨어 계층을 나타낸다.
도 4는 본 개시의 예시적 실시 예에 따른 메모리 장치를 나타낸다.
도 5a 및 도 5b는 관련 기술에 따른 메타 데이터 블록들을 나타낸다.
도 6은 본 개시의 예시적 실시 예에 따른 메타 데이터 블록 및 저널 데이터 블록을 나타낸다.
도 7은 본 개시의 예시적 실시 예에 따른 저장 장치의 데이터 처리 방법 순서도를 나타낸다.
도 8은 본 개시의 예시적 실시 예에 따른 저장 장치의 데이터 처리 방법 순서도를 나타낸다.
도 9는 본 개시의 예시적 실시 예에 따른 저장 장치의 데이터 처리 방법 순서도를 나타낸다.
도 10은 본 개시의 예시적 실시 예에 따른 메타 데이터 블록들 및 저널 데이터 블록들을 나타낸다.
도 11은 본 개시의 예시적 실시 예에 따른 메모리 셀 어레이를 나타낸다.
도 12는 본 개시의 예시적 실시 예에 따른 저장 장치의 데이터 처리 방법 순서도를 나타낸다.
도 13은 본 개시의 예시적 실시 예에 따른 데이터 처리 시스템을 나타낸다.
도 14는 본 개시의 예시적 실시 예에 따른 L1 캐시, L2 캐시 및 저널 데이터 영역을 나타낸다.
도 15는 본 개시의 예시적 실시 예에 따른 저장 장치의 데이터 처리 방법 순서도를 나타낸다.
도 16은 본 개시의 예시적 실시 예에 따른 저널 데이터 영역 및 L1 캐시를 나타낸다.
도 17은 본 개시의 예시적 실시 예에 따른 SSD 시스템을 나타낸다.
이하, 첨부한 도면을 참조하여 본 발명의 실시예에 대해 상세히 설명한다.
도 1은 본 개시의 예시적 실시 예에 따른 데이터 처리 시스템(10)을 나타낸다. 데이터 처리 시스템(10)은 호스트(100) 및 메모리 시스템(400)을 포함할 수 있고, 메모리 시스템(400)은 메모리 컨트롤러(200) 및 메모리 장치(300)를 포함할 수 있다. 데이터 처리 시스템(10)은 UMPC(Ultra Mobile PC), 워크스테이션, 넷북(net book), PDA(Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 태블릿(web tablet), 무선전화기(wireless phone), 모바일 폰(mobile phone), 스마트 폰(smart phone), e-북(e-book), PMP(Portable Multimedia Player), 휴대용 게임기, 네비게이션(navigation) 장치, 블랙 박스(black box) 및 디지털 카메라(digital camera) 등과 같은 다양한 전자 장치들 중 하나에 적용될 수 있다.
데이터 처리 시스템(10)은 다양한 형태로 구현될 수 있다. 예를 들어, 호스트(100), 메모리 컨트롤러(200) 및 메모리 장치(300) 각각은 하나의 칩, 하나의 패키지 또는 하나의 모듈 등으로 제공될 수 있다. 하지만 이에 제한되는 것은 아니며, 메모리 컨트롤러(200)는 메모리 장치(300)와 함께 메모리 시스템(400) 또는 저장 장치로서 제공될 수 있다.
또한, 메모리 시스템(400)은 PC 카드, 컴팩트 플래시 카드, 스마트 미디어 카드, 메모리 스틱, MMC, 멀티미디어 카드, SD 카드, 유니버설 플래시 기억 장치(UFS) 등을 구성할 수 있다. 또한 일 실시 예에서, 메모리 시스템(400)은 SSD(Solid State Disk/Drive)를 구성할 수도 있다. 설명의 편의를 위해, 이하에서는 메모리 시스템(400)이 하나의 저장 장치로 구현된 경우를 가정하지만, 이에 본 개시의 기술적 사상이 한정되는 것은 아니다.
호스트(100)는 메모리 컨트롤러(200)에 데이터 동작 요청(REQ) 및 어드레스(ADDR)를 송신할 수 있으며, 메모리 컨트롤러(200)와 데이터(DATA)를 주고 받을 수 있다. 예시적으로, 호스트(100)는 메모리 컨트롤러(200)와 USB(Universal Serial Bus) 프로토콜, MMC(Multimedia Card) 프로토콜, 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) 프로토콜, MIPI(Mobile Industry Processor Interface) 프로토콜 및 UFS(Universal Flash Storage) 프로토콜 등과 같은 다양한 인터페이스 프로토콜들 중 적어도 하나에 기반하여 데이터(DATA)를 주고 받을 수 있다.
메모리 컨트롤러(200)는 메모리 장치(300)를 제어할 수 있다. 예를 들어, 메모리 컨트롤러(200)는 호스트(100)로부터 수신된 데이터 동작 요청(REQ)에 응답하여 메모리 장치(300)에 저장된 데이터(DATA)를 독출(read)하거나, 메모리 장치(300)에 데이터(DATA)를 기입(write)하도록 메모리 장치(300)를 제어할 수 있다. 예를 들어, 메모리 컨트롤러(200)는 메모리 장치(300)에 어드레스(ADDR), 커맨드(CMD) 및 제어 신호 등을 제공함으로써 메모리 장치(300)의 기입 동작, 독출 동작 및 소거 동작을 제어할 수 있다. 또한, 상기 동작들을 위한 데이터(DATA)가 메모리 컨트롤러(200)와 메모리 장치(300) 사이에서 송수신 될 수 있다.
본 개시의 예시적 실시 예에 따른 메모리 컨트롤러(200)는 저널 데이터 매니저(journal data manager; 240)를 포함할 수 있고, 메타 데이터 블록(MDB) 및 저널 데이터 블록(JDB)를 저장할 수 있다. 저널 데이터 매니저(240)는 메타 데이터 블록(MDB) 및 저널 데이터 블록(JDB)을 관리할 수 있다. 메타 데이터 블록(MDB)는 메타 데이터(meta data)들을 포함할 수 있고, 저널 데이터 블록(JDB)은 저널 데이터들 및 메타 데이터 저장 정보를 포함할 수 있다.
여기서, 메타 데이터란, 사용자 데이터를 관리하기 위한 데이터 또는 메모리 장치(300)를 관리하기 위해 메모리 시스템(400)에서 생성되는 데이터를 나타낼 수 있다. 예를 들어, 메타 데이터는 논리 어드레스(logical address)를 메모리 장치(300) 내 물리 어드레스(physical address)로 변환시키는 데 이용되는 맵핑(mapping) 정보, 메모리 장치(300)의 물리 블록들에 포함된 메모리 페이지들의 정보를 나타내는 물리 블록 정보, 호스트(100)에서 삭제된 데이터를 나타내는 트림 데이터, 및 기타 메모리 장치(300)의 메모리 공간을 관리하기 위한 다양한 정보들 중 적어도 하나를 포함할 수 있다. 일 실시 예에서, 메타 데이터는, 메타 데이터에 대한 메타 데이터를 포함하는 개념일 수 있다.
또한 여기서, 저널 데이터란, 사용자 데이터 및/또는 메타 데이터의 변경에 상응하는 로그 정보들을 포함하는 데이터를 나타낼 수 있다. 이를 위해, 저널 데이터는 복수의 로그 엔트리(log entry) 정보들을 포함할 수 있다. 예를 들어, 저널 데이터는, 사용자 데이터 및/또는 메타 데이터의 변경 점(check point)에 대한 정보를 포함할 수 있다. 또한 일 실시 예에서, 로그 엔트리 정보는 메타 데이터의 변경이 발생한 동작을 나타내는 타입에 대한 정보 및 메타 데이터의 변경을 복원하기 위한 실질적인 데이터를 포함할 수 있다. 메타 데이터의 변경이 발생한 동작을 나타내는 타입에 대한 정보에는 라이트 동작, 블록 할당 동작 및 페이지 복사 동작 등 메타 데이터를 변경시킬 수 있는 모든 동작(operation)에 대한 타입을 정의하는 정보들이 포함될 수 있다. 메타 데이터의 변경을 복원하기 위한 실질적인 데이터에는 논리적 주소, 이전 물리적 주소 및 새로운 물리적 주소 등이 포함될 수 있다. 로그 엔트리 정보는 로그 엔트리로 칭해질 수 있다.
또한 여기서, 메타 데이터 저장 정보는, 메타 데이터 블록이 메모리 장치(300)에 기입될 때 메모리 컨트롤러(200)에 의해 생성되는 데이터일 수 있다. 일 실시 예에서, 메타 데이터 저장 정보는, 메모리 컨트롤러(200)에 의해 부여된 메타 데이터 블록의 에이지(age) 및 메타 데이터 블록이 저장되는 메모리 장치(300) 내 물리 페이지 넘버(physical page number; PPN)를 포함할 수 있다.
일 실시 예에서, 저널 데이터 매니저(240)는, 메타 데이터 블록(MDB) 및 저널 데이터 블록(JDB)에 데이터들을 축적할 수 있다. 예를 들어, 저널 데이터 매니저(240)는 메타 데이터 블록(MDB)에 메타 데이터를 축적할 수 있다. 저널 데이터 매니저(240)는 저널 데이터 블록(JDB)에 저널 데이터를 축적할 수 있다. 메타 데이터 블록(MDB)이 메모리 장치(300)에 기입되는 경우, 저널 데이터 매니저(240)는 저널 데이터 블록(JDB)에 메타 데이터 저장 정보를 추가할 수 있다. 일 실시 예에서, 저널 데이터 매니저(240)는, 메타 데이터 블록(MDB)에 저장된 데이터의 양이 제1 사이즈에 도달하는 경우, 메타 데이터 블록(MDB)을 메모리 장치(300)의 메타 데이터 영역(314)에 기입할 수 있다. 본 명세서에서, 저널 데이터 매니저(240) 또는 메모리 컨트롤러(200)가 어떤 데이터를 메모리 장치(300)에 기입한다는 것은 메모리 장치(300)가 상기 데이터를 기입하도록 저널 데이터 매니저(240) 또는 메모리 컨트롤러(200)가 메모리 장치(300)를 제어하는 것과 동일한 것으로 이해될 수 있다. 또한 일 실시 예에서, 저널 데이터 매니저(240)는 저널 데이터 블록(JDB)에 저장된 데이터의 양이 제2 사이즈에 도달하는 경우, 저널 데이터 블록(JDB)을 메모리 장치(300)의 저널 데이터 영역(316)에 기입할 수 있다. 일 실시 예에서, 상기 제1 사이즈 및 상기 제2 사이즈는 메모리 장치(300) 내 하나의 메모리 페이지의 사이즈와 동일할 수 있다.
일 실시 예에서, 저널 데이터 매니저(240)는, 메모리 시스템(400)에 파워 오프(power off)가 발생되고 나서 파워 온(power on) 되는 경우, 메모리 장치(300)에 저장된 메타 데이터 블록들 및 저널 데이터 블록들을 메모리 장치(300)로부터 독출해낼 수 있다. 저널 데이터 매니저(240)는, 저널 데이터 블록들에 포함된 메타 데이터 저장 정보들을 기초로 저널 데이터 블록들에 포함된 저널 데이터들과 메타 데이터 블록들에 포함된 메타 데이터들의 축적 순서를 판단할 수 있다. 저널 데이터 매니저(240)는, 판단된 축적 순서를 기초로, 저널 데이터들을 이용해 메타 데이터들을 복원시키거나 업데이트시킬 수 있다. 여기서, 파워 오프(power off) 상황은 특히, 메모리 시스템(400)으로 파워 오프 명령이 수신되지 않은 상태에서 메모리 시스템(400)에 공급되는 전원이 차단되는 서든 파워 오프(sudden power off) 상황을 의미할 수 있다.
일 실시 예에서, 메모리 컨트롤러(200)가 호스트(100)로부터 데이터 보장 요청을 수신한 경우, 저널 데이터 매니저(240)는, 메모리 컨트롤러(200) 내 L1 캐시의 모든 영역에 저장된 데이터를 이용해 L1 저널 블록을 생성할 수 있고, L1 저널 블록을 저널 데이터 영역(316)에 기입할 수 있다.
본 개시의 예시적 실시 예에 따른 저널 데이터 매니저(240)의 동작들은, 이하의 도면들을 참조해 보다 자세히 이해될 수 있다.
메모리 장치(300)는 적어도 하나의 메모리 셀 어레이를 포함할 수 있다. 메모리 셀 어레이는 복수의 워드 라인들과 복수의 비트 라인들이 교차하는 영역에 배치되는 복수의 메모리 셀들을 포함할 수 있고, 복수의 메모리 셀들은 비휘발성 메모리 셀들일 수 있다. 각각의 메모리 셀은 2비트 이상의 데이터를 저장하는 멀티 레벨 셀일 수 있다. 예를 들어, 각각의 메모리 셀은 2비트의 데이터를 저장하는 2비트 멀티 레벨 셀(MLC)일 수 있으며, 3비트의 데이터를 저장하는 트리플 레벨 셀(TLC)일 수 있으며, 4비트의 데이터를 저장하는 쿼드러플 레벨 셀(QLC)일 수 있으며, 그 이상의 비트 데이터를 저장하는 멀티 레벨 셀일 수도 있다. 하지만 본 개시는 이에 한정되지 않으며, 예를 들어, 일부 메모리 셀들은 1비트 데이터를 저장하는 싱글 레벨 셀(SLC)이고, 다른 일부 메모리 셀들은 멀티 레벨 셀일 수 있다.
메모리 장치(300)는 낸드 플래시 메모리(NAND Flash Memory), 수직형 낸드 플래시 메모리(Vertical NAND; VNAND), 노아 플래시 메모리(NOR Flash Memory), 저항성 램(Resistive Random Access Memory; RRAM), 상변화 메모리(Phase-Change Random Access Memory; PRAM), 자기저항 메모리(Magnetoresistive Random Access Memory; MRAM), 강유전체 메모리(Ferroelectric Random Access Memory; FRAM), 스핀주입 자화반전 메모리(Spin Transfer Torque Random Access Memory; STT-RAM) 등을 포함할 수 있으며, 이들의 조합을 포함할 수 있다.
메모리 장치(300)는 메모리 컨트롤러(200)로부터 수신된 신호들에 응답하여 데이터(DATA)의 기입 동작, 독출 동작 및 소거 동작 등의 동작들을 수행할 수 있다.
본 개시의 예시적 실시 예에 따른 메모리 장치(300)는, 사용자 데이터 영역(312), 메타 데이터 영역(314) 및 저널 데이터 영역(316)을 포함할 수 있다. 예를 들어, 메모리 장치(300)의 메모리 셀 어레이는 사용자 데이터 영역(312), 메타 데이터 영역(314) 및 저널 데이터 영역(316)을 포함할 수 있다. 사용자 데이터 영역(312)은 사용자 데이터(혹은, 노말 데이터)를 저장할 수 있고, 메타 데이터 영역(314)은 적어도 하나의 메타 데이터 블록을 저장할 수 있고, 저널 데이터 영역(316)은 적어도 하나의 저널 데이터 블록을 저장할 수 있다. 이를 위해, 사용자 데이터 영역(312), 메타 데이터 영역(314) 및 저널 데이터 영역(316) 각각은 분리된 영역을 나타낼 수 있으며, 각각이 적어도 하나의 메모리 페이지를 포함할 수 있다.
본 개시의 예시적 실시 예에 따른 데이터 처리 시스템(10)에 따르면, 메타 데이터 및 저널 데이터를 각각 메타 데이터 블록(MDB) 및 저널 데이터 블록(JDB)으로서 메모리 장치(300)의 분리된 영역에 저장함으로써, 메타 데이터의 저널 데이터 의존성(dependency)이 감소될 수 있다. 또한, 이로써 메모리 장치(300)에 기입되는 메타 데이터의 양이 감소될 수 있다. 이에 따라, 메모리 시스템(400)에서 불필요하게 낭비되는 전력이 감소될 수 있고, 메모리 시스템(400)의 성능이 향상될 수 있다.
또한, 메타 데이터 블록(MDB)이 메모리 장치(300)에 기입되는 때에 저널 데이터 블록(JDB)에 메타 데이터 저장 정보를 추가함으로써, 서든 파워 오프와 같은 예상치 못한 이벤트가 발생한 경우에도 메타 데이터와 저널 데이터 간의 정합성(consistency)을 보장할 수 있다.
또한, 호스트(100)의 데이터 보장 요청에 기초해 메모리 컨트롤러(200) 내 L1 캐시의 모든 영역에 저장된 데이터를 하나의 블록으로서 저널 데이터 영역(316)에 저장함으로써, 서든 파워 오프와 같은 예상치 못한 이벤트가 발생한 경우에도 메타 데이터와 저널 데이터 간의 정합성을 보장할 수 있다.
뿐만 아니라, 본 개시의 예시적 실시 예에 따르면, 메모리 시스템(400)이 메타 데이터를 저장하는 DRAM과 같은 버퍼 메모리를 포함하지 않거나, 적은 용량의 버퍼 메모리를 포함하는 경우에도, 메모리 시스템(400)은 저널 데이터와 메타 데이터의 정합성을 보장할 수 있다.
위와 같이 저널 데이터와 메타 데이터 간의 정합성이 보장됨에 따라, 메모리 시스템(400)의 신뢰성이 향상될 수 있다.
도 2는 본 개시의 예시적 실시 예에 따른 메모리 컨트롤러(200)를 나타낸다. 메모리 컨트롤러(200)는 시스템 버스(210), 프로세서(220), 내부 메모리(230), 호스트 인터페이스(250), 메모리 인터페이스(260) 및 캐시(270)를 포함할 수 있다. 메모리 컨트롤러(200)는 이외에도 다양한 구성들을 더 포함할 수 있으며, 예를 들어, 메모리 동작을 제어하기 위한 커맨드(CMD)를 생성하는 커맨드 생성 모듈 등을 더 포함할 수도 있다. 메모리 컨트롤러(200)에 관해 도 1과 중복되는 설명은 생략한다. 도 2는 도 1을 함께 참조하여 설명된다.
시스템 버스(210)는 메모리 컨트롤러(200) 내부 구성 요소들 사이에 채널을 제공할 수 있다. 시스템 버스(210)는 다양한 버스 프로토콜들 중 하나에 기반하여 동작할 수 있다.
프로세서(220)는 메모리 컨트롤러(200)의 전체적인 동작을 제어할 수 있다. 프로세서(220)는 중앙 처리 장치(CPU; Central Processing Unit) 혹은 마이크로프로세서(MCU; Micro-Processing Unit)와 같은 프로세싱 장치들 중 적어도 하나를 포함할 수 있다. 프로세서(220)는 메모리 컨트롤러(200)를 제어하기 위한 소프트웨어 및/또는 펌웨어(firmware)를 구동할 수 있고, 예를 들어, 상기 소프트웨어 및/또는 펌웨어는 내부 메모리(230)에 로딩되어 프로세서(220)에 의해 구동될 수 있다.
내부 메모리(230)는 동작 메모리, 버퍼 메모리 또는 캐시 메모리 등으로 사용될 수 있다. 이를 위해, 내부 메모리(230)는 각종 메모리로 구현될 수 있으며, 예를 들어, DRAM, SRAM, PRAM 또는 플래시 메모리 중 적어도 하나로 구현될 수 있다. 일 실시 예에서, 내부 메모리(230)에는 FTL(flash translation layer)이 로딩될 수 있다. 일 실시 예에서, FTL은 펌웨어를 포함할 수 있으며, 저널 데이터 매니저(240)의 전부 또는 일부를 포함할 수 있다.
본 개시의 예시적 실시 예에 따른 내부 메모리(230)는 메타 데이터 블록(MDB) 및 저널 데이터 블록(JDB)을 저장할 수 있다. 예를 들어, 내부 메모리(230)는, 메타 데이터 블록(MDB)이 메모리 장치(300)에 기입되기 전까지 메타 데이터 블록(MDB)을 저장할 수 있으며, 저널 데이터 블록(JDB)이 메모리 장치(300)에 기입되기 전까지 저널 데이터 블록(JDB)을 저장할 수 있다.
저널 데이터 매니저(240)는 메타 데이터 및/또는 저널 데이터를 관리할 수 있다. 예를 들어, 저널 데이터 매니저(240)는 메타 데이터를 메타 데이터 블록(MDB)에 축적할 수 있고, 저널 데이터를 저널 데이터 블록(JDB)에 축적할 수 있다. 또한 일 실시 예에서, 메타 데이터 블록(MDB)이 메모리 장치(300)에 기입되는 경우, 저널 데이터 매니저(240)는 메타 데이터 블록(MDB)의 저장에 관한 정보를 포함하는 메타 데이터 저장 정보를 저널 데이터 블록(JDB)에 추가할 수 있다. 또한 일 실시 예에서, 메모리 시스템이 파워 오프 된 이후 파워 온 된 경우, 저널 데이터 매니저(240)는 메모리 장치(300)로부터 독출된 저널 데이터 블록들에 포함된 메타 데이터 저장 정보들을 기초로 메타 데이터들 및 저널 데이터들의 축적 순서를 판단할 수 있고, 판단된 축적 순서를 기초로 저널 데이터들을 이용해 메타 데이터들 중 적어도 일부를 복원하거나 업데이트 할 수 있다.
저널 데이터 매니저(240)는 메모리 컨트롤러(200) 내에서 다양한 형태로 구현될 수 있으며, 실시 예에 따라 저널 데이터 매니저(240)는 하드웨어 형태로 구현되거나 소프트웨어 형태로 구현될 수 있다. 예를 들어, 저널 데이터 매니저(240)가 하드웨어의 형태로 구현되는 경우, 저널 데이터 매니저(240)는 메타 데이터 및/또는 저널 데이터를 관리하기 위한 회로들을 포함할 수 있다. 또한 예를 들어, 저널 데이터 매니저(240)가 소프트웨어의 형태로 구현되는 경우, 메모리 컨트롤러(200) 내에 저장된 프로그램(또는 인스트럭션들)이 프로세서(220)에 의해 실행됨으로써 데이터 관리 동작을 수행할 수 있다. 하지만 상기 실시 예들에만 한정되는 것도 아니며, 저널 데이터 매니저(240)는 펌웨어와 같이 소프트웨어와 하드웨어가 결합된 형태로 구현될 수도 있다. 일 실시 예에서, 저널 데이터 매니저(240)의 전부 또는 일부는 FTL에 포함될 수도 있다.
호스트 인터페이스(250)는 호스트(100)와 메모리 컨트롤러(200) 사이의 인터페이스를 제공할 수 있다. 메모리 컨트롤러(200)는 호스트 인터페이스(250)를 통해 호스트(100)로부터 데이터 동작 요청(REQ) 및 주소(ADDR) 등을 수신할 수 있으며, 호스트(100)와 데이터(DATA)를 주고 받을 수 있다.
메모리 인터페이스(260)는 메모리 장치(300)와 메모리 컨트롤러(200) 사이의 인터페이스를 제공할 수 있다. 예를 들어, 프로세서(220)에 의해 처리된 데이터(DATA)는 메모리 인터페이스(260)를 통해 메모리 장치에 저장될 수 있다. 혹은, 메모리 장치(300)에 저장된 데이터(DATA)는 메모리 인터페이스(260)를 통해 프로세서(220)에 제공될 수 있다. 메모리 컨트롤러(200)는 메모리 인터페이스(260)를 통해 메모리 장치(300)에 커맨드(CMD) 및 주소(ADDR) 등을 송신할 수 있고, 메모리 장치(300)와 데이터(DATA)를 주고 받을 수 있다.
캐시(270)는 프로세서(220)의 동작에 필요한 데이터를 저장할 수 있고, 프로세서(220)의 요청에 따라 상기 데이터를 프로세서(220)에 전송할 수 있다. 일 실시 예에서, 캐시(270)는 SRAM으로 구현될 수 있다. 캐시(270)는 L1 캐시(272) 및 L2 캐시(274)를 포함할 수 있다. 일 실시 예에서, L1 캐시(272)는 정렬되지 않은 형태의 로그 엔트리들을 저장할 수 있다. L1 캐시(272)에 저장된 로그 엔트리들은, 필요에 따라, L2 캐시(274)에 플러시(flush) 되어 메모리 장치(300)에 저장될 형태를 가지게 될 수 있다.
서든 파워 오프와 같은 이벤트가 발생하는 경우에 대비하여, 본 개시의 예시적 실시 예에 따른 메모리 컨트롤러(200)는, 호스트(100)로부터 데이터 보장 요청이 수신된 경우, L1 캐시(272)의 모든 영역에 저장된 데이터들을 이용해 L1 저널 블록을 구성(혹은 생성)할 수 있고, L1 저널 블록을 메모리 장치(300)의 저널 데이터 영역(316)에 저장할 수 있다. 다시 말해, 메모리 컨트롤러(200)는 L1 저널 블록을 저널 데이터 블록의 일종으로서 메모리 장치(300)의 저널 데이터 영역(316)에 저장할 수 있다.
본 개시의 예시적 실시 예에 따른 메모리 컨트롤러(200)에 따르면, 메타 데이터 및 저널 데이터를 각각 메타 데이터 블록(MDB) 및 저널 데이터 블록(JDB)으로서 메모리 장치(300)의 분리된 영역에 저장함으로써, 메타 데이터의 저널 데이터 의존성(dependency)이 감소될 수 있다. 또한, 이로써 메모리 장치(300)에 기입되는 메타 데이터의 양이 감소될 수 있다. 이에 따라, 메모리 시스템(400)에서 불필요하게 낭비되는 전력이 감소될 수 있고, 메모리 시스템(400)의 성능이 향상될 수 있다.
또한, 메타 데이터 블록(MDB)이 메모리 장치(300)에 기입되는 때에 저널 데이터 블록(JDB)에 메타 데이터 저장 정보를 추가함으로써, 서든 파워 오프와 같은 예상치 못한 이벤트가 발생한 경우에도 메타 데이터와 저널 데이터 간의 정합성(consistency)을 보장할 수 있다.
또한, 호스트(100)의 데이터 보장 요청에 기초해 메모리 컨트롤러(200) 내 L1 캐시의 모든 영역에 저장된 데이터를 하나의 블록으로서 저널 데이터 영역(316)에 저장함으로써, 서든 파워 오프와 같은 예상치 못한 이벤트가 발생한 경우에도 메타 데이터와 저널 데이터 간의 정합성을 보장할 수 있다.
뿐만 아니라, 본 개시의 예시적 실시 예에 따르면, 메모리 시스템(400)이 메타 데이터를 저장하는 DRAM과 같은 버퍼 메모리를 포함하지 않거나, 적은 용량의 버퍼 메모리 만을 포함하는 경우에도, 메모리 시스템(400)은 저널 데이터와 메타 데이터의 정합성을 보장할 수 있다.
위와 같이 저널 데이터와 메타 데이터 간의 정합성이 보장됨에 따라, 메모리 시스템(400)의 신뢰성이 향상될 수 있다.
도 3은 본 개시의 예시적 실시 예에 따른 데이터 처리 시스템의 소프트웨어 계층을 나타낸다. 소프트웨어 계층은 애플리케이션(101), 파일 시스템(102) 및 플래시 변환 계층(201)을 포함할 수 있다. 도 3은 도 1 및 도 2를 함께 참조하여 설명된다.
애플리케이션(101)은 호스트(100) 상에서 구동되는 다양한 응용 프로그램들을 포함할 수 있다.
파일 시스템(102)은 애플리케이션(101)에 의해 사용되는 파일 또는 데이터를 조직화 할 수 있다. 예를 들어, 파일 시스템(102)은 메모리 시스템(400)의 저장 공간을 논리 어드레스로 관리하고, 메모리 시스템(400)에 저장될 데이터 또는 저장된 데이터에 대하여 논리 어드레스를 부여하고, 이를 관리할 수 있다. 예시적으로, 파일 시스템(102)은 호스트(100)의 운영 체제(Operating System; OS)에 따라 다른 형태를 가질 수 있다. 예를 들어, 파일 시스템(102)은 FAT(File Allocation Table), FAT32, NTFS(NT File System), HFS(Hierarchical File System), JSF2(Journaled File System2), XFS, ODS-5(On-Disk Structure-5), UDF, ZFS, UFS(Unix File System), ext2, ext3, ext4, ReiserFS, Reiser5, ISO 9660, Gnome VFS, BFS, 또는 WinFS 등을 포함할 수 있다.
일 실시 예에서, 애플리케이션(101) 및 파일 시스템(102)은 호스트(100) 상에서 구동되는 소프트웨어 계층일 수 있다.
플래시 변환 계층(201)은 메모리 장치(300)가 효율적으로 사용될 수 있도록 호스트(100)와 메모리 장치(300) 사이에서 다양한 유지 관리 동작을 수행할 수 있다. 예를 들어, 플래시 변환 계층(201)은 논리 어드레스 및 물리 어드레스 사이의 변환 동작을 수행할 수 있다. 플래시 변환 계층(201)은 맵핑 테이블을 통해 어드레스 변환 동작을 관리할 수 있다.
도 4는 본 개시의 예시적 실시 예에 따른 메모리 장치(300)를 나타낸다. 메모리 장치(300)는 메모리 셀 어레이(310), 로우 디코더(320), 페이지 버퍼 회로(330), 전압 발생기(340), 제어 로직(350), 데이터 입출력 회로(360)를 포함할 수 있다. 메모리 장치(300)에 관한 도 1과 중복되는 설명은 생략한다.
메모리 셀 어레이(310)는 복수의 메모리 블록들을 포함할 수 있다. 각각의 메모리 블록들은 복수의 메모리 셀들을 포함할 수 있다. 메모리 셀 어레이(310)는 워드 라인들(WLs), 스트링 선택 라인들(SSL) 및 접지 선택 라인들(GSL)을 통해 로우 디코더(320)와 연결될 수 있고, 비트 라인들(BLs)을 통해 페이지 버퍼 회로(330)와 연결될 수 있다. 메모리 셀 어레이(310)는 비트 라인들(BLs) 각각에 연결된 스트링들을 포함할 수 있다. 여기서 스트링들 각각은 비트 라인과 공통 소스 라인(Common source Line) 사이에 직렬 연결된 적어도 하나의 스트링 선택 트랜지스터, 복수의 메모리 셀들, 적어도 하나의 접지 선택 트랜지스터를 포함할 수 있다.
본 개시의 예시적 실시 예에 따른 메모리 셀 어레이(310)는 사용자 데이터 영역(312), 메타 데이터 영역(314) 및 저널 데이터 영역(316)을 포함할 수 있다. 사용자 데이터 영역(312)는 사용자 데이터(혹은 노말 데이터)를 저장할 수 있고, 메타 데이터 영역(314)는 적어도 하나의 메타 데이터 블록(MDB)을 저장할 수 있고, 저널 데이터 영역(316)은 적어도 하나의 저널 데이터 블록(JDB)을 저장할 수 있다. 일 실시 예에서, 사용자 데이터 영역(312), 메타 데이터 영역(314) 및 저널 데이터 영역(316)은 서로 상이한 영역을 나타낼 수 있으며, 각각은 적어도 하나의 메모리 페이지를 포함할 수 있다. 실시 예에 따라, 사용자 데이터 영역(312), 메타 데이터 영역(314) 및 저널 데이터 영역(316)은 모두 다른 메모리 블록에 포함될 수 있으나, 이에 제한되는 것은 아니다. 예를 들어, 사용자 데이터 영역(312), 메타 데이터 영역(314) 및 저널 데이터 영역(316) 중 두 개 이상의 영역들은 하나의 메모리 블록에 포함될 수도 있다. 또한, 사용자 데이터 영역(312)의 일부, 메타 데이터 영역(314)의 일부 및 저널 데이터 영역(316)의 일부 중 두 개 이상의 영역들이 하나의 메모리 블록에 포함되는 것도 가능하다.
로우 디코더(320)는 로우 어드레스(X-ADDR)를 기초로 워드 라인들(WLs) 중 일부 워드 라인을 선택할 수 있다. 로우 디코더(320)는 워드 라인에 워드 라인 인가 전압을 전달할 수 있다. 예를 들어, 데이터 기입 동작 시, 로우 디코더(320)는 선택된 워드 라인에 프로그램 전압과 검증 전압을, 비선택된 워드 라인에는 프로그램 인히빗(inhibit) 전압을 인가할 수 있다. 데이터 독출 동작 시, 로우 디코더(320)는 선택된 워드 라인에 독출 전압을, 비선택된 워드라인에는 독출 인히빗 전압을 인가할 수 있다. 데이터 소거 동작 시, 로우 디코더(320)는 워드 라인에 워드 라인 소거 전압을 인가할 수 있다. 또한, 로우 디코더(320)는 로우 어드레스(X-ADDR)를 기초로 스트링 선택 라인들(SSL) 중 일부 스트링 선택 라인을, 또는 접지 선택 라인들(GSL) 중 일부 접지 선택 라인을 선택할 수 있다.
페이지 버퍼 회로(330)는 비트 라인들(BLs)을 통해 메모리 셀 어레이(310)에 연결될 수 있고, 제어 로직(350)으로부터 수신된 페이지 버퍼 제어 신호(CTRL_PB)에 응답하여 데이터 기입 동작 또는 데이터 독출 동작을 수행할 수 있다. 페이지 버퍼 회로(330)는 디코딩 된 컬럼 어드레스를 이용하여 비트 라인을 선택함으로써 데이터 라인에 연결될 수 있다.
전압 발생기(340)는 제어 로직(350)으로부터 수신되는 전압 제어 신호(CTRL_vol)를 기초로 메모리 셀 어레이(310)에 대한 기입 동작, 독출 동작 및 소거 동작을 수행하기 위한 다양한 종류의 전압들을 생성할 수 있다. 예를 들어, 전압 발생기(340)는 워드 라인들(WLs)을 구동하기 위한 워드 라인 구동 전압(VWL)을 생성할 수 있다. 이 때, 워드 라인 구동 전압(VWL)은 기입 전압, 독출 전압, 워드 라인 소거 전압 및 기입 검증 전압 등을 포함할 수 있다. 또한, 전압 발생기(340)는 스트링 선택 라인들(SSL)을 구동하기 위한 스트링 선택 라인 구동 전압 및 접지 선택 라인들(GSL)을 구동하기 위한 접지 선택 라인 구동 전압을 더 생성할 수 있다.
제어 로직(350)은 메모리 컨트롤러로부터 수신된 커맨드(CMD), 어드레스(ADDR) 및 제어 신호(CTRL)를 기초로 메모리 셀 어레이(310)에 데이터를 기입하거나 메모리 셀 어레이(310)로부터 데이터를 독출하기 위한 각종 내부 제어 신호를 생성할 수 있다. 즉, 제어 로직(350)은 메모리 장치(300) 내의 각종 동작을 전반적으로 제어할 수 있다. 제어 로직(350)에서 생성된 각종 내부 제어 신호는 페이지 버퍼 회로(330), 로우 디코더(320) 및 전압 발생기(340) 등에 제공될 수 있다. 예를 들어, 제어 로직(350)은 페이지 버퍼 회로(330)에 페이지 버퍼 제어 신호(CTRL_PB)를 제공할 수 있고, 로우 디코더(320)에 로우 어드레스(X-ADDR)를 제공할 수 있고, 전압 발생기(340)에 전압 제어 신호(CTRL_vol)를 제공할 수 있다. 하지만 제어 신호의 종류가 이에만 제한되는 것은 아니며, 제어 로직(350)은 다른 내부 제어 신호들을 제공할 수 있다. 예를 들어, 제어 로직(350)은 컬럼 디코더에 컬럼 어드레스를 제공할 수도 있다.
데이터 입출력 회로(360)는 페이지 버퍼 회로(330)와 데이터 라인들을 통해 연결될 수 있다.
도 5a 및 도 5b는 관련 기술(related art)에 따른 메타 데이터 블록들을 나타낸다. 메타 데이터 블록들 각각은 저널 데이터 및 메타 데이터를 포함하며, 관련 기술에 따른 메모리 컨트롤러는 저널 데이터 및 메타 데이터를 축적하고, 저널 데이터 및 메타 데이터를 메타 데이터 블록의 형태로 메모리 장치에 기입한다. 예를 들어, 제1 메타 데이터 블록은 제1 저널 데이터 및 제1 메타 데이터를 포함하고, 제2 메타 데이터 블록은 제2 저널 데이터 및 제2 메타 데이터를 포함하고, 제3 메타 데이터 블록은 제3 저널 데이터 및 제3 메타 데이터를 포함한다.
도 5a를 참조하면, 메모리 컨트롤러는 사용자 데이터 및/또는 메타 데이터의 변경 점(check point)이 발생할 때 저널 데이터를 축적할 수 있고, 저널 데이터가 사전 결정된(pre-determined) 양만큼 축적된 경우, 사전 결정된 양에 대응되는 메타 데이터와 함께 메타 데이터 블록으로서 메모리 장치에 기입한다. 다시 말해, 관련 기술에 따른 메모리 컨트롤러는 저널 데이터가 사전 결정된 양만큼 축적된 경우에는, 메타 데이터를 사전 결정된 양만큼 메모리 장치에 새롭게 기입해야 한다. 관련 기술의 메모리 컨트롤러가 사전 결정된 양에 대응되는 저널 데이터와 사전 결정된 양에 대응되는 메타 데이터를 메타 데이터 블록으로서 메모리 장치에 기입할 수 밖에 없었던 이유는, 저널 데이터의 축적 시점과 메타 데이터의 기입 시점 간의 선후 관계의 판단이 중요하기 때문이다. 메모리 컨트롤러가 저널 데이터의 축적 시점과 메타 데이터의 기입 시점 간의 선후 관계를 판단할 수 있어야만, 서든 파워 오프와 같은 이벤트가 발생한 뒤 파워 온이 되었을 때, 메모리 컨트롤러는 저널 데이터를 이용해 메타 데이터를 복원하거나 업데이트 할 수 있다.
도 5b는 특히, 시간 경과에 따른 메타 데이터 블록들의 기입 순서를 나타낸다. 메모리 컨트롤러는, 제1 저널 데이터가 사전 결정된 양만큼 축적된 경우, 제1 저널 데이터 및 제1 메타 데이터를 제1 메타 데이터 블록으로서 메모리 장치에 기입한다. 이후, 메모리 컨트롤러는, 제2 저널 데이터가 사전 결정된 양만큼 축적된 경우, 제2 저널 데이터 및 제2 메타 데이터를 제2 메타 데이터 블록으로서 메모리 장치에 기입한다. 이후, 메모리 컨트롤러는, 제3 저널 데이터가 사전 결정된 양만큼 축적된 경우, 제3 저널 데이터 및 제3 메타 데이터를 제3 메타 데이터 블록으로서 메모리 장치에 기입한다. 다시 말해, 제1 메타 데이터 블록 내지 제3 메타 데이터 블록이 시간 순서에 따라 메모리 장치에 기입되기 때문에, 파워 온 이후, 메모리 컨트롤러는 제1 저널 데이터 내지 제3 저널 데이터의 축적 시점과 제1 메타 데이터 내지 제3 메타 데이터의 기입 시점의 선후 관계를 판단할 수 있다.
도 5a 및 도 5b를 참조하면, 관련된 기술에 따른 메모리 컨트롤러는, 저널 데이터가 사전 결정된 양만큼 축적된 경우, 사전 결정된 양에 대응되는 메타 데이터를 기입해야 하기 때문에 메타 데이터의 불필요한 기입의 양이 상당하다.
도 6은 본 개시의 예시적 실시 예에 따른 메타 데이터 블록(MDB) 및 저널 데이터 블록(JDB)을 나타낸다. 도 6은 도 1 및 도 2를 함께 참조하여 설명된다.
메타 데이터 블록(MDB)은 메타 데이터를 포함할 수 있고, 저널 데이터 블록(JDB)은 저널 데이터 및 메타 데이터 저장 정보를 포함할 수 있다. 예를 들어, 메타 데이터 블록(MDB)은 제1 메타 데이터를 포함할 수 있고, 저널 데이터 블록(JDB)은 제1 저널 데이터, 제1 메타 데이터 저장 정보 및 제2 저널 데이터를 포함할 수 있다.
메모리 컨트롤러(200)의 저널 데이터 매니저(240)는 메타 데이터를 내부 메모리(230)에 축적할 수 있다. 저널 데이터 매니저(240)가 메타 데이터를 내부 메모리(230)에 축적하여 메타 데이터 블록(MDB)을 구성하는 것을 저널 데이터 매니저(240)가 메타 데이터를 메타 데이터 블록(MDB)에 축적하는 것으로 칭하기로 한다. 다시 말해, 저널 데이터 매니저(240)는 메타 데이터를 메타 데이터 블록(MDB)에 축적할 수 있다. 메타 데이터 블록(MDB)에 축적된 메타 데이터의 양이 제1 사이즈(Size 1)에 도달한 경우, 저널 데이터 매니저(240)는 메타 데이터 블록(MDB)을 메모리 장치(300)의 메타 데이터 영역(314)에 기입할 수 있다. 다시 말해, 메타 데이터 블록(MDB)에 축적된 메타 데이터의 양이 제1 사이즈(Size 1)에 도달한 경우, 저널 데이터 매니저(240)는 메모리 장치(300)가 메타 데이터 블록(MDB)을 메타 데이터 영역(314)에 기입하도록 메모리 장치(300)를 제어할 수 있다. 예를 들어, 저널 데이터 매니저(240)는, 메모리 컨트롤러(200)가 메모리 장치(300)에 메타 데이터 영역(314)에 대응되는 어드레스, 기입 커맨드 및 메타 데이터 블록(MDB)을 전송하도록 메모리 컨트롤러(200)를 제어할 수 있다.
메모리 컨트롤러(200)의 저널 데이터 매니저(240)는 저널 데이터를 내부 메모리(230)에 축적할 수 있다. 저널 데이터 매니저(240)가 저널 데이터를 내부 메모리(230)에 축적하여 저널 데이터 블록(JDB)을 구성하는 것을 저널 데이터 매니저(240)가 저널 데이터를 저널 데이터 블록(JDB)에 축적하는 것으로 칭하기로 한다. 다시 말해, 저널 데이터 매니저(240)는 저널 데이터를 저널 데이터 블록(JDB)에 축적할 수 있다. 또한, 저널 데이터 매니저(240)는, 제1 메타 데이터를 포함하는 메타 데이터 블록(MDB)이 메모리 장치(300)에 기입되는 때, 메타 데이터 블록(MDB)의 저장에 관한 정보를 포함하는 제1 메타 데이터 저장 정보를 저널 데이터 블록(JDB)에 추가할 수 있다. 일 실시 예에서, 제1 메타 데이터 저장 정보는, 저널 데이터 매니저(240)에 의해 메타 데이터 블록(MDB) 마다 부여되는 메타 데이터 블록의 에이지(age) 및 메타 데이터 블록이 저장되는 메모리 장치(300) 내 물리 페이지 넘버(physical page number; PPN)를 포함할 수 있다. 메타 데이터 블록의 에이지(age)란, 저널 데이터 매니저(240)가 메타 데이터 블록(MDB)마다 부여하는 정보를 나타낼 수 있고, 비제한적인 예시로서, 저널 데이터 매니저(240)는 메타 데이터 블록이 새롭게 생성될 때마다 메타 데이터 블록에 '1' 씩 증가하는 에이지를 부여할 수 있다. 저널 데이터 블록(JDB)에 축적된 데이터의 양이 제2 사이즈(Size 2)에 도달한 경우, 저널 데이터 매니저(240)는 저널 데이터 블록(JDB)을 메모리 장치(300)의 저널 데이터 영역(316)에 기입할 수 있다. 다시 말해, 저널 데이터 블록(JDB)에 축적된 데이터의 양이 제2 사이즈(Size 2)에 도달한 경우, 저널 데이터 매니저(240)는 메모리 장치(300)가 저널 데이터 블록(JDB)을 저널 데이터 영역(316)에 기입하도록 메모리 장치(300)를 제어할 수 있다. 예를 들어, 저널 데이터 매니저(240)는, 메모리 컨트롤러(200)가 메모리 장치(300)에 저널 데이터 영역(316)에 대응되는 어드레스, 기입 커맨드 및 저널 데이터 블록(JDB)을 전송하도록 메모리 컨트롤러(200)를 제어할 수 있다.
본 개시의 예시적 실시 예에 따르면, 저널 데이터 매니저(240)는 메타 데이터 및 저널 데이터를 분리된 데이터 블록에 관리할 수 있고, 메타 데이터 및 저널 데이터를 분리된 데이터 블록으로서 메모리 장치(300)의 분리된 영역에 저장할 수 있다. 이에 따라, 메타 데이터의 저널 데이터 의존성(dependency)이 감소될 수 있으며, 메모리 장치(300)에 기입되는 메타 데이터의 양이 도 5a 및 도 5b의 경우에 비해 감소될 수 있다.
또한, 메타 데이터 블록(MDB)이 메모리 장치(300)에 기입되는 대에 저널 데이터 블록(JDB)에 메타 데이터 저장 정보를 추가함으로써, 서든 파워 오프와 같은 이벤트가 발생한 뒤 파워 온이 된 경우에도, 메모리 컨트롤러(200)는 저널 데이터의 축적 시점과 메타 데이터의 기입 시점의 선후 관계를 판단할 수 있다. 저널 데이터의 축적 시점과 메타 데이터의 기입 시점의 선후 관계는, 저널 데이터의 축적 시점과 메타 데이터의 기입 시점의 순서로 칭해질 수도 있다. 이에 따라, 메모리 시스템(400)은 메타 데이터와 저널 데이터 간의 정합성(consistency)을 보장할 수 있다.
도 7은 본 개시의 예시적 실시 예에 따른 저장 장치의 데이터 처리 방법 순서도를 나타낸다. 도 7은 도 1 및 도 2를 함께 참조하여 설명된다.
메모리 컨트롤러(200)는 메타 데이터를 메타 데이터 블록(MDB)에 축적할 수 있다(S120). 예를 들어, 저널 데이터 매니저(240)는 메타 데이터를 메타 데이터 블록(MDB)에 축적할 수 있다. 일 실시 예에서, 메타 데이터 블록(MDB)은 메모리 컨트롤러(200)의 내부 메모리(230)에 저장될 수 있다.
메모리 컨트롤러(200)는 저널 데이터를 저널 데이터 블록(JDB)에 축적할 수 있다(S140). 예를 들어, 사용자 데이터 및/또는 메타 데이터에 변경 점이 발생한 경우, 저널 데이터 매니저(240)는 새로운 저널 데이터를 생성하고, 저널 데이터를 저널 데이터 블록(JDB)에 축적할 수 있다. 일 실시 예에서, 저널 데이터는 적어도 하나의 로그 엔트리를 포함할 수 있다. 일 실시 예에서, 저널 데이터 블록(JDB)은 메모리 컨트롤러(200)의 내부 메모리(230)에 저장될 수 있다.
메모리 컨트롤러(200)는, 메타 데이터 블록(MDB)이 메모리 장치(300)에 기입되는 것에 응답하여, 메타 데이터 저장 정보를 저널 데이터 블록(JDB)에 추가할 수 있다. 일 실시 예에서, 메타 데이터 블록(MDB)에 축적된 메타 데이터의 양이 제1 사이즈에 도달한 경우, 저널 데이터 매니저(240)는 메타 데이터 블록(MDB)을 메모리 장치(300)의 메타 데이터 영역(314)에 기입할 수 있고, 메타 데이터 블록(MDB)의 저장에 관한 정보를 포함하는 메타 데이터 저장 정보를 저널 데이터 블록(JDB)에 추가할 수 있다.
메모리 컨트롤러(200)는, 저널 데이터 블록(JDB)에 축적된 데이터의 양이 제2 사이즈에 도달한 경우, 저널 데이터 블록(JDB)을 메모리 장치(300)에 기입할 수 있다(S180). 저널 데이터 블록(JDB)에 축적된 데이터의 양이 제2 사이즈에 도달한 경우는, 저널 데이터 블록(JDB)에 제2 사이즈 만큼의 데이터가 축적된 경우로 달리 칭해질 수 있다. 예를 들어, 저널 데이터 매니저(240)는, 저널 데이터 블록(JDB)에 축적된 데이터의 양이 제2 사이즈에 도달한 경우, 저널 데이터 블록(JDB)을 메모리 장치(300)의 저널 데이터 영역(316)에 기입할 수 있다.
도 8은 본 개시의 예시적 실시 예에 따른 저장 장치의 데이터 처리 방법 순서도를 나타낸다. 도 8은 도 1 및 도 2를 함께 참조하여 설명된다.
메모리 컨트롤러(200)는, 메타 데이터 및/또는 저널 데이터를 축적할 수 있다(S210). 예를 들어, 메모리 컨트롤러(200)는 메타 데이터를 메타 데이터 블록(MDB)에 축적할 수 있고, 저널 데이터를 저널 데이터 블록(JDB)에 축적할 수 있다. 다시 말해, S210 단계는, 도 7의 S120 단계 및 S140 단계에 대응될 수 있다.
메모리 컨트롤러(200)는 메타 데이터 블록(MDB)에 제1 사이즈 만큼의 메타 데이터가 축적되었는지 판단할 수 있다(S220). 메타 데이터 블록(MDB)에 제1 사이즈 만큼의 메타 데이터가 축적된 경우, S230 단계로 진행될 수 있다. 메타 데이터 블록(MDB)에 제1 사이즈 만큼의 메타 데이터가 축적되지 않은 경우, S210 단계로 진행될 수 있다.
메타 데이터 블록(MDB)에 제1 사이즈 만큼의 메타 데이터가 축적된 경우, 메모리 컨트롤러(200)는 메모리 장치(300)가 메타 데이터 블록(MDB)을 메타 데이터 영역(314)에 기입하도록 메모리 장치(300)를 제어할 수 있다(S230). 예를 들어, 저널 데이터 매니저(240)는 메타 데이터 영역(314)에 대응되는 어드레스, 기입 커맨드 및 메타 데이터 블록(MDB)을 메모리 장치(300)에 전송할 수 있다.
메모리 컨트롤러는, 메타 데이터 블록의 저장에 관한 정보를 포함하는 메타 데이터 저장 정보(MSI)를 저널 데이터 블록(JDB)에 추가할 수 있다(S240).
메모리 컨트롤러(200)는 저널 데이터 블록(JDB)에 제2 사이즈 만큼의 데이터가 축적되었는지 판단할 수 있다(S250). 저널 데이터 블록(JDB)에 제2 사이즈 만큼의 데이터가 축적된 경우, S260 단계로 진행될 수 있다. 저널 데이터 블록(JDB)에 제2 사이즈 만큼의 데이터가 축적되지 않은 경우, S210 단계로 진행될 수 있다.
유의할 사항은, S220 단계, S230 단계 및 S240 단계가 S250 단계 및 S260 단계보다 반드시 선행되어야 하는 것은 아니다. 다시 말해, 메타 데이터 블록(MDB)이 메모리 장치(300)에 기입되기 전에 저널 데이터 블록(JDB)에 제2 사이즈 만큼의 데이터가 축적된 경우, S260 단계가 진행될 수도 있다.
저널 데이터 블록(JDB)에 제2 사이즈 만큼의 데이터가 축적된 경우, 메모리 컨트롤러(200)는 메모리 장치(300)가 저널 데이터 블록(JDB)을 저널 데이터 영역(316)에 기입하도록 메모리 장치(300)를 제어할 수 있다(S260). 예를 들어, 저널 데이터 매니저(240)는 저널 데이터 영역(316)에 대응되는 어드레스, 기입 커맨드 및 저널 데이터 블록(JDB)을 메모리 장치(300)에 전송할 수 있다.
도 9는 본 개시의 예시적 실시 예에 따른 저장 장치의 데이터 처리 방법 순서도를 나타낸다. 특히, 도 9는 시간의 경과에 따른 저널 데이터 블록(JDB)에 데이터가 축적되는 양상을 도시한다. 도 9는 도 1 및 도 2를 함께 참조하여 설명된다.
메모리 컨트롤러(200)는 제1 저널 데이터를 저널 데이터 블록(JDB)에 축적할 수 있다(S310).
제1 메타 데이터를 포함하는 제1 메타 데이터 블록이 메모리 장치(300)에 기입되는 이벤트가 발생할 수 있다(S320). 예를 들어, 제1 메타 데이터 블록에 포함된 메타 데이터의 양이 제1 사이즈에 도달함에 따라, 제1 메타 데이터 블록이 메모리 장치(300)의 메타 데이터 영역(314)에 기입될 수 있다.
이 때, 메모리 컨트롤러(200)는 제1 메타 데이터 블록의 저장에 관한 정보를 포함하는 제1 메타 데이터 저장 정보를 저널 데이터 블록(JDB)에 추가할 수 있다(S330). 이후, 도 9와 같이, 저널 데이터 블록(JDB)은 제1 저널 데이터 및 제1 메타 데이터 저장 정보를 포함할 수 있다.
이후, 메모리 컨트롤러(200)는 제2 저널 데이터를 저널 데이터 블록(JDB)에 축적할 수 있다(S340).
메모리 컨트롤러(200)가 제2 저널 데이터를 저널 데이터 블록(JDB)에 축적하던 중 저널 데이터 블록(JDB)에 포함된 데이터의 양이 제2 사이즈에 도달한 경우, 메모리 컨트롤러(200)는 저널 데이터 블록(JDB)을 메모리 장치(300)에 기입할 수 있다(S350). 예를 들어, 메모리 컨트롤러(200)는 메모리 장치(300)가 저널 데이터 블록(JDB)을 저널 데이터 영역(316)에 기입하도록 메모리 장치(300)를 제어할 수 있다.
도 10은 본 개시의 예시적 실시 예에 따른 메타 데이터 블록들 및 저널 데이터 블록들을 나타낸다. 도 10은 특히, 다양한 실시 예에 따른 저널 데이터 블록들의 구성을 나타낸다. 도 10은 도 1 및 도 2를 함께 참조하여 설명된다.
제1 메타 데이터 블록(MDB1) 내지 제3 메타 데이터 블록(MDB3) 각각은 제1 메타 데이터 내지 제3 메타 데이터를 포함할 수 있다.
제1 저널 데이터 블록(JDB1)은 제1 저널 제이터(JD1), 제1 메타 데이터 블록(MDB1)의 저장에 관한 정보를 포함하는 제1 메타 데이터 저장 정보(MSI1) 및 제2 저널 데이터(JD2)를 포함할 수 있다. 제2 저널 데이터 블록(JDB2)은 제3 저널 데이터(JD3), 제2 메타 데이터 블록(MDB2)의 저장에 관한 정보를 포함하는 제2 메타 데이터 저장 정보(MSI2), 제4 저널 데이터(JD4), 제3 메타 데이터 블록(MDB3)의 저장에 관한 정보를 포함하는 제3 메타 데이터 저장 정보(MSI3) 및 제5 저널 데이터(JD5)를 포함할 수 있다. 제3 저널 데이터 블록(JDB3)은 제6 저널 데이터를 포함할 수 있다.
다시 말해, 경우에 따라, 저널 데이터 블록은 하나의 메타 데이터 저장 정보를 포함할 수도 있고, 복수의 메타 데이터 저장 정보들을 포함할 수도 있다. 또한, 저널 데이터 블록에 저널 데이터가 제2 사이즈 만큼 축적되는 동안 메타 데이터 블록이 메모리 장치(300)에 기입되지 않는 경우, 저널 데이터 블록은 메타 데이터 저장 정보를 포함하지 않을 수도 있다.
도 11은 본 개시의 예시적 실시 예에 따른 메모리 셀 어레이(310)를 나타낸다. 도 11은 도 1 및 도 2를 함께 참조하여 설명된다.
메타 데이터 영역(314)은 제1 메타 데이터 블록 내지 제3 메타 데이터 블록을 포함하는 메타 데이터 블록들을 저장할 수 있다. 일 실시 예에서, 메타 데이터 블록 각각은 메타 데이터 영역(314) 내의 하나의 메모리 페이지에 저장될 수 있다. 예를 들어, 제1 메타 데이터 블록은 제N 메모리 페이지에 저장될 수 있고, 제2 메타 데이터 블록은 제N+1 메모리 페이지에 저장될 수 있고, 제3 메타 데이터 블록은 제N+2 메모리 페이지에 저장될 수 있다. 다시 말해, 메타 데이터 블록의 사이즈인 제1 사이즈는 메모리 셀 어레이(310) 내 하나의 메모리 페이지의 사이즈와 같을 수 있다.
저널 데이터 영역(316)은 제1 저널 데이터 블록 내지 제3 저널 데이터 블록을 포함하는 저널 데이터 블록들을 저장할 수 있다. 일 실시 예에서, 저널 데이터 블록 각각은 저널 데이터 영역(316) 내의 하나의 메모리 페이지에 저장될 수 있다. 예를 들어, 제1 저널 데이터 블록은 제M 메모리 페이지에 저장될 수 있고, 제2 저널 데이터 블록은 제M+1 메모리 페이지에 저장될 수 있고, 제3 저널 데이터 블록은 제M+2 메모리 페이지에 저장될 수 있다. 다시 말해, 저널 데이터 블록의 사이즈인 제2 사이즈는 메모리 셀 어레이(310) 내 하나의 메모리 페이지의 사이즈와 같을 수 있다.
도 12는 본 개시의 예시적 실시 예에 따른 저장 장치의 데이터 처리 방법 순서도를 나타낸다. 도 12는 특히, 메모리 시스템의 파워 오프 이후 파워 온이 된 경우의 데이터 처리 방법 순서도를 나타낸다. 도 12는 도 1 및 도 2를 함께 참조하여 설명된다.
메모리 시스템(400)의 파워 오프 또는 서든 파워 오프 이후 파워 온이 된 경우, 메모리 컨트롤러(200)는 메타 데이터 블록들 및 저널 데이터 블록들을 메모리 장치(300)로부터 독출할 수 있다(S420). 예를 들어, 저널 데이터 매니저(240)는 메타 데이터 블록들을 메타 데이터 영역(314)으로부터 독출해낼 수 있고, 저널 데이터 블록들을 저널 데이터 영역(316)으로부터 독출해낼 수 있다.
메모리 컨트롤러(200)는 저널 데이터 블록들에 포함된 메타 데이터 저장 정보들을 기초로, 저널 데이터들의 축적 시점과 메타 데이터들의 기입 시점의 순서를 판단할 수 있다(S440). 도 6 내지 도 9를 참조해 설명되었듯이, 메타 데이터 블록(MDB)이 메모리 장치(300)에 기입될 때 메모리 컨트롤러(200)가 저널 데이터 블록(JDB)에 메타 데이터 저장 정보를 추가함에 따라, 메모리 컨트롤러(200)는 메타 데이터 저장 정보들을 기초로 저널 데이터들의 축적 시점과 메타 데이터들의 기입 시점의 순서를 판단할 수 있다.
메모리 컨트롤러(200)는, 판단된 순서를 기초로, 저널 데이터들을 이용해 메타 데이터들을 복원하거나 업데이트 할 수 있다(S460).
도 13은 본 개시의 예시적 실시 예에 따른 데이터 처리 시스템(10)을 나타낸다. 도 13은 특히, 호스트(100)가 데이터 보장 요청(data guarantee request; DGR)을 메모리 시스템(400)에 제공하는 경우의 메모리 시스템(400)의 동작을 설명하기 위한 데이터 처리 시스템(10)이다. 도 13의 데이터 처리 시스템(10)에 관해 도 1과 중복되는 설명은 생략한다.
메모리 컨트롤러(200)의 L2 캐시(274)는 메모리 장치(300)에 기입될 형태의 데이터를 저장하는 반면, L1 캐시(272)는 메모리 장치(300)에 기입될 형태로 정렬되기 전의 형태로서 적어도 하나의 로그 엔트리들을 저장할 수 있다.
L1 캐시(272)에 저장된 적어도 하나의 로그 엔트리들 및 다양한 데이터의 중요도가 높은 경우 혹은 호스트(100)의 필요에 따라, 호스트(100)는 L1 캐시(272)에 저장된 데이터를 보장해달라는 요청을 나타내는 데이터 보장 요청(DGR)을 메모리 컨트롤러(200)에 송신할 수 있다.
메모리 컨트롤러(200)는, 데이터 보장 요청(DGR)의 수신에 응답하여, L1 캐시(272)의 모든 영역에 저장된 데이터들을 이용해 하나의 데이터 블록을 생성할 수 있고, 생성된 데이터 블록을 메모리 장치(300)의 저널 데이터 영역(316)에 기입할 수 있다. 상기 생성된 데이터 블록은 L1 저널 블록(L1JB)이라 칭해질 수 있다. 다시 말해, 메모리 컨트롤러(200)는, L1 캐시(272)에 저장된 모든 데이터들을 L1 저널 블록(L1JB)으로 그룹화함으로써 L1 저널 블록(L1JB)을 저널 데이터 블록의 일종으로서 저널 데이터 영역(316)에 기입할 수 있다.
메모리 시스템(400)에는 서든 파워 오프와 같은 예상치 못한 이벤트가 발생할 수 있다. 서든 파워 오프와 같은 이벤트가 발생한 경우, L1 캐시(272)에 저장된 로그 엔트리들이 손실될 우려가 있을 수 있다. 본 개시의 예시적 실시 예에 따르면, 메모리 컨트롤러(200)가 호스트(100)로부터 데이터 보장 요청(DGR)이 수신됨에 따라 L1 저널 블록(L1JB)을 메모리 장치(300)에 기입함에 따라, 다시 파워 온이 된 이후 메모리 컨트롤러(200)는 메모리 장치(300)로부터 L1 저널 블록(L1JB)을 독출하여 L1 저널 블록(L1JB)을 L1 캐시(272)에 복사할 수 있다. 이에 따라 로그 엔트리들의 손실 우려가 감소될 수 있다.
이에 따라, 본 개시의 예시적 실시 예에 따른 데이터 처리 시스템(10)에서는, 서든 파워 오프와 같은 예상치 못한 이벤트가 발생한 경우에도 메타 데이터와 저널 데이터 간의 정합성을 보장할 수 있다.
도 14는 본 개시의 예시적 실시 예에 따른 L1 캐시(272), L2 캐시(274) 및 저널 데이터 영역(316)을 나타낸다. 도 14는 도 13을 함께 참조하여 설명된다.
L1 캐시(272)는 복수의 로그 엔트리들을 저장할 수 있는데, 복수의 로그 엔트리들을 메모리 장치(300)에 저장될 형태와 달리 정렬되지 않은 형태로 저장할 수 있다. 메모리 컨트롤러(200)는, L1 캐시(272)에 저장된 로그 엔트리들 중 적어도 일부를 L2 캐시(274)에 정렬함으로써 메모리 장치(300)에 기입될 형태의 데이터를 생성할 수 있다.
메모리 컨트롤러(200)는, 호스트(100)로부터 데이터 보장 요청(DGR)이 수신되는 경우, L1 캐시(272)의 모든 영역에 포함된 데이터들을 이용해 L1 저널 블록(L1JB)을 구성할 수 있고, L1 저널 블록(L1JB)을 메모리 장치(300)의 저널 데이터 영역(316)에 기입할 수 있다.
서든 파워 오프 이후 메모리 시스템(400)이 파워 온 됐을 때, 메모리 컨트롤러(200)는 저널 데이터 영역(316)에 저장된 L1 저널 블록(L1JB)을 기초로 로그 엔트리들을 L1 캐시(272)에 복원할 수 있다.
도 15는 본 개시의 예시적 실시 예에 따른 저장 장치의 데이터 처리 방법 순서도를 나타낸다. 도 15는 도 13을 함께 참조하여 설명된다.
메모리 컨트롤러(200)는 메모리 장치(300)로부터 저널 데이터 블록을 독출해낼 수 있다(S510). 일 실시 예에서, 메모리 컨트롤러(200)는 메모리 장치(300)의 저널 데이터 영역(316)으로부터 저널 데이터 블록들을 독출해낼 수 있는데, 도 15는 독출된 저널 데이터 블록들 중 하나의 저널 데이터 블록에 관한 처리 방법에 대해 도시한다.
메모리 컨트롤러(200)는 독출된 저널 데이터 블록이 L1 저널 블록(L1JB)에 해당하는지 판단할 수 있다(S520). 독출된 저널 데이터 블록이 L1 저널 블록(L1JB)이 아닌 일반적인 저널 데이터 블록인 경우, S530 단계로 진행될 수 있다. 독출된 저널 데이터 블록이 L1 저널 블록(L1JB)에 해당하는 경우, S550 단계로 진행될 수 있다.
독출된 저널 데이터 블록이 저널 데이터 및 메타 데이터 저장 정보를 포함하는 일반적인 저널 데이터인 경우, S530 단계 및 S540 단계가 수행될 수 있는데, S530 단계는 도12의 S440 단계와 대응될 수 있고, S540 단계는 도 12의 S460 단계와 대응될 수 있다.
독출된 저널 데이터 블록이 L1 저널 블록(L1JB)에 해당하는 경우, 메모리 컨트롤러(200)는 저널 데이터 블록으로서 저장된 L1 저널 블록(L1JB)을 L1 캐시(272)로 복사할 수 있다(S550).
이와 같은 동작 방법을 통해, 메모리 시스템(400)은 보장이 필요한 로그 엔트리들을 완전히 복원할 수 있다.
도 16은 본 개시의 예시적 실시 예에 따른 저널 데이터 영역(316) 및 L1 캐시(272)를 나타낸다. 도 16은 도 13을 함께 참조하여 설명된다. 도 16에 도시된 구체적인 로그 엔트리의 저장 형태는 설명의 편의를 위한 예시적인 것에 불과하다.
저널 데이터 영역(316)은 제1 저널 데이터 블록 내지 제5 저널 데이터 블록을 저장할 수 있고, L1 캐시 저널 블록을 저장할 수 있다. L1 캐시 저널 블록은 제1 로그 엔트리, 제2 로그 엔트리 및 제3 로그 엔트리를 포함할 수 있다. L1 캐시 저널 블록은, 호스트(100)에 의해 메모리 컨트롤러(200)에 제공된 데이터 보장 요청(DGR)에 기초하여, 메모리 컨트롤러(200)가 L1 캐시(272)의 모든 영역에 포함된 데이터들을 이용해 생성한 데이터 블록일 수 있다.
한편, 제1 로그 엔트리 및 제3 로그 엔트리는, L1 캐시(272)에서 L2 캐시(274)로 플러쉬(flush)되어, 저널 데이터 블록에 포함되어 있을 수 있다. 예를 들어, 제2 저널 데이터 블록은 제1 로그 엔트리를 포함할 수 있고, 제5 저널 데이터 블록은 제3 로그 엔트리를 포함할 수 있다.
제1 로그 엔트리 및 제3 로그 엔트리가 저널 데이터 블록에 포함되어 저널 데이터 영역(316)에 저장되고, 제2 로그 엔트리가 L2 캐시에 플러쉬 되기 전에 서든 파워 오프가 발생한 경우를 가정한다. 서든 파워 오프 이후 파워가 온 된 경우, 메모리 컨트롤러(200)는 저널 데이터 영역(316)으로부터 저널 데이터 블록들 및 L1 캐시 저널 블록을 독출해낼 수 있다. 메모리 컨트롤러(200)는 L1 캐시 저널 블록을 L1 캐시(272)에 복사할 수 있다. 일 실시 예에서, 메모리 컨트롤러(200)는, 독출된 저널 데이터 블록들을 기초로, L1 캐시 저널 블록에 포함된 로그 엔트리들 중 독출된 저널 데이터 블록들에 포함된 로그 엔트리들을 판별할 수 있고, 상기 판별된 로그 엔트리들을 L1 캐시(272) 상에서 무효화(invalidate)할 수 있다. 예를 들어, 메모리 컨트롤러(200)는, 독출된 제2 저널 데이터 블록 및 제5 저널 데이터 블록을 기초로, L1 캐시 저널 블록에 포함된 로그 엔트리들 중 제1 로그 엔트리 및 제3 로그 엔트리를 무효화할 수 있다. 로그 엔트리를 무효화하는 것은, 로그 엔트리를 L2 캐시(274)로 플러쉬하지 않는 것을 의미할 수 있다. 일 실시 예에서, L1 캐시 저널 블록이 L1 캐시(272)에 복사된 이후, 메모리 컨트롤러(200)는 제2 저널 데이터 블록 및 제5 저널 데이터 블록을 기초로 제1 로그 엔트리 및 제3 로그 엔트리를 L1 캐시(272)에서 삭제(delete)함으로써 제1 로그 엔트리 및 제3 로그 엔트리를 무효화 할 수 있다.
도 17은 본 개시의 예시적 실시 예에 따른 SSD 시스템(1000)을 나타낸다. SSD 시스템(1000)은 호스트(1100) 및 SSD(1200)를 포함할 수 있다. SSD(1200)는 신호 커넥터(signal connector)를 통해 호스트(1100)와 신호를 주고 받을 수 있으며, 전원 커넥터(power connector)를 통해 전원을 입력 받을 수 있다. SSD(1200)는 SSD 컨트롤러(1110), 보조 전원 장치(1220) 및 복수의 플래시 메모리 장치들(1230, 1240, 1250)을 포함할 수 있다. 이 때, SSD(1200)는 도 1 내지 도 4 및 도 6 내지 도 16에 도시된 실시 예들을 이용하여 구현될 수 있다.
구체적으로 도 1 내지 도 4 및 도 6 내지 도 16에 도시된 실시 예들에 따라, SSD 컨트롤러(1110)는 저널 데이터 매니저(1214)를 포함할 수 있다. 저널 데이터 매니저(1214)는 도 1 내지 도 4 및 도 6 내지 도 16에 도시된 실시 예들에서 설명된 저널 데이터 매니저(240)에 대응될 수 있다. 본 개시의 실시 예들에 따라, SSD(1200)는 복수의 플래시 메모리 장치들(1230, 1240, 1250)에 기입되는 메타 데이터의 양을 감소시킬 수 있고, 서든 파워 오프와 같은 예상치 못한 이벤트가 발생하는 경우에도 메타 데이터와 저널 데이터 간의 정합성을 보장할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시 예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시 예들이 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (10)

  1. 메타 데이터 영역과 저널 데이터 영역을 포함하는 메모리 장치; 및
    상기 메모리 장치가 메타 데이터를 포함하는 메타 데이터 블록을 상기 메타 데이터 영역에 기입하도록 상기 메모리 장치를 제어하고, 상기 메모리 장치가 상기 메타 데이터에 대한 로그 정보를 포함하는 저널 데이터 및 상기 메타 데이터 블록의 저장에 관한 정보를 포함하는 메타 데이터 저장 정보를 포함하는 저널 데이터 블록을 상기 저널 데이터 영역에 기입하도록 상기 메모리 장치를 제어하도록 구성되는 메모리 컨트롤러를 포함하는 저장 장치.
  2. 제1항에 있어서,
    상기 메모리 컨트롤러는,
    상기 메타 데이터 블록이 상기 메모리 장치에 기입되는 때 상기 메타 데이터 저장 정보를 상기 저널 데이터 블록에 추가하도록 구성되는 것을 특징으로 하는 저장 장치.
  3. 제2항에 있어서,
    상기 메모리 컨트롤러는,
    상기 메타 데이터를 상기 메타 데이터 블록에 축적하고,
    상기 메타 데이터 블록에 축적된 메타 데이터의 용량이 제1 사이즈가 되는 것에 응답하여, 상기 메모리 장치가 상기 메타 데이터 블록을 상기 메타 데이터 영역에 기입하도록 상기 메모리 장치를 제어하고, 상기 메타 데이터 저장 정보를 상기 저널 데이터 블록에 추가하도록 구성되는 것을 특징으로 하는 저장 장치.
  4. 제2항에 있어서,
    상기 메모리 컨트롤러는,
    상기 저널 데이터 및 상기 메타 데이터 저장 정보를 상기 저널 데이터 블록에 축적하고,
    상기 저널 데이터 블록에 축적된 데이터의 용량이 제2 사이즈가 되는 것에 응답하여, 상기 메모리 장치가 상기 저널 데이터 블록을 상기 저널 데이터 영역에 기입하도록 상기 메모리 장치를 제어하도록 구성되는 것을 특징으로 하는 저장 장치.
  5. 제1항에 있어서,
    상기 메모리 컨트롤러는,
    파워 오프 이후 파워가 온(on) 된 경우, 상기 메모리 장치에 저장된 메타 데이터 블록들 및 저널 데이터 블록들을 상기 메모리 장치로부터 독출하고, 상기 저널 데이터 블록들에 포함된 메타 데이터 저장 정보들을 기초로 상기 메타 데이터 블록들에 포함된 메타 데이터들을 업데이트 하고, 상기 저널 데이터 블록들에 포함된 상기 메타 데이터 저장 정보들을 기초로 상기 저널 데이터 블록들에 포함된 저널 데이터들의 축적 시점과 상기 메타 데이터들의 기입 시점의 순서를 판단하고, 상기 판단된 순서를 기초로 상기 저널 데이터들을 이용해 상기 메타 데이터들을 업데이트 하는 것을 특징으로 하는 저장 장치.
  6. 제1항에 있어서,
    상기 메모리 컨트롤러는,
    복수의 로그 엔트리들을 저장하는 L1 캐시를 포함하고,
    상기 저장 장치의 외부로부터 데이터 보장 요청 신호가 수신된 경우, 상기 L1 캐시의 모든 영역의 데이터를 이용해 L1 저널 블록을 생성하고, 상기 메모리 장치가 상기 L1 저널 블록을 상기 저널 데이터 영역에 기입하도록 상기 메모리 장치를 제어하도록 구성되는 것을 특징으로 하는 저장 장치.
  7. 제6항에 있어서,
    상기 메모리 컨트롤러는,
    파워 오프 이후 파워가 온(on) 된 경우, 상기 메모리 장치에 저장된 상기 L1 저널 블록을 상기 메모리 장치로부터 독출하고, 상기 L1 저널 블록을 상기 L1 캐시에 복사하도록 구성되는 것을 특징으로 하는 저장 장치.
  8. 메모리 컨트롤러가, 메타 데이터를 메타 데이터 블록에 축적하는 단계;
    상기 메모리 컨트롤러가, 상기 메타 데이터에 대한 로그 정보를 포함하는 저널 데이터를 저널 데이터 블록에 축적하는 단계;
    상기 메모리 컨트롤러가, 상기 메타 데이터 블록이 메모리 장치의 메타 데이터 영역에 기입되는 것에 응답하여 상기 메타 데이터 블록의 저장에 관한 메타 데이터 저장 정보를 상기 저널 데이터 블록에 추가하는 단계; 및
    상기 저널 데이터 블록에 축적된 데이터의 용량이 제2 사이즈에 도달하는 경우, 상기 저널 데이터 블록을 상기 메모리 장치의 저널 데이터 영역에 기입하는 단계를 포함하는 저장 장치의 데이터 처리 방법.
  9. 제8항에 있어서,
    상기 메타 데이터 저장 정보는,
    상기 메타 데이터 블록의 에이지 및 상기 메타 데이터 블록이 저장되는 상기 메모리 장치 내 물리 페이지 넘버(physical page number)를 포함하는 것을 특징으로 하는 저장 장치의 데이터 처리 방법.
  10. 제8항에 있어서,
    파워 오프 이후 파워가 온 되는 것에 응답하여, 메타 데이터들을 포함하는 메타 데이터 블록들 및 저널 데이터들 및 메타 데이터 저장 정보들을 포함하는 저널 데이터 블록들을 상기 메모리 장치로부터 독출하는 단계;
    상기 메모리 컨트롤러가, 상기 메타 데이터 저장 정보들을 기초로 상기 저널 데이터들의 축적 시점과 상기 메타 데이터들의 기입 시점의 순서를 판단하는 단계; 및
    상기 판단된 순서를 기초로, 상기 저널 데이터를 이용해 상기 메타 데이터들의 적어도 일부를 복원 또는 업데이트 하는 단계를 더 포함하는 것을 특징으로 하는 저장 장치의 데이터 처리 방법.
KR1020190002399A 2019-01-08 2019-01-08 저장 장치 및 그것의 데이터 처리 방법 Ceased KR20200086143A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020190002399A KR20200086143A (ko) 2019-01-08 2019-01-08 저장 장치 및 그것의 데이터 처리 방법
US16/551,298 US11487630B2 (en) 2019-01-08 2019-08-26 Storage device and data processing method thereof
CN201911152698.8A CN111414342B (zh) 2019-01-08 2019-11-21 存储设备及其数据处理方法
KR1020240161965A KR20240165314A (ko) 2019-01-08 2024-11-14 저장 장치 및 그것의 데이터 처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190002399A KR20200086143A (ko) 2019-01-08 2019-01-08 저장 장치 및 그것의 데이터 처리 방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020240161965A Division KR20240165314A (ko) 2019-01-08 2024-11-14 저장 장치 및 그것의 데이터 처리 방법

Publications (1)

Publication Number Publication Date
KR20200086143A true KR20200086143A (ko) 2020-07-16

Family

ID=71404413

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020190002399A Ceased KR20200086143A (ko) 2019-01-08 2019-01-08 저장 장치 및 그것의 데이터 처리 방법
KR1020240161965A Pending KR20240165314A (ko) 2019-01-08 2024-11-14 저장 장치 및 그것의 데이터 처리 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020240161965A Pending KR20240165314A (ko) 2019-01-08 2024-11-14 저장 장치 및 그것의 데이터 처리 방법

Country Status (3)

Country Link
US (1) US11487630B2 (ko)
KR (2) KR20200086143A (ko)
CN (1) CN111414342B (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102435910B1 (ko) * 2022-03-15 2022-08-25 삼성전자주식회사 스토리지 장치 및 그것의 동작 방법
KR102497130B1 (ko) * 2021-11-11 2023-02-07 삼성전자주식회사 스토리지 장치 및 그것의 동작 방법
US11704050B2 (en) 2020-12-31 2023-07-18 SK Hynix Inc. Memory system for determining a memory area in which a journal is stored according to a number of free memory blocks
US12379870B2 (en) 2022-10-27 2025-08-05 SK Hynix Inc. Storage device for a plurality of meta data and method of operating the same

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11372723B2 (en) * 2019-10-29 2022-06-28 International Business Machines Corporation Dynamically adjusting a journal snapshot window
US11704560B2 (en) * 2020-06-25 2023-07-18 Google Llc Pattern-based classification
KR20220113146A (ko) * 2021-02-05 2022-08-12 에스케이하이닉스 주식회사 호스트 및 이에 연결되는 메모리 시스템의 동작 방법
CN113093997B (zh) * 2021-04-19 2021-09-28 深圳市安信达存储技术有限公司 一种基于Host Based FTL架构分离数据的方法
US20230342289A1 (en) * 2022-04-21 2023-10-26 Arm Limited Apparatus and method for managing capabilities
KR20240083704A (ko) 2022-12-05 2024-06-12 삼성전자주식회사 저널 데이터를 관리하는 메모리 컨트롤러 및 상기 메모리 컨트롤러의 동작 방법
KR20250095143A (ko) * 2023-12-19 2025-06-26 삼성전자주식회사 동적 저널링 기법을 사용하는 스토리지 장치 및 그것의 동작 방법
US20250252049A1 (en) * 2024-02-05 2025-08-07 SK Hynix Inc. Data storage device performing checkpointing operation and method of operating the same

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7032096B2 (en) * 2003-04-22 2006-04-18 Hewlett-Packard Development Company, L.P. Memory management system and method using a hash table
US7386663B2 (en) 2004-05-13 2008-06-10 Cousins Robert E Transaction-based storage system and method that uses variable sized objects to store data
US8230178B2 (en) 2005-02-10 2012-07-24 International Business Machines Corporation Data processing system and method for efficient coherency communication utilizing coherency domain indicators
US8452929B2 (en) * 2005-04-21 2013-05-28 Violin Memory Inc. Method and system for storage of data in non-volatile media
US7873601B1 (en) * 2006-06-29 2011-01-18 Emc Corporation Backup of incremental metadata in block based backup systems
US7752402B2 (en) * 2006-08-18 2010-07-06 Isilon Systems, Inc. Systems and methods for allowing incremental journaling
KR100885181B1 (ko) * 2007-02-06 2009-02-23 삼성전자주식회사 그룹 맵핑 동작을 수행하는 메모리 시스템 및 그것의어드레스 맵핑 방법
EP3200189B1 (en) * 2007-04-12 2021-06-02 Rambus Inc. Memory system with point-to-point request interconnect
US8266114B2 (en) * 2008-09-22 2012-09-11 Riverbed Technology, Inc. Log structured content addressable deduplicating storage
US8392687B2 (en) * 2009-01-21 2013-03-05 Micron Technology, Inc. Solid state memory formatting
KR101114125B1 (ko) * 2009-04-17 2012-02-20 고려대학교 산학협력단 낸드 플래시 파일 시스템 및 그의 초기화 및 크래시 복구 방법
US8949835B2 (en) 2010-11-30 2015-02-03 Red Hat, Inc. Yielding input/output scheduler to increase overall system throughput
JP5825655B2 (ja) * 2010-12-09 2015-12-02 日本電気株式会社 レプリケーションシステム
US8909851B2 (en) * 2011-02-08 2014-12-09 SMART Storage Systems, Inc. Storage control system with change logging mechanism and method of operation thereof
US9823981B2 (en) * 2011-03-11 2017-11-21 Microsoft Technology Licensing, Llc Backup and restore strategies for data deduplication
US8706834B2 (en) * 2011-06-30 2014-04-22 Amazon Technologies, Inc. Methods and apparatus for remotely updating executing processes
US10402374B2 (en) * 2013-08-26 2019-09-03 Vmware, Inc. Log-structured storage device format
US9176887B2 (en) 2014-01-05 2015-11-03 Quantum Corporation Compressed level two block buffer metadata cache
KR101548452B1 (ko) * 2014-02-11 2015-08-28 한양대학교 산학협력단 비휘발성 메모리 기반의 전자 장치의 메타 데이터 복원 방법 및 장치
US9442941B1 (en) 2014-03-28 2016-09-13 Emc Corporation Data structure for hash digest metadata component
KR101584760B1 (ko) 2014-06-30 2016-01-22 성균관대학교산학협력단 순서 모드 저널링 파일 시스템을 위한 블록 그룹 단위 저널링 방법 및 장치
KR20160064364A (ko) * 2014-11-27 2016-06-08 삼성전자주식회사 패스트 오픈을 위한 어드레스 맵 운영방법 및 그에 따른 메모리 시스템
WO2016095151A1 (en) * 2014-12-18 2016-06-23 Hua Zhong University Of Science Technology Storing log records in a non-volatile memory
US10402339B2 (en) * 2015-01-05 2019-09-03 CacheIO, LLC Metadata management in a scale out storage system
US20160232112A1 (en) 2015-02-06 2016-08-11 Futurewei Technologies, Inc. Unified Memory Bus and Method to Operate the Unified Memory Bus
US9824092B2 (en) * 2015-06-16 2017-11-21 Microsoft Technology Licensing, Llc File storage system including tiers
US9864774B2 (en) * 2015-06-23 2018-01-09 International Business Machines Corporation Granular buffering of metadata changes for journaling file systems
US9632715B2 (en) * 2015-08-10 2017-04-25 International Business Machines Corporation Back-up and restoration of data between volatile and flash memory
US10838630B2 (en) * 2016-04-18 2020-11-17 Netapp, Inc. Write-ahead log maintenance and recovery
KR102637757B1 (ko) * 2016-06-01 2024-02-19 삼성전자 주식회사 전자 장치 및 전자 장치의 파일 데이터 저널링 방법
KR102701812B1 (ko) * 2016-07-27 2024-09-03 에스케이하이닉스 주식회사 휘발성 메모리를 캐쉬로 사용하는 비휘발성 메모리 시스템
US9946660B2 (en) * 2016-07-29 2018-04-17 Hewlett Packard Enterprise Development Lp Memory space management
KR102847061B1 (ko) * 2016-11-24 2025-08-18 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작 방법
US10445004B2 (en) * 2017-03-30 2019-10-15 Pavilion Data Systems, Inc. Low latency metadata log
JP6579149B2 (ja) * 2017-04-20 2019-09-25 富士通株式会社 ストレージ制御装置、及びストレージ制御プログラム
US10970226B2 (en) * 2017-10-06 2021-04-06 Silicon Motion, Inc. Method for performing access management in a memory device, associated memory device and controller thereof, and associated electronic device
KR102602990B1 (ko) * 2018-06-27 2023-11-17 에스케이하이닉스 주식회사 전원 공급 장치 및 이를 포함하는 전자 장치
US10705965B2 (en) * 2018-07-23 2020-07-07 EMC IP Holding Company LLC Metadata loading in storage systems

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11704050B2 (en) 2020-12-31 2023-07-18 SK Hynix Inc. Memory system for determining a memory area in which a journal is stored according to a number of free memory blocks
KR102497130B1 (ko) * 2021-11-11 2023-02-07 삼성전자주식회사 스토리지 장치 및 그것의 동작 방법
US12072801B2 (en) 2021-11-11 2024-08-27 Samsung Electronics Co., Ltd. Storage device and method for restoring meta data thereof
KR102435910B1 (ko) * 2022-03-15 2022-08-25 삼성전자주식회사 스토리지 장치 및 그것의 동작 방법
US12379870B2 (en) 2022-10-27 2025-08-05 SK Hynix Inc. Storage device for a plurality of meta data and method of operating the same

Also Published As

Publication number Publication date
KR20240165314A (ko) 2024-11-22
CN111414342B (zh) 2025-01-17
US11487630B2 (en) 2022-11-01
CN111414342A (zh) 2020-07-14
US20200218619A1 (en) 2020-07-09

Similar Documents

Publication Publication Date Title
KR20240165314A (ko) 저장 장치 및 그것의 데이터 처리 방법
US11150837B2 (en) Method, device and system for processing sequential groups of buffered write data
US11875055B2 (en) Storage device that receives inode address information to reduce external communication overhead
US9239782B2 (en) Nonvolatile memory device and program method thereof
US9158671B2 (en) Nonvolatile memory system with migration manager
KR102254392B1 (ko) 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 장치 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템
US9891838B2 (en) Method of operating a memory system having a meta data manager
US11537318B2 (en) Memory system and operating method thereof
US12253942B2 (en) System and method for defragmentation of memory device
KR20190083148A (ko) 데이터 저장 장치 및 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템
US12505044B2 (en) Storage device based on flash memory and method for managing prefetch data thereof
US12189536B2 (en) Memory controller with improved mapping information management, memory system including the same, and operating method of memory controller
KR20220130526A (ko) 메모리 시스템 및 그 동작 방법
KR102653017B1 (ko) 비휘발성 메모리 장치들 및 이를 제어하는 방법들
US12591372B2 (en) Memory controller, storage device including memory controller, and operating method of memory controller
KR20220111566A (ko) 메모리 컨트롤러 및 이를 포함하는 저장 장치
US11822800B2 (en) Storage system including host and storage device and operation method thereof
US11657000B2 (en) Controller and memory system including the same
KR20250120548A (ko) 유저 데이터 영역의 크기를 확장 가능한 스토리지 장치 및 그 동작 방법
KR20250153460A (ko) 저전력 모드에서 데이터를 페이지 버퍼에 백업하는 스토리지 장치 및 그 동작 방법
KR20240065774A (ko) 네임스페이스의 순차성을 기초로 논리 주소를 변환하는 스토리지 장치 및 그 동작 방법
KR20240077761A (ko) 전력 상태에 따라 백그라운드 동작을 실행하는 스토리지 장치 및 그 동작 방법

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20190108

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20211217

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20190108

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20231030

Patent event code: PE09021S01D

E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20240513

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20231030

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I

E601 Decision to refuse application
E801 Decision on dismissal of amendment
PE0601 Decision on rejection of patent

Patent event date: 20240819

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

PE0801 Dismissal of amendment

Patent event code: PE08012E01D

Comment text: Decision on Dismissal of Amendment

Patent event date: 20240819