KR101021364B1 - Multiple flash memory management method and apparatus for merge operation reduction in a fast algorithm base ftl - Google Patents

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

Info

Publication number
KR101021364B1
KR101021364B1 KR1020080099740A KR20080099740A KR101021364B1 KR 101021364 B1 KR101021364 B1 KR 101021364B1 KR 1020080099740 A KR1020080099740 A KR 1020080099740A KR 20080099740 A KR20080099740 A KR 20080099740A KR 101021364 B1 KR101021364 B1 KR 101021364B1
Authority
KR
South Korea
Prior art keywords
block
log
flash memory
valid
blocks
Prior art date
Application number
KR1020080099740A
Other languages
Korean (ko)
Other versions
KR20100040560A (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 KR1020080099740A priority Critical patent/KR101021364B1/en
Publication of KR20100040560A publication Critical patent/KR20100040560A/en
Application granted granted Critical
Publication of KR101021364B1 publication Critical patent/KR101021364B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/461Sector or disk block

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

멀티 플래시 메모리 관리 방법 및 장치를 개시한다. 멀티 플래시 메모리 관리 방법은, 멀티 플래시 메모리에 포함된 다수의 플래시 메모리에 대해 논리 주소를 스트라이핑 할당하는 단계, 상기 멀티 플래시 메모리에 저장된 데이터의 삭제 또는 갱신 이벤트의 발생을 감지하면, 로그 블록 영역에 로그를 저장할 수 있는 사용 가능한 여유 공간이 존재하는지 확인하는 단계, 확인결과 상기 로그 블록 영역에 사용 가능한 여유 공간이 존재하지 않으면, 로그 블록 최적화의 필요 여부를 확인 하는 단계, 확인 결과 상기 로그 블록 최적화가 필요하면 로그 블록 무효화(LBI: Log Block Invalidation) 연산 시간과 합병(Merge) 연산 시간을 계산하는 단계 및, 상기 LBI 연산 시간이 상기 합병 연산 시간보다 작으면 LBI 연산을 수행하는 단계를 포함한다.Disclosed are a multi-flash memory management method and apparatus. The multi-flash memory management method may include: striping and assigning logical addresses to a plurality of flash memories included in the multi-flash memory, and detecting a deletion or update event of data stored in the multi-flash memory. Checking whether there is free space available to store the data, and if the free space does not exist in the log block area, determining whether log block optimization is necessary, and as a result, the log block optimization is required. And calculating a log block invalidation (LBI) operation time and a merge operation time, and performing an LBI operation when the LBI operation time is less than the merge operation time.

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

Description

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

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

플래시 메모리(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 multi-flash memory management method and apparatus for reducing the merge operation in the flash translation layer using a fully associative sector conversion technique.

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

본 발명은 완전 연관 섹터 변환 기법(FAST: Full Associative Sector Translation)을 사용하는 멀티 플래시 메모리에서 프리 블록을 이용하여 로그 블록의 수롤 적응적으로 변동하여 데이터 블록과 로그 블록의 합병(Merge)을 지연시키는 멀티 플래시 메모리 관리 방법 및 장치를 제공한다.According to the present invention, the number of log blocks is adaptively changed using a free block in a multi-flash memory using FAST (Full Associative Sector Translation), which delays merging of data blocks and log blocks. Provided are a multi-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) method, which reduces the number of log blocks by deleting invalid values in old log blocks in multi-flash memory using FAST (Full Associative Sector Translation). Provided are a multi-flash memory management method and apparatus for delaying merging of data blocks and log blocks by using a scheme.

본 발명의 실시예에 따른 멀티 플래시 메모리 관리 장치는, 데이터를 저장하는 데이터 블록 영역(Data block area)과 로그들을 저장하는 로그 블록 영역(Log block area)과 사용 가능한 여유 공간을 나타내는 프리 블록 영역(Free block area)으로 구분하는 다수의 플래시 메모리를 가지는 멀티 플래시 메모리; 및, 상기 멀티 플래시 메모리에 대해 논리 주소를 스트라이핑(Striping) 할당하고, 상기 멀티 플래시 메모리에 저장된 데이터의 삭제 또는 갱신 이벤트가 발생할 때, 상기 로그 블록 영역에 사용 가능한 여유 공간이 존재하지 않고 로그 블록 최적화가 필요하면 로그 블록 무효화(LBI: Log block invalidation) 연산 시간과 합병(Merge) 연산 시간을 계산하고, 상기 LBI 연산 시간이 상기 합병 연산 시간보다 작으면 LBI 연산을 수행하는 플래시 변환 계층을 포함한다.An apparatus for managing a multi-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 multi flash memory having a plurality of flash memories classified into a free block area; And striping a logical address to the multi-flash memory, and when a deletion or update event of data stored in the multi-flash memory occurs, free space is not available in the log block area and log block optimization is performed. If necessary, a log block invalidation (LBI) operation time and a merge operation (Merge) operation time is calculated, and if the LBI operation time is less than the merge operation time includes a flash translation layer for performing the LBI operation.

본 발명의 실시예에 따른 멀티 플래시 메모리 관리 방법은, 멀티 플래시 메모리에 포함된 다수의 플래시 메모리에 대해 논리 주소를 스트라이핑 할당하는 단계; 상기 멀티 플래시 메모리에 저장된 데이터의 삭제 또는 갱신 이벤트의 발생을 감지하면, 로그 블록 영역에 로그를 저장할 수 있는 사용 가능한 여유 공간이 존재하는지 확인하는 단계; 확인결과 상기 로그 블록 영역에 사용 가능한 여유 공간이 존재하지 않으면, 로그 블록 최적화의 필요 여부를 확인 하는 단계: 확인 결과 상기 로그 블록 최적화가 필요하면 로그 블록 무효화(LBI: Log block invalidation) 연산 시간과 합병(Merge) 연산 시간을 계산하는 단계; 및, 상기 LBI 연산 시간이 상기 합병 연산 시간보다 작으면 LBI 연산을 수행하는 단계를 포함한다.A multi-flash memory management method according to an embodiment of the present invention includes: striping and assigning logical addresses to a plurality of flash memories included in a multi-flash memory; 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 multi-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 연산을 수행하는 단계를 포함하는 멀티 플래시 메모리 관리 방법 및 장치에 관한 것으로, 잦은 덮어쓰기 작업에 대하여 합병 작업을 지연시킬 수 있고, 멀티 플래시 메모리를 위한 논리 주소 사상 기법으로 인하여 블럭들 간 균등쓰기가 가능하다. 따라서 높은 읽기/쓰기 성능 향상과 플래시 메모리 의 수명 향상의 효과를 가진다. According to an embodiment of the present invention, when a logical address is assigned to a plurality of flash memories included in a multi-flash memory, when a deletion or update event of data stored in the multi-flash memory is detected, a log may be stored in a log block area. Checking whether there is free space available; if there is no free space in the log block area, determining whether log block optimization is necessary; invalidating log block if the log block optimization is necessary Calculating a log block invalidation (LBI) operation time and a merge operation time, and performing an LBI operation when the LBI operation time is less than the merge operation time. On a frequent overwrite operation It can delay and evenly write blocks because of the logical address mapping technique for multiple flash memories. Therefore, it has the effect of high read / write performance and the life of flash memory.

이하에서는 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다. 그리고 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 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 multi-flash memory management method and apparatus for delaying merging of data blocks and log blocks in a multi-flash memory using FAST (Full Associative Sector Translation).

하기의 설명에 있어서 멀티 플래시 메모리에서 데이터 블록과 로그 블록의 합병(Merge)을 지연시키는 FAST를 멀티 칩 합병 지연 완전 연관 섹터 변환 기법(MM-FAST: Multi-chip Merge pending Full Associative Sector Translation)라 칭한다.In the following description, FAST, which delays merging of data blocks and log blocks in multi-flash memory, is referred to as multi-chip merge pending full associative sector translation (MM-FAST). .

도 1은 본 발명의 실시 예에 따른 멀티 칩 합병 지연 완전 연관 섹터 변환 기법(M-FAST)을 사용하는 멀티 플래시 메모리 관리 장치를 도시한 도면이다.FIG. 1 is a diagram illustrating a multi-flash memory management apparatus using a multi-chip 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 multi-flash memory management apparatus includes a flash translation layer (FTL) 100, a data block map 112, a free block map 114, and a log. The block map 116 includes 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)는 다수의 플래시 메모리(132, 134, 136)들을 포함하여 구성한다. 플래시 메모리(132, 134, 136)들 각각은 크게 3가지 영역으로 구분 할 수 있다. 데이터들을 저장하는 데이터 블록들로 구성된 데이터 블록 영역(Data block area), 플래시 메모리(132, 134, 136)의 사용 가능한 여유 공간을 나타내는 프리 블록 영역(Free block area) 및, 데이터의 삭제 및 갱신 시 발생하는 로그들을 저장하는 로그 블록들로 구성된 로그 블록 영역(Log block area)으로 구분할 수 있다.The multi flash memory 130 includes a plurality of flash memories 132, 134, and 136. Each of the flash memories 132, 134, and 136 may be divided into three areas. Data block area consisting of data blocks for storing data, a free block area representing available free space of the flash memories 132, 134, and 136, and when deleting and updating data. It may be divided into a log block area composed of log blocks that store generated logs.

이때, 플래시 메모리(132, 134, 136)는 페이지(Page)와 블록(Block)의 단위로 관리된다. 즉, 플래시 메모리(132, 134, 136)는 다수의 블록들의 집합이며, 블록은 다수의 페이지로 구성되어있다. 플래시 메모리(130)에서 발생하는 읽기(Read)/쓰기(Program) 작업은 페이지의 단위로 수행되며 이미 써진 페이지에 덮어쓰기(Overwrite) 작업을 수행할 수 없다. 삭제(Erase) 작업은 블록의 단위로 수행되며 읽기나 쓰기에 비하여 많은 시간을 소모한다.In this case, the flash memories 132, 134, and 136 are managed in units of pages and blocks. That is, the flash memories 132, 134, and 136 are a collection of a plurality of blocks, and the blocks are 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)은 다수의 플래시 메모리(132, 134, 136)들을 포함하는 멀티 플래시 메모리(130)에 대하여 논리 주소를 아래 도 2와 같이 스트라이핑(Striping) 할당하고, 다수의 플래시 메모리(132, 134, 136)를 하나의 플래시 메모리와 같이 사용한다.The flash translation layer 100 allocates a logical address to a multi-flash memory 130 including a plurality of flash memories 132, 134, and 136, and stripes a logical address as shown in FIG. 2 below. (132, 134, 136) is used as one flash memory.

도 2는 본 발명의 실시예에 따른 멀티 플래시 메모리 관리 장치에서 멀티 플래시 메모리의 주소 할당 예를 도시한 도면이다.2 is a diagram illustrating an address allocation example of a multi-flash memory in the multi-flash memory management apparatus according to an exemplary embodiment of the present invention.

할당이란 도 2의 예는 멀티 플래시 메모리(200)에 플래시 메모리(210, 220)가 2개인 경우에 논리주소를 스트라이핑 할당한 경우로 플래시 메모리(210, 220)에 논리 주소가 순차적으로 번갈아 할당하였다. 이 경우 0번째 플래시 메모리(210)에는 짝수의 논리주소가 할당되고, 1번째 플래시 메모리(220)에는 홀수의 논리주소가 할당됨을 확인할 수 있다.In the example of FIG. 2, when the logical addresses are allocated to the multi-flash memory 200 by striping the logical addresses when the flash memories 210 and 220 are two, the logical addresses are sequentially assigned to the flash memories 210 and 220. . In this case, it can be seen that an even logical address is allocated to the 0 th flash memory 210 and an odd logical address is allocated to the first flash memory 220.

도 2와 같은 논리 주소를 할당하는 경우 순차 쓰기 작업이 요청될 경우 페이지(Page) 쓰기 작업은 각 플래시 메모리 에 순차적으로 고르게 분배되고 이로 인해 100%의 확률로 파이프라인을 적용 가능하여 빠른 쓰기 작업이 가능하다. 임의 쓰기 작업이 요청될 경우에도 플래시 메모리의 개수에 비례하여 파이프라인이 적용될 확률이 늘어나기 때문에 기존 구조에 비하여 빠른 쓰기 작업이 가능하다.In the case of assigning the logical address as shown in FIG. 2, when a sequential write operation is requested, the page write operation is distributed evenly to each flash memory in sequence, thereby applying a pipeline with a 100% chance of fast write operation. It is possible. Even when a random write operation is requested, the probability that the pipeline is applied increases in proportion to the number of flash memories, which enables faster write operations than the existing structure.

이후, 플래시 변환 계층(100)은 멀티 플래시 메모리(130)에 저장된 데이터의 삭제 또는 갱신 이벤트의 발생을 감지하면, 로그 블록 맵(116)을 확인하여 로그 블록 영역에 로그를 저장할 수 있는 여유 공간이 존재하는지 확인하고, 확인결과 존재하면 플래시 메모리 제어부(120)를 통해 삭제 또는 갱신의 로그를 로그 블록의 여유 페이지(page)에 기재하도록 제어한다.Afterwards, when the flash translation layer 100 detects the occurrence of a data deletion or update event stored in the multi-flash memory 130, the flash conversion layer 100 may check the log block map 116 to store a log space in the log block area. If the check result 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 necessary. 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.

프리 블록 하나를 로그 블록으로 할당 할 때, 블록을 구성하는 페이지는 멀티 플래시 메모리(130)를 구성하는 다수의 플래시 메모리(132, 134, 136) 중에서 하나의 플래시 메모리를 이용하여 구성한다.When allocating one free block to a log block, a page constituting the block is configured by using one flash memory among a plurality of flash memories 132, 134, and 136 constituting the multi-flash memory 130.

한편, 플래시 변환 계층(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)은 데이터 블록과 로그 블록의 합병을 수행한다. 로그 블록 최적화의 상세한 설명은 이후 도 4를 참조하여 후술한다.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. 4.

이하, 상기와 같이 구성된 본 발명에 따른 멀티 칩 합병 지연 완전 연관 섹터 변환 기법을 사용하는 멀티 플래시 메모리 관리 방법을 아래에서 도면을 참조하여 설명한다.Hereinafter, a multi-flash memory management method using the multi-chip 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.

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

도 3을 참조하면 본 발명의 멀티 플래시 메모리 관리 장치는 300단계에서 멀티 플래시 메모리에 포함된 다수의 플래시 메모리에 대해 논리 주소를 스트라이핑 할당한다.Referring to FIG. 3, in operation 300, the apparatus for managing a multi-flash memory stripe allocates logical addresses to a plurality of flash memories included in the multi-flash memory.

이후, 302단계에서 멀티 플래시 메모리에 저장된 데이터의 삭제 또는 갱신 이벤트의 발생을 감지하면, 304단계로 진행하여 로그 블록 영역에 로그를 저장할 수 있는 사용 가능한 여유 공간이 존재하는지 확인하고, 확인결과 존재하면 312단계로 진행하여 삭제 또는 갱신의 로그를 로그 블록의 여유 페이지(page)에 기재한다.Thereafter, in step 302, if a deletion or update event of data stored in the multi-flash memory is detected, the flow proceeds to step 304 to determine whether there is available free space for storing a log in the log block area. In step 312, the log of deletion or update is written in a free page of the log block.

304단계의 확인결과 로그 블록 영역에 로그를 저장할 수 있는 여유 공간이 존재하지 않으면, 멀티 플래시 메모리 관리 장치는 306단계로 진행하여 로그 블록 최적화의 필요 여부를 확인한다. 로그 블록 최적화의 필요 여부 판단 기준은 프리 블록의 수가 기설정한 임계 프리 블록수 보다 적거나 로그 블록 수가 기설정한 임계 로그 블록수 보다 많은 경우에 로그 블록 최적화가 필요하다고 판단한다.If there is no free space for storing the log in the log block area in step 304, the multi-flash memory management apparatus proceeds to step 306 to determine whether log block optimization is necessary. 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.

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

이때, 프리 블록 하나를 로그 블록으로 할당 할 때, 블록을 구성하는 페이지는 멀티 플래시 메모리를 구성하는 다수의 플래시 메모리 중에서 단일의 플래시 메모리를 이용하여 구성한다.At this time, when allocating one free block to a log block, a page constituting the block is configured by using a single flash memory among a plurality of flash memories constituting the multi-flash memory.

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

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

도 4를 참조하면 본 발명의 멀티 플래시 메모리 관리 장치는 400단계에서 로그 블록 최적화 이벤트의 발생을 감지하면 402단계로 진행하여 합병(Merge) 연산 시간과 로그 블록 무효화(LBI: Log block invalidation) 연산 시간을 계산하고, 404단계로 진행하여 합병 연산 시간과 LBI 연산 시간을 비교한다.Referring to FIG. 4, if the multi-flash memory management apparatus of the present invention detects the occurrence of the log block optimization event in step 400, the multi-flash memory management apparatus proceeds to step 402. The merge operation time and the log block invalidation (LBI) operation time are performed. In operation 404, 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 + a)) + (nDB_Merge * nDB_Valid * tCB)Merge operation time = (nNewFree * nLB_Valid * (tCB + a)) + (nDB_Merge * nDB_Valid * tCB)

여기서, nNewFree는 프리 블록에 저장될 새로운 블록의 수 이고, nLB_Valid는 한 로그 블록 내에 존재하는 평균 유효한(Valid) 페이지 수 이고, nDB_Valid는 한 데이터 블록 에 존재하는 유효한(Valid) 페이지 수 이고, tCB는 플래시 메모리에서 Copyback으로 한 페이지(Page)를 읽어서 쓰는데 소요되는 시간이고, a는 Copyback을 수행할 수 없을 경우 일반 복사시 추가적으로 소요되는 시간이고, 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 It takes time to read and write one page from Flash memory to Copyback, a is additional time for normal copy when Copyback cannot be performed, and nDB_Merge is merged and deleted data block. ).

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

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

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

여기서, nNewFree는 프리 블록에 저장될 새로운 블록의 수 이고, nLB_Valid는 한 로그 블록 내에 존재하는 평균 유효한(Valid) 페이지 수 이고, tCB는 플래시 메모리에서 Copyback으로 한 페이지(Page)를 읽어서 쓰는데 소요되는 시간이고, a는 Copyback을 수행할 수 없을 경우 일반 복사시 추가적으로 소요되는 시간이고, 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. A is additional time for normal copy if copyback cannot be performed, N is the number of valid pages found in the preset old log blocks, and M is available in the old log block. Number of pages, nPage is the total number of pages within a block.

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

406단계에서 412단계는 로그 블록 무효화의 과정으로 아래의 도 5의 예제와 같이 수행될 수 있다.Step 406 to step 412 is a log block invalidation process, which may be performed as shown in the example of FIG. 5 below.

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

414단계에서 420단계는 데이터 블록과 로그 블록의 합병 과정으로 아래의 도 6의 예제와 같이 수행될 수 있다.In operation 414, operation 420 may be performed as a merge process of the data block and the log block, as shown in the example of FIG. 6 below.

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

도 5를 참조하면 멀티 플래시 메모리 관리 장치는 LBI가 필요한 멀티 플래시 메모리(510) 내의 로그 블록 영역(516)에서 기설정된 기간만큼 오래된 로그 블 록인 0번째 로그 블록(Log Block-0) 내부의 유효한 값들을 검색한다. 그리고, 검색한 유효 페이지들을 사용 가능한 페이지를 가진 2번째 로그 블록(Log Block-2)으로 복사한다. 만약 사용 가능한 페이지를 가진 오래되지 않은 로그 블록이 존재하지 않으면 프리 블록 영역(514)에서 새로운 프리 블록을 새로운 로그 블록으로 할당 받고, 할당받은 프리 블록에 유효 페이지를 복사한다.Referring to FIG. 5, the multi-flash memory management apparatus has a valid value inside a 0-th log block Log Log-0, which is a log block older than a predetermined period of time in a log block area 516 in the multi-flash memory 510 requiring LBI. Search them. 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 514, and a valid page is copied to the allocated free block.

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

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

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

도 6을 참조하면 멀티 플래시 메모리 관리 장치는 합병이 필요한 멀티 플래시 메모리(610) 내의 데이터 블록 영역(612)에서 갱신 등으로 인해 유효하지 않은 데이터를 가진 합병될 데이터 블록을 검색하고, 프리 블록 영역(614)에서 합병될 데이터 블록의 수만큼 프리 블록을 할당하고, 할당 받은 프리 블록에 데이터 블록 영역(612)의 데이터 블록과 로그 블록 영역(616)의 로그 블록들 내의 유효 한(Valid) 값만을 복사하여 새로운 데이터 블록들로 구성한다.Referring to FIG. 6, the multi-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 612 in the multi-flash memory 610 that needs to be merged. In 614, free blocks are allocated as many as the number of data blocks to be merged, and only valid values within the data blocks of the data block area 612 and the log blocks of the log block area 616 are copied to the allocated free blocks. To configure new data blocks.

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

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.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 block diagram illustrating a multi-flash memory management apparatus using a multi-chip merge delay full associative sector conversion scheme (M-FAST) according to an embodiment of the present invention;

도 2는 본 발명의 실시예에 따른 멀티 플래시 메모리 관리 장치에서 멀티 플래시 메모리의 주소 할당 예를 도시한 도면,2 is a diagram illustrating an example of address allocation of a multi-flash memory in the multi-flash memory management apparatus according to an embodiment of the present invention;

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

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

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

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

Claims (16)

데이터를 저장하는 데이터 블록 영역(Data block area)과 로그들을 저장하는 로그 블록 영역(Log block area)과 사용 가능한 여유 공간을 나타내는 프리 블록 영역(Free block area)으로 구분하는 다수의 플래시 메모리를 가지는 멀티 플래시 메모리; 및Multiple flash memory divided into a data block area for storing data, a log block area for storing logs, and a free block area representing available free space. Flash memory; And 상기 멀티 플래시 메모리의 상기 다수의 플래시 메모리 각각에 대해 논리 주소를 순차적으로 번갈아 할당하는 스트라이핑(Striping) 기법을 이용해 할당하고, 상기 멀티 플래시 메모리에 저장된 데이터의 삭제 또는 갱신 이벤트가 발생할 때, 상기 로그 블록 영역에 사용 가능한 여유 공간이 존재하지 않고 로그 블록 최적화가 필요하면 로그 블록 무효화(LBI: Log block invalidation) 연산 시간과 합병(Merge) 연산 시간을 계산하고, 상기 LBI 연산 시간이 상기 합병 연산 시간보다 작으면 LBI 연산을 수행하는 플래시 변환 계층을 포함하고,The log block may be allocated using a striping technique of sequentially allocating logical addresses to each of the plurality of flash memories of the multi-flash memory, and when a deletion or update event of data stored in the multi-flash memory occurs. If there is no free space available in the area and log block optimization is required, log block invalidation (LBI) operation time and merge operation time are calculated, and the LBI operation time is less than the merge operation time. Includes a flash translation layer that performs LBI operations, 상기 플래시 변환 계층은, 한개의 로그 블록 내에 존재하는 평균 유효한(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. Multi-flash memory management device, characterized in that switching to. 제1항에 있어서, 상기 플래시 변환 계층은,The method of claim 1, wherein the flash translation layer, 상기 멀티 플래시 메모리에 저장된 데이터의 삭제 또는 갱신 이벤트가 발생할 때, 상기 로그 블록 영역에 사용 가능한 여유 공간이 존재하면, 삭제 또는 갱신에 관한 로그를 상기 로그 블록 영역의 여유 공간에 기재하도록 함을 특징으로 하는 멀티 플래시 메모리 관리 장치.When a deletion or update event of data stored in the multi-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. Multi 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 multi-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 stored in the free block area. And allocating to an area and writing a log relating to deletion or update in the free space of the log block area. 제1항에 있어서,The method of claim 1, 상기 데이터 블록, 상기 프리 블록 및, 상기 로그 블록을 구성할 때, 블록을 구성하는 페이지는 상기 멀티 플래시 메모리를 구성하는 다수의 플래시 메모리 중에서 단일의 플래시 메모리를 이용하여 구성함을 특징으로 하는 멀티 플래시 메모리 관리 장치.When configuring the data block, the free block, and the log block, a page constituting the block is configured by using a single flash memory among a plurality of flash memories constituting the multi flash memory. Memory Management Unit. 제1항에 있어서, 상기 플래시 변환 계층은,The method of claim 1, wherein the flash translation layer, 상기 멀티 플래시 메모리 내의 프리 블록의 수가 기설정한 임계 프리 블록수 보다 적거나 로그 블록 수가 기설정한 임계 로그 블록수 보다 많으면 상기 로그 블록 최적화를 수행함을 특징으로 하는 멀티 플래시 메모리 관리 장치.And performing log block optimization when the number of free blocks in the multi-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>을 이용해서 계산 함을 특징으로 하는 멀티 플래시 메모리 관리 장치.The LBI operation time is calculated using Equation 3 below. If (N <= M); LBI 연산 시간 = (nNewFree * nLB_Valid * (tCB + a)) If (N <= M); LBI operation time = (nNewFree * nLB_Valid * (tCB + a)) If (N > M); LBI 연산 시간 = (nNewFree * nLB_Valid * (tCB + a)) If (N> M); LBI operation time = (nNewFree * nLB_Valid * (tCB + a)) + ({(N-M)/nPage + 1} * nLB_Valid * (tCB + a))+ ({(N-M) / nPage + 1} * nLB_Valid * (tCB + a)) 여기서, nNewFree는 프리 블록에 저장될 새로운 블록의 수 이고, nLB_Valid는 한 로그 블록 내에 존재하는 평균 유효한(Valid) 페이지 수 이고, tCB는 플래시 메모리에서 Copyback으로 한 페이지(Page)를 읽어서 쓰는데 소요되는 시간이고, a는 Copyback을 수행할 수 없을 경우 일반 복사시 추가적으로 소요되는 시간이고, 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. A is additional time for normal copy if copyback cannot be performed, N is the number of valid pages found in the preset old log blocks, and M is available in the old log block. Number of pages, nPage is the total number of pages within a block. 제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 performing the merge operation. 제7항에 있어서, 상기 플래시 변환 계층은, The method of claim 7, wherein the flash translation layer, 상기 합병 연산 시간을 아래 <수학식 4>을 이용해서 계산 함을 특징으로 하는 멀티 플래시 메모리 관리 장치.And calculating the merge operation time using Equation 4 below. 합병 연산 시간 = (nNewFree * nLB_Valid * (tCB + a))Merger operation time = (nNewFree * nLB_Valid * (tCB + a)) + (nDB_Merge * nDB_Valid * tCB)+ (nDB_Merge * nDB_Valid * tCB) 여기서, nNewFree는 프리 블록에 저장될 새로운 블록의 수 이고, nLB_Valid는 한 로그 블록 내에 존재하는 평균 유효한(Valid) 페이지 수 이고, nDB_Valid는 한 데이터 블록에 존재하는 유효한(Valid) 페이지 수 이고, tCB는 플래시 메모리에서 Copyback으로 한 페이지(Page)를 읽어서 쓰는데 소요되는 시간이고, a는 Copyback을 수행할 수 없을 경우 일반 복사시 추가적으로 소요되는 시간이고, 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 It takes time to read and write one page from Flash memory to Copyback, a is additional time for normal copy when Copyback cannot be performed, and nDB_Merge is merged and deleted data block. ). 멀티 플래시 메모리에 포함된 다수의 플래시 메모리 각각에 대해 논리 주소를 순차적으로 번갈아 할당하는 스트라이핑 기법을 이용해서 할당하는 단계;Assigning each of a plurality of flash memories included in the multi-flash memory using a striping technique of sequentially allocating logical addresses; 상기 멀티 플래시 메모리에 저장된 데이터의 삭제 또는 갱신 이벤트의 발생을 감지하면, 로그 블록 영역에 로그를 저장할 수 있는 사용 가능한 여유 공간이 존재하는지 확인하는 단계;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 multi-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. Multi-flash memory management in a multi-flash memory management device, characterized in that the conversion to free blocks. 제9항에 있어서, 10. The method of claim 9, 확인결과 상기 로그 블록 영역에 사용 가능한 여유 공간이 존재하면,If there is free space available in the log block area as a result of the check, 삭제 또는 갱신에 관한 로그를 상기 로그 블록 영역의 여유 공간에 기재하는 단계를 더 포함함을 특징으로 하는 멀티 플래시 메모리 관리 장치에서 멀티 플래시 메모리를 관리하는 방법.And writing a log relating to deletion or update in the free space of the log block area in the multi-flash memory management device. 제9항에 있어서,10. The method of claim 9, 상기 로그 블록 최적화의 필요 여부를 확인하는 단계의 확인결과 상기 로그 블록 최적화가 필요하지 않으면,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 a log relating to deletion or update in the free space of the log block area in the multi-flash memory management device. 제9항에 있어서,10. The method of claim 9, 데이터 블록, 프리 블록 및, 상기 로그 블록을 구성할 때, 블록을 구성하는 페이지는 상기 멀티 플래시 메모리를 구성하는 다수의 플래시 메모리 중에서 단일의 플래시 메모리를 이용하여 구성함을 특징으로 하는 멀티 플래시 메모리 관리 장치에서 멀티 플래시 메모리를 관리하는 방법.When configuring the data block, the free block, and the log block, the pages constituting the block are configured using a single flash memory among a plurality of flash memories constituting the multi flash memory. How to manage multi flash memory on your device. 제9항에 있어서,10. The method of claim 9, 상기 로그 블록 최적화는,The log block optimization, 상기 플래시 메모리 내의 프리 블록의 수가 기설정한 임계 프리 블록수 보다 적거나 로그 블록 수가 기설정한 임계 로그 블록수 보다 많으면 수행함을 특징으로 하는 멀티 플래시 메모리 관리 장치에서 멀티 플래시 메모리를 관리하는 방법.And performing the operation 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. 제9항에 있어서,10. The method of claim 9, 상기 LBI 연산 시간을 아래 <수학식 5>을 이용해서 계산함을 특징으로 하는 멀티 플래시 메모리 관리 장치에서 멀티 플래시 메모리를 관리하는 방법.And managing the LBI operation time using Equation 5 below. If (N <= M); LBI 연산 시간 = (nNewFree * nLB_Valid * (tCB + a)) If (N <= M); LBI operation time = (nNewFree * nLB_Valid * (tCB + a)) If (N > M); LBI 연산 시간 = (nNewFree * nLB_Valid * (tCB + a)) If (N> M); LBI operation time = (nNewFree * nLB_Valid * (tCB + a)) + ({(N-M)/nPage + 1} * nLB_Valid * (tCB + a))+ ({(N-M) / nPage + 1} * nLB_Valid * (tCB + a)) 여기서, nNewFree는 프리 블록에 저장될 새로운 블록의 수 이고, nLB_Valid는 한 로그 블록 내에 존재하는 평균 유효한(Valid) 페이지 수 이고, tCB는 플래시 메모리에서 Copyback으로 한 페이지(Page)를 읽어서 쓰는데 소요되는 시간이고, a는 Copyback을 수행할 수 없을 경우 일반 복사시 추가적으로 소요되는 시간이고, 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. A is additional time for normal copy if copyback cannot be performed, N is the number of valid pages found in the preset old log blocks, and M is available in the old log block. Number of pages, nPage is the total number of pages within a block. 제9항에 있어서,10. The method of claim 9, 상기 LBI 연산 시간이 상기 합병 연산 시간보다 크거나 같으면 If the LBI operation time is greater than or equal to the merge operation time 데이터 블록 영역에서 갱신 등으로 인해 유효하지 않은 데이터를 가진 합병될 데이터 블록을 검색하고, 상기 합병될 데이터 블록의 수만큼 프리 블록을 할당하고, 할당한 프리 블록에 데이터 블록들과 로그 블록들 중 유효한(Valid) 값만을 복사하여 새로운 데이터 블록 영역을 생성하고, 복사가 완료된 상기 데이터 블록들과 상기 로그 블록들을 삭제하도록 하는 상기 합병 연산을 수행하는 단계를 더 포함함을 특징으로 하는 멀티 플래시 메모리 관리 장치에서 멀티 플래시 메모리를 관리하는 방법.Search for a data block to be merged with invalid data due to an update or the like in the data block area, allocate a free block as many as the number of data blocks to be merged, and apply a valid block among data blocks and log blocks to the allocated free block. And generating a new data block area by copying only the (Valid) value, and performing the merge operation to delete the copied data blocks and the log blocks. To manage multi flash memory on Windows. 제15항에 있어서,The method of claim 15, 상기 합병 연산 시간을 아래 <수학식 6>을 이용해서 계산함을 특징으로 하는 멀티 플래시 메모리 관리 장치에서 멀티 플래시 메모리를 관리하는 방법.And managing the merge operation time using Equation 6 below. 합병 연산 시간 = (nNewFree * nLB_Valid * (tCB + a))Merger operation time = (nNewFree * nLB_Valid * (tCB + a)) + (nDB_Merge * nDB_Valid * tCB)+ (nDB_Merge * nDB_Valid * tCB) 여기서, nNewFree는 프리 블록에 저장될 새로운 블록의 수 이고, nLB_Valid는 한 로그 블록 내에 존재하는 평균 유효한(Valid) 페이지 수 이고, nDB_Valid는 한 데이터 블록 에 존재하는 유효한(Valid) 페이지 수 이고, tCB는 플래시 메모리에서 Copyback으로 한 페이지(Page)를 읽어서 쓰는데 소요되는 시간이고, a는 Copyback을 수행할 수 없을 경우 일반 복사시 추가적으로 소요되는 시간이고, 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 It takes time to read and write one page from Flash memory to Copyback, a is additional time for normal copy when Copyback cannot be performed, and nDB_Merge is merged and deleted data block. ).
KR1020080099740A 2008-10-10 2008-10-10 Multiple flash memory management method and apparatus for merge operation reduction in a fast algorithm base ftl KR101021364B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080099740A KR101021364B1 (en) 2008-10-10 2008-10-10 Multiple 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
KR1020080099740A KR101021364B1 (en) 2008-10-10 2008-10-10 Multiple flash memory management method and apparatus for merge operation reduction in a fast algorithm base ftl

Publications (2)

Publication Number Publication Date
KR20100040560A KR20100040560A (en) 2010-04-20
KR101021364B1 true KR101021364B1 (en) 2011-03-14

Family

ID=42216631

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080099740A KR101021364B1 (en) 2008-10-10 2008-10-10 Multiple flash memory management method and apparatus for merge operation reduction in a fast algorithm base ftl

Country Status (1)

Country Link
KR (1) KR101021364B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101655008B1 (en) * 2014-11-27 2016-09-06 숭실대학교산학협력단 Apparatus and method for real-time multi-chip flash storage

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
KR20080073499A (en) * 2007-02-06 2008-08-11 삼성전자주식회사 Memory system performing group mapping operation and address mapping method thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
KR20080073499A (en) * 2007-02-06 2008-08-11 삼성전자주식회사 Memory system performing group mapping operation and address mapping method thereof

Non-Patent Citations (1)

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

Also Published As

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

Similar Documents

Publication Publication Date Title
CN110678836B (en) Persistent memory for key value storage
KR101717644B1 (en) Apparatus, system, and method for caching data on a solid-state storage device
US10402091B1 (en) Managing data in log-structured storage systems
US10133511B2 (en) Optimized segment cleaning technique
US9471500B2 (en) Bucketized multi-index low-memory data structures
US9990277B2 (en) System and method for efficient address translation of flash memory device
CN108604165B (en) Storage device
US7694087B2 (en) Duplicate data storing system, duplicate data storing method, and duplicate data storing program for storage device
US9489239B2 (en) Systems and methods to manage tiered cache data storage
KR20170010729A (en) Storage system and method for metadata management in Non-volatile memory
KR101017067B1 (en) Locality-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
KR20110117099A (en) Mapping address table maintenance in a memory device
KR102349999B1 (en) Semiconductor device and operating method thereof
KR20100115090A (en) Buffer-aware garbage collection technique for nand flash memory-based storage systems
US11797207B2 (en) Base and compressed difference data deduplication
Jung et al. Data loss recovery for power failure in flash memory storage systems
CN115904255A (en) Data request method, device, equipment and storage medium
KR100987251B1 (en) Flash memory management method and apparatus for merge operation reduction in a fast algorithm base ftl
KR101077901B1 (en) Apparatus and method for managing flash memory using log block level mapping algorithm
KR101021364B1 (en) Multiple flash memory management method and apparatus for merge operation reduction in a fast algorithm base ftl
KR101153688B1 (en) Nand flash memory system and method for providing invalidation chance to data pages
US20230221864A1 (en) Efficient inline block-level deduplication using a bloom filter and a small in-memory deduplication hash table
US20240273068A1 (en) Electronic devices inheriting lifetime information, and methods of operating the same
US20240338322A1 (en) Bin-less metadata pages allocator for storage cluster with log-structured metadata

Legal Events

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

Payment date: 20140207

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee