KR100853391B1 - Ccsds pn 고속처리 방법 - Google Patents

Ccsds pn 고속처리 방법 Download PDF

Info

Publication number
KR100853391B1
KR100853391B1 KR1020070105621A KR20070105621A KR100853391B1 KR 100853391 B1 KR100853391 B1 KR 100853391B1 KR 1020070105621 A KR1020070105621 A KR 1020070105621A KR 20070105621 A KR20070105621 A KR 20070105621A KR 100853391 B1 KR100853391 B1 KR 100853391B1
Authority
KR
South Korea
Prior art keywords
pseudo
ccsds
processing
repeated
sse2
Prior art date
Application number
KR1020070105621A
Other languages
English (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 KR1020070105621A priority Critical patent/KR100853391B1/ko
Application granted granted Critical
Publication of KR100853391B1 publication Critical patent/KR100853391B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/491Computations with decimal numbers radix 12 or 20.
    • G06F7/498Computations with decimal numbers radix 12 or 20. using counter-type accumulators
    • G06F7/4983Multiplying; Dividing
    • G06F7/4988Multiplying; Dividing by table look-up
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Image Processing (AREA)
  • Radio Relay Systems (AREA)

Abstract

본 발명은 CCSDS 의사-랜더마이저에서 CCSDS PN을 고속으로 처리하기 위한 방법으로서, 255 비트마다 반복되는 CCSDS 의사-랜덤 시퀀스를 1 바이트 단위로 정렬하는 단계와; CCSDS 의사-랜덤 시퀀스의 1 바이트 단위로의 정렬시 255 바이트마다 반복되는 CCSDS 의사-랜덤 시퀀스를, 하나의 명령어로 16 바이트의 데이터를 처리할 수 있는 SSE2에 적용하여 처리하는 단계를 포함함으로써 인공위성 수신시스템에 적용하여 인공위성 데이터를 고속으로 수신하여 실시간으로 처리할 수 있는 잇점이 있다.
CCSDS, PN, SSE2

Description

CCSDS PN 고속처리 방법{METHOD FOR HIGH SPEED PROCESS OF CCSDS PN}
본 발명은 CCSDS PN 고속처리 방법에 관한 것으로서, 특히 255 비트마다 반복되는 랜덤 비트 시퀀스를 1 바이트 단위로 정렬할 때 255 바이트마다 반복되는 특성과 인텔 스트리밍 SIMD Extensions 2.(SSE2) 기술을 적용하여 한번에 16 바이트씩 처리하여 CCSDS PN을 고속으로 처리하기 위한 방법에 관한 것이다.
위성통신을 위한 Telecommand와 Telemetry 규격은 크게 CCSDS(The Consultative Committee for Space Data System) 규격과 ESA PSS 규격, ESA PCM 규격으로 나눌 수 있다. PCM(Pulse Code Modulation) Standard는 ESA(European Space Agency)에서 1970년대에 제정하여 표준안 리포트 PSS-45(TTC-A-01 PCM Telecommand Standard)와 PSS-46(TTC-A-02 PCM Telemetry Standard)으로 발표하였으나 이들은 각각 ESA PSS-04-107 Packet Telecommand Standard와 ESA PSS-04-106 Packet Telemetry Standard로 대체되었다. ESA 규격은 ESA의 위성과 ESA의 지상 네트워크 장비에 사용되도록 제정된 규격이다.
한편, 텔레메트리 프로세싱 시스템은 텔레메트리 신호를 수신하는 동안 비트 동기화를 유지하기 위하여 최소 레벨에서 입력 신호에 비트 전이(bit transition)를 필요로 한다. 수신기가 원활하게 작동될 수 있도록 데이터 스트림은 충분하게 랜덤되어 있어야 한다. 즉, 데이터를 전송할 때 수신기가 신호를 계속적으로 수신하기 위해서는 최소한의 비트 변화가 필요한 것이다. 그런데, 데이터를 전송하다보면 일정한 시간동안 동일한 데이터 패턴이 송신될 수 있다. 이러한 경우, 수신기는 데이터가 더 이상 수신되지 않는 것으로 간주하고 수신을 중단하게 된다. 의사 노이즈(Pseudo-Noise:PN) 코드는 비트 전이를 제공할 수 있다.
CCSDS는 변조 및 코딩 구성의 모든 조합을 위해 충분한 랜덤을 확보할 수 있는 의사-랜더마이저(Pseudo-randomizer)를 정의하였다. CCSDS의 패킷 통신은 많은 인공위성 시스템에 널리 사용된다. 충분한 비트 변이를 확보하기 위한 방법은 표준 의사-랜덤 시퀀스(Pscudo-Random sequence)를 가지고 코드 블록 또는 전송 프레임의 각 비트를 exclusive-OR 연산하는 것이다. 송신단의 구성은 도 1과 같다. 그리고, 원래의 코드 블록 또는 전송 구조는 수신단에서 동일한 의사-랜덤 시퀀스를 사용하여 복원된다.
CCSDS 의사-랜덤 시퀀스는 다음의 수학식에 의해 구할 수 있다.
Figure 112007075006919-pat00001
상기 시퀀스는 코드 블록 또는 전송 프레임의 마지막까지 반복적으로 계속하면서, 코드 블록 또는 전송 프레임의 첫번째 비트에서 시작하고 255 비트 후에 반 복된다. 시퀀스 발생기는 코드 블록 또는 전송 프레임의 스타트에서 "all ones" 상태로 초기화된다. 도 2는 CCSDS 의사-랜더마이저의 로직 다이어그램이다. 시퀀스 발생기로부터 CCSDS 의사-난수 시퀀스의 첫번째 40 비트는 다음과 같다. 가장 왼쪽의 비트는 시퀀스의 첫번째 비트이다.
1111 1111 0100 1000 0000 1110 1100 0000 1001 1010
한편, 고해상 인공위성의 이미지는 거대한 양의 데이터 사이즈를 갖고 있다. 따라서, 수신 시스템은 고해상 인공위성 이미지의 어플리케이션으로서 이미지 데이터를 초고속으로 수신하여 실시간으로 처리해야 할 필요성이 있다. 그러나, 소프트웨어에 의한 방법으로 CCSDS PN을 처리할 때 많은 시간을 소비하고 있는 실정이다.
이에 본 발명은 상기와 같은 문제점을 해결하기 위한 것으로서, 인공위성 이미지 데이터를 고속으로 수신하여 실시간으로 처리할 수 있도록 255 비트마다 반복되는 랜덤 비트 시퀀스를 1 바이트 단위로 정렬하여 255 바이트마다 반복되는 특성과 인텔 스트리밍 SIMD Extensions 2. 기술을 적용하여 한번에 16 바이트씩 처리함으로써 CCSDS PN을 고속으로 처리하기 위한 방법을 제공하는데 그 목적이 있다.
상기와 같은 목적을 달성하기 위하여 본 발명에 따른 CCSDS 의사-랜더마이저에서 CCSDS PN을 고속으로 처리하기 위한 방법은, 255 비트마다 반복되는 CCSDS 의사-랜덤 시퀀스를 1 바이트 단위로 정렬하는 단계와; CCSDS 의사-랜덤 시퀀스의 1 바이트 단위로의 정렬시 255 바이트마다 반복되는 CCSDS 의사-랜덤 시퀀스를, 하나의 명령어로 16 바이트의 데이터를 처리할 수 있는 SSE2에 적용하여 처리하는 단계를 포함하여 이루어진 것을 특징으로 한다.
삭제
삭제
삭제
삭제
삭제
삭제
본 발명에 따른 CCSDS PN 고속처리 방법은 인공위성 수신시스템에 적용하여 인공위성 데이터를 고속으로 수신하여 실시간으로 처리할 수 있는 잇점이 있다.
이하, 첨부된 도면을 참조하여 본 발명을 상세히 설명하기로 한다.
도 3은 본 발명에 따른 CCSDS PN를 고속 처리하는 과정을 설명하는 흐름도, 도 4는 본 발명에 적용되는, 정렬된 의사-랜덤 시퀀스의 바이트 반복 특성을 나타내는 도면, 도 5는 본 발명에 적용되는, 정렬된 CCSDS 의사-랜덤 시퀀스의 바이트를 나타내는 도면, 도 6은 본 발명에 적용되는 반복 구조를 이용한 바이트 처리를 설명하는 도면, 도 7은 본 발명에 적용되는 SSE2 처리 구조를 설명하기 위한 도면이다.
도 2와 같은 로직 다이어그램은 의사-랜더마이저를, 간단한 구조를 갖는 하드웨어로 구현할 때 적합한 형태이다.
본 발명에 따른 CCSDS PN를 고속 처리하는 방법은 의사-랜더마이저를 소프트웨어로 구현하는 방법에 관한 것이다.
도 3에 도시한 바와 같이, 먼저 255 비트마다 반복되는 CCSDS 의사-랜덤 시퀀스를 1 바이트 단위로 정렬하고, 1 바이트 단위로 정렬함에 따라 255 바이트마다 반복되는 CCSDS 의사-랜덤 시퀀스의 특성을 이용하여 처리한다(S100),(S110). 구체적으로 설명하자면, 의사-랜더마이저를 소프트웨어로 구현하게 되면 모든 비트별로 계산을 해야하기 때문에 처리시간이 오래 걸린다. 그렇지만, 255 비트마다 반복되는 CCSDS 의사-랜덤 시퀀스의 반복적인 구조를 이용하면 처리시간을 대폭 줄일 수가 있다. 그런데, 의사-랜덤 시퀀스의 반복적인 구조를 소프트웨어에 적용하기 위해서는 의사-랜덤 시퀀스를 컴퓨터의 최소 메모리 크기인 바이트 단위로 정렬해야만 한다. 의사-랜덤 시퀀스는 1 바이트씩 묶으면 도 4와 같이 255 바이트 후에 다시 반복되는 특성이 있다.
의사-랜덤 시퀀스를 바이트로 정렬한 결과는 도 5와 같다. 그리고, 의사-랜덤 시퀀스가 255 바이트마다 반복되는 특성을 이용한 Look-up 테이블을 구성하여 연산하는 방법은 도 6과 같다.
한편, 의사-랜덤 시퀀스를 1 바이트씩 처리하면 1 비트씩 처리할 때보다는 처리 시간을 줄일 수 있으나, Kompsat2와 같이 고해상도 위성 영상을 수신할 때 실시간 데이터 처리를 하기 위한 처리 속도에는 미치지 못한다.
따라서, 본 발명에서는 추가적으로 상기 S110 단계에서 CCSDS 의사-랜덤 시퀀스의 특성을 이용하여 처리된 CCSDS 의사-랜덤 시퀀스를, 하나의 명령어로 16 바이트의 데이터를 처리할 수 있는 SSE2에 적용하여 처리한다(S120). 즉, 인텔 스트리밍 SIMD Extensions 2.(SSE2) 기술을 이용하여 한번에 16 바이트씩 처리하는 것이다.
SSE2 기술에 대하여 구체적으로 설명하면 다음과 같다.
SSE2는 인텔이 2000년 11월에 발표한 마이크로프로세서인 펜티엄 4에 적용된 기술이다. 144개의 새로운 명령어, 128 비트 길이의 SIMD 정수연산 및 128비트 길이의 배 정도 부동소수점 명령어로 구성되어 있다.
SSE2는 하나의 명령어로 여러 데이터를 동시에 연산하는 SIMD(Single Instruction Multiple Data) 기술로서 인텔에서 MMX technology에 도입한 개념이다. 여러 데이터를 하나의 명령어로 처리할 수 있기 때문에 같은 연산을 대량의 데이터에 적용하는 경우 처리시간을 줄일 수 있다. 예컨대, SSE2를 적용하지 않을 경우 32바이트 데이터를 처리하기 위해서 같은 명령어를 32번 반복적으로 처리해야 하지만 SSE2를 적용할 경우 도 7과 같이 한번에 최대 16 바이트의 데이터를 하나의 명령어로 처리할 수 있으므로 단지 2개의 명령어로 처리가 가능한 것이다.
결과적으로, 도 6과 같이 의사-랜덤 시퀀스의 바이트 단위 반복특성을 이용한 연산을 최대 16 바이트 데이터를 하나의 연산 명령으로 처리를 할 수 SSE2에 적용하게 되면 처리성능의 현저한 향상을 가져올 수가 있다. CCSDS 의사-랜더마이저에서 사용하는 연산은 의사-랜덤 시퀀스가 look-up 테이블로 구성되어 있을 경우 도 6에 도시한 바와 같이 exclusive-OR 연산 뿐이다. 따라서, 16 바이트씩 한번에 처리할 수 있는 Look-up 테이블를 구성하여 이용하면 처리는 매우 간단해진다. Look-up 테이블의 크기는 다음의 수학식 2에 나타난 바와 같이 코드 블록 또는 전송 프레임의 사이즈보다 큰 16의 배수 중 최소이다.
Figure 112007075006919-pat00004
[실험예]
도 8은 본 발명에 따른 SSE2를 적용한 구현과 적용하지 않은 구현에 대한 처리시간의 비교 그래프이다.
먼저, 실험은 Intel(R) Pentium(R)4 3.2GHz를 사용하여 1,020 바이트 크기의 데이터 블록을 100,000회부터 50,000회 단위로 10회 반복 처리하여 평균을 내는 방법으로 수행하였다.
다음의 표 1은 각 횟수별 처리시간을 측정한 결과이고, 표 2는 각 횟수별 처리 데이터 레이트를 계산한 것이다.
Figure 112007075006919-pat00005
Figure 112007075006919-pat00006
실험 결과, 표 1,2에 나타난 바와 같이 SSE2를 적용한 기법의 경우와 적용하지 않은 경우의 처리속도를 비교할 때 약 24배의 성능차가 있음을 알 수 있었다.
SSE2를 적용하지 않고 단지 Cyclic structure만을 이용하였을 경우에는 처리 데이터 레이트가 평균 108.13 Mbps이므로 Kompsat2와 같은 고해상도 위성영상을 실시간으로 수신 처리하는 것이 불가능함을 알 수 있다. 그렇지만, SSE2를 적용한 경우에는 처리 데이터 레이트가 평균 2.57Gbps로 SSE2를 적용하지 않았을 경우보다 약 24배 빠른 처리속도를 가지기 때문에 고해상도 위성영상을 실시간으로 수신 처리할 수 있다.
CCSDS PN 처리 소프트웨어는 KOMPSAT-2 수신처리 시스템에 적용하여 실용성을 확인하였다. 또한 KOMPSAT-2의 데이터 레이트보다 훨씬 빠른 처리속도를 가지고 있기 때문에 향후 더 큰 데이터 크기를 갖는 영상을 빠른 시간에 전송하는 타 위성 수신시스템에도 적용이 가능할 것으로 기대된다.
도 1은 의사-랜더마이저의 구성도.
도 2는 일반적인 CCSDS 의사-랜더마이저의 로직 다이어그램.
도 3은 본 발명에 따른 CCSDS PN를 고속 처리하는 과정을 설명하는 흐름도.
도 4는 본 발명에 적용되는, 정렬된 의사-랜덤 시퀀스의 바이트 반복 특성을 나타내는 도면.
도 5는 본 발명에 적용되는, 정렬된 CCSDS 의사-랜덤 시퀀스의 바이트를 나타내는 도면.
도 6은 본 발명에 적용되는 반복 구조를 이용한 바이트 처리를 설명하는 도면.
도 7은 본 발명에 적용되는 SSE2 처리 구조를 설명하기 위한 도면.
도 8은 본 발명에 따른 SSE2를 적용한 구현과 적용하지 않은 구현에 대한 처리시간의 비교 그래프.

Claims (3)

  1. 삭제
  2. 고해상도 인공위성 이미지 데이터를 고속으로 수신하여 실시간으로 처리하기 위하여 CCSDS(Consultative Committee for Space Data Systems) 의사-랜더마이저(pseudo-randomizer)에서 CCSDS 의사-잡음(Pseudo-Noise, PN)을 고속으로 처리하기 위한 방법으로서,
    상기 고속처리방법은 255 비트마다 반복되는 CCSDS 의사-랜덤 시퀀스 (pseudo-random noise sequence)를 1 바이트 단위로 정렬하는 단계와;
    상기 CCSDS 의사-랜덤 시퀀스의 1 바이트 단위로의 정렬시 255 바이트마다 반복되는 CCSDS 의사-랜덤 시퀀스를, 하나의 명령어로 16 바이트의 데이터를 처리할 수 있는 SSE2.에 적용하여 SSE2.에 적용하지 않은 경우에 비하여 약 24배속으로 처리하는 단계를 포함하여 이루어진 것을 특징으로 하는 CCSDS PN 고속처리 방법
  3. 삭제
KR1020070105621A 2007-10-19 2007-10-19 Ccsds pn 고속처리 방법 KR100853391B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070105621A KR100853391B1 (ko) 2007-10-19 2007-10-19 Ccsds pn 고속처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070105621A KR100853391B1 (ko) 2007-10-19 2007-10-19 Ccsds pn 고속처리 방법

Publications (1)

Publication Number Publication Date
KR100853391B1 true KR100853391B1 (ko) 2008-08-21

Family

ID=39878324

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070105621A KR100853391B1 (ko) 2007-10-19 2007-10-19 Ccsds pn 고속처리 방법

Country Status (1)

Country Link
KR (1) KR100853391B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101070493B1 (ko) 2010-07-16 2011-10-05 한양대학교 산학협력단 우주 통신을 위한 의사 잡음 시퀀스 발생 장치 및 방법
KR101356680B1 (ko) 2013-09-03 2014-01-29 주식회사 신명전자 표면실장부품의 정렬장치

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR980013070A (ko) * 1996-07-01 1998-04-30 배순훈 디지탈 통신 시스템의 스크램블러
KR19980041743A (ko) * 1996-11-29 1998-08-17 윤종용 디지탈비트스트림의 의사랜덤화방법 및 장치와 복조기
KR0175416B1 (ko) * 1994-12-26 1999-04-01 가네꼬 히사시 의사난수 잡음 발생 장치 및 방법
KR20000029073A (ko) * 1998-10-14 2000-05-25 루센트 테크놀러지스 인크 시디엠에이 복조기에서의 다중 정합 필터 의사 노이즈벡터 발생 방법 및 장치
KR20020035584A (ko) * 1999-08-31 2002-05-11 러셀 비. 밀러 비트들을 병렬로 계산하여 각 클록 펄스로 다수 비트의의사 잡음 시퀀스를 발생시키기 위한 방법 및 장치
KR20050062668A (ko) * 2003-12-19 2005-06-27 한국항공우주연구원 Aqua 위성의 각 센서별 데이터로부터 레벨-0 국제표준 프로덕션 데이터 셋 파일의 실시간 생성방법 및 그장치

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0175416B1 (ko) * 1994-12-26 1999-04-01 가네꼬 히사시 의사난수 잡음 발생 장치 및 방법
KR980013070A (ko) * 1996-07-01 1998-04-30 배순훈 디지탈 통신 시스템의 스크램블러
KR19980041743A (ko) * 1996-11-29 1998-08-17 윤종용 디지탈비트스트림의 의사랜덤화방법 및 장치와 복조기
KR20000029073A (ko) * 1998-10-14 2000-05-25 루센트 테크놀러지스 인크 시디엠에이 복조기에서의 다중 정합 필터 의사 노이즈벡터 발생 방법 및 장치
KR20020035584A (ko) * 1999-08-31 2002-05-11 러셀 비. 밀러 비트들을 병렬로 계산하여 각 클록 펄스로 다수 비트의의사 잡음 시퀀스를 발생시키기 위한 방법 및 장치
KR20050062668A (ko) * 2003-12-19 2005-06-27 한국항공우주연구원 Aqua 위성의 각 센서별 데이터로부터 레벨-0 국제표준 프로덕션 데이터 셋 파일의 실시간 생성방법 및 그장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101070493B1 (ko) 2010-07-16 2011-10-05 한양대학교 산학협력단 우주 통신을 위한 의사 잡음 시퀀스 발생 장치 및 방법
KR101356680B1 (ko) 2013-09-03 2014-01-29 주식회사 신명전자 표면실장부품의 정렬장치

Similar Documents

Publication Publication Date Title
US8065584B2 (en) Transmitting data words
EP3043497A1 (en) Data processing method and device
US7415112B2 (en) Parallel scrambler/descrambler
US20070168835A1 (en) Serial communications system and method
CN106416307B (zh) 传输信息的方法、网络设备和终端设备
CN104618058A (zh) 基于ldpc编码的中速率逐帧可变调制器
KR100853391B1 (ko) Ccsds pn 고속처리 방법
CN111355820B (zh) 一种数据传输方法、终端及电子设备
CN113783657A (zh) 一种数据流处理方法及装置
CN108282249A (zh) 一种控制信息的传输方法和装置
Ferrara et al. Practical implementation of identification codes
CN111400232B (zh) 一种基于数据位宽展开的scramble与descramble硬件实现方法
KR20100028171A (ko) 무선통신 시스템에서 스크램블링 장치 및 방법
CN114095055B (zh) 低码率双正交码编码的扩频方法及装置
WO2016040163A1 (en) Inroute burst header in a vsat system
KR890000101B1 (ko) 의사 난수 순차 발생기를 사용하는 결합된 스크램블러-인코오더
JPH05183447A (ja) 改善された誤まり検出符号化システム
EP3900241A1 (en) Apparatus and method for sending side-channel bits on an ethernet cable
WO2023057366A1 (en) A method for a transmitter to transmit a signal to a receiver in a communication system, and corresponding receiving method, transmitter, receiver and computer program.
US6424641B1 (en) Searcher architecture for CDMA systems
US20190260494A1 (en) Method and system for accurate ipg compensation of usxgmii multi-channel
CN108268417B (zh) 一种数据加、解扰电路及方法
JP2016134872A (ja) 送信装置及び受信装置
JP2016134873A (ja) 送信装置及び受信装置
US7006527B1 (en) Multistage pipeline bit conversion

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130611

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140613

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170804

Year of fee payment: 10