[go: up one dir, main page]

KR101335343B1 - Apparatus and method for memory management - Google Patents

Apparatus and method for memory management Download PDF

Info

Publication number
KR101335343B1
KR101335343B1 KR1020110105479A KR20110105479A KR101335343B1 KR 101335343 B1 KR101335343 B1 KR 101335343B1 KR 1020110105479 A KR1020110105479 A KR 1020110105479A KR 20110105479 A KR20110105479 A KR 20110105479A KR 101335343 B1 KR101335343 B1 KR 101335343B1
Authority
KR
South Korea
Prior art keywords
data
disk
disks
garbage collection
stripe
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
KR1020110105479A
Other languages
Korean (ko)
Other versions
KR20130040606A (en
Inventor
신동군
장영준
임수준
Original Assignee
성균관대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 성균관대학교산학협력단 filed Critical 성균관대학교산학협력단
Priority to KR1020110105479A priority Critical patent/KR101335343B1/en
Publication of KR20130040606A publication Critical patent/KR20130040606A/en
Application granted granted Critical
Publication of KR101335343B1 publication Critical patent/KR101335343B1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

메모리 관리 시, 다수의 디스크를 포함하는 메모리에 스트라이프(stripe) 방식을 적용하여 데이터 읽기 및 쓰기 처리를 수행하되, 다수의 디스크 중 읽기 요청된 데이터가 저장된 목적 디스크로의 접근 가능 여부에 따라 레이드(RAID, Redundant Array of Inexpensive Disks) 방식에 따른 읽기 처리의 수행 여부를 결정하고, 목적 디스크로의 접근이 불가능한 경우 목적 디스크와 스트라이핑된 다른 디스크들로부터 획득한 스트라이프 데이터 및 패리티 데이터를 이용하여 레이드 방식에 따라 요청 데이터를 산출하여 읽기 처리를 수행한다.In memory management, data read and write processing is performed by applying a stripe method to a memory including a plurality of disks. Determining whether to perform read processing according to RAID (Redundant Array of Inexpensive Disks) method, and if the target disk is inaccessible, the RAID method uses stripe data and parity data obtained from the target disk and other striped disks. Therefore, the request data is calculated and read processing is performed.

Description

메모리 관리 장치 및 방법{APPARATUS AND METHOD FOR MEMORY MANAGEMENT}Memory management apparatus and method {APPARATUS AND METHOD FOR MEMORY MANAGEMENT}

본 발명은 레이드(RAID: Redundant Array of Inexpensive Disks) 방식을 이용한 메모리 관리 장치 및 방법에 관한 것이다. The present invention relates to a memory management apparatus and method using a RAID (Redundant Array of Inexpensive Disks) scheme.

플래시 메모리(flash memory)는 빠른 속도 및 안정성, 가벼운 무게와 전력 소모가 적다는 등의 장점을 가지고 있어 최근 사용이 급속도로 증가하고 있는 저장 장치이다. Flash memory is a storage device that is rapidly increasing in use in recent years because of the advantages of high speed and stability, light weight and low power consumption.

특히 대용량을 필요로 하는 워크스테이션에서는 기존의 하드 디스크가 소모하는 전력이 매우 컸던 것에 비해서 플래시 메모리를 사용하면서 전력 사용량을 크게 절약할 수 있게 되었다. In particular, workstations that require large amounts of electricity can save a lot of power while using flash memory, compared with the very high power consumption of conventional hard disks.

그러나 일반적인 플래시 메모리는 읽기/쓰기 연산(Page 단위)과 삭제 연산(Block 단위)의 단위가 다르며, 데이터를 저장하고자 할 때 미리 해당 위치의 블록에 저장되어 있던 데이터를 삭제해야 하는 EBW(erase-before-write) 특성을 가지고 있다. However, general flash memory has different units of read / write operation (page unit) and delete operation (block unit), and EBW (erase-before), when data is to be stored, must be deleted beforehand. -write) property.

이와 같은 플래시 메모리의 특징에 따른 쓰기 연산의 성능 저하를 방지하고자, 다양한 FTL(Flash Translation Layer)이나 FFS(Flash File System)이 개발되었다. Various flash translation layers (FTLs) or flash file systems (FFSs) have been developed to prevent performance degradation of write operations due to the characteristics of flash memory.

이러한 기법에서는 플래시 메모리에 새로운 데이터가 갱신될 때 기존의 페이지가 속한 블록을 삭제하는 대신 해당 페이지의 데이터가 더 이상 유효하지 않다는 무효(invalidate)를 정보를 마킹(marking) 한 후 갱신할 새로운 데이터는 다른 페이지에 기록한다. 이처럼, 무효화된 페이지(Invalidate page)는 이후에 가비지 컬렉션(garbage collection) 연산에 의해서 수거된다.In this technique, when new data is updated in flash memory, instead of deleting the block to which the existing page belongs, new data to be updated after marking the invalidate information that the data of the page is no longer valid is deleted. Record on another page. As such, an invalidate page is then collected by a garbage collection operation.

이때, 가비지 컬렉션 연산 처리를 위해 유효 페이지(valid page)를 새로운 블록에 카피하고 블록 지우기 작업을 수행한다. 이와 같은 가비지 컬렉션 연산이 수행 중일 때 페이지 액세스 요청이 수신되면 플래시 메모리에 큰 성능 저하를 가져온다. 특히, 가비지 컬렉션 연산 도중에 읽기 요청이 발생할 경우, 가비지 컬렉션 작업이 끝난 후 읽기 요청을 수행해야 하기 때문에 읽기 요청의 응답시간이 느려지게 된다.At this time, a valid page is copied to a new block and a block erase operation is performed for garbage collection operations. If a page access request is received while such a garbage collection operation is being performed, the performance of flash memory is severely degraded. In particular, when a read request occurs during a garbage collection operation, the response time of the read request is slowed because the read request must be performed after the garbage collection operation is completed.

이와 관련하여 대한민국 공개특허공보 제10-2008-0085574호(발명의 명칭: 비휘발성 메모리의 가비지 컬렉션을 위한 장치 및 방법)에는 메모리의 가비지 컬렉션에 대한 종래기술에 대하여 개시하고 있다. 특히, 상기 공개특허공보의 "발명이 속하는 기술 및 그 분야의 종래기술"항목에는 본 발명의 기술 분야와 관련된 가비지 컬렉션의 정의와 가비지 컬렉션 수행시 발생하는 문제점에 대하여 기술하고 있다.In this regard, Korean Patent Laid-Open Publication No. 10-2008-0085574 (name of the invention: an apparatus and method for garbage collection of a nonvolatile memory) discloses a conventional technology for garbage collection of a memory. In particular, the "Technology to which the invention pertains and the prior art in the field" of the published patent publication describes the definition of garbage collection related to the technical field of the present invention and problems occurring when garbage collection is performed.

전술한 종래 기술의 문제점을 해결하기 위해, 메모리의 데이터를 효율적으로 읽기 처리할 수 있는 메모리 관리 장치 및 방법을 제공하고자 한다.In order to solve the above-described problems of the prior art, it is an object of the present invention to provide a memory management apparatus and method capable of efficiently reading and processing data in a memory.

상기와 같은 기술적 과제를 달성하기 위한 본 발명의 일 측면에 따른 메모리 관리 장치는, 다수의 디스크를 포함하는 메모리에 스트라이프(stripe) 방식을 적용하여 데이터 읽기 및 쓰기 처리를 수행하되, 상기 다수의 디스크 중 읽기 요청된 데이터가 저장된 목적 디스크로의 접근 가능 여부에 따라 레이드(RAID, Redundant Array of Inexpensive Disks) 방식에 따른 읽기 처리의 수행 여부를 결정하는 데이터 입출력 제어부; 및 상기 목적 디스크로의 접근이 불가능한 경우, 상기 목적 디스크와 스트라이핑(striping)된 다른 디스크들로부터 획득한 스트라이프 데이터 및 패리티 데이터를 이용하여 상기 레이드 방식에 따라 상기 요청된 데이터를 산출하는 요청 데이터 연산 처리부를 포함한다.Memory management apparatus according to an aspect of the present invention for achieving the above technical problem, the data read and write process by applying a stripe (stripe) method to a memory including a plurality of disks, the plurality of disks A data input / output control unit configured to determine whether to perform read processing according to a RAID (Redundant Array of Inexpensive Disks) scheme according to whether the read-requested data is accessible to the destination disk; And a request data operation processor configured to calculate the requested data according to the RAID method using stripe data and parity data obtained from other disks striped with the target disk when access to the target disk is impossible. It includes.

그리고, 본 발명의 다른 측면에 따른 메모리 관리 방법은, 다수의 디스크를 포함하는 메모리에 스트라이프(stripe) 방식을 적용하여 쓰기 처리된 데이터에 대한 읽기 요청을 수신하는 단계; 상기 읽기 요청된 데이터가 저장된 목적 디스크에 대한 접근 가능 상태 여부를 판단하는 단계; 상기 목적 디스크의 상태가 접근 불가능한 경우, 상기 목적 디스크와 스트라이핑된 다른 디스크들로부터 스트라이프 데이터 및 패리티 데이터를 획득하는 단계; 및 상기 스트라이프 데이터 및 패리티 데이터를 이용하여 레이드 방식에 따라 상기 요청된 데이터를 산출하는 단계를 포함한다.According to another aspect of the present invention, there is provided a memory management method comprising: receiving a read request for data that has been processed by applying a stripe method to a memory including a plurality of disks; Determining whether the read request data is accessible to the destination disk in which the read request data is stored; If the state of the destination disk is inaccessible, obtaining stripe data and parity data from the other disks striped with the destination disk; And calculating the requested data according to the RAID method using the stripe data and the parity data.

전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 다수의 디스크(disk)가 포함된 메모리 상에 스트라이프(stripe) 방식으로 저장된 데이터에 대한 읽기 처리 시, 요청된 데이터가 저장된 디스크가 접근 불가능상태(예를 들어, 가비지 컬렉션 처리 상태)일지라도 다른 스트라이프 데이터 및 패리티 비트(parity bit)를 이용하여 요청된 데이터를 산출하여 신속하게 읽기 처리를 수행할 수 있다는 효과가 있다.According to any one of the above-described problem solving means of the present invention, the disk in which the requested data is stored is inaccessible during the read processing of data stored in a stripe manner on a memory including a plurality of disks Even if it is (eg, garbage collection processing state), there is an effect that a read process can be performed quickly by calculating the requested data using other stripe data and parity bits.

또한, 스트라이프 방식으로 데이터가 저장된 다수의 디스크의 가비지 컬렉션을 수행함에 있어서, 각 디스크의 사용 가능 저장 영역의 크기에 기초하여 디스크 별 가비지 컬렉션 처리 순서를 결정함으로써 메모리 처리 성능을 효율적으로 향상 시킬 수 있다.In addition, in performing garbage collection of a plurality of disks in which data is stored in a stripe method, memory processing performance may be efficiently improved by determining the garbage collection processing order for each disk based on the size of the available storage area of each disk. .

도 1은 본 발명의 일 실시예에 따른 메모리 관리 장치의 구성을 나타내는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 메모리 스트라이핑 방식을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 레이드 방식을 적용한 데이터 연산 처리 방법을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 메모리 관리 방법을 설명하기 위한 순서도이다.
1 is a block diagram illustrating a configuration of a memory management apparatus according to an embodiment of the present invention.
2 is a diagram for describing a memory striping method according to an embodiment of the present invention.
3 is a view for explaining a data operation processing method applying a RAID method according to an embodiment of the present invention.
4 is a flowchart illustrating a memory management method according to an embodiment of the present invention.

아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings, which will be readily apparent to those skilled in the art. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.

명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part is referred to as being "connected" to another part, it includes not only "directly connected" but also "electrically connected" with another part in between . Also, when an element is referred to as "comprising ", it means that it can include other elements as well, without departing from the other elements unless specifically stated otherwise.

도 1은 본 발명의 일 실시예에 따른 메모리 관리 장치의 구성을 나타내는 블록도이다.1 is a block diagram illustrating a configuration of a memory management apparatus according to an embodiment of the present invention.

그리고, 도 2는 본 발명의 일 실시예에 따른 메모리 스트라이핑 방식을 설명하기 위한 도면이고, 도 3은 본 발명의 일 실시예에 따른 레이드 방식을 적용한 데이터 연산 처리 방법을 설명하기 위한 도면이다.2 is a diagram for describing a memory striping method according to an embodiment of the present invention, and FIG. 3 is a diagram for describing a data operation processing method using a RAID method according to an embodiment of the present invention.

먼저, 도 1에서 도시한 바와 같이, 본 발명의 일 실시예에 따른 메모리 관리 장치(100)는 데이터 입출력 제어부(110), 메모리(120), 가비지 컬렉션 처리부(130) 및 요청 데이터 연산 처리부(140)를 포함한다.First, as shown in FIG. 1, the memory management apparatus 100 according to an exemplary embodiment of the present invention may include a data input / output controller 110, a memory 120, a garbage collection processor 130, and a request data operation processor 140. ).

데이터 입출력 제어부(110)는 다수의 디스크를 포함하는 메모리(120)에 스트라이프(stripe) 방식을 적용하여 데이터 읽기 및 쓰기 처리를 수행한다. The data input / output controller 110 applies a stripe method to a memory 120 including a plurality of disks to perform data read and write processes.

구체적으로, 도 2에 도시한 바와 같이 데이터 입출력 제어부(110)는 입력되는 데이터(도 2에서는‘D0’ 내지 ‘D19’로 나타냄)를 다수의 디스크(도 2에서는 Disk0, Disk1, Disk2, Disk3로 나타냄)를 포함하는 메모리(120) 상에 순차적으로 나누어 저장한다. 그리고, 데이터 입출력 제어부(110)는 메모리 관리의 안정성을 위해서 패리티(parity) 데이터(도 2에서는 ‘P0’ 내지 ‘P4’로 나타냄)를 각 디스크에 분산시켜 기록한다.Specifically, as shown in FIG. 2, the data input / output control unit 110 converts input data (indicated as 'D0' to 'D19' in FIG. 2) into a plurality of disks (Disk0, Disk1, Disk2, and Disk3 in FIG. 2). It stores sequentially divided on the memory 120 including. The data input / output control unit 110 distributes and records parity data (indicated as 'P0' through 'P4' in FIG. 2) on each disk for stability of memory management.

이처럼, 다수의 디스크 상에 데이터를 나누어 저장하는 방식을 레이드(RAID, Redundant Array of Inexpensive Disks) 방식이라 하며, 하나의 패리티 비트를 공유하는 데이터들을 하나의 스트라이프(stripe)라 한다. As described above, a method of dividing and storing data on a plurality of disks is called a RAID (Redundant Array of Inexpensive Disks) method, and data sharing one parity bit is called a stripe.

예를 들어, 도 2에서와 같이 5개의 Disk로 구성된 RAID 방식의 메모리(120) 상에서 데이터 D0, D1, D2, D3 및 패리티 데이터P0는 하나의 스트라이프(Stripe 0)를 구성하며 P0은 D0~D3 에 대한 패리티 정보를 저장하고 있다.For example, as shown in FIG. 2, data D0, D1, D2, D3, and parity data P0 form one stripe on the memory 120 having five disks, and P0 is D0 to D3. Stores parity information for.

참고로, 레이드 방식에서 패리티 데이터는 입력되는 데이터의 안정성을 위해서 스트라이프 별로 저장되는 잉여 데이터 (redundant data)이다. 이와 같은, 패리티 데이터는 각 스트라이프 별로 각 디스크에 저장된 데이터(이하, ‘스트라이프 데이터’라고 함)들의 XOR(eXclusive OR) 연산에 의해 계산될 수 있다.For reference, in the RAID method, parity data is redundant data stored for each stripe for stability of input data. As such, the parity data may be calculated by an XOR (eXclusive OR) operation of data stored on each disk for each stripe (hereinafter referred to as 'stripe data').

이때, 데이터 입출력 제어부(110)는 메모리(120) 상에 저장된 데이터에 대한 읽기 요청을 수신하면, 상기 다수의 디스크 중 읽기 요청된 데이터가 저장된 디스크(이하,‘목적 디스크'라고 함)의 접근 가능 상태를 확인한다. In this case, when the data input / output controller 110 receives a read request for data stored on the memory 120, the data input / output controller 110 may access a disk (hereinafter, referred to as an “object disk”) in which the read request data is stored among the plurality of disks. Check the status.

그리고, 데이터 입출력 제어부(110)는 목적 디스크가 접근 가능 상태인 경우 목적 디스크 상의 해당 블록 상에 저장되어 있는 데이터를 읽기 처리하여 제공한다.When the target disk is in an accessible state, the data input / output controller 110 reads and provides data stored on the corresponding block on the target disk.

반면, 데이터 입출력 제어부(110)는 목적 디스크가 접근 불가능 상태인 경우 목적 디스크와 스트라이핑(striping)된 다른 디스크들을 이용한 레이드 방식에 따른 읽기 처리 수행을 결정한다.On the other hand, when the destination disk is in an inaccessible state, the data input / output controller 110 determines read processing according to a RAID method using the destination disk and other disks striped.

이처럼, 목적 디스크에 대한 레이드 방식의 읽기 처리 수행이 결정되면, 데이터 입출력 제어부(110)는 요청 데이터 연산 처리부(140)로 상기 읽기 처리가 요청된 데이터에 대한 연산 처리를 요청한다.As such, when it is determined that the RAID type read processing is performed on the target disk, the data input / output controller 110 requests the request data operation processing unit 140 for arithmetic processing on the data for which the read processing is requested.

한편, 본 발명의 일 실시예에 따른 데이터 입출력 제어부(110)는 메모리(120) 상의 다수의 디스크 별로 가비지 컬렉션(garbage collection) 처리 상태에 따라 상기 접근 가능 상태를 판단할 수 있다. 참고로, 가비지 컬렉션은 각 디스크 별로 사용 불가능한 저장 영역(예를 들어, 블록 단위의 저장 영역)의 데이터를 삭제 처리하여 사용 가능한 저장 영역으로 변환하는 절차이다.Meanwhile, the data input / output controller 110 according to an embodiment of the present invention may determine the accessible state according to the garbage collection processing state for each of the plurality of disks in the memory 120. For reference, garbage collection is a procedure of deleting data in a storage area (eg, a block area storage area) which is not available for each disk and converting the data into a usable storage area.

이때, 데이터 입출력 제어부(110)는 가비지 컬렉션 처리부(130)로부터 디스크 별 가비지 컬렉션 처리 정보를 수신하고, 수신된 가비지 컬렉션 처리 정보에 기초하여 해당 디스크의 접근 가능 여부 상태를 판단한다. 참고로, 상기 가비지 컬렉션 처리 정보에는 특정 디스크에 대한 가비지 컬렉션 허가 요청 및 가비지 컬렉션 처리 상태 중 어느 하나가 포함되어 있다.In this case, the data input / output controller 110 receives garbage collection processing information for each disk from the garbage collection processing unit 130 and determines whether the corresponding disk is accessible based on the received garbage collection processing information. For reference, the garbage collection processing information includes one of a garbage collection permission request and a garbage collection processing state for a specific disk.

또한, 데이터 입출력 제어부(110)는 가비지 컬렉션 처리부(130)로부터 특정 디스크에 대한 가비지 컬렉션 허가 요청을 수신하면, 기설정된 절차에 따라 해당 디스크에 대한 가비지 컬렉션 처리를 허가한다.In addition, when the data input / output controller 110 receives a garbage collection permission request for a specific disk from the garbage collection processing unit 130, the data input / output controller 110 permits garbage collection processing for the corresponding disk according to a preset procedure.

구체적으로, 데이터 입출력 제어부(110)는 다수의 디스크에 대한 가비지 컬렉션 허가 요청을 수신한 경우, 상기 허가 요청이 수신된 순서에 따라 순차적으로 가비지 컬렉션 처리를 허가할 수 있다. 이때, 데이터 입출력부(110)는 하나의 디스크에 대한 가비지 컬렉션 처리가 완료된 후 다음 디크스에 대한 가비지 컬렉션 처리를 허가할 수 있다.Specifically, when the data input / output controller 110 receives a garbage collection permission request for a plurality of disks, the data input / output controller 110 may permit the garbage collection process sequentially in the order in which the permission request is received. In this case, the data input / output unit 110 may permit the garbage collection process for the next disk after the garbage collection process for one disk is completed.

또한, 데이터 입출력부(110)는 특정 조건에 의해 가비지 컬렉션 처리부(130)로부터 자체적으로 허가된 다수의 디스크에 대한 가비지 컬렉션 처리 상태(현재 해당 디스크에 대한 가비지 컬렉션이 수행 중인 상태임을 의미함)를 수신하여 디스크 별 접근 가능 상태 여부를 관리한다.In addition, the data input / output unit 110 displays a garbage collection processing state (meaning that garbage collection is currently being performed on the corresponding disk) for a plurality of disks that are permitted by the garbage collection processing unit 130 by a specific condition. Receives and manages the access status for each disk.

가비지 컬렉션 처리부(130)는 다수의 디스크에 대해 각각 가비지 컬렉션(garbage collection) 처리를 수행하며, 데이터 입출력 제어부(110)로 디스크 별 사용 가능 블록의 상태에 따른 가비지 컬렉션 처리 정보를 전송한다.The garbage collection processing unit 130 performs garbage collection processing on each of the plurality of disks, and transmits garbage collection processing information according to the state of a usable block for each disk to the data input / output control unit 110.

이때, 가비지 컬렉션 처리부(130)는 각 디스크 별로 현재 잔여되어 있는 사용 가능한 블록(이하, ‘사용 가능 블록’이라 함)의 크기에 기초하여 복수의 단계에 따라 가비지 컬렉션 처리 정보를 생성할 수 있다.In this case, the garbage collection processing unit 130 may generate garbage collection processing information according to a plurality of steps based on the size of available blocks (hereinafter, referred to as 'usable blocks') remaining for each disk.

구체적으로, 가비지 컬렉션 처리부(130)는 디스크의 사용 가능 블록의 크기가 기설정된 제 1 기준 크기 및 제 2 기준 크기 범위에 속하는 경우 데이터 입출력 제어부(110)로 가비지 컬렉션 허가를 요청한다. 그리고, 가비지 컬렉션 처리부(130)는 상기 허가 요청에 대응하여 데이터 입출력 제어부(110)로부터 허가된 가비지 컬렉션 처리를 수행한다. 참고로, 상기 제 1 및 제 2 기준 크기는 시스템 데이터 처리 성능 및 메모리 관리에 무리가 없는 사용 가능 블록 크기이다.In detail, the garbage collection processor 130 requests the garbage collection permission from the data input / output controller 110 when the size of the usable block of the disk falls within a preset first reference size and second reference size range. The garbage collection processing unit 130 performs garbage collection processing permitted from the data input / output control unit 110 in response to the permission request. For reference, the first and second reference sizes are usable block sizes without difficulty in system data processing performance and memory management.

또한, 가비지 컬렉션 처리부(130)는 디스크의 사용 가능 블록의 크기가 제 2 기준 크기 미만인 경우 데이터 입출력 제어부(110)로의 가비지 컬렉션 허가 요청 없이 자체적으로 해당 디스크에 대한 가비지 컬렉션 처리를 허가하여 수행할 수 있다. 이때, 가비지 컬렉션 처리부(130)는 적어도 하나의 디스크에 대해 자체 허가에 따른 가비지 컬렉션 처리를 수행할 수 있다. 그리고, 가비지 컬렉션 처리부(130)는 자체 허가에 의한 가비지 컬렉션 처리가 수행 중인 디스크에 대한 가비지 컬렉션 처리 상태를 데이터 입출력 제어부(110)로 전송한다. 참고로, 상기 제 2 기준 크기 미만은 시스템 데이터 처리 성능 및 메모리 관리 시 부정적 영향을 미칠 수 있는 사용 가능 블록 크기이다.In addition, if the size of the usable block of the disk is less than the second reference size, the garbage collection processing unit 130 may perform the garbage collection processing for the corresponding disk without performing a garbage collection permission request to the data input / output controller 110. have. In this case, the garbage collection processing unit 130 may perform garbage collection processing according to its own permission on at least one disk. The garbage collection processing unit 130 transmits a garbage collection processing state for the disk on which the garbage collection processing is performed based on its own permission to the data input / output control unit 110. For reference, less than the second reference size is a usable block size that may adversely affect system data processing performance and memory management.

요청 데이터 연산 처리부(140)는 데이터 입출력 제어부(110)로부터 읽기 처리 요청된 데이터(이하, ‘요청 데이터’라고 함)에 대한 연산 처리 요청을 수신하면, 레이드 방식을 적용하여 요청 데이터를 산출하기 위한 연산 처리를 수행한다.When the request data operation processing unit 140 receives an operation processing request for data (hereinafter, referred to as 'request data') for which read processing is requested from the data input / output control unit 110, the request data operation processing unit 140 may calculate a request data by applying a RAID method. Perform arithmetic processing.

이때, 요청 데이터 연산 처리부(140)는 요청 데이터가 저장된 목적 디스크와 스트라이핑된 다른 디스크들로부터 스트라이프 데이터 및 패리티 데이터를 획득한다. 그리고, 요청 데이터 연산 처리부(140)는 획득한 스트라이프 데이터 및 패리티 데이터들을 XOR(eXclusive OR) 연산하여 요청 데이터를 산출한다.In this case, the request data operation processor 140 obtains the stripe data and the parity data from the target disk on which the request data is stored and other striped disks. The request data operation processor 140 calculates the request data by performing an XOR (eXclusive OR) operation on the obtained stripe data and parity data.

구체적으로, 도 3의 (a)에 도시한 바와 같이, 요청 데이터 연산 처리부(140)는 서로 스트라이핑된 디스크 중 목적 디스크 만이 접근 불가능 상태(즉, 가비지 컬렉션 처리 상태)인 경우, 목적 디스크를 제외한 나머지 스트라이핑 디스크들의 데이터와 패리티 데이터를 XOR(eXclusive OR) 연산 처리한다.Specifically, as shown in (a) of FIG. 3, when only the target disks among the disks striped with each other are in an inaccessible state (that is, garbage collection processing state), the request data operation processing unit 140 performs the rest except the target disk. The data and parity data of the striping disks are processed by XOR (eXclusive OR) operation.

도 3의 (a)에서는 Stripe 0의 Disk 2가 가비지 컬렉션(GC) 처리 상태일 때, Disk 2에 저장된 D2데이터에 대한 연산 처리가 요청된 경우를 나타내었다. 이때, 요청 데이터 연산 처리부(130)는 하기 수학식 1과 같이 XOR연산을 수행하여 D2데이터를 산출한다.FIG. 3A illustrates a case in which arithmetic processing for D2 data stored in Disk 2 is requested when Disk 2 of Stripe 0 is in a garbage collection (GC) processing state. At this time, the request data operation processing unit 130 calculates D2 data by performing XOR operation as shown in Equation 1 below.

<수학식 1>&Quot; (1) &quot;

Figure 112011080570174-pat00001
Figure 112011080570174-pat00001

이와 같이, 산출된 D2데이터는 데이터 입출력 제어부(110)를 통해 호스트(즉, 시스템 상의 외부 장치 또는 모듈에서 D2데이터를 읽기 요청한 주체)로 전송된다.In this way, the calculated D2 data is transmitted to the host (that is, the subject that requested to read the D2 data from an external device or module on the system) through the data input / output controller 110.

한편, 도 3의 (b)에 도시한 바와 같이, 요청 데이터 연산 처리부(140)는 서로 스트라이핑된 디스크 중 목적 디스크를 포함한 둘 이상의 디스크가 접근 불가능 상태(즉, 가비지 컬렉션 처리 상태)인 경우, 목적 디스크의 상태 또는 목적 디스크를 제외한 나머지 스트라이핑된 디스크들 모두의 상태가 접근 가능 상태가 된 후 요청 데이터를 산출한다.On the other hand, as shown in (b) of FIG. 3, the request data operation processing unit 140, if two or more disks including the target disk among the disks striped together is in an inaccessible state (that is, garbage collection processing state), The request data is calculated after the state of the disk or the state of all the striped disks except the destination disk becomes accessible.

도 3의 (b)에서는 Stripe 0의Disk 0, Disk 2, Disk 3이 가비지 컬렉션(GC) 처리 상태일 때, Disk 2에 저장된 D2데이터에 대한 연산 처리가 요청된 경우를 나타내었다.  FIG. 3B illustrates a case in which operation processing for D2 data stored in Disk 2 is requested when Disk 0, Disk 2, and Disk 3 of Stripe 0 are in a garbage collection (GC) processing state.

이때, 요청 데이터 연산 처리부(130)는 목적 디스크 또는 나머지 모든 스트라이핑 디스크 중 먼저 접근 가능 상태(즉, 가비지 컬렉션 처리가 완료된 상태)가 되는 디스크에 저장된 데이터를 이용하여 요청 데이터를 산출한다.At this time, the request data operation processing unit 130 calculates the request data using data stored in the disk which becomes the first accessible state (that is, the state in which garbage collection processing is completed) among the target disk or all remaining striping disks.

구체적으로, 요청 데이터 연산 처리부(130)는 목적 디스크(Disk 2)의 가비지 컬렉션(GC) 처리가 가장 먼저 완료되는 경우 목적 디스크(Disk 2)에 저장된 데이터를 요청 데이터로서 추출하여 데이터 입출력 제어부(110)로 제공한다.Specifically, when the garbage collection (GC) processing of the target disk (Disk 2) is completed first, the request data operation processing unit 130 extracts the data stored in the target disk (Disk 2) as request data and outputs the data input / output controller 110. )

또한, 요청 데이터 연산 처리부(130)는 목적 디스크(Disk 2) 외의 스트라이핑 디스크(Disk 0 및 Disk 3)의 가비지 컬렉션 처리가 목적 디스크(Disk 2)의 가비지 컬렉션 처리보다 먼저 완료되는 경우, 나머지 스트라이핑 디스크들의 데이터와 패리티 데이터를 획득하여 상기 수학식 1에서와 같이 처리한다. 그리고, 요청 데이터 연산 처리부(130)는 상기 연산 처리를 통해 산출된 요청 데이터를 데이터 입출력 제어부(110)로 제공한다.In addition, the request data operation processing unit 130, if the garbage collection processing of the striping disk (Disk 0 and Disk 3) other than the target disk (Disk 2) is completed before the garbage collection processing of the target disk (Disk 2), the remaining striping disk Data and parity data are obtained and processed as in Equation 1 above. The request data operation processing unit 130 provides the data input / output control unit 110 with the request data calculated through the operation processing.

이하, 도 4를 참조하여 본 발명의 일 실시예에 따른 메모리 관리 방법에 대해서 상세히 설명하도록 한다.Hereinafter, a memory management method according to an exemplary embodiment of the present invention will be described in detail with reference to FIG. 4.

도 4는 본 발명의 일 실시예에 따른 메모리 관리 방법을 설명하기 위한 순서도이다.4 is a flowchart illustrating a memory management method according to an embodiment of the present invention.

도 4에 도시한 바와 같이, 스트라이핑 방식에 따라 메모리 상에 쓰기 처리된 데이터에 대한 읽기 요청이 발생되면(S410), 상기 요청된 데이터가 저장된 목적 디스크의 상태가 접근 가능 상태인지 여부를 판단한다(S420).As shown in FIG. 4, when a read request for data written to a memory is generated according to a striping method (S410), it is determined whether the state of the target disk on which the requested data is stored is accessible (see FIG. 4). S420).

이때, 본 발명의 일 실시예에서 목적 디스크의 접근 가능 상태는 가비지 컬렉션 처리 상태인지 여부에 따라 판단할 수 있다.At this time, in an embodiment of the present invention, the accessible state of the destination disk may be determined according to whether it is garbage collection processing.

즉, 목적 디스크에 대한 가비지 컬렉션(garbage collection) 처리 상태를 확인하여, 목적 디스크가 가비지 컬렉션 처리 중인 경우 접근 불가능 상태로 판단한다.That is, the garbage collection processing state of the target disk is checked to determine that the target disk is inaccessible when the garbage collection processing is performed.

그런 다음, 목적 디스크가 접근 불가능한 상태인 경우, 목적 디스크와 스트라이핑된 다른 스트라이프 디스크들이 접근 가능 상태인지 여부를 판단한다(S430).Then, if the target disk is in an inaccessible state, it is determined whether the target disk and other striped disks striped are accessible (S430).

그런 다음, 다른 스트라이프 디스크들 모두가 접근 가능 상태인 경우(즉, 가비지 컬렉션 처리를 수행하고 있지 않은 경우) 다른 스크라이프 디스크들로부터 스트라이프 데이터 및 패리티 비트를 획득한다(S440).Then, when all of the other stripe disks are in an accessible state (that is, not performing garbage collection processing), stripe data and parity bits are obtained from the other stripe disks (S440).

반면, 다른 스트라이프 디스크들 중 적어도 하나의 디스크가 접근 불가능 상태인 경우 단계 (S420)으로 회귀하여 목적 디스크 또는 다른 모든 스트라이프 디스크 중 어느 하나가 접근 가능 상태가 될 때까지 각 디스크의 상태를 반복하여 판단한다.On the other hand, when at least one of the other stripe disks is in an inaccessible state, the process returns to step S420 to repeatedly determine the state of each disk until either one of the target disk or all other stripe disks becomes accessible. do.

이때, 스트라이프 디스크 중 목적 디스크를 포함하는 둘 이상의 디스크가 접근 불가능 상태인 경우, 목적 디스크 또는 다른 모든 스트라이프 디스크 중 먼저 접근 가능 상태가 되는 디스크에 저장된 데이터를 획득한다.At this time, when two or more disks including the target disk among the striped disks are in an inaccessible state, data stored in the first disk or in all other striped disks that are first accessible are acquired.

다음으로, 획득한 스트라이프 데이터 및 패리티 비트를 이용하여 읽기 처리 요청된 데이터를 연산 처리하여 요청 데이터를 산출한다(S450).Next, the read data is calculated using the obtained stripe data and the parity bit, and the requested data is calculated (S450).

이때, 상기 연산 처리는 획득한 스트라이프 데이터 및 패리티 비트 간의 XOR 연산이다.In this case, the operation processing is an XOR operation between the obtained stripe data and the parity bit.

그런 후, 상기 산출된 요청 데이터를 데이터 읽기 요청 주체(즉, 호스트)로 전송한다(S460).Thereafter, the calculated request data is transmitted to a data read request subject (ie, a host) (S460).

한편, 상기 단계 (S420)의 판단 결과, 목적 디스크로의 접근이 가능하다고 판단된 경우, 목적 디스크에 접근하여 요청 데이터를 읽기 처리를 수행하여(S470), 읽기 처리된 요청 데이터를 데이터 읽기 요청 주체(즉, 호스트)로 전송한다(S460).On the other hand, if it is determined that the access to the target disk is possible as a result of the determination in step S420, the target disk is accessed to perform read processing (S470), and the read-processed request data is subject to the data read request. (Ie, host) (S460).

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The foregoing description of the present invention is intended for illustration, and it will be understood by those skilled in the art that the present invention may be easily modified in other specific forms without changing the technical spirit or essential features of the present invention. will be. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. For example, each component described as a single entity may be distributed and implemented, and components described as being distributed may also be implemented in a combined form.

본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is shown by the following claims rather than the above description, and all changes or modifications derived from the meaning and scope of the claims and their equivalents should be construed as being included in the scope of the present invention. do.

110: 데이터 입출력 제어부 120: 메모리
130: 가비지 컬렉션 처리부 140: 요청 데이터 연산 처리부
110: data input and output control unit 120: memory
130: garbage collection processing unit 140: request data operation processing unit

Claims (11)

메모리 관리 장치에 있어서,
다수의 디스크(disk)를 포함하는 메모리에 스트라이프(stripe) 방식을 적용하여 데이터 읽기 및 쓰기 처리를 수행하되, 상기 다수의 디스크 중 읽기 요청된 데이터가 저장된 목적 디스크로의 접근 가능 여부에 따라 레이드(RAID, Redundant Array of Inexpensive Disks) 방식에 따른 읽기 처리의 수행 여부를 결정하는 데이터 입출력 제어부; 및
상기 목적 디스크로의 접근이 불가능한 경우, 상기 목적 디스크와 스트라이핑(striping)된 다른 디스크들로부터 획득한 스트라이프 데이터 및 패리티 데이터를 이용하여 상기 레이드 방식에 따라 상기 요청된 데이터를 산출하는 요청 데이터 연산 처리부를 포함하는 메모리 관리 장치.
In the memory management apparatus,
A data read and write process is performed by applying a stripe method to a memory including a plurality of disks, and among the plurality of disks, a RAID is allocated depending on whether the read-requested data of the plurality of disks is accessible to the target disk. A data input / output controller for determining whether to perform read processing according to a RAID (Redundant Array of Inexpensive Disks) scheme; And
A request data operation processor configured to calculate the requested data according to the RAID method using stripe data and parity data obtained from other disks striped with the target disk when access to the target disk is impossible Memory management device comprising.
제 1 항에 있어서,
상기 다수의 디스크에 대해 각각 가비지 컬렉션(garbage collection) 처리를 수행하며, 상기 데이터 입출력 제어부로 상기 디스크 별 사용 가능 블록의 상태에 따른 가비지 컬렉션 허가 요청 및 가비지 컬렉션 처리 상태 중 어느 하나를 전송하는 가비지 컬렉션 처리부를 더 포함하되,
상기 목적 디스크의 접근 가능 여부는 상기 가비지 컬렉션 처리 상태에 따라 결정되는 것인 메모리 관리 장치.
The method of claim 1,
Garbage collection processing for each of the plurality of disks, and a garbage collection for transmitting one of a garbage collection permission request and a garbage collection processing state according to the state of the usable block for each disk to the data input / output controller. Including a processing unit,
The accessibility of the destination disk is determined according to the garbage collection processing state.
제 2 항에 있어서,
상기 가비지 컬렉션 처리부는,
상기 사용 가능 블록 크기가 제 1 기준 크기 이하 제 1 기준 크기보다 작은 제 2 기준 크기 이상의 범위에 속하는 디스크에 대해 상기 가비지 컬렉션 허가를 요청하여 상기 요청에 따른 허가가 수신된 후 상기 가비지 컬렉션 처리를 수행하고,
상기 사용 가능 블록 크기가 상기 제 2 기준 크기 미만인 디스크에 대해 가비지 컬렉션 처리를 수행하고, 상기 가비지 컬렉션 처리가 수행되는 적어도 하나의 디스크에 대한 가비지 컬렉션 처리 상태를 제공하고,
상기 사용 가능 블록 크기가 상기 제 1 기준 크기 초과인 디스크에 대해서는 가비지 컬렉션 처리를 수행하지 않는 메모리 관리 장치.
3. The method of claim 2,
The garbage collection processing unit,
The garbage collection permission is requested for a disk belonging to a range in which the usable block size is less than or equal to the first reference size and less than the first reference size, and the permission according to the request is received to perform the garbage collection process. and,
Perform garbage collection processing on the disk having the usable block size less than the second reference size, and provide a garbage collection processing status for at least one disk on which the garbage collection processing is performed,
And no garbage collection processing is performed on the disk having the usable block size exceeding the first reference size.
제 1 항 또는 제 2 항에 있어서,
상기 요청 데이터 연산 처리부는,
상기 스트라이핑된 디스크 중 상기 목적 디스크를 포함한 둘 이상의 디스크가 상기 접근 불가능 상태인 경우,
상기 목적 디스크의 상태 또는 상기 목적 디스크를 제외한 나머지 스트라이핑된 디스크들 모두의 상태가 접근 가능 상태가 된 후 상기 요청된 데이터를 산출하는 메모리 관리 장치.
3. The method according to claim 1 or 2,
The request data operation processing unit,
When two or more disks including the target disk among the striped disks are in an inaccessible state,
And calculating the requested data after the state of the target disk or the states of all the striped disks except the target disk become accessible.
제 4 항에 있어서,
상기 요청 데이터 연산 처리부는,
상기 목적 디스크 또는 상기 나머지 모든 스트라이핑 디스크 중 먼저 접근 가능 상태가 되는 디스크에 저장된 데이터를 이용하여 상기 요청된 데이터를 산출하는 메모리 관리 장치.
5. The method of claim 4,
The request data operation processing unit,
And calculating the requested data by using the data stored in the disk which becomes the first accessible state of the destination disk or all the remaining striping disks.
제 1 항에 있어서,
상기 요청 데이터 연산 처리부는,
상기 스트라이프 데이터 및 패리티 데이터에 대한 XOR(eXclusive OR) 연산을 통해 상기 요청된 데이터를 산출하는 메모리 관리 장치.
The method of claim 1,
The request data operation processing unit,
And calculating the requested data through an XOR (eXclusive OR) operation on the stripe data and the parity data.
메모리 관리 방법에 있어서,
(a) 다수의 디스크를 포함하는 메모리에 스트라이프(stripe) 방식을 적용하여 쓰기 처리된 데이터에 대한 읽기 요청을 수신하는 단계;
(b) 상기 읽기 요청된 데이터가 저장된 목적 디스크에 대한 접근 가능 상태 여부를 판단하는 단계;
(c) 상기 목적 디스크의 상태가 접근 불가능한 경우, 상기 목적 디스크와 스트라이핑(striping)된 다른 디스크들로부터 스트라이프 데이터 및 패리티 데이터를 획득하는 단계; 및
(d) 상기 스트라이프 데이터 및 패리티 데이터를 이용하여 레이드 방식에 따라 상기 요청된 데이터를 산출하는 단계를 포함하는 메모리 관리 방법.
A memory management method comprising:
(a) receiving a read request for data written by applying a stripe method to a memory including a plurality of disks;
determining whether the read request data is accessible to the target disk in which the read request data is stored;
(c) when the state of the target disk is inaccessible, obtaining stripe data and parity data from other disks striped with the target disk; And
(d) calculating the requested data according to the RAID method using the stripe data and the parity data.
제 7 항에 있어서,
상기 (b) 단계에서,
상기 목적 디스크에 대한 가비지 컬렉션(garbage collection) 처리 상태를 확인하여, 상기 목적 디스크가 상기 가비지 컬렉션 처리 중인 경우 상기 접근 불가능 상태로 판단하는 메모리 관리 방법.
The method of claim 7, wherein
In the step (b)
Checking a garbage collection processing state for the target disk, and determining that the target disk is in an inaccessible state when the target disk is in the garbage collection processing.
제 8 항에 있어서,
상기 (b) 단계 이전에,
상기 다수의 디스크 별로 사용 가능 블록 크기가 제 1 기준 크기 이하 제 1 기준 크기보다 작은 제 2 기준 크기 이상의 범위에 속하는 디스크에 대해 가비지 컬렉션 허가를 요청하여 상기 요청에 따른 허가가 수신된 후 상기 가비지 컬렉션 처리를 수행하는 단계;
상기 다수의 디스크 별로 상기 사용 가능 블록 크기가 상기 제 2 기준 크기 미만인 디스크에 대해 가비지 컬렉션 처리를 수행하되, 상기 가비지 컬렉션 처리가 수행되는 적어도 하나의 디스크에 대한 가비지 컬렉션 처리 상태를 제공하는 단계; 및
상기 다수의 디스크 별로 상기 사용 가능 블록 크기가 상기 제 1 기준 크기 초과인 디스크에 대해서는 가비지 컬렉션 처리를 수행하지 않는 단계 중 적어도 하나의 단계를 수행하는 메모리 관리 방법.
The method of claim 8,
Before the step (b)
Requesting a garbage collection permission for a disk belonging to a range in which a usable block size is less than a first reference size or less than a first reference size for each of the plurality of disks, and requesting garbage collection permission and receiving the permission according to the request; Performing a process;
Providing garbage collection processing status for at least one disk for which the garbage collection processing is performed, the garbage collection processing being performed on the disk having the usable block size less than the second reference size for each of the plurality of disks; And
And not performing garbage collection processing on the disk having the usable block size exceeding the first reference size for each of the plurality of disks.
제 7 항 또는 제 8 항에 있어서,
상기 (c) 단계에서,
상기 목적 디스크 및 상기 다른 디스크들로 구성된 스트라이프 디스크들의 접근 가능 상태 여부를 판단하는 단계; 및
상기 스트라이프 디스크 중 상기 목적 디스크를 포함하는 둘 이상의 디스크가 상기 접근 불가능 상태인 경우, 상기 목적 디스크 또는 상기 다른 디스크들 모두 중 먼저 접근 가능 상태가 되는 디스크에 저장된 데이터를 획득하는 단계를 포함하는 메모리 관리 방법.
9. The method according to claim 7 or 8,
In the step (c)
Determining whether an accessible state of stripe disks composed of the destination disk and the other disks is accessible; And
When two or more disks including the target disk among the stripe disks are in an inaccessible state, acquiring data stored in the disk which becomes the first accessible state among all of the target disks or the other disks; Way.
제 7 항에 있어서,
상기 (d) 단계에서,
상기 스트라이프 데이터 및 패리티 데이터에 대한 XOR(eXclusive OR) 연산을 통해 상기 요청된 데이터를 산출하는 메모리 관리 방법.
The method of claim 7, wherein
In the step (d)
And calculating the requested data through an eXclusive OR (XOR) operation on the stripe data and the parity data.
KR1020110105479A 2011-10-14 2011-10-14 Apparatus and method for memory management Expired - Fee Related KR101335343B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110105479A KR101335343B1 (en) 2011-10-14 2011-10-14 Apparatus and method for memory management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110105479A KR101335343B1 (en) 2011-10-14 2011-10-14 Apparatus and method for memory management

Publications (2)

Publication Number Publication Date
KR20130040606A KR20130040606A (en) 2013-04-24
KR101335343B1 true KR101335343B1 (en) 2013-12-02

Family

ID=48440385

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110105479A Expired - Fee Related KR101335343B1 (en) 2011-10-14 2011-10-14 Apparatus and method for memory management

Country Status (1)

Country Link
KR (1) KR101335343B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102493864B1 (en) 2021-11-16 2023-01-31 삼성전자주식회사 Operation method of storage device, and operation method of storage system including host and storage device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100017650A1 (en) 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management
WO2010144587A2 (en) 2009-06-12 2010-12-16 Violin Memory, Inc. Memory system having persistent garbage collection
US20110078496A1 (en) 2009-09-29 2011-03-31 Micron Technology, Inc. Stripe based memory operation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100017650A1 (en) 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management
WO2010144587A2 (en) 2009-06-12 2010-12-16 Violin Memory, Inc. Memory system having persistent garbage collection
US20110078496A1 (en) 2009-09-29 2011-03-31 Micron Technology, Inc. Stripe based memory operation

Also Published As

Publication number Publication date
KR20130040606A (en) 2013-04-24

Similar Documents

Publication Publication Date Title
JP6538940B2 (en) Nonvolatile memory control method
US10824526B2 (en) Using failed storage device in peer-to-peer storage system to perform storage-centric task
US9092336B2 (en) Write admittance policy for a memory cache
US10346245B2 (en) Data storage system and data storage method
US9804925B1 (en) Data reconstruction in distributed storage systems
US8332367B2 (en) Parallel data redundancy removal
US8234520B2 (en) Wear leveling of solid state disks based on usage information of data and parity received from a raid controller
EP2778888B1 (en) Selecting between non-volatile memory units having different minimum addressable data unit sizes
US20190102250A1 (en) Redundancy Coding Stripe Based On Internal Addresses Of Storage Devices
CN112513804B (en) Data processing method and device
US10261705B2 (en) Efficient data consistency verification for flash storage
CN108228084B (en) Method and apparatus for managing storage system
US20130173972A1 (en) System and method for solid state disk flash plane failure detection
US9858289B2 (en) Storage controller and method for managing a solid-state memory
CN105745627A (en) Address translation for a non-volatile memory storage device
US20180113633A1 (en) Method and system for efficient cache buffering in a system having parity arms to enable hardware acceleration
TW201535114A (en) Recording dwell time in a non-volatile memory system
CN107203442B (en) Method and equipment for evaluating reconstruction performance of redundant array of independent disks
CN112612639B (en) Method for operating memory system, method for operating host and computing system
TW201107981A (en) Method and apparatus for protecting the integrity of cached data in a direct-attached storage (DAS) system
CN110737395B (en) I/O management method, electronic device, and computer-readable storage medium
CN103403667A (en) Data processing method and device
KR101335343B1 (en) Apparatus and method for memory management
CN110659152B (en) A data processing method and device
JP5821445B2 (en) Disk array device and disk array device control method

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

PN2301 Change of applicant

St.27 status event code: A-3-3-R10-R11-asn-PN2301

St.27 status event code: A-3-3-R10-R13-asn-PN2301

PN2301 Change of applicant

St.27 status event code: A-3-3-R10-R11-asn-PN2301

St.27 status event code: A-3-3-R10-R13-asn-PN2301

R18-X000 Changes to party contact information recorded

St.27 status event code: A-3-3-R10-R18-oth-X000

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

D14-X000 Search report completed

St.27 status event code: A-1-2-D10-D14-srh-X000

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

Fee payment year number: 1

St.27 status event code: A-2-2-U10-U11-oth-PR1002

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

FPAY Annual fee payment

Payment date: 20160928

Year of fee payment: 4

PR1001 Payment of annual fee

Fee payment year number: 4

St.27 status event code: A-4-4-U10-U11-oth-PR1001

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

PR1001 Payment of annual fee

Fee payment year number: 5

St.27 status event code: A-4-4-U10-U11-oth-PR1001

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

Not in force date: 20181127

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

St.27 status event code: A-4-4-U10-U13-oth-PC1903

PC1903 Unpaid annual fee

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20181127

St.27 status event code: N-4-6-H10-H13-oth-PC1903

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R11-asn-PN2301

St.27 status event code: A-5-5-R10-R13-asn-PN2301

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000