KR101335343B1 - Apparatus and method for memory management - Google Patents
Apparatus and method for memory management Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, 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
본 발명은 레이드(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.
전술한 종래 기술의 문제점을 해결하기 위해, 메모리의 데이터를 효율적으로 읽기 처리할 수 있는 메모리 관리 장치 및 방법을 제공하고자 한다.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
데이터 입출력 제어부(110)는 다수의 디스크를 포함하는 메모리(120)에 스트라이프(stripe) 방식을 적용하여 데이터 읽기 및 쓰기 처리를 수행한다. The data input /
구체적으로, 도 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 /
이처럼, 다수의 디스크 상에 데이터를 나누어 저장하는 방식을 레이드(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
참고로, 레이드 방식에서 패리티 데이터는 입력되는 데이터의 안정성을 위해서 스트라이프 별로 저장되는 잉여 데이터 (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 /
그리고, 데이터 입출력 제어부(110)는 목적 디스크가 접근 가능 상태인 경우 목적 디스크 상의 해당 블록 상에 저장되어 있는 데이터를 읽기 처리하여 제공한다.When the target disk is in an accessible state, the data input /
반면, 데이터 입출력 제어부(110)는 목적 디스크가 접근 불가능 상태인 경우 목적 디스크와 스트라이핑(striping)된 다른 디스크들을 이용한 레이드 방식에 따른 읽기 처리 수행을 결정한다.On the other hand, when the destination disk is in an inaccessible state, the data input /
이처럼, 목적 디스크에 대한 레이드 방식의 읽기 처리 수행이 결정되면, 데이터 입출력 제어부(110)는 요청 데이터 연산 처리부(140)로 상기 읽기 처리가 요청된 데이터에 대한 연산 처리를 요청한다.As such, when it is determined that the RAID type read processing is performed on the target disk, the data input /
한편, 본 발명의 일 실시예에 따른 데이터 입출력 제어부(110)는 메모리(120) 상의 다수의 디스크 별로 가비지 컬렉션(garbage collection) 처리 상태에 따라 상기 접근 가능 상태를 판단할 수 있다. 참고로, 가비지 컬렉션은 각 디스크 별로 사용 불가능한 저장 영역(예를 들어, 블록 단위의 저장 영역)의 데이터를 삭제 처리하여 사용 가능한 저장 영역으로 변환하는 절차이다.Meanwhile, the data input /
이때, 데이터 입출력 제어부(110)는 가비지 컬렉션 처리부(130)로부터 디스크 별 가비지 컬렉션 처리 정보를 수신하고, 수신된 가비지 컬렉션 처리 정보에 기초하여 해당 디스크의 접근 가능 여부 상태를 판단한다. 참고로, 상기 가비지 컬렉션 처리 정보에는 특정 디스크에 대한 가비지 컬렉션 허가 요청 및 가비지 컬렉션 처리 상태 중 어느 하나가 포함되어 있다.In this case, the data input /
또한, 데이터 입출력 제어부(110)는 가비지 컬렉션 처리부(130)로부터 특정 디스크에 대한 가비지 컬렉션 허가 요청을 수신하면, 기설정된 절차에 따라 해당 디스크에 대한 가비지 컬렉션 처리를 허가한다.In addition, when the data input /
구체적으로, 데이터 입출력 제어부(110)는 다수의 디스크에 대한 가비지 컬렉션 허가 요청을 수신한 경우, 상기 허가 요청이 수신된 순서에 따라 순차적으로 가비지 컬렉션 처리를 허가할 수 있다. 이때, 데이터 입출력부(110)는 하나의 디스크에 대한 가비지 컬렉션 처리가 완료된 후 다음 디크스에 대한 가비지 컬렉션 처리를 허가할 수 있다.Specifically, when the data input /
또한, 데이터 입출력부(110)는 특정 조건에 의해 가비지 컬렉션 처리부(130)로부터 자체적으로 허가된 다수의 디스크에 대한 가비지 컬렉션 처리 상태(현재 해당 디스크에 대한 가비지 컬렉션이 수행 중인 상태임을 의미함)를 수신하여 디스크 별 접근 가능 상태 여부를 관리한다.In addition, the data input /
가비지 컬렉션 처리부(130)는 다수의 디스크에 대해 각각 가비지 컬렉션(garbage collection) 처리를 수행하며, 데이터 입출력 제어부(110)로 디스크 별 사용 가능 블록의 상태에 따른 가비지 컬렉션 처리 정보를 전송한다.The garbage
이때, 가비지 컬렉션 처리부(130)는 각 디스크 별로 현재 잔여되어 있는 사용 가능한 블록(이하, ‘사용 가능 블록’이라 함)의 크기에 기초하여 복수의 단계에 따라 가비지 컬렉션 처리 정보를 생성할 수 있다.In this case, the garbage
구체적으로, 가비지 컬렉션 처리부(130)는 디스크의 사용 가능 블록의 크기가 기설정된 제 1 기준 크기 및 제 2 기준 크기 범위에 속하는 경우 데이터 입출력 제어부(110)로 가비지 컬렉션 허가를 요청한다. 그리고, 가비지 컬렉션 처리부(130)는 상기 허가 요청에 대응하여 데이터 입출력 제어부(110)로부터 허가된 가비지 컬렉션 처리를 수행한다. 참고로, 상기 제 1 및 제 2 기준 크기는 시스템 데이터 처리 성능 및 메모리 관리에 무리가 없는 사용 가능 블록 크기이다.In detail, the
또한, 가비지 컬렉션 처리부(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
요청 데이터 연산 처리부(140)는 데이터 입출력 제어부(110)로부터 읽기 처리 요청된 데이터(이하, ‘요청 데이터’라고 함)에 대한 연산 처리 요청을 수신하면, 레이드 방식을 적용하여 요청 데이터를 산출하기 위한 연산 처리를 수행한다.When the request data
이때, 요청 데이터 연산 처리부(140)는 요청 데이터가 저장된 목적 디스크와 스트라이핑된 다른 디스크들로부터 스트라이프 데이터 및 패리티 데이터를 획득한다. 그리고, 요청 데이터 연산 처리부(140)는 획득한 스트라이프 데이터 및 패리티 데이터들을 XOR(eXclusive OR) 연산하여 요청 데이터를 산출한다.In this case, the request
구체적으로, 도 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
도 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
<수학식 1>&Quot; (1) "
이와 같이, 산출된 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 /
한편, 도 3의 (b)에 도시한 바와 같이, 요청 데이터 연산 처리부(140)는 서로 스트라이핑된 디스크 중 목적 디스크를 포함한 둘 이상의 디스크가 접근 불가능 상태(즉, 가비지 컬렉션 처리 상태)인 경우, 목적 디스크의 상태 또는 목적 디스크를 제외한 나머지 스트라이핑된 디스크들 모두의 상태가 접근 가능 상태가 된 후 요청 데이터를 산출한다.On the other hand, as shown in (b) of FIG. 3, the request data
도 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
이때, 요청 데이터 연산 처리부(130)는 목적 디스크 또는 나머지 모든 스트라이핑 디스크 중 먼저 접근 가능 상태(즉, 가비지 컬렉션 처리가 완료된 상태)가 되는 디스크에 저장된 데이터를 이용하여 요청 데이터를 산출한다.At this time, the request data
구체적으로, 요청 데이터 연산 처리부(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
또한, 요청 데이터 연산 처리부(130)는 목적 디스크(Disk 2) 외의 스트라이핑 디스크(Disk 0 및 Disk 3)의 가비지 컬렉션 처리가 목적 디스크(Disk 2)의 가비지 컬렉션 처리보다 먼저 완료되는 경우, 나머지 스트라이핑 디스크들의 데이터와 패리티 데이터를 획득하여 상기 수학식 1에서와 같이 처리한다. 그리고, 요청 데이터 연산 처리부(130)는 상기 연산 처리를 통해 산출된 요청 데이터를 데이터 입출력 제어부(110)로 제공한다.In addition, the request data
이하, 도 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.
상기 다수의 디스크에 대해 각각 가비지 컬렉션(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.
상기 가비지 컬렉션 처리부는,
상기 사용 가능 블록 크기가 제 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.
상기 요청 데이터 연산 처리부는,
상기 스트라이핑된 디스크 중 상기 목적 디스크를 포함한 둘 이상의 디스크가 상기 접근 불가능 상태인 경우,
상기 목적 디스크의 상태 또는 상기 목적 디스크를 제외한 나머지 스트라이핑된 디스크들 모두의 상태가 접근 가능 상태가 된 후 상기 요청된 데이터를 산출하는 메모리 관리 장치.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.
상기 요청 데이터 연산 처리부는,
상기 목적 디스크 또는 상기 나머지 모든 스트라이핑 디스크 중 먼저 접근 가능 상태가 되는 디스크에 저장된 데이터를 이용하여 상기 요청된 데이터를 산출하는 메모리 관리 장치.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.
상기 요청 데이터 연산 처리부는,
상기 스트라이프 데이터 및 패리티 데이터에 대한 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.
상기 (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.
상기 (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.
상기 (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.
상기 (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.
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)
| 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)
| 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 |
-
2011
- 2011-10-14 KR KR1020110105479A patent/KR101335343B1/en not_active Expired - Fee Related
Patent Citations (3)
| 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 |