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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing 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
본 발명은 효율적인 덮어쓰기를 위한 파일 시스템 및 기억 장치 그리고 효율적인 덮어쓰기 방법에 관한 것이다.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
제1 기억영역(101)은 전체 논리적 섹터 각각에 대한 할당 여부 및 상기 전체 논리적 섹터의 할당 순서에 대한 정보를 유지하고, 제2 기억영역(102)은 상기 논리적 섹터 중 데이터에 대해 할당된 논리적 섹터에 대한 할당 정보를 유지한다. 또한, 제3 기억영역(103)은 상기 데이터에 대해 최초 할당된 논리적 섹터와 상기 데이터에 대한 덮어쓰기 시 새로 할당되는 논리적 섹터간의 맵핑 정보를 유지한다.The
이때, 파일 시스템(100)은 상기 데이터의 덮어쓰기 시 제1 기억영역(101)에 기초하여 상기 데이터를 반영하는 새로운 논리적 섹터(104)를 할당하고, 새로운 논리적 섹터(104)에 해당하는 정보를 제2 기억영역(102) 및 제3 기억영역(103)에 반영한다. 여기서, 새로운 논리적 섹터(104)에 해당하는 정보는 새로운 논리적 섹터(104)가 할당되었음을 제2 기억영역(102)에 반영하기 위한 할당 정보 및 상기 데이터에 대해 최초 할당된 논리적 섹터와 새로운 논리적 섹터(104)간의 맵핑 정보를 제3 기억영역(103)에 반영하기 위한 맵핑 정보를 포함할 수 있다.At this time, the
도 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
이때, 도 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
즉, 데이터에 대한 덮어쓰기 시 파일 시스템(100)은 비트맵(210)의 포인터(211)를 통해 새로운 논리적 섹터(104)를 할당받을 수 있다. 이때, 파일 시스템(100)은 비트맵(210)과 같이 표현되는 제1 기억영역(101)을 비트맵(220)과 같이 수정할 수 있다. 즉, 포인터(211)가 가리키는 비트 '0'을 비트 '1'로 수정하여 새로운 논리적 섹터(104)가 할당되었음을 표시하고, 포인터(211)가 다음 비트를 가리키도록 포인터(211)를 비트맵(220)의 포인터(221)와 같이 수정할 수 있다.That is, when overwriting data, the
도 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
여기서, 리스트(310)는 현재 제2 기억영역(102)에서 전체 논리적 섹터 중 할당된 논리적 섹터들에 대한 할당 정보를 유지하는 모습을 나타낸다. 이때, 리스트(310)의 논리적 섹터 '3'(311)에 해당하는 데이터에 대한 수정이 발생하는 경우 파일 시스템(100)은 할당된 새로운 논리적 섹터(104)에 대한 할당 정보를 리스트(310)에 반영하여 리스트(320)와 같이 수정할 수 있다. 즉, 리스트(320)는 논리적 섹터 '3'(311) 대신 논리적 섹터 '9'(321)가 추가된 제2 기억영역(102)을 나타낼 수 있다.Here, the
또한, 리스트(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
도 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
이때, 논리적 섹터 '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
이와 같이, 본 발명의 일실시예에 따른 파일 시스템은 플래시 메모리와 같은 기억 장치에 적용될 수 있다. 플래시 메모리는 특성상 데이터의 직접 갱신이 불가능하며, 새로운 페이지를 할당하여 수정된 데이터를 반영한다. 그러나 기존의 파일 시스템은 데이터를 저장하기 위해 한 번 할당받은 논리적 섹터를 절대 변경하지 않아 맵핑을 유지하기 위한 블록 복사가 빈번히 발생한다.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
할당부(501)는 데이터의 덮어쓰기 시 할당 맵에 기초하여 새로운 논리적 섹터를 할당한다. 여기서, 상기 할당 맵은 전체 논리적 섹터 각각에 대한 할당 여부 및 상기 전체 논리적 섹터의 할당 순서에 대한 정보를 유지할 수 있다. 이때, 상기 전체 논리적 섹터 각각은 비트맵의 형태로 상기 할당 맵에 유지될 수 있고, 상 기 비트맵은 바이너리 형태의 데이터를 통해 상기 전체 논리적 섹터 각각에 대한 할당 여부가 표현될 수 있다. 또한, 상기 할당 순서는 데이터에 대해 할당되지 않은 논리적 섹터를 순차적으로 선택하는 순서를 포함할 수 있다. 즉, 할당부(501)는 상기 할당 맵에서 상기 할당 순서에 따라 아직 다른 데이터에 대해 할당되지 않은 논리적 섹터를 선택하여 상기 새로운 논리적 섹터로서 할당할 수 있다.The
반영부(502)는 상기 새로운 논리적 섹터에 대한 정보를 파일 맵에 반영한다. 여기서, 상기 파일 맵은 상기 논리적 섹터 중 데이터에 대해 할당된 논리적 섹터에 대한 할당 정보를 유지하는 리스트 및 상기 데이터에 대해 최초 할당된 논리적 섹터와 상기 새로운 논리적 섹터간의 맵핑 정보를 유지하는 파일 맵핑 테이블을 포함할 수 있다. 이때, 반영부(502)는 상기 덮어쓰기 시 할당되는 상기 새로운 논리적 섹터에 대한 상기 할당 정보 및 상기 맵핑 정보를 상기 리스트 및 상기 파일 맵핑 테이블에 각각 반영할 수 있다. 즉, 반영부(502)는 덮어쓰기에 따라 상기 새로운 논리적 섹터가 할당된 경우, 상기 새로운 논리적 섹터가 할당되었음을 상기 리스트에 반영하고, 상기 데이터에 대해 최초 할당된 논리적 섹터와 상기 새로운 논리적 섹터를 서로 연관되었음을 상기 파일 맵핑 테이블에 반영한다.The reflecting
여기서, 상기 파일 맵핑 테이블은 다음과 같은 이유로 사용될 수 있다. 즉, 파일 시스템을 기반으로 동작하는 여러 응용 프로그램과 인덱스에서는 대부분 논리적 식별자를 사용한다. 일반적으로 상기 논리적 식별자는 해당 데이터가 저장된 논리적 섹터 번호와 섹터 내에서의 위치로 결정된다. 그러나, 기억 장치(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
저장부(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
도 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
할당부(801)는 덮어쓰기 시 수정된 데이터를 반영하기 위한 새로운 논리적 섹터를 할당한다. 이때, 할당부(801)는 전체 논리적 섹터 각각에 대한 할당 여부 및 상기 전체 논리적 섹터의 할당 순서에 기초하여 상기 수정된 데이터를 반영하기 위한 상기 새로운 논리적 섹터를 할당할 수 있다. 여기서, 상기 할당 여부는 비트맵의 형태로 유지될 수 있고, 상기 비트맵은 바이너리 형태의 데이터를 통해 상기 전체 논리적 섹터 각각에 대한 할당 여부가 표현될 수 있다. 또한, 상기 할당 순서는 데이터에 대해 할당되지 않은 논리적 섹터를 순차적으로 선택하는 순서를 포함할 수 있다.The
할당 정보 유지부(802)는 할당된 논리적 섹터에 대한 할당 정보를 리스트로 유지한다. 이때, 기억 장치(800)는 상기 새로운 논리적 섹터가 할당되면 상기 새로운 논리적 섹터에 대한 할당 정보를 할당 정보 유지부(802)에 추가할 수 있다. 즉, 기억 장치(800)는 덮어쓰기에 따라 상기 새로운 논리적 섹터가 할당된 경우, 상기 새로운 논리적 섹터가 할당되었음을 상기 리스트에 반영할 수 있다.The allocation
맵핑 정보 유지부(803)는 상기 수정된 데이터에 대해 최초로 할당된 논리적 섹터 및 상기 새로운 논리적 섹터간의 맵핑 정보를 유지한다. 여기서, 기억 장치(800)는 상기 새로운 논리적 섹터가 할당되면 상기 맵핑 정보를 맵핑 정보 유지부(803)에 추가할 수 있다.The mapping
저장부(804)는 상기 새로운 논리적 섹터에 대응하는 물리적 페이지에 상기 수정된 데이터를 저장한다. 상기 수정된 데이터를 상기 물리적 페이지에 저장하는 방법에 대해서는 도 6을 통해 자세히 설명하였기 때문에 반복적인 설명은 생략한다.The
이와 같이, 본 발명의 일실시예에 따른 기억 장치 또는 덮어쓰기 방법을 이용하면, 덮어쓰기 시에 새로운 논리적 섹터를 할당받아 수정된 데이터를 반영하여 통해 블록 복사의 수를 현저히 줄임으로써, 쓰기 연산과 소거 연산의 횟수를 줄이고, 이를 통해 성능을 향상시키고 수명을 증가시킬 수 있고, 상기 파일 시스템을 수정하여 블록 맵핑과 하이브리드 맵핑이 마치 섹터 맵핑처럼 동작하도록 함으로써 섹터 맵핑이 많은 메인 메모리 사용량을 요구하던 문제점을 해결할 수 있다.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)
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)
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 |
-
2008
- 2008-01-14 KR KR1020080004049A patent/KR100957445B1/en not_active IP Right Cessation
Patent Citations (3)
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)
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 |