(57)【要約】【課題】再構成可能コンピュータを提供する。【解決手段】このコンピュータは、コントローラ２０８と、コントローラに通信可能に結合された少なくとも１つの再構成可能処理要素２０２とを含み、コントローラは、前記複数の各再構成可能処理要素の各構成の少なくとも第１部分を読み取り、前記再構成可能処理要素の前記構成の前記第１部分は、前記第１部分が最後に検査されてから変化している場合に、前記再構成可能処理要素の前記各構成の少なくとも一部をリフレッシュするように動作可能である。コントローラは、前記構成の前記第１部分について生成された巡回冗長コード（ＣＲＣ）を使用して、前記第１部分は、前記第１部分が最後に検査されてから変化しているか否かを決定する。コントローラに通信可能に結合された構成メモリ２０６をさらに含む。【選択図】図２
2008065813.tif 000002
【特許請求の範囲】
【請求項１】
コントローラ（２０８）と、
前記コントローラに通信可能に結合された少なくとも１つの再構成可能処理要素（２０２）とを含み、
前記コントローラは、前記複数の各再構成可能処理要素の各構成の少なくとも第１部分を読み取り、前記再構成可能処理要素の前記構成の前記第１部分は、前記第１部分が最後に検査されてから変化している場合に、前記再構成可能処理要素の前記各構成の少なくとも一部をリフレッシュするように動作可能である、
再構成可能コンピュータ（１０４）。
【請求項２】
前記コントローラは、前記構成の前記第１部分について生成された巡回冗長コード（ＣＲＣ）を使用して、前記第１部分は、前記第１部分が最後に検査されてから変化しているか否かを決定する、請求項１に記載の再構成可能コンピュータ。
【請求項３】
前記構成の前記第１部分の前記ＣＲＣを生成する、前記コントローラに通信可能に結合されたＣＲＣジェネレータ（３０６）をさらに含む、請求項２に記載の再構成可能コンピュータ。
【請求項４】
前記コントローラに通信可能に結合された構成メモリ（２０６）をさらに含む、請求項１に記載の再構成可能コンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本願は、参照によって本明細書に組み込まれ、本明細書で’８８８出願とも称する、２００４年７月２３日に出願した、本願の譲受人に譲渡された同時係属の米国特許出願第１０／８９７８８８号、名称「ＲＥＣＯＮＦＩＧＵＲＡＢＬＥ  ＣＯＭＰＵＴＩＮＧ  ＡＲＣＨＩＴＥＣＴＵＲＥ  ＦＯＲ  ＳＰＡＣＥ  ＡＰＰＬＩＣＡＴＩＯＮＳ（再構成可能コンピューティングアーキテクチャスペースアプリケーション）」に関連する。
【０００２】
宇宙応用の１タイプでは、宇宙空間内を移動するデバイスが、地球に置かれたデバイスにデータを送信する。宇宙空間内を移動するデバイスを、本明細書では「スペースデバイス」とも称する。スペースデバイスの例には、限定なしに、衛星および宇宙ビークルが含まれる。地球に置かれたデバイスを、本明細書では「地上デバイス」とも称する。地上デバイスの例が、ミッション管制センタである。スペースデバイスから地上デバイスに送信されるデータを、本明細書では「ダウンストリームデータ」または「ペイロードデータ」とも称する。ペイロードデータの例には、限定なしに、スペースデバイス内またはスペースデバイス上に含まれる１つまたは複数のセンサまたは他の科学機器から入手された科学データが含まれる。
【０００３】
いくつかのアプリケーションでは、スペースデバイスによって収集され、スペースデバイスから地上デバイスに送信されるペイロードデータの量は、スペースデバイスと地上デバイスとの間の通信リンクの物理的限界に達し、あるいはそれを超えることさえある。スペースデバイスから地上デバイスに通信されるペイロードデータの量を減らす手法の１つが、スペースデバイスで実行される処理の量を増やすことである。言い換えると、スペースデバイスは、そうでなければダウンストリームデータに含まれるはずの生のペイロードデータを処理する。通常、結果の処理済みデータは、サイズにおいて生のペイロードデータよりかなり小さい。そのような処理からの結果のデータが、その後、スペースデバイスから地上デバイスへダウンストリームデータとして送信される。
【０００４】
スペースデバイスで生のペイロードデータを処理する１つの形では、特定用途向け集積回路（ＡＳＩＣ）を使用する。特定用途向け集積回路は、効率的ではあるが、通常は、ミッション固有であり、限られたスケーラビリティ、アップグレード可能性、および再構成可能性を有する。生のペイロードデータを処理するもう１つの形では、アンチヒューズフィールドプログラマブルゲートアレイ（ＦＰＧＡ）を利用する。そのような手法は、通常、実施コストを下げ、実施時間を減らす。またアンチヒューズＦＰＧＡは、通常、放射に対する高い度合の許容量を示す。しかし、アンチヒューズＦＰＧＡは、通常、再プログラム可能（すなわち、再構成可能）ではない。その結果、あるアプリケーションのために構成されたアンチヒューズＦＰＧＡは、別のアプリケーションのために再構成可能ではない。
【０００５】
そのような生ペイロードデータを処理するもう１つの形は、再プログラム可能ＦＰＧＡを利用する。しかし、再プログラム可能ＦＰＧＡは、通常、シングルイベントアップセットに影響されやすい。シングルイベントアップセット（ＳＥＵ）は、エネルギ粒子が高速で高い運動エネルギでＦＰＧＡ（またはサポートする）デバイスを貫通する時に発生する。たとえば、エネルギ粒子は、宇宙空間内で太陽放射または背景放射から生じるイオン、電子、または陽子とすることができる。エネルギ粒子は、デバイス内の電子と相互作用する。そのような相互作用は、ＦＰＧＡ内のトランジスタの状態を反転させる可能性がある。すなわち、エネルギ粒子は、トランジスタの状態を論理「０」から論理「１」にまたは論理「１」から論理「０」に変化させる。これを、本明細書では「ビットフリップ」とも称する。エネルギ粒子とＦＰＧＡデバイス内の電子との相互作用は、デバイスへの過渡電流を誘導する可能性もある。
【特許文献１】米国特許出願第１０／８９７８８８号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ペイロードデータアプリケーションは、大量の通信干渉と共に動作し続ける。現在の監視技法は、再プログラム可能ＦＰＧＡが最小回復時間以内に回復するのを制限する。１つまたは複数のシングルイベントアップセットからの回復時間は、特に大量の放射に影響されやすい動作環境で、クリティカルである。
【課題を解決するための手段】
【０００７】
一実施形態で、再構成可能コンピュータを提供する。このコンピュータは、コントローラと、コントローラに通信可能に結合された少なくとも１つの再構成可能処理要素とを含む。コントローラは、複数の各再構成可能処理要素の各構成の少なくとも第１部分を読み取り、再構成可能処理要素の構成の第１部分は、第１部分が最後に検査されてから変化している場合に、再構成可能処理要素の各構成の少なくとも一部をリフレッシュするように動作可能である。
【発明を実施するための最良の形態】
【０００８】
図１は、’８８８出願で説明された、宇宙ペイロード処理システム１００の実施形態のブロック図である。システム１００の実施形態は、たとえば、衛星および宇宙ビークルなどのスペースデバイス内での使用に適切である。システム１００は、センサモジュール１０２１−１から１０２２−２を含む。センサモジュール１０２１−１から１０２２−２のそれぞれは、システム１００によって処理される生ペイロードデータの供給源である。しかし、他の実施形態では、生ペイロードデータの他の供給源が使用されることを理解されたい。
【０００９】
センサモジュール１０２１−１から１０２２−２のそれぞれは、センサ１０３１−１から１０３２−２を含む。一実施形態で、センサ１０３１−１から１０３２−２は、能動センサおよび／または受動センサを含む。センサ１０３１−１から１０３２−２のそれぞれは、センサ１０３に関連する物理的属性または物理的条件を示す信号を生成する。センサモジュール１０２１−１から１０２２−２は、適当なサポート機能性（図示せず）を含み、このサポート機能性は、たとえば、アナログ−ディジタル変換を実行し、センサデータをシステム１００の他の部分に供給するのに必要な入出力インターフェースを駆動する。説明を単純にするために、合計４つのセンサモジュール１０２１−１から１０２２−２および４つのセンサ１０３１−１から１０３２−２が図１に示されていることに留意されたい。しかし、システム１００の他の実施形態では、異なる個数のセンサモジュール１０１およびセンサ１０３（たとえば、１つまたは複数のセンサモジュールおよび１つまたは複数のセンサ）が使用されることを理解されたい。
【００１０】
たとえば、一実施形態で、センサモジュール１０２１−１から１０２２−２のそれぞれは、電荷結合素子（ＣＣＤ）センサまたは相補型金属酸化物半導体（ＣＭＯＳ）センサのアレイなどの光学センサのアレイを含む。もう１つの実施形態では、赤外線センサのアレイが使用される。光学センサのアレイは、そのような実施形態で、システム１００内の後続画像処理に使用される画素画像データを生成する。他の実施形態では、他のタイプのセンサが使用される。
【００１１】
センサモジュール１０２１−１から１０２２−２によって出力されるデータは、システム１００によって処理される生センサデータを含む。より具体的に言うと、センサモジュール１０２１−１から１０２２−２によって出力されるセンサデータは、再構成可能コンピュータ１０４１から１０４Ｎによって処理される。たとえば、センサモジュール１０２１−１から１０２２−２が生画像データを出力する一実施形態では、再構成可能コンピュータ１０４１から１０４２が、ＲＩＣＥ圧縮、エッジ検出、または宇宙データシステム諮問委員会（ＣＣＳＤＳ）プロトコル通信など、１つまたは複数の画像処理動作を実行する。
【００１２】
処理されたセンサデータは、次に、バックエンドプロセッサ１０６１および１０６２に供給される。バックエンドプロセッサ１０６１および１０６２は、再構成可能コンピュータ１０４１および１０４２によって実行される高水準制御および通信処理の入力として、処理されたセンサデータを受け取る。システム１００に示された実施形態では、バックエンドプロセッサ１０６２は、適当なダウンストリームパケットを組み立て、このダウンストリームパケットは、通信リンク１０８を介して地上デバイス１１０に送信される。このダウンストリームパケットの少なくとも一部は、再構成可能コンピュータ１０４１および１０４２から受け取られた処理されたセンサデータ（またはその処理されたセンサデータから導出されたデータ）を含む。システム１００の各種の構成要素内および間のペイロード関連データの通信を、本明細書では、「データ経路」において発生するとも称する。説明を単純にするために、合計２つの再構成可能コンピュータ１０４１および１０４２と２つのバックエンドプロセッサ１０６１および１０６２が図１に示されていることに留意されたい。しかし、システム１００の他の実施形態では、異なる個数の再構成可能コンピュータ１０４およびバックエンドプロセッサ１０６（たとえば、１つまたは複数の再構成可能コンピュータおよび１つまたは複数のバックエンドプロセッサ）が使用されることを理解されたい。
【００１３】
システム１００は、システムコントローラ１１２をまた含む。システムコントローラ１１２は、システム１００の各種の構成要素の動作を監視し、制御する。たとえば、システムコントローラ１１２は、再構成可能コンピュータ１０４１および１０４２の構成および再構成を管理する。システムコントローラ１１２は、さらに、１つまたは複数のプログラム可能再構成リフレッシュインターバルおよびプログラム可能再構成リードバックインターバルを制御する責務を負う。システム１００の各種の構成要素内および間における制御データの通信を、本明細書では、「制御経路」において発生するとも称する。
【００１４】
再構成可能コンピュータ１０４１および１０４２は、構成され、再構成されることができる。たとえば、再構成可能コンピュータ１０４１および１０４２は、実行時に構成され、再構成されることができる。すなわち、再構成可能コンピュータ１０４１および１０４２によって実行される処理は、システム１００が展開されている間（たとえば、システム１００が宇宙空間内にある間）に変更される。一実施形態で、再構成可能コンピュータ１０４１および１０４２のそれぞれは、１つまたは複数の再構成可能処理要素を使用して実現される。１つのそのような実施形態を、以下に図２に関してさらに詳細に説明する。
【００１５】
一実施形態において、再構成可能コンピュータ１０４１および１０４２の再構成可能性は、再構成可能コンピュータ１０４１および１０４２のそれぞれによって実行される処理における問題を修正するか、その処理に追加機能を追加するのに使用される。たとえば、システム１００が展開されている間に、再構成可能コンピュータ１０４１の新しい構成データが、地上デバイス１１０から通信リンク１０８を介してシステム１００に通信される。再構成可能コンピュータ１０４１は、この新しい構成データを使用して、再構成可能コンピュータ１０４１（すなわち、それ自体）を再構成する。
【００１６】
さらに、再構成可能コンピュータ１０４１および１０４２の再構成可能性は、再構成可能コンピュータ１０４１および１０４２が、時分割の基礎で、複数の処理モードのうちの１つで動作することを可能にする。たとえば、１つの使用シナリオでは、再構成可能コンピュータ１０４２が、各日の第１部分中に第１処理モードで動作し、同日の第２部分中に第２処理モードで動作するように構成される。この方法で、複数の処理モードが、同一の再構成可能コンピュータ１０４２を用いて実現され、そのような複数の処理モードを実施するのに使用されるリソース（たとえば、コスト、電力、および空間）の量を減らす。
【００１７】
システム１００では、再構成可能コンピュータ１０４１および１０４２のそれぞれとバックエンドプロセッサ１０６１および１０６２のそれぞれとが、別々の基板上で実現される。別々の基板のそれぞれは、周辺機器相互接続（ＰＣＩ）バスまたはコンパクトＰＣＩ（ｃＰＣＩ）バスなどの制御バス１１４を介して制御情報を互いに通信する。制御バス１１４は、たとえば、各基板を相互接続するバックプレーン１１６において実現される。図１に示されたシステム１００の例の実施形態では、基板のうちの少なくともいくつかが、１つまたは複数のデータバス１１８（たとえば、ＲＡＰＩＤＩＯ（登録商標）相互接続プロトコルをサポートする１つまたは複数のバス）を介して互いに通信する。そのような実施態様では、センサモジュール１０２１−１から１０２２−２は、１つまたは複数のメザニンボード上で実現される。各メザニンボードは、ＰＣＩ  Ｍｅｚｚａｎｉｎｅ  Ｃａｒｄ（ＰＭＣ）インターフェースなどの適当な入出力インターフェースを使用して、対応する再構成可能コンピュータ基板に接続される。
【００１８】
図２は、スペースデバイス２００でのペイロード処理に使用される再構成可能コンピュータ１０４の実施形態のブロック図である。図示の再構成可能コンピュータ１０４の実施形態は、’８８８出願で説明された再構成可能処理要素（ＲＰＥ）に似た、ＲＰＥ  ２０２１および２０２２を含む。’８８８出願で同様に注記されているように、再構成可能コンピュータ１０４の実施形態は、図１に関して上述したシステム１００によりまたはシステム１００と共の使用に適切である。再構成可能コンピュータ１０４の他の実施形態および実施態様が、他の方法で（たとえば、複数のＲＰＥ  ２０２を用いて）実現されることを理解されたい。
【００１９】
ＲＰＥ  ２０２１および２０２２は、以下に詳細に述べるように適当なプログラミング論理（本明細書では「ＦＰＧＡ構成」または「構成」とも称する）をロードすることによってプログラムされる再構成可能ＦＰＧＡ  ２０４１および２０４２を含む。各ＲＰＥ  ２０２１および２０２２は、１つまたは複数のペイロード処理動作を実行するように構成される。再構成可能コンピュータ１０４は、入出力（Ｉ／Ｏ）インターフェース２１４１および２１４２をまた含む。この２つのＩ／Ｏインターフェース２１４１および２１４２のそれぞれは、図１の各センサモジュール１０２に結合され、このセンサモジュール１０２は、この再構成可能処理要素２０２によって処理される生ペイロードデータを受け取る。
【００２０】
Ｉ／Ｏインターフェース２１４１および２１４２とＲＰＥ  ２０２１および２０２２とは、一連のデュアルポートメモリデバイス２１６１から２１６６を用いて互いに結合される。これは、１つまたは複数のＳＥＵに、より影響されやすい、マルチドロップバス（または他の相互接続構造）を使用する必要をなくす。デュアルポートメモリデバイス２１６１から２１６３の第１グループのそれぞれは、第１ポートをＩ／Ｏインターフェース２１４１に結合される。Ｉ／Ｏインターフェース２１４１は、メモリデバイス２１６１から２１６３の各第１ポートを使用して、メモリデバイス２１６１から２１６３のそれぞれからデータを読み取り、これらにデータを書き込む。ＲＰＥ  ２０２１は、メモリデバイス２１６１から２１６３の各第２ポートに結合される。ＲＰＥ  ２０２１は、メモリデバイス２１６１から２１６３の各第２ポートを使用して、メモリデバイス２１６１から２１６３のそれぞれからデータを読み取り、これらにデータを書き込む。３つのデュアルポートメモリデバイス２１６４から２１６６の第２グループのそれぞれは、第１ポートをＩ／Ｏインターフェース２１４２に結合される。Ｉ／Ｏインターフェース２１４２は、メモリデバイス２１６４から２１６６の各第１ポートを使用して、メモリデバイス２１６４から２１６６のそれぞれからデータを読み取り、データを書き込む。ＲＰＥ  ２０２２は、メモリデバイス２１６４から２１６６の各第２ポートに結合される。ＲＰＥ  ２０２２は、メモリデバイス２１６４から２１６６の各第２ポートを使用して、メモリデバイス２１６４から２１６６のそれぞれからデータを読み取り、データを書き込む。
【００２１】
この例の実施形態では、Ｉ／Ｏインターフェース２１４３および２１４４は、ＲＡＰＩＤＩＯインターフェースである。ＲＡＰＩＤＩＯインターフェース２１４３および２１４４のそれぞれは、ＲＡＰＩＤＩＯ相互接続プロトコルをサポートする図１のバックプレーン１１６における１つまたは複数のデータバス１１８を介して、各バックエンドプロセッサ１０６に結合される。ＲＰＥ  ２０２１から２０２２のそれぞれは、図１の１つまたは複数のバックエンドプロセッサ１０６と通信するために、ＲＡＰＩＤＩＯインターフェース２１４３および２１４４のそれぞれの１つに結合される。
【００２２】
再構成可能コンピュータ１０４は、さらに、システム制御インターフェース２０８を含む。システム制御インターフェース２０８は、構成バス２１８を介してＲＰＥ  ２０２１から２０２２のそれぞれに結合される。システム制御インターフェース２０８は、システムバス２２０を介してＩ／Ｏインターフェース２１４１および２１４２のそれぞれにも結合される。システム制御インターフェース２０８は、図１のシステムコントローラ１１２がそれによってＲＰＥ  ２０２１から２０２２ならびにＩ／Ｏインターフェース２１４１および２１４２に結合された１つまたは複数のＩ／Ｏデバイスと通信する（すなわち、これらを監視し、制御する）インターフェースを提供する。システム制御インターフェース２０８は、制御バスインターフェース２１０を含む。制御バスインターフェース２１０は、システム制御インターフェース２０８を図１の制御バス１１４に結合する。システム制御インターフェース２０８およびシステムコントローラ１１２は、制御バス１１４を介して通信する。一実施態様で、制御バスインターフェース２１０は、ｃＰＣＩインターフェースを含む。
【００２３】
システム制御インターフェース２０８は、ローカルコントローラ２１２をまた含む。ローカルコントローラ２１２は、図１のシステムコントローラ１１２の管理下で各種の制御動作を実行する。ローカルコントローラ２１２は、以下に図３に関してさらに詳細に説明する各種のＦＰＧＡ構成管理動作を実行する。ローカルコントローラ２１２によって実行される構成管理動作は、構成メモリ２０６からＦＰＧＡ構成を読み取ること、再構成可能ＦＰＧＡ  ２０４１および２０４２のそれぞれにそのＦＰＧＡ構成をロードすることを含む。１つまたは複数のＦＰＧＡ構成が、構成メモリ２０６に記憶される。一実施態様において、構成メモリ２０６は、フラッシュランダムアクセスメモリ（フラッシュＲＡＭ）およびスタティックランダムアクセスメモリ（ＳＲＡＭ）のうちの１つを使用して実現される。他の実施形態では、１つまたは複数のＦＰＧＡ構成が、異なる位置（たとえば、システムコントローラ１１２に含まれるメモリデバイス）に記憶される。ローカルコントローラ２１２によって実行される構成管理動作は、ＳＥＵ軽減をまた含む。ＳＥＵ軽減の例は、ＦＰＧＡ構成の周期的なリフレッシュおよび／またはイベントトリガされるリフレッシュならびに／あるいはＦＰＧＡ構成のリードバックおよび比較を含む。一実施形態で、本明細書で（および下の図４に関して）説明するＳＥＵ軽減は、少なくとも１つの実質的なＳＥＵを維持するＲＰＥ  ２０２１および２０２２のそれぞれについてローカルコントローラ２１２によって実行される。
【００２４】
図２に示された例の実施形態では、システム制御インターフェース２０８および構成メモリ２０６は、放射線硬化構成要素を使用して実現され、再構成可能処理要素２０２１および２０２２（再構成可能ＦＰＧＡ  ２０４１および２０４２を含む）と、Ｉ／Ｏインターフェース２１４１から２１４４と、デュアルポートメモリデバイス２１６１から２１６６とは、必ずしも放射線硬化されていない民生品利用（ＣＯＴＳ）構成要素を使用して実現される。ＣＯＴＳ構成要素は、より安価であり、より柔軟であり、プログラムするのがより簡単である。通常、データ経路において実行される処理は、ミッションごとにまたはアプリケーションごとに、制御パスにおいて実行される処理よりかなり大きく変化する。ＣＯＴＳ構成要素を使用することは、再構成可能コンピュータ１０４を、再構成不可能なアンチヒューズＦＰＧＡまたはＡＳＩＣなどの放射線硬化構成要素より効率的に（時間、コスト、電力、および／または空間に関して）実現することを可能にする。さらに、ＳＥＵ軽減技法をシステム制御インターフェース２０８に組み込むことによって、三重モジュラ冗長性などの冗長性に基づくＳＥＵ軽減技法が、不要になる。これは、ＣＯＴＳ構成要素を用いる所与のスペースアプリケーションに使用される再構成可能コンピュータ１０４を実施するのに必要なリソース（たとえば、時間、コスト、電力、および／または空間）の量を減らす。
【００２５】
図３は、再構成可能コンピュータの構成インターフェース３００の実施形態のブロック図である。構成インターフェース３００は、ローカルコントローラ２１２、構成メモリ２０６、制御バスインターフェース２１０、および構成バス２１８を含む。構成メモリ２０６、制御バスインターフェース２１０、および構成バス２１８は、図２に関して上述している。ローカルコントローラ２１２は、内部バスコントローラ３０２と、ＲＰＥ  ＣＲＣジェネレータ３０６１および３０６２と、ＲＰＥインターフェースコントローラ３０８１および３０８２とを含む。ローカルコントローラ２１２の他の実施形態および実施態様が、他の方法により（たとえば、複数のＲＰＥ  ＣＲＣジェネレータ３０６および複数のＲＰＥインターフェースコントローラ３０８を用いて）実現されることを理解されたい。内部バスコントローラは、さらに、内部アービタ３０４を含む。内部バスコントローラ３０２は、各コア相互インターフェース３２０１および３２０２によってＲＰＥ  ＣＲＣジェネレータ３０６１および３０６２のそれぞれに直接に結合される。コア相互インターフェース３２０１および３２０２は、内部双方向通信インターフェースである。内部アービタ３０４は、それぞれアービタインターフェース３２２１および３２２２によってＲＰＥインターフェースコントローラ３０８１および３０８２のそれぞれに直接に結合される。アービタインターフェース３２２１および３２２２は、内部双方向通信インターフェースである。内部アービタ３０４は、ローカルコントローラ２１２においてコア相互通信が同時に発生するのを防ぎ、この同時発生は、不正な動作をもたらす可能性がある。ＲＰＥ  ＣＲＣジェネレータ３０６１および３０６２のそれぞれは、それぞれＣＲＣインターフェース３２４１および３２４２によってＲＰＥインターフェースコントローラ３０８１および３０８２に直接に結合される。ＣＲＣインターフェース３２４１および３２４２は、内部双方向通信インターフェースである。
【００２６】
内部バスコントローラ３０２は、構成メモリインターフェース３１６によって構成メモリ２０６（図２に示されている）に結合される。構成メモリインターフェース３１６は、構成要素間双方向通信インターフェースである。内部バスコントローラ３０２は、コントローラ論理インターフェース３１８によって制御バスインターフェース２１０（図２に示されている）にも結合される。コントローラ論理インターフェース３１８は、構成要素間双方向通信インターフェースである。一実施態様において、コントローラ論理インターフェース３１８は、ＷＩＳＨＢＯＮＥインターフェース、ｃＰＣＩインターフェース、または類似物のうちの１つである。ＲＰＥインターフェースコントローラ３０８１および３０８２のそれぞれは、図２のＲＰＥ  ２０２１および２０２２と通信するために、構成バス２１８に結合される。ＲＰＥインターフェースコントローラ３０８１および３０８２のそれぞれは、さらに、リードバックコントローラ３１０１および３１０２と、アービタ３１２１および３１２２と、構成コントローラ３１４１および３１４２とを含み、これらの各動作は、以下にさらに説明される。一実施態様において、内部アービタ３０４とアービタ３１２１および３１２２のそれぞれは、２インターフェース、回転アービトレーション状態マシーンである。他の実施態様が可能である。
【００２７】
動作において、ＲＰＥ  ２０２１から２０２２の各構成データの完全な組または部分的な組が、内部バスコントローラ３０２によって構成メモリ２０６から取り出される。この例の実施形態では、システムコントローラ１１２（図１の）が、構成データの完全な組または部分的な組のどちらを分析しなければならないかを決定する。システム制御インターフェース２０８は、５０ＭＨｚクロックレート（最大）で動作することができ、バースト読取（リードバック）動作中またはバースト書込（構成）動作中に、すべてのクロックの立ち上がりエッジに１つのデータ転送（たとえば、１つのデータフレームまたは１バイト）を完了する。一実施態様で、ローカルコントローラ２１２は、１０ＭＨｚのクロックレートで動作する。内部アービタ３０４は、各ＲＰＥインターフェースコントローラ３０８１および３０８２が再構成可能コンピュータ１０４の動作の割り込みを引き起こさずに構成データを受け取る順序を決定する。
【００２８】
ＲＰＥインターフェースコントローラ３０８１および３０８２のそれぞれは、構成データを受け取ったならば、リードバックコントローラ３１０１および３１０２は、構成データのリードバック動作を制御する。構成データのすべてのリードバック動作について、ＲＰＥ  ＣＲＣジェネレータ３０６１および３０６２のそれぞれは、構成データの完全な組または部分的な組に対してＣＲＣを実行する。ＣＲＣは、同一の構成データの以前のリードバック以降にいずれかの構成データビットが変化した（すなわち、１つまたは複数のＳＥＵに起因して破壊された）か否かを決定する。リードバックＣＲＣ計算が、記憶されたＣＲＣと一致しない場合、ローカルコントローラ２１２は、自動再構成モードに入る。図３の例の実施形態では、ＣＲＣエラーに因る自動再構成は、最高優先順位である。さらに、ローカルコントローラ２１２は、ＳＥＵ統計を収集するためのＣＲＣエラーカウントレジスタを提供する。
【００２９】
ローカルコントローラ２１２は、アービタ３１２１および３１２２を介して優先順位および順序をインターリーブすることによるリードバック動作および再構成（リフレッシュ）動作のインターリーブをサポートする。アービタ３１２１および３１２２は、それぞれ、ＲＰＥ  ＣＲＣジェネレータ３０６１（３０６２）と構成コントローラ３１４１（３１４２）との間の構成データのアービトレーションの責任を負う。構成コントローラ３１４１および３１４２のそれぞれは、内部レジスタファイル（図示せず）から１つまたは複数の入力要求を取り込み、どの動作を実行すべきかをデコードする。構成コントローラ３１４１（３１４２）は、実行が望まれる動作を識別し、ローカルコントローラ２１２内のサポートする論理によってトランザクションが実行されることを要求する。
【００３０】
構成コントローラ３１４１および３１４２のそれぞれは、適当なデータ信号および制御信号を内部的に多重化するために動作モードを選択する。すべての必要な入力が受け取られたならば、構成コントローラ３１４１（３１４２）は、どの特定の要求を実行するかを判断する。その特定の要求が許可されたならば、構成コントローラ３１４１（３１４２）は、その要求を完了するためのアクセスに関するアクセス要求をアービタ３１２１（３１２２）に発行する。各要求は、どの単一のインターフェースも構成バス２１８にアクセスする要求を拒絶されないようにするために、優先順位エンコードされ、公平なアービトレーション方式で実現される。構成コントローラ３１４１および３１４２のそれぞれは、サイクルごとの基礎で、構成バス２１８にインターフェースする能力を、ローカルコントローラ２１２用のソフトウェア命令の組に与える。具体的に言うと、アクセス要求を受け取った時に、構成コントローラ３１４１（３１４２）は、構成データを構成メモリ２０６から構成バス２１８に出力する。
【００３１】
ローカルコントローラ２１２および制御バスインターフェース２１０は、１つまたは複数の独立の構成バス（たとえば、ＲＰＥインターフェースコントローラ３０８１および３０８２）を提供する。一実施態様で、ＲＰＥインターフェースコントローラ３０８１および３０８２は、ＲＰＥ  ２０２１および２０２２のそれぞれに関する同時のリードバックおよびＣＲＣ検査をもたらす。その後、ＲＰＥ  ２０２１（２０２２）の１構成の同時リードバックが、ＲＰＥ  ２０２２（２０２１）が再構成されている間に行われる。さらに、ローカルコントローラ２１２は、１つまたは複数のプログラム可能な再構成リフレッシュインターバルレートおよびリードバックインターバルレートを提供する。ローカルコントローラ２１２は、バースト読取アクセスおよびバースト書込アクセスをもサポートする。一実施態様では、待ち状態が、バックツーバック読取／書込動作中およびバックツーバック書込／読取動作中に挿入される。ＲＰＥ  ２０２１および２０２２の完全な再構成および部分的再構成は、最小限の動作サイクル数の中で行われ、以前の（すなわち、ソフトウェアに基づく）ＳＥＵ軽減動作よりかなり高速である。
【００３２】
図４は、少なくとも２つの再構成可能処理要素を制御する方法４００を示す流れ図である。図４に示された例の実施形態では、方法４００は、それぞれ図１および２のシステム１００および再構成可能コンピュータ１０４を使用して実現される。具体的に言うと、方法４００の少なくとも一部は、システム制御インターフェース２０８のローカルコントローラ２１２によって実現される。しかし、他の実施形態では、方法４００は、他の形で実現される。
【００３３】
ブロック４０４で、リフレッシュインターバル値を確立（または調整）したならば、方法４００は、シングルイベントアップセットの発生に起因する可能な破壊について、各使用可能ＲＰＥの構成を監視するプロセスを開始する。方法４００の主機能は、最小量の動作サイクル以内にＲＰＥの破壊された構成を自動的に再構成することである。一実施態様で、方法４００は、宇宙ペイロード処理アプリケーションのオペラビリティを維持するための完全なまたは部分的なリフレッシュまたは再構成の完了時間を実質的に改善する。
【００３４】
リフレッシュインターバルレートが、以前のレベルまたはデフォルトレベルから変更されたか否かに関する決定を行う（ブロック４０６で検査される）。この決定は、上で図１に関して説明したシステムコントローラ１１２内で行われる。リフレッシュインターバルレベルが変化している場合には、システムコントローラ１１２は、ブロック４０８でリフレッシュインターバルレベルをローカルコントローラ２１２に転送し、ブロック４１０に進む。リフレッシュインターバルレベルが変化していない場合、またはリフレッシュインターバルレベルが（静的な）所定のレベルで固定されている場合には、方法４００は、ブロック４１０で継続する。ブロック４１０では、現在のリフレッシュインターバルが経過したか否かに関する決定を行う。リフレッシュインターバルが経過するまでは、ブロック４１０に関連する処理を繰り返す。
【００３５】
ブロック４１２では、方法４００は、リードバック動作を実行することによって、ＲＰＥ（ここでは「現在の」ＲＰＥと称する）の構成状況を評価し始める。そのような実施形態の一実施態様では、リードバック動作は、現在のＲＰＥのＲＰＥインターフェースコントローラ３０８によって実行される。ローカルコントローラ２１２は、現在のＲＰＥの再構成可能ＦＰＧＡの現在の構成を読み取り、読み取られた構成の少なくとも一部を、現在の構成に関連する良いことがわかっている値と比較する。読み取られた値が、良いことがわかっている値と一致しない場合には、現在のＲＰＥの構成は、破壊されていると考えられる。一実施態様では、そのようなリードバック動作は、現在のＲＰＥのＦＰＧＡの構成の各バイト（またはデータの他の単位）を読み取ること、そのバイトを構成メモリ２０６に記憶された対応する構成の対応するバイトと比較することによって実行される。言い換えると、ローカルコントローラ２１２は、バイトごとの比較を実行する。もう１つの実施態様では、１つまたは複数のＣＲＣ（または他の誤り訂正コード）値を、各ＲＰＥ  ＣＲＣジェネレータによって現在のＲＰＥのＦＰＧＡの現在の構成についいて計算する。
【００３６】
現在のＲＰＥの構成が破壊されている（ブロック４１４で検査される）場合に、方法４００は、ブロック４１６で、現在のＲＰＥ  ２０２の完全なまたは部分的な再構成（リフレッシュ）を開始する。完全な再構成または部分的再構成のどちらを実行するかに関する決定は、図１のシステムコントローラ１１２によって行われる。ブロック４１２で実行されたリードバック動作が、現在のＲＰＥ  ２０２の構成の破壊を明らかにしない場合には、方法４００は、ブロック４１８に直接に進む。
【００３７】
ブロック４１８では、方法４００は、すべての使用可能なＲＰＥを評価したか否かを決定する。否である場合には、方法４００は、ブロック４１２に戻って、次の使用可能なＲＰＥの構成状況を評価する。すべての使用可能なＲＰＥを評価し終えた時に、方法４００は、使用可能なＲＰＥのうちの少なくとも１つが、実質的に機能するまで待ち（ブロック４２０で検査される）、そうなった時には、方法４００は、ブロック４０４に戻る。
【００３８】
図１のシステム１００での方法４００の動作の１つの例では、ＲＰＥ  ２０２１が構成（または再構成）される時に、適当な構成が、構成メモリ２０６から読み取られ、再構成可能ＦＰＧＡ  ２０４１にロードされる。類似する動作が、ＲＰＥ  ２０２２を構成するために行われる。ＲＰＥ  ２０２１およびＲＰＥ  ２０２２のそれぞれは、たとえば、図２の再構成可能コンピュータ１０４が最初にブートされる時に、最初のシステムパワーオンの後またはシステムリセットの後に構成される。時分割式の複数の動作モードをサポートする再構成可能コンピュータ１０４のいくつかの実施形態では、再構成可能コンピュータ１０４は、再構成可能コンピュータ１０４の動作モードが変化するたびに、新しい動作モードの構成が構成メモリ２０６から読み取られ、各ＲＰＥの再構成可能ＦＰＧＡにロードされるようになるように構成される。また、そのような例では、ＲＰＥ  ２０２１およびＲＰＥ  ２０２２は、１つまたは複数のＳＥＵ軽減動作の一部として、各再構成可能ＦＰＧＡ  ２０４１およびＦＰＧＡ  ２０４２の構成が再ロードされる「リフレッシュ」動作を実行するように構成される。
【図面の簡単な説明】
【００３９】
【図１】宇宙ペイロード処理システムの実施形態を示すブロック図である。
【図２】スペースデバイスでのペイロード処理に使用される再構成可能コンピュータの実施形態を示すブロック図である。
【図３】再構成可能コンピュータの構成インターフェースの実施形態を示すブロック図である。
【図４】少なくとも２つの再構成可能処理要素を制御する方法の実施形態を示す流れ図である。
【符号の説明】
【００４０】
１００  宇宙ペイロード処理システム
１０２１−１〜１０２２−２  センサモジュール
１０３１−１〜１０３２−２  センサ
１０４１〜１０４Ｎ  再構成可能コンピュータ
１０６１、１０６２  バックエンドプロセッサ
１０８  通信リンク
１１０  地上デバイス
１１２  システムコントローラ
１１４  制御バス
１１６  バックプレーン
１１８  データバス
２００  スペースデバイス
２０２１、２０２２  ＲＰＥ
２０４１、２０４２  再構成可能ＦＰＧＡ
２０６  構成メモリ
２０８  システム制御インターフェース
２１０  制御バスインターフェース
２１２  ローカルコントローラ
２１４１、２１４２  入出力（Ｉ／Ｏ）インターフェース
２１４３、２１４４  ＲＡＰＩＤＩＯインターフェース
２１６１〜２１６６  デュアルポートメモリデバイス
２１８  構成バス
２２０  システムバス
３００  構成インターフェース
３０２  内部バスコントローラ
３０４  内部アービタ
３０６１、３０６２  ＲＰＥ  ＣＲＣジェネレータ
３０８１、３０８２  ＲＰＥインターフェースコントローラ
３１０１、３１０２  リードバックコントローラ
３１２１、３１２２  アービタ
３１４１、３１４２  構成コントローラ
３１６  構成メモリインターフェース
３１８  コントローラ論理インターフェース
３２０１、３２０２  コア相互インターフェース
３２２１、３２２２  アービタインターフェース
３２４１、３２４２  ＣＲＣインターフェース
【図１】
2008065813.tif 000003
【図２】
2008065813.tif 000004
【図３】
2008065813.tif 000005
【図４】
2008065813.tif 000006
【外国語明細書】
2008065813000001.pdf