KR100963009B1 - 파일 관리 시스템 및 방법 - Google Patents

파일 관리 시스템 및 방법 Download PDF

Info

Publication number
KR100963009B1
KR100963009B1 KR1020070107978A KR20070107978A KR100963009B1 KR 100963009 B1 KR100963009 B1 KR 100963009B1 KR 1020070107978 A KR1020070107978 A KR 1020070107978A KR 20070107978 A KR20070107978 A KR 20070107978A KR 100963009 B1 KR100963009 B1 KR 100963009B1
Authority
KR
South Korea
Prior art keywords
metadata
block device
memory
data
random access
Prior art date
Application number
KR1020070107978A
Other languages
English (en)
Other versions
KR20090042077A (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 KR1020070107978A priority Critical patent/KR100963009B1/ko
Publication of KR20090042077A publication Critical patent/KR20090042077A/ko
Application granted granted Critical
Publication of KR100963009B1 publication Critical patent/KR100963009B1/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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

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)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

비휘발성 메모리 기반의 파일 관리 시스템 및 방법이 제공된다. 본 발명의 스토리지 장치는 데이터를 저장하는 블록 디바이스, 및 바이트 단위로 어드레싱이 가능(byte-addressable)하며, 상기 블록 디바이스를 제어하기 위한 메타 데이터를 저장하는 비휘발성 랜덤 억세스 메모리(non-volatile random access memory, NVRAM)를 포함하는 것을 특징으로 하며, 이로 인해 마운트(mount)하는 데 소요되는 시간을 단축할 수 있다.
비휘발성 메모리, 파일 관리 시스템, byte addressable

Description

파일 관리 시스템 및 방법 {FILE MANAGEMENT SYSTEM AND METHOD}
본 발명은 파일 관리 시스템 및 파일 시스템에 관한 것으로서, 특히 비휘발성(nom-volatile) 메모리에 기반한 파일 관리 시스템 및 파일 시스템에 관한 것이다.
데이터를 저장하는 장치(data storage)로는 자기 디스크(magnetic disk), 반도체 메모리 등이 있을 수 있고, 데이터 저장 장치는 종류 별로 서로 다른 물리적 특성을 가지기 때문에 상기 물리적 특성에 상응하는 관리 시스템이 필요하다.
종래의 데이터 스토리지로는 자기 디스크가 널리 사용되어 왔다. 자기 디스크는 평균적으로 킬로바이트(kilobyte) 당 수 밀리초(millisecond)의 읽기/쓰기 시간을 특성으로 가진다. 또한, 자기 디스크는 데이터가 저장된 물리적 위치에 따라 암(arm)이 도달하는 시간이 다르기 때문에 읽기/쓰기 시간이 달라지는 특성을 가진다.
최근에는 자기 디스크에 비하여 읽기/쓰기 시간이 짧고 작은 전력을 소모하며 작은 부피를 차지하는 비휘발성 메모리 장치가 급속하게 자기 디스크를 대체하고 있다. 이는 비휘발성 메모리 장치의 대용량화가 이루어졌기 때문에 가능한 결 과이다.
비휘발성 메모리 장치는 전기적으로 읽기(reading), 쓰기(writing) 및 소거(erase)가 가능하며, 공급 전원이 없는 상태에서도 프로그래밍된 데이터를 유지할 수 있는 반도체 메모리 장치이다. 비휘발성 메모리 장치에 대한 데이터의 저장 과정은 쓰기 외에도 프로그래밍(programming)이라고 불리기도 한다.
비휘발성 메모리 장치는 디지털 카메라, 셀룰라 폰(cellular phone), 개인용 데이터 단말기(Personal Data Assistants, PDA), 랩탑 컴퓨터(lap-top computer) 등에 널리 이용되며, 반도체 칩 상의 작은 면적에 많은 양의 데이터를 저장할 수 있다.
비휘발성 메모리 장치 가운데 최근 대용량 저장 장치로 널리 사용되는 것으로 낸드(NAND) 플래시 메모리가 있다. 낸드 플래시 메모리는 킬로바이트 당 수십 마이크로초(microsecond)의 읽기 시간 및 수백 마이크로초의 쓰기 시간을 특성으로 가진다. 또한, 낸드 플래시 메모리는 쓰기 시간과 다른 소거 시간을 가지는 것이 일반적인데, 소거 시간은 수 밀리초에 이르기 때문에 전체 데이터에 대한 소거 시간을 단축하기 위해 복수의 메모리 셀들을 동시에 소거하는 방법이 널리 사용된다. 이 때, 동시에 소거되는 복수의 메모리 셀들의 단위를 소거 유닛(erase unit)이라 한다.
이처럼 낸드 플래시 메모리를 포함한 비휘발성 메모리는 읽기/쓰기/소거에 필요한 시간이 모두 다른 비대칭적 읽기/쓰기/소거 특성을 가지는 점이 종래의 자기 디스크와 크게 다른 점이다. 또한, 비휘발성 메모리는 전기적으로 데이터에 억 세스하므로 데이터가 저장된 위치는 읽기/쓰기/소거 특성에 거의 영향을 미치지 않는 점도 종래의 자기 디스크와 크게 다른 점이다.
종래의 자기 디스크에서는 데이터를 소거하는 과정이 데이터 쓰기 과정에 포함되어 별도의 시간이 필요하지 않았으므로 데이터를 업데이트할 필요가 있으면 업데이트된 데이터를 이전의 데이터의 위치에 오버라이트(overwrite)하면 되었다.
그러나, 비휘발성 메모리에서는 데이터를 소거하는 과정과 데이터 쓰기 과정이 분리되어 데이터를 소거하는 과정에 별도의 긴 시간이 필요하므로, 종래의 자기 디스크에 적용되었던 방법을 비휘발성 메모리에 적용하면 데이터를 업데이트할 때에 긴 시간이 소요된다. 특히, 랜덤하게 데이터에 억세스하고 랜덤하게 데이터를 업데이트하는 경우에는 더욱 업데이트 시간이 길어진다는 점이 알려져 있다.
또한, 이러한 대용량 저장장치 기반의 데이터를 관리하기 위해서 파일 시스템이 널리 사용되고 있다. 그러나, 파일 시스템을 사용하기 위해서는 우선 파일 시스템마다 스토리지 내에 별도로 저장되어 있는 메타데이터라는 관리정보를 읽어서 시스템이 알 수 있도록 해독해주는 과정이 필요하다. 그런데, 대부분 이 과정은 저장장치의 대용량화에 따라 매우 긴 시간을 필요로 한다. 하드 디스크의 경우 초기 구동시간이 길어서이고, 플래쉬 메모리의 경우, 플래쉬 메모리의 읽기/쓰기 특성을 고려하여 사용 연한을 연장하기 위한 웨어 레벨링 과정 때문이다.
본 명세서에서는, 비휘발성 메모리 기반의 파일 시스템에 있어서, 보다 효율적인 파일 관리 시스템이 제안된다.
본 발명은 상술한 바와 같은 종래기술의 문제점을 해결하기 위해 안출된 것으로서, 비휘발성 랜덤 억세스 메모리(non-volatile random access memory, NVRAM)에 메타 데이터를 직접 매핑함으로써 마운트하는 데 소요되는 시간을 단축하는 것을 목적으로 한다.
또한, 본 발명은 NVRAM에 메타 데이터를 인 메모리 데이터 구조(in-memory data structure)로서 저장함으로써 메타 데이터를 억세스하고 업데이트하는 시간을 단축하는 것을 목적으로 한다.
또한, 본 발명은 바이트 단위로 어드레싱 가능한(byte-addresable) NVRAM을 시스템 메모리로서 이용함으로써 종래의 운영 체제(Operating System, OS)의 변경 없이 스토리지 장치를 관리하는 방법을 제공하는 것을 목적으로 한다.
상기의 목적을 달성하고 종래 기술의 문제점을 해결하기 위하여, 본 발명의 스토리지 장치는 데이터를 저장하는 블록 디바이스, 및 바이트 단위로 어드레싱이 가능하며, 상기 블록 디바이스를 제어하기 위한 메타 데이터를 저장하는 비휘발성 랜덤 억세스 메모리를 포함하는 것을 특징으로 한다.
또한, 본 발명의 또 다른 측면에 따른 파일 관리 시스템은 데이터를 저장하는 블록 디바이스, 바이트 단위로 어드레싱이 가능하며, 상기 블록 디바이스를 제어하기 위한 메타 데이터를 저장하는 비휘발성 랜덤 억세스 메모리, 및 상기 비 휘발성 랜덤 억세스 메모리와 직접 연결되고, 상기 메타 데이터를 이용하여 상기 블록 디바이스를 제어하는 프로세서를 포함하는 것을 특징으로 한다.
또한, 본 발명의 또 다른 측면에 따른 파일 관리 방법은 블록 디바이스를 제어하는 메타 데이터를 인 메모리 데이터 구조로서 비휘발성 랜덤 억세스 메모리에 저장하는 단계, 및 상기 블록 디바이스의 파일 시스템 정보 및 상기 메타 데이터를 매핑시킴으로써 상기 블록 디바이스를 제어하는 단계를 포함하는 것을 특징으로 한다.
본 발명은 상술한 바와 같은 종래기술의 문제점을 해결하기 위해 안출된 것으로서, 비휘발성 랜덤 억세스 메모리(non-volatile random access memory, NVRAM)에 메타 데이터를 직접 매핑함으로써 마운트하는 데 소요되는 시간을 단축한다.
또한, 본 발명은 NVRAM에 메타 데이터를 인 메모리 데이터 구조(in-memory data structure)로서 저장함으로써 메타 데이터를 억세스하고 업데이트하는 시간을 단축한다.
또한, 본 발명은 바이트 단위로 어드레싱 가능한(byte-addresable) NVRAM을 시스템 메모리로서 이용함으로써 종래의 운영 체제(Operating System, OS)의 변경 없이 스토리지 장치를 관리하는 방법을 제공한다.
이하에서, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상 세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
일반적으로, 데이터를 저장하기 위한 스토리지(storage)를 블록 디바이스 (block device)라 부르기도 한다. 블록 디바이스는 하드 디스크 드라이브(Hard Disk Drive, HDD) 또는 플래시 메모리(flash memory)와 같이 전원이 차단되어도 저장된 데이터가 유실되지 않는 비휘발성 저장 장치(non-volatile storage)를 의미한다. 이에 대해, 블록 디바이스보다 용량이 작고 동작 속도가 빠른 메모리를 시스템 메모리라 부르기도 한다.
시스템 메모리는 다이나믹 랜덤 억세스 메모리(Dynamic Random Access Memory, DRAM)과 같이 전원이 차단되면 저장된 데이터가 모두 유실되는 휘발성 메모리인 경우가 일반적이다. 또한, 시스템 메모리는 바이트(byte) 또는 워드(word) 단위로 어드레싱 가능한(addressable) 구조를 가지는 것이 일반적이며, 이러한 구조로 인해 블록 디바이스보다 빠르게 동작할 수 있다.
일반적으로, 운영 체제(Operating System, OS)에서 블록 디바이스를 사용하기 위해서는 블록 디바이스에 파일 시스템이 구축되어 있어야 한다. 블록 디바이스란 저장장치를 "블록"의 배열로 추상화시킨 개체를 의미한다. "블록"이란 이러한 블록 디바이스에서 자료를 입출력하는 최소의 단위를 의미한다. 블록의 크기가 4Kbyte 라 함은 해당 블록 디바이스에 입출력을 수행할 때 최소 4Kbyte 단위로 자료 이동이 발생함을 의미한다. 블록 디바이스를 정의하는 목적은, CPU나 메모리에 비해서 상대적으로 저장장치의 속도가 매우 느리기 때문에 한번에 읽어오는(또는 쓰여지는) 자료의 양을 크게 정의함으로써 입출력의 효율성을 향상시키고자 함이다. 블록 디바이스에 자료를 저장하고, 검색하고, 읽기 위해서는 자료를 저장하는 방법, 저장되는 파일의 구조, 다수 파일을 관리하기 위한 관리 정보들이 정의되어야 한다. 그리고, 블록 디바이스에 자료를 관리하기 위한 다수의 함수들이 구현되어야 한다. 이렇게 저장장치에 파일을 관리하는데 필요한 데이터 구조, 알고리즘을 구현한 소프트웨어 계층을 파일 시스템이라 한다. 저장장치에 저장되는 내용은 실제 사용자가 저장하는 자료 외에 저장된 자료들을 관리하는데 필요한 다양한 추가 정보들이 있다. 저장장치에 존재하는 가용 공간의 크기, 최종 수정 시간, 파일 접근 권한 등이 그것이다. 이렇게, 파일 시스템이 파일들을 효율적으로 관리하는데 필요한 일련의 자료들을 "메타 데이터"라고 한다.
블록 디바이스로 널리 사용되는 플래시 메모리는 동시에 소거되는 블록 단위로 데이터를 저장하고 관리한다. 이에 비해 메타데이터는 운영 체제(Operating System, OS)의 필요에 따라 바이트 단위 또는 워드 단위로 업데이트되어야 하기 때문에 메타 데이터를 시스템 메모리 상에 로드하는 과정이 필요하다. 컴퓨터가 저장 장치를 실제로 접근하고 사용하기 위해서는, 파일 시스템에 저장되어 있는 각종 파일 시스템 관리자료, 즉 "메타 데이터"를 메인 메모리로 읽어들여 사용가능한 형태의 자료구조로 초기화해야한다. 이러한 과정을 "마운트"라고 한다.
블록 디바이스로 널리 사용되는 하드 디스크 또한 섹터(sector) 또는 클러스터(cluster) 단위로 데이터를 저장하고 관리하기 때문에 이 경우에도 메타 데이터를 마운트하는 과정이 필요하다. 마운트 과정은 최근 널리 사용되고 있는 플래시 메모리 기반의 저장매체, 하드 디스크 기반의 저장매체를 사용할 때에 모두 필요하다.
이 때, 시스템 메모리 상에 마운트되는 메타 데이터는 블록 디바이스에 저장된 메타 데이터가 그대로 카피되는 것이 아니라, 운영 체제에 적합한 인 메모리 데이터 구조(in-memory data structure)로 변경되어 저장된다.
플래시 메모리 용 파일 시스템의 예로는 YAFFS(Yet Another Flash File System), YAFFS1, YAFFS2, JFFS(Journaling Flash File System) 또는 JFFS2 등이 있다.
메타데이타를 저장장치에 저장하는 방법은 파일 시스템에 의해서 결정된다. 메타데이타를 저장장치의 특정 영역을 할당하여 저장하거나, 저장장치 전역에 분산하여 저장할 수 있다. 예를 들면, 하드디스크용 파일 시스템의 경우는 메타데이타를 하드디스크의 특정영역을 지정 메타데이타를 저장한다. 플래쉬 메모리용 파일 시스템의 경우는 저장매체의 특성을 효과적으로 사용하는 과정에서 메타데이타가 파일 시스템의 전역에 분산되어 있을 수 있다. 이런 경우, 파일 시스템을 마운트하기 위하셔 저장 장치 전체를 검색해야 하므로, 마운트에 소요되는 시간이 클 수 있다.
검색된 메타 데이터는 시스템 메모리에 마운트되기 위해 인 메모리 데이터 구조(in-memory data structure)로 변형된다. 저장장치에서 검색된 메타 데이터는 메인 메모리(DRAM 등이 이용된다)에서 사용되기에 적합한 형태로 변형된다.
최근 플래시 메모리의 제조 기술의 급속한 진보로 인해 대용량 플래시 메모리 장치가 개발되고 있다. 플래시 메모리의 용량이 증가함에 따라 저장된 메타 데이터를 검색하는 과정에 소요되는 시간이 증가한다. 운영 체제는 블록 디바이스(플래시 메모리)를 관리하기 위해 메타 데이터를 검색하여 시스템 메모리 상에 마운트하는 과정을 필요로 하므로, 메타 데이터의 검색 시간의 증가는 전체 파일 시스템의 성능을 크게 저하시킨다.
한편, 최근 비휘발성이면서도 바이트 단위로 어드레싱 가능한 (byte-addressable) 비휘발성 랜덤 억세스 메모리(non-volatile random access memory, NVRAM)가 개발되고 있다.
NVRAM의 예로는 FeRAM(Ferroelectric RAM), MRAM(Magnetic RAM), PRAM(Phase change RAM) 등이 있으며, 이들의 특징은 바이트 또는 워드 단위로 어드레싱 가능하고(byte-addressable or word-addressable), 전원이 차단되어도 저장된 데이터가 유실되지 않는다는 점이다.
기존에 개발된 NVRAM의 읽기/쓰기 속도는 기존의 DRAM 등에 비하면 아직 느리다고 할 수 있으나 플래시 메모리에 비하면 매우 빠른 수준이라고 할 수 있고, 반대로 NVRAM의 용량은 아직 플래시 메모리에 비하면 매우 작은 수준이다.
본 명세서에서는 NVRAM의 바이트 단위의 접근성과 비휘발성을 이용하여 기존의 시스템 메모리를 NVRAM으로 대체하는 방법 및 대체된 스토리지 장치를 제안한다.
NVRAM은 프로세서의 메모리 어드레스에 바로 연결되어, 프로세서의 메모리 맵에 매핑될 수 있고, 프로세서는 시스템 메모리를 억세스하듯이 NVRAM을 바이트 단위로 읽거나 쓸 수 있다. 또한, NVRAM은 시스템 메모리로 널리 사용되는 DRAM과 달리 전원이 차단되어도 저장된 데이터를 유실하지 않으므로 이후 전원이 다시 인가되면 이전에 쓰여진 데이터를 다시 사용할 수 있는 특징이 있다.
도 1은 본 발명의 일 실시예에 따른 스토리지 장치(100)를 도시하는 도면이다.
도 1을 참조하면, 스토리지 장치(100)는 NVRAM(110) 및 블록 디바이스(120)를 포함한다.
NVRAM(110)는 byte-addressable하며, 블록 디바이스(120)를 제어하기 위한 메타 데이터를 저장한다.
블록 디바이스(120)는 데이터를 저장하는 디바이스로서, 실시예에 따라서는 플래시 메모리 또는 하드 디스크일 수 있다. 이 때, 플래시 메모리는 블록 단위로 addressable하고, 하드 디스크는 섹터(sector) 단위로 addressable할 수 있다.
실시예에 따라서는, 블록 디바이스(120)는 데이터를 저장하기 위한 순수 데이터 저장 영역만을 가질 수 있다. 이 때, NVRAM(110)는 메타 데이터를 인 메모리 데이터 구조(in-memory data structure)로서 저장할 수 있다. 인 메모리 데이터 구조는 운영 체제에 적합하게 변형된 데이터 구조를 말한다.
다른 실시예에 따라서는, 블록 디바이스(120)는 데이터를 저장하기 위한 순수 데이터 저장 영역 및 메타 데이터 저장 영역을 포함할 수 있다. 이 때, 메타 데이터 저장 영역에는 메타 데이터가 압축된 제2 메타 데이터가 저장될 수 있다.
스토리지 장치(100)에 따르면, 블록 디바이스(120)를 스캔하여 메타 데이터를 수집하고, 수집된 메타 데이터를 시스템 메모리 상에 인 메모리 데이터 구조로서 마운트하는 과정이 필요 없다. NVRAM(110)은 비휘발성이므로 저장된 메타 데이터는 전원이 차단되어도 유실되지 않아 다시 전원이 인가되면 저장된 메타 데이터를 이용할 수 있다. 또한, NVRAM(110)은 byte-addressable하므로, 메타 데이터를 업데이트할 때에도 바이트 단위로 업데이트할 수 있다.
스토리지 장치(100)의 마운트 과정은 블록 디바이스(120)를 운영하는 파일 시스템의 인 메모리 데이터 구조에 NVRAM(110)의 메타 데이터를 매핑시키는 단순한 과정으로 완료될 수 있다.
도 2는 본 발명의 일 실시예에 따른 파일 관리 시스템(200)을 도시하는 도면이다.
파일 관리 시스템(200)은 프로세서(210), NVRAM(220) 및 블록 디바이스(230)를 포함한다.
블록 디바이스(230)는 데이터를 저장하고, 실시예에 따라서는 플래시 메모리 또는 하드 디스크일 수 있다.
NVRAM(220)는 byte-addressable하고, 블록 디바이스(230)를 제어하기 위한 메타 데이터를 저장한다.
프로세서(210)는 NVRAM(220)와 직접 연결되고, 메타 데이터를 이용하여 블록 디바이스(230)를 제어한다. 프로세서(210)는 NVRAM(220)에 저장된 메타 데이터를 읽고. 업데이트함으로써 블록 디바이스(230)를 제어한다.
프로세서(210)는 블록 디바이스(220)의 파일 시스템 정보 및 메타 데이터를 매핑시킴으로써 블록 디바이스(230)를 제어할 수 있다.
메타 데이터를 파일 관리 시스템(200)이 동작하는 운영 체제에서 직접 이용 가능한 인 메모리 데이터 구조로서 저장된다.
파일 관리 시스템(200)은 블록 디바이스(230)가 대용량인 경우 메타 데이터의 마운트에 오랜 시간이 소요되었던 종래 기술을 개량한 것이다.
파일 관리 시스템(200)은 메타 데이터의 마운트에 소요되는 시간을 단축하여 신속하게 가용성을 확보할 수 있다.
파일 관리 시스템(200)은 메타 데이터가 시스템 메모리에 저장되는 타입이 블록 디바이스(230)에 저장되는 타입과 다르기 때문에 마운트에 소요되는 시간을 단축할 수 있다. 파일 관리 시스템(200)에서는 메타 데이터가 인 메모리 데이터 구조로서 NVRAM(220)에 저장되어 메타 데이터의 변환 과정이 필요 없다.
파일 관리 시스템(200)은 메타 데이터를 NVRAM(220)에만 저장하여 메타 데이터 관리의 효율을 높일 수 있다. 종래 기술은 메타 데이터를 시스템 메모리 및 블록 디바이스(230)에 중복하여 저장하는 문제가 있었다.
파일 관리 시스템(200)은 메타 데이터를 byte-addressable한 NVRAM(220)에 저장함으로써, 바이트 단위로 메타 데이터의 신속한 업데이트가 가능하다.
파일 관리 시스템(200)은 메타 데이터를 저장하는 공간과 데이터를 저장하는 순수 데이터 저장 영역을 분리시킴으로써 데이터 관리의 효율을 높일 수 있다. 메타 데이터는 NVRAM(220)에 저장되고, 데이터는 블록 디바이스(230)에 저장된다.
파일 관리 시스템(200)은 메타 데이터를 저장하는 NVRAM(220)으로 종래의 시스템 메모리를 대체할 수 있다. 프로세서(210)는 byte-addressable한 NVRAM(220)와 시스템 버스를 통하여 연결된다.
파일 관리 시스템(200)이 활용하는 주소 공간이 32비트 주소 공간인 경우, 32비트 주소 공간의 일부는 NVRAM(220)의 크기만큼 NVRAM(220)에 할당될 수 있다.
도 3은 본 발명의 일 실시예에 따른 파일 관리 시스템(300)의 동작의 일 예를 도시하는 도면이다.
도 3을 참조하면, 파일 관리 시스템(300)은 데이터 저장 영역(310), 인 메모리 데이터 구조 메타 데이터 저장 영역(320), 파일 시스템 드라이버(330) 및 운영 체제(340)를 포함한다.
파일 관리 시스템(300)은 YAFFS의 메타 데이터인 Object Header와 Tag 정보 각각의 인 메모리 데이터 구조인 Object Structure와 Tnode Structure를 byte-addressable한 NVRAM인 FRAM(MRAM PRAM)에 저장하고 관리되도록 한다.
이 때, NVRAM은 인 메모리 데이터 구조 메타 데이터 저장 영역(320)에 대응한다.
운영 체제(340)가 데이터 저장 영역(310)에 억세스할 때, 운영 체제(340)가 마운트 명령을 전송하면, YAFFS의 파일 시스템 드라이버(330)는 단순히 NVRAM의 Object Structure와 Tnode Structure를 드라이버 구조체에 매핑하도록 하여 마운트 동작을 완료한다.
이후의 모든 동작은 종래의 YAFFS에서와 유사한 방법으로 수행된다.
도 4는 본 발명의 일 실시예에 따른 파일 관리 방법을 나타낸 동작 흐름도이다.
도 4를 참조하면, 파일 관리 방법은 블록 디바이스를 제어하는 메타 데이터를 인 메모리 데이터 구조로서 NVRAM에 저장한다(S410).
파일 관리 방법은 블록 디바이스의 파일 시스템 정보 및 메타 데이터를 매핑한다(S420).
파일 관리 방법은 블록 디바이스의 파일 시스템 정보 및 상기 메타 데이터를 매핑시킴으로써 블록 디바이스를 제어한다(S430).
실시예에 따라서는, 파일 관리 방법은 NVRAM에 저장된 메타 데이터를 바이트 단위로 업데이트할 수 있다.
실시예에 따라서는, 파일 관리 방법은 블록 디바이스로부터 메타 데이터를 NVRAM에 카피할 수 있다. 이 때, 파일 관리 방법은 블록 디바이스로부터 메타 데이터를 소거할 수 있다.
본 발명에 따른 파일 관리 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
도 1은 본 발명의 일 실시예에 따른 스토리지 장치(100)를 도시하는 도면이다.
도 2는 본 발명의 일 실시예에 따른 파일 관리 시스템(200)을 도시하는 도면이다.
도 3은 본 발명의 일 실시예에 따른 파일 관리 시스템(300)의 동작의 일 예를 도시하는 도면이다.
도 4는 본 발명의 일 실시예에 따른 파일 관리 방법을 나타낸 동작 흐름도이다.
<도면의 주요 부분에 대한 부호의 설명>
110: 비휘발성 랜덤 억세스 메모리
120: 블록 디바이스

Claims (11)

  1. 데이터를 저장하기 위한 데이터 저장 영역을 포함하는 블록 디바이스; 및
    바이트 단위로 어드레싱이 가능하며, 상기 블록 디바이스를 제어하기 위한 메타 데이터를 인 메모리 데이터 구조로서 저장하는 비휘발성 랜덤 억세스 메모리
    를 포함하고,
    상기 인 메모리 데이터 구조는, 상기 블록 디바이스 및 상기 비휘발성 랜덤 억세스 메모리가 동작하는 운영 체제에 해당하는 데이터 구조이고,
    상기 인 메모리 데이터 구조에 상기 메타 데이터가 매핑되고,
    상기 메타 데이터가 업데이트 되는 경우, 상기 메타 데이터는 바이트 단위로 업데이트되는 것을 특징으로 하는 스토리지 장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 블록 디바이스는 메타 데이터를 저장하기 위한 메타 데이터 저장 영역을 더 포함하고,
    상기 블록 디바이스의 메타 데이터 저장 영역에는, 상기 메타 데이터가 압축된 제2 메타 데이터가 저장되는 것을 특징으로 하는 스토리지 장치.
  4. 제1항에 있어서,
    상기 블록 디바이스는
    블록 단위로 어드레싱 가능한 비휘발성 메모리인 것을 특징으로 하는 스토리지 장치.
  5. 데이터를 저장하는 블록 디바이스;
    바이트 단위로 어드레싱이 가능하며, 상기 블록 디바이스를 제어하기 위한 메타 데이터를 인 메모리 데이터 구조로서 저장하는 비휘발성 랜덤 억세스 메모리; 및
    상기 비휘발성 랜덤 억세스 메모리와 직접 연결되고, 상기 블록 디바이스의 파일 시스템 정보와 상기 메타 데이터를 매핑하여 상기 블록 디바이스를 제어하는 프로세서
    를 포함하고,
    상기 인 메모리 데이터 구조는, 상기 블록 디바이스, 상기 비휘발성 랜덤 억세스 메모리 및 상기 프로세서가 동작하는 운영 체제에 해당하는 데이터 구조이고,
    상기 메타 데이터가 업데이트 되는 경우, 상기 메타 데이터는 바이트 단위로 업데이트되는 것을 특징으로 하는 파일 관리 시스템.
  6. 제5항에 있어서,
    상기 프로세서는 상기 블록 디바이스의 파일 시스템 정보 및 상기 메타 데이터를 매핑시킴으로써 상기 블록 디바이스를 제어하는 것을 특징으로 하는 파일 관리 시스템.
  7. 삭제
  8. 블록 디바이스를 제어하는 메타 데이터를 운영 체제에서 직접 이용 가능한 인 메모리 데이터 구조로서 비휘발성 랜덤 억세스 메모리에 저장하는 단계; 및
    상기 블록 디바이스의 파일 시스템 정보 및 상기 메타 데이터를 매핑시킴으로써 상기 블록 디바이스를 제어하는 단계
    를 포함하고,
    상기 인 메모리 데이터 구조는, 상기 블록 디바이스 및 상기 비휘발성 랜덤 억세스 메모리가 동작하는 운영 체제에 해당하는 데이터 구조이고,
    상기 메타 데이터가 업데이트 되는 경우, 상기 메타 데이터는 바이트 단위로 업데이트되는 것을 특징으로 하는 파일 관리 방법.
  9. 제8항에 있어서,
    상기 비휘발성 랜덤 억세스 메모리에 저장된 상기 메타 데이터를 바이트 단위로 업데이트하는 단계
    를 더 포함하는 것을 특징으로 하는 파일 관리 방법.
  10. 제8항에 있어서,
    상기 블록 디바이스로부터 상기 메타 데이터를 상기 비휘발성 랜덤 억세스 메모리에 카피하는 단계; 및
    상기 블록 디바이스로부터 상기 메타 데이터를 소거하는 단계
    를 더 포함하는 것을 파일 관리 방법.
  11. 제8항 내지 제10항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
KR1020070107978A 2007-10-25 2007-10-25 파일 관리 시스템 및 방법 KR100963009B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070107978A KR100963009B1 (ko) 2007-10-25 2007-10-25 파일 관리 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070107978A KR100963009B1 (ko) 2007-10-25 2007-10-25 파일 관리 시스템 및 방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020100036130A Division KR20100055374A (ko) 2010-04-19 2010-04-19 파일 관리 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20090042077A KR20090042077A (ko) 2009-04-29
KR100963009B1 true KR100963009B1 (ko) 2010-06-10

Family

ID=40764995

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070107978A KR100963009B1 (ko) 2007-10-25 2007-10-25 파일 관리 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR100963009B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160050917A (ko) * 2014-10-31 2016-05-11 에스케이텔레콤 주식회사 인-메모리 레이어 관리 장치 및 그를 위한 컴퓨터로 읽을 수 있는 기록 매체
KR20160050735A (ko) * 2014-10-30 2016-05-11 에스케이텔레콤 주식회사 대용량 공간 데이터 환경에서 공간분석을 위한 공간질의 장치 및 그를 위한 컴퓨터로 읽을 수 있는 기록 매체
KR20160084231A (ko) * 2015-01-05 2016-07-13 에스케이텔레콤 주식회사 메모리 동적 할당이 가능한 분산 인-메모리 그리드 운용 방법 및 장치

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101602939B1 (ko) * 2009-10-16 2016-03-15 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 데이터 관리 방법
KR101113894B1 (ko) * 2010-05-18 2012-02-29 주식회사 노바칩스 반도체 메모리 시스템 및 이의 제어 방법
KR101825013B1 (ko) 2011-09-23 2018-02-05 삼성전자 주식회사 비휘발성 메모리에 영구 보존 데이터를 저장할 수 있는 시스템에서의 데이터 관리 방법
KR101531447B1 (ko) * 2013-05-30 2015-06-25 한양대학교 산학협력단 파일 시스템을 제공하는 컴퓨터 시스템

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160050735A (ko) * 2014-10-30 2016-05-11 에스케이텔레콤 주식회사 대용량 공간 데이터 환경에서 공간분석을 위한 공간질의 장치 및 그를 위한 컴퓨터로 읽을 수 있는 기록 매체
KR102157591B1 (ko) * 2014-10-30 2020-09-18 에스케이 텔레콤주식회사 대용량 공간 데이터 환경에서 공간분석을 위한 공간질의 장치 및 그를 위한 컴퓨터로 읽을 수 있는 기록 매체
KR20160050917A (ko) * 2014-10-31 2016-05-11 에스케이텔레콤 주식회사 인-메모리 레이어 관리 장치 및 그를 위한 컴퓨터로 읽을 수 있는 기록 매체
KR102167791B1 (ko) * 2014-10-31 2020-10-19 에스케이 텔레콤주식회사 인-메모리 레이어 관리 장치 및 그를 위한 컴퓨터로 읽을 수 있는 기록 매체
KR20160084231A (ko) * 2015-01-05 2016-07-13 에스케이텔레콤 주식회사 메모리 동적 할당이 가능한 분산 인-메모리 그리드 운용 방법 및 장치
KR102193002B1 (ko) 2015-01-05 2020-12-18 에스케이텔레콤 주식회사 메모리 동적 할당이 가능한 분산 인-메모리 그리드 운용 방법 및 장치

Also Published As

Publication number Publication date
KR20090042077A (ko) 2009-04-29

Similar Documents

Publication Publication Date Title
US20240233816A1 (en) Lifetime mixed level non-volatile memory system
CN110955384B (zh) 数据储存装置以及非挥发式存储器控制方法
US10915475B2 (en) Methods and apparatus for variable size logical page management based on hot and cold data
US20150309927A1 (en) Hybrid Non-Volatile Memory System
EP1561168B1 (en) Method and apparatus for splitting a logical block
KR101495975B1 (ko) 휘발성 및 비휘발성 메모리를 갖는 하이브리드 고체 메모리 시스템
JP5438137B2 (ja) データラン・プログラミング
US9311232B2 (en) Management of memory array with magnetic random access memory (MRAM)
JP4910360B2 (ja) 記憶装置、コンピュータシステム、およびデータ書き込み方法
US20120246388A1 (en) Memory system, nonvolatile storage device, control method, and medium
KR100963009B1 (ko) 파일 관리 시스템 및 방법
US9830106B2 (en) Management of memory array with magnetic random access memory (MRAM)
JP2013242908A (ja) ソリッドステートメモリ、それを含むコンピュータシステム及びその動作方法
US8332575B2 (en) Data management systems, methods and computer program products using a phase-change random access memory for selective data maintenance
KR101403922B1 (ko) 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법
TWI718710B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
US11334480B2 (en) Data storage device and non-volatile memory control method
JP2011070365A (ja) メモリシステム
KR101008032B1 (ko) 메타 데이터 관리 시스템 및 방법
CN111610931A (zh) 数据储存装置以及非挥发式存储器控制方法
CN111610929A (zh) 数据储存装置以及非挥发式存储器控制方法
KR20100055374A (ko) 파일 관리 시스템 및 방법
TWI724550B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
TWI705328B (zh) 資料儲存裝置以及非揮發式記憶體控制方法

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
A107 Divisional application of patent
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130410

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140312

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160418

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170403

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190415

Year of fee payment: 10