KR101554550B1 - Memory management apparatus and control method thereof - Google Patents
Memory management apparatus and control method thereof Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
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
Description
본 발명은, 다수의 플래시 기반 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
이때, 메모리장치(10)는 다수의 플래시 기반 메모리칩을 포함하며, 여기서 메모리칩은 SSD(Solid State Drive)와 같은 플래시기반 디바이스인 것이 바람직하다.At this time, the
즉, 메모리장치(10)는, 도 1에 도시된 바와 같이, 다수의 플래시 기반 메모리칩 즉 다수의 플래시 기반 SSD로 구성된다.That is, the
그리고, 메모리장치(10)는, 메모리칩 즉 SSD를 일정 개수로 그룹핑하여 메모리그룹으로 운영하는 중복 알고리즘(예 : RAID(Redundant Array of Independent Disks) 알고리즘)을 채용할 수 있다.The
이하에서는, 메모리장치(10)에서 RAID 알고리즘을 채용하는 것으로 설명하도록 하겠다.Hereinafter, it will be described that the
메모리제어장치(100)는, 파일시스템(200) 및 메모리장치(10) 사이에서 메모리장치(10)를 제어하는 제어모듈 또는 제어 소프트웨어일 수 있다.The
현재는, 전술과 같이 다수의 플래시 기반 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
본 발명에 따른 메모리제어장치(100)는, 메모리장치(10)에 대한 가비지 콜렉션 수행 이벤트가 발생하면, 메모리장치(10)에 기록된 특정 데이터세그먼트를 리드(Read)하는 데이터리드부(110)와, 상기 특정 데이터세그먼트를 리드하는 중에, 상기 특정 데이터세그먼트에 대한 데이터 결함 여부를 판단하는 결함여부판단부(120)와, 상기 데이터 결함 여부를 판단한 결과를 반영하여, 상기 특정 데이터세그먼트에 대하여 가비지 콜렉션을 수행하는 메모리제어부(130)를 포함한다.The
이때, 메모리장치(10)는 다수의 플래시 기반 메모리칩을 포함하며, 여기서 메모리칩은 SSD(Solid State Drive)와 같은 플래시기반 디바이스인 것이 바람직하다.At this time, the
즉, 메모리장치(10)는, 도 1에 도시된 바와 같이, 다수의 플래시 기반 메모리칩 즉 다수의 플래시 기반 SSD로 구성된다. 이하에서는, 설명의 편의를 위해, 메모리칩과 SSD를 혼용하여 설명할 수 있다.That is, the
그리고, 메모리장치(10)는, 메모리칩 즉 SSD를 일정 개수(예 : 4개)로 그룹핑하여 메모리그룹으로 운영하는 중복 알고리즘(예 : RAID(Redundant Array of Independent Disks) 알고리즘)을 채용할 수 있다. 이하에서는, 메모리장치(10)에서 RAID 알고리즘을 채용하는 것으로 설명하도록 하겠다.The
따라서, 본 발명에 따른 메모리제어장치(100)는, 다수의 플래시 기반 SSD로 구성된 메모리장치(10)를 제어하는 메모리제어장치로서, 제어모듈 또는 제어 소프트웨어의 형태일 수 있으며, 메모리장치(10)를 제어하기 위해 필요한 저장공간(예 : 데이터세그먼트 버퍼, GC Gathering Queue 등)을 내부에 보유할 수 있다.The
데이터리드부(110)는, 메모리장치(10)에 대한 가비지 콜렉션 수행 이벤트가 발생하면, 메모리장치(10)에 기록된 특정 데이터세그먼트를 리드(Read)한다.The data read
가비지 콜렉션은 메모리장치(10)에서 사용 가능한 메모리 영역이 부족할 때마다 수행되며, 전술의 가비지 콜렉션 수행 이벤트는 메모리장치(10)에서 사용 가능한 메모리 영역이 부족하다고 판단되는 것을 의미할 수 있다.The garbage collection may be performed whenever there is insufficient memory available in the
즉, 예를 들면, 메모리제어장치(100)는, 메모리장치(10) 내에 일정한 임계 수준(이하, GC 임계값) 이상의 데이터가 기록되는지 여부를 모니터링하여, GC 임계값 이상의 데이터가 기록되는 경우, 메모리장치(10)에서 사용 가능한 메모리 영역이 부족하다고 판단하여, 가비지 콜렉션 수행 이벤트가 발생한 것으로 판단할 수 있다. That is, for example, the
이 경우, 메모리제어장치(100)는, 메모리장치(10)에 대한 가비지 콜렉션 기능을 실행시켜 수행하게 된다.In this case, the
전술과 같이, 메모리장치(10)는, 다수의 플래시 메모리(페이지)를 포함하는 메모리칩 즉 SSD를 다수 개 채용하고 있다.As described above, the
플래시 메모리에 대한 메모리연산 중 가장 기본적인 읽기/쓰기는 페이지 단위(예 : 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
메모리제어장치(100)는, 가비지 콜렉션 수행 이벤트가 발생하면, 메모리장치(10)에서 정리 대상이 되는 데이터(또는, 데이터세그먼트)를 선택하고, 선택한 데이터(또는, 데이터세그먼트)에 대하여 가비지 콜렉션을 수행한다. 여기서, 선택된 데이터(또는, 데이터세그먼트)를, Victim 데이터(또는, Victim 데이터세그먼트)라 한다.When the garbage collection execution event occurs, the
이때, 정리 대상이 되는 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
이는, 가비지 콜렉션 기능을 수행하기 위해서는, 메모리장치(10)에 저장된 데이터 즉 Victim 데이터세그먼트를 읽어오는 필수적인 동작이다.This is an essential operation for reading the data stored in the
이하에서는, 설명의 편의를 위해 특정 데이터세그먼트를 Victim 데이터세그먼트로 언급하여 설명하겠다.Hereinafter, for convenience of description, a specific data segment will be referred to as a victim data segment.
결함여부판단부(120)는, 특정 데이터세그먼트 즉 Victim 데이터세그먼트를 리드하는 중에, Victim 데이터세그먼트에 대한 데이터 결함 여부를 판단한다.The
즉, 결함여부판단부(120)는, 전술과 같이 가비지 콜렉션이 수행됨에 따라 메모리장치(10)로부터 Victim 데이터세그먼트를 읽어 들이는 동작에 개입하여, Victim 데이터세그먼트를 읽어 오는 과정 중에서 Victim 데이터세그먼트에 대한 데이터 결함 여부를 판단하는 데이터 스크러빙을 수행하는 것이다.That is, the
이하에서는, 가비지 콜렉션이 수행됨에 따라, 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
따라서, 특정 데이터세그먼트 즉 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
이러한 데이터세그먼트가 구성되는 과정을 도 4를 참조하여 설명하면, 다음과 같다.The process of configuring such a data segment will be described with reference to FIG.
예를 들어, 메모리제어장치(100)는, 메모리장치(10)에 대한 쓰기 요청이 수신될 때마다 쓰기 요청된 데이터를 데이터세그먼트 버퍼(미도시)에 순차 기록하면서, 데이터세그먼트 버퍼(미도시)가 Full 상태가 되면, 데이터세그먼트 버퍼(미도시)에 기록된 각 데이터 별로 해시값을 계산한다.For example, the
이에, 메모리제어장치(100)는, 데이터세그먼트 버퍼(미도시)에 순차 기록된 2 이상의 데이터와, 각 데이터 별로 계산한 해시값을 포함하는 데이터세그먼트를 구성할 수 있다. 이때, 해시값은 데이터세그먼트의 가장 마지막 부분에 포함된다.Thus, the
이후, 메모리제어장치(100)는, 구성한 데이터세그먼트를 다수의 메모리칩에 분산 기록하게 된다.Thereafter, the
예를 들며, 도 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
그리고, 메모리제어장치(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
더불어, 메모리제어장치(100)는, 도 4에 도시된 바와 같이, 데이터세그먼트A를 메모리장치(10) 예컨대 메모리칩#0,#1,#2,#3에 기록하는 경우, 데이터세그먼트A를 복제한 데이터세그먼트A'를 메모리장치(10)에 더 기록할 수 있다. 4, when the data segment A is recorded in the
이때, 메모리제어장치(100)는, 도 4에 도시된 바와 같이 원본 데이터세그먼트A를 기록한 메모리칩#0,#1,#2,#3에 데이터세그먼트A'를 기록할 수도 있고, 또는 원본 데이터세그먼트A와는 다른 메모리칩#4,#5,#6,#7에 데이터세그먼트A'를 기록할 수도 있다. At this time, the
이하에서는 설명의 편의를 위해, 도 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
이에, 전술한 바와 같이 가비지 콜렉션 기능이 실행됨에 따라 메모리장치(10)에서 선택된 데이터 블록 즉 Victim 데이터세그먼트가, 도 4의 데이터세그먼트A인 것으로 예를 들어 설명하면 다음과 같다.The data block A selected in the
이 경우라면, 전술한 데이터리드부(110)는, 메모리장치(10)에 대한 가비지 콜렉션 수행 이벤트가 발생하면, 전술과 같이 가비지 콜렉션에 의해서 선택되는 메모리장치(10)의 Victim 데이터세그먼트 즉 데이터세그먼트A를 리드하게 된다.In this case, when the garbage collection execution event for the
예를 들면, 데이터리드부(110)는, 데이터세그먼트A의 가장 앞 부분부터 가장 마지막 부분까지 저장된 데이터1,2,3,4 및 해시값(H_A)를 순차적으로 리드함으로써, 데이터세그먼트A를 리드할 수 있다.For example, the data
이와 더불어, 결함여부판단부(120)는, Victim 데이터세그먼트 즉 데이터세그먼트A를 리드하는 중에, 데이터세그먼트A에 대한 데이터 결함 여부를 판단한다.In addition, the
즉, 결함여부판단부(120)는, 전술과 같이 가비지 콜렉션이 수행됨에 따라 메모리장치(10)로부터 데이터세그먼트A를 읽어 들이는 동작에 개입하여, 데이터세그먼트A를 읽어 오는 과정 중에서 데이터세그먼트A에 대한 데이터 결함 여부를 판단하는 데이터 스크러빙을 수행하는 것이다.That is, the
보다 구체적으로는, 결함여부판단부(120)는, 데이터리드부(110)에서 순차적으로 리드 중인 2 이상의 데이터 각각 즉 데이터1,2,3,4 각각에 대한 해시값을 계산한다.More specifically, the
즉, 결함여부판단부(120)는, 데이터세그먼트A 내 데이터1,2,3,4를 순차적으로 읽어 오는 과정 중에서, 데이터1,2,3,4 각각의 해시값(hash)을 계산하는 것이다.That is, the
그리고, 결함여부판단부(120)는, 2 이상의 데이터 즉 데이터1,2,3,4 별로, 계산한 해시값(hash)이 데이터세그먼트A 내 해시값(H_1, H_2, H_3, H_4)과 상이한지 여부를 판단하여 상이한 경우 데이터 결함으로 판단한다.The
예를 들어, 결함여부판단부(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
이처럼, 본 발명에서는, SSD와 같은 플래시기반 디바이스로 구성된 메모리장치(10)에서 필수적으로 수행되는 가비지 콜렉션에 의해 메모리장치(10)로부터 데이터(데이터세그먼트)를 읽어오는 시점에, 읽어 들여 지는 데이터(데이터세그먼트)에 대하여 부수적으로 데이터 결함 여부를 판단하는 데이터 스크러빙을 수행함으로써, 가비지 콜렉션과 데이터 스크러빙을 개별적으로 수행하는 것이 아닌 스토리지 시스템 기반으로 병행 수행할 수 있게 된다.As described above, in the present invention, at the time of reading data (data segment) from the
이로 인해, 본 발명에서는, 데이터 스크러빙으로 인해 발생하는 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
예를 들면, 결함여부판단부(120)는, 데이터세그먼트A의 원본 또는 복제 데이터세그먼트를 확인한다. 이 경우, 데이터세그먼트A가 원본이므로 복제 데이터세그먼트A'를 확인할 수 있다.For example, the
이에, 결함여부판단부(120)는, 전술과 같이 데이터 결함으로 판단한 데이터2,4에 대해, 전술의 계산한 해시값(hash)이 데이터세그먼트A' 내 해시값(H_2, H_4)과 상이한지 여부를 한번 더 판단하여, 상이한 경우 데이터 결함으로 최종 판단하고, 동일한 경우 데이터 결함이 아닌 데이터세그먼트A 내 데이터2,4의 해시값(H_2, H_4) 결함으로 판단할 수 있다.Accordingly, the
메모리제어부(130)는, 결함여부판단부(120)에서 데이터 결함 여부를 판단한 결과를 반영하여, 특정 데이터세그먼트 즉 Victim 데이터세그먼트에 대하여 가비지 콜렉션을 수행한다.The
전술의 도 4를 언급하여 예로서 설명하면, 메모리제어부(130)는, 데이터 결함 여부를 판단한 결과를 반영하여, 특정 데이터세그먼트 즉 Victim 데이터세그먼트로서의 데이터세그먼트A에 대하여 가비지 콜렉션을 수행하는 것이다.Referring to FIG. 4, the
보다 구체적으로 설명하면, 메모리제어부(130)는, 데이터세그먼트A의 2 이상의 데이터 즉 데이터1,2,3,4 중에서 유효한 데이터를 선별한다. More specifically, the
예를 들어, 메모리제어부(130)는, 데이터1,2를 유효한 데이터로 선별하고, 데이터3,4는 유효하지 않은 데이터로 선별할 수 있다.For example, the
이때, 데이터1,2,3,4 중에서 유효한 데이터를 선별하는 것은 채용한 가비지 콜렉션 알고리즘에 따라서 선별되며, 이처럼 유효한 데이터를 선별하는 것은 기존의 방식과 동일하므로 구체적인 설명을 생략하겠다.At this time, selection of valid data among
그리고, 메모리제어부(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
즉, 메모리제어부(130)는, 결함여부판단부(120)에서 데이터 결함 여부를 판단한 결과를 반영하여, 유효한 데이터 예컨대 데이터1,2 중 데이터 결함으로 판단된 특정 데이터가 있는지 확인한다. That is, the
메모리제어부(130)는, 전술과 같이 결함여부판단부(120)에서 데이터1,2,3,4 중 데이터2,4를 데이터 결함으로 판단한 경우라면, 유효한 데이터1,2 중에서 데이터 결함으로 판단된 특정 데이터 즉 데이터2를 확인할 수 있다. If the
이 경우, 메모리제어부(130)는, 데이터 결함으로 판단된 특정 데이터 즉 데이터2를 복구한 후, 유효한 데이터 즉 데이터1 및 복구된 데이터2를 포함하는 새로운 데이터세그먼트를 구성하여 메모리장치(10)에 기록할 수 있다.In this case, after recovering the specific data determined as a data defect, that is,
이때, 메모리제어부(130)는, 데이터세그먼트A의 원본 또는 복제 데이터세그먼트를 이용하여 데이터2를 복구할 수 있다. At this time, the
즉, 메모리제어부(130)는, 유효한 데이터1,2 중에서 데이터 결함으로 판단된 특정 데이터 즉 데이터2가 확인되면, 데이터세그먼트A의 원본 또는 복제 데이터세그먼트를 확인한다. 이 경우, 데이터세그먼트A가 원본이므로 복제 데이터세그먼트A'를 확인할 수 있다.That is, when the specific data, i.e.,
한편, 메모리제어부(130)는, 데이터 결함으로 판단된 특정 데이터 즉 데이터2에 대응하여, 데이터2를 복구할 수 있는 패리티 정보가 메모리장치(10)에 기 저장되어 있는 경우 해당 패리티 정보를 이용하여 데이터2를 복구할 수도 있다. 이 경우, 복구된 데이터2 역시 설명의 편의를 위해 데이터2'로 언급하겠다.On the other hand, when the parity information capable of recovering the
이후, 메모리제어부(130)는, 유효한 데이터, 다시 말해 데이터1 및 복구된 데이터2(=데이터2')를 포함하는 새로운 데이터세그먼트를 구성한다.Then, the
여기서, 새로운 데이터세그먼트는, 전술의 유효한 데이터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
이는, 유효한 데이터를 이전에 기록되어 있던 동일한 메모리칩에 기록하는 경우, 추후 발생하는 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
보다 구체적으로 설명하면, 메모리제어장치(100)에는, 도 5에 도시된 바와 같이, GC Gathering Queue #0 ~ #3을 보유할 수 있다. 이는, 전술의 데이터세그먼트가 기록되는 4개의 SSD 즉 4개의 메모리칩#0 ~ #3에 대응된다.More specifically, the
이에, 메모리제어부(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
이에 따라, 메모리제어장치(100)에서는, GC Gathering Queue #0으로부터 데이터1을 가져와 데이터세그먼트 버퍼(미도시) 내 메모리칩#0에 대응하는 메모리위치에 기록하게 되고, GC Gathering Queue #1으로부터 데이터2'을 가져와 데이터세그먼트 버퍼(미도시) 내 메모리칩#1에 대응하는 메모리위치에 기록하게 되고, 데이터세그먼트 버퍼(미도시) 내 나머지 부분에는 쓰기 요청되는 다른 데이터(예 : 데이터5,6,7)를 기록하게 될 것이다.Accordingly, the
이에, 메모리제어장치(100)는, 데이터세그먼트 버퍼(미도시)가 Full 상태가 되면, 전술한 바와 같이 데이터세그먼트 버퍼(미도시)에 기록된 각 데이터 별로 해시값을 계산하고, 데이터세그먼트 버퍼(미도시)에 순차 기록된 2 이상의 데이터 즉 데이터1,2',5,6,7과, 각 데이터 별로 계산한 해시값(H_B)을 포함하는 새로운 데이터세그먼트B를 구성할 수 있다.Accordingly, when the data segment buffer (not shown) becomes full, the
이후, 메모리제어장치(100)는, 도 5에 도시된 바와 같이, 데이터세그먼트B를 메모리칩#0,#1,#2,#3에 걸쳐서 분산 기록한다. Thereafter, the
이때 데이터1은 가비지 콜렉션을 수행하기 이전에 기록되어 있던 동일한 메모리칩#0에, 데이터2'는 가비지 콜렉션을 수행하기 이전에 데이터2가 기록되어 있던 동일한 메모리칩#1에 기록될 것이다.At this time, the data 1 will be recorded on the same
물론, 메모리제어장치(100)는, 도 5에 도시된 바와 같이, 데이터세그먼트B를 메모리장치(10) 예컨대 메모리칩#0,#1,#2,#3에 기록하는 경우, 데이터세그먼트B를 복제한 데이터세그먼트B'를 메모리장치(10)에 더 기록할 수 있다. 5, when the data segment B is recorded in the
이처럼, 본 발명에서는, 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
한편, 결함여부판단부(120)는, 일정 시간이 경과하도록 메모리장치(10)에서 가비지 콜렉션이 수행되지 않는 데이터세그먼트에 대해서는, 메모리장치(10)로부터 리드하여 데이터 결함 여부 만을 별도로 판단할 수 있다.On the other hand, the
메모리장치(10)에서 한번 기록된 후 거의 오버 라이트(Overwrite)되지 않는 데이터(데이터세그먼트)를 콜드(Cold) 데이터(데이터세그먼트)라 하고, 오버 라이트(Overwrite)가 많이 되는 데이터(데이터세그먼트)를 핫(Hot) 데이터(데이터세그먼트)라 한다.Data (data segment) which is hardly overwritten after being written once by the
여기서, 핫 데이터세그먼트은 정리 대상으로서 선택됨에 따른 가비지 콜렉션이 자주 수행되지만, 콜드 데이터세그먼에 대해서는 가비지 콜렉션을 수행할 필요가 없기 때문에 가비지 콜렌션이 수행되지 않는다.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
여기서, 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
하지만, 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
이상에서 설명한 바와 같이, 본 발명에 따른 메모리제어장치에 의하면, 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
이하에서는 설명의 편의를 위해, 도 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
그리고, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 데이터세그먼트A의 2 이상의 데이터 즉 데이터1,2,3,4 중에서 유효한 데이터를 선별한다(S130). 예를 들어, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 데이터1,2를 유효한 데이터로 선별하고, 데이터3,4는 유효하지 않은 데이터로 선별할 수 있다.Then, the operation method of the
한편, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, S120 단계에서 Victim 데이터세그먼트 즉 데이터세그먼트A를 리드하는 중에, V데이터세그먼트A에 대한 데이터 결함 여부를 판단하는 데이터 스크러빙을 수행하게 된다.Meanwhile, the operation method of the
보다 구체적으로 설명하면, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, S120단계에서 데이터세그먼트A를 구성하는 2 이상의 데이터 즉 데이터1,2,3,4가 순차적으로 리드되면, 리드 중인 데이터에 대한 해시값을 계산함으로써, 데이터1,2,3,4 각각에 대한 해시값을 계산한다(S140).More specifically, in the operation method of the
즉, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 데이터세그먼트A 내 데이터1,2,3,4를 순차적으로 읽어 오는 과정 중에서, 데이터1,2,3,4 각각의 해시값(hash)을 계산하는 것이다.That is, in the method of operating the
그리고, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 데이터세그먼트A 내 해시값(H_A)에서 데이터1,2,3,4 각각의 해시값 H_1, H_2, H_3, H_4을 확인한다(S150).The operation method of the
이에, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 2 이상의 데이터 즉 데이터1,2,3,4 별로, 계산한 해시값(hash)이 데이터세그먼트A 내 해시값(H_1, H_2, H_3, H_4)과 상이한지 여부를 판단한다(S160).The operation method of the
예를 들어, 본 발명에 따른 메모리제어장치(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
더 나아가, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 전술과 같이 S160단계에서 데이터2,4에 대해 데이터 결함으로 판단되면, 데이터2,4이 결함인지 아니면 데이터세그먼트A 내 데이터2,4의 해시값(H_2, H_4)이 결함인지 다시 한번 판단할 수 있다. If the
예를 들면, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 데이터세그먼트A의 원본 또는 복제 데이터세그먼트를 확인한다. 이 경우, 데이터세그먼트A가 원본이므로 복제 데이터세그먼트A'를 확인할 수 있다.For example, the method of operation of
이에, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 전술과 같이 데이터 결함으로 판단한 데이터2,4에 대해, 전술의 계산한 해시값(hash)이 데이터세그먼트A' 내 해시값(H_2, H_4)과 상이한지 여부를 한번 더 판단하여(S170), 상이한 경우 데이터 결함으로 최종 판단하고, 동일한 경우 데이터 결함이 아닌 데이터세그먼트A 내 데이터2,4의 해시값(H_2, H_4) 결함으로 판단할 수 있다.Thus, the operation method of the
이하에서는 설명의 편의를 위해, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, S170단계에서 역시 데이터2,4에 대해 데이터 결함으로 최종 판단한 경우로 설명하겠다(S180).Hereinafter, for the sake of convenience of explanation, the operation method of the
한편, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 데이터 결함 여부를 판단하는 것이 완료되면, 데이터 결함 여부를 판단한 결과를 반영하여 Victim 데이터세그먼트 즉 데이터세그먼트A에 대하여 가비지 콜렉션을 수행한다(S190 이후).Meanwhile, when the operation of the
구체적으로 설명하면, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, S130단계에서 선별한 유효한 데이터 예컨대 데이터1,2 중에서 데이터 결함으로 판단된 특정 데이터가 있는지 확인한다(S190).More specifically, the operation method of the
예를 들어 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 전술과 같이 S140~S180단계에서 데이터1,2,3,4 중 데이터2,4를 데이터 결함으로 판단한 경우라면, 유효한 데이터1,2 중에서 데이터 결함으로 판단된 특정 데이터 즉 데이터2를 확인할 수 있다(S190 Yes). For example, in the operation method of the
이 경우, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 데이터 결함으로 판단된 특정 데이터 즉 데이터2를 복구한 후, 유효한 데이터 즉 데이터1 및 복구된 데이터2를 포함하는 새로운 데이터세그먼트를 구성하여 메모리장치(10)에 기록할 수 있다.In this case, the operation method of the
보다 구체적으로는, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 데이터세그먼트A의 복제 데이터세그먼트A'를 확인하고, 데이터2를 복제 데이터세그먼트A'의 데이터2와 대응되는 대응 데이터2'로 대체하여, 데이터2를 복구할 수 있다(S200). 이 경우, 복구된 데이터2란 데이터2'를 의미한다.More specifically, the method of operation of the
이후, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 유효한 데이터, 다시 말해 데이터1 및 복구된 데이터2(=데이터2')를 포함하는 새로운 데이터세그먼트 예컨대 도 5의 데이터세그먼트B를 구성한다(S210).Thereafter, the method of operation of the
여기서, 새로운 데이터세그먼트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
보다 구체적으로 설명하면, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 도 5에 도시된 바와 같이, GC Gathering Queue #0 ~ #3을 보유할 수 있다. 이는, 전술의 데이터세그먼트가 기록되는 4개의 SSD 즉 4개의 메모리칩#0 ~ #3에 대응된다.More specifically, the operation method of the
이에, 본 발명에 따른 메모리제어장치(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
이에 따라, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, GC Gathering Queue #0으로부터 데이터1을 가져와 데이터세그먼트 버퍼(미도시) 내 메모리칩#0에 대응하는 메모리위치에 기록하게 되고, GC Gathering Queue #1으로부터 데이터2'를 가져와 데이터세그먼트 버퍼(미도시) 내 메모리칩#1에 대응하는 메모리위치에 기록하게 되고, 데이터세그먼트 버퍼(미도시) 내 나머지 부분에는 쓰기 요청되는 다른 데이터(예 : 데이터5,6,7)를 기록하게 될 것이다.Accordingly, the operation method of the
이에, 본 발명에 따른 메모리제어장치(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
이후, 본 발명에 따른 메모리제어장치(100)의 동작 방법은, 도 5에 도시된 바와 같이, 데이터세그먼트B를 메모리칩#0,#1,#2,#3에 걸쳐서 분산 기록한다. The operation method of the
이때 데이터1은 가비지 콜렉션을 수행하기 이전에 기록되어 있던 동일한 메모리칩#0에, 데이터2'는 가비지 콜렉션을 수행하기 이전에 데이터2가 기록되어 있던 동일한 메모리칩#1에 기록될 것이다.At this time, the data 1 will be recorded on the same
이상에서 설명한 바와 같이, 본 발명에 따른 메모리제어장치의 동작 방법은, 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)
상기 특정 데이터세그먼트를 리드하는 중에, 상기 특정 데이터세그먼트에 대한 데이터 결함 여부를 판단하는 결함여부판단부; 및
상기 특정 데이터세그먼트에 대하여 유효한 데이터를 상기 메모리장치 내 다른 메모리위치에 기록하는 가비지 콜렉션을 수행 시, 상기 데이터 결함 여부를 판단한 결과를 반영하여 상기 유효한 데이터 중 데이터 결함으로 판단된 특정 데이터가 확인되면 상기 특정 데이터를 복구한 후 기록하는 메모리제어부를 포함하는 것을 특징으로 하는 메모리제어장치.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.
상기 메모리장치는, 다수의 플래시 기반 메모리칩을 포함하며,
상기 메모리칩은, 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).
상기 특정 데이터세그먼트는, 상기 메모리장치 내 다수의 메모리칩에 분산 기록된 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.
상기 결함여부판단부는,
상기 데이터리드부에서 순차적으로 리드 중인 상기 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.
상기 특정 데이터세그먼트에는, 상기 메모리장치 내 다수의 메모리칩에 분산 기록된 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.
상기 메모리장치에는, 상기 특정 데이터세그먼트와 동일한 원본 또는 복제 데이터세그먼트가 기록되어 있으며,
상기 메모리제어부는,
상기 특정 데이터를 상기 원본 또는 복제 데이터세그먼트의 상기 특정 데이터와 대응되는 대응 데이터로 대체하여, 상기 특정 데이터를 복구하는 것을 특징으로 하는 메모리제어장치.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.
상기 새로운 데이터세그먼트는,
상기 유효한 데이터가 상기 메모리장치 내 다수의 메모리칩 중 상기 가비지 콜렉션을 수행하기 이전에 기록되어 있던 메모리칩에 기록되도록 구성되는 것을 특징으로 하는 메모리제어장치.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.
상기 결함여부판단부는,
일정 시간이 경과하도록 상기 메모리장치에서 상기 가비지 콜렉션이 수행되지 않는 데이터세그먼트에 대해서는, 상기 메모리장치로부터 리드하여 데이터 결함 여부 만을 별도로 판단하는 것을 특징으로 하는 메모리제어장치.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.
상기 특정 데이터세그먼트를 리드하는 중에, 상기 특정 데이터세그먼트에 대한 데이터 결함 여부를 판단하는 결함여부판단단계; 및
상기 특정 데이터세그먼트에 대하여 유효한 데이터를 상기 메모리장치 내 다른 메모리위치에 기록하는 가비지 콜렉션을 수행 시, 상기 데이터 결함 여부를 판단한 결과를 반영하여 상기 유효한 데이터 중 데이터 결함으로 판단된 특정 데이터가 확인되면 상기 특정 데이터를 복구한 후 기록하는 가비지콜렉션제어단계를 포함하는 것을 특징으로 하는 메모리제어장치의 동작 방법.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.
상기 특정 데이터세그먼트에는, 상기 메모리장치 내 다수의 메모리칩에 분산 기록된 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.
상기 메모리장치에는, 상기 특정 데이터세그먼트와 동일한 원본 또는 복제 데이터세그먼트가 기록되어 있으며,
상기 가비지콜렉션제어단계는,
상기 특정 데이터를 상기 원본 또는 복제 데이터세그먼트의 상기 특정 데이터와 대응되는 대응 데이터로 대체하여, 상기 특정 데이터를 복구하는 것을 특징으로 하는 메모리제어장치의 동작 방법.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.
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)
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 |
-
2014
- 2014-03-20 KR KR1020140033020A patent/KR101554550B1/en not_active IP Right Cessation
Cited By (3)
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 |