KR101681402B1 - Method for arranging data storage block of flash memory based on database table name - Google Patents
Method for arranging data storage block of flash memory based on database table name Download PDFInfo
- Publication number
- KR101681402B1 KR101681402B1 KR1020150017653A KR20150017653A KR101681402B1 KR 101681402 B1 KR101681402 B1 KR 101681402B1 KR 1020150017653 A KR1020150017653 A KR 1020150017653A KR 20150017653 A KR20150017653 A KR 20150017653A KR 101681402 B1 KR101681402 B1 KR 101681402B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- flash memory
- same
- deletion time
- 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/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
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
본 발명은 데이터 베이스 테이블 이름에 따른 플래시 메모리의 데이터 저장 블록 배치 방법에 관한 것이다.
본 발명의 방법은, 동일한 데이터 베이스 테이블 이름(DB table name)을 갖는 데이터가 동일한 데이터 그룹에 포함되도록 설정하는 그룹 설정 단계 및 동일한 데이터 그룹에 포함된 데이터를 동일한 플래시메모리 블록에 저장하는 데이터 저장 단계를 포함하는 것을 특징으로 한다.BACKGROUND OF THE INVENTION 1. Field of the Invention [0001] The present invention relates to a data storage block arrangement method of a flash memory according to a database table name.
The method of the present invention includes a group setting step of setting data having the same database table name (DB table name) to be included in the same data group, and a data storing step of storing data included in the same data group in the same flash memory block And a control unit.
Description
본 발명은 반도체 메모리 장치에 관한 것으로 더욱 상세하게는 플래시 메모리를 기반으로 하는 데이터 저장 방법에 관한 것이다.The present invention relates to a semiconductor memory device, and more particularly, to a flash memory based data storage method.
플래시 메모리는 비휘발성 메모리로서 크게 기존의 랜덤 메모리의 특성을 많이 가지고 있는 노어형플래시(NORFlash)와 하드디스크 등과 같은 스토리지 매체의 특성과 유사한 낸드형플래시(NAND Flash)로 분류된다.Flash memory is a nonvolatile memory and is classified into NAND flash, which is similar to the characteristics of storage media such as NOR flash and hard disk, which have many characteristics of conventional random memory.
낸드플래시 메모리의 내부구조는도 1에 도시된 바와 같이 복수의 블록(Block)으로 구성되며, 각 블록은 복수의 페이지로 이루어져 있다. 예를들어, 하나의 블록은 64 또는 128개의 페이지로 구성될 수 있다.The internal structure of the NAND flash memory is composed of a plurality of blocks as shown in FIG. 1, and each block is composed of a plurality of pages. For example, one block may consist of 64 or 128 pages.
낸드플래시 메모리는 읽기(Read) 및 쓰기(Write) 연산을 페이지(page) 단위로 수행하며, 지우기(Erase) 연산은 블록(Block) 단위로 수행한다. 각 동작의 연산 속도는 서로 상이한데, 예를들어 읽기연산은약 25us, 쓰기연산은약 250us, 지우기연산은 2,000us정도로 각 연산의 속도가 비대칭적이며 특히 지우기연산의 속도가 가장 느리므로 빈번한 삭제 동작이 반복되는 경우 메모리의 동작 속도가 전체적으로 느려질 수 있어 문제 된다.The NAND flash memory performs read and write operations on a page basis, and erase operations are performed on a block basis. The operation speed of each operation is different from each other. For example, the read operation is about 25 us, the write operation is about 250 us, and the erase operation is about 2,000 us, so that the speed of each operation is asymmetrical, If the operation is repeated, the operation speed of the memory may be slowed as a whole.
그런데, 하드디스크드라이브의 경우,데이터갱신(update) 발생시 기존 데이터의 물리적으로 동일한 영역에 덮어쓸 수 있는(in-place update) 반면에, 낸드플래시 메모리는 해당 영역이 삭제(erase)된 상태에서만 기록이 가능하다.However, in the case of a hard disk drive, when an update occurs, the NAND flash memory can be overwritten in the same physical area of the existing data (in-place update). On the other hand, This is possible.
즉, 낸드플래시 메모리는 해당 블록이 삭제되어야만 그 위치에 새로운 정보를 기록할 수 있다는 특징을 가지고 있다. 이러한 특징으로 인해 이전에 데이터가 기록된 위치에 바로 덮어쓸 수 없고 새로운 위치에 기록을 한 후(out-place update) 위치정보를 갱신(update)해야한다.That is, the NAND flash memory is characterized in that new information can be recorded at the position only when the corresponding block is deleted. Due to this feature, it is impossible to immediately overwrite the location where the data was previously recorded, and the location information must be updated after out-place update.
그러므로, 낸드 플래시 메모리에서 동작 속도 개선을 위해서 블록 삭제 횟수를 감소시키는 기술이중요하게 인식되어 왔다.Therefore, in order to improve the operation speed in the NAND flash memory, a technique of reducing the number of block deletion has been recognized as important.
한편, 플래시메모리는 기록/지우기횟수가 소정횟수(예를들어 100,000번) 이하로 제한되어 있으므로 동일 블록을 해당 횟수를 초과하여 사용하면 그 블록은 더이상 정상적인 사용(새로운쓰기행위)이 불가능하다. 그런데, 종래 플레시 메모리 제어 방법에서는 백그라운드 동작(background operation)으로 가비지를 수집(garbage collection)하는 과정에서, 많은 횟수의 읽고 쓰기 동작이 반복되고 있었다.On the other hand, since the number of times of writing / erasing in the flash memory is limited to a predetermined number of times (for example, 100,000 times), if the same block is used more than the corresponding number, the block can no longer be normally used (new writing action). However, in the conventional flash memory control method, a large number of read and write operations have been repeated in the process of garbage collection in the background operation.
그러므로, 플래시 메모리의 수명을 연장시키기 위해서는 처음부터 프래그먼트(fragment)의 발생을 줄여서 백그라운드 동작에서의 읽고 쓰기 동작을 감소시키는 기술이 필요하다.Therefore, in order to extend the lifetime of the flash memory, there is a need for a technique for reducing the generation of fragments from the beginning to reduce the read / write operation in the background operation.
본 발명의 발명가는 이러한 문제점을 해결하기 위하여 오랫동안 연구노력한 끝에 본 발명을 완성하게 되었다.The inventor of the present invention has endeavored for a long time to solve this problem, and finally completed the present invention.
본 발명의 목적은 데이터 베이스 테이블 이름 특성을 고려하여 비슷한 시간에 삭제가 예상되는 데이터를 동일한 블록에 저장하도록하여 블록 내의 프래그먼트(FRAGMENTS)를 옮기기 위해서 필요한 추가적인 백그라운드 쓰기 동작을 줄이도록 하는 플래시 메모리의 데이터 저장 블록 배치 방법을 제공하는데 있다.SUMMARY OF THE INVENTION It is an object of the present invention to provide an apparatus and a method for storing data of a flash memory that reduces data to be deleted at a similar time in consideration of a database table name property in the same block, thereby reducing additional background write operations required to move FRAGMENTS in a block Storage block allocation method.
본 발명의 또 다른 목적은 데이터 저장시 NVM-Express와 같은 호스트-장치 인터페이스(이하 'NVMe')를 통해 데이터의 삭제시간을 추정할 수 있는 meta data를 전달하여, 데이터가 저장되는 블록 배치를 최적화하여, 프래그먼트를 최소화하고 가비지 수집(garbage collection)시 데이터의 복사와 삭제를 최소화할 수 있는 플래시 메모리의 데이터 저장 블록 배치 방법을 제공하는데 있다.It is still another object of the present invention to provide a method and apparatus for transferring meta data capable of estimating data deletion time through a host-device interface (hereinafter referred to as NVMe) such as NVM-Express To minimize fragmentation and minimize copying and deletion of data when garbage collection is performed.
한편, 본발명의 명시되지 않은 또 다른 목적들은 하기의 상세한 설명 및 그 효과로부터 용이하게 추론할 수 있는 범위 내에서 추가적으로 고려될 것이다.On the other hand, other unspecified purposes of the present invention will be further considered within the scope of the following detailed description and easily deduced from the effects thereof.
위와 같은 목적을 달성하기 위한 본 발명의 플래시 메모리의 데이터 저장 블록 배치 방법은 삭제시간이 제1 삭제시간 범위 내에 있는 데이터를 제1 데이터 그룹으로 설정하고, 삭제시간이 제2 삭제시간 범위 내에 있는 데이터를 제2 데이터 그룹으로 설정하는 그룹 설정 단계; 및According to another aspect of the present invention, there is provided a method of arranging data storage blocks in a flash memory, the method comprising: setting data whose deletion time is within a first deletion time range to a first data group; To a second data group; And
제1 데이터 그룹에 포함된 데이터를 제1 플래시메모리 블록에 저장하고, 제2 데이터 그룹에 포함된 데이터를 제2 플래시 메모리 블록에 저장하는 데이터 저장 단계를 포함하고,And a data storing step of storing data included in the first data group in the first flash memory block and storing data included in the second data group in the second flash memory block,
상기 삭제시간은 플래시 메모리에 저장된 데이터가 메모리 블록에서 삭제되는 시각이고,The deletion time is a time at which data stored in the flash memory is deleted from the memory block,
상기 제1 삭제시간 범위는 상기 제2 삭제시간 범위 보다 시간적으로 미래에 존재하는 것을 특징으로 한다.And the first deletion time range is present in time later than the second deletion time range.
바람직한 실시예에 있어서, 본 발명은, 상기 그룹 설정 단계 전에, 데이터가 메모리 블록에 저장되는 시간부터 삭제되는 시간까지의 기간인 저장기간을 데이터의 특성에 따라 설정하고, 데이터가 저장되는 시간에 상기 저장기간을 더하여 삭제시간을 연산하는 삭제시간 연산 단계를 더 포함하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a method of controlling a memory device, comprising: setting a storage period, which is a period from a time at which data is stored in a memory block to a time at which the data is stored, And a deletion time calculating step of calculating a deletion time by adding the storage period.
바람직한 실시예에 있어서, 본 발명의 상기 그룹 설정 단계는, 동일한 파일 확장자를 갖는 데이터가 동일한 데이터 그룹에 포함되도록 설정하는 것을 특징으로 한다.In a preferred embodiment, the group setting step of the present invention is characterized in that data having the same file extension is included in the same data group.
바람직한 실시예에 있어서, 본 발명은, 그룹 설정 단계 전에, 동일한 파일 확장자를 갖는 데이터가 동일한 저장기간을 갖는 것으로 설정하고, 데이터가 저장되는 시간에 상기 저장기간을 더하여 삭제시간을 연산하는 삭제시간 연산 단계를 더 포함하는 것을 특징으로 한다.In a preferred embodiment of the present invention, before the group setting step, the data having the same file extension is set to have the same storage period, the deletion time calculation for calculating the deletion time by adding the storage period to the time at which the data is stored Further comprising the steps of:
바람직한 실시예에 있어서, 본 발명의 상기 그룹 설정 단계는,실행 파일 확장자(.exe)를 갖는 데이터를 제1 데이터 그룹으로, 임시 파일 확장자(.tmp)를 갖는 데이터를 제2 데이터 그룹으로 설정하는 것을 특징으로 한다.In a preferred embodiment, the group setting step of the present invention sets data having an executable file extension (.exe) as a first data group and data having a temporary file extension (.tmp) as a second data group .
바람직한 실시예에 있어서, 본 발명은,사전에 설정된 기간 동안, 동일한 파일 확장자를 갖는 데이터의 저장기간 로그를 저장하여 저장기간 또는 삭제시간을 갱신하는 피드백 단계를 더 포함하는것을 특징으로 한다.In a preferred embodiment, the present invention is characterized by further comprising a feedback step of storing a storage period log of data having the same file extension for a preset period to update a storage period or a deletion time.
바람직한 실시예에 있어서, 본 발명의 상기 그룹 설정 단계는,서로 다른 파일 확장자를 갖는 데이터라도 저장기간이 사전에 설정된 범위 내에 있는 경우 동일한 데이터 그룹으로 설정하는 것을 특징으로 한다.In a preferred embodiment, the group setting step of the present invention sets data groups having different file extensions to the same data group when the storage period is within a preset range.
바람직한 실시예에 있어서, 본 발명의 상기 그룹 설정 단계는,파일 확장자가 동일하고, 상기 파일 확장자의 시퀀스 번호(sequence number)가 사전에 설정된 범위 내에 있는 데이터를 동일한 데이터 그룹에 포함되도록 설정하는 것을 특징으로 한다.According to a preferred embodiment of the present invention, the group setting step of the present invention is characterized in that data having the same file extension and whose sequence number of the file extension is within a preset range is set to be included in the same data group .
바람직한 실시예에 있어서, 본 발명은,사전에 설정된 기간 동안, 동일한 파일 확장자를 갖는 데이터의 저장기간 및 시퀀스 번호의 로그를 저장하여 저장기간 또는 삭제시간을 갱신하는 피드백 단계를 더 포함하는것을 특징으로 한다.In a preferred embodiment, the present invention further comprises a feedback step of storing a log of the storage period and the sequence number of the data having the same file extension for a preset period to update the storage period or the deletion time do.
바람직한 실시예에 있어서, 본 발명의 상기 그룹 설정 단계는,파일 확장자와 저장기간 사이의 연관성이 없다고 사전에 지정된 확장자에 대해서는 파일 확장자가 동일하더라도, 상기 파일 확장자의 시퀀스 번호(sequence number)가 사전에 설정된 범위 내에 있는 경우에만 동일한 데이터 그룹에 포함되도록 설정하는 것을 특징으로 한다.In a preferred embodiment of the present invention, in the group setting step of the present invention, even if a file extension is the same for an extension specified in advance that there is no association between a file extension and a storage period, the sequence number of the file extension is stored in advance And is set to be included in the same data group only when it is within the set range.
바람직한 실시예에 있어서, 본 발명의 상기 플래시 메모리 제어 방법은 NVMe 프로토콜을 통한 FTL 알고리즘에 따라 실행되는 플래시 메모리 장치를 제어하는 것을 특징으로 한다.In a preferred embodiment, the flash memory control method of the present invention is characterized by controlling a flash memory device executed according to an FTL algorithm through the NVMe protocol.
바람직한 실시예에 있어서, 본 발명에 있어서, 상기 삭제시간은 NVMe 프로토콜을 통한 FTL 알고리즘에 따라 FTL에 전송되는 메타 데이터에 포함되는 것을 특징으로 한다.In a preferred embodiment of the present invention, the deletion time is included in metadata transmitted to the FTL according to the FTL algorithm through the NVMe protocol.
종래에는 데이터가 쓰여지는 시점에 따라 블록을 할당하고 데이터의 특성과 관계없이 블록 배치를 하였기 때문에 사용시간이 지남에 따라 생기는 프래그먼트(fragment)를 백그라운드 오퍼레이션으로 가비지컬랙션하는 과정에서, 추가적으로 많은 데이터의 복사와 삭제가 동반되는 문제(write amplification)가 있었지만, 본 발명에서는 데이터의 삭제시간을 추정할 수 있는 메타 데이터를 전달하여 실제 메모리에서 삭제시간이 같은 데이터를 동일 블록에 저장하도록 하므로, 프래그먼트를 최소화할 수 있고 가비지컬랙션수행시 데이터의 복사와 삭제를 최소화할 수 있는 효과가 있다. Conventionally, since a block is allocated according to a time when data is written and the block is arranged irrespective of the characteristics of data, in the course of garbage collection of a fragment generated as a result of use time as a background operation, However, in the present invention, since metadata that can estimate the data deletion time is transmitted and data having the same deletion time is stored in the actual memory in the same block, the fragment size is minimized And the data copying and deletion can be minimized when the garbage collection is performed.
또한, 위와 같은 본 발명에 따르면 일정 시간 이상 사용된(aging) 플래시 메모리의 수명을 연장(내구성 향상)시킬 수 있는 효과가 있다.In addition, according to the present invention as described above, the lifetime of a flash memory aging for a predetermined time or more can be extended (durability is improved).
또한, 본 발명에 따르면 일정 시간 이상 사용된(aging) 플래시 메모리에서 쓰기 속도를 향상시킬 수 있는 효과가 있다.In addition, according to the present invention, there is an effect that the writing speed can be improved in a flash memory used for a predetermined time or more.
또한, 데이터 읽기/쓰기와 백그라운드 GC의 경쟁을 최소화하여 성능을 향상시키는 효과가 있다.In addition, data reading / writing and background GC competition are minimized to improve performance.
한편, 여기에서 명시적으로 언급되지 않은 효과라하더라도, 본 발명의 기술적 특징에의해 기대되는 이하의 명세서에서 기재된 효과 및 그 잠정적인 효과는 본 발명의 명세서에 기재된 것과 같이 취급됨을 첨언한다.On the other hand, even if the effects are not explicitly mentioned here, the effect described in the following specification, which is expected by the technical features of the present invention, and its potential effects are treated as described in the specification of the present invention.
도 1은 종래기술에 따른 플래시 메모리의 읽기/쓰기 동작을 설명하기 위한 도면이다.
도 2는 본 발명의 플래시 메모리의 데이터 저장 블록 배치 방법을 이용하는 컴퓨터 시스템의 일실시예를 개략적으로 나타내는 도면이다.
도 3은본 발명의 플래시 메모리의 데이터 저장 블록 배치 방법을 이용하는 컴퓨터 시스템의 소프트웨어 계층의 일실시예를나타내는 도면이다.
도 4는 본 발명의 플래시 메모리의 데이터 저장 블록 배치 방법을 이용하는 컴퓨터 시스템의 소프트웨어 계층의 일실시예를 나타내는 도면이다.
도 5는 본 발명의 플래시 메모리의 데이터 저장 블록 배치 방법을 이용하는 컴퓨터 시스템의 소프트웨어 계층으로써 도 4의 변형 실시예를 나타내는 도면이다.
도 6은 본 발명의 플래시 메모리의 데이터 저장 블록 배치 방법을 이용하는 컴퓨터 시스템의 소프트웨어 계층으로써 도 5의 변형 실시예를 나타내는 도면이다.
도 7은본 발명의 플래시 메모리의 데이터 저장 블록 배치 방법의 일 실시예를 나타내는 순서도이다.
첨부된 도면은 본 발명의 기술사상에 대한 이해를 위하여 참조로서 예시된 것 임을 밝히며, 그것에 의해 본 발명의 권리범위가 제한되지는 아니한다.1 is a view for explaining a read / write operation of a flash memory according to the prior art.
2 is a diagram schematically illustrating an embodiment of a computer system using a data storage block arrangement method of a flash memory of the present invention.
3 is a diagram illustrating an embodiment of a software layer of a computer system that utilizes a method for arranging data storage blocks of a flash memory of the present invention.
4 is a diagram illustrating one embodiment of a software layer of a computer system that utilizes a data storage block placement method of a flash memory of the present invention.
5 is a diagram illustrating an alternative embodiment of FIG. 4 as a software layer of a computer system that utilizes a data storage block placement method of a flash memory of the present invention.
Figure 6 is an illustration of an alternate embodiment of Figure 5 as a software layer of a computer system utilizing a method of allocating data storage blocks of a flash memory of the present invention.
7 is a flowchart showing an embodiment of a data storage block arrangement method of the flash memory of the present invention.
It is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims.
이하, 첨부된 도면을 참조하여 본 발명의 실시를 위한 구체적인 내용을 설명한다. 그리고 본 발명을 설명함에 있어서 관련된 공지기능에 대하여 이 분야의 기술자에게 자명한 사항으로서 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may obscure the subject matter of the present invention.
플래시 메모리 장치는 불휘발성 메모리의 한 종류이다. 플래시 메모리 장치는 기존 하드디스크에 비해 빠른 데이터 접근 성능을 보장하며, 부피와 전력 소모가 매우 작다. 또한 플래시 메모리 장치는 외부 충격에 강해 휴대용 기기의 저장 장치로 많이 사용되고 있다.A flash memory device is a kind of nonvolatile memory. Flash memory devices provide faster data access performance than conventional hard disks and have very low volume and power consumption. In addition, flash memory devices are strong against external shocks and are widely used as storage devices for portable devices.
플래시 메모리는 일정 수준의 수명을 갖는데, 이는 쓰기/소거 횟수를 기반으로 결정될 수 있다. 한편, 플래시 메모리는 물리적 특성으로 인하여 덮어쓰기(overwrite) 동작을 수행할 수 없다. 즉, 플래시 메모리는 데이터가 기입된 메모리 블록에 쓰기 동작을 수행할 경우, 메모리 블록의 쓰기 동작 전에 소거 동작을 수행하게 된다.Flash memory has a certain level of lifetime, which can be determined based on the number of write / erase operations. On the other hand, the flash memory can not perform an overwrite operation due to its physical characteristics. That is, when a write operation is performed to a memory block in which data is written, the flash memory performs an erase operation before a write operation of the memory block.
전술한 낸드 플래시 메모리만의 특성에 따라 호스트 시스템의 파일 시스템(File System)과 낸드 플래시 메모리 사이에 플래시 변환 계층(Flash Translation Layer; 이하 'FTL')이라는 시스템 소프트웨어를 사용한다. FTL은 호스트 시스템의 파일 시스템에게 낸드 플래시 메모리가 가지고 있는 고유의 특성들을 감추며, 하드 디스크와 동일한 입/출력 연산을 수행할 수 있도록 파일 시스템으로부터 전달되는 논리적인 주소를 낸드 플래시 메모리의 물리적인 주소와 매핑(mapping)하는 것이다.System software called a Flash Translation Layer (FTL) is used between the file system of the host system and the NAND flash memory according to the characteristics of the NAND flash memory alone. The FTL hides the unique characteristics of the NAND flash memory to the host system's file system. It also uses the physical address of the NAND flash memory to store the logical address from the file system so that it can perform the same input / output operations as the hard disk. Mapping.
즉, 플래시 변환 계층(Flash Translation Layer; FTL)은 플래시 메모리를 효율적으로 관리하기 위한 소프트웨어이다. 플래시 변환 계층은 메모리 컨트롤러에 포함된다. 플래시 변환 계층은 파일 시스템으로부터 논리적 어드레스(Logical Address)를 입력 받고, 이를 플래시 메모리 장치의 물리적 어드레스(Physical Address)로 변환한다.
That is, the Flash Translation Layer (FTL) is software for efficiently managing the flash memory. The flash translation layer is included in the memory controller. The flash translation layer receives a logical address from the file system and converts it into a physical address of the flash memory device.
도 2는 본 발명의 플래시 메모리의 데이터 저장 블록 배치 방법을 이용하는 컴퓨팅 시스템(1000)의 일 실시예를 개략적으로 나타내는 도면이다.2 is a diagram schematically illustrating an embodiment of a
도 2에서 알 수 있듯이, 컴퓨팅 시스템(1000)은 호스트(1100), 메모리 컨트롤러(1200), 및 플래시 메모리(1300)를 포함한다. 컴퓨팅 시스템(1000)의 호스트(1100), 메모리 컨트롤러(1200), 및 플래시 메모리(1300) 각각은 별개의 칩, 모듈, 또는 장치로 구성될 수 있고, 또는 하나의 장치 내에 포함될 수 있다. 또한, 메모리 컨트롤러(1200)와 플래시 메모리(1300)가 하나의 장치로 구현되고, 호스트(1100)에 연결되어 사용될 수 있다.As can be seen in Figure 2, the
호스트(1100)는 애플리케이션이나 파일 시스템을 이용하여 메모리 컨트롤러(1200)로 읽기 또는 쓰기 요청을 전송할 수 있다. 메모리 컨트롤러(1200)는 호스트(1100)로부터의 읽기 또는 쓰기 요청에 응답하여, 플래시 메모리(1300)의 동작을 제어할 수 있다. 예를 들어, 호스트(1100)로부터의 읽기 또는 쓰기 요청에 응답하여, 메모리 컨트롤러(1200)는 플래시 메모리(1300)의 쓰기, 읽기, 및 소거 동작을 제어할 수 있다.
바람직한 실시예에 있어서, 호스트(1100)와 메모리 컨트롤러(1200)는 미리 설정된 프로토콜(Protocol)을 기반으로 데이터를 교환할 수 있다. 예를 들어, 호스트(1100)와 메모리 컨트롤러(1200)는 USB(Universal Serial Bus) 프로토콜, MMC(multimedia card) 프로토콜, PCI(peripheral component interconnection) 프로토콜, PCI-E (PCI-express) 프로토콜, ATA(Advanced Technology Attachment) 프로토콜, Serial-ATA 프로토콜, Parallel-ATA 프로토콜, SCSI(small computer small interface) 프로토콜, ESDI(enhanced small disk interface) 프로토콜, 그리고 IDE(Integrated Drive Electronics) 프로토콜 등과 같은 다양한 인터페이스 프로토콜들 중 적어도 하나에 기반하여 데이터를 교환할 수 있다. In the preferred embodiment, the
메모리 컨트롤러(1200)는 프로세서(1210) 및 램(1220)을 포함할 수 있다. 프로세서(1210)는 메모리 컨트롤러(1200)의 제반 동작을 제어할 수 있다. 예를 들어, 프로세서(1210)는 플래시 변환 계층(Flash Translation Layer; FTL, 도 3에 도시)을 구동할 수 있다.
램(1220)은 메모리 컨트롤러(1200)의 동작 메모리일 수 있다. 램(1220)은 호스트(1100) 및 플래시 메모리(1300) 사이의 버퍼 메모리일 수 있다. 램(1220)은 매핑 테이블(1221, Mapping Table)을 포함할 수 있다. 매핑 테이블(1221)은 플래시 변환 계층(FTL)의 변환 동작을 위한 정보이다. 매핑 테이블(1221)은 파일 시스템(도 3에 도시)에 의해 조직화된 파일의 논리적 어드레스(Logical Address) 및 이에 대응되는 플래시 메모리(1300)의 물리적 어드레스(Physical Address)의 매핑 관계에 대한 정보를 포함한다. 바람직한 실시예에서, 자유 메모리 블록이 쓰기 메모리 블록으로 할당될 경우, 메모리 컨트롤러(1200)는 매핑 테이블(1221)을 갱신할 수 있다. The
플래시 메모리(1300)는 메모리 컨트롤러(1200)의 제어에 따라 메모리 블록들의 쓰기, 읽기 또는 소거 동작을 수행할 수 있다. 플래시 메모리(1300)는 복수의 페이지들을 포함하는 복수의 메모리 블록들로 구성될 수 있다. 플래시 메모리(1300)는 사용자 영역(1310) 및 메타 영역(1320)을 포함할 수 있다. 사용자 영역(1310)은 사용자 데이터를 저장하는 영역이다. 사용자 영역(1310)은 플래시 메모리(1300)에 포함된 복수의 메모리 블록들로 구성될수 있다. 복수의 메모리 블록들 각각은 복수의 페이지들로 구성될 수 있다. 복수의 페이지들 각각은 사용자 데이터를 저장하는 데이터 영역(Data Area)과 부가 정보를 저장하는 스페어 영역(Spare Area)을 포함한다. 부가정보는 에러 정정 코드(ECC, Error Correcting Code), 데이터 영역에 저장된 데이터의 논리적 어드레스, 배드블록 정보 등을 포함할 수 있다. 예시적으로, 스페어 영역들 중 일부는 다음 할당될 쓰기 메모리 블록의 물리적 어드레스를 포함할 수 있다. The
메타 영역(1320)은 메인 매핑 테이블(1321)을 포함한다. 메인 매핑 테이블(1321)은 호스트(1100)로부터 수신된 논리적 어드레스(Logical Address) 및 이와 대응되는 플래시 메모리(1300)의 물리적 어드레스(Physical Address)의 매핑 관계에 대한 정보를 포함한다.The
메모리 컨트롤러(1200)의 초기화 시, 메모리 컨트롤러(1200)는 메인 매핑 테이블(1321)을 읽고, 읽은 메인 매핑 테이블(1321)을 램(1220)의 매핑 테이블(1221)에 저장할 수 있다. 예시적으로, 메모리 컨트롤러(1200)는 호스트(1100)로부터 수신된 쓰기 요청에 응답하여, 새로운 쓰기 메모리 블록을 할당할 수 있다. 새로운 쓰기 메모리 블록으로서 할당된 메모리 블록의 물리적 어드레스 및 이에 대응되는 논리적 어드레스의 매핑 관계를 기반으로, 메모리 컨트롤러(1200)는 매핑 테이블(1221)을 갱신할 수 있다. The
예시적으로, 메타 영역(1320)은 플래시 메모리에 포함된 복수의 메모리 블록들 중 하나 또는 그 이상의 메모리 블록들로 구성될 수 있다.
Illustratively, the
도 3은 본 발명의 플래시 메모리의 데이터 저장 블록 배치 방법을 이용하는 컴퓨터 시스템의 소프트웨어 계층의 일 실시예를 나타내는 도면이다. 3 is a diagram of an embodiment of a software layer of a computer system that utilizes a method for arranging data storage blocks of a flash memory of the present invention.
도 2 및 도 3을 참조하면, 컴퓨팅 시스템(1000)의 소프트웨어 계층은 애플리케이션(1110), 파일 시스템(1120), 플래시 변환 계층(1230), 및 플래시 메모리(1300)를 포함할 수 있다. 2 and 3, the software layer of the
애플리케이션(1110)은 컴퓨팅 시스템(1000)에서 구동되는 다양한 응용 프로그램들을 의미한다. 예를 들어, 응용 프로그램들(1120)은 문서 편집기, 웹 브라우저, 영상 재생기, 게임 프로그램 등을 포함할 수 있다.
파일 시스템(1120)은 파일 또는 데이터를 플래시 메모리(1300)에 저장할 경우, 이를 조직화하는 역할을 수행한다. 예를 들어, 파일 시스템(1120)은 쓰기 요청에 따른 논리적 어드레스를 메모리 컨트롤러(1200)로 제공할 수 있다. 파일 시스템(1120)은 호스트(1100)의 운영체제(OS, Operating System)에 따라 다른 형태를 가질 수 있다. 예시적으로 파일 시스템(420)은 FAT(File Allocation Table), FAT32, NTFS(NT File System), HFS(Hierarchical File System), JSF2(Journaled File System2), XFS, ODS-5(On-Disk Structure-5), UDF, ZFS, UFS(Unix File System), ext2, ext3, ext4, ReiserFS, Reiser4, ISO 9660, Gnome VFS, BFS, 또는 WinFS 등을 포함할 수 있다. 예시적으로, 파일 시스템(1120)은 호스트(1100)에 의해 구동될 수 있다. The
플래시 변환 계층(1230)은 플래시 메모리(1300)가 효율적으로 사용되도록 호스트(1100) 및 플래시 메모리(1300) 간 인터페이스를 제공할 수 있다. 플래시 변환 계층(1230)은 파일 시스템(1120)에 의해 생성된 논리적 어드레스(Logical Address)를 수신하여, 플래시 메모리(1300)에서 사용 가능한 물리적 어드레스(Physical Address)로 변환하는 역할을 수행한다. 플래시 변환 계층(1230)은 이와 같은 어드레스 변환을 매핑 테이블(1221, mapping table)을 통해 관리한다. 예시적으로, 플래시 변환 계층(1230)은 메모리 컨트롤러(1200)에 의해 구동될 수 있다.
The
도 4는 본 발명의 플래시 메모리의 데이터 저장 블록 배치 방법을 이용하는 컴퓨터 시스템의 소프트웨어 계층의 일 실시예를 나타내는 도면이다.4 is a diagram illustrating one embodiment of a software layer of a computer system that utilizes a data storage block placement method of a flash memory of the present invention.
도 4는 컴퓨터 시스템은 NVMe 파일 시스템을 사용하는 실시예에 있어서 플래시 메모리의 데이터 자장 블록 배치 방법을 설명한다. 도 4를 참고하면, NVMe 파일 시스템은 NVMe 인터페이스를 제공하여, 추가적인 인터페이스를 제공할 수 있다. 메타 데이터 관리자(Meta data management)는 데이터 수명을 로그하고, 메타 데이터를 생성한다. NVMe 블록 디바이스 레이어는 오픈 소스 등을 이용하여 만들어져 있으며, NVMe 인터페이스를 제공한다.4 illustrates a method of arranging a data magnetic field block of a flash memory in an embodiment using a NVMe file system in a computer system. Referring to FIG. 4, the NVMe file system provides an NVMe interface to provide an additional interface. Meta data management logs data life and creates metadata. The NVMe block device layer is made using open source and provides an NVMe interface.
FTL은 STL(Sector Translation Layer), BML(Block Management Layer), LLD(Low Level Driver)를 포함할 수 있다. STL은 메핑(mapping), 가비지 컬렉션(garbage collection), 메타 데이터를 이용한 웨어 레벨링(Wear leveling)을 수행한다. BML은 베드 블록 관리(Bad block management), 에러 핸들링(Error handling)을 수행한다. LLD는 플레시 인터페이스를 제공한다.The FTL may include a Sector Translation Layer (STL), a Block Management Layer (BML), and a Low Level Driver (LLD). The STL performs mapping, garbage collection, and wear leveling using metadata. BML performs bad block management and error handling. LLD provides a flash interface.
본 발명의 플래시 메모리의 데이터 저장 블록 배치 방법의 일 실시예는 NVMe 프로토콜을 통한 FTL 알고리즘에 따라 FTL에 전송되는 메타 데이터에 저장하려는 데이터의 삭제시간을 포함할 수 있다. 이를 위해 파일 시스템과 FTL는 변경된 메타 데이터를 생성하고 전송하기 위해 변경/개선될 수 있다.One embodiment of the data storage block arrangement method of the flash memory of the present invention may include the deletion time of the data to be stored in the metadata transmitted to the FTL according to the FTL algorithm through the NVMe protocol. To this end, the file system and FTL can be changed / improved to create and transfer the changed metadata.
삭제시간은 플래시 메모리에 저장된 데이터가 메모리 블록에서 삭제되는 시각을 의미한다. 본 발명의 데이터 저장 블록 배치 방법은, 삭제시간이 소정 범위 내에서 같은 데이터를 같은 블록에 저장함으로서 불필요한 데이터 삭제 동작이 반복되지 않도록 한다.The erase time means the time at which data stored in the flash memory is deleted from the memory block. The data storage block allocation method of the present invention prevents unnecessary data erasure operations from being repeated by storing the same data in the same block within a predetermined range of erasure time.
NVMe 파일 시스템에서 FTL로 전달되는 삭제시간은 애플리케이션의 I/O 변경없이 전달되거나 I/O변경을 통해 전달되는 방법 모두를 포함할 수 있다.The deletion time passed from the NVMe file system to the FTL may include all of the ways in which the application's I / O is delivered without change or is delivered via I / O changes.
우선, 도 4 및 도 5를 참조하여, 애플리케이션의 I/O 변경없이 삭제시간을 전달하는 실시예에 대해서 설명한다. First, with reference to FIG. 4 and FIG. 5, an embodiment for transferring the deletion time without changing the I / O of the application will be described.
먼저, 애플리케이션 I/O가 변경되지 않은 애플리케이션에서 파일을 저장한다. 예를 들면, aaa.doc라는 파일을 저장하는 이벤트가 발생한다. First, the application I / O stores the file in an unchanged application. For example, an event occurs that saves a file called aaa.doc.
NVMe 파일 시스템은 종래의 I/O를 통해서 삭제시간을 포함하는 정보를 메타 데이터에 포함시켜 NVMe 프로토콜에 따라 메타 데이터 관리자(Meta data management)에 전달한다. 예를 들면, 삭제시간 판단이 되는 기준이 되는 확장자 “doc”에 대한 정보를 NVMe 프로토콜의 메타 데이터에 추가하여 전달한다.In the NVMe file system, information including the deletion time is included in the metadata through the conventional I / O and transmitted to the metadata manager according to the NVMe protocol. For example, information about the extension "doc" serving as a criterion for determining the deletion time is added to the metadata of the NVMe protocol and transmitted.
메타 데이터 관리자는 파일 시스템에서 전달된 메타 데이터를 FTL에서 처리할 수 있도록 변환한다. 예를 들면, 미리 정해진 삭제시간 분석 결과 또는 log 분석에 따른 피드백을 통해 갱신된 결과에 따라 확장자 “doc”에 해당하는 삭제시간 카테고리 번호(category number)를 지정하여 메타 데이터를 변환한다. 카테고리 번호는 예를 들면, 다음과 같이 지정될 수 있다.The metadata manager transforms the metadata forwarded from the file system so that it can be processed by the FTL. For example, metadata is converted by designating a deletion time category number (category number) corresponding to the extension "doc" according to a predetermined deletion time analysis result or an update result through feedback based on log analysis. The category number can be specified, for example, as follows.
0 : 메타 데이터 무시0: Ignore metadata
1: 매우 짧음1: very short
2: 1일 이내 삭제시간 도래2: Deletion time arrives within 1 day
3: 1주 이내 삭제시간 도래3: Deletion time arrives within 1 week
4: 1개월 이내 삭제시간 도래4: Deletion time arrives within 1 month
5: 매우 김5: Very Kim
이와 같이 처리된 정보는 NVMe 프로토콜에 따른 블록 I/O를 통해 FTL에 전달된다. STL은 전달된 메타 데이터를 분석하여 삭제시간이 동일한 데이터를 동일한 블록에 저장할 수 있도록 메핑한다.
The processed information is transferred to the FTL through block I / O according to the NVMe protocol. The STL analyzes the transferred metadata and maps the data having the same deletion time to be stored in the same block.
다음, 도 4 및 도 6을 참조하여, 애플리케이션의 I/O를 변경하여 이를 통해 삭제시간을 전달하는 실시예에 대해서 설명한다. 애플리케이션은 확장된 I/O 인터페이스를 통하여 삭제시간이 포함된 메타 데이터를 전달한다. NVMe 파일 시스템은 전달된 메타데이터를 NVMe 프로토콜에 따라 전달한다. 메타 데이터 관리자는 확장된 인터페이스를 통해 애플리케이션으로부터 전달된 메타 데이터를 FTL에서 처리할 수 있도록 약속된 형태로 변환한다. STL은 전달받은 메타 데이터를 이용하여 삭제시간이 동일한 데이터를 동일한 블록에 저장할 수 있도록 메핑한다.
Next, with reference to FIG. 4 and FIG. 6, an embodiment for changing the I / O of the application and transmitting the deletion time through it will be described. The application passes the metadata with the deletion time through the extended I / O interface. The NVMe file system delivers the delivered metadata according to the NVMe protocol. The metadata manager transforms the metadata delivered by the application through the extended interface into a promised format for processing by the FTL. The STL maps the data having the same deletion time to be stored in the same block using the received metadata.
도 7은 본 발명의 플래시 메모리의 데이터 저장 블록 배치 방법의 일 실시예를 나타내는 순서도이다.7 is a flowchart showing an embodiment of a data storage block arrangement method of a flash memory of the present invention.
도 7에서 알 수 있듯이, 본 발명의 데이터 저장 블록 배치 방법은 사전에 삭제시간을 연산하는 단계를 수행할 수 있다(2100). 바람직한 실시예에서 연산된 삭제시간은 FTL의 내부에 포함되는 소프트웨어에 저장될 수 있다.As shown in FIG. 7, the data storage block allocation method of the present invention may perform the step of calculating the deletion time in advance (2100). The calculated erasure time in the preferred embodiment may be stored in software contained within the FTL.
일 실시예에서 삭제시간 연산 단계(2100)는 데이터가 메모리 블록에 저장되는 시간부터 삭제되는 시간까지의 기간인 저장기간을 데이터의 특성에 따라 설정하고, 데이터가 저장되는 시간에 상기 저장기간을 더하여 삭제시간을 연산할 수 있다. 본 발명의 발명자는 데이터의 특성에 따라서 데이터를 저장기간이 상이함을 발견하였다. 예를 들면 프로그램의 실행파일, 이미지나 동영상과 같은 데이터는 실행이 빈번하지만 삭제되는 경우는 드물다. 반면에 임시파일은 저장기간이 짧다. 따라서, 본 발명은 이와 같이 데이터의 특성에 따라서 저장기간을 분류한다.In one embodiment, the deletion
다른 실시예에서 삭제시간 연산 단계(2100)는 동일한 파일 확장자를 갖는 데이터가 동일한 저장기간을 갖는 것으로 설정하고, 데이터가 저장되는 시간에 상기 저장기간을 더하여 삭제시간을 연산할 수 있다. 앞선 실시예에서는 데이터의 특성에 따라서 저장기간을 분류하였는데, 이를 변형한 실시예에서는 파일의 확장자를 이용하여 저장기간을 산정한다. In another embodiment, the deletion
바람직한 실시예에서 본 발명은 다음과 같은 표에 따라 데이터의 특성 또는 확장자의 저장기간을 산정할 수 있다.In a preferred embodiment, the present invention can estimate the storage period of data characteristics or extensions according to the following table.
다음, 삭제시간이 제1 삭제시간 범위 내에 있는 데이터를 제1 데이터 그룹으로 설정하고, 삭제시간이 제2 삭제시간 범위 내에 있는 데이터를 제2 데이터 그룹으로 설정하는 그룹 설정 단계(2200)를 실행할 수 있다. 상기 삭제시간은 플래시 메모리에 저장된 데이터가 메모리 블록에서 삭제되는 시각이고, 제1 삭제시간 범위는 제2 삭제시간 범위 보다 시간적으로 미래에 존재한다. 즉, 비슷한 시간 대인 제1 삭제시간에 삭제되는 데이터를 제1 데이터 그룹으로 설정하고, 그보다 먼저 도래하는 시간 대인 제2 삭제시간에 삭제되는 데이터를 제2 데이터 그룹으로 분리한다. Next, a group setting step 2200 for setting the data whose deletion time is within the first deletion time range to the first data group and setting the data whose deletion time is within the second deletion time range to the second data group have. The deletion time is a time at which the data stored in the flash memory is deleted from the memory block, and the first deletion time range exists in a time later than the second deletion time range. That is, data to be deleted at a first deletion time of a similar time period is set as a first data group, and data to be deleted at a second deletion time that precedes the first data group is separated into a second data group.
본 발명은 그룹 설정 단계(2200)에서 어떤 기준에 따라 동일한 그룹으로 분류되는지에 대해 다양한 실시예를 포함한다. The present invention includes various embodiments as to what criteria are grouped into the same group in the group setting step 2200. [
일 실시예에 있어서, 그룹 설정 단계(2200)는 동일한 파일 확장자를 갖는 데이터가 동일한 데이터 그룹에 포함되도록 설정할 수 있다. 예를 들어, 실행 파일 확장자(.exe)를 갖는 데이터를 제1 데이터 그룹으로, 임시 파일 확장자(.tmp)를 갖는 데이터를 제2 데이터 그룹으로 설정할 수 있다. 동일한 확장자를 갖는 파일이라면 예상되는 삭제시간이 동일할 수 있기 때문이다. 이와 같은 실시예에서는 실질적으로 저장기간 및 삭제시간을 연산하지 않아도 확장자만으로 그룹을 설정할 수 있으므로 2100 단계가 필요없을 수 있어 간편한 효과가 있다.In one embodiment, the group setting step 2200 may set data having the same file extension to be included in the same data group. For example, data having an executable file extension (.exe) can be set as a first data group, and data having a temporary file extension (.tmp) can be set as a second data group. If the file has the same extension, the expected deletion time may be the same. In this embodiment, since the group can be set only by the extension without actually calculating the storage period and the deletion time, the
다른 실시예에 있어서, 그룹 설정 단계(2200)는 서로 다른 파일 확장자를 갖는 데이터라도 저장기간이 사전에 설정된 범위 내에 있는 경우 동일한 데이터 그룹으로 설정할 수 있다. 이와 같은 실시예에서는 실제 저장기간이 유사한 확장자를 선별하기 위해서 2100 단계를 거치는 것이 보다 유용할 수 있다.In another embodiment, the group setting step 2200 may set the data group having the different file extensions to the same data group if the storage period is within the preset range. In such an embodiment, it may be more useful to go through
다른 실시예에서는 파일 확장자가 동일하고, 상기 파일 확장자의 시퀀스 번호(sequence number)가 사전에 설정된 범위 내에 있는 데이터를 동일한 데이터 그룹에 포함되도록 설정할 수 있다. 이와 같은 실시예에서는 시퀀스 번호의 개념이 도입된다. 시퀀스 번호는 저장 시간을 구분하기 위한 번호로, 같은 데이터 특성 또는 같은 확장자를 같은 파일이라도 시퀀스 번호가 달라지면 서로 다른 데이터 그룹에 포함될 수 있도록 하는 번호이다. 따라서, 시퀀스 번호는 파일의 개수 증가에 따라 또는 시간 경과에 따라 증가할 수 있다. 그러나, 파일의 개수에 따라 증가되는 경우 보다 시간 단위로 증가되는 번호인 경우가 더 효율적이다. 시퀀스 번호가 증가되는 단위 시간을 어떻게 정할 것인지는 하드웨어의 특성에 따라 상이하게 구성할 수 있다.In another embodiment, data having the same file extension and having a sequence number of the file extension within a preset range can be set to be included in the same data group. In this embodiment, the concept of a sequence number is introduced. The sequence number is a number for identifying the storage time. If the same data attribute or the same extension is used for the same file, the sequence number can be included in different data groups. Thus, the sequence number may increase with the number of files or over time. However, it is more efficient if the number is incremented in time units than when it is increased according to the number of files. How to determine the unit time to increase the sequence number can be configured differently depending on the characteristics of the hardware.
다른 실시예에 있어서, 파일 확장자와 저장기간 사이의 연관성이 없다고 사전에 지정된 확장자에 대해서는 파일 확장자가 동일하더라도, 상기 파일 확장자의 시퀀스 번호(sequence number)가 사전에 설정된 범위 내에 있는 경우에만 동일한 데이터 그룹에 포함되도록 설정할 수 있다. 예를 들면, 동영상 편집 작업 시에는 큰 용량의 파일을 특정 부분에서 수정하는 명령이 반복된다. 동영상 파일 같은 경우 파일 사이즈가 매우 크기 때문에 하나의 파일이 수많은 블록에 나뉘어 저장된다. 일반적인 경우라면 이와 같은 동영상 파일이 한꺼번에 저장되고 삭제되므로 상관이 없지만, 동영상 편집 과정에서는 파일의 일부분이 삭제되거나 변경되는 동작이 수행된다. 따라서, 이러한 경우에는 확장자 단위로 블록 배치를 하는 것이 무의미할 수 있다. 그러므로 이와 같은 경우에는 동일한 확장자를 갖더라도 실제 저장 시점이 같은 시퀀스 번호를 기준으로 블록 배치를 수행한다.
In another embodiment, even if the file extension is the same for an extension specified in advance that there is no association between the file extension and the storage period, only when the sequence number of the file extension is within the preset range, As shown in FIG. For example, when editing a moving image, a command to correct a large-capacity file at a specific portion is repeated. In the case of video files, the file size is very large, so one file is stored in many blocks. In a typical case, such a moving picture file is stored and deleted at once. However, in the moving picture editing process, a part of the file is deleted or changed. Therefore, in such a case, it may be meaningless to arrange blocks in units of extensions. Therefore, in this case, even if they have the same extension, block arrangement is performed based on the same sequence number.
다음, 제1 데이터 그룹에 포함된 데이터를 제1 플래시메모리 블록에 저장하고, 제2 데이터 그룹에 포함된 데이터를 제2 플래시 메모리 블록에 저장하는 데이터 저장 단계를 실행한다(2300). 본 발명은 이와 같이 비슷한 삭제시간을 같는 데이터를 동일한 플래시메모리 블록에 저장하므로 불필요한 데이터 삭제 동작이 반복되지 않도록 하는 효과가 있다.
Next, a data storage step of storing data included in the first data group in the first flash memory block and storing data included in the second data group in the second flash memory block is executed (step 2300). The present invention has the effect of preventing unnecessary data deletion operations from being repeated because data having the same deletion time is stored in the same flash memory block.
다음, 본 발명에 따른 데이터 저장 블록 배치 방법은 사전에 설정된 기간 동안, 동일한 파일 확장자를 갖는 데이터의 저장기간 로그를 저장하여 저장기간 또는 삭제시간을 갱신하는 피드백 단계(2400)를 더 포함할 수 있다. 삭제시간에 대한 피드백을 통해 본 발명을 보다 정교하게 최적화시킬 수 있다. 또한, 다른 실시예에서 본 발명은 사전에 설정된 기간 동안, 동일한 파일 확장자를 갖는 데이터의 저장기간 및 시퀀스 번호의 로그를 저장하여 저장기간 또는 삭제시간을 갱신하는 피드백 단계를 포함할 수도 있다.
Next, the data storage block allocation method according to the present invention may further include a
한편, 본 발명은 데이터 베이스 파일을 저장하는 플래시 메모리의 데이터저장 블록 배치 방법에도 적용될 수 있다. 이 경우 본 발명은 동일한 데이터 베이스 테이블 이름(DB table name)을 갖는 데이터가 동일한 데이터 그룹에 포함되도록 설정하는 그룹 설정 단계; 및 동일한 데이터 그룹에 포함된 데이터를 동일한 플래시메모리 블록에 저장하는 데이터 저장 단계를 포함할 수 있다. 동일한 데이터베이스 테이블 이름을 갖는 파일은 삭제시간이 유사하기 때문이다. The present invention can also be applied to a data storage block arrangement method of a flash memory for storing a database file. In this case, the present invention may include a group setting step of setting data having the same database table name (DB table name) to be included in the same data group; And a data storing step of storing the data included in the same data group in the same flash memory block. Files with the same database table name have similar delete times.
또한, 바람직한 실시예에서 위 실시예의 그룹 설정 단계는 동일한 데이터 베이스 테이블 이름을 갖고, 시퀀스 번호(sequence number)가 사전에 설정된 범위 내에 있는 데이터가 동일한 데이터 그룹에 포함되도록 설정할 수 있다.Also, in the preferred embodiment, the group setting step of the above embodiment may set the data having the same database table name and having a sequence number within a preset range to be included in the same data group.
본 발명의 보호범위가 이상에서 명시적으로 설명한 실시예의 기재와 표현에 제한되는 것은 아니다. 또한, 본 발명이 속하는 기술분야에서 자명한 변경이나 치환으로 말미암아 본 발명이 보호범위가 제한될 수도 없음을 다시 한 번 첨언한다.The scope of protection of the present invention is not limited to the description and the expression of the embodiments explicitly described in the foregoing. It is again to be understood that the present invention is not limited by the modifications or substitutions that are obvious to those skilled in the art.
Claims (10)
삭제시간이 제1 삭제시간 범위 내에 있는 데이터를 제1 데이터 그룹으로 설정하고, 삭제시간이 제2 삭제시간 범위 내에 있는 데이터를 제2 데이터 그룹으로 설정하는 그룹 설정 단계; 및
제1 데이터 그룹에 포함된 데이터를 제1 플래시메모리 블록에 저장하고, 제2 데이터 그룹에 포함된 데이터를 제1 플래시 메모리 블록과 다른 블록인 제2 플래시 메모리 블록에 저장하는 데이터 저장 단계를 포함하고,
상기 제1 삭제시간 범위는 상기 제2 삭제시간 범위 보다 시간적으로 미래에 존재하는 것을 특징으로 하는 데이터 베이스 테이블 이름에 따른 플래시 메모리의 데이터 저장 블록 배치 방법.The data having the same database table name is set to have the same storage period (the period from the time the data is stored in the memory block to the time the data is deleted), and the storage period is added to the time at which the data is stored, A deletion time calculation step of calculating a deletion time;
Setting the data whose deletion time is within the first deletion time range to the first data group and setting the data whose deletion time is within the second deletion time range to the second data group; And
Storing data included in the first data group in a first flash memory block and storing data included in a second data group in a second flash memory block that is a block different from the first flash memory block ,
Wherein the first deletion time range is present in a future time than the second deletion time range in the future.
동일한 데이터 베이스 테이블 이름을 갖고, 시퀀스 번호(sequence number)가 사전에 설정된 범위 내에 있는 데이터가 동일한 데이터 그룹에 포함되도록 설정하는 것을 특징으로 하는 데이터 베이스 테이블 이름에 따른 플래시 메모리의 데이터 저장 블록 배치 방법.3. The method of claim 2,
Wherein data having the same database table name and having a sequence number within a range set in advance is included in the same data group.
사전에 설정된 기간 동안, 동일한 데이터 베이스 테이블 이름을 갖는 데이터의 저장기간 로그를 저장하여 저장기간 또는 삭제시간을 갱신하는 피드백 단계를 더 포함하는 것을 특징으로 하는 데이터 베이스 테이블 이름에 따른 플래시 메모리의 데이터 저장 블록 배치 방법.The method of claim 2,
Further comprising a feedback step of storing a storage period log of data having the same database table name and updating the storage period or the deletion time during a preset period of time. Block placement method.
서로 다른 데이터 베이스 테이블 이름을 갖는 데이터라도 저장기간이 사전에 설정된 범위 내에 있는 경우 동일한 데이터 그룹으로 설정하는 것을 특징으로 하는 데이터 베이스 테이블 이름에 따른 플래시 메모리의 데이터 저장 블록 배치 방법.The method according to claim 2,
Wherein the same data group is set as a data group even if the data having different database table names are within a preset range.
데이터 베이스 테이블 이름이 동일하고, 상기 데이터 베이스 테이블 이름의 시퀀스 번호(sequence number)가 사전에 설정된 범위 내에 있는 데이터를 동일한 데이터 그룹에 포함되도록 설정하는 것을 특징으로 하는 데이터 베이스 테이블 이름에 따른 플래시 메모리의 데이터 저장 블록 배치 방법.The method according to claim 2,
And setting the data having the same database table name and a sequence number of the database table name within a preset range to be included in the same data group. How to place data storage blocks.
상기 플래시 메모리의 데이터 저장 블록 배치 방법은 NVMe 프로토콜을 통한 FTL 알고리즘에 따라 실행되는 플래시 메모리 장치를 제어하는 것을 특징으로 하는 데이터 베이스 테이블 이름에 따른 플래시 메모리의 데이터 저장 블록 배치 방법.The method of claim 2,
Wherein the data storage block arrangement method of the flash memory controls the flash memory device executed according to the FTL algorithm through the NVMe protocol.
삭제시간에 대한 데이터는 NVMe 프로토콜을 통한 FTL 알고리즘에 따라 FTL에 전송되는 메타 데이터에 포함되는 것을 특징으로 하는 데이터 베이스 테이블 이름에 따른 플래시 메모리의 데이터 저장 블록 배치 방법.The method of claim 2,
Wherein the data on the deletion time is included in the metadata transmitted to the FTL according to the FTL algorithm through the NVMe protocol.
삭제시간에 대한 데이터는 NVMe 프로토콜을 통한 FTL 알고리즘에 따라 FTL에 전송되는 메타 데이터에 포함되고, 상기 메타 데이터는 애플리케이션의 추가된 I/O 인터페이스를 통해 전달되는 것을 특징으로 하는 데이터 베이스 테이블 이름에 따른 플래시 메모리의 데이터 저장 블록 배치 방법.The method of claim 2,
The data on the deletion time is included in the metadata transmitted to the FTL according to the FTL algorithm through the NVMe protocol, and the metadata is transferred through the added I / O interface of the application. A method for arranging data storage blocks in a flash memory.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150017653A KR101681402B1 (en) | 2015-02-04 | 2015-02-04 | Method for arranging data storage block of flash memory based on database table name |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150017653A KR101681402B1 (en) | 2015-02-04 | 2015-02-04 | Method for arranging data storage block of flash memory based on database table name |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160095963A KR20160095963A (en) | 2016-08-12 |
KR101681402B1 true KR101681402B1 (en) | 2016-11-30 |
Family
ID=56714894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150017653A KR101681402B1 (en) | 2015-02-04 | 2015-02-04 | Method for arranging data storage block of flash memory based on database table name |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101681402B1 (en) |
-
2015
- 2015-02-04 KR KR1020150017653A patent/KR101681402B1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20160095963A (en) | 2016-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10635310B2 (en) | Storage device that compresses data received from a host before writing therein | |
CN107787489B (en) | File storage system including a hierarchy | |
US9489297B2 (en) | Pregroomer for storage array | |
US8612719B2 (en) | Methods for optimizing data movement in solid state devices | |
US8316201B2 (en) | Methods for executing a command to write data from a source location to a destination location in a memory device | |
US7856451B2 (en) | Selective file erasure using metadata modifications | |
US8738882B2 (en) | Pre-organization of data | |
CN108628542B (en) | File merging method and controller | |
US20110208898A1 (en) | Storage device, computing system, and data management method | |
US10956071B2 (en) | Container key value store for data storage devices | |
KR20140112303A (en) | Nonvolitile memory device, elelctric device and computing system including the same | |
KR102357203B1 (en) | Read cache management | |
EP3748509B1 (en) | System garbage collection method and method for collecting garbage in solid state hard disk | |
TWI531963B (en) | Data storage systems and their specific instruction enforcement methods | |
US20100161932A1 (en) | Methods for writing data from a source location to a destination location in a memory device | |
KR20110097609A (en) | Capturing and naming dynamic storage tiering configurations to support data pre-staging | |
van der Meer et al. | A contemporary investigation of NTFS file fragmentation | |
KR101681401B1 (en) | Method for arranging data storage block of flash memory based on file extension | |
KR101247388B1 (en) | Method and apparatus for processing trim command in hybrid-mapping flash translation layer | |
US20140280396A1 (en) | Operating method for user system including host and memory system | |
KR101681402B1 (en) | Method for arranging data storage block of flash memory based on database table name | |
KR101630085B1 (en) | Method for arranging data storage block of flash memory based on data attribute | |
KR101716348B1 (en) | Memory system, operating method thereof and computing system including the same | |
WO2020052216A1 (en) | System garbage collection method and method for collecting garbage in solid state hard disk | |
Yoo et al. | Design and implementation of the metadata modification concept minimizing file modification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |