(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-06
(45)【発行日】2023-07-14
(54)【発明の名称】FPGAデバイスおよびFPGAデバイスに基づくクラウドシステム
(51)【国際特許分類】
G06F 15/78 20060101AFI20230707BHJP
G06F 13/38 20060101ALI20230707BHJP
G06F 13/42 20060101ALI20230707BHJP
H04L 41/00 20220101ALI20230707BHJP
H04L 41/085 20220101ALI20230707BHJP
【FI】
G06F15/78 560
G06F13/38 350
G06F13/42 310
H04L41/00
H04L41/085
(21)【出願番号】P 2020540663
(86)(22)【出願日】2018-09-29
(86)【国際出願番号】 CN2018108514
(87)【国際公開番号】W WO2019072111
(87)【国際公開日】2019-04-18
【審査請求日】2021-09-28
(31)【優先権主張番号】201710929351.4
(32)【優先日】2017-10-09
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】510330264
【氏名又は名称】アリババ・グループ・ホールディング・リミテッド
【氏名又は名称原語表記】ALIBABA GROUP HOLDING LIMITED
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】シン ロン
(72)【発明者】
【氏名】ジュン ジャン
(72)【発明者】
【氏名】ヨンコー ジャオ
【審査官】坂東 博司
(56)【参考文献】
【文献】中国特許出願公開第103617054(CN,A)
【文献】米国特許出願公開第2015/0169489(US,A1)
【文献】米国特許第10203967(US,B1)
【文献】米国特許第07626418(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 15/78
G06F 13/38
H04L 41/00
G06F 13/42
H04L 41/085
(57)【特許請求の範囲】
【請求項1】
ホストにおいてユーザによってカスタマイズされたアルゴリズムをユーザ論理として実行するFPGAデバイスであって、
前記ホストと、クラウドシステムを制御するサーバとを含む機器に対して周辺通信を実行する管理論理ユニット
と、
前記管理論理ユニットによって前記ユーザ論理を動的に実装するユーザ論理ユニット
と
を備え、
前記管理論理ユニットが、
前記ホストに含まれるCPUとデータ交換の通信を行うPCIeモジュールを含み、
前記PCIeモジュールが、
前記ホストのCPUに含まれる管理環境と通信する第1の物理的機能ユニット
と、
前記第1の物理的機能ユニットとは異なる許可を有するセキュリティ分離を受けて、前記ホストのCPUに含まれるユーザ環境と通信する第2の物理的機能ユニット
と
を含み、
前記第1の物理的機能ユニットが、
前記ユーザ論理ユニットの内部に前記ユーザ論理を展開するためのPCIe構成チャネルを含み、
前記ユーザ論理の読み込みを要求するために前記ユーザによって前記第2の物理的機能ユニット
から前記サーバへ発信されたユーザ論理読み込み要求を
前記サーバから受信することであって、前記ユーザ論理読み込み要求が、
前記ユーザ論理読み込み要求の発信元として前記ユーザを識別するためのユーザ論理識別子を
搬送する、ことと、
前記ユーザ論理識別子に従って
前記ホストに接続された記憶装置から前記ユーザ論理を含むユーザ論理ファイルを取得することと、
前記PCIe構成チャネルを介して前記ユーザ論理ファイルを前記ユーザ論理ユニットに書き込むことと、
を行うように構成されている、FPGAデバイス。
【請求項2】
前記管理論理ユニットが、
前記第1の物理的機能ユニットに接続されて、前記ユーザ論理を格納する記憶媒体をアップグレードするための記憶媒体制御モジュールをさらに含み、
前記第1の物理的機能ユニットが、
前記ホストのCPUと相互に通信を行うPCIeインターフェースを含み、
前記サーバによって送信されて
前記ユーザ論理をアップグレードするためのアップグレード要求を受信することと、
前記アップグレード要求に従って
前記PCIeインターフェースを介して
前記ホストからアップグレードファイルを取得することと、
を行うようにさらに構成されており、
前記記憶媒体制御モジュールが
、前記アップグレードファイルに従って
前記記憶媒体をアップグレードするように構成されている、請求項1に記載のFPGAデバイス。
【請求項3】
前記第1の物理的機能ユニットおよび前記第2の物理的機能ユニットにそれぞれ接続されて、前記ユーザ論理で想定されていない例外情報を格納する共有レジスタをさらに備え、
前記第2の物理的機能ユニットが、前記共有レジスタを介して
前記例外情報を
前記第1の物理的機能ユニットへ報告するようにさらに構成されており、
前記第1の物理的機能ユニットが、前記共有レジスタから前記例外情報を取得することと、前記例外情報に対応する動作
として前記ユーザ論理ユニットのリセットを実施することと、を行うようにさらに構成されている、請求項1に記載のFPGAデバイス。
【請求項4】
前記ユーザ論理ユニットが、
前記ホストから提供された前記ユーザ論理ファイルを受けるための直接アクセスインターフェースを含み、
前記第2の物理的機能ユニットが、前記直接アクセスインターフェースを介して前記ユーザ論理ユニットと
前記ホストとの間で、前記ユーザ論理ファイルと前記ユーザ論理ユニットの出力とを含むデータを交換するようにさらに構成されている、請求項1に記載のFPGAデバイス。
【請求項5】
前記管理論理ユニットが、
前記ユーザ論理ユニットの動作時に生じる不具合をデバッグするためにデバッグデータを前記ホストへ送信するための仮想JTAGモジュールをさらに含み、
前記第2の物理的機能ユニットが、前
記デバッグデータを取得するように構成されており、
前記仮想JTAGモジュールが、前記第2の物理的機能ユニットと接続され、
前記第1の物理的機能ユニットに含まれて前記ホストのCPUと相互に通信を行うためのPCIeインターフェースを介して前記デバッグデータをデバッグするように構成されている、請求項1に記載のFPGAデバイス。
【請求項6】
前記管理論理ユニットが、
前記第1の物理的機能ユニットと接続され、
前記ユーザ論理ユニットを含むハードウェアの温度および消費電力を検出することと、前記検出された温度および消費電力を前記第1の物理的機能ユニットに送信することと、を行うように構成された、モニタモジュールをさらに含む、請求項1に記載のFPGAデバイス。
【請求項7】
前記管理論理ユニットが、
前記ユーザ論理ユニットの動作と論理的に独立する帯域外通信インターフェースと接続され、前記ユーザ論理ユニットの
動作時に前記ユーザ論理で想定されていない例外を含む任意の異常の場合に前記ユーザ論理ユニットをリセットするように構成された、エラー修復機構モジュールをさらに含む、請求項1に記載のFPGAデバイス。
【請求項8】
前記第1の物理的機能ユニットが、前記ユーザ論理ファイルのビットストリームを検証することと、
前記ビットストリームが前記ユーザ論理ファイルの予期値と一致するように検証が成功した場合、前記PCIe構成チャネルを介した前記ユーザ論理ユニットへの前記ユーザ論理ファイルの前記書き込みをトリガすることと、を行うようにさらに構成されている、請求項1に記載のFPGAデバイス。
【請求項9】
前記ユーザ論理読み込み要求が、
前記ユーザ論理ユニットの動作時のビットストリームを検証するための動的検証識別子をさらに
搬送し、
前記第1の物理的機能ユニットが、前記動的検証識別子および
前記サーバから受信したプリセット検証識別子に従って許可検証を実施することと、検証が成功した場合、前記ユーザ論理識別子に基づく前記ユーザ論理ファイルの取得をトリガすることと、を行うようにさらに構成されている、請求項1に記載のFPGAデバイス。
【請求項10】
FPGAデバイス
とユーザと間の相互通信を制御するクラウドシステムであって、
ホストと、
請求項1乃至9のいずれか一項に記載の少なくとも1つのFPGAデバイスと、を備える、システム。
【請求項11】
前記ホストが、前記FPGAデバイス内の
前記PCIeモジュールとデータを交換するように構成されたPCIeドライバを含む、請求項10に記載のシステム。
【請求項12】
前記ホストが、
クラウドコンピューティングを実行するCPUを備え、
前記CPUが、
前記FPGAデバイス内の第1の物理的機能ユニットと通信する管理環境
と、
前記FPGAデバイス内の第2の物理的機能ユニットと通信するユーザ環境
と
を含み、
前記管理環境が、
前記ユーザの操作に応答して、
前記第1の物理的機能ユニットを介して前記FPGAデバイス
内の
前記管理論理ユニットにアクセスするために使用され、
前記ユーザ環境が、前記ユーザの操作に応答して、
前記第2の物理的機能ユニットを介して前記FPGAデバイス
内の
前記ユーザ論理ユニットにアクセスするために使用される、請求項10に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2017年10月9日出願の中国特許出願第201710929351.4号、発明の名称「FPGA DEVICE AND CLOUD SYSTEM BASED ON FPGA DEVICE」に対する優先権を主張し、この特許出願は、参照によりその全体が本明細書に組み込まれる。
【0002】
本発明は、クラウドコンピューティングの分野に関し、より具体的には、FPGAデバイスおよびFPGAデバイスに基づくクラウドシステムに関する。
【背景技術】
【0003】
インターネットの規模およびデータ容量の急速な成長に伴い、クラウドコンピューティングが不可欠となった。電力消費およびコンピューティング能力の観点から見ると、CPUに基づく従来のクラウドコンピューティングハードウェアは、今日の成長しているコンピューティングニーズを満たすのに現在苦労している。GPUおよびFPGAは、コンピューティング能力の高速化に理想的な選択である。コンピューティング能力でのGPUの利点と比較して、FPGAは、より柔軟であり、より低い消費電力、より高いコンピューティング性能を有する。例えば、カスタマイズされたアルゴリズムを展開するアクセラレータ(SIMDおよびMIMDなど)によって、FPGAは、既にクラウドコンピューティングを加速するための有望なハードウェアになっている。
【0004】
しかしながら、既存のFPGAは、遠隔構成またはデバッグのためにJTAG(ジョイントテストアクショングループ)ケーブルを接続する必要があるため、クラウド展開に好適ではない。
【0005】
既存のFPGAが物理機能のセキュリティ分離を達成できないことに起因するコンピューティング性能の低下の上記の問題に関して、現在のところ有効な解決策が提案されていない。
【発明の概要】
【0006】
本発明の実施形態は、FPGAデバイスおよびFPGAデバイスに基づくクラウドシステムを提供し、遠隔で構成またはデバッグされるときにJTAGケーブルに接続する必要性に起因する、既存のFPGAがクラウドに展開されることができないという技術的問題を少なくとも解決する。
【0007】
本発明の実施形態の一態様によると、FPGAデバイスが提供され、FPGAデバイスは、管理論理ユニットおよびユーザ論理ユニットを備え、管理論理ユニットが、周辺機器相互接続エクスプレス(PCIe)モジュールを含み、PCIeモジュールが、第1の物理的機能ユニットおよび第2の物理的機能ユニットを含む。第1の物理的機能ユニットは、第2の物理的機能ユニットによって開始されたユーザ論理読み込み要求を受信することであって、ユーザ論理読み込み要求が、ユーザ論理識別子を担持する、受信することと、ユーザ論理識別子に基づいてユーザ論理ファイルを取得することと、PCIe構成チャネルを介してユーザ論理ファイルをユーザ論理ユニットに書き込みことと、を行うように構成されている。
【0008】
本発明の実施形態の別の態様によると、FPGAデバイスに基づくクラウドシステムがさらに提供され、システムは、ホストと、上述された特徴のいずれかを有するFPGAデバイスと、を備える。
【0009】
本発明の実施形態では、PCIeモジュールは、FPGAデバイスの管理論理ユニット内に構成され、PCIeモジュールは、異なる許可を有する物理的機能ユニットに分割され、管理論理ユニットおよびユーザ論理ユニットは、構成を介して管理される。管理論理ユニットは、PCIeモジュールを含み、PCIeモジュールは、第1の物理的機能ユニットおよび第2の物理的機能ユニットを含む。第1の物理的機能ユニットは、第2の物理的機能ユニットによって開始されたユーザ論理読み込み要求を受信することであって、ユーザ論理読み込み要求が、ユーザ論理識別子を搬送する、受信することと、ユーザ論理識別子に基づいてユーザ論理ファイルを取得することと、PCIe構成チャネルを介してユーザ論理ファイルをユーザ論理ユニットに書き込みことと、を行うように構成されている。このように、遠隔構成が、ホストとの通信時にJTAGケーブルに接続せずに達成され、その結果、FPGAの性能を改善する技術的効果を達成し、それによって、既存のFPGAが、遠隔に構成またはデバッグされるときにJTAGケーブルに接続する必要性に起因してクラウドに展開されることができないという技術的問題を解決する。
【図面の簡単な説明】
【0010】
本明細書に説明される図面は、本発明のさらなる理解を可能にし、その一部を構成するために使用される。本発明の例示的な実施形態およびその説明は、本発明を説明するために使用され、本発明に対する不適切な限定を構成するものではない。
【0011】
【
図1】本出願の一実施形態による、FPGAデバイスの概略構造図である。
【
図2】本出願の一実施形態による、FPGAデバイスの動的再構成の概略フローチャートである。
【
図3】本出願の一実施形態による、任意選択のFPGAデバイスの概略構造図である。
【
図4】本出願の一実施形態による、任意選択のFPGAデバイス内の共有レジスタとPFとの間の接続の概略構造図である。
【
図5】本出願の一実施形態による、任意選択のユーザ論理読み込みの概略フローチャートである。
【
図6】本出願の一実施形態による、FPGAデバイスに基づくクラウドシステムの構造図である。
【発明を実施するための形態】
【0012】
当業者が本発明の解決策をより良好に理解することを可能にするために、本発明の実施形態における技術的解決策は、本発明の実施形態の図面と組み合わせて、以下に明確かつ完全に説明されることになる。明らかに、説明された実施形態は、本発明の実施形態の一部のみを表すが、全ての実施形態を表すわけではない。発明的努力を伴わずに本発明の実施形態に基づいて当業者によって得られる全ての他の実施形態は、本発明の保護範囲内に収まる。
【0013】
本発明の説明および特許請求の範囲並びに上記の図面の「第1」および「第2」という用語は、類似の対象を区別するために使用され、特定の順番または順序を説明することを必ずしも意図しないことに留意されたい。このように使用されるデータは、適宜交換可能であり、したがって、本明細書に説明される本発明の実施形態は、本明細書に例示または説明されるもの以外の順番で実装され得ることを理解されたい。加えて、「備える」および「有する」という用語、並びにそれらの任意の変形は、非排他的な包括をカバーすることを意図している。例えば、一連のステップまたはユニットを含むプロセス、方法、システム、製品、またはデバイスは、明示的に列挙されているステップまたはユニットに必ずしも限定されず、明示的に列挙されていないか、またはこれらのプロセス、方法、製品、もしくはデバイスに固有の他のステップまたはユニットを代わりに含んでもよい。
【0014】
本出願の実施形態の説明に現れる名詞または用語のいくつかは、次のとおりである。
(1)フィールドプログラマブルゲートアレイ(FPGA)
(2)特定用途向け集積回路(ASIC)
(3)周辺機器相互接続エクスプレス(PCIe)
(4)主に回路のバウンダリスキャンテストおよびプログラマブルチップのオンラインシステムプログラミングで使用される、ジョイントテストアクショングループ(JTAG)
(5)ダイレクトメモリアクセス(DMA)
【0015】
実施形態1
本発明の実施形態によると、FPGAデバイスの実施形態がさらに提供される。本出願の各実施形態の詳細をさらに説明する前に、本出願の原理を実装するために使用され得る好適なFPGAデバイスが
図1を参照して説明されることに留意されたい。
【0016】
図1は、本出願の一実施形態による、FPGAデバイスの概略構造図である。説明の目的のために、描写された構造は、好適な環境の単なる例であり、本出願の使用または機能の範囲にいかなる限定も課さない。このFPGAデバイスは、
図1に示される構成要素または組み合わせのいずれかに依存するように解釈されるべきではなく、それらを必要とするように解釈されるべきでもない。
【0017】
ASICの分野でセミカスタマイズされた回路のように、FPGAは、カスタマイズされた回路の欠点を解決するだけでなく、元のプログラマブルデバイスのゲート回路ブロックの制限を克服する。
【0018】
さらに、FPGAは、航空宇宙、航空、電子機器、通信、レーダーなどの国防分野で広く使用され得る。また、超音波検出器およびCTスキャン機器などの医療機器、並びに民生用電子機器、自動車用電子機器、ロボット、およびデータマイニングの分野でも使用され得る。加えて、ロボット、UAV、ビッグデータ、モノのインターネット、無人運転、5G通信の台頭により、FPGAの市場の見通しは、着実な成長を維持しながらますます広がることになる。
【0019】
市場の需要とFPGAの迅速な展開のために、既存のFPGAがクラウドに展開されることができないという問題を解決することが急務である。
【0020】
基本的なデータ伝送機能を実装することに加えて、本出願の実施形態に提供されるFPGAデバイスは、遠隔デバッグ、遠隔アップグレード、例外処理およびハードウェア監視などの補助機能も実現し得ることに留意されたい。これは、クラウド内のFPGAの使用環境に順応し、したがって、信頼性が高く、安定した、使い易く安全なFPGAアクセラレーションクラウドサービスを提供し得る。
【0021】
具体的には、
図1は、FPGAデバイスの概略図を示す。
図1に示されるように、FPGAデバイス1は、管理論理ユニット10およびユーザ論理ユニット12を備える。
【0022】
管理論理ユニット10は、PCIeモジュール101を含み、PCIeモジュール101は、第1のPF(物理的機能ユニット)1010および第2のPF1012を含む。第1のPF1010は、第2のPF1012によって開始されたユーザ論理読み込み要求を受信することであって、ユーザ論理読み込み要求が、ユーザ論理識別子を搬送する、受信することと、ユーザ論理識別子に基づいてユーザ論理ファイルを取得することと、PCIe構成チャネルを介してユーザ論理ファイルをユーザ論理ユニットに書き込みことと、を行うように構成されている。
【0023】
PCIeモジュールが構成されると、本出願に提供されるFPGAデバイスは、クラウドに展開されるFPGAクラウドサーバアーキテクチャをセットアップするために好適であり、したがって、遠隔デバッグ、遠隔アップグレード、例外処理、ハードウェア監視の機能を実現する。
【0024】
任意選択的に、FPGAデバイス上のハードウェア論理は、管理論理ユニットおよびユーザ論理ユニットの2つの部分に分割され得る。
【0025】
管理論理ユニットは、FPGAサーバ(例えば、クラウドサーバ)によって提供され得、一方でユーザ論理ユニットは、エンドユーザおよびサードパーティIP製造者によって提供され得ることに留意されたい。
【0026】
任意選択の実施形態として、管理論理ユニットは、周辺通信に使用され得、ユーザ論理ユニットは、ユーザアプリケーションプログラムのホットスポットモジュールを実装するために使用され得る。例えば、圧縮/解凍アプリケーションについて、ユーザ論理は、実際の圧縮/解凍アルゴリズム(gizpアルゴリズムなど)を実現し得る。圧縮されるべきデータは、PCIeを介してホストCPUからFPGAデバイスに送信され、圧縮されたデータは、次いで、PCIeインターフェースからホストCPUに戻る。
【0027】
上記の任意選択の実施形態では、周辺通信は、限定されるものではないが、PCIeを介したホストCPUとの通信、イーサネットまたは光ファイバーインターフェースを介した他のネットワークデバイスとの通信、およびDDR(ダブルデータレート)コントローラインターフェース/フラッシュインターフェースを介した外部記憶デバイスとの通信の通信形態のいずれかであり得る。
【0028】
加えて、ASICチップの固定ハードウェア論理とは異なり、上述のユーザ論理ユニットは、要件に基づいて交換され得ることにも留意されたい。これは、動的再構成が管理論理ユニットによって実施され得ることを意味する。任意選択的に、動的再構成は、FPGAの部分的再構成(PR)機能を使用することによって実装され得る。
【0029】
任意選択の実施形態として、FPGAデバイス上の管理論理ユニットは、PCIeモジュールを介してホストCPUと通信し得、PCIeモジュールは、異なる許可を有する2つ以上のPFから構成され得る。
【0030】
実装可能な方法では、PCIeモジュールは、限定せずに、第1のPFおよび第2のPF(すなわち、デュアルPFの許可セグメント化モード)から構成され得る。
【0031】
図3に示されるように、ホストCPUが分離された管理環境およびユーザ環境から構成され、管理環境およびユーザ環境が仮想化技術を介して互いに分離されているため、上記の分離方法は、2つの仮想マシン、または仮想マシンおよびホストのいずれかであり得ることに留意されたい。ユーザ論理制御プロセスでは、第1のPFがホストの管理環境でmanagement.koを呼び出し得、第2のPFがホストの
ユーザ環境でdma.koを呼び出し得る。
【0032】
任意選択の実施形態として、第1のPFは、ホストCPUの管理環境と通信し、第2のPFは、ホストCPUのユーザ環境と通信する。ホストCPUとの高速かつ安全な通信を実装するために、第1のPFおよび第2のPFもまた、物理的に分離され得、それらの間には異なる構成空間および許可セグメント化方法が存在する。
【0033】
また、FPGAデバイスのPCIeモジュールが異なる許可を有するPFに分割され、ホストが管理環境およびPFと関連付けられたユーザ環境に分割されて、セキュリティの分離を実現することにも留意されたい。通常のユーザは、ユーザ環境のみを使用して、ユーザ論理にアクセスし、ユーザ論理の遠隔デバッグを実施し得る。スーパー管理者ユーザは、管理環境を使用して、基板カードに対する管理、監視、再構成などのより高い許可を用いて操作を実施し得る。
【0034】
加えて、本出願に提供される実施形態では、ユーザのアクセス不能およびNCダウンタイムの問題さえ、第1のPFおよび第2のPFのセキュリティ分離によって回避され得、FPGAのコンピューティング性能をさらに改善することにも留意される必要がある。
【0035】
図2に示されるように、上記のデュアルPF許可セグメント化方法を例にとると、第1のPFは、限定されるものではないが、次の手段で動的再構成を実装し得る。
【0036】
ステップS101では、第1のPFは、第2のPFによって開始されたユーザ論理読み込み要求を受信する。
【0037】
任意選択的に、ユーザ論理読み込み要求は、ユーザ論理識別子を搬送する。
【0038】
任意選択の実施形態として、第2のPFは、それ自体の識別子に基づいて、ユーザ論理読み込み要求をサーバに送信し得る。
【0039】
ステップS103では、第1のPFは、ユーザ論理識別子に基づいてユーザ論理ファイルを取得する。
【0040】
任意選択的に、ステップS103では、第1のPFは、サーバが認証要求を読み込んで応答した後に、上記のユーザ論理識別子に基づいて遠隔記憶装置側からユーザ論理ファイルを取得し得る。
【0041】
ステップS105では、第1のPFは、PCIe構成チャネルを介してユーザ論理ファイルをユーザ論理ユニットに書き込む。
【0042】
任意選択の実施形態として、ユーザ論理ファイルが取得された後、第1のPFは、PCIe構成チャネルの部分的再構成制御(PR ctrl)モジュールを介してユーザ論理ファイルをユーザ論理ユニットに書き込み、ユーザ論理読み込み要求に基づいて、対応するミラーイメージを読み込む。
【0043】
上述のステップS101~S105に基づいて、本出願に提供されるFPGAデバイスは、動的再構成を完了し得る。
【0044】
加えて、本出願に提供される実施形態では、第1のPFはまた、動的再構成、遠隔アップグレードフラッシュ、例外処理、およびハードウェア監視を実装するように構成され得る。第2のPFはまた、DMAを介してユーザ論理ユニットと高速データ交換を実施することと、ユーザ論理ユニットの遠隔デバッグ機能を実現することと、を行うように構成され得る。
【0045】
上記の実施形態に定義された解決策は、本出願に提供されるFPGAデバイスが、管理論理ユニットおよびユーザ論理ユニットを含み、管理論理ユニットが、PCIeモジュールを含み、PCIeモジュールが、第1の物理的デバイスPFおよび第2のPFを含むことを実証する。第1のPFは、第2のPFによって開始されたユーザ論理読み込み要求を受信することであって、ユーザ論理読み込み要求が、ユーザ論理識別子を搬送する、受信することと、ユーザ論理識別子に基づいてユーザ論理ファイルを取得することと、PCIe構成チャネルを介してユーザ論理ファイルをユーザ論理ユニットに書き込みことと、を行うように構成されている。
【0046】
ホストCPUが、分離された管理環境およびユーザ環境から構成されているため、本出願のFPGAデバイスのハードウェア論理が、管理論理ユニットおよびユーザ論理ユニットに分割され得ることが容易に留意される。管理論理ユニットは、PCIeモジュールを介してホストCPUと通信する。動的再構成を実装するプロセスでは、本出願の実施形態のFPGAデバイスは、PCIeモジュール内の2つ以上のPFの許可セグメント化を介したセキュリティ分離によって動的再構成を実現し得る。
【0047】
加えて、本出願の実施形態では、第1のPFはまた、動的再構成、遠隔アップグレードフラッシュ、例外処理、およびハードウェア監視を実装するように構成され得る。第2のPFはまた、DMAを介してユーザ論理ユニットと高速データ交換を実施することと、ユーザ論理ユニットの遠隔デバッグ機能を実装することと、を行うように構成され得る。
【0048】
本出願の実施形態によって提供される解決策を通して、PCIeモジュールは、FPGAデバイスの管理論理ユニット内で構成され、PCIeモジュールは、異なる許可を有するPFに分割されて、ホストと通信するときにJTAGケーブルに接続せずに遠隔構成を達成する。これは、FPGAの性能を改善する技術的効果を実現し、遠隔で構成またはデバッグされるときにJTAGケーブルに接続する必要性に起因する、既存のFPGAがクラウドに展開されることができないという技術的問題をさらに解決する。
【0049】
任意選択の実施形態として、
図3は、本出願の実施形態による、任意選択のFPGAデバイスの概略構造図である。
図3に示されるように、管理論理ユニットは、記憶媒体制御モジュール103をさらに含む。第1のPFは、サーバによって送信されたアップグレード要求を受信することと、アップグレード要求に基づいてPCIeインターフェースを介してホストからアップグレードファイルを取得することと、を行うようにさらに構成されている。記憶媒体制御モジュールは、第1のPFと接続されて、アップグレードファイルに基づいて記憶媒体をアップグレードする。
【0050】
遠隔アップグレード記憶媒体の実装モードが、本出願の上述の動的再構成のものと同様であることに留意されたい。違いは、クラウド管理および制御システム(サーバ)によって実行依頼されるアップグレード要求が外部記憶装置側に送信され、コマンドが第1のPFに送信されることである。
【0051】
図3に示されるように、記憶媒体制御モジュール103は、フラッシュ(記憶媒体)と接続され、第1のPF1010は、記憶媒体制御モジュール103と接続されている。任意選択の実施形態では、第1のPFは、アップグレード要求に基づいてPCIeインターフェースを介してホストからアップグレードファイルを取得し、PCIeを介してレジスタを読み書きする。管理論理ユニット内の記憶媒体制御(Flash ctrl)モジュールは、基板カード上のフラッシュファームウェアをアップグレードするように構成されている。
【0052】
スーパー管理者がフラッシュアップグレードプロセスを担当し、通常のユーザは、アップグレードおよび更新の許可を有していないことに留意されたい。
【0053】
任意選択の実施形態として、
図3に示されるように、管理論理ユニットはまた、外部メモリDDRを読み書きするために外部メモリDDRに接続される、外部メモリコントローラ105、すなわち、DDR Ctrlも含む。
【0054】
任意選択の実施形態として、FPGAデバイスはまた、共有レジスタも含む。第2のPFは、共有レジスタを介して例外情報を報告するようにさらに構成されている。第1のPFは、共有レジスタから例外情報を取得することと、例外情報に対応する動作を実施することと、を行うようにさらに構成されている。
【0055】
任意選択の実施形態として、FPGAデバイスのための例外処理機構は、内部共有レジスタを介して実装され得る。
【0056】
図4は、本出願の一実施形態による、任意選択のFPGAデバイス内の共有レジスタとPFとの間の接続の概略構造図である。
図4に示されるように、共有レジスタは、第1のPFおよび第2のPFと接続されている。第2のPFは、共有レジスタを読み書きすると共に、共有レジスタを介して内部例外情報を報告し得、第1のPFは、共有レジスタを読み出し、共有レジスタをポーリングして、共有レジスタによって報告された例外情報を取得し得る。
【0057】
任意選択の実施形態では、
図3に示されるように、ユーザ論理ユニットは、直接アクセスインターフェース107を含む。第2のPFは、直接アクセスインターフェースを介してユーザ論理ユニットとデータを交換するようにさらに構成されている。
【0058】
任意選択的に、DMAインターフェースは、直接アクセスインターフェースとすることができる。FPGAデバイス内で、ユーザ論理の提供に使用されるDMAインターフェースは、標準プロトコルインターフェースに属し、それにより、第2のPF専用PCIeのDMAインターフェースアクセスを保証する。
【0059】
任意選択の実施形態として、ユーザ論理ユニットは、直接アクセスインターフェースの読み出しインターフェースを採用して、データをホストからDMAに移動させる。ユーザ論理ユニットは、直接アクセスインターフェースの書き込みインターフェースを採用して、FPGAデータをホストに移動させ、それによって、ホストとFPGAデバイスとの間のデータ交換を実現する。
【0060】
第2のPFに提供されるFPGA論理のDMAインターフェースが、ハードウェアインターフェースを抽象化し、それによって、セキュリティ分離およびプログラミングの簡素化の目的を達成し得ることに留意されたい。
【0061】
任意選択の実施形態として、
図3に示されるように、管理論理ユニットはまた、仮想JTAGモジュール109も含む。第2のPFは、ユーザ論理ユニットのデバッグデータを取得するように構成され、仮想JTAGモジュールは、第2のPFと接続され、PCIeインターフェースを介してデバッグデータをデバッグするように構成されている。
【0062】
任意選択的に、仮想JTAGモジュールが、ユーザ論理ユニットの遠隔デバッグ機能を実現するように構成され得る。
【0063】
仮想JTAGモジュールが、ユーザ論理ユニットを遠隔でデバッグするときにJTAGタイミングシーケンスをシミュレートすることに留意されたい。それは、ハードウェア波形を取得し得、JTAGの物理的なハードワイヤなしでPCIeバスインターフェースを介して遠隔エンドまたはローカルデバッグソフトウェアに、対応するデータを送信し得、高い柔軟性を与える。
【0064】
任意選択の実施形態として、
図3に示されるように、管理論理ユニットはまた、監視モジュール111を備え、これは、第1のPFと接続され、ハードウェアの温度および電力消費を検出し、検出された温度および電力消費を第1のPFに送信するように構成されている。
【0065】
任意選択的に、上記の監視モジュールはまた、モニタモジュールでもある。
【0066】
任意選択の実施形態として、管理論理ユニットは、レジスタアクセス機構を介してFPGAによって内部的に監視されるハードウェア情報ステータスを取得し得る。例えば、ハードウェア情報ステータスは、モニタモジュールによって検出され得、検出された温度および消費電力は、第1のPFに送信され得る。
【0067】
モニタモジュールが、ハードウェア監視に使用され得、温度および電力センサの検出機能を有することに留意されたい。
【0068】
任意選択の実施形態として、
図3に示されるように、管理論理ユニットはまた、エラー修復機構モジュール113を含み、これは、帯域外通信インターフェース115と接続され、例外の場合にユーザ論理ユニットをリセットするように構成されている。
【0069】
任意選択的に、エラー修復機構モジュールは、エラー修復モジュールであり、帯域外通信インターフェース、つまりSMBusは、主基板上に構成される。
【0070】
任意選択の実施形態として、管理論理ユニットはまた、ユーザ論理ユニットを部分的に再構成するように構成された、部分再構成制御(PR ctrl)モジュール117も含む。ユーザがユーザ論理を変更する必要がある場合、ユーザは、第1のPF内の対応する構成空間レジスタに、対応する要求を送信し得る。
【0071】
ユーザのランダム構成およびユーザ論理ファイルへのアクセスによって引き起こされるIP開示などの事故を回避するために、任意選択の実施形態では、第1のPFは、ユーザ論理ファイルのビットストリームを検証することと、検証が成功した場合、PCIe構成チャネルを介したユーザ論理ユニットへのユーザ論理ファイルの書き込みをトリガすることと、を行うようにさらに構成されている。
【0072】
任意選択の実施形態として、ユーザ論理読み込み要求はまた、動的検証識別子も搬送する。第1のPFは、動的検証識別子およびサーバから受信したプリセット検証識別子に基づいて許可検証を実施することと、検証が成功した場合、ユーザ論理識別子に基づくユーザ論理ファイルの取得をトリガすることと、を行うようにさらに構成されている。
【0073】
ユーザは、動的検証識別子(毎分更新される)、FPGAクラウドサーバ許可、ユーザ論理IDを含む、3つの条件を満たすことのみによって、検証され、ユーザ論理ファイルを取得して、動的再構成を実装し得ることに留意されたい。動的再構成では、管理論理ユニットは、ビットストリームに対して最終検証を実施し、つまり、ビットストリームが、予期されるユーザ論理ファイルと一致することを検証する。
【0074】
本出願の上記の実施形態を理解するために、本出願は、
図5に示されるような任意選択のユーザ論理読み込みの概略フローチャートを提供して、ユーザ論理読み込みフローをさらに説明する。
【0075】
ステップS201では、ホストが、動的検証コードサービスを提供する。
【0076】
ユーザ論理ファイルのセキュリティを保護するために、任意選択の実施形態として、管理環境でユーザ論理ファイルを書き込むときに、ホストCPUは、動的検証コードサービスを提供して、ユーザ論理読み込み要求を検証し得る。
【0077】
ステップS202では、ユーザが、ユーザ論理を読み込むことを要求する。
【0078】
具体的には、ユーザ論理読み込み要求は、user_logic_idおよびinstance_idの識別情報を搬送する。
【0079】
任意選択の実施形態として、ユーザは、第2のPFを介してユーザ環境へのユーザ論理読み込み要求を起動し、ユーザ論理読み込み要求は、ユーザ論理識別子を搬送する。
【0080】
ステップS203では、スーパー管理者が、要求の発信元を検証する。
【0081】
任意選択の実施形態として、管理環境のスーパー管理者は、限定されるものではないが、動的検証コード、FPGAクラウドサーバ許可、およびユーザ論理IDの検証を含む、ユーザ論理読み込み要求を検証し得る。検証が成功した場合、ステップS204が実行されることになる。
【0082】
ステップS204では、ユーザ論理ファイルが取得される。
【0083】
任意選択的に、スーパー管理者が動的検証コード、FPGAクラウドサーバ許可、およびユーザ論理IDを承認すると、ユーザ論理ファイルが、ユーザ論理識別子に基づいて取得されることになる。
【0084】
ステップS205では、ホストのmanagement.koが呼び出される。
【0085】
任意選択的に、第1のPFは、ホスト管理環境でmanagement.koを呼び出す。
【0086】
ステップS206では、部分的な再構成が開始される。
【0087】
任意選択の実施形態として、第1のPFは、管理環境でmanagement.koを呼び出すことによって動的再構成を開始する。
【0088】
ステップS207では、全てのDMA送信が一時停止される。
【0089】
任意選択の実施形態として、ユーザ論理ユニットのDMAデータ交換および遠隔デバッグ機能が、動的再構成中に一時停止される。
【0090】
ステップS208では、ビットストリーム検証が実施される。
【0091】
任意選択の実施形態として、第1のPFは、ユーザ論理ファイルのビットストリームを検証することと、検証が成功した場合、PCIe構成チャネルを介したユーザ論理ファイルの書き込みをトリガすることと、を行うようにさらに構成されている。
【0092】
ステップS209では、書き込みが完了する。
【0093】
任意選択の実施形態として、ユーザ論理ファイルは、PCIe構成チャネルを介してユーザ論理ユニットに書き込まれ得る。
【0094】
ステップS210では、dma.koが呼び出される。
【0095】
任意選択の実施形態として、第2のPFは、ユーザ環境でdma.koを呼び出して、ユーザ論理ファイルをユーザ論理ユニットに書き込む。
実施形態2
本発明の実施形態によると、
図6に示されるように、FPGAデバイス1およびホスト2を含む、FPGAデバイスに基づくクラウドシステムもまた、提供される。
【0096】
FPGAデバイスは、管理論理ユニットおよびユーザ論理ユニットを備え、管理論理ユニットが、周辺機器相互接続エクスプレス(PCIe)モジュールを含み、PCIeモジュールが、第1のPFおよび第2のPFを含む。第1のPFは、第2のPFによって開始されたユーザ論理読み込み要求を受信することであって、ユーザ論理読み込み要求が、ユーザ論理識別子を搬送する、受信することと、ユーザ論理識別子に基づいてユーザ論理ファイルを取得することと、PCIe構成チャネルを介してユーザ論理ファイルをユーザ論理ユニットに書き込みことと、を行うように構成されている。
【0097】
図6に示されるように、FPGAデバイスの管理論理ユニットおよびホストCPUは、PCIeを介して通信し、ホストCPUは、ユーザアプリケーションプログラムのソフトウェア部分を担当し、FPGAデバイスは、ホットスポットモジュールのハードウェアアクセラレーションを担当する。このうち、ホストCPUは、アプリケーションプログラム、アクセラレーションライブラリ、PCIeドライバを含む。
【0098】
ユーザ論理ファイルのセキュリティを保護するために、ホストCPUが管理環境でユーザ論理ファイルを書き込むときに、ホストCPUは、上記の実施形態の識別情報検証プロセスを介して検証を行い得る。
【0099】
上記の実施形態で定義された解決策は、本出願に提供されるFPGAデバイスに基づくクラウドシステムが、ホスト、および上記の任意選択のFPGAデバイスを含むことを実証する。FPGAデバイスは、管理論理ユニットおよびユーザ論理ユニットを備え、管理論理ユニットが、PCIeモジュールを含み、PCIeモジュールが、第1のPFおよび第2のPFを含む。第1のPFは、第2のPFによって開始されたユーザ論理読み込み要求を受信することであって、ユーザ論理読み込み要求が、ユーザ論理識別子を搬送する、受信することと、ユーザ論理識別子に基づいてユーザ論理ファイルを取得することと、PCIe構成チャネルを介してユーザ論理ファイルをユーザ論理ユニットに書き込みことと、を行うように構成されている。
【0100】
ホストCPUが、分離された管理環境およびユーザ環境から構成されているため、本出願のFPGAデバイスのハードウェア論理が、管理論理ユニットおよびユーザ論理ユニットに分割され得ることが容易に留意される。管理論理ユニットは、PCIeモジュールを介してホストCPUと通信する。動的再構成を実装するプロセスでは、本出願の実施形態のFPGAデバイスは、PCIeモジュール内の2つ以上のPFの許可セグメント化を介したセキュリティ分離によって動的再構成を実現し得る。
【0101】
加えて、本出願の実施形態では、第1のPFはまた、動的再構成、遠隔アップグレードフラッシュ、例外処理、およびハードウェア監視を実装するように構成され得、第2のPFはまた、DMAを介してユーザ論理ユニットとの高速データ交換を行い、ユーザ論理ユニットの遠隔デバッグ機能を実装するように構成され得る。
【0102】
本出願の上記の実施形態によって提供される解決策を通して、PCIeモジュールは、FPGAデバイスの管理論理ユニット内に配設され、PCIeモジュールは、異なる許可を有するPFに分割されて、ホストと通信するときにJTAGケーブルに接続せずに遠隔構成を達成する。これは、FPGAの性能を改善する技術的効果を実現し、遠隔で構成またはデバッグされるときにJTAGケーブルに接続する必要性に起因する、既存のFPGAがクラウドに展開されることができないという技術的問題をさらに解決する。
【0103】
ホストCPUとFPGAデバイスとの間のデータ交換を実装するために、PCIeドライバモジュールが、サポートを提供するために必要とされる。任意選択の実施形態では、
図6に示されるように、ホストは、FPGAデバイス内のPCIeモジュールとのデータ交換のためのPCIeドライバ3を含む。
【0104】
本出願は、上記のPCIeのバージョンを限定せず、バージョンは、限定されるものではないが、1.0、2.0、3.0および4.0とすることができることに留意されたい。
図6のホストおよびFPGAデバイスは、1:1で対応を単に概略的に描写する。実際の適用プロセスでは、本出願の実施形態は、1:N(Nは、FPGAデバイスの数)の対応をサポートし得る。
【0105】
さらに、ユーザアプリケーションのプログラミングを容易にするために、ユーザが呼び出すアクセラレーションライブラリもまた、PCIeドライバ上に提供される。ユーザは、アクセラレーションライブラリを使用するときに透過的なアクセラレーションを実現し得、ハードウェアの詳細を知る必要はない。
【0106】
別の任意選択の実施形態では、ホストは、管理環境およびユーザ環境を含み、管理環境は、ユーザの操作に応答して、FPGAデバイスの第1のPFを介してFPGAデバイスの管理論理ユニットにアクセスするために使用され、ユーザ環境は、ユーザの操作に応答して、FPGAデバイスの第2のPFを介してFPGAデバイスのユーザ論理ユニットにアクセスするために使用される。
【0107】
上記の方法の実施形態に関して、簡潔な説明のために、方法の実施形態は、全て、一連のアクションの組み合わせとして説明されていることに留意されたい。しかしながら、当業者は、本発明がそれに限定されないことを知るはずである。本発明によると、いくつかのステップは、別の順番で、または同時に実行され得る。加えて、当業者はまた、説明において説明された実施形態が全て好ましい実施形態であり、関与するアクションおよびモジュールが本発明によって必ずしも必要とされないことも知るはずである。
【0108】
上記の実施形態の説明に基づいて、当業者は、上記の実施形態の方法が、ソフトウェアおよび必要なユニバーサルハードウェアプラットフォームを使用して実装され得、ハードウェアを使用することによっても確実に実装され得ることを明確に理解し得るが、多くの場合、前者の方がより良好な実装である。そのような理解に基づいて、先行技術に不可欠または貢献する、本発明の技術的解決策の一部は、ソフトウェア製品の形態で具体化され得る。コンピュータソフトウェア製品は、記憶媒体(ROM/RAM、磁気ディスク、および光ディスクなど)に記憶され、端末デバイス(携帯電話、コンピュータ、サーバ、ネットワークデバイスなどであり得る)が本発明の各実施形態の方法を実行することを可能にするためのいくつかの命令を含む。
【0109】
本発明の実施形態の通し番号は、単に説明のためのものであり、実施形態の利点および欠点を表すものではない。
【0110】
本発明の上記の実施形態では、各実施形態の説明は、それ自体の重要性を有する。実施形態に詳細に説明されていない部分については、他の実施形態の関連する説明が参照され得る。
【0111】
本出願に提供されるいくつかの実施形態では、開示された技術的内容は、他の手段で実装され得ることが理解されるべきである。上記の装置の実施形態は、単に概略である。例えば、ユニットの分割は、単に論理的な機能の分割である。実際の実装では、別の分割様態が使用されてもよい。例えば、複数のユニットまたは構成要素が、別のシステムに組み合わせられ得るか、もしくは別のシステムに統合され得、またはいくつかの機能が、無視され得るか、もしくは実装されなくてもよい。加えて、表示または論じられた相互連結、直接連結、または通信接続は、いくつかのインターフェース、ユニット、またはモジュールによる間接的連結または通信接続であり得、これらはまた、電気的または他の形態であってもよい。
【0112】
別個の構成要素として説明されているユニットは、物理的に分離されてもよく、またはそうでなくてもよく、ユニットとして表示される構成要素は、物理的なユニットであってもよく、またはそうでなくてもよく、すなわち、ユニットは、一箇所に位置してもよく、または複数のネットワークユニットに分散されてもよい。ユニットのいくつかまたは全ては、この実施形態の解決策の目的を達成するための実際の必要性に応じて選択され得る。
【0113】
加えて、本発明の各実施形態の各機能ユニットは、処理ユニットに統合されてもよく、または各ユニットは、物理的に分離して存在してもよく、または2つ以上のユニットが1つのユニットに統合されてもよい。上記の統合されたユニットは、ハードウェアまたはソフトウェア機能ユニットの形態であり得る。
【0114】
統合されたユニットがソフトウェア機能ユニットの形態で実装され、独立した製品として販売または使用される場合、それは、コンピュータ可読記憶媒体に記憶され得る。そのような理解に基づいて、先行技術に不可欠または貢献する、本出願の技術的解決策の一部は、ソフトウェア製品の形態で具体化され得る。コンピュータソフトウェア製品は、記憶媒体に記憶され、端末デバイス(パーソナルコンピュータ、サーバ、ネットワークデバイスなどであり得る)が本発明の各実施形態による方法の全部または一部のステップを実行することを可能にするためのいくつかの命令を含む。上記の記憶媒体は、USBディスク、ROM、RAM、リムーバブルハードディスク、磁気ディスクまたは光ディスク、およびプログラムコードを記憶し得る他の媒体を含む。
【0115】
上記は、単に本発明の好ましい実施形態である。当業者にとって、本発明の原理から逸脱せずに、いくつかの改善および修正がなされ得ることに留意されたい。これらの改良および修正もまた、本発明の保護範囲内に収まるとみなされるべきである。