KR100957445B1 - File system and storage device for effective overrwrite and effective overrwrite method - Google Patents

File system and storage device for effective overrwrite and effective overrwrite method Download PDF

Info

Publication number
KR100957445B1
KR100957445B1 KR1020080004049A KR20080004049A KR100957445B1 KR 100957445 B1 KR100957445 B1 KR 100957445B1 KR 1020080004049 A KR1020080004049 A KR 1020080004049A KR 20080004049 A KR20080004049 A KR 20080004049A KR 100957445 B1 KR100957445 B1 KR 100957445B1
Authority
KR
South Korea
Prior art keywords
logical sector
allocated
data
information
allocation
Prior art date
Application number
KR1020080004049A
Other languages
Korean (ko)
Other versions
KR20090078215A (en
Inventor
김상욱
배덕호
장지웅
Original Assignee
한양대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한양대학교 산학협력단 filed Critical 한양대학교 산학협력단
Priority to KR1020080004049A priority Critical patent/KR100957445B1/en
Publication of KR20090078215A publication Critical patent/KR20090078215A/en
Application granted granted Critical
Publication of KR100957445B1 publication Critical patent/KR100957445B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches

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

효율적인 덮어쓰기를 위한 파일 시스템 및 기억 장치 그리고 효율적인 덮어쓰기 방법을 개시한다. 파일 시스템은 전체 논리적 섹터 각각에 대한 할당 여부 및 상기 전체 논리적 섹터의 할당 순서에 대한 정보를 유지하는 제1 기억영역, 상기 논리적 섹터 중 데이터에 대해 할당된 논리적 섹터에 대한 할당 정보를 유지하는 제2 기억영역 및 상기 데이터에 대해 최초 할당된 논리적 섹터와 상기 데이터에 대한 덮어쓰기 시 새로 할당되는 논리적 섹터간의 맵핑 정보를 유지하는 제3 기억영역을 포함하고, 상기 데이터의 덮어쓰기 시 상기 제1 기억영역에 기초하여 상기 데이터를 반영하는 새로운 논리적 섹터를 할당하고, 상기 새로운 논리적 섹터에 해당하는 정보를 상기 제2 기억영역 및 상기 제3 기억영역에 반영한다.A file system and storage device for efficient overwriting and an efficient overwriting method are disclosed. The file system includes a first storage area for maintaining information on whether each of the logical sectors is allocated and an order of allocation of the entire logical sectors, and a second storage area for maintaining allocation information about logical sectors allocated for data among the logical sectors. A storage area and a third storage area for retaining mapping information between a logical sector initially allocated for the data and a newly allocated logical sector when overwriting the data, wherein the first storage area when overwriting the data; A new logical sector reflecting the data is allocated based on the information, and information corresponding to the new logical sector is reflected in the second storage area and the third storage area.

플래시 메모리, 덮어쓰기(overwrite), 섹터, 블록, 페이지 Flash memory, overwrite, sectors, blocks, pages

Description

효율적인 덮어쓰기를 위한 파일 시스템 및 기억 장치 그리고 효율적인 덮어쓰기 방법{FILE SYSTEM AND STORAGE DEVICE FOR EFFECTIVE OVERRWRITE AND EFFECTIVE OVERRWRITE METHOD}FILE SYSTEM AND STORAGE DEVICE FOR EFFECTIVE OVERRWRITE AND EFFECTIVE OVERRWRITE METHOD}

본 발명은 효율적인 덮어쓰기를 위한 파일 시스템 및 기억 장치 그리고 효율적인 덮어쓰기 방법에 관한 것이다.The present invention relates to a file system and storage device for efficient overwriting and an efficient overwriting method.

플래시 메모리는 동일한 크기의 여러 개의 연속적인 블록으로 구성되며, 하나의 블록은 동일한 크기의 여러 개의 연속적인 페이지로 구성된다. 플래시 메모리에서 수행 가능한 연산은 읽기, 쓰기, 소거의 총 세 가지이다. 플래시 메모리에서 읽기와 쓰기 연산은 페이지 단위로 이루어지며, 소거 연산은 블록 단위로 이루어진다.Flash memory consists of several consecutive blocks of the same size, and one block consists of several consecutive pages of the same size. There are three operations that can be performed in flash memory: read, write and erase. In flash memory, read and write operations are performed in units of pages, and erase operations are performed in units of blocks.

플래시 메모리는 기존의 저장 매체들과는 다른 플래시 메모리만의 고유한 특성들이 존재한다. 첫째, 읽기 연산과 쓰기 연산 간의 수행 속도의 차이가 없는 디스크와는 달리 플래시 메모리는 두 연산 간의 수행 속도의 차이가 매우 크다. 즉, 플래시 메모리의 쓰기 연산은 읽기 연산에 비해 수행 속도가 매우 느리다. 둘째, 플래시 메모리에는 기존에 없었던 새로운 연산인 소거 연산(erase operation)이 존 재한다. 플래시 메모리는 물리적 특성 상 저장된 데이터를 직접 갱신하는 것이 불가능하다. 데이터를 갱신하기 위해서는 기존의 데이터를 무효화하고, 갱신 사항이 반영된 새로운 데이터를 플래시 메모리의 다른 영역에 기록하는 방법을 사용한다. 이 때, 기존의 데이터를 무효화하는 연산이 소거 연산이다. 소거 연산은 오버헤드가 매우 큰 연산으로 잦은 쓰기 연산에 의해 발생한다. 셋째, 플래시 메모리는 하나의 블록에 수행 가능한 소거 연산의 횟수는 보통 10만 번 이하로 제한되어 있다. 제한된 수만큼 소거 연산을 수행한 블록은 더 이상 사용할 수 없다. 즉, 잦은 소거 연산은 플래시 메모리의 수명을 단축시키는 중요한 요인이 된다. 위에서 언급한 특성들로 인하여 플래시 메모리 환경에서 쓰기 연산을 감소시키는 것이 매우 중요하다.Flash memory has unique characteristics that are different from conventional storage media. First, unlike disks that do not differ in performance between read and write operations, flash memory has a large difference in performance between two operations. In other words, the write operation of the flash memory is much slower than the read operation. Second, there is an erase operation that is a new operation that does not exist in the flash memory. Flash memory cannot directly update stored data due to its physical characteristics. In order to update data, a method of invalidating existing data and writing new data reflecting the update is written to another area of the flash memory. At this time, an operation for invalidating existing data is an erase operation. Erase operations are operations with very high overhead and are caused by frequent write operations. Third, in flash memory, the number of erase operations that can be performed in one block is generally limited to 100,000 or less. A block that has performed a limited number of erase operations is no longer available. In other words, frequent erase operations are an important factor in shortening the life of flash memory. Due to the above mentioned characteristics, it is very important to reduce the write operation in the flash memory environment.

본 발명은 덮어쓰기 시, 새로운 논리적 섹터를 할당받아 수정된 데이터를 반영하여 통해 블록 복사의 수를 현저히 줄임으로써, 쓰기 연산과 소거 연산의 횟수를 줄이고, 이를 통해 성능을 향상시키고 수명을 증가시킬 수 있는 파일 시스템 및 기억 장치 그리고 효율적인 덮어쓰기 방법을 제공한다.According to the present invention, when overwriting, a new logical sector is allocated and the modified data is reflected to significantly reduce the number of block copies, thereby reducing the number of write and erase operations, thereby improving performance and increasing lifetime. File system and storage and efficient overwriting methods.

본 발명은 파일 시스템을 수정하여 블록 맵핑과 하이브리드 맵핑이 마치 섹터 맵핑처럼 동작하도록 함으로써 섹터 맵핑이 많은 메인 메모리 사용량을 요구하던 문제점을 해결할 수 있는 파일 시스템 및 기억 장치 그리고 효율적인 덮어쓰기 방법을 제공한다.The present invention provides a file system, a storage device, and an efficient overwriting method that can solve the problem that sector mapping requires a large amount of main memory by modifying the file system so that block mapping and hybrid mapping behave like sector mapping.

본 발명은 대부분의 플래시 메모리에서 사용되는 FTL(flash translation layer)에 바로 적용 가능하여 LFS(Log-structured File System)에 비해 높은 범용성을 갖는 파일 시스템 및 기억 장치 그리고 효율적인 덮어쓰기 방법을 제공한다.The present invention can be directly applied to a flash translation layer (FTL) used in most flash memories to provide a file system, a storage device, and an efficient overwriting method with higher generality than a Log-structured File System (LFS).

본 발명의 일실시예에 따른 파일 시스템은 전체 논리적 섹터 각각에 대한 할당 여부 및 상기 전체 논리적 섹터의 할당 순서에 대한 정보를 유지하는 제1 기억영역, 상기 논리적 섹터 중 데이터에 대해 할당된 논리적 섹터에 대한 할당 정보를 유지하는 제2 기억영역 및 상기 데이터에 대해 최초 할당된 논리적 섹터와 상기 데이터에 대한 덮어쓰기 시 새로 할당되는 논리적 섹터간의 맵핑 정보를 유지하는 제3 기억영역을 포함하고, 상기 데이터의 덮어쓰기 시 상기 제1 기억영역에 기초하여 상기 데이터를 반영하는 새로운 논리적 섹터를 할당하고, 상기 새로운 논리적 섹터에 해당하는 정보를 상기 제2 기억영역 및 상기 제3 기억영역에 반영한다.According to an embodiment of the present invention, a file system includes a first storage area that maintains information on whether each of all logical sectors is allocated and an order of allocation of the entire logical sectors, and a logical sector allocated to data among the logical sectors. A second storage area for retaining allocation information for the data and a third storage area for retaining mapping information between a logical sector initially allocated for the data and a logical sector newly allocated upon overwriting the data; Upon overwriting, a new logical sector reflecting the data is allocated based on the first storage area, and information corresponding to the new logical sector is reflected in the second storage area and the third storage area.

본 발명의 일측면에 따르면, 상기 새로운 논리적 섹터에 해당하는 정보는 상기 새로운 논리적 섹터가 할당되었음을 상기 제2 기억영역에 반영하기 위한 할당 정보 및 상기 데이터에 대해 최초 할당된 논리적 섹터와 상기 새로운 논리적 섹터간의 맵핑 정보를 상기 제3 기억영역에 반영하기 위한 맵핑 정보를 포함할 수 있다.According to an aspect of the present invention, the information corresponding to the new logical sector is allocation information for reflecting in the second storage area that the new logical sector has been allocated and the logical sector initially allocated to the data and the new logical sector. Mapping information for reflecting the mapping information between the third storage area may be included.

본 발명의 일실시예에 따른 기억 장치는 데이터의 덮어쓰기 시 할당 맵에 기초하여 새로운 논리적 섹터를 할당하는 할당부, 상기 새로운 논리적 섹터에 대한 정보를 파일 맵에 반영하는 반영부 및 상기 새로운 논리적 섹터에 대응하는 물리적 페이지에 상기 덮어쓰기에 해당하는 데이터를 저장하는 저장부를 포함한다.According to an embodiment of the present invention, a memory device may include an allocation unit for allocating a new logical sector based on an allocation map when data is overwritten, a reflector for reflecting information about the new logical sector in a file map, and the new logical sector. And a storage unit to store data corresponding to the overwriting in a physical page corresponding to the data.

본 발명의 일측면에 따르면, 상기 할당 맵은 전체 논리적 섹터 각각에 대한 할당 여부 및 상기 전체 논리적 섹터의 할당 순서에 대한 정보를 유지할 수 있다.According to an aspect of the present invention, the allocation map may maintain information on whether to allocate each of the entire logical sectors and the order of allocation of the entire logical sectors.

본 발명의 일측면에 따르면, 상기 파일 맵은 상기 논리적 섹터 중 데이터에 대해 할당된 논리적 섹터에 대한 할당 정보를 유지하는 리스트 및 상기 데이터에 대해 최초 할당된 논리적 섹터와 상기 새로운 논리적 섹터간의 맵핑 정보를 유지하는 파일 맵핑 테이블을 포함할 수 있다.According to an aspect of the present invention, the file map includes a list that maintains allocation information about logical sectors allocated for data among the logical sectors, and mapping information between the first logical sector allocated to the data and the new logical sector. It can contain a file mapping table to maintain.

본 발명의 일실시예에 따른 기억 장치는 덮어쓰기 시 수정된 데이터를 반영하기 위한 새로운 논리적 섹터를 할당하는 할당부를 포함한다.The storage device according to an embodiment of the present invention includes an allocator for allocating a new logical sector for reflecting modified data when overwritten.

본 발명의 일실시예에 따른 덮어쓰기 방법은 덮어쓰기 시 수정된 데이터에 대해 새로운 논리적 섹터를 할당하는 단계, 상기 새로운 논리적 섹터를 할당된 논리적 섹터를 관리하는 리스트에 반영하는 단계, 상기 수정된 데이터에 대해 최초로 할당된 논리적 섹터 및 상기 새로운 논리적 섹터에 대한 맵핑 정보를 파일 맵핑 테이블에 추가하는 단계 및 상기 수정된 데이터를 상기 새로운 논리적 섹터에 대응하는 물리적 페이지에 저장하는 단계를 포함한다.An overwriting method according to an embodiment of the present invention may include allocating a new logical sector to modified data when overwriting, reflecting the new logical sector to a list managing the allocated logical sector, and the modified data. And adding mapping information for the first logical sector and the mapping information for the new logical sector to the file mapping table, and storing the modified data in a physical page corresponding to the new logical sector.

본 발명에 따르면, 덮어쓰기 시, 새로운 논리적 섹터를 할당받아 수정된 데이터를 반영하여 통해 블록 복사의 수를 현저히 줄임으로써, 쓰기 연산과 소거 연산의 횟수를 줄이고, 이를 통해 성능을 향상시키고 수명을 증가시킬 수 있다.According to the present invention, when overwriting, a new logical sector is allocated and the modified data is reflected to significantly reduce the number of block copies, thereby reducing the number of write operations and erase operations, thereby improving performance and increasing lifetime. You can.

본 발명에 따르면, 파일 시스템을 수정하여 블록 맵핑과 하이브리드 맵핑이 마치 섹터 맵핑처럼 동작하도록 함으로써 섹터 맵핑이 많은 메인 메모리 사용량을 요구하던 문제점을 해결할 수 있다.According to the present invention, it is possible to solve the problem that sector mapping requires a large amount of main memory by modifying the file system so that block mapping and hybrid mapping behave like sector mapping.

본 발명에 따르면, 대부분의 플래시 메모리에서 사용되는 FTL(flash translation layer)에 바로 적용 가능하여 LFS(Log-structured File System)에 비해 높은 범용성을 갖는 기억 장치 및 덮어쓰기 방법을 제공할 수 있다.According to the present invention, the present invention can be directly applied to a flash translation layer (FTL) used in most flash memories, thereby providing a memory device and an overwriting method having higher generality than a Log-structured File System (LFS).

이하 첨부된 도면을 참조하여 본 발명에 따른 다양한 실시예를 상세히 설명하기로 한다.Hereinafter, various embodiments of the present disclosure will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일실시예에 있어서, 덮어쓰기 시 새로운 논리적 섹터를 할당하는 파일 시스템을 설명하기 위한 도면이다. 여기서, 파일 시스템(100)은 도 1 에 도시된 바와 같이 제1 기억영역(101), 제2 기억영역(102) 및 제3 기억영역(103)을 포함한다.1 is a diagram illustrating a file system for allocating a new logical sector when overwriting in an embodiment of the present invention. Here, the file system 100 includes a first storage area 101, a second storage area 102, and a third storage area 103 as shown in FIG. 1.

제1 기억영역(101)은 전체 논리적 섹터 각각에 대한 할당 여부 및 상기 전체 논리적 섹터의 할당 순서에 대한 정보를 유지하고, 제2 기억영역(102)은 상기 논리적 섹터 중 데이터에 대해 할당된 논리적 섹터에 대한 할당 정보를 유지한다. 또한, 제3 기억영역(103)은 상기 데이터에 대해 최초 할당된 논리적 섹터와 상기 데이터에 대한 덮어쓰기 시 새로 할당되는 논리적 섹터간의 맵핑 정보를 유지한다.The first storage area 101 maintains information on whether all of the logical sectors are allocated and the order of allocation of the entire logical sectors, and the second storage area 102 allocates logical sectors allocated to data among the logical sectors. Maintain allocation information for. In addition, the third storage area 103 maintains mapping information between a logical sector initially allocated to the data and a logical sector newly allocated when the data is overwritten.

이때, 파일 시스템(100)은 상기 데이터의 덮어쓰기 시 제1 기억영역(101)에 기초하여 상기 데이터를 반영하는 새로운 논리적 섹터(104)를 할당하고, 새로운 논리적 섹터(104)에 해당하는 정보를 제2 기억영역(102) 및 제3 기억영역(103)에 반영한다. 여기서, 새로운 논리적 섹터(104)에 해당하는 정보는 새로운 논리적 섹터(104)가 할당되었음을 제2 기억영역(102)에 반영하기 위한 할당 정보 및 상기 데이터에 대해 최초 할당된 논리적 섹터와 새로운 논리적 섹터(104)간의 맵핑 정보를 제3 기억영역(103)에 반영하기 위한 맵핑 정보를 포함할 수 있다.At this time, the file system 100 allocates a new logical sector 104 reflecting the data based on the first storage area 101 and overwrites the information corresponding to the new logical sector 104 when the data is overwritten. Reflected in the second memory area 102 and the third memory area 103. In this case, the information corresponding to the new logical sector 104 is allocated to reflect the second logical area 102 that the new logical sector 104 has been allocated, the logical sector initially allocated to the data and the new logical sector ( Mapping information for reflecting the mapping information between the 104 and the third storage area 103 may be included.

도 2는 제1 기억영역의 정보에 기초하여 새로운 논리적 섹터를 할당받는 과정을 설명하기 위한 일례이다. 도 1을 통해 설명한 제1 기억영역(101)은 도 2에 도시된 바와 같이 비트맵(210 및 220)의 형태로 전체 논리적 섹터 각각에 대한 할당 여부에 대한 정보를 유지할 수 있다.2 illustrates an example of a process of allocating a new logical sector based on information of a first storage area. As illustrated in FIG. 2, the first storage area 101 described with reference to FIG. 1 may maintain information on whether all logical sectors are allocated to each of the logical sectors in the form of bitmaps 210 and 220.

이때, 도 2의 일례에서 비트 '1'은 해당하는 논리적 섹터가 임의의 데이터에 대해 할당되었음을 나타내고, 비트 '0'은 해당하는 논리적 섹터가 할당되지 않았음 을 나타낸다. 또한, 제1 기억영역(101)은 비트맵(210 및 220)의 인덱스에 따라 순서적으로 증가하는 포인터(211 및 221)를 통해 현재 할당될 논리적 섹터에 대한 정보인 할당 순서에 대한 정보를 유지할 수 있다.At this point, in the example of FIG. 2, bit '1' indicates that a corresponding logical sector has been allocated for arbitrary data, and bit '0' indicates that a corresponding logical sector has not been allocated. In addition, the first storage area 101 maintains information on the allocation order, which is information on the logical sector to be currently allocated, through the pointers 211 and 221 which increase in order according to the indices of the bitmaps 210 and 220. Can be.

즉, 데이터에 대한 덮어쓰기 시 파일 시스템(100)은 비트맵(210)의 포인터(211)를 통해 새로운 논리적 섹터(104)를 할당받을 수 있다. 이때, 파일 시스템(100)은 비트맵(210)과 같이 표현되는 제1 기억영역(101)을 비트맵(220)과 같이 수정할 수 있다. 즉, 포인터(211)가 가리키는 비트 '0'을 비트 '1'로 수정하여 새로운 논리적 섹터(104)가 할당되었음을 표시하고, 포인터(211)가 다음 비트를 가리키도록 포인터(211)를 비트맵(220)의 포인터(221)와 같이 수정할 수 있다.That is, when overwriting data, the file system 100 may be allocated a new logical sector 104 through the pointer 211 of the bitmap 210. In this case, the file system 100 may modify the first storage area 101, which is represented as the bitmap 210, as in the bitmap 220. That is, the bit '0' pointed to by the pointer 211 is modified to bit '1' to indicate that a new logical sector 104 has been allocated, and the pointer 211 is bitmap so that the pointer 211 points to the next bit. It can be modified like the pointer 221 of 220.

도 3은 제2 기억영역에 할당 정보를 반영하는 과정을 설명하기 위한 일례이다. 도 1을 통해 설명한 제2 기억영역(102)은 도 3에 도시된 바와 같이 리스트(310 내지 330)의 형태로 할당된 논리적 섹터에 대한 할당 정보를 유지할 수 있다.3 is an example for explaining a process of reflecting allocation information in a second storage area. As illustrated in FIG. 3, the second memory area 102 described with reference to FIG. 1 may maintain allocation information on logical sectors allocated in the form of lists 310 to 330.

여기서, 리스트(310)는 현재 제2 기억영역(102)에서 전체 논리적 섹터 중 할당된 논리적 섹터들에 대한 할당 정보를 유지하는 모습을 나타낸다. 이때, 리스트(310)의 논리적 섹터 '3'(311)에 해당하는 데이터에 대한 수정이 발생하는 경우 파일 시스템(100)은 할당된 새로운 논리적 섹터(104)에 대한 할당 정보를 리스트(310)에 반영하여 리스트(320)와 같이 수정할 수 있다. 즉, 리스트(320)는 논리적 섹터 '3'(311) 대신 논리적 섹터 '9'(321)가 추가된 제2 기억영역(102)을 나타낼 수 있다.Here, the list 310 represents a state in which allocation information about allocated logical sectors among all logical sectors is currently maintained in the second storage area 102. In this case, when modification is made to data corresponding to logical sector '3' 311 of the list 310, the file system 100 may allocate allocation information about the new logical sector 104 allocated to the list 310. It can be reflected and modified as in the list 320. That is, the list 320 may represent the second storage area 102 in which the logical sector '9' 321 is added instead of the logical sector '3' 311.

또한, 리스트(320)에서 논리적 섹터 '8'(332)에 해당하는 데이터가 수정되는 경우, 파일 시스템(100)은 논리적 섹터 '8'(332) 대신 할당되는 다른 논리적 섹터를 리스트(320)에 반영하여 리스트(330)와 같이 수정할 수 있다. 즉, 리스트(330)는 논리적 섹터 '8'(332) 대신 논리적 섹터 '11'(331)가 반영된 제2 기억영역(102)을 나타낼 수 있다.In addition, when data corresponding to logical sector '8' 332 in the list 320 is modified, the file system 100 may add another logical sector to the list 320 that is allocated instead of the logical sector '8' 332. It can be reflected and modified as in the list 330. That is, the list 330 may represent the second storage area 102 in which the logical sector '11' 331 is reflected instead of the logical sector '8' 332.

도 4는 제3 기억영역에 맵핑 정보를 반영하는 과정을 설명하기 위한 일례이다. 여기서, 도 1을 통해 설명한 제3 기억영역(103)은 도 4에 도시된 바와 같이 파일 맵핑 테이블(410 내지 430)의 형태로 데이터에 대해 최초 할당된 논리적 섹터와 상기 데이터에 대한 덮어쓰기 시 새로 할당되는 논리적 섹터간의 맵핑 정보를 유지할 수 있다. 파일 맵핑 테이블(410)에서 좌측 열(411)은 상기 최초 할당된 논리적 섹터를, 우측 열(412)은 상기 새로 할당되는 논리적 섹터인 새로운 논리적 섹터(104)를 각각 나타낼 수 있다.4 is an example for explaining a process of reflecting mapping information in a third storage area. Herein, the third storage area 103 described with reference to FIG. 1 is newly created when the logical sector first allocated to the data in the form of the file mapping tables 410 to 430 and the overwriting of the data as shown in FIG. Mapping information between logical sectors to be allocated can be maintained. In the file mapping table 410, the left column 411 may represent the first allocated logical sector, and the right column 412 may represent the new logical sector 104 that is the newly allocated logical sector.

이때, 논리적 섹터 '3'에 해당하는 데이터가 수정되어 수정된 데이터에 대해 새로운 논리적 섹터(104)로서 논리적 섹터 '9'가 할당되는 경우, 제3 기억영역(103)은 파일 맵핑 테이블(410)에서 파일 맵핑 테이블(420)와 같이 수정될 수 있다. 이후, 논리적 섹터 '8'에 해당하는 데이터가 수정되어 수정된 데이터에 대해 새로운 논리적 섹터(104)로서 논리적 섹터 '11'이 할당되는 경우, 제3 기억영역(103)은 파일 맵핑 테이블(420)에서 파일 맵핑 테이블(430)와 같이 수정될 수 있다.In this case, when the data corresponding to the logical sector '3' is modified and the logical sector '9' is allocated as the new logical sector 104 to the modified data, the third storage area 103 is the file mapping table 410. In the file mapping table 420. Then, when the data corresponding to the logical sector '8' is modified so that the logical sector '11' is allocated as the new logical sector 104 to the modified data, the third storage area 103 is the file mapping table 420. In the file mapping table 430.

이와 같이, 본 발명의 일실시예에 따른 파일 시스템은 플래시 메모리와 같은 기억 장치에 적용될 수 있다. 플래시 메모리는 특성상 데이터의 직접 갱신이 불가능하며, 새로운 페이지를 할당하여 수정된 데이터를 반영한다. 그러나 기존의 파일 시스템은 데이터를 저장하기 위해 한 번 할당받은 논리적 섹터를 절대 변경하지 않아 맵핑을 유지하기 위한 블록 복사가 빈번히 발생한다.As such, the file system according to an embodiment of the present invention may be applied to a storage device such as a flash memory. The flash memory cannot directly update data, and allocates a new page to reflect the modified data. However, existing file systems never change the logical sector once allocated to store data, so block copying to maintain mapping occurs frequently.

따라서, 본 발명의 일실시예에 따른 파일 시스템을 플래시 메모리에 적용하는 경우, 덮어쓰기 시에 새로운 논리적 섹터를 할당받아 수정된 데이터를 반영하여 통해 블록 복사의 수를 현저히 줄임으로써, 쓰기 연산과 소거 연산의 횟수를 줄이고, 이를 통해 성능을 향상시키고 수명을 증가시킬 수 있다. 또한, 상기 파일 시스템을 수정하여 블록 맵핑과 하이브리드 맵핑이 마치 섹터 맵핑처럼 동작하도록 함으로써 섹터 맵핑이 많은 메인 메모리 사용량을 요구하던 문제점을 해결할 수 있다. 또한, 본 발명의 일실시예에 파일 시스템은 대부분의 플래시 메모리에서 사용되는 FTL(flash translation layer)에 바로 적용 가능하여 LFS(Log-structured File System)에 비해 높은 범용성을 가질 수 있다.Therefore, when the file system according to an embodiment of the present invention is applied to a flash memory, a new logical sector is allocated during overwriting, and the number of block copies is significantly reduced by reflecting the modified data, thereby writing and erasing. Reduce the number of operations, which can improve performance and increase lifetime. In addition, by modifying the file system so that block mapping and hybrid mapping behave like sector mapping, a problem in which sector mapping requires a large amount of main memory usage can be solved. In addition, in one embodiment of the present invention, the file system may be directly applied to a flash translation layer (FTL) used in most flash memories, and thus may have high versatility compared to a log-structured file system (LFS).

도 5는 본 발명의 일실시예에 있어서, 기억 장치의 내부 구성을 설명하기 위한 블록도이다. 여기서, 기억 장치(500)는 도 5에 도시된 바와 같이 할당부(501), 반영부(502) 및 저장부(503)를 포함한다.5 is a block diagram illustrating an internal configuration of a memory device according to an embodiment of the present invention. Here, the memory device 500 includes an allocation unit 501, a reflecting unit 502, and a storage unit 503 as shown in FIG. 5.

할당부(501)는 데이터의 덮어쓰기 시 할당 맵에 기초하여 새로운 논리적 섹터를 할당한다. 여기서, 상기 할당 맵은 전체 논리적 섹터 각각에 대한 할당 여부 및 상기 전체 논리적 섹터의 할당 순서에 대한 정보를 유지할 수 있다. 이때, 상기 전체 논리적 섹터 각각은 비트맵의 형태로 상기 할당 맵에 유지될 수 있고, 상 기 비트맵은 바이너리 형태의 데이터를 통해 상기 전체 논리적 섹터 각각에 대한 할당 여부가 표현될 수 있다. 또한, 상기 할당 순서는 데이터에 대해 할당되지 않은 논리적 섹터를 순차적으로 선택하는 순서를 포함할 수 있다. 즉, 할당부(501)는 상기 할당 맵에서 상기 할당 순서에 따라 아직 다른 데이터에 대해 할당되지 않은 논리적 섹터를 선택하여 상기 새로운 논리적 섹터로서 할당할 수 있다.The allocator 501 allocates a new logical sector based on an allocation map when data is overwritten. Here, the allocation map may maintain information about whether to allocate each of the entire logical sectors and the order of allocation of the entire logical sectors. In this case, each of the entire logical sectors may be maintained in the allocation map in the form of a bitmap, and the bitmap may represent whether to allocate each of the entire logical sectors through binary data. Further, the allocation order may include an order of sequentially selecting logical sectors that are not allocated for data. That is, the allocator 501 may select a logical sector that is not yet allocated to other data according to the allocation order in the allocation map and allocate the logical sector as the new logical sector.

반영부(502)는 상기 새로운 논리적 섹터에 대한 정보를 파일 맵에 반영한다. 여기서, 상기 파일 맵은 상기 논리적 섹터 중 데이터에 대해 할당된 논리적 섹터에 대한 할당 정보를 유지하는 리스트 및 상기 데이터에 대해 최초 할당된 논리적 섹터와 상기 새로운 논리적 섹터간의 맵핑 정보를 유지하는 파일 맵핑 테이블을 포함할 수 있다. 이때, 반영부(502)는 상기 덮어쓰기 시 할당되는 상기 새로운 논리적 섹터에 대한 상기 할당 정보 및 상기 맵핑 정보를 상기 리스트 및 상기 파일 맵핑 테이블에 각각 반영할 수 있다. 즉, 반영부(502)는 덮어쓰기에 따라 상기 새로운 논리적 섹터가 할당된 경우, 상기 새로운 논리적 섹터가 할당되었음을 상기 리스트에 반영하고, 상기 데이터에 대해 최초 할당된 논리적 섹터와 상기 새로운 논리적 섹터를 서로 연관되었음을 상기 파일 맵핑 테이블에 반영한다.The reflecting unit 502 reflects the information about the new logical sector in the file map. The file map may include a list that holds allocation information for logical sectors allocated to data among the logical sectors, and a file mapping table for retaining mapping information between a logical sector initially allocated to the data and the new logical sector. It may include. In this case, the reflecting unit 502 may reflect the allocation information and the mapping information for the new logical sector allocated during the overwriting to the list and the file mapping table, respectively. That is, when the new logical sector is allocated according to the overwriting, the reflecting unit 502 reflects on the list that the new logical sector has been allocated, and the logical sector initially allocated to the data and the new logical sector are mutually different. Reflect the association in the file mapping table.

여기서, 상기 파일 맵핑 테이블은 다음과 같은 이유로 사용될 수 있다. 즉, 파일 시스템을 기반으로 동작하는 여러 응용 프로그램과 인덱스에서는 대부분 논리적 식별자를 사용한다. 일반적으로 상기 논리적 식별자는 해당 데이터가 저장된 논리적 섹터 번호와 섹터 내에서의 위치로 결정된다. 그러나, 기억 장치(500)에서는 덮어쓰기에 따른 데이터의 수정 시, 새로운 논리적 섹터를 할당받기 때문에 상 기 논리적 식별자가 변경되게 된다. 상기 논리적 식별자의 변경은 여러 응용 프로그램과 인덱스에서 해당 데이터의 논리적 식별자를 변경하여야 하는 매우 큰 오버헤드를 유발할 수 있다. 따라서, 기억 장치(500)에서는 상기 파일 맵에 별도의 파일 맵핑 테이블을 둠으로써 상기 논리적 식별자의 변경을 방지할 수 있다. 이는, 도 1 내지 도 4를 통해 설명한 파일 시스템(100)에서 제3 기억영역(103)을 포함하여 논리적 섹터간의 맵핑 정보를 유지하는 이유와 동일하다.Here, the file mapping table can be used for the following reasons. In other words, many applications and indexes that run on the basis of file systems use logical identifiers. In general, the logical identifier is determined by the logical sector number where the data is stored and the location within the sector. However, in the memory device 500, when a data is modified due to overwriting, a new logical sector is allocated, so that the logical identifier is changed. The change of the logical identifier may cause a very large overhead of changing the logical identifier of the corresponding data in various applications and indexes. Therefore, the memory device 500 may prevent the change of the logical identifier by providing a separate file mapping table in the file map. This is the same as the reason for maintaining mapping information between logical sectors including the third storage area 103 in the file system 100 described with reference to FIGS. 1 to 4.

저장부(503)는 상기 새로운 논리적 섹터에 대응하는 물리적 페이지에 상기 덮어쓰기에 해당하는 데이터를 저장한다. 도 6은 논리적 섹터에 대응하는 물리적 페이지에 데이터를 저장하는 과정을 설명하기 위한 일례이다. 여기서는, 설명의 편의를 위해 기억 장치(500)가 4개의 블록으로 구성되며, 하나의 블록은 4개의 페이지로 이루어진 플래시 메모리에 기반한 일례를 통해 상기 데이터를 저장하는 과정을 설명한다. 만약, 상기 새로운 논리적 섹터가 논리적 섹터 '9'(601)인 경우, 저장부(503)는 우선 논리적 섹터의 순차인 숫자 '9'에 기초하여 상기 데이터를 저장하기 위한 페이지를 결정할 수 있다. 예를 들어, 상기 플래시 메모리는 4개의 블록(602 내지 605)으로 구성되어 있기 때문에 논리적 블록 순차(606)는 '9/4 = 2'와 같이 계산될 수 있고, 상기 '2'에 대응하는 물리적 블록 순차(607)는 도 6에 도시된 바와 같이 '1'이다. 즉, 두 번째 블록(603)에 상기 데이터가 저장됨을 확인할 수 있다. 두 번째 블록(603) 내에서의 위치(offset)는 '9%4 = 1'와 같이 계산될 수 있다. 따라서, 상기 데이터는 두 번째 블록(603)이 포함하는 4 개의 페이지 중 두 번째 페이지(608)에 저장됨을 확인할 수 있다.The storage unit 503 stores the data corresponding to the overwriting in the physical page corresponding to the new logical sector. 6 illustrates an example of a process of storing data in a physical page corresponding to a logical sector. Here, for convenience of explanation, the memory device 500 is configured by four blocks, and one block is a process of storing the data through an example based on four pages of flash memory. If the new logical sector is a logical sector '9' 601, the storage unit 503 may first determine a page for storing the data based on the number '9' which is a sequence of logical sectors. For example, since the flash memory is composed of four blocks 602 to 605, the logical block sequence 606 may be calculated as '9/4 = 2', and the physical corresponding to '2'. Block sequence 607 is '1' as shown in FIG. That is, it can be confirmed that the data is stored in the second block 603. The offset within the second block 603 may be calculated as '9% 4 = 1'. Accordingly, it can be seen that the data is stored in the second page 608 of the four pages included in the second block 603.

도 7은 본 발명의 일실시예에 있어서, 덮어쓰기 방법을 설명하기 위한 흐름도이다.7 is a flowchart illustrating an overwriting method according to an embodiment of the present invention.

단계(S701)에서 기억 장치는 덮어쓰기 시 수정된 데이터에 대해 새로운 논리적 섹터를 할당한다. 이때, 상기 기억 장치는 전체 논리적 섹터 각각에 대한 할당 여부 및 상기 전체 논리적 섹터의 할당 순서에 기초하여 상기 새로운 논리적 섹터를 할당할 수 있다. 여기서, 상기 할당 여부는 비트맵의 형태로 유지될 수 있고, 상기 비트맵은 바이너리 형태의 데이터를 통해 상기 전체 논리적 섹터 각각에 대한 할당 여부가 표현될 수 있다. 또한, 상기 할당 순서는 데이터에 대해 할당되지 않은 논리적 섹터를 순차적으로 선택하는 순서를 포함할 수 있다. 즉, 상기 기억 장치는 상기 할당 맵에서 상기 할당 순서에 따라 아직 다른 데이터에 대해 할당되지 않은 논리적 섹터를 선택하여 상기 새로운 논리적 섹터로서 할당할 수 있다.In step S701, the storage device allocates a new logical sector for the modified data upon overwriting. In this case, the memory device may allocate the new logical sector based on whether all logical sectors are allocated to each other and the order of allocation of the entire logical sectors. The allocation may be maintained in the form of a bitmap, and whether the allocation of each of the entire logical sectors may be expressed through binary data. Further, the allocation order may include an order of sequentially selecting logical sectors that are not allocated for data. That is, the storage device may select a logical sector that has not yet been allocated to other data according to the allocation order in the allocation map and allocate it as the new logical sector.

단계(S702)에서 상기 기억 장치는 상기 새로운 논리적 섹터를 할당된 논리적 섹터를 관리하는 리스트에 반영한다. 즉, 상기 기억 장치는 덮어쓰기에 따라 상기 새로운 논리적 섹터가 할당된 경우, 상기 새로운 논리적 섹터가 할당되었음을 상기 리스트에 반영할 수 있다.In step S702, the storage device reflects the new logical sector in the list for managing the allocated logical sector. That is, when the new logical sector is allocated according to the overwriting, the memory device may reflect on the list that the new logical sector is allocated.

단계(S703)에서 상기 기억 장치는 상기 수정된 데이터에 대해 최초로 할당된 논리적 섹터 및 상기 새로운 논리적 섹터에 대한 맵핑 정보를 파일 맵핑 테이블에 추가한다. 여기서, 상기 파일 맵핑 테이블은 임의의 데이터에 대해 최초로 할당된 논리적 섹터 및 덮어쓰기 시 할당되는 새로운 논리적 섹터에 대한 맵핑 정보를 유지할 수 있다.In step S703, the storage device adds the mapping information for the new logical sector and the logical sector initially allocated for the modified data to the file mapping table. Here, the file mapping table may maintain mapping information about a logical sector first allocated to arbitrary data and a new logical sector allocated when overwritten.

단계(S704)에서 상기 기억 장치는 상기 수정된 데이터를 상기 새로운 논리적 섹터에 대응하는 물리적 페이지에 저장한다. 상기 수정된 데이터를 상기 물리적 페이지에 저장하는 방법에 대해서는 도 6을 통해 자세히 설명하였기 때문에 반복적인 설명은 생략한다.In step S704, the storage device stores the modified data in a physical page corresponding to the new logical sector. Since the modified data is stored in detail in FIG. 6, the repeated description thereof will be omitted.

도 8은 본 발명의 다른 실시예에 있어서, 기억 장치의 내부 구성을 설명하기 위한 블록도이다. 여기서, 기억 장치(800)는 도 8에 도시된 바와 같이 할당부(801), 할당 정보 유지부(802), 맵핑 정보 유지부(803) 및 저장부(804)를 포함한다.8 is a block diagram for explaining an internal configuration of a storage device according to another embodiment of the present invention. Here, the storage device 800 includes an allocation unit 801, an allocation information holding unit 802, a mapping information holding unit 803, and a storage unit 804 as shown in FIG.

할당부(801)는 덮어쓰기 시 수정된 데이터를 반영하기 위한 새로운 논리적 섹터를 할당한다. 이때, 할당부(801)는 전체 논리적 섹터 각각에 대한 할당 여부 및 상기 전체 논리적 섹터의 할당 순서에 기초하여 상기 수정된 데이터를 반영하기 위한 상기 새로운 논리적 섹터를 할당할 수 있다. 여기서, 상기 할당 여부는 비트맵의 형태로 유지될 수 있고, 상기 비트맵은 바이너리 형태의 데이터를 통해 상기 전체 논리적 섹터 각각에 대한 할당 여부가 표현될 수 있다. 또한, 상기 할당 순서는 데이터에 대해 할당되지 않은 논리적 섹터를 순차적으로 선택하는 순서를 포함할 수 있다.The allocator 801 allocates a new logical sector to reflect the modified data at the time of overwriting. In this case, the allocator 801 may allocate the new logical sector for reflecting the modified data based on whether all of the logical sectors are allocated and the order of allocation of the entire logical sectors. The allocation may be maintained in the form of a bitmap, and whether the allocation of each of the entire logical sectors may be expressed through binary data. Further, the allocation order may include an order of sequentially selecting logical sectors that are not allocated for data.

할당 정보 유지부(802)는 할당된 논리적 섹터에 대한 할당 정보를 리스트로 유지한다. 이때, 기억 장치(800)는 상기 새로운 논리적 섹터가 할당되면 상기 새로운 논리적 섹터에 대한 할당 정보를 할당 정보 유지부(802)에 추가할 수 있다. 즉, 기억 장치(800)는 덮어쓰기에 따라 상기 새로운 논리적 섹터가 할당된 경우, 상기 새로운 논리적 섹터가 할당되었음을 상기 리스트에 반영할 수 있다.The allocation information holding unit 802 maintains allocation information on the allocated logical sectors in a list. In this case, when the new logical sector is allocated, the memory device 800 may add allocation information for the new logical sector to the allocation information holding unit 802. That is, when the new logical sector is allocated according to the overwriting, the memory device 800 may reflect that the new logical sector is allocated to the list.

맵핑 정보 유지부(803)는 상기 수정된 데이터에 대해 최초로 할당된 논리적 섹터 및 상기 새로운 논리적 섹터간의 맵핑 정보를 유지한다. 여기서, 기억 장치(800)는 상기 새로운 논리적 섹터가 할당되면 상기 맵핑 정보를 맵핑 정보 유지부(803)에 추가할 수 있다.The mapping information holding unit 803 maintains mapping information between the first logical sector allocated to the modified data and the new logical sector. Here, when the new logical sector is allocated, the memory device 800 may add the mapping information to the mapping information holding unit 803.

저장부(804)는 상기 새로운 논리적 섹터에 대응하는 물리적 페이지에 상기 수정된 데이터를 저장한다. 상기 수정된 데이터를 상기 물리적 페이지에 저장하는 방법에 대해서는 도 6을 통해 자세히 설명하였기 때문에 반복적인 설명은 생략한다.The storage unit 804 stores the modified data in the physical page corresponding to the new logical sector. Since the modified data is stored in detail in FIG. 6, the repeated description thereof will be omitted.

이와 같이, 본 발명의 일실시예에 따른 기억 장치 또는 덮어쓰기 방법을 이용하면, 덮어쓰기 시에 새로운 논리적 섹터를 할당받아 수정된 데이터를 반영하여 통해 블록 복사의 수를 현저히 줄임으로써, 쓰기 연산과 소거 연산의 횟수를 줄이고, 이를 통해 성능을 향상시키고 수명을 증가시킬 수 있고, 상기 파일 시스템을 수정하여 블록 맵핑과 하이브리드 맵핑이 마치 섹터 맵핑처럼 동작하도록 함으로써 섹터 맵핑이 많은 메인 메모리 사용량을 요구하던 문제점을 해결할 수 있다.As described above, when the memory device or the overwrite method according to the embodiment of the present invention is used, a new logical sector is allocated during overwriting, and the number of block copies is significantly reduced by reflecting the modified data, thereby reducing the number of write operations. Sector mapping requires a lot of main memory usage by reducing the number of erase operations, thereby improving performance and increasing lifetime, and modifying the file system so that block mapping and hybrid mapping behave like sector mapping. Can be solved.

본 발명에 따른 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 파일 데이터, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되 어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(Floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Embodiments according to the present invention can be implemented in the form of program instructions that can be executed by various computer means can be recorded on a computer readable medium. The computer readable medium may include program instructions, file data, 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 specific embodiments such as specific components and the like. For those skilled in the art to which the present invention pertains, various modifications and variations are possible.

따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention should not be limited to the described embodiments, and all of the equivalents or equivalents of the claims as well as the claims to be described later will belong to the scope of the present invention. .

도 1은 본 발명의 일실시예에 있어서, 덮어쓰기 시 새로운 논리적 섹터를 할당하는 파일 시스템을 설명하기 위한 도면이다.1 is a diagram illustrating a file system for allocating a new logical sector when overwriting in an embodiment of the present invention.

도 2는 제1 기억영역의 정보에 기초하여 새로운 논리적 섹터를 할당받는 과정을 설명하기 위한 일례이다.2 illustrates an example of a process of allocating a new logical sector based on information of a first storage area.

도 3은 제2 기억영역에 할당 정보를 반영하는 과정을 설명하기 위한 일례이다.3 is an example for explaining a process of reflecting allocation information in a second storage area.

도 4는 제3 기억영역에 맵핑 정보를 반영하는 과정을 설명하기 위한 일례이다.4 is an example for explaining a process of reflecting mapping information in a third storage area.

도 5는 본 발명의 일실시예에 있어서, 기억 장치의 내부 구성을 설명하기 위한 블록도이다.5 is a block diagram illustrating an internal configuration of a memory device according to an embodiment of the present invention.

도 6은 논리적 섹터에 대응하는 물리적 페이지에 데이터를 저장하는 과정을 설명하기 위한 일례이다.6 illustrates an example of a process of storing data in a physical page corresponding to a logical sector.

도 7은 본 발명의 일실시예에 있어서, 덮어쓰기 방법을 설명하기 위한 흐름도이다.7 is a flowchart illustrating an overwriting method according to an embodiment of the present invention.

도 8은 본 발명의 다른 실시예에 있어서, 기억 장치의 내부 구성을 설명하기 위한 블록도이다.8 is a block diagram for explaining an internal configuration of a storage device according to another embodiment of the present invention.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

100: 파일 시스템100: file system

500: 기억 장치500: memory

501: 할당부501: allocation unit

502: 반영부502: reflecting unit

503: 저장부503: storage unit

Claims (17)

전체 논리적 섹터 각각에 대한 할당 여부 및 상기 전체 논리적 섹터의 할당 순서에 대한 정보를 유지하는 제1 기억영역;A first storage area for holding information on whether to allocate each of the entire logical sectors and the order of allocation of the entire logical sectors; 상기 논리적 섹터 중 데이터에 대해 할당된 논리적 섹터에 대한 할당 정보를 유지하는 제2 기억영역; 및A second storage area for holding allocation information for logical sectors allocated for data among the logical sectors; And 상기 데이터에 대해 최초 할당된 논리적 섹터와 상기 데이터에 대한 덮어쓰기 시 새로 할당되는 논리적 섹터간의 맵핑 정보를 유지하는 제3 기억영역A third storage area for retaining mapping information between a logical sector initially allocated for the data and a newly allocated logical sector when overwriting the data 을 포함하고,Including, 상기 데이터의 덮어쓰기 시 상기 제1 기억영역에 기초하여 상기 데이터를 반영하는 새로운 논리적 섹터를 할당하고, 상기 새로운 논리적 섹터에 해당하는 정보를 상기 제2 기억영역 및 상기 제3 기억영역에 반영하는 파일 시스템을 포함하는 기억장치.A file that allocates a new logical sector reflecting the data based on the first storage area when the data is overwritten, and reflects the information corresponding to the new logical sector in the second storage area and the third storage area. Memory containing the system. 제1항에 있어서,The method of claim 1, 상기 새로운 논리적 섹터에 해당하는 정보는 상기 새로운 논리적 섹터가 할당되었음을 상기 제2 기억영역에 반영하기 위한 할당 정보 및 상기 데이터에 대해 최초 할당된 논리적 섹터와 상기 새로운 논리적 섹터간의 맵핑 정보를 상기 제3 기억영역에 반영하기 위한 맵핑 정보를 포함하는 것을 특징으로 하는 파일 시스템을 포함하는 기억장치.The information corresponding to the new logical sector may include allocation information for reflecting that the new logical sector has been allocated to the second storage area and mapping information between the logical sector initially allocated to the data and the new logical sector. A storage device comprising a file system, characterized in that it contains mapping information for reflection in an area. 데이터의 덮어쓰기 시 할당 맵에 기초하여 새로운 논리적 섹터를 할당하는 할당부;An allocator for allocating a new logical sector based on an allocation map when data is overwritten; 상기 새로운 논리적 섹터에 대한 정보를 파일 맵에 반영하는 반영부; 및A reflecting unit reflecting information on the new logical sector in a file map; And 상기 새로운 논리적 섹터에 대응하는 물리적 페이지에 상기 덮어쓰기에 해당하는 데이터를 저장하는 저장부A storage unit which stores data corresponding to the overwriting in a physical page corresponding to the new logical sector 를 포함하고,Including, 상기 파일 맵은 상기 논리적 섹터 중 데이터에 대해 할당된 논리적 섹터에 대한 할당 정보를 유지하는 리스트 및 상기 데이터에 대해 최초 할당된 논리적 섹터와 상기 새로운 논리적 섹터간의 맵핑 정보를 유지하는 파일 맵핑 테이블을 포함하는 것을 특징으로 하는 기억 장치.The file map includes a list that holds allocation information for logical sectors allocated for data among the logical sectors, and a file mapping table for retaining mapping information between the initially allocated logical sectors and the new logical sectors for the data. Memory device. 제3항에 있어서,The method of claim 3, 상기 할당 맵은 전체 논리적 섹터 각각에 대한 할당 여부 및 상기 전체 논리적 섹터의 할당 순서에 대한 정보를 유지하는 것을 특징으로 하는 기억 장치.And the allocation map maintains information on whether each of the entire logical sectors is allocated and the order of allocation of the entire logical sectors. 제4항에 있어서,The method of claim 4, wherein 상기 전체 논리적 섹터 각각은 비트맵의 형태로 상기 할당 맵에 유지되고,Each of the entire logical sectors is maintained in the allocation map in the form of a bitmap, 상기 비트맵은 바이너리 형태의 데이터를 통해 상기 전체 논리적 섹터 각각에 대한 할당 여부가 표현되는 것을 특징으로 하는 기억 장치.And whether the bitmap is allocated to each of the entire logical sectors through binary data. 제4항에 있어서,The method of claim 4, wherein 상기 할당 순서는 데이터에 대해 할당되지 않은 논리적 섹터를 순차적으로 선택하는 순서를 포함하는 것을 특징으로 하는 기억 장치.And the allocation order includes sequentially selecting logical sectors that are not allocated for data. 삭제delete 제3항에 있어서,The method of claim 3, 상기 반영부는,The reflecting unit, 상기 덮어쓰기 시 할당되는 상기 새로운 논리적 섹터에 대한 상기 할당 정보 및 상기 맵핑 정보를 상기 리스트 및 상기 파일 맵핑 테이블에 각각 반영하는 것을 특징으로 하는 기억 장치.And the mapping information and the mapping information for the new logical sector allocated at the time of overwriting are reflected to the list and the file mapping table, respectively. 덮어쓰기 시 수정된 데이터를 반영하기 위한 새로운 논리적 섹터를 할당하는 할당부;An allocator for allocating a new logical sector to reflect the modified data upon overwriting; 할당된 논리적 섹터에 대한 할당 정보를 리스트로 유지하는 할당 정보 유지부; 및An allocation information holding unit for holding allocation information on the allocated logical sectors in a list; And 상기 수정된 데이터에 대해 최초로 할당된 논리적 섹터 및 상기 새로운 논리적 섹터간의 맵핑 정보를 유지하는 맵핑 정보 유지부Mapping information holding unit for holding mapping information between the logical sector first allocated to the modified data and the new logical sector 를 포함하는 기억 장치.Memory device comprising a. 제9항에 있어서,10. The method of claim 9, 상기 할당부는,The allocation unit, 전체 논리적 섹터 각각에 대한 할당 여부 및 상기 전체 논리적 섹터의 할당 순서에 기초하여 상기 수정된 데이터를 반영하기 위한 상기 새로운 논리적 섹터를 할당하는 것을 특징으로 하는 기억 장치.And allocating the new logical sector for reflecting the modified data based on whether all logical sectors are allocated or not and the order of all logical sector allocation. 제9항에 있어서,10. The method of claim 9, 상기 새로운 논리적 섹터가 할당되면 상기 새로운 논리적 섹터에 대한 할당 정보를 상기 할당 정보 유지부에 추가하는 기억 장치.And adding allocation information for the new logical sector to the allocation information holding unit when the new logical sector is allocated. 제9항에 있어서,10. The method of claim 9, 상기 새로운 논리적 섹터가 할당되면 상기 맵핑 정보를 상기 맵핑 정보 유지부에 추가하는 기억 장치.And adding the mapping information to the mapping information holding unit when the new logical sector is allocated. 제9항에 있어서,10. The method of claim 9, 상기 새로운 논리적 섹터에 대응하는 물리적 페이지에 상기 수정된 데이터를 저장하는 저장부A storage unit for storing the modified data in a physical page corresponding to the new logical sector 를 더 포함하는 기억 장치.Memory device further comprising. 덮어쓰기 시 수정된 데이터에 대해 새로운 논리적 섹터를 할당하는 단계;Allocating a new logical sector for the modified data upon overwriting; 상기 새로운 논리적 섹터를 할당된 논리적 섹터를 관리하는 리스트에 반영하는 단계;Reflecting the new logical sector in a list managing the allocated logical sectors; 상기 수정된 데이터에 대해 최초로 할당된 논리적 섹터 및 상기 새로운 논리적 섹터에 대한 맵핑 정보를 파일 맵핑 테이블에 추가하는 단계; 및Adding mapping information for the new logical sector and the logical sector initially allocated for the modified data to a file mapping table; And 상기 수정된 데이터를 상기 새로운 논리적 섹터에 대응하는 물리적 페이지에 저장하는 단계Storing the modified data in a physical page corresponding to the new logical sector 를 포함하는 덮어쓰기 방법.Overwrite method comprising a. 제14항에 있어서,The method of claim 14, 덮어쓰기 시 수정된 데이터에 대해 새로운 논리적 섹터를 할당하는 상기 단계는,The step of allocating a new logical sector for the modified data upon overwriting, 전체 논리적 섹터 각각에 대한 할당 여부 및 상기 전체 논리적 섹터의 할당 순서에 기초하여 상기 새로운 논리적 섹터를 할당하는 단계를 포함하는 것을 특징으로 하는 덮어쓰기 방법.And allocating the new logical sectors based on whether all of the logical sectors are allocated, and the allocation order of the entire logical sectors. 제14항에 있어서,The method of claim 14, 상기 파일 맵핑 테이블은 임의의 데이터에 대해 최초로 할당된 논리적 섹터 및 덮어쓰기 시 할당되는 새로운 논리적 섹터에 대한 맵핑 정보를 유지하는 것을 특징으로 하는 덮어쓰기 방법.And the file mapping table maintains mapping information for the first logical sector allocated for any data and the new logical sector allocated for overwriting. 제14항 내지 제16항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.A computer-readable recording medium in which a program for executing the method of any one of claims 14 to 16 is recorded.
KR1020080004049A 2008-01-14 2008-01-14 File system and storage device for effective overrwrite and effective overrwrite method KR100957445B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080004049A KR100957445B1 (en) 2008-01-14 2008-01-14 File system and storage device for effective overrwrite and effective overrwrite method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080004049A KR100957445B1 (en) 2008-01-14 2008-01-14 File system and storage device for effective overrwrite and effective overrwrite method

Publications (2)

Publication Number Publication Date
KR20090078215A KR20090078215A (en) 2009-07-17
KR100957445B1 true KR100957445B1 (en) 2010-05-11

Family

ID=41336386

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080004049A KR100957445B1 (en) 2008-01-14 2008-01-14 File system and storage device for effective overrwrite and effective overrwrite method

Country Status (1)

Country Link
KR (1) KR100957445B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860124A (en) 1996-09-30 1999-01-12 Intel Corporation Method for performing a continuous over-write of a file in nonvolatile memory
KR100809319B1 (en) 2006-09-13 2008-03-05 삼성전자주식회사 Apparatus and method for providing atomicity request of multiple sector write in flash memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860124A (en) 1996-09-30 1999-01-12 Intel Corporation Method for performing a continuous over-write of a file in nonvolatile memory
KR20000048766A (en) * 1996-09-30 2000-07-25 피터 엔. 데트킨 Method for performing a continuous over-write of a file in a nonvolatile memory
KR100809319B1 (en) 2006-09-13 2008-03-05 삼성전자주식회사 Apparatus and method for providing atomicity request of multiple sector write in flash memory

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
논문1:한국정보과학회

Also Published As

Publication number Publication date
KR20090078215A (en) 2009-07-17

Similar Documents

Publication Publication Date Title
CN110678836B (en) Persistent memory for key value storage
US7594067B2 (en) Enhanced data access in a storage device
US8180955B2 (en) Computing systems and methods for managing flash memory device
KR101982251B1 (en) Method for storage devices to achieve low write amplification with low over provision
US7734862B2 (en) Block management for mass storage
US6567307B1 (en) Block management for mass storage
KR100526190B1 (en) Remapping method for flash memory
US7516266B2 (en) System and method capable of sequentially writing data to a flash memory
CN102779096B (en) Page, block and face-based three-dimensional flash memory address mapping method
US20080082729A1 (en) Device driver including a flash memory file system and method thereof and a flash memory device and method thereof
US20190034347A1 (en) Memory addressing
KR20100011698A (en) Solid state storage system for data merging and method of controlling the same
WO2014074449A2 (en) Wear leveling in flash memory devices with trim commands
KR20070060070A (en) Fat analysis for optimized sequential cluster management
KR20100021868A (en) Buffer cache management method for flash memory device
KR20130017748A (en) Memory controller and data management method
KR20100115090A (en) Buffer-aware garbage collection technique for nand flash memory-based storage systems
JP2016051481A (en) Non-transitory computer readable medium, storage device, and data management method
JP4829202B2 (en) Storage device and memory control method
KR100957445B1 (en) File system and storage device for effective overrwrite and effective overrwrite method
KR101020781B1 (en) A method for log management in flash memory-based database systems
US11182286B2 (en) Data storage device and control method for non-volatile memory
CN113127376B (en) Control method, device and equipment for solid state drive
US9361040B1 (en) Systems and methods for data storage management
CN108255437B (en) Data storage device and method

Legal Events

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

Payment date: 20130410

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee