KR100987251B1 - Flash memory management method and apparatus for merge operation reduction in a fast algorithm base ftl - Google Patents

Flash memory management method and apparatus for merge operation reduction in a fast algorithm base ftl Download PDF

Info

Publication number
KR100987251B1
KR100987251B1 KR1020080099739A KR20080099739A KR100987251B1 KR 100987251 B1 KR100987251 B1 KR 100987251B1 KR 1020080099739 A KR1020080099739 A KR 1020080099739A KR 20080099739 A KR20080099739 A KR 20080099739A KR 100987251 B1 KR100987251 B1 KR 100987251B1
Authority
KR
South Korea
Prior art keywords
log
block
valid
blocks
operation time
Prior art date
Application number
KR1020080099739A
Other languages
Korean (ko)
Other versions
KR20100040559A (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 KR1020080099739A priority Critical patent/KR100987251B1/en
Publication of KR20100040559A publication Critical patent/KR20100040559A/en
Application granted granted Critical
Publication of KR100987251B1 publication Critical patent/KR100987251B1/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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0684Configuration or reconfiguration with feedback, e.g. presence or absence of unit detected by addressing, overflow detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1727Details of free space management performed by the file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

완전 연관 섹터 변환 기법을 사용하는 플래시 변환 계층에서 합병연산을 줄이기 위한 플래시 메모리 관리 방법 및 장치를 개시한다. 플래시 메모리 관리 방법은, 플래시 메모리에 저장된 데이터의 삭제 또는 갱신 이벤트의 발생을 감지하면, 로그 블록 영역에 로그를 저장할 수 있는 사용 가능한 여유 공간이 존재하는지 확인하는 단계, 확인결과 상기 로그 블록 영역에 사용 가능한 여유 공간이 존재하지 않으면, 로그 블록 최적화의 필요 여부를 확인 하는 단계, 확인 결과 상기 로그 블록 최적화가 필요하면 로그 블록 무효화(LBI: Log Block Invalidation) 연산 시간과 합병(Merge) 연산 시간을 계산하는 단계 및, 상기 LBI 연산 시간이 상기 합병 연산 시간보다 작으면 LBI 연산을 수행하는 단계를 포함한다.Disclosed are a flash memory management method and apparatus for reducing merge operation in a flash translation layer that uses a fully associated sector conversion technique. When the flash memory management method detects the occurrence of a data deletion or update event stored in the flash memory, checking whether there is an available free space for storing a log in the log block area. If there is no free space available, determining whether log block optimization is required, and if the log block optimization is necessary, calculating log block invalidation (LBI) operation time and merging operation time. And performing an LBI operation if the LBI operation time is less than the merge operation time.

플래시 변환 계층, FTL, FAST, M-FAST Flash translation layer, FTL, FAST, M-FAST

Description

완전 연관 섹터 변환 기법을 사용하는 플래시 변환 계층에서 합병연산을 줄이기 위한 플래시 메모리 관리 방법 및 장치{FLASH MEMORY MANAGEMENT METHOD AND APPARATUS FOR MERGE OPERATION REDUCTION IN A FAST ALGORITHM BASE FTL}FLASH MEMORY MANAGEMENT METHOD AND APPARATUS FOR MERGE OPERATION REDUCTION IN A FAST ALGORITHM BASE FTL}

본 발명은 완전 연관 섹터 변환 기법을 사용하는 플래시 변환 계층에서 합병연산을 줄이기 위한 플래시 메모리 관리 방법 및 장치에 관한 것으로, 특히, 완전 연관 섹터 변환 기법(FAST: Fully Associative Sector Translation)을 사용하는 플래시 메모리에서 데이터 블록과 로그 블록의 합병(Merge)을 지연시키는 플래시 메모리 관리 방법 및 장치에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a flash memory management method and apparatus for reducing merge operation in a flash translation layer using a full associative sector conversion technique, and more particularly, to a flash memory using a full associative sector translation (FAST). The present invention relates to a flash memory management method and apparatus for delaying merging of data blocks and log blocks.

플래시 메모리(Flash Memory)를 저장장치로 사용하기 위해서는 순차적인 주소영역을 플래시 메모리의 구조에 적합하게 전환시켜주는 플래시 변환 계층(FTL: Flash Translation Layer)이 필요하다. 그러나 일반적인 전환 방식을 사용할 경우 쓰기, 지우기 성능이 매우 떨어지는 플래시 메모리의 특성으로 인해 성능이 낮아지는 문제가 발생한다. 이를 위해 플래시 메모리를 데이터(Data) 영역과 로그(Log) 영역으로 나누어 관리하는 플래시 변환 계층 기법이 제안되었다. 이 방식을 용할 경우 데이터 영역에는 원본 데이터가 저장되고 로그 영역에는 기존 데이터에서 수정된 값이 저장된다. 그리고 로그 영역의 공간이 부족해지면 데이터 영역과 로그 영역을 합병(Merge)하여 새로운 데이터 영역으로 갱신하고 기존의 로그 영역은 초기화된다.In order to use flash memory as a storage device, a flash translation layer (FTL) that converts a sequential address region into a structure of a flash memory is required. However, when using the general switching method, the performance of the flash memory due to the poor write and erase performance is low. To this end, a flash translation layer technique has been proposed that manages flash memory into data and log areas. In this way, the original data is stored in the data area, and the modified values of existing data are stored in the log area. When the space of the log area becomes insufficient, the data area and the log area are merged to update the new data area, and the existing log area is initialized.

플래시 변환 계층 중에서 로그 블록(Log block) 사상 기법을 사용하는 완전 연관 섹터 변환 기법(FAST: Full Associative Sector Translation)은 다른 방식에 비하여 높은 쓰기 연산의 성능을 보인다. FAST에서는 쓰기 성능을 개선시키기 위하여 완전 연관(Full Associative)방식을 사용하였다. 이는 데이터 수정 요청이 발생할 경우 데이터 블록(Data block)의 주소에 관계없이 로그 블록(Log block)에 순차적으로 로그를 기록하는 방식이다. 이러한 방식을 통해 로그 영역의 사용률을 높여 공간이 부족해지는 것을 지연시킨다. 이로 인해 로그 영역의 공간이 부족해지는 시점이 지연되어 합병연산의 수가 감소하여 전반적인 플래시 메모리의 성능이 향상된다.Among the flash translation layers, Full Associative Sector Translation (FAST), which uses log block mapping, shows higher performance of write operations than other methods. FAST uses full associative method to improve write performance. When a data modification request occurs, the log is sequentially recorded in the log block regardless of the address of the data block. In this way, the utilization of log areas is increased, which delays running out of space. This delays the time when the log area runs out of space, reducing the number of merge operations and improving overall flash memory performance.

FAST 기법은 시스템의 구성에 따라 정적인 크기의 로그 영역을 가진다. 로그 영역의 크기는 로그 영역의 주소 사상 테이블(Address Mapping Table)을 저장할 수 있는 메모리 영역의 크기와 주소 사상 테이블을 검색하는데 소요되는 시간에 의해 결정된다. 가능한 한 큰 로그 영역을 가질수록 합병의 빈도는 줄어들지만 로그 영역의 공간이 부족해질 때 합병되는 블록의 수가 많아져 전체 합병 소요시간은 동일하다. 따라서 어느 정도 작은 크기의 로그 영역만을 보유하는 것이 기존 FAST에 는 효율적이다.The FAST technique has a static log area depending on the system configuration. The size of the log area is determined by the size of the memory area that can store the address mapping table of the log area and the time required to search the address mapping table. The larger the log area as possible, the less frequent the merger, but the total merge time is the same as the number of blocks merged when the log area runs out of space. Therefore, it is efficient for existing FAST to have only a small log area.

FAST 기법에서는 로그 영역이 부족해질 경우 합병연산이 발생한다. 합병 연산은 기존 데이터 블록과 로그 블록의 데이터를 메모리(Memory)로 백업(Backup)하는 작업, 새 프리 블록(Free block)에 백업된 데이터들을 복사하는 작업, 그리고 기존 데이터 블록과 로그 블록을 삭제하는 작업으로 이루어진다. 이 때 발생하는 지연시간은 합병되는 데이터 블록과 로그 블록의 수에 비례하여 크다.In the FAST technique, a merge operation occurs when the log area becomes insufficient. The merge operation backs up the data of the existing data block and the log block to memory, copies the data backed up to the new free block, and deletes the existing data block and the log block. The work is done. The delay that occurs at this time is large in proportion to the number of data and log blocks to be merged.

만약 데이터 블록에 대한 수정 연산이 자주 발생할 경우 로그 영역은 그에 비례하여 자주 합병될 것이다. 그로 인해 합병 연산을 위한 블록의 읽기/쓰기/삭제 연산이 자주 발생하여 전반적인 성능 저하를 가져온다.If modification operations to data blocks occur frequently, the log areas will be merged proportionately. As a result, the read / write / delete operations of the block for the merge operation frequently occur, resulting in overall performance degradation.

본 발명은 완전 연관 섹터 변환 기법을 사용하는 플래시 변환 계층에서 합병연산을 줄이기 위한 플래시 메모리 관리 방법 및 장치를 제공한다.The present invention provides a flash memory management method and apparatus for reducing merge operation in a flash translation layer using a fully associative sector conversion technique.

본 발명은 완전 연관 섹터 변환 기법(FAST: Full Associative Sector Translation)을 사용하는 플래시 메모리에서 데이터 블록과 로그 블록의 합병(Merge)을 지연시키는 플래시 메모리 관리 방법 및 장치를 제공한다.The present invention provides a flash memory management method and apparatus for delaying merging of data blocks and log blocks in flash memory using a full associative sector translation (FAST) technique.

본 발명은 완전 연관 섹터 변환 기법(FAST: Full Associative Sector Translation)을 사용하는 플래시 메모리에서 프리 블록을 이용하여 로그 블록의 수를 적응적으로 변동하여 데이터 블록과 로그 블록의 합병(Merge)을 지연시키는 플래시 메모리 관리 방법 및 장치를 제공한다.The present invention adaptively varies the number of log blocks using a free block in a flash memory using a full associative sector translation (FAST) technique to delay merging of data blocks and log blocks. Provided are a flash memory management method and apparatus.

본 발명은 완전 연관 섹터 변환 기법(FAST: Full Associative Sector Translation)을 사용하는 플래시 메모리에서 오래된 로그 블록 내의 유효하지 않은 값들을 삭제하여 로그 블록의 수를 줄이는 로그 블록 무효화(LBI: Log block invalidation) 기법을 이용하여 데이터 블록과 로그 블록의 합병(Merge)을 지연시키는 플래시 메모리 관리 방법 및 장치를 제공한다.The present invention provides a log block invalidation (LBI) technique that reduces the number of log blocks by deleting invalid values in old log blocks in flash memory using FAST (Full Associative Sector Translation). Provided are a flash memory management method and apparatus for delaying merging of a data block and a log block.

본 발명의 실시예에 따른 플래시 메모리 관리 장치는, 데이터를 저장하는 데이터 블록 영역(Data block area)과 로그들을 저장하는 로그 블록 영역(Log block area)과 사용 가능한 여유 공간을 나타내는 프리 블록 영역(Free block area)을 포함하는 플래시 메모리; 및, 상기 플래시 메모리에 저장된 데이터의 삭제 또는 갱신 이벤트가 발생할 때, 상기 로그 블록 영역에 사용 가능한 여유 공간이 존재하지 않고 로그 블록 최적화가 필요하면 로그 블록 무효화(LBI: Log block invalidation) 연산 시간과 합병(Merge) 연산 시간을 계산하고, 상기 LBI 연산 시간이 상기 합병 연산 시간보다 작으면 LBI 연산을 수행하는 플래시 변환 계층을 포함한다.An apparatus for managing flash memory according to an embodiment of the present invention includes a data block area storing data, a log block area storing logs, and a free block area representing available free space. a flash memory including a block area; And when a deletion or update event of data stored in the flash memory occurs, when there is no free space available in the log block area and log block optimization is required, merge with a log block invalidation (LBI) operation time. And a flash translation layer that calculates a merge operation time and performs an LBI operation when the LBI operation time is less than the merge operation time.

본 발명의 실시예에 따른 플래시 메모리 관리 방법은, 플래시 메모리에 저장된 데이터의 삭제 또는 갱신 이벤트의 발생을 감지하면, 로그 블록 영역에 로그를 저장할 수 있는 사용 가능한 여유 공간이 존재하는지 확인하는 단계; 확인결과 상기 로그 블록 영역에 사용 가능한 여유 공간이 존재하지 않으면, 로그 블록 최적화의 필요 여부를 확인 하는 단계: 확인 결과 상기 로그 블록 최적화가 필요하면 로그 블록 무효화(LBI: Log block invalidation) 연산 시간과 합병(Merge) 연산 시간을 계산하는 단계; 및, 상기 LBI 연산 시간이 상기 합병 연산 시간보다 작으면 LBI 연산을 수행하는 단계를 포함한다.According to an embodiment of the present invention, a method of managing a flash memory may include: checking whether a free space for storing a log exists in a log block area when a deletion or update event of data stored in a flash memory is detected; If there is no free space available in the log block area as a result of the check, determining whether log block optimization is required: If the log block optimization is required as a result of the check, merge with a log block invalidation (LBI) operation time (Merge) calculating a calculation time; And performing an LBI operation if the LBI operation time is less than the merge operation time.

본 발명은 플래시 메모리에 저장된 데이터의 삭제 또는 갱신 이벤트의 발생을 감지하면, 로그 블록 영역에 로그를 저장할 수 있는 사용 가능한 여유 공간이 존재하는지 확인하는 단계, 확인결과 상기 로그 블록 영역에 사용 가능한 여유 공간이 존재 하지 않으면, 로그 블록 최적화의 필요 여부를 확인 하는 단계, 확인 결과 상기 로그 블록 최적화가 필요하면 로그 블록 무효화(LBI: Log block invalidation) 연산 시간과 합병(Merge) 연산 시간을 계산하는 단계 및, 상기 LBI 연산 시간이 상기 합병 연산 시간보다 작으면 LBI 연산을 수행하는 단계를 포함하는 플래시 메모리 관리 방법 및 장치에 관한 것으로, 데이터 블록과 로그 블록의 합병(Merge)을 지연시켜 플래시 메모리의 성능을 높이는 효과가 있다.According to an embodiment of the present invention, upon detecting the occurrence of a deletion or update event of data stored in a flash memory, checking whether there is an available free space for storing a log in the log block area, and as a result of the checking, the free space available for the log block area If it does not exist, checking whether the log block optimization is necessary, if the log block optimization is necessary, and calculating log block invalidation (LBI) operation time and merge operation time; A method and apparatus for managing a flash memory including performing an LBI operation when the LBI operation time is less than the merge operation time, the method comprising: delaying merging of data blocks and log blocks to increase flash memory performance. It works.

이하에서는 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다. 그리고 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. If it is determined that the gist of the present invention may be unnecessarily obscured, the detailed description thereof will be omitted.

본 발명의 실시 예는 완전 연관 섹터 변환 기법(FAST: Full Associative Sector Translation)을 사용하는 플래시 메모리에서 데이터 블록과 로그 블록의 합병(Merge) 연산의 발생을 줄이는 플래시 메모리 관리 방법 및 장치에 관한 것이다.An embodiment of the present invention relates to a flash memory management method and apparatus for reducing the occurrence of a merge operation of a data block and a log block in a flash memory using FAST (Full Associative Sector Translation).

하기의 설명에 있어서 데이터 블록과 로그 블록의 합병(Merge)을 지연시키는 FAST를 합병 지연 완전 연관 섹터 변환 기법(M-FAST: Merge pending Full Associative Sector Translation)라 칭한다.In the following description, FAST for delaying merging of data blocks and log blocks is called a merge pending full associative sector translation (M-FAST).

도 1은 본 발명의 실시 예에 따른 합병 지연 완전 연관 섹터 변환 기법(M-FAST)을 사용하는 플래시 메모리 관리 장치를 도시한 도면이다.FIG. 1 illustrates a flash memory management apparatus using a merge delay complete associated sector conversion technique (M-FAST) according to an embodiment of the present invention.

도 1을 참조하면 플래시 메모리 관리 장치는 플래시 변환 계층(FTL: Flash Translation Layer)(100), 데이터 블록 맵(Data block Map)(112), 프리 블록 맵(Free block Map)(114), 로그 블록 맵(Log block Map)(116), 플래시 메모리 제어부(120) 및, 플래시 메모리(130)를 포함하여 구성한다.Referring to FIG. 1, a flash memory management apparatus includes a flash translation layer (FTL) 100, a data block map 112, a free block map 114, and a log block. It comprises a map (Log block Map) 116, a flash memory controller 120, and a flash memory 130.

데이터 블록 맵(Data block Map)(112)은 플래시 메모리(130)에서 데이터의 물리적 주소를 가지는 테이블이다. 프리 블록 맵(Free block Map)(114)은 플래시 메모리(130)에서 사용 가능한 여유 공간의 물리적 주소를 가지는 테이블이다. 로그 블록 맵(Log block Map)(116)은 플래시 메모리(130)에서 로그의 물리적 주소를 가지는 테이블이다. 이때, 플래시 메모리(130) 내의 물리적 주소는 논리적인 주소에 대응한다.The data block map 112 is a table having a physical address of data in the flash memory 130. The free block map 114 is a table having physical addresses of free space available in the flash memory 130. The log block map 116 is a table having a physical address of a log in the flash memory 130. In this case, the physical address in the flash memory 130 corresponds to a logical address.

플래시 메모리 제어부(120)는 플래시 메모리(130)를 제어하는 장치로서 플래시 메모리(130)에 대한 읽기(Read), 쓰기(Program), 삭제(Erase)를 제어한다.The flash memory controller 120 controls the flash memory 130 and controls read, write, and erase of the flash memory 130.

플래시 메모리(130)는 크게 3가지 영역으로 구분할 수 있다. 데이터를 저장하는 데이터 블록들로 구성된 데이터 블록 영역(Data block area)(132), 플래시 메모리(130)의 여유 공간을 나타내는 프리 블록 영역(Free block area)(134) 및, 데이터의 삭제 및 갱신 시 발생하는 로그들을 저장하는 로그 블록들로 구성된 로그 블록 영역(Log block area)(136)으로 구분할 수 있다.The flash memory 130 may be divided into three areas. Data block area 132 consisting of data blocks for storing data, a free block area 134 representing free space of the flash memory 130, and when deleting and updating data. It may be divided into a log block area 136 composed of log blocks that store generated logs.

이때, 플래시 메모리(130)는 페이지(Page)와 블록(Block)의 단위로 관리된다. 즉, 플래시 메모리(130)는 다수의 블록들의 집합이며, 블록은 다수의 페이지로 구성되어있다. 플래시 메모리(130)에서 발생하는 읽기(Read)/쓰기(Program) 작업은 페이지의 단위로 수행되며 이미 써진 페이지에 덮어쓰기(Overwrite) 작업을 수행할 수 없다. 삭제(Erase) 작업은 블록의 단위로 수행되며 읽기나 쓰기에 비하여 많은 시간을 소모한다.At this time, the flash memory 130 is managed in units of a page and a block. That is, the flash memory 130 is a collection of a plurality of blocks, and the block is composed of a plurality of pages. The read / write operations occurring in the flash memory 130 are performed in units of pages, and an overwrite operation cannot be performed on already written pages. Erase is performed in units of blocks and consumes more time than reading or writing.

플래시 변환 계층(FTL: Flash Translation Layer)(100)은 일반적으로 외부로부터의 데이터 입출력 요청을 플래시 메모리(130)의 특성에 맞게 변환시킨다. 또한, 부가적으로 데이터 입출력 성능 향상을 위한 작업 및 플래시 메모리(130)의 삭제 작업 수를 줄여 플래시 메모리의 수명을 늘리는 작업 등을 수행한다.The flash translation layer (FTL) 100 generally converts data input / output requests from the outside in accordance with the characteristics of the flash memory 130. In addition, a task of increasing the data input / output performance and the number of erase operations of the flash memory 130 may be reduced to increase the life of the flash memory.

그리고, 플래시 변환 계층(100)은 플래시 메모리(130)에 저장된 데이터의 삭제 또는 갱신 이벤트의 발생을 감지하면, 로그 블록 맵(116)을 확인하여 로그 블록 영역(136)에 로그를 저장할 수 있는 여유 공간이 존재하는지 확인하고, 확인결과 존재하면 플래시 메모리 제어부(120)를 통해 삭제 또는 갱신의 로그를 로그 블록의 여유 페이지(page)에 기재하도록 제어한다.When the flash translation layer 100 detects occurrence of a data deletion or update event stored in the flash memory 130, the flash translation layer 100 may check the log block map 116 to store the log in the log block area 136. If the space exists, and if the result of the check exists, the flash memory controller 120 controls to write the log of deletion or update on the free page of the log block.

하지만, 로그 블록 영역에 로그를 저장할 수 있는 여유 공간이 존재하지 않으면, 플래시 변환 계층(100)은 프리 블록의 수가 기설정한 임계 프리 블록수 보다 적거나 로그 블록 수가 기설정한 임계 로그 블록수 보다 많은지 확인하여 로그 블록 최적화의 필요 여부를 확인한다. 확인결과 로그 블록 최적화가 필요하지 않으면, 플래시 변환 계층(100)은 프리 블록 맵(114)와 로그 블록 맵(116)을 수정하여 프리 블록 하나를 로그 블록으로 할당한다.However, if there is no free space for storing logs in the log block area, the flash translation layer 100 may determine that the number of free blocks is less than the preset threshold free blocks or the number of log blocks is greater than the preset threshold log blocks. Check if there are many to see if log block optimization is required. If the log block optimization is not necessary as a result of the check, the flash translation layer 100 modifies the free block map 114 and the log block map 116 and allocates one free block as a log block.

한편, 플래시 변환 계층(100)은 로그 블록 최적화가 필요하면 합병(Merge) 연산 시간과 로그 블록 무효화(LBI: Log block invalidation) 연산 시간을 비교한다. LBI 연산 시간이 합병 연산 시간보다 작거나 같으면 플래시 변환 계층(100)은 로그 블록 무효화를 수행한다.Meanwhile, if log block optimization is required, the flash translation layer 100 compares a merge operation time with a log block invalidation (LBI) operation time. If the LBI operation time is less than or equal to the merge operation time, the flash translation layer 100 performs log block invalidation.

하지만, LBI 연산 시간이 합병 연산 시간보다 크면 플래시 변환 계층(100)은 데이터 블록과 로그 블록의 합병을 수행한다. 로그 블록 최적화의 상세한 설명은 이후 도 3을 참조하여 후술한다.However, if the LBI operation time is greater than the merge operation time, the flash translation layer 100 performs a merge of the data block and the log block. A detailed description of log block optimization will be described later with reference to FIG. 3.

이하, 상기와 같이 구성된 본 발명에 따른 합병 지연 완전 연관 섹터 변환 기법을 사용하는 플래시 메모리 관리 방법을 아래에서 도면을 참조하여 설명한다.Hereinafter, a flash memory management method using the merge delay complete associative sector conversion scheme according to the present invention configured as described above will be described with reference to the accompanying drawings.

도 2는 본 발명의 실시 예에 따른 플래시 메모리 관리 장치에서 합병 지연 완전 연관 섹터 변환 기법에 따라 플래시 메모리 관리하는 과정을 도시한 흐름도이다.2 is a flowchart illustrating a process of managing a flash memory according to a merge delay complete associated sector conversion scheme in a flash memory management apparatus according to an exemplary embodiment of the present invention.

도 2를 참조하면 본 발명의 플래시 메모리 관리 장치는 202단계에서 플래시 메모리에 저장된 데이터의 삭제 또는 갱신 이벤트의 발생을 감지하면, 204단계로 진행하여 로그 블록 영역에 로그를 저장할 수 있는 사용 가능한 여유 공간이 존재하는지 확인하고, 확인결과 존재하면 212단계로 진행하여 삭제 또는 갱신의 로그를 로그 블록의 여유 페이지(page)에 기재한다.Referring to FIG. 2, when the flash memory management apparatus of the present invention detects occurrence of a data deletion or update event stored in the flash memory in step 202, the free memory space for storing a log in the log block area proceeds to step 204. If there is a check result, go to step 212 and write the log of deletion or update on the free page of the log block.

204단계의 확인결과 로그 블록 영역에 로그를 저장할 수 있는 여유 공간이 존재하지 않으면, 플래시 메모리 관리 장치는 206단계로 진행하여 로그 블록 최적화의 필요 여부를 확인한다. 로그 블록 최적화의 필요 여부 판단 기준은 프리 블록의 수가 기설정한 임계 프리 블록수 보다 적거나 로그 블록 수가 기설정한 임계 로그 블록수 보다 많은 경우에 로그 블록 최적화가 필요하다고 판단한다.If there is no free space for storing the log in the log block area as a result of step 204, the flash memory management apparatus determines whether log block optimization is necessary in step 206. The criterion for determining whether log block optimization is necessary is that log block optimization is necessary when the number of free blocks is less than the preset threshold free block number or the number of log blocks is more than the preset threshold log block number.

206단계의 확인결과 로그 블록 최적화가 필요하지 않으면, 플래시 메모리 관리 장치는 208단계로 진행하여 프리 블록 하나를 로그 블록으로 할당하고, 212단계로 진행하여 삭제 또는 갱신의 로그를 로그 블록의 여유 페이지(page)에 기재한다.If the log block optimization is not necessary as a result of checking in step 206, the flash memory management apparatus proceeds to step 208 to allocate one free block as a log block, and then proceeds to step 212 to allocate the log of deletion or update to free pages of the log block. page).

206단계의 확인결과 로그 블록 최적화가 필요하면 플래시 메모리 관리 장치는 210단계로 진행하여 로그 블록 최적화를 수행한다. 로그 블록 최적화의 상세한 설명은 이후 도 3을 참조하여 후술한다. 210단계에서 로그 블록 최적화가 완료되면 이후 208단계로 진행하여 프리 블록 하나를 로그 블록으로 할당하고, 212단계로 진행하여 삭제 또는 갱신의 로그를 로그 블록의 여유 페이지(page)에 기재한다.If the log block optimization is necessary as a result of checking in step 206, the flash memory management apparatus performs log block optimization in step 210. A detailed description of log block optimization will be described later with reference to FIG. 3. When the log block optimization is completed in step 210, the process proceeds to step 208, and one free block is allocated to the log block.

도 3은 본 발명의 실시 예에 따른 플래시 메모리 관리 장치에서 합병 지연 완전 연관 섹터 변환 기법에 따라 로그 블록을 최적화하는 과정을 도시한 흐름도이다.3 is a flowchart illustrating a process of optimizing a log block according to a merge delay full associated sector conversion scheme in a flash memory management apparatus according to an exemplary embodiment of the present invention.

도 3을 참조하면 본 발명의 플래시 메모리 관리 장치는 300단계에서 로그 블록 최적화 이벤트의 발생을 감지하면 302단계로 진행하여 합병(Merge) 연산 시간과 로그 블록 무효화(LBI: Log block invalidation) 연산 시간을 계산하고, 304단계로 진행하여 합병 연산 시간과 LBI 연산 시간을 비교한다.Referring to FIG. 3, when the flash memory management apparatus detects the occurrence of the log block optimization event in step 300, the flash memory management apparatus proceeds to step 302 to determine a merge operation time and a log block invalidation (LBI) operation time. In step 304, the merge operation time is compared with the LBI operation time.

이때, 합병 연산 시간은 아래 <수학식 1>과 같이 구할 수 있다.In this case, the merge operation time may be obtained as in Equation 1 below.

합병 연산 시간 = (nNewFree * nLB_Valid * tCB) + (nDB_Merge * nDB_Valid * tCB)Merge operation time = (nNewFree * nLB_Valid * tCB) + (nDB_Merge * nDB_Valid * tCB)

여기서, nNewFree는 프리 블록에 저장될 새로운 블록의 수 이고, nLB_Valid는 한 로그 블록 내에 존재하는 평균 유효한(Valid) 페이지 수 이고, nDB_Valid는 한 데이터 블록 에 존재하는 유효한(Valid) 페이지 수 이고, tCB는 플래시 메모리에서 Copyback으로 한 페이지(Page)를 읽어서 쓰는데 소요되는 시간이고, nDB_Merge는 합병(Merge)되어 삭제될 데이터 블록(Data block)의 수이다.Where nNewFree is the number of new blocks to be stored in the free block, nLB_Valid is the average number of valid pages present in one log block, nDB_Valid is the number of valid pages present in one data block, and tCB is The time taken to read and write one page from the flash memory to the copyback, and nDB_Merge is the number of data blocks to be merged and deleted.

다음으로 LBI 연산 시간은 아래 <수학식 2>과 같이 구할 수 있다.Next, the LBI operation time can be obtained as shown in Equation 2 below.

If (N <= M); LBI 연산 시간 = (nNewFree * nLB_Valid * tCB) If (N <= M); LBI operation time = (nNewFree * nLB_Valid * tCB)

If (N > M); LBI 연산 시간 = (nNewFree * nLB_Valid * tCB) + ({(N-M)/nPage + 1} * nLB_Valid * tCB)If (N> M); LBI operation time = (nNewFree * nLB_Valid * tCB) + ({(N-M) / nPage + 1} * nLB_Valid * tCB)

여기서, nNewFree는 프리 블록에 저장될 새로운 블록의 수 이고, nLB_Valid는 한 로그 블록 내에 존재하는 평균 유효한(Valid) 페이지 수 이고, tCB는 플래시 메모리에서 Copyback으로 한 페이지(Page)를 읽어서 쓰는데 소요되는 시간이고, N은 기설정한 오래된 로그 블록들에서 발견된 유효한 페이지(Page) 수 이고, M은 오래되지 않은 로그 블록내의 사용 가능한 페이지(Page) 수 이고, nPage는 한 블록 내부의 총 페이지(Page) 수 이다.Here, nNewFree is the number of new blocks to be stored in the free block, nLB_Valid is the average number of valid pages existing in one log block, and tCB is the time taken to read and write one page from the flash memory as a copyback. N is the number of valid pages found in the preset old log blocks, M is the number of available pages in the old log block, and nPage is the total pages within one block. It is possible.

304단계의 비교결과 LBI 연산 시간이 합병 연산 시간보다 작거나 같으면 플래시 메모리 관리 장치는 306단계로 진행하여 기설정된 기간만큼 오래된 로그 블록 들 내부의 유효한 값들을 검색하고, 308단계로 진행하여 오래되지 않은 로그 블록내의 여유 공간의 페이지 수를 제외한 유효한 값들의 개수에 따라 사용될 프리 블록의 수를 계산하고, 플래시 메모리 관리 장치는 310단계로 진행하여 계산한 수 만큼 프리 블록을 할당받아 오래된 로그 블록들 중 유효한 값을 할당받은 프리 블록에 복사하여 새로운 로그 블록으로 생성하고, 312단계로 진행하여 유효한 값들의 복사가 완료된 오래된 로그 블록들을 삭제한다.If the LBI operation time is less than or equal to the merge operation time, the flash memory management device proceeds to step 306 to search for valid values in log blocks that are as old as a predetermined period, and proceeds to step 308. The number of free blocks to be used is calculated according to the number of valid values excluding the number of pages of free space in the log block, and the flash memory management apparatus allocates as many free blocks as the calculated number in step 310 and is effective among the old log blocks. Copy the value to the allocated free block to create a new log block, and proceed to step 312 to delete old log blocks for which valid values have been copied.

306단계에서 312단계는 로그 블록 무효화의 과정으로 아래의 도 4의 예제와 같이 수행될 수 있다.Steps 306 to 312 are log block invalidation processes, which may be performed as shown in the example of FIG. 4 below.

304단계의 비교결과 LBI 연산 시간이 합병 연산 시간보다 크면 플래시 메모리 관리 장치는 314단계로 진행하여 갱신 등으로 인해 유효하지 않은 데이터를 가진 합병될 데이터 블록을 검색하고, 316단계로 진행하여 합병될 데이터 블록의 수만큼 프리 블록을 할당하고, 318단계로 진행하여 할당 받은 프리 블록에 데이터 블록들과 로그 블록들 중 유효한(Valid) 값만을 복사하고, 320단계로 진행하여 복사가 완료된 데이터 블록들과 로그 블록들을 삭제한다.If the LBI operation time is greater than the merge operation time in step 304, the flash memory management device proceeds to step 314 to search for a data block to be merged with invalid data due to an update, etc., and proceeds to step 316 to merge data. Allocate free blocks as many as the number of blocks, proceed to step 318, and copy only valid values among data blocks and log blocks to the allocated free blocks, and proceed to step 320 to copy the data blocks and logs that have been copied. Delete the blocks.

314단계에서 320단계는 데이터 블록과 로그 블록의 합병 과정으로 아래의 도 5의 예제와 같이 수행될 수 있다.Step 314 to step 320 is a merge process of the data block and the log block may be performed as shown in the example of FIG. 5 below.

도 4는 본 발명의 실시 예에 따른 플래시 메모리 관리 장치에서 로그 블록 무효화를 수행하는 예를 도시한 도면이다.4 is a diagram illustrating an example of performing log block invalidation in a flash memory management apparatus according to an exemplary embodiment of the present invention.

도 4를 참조하면 플래시 메모리 관리 장치는 LBI가 필요한 플래시 메모 리(410) 내의 로그 블록 영역(416)에서 기설정된 기간만큼 오래된 로그 블록인 0번째 로그 블록(Log Block-0) 내부의 유효한 값들을 검색한다. 그리고, 검색한 유효 페이지들을 사용 가능한 페이지를 가진 2번째 로그 블록(Log Block-2)으로 복사한다. 만약 사용 가능한 페이지를 가진 오래되지 않은 로그 블록이 존재하지 않으면 프리 블록 영역(414)에서 새로운 프리 블록을 새로운 로그 블록으로 할당 받고, 할당받은 프리 블록에 유효 페이지를 복사한다.Referring to FIG. 4, the flash memory management apparatus stores valid values inside a 0th log block Log Log-0, which is a log block older than a predetermined period in the log block area 416 in the flash memory 410 requiring LBI. Search. Then, the retrieved valid pages are copied to the second log block (Log Block-2) having the available pages. If there is no old log block with available pages, a new free block is allocated as a new log block in the free block area 414, and a valid page is copied to the allocated free block.

이후, 플래시 메모리 관리 장치는 LBI가 완료된 플래시 메모리(420)와 같이 LBI를 수행한 후에 유효한 값들의 복사가 완료된 기존의 오래된 로그 블록인 0번째 로그 블록(Log Block-0)을 삭제하여 로그 블록 영역(426)이 줄이고, 프리 블록 영역(424)이 늘린다.Thereafter, the flash memory management device deletes the 0th log block (Log Block-0), which is an old old log block in which valid values are copied after performing the LBI, such as the flash memory 420 in which the LBI is completed, and then the log block area. 426 decreases, and the free block area 424 increases.

이와 같이 LBI를 수행하는 경우 오래되어 유효하지 않은 로그들이 많은 로그 블록을 제거하여 프리 블록을 늘리기 때문에 LBI 수행 전의 데이터 블록 영역(412)과 LBI 수행 후의 데이터 블록 영역(422)은 변화가 없이 동일하다.In this case, when the LBI is performed, the old and invalid logs remove many log blocks to increase the free block, so the data block area 412 before performing the LBI and the data block area 422 after performing the LBI are the same without change. .

도 5는 본 발명의 실시 예에 따른 플래시 메모리 관리 장치에서 로그 블록의 합병을 수행하는 예를 도시한 도면이다.5 is a diagram illustrating an example of merging log blocks in a flash memory management apparatus according to an embodiment of the present invention.

도 5를 참조하면 플래시 메모리 관리 장치는 합병이 필요한 플래시 메모리(510) 내의 데이터 블록 영역(512)에서 갱신 등으로 인해 유효하지 않은 데이터를 가진 합병될 데이터 블록을 검색하고, 프리 블록 영역(514)에서 합병될 데이터 블록의 수만큼 프리 블록을 할당하고, 할당 받은 프리 블록에 데이터 블록 영 역(512)의 데이터 블록과 로그 블록 영역(516)의 로그 블록들 내의 유효한(Valid) 값만을 복사하여 새로운 데이터 블록들로 구성한다.Referring to FIG. 5, the flash memory management apparatus searches for a data block to be merged having invalid data due to an update or the like in the data block area 512 in the flash memory 510 that needs to be merged, and the free block area 514. Allocates free blocks as many as the number of data blocks to be merged, and copies only valid values within the data blocks of the data block area 512 and the log blocks of the log block area 516 to the allocated free blocks. Consists of data blocks.

이후, 플래시 메모리 관리 장치는 합병한 플래시 메모리(520)와 같이 유효한(Valid) 값만을 복사하여 새로운 데이터 블록들로 구성하는 데이터 블록 영역(522)을 구성하고, 복사가 완료된 데이터 블록들과 로그 블록들을 삭제하여 프리 블록 영역(524)화 한다.Subsequently, the flash memory management apparatus forms a data block area 522 that copies only valid values such as the merged flash memory 520 and constitutes new data blocks, and copies and completes the data blocks and the log block. These blocks are deleted to form a free block area 524.

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, the present invention has been described by way of limited embodiments and drawings, but the present invention is not limited to the above embodiments, and those skilled in the art to which the present invention pertains various modifications and variations from such descriptions. This is possible.

그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined not only by the claims below but also by the equivalents of the claims.

도 1은 본 발명의 실시 예에 따른 합병 지연 완전 연관 섹터 변환 기법(M-FAST)을 사용하는 플래시 메모리 관리 장치를 도시한 도면,1 is a diagram illustrating a flash memory management apparatus using a merge delay complete associated sector conversion technique (M-FAST) according to an embodiment of the present invention;

도 2는 본 발명의 실시 예에 따른 플래시 메모리 관리 장치에서 합병 지연 완전 연관 섹터 변환 기법에 따라 플래시 메모리 관리하는 과정을 도시한 흐름도,2 is a flowchart illustrating a process of managing a flash memory according to a merge delay complete associated sector conversion scheme in a flash memory management apparatus according to an embodiment of the present invention;

도 3은 본 발명의 실시 예에 따른 플래시 메모리 관리 장치에서 합병 지연 완전 연관 섹터 변환 기법에 따라 로그 블록을 최적화하는 과정을 도시한 흐름도,3 is a flowchart illustrating a process of optimizing a log block according to a merge delay complete associated sector conversion scheme in a flash memory management apparatus according to an embodiment of the present invention;

도 4는 본 발명의 실시 예에 따른 플래시 메모리 관리 장치에서 로그 블록 무효화를 수행하는 예를 도시한 도면 및,4 is a diagram illustrating an example of performing log block invalidation in a flash memory management apparatus according to an embodiment of the present invention;

도 5는 본 발명의 실시 예에 따른 플래시 메모리 관리 장치에서 로그 블록의 합병을 수행하는 예를 도시한 도면이다.5 is a diagram illustrating an example of merging log blocks in a flash memory management apparatus according to an embodiment of the present invention.

Claims (14)

데이터를 저장하는 데이터 블록 영역(Data block area)과 로그들을 저장하는 로그 블록 영역(Log block area)과 사용 가능한 여유 공간을 나타내는 프리 블록 영역(Free block area)을 포함하는 플래시 메모리; 및A flash memory including a data block area storing data, a log block area storing logs and a free block area representing available free space; And 상기 플래시 메모리에 저장된 데이터의 삭제 또는 갱신 이벤트가 발생할 때, 상기 로그 블록 영역에 사용 가능한 여유 공간이 존재하지 않고 로그 블록 최적화가 필요하면 로그 블록 무효화(LBI: Log block invalidation) 연산 시간과 합병(Merge) 연산 시간을 계산하고, 상기 LBI 연산 시간이 상기 합병 연산 시간보다 작으면 LBI 연산을 수행하는 플래시 변환 계층을 포함하고,When a deletion or update event of data stored in the flash memory occurs, if there is no free space available in the log block area and log block optimization is required, log block invalidation (LBI) operation time and merge Calculate a calculation time, and perform a LBI operation if the LBI operation time is less than the merge operation time; 상기 플래시 변환 계층은, 한개의 로그 블록 내에 존재하는 평균 유효한(Valid) 페이지 수를 이용해서 상기 LBI 연산 시간과 상기 합병 연산 시간을 계산함을 특징으로 하고,Wherein the flash translation layer calculates the LBI operation time and the merge operation time using an average number of valid pages present in one log block, 상기 플래시 변환 계층은, 상기 LBI 연산을 수행 시, 기설정된 기간만큼 오래된 로그 블록들 내부의 유효한 값들을 검색하고, 오래되지 않은 로그 블록내의 여유 페이지의 수를 제외한 유효한 값들의 개수에 따라 사용될 프리 블록의 수를 계산하고, 계산된 값만큼 프리 블록을 로그 블록으로 할당하여 상기 오래된 로그 블록들 중 유효한 값을 상기 할당한 로그 블록에 복사하고, 상기 유효한 값들의 복사가 완료된 상기 오래된 로그 블록들을 프리 블록으로 전환함을 특징으로 하는 플래시 메모리 관리 장치.When performing the LBI operation, the flash translation layer searches for valid values inside log blocks that are as old as a predetermined period of time, and uses free blocks to be used according to the number of valid values excluding the number of free pages in the old log block. Calculates the number of s, allocates a free block as a log block by the calculated value, copies a valid value among the old log blocks to the allocated log block, and frees the old log blocks where copying of the valid values is completed. Flash memory management device, characterized in that for switching to. 제1항에 있어서, 상기 플래시 변환 계층은,The method of claim 1, wherein the flash translation layer, 상기 플래시 메모리에 저장된 데이터의 삭제 또는 갱신 이벤트가 발생할 때, 상기 로그 블록 영역에 사용 가능한 여유 공간이 존재하면, 삭제 또는 갱신에 관한 로그를 상기 로그 블록 영역의 여유 공간에 기재하도록 함을 특징으로 하는 플래시 메모리 관리 장치.When a deletion or update event of data stored in the flash memory occurs, if there is free space available in the log block area, a log relating to deletion or update is written in the free space of the log block area. Flash memory management device. 제1항에 있어서, 상기 플래시 변환 계층은,The method of claim 1, wherein the flash translation layer, 상기 플래시 메모리에 저장된 데이터의 삭제 또는 갱신 이벤트가 발생할 때, 상기 로그 블록 영역에 사용 가능한 여유 공간이 존재하지 않고 상기 로그 블록 최적화가 필요하지 않으면, 상기 프리 블록 영역에서 프리 블록 하나를 상기 로그 블록 영역에 할당하고, 삭제 또는 갱신에 관한 로그를 상기 로그 블록 영역의 여유 공간에 기재하도록 함을 특징으로 하는 플래시 메모리 관리 장치.When a deletion or update event of data stored in the flash memory occurs, if there is no free space available in the log block area and the log block optimization is not necessary, one free block is selected from the free block area. And a log relating to deletion or update to be written in the free space of the log block area. 제1항에 있어서, 상기 플래시 변환 계층은,The method of claim 1, wherein the flash translation layer, 상기 플래시 메모리 내의 프리 블록의 수가 기설정한 임계 프리 블록수 보다 적거나 로그 블록 수가 기설정한 임계 로그 블록수 보다 많으면 상기 로그 블록 최적화를 수행함을 특징으로 하는 플래시 메모리 관리 장치.And performing log block optimization when the number of free blocks in the flash memory is less than a predetermined threshold free block or the number of log blocks is more than a predetermined threshold log block. 제1항에 있어서, 상기 플래시 변환 계층은, The method of claim 1, wherein the flash translation layer, 상기 LBI 연산 시간을 아래 <수학식 3>을 이용해서 계산 함을 특징으로 는 플래시 메모리 관리 장치.And calculating the LBI operation time using Equation 3 below. If (N <= M); LBI 연산 시간 = (nNewFree * nLB_Valid * tCB) If (N <= M); LBI operation time = (nNewFree * nLB_Valid * tCB) If (N > M); LBI 연산 시간 = (nNewFree * nLB_Valid * tCB) If (N> M); LBI operation time = (nNewFree * nLB_Valid * tCB) + ({(N-M)/nPage + 1} * nLB_Valid * tCB)+ ({(N-M) / nPage + 1} * nLB_Valid * tCB) 여기서, nNewFree는 프리 블록에 저장될 새로운 블록의 수 이고, nLB_Valid는 한 로그 블록 내에 존재하는 평균 유효한(Valid) 페이지 수 이고, tCB는 플래시 메모리에서 Copyback으로 한 페이지(Page)를 읽어서 쓰는데 소요되는 시간이고, N은 기설정한 오래된 로그 블록들에서 발견된 유효한 페이지(Page) 수 이고, M은 오래되지 않은 로그 블록내의 사용 가능한 페이지(Page) 수 이고, nPage는 한 블록 내부의 총 페이지(Page) 수 이다.Here, nNewFree is the number of new blocks to be stored in the free block, nLB_Valid is the average number of valid pages existing in one log block, and tCB is the time taken to read and write one page from the flash memory as a copyback. N is the number of valid pages found in the preset old log blocks, M is the number of available pages in the old log block, and nPage is the total pages within one block. It is possible. 제1항에 있어서, 상기 플래시 변환 계층은, The method of claim 1, wherein the flash translation layer, 상기 로그 블록 최적화가 필요하고 상기 LBI 연산 시간이 상기 합병 연산 시간보다 크거나 같으면, 상기 데이터 블록 영역에서 갱신 등으로 인해 유효하지 않은 데이터를 가진 합병될 데이터 블록을 검색하고, 상기 합병될 데이터 블록의 수만큼 프리 블록을 할당하고, 할당한 프리 블록에 데이터 블록들과 로그 블록들 중 유효한(Valid) 값만을 복사하여 새로운 데이터 블록 영역을 생성하고, 복사가 완료된 상기 데이터 블록들과 상기 로그 블록들을 삭제하도록 하는 상기 합병 연산을 수행하도록 함을 특징으로 하는 플래시 메모리 관리 장치.If the log block optimization is required and the LBI operation time is greater than or equal to the merge operation time, the data block to be merged with invalid data due to an update or the like in the data block area is searched for, and the Allocate a number of free blocks, copy only valid values of data blocks and log blocks to the allocated free blocks to create a new data block area, and delete the data blocks and log blocks that have been copied. And perform the merge operation. 제6항에 있어서, 상기 플래시 변환 계층은, The method of claim 6, wherein the flash translation layer, 상기 합병 연산 시간을 아래 <수학식 4>을 이용해서 계산 함을 특징으로 하는 플래시 메모리 관리 장치.And calculating the merge operation time using Equation 4 below. 합병 연산 시간 = (nNewFree * nLB_Valid * tCB)Merger operation time = (nNewFree * nLB_Valid * tCB) + (nDB_Merge * nDB_Valid * tCB)+ (nDB_Merge * nDB_Valid * tCB) 여기서, nNewFree는 프리 블록에 저장될 새로운 블록의 수 이고, nLB_Valid는 한 로그 블록 내에 존재하는 평균 유효한(Valid) 페이지 수 이고, nDB_Valid는 한 데이터 블록 에 존재하는 유효한(Valid) 페이지 수 이고, tCB는 플래시 메모리에서 Copyback으로 한 페이지(Page)를 읽어서 쓰는데 소요되는 시간이고, nDB_Merge는 합병(Merge)되어 삭제될 데이터 블록(Data block)의 수이다.Where nNewFree is the number of new blocks to be stored in the free block, nLB_Valid is the average number of valid pages present in one log block, nDB_Valid is the number of valid pages present in one data block, and tCB is The time taken to read and write one page from the flash memory to the copyback, and nDB_Merge is the number of data blocks to be merged and deleted. 플래시 메모리에 저장된 데이터의 삭제 또는 갱신 이벤트의 발생을 감지하면, 로그 블록 영역에 로그를 저장할 수 있는 사용 가능한 여유 공간이 존재하는지 확인하는 단계;Detecting whether a free space for storing a log exists in a log block area when a deletion or update event of data stored in the flash memory is detected; 확인결과 상기 로그 블록 영역에 사용 가능한 여유 공간이 존재하지 않으면, 로그 블록 최적화의 필요 여부를 확인 하는 단계:If there is no free space in the log block area as a result of the check, determining whether log block optimization is necessary: 확인 결과 상기 로그 블록 최적화가 필요하면 로그 블록 무효화(LBI: Log block invalidation) 연산 시간과 합병(Merge) 연산 시간을 계산하는 단계; 및Calculating a log block invalidation (LBI) operation time and a merge operation time when the log block optimization is necessary as a result of the check; And 상기 LBI 연산 시간이 상기 합병 연산 시간보다 작으면 LBI 연산을 수행하는 단계를 포함하고,Performing an LBI operation if the LBI operation time is less than the merge operation time; 상기 LBI 연산 시간과 상기 합병 연산 시간을 계산하는 단계는, 한개의 로그 블록 내에 존재하는 평균 유효한(Valid) 페이지 수를 이용해서 상기 LBI 연산 시간과 상기 합병 연산 시간을 계산함을 특징으로 하고,The calculating of the LBI operation time and the merge operation time may include calculating the LBI operation time and the merge operation time by using an average number of valid pages existing in one log block. 상기 LBI 연산을 수행하는 단계는, 상기 LBI 연산을 수행 시, 기설정된 기간만큼 오래된 로그 블록들 내부의 유효한 값들을 검색하고, 오래되지 않은 로그 블록내의 여유 페이지의 수를 제외한 유효한 값들의 개수에 따라 사용될 프리 블록의 수를 계산하고, 계산된 값만큼 프리 블록을 로그 블록으로 할당하여 상기 오래된 로그 블록들 중 유효한 값을 상기 할당한 로그 블록에 복사하고, 상기 유효한 값들의 복사가 완료된 상기 오래된 로그 블록들을 프리 블록으로 전환함을 특징으로 하는 플래시 메모리 관리 방법.The performing of the LBI operation may include: searching for valid values inside log blocks that are old for a predetermined period when performing the LBI operation, according to the number of valid values excluding the number of free pages in the old log block. Calculate the number of free blocks to be used, allocate a free block as a log block by the calculated value, copy a valid value of the old log blocks to the allocated log block, and copy the valid values to the old log block. Flash memory management method characterized in that the conversion to the free block. 제8항에 있어서, The method of claim 8, 확인결과 상기 로그 블록 영역에 사용 가능한 여유 공간이 존재하면,If there is free space available in the log block area as a result of the check, 삭제 또는 갱신에 관한 로그를 상기 로그 블록 영역의 여유 공간에 기재하는 단계를 더 포함함을 특징으로 하는 플래시 메모리 관리 방법.And writing the log relating to deletion or update in the free space of the log block area. 제8항에 있어서,The method of claim 8, 상기 로그 블록 최적화의 필요 여부를 확인하는 단계의 확인결과 상기 로그 블록 최적화가 필요하지 않으면,If the log block optimization is not necessary as a result of checking whether the log block optimization is necessary, 프리 블록 영역에서 프리 블록 하나를 상기 로그 블록 영역에 할당하는 단계; 및Allocating one free block to the log block area in the free block area; And 삭제 또는 갱신에 관한 로그를 상기 로그 블록 영역의 여유 공간에 기재하는 단계를 더 포함함을 특징으로 하는 플래시 메모리 관리 방법.And writing the log relating to deletion or update in the free space of the log block area. 제8항에 있어서,The method of claim 8, 상기 로그 블록 최적화는,The log block optimization, 상기 플래시 메모리 내의 프리 블록의 수가 기설정한 임계 프리 블록수 보다 적거나 로그 블록 수가 기설정한 임계 로그 블록수 보다 많으면 수행함을 특징으로 하는 플래시 메모리 관리 방법.And when the number of free blocks in the flash memory is less than a predetermined threshold free block or the number of log blocks is more than a predetermined threshold log block number. 제8항에 있어서,The method of claim 8, 상기 LBI 연산 시간을 아래 <수학식 5>을 이용해서 계산함을 특징으로 하는 플래시 메모리 관리 방법.The LBI operation time is calculated using Equation 5 below. If (N <= M); LBI 연산 시간 = (nNewFree * nLB_Valid * tCB) If (N <= M); LBI operation time = (nNewFree * nLB_Valid * tCB) If (N > M); LBI 연산 시간 = (nNewFree * nLB_Valid * tCB) If (N> M); LBI operation time = (nNewFree * nLB_Valid * tCB) + ({(N-M)/nPage + 1} * nLB_Valid * tCB)+ ({(N-M) / nPage + 1} * nLB_Valid * tCB) 여기서, nNewFree는 프리 블록에 저장될 새로운 블록의 수 이고, nLB_Valid는 한 로그 블록 내에 존재하는 평균 유효한(Valid) 페이지 수 이고, tCB는 플래시 메모리에서 Copyback으로 한 페이지(Page)를 읽어서 쓰는데 소요되는 시간이고, N은 기설정한 오래된 로그 블록들에서 발견된 유효한 페이지(Page) 수 이고, M은 오래되지 않은 로그 블록내의 사용 가능한 페이지(Page) 수 이고, nPage는 한 블록 내부의 총 페이지(Page) 수 이다.Here, nNewFree is the number of new blocks to be stored in the free block, nLB_Valid is the average number of valid pages existing in one log block, and tCB is the time taken to read and write one page from the flash memory as a copyback. N is the number of valid pages found in the preset old log blocks, M is the number of available pages in the old log block, and nPage is the total pages within one block. It is possible. 제8항에 있어서,The method of claim 8, 상기 LBI 연산 시간이 상기 합병 연산 시간보다 크거나 같으면 상기 데이터 블록 영역에서 갱신 등으로 인해 유효하지 않은 데이터를 가진 합병될 데이터 블록을 검색하고, 상기 합병될 데이터 블록의 수만큼 프리 블록을 할당하고, 할당한 프리 블록에 데이터 블록들과 로그 블록들 중 유효한(Valid) 값만을 복사하여 새로운 데이터 블록 영역을 생성하고, 복사가 완료된 상기 데이터 블록들과 상기 로그 블록들을 삭제하도록 하는 상기 합병 연산을 수행하는 단계를 더 포함함을 특징으로 하는 플래시 메모리 관리 방법.If the LBI operation time is greater than or equal to the merge operation time, search for a data block to be merged having invalid data due to an update, etc. in the data block area, allocate a free block as many as the number of data blocks to be merged, A new data block area is created by copying only valid values of data blocks and log blocks to the allocated free block, and performing the merge operation to delete the data blocks and the log blocks that have been copied. And further comprising the step of managing a flash memory. 제8항에 있어서, The method of claim 8, 상기 합병 연산 시간을 아래 <수학식 6>을 이용해서 계산 함을 특징으로 하는 플래시 메모리 관리 방법.And the merging operation time is calculated using Equation 6 below. 합병 연산 시간 = (nNewFree * nLB_Valid * tCB)Merger operation time = (nNewFree * nLB_Valid * tCB) + (nDB_Merge * nDB_Valid * tCB)+ (nDB_Merge * nDB_Valid * tCB) 여기서, nNewFree는 프리 블록에 저장될 새로운 블록의 수 이고, nLB_Valid는 한 로그 블록 내에 존재하는 평균 유효한(Valid) 페이지 수 이고, nDB_Valid는 한 데이터 블록 에 존재하는 유효한(Valid) 페이지 수 이고, tCB는 플래시 메모리에서 Copyback으로 한 페이지(Page)를 읽어서 쓰는데 소요되는 시간이고, nDB_Merge는 합병(Merge)되어 삭제될 데이터 블록(Data block)의 수이다.Where nNewFree is the number of new blocks to be stored in the free block, nLB_Valid is the average number of valid pages present in one log block, nDB_Valid is the number of valid pages present in one data block, and tCB is The time taken to read and write one page from the flash memory to the copyback, and nDB_Merge is the number of data blocks to be merged and deleted.
KR1020080099739A 2008-10-10 2008-10-10 Flash memory management method and apparatus for merge operation reduction in a fast algorithm base ftl KR100987251B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080099739A KR100987251B1 (en) 2008-10-10 2008-10-10 Flash memory management method and apparatus for merge operation reduction in a fast algorithm base ftl

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080099739A KR100987251B1 (en) 2008-10-10 2008-10-10 Flash memory management method and apparatus for merge operation reduction in a fast algorithm base ftl

Publications (2)

Publication Number Publication Date
KR20100040559A KR20100040559A (en) 2010-04-20
KR100987251B1 true KR100987251B1 (en) 2010-10-12

Family

ID=42216630

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080099739A KR100987251B1 (en) 2008-10-10 2008-10-10 Flash memory management method and apparatus for merge operation reduction in a fast algorithm base ftl

Country Status (1)

Country Link
KR (1) KR100987251B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101153688B1 (en) 2010-10-15 2012-06-18 성균관대학교산학협력단 Nand flash memory system and method for providing invalidation chance to data pages
US9244619B2 (en) 2012-09-27 2016-01-26 Samsung Electronics Co., Ltd. Method of managing data storage device and data storage device

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101377291B1 (en) * 2010-12-28 2014-03-26 한양대학교 산학협력단 System and method for saving log data using block clear information
KR102107604B1 (en) * 2018-03-26 2020-05-07 성균관대학교 산학협력단 Non-volatile memory apparatus and data storage methid of the same

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060001393A (en) * 2004-06-30 2006-01-06 삼성전자주식회사 Incremental merge method and memory system using the same
KR20080035237A (en) * 2006-10-19 2008-04-23 삼성전자주식회사 Method for managing non-volatile memory, and memory-based apparatus including the non-volatile memory
KR20080045833A (en) * 2006-11-21 2008-05-26 삼성전자주식회사 Method of controlling flash memory and flash memory system using the same

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060001393A (en) * 2004-06-30 2006-01-06 삼성전자주식회사 Incremental merge method and memory system using the same
KR20080035237A (en) * 2006-10-19 2008-04-23 삼성전자주식회사 Method for managing non-volatile memory, and memory-based apparatus including the non-volatile memory
KR20080045833A (en) * 2006-11-21 2008-05-26 삼성전자주식회사 Method of controlling flash memory and flash memory system using the same

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
NAND 플래시 메모리 저장 장치에서 블록 재활용 기법의 비용 기반 최적화, 정보과학회논문지, 컴퓨팅의 실제 및 레터 제13권 제7호*

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101153688B1 (en) 2010-10-15 2012-06-18 성균관대학교산학협력단 Nand flash memory system and method for providing invalidation chance to data pages
US9244619B2 (en) 2012-09-27 2016-01-26 Samsung Electronics Co., Ltd. Method of managing data storage device and data storage device

Also Published As

Publication number Publication date
KR20100040559A (en) 2010-04-20

Similar Documents

Publication Publication Date Title
CN110678836B (en) Persistent memory for key value storage
US10620862B2 (en) Efficient recovery of deduplication data for high capacity systems
KR101717644B1 (en) Apparatus, system, and method for caching data on a solid-state storage device
US8510500B2 (en) Device driver including a flash memory file system and method thereof and a flash memory device and method thereof
US7694087B2 (en) Duplicate data storing system, duplicate data storing method, and duplicate data storing program for storage device
CN108604165B (en) Storage device
US10445022B1 (en) Optimization of log-structured merge (LSM) tree-based databases using object solid state drive (SSD) devices
US20070043900A1 (en) Flash memory management method and flash memory system
KR20170010729A (en) Storage system and method for metadata management in Non-volatile memory
US20210157746A1 (en) Key-value storage device and system including the same
KR20100115090A (en) Buffer-aware garbage collection technique for nand flash memory-based storage systems
KR101297442B1 (en) Nand flash memory including demand-based flash translation layer considering spatial locality
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
WO2016101145A1 (en) Controller, method for identifying data block stability and storage system
CN107704466B (en) Data storage system
KR100987251B1 (en) Flash memory management method and apparatus for merge operation reduction in a fast algorithm base ftl
CN116069681A (en) Disk space recovery method and device, electronic equipment and storage medium
CN107273306B (en) Data reading and writing method for solid state disk and solid state disk
KR101077901B1 (en) Apparatus and method for managing flash memory using log block level mapping algorithm
CN113253926A (en) Memory internal index construction method for improving query and memory performance of novel memory
KR101284465B1 (en) Page mapping scheme that supports secure file deletion for nand-based block device, and thereof recording medium
KR101252375B1 (en) Mapping management system and method for enhancing performance of deduplication in storage apparatus
KR101153688B1 (en) Nand flash memory system and method for providing invalidation chance to data pages
KR20120034976A (en) Apparatus and method for mapping the data address in nand flash memory

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: 20130905

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140901

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150915

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee