JP6721911B2 - アフィン従属による単一割当プログラムを実行するための実行エンジン - Google Patents
アフィン従属による単一割当プログラムを実行するための実行エンジン Download PDFInfo
- Publication number
- JP6721911B2 JP6721911B2 JP2016570762A JP2016570762A JP6721911B2 JP 6721911 B2 JP6721911 B2 JP 6721911B2 JP 2016570762 A JP2016570762 A JP 2016570762A JP 2016570762 A JP2016570762 A JP 2016570762A JP 6721911 B2 JP6721911 B2 JP 6721911B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- program
- controller
- streamer
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4494—Execution paradigms, e.g. implementations of programming paradigms data driven
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
Description
本出願は、2008年5月27日に出願された米国特許仮出願番号第61/130,114号、発明の名称「EXECUTION ENGINE」の優先権を主張して2009年5月18日に出願された同時に係属中の米国特許出願番号第12/467,485号、発明の名称「EXECUTION ENGINE FOR EXECUTING SINGLE ASSIGNMENT PROGRAMS WITH AFFINE DEPENDENCIES」の一部継続出願であり、これらの文献の全体は、全ての目的のために、参照によって本願に援用される。
本発明は、コンピュータシステムの分野に関し、特に、微細並列命令(fine-grained parallel instruction)の効率的な実行に関する。
1. i≧1
2. j≧1
3. i≦N
4. j≦N
アフィン再帰式のシステムとして表されるドメインフロープログラムのための基本的な実行方法について説明する。再帰は、複雑な演算の進化(evolution)を表すメカニズムである。更に、抽象的インデックス空間内に個々の演算イベントを配置することにより、アルゴリズム設計者は、アルゴリズム表現に空間及び時間制約を組み込むことができる。知識処理ユニット(Knowledge Processing Unit:KPU)のコアエンジンの特徴は、リソース競合の状況下においても、これらの微細な空間及び時間制約を忠実に実行できる点である。ノイマン型マシンのリソース競合の解消は、演算シーケンスが演算リソースを共有することができるように、ランダムアクセスメモリを使用して、中間的結果を直列化するものである。一方、ここに説明するKPUコアエンジンは、物理的に有界であるが、論理的に無限の演算ファブリックを提供し、ファブリック内の演算リソースの経路に再帰をマッピングする。すなわち、コアエンジンは、再帰インデックスを時空の位置として解釈し、及びアフィン従属をファブリック内の機能ユニットにマッピングされた演算イベント間の物理的な通信として解釈することによって、時空制約を守り、アフィン再帰式のこれらのシステムを実行することができる装置を表す。微細並列アルゴリズムにこの新しい実行方法を適用することにより、より広範な又はより専門的なアプリケーションのための方法及び装置を微細化及び最適化する新しい機会が提供される。
再帰式の典型的システムは、演算子の非常に小さな集合を使用し、これは、アルゴリズム間で根本的に異なっていてもよい。例えば、有限差分法(Finite Difference Method:FDM)のためのアルゴリズムは、場合によっては異なる正確さで、浮動小数点ADD及びMULTのみを必要とすることがあり、一方、ゲノム読出シーケンスの繰り込み又は組み立てのためのブルームフィルタ(Bloom filter)のためのアルゴリズムは、2ビットのアルファベットの文字列に亘るハッシュ関数を含む命令セットを必要とする。これらの2つの命令セット間のエネルギ散逸は、大きく異なり、したがって、アルゴリズムのクラスに応じてKPUのISAを特殊化することによって、値生成の機会が提供される。特に、ハッシングを中心とするISAは、ゲノム科学/タンパク質科学(genomics/proteomics)の分野に適するが、ハッシングは、更に、セキュリティアプリケーション及びデータベースアプリケーションの鍵でもある。FDM、FEM及びFVMについては、補間及び再サンプリングのために最適化された命令セットがワットあたりのパフォーマンスを最適化する。信号処理、画像処理及びセンサ処理の全ては、カスタム化されたISAによる利益を享受できる。
KPUは、マルチコア及びメニーコアの内蔵プログラムマシン又はSPMと比較して、ワットあたりのパフォーマンスが良好であるため、信号処理経路のリアルタイム処理のため使用されることが多い。これらのアプリケーションでは、処理時間をデータ入力速度に一致させる能力と同様に、パワー効率が重要である。これは、センサ又はネットワーク又はデバイス間でデータ経路を最適化し、KPUのストリーマに直接的な供給を行う機会があることを意味する。第2に、ストリーマは、ランダムアクセスメモリ(Random Access Memory:RAM)への/からの入力データ、中間データ及び出力データの直列化を行う。このRAMがダイナミック型、すなわち、DRAMである場合、このDRAMのアクセスパターンは、ページ位置を優先する。これは、ストリーマにページ認識の能力を与える機会を提供し、これにより、DRAMへのより効率的なライトバック(writeback)のために、又はよりDRAMからファブリックストリームへのより効率的な入力ストリーム生成のために、キャッシングを用いてページコヒーレントデータを蓄積することができる。第3に、特定のデータ構造のために、特に、ベクトル及び行列、密及び疎、並びにツリー及びリストのデータ構造のために、これらのデータ構造は、マイクロアーキテクチャ最適化のための好適な基礎を提供する。例えば、ストリーマは、行列記述子を用いて、メモリへ/からデータストリームを導出する。疎行列の場合、特別なインデックス構造を用いて、メモリ帯域幅を最小化し、これにより、所与のDRAM技術のパフォーマンスを最大化できる。第4に、例えば、命令毎に4つの浮動小数点演算を実行できるSIMDユニット等、特定の機能ユニットのマイクロアーキテクチャを有する場合、データストリームは、この能力に一致する必要がある。これは、ストリーマが機能ユニットのマイクロアーキテクチャと連携して動作することを意味する。SIMD浮動小数点ユニットは、一例であり、テキスト又はゲノム/プロテオームアルゴリズムのストリング及びハッシュ演算子も、最適化のための新たな機会を提供する。
各アルゴリズムは、アフィン再帰式のシステムに変換する必要があり、良好なパフォーマンスのためには、ドメインのクレバーな空間配置及び整列が重要であるため、新しいドメインフローアルゴリズムは、この問題を解決する方法及び装置となる可能性を有する。ドメインフロープログラムは、実際には、物理的な埋め込みであるため、これは、装置を表す。複雑な空間及び時間制約では、ある再帰のシステムが良好に動作し、機能的に同様な他のシステムのパフォーマンスが低くなることがある。第2に、非常にユニークな最適化されたマシンの場合、アルゴリズムは、ISA及びI/O最適化と組み合わされる。
アフィン再帰式のシステムが与えられると、コンパイラは、アルゴリズムに固有の同時並行性の量及び構造を解析する。これは、良好なタイムスケジュール及びファブリックへの低競合空間割当を選択するために使用される。単純なアルゴリズムは、空間及び時間予測を選択するために使用することができる。コアアルゴリズムは、高度に並列であることができ、従属ベクトルの単純な線形結合の選択を可能にする。完全に自動化されたコンパイルのために、これらの単純な方法が不十分である場合は、より複雑な、段階的実行パターンを使用することができる。
KPUの処理要素は、CAM、命令スケジューリング/ディスパッチキュー、1つ以上の機能ユニット及びアフィンルーティングベクトルを生成することができるルータを含む小型プロセッサである。処理要素マイクロアーキテクチャは、継続的な革新の多くの機会を有している。例えば、浮動小数点、整数及びストリング演算のためのクレバーなSIMD機能ユニット、並びにCAM又はルータを経由する必要なく結果が他の機能ユニットに送られる命令チェイニング等がある。これは、特に複合命令、例えば、ハッシング関数、一次補間又は線形補間、及びFVM、FEM、FDM及びBEMに役立つ他のより高次の関数にとって注目される点である。離散イベント計算、例えば、格子ボルツマン法、又はFMMで使用される複雑な近似技術も注目される方法及びマシンである。
処理ファブリックは、包括的関数演算子、例えば、ブロードキャスト、並びに縮小、例えば、フェッチアンドアッド(Fetch-and-Add)及びこれに類する手法を示すことができる。これらの包括的演算子は、個々の処理要素ではなく、ファブリックによって管理及び維持される命令セットによって駆動される。第2に、潜在的に数万もの処理要素を有するより大きなファブリックを集積する能力が高まると、処理要素及びファブリックの耐故障性についての要求が高まる。コアKPUエンジンの重要な側面として、入力データセットのリソース競合要求へのローカルの微細従属性が不変であり、処理要素障害を処理することが困難になりつつあるため、耐故障性問題の解決は、重要な革新である。不完全処理又はストレージ要素を特定し、分離するBISTテスト及び再構成可能性技術は、KPUチップに適用できる。幾つかのインプリメンテーションでは、1つの大きいKPUファブリックに代えて、互いに効率的にデータストリームを通信できる多くのより小さなファブリックからチップを構成する。これは、ファブリック及び処理要素のために各カーネルが空間、時間及びISAを最適化する、複数の通信カーネルを最適化するマイクロアーキテクチャ組織化でもある。
ドメインフロープログラムの密度は、非常に高い。すなわち、非常に大規模で複雑な並列処理を100バイト以下で表すことができる。より複雑なアプリケーションは、複数のこのような並列カーネルをチェーン化するので、マイクロアーキテクチャは、これらのプログラム記述をチェーン化及びキャッシングして最適化する。キャッシングは、前のカーネルを効率的に呼び出すために使用され、チェーン化は、メモリへ/から中間データを直列化する必要を回避するために使用され、これにより、パフォーマンスが向上する。
アイドル状態にあるファブリックのサブセットを特定するパワーマネジメント技術は、これらのリソースをシャットダウンして動作電力消費を低減することができる。第2に、コアKPUエンジンは、データ駆動型エンジンであり、したがって、純粋な非同期実行パイプラインとして実現することができる。信号を整定するミュラーC要素パイプライン又はマイクロパイプラインを巡るマイクロ構造インプリメンテーションは、埋め込みアプリケーション内でKPUの低電力インプリメンテーションを提供することができる。
ドメインフロープログラム概念は、処理要素及びファブリックのISAを最適化する機会を提供するので、KPUのFPGAインプリメンテーションによって、アプリケーションの実行の間にファブリック及び命令セットを切り換えることができる。これにより、作業負荷が最適化されたサーバ及び埋込み型プロセッサが実現する。
122 制御バス
123 コマンドバス
124 イベントバス、双方向バス
320 処理要素ルーティングネットワーク、内部ネットワーク
330 個別の通信ネットワーク
510 データパケット
520 データトークン
530 命令トークン
Claims (26)
- (a)データ及びドメインフロープログラムを格納するメモリと、
(b)前記メモリにドメインフロープログラムを要求し、前記ドメインフロープログラムをドメインフロープログラミング情報に変換するコントローラと、
(c)前記ドメインフロープログラムにおいて特定された同じ単一割当式に属する複数のデータトークンの命令タグに関する一致を検出する1つ以上の処理要素によって、前記ドメインフロープログラミング情報を処理するプロセッサファブリックであって、微細並列アルゴリズムを実行するように構成されているプロセッサファブリックと、
(d)前記データトークン及び前記ドメインフロープログラミング情報を前記プロセッサファブリックに送信するクロスバーと、
(e)クロスバーにデータストリームを送信するように構成されたデータストリーマであって、ページ認識を実装し、DRAMへの効率的なライトバックのために、又はDRAMからプロセッサファブリックへの効果的な入力ストリーム生成のために、キャッシングを用いて、ページコヒーレントデータを蓄積するデータストリーマと、
を備える演算デバイス。 - 前記プロセッサファブリックは、特定のクラスのアルゴリズムのために構成された命令セットアーキテクチャを処理する請求項1記載のデバイス。
- 前記特定のクラスのアルゴリズムは、ハッシングアルゴリズムを含む請求項2記載のデバイス。
- 前記特定のクラスのアルゴリズムは、補間及び再サンプリングのための最適化を含む請求項2記載のデバイス。
- 前記データストリーマによって行列記述子を用いて、メモリへ/からデータストリームを導出する請求項1記載のデバイス。
- 疎行列について、インデックス構造を用いて、メモリ帯域幅を最小化し、及びDRAMのパフォーマンスを最大化する請求項5記載のデバイス。
- 前記コントローラは、更に、メモリコントローラに読出要求を提出することを含むドメインフロープログラムの要求を行うように構成されており、前記メモリコントローラは、前記読出要求をメモリ要求に変換して、前記コントローラにデータを戻す請求項1記載のデバイス。
- 前記メモリコントローラから前記コントローラに戻される前記データは、単一割当プログラムを構成するためのプログラム命令を含む請求項7記載のデバイス。
- 前記コントローラは、更に、前記データストリーマに前記ドメインフロープログラミング情報を送達するように構成されている請求項1記載のデバイス。
- 前記コントローラは、更に、全体的なデータ経路が準備されると、開始のために前記データストリーマにイベントを発行するように構成されている請求項1記載のデバイス。
- 前記クロスバーは、更に、プロセッサファブリックの行又は列にデータストリームをルーティングするように構成されている請求項1記載のデバイス。
- 前記プロセッサファブリックは、更に、出力データストリームを生成するように構成されている請求項11記載のデバイス。
- 前記出力データストリームは、前記クロスバーを経て、前記データストリーマに供給され、前記データストリーマは、メモリアドレスを前記出力データストリームに関連付け、前記データストリーマは、前記出力データストリームをメモリコントローラに供給し、前記メモリコントローラは、前記メモリに前記出力データストリームを書き込む請求項12記載のデバイス。
- 前記データストリーマは、更に、前記データストリーマが演算タスクの完了を確認すると、前記コントローラに通知イベントを送信するように構成されている請求項13記載のデバイス。
- (a)データ及びドメインフロープログラムを格納するメモリと、
(b)前記メモリと通信し、読出及び書込要求を受信し、前記読出及び書込要求をメモリ要求に変換するメモリコントローラと、
(c)前記メモリにドメインフロープログラム及びデータを要求し、前記ドメインフロープログラムをプログラミング情報に変換するコントローラと、
(d)複数のデータトークンの命令タグに関する一致を検出する1つ以上の処理要素によって、前記プログラミング情報を処理し、出力データストリームを生成するプロセッサファブリックであって、微細並列アルゴリズムを実行するように構成されているプロセッサファブリックと、
(e)前記データトークンを前記プロセッサファブリックに送信するクロスバーと、
(f)前記クロスバーにデータストリームを送信するデータストリーマであって、ページ認識を実装し、DRAMへの効率的なライトバックのために、又はDRAMからプロセッサファブリックへの効果的な入力ストリーム生成のために、キャッシングを用いて、ページコヒーレントデータを蓄積するデータストリーマと、
を備える演算デバイス。 - 前記プロセッサファブリックは、特定のクラスのアルゴリズムのために構成された命令セットアーキテクチャを処理する請求項15記載のデバイス。
- 前記特定のクラスのアルゴリズムは、ハッシングアルゴリズムを含む請求項16記載のデバイス。
- 前記特定のクラスのアルゴリズムは、補間及び再サンプリングのための最適化を含む請求項16記載のデバイス。
- 前記データストリーマによって行列記述子を用いて、メモリへ/からデータストリームを導出する請求項15記載のデバイス。
- 疎行列について、インデックス構造を用いて、メモリ帯域幅を最小化し、及びDRAMのパフォーマンスを最大化する請求項19記載のデバイス。
- (a)コントローラによって、ドメインフロープログラムを構成するためのプログラム命令を含むデータをメモリに要求すること、
(b)前記コントローラにおいて、前記プログラム命令をプログラミング情報にデコード及び変換し、データストリーマに前記プログラミング情報を送達すること、
(b’)データストリーマにおいて、ページ認識を実装し、DRAMへの効率的なライトバックのために、又はDRAMからプロセッサファブリックへの効果的な入力ストリーム生成のために、キャッシングを用いて、ページコヒーレントデータを蓄積すること、
(c)前記プログラミング情報を、複数の処理要素を含むプロセッサファブリックに転送すること、
(d)前記プログラミング情報に基づくアフィン再帰式の連結セットによって定義される単一割当プログラムを実行するように前記プロセッサファブリックを構成することであって、前記プロセッサファブリックは、更に、微細並列アルゴリズムを実行するように構成されること、
(e)前記プロセッサファブリックに、前記プロセッサファブリック内で、及び前記プロセッサファブリックからデータストリームをルーティングすること、
及び
(f)前記ドメインフロープログラムにおいて指定されている同じ単一割当式に属する、命令タグに関して一致する複数のデータトークンに関する命令を実行すること、
を含む方法。 - 前記プロセッサファブリックは、特定のクラスのアルゴリズムのために構成された命令セットアーキテクチャを処理する請求項21記載の方法。
- 前記特定のクラスのアルゴリズムは、ハッシングアルゴリズムを含む請求項22記載の方法。
- 前記特定のクラスのアルゴリズムは、補間及び再サンプリングのための最適化を含む請求項22記載の方法。
- 前記データストリーマによって行列記述子を用いて、メモリへ/からデータストリームを導出する請求項21記載の方法。
- 疎行列について、インデックス構造を用いて、メモリ帯域幅を最小化し、及びDRAMのパフォーマンスを最大化する請求項25記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/185,841 US9501448B2 (en) | 2008-05-27 | 2014-02-20 | Execution engine for executing single assignment programs with affine dependencies |
US14/185,841 | 2014-02-20 | ||
PCT/US2014/067878 WO2015126495A2 (en) | 2014-02-20 | 2014-12-01 | Execution engine for executing single assignment programs with affine dependencies |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017506406A JP2017506406A (ja) | 2017-03-02 |
JP6721911B2 true JP6721911B2 (ja) | 2020-07-15 |
Family
ID=53879211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016570762A Active JP6721911B2 (ja) | 2014-02-20 | 2014-12-01 | アフィン従属による単一割当プログラムを実行するための実行エンジン |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP3108358B1 (ja) |
JP (1) | JP6721911B2 (ja) |
WO (1) | WO2015126495A2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106055401B (zh) * | 2016-06-13 | 2019-02-26 | 北京唯智佳辰科技发展有限责任公司 | 海量计算粗颗粒并行的自动启停及计算任务动态分配方法 |
US10699189B2 (en) * | 2017-02-23 | 2020-06-30 | Cerebras Systems Inc. | Accelerated deep learning |
US11488004B2 (en) | 2017-04-17 | 2022-11-01 | Cerebras Systems Inc. | Neuron smearing for accelerated deep learning |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69701351T2 (de) * | 1996-11-04 | 2000-08-24 | Koninkl Philips Electronics Nv | Signalverarbeitungsvorrichtung bestehend aus mehr als einem verarbeitungselement |
US6560674B1 (en) * | 1998-10-14 | 2003-05-06 | Hitachi, Ltd. | Data cache system |
US7401206B2 (en) * | 2004-06-30 | 2008-07-15 | Sun Microsystems, Inc. | Apparatus and method for fine-grained multithreading in a multipipelined processor core |
JP5083204B2 (ja) * | 2006-03-14 | 2012-11-28 | 富士通株式会社 | 並列化プログラム生成プログラム、並列化プログラム生成装置、及び並列化プログラム生成方法 |
US8341611B2 (en) * | 2007-04-11 | 2012-12-25 | Apple Inc. | Application interface on multiple processors |
JP5684704B2 (ja) * | 2008-05-27 | 2015-03-18 | スティルウォーター スーパーコンピューティング インコーポレイテッド | 実行エンジン |
JP2013512511A (ja) * | 2009-11-25 | 2013-04-11 | ハワード ユニバーシティ | 複数メモリ特定用途向けデジタル信号プロセッサ |
US10198248B2 (en) * | 2012-07-11 | 2019-02-05 | Intel Corporation | Parallel processing of a single data buffer |
-
2014
- 2014-12-01 EP EP14882922.9A patent/EP3108358B1/en active Active
- 2014-12-01 WO PCT/US2014/067878 patent/WO2015126495A2/en active Application Filing
- 2014-12-01 JP JP2016570762A patent/JP6721911B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
WO2015126495A2 (en) | 2015-08-27 |
EP3108358A2 (en) | 2016-12-28 |
EP3108358A4 (en) | 2017-10-25 |
EP3108358B1 (en) | 2021-06-23 |
WO2015126495A3 (en) | 2015-11-12 |
JP2017506406A (ja) | 2017-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11681650B2 (en) | Execution engine for executing single assignment programs with affine dependencies | |
JP5684704B2 (ja) | 実行エンジン | |
Wang et al. | Melia: A mapreduce framework on opencl-based fpgas | |
Besta et al. | Substream-centric maximum matchings on fpga | |
US20200174707A1 (en) | Fifo filling logic for tensor calculation | |
Lu et al. | Mrphi: An optimized mapreduce framework on intel xeon phi coprocessors | |
US20160147516A1 (en) | Execution of complex recursive algorithms | |
Yin et al. | Conflict-free loop mapping for coarse-grained reconfigurable architecture with multi-bank memory | |
JP6721911B2 (ja) | アフィン従属による単一割当プログラムを実行するための実行エンジン | |
Wang et al. | {MGG}: Accelerating graph neural networks with {Fine-Grained}{Intra-Kernel}{Communication-Computation} pipelining on {Multi-GPU} platforms | |
Xia et al. | Redundancy-free high-performance dynamic GNN training with hierarchical pipeline parallelism | |
Yamazaki et al. | New scheduling strategies and hybrid programming for a parallel right-looking sparse LU factorization algorithm on multicore cluster systems | |
KR20230169321A (ko) | 데이터 의존적이고 불규칙한 오퍼레이션들을 위한 프로그래밍 가능 가속기 | |
CN117348929A (zh) | 指令执行方法、系统控制器及相关产品 | |
KR20230082621A (ko) | 얕은 파이프라인을 갖는 고도의 병렬 처리 아키텍처 | |
George et al. | A Unified Programmable Edge Matrix Processor for Deep Neural Networks and Matrix Algebra | |
US20230385125A1 (en) | Graph partitioning and implementation of large models on tensor streaming processors | |
US11977499B2 (en) | Streaming transfers and ordering model | |
Bank Tavakoli | Reconfigurable High-Performance Computing of Sparse Linear Algebra | |
Baumeister et al. | Addressing materials science challenges using GPU-accelerated POWER8 nodes | |
Ming et al. | VIDGCN: Embracing input data diversity with a configurable graph convolutional network accelerator | |
Tavakoli et al. | FSpGEMM: A Framework for Accelerating Sparse General Matrix–Matrix Multiplication Using Gustavson’s Algorithm on FPGAs | |
Costa Penha et al. | Gene regulatory accelerators on cloud FPGA | |
WO2023034221A1 (en) | Scale computing in deterministic cloud environments | |
Wen et al. | FT64: Scientific computing with Streams |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20171130 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20181113 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190108 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190403 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190404 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190917 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191212 |
|
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: 20200512 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200611 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6721911 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |