KR20110021417A - Flash memory system and contents-based block management method thereof - Google Patents

Flash memory system and contents-based block management method thereof Download PDF

Info

Publication number
KR20110021417A
KR20110021417A KR1020090079206A KR20090079206A KR20110021417A KR 20110021417 A KR20110021417 A KR 20110021417A KR 1020090079206 A KR1020090079206 A KR 1020090079206A KR 20090079206 A KR20090079206 A KR 20090079206A KR 20110021417 A KR20110021417 A KR 20110021417A
Authority
KR
South Korea
Prior art keywords
block
blocks
free
pure
mixed
Prior art date
Application number
KR1020090079206A
Other languages
Korean (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 KR1020090079206A priority Critical patent/KR20110021417A/en
Publication of KR20110021417A publication Critical patent/KR20110021417A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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]

Landscapes

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

Abstract

PURPOSE: A flash memory system and a contents-based block management method thereof are provided to manage blocks by using a contents-based list in order to reduce a mount time and efficiently manage a wear ratio. CONSTITUTION: A RAM(Read Random Memory)(120) loads a contents-based file system operated by a processing unit(110), and a flash memory(140) includes the blocks managed by the contents-based file system. If a file writing operation is requested, the contents-based file system selects one of blocks. The contents-based file system determines the kinds of the selected blocks as one of a pure block, a mixed block and a free block. The contents-based file system stores block type information and writing requested file at the block.

Description

플래시 메모리 시스템 및 그것의 내용기반 블록 관리 방법{FLASH MEMORY SYSTEM AND CONTENTS-BASED BLOCK MANAGEMENT METHOD THEREOF}Flash memory system and its content-based block management method {FLASH MEMORY SYSTEM AND CONTENTS-BASED BLOCK MANAGEMENT METHOD THEREOF}

본 발명은 파일 시스템에 관한 것으로, 좀 더 구체적으로는 플래시 메모리를 관리하는 파일 시스템에 관한 것이다.The present invention relates to a file system, and more particularly to a file system for managing a flash memory.

본 발명은 지식경제부의 IT SoC핵심설계인력양성의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호 : C1200-0901-0002, 과제명 : IT SoC 핵심설계인력양성 사업].The present invention is derived from a study conducted as part of the IT SoC core design manpower training department of the Ministry of Knowledge Economy [Task management number: C1200-0901-0002, Task name: IT SoC core design manpower training project].

PDA, PMP, RFID 리더, 등과 같은 모바일 기기들의 저장 매체로서 플래시 메모리의 사용이 점차적으로 증가하고 있다. 플래시 메모리를 이용한 저장 매체(이하, 플래시 저장 매체라 칭함)는 비휘발성 특징을 가지고 있으며, 하드디스크에 비해 견고하다. 플래시 저장 매체는 저 전력으로 동작이 가능하며, 플래시 저장 매체의 접근 시간은 하드디스크 보다 빠르다. 크기가 작아 플래시 저장 매체는 휴대 기기에 적합하다. 그러나, 플래시 저장 매체는 하드 디스크에 비해 가격이 5배∼10배정도 비싸다. 이미 데이터가 있는 공간에 새로운 데이터를 쓰고자 할 때, 이미 데이터가 있는 공간에 대한 지움 과정이 먼저 수행되고, 그 다음에 지워진 공간에 데이터가 저장된다. 플래시 저장 매체의 경우, 읽는 속도는 매우 빠르지만, 쓰기 속도와 지우는 속도가 상대적으로 느리다. 또한, 한 번에 지울 수 있는 크기가 일정하며, 상온에서 지울 수 있는 횟수가 정해져 있다.The use of flash memory as a storage medium for mobile devices such as PDAs, PMPs, RFID readers, and the like is gradually increasing. A storage medium using a flash memory (hereinafter referred to as a flash storage medium) has a nonvolatile characteristic and is stronger than a hard disk. Flash storage media can operate at low power, and the access time of flash storage media is faster than that of hard disks. Small in size, flash storage media is suitable for portable devices. However, flash storage media are five to ten times more expensive than hard disks. When you want to write new data in an already existing space, the process of erasing the already existing space is performed first, and then the data is stored in the deleted space. For flash storage media, the read speed is very fast, but the write and erase speeds are relatively slow. In addition, the size that can be erased at a time is constant, and the number of times that can be erased at room temperature is determined.

잘 알려진 바와 같이, 비휘발성 메모리인 플래시 메모리는 크게 NOR 형태의 플래시 메모리와 NAND 형태의 플래시 메모리로 구분된다. NOR 형태의 플래시 메모리는 빠른 읽기 속도의 장점을 가지며, NAND 형태의 플래시 메모리는 NOR 형태의 플래시 메모리보다 값이 싸고, 대용량 임베디드 장치에 사용하기에 용이하다는 장점을 가지고 있다. 아래의 표 1은 플래시 메모리의 기본 연산 수행 시간(execution time of basic flash memory operations)을 보여준다.As is well known, a flash memory, which is a nonvolatile memory, is largely divided into a NOR type flash memory and a NAND type flash memory. NOR type flash memory has the advantage of fast read speed, and NAND type flash memory is cheaper than NOR type flash memory and is easy to use in large-capacity embedded devices. Table 1 below shows execution time of basic flash memory operations.

MediaMedia ReadRead WriteWrite EraseErase DRAMDRAM 60㎱(2B)
2.56㎲(512B)
60㎱ (2B)
2.56 ㎲ (512 B)
60㎱(2B)
2.56㎲(512B)
60㎱ (2B)
2.56 ㎲ (512 B)
N/AN / A
NOR flashNOR flash 150㎱(1B)
14.4㎲(512B)
150㎱ (1B)
14.4 ㎲ (512 B)
211㎱(2B)
3.53㎲(512B)
211㎱ (2B)
3.53 ㎲ (512 B)
1.2s(128KB)1.2 s (128 KB)
NAND flashNAND flash 10.2㎲(1B)
35.9㎲(512B)
10.2 ㎲ (1B)
35.9 ㎲ (512 B)
201㎲(2B)
226㎲(512B)
201㎲ (2B)
226㎲ (512B)
2ms(16KB)2 ms (16 KB)
DiskDisk 12.4㎳(512B)
(average)
12.4 ㎳ (512 B)
(average)
12.4㎳(512B)
(average)
12.4 ㎳ (512 B)
(average)

도 1은 일반적인 플래시 메모리 구조를 보여주는 도면이다. 도 1에 도시된 바와 같이, 플래시 메모리는 블록들(또는, 메모리 블록들이라 불림)로 구성되며 각 블록은 페이지들로 구성된다. 작은 블록(small block)의 경우, 하나의 블록은 32개의 페이지로 구성되며 각 페이지는 512-바이트의 크기를 가진다. 반면, 큰 블록(large block)의 경우, 하나의 블록은 64개의 페이지로 구성되며 각 페이지는 2048-바이트의 크기를 가진다. 플래시 메모리는 자유 공간이 부족할 시 블록들의 무효화 된 페이지들을 정리하고 그러한 블록(들)을 자유 공간으로 할당하는 가비지 컬렉션 작업을 필요로 한다.1 illustrates a general flash memory structure. As shown in FIG. 1, a flash memory is composed of blocks (or called memory blocks), and each block is composed of pages. In the case of small blocks, one block consists of 32 pages, each of which is 512-bytes in size. On the other hand, in the case of a large block, one block is composed of 64 pages, and each page is 2048-byte in size. Flash memory requires garbage collection to clean up invalidated pages of blocks and allocate those block (s) to free space when free space is lacking.

앞서 언급된 플래시 메모리의 특성들로 인하여 기존 파일 시스템을 플래시 메모리에 바로 적용할 수 없다. 따라서 기존의 파일시스템을 대체하는 계층인 FTL(Flash Translation Layer)이 존재한다. FTL은 순차적인 플래시 공간이 디스크의 섹터처럼 보이도록 하기 위해 매핑(mapping) 관리를 수행하는 드라이버 형식으로 구현되어 있다. 하지만 FTL은 파일시스템과 독립적으로 존재하기 때문에 독립적인 작업으로 인한 오버헤드를 고려해야 하므로 최근 파일시스템에 FTL기능을 포함하는, 플래시 메모리 전용 파일 시스템에 대한 연구가 활발히 진행되어 왔다. 대표적인 NAND 플래시 전용 파일 시스템들(또는, 플래시 파일 시스템이라 불림)은 JFFS2(Journaling Flash File System), YAFFS(Yet Another Flash File System), 등을 포함한다. JFFS2는 플래시 공간을 순차적으로 저장하는 LFS(Log-structured File System)처럼 플래시 메모리에 대한 갱신 연산을 추가 연산으로 변형하여 처리하며, 이를 통해서 플래시 메모리의 덮어쓰기가 허용되지 않는 문제를 해결하였다.Due to the characteristics of flash memory mentioned above, existing file systems cannot be directly applied to flash memory. Therefore, there is a FTL (Flash Translation Layer) that replaces the existing file system. FTL is implemented in the form of a driver that performs mapping management to make the sequential flash space look like sectors on the disk. However, since the FTL exists independently of the file system, the overhead due to the independent operation has to be taken into consideration. Therefore, researches on a flash memory dedicated file system including the FTL function in the file system have been actively conducted. Representative NAND flash-only file systems (or referred to as flash file systems) include the Journaling Flash File System (JFFS2), the Yet Another Flash File System (YAFFS), and the like. JFFS2 transforms the update operation on the flash memory into an additional operation like the Log-structured File System (LFS), which sequentially stores the flash space, and solves the problem of overwriting the flash memory.

JFFS의 경우, 데이타는 로그 형태로 플래시 메모리에 순차적으로 쓰여지며, 로그를 역순으로 검색하여 가장 최신의 데이타를 읽어들임으로써 읽기 연산이 행해진다. JFFS는 저널링 노드로서 jffs_node라는 구조체를 사용하며, 구조체의 크기는 48Bytes로 상당히 크다. 이런 오버헤드를 줄이기 위해, JFFS2는 next_in_ino, next_phys, flash_offset, 그리고 totlen 값들로 구성된 jffs2_raw_node_ref라는 구조체(16Bytes)로 jffs_node를 대체하여 메모리에 저장한다. 또한, JFFS2는 플래시 메모리의 공간을 효율적으로 활용하기 위해 데이터 압축 기능을 사용한다. 이러한 방식을 통해 메모리 사용량은, 예를 들면, 48Bytes에서 16Bytes로 감소될 수 있다. 하지만, 플래시 메모리가 128MBytes일 때, 218-페이지를 필요로 할 수 있기 때문에 jffs2_raw_node_ref를 위한 공간으로 222Bytes, 즉 4MBytes를 할당해야 하는 문제점이 있고, 노드를 찾고 파일의 구조를 결정하기 위한 스캔 시간이 길다.In the case of JFFS, data is sequentially written to flash memory in log form, and a read operation is performed by searching the log in reverse order and reading the latest data. JFFS uses a structure called jffs_node as a journaling node, and the structure is quite large, 48 bytes. To reduce this overhead, JFFS2 replaces jffs_node with a structure (16Bytes) called jffs2_raw_node_ref that consists of next_in_ino, next_phys, flash_offset, and totlen values, and stores it in memory. JFFS2 also uses data compression to efficiently utilize the space in flash memory. In this way the memory usage can be reduced, for example, from 48 bytes to 16 bytes. However, when the flash memory is 128MBytes, there is a problem of allocating 222Bytes, or 4MBytes, as the space for jffs2_raw_node_ref because it may require 218 pages, and the scan time for finding the node and determining the structure of the file is long. .

또한, 마운트할 때 플래시 메모리 전체를 스캔해야 하기 때문에 128MBytes NAND 플래시 메모리의 경우 마운트에 약 25초의 시간이 걸린다. 이와 같이 JFFS2는 NOR 플래시 메모리를 기반으로 설계되었기 때문에 NAND 플래시 메모리용 파일 시스템으로 사용되기에는 메모리 사용량, 마운트 및 플래시 메모리 스캔 시간, 그리고 가비지 컬렉션 시간 등에서 여러 가지 문제점이 있다.In addition, 128 MBytes NAND flash memory takes about 25 seconds to mount, since the entire memory must be scanned when mounted. Since JFFS2 is designed based on NOR flash memory, there are various problems in memory usage, mount and flash memory scan time, and garbage collection time to be used as a file system for NAND flash memory.

다른 파일 시스템으로서, YAFFS는 JFFS2의 저널링에 사용되는 메모리 소모량이 크고 마운팅 속도가 느리다는 단점들을 해결하기 위해 개발된 NAND 플래시 전용 파일 시스템이다. YAFFS는 페이지의 크기가 512Byte인 플래시 메모리에 사용되며, 최대 파일 크기가 512MB이고, 최대 파일 수가 260,000개이며, 최대 파일 시스템 크기가 1GB라는 제약들을 가진다. YAFFS2는 페이지의 크기가 2Kbyte인 플래시 메모리를 사용하는 것이 가능하며, 최대 8GB의 파일 시스템 크기를 가질 수 있다. 플래시 메모리에서 읽기와 쓰기는 페이지 단위로 수행되며, 삭제는 블록 단위로 수행된다.As another file system, YAFFS is a NAND flash-only file system developed to address the drawbacks of the large memory consumption and slow mounting speed used for journaling JFFS2. YAFFS is used for flash memory with a page size of 512 bytes, with a maximum file size of 512 MB, maximum file count of 260,000, and maximum file system size of 1 GB. YAFFS2 can use flash memory with a page size of 2Kbyte, and can have a file system size of up to 8GB. In flash memory, reads and writes are performed in units of pages, and deletions are performed in units of blocks.

도 2는 기존의 YAFFS 플래시 메모리 구조를 보여주는 도면이다.2 illustrates a conventional YAFFS flash memory structure.

파일 데이터는 하나의 페이지와 동일한 크기인 청크(Chunk)로 나눠지며, 파일을 구성하는 청크들은 플래시 메모리의 페이지들에 각각 저장된다. 청크는 데이터 영역과 스페어 영역으로 구분되며, 데이터 영역에는 파일의 정보를 관리하는 헤더(Object Header)가 저장된다. 헤더가 저장되는 경우, 스페어 영역의 청크 아이디(ChunkID)는 0의 값을 갖는다. 헤더에는 파일 이름, 파일의 크기, 수정 시간, 상위디렉터리 포인터 등이 저장된다. 청크 아이디(ChukID)의 값이 0이 아니면, 데이터 영역에 저장된 정보는 파일의 데이터로 간주된다. 각 청크에는 스페어 영역이 존재한다. 각 청크의 스페어 영역은, 도 2에 도시된 바와 같이, 블록 상태 영역, 페이지 상태 영역, ECC 영역, 태그 영역, 등을 포함한다. 페이지 상태 영역은 유효/무효 페이지(valid/invalid page)를 나타내는 정보를 포함한다. 태그 영역은 페이지에 들어 있는 데이터의 크기, 파일 업데이트 횟수, 아이노드 식별자, 등과 같은 자료를 포함한다. 파일 갱신과 파일 삭제의 경우, 갱신된/삭제된 파일이 들어있는 페이지들은 무효화된다. 추후, 가비지 컬렉션 작업시 무효화 된 페이지들을 포함한 블록(들)은 삭제된다.The file data is divided into chunks that are the same size as one page, and the chunks constituting the file are stored in pages of flash memory, respectively. The chunk is divided into a data area and a spare area, and a header for managing information of a file is stored in the data area. When the header is stored, the chunk ID ChunkID of the spare area has a value of zero. The header stores the file name, file size, modification time, and parent directory pointer. If the value of ChunkID is not zero, the information stored in the data area is considered to be the data of the file. Each chunk has a spare area. The spare area of each chunk includes a block status area, a page status area, an ECC area, a tag area, and the like, as shown in FIG. The page status area contains information indicating a valid / invalid page. The tag area contains data such as the size of data contained in the page, the number of file updates, the inode identifier, and the like. In the case of file update and file deletion, pages containing updated / deleted files are invalidated. Later, during garbage collection, block (s) containing invalidated pages are deleted.

기존의 파일 시스템(예를 들면, YAFFS)는 마운트 시에 플래시 메모리의 스페어 영역들을 모두 스캔한다. 헤더가 저장되어 있는 페이지가 발견되면, 기존의 YAFFS는 발견된 페이지의 데이터 내용과 스페어 영역에 저장된 파일 상태를 읽고, 해당 파일의 오픈 파일 테이블을 주 메모리에 동적으로 생성한다. 따라서 플래시 메모리의 전체 영역을 읽어야 하는 JFFS2에 비해 기존의 YAFFS의 마운트 시간이 훨씬 짧다. 그러나, 마운트 과정에서 최소한 모든 페이지의 스페어 영역을 읽어야 하기 때문에 플래시 메모리의 크기가 커질수록 기존의 YAFFS의 마운트 시간이 증가하게 된다.Existing file systems (eg YAFFS) scan all spare areas of flash memory at mount time. When a page with a header is found, the existing YAFFS reads the data contents of the found page and the file state stored in the spare area, and dynamically creates an open file table of the file in main memory. As a result, the mount time of conventional YAFFS is much shorter than that of JFFS2, which must read the entire area of flash memory. However, since the spare area of at least all pages must be read during the mounting process, as the size of the flash memory increases, the mount time of the existing YAFFS increases.

기존의 YAFFS은 기본적으로 Greedy 정책에 따라 가비지 컬렉션(Garbage-Collection)을 사용하고 있다. Greedy 정책의 사용으로 인해 수명감소(마모도) 문제가 발생하지만, 기존의 YAFFS에서는 전체 용량의 5%정도가 예약된 영역(reserved area)으로 할당된다. 마모도가 한계에 도달하여 사용할 수 없는 블록을 예약된 영역의 블록으로 교체하는 방법이 보완적으로 사용되고 있다. 플래시 메모리는 한번 사용한 블록을 다시 사용하기 위해서 사용된 블록에 대해서 삭제 작업을 행해야 한다. 읽기/쓰기 속도에 비해 지우는 속도가 상당히 느리며, 삭제 작업은 블록 단위로 이루어진다. 또한 마모도 제한이 존재하여 삭제 시 마모도를 고려하지 않으면 플래시 메모리 수명이 줄어들 수 있다. 대표적인 지움 정책들은 Greedy 기법, Cost-Benefit 기법, 그리고 CAT 기법을 포함할 것이다.Existing YAFFS basically uses Garbage-Collection according to Greedy policy. The use of the greedy policy results in a lifespan (wear) problem, but in the traditional YAFFS, about 5% of the total capacity is allocated as reserved areas. Complementary methods are used to replace blocks that cannot be used because their wear levels have reached their limits. The flash memory must perform an erase operation on the used block to reuse the used block. The erase speed is considerably slower than the read / write speed, and the delete operation is performed in blocks. In addition, wear limits exist, which can reduce flash memory life without taking wear into account when deleting. Representative erase policies will include Greedy, Cost-Benefit, and CAT techniques.

Greedy 기법은 세그먼트 내에서 유효 페이지(valid page)가 가장 적은 블록을 지울 대상으로 선정하는 방식이다. 이 기법은 유효 페이지를 다른 블록으로 옮기는 비용이 적게 들고, 별도의 연산 작업이 필요하지 않다는 장점을 가진다. 하지만, 시간적, 공간적으로 특정 세그먼트의 변경이 자주 발생되는 지역성 쓰기일 경우, Greedy 기법은 비용이 커지며, 각 세그먼트의 지움 횟수를 균일하게 해주는 마모도 평준화(wear-leveling)가 전혀 고려되지 않는 단점을 갖는다.The greedy scheme selects the block with the smallest valid page in the segment to be deleted. This technique has the advantage of lowering the cost of moving a valid page to another block and eliminating the need for additional computation. However, in the case of local writes in which a particular segment changes frequently, both temporally and spatially, the Greedy technique is expensive, and wear-leveling, which makes the number of erases of each segment even, is not considered at all. .

Cost-Benefit 기법은 비용(페이지 삭제비용+유효 페이지를 다른 곳으로 옮기는 비용)에 비해 이익이 많이 남는 세그먼트를 선택해서 삭제하는 지움 정책으로 아래의 수학식 1과 같이 비용대비 이익비율을 이용한다. 단 비용은 삭제 및 이동에 필요한 시간이고 이익은 지움 과정 후 추가로 얻는 용량이다.The cost-benefit technique is an erasure policy that selects and deletes a segment that profits more than the cost (the cost of deleting a page + the cost of moving a valid page to another). The cost is the time required to delete and move, and the profit is the additional capacity after the erase process.

Figure 112009052334482-PAT00001
Figure 112009052334482-PAT00001

수학식 1에서, u는 해당 블록 내 유효 페이지의 비율이고 (1-u)는 무효도 페이지의 비율이다. 2u는 블록의 유효 페이지를 다른 블록으로 옮길 때 발생하는 읽고 쓰는 유효 페이지의 비율이다 Age는 블록에 페이지가 기록된 후 경과 시간이다. Cost-Benefit 기법에서는 Age를 이용하여 마모도 평준화를 추구하지만 이는 블록의 누적 지움 횟수가 아닌 블록에 기록된 시간이므로 근본적으로 지움 횟수에 대한 완벽한 마모도 평준화라고 볼 수 없다.In Equation 1, u is the ratio of valid pages in the block and (1-u) is the ratio of invalidity pages. 2u is the ratio of valid pages to read and write that occur when you move a valid page from one block to another. Age is the time since the page was written to the block. In the Cost-Benefit technique, Age is used to equalize wear, but this is not the cumulative number of erased blocks but the time recorded in the block.

CAT 기법은 아래의 수학식 2와 같이 각 블록마다 값을 계산하여 그 값이 가장 작은 블록을 지움 정책의 대상으로 삼는 기법으로 블록 내 유효 페이지의 비율과 Age, 그리고 블록의 누적 지움 횟수를 이용한 기법이다.The CAT method is a method that calculates a value for each block and makes the block with the smallest value as the target of the policy, as shown in Equation 2 below. to be.

Figure 112009052334482-PAT00002
Figure 112009052334482-PAT00002

수학식 2에서, u와 (1-u)는 무효된 페이지에 대한 유효 페이지의 비율이다. Age는 블록이 기록된 이후의 경과 시간을 의미하며, Age는 사전에 정의된 Age 변환 함수에 의해 결정된다. 마지막으로, Number Of Cleaning은 블록이 지워진 누적 횟수를 나타낸다. 하지만, 사용자 쓰기 패턴이 순차 쓰기이거나 지역성 쓰기일 경우, CAT 기법의 지움 횟수나 복사 횟수가 Greedy 기법과 Cost-Benefit 기법보다 적기 때문에, CAT 기법은 더 나은 성능을 보여준다. 하지만, 랜덤 쓰기일 경우, Greedy 기법 보다 지움 횟수와 복사 횟수가 더 많고 평균 처리량이 더 적어 효율성 측면에서 오히려 더 낮은 성능을 보여준다.In Equation 2, u and (1-u) are ratios of valid pages to invalid pages. Age refers to the elapsed time since the block is written, and Age is determined by a predefined Age transform function. Finally, Number Of Cleaning represents the cumulative number of times blocks have been erased. However, when the user write pattern is sequential write or local write, the CAT technique shows better performance because the erase and copy times of the CAT technique are less than those of the Greedy and Cost-Benefit techniques. However, in case of random writes, the erase and copy times are higher and the average throughput is lower than the Greedy method, resulting in lower performance in terms of efficiency.

본 발명의 목적은 마운트 시간을 줄일 수 있는 파일 시스템 및 그것을 포함한 플래시 메모리 시스템을 제공하는 것이다.It is an object of the present invention to provide a file system and a flash memory system including the same which can reduce the mount time.

본 발명의 다른 목적은 플래시 메모리의 수명을 증가시킬 수 있는 파일 시스템 및 그것을 포함한 플래시 메모리 시스템을 제공하는 것이다.It is another object of the present invention to provide a file system and a flash memory system including the same which can increase the life of the flash memory.

본 발명의 예시적인 실시예들은 프로세싱 유니트와; 상기 프로세싱 유니트에 의해서 운용되는 내용기반 파일 시스템이 로드되는 램과; 그리고 상기 내용기반 파일 시스템에 의해서 관리되는 블록들을 구비한 플래시 메모리를 포함하는 시스템을 제공한다. 상기 내용기반 파일 시스템은 파일 쓰기가 요청될 때 상기 블록들 중 적어도 하나의 블록을 선택하고, 상기 선택된 적어도 하나의 블록이 순수 블록, 혼합 블록, 그리고 자유 블록 중 어느 하나에 속하는 지를 결정하며, 상기 결정된 블록 종류를 나타내는 블록 종류 정보와 함께 상기 쓰기 요청된 파일을 상기 적어도 하나의 블록에 저장한다.Exemplary embodiments of the invention include a processing unit; A RAM into which a content-based file system operated by the processing unit is loaded; And a flash memory having blocks managed by the content-based file system. The content-based file system selects at least one block of the blocks when a file write is requested, and determines whether the selected at least one block belongs to one of a pure block, a mixed block, and a free block; The write request file is stored in the at least one block together with block type information indicating the determined block type.

예시적인 실시예에 있어서, 상기 적어도 하나의 블록이 상기 쓰기 요청된 파 일로 채워지는 경우, 상기 내용기반 파일 시스템은 상기 적어도 하나의 블록을 상기 순수 블록으로 결정한다.In an exemplary embodiment, when the at least one block is filled with the write requested file, the content-based file system determines the at least one block as the pure block.

예시적인 실시예에 있어서, 상기 적어도 하나의 블록 중 일부가 상기 쓰기 요청된 파일로 채워지는 경우, 상기 내용기반 파일 시스템은 상기 적어도 하나의 블록을 상기 혼합 블록으로 결정한다.In an exemplary embodiment, when some of the at least one block is filled with the write requested file, the content-based file system determines the at least one block as the mixed block.

예시적인 실시예에 있어서, 상기 선택된 적어도 하나의 블록이 순수 블록, 혼합 블록, 그리고 자유 블록 중 어느 하나에 속하는 지의 결정은 상기 쓰기 요청된 파일의 크기를 블록의 크기로 나누고, 몫에 대응하는 블록들을 순수 블록으로 그리고 나머지에 대응하는 블록을 혼합 블록으로 결정함으로써 수행된다.In an exemplary embodiment, determining whether the selected at least one block belongs to one of pure blocks, mixed blocks, and free blocks divides the size of the write requested file by the size of the block, and corresponds to the share. Are determined as pure blocks and the blocks corresponding to the rest as mixed blocks.

예시적인 실시예에 있어서, 상기 내용기반 파일 시스템은 마운트시 상기 각 블록의 첫 번째 페이지에 속한 스페어 영역으로부터 블록 종류 정보를 읽고, 상기 읽혀진 블록 종류 정보에 따라 상기 각 블록의 나머지 페이지들의 스페어 영역들에 대한 스캔을 결정한다.In an exemplary embodiment, the content-based file system reads block type information from a spare area belonging to the first page of each block when mounted, and spare areas of remaining pages of each block according to the read block type information. Determine the scan for.

예시적인 실시예에 있어서, 상기 내용기반 파일 시스템은 상기 읽혀진 블록 종류 정보가 혼합 블록을 나타낼 때 상기 선택된 블록의 나머지 페이지들의 스페어 영역들에 대한 스캔 후 상기 선택된 블록을 혼합 블록 리스트에 삽입하고, 상기 읽혀진 블록 종류 정보가 자유 블록과 순수 블록 중 하나를 나타낼 때 상기 선택된 블록의 나머지 페이지들의 스페어 영역들에 대한 스캔없이 상기 선택된 블록을 자유 블록 리스트와 순수 블록 리스트 중 어느 하나에 삽입함으로써 오픈파일 테이블을 구성한다.In an exemplary embodiment, the content-based file system inserts the selected block into a mixed block list after scanning the spare areas of the remaining pages of the selected block when the read block type information indicates a mixed block, When the read block type information indicates one of a free block and a pure block, the open file table is inserted by inserting the selected block into either the free block list or the pure block list without scanning the spare areas of the remaining pages of the selected block. Configure.

본 발명의 다른 예시적인 실시예들은 블록들로 구성된 비휘발성 메모리를 포함한 시스템의 블록 관리 방법을 제공하며, 이 블록 관리 방법은 상기 블록들 중 선택된 블록의 첫 번째 페이지에 속한 스페어 영역으로부터 블록 종류 정보를 읽는 단계와; 상기 읽혀진 블록 종류 정보가 혼합 블록을 나타낼 때, 상기 선택된 블록의 나머지 페이지들의 스페어 영역들을 스캔하여 상기 선택된 블록을 혼합 블록 리스트에 삽입하는 단계와; 상기 읽혀진 블록 종류 정보가 자유 블록과 순수 블록 중 하나를 나타낼 때, 상기 선택된 블록의 나머지 페이지들의 스페어 영역들에 대한 스캔없이 상기 선택된 블록을 자유 블록 리스트와 순수 블록 리스트 중 어느 하나에 삽입하는 단계와; 그리고 상기 비휘발성 메모리의 블록들 모두 선택될 때까지 상기 읽는 단계 및 상기 삽입 단계들을 반복적으로 수행하는 단계를 포함한다.Another exemplary embodiment of the present invention provides a block management method of a system including a nonvolatile memory composed of blocks, wherein the block management method includes block type information from a spare area belonging to a first page of a selected block among the blocks. Reading; When the read block type information indicates a mixed block, scanning the spare areas of the remaining pages of the selected block and inserting the selected block into the mixed block list; When the read block type information indicates one of a free block and a pure block, inserting the selected block into either a free block list or a pure block list without scanning the spare areas of the remaining pages of the selected block; ; And repeatedly performing the reading and inserting steps until all the blocks of the nonvolatile memory are selected.

예시적인 실시예에 있어서, 상기 블록 종류 정보는 파일이 상기 비휘발성 메모리에 저장될 때 생성된다.In an exemplary embodiment, the block type information is generated when a file is stored in the nonvolatile memory.

예시적인 실시예에 있어서, 상기 자유 블록 리스트에 포함된 자유 블록들의 수가 임계값보다 낮을 때, 상기 순수 블록 리스트, 상기 혼합 블록 리스트, 그리고 상기 자유 블록 리스트에 의거하여 내용기반 가비지 컬렉션을 수행하는 단계가 더 제공된다.In an exemplary embodiment, when the number of free blocks included in the free block list is lower than a threshold, performing content-based garbage collection based on the pure block list, the mixed block list, and the free block list. Is provided further.

예시적인 실시예에 있어서, 상기 내용기반 가비지 컬렉션은 상기 혼합 블록 리스트에서 적은 수의 유효 페이지들을 갖는 혼합 블록들을 선택하고, 상기 선택된 혼합 블록들에 포함된 유효 페이지들을 상기 자유 블록 리스트의 자유 블록들 중 하나로 옮기고, 그리고 상기 선택된 혼합 블록들을 자유 블록으로서 자유 블록 리 스트에 삽입함으로써 달성된다.In an exemplary embodiment, the content-based garbage collection selects mixed blocks having a small number of valid pages in the mixed block list, and lists valid pages included in the selected mixed blocks in the free blocks of the free block list. By moving to one of them and inserting the selected mixed blocks as a free block into the free block list.

예시적인 실시예에 있어서, 상기 비휘발성 메모리의 블록들의 마모도 평준화를 위해서 블록 스왑을 수행하는 단계가 더 제공되며, 상기 블록 스왑은 상기 순수 블록 리스트에서 가장 작은 마모도를 갖는 순수 블록을 선택하고, 상기 자유 블록 리스트에서 가장 큰 마모도를 갖는 자유 블록을 선택하고, 상기 선택된 순수 블록의 마모도와 상기 선택된 자유 블록의 마모도의 차가 기준값을 넘을 때 상기 선택된 순수 블록과 상기 선택된 자유 블록을 스왑함으로써 달성된다.In an exemplary embodiment, there is further provided a step of performing a block swap to level the wear of the blocks of the nonvolatile memory, wherein the block swap selects the pure block with the smallest wear in the pure block list, and It is achieved by selecting a free block having the largest wear degree in the free block list and swapping the selected pure block and the selected free block when the difference between the wear degree of the selected pure block and the wear degree of the selected free block exceeds a reference value.

예시적인 실시예에 있어서, 상기 블록 스왑은 유휴 시간에 수행된다.In an exemplary embodiment, the block swap is performed at idle time.

예시적인 실시예에 있어서, 상기 블록 종류 정보는 스페어 영역의 태그에 속한 예약된 영역에 저장된다.In an exemplary embodiment, the block type information is stored in a reserved area belonging to a tag of the spare area.

본 발명의 다른 예시적인 실시예들은 블록들로 구성된 비휘발성 메모리를 포함한 시스템의 블록 관리 방법을 제공하며, 이 블록 관리 방법은 상기 비휘발성 메모리의 블록들 중 쓰기 요청된 파일이 저장될 적어도 하나의 블록의 종류를 결정하는 단계와; 그리고 상기 결정된 종류를 나타내는 블록 종류 정보와 함께 상기 쓰기 요청된 파일을 상기 적어도 하나의 블록에 저장하는 단계를 포함한다.Another exemplary embodiment of the present invention provides a block management method of a system including a nonvolatile memory composed of blocks, wherein the block management method includes at least one of the blocks of the nonvolatile memory in which a write requested file is to be stored. Determining a type of block; And storing the write requested file in the at least one block together with block type information indicating the determined type.

예시적인 실시예에 있어서, 상기 블록 종류 정보는 순수 블록, 혼합 블록, 그리고 자유 블록 중 어느 하나를 나타낸다.In an exemplary embodiment, the block type information represents any one of a pure block, a mixed block, and a free block.

예시적인 실시예에 있어서, 상기 적어도 하나의 블록은 상기 적어도 하나의 블록이 상기 쓰기 요청된 파일로 채워지는 것으로 판별될 때 상기 순수 블록으로 그리고 상기 적어도 하나의 블록 중 일부가 상기 쓰기 요청된 파일로 채워지는 것 으로 판별될 때 상기 혼합 블록으로 결정된다.In an exemplary embodiment, the at least one block is to the pure block and some of the at least one block to the write requested file when it is determined that the at least one block is filled with the write requested file. When determined to be filled, it is determined by the mixing block.

예시적인 실시예에 있어서, 상기 쓰기 요청된 파일의 크기는 블록의 크기로 나눠지며, 몫에 대응하는 블록들은 순수 블록으로 그리고 나머지에 대응하는 블록은 혼합 블록으로 결정된다.In an exemplary embodiment, the size of the write requested file is divided by the size of the block, and blocks corresponding to the share are determined as pure blocks and blocks corresponding to the remainder as mixed blocks.

예시적인 실시예에 있어서, 상기 블록 종류 정보는 상기 적어도 하나의 블록의 첫 번째 페이지에 속한 스페어 영역의 태그에 저장되고, 상기 쓰기 요청된 파일의 메타 정보는 상기 적어도 하나의 블록의 첫 번째 페이지에 속한 데이터 영역에 헤더로서 저장된다.In an exemplary embodiment, the block type information is stored in a tag of a spare area belonging to the first page of the at least one block, and the meta information of the write requested file is stored in the first page of the at least one block. It is stored as a header in the data area to which it belongs.

예시적인 실시예에 있어서, 마운트시, 상기 비휘발성 메모리의 각 블록의 첫 번째 페이지에 속한 스페어 영역으로부터 블록 종류 정보를 읽는 단계와; 그리고 상기 읽혀진 블록 종류 정보에 따라 상기 각 블록의 나머지 페이지들의 스페어 영역들에 대한 스캔을 결정하는 단계가 더 제공된다.In an exemplary embodiment, the method may further include: reading, upon mounting, block type information from a spare area belonging to a first page of each block of the nonvolatile memory; The method may further include determining a scan of spare areas of the remaining pages of each block according to the read block type information.

예시적인 실시예에 있어서, 상기 읽혀진 블록 종류 정보가 순수 블록 또는 자유 블록을 나타낼 때, 상기 순수 블록 또는 상기 자유 블록으로 판별된 블록의 나머지 페이지들의 스페어 영역들에 대한 스캔은 생략되며; 그리고 상기 읽혀진 블록 종류 정보가 혼합 블록을 나타낼 때, 상기 혼합 블록으로 판별된 블록의 나머지 페이지들의 스페어 영역들이 스캔된다.In an exemplary embodiment, when the read block type information indicates a pure block or a free block, scanning of spare areas of the remaining pages of the block determined as the pure block or the free block is omitted; When the read block type information indicates a mixed block, spare areas of the remaining pages of the block determined as the mixed block are scanned.

본 발명의 실시예에 따른 내용기반 파일 시스템은 기존의 파일 시스템(예를 들면, YAFFS/JFFS)보다 향상된 마운트 속도 및 마모도 평준화를 제공할 것이다. 본 발명의 실시예에 따른 내용기반 파일 시스템은 블록들을 내용기반 리스트로 관리함으로써 마운트 시 일부 스페어 영역만을 읽어 마운트 시간을 감소시키고, 내용기반 리스트를 이용한 블록 스왑 기법을 통하여 마모도를 효율적으로 관리하는 장점을 가지고 있다. 따라서 본 발명의 실시예에 따른 내용기반 파일 시스템은 빠른 마운트 속도를 제공하며, 마모도 평준화 기법을 통한 플래시 메모리의 수명을 증가시킨다.Content-based file systems according to embodiments of the present invention will provide improved mount speed and wear leveling over existing file systems (eg, YAFFS / JFFS). The content-based file system according to an embodiment of the present invention manages blocks as a content-based list, thereby reducing the mount time by reading only a portion of a spare area when mounting and efficiently managing wear through a block swap technique using a content-based list. Have Therefore, the content-based file system according to the embodiment of the present invention provides a fast mount speed and increases the life of the flash memory through the wear leveling technique.

이하, 본 발명의 예시적인 실시예들이 참조 도면들에 의거하여 상세히 설명될 것이다. 본 명세서에서는 마운트 속도를 개선하는 내용기반 블록 관리 기법이 설명되며, 효율적인 내용기반 가비지 컬렉션과 내용기반 블록 스왑을 통하여 마모도 관리를 향상시킬 수 있는 지움 정책이 설명될 것이다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In this specification, a content-based block management technique for improving mount speed will be described, and an erase policy that can improve wear management through efficient content-based garbage collection and content-based block swap will be described.

도 3은 본 발명의 예시적인 실시예에 따른 플래시 메모리 시스템을 개략적으로 보여주는 블록도이다.3 is a block diagram schematically illustrating a flash memory system according to an exemplary embodiment of the present invention.

도 3을 참조하면, 본 발명의 예시적인 실시예에 따른 플래시 메모리 시스템은 PDA, PMP, RFID 리더, 등과 같은 모바일 기기들, 컴퓨터, 등에 적용될 것이다. 하지만, 본 발명의 예시적인 실시예에 따른 플래시 메모리 시스템이 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다. 플래시 메모리 시스템은 플래시 메모리를 포함한 컴퓨팅 시스템을 의미할 것이다. 본 발명의 예시적인 실시예에 따른 플래시 메모리 시스템은 처리 유니트(110), 램(120), 메모리 인터페이스(130), 그리고 비휘발성 메모리인 플래시 메모리로 구성된 저장 매체(140)를 포함할 것이다. 도 3의 시스템은 본 발명의 예시적인 실시예에 따른 파일 시스템을 설명하는 데 필요한 구성 요소들을 포함하도록 도시되어 있다. 하지만, 시스템의 구성 요소들이 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다. 또한, 저장 매체(140)를 구성하는 메모리가 플래시 메모리에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 본 발명의 예시적인 실시예는 PRAM, MRAM, FRAM, NOR 플래시 메모리, 등에도 적용될 수 있다.Referring to FIG. 3, a flash memory system according to an exemplary embodiment of the present invention may be applied to mobile devices, computers, and the like such as a PDA, a PMP, an RFID reader, and the like. However, it will be understood that a flash memory system according to an exemplary embodiment of the present invention is not limited to what is disclosed herein. Flash memory system will mean a computing system including flash memory. A flash memory system according to an exemplary embodiment of the present invention may include a storage unit 140 composed of a processing unit 110, a RAM 120, a memory interface 130, and a flash memory that is a nonvolatile memory. The system of FIG. 3 is shown to include components necessary to describe a file system in accordance with an exemplary embodiment of the present invention. However, it will be understood that the components of the system are not limited to those disclosed herein. It will also be appreciated that the memory constituting the storage medium 140 is not limited to flash memory. For example, exemplary embodiments of the present invention may be applied to PRAM, MRAM, FRAM, NOR flash memory, and the like.

저장 매체(140)를 구성하는 플래시 메모리는 다음과 같은 점에서 특징이 있다. 첫째, 데이터 수정 시 본래 주소에 덮어 쓰기가 불가능하다. 즉, 쓰기 연산 전에 쓰기 연산에 해당하는 메모리 공간이 초기화되어 있어야 한다. 둘째, 블록마다 지울 수 있는 횟수가 제한적이다. 따라서, 본 발명의 예시적인 실시예에 따른 시스템은 마운트 시간 증가와 마모도 횟수 제한을 극복하고 플래시 메모리를 효과적으로 사용하기 위한 지움 정책과 마모도 균등 사용 기법이 적용된 파일 시스템을 포함할 것이다. 그러한 파일 시스템은 램(120)에 로드되어 프로세싱 유니트(110)에 의해서 운용될 것이다.The flash memory constituting the storage medium 140 has the following features. First, it is impossible to overwrite the original address when modifying data. In other words, the memory space corresponding to the write operation must be initialized before the write operation. Second, there is a limited number of erases per block. Accordingly, the system according to an exemplary embodiment of the present invention will include a file system to which the erase policy and the even wear technique are applied to overcome the increase in mount time and the limit of the wear rate and to effectively use the flash memory. Such a file system will be loaded into RAM 120 and operated by processing unit 110.

예시적인 실시예에 있어서, 본 발명의 실시예에 따른 파일 시스템은 YAFFS(이하, 내용기반 파일 시스템/내용기반 플래시 파일 시스템이라 칭함)일 것이다. 하지만, 본 발명의 실시예에 따른 파일 시스템이 YAFFS에 국한되지 않음은 잘 이해될 것이다.In an exemplary embodiment, the file system according to an embodiment of the present invention will be YAFFS (hereinafter referred to as content based file system / content based flash file system). However, it will be understood that the file system according to the embodiment of the present invention is not limited to YAFFS.

본 발명의 예시적인 실시예에 따른 내용기반 파일 시스템은 쓰기 요청된 파일(응용 계층에 의해서 요청됨)이 플래시 메모리에 쓰여질 때 블록 종류를 결정한 다. 예를 들면, 내용기반 파일 시스템은 블록을 순수 블록, 혼합 블록, 또는 자유 블록으로 결정할 것이다. 순수 블록은 한 가지 내용의 파일로 가득 채워진 블록을 의미하고, 혼합 블록은 두 가지 이상의 파일 내용으로 채워진 블록 또는 한 가지 내용의 파일로 채워진 페이지들과 자유 페이지들(또는, 다른 내용의 파일로 채워진 페이지들)을 포함한 블록을 의미한다. 자유 블록은 자유 페이지들로 구성된 블록을 의미한다. 블록 종류는 앞서 설명된 기준에 따라 결정되며, 블록 종류를 나타내는 정보(이하, 블록 종류 정보라 칭함)는 블록의 첫 번째 페이지에 속한 스페어 영역에 저장된다.The content-based file system according to an exemplary embodiment of the present invention determines the block type when a write requested file (required by the application layer) is written to the flash memory. For example, a content-based file system may determine a block as a pure block, mixed block, or free block. A pure block means a block filled with one content file, and a mixed block is a block filled with two or more file contents, or pages filled with one content file and free pages (or files filled with other content). Page). A free block means a block composed of free pages. The block type is determined according to the criteria described above, and information representing the block type (hereinafter referred to as block type information) is stored in a spare area belonging to the first page of the block.

마운트시, 본 발명의 예시적인 실시예에 따른 내용기반 파일 시스템은 스페어 영역들을 모두 스캔하는 것이 아니라 각 블록의 첫 번째 페이지에 속한 스페어 영역의 블록 종류 정보를 읽고 읽혀진 블록 종류 정보에 따라 그 블록의 나머지 스페어 영역들에 대한 스캔 여부를 결정할 것이다. 예를 들면, 읽혀진 블록 종류 정보가 순수 블록을 나타낼 때 그리고 읽혀진 블록 종류 정보가 자유 블록을 나타낼 때, 블록의 나머지 스페어 영역들에 대한 스캔은 생략될 것이다. 이에 반해서, 읽혀진 블록 종류 정보가 혼합 블록을 나타낼 때, 블록의 나머지 스페어 영역들이 추가적으로 스캔될 것이다. 따라서, 블록의 첫 페이지의 스페어 영역을 스캔함으로써 블록안의 파일의 정보를 파악하여 마운트할 수 있다.When mounted, the content-based file system according to an exemplary embodiment of the present invention reads the block type information of the spare area belonging to the first page of each block rather than scanning all spare areas, and reads the block type information according to the read block type information. It will determine whether to scan the remaining spare areas. For example, when the read block type information indicates a pure block and when the read block type information indicates a free block, a scan of the remaining spare areas of the block will be omitted. In contrast, when the read block type information indicates a mixed block, the remaining spare areas of the block will be additionally scanned. Therefore, by scanning the spare area of the first page of the block, the information of the file in the block can be grasped and mounted.

본 발명의 예시적인 실시예에 따른 내용기반 파일 시스템은 앞서 설명된 블록 종류에 따라 결정되는 순수 블록 리스트, 혼합 블록 리스트, 그리고 자유 블록 리스트를 기반으로 가비지 컬렉션(이하, 내용기반 가비지 컬렉션이라 칭함)을 수행 할 것이다. 이는 이후 상세히 설명될 것이다.A content-based file system according to an exemplary embodiment of the present invention is based on a pure block list, a mixed block list, and a free block list determined according to the block types described above (hereinafter referred to as content-based garbage collection). Will do This will be explained in detail later.

도 4는 본 발명의 예시적인 실시예에 따른 내용기반 파일 시스템이 어떻게 블록 종류를 결정하는 지를 설명하기 위한 도면이다.4 is a diagram for describing how a content-based file system determines a block type according to an exemplary embodiment of the present invention.

YAFFS와 같은 파일 시스템의 경우, 파일을 구분 할 수 있는 헤더가 각 블록 안에 저장되어 있기 때문에, 한 블록 안에 포함된 파일들의 개수를 파악할 수 있다. 즉, 하나의 파일이 하나의 헤더를 가지기 때문에, 헤더 개수를 통하여 블록 안에 들어있는 내용이 하나의 파일로 이루어져 있는지 또는 여러 파일로 이루어져 있는 지를 알 수 있다. 본 발명의 예시적인 실시예에 따른 내용기반 파일 시스템은 헤더 개수를 통하여 파악된 파일 정보(파일 개수)를 기반으로 블록을 세 가지 즉, 순수 블록, 혼합 블록, 그리고 자유 블록으로 구분한다.In the case of a file system such as YAFFS, a header for identifying a file is stored in each block, so that the number of files included in a block can be determined. That is, since one file has one header, the number of headers shows whether the contents of the block consist of one file or several files. The content-based file system according to an exemplary embodiment of the present invention divides blocks into three types, namely, pure blocks, mixed blocks, and free blocks, based on file information (number of files) identified through the number of headers.

블록 종류는 파일이 플래시 메모리에 쓰일 때 결정될 것이다. 예를 들면, 플래시 메모리의 전체 용량이 512Mbyte이고, 한 블록의 크기가 128Kbyte이며, 한 페이지의 크기가 2Kbyte라고 가정한다. 이러한 가정하에서 플래시 메모리에 크기가 4.4Mbyte인 MP3 파일이 쓰일 때, 아래의 수학식 3에 따라 35개의 순수 블록과 1개의 혼합 블록이 생성된다. 즉, 쓰기 요청된 파일의 크기를 블록의 크기로 나누고, 몫에 대응하는 블록들을 순수 블록으로 그리고 나머지에 대응하는 블록을 혼합 블록으로 결정할 수 있다. 몫에 대응하는 블록들은 적어도 하나 이상이고, 나머지에 대응하는 블록은 하나일 것이다.The block type will be determined when the file is written to flash memory. For example, it is assumed that the total capacity of the flash memory is 512 Mbytes, one block is 128 Kbytes, and one page is 2 Kbytes. Under this assumption, when an MP3 file having a size of 4.4 Mbytes is used in the flash memory, 35 pure blocks and one mixed block are generated according to Equation 3 below. That is, the size of the file requested to be written may be divided by the size of the block, and blocks corresponding to the share may be determined as pure blocks and blocks corresponding to the remainder as mixed blocks. There will be at least one block corresponding to the quotient, and one block corresponding to the remainder.

Figure 112009052334482-PAT00003
Figure 112009052334482-PAT00003

수학식 3에서, Pn은 순수 블록 개수를 나타내고, Fsize는 파일의 크기를 나타내며, Bsize는 블록의 크기를 나타낸다.In Equation 3, Pn represents a pure block number, Fsize represents a file size, and Bsize represents a block size.

순수 블록과 혼합 블록의 첫 번째 페이지의 데이터 영역에는 헤더가 저장된다. 헤더에는 파일에 대한 정보(메타 데이터)가 저장되어 있다. 또한 내용기반 블록 관리를 위하여 블록의 첫 페이지에 속한 스페어 영역의 예약된 영역(reserved area)에 블록 종류 필드(Block Type Field)가 추가된다. 이 블록 종류 필드에는 순수 블록, 혼합 블록, 또는 자유 블록을 나타내는 정보(즉, 블록 종류 정보)가 기록된다. 따라서, 블록의 첫 페이지에 속한 스페어 영역을 스캔함으로써 블록안의 파일의 정보를 파악하여 마운트 할 수 있다.The header is stored in the data area of the first page of pure and mixed blocks. The header stores information about the file (meta data). In addition, a block type field is added to a reserved area of a spare area belonging to a first page of a block for content-based block management. In this block type field, information indicating pure blocks, mixed blocks, or free blocks (that is, block type information) is recorded. Therefore, by scanning the spare area belonging to the first page of the block, the information of the file in the block can be grasped and mounted.

도 5는 본 발명의 예시적인 실시예에 따른 내용기반 파일 시스템의 마운트 방법을 개략적으로 설명하기 위한 흐름도이다.Fig. 5 is a flowchart for schematically illustrating a method of mounting a content-based file system according to an exemplary embodiment of the present invention.

도 5를 참조하면, 먼저, 본 발명의 예시적인 실시예에 따른 내용기반 파일 시스템은 블록의 스페어 영역에 속한 첫 번째 페이지의 스페어 영역을 스캔한다(S100). 잘 알려진 바와 같이, 스페어 영역을 스캔할 때 첫 번째 페이지에 속한 데이터 영역 역시 읽혀질 것이다. 내용기반 파일 시스템은 스캔된 스페어 영역에 속한 블록 종류 필드에 저장된 값이 어떤 블록을 나타내는 지의 여부를 판별한다(S110). 만약 블록 종류 필드에 저장된 값이 순수 블록을 나타내는 것으로 판 별되면, 내용기반 파일 시스템은 블록의 나머지 페이지들의 스페어 영역들을 스캔하지 않고 블록을 순수 블록 리스트에 삽입한다(S120). 만약 블록 종류 필드에 저장된 값이 혼합 블록을 나타내는 것으로 판별되면, 내용기반 파일 시스템은 블록의 나머지 페이지들의 스페어 영역들을 스캔한 후 블록을 혼합 블록 리스트에 삽입한다(S130). 만약 블록 종류 필드에 저장된 값이 자유 블록을 나타내는 것으로 판별되면, 내용기반 파일 시스템은 블록을 자유 블록 리스트에 삽입한다(S140). 앞서 언급된 단계들(S100∼S140)은 플래시 메모리의 블록들이 모두 선택될 때까지 반복될 것이다. 앞서 언급된 과정을 통해 순수 블록 리스트, 혼합 블록 리스트, 그리고 자유 블록 리스트를 구성할 수 있다.Referring to FIG. 5, first, a content-based file system according to an exemplary embodiment of the present invention scans a spare area of a first page belonging to a spare area of a block (S100). As is well known, when scanning a spare area, the data area belonging to the first page will also be read. The content-based file system determines whether a block indicates a value stored in a block type field belonging to the scanned spare area (S110). If it is determined that the value stored in the block type field represents a pure block, the content-based file system inserts the block into the pure block list without scanning the spare areas of the remaining pages of the block (S120). If it is determined that the value stored in the block type field indicates a mixed block, the content-based file system scans the spare areas of the remaining pages of the block and inserts the block into the mixed block list (S130). If it is determined that the value stored in the block type field indicates a free block, the content-based file system inserts the block into the free block list (S140). The aforementioned steps S100 to S140 will be repeated until all the blocks of the flash memory are selected. Through the aforementioned process, a pure block list, a mixed block list, and a free block list can be constructed.

마운트 시에 해야 할 일은 저장 매체(예를 들면, 플래시 메모리)에 저장되어 있는 일련의 데이터들을 의미있는 자료로 만드는 것이다. 플래시 메모리의 특성상 일정 영역을 의미있는 자료를 위한 구간으로 분류해 둘 수 없기 때문에, 마운트 시마다 매번 전체 블록의 첫 페이지의 데이터 영역에 저장된 헤더와 스페어 영역에 저장된 파일 정보를 통해 오픈파일 테이블을 구성해야 한다. 따라서 마운트 시간이 상당하다는 것을 알 수 있다. 하지만, 본 발명의 예시적인 실시예에 따른 내용기반 파일 시스템의 경우, 마운트 시에 블록의 첫 페이지에 속한 스페어 영역에 블록 종류 필드를 추가함으로써 기존 파일 시스템에 비해 마운트 시간을 줄일 수 있다.All you need to do at mount time is to make the data that is stored on the storage medium (eg flash memory) meaningful. Due to the nature of flash memory, certain areas cannot be classified as sections for meaningful data, so each time you mount, you must configure an open file table with headers stored in the data area of the first page of the entire block and file information stored in the spare area. do. Therefore, the mount time is considerable. However, in the case of the content-based file system according to the exemplary embodiment of the present invention, the mount time can be reduced compared to the existing file system by adding a block type field to the spare area belonging to the first page of the block at the time of mounting.

예를 들면, 기존의 파일 시스템(예를 들면, YAFFS)의 마운트 방법과 본 발명의 예시적인 실시예에 따른 내용기반 파일 시스템의 마운트 방법이 도 6a 및 도 6b에 각각 도시되어 있다. 도 6a에 도시된 바와 같이, 기존의 파일 시스템은 블록 내 용을 파악할 수 없으므로 모든 페이지의 스페어 영역을 스캔함으로써 블록에 포함된 파일(들)을 확인한다. 이에 반해서, 도 6b에 도시된 바와 같이, 내용기반 파일 시스템은 마운트 과정에서 블록의 첫 페이지에 속한 스페어 영역의 블록 종류 필드를 통해 해당 블록이 순수 블록인지 혼합 블록인지를 판별한다. 순수 블록일 경우에 블록 안에 쓰인 데이터가 같은 파일이므로 블록 안에 남은 페이지를 스캔할 필요 없이 첫 페이지만 스캔함으로써 마운트 시간을 {(BPN-1)×PBN}만큼 줄일 수 있다. 여기서, BPN은 블록 안에 있는 전체 페이지 개수를 나타내고, PBN은 순수 블록들의 개수를 나타낸다. 스캔 후에 블록들은 각각의 리스트 즉, 순수 블록 리스트, 혼합 블록 리스트, 그리고 자유 블록 리스트로 구성되며, 블록들은 내용기반으로 관리된다.For example, a method of mounting an existing file system (eg, YAFFS) and a method of mounting a content-based file system according to an exemplary embodiment of the present invention are shown in FIGS. 6A and 6B, respectively. As shown in FIG. 6A, since the existing file system cannot grasp the block contents, the file (s) included in the block are checked by scanning the spare area of every page. In contrast, as shown in FIG. 6B, the content-based file system determines whether the corresponding block is a pure block or a mixed block through the block type field of the spare area belonging to the first page of the block during the mounting process. In the case of a pure block, since the data written in the block is the same file, the mount time can be reduced by {(BPN-1) × PBN} by scanning only the first page without having to scan the remaining pages in the block. Here, BPN represents the total number of pages in a block, and PBN represents the number of pure blocks. After the scan, the blocks are composed of their respective lists: pure block list, mixed block list, and free block list. Blocks are content-based.

파일의 쓰기 또는 삭제 연산이 발생하면, 해당 파일이 들어있는 페이지들이 무효화된다. 따라서 순수 블록의 경우, 동일한 파일의 내용을 담고 있으므로 파일 삭제 시 순수 블록의 모든 페이지가 무효화된다. 반면에 혼합 블록의 경우, 해당 파일이 들어있는 페이지들만 무효화된다. 내용기반 파일 시스템은 파일 기록 시에 마모도 평준화(wear-leveling)를 고려하여 파일을 기록할 것이다. 이는 이후 상세히 설명될 것이다.When a file write or delete operation occurs, the pages containing the file are invalidated. Therefore, in the case of pure blocks, all pages of the pure block are invalidated when the file is deleted because the contents of the same file are included. On the other hand, in the case of mixed blocks, only the pages containing the file are invalidated. Content-based file systems will record files in consideration of wear-leveling in file recording. This will be explained in detail later.

도 7a 내지 도 7c는 본 발명의 예시적인 실시예에 따른 내용기반 파일 시스템의 가비지 컬렉션 방법을 설명하기 위한 도면이다.7A to 7C are diagrams for describing a garbage collection method of a content-based file system according to an exemplary embodiment of the present invention.

가비지 컬렉션은 자유 블록(가용 공간)이 부족할 때 수행되며, 무효화 페이지들로 이루어진 블록을 새로운 데이터를 저장할 수 있는 자유 블록으로 만드는 과 정이며, 자유 블록은 무효화 페이지들로 이루어진 블록을 삭제함으로써 만들어진다. 가비지 컬렉션은 원칙적으로 모든 페이지가 무효화된 블록에 대해서 삭제 연산을 수행하는 것이다. 그러나, 자유 블록들의 개수가 일정한 임계값 이하로 떨어지고 더 이상 모든 페이지가 무효화된 블록이 존재하지 않는 경우, 일부 유효 데이터를 포함하고 있는 블록을 대상 블록으로 선정하고, 대상 블록의 유효 데이터를 다른 블록으로 복사하고, 무효화 된 블록 즉, 대상 블록을 삭제하는 방식이 사용될 수 있다.Garbage collection is performed when free blocks (free space) are lacking, and the process of making a block of invalidated pages into a free block to store new data is made by deleting a block of invalidated pages. Garbage collection, in principle, performs a delete operation on blocks where all pages have been invalidated. However, when the number of free blocks falls below a certain threshold and there is no block in which all pages are invalidated anymore, a block containing some valid data is selected as the target block, and the valid data of the target block is selected as another block. Copying and deleting the invalidated block, that is, the target block, may be used.

본 발명의 예시적인 실시예에 따른 가비지 컬렉션 방법은 가용 공간이 부족한 경우 자유 블록을 확보하는 단계와 블록 스왑을 통해 마도도 평준화를 행하는 단계를 포함할 것이다.According to an exemplary embodiment of the present invention, the garbage collection method may include securing free blocks when the available space is insufficient, and performing a leveling of the saddle through block swap.

먼저, 가용 공간이 부족한 경우 자유 블록을 확보하는 과정이 좀 더 구체적으로 설명될 것이다. 데이터 기록 시 데이터가 차지하는 블록의 개수가 2개라고 가정하자. 이러한 가정에 따르면, 자유 블록 리스트의 자유 블록들 중 2개의 자유 블록들이 데이터를 기록하기 위해서 할당된다. 2개의 자유 블록들이 데이터 기록을 위해서 할당되면, 도 7a에 도시된 바와 같이, 자유 블록 개수가 정해 놓은 임계값(예를 들면, 5개의 블록)에 미달하게 된다. 임계값(또는, 기준값이라 불림)은 남아있는 최소의 자유블록 개수를 의미하다. 예시적인 실시예에 있어서, 전체 블록 개수(예를 들면, 50개)의 10%를 임계값으로 설정한다. 자유 블록 개수가 임계값(5개의 블록)에 미달하면, 자유 블록들이 부족한 상태가 될 것이다. 이러한 경우, 본 발명의 예시적인 실시예에 따른 내용기반 파일 시스템은 혼합 블록들에 흩어져 있 는 여러 데이터를 하나의 혼합 블록으로 모아 자유 블록을 확보할 수 있는지 확인한다. 만약 자유 블록을 확보하는 것이 가능한 것으로 판별되면, 도 7b에 도시된 바와 같이, 혼합 블록들 중 유효 페이지 수가 적은 블록들을 선택하고, 선택된 블록들의 유효 페이지들은 자유 블록으로 옮겨질 것이다. 예를 들면, 혼합 블록들(7, 8, 9)의 유효 페이지들을 자유 블록(3)에 모으면 2개의 자유블록을 확보할 수 있다. 즉, 도 7c에 도시된 바와 같이, 혼합 블록들(7, 8, 9)의 유효 페이지들가 저장된 자유 블록(3)은 혼합 블록으로 할당되고, 혼합 블록들(7, 8, 9)은 자유 블록으로 할당된다. 따라서, 6개의 자유 블록이 확보됨에 따라 블록 부족 상태를 해결할 수 있다.First, a process of securing a free block when the available space is insufficient will be described in more detail. Assume that the number of blocks occupied by data is two when data is written. According to this assumption, two free blocks of the free blocks of the free block list are allocated for recording data. When two free blocks are allocated for data recording, as shown in Fig. 7A, the number of free blocks falls below a predetermined threshold (for example, five blocks). The threshold (or referred to as reference value) means the minimum number of free blocks remaining. In an exemplary embodiment, 10% of the total number of blocks (eg, 50) is set as the threshold. If the number of free blocks falls below the threshold (five blocks), there will be a shortage of free blocks. In this case, the content-based file system according to the exemplary embodiment of the present invention checks whether free data can be obtained by collecting various data scattered in the mixed blocks into one mixed block. If it is determined that it is possible to secure a free block, as shown in Fig. 7B, blocks having a small number of valid pages among the mixed blocks are selected, and valid pages of the selected blocks will be moved to the free block. For example, by collecting the valid pages of the mixed blocks 7, 8, 9 into the free block 3, two free blocks can be secured. That is, as shown in FIG. 7C, the free block 3 in which valid pages of the mixed blocks 7, 8, and 9 are stored is allocated to the mixed block, and the mixed blocks 7, 8, and 9 are free blocks. Is assigned to. Therefore, as six free blocks are secured, the block shortage state can be solved.

기존의 지움정책들은 모든 자유 블록이 사용되어 부족하게 되면 무효화 된 페이지가 많은 블록을 선택하여 삭제한다. 따라서 기존의 지움정책들은 긴 삭제 시간을 소비하는 단점을 가지고 있다. 하지만, 본 발명의 예시적인 실시예에 따른 내용기반 지움정책은 정해진 임계값 미만으로 자유 블록 개수가 남았을 경우 혼합 블록들의 병합 및 삭제를 통해 자유 블록 개수를 임계값 위로 상향시킴으로써 긴 삭제 대기 시간을 줄이는 삭제 블록 선택 방법을 사용하며, 그 결과 기존의 삭제 블록 선택 방법의 문제점(긴 삭제 시간)을 해결한다. 다시 말해서, 기존의 지움정책들에 따르면, 여유 공간 즉, 자유 블록들이 거의 소모될 때까지 기다린 후 한꺼번에 블록들을 정리하기 때문에, 긴 삭제 시간이 필요하다. 이에 반해서, 내용기반 지운정책의 경우, 자유 블록 갯수가 임계값 이하로 내려가면 블록들을 정리하기 때문에, 상대적으로 긴 삭제 시간을 필요로 하지 않는다.Existing erase policies select and delete blocks with a large number of invalidated pages when all free blocks are used up. Therefore, the existing erasure policies have the disadvantage of consuming long deletion time. However, the content-based erasure policy according to the exemplary embodiment of the present invention reduces the long deletion waiting time by raising the free block count above the threshold value by merging and deleting the mixed blocks when the free block count remains below a predetermined threshold. The deletion block selection method is used, and as a result, the problem (long deletion time) of the existing deletion block selection method is solved. In other words, according to the existing erasure policies, long deletion time is required because the free space, that is, until the free blocks are almost exhausted and the blocks are cleaned up at once. In contrast, the content-based erase policy does not require a relatively long delete time because the blocks are arranged when the number of free blocks drops below the threshold.

내용기반 블록 관리 방식의 경우, 순수 블록과 혼합 블록 사이에는 마모도 차이가 존재할 수 있다. 그 이유는 다음과 같다. 순수 블록이 한 가지 대용량 파일로만 채워지는 경우가 많다. 이런 대용량 파일 중 한 부분이 갱신이 되면 갱신된 부분의 페이지는 혼합 블록의 빈 공간에 쓰이게 된다. 혼합 블록의 갱신된 파일 중 일부분의 페이지들은 재 갱신 시 다른 혼합 블록에 쓰이게 된다. 그러한 까닭에, 순수 블록과 혼합 블록의 마모도 횟수를 보여주는 도 8에 도시된 바와 같이, 순수 블록보다 혼합 블록의 마모도 횟수가 더 높음을 알 수 있다.In the case of content-based block management, there may be a difference in wear between pure blocks and mixed blocks. The reason for this is as follows. Pure blocks are often filled with only one large file. When one portion of such a large file is updated, the updated portion of the page is used for empty space in the mixed block. Pages of some of the updated files in a mixed block are written to other mixed blocks when re-updated. For this reason, as shown in FIG. 8 showing the number of wear of the pure block and the mixing block, it can be seen that the number of wear of the mixing block is higher than that of the pure block.

내용기반 가비지 컬렉션에 따르면, 블록 스왑을 통해 마모도 평준화가 행해진다. 마모도 평준화를 위한 블록 스왑 과정을 보여주는 도 9를 참조하면, 먼저, 본 발명의 예시적인 실시예에 따른 내용기반 파일 시스템은 순수 블록 리스트에서 마모도가 가장 작은 순수 블록을 선택한다. 그 후, 본 발명의 예시적인 실시예에 따른 내용기반 파일 시스템은 자유 블록 리스트에서 마모도가 가장 높은 자유 블록을 선택한다. 본 발명의 예시적인 실시예에 따른 내용기반 파일 시스템은 선택된 순수 블록의 마모도와 선택된 자유 블록의 마모도 사이의 차이가 일정 범위(예: 10)를 넘는 지의 여부를 판별한다. 만약 선택된 순수 블록의 마모도와 선택된 자유 블록의 마모도의 차이가 일정 범위(예: 10)(또는, 기준값)를 넘는 것으로 판별되면, 본 발명의 예시적인 실시예에 따른 파일 시스템은 선택된 자유 블록과 선택된 순수 블록이 스왑되는 블록 스왑을 수행할 것이다. 예시적인 실시예에 있어서, 블록 스왑은 유휴 시간에 수행될 것이다.According to content-based garbage collection, wear leveling is achieved through block swapping. Referring to FIG. 9, which shows a block swap process for leveling wear, first, a content-based file system according to an exemplary embodiment of the present invention selects a pure block having the smallest wear from a pure block list. Thereafter, the content-based file system according to the exemplary embodiment of the present invention selects the free block having the highest wear level from the free block list. The content-based file system according to an exemplary embodiment of the present invention determines whether the difference between the wear of the selected pure block and the wear of the selected free block exceeds a certain range (eg, 10). If it is determined that the difference between the wear of the selected pure block and the wear of the selected free block exceeds a certain range (eg, 10) (or a reference value), the file system according to an exemplary embodiment of the present invention may select the selected free block and the selected free block. We will perform a block swap where pure blocks are swapped. In an exemplary embodiment, block swap will be performed at idle time.

본 발명의 실시예에 따른 내용기반 블록 관리 정책의 마운트 시간 및 가비지 컬렉션시 마모도 관리를 통한 플래시 메모리의 수명 효율이 다양한 실제 데이터를 이용하여 측정될 수 있다. 예를 들면, 본 발명의 실시예에 따른 내용기반 파일 시스템 및 기존의 파일 시스템들(예를 들면, YAFFS 및 JFFS2)의 성능이 도 10 내지 도 16을 참조하여 비교될 것이다. 이를 위해 Linux 2.6.17 환경에서 다음과 같은 2가지 실험이 실행되었다. 첫 번째 실험의 경우, 기존의 파일 시스템들과 본 발명의 실시예에 따른 내용기반 파일 시스템의 마운트 평균 시간이 비교될 것이다. 두 번째 실험의 경우, 기존의 파일 시스템(예를 들면, YAFFS)와 본 발명의 실시예에 따른 내용기반 파일 시스템의 지움정책들을 비교하기 위해 플래시 메모리의 수명 효율이 측정되며, 두 번째 실험에서는 아래와 같은 시뮬레이션이 사용된다.The mount time of the content-based block management policy according to an embodiment of the present invention and the life efficiency of the flash memory through wear management in garbage collection may be measured using various actual data. For example, the performance of content-based file systems and existing file systems (eg, YAFFS and JFFS2) in accordance with an embodiment of the present invention will be compared with reference to FIGS. 10-16. To do this, the following two experiments were performed in Linux 2.6.17 environment. For the first experiment, the mount average time of the existing file systems and the content-based file system according to the embodiment of the present invention will be compared. In the second experiment, the lifetime efficiency of the flash memory is measured to compare the erasure policies of the existing file system (eg, YAFFS) and the content-based file system according to the embodiment of the present invention. The same simulation is used.

(1) 마모도 측정 시뮬레이션: 블록 삭제 명령어 횟수 측정, 다중 블록 삭제 명령어 횟수 측정, 지우기 요청된 블록 수 측정, 지우기 요청된 연속된 블록 수 측정으로 이루어진다.(1) Wear measurement simulation: consists of measuring the number of block erase commands, measuring the number of multi-block delete commands, measuring the number of blocks requested to be erased, and measuring the number of consecutive blocks requested to be erased.

(2) Postmark: 작은 크기의 파일들에 대한 쓰기, 읽기, 변경, 삭제 등의 트랜잭션을 수행한다. 파일의 개수는 100개이며, 수행 할 트랜잭션은 각각 200, 500로 설정하였다.(2) Postmark: Performs transactions such as writing, reading, changing, and deleting small files. The number of files is 100 and the transactions to be executed are set to 200 and 500, respectively.

도 10은 본 발명의 실시예에 따른 내용기반 플래시 파일 시스템과 기존의 파일 시스템들의 마운트 평균 시간을 보여주는 도면이다.10 is a view showing a mount average time of a content-based flash file system and a conventional file system according to an embodiment of the present invention.

마운트 평균 시간은 플래시 메모리에 있는 블록들의 스페어 영역들을 스캔하여 주 메모리 상에 파일 정보를 구성하는 데 걸리는 시간을 의미한다. 실험에 사용된 매개 변수는 다음과 같다. 실험 데이터로서 빈 파일, 64Kbyte부터 16Mbyte까지 다양한 크기를 가지는 9개의 파일을 사용하였다. 도 10에 도시된 바와 같이, 본 발명의 실시예에 따른 내용기반 파일 시스템의 마운트 평균 시간은 기존의 파일 시스템들(예를 들면, JFFS2와 YAFFS)과 각각 비교하여 볼 때 각각 82.2% 및 42.9%만큼 감소한다. 또한 본 발명의 실시예에 따른 내용기반 파일 시스템에서는 파일의 크기가 작은 경우보다는 파일의 크기가 큰 경우에 최대 91.7% 및 67%만큼 마운트 평균 시간이 단축됨을 알 수 있다.The mount average time refers to the time taken to scan spare areas of blocks in flash memory to organize file information on main memory. The parameters used in the experiment are as follows. As experimental data, nine files with various sizes ranging from 64Kbyte to 16Mbyte were used. As shown in FIG. 10, the mount average time of the content-based file system according to an embodiment of the present invention is 82.2% and 42.9%, respectively, when compared to existing file systems (eg, JFFS2 and YAFFS), respectively. Decreases by. In addition, in the content-based file system according to an embodiment of the present invention, it can be seen that the mount average time is reduced by up to 91.7% and 67% when the file size is large rather than when the file size is small.

도 11 내지 도 13은 순차 쓰기, 지역성 쓰기, 랜덤 쓰기를 할 때 마모도를 보여주는 도면들이다. 11 to 13 are diagrams showing the degree of wear when sequential write, local write, random write.

순차 쓰기는 일반적인 자유 블록을 할당하여 데이터가 쓰이는 것을 의미하며, 지역성 쓰기는 블록에 쓰인 데이터가 업데이트가 일어나 다른 블록에 쓰이는 경우를 의미한다. 그리고 랜덤 쓰기는 순차 쓰기와 지역성 쓰기가 교대로 일어나는 경우를 의미한다. 포스트마크(Postmark)를 이용하여 얻어진 결과들을 보여주는 도 11 내지 도 13에서 알 수 있듯이, 본 발명의 실시예에 따른 내용기반 파일 시스템의 지움 정책은 Greedy, Cost-Benefit, 및 CAT 지움 정책들과 비교하여 오버헤드가 없다. 또한, 본 발명의 실시예에 따른 내용기반 파일 시스템의 지움 정책은 Greedy, Cost-Benefit, 및 CAT 지움 정책들과 비교하여 복사와 삭제 횟수에서도 오버헤드가 없음을 도 11 내지 도 13로부터 알 수 있다.Sequential write means that data is written by allocating a general free block, and local write means that data written to a block is updated and written to another block. Random write means a case where sequential write and local write occur alternately. As can be seen in FIGS. 11-13 showing the results obtained using Postmark, the erase policy of a content-based file system according to an embodiment of the present invention is compared with Greedy, Cost-Benefit, and CAT erase policies. There is no overhead. In addition, it can be seen from FIG. 11 to FIG. 13 that the erase policy of the content-based file system according to an embodiment of the present invention has no overhead in copying and deleting times compared to Greedy, Cost-Benefit, and CAT erase policies. .

도 14 및 도 15는 기존의 파일 시스템과 본 발명의 실시예에 따른 내용기반 파일 시스템의 마모도 평준화에 대한 실험 결과를 보여주는 도면들이다.14 and 15 are diagrams showing the results of experiments on the leveling of the wear of the existing file system and the content-based file system according to an embodiment of the present invention.

기존의 파일 시스템(예를 들면, YAFFS)의 경우, 블록들마다 마모도 횟수가 큰 차이를 보이며 일부 사용되는 블록만이 계속해서 사용된다. 하지만, 본 발명의 실시예에 따른 내용기반 파일 시스템은 블록들의 마모도가 균일하게 유지되는 것을 알 수 있다. 포스트마크 시뮬레이션에서는 각각 트랜잭션을 200 및 500으로 설정하여 파일 삭제 및 복사를 반복하였다.In the existing file system (eg YAFFS), the number of times of wear varies greatly from block to block, and only some of the blocks used are still in use. However, the content-based file system according to an embodiment of the present invention can be seen that the wear of the blocks is kept uniform. In the postmark simulation, we set the transaction to 200 and 500, respectively, and repeated file deletion and copying.

도 16은 본 발명의 실시예에 따른 내용기반 플래시 파일 시스템의 지움 정책과 기존의 지움 정책에 따른 복사 및 지움 횟수를 보여주는 도면이다. 도 16에 도시된 바와 같이, 본 발명의 실시예에 따른 내용기반 파일 시스템의 지움 정책이 기존의 지움 정책보다 지움 횟수나 복사 횟수가 32%정도 감소된 것을 알 수 있다. 본 발명의 실시예에 따른 내용기반 파일 시스템의 지움 정책에 의하면, 자유 블록의 최소값과 순수 블록의 최대값을 비교하여 자유 블록과 순수 블록을 스왑한다. 하지만, 기존의 지움 정책에서 스왑 정책을 사용할 경우 블록의 구분없이 마모도의 최대값과 최소값만을 비교한다면 스왑 대상이 되는 블록에 유효한 데이터가 쓰일 수 있다. 이럴 경우 추가적인 새로운 블록을 임시 블록으로 설정하여 스왑 과정에서 사용하기 때문에 추가적인 복사 및 삭제 횟수가 발생하게 된다. 따라서 본 발명의 실시예에 따른 내용기반 파일 시스템의 지움 정책에서는 자유 블록과 순수 블록의 마모도 횟수를 비교하여 스왑 정책을 사용하기 때문에 추가적인 오버헤드를 방지한다.16 is a view showing the number of times of copying and erasing according to an erase policy and an existing erase policy of a content-based flash file system according to an exemplary embodiment of the present invention. As illustrated in FIG. 16, it can be seen that the erase policy of the content-based file system according to the embodiment of the present invention is reduced by 32% of the number of times of erasing or copying of the content-based file system. According to an erase policy of a content-based file system according to an exemplary embodiment of the present invention, a free block and a pure block are swapped by comparing a minimum value of a free block with a maximum value of a pure block. However, when the swap policy is used in the existing erasure policy, valid data may be used in the block to be swapped if only the maximum and minimum values of wear are compared without classifying the blocks. In this case, the additional new block is set as a temporary block and used during the swap process, which causes additional copy and delete times. Therefore, the erase policy of the content-based file system according to the embodiment of the present invention prevents additional overhead because the swap policy is used by comparing the number of wear of the free block and the pure block.

본 발명의 실시예에 따른 내용기반 플래시 파일 시스템이 플래시 메모리에 국한되는 것이 아니라 다른 저장치의 파일 시스템에 적용될 수 있음은 잘 이해될 것이다.It will be appreciated that the content-based flash file system according to an embodiment of the present invention is not limited to flash memory but may be applied to file systems of other storage values.

본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.It will be apparent to those skilled in the art that the structure of the present invention can be variously modified or changed without departing from the scope or spirit of the present invention. In view of the foregoing, it is intended that the present invention cover the modifications and variations of this invention provided they fall within the scope of the following claims and equivalents.

도 1은 일반적인 플래시 메모리 구조를 보여주는 도면이다.1 illustrates a general flash memory structure.

도 2는 기존의 YAFFS 플래시 메모리 구조를 보여주는 도면이다.2 illustrates a conventional YAFFS flash memory structure.

도 3은 본 발명의 예시적인 실시예에 따른 시스템을 개략적으로 보여주는 블록도이다.3 is a block diagram schematically illustrating a system according to an exemplary embodiment of the present invention.

도 4는 본 발명의 예시적인 실시예에 따른 내용기반 파일 시스템이 어떻게 블록 종류를 결정하는 지를 설명하기 위한 도면이다.4 is a diagram for describing how a content-based file system determines a block type according to an exemplary embodiment of the present invention.

도 5는 본 발명의 예시적인 실시예에 따른 내용기반 파일 시스템의 마운트 방법을 개략적으로 설명하기 위한 흐름도이다.Fig. 5 is a flowchart for schematically illustrating a method of mounting a content-based file system according to an exemplary embodiment of the present invention.

도 6a 및 도 6b는 기존의 플래시 파일 시스템(예를 들면, YAFFS)의 마운트 방법과 본 발명의 예시적인 실시예에 따른 내용기반 파일 시스템의 마운트 방법을 보여주는 도면이다.6A and 6B illustrate a method of mounting an existing flash file system (eg, YAFFS) and a method of mounting a content-based file system according to an exemplary embodiment of the present invention.

도 7a 내지 도 7c는 본 발명의 예시적인 실시예에 따른 내용기반 파일 시스템의 가비지 컬렉션 방법을 설명하기 위한 도면이다.7A to 7C are diagrams for describing a garbage collection method of a content-based file system according to an exemplary embodiment of the present invention.

도 8은 순수 블록과 혼합 블록의 마모도 횟수를 보여주는 도면이다.8 is a view showing the number of wear of the pure block and the mixing block.

도 9는 마모도 평준화를 위한 블록 스왑 과정을 보여주는 도면이다.9 is a view illustrating a block swap process for leveling wear.

도 10은 본 발명의 실시예에 따른 내용기반 플래시 파일 시스템과 기존의 파일 시스템들의 마운트 평균 시간을 보여주는 도면이다.10 is a view showing a mount average time of a content-based flash file system and a conventional file system according to an embodiment of the present invention.

도 11 내지 도 13은 순차 쓰기, 지역성 쓰기, 랜덤 쓰기를 할 때 마모도를 보여주는 도면들이다.11 to 13 are diagrams showing the degree of wear when sequential write, local write, random write.

도 14 및 도 15는 기존의 파일 시스템과 본 발명의 실시예에 따른 내용기반 파일 시스템의 마모도 평준화에 대한 실험 결과를 보여주는 도면들이다.14 and 15 are diagrams showing the results of experiments on the leveling of the wear of the existing file system and the content-based file system according to an embodiment of the present invention.

도 16은 본 발명의 실시예에 따른 내용기반 플래시 파일 시스템의 지움 정책과 기존의 지움 정책에 따른 복사 및 지움 횟수를 보여주는 도면이다.16 is a view showing the number of times of copying and erasing according to an erase policy and an existing erase policy of a content-based flash file system according to an exemplary embodiment of the present invention.

Claims (20)

프로세싱 유니트와;A processing unit; 상기 프로세싱 유니트에 의해서 운용되는 내용기반 파일 시스템이 로드되는 램과; 그리고A RAM into which a content-based file system operated by the processing unit is loaded; And 상기 내용기반 파일 시스템에 의해서 관리되는 블록들을 구비한 플래시 메모리를 포함하며,A flash memory having blocks managed by the content-based file system, 상기 내용기반 파일 시스템은 파일 쓰기가 요청될 때 상기 블록들 중 적어도 하나의 블록을 선택하고, 상기 선택된 적어도 하나의 블록이 순수 블록, 혼합 블록, 그리고 자유 블록 중 어느 하나에 속하는 지를 결정하며, 상기 결정된 블록 종류를 나타내는 블록 종류 정보와 함께 상기 쓰기 요청된 파일을 상기 적어도 하나의 블록에 저장하는 시스템.The content-based file system selects at least one block of the blocks when a file write is requested, and determines whether the selected at least one block belongs to one of a pure block, a mixed block, and a free block; And storing the write requested file in the at least one block with block type information indicating the determined block type. 제 1 항에 있어서,The method of claim 1, 상기 적어도 하나의 블록이 상기 쓰기 요청된 파일로 채워지는 경우, 상기 내용기반 파일 시스템은 상기 적어도 하나의 블록을 상기 순수 블록으로 결정하는 시스템.And if the at least one block is filled with the write requested file, the content-based file system determines the at least one block as the pure block. 제 2 항에 있어서,The method of claim 2, 상기 적어도 하나의 블록 중 일부가 상기 쓰기 요청된 파일로 채워지는 경 우, 상기 내용기반 파일 시스템은 상기 적어도 하나의 블록을 상기 혼합 블록으로 결정하는 시스템.And if some of the at least one block is filled with the write requested file, the content-based file system determines the at least one block as the mixed block. 제 1 항에 있어서,The method of claim 1, 상기 선택된 적어도 하나의 블록이 순수 블록, 혼합 블록, 그리고 자유 블록 중 어느 하나에 속하는 지의 결정은 상기 쓰기 요청된 파일의 크기를 블록의 크기로 나누고, 몫에 대응하는 블록들을 순수 블록으로 그리고 나머지에 대응하는 블록을 혼합 블록으로 결정함으로써 수행되는 시스템.Determination of whether the selected at least one block belongs to one of pure blocks, mixed blocks, and free blocks divides the size of the write requested file by the size of the block, and divides the blocks corresponding to the shares into pure blocks and the rest. A system performed by determining the corresponding block as a mixed block. 제 1 항에 있어서,The method of claim 1, 상기 내용기반 파일 시스템은 마운트시 상기 각 블록의 첫 번째 페이지에 속한 스페어 영역으로부터 블록 종류 정보를 읽고, 상기 읽혀진 블록 종류 정보에 따라 상기 각 블록의 나머지 페이지들의 스페어 영역들에 대한 스캔을 결정하는 시스템.The content-based file system reads block type information from a spare area belonging to the first page of each block when mounted, and determines scanning of spare areas of the remaining pages of each block according to the read block type information. . 제 5 항에 있어서,The method of claim 5, 상기 내용기반 파일 시스템은 상기 읽혀진 블록 종류 정보가 혼합 블록을 나타낼 때 상기 선택된 블록의 나머지 페이지들의 스페어 영역들에 대한 스캔 후 상기 선택된 블록을 혼합 블록 리스트에 삽입하고,The content-based file system inserts the selected block into the mixed block list after scanning the spare areas of the remaining pages of the selected block when the read block type information indicates the mixed block, 상기 읽혀진 블록 종류 정보가 자유 블록과 순수 블록 중 하나를 나타낼 때 상기 선택된 블록의 나머지 페이지들의 스페어 영역들에 대한 스캔없이 상기 선택된 블록을 자유 블록 리스트와 순수 블록 리스트 중 어느 하나에 삽입함으로써 오픈파일 테이블을 구성하는 시스템.Open file table by inserting the selected block into either the free block list or the pure block list without scanning the spare areas of the remaining pages of the selected block when the read block type information indicates one of a free block and a pure block. To configure the system. 블록들로 구성된 비휘발성 메모리를 포함한 시스템의 블록 관리 방법에 있어서:In a block management method of a system including a nonvolatile memory composed of blocks: 상기 블록들 중 선택된 블록의 첫 번째 페이지에 속한 스페어 영역으로부터 블록 종류 정보를 읽는 단계와;Reading block type information from a spare area belonging to a first page of a selected block among the blocks; 상기 읽혀진 블록 종류 정보가 혼합 블록을 나타낼 때, 상기 선택된 블록의 나머지 페이지들의 스페어 영역들을 스캔하여 상기 선택된 블록을 혼합 블록 리스트에 삽입하는 단계와;When the read block type information indicates a mixed block, scanning the spare areas of the remaining pages of the selected block and inserting the selected block into the mixed block list; 상기 읽혀진 블록 종류 정보가 자유 블록과 순수 블록 중 하나를 나타낼 때, 상기 선택된 블록의 나머지 페이지들의 스페어 영역들에 대한 스캔없이 상기 선택된 블록을 자유 블록 리스트와 순수 블록 리스트 중 어느 하나에 삽입하는 단계와; 그리고When the read block type information indicates one of a free block and a pure block, inserting the selected block into either a free block list or a pure block list without scanning the spare areas of the remaining pages of the selected block; ; And 상기 비휘발성 메모리의 블록들 모두 선택될 때까지 상기 읽는 단계 및 상기 삽입 단계들을 반복적으로 수행하는 단계를 포함하는 것을 특징으로 하는 방법.Repeatedly performing the reading and inserting steps until all the blocks of the nonvolatile memory are selected. 제 7 항에 있어서,The method of claim 7, wherein 상기 블록 종류 정보는 파일이 상기 비휘발성 메모리에 저장될 때 생성되는 것을 특징으로 하는 방법.And the block type information is generated when a file is stored in the nonvolatile memory. 제 7 항에 있어서,The method of claim 7, wherein 상기 자유 블록 리스트에 포함된 자유 블록들의 수가 임계값보다 낮을 때, 상기 순수 블록 리스트, 상기 혼합 블록 리스트, 그리고 상기 자유 블록 리스트에 의거하여 내용기반 가비지 컬렉션을 수행하는 단계를 더 포함하는 것을 특징으로 하는 방법.Performing content-based garbage collection based on the pure block list, the mixed block list, and the free block list when the number of free blocks included in the free block list is lower than a threshold. How to. 제 9 항에 있어서,The method of claim 9, 상기 내용기반 가비지 컬렉션은 상기 혼합 블록 리스트에서 중 적은 수의 유효 페이지들을 갖는 혼합 블록들을 선택하고, 상기 선택된 혼합 블록들에 포함된 유효 페이지들을 상기 자유 블록 리스트의 자유 블록들 중 하나로 옮기고, 그리고 상기 선택된 혼합 블록들을 자유 블록으로서 자유 블록 리스트에 삽입함으로써 달성되는 것을 특징으로 하는 방법.The content-based garbage collection selects mixed blocks having a small number of valid pages in the mixed block list, moves valid pages included in the selected mixed blocks to one of the free blocks in the free block list, and Achieved by inserting selected mixed blocks into the free block list as free blocks. 제 7 항에 있어서,The method of claim 7, wherein 상기 비휘발성 메모리의 블록들의 마모도 평준화를 위해서 블록 스왑을 수행하는 단계를 더 포함하며, 상기 블록 스왑은 상기 순수 블록 리스트에서 가장 작은 마모도를 갖는 순수 블록을 선택하고, 상기 자유 블록 리스트에서 가장 큰 마모도를 갖는 자유 블록을 선택하고, 상기 선택된 순수 블록의 마모도와 상기 선택된 자 유 블록의 마모도의 차가 기준값을 넘을 때 상기 선택된 순수 블록과 상기 선택된 자유 블록을 스왑함으로써 달성되는 것을 특징으로 하는 방법.And performing a block swap for leveling wear of the blocks of the nonvolatile memory, wherein the block swap selects a pure block having the smallest wear in the pure block list, and the largest wear in the free block list. And selecting a free block having a predetermined value and swapping the selected pure block and the selected free block when a difference between the wear degree of the selected pure block and the wear degree of the selected free block exceeds a reference value. 제 11 항에 있어서,The method of claim 11, 상기 블록 스왑은 유휴 시간에 수행되는 것을 특징으로 하는 방법.And said block swap is performed at idle time. 제 7 항에 있어서,The method of claim 7, wherein 상기 블록 종류 정보는 스페어 영역의 태그에 속한 예약된 영역에 저장되는 것을 특징으로 하는 방법.The block type information is stored in the reserved area belonging to the tag of the spare area. 블록들로 구성된 비휘발성 메모리를 포함한 시스템의 블록 관리 방법에 있어서:In a block management method of a system including a nonvolatile memory composed of blocks: 상기 비휘발성 메모리의 블록들 중 쓰기 요청된 파일이 저장될 적어도 하나의 블록의 종류를 결정하는 단계와; 그리고Determining a type of at least one block in which the write requested file is to be stored among the blocks of the nonvolatile memory; And 상기 결정된 종류를 나타내는 블록 종류 정보와 함께 상기 쓰기 요청된 파일을 상기 적어도 하나의 블록에 저장하는 단계를 포함하는 것을 특징으로 방법.And storing the write request file in the at least one block together with block type information indicating the determined type. 제 14 항에 있어서,The method of claim 14, 상기 블록 종류 정보는 순수 블록, 혼합 블록, 그리고 자유 블록 중 어느 하나를 나타내는 것을 특징으로 하는 방법.Wherein the block type information indicates any one of a pure block, a mixed block, and a free block. 제 15 항에 있어서,The method of claim 15, 상기 적어도 하나의 블록은 상기 적어도 하나의 블록이 상기 쓰기 요청된 파일로 채워지는 것으로 판별될 때 상기 순수 블록으로 그리고 상기 적어도 하나의 블록 중 일부가 상기 쓰기 요청된 파일로 채워지는 것으로 판별될 때 상기 혼합 블록으로 결정되는 것을 특징으로 하는 방법.The at least one block is determined as being a pure block when the at least one block is determined to be filled with the write requested file and when it is determined that some of the at least one block is filled with the write requested file. Characterized in that it is determined by a mixing block. 제 15 항에 있어서,The method of claim 15, 상기 쓰기 요청된 파일의 크기는 블록의 크기로 나눠지며, 몫에 대응하는 블록들은 순수 블록으로 그리고 나머지에 대응하는 블록은 혼합 블록으로 결정되는 것을 특징으로 하는 방법.The size of the write request file is divided by the size of a block, wherein blocks corresponding to the share are determined as pure blocks and blocks corresponding to the remainder as mixed blocks. 제 15 항에 있어서,The method of claim 15, 상기 블록 종류 정보는 상기 적어도 하나의 블록의 첫 번째 페이지에 속한 스페어 영역의 태그에 저장되고, 상기 쓰기 요청된 파일의 메타 정보는 상기 적어도 하나의 블록의 첫 번째 페이지에 속한 데이터 영역에 헤더로서 저장되는 것을 특징으로 하는 방법.The block type information is stored in a tag of a spare area belonging to the first page of the at least one block, and the meta information of the write request file is stored as a header in a data area belonging to the first page of the at least one block. Characterized in that the method. 제 14 항에 있어서,The method of claim 14, 마운트시, 상기 비휘발성 메모리의 각 블록의 첫 번째 페이지에 속한 스페어 영역으로부터 블록 종류 정보를 읽는 단계와; 그리고When mounted, reading block type information from a spare area belonging to the first page of each block of the nonvolatile memory; And 상기 읽혀진 블록 종류 정보에 따라 상기 각 블록의 나머지 페이지들의 스페어 영역들에 대한 스캔을 결정하는 단계를 더 포함하는 것을 특징으로 하는 방법.And determining a scan of spare areas of the remaining pages of each block according to the read block type information. 제 19 항에 있어서,The method of claim 19, 상기 읽혀진 블록 종류 정보가 순수 블록 또는 자유 블록을 나타낼 때, 상기 순수 블록 또는 상기 자유 블록으로 판별된 블록의 나머지 페이지들의 스페어 영역들에 대한 스캔은 생략되며; 그리고When the read block type information indicates a pure block or a free block, scanning of spare areas of the remaining pages of the block determined as the pure block or the free block is omitted; And 상기 읽혀진 블록 종류 정보가 혼합 블록을 나타낼 때, 상기 혼합 블록으로 판별된 블록의 나머지 페이지들의 스페어 영역들이 스캔되는 것을 특징으로 하는 방법.And when the read block type information indicates a mixed block, spare areas of remaining pages of the block determined as the mixed block are scanned.
KR1020090079206A 2009-08-26 2009-08-26 Flash memory system and contents-based block management method thereof KR20110021417A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090079206A KR20110021417A (en) 2009-08-26 2009-08-26 Flash memory system and contents-based block management method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090079206A KR20110021417A (en) 2009-08-26 2009-08-26 Flash memory system and contents-based block management method thereof

Publications (1)

Publication Number Publication Date
KR20110021417A true KR20110021417A (en) 2011-03-04

Family

ID=43930313

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090079206A KR20110021417A (en) 2009-08-26 2009-08-26 Flash memory system and contents-based block management method thereof

Country Status (1)

Country Link
KR (1) KR20110021417A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130050124A (en) * 2011-11-07 2013-05-15 삼성전자주식회사 Garbage collection method for non-volatile memory device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130050124A (en) * 2011-11-07 2013-05-15 삼성전자주식회사 Garbage collection method for non-volatile memory device
KR101867282B1 (en) * 2011-11-07 2018-06-18 삼성전자주식회사 Garbage collection method for non-volatile memory device

Similar Documents

Publication Publication Date Title
CN110678836B (en) Persistent memory for key value storage
KR100453053B1 (en) Flash memory file system
KR100849221B1 (en) Method for managing non-volatile memory, and memory-based apparatus including the non-volatile memory
US9304905B2 (en) Memory controller and data management method thereof
US8607016B2 (en) FAT analysis for optimized sequential cluster management
KR100789406B1 (en) Flash memory system and garbage collection method therof
US7395384B2 (en) Method and apparatus for maintaining data on non-volatile memory systems
KR101038167B1 (en) Information processing device including memory management device managing access from processor to memory and memory management method
US7594062B2 (en) Method for changing data of a data block in a flash memory having a mapping area, a data area and an alternative area
KR100526190B1 (en) Remapping method for flash memory
US7882300B2 (en) Apparatus and method for managing nonvolatile memory
KR102252419B1 (en) System and method for efficient address translation on Flash memory device
KR101329068B1 (en) Nonvolatile memory with block management
KR20130075018A (en) Data update apparatus for flash memory file system and method thereof
Agarwal et al. A closed-form expression for write amplification in nand flash
CN107817945B (en) Data reading method and system of hybrid memory structure
KR20070096429A (en) Fast mounting for a file system on nand flash memory
KR101017067B1 (en) Locality-Aware Garbage Collection Technique for NAND Flash Memory-Based Storage Systems
KR20100115090A (en) Buffer-aware garbage collection technique for nand flash memory-based storage systems
TWI399642B (en) Nonvolatile memory with block management
KR20120074707A (en) Flash memory based storage and method for address mapping and data allocation therefor
Subramani et al. Garbage collection algorithms for nand flash memory devices--an overview
KR20140038110A (en) Method for managing file system and apparatus using the same
KR101026634B1 (en) A method of data storage for a hybrid flash memory
KR20110070656A (en) Method and apparatus for processing data of flash memory

Legal Events

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