IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ▲蘇▼州浪潮智能科技有限公司の特許一覧

特表2022-554039ホスト側とFPGAアクセラレータと間のデータ同期方法
<>
  • 特表-ホスト側とFPGAアクセラレータと間のデータ同期方法 図1
  • 特表-ホスト側とFPGAアクセラレータと間のデータ同期方法 図2
  • 特表-ホスト側とFPGAアクセラレータと間のデータ同期方法 図3
  • 特表-ホスト側とFPGAアクセラレータと間のデータ同期方法 図4
  • 特表-ホスト側とFPGAアクセラレータと間のデータ同期方法 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-12-27
(54)【発明の名称】ホスト側とFPGAアクセラレータと間のデータ同期方法
(51)【国際特許分類】
   G06F 13/28 20060101AFI20221220BHJP
   G06F 13/10 20060101ALI20221220BHJP
   G06F 13/12 20060101ALI20221220BHJP
【FI】
G06F13/28 310L
G06F13/10 310B
G06F13/12 330A
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022539756
(86)(22)【出願日】2021-01-07
(85)【翻訳文提出日】2022-06-28
(86)【国際出願番号】 CN2021070630
(87)【国際公開番号】W WO2021164452
(87)【国際公開日】2021-08-26
(31)【優先権主張番号】202010108433.4
(32)【優先日】2020-02-21
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】521524346
【氏名又は名称】▲蘇▼州浪潮智能科技有限公司
(74)【代理人】
【識別番号】110002262
【氏名又は名称】TRY国際弁理士法人
(72)【発明者】
【氏名】欧 明陽
(72)【発明者】
【氏名】樊 嘉恒
(72)【発明者】
【氏名】▲かん▼ 宏偉
(57)【要約】
ホスト側とFPGAアクセラレータと間のデータ同期方法、双方向メモリ同期装置、FPGAアクセラレータ及びデータ同期システムであり、この方法は、ホスト側から所定のメモリ空間にデータを移転することを検出した後、第1のアドレス空間の第1の状態情報に基づいて第2の状態情報を生成し、前記第2の状態情報を第2のアドレス空間に書き込むステップ(S201)と、第2のアドレス空間における第2の状態情報を検出した後、DAMを呼び出して所定のメモリ空間のデータをFPGAアクセラレータのメモリ空間に移転し、第2の状態情報を前記第1のアドレス空間にコピーして、同期を実現するステップ(S202)と、を含む。これにより、この方法は、2つのアドレス空間における状態情報に基づいてデータ同期動作を実行することを実現し、FPGAアクセラレータ側のコントローラによりデュアルポートメモリデータの同期を能動的に実行し、データ同期遅延を低減し、システムスループットを向上させる。
【特許請求の範囲】
【請求項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に記載の双方向メモリ同期装置を備えることを特徴とする、データ同期システム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2020年2月21日に出願された中国特許出願第202010108433.4号(発明の名称:ホスト側とFPGAアクセラレータと間のデータ同期方法)に基づく優先権を主張し、引用によりその全ての記載内容が本明細書に組み込まれる。
【0002】
本出願は、コンピュータ技術の分野に関し、特に、ホスト側とFPGA(Field Programmable Gate Array)アクセラレータと間のデータ同期方法、双方向メモリ同期装置、FPGAアクセラレータ及びデータ同期システムに関する。
【背景技術】
【0003】
現在、汎用計算システムは、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)バスと比較して、プロセッサとバスが空間的に分離され、拡張可能性に優れ、動的構成のサポート及びエンドツーエンドの高いバスデータ帯域幅などの利点を有する。
【0004】
FPGAは、現在新興の高速化装置として、主にPCIeバスを介してプロセッサと通信する。FPGAアクセラレータは、PCIe-Agentデバイス(PCIeスレーブデバイス)として、データ格納のための独立なオンボードメモリ空間を有する。x86アーキテクチャにおいて、プロセッサがFPGAとデータをやりとりするためには、RC(Root Complex)によってアドレス空間の変換及び物理信号変換を完了する必要がある。ある新興の応用場面では、FPGAは高速化装置として、プロセッサ側にあるデータを用い、OpenCL(Open Computing Language)異種プログラミングモデルによって、FPGA側のダイレクトメモリアクセスコントローラを介してホスト側のデータをアクセラレータ側のオンボードメモリの指定領域にコピーする、ということが必要である。
【0005】
現在使用されているソフトウェア命令による受動メモリコピー方式は、データ同期のステップを追加しておる。PCIeでは、Host(ホスト)とFPGAとの通信がDMA(Direct Memory Access、ダイレクトメモリアクセス)やBar(Base Address Register、ベースアドレスレジスタ)を用いて空間マッピングによりデータを移転し、それらの動作には、コントローラがアクセスされ、命令により読み書きの開始と取消を制御する必要がある。データ移転の過程で、特定のコードを書いて両側のデータ同期を維持する必要があり、Host側でコードが動くと、データ移転応答が遅くで不安定になるなどの問題がある。AI(Artificial Intelligence、人工知能)推論などの重要な応用場面では、この技術モードによると応用システムメモリの動作遅延が増加し、システムスループット効率が低下する。
【発明の概要】
【0006】
本発明は、従来技術におけるホスト側とFPGAアクセラレータとの間の長い同期遅延の問題を解決するために、ホスト側とFPGAアクセラレータとの間のデータ同期方法、双方向メモリ同期装置、FPGAアクセラレータ、及びデータ同期システムを提供することを目的とする。具体的には、以下の通りである。
【0007】
本発明による第1の態様において、ホスト側とFPGAアクセラレータとの間のデータ同期方法であって、
ホスト側から所定のメモリ空間にデータを移転することを検出した後、第1のアドレス空間の第1の状態情報に基づいて第2の状態情報を生成し、前記第2の状態情報を第2のアドレス空間に書き込み、ところで、前記第1のアドレス空間と前記第2のアドレス空間は、ベースアドレスレジスタ空間が前記ホスト側にマッピングされる異なるアドレス空間であり、前記第1の状態情報は、前のデータフレーム番号と現在のデータフレーム番号とを含み、前記第2の状態情報は、現在のデータフレーム番号と次のデータフレーム番号とを含むステップと、
前記第2のアドレス空間における前記第2の状態情報を検出した後、ダイレクトメモリアクセスを呼び出して前記所定のメモリ空間のデータをフィールドプログラマブルゲートアレイアクセラレータのメモリ空間に移転し、前記第2の状態情報を前記第1のアドレス空間にコピーして、同期を実現するステップと、を含むデータ同期方法が提供される。
【0008】
好ましくは、ホスト側から所定のメモリ空間にデータを移転することを検出した後、第1のアドレス空間の第1の状態情報に基づいて第2の状態情報を生成する前に、
Bar空間が前記ホスト側にマッピングされる第1のアドレス空間を読み書くことにより、前記ホスト側と前記FPGAアクセラレータとの間のメモリ同期通信リンクを確立するステップをさらに含む。
【0009】
好ましくは、ホスト側から所定のメモリ空間にデータを移転することを検出した後、第1のアドレス空間の第1の状態情報に基づいて第2の状態情報を生成する前に、
前記ホスト側は、前記第1のアドレス空間から前記第1の状態情報を読み取り、第1の状態情報に基づいて前のデータフレーム番号及び現在のデータフレーム番号を決定し、前記前のデータフレーム番号と前記現在のデータフレーム番号との間の差が所定の閾値であるか否かを判定することにより、前記メモリ同期通信リンクに対する信頼性検証を行うステップをさらに含む。
【0010】
好ましくは、前記前のデータフレーム番号と前記現在のデータフレーム番号との間の差が所定の閾値であるか否かを判定することにより、前記メモリ同期通信リンクに対する信頼性検証を行うステップの後、
前記メモリ同期通信リンクが所定時間内に信頼性検証に合格しない場合、前記ホスト側は、1フレームが終了するまで、データを所定のメモリ空間に引き続き移転するステップをさらに含む。
【0011】
好ましくは、DMAを呼び出して前記所定のメモリ空間のデータをFPGAアクセラレータのメモリ空間に移転する前に、
前記第2のアドレス空間における第2の状態情報を取得し、前記第2の状態情報に基づいて現在のデータフレーム番号と次のデータフレーム番号を決定し、前記現在のデータフレーム番号と前記次のデータフレーム番号との間の差が所定の閾値であるか否かを判定することにより、前記メモリ同期通信リンクに対する信頼性検証を行うステップをさらに含む。
【0012】
好ましくは、前記現在のデータフレーム番号と前記次のデータフレーム番号との間の差が所定閾値であるか否かを判定することにより、前記メモリ同期通信リンクに対する信頼性検証を行うステップの後、
前記メモリ同期通信リンクが信頼性検証に合格しない場合、DMAを呼び出してデータを移転する動作を停止させるために、前記第2のアドレス空間に第3の状態情報を書き込むステップをさらに含む。
【0013】
好ましくは、前記ホスト側は、同期を終了させるために、前記第2のアドレス空間に第3の状態情報を書き込むステップをさらに含む。
【0014】
本発明による第2の態様において、ホスト側から所定のメモリ空間にデータを移転することを検出した後、第1のアドレス空間の第1の状態情報に基づいて第2の状態情報を生成し、前記第2の状態情報を第2のアドレス空間に書き込み、ところで、前記第1のアドレス空間と前記第2のアドレス空間は、ベースアドレスレジスタ空間が前記ホスト側にマッピングされる異なるアドレス空間であり、前記第1の状態情報は、前のデータフレーム番号と現在のデータフレーム番号とを含み、前記第2の状態情報は、現在のデータフレーム番号と次のデータフレーム番号とを含む、ように構成された状態情報書込みモジュールと、
前記第2のアドレス空間における前記第2の状態情報を検出した後、ダイレクトメモリアクセスを呼び出して前記所定のメモリ空間のデータをフィールドプログラマブルゲートアレイアクセラレータのメモリ空間に移転し、前記第2の状態情報を前記第1のアドレス空間にコピーして、同期を実現するように構成されたデータ移転モジュールと、を備える双方向メモリ同期装置が提供される。
【0015】
本発明による第3の態様において、上記の双方向メモリ同期装置を含むFPGAアクセラレータが提供される。
【0016】
本発明による第4の態様において、ホスト側と、FPGAアクセラレータとを備え、前記FPGAアクセラレータは、双方向メモリ同期装置を備える。
【0017】
本発明で提供されるホスト側とFPGAアクセラレータとの間のデータ同期方法であって、ホスト側から所定のメモリ空間にデータを移転することを検出した後、第1のアドレス空間の第1の状態情報に基づいて第2の状態情報を生成し、第2の状態情報を第2のアドレス空間に書き込むステップと、第2のアドレス空間における第2の状態情報を検出した後、ダイレクトメモリアクセスを呼び出して所定のメモリ空間のデータをフィールドプログラマブルゲートアレイアクセラレータのメモリ空間に移転し、第2の状態情報を第1のアドレス空間にコピーして、同期を実現するステップと、を含む。これにより、この方法は、2つのアドレス空間における状態情報に基づいてデータ同期動作を実行することを実現し、FPGAアクセラレータ側のコントローラによりデュアルポートメモリデータの同期を能動的に実行し、ホスト側の処理圧力を軽減し、データ同期遅延を低減し、システムスループットを向上させる。
【0018】
また、本発明では、双方向メモリ同期装置、FPGAアクセラレータ及びデータ同期システムが提供され、その技術的効果は、上述した方法の技術的効果に対応し、ここでその説明が省略される。
【図面の簡単な説明】
【0019】
本発明の実施形態又は従来技術の技術案をより明確に説明するために、実施形態又は従来技術の説明に必要な図面を簡単に説明すると、以下の説明における図面は本発明の実施形態に過ぎず、当業者にとって、創造的な労力を払わずに、他の図面をこれらの図面に基づいて得ることができることは明らかである。
図1】本発明で提供されるPCIeバスに基づく汎用処理システムの概略図である。
図2】本発明で提供されるホスト側とFPGAアクセラレータとの間のデータ同期方法の実施形態1による実施フローチャートである。
図3】本発明で提供されるホスト側とFPGAアクセラレータとの間のデータ同期方法の実施形態2による実施フローチャートである。
図4】本発明で提供されるホスト側とFPGAアクセラレータとの間のデータ同期方法の実施形態2によるシステムにおける双方向メモリ同期装置の構成図である。
図5】本発明で提供されるホスト側とFPGAアクセラレータとの間のデータ同期方法の実施形態2による双方向メモリ同期装置の動作制御過程を示す図である。
【発明を実施するための形態】
【0020】
本発明は、核心的にホスト側とFPGAアクセラレータとの間のデータ同期方法、双方向メモリ同期装置、FPGAアクセラレータ及びデータ同期システムを提供し、データ同期遅延時間を低減し、システムスループットを向上させることである。
【0021】
本発明の技術分野における通常の知識を有する者が本発明の請求項をより良く理解するために、以下に添付の図面と具体的な実施形態を参照して本発明をより詳細に説明する。明らかに、記載された実施形態は、本発明の一部の実施形態にすぎず、全ての実施形態ではない。当業者によって、創造的な労力を払わずに、本発明における実施形態に基づいて得られる他の全ての実施形態は、本発明の保護範囲に属する。
【0022】
以下、本発明で提供される側とFPGAアクセラレータとの間のデータ同期方法の実施形態1を説明するが、図2を参照すると、実施形態1は下記のステップを含む。
【0023】
ステップS201:ホスト側から所定のメモリ空間にデータを移転することを検出した後、第1のアドレス空間の第1の状態情報に基づいて第2の状態情報を生成し、前記第2の状態情報を第2のアドレス空間に書き込む。
【0024】
ここで、前記第1のアドレス空間と前記第2のアドレス空間は、Bar空間が前記ホスト側にマッピングされておる異なるアドレス空間、前記第1の状態情報は、前のデータフレーム番号と現在のデータフレーム番号を含み、前記第2の状態情報は、現在のデータフレーム番号と次のデータフレーム番号を含む。
【0025】
ステップS202:前記第2のアドレス空間における前記第2の状態情報を検出した後、DAMを呼び出して前記所定のメモリ空間のデータをFPGAアクセラレータのメモリ空間に移転し、前記第2の状態情報を前記第1のアドレス空間にコピーして、同期を実現する。
【0026】
本実施形態は、ホスト側のデータをFPGAアクセラレータ側に同期させることを目的とする。ホスト側は、ディスクまたはメモリの他の領域から所定のメモリ空間にデータを移転し、双方向メモリ同期装置は、DMAを呼び出して、所定のメモリ空間におけるデータをFPGAアクセラレータのメモリ空間に移転し、データ同期を達成する。
【0027】
実際の応用では、双方向メモリ同期装置は、Bar空間がホスト側にマッピングされる第1のアドレス空間を読み書くことにより、ホスト側とFPGAアクセラレータとの間のメモリ同期通信リンクを確立し、初期化過程において第1のアドレス空間に第1の状態情報を書き込むことができる。ホスト側は、データを移転する前に、第1の状態情報を検証することができ、第1の状態情報に含まれる前のデータフレーム番号と現在のデータフレーム番号との差が1であるか否かによって、メモリ同期通信リンクが信頼できるか否かを判定することができる。信頼できる場合、ホスト側は、データを所定のメモリ空間に移転した後、第1の状態情報に基づいて第2の状態情報を生成し、第2の状態情報を第2のアドレス空間に書き込む。
【0028】
次に、双方向メモリ同期装置は、まず、第2のアドレス空間から第2の状態情報を読み取り、第2の状態情報に含まれる現在のデータフレーム番号と次のデータフレーム番号との差が1であるか否かと判定する。1である場合、メモリ同期通信リンクが信頼できると考えられ、DMAを呼び出して、所定のメモリ空間のデータをFPGAアクセラレータのメモリ空間に移転し、最終的に、第2の状態情報を第1のアドレス空間にコピーし、状態切り替えを実現する。
【0029】
以上の手順によってホスト側とFPGAアクセラレータ間のデータ同期が実現される。データ同期過程の終了方法としては、双方向メモリ同期装置がメモリ同期通信リンクの信頼性が低いことを検出したときに、能動的に同期操作を終了し、且つ第2アドレス空間に第3状態情報を書き込むようにしてもよいし、ホスト側が能動的に同期終了を開始し、第2アドレス空間に第3状態情報を書き込むことによって、双方向メモリ同期装置が受動的に同期動作を終了するようにしてもよい。具体的にどのような方式を採用するかは、実際の場面のニーズに応じて決定すればよく、本実施形態では限定されない。
【0030】
なお、本実施形態の第1の状態情報、第2の状態情報、第3の状態情報は、同期状態を記述するために用いられ、第1の状態情報と第2の状態情報は、データ同期処理に伴って更新される可能性があるが、第3の状態情報は、同期を終了するための情報として、第1の状態情報または第2の状態情報と常に一致しない。
【0031】
本発明で提供されるホスト側とFPGAアクセラレータとの間のデータ同期方法であって、ホスト側から所定のメモリ空間にデータを移転することを検出した後、第1のアドレス空間の第1の状態情報に基づいて第2の状態情報を生成し、前記第2の状態情報を第2のアドレス空間に書き込み、ところで、前記第1のアドレス空間と前記第2のアドレス空間は、ベースアドレスレジスタ空間に対する前記ホスト側にマッピングされる異なるアドレス空間であり、前記第1の状態情報は、前のデータフレーム番号と現在のデータフレーム番号とを含み、前記第2の状態情報は、現在のデータフレーム番号と次のデータフレーム番号とを含む、ステップと、前記第2のアドレス空間における前記第2の状態情報を検出した後、DMAを呼び出して前記所定のメモリ空間のデータをFPGAアレイアクセラレータのメモリ空間に移転し、前記第2の状態情報を前記第1のアドレス空間にコピーして、同期を実現するステップと、を含む。これにより、この方法は、2つのアドレス空間における状態情報に基づいてデータ同期動作を実行することを実現し、FPGAアクセラレータ側のコントローラによって、両側のメモリデータの同期を能動的に実行し、ホスト側の処理圧力を軽減し、データ同期遅延時間を低減し、システムスループットを向上させる。
【0032】
以下、本発明に係るホスト側とFPGAアクセラレータとの間のデータ同期方法の実施形態2を詳細に説明するが、実施形態2は、実施形態1に基づいて実現され、実施形態1に基づいてある程度の展開が行われた。
【0033】
図3を参照すると、実施形態2は、具体的に下記のステップが含まれる。
【0034】
ステップS301:双方向メモリ同期装置は、Bar空間が前記ホスト側にマッピングされる第1のアドレス空間を読み書くことにより、ホスト側とFPGAアクセラレータとの間のメモリ同期通信リンクを確立する。
【0035】
ステップS302:ホスト側は、第1のアドレス空間から第1の状態情報を読み取り、第1の状態情報に基づいて前のデータフレーム番号及び現在のデータフレーム番号を決定し、前のデータフレーム番号と現在のデータフレーム番号との間の差が所定の閾値であるか否かを判定することにより、メモリ同期通信リンクに対する信頼性検証を行う。
【0036】
ステップS303:メモリ同期通信リンクが所定時間内に信頼性検証に合格しない場合、ホスト側は、1フレームが終了するまで、データを所定のメモリ空間に引き続き移転する。
【0037】
ステップS304:前記メモリ同期通信リンクが所定時間内に信頼性検証に合格する場合、ホスト側は、所定のメモリ空間にデータを移転し、第1のアドレス空間の第1の状態情報に基づいて第2の状態情報を生成し、第2の状態情報を第2のアドレス空間に書き込む。
【0038】
ここで、前記第1のアドレス空間と前記第2のアドレス空間は、Bar空間が前記ホスト側にマッピングされる異なるアドレス空間であり、前記第1の状態情報は、前のデータフレーム番号と現在のデータフレーム番号とを含み、前記第2の状態情報は、現在のデータフレーム番号と次のデータフレーム番号とを含む。
【0039】
ステップS305:双方向メモリ同期装置は、第2のアドレス空間における第2の状態情報を取得し、前記第2の状態情報に基づいて現在のデータフレーム番号と次のデータフレーム番号を決定し、前記現在のデータフレーム番号と前記次のデータフレーム番号との間の差が所定閾値であるか否かを判定することにより、前記メモリ同期通信リンクに対する信頼性検証を行う。
【0040】
ステップS306:前記メモリ同期通信リンクが信頼性検証に合格しない場合、DMAを呼び出してデータを移転する動作を停止させるために、前記第2のアドレス空間に第3の状態情報を書き込む。
【0041】
ステップS307:前記メモリ同期通信リンクが信頼性検証に合格する場合、DMAを呼び出して前記所定のメモリ空間のデータをFPGAアクセラレータのメモリ空間に移転し、前記第2の状態情報を前記第1のアドレス空間にコピーし、同期を実現する。
【0042】
ステップS308:ホスト側が前記第2のアドレス空間に第3の状態情報を書き込むと、双方向メモリ同期装置は、前記第2のアドレス空間における第3の状態情報を取得した後、同期が終了する。
【0043】
双方向メモリ同期装置(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はバイパスである。
【0044】
Host側のI/O(Input/Output)からデータを取り出してFPGAに入れ、処理させる。画像オブジェクト認識を処理する場合、CPU(central processing unit、即ち、中央処理装置)側にあるデータフレームは、先ず、Host側における指定のメモリ領域にキャッシュされ、そして命令によってFPGA側のDMAコントローラを呼び出してデータをFPGA側における指定のメモリに移転する。データスループットを向上させるために、典型的な技術的手段としては、Pipeline(外部プログラムとホストとの間のデータを低速化するパイプセグメントの線形通信モデルを表す)が設計られ、プロセスギャップを短縮し、期間の作業密度を向上させる。
【0045】
プロセッサとFPGAとの両側のメモリ領域の整合性及びデータ完全性を確保するために、データ伝送リンクの信頼性を確保する必要がある。双方向メモリ同期装置の動作の流れは、3つの段階に分けられ、第1の段階は、通信リンクを確立するものであり、第2の段階は、データ同期を実行するものであり、第3の段階は、通信リンクを廃棄するものである。
【0046】
双方向メモリ同期装置の動作制御の流れを図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にコピーする。
【0047】
なお、ホスト側はアドレス空間Aの値を検証し、双方向メモリ同期装置はアドレス空間Bの値を検証してもよい。例えば、Hostはアドレス空間Aの値を読み取って差分検証を行ってもよく、先頭の4Bytesが前のデータフレーム番号であり、末尾の4Bytesが現在のデータフレーム番号であり、先頭の4Bytesデータと末尾の4Bytesデータとの差分が1であればデータリンクが信頼できることを示す。一具体的な実施形態として、Hostの指定メモリ空間へのデータ移動とリンク状態検証とが非同期動作であり、所定時間内にリンク状態検証が完了しない場合、1フレーム終了まで、データを引き続き移動する。ここで、所定時間は具体的に最小データ移転総時間の2/3であってもよく、データ移転量が計算可能であるため、この状態は検出可能であり、2/3は経験値であり、実用上調整可能である。
【0048】
また、両側のメモリデータ同期を終了させる場合には、通信リンク廃棄処理を行う必要がある。動作方法としては、Hostは、先頭の4Bytesデータフレーム番号が0x0000であり、尾末の4Bytesデータフレーム番号が0x0000である4Bytesの長さの2つのデータフレーム番号をアドレス空間Bに書込み、これにより、双方向メモリ同期装置のデータ移転を停止させる。設計上の必要性に応じて、例えば、リンク異常の場合、双方向メモリ同期装置は同期を能動的に停止することができる。
【0049】
このように、本実施形態で提供されるホスト側とFPGAアクセラレータとの間のデータ同期方法は、FPGAのハードウェアプログラマブル特性を利用して、FPGA側に双方向メモリ同期装置が実現され、Hostソフトウェアはディスクから指定のメモリ領域にデータをキャッシュするだけでもよく、Host側ソフトウェアの動作流れを簡素化し、両側のデータ同期制御は、FPGA側の双方向メモリ同期装置のハードウェアによって実現される。
【0050】
具体的には、本実施形態は、信頼性のあるデータ伝送リンクを確立し、メモリ同期方法を簡素化し、同時に静的メモリ容量状態検出方法を設計し、メモリ状態遷移の後、DMAキューを自動的にトリガし、両側メモリ同期を行い、応用システムのメモリデータ同期遅延を低減し、推論システムのスループット効率を効果的に向上させることができる。本実施形態は、FPGAとHost側とのデータ高速低レイテンシ相互同期問題を効果的に解決することができ、映像処理、AI顔検出、画像オブジェクト認識などの分野においてPipeline技術と組み合わせてFPGA推論のスループット効率を効果的に向上させることができる。
【0051】
以下、本発明の実施形態に係る双方向メモリ同期装置について説明するが、以下で説明する双方向メモリ同期装置と、上述したホスト側とFPGAアクセラレータとの間のデータ同期方法とは、互いに対応して参照することができる。
【0052】
本実施形態に係る双方向メモリ同期装置は、ホスト側から所定のメモリ空間にデータを移転することを検出した後、第1のアドレス空間の第1の状態情報に基づいて第2の状態情報を生成し、前記第2の状態情報を第2のアドレス空間に書き込み、ところで、前記第1のアドレス空間と前記第2のアドレス空間は、Bar空間が前記ホスト側にマッピングされる異なるアドレス空間であり、前記第1の状態情報は、前のデータフレーム番号と現在のデータフレーム番号とを含み、前記第2の状態情報は、現在のデータフレーム番号と次のデータフレーム番号とを含む、ように構成された状態情報書込みモジュールと、
前記第2のアドレス空間における前記第2の状態情報を検出した後、DMAを呼び出して前記所定のメモリ空間のデータをFPGAアクセラレータのメモリ空間に移転し、前記第2の状態情報を前記第1のアドレス空間にコピーして、同期を実現する、ように構成されたデータ移転モジュールと、を備える。
【0053】
本実施形態に係る双方向メモリ同期装置は、前述のホスト側とFPGAアクセラレータとの間のデータ同期方法を実現するために用いられるため、この双方向メモリ同期装置における具体的な実施形態は、上記のホスト側とFPGAアクセラレータとの間のデータ同期方法の実施形態を参照することができる。したがって、それらの詳細な説明は、対応する様々な部分の実施形態の説明を参照することができ、ここでの詳細な説明は省略する。
【0054】
なお、本実施形態の双方向メモリ同期装置は、上記したホスト側とFPGAアクセラレータとの間のデータ同期方法を実現するためのものであるため、その作用は上記した方法の作用と対応しており、ここではその説明を省略する。
【0055】
また、本発明は、上記した双方向メモリ同期装置を含むFPGAアクセラレータをさらに提供する。
【0056】
最後に、本出願は、ホスト側とFPGAアクセラレータとを含み、前記FPGAアクセラレータに上記した双方向メモリ同期装置が含まれるデータ同期システムをさらに提供する。
【0057】
本明細書における様々な実施形態は、逐次的な方法で説明され、各実施形態は、他の実施形態との相違点を中心に説明され、様々な実施形態の間で、同一又は類似の部分は、相互に参照され得る。実施形態に開示された装置は、実施形態に開示された方法と対応するので、説明が比較的単純であることに関しては、方法の部分の説明を参照すればよい。
【0058】
本明細書で開示された実施形態に関連して説明された方法またはアルゴリズムのステップは、ハードウェア、プロセッサ実行可能なソフトウェアモジュール、またはその両方の組合せを用いて実施され得る。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、メモリ、リードオンリーメモリ(ROM)、電気的プログラマブルROM、電気的消去可能プログラマブルROM、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM(Compact Disc Read-Only Memory)、または当技術分野で知られている他の任意の形式の記憶媒体に置くことができる。
【0059】
以上、本出願で提供される方案について詳しく説明し、本明細書に具体的な例を適用して本発明の原理と実施形態について述べてきたが、以上の実施形態の説明は、本発明に係る方法及びその核心思想の理解を助けるためのものに過ぎず、一方、当業者であれば、本発明の思想に基づいて具体的な実施形態及び応用範囲に変更があることが理解でき、以上のように、本明細書の内容は本発明を限定するものと理解すべきではない。
図1
図2
図3
図4
図5
【国際調査報告】