JP2019197319A - 情報処理装置、情報処理方法および情報処理プログラム - Google Patents

情報処理装置、情報処理方法および情報処理プログラム Download PDF

Info

Publication number
JP2019197319A
JP2019197319A JP2018090015A JP2018090015A JP2019197319A JP 2019197319 A JP2019197319 A JP 2019197319A JP 2018090015 A JP2018090015 A JP 2018090015A JP 2018090015 A JP2018090015 A JP 2018090015A JP 2019197319 A JP2019197319 A JP 2019197319A
Authority
JP
Japan
Prior art keywords
link
flow
value
performance information
information
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.)
Granted
Application number
JP2018090015A
Other languages
English (en)
Other versions
JP7087649B2 (ja
Inventor
貴史 三吉
Takashi Miyoshi
貴史 三吉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018090015A priority Critical patent/JP7087649B2/ja
Priority to US16/366,528 priority patent/US10810047B2/en
Publication of JP2019197319A publication Critical patent/JP2019197319A/ja
Application granted granted Critical
Publication of JP7087649B2 publication Critical patent/JP7087649B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3031Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a motherboard or an expansion card
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3041Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is an input/output interface
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • G06F11/3423Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time where the assessed time is active or idle time
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/501Performance criteria
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】システム全体の性能を最大化するようにフローを振り分けることができる情報処理装置、情報処理方法および情報処理プログラムを提供する。【解決手段】情報処理装置は、複数のリンクを経由してCPUと接続されるオフロード回路を備える。情報処理装置のオフロード回路は、論理回路と、収集部と、選択部とを備える。論理回路は、アプリケーションの処理を演算する。収集部は、アプリケーションの処理に対応するフローごとのリンクの性能情報を示す値と、リンクごとの使用可能な性能情報の最大値とを収集する。選択部は、フローごとのリンクの性能情報を示す値に基づいて、要する性能情報を満たしていないフローを判定する。また、選択部は、リンクごとの使用可能な性能情報の最大値と、リンクごとの現在使用されている性能情報の値とに基づいて、フローの振り分け先のリンクを選択して振り分ける。【選択図】図4

Description

本発明は、情報処理装置、情報処理方法および情報処理プログラムに関する。
近年、CPU(Central Processing Unit)で動作するアプリケーションを、高速化のためにFPGA(Field Programmable Gate Array)等のハードウェアにオフロードして動作させることが提案されている。オフロードしたアプリケーションの一部は、ユーザロジック(オフロード回路)と呼ばれ、1つのFPGAに複数のユーザロジックを搭載する場合がある。複数のユーザロジックは、それぞれCPUで動作するアプリケーションに応じて、任意の組み合わせで動作することが想定されている。CPUとFPGAとの間は、例えば、PCI Express(以下、PCIeともいう。)等のI/Oバス経由での接続と、OpenCAPI(Open Coherent Accelerator Processor Interface)等のメモリコヒーレントバス経由での接続とがある。
I/Oバス経由の接続は、アクセス遅延が大きく、CPUでキャッシュできないが、帯域は中から広帯域であり、FPGA側からのDMA(Direct Memory Access)転送に向く。一方、メモリコヒーレントバス経由の接続は、アクセス遅延が小さく、CPUでキャッシュできるが、帯域は小から中帯域であり、FPGA側からのメモリアクセスが可能である。CPUとFPGAとの間の接続(リンク)は、I/Oバス経由の接続と、メモリコヒーレントバス経由の接続との両方が用意される場合がある。この場合、ユーザロジックは、どのリンクを使用するかを事前に固定的に選択する。
特開2014−170363号公報 特表2008−546072号公報
しかしながら、ユーザロジックは、他のユーザロジックがどのリンクを使用するのかが運用時まで判らない。このため、例えば、ユーザロジック、コマンド種別およびアドレス範囲の組み合わせを表すフローを単位として各リンクに振り分ける場合、フローが要求する帯域に対してリンクの帯域が不足する等により、アプリケーションの性能要求を満たさない場合がある。
一つの側面では、システム全体の性能を最大化するようにフローを振り分けることができる情報処理装置、情報処理方法および情報処理プログラムを提供することにある。
一つの態様では、情報処理装置は、複数のリンクを経由してCPUと接続されるオフロード回路を備える。情報処理装置のオフロード回路は、論理回路と、収集部と、選択部とを備える。論理回路は、アプリケーションの処理を演算する。収集部は、前記アプリケーションの処理に対応するフローごとの前記リンクの性能情報を示す値と、前記リンクごとの使用可能な性能情報の最大値とを収集する。選択部は、前記フローごとの前記リンクの性能情報を示す値に基づいて、要する性能情報を満たしていないフローを判定する。また、選択部は、前記リンクごとの使用可能な性能情報の最大値と、前記リンクごとの現在使用されている性能情報の値とに基づいて、前記フローの振り分け先のリンクを選択して振り分ける。
システム全体の性能を最大化するようにフローを振り分けることができる。
図1は、複数のリンクでCPUとFPGAを接続する場合の一例を示す図である。 図2は、実施例の情報処理装置のハードウェア構成の一例を示すブロック図である。 図3は、実施例の情報処理装置の機能構成の一例を示すブロック図である。 図4は、制御回路の機能構成の一例を示すブロック図である。 図5は、フローテーブルの一例を示す図である。 図6は、リンクテーブルの一例を示す図である。 図7は、実施例の経路制御処理の一例を示すフローチャートである。 図8は、実施例の切替処理の一例を示すフローチャートである。
以下、図面に基づいて、本願の開示する情報処理装置、情報処理方法および情報処理プログラムの実施例を詳細に説明する。なお、本実施例により、開示技術が限定されるものではない。また、以下の実施例は、矛盾しない範囲で適宜組みあわせてもよい。
まず、図1を用いてリンクの帯域が不足する場合について説明する。図1は、複数のリンクでCPUとFPGAを接続する場合の一例を示す図である。図1の例では、CPU10にはメモリ11が接続され、CPU10とFPGA12との間のリンクとして、PCIe経由の接続と、OpenCAPI経由の接続との両方が用意される。ユーザロジックUL201〜UL203は、Mux/Demux13を介して、PCIeおよびOpenCAPIと接続される。
ここで、PCIeは、Gen4 x16lane x2slotであり、帯域が51.2GB/s、アクセス遅延が1μs〜であるとする。また、OpenCAPIは、帯域が25.6GB/s、アクセス遅延が100ns〜であるとする。ユーザロジックの要求性能は、ユーザロジックUL201は、必要帯域10GB/s、許容アクセス遅延200nsである。ユーザロジックUL202は、必要帯域40GB/s、許容アクセス遅延2μsである。ユーザロジックUL203は、必要帯域20GB/s、許容アクセス遅延1μsである。
ユーザロジックUL201〜UL203は、事前にどのリンクを使用するかは固定選択であるとし、運用時まで他のユーザロジックがどれだけリンクを使用するか不明であるとする。この場合、図1の例では、ユーザロジックUL201は、OpenCAPIに割り振り、ユーザロジックUL202は、PCIeに割り振る。ところが、ユーザロジックUL203は、OpenCAPIとPCIeとのうち、どちらに割り振っても、必要帯域がリンクの帯域を上回ることになる。つまり、図1は、フローが要求する帯域に対してリンクの帯域が不足し、アプリケーションの性能要求を満たさない場合の例である。これに対し、動的にユーザロジックUL203の通信を2つの性質の異なるリンクに割り振ることができれば、システム全体としての性能を向上させることができる。
図2は、実施例の情報処理装置のハードウェア構成の一例を示すブロック図である。図2に示すように、情報処理装置100は、通信部110と、表示部111と、操作部112と、HDD(Hard Disk Drive)113と、メモリ120と、CPU130と、FPGA140とを有する。なお、通信部110、表示部111、操作部112、HDD113、CPU130およびFPGA140は、バス114を介して相互に接続される。また、CPU130は、メモリ120およびFPGA140と接続される。なお、情報処理装置100は、図2に示す機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイス等の機能部を有することとしてもかまわない。
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。通信部110は、図示しないネットワークを介して他の情報処理装置と有線または無線で接続され、他の情報処理装置との間で情報の通信を司る通信インタフェースである。
表示部111は、各種情報を表示するための表示デバイスである。表示部111は、例えば、表示デバイスとして液晶ディスプレイ等によって実現される。表示部111は、CPU130から図示しない表示制御部を介して入力された表示画面等の各種画面を表示する。
操作部112は、情報処理装置100のユーザから各種操作を受け付ける入力デバイスである。操作部112は、例えば、入力デバイスとして、キーボードやマウス等によって実現される。操作部112は、ユーザによって入力された操作を操作情報としてCPU130に出力する。なお、操作部112は、入力デバイスとして、タッチパネル等によって実現されるようにしてもよく、表示部111の表示デバイスと、操作部112の入力デバイスとは、一体化されるようにしてもよい。
HDD113は、補助記憶装置であり、CPU130で動作するOS(Operating System)や各種データを記憶する。なお、HDD113は、ハードディスクドライブの他にもフラッシュメモリ等の半導体メモリ素子を用いたSSD(Solid State Drive)や光ディスク等の記憶装置によって実現されてもよい。
メモリ120は、主記憶装置であり、例えば、各種のSDRAM(Synchronous Dynamic Random Access Memory)等のようなRAM(Random Access Memory)等の半導体メモリ素子等の記憶装置によって実現される。メモリ120は、CPU130での処理に用いる情報を記憶する。なお、メモリ120は、バス114に接続してもよいし、FPGA140と直接接続してもよい。
CPU130は、HDD113等の記憶部に記憶されているプログラムに従って、メモリ120等のRAMを作業領域として各種処理を実行する。すなわち、CPU130は、OSやVM(Virtual Machine)によって制御され、各種処理を実行する。
FPGA140は、CPU130で動作するアプリケーションをオフロードするユーザロジックを動作させる。FPGA140は、CPU130とバス114(例えば、PCIe。)経由、および、メモリコヒーレントバス(例えば、OpenCAPI。)経由で接続される。すなわち、FPGA140は、複数のリンクを経由してCPU130と接続されるオフロード回路を構成する。なお、複数のリンクは、異なる種類のバスでなく、同じ種類のバスであってもよい。
図3は、実施例の情報処理装置の機能構成の一例を示すブロック図である。図3に示すように、情報処理装置100では、CPU130でOS/VM131が動作し、さらに、OS/VM131上でアプリケーションA1〜Amが動作している。また、FPGA140は、制御回路141と複数のユーザロジックUL1〜ULmとを有する。制御回路141は、リンクL1〜LnでCPU130と接続される。リンクL1〜Lnは、バス114およびメモリコヒーレントバスに対応する。ユーザロジックUL1〜ULmは、アプリケーションA1〜Amと対応付けられており、対応するアプリケーションA1〜Amとの間で、制御回路141およびリンクL1〜Lnを介して通信を行う。つまり、ユーザロジックUL1〜ULmは、アプリケーションA1〜Amの処理を演算する論理回路である。また、アプリケーションA1〜Am、および、ユーザロジックUL1〜ULmは、使用するリンクL1〜Lnのいずれかを用いて、それぞれ性能情報を制御回路141に出力する。なお、性能情報は、例えば、性能要件を満たす場合を「1」とし、性能要件を満たさない場合を「0」とする。
図4は、制御回路の機能構成の一例を示すブロック図である。図4に示すように、制御回路141は、インタフェースIF1〜IFnと、Mux/demux142と、Mux/demux143と、モニタ144と、セレクタ147とを有する。また、モニタ144は、フローテーブル145と、リンクテーブル146とを有する。
インタフェースIF1〜IFnは、リンクL1〜Lnに対応するインタフェースである。インタフェースIF1〜IFnは、リンクごとの使用帯域を表すデータであるPerf_per_link(1)〜(n)を、それぞれモニタ144に出力する。また、インタフェースIF1〜IFnは、フローを識別するフローID(Identifier)をMux/demux142に出力する。なお、フローは、ユーザロジックUL1〜ULm、コマンド種別(Read/Write)およびアドレス範囲の組み合わせに基づくデータの流れを表し、フローIDを用いて各フローを識別する。
Mux/demux142は、マルチプレクサおよびデマルチプレクサである。Mux/demux142は、インタフェースIF1〜IFn側から入力されるフローを多重化し、Mux/demux143に出力する。また、Mux/demux142は、Mux/demux143から入力される多重化されたフローを複数のフローに戻し、対応するインタフェースIF1〜IFnに出力する。Mux/demux142は、インタフェースIF1〜IFn側、および、Mux/demux143側から入力された各フローのフローIDをセレクタ147に出力する。Mux/demux142には、セレクタ147からフローIDに応じたリンク情報が入力される。Mux/demux142は、リンク情報に応じたインタフェースIF1〜IFnに、対応するフローを出力するようにフローの経路を切り替える。
Mux/demux143は、マルチプレクサおよびデマルチプレクサである。Mux/demux143は、ユーザロジックUL1〜ULm側から入力されるパケットからフローを抽出して多重化し、Mux/demux142に出力する。また、Mux/demux143は、Mux/demux142から入力される多重化されたフローを複数のフローに戻し、対応するユーザロジックUL1〜ULmに出力する。Mux/demux143は、各フローに対応するフローIDをMux/demux142に出力する。また、Mux/demux143は、抽出したフローに関するフロー情報と、フローごとの使用帯域とを含むデータであるPerf_per_flow(1...m)をモニタ144に出力する。
モニタ144は、リンクL1〜Lnの使用帯域と、各フローの使用帯域と、性能情報とを収集し、フローテーブル145に記憶する。ここで、図5および図6を用いて、フローテーブル145およびリンクテーブル146について説明する。
フローテーブル145は、フローごとにリンク情報(経路情報)、優先度、性能情報等を対応付けて記憶する。図5は、フローテーブルの一例を示す図である。図5に示すように、フローテーブル145は、「フローID」、「フロー情報」、「リンク情報」、「優先度」、「性能情報(現在値)」といった項目を有する。また、「フロー情報」は、「ユーザロジック」、「コマンド種別」、「アドレス範囲」といった項目を有する。また、「性能情報(現在値)」は、「アプリ性能」、「UL性能」、「使用帯域」といった項目を有する。
「フローID」は、フローを識別する識別子である。「ユーザロジック」は、当該フローに対応するユーザロジックを識別する識別子である。「コマンド種別」は、Read/Writeの別を示す情報である。「コマンド種別」は、Read/Writeのどちらも対象である場合はR/Wとする。「アドレス範囲」は、当該フローに対応するアドレス範囲を示す情報である。「リンク情報」は、当該フローが現在割り振られているリンクを示す情報である。
「優先度」は、各フローの振り分けの優先度を示し、例えば、「0〜255」の256段階で表すことができる。この場合、数値が大きいほど優先度が高いとしている。「アプリ性能」は、アプリケーションA1〜Amから収集した性能情報である。「アプリ性能」は、OKであれば性能要件を満たし、NGであれば性能要件を満たさないことを示す。ここで、「アプリ性能」が性能要件を満たすとは、例えば、アプリケーションからユーザロジックに対してリクエストを送信してレスポンスが返ってくるまでの応答時間やスループット等が条件を満たす場合である。
「UL性能」は、ユーザロジックUL1〜ULmから収集した性能情報である。「UL性能」は、OKであれば性能要件を満たし、NGであれば性能要件を満たさないことを示す。ここで、「UL性能」が性能要件を満たすとは、例えば、ユーザロジックからアプリケーションにレスポンスを送信してACKが返ってくるまでの応答時間や、アプリケーションからの単位時間あたりのリクエスト回数等が条件を満たす場合である。
「アプリ性能」および「UL性能」では、OKは、モニタ144が収集した性能情報「1」に対応し、NGは、モニタ144が収集した性能情報「0」に対応する。性能情報は、例えば、モニタ144内に、アプリケーションA1〜Am、および、ユーザロジックUL1〜ULmに対応するレジスタを設け、それぞれがレジスタに「0」または「1」を書き込み、モニタ144が定期的にレジスタを参照することで収集できる。「使用帯域」は、当該フローが使用しているリンクL1〜Lnの帯域を示す情報である。
リンクテーブル146は、リンクL1〜Lnの性能情報を記憶する。図6は、リンクテーブルの一例を示す図である。図6に示すように、リンクテーブル146は、「リンクID」、「性能情報」といった項目を有する。また、「性能情報」は、「最大帯域」、「最小遅延」といった項目を有する。
「リンクID」は、リンクL1〜Lnを識別する識別子である。「最大帯域」は、当該リンクが収容可能な最大の帯域を示す情報である。「最小遅延」は、当該リンクにおける最小の遅延時間を示す情報である。
図4の説明に戻って、モニタ144は、使用帯域や性能情報の収集とともに、各フローの優先度を制御する。モニタ144は、電源が投入されると、初期状態を設定する。モニタ144は、初期状態として、フローテーブル145の優先度欄を全て「1」に設定する。モニタ144は、アプリケーションA1〜Am、および、ユーザロジックUL1〜ULmの動作が開始されると、フローテーブル145のフロー情報、リンク情報および性能情報を更新する。なお、フローIDは、例えば、アプリケーションの起動時に設定されたフローIDをアプリケーションから取得する。また、フローIDは、例えば、アプリケーションの終了時にアプリケーションからの指示により削除される。
つまり、モニタ144は、Mux/demux143から入力されるフロー情報に基づいて、フローテーブル145のフロー情報を更新する。モニタ144は、リンクテーブル146を参照し、インタフェースIF1〜IFnから入力されるリンクごとの使用帯域に基づいて、使用可能な帯域が多いリンクから順にフローを割り振って、フローテーブル145のリンク情報を更新する。モニタ144は、Mux/demux143から入力されるフローごとの使用帯域に基づいて、フローテーブル145のフローごとの使用帯域を更新する。モニタ144は、アプリケーションA1〜Am、および、ユーザロジックUL1〜ULmに対応するレジスタを参照し、フローテーブル145のアプリ性能およびUL性能を更新する。
モニタ144は、フローテーブル145のアプリ性能およびUL性能がNGであるフローがある場合、当該フローの優先度をインクリメントする。次に、モニタ144は、セレクタ147に対して、切替処理の実行を指示する。
モニタ144は、切替処理の終了後、フローテーブル145を参照し、全フローにおいて、アプリ性能またはUL性能がNGであれば、全フローの優先度をデクリメントする。また、モニタ144は、フローテーブル145を参照し、全フローにおいて、アプリ性能およびUL性能がOKであれば、全フローの優先度をデクリメントし、一定時間の待機後、再びアプリ性能およびUL性能を更新して優先度の制御を繰り返す。
言い換えると、モニタ144は、アプリケーションの処理に対応するフローごとのリンクの性能情報を示す値と、リンクごとの使用可能な性能情報の最大値とを収集する収集部の一例である。また、モニタ144は、アプリケーションの処理に対応するフローごとのリンクの使用帯域を示す値と、リンクごとの使用可能な帯域の最大値とを収集する。また、モニタ144は、アプリケーションの処理、または、論理回路の性能が性能要件を満たしていない場合、対応するフローの優先度を上げる。また、モニタ144は、所定時間ごとに、リンクの使用帯域を示す値と、リンクごとの使用可能な帯域の最大値とを収集する。
セレクタ147は、Mux/demux142からフローIDが入力されると、フローテーブル145を参照し、入力されたフローIDに対応するリンク情報をMux/demux142に出力する。すなわち、セレクタ147は、フローテーブル145を参照し、リンクL1〜Lnを流れるパケットを、適切なユーザロジックUL1〜ULmに接続する。
また、セレクタ147は、モニタ144から切替処理の実行を指示されると、フローとリンクとの対応を切り替える切替処理を実行する。セレクタ147は、フローテーブル145を参照し、未判定のフローがあるか否かを判定する。セレクタ147は、未判定のフローがないと判定した場合には、切替処理を終了する。
セレクタ147は、未判定のフローがあると判定した場合には、未判定のフローのうち、優先度が最も高いフローを対象フローとして選択する。セレクタ147は、選択した対象フローについて、アプリ性能およびUL性能がOKであるか否かを判定する。セレクタ147は、アプリ性能およびUL性能がOKであると判定した場合には、次のフローの判定に進む。
セレクタ147は、アプリ性能およびUL性能がOKでないと判定した場合には、フローテーブル145およびリンクテーブル146を参照し、最も使用可能な帯域が大きいリンクを選択する。セレクタ147は、選択したリンクが対象フローのリンクと同じであるか否かを判定する。セレクタ147は、選択したリンクが対象フローのリンクと同じであると判定した場合には、次のフローの判定に進む。
セレクタ147は、選択したリンクが対象フローのリンクと同じでないと判定した場合には、対象フローに選択したリンクを設定する。セレクタ147は、選択したリンクの使用帯域が最大帯域に収まるか否かを判定する。セレクタ147は、選択したリンクの使用帯域が最大帯域に収まると判定した場合には、切替処理を終了する。
セレクタ147は、選択したリンクの使用帯域が最大帯域に収まらないと判定した場合には、フローテーブル145を参照し、選択したリンクを使用する最も優先度が低いフローを選択する。セレクタ147は、選択した最も優先度が低いフローのリンクに、対象フローの元のリンクを設定し、切替処理を終了する。すなわち、セレクタ147は、対象フローの元のリンクと、最も優先度が低いフローのリンクとを入れ替える。
言い換えると、セレクタ147は、フローごとのリンクの性能情報を示す値に基づいて、要する性能情報を満たしていないフローを判定する。セレクタ147は、リンクごとの使用可能な性能情報の最大値と、リンクごとの現在使用されている性能情報の値とに基づいて、フローの振り分け先のリンクを選択して振り分ける。つまり、セレクタ147は、選択部の一例である。すなわち、セレクタ147は、フローごとのリンクの使用帯域を示す値に基づいて、要する帯域を満たしていないフローを判定する。セレクタ147は、リンクごとの使用可能な帯域の最大値と、リンクごとの現在使用されている帯域の値とに基づいて、フローの振り分け先のリンクを選択して振り分ける。
また、セレクタ147は、リンクごとの使用可能な帯域の最大値と、リンクごとの現在使用されている帯域の値とに基づいて、フローの振り分け先のリンクを選択する。セレクタ147は、選択した振り分け先のリンクに該フローを振り分けると、振り分け先のリンクの使用可能な帯域の最大値を超える場合、振り分け先のリンクを使用する最も優先度が低いフローを、振り分け元のリンクに振り分ける。また、セレクタ147は、所定時間ごとに、要する帯域を満たしていないフローを判定する。
次に、実施例の情報処理装置100の動作について説明する。図7は、実施例の経路制御処理の一例を示すフローチャートである。
制御回路141のモニタ144は、電源が投入されると、初期状態を設定する(ステップS1)。モニタ144は、アプリケーションA1〜Am、および、ユーザロジックUL1〜ULmの動作が開始されると、フローテーブル145のフロー情報、リンク情報および性能情報を更新する。モニタ144は、動作開始後、一定時間待機する(ステップS2)。
その後、モニタ144は、アプリケーションA1〜Am、および、ユーザロジックUL1〜ULmに対応するレジスタを参照し、フローテーブル145のアプリ性能およびUL性能を更新する(ステップS3)。
モニタ144は、フローテーブル145のアプリ性能およびUL性能がNGであるフローの優先度をインクリメントする(ステップS4)。次に、モニタ144は、セレクタ147に対して、切替処理の実行を指示する(ステップS5)。
ここで、図8を用いて切替処理について説明する。図8は、実施例の切替処理の一例を示すフローチャートである。
セレクタ147は、モニタ144から切替処理の実行を指示されると、フローとリンクとの対応を切り替える切替処理を実行する。セレクタ147は、フローテーブル145を参照し、未判定のフローがあるか否かを判定する(ステップS51)。セレクタ147は、未判定のフローがないと判定した場合には(ステップS51:否定)、切替処理を終了し、経路制御処理に戻る。
セレクタ147は、未判定のフローがあると判定した場合には(ステップS51:肯定)、未判定のフローのうち、優先度が最も高いフローを対象フローとして選択する(ステップS52)。セレクタ147は、選択した対象フローについて、アプリ性能およびUL性能がOKであるか否かを判定する(ステップS53)。セレクタ147は、アプリ性能およびUL性能がOKであると判定した場合には(ステップS53:肯定)、次のフローの判定を行うため、ステップS51に戻る。
セレクタ147は、アプリ性能およびUL性能がOKでないと判定した場合には(ステップS53:否定)、フローテーブル145およびリンクテーブル146を参照し、最も使用可能な帯域が大きいリンクを選択する(ステップS54)。セレクタ147は、選択したリンクが対象フローのリンクと同じであるか否かを判定する(ステップS55)。セレクタ147は、選択したリンクが対象フローのリンクと同じであると判定した場合には(ステップS55:肯定)、次のフローの判定を行うため、ステップS51に戻る。
セレクタ147は、選択したリンクが対象フローのリンクと同じでないと判定した場合には(ステップS55:否定)、対象フローに選択したリンクを設定する(ステップS56)。セレクタ147は、選択したリンクの使用帯域が最大帯域に収まるか否かを判定する(ステップS57)。セレクタ147は、選択したリンクの使用帯域が最大帯域に収まると判定した場合には(ステップS57:肯定)、切替処理を終了し、経路制御処理に戻る。
セレクタ147は、選択したリンクの使用帯域が最大帯域に収まらないと判定した場合には(ステップS57:否定)、フローテーブル145を参照し、選択したリンクを使用する最も優先度が低いフローを選択する(ステップS58)。セレクタ147は、選択した最も優先度が低いフローのリンクに、対象フローの元のリンクを設定し(ステップS59)、切替処理を終了して経路制御処理に戻る。これにより、セレクタ147は、優先度の高いフローからリンクに振り分けることができる。
図7の説明に戻って、モニタ144は、切替処理の終了後、フローテーブル145を参照し、全フローにおいて、アプリ性能またはUL性能がNGであれば、全フローの優先度をデクリメントする(ステップS6)。モニタ144は、フローテーブル145を参照し、全フローにおいて、アプリ性能およびUL性能がOKであれば、全フローの優先度をデクリメントし(ステップS7)、ステップS2に戻る。これにより、制御回路141は、システム全体の性能を最大化するようにフローを振り分けることができる。また、制御回路141は、ユーザロジックに依存することなく、システム全体の性能を最大化する通信パターンを自動的に決定できる。また、制御回路141は、ユーザロジックのFPGA接続方式に依存する部分を削減することができる。すなわち、情報処理装置100では、他のシステムへのユーザロジックの移植が容易となる。また、情報処理装置100では、インタフェース設計を共通化できるので、開発工数を削減できる。
なお、上記実施例では、リンクの性能情報として使用帯域を用いたが、これに限定されない。例えば、リンクの性能情報としてレイテンシを用いてもよい。この場合、制御回路141は、Mux/demux142にレイテンシチェッカを接続し、定期的に計測用パケットを各リンクに送信して取得したレイテンシ情報に基づいて、各フローを各リンクに振り分ける。すなわち、モニタ144は、アプリケーションの処理に対応するフローごとのリンクのレイテンシを示す値と、リンクごとのレイテンシの最大値とを収集する。セレクタ147は、フローごとのリンクのレイテンシを示す値に基づいて、要するレイテンシを満たしていないフローを判定する。セレクタ147は、リンクごとのレイテンシの最大値と、リンクごとの現在のレイテンシの値とに基づいて、フローの振り分け先のリンクを選択して振り分ける。
このように、情報処理装置100は、複数のリンクを経由してCPUと接続されるオフロード回路を備える。オフロード回路は、FPGA140として、制御回路141と、ユーザロジックである論理回路とを備える。論理回路は、アプリケーションの処理を演算する。制御回路141は、アプリケーションの処理に対応するフローごとのリンクの性能情報を示す値と、リンクごとの使用可能な性能情報の最大値とを収集する。また、制御回路141は、フローごとのリンクの性能情報を示す値に基づいて、要する性能情報を満たしていないフローを判定する。また、制御回路141は、リンクごとの使用可能な性能情報の最大値と、リンクごとの現在使用されている性能情報の値とに基づいて、フローの振り分け先のリンクを選択して振り分ける。その結果、制御回路141は、システム全体の性能を最大化するようにフローを振り分けることができる。
また、制御回路141は、アプリケーションの処理に対応するフローごとのリンクの使用帯域を示す値と、リンクごとの使用可能な帯域の最大値とを収集する。また、制御回路141は、フローごとのリンクの使用帯域を示す値に基づいて、要する帯域を満たしていないフローを判定する。また、制御回路141は、リンクごとの使用可能な帯域の最大値と、リンクごとの現在使用されている帯域の値とに基づいて、フローの振り分け先のリンクを選択して振り分ける。その結果、制御回路141は、リンクの使用帯域に基づいてシステム全体の性能を最大化するようにフローを振り分けることができる。
また、制御回路141は、アプリケーションの処理、または、論理回路の性能が性能要件を満たしていない場合、対応するフローの優先度を上げる。その結果、制御回路141は、優先度に応じてフローを振り分けることができる。
また、制御回路141は、リンクごとの使用可能な帯域の最大値と、リンクごとの現在使用されている帯域の値とに基づいて、フローの振り分け先のリンクを選択する。制御回路141は、選択した振り分け先のリンクに該フローを振り分けると、振り分け先のリンクの使用可能な帯域の最大値を超える場合、振り分け先のリンクを使用する最も優先度が低いフローを、振り分け元のリンクに振り分ける。その結果、制御回路141は、優先度の高いフローと優先度の低いフローとが使用するリンクを入れ替えることができる。
また、制御回路141は、所定時間ごとに、リンクの使用帯域を示す値と、リンクごとの使用可能な帯域の最大値とを収集する。また、制御回路141は、所定時間ごとに、要する帯域を満たしていないフローを判定する。その結果、制御回路141は、動的にフローを振り分けることができる。
また、制御回路141は、アプリケーションの処理に対応するフローごとのリンクのレイテンシを示す値と、リンクごとのレイテンシの最大値とを収集する。また、制御回路141は、フローごとのリンクのレイテンシを示す値に基づいて、要するレイテンシを満たしていないフローを判定する。制御回路141は、リンクごとのレイテンシの最大値と、リンクごとの現在のレイテンシの値とに基づいて、フローの振り分け先のリンクを選択して振り分ける。その結果、制御回路141は、リンクのレイテンシに基づいてシステム全体の性能を最大化するようにフローを振り分けることができる。
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、Mux/demux142とMux/demux143とを統合してクロスバースイッチとしてもよい。また、図示した各処理は、上記の順番に限定されるものでなく、処理内容を矛盾させない範囲において、同時に実施してもよく、順序を入れ替えて実施してもよい。
さらに、制御回路141で行われる各種処理機能は、CPU(またはMPU、MCU(Micro Controller Unit)等のマイクロ・コンピュータ)上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、CPU(またはMPU、MCU等のマイクロ・コンピュータ)で解析実行されるプログラム上、またはワイヤードロジックによるハードウェア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。
なお、上記実施例で説明した制御回路141は、プログラムを読み込んで実行することで、図4、図7、図8等で説明した処理と同様の機能を実行することができる。例えば、制御回路141は、モニタ144、セレクタ147と同様の処理を実行するプロセスを実行することで、上記実施例と同様の処理を実行することができる。
これらのプログラムは、インターネットなどのネットワークを介して配布することができる。また、これらのプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM、MO、DVDなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
100 情報処理装置
110 通信部
111 表示部
112 操作部
113 HDD
114 バス
120 メモリ
130 CPU
131 OS/VM
140 FPGA
141 制御回路
142,143 Mux/demux
144 モニタ
145 フローテーブル
146 リンクテーブル
147 セレクタ
A1〜Am アプリケーション
IF1〜IFn インタフェース
L1〜Ln リンク
UL1〜ULm ユーザロジック

Claims (8)

  1. 複数のリンクを経由してCPUと接続されるオフロード回路において、
    アプリケーションの処理を演算する論理回路と、
    前記アプリケーションの処理に対応するフローごとの前記リンクの性能情報を示す値と、前記リンクごとの使用可能な性能情報の最大値とを収集する収集部と、
    前記フローごとの前記リンクの性能情報を示す値に基づいて、要する性能情報を満たしていないフローを判定し、前記リンクごとの使用可能な性能情報の最大値と、前記リンクごとの現在使用されている性能情報の値とに基づいて、前記フローの振り分け先のリンクを選択して振り分ける選択部と、
    を備えることを特徴とする情報処理装置。
  2. 前記収集部は、前記アプリケーションの処理に対応するフローごとの前記リンクの使用帯域を示す値と、前記リンクごとの使用可能な帯域の最大値とを収集し、
    前記選択部は、前記フローごとの前記リンクの使用帯域を示す値に基づいて、要する帯域を満たしていないフローを判定し、前記リンクごとの使用可能な帯域の最大値と、前記リンクごとの現在使用されている帯域の値とに基づいて、前記フローの振り分け先のリンクを選択して振り分ける、
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記収集部は、前記アプリケーションの処理、または、前記論理回路の性能が性能要件を満たしていない場合、対応する前記フローの優先度を上げる、
    ことを特徴とする請求項2に記載の情報処理装置。
  4. 前記選択部は、前記リンクごとの使用可能な帯域の最大値と、前記リンクごとの現在使用されている帯域の値とに基づいて、前記フローの振り分け先のリンクを選択し、選択した前記振り分け先のリンクに該フローを振り分けると、前記振り分け先のリンクの使用可能な帯域の最大値を超える場合、前記振り分け先のリンクを使用する最も優先度が低いフローを、振り分け元のリンクに振り分ける、
    ことを特徴とする請求項2または3に記載の情報処理装置。
  5. 前記収集部は、所定時間ごとに、前記リンクの使用帯域を示す値と、前記リンクごとの使用可能な帯域の最大値とを収集し、
    前記選択部は、前記所定時間ごとに、前記要する帯域を満たしていないフローを判定する、
    ことを特徴とする請求項2〜4のいずれか1つに記載の情報処理装置。
  6. 前記収集部は、前記アプリケーションの処理に対応するフローごとの前記リンクのレイテンシを示す値と、前記リンクごとのレイテンシの最大値とを収集し、
    前記選択部は、前記フローごとの前記リンクのレイテンシを示す値に基づいて、要するレイテンシを満たしていないフローを判定し、前記リンクごとのレイテンシの最大値と、前記リンクごとの現在のレイテンシの値とに基づいて、前記フローの振り分け先のリンクを選択して振り分ける、
    ことを特徴とする請求項1に記載の情報処理装置。
  7. 複数のリンクを経由してCPUと接続され、アプリケーションの処理を演算する論理回路を備えるオフロード回路において、
    前記アプリケーションの処理に対応するフローごとの前記リンクの性能情報を示す値と、前記リンクごとの使用可能な性能情報の最大値とを収集し、
    前記フローごとの前記リンクの性能情報を示す値に基づいて、要する性能情報を満たしていないフローを判定し、前記リンクごとの使用可能な性能情報の最大値と、前記リンクごとの現在使用されている性能情報の値とに基づいて、前記フローの振り分け先のリンクを選択して振り分ける、
    ことを特徴とする情報処理方法。
  8. 複数のリンクを経由してCPUと接続され、アプリケーションの処理を演算する論理回路を備えるオフロード回路において、
    前記アプリケーションの処理に対応するフローごとの前記リンクの性能情報を示す値と、前記リンクごとの使用可能な性能情報の最大値とを収集し、
    前記フローごとの前記リンクの性能情報を示す値に基づいて、要する性能情報を満たしていないフローを判定し、前記リンクごとの使用可能な性能情報の最大値と、前記リンクごとの現在使用されている性能情報の値とに基づいて、前記フローの振り分け先のリンクを選択して振り分ける、
    処理をコンピュータに実行させることを特徴とする情報処理プログラム。
JP2018090015A 2018-05-08 2018-05-08 情報処理装置、情報処理方法および情報処理プログラム Active JP7087649B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018090015A JP7087649B2 (ja) 2018-05-08 2018-05-08 情報処理装置、情報処理方法および情報処理プログラム
US16/366,528 US10810047B2 (en) 2018-05-08 2019-03-27 Information processing device, information processing method, and computer-readable recording medium storing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018090015A JP7087649B2 (ja) 2018-05-08 2018-05-08 情報処理装置、情報処理方法および情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2019197319A true JP2019197319A (ja) 2019-11-14
JP7087649B2 JP7087649B2 (ja) 2022-06-21

Family

ID=68464683

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018090015A Active JP7087649B2 (ja) 2018-05-08 2018-05-08 情報処理装置、情報処理方法および情報処理プログラム

Country Status (2)

Country Link
US (1) US10810047B2 (ja)
JP (1) JP7087649B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11182221B1 (en) 2020-12-18 2021-11-23 SambaNova Systems, Inc. Inter-node buffer-based streaming for reconfigurable processor-as-a-service (RPaaS)
US11200096B1 (en) * 2021-03-26 2021-12-14 SambaNova Systems, Inc. Resource allocation for reconfigurable processors
JP2023007160A (ja) * 2021-07-01 2023-01-18 富士通株式会社 情報処理装置,制御方法および制御プログラム
CN114860431B (zh) * 2022-04-22 2025-11-25 浪潮商用机器有限公司 一种内存访问方法、装置、设备及介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006331207A (ja) * 2005-05-27 2006-12-07 Sony Computer Entertainment Inc 情報処理方法、情報処理装置、およびサーバ
JP2010171562A (ja) * 2009-01-21 2010-08-05 Fujitsu Ltd 通信装置および通信制御方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030135609A1 (en) * 2002-01-16 2003-07-17 Sun Microsystems, Inc. Method, system, and program for determining a modification of a system resource configuration
US7415595B2 (en) 2005-05-24 2008-08-19 Coresonic Ab Data processing without processor core intervention by chain of accelerators selectively coupled by programmable interconnect network and to memory
US7940661B2 (en) * 2007-06-01 2011-05-10 Cisco Technology, Inc. Dynamic link aggregation
TWI408557B (zh) * 2010-03-18 2013-09-11 Faraday Tech Corp 高速輸入輸出系統及其節能控制方法
US8929220B2 (en) * 2012-08-24 2015-01-06 Advanced Micro Devices, Inc. Processing system using virtual network interface controller addressing as flow control metadata
JP5660149B2 (ja) 2013-03-04 2015-01-28 日本電気株式会社 情報処理装置、ジョブスケジューリング方法およびジョブスケジューリングプログラム
US10050884B1 (en) * 2017-03-21 2018-08-14 Citrix Systems, Inc. Method to remap high priority connection with large congestion window to high latency link to achieve better performance

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006331207A (ja) * 2005-05-27 2006-12-07 Sony Computer Entertainment Inc 情報処理方法、情報処理装置、およびサーバ
JP2010171562A (ja) * 2009-01-21 2010-08-05 Fujitsu Ltd 通信装置および通信制御方法

Also Published As

Publication number Publication date
JP7087649B2 (ja) 2022-06-21
US20190347136A1 (en) 2019-11-14
US10810047B2 (en) 2020-10-20

Similar Documents

Publication Publication Date Title
JP6961686B2 (ja) トリガ動作を用いたgpuリモート通信
JP5871233B2 (ja) 計算機及び帯域制御方法
JP5088366B2 (ja) 仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法
JP7087649B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム
JP6231679B2 (ja) 周辺コンポーネント相互接続エクスプレスドメインのためのリソース管理
JP6022650B2 (ja) バーチャルマシンの間でサービスチェーンフローパケットを経路指定するための技術
US8972611B2 (en) Multi-server consolidated input/output (IO) device
US20170075838A1 (en) Quality of service in interconnects with multi-stage arbitration
CN109218355A (zh) 负载均衡引擎,客户端,分布式计算系统以及负载均衡方法
JP2016119064A (ja) エンドツーエンドデータセンタ性能制御
EP3224728B1 (en) Providing shared cache memory allocation control in shared cache memory systems
US10614542B2 (en) High granularity level GPU resource allocation method and system
US20180077649A1 (en) Communications fabric with split paths for control and data packets
EP2625619B1 (en) Arbitrating stream transactions based on information related to the stream transaction(s)
JP2011503731A (ja) リンクに基づくシステムにおけるシステムルーティング情報の変更
JP2014186411A (ja) 管理装置、情報処理システム、情報処理方法、及びプログラム
JP5331549B2 (ja) 分散処理システム及び分散処理方法
CN120492166A (zh) 一种通道带宽的切换方法、硬盘背板、计算机设备及存储介质
JP6427083B2 (ja) リソース割当管理装置、および、サービスチェイニングシステム
TWI650979B (zh) 負載平衡調整系統及其方法
US12056072B1 (en) Low latency memory notification
WO2024072935A1 (en) Connection modification based on traffic pattern
JP2007179200A (ja) コンピュータシステムおよびストレージ仮想化装置
US10467156B1 (en) System and method of improving efficiency in parallel data processing of a RAID array
US8346988B2 (en) Techniques for dynamically sharing a fabric to facilitate off-chip communication for multiple on-chip units

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220228

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220510

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220523

R150 Certificate of patent or registration of utility model

Ref document number: 7087649

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150