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

Flash memory system and control method thereof Download PDF

Info

Publication number
KR20190061426A
KR20190061426A KR1020170159815A KR20170159815A KR20190061426A KR 20190061426 A KR20190061426 A KR 20190061426A KR 1020170159815 A KR1020170159815 A KR 1020170159815A KR 20170159815 A KR20170159815 A KR 20170159815A KR 20190061426 A KR20190061426 A KR 20190061426A
Authority
KR
South Korea
Prior art keywords
data
write
flash memory
time
hot
Prior art date
Application number
KR1020170159815A
Other languages
Korean (ko)
Other versions
KR102113212B1 (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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

According to an embodiment of the present invention, a flash memory control method comprises the steps of: determining a data type as hot data or cold data according to an update time interval of write-requested data to be stored in a flash memory; storing the write-requested data in a hot block pool or a cold block pool provided at the flash memory according to the determined data type; allocating data retention time into first data retention time or second data retention time according to the block pool storing the write-requested data; and updating write time of the stored write-requested data with 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. The present invention can increase life of an SSD provided with the flash memory.

Description

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

본 발명은 메모리 제어 기술에 관한 것으로, 보다 상세하게는, 플래시 메모리 시스템 및 그 제어 방법에 관한 것이다.The present invention relates to a memory control technique, 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)에 비해 집적도가 높아, 대용량 보조 기억 장치로의 응용에 매우 유리하다.Semiconductor memory devices are divided into volatile memory devices and non-volatile memory devices. Volatile memory devices have a fast read / write speed, but the stored contents are lost when the external power supply is interrupted. On the other hand, the nonvolatile memory device preserves its contents even if the external power supply is interrupted. Therefore, a non-volatile memory device is used to store information that should be preserved whether power is applied or not. Particularly, among nonvolatile memories, a flash memory is highly advantageous in application to a large capacity auxiliary memory device because it has a higher integration density than an existing EEPROM (Electrically Erasable Programmable Read-Only Memory).

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

낸드 플래시 메모리 기반의 SSD가 대중화되면서 엔터프라이즈급 데이터센터에서도 SSD가 저장장치로서 많이 채택되고 있다. 낸드 플래시 메모리는 저전력, 고성능을 바탕으로 개인용 컴퓨터뿐만 아니라 엔터프라이즈급 서버의 저장장치로도 사용되고 있다. 이러한 흐름에 맞춰 대용량 데이터를 저장할 수 있는 낸드 플래시 메모리 기반 SSD의 필요성도 높아지고 있다. 이를 위해 하나의 셀에 2비트, 3비트를 저장하는 MLC(Multi Level Cell), TLC(Triple Level Cell) 플래시 메모리가 등장하였다. 하지만, 이들은 내구성이 크게 떨어진다는 단점이 존재한다. As SSDs based on NAND flash memory become popular, SSDs are widely adopted as storage devices in enterprise-class data centers. NAND flash memories are used not only as personal computers but also as storage devices for enterprise-class servers based on low power and high performance. The need for SSDs based on NAND flash memory that can store large amounts of data in accordance with these trends is also increasing. For this purpose, MLC (Multi Level Cell) and TLC (Triple Level Cell) flash memory, which store 2 bits and 3 bits in one cell, have appeared. However, they have a disadvantage that their 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 a technique for discriminating data stored in a flash memory, conventional technologies include a write request size based method and an update frequency based method. The write request size-based scheme divides the write request data into a hot data in accordance with a size of a write request transmitted from the host to the SSD, and the cold data in a write request with a large size. In addition, the update frequency-based technique divides the data in which write operation has occurred among the recently stored data using the LRU (Least Recently Used) technique as hot data and the other data as cold data.

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

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

본 발명의 실시 예들은 쓰기 요청된 데이터의 업데이트 시간 간격에 따라 데이터 타입을 핫 데이터 또는 콜드 데이터로 판별하여 대응되는 블록 풀에 저장하고, 각 블록 풀에 맞는 데이터 유지 시간을 할당함으로써, 플래시 메모리가 구비된 SSD의 수명을 향상시킬 수 있는, 플래시 메모리 시스템 및 그 제어 방법을 제공하고자 한다.The embodiments of the present invention determine the data type as hot data or cold data according to the update time interval of the write-requested data, store the data type in the corresponding block pool, allocate the data retention time for each block pool, SUMMARY OF THE INVENTION The present invention provides a flash memory system and a control method thereof that can improve the lifetime of a built-in 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, there is provided a method of controlling a flash memory performed by a flash memory controller, the method comprising: generating hot data or cold data according to an update time interval of write- determining a data type by a data type; Storing the write-requested data in a hot block pool or a cold block pool of the flash memory according to the determined data type; Assigning a data retention time as a first data retention time or a second data retention time according to a block pool in which the write-requested data is stored; And updating the write time of the stored write requested data to a current write time, wherein a first data hold time set in the hot block pool is less than a second data hold 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 determining the data type of the write-requested data as cold data if the previous write time is not recorded.

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

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

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

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

상기 할당하는 단계는, 상기 쓰기 요청된 데이터가 발생된 입출력(I/O) 트레이스의 특성에 따라 상기 핫 블록 풀에 설정된 제1 데이터 유지 시간을 조절할 수 있다.The allocating step may adjust a first data retention time set in the hot block pool according to characteristics of an input / output (I / O) trace in which 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 that occurs due to an application drive or file operation of the host connected through the host interface.

데이터 타입이 콜드 데이터로 판별된 쓰기 요청된 데이터는, 호스트 인터페이스를 통해 연결된 호스트의 백업 동작으로 인해 발생하는 백업 데이터일 수 있다.The write requested data whose data type is determined to be cold data may be backup data generated due to the backup operation of the host connected through the 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, there is provided 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 a controller for determining the 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 requested data in a hot block pool or a cold block pool, And a flash memory controller for allocating a data retention time as a first data retention time or a second data retention time according to a block pool and updating a write time of the stored write requested data to a current write time, The first data holding time set in the cold block pool is less than the second data holding time set in the cold block pool.

상기 플래시 메모리 컨트롤러는, 상기 쓰기 요청된 데이터의 이전 쓰기 시간이 기록되어 있는지를 확인하고, 이전 쓰기 시간이 기록되어 있지 않으면, 상기 쓰기 요청된 데이터의 데이터 타입을 콜드 데이터로 판별할 수 있다.The flash memory controller may check whether the previous write time of the write-requested data is recorded. If the previous write time is not recorded, the flash memory controller may 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 requested time with the first data retention time.

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

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

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

상기 플래시 메모리 컨트롤러는, 상기 쓰기 요청된 데이터가 발생된 입출력(I/O) 트레이스의 특성에 따라 상기 핫 블록 풀에 설정된 제1 데이터 유지 시간을 조절할 수 있다.The flash memory controller may adjust a first data retention time set in the hot block pool according to characteristics of an input / output (I / O) trace in which 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, there is provided 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 for 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 a controller for determining a data type as hot data or cold data according to the calculated update time interval, storing the write requested data in a hot block pool or a cold block pool, Wherein the time stamp calculation unit updates the write time of the stored write-requested data to a current write time, and updates the write-in time of the write-requested data to the write- 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, there is provided a method of controlling a flash memory in a flash memory system that is erased on a block basis, the method comprising the steps of: Wherein the block is composed of a plurality of pages, and comparing the time at which the write data is written with the updated time after the write data is written, thereby converting the type of the data into hot data ) And cold data (Cold Data); And storing data having the same data type in the flash drive, wherein the data retention time of the hot data in the flash memory controller is the data of the cold data The flash memory control method is set shorter than the holding time.

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

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

상기 플래시 메모리 제어 방법은, 상기 플래시 드라이브의 저장 공간 대비 상기 핫 데이터의 저장 영역의 크기의 비율을 고려하여 상기 핫 데이터의 저장 영역의 크기의 비율이 소정값 이하인 경우 상기 핫 데이터의 저장 영역의 크기와 상기 핫 데이터의 데이터 유지 시간을 조절할 수 있다.The flash memory control method may further include a step of, when a ratio of a size of the storage area of the hot data to a storage area of the hot data is smaller than a predetermined value, 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, there is provided a flash memory system erased on a block-by-block basis, wherein data on a block-by-block basis, the data having a page unit of a flash memory, The type of the data is divided into hot data and cold data by comparing the write time of the write data with the updated time after the write data is written, Flash memory controller; And a flash drive for storing data having the same data type on the basis of the divided data type, wherein the flash memory controller includes a data retention time ) Is set shorter than the data holding time of the cold data.

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

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다.While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail.

그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.It is to be understood, however, that the invention is not to be limited to the specific embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.The terms first, second, etc. 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 another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprises" or "having" and the like are used to specify that there is a feature, a number, a step, an operation, an element, a component or a combination thereof described in the specification, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

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

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

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

도 1에 도시된 바와 같이, 본 발명의 일 실시 예에 따른 플래시 메모리 시스템(100)은 호스트 인터페이스(110), 중앙 처리 장치(120), 버퍼 메모리(130), 플래시 메모리 컨트롤러(140) 및 플래시 드라이브(143)를 포함한다. 각 구성요소는 컨트롤 버스나 데이터 버스를 통하여 전기적으로 연결되며, 데이터 통신을 수행할 수 있다.1, a 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 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 handles the SATA physical layer (Phy Layer) and the link layer. The connection between the flash memory system 100 and the host system 10 may be performed 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,

중앙 처리 장치(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 necessary for the read operation and the write operation from the host interface 110. For example, when an instruction is inputted from the outside, it is stored in the host interface 110. The host interface 110 informs 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 as a single configuration, it may be composed of two or more multiprocessors. Each of the plurality of multiprocessors constituting the central processing unit 120 can divide and process the control operation. That is, the flash memory system 100 can perform multi-tasking by a plurality of multiprocessors. In addition, the flash memory system 100 including a plurality of multiprocessors can perform parallel processing. By parallel processing, the flash memory system can achieve high performance even when driven by a relatively low frequency clock. The central processing unit 120 can 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 to perform address mapping management, ware-leveling management of flash memory, Management of data preservation due to blocking, and the like. The buffer memory 130 may be 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 stored in the nonvolatile RAM or the volatile RAM.

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

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

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

한편, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터의 업데이트 시간 간격이 핫 블록 풀에 설정된 제1 데이터 유지 시간(data retention time)보다 짧은 데이터들의 타입을 핫 데이터로 판별한다. 그리고 플래시 메모리 컨트롤러(140)는 핫 데이터의 데이터 유지 시간을 콜드 블록 풀에 설정된 제2 데이터 유지 시간보다 짧은 제1 데이터 유지 시간으로 할당한다. 반대로, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터의 업데이트 시간 간격이 핫 블록 풀에 설정된 제1 데이터 유지 시간보다 긴 데이터들의 타입을 콜드 데이터로 판별한다. 그리고 플래시 메모리 컨트롤러(140)는 콜드 데이터의 데이터 유지 시간을 콜드 블록 풀에 설정된 제2 데이터 유지 시간으로 할당한다. 즉, 본 발명의 일 실시 예에 따른 플래시 메모리 컨트롤러(140)는 낸드 플래시를 구성하는 셀의 데이터 유지 시간을 조절한다. 데이터 유지 시간을 단축시킬수록 셀의 지우기 횟수는 늘어날 수 있다. 이를 기반으로 플래시 메모리 컨트롤러(140)는 업데이트 간격이 짧은 데이터(핫 데이터)들의 데이터 유지 시간을 짧게 유지한다. 반대로 플래시 메모리 컨트롤러(140)는 업데이트 간격이 긴 데이터(콜드 데이터)들의 데이터 유지 시간을 핫 데이터보다 상대적으로 길게 제공하여 SSD의 수명을 향상시킬 수 있다.Meanwhile, 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. 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. On the contrary, 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 holding time set in the hot block pool as cold data. The flash memory controller 140 allocates the data retention time of the cold data to 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. The shorter the data retention time, the greater the number of cell erasures. Based on this, the flash memory controller 140 keeps the data holding time of the data (hot data) having short update intervals short. On the other hand, the flash memory controller 140 can improve the lifetime of the SSD by providing the data holding time of the long update interval data (cold data) relatively longer than the hot data.

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

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

타임스탬프 계산부(141)는 플래시 메모리(144)에 저장된 데이터의 쓰기 시간을 관리한다. 그리고 타임스탬프 계산부(141)는 플래시 메모리(144)에 저장하고자 하는 쓰기 요청된 데이터의 업데이트 시간 간격을 계산한다.The time stamp calculation unit 141 manages the writing time of the data stored in the flash memory 144. [ The time stamp calculation unit 141 calculates the update time interval of the 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 time stamp calculation unit 141, and stores the requested data in the hot block pool or the cold block pool. Here, the flash controller 142 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. At this time, the flash control unit 142 can determine that the data is hot data 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 hold 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 equal to or greater than the first data hold time, the flash control unit 142 can determine the data as cold data.

그리고 플래시 제어부(142)는 쓰기 요청된 데이터가 저장된 블록 풀에 따라 데이터 유지 시간을 제1 데이터 유지 시간 또는 제2 데이터 유지 시간으로 할당한다. 여기서, 핫 블록 풀에 설정된 제1 데이터 유지 시간은 콜드 블록 풀에 설정된 제2 데이터 유지 시간 미만이다. 플래시 제어부(142)는 타임스탬프 계산부(141)를 통해 블록별로 데이터가 써지는 시간을 기록한다. 플래시 제어부(142)는 현재 쓰기 시간과 다음 쓰기 시간 즉, 업데이트 시간을 비교하여 데이터 타입을 핫 데이터 및 콜드 데이로 구분한다.The flash controller 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 write-requested data is stored. Here, the first data holding time set in the hot block pool is less than the second data holding time set in the cold block pool. The flash control unit 142 records the time for writing data on a block-by-block basis through the time stamp calculation unit 141. The flash control unit 142 compares the current write time with the next write time, i.e., update time, and classifies the data type into hot data and cold data.

플래시 드라이브(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 the cold block pool. The flash drive 143 stores data having the same data type based on the data type discriminated by the flash control unit 142. [ Thereafter, the flash drive 143 can provide a high write and erase count (P / E cycle) by shortening the data retention time to the first data retention time in the case of hot data.

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

한편, 플래시 제어부(142)는, 쓰기 요청된 데이터의 이전 쓰기 시간이 기록되어 있는지를 확인하고, 이전 쓰기 시간이 기록되어 있지 않으면, 쓰기 요청된 데이터의 데이터 타입을 콜드 데이터로 판별할 수 있다. On the other hand, the flash control unit 142 checks whether the previous write time of the write-requested data is recorded. If the previous write time is not recorded, the flash control unit 142 can determine the data type of the write-requested data as cold data.

또한, 플래시 제어부(142)는, 쓰기 요청된 데이터에 대한 이전 데이터가 핫 블록 풀 또는 콜드 블록 풀에 저장되어 있으면, 해당 블록 풀에 저장된 이전 데이터를 무효화할 수 있다. 플래시 제어부(142)는, 쓰기 요청된 데이터가 발생된 입출력(I/O) 트레이스의 특성에 따라 핫 블록 풀에 설정된 제1 데이터 유지 시간을 조절할 수 있다. 플래시 제어부(142)는 전체 플래시 드라이브(143)에서 핫 블록 풀의 저장 영역 대비 핫 데이터가 차지하는 저장 영역의 크기의 비율을 고려하여 핫 블록 풀의 저장 영역을 조절할 수 있다. 일례로, 플래시 제어부(142)는 전체 플래시 드라이브(143)의 저장 공간 대비 핫 데이터의 저장 영역의 크기의 비율을 고려하여, 핫 데이터의 저장 영역의 크기의 비율이 소정값 이하인 경우 핫 데이터 저장 영역의 크기를 줄일 수 있다. 또는, 플래시 제어부(142)는 핫 데이터에 대해 할당된 제1 데이터 유지 시간을 줄일 수 있다.The flash control unit 142 may invalidate the previous data stored in the block pool if the previous data of the write-requested data is stored in the hot block pool or the cold 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 in which the write requested data is generated. The flash control unit 142 can 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, in consideration of the ratio of the size of the storage area of the hot data to the storage space of the entire flash drive 143, if the ratio of the size of the storage area of the hot data is less than the predetermined value, Can be reduced. Alternatively, the flash control unit 142 may reduce the first data holding time allocated to 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 operation or file operation 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 data recording or data saving 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 a single level cell (SLC), a multi level cell (MLC), a triple level cell (TLC), and a quad level cell (QLC).

한편, 본 발명의 다른 실시 예에 따른 플래시 메모리 시스템(100)을 살펴보기로 한다. 본 발명의 다른 실시 예에 따른 플래시 메모리 시스템(100)은 데이터가 블록 단위로 삭제(erase)된다.Hereinafter, a 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 on a block-by-block basis.

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

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

여기서, 플래시 메모리 컨트롤러(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 illustrating a flash memory control method 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 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 144. [ Here, the flash memory controller 140 checks whether the previous write time of the write-requested data is recorded. If it is determined that the previous write time is not recorded, the flash memory controller 140 may determine the data type of the write-requested data as the cold data.

S103 단계에서, 플래시 메모리 컨트롤러(140)는 판별된 데이터 타입에 따라 플래시 메모리(144)에 구비된 핫 블록 풀 또는 콜드 블록 풀에 쓰기 요청된 데이터를 플래시 드라이브(143)를 통해 저장한다.In step S103, the flash memory controller 140 stores the data requested to be written to the hot block pool or the 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 holding time set in the hot block pool is less than the second data holding 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 issued 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 the write time of the data requested to be written by the time stamp calculation unit 141 is recorded.

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

S204 단계에서, 상기 확인 결과(S203), 쓰기 요청된 데이터의 업데이트 시간 간격이 핫 블록 풀의 제1 데이터 유지 시간보다 짧으면, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터를 핫 데이터로 판별한다. 즉, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터의 이전 쓰기 시간 및 현재 쓰기 요청된 시간 간의 업데이트 시간 간격을 제1 데이터 유지 시간과 비교하여 데이터 타입을 핫 데이터 또는 콜드 데이터로 판별할 수 있다. 구체적으로, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터의 이전 쓰기 시간 및 현재 쓰기 요청된 시간 간의 업데이트 시간 간격이 제1 데이터 유지 시간 미만이면 핫 데이터로 판별하고, 쓰기 요청된 데이터의 이전 쓰기 시간 및 현재 쓰기 요청된 시간 간의 업데이트 시간 간격이 제1 데이터 유지 시간 이상이면 콜드 데이터로 판별할 수 있다.If the update time interval of the write-requested data is shorter than the first data retention time of the hot-block pool in step S204, 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 hold time, the flash memory controller 140 determines that the write data is hot data, And the update time interval between the current write request time and the first data retention time is greater than or equal to the first data retention time.

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

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

S207 단계에서, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터를 핫 블록 풀에 저장한다. 반면, 쓰기 요청된 데이터의 이전 데이터가 플래시 메모리(144)의 블록 풀에 저장되어 있지 않으면, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터를 핫 블록 풀에 저장하는 S207 단계를 바로 수행한다. 이때, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터가 저장된 핫 블록 풀에 따라 데이터 유지 시간을 제1 데이터 유지 시간으로 할당한다. 여기서, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터가 발생된 입출력(I/O)의 특성에 따라 핫 블록 풀에 설정된 제1 데이터 유지 시간을 조절할 수 있다.In step S207, the flash memory controller 140 stores the write-requested data in the 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 write-requested data 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 time stamp calculation unit 141 in the data block to which the newly requested write requested data belongs.

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

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

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

S212 단계에서, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터를 콜드 블록 풀에 저장한다. 반면, 쓰기 요청된 데이터의 이전 데이터가 플래시 메모리(144)의 블록 풀에 저장되어 있지 않으면, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터를 콜드 블록 풀에 저장하는 S212 단계를 바로 수행한다. 이때, 플래시 메모리 컨트롤러(140)는 쓰기 요청된 데이터가 저장된 콜드 블록 풀에 따라 데이터 유지 시간을 제2 데이터 유지 시간으로 할당한다.In step S212, the flash memory controller 140 stores the write-requested data in the 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 write-requested data is stored.

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

한편, 본 발명의 다른 실시 예에 따른 블록 단위로 삭제(erase)되는 플래시 메모리 시스템에서의 플래시 메모리 제어 방법을 살펴보기로 한다.Meanwhile, a flash memory control method 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)이 콜드 데이터의 데이터 유지 시간보다 단축시켜 설정한다.The method of controlling flash memory according to another embodiment of the present invention is a method of controlling the flash memory controller 140 in such a manner that the time at which data is written in block units in the flash memory controller 140 and the updated time after the write data is written Dividing the data type into hot data and cold data and dividing the data having the same data type by the data type discriminated in the flash drive 143 . 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)는 비교 결과, 업데이트된 시간 간의 차이값이 핫 데이터의 데이터 유지 시간보다 작은 경우 핫 데이터로 분류하고, 업데이트된 시간 간의 차이값이 핫 데이터의 데이터 유지 시간 이상인 경우 콜드 데이터로 분류할 수 있다.A method of controlling a flash memory according to another embodiment of the present invention includes the steps of writing data in a block table in a block unit in a flash memory controller 140 in a mapping table and writing data in a mapping table in a flash memory controller 140 and comparing the updated time with the data retention time of the hot data. Here, the flash memory controller 140 classifies the data as hot data when the difference value between the updated times is smaller than the data holding time of the hot data, and when the difference value between the updated times is equal to or longer than the data holding time of the hot data, Data.

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

도 4는 본 발명의 일 실시 예에 따른 플래시 메모리 컨트롤러의 플래시 제어부에 의해 수행되는 핫 및 콜드 데이터의 판별 동작을 나타낸 도면이다. 또한, 도 5는 본 발명의 일 실시 예에 따른 플래시 메모리 시스템의 플래시 드라이브에 의해 수행되는 데이터 저장 동작을 나타낸 도면이다.FIG. 4 is a diagram illustrating hot and cold data discrimination performed by a flash controller of a flash memory controller according to an embodiment of the present invention. Referring to FIG. 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)의 두 가지 계층에 걸쳐 설명하기로 한다.The embodiment of the present invention will be described in two layers of the flash controller 140 and the flash drive 143 in the SSD.

우선, 플래시 메모리 컨트롤러(140)는 데이터가 실제로 저장되는 플래시 드라이브(143)를 물리적으로 핫 블록 풀과 콜드 블록 풀인 두 가지 영역으로 분리한다. 핫 블록 풀은 핫 데이터만을 저장하고, 콜드 블록 풀은 나머지 데이터를 저장하도록 한다. 이때, 핫 블록 풀은 핫 데이터만 저장하는 만큼 데이터 유지 시간을 짧게 단축시켜 저장 및 삭제 횟수(Program/Erase cycles, P/E Cycle)을 상승시킨다.First, the flash memory controller 140 physically divides 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 hot data, and the cold block pool stores the remaining data. At this time, the hot block pool shortens the data holding time by only storing hot data, thereby raising the program / erase cycles (P / E cycle).

이와 같은 분리를 위해 플래시 제어부(142)는 데이터 타입을 구분해준다. 플래시 제어부(142)는 타임스탬프 계산부(141)와 같은 시간 측정기를 이용하여 각 블록에 데이터가 기록되는 시간을 기록한다. 그리고 추후 업데이트가 되는 데이터가 발생했을 때, 플래시 제어부(142)는 해당 데이터의 업데이트 시간 간격을 확인한다. 만약 해당 업데이트 시간 간격이 플래시 드라이브(143)의 핫 블록 풀의 제1 데이터 유지 시간보다 짧으면 이를 핫 데이터로 구분하고, 그렇지 않으면 콜드 데이터로 구분한다. 이를 통해, 플래시 메모리 컨트롤러(140)는 핫 및 콜드 데이터를 효과적으로 구분하고 데이터 유지 시간을 벗어나 데이터 무결성에 문제가 생기는 부작용도 예방할 수 있다.For such a separation, the flash control unit 142 distinguishes the data type. The flash control unit 142 records a time at which data is recorded in each block using a time measuring unit such as the time stamp calculating unit 141. [ When data to be updated is generated, 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 holding time of the hot block pool of the flash drive 143, it is divided into hot data, and otherwise, it is divided into cold data. Accordingly, the flash memory controller 140 can effectively distinguish hot and cold data, and prevent side effects such as data maintenance time and data integrity problems.

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

우선, 현재시간(Current time)이 100일 때를 가정하여 설명한다. 또한, 핫 블록 풀에 설정된 제1 데이터 유지 시간은 36(Short Retention Time=36)이라고 가정한다. 여기서, 100이나 36은 설명 편의상 시간을 숫자로 나타낸 것으로 특정 시간으로 한정되지 않는다. First, it is assumed that the current time is 100. It is also 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 numerical representation of a time for convenience of explanation, 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으로 업데이트한다.Referring to the data P9 requested to be written, data update (data update) occurs at the current time 100 in the data P9 requested to be written. Then, the flash memory controller 140 confirms the block number to which the previous data of the data P9 requested to be written through the time stamp calculation unit 141 belongs and the previous write time (Blk # 2 and 85 hours). The flash memory controller 140 calculates the update time interval (100-85 = 15) between the current time 100, i.e., the write request time and the previous write time, and compares the update time interval with the first data retention time 36 (Short Retention Time = 36) And confirms that the update time interval 15 is less than the first data holding time. Then, the flash memory controller 140 determines the write-requested data P9 as hot data, invalidates the previous data P9 stored in Blk # 2 of the cold block pool, and writes the data P9 to the hot block Blk # 1 And stores the write-requested data P9. The flash memory controller 140 allocates the data retention time as the first data retention time. Here, the data P9 requested to be written is stored in the hot block pool although the previous data is stored in the cold block pool, but is determined as hot data. In this way, if the data requested to be written is stored in the hot block pool and is determined to be the cold data, it can be stored in the cold block pool. Then, the flash memory controller 140 updates the previous write time 85 of the write requested data P9 to 100, which is the current write time.

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

도 6은 본 발명의 일 실시 예에 따른 플래시 메모리 제어 방법의 시뮬레이션에 사용된 SSD 변수 값을 나타낸 도면이다.6 is a diagram illustrating SSD variable values used in a 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 SSD patch was applied to DiskSim, which is known as a typical storage device simulator, and the experiment was conducted. The simulator can check the response time, input / output operations per second (IOPS), garbage collection, etc. by using the input / output (I / O) trace as an input value. IOPs are performance measurement units used to benchmark computer storage devices such as HDDs, SSDs, and SANs. The DiskSim simulator was modified to operate in accordance with the 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 specification as shown in FIG. 6 was constructed and tested. For example, SSD specifications include SSD capacity, page / block size, page read / write latency, block erase latency, and over-provisioning ratio (Hot / cold block pool), retention time (hot / cold block pool), storage and deletion times (hot / cold block pool) ): P / E cycles (hot / cold block pool). As shown in FIG. 6, 256 pages of 4 KB are set to constitute a total of 256 GB of SSD through one block. For the experiment, I used MSR-Cambridge workload that collected I / O trace for 7 days. The size of the hot block pool is set to 10% of the total SSD size, and the remaining area is set as a cold block pool. In the frequency-based hot / cold method, the cool down window manages 128 blocks. In the case of the write request size method, the data of less than 8 KB is judged as hot data. For example, it is assumed that the data retention time is set to 1 day, and a refresh operation is required when the update interval takes longer than this.

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

도 7에 도시된 바와 같이, 종래의 쓰기 요청 크기 기반(Write Request Size based) 기법, 업데이트 빈도 기반(Update Frequency based) 기법과 본 발명의 실시 예에 따른 플래시 메모리 제어 방법이 적용된 경우, 각 기법에 대한 SSD의 수명 결과(701, 702, 703)를 살펴보기로 한다. 여기서, SSD의 수명은 정규화된 수명(Normmalized Lifespan)으로 나타내질 수 있다.As shown in FIG. 7, when a conventional write request size based method, an update frequency based method, and a flash memory control method according to an embodiment of the present invention are applied, Let's look at the life results (701, 702, 703) of the SSD. Here, the lifetime of the SSD can 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 트레이스들이 포함되어 있다.It can be seen that the flash memory control method according to the embodiment of the present invention improves the lifespan from 5 times to 10 times or more as compared with the conventional write request size based technique and update frequency based techniques. This lifetime comparison result is similarly improved for various I / O traces. For example, various I / O traces include I / O traces generated during hardware monitoring (hm_1), research projects (rsrch_1, rsrch_2), source controls (src2_1, src2_2), and web server (web_2).

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

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

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

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

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

대규모 데이터를 다루는 시스템은, 다수의 사용자가 존재하는 경우가 많다. 이때, 많은 사용자로부터 이뤄지는 동시다발적인 어플리케이션 구동 및 파일 조작으로 인해 발생하는 메타데이터 업데이트는 상당히 작은 크기의 데이터 업데이트가 주를 이룬다. 또한, 메타데이터는 크기가 작다는 것뿐만 아니라 파일 데이터가 갱신될 때마다 함께 업데이트되기 때문에 업데이트 시간 간격이 짧게 발생한다는 특징이 있다. 따라서 플래시 메모리 제어 방법은 이러한 메타데이터를 핫 데이터라고 판별할 수 있다.In a system for handling large-scale data, there are many users in many cases. At this time, metadata update caused by simultaneous application execution and file manipulation performed by many users is mainly due to data update of a small size. In addition, the meta data is characterized not only by its small size, but also by updating the file data every time the file data is updated. Therefore, the flash memory control method can determine such metadata as hot data.

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

이상 도면 및 실시예를 참조하여 설명하였지만, 본 발명의 보호범위가 상기 도면 또는 실시예에 의해 한정되는 것을 의미하지는 않으며 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the inventions as defined by the following claims It will be understood that various modifications and changes may be made thereto without departing from the spirit and scope of the invention.

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: Timestamp calculation unit
142:
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 데이터 유지 시간 미만인 것을 특징으로 하는 플래시 메모리 제어 방법.
A flash memory control method performed by a 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 of the flash memory according to the determined data type;
Assigning a data retention time as a first data retention time or a second data retention time according to a 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.
제1항에 있어서,
상기 쓰기 요청된 데이터의 이전 쓰기 시간이 기록되어 있는지를 확인하는 단계; 및
이전 쓰기 시간이 기록되어 있지 않으면, 상기 쓰기 요청된 데이터의 데이터 타입을 콜드 데이터로 판별하는 단계를 더 포함하는 플래시 메모리 제어 방법.
The method according to claim 1,
Confirming 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 write-requested data as the cold data.
제1항에 있어서,
상기 데이터 타입을 판별하는 단계는,
상기 쓰기 요청된 데이터의 이전 쓰기 시간 및 현재 쓰기 요청된 시간 간의 업데이트 시간 간격을 상기 제1 데이터 유지 시간과 비교하여 데이터 타입을 핫 데이터 또는 콜드 데이터로 판별하는 플래시 메모리 제어 방법.
The method according to claim 1,
Wherein the step of determining the data type comprises:
Comparing the update time interval between the previous write time of the write requested data and the current write requested time with the first data hold time to determine the data type as hot data or cold data.
제3항에 있어서,
상기 데이터 타입을 판별하는 단계는,
상기 쓰기 요청된 데이터의 이전 쓰기 시간 및 현재 쓰기 요청된 시간 간의 업데이트 시간 간격이 상기 제1 데이터 유지 시간 미만이면 핫 데이터로 판별하는 플래시 메모리 제어 방법.
The method of claim 3,
Wherein the step of determining the data type comprises:
If the update time interval between the previous write time of the write requested data and the current write requested time is less than the first data hold time, the hot data is determined.
제3항에 있어서,
상기 핫 데이터 또는 콜드 데이터로 판별하는 단계는,
상기 쓰기 요청된 데이터의 이전 쓰기 시간 및 현재 쓰기 요청된 시간 간의 업데이트 시간 간격이 상기 제1 데이터 유지 시간 이상이면 콜드 데이터로 판별하는 플래시 메모리 제어 방법.
The method of claim 3,
Wherein the step of discriminating the hot data or the cold data comprises:
If the update time interval between the previous write time of the write request data and the current write request time is equal to or longer than the first data retention time, judges the data as cold data.
제1항에 있어서,
상기 쓰기 요청된 데이터를 저장하는 단계는,
상기 쓰기 요청된 데이터에 대한 이전 데이터가 핫 블록 풀 또는 콜드 블록 풀에 저장되어 있으면, 해당 블록 풀에 저장된 이전 데이터를 무효화하는 플래시 메모리 제어 방법.
The method according to claim 1,
Wherein the step of storing the write-
And if the previous data of the write-requested data is stored in the hot block pool or the cold block pool, invalidates the previous data stored in the corresponding block pool.
제1항에 있어서,
상기 할당하는 단계는,
상기 쓰기 요청된 데이터가 발생된 입출력(I/O) 트레이스의 특성에 따라 상기 핫 블록 풀에 설정된 제1 데이터 유지 시간을 조절하는 플래시 메모리 제어 방법.
The method according to claim 1,
Wherein the assigning comprises:
And controlling a first data holding time set in the hot block pool according to a characteristic of an input / output (I / O) trace in which the write requested data is generated.
제1항에 있어서,
데이터 타입이 핫 데이터로 판별된 쓰기 요청된 데이터는,
호스트 인터페이스를 통해 연결된 호스트의 애플리케이션 구동 또는 파일 조작으로 인해 발생하는 적어도 하나의 메타데이터인 것을 특징으로 하는 플래시 메모리 제어 방법.
The method according to claim 1,
The write-requested data, whose data type is determined as hot data,
Is at least one meta-data generated due to application activation or file manipulation of a host connected via a host interface.
제1항에 있어서,
데이터 타입이 콜드 데이터로 판별된 쓰기 요청된 데이터는,
호스트 인터페이스를 통해 연결된 호스트의 백업 동작으로 인해 발생하는 백업 데이터인 것을 특징으로 하는 플래시 메모리 제어 방법.
The method according to claim 1,
The write-requested data in which the data type is determined to be the cold data,
And backup data generated due to a 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) 중에서 어느 하나의 방식의 플래시 메모리인 것을 특징으로 하는 플래시 메모리 제어 방법.
The method according to claim 1,
The flash memory includes:
Wherein the flash memory is a flash memory of any one of a single level cell (SLC), a multi level cell (MLC), a triple level cell (TLC), and a quad level cell (QLC).
적어도 하나의 플래시 메모리를 구비하되, 상기 플래시 메모리의 저장 영역이 핫 블록 풀 및 콜드 블록 풀로 구분되는 플래시 드라이브; 및
상기 플래시 드라이브에 쓰기 요청된 데이터의 업데이트 시간 간격에 따라 핫 데이터 또는 콜드 데이터로 데이터 타입을 판별하여 상기 쓰기 요청된 데이터를 핫 블록 풀 또는 콜드 블록 풀에 저장하고, 상기 쓰기 요청된 데이터가 저장된 블록 풀에 따라 데이터 유지 시간을 제1 데이터 유지 시간 또는 제2 데이터 유지 시간으로 할당하고, 상기 저장된 쓰기 요청된 데이터의 쓰기 시간을 현재 쓰기 시간으로 업데이트하는 플래시 메모리 컨트롤러를 포함하고,
상기 핫 블록 풀에 설정된 제1 데이터 유지 시간은 상기 콜드 블록 풀에 설정된 제2 데이터 유지 시간 미만인 것을 특징으로 하는 플래시 메모리 시스템.
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 of the hot data or the cold data is determined according to the update time interval of the data requested to be written to the flash drive, and the requested data is stored in the hot block pool or the cold block pool, And a flash memory controller for allocating a data retention time according to the pool as a first data retention time or a second data retention time and updating the write time of the stored write requested data to a 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.
제11항에 있어서,
상기 플래시 메모리 컨트롤러는,
상기 쓰기 요청된 데이터의 이전 쓰기 시간이 기록되어 있는지를 확인하고, 이전 쓰기 시간이 기록되어 있지 않으면, 상기 쓰기 요청된 데이터의 데이터 타입을 콜드 데이터로 판별하는 플래시 메모리 시스템.
12. The method of claim 11,
The flash memory controller includes:
And determines whether the previous write time of the write-requested data is recorded. If the previous write time is not recorded, the data type of the write-requested data is determined to be cold data.
제11항에 있어서,
상기 플래시 메모리 컨트롤러는,
상기 쓰기 요청된 데이터의 이전 쓰기 시간 및 현재 쓰기 요청된 시간 간의 업데이트 시간 간격을 상기 제1 데이터 유지 시간과 비교하여 데이터 타입을 핫 데이터 또는 콜드 데이터로 판별하는 플래시 메모리 시스템.
12. The method of claim 11,
The flash memory controller includes:
Wherein the data type is determined 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 requested time with the first data hold time.
제13항에 있어서,
상기 플래시 메모리 컨트롤러는,
상기 쓰기 요청된 데이터의 이전 쓰기 시간 및 현재 쓰기 요청된 시간 간의 업데이트 시간 간격이 상기 제1 데이터 유지 시간 미만이면 핫 데이터로 판별하는 플래시 메모리 시스템.
14. The method of claim 13,
The flash memory controller includes:
If the update time interval between the previous write time of the write requested data and the current write requested time is less than the first data hold time, the hot data is determined.
제13항에 있어서,
상기 플래시 메모리 컨트롤러는,
상기 쓰기 요청된 데이터의 이전 쓰기 시간 및 현재 쓰기 요청된 시간 간의 업데이트 시간 간격이 상기 제1 데이터 유지 시간 이상이면 콜드 데이터로 판별하는 플래시 메모리 시스템.
14. The method of claim 13,
The flash memory controller includes:
If the update time interval between the previous write time of the write request data and the current write request time is equal to or longer than the first data retention time, the flash memory system determines the cold data.
제11항에 있어서,
상기 플래시 메모리 컨트롤러는,
상기 쓰기 요청된 데이터에 대한 이전 데이터가 핫 블록 풀 또는 콜드 블록 풀에 저장되어 있으면, 해당 블록 풀에 저장된 이전 데이터를 무효화하는 플래시 메모리 시스템.
12. The method of claim 11,
The flash memory controller includes:
And if the previous data for the write-requested data is stored in the hot block pool or the cold block pool, invalidates the previous data stored in the block pool.
제11항에 있어서,
상기 플래시 메모리 컨트롤러는,
상기 쓰기 요청된 데이터가 발생된 입출력(I/O) 트레이스의 특성에 따라 상기 핫 블록 풀에 설정된 제1 데이터 유지 시간을 조절하는 플래시 메모리 시스템.
12. The method of claim 11,
The flash memory controller includes:
And controls the first data retention time set in the hot block pool according to characteristics of an input / output (I / O) trace in which the write requested data is generated.
제11항에 있어서,
상기 플래시 메모리는, SLC(Single Level Cell), MLC(Multi Level Cell), TLC(Triple Level Cell) 및 QLC(Quad Level Cell) 중에서 어느 하나의 방식의 플래시 메모리인 것을 특징으로 하는 플래시 메모리 시스템.
12. The method of claim 11,
Wherein the flash memory is a flash memory of any one of a single level cell (SLC), a multi level cell (MLC), a triple level cell (TLC), and a quad level cell (QLC).
적어도 하나의 플래시 메모리를 구비하되, 상기 플래시 메모리의 저장 영역이 핫 블록 풀 및 콜드 블록 풀로 구분되는 플래시 드라이브;
상기 플래시 메모리에 저장된 데이터의 쓰기 시간을 관리하고, 상기 플래시 메모리에 저장하고자 하는 쓰기 요청된 데이터의 업데이트 시간 간격을 계산하는 타임스탬프 계산부; 및
상기 계산된 업데이트 시간 간격에 따라 핫 데이터 또는 콜드 데이터로 데이터 타입을 판별하여 상기 쓰기 요청된 데이터를 핫 블록 풀 또는 콜드 블록 풀에 저장하고, 상기 쓰기 요청된 데이터가 저장된 블록 풀에 따라 데이터 유지 시간을 제1 데이터 유지 시간 또는 제2 데이터 유지 시간으로 할당하는 플래시 제어부를 포함하고,
상기 타임스탬프 계산부는 상기 저장된 쓰기 요청된 데이터의 쓰기 시간을 현재 쓰기 시간으로 업데이트하고, 상기 핫 블록 풀에 설정된 제1 데이터 유지 시간은 상기 콜드 블록 풀에 설정된 제2 데이터 유지 시간 미만인 것을 특징으로 하는 플래시 메모리 시스템.
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 for 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
Wherein the controller determines the data type as hot data or cold data according to the calculated update time interval, stores the data requested to be written in the hot block pool or the cold block pool, To a first data holding time or a second data holding time,
Wherein the time stamp calculation unit updates the write time of the stored write requested data to the current write time and the first data hold time set in the hot block pool is less than the second data hold time set in the cold block pool. Flash memory system.
블록 단위로 삭제(erase)되는 플래시 메모리 시스템에서의 플래시 메모리 제어 방법에 있어서,
플래시 메모리 컨트롤러에서 상기 블록 단위로 데이터-상기 데이터는 플래시 메모리의 페이지(page) 단위를 가지며, 상기 블록은 복수의 페이지로 구성됨-가 쓰기(write)되는 시간과 상기 쓰기(write)된 데이터가 쓰기(write)된 이후 업데이트된 시간을 비교하여 상기 데이터의 타입을 핫 데이터(hot data)와 콜드 데이터(cold data)로 구분하는 단계; 및
플래시 드라이브에서 상기 구분된 데이터 타입을 기준으로 같은 데이터 타입을 가진 테이터끼리 구분하여 저장하는 단계를 포함하되,
상기 플래시 메모리 컨트롤러에서 상기 핫 데이터의 데이터 유지 시간(retention time)이 상기 콜드 데이터의 데이터 유지 시간보다 단축시켜 설정하는 것을 특징으로 하는 플래시 메모리 제어 방법.
A flash memory control method in a flash memory system erased in block units,
Wherein the data in the block unit in a flash memory controller has a page unit of a flash memory and the block is composed of a plurality of pages and a time when the write data is written comparing the updated time since the data was written and dividing the data type into hot data and cold data; And
And storing the data having the same data type in the flash drive separately from each other based on the separated data type,
Wherein the data retention time of the hot data is shorter than the data retention time of the cold data in the flash memory controller.
제20항에 있어서,
상기 구분하는 단계는,
상기 플래시 메모리 컨트롤러에서 상기 블록 단위로 상기 데이터가 쓰기(write)되는 시간을 매핑 테이블에 기록하는 단계; 및
상기 플래시 메모리 컨트롤러에서 상기 데이터가 쓰기(write)되는 시간과 상기 업데이트된 시간 간의 차이를 구하여 상기 설정된 핫 데이터의 데이터 유지 시간과 비교하는 단계를 포함하되,
상기 비교하는 단계에서의 비교 결과, 상기 업데이트된 시간 간의 차이값이 상기 설정된 핫 데이터의 데이터 유지 시간보다 작은 경우 핫 데이터로 분류하고, 상기 업데이트된 시간 간의 차이값이 상기 설정된 핫 데이터의 데이터 유지 시간 이상인 경우 상기 콜드 데이터로 분류하는 것을 특징으로 하는 플래시 메모리 제어 방법.
21. The method of claim 20,
Wherein the distinguishing step comprises:
Writing in the mapping table the time at which the data is written in the block unit in the flash memory controller; And
Determining a difference between a time at which the data is written in the flash memory controller and the updated time, and comparing the updated data with a data retention time of the set hot data,
And if the difference value between the updated time is less than the data retention time of the set hot data, the difference data is classified into hot data, The flash memory is classified into the cold data.
제20항에 있어서,
상기 저장하는 단계는,
상기 구분된 핫 데이터를 핫 데이터의 저장 영역인 핫 블록 풀에 저장하고, 상기 콜드 데이터를 콜드 데이터의 저장 영역인 콜드 블록 풀에 저장하는 것을 특징으로 하는 플래시 메모리 제어 방법.
21. The method of claim 20,
Wherein the storing step comprises:
Storing the separated 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 the cold data.
제20항에 있어서,
상기 플래시 드라이브의 저장 공간 대비 상기 핫 데이터의 저장 영역의 크기의 비율을 고려하여 상기 핫 데이터의 저장 영역의 크기의 비율이 소정값 이하인 경우 상기 핫 데이터의 저장 영역의 크기와 상기 핫 데이터의 데이터 유지 시간을 조절하는 단계를 더 포함하는 플래시 메모리 제어 방법.
21. The method of claim 20,
The size of the storage area of the hot data and the size of the storage area of the hot data when the ratio of the size of the storage area of the hot data to the storage area of the flash drive is less than a predetermined value, Further comprising the step of adjusting the time.
블록 단위로 삭제(erase)되는 플래시 메모리 시스템에 있어서,
상기 블록 단위로 데이터-상기 데이터는 플래시 메모리의 페이지(page) 단위를 가지며, 상기 블록은 복수의 페이지로 구성됨-가 쓰기(write)되는 시간과 상기 쓰기(write)된 데이터가 쓰기(write)된 이후 업데이트된 시간을 비교하여 상기 데이터의 타입을 핫 데이터(hot data)와 콜드 데이터(cold data)로 구분하는 플래시 메모리 컨트롤러; 및
적어도 하나의 플래시 메모리를 구비하고, 상기 구분된 데이터 타입을 기준으로 같은 데이터 타입을 가진 테이터끼리 구분하여 저장하는 플래시 드라이브를 포함하되,
상기 플래시 메모리 컨트롤러에서 상기 핫 데이터의 데이터 유지 시간(retention time)이 상기 콜드 데이터의 데이터 유지 시간보다 단축시켜 설정하는 것을 특징으로 하는 플래시 메모리 시스템.
In a flash memory system erased in units of blocks,
Wherein data is written in units of blocks, the data having a page unit of a flash memory, the block being composed of a plurality of pages, and a write- A flash memory controller for comparing the updated time with the hot data and the cold data by dividing the data type into hot data and cold data; And
And a flash drive having at least one flash memory and storing the data having the same data type separately based on the separated data type,
Wherein the data retention time of the hot data is shorter than the data retention time of the cold data in the flash memory controller.
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 true KR20190061426A (en) 2019-06-05
KR102113212B1 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
CN110727406A (en) * 2019-10-10 2020-01-24 深圳力维智联技术有限公司 Data storage scheduling method and device
CN113779426A (en) * 2020-06-10 2021-12-10 深圳云天励飞技术有限公司 Data storage method and device, terminal equipment and storage medium

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11681456B2 (en) * 2021-05-19 2023-06-20 Huawei Cloud Computing Technologies Co., Ltd. Compaction policies for append-only stores
KR20230018215A (en) * 2021-07-29 2023-02-07 삼성전자주식회사 Storage device, storage controller and operating method of storage controller
KR20230139248A (en) 2022-03-25 2023-10-05 에스케이하이닉스 주식회사 Memory controller and memory system including the same

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080030756A (en) * 2006-10-02 2008-04-07 삼성전자주식회사 Device driver and method for effectively managing a flash memory file system
KR20120079023A (en) * 2011-01-03 2012-07-11 애플 인크. 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
KR20140101690A (en) * 2013-02-10 2014-08-20 엘에스아이 코포레이션 Retention-drift-history-based non-volatile memory read threshold optimization
US9496043B1 (en) * 2015-06-24 2016-11-15 International Business Machines Corporation Dynamically optimizing flash data retention or endurance based on data write frequency

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080030756A (en) * 2006-10-02 2008-04-07 삼성전자주식회사 Device driver and method for effectively managing a flash memory file system
KR20120079023A (en) * 2011-01-03 2012-07-11 애플 인크. 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
KR20140101690A (en) * 2013-02-10 2014-08-20 엘에스아이 코포레이션 Retention-drift-history-based non-volatile memory read threshold optimization
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
CN110727406A (en) * 2019-10-10 2020-01-24 深圳力维智联技术有限公司 Data storage scheduling method and device
CN110727406B (en) * 2019-10-10 2024-05-17 深圳力维智联技术有限公司 Data storage scheduling method and device
CN113779426A (en) * 2020-06-10 2021-12-10 深圳云天励飞技术有限公司 Data storage method and device, terminal equipment and storage medium

Also Published As

Publication number Publication date
KR102113212B1 (en) 2020-05-20

Similar Documents

Publication Publication Date Title
US11593259B2 (en) Directed sanitization of memory
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)
US9507711B1 (en) Hierarchical FTL mapping optimized for workload
EP2382547B1 (en) Logical address offset
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
KR102113212B1 (en) Flash memory system and control method thereof
KR101467939B1 (en) Variable over­provisioning for non­volatile storage
KR101759811B1 (en) Memory controller, method, and solid state memory system for formatting solid state memory
US10360144B2 (en) Storage apparatus and non-volatile memory device including a controller to selectively compress data based on an update frequency level
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
US20160004644A1 (en) Storage Controller and Method for Managing Modified Data Flush Operations From a Cache
US11669461B2 (en) Logical to physical table fragments
CN114730300A (en) Enhanced file system support for zone namespace storage
US20140325168A1 (en) Management of stored data based on corresponding attribute data
CN111984441B (en) Instant power-off recovery processing method and device and computer readable storage medium
US10891057B1 (en) Optimizing flash device write operations
CN114327240A (en) Computer readable storage medium, data storage method and device of flash memory
TWI754396B (en) Method and apparatus and computer program product for storing data in flash memory
KR20160119607A (en) Data storage device and operating method thereof
CN111309642B (en) Memory, control method thereof and memory system
KR20220130526A (en) Memory system and operating method thereof
KR20230040057A (en) Apparatus and method for improving read performance in a system

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