KR100987251B1 - Flash memory management method and apparatus for merge operation reduction in a fast algorithm base ftl - Google Patents
Flash memory management method and apparatus for merge operation reduction in a fast algorithm base ftl Download PDFInfo
- Publication number
- KR100987251B1 KR100987251B1 KR1020080099739A KR20080099739A KR100987251B1 KR 100987251 B1 KR100987251 B1 KR 100987251B1 KR 1020080099739 A KR1020080099739 A KR 1020080099739A KR 20080099739 A KR20080099739 A KR 20080099739A KR 100987251 B1 KR100987251 B1 KR 100987251B1
- Authority
- KR
- South Korea
- Prior art keywords
- log
- block
- valid
- blocks
- operation time
- Prior art date
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
- G06F12/0684—Configuration or reconfiguration with feedback, e.g. presence or absence of unit detected by addressing, overflow detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1727—Details of free space management performed by the file system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1847—File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
완전 연관 섹터 변환 기법을 사용하는 플래시 변환 계층에서 합병연산을 줄이기 위한 플래시 메모리 관리 방법 및 장치를 개시한다. 플래시 메모리 관리 방법은, 플래시 메모리에 저장된 데이터의 삭제 또는 갱신 이벤트의 발생을 감지하면, 로그 블록 영역에 로그를 저장할 수 있는 사용 가능한 여유 공간이 존재하는지 확인하는 단계, 확인결과 상기 로그 블록 영역에 사용 가능한 여유 공간이 존재하지 않으면, 로그 블록 최적화의 필요 여부를 확인 하는 단계, 확인 결과 상기 로그 블록 최적화가 필요하면 로그 블록 무효화(LBI: Log Block Invalidation) 연산 시간과 합병(Merge) 연산 시간을 계산하는 단계 및, 상기 LBI 연산 시간이 상기 합병 연산 시간보다 작으면 LBI 연산을 수행하는 단계를 포함한다.Disclosed are a flash memory management method and apparatus for reducing merge operation in a flash translation layer that uses a fully associated sector conversion technique. When the flash memory management method detects the occurrence of a data deletion or update event stored in the flash memory, checking whether there is an available free space for storing a log in the log block area. If there is no free space available, determining whether log block optimization is required, and if the log block optimization is necessary, calculating log block invalidation (LBI) operation time and merging operation time. And performing an LBI operation if the LBI operation time is less than the merge operation time.
플래시 변환 계층, FTL, FAST, M-FAST Flash translation layer, FTL, FAST, M-FAST
Description
본 발명은 완전 연관 섹터 변환 기법을 사용하는 플래시 변환 계층에서 합병연산을 줄이기 위한 플래시 메모리 관리 방법 및 장치에 관한 것으로, 특히, 완전 연관 섹터 변환 기법(FAST: Fully Associative Sector Translation)을 사용하는 플래시 메모리에서 데이터 블록과 로그 블록의 합병(Merge)을 지연시키는 플래시 메모리 관리 방법 및 장치에 관한 것이다.BACKGROUND OF THE
플래시 메모리(Flash Memory)를 저장장치로 사용하기 위해서는 순차적인 주소영역을 플래시 메모리의 구조에 적합하게 전환시켜주는 플래시 변환 계층(FTL: Flash Translation Layer)이 필요하다. 그러나 일반적인 전환 방식을 사용할 경우 쓰기, 지우기 성능이 매우 떨어지는 플래시 메모리의 특성으로 인해 성능이 낮아지는 문제가 발생한다. 이를 위해 플래시 메모리를 데이터(Data) 영역과 로그(Log) 영역으로 나누어 관리하는 플래시 변환 계층 기법이 제안되었다. 이 방식을 용할 경우 데이터 영역에는 원본 데이터가 저장되고 로그 영역에는 기존 데이터에서 수정된 값이 저장된다. 그리고 로그 영역의 공간이 부족해지면 데이터 영역과 로그 영역을 합병(Merge)하여 새로운 데이터 영역으로 갱신하고 기존의 로그 영역은 초기화된다.In order to use flash memory as a storage device, a flash translation layer (FTL) that converts a sequential address region into a structure of a flash memory is required. However, when using the general switching method, the performance of the flash memory due to the poor write and erase performance is low. To this end, a flash translation layer technique has been proposed that manages flash memory into data and log areas. In this way, the original data is stored in the data area, and the modified values of existing data are stored in the log area. When the space of the log area becomes insufficient, the data area and the log area are merged to update the new data area, and the existing log area is initialized.
플래시 변환 계층 중에서 로그 블록(Log block) 사상 기법을 사용하는 완전 연관 섹터 변환 기법(FAST: Full Associative Sector Translation)은 다른 방식에 비하여 높은 쓰기 연산의 성능을 보인다. FAST에서는 쓰기 성능을 개선시키기 위하여 완전 연관(Full Associative)방식을 사용하였다. 이는 데이터 수정 요청이 발생할 경우 데이터 블록(Data block)의 주소에 관계없이 로그 블록(Log block)에 순차적으로 로그를 기록하는 방식이다. 이러한 방식을 통해 로그 영역의 사용률을 높여 공간이 부족해지는 것을 지연시킨다. 이로 인해 로그 영역의 공간이 부족해지는 시점이 지연되어 합병연산의 수가 감소하여 전반적인 플래시 메모리의 성능이 향상된다.Among the flash translation layers, Full Associative Sector Translation (FAST), which uses log block mapping, shows higher performance of write operations than other methods. FAST uses full associative method to improve write performance. When a data modification request occurs, the log is sequentially recorded in the log block regardless of the address of the data block. In this way, the utilization of log areas is increased, which delays running out of space. This delays the time when the log area runs out of space, reducing the number of merge operations and improving overall flash memory performance.
FAST 기법은 시스템의 구성에 따라 정적인 크기의 로그 영역을 가진다. 로그 영역의 크기는 로그 영역의 주소 사상 테이블(Address Mapping Table)을 저장할 수 있는 메모리 영역의 크기와 주소 사상 테이블을 검색하는데 소요되는 시간에 의해 결정된다. 가능한 한 큰 로그 영역을 가질수록 합병의 빈도는 줄어들지만 로그 영역의 공간이 부족해질 때 합병되는 블록의 수가 많아져 전체 합병 소요시간은 동일하다. 따라서 어느 정도 작은 크기의 로그 영역만을 보유하는 것이 기존 FAST에 는 효율적이다.The FAST technique has a static log area depending on the system configuration. The size of the log area is determined by the size of the memory area that can store the address mapping table of the log area and the time required to search the address mapping table. The larger the log area as possible, the less frequent the merger, but the total merge time is the same as the number of blocks merged when the log area runs out of space. Therefore, it is efficient for existing FAST to have only a small log area.
FAST 기법에서는 로그 영역이 부족해질 경우 합병연산이 발생한다. 합병 연산은 기존 데이터 블록과 로그 블록의 데이터를 메모리(Memory)로 백업(Backup)하는 작업, 새 프리 블록(Free block)에 백업된 데이터들을 복사하는 작업, 그리고 기존 데이터 블록과 로그 블록을 삭제하는 작업으로 이루어진다. 이 때 발생하는 지연시간은 합병되는 데이터 블록과 로그 블록의 수에 비례하여 크다.In the FAST technique, a merge operation occurs when the log area becomes insufficient. The merge operation backs up the data of the existing data block and the log block to memory, copies the data backed up to the new free block, and deletes the existing data block and the log block. The work is done. The delay that occurs at this time is large in proportion to the number of data and log blocks to be merged.
만약 데이터 블록에 대한 수정 연산이 자주 발생할 경우 로그 영역은 그에 비례하여 자주 합병될 것이다. 그로 인해 합병 연산을 위한 블록의 읽기/쓰기/삭제 연산이 자주 발생하여 전반적인 성능 저하를 가져온다.If modification operations to data blocks occur frequently, the log areas will be merged proportionately. As a result, the read / write / delete operations of the block for the merge operation frequently occur, resulting in overall performance degradation.
본 발명은 완전 연관 섹터 변환 기법을 사용하는 플래시 변환 계층에서 합병연산을 줄이기 위한 플래시 메모리 관리 방법 및 장치를 제공한다.The present invention provides a flash memory management method and apparatus for reducing merge operation in a flash translation layer using a fully associative sector conversion technique.
본 발명은 완전 연관 섹터 변환 기법(FAST: Full Associative Sector Translation)을 사용하는 플래시 메모리에서 데이터 블록과 로그 블록의 합병(Merge)을 지연시키는 플래시 메모리 관리 방법 및 장치를 제공한다.The present invention provides a flash memory management method and apparatus for delaying merging of data blocks and log blocks in flash memory using a full associative sector translation (FAST) technique.
본 발명은 완전 연관 섹터 변환 기법(FAST: Full Associative Sector Translation)을 사용하는 플래시 메모리에서 프리 블록을 이용하여 로그 블록의 수를 적응적으로 변동하여 데이터 블록과 로그 블록의 합병(Merge)을 지연시키는 플래시 메모리 관리 방법 및 장치를 제공한다.The present invention adaptively varies the number of log blocks using a free block in a flash memory using a full associative sector translation (FAST) technique to delay merging of data blocks and log blocks. Provided are a flash memory management method and apparatus.
본 발명은 완전 연관 섹터 변환 기법(FAST: Full Associative Sector Translation)을 사용하는 플래시 메모리에서 오래된 로그 블록 내의 유효하지 않은 값들을 삭제하여 로그 블록의 수를 줄이는 로그 블록 무효화(LBI: Log block invalidation) 기법을 이용하여 데이터 블록과 로그 블록의 합병(Merge)을 지연시키는 플래시 메모리 관리 방법 및 장치를 제공한다.The present invention provides a log block invalidation (LBI) technique that reduces the number of log blocks by deleting invalid values in old log blocks in flash memory using FAST (Full Associative Sector Translation). Provided are a flash memory management method and apparatus for delaying merging of a data block and a log block.
본 발명의 실시예에 따른 플래시 메모리 관리 장치는, 데이터를 저장하는 데이터 블록 영역(Data block area)과 로그들을 저장하는 로그 블록 영역(Log block area)과 사용 가능한 여유 공간을 나타내는 프리 블록 영역(Free block area)을 포함하는 플래시 메모리; 및, 상기 플래시 메모리에 저장된 데이터의 삭제 또는 갱신 이벤트가 발생할 때, 상기 로그 블록 영역에 사용 가능한 여유 공간이 존재하지 않고 로그 블록 최적화가 필요하면 로그 블록 무효화(LBI: Log block invalidation) 연산 시간과 합병(Merge) 연산 시간을 계산하고, 상기 LBI 연산 시간이 상기 합병 연산 시간보다 작으면 LBI 연산을 수행하는 플래시 변환 계층을 포함한다.An apparatus for managing flash memory according to an embodiment of the present invention includes a data block area storing data, a log block area storing logs, and a free block area representing available free space. a flash memory including a block area; And when a deletion or update event of data stored in the flash memory occurs, when there is no free space available in the log block area and log block optimization is required, merge with a log block invalidation (LBI) operation time. And a flash translation layer that calculates a merge operation time and performs an LBI operation when the LBI operation time is less than the merge operation time.
본 발명의 실시예에 따른 플래시 메모리 관리 방법은, 플래시 메모리에 저장된 데이터의 삭제 또는 갱신 이벤트의 발생을 감지하면, 로그 블록 영역에 로그를 저장할 수 있는 사용 가능한 여유 공간이 존재하는지 확인하는 단계; 확인결과 상기 로그 블록 영역에 사용 가능한 여유 공간이 존재하지 않으면, 로그 블록 최적화의 필요 여부를 확인 하는 단계: 확인 결과 상기 로그 블록 최적화가 필요하면 로그 블록 무효화(LBI: Log block invalidation) 연산 시간과 합병(Merge) 연산 시간을 계산하는 단계; 및, 상기 LBI 연산 시간이 상기 합병 연산 시간보다 작으면 LBI 연산을 수행하는 단계를 포함한다.According to an embodiment of the present invention, a method of managing a flash memory may include: checking whether a free space for storing a log exists in a log block area when a deletion or update event of data stored in a flash memory is detected; If there is no free space available in the log block area as a result of the check, determining whether log block optimization is required: If the log block optimization is required as a result of the check, merge with a log block invalidation (LBI) operation time (Merge) calculating a calculation time; And performing an LBI operation if the LBI operation time is less than the merge operation time.
본 발명은 플래시 메모리에 저장된 데이터의 삭제 또는 갱신 이벤트의 발생을 감지하면, 로그 블록 영역에 로그를 저장할 수 있는 사용 가능한 여유 공간이 존재하는지 확인하는 단계, 확인결과 상기 로그 블록 영역에 사용 가능한 여유 공간이 존재 하지 않으면, 로그 블록 최적화의 필요 여부를 확인 하는 단계, 확인 결과 상기 로그 블록 최적화가 필요하면 로그 블록 무효화(LBI: Log block invalidation) 연산 시간과 합병(Merge) 연산 시간을 계산하는 단계 및, 상기 LBI 연산 시간이 상기 합병 연산 시간보다 작으면 LBI 연산을 수행하는 단계를 포함하는 플래시 메모리 관리 방법 및 장치에 관한 것으로, 데이터 블록과 로그 블록의 합병(Merge)을 지연시켜 플래시 메모리의 성능을 높이는 효과가 있다.According to an embodiment of the present invention, upon detecting the occurrence of a deletion or update event of data stored in a flash memory, checking whether there is an available free space for storing a log in the log block area, and as a result of the checking, the free space available for the log block area If it does not exist, checking whether the log block optimization is necessary, if the log block optimization is necessary, and calculating log block invalidation (LBI) operation time and merge operation time; A method and apparatus for managing a flash memory including performing an LBI operation when the LBI operation time is less than the merge operation time, the method comprising: delaying merging of data blocks and log blocks to increase flash memory performance. It works.
이하에서는 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다. 그리고 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. If it is determined that the gist of the present invention may be unnecessarily obscured, the detailed description thereof will be omitted.
본 발명의 실시 예는 완전 연관 섹터 변환 기법(FAST: Full Associative Sector Translation)을 사용하는 플래시 메모리에서 데이터 블록과 로그 블록의 합병(Merge) 연산의 발생을 줄이는 플래시 메모리 관리 방법 및 장치에 관한 것이다.An embodiment of the present invention relates to a flash memory management method and apparatus for reducing the occurrence of a merge operation of a data block and a log block in a flash memory using FAST (Full Associative Sector Translation).
하기의 설명에 있어서 데이터 블록과 로그 블록의 합병(Merge)을 지연시키는 FAST를 합병 지연 완전 연관 섹터 변환 기법(M-FAST: Merge pending Full Associative Sector Translation)라 칭한다.In the following description, FAST for delaying merging of data blocks and log blocks is called a merge pending full associative sector translation (M-FAST).
도 1은 본 발명의 실시 예에 따른 합병 지연 완전 연관 섹터 변환 기법(M-FAST)을 사용하는 플래시 메모리 관리 장치를 도시한 도면이다.FIG. 1 illustrates a flash memory management apparatus using a merge delay complete associated sector conversion technique (M-FAST) according to an embodiment of the present invention.
도 1을 참조하면 플래시 메모리 관리 장치는 플래시 변환 계층(FTL: Flash Translation Layer)(100), 데이터 블록 맵(Data block Map)(112), 프리 블록 맵(Free block Map)(114), 로그 블록 맵(Log block Map)(116), 플래시 메모리 제어부(120) 및, 플래시 메모리(130)를 포함하여 구성한다.Referring to FIG. 1, a flash memory management apparatus includes a flash translation layer (FTL) 100, a
데이터 블록 맵(Data block Map)(112)은 플래시 메모리(130)에서 데이터의 물리적 주소를 가지는 테이블이다. 프리 블록 맵(Free block Map)(114)은 플래시 메모리(130)에서 사용 가능한 여유 공간의 물리적 주소를 가지는 테이블이다. 로그 블록 맵(Log block Map)(116)은 플래시 메모리(130)에서 로그의 물리적 주소를 가지는 테이블이다. 이때, 플래시 메모리(130) 내의 물리적 주소는 논리적인 주소에 대응한다.The
플래시 메모리 제어부(120)는 플래시 메모리(130)를 제어하는 장치로서 플래시 메모리(130)에 대한 읽기(Read), 쓰기(Program), 삭제(Erase)를 제어한다.The
플래시 메모리(130)는 크게 3가지 영역으로 구분할 수 있다. 데이터를 저장하는 데이터 블록들로 구성된 데이터 블록 영역(Data block area)(132), 플래시 메모리(130)의 여유 공간을 나타내는 프리 블록 영역(Free block area)(134) 및, 데이터의 삭제 및 갱신 시 발생하는 로그들을 저장하는 로그 블록들로 구성된 로그 블록 영역(Log block area)(136)으로 구분할 수 있다.The
이때, 플래시 메모리(130)는 페이지(Page)와 블록(Block)의 단위로 관리된다. 즉, 플래시 메모리(130)는 다수의 블록들의 집합이며, 블록은 다수의 페이지로 구성되어있다. 플래시 메모리(130)에서 발생하는 읽기(Read)/쓰기(Program) 작업은 페이지의 단위로 수행되며 이미 써진 페이지에 덮어쓰기(Overwrite) 작업을 수행할 수 없다. 삭제(Erase) 작업은 블록의 단위로 수행되며 읽기나 쓰기에 비하여 많은 시간을 소모한다.At this time, 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)은 플래시 메모리(130)에 저장된 데이터의 삭제 또는 갱신 이벤트의 발생을 감지하면, 로그 블록 맵(116)을 확인하여 로그 블록 영역(136)에 로그를 저장할 수 있는 여유 공간이 존재하는지 확인하고, 확인결과 존재하면 플래시 메모리 제어부(120)를 통해 삭제 또는 갱신의 로그를 로그 블록의 여유 페이지(page)에 기재하도록 제어한다.When the
하지만, 로그 블록 영역에 로그를 저장할 수 있는 여유 공간이 존재하지 않으면, 플래시 변환 계층(100)은 프리 블록의 수가 기설정한 임계 프리 블록수 보다 적거나 로그 블록 수가 기설정한 임계 로그 블록수 보다 많은지 확인하여 로그 블록 최적화의 필요 여부를 확인한다. 확인결과 로그 블록 최적화가 필요하지 않으면, 플래시 변환 계층(100)은 프리 블록 맵(114)와 로그 블록 맵(116)을 수정하여 프리 블록 하나를 로그 블록으로 할당한다.However, if there is no free space for storing logs in the log block area, the
한편, 플래시 변환 계층(100)은 로그 블록 최적화가 필요하면 합병(Merge) 연산 시간과 로그 블록 무효화(LBI: Log block invalidation) 연산 시간을 비교한다. LBI 연산 시간이 합병 연산 시간보다 작거나 같으면 플래시 변환 계층(100)은 로그 블록 무효화를 수행한다.Meanwhile, if log block optimization is required, the
하지만, LBI 연산 시간이 합병 연산 시간보다 크면 플래시 변환 계층(100)은 데이터 블록과 로그 블록의 합병을 수행한다. 로그 블록 최적화의 상세한 설명은 이후 도 3을 참조하여 후술한다.However, if the LBI operation time is greater than the merge operation time, the
이하, 상기와 같이 구성된 본 발명에 따른 합병 지연 완전 연관 섹터 변환 기법을 사용하는 플래시 메모리 관리 방법을 아래에서 도면을 참조하여 설명한다.Hereinafter, a flash memory management method using the merge delay complete associative sector conversion scheme according to the present invention configured as described above will be described with reference to the accompanying drawings.
도 2는 본 발명의 실시 예에 따른 플래시 메모리 관리 장치에서 합병 지연 완전 연관 섹터 변환 기법에 따라 플래시 메모리 관리하는 과정을 도시한 흐름도이다.2 is a flowchart illustrating a process of managing a flash memory according to a merge delay complete associated sector conversion scheme in a flash memory management apparatus according to an exemplary embodiment of the present invention.
도 2를 참조하면 본 발명의 플래시 메모리 관리 장치는 202단계에서 플래시 메모리에 저장된 데이터의 삭제 또는 갱신 이벤트의 발생을 감지하면, 204단계로 진행하여 로그 블록 영역에 로그를 저장할 수 있는 사용 가능한 여유 공간이 존재하는지 확인하고, 확인결과 존재하면 212단계로 진행하여 삭제 또는 갱신의 로그를 로그 블록의 여유 페이지(page)에 기재한다.Referring to FIG. 2, when the flash memory management apparatus of the present invention detects occurrence of a data deletion or update event stored in the flash memory in
204단계의 확인결과 로그 블록 영역에 로그를 저장할 수 있는 여유 공간이 존재하지 않으면, 플래시 메모리 관리 장치는 206단계로 진행하여 로그 블록 최적화의 필요 여부를 확인한다. 로그 블록 최적화의 필요 여부 판단 기준은 프리 블록의 수가 기설정한 임계 프리 블록수 보다 적거나 로그 블록 수가 기설정한 임계 로그 블록수 보다 많은 경우에 로그 블록 최적화가 필요하다고 판단한다.If there is no free space for storing the log in the log block area as a result of
206단계의 확인결과 로그 블록 최적화가 필요하지 않으면, 플래시 메모리 관리 장치는 208단계로 진행하여 프리 블록 하나를 로그 블록으로 할당하고, 212단계로 진행하여 삭제 또는 갱신의 로그를 로그 블록의 여유 페이지(page)에 기재한다.If the log block optimization is not necessary as a result of checking in
206단계의 확인결과 로그 블록 최적화가 필요하면 플래시 메모리 관리 장치는 210단계로 진행하여 로그 블록 최적화를 수행한다. 로그 블록 최적화의 상세한 설명은 이후 도 3을 참조하여 후술한다. 210단계에서 로그 블록 최적화가 완료되면 이후 208단계로 진행하여 프리 블록 하나를 로그 블록으로 할당하고, 212단계로 진행하여 삭제 또는 갱신의 로그를 로그 블록의 여유 페이지(page)에 기재한다.If the log block optimization is necessary as a result of checking in
도 3은 본 발명의 실시 예에 따른 플래시 메모리 관리 장치에서 합병 지연 완전 연관 섹터 변환 기법에 따라 로그 블록을 최적화하는 과정을 도시한 흐름도이다.3 is a flowchart illustrating a process of optimizing a log block according to a merge delay full associated sector conversion scheme in a flash memory management apparatus according to an exemplary embodiment of the present invention.
도 3을 참조하면 본 발명의 플래시 메모리 관리 장치는 300단계에서 로그 블록 최적화 이벤트의 발생을 감지하면 302단계로 진행하여 합병(Merge) 연산 시간과 로그 블록 무효화(LBI: Log block invalidation) 연산 시간을 계산하고, 304단계로 진행하여 합병 연산 시간과 LBI 연산 시간을 비교한다.Referring to FIG. 3, when the flash memory management apparatus detects the occurrence of the log block optimization event in
이때, 합병 연산 시간은 아래 <수학식 1>과 같이 구할 수 있다.In this case, the merge operation time may be obtained as in
여기서, nNewFree는 프리 블록에 저장될 새로운 블록의 수 이고, nLB_Valid는 한 로그 블록 내에 존재하는 평균 유효한(Valid) 페이지 수 이고, nDB_Valid는 한 데이터 블록 에 존재하는 유효한(Valid) 페이지 수 이고, tCB는 플래시 메모리에서 Copyback으로 한 페이지(Page)를 읽어서 쓰는데 소요되는 시간이고, nDB_Merge는 합병(Merge)되어 삭제될 데이터 블록(Data block)의 수이다.Where nNewFree is the number of new blocks to be stored in the free block, nLB_Valid is the average number of valid pages present in one log block, nDB_Valid is the number of valid pages present in one data block, and tCB is The time taken to read and write one page from the flash memory to the copyback, and nDB_Merge is the number of data blocks to be merged and deleted.
다음으로 LBI 연산 시간은 아래 <수학식 2>과 같이 구할 수 있다.Next, the LBI operation time can be obtained as shown in
If (N > M); LBI 연산 시간 = (nNewFree * nLB_Valid * tCB) + ({(N-M)/nPage + 1} * nLB_Valid * tCB)If (N> M); LBI operation time = (nNewFree * nLB_Valid * tCB) + ({(N-M) / nPage + 1} * nLB_Valid * tCB)
여기서, nNewFree는 프리 블록에 저장될 새로운 블록의 수 이고, nLB_Valid는 한 로그 블록 내에 존재하는 평균 유효한(Valid) 페이지 수 이고, tCB는 플래시 메모리에서 Copyback으로 한 페이지(Page)를 읽어서 쓰는데 소요되는 시간이고, N은 기설정한 오래된 로그 블록들에서 발견된 유효한 페이지(Page) 수 이고, M은 오래되지 않은 로그 블록내의 사용 가능한 페이지(Page) 수 이고, nPage는 한 블록 내부의 총 페이지(Page) 수 이다.Here, nNewFree is the number of new blocks to be stored in the free block, nLB_Valid is the average number of valid pages existing in one log block, and tCB is the time taken to read and write one page from the flash memory as a copyback. N is the number of valid pages found in the preset old log blocks, M is the number of available pages in the old log block, and nPage is the total pages within one block. It is possible.
304단계의 비교결과 LBI 연산 시간이 합병 연산 시간보다 작거나 같으면 플래시 메모리 관리 장치는 306단계로 진행하여 기설정된 기간만큼 오래된 로그 블록 들 내부의 유효한 값들을 검색하고, 308단계로 진행하여 오래되지 않은 로그 블록내의 여유 공간의 페이지 수를 제외한 유효한 값들의 개수에 따라 사용될 프리 블록의 수를 계산하고, 플래시 메모리 관리 장치는 310단계로 진행하여 계산한 수 만큼 프리 블록을 할당받아 오래된 로그 블록들 중 유효한 값을 할당받은 프리 블록에 복사하여 새로운 로그 블록으로 생성하고, 312단계로 진행하여 유효한 값들의 복사가 완료된 오래된 로그 블록들을 삭제한다.If the LBI operation time is less than or equal to the merge operation time, the flash memory management device proceeds to step 306 to search for valid values in log blocks that are as old as a predetermined period, and proceeds to step 308. The number of free blocks to be used is calculated according to the number of valid values excluding the number of pages of free space in the log block, and the flash memory management apparatus allocates as many free blocks as the calculated number in step 310 and is effective among the old log blocks. Copy the value to the allocated free block to create a new log block, and proceed to step 312 to delete old log blocks for which valid values have been copied.
306단계에서 312단계는 로그 블록 무효화의 과정으로 아래의 도 4의 예제와 같이 수행될 수 있다.
304단계의 비교결과 LBI 연산 시간이 합병 연산 시간보다 크면 플래시 메모리 관리 장치는 314단계로 진행하여 갱신 등으로 인해 유효하지 않은 데이터를 가진 합병될 데이터 블록을 검색하고, 316단계로 진행하여 합병될 데이터 블록의 수만큼 프리 블록을 할당하고, 318단계로 진행하여 할당 받은 프리 블록에 데이터 블록들과 로그 블록들 중 유효한(Valid) 값만을 복사하고, 320단계로 진행하여 복사가 완료된 데이터 블록들과 로그 블록들을 삭제한다.If the LBI operation time is greater than the merge operation time in
314단계에서 320단계는 데이터 블록과 로그 블록의 합병 과정으로 아래의 도 5의 예제와 같이 수행될 수 있다.Step 314 to step 320 is a merge process of the data block and the log block may be performed as shown in the example of FIG. 5 below.
도 4는 본 발명의 실시 예에 따른 플래시 메모리 관리 장치에서 로그 블록 무효화를 수행하는 예를 도시한 도면이다.4 is a diagram illustrating an example of performing log block invalidation in a flash memory management apparatus according to an exemplary embodiment of the present invention.
도 4를 참조하면 플래시 메모리 관리 장치는 LBI가 필요한 플래시 메모 리(410) 내의 로그 블록 영역(416)에서 기설정된 기간만큼 오래된 로그 블록인 0번째 로그 블록(Log Block-0) 내부의 유효한 값들을 검색한다. 그리고, 검색한 유효 페이지들을 사용 가능한 페이지를 가진 2번째 로그 블록(Log Block-2)으로 복사한다. 만약 사용 가능한 페이지를 가진 오래되지 않은 로그 블록이 존재하지 않으면 프리 블록 영역(414)에서 새로운 프리 블록을 새로운 로그 블록으로 할당 받고, 할당받은 프리 블록에 유효 페이지를 복사한다.Referring to FIG. 4, the flash memory management apparatus stores valid values inside a 0th log block Log Log-0, which is a log block older than a predetermined period in the
이후, 플래시 메모리 관리 장치는 LBI가 완료된 플래시 메모리(420)와 같이 LBI를 수행한 후에 유효한 값들의 복사가 완료된 기존의 오래된 로그 블록인 0번째 로그 블록(Log Block-0)을 삭제하여 로그 블록 영역(426)이 줄이고, 프리 블록 영역(424)이 늘린다.Thereafter, the flash memory management device deletes the 0th log block (Log Block-0), which is an old old log block in which valid values are copied after performing the LBI, such as the
이와 같이 LBI를 수행하는 경우 오래되어 유효하지 않은 로그들이 많은 로그 블록을 제거하여 프리 블록을 늘리기 때문에 LBI 수행 전의 데이터 블록 영역(412)과 LBI 수행 후의 데이터 블록 영역(422)은 변화가 없이 동일하다.In this case, when the LBI is performed, the old and invalid logs remove many log blocks to increase the free block, so the
도 5는 본 발명의 실시 예에 따른 플래시 메모리 관리 장치에서 로그 블록의 합병을 수행하는 예를 도시한 도면이다.5 is a diagram illustrating an example of merging log blocks in a flash memory management apparatus according to an embodiment of the present invention.
도 5를 참조하면 플래시 메모리 관리 장치는 합병이 필요한 플래시 메모리(510) 내의 데이터 블록 영역(512)에서 갱신 등으로 인해 유효하지 않은 데이터를 가진 합병될 데이터 블록을 검색하고, 프리 블록 영역(514)에서 합병될 데이터 블록의 수만큼 프리 블록을 할당하고, 할당 받은 프리 블록에 데이터 블록 영 역(512)의 데이터 블록과 로그 블록 영역(516)의 로그 블록들 내의 유효한(Valid) 값만을 복사하여 새로운 데이터 블록들로 구성한다.Referring to FIG. 5, the flash memory management apparatus searches for a data block to be merged having invalid data due to an update or the like in the
이후, 플래시 메모리 관리 장치는 합병한 플래시 메모리(520)와 같이 유효한(Valid) 값만을 복사하여 새로운 데이터 블록들로 구성하는 데이터 블록 영역(522)을 구성하고, 복사가 완료된 데이터 블록들과 로그 블록들을 삭제하여 프리 블록 영역(524)화 한다.Subsequently, the 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 diagram illustrating a flash memory management apparatus using a merge delay complete associated sector conversion technique (M-FAST) according to an embodiment of the present invention;
도 2는 본 발명의 실시 예에 따른 플래시 메모리 관리 장치에서 합병 지연 완전 연관 섹터 변환 기법에 따라 플래시 메모리 관리하는 과정을 도시한 흐름도,2 is a flowchart illustrating a process of managing a flash memory according to a merge delay complete associated sector conversion scheme in a flash memory management apparatus according to an embodiment of the present invention;
도 3은 본 발명의 실시 예에 따른 플래시 메모리 관리 장치에서 합병 지연 완전 연관 섹터 변환 기법에 따라 로그 블록을 최적화하는 과정을 도시한 흐름도,3 is a flowchart illustrating a process of optimizing a log block according to a merge delay complete associated sector conversion scheme in a flash memory management apparatus according to an embodiment of the present invention;
도 4는 본 발명의 실시 예에 따른 플래시 메모리 관리 장치에서 로그 블록 무효화를 수행하는 예를 도시한 도면 및,4 is a diagram illustrating an example of performing log block invalidation in a flash memory management apparatus according to an embodiment of the present invention;
도 5는 본 발명의 실시 예에 따른 플래시 메모리 관리 장치에서 로그 블록의 합병을 수행하는 예를 도시한 도면이다.5 is a diagram illustrating an example of merging log blocks in a flash memory management apparatus according to an embodiment of the present invention.
Claims (14)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080099739A KR100987251B1 (en) | 2008-10-10 | 2008-10-10 | Flash memory management method and apparatus for merge operation reduction in a fast algorithm base ftl |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080099739A KR100987251B1 (en) | 2008-10-10 | 2008-10-10 | Flash memory management method and apparatus for merge operation reduction in a fast algorithm base ftl |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100040559A KR20100040559A (en) | 2010-04-20 |
KR100987251B1 true KR100987251B1 (en) | 2010-10-12 |
Family
ID=42216630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080099739A KR100987251B1 (en) | 2008-10-10 | 2008-10-10 | Flash memory management method and apparatus for merge operation reduction in a fast algorithm base ftl |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100987251B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101153688B1 (en) | 2010-10-15 | 2012-06-18 | 성균관대학교산학협력단 | Nand flash memory system and method for providing invalidation chance to data pages |
US9244619B2 (en) | 2012-09-27 | 2016-01-26 | Samsung Electronics Co., Ltd. | Method of managing data storage device and data storage device |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101377291B1 (en) * | 2010-12-28 | 2014-03-26 | 한양대학교 산학협력단 | System and method for saving log data using block clear information |
KR102107604B1 (en) * | 2018-03-26 | 2020-05-07 | 성균관대학교 산학협력단 | Non-volatile memory apparatus and data storage methid of the same |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060001393A (en) * | 2004-06-30 | 2006-01-06 | 삼성전자주식회사 | Incremental merge method and memory system using the same |
KR20080035237A (en) * | 2006-10-19 | 2008-04-23 | 삼성전자주식회사 | Method for managing non-volatile memory, and memory-based apparatus including the non-volatile memory |
KR20080045833A (en) * | 2006-11-21 | 2008-05-26 | 삼성전자주식회사 | Method of controlling flash memory and flash memory system using the same |
-
2008
- 2008-10-10 KR KR1020080099739A patent/KR100987251B1/en not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060001393A (en) * | 2004-06-30 | 2006-01-06 | 삼성전자주식회사 | Incremental merge method and memory system using the same |
KR20080035237A (en) * | 2006-10-19 | 2008-04-23 | 삼성전자주식회사 | Method for managing non-volatile memory, and memory-based apparatus including the non-volatile memory |
KR20080045833A (en) * | 2006-11-21 | 2008-05-26 | 삼성전자주식회사 | Method of controlling flash memory and flash memory system using the same |
Non-Patent Citations (1)
Title |
---|
NAND 플래시 메모리 저장 장치에서 블록 재활용 기법의 비용 기반 최적화, 정보과학회논문지, 컴퓨팅의 실제 및 레터 제13권 제7호* |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101153688B1 (en) | 2010-10-15 | 2012-06-18 | 성균관대학교산학협력단 | Nand flash memory system and method for providing invalidation chance to data pages |
US9244619B2 (en) | 2012-09-27 | 2016-01-26 | Samsung Electronics Co., Ltd. | Method of managing data storage device and data storage device |
Also Published As
Publication number | Publication date |
---|---|
KR20100040559A (en) | 2010-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110678836B (en) | Persistent memory for key value storage | |
US10620862B2 (en) | Efficient recovery of deduplication data for high capacity systems | |
US10402091B1 (en) | Managing data in log-structured storage systems | |
KR101717644B1 (en) | Apparatus, system, and method for caching data on a solid-state storage device | |
US8510500B2 (en) | Device driver including a flash memory file system and method thereof and a flash memory device and method thereof | |
US10445022B1 (en) | Optimization of log-structured merge (LSM) tree-based databases using object solid state drive (SSD) devices | |
CN108604165B (en) | Storage device | |
US20170024140A1 (en) | Storage system and method for metadata management in non-volatile memory | |
US20210157746A1 (en) | Key-value storage device and system including the same | |
KR101297442B1 (en) | Nand flash memory including demand-based flash translation layer considering spatial locality | |
US20050163014A1 (en) | Duplicate data storing system, duplicate data storing method, and duplicate data storing program for storage device | |
KR20100115090A (en) | Buffer-aware garbage collection technique for nand flash memory-based storage systems | |
KR20070096429A (en) | Fast mounting for a file system on nand flash memory | |
KR101017067B1 (en) | Locality-Aware Garbage Collection Technique for NAND Flash Memory-Based Storage Systems | |
WO2016101145A1 (en) | Controller, method for identifying data block stability and storage system | |
KR100987251B1 (en) | Flash memory management method and apparatus for merge operation reduction in a fast algorithm base ftl | |
CN113253926A (en) | Memory internal index construction method for improving query and memory performance of novel memory | |
CN116069681A (en) | Disk space recovery method and device, electronic equipment and storage medium | |
CN109002400B (en) | Content-aware computer cache management system and method | |
KR101077901B1 (en) | Apparatus and method for managing flash memory using log block level mapping algorithm | |
KR101284465B1 (en) | Page mapping scheme that supports secure file deletion for nand-based block device, and thereof recording medium | |
KR101252375B1 (en) | Mapping management system and method for enhancing performance of deduplication in storage apparatus | |
KR101153688B1 (en) | Nand flash memory system and method for providing invalidation chance to data pages | |
KR20120034976A (en) | Apparatus and method for mapping the data address in nand flash memory | |
CN114296630B (en) | Machine-readable storage medium, data storage system, and method of data storage system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130905 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20140901 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20150915 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |