KR102113212B1 - Flash memory system and control method thereof - Google Patents

Flash memory system and control method thereof Download PDF

Info

Publication number
KR102113212B1
KR102113212B1 KR1020170159815A KR20170159815A KR102113212B1 KR 102113212 B1 KR102113212 B1 KR 102113212B1 KR 1020170159815 A KR1020170159815 A KR 1020170159815A KR 20170159815 A KR20170159815 A KR 20170159815A KR 102113212 B1 KR102113212 B1 KR 102113212B1
Authority
KR
South Korea
Prior art keywords
data
write
flash memory
hot
time
Prior art date
Application number
KR1020170159815A
Other languages
Korean (ko)
Other versions
KR20190061426A (en
Inventor
엄영익
이민호
송용주
Original Assignee
성균관대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 성균관대학교산학협력단 filed Critical 성균관대학교산학협력단
Priority to KR1020170159815A priority Critical patent/KR102113212B1/en
Publication of KR20190061426A publication Critical patent/KR20190061426A/en
Application granted granted Critical
Publication of KR102113212B1 publication Critical patent/KR102113212B1/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Abstract

본 발명의 실시 예에 따른 플래시 메모리 제어 방법은, 플래시 메모리에 저장하고자 하는 쓰기 요청된 데이터의 업데이트 시간 간격에 따라 핫 데이터 또는 콜드 데이터로 데이터 타입을 판별하는 단계, 상기 판별된 데이터 타입에 따라 상기 플래시 메모리에 구비된 핫 블록 풀 또는 콜드 블록 풀에 상기 쓰기 요청된 데이터를 저장하는 단계, 상기 쓰기 요청된 데이터가 저장된 블록 풀에 따라 데이터 유지 시간을 제1 데이터 유지 시간 또는 제2 데이터 유지 시간으로 할당하는 단계, 및 상기 저장된 쓰기 요청된 데이터의 쓰기 시간을 현재 쓰기 시간으로 업데이트하는 단계를 포함하고, 상기 핫 블록 풀에 설정된 제1 데이터 유지 시간은 상기 콜드 블록 풀에 설정된 제2 데이터 유지 시간 미만인 것을 특징으로 한다.Flash memory control method according to an embodiment of the present invention, determining the data type as hot data or cold data according to the update time interval of the write-requested data to be stored in the flash memory, according to the determined data type Storing the write-requested data in a hot block pool or a cold block pool provided in a flash memory, and the data retention time is the first data retention time or the second data retention time according to the block pool in which the write-requested data is stored. Allocating, and updating the write time of the stored write-requested data to the current write time, the first data retention time set in the hot block pool is less than the second data retention time set in the cold block pool It is characterized by.

Description

플래시 메모리 시스템 및 그 제어 방법{Flash memory system and control method thereof}Flash memory system and control method thereof

본 발명은 메모리 제어 기술에 관한 것으로, 보다 상세하게는, 플래시 메모리 시스템 및 그 제어 방법에 관한 것이다.The present invention relates to a memory control technology, and more particularly, to a flash memory system and a control method thereof.

반도체 메모리 장치(Semiconductor Memory Device)는 크게 휘발성 메모리 장치(Volatile Memory Device)와 비휘발성 메모리 장치(Non-volatile Memory Device)로 구분된다. 휘발성 메모리 장치는 읽고 쓰는 속도가 빠르지만 외부 전원 공급이 끊기면 저장된 내용이 사라져 버리는 단점이 있다. 반면에 비휘발성 메모리 장치는 외부 전원 공급이 중단되더라도 그 내용을 보존한다. 그러므로 비휘발성 메모리 장치는 전원이 공급되었는지에 관계없이 보존되어야 할 내용을 기억시키는 데 쓰인다. 특히, 비휘발성 메모리 중에서 플래시 메모리(Flash memory)는 기존의 EEPROM(Electrically Erasable Programmable Read-Only Memory)에 비해 집적도가 높아, 대용량 보조 기억 장치로의 응용에 매우 유리하다.2. Description of the Related Art Semiconductor memory devices are largely classified into volatile memory devices and non-volatile memory devices. Volatile memory devices have a fast read and write speed, but have a disadvantage in that the stored content disappears when the external power supply is cut off. On the other hand, the non-volatile memory device preserves its contents even when the external power supply is interrupted. Therefore, a nonvolatile memory device is used to store contents to be preserved regardless of whether power is supplied. In particular, among non-volatile memories, a flash memory has a high degree of integration as compared to a conventional EEPROM (Electrically Erasable Programmable Read-Only Memory), which is very advantageous for application as a large capacity auxiliary storage device.

최근에는 기술의 진보와 플래시 메모리 장치의 가격 인하에 따라 플래시 메모리가 하드 디스크 드라이브(HDD)를 대체하기 위한 저장 매체로 사용되고 있다. 상술한 저장 장치를 솔리드 스테이트 드라이브(Solid State Drive) 또는 솔리드 스테이트 디스크(Solid State Disk)라고도 한다. 이하에서는 간단히 SSD라 칭하기로 한다. SSD는 고속으로 데이터를 입출력할 수 있으면서도 기계적 지연이나 실패율이 현저히 낮다. 또한, SSD는 외부의 충격에도 데이터가 쉽게 손상되지 않으며, 발열, 소음 및 전력소모가 적고, 소형화 및 경량화할 수 있는 장점이 있다. 따라서, 기계적으로 회전하는 플래터(Platter)를 사용하지 않는 SSD에 대한 수요는 저전력 및 대용량화의 모바일 트랜드에 따라 급격히 증가하고 있다. 다만, 낸드 플래시 기반의 SSD는 데이터를 쓰고 지우는 횟수 (P/E Cycle)이 제한적이라는 단점이 있다. Recently, flash memory has been used as a storage medium to replace a hard disk drive (HDD) due to advances in technology and a reduction in the price of a flash memory device. The aforementioned storage device is also referred to as a solid state drive or a solid state disk. Hereinafter, it will be referred to simply as an SSD. SSDs are capable of inputting and outputting data at high speed, but have a very low mechanical delay or failure rate. In addition, the SSD has an advantage that data is not easily damaged by external shocks, heat generation, noise and power consumption are small, and it is possible to reduce the size and weight. Accordingly, the demand for SSDs that do not use mechanically rotating platters is rapidly increasing according to low-power and high-capacity mobile trends. However, the NAND flash-based SSD has a disadvantage in that the number of data writing and erasing (P / E cycle) is limited.

낸드 플래시 메모리 기반의 SSD가 대중화되면서 엔터프라이즈급 데이터센터에서도 SSD가 저장장치로서 많이 채택되고 있다. 낸드 플래시 메모리는 저전력, 고성능을 바탕으로 개인용 컴퓨터뿐만 아니라 엔터프라이즈급 서버의 저장장치로도 사용되고 있다. 이러한 흐름에 맞춰 대용량 데이터를 저장할 수 있는 낸드 플래시 메모리 기반 SSD의 필요성도 높아지고 있다. 이를 위해 하나의 셀에 2비트, 3비트를 저장하는 MLC(Multi Level Cell), TLC(Triple Level Cell) 플래시 메모리가 등장하였다. 하지만, 이들은 내구성이 크게 떨어진다는 단점이 존재한다. With the popularization of NAND flash memory-based SSDs, SSDs are also widely adopted as storage devices in enterprise-class data centers. NAND flash memory is used not only as a personal computer but also as a storage device for enterprise-class servers due to its low power and high performance. In line with this trend, the need for a NAND flash memory-based SSD that can store large amounts of data is also increasing. To this end, MLC (Multi Level Cell) and TLC (Triple Level Cell) flash memories that store 2 bits and 3 bits in one cell have appeared. However, they have the disadvantage that durability is greatly reduced.

한편, 플래시 메모리에 저장된 데이터를 판별하는 기술과 관련하여, 종래기술들은 쓰기 요청 크기 기반(Write Request Size based) 기법과 업데이트 빈도 기반(Update Frequency based) 기법 등이 있다. 쓰기 요청 크기 기반 기법은 호스트로부터 SSD로 전달되는 쓰기 요청의 크기에 따라 작은 크기의 쓰기 요청된 데이터는 핫(Hot) 데이터, 큰 크기의 쓰기 요청된 데이터는 콜드(Cold) 데이터로 구분한다. 또한, 업데이트 빈도 기반 기법은 LRU(Least Recently Used) 기법을 사용하여 최근에 저장된 데이터들 중에 쓰기 작업이 발생한 데이터들을 핫 데이터, 그 외의 데이터는 콜드 데이터로 구분한다.On the other hand, in relation to the technology for determining the data stored in the flash memory, the prior art includes a write request size based technique and an update frequency based technique. Based on the size of the write request, the write request size-based technique is divided into hot data for small sized write requests and cold data for large sized write requests. In addition, the update frequency-based technique uses the LRU (Least Recently Used) technique to classify data in which a write operation has occurred among recently stored data into hot data and other data into cold data.

한국 공개특허공보 제10-2013-0076429호 (2013년07월08일 공개)Korean Patent Publication No. 10-2013-0076429 (published on July 8, 2013)

하지만, 이러한 종래기술과 같이 핫 데이터 및 콜드 데이터를 구분할 경우, 종래기술은 플래시 메모리의 향상시킨 내구성을 최대로 활용할 수 없다. 왜냐하면, 종래기술의 경우는 크기가 작은 쓰기 요청의 데이터여도 업데이트가 빈번하지 않은 경우가 상당하였기 때문이다. 또한, LRU 기법을 사용하였을 경우는 핫 데이터로 구분되었음에도 긴 데이터 유지 시간이 필요한 경우가 많이 발생하였기 때문이다. 또한, 대규모 데이터를 저장하기 위한 SSD의 경우, 하나의 셀에 2비트 혹은 3비트를 저장하는 MLC, TLC 플래시 메모리를 주로 사용한다. 그런데 이들은 내구성이 떨어진다는 단점이 존재한다.However, when distinguishing between hot data and cold data as in the prior art, the prior art cannot make the most of the improved durability of the flash memory. This is because, in the case of the prior art, even in the case of data of a write request having a small size, the update was not frequent. In addition, when the LRU technique was used, there were many cases where long data retention time was required even though it was classified as hot data. In addition, in the case of an SSD for storing large-scale data, MLC and TLC flash memories that store 2 or 3 bits in one cell are mainly used. However, they have the disadvantage of poor durability.

본 발명의 실시 예들은 쓰기 요청된 데이터의 업데이트 시간 간격에 따라 데이터 타입을 핫 데이터 또는 콜드 데이터로 판별하여 대응되는 블록 풀에 저장하고, 각 블록 풀에 맞는 데이터 유지 시간을 할당함으로써, 플래시 메모리가 구비된 SSD의 수명을 향상시킬 수 있는, 플래시 메모리 시스템 및 그 제어 방법을 제공하고자 한다.According to embodiments of the present invention, a flash memory is stored by determining a data type as hot data or cold data according to an update time interval of write-requested data, storing the data in a corresponding block pool, and allocating data retention time for each block pool. An object of the present invention is to provide a flash memory system and a control method for improving the lifespan of an equipped SSD.

본 발명의 일 실시 예에 따르면, 플래시 메모리 컨트롤러에 의해 수행되는 플래시 메모리 제어 방법에 있어서, 플래시 메모리에 저장하고자 하는 쓰기 요청된 데이터의 업데이트 시간 간격에 따라 핫 데이터(hot data) 또는 콜드 데이터(cold data)로 데이터 타입을 판별하는 단계; 상기 판별된 데이터 타입에 따라 상기 플래시 메모리에 구비된 핫 블록 풀(hot block pool) 또는 콜드 블록 풀(cold block pool)에 상기 쓰기 요청된 데이터를 저장하는 단계; 상기 쓰기 요청된 데이터가 저장된 블록 풀에 따라 데이터 유지 시간(data retention time)을 제1 데이터 유지 시간 또는 제2 데이터 유지 시간으로 할당하는 단계; 및 상기 저장된 쓰기 요청된 데이터의 쓰기 시간을 현재 쓰기 시간으로 업데이트하는 단계를 포함하고, 상기 핫 블록 풀에 설정된 제1 데이터 유지 시간은 상기 콜드 블록 풀에 설정된 제2 데이터 유지 시간 미만인 것을 특징으로 하는 플래시 메모리 제어 방법이 제공될 수 있다.According to an embodiment of the present invention, in a flash memory control method performed by a flash memory controller, according to an update time interval of write-requested data to be stored in the flash memory, hot data or cold data data) to determine the data type; Storing the write-requested data in a hot block pool or a cold block pool provided in the flash memory according to the determined data type; Allocating a data retention time as a first data retention time or a second data retention time according to the block pool in which the write-requested data is stored; And updating the write time of the stored write-requested data to the current write time, wherein the first data retention time set in the hot block pool is less than the second data retention time set in the cold block pool. A flash memory control method can be provided.

상기 플래시 메모리 제어 방법은, 상기 쓰기 요청된 데이터의 이전 쓰기 시간이 기록되어 있는지를 확인하는 단계; 및 이전 쓰기 시간이 기록되어 있지 않으면, 상기 쓰기 요청된 데이터의 데이터 타입을 콜드 데이터로 판별하는 단계를 더 포함할 수 있다.The flash memory control method includes: checking whether a previous write time of the write-requested data is recorded; And if the previous write time is not recorded, determining the data type of the data requested to be written as cold data.

상기 데이터 타입을 판별하는 단계는, 상기 쓰기 요청된 데이터의 이전 쓰기 시간 및 현재 쓰기 요청된 시간 간의 업데이트 시간 간격을 상기 제1 데이터 유지 시간과 비교하여 데이터 타입을 핫 데이터 또는 콜드 데이터로 판별할 수 있다.In the determining of the data type, the data type may be determined as hot data or cold data by comparing an update time interval between a previous write time of the write-requested data and a current write-request time with the first data retention time. have.

상기 데이터 타입을 판별하는 단계는, 상기 쓰기 요청된 데이터의 이전 쓰기 시간 및 현재 쓰기 요청된 시간 간의 업데이트 시간 간격이 상기 제1 데이터 유지 시간 미만이면 핫 데이터로 판별할 수 있다.The determining of the data type may be determined as hot data if an update time interval between a previous write time of the write-requested data and a current write-request time is less than the first data retention time.

상기 핫 데이터 또는 콜드 데이터로 판별하는 단계는, 상기 쓰기 요청된 데이터의 이전 쓰기 시간 및 현재 쓰기 요청된 시간 간의 업데이트 시간 간격이 상기 제1 데이터 유지 시간 이상이면 콜드 데이터로 판별할 수 있다.In the determining of the hot data or cold data, if the update time interval between the previous write time of the write-requested data and the current write-request time is equal to or greater than the first data retention time, it may be determined as cold data.

상기 쓰기 요청된 데이터를 저장하는 단계는, 상기 쓰기 요청된 데이터에 대한 이전 데이터가 핫 블록 풀 또는 콜드 블록 풀에 저장되어 있으면, 해당 블록 풀에 저장된 이전 데이터를 무효화할 수 있다.In the step of storing the write-requested data, if the previous data for the write-requested data is stored in a hot block pool or a cold block pool, the previous data stored in the block pool may be invalidated.

상기 할당하는 단계는, 상기 쓰기 요청된 데이터가 발생된 입출력(I/O) 트레이스의 특성에 따라 상기 핫 블록 풀에 설정된 제1 데이터 유지 시간을 조절할 수 있다.In the allocating step, the first data retention time set in the hot block pool may be adjusted according to a characteristic of an input / output (I / O) trace where the write requested data is generated.

데이터 타입이 핫 데이터로 판별된 쓰기 요청된 데이터는, 호스트 인터페이스를 통해 연결된 호스트의 애플리케이션 구동 또는 파일 조작으로 인해 발생하는 적어도 하나의 메타데이터일 수 있다.The write-requested data whose data type is determined to be hot data may be at least one metadata generated due to application driving or file manipulation of a host connected through a host interface.

데이터 타입이 콜드 데이터로 판별된 쓰기 요청된 데이터는, 호스트 인터페이스를 통해 연결된 호스트의 백업 동작으로 인해 발생하는 백업 데이터일 수 있다.The write-requested data whose data type is determined to be cold data may be backup data generated due to a backup operation of a host connected through a host interface.

상기 플래시 메모리는, SLC(Single Level Cell), MLC(Multi Level Cell), TLC(Triple Level Cell) 및 QLC(Quad Level Cell) 중에서 어느 하나의 방식의 플래시 메모리일 수 있다.The flash memory may be a flash memory of any one of SLC (Single Level Cell), MLC (Multi Level Cell), TLC (Triple Level Cell) and QLC (Quad Level Cell).

본 발명의 다른 실시 예에 따르면, 적어도 하나의 플래시 메모리를 구비하되, 상기 플래시 메모리의 저장 영역이 핫 블록 풀 및 콜드 블록 풀로 구분되는 플래시 드라이브; 및 상기 플래시 드라이브에 쓰기 요청된 데이터의 업데이트 시간 간격에 따라 핫 데이터 또는 콜드 데이터로 데이터 타입을 판별하여 상기 쓰기 요청된 데이터를 핫 블록 풀 또는 콜드 블록 풀에 저장하고, 상기 쓰기 요청된 데이터가 저장된 블록 풀에 따라 데이터 유지 시간을 제1 데이터 유지 시간 또는 제2 데이터 유지 시간으로 할당하고, 상기 저장된 쓰기 요청된 데이터의 쓰기 시간을 현재 쓰기 시간으로 업데이트하는 플래시 메모리 컨트롤러를 포함하고, 상기 핫 블록 풀에 설정된 제1 데이터 유지 시간은 상기 콜드 블록 풀에 설정된 제2 데이터 유지 시간 미만인 것을 특징으로 하는 플래시 메모리 시스템이 제공될 수 있다.According to another embodiment of the present invention, a flash drive having at least one flash memory, wherein the storage area of the flash memory is divided into a hot block pool and a cold block pool; And determining a data type as hot data or cold data according to an update time interval of data requested to be written to the flash drive, and storing the write-requested data in a hot block pool or a cold block pool, and storing the write-requested data. And a flash memory controller for allocating data retention time as a first data retention time or a second data retention time according to a block pool, and updating the write time of the stored write-requested data to the current write time, wherein the hot block pool A flash memory system may be provided, wherein the first data retention time set at is less than the second data retention time set at the cold block pool.

상기 플래시 메모리 컨트롤러는, 상기 쓰기 요청된 데이터의 이전 쓰기 시간이 기록되어 있는지를 확인하고, 이전 쓰기 시간이 기록되어 있지 않으면, 상기 쓰기 요청된 데이터의 데이터 타입을 콜드 데이터로 판별할 수 있다.The flash memory controller may check whether the previous write time of the write-requested data is recorded, and if the previous write time is not recorded, determine the data type of the write-requested data as cold data.

상기 플래시 메모리 컨트롤러는, 상기 쓰기 요청된 데이터의 이전 쓰기 시간 및 현재 쓰기 요청된 시간 간의 업데이트 시간 간격을 상기 제1 데이터 유지 시간과 비교하여 데이터 타입을 핫 데이터 또는 콜드 데이터로 판별할 수 있다.The flash memory controller may determine the data type as hot data or cold data by comparing the update time interval between the previous write time of the write-requested data and the current write-request time with the first data retention time.

상기 플래시 메모리 컨트롤러는, 상기 쓰기 요청된 데이터의 이전 쓰기 시간 및 현재 쓰기 요청된 시간 간의 업데이트 시간 간격이 상기 제1 데이터 유지 시간 미만이면 핫 데이터로 판별할 수 있다.The flash memory controller may determine as hot data if an update time interval between a previous write time of the write-requested data and a current write-request time is less than the first data retention time.

상기 플래시 메모리 컨트롤러는, 상기 쓰기 요청된 데이터의 이전 쓰기 시간 및 현재 쓰기 요청된 시간 간의 업데이트 시간 간격이 상기 제1 데이터 유지 시간 이상이면 콜드 데이터로 판별할 수 있다.The flash memory controller may determine that the update data interval between the previous write time of the write-requested data and the current write-request time is greater than or equal to the first data retention time.

상기 플래시 메모리 컨트롤러는, 상기 쓰기 요청된 데이터에 대한 이전 데이터가 핫 블록 풀 또는 콜드 블록 풀에 저장되어 있으면, 해당 블록 풀에 저장된 이전 데이터를 무효화할 수 있다.When the previous data for the write-requested data is stored in a hot block pool or a cold block pool, the flash memory controller may invalidate the previous data stored in the corresponding block pool.

상기 플래시 메모리 컨트롤러는, 상기 쓰기 요청된 데이터가 발생된 입출력(I/O) 트레이스의 특성에 따라 상기 핫 블록 풀에 설정된 제1 데이터 유지 시간을 조절할 수 있다.The flash memory controller may adjust a first data retention time set in the hot block pool according to a characteristic of an input / output (I / O) trace where the write requested data is generated.

상기 플래시 메모리는, SLC(Single Level Cell), MLC(Multi Level Cell), TLC(Triple Level Cell) 및 QLC(Quad Level Cell) 중에서 어느 하나의 방식의 플래시 메모리일 수 있다.The flash memory may be a flash memory of any one of SLC (Single Level Cell), MLC (Multi Level Cell), TLC (Triple Level Cell) and QLC (Quad Level Cell).

본 발명의 다른 실시 예에 따르면, 적어도 하나의 플래시 메모리를 구비하되, 상기 플래시 메모리의 저장 영역이 핫 블록 풀 및 콜드 블록 풀로 구분되는 플래시 드라이브; 상기 플래시 메모리에 저장된 데이터의 쓰기 시간을 관리하고, 상기 플래시 메모리에 저장하고자 하는 쓰기 요청된 데이터의 업데이트 시간 간격을 계산하는 타임스탬프 계산부; 및 상기 계산된 업데이트 시간 간격에 따라 핫 데이터 또는 콜드 데이터로 데이터 타입을 판별하여 상기 쓰기 요청된 데이터를 핫 블록 풀 또는 콜드 블록 풀에 저장하고, 상기 쓰기 요청된 데이터가 저장된 블록 풀에 따라 데이터 유지 시간을 제1 데이터 유지 시간 또는 제2 데이터 유지 시간으로 할당하는 플래시 제어부를 포함하고, 상기 타임스탬프 계산부는 상기 저장된 쓰기 요청된 데이터의 쓰기 시간을 현재 쓰기 시간으로 업데이트하고, 상기 핫 블록 풀에 설정된 제1 데이터 유지 시간은 상기 콜드 블록 풀에 설정된 제2 데이터 유지 시간 미만일 수 있다.According to another embodiment of the present invention, a flash drive having at least one flash memory, wherein the storage area of the flash memory is divided into a hot block pool and a cold block pool; A timestamp calculation unit managing a write time of data stored in the flash memory and calculating an update time interval of write-requested data to be stored in the flash memory; And determining the data type as hot data or cold data according to the calculated update time interval, and storing the write-requested data in a hot block pool or a cold block pool, and maintaining data according to the block pool in which the write-requested data is stored. And a flash control unit that allocates a time as a first data retention time or a second data retention time, and the timestamp calculation unit updates the write time of the stored write-requested data to the current write time, and is set in the hot block pool. The first data retention time may be less than the second data retention time set in the cold block pool.

본 발명의 다른 실시 예에 따르면, 블록 단위로 삭제(erase)되는 플래시 메모리 시스템에서의 플래시 메모리 제어 방법에 있어서, 플래시 메모리 컨트롤러에서 상기 블록 단위로 데이터-상기 데이터는 플래시 메모리의 페이지(page) 단위를 가지며, 상기 블록은 복수의 페이지로 구성됨-가 쓰기(write)되는 시간과 상기 쓰기(write)된 데이터가 쓰기(write)된 이후 업데이트된 시간을 비교하여 상기 데이터의 타입을 핫 데이터(hot data)와 콜드 데이터(cold data)로 구분하는 단계; 및 플래시 드라이브에서 상기 구분된 데이터 타입을 기준으로 같은 데이터 타입을 가진 테이터끼리 구분하여 저장하는 단계를 포함하되, 상기 플래시 메모리 컨트롤러에서 상기 핫 데이터의 데이터 유지 시간(retention time)이 상기 콜드 데이터의 데이터 유지 시간보다 단축시켜 설정하는 것을 특징으로 하는 플래시 메모리 제어 방법이 제공될 수 있다.According to another embodiment of the present invention, in a flash memory control method in a flash memory system erased in units of blocks, data in the block unit in the flash memory controller-the data is a page unit of a flash memory And the block is composed of a plurality of pages-compares the time when the data is written and the updated time after the written data is written. ) And cold data (cold data); And discriminating and storing data having the same data type based on the discriminated data type in the flash drive, wherein the data retention time of the hot data in the flash memory controller is data of the cold data. A flash memory control method may be provided, characterized in that it is set shorter than the retention time.

상기 구분하는 단계는, 상기 플래시 메모리 컨트롤러에서 상기 블록 단위로 상기 데이터가 쓰기(write)되는 시간을 매핑 테이블에 기록하는 단계; 및 상기 플래시 메모리 컨트롤러에서 상기 데이터가 쓰기(write)되는 시간과 상기 업데이트된 시간 간의 차이를 구하여 상기 설정된 핫 데이터의 데이터 유지 시간과 비교하는 단계를 포함하되, 상기 비교하는 단계에서의 비교 결과, 상기 업데이트된 시간 간의 차이값이 상기 설정된 핫 데이터의 데이터 유지 시간보다 작은 경우 핫 데이터로 분류하고, 상기 업데이트된 시간 간의 차이값이 상기 설정된 핫 데이터의 데이터 유지 시간 이상인 경우 상기 콜드 데이터로 분류할 수 있다.The distinguishing step may include: recording a time at which the data is written in the block unit in the flash memory controller in a mapping table; And obtaining a difference between a time when the data is written and the updated time in the flash memory controller and comparing it with the data retention time of the set hot data, wherein the comparison result in the comparing step, the When the difference value between the updated time is smaller than the data retention time of the set hot data, it is classified as hot data, and when the difference value between the updated time is longer than the data retention time of the set hot data, it can be classified as cold data. .

상기 저장하는 단계는, 상기 구분된 핫 데이터를 핫 데이터의 저장 영역인 핫 블록 풀에 저장하고, 상기 콜드 데이터를 콜드 데이터의 저장 영역인 콜드 블록 풀에 저장할 수 있다.In the storing step, the divided hot data may be stored in a hot block pool that is a storage area of the hot data, and the cold data may be stored in a cold block pool that is a storage area of the cold data.

상기 플래시 메모리 제어 방법은, 상기 플래시 드라이브의 저장 공간 대비 상기 핫 데이터의 저장 영역의 크기의 비율을 고려하여 상기 핫 데이터의 저장 영역의 크기의 비율이 소정값 이하인 경우 상기 핫 데이터의 저장 영역의 크기와 상기 핫 데이터의 데이터 유지 시간을 조절할 수 있다.In the flash memory control method, when the ratio of the size of the storage area of the hot data is less than or equal to a predetermined value in consideration of the ratio of the storage area of the flash drive to the storage area of the hot data, the size of the storage area of the hot data And the data retention time of the hot data.

본 발명의 다른 실시 예에 따르면, 블록 단위로 삭제(erase)되는 플래시 메모리 시스템에 있어서, 상기 블록 단위로 데이터-상기 데이터는 플래시 메모리의 페이지(page) 단위를 가지며, 상기 블록은 복수의 페이지로 구성됨-가 쓰기(write)되는 시간과 상기 쓰기(write)된 데이터가 쓰기(write)된 이후 업데이트된 시간을 비교하여 상기 데이터의 타입을 핫 데이터(hot data)와 콜드 데이터(cold data)로 구분하는 플래시 메모리 컨트롤러; 및 적어도 하나의 플래시 메모리를 구비하고, 상기 구분된 데이터 타입을 기준으로 같은 데이터 타입을 가진 테이터끼리 구분하여 저장하는 플래시 드라이브를 포함하되, 상기 플래시 메모리 컨트롤러에서 상기 핫 데이터의 데이터 유지 시간(retention time)이 상기 콜드 데이터의 데이터 유지 시간보다 단축시켜 설정하는 것을 특징으로 하는 플래시 메모리 시스템이 제공될 수 있다.According to another embodiment of the present invention, in a flash memory system erased in units of blocks, the data in units of blocks-the data has a page unit of flash memory, and the blocks are composed of a plurality of pages. Composed-Compares the time when the data is written and the updated time after the written data is written, and the type of the data is divided into hot data and cold data. Flash memory controller; And a flash drive having at least one flash memory and classifying and storing data having the same data type based on the distinguished data type, wherein the data retention time of the hot data in the flash memory controller is maintained. ) May be set to be shorter than the data retention time of the cold data, and a flash memory system may be provided.

도 1은 본 발명의 일 실시 예에 따른 플래시 메모리 시스템의 구성을 나타낸 도면이다.
도 2는 본 발명의 일 실시 예에 따른 플래시 메모리 컨트롤러에 의해 수행되는 플래시 메모리 제어 방법에 대한 흐름도이다.
도 3은 본 발명의 다른 일 예에 따른 플래시 메모리 컨트롤러에 의해 수행되는 플래시 메모리 제어 방법에 대한 상세 흐름도이다.
도 4는 본 발명의 일 실시 예에 따른 플래시 메모리 컨트롤러의 플래시 제어부에 의해 수행되는 핫 및 콜드 데이터의 판별 동작을 나타낸 도면이다.
도 5는 본 발명의 일 실시 예에 따른 플래시 메모리 시스템의 플래시 드라이브에 의해 수행되는 데이터 저장 동작을 나타낸 도면이다.
도 6은 본 발명의 일 실시 예에 따른 플래시 메모리 제어 방법의 시뮬레이션에 사용된 SSD 변수 값을 나타낸 도면이다.
도 7은 종래 기술과 본 발명의 일 실시 예의 적용 시, SSD의 수명 비교를 나타낸 도면이다.
도 8은 종래 기술과 본 발명의 일 실시 예의 적용 시, 응답 시간 비교를 나타낸 도면이다.
1 is a view showing the configuration of a flash memory system according to an embodiment of the present invention.
2 is a flowchart of a method for controlling a flash memory performed by a flash memory controller according to an embodiment of the present invention.
3 is a detailed flowchart of a flash memory control method performed by a flash memory controller according to another example of the present invention.
4 is a view illustrating a determination operation of hot and cold data performed by the flash control unit of the flash memory controller according to an embodiment of the present invention.
5 is a diagram illustrating a data storage operation performed by a flash drive in a flash memory system according to an embodiment of the present invention.
6 is a diagram showing SSD variable values used in simulation of a flash memory control method according to an embodiment of the present invention.
7 is a view showing a comparison of the life of the SSD, when applying the prior art and an embodiment of the present invention.
8 is a view showing a comparison of response time when applying the prior art and an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다.The present invention can be applied to various changes and can have various embodiments, and specific embodiments will be illustrated in the drawings and described in detail.

그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.However, this is not intended to limit the present invention to specific embodiments, and should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention.

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

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. When an element is said to be "connected" or "connected" to another component, it is understood that other components may be directly connected to or connected to the other component, but there may be other components in between. It should be. On the other hand, when a component is said to be "directly connected" or "directly connected" to another component, it should be understood that no other component exists 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. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, terms such as “include” or “have” are intended to indicate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, one or more other features. It should be understood that the existence or addition possibilities of fields or numbers, steps, operations, components, parts or combinations thereof are not excluded in advance.

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

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In order to facilitate the overall understanding in describing the present invention, the same reference numerals are used for the same components in the drawings, and duplicate descriptions for the same components are omitted.

도 1은 본 발명의 일 실시 예에 따른 플래시 메모리 시스템의 구성을 나타낸 도면이다.1 is a view showing the configuration of a flash memory system according to an embodiment of the present invention.

도 1에 도시된 바와 같이, 본 발명의 일 실시 예에 따른 플래시 메모리 시스템(100)은 호스트 인터페이스(110), 중앙 처리 장치(120), 버퍼 메모리(130), 플래시 메모리 컨트롤러(140) 및 플래시 드라이브(143)를 포함한다. 각 구성요소는 컨트롤 버스나 데이터 버스를 통하여 전기적으로 연결되며, 데이터 통신을 수행할 수 있다.As illustrated in FIG. 1, the flash memory system 100 according to an embodiment of the present invention includes a host interface 110, a central processing unit 120, a buffer memory 130, a flash memory controller 140 and a flash Drive 143. Each component is electrically connected through a control bus or a data bus, and can perform data communication.

우선, 호스트 인터페이스(110)는 호스트 시스템(10)과의 인터페이스를 제공한다. 예를 들어, SATA 인터페이스를 구비하는 SSD와 같은 플래시 메모리 시스템의 경우, 호스트 인터페이스(110)는 SATA 물리 계층(Phy Layer), 링크 계층(Link Layer)을 처리한다. 플래시 메모리 시스템(100)과 호스트 시스템(10)과의 연결은 유선 또는 무선의 호스트 인터페이스를 통해 이루어질 수 있다. 호스트 인터페이스(110)는 USB, MMC, PCI-E, SAS, SATA, PATA, SCSI, ESDI, 및 IDE 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 포함할 수 있다.First, the host interface 110 provides an interface with the host system 10. For example, in the case of a flash memory system such as an SSD having a SATA interface, the host interface 110 processes a SATA physical layer (Phy Layer) and a link layer (Link Layer). The flash memory system 100 may be connected to the host system 10 through a wired or wireless host interface. The host interface 110 may include one of various interface protocols such as USB, MMC, PCI-E, SAS, SATA, PATA, SCSI, ESDI, and IDE.

중앙 처리 장치(CPU, 120)는 호스트 시스템(10)의 요청에 응답하여 플래시 메모리 시스템(100)의 전반적인 동작을 제어한다. 중앙 처리 장치(120)는 읽기 동작과 쓰기 동작에 필요한 다양한 컨트롤 정보를 호스트 인터페이스(110)로부터 수신한다. 예를 들면, 외부에서 명령어가 입력되면 호스트 인터페이스(110)에 저장된다. 호스트 인터페이스(110)는 저장된 명령에 따라 중앙 처리 장치(120)에 읽기 또는 쓰기 명령이 입력되었음을 알려준다.The central processing unit (CPU, 120) controls the overall operation of the flash memory system 100 in response to a request from the host system 10. The central processing unit 120 receives various control information required for a read operation and a write operation from the host interface 110. For example, when a command is input from the outside, it is stored in the host interface 110. The host interface 110 notifies the central processing unit 120 that a read or write command has been input according to the stored command.

중앙 처리 장치(120)는 비록 하나의 구성으로 도시되었으나, 둘 이상의 멀티 프로세서로 구성될 수 있다. 중앙 처리 장치(120)를 구성하는 복수의 멀티 프로세서들 각각은 제어 동작을 분할하여 처리할 수 있다. 즉, 복수의 멀티 프로세서들에 의하여 플래시 메모리 시스템(100)은 멀티 태스킹(Multi-tasking)을 수행할 수 있다. 게다가, 복수의 멀티 프로세서들을 포함하는 플래시 메모리 시스템(100)은 병렬 처리(Parallel Processing)를 수행할 수 있다. 병렬 처리에 의하여, 플래시 메모리 시스템은 상대적으로 낮은 주파수의 클록으로 구동되더라도 고성능을 구현할 수 있다. 중앙 처리 장치(120)는 호스트 시스템으로부터 쓰기 요청되는 쓰기 요청된 데이터를 식별할 수 있다. Although the central processing unit 120 is shown in one configuration, it may be composed of two or more multi-processors. Each of the plurality of multi-processors constituting the central processing unit 120 may divide and process a control operation. That is, the flash memory system 100 may perform multi-tasking by a plurality of multi-processors. In addition, the flash memory system 100 including a plurality of multi-processors may perform parallel processing. By parallel processing, the flash memory system can realize high performance even when driven by a relatively low frequency clock. The central processing unit 120 may identify write-requested data that is requested to be written from the host system.

버퍼 메모리(130)는 호스트 시스템(10)으로부터 전송된 데이터 또는 호스트 시스템(10)으로 전송될 데이터를 임시 저장한다. 또한, 버퍼 메모리(130)는 플래시 변환 계층(Flash Translation Layer; FTL) 정보를 저장한다. 버퍼 메모리(130)에 저장되는 플래시 변환 계층(Flash Translation Layer; FTL)은 중앙 처리 장치(120)에 의해 운용되며, 어드레스 맵핑 관리, 플래시 메모리의 웨어-레벨링(Wear-Leveling) 관리, 예상치 못한 전원 차단에 기인한 데이터 보존성 관리 등을 행하는데 사용된다. 버퍼 메모리(130)는 DRAM 버퍼로 이루어질 수 있다. 버퍼 메모리(130)는 비휘발성 램과 휘발성 램을 포함할 수 있다. 플래시 드라이브(143)로의 쓰기 요청된 데이터는 버퍼 메모리(130)에 일시 저장되며, 비휘발성 램 또는 휘발성 램에 저장된다.The buffer memory 130 temporarily stores data transmitted from the host system 10 or data to be transmitted to the host system 10. In addition, the buffer memory 130 stores Flash Translation Layer (FTL) information. The Flash Translation Layer (FTL) stored in the buffer memory 130 is operated by the central processing unit 120, address mapping management, wear-leveling management of the flash memory, and unexpected power It is used to manage data retention due to blocking. The buffer memory 130 may be formed of a DRAM buffer. The buffer memory 130 may include non-volatile RAM and volatile RAM. The data requested to be written to the flash drive 143 is temporarily stored in the buffer memory 130 and is stored in a nonvolatile RAM or volatile RAM.

쓰기 요청된 데이터는 비휘발성 램에 일시 저장될 수 있으며, 일시 저장 이후 플래시 드라이브(143)에 쓰기 즉, 저장된다. 이때, 중앙 처리 장치(120)는 입력되는 데이터가 비휘발성 램에 쓰기 요청되는 즉시 호스트 시스템(10)으로 호스트 명령 처리 신호(Complete)를 전송할 수 있다.The data requested to be written may be temporarily stored in the non-volatile RAM, and is written to or stored in the flash drive 143 after the temporary storage. At this time, the central processing unit 120 may transmit a host command processing signal (Complete) to the host system 10 as soon as the input data is requested to write to the non-volatile RAM.

플래시 메모리 컨트롤러(140)는 플래시 드라이브(143)로 읽기(Read), 쓰기(Write), 삭제(Erase) 등의 플래시 메모리 커맨드 및 데이터 전송을 처리한다. 또한, 플래시 드라이브(143)를 연결하기 위해 플래시 메모리 채널이 존재한다. The flash memory controller 140 processes flash memory commands such as read, write, and erase, and data transmission to the flash drive 143. In addition, a flash memory channel exists to connect the flash drive 143.

플래시 드라이브(143)는 플래시 메모리 시스템(100)의 저장 매체로 대용량의 저장 능력을 가지는 복수의 낸드 플래시 메모리(NAND Type Flash Memory, 144)를 포함할 수 있다. 플래시 드라이브(143)는 복수의 메모리 장치로 구성될 수 있다. 저장 매체로서 낸드 플래시 메모리를 예로 들어 설명되었으나, 또 다른 비휘발성 메모리 장치들로 구성될 수 있다. 예를 들면, 저장 매체로서 PRAM, MRAM, ReRAM, FRAM, NOR 플래시 메모리 등이 사용될 수 있으며, 이종의 메모리 장치들이 혼용되는 플래시 메모리 시스템도 적용될 수 있다. 그리고 저장 매체로서 휘발성 메모리 장치(예를 들면, DRAM)가 포함될 수도 있다.The flash drive 143 is a storage medium of the flash memory system 100 and may include a plurality of NAND type flash memories (144) having a large storage capacity. The flash drive 143 may be composed of a plurality of memory devices. Although NAND flash memory is described as an example of a storage medium, it may be configured with other nonvolatile memory devices. For example, PRAM, MRAM, ReRAM, FRAM, NOR flash memory, etc. may be used as a storage medium, and a flash memory system in which heterogeneous memory devices are mixed may also be applied. Also, a volatile memory device (eg, DRAM) may be included as a storage medium.

한편, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터의 업데이트 시간 간격이 핫 블록 풀에 설정된 제1 데이터 유지 시간(data retention time)보다 짧은 데이터들의 타입을 핫 데이터로 판별한다. 그리고 플래시 메모리 컨트롤러(140)는 핫 데이터의 데이터 유지 시간을 콜드 블록 풀에 설정된 제2 데이터 유지 시간보다 짧은 제1 데이터 유지 시간으로 할당한다. 반대로, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터의 업데이트 시간 간격이 핫 블록 풀에 설정된 제1 데이터 유지 시간보다 긴 데이터들의 타입을 콜드 데이터로 판별한다. 그리고 플래시 메모리 컨트롤러(140)는 콜드 데이터의 데이터 유지 시간을 콜드 블록 풀에 설정된 제2 데이터 유지 시간으로 할당한다. 즉, 본 발명의 일 실시 예에 따른 플래시 메모리 컨트롤러(140)는 낸드 플래시를 구성하는 셀의 데이터 유지 시간을 조절한다. 데이터 유지 시간을 단축시킬수록 셀의 지우기 횟수는 늘어날 수 있다. 이를 기반으로 플래시 메모리 컨트롤러(140)는 업데이트 간격이 짧은 데이터(핫 데이터)들의 데이터 유지 시간을 짧게 유지한다. 반대로 플래시 메모리 컨트롤러(140)는 업데이트 간격이 긴 데이터(콜드 데이터)들의 데이터 유지 시간을 핫 데이터보다 상대적으로 길게 제공하여 SSD의 수명을 향상시킬 수 있다.On the other hand, the flash memory controller 140 determines the type of data whose update time interval of the write-requested data is shorter than the first data retention time set in the hot block pool as hot data. In addition, the flash memory controller 140 allocates the data retention time of the hot data to the first data retention time shorter than the second data retention time set in the cold block pool. Conversely, the flash memory controller 140 determines the type of data whose update time interval of the write-requested data is longer than the first data retention time set in the hot block pool as cold data. In addition, the flash memory controller 140 allocates the data retention time of the cold data as the second data retention time set in the cold block pool. That is, the flash memory controller 140 according to an embodiment of the present invention adjusts the data retention time of the cells constituting the NAND flash. As the data retention time is shortened, the number of erasing of cells may increase. Based on this, the flash memory controller 140 keeps the data retention time of data (hot data) having a short update interval short. On the contrary, the flash memory controller 140 may improve the lifespan of the SSD by providing data retention time of data (cold data) having a long update interval relatively longer than hot data.

한편, 본 발명의 일 실시 예에 따른 플래시 메모리 컨트롤러(140)는 타임스탬프 계산부(141) 및 플래시 제어부(142)를 포함할 수 있다.Meanwhile, the flash memory controller 140 according to an embodiment of the present invention may include a timestamp calculation unit 141 and a flash control unit 142.

이하, 도 1의 본 발명의 일 실시 예에 따른 플래시 메모리 컨트롤러(140)의 각 구성요소들의 구체적인 구성 및 동작을 설명한다.Hereinafter, a detailed configuration and operation of each component of the flash memory controller 140 according to an embodiment of the present invention of FIG. 1 will be described.

타임스탬프 계산부(141)는 플래시 메모리(144)에 저장된 데이터의 쓰기 시간을 관리한다. 그리고 타임스탬프 계산부(141)는 플래시 메모리(144)에 저장하고자 하는 쓰기 요청된 데이터의 업데이트 시간 간격을 계산한다.The timestamp calculator 141 manages the write time of data stored in the flash memory 144. In addition, the timestamp calculator 141 calculates an update time interval of write-requested data to be stored in the flash memory 144.

플래시 제어부(142)는 타임스탬프 계산부(141)에서 계산된 업데이트 시간 간격에 따라 핫 데이터 또는 콜드 데이터로 데이터 타입을 판별하여 쓰기 요청된 데이터를 핫 블록 풀 또는 콜드 블록 풀에 저장한다. 여기서, 플래시 제어부(142)는, 쓰기 요청된 데이터의 이전 쓰기 시간 및 현재 쓰기 요청된 시간 간의 업데이트 시간 간격을 제1 데이터 유지 시간과 비교하여 데이터 타입을 핫 데이터 또는 콜드 데이터로 판별할 수 있다. 이때, 플래시 제어부(142)는, 쓰기 요청된 데이터의 이전 쓰기 시간 및 현재 쓰기 요청된 시간 간의 업데이트 시간 간격이 제1 데이터 유지 시간 미만이면 핫 데이터로 판별할 수 있다. 반면, 플래시 제어부(142)는, 쓰기 요청된 데이터의 이전 쓰기 시간 및 현재 쓰기 요청된 시간 간의 업데이트 시간 간격이 제1 데이터 유지 시간 이상이면 콜드 데이터로 판별할 수 있다.The flash control unit 142 determines the data type as hot data or cold data according to the update time interval calculated by the timestamp calculation unit 141 and stores the write-requested data in the hot block pool or cold block pool. Here, the flash control unit 142 may determine the data type as hot data or cold data by comparing the update time interval between the previous write time of the write-requested data and the current write-request time with the first data retention time. At this time, the flash control unit 142 may determine that the data is hot if the update time interval between the previous write time of the write-requested data and the current write-request is less than the first data retention time. On the other hand, if the update time interval between the previous write time of the write-requested data and the current write-request time is greater than or equal to the first data retention time, the flash control unit 142 may determine the cold data.

그리고 플래시 제어부(142)는 쓰기 요청된 데이터가 저장된 블록 풀에 따라 데이터 유지 시간을 제1 데이터 유지 시간 또는 제2 데이터 유지 시간으로 할당한다. 여기서, 핫 블록 풀에 설정된 제1 데이터 유지 시간은 콜드 블록 풀에 설정된 제2 데이터 유지 시간 미만이다. 플래시 제어부(142)는 타임스탬프 계산부(141)를 통해 블록별로 데이터가 써지는 시간을 기록한다. 플래시 제어부(142)는 현재 쓰기 시간과 다음 쓰기 시간 즉, 업데이트 시간을 비교하여 데이터 타입을 핫 데이터 및 콜드 데이로 구분한다.In addition, the flash control unit 142 allocates the data retention time as the first data retention time or the second data retention time according to the block pool in which the data requested to be written is stored. Here, the first data retention time set in the hot block pool is less than the second data retention time set in the cold block pool. The flash control unit 142 records the time at which data is written for each block through the time stamp calculation unit 141. The flash control unit 142 compares the current write time with the next write time, that is, the update time, and classifies the data type into hot data and cold day.

플래시 드라이브(143)는 핫 블록 풀 및 콜드 블록 풀로 구분된 플래시 메모리(144)를 포함한다. 플래시 드라이브(143)는 핫 블록 풀 및 콜드 블록 풀에 저장된 데이터를 관리한다. 플래시 드라이브(143)는 플래시 제어부(142)에서 구분한 데이터 타입을 기준으로 같은 데이터 타입을 지닌 데이터끼리 구분을 지어 저장한다. 이후, 플래시 드라이브(143)는 핫 데이터의 경우 데이터 유지 시간을 제1 데이터 유지 시간까지 단축시켜 저장함으로써, 높은 쓰기 및 삭제 횟수(P/E Cycle)를 제공할 수 있다.The flash drive 143 includes a flash memory 144 divided into a hot block pool and a cold block pool. The flash drive 143 manages data stored in the hot block pool and cold block pool. The flash drive 143 stores the data having the same data type by classifying and storing data based on the data type classified by the flash control unit 142. Thereafter, in the case of hot data, the flash drive 143 shortens and stores the data retention time up to the first data retention time, thereby providing a high number of write and erase cycles (P / E Cycle).

이후, 타임스탬프 계산부(141)는 저장된 쓰기 요청된 데이터의 쓰기 시간을 현재 쓰기 시간으로 업데이트한다. Thereafter, the timestamp calculation unit 141 updates the write time of the stored write-requested data to the current write time.

한편, 플래시 제어부(142)는, 쓰기 요청된 데이터의 이전 쓰기 시간이 기록되어 있는지를 확인하고, 이전 쓰기 시간이 기록되어 있지 않으면, 쓰기 요청된 데이터의 데이터 타입을 콜드 데이터로 판별할 수 있다. Meanwhile, the flash control unit 142 may check whether the previous write time of the data requested to be written is recorded, and if the previous write time is not recorded, the data type of the data requested to be written may be determined as cold data.

또한, 플래시 제어부(142)는, 쓰기 요청된 데이터에 대한 이전 데이터가 핫 블록 풀 또는 콜드 블록 풀에 저장되어 있으면, 해당 블록 풀에 저장된 이전 데이터를 무효화할 수 있다. 플래시 제어부(142)는, 쓰기 요청된 데이터가 발생된 입출력(I/O) 트레이스의 특성에 따라 핫 블록 풀에 설정된 제1 데이터 유지 시간을 조절할 수 있다. 플래시 제어부(142)는 전체 플래시 드라이브(143)에서 핫 블록 풀의 저장 영역 대비 핫 데이터가 차지하는 저장 영역의 크기의 비율을 고려하여 핫 블록 풀의 저장 영역을 조절할 수 있다. 일례로, 플래시 제어부(142)는 전체 플래시 드라이브(143)의 저장 공간 대비 핫 데이터의 저장 영역의 크기의 비율을 고려하여, 핫 데이터의 저장 영역의 크기의 비율이 소정값 이하인 경우 핫 데이터 저장 영역의 크기를 줄일 수 있다. 또는, 플래시 제어부(142)는 핫 데이터에 대해 할당된 제1 데이터 유지 시간을 줄일 수 있다.In addition, if the previous data for the write-requested data is stored in the hot block pool or the cold block pool, the flash control unit 142 may invalidate the previous data stored in the corresponding block pool. The flash control unit 142 may adjust the first data retention time set in the hot block pool according to the characteristics of the input / output (I / O) trace where the write requested data is generated. The flash control unit 142 may adjust the storage area of the hot block pool in consideration of the ratio of the size of the storage area occupied by the hot data to the storage area of the hot block pool in the entire flash drive 143. For example, the flash control unit 142 considers the ratio of the size of the storage area of the hot data to the storage space of the entire flash drive 143, and when the ratio of the size of the storage area of the hot data is less than or equal to a predetermined value, the hot data storage area Can reduce the size of Alternatively, the flash control unit 142 may reduce the first data retention time allocated for the hot data.

데이터 타입이 핫 데이터로 판별된 쓰기 요청된 데이터는, 호스트 인터페이스(110)를 통해 연결된 호스트 시스템(10)의 애플리케이션 구동 또는 파일 조작으로 인해 발생하는 적어도 하나의 메타데이터일 수 있다. 데이터 타입이 콜드 데이터로 판별된 쓰기 요청된 데이터는, 호스트 인터페이스(110)를 통해 연결된 호스트 시스템(10)에서의 자료 기록 또는 자료 보존 동작으로 인해 발생하는 백업 데이터일 수 있다.The write-requested data whose data type is determined to be hot data may be at least one metadata generated due to application driving or file manipulation of the host system 10 connected through the host interface 110. The write-requested data whose data type is determined to be cold data may be backup data generated due to a data recording or data preserving operation in the host system 10 connected through the host interface 110.

플래시 메모리(144)는, SLC(Single Level Cell), MLC(Multi Level Cell), TLC(Triple Level Cell) 및 QLC(Quad Level Cell) 중에서 어느 하나의 방식의 플래시 메모리일 수 있다.The flash memory 144 may be a flash memory of any one of SLC (Single Level Cell), MLC (Multi Level Cell), TLC (Triple Level Cell) and QLC (Quad Level Cell).

한편, 본 발명의 다른 실시 예에 따른 플래시 메모리 시스템(100)을 살펴보기로 한다. 본 발명의 다른 실시 예에 따른 플래시 메모리 시스템(100)은 데이터가 블록 단위로 삭제(erase)된다.Meanwhile, the flash memory system 100 according to another embodiment of the present invention will be described. In the flash memory system 100 according to another embodiment of the present invention, data is erased in block units.

플래시 메모리 컨트롤러(140)는 블록 단위로 데이터가 쓰기(write)되는 시간과 상기 쓰기(write)된 데이터가 쓰기(write)된 이후 업데이트된 시간을 비교한다. 여기서, 데이터는 플래시 메모리의 페이지(page) 단위를 가지며, 블록은 복수의 페이지로 구성된다. 그리고 플래시 메모리 컨트롤러(140)는 데이터의 타입을 핫 데이터(hot data)와 콜드 데이터(cold data)로 구분한다.The flash memory controller 140 compares the time when data is written in block units and the updated time after the written data is written. Here, the data has a page unit of the flash memory, and the block is composed of a plurality of pages. In addition, the flash memory controller 140 classifies data types into hot data and cold data.

플래시 드라이브(143)는 적어도 하나의 플래시 메모리(144)를 구비한다. 플래시 드라이브(143)는 플래시 메모리 컨트롤러(140)에서 구분된 데이터 타입을 기준으로 같은 데이터 타입을 가진 테이터끼리 구분하여 저장한다.The flash drive 143 includes at least one flash memory 144. The flash drive 143 stores data having the same data type separately based on the data type classified by the flash memory controller 140 and stores the data.

여기서, 플래시 메모리 컨트롤러(140)는 핫 데이터의 데이터 유지 시간(retention time)이 콜드 데이터의 데이터 유지 시간보다 단축시켜 설정한다.Here, the flash memory controller 140 sets the data retention time of the hot data to be shorter than the data retention time of the cold data.

도 2는 본 발명의 일 실시 예에 따른 플래시 메모리 컨트롤러에 의해 수행되는 플래시 메모리 제어 방법에 대한 흐름도이다.2 is a flowchart of a method for controlling a flash memory performed by a flash memory controller according to an embodiment of the present invention.

S101 단계에서, 플래시 메모리 컨트롤러(140)는 플래시 메모리(144)에 저장하고자 하는 쓰기 요청된 데이터의 업데이트 시간 간격을 계산한다.In step S101, the flash memory controller 140 calculates an update time interval of write-requested data to be stored in the flash memory 144.

S102 단계에서, 플래시 메모리 컨트롤러(140)는 플래시 메모리(144)에 저장하고자 하는 쓰기 요청된 데이터의 업데이트 시간 간격에 따라 핫 데이터 또는 콜드 데이터로 데이터 타입을 판별한다. 여기서, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터의 이전 쓰기 시간이 기록되어 있는지를 확인한다. 상기 확인 결과, 이전 쓰기 시간이 기록되어 있지 않으면, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터의 데이터 타입을 콜드 데이터로 판별할 수 있다. In step S102, the flash memory controller 140 determines a data type as hot data or cold data according to an update time interval of write requested data to be stored in the flash memory 144. Here, the flash memory controller 140 checks whether a previous write time of data requested to be written is recorded. As a result of the check, if the previous write time is not recorded, the flash memory controller 140 may determine the data type of the data requested to be written as cold data.

S103 단계에서, 플래시 메모리 컨트롤러(140)는 판별된 데이터 타입에 따라 플래시 메모리(144)에 구비된 핫 블록 풀 또는 콜드 블록 풀에 쓰기 요청된 데이터를 플래시 드라이브(143)를 통해 저장한다.In step S103, the flash memory controller 140 stores data requested to be written in a hot block pool or a cold block pool provided in the flash memory 144 through the flash drive 143 according to the determined data type.

S104 단계에서, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터가 저장된 블록 풀에 따라 데이터 유지 시간을 제1 데이터 유지 시간 또는 제2 데이터 유지 시간으로 할당한다. 여기서, 핫 블록 풀에 설정된 제1 데이터 유지 시간은 콜드 블록 풀에 설정된 제2 데이터 유지 시간 미만이다.In step S104, the flash memory controller 140 allocates the data retention time as the first data retention time or the second data retention time according to the block pool in which the write-requested data is stored. Here, the first data retention time set in the hot block pool is less than the second data retention time set in the cold block pool.

S105 단계에서, 플래시 메모리 컨트롤러(140)는 저장된 쓰기 요청된 데이터의 쓰기 시간을 현재 쓰기 시간으로 업데이트한다.In step S105, the flash memory controller 140 updates the write time of the stored write-requested data to the current write time.

도 3은 본 발명의 다른 실시 예에 따른 플래시 메모리 컨트롤러에 의해 수행되는 플래시 메모리 제어 방법에 대한 상세 흐름도이다.3 is a detailed flowchart of a flash memory control method performed by a flash memory controller according to another embodiment of the present invention.

S201 단계에서, 호스트 시스템으로부터 쓰기 요청이 발생하면 호스트 인터페이스를 통해 플래시 메모리 컨트롤러(140)로 쓰기 요청된 데이터가 수신된다.In step S201, when a write request is generated from the host system, data requested to be written to the flash memory controller 140 through the host interface is received.

S202 단계에서, 플래시 메모리 컨트롤러(140)는 타임스탬프 계산부(141)에서 쓰기 요청된 데이터의 쓰기 시간 기록이 있는지를 확인한다.In step S202, the flash memory controller 140 checks whether there is a write time record of the data requested to be written in the time stamp calculation unit 141.

S203 단계에서, 상기 확인 결과(S202), 쓰기 요청된 데이터의 쓰기 시간 기록이 있으면, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터의 업데이트 시간 간격이 핫 블록 풀의 제1 데이터 유지 시간보다 짧은지를 확인한다.In step S203, if there is a write time record of the data requested to be written (S202), the flash memory controller 140 determines whether the update time interval of the data requested to be written is shorter than the first data retention time of the hot block pool. To confirm.

S204 단계에서, 상기 확인 결과(S203), 쓰기 요청된 데이터의 업데이트 시간 간격이 핫 블록 풀의 제1 데이터 유지 시간보다 짧으면, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터를 핫 데이터로 판별한다. 즉, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터의 이전 쓰기 시간 및 현재 쓰기 요청된 시간 간의 업데이트 시간 간격을 제1 데이터 유지 시간과 비교하여 데이터 타입을 핫 데이터 또는 콜드 데이터로 판별할 수 있다. 구체적으로, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터의 이전 쓰기 시간 및 현재 쓰기 요청된 시간 간의 업데이트 시간 간격이 제1 데이터 유지 시간 미만이면 핫 데이터로 판별하고, 쓰기 요청된 데이터의 이전 쓰기 시간 및 현재 쓰기 요청된 시간 간의 업데이트 시간 간격이 제1 데이터 유지 시간 이상이면 콜드 데이터로 판별할 수 있다.In step S204, if the update time interval of the check result (S203), the write-requested data is shorter than the first data retention time of the hot block pool, the flash memory controller 140 determines the write-requested data as hot data. That is, the flash memory controller 140 may compare the update time interval between the previous write time of the write-requested data and the current write-request time with the first data retention time to determine the data type as hot data or cold data. Specifically, if the update time interval between the previous write time of the write-requested data and the current write-request time is less than the first data retention time, the flash memory controller 140 determines as hot data, and the previous write time of the write-requested data And if the update time interval between the current write request time is greater than or equal to the first data retention time, it may be determined as cold data.

S205 단계에서, 플래시 메모리 컨트롤러(140)는 핫 데이터로 판별된 쓰기 요청된 데이터의 이전 데이터가 플래시 메모리(144)의 핫 블록 풀 또는 콜드 블록 풀에 저장되어 있는지를 확인한다.In step S205, the flash memory controller 140 checks whether previous data of the write-requested data determined as hot data is stored in the hot block pool or cold block pool of the flash memory 144.

S206 단계에서, 상기 확인 결과(S205), 쓰기 요청된 데이터의 이전 데이터가 플래시 메모리(144)의 블록 풀에 저장되어 있으면, 플래시 메모리 컨트롤러(140)는 저장되어 있는 해당 블록 풀의 이전 데이터를 무효화(Invalid)한다.In step S206, if the previous result of the check result (S205), the data requested to be written is stored in the block pool of the flash memory 144, the flash memory controller 140 invalidates the previous data of the corresponding block pool that is stored. (Invalid).

S207 단계에서, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터를 핫 블록 풀에 저장한다. 반면, 쓰기 요청된 데이터의 이전 데이터가 플래시 메모리(144)의 블록 풀에 저장되어 있지 않으면, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터를 핫 블록 풀에 저장하는 S207 단계를 바로 수행한다. 이때, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터가 저장된 핫 블록 풀에 따라 데이터 유지 시간을 제1 데이터 유지 시간으로 할당한다. 여기서, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터가 발생된 입출력(I/O)의 특성에 따라 핫 블록 풀에 설정된 제1 데이터 유지 시간을 조절할 수 있다.In step S207, the flash memory controller 140 stores the write request data in a hot block pool. On the other hand, if the previous data of the write-requested data is not stored in the block pool of the flash memory 144, the flash memory controller 140 immediately performs step S207 of storing the write-requested data in the hot block pool. At this time, the flash memory controller 140 allocates the data retention time as the first data retention time according to the hot block pool in which the data requested to be written is stored. Here, the flash memory controller 140 may adjust the first data retention time set in the hot block pool according to the characteristics of the input / output (I / O) in which the write requested data is generated.

S208 단계에서, 플래시 메모리 컨트롤러(140)는 새로 저장되는 쓰기 요청된 데이터가 속한 데이터 블록에 타임스탬프 계산부(141)를 통해 새로운 쓰기 시간을 기록한다.In step S208, the flash memory controller 140 records a new write time through the timestamp calculator 141 in a data block to which the newly stored write-requested data belongs.

한편, S209 단계에서, 상기 확인 결과(S202), 쓰기 요청된 데이터의 쓰기 시간 기록이 없으면, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터를 초기 기록 데이터로 구분하여 콜드 데이터로 판별한다. 또한, 상기 확인 결과(S203), 쓰기 요청된 데이터의 업데이트 시간 간격이 핫 블록 풀의 제1 데이터 유지 시간보다 짧지 않으면, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터를 콜드 데이터로 판별한다.On the other hand, in step S209, if there is no write time record of the check result (S202) and write-requested data, the flash memory controller 140 discriminates the write-requested data into initial write data and determines it as cold data. Further, if the check result (S203), the update time interval of the write-requested data is not shorter than the first data retention time of the hot block pool, the flash memory controller 140 determines the write-requested data as cold data.

S210 단계에서, 플래시 메모리 컨트롤러(140)는 콜드 데이터로 판별된 쓰기 요청된 데이터의 이전 데이터가 플래시 메모리(144)의 핫 블록 풀 또는 콜드 블록 풀에 저장되어 있는지를 확인한다.In step S210, the flash memory controller 140 checks whether previous data of the write-requested data determined as cold data is stored in a hot block pool or a cold block pool of the flash memory 144.

S211 단계에서, 상기 확인 결과(S210), 쓰기 요청된 데이터의 이전 데이터가 플래시 메모리(144)의 블록 풀에 저장되어 있으면, 플래시 메모리 컨트롤러(140)는 저장되어 있는 해당 블록 풀의 이전 데이터를 무효화(Invalid)한다.In step S211, if the previous data of the check result (S210) and the write-requested data is stored in the block pool of the flash memory 144, the flash memory controller 140 invalidates the previous data of the corresponding block pool that is stored. (Invalid).

S212 단계에서, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터를 콜드 블록 풀에 저장한다. 반면, 쓰기 요청된 데이터의 이전 데이터가 플래시 메모리(144)의 블록 풀에 저장되어 있지 않으면, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터를 콜드 블록 풀에 저장하는 S212 단계를 바로 수행한다. 이때, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터가 저장된 콜드 블록 풀에 따라 데이터 유지 시간을 제2 데이터 유지 시간으로 할당한다.In step S212, the flash memory controller 140 stores the write-requested data in a cold block pool. On the other hand, if the previous data of the write-requested data is not stored in the block pool of the flash memory 144, the flash memory controller 140 immediately performs step S212 of storing the write-requested data in the cold block pool. At this time, the flash memory controller 140 allocates the data retention time as the second data retention time according to the cold block pool in which the data requested to be written is stored.

이어서, 플래시 메모리 컨트롤러(140)는 새로운 쓰기 시간을 기록하는 S208 단계를 수행한다.Subsequently, the flash memory controller 140 performs step S208 of recording a new write time.

한편, 본 발명의 다른 실시 예에 따른 블록 단위로 삭제(erase)되는 플래시 메모리 시스템에서의 플래시 메모리 제어 방법을 살펴보기로 한다.Meanwhile, a method of controlling a flash memory in a flash memory system erased in units of blocks according to another embodiment of the present invention will be described.

본 발명의 다른 실시 예에 따른 플래시 메모리 제어 방법은 플래시 메모리 컨트롤러(140)에서 블록 단위로 데이터가 쓰기(write)되는 시간과 상기 쓰기(write)된 데이터가 쓰기(write)된 이후 업데이트된 시간을 비교하여 데이터의 타입을 핫 데이터(hot data)와 콜드 데이터(cold data)로 구분하는 단계, 및 플래시 드라이브(143)에서 구분된 데이터 타입을 기준으로 같은 데이터 타입을 가진 테이터끼리 구분하여 저장하는 단계를 포함한다. 여기서, 플래시 메모리 컨트롤러(140)는 핫 데이터의 데이터 유지 시간(retention time)이 콜드 데이터의 데이터 유지 시간보다 단축시켜 설정한다.Flash memory control method according to another embodiment of the present invention is the time in which data is written (block) in the block unit in the flash memory controller 140 and the updated time after the written data (write) is written (write) Comparing and classifying the data type into hot data and cold data, and storing and storing data having the same data type based on the data type classified in the flash drive 143. It includes. Here, the flash memory controller 140 sets the data retention time of the hot data to be shorter than the data retention time of the cold data.

본 발명의 다른 실시 예에 따른 플래시 메모리 제어 방법은 플래시 메모리 컨트롤러(140)에서 블록 단위로 데이터가 쓰기(write)되는 시간을 매핑 테이블에 기록하는 단계 및 플래시 메모리 컨트롤러(140)에서 데이터가 쓰기(write)되는 시간과 업데이트된 시간 간의 차이를 구하여 핫 데이터의 데이터 유지 시간과 비교하는 단계를 포함할 수 있다. 여기서, 플래시 메모리 컨트롤러(140)는 비교 결과, 업데이트된 시간 간의 차이값이 핫 데이터의 데이터 유지 시간보다 작은 경우 핫 데이터로 분류하고, 업데이트된 시간 간의 차이값이 핫 데이터의 데이터 유지 시간 이상인 경우 콜드 데이터로 분류할 수 있다.According to another embodiment of the present invention, a method for controlling a flash memory includes writing a time in which data is written in block units in the flash memory controller 140 to a mapping table and writing data in the flash memory controller 140 ( It may include the step of obtaining the difference between the time being written and the updated time and comparing it with the data retention time of the hot data. Here, the flash memory controller 140 classifies it as hot data when the difference between the updated times is less than the data retention time of the hot data, and when the difference between the updated times is greater than the data retention time of the hot data, as a result of the comparison. It can be classified as data.

플래시 드라이브(143)는 구분된 핫 데이터를 핫 데이터의 저장 영역인 핫 블록 풀에 저장하고, 콜드 데이터를 콜드 데이터의 저장 영역인 콜드 블록 풀에 저장할 수 있다. 플래시 메모리 컨트롤러(140)는 플래시 드라이브(143)의 저장 공간 대비 핫 데이터의 저장 영역의 크기의 비율을 고려하여 핫 데이터의 저장 영역의 크기의 비율이 소정값 이하인 경우 핫 데이터의 저장 영역의 크기와 핫 데이터의 데이터 유지 시간을 조절할 수 있다.The flash drive 143 may store the divided hot data in a hot block pool, which is a storage area of hot data, and store cold data in a cold block pool, which is a storage area of cold data. The flash memory controller 140 considers the ratio of the storage space of the hot data to the storage space of the flash drive 143, and when the ratio of the size of the storage area of the hot data is less than or equal to a predetermined value, the size of the storage area of the hot data and The data retention time of hot data can be adjusted.

도 4는 본 발명의 일 실시 예에 따른 플래시 메모리 컨트롤러의 플래시 제어부에 의해 수행되는 핫 및 콜드 데이터의 판별 동작을 나타낸 도면이다. 또한, 도 5는 본 발명의 일 실시 예에 따른 플래시 메모리 시스템의 플래시 드라이브에 의해 수행되는 데이터 저장 동작을 나타낸 도면이다.4 is a view illustrating a determination operation of hot and cold data performed by the flash control unit of the flash memory controller according to an embodiment of the present invention. 5 is a diagram illustrating a data storage operation performed by a flash drive of a flash memory system according to an embodiment of the present invention.

본 발명의 실시 예를 SSD 내부의 플래시 컨트롤러(140)와 플래시 드라이브(143)의 두 가지 계층에 걸쳐 설명하기로 한다.An embodiment of the present invention will be described across two layers of the flash controller 140 and the flash drive 143 inside the SSD.

우선, 플래시 메모리 컨트롤러(140)는 데이터가 실제로 저장되는 플래시 드라이브(143)를 물리적으로 핫 블록 풀과 콜드 블록 풀인 두 가지 영역으로 분리한다. 핫 블록 풀은 핫 데이터만을 저장하고, 콜드 블록 풀은 나머지 데이터를 저장하도록 한다. 이때, 핫 블록 풀은 핫 데이터만 저장하는 만큼 데이터 유지 시간을 짧게 단축시켜 저장 및 삭제 횟수(Program/Erase cycles, P/E Cycle)을 상승시킨다.First, the flash memory controller 140 physically separates the flash drive 143 in which data is actually stored into two areas, a hot block pool and a cold block pool. The hot block pool stores only the hot data, and the cold block pool stores the remaining data. At this time, the hot block pool shortens the data retention time as much as only the hot data is stored, thereby increasing the number of storage and deletion (Program / Erase cycles, P / E Cycle).

이와 같은 분리를 위해 플래시 제어부(142)는 데이터 타입을 구분해준다. 플래시 제어부(142)는 타임스탬프 계산부(141)와 같은 시간 측정기를 이용하여 각 블록에 데이터가 기록되는 시간을 기록한다. 그리고 추후 업데이트가 되는 데이터가 발생했을 때, 플래시 제어부(142)는 해당 데이터의 업데이트 시간 간격을 확인한다. 만약 해당 업데이트 시간 간격이 플래시 드라이브(143)의 핫 블록 풀의 제1 데이터 유지 시간보다 짧으면 이를 핫 데이터로 구분하고, 그렇지 않으면 콜드 데이터로 구분한다. 이를 통해, 플래시 메모리 컨트롤러(140)는 핫 및 콜드 데이터를 효과적으로 구분하고 데이터 유지 시간을 벗어나 데이터 무결성에 문제가 생기는 부작용도 예방할 수 있다.For this separation, the flash control unit 142 distinguishes data types. The flash control unit 142 records the time at which data is recorded in each block using a time meter such as the time stamp calculation unit 141. Then, when data to be updated later occurs, the flash control unit 142 checks the update time interval of the corresponding data. If the update time interval is shorter than the first data retention time of the hot block pool of the flash drive 143, it is classified as hot data, otherwise it is classified as cold data. Through this, the flash memory controller 140 can effectively classify hot and cold data and prevent side effects of data integrity problems beyond the data retention time.

도 4 및 도 5에 도시된 바와 같이, 쓰기 요청된 데이터 P9 및 다른 쓰기 요청된 데이터 P21이 발생한 경우를 일례로 살펴보기로 한다.As shown in FIGS. 4 and 5, a case in which write request data P9 and other write request data P21 occurs will be described as an example.

우선, 현재시간(Current time)이 100일 때를 가정하여 설명한다. 또한, 핫 블록 풀에 설정된 제1 데이터 유지 시간은 36(Short Retention Time=36)이라고 가정한다. 여기서, 100이나 36은 설명 편의상 시간을 숫자로 나타낸 것으로 특정 시간으로 한정되지 않는다. First, it is assumed on the assumption that the current time is 100. In addition, it is assumed that the first data retention time set in the hot block pool is 36 (Short Retention Time = 36). Here, 100 or 36 is a number for the convenience of description, and is not limited to a specific time.

쓰기 요청된 데이터 P9에 대해서 살펴보면, 쓰기 요청된 데이터 P9는 현재시간 100에서 데이터 업데이트(Data update)가 발생된다. 그러면, 플래시 메모리 컨트롤러(140)는 타임스탬프 계산부(141)를 통해 쓰기 요청된 데이터 P9의 이전 데이터가 속한 블록 번호와 이전 쓰기 시간(Previous Write Time)을 Blk #2와 85시간으로 확인한다. 그리고 플래시 메모리 컨트롤러(140)는 현재시간 100 즉, 쓰기 요청 시간과 이전 쓰기 시간 간의 업데이트 시간 간격(100-85=15)을 계산하여 제1 데이터 유지 시간인 36(Short Retention Time=36)과 비교하여 업데이트 시간 간격(15)이 제1 데이터 유지 시간 미만인 것을 확인한다. 이어서, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터 P9를 핫 데이터로 판별하고, 콜드 블록 풀의 Blk #2에 저장되어 있던 이전 데이터 P9를 무효화하고, 핫 블록 풀의 새로운 핫 블록 Blk #1에 쓰기 요청된 데이터 P9를 저장한다. 그리고 플래시 메모리 컨트롤러(140)는 데이터 유지 시간을 제1 데이터 유지 시간으로 할당한다. 여기서, 쓰기 요청된 데이터 P9은 이전 데이터가 콜드 블록 풀에 저장되어 있었으나, 핫 데이터로 판별되어 현재 핫 블록 풀에 저장된다. 이와 같이, 쓰기 요청된 데이터가 핫 블록 풀에 저장되어 있다가, 콜드 데이터로 판별되는 경우 콜드 블록 풀에 저장될 수 있다. 그리고 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터 P9의 이전 쓰기 시간인 85를 현재 쓰기 시간인 100으로 업데이트한다.Looking at the write-requested data P9, the write-requested data P9 has a data update at the current time 100. Then, the flash memory controller 140 checks the block number and the previous write time of the previous data of the data P9 that is requested to be written through the timestamp calculator 141 as Blk # 2 and 85 hours. Then, the flash memory controller 140 calculates the update time interval (100-85 = 15) between the current time 100, that is, the write request time and the previous write time, and compares it with the first data retention time 36 (Short Retention Time = 36). Then, it is confirmed that the update time interval 15 is less than the first data retention time. Subsequently, the flash memory controller 140 determines the write-requested data P9 as hot data, invalidates the previous data P9 stored in the cold block pool Blk # 2, and rewrites the new hot block Blk # 1 in the hot block pool. The data requested to be written is stored in P9. In addition, the flash memory controller 140 allocates the data retention time as the first data retention time. Here, although the previous data was stored in the cold block pool, the write request data P9 is determined as hot data and is stored in the current hot block pool. As described above, the data requested to be written is stored in the hot block pool, and when it is determined as cold data, it may be stored in the cold block pool. In addition, the flash memory controller 140 updates the previous write time 85 of the write-requested data P9 to the current write time 100.

다음으로, 쓰기 요청된 데이터 P21에 대해서 살펴보면, 쓰기 요청된 데이터 P21은 현재시간 100에서 발생된다. 그러면, 플래시 메모리 컨트롤러(140)는 타임스탬프 계산부(141)를 통해 쓰기 요청된 데이터 P21의 이전 데이터가 속한 블록 번호와 이전 쓰기 시간을 확인한다. 이때, 이전 쓰기 시간이 없는 데이터 즉, 이전 쓰기 시간이 Null로 표기되어 있는 경우, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터 P21을 콜드 데이터로 판별하고, 콜드 블록 풀의 새로운 콜드 블록 Blk #5에 쓰기 요청된 데이터 P21을 저장한다. 그리고 플래시 메모리 컨트롤러(140)는 데이터 유지 시간을 제2 데이터 유지 시간(Conventional Retention Time)으로 할당한다. 여기서, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터 P21가 초기 기록(Initial Write)이므로 현재 쓰기 시간을 100으로 업데이트한다.Next, looking at the write-requested data P21, the write-requested data P21 occurs at the current time 100. Then, the flash memory controller 140 checks the block number and the previous write time to which the previous data of the data P21 requested to be written through the timestamp calculation unit 141. At this time, if the data without the previous write time, that is, the previous write time is marked as Null, the flash memory controller 140 determines the write request data P21 as cold data, and the new cold block Blk # 5 of the cold block pool The data P21 requested to be written is stored. In addition, the flash memory controller 140 allocates the data retention time as the second data retention time (Conventional Retention Time). Here, the flash memory controller 140 updates the current write time to 100 because the write-requested data P21 is an initial write.

도 6은 본 발명의 일 실시 예에 따른 플래시 메모리 제어 방법의 시뮬레이션에 사용된 SSD 변수 값을 나타낸 도면이다.6 is a diagram showing SSD variable values used in simulation of a flash memory control method according to an embodiment of the present invention.

본 발명의 일 실시 예에 따른 플래시 메모리 제어 방법의 효과를 검증하기 위해, 대표적인 저장장치 시뮬레이터로 알려진 DiskSim에 SSD 패치를 적용하여 실험을 진행하였다. 해당 시뮬레이터는 입출력(I/O) 트레이스를 입력 값으로 삼아 해당 트레이스를 재현하여 응답 시간, 아이옵스(Input/Output Operations Per Second, IOPS), 가비지 콜렉션 등의 수치를 확인할 수 있다. 아이옵스는 HDD, SSD, SAN 같은 컴퓨터 저장 장치를 벤치마크하는 데 사용되는 성능 측정 단위다. 본 발명의 실시 예에 맞게 동작하도록 DiskSim 시뮬레이터를 수정하였다.In order to verify the effect of the flash memory control method according to an embodiment of the present invention, an experiment was conducted by applying an SSD patch to DiskSim, which is known as a representative storage simulator. The simulator uses input / output (I / O) traces as input values to reproduce the traces to check the response time, input / output operations per second (IOPS), and garbage collection. IOPs is a performance metric used to benchmark computer storage devices such as HDDs, SSDs and SANs. The DiskSim simulator was modified to work according to an embodiment of the present invention.

또한, 도 6과 같은 SSD 사양을 구성하여 실험하였다. 예컨대, SSD 사양에는 SSD 용량(SSD capacity), 페이지/블록 크기(Page/block size), 페이지 읽기/쓰기 지연율(Page read/write latency), 블록 삭제 지연율(Block erase latency), 오버-프로비저닝 비율(Ove-provisioning ratio), 핫 블록 풀의 크기(Size of hot block pool), 데이터 유지 시간(핫/콜드 블록 풀): Retention time(Hot/Cold block pool), 저장 및 삭제 횟수(핫/콜드 블록 풀): P/E cycles(Hot/Cold block pool)가 포함될 수 있다. 도 6에 도시된 바와 같이, 4KB의 페이지 256개가 하나의 블록을 통해, 총 256GB의 SSD를 구성하도록 설정하였다. 실험을 위해 7일 동안의 I/O 트레이스를 수집한 MSR-Cambridge의 워크로드를 사용하였다. 핫 블록 풀(Hot Block Pool)의 크기는 전체 SSD 크기의 10%로 설정하였으며, 이외의 영역은 콜드 블록 풀(Cold Block Pool)로 설정하였다. 빈도수 기반 핫/콜드 기법의 경우, 쿨 다운(Cool down) 윈도우는 128개의 블록을 관리하도록 하였으며, 쓰기 요청 크기 기법의 경우, 8 KB보다 작은 데이터의 경우를 핫 데이터로 판단하도록 하였다. 예컨대, 데이터 유지 시간은 하루(1 Day)로 설정하여 갱신 간격이 이보다 오래 걸릴 경우 리프레쉬(Refresh) 동작이 필요하다고 가정하였다.Also, the SSD specifications as shown in FIG. 6 were constructed and tested. For example, SSD specifications include SSD capacity, page / block size, page read / write latency, block erase latency, and over-provisioning rate ( Ove-provisioning ratio), size of hot block pool, data retention time (hot / cold block pool): retention time (hot / cold block pool), number of storage and deletion (hot / cold block pool) ): P / E cycles (Hot / Cold block pool) may be included. As shown in FIG. 6, 256 pages of 4 KB were configured to constitute a total of 256 GB SSD through one block. For the experiment, a workload of MSR-Cambridge, which collected I / O traces for 7 days, was used. The size of the hot block pool was set to 10% of the total SSD size, and the other areas were set to the cold block pool. In the case of the frequency-based hot / cold method, the cool down window is managed to manage 128 blocks, and in the case of the write request size method, the case of data smaller than 8 KB is determined as hot data. For example, it is assumed that the data retention time is set to one day, and if the update interval takes longer than this, a refresh operation is required.

도 7은 종래 기술과 본 발명의 일 실시 예의 적용 시, SSD의 수명 비교를 나타낸 도면이다.7 is a view showing a comparison of the life of the SSD, when applying the prior art and an embodiment of the present invention.

도 7에 도시된 바와 같이, 종래의 쓰기 요청 크기 기반(Write Request Size based) 기법, 업데이트 빈도 기반(Update Frequency based) 기법과 본 발명의 실시 예에 따른 플래시 메모리 제어 방법이 적용된 경우, 각 기법에 대한 SSD의 수명 결과(701, 702, 703)를 살펴보기로 한다. 여기서, SSD의 수명은 정규화된 수명(Normmalized Lifespan)으로 나타내질 수 있다.As illustrated in FIG. 7, when a conventional Write Request Size based technique, an Update Frequency based technique and a flash memory control method according to an embodiment of the present invention are applied, each technique Let's look at the lifespan results (701, 702, 703) of the SSD. Here, the lifespan of the SSD may be expressed as a normalized lifespan.

본 발명의 실시 예에 따른 플래시 메모리 제어 방법은 종래의 쓰기 요청 크기 기반 기법, 업데이트 빈도 기반 기법들에 비해 5배 정도부터 최대 10배 이상의 수명이 향상됨을 확인할 수 있다. 이러한 수명 비교 결과는 다양한 I/O 트레이스에 대해서도 유사하게 향상됨을 확인할 수 있다. 예컨대, 다양한 I/O 트레이스에는 하드웨어 모니터링(hm_1), 리서치 프로젝트(rsrch_1, rsrch_2), 소스 컨트롤(src2_1, src2_2), 웹 서버(web_2)를 관리하는 동안 발생된 I/O 트레이스들이 포함되어 있다.In the flash memory control method according to an embodiment of the present invention, it can be seen that the lifetime is improved by about 5 times to a maximum of 10 times or more compared to the conventional write request size-based technique and update frequency-based technique. It can be seen that the result of this life comparison is similarly improved for various I / O traces. For example, various I / O traces include hardware monitoring (hm_1), research projects (rsrch_1, rsrch_2), source control (src2_1, src2_2), and I / O traces generated while managing the web server (web_2).

이와 같이, 본 발명의 실시 예에 따른 플래시 메모리 제어 방법은 수명 향상을 위해 데이터 유지 시간을 조절하는 방법을 이용한다. 데이터 유지 시간이란, 플래시 메모리(144)에 저장된 데이터가 데이터 무결성을 보장할 수 있는 기간을 의미한다. 한번 데이터가 기록된 후에 해당 데이터 유지 시간을 지나게 되면 메모리의 전자 손실로 인해 데이터 손실이 발생할 수 있다. 플래시 메모리(144)의 데이터 유지 시간을 단축시키면 플래시 메모리(144)에 가능한 저장 및 삭제 횟수(P/E Cycle)가 증가하게 된다.As described above, the flash memory control method according to an embodiment of the present invention uses a method of adjusting data retention time to improve life. The data retention time refers to a period during which data stored in the flash memory 144 can guarantee data integrity. Once the data retention time passes after the data is written, data loss may occur due to electronic loss of memory. When the data retention time of the flash memory 144 is shortened, the number of possible storage and deletion (P / E cycle) of the flash memory 144 increases.

한편, 업데이트 시간 간격이 짧은 핫 데이터는 짧은 시간 안에 데이터가 자주 변경되기 때문에 데이터 유지 시간을 짧게 유지해도 데이터 무결성을 유지할 수 있다. 이를 바탕으로, 본 발명의 실시 예에 따른 플래시 메모리 제어 방법은 호스트 시스템으로부터 SSD로 전달되는 데이터를 핫 데이터 및 콜드 데이터로 구분하고, 핫 데이터의 데이터 유지 시간을 콜드 블록 풀에 설정된 데이터 유지 시간보다 단축시켜 SSD의 수명을 향상시킬 수 있다.Meanwhile, since hot data having a short update time interval changes data frequently in a short time, data integrity can be maintained even if the data retention time is kept short. Based on this, in the flash memory control method according to an embodiment of the present invention, data transferred from the host system to the SSD is divided into hot data and cold data, and the data retention time of the hot data is greater than the data retention time set in the cold block pool. It can be shortened to improve the lifespan of the SSD.

도 8은 종래 기술과 본 발명의 일 실시 예의 적용 시, 응답 시간 비교를 나타낸 도면이다.8 is a view showing a comparison of response time when applying the prior art and an embodiment of the present invention.

본 발명의 실시 예에 따른 플래시 메모리 제어 방법이 핫 데이터의 데이터 유지 시간을 단축함에도 도 8에 도시된 바와 같이, 종래 기술과 본 발명의 실시 예 간의 응답시간(801, 802, 803)은 큰 변화가 없음을 확인할 수 있다. 즉, 핫 데이터의 유지 시간이 단축되어도 응답시간은 유사하므로, SSD의 성능은 차이가 없음을 확인할 수 있다. 여기서, 응답 시간은 정규화된 응답 시간(Normmalized Response Time)으로 나타내질 수 있다.Although the flash memory control method according to an embodiment of the present invention shortens the data retention time of hot data, the response times 801, 802, and 803 between the prior art and the embodiment of the present invention are largely changed. It can be confirmed that there is no. That is, even if the retention time of the hot data is shortened, since the response time is similar, it can be confirmed that there is no difference in the performance of the SSD. Here, the response time may be expressed as a normalized response time.

한편, 본 발명의 실시 예는 수명이 제한적인 낸드 플래시 메모리 기반의 SSD의 내구성을 크게 높일 수 있으며, 이는 저장장치의 높은 내구성을 요구하는 대규모 데이터 센터 환경에서도 활용될 수 있다. On the other hand, the embodiment of the present invention can significantly increase the durability of a NAND flash memory-based SSD with a limited lifespan, which can also be utilized in a large data center environment requiring high durability of a storage device.

대규모 데이터를 다루는 시스템은, 다수의 사용자가 존재하는 경우가 많다. 이때, 많은 사용자로부터 이뤄지는 동시다발적인 어플리케이션 구동 및 파일 조작으로 인해 발생하는 메타데이터 업데이트는 상당히 작은 크기의 데이터 업데이트가 주를 이룬다. 또한, 메타데이터는 크기가 작다는 것뿐만 아니라 파일 데이터가 갱신될 때마다 함께 업데이트되기 때문에 업데이트 시간 간격이 짧게 발생한다는 특징이 있다. 따라서 플래시 메모리 제어 방법은 이러한 메타데이터를 핫 데이터라고 판별할 수 있다.Systems that deal with large amounts of data often have multiple users. At this time, metadata update caused by concurrent application driving and file manipulation from a large number of users mainly consists of updating data of a fairly small size. In addition, the metadata has a feature that the update time interval is short because the file data is updated together whenever the data is updated as well as being small. Therefore, the flash memory control method can determine such metadata as hot data.

반면, 자료 기록 및 보존을 위해 발생하는 백업 데이터는 백업의 특성상 한번 저장되면 업데이트가 거의 이뤄지지 않아 업데이트 시간 간격이 길게 된다. 따라서 플래시 메모리 제어 방법은 이러한 데이터들을 콜드 데이터라고 판단할 수 있다. 이렇듯, 일반적인 사용 환경에서도 이러한 핫 데이터 및 콜드 데이터의 구분은 충분히 유효하다고 할 수 있다. 따라서 본 발명의 실시 예에 따른 플래시 메모리 제어 방법은 플래시 메모리의 데이터 유지 시간으로 인한 특성을 최대한 활용하면서 스토리지 내구성을 크게 향상시킬 수 있다.On the other hand, the backup data generated for data recording and preservation is updated due to the nature of the backup, so updates are rarely performed, so the update interval is long. Therefore, the flash memory control method may determine that these data are cold data. As such, it can be said that the distinction between such hot data and cold data is sufficiently effective even in a general use environment. Therefore, the flash memory control method according to an embodiment of the present invention can greatly improve storage durability while making full use of characteristics due to data retention time of the flash memory.

이상 도면 및 실시예를 참조하여 설명하였지만, 본 발명의 보호범위가 상기 도면 또는 실시예에 의해 한정되는 것을 의미하지는 않으며 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. Although described above with reference to the drawings and examples, the protection scope of the present invention is not meant to be limited by the drawings or examples, and those skilled in the art will think of the present invention described in the claims below And it will be understood that various modifications and changes may be made to the present invention without departing from the scope.

10: 호스트 시스템
100: 플래시 메모리 시스템
110: 호스트 인터페이스
120: 중앙 처리 장치
130: 버퍼 메모리
140: 플래시 메모리 시스템
141: 타임스탬프 계산부
142: 플래시 제어부
143: 플래시 드라이브
144: 플래시 메모리
10: host system
100: flash memory system
110: host interface
120: central processing unit
130: buffer memory
140: flash memory system
141: time stamp calculation unit
142: flash control
143: flash drive
144: flash memory

Claims (24)

플래시 메모리 컨트롤러에 의해 수행되는 플래시 메모리 제어 방법에 있어서,
플래시 메모리에 저장하고자 하는 쓰기 요청된 데이터의 업데이트 시간 간격에 따라 핫 데이터(hot data) 또는 콜드 데이터(cold data)로 데이터 타입을 판별하는 단계;
상기 판별된 데이터 타입에 따라 상기 플래시 메모리에 구비된 핫 블록 풀(hot block pool) 또는 콜드 블록 풀(cold block pool)에 상기 쓰기 요청된 데이터를 저장하는 단계;
상기 쓰기 요청된 데이터가 저장된 블록 풀에 따라 데이터 유지 시간(data retention time)을 제1 데이터 유지 시간 또는 제2 데이터 유지 시간으로 할당하는 단계; 및
상기 저장된 쓰기 요청된 데이터의 쓰기 시간을 현재 쓰기 시간으로 업데이트하는 단계를 포함하고,
상기 핫 블록 풀에 설정된 제1 데이터 유지 시간은 상기 콜드 블록 풀에 설정된 제2 데이터 유지 시간 미만이고,
상기 데이터 타입을 판별하는 단계는, 상기 쓰기 요청된 데이터의 이전 쓰기 시간 및 현재 쓰기 요청된 시간 간의 업데이트 시간 간격을 상기 제1 데이터 유지 시간과 비교하여 데이터 타입을 핫 데이터 또는 콜드 데이터로 판별하고,
상기 할당하는 단계는, 상기 쓰기 요청된 데이터가 발생된 입출력(I/O) 트레이스의 특성에 따라 상기 핫 블록 풀에 설정된 제1 데이터 유지 시간을 조절하는 것을 특징으로 하는 플래시 메모리 제어 방법.
In the flash memory control method performed by the flash memory controller,
Determining a data type as hot data or cold data according to an update time interval of write-requested data to be stored in the flash memory;
Storing the write-requested data in a hot block pool or a cold block pool provided in the flash memory according to the determined data type;
Allocating a data retention time as a first data retention time or a second data retention time according to the block pool in which the write-requested data is stored; And
Updating the write time of the stored write-requested data to the current write time,
The first data retention time set in the hot block pool is less than the second data retention time set in the cold block pool,
In the determining of the data type, the update time interval between the previous write time of the write-requested data and the current write-request time is compared with the first data retention time to determine the data type as hot data or cold data,
In the allocating step, the first data retention time set in the hot block pool is adjusted according to a characteristic of an input / output (I / O) trace where the write requested data is generated.
제1항에 있어서,
상기 쓰기 요청된 데이터의 이전 쓰기 시간이 기록되어 있는지를 확인하는 단계; 및
이전 쓰기 시간이 기록되어 있지 않으면, 상기 쓰기 요청된 데이터의 데이터 타입을 콜드 데이터로 판별하는 단계를 더 포함하는 플래시 메모리 제어 방법.
According to claim 1,
Checking whether a previous write time of the write-requested data is recorded; And
And if the previous write time is not recorded, determining the data type of the data requested to be written as cold data.
삭제delete 제1항에 있어서,
상기 데이터 타입을 판별하는 단계는,
상기 쓰기 요청된 데이터의 이전 쓰기 시간 및 현재 쓰기 요청된 시간 간의 업데이트 시간 간격이 상기 제1 데이터 유지 시간 미만이면 핫 데이터로 판별하는 플래시 메모리 제어 방법.
According to claim 1,
The step of determining the data type,
A flash memory control method for determining that the update time interval between the previous write time of the write-requested data and the current write-request time is less than the first data retention time, as hot data.
제1항에 있어서,
상기 핫 데이터 또는 콜드 데이터로 판별하는 단계는,
상기 쓰기 요청된 데이터의 이전 쓰기 시간 및 현재 쓰기 요청된 시간 간의 업데이트 시간 간격이 상기 제1 데이터 유지 시간 이상이면 콜드 데이터로 판별하는 플래시 메모리 제어 방법.
According to claim 1,
The determining by the hot data or cold data,
A flash memory control method for determining that the update time interval between the previous write time of the write-requested data and the current write-request time is equal to or greater than the first data retention time, as cold data.
제1항에 있어서,
상기 쓰기 요청된 데이터를 저장하는 단계는,
상기 쓰기 요청된 데이터에 대한 이전 데이터가 핫 블록 풀 또는 콜드 블록 풀에 저장되어 있으면, 해당 블록 풀에 저장된 이전 데이터를 무효화하는 플래시 메모리 제어 방법.
According to claim 1,
The step of storing the write request data,
If the previous data for the write-requested data is stored in a hot block pool or a cold block pool, the flash memory control method of invalidating the previous data stored in the block pool.
삭제delete 제1항에 있어서,
데이터 타입이 핫 데이터로 판별된 쓰기 요청된 데이터는,
호스트 인터페이스를 통해 연결된 호스트의 애플리케이션 구동 또는 파일 조작으로 인해 발생하는 적어도 하나의 메타데이터인 것을 특징으로 하는 플래시 메모리 제어 방법.
According to claim 1,
The write-requested data whose data type is determined to be hot data,
Flash memory control method characterized in that the at least one metadata generated due to the application driving or file manipulation of the host connected through the host interface.
제1항에 있어서,
데이터 타입이 콜드 데이터로 판별된 쓰기 요청된 데이터는,
호스트 인터페이스를 통해 연결된 호스트의 백업 동작으로 인해 발생하는 백업 데이터인 것을 특징으로 하는 플래시 메모리 제어 방법.
According to claim 1,
Write-requested data whose data type is determined to be cold data,
Flash memory control method characterized in that the backup data generated by the backup operation of the host connected through the host interface.
제1항에 있어서,
상기 플래시 메모리는,
SLC(Single Level Cell), MLC(Multi Level Cell), TLC(Triple Level Cell) 및 QLC(Quad Level Cell) 중에서 어느 하나의 방식의 플래시 메모리인 것을 특징으로 하는 플래시 메모리 제어 방법.
According to claim 1,
The flash memory,
A flash memory control method characterized in that it is a flash memory of any one of SLC (Single Level Cell), MLC (Multi Level Cell), TLC (Triple Level Cell) and QLC (Quad Level Cell).
적어도 하나의 플래시 메모리를 구비하되, 상기 플래시 메모리의 저장 영역이 핫 블록 풀 및 콜드 블록 풀로 구분되는 플래시 드라이브; 및
상기 플래시 드라이브에 쓰기 요청된 데이터의 업데이트 시간 간격에 따라 핫 데이터 또는 콜드 데이터로 데이터 타입을 판별하여 상기 쓰기 요청된 데이터를 핫 블록 풀 또는 콜드 블록 풀에 저장하고, 상기 쓰기 요청된 데이터가 저장된 블록 풀에 따라 데이터 유지 시간을 제1 데이터 유지 시간 또는 제2 데이터 유지 시간으로 할당하고, 상기 저장된 쓰기 요청된 데이터의 쓰기 시간을 현재 쓰기 시간으로 업데이트하는 플래시 메모리 컨트롤러를 포함하고,
상기 핫 블록 풀에 설정된 제1 데이터 유지 시간은 상기 콜드 블록 풀에 설정된 제2 데이터 유지 시간 미만이고,
상기 플래시 메모리 컨트롤러는, 상기 쓰기 요청된 데이터의 이전 쓰기 시간 및 현재 쓰기 요청된 시간 간의 업데이트 시간 간격을 상기 제1 데이터 유지 시간과 비교하여 데이터 타입을 핫 데이터 또는 콜드 데이터로 판별하고, 상기 쓰기 요청된 데이터가 발생된 입출력(I/O) 트레이스의 특성에 따라 상기 핫 블록 풀에 설정된 제1 데이터 유지 시간을 조절하는 것을 특징으로 하는 플래시 메모리 시스템.
A flash drive having at least one flash memory, wherein the storage area of the flash memory is divided into a hot block pool and a cold block pool; And
The data type is determined by hot data or cold data according to the update time interval of the data requested to be written to the flash drive, and the write requested data is stored in a hot block pool or a cold block pool, and the block in which the write request data is stored And a flash memory controller that allocates data retention time according to a pool as a first data retention time or a second data retention time, and updates the write time of the stored write-requested data to the current write time,
The first data retention time set in the hot block pool is less than the second data retention time set in the cold block pool,
The flash memory controller compares the update time interval between the previous write time of the write-requested data and the current write-request time with the first data retention time to determine a data type as hot data or cold data, and the write request Flash memory system characterized in that to adjust the first data retention time set in the hot block pool according to the characteristics of the input / output (I / O) trace where the generated data is generated.
제11항에 있어서,
상기 플래시 메모리 컨트롤러는,
상기 쓰기 요청된 데이터의 이전 쓰기 시간이 기록되어 있는지를 확인하고, 이전 쓰기 시간이 기록되어 있지 않으면, 상기 쓰기 요청된 데이터의 데이터 타입을 콜드 데이터로 판별하는 플래시 메모리 시스템.
The method of claim 11,
The flash memory controller,
A flash memory system that checks whether a previous write time of the write-requested data is recorded, and if the previous write time is not recorded, determines a data type of the write-requested data as cold data.
삭제delete 제11항에 있어서,
상기 플래시 메모리 컨트롤러는,
상기 쓰기 요청된 데이터의 이전 쓰기 시간 및 현재 쓰기 요청된 시간 간의 업데이트 시간 간격이 상기 제1 데이터 유지 시간 미만이면 핫 데이터로 판별하는 플래시 메모리 시스템.
The method of claim 11,
The flash memory controller,
If the update time interval between the previous write time of the write-requested data and the current write-request time is less than the first data retention time, it is determined as hot data.
제11항에 있어서,
상기 플래시 메모리 컨트롤러는,
상기 쓰기 요청된 데이터의 이전 쓰기 시간 및 현재 쓰기 요청된 시간 간의 업데이트 시간 간격이 상기 제1 데이터 유지 시간 이상이면 콜드 데이터로 판별하는 플래시 메모리 시스템.
The method of claim 11,
The flash memory controller,
If the update time interval between the previous write time of the write-requested data and the current write-request time is greater than or equal to the first data retention time, it is determined as cold data.
제11항에 있어서,
상기 플래시 메모리 컨트롤러는,
상기 쓰기 요청된 데이터에 대한 이전 데이터가 핫 블록 풀 또는 콜드 블록 풀에 저장되어 있으면, 해당 블록 풀에 저장된 이전 데이터를 무효화하는 플래시 메모리 시스템.
The method of claim 11,
The flash memory controller,
If the previous data for the write-requested data is stored in a hot block pool or a cold block pool, the previous data stored in the block pool is invalidated.
삭제delete 제11항에 있어서,
상기 플래시 메모리는, SLC(Single Level Cell), MLC(Multi Level Cell), TLC(Triple Level Cell) 및 QLC(Quad Level Cell) 중에서 어느 하나의 방식의 플래시 메모리인 것을 특징으로 하는 플래시 메모리 시스템.
The method of claim 11,
The flash memory is a flash memory system characterized in that it is a flash memory of any one of SLC (Single Level Cell), MLC (Multi Level Cell), TLC (Triple Level Cell) and QLC (Quad Level Cell).
적어도 하나의 플래시 메모리를 구비하되, 상기 플래시 메모리의 저장 영역이 핫 블록 풀 및 콜드 블록 풀로 구분되는 플래시 드라이브;
상기 플래시 메모리에 저장된 데이터의 쓰기 시간을 관리하고, 상기 플래시 메모리에 저장하고자 하는 쓰기 요청된 데이터의 업데이트 시간 간격을 계산하는 타임스탬프 계산부; 및
상기 계산된 업데이트 시간 간격에 따라 핫 데이터 또는 콜드 데이터로 데이터 타입을 판별하여 상기 쓰기 요청된 데이터를 핫 블록 풀 또는 콜드 블록 풀에 저장하고, 상기 쓰기 요청된 데이터가 저장된 블록 풀에 따라 데이터 유지 시간을 제1 데이터 유지 시간 또는 제2 데이터 유지 시간으로 할당하는 플래시 제어부를 포함하고,
상기 타임스탬프 계산부는 상기 저장된 쓰기 요청된 데이터의 쓰기 시간을 현재 쓰기 시간으로 업데이트하고, 상기 핫 블록 풀에 설정된 제1 데이터 유지 시간은 상기 콜드 블록 풀에 설정된 제2 데이터 유지 시간 미만이고,
상기 플래시 제어부는 상기 쓰기 요청된 데이터의 이전 쓰기 시간 및 현재 쓰기 요청된 시간 간의 업데이트 시간 간격을 상기 제1 데이터 유지 시간과 비교하여 데이터 타입을 핫 데이터 또는 콜드 데이터로 판별하고, 상기 쓰기 요청된 데이터가 발생된 입출력(I/O) 트레이스의 특성에 따라 상기 핫 블록 풀에 설정된 제1 데이터 유지 시간을 조절하는 것을 특징으로 하는 플래시 메모리 시스템.
A flash drive having at least one flash memory, wherein the storage area of the flash memory is divided into a hot block pool and a cold block pool;
A timestamp calculation unit managing a write time of data stored in the flash memory and calculating an update time interval of write-requested data to be stored in the flash memory; And
Data type is determined by hot data or cold data according to the calculated update time interval, and the write-requested data is stored in the hot block pool or cold block pool, and the data retention time according to the block pool in which the write-requested data is stored. And a flash control unit that allocates the first data retention time or the second data retention time,
The timestamp calculator updates the write time of the stored write-requested data to the current write time, and the first data retention time set in the hot block pool is less than the second data retention time set in the cold block pool,
The flash control unit compares the update time interval between the previous write time of the write-requested data and the current write-request time with the first data retention time to determine a data type as hot data or cold data, and the write-requested data Flash memory system characterized in that for adjusting the first data retention time set in the hot block pool according to the characteristics of the input / output (I / O) trace is generated.
블록 단위로 삭제(erase)되는 플래시 메모리 시스템에서의 플래시 메모리 제어 방법에 있어서,
플래시 메모리 컨트롤러에서 상기 블록 단위로 데이터-상기 데이터는 플래시 메모리의 페이지(page) 단위를 가지며, 상기 블록은 복수의 페이지로 구성됨-가 쓰기(write)되는 시간과 상기 쓰기(write)된 데이터가 쓰기(write)된 이후 업데이트된 시간을 비교하여 상기 데이터의 타입을 핫 데이터(hot data)와 콜드 데이터(cold data)로 구분하는 단계; 및
플래시 드라이브에서 상기 구분된 데이터 타입을 기준으로 같은 데이터 타입을 가진 테이터끼리 구분하여 저장하는 단계를 포함하되,
상기 플래시 메모리 컨트롤러에서 상기 핫 데이터의 데이터 유지 시간(retention time)이 상기 콜드 데이터의 데이터 유지 시간보다 단축시켜 설정하고,
상기 구분하는 단계는 상기 쓰기(write)되는 시간과 상기 쓰기(write)된 데이터가 쓰기(write)된 이후 업데이트된 시간 간격을 상기 핫 데이터의 데이터 유지 시간과 비교하여 데이터 타입을 핫 데이터 또는 콜드 데이터로 구분하고,
상기 플래시 메모리 컨트롤러에서 상기 쓰기(write)된 데이터가 발생된 입출력(I/O) 트레이스의 특성에 따라 상기 핫 데이터의 데이터 유지 시간을 조절하는 것을 특징으로 하는 플래시 메모리 제어 방법.
A method for controlling a flash memory in a flash memory system erased in units of blocks,
Data in the block unit in the flash memory controller-the data has a page unit of the flash memory, and the block consists of a plurality of pages-the time when the write is written and the written data is written comparing the updated time after (write) and classifying the data type into hot data and cold data; And
In the flash drive, based on the divided data type, comprising the step of storing the data having the same data type, and storing,
In the flash memory controller, the data retention time of the hot data is set to be shorter than the data retention time of the cold data,
The distinguishing step compares the time between the write time and the updated time interval after the written data is written with the data retention time of the hot data to compare the data type with hot data or cold data. Separated by,
Flash memory control method, characterized in that for adjusting the data retention time of the hot data according to the characteristics of the input / output (I / O) trace where the written data is generated in the flash memory controller.
제20항에 있어서,
상기 구분하는 단계는,
상기 플래시 메모리 컨트롤러에서 상기 블록 단위로 상기 데이터가 쓰기(write)되는 시간을 매핑 테이블에 기록하는 단계; 및
상기 플래시 메모리 컨트롤러에서 상기 데이터가 쓰기(write)되는 시간과 상기 업데이트된 시간 간의 차이를 구하여 상기 설정된 핫 데이터의 데이터 유지 시간과 비교하는 단계를 포함하되,
상기 비교하는 단계에서의 비교 결과, 상기 업데이트된 시간 간의 차이값이 상기 설정된 핫 데이터의 데이터 유지 시간보다 작은 경우 핫 데이터로 분류하고, 상기 업데이트된 시간 간의 차이값이 상기 설정된 핫 데이터의 데이터 유지 시간 이상인 경우 상기 콜드 데이터로 분류하는 것을 특징으로 하는 플래시 메모리 제어 방법.
The method of claim 20,
The step of distinguishing,
Recording a time at which the data is written in the block unit in the flash memory controller in a mapping table; And
Comprising the step of obtaining the difference between the time the data is written (write) and the updated time in the flash memory controller and comparing with the data retention time of the set hot data,
As a result of the comparison in the comparing step, when the difference value between the updated times is smaller than the data retention time of the set hot data, it is classified as hot data, and the difference value between the updated times is the data retention time of the set hot data If the above is the flash memory control method characterized in that the classification into the cold data.
제20항에 있어서,
상기 저장하는 단계는,
상기 구분된 핫 데이터를 핫 데이터의 저장 영역인 핫 블록 풀에 저장하고, 상기 콜드 데이터를 콜드 데이터의 저장 영역인 콜드 블록 풀에 저장하는 것을 특징으로 하는 플래시 메모리 제어 방법.
The method of claim 20,
The storing step,
And storing the divided hot data in a hot block pool, which is a storage area of hot data, and storing the cold data in a cold block pool, which is a storage area of cold data.
제20항에 있어서,
상기 플래시 드라이브의 저장 공간 대비 상기 핫 데이터의 저장 영역의 크기의 비율을 고려하여 상기 핫 데이터의 저장 영역의 크기의 비율이 소정값 이하인 경우 상기 핫 데이터의 저장 영역의 크기와 상기 핫 데이터의 데이터 유지 시간을 조절하는 단계를 더 포함하는 플래시 메모리 제어 방법.
The method of claim 20,
When the ratio of the size of the storage area of the hot data is less than a predetermined value in consideration of the ratio of the size of the storage area of the hot data to the storage space of the flash drive, the size of the storage area of the hot data and the data of the hot data are maintained. Flash memory control method further comprising the step of adjusting the time.
블록 단위로 삭제(erase)되는 플래시 메모리 시스템에 있어서,
상기 블록 단위로 데이터-상기 데이터는 플래시 메모리의 페이지(page) 단위를 가지며, 상기 블록은 복수의 페이지로 구성됨-가 쓰기(write)되는 시간과 상기 쓰기(write)된 데이터가 쓰기(write)된 이후 업데이트된 시간을 비교하여 상기 데이터의 타입을 핫 데이터(hot data)와 콜드 데이터(cold data)로 구분하는 플래시 메모리 컨트롤러; 및
적어도 하나의 플래시 메모리를 구비하고, 상기 구분된 데이터 타입을 기준으로 같은 데이터 타입을 가진 테이터끼리 구분하여 저장하는 플래시 드라이브를 포함하되,
상기 플래시 메모리 컨트롤러에서 상기 핫 데이터의 데이터 유지 시간(retention time)이 상기 콜드 데이터의 데이터 유지 시간보다 단축시켜 설정하고,
상기 쓰기(write)되는 시간과 상기 쓰기(write)된 데이터가 쓰기(write)된 이후 업데이트된 시간 간격을 상기 핫 데이터의 데이터 유지 시간과 비교하여 데이터 타입을 핫 데이터 또는 콜드 데이터로 구분하고,
상기 쓰기(write)된 데이터가 발생된 입출력(I/O) 트레이스의 특성에 따라 상기 핫 데이터의 데이터 유지 시간을 조절하는 것을 특징으로 하는 플래시 메모리 시스템.
In a flash memory system that is erased in block units,
Data in the block unit-the data has a page unit of a flash memory, and the block is composed of a plurality of pages-the time when the data is written and the written data is written Then, the flash memory controller classifies the data type into hot data and cold data by comparing the updated time; And
A flash drive having at least one flash memory, and storing the data having the same data type based on the distinguished data type, is stored.
In the flash memory controller, the data retention time of the hot data is set to be shorter than the data retention time of the cold data,
The data type is divided into hot data or cold data by comparing the time at which the data is written and the updated time interval after the data is written to the data retention time of the hot data.
And adjusting the data retention time of the hot data according to the characteristics of the input / output (I / O) trace where the written data is generated.
KR1020170159815A 2017-11-28 2017-11-28 Flash memory system and control method thereof KR102113212B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170159815A KR102113212B1 (en) 2017-11-28 2017-11-28 Flash memory system and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170159815A KR102113212B1 (en) 2017-11-28 2017-11-28 Flash memory system and control method thereof

Publications (2)

Publication Number Publication Date
KR20190061426A KR20190061426A (en) 2019-06-05
KR102113212B1 true KR102113212B1 (en) 2020-05-20

Family

ID=66845388

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170159815A KR102113212B1 (en) 2017-11-28 2017-11-28 Flash memory system and control method thereof

Country Status (1)

Country Link
KR (1) KR102113212B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220374160A1 (en) * 2021-05-19 2022-11-24 Huawei Technologies Co., Ltd. Compaction policies for append-only stores
EP4124962A1 (en) * 2021-07-29 2023-02-01 Samsung Electronics Co., Ltd. Storage devices, storage controllers, and operating methods of storage controllers

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110727406A (en) * 2019-10-10 2020-01-24 深圳力维智联技术有限公司 Data storage scheduling method and device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9496043B1 (en) 2015-06-24 2016-11-15 International Business Machines Corporation Dynamically optimizing flash data retention or endurance based on data write frequency

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100874702B1 (en) * 2006-10-02 2008-12-18 삼성전자주식회사 Device Drivers and Methods for Efficiently Managing Flash Memory File Systems
US8521948B2 (en) * 2011-01-03 2013-08-27 Apple Inc. Handling dynamic and static data for a system having non-volatile memory
KR20130076429A (en) 2011-12-28 2013-07-08 삼성전자주식회사 Method for managing storage space in memory device and storage device using method thereof
US9645177B2 (en) * 2012-05-04 2017-05-09 Seagate Technology Llc Retention-drift-history-based non-volatile memory read threshold optimization

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9496043B1 (en) 2015-06-24 2016-11-15 International Business Machines Corporation Dynamically optimizing flash data retention or endurance based on data write frequency

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220374160A1 (en) * 2021-05-19 2022-11-24 Huawei Technologies Co., Ltd. Compaction policies for append-only stores
US11681456B2 (en) * 2021-05-19 2023-06-20 Huawei Cloud Computing Technologies Co., Ltd. Compaction policies for append-only stores
EP4124962A1 (en) * 2021-07-29 2023-02-01 Samsung Electronics Co., Ltd. Storage devices, storage controllers, and operating methods of storage controllers

Also Published As

Publication number Publication date
KR20190061426A (en) 2019-06-05

Similar Documents

Publication Publication Date Title
US10275162B2 (en) Methods and systems for managing data migration in solid state non-volatile memory
US9720616B2 (en) Data-retention controller/driver for stand-alone or hosted card reader, solid-state-drive (SSD), or super-enhanced-endurance SSD (SEED)
US9548108B2 (en) Virtual memory device (VMD) application/driver for enhanced flash endurance
US8954654B2 (en) Virtual memory device (VMD) application/driver with dual-level interception for data-type splitting, meta-page grouping, and diversion of temp files to ramdisks for enhanced flash endurance
US9753649B2 (en) Tracking intermix of writes and un-map commands across power cycles
US9747202B1 (en) Storage module and method for identifying hot and cold data
US10222984B1 (en) Managing multi-granularity flash translation layers in solid state drives
CN105718530B (en) File storage system and file storage control method thereof
US20190294345A1 (en) Data-Retention Controller Using Mapping Tables in a Green Solid-State-Drive (GNSD) for Enhanced Flash Endurance
WO2016069188A1 (en) Processing of un-map commands to enhance performance and endurance of a storage device
CN113126907B (en) Asynchronous power loss recovery for memory devices
KR20110107856A (en) Logical address offset
US11593258B2 (en) Enhanced filesystem support for zone namespace memory
US20160004644A1 (en) Storage Controller and Method for Managing Modified Data Flush Operations From a Cache
US11422945B2 (en) Generating, maintaining, or utilizing a compressed logical-to-physical table based on sequential writes
KR20200116372A (en) Storage device, controller and operating method of controller thereof
KR20180040769A (en) Storage device and operation method thereof
KR102113212B1 (en) Flash memory system and control method thereof
US11422745B2 (en) Addressing zone namespace and non-zoned memory based on data characteristics
US20140325168A1 (en) Management of stored data based on corresponding attribute data
US10891057B1 (en) Optimizing flash device write operations
KR20220114078A (en) Perform media management actions based on changing the write mode of data blocks in the cache
CN113093990A (en) Data block switching at a memory subsystem
US20230195350A1 (en) Resequencing data programmed to multiple level memory cells at a memory sub-system
KR20160119607A (en) Data storage device and operating method thereof

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