(57)【要約】本発明は、ＦＰＧＡデバイスおよびＦＰＧＡデバイスに基づくクラウドシステムを開示する。デバイスは、管理論理ユニットおよびユーザ論理ユニットを備える。管理論理ユニットが、周辺機器相互接続エクスプレス（ＰＣＩｅ）モジュールを含み、ＰＣＩｅモジュールが、第１の物理的機能ユニットおよび第２の物理的機能ユニットを含む。第１の物理的機能ユニットは、第２の物理的機能ユニットによって開始されたユーザ論理読み込み要求を受信することであって、ユーザ論理読み込み要求が、ユーザ論理識別子を担持する、ことと、ユーザ論理識別子に基づいてユーザ論理ファイルを取得することと、ＰＣＩｅ構成チャネルを介してユーザ論理ファイルをユーザ論理ユニットに書き込みことと、を行うように構成されている。本発明は、遠隔で構成またはデバッグされるときにＪＴＡＧケーブルに接続する必要性に起因する、既存のＦＰＧＡがクラウドに展開されることができないという技術的問題を解決する。
2020537799.tif 000002
【特許請求の範囲】
【請求項１】
ＦＰＧＡデバイスであって、
管理論理ユニットおよびユーザ論理ユニットを備え、
前記管理論理ユニットが、ＰＣＩｅモジュールを含み、
前記ＰＣＩｅモジュールが、第１の物理的機能ユニットおよび第２の物理的機能ユニットを含み、
前記第１の物理的機能ユニットが、
前記第２の物理的機能ユニットによって開始されたユーザ論理読み込み要求を受信することであって、前記ユーザ論理読み込み要求が、ユーザ論理識別子を担持する、ことと、
前記ユーザ論理識別子に従ってユーザ論理ファイルを取得することと、
ＰＣＩｅ構成チャネルを介して前記ユーザ論理ファイルを前記ユーザ論理ユニットに書き込むことと、
を行うように構成されている、ＦＰＧＡデバイス。
【請求項２】
前記管理論理ユニットが、記憶媒体制御モジュールをさらに含み、
前記第１の物理的機能ユニットが、サーバによって送信されたアップグレード要求を受信することと、前記アップグレード要求に従ってＰＣＩｅインターフェースを介してホストからアップグレードファイルを取得することと、を行うようにさらに構成されており、
前記記憶媒体制御モジュールが、前記第１の物理的機能ユニットと接続され、前記アップグレードファイルに従って記憶媒体をアップグレードするように構成されている、請求項１に記載のＦＰＧＡデバイス。
【請求項３】
共有レジスタをさらに備え、
前記第２の物理的機能ユニットが、前記共有レジスタを介して例外情報を報告するようにさらに構成されており、
前記第１の物理的機能ユニットが、前記共有レジスタから前記例外情報を取得することと、前記例外情報に対応する動作を実施することと、を行うようにさらに構成されている、請求項１に記載のＦＰＧＡデバイス。
【請求項４】
前記ユーザ論理ユニットが、直接アクセスインターフェースを含み、
前記第２の物理的機能ユニットが、前記直接アクセスインターフェースを介して前記ユーザ論理ユニットとデータを交換するようにさらに構成されている、請求項１に記載のＦＰＧＡデバイス。
【請求項５】
前記管理論理ユニットが、仮想ＪＴＡＧモジュールをさらに含み、
前記第２の物理的機能ユニットが、前記ユーザ論理ユニットのデバッグデータを取得するように構成されており、
前記仮想ＪＴＡＧモジュールが、前記第２の物理的機能ユニットと接続され、ＰＣＩｅインターフェースを介して前記デバッグデータをデバッグするように構成されている、請求項１に記載のＦＰＧＡデバイス。
【請求項６】
前記管理論理ユニットが、
前記第１の物理的機能ユニットと接続され、ハードウェアの温度および消費電力を検出することと、前記検出された温度および消費電力を前記第１の物理的機能ユニットに送信することと、を行うように構成された、モニタモジュールをさらに含む、請求項１に記載のＦＰＧＡデバイス。
【請求項７】
前記管理論理ユニットが、
帯域外通信インターフェースと接続され、前記ユーザ論理ユニットの任意の異常の場合に前記ユーザ論理ユニットをリセットするように構成された、エラー修復機構モジュールをさらに含む、請求項１に記載のＦＰＧＡデバイス。
【請求項８】
前記第１の物理的機能ユニットが、前記ユーザ論理ファイルのビットストリームを検証することと、検証が成功した場合、前記ＰＣＩｅ構成チャネルを介した前記ユーザ論理ユニットへの前記ユーザ論理ファイルの前記書き込みをトリガすることと、を行うようにさらに構成されている、請求項１に記載のＦＰＧＡデバイス。
【請求項９】
前記ユーザ論理読み込み要求が、動的検証識別子をさらに担持し、
前記第１の物理的機能ユニットが、前記動的検証識別子およびサーバから受信したプリセット検証識別子に従って許可検証を実施することと、検証が成功した場合、前記ユーザ論理識別子に基づく前記ユーザ論理ファイルの取得をトリガすることと、を行うようにさらに構成されている、請求項１に記載のＦＰＧＡデバイス。
【請求項１０】
ＦＰＧＡデバイスに基づくクラウドシステムであって、
ホストと、
請求項１乃至９のいずれか一項に記載の少なくとも１つのＦＰＧＡデバイスと、を備える、システム。
【請求項１１】
前記ホストが、前記ＦＰＧＡデバイス内のＰＣＩｅモジュールとデータを交換するように構成されたＰＣＩｅドライバを含む、請求項１０に記載のシステム。
【請求項１２】
前記ホストが、管理環境およびユーザ環境を含み、
前記管理環境が、ユーザの操作に応答して、前記ＦＰＧＡデバイスの第１の物理的機能ユニットを介して前記ＦＰＧＡデバイスの管理論理ユニットにアクセスするために使用され、
前記ユーザ環境が、前記ユーザの操作に応答して、前記ＦＰＧＡデバイスの第２の物理的機能ユニットを介して前記ＦＰＧＡデバイスのユーザ論理ユニットにアクセスするために使用される、請求項１０に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、2017年10月9日出願の中国特許出願第201710929351.4号、発明の名称「FPGA DEVICE AND CLOUD SYSTEM BASED ON FPGA DEVICE」に対する優先権を主張し、この特許出願は、参照によりその全体が本明細書に組み込まれる。
【０００２】
本発明は、クラウドコンピューティングの分野に関し、より具体的には、ＦＰＧＡデバイスおよびＦＰＧＡデバイスに基づくクラウドシステムに関する。
【背景技術】
【０００３】
インターネットの規模およびデータ容量の急速な成長に伴い、クラウドコンピューティングが不可欠となった。電力消費およびコンピューティング能力の観点から見ると、ＣＰＵに基づく従来のクラウドコンピューティングハードウェアは、今日の成長しているコンピューティングニーズを満たすのに現在苦労している。ＧＰＵおよびＦＰＧＡは、コンピューティング能力の高速化に理想的な選択である。コンピューティング能力でのＧＰＵの利点と比較して、ＦＰＧＡは、より柔軟であり、より低い消費電力、より高いコンピューティング性能を有する。例えば、カスタマイズされたアルゴリズムを展開するアクセラレータ（ＳＩＭＤおよびＭＩＭＤなど）によって、ＦＰＧＡは、既にクラウドコンピューティングを加速するための有望なハードウェアになっている。
【０００４】
しかしながら、既存のＦＰＧＡは、遠隔構成またはデバッグのためにＪＴＡＧ（ジョイントテストアクショングループ）ケーブルを接続する必要があるため、クラウド展開に好適ではない。
【０００５】
既存のＦＰＧＡが物理機能のセキュリティ分離を達成できないことに起因するコンピューティング性能の低下の上記の問題に関して、現在のところ有効な解決策が提案されていない。
【発明の概要】
【０００６】
本発明の実施形態は、ＦＰＧＡデバイスおよびＦＰＧＡデバイスに基づくクラウドシステムを提供し、遠隔で構成またはデバッグされるときにＪＴＡＧケーブルに接続する必要性に起因する、既存のＦＰＧＡがクラウドに展開されることができないという技術的問題を少なくとも解決する。
【０００７】
本発明の実施形態の一態様によると、ＦＰＧＡデバイスが提供され、ＦＰＧＡデバイスは、管理論理ユニットおよびユーザ論理ユニットを備え、管理論理ユニットが、周辺機器相互接続エクスプレス（ＰＣＩｅ）モジュールを含み、ＰＣＩｅモジュールが、第１の物理的機能ユニットおよび第２の物理的機能ユニットを含む。第１の物理的機能ユニットは、第２の物理的機能ユニットによって開始されたユーザ論理読み込み要求を受信することであって、ユーザ論理読み込み要求が、ユーザ論理識別子を担持する、受信することと、ユーザ論理識別子に基づいてユーザ論理ファイルを取得することと、ＰＣＩｅ構成チャネルを介してユーザ論理ファイルをユーザ論理ユニットに書き込みことと、を行うように構成されている。
【０００８】
本発明の実施形態の別の態様によると、ＦＰＧＡデバイスに基づくクラウドシステムがさらに提供され、システムは、ホストと、上述された特徴のいずれかを有するＦＰＧＡデバイスと、を備える。
【０００９】
本発明の実施形態では、ＰＣＩｅモジュールは、ＦＰＧＡデバイスの管理論理ユニット内に構成され、ＰＣＩｅモジュールは、異なる許可を有する物理的機能ユニットに分割され、管理論理ユニットおよびユーザ論理ユニットは、構成を介して管理される。管理論理ユニットは、ＰＣＩｅモジュールを含み、ＰＣＩｅモジュールは、第１の物理的機能ユニットおよび第２の物理的機能ユニットを含む。第１の物理的機能ユニットは、第２の物理的機能ユニットによって開始されたユーザ論理読み込み要求を受信することであって、ユーザ論理読み込み要求が、ユーザ論理識別子を担持する、受信することと、ユーザ論理識別子に基づいてユーザ論理ファイルを取得することと、ＰＣＩｅ構成チャネルを介してユーザ論理ファイルをユーザ論理ユニットに書き込みことと、を行うように構成されている。このように、遠隔構成が、ホストとの通信時にＪＴＡＧケーブルに接続せずに達成され、その結果、ＦＰＧＡの性能を改善する技術的効果を達成し、それによって、既存のＦＰＧＡが、遠隔に構成またはデバッグされるときにＪＴＡＧケーブルに接続する必要性に起因してクラウドに展開されることができないという技術的問題を解決する。
【図面の簡単な説明】
【００１０】
本明細書に説明される図面は、本発明のさらなる理解を可能にし、その一部を構成するために使用される。本発明の例示的な実施形態およびその説明は、本発明を説明するために使用され、本発明に対する不適切な限定を構成するものではない。
【００１１】
【図１】本出願の一実施形態による、ＦＰＧＡデバイスの概略構造図である。
【図２】本出願の一実施形態による、ＦＰＧＡデバイスの動的再構成の概略フローチャートである。
【図３】本出願の一実施形態による、任意選択のＦＰＧＡデバイスの概略構造図である。
【図４】本出願の一実施形態による、任意選択のＦＰＧＡデバイス内の共有レジスタとＰＦとの間の接続の概略構造図である。
【図５】本出願の一実施形態による、任意選択のユーザ論理読み込みの概略フローチャートである。
【図６】本出願の一実施形態による、ＦＰＧＡデバイスに基づくクラウドシステムの構造図である。
【発明を実施するための形態】
【００１２】
当業者が本発明の解決策をより良好に理解することを可能にするために、本発明の実施形態における技術的解決策は、本発明の実施形態の図面と組み合わせて、以下に明確かつ完全に説明されることになる。明らかに、説明された実施形態は、本発明の実施形態の一部のみを表すが、全ての実施形態を表すわけではない。発明的努力を伴わずに本発明の実施形態に基づいて当業者によって得られる全ての他の実施形態は、本発明の保護範囲内に収まる。
【００１３】
本発明の説明および特許請求の範囲並びに上記の図面の「第１」および「第２」という用語は、類似の対象を区別するために使用され、特定の順番または順序を説明することを必ずしも意図しないことに留意されたい。このように使用されるデータは、適宜交換可能であり、したがって、本明細書に説明される本発明の実施形態は、本明細書に例示または説明されるもの以外の順番で実装され得ることを理解されたい。加えて、「備える」および「有する」という用語、並びにそれらの任意の変形は、非排他的な包括をカバーすることを意図している。例えば、一連のステップまたはユニットを含むプロセス、方法、システム、製品、またはデバイスは、明示的に列挙されているステップまたはユニットに必ずしも限定されず、明示的に列挙されていないか、またはこれらのプロセス、方法、製品、もしくはデバイスに固有の他のステップまたはユニットを代わりに含んでもよい。
【００１４】
本出願の実施形態の説明に現れる名詞または用語のいくつかは、次のとおりである。
（１）フィールドプログラマブルゲートアレイ（ＦＰＧＡ）
（２）特定用途向け集積回路（ＡＳＩＣ）
（３）周辺機器相互接続エクスプレス（ＰＣＩｅ）
（４）主に回路のバウンダリスキャンテストおよびプログラマブルチップのオンラインシステムプログラミングで使用される、ジョイントテストアクショングループ（ＪＴＡＧ）
（５）ダイレクトメモリアクセス（ＤＭＡ）
【００１５】
実施形態１
本発明の実施形態によると、ＦＰＧＡデバイスの実施形態がさらに提供される。本出願の各実施形態の詳細をさらに説明する前に、本出願の原理を実装するために使用され得る好適なＦＰＧＡデバイスが図１を参照して説明されることに留意されたい。
【００１６】
図１は、本出願の一実施形態による、ＦＰＧＡデバイスの概略構造図である。説明の目的のために、描写された構造は、好適な環境の単なる例であり、本出願の使用または機能の範囲にいかなる限定も課さない。このＦＰＧＡデバイスは、図１に示される構成要素または組み合わせのいずれかに依存するように解釈されるべきではなく、それらを必要とするように解釈されるべきでもない。
【００１７】
ＡＳＩＣの分野でセミカスタマイズされた回路のように、ＦＰＧＡは、カスタマイズされた回路の欠点を解決するだけでなく、元のプログラマブルデバイスのゲート回路ブロックの制限を克服する。
【００１８】
さらに、ＦＰＧＡは、航空宇宙、航空、電子機器、通信、レーダーなどの国防分野で広く使用され得る。また、超音波検出器およびＣＴスキャン機器などの医療機器、並びに民生用電子機器、自動車用電子機器、ロボット、およびデータマイニングの分野でも使用され得る。加えて、ロボット、ＵＡＶ、ビッグデータ、モノのインターネット、無人運転、５Ｇ通信の台頭により、ＦＰＧＡの市場の見通しは、着実な成長を維持しながらますます広がることになる。
【００１９】
市場の需要とＦＰＧＡの迅速な展開のために、既存のＦＰＧＡがクラウドに展開されることができないという問題を解決することが急務である。
【００２０】
基本的なデータ伝送機能を実装することに加えて、本出願の実施形態に提供されるＦＰＧＡデバイスは、遠隔デバッグ、遠隔アップグレード、例外処理およびハードウェア監視などの補助機能も実現し得ることに留意されたい。これは、クラウド内のＦＰＧＡの使用環境に順応し、したがって、信頼性が高く、安定した、使い易く安全なＦＰＧＡアクセラレーションクラウドサービスを提供し得る。
【００２１】
具体的には、図１は、ＦＰＧＡデバイスの概略図を示す。図１に示されるように、ＦＰＧＡデバイス１は、管理論理ユニット１０およびユーザ論理ユニット１２を備える。
【００２２】
管理論理ユニット１０は、ＰＣＩｅモジュール１０１を含み、ＰＣＩｅモジュール１０１は、第１のＰＦ（物理的機能ユニット）１０１０および第２のＰＦ１０１２を含む。第１のＰＦ１０１０は、第２のＰＦ１０１２によって開始されたユーザ論理読み込み要求を受信することであって、ユーザ論理読み込み要求が、ユーザ論理識別子を担持する、受信することと、ユーザ論理識別子に基づいてユーザ論理ファイルを取得することと、ＰＣＩｅ構成チャネルを介してユーザ論理ファイルをユーザ論理ユニットに書き込みことと、を行うように構成されている。
【００２３】
ＰＣＩｅモジュールが構成されると、本出願に提供されるＦＰＧＡデバイスは、クラウドに展開されるＦＰＧＡクラウドサーバアーキテクチャをセットアップするために好適であり、したがって、遠隔デバッグ、遠隔アップグレード、例外処理、ハードウェア監視の機能を実現する。
【００２４】
任意選択的に、ＦＰＧＡデバイス上のハードウェア論理は、管理論理ユニットおよびユーザ論理ユニットの２つの部分に分割され得る。
【００２５】
管理論理ユニットは、ＦＰＧＡサーバ（例えば、クラウドサーバ）によって提供され得、一方でユーザ論理ユニットは、エンドユーザおよびサードパーティＩＰ製造者によって提供され得ることに留意されたい。
【００２６】
任意選択の実施形態として、管理論理ユニットは、周辺通信に使用され得、ユーザ論理ユニットは、ユーザアプリケーションプログラムのホットスポットモジュールを実装するために使用され得る。例えば、圧縮／解凍アプリケーションについて、ユーザ論理は、実際の圧縮／解凍アルゴリズム（ｇｉｚｐアルゴリズムなど）を実現し得る。圧縮されるべきデータは、ＰＣＩｅを介してホストＣＰＵからＦＰＧＡデバイスに送信され、圧縮されたデータは、次いで、ＰＣＩｅインターフェースからホストＣＰＵに戻る。
【００２７】
上記の任意選択の実施形態では、周辺通信は、限定されるものではないが、ＰＣＩｅを介したホストＣＰＵとの通信、イーサネットまたは光ファイバーインターフェースを介した他のネットワークデバイスとの通信、およびＤＤＲ（ダブルデータレート）コントローラインターフェース／フラッシュインターフェースを介した外部記憶デバイスとの通信の通信形態のいずれかであり得る。
【００２８】
加えて、ＡＳＩＣチップの固定ハードウェア論理とは異なり、上述のユーザ論理ユニットは、要件に基づいて交換され得ることにも留意されたい。これは、動的再構成が管理論理ユニットによって実施され得ることを意味する。任意選択的に、動的再構成は、ＦＰＧＡの部分的再構成（ＰＲ）機能を使用することによって実装され得る。
【００２９】
任意選択の実施形態として、ＦＰＧＡデバイス上の管理論理ユニットは、ＰＣＩｅモジュールを介してホストＣＰＵと通信し得、ＰＣＩｅモジュールは、異なる許可を有する２つ以上のＰＦから構成され得る。
【００３０】
実装可能な方法では、ＰＣＩｅモジュールは、限定せずに、第１のＰＦおよび第２のＰＦ（すなわち、デュアルＰＦの許可セグメント化モード）から構成され得る。
【００３１】
図３に示されるように、ホストＣＰＵが分離された管理環境およびユーザ環境から構成され、管理環境およびユーザ環境が仮想化技術を介して互いに分離されているため、上記の分離方法は、２つの仮想マシン、または仮想マシンおよびホストのいずれかであり得ることに留意されたい。ユーザ論理制御プロセスでは、第１のＰＦがホストの管理環境でｍａｎａｇｅｍｅｎｔ．ｋｏを呼び出し得、第２のＰＦがホストの管理環境でｄｍａ．ｋｏを呼び出し得る。
【００３２】
任意選択の実施形態として、第１のＰＦは、ホストＣＰＵの管理環境と通信し、第２のＰＦは、ホストＣＰＵのユーザ環境と通信する。ホストＣＰＵとの高速かつ安全な通信を実装するために、第１のＰＦおよび第２のＰＦもまた、物理的に分離され得、それらの間には異なる構成空間および許可セグメント化方法が存在する。
【００３３】
また、ＦＰＧＡデバイスのＰＣＩｅモジュールが異なる許可を有するＰＦに分割され、ホストが管理環境およびＰＦと関連付けられたユーザ環境に分割されて、セキュリティの分離を実現することにも留意されたい。通常のユーザは、ユーザ環境のみを使用して、ユーザ論理にアクセスし、ユーザ論理の遠隔デバッグを実施し得る。スーパー管理者ユーザは、管理環境を使用して、基板カードに対する管理、監視、再構成などのより高い許可を用いて操作を実施し得る。
【００３４】
加えて、本出願に提供される実施形態では、ユーザのアクセス不能およびＮＣダウンタイムの問題さえ、第１のＰＦおよび第２のＰＦのセキュリティ分離によって回避され得、ＦＰＧＡのコンピューティング性能をさらに改善することにも留意される必要がある。
【００３５】
図２に示されるように、上記のデュアルＰＦ許可セグメント化方法を例にとると、第１のＰＦは、限定されるものではないが、次の手段で動的再構成を実装し得る。
【００３６】
ステップＳ１０１では、第１のＰＦは、第２のＰＦによって開始されたユーザ論理読み込み要求を受信する。
【００３７】
任意選択的に、ユーザ論理読み込み要求は、ユーザ論理識別子を担持する。
【００３８】
任意選択の実施形態として、第２のＰＦは、それ自体の識別子に基づいて、ユーザ論理読み込み要求をサーバに送信し得る。
【００３９】
ステップＳ１０３では、第１のＰＦは、ユーザ論理識別子に基づいてユーザ論理ファイルを取得する。
【００４０】
任意選択的に、ステップＳ１０３では、第１のＰＦは、サーバが認証要求を読み込んで応答した後に、上記のユーザ論理識別子に基づいて遠隔記憶装置側からユーザ論理ファイルを取得し得る。
【００４１】
ステップＳ１０５では、第１のＰＦは、ＰＣＩｅ構成チャネルを介してユーザ論理ファイルをユーザ論理ユニットに書き込む。
【００４２】
任意選択の実施形態として、ユーザ論理ファイルが取得された後、第１のＰＦは、ＰＣＩｅ構成チャネルの部分的再構成制御（ＰＲ  ｃｔｒｌ）モジュールを介してユーザ論理ファイルをユーザ論理ユニットに書き込み、ユーザ論理読み込み要求に基づいて、対応するミラーイメージを読み込む。
【００４３】
上述のステップＳ１０１〜Ｓ１０５に基づいて、本出願に提供されるＦＰＧＡデバイスは、動的再構成を完了し得る。
【００４４】
加えて、本出願に提供される実施形態では、第１のＰＦはまた、動的再構成、遠隔アップグレードフラッシュ、例外処理、およびハードウェア監視を実装するように構成され得る。第２のＰＦはまた、ＤＭＡを介してユーザ論理ユニットと高速データ交換を実施することと、ユーザ論理ユニットの遠隔デバッグ機能を実現することと、を行うように構成され得る。
【００４５】
上記の実施形態に定義された解決策は、本出願に提供されるＦＰＧＡデバイスが、管理論理ユニットおよびユーザ論理ユニットを含み、管理論理ユニットが、ＰＣＩｅモジュールを含み、ＰＣＩｅモジュールが、第１の物理的デバイスＰＦおよび第２のＰＦを含むことを実証する。第１のＰＦは、第２のＰＦによって開始されたユーザ論理読み込み要求を受信することであって、ユーザ論理読み込み要求が、ユーザ論理識別子を担持する、受信することと、ユーザ論理識別子に基づいてユーザ論理ファイルを取得することと、ＰＣＩｅ構成チャネルを介してユーザ論理ファイルをユーザ論理ユニットに書き込みことと、を行うように構成されている。
【００４６】
ホストＣＰＵが、分離された管理環境およびユーザ環境から構成されているため、本出願のＦＰＧＡデバイスのハードウェア論理が、管理論理ユニットおよびユーザ論理ユニットに分割され得ることが容易に留意される。管理論理ユニットは、ＰＣＩｅモジュールを介してホストＣＰＵと通信する。動的再構成を実装するプロセスでは、本出願の実施形態のＦＰＧＡデバイスは、ＰＣＩｅモジュール内の２つ以上のＰＦの許可セグメント化を介したセキュリティ分離によって動的再構成を実現し得る。
【００４７】
加えて、本出願の実施形態では、第１のＰＦはまた、動的再構成、遠隔アップグレードフラッシュ、例外処理、およびハードウェア監視を実装するように構成され得る。第２のＰＦはまた、ＤＭＡを介してユーザ論理ユニットと高速データ交換を実施することと、ユーザ論理ユニットの遠隔デバッグ機能を実装することと、を行うように構成され得る。
【００４８】
本出願の実施形態によって提供される解決策を通して、ＰＣＩｅモジュールは、ＦＰＧＡデバイスの管理論理ユニット内で構成され、ＰＣＩｅモジュールは、異なる許可を有するＰＦに分割されて、ホストと通信するときにＪＴＡＧケーブルに接続せずに遠隔構成を達成する。これは、ＦＰＧＡの性能を改善する技術的効果を実現し、遠隔で構成またはデバッグされるときにＪＴＡＧケーブルに接続する必要性に起因する、既存のＦＰＧＡがクラウドに展開されることができないという技術的問題をさらに解決する。
【００４９】
任意選択の実施形態として、図３は、本出願の実施形態による、任意選択のＦＰＧＡデバイスの概略構造図である。図３に示されるように、管理論理ユニットは、記憶媒体制御モジュール１０３をさらに含む。第１のＰＦは、サーバによって送信されたアップグレード要求を受信することと、アップグレード要求に基づいてＰＣＩｅインターフェースを介してホストからアップグレードファイルを取得することと、を行うようにさらに構成されている。記憶媒体制御モジュールは、第１のＰＦと接続されて、アップグレードファイルに基づいて記憶媒体をアップグレードする。
【００５０】
遠隔アップグレード記憶媒体の実装モードが、本出願の上述の動的再構成のものと同様であることに留意されたい。違いは、クラウド管理および制御システム（サーバ）によって実行依頼されるアップグレード要求が外部記憶装置側に送信され、コマンドが第１のＰＦに送信されることである。
【００５１】
図３に示されるように、記憶媒体制御モジュール１０３は、フラッシュ（記憶媒体）と接続され、第１のＰＦ１０１０は、記憶媒体制御モジュール１０３と接続されている。任意選択の実施形態では、第１のＰＦは、アップグレード要求に基づいてＰＣＩｅインターフェースを介してホストからアップグレードファイルを取得し、ＰＣＩｅを介してレジスタを読み書きする。管理論理ユニット内の記憶媒体制御（Ｆｌａｓｈ  ｃｔｒｌ）モジュールは、基板カード上のフラッシュファームウェアをアップグレードするように構成されている。
【００５２】
スーパー管理者がフラッシュアップグレードプロセスを担当し、通常のユーザは、アップグレードおよび更新の許可を有していないことに留意されたい。
【００５３】
任意選択の実施形態として、図３に示されるように、管理論理ユニットはまた、外部メモリＤＤＲを読み書きするために外部メモリＤＤＲに接続される、外部メモリコントローラ１０５、すなわち、ＤＤＲ  Ｃｔｒｌも含む。
【００５４】
任意選択の実施形態として、ＦＰＧＡデバイスはまた、共有レジスタも含む。第２のＰＦは、共有レジスタを介して例外情報を報告するようにさらに構成されている。第１のＰＦは、共有レジスタから例外情報を取得することと、例外情報に対応する動作を実施することと、を行うようにさらに構成されている。
【００５５】
任意選択の実施形態として、ＦＰＧＡデバイスのための例外処理機構は、内部共有レジスタを介して実装され得る。
【００５６】
図４は、本出願の一実施形態による、任意選択のＦＰＧＡデバイス内の共有レジスタとＰＦとの間の接続の概略構造図である。図４に示されるように、共有レジスタは、第１のＰＦおよび第２のＰＦと接続されている。第２のＰＦは、共有レジスタを読み書きすると共に、共有レジスタを介して内部例外情報を報告し得、第１のＰＦは、共有レジスタを読み出し、共有レジスタをポーリングして、共有レジスタによって報告された例外情報を取得し得る。
【００５７】
任意選択の実施形態では、図３に示されるように、ユーザ論理ユニットは、直接アクセスインターフェース１０７を含む。第２のＰＦは、直接アクセスインターフェースを介してユーザ論理ユニットとデータを交換するようにさらに構成されている。
【００５８】
任意選択的に、ＤＭＡインターフェースは、直接アクセスインターフェースとすることができる。ＦＰＧＡデバイス内で、ユーザ論理の提供に使用されるＤＭＡインターフェースは、標準プロトコルインターフェースに属し、それにより、第２のＰＦ専用ＰＣＩｅのＤＭＡインターフェースアクセスを保証する。
【００５９】
任意選択の実施形態として、ユーザ論理ユニットは、直接アクセスインターフェースの読み出しインターフェースを採用して、データをホストからＤＭＡに移動させる。ユーザ論理ユニットは、直接アクセスインターフェースの書き込みインターフェースを採用して、ＦＰＧＡデータをホストに移動させ、それによって、ホストとＦＰＧＡデバイスとの間のデータ交換を実現する。
【００６０】
第２のＰＦに提供されるＦＰＧＡ論理のＤＭＡインターフェースが、ハードウェアインターフェースを抽象化し、それによって、セキュリティ分離およびプログラミングの簡素化の目的を達成し得ることに留意されたい。
【００６１】
任意選択の実施形態として、図３に示されるように、管理論理ユニットはまた、仮想ＪＴＡＧモジュール１０９も含む。第２のＰＦは、ユーザ論理ユニットのデバッグデータを取得するように構成され、仮想ＪＴＡＧモジュールは、第２のＰＦと接続され、ＰＣＩｅインターフェースを介してデバッグデータをデバッグするように構成されている。
【００６２】
任意選択的に、仮想ＪＴＡＧモジュールが、ユーザ論理ユニットの遠隔デバッグ機能を実現するように構成され得る。
【００６３】
仮想ＪＴＡＧモジュールが、ユーザ論理ユニットを遠隔でデバッグするときにＪＴＡＧタイミングシーケンスをシミュレートすることに留意されたい。それは、ハードウェア波形を取得し得、ＪＴＡＧの物理的なハードワイヤなしでＰＣＩｅバスインターフェースを介して遠隔エンドまたはローカルデバッグソフトウェアに、対応するデータを送信し得、高い柔軟性を与える。
【００６４】
任意選択の実施形態として、図３に示されるように、管理論理ユニットはまた、監視モジュール１１１を備え、これは、第１のＰＦと接続され、ハードウェアの温度および電力消費を検出し、検出された温度および電力消費を第１のＰＦに送信するように構成されている。
【００６５】
任意選択的に、上記の監視モジュールはまた、モニタモジュールでもある。
【００６６】
任意選択の実施形態として、管理論理ユニットは、レジスタアクセス機構を介してＦＰＧＡによって内部的に監視されるハードウェア情報ステータスを取得し得る。例えば、ハードウェア情報ステータスは、モニタモジュールによって検出され得、検出された温度および消費電力は、第１のＰＦに送信され得る。
【００６７】
モニタモジュールが、ハードウェア監視に使用され得、温度および電力センサの検出機能を有することに留意されたい。
【００６８】
任意選択の実施形態として、図３に示されるように、管理論理ユニットはまた、エラー修復機構モジュール１１３を含み、これは、帯域外通信インターフェース１１５と接続され、例外の場合にユーザ論理ユニットをリセットするように構成されている。
【００６９】
任意選択的に、エラー修復機構モジュールは、エラー修復モジュールであり、帯域外通信インターフェース、つまりＳＭＢｕｓは、主基板上に構成される。
【００７０】
任意選択の実施形態として、管理論理ユニットはまた、ユーザ論理ユニットを部分的に再構成するように構成された、部分再構成制御（ＰＲ  ｃｔｒｌ）モジュール１１７も含む。ユーザがユーザ論理を変更する必要がある場合、ユーザは、第１のＰＦ内の対応する構成空間レジスタに、対応する要求を送信し得る。
【００７１】
ユーザのランダム構成およびユーザ論理ファイルへのアクセスによって引き起こされるＩＰ開示などの事故を回避するために、任意選択の実施形態では、第１のＰＦは、ユーザ論理ファイルのビットストリームを検証することと、検証が成功した場合、ＰＣＩｅ構成チャネルを介したユーザ論理ユニットへのユーザ論理ファイルの書き込みをトリガすることと、を行うようにさらに構成されている。
【００７２】
任意選択の実施形態として、ユーザ論理読み込み要求はまた、動的検証識別子も担持する。第１のＰＦは、動的検証識別子およびサーバから受信したプリセット検証識別子に基づいて許可検証を実施することと、検証が成功した場合、ユーザ論理識別子に基づくユーザ論理ファイルの取得をトリガすることと、を行うようにさらに構成されている。
【００７３】
ユーザは、動的検証識別子（毎分更新される）、ＦＰＧＡクラウドサーバ許可、ユーザ論理ＩＤを含む、３つの条件を満たすことのみによって、検証され、ユーザ論理ファイルを取得して、動的再構成を実装し得ることに留意されたい。動的再構成では、管理論理ユニットは、ビットストリームに対して最終検証を実施し、つまり、ビットストリームが、予期されるユーザ論理ファイルと一致することを検証する。
【００７４】
本出願の上記の実施形態を理解するために、本出願は、図５に示されるような任意選択のユーザ論理読み込みの概略フローチャートを提供して、ユーザ論理読み込みフローをさらに説明する。
【００７５】
ステップＳ２０１では、ホストが、動的検証コードサービスを提供する。
【００７６】
ユーザ論理ファイルのセキュリティを保護するために、任意選択の実施形態として、管理環境でユーザ論理ファイルを書き込むときに、ホストＣＰＵは、動的検証コードサービスを提供して、ユーザ論理読み込み要求を検証し得る。
【００７７】
ステップＳ２０２では、ユーザが、ユーザ論理を読み込むことを要求する。
【００７８】
具体的には、ユーザ論理読み込み要求は、ｕｓｅｒ＿ｌｏｇｉｃ＿ｉｄおよびｉｎｓｔａｎｃｅ＿ｉｄの識別情報を担持する。
【００７９】
任意選択の実施形態として、ユーザは、第２のＰＦを介してユーザ環境へのユーザ論理読み込み要求を起動し、ユーザ論理読み込み要求は、ユーザ論理識別子を担持する。
【００８０】
ステップＳ２０３では、スーパー管理者が、要求の発信元を検証する。
【００８１】
任意選択の実施形態として、管理環境のスーパー管理者は、限定されるものではないが、動的検証コード、ＦＰＧＡクラウドサーバ許可、およびユーザ論理ＩＤの検証を含む、ユーザ論理読み込み要求を検証し得る。検証が成功した場合、ステップＳ２０４が実行されることになる。
【００８２】
ステップＳ２０４では、ユーザ論理ファイルが取得される。
【００８３】
任意選択的に、スーパー管理者が動的検証コード、ＦＰＧＡクラウドサーバ許可、およびユーザ論理ＩＤを承認すると、ユーザ論理ファイルが、ユーザ論理識別子に基づいて取得されることになる。
【００８４】
ステップＳ２０５では、ホストのｍａｎａｇｅｍｅｎｔ．ｋｏが呼び出される。
【００８５】
任意選択的に、第１のＰＦは、ホスト管理環境でｍａｎａｇｅｍｅｎｔ．ｋｏを呼び出す。
【００８６】
ステップＳ２０６では、部分的な再構成が開始される。
【００８７】
任意選択の実施形態として、第１のＰＦは、管理環境でｍａｎａｇｅｍｅｎｔ．ｋｏを呼び出すことによって動的再構成を開始する。
【００８８】
ステップＳ２０７では、全てのＤＭＡ送信が一時停止される。
【００８９】
任意選択の実施形態として、ユーザ論理ユニットのＤＭＡデータ交換および遠隔デバッグ機能が、動的再構成中に一時停止される。
【００９０】
ステップＳ２０８では、ビットストリーム検証が実施される。
【００９１】
任意選択の実施形態として、第１のＰＦは、ユーザ論理ファイルのビットストリームを検証することと、検証が成功した場合、ＰＣＩｅ構成チャネルを介したユーザ論理ファイルの書き込みをトリガすることと、を行うようにさらに構成されている。
【００９２】
ステップＳ２０９では、書き込みが完了する。
【００９３】
任意選択の実施形態として、ユーザ論理ファイルは、ＰＣＩｅ構成チャネルを介してユーザ論理ユニットに書き込まれ得る。
【００９４】
ステップＳ２１０では、ｄｍａ．ｋｏが呼び出される。
【００９５】
任意選択の実施形態として、第２のＰＦは、ユーザ環境でｄｍａ．ｋｏを呼び出して、ユーザ論理ファイルをユーザ論理ユニットに書き込む。
実施形態２
本発明の実施形態によると、図６に示されるように、ＦＰＧＡデバイス１およびホスト２を含む、ＦＰＧＡデバイスに基づくクラウドシステムもまた、提供される。
【００９６】
ＦＰＧＡデバイスは、管理論理ユニットおよびユーザ論理ユニットを備え、管理論理ユニットが、周辺機器相互接続エクスプレス（ＰＣＩｅ）モジュールを含み、ＰＣＩｅモジュールが、第１のＰＦおよび第２のＰＦを含む。第１のＰＦは、第２のＰＦによって開始されたユーザ論理読み込み要求を受信することであって、ユーザ論理読み込み要求が、ユーザ論理識別子を担持する、受信することと、ユーザ論理識別子に基づいてユーザ論理ファイルを取得することと、ＰＣＩｅ構成チャネルを介してユーザ論理ファイルをユーザ論理ユニットに書き込みことと、を行うように構成されている。
【００９７】
図６に示されるように、ＦＰＧＡデバイスの管理論理ユニットおよびホストＣＰＵは、ＰＣＩｅを介して通信し、ホストＣＰＵは、ユーザアプリケーションプログラムのソフトウェア部分を担当し、ＦＰＧＡデバイスは、ホットスポットモジュールのハードウェアアクセラレーションを担当する。このうち、ホストＣＰＵは、アプリケーションプログラム、アクセラレーションライブラリ、ＰＣＩｅドライバを含む。
【００９８】
ユーザ論理ファイルのセキュリティを保護するために、ホストＣＰＵが管理環境でユーザ論理ファイルを書き込むときに、ホストＣＰＵは、上記の実施形態の識別情報検証プロセスを介して検証を行い得る。
【００９９】
上記の実施形態で定義された解決策は、本出願に提供されるＦＰＧＡデバイスに基づくクラウドシステムが、ホスト、および上記の任意選択のＦＰＧＡデバイスを含むことを実証する。ＦＰＧＡデバイスは、管理論理ユニットおよびユーザ論理ユニットを備え、管理論理ユニットが、ＰＣＩｅモジュールを含み、ＰＣＩｅモジュールが、第１のＰＦおよび第２のＰＦを含む。第１のＰＦは、第２のＰＦによって開始されたユーザ論理読み込み要求を受信することであって、ユーザ論理読み込み要求が、ユーザ論理識別子を担持する、受信することと、ユーザ論理識別子に基づいてユーザ論理ファイルを取得することと、ＰＣＩｅ構成チャネルを介してユーザ論理ファイルをユーザ論理ユニットに書き込みことと、を行うように構成されている。
【０１００】
ホストＣＰＵが、分離された管理環境およびユーザ環境から構成されているため、本出願のＦＰＧＡデバイスのハードウェア論理が、管理論理ユニットおよびユーザ論理ユニットに分割され得ることが容易に留意される。管理論理ユニットは、ＰＣＩｅモジュールを介してホストＣＰＵと通信する。動的再構成を実装するプロセスでは、本出願の実施形態のＦＰＧＡデバイスは、ＰＣＩｅモジュール内の２つ以上のＰＦの許可セグメント化を介したセキュリティ分離によって動的再構成を実現し得る。
【０１０１】
加えて、本出願の実施形態では、第１のＰＦはまた、動的再構成、遠隔アップグレードフラッシュ、例外処理、およびハードウェア監視を実装するように構成され得、第２のＰＦはまた、ＤＭＡを介してユーザ論理ユニットとの高速データ交換を行い、ユーザ論理ユニットの遠隔デバッグ機能を実装するように構成され得る。
【０１０２】
本出願の上記の実施形態によって提供される解決策を通して、ＰＣＩｅモジュールは、ＦＰＧＡデバイスの管理論理ユニット内に配設され、ＰＣＩｅモジュールは、異なる許可を有するＰＦに分割されて、ホストと通信するときにＪＴＡＧケーブルに接続せずに遠隔構成を達成する。これは、ＦＰＧＡの性能を改善する技術的効果を実現し、遠隔で構成またはデバッグされるときにＪＴＡＧケーブルに接続する必要性に起因する、既存のＦＰＧＡがクラウドに展開されることができないという技術的問題をさらに解決する。
【０１０３】
ホストＣＰＵとＦＰＧＡデバイスとの間のデータ交換を実装するために、ＰＣＩｅドライバモジュールが、サポートを提供するために必要とされる。任意選択の実施形態では、図６に示されるように、ホストは、ＦＰＧＡデバイス内のＰＣＩｅモジュールとのデータ交換のためのＰＣＩｅドライバ３を含む。
【０１０４】
本出願は、上記のＰＣＩｅのバージョンを限定せず、バージョンは、限定されるものではないが、１．０、２．０、３．０および４．０とすることができることに留意されたい。図６のホストおよびＦＰＧＡデバイスは、１：１で対応を単に概略的に描写する。実際の適用プロセスでは、本出願の実施形態は、１：Ｎ（Ｎは、ＦＰＧＡデバイスの数）の対応をサポートし得る。
【０１０５】
さらに、ユーザアプリケーションのプログラミングを容易にするために、ユーザが呼び出すアクセラレーションライブラリもまた、ＰＣＩｅドライバ上に提供される。ユーザは、アクセラレーションライブラリを使用するときに透過的なアクセラレーションを実現し得、ハードウェアの詳細を知る必要はない。
【０１０６】
別の任意選択の実施形態では、ホストは、管理環境およびユーザ環境を含み、管理環境は、ユーザの操作に応答して、ＦＰＧＡデバイスの第１のＰＦを介してＦＰＧＡデバイスの管理論理ユニットにアクセスするために使用され、ユーザ環境は、ユーザの操作に応答して、ＦＰＧＡデバイスの第２のＰＦを介してＦＰＧＡデバイスのユーザ論理ユニットにアクセスするために使用される。
【０１０７】
上記の方法の実施形態に関して、簡潔な説明のために、方法の実施形態は、全て、一連のアクションの組み合わせとして説明されていることに留意されたい。しかしながら、当業者は、本発明がそれに限定されないことを知るはずである。本発明によると、いくつかのステップは、別の順番で、または同時に実行され得る。加えて、当業者はまた、説明において説明された実施形態が全て好ましい実施形態であり、関与するアクションおよびモジュールが本発明によって必ずしも必要とされないことも知るはずである。
【０１０８】
上記の実施形態の説明に基づいて、当業者は、上記の実施形態の方法が、ソフトウェアおよび必要なユニバーサルハードウェアプラットフォームを使用して実装され得、ハードウェアを使用することによっても確実に実装され得ることを明確に理解し得るが、多くの場合、前者の方がより良好な実装である。そのような理解に基づいて、先行技術に不可欠または貢献する、本発明の技術的解決策の一部は、ソフトウェア製品の形態で具体化され得る。コンピュータソフトウェア製品は、記憶媒体（ＲＯＭ／ＲＡＭ、磁気ディスク、および光ディスクなど）に記憶され、端末デバイス（携帯電話、コンピュータ、サーバ、ネットワークデバイスなどであり得る）が本発明の各実施形態の方法を実行することを可能にするためのいくつかの命令を含む。
【０１０９】
本発明の実施形態の通し番号は、単に説明のためのものであり、実施形態の利点および欠点を表すものではない。
【０１１０】
本発明の上記の実施形態では、各実施形態の説明は、それ自体の重要性を有する。実施形態に詳細に説明されていない部分については、他の実施形態の関連する説明が参照され得る。
【０１１１】
本出願に提供されるいくつかの実施形態では、開示された技術的内容は、他の手段で実装され得ることが理解されるべきである。上記の装置の実施形態は、単に概略である。例えば、ユニットの分割は、単に論理的な機能の分割である。実際の実装では、別の分割様態が使用されてもよい。例えば、複数のユニットまたは構成要素が、別のシステムに組み合わせられ得るか、もしくは別のシステムに統合され得、またはいくつかの機能が、無視され得るか、もしくは実装されなくてもよい。加えて、表示または論じられた相互連結、直接連結、または通信接続は、いくつかのインターフェース、ユニット、またはモジュールによる間接的連結または通信接続であり得、これらはまた、電気的または他の形態であってもよい。
【０１１２】
別個の構成要素として説明されているユニットは、物理的に分離されてもよく、またはそうでなくてもよく、ユニットとして表示される構成要素は、物理的なユニットであってもよく、またはそうでなくてもよく、すなわち、ユニットは、一箇所に位置してもよく、または複数のネットワークユニットに分散されてもよい。ユニットのいくつかまたは全ては、この実施形態の解決策の目的を達成するための実際の必要性に応じて選択され得る。
【０１１３】
加えて、本発明の各実施形態の各機能ユニットは、処理ユニットに統合されてもよく、または各ユニットは、物理的に分離して存在してもよく、または２つ以上のユニットが１つのユニットに統合されてもよい。上記の統合されたユニットは、ハードウェアまたはソフトウェア機能ユニットの形態であり得る。
【０１１４】
統合されたユニットがソフトウェア機能ユニットの形態で実装され、独立した製品として販売または使用される場合、それは、コンピュータ可読記憶媒体に記憶され得る。そのような理解に基づいて、先行技術に不可欠または貢献する、本出願の技術的解決策の一部は、ソフトウェア製品の形態で具体化され得る。コンピュータソフトウェア製品は、記憶媒体に記憶され、端末デバイス（パーソナルコンピュータ、サーバ、ネットワークデバイスなどであり得る）が本発明の各実施形態による方法の全部または一部のステップを実行することを可能にするためのいくつかの命令を含む。上記の記憶媒体は、ＵＳＢディスク、ＲＯＭ、ＲＡＭ、リムーバブルハードディスク、磁気ディスクまたは光ディスク、およびプログラムコードを記憶し得る他の媒体を含む。
【０１１５】
上記は、単に本発明の好ましい実施形態である。当業者にとって、本発明の原理から逸脱せずに、いくつかの改善および修正がなされ得ることに留意されたい。これらの改良および修正もまた、本発明の保護範囲内に収まるとみなされるべきである。
【図１】
2020537799.tif 000003
【図２】
2020537799.tif 000004
【図３】
2020537799.tif 000005
【図４】
2020537799.tif 000006
【図５】
2020537799.tif 000007
【図６】
2020537799.tif 000008
【手続補正書】
【提出日】令和2年6月9日(2020.6.9)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００３１
【補正方法】変更
【補正の内容】
【００３１】
図３に示されるように、ホストＣＰＵが分離された管理環境およびユーザ環境から構成され、管理環境およびユーザ環境が仮想化技術を介して互いに分離されているため、上記の分離方法は、２つの仮想マシン、または仮想マシンおよびホストのいずれかであり得ることに留意されたい。ユーザ論理制御プロセスでは、第１のＰＦがホストの管理環境でｍａｎａｇｅｍｅｎｔ．ｋｏを呼び出し得、第２のＰＦがホストのユーザ環境でｄｍａ．ｋｏを呼び出し得る。
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図３
【補正方法】変更
【補正の内容】
【図３】
2020537799.tif 000009
【国際調査報告】
2020537799.tif 000010
2020537799.tif 000011
2020537799.tif 000012
2020537799.tif 000013