KR101554550B1 - Memory management apparatus and control method thereof - Google Patents

Memory management apparatus and control method thereof Download PDF

Info

Publication number
KR101554550B1
KR101554550B1 KR1020140033020A KR20140033020A KR101554550B1 KR 101554550 B1 KR101554550 B1 KR 101554550B1 KR 1020140033020 A KR1020140033020 A KR 1020140033020A KR 20140033020 A KR20140033020 A KR 20140033020A KR 101554550 B1 KR101554550 B1 KR 101554550B1
Authority
KR
South Korea
Prior art keywords
data
memory
data segment
segment
memory device
Prior art date
Application number
KR1020140033020A
Other languages
Korean (ko)
Inventor
류준길
Original Assignee
에스케이텔레콤 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이텔레콤 주식회사 filed Critical 에스케이텔레콤 주식회사
Priority to KR1020140033020A priority Critical patent/KR101554550B1/en
Application granted granted Critical
Publication of KR101554550B1 publication Critical patent/KR101554550B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

The present invention discloses a technology capable of not only improving a whole performance of a storage system, but also minimizing IO overhead caused by data scrubbing by performing a garbage collection which is performed in a flash-based device like a SSD necessarily and the data scrubbing which is performed to improve data reliability based on a storage system. A memory control device includes: a data reading unit for reading a particular data segment recorded in a memory device when a garbage collection performing event occurs; a defect state determining unit for determining a data defect state related to the particular data segment while reading the particular data segment; and a memory control unit for recording after restoring particular data once the particular data, determined as a data defect among effective data by reflecting a result of the data defect state determination, is verified when performing the garbage collection, which records valid data with respect to the particular data segment in another position in the memory device.

Description

메모리제어장치 및 메모리제어장치의 동작 방법{MEMORY MANAGEMENT APPARATUS AND CONTROL METHOD THEREOF}[0001] MEMORY MANAGEMENT APPARATUS AND CONTROL METHOD THEREOF [0002]

본 발명은, 다수의 플래시 기반 SSD로 구성된 스토리지 시스템에 관한 것으로, 더욱 상세하게는, SSD와 같은 플래시기반 디바이스에서 필수적으로 수행되는 가비지 콜렉션(Garbage Collection)과 데이터 신뢰성 향상을 위해 수행되는 데이터 스크러빙을 스토리지 시스템 기반으로 수행함으로써, 스토리지 시스템 전체 성능을 향상시킬 뿐만 아니라 데이터 스크러빙으로 인한 IO 오버헤드를 최소화할 수 있는 기술에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a storage system configured with a plurality of flash-based SSDs, and more particularly, to a storage system configured by a garbage collection which is essentially performed in a flash-based device such as an SSD and data scrubbing The present invention relates to a technique capable of minimizing IO overhead due to data scrubbing as well as enhancing overall performance of a storage system by performing a storage system based operation.

최근에는, HDD(Hard Disk Drive) 대비 성능이 향상된 SSD(Solid State Drive)가 널리 사용되기 시작하면서, 다수의 플래시 기반 SSD를 채택한 스토리지(Storage) 시스템을 구성하여 네트워크를 통해 데이터 서비스를 제공하고 있다. Recently, SSD (Solid State Drive) with improved performance compared to HDD (Hard Disk Drive) has been widely used, and a storage system adopting a plurality of flash-based SSDs has been configured to provide data service through a network .

그 예로서, 스토리지 시스템이 단순하게 블록 수준의 스토리지 서비스를 지원하여 데이터 서비스를 제공할 수 있도록 하는 SAN(Storage Area Network) / NAS (Network Attached Storage) 역할을 담당할 수 있고, 또는 스토리지 시스템 내부에 응용서버를 운용해서 직접 데이터 서비스(예 : DB, 웹 서비스)제공할 수도 있다.For example, a storage system may serve as a SAN (Storage Area Network) / NAS (Network Attached Storage) to provide a data service by simply supporting a block-level storage service, It can also provide data services directly (eg DB, Web service) by operating an application server.

이러한 스토리지 시스템에서는, 기록(저장)된 데이터의 신뢰성을 보장하는 것이 매우 중요하다.In such a storage system, it is very important to ensure the reliability of recorded (stored) data.

이에, 스토리지 시스템에서 데이터의 신뢰성 보장을 위해 채용하고 있는 기술로는, 데이터 스크러빙 기술이 있다.Accordingly, a data scrubbing technique is employed as a technique employed for ensuring data reliability in a storage system.

헌데, 기존의 데이터 스크러빙 방식은, 스토리지 시스템에서 저장 매체 (디스크, 플래시 메모리)에 저장된 데이터 모두에 대하여 주기적으로 데이터 스크러빙을 수행하기 때문에, 이로 인한 IO 오버헤드가 발생하여 스토리지 시스템의 성능이 저하되는 문제점이 있다.However, since the conventional data scrubbing method periodically performs data scrubbing on all the data stored in the storage medium (disk, flash memory) in the storage system, the performance of the storage system deteriorates due to the occurrence of the IO overhead There is a problem.

한편, SSD와 같은 플래시기반 디바이스의 경우는, 플래시 메모리의 특성으로 인해, 플래시 메모리 내부에 기록되어 있는 유효하지 않은 데이터를 정리함으로써 낭비되는 플래시 메모리(페이지)를 사용 가능한 플래시 메모리 영역으로서 확보(회수)하기 위한 가비지 콜렉션(Garbage Collection) 기능을 가지고 있다. On the other hand, in the case of a flash-based device such as an SSD, a flash memory (page) which is wasted by arranging invalid data recorded in the flash memory due to the characteristics of the flash memory is secured as a usable flash memory area (Garbage Collection) function.

헌데, 이러한 가비지 콜렉션 기능을 수행하기 위해서는, 플래시기반 디바이스 내에서 데이터를 읽고 쓰는 동작(IO)이 필수적으로 발생한다. 그러나 이러한 디바이스 내부 IO는 디바이스 외부에서 보기에 성능을 저하시키는 문제를 발생시킨다.However, in order to perform this garbage collection function, an operation (IO) of reading and writing data in a flash-based device is indispensable. However, the internal IO of such a device causes a problem of deterioration in performance from the outside of the device.

이에, 본 발명에서는, SSD와 같은 플래시기반 디바이스에서 필수적으로 수행되는 가비지 콜렉션과 데이터 신뢰성 향상을 위해 수행되는 데이터 스크러빙을 스토리지 시스템 기반으로 수행함으로써, 스토리지 시스템 전체 성능을 향상시킬 뿐만 아니라 데이터 스크러빙으로 인한 IO 오버헤드를 최소화 할 수 있는 방안을 제안하고자 한다.Therefore, in the present invention, data scrubbing performed for enhancing garbage collection and data reliability, which are essentially performed in a flash-based device such as an SSD, is performed based on a storage system, thereby improving overall performance of the storage system, We propose a method to minimize IO overhead.

본 발명은 상기한 사정을 감안하여 창출된 것으로서, 본 발명에서 도달하고자 하는 목적은 SSD와 같은 플래시기반 디바이스에서 필수적으로 수행되는 가비지 콜렉션과 데이터 신뢰성 향상을 위해 수행되는 데이터 스크러빙을 스토리지 시스템 기반으로 수행함으로써, 스토리지 시스템 전체 성능을 향상시킬 뿐만 아니라 데이터 스크러빙으로 인한 IO 오버헤드를 최소화 하고자 한다.SUMMARY OF THE INVENTION The present invention has been made in view of the above circumstances, and it is an object of the present invention to provide data scrubbing, which is performed in order to improve garbage collection and data reliability, Thereby improving overall performance of the storage system and minimizing IO overhead due to data scrubbing.

상기 목적을 달성하기 위한 본 발명의 제 1 관점에 따른 메모리제어장치는, 메모리장치에 대한 가비지 콜렉션(Garbage Collection) 수행 이벤트가 발생하면, 상기 메모리장치에 기록된 특정 데이터세그먼트를 리드(Read)하는 데이터리드부; 상기 특정 데이터세그먼트를 리드하는 중에, 상기 특정 데이터세그먼트에 대한 데이터 결함 여부를 판단하는 결함여부판단부; 및 상기 데이터 결함 여부를 판단한 결과를 반영하여, 상기 특정 데이터세그먼트에 대하여 가비지 콜렉션을 수행하는 메모리제어부를 포함한다.According to a first aspect of the present invention, there is provided a memory control apparatus for reading a specific data segment recorded in the memory device when a garbage collection performing event for a memory device occurs A data lead portion; A defect determination unit for determining whether a data defect is present in the specific data segment during the reading of the specific data segment; And a memory controller for performing garbage collection on the specific data segment by reflecting a result of determining whether the data is defective.

바람직하게는, 상기 메모리장치는, 다수의 플래시 기반 메모리칩을 포함하며, 상기 메모리칩은, SSD(Solid State Drive)일 수 있다. Advantageously, the memory device comprises a plurality of flash-based memory chips, and the memory chips may be a solid state drive (SSD).

바람직하게는, 상기 특정 데이터세그먼트는, 상기 메모리장치 내 다수의 메모리칩에 분산 기록된 2 이상의 데이터와, 상기 2 이상의 데이터 각각에 대하여 상기 분산 기록 시에 계산된 해시값으로 구성될 수 있다. Preferably, the specific data segment may be composed of two or more pieces of data distributedly recorded in a plurality of memory chips in the memory device, and a hash value calculated in the distributed recording for each of the two or more pieces of data.

바람직하게는, 상기 결함여부판단부는, 상기 데이터리드부에서 순차적으로 리드 중인 상기 2 이상의 데이터 각각에 대한 해시값을 계산하고, 상기 2 이상의 데이터 별로, 상기 계산한 해시값이 상기 특정 데이터 세그먼트 내 해시값과 상이한지 여부를 판단하여 상이한 경우 데이터 결함으로 판단할 수 있다. Preferably, the defect determination unit may calculate a hash value for each of the two or more data being sequentially read by the data lead unit, and for each of the two or more data, the calculated hash value is stored in the hash value And if it is different, it can be judged as a data defect.

바람직하게는, 상기 특정 데이터세그먼트에는, 상기 메모리장치 내 다수의 메모리칩에 분산 기록된 2 이상의 데이터가 포함되고, 상기 메모리제어부는, 상기 2 이상의 데이터 중에서 유효한 데이터를 선별하고, 상기 데이터 결함 여부를 판단한 결과를 반영하여 상기 유효한 데이터 중 데이터 결함으로 판단된 특정 데이터가 확인되는 경우 상기 특정 데이터를 복구한 후, 유효한 데이터를 포함하는 새로운 데이터세그먼트를 구성하여 상기 메모리장치에 기록할 수 있다. Preferably, the specific data segment includes two or more data distributedly recorded in a plurality of memory chips in the memory device, and the memory control unit selects valid data from the two or more data, If the specific data determined as a data defect among the valid data is confirmed by reflecting the determined result, a new data segment including valid data may be restored and recorded in the memory device after recovering the specific data.

바람직하게는, 상기 메모리장치에는, 상기 특정 데이터세그먼트와 동일한 원본 또는 복제 데이터세그먼트가 기록되어 있으며, 상기 메모리제어부는, 상기 특정 데이터를 상기 원본 또는 복제 데이터세그먼트의 상기 특정 데이터와 대응되는 대응 데이터로 대체하여, 상기 특정 데이터를 복구할 수 있다. Preferably, the memory device stores the same original or duplicate data segment as the specific data segment, and the memory control unit stores the specific data as corresponding data corresponding to the specific data of the original or duplicated data segment Alternatively, the specific data can be recovered.

바람직하게는, 상기 새로운 데이터세그먼트는, 상기 유효한 데이터가 상기 메모리장치 내 다수의 메모리칩 중 상기 가비지 콜렉션을 수행하기 이전에 기록되어 있던 메모리칩에 기록되도록 구성될 수 있다.Advantageously, the new data segment can be configured such that the valid data is written to a memory chip in which a plurality of memory chips in the memory device had been written before performing the garbage collection.

바람직하게는, 상기 결함여부판단부는, 일정 시간이 경과하도록 상기 메모리장치에서 상기 가비지 콜렉션이 수행되지 않는 데이터세그먼트에 대해서는, 상기 메모리장치로부터 리드하여 데이터 결함 여부 만을 별도로 판단할 수 있다.Preferably, the defect determination unit may determine whether a data segment in which the garbage collection is not performed in the memory device is read from the memory device to determine whether or not a data defect exists, so that a predetermined time elapses.

상기 목적을 달성하기 위한 본 발명의 제 2 관점에 따른 메모리제어장치의 동작 방법은, 메모리장치에 대한 가비지 콜렉션 수행 이벤트가 발생하면, 상기 메모리장치에 기록된 특정 데이터세그먼트를 리드(Read)하는 데이터리드단계; 상기 특정 데이터세그먼트를 리드하는 중에, 상기 특정 데이터세그먼트에 대한 데이터 결함 여부를 판단하는 결함여부판단단계; 및 상기 데이터 결함 여부를 판단한 결과를 반영하여, 상기 특정 데이터세그먼트에 대하여 가비지 콜렉션을 수행하는 가비지콜렉션제어단계를 포함한다.According to a second aspect of the present invention, there is provided a method for operating a memory controller, the method comprising: when a garbage collection execution event for a memory device occurs, data for reading a specific data segment recorded in the memory device Lead stage; Determining whether a data defect is present in the specific data segment during the reading of the specific data segment; And a garbage collection control step of performing garbage collection on the specific data segment by reflecting a result of determining whether the data is defective.

바람직하게는, 상기 특정 데이터세그먼트에는, 상기 메모리장치 내 다수의 메모리칩에 분산 기록된 2 이상의 데이터가 포함되고, 상기 가비지콜렉션제어단계는, 상기 2 이상의 데이터 중에서 유효한 데이터를 선별하고, 상기 데이터 결함 여부를 판단한 결과를 반영하여 상기 유효한 데이터 중 데이터 결함으로 판단된 특정 데이터가 확인되는 경우 상기 특정 데이터를 복구한 후, 유효한 데이터를 포함하는 새로운 데이터세그먼트를 구성하여 상기 메모리장치에 기록할 수 있다. Preferably, the specific data segment includes two or more pieces of data distributedly recorded in a plurality of memory chips in the memory device, and the garbage collection control step may include selecting valid data from the two or more pieces of data, And if the specific data determined as a data defect among the valid data is identified, the new data segment including the valid data may be restored to the memory device after restoring the specific data.

바람직하게는, 상기 메모리장치에는, 상기 특정 데이터세그먼트와 동일한 원본 또는 복제 데이터세그먼트가 기록되어 있으며, 상기 가비지콜렉션제어단계는, 상기 특정 데이터를 상기 원본 또는 복제 데이터세그먼트의 상기 특정 데이터와 대응되는 대응 데이터로 대체하여, 상기 특정 데이터를 복구할 수 있다.Preferably, the memory device records the same original or duplicate data segment as the specific data segment, and the garbage collection control step stores the specific data in correspondence with the specific data of the original or duplicated data segment Data can be replaced with data to recover the specific data.

이에, 본 발명의 메모리제어장치 및 메모리제어장치의 동작 방법에 의하면, SSD와 같은 플래시기반 디바이스에서 필수적으로 수행되는 가비지 콜렉션과 데이터 신뢰성 향상을 위해 수행되는 데이터 스크러빙을 스토리지 시스템 기반으로 수행함으로써, 스토리지 시스템 전체 성능을 향상시킬 뿐만 아니라 데이터 스크러빙으로 인한 IO 오버헤드를 최소화 할 수 있는 효과를 도출한다.According to the memory control device and the operation method of the memory control device of the present invention, data scrubbing performed for enhancing garbage collection and data reliability, which are essentially performed in a flash-based device such as an SSD, Not only improves the overall performance of the system but also minimizes the IO overhead due to data scrubbing.

도 1은 본 발명의 바람직한 실시예에 따른 메모리제어장치가 포함된 스토리지 시스템의 구성을 간략하게 보여주는 구성도이다.
도 2는 본 발명의 바람직한 실시예에 따른 메모리제어장치를 구체적으로 보여주는 블록도이다.
도 3은 본 발명의 바람직한 실시예에 따른 메모리제어장치의 동작 방법을 나타내는 동작 흐름도이다.
도 4 및 도 5는 본 발명의 바람직한 실시예에 따라서 특정 데이터세그먼트에 대하여 가비지 콜렉션 및 데이터 스크러빙을 수행하는 과정을 보여주는 예시도이다.
1 is a block diagram illustrating a configuration of a storage system including a memory controller according to a preferred embodiment of the present invention.
2 is a block diagram illustrating a memory control apparatus according to an exemplary embodiment of the present invention.
3 is a flowchart illustrating an operation method of a memory control apparatus according to a preferred embodiment of the present invention.
FIGS. 4 and 5 illustrate a process of performing garbage collection and data scrubbing on a specific data segment according to a preferred embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 설명한다.Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying drawings.

먼저, 도 1을 참조하여 본 발명의 바람직한 실시예에 따른 메모리제어장치가 포함된 스토리지 시스템의 구성을 설명하겠다.First, a configuration of a storage system including a memory controller according to a preferred embodiment of the present invention will be described with reference to FIG.

도 1에 도시된 바와 같이, 스토리지 시스템은, 저장공간으로서의 메모리장치(10)와, 메모리장치(10)로의 메모리연산을 시도하는 파일시스템 또는 어플리케이션(이하, 파일시스템(200)이라 함)과, 파일시스템(200) 및 메모리장치(10) 사이에서 메모리장치(10)를 제어하는 메모리제어장치(100)를 포함한다.1, the storage system includes a memory device 10 as a storage space, a file system or application (hereinafter referred to as a file system 200) for attempting memory operation to the memory device 10, And a memory control device (100) for controlling the memory device (10) between the file system (200) and the memory device (10).

이때, 메모리장치(10)는 다수의 플래시 기반 메모리칩을 포함하며, 여기서 메모리칩은 SSD(Solid State Drive)와 같은 플래시기반 디바이스인 것이 바람직하다.At this time, the memory device 10 includes a plurality of flash-based memory chips, wherein the memory chip is preferably a flash-based device such as a solid state drive (SSD).

즉, 메모리장치(10)는, 도 1에 도시된 바와 같이, 다수의 플래시 기반 메모리칩 즉 다수의 플래시 기반 SSD로 구성된다.That is, the memory device 10 is composed of a plurality of flash-based memory chips, that is, a plurality of flash-based SSDs, as shown in Fig.

그리고, 메모리장치(10)는, 메모리칩 즉 SSD를 일정 개수로 그룹핑하여 메모리그룹으로 운영하는 중복 알고리즘(예 : RAID(Redundant Array of Independent Disks) 알고리즘)을 채용할 수 있다.The memory device 10 may employ a redundant algorithm (for example, a Redundant Array of Independent Disks (RAID) algorithm) for grouping memory chips, that is, SSDs, into a predetermined number of memory groups.

이하에서는, 메모리장치(10)에서 RAID 알고리즘을 채용하는 것으로 설명하도록 하겠다.Hereinafter, it will be described that the memory device 10 employs a RAID algorithm.

메모리제어장치(100)는, 파일시스템(200) 및 메모리장치(10) 사이에서 메모리장치(10)를 제어하는 제어모듈 또는 제어 소프트웨어일 수 있다.The memory control device 100 may be a control module or control software that controls the memory device 10 between the file system 200 and the memory device 10. [

현재는, 전술과 같이 다수의 플래시 기반 SSD를 채용한 스토리지 시스템을 하나의 어레이로 하여 여러 개의 어레이 즉 스토리지 시스템을 구비한 메모리 어레이 시스템을 구축하여, 네트워크(미도시)를 통해 외부의 클라이언트컴퓨터(미도시)로 데이터 서비스를 제공하기도 한다.Currently, a memory array system having a plurality of arrays, that is, a storage system, is constructed by using a storage system employing a plurality of flash-based SSDs as described above as an array, and an external client computer Not shown) to provide data services.

이러한 스토리지 시스템에서는, 기록(저장)된 데이터의 신뢰성을 보장하는 것이 매우 중요하다.In such a storage system, it is very important to ensure the reliability of recorded (stored) data.

이에, 스토리지 시스템에서 데이터의 신뢰성 보장을 위해 채용하고 있는 기술로는, 데이터 스크러빙 기술이 있다.Accordingly, a data scrubbing technique is employed as a technique employed for ensuring data reliability in a storage system.

데이터 스크러빙 기술은, 데이터를 메모리에 저장(기록)할 때, 해당 데이터에 대한 데이터 해시값을 계산하여 저장해두고, 이후 메모리에 저장된 데이터를 주기적으로 읽어 들여 해시값을 계산하고 기 저장해둔 해시값과 비교함으로써, 데이터의 결함 여부를 검증(판단)하는 기술이다.The data scrubbing technique calculates and stores the data hash value for the data when the data is stored in the memory, and then reads the data stored in the memory periodically to calculate the hash value, (Judging) whether data is defective or not.

헌데, 기존의 데이터 스크러빙 방식은, 스토리지 시스템에서 메모리에 저장된 데이터 모두에 대하여 주기적으로 데이터 스크러빙을 수행하기 때문에, 이로 인한 IO 오버헤드가 발생하여 메모리 성능이 저하되는 문제점이 있다.However, since the conventional data scrubbing method periodically performs data scrubbing for all the data stored in the memory in the storage system, the IO overhead is caused thereby, and the memory performance is deteriorated.

한편, SSD와 같은 플래시기반 디바이스의 경우는, 플래시 메모리의 특성으로 인해, 플래시 메모리 내부에 기록되어 있는 유효하지 않은 데이터를 정리함으로써 낭비되는 플래시 메모리(페이지)를 사용 가능한 플래시 메모리 영역으로서 확보(회수)하기 위한 가비지 콜렉션(Garbage Collection) 기능을 가지고 있다. On the other hand, in the case of a flash-based device such as an SSD, a flash memory (page) which is wasted by arranging invalid data recorded in the flash memory due to the characteristics of the flash memory is secured as a usable flash memory area (Garbage Collection) function.

헌데, 이러한 가비지 콜렉션 기능을 수행하기 위해서는, 플래시기반 디바이스 내에서 데이터를 읽고 쓰는 동작(IO)이 필수적으로 발생한다. 그러나 이러한 디바이스 내부 IO는, 디바이스 외부에서 보기에 성능을 저하시키는 문제를 발생시킨다.However, in order to perform this garbage collection function, an operation (IO) of reading and writing data in a flash-based device is indispensable. However, such an internal IO of the device causes a problem of deteriorating the performance from the outside of the device.

이에, 본 발명에서는, SSD와 같은 플래시기반 디바이스에서 필수적으로 수행되는 가비지 콜렉션과 데이터 신뢰성 향상을 위해 수행되는 데이터 스크러빙을 스토리지 시스템 기반으로 수행함으로써, 스토리지 시스템 전체 성능을 향상시킬 뿐만 아니라 데이터 스크러빙으로 인한 IO 오버헤드를 최소화 할 수 있는 방안을 제안하고자 하며, 구체적으로 이를 실현하는 메모리제어장치를 제안하고자 한다.Therefore, in the present invention, data scrubbing performed for enhancing garbage collection and data reliability, which are essentially performed in a flash-based device such as an SSD, is performed based on a storage system, thereby improving overall performance of the storage system, We propose a method to minimize IO overhead, and specifically, we propose a memory control device that realizes this.

이하에서는, 도 2를 참조하여 본 발명의 바림직한 실시예에 따른 메모리제어장치를 구체적으로 설명하도록 한다. 설명의 편의를 위해서, 전술한 도 1에서 대응되는 메모리제어장치(100)의 참조번호를 이용하여 설명하도록 하겠다.Hereinafter, a memory control apparatus according to an embodiment of the present invention will be described in detail with reference to FIG. For convenience of explanation, the description will be made using the reference numeral of the memory control device 100 corresponding to FIG. 1 described above.

본 발명에 따른 메모리제어장치(100)는, 메모리장치(10)에 대한 가비지 콜렉션 수행 이벤트가 발생하면, 메모리장치(10)에 기록된 특정 데이터세그먼트를 리드(Read)하는 데이터리드부(110)와, 상기 특정 데이터세그먼트를 리드하는 중에, 상기 특정 데이터세그먼트에 대한 데이터 결함 여부를 판단하는 결함여부판단부(120)와, 상기 데이터 결함 여부를 판단한 결과를 반영하여, 상기 특정 데이터세그먼트에 대하여 가비지 콜렉션을 수행하는 메모리제어부(130)를 포함한다.The memory control apparatus 100 according to the present invention includes a data read unit 110 for reading a specific data segment recorded in the memory device 10 when a garbage collection execution event for the memory device 10 occurs, A defect judgment unit 120 for judging whether or not a data defect exists in the specific data segment while reading the specific data segment; and a defect judgment unit 120 for judging whether or not the specific data segment is defective, And a memory control unit 130 for performing a collection.

이때, 메모리장치(10)는 다수의 플래시 기반 메모리칩을 포함하며, 여기서 메모리칩은 SSD(Solid State Drive)와 같은 플래시기반 디바이스인 것이 바람직하다.At this time, the memory device 10 includes a plurality of flash-based memory chips, wherein the memory chip is preferably a flash-based device such as a solid state drive (SSD).

즉, 메모리장치(10)는, 도 1에 도시된 바와 같이, 다수의 플래시 기반 메모리칩 즉 다수의 플래시 기반 SSD로 구성된다. 이하에서는, 설명의 편의를 위해, 메모리칩과 SSD를 혼용하여 설명할 수 있다.That is, the memory device 10 is composed of a plurality of flash-based memory chips, that is, a plurality of flash-based SSDs, as shown in Fig. Hereinafter, for convenience of explanation, a memory chip and an SSD can be used in combination.

그리고, 메모리장치(10)는, 메모리칩 즉 SSD를 일정 개수(예 : 4개)로 그룹핑하여 메모리그룹으로 운영하는 중복 알고리즘(예 : RAID(Redundant Array of Independent Disks) 알고리즘)을 채용할 수 있다. 이하에서는, 메모리장치(10)에서 RAID 알고리즘을 채용하는 것으로 설명하도록 하겠다.The memory device 10 may employ a redundant algorithm (e.g., RAID (Redundant Array of Independent Disks) algorithm) in which memory chips, i.e., SSDs, are grouped into a certain number . Hereinafter, it will be described that the memory device 10 employs a RAID algorithm.

따라서, 본 발명에 따른 메모리제어장치(100)는, 다수의 플래시 기반 SSD로 구성된 메모리장치(10)를 제어하는 메모리제어장치로서, 제어모듈 또는 제어 소프트웨어의 형태일 수 있으며, 메모리장치(10)를 제어하기 위해 필요한 저장공간(예 : 데이터세그먼트 버퍼, GC Gathering Queue 등)을 내부에 보유할 수 있다.The memory control device 100 according to the present invention may be in the form of a control module or control software for controlling a memory device 10 composed of a plurality of flash based SSDs, (E.g., a data segment buffer, a GC Gathering Queue, etc.) necessary to control the application.

데이터리드부(110)는, 메모리장치(10)에 대한 가비지 콜렉션 수행 이벤트가 발생하면, 메모리장치(10)에 기록된 특정 데이터세그먼트를 리드(Read)한다.The data read unit 110 reads a specific data segment recorded in the memory device 10 when a garbage collection execution event for the memory device 10 occurs.

가비지 콜렉션은 메모리장치(10)에서 사용 가능한 메모리 영역이 부족할 때마다 수행되며, 전술의 가비지 콜렉션 수행 이벤트는 메모리장치(10)에서 사용 가능한 메모리 영역이 부족하다고 판단되는 것을 의미할 수 있다.The garbage collection may be performed whenever there is insufficient memory available in the memory device 10, and the above-described garbage collection execution event may mean that the memory device 10 is judged to be deficient in the available memory area.

즉, 예를 들면, 메모리제어장치(100)는, 메모리장치(10) 내에 일정한 임계 수준(이하, GC 임계값) 이상의 데이터가 기록되는지 여부를 모니터링하여, GC 임계값 이상의 데이터가 기록되는 경우, 메모리장치(10)에서 사용 가능한 메모리 영역이 부족하다고 판단하여, 가비지 콜렉션 수행 이벤트가 발생한 것으로 판단할 수 있다. That is, for example, the memory control device 100 monitors whether or not data exceeding a predetermined threshold level (hereinafter referred to as a GC threshold value) is recorded in the memory device 10, and when data exceeding the GC threshold value is recorded, It can be determined that a memory area usable in the memory device 10 is insufficient and that a garbage collection execution event has occurred.

이 경우, 메모리제어장치(100)는, 메모리장치(10)에 대한 가비지 콜렉션 기능을 실행시켜 수행하게 된다.In this case, the memory control device 100 executes the garbage collection function for the memory device 10.

전술과 같이, 메모리장치(10)는, 다수의 플래시 메모리(페이지)를 포함하는 메모리칩 즉 SSD를 다수 개 채용하고 있다.As described above, the memory device 10 employs a plurality of memory chips or SSDs including a plurality of flash memory (pages).

플래시 메모리에 대한 메모리연산 중 가장 기본적인 읽기/쓰기는 페이지 단위(예 : 4KB, 8KB, 16KB)로 수행되고, 쓰기는 반드시 데이터가 기록되어 있지 않은 상태의 페이지 즉 지워진 상태의 페이지에서 수행된다. 한편, 플래시 메모리에 대한 메모리연산 중 지우기는 여러 개의 페이지가 모인 블록 단위로 수행된다. 이처럼, 쓰기연산의 단위와 지우기의 단위가 다르기 때문에, SSD와 같은 플래시기반 디바이스로 구성된 메모리장치(10)에서는 가비지 콜렉션이 반드시 필요한 것이다.Among the memory operations for flash memory, the most basic read / write operations are performed in page units (eg, 4 KB, 8 KB, 16 KB), and write operations are performed on pages in which data is not necessarily written, ie, erased pages. On the other hand, erasing during the memory operation for the flash memory is performed in units of blocks in which a plurality of pages are gathered. As described above, since the write operation unit and the erase unit are different, the garbage collection is indispensable in the memory device 10 configured by the flash-based device such as the SSD.

메모리제어장치(100)는, 가비지 콜렉션 수행 이벤트가 발생하면, 메모리장치(10)에서 정리 대상이 되는 데이터(또는, 데이터세그먼트)를 선택하고, 선택한 데이터(또는, 데이터세그먼트)에 대하여 가비지 콜렉션을 수행한다. 여기서, 선택된 데이터(또는, 데이터세그먼트)를, Victim 데이터(또는, Victim 데이터세그먼트)라 한다.When the garbage collection execution event occurs, the memory control device 100 selects data (or data segment) to be rearranged in the memory device 10 and performs garbage collection on the selected data (or data segment) . Here, the selected data (or data segment) is referred to as victim data (or a victim data segment).

이때, 정리 대상이 되는 Victim 데이터(또는, Victim 데이터세그먼트)는, 유효하지 않은 데이터가 많은 데이터(또는, 데이터세그먼트)로서, 채용하고 있는 가비지 콜렉션 알고리즘에 따라서 선택되며, 이처럼 Victim 데이터(또는, Victim 데이터세그먼트)를 선택하는 것은 기존의 방식과 동일하므로 구체적인 설명을 생략하겠다.At this time, the victim data (or the victim data segment) to be rearranged is selected in accordance with the adopted garbage collection algorithm as data (or data segment) having a large amount of invalid data, and the victim data Data segment) is the same as that of the conventional method, so a detailed description will be omitted.

결국, 데이터리드부(110)는, 메모리장치(10)에 대한 가비지 콜렉션 수행 이벤트가 발생하면, 메모리장치(10)에 기록된 특정 데이터세그먼트 즉 전술과 같이 가비지 콜렉션에 의해서 선택되는 Victim 데이터세그먼트를 리드하게 된다.As a result, when the garbage collection execution event for the memory device 10 occurs, the data lead unit 110 stores the specific data segment recorded in the memory device 10, that is, the victim data segment selected by the garbage collection as described above Lead.

이는, 가비지 콜렉션 기능을 수행하기 위해서는, 메모리장치(10)에 저장된 데이터 즉 Victim 데이터세그먼트를 읽어오는 필수적인 동작이다.This is an essential operation for reading the data stored in the memory device 10, that is, the victim data segment, in order to perform the garbage collection function.

이하에서는, 설명의 편의를 위해 특정 데이터세그먼트를 Victim 데이터세그먼트로 언급하여 설명하겠다.Hereinafter, for convenience of description, a specific data segment will be referred to as a victim data segment.

결함여부판단부(120)는, 특정 데이터세그먼트 즉 Victim 데이터세그먼트를 리드하는 중에, Victim 데이터세그먼트에 대한 데이터 결함 여부를 판단한다.The defect judgment unit 120 judges whether or not there is a data defect with respect to the victim data segment while reading the specific data segment, that is, the victim data segment.

즉, 결함여부판단부(120)는, 전술과 같이 가비지 콜렉션이 수행됨에 따라 메모리장치(10)로부터 Victim 데이터세그먼트를 읽어 들이는 동작에 개입하여, Victim 데이터세그먼트를 읽어 오는 과정 중에서 Victim 데이터세그먼트에 대한 데이터 결함 여부를 판단하는 데이터 스크러빙을 수행하는 것이다.That is, the defect determination unit 120 intervenes in the operation of reading the victim data segment from the memory device 10 in accordance with the execution of the garbage collection as described above, and reads the victim data segment in the victim data segment And data scrubbing is performed to determine whether data is defective.

이하에서는, 가비지 콜렉션이 수행됨에 따라, Victim 데이터세그먼트를 읽어 오는 과정 중에서 Victim 데이터세그먼트에 대한 데이터 결함 여부를 판단하는 과정을 보다 구체적으로 설명하도록 하겠다.Hereinafter, a process of determining whether data is defective in the victim data segment during the process of reading the victim data segment as garbage collection is performed will be described in more detail.

데이터세그먼트는, 메모리장치(10) 내 다수의 메모리칩 즉 다수의 SSD에 분산 기록된 2 이상의 데이터와, 상기 2 이상의 데이터 각각에 대하여 상기 분산 기록 시에 계산된 해시값으로 구성된다.The data segment is composed of a plurality of memory chips in the memory device 10, that is, two or more pieces of data distributedly recorded in a plurality of SSDs, and a hash value calculated in the distributed recording for each of the two or more pieces of data.

따라서, 특정 데이터세그먼트 즉 Victim 데이터세그먼트 역시, 메모리장치(10) 내 다수의 SSD에 분산 기록된 2 이상의 데이터와, 2 이상의 데이터 각각에 대하여 상기 분산 기록 시에 계산된 해시값으로 구성될 것이다.Therefore, the specific data segment, i.e., the victim data segment, will also be composed of two or more data distributedly recorded in a plurality of SSDs in the memory device 10 and a hash value calculated in the distributed recording for each of the two or more data.

이러한 데이터세그먼트가 구성되는 과정을 도 4를 참조하여 설명하면, 다음과 같다.The process of configuring such a data segment will be described with reference to FIG.

예를 들어, 메모리제어장치(100)는, 메모리장치(10)에 대한 쓰기 요청이 수신될 때마다 쓰기 요청된 데이터를 데이터세그먼트 버퍼(미도시)에 순차 기록하면서, 데이터세그먼트 버퍼(미도시)가 Full 상태가 되면, 데이터세그먼트 버퍼(미도시)에 기록된 각 데이터 별로 해시값을 계산한다.For example, the memory control apparatus 100 sequentially writes data requested to be written to a data segment buffer (not shown) every time a write request for the memory device 10 is received, The hash value is calculated for each data recorded in the data segment buffer (not shown).

이에, 메모리제어장치(100)는, 데이터세그먼트 버퍼(미도시)에 순차 기록된 2 이상의 데이터와, 각 데이터 별로 계산한 해시값을 포함하는 데이터세그먼트를 구성할 수 있다. 이때, 해시값은 데이터세그먼트의 가장 마지막 부분에 포함된다.Thus, the memory control device 100 can constitute a data segment including two or more pieces of data sequentially recorded in a data segment buffer (not shown) and a hash value calculated for each piece of data. At this time, the hash value is included in the last part of the data segment.

이후, 메모리제어장치(100)는, 구성한 데이터세그먼트를 다수의 메모리칩에 분산 기록하게 된다.Thereafter, the memory control device 100 distributes the constituent data segments to a plurality of memory chips.

예를 들며, 도 4와 같이, RAID 알고리즘에 따라 4개의 메모리칩을 그룹으로 운영하며, 데이터1,2,3,4와 데이터1,2,3,4 별로 계산한 해시값(H_1, H_2, H_3, H_4)을 포함하는 데이터세그먼트A를 구성한 경우, 메모리제어장치(100)는, 구성한 데이터세그먼트A를 다수의 메모리칩 예컨대 4개의 메모리칩#0,#1,#2,#3에 걸쳐서 분산 기록할 수 있다. 이때, 도 4에서 H_A는, 데이터1,2,3,4 각각의 해시값 H_1, H_2, H_3, H_4을 포함하는 해시값을 의미한다.For example, as shown in FIG. 4, four memory chips are operated as a group according to a RAID algorithm, and hash values H_1, H_2, H_3, and H_4), the memory control device 100 distributes the data segment A thus configured to a plurality of memory chips, for example, four memory chips # 0, # 1, # 2, and # 3 Can be recorded. In this case, H_A in FIG. 4 denotes a hash value including the hash values H_1, H_2, H_3, and H_4 of the data 1, 2, 3, and 4, respectively.

그리고, 메모리제어장치(100)는, 데이터세그먼트A를 메모리장치(10) 예컨대 메모리칩#0,#1,#2,#3에 기록하는 과정에서, 데이터세그먼트A를 구성하고 있는 각 데이터1,2,3,4가 기록된 메모리위치를 맵핑테이블(미도시)에 저장함으로써 추후 데이터1 또는 2 또는 3 또는 4에 대한 읽기 요청이 수신될 경우 해당 데이터를 찾을 수 있도록 한다.Then, in the process of writing the data segment A to the memory device 10, for example, the memory chips # 0, # 1, # 2, and # 3, the memory control device 100 reads the data 1, 2, 3 or 4 is stored in a mapping table (not shown) so that the data can be found when a read request for data 1 or 2 or 3 or 4 is received.

더불어, 메모리제어장치(100)는, 도 4에 도시된 바와 같이, 데이터세그먼트A를 메모리장치(10) 예컨대 메모리칩#0,#1,#2,#3에 기록하는 경우, 데이터세그먼트A를 복제한 데이터세그먼트A'를 메모리장치(10)에 더 기록할 수 있다. 4, when the data segment A is recorded in the memory device 10, for example, the memory chips # 0, # 1, # 2, and # 3, the memory control device 100 stores the data segment A It is possible to further record the duplicated data segment A 'in the memory device 10.

이때, 메모리제어장치(100)는, 도 4에 도시된 바와 같이 원본 데이터세그먼트A를 기록한 메모리칩#0,#1,#2,#3에 데이터세그먼트A'를 기록할 수도 있고, 또는 원본 데이터세그먼트A와는 다른 메모리칩#4,#5,#6,#7에 데이터세그먼트A'를 기록할 수도 있다. At this time, the memory control device 100 may write the data segment A 'to the memory chips # 0, # 1, # 2, and # 3 on which the original data segment A is written as shown in FIG. 4, It is also possible to record the data segment A 'in the memory chips # 4, # 5, # 6, and # 7 different from the segment A.

이하에서는 설명의 편의를 위해, 도 4와 같이 원본 데이터세그먼트A와 데이터세그먼트A'를 동일한 메모리칩#0,#1,#2,#3에 기록한 예로서 설명하도록 하겠다. Hereinafter, as an example for convenience of description, an original data segment A and a data segment A 'are recorded on the same memory chips # 0, # 1, # 2 and # 3 as shown in FIG.

이에, 전술한 바와 같이 가비지 콜렉션 기능이 실행됨에 따라 메모리장치(10)에서 선택된 데이터 블록 즉 Victim 데이터세그먼트가, 도 4의 데이터세그먼트A인 것으로 예를 들어 설명하면 다음과 같다.The data block A selected in the memory device 10 as a result of the execution of the garbage collection function as described above, that is, the victim data segment, is the data segment A of FIG. 4.

이 경우라면, 전술한 데이터리드부(110)는, 메모리장치(10)에 대한 가비지 콜렉션 수행 이벤트가 발생하면, 전술과 같이 가비지 콜렉션에 의해서 선택되는 메모리장치(10)의 Victim 데이터세그먼트 즉 데이터세그먼트A를 리드하게 된다.In this case, when the garbage collection execution event for the memory device 10 is generated, the data lead unit 110 described above determines the victim data segment of the memory device 10 selected by the garbage collection, that is, the data segment A leads.

예를 들면, 데이터리드부(110)는, 데이터세그먼트A의 가장 앞 부분부터 가장 마지막 부분까지 저장된 데이터1,2,3,4 및 해시값(H_A)를 순차적으로 리드함으로써, 데이터세그먼트A를 리드할 수 있다.For example, the data lead unit 110 sequentially reads the data 1, 2, 3, and 4 and the hash value H_A from the beginning to the end of the data segment A, can do.

이와 더불어, 결함여부판단부(120)는, Victim 데이터세그먼트 즉 데이터세그먼트A를 리드하는 중에, 데이터세그먼트A에 대한 데이터 결함 여부를 판단한다.In addition, the defectiveness judgment unit 120 judges whether or not there is a data defect in the data segment A while reading the victim data segment, that is, the data segment A.

즉, 결함여부판단부(120)는, 전술과 같이 가비지 콜렉션이 수행됨에 따라 메모리장치(10)로부터 데이터세그먼트A를 읽어 들이는 동작에 개입하여, 데이터세그먼트A를 읽어 오는 과정 중에서 데이터세그먼트A에 대한 데이터 결함 여부를 판단하는 데이터 스크러빙을 수행하는 것이다.That is, the defect determination unit 120 intervenes in the operation of reading the data segment A from the memory device 10 in accordance with the execution of the garbage collection as described above, and reads the data segment A in the data segment A And data scrubbing is performed to determine whether data is defective.

보다 구체적으로는, 결함여부판단부(120)는, 데이터리드부(110)에서 순차적으로 리드 중인 2 이상의 데이터 각각 즉 데이터1,2,3,4 각각에 대한 해시값을 계산한다.More specifically, the defectiveness determining unit 120 calculates a hash value for each of two or more data being sequentially read by the data lead unit 110, i.e., data 1, 2, 3, and 4, respectively.

즉, 결함여부판단부(120)는, 데이터세그먼트A 내 데이터1,2,3,4를 순차적으로 읽어 오는 과정 중에서, 데이터1,2,3,4 각각의 해시값(hash)을 계산하는 것이다.That is, the defect determination unit 120 calculates the hash values (hash) of the data 1, 2, 3, and 4 in the process of sequentially reading the data 1, 2, 3, and 4 in the data segment A .

그리고, 결함여부판단부(120)는, 2 이상의 데이터 즉 데이터1,2,3,4 별로, 계산한 해시값(hash)이 데이터세그먼트A 내 해시값(H_1, H_2, H_3, H_4)과 상이한지 여부를 판단하여 상이한 경우 데이터 결함으로 판단한다.The defect determination unit 120 determines whether or not the hash value hash calculated according to two or more pieces of data 1, 2, 3, and 4 is different from the hash values H_1, H_2, H_3, and H_4 in the data segment A It is judged that there is a data defect.

예를 들어, 결함여부판단부(120)는, 데이터1에 대해 계산한 해시값(hash)이 데이터세그먼트A 내 데이터1의 해시값(H_1)과 동일하고, 데이터3에 대해 계산한 해시값(hash)이 데이터세그먼트A 내 데이터3의 해시값(H_3)과 동일하지만, 데이터2에 대해 계산한 해시값(hash)이 데이터세그먼트A 내 데이터2의 해시값(H_2)과 상이하고, 데이터4에 대해 계산한 해시값(hash)이 데이터세그먼트A 내 데이터4의 해시값(H_4)과 상이하다면, 데이터2,4에 대해서 데이터 결함으로 판단할 수 있다.For example, if the hash value (hash) calculated for the data 1 is equal to the hash value (H_1) of the data 1 in the data segment A and the hash value hash is the same as the hash value H_3 of the data 3 in the data segment A but the hash value hash calculated for the data 2 is different from the hash value H_2 of the data 2 in the data segment A, (Hash) calculated for the data segment A is different from the hash value (H_4) of the data 4 in the data segment A, it can be judged as a data defect for the data 2 and 4.

이처럼, 본 발명에서는, SSD와 같은 플래시기반 디바이스로 구성된 메모리장치(10)에서 필수적으로 수행되는 가비지 콜렉션에 의해 메모리장치(10)로부터 데이터(데이터세그먼트)를 읽어오는 시점에, 읽어 들여 지는 데이터(데이터세그먼트)에 대하여 부수적으로 데이터 결함 여부를 판단하는 데이터 스크러빙을 수행함으로써, 가비지 콜렉션과 데이터 스크러빙을 개별적으로 수행하는 것이 아닌 스토리지 시스템 기반으로 병행 수행할 수 있게 된다.As described above, in the present invention, at the time of reading data (data segment) from the memory device 10 by garbage collection, which is essentially performed in the memory device 10 configured with a flash-based device such as an SSD, Data segment), data garbage collection is performed to judge whether a data defect is incidental, so that garbage collection and data scrubbing can be performed concurrently on the basis of a storage system rather than individually.

이로 인해, 본 발명에서는, 데이터 스크러빙으로 인해 발생하는 IO 오버헤드를 효과적으로 최소화할 수 있다.Thus, in the present invention, the IO overhead caused by data scrubbing can be effectively minimized.

더 나아가, 결함여부판단부(120)는, 전술과 같이 데이터2,4에 대해서 데이터 결함으로 판단되면, 데이터2,4이 결함인지 아니면 데이터세그먼트A 내 데이터2,4의 해시값(H_2, H_4)이 결함인지 다시 한번 판단할 수 있다. If it is determined that the data 2 and 4 are defective as described above, the defectiveness determining unit 120 determines whether or not the data 2 and 4 are defective or the hash values H_2 and H_4 of the data 2 and 4 in the data segment A ) Is defective.

예를 들면, 결함여부판단부(120)는, 데이터세그먼트A의 원본 또는 복제 데이터세그먼트를 확인한다. 이 경우, 데이터세그먼트A가 원본이므로 복제 데이터세그먼트A'를 확인할 수 있다.For example, the defect determination unit 120 identifies the original or duplicated data segment of the data segment A. In this case, since the data segment A is the original, the replicated data segment A 'can be confirmed.

이에, 결함여부판단부(120)는, 전술과 같이 데이터 결함으로 판단한 데이터2,4에 대해, 전술의 계산한 해시값(hash)이 데이터세그먼트A' 내 해시값(H_2, H_4)과 상이한지 여부를 한번 더 판단하여, 상이한 경우 데이터 결함으로 최종 판단하고, 동일한 경우 데이터 결함이 아닌 데이터세그먼트A 내 데이터2,4의 해시값(H_2, H_4) 결함으로 판단할 수 있다.Accordingly, the defect judgment unit 120 judges whether or not the calculated hash value (hash) differs from the hash value (H_2, H_4) in the data segment A ' (H_2, H_4) of the data 2 and 4 in the data segment A, which is not a data defect, in the same case.

메모리제어부(130)는, 결함여부판단부(120)에서 데이터 결함 여부를 판단한 결과를 반영하여, 특정 데이터세그먼트 즉 Victim 데이터세그먼트에 대하여 가비지 콜렉션을 수행한다.The memory controller 130 performs garbage collection on a specific data segment, i.e., a victim data segment, by reflecting a result of determining whether the data is defective or not by the defectiveness determining unit 120. [

전술의 도 4를 언급하여 예로서 설명하면, 메모리제어부(130)는, 데이터 결함 여부를 판단한 결과를 반영하여, 특정 데이터세그먼트 즉 Victim 데이터세그먼트로서의 데이터세그먼트A에 대하여 가비지 콜렉션을 수행하는 것이다.Referring to FIG. 4, the memory control unit 130 performs garbage collection on a data segment A as a specific data segment, that is, a victim data segment, by reflecting the result of determining whether a data defect exists.

보다 구체적으로 설명하면, 메모리제어부(130)는, 데이터세그먼트A의 2 이상의 데이터 즉 데이터1,2,3,4 중에서 유효한 데이터를 선별한다. More specifically, the memory control unit 130 selects two or more data of the data segment A, that is, data effective among the data 1, 2, 3, and 4.

예를 들어, 메모리제어부(130)는, 데이터1,2를 유효한 데이터로 선별하고, 데이터3,4는 유효하지 않은 데이터로 선별할 수 있다.For example, the memory control unit 130 can select data 1 and 2 as valid data and data 3 and 4 as invalid data.

이때, 데이터1,2,3,4 중에서 유효한 데이터를 선별하는 것은 채용한 가비지 콜렉션 알고리즘에 따라서 선별되며, 이처럼 유효한 데이터를 선별하는 것은 기존의 방식과 동일하므로 구체적인 설명을 생략하겠다.At this time, selection of valid data among data 1, 2, 3, and 4 is selected according to the adopted garbage collection algorithm, and selection of such valid data is the same as that of the conventional method, so a detailed description will be omitted.

그리고, 메모리제어부(130)는, 데이터 결함 여부를 판단한 결과를 반영하여 상기 유효한 데이터 중 데이터 결함으로 판단된 특정 데이터가 확인되는 경우 상기 특정 데이터를 복구한 후, 유효한 데이터를 포함하는 새로운 데이터세그먼트를 구성하여 메모리장치(10)에 기록한다.When the specific data determined as a data defect among the valid data is identified by reflecting the result of determining whether the data is defective, the memory controller 130 restores the specific data, and then generates a new data segment including valid data And writes them to the memory device 10. [

즉, 메모리제어부(130)는, 결함여부판단부(120)에서 데이터 결함 여부를 판단한 결과를 반영하여, 유효한 데이터 예컨대 데이터1,2 중 데이터 결함으로 판단된 특정 데이터가 있는지 확인한다. That is, the memory controller 130 reflects the result of determining whether the data is defective by the defectiveness determining unit 120, and determines whether there is data that is determined to be a data defect among the valid data (e.g., data 1 and 2).

메모리제어부(130)는, 전술과 같이 결함여부판단부(120)에서 데이터1,2,3,4 중 데이터2,4를 데이터 결함으로 판단한 경우라면, 유효한 데이터1,2 중에서 데이터 결함으로 판단된 특정 데이터 즉 데이터2를 확인할 수 있다. If the defect determination unit 120 determines that the data 1, 2, 3, and 4 of data 2 and 4 are data defects as described above, the memory control unit 130 determines that the data is defective Specific data, i.e., data 2, can be identified.

이 경우, 메모리제어부(130)는, 데이터 결함으로 판단된 특정 데이터 즉 데이터2를 복구한 후, 유효한 데이터 즉 데이터1 및 복구된 데이터2를 포함하는 새로운 데이터세그먼트를 구성하여 메모리장치(10)에 기록할 수 있다.In this case, after recovering the specific data determined as a data defect, that is, data 2, the memory control unit 130 constructs a new data segment including valid data, i.e., data 1 and recovered data 2, Can be recorded.

이때, 메모리제어부(130)는, 데이터세그먼트A의 원본 또는 복제 데이터세그먼트를 이용하여 데이터2를 복구할 수 있다. At this time, the memory control unit 130 can recover the data 2 using the original or duplicated data segment of the data segment A.

즉, 메모리제어부(130)는, 유효한 데이터1,2 중에서 데이터 결함으로 판단된 특정 데이터 즉 데이터2가 확인되면, 데이터세그먼트A의 원본 또는 복제 데이터세그먼트를 확인한다. 이 경우, 데이터세그먼트A가 원본이므로 복제 데이터세그먼트A'를 확인할 수 있다.That is, when the specific data, i.e., data 2, determined as a data defect among the valid data 1 and 2, i.e., data 2, is confirmed, the memory control unit 130 checks the original or duplicate data segment of the data segment A. In this case, since the data segment A is the original, the replicated data segment A 'can be confirmed.

한편, 메모리제어부(130)는, 데이터 결함으로 판단된 특정 데이터 즉 데이터2에 대응하여, 데이터2를 복구할 수 있는 패리티 정보가 메모리장치(10)에 기 저장되어 있는 경우 해당 패리티 정보를 이용하여 데이터2를 복구할 수도 있다. 이 경우, 복구된 데이터2 역시 설명의 편의를 위해 데이터2'로 언급하겠다.On the other hand, when the parity information capable of recovering the data 2 is stored in the memory device 10 in correspondence with the specific data determined as a data defect, that is, the data 2, the memory control unit 130 uses the parity information Data 2 can also be recovered. In this case, the recovered data 2 will also be referred to as data 2 'for convenience of explanation.

이후, 메모리제어부(130)는, 유효한 데이터, 다시 말해 데이터1 및 복구된 데이터2(=데이터2')를 포함하는 새로운 데이터세그먼트를 구성한다.Then, the memory control unit 130 constitutes a new data segment including valid data, that is, data 1 and recovered data 2 (= data 2 ').

여기서, 새로운 데이터세그먼트는, 전술의 유효한 데이터1,2(=2')가 메모리장치(10) 내 다수의 메모리칩 중 가비지 콜렉션을 수행하기 이전에 기록되어 있던 동일한 메모리칩에 기록되도록 구성되는 것이 바람직하다.Here, the new data segment is configured so that the above-mentioned valid data 1, 2 (= 2 ') are recorded in the same memory chip recorded before performing the garbage collection among a plurality of memory chips in the memory device 10 desirable.

이는, 유효한 데이터를 이전에 기록되어 있던 동일한 메모리칩에 기록하는 경우, 추후 발생하는 IO 요청에 병렬적으로 대응이 가능해져, 메모리 성능 향상을 이끌어낼 수 있기 때문이다.This is because, when valid data is recorded in the same memory chip previously recorded, it is possible to cope with the IO request that occurs later in parallel, thereby improving the memory performance.

이를 위해, 본 발명의 메모리제어장치(100)에서는, GC Gathering Queue를 보유한다.To this end, the memory controller 100 of the present invention holds a GC gathering queue.

보다 구체적으로 설명하면, 메모리제어장치(100)에는, 도 5에 도시된 바와 같이, GC Gathering Queue #0 ~ #3을 보유할 수 있다. 이는, 전술의 데이터세그먼트가 기록되는 4개의 SSD 즉 4개의 메모리칩#0 ~ #3에 대응된다.More specifically, the memory control device 100 can hold GC gathering queues # 0 to # 3 as shown in FIG. This corresponds to four SSDs, that is, four memory chips # 0 to # 3, in which the above-described data segment is recorded.

이에, 메모리제어부(130)는, 도 5에 도시된 바와 같이, 유효한 데이터, 다시 말해 데이터1 및 복구된 데이터2(=데이터2')에 대해서, 데이터1은 원래 데이터1이 기록되어 있던 메모리칩 예컨대 메모리칩#0에 대응되는 GC Gathering Queue #0에 저장하고, 복구된 데이터2(=데이터2')는 원래 데이터2가 기록되어 있던 메모리칩 예컨대 메모리칩#1에 대응되는 GC Gathering Queue #1에 저장한다.5, for the valid data, that is, the data 1 and the recovered data 2 (= data 2 '), the memory control unit 130 sets the data 1 to the memory chip For example, in the GC Gathering Queue # 0 corresponding to the memory chip # 0, and the recovered data 2 (= data 2 ') is stored in the GC Gathering Queue # 1 corresponding to the memory chip .

이에 따라, 메모리제어장치(100)에서는, GC Gathering Queue #0으로부터 데이터1을 가져와 데이터세그먼트 버퍼(미도시) 내 메모리칩#0에 대응하는 메모리위치에 기록하게 되고, GC Gathering Queue #1으로부터 데이터2'을 가져와 데이터세그먼트 버퍼(미도시) 내 메모리칩#1에 대응하는 메모리위치에 기록하게 되고, 데이터세그먼트 버퍼(미도시) 내 나머지 부분에는 쓰기 요청되는 다른 데이터(예 : 데이터5,6,7)를 기록하게 될 것이다.Accordingly, the memory control device 100 fetches the data 1 from the GC gathering queue # 0 and writes it to the memory location corresponding to the memory chip # 0 in the data segment buffer (not shown) 2 'in the memory segment corresponding to the memory chip # 1 in the data segment buffer (not shown), and writes the remaining data in the data segment buffer (not shown) 7) will be recorded.

이에, 메모리제어장치(100)는, 데이터세그먼트 버퍼(미도시)가 Full 상태가 되면, 전술한 바와 같이 데이터세그먼트 버퍼(미도시)에 기록된 각 데이터 별로 해시값을 계산하고, 데이터세그먼트 버퍼(미도시)에 순차 기록된 2 이상의 데이터 즉 데이터1,2',5,6,7과, 각 데이터 별로 계산한 해시값(H_B)을 포함하는 새로운 데이터세그먼트B를 구성할 수 있다.Accordingly, when the data segment buffer (not shown) becomes full, the memory control device 100 calculates a hash value for each data recorded in the data segment buffer (not shown) as described above, A new data segment B including two or more pieces of data sequentially recorded on the data 1, 2 ', 5, 6, and 7 and a hash value H_B calculated for each piece of data may be configured.

이후, 메모리제어장치(100)는, 도 5에 도시된 바와 같이, 데이터세그먼트B를 메모리칩#0,#1,#2,#3에 걸쳐서 분산 기록한다. Thereafter, the memory control device 100 distributes the data segment B over the memory chips # 0, # 1, # 2, and # 3 as shown in FIG.

이때 데이터1은 가비지 콜렉션을 수행하기 이전에 기록되어 있던 동일한 메모리칩#0에, 데이터2'는 가비지 콜렉션을 수행하기 이전에 데이터2가 기록되어 있던 동일한 메모리칩#1에 기록될 것이다.At this time, the data 1 will be recorded on the same memory chip # 0 recorded before the garbage collection, and the data 2 'will be recorded on the same memory chip # 1 on which the data 2 has been recorded before the garbage collection.

물론, 메모리제어장치(100)는, 도 5에 도시된 바와 같이, 데이터세그먼트B를 메모리장치(10) 예컨대 메모리칩#0,#1,#2,#3에 기록하는 경우, 데이터세그먼트B를 복제한 데이터세그먼트B'를 메모리장치(10)에 더 기록할 수 있다. 5, when the data segment B is recorded in the memory device 10, for example, the memory chips # 0, # 1, # 2, and # 3, the memory control device 100 stores the data segment B The duplicated data segment B 'can be further recorded in the memory device 10. [

이처럼, 본 발명에서는, SSD와 같은 플래시기반 디바이스로 구성된 메모리장치(10)에서 가비지 콜렉션에 의해 데이터(데이터세그먼트)를 읽어오는 시점에 데이터 스크러빙을 함께 수행하고, 데이터 스크러빙 수행에 따른 데이터 결함 여부 판단결과를 반영하여 가비지 콜렉션을 수행함으로써, 데이터 스크러빙으로 인한 IO 오버헤드를 최소화하고, 가비지 콜렉션의 효과 및 데이터 스크러빙의 효과를 모두 최적으로 달성함에 따라 스토리지 시스템 전체 성능을 향상시킬 수 있다.As described above, in the present invention, data scrubbing is performed at the time of reading data (data segment) by the garbage collection in the memory device 10 configured by a flash-based device such as an SSD, and data defect detection By performing the garbage collection reflecting the result, it is possible to minimize the IO overhead due to data scrubbing, optimize both the effect of garbage collection and the effect of data scrubbing, thereby improving the overall performance of the storage system.

한편, 결함여부판단부(120)는, 일정 시간이 경과하도록 메모리장치(10)에서 가비지 콜렉션이 수행되지 않는 데이터세그먼트에 대해서는, 메모리장치(10)로부터 리드하여 데이터 결함 여부 만을 별도로 판단할 수 있다.On the other hand, the defect judgment unit 120 judges whether a data segment for which the garbage collection is not performed in the memory device 10 so that a certain period of time elapses is read from the memory device 10, .

메모리장치(10)에서 한번 기록된 후 거의 오버 라이트(Overwrite)되지 않는 데이터(데이터세그먼트)를 콜드(Cold) 데이터(데이터세그먼트)라 하고, 오버 라이트(Overwrite)가 많이 되는 데이터(데이터세그먼트)를 핫(Hot) 데이터(데이터세그먼트)라 한다.Data (data segment) which is hardly overwritten after being written once by the memory device 10 is referred to as cold data (data segment), and data (data segment) with a large overwrite Quot; hot data " (data segment).

여기서, 핫 데이터세그먼트은 정리 대상으로서 선택됨에 따른 가비지 콜렉션이 자주 수행되지만, 콜드 데이터세그먼에 대해서는 가비지 콜렉션을 수행할 필요가 없기 때문에 가비지 콜렌션이 수행되지 않는다.Here, although the garbage collection is frequently performed by selecting the hot data segment as the sorting target, the garbage collection is not performed for the cold data segment because it is not necessary to perform the garbage collection.

따라서, 데이터 유효성에 변화가 거의 없는 콜드 데이터세그먼트에 대해서는, 기존과 같이 일정한 주기에 도달하면 데이터 스크러빙을 수행하는 것이 바람직하다.Therefore, for a cold data segment with little change in data validity, it is desirable to perform data scrubbing when a predetermined period of time has been reached.

이에, 본 발명의 메모리제어장치(100) 특히 결함여부판단부(120)는, 일정 시간이 경과하도록 메모리장치(10)에서 가비지 콜렉션이 수행되지 않는 데이터세그먼트 즉 콜드 데이터세그먼에 대해서는, 메모리장치(10)로부터 리드하여 데이터 결함 여부를 판단하는 데이터 스크러빙을 주기적으로 수행하는 것이 바람직하다.The memory control apparatus 100 according to the present invention will be described in detail with reference to the memory control apparatus 100 according to the first embodiment of the present invention with reference to the data segment in which the garbage collection is not performed in the memory device 10, It is preferable to periodically perform data scrubbing to read data from the memory 10 and determine whether the data is defective.

여기서, Victim 데이터세그먼트를 구성하고 있는 데이터의 유효성에 따라, GC Gathering Queue #0 ~ #3 중 비어있는 GC Gathering Queue가 있을 수 있고, 꽉 차 있는 GC Gathering Queue가 있을 수 있다. 꽉 차는 GC Gathering Queue가 발생하기 전에는, 비어있는 GC Gathering Queue로 인해서 데이터세그먼트 버퍼(미도시)가 불완전하게 되어 있는 것(예 : Full 상태가 아닌 것)을 방치해도 무방하다.Here, depending on the validity of the data making up the victim data segment, there may be an empty GC Gathering Queue among the GC Gathering Queues # 0 to # 3, and there may be a full GC Gathering Queue. It is acceptable to leave the data segment buffer (not shown) in an incomplete state (for example, not full state) due to an empty GC Gathering Queue before a full GC gathering queue occurs.

하지만, GC Gathering Queue #0 ~ #3 중 꽉 차는 GC Gathering Queue가 발생하면, 메모리제어장치(100)는, 비어있는 GC Gathering Queue가 있는 경우 비어있는 GC Gathering Queue 대신 꽉 차있는 GC Gathering Queue에서 데이터를 가져와 저장함으로써, 데이터세그먼트 버퍼(미도시)의 비어져 있는 부분을 기록하고 것이 바람직하다.However, if a GC Gathering Queue that is full of GC Gathering Queues # 0 to # 3 occurs, the memory control device 100 will update the data in the full GC Gathering Queue instead of the empty GC Gathering Queue if there is an empty GC Gathering Queue It is preferable to record the vacated portion of the data segment buffer (not shown).

이상에서 설명한 바와 같이, 본 발명에 따른 메모리제어장치에 의하면, SSD와 같은 플래시기반 디바이스에서 필수적으로 수행되는 가비지 콜렉션과 데이터 신뢰성 향상을 위해 수행되는 데이터 스크러빙을 스토리지 시스템 기반으로 수행함으로써, 스토리지 시스템 전체 성능을 향상시킬 뿐만 아니라 데이터 스크러빙으로 인한 IO 오버헤드를 최소화 할 수 있는 효과를 도출한다.As described above, according to the memory control device of the present invention, data scrubbing is performed based on a storage system, which is performed for garbage collection and data reliability enhancement, which are essentially performed in a flash-based device such as an SSD, Not only improves performance but also minimizes IO overhead due to data scrubbing.

이하에서는 도 3을 참조하여 본 발명의 바람직한 실시예에 따른 메모리제어장치의 동작 방법을 설명하도록 하겠다. 설명의 편의를 위해서, 도 1 및 도 2의 참조번호를 언급하여 설명하도록 하겠다.Hereinafter, an operation method of the memory control device according to the preferred embodiment of the present invention will be described with reference to FIG. For convenience of explanation, the reference numerals of FIG. 1 and FIG. 2 will be described.

본 발명에 따른 메모리제어장치(100)의 동작 방법은, 가비지 콜렉션 수행 이벤트 일명 GC 이벤트가 발생하면(S100), 메모리장치(10)에서 정리 대상이 되는 데이터(또는, 데이터세그먼트)를 선택한다(S110). 여기서, 선택된 데이터(또는, 데이터세그먼트)를, Victim 데이터(또는, Victim 데이터세그먼트)라 한다.The operation method of the memory control device 100 according to the present invention selects data (or data segment) to be rearranged in the memory device 10 when a garbage collection execution event (aka GC event) occurs (S100) S110). Here, the selected data (or data segment) is referred to as victim data (or a victim data segment).

이하에서는 설명의 편의를 위해, 도 4에 도시된 데이터세그먼트A를 Victim 데이터세그먼트로서 선택한 것을 예로서 설명하겠다.Hereinafter, for convenience of explanation, the data segment A shown in FIG. 4 is selected as a victim data segment.

이에, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 선택한 메모리장치(10)에서 데이터세그먼트A를 리드한다(S120).Accordingly, the operation method of the memory control device 100 according to the present invention reads the data segment A from the selected memory device 10 (S120).

그리고, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 데이터세그먼트A의 2 이상의 데이터 즉 데이터1,2,3,4 중에서 유효한 데이터를 선별한다(S130). 예를 들어, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 데이터1,2를 유효한 데이터로 선별하고, 데이터3,4는 유효하지 않은 데이터로 선별할 수 있다.Then, the operation method of the memory control device 100 according to the present invention selects data that is valid among two or more data of the data segment A, that is, data 1, 2, 3, and 4 (S130). For example, the operation method of the memory control device 100 according to the present invention can select data 1 and 2 as valid data and data 3 and 4 as invalid data.

한편, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, S120 단계에서 Victim 데이터세그먼트 즉 데이터세그먼트A를 리드하는 중에, V데이터세그먼트A에 대한 데이터 결함 여부를 판단하는 데이터 스크러빙을 수행하게 된다.Meanwhile, the operation method of the memory control device 100 according to the present invention performs data scrubbing to determine whether data is defective in the V data segment A while reading the victim data segment, that is, the data segment A in step S120 .

보다 구체적으로 설명하면, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, S120단계에서 데이터세그먼트A를 구성하는 2 이상의 데이터 즉 데이터1,2,3,4가 순차적으로 리드되면, 리드 중인 데이터에 대한 해시값을 계산함으로써, 데이터1,2,3,4 각각에 대한 해시값을 계산한다(S140).More specifically, in the operation method of the memory control device 100 according to the present invention, when two or more data constituting the data segment A, that is, data 1, 2, 3, and 4, are sequentially read in step S120, By calculating a hash value for the data, a hash value for each of the data 1, 2, 3, and 4 is calculated (S140).

즉, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 데이터세그먼트A 내 데이터1,2,3,4를 순차적으로 읽어 오는 과정 중에서, 데이터1,2,3,4 각각의 해시값(hash)을 계산하는 것이다.That is, in the method of operating the memory control device 100 according to the present invention, in the process of sequentially reading the data 1, 2, 3, and 4 in the data segment A, hash.

그리고, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 데이터세그먼트A 내 해시값(H_A)에서 데이터1,2,3,4 각각의 해시값 H_1, H_2, H_3, H_4을 확인한다(S150).The operation method of the memory control device 100 according to the present invention checks the hash values H_1, H_2, H_3, and H_4 of the data 1, 2, 3, and 4 from the hash value H_A in the data segment A S150).

이에, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 2 이상의 데이터 즉 데이터1,2,3,4 별로, 계산한 해시값(hash)이 데이터세그먼트A 내 해시값(H_1, H_2, H_3, H_4)과 상이한지 여부를 판단한다(S160).The operation method of the memory control device 100 according to the present invention is a method of operating the memory control device 100 according to the first embodiment of the present invention in which the calculated hash value hash is divided into hash values H_1, H_2, H_3, and H_4) (S160).

예를 들어, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 데이터1에 대해 계산한 해시값(hash)이 데이터세그먼트A 내 데이터1의 해시값(H_1)과 동일하고, 데이터3에 대해 계산한 해시값(hash)이 데이터세그먼트A 내 데이터3의 해시값(H_3)과 동일하지만, 데이터2에 대해 계산한 해시값(hash)이 데이터세그먼트A 내 데이터2의 해시값(H_2)과 상이하고, 데이터4에 대해 계산한 해시값(hash)이 데이터세그먼트A 내 데이터4의 해시값(H_4)과 상이하다면, 데이터2,4에 대해서 데이터 결함으로 판단할 수 있다.For example, in the method of operating the memory control device 100 according to the present invention, the hash value (hash) calculated for the data 1 is the same as the hash value (H_1) of the data 1 in the data segment A, The hash value (hash) calculated for data 2 is the same as the hash value (H_2) of data 2 in data segment A and the hash value If the hash value (hash) calculated for the data 4 is different from the hash value (H_4) of the data 4 in the data segment A, it can be judged as a data defect for the data 2 and 4.

더 나아가, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 전술과 같이 S160단계에서 데이터2,4에 대해 데이터 결함으로 판단되면, 데이터2,4이 결함인지 아니면 데이터세그먼트A 내 데이터2,4의 해시값(H_2, H_4)이 결함인지 다시 한번 판단할 수 있다. If the data 2 and 4 are found to be defective, the method of operation of the memory control device 100 according to the present invention determines whether the data 2 and 4 are defective or the data 2 in the data segment A , And the hash values (H_2, H_4) of 4 are defective.

예를 들면, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 데이터세그먼트A의 원본 또는 복제 데이터세그먼트를 확인한다. 이 경우, 데이터세그먼트A가 원본이므로 복제 데이터세그먼트A'를 확인할 수 있다.For example, the method of operation of memory control device 100 according to the present invention identifies the original or replicated data segment of data segment A. In this case, since the data segment A is the original, the replicated data segment A 'can be confirmed.

이에, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 전술과 같이 데이터 결함으로 판단한 데이터2,4에 대해, 전술의 계산한 해시값(hash)이 데이터세그먼트A' 내 해시값(H_2, H_4)과 상이한지 여부를 한번 더 판단하여(S170), 상이한 경우 데이터 결함으로 최종 판단하고, 동일한 경우 데이터 결함이 아닌 데이터세그먼트A 내 데이터2,4의 해시값(H_2, H_4) 결함으로 판단할 수 있다.Thus, the operation method of the memory control device 100 according to the present invention is such that, as described above, for the data 2 and 4 determined as a data defect, the hash value hash calculated as described above is stored in the data segment A ' (H1, H4) of the data 2 and 4 in the data segment A, which is not a data defect, is judged as a data defect if it is different can do.

이하에서는 설명의 편의를 위해, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, S170단계에서 역시 데이터2,4에 대해 데이터 결함으로 최종 판단한 경우로 설명하겠다(S180).Hereinafter, for the sake of convenience of explanation, the operation method of the memory control device 100 according to the present invention will be described as a case where the data is finally determined as a data defect in step S170 (S180).

한편, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 데이터 결함 여부를 판단하는 것이 완료되면, 데이터 결함 여부를 판단한 결과를 반영하여 Victim 데이터세그먼트 즉 데이터세그먼트A에 대하여 가비지 콜렉션을 수행한다(S190 이후).Meanwhile, when the operation of the memory control device 100 according to the present invention is completed, if it is determined that the data is defective, the garbage collection is performed on the victim data segment, i.e., the data segment A, (After S190).

구체적으로 설명하면, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, S130단계에서 선별한 유효한 데이터 예컨대 데이터1,2 중에서 데이터 결함으로 판단된 특정 데이터가 있는지 확인한다(S190).More specifically, the operation method of the memory control device 100 according to the present invention checks whether there is specific data determined as a data defect among the valid data selected in step S130, for example, data 1 and 2 (S190).

예를 들어 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 전술과 같이 S140~S180단계에서 데이터1,2,3,4 중 데이터2,4를 데이터 결함으로 판단한 경우라면, 유효한 데이터1,2 중에서 데이터 결함으로 판단된 특정 데이터 즉 데이터2를 확인할 수 있다(S190 Yes). For example, in the operation method of the memory control device 100 according to the present invention, if data 1, 2, 3, and 4 of data 1 and 2 are determined to be data defects in steps S140 to S180, , It is possible to identify the specific data, that is, the data 2, which is judged to be a data defect in the data 2 (S190 Yes).

이 경우, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 데이터 결함으로 판단된 특정 데이터 즉 데이터2를 복구한 후, 유효한 데이터 즉 데이터1 및 복구된 데이터2를 포함하는 새로운 데이터세그먼트를 구성하여 메모리장치(10)에 기록할 수 있다.In this case, the operation method of the memory control device 100 according to the present invention is a method of recovering specific data determined as a data defect, that is, data 2, and then a new data segment including valid data, that is, data 1 and recovered data 2, And can be recorded in the memory device 10.

보다 구체적으로는, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 데이터세그먼트A의 복제 데이터세그먼트A'를 확인하고, 데이터2를 복제 데이터세그먼트A'의 데이터2와 대응되는 대응 데이터2'로 대체하여, 데이터2를 복구할 수 있다(S200). 이 경우, 복구된 데이터2란 데이터2'를 의미한다.More specifically, the method of operation of the memory control apparatus 100 according to the present invention is a method of checking the replicated data segment A 'of the data segment A and comparing the data 2 with the corresponding data 2 corresponding to the data 2 of the replicated data segment A' Quot ;, so that the data 2 can be recovered (S200). In this case, the recovered data 2 means data 2 '.

이후, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 유효한 데이터, 다시 말해 데이터1 및 복구된 데이터2(=데이터2')를 포함하는 새로운 데이터세그먼트 예컨대 도 5의 데이터세그먼트B를 구성한다(S210).Thereafter, the method of operation of the memory control apparatus 100 according to the present invention configures a new data segment, such as data segment B of FIG. 5, containing valid data, i. E., Data 1 and recovered data 2 (S210).

여기서, 새로운 데이터세그먼트B는, 전술의 유효한 데이터1,2(=2')가 메모리장치(10) 내 다수의 메모리칩 중 가비지 콜렉션을 수행하기 이전에 기록되어 있던 동일한 메모리칩에 기록되도록 구성되는 것이 바람직하다.Here, the new data segment B is configured such that the above-mentioned valid data 1, 2 (= 2 ') are recorded in the same memory chip that was recorded before performing the garbage collection among a plurality of memory chips in the memory device 10 .

보다 구체적으로 설명하면, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 도 5에 도시된 바와 같이, GC Gathering Queue #0 ~ #3을 보유할 수 있다. 이는, 전술의 데이터세그먼트가 기록되는 4개의 SSD 즉 4개의 메모리칩#0 ~ #3에 대응된다.More specifically, the operation method of the memory control apparatus 100 according to the present invention can hold GC gathering queues # 0 to # 3 as shown in FIG. This corresponds to four SSDs, that is, four memory chips # 0 to # 3, in which the above-described data segment is recorded.

이에, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 도 5에 도시된 바와 같이, 유효한 데이터, 다시 말해 데이터1 및 복구된 데이터2(=데이터2')에 대해서, 데이터1은 원래 데이터1이 기록되어 있던 메모리칩 예컨대 메모리칩#0에 대응되는 GC Gathering Queue #0에 저장하고, 복구된 데이터2(=데이터2')는 원래 데이터2가 기록되어 있던 메모리칩 예컨대 메모리칩#1에 대응되는 GC Gathering Queue #1에 저장한다.5, for the valid data, that is, the data 1 and the recovered data 2 (= data 2 '), the data 1 is the original data (= Data 2 ') is stored in the memory chip, for example, the memory chip # 1 corresponding to the memory chip # 0 in which the data 1 has been recorded, and the recovered data 2 And stores it in the GC Gathering Queue # 1 corresponding to the GC Gathering Queue # 1.

이에 따라, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, GC Gathering Queue #0으로부터 데이터1을 가져와 데이터세그먼트 버퍼(미도시) 내 메모리칩#0에 대응하는 메모리위치에 기록하게 되고, GC Gathering Queue #1으로부터 데이터2'를 가져와 데이터세그먼트 버퍼(미도시) 내 메모리칩#1에 대응하는 메모리위치에 기록하게 되고, 데이터세그먼트 버퍼(미도시) 내 나머지 부분에는 쓰기 요청되는 다른 데이터(예 : 데이터5,6,7)를 기록하게 될 것이다.Accordingly, the operation method of the memory control device 100 according to the present invention is to write the data 1 from the GC gathering queue # 0 to the memory location corresponding to the memory chip # 0 in the data segment buffer (not shown) Data 2 'is fetched from the GC Gathering Queue # 1 and is written to the memory location corresponding to the memory chip # 1 in the data segment buffer (not shown), and the remaining data in the data segment buffer (not shown) For example, data 5, 6, 7).

이에, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 데이터세그먼트 버퍼(미도시)가 Full 상태가 되면, 전술한 바와 같이 데이터세그먼트 버퍼(미도시)에 기록된 각 데이터 별로 해시값을 계산하고, 데이터세그먼트 버퍼(미도시)에 순차 기록된 2 이상의 데이터 즉 데이터1,2',5,6,7과, 각 데이터 별로 계산한 해시값(H_B)을 포함하는 새로운 데이터세그먼트B를 구성할 수 있다.Accordingly, when the data segment buffer (not shown) is in the full state, the operation method of the memory control device 100 according to the present invention is such that the hash value is stored for each data recorded in the data segment buffer And a new data segment B including two or more pieces of data sequentially recorded in a data segment buffer (not shown), that is, data 1, 2 ', 5, 6, 7 and a hash value H_B calculated for each piece of data can do.

이후, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 도 5에 도시된 바와 같이, 데이터세그먼트B를 메모리칩#0,#1,#2,#3에 걸쳐서 분산 기록한다. The operation method of the memory control device 100 according to the present invention then distributes data segment B across memory chips # 0, # 1, # 2, and # 3, as shown in FIG.

이때 데이터1은 가비지 콜렉션을 수행하기 이전에 기록되어 있던 동일한 메모리칩#0에, 데이터2'는 가비지 콜렉션을 수행하기 이전에 데이터2가 기록되어 있던 동일한 메모리칩#1에 기록될 것이다.At this time, the data 1 will be recorded on the same memory chip # 0 recorded before the garbage collection, and the data 2 'will be recorded on the same memory chip # 1 on which the data 2 has been recorded before the garbage collection.

이상에서 설명한 바와 같이, 본 발명에 따른 메모리제어장치의 동작 방법은, SSD와 같은 플래시기반 디바이스에서 필수적으로 수행되는 가비지 콜렉션과 데이터 신뢰성 향상을 위해 수행되는 데이터 스크러빙을 스토리지 시스템 기반으로 수행함으로써, 스토리지 시스템 전체 성능을 향상시킬 뿐만 아니라 데이터 스크러빙으로 인한 IO 오버헤드를 최소화 할 수 있는 효과를 도출한다.As described above, the operation method of the memory control device according to the present invention is based on the storage system based on the data scrubbing performed to improve garbage collection and data reliability, which are essentially performed in a flash-based device such as an SSD, Not only improves the overall performance of the system but also minimizes the IO overhead due to data scrubbing.

본 발명의 일실시예에 따른 메모리제어장치의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method of operating the memory controller according to an exemplary embodiment of the present invention may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the medium may be those specially designed and configured for the present invention or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

지금까지 본 발명을 바람직한 실시 예를 참조하여 상세히 설명하였지만, 본 발명이 상기한 실시 예에 한정되는 것은 아니며, 이하의 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 또는 수정이 가능한 범위까지 본 발명의 기술적 사상이 미친다 할 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims.

본 발명에 따른 메모리제어장치 및 메모리제어장치의 동작 방법에 따르면 SSD와 같은 플래시기반 디바이스에서 필수적으로 수행되는 가비지 콜렉션과 데이터 신뢰성 향상을 위해 수행되는 데이터 스크러빙을 스토리지 시스템 기반으로 수행함으로써, 스토리지 시스템 전체 성능을 향상시킬 뿐만 아니라 데이터 스크러빙으로 인한 IO 오버헤드를 최소화 할 수 있다는 점에서, 기존 기술의 한계를 뛰어 넘음에 따라 관련 기술에 대한 이용만이 아닌 적용되는 장치의 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있는 발명이다.According to the memory control device and the operation method of the memory control device according to the present invention, data scrubbing performed for garbage collection and data reliability enhancement, which are essentially performed in a flash-based device such as an SSD, It is possible to minimize the IO overhead due to data scrubbing as well as to improve the performance of the device. This is an invention that is industrially applicable because it is practically possible to carry out clearly.

10 : 메모리장치
100 : 메모리제어장치
110 : 데이터리드부 120 : 결함여부판단부
130 : 메모리제어부
200 : 파일시스템/어플리케이션
10: Memory device
100: memory control device
110: Data read unit 120: Defect determination unit
130:
200: File system / application

Claims (11)

메모리장치에 대한 가비지 콜렉션(Garbage Collection) 수행 이벤트가 발생하면, 상기 메모리장치에 기록된 특정 데이터세그먼트를 리드(Read)하는 데이터리드부;
상기 특정 데이터세그먼트를 리드하는 중에, 상기 특정 데이터세그먼트에 대한 데이터 결함 여부를 판단하는 결함여부판단부; 및
상기 특정 데이터세그먼트에 대하여 유효한 데이터를 상기 메모리장치 내 다른 메모리위치에 기록하는 가비지 콜렉션을 수행 시, 상기 데이터 결함 여부를 판단한 결과를 반영하여 상기 유효한 데이터 중 데이터 결함으로 판단된 특정 데이터가 확인되면 상기 특정 데이터를 복구한 후 기록하는 메모리제어부를 포함하는 것을 특징으로 하는 메모리제어장치.
A data read unit for reading a specific data segment recorded in the memory device when a garbage collection performing event for the memory device occurs;
A defect determination unit for determining whether a data defect is present in the specific data segment during the reading of the specific data segment; And
When the specific data determined to be a data defect among the valid data is confirmed by reflecting the result of determining whether the data is defective in performing garbage collection in which valid data for the specific data segment is recorded in another memory location in the memory device, And a memory control unit for recovering and recording the specific data.
제 1 항에 있어서,
상기 메모리장치는, 다수의 플래시 기반 메모리칩을 포함하며,
상기 메모리칩은, SSD(Solid State Drive)인 것을 특징으로 하는 메모리제어장치.
The method according to claim 1,
The memory device includes a plurality of flash-based memory chips,
Wherein the memory chip is an SSD (Solid State Drive).
제 1 항에 있어서,
상기 특정 데이터세그먼트는, 상기 메모리장치 내 다수의 메모리칩에 분산 기록된 2 이상의 데이터와, 상기 2 이상의 데이터 각각에 대하여 상기 분산 기록 시에 계산된 해시값으로 구성되는 것을 특징으로 하는 메모리제어장치.
The method according to claim 1,
Wherein the specific data segment comprises two or more pieces of data distributedly recorded in a plurality of memory chips in the memory device and a hash value calculated in the distributed recording for each of the two or more pieces of data.
제 3 항에 있어서,
상기 결함여부판단부는,
상기 데이터리드부에서 순차적으로 리드 중인 상기 2 이상의 데이터 각각에 대한 해시값을 계산하고, 상기 2 이상의 데이터 별로, 상기 계산한 해시값이 상기 특정 데이터 세그먼트 내 해시값과 상이한지 여부를 판단하여 상이한 경우 데이터 결함으로 판단하는 것을 특징으로 하는 메모리제어장치.
The method of claim 3,
The defect-
The hash value for each of the two or more data being sequentially read by the data read unit is calculated and whether or not the calculated hash value is different from the hash value in the specific data segment is determined for each of the two or more data, And judges that the data is defective.
제 1 항에 있어서,
상기 특정 데이터세그먼트에는, 상기 메모리장치 내 다수의 메모리칩에 분산 기록된 2 이상의 데이터가 포함되고,
상기 메모리제어부는,
상기 2 이상의 데이터 중에서 유효한 데이터를 선별하고, 상기 데이터 결함 여부를 판단한 결과를 반영하여 상기 유효한 데이터 중 데이터 결함으로 판단된 특정 데이터가 확인되는 경우 상기 특정 데이터를 복구한 후, 유효한 데이터를 포함하는 새로운 데이터세그먼트를 구성하여 상기 메모리장치에 기록하는 것을 특징으로 하는 메모리제어장치.
The method according to claim 1,
Wherein the specific data segment includes two or more data distributedly recorded in a plurality of memory chips in the memory device,
The memory control unit,
If valid data is selected from among the two or more data and specific data determined as a data defect among valid data is identified by reflecting a result of determining whether the data is defective, the specific data is restored, and a new And a data segment is formed and recorded in the memory device.
제 5 항에 있어서,
상기 메모리장치에는, 상기 특정 데이터세그먼트와 동일한 원본 또는 복제 데이터세그먼트가 기록되어 있으며,
상기 메모리제어부는,
상기 특정 데이터를 상기 원본 또는 복제 데이터세그먼트의 상기 특정 데이터와 대응되는 대응 데이터로 대체하여, 상기 특정 데이터를 복구하는 것을 특징으로 하는 메모리제어장치.
6. The method of claim 5,
The memory device records the same original or duplicate data segment as the specific data segment,
The memory control unit,
And replaces the specific data with corresponding data corresponding to the specific data of the original or replicated data segment to recover the specific data.
제 5 항에 있어서,
상기 새로운 데이터세그먼트는,
상기 유효한 데이터가 상기 메모리장치 내 다수의 메모리칩 중 상기 가비지 콜렉션을 수행하기 이전에 기록되어 있던 메모리칩에 기록되도록 구성되는 것을 특징으로 하는 메모리제어장치.
6. The method of claim 5,
Wherein the new data segment comprises:
Wherein the valid data is recorded in a memory chip that has been written before performing the garbage collection among a plurality of memory chips in the memory device.
제 1 항에 있어서,
상기 결함여부판단부는,
일정 시간이 경과하도록 상기 메모리장치에서 상기 가비지 콜렉션이 수행되지 않는 데이터세그먼트에 대해서는, 상기 메모리장치로부터 리드하여 데이터 결함 여부 만을 별도로 판단하는 것을 특징으로 하는 메모리제어장치.
The method according to claim 1,
The defect-
Wherein the memory device reads from the memory device a data segment for which the garbage collection is not performed so that a predetermined time elapses, and judges only whether data is defective or not.
메모리장치에 대한 가비지 콜렉션 수행 이벤트가 발생하면, 상기 메모리장치에 기록된 특정 데이터세그먼트를 리드(Read)하는 데이터리드단계;
상기 특정 데이터세그먼트를 리드하는 중에, 상기 특정 데이터세그먼트에 대한 데이터 결함 여부를 판단하는 결함여부판단단계; 및
상기 특정 데이터세그먼트에 대하여 유효한 데이터를 상기 메모리장치 내 다른 메모리위치에 기록하는 가비지 콜렉션을 수행 시, 상기 데이터 결함 여부를 판단한 결과를 반영하여 상기 유효한 데이터 중 데이터 결함으로 판단된 특정 데이터가 확인되면 상기 특정 데이터를 복구한 후 기록하는 가비지콜렉션제어단계를 포함하는 것을 특징으로 하는 메모리제어장치의 동작 방법.
A data read step of reading a specific data segment recorded in the memory device when a garbage collection execution event for the memory device occurs;
Determining whether a data defect is present in the specific data segment during the reading of the specific data segment; And
When the specific data determined to be a data defect among the valid data is confirmed by reflecting the result of determining whether the data is defective in performing garbage collection in which valid data for the specific data segment is recorded in another memory location in the memory device, And a garbage collection control step of recovering and recording the specific data.
제 9 항에 있어서,
상기 특정 데이터세그먼트에는, 상기 메모리장치 내 다수의 메모리칩에 분산 기록된 2 이상의 데이터가 포함되고,
상기 가비지콜렉션제어단계는,
상기 2 이상의 데이터 중에서 유효한 데이터를 선별하고, 상기 데이터 결함 여부를 판단한 결과를 반영하여 상기 유효한 데이터 중 데이터 결함으로 판단된 특정 데이터가 확인되는 경우 상기 특정 데이터를 복구한 후, 유효한 데이터를 포함하는 새로운 데이터세그먼트를 구성하여 상기 메모리장치에 기록하는 것을 특징으로 하는 메모리제어장치의 동작 방법.
10. The method of claim 9,
Wherein the specific data segment includes two or more data distributedly recorded in a plurality of memory chips in the memory device,
The garbage collection control step includes:
If valid data is selected from among the two or more data and specific data determined as a data defect among valid data is identified by reflecting a result of determining whether the data is defective, the specific data is restored, and a new And a data segment is formed and recorded in the memory device.
제 10 항에 있어서,
상기 메모리장치에는, 상기 특정 데이터세그먼트와 동일한 원본 또는 복제 데이터세그먼트가 기록되어 있으며,
상기 가비지콜렉션제어단계는,
상기 특정 데이터를 상기 원본 또는 복제 데이터세그먼트의 상기 특정 데이터와 대응되는 대응 데이터로 대체하여, 상기 특정 데이터를 복구하는 것을 특징으로 하는 메모리제어장치의 동작 방법.
11. The method of claim 10,
The memory device records the same original or duplicate data segment as the specific data segment,
The garbage collection control step includes:
And replaces the specific data with corresponding data corresponding to the specific data of the original or replicated data segment to recover the specific data.
KR1020140033020A 2014-03-20 2014-03-20 Memory management apparatus and control method thereof KR101554550B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140033020A KR101554550B1 (en) 2014-03-20 2014-03-20 Memory management apparatus and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140033020A KR101554550B1 (en) 2014-03-20 2014-03-20 Memory management apparatus and control method thereof

Publications (1)

Publication Number Publication Date
KR101554550B1 true KR101554550B1 (en) 2015-09-21

Family

ID=54248768

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140033020A KR101554550B1 (en) 2014-03-20 2014-03-20 Memory management apparatus and control method thereof

Country Status (1)

Country Link
KR (1) KR101554550B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10055131B2 (en) 2016-04-06 2018-08-21 SK Hynix Inc. Data processing system of efficiently processing data in a plurality of memory systems and operating method of controlling data processing system
US10372558B2 (en) 2016-05-02 2019-08-06 Samsung Electronics Co., Ltd. Storage device, an operating method of the storage device and an operating method of a computing system including the storage device and a host device
US10445200B2 (en) 2016-05-02 2019-10-15 Samsung Electronics Co., Ltd. Storage device having various recovery methods and recovery modes

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10055131B2 (en) 2016-04-06 2018-08-21 SK Hynix Inc. Data processing system of efficiently processing data in a plurality of memory systems and operating method of controlling data processing system
US10372558B2 (en) 2016-05-02 2019-08-06 Samsung Electronics Co., Ltd. Storage device, an operating method of the storage device and an operating method of a computing system including the storage device and a host device
US10445200B2 (en) 2016-05-02 2019-10-15 Samsung Electronics Co., Ltd. Storage device having various recovery methods and recovery modes

Similar Documents

Publication Publication Date Title
US11176036B2 (en) Endurance enhancement scheme using memory re-evaluation
US10496293B2 (en) Techniques for selecting storage blocks for garbage collection based on longevity information
US10621051B2 (en) Logical to physical table restoration from stored journal entries
US6898668B2 (en) System and method for reorganizing data in a raid storage system
US7831764B2 (en) Storage system having plural flash memory drives and method for controlling data storage
JP4372134B2 (en) Storage system with data comparison function
US20090204846A1 (en) Automated Full Stripe Operations in a Redundant Array of Disk Drives
KR101678868B1 (en) Apparatus for flash address translation apparatus and method thereof
US9940201B2 (en) Disk array having mirror configuration and rebuilding method therefor
JP2007156597A (en) Storage device
JP2003131817A (en) Method and system for migration of data in raid logical drive migration
US11360903B2 (en) Data placement in write cache architecture supporting read heat data separation
CN108255414B (en) Solid state disk access method and device
JP2019074897A (en) Storage control device, and program
US8938641B2 (en) Method and apparatus for synchronizing storage volumes
KR101554550B1 (en) Memory management apparatus and control method thereof
KR101562794B1 (en) Data storage device
CN110737395B (en) I/O management method, electronic device, and computer-readable storage medium
US8140752B2 (en) Method of executing a background task and an array controller
US20200286577A1 (en) Storage area retirement in a storage device
CN117785026B (en) Cache method based on SSD RAID-5 system high-efficiency writing
KR20150118207A (en) Memory management apparatus and control method thereof
KR20110089972A (en) Memory apparatus
KR20120071125A (en) Small write managing apparatus and method for redundant array of independent disks
WO2006072991A1 (en) Write back method in raid device

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee