KR20090042077A - File Management System and Method - Google Patents
File Management System and Method Download PDFInfo
- Publication number
- KR20090042077A KR20090042077A KR1020070107978A KR20070107978A KR20090042077A KR 20090042077 A KR20090042077 A KR 20090042077A KR 1020070107978 A KR1020070107978 A KR 1020070107978A KR 20070107978 A KR20070107978 A KR 20070107978A KR 20090042077 A KR20090042077 A KR 20090042077A
- Authority
- KR
- South Korea
- Prior art keywords
- metadata
- block device
- data
- memory
- file management
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000007726 management method Methods 0.000 claims description 39
- 238000013500 data storage Methods 0.000 claims description 11
- 238000013507 mapping Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 6
- 239000004065 semiconductor Substances 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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)하는 데 소요되는 시간을 단축할 수 있다.A nonvolatile memory based file management system and method are provided. A storage device of the present invention of the present invention is a block device for storing data, and non-volatile random access memory (byte-addressable), and non-volatile random access memory for storing metadata for controlling the block device (non- volatile random access memory (NVRAM), which can reduce the time required to mount.
Description
본 발명은 파일 관리 시스템 및 파일 시스템에 관한 것으로서, 특히 비휘발성(nom-volatile) 메모리에 기반한 파일 관리 시스템 및 파일 시스템에 관한 것이다.The present invention relates to a file management system and a file system, and more particularly, to a file management system and a file system based on a non-volatile memory.
데이터를 저장하는 장치(data storage)로는 자기 디스크(magnetic disk), 반도체 메모리 등이 있을 수 있고, 데이터 저장 장치는 종류 별로 서로 다른 물리적 특성을 가지기 때문에 상기 물리적 특성에 상응하는 관리 시스템이 필요하다.The data storage device may include a magnetic disk, a semiconductor memory, and the like, and since the data storage device has different physical characteristics for each type, a management system corresponding to the physical characteristics is required.
종래의 데이터 스토리지로는 자기 디스크가 널리 사용되어 왔다. 자기 디스크는 평균적으로 킬로바이트(kilobyte) 당 수 밀리초(millisecond)의 읽기/쓰기 시간을 특성으로 가진다. 또한, 자기 디스크는 데이터가 저장된 물리적 위치에 따라 암(arm)이 도달하는 시간이 다르기 때문에 읽기/쓰기 시간이 달라지는 특성을 가진다.As a conventional data storage, magnetic disks have been widely used. Magnetic disks have an average read / write time of a few milliseconds per kilobyte. In addition, the magnetic disk has a characteristic that the read / write time is different because the time that the arm arrives varies depending on the physical location where the data is stored.
최근에는 자기 디스크에 비하여 읽기/쓰기 시간이 짧고 작은 전력을 소모하며 작은 부피를 차지하는 비휘발성 메모리 장치가 급속하게 자기 디스크를 대체하고 있다. 이는 비휘발성 메모리 장치의 대용량화가 이루어졌기 때문에 가능한 결 과이다.Recently, nonvolatile memory devices, which have shorter read / write times, consume less power, and occupy smaller volumes than magnetic disks, are rapidly replacing magnetic disks. This is possible due to the large capacity of the nonvolatile memory device.
비휘발성 메모리 장치는 전기적으로 읽기(reading), 쓰기(writing) 및 소거(erase)가 가능하며, 공급 전원이 없는 상태에서도 프로그래밍된 데이터를 유지할 수 있는 반도체 메모리 장치이다. 비휘발성 메모리 장치에 대한 데이터의 저장 과정은 쓰기 외에도 프로그래밍(programming)이라고 불리기도 한다.The nonvolatile memory device is a semiconductor memory device capable of electrically reading, writing, and erasing and maintaining programmed data even in a state in which there is no power supply. In addition to writing, the process of storing data for nonvolatile memory devices is also called programming.
비휘발성 메모리 장치는 디지털 카메라, 셀룰라 폰(cellular phone), 개인용 데이터 단말기(Personal Data Assistants, PDA), 랩탑 컴퓨터(lap-top computer) 등에 널리 이용되며, 반도체 칩 상의 작은 면적에 많은 양의 데이터를 저장할 수 있다.Non-volatile memory devices are widely used in digital cameras, cellular phones, personal data assistants (PDAs), laptop computers, and the like, and store large amounts of data in small areas on semiconductor chips. Can be stored.
비휘발성 메모리 장치 가운데 최근 대용량 저장 장치로 널리 사용되는 것으로 낸드(NAND) 플래시 메모리가 있다. 낸드 플래시 메모리는 킬로바이트 당 수십 마이크로초(microsecond)의 읽기 시간 및 수백 마이크로초의 쓰기 시간을 특성으로 가진다. 또한, 낸드 플래시 메모리는 쓰기 시간과 다른 소거 시간을 가지는 것이 일반적인데, 소거 시간은 수 밀리초에 이르기 때문에 전체 데이터에 대한 소거 시간을 단축하기 위해 복수의 메모리 셀들을 동시에 소거하는 방법이 널리 사용된다. 이 때, 동시에 소거되는 복수의 메모리 셀들의 단위를 소거 유닛(erase unit)이라 한다.Among non-volatile memory devices, NAND flash memory is widely used as a mass storage device. NAND flash memory features tens of microseconds per kilobyte of read time and hundreds of microseconds of write time. In addition, NAND flash memory generally has an erase time different from the write time. Since the erase time is several milliseconds, a method of simultaneously erasing a plurality of memory cells is widely used to reduce the erase time for the entire data. . In this case, a unit of a plurality of memory cells that are simultaneously erased is called an erase unit.
이처럼 낸드 플래시 메모리를 포함한 비휘발성 메모리는 읽기/쓰기/소거에 필요한 시간이 모두 다른 비대칭적 읽기/쓰기/소거 특성을 가지는 점이 종래의 자기 디스크와 크게 다른 점이다. 또한, 비휘발성 메모리는 전기적으로 데이터에 억 세스하므로 데이터가 저장된 위치는 읽기/쓰기/소거 특성에 거의 영향을 미치지 않는 점도 종래의 자기 디스크와 크게 다른 점이다.As described above, the nonvolatile memory including NAND flash memory has asymmetrical read / write / erase characteristics in which the time required for read / write / erase is all different from the conventional magnetic disk. In addition, since the nonvolatile memory electrically accesses the data, the location where the data is stored has little effect on the read / write / erase characteristics.
종래의 자기 디스크에서는 데이터를 소거하는 과정이 데이터 쓰기 과정에 포함되어 별도의 시간이 필요하지 않았으므로 데이터를 업데이트할 필요가 있으면 업데이트된 데이터를 이전의 데이터의 위치에 오버라이트(overwrite)하면 되었다.In the conventional magnetic disk, the process of erasing data is included in the data writing process, and thus, a separate time is not required. Therefore, if data needs to be updated, the updated data may be overwritten to a position of the previous data.
그러나, 비휘발성 메모리에서는 데이터를 소거하는 과정과 데이터 쓰기 과정이 분리되어 데이터를 소거하는 과정에 별도의 긴 시간이 필요하므로, 종래의 자기 디스크에 적용되었던 방법을 비휘발성 메모리에 적용하면 데이터를 업데이트할 때에 긴 시간이 소요된다. 특히, 랜덤하게 데이터에 억세스하고 랜덤하게 데이터를 업데이트하는 경우에는 더욱 업데이트 시간이 길어진다는 점이 알려져 있다.However, in the nonvolatile memory, the data erasing process and the data writing process are separated, so that a separate long time is required for erasing the data. Therefore, if the conventional magnetic disk method is applied to the nonvolatile memory, the data is updated. This takes a long time. In particular, it is known that the update time becomes longer when the data is randomly accessed and the data is randomly updated.
또한, 이러한 대용량 저장장치 기반의 데이터를 관리하기 위해서 파일 시스템이 널리 사용되고 있다. 그러나, 파일 시스템을 사용하기 위해서는 우선 파일 시스템마다 스토리지 내에 별도로 저장되어 있는 메타데이터라는 관리정보를 읽어서 시스템이 알 수 있도록 해독해주는 과정이 필요하다. 그런데, 대부분 이 과정은 저장장치의 대용량화에 따라 매우 긴 시간을 필요로 한다. 하드 디스크의 경우 초기 구동시간이 길어서이고, 플래쉬 메모리의 경우, 플래쉬 메모리의 읽기/쓰기 특성을 고려하여 사용 연한을 연장하기 위한 웨어 레벨링 과정 때문이다.In addition, a file system is widely used to manage such mass storage-based data. However, in order to use a file system, first, a process of reading management information called metadata stored separately in storage for each file system and decrypting the information so that the system knows it is necessary. However, most of these processes require a very long time due to the large capacity of the storage device. In the case of a hard disk, the initial driving time is long, and in the case of a flash memory, a wear leveling process is performed to extend the service life in consideration of the read / write characteristics of the flash memory.
본 명세서에서는, 비휘발성 메모리 기반의 파일 시스템에 있어서, 보다 효율적인 파일 관리 시스템이 제안된다.In the present specification, a more efficient file management system is proposed for a nonvolatile memory based file system.
본 발명은 상술한 바와 같은 종래기술의 문제점을 해결하기 위해 안출된 것으로서, 비휘발성 랜덤 억세스 메모리(non-volatile random access memory, NVRAM)에 메타 데이터를 직접 매핑함으로써 마운트하는 데 소요되는 시간을 단축하는 것을 목적으로 한다.SUMMARY OF THE INVENTION The present invention has been made to solve the problems of the prior art as described above, and reduces the time required for mounting by directly mapping metadata to non-volatile random access memory (NVRAM). For the purpose of
또한, 본 발명은 NVRAM에 메타 데이터를 인 메모리 데이터 구조(in-memory data structure)로서 저장함으로써 메타 데이터를 억세스하고 업데이트하는 시간을 단축하는 것을 목적으로 한다.The present invention also aims to shorten the time for accessing and updating the metadata by storing the metadata in NVRAM as an in-memory data structure.
또한, 본 발명은 바이트 단위로 어드레싱 가능한(byte-addresable) NVRAM을 시스템 메모리로서 이용함으로써 종래의 운영 체제(Operating System, OS)의 변경 없이 스토리지 장치를 관리하는 방법을 제공하는 것을 목적으로 한다.Another object of the present invention is to provide a method for managing a storage device without changing a conventional operating system (OS) by using byte-addresable NVRAM as a system memory.
상기의 목적을 달성하고 종래 기술의 문제점을 해결하기 위하여, 본 발명의 스토리지 장치는 데이터를 저장하는 블록 디바이스, 및 바이트 단위로 어드레싱이 가능하며, 상기 블록 디바이스를 제어하기 위한 메타 데이터를 저장하는 비휘발성 랜덤 억세스 메모리를 포함하는 것을 특징으로 한다.In order to achieve the above object and to solve the problems of the prior art, the storage device of the present invention is a block device for storing data, and addressable in units of bytes, the ratio of storing the metadata for controlling the block device And a volatile random access memory.
또한, 본 발명의 또 다른 측면에 따른 파일 관리 시스템은 데이터를 저장하는 블록 디바이스, 바이트 단위로 어드레싱이 가능하며, 상기 블록 디바이스를 제어하기 위한 메타 데이터를 저장하는 비휘발성 랜덤 억세스 메모리, 및 상기 비 휘발성 랜덤 억세스 메모리와 직접 연결되고, 상기 메타 데이터를 이용하여 상기 블록 디바이스를 제어하는 프로세서를 포함하는 것을 특징으로 한다.In addition, the file management system according to another aspect of the present invention is a block device for storing data, addressable in units of bytes, a nonvolatile random access memory for storing metadata for controlling the block device, and the non- And a processor directly connected to the volatile random access memory and controlling the block device using the metadata.
또한, 본 발명의 또 다른 측면에 따른 파일 관리 방법은 블록 디바이스를 제어하는 메타 데이터를 인 메모리 데이터 구조로서 비휘발성 랜덤 억세스 메모리에 저장하는 단계, 및 상기 블록 디바이스의 파일 시스템 정보 및 상기 메타 데이터를 매핑시킴으로써 상기 블록 디바이스를 제어하는 단계를 포함하는 것을 특징으로 한다.In addition, the file management method according to another aspect of the present invention comprises the steps of storing the meta data for controlling the block device in a non-volatile random access memory as an in-memory data structure, and the file system information and the metadata of the block device Controlling the block device by mapping.
본 발명은 상술한 바와 같은 종래기술의 문제점을 해결하기 위해 안출된 것으로서, 비휘발성 랜덤 억세스 메모리(non-volatile random access memory, NVRAM)에 메타 데이터를 직접 매핑함으로써 마운트하는 데 소요되는 시간을 단축한다.The present invention has been made to solve the problems of the prior art as described above, and reduces the time required to mount by directly mapping the metadata to non-volatile random access memory (NVRAM) .
또한, 본 발명은 NVRAM에 메타 데이터를 인 메모리 데이터 구조(in-memory data structure)로서 저장함으로써 메타 데이터를 억세스하고 업데이트하는 시간을 단축한다.In addition, the present invention shortens the time to access and update metadata by storing the metadata in NVRAM as an in-memory data structure.
또한, 본 발명은 바이트 단위로 어드레싱 가능한(byte-addresable) NVRAM을 시스템 메모리로서 이용함으로써 종래의 운영 체제(Operating System, OS)의 변경 없이 스토리지 장치를 관리하는 방법을 제공한다.In addition, the present invention provides a method of managing a storage device without changing a conventional operating system (OS) by using byte-addresable NVRAM as a system memory.
이하에서, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상 세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. However, the present invention is not limited or limited by the embodiments. Like reference numerals in the drawings denote like elements.
일반적으로, 데이터를 저장하기 위한 스토리지(storage)를 블록 디바이스 (block device)라 부르기도 한다. 블록 디바이스는 하드 디스크 드라이브(Hard Disk Drive, HDD) 또는 플래시 메모리(flash memory)와 같이 전원이 차단되어도 저장된 데이터가 유실되지 않는 비휘발성 저장 장치(non-volatile storage)를 의미한다. 이에 대해, 블록 디바이스보다 용량이 작고 동작 속도가 빠른 메모리를 시스템 메모리라 부르기도 한다.In general, storage for storing data is also called a block device. A block device refers to a non-volatile storage device such that a hard disk drive (HDD) or a flash memory does not lose stored data even when power is cut off. In contrast, a memory having a smaller capacity and a faster operating speed than a block device is sometimes referred to as system memory.
시스템 메모리는 다이나믹 랜덤 억세스 메모리(Dynamic Random Access Memory, DRAM)과 같이 전원이 차단되면 저장된 데이터가 모두 유실되는 휘발성 메모리인 경우가 일반적이다. 또한, 시스템 메모리는 바이트(byte) 또는 워드(word) 단위로 어드레싱 가능한(addressable) 구조를 가지는 것이 일반적이며, 이러한 구조로 인해 블록 디바이스보다 빠르게 동작할 수 있다.The system memory is generally a volatile memory in which all stored data is lost when the power is cut off, such as a dynamic random access memory (DRAM). In addition, the system memory generally has an addressable structure in units of bytes or words, and the structure may operate faster than the block device.
일반적으로, 운영 체제(Operating System, OS)에서 블록 디바이스를 사용하기 위해서는 블록 디바이스에 파일 시스템이 구축되어 있어야 한다. 블록 디바이스는 파일 시스템을 위해 순수 데이터 저장 공간과 데이터를 인덱싱하는 메타데이터 저장 공간을 가지고 있다. 블록 디바이스 상의 데이터를 억세스하기 위해 파일 시스템은 블록 디바이스 상의 메타 데이터를 시스템 메모리 상에 로드(load)한다.In general, in order to use a block device in an operating system (OS), a file system must be built in the block device. Block devices have pure data storage for the file system and metadata storage for indexing data. To access the data on the block device, the file system loads metadata on the block device onto system memory.
블록 디바이스로 널리 사용되는 플래시 메모리는 동시에 소거되는 블록 단 위로 데이터를 저장하고 관리한다. 이에 비해 메타데이터는 운영 체제(Operating System, OS)의 필요에 따라 바이트 단위 또는 워드 단위로 업데이트되어야 하기 때문에 메타 데이터를 시스템 메모리 상에 로드하는 과정이 필요하고, 이처럼 메타 데이터를 시스템 메모리 상에 로드하는 과정을 마운트(mount)한다고 부르기도 한다.Flash memory, widely used as a block device, stores and manages data in blocks that are simultaneously erased. On the other hand, since metadata needs to be updated in byte units or word units as required by an operating system (OS), it is necessary to load metadata onto system memory. Thus, metadata is loaded onto system memory. Sometimes called the process of mounting.
블록 디바이스로 널리 사용되는 하드 디스크 또한 섹터(sector) 또는 클러스터(cluster) 단위로 데이터를 저장하고 관리하기 때문에 이 경우에도 메타 데이터를 마운트하는 과정이 필요하다.Hard disks, which are widely used as block devices, also store and manage data in sectors or clusters, and thus require metadata mounting.
이 때, 시스템 메모리 상에 마운트되는 메타 데이터는 블록 디바이스에 저장된 메타 데이터가 그대로 카피되는 것이 아니라, 운영 체제에 적합한 인 메모리 데이터 구조(in-memory data structure)로 변경되어 저장된다.In this case, the metadata mounted on the system memory is not copied as it is stored in the block device, but is changed into an in-memory data structure suitable for an operating system and stored.
블록 디바이스가 플래시 메모리인 경우에 사용되는 파일 시스템의 예로는 YAFFS(Yet Another Flash File System), YAFFS1, YAFFS2, JFFS(Journaling Flash File System) 또는 JFFS2 등이 있다.Examples of a file system used when the block device is flash memory include YETFS, YAFFS1, YAFFS2, Journaling Flash File System (JFFS), or JFFS2.
종래에 플래시 메모리(블록 디바이스)를 이용한 파일 시스템에서는 메타 데이터는 플래시 메모리(블록 디바이스)에만 저장되었다. 일반적으로, 플래시 메모리의 사용 수명을 연장하기 위한 방법으로서, 웨어 레벨링(wear-leveling)이라 불리는 과정에 의해 저장되는 데이터가 분산된다. 플래시 메모리에 저장된 메타 데이터가 웨어 레벨링에 의해 분산되었다면, 운영 체제는 플래시 메모리 전체 영역을 스캔하여 저장된 메타 데이터를 검색할 필요가 있다.In the conventional file system using a flash memory (block device), metadata is stored only in the flash memory (block device). In general, as a method for extending the service life of a flash memory, data stored by a process called wear-leveling is distributed. If the metadata stored in the flash memory has been distributed by wear leveling, the operating system needs to scan the entire flash memory area to retrieve the stored metadata.
검색된 메타 데이터는 시스템 메모리에 마운트되기 위해 인 메모리 데이터 구조(in-memory data structure)로 변경된다.The retrieved metadata is changed into an in-memory data structure to be mounted in system memory.
최근 플래시 메모리의 제조 기술의 급속한 진보로 인해 대용량 플래시 메모리 장치가 개발되고 있다. 플래시 메모리의 용량이 증가함에 따라 저장된 메타 데이터를 검색하는 과정에 소요되는 시간이 증가한다. 운영 체제는 블록 디바이스(플래시 메모리)를 관리하기 위해 메타 데이터를 검색하여 시스템 메모리 상에 마운트하는 과정을 필요로 하므로, 메타 데이터의 검색 시간의 증가는 전체 파일 시스템의 성능을 크게 저하시킨다.Recently, due to the rapid development of flash memory manufacturing technology, a large capacity flash memory device has been developed. As the amount of flash memory increases, the time taken to retrieve stored metadata increases. Since the operating system requires the process of retrieving the metadata and mounting it on the system memory in order to manage the block device (flash memory), the increase in the retrieval time of the metadata significantly degrades the performance of the entire file system.
한편, 최근 비휘발성이면서도 바이트 단위로 어드레싱 가능한 (byte-addressable) 비휘발성 랜덤 억세스 메모리(non-volatile random access memory, NVRAM)가 개발되고 있다.On the other hand, non-volatile random access memory (NVRAM), which is non-volatile and byte-addressable, has been developed.
NVRAM의 예로는 FeRAM(Ferroelectric RAM), MRAM(Magnetic RAM), PRAM(Phase change RAM) 등이 있으며, 이들의 특징은 바이트 또는 워드 단위로 어드레싱 가능하고(byte-addressable or word-addressable), 전원이 차단되어도 저장된 데이터가 유실되지 않는다는 점이다.Examples of NVRAM include FeRAM (Ferroelectric RAM), Magnetic RAM (MRAM), and Phase Change RAM (PRAM). These features are byte- or word-addressable, Even if blocked, the stored data is not lost.
기존에 개발된 NVRAM의 읽기/쓰기 속도는 기존의 DRAM 등에 비하면 아직 느리다고 할 수 있으나 플래시 메모리에 비하면 매우 빠른 수준이라고 할 수 있고, 반대로 NVRAM의 용량은 아직 플래시 메모리에 비하면 매우 작은 수준이다.NVRAM's read / write speed is still slower than conventional DRAM, but it's very fast compared to flash memory. On the contrary, NVRAM's capacity is still very small compared to flash memory.
본 명세서에서는 기존의 시스템 메모리를 NVRAM으로 대체하는 방법 및 대체된 스토리지 장치를 제안하며, 이는 NVRAM의 byte-addressable한 특성에 의해 가 능한 것이다.The present specification proposes a method for replacing an existing system memory with NVRAM and a replaced storage device, which is possible due to the byte-addressable characteristics of NVRAM.
NVRAM은 프로세서의 메모리 어드레스에 바로 연결되어, 프로세서의 메모리 맵에 매핑될 수 있고, 프로세서는 시스템 메모리를 억세스하듯이 NVRAM을 바이트 단위로 읽거나 쓸 수 있다. 또한, NVRAM은 시스템 메모리로 널리 사용되는 DRAM과 달리 전원이 차단되어도 저장된 데이터를 유실하지 않으므로 이후 전원이 다시 인가되면 이전에 쓰여진 데이터를 다시 사용할 수 있는 특징이 있다.NVRAM is directly linked to the processor's memory address, which can be mapped to the processor's memory map, and the processor can read or write NVRAM in bytes as if it were accessing system memory. In addition, unlike DRAM, which is widely used as a system memory, NVRAM does not lose stored data even when the power is cut off, so that when the power is applied again, previously written data can be reused.
도 1은 본 발명의 일 실시예에 따른 스토리지 장치(100)를 도시하는 도면이다.1 is a diagram illustrating a
도 1을 참조하면, 스토리지 장치(100)는 NVRAM(110) 및 블록 디바이스(120)를 포함한다.Referring to FIG. 1, the
NVRAM(110)는 byte-addressable하며, 블록 디바이스(120)를 제어하기 위한 메타 데이터를 저장한다.
블록 디바이스(120)는 데이터를 저장하는 디바이스로서, 실시예에 따라서는 플래시 메모리 또는 하드 디스크일 수 있다. 이 때, 플래시 메모리는 블록 단위로 addressable하고, 하드 디스크는 섹터(sector) 단위로 addressable할 수 있다.The
실시예에 따라서는, 블록 디바이스(120)는 데이터를 저장하기 위한 순수 데이터 저장 영역만을 가질 수 있다. 이 때, NVRAM(110)는 메타 데이터를 인 메모리 데이터 구조(in-memory data structure)로서 저장할 수 있다. 인 메모리 데이터 구조는 운영 체제에 적합하게 변형된 데이터 구조를 말한다.In some embodiments, the
다른 실시예에 따라서는, 블록 디바이스(120)는 데이터를 저장하기 위한 순수 데이터 저장 영역 및 메타 데이터 저장 영역을 포함할 수 있다. 이 때, 메타 데이터 저장 영역에는 메타 데이터가 압축된 제2 메타 데이터가 저장될 수 있다.According to another exemplary embodiment, the
스토리지 장치(100)에 따르면, 블록 디바이스(120)를 스캔하여 메타 데이터를 수집하고, 수집된 메타 데이터를 시스템 메모리 상에 인 메모리 데이터 구조로서 마운트하는 과정이 필요 없다. NVRAM(110)은 비휘발성이므로 저장된 메타 데이터는 전원이 차단되어도 유실되지 않아 다시 전원이 인가되면 저장된 메타 데이터를 이용할 수 있다. 또한, NVRAM(110)은 byte-addressable하므로, 메타 데이터를 업데이트할 때에도 바이트 단위로 업데이트할 수 있다.According to the
스토리지 장치(100)의 마운트 과정은 블록 디바이스(120)를 운영하는 파일 시스템의 인 메모리 데이터 구조에 NVRAM(110)의 메타 데이터를 매핑시키는 단순한 과정으로 완료될 수 있다.The mounting process of the
도 2는 본 발명의 일 실시예에 따른 파일 관리 시스템(200)을 도시하는 도면이다.2 is a diagram illustrating a
파일 관리 시스템(200)은 프로세서(210), NVRAM(220) 및 블록 디바이스(230)를 포함한다.The
블록 디바이스(230)는 데이터를 저장하고, 실시예에 따라서는 플래시 메모리 또는 하드 디스크일 수 있다.The
NVRAM(220)는 byte-addressable하고, 블록 디바이스(230)를 제어하기 위한 메타 데이터를 저장한다.
프로세서(210)는 NVRAM(220)와 직접 연결되고, 메타 데이터를 이용하여 블록 디바이스(230)를 제어한다. 프로세서(210)는 NVRAM(220)에 저장된 메타 데이터를 읽고. 업데이트함으로써 블록 디바이스(230)를 제어한다.The
프로세서(210)는 블록 디바이스(220)의 파일 시스템 정보 및 메타 데이터를 매핑시킴으로써 블록 디바이스(230)를 제어할 수 있다.The
메타 데이터를 파일 관리 시스템(200)이 동작하는 운영 체제에서 직접 이용 가능한 인 메모리 데이터 구조로서 저장된다.Meta data is stored as an in-memory data structure that is directly available to the operating system on which
파일 관리 시스템(200)은 블록 디바이스(230)가 대용량인 경우 메타 데이터의 마운트에 오랜 시간이 소요되었던 종래 기술을 개량한 것이다.The
파일 관리 시스템(200)은 메타 데이터의 마운트에 소요되는 시간을 단축하여 신속하게 가용성을 확보할 수 있다.The
파일 관리 시스템(200)은 메타 데이터가 시스템 메모리에 저장되는 타입이 블록 디바이스(230)에 저장되는 타입과 다르기 때문에 마운트에 소요되는 시간을 단축할 수 있다. 파일 관리 시스템(200)에서는 메타 데이터가 인 메모리 데이터 구조로서 NVRAM(220)에 저장되어 메타 데이터의 변환 과정이 필요 없다.The
파일 관리 시스템(200)은 메타 데이터를 NVRAM(220)에만 저장하여 메타 데이터 관리의 효율을 높일 수 있다. 종래 기술은 메타 데이터를 시스템 메모리 및 블록 디바이스(230)에 중복하여 저장하는 문제가 있었다.The
파일 관리 시스템(200)은 메타 데이터를 byte-addressable한 NVRAM(220)에 저장함으로써, 바이트 단위로 메타 데이터의 신속한 업데이트가 가능하다.The
파일 관리 시스템(200)은 메타 데이터를 저장하는 공간과 데이터를 저장하는 순수 데이터 저장 영역을 분리시킴으로써 데이터 관리의 효율을 높일 수 있다. 메타 데이터는 NVRAM(220)에 저장되고, 데이터는 블록 디바이스(230)에 저장된다.The
파일 관리 시스템(200)은 메타 데이터를 저장하는 NVRAM(220)으로 종래의 시스템 메모리를 대체할 수 있다. 프로세서(210)는 byte-addressable한 NVRAM(220)와 시스템 버스를 통하여 연결된다.
파일 관리 시스템(200)이 활용하는 주소 공간이 32비트 주소 공간인 경우, 32비트 주소 공간의 일부는 NVRAM(220)의 크기만큼 NVRAM(220)에 할당될 수 있다.If the address space utilized by the
도 3은 본 발명의 일 실시예에 따른 파일 관리 시스템(300)의 동작의 일 예를 도시하는 도면이다.3 is a diagram illustrating an example of an operation of the
도 3을 참조하면, 파일 관리 시스템(300)은 데이터 저장 영역(310), 인 메모리 데이터 구조 메타 데이터 저장 영역(320), 파일 시스템 드라이버(330) 및 운영 체제(340)를 포함한다.Referring to FIG. 3, the
파일 관리 시스템(300)은 YAFFS의 메타 데이터인 Object Header와 Tag 정보 각각의 인 메모리 데이터 구조인 Object Structure와 Tnode Structure를 byte-addressable한 NVRAM인 FRAM(MRAM PRAM)에 저장하고 관리되도록 한다.The
이 때, NVRAM은 인 메모리 데이터 구조 메타 데이터 저장 영역(320)에 대응한다.At this time, the NVRAM corresponds to the in-memory data structure
운영 체제(340)가 데이터 저장 영역(310)에 억세스할 때, 운영 체제(340)가 마운트 명령을 전송하면, YAFFS의 파일 시스템 드라이버(330)는 단순히 NVRAM의 Object Structure와 Tnode Structure를 드라이버 구조체에 매핑하도록 하여 마운트 동작을 완료한다.When the
이후의 모든 동작은 종래의 YAFFS에서와 유사한 방법으로 수행된다.All subsequent operations are performed in a similar manner as in conventional YAFFS.
도 4는 본 발명의 일 실시예에 따른 파일 관리 방법을 나타낸 동작 흐름도이다.4 is a flowchart illustrating a file management method according to an embodiment of the present invention.
도 4를 참조하면, 파일 관리 방법은 블록 디바이스를 제어하는 메타 데이터를 인 메모리 데이터 구조로서 NVRAM에 저장한다(S410).Referring to FIG. 4, the file management method stores meta data for controlling a block device in NVRAM as an in memory data structure (S410).
파일 관리 방법은 블록 디바이스의 파일 시스템 정보 및 메타 데이터를 매핑한다(S420).The file management method maps file system information and metadata of the block device (S420).
파일 관리 방법은 블록 디바이스의 파일 시스템 정보 및 상기 메타 데이터를 매핑시킴으로써 블록 디바이스를 제어한다(S430).The file management method controls the block device by mapping file system information of the block device and the meta data (S430).
실시예에 따라서는, 파일 관리 방법은 NVRAM에 저장된 메타 데이터를 바이트 단위로 업데이트할 수 있다.According to an exemplary embodiment, the file management method may update metadata stored in NVRAM in units of bytes.
실시예에 따라서는, 파일 관리 방법은 블록 디바이스로부터 메타 데이터를 NVRAM에 카피할 수 있다. 이 때, 파일 관리 방법은 블록 디바이스로부터 메타 데이터를 소거할 수 있다.According to an embodiment, the file management method may copy metadata from the block device to NVRAM. At this time, the file management method may erase the meta data from the block device.
본 발명에 따른 파일 관리 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The file management method according to the present invention can be implemented in the form of program instructions that can be executed by various computer means and recorded in a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, the present invention has been described by way of limited embodiments and drawings, but the present invention is not limited to the above embodiments, and those skilled in the art to which the present invention pertains various modifications and variations from such descriptions. This is possible.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined not only by the claims below but also by the equivalents of the claims.
도 1은 본 발명의 일 실시예에 따른 스토리지 장치(100)를 도시하는 도면이다.1 is a diagram illustrating a
도 2는 본 발명의 일 실시예에 따른 파일 관리 시스템(200)을 도시하는 도면이다.2 is a diagram illustrating a
도 3은 본 발명의 일 실시예에 따른 파일 관리 시스템(300)의 동작의 일 예를 도시하는 도면이다.3 is a diagram illustrating an example of an operation of the
도 4는 본 발명의 일 실시예에 따른 파일 관리 방법을 나타낸 동작 흐름도이다.4 is a flowchart illustrating a file management method according to an embodiment of the present invention.
<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>
110: 비휘발성 랜덤 억세스 메모리110: nonvolatile random access memory
120: 블록 디바이스120: block device
Claims (11)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070107978A KR100963009B1 (en) | 2007-10-25 | 2007-10-25 | File Management System and Method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070107978A KR100963009B1 (en) | 2007-10-25 | 2007-10-25 | File Management System and Method |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100036130A Division KR20100055374A (en) | 2010-04-19 | 2010-04-19 | File management system and method |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090042077A true KR20090042077A (en) | 2009-04-29 |
KR100963009B1 KR100963009B1 (en) | 2010-06-10 |
Family
ID=40764995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070107978A Expired - Fee Related KR100963009B1 (en) | 2007-10-25 | 2007-10-25 | File Management System and Method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100963009B1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110041675A (en) * | 2009-10-16 | 2011-04-22 | 삼성전자주식회사 | Nonvolatile Memory System and Its Data Management Method |
KR101113894B1 (en) * | 2010-05-18 | 2012-02-29 | 주식회사 노바칩스 | Semiconductor memory system and controlling method thereof |
KR101531447B1 (en) * | 2013-05-30 | 2015-06-25 | 한양대학교 산학협력단 | Computer systerm providing file system |
US9152560B2 (en) | 2011-09-23 | 2015-10-06 | Samsung Electronics Co., Ltd. | Data management method for nonvolatile memory |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102157591B1 (en) * | 2014-10-30 | 2020-09-18 | 에스케이 텔레콤주식회사 | Apparatus for Spatial Query in Big Data Environment and Computer-Readable Recording Medium with Program therefor |
KR102167791B1 (en) * | 2014-10-31 | 2020-10-19 | 에스케이 텔레콤주식회사 | Apparatus for Managing In-memory and Computer-Readable Recording Medium with Program therefor |
KR102193002B1 (en) * | 2015-01-05 | 2020-12-18 | 에스케이텔레콤 주식회사 | Apparatus And Method For Dispersion In-memory Data Grid Using Dynamic Allocation |
-
2007
- 2007-10-25 KR KR1020070107978A patent/KR100963009B1/en not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110041675A (en) * | 2009-10-16 | 2011-04-22 | 삼성전자주식회사 | Nonvolatile Memory System and Its Data Management Method |
KR101113894B1 (en) * | 2010-05-18 | 2012-02-29 | 주식회사 노바칩스 | Semiconductor memory system and controlling method thereof |
WO2011145833A3 (en) * | 2010-05-18 | 2012-04-19 | 주식회사 노바칩스 | Semiconductor memory system and method for controlling same |
US9152560B2 (en) | 2011-09-23 | 2015-10-06 | Samsung Electronics Co., Ltd. | Data management method for nonvolatile memory |
KR101531447B1 (en) * | 2013-05-30 | 2015-06-25 | 한양대학교 산학협력단 | Computer systerm providing file system |
Also Published As
Publication number | Publication date |
---|---|
KR100963009B1 (en) | 2010-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12136455B2 (en) | Lifetime mixed level non-volatile memory system | |
KR101495975B1 (en) | Hybrid solid-state memory system having volatile and non-volatile memory | |
US20130042057A1 (en) | Hybrid Non-Volatile Memory System | |
US20200098423A1 (en) | Data storage device and control method for non-volatile memory | |
US9311232B2 (en) | Management of memory array with magnetic random access memory (MRAM) | |
US20130254465A1 (en) | Solid state memory formatting | |
KR100963009B1 (en) | File Management System and Method | |
US8332575B2 (en) | Data management systems, methods and computer program products using a phase-change random access memory for selective data maintenance | |
US11334480B2 (en) | Data storage device and non-volatile memory control method | |
JP4910360B2 (en) | Storage device, computer system, and data writing method | |
TWI718710B (en) | Data storage device and non-volatile memory control method | |
KR20100055374A (en) | File management system and method | |
JP2013235358A (en) | Storage device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20071025 |
|
PA0201 | Request for examination | ||
AMND | Amendment | ||
PG1501 | Laying open of application | ||
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20090827 Patent event code: PE09021S01D |
|
AMND | Amendment | ||
E601 | Decision to refuse application | ||
PE0601 | Decision on rejection of patent |
Patent event date: 20100218 Comment text: Decision to Refuse Application Patent event code: PE06012S01D Patent event date: 20090827 Comment text: Notification of reason for refusal Patent event code: PE06011S01I |
|
J201 | Request for trial against refusal decision | ||
PJ0201 | Trial against decision of rejection |
Patent event date: 20100318 Comment text: Request for Trial against Decision on Refusal Patent event code: PJ02012R01D Patent event date: 20100218 Comment text: Decision to Refuse Application Patent event code: PJ02011S01I Appeal kind category: Appeal against decision to decline refusal Decision date: 20100526 Appeal identifier: 2010101002055 Request date: 20100318 |
|
A107 | Divisional application of patent | ||
AMND | Amendment | ||
PA0107 | Divisional application |
Comment text: Divisional Application of Patent Patent event date: 20100419 Patent event code: PA01071R01D |
|
PB0901 | Examination by re-examination before a trial |
Comment text: Amendment to Specification, etc. Patent event date: 20100419 Patent event code: PB09011R02I Comment text: Request for Trial against Decision on Refusal Patent event date: 20100318 Patent event code: PB09011R01I Comment text: Amendment to Specification, etc. Patent event date: 20091015 Patent event code: PB09011R02I Comment text: Amendment to Specification, etc. Patent event date: 20071026 Patent event code: PB09011R02I |
|
B701 | Decision to grant | ||
PB0701 | Decision of registration after re-examination before a trial |
Patent event date: 20100526 Comment text: Decision to Grant Registration Patent event code: PB07012S01D Patent event date: 20100426 Comment text: Transfer of Trial File for Re-examination before a Trial Patent event code: PB07011S01I |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20100601 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20100601 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
FPAY | Annual fee payment |
Payment date: 20130410 Year of fee payment: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20130410 Start annual number: 4 End annual number: 4 |
|
FPAY | Annual fee payment |
Payment date: 20140312 Year of fee payment: 5 |
|
PR1001 | Payment of annual fee |
Payment date: 20140312 Start annual number: 5 End annual number: 5 |
|
FPAY | Annual fee payment |
Payment date: 20160418 Year of fee payment: 7 |
|
PR1001 | Payment of annual fee |
Payment date: 20160418 Start annual number: 7 End annual number: 7 |
|
FPAY | Annual fee payment |
Payment date: 20170403 Year of fee payment: 8 |
|
PR1001 | Payment of annual fee |
Payment date: 20170403 Start annual number: 8 End annual number: 8 |
|
FPAY | Annual fee payment |
Payment date: 20190415 Year of fee payment: 10 |
|
PR1001 | Payment of annual fee |
Payment date: 20190415 Start annual number: 10 End annual number: 10 |
|
PR1001 | Payment of annual fee |
Payment date: 20210601 Start annual number: 12 End annual number: 12 |
|
PC1903 | Unpaid annual fee |
Termination category: Default of registration fee Termination date: 20230312 |