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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/46—Caching storage objects of specific type in disk cache
- G06F2212/461—Sector 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
본 발명은 완전 연관 섹터 변환 기법을 사용하는 플래시 변환 계층에서 합병연산을 줄이기 위한 멀티 플래시 메모리 관리 방법 및 장치에 관한 것으로, 특히, 완전 연관 섹터 변환 기법(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)은 플래시 메모리(130)에서 데이터의 물리적 주소를 가지는 테이블이다. 프리 블록 맵(Free block Map)(114)은 플래시 메모리(130)에서 사용 가능한 여유 공간의 물리적 주소를 가지는 테이블이다. 로그 블록 맵(Log block Map)(116)은 플래시 메모리(130)에서 로그의 물리적 주소를 가지는 테이블이다. 이때, 플래시 메모리(130) 내의 물리적 주소는 논리적인 주소에 대응한다.The
플래시 메모리 제어부(120)는 플래시 메모리(130)를 제어하는 장치로서 플래시 메모리(130)에 대한 읽기(Read), 쓰기(Program), 삭제(Erase)를 제어한다.The
멀티 플래시 메모리(130)는 다수의 플래시 메모리(132, 134, 136)들을 포함하여 구성한다. 플래시 메모리(132, 134, 136)들 각각은 크게 3가지 영역으로 구분 할 수 있다. 데이터들을 저장하는 데이터 블록들로 구성된 데이터 블록 영역(Data block area), 플래시 메모리(132, 134, 136)의 사용 가능한 여유 공간을 나타내는 프리 블록 영역(Free block area) 및, 데이터의 삭제 및 갱신 시 발생하는 로그들을 저장하는 로그 블록들로 구성된 로그 블록 영역(Log block area)으로 구분할 수 있다.The
이때, 플래시 메모리(132, 134, 136)는 페이지(Page)와 블록(Block)의 단위로 관리된다. 즉, 플래시 메모리(132, 134, 136)는 다수의 블록들의 집합이며, 블록은 다수의 페이지로 구성되어있다. 플래시 메모리(130)에서 발생하는 읽기(Read)/쓰기(Program) 작업은 페이지의 단위로 수행되며 이미 써진 페이지에 덮어쓰기(Overwrite) 작업을 수행할 수 없다. 삭제(Erase) 작업은 블록의 단위로 수행되며 읽기나 쓰기에 비하여 많은 시간을 소모한다.In this case, the
플래시 변환 계층(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
그리고, 플래시 변환 계층(100)은 다수의 플래시 메모리(132, 134, 136)들을 포함하는 멀티 플래시 메모리(130)에 대하여 논리 주소를 아래 도 2와 같이 스트라이핑(Striping) 할당하고, 다수의 플래시 메모리(132, 134, 136)를 하나의 플래시 메모리와 같이 사용한다.The
도 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
도 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
하지만, 로그 블록 영역에 로그를 저장할 수 있는 여유 공간이 존재하지 않으면, 플래시 변환 계층(100)은 프리 블록의 수가 기설정한 임계 프리 블록수 보다 적거나 로그 블록 수가 기설정한 임계 로그 블록수 보다 많은지 확인하여 로그 블 록 최적화의 필요 여부를 확인한다. 확인결과 로그 블록 최적화가 필요하지 않으면, 플래시 변환 계층(100)은 프리 블록 맵(114)와 로그 블록 맵(116)을 수정하여 프리 블록 하나를 로그 블록으로 할당한다.However, if there is no free space for storing logs in the log block area, the
프리 블록 하나를 로그 블록으로 할당 할 때, 블록을 구성하는 페이지는 멀티 플래시 메모리(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
한편, 플래시 변환 계층(100)은 로그 블록 최적화가 필요하면 합병(Merge) 연산 시간과 로그 블록 무효화(LBI: Log block invalidation) 연산 시간을 비교한다. LBI 연산 시간이 합병 연산 시간보다 작거나 같으면 플래시 변환 계층(100)은 로그 블록 무효화를 수행한다.Meanwhile, if log block optimization is required, the
하지만, LBI 연산 시간이 합병 연산 시간보다 크면 플래시 변환 계층(100)은 데이터 블록과 로그 블록의 합병을 수행한다. 로그 블록 최적화의 상세한 설명은 이후 도 4를 참조하여 후술한다.However, if the LBI operation time is greater than the merge operation time, the
이하, 상기와 같이 구성된 본 발명에 따른 멀티 칩 합병 지연 완전 연관 섹터 변환 기법을 사용하는 멀티 플래시 메모리 관리 방법을 아래에서 도면을 참조하여 설명한다.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
이후, 302단계에서 멀티 플래시 메모리에 저장된 데이터의 삭제 또는 갱신 이벤트의 발생을 감지하면, 304단계로 진행하여 로그 블록 영역에 로그를 저장할 수 있는 사용 가능한 여유 공간이 존재하는지 확인하고, 확인결과 존재하면 312단계로 진행하여 삭제 또는 갱신의 로그를 로그 블록의 여유 페이지(page)에 기재한다.Thereafter, in
304단계의 확인결과 로그 블록 영역에 로그를 저장할 수 있는 여유 공간이 존재하지 않으면, 멀티 플래시 메모리 관리 장치는 306단계로 진행하여 로그 블록 최적화의 필요 여부를 확인한다. 로그 블록 최적화의 필요 여부 판단 기준은 프리 블록의 수가 기설정한 임계 프리 블록수 보다 적거나 로그 블록 수가 기설정한 임계 로그 블록수 보다 많은 경우에 로그 블록 최적화가 필요하다고 판단한다.If there is no free space for storing the log in the log block area in
306단계의 확인결과 로그 블록 최적화가 필요하지 않으면, 멀티 플래시 메모리 관리 장치는 308단계로 진행하여 프리 블록 하나를 로그 블록으로 할당하고, 312단계로 진행하여 삭제 또는 갱신의 로그를 로그 블록의 여유 페이지(page)에 기재한다.If the log block optimization is not necessary in
이때, 프리 블록 하나를 로그 블록으로 할당 할 때, 블록을 구성하는 페이지는 멀티 플래시 메모리를 구성하는 다수의 플래시 메모리 중에서 단일의 플래시 메모리를 이용하여 구성한다.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
도 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
이때, 합병 연산 시간은 아래 <수학식 1>과 같이 구할 수 있다.In this case, the merge operation time may be obtained as in
여기서, 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
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
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
414단계에서 420단계는 데이터 블록과 로그 블록의 합병 과정으로 아래의 도 6의 예제와 같이 수행될 수 있다.In
도 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
이후, 멀티 플래시 메모리 관리 장치는 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
이와 같이 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
도 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
이후, 멀티 플래시 메모리 관리 장치는 합병한 멀티 플래시 메모리(620)와 같이 유효한(Valid) 값만을 복사하여 새로운 데이터 블록들로 구성하는 데이터 블록 영역(622)을 구성하고, 복사가 완료된 데이터 블록들과 로그 블록들을 삭제하여 프리 블록 영역(624)화 한다.Subsequently, the multi-flash memory management apparatus forms a
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.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)
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)
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)
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 |
-
2008
- 2008-10-10 KR KR1020080099740A patent/KR101021364B1/en not_active IP Right Cessation
Patent Citations (3)
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)
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 |