JP2022554039A - ホスト側とfpgaアクセラレータと間のデータ同期方法 - Google Patents

ホスト側とfpgaアクセラレータと間のデータ同期方法 Download PDF

Info

Publication number
JP2022554039A
JP2022554039A JP2022539756A JP2022539756A JP2022554039A JP 2022554039 A JP2022554039 A JP 2022554039A JP 2022539756 A JP2022539756 A JP 2022539756A JP 2022539756 A JP2022539756 A JP 2022539756A JP 2022554039 A JP2022554039 A JP 2022554039A
Authority
JP
Japan
Prior art keywords
state information
memory
frame number
space
data frame
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
JP2022539756A
Other languages
English (en)
Other versions
JP7270113B2 (ja
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 ▲蘇▼州浪潮智能科技有限公司
Publication of JP2022554039A publication Critical patent/JP2022554039A/ja
Application granted granted Critical
Publication of JP7270113B2 publication Critical patent/JP7270113B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • 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
    • G06F13/282Cycle stealing DMA
    • 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
    • G06F13/30Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7885Runtime interface, e.g. data exchange, runtime control
    • G06F15/7889Reconfigurable logic implemented as a co-processor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

ホスト側とFPGAアクセラレータと間のデータ同期方法、双方向メモリ同期装置、FPGAアクセラレータ及びデータ同期システムであり、この方法は、ホスト側から所定のメモリ空間にデータを移転することを検出した後、第1のアドレス空間の第1の状態情報に基づいて第2の状態情報を生成し、前記第2の状態情報を第2のアドレス空間に書き込むステップ(S201)と、第2のアドレス空間における第2の状態情報を検出した後、DAMを呼び出して所定のメモリ空間のデータをFPGAアクセラレータのメモリ空間に移転し、第2の状態情報を前記第1のアドレス空間にコピーして、同期を実現するステップ(S202)と、を含む。これにより、この方法は、2つのアドレス空間における状態情報に基づいてデータ同期動作を実行することを実現し、FPGAアクセラレータ側のコントローラによりデュアルポートメモリデータの同期を能動的に実行し、データ同期遅延を低減し、システムスループットを向上させる。

Description

本出願は、2020年2月21日に出願された中国特許出願第202010108433.4号(発明の名称:ホスト側とFPGAアクセラレータと間のデータ同期方法)に基づく優先権を主張し、引用によりその全ての記載内容が本明細書に組み込まれる。
本出願は、コンピュータ技術の分野に関し、特に、ホスト側とFPGA(Field Programmable Gate Array)アクセラレータと間のデータ同期方法、双方向メモリ同期装置、FPGAアクセラレータ及びデータ同期システムに関する。
現在、汎用計算システムは、PCIe(peripheral component interconnect expres、高速シリアル伝送の拡張インタフェースの規格)に基づくローカルバス構造を採用しており、その役割は、図1に示すように、PCI(Peripheral Component Interconnect、ペリフェラル コンポーネント インターコネクト)バスと類似し、主に処理システムにおける外部デバイスを接続するために用いられ、バスにマウントされたデバイスがPCIeコントローラを介してポイントツーポイントデータ通信を実現するようになっている。PCIeバスは、ISA(Industry Standard Architecture)、EISA(Enhanced Industry Standard Architecture)及びMAC(Medium Access Contro)バスと比較して、プロセッサとバスが空間的に分離され、拡張可能性に優れ、動的構成のサポート及びエンドツーエンドの高いバスデータ帯域幅などの利点を有する。
FPGAは、現在新興の高速化装置として、主にPCIeバスを介してプロセッサと通信する。FPGAアクセラレータは、PCIe-Agentデバイス(PCIeスレーブデバイス)として、データ格納のための独立なオンボードメモリ空間を有する。x86アーキテクチャにおいて、プロセッサがFPGAとデータをやりとりするためには、RC(Root Complex)によってアドレス空間の変換及び物理信号変換を完了する必要がある。ある新興の応用場面では、FPGAは高速化装置として、プロセッサ側にあるデータを用い、OpenCL(Open Computing Language)異種プログラミングモデルによって、FPGA側のダイレクトメモリアクセスコントローラを介してホスト側のデータをアクセラレータ側のオンボードメモリの指定領域にコピーする、ということが必要である。
現在使用されているソフトウェア命令による受動メモリコピー方式は、データ同期のステップを追加しておる。PCIeでは、Host(ホスト)とFPGAとの通信がDMA(Direct Memory Access、ダイレクトメモリアクセス)やBar(Base Address Register、ベースアドレスレジスタ)を用いて空間マッピングによりデータを移転し、それらの動作には、コントローラがアクセスされ、命令により読み書きの開始と取消を制御する必要がある。データ移転の過程で、特定のコードを書いて両側のデータ同期を維持する必要があり、Host側でコードが動くと、データ移転応答が遅くで不安定になるなどの問題がある。AI(Artificial Intelligence、人工知能)推論などの重要な応用場面では、この技術モードによると応用システムメモリの動作遅延が増加し、システムスループット効率が低下する。
本発明は、従来技術におけるホスト側とFPGAアクセラレータとの間の長い同期遅延の問題を解決するために、ホスト側とFPGAアクセラレータとの間のデータ同期方法、双方向メモリ同期装置、FPGAアクセラレータ、及びデータ同期システムを提供することを目的とする。具体的には、以下の通りである。
本発明による第1の態様において、ホスト側とFPGAアクセラレータとの間のデータ同期方法であって、
ホスト側から所定のメモリ空間にデータを移転することを検出した後、第1のアドレス空間の第1の状態情報に基づいて第2の状態情報を生成し、前記第2の状態情報を第2のアドレス空間に書き込み、ところで、前記第1のアドレス空間と前記第2のアドレス空間は、ベースアドレスレジスタ空間が前記ホスト側にマッピングされる異なるアドレス空間であり、前記第1の状態情報は、前のデータフレーム番号と現在のデータフレーム番号とを含み、前記第2の状態情報は、現在のデータフレーム番号と次のデータフレーム番号とを含むステップと、
前記第2のアドレス空間における前記第2の状態情報を検出した後、ダイレクトメモリアクセスを呼び出して前記所定のメモリ空間のデータをフィールドプログラマブルゲートアレイアクセラレータのメモリ空間に移転し、前記第2の状態情報を前記第1のアドレス空間にコピーして、同期を実現するステップと、を含むデータ同期方法が提供される。
好ましくは、ホスト側から所定のメモリ空間にデータを移転することを検出した後、第1のアドレス空間の第1の状態情報に基づいて第2の状態情報を生成する前に、
Bar空間が前記ホスト側にマッピングされる第1のアドレス空間を読み書くことにより、前記ホスト側と前記FPGAアクセラレータとの間のメモリ同期通信リンクを確立するステップをさらに含む。
好ましくは、ホスト側から所定のメモリ空間にデータを移転することを検出した後、第1のアドレス空間の第1の状態情報に基づいて第2の状態情報を生成する前に、
前記ホスト側は、前記第1のアドレス空間から前記第1の状態情報を読み取り、第1の状態情報に基づいて前のデータフレーム番号及び現在のデータフレーム番号を決定し、前記前のデータフレーム番号と前記現在のデータフレーム番号との間の差が所定の閾値であるか否かを判定することにより、前記メモリ同期通信リンクに対する信頼性検証を行うステップをさらに含む。
好ましくは、前記前のデータフレーム番号と前記現在のデータフレーム番号との間の差が所定の閾値であるか否かを判定することにより、前記メモリ同期通信リンクに対する信頼性検証を行うステップの後、
前記メモリ同期通信リンクが所定時間内に信頼性検証に合格しない場合、前記ホスト側は、1フレームが終了するまで、データを所定のメモリ空間に引き続き移転するステップをさらに含む。
好ましくは、DMAを呼び出して前記所定のメモリ空間のデータをFPGAアクセラレータのメモリ空間に移転する前に、
前記第2のアドレス空間における第2の状態情報を取得し、前記第2の状態情報に基づいて現在のデータフレーム番号と次のデータフレーム番号を決定し、前記現在のデータフレーム番号と前記次のデータフレーム番号との間の差が所定の閾値であるか否かを判定することにより、前記メモリ同期通信リンクに対する信頼性検証を行うステップをさらに含む。
好ましくは、前記現在のデータフレーム番号と前記次のデータフレーム番号との間の差が所定閾値であるか否かを判定することにより、前記メモリ同期通信リンクに対する信頼性検証を行うステップの後、
前記メモリ同期通信リンクが信頼性検証に合格しない場合、DMAを呼び出してデータを移転する動作を停止させるために、前記第2のアドレス空間に第3の状態情報を書き込むステップをさらに含む。
好ましくは、前記ホスト側は、同期を終了させるために、前記第2のアドレス空間に第3の状態情報を書き込むステップをさらに含む。
本発明による第2の態様において、ホスト側から所定のメモリ空間にデータを移転することを検出した後、第1のアドレス空間の第1の状態情報に基づいて第2の状態情報を生成し、前記第2の状態情報を第2のアドレス空間に書き込み、ところで、前記第1のアドレス空間と前記第2のアドレス空間は、ベースアドレスレジスタ空間が前記ホスト側にマッピングされる異なるアドレス空間であり、前記第1の状態情報は、前のデータフレーム番号と現在のデータフレーム番号とを含み、前記第2の状態情報は、現在のデータフレーム番号と次のデータフレーム番号とを含む、ように構成された状態情報書込みモジュールと、
前記第2のアドレス空間における前記第2の状態情報を検出した後、ダイレクトメモリアクセスを呼び出して前記所定のメモリ空間のデータをフィールドプログラマブルゲートアレイアクセラレータのメモリ空間に移転し、前記第2の状態情報を前記第1のアドレス空間にコピーして、同期を実現するように構成されたデータ移転モジュールと、を備える双方向メモリ同期装置が提供される。
本発明による第3の態様において、上記の双方向メモリ同期装置を含むFPGAアクセラレータが提供される。
本発明による第4の態様において、ホスト側と、FPGAアクセラレータとを備え、前記FPGAアクセラレータは、双方向メモリ同期装置を備える。
本発明で提供されるホスト側とFPGAアクセラレータとの間のデータ同期方法であって、ホスト側から所定のメモリ空間にデータを移転することを検出した後、第1のアドレス空間の第1の状態情報に基づいて第2の状態情報を生成し、第2の状態情報を第2のアドレス空間に書き込むステップと、第2のアドレス空間における第2の状態情報を検出した後、ダイレクトメモリアクセスを呼び出して所定のメモリ空間のデータをフィールドプログラマブルゲートアレイアクセラレータのメモリ空間に移転し、第2の状態情報を第1のアドレス空間にコピーして、同期を実現するステップと、を含む。これにより、この方法は、2つのアドレス空間における状態情報に基づいてデータ同期動作を実行することを実現し、FPGAアクセラレータ側のコントローラによりデュアルポートメモリデータの同期を能動的に実行し、ホスト側の処理圧力を軽減し、データ同期遅延を低減し、システムスループットを向上させる。
また、本発明では、双方向メモリ同期装置、FPGAアクセラレータ及びデータ同期システムが提供され、その技術的効果は、上述した方法の技術的効果に対応し、ここでその説明が省略される。
本発明の実施形態又は従来技術の技術案をより明確に説明するために、実施形態又は従来技術の説明に必要な図面を簡単に説明すると、以下の説明における図面は本発明の実施形態に過ぎず、当業者にとって、創造的な労力を払わずに、他の図面をこれらの図面に基づいて得ることができることは明らかである。
本発明で提供されるPCIeバスに基づく汎用処理システムの概略図である。 本発明で提供されるホスト側とFPGAアクセラレータとの間のデータ同期方法の実施形態1による実施フローチャートである。 本発明で提供されるホスト側とFPGAアクセラレータとの間のデータ同期方法の実施形態2による実施フローチャートである。 本発明で提供されるホスト側とFPGAアクセラレータとの間のデータ同期方法の実施形態2によるシステムにおける双方向メモリ同期装置の構成図である。 本発明で提供されるホスト側とFPGAアクセラレータとの間のデータ同期方法の実施形態2による双方向メモリ同期装置の動作制御過程を示す図である。
本発明は、核心的にホスト側とFPGAアクセラレータとの間のデータ同期方法、双方向メモリ同期装置、FPGAアクセラレータ及びデータ同期システムを提供し、データ同期遅延時間を低減し、システムスループットを向上させることである。
本発明の技術分野における通常の知識を有する者が本発明の請求項をより良く理解するために、以下に添付の図面と具体的な実施形態を参照して本発明をより詳細に説明する。明らかに、記載された実施形態は、本発明の一部の実施形態にすぎず、全ての実施形態ではない。当業者によって、創造的な労力を払わずに、本発明における実施形態に基づいて得られる他の全ての実施形態は、本発明の保護範囲に属する。
以下、本発明で提供される側とFPGAアクセラレータとの間のデータ同期方法の実施形態1を説明するが、図2を参照すると、実施形態1は下記のステップを含む。
ステップS201:ホスト側から所定のメモリ空間にデータを移転することを検出した後、第1のアドレス空間の第1の状態情報に基づいて第2の状態情報を生成し、前記第2の状態情報を第2のアドレス空間に書き込む。
ここで、前記第1のアドレス空間と前記第2のアドレス空間は、Bar空間が前記ホスト側にマッピングされておる異なるアドレス空間、前記第1の状態情報は、前のデータフレーム番号と現在のデータフレーム番号を含み、前記第2の状態情報は、現在のデータフレーム番号と次のデータフレーム番号を含む。
ステップS202:前記第2のアドレス空間における前記第2の状態情報を検出した後、DAMを呼び出して前記所定のメモリ空間のデータをFPGAアクセラレータのメモリ空間に移転し、前記第2の状態情報を前記第1のアドレス空間にコピーして、同期を実現する。
本実施形態は、ホスト側のデータをFPGAアクセラレータ側に同期させることを目的とする。ホスト側は、ディスクまたはメモリの他の領域から所定のメモリ空間にデータを移転し、双方向メモリ同期装置は、DMAを呼び出して、所定のメモリ空間におけるデータをFPGAアクセラレータのメモリ空間に移転し、データ同期を達成する。
実際の応用では、双方向メモリ同期装置は、Bar空間がホスト側にマッピングされる第1のアドレス空間を読み書くことにより、ホスト側とFPGAアクセラレータとの間のメモリ同期通信リンクを確立し、初期化過程において第1のアドレス空間に第1の状態情報を書き込むことができる。ホスト側は、データを移転する前に、第1の状態情報を検証することができ、第1の状態情報に含まれる前のデータフレーム番号と現在のデータフレーム番号との差が1であるか否かによって、メモリ同期通信リンクが信頼できるか否かを判定することができる。信頼できる場合、ホスト側は、データを所定のメモリ空間に移転した後、第1の状態情報に基づいて第2の状態情報を生成し、第2の状態情報を第2のアドレス空間に書き込む。
次に、双方向メモリ同期装置は、まず、第2のアドレス空間から第2の状態情報を読み取り、第2の状態情報に含まれる現在のデータフレーム番号と次のデータフレーム番号との差が1であるか否かと判定する。1である場合、メモリ同期通信リンクが信頼できると考えられ、DMAを呼び出して、所定のメモリ空間のデータをFPGAアクセラレータのメモリ空間に移転し、最終的に、第2の状態情報を第1のアドレス空間にコピーし、状態切り替えを実現する。
以上の手順によってホスト側とFPGAアクセラレータ間のデータ同期が実現される。データ同期過程の終了方法としては、双方向メモリ同期装置がメモリ同期通信リンクの信頼性が低いことを検出したときに、能動的に同期操作を終了し、且つ第2アドレス空間に第3状態情報を書き込むようにしてもよいし、ホスト側が能動的に同期終了を開始し、第2アドレス空間に第3状態情報を書き込むことによって、双方向メモリ同期装置が受動的に同期動作を終了するようにしてもよい。具体的にどのような方式を採用するかは、実際の場面のニーズに応じて決定すればよく、本実施形態では限定されない。
なお、本実施形態の第1の状態情報、第2の状態情報、第3の状態情報は、同期状態を記述するために用いられ、第1の状態情報と第2の状態情報は、データ同期処理に伴って更新される可能性があるが、第3の状態情報は、同期を終了するための情報として、第1の状態情報または第2の状態情報と常に一致しない。
本発明で提供されるホスト側とFPGAアクセラレータとの間のデータ同期方法であって、ホスト側から所定のメモリ空間にデータを移転することを検出した後、第1のアドレス空間の第1の状態情報に基づいて第2の状態情報を生成し、前記第2の状態情報を第2のアドレス空間に書き込み、ところで、前記第1のアドレス空間と前記第2のアドレス空間は、ベースアドレスレジスタ空間に対する前記ホスト側にマッピングされる異なるアドレス空間であり、前記第1の状態情報は、前のデータフレーム番号と現在のデータフレーム番号とを含み、前記第2の状態情報は、現在のデータフレーム番号と次のデータフレーム番号とを含む、ステップと、前記第2のアドレス空間における前記第2の状態情報を検出した後、DMAを呼び出して前記所定のメモリ空間のデータをFPGAアレイアクセラレータのメモリ空間に移転し、前記第2の状態情報を前記第1のアドレス空間にコピーして、同期を実現するステップと、を含む。これにより、この方法は、2つのアドレス空間における状態情報に基づいてデータ同期動作を実行することを実現し、FPGAアクセラレータ側のコントローラによって、両側のメモリデータの同期を能動的に実行し、ホスト側の処理圧力を軽減し、データ同期遅延時間を低減し、システムスループットを向上させる。
以下、本発明に係るホスト側とFPGAアクセラレータとの間のデータ同期方法の実施形態2を詳細に説明するが、実施形態2は、実施形態1に基づいて実現され、実施形態1に基づいてある程度の展開が行われた。
図3を参照すると、実施形態2は、具体的に下記のステップが含まれる。
ステップS301:双方向メモリ同期装置は、Bar空間が前記ホスト側にマッピングされる第1のアドレス空間を読み書くことにより、ホスト側とFPGAアクセラレータとの間のメモリ同期通信リンクを確立する。
ステップS302:ホスト側は、第1のアドレス空間から第1の状態情報を読み取り、第1の状態情報に基づいて前のデータフレーム番号及び現在のデータフレーム番号を決定し、前のデータフレーム番号と現在のデータフレーム番号との間の差が所定の閾値であるか否かを判定することにより、メモリ同期通信リンクに対する信頼性検証を行う。
ステップS303:メモリ同期通信リンクが所定時間内に信頼性検証に合格しない場合、ホスト側は、1フレームが終了するまで、データを所定のメモリ空間に引き続き移転する。
ステップS304:前記メモリ同期通信リンクが所定時間内に信頼性検証に合格する場合、ホスト側は、所定のメモリ空間にデータを移転し、第1のアドレス空間の第1の状態情報に基づいて第2の状態情報を生成し、第2の状態情報を第2のアドレス空間に書き込む。
ここで、前記第1のアドレス空間と前記第2のアドレス空間は、Bar空間が前記ホスト側にマッピングされる異なるアドレス空間であり、前記第1の状態情報は、前のデータフレーム番号と現在のデータフレーム番号とを含み、前記第2の状態情報は、現在のデータフレーム番号と次のデータフレーム番号とを含む。
ステップS305:双方向メモリ同期装置は、第2のアドレス空間における第2の状態情報を取得し、前記第2の状態情報に基づいて現在のデータフレーム番号と次のデータフレーム番号を決定し、前記現在のデータフレーム番号と前記次のデータフレーム番号との間の差が所定閾値であるか否かを判定することにより、前記メモリ同期通信リンクに対する信頼性検証を行う。
ステップS306:前記メモリ同期通信リンクが信頼性検証に合格しない場合、DMAを呼び出してデータを移転する動作を停止させるために、前記第2のアドレス空間に第3の状態情報を書き込む。
ステップS307:前記メモリ同期通信リンクが信頼性検証に合格する場合、DMAを呼び出して前記所定のメモリ空間のデータをFPGAアクセラレータのメモリ空間に移転し、前記第2の状態情報を前記第1のアドレス空間にコピーし、同期を実現する。
ステップS308:ホスト側が前記第2のアドレス空間に第3の状態情報を書き込むと、双方向メモリ同期装置は、前記第2のアドレス空間における第3の状態情報を取得した後、同期が終了する。
双方向メモリ同期装置(DMSE、Bidirectional Memory Synchronize Engine)がアクセラレータシステムRuntime(運転時間)における構成図は図4に示され、DMSEはFPGAの論理リソースを用いて構築され、Inspur(浪潮)F37Xプラットフォームを例にすると、DMSEは内部AXI(Advanced Xtensible Interface、拡張可能な上位インタフェース)バスによりPCIeインタフェースを介してプロセッサプラットフォームとの接続を確立し、データ通信を実現する。図4において、左下隅のブロックは、ニューラルネットワーク推論の論理ユニットのような、FPGAのオンボードDDR(Double Data Rate、倍速同期型ダイナミックランダムアクセスメモリ)である。BSP(Board Support Package)は、ボードレベルサポートパケットである。Runtimeは、システムの動作に必要なライブラリ(lib)である。FAU(FPGA accelerator unit)、即ち、FPGAアクセラレータユニットである。FSTH(FPGA Memory Synchronize to Host Memory)は、FPGAメモリがHostメモリに同期されることである。HSTF(Host Memory Synchronize to FPGA Memory)は、HostメモリがFPGAメモリに同期されることである。RMS(Random memory Synchronization)は、ランダムメモリ同期である。ByPassはバイパスである。
Host側のI/O(Input/Output)からデータを取り出してFPGAに入れ、処理させる。画像オブジェクト認識を処理する場合、CPU(central processing unit、即ち、中央処理装置)側にあるデータフレームは、先ず、Host側における指定のメモリ領域にキャッシュされ、そして命令によってFPGA側のDMAコントローラを呼び出してデータをFPGA側における指定のメモリに移転する。データスループットを向上させるために、典型的な技術的手段としては、Pipeline(外部プログラムとホストとの間のデータを低速化するパイプセグメントの線形通信モデルを表す)が設計られ、プロセスギャップを短縮し、期間の作業密度を向上させる。
プロセッサとFPGAとの両側のメモリ領域の整合性及びデータ完全性を確保するために、データ伝送リンクの信頼性を確保する必要がある。双方向メモリ同期装置の動作の流れは、3つの段階に分けられ、第1の段階は、通信リンクを確立するものであり、第2の段階は、データ同期を実行するものであり、第3の段階は、通信リンクを廃棄するものである。
双方向メモリ同期装置の動作制御の流れを図5に示す。双方向メモリ同期装置は、Bar空間がホスト側にマッピングされるタグアドレス空間A(即ち、第1のアドレス空間)、ハンドシェイクを1回実行したことに相当し、CPUとFPGAとの間の両側のメモリ同期通信リンクを確立する。DMSEはアドレス空間Aに8Byteの長さの非0状態信号検証情報を書き込み、Host側はデータを所定のメモリ空間に移転する。Host側は、メモリへのデータの移転を完了した後、Bar空間がホスト側にマッピングされるタグアドレス空間B(即ち、第2のアドレス空間)に、現在のデータフレーム番号である先頭の4Bytesと次のデータフレーム番号である末尾の4Bytesとの2つの4Bytesの長さのデータフレーム番号を書き込む。DMSEは、タグアドレス空間Bのデータを読み取った後、DMAデータ移転を開始し、タグアドレス空間Bのデータをタグアドレス空間Aにコピーする。
なお、ホスト側はアドレス空間Aの値を検証し、双方向メモリ同期装置はアドレス空間Bの値を検証してもよい。例えば、Hostはアドレス空間Aの値を読み取って差分検証を行ってもよく、先頭の4Bytesが前のデータフレーム番号であり、末尾の4Bytesが現在のデータフレーム番号であり、先頭の4Bytesデータと末尾の4Bytesデータとの差分が1であればデータリンクが信頼できることを示す。一具体的な実施形態として、Hostの指定メモリ空間へのデータ移動とリンク状態検証とが非同期動作であり、所定時間内にリンク状態検証が完了しない場合、1フレーム終了まで、データを引き続き移動する。ここで、所定時間は具体的に最小データ移転総時間の2/3であってもよく、データ移転量が計算可能であるため、この状態は検出可能であり、2/3は経験値であり、実用上調整可能である。
また、両側のメモリデータ同期を終了させる場合には、通信リンク廃棄処理を行う必要がある。動作方法としては、Hostは、先頭の4Bytesデータフレーム番号が0x0000であり、尾末の4Bytesデータフレーム番号が0x0000である4Bytesの長さの2つのデータフレーム番号をアドレス空間Bに書込み、これにより、双方向メモリ同期装置のデータ移転を停止させる。設計上の必要性に応じて、例えば、リンク異常の場合、双方向メモリ同期装置は同期を能動的に停止することができる。
このように、本実施形態で提供されるホスト側とFPGAアクセラレータとの間のデータ同期方法は、FPGAのハードウェアプログラマブル特性を利用して、FPGA側に双方向メモリ同期装置が実現され、Hostソフトウェアはディスクから指定のメモリ領域にデータをキャッシュするだけでもよく、Host側ソフトウェアの動作流れを簡素化し、両側のデータ同期制御は、FPGA側の双方向メモリ同期装置のハードウェアによって実現される。
具体的には、本実施形態は、信頼性のあるデータ伝送リンクを確立し、メモリ同期方法を簡素化し、同時に静的メモリ容量状態検出方法を設計し、メモリ状態遷移の後、DMAキューを自動的にトリガし、両側メモリ同期を行い、応用システムのメモリデータ同期遅延を低減し、推論システムのスループット効率を効果的に向上させることができる。本実施形態は、FPGAとHost側とのデータ高速低レイテンシ相互同期問題を効果的に解決することができ、映像処理、AI顔検出、画像オブジェクト認識などの分野においてPipeline技術と組み合わせてFPGA推論のスループット効率を効果的に向上させることができる。
以下、本発明の実施形態に係る双方向メモリ同期装置について説明するが、以下で説明する双方向メモリ同期装置と、上述したホスト側とFPGAアクセラレータとの間のデータ同期方法とは、互いに対応して参照することができる。
本実施形態に係る双方向メモリ同期装置は、ホスト側から所定のメモリ空間にデータを移転することを検出した後、第1のアドレス空間の第1の状態情報に基づいて第2の状態情報を生成し、前記第2の状態情報を第2のアドレス空間に書き込み、ところで、前記第1のアドレス空間と前記第2のアドレス空間は、Bar空間が前記ホスト側にマッピングされる異なるアドレス空間であり、前記第1の状態情報は、前のデータフレーム番号と現在のデータフレーム番号とを含み、前記第2の状態情報は、現在のデータフレーム番号と次のデータフレーム番号とを含む、ように構成された状態情報書込みモジュールと、
前記第2のアドレス空間における前記第2の状態情報を検出した後、DMAを呼び出して前記所定のメモリ空間のデータをFPGAアクセラレータのメモリ空間に移転し、前記第2の状態情報を前記第1のアドレス空間にコピーして、同期を実現する、ように構成されたデータ移転モジュールと、を備える。
本実施形態に係る双方向メモリ同期装置は、前述のホスト側とFPGAアクセラレータとの間のデータ同期方法を実現するために用いられるため、この双方向メモリ同期装置における具体的な実施形態は、上記のホスト側とFPGAアクセラレータとの間のデータ同期方法の実施形態を参照することができる。したがって、それらの詳細な説明は、対応する様々な部分の実施形態の説明を参照することができ、ここでの詳細な説明は省略する。
なお、本実施形態の双方向メモリ同期装置は、上記したホスト側とFPGAアクセラレータとの間のデータ同期方法を実現するためのものであるため、その作用は上記した方法の作用と対応しており、ここではその説明を省略する。
また、本発明は、上記した双方向メモリ同期装置を含むFPGAアクセラレータをさらに提供する。
最後に、本出願は、ホスト側とFPGAアクセラレータとを含み、前記FPGAアクセラレータに上記した双方向メモリ同期装置が含まれるデータ同期システムをさらに提供する。
本明細書における様々な実施形態は、逐次的な方法で説明され、各実施形態は、他の実施形態との相違点を中心に説明され、様々な実施形態の間で、同一又は類似の部分は、相互に参照され得る。実施形態に開示された装置は、実施形態に開示された方法と対応するので、説明が比較的単純であることに関しては、方法の部分の説明を参照すればよい。
本明細書で開示された実施形態に関連して説明された方法またはアルゴリズムのステップは、ハードウェア、プロセッサ実行可能なソフトウェアモジュール、またはその両方の組合せを用いて実施され得る。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、メモリ、リードオンリーメモリ(ROM)、電気的プログラマブルROM、電気的消去可能プログラマブルROM、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM(Compact Disc Read-Only Memory)、または当技術分野で知られている他の任意の形式の記憶媒体に置くことができる。
以上、本出願で提供される方案について詳しく説明し、本明細書に具体的な例を適用して本発明の原理と実施形態について述べてきたが、以上の実施形態の説明は、本発明に係る方法及びその核心思想の理解を助けるためのものに過ぎず、一方、当業者であれば、本発明の思想に基づいて具体的な実施形態及び応用範囲に変更があることが理解でき、以上のように、本明細書の内容は本発明を限定するものと理解すべきではない。

Claims (10)

  1. ホスト側とFPGAアクセラレータとの間のデータ同期方法であって、
    ホスト側から所定のメモリ空間にデータを移転することを検出した後、第1のアドレス空間の第1の状態情報に基づいて第2の状態情報を生成し、前記第2の状態情報を第2のアドレス空間に書き込み、ところで、前記第1のアドレス空間と前記第2のアドレス空間は、ベースアドレスレジスタ空間が前記ホスト側にマッピングされる異なるアドレス空間であり、前記第1の状態情報は、前のデータフレーム番号と現在のデータフレーム番号とを含み、前記第2の状態情報は、現在のデータフレーム番号と次のデータフレーム番号とを含む、ステップと、
    前記第2のアドレス空間における前記第2の状態情報を検出した後、ダイレクトメモリアクセスを呼び出して前記所定のメモリ空間のデータをフィールドプログラマブルゲートアレイアクセラレータのメモリ空間に移転し、前記第2の状態情報を前記第1のアドレス空間にコピーして、同期を実現するステップと、
    を含むことを特徴とする、データ同期方法。
  2. ホスト側から所定のメモリ空間にデータを移転することを検出した後、第1のアドレス空間の第1の状態情報に基づいて第2の状態情報を生成する前に、
    ベースアドレスレジスタ空間が前記ホスト側にマッピングされる第1のアドレス空間を読み書くことにより、前記ホスト側と前記フィールドプログラマブルゲートアレイアクセラレータとの間のメモリ同期通信リンクを確立するステップ、
    をさらに含むことを特徴とする、請求項1に記載の方法。
  3. ホスト側から所定のメモリ空間にデータを移転することを検出した後、第1のアドレス空間の第1の状態情報に基づいて第2の状態情報を生成する前に、
    前記ホスト側は、前記第1のアドレス空間から前記第1の状態情報を読み取り、第1の状態情報に基づいて前のデータフレーム番号及び現在のデータフレーム番号を決定し、前記前のデータフレーム番号と前記現在のデータフレーム番号との間の差が所定の閾値であるか否かを判定することにより、前記メモリ同期通信リンクに対する信頼性検証を行うステップ、
    をさらに含むことを特徴とする、請求項2に記載の方法。
  4. 前記前のデータフレーム番号と前記現在のデータフレーム番号との間の差が所定の閾値であるか否かを判定することにより、前記メモリ同期通信リンクに対する信頼性検証を行うステップの後、
    前記メモリ同期通信リンクが所定時間内に信頼性検証に合格しない場合、前記ホスト側は、1フレームが終了するまで、データを所定のメモリ空間に引き続き移転すること、
    をさらに含むことを特徴とする、請求項3に記載の方法。
  5. ダイレクトメモリアクセスを呼び出して前記所定のメモリ空間のデータをフィールドプログラマブルゲートアレイアクセラレータのメモリ空間に移転する前に、
    前記第2のアドレス空間における第2の状態情報を取得し、前記第2の状態情報に基づいて現在のデータフレーム番号と次のデータフレーム番号を決定し、前記現在のデータフレーム番号と前記次のデータフレーム番号との間の差が所定閾値であるか否かを判定することにより、前記メモリ同期通信リンクに対する信頼性検証を行うステップ、
    をさらに含むことを特徴とする、請求項3に記載の方法。
  6. 前記現在のデータフレーム番号と前記次のデータフレーム番号との間の差が所定閾値であるか否かを判定することにより、前記メモリ同期通信リンクに対する信頼性検証を行うステップの後、
    前記メモリ同期通信リンクが信頼性検証に合格しない場合、ダイレクトメモリアクセスを呼び出してデータを移転する動作を停止させるために、前記第2のアドレス空間に第3の状態情報を書き込むステップと、
    をさらに含むことを特徴とする、請求項5に記載の方法。
  7. 前記ホスト側は、同期を終了させるために、前記第2のアドレス空間に第3の状態情報を書き込むステップ、
    をさらに含むことを特徴とする、請求項1~6のいずれか一項に記載の方法。
  8. ホスト側から所定のメモリ空間にデータを移転することを検出した後、第1のアドレス空間の第1の状態情報に基づいて第2の状態情報を生成し、前記第2の状態情報を第2のアドレス空間に書き込み、ところで、前記第1のアドレス空間と前記第2のアドレス空間は、ベースアドレスレジスタ空間が前記ホスト側にマッピングされる異なるアドレス空間であり、前記第1の状態情報は、前のデータフレーム番号と現在のデータフレーム番号とを含み、前記第2の状態情報は、現在のデータフレーム番号と次のデータフレーム番号とを含む、ように構成された状態情報書込みモジュールと、
    前記第2のアドレス空間における前記第2の状態情報を検出した後、ダイレクトメモリアクセスを呼び出して前記所定のメモリ空間のデータをフィールドプログラマブルゲートアレイアクセラレータのメモリ空間に移転し、前記第2の状態情報を前記第1のアドレス空間にコピーして、同期を実現する、ように構成されたデータ移転モジュールと、
    を備えることを特徴とする、双方向メモリ同期装置。
  9. 請求項8に記載の双方向メモリ同期装置を含むことを特徴とする、FPGAアクセラレータ。
  10. ホスト側と、フィールドプログラマブルゲートアレイアクセラレータとを備え、前記フィールドプログラマブルゲートアレイアクセラレータは、請求項8に記載の双方向メモリ同期装置を備えることを特徴とする、データ同期システム。
JP2022539756A 2020-02-21 2021-01-07 ホスト側とfpgaアクセラレータと間のデータ同期方法 Active JP7270113B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN202010108433.4 2020-02-21
CN202010108433.4A CN111367839B (zh) 2020-02-21 2020-02-21 一种主机端与fpga加速器之间的数据同步方法
PCT/CN2021/070630 WO2021164452A1 (zh) 2020-02-21 2021-01-07 一种主机端与fpga加速器之间的数据同步方法

Publications (2)

Publication Number Publication Date
JP2022554039A true JP2022554039A (ja) 2022-12-27
JP7270113B2 JP7270113B2 (ja) 2023-05-09

Family

ID=71210106

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022539756A Active JP7270113B2 (ja) 2020-02-21 2021-01-07 ホスト側とfpgaアクセラレータと間のデータ同期方法

Country Status (5)

Country Link
US (1) US11762790B2 (ja)
EP (1) EP4068105A4 (ja)
JP (1) JP7270113B2 (ja)
CN (1) CN111367839B (ja)
WO (1) WO2021164452A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111367839B (zh) 2020-02-21 2021-06-29 苏州浪潮智能科技有限公司 一种主机端与fpga加速器之间的数据同步方法
CN111813713B (zh) * 2020-09-08 2021-02-12 苏州浪潮智能科技有限公司 数据加速运算处理方法、装置及计算机可读存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004213565A (ja) * 2003-01-08 2004-07-29 Renesas Technology Corp 通信制御装置
US20110225256A1 (en) * 2010-03-09 2011-09-15 Franck Seigneret Video Synchronization with Distributed Modules
JP2012208755A (ja) * 2011-03-30 2012-10-25 Renesas Electronics Corp オーディオ再生装置及びオーディオ再生方法
JP2013003692A (ja) * 2011-06-14 2013-01-07 Renesas Electronics Corp オーディオ再生装置及びオーディオ再生方法
CN105607874A (zh) * 2015-12-31 2016-05-25 湖南国科微电子股份有限公司 Sata协议加速模块、主机与硬盘通信方法及固态硬盘控制器
CN105677491A (zh) * 2015-12-31 2016-06-15 杭州华为数字技术有限公司 一种数据传输方法及装置
CN107870879A (zh) * 2016-09-23 2018-04-03 中国移动通信有限公司研究院 一种数据搬移方法、加速器板卡、主机及数据搬移系统
CN108958800A (zh) * 2018-06-15 2018-12-07 中国电子科技集团公司第五十二研究所 一种基于fpga硬件加速的ddr管理控制系统
CN109558344A (zh) * 2018-12-03 2019-04-02 郑州云海信息技术有限公司 一种适用于网络传输的dma传输方法及dma控制器
CN109739786A (zh) * 2019-01-08 2019-05-10 郑州云海信息技术有限公司 一种dma控制器和异构加速系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0346917A3 (en) * 1988-06-17 1990-11-07 Modular Computer Systems Inc. Bus stealing method for concurrent cpu and i/o processing
US7664889B2 (en) * 2005-09-29 2010-02-16 Intel Corporation DMA descriptor management mechanism
CN101419616A (zh) * 2008-12-10 2009-04-29 阿里巴巴集团控股有限公司 一种数据同步方法及装置
WO2012147124A1 (en) * 2011-04-26 2012-11-01 Hitachi, Ltd. Server apparatus and method of controlling information system
CN102937939B (zh) * 2012-10-10 2015-12-16 无锡众志和达数据计算股份有限公司 基于sata控制器的dma地址对预读取方法
MY186464A (en) 2012-12-14 2021-07-22 Mimos Berhad System and method for optimal memory management between cpu and fpga unit
CN104035781B (zh) * 2014-06-27 2017-06-23 北京航空航天大学 一种快速开发异构并行程序的方法
CN106844245B (zh) * 2017-02-17 2019-11-12 北京腾凌科技有限公司 数据传输方法及装置
CN107197182B (zh) * 2017-06-06 2020-05-05 青岛海信电器股份有限公司 一种在电视上显示屏幕菜单的方法、装置及电视
US10509666B2 (en) * 2017-06-29 2019-12-17 Ati Technologies Ulc Register partition and protection for virtualized processing device
CN109308280B (zh) * 2017-07-26 2021-05-18 华为技术有限公司 数据处理方法和相关设备
CN109240870A (zh) * 2018-09-25 2019-01-18 浪潮电子信息产业股份有限公司 一种固态硬盘故障定位方法及相关装置
CN111367839B (zh) 2020-02-21 2021-06-29 苏州浪潮智能科技有限公司 一种主机端与fpga加速器之间的数据同步方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004213565A (ja) * 2003-01-08 2004-07-29 Renesas Technology Corp 通信制御装置
US20110225256A1 (en) * 2010-03-09 2011-09-15 Franck Seigneret Video Synchronization with Distributed Modules
JP2012208755A (ja) * 2011-03-30 2012-10-25 Renesas Electronics Corp オーディオ再生装置及びオーディオ再生方法
JP2013003692A (ja) * 2011-06-14 2013-01-07 Renesas Electronics Corp オーディオ再生装置及びオーディオ再生方法
CN105607874A (zh) * 2015-12-31 2016-05-25 湖南国科微电子股份有限公司 Sata协议加速模块、主机与硬盘通信方法及固态硬盘控制器
CN105677491A (zh) * 2015-12-31 2016-06-15 杭州华为数字技术有限公司 一种数据传输方法及装置
CN107870879A (zh) * 2016-09-23 2018-04-03 中国移动通信有限公司研究院 一种数据搬移方法、加速器板卡、主机及数据搬移系统
CN108958800A (zh) * 2018-06-15 2018-12-07 中国电子科技集团公司第五十二研究所 一种基于fpga硬件加速的ddr管理控制系统
CN109558344A (zh) * 2018-12-03 2019-04-02 郑州云海信息技术有限公司 一种适用于网络传输的dma传输方法及dma控制器
CN109739786A (zh) * 2019-01-08 2019-05-10 郑州云海信息技术有限公司 一种dma控制器和异构加速系统

Also Published As

Publication number Publication date
CN111367839A (zh) 2020-07-03
US20230098879A1 (en) 2023-03-30
WO2021164452A1 (zh) 2021-08-26
JP7270113B2 (ja) 2023-05-09
EP4068105A4 (en) 2023-05-03
US11762790B2 (en) 2023-09-19
EP4068105A1 (en) 2022-10-05
CN111367839B (zh) 2021-06-29

Similar Documents

Publication Publication Date Title
US6370611B1 (en) Raid XOR operations to synchronous DRAM using a read buffer and pipelining of synchronous DRAM burst read data
JP7270113B2 (ja) ホスト側とfpgaアクセラレータと間のデータ同期方法
US6877059B2 (en) Communications architecture for a high throughput storage processor
US20030188100A1 (en) Memory architecture for a high throughput storage processor
US6029233A (en) Circuit for moving data between remote memories and computer comprising such a circuit
JP2009282917A (ja) サーバ間通信機構及びコンピュータシステム
JP4175901B2 (ja) バスブリッジ回路、バス接続システム、及びバスブリッジ回路のバッファ制御方法
CN111506518B (zh) 一种数据存储控制方法及装置
JPH03656B2 (ja)
JP6142514B2 (ja) 仮想テープ装置およびその冗長データ作成方法
WO2024051410A1 (zh) 数据访问方法、装置、网络接口卡、可读介质和电子设备
US20230229493A1 (en) Electronic system, operating method thereof, and operating method of memory device
KR100270683B1 (ko) 비동기전송모드 교환기에서 메인 프로세서의 이중화 장치
JP2522412B2 (ja) プログラマブルコントロ―ラと入出力装置の間の通信方法
JP2585852B2 (ja) バッファ制御方式
JP5321782B2 (ja) 二重化システム及びメモリコピー方法
JPH02301851A (ja) システムバスアクセス方式
CN117806833A (zh) 一种数据处理系统、方法及介质
JPH0751633Y2 (ja) メモリ制御回路
JPS6367669A (ja) 記憶制御装置の制御方式
JPS6111874A (ja) 計算機間のデ−タ転送システム
JPS63305451A (ja) 記憶システム
JPH10326250A (ja) Dma転送制御装置
JPS61127025A (ja) 光デイスク制御装置
JPH04263345A (ja) メモリアクセス制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220628

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20220628

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230317

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: 20230411

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230424

R150 Certificate of patent or registration of utility model

Ref document number: 7270113

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150