KR101486547B1 - Ldma방법을 이용한 ipc장치 - Google Patents

Ldma방법을 이용한 ipc장치 Download PDF

Info

Publication number
KR101486547B1
KR101486547B1 KR20130055246A KR20130055246A KR101486547B1 KR 101486547 B1 KR101486547 B1 KR 101486547B1 KR 20130055246 A KR20130055246 A KR 20130055246A KR 20130055246 A KR20130055246 A KR 20130055246A KR 101486547 B1 KR101486547 B1 KR 101486547B1
Authority
KR
South Korea
Prior art keywords
read
write
data
value
header
Prior art date
Application number
KR20130055246A
Other languages
English (en)
Other versions
KR20140135021A (ko
Inventor
조성민
윤영삼
Original Assignee
(주)한국거래소
주식회사 코스콤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)한국거래소, 주식회사 코스콤 filed Critical (주)한국거래소
Priority to KR20130055246A priority Critical patent/KR101486547B1/ko
Publication of KR20140135021A publication Critical patent/KR20140135021A/ko
Application granted granted Critical
Publication of KR101486547B1 publication Critical patent/KR101486547B1/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
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본원 발명의 바람직한 일 실시예로서, LDMA(Local Direct Memory Access) 방법을 이용한 IPC(Inter Process Communication) 장치는 공유 메모리; 상기 공유 메모리 헤더에 저장된 상기 write_position 정보를 확인한 후, 해당 블락 내의 write_count 값과 read_count 값이 같은 경우 해당 블락에 데이터를 기록하고,또한 상기 헤더 내의 read_position 정보를 확인하여 해당 블랙 내의 write_count 값이 read_count 값보다 큰 경우 해당 블락의 데이터를 판독하는 것을 특징으로 한다.

Description

LDMA방법을 이용한 IPC장치{Apparatus for Inter Process Communication using Local Direct Memory Access}
본원 발명은 LDMA(Local Direct Memory Access) 방법을 이용한 IPC(Inter Process Communication) 통신 방법에 관한 것이다.
초고속 정보 통신망을 근간으로 구축되는 정보화 시대에서 실현되는 서비스들은 문자, 음성, 영상을 통해 보고 듣는 멀티미디어형 서비스로 발전하고 있다. 이에 따라, 시스템의 프로세서는 대용량의 데이터를 처리한다. 특히, 멀티미디어 및 영상 데이터와 같은 대용량 데이터의 전송 시, 시스템의 프로세서는 매우 빈번히 메모리를 액세스한다.
시스템의 성능은 데이터를 처리하는 주변 장치와 메모리 장치 사이의 데이터 전송 속도에 의해서 크게 좌우될 수 있다. 시스템의 성능을 향상시키기 위해서 다이렉트 메모리 액세스(DMA: Direct Memory Access) 전송 기술이 사용된다.
한편, 최근의 시스템은 프로세서 및 메모리 장치(또는 복수의 메모리 장치들)가 복수의 주변 장치들과 연결된다. 이에 따라, 메모리 장치와 주변 장치들 사이의 데이터 전송이 빠르고 효율적으로 수행되도록 요구된다.
KR 2012-0066999
본원 발명에서는 IPC(Inter Process Communication) 통신시 LDMA(Local Direct Memory Access) 방법을 이용하여 futex가 블락되는 횟수를 최소화 하고자 한다.
또한 본원 발명에서는 두 개 이상의 프로세스에서 공유 메모리 내의 write position과 read position을 동시에 참조하여 cacheline hit율이 감소하는 것을 방지하고자 한다.
본원 발명의 바람직한 일 실시예로서, 이상의 문제점을 해결하기 위해 고안된 LDMA(Local Direct Memory Access) 방법을 이용한 IPC(Inter Process Communication) 장치는 헤더와 바디로 구성이 되고, 상기 바디는 블락들로 구성되며, 상기 헤더는 판독되지 않은 데이터의 개수를 표시하는 futex 정보, 데이터가 기록되는 블락의 위치 정보를 표시하는 write_position 정보, 데이터가 판독될 블락의 위치 정보를 표시하는 read_position 정보 및 공유 메모리 크기 정보를 포함하고, 상기 블락 각각은 데이터의 크기, 데이터 정보, 데이터를 기록한 개수를 표시하는 write_count 정보 및 데이터를 판독한 개수를 표시하는 read_count 정보를 포함하는 공유 메모리; 상기 공유 메모리 헤더에 저장된 상기 write_position 정보를 확인한 후, 해당 블락 내의 write_count 값과 read_count 값이 같은 경우 해당 블락에 데이터를 기록하고, write_count의 값, write_position 값 및 futex 값을 각각 1씩 증가 시키는 송신부; 및 상기 공유 메모리 헤더에 저장된 futex 정보가 0을 초과하는 경우, futex 값을 1씩 감소 시키고, 상기 헤더 내의 read_position 정보를 확인하여 해당 블랙 내의 write_count 값이 read_count 값보다 큰 경우 해당 블락의 데이터를 판독하고, read_count 값 및 read_position 값을 1씩 증가 시키는 수신부;를 포함하는 것을 특징으로 한다.
바람직하게, 상기 송신부는 상기 블락 각각에 포함된 데이터의 크기, 데이터 정보 및 데이터를 기록한 개수를 표시하는 write_count 정보에만 접속하는 것을 특징으로 한다.
바람직하게, 상기 수신부는 상기 블락 각각에 포함된 데이터의 크기, 데이터 정보, 및 데이터를 판독한 개수를 표시하는 read_count 정보에만 접속하는 것을 특징으로 한다.
본 발명의 바람직한 일 실시예에서 송신부는 헤더 내의 write_position 정보에만 접속하고 수신부는 헤더 내의 read_position 정보에만 접속하므로, 캐쉬라인 히트율이 높아지는 효과가 있다.
본 발명에서는 각 블락 내에 write_count 정보 및 read_count 정보를 별도로 두어, 두 개 이상의 프로세스가 동시에 하나의 data에 접근하는 경우의 비중을 현저하게 낮추어 캐쉬라인 히트율이 높아지는 효과가 있다.
도 1 은 본 발명의 바람직한 일 실시예로서, LDMA(Local Direct Memory Access) 방법을 이용한 IPC(Inter Process Communication) 장치(200)를 도시한다.
도 2 는 본 발명의 바람직한 일 실시예로서, 송신 프로세스가 데이터를 기록한 후, 수신 프로세스가 동작을 개시한 일 예를 도시한다.
도 3 는 본 발명의 바람직한 일 실시예로서, LDMA(Local Direct Memory Access) 동작 방법의 흐름도를 도시한다.
도 4(a) 내지 (d)는 송신 프로세스에서 LDMA(Local Direct Memory Access)를 통해 공유 메모리에 데이터를 기록하는 일 실시예를 도시한다.
도 5(a) 내지 (d)는 LDMA(Local Direct Memory Access)를 통해 송신 프로세스에서 공유 메모리에 데이터를 기록하고, 수신 프로세스에서 공유 메모리의 데이터를 판독하는 일 실시예를 도시한다.
전술한 목적을 달성하기 위한 본 발명에 다른 SAF 세션에 위치한 요소 스트림 참조를 위한 방법은 첨부한 도면과 관련한 상세한 설명을 통하여 보다 분명해 질 것인바 이하, 첨부된 도면을 참조하여 본 발명에 따른 일실시예를 자세히 설명하기로 한다.
도 1 은 본 발명의 바람직한 일 실시예로서, LDMA(Local Direct Memory Access) 방법을 이용한 IPC(Inter Process Communication) 장치(200)를 도시한다.
상기 장치(200)는 공유메모리(110), 송신부(100) 및 수신부(120)을 포함한다.
공유메모리(110)는 헤더(111)와 바디(112)로 구성이 되고, 상기 바디(112)는 블락들로 구성된다.
헤더(111)는 모든 프로세스가 공통으로 접근이 가능하다. 일 예로, 송신부(100) 및 수신부(120)에서는 헤더(111) 내의 정보에 접속이 가능하다. 헤더(111)는 판독되지 않은 데이터의 개수를 표시하는 futex 정보, 데이터가 기록되는 블락의 위치 정보를 표시하는 write_position 정보, 데이터가 판독될 블락의 위치 정보를 표시하는 read_position 정보 및 공유 메모리 크기 정보를 포함한다.
바디(112)를 구성하는 각 블락은 데이터의 크기, 데이터 정보, 데이터를 기록한 개수를 표시하는 write_count 정보 및 데이터를 판독한 개수를 표시하는 read_count 정보를 포함한다.
송신부(100)에서는 헤더(111)의 정보에 접속하여 데이터가 기록된 블락의 위치 정보를 표시하는 write_position 정보를 기초로, 바디(112) 내의 해당 블락을 확인한다. 그 후, 각 블락 내에 저장된 write_count 값과 read_count 값이 같은 경우 해당 블락에 데이터를 기록하고, write_count의 값, write_position 값 및 futex 값을 각각 1씩 증가 시킨다.
수신부(120)에서는 헤더(111)에 접속하여 판독되지 않은 데이터가 있는지 여부를 futex 정보를 기초로 파악한다. 헤더(111)에 저장된 futex 정보가 0을 초과하는 경우, futex 값을 1씩 감소 시키고, 헤더(111) 내의 read_position 정보를 확인하여 해당 블랙 내의 write_count 값이 read_count 값보다 큰 경우 해당 블락의 데이터를 판독하고, read_count 값 및 write_position 값을 1씩 증가 시킨다.
도 2 는 본 발명의 바람직한 일 실시예로서, 송신 프로세스가 데이터를 기록한 후, 수신 프로세스가 동작을 개시한 일 예를 도시한다. 송신 프로세스에서는 공유 메모리의 헤더 정보에 접속(S210)하여, 데이터를 기록할 블록의 write_count 값과 read_count 값이 같은지 여부를 확인한다. 송신 프로세스에서 블록에 처음 데이터를 기록할 때는 write_count 값과 read_count 값은 초기값으로 0이 설정되어 있으므로(도 4a 참고),데이터를 기록한다(S220). 데이터를 기록한 후, write_count의 값, write_position 값 및 futex 값을 각각 1씩 증가 시킨다(S230).
본 발명의 바람직한 일 실시예로서, S210~S230의 과정을 수행한 후 수신 프로세스가 동작을 개시한 경우를 가정한다. 수신 프로세스에서는 공유 메모리 내의 헤더 정보에 접속하여(S240), futex 값이 1 이므로, 판독을 개시한다(S250). futex 값이 0인 경우에는 수신 프로세서에서는 판독을 개시하지 않도록 구현될 수 있다.
판독을 개시한 후, futex 값을 1 감소시킨다(S260). 이후 해당 블록 내의 write_count 값과 read_count 값을 확인하여 write_count 값이 read_count 값보다 큰 경우에만 데이터를 판독한다. 도 2 의 일 실시예에서는 write_count 값이 1 이고, read_count 값이 0이므로 데이터 판독을 개시한다(S270). 그 후, read_count 값과 read_position 값을 1씩 증가 시킨다.
도 3 는 본 발명의 바람직한 일 실시예로서, LDMA(Local Direct Memory Access) 동작 방법의 흐름도를 도시한다. 도 4(a) 내지 (d)는 송신 프로세스에서 LDMA(Local Direct Memory Access)를 통해 공유 메모리에 데이터를 기록하는 일 실시예를 도시한다. 도 5(a) 내지 (d)는 LDMA(Local Direct Memory Access)를 통해 송신 프로세스에서 공유 메모리에 데이터를 기록하고, 수신 프로세스에서 공유 메모리의 데이터를 판독하는 일 실시예를 도시한다.
본 발명의 바람직한 일 실시예로서, 공유 메모리는 헤더와 바디로 구성이 되고, 바디는 블락들로 구성된다. 헤더에는 데이터를 공유 메모리의 바디 내에서 어느 블락에 기록하고 있는지를 표시하는 write_position 정보(301), 어느 블락 내의 데이터를 판독하고 있는지를 표시하는 read_position 정보(302) 및 판독되지 않은 데이터의 개수를 표시하는 futex 정보(303)를 저장하도록 구현되고, 각 블락은 데이터를 기록한 개수를 표시하는 write_count 정보(311)와 데이터를 판독한 개수를 표시하는 read_count 정보(312)가 저장된다. 공유 메모리에 저장되어 있는 정보의 초기값은 모두 0으로 설정할 수 있다.
송신 프로세스 측에서는 write_position 정보를 확인한 후, write_count 정보와 read_count 정보가 동일한 경우에만, 해당 블록 내에 데이터를 기록한다(S320). 데이터를 기록한 후, write_count의 값과 futex 값을 각각 1씩 증가 시키고, 이 후 write_position의 값을 1 증가 시킨다(S321, S322, S323).
도 4(a)를 참고하면, 송신 프로세스 측에서는 공유 메모리의 헤더에 저장된 write_position 정보 D0를 확인한 후, D0 블락 내의 write_count 정보와 read_count 정보 값을 확인한다. 각 블락 D0 , D1 , D2 ,...은 write_count 정보와 read_count 정보 값의 초기값으로 0을 설정할 수 있다.
송신 프로세스에서는 write_count 정보와 read_count 정보 값이 같은 경우(S320), D0 블락 내에 데이터를 기록하고, write_count의 값과 futex 값을 각각 1씩 증가 시키고, 이 후 write_position의 값을 1 증가 시킨다(S321, S322, S323).
도 4(b)를 참고하면, write_count=1, futex=1이 되고, write_position =D1 이 된다. 도 4(a) 및 (b)와 유사한 방법으로, 송신 프로세스 측에서는 또한 공유 메모리의 헤더에 저장된 write_position 정보 D1를 확인한 후, D1 블락 내의 write_count 정보와 read_count 정보 값을 확인한다. write_count 정보와 read_count 정보 값이 동일하므로, 송신 프로세스에서는 D1 블락 내에 데이터를 기록하고, write_count의 값과 futex 값을 각각 1씩 증가 시키고, 이 후 write_position의 값을 1 증가 시키도록 구현될 수 있다.
수신 프로세스 측에서는 futex 값이 0인 경우에만, 판독할 데이터가 없는 것으로 처리된다. 수신 프로세스에서는 futex 값을 확인 한 후 0이 아니면(S330), 데이터 판독을 개시하고 futex 값을 1씩 감소한다(S331). 이 후, 수신 프로세스에서는 read_position D0를 확인한 후, D0 블락 내의 write_count 정보와 read_count 정보 값을 확인한다.
수신 프로세스에서는 write_count 값이 read_count 값보다 더 큰 경우에만 판독을 개시하고(S332), 데이터를 판독한 이후에는 read_count 값과 read_position 값을 각각 1씩 증가시킨다(S333, S334).
도 5 (a) 내지 (b)를 참고하면, 수신 프로세스는 D0 블락 내의 write_count 정보와 read_count 정보 값을 확인 한 후, write_count 값이 read_count 값보다 더 크므로, 데이터를 판독하고 데이터를 판독한 이후에는 read_count 값과 read_position 값을 각각 1씩 증가시킨다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플라피디스크, 광데이터 저장장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상 도면과 명세서에서 최적 실시예들이 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (5)

  1. 헤더와 바디로 구성이 되고, 상기 바디는 블락들로 구성되며, 상기 헤더는 판독되지 않은 데이터의 개수를 표시하는 futex 정보, 데이터가 기록되는 블락의 위치 정보를 표시하는 write_position 정보, 데이터가 판독될 블락의 위치 정보를 표시하는 read_position 정보 및 공유 메모리 크기 정보를 포함하고, 상기 블락 각각은 데이터의 크기, 데이터 정보, 데이터를 기록한 개수를 표시하는 write_count 정보 및 데이터를 판독한 개수를 표시하는 read_count 정보를 포함하는 공유 메모리;
    상기 공유 메모리 헤더에 저장된 상기 write_position 정보를 확인한 후, 해당 블락 내의 write_count 값과 read_count 값이 같은 경우 해당 블락에 데이터를 기록하고, write_count의 값, write_position 값 및 futex 값을 각각 1씩 증가 시키는 송신부; 및
    상기 공유 메모리 헤더에 저장된 futex 정보가 0을 초과하는 경우, futex 값을 1씩 감소 시키고, 상기 헤더 내의 read_position 정보를 확인하여 해당 블랙 내의 write_count 값이 read_count 값보다 큰 경우 해당 블락의 데이터를 판독하고, read_count 값 및 read_position 값을 1씩 증가 시키는 수신부;를 포함하는 것을 특징으로 하는 LDMA(Local Direct Memory Access) 방법을 이용한 IPC(Inter Process Communication) 장치.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 송신부 및 상기 수신부는 상기 헤더 내의 정보에 접속이 가능한 것을 특징으로 하는 LDMA(Local Direct Memory Access) 방법을 이용한 IPC(Inter Process Communication) 장치.
  4. 제 1 항에 있어서,
    상기 송신부는 상기 헤더 내의 상기 write_position 정보에만 접속하는 것을 특징으로 하는 LDMA(Local Direct Memory Access) 방법을 이용한 IPC(Inter Process Communication) 장치.
  5. 제 1 항에 있어서,
    상기 수신부는 상기 헤더 내의 상기 read_position 정보에만 접속하는 것을 특징으로 하는 LDMA(Local Direct Memory Access) 방법을 이용한 IPC(Inter Process Communication) 장치.




KR20130055246A 2013-05-15 2013-05-15 Ldma방법을 이용한 ipc장치 KR101486547B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20130055246A KR101486547B1 (ko) 2013-05-15 2013-05-15 Ldma방법을 이용한 ipc장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130055246A KR101486547B1 (ko) 2013-05-15 2013-05-15 Ldma방법을 이용한 ipc장치

Publications (2)

Publication Number Publication Date
KR20140135021A KR20140135021A (ko) 2014-11-25
KR101486547B1 true KR101486547B1 (ko) 2015-01-27

Family

ID=52455868

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130055246A KR101486547B1 (ko) 2013-05-15 2013-05-15 Ldma방법을 이용한 ipc장치

Country Status (1)

Country Link
KR (1) KR101486547B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101716861B1 (ko) * 2016-10-04 2017-03-15 (주)볼트마이크로 영상데이터 관리 장치 및 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050080704A (ko) * 2004-02-10 2005-08-17 삼성전자주식회사 프로세서간 데이터 전송 장치 및 방법
KR20120134918A (ko) * 2011-06-03 2012-12-12 삼성전자주식회사 복수의 프로세서를 포함하는 전자 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050080704A (ko) * 2004-02-10 2005-08-17 삼성전자주식회사 프로세서간 데이터 전송 장치 및 방법
KR20120134918A (ko) * 2011-06-03 2012-12-12 삼성전자주식회사 복수의 프로세서를 포함하는 전자 장치

Also Published As

Publication number Publication date
KR20140135021A (ko) 2014-11-25

Similar Documents

Publication Publication Date Title
CN111930676B (zh) 多处理器间的通信方法、装置、系统及存储介质
US20140068134A1 (en) Data transmission apparatus, system, and method
US9342700B2 (en) Implementing enhanced security with storing data in DRAMs
US11838881B2 (en) Method and device for transmitting synchronization signal block based on added time window, and storage medium
CN104657366B (zh) 海量日志写入数据库的方法、装置和日志容灾系统
US20150143045A1 (en) Cache control apparatus and method
CN110764924A (zh) 一种多核处理器的核间通信方法及装置
KR101486547B1 (ko) Ldma방법을 이용한 ipc장치
CN110232029A (zh) 一种基于索引的fpga中ddr4包缓存的实现方法
JP2010211322A (ja) ネットワークプロセッサ、受信コントローラ、及びデータ受信処理方法
US20200341653A1 (en) Method, network adapter and computer program product for processing data
CN110018792B (zh) 一种待落盘数据处理方法、装置、电子设备及存储介质
US20110283068A1 (en) Memory access apparatus and method
CN113222807B (zh) 数据存储器、数据存储、读取方法、芯片及计算机设备
WO2013086847A1 (zh) 核间通信的方法及核处理器
US8856461B2 (en) Request controlling
US9348744B2 (en) Implementing enhanced reliability of systems utilizing dual port DRAM
CN107689996B (zh) 数据传输方法、装置及终端设备
CN112820343A (zh) 数据保护方法、装置、计算机设备及存储介质
US10216671B2 (en) Power aware arbitration for bus access
US8364882B2 (en) System and method for executing full and partial writes to DRAM in a DIMM configuration
CN111512631A (zh) 数据处理方法及相关产品
CN105718207A (zh) 一种数据处理方法、数据读写装置和存储系统
CN114153773B (zh) 一种基于axi总线传输数据的方法、设备、系统及可读介质
US11630715B2 (en) Method and system for recording and logging error handling information

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180115

Year of fee payment: 6