KR20210089055A - Flash memory storage with improved erase performance and method thereof - Google Patents

Flash memory storage with improved erase performance and method thereof Download PDF

Info

Publication number
KR20210089055A
KR20210089055A KR1020200002289A KR20200002289A KR20210089055A KR 20210089055 A KR20210089055 A KR 20210089055A KR 1020200002289 A KR1020200002289 A KR 1020200002289A KR 20200002289 A KR20200002289 A KR 20200002289A KR 20210089055 A KR20210089055 A KR 20210089055A
Authority
KR
South Korea
Prior art keywords
data
block
stored
preservation
page
Prior art date
Application number
KR1020200002289A
Other languages
Korean (ko)
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 KR1020200002289A priority Critical patent/KR20210089055A/en
Publication of KR20210089055A publication Critical patent/KR20210089055A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

According to an embodiment of the present invention, a method of improving erase performance of a flash memory storage device includes the steps of: receiving a data collection command including preservation data information about the data to be stored in the preservation block, which is a block in which data which needs continuous preservation from the host is stored; and moving data corresponding to the preservation data information to the preservation block in response to the data collection command.

Description

지우기 성능이 향상된 플래시메모리 저장 장치 및 그 방법{FLASH MEMORY STORAGE WITH IMPROVED ERASE PERFORMANCE AND METHOD THEREOF}FLASH MEMORY STORAGE WITH IMPROVED ERASE PERFORMANCE AND METHOD THEREOF

본 발명은 지우기 성능이 향상된 플래시메모리 저장 장치 및 그 방법에 관한 것이다.The present invention relates to a flash memory storage device with improved erasing performance and a method therefor.

플래시메모리(Flash Memory)는 비휘발성 메모리 저장 매체로 빠른 읽기 속도, 안정성, 낮은 전력 사용량 등 여러 가지 장점을 기반으로 Solid State Drive(SSD) 나 USB 메모리 등 다양한 형태로 차세대 저장장치로 사용되고 있다. 하지만 플래시메모리는 그 물리적 특성으로 인해 제약 사항이 있다. Flash memory is a non-volatile memory storage medium and is being used as a next-generation storage device in various forms such as a solid state drive (SSD) or USB memory based on various advantages such as fast read speed, stability, and low power consumption. However, flash memory has limitations due to its physical characteristics.

첫째로, 덮어쓰기(overwrite)가 불가능하다. 이미 데이터가 쓰여져 있는 페이지에 새로운 데이터를 덮어쓸 수 없으므로 이미 쓰여진 논리적 주소의 데이터를 새로운 데이터로 갱신해야 하는 경우 별도의 물리적 영역에 새로운 데이터를 쓴 후 기존의 데이터는 무효화(invalidate)한다. 둘째로, 지우기(erase) 기능을 제공한다. 지우기는 새로운 데이터로 갱신되어 무효화된 페이지를 사용 가능한 상태로 바꾸는 기능으로 물리적 이유로 페이지의 집합인 블록 단위로 이루어진다.First, overwrite is not possible. Since new data cannot be overwritten on a page in which data has already been written, when data at an already written logical address needs to be updated with new data, new data is written to a separate physical area and then the existing data is invalidated. Second, it provides an erase function. Erasing is a function that changes invalidated pages to a usable state by being updated with new data.

또한, 플래시메모리에서 데이터를 쓸 페이지를 확보하기 위하여 지우기를 수행할 블록을 선정하고 지우기를 수행하는 과정을 가비지콜렉션(Garbage Collection, GC) 라고 한다. GC는 쓰기/읽기보다 큰 단위의 작업이어서 해당 블록 내에는 유효한 페이지가 남아있을 수 있다. 유효한 페이지는 별도의 영역으로 카피백(copyback)하여 보호한다. 카피백은 데이터를 안전하게 관리하나 호스트에서 요청한 쓰기 외의 쓰기 작업을 수행해야 하므로 성능 측면에서 악영향을 미친다. 카피백의 정도를 나타내는 지표로 쓰기증폭지표(Write Amplification Factor, WAF)가 쓰이며 플래시메모리 저장 장치의 성능을 고려하였을 때 WAF를 줄이는 것이 중요하다. 다음 제약 사항은 낸드 플래시메모리 칩이 제한된 수명을 가진다는 점이다. 낸드 플래시메모리 칩은 제한된 수명 즉 “쓰기-지우기”를 제한된 횟수만큼만 수행할 수 있다. 따라서 두 번째 제약 사항에서 언급한 WAF가 높으면 플래시메모리의 수명이 저해된다.In addition, the process of selecting a block to be erased and performing erase in order to secure a page to write data in the flash memory is called garbage collection (GC). GC is a larger unit than write/read, so valid pages may remain in the block. Valid pages are protected by copying them back to a separate area. Copyback safely manages data, but it has a negative impact on performance because it has to perform a write operation other than the write requested by the host. A write amplification factor (WAF) is used as an index indicating the degree of copyback, and it is important to reduce the WAF in consideration of the performance of the flash memory storage device. The next limitation is that NAND flash memory chips have a limited lifespan. A NAND flash memory chip can perform “write-erase” only a limited number of times with a limited lifespan. Therefore, if the WAF mentioned in the second constraint is high, the lifespan of the flash memory is hindered.

따라서, 카피백의 횟수가 줄어들어 WAF가 감소한 지우기 성능이 향상된 플래시메모리 저장 장치 및 그 방법에 대한 필요성이 대두되고 있다.Accordingly, there is a need for a flash memory storage device with improved erasing performance with reduced WAF and a method therefor by reducing the number of copybacks.

한국공개특허 제 10-2015-0106777호(2015년 9월 22일 공개)Korean Patent Publication No. 10-2015-0106777 (published on September 22, 2015)

본 발명은 종래기술의 문제점을 극복하여, WAF를 줄이고 궁극적으로 쓰기 성능 및 플래시 저장장치의 수명을 개선하는 플래시메모리 저장 장치 및 그 방법을 제공하고자 한다.An object of the present invention is to provide a flash memory storage device and method for overcoming the problems of the prior art, which reduce WAF and ultimately improve write performance and lifespan of the flash storage device.

상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 플래시메모리 저장 장치의 지우기 성능 향상 방법은 호스트로부터 보존 대상 데이터가 저장되는 블록인 보존블록에 저장하려는 데이터에 관한 정보인 보존데이터정보를 포함하는 개더명령(Gather Command)을 수신하는 단계; 및 상기 개더명령에 대응하여 상기 보존데이터정보에 대응되는 데이터를 상기 보존블록으로 이동시키는 단계를 포함한다.In order to achieve the above object, a method for improving erase performance of a flash memory storage device according to an embodiment of the present invention includes preservation data information, which is information about data to be stored in a preservation block, which is a block in which preservation target data is stored, from a host. receiving a gather command; and moving data corresponding to the stored data information to the storage block in response to the gather command.

바람직하게는, 상기 보존블록으로 이동시키는 단계는 FTL(flash translation layer)에 기반하여, 상기 보존데이터정보에 대응되는 데이터 각각에 대응되는 페이지의 논리주소를 물리주소로 변환하는 단계; 상기 변환된 물리주소를 이용하여, 상기 보존데이터정보에 대응되는 데이터 각각에 대응되는 페이지를 무효화(invalidate)시키는 단계; 및 상기 무효화된 페이지에 저장된 데이터를 상기 보존블록에 쓰는 단계;를 포함할 수 있다.Preferably, the moving to the preservation block comprises: converting a logical address of a page corresponding to each data corresponding to the preserved data information into a physical address based on a flash translation layer (FTL); using the converted physical address to invalidate a page corresponding to each data corresponding to the stored data information; and writing data stored in the invalidated page to the retention block.

바람직하게는, 상기 보존블록으로 이동시키는 단계는 FTL에 기반하여, 상기 보존데이터정보에 대응되는 데이터 각각에 대응되는 페이지의 논리주소를 물리주소로 변환하는 단계; 상기 변환된 물리주소를 이용하여, 상기 보존데이터정보에 대응되는 데이터 각각에 대응되는 페이지에 개더마크(Gather Mark)를 설정하는 단계; 및 상기 개더마크가 설정된 페이지를 포함하는 블록에 가비지콜렉션(Garbage Collection, GC)이 수행되는 경우, 상기 개더마크가 설정된 페이지에 저장된 데이터를 상기 보존블록에 쓰는 단계;를 포함할 수 있다.Preferably, the moving to the preservation block comprises: converting a logical address of a page corresponding to each data corresponding to the stored data information into a physical address based on the FTL; setting a Gather Mark on a page corresponding to each data corresponding to the stored data information by using the converted physical address; and writing data stored in the page in which the gather mark is set to the retention block when garbage collection (GC) is performed on the block including the page in which the gather mark is set.

바람직하게는, 상기 보존데이터정보는 상기 보존블록에 저장하려는 데이터의 시작논리주소 및 타겟 페이지 개수를 포함할 수 있다.Preferably, the preservation data information may include a start logical address of data to be stored in the preservation block and the number of target pages.

바람직하게는, 상기 보존블록으로 이동시키는 단계는 상기 시작논리주소에서부터 상기 타겟 페이지 개수에 대응되는 데이터를 상기 보존블록에 물리적으로 연속되도록 저장할 수 있다.Preferably, the moving to the retention block may include storing data corresponding to the number of target pages from the start logical address to be physically continuous in the retention block.

또한, 상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 지우기 성능이 향상된 플래시메모리 저장 장치는 호스트로부터 보존 대상 데이터가 저장되는 블록인 보존블록에 저장하려는 데이터에 관한 정보인 보존데이터정보를 포함하는 개더명령을 수신하는 수신부; 및 상기 개더명령에 대응하여 상기 보존데이터정보에 대응되는 데이터를 상기 보존블록으로 이동시키는 제어부;를 포함한다.In addition, the flash memory storage device with improved erasing performance according to an embodiment of the present invention for achieving the above object includes preservation data information, which is information about data to be stored in a preservation block, which is a block in which preservation target data is stored, from a host. a receiving unit for receiving a gather command; and a control unit for moving data corresponding to the stored data information to the storage block in response to the gather command.

바람직하게는, 상기 제어부는 FTL에 기반하여, 상기 보존데이터정보에 대응되는 데이터 각각에 대응되는 페이지의 논리주소를 물리주소로 변환하고, 상기 변환된 물리주소를 이용하여, 상기 보존데이터정보에 대응되는 데이터 각각에 대응되는 페이지를 무효화시키고, 상기 무효화된 페이지에 저장된 데이터를 상기 보존블록에 쓸 수 있다.Preferably, the control unit converts a logical address of a page corresponding to each data corresponding to the stored data information into a physical address based on the FTL, and uses the converted physical address to correspond to the stored data information A page corresponding to each data to be used may be invalidated, and data stored in the invalidated page may be written to the retention block.

바람직하게는, 상기 제어부는 FTL에 기반하여, 상기 보존데이터정보에 대응되는 데이터 각각에 대응되는 페이지의 논리주소를 물리주소로 변환하고, 상기 변환된 물리주소를 이용하여, 상기 보존데이터정보에 대응되는 데이터 각각에 대응되는 페이지에 개더마크를 설정하고, 상기 개더마크가 설정된 페이지를 포함하는 블록에 가비지콜렉션이 수행되는 경우, 상기 개더마크가 설정된 페이지에 저장된 데이터를 상기 보존블록에 쓸 수 있다.Preferably, the control unit converts a logical address of a page corresponding to each data corresponding to the stored data information into a physical address based on the FTL, and uses the converted physical address to correspond to the stored data information When a gather mark is set on a page corresponding to each data to be collected, and garbage collection is performed on a block including the page on which the gather mark is set, data stored in the page on which the gather mark is set can be written to the retention block.

바람직하게는, 상기 보존데이터정보는 상기 보존블록에 저장하려는 데이터의 시작논리주소 및 타겟 페이지 개수를 포함할 수 있다.Preferably, the preservation data information may include a start logical address of data to be stored in the preservation block and the number of target pages.

바람직하게는, 상기 제어부가 상기 보존데이터정보에 대응되는 데이터를 상기 보존블록으로 이동시킬 때, 상기 시작논리주소에서부터 상기 타겟 페이지 개수에 대응되는 데이터를 상기 보존블록에 물리적으로 연속되도록 저장할 수 있다.Preferably, when the control unit moves the data corresponding to the preservation data information to the preservation block, the data corresponding to the target number of pages from the start logical address may be physically stored in the preservation block.

본 발명의 일 실시예에 따르면, 이미 플래시메모리 저장 장치에 쓰여진 특정 논리주소의 데이터들을 물리적으로 모을 수 있으므로, WAF를 줄이고 쓰기 성능을 향상시키며, 플래시 저장장치의 수명을 개선할 수 있는 효과가 있다.According to an embodiment of the present invention, since data of a specific logical address already written in the flash memory storage device can be physically collected, WAF can be reduced, write performance is improved, and the lifespan of the flash storage device can be improved. .

도 1은 본 발명의 일 실시예에 따른 플래시메모리 저장 장치의 지우기 성능 향상 방법을 설명하기 위한 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 플래시메모리 저장 장치가 데이터를 보존블록으로 이동시키는 방법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 다른 실시예에 따른 플래시메모리 저장 장치가 데이터를 보존블록으로 이동시키는 방법을 설명하기 위한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 지우기 성능이 향상된 플래시메모리 저장 장치의 블록도이다.
도 5는 본 발명의 일 실시예에 따른 개더명령을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 EAGER GATHER를 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 ASYNC GATHER를 설명하기 위한 도면이다.
1 is a flowchart illustrating a method for improving erase performance of a flash memory storage device according to an embodiment of the present invention.
2 is a flowchart illustrating a method of moving data to a retention block by a flash memory storage device according to an embodiment of the present invention.
3 is a flowchart illustrating a method of moving data to a retention block by a flash memory storage device according to another embodiment of the present invention.
4 is a block diagram of a flash memory storage device with improved erase performance according to an embodiment of the present invention.
5 is a diagram for explaining a gather command according to an embodiment of the present invention.
6 is a view for explaining an EAGER GATHER according to an embodiment of the present invention.
7 is a view for explaining an ASYNC GATHER according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면을 참조하여 상세하게 설명하도록 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.Since the present invention can have various changes and can have various embodiments, specific embodiments will be described in detail with reference to the drawings. However, this is not intended to limit the present invention to a specific embodiment, it should be understood to include all modifications, equivalents and substitutes included in the spirit and scope of the present invention. In describing each figure, like reference numerals have been used for like elements.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재 항목들의 조합 또는 복수의 관련된 기재 항목들 중의 어느 항목을 포함한다.Terms such as first, second, A, and B may be used to describe various elements, but the elements should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, a first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. and/or includes a combination of a plurality of related description items or any of a plurality of related description items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급될 때에는 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When a component is referred to as being “connected” or “connected” to another component, it may be directly connected or connected to the other component, but it should be understood that other components may exist in between. something to do. On the other hand, when it is said that a certain element is "directly connected" or "directly connected" to another element, it should be understood that no other element is present in the middle.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the present application are only used to describe specific embodiments, and are not intended to limit the present invention. The singular expression includes the plural expression unless the context clearly dictates otherwise. In the present application, terms such as “comprise” or “have” are intended to designate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, but one or more other features It should be understood that this does not preclude the existence or addition of numbers, steps, operations, components, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical and scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present application. does not

명세서 및 청구범위 전체에서, 어떤 부분이 어떤 구성 요소를 포함한다고 할때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있다는 것을 의미한다.Throughout the specification and claims, when a part includes a certain element, it means that other elements may be further included, rather than excluding other elements, unless specifically stated to the contrary.

본 발명의 플래시메모리 저장 장치는 SSD(solid state drive), eMMC(embedded multi-media card) 및 USB메모리 등과 같은 플래시메모리에 기반하는 저장 장치를 의미할 수 있다.The flash memory storage device of the present invention may refer to a flash memory-based storage device such as a solid state drive (SSD), an embedded multi-media card (eMMC), and a USB memory.

대부분의 종래의 플래시메모리 저장 장치는 높은 성능을 위해 페이지 매핑 FTL을 사용하며, GC 과정에서 지우기를 수행할 블록을 선정할 때 가장 무효한 페이지가 많은 블록을 선정하는 그리디(Greedy) 알고리즘을 사용한다. 그러나, 이러한 방식을 사용하는 경우 다음과 같은 문제가 발생한다.Most conventional flash memory storage devices use page mapping FTL for high performance, and when selecting a block to be erased in the GC process, a greedy algorithm that selects a block with the most invalid pages is used. do. However, when using this method, the following problems arise.

실제 응용의 데이터 페이지들은 상이한 수명을 갖는 경우가 대부분이다. 여기서 수명은 특정 페이지가 쓰인 후 무효화되기까지의 간격을 말하며 무효화는 데이터의 삭제 혹은 갱신을 통해 이루어진다. 이러한 페이지들이 구분없이 하나의 물리적 영역에 위치하게 되면 그리디 알고리즘에 의해 앞으로 오랜 시간 동안 무효화(invalidate)되지 않을 페이지가 포함된 블록이 GC의 대상이 되어 해당 페이지가 반복적으로 카피백되면서 높은 WAF를 유발한다. 그러나, 높은 WAF는 플래시메모리 저장 장치의 성능 저하와 수명 저하의 원인이 되기 때문에 이러한 문제를 인지하고 수동 혹은 자동으로 데이터를 그 특성에 따라서 다르게 배치하려는 움직임이 있어왔다.In practical applications, data pages often have different lifetimes. Here, the lifetime refers to the interval between writing and invalidating a specific page, and invalidation is done through deletion or update of data. When these pages are located in one physical area without distinction, a block containing a page that will not be invalidated for a long time by the greedy algorithm becomes the target of GC, and the page is repeatedly copied back to achieve a high WAF. cause. However, since high WAF causes performance degradation and lifetime degradation of flash memory devices, there has been a movement to recognize this problem and to manually or automatically arrange data differently according to its characteristics.

도 1은 본 발명의 일 실시예에 따른 플래시메모리 저장 장치의 지우기 성능 향상 방법을 설명하기 위한 흐름도이다.1 is a flowchart illustrating a method for improving erase performance of a flash memory storage device according to an embodiment of the present invention.

단계 S110에서는, 플래시메모리 저장 장치가 호스트로부터 보존 대상 데이터가 저장되는 블록인 보존블록에 저장하려는 데이터에 관한 정보인 보존데이터정보를 포함하는 개더명령(Gather Command)을 수신한다.In step S110, the flash memory storage device receives, from the host, a gather command including preservation data information, which is information about data to be stored in a retention block, which is a block in which storage target data is stored.

즉, 호스트는 플래시메모리 저장 장치에 이미 저장되어 있으면서, 변경되지 않은 채로 계속하여 저장될 가능성이 높은 데이터를 보존블록에 이동시켜 저장하기 위하여, 개더명령을 플래시메모리 저장 장치에게 전송할 수 있다.That is, the host may transmit a gather command to the flash memory storage device in order to move and store data that is already stored in the flash memory storage device and which is highly likely to be continuously stored without being changed to the retention block.

바꿔 말하면, 플래시메모리 저장 장치가 개더명령에 대한 인터페이스(gather interface)를 호스트에 제공함으로써, 플래시메모리에 이미 저장되어 있는 데이터를 보존블록으로 이동시키는 수단을 제공할 수 있다.In other words, the flash memory storage device may provide a means for moving data already stored in the flash memory to the retention block by providing an interface for the gather command to the host.

이는 플래시메모리 저장 장치가 변경되지 않고 계속하여 저장될 데이터를 특정한 보존블록에 저장하도록 함으로써, 그 데이터가 저장된 블록에 가비지콜렉션이 수행되어 카피백이 발생하는 횟수를 줄이기 위함일 수 있다.This may be to reduce the number of times that a copyback occurs by performing garbage collection on a block in which the data is stored by allowing the flash memory storage device to store data to be continuously stored without being changed in a specific retention block.

한편, 보존데이터정보는 보존블록에 저장하려는 데이터의 논리주소를 포함할 수 있다. 즉, 호스트는 소정의 기준에 따라 보존블록에 저장하려는 데이터를 선별하고, 그 데이터의 논리주소를 플래시메모리 저장 장치에 전달함으로써 개더명령이 수행되도록 할 수 있다.Meanwhile, the preservation data information may include a logical address of data to be stored in the preservation block. That is, the host selects data to be stored in the retention block according to a predetermined criterion, and transmits the logical address of the data to the flash memory storage device so that the gather command is executed.

마지막으로 단계 S120에서는, 플래시메모리 저장 장치가 그 개더명령에 대응하여 보존데이터정보에 대응되는 데이터를 보존블록으로 이동시킨다.Finally, in step S120, the flash memory storage device moves the data corresponding to the save data information to the save block in response to the gather command.

즉, 플래시메모리 저장 장치는 그 개더명령을 수신하는 경우에, 보존데이터정보에 해당하는 데이터를 기존에 저장되어 있던 블록에서 보존블록으로 이동시킬 수 있다.That is, when the flash memory storage device receives the gather command, the data corresponding to the stored data information can be moved from the previously stored block to the reserved block.

한편, 플래시메모리 저장 장치가 보존데이터정보에 대응되는 데이터를 보존블록으로 이동시키는 자세한 방법은 도 2 및 3에 대한 설명에서 구체적으로 설명한다.Meanwhile, a detailed method for the flash memory storage device to move data corresponding to the preservation data information to the preservation block will be described in detail with reference to FIGS. 2 and 3 .

다른 실시예에서는, 보존데이터정보는 보존블록에 저장하려는 데이터의 시작논리주소 및 타겟 페이지 개수를 포함할 수 있다.In another embodiment, the preservation data information may include a start logical address of data to be stored in the preservation block and the number of target pages.

이때, 플래시메모리 저장 장치는 시작논리주소에서부터 타겟 페이지 개수만큼의 데이터를 보존블록으로 이동시킬 수 있다.In this case, the flash memory storage device may move data corresponding to the number of target pages from the start logical address to the retention block.

예컨대, 플래시메모리 저장 장치는 개더명령의 파라미터로 보존블록에 저장하려는 데이터의 시작논리주소 및 타겟 페이지 개수를 수신할 수 있다.For example, the flash memory storage device may receive the start logical address and target number of pages of data to be stored in the retention block as parameters of the gather command.

또 다른 실시예에서는, 플래시메모리 저장 장치가 시작논리주소에서부터 타겟 페이지 개수에 대응되는 데이터를 보존블록에 물리적으로 연속되도록 저장할 수 있다.In another embodiment, the flash memory storage device may store data corresponding to the target number of pages from the start logical address to be physically contiguous in the retention block.

즉, 플래시메모리 저장 장치는 시작논리주소에서부터 타겟 페이지 개수만큼의 데이터를 보존블록으로 이동시킬 때, 그 데이터들이 보존블록에 연속된 물리적 주소로 이동시켜 재배치할 수 있다.That is, when the flash memory storage device moves data corresponding to the number of target pages from the start logical address to the retention block, the data may be moved and rearranged by moving the data to a physical address contiguous to the retention block.

예컨대, 시작논리주소가 A이고, 타겟 페이지 개수가 B개일 때, 플래시메모리 저장 장치는 A에서부터 A+B까지 대응되는 물리주소의 데이터(페이지)를 보존블록의 연속된 물리주소인 C에서부터 C+B까지 저장할 수 있다.For example, when the starting logical address is A and the target number of pages is B, the flash memory storage device stores data (pages) of physical addresses corresponding to A to A+B from C to C+, which are consecutive physical addresses of the retention block. You can store up to B.

예컨대, 도 5를 참조하면, 플래시메모리 저장 장치는 호스트로부터 gather(Start_LBA, Length) 인터페이스를 통해 명령을 전달받아, Normal Region에 위치한 일반 블록의 데이터를, Gathered Region에 위치한 보존블록으로 이동시킬 수 있다.For example, referring to FIG. 5 , the flash memory storage device may receive a command from the host through the gather(Start_LBA, Length) interface, and move the data of the normal block located in the normal region to the retention block located in the gathered region. .

이와 같이, 본 발명을 이용하면 카피백에 크게 기여 하는 데이터 페이지들을 별도의 영역(예, 보존블록)으로 고립시키거나, 논리적으로 연속된 주소 영역에 저장된 데이터를 하나의 물리적 영역(예, 보존블록)에 모으는 등의 물리적 재배치가 가능하다. 즉, 사용자(호스트)에게 데이터의 물리적 위치를 지정할 수 있는 권한을 부여함으로써 플래시메모리 저장 장치의 성능과 수명에 악영향을 미치는 WAF 차원에서의 해결책을 제시할 수 있다. 일례로 본 발명을 활용하여 더 이상 갱신되지 않아 무효화(invalidate)되지 않는 동결 페이지를 별도의 영역으로 분리함으로써 유효한 페이지의 지속적인 카피백으로 인해 WAF가 증대되는 현상을 피할 수 있다. 본 발명은 특히 대용량의 데이터를 관리하는 데이터 서버와 같은 환경에서 데이터의 특성을 파악하고 있는 관리자 수준의 사용자들이 활용할 가능성이 매우 높다. 또한 본 발명은 향후에 데이터 특성을 고려한 자동화된 클러스터링 기술 등이 결합되어 윈도우에서 제공하는 디스크 조각 모음과 같이 플래시메모리 저장 장치의 성능을 높이기 위한 데이터 재배치 툴로 이용될 수 있다.As described above, if the present invention is used, data pages that greatly contribute to copyback are isolated in a separate area (eg, a retention block), or data stored in a logically continuous address area is stored in one physical area (eg, a retention block). ) can be physically rearranged. That is, by giving the user (host) the right to designate the physical location of data, it is possible to present a solution in the WAF dimension that adversely affects the performance and lifespan of the flash memory storage device. As an example, by separating a frozen page that is no longer updated and thus invalidated into a separate area by utilizing the present invention, a phenomenon in which WAF increases due to continuous copyback of valid pages can be avoided. In particular, the present invention is highly likely to be utilized by administrator-level users who understand the characteristics of data in an environment such as a data server that manages large amounts of data. In addition, the present invention can be used as a data relocation tool to improve the performance of a flash memory storage device, such as disk defragmentation provided by Windows, by combining automated clustering technology in consideration of data characteristics in the future.

도 2는 본 발명의 일 실시예에 따른 플래시메모리 저장 장치가 데이터를 보존블록으로 이동시키는 방법(eager gather)을 설명하기 위한 흐름도이다.2 is a flowchart illustrating a method (eager gather) for moving data to a retention block in a flash memory storage device according to an embodiment of the present invention.

단계 S210에서는, 플래시메모리 저장 장치가 FTL(flash translation layer)에 기반하여, 보존데이터정보에 대응되는 데이터 각각에 대응되는 페이지의 논리주소를 물리주소로 변환한다.In step S210, the flash memory storage device converts a logical address of a page corresponding to each data corresponding to the preserved data information into a physical address based on a flash translation layer (FTL).

여기서, 플래시메모리 저장 장치는 내부에 FTL을 포함하고 있으며, FTL은 호스트의 파일시스템의 논리주소(logical address)를 플래시메모리의 물리주소(physical address)로 변환하는 주소 매핑(address mapping)을 수행할 수 있다. 즉, FTL은 논리주소와 물리주소를 매핑하는 테이블을 가지고 있어 이와 같은 주소 매핑을 수행할 수 있다.Here, the flash memory storage device includes an FTL inside, and the FTL performs address mapping that converts a logical address of the host's file system into a physical address of the flash memory. can That is, the FTL has a table that maps logical addresses and physical addresses, so that address mapping can be performed.

단계 S220에서는, 플래시메모리 저장 장치가 그 변환된 물리주소를 이용하여, 보존데이터정보에 대응되는 데이터 각각에 대응되는 페이지를 무효화(invalidate)시킨다.In step S220, the flash memory storage device invalidates a page corresponding to each data corresponding to the stored data information by using the converted physical address.

즉, 플래시메모리 저장 장치는 플래시메모리에서 그 변환된 물리주소에 대응되는 페이지를 무효화시킬 수 있다.That is, the flash memory storage device may invalidate a page corresponding to the converted physical address in the flash memory.

마지막으로 단계 S230에서는, 플래시메모리 저장 장치가 그 무효화된 페이지에 저장된 데이터를 보존블록에 쓴다.Finally, in step S230, the flash memory storage device writes the data stored in the invalidated page to the retention block.

또한, 플래시메모리 저장 장치는 그 무효화된 페이지에 저장된 데이터를 보존블록에 저장시킬 수 있다. 나아가, 플래시메모리 저장 장치는 FTL에 포함된 주소 매핑 테이블의 물리주소를 보존블록에 대응되는 새로운 주소로 갱신할 수 있다.Also, the flash memory storage device may store data stored in the invalidated page in the retention block. Furthermore, the flash memory storage device may update the physical address of the address mapping table included in the FTL to a new address corresponding to the retention block.

그 결과로 플래시메모리 저장 장치는 새로 쓰여지는 물리주소가 기존의 쓰기나 GC를 통해서 연속적으로 쓰여지던 물리주소와 분리된 영역(즉, 보존블록에 대응되는 주소)에 존재할 수 있다. 본래 페이지 매핑 FTL 에서는 Append 방식으로 새로운 데이터를 쓴다. 즉, 새로운 데이터 쓰기, 기존 데이터 갱신 혹은 GC 로 인한 플래시 메모리 쓰기가 발생하면 쓰기가 그 종류에 상관없이 연속적인 물리적 영역에서 수행될 수 있다. 반면 본 인터페이스를 통해서 새로운 쓰기를 수행할 때에는 기존의 쓰기 스트림이 이뤄지던 연속적인 물리 영역과 분리된 별도의 영역에 쓰기를 수행한다.As a result, in the flash memory storage device, a newly written physical address may exist in a separate area (ie, an address corresponding to a retention block) from a physical address continuously written through an existing write or GC. In the original page mapping FTL, new data is written in the append method. That is, when writing new data, updating existing data, or writing to flash memory due to GC occurs, writing can be performed in a continuous physical area regardless of the type. On the other hand, when a new write is performed through this interface, the write is performed in a separate area separate from the continuous physical area where the existing write stream is performed.

예컨대, 도 6을 참조하면, 플래시메모리 저장 장치는 BLOCK 1의 6번 페이지와, BLOCK 2의 7번 페이지를 무효화(invalidate)한 후, 보존블록(BLOCK N)으로 이동시켜 저장할 수 있다.For example, referring to FIG. 6 , the flash memory storage device may invalidate page 6 of BLOCK 1 and page 7 of BLOCK 2, and then move it to the retention block BLOCK N and store it.

도 3은 본 발명의 다른 실시예에 따른 플래시메모리 저장 장치가 데이터를 보존블록으로 이동시키는 방법(async gather)을 설명하기 위한 흐름도이다.3 is a flowchart illustrating a method (async gather) for moving data to a retention block in a flash memory storage device according to another embodiment of the present invention.

단계 S310에서는, 플래시메모리 저장 장치가 FTL에 기반하여, 보존데이터정보에 대응되는 데이터 각각에 대응되는 페이지의 논리주소를 물리주소로 변환한다.In step S310, the flash memory storage device converts a logical address of a page corresponding to each data corresponding to the stored data information into a physical address based on the FTL.

단계 S320에서는, 플래시메모리 저장 장치가 그 변환된 물리주소를 이용하여, 보존데이터정보에 대응되는 데이터 각각에 대응되는 페이지에 개더마크(Gather Mark)를 설정한다.In step S320, the flash memory storage device sets a gather mark on a page corresponding to each data corresponding to the stored data information by using the converted physical address.

즉, 비동기식 개더(async gather)는 앞서 설명한 eager gather와는 다르게 개더명령을 받은 논리주소의 데이터가 보존영역에 저장되는 것을 기다리지 않고, 개더마크만을 설정하는 것이다.That is, asynchronous gather sets only the gather mark without waiting for the data of the logical address to which the gather command has been received to be stored in the retention area, unlike the eager gather described above.

다시 말하면, 플래시메모리 저장 장치는 개더명령을 받은 논리주소의 데이터를 보존영역에 곧바로 쓰는 것이 아니라, 개더마크만을 설정해 놓는다. 그리고, 플래시메모리 저장 장치는 그 후에 쓰기 작업을 별도로 수행함으로써 데이터의 이동을 완료할 수 있다.In other words, the flash memory storage device does not directly write the data of the logical address to which the gather command has been received to the storage area, but sets only the gather mark. Then, the flash memory storage device may complete the data movement by separately performing a write operation thereafter.

마지막으로 단계 S330에서는, 플래시메모리 저장 장치가 그 개더마크가 설정된 페이지를 포함하는 블록에 가비지콜렉션이 수행되는 경우, 그 개더마크가 설정된 페이지에 저장된 데이터를 보존블록에 쓴다.Finally, in step S330, when the flash memory storage device performs garbage collection on a block including a page in which the gather mark is set, data stored in the page in which the gather mark is set is written to the retention block.

즉, 플래시메모리 저장 장치는 그 개더마크가 설정된 페이지를 포함하는 블록에 가비지콜렉션이 수행될 때까지 대기할 수 있다. 그리고, 플래시메모리 저장 장치는 그 블록에 가비지콜렉션이 수행될 때, 그 개더마크가 설정된 페이지를 보존블록으로 이동시킬 수 있다.That is, the flash memory storage device may wait until garbage collection is performed on the block including the page in which the gather mark is set. And, when garbage collection is performed on the block, the flash memory storage device may move the page on which the gather mark is set to the retention block.

다시 말하면, 비동기식 개더는 이와 같이 가비지콜렉션에 따른 카피백을 수행할 때, 그 개더마크가 설정된 페이지에 대응되는 데이터가 카피백의 대상이 되면, 그 데이터를 보존블록으로 분리할 수 있다. 이에 따라, 비동기식 개더는 개더명령이 내려오면 개더마크 표시만 하고 곧바로 완료되기 때문에, eager gather 방식보다 우수한 성능을 나타낸다.In other words, when the asynchronous gather performs copyback according to garbage collection in this way, if data corresponding to the page on which the gather mark is set becomes the target of copyback, the data may be separated into preservation blocks. Accordingly, the asynchronous gather shows better performance than the eager gather method because it completes immediately after displaying the gather mark when a gather instruction is issued.

예컨대, 도 7을 참조하면, 플래시메모리 저장 장치는 BLOCK 1의 6번 페이지와, BLOCK 2의 7번 페이지에 개더마크(GATHER MARK)를 설정한 후, 해당 블록에 각각 GC가 발생할 때 보존블록(BLOCK N)으로 이동시켜 저장할 수 있다.For example, referring to FIG. 7 , the flash memory storage device sets a GATHER MARK on page 6 of BLOCK 1 and page 7 of BLOCK 2, and then sets the retention block ( It can be saved by moving it to BLOCK N).

이때, 비동기식 개더를 이용하기 위하여는 GC Mark를 위한 메모리를 추가로 필요로 하며, 개더명령의 대상이 된 논리주소의 데이터가 분리되는 시점이 개더명령을 받은 시점이 아닌 GC의 대상이 된 시점이기 때문에 호스트가 하나의 개더명령을 내린 논리주소의 데이터들이 각기 다른 시점에 복사될 수 있다.At this time, in order to use asynchronous gather, additional memory for GC Mark is required, and the time when the data of the logical address that is the target of the gather command is separated is the time when the data of the logical address that is the target of the gather command becomes the target of GC, not the time when the gather command is received Therefore, the data of the logical address that the host has issued a single gather command to may be copied at different times.

따라서, 일례로 발명 내용에서 언급한 동결 페이지 분리를 위해 사용하는 경우에는 분리될 대상들이 더는 무효화 되지 않을 데이터들이기 때문에 데이터의 순서와 상관없이 별도의 물리적 공간에 고립시키기만 하면 되므로, 비동기 개더가 강점을 가질 수 있다. 반면, 연속된 논리주소의 데이터의 수명이 비슷하여 연속된 물리주소로 모으고 싶은 경우에는 eager gather을 사용하는 것이 좋을 수 있다.Therefore, when used for frozen page separation mentioned in the invention as an example, the objects to be separated are data that will no longer be invalidated, so it only needs to be isolated in a separate physical space regardless of the data order, so asynchronous gather can have strengths. On the other hand, if you want to gather data into consecutive physical addresses because the data lifespan of consecutive logical addresses is similar, it may be better to use eager gather.

한편, 본 발명에 대한 성능 평가 결과는 다음과 같다. 본 성능 평가에서는 본 발명의 활용 방안으로서 더 이상 갱신되지 않는 동결 페이지를 별도의 물리 영역으로 분리하는 시나리오를 가정하였다. 실제로 대표적인 OLTP 워크로드에는 트랜잭션 처리 과정에 대한 히스토리를 기록하는 로그 형태의 데이터가 존재하며 해당 케이스를 입출력 생성 툴인 FIO를 통해 모델링하여 성능 평가를 진행하였다.Meanwhile, the performance evaluation results for the present invention are as follows. In this performance evaluation, a scenario in which a frozen page, which is no longer updated, is divided into a separate physical area is assumed as an application method of the present invention. In fact, in a typical OLTP workload, log data that records the history of transaction processing exists, and the performance was evaluated by modeling the case through FIO, an input/output generation tool.

이때, 벤치마크 수행 과정은 아래와 같다.At this time, the benchmark execution process is as follows.

1. SSD의 80% 영역을 랜덤 쓰기를 하면서 채운다. 이 때, 호스트에서 요청한 랜덤쓰기의 총 양은 전체 데이터베이스 크기의 3배에 달하는 양이다.1. Fill 80% of the SSD area with random writes. At this time, the total amount of random writes requested by the host is three times the size of the entire database.

2. 본 발명을 적용하는 경우에는 쓰여진 80% 영역의 논리적 데이터에 대한 개더명령을 내린다.2. When the present invention is applied, a gather command is issued for the logical data of the written 80% area.

3. SSD의 남은 20% 영역에 랜덤 쓰기를 수행한다. 3. Random write to the remaining 20% area of SSD.

이에 대한 최종 WAF은 아래의 표 1과 같다.The final WAF for this is shown in Table 1 below.

ConfigConfig Host Requested PagesHost Requested Pages Copy-backed PagesCopy-backed Pages WAFWAF OriginalOriginal 2,371,5312,371,531 6,377,0646,377,064 3.693.69 GATHERGATHER 2,362,9232,362,923 666,528666,528 1.281.28

본 발명을 적용한 동결 페이지의 분리를 통해 WAF를 3.69에서 1.28까지 감소시켜, 65%의 WAF 개선 효과를 확인할 수 있다. 이는 서로 성격이 다른 데이터를 별도의 물리적 공간에 분리함으로써 얻은 효과로 본 발명의 활용 가능성을 보여준다. 심지어 위의 실험의 초반 80% 쓰기 과정에서 최적의 결과를 얻기 위하여 랜덤 쓰기가 아니라 순차 쓰기 한 경우 WAF가 1.14까지 감소하는 것을 확인하였다. 이러한 WAF의 감소를 통해0 SSD 내부의 쓰기 처리양이 감소함에 따라 더불어 성능 개선의 효과를 볼 수 있다는 점에서 더욱 의미있다.도 4는 본 발명의 일 실시예에 따른 지우기 성능이 향상된 플래시메모리 저장 장치의 블록도이다.Through the separation of the frozen page to which the present invention is applied, the WAF is reduced from 3.69 to 1.28, and the WAF improvement effect of 65% can be confirmed. This shows the applicability of the present invention as an effect obtained by separating data having different characteristics in separate physical spaces. Even in the initial 80% of the above experiment, it was confirmed that the WAF decreased to 1.14 when sequential writing rather than random writing was performed in order to obtain an optimal result. This reduction in WAF is more meaningful in that the performance improvement can be seen as the amount of write processing inside the SSD is reduced. FIG. 4 is a flash memory storage with improved erase performance according to an embodiment of the present invention. It is a block diagram of the device.

도 4를 참조하면, 본 발명의 일 실시예에 따른 지우기 성능이 향상된 플래시메모리 저장 장치(400)는 수신부(410) 및 제어부(420)를 포함한다.Referring to FIG. 4 , a flash memory storage device 400 with improved erase performance according to an embodiment of the present invention includes a receiver 410 and a controller 420 .

수신부(410)는 호스트로부터 보존 대상 데이터가 저장되는 블록인 보존블록에 저장하려는 데이터에 관한 정보인 보존데이터정보를 포함하는 개더명령을 수신한다.The receiving unit 410 receives, from the host, a gather command including preservation data information, which is information about data to be stored in a preservation block, which is a block in which data to be preserved is stored.

제어부(420)는 그 개더명령에 대응하여 보존데이터정보에 대응되는 데이터를 보존블록으로 이동시킨다.The control unit 420 moves the data corresponding to the stored data information to the save block in response to the gather command.

다른 실시예에서는, 제어부(420)는 FTL에 기반하여, 그 보존데이터정보에 대응되는 데이터 각각에 대응되는 페이지의 논리주소를 물리주소로 변환하고, 그 변환된 물리주소를 이용하여, 보존데이터정보에 대응되는 데이터 각각에 대응되는 페이지를 무효화시키고, 그 무효화된 페이지에 저장된 데이터를 보존블록에 쓸 수 있다.In another embodiment, the control unit 420 converts a logical address of a page corresponding to each data corresponding to the stored data information into a physical address based on the FTL, and uses the converted physical address to convert the stored data information A page corresponding to each of the data corresponding to can be invalidated, and data stored in the invalidated page can be written to the retention block.

또 다른 실시예에서는, 제어부(420)는 FTL에 기반하여, 그 보존데이터정보에 대응되는 데이터 각각에 대응되는 페이지의 논리주소를 물리주소로 변환하고, 그 변환된 물리주소를 이용하여, 보존데이터정보에 대응되는 데이터 각각에 대응되는 페이지에 개더마크를 설정하고, 그 개더마크가 설정된 페이지를 포함하는 블록에 가비지콜렉션이 수행되는 경우, 개더마크가 설정된 페이지에 저장된 데이터를 보존블록에 쓸 수 있다.In another embodiment, the control unit 420 converts a logical address of a page corresponding to each data corresponding to the stored data information into a physical address based on the FTL, and uses the converted physical address to convert the stored data When a gather mark is set on a page corresponding to each data corresponding to the information, and garbage collection is performed on a block including the page on which the gather mark is set, the data stored in the page on which the gather mark is set can be written to the retention block. .

또 다른 실시예에서는, 보존데이터정보는 보존블록에 저장하려는 데이터의 시작논리주소 및 타겟 페이지 개수를 포함할 수 있다.In another embodiment, the preservation data information may include a start logical address of data to be stored in the preservation block and the number of target pages.

또 다른 실시예에서는, 제어부(420)가 보존데이터정보에 대응되는 데이터를 보존블록으로 이동시킬 때, 시작논리주소에서부터 타겟 페이지 개수에 대응되는 데이터를 보존블록에 물리적으로 연속되도록 저장할 수 있다.In another embodiment, when the control unit 420 moves data corresponding to the preservation data information to the preservation block, data corresponding to the number of target pages from the start logical address may be physically stored in the preservation block in a continuous manner.

이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 사람이라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 실행된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely illustrative of the technical idea of the present invention, and various modifications and variations will be possible without departing from the essential characteristics of the present invention by those skilled in the art to which the present invention pertains. Accordingly, the embodiments implemented in the present invention are not intended to limit the technical spirit of the present invention, but to explain, and the scope of the technical spirit of the present invention is not limited by these embodiments. The protection scope of the present invention should be construed by the following claims, and all technical ideas within the scope equivalent thereto should be construed as being included in the scope of the present invention.

Claims (10)

호스트로부터 보존 대상 데이터가 저장되는 블록인 보존블록에 저장하려는 데이터에 관한 정보인 보존데이터정보를 포함하는 개더명령(Gather Command)을 수신하는 단계; 및
상기 개더명령에 대응하여 상기 보존데이터정보에 대응되는 데이터를 상기 보존블록으로 이동시키는 단계;
를 포함하는 것을 특징으로 하는 플래시메모리 저장 장치의 지우기 성능 향상 방법.
receiving, from a host, a gather command including preservation data information, which is information about data to be stored in a preservation block, which is a block in which data to be preserved is stored; and
moving data corresponding to the stored data information to the storage block in response to the gather command;
A method for improving erase performance of a flash memory storage device, comprising:
제1항에 있어서,
상기 보존블록으로 이동시키는 단계는
FTL(flash translation layer)에 기반하여, 상기 보존데이터정보에 대응되는 데이터 각각에 대응되는 페이지의 논리주소를 물리주소로 변환하는 단계;
상기 변환된 물리주소를 이용하여, 상기 보존데이터정보에 대응되는 데이터 각각에 대응되는 페이지를 무효화(invalidate)시키는 단계; 및
상기 무효화된 페이지에 저장된 데이터를 상기 보존블록에 쓰는 단계;
를 포함하는 것을 특징으로 하는 플래시메모리 저장 장치의 지우기 성능 향상 방법.
According to claim 1,
The step of moving to the preservation block is
converting a logical address of a page corresponding to each data corresponding to the preserved data information into a physical address based on a flash translation layer (FTL);
using the converted physical address to invalidate a page corresponding to each data corresponding to the stored data information; and
writing data stored in the invalidated page to the retention block;
A method for improving erase performance of a flash memory storage device, comprising:
제1항에 있어서,
상기 보존블록으로 이동시키는 단계는
FTL에 기반하여, 상기 보존데이터정보에 대응되는 데이터 각각에 대응되는 페이지의 논리주소를 물리주소로 변환하는 단계;
상기 변환된 물리주소를 이용하여, 상기 보존데이터정보에 대응되는 데이터 각각에 대응되는 페이지에 개더마크(Gather Mark)를 설정하는 단계; 및
상기 개더마크가 설정된 페이지를 포함하는 블록에 가비지콜렉션(Garbage Collection, GC)이 수행되는 경우, 상기 개더마크가 설정된 페이지에 저장된 데이터를 상기 보존블록에 쓰는 단계;
를 포함하는 것을 특징으로 하는 플래시메모리 저장 장치의 지우기 성능 향상 방법.
According to claim 1,
The step of moving to the preservation block is
converting a logical address of a page corresponding to each data corresponding to the stored data information into a physical address based on the FTL;
setting a Gather Mark on a page corresponding to each data corresponding to the stored data information by using the converted physical address; and
when garbage collection (GC) is performed on a block including the page in which the gather mark is set, writing data stored in the page in which the gather mark is set to the retention block;
A method for improving erase performance of a flash memory storage device, comprising:
제1항에 있어서,
상기 보존데이터정보는
상기 보존블록에 저장하려는 데이터의 시작논리주소 및 타겟 페이지 개수를 포함하는 것을 특징으로 하는 플래시메모리 저장 장치의 지우기 성능 향상 방법.
According to claim 1,
The preservation data information is
The method for improving erase performance of a flash memory storage device, characterized in that it includes a start logical address and a target number of pages of data to be stored in the retention block.
제4항에 있어서,
상기 보존블록으로 이동시키는 단계는
상기 시작논리주소에서부터 상기 타겟 페이지 개수에 대응되는 데이터를 상기 보존블록에 물리적으로 연속되도록 저장하는 것을 특징으로 하는 플래시메모리 저장 장치의 지우기 성능 향상 방법.
5. The method of claim 4,
The step of moving to the preservation block is
and storing the data corresponding to the number of target pages from the start logical address in the retention block so as to be physically contiguous.
호스트로부터 보존 대상 데이터가 저장되는 블록인 보존블록에 저장하려는 데이터에 관한 정보인 보존데이터정보를 포함하는 개더명령을 수신하는 수신부; 및
상기 개더명령에 대응하여 상기 보존데이터정보에 대응되는 데이터를 상기 보존블록으로 이동시키는 제어부;
를 포함하는 것을 특징으로 하는 지우기 성능이 향상된 플래시메모리 저장 장치.
a receiving unit for receiving a gather command including preservation data information, which is information about data to be stored in a preservation block, which is a block in which the data to be preserved is stored; and
a control unit for moving data corresponding to the storage data information to the storage block in response to the gather command;
A flash memory storage device with improved erase performance comprising a.
제6항에 있어서,
상기 제어부는
FTL에 기반하여, 상기 보존데이터정보에 대응되는 데이터 각각에 대응되는 페이지의 논리주소를 물리주소로 변환하고,
상기 변환된 물리주소를 이용하여, 상기 보존데이터정보에 대응되는 데이터 각각에 대응되는 페이지를 무효화시키고,
상기 무효화된 페이지에 저장된 데이터를 상기 보존블록에 쓰는 것을 특징으로 하는 지우기 성능이 향상된 플래시메모리 저장 장치.
7. The method of claim 6,
the control unit
Based on the FTL, the logical address of the page corresponding to each data corresponding to the stored data information is converted into a physical address,
using the converted physical address to invalidate a page corresponding to each data corresponding to the preserved data information,
and writing data stored in the invalidated page to the retention block.
제6항에 있어서,
상기 제어부는
FTL에 기반하여, 상기 보존데이터정보에 대응되는 데이터 각각에 대응되는 페이지의 논리주소를 물리주소로 변환하고,
상기 변환된 물리주소를 이용하여, 상기 보존데이터정보에 대응되는 데이터 각각에 대응되는 페이지에 개더마크를 설정하고,
상기 개더마크가 설정된 페이지를 포함하는 블록에 가비지콜렉션이 수행되는 경우, 상기 개더마크가 설정된 페이지에 저장된 데이터를 상기 보존블록에 쓰는 것을 특징으로 하는 지우기 성능이 향상된 플래시메모리 저장 장치.
7. The method of claim 6,
the control unit
Based on the FTL, the logical address of the page corresponding to each data corresponding to the preservation data information is converted into a physical address,
setting a gather mark on a page corresponding to each data corresponding to the stored data information by using the converted physical address;
When garbage collection is performed on a block including the page in which the gather mark is set, the data stored in the page in which the gather mark is set is written to the retention block.
제6항에 있어서,
상기 보존데이터정보는
상기 보존블록에 저장하려는 데이터의 시작논리주소 및 타겟 페이지 개수를 포함하는 것을 특징으로 하는 지우기 성능이 향상된 플래시메모리 저장 장치.
7. The method of claim 6,
The preservation data information is
A flash memory storage device with improved erase performance, characterized in that it includes a start logical address and a target number of pages of data to be stored in the retention block.
제9항에 있어서,
상기 제어부가 상기 보존데이터정보에 대응되는 데이터를 상기 보존블록으로 이동시킬 때,
상기 시작논리주소에서부터 상기 타겟 페이지 개수에 대응되는 데이터를 상기 보존블록에 물리적으로 연속되도록 저장하는 것을 특징으로 하는 지우기 성능이 향상된 플래시메모리 저장 장치.
10. The method of claim 9,
When the control unit moves data corresponding to the preservation data information to the preservation block,
and storing data corresponding to the number of target pages from the start logical address in the retention block so as to be physically contiguous.
KR1020200002289A 2020-01-07 2020-01-07 Flash memory storage with improved erase performance and method thereof KR20210089055A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200002289A KR20210089055A (en) 2020-01-07 2020-01-07 Flash memory storage with improved erase performance and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200002289A KR20210089055A (en) 2020-01-07 2020-01-07 Flash memory storage with improved erase performance and method thereof

Publications (1)

Publication Number Publication Date
KR20210089055A true KR20210089055A (en) 2021-07-15

Family

ID=76889490

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200002289A KR20210089055A (en) 2020-01-07 2020-01-07 Flash memory storage with improved erase performance and method thereof

Country Status (1)

Country Link
KR (1) KR20210089055A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150106777A (en) 2014-03-12 2015-09-22 삼성전자주식회사 Flash memory device and controlling method of flash memory device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150106777A (en) 2014-03-12 2015-09-22 삼성전자주식회사 Flash memory device and controlling method of flash memory device

Similar Documents

Publication Publication Date Title
US11301369B2 (en) Logical to physical mapping management using low-latency non-volatile memory
US10635310B2 (en) Storage device that compresses data received from a host before writing therein
US10915475B2 (en) Methods and apparatus for variable size logical page management based on hot and cold data
US9753847B2 (en) Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping
US9229876B2 (en) Method and system for dynamic compression of address tables in a memory
EP2439645B1 (en) Method and apparatus for storing data in a multi-level cell flash memory device
KR101457270B1 (en) Lba bitmap usage
US11232041B2 (en) Memory addressing
US8612719B2 (en) Methods for optimizing data movement in solid state devices
US8635399B2 (en) Reducing a number of close operations on open blocks in a flash memory
US20170139825A1 (en) Method of improving garbage collection efficiency of flash-oriented file systems using a journaling approach
EP2665065A2 (en) Electronic device employing flash memory
US20200183831A1 (en) Storage system and system garbage collection method
US20100318726A1 (en) Memory system and memory system managing method
US11204864B2 (en) Data storage devices and data processing methods for improving the accessing performance of the data storage devices
KR101017067B1 (en) Locality-Aware Garbage Collection Technique for NAND Flash Memory-Based Storage Systems
US10990316B2 (en) Log-based storage for different data types in non-volatile memory
KR101403922B1 (en) Apparatus and method for data storing according to an access degree
CN112130749B (en) Data storage device and non-volatile memory control method
CN113031866B (en) Trim management method applied to SSD
US8850160B2 (en) Adaptive write behavior for a system having non-volatile memory
KR20210089055A (en) Flash memory storage with improved erase performance and method thereof
CN114625318A (en) Data writing method, device and equipment applied to solid state disk
TW201624491A (en) Information processing device and non-transitory computer readable recording medium
KR20090046568A (en) Flash memory system and writing method of thereof

Legal Events

Date Code Title Description
E601 Decision to refuse application