(57)【要約】【課題】利用者の意図しない誤った回路データがポートに書き込まれてしまうことを防止すること。【解決手段】パーシャルコンフィグレーションが可能なＦＰＧＡ４００のコンフィグレーションを制御するコンフィグレーション制御装置１００において、正誤判定部１０３は、ＦＰＧＡ４００の複数のポートのいずれかに展開される回路データが、所望の展開先ポートを指定された所望の回路データであるか否かを、展開される回路データがＦＰＧＡ４００に書き込まれる前に判定し、データストリーム制御部１０２は、正誤判定部１０３での判定結果に応じて、展開される回路データのＦＰＧＡ４００への書き込みをするか否かを制御する。【選択図】図６
2013257640.tif 000002
【特許請求の範囲】
【請求項１】
パーシャルコンフィグレーションが可能なプログラマブルデバイスのコンフィグレーションを制御するコンフィグレーション制御装置において、
前記プログラマブルデバイスの複数の領域のいずれかに展開される回路データが、所望の展開先領域を指定された所望の回路データであるか否かを、前記展開される回路データが前記プログラマブルデバイスに書き込まれる前に判定する判定部と、
前記判定部での判定結果に応じて、前記展開される回路データの前記プログラマブルデバイスへの書き込みをするか否かを制御するデータ制御部と、
を具備するコンフィグレーション制御装置。
【請求項２】
前記判定部は、前記展開される回路データの展開先領域を示す第１情報と、前記所望の回路データの展開先領域を示す第２情報とを比較することにより、前記展開される回路データが前記所望の回路データであるか否かを判定する、
請求項１に記載のコンフィグレーション制御装置。
【請求項３】
前記複数の領域の各々は、第１フレーム群と、前記第１フレーム群に後続する第２フレーム群とを含み、
前記判定部は、前記データ制御部が前記第１情報を前記第１フレーム群に書き込む第１書込処理を行った後で、かつ、前記データ制御部が前記展開される回路データを前記第２フレーム群に書き込む第２書込処理を行う前に、前記第１情報を前記第１フレーム群から取得する、
請求項２に記載のコンフィグレーション制御装置。
【請求項４】
前記データ制御部は、
前記展開される回路データが前記所望の回路データであると判定された場合には、前記第１書込処理後に前記第２書込処理を実行し、
前記展開される回路データが前記所望の回路データでないと判定された場合には、前記第１書込処理後の前記第２書込処理を中止する、
請求項３に記載のコンフィグレーション制御装置。
【請求項５】
パーシャルコンフィグレーションが可能なプログラマブルデバイスのコンフィグレーションを制御するコンフィグレーション制御方法において、
前記プログラマブルデバイスの複数の領域のいずれかに展開される回路データが、所望の展開先領域を指定された所望の回路データであるか否かを、前記展開される回路データが前記プログラマブルデバイスに書き込まれる前に判定し、
判定結果に応じて、前記展開される回路データの前記プログラマブルデバイスへの書き込みをするか否かを制御する、
コンフィグレーション制御方法。
【請求項６】
パーシャルコンフィグレーションが可能なプログラマブルデバイスのコンフィグレーションを制御するコンフィグレーション制御プログラムにおいて、
前記プログラマブルデバイスの複数の領域のいずれかに展開される回路データが、所望の展開先領域を指定された所望の回路データであるか否かを、前記展開される回路データが前記プログラマブルデバイスに書き込まれる前に判定し、
判定結果に応じて、前記展開される回路データの前記プログラマブルデバイスへの書き込みをするか否かを制御する、
処理をプロセッサに実行させるコンフィグレーション制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンフィグレーション制御装置、コンフィグレーション制御方法及びコンフィグレーション制御プログラムに関する。
【背景技術】
【０００２】
近年、ＦＰＧＡ（Field  Programmable  Gate  Array）に代表される、多くの種類のプログラマブルデバイスが提供されている。論理回路を自由に設計できるＦＰＧＡを動作させるために、ＦＰＧＡに回路データを書き込む「コンフィグレーション」と呼ばれる初期設定がＦＰＧＡに対して行われる。
【０００３】
また、ＦＰＧＡにおいて回路データを書き込み可能な領域（以下では「ＦＰＧＡ領域」と呼ばれることがある）を複数に分割し、各領域毎に互いに異なる回路を組み込む「パーシャルコンフィグレーション」と呼ばれる技術がある。分割された各領域は「ポート（port）」と呼ばれることがある。
【０００４】
パーシャルコンフィグレーションが知られる前は、複数種類の回路が組み込まれたＦＰＧＡにおいては、一つの回路を変更する場合でもＦＰＧＡ全体をコンフィグレーションしていた。このため、回路の変更にあたっては、ＦＰＧＡのすべての回線接続を一旦切断してＦＰＧＡを非運用状態にしていた。
【０００５】
これに対し、パーシャルコンフィグレーションが可能になったことにより、任意のポートの回路を変更したい場合、他のポートへ影響を与えることなく、その任意のポートの回路変更が可能となった。すなわち、パーシャルコンフィグレーションを用いると、任意のポートの回路を変更したい場合、その任意のポートのみコンフィグレーションが行える。よって、パーシャルコンフィグレーションを用いると、ＦＰＧＡにおいて回路変更対象のポートのみを非運用状態とすればよく、他のポートの運用状態を維持できる。
【０００６】
パーシャルコンフィグレーションでは、複数種類の回路にそれぞれ対応した複数の回路データが複数のポート毎に用意される。また、これら複数の回路データは、ＦＰＧＡと同一基板上に装着される、例えばフラッシュメモリ等のＲＯＭに予め格納される。このため、回路データは「ＲＯＭデータ」と呼ばれることがある。
【０００７】
また、従来、ＲＯＭへのデータ格納時のエラー等によるＲＯＭデータの破壊に備え、コンフィグレーション前後においてＣＲＣ等によるデータチェックを行ってＲＯＭデータが正常か否か検証することが一般に行われている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−２３６４８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
図１に、パーシャルコンフィグレーションにおけるＦＰＧＡ領域の一例を示す。図１には、ＦＰＧＡ領域をポート１〜４の４つの領域に分割した場合を示す。よって、図１に示すＦＰＧＡでは、ポート１〜４の各ポート毎にパーシャルコンフィグレーションを行うことができる。
【００１０】
図２に、パーシャルコンフィグレーション用のＲＯＭデータ領域マップの一例を示す。ポート１〜４の４つのポートに対しそれぞれ異なる回路（Ａ回路〜Ｄ回路）を用意する場合、図２に示すように、１６種類のＲＯＭデータがＲＯＭのアドレスに対応させてＲＯＭに格納される。すなわち、Ａ回路をポート１〜４の４つのポートへコンフィグレーションするには、Ａ回路について、各ポートにそれぞれ対応した４種類のＲＯＭデータが用意される。Ｂ〜Ｄ回路についても同様である。
【００１１】
図３に、コンフィグレーション構成の一例を示す。図３では、ポート１にＡ回路データを、ポート２にＢ回路データを、ポート３にＣ回路データを、ポート４にＤ回路データをそれぞれコンフィグレーションする場合を示す。
【００１２】
ＦＰＧＡの利用者（以下では「利用者」と省略して呼ぶ）は、実現したい機能に基づいて、各ポートへのコンフィグレーション対象データをＲＯＭのアドレスを用いて指定する。これにより、利用者は、任意のポートに対するコンフィグレーションの実行を指示する。この指示に従って、指定されたアドレスに格納されているＲＯＭデータがＦＰＧＡの各ポートに展開される。各ポートにそれぞれ対応した各ＲＯＭデータは、固有の位置情報を有している。固有の位置情報は、例えば、展開先のポート番号、または、展開先の領域を示すアドレス等である。よって、ポート１用のＡ回路データはＦＰＧＡのポート１に、ポート２用のＢ回路データはＦＰＧＡのポート２に展開されコンフィグレーションされる。同様に、ポート３用のＣ回路データはＦＰＧＡのポート３に、ポート４用のＤ回路データはＦＰＧＡのポート４に展開されコンフィグレーションされる。
【００１３】
ここで、ＲＯＭへの回路データの格納は、利用者の人為的な操作によって行われる。よって、利用者は、ＲＯＭへ回路データを格納する際に、格納したいアドレスに別のポート用の回路データを誤って書き込んでしまう可能性がある。すなわち、各ポート用の回路データと、ＲＯＭのアドレスとの対応関係が、利用者の意図とは異なるものになってしまう可能性がある。
【００１４】
上述したＣＲＣ等によるデータチェックは、ＲＯＭデータが壊れているか否かを検証するものである。よって、このようなデータチェックでは、誤ったアドレスに書き込まれたデータについては、データ自体が壊れていなければ、エラーと判断されない。
【００１５】
図４に、ＲＯＭデータの格納の一例を示す。ここでは、ＲＯＭにおける正しい格納状態として、ポート３用のＢ回路データがアドレス0x6000〜0x6FFFに書き込まれ、ポート４用のＢ回路データがアドレス0x7000〜0x7FFFに書き込まれることを想定する（図４左図）。これに対し、利用者は、ポート４用のＢ回路データをアドレス0x6000〜0x6FFFに誤って書き込み、ポート３用のＢ回路データがアドレス0x7000〜0x7FFFに誤って書き込んでしまったとする（図４右図）。
【００１６】
図４右図に示すような誤った書き込みが行われた場合の、ＲＯＭデータの展開の一例を図５に示す。図５に示すように、利用者は、ポート３の回路をＣ回路からＢ回路に変更したい場合、ＲＯＭは正しい格納状態にあると思い込み、アドレス0x6000〜0x6FFFを指定する。しかし、このアドレス0x6000〜0x6FFFには図４右図に示すようにポート４用のＢ回路データが格納されている。よって、このアドレス指定によるコンフィグレーションがなされると、ポート４用のＢ回路データが有する固有の位置情報に従って、ポート４用のＢ回路データがＦＰＧＡのポート４に展開される。つまり、ポート４については、利用者が回路の変更を意図しないにもかかわらず、すなわち、変更予定がないのに、Ｄ回路からＢ回路に変更されてしまう。一方で、ポート３については、利用者がＣ回路からＢ回路に変更したいにもかかわらず、すなわち、変更予定があるのに、Ｃ回路のままとなる。利用者は、ＲＯＭは正しい格納状態にあると思い込んでいるため、図５に示すコンフィグレーションを行うに際し、ポート３を非運用状態にする一方で、ポート４の運用状態を継続する。よって、ポート４については、運用状態にあるままコンフィグレーションが実行されてしまう。このため、ポート４の回路データは破壊されてしまい、ポート４において実現されていた機能が中断されてしまう。例えば、ポート４の回路により、ＷＤＭ、ＳＯＮＥＴまたイーサネット（登録商標）等の通信機能が実現される場合には、コンフィグレーションが、通信回線の切断等の通信異常の発生の原因となって、回線サービスに大きな影響を与えてしまう。
【００１７】
開示の技術は、上記に鑑みてなされたものであって、利用者の意図しない誤った回路データがＦＰＧＡに書き込まれてしまうことを防止できるコンフィグレーション制御装置、コンフィグレーション制御方法及びコンフィグレーション制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１８】
開示の態様のコンフィグレーション制御装置は、パーシャルコンフィグレーションが可能なプログラマブルデバイスのコンフィグレーションを制御するコンフィグレーション制御装置において、前記プログラマブルデバイスの複数の領域のいずれかに展開される回路データが、所望の展開先領域を指定された所望の回路データであるか否かを、前記展開される回路データが前記プログラマブルデバイスに書き込まれる前に判定する判定部と、前記判定部での判定結果に応じて、前記展開される回路データの前記プログラマブルデバイスへの書き込みをするか否かを制御するデータ制御部と、を具備する。
【発明の効果】
【００１９】
開示の態様によれば、利用者の意図しない誤った回路データがＦＰＧＡに書き込まれてしまうことを防止できる。
【図面の簡単な説明】
【００２０】
【図１】図１は、ＦＰＧＡ領域の一例を示す図である。
【図２】図２は、ＲＯＭデータ領域マップの一例を示す図である。
【図３】図３は、コンフィグレーション構成の一例を示す図である。
【図４】図４は、ＲＯＭデータの格納の一例を示す図である。
【図５】図５は、ＲＯＭデータの展開の一例を示す図である。
【図６】図６は、一実施例のコンフィグレーション制御装置の構成例を示すブロック図である。
【図７】図７は、一実施例のＲＯＭデータ管理情報の一例を示す図である。
【図８】図８は、一実施例のＦＰＧＡの領域分割の一例を示す図である。
【図９】図９は、一実施例のＦＰＧＡの一例を示す機能ブロック図である。
【図１０】図１０は、一実施例のデータストリーム制御部の構成例を示すブロック図である。
【図１１】図１１は、一実施例のコンフィグレーション制御装置の動作の説明に供する図である。
【発明を実施するための形態】
【００２１】
以下に、本願の開示するコンフィグレーション制御装置、コンフィグレーション制御方法及びコンフィグレーション制御プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例により本願の開示するコンフィグレーション制御装置、コンフィグレーション制御方法及びコンフィグレーション制御プログラムが限定されるものではない。また、実施例において同一の機能を有する構成には同一の符号を付し、重複する説明は省略される。
【００２２】
［実施例］
図６は、一実施例のコンフィグレーション制御装置の構成例を示すブロック図である。図６において、コンフィグレーション制御装置１００は、アドレス制御部１０１と、データストリーム制御部１０２と、正誤判定部１０３とを有する。
【００２３】
コンフィグレーション制御装置１００は、監視装置２００、ＲＯＭ３００及びＦＰＧＡ４００と接続されて使用される。
【００２４】
ＦＰＧＡ４００は、パーシャルコンフィグレーションが可能なＦＰＧＡである。すなわち、ＦＰＧＡ４００は複数に分割されたＦＰＧＡ領域を有する。
【００２５】
ＲＯＭ３００には、予め利用者によって、各ポート毎及び各回路毎の複数種類のＲＯＭデータがＲＯＭ３００のアドレスに対応させて格納されている。例えばＦＰＧＡ４００がポート１〜４の４つのポートを有する場合、上記図２に示すように、１６種類のＲＯＭデータがＲＯＭのアドレスに対応させてＲＯＭ３００に格納されている。
【００２６】
また、本実施例のＲＯＭデータは、図７に示すような「ＲＯＭデータ管理情報」を有する。すなわち、本実施例のＲＯＭデータは、ＲＯＭデータ管理情報と、回路データとを含む。
【００２７】
ＲＯＭデータ管理情報は、例えば図７に示すように、回路種別と、ポート番号と、変更版数とを含む。「回路種別」は、回路データの種別を示すものである。「ポート番号」は、ＲＯＭデータの展開先領域を示すものである。「変更版数」は、同一種別の回路データの版数を示すものである。
【００２８】
例えば上記図５に示す例では、アドレス0x6000〜0x6FFFに格納された、ポート４用のＢ回路データは、回路種別「Ｂ」，ポート番号「４」，変更版数「ＸＸ」のＲＯＭデータ管理情報を有する。また、アドレス0x7000〜0x7FFFに格納された、ポート３用のＢ回路データは、回路種別「Ｂ」，ポート番号「３」，変更版数「ＹＹ」のＲＯＭデータ管理情報を有する。ここで、ＲＯＭ３００には、上記図４右図に示すような誤った書き込みが行われているとする。すなわち、本来アドレス0x6000〜0x6FFFに格納されるべきポート３用のＲＯＭデータが誤って0x7000〜0x7FFFに格納されている。また、本来アドレス0x7000〜0x7FFFに格納されるべきポート４用のＲＯＭデータが誤って0x6000〜0x6FFFに格納されている。
【００２９】
なお、ＲＯＭ３００は、例えばフラッシュメモリ等の書き換え可能なメモリである。
【００３０】
監視装置２００は、利用者がＦＰＧＡ４００の各ポートに対してコンフィグレーションを行う場合に、所望のポートに対するコンフィグレーションの実行を指示するためのものである。利用者は、所望のポートと、その所望のポートに展開したい所望の回路種別とを監視装置２００を用いて指定することにより、コンフィグレーションの実行を指示する。所望のポートは、例えばポート１〜４のいずれか一つのポートである。また、所望の回路種別は、例えばＡ回路〜Ｄ回路のいずれか一つの回路である。
【００３１】
なお、コンフィグレーション制御装置１００、ＲＯＭ３００及びＦＰＧＡ４００は同一基板上に配置される。
【００３２】
監視装置２００は、利用者からコンフィグレーションの実行指示を受け付けると、コンフィグレーション開始要求をアドレス制御部１０１に出力する。このコンフィグレーション開始要求には、所望のポートと所望の回路種別との組み合わせを示すモード情報、及び、コンフィグレーション開始トリガが含まれる。
【００３３】
また、監視装置２００は、ＲＯＭ３００に格納されている各ＲＯＭデータのＲＯＭデータ管理情報を記憶している。監視装置２００は、利用者からコンフィグレーションの実行指示を受け付けると、所望のポートと所望の回路種別との組み合わせに対応するＲＯＭデータ管理情報を正誤判定部１０３に出力する。
【００３４】
例えば利用者が所望のポートをポート３、所望の回路種別をＢ回路と指定すると、監視装置２００は、回路種別「Ｂ」，ポート番号「３」，変更版数「ＹＹ」のＲＯＭデータ管理情報を正誤判定部１０３に出力する。
【００３５】
アドレス制御部１０１は、上記図２に示すようなＲＯＭデータ領域マップを有する。アドレス制御部１０１は、入力されたコンフィグレーション開始トリガに従って、入力されたモード情報に基づいてＲＯＭデータ領域マップを参照する。そして、アドレス制御部１０１は、ＲＯＭ３００に格納されているＲＯＭデータのうち、所望のポート及び所望の回路種別に対応する特定のＲＯＭデータの先頭アドレスを判別する。
【００３６】
例えば所望のポートがポート３、所望の回路種別がＢ回路である場合、アドレス制御部１０１は、上記図２に示すＲＯＭデータ領域マップにおいて、ポート３用のＢ回路データの先頭アドレスを「0x6000」と判別する。
【００３７】
そして、アドレス制御部１０１は、判別した先頭アドレスを初期値として、指定アドレスを順次インクリメントしながら、リード信号及び指定アドレスを読み出し要求としてＲＯＭ３００に出力する。
【００３８】
また、アドレス制御部１０１は、データストリーム制御部１０２からＦＰＧＡ４００へのデータの出力を制御するための「コンフィグレーション停止信号」をデータストリーム制御部１０２に出力する。コンフィグレーション停止信号は通常イネーブル状態にある。アドレス制御部１０１は、監視装置２００からコンフィグレーション開始トリガが入力されると、コンフィグレーション停止信号をディセーブル状態にする。
【００３９】
ＲＯＭ３００は、入力される読み出し要求に従って、ＲＯＭデータのうち指定アドレスに対応するデータをデータストリーム制御部１０２に出力する。
【００４０】
データストリーム制御部１０２は、アドレス制御部１０１から入力されるコンフィグレーション停止信号に従って、ＦＰＧＡ４００へのデータ出力を制御する。すなわち、コンフィグレーション停止信号が「イネーブル」のときは、データストリーム制御部１０２は、ＲＯＭ３００から入力されるデータのＦＰＧＡ４００への出力を停止する。一方で、コンフィグレーション停止信号が「ディセーブル」のときは、データストリーム制御部１０２は、ＲＯＭ３００から入力されるデータをコンフィグレーションデータストリームとしてＦＰＧＡ４００へ出力する。
【００４１】
また、データストリーム制御部１０２は、ＲＯＭデータのうちＲＯＭデータ管理情報をＦＰＧＡ４００に出力した時点で、アドレス制御部１０１に対し、コンフィグレーション停止信号をイネーブル状態にするとともに、指定アドレスのインクリメントを一旦停止するように要求する。この要求に従って、アドレス制御部１０１は、コンフィグレーション停止信号をイネーブル状態にするとともに、指定アドレスのインクリメントを一旦停止する。指定アドレスのインクリメントの停止により、ＲＯＭ３００からデータストリーム制御部１０２へのデータ出力も停止する。つまり、ＲＯＭデータのうち、ＲＯＭデータ管理情報がＦＰＧＡ４００に出力された時点で、回路データがＦＰＧＡ４００に出力される前に、データストリーム制御部１０２からＦＰＧＡ４００へのデータ出力が一旦停止する。
【００４２】
ここで、ＲＯＭデータのフレーム構成について説明する。図８は、一実施例のＦＰＧＡ４００の領域分割の一例を示す図である。
【００４３】
本実施例では、図８に示すように、ＦＰＧＡ４００内の領域は、ポート１〜４の４つのコンフィグレーション対象領域と、インタフェース部５の１つのコンフィグレーション対象外領域とに分けられる。また、ポート１〜４の各コンフィグレーション対象領域はそれぞれＮ個のフレームで構成される。１個のフレームはパーシャルコンフィグレーションを行なえる最小回路単位である。各ポートに大きな回路が構成される場合は、最小回路単位であるフレームが複数個連結してコンフィグレーションが実行される。
【００４４】
また、本実施例では、１つのコンフィグレーション対象領域は、先頭フレーム群と、残フレーム群とに分けられる。例えば、ポート１を構成するＮ個のフレームは、第一〜第三フレームからなる先頭フレーム群１１と、第四〜第Ｎフレームからなる残フレーム群１２とに分けられる。同様に、ポート２を構成するＮ個のフレームは先頭フレーム群２１と残フレーム群２２とに分けられ、ポート３を構成するＮ個のフレームは先頭フレーム群３１と残フレーム群３２とに分けられ、ポート４を構成するＮ個のフレームは先頭フレーム群４１と残フレーム群４２とに分けられる。
【００４５】
先頭フレーム群１１，２１，３１，４１には、ＲＯＭデータのうちのＲＯＭデータ管理情報が展開される。すなわち、ポート１の先頭フレーム群１１には、ポート番号「１」を有するＲＯＭデータ管理情報が展開される。同様に、ポート２の先頭フレーム群２１には、ポート番号「２」を有するＲＯＭデータ管理情報が展開される。また、ポート３の先頭フレーム群３１には、ポート番号「３」を有するＲＯＭデータ管理情報が展開される。また、ポート４の先頭フレーム群４１には、ポート番号「４」を有するＲＯＭデータ管理情報が展開される。つまり、先頭フレーム群には、ＲＯＭデータのうちＦＰＧＡ４００の運用に影響を与えないＲＯＭデータ管理情報が展開される。一方で、残フレーム群１２，２２，３２，４２には、ＲＯＭデータのうちＦＰＧＡ４００の運用に影響を与える回路データが展開される。
【００４６】
例えば所望のポートがポート３、所望の回路種別がＢ回路である場合、上述したように、ポート３用のＢ回路データの先頭アドレスは「0x6000」と判別される。また、上述したように、ＲＯＭ３００のアドレス0x6000〜0x6FFFには、誤ってポート４用のＲＯＭデータが格納されている。よって、先頭フレーム群１１，２１，３１，４１のうち、先頭フレーム群４１に回路種別「Ｂ」，ポート番号「４」，変更版数「ＸＸ」のＲＯＭデータ管理情報が展開される。
【００４７】
ＦＰＧＡ４００において、ポート１〜４の各コンフィグレーション対象領域は、インタフェース部５を介して、データストリーム制御部１０２及び正誤判定部１０３と接続される。インタフェース部５は、正誤判定部１０３からのＲＯＭデータ管理情報読み出し要求に応じて、先頭フレーム群１１，２１，３１，４１のいずれかからＲＯＭデータ管理情報を読み出して正誤判定部１０３に出力する。
【００４８】
データストリーム制御部１０２は、先頭フレーム群のデータ、すなわち、ＲＯＭデータ管理情報をＦＰＧＡ４００にコンフィグレーションデータストリームとして出力した時点で、情報取得要求を正誤判定部１０３に出力する。データストリーム制御部１０２は、ＲＯＭデータ管理情報を展開した先頭フレーム群に対応するＦＰＧＡ４００内のアドレス（以下では「ＲＯＭデータ管理情報展開アドレス」と呼ばれることがある）を情報取得要求に含めて正誤判定部１０３に通知する。
【００４９】
正誤判定部１０３は、入力される情報取得要求に従って、ＲＯＭデータ管理情報読み出し要求をＦＰＧＡ４００に出力する。このＲＯＭデータ管理情報読み出し要求には、データストリーム制御部１０２から通知されたＲＯＭデータ管理情報展開アドレスが含まれる。
【００５０】
例えば上述したように、先頭フレーム群４１に回路種別「Ｂ」，ポート番号「４」，変更版数「ＸＸ」のＲＯＭデータ管理情報が展開された場合、ＲＯＭデータ管理情報展開アドレスは、先頭フレーム群４１に対応するアドレスとなる。
【００５１】
ＦＰＧＡ４００は、入力されるＲＯＭデータ管理情報読み出し要求に従って、ＲＯＭデータ管理情報展開アドレスにあるＲＯＭデータ管理情報を読み出して正誤判定部１０３に出力する。
【００５２】
例えば上述したように、ＲＯＭデータ管理情報展開アドレスが先頭フレーム群４１に対応するアドレスである場合、正誤判定部１０３には、回路種別「Ｂ」，ポート番号「４」，変更版数「ＸＸ」のＲＯＭデータ管理情報が出力される。
【００５３】
図９は、一実施例のＦＰＧＡ４００の一例を示す機能ブロック図である。図９には、ＲＯＭデータ管理情報の読み出しに関係する機能のみを図示する。
【００５４】
図９に示すように、ポート１〜４の各ポートの各先頭フレーム群１１，２１，３１，４１には、バッファとデコーダとを有する読み出し回路が構成される。また、インタフェース部５には、ＯＲ回路５１が構成される。
【００５５】
デコーダ１３，２３，３３，４３は、ＲＯＭデータ管理情報読み出し要求に含まれるＲＯＭデータ管理情報展開アドレスをデコードして判定する。すなわち、デコーダ１３は、入力されるＲＯＭデータ管理情報展開アドレスが先頭フレーム群１１に対応するアドレスか否か判定する。同様に、入力されるＲＯＭデータ管理情報展開アドレスに対し、デコーダ２３は先頭フレーム群２１に対応するアドレスか否か判定し、デコーダ３３は先頭フレーム群３１に対応するアドレスか否か判定し、デコーダ４３は先頭フレーム群４１に対応するアドレスか否か判定する。
【００５６】
例えば、入力されるＲＯＭデータ管理情報展開アドレスが先頭フレーム群４１に対応するアドレスである場合、デコーダ４３はバッファ４４に対して読み出し要求を出力する。
【００５７】
バッファ１４，２４，３４，４４は、デコーダ１３，２３，３３，４３から読み出し要求が入力された場合、対応するＲＯＭデータ管理情報を先頭フレーム群から読み出してＯＲ回路５１に出力する。
【００５８】
例えば、デコーダ４３から読み出し要求を入力されたバッファ４４は、先頭フレーム群４１に展開されたＲＯＭデータ管理情報、すなわち、回路種別「Ｂ」，ポート番号「４」，変更版数「ＸＸ」のＲＯＭデータ管理情報を先頭フレーム群４１から読み出してＯＲ回路５１に出力する。
【００５９】
バッファ１４，２４，３４，４４のいずれかが読み出したＲＯＭデータ管理情報は、ＯＲ回路５１を介して、ＦＰＧＡ４００から正誤判定部１０３に出力される。これにより、正誤判定部１０３は、ＲＯＭデータ管理情報がＦＰＧＡ４００の先頭フレーム群に展開された時点で、その展開されたＲＯＭデータ管理情報を取得することができる。
【００６０】
例えば、ＲＯＭデータ管理情報展開アドレスが先頭フレーム群４１に対応するアドレスである場合、正誤判定部１０３は、ＦＰＧＡ４００から、回路種別「Ｂ」，ポート番号「４」，変更版数「ＸＸ」のＲＯＭデータ管理情報を取得する。
【００６１】
正誤判定部１０３は、監視装置２００から入力された第１のＲＯＭデータ管理情報と、ＦＰＧＡ４００から取得した第２のＲＯＭデータ管理情報とを比較して正誤判定を行う。正誤判定部１０３は、判定結果をデータストリーム制御部１０２及び監視装置２００に出力する。
【００６２】
例えば上述した例では、第１のＲＯＭデータ管理情報は回路種別「Ｂ」，ポート番号「３」，変更版数「ＹＹ」のＲＯＭデータ管理情報である。一方で、第２のＲＯＭデータ管理情報は回路種別「Ｂ」，ポート番号「４」，変更版数「ＸＸ」のＲＯＭデータ管理情報である。
【００６３】
このように第１のＲＯＭデータ管理情報と第２のＲＯＭデータ管理情報とが相違する場合、正誤判定部１０３は、判定結果を「誤」としてデータストリーム制御部１０２に通知する。一方で、第１のＲＯＭデータ管理情報と第２のＲＯＭデータ管理情報とが一致する場合、正誤判定部１０３は、判定結果を「正」としてデータストリーム制御部１０２及び監視装置２００に通知する。
【００６４】
すなわち、上記図４右図に示すように、利用者が、ポート４用のＢ回路データをアドレス0x6000〜0x6FFFに誤って書き込み、ポート３用のＢ回路データがアドレス0x7000〜0x7FFFに誤って書き込んでしまった場合、すなわち、ＲＯＭ３００が誤った格納状態にある場合には、正誤判定部１０３での判定結果は「誤」になる。一方で、上記図４左図に示すように、ポート３用のＢ回路データがアドレス0x6000〜0x6FFFに書き込まれ、ポート４用のＢ回路データがアドレス0x7000〜0x7FFFに書き込まれた場合、すなわち、ＲＯＭ３００が正しい格納状態にある場合には、正誤判定部１０３での判定結果は「正」になる。
【００６５】
データストリーム制御部１０２は、判定結果が「正」のとき、アドレス制御部１０１に対しコンフィグレーション停止信号を再びディセーブル状態にするとともに、指定アドレスのインクリメントを再開するように要求する。この要求に従って、アドレス制御部１０１は、コンフィグレーション停止信号をディセーブル状態にするとともに、指定アドレスのインクリメントを再開する。よって、正誤判定部１０３での判定結果が「正」のときは、ＲＯＭデータのうち回路データがＲＯＭデータ管理情報に続いてＲＯＭ３００から読み出され、データストリーム制御部１０２を介してＦＰＧＡ４００にコンフィグレーションデータストリームとして出力される。よって、正誤判定部１０３での判定結果が「正」のときは、所望のポートの残フレーム群に回路データが展開されて、残フレーム群のコンフィグレーションが実行される。これにより、所望のポートのコンフィグレーションが正常終了する。
【００６６】
一方で、正誤判定部１０３は、判定結果が「誤」のときは、判定結果を「誤」としてデータストリーム制御部１０２及び監視装置２００に通知するとともに、コンフィグレーションを強制的に終了させる。
【００６７】
なお、監視装置２００に対し判定結果が「誤」と通知されると、利用者は、ＲＯＭ３００へＲＯＭデータを格納した際に、格納したいアドレスに別のポート用のＲＯＭデータを誤って書き込んでしまったと認識できる。そこで、利用者は、ＲＯＭ３００でのＲＯＭデータの格納状態を見直して、各ポート用のＲＯＭデータと、ＲＯＭ３００のアドレスとの対応関係が利用者の意図と一致するように、ＲＯＭデータの格納状態を修正することができる。
【００６８】
図１０は、一実施例のデータストリーム制御部の構成例を示すブロック図である。図１０において、データストリーム制御部１０２は、ＣＲＣ演算部５０１と、エンドフレーム生成部５０２と、選択部５０３と、インタフェース部５０４とを有する。
【００６９】
ＣＲＣ演算部５０１及び選択部５０３には、ＲＯＭ３００からＲＯＭデータが入力される。
【００７０】
ＣＲＣ演算部５０１は、ＲＯＭデータのうち先頭フレーム群のデータ、すなわち、ＲＯＭデータ管理情報に対しＣＲＣ演算を行って、ＣＲＣ演算値をエンドフレーム生成部５０２に出力する。
【００７１】
エンドフレーム生成部５０２は、ＣＲＣ演算値を含むエンドフレームデータを生成し、生成したエンドフレームデータを選択部５０３に出力する。
【００７２】
選択部５０３は、ＲＯＭデータのうち先頭フレーム群のデータをインタフェース部５０４に出力する。また、選択部５０３は、ＲＯＭデータのうち残フレーム群のデータ、すなわち、回路データについては、正誤判定部１０３での判定結果に応じて、残フレーム群のデータまたはエンドフレームデータのいずれかを選択してインタフェース部５０４に出力する。すなわち、選択部５０３は、正誤判定部１０３での判定結果が「正」のときは、残フレーム群のデータを選択してインタフェース部５０４に出力する。一方で、選択部５０３は、正誤判定部１０３での判定結果が「誤」のときは、エンドフレームデータを選択してインタフェース部５０４に出力する。
【００７３】
インタフェース部５０４は、アドレス制御部１０１から入力されるコンフィグレーション停止信号がディセーブル状態にあるとき、選択部５０３で選択されたデータをコンフィグレーションデータストリームとしてＦＰＧＡ４００に出力する。
【００７４】
図１１は、一実施例のコンフィグレーション制御装置の動作の説明に供する図である。図１１には、ＲＯＭデータがＮ個のフレームで構成される場合を示す。図１１（１）には、ＲＯＭ３００でのＲＯＭデータ格納時のフレーム状態を示す。図１１（２）には、ＲＯＭ３００からデータストリーム制御部１０２へのＲＯＭデータ転送時のフレーム状態を示す。図１１（３）には、コンフィグレーション停止信号の状態を示す。図１１（４）には、ＦＰＧＡ４００のコンフィグレーション状態信号の状態を示す。
【００７５】
図１１（１）に示すように、ＲＯＭデータは、フレーム末尾にエンドフレームを付加して構成される。また、第一〜第三フレームにより先頭フレーム群が構成され、第四〜第Ｎフレームにより残フレーム群が構成される。先頭フレーム群には、ＲＯＭデータのうちのＲＯＭデータ管理情報が含まれる。残フレーム群には、ＲＯＭデータのうちの回路データが含まれる。
【００７６】
図１１（３）に示すように、先頭フレーム群に対しては、コンフィグレーション停止信号はディセーブル状態をとる。よって、先頭フレーム群はＦＰＧＡ４００に書き込まれて展開される。すなわち、第一段階のコンフィグレーションとして、ＲＯＭデータ管理情報がＦＰＧＡ４００の第一〜第三フレーム（先頭フレーム群）に展開される。
【００７７】
ＲＯＭデータ管理情報のコンフィグレーションが実行された後、コンフィグレーション停止信号はディセーブル状態からイネーブル状態に変化する。よって、ＲＯＭデータ管理情報がＦＰＧＡ４００の先頭フレーム群に展開された時点で、ＲＯＭ３００からデータストリーム制御部１０２へのＲＯＭデータの転送は停止する。これにより、ＲＯＭデータのＦＰＧＡ４００への書き込みも停止する。つまり、第一段階のコンフィグレーションが終了した時点では、未だ、回路データのＦＰＧＡ４００への書き込みは行われていない。
【００７８】
ここで、ＦＰＧＡ４００では、エンドフレームを待つことなく、各フレームの書き込み順に回路が順次構成される。このため、ＦＰＧＡ４００は、コンフィグレーションの完了（ＤＯＮＥ）前に、第一〜第Ｎフレームのうち一部のフレームのＲＯＭデータが書き込まれた時点で回路を動作させることができる。よって、回路データがコンフィグレーションされる前でも、ＲＯＭデータ管理情報がコンフィグレーションされた時点で、ＦＰＧＡ４００からＲＯＭデータ管理情報を読み出すことができる。
【００７９】
そこで、ＲＯＭデータのＦＰＧＡ４００への書き込みが停止している間、すなわち、ＷＡＩＴ期間に、ＲＯＭデータ管理情報に対して、正誤判定部１０３での上述した一連の正誤判定が行われる。すなわち、ＷＡＩＴ期間に、正誤判定部１０３は、入力される情報取得要求に従って、ＲＯＭデータ管理情報読み出し要求をＦＰＧＡ４００に出力する。ＦＰＧＡ４００は、入力されるＲＯＭデータ管理情報読み出し要求に従って、ＲＯＭデータ管理情報展開アドレスにある第２のＲＯＭデータ管理情報を読み出して正誤判定部１０３に出力する。正誤判定部１０３は、監視装置２００から入力された第１のＲＯＭデータ管理情報と、ＦＰＧＡ４００から取得した第２のＲＯＭデータ管理情報とを比較して正誤判定を行う。正誤判定部１０３は、判定結果をデータストリーム制御部１０２及び監視装置２００に出力する。
【００８０】
正誤判定部１０３での判定結果が「正」のとき、コンフィグレーション停止信号はイネーブル状態からディセーブル状態に変化する。よって、判定結果が「正」のとき、ＷＡＩＴ期間は終了し、ＲＯＭ３００からデータストリーム制御部１０２へのＲＯＭデータの転送が再開する。これにより、ＲＯＭデータのＦＰＧＡ４００への書き込みも再開する。すなわち、第二段階のコンフィグレーションとして、回路データがＦＰＧＡ４００の第四〜第Ｎフレーム（残フレーム群）に展開される。そして、ＲＯＭ３００に格納されていたエンドフレームがデータストリーム制御部１０２を介してＦＰＧＡ４００に出力される。これにより、判定結果が「正」のときは、第二段階のコンフィグレーションが終了した時点、すなわち、回路データがＦＰＧＡ４００の残フレーム群に展開された時点で、コンフィグレーションは正常終了する。
【００８１】
正誤判定部１０３での判定結果が「誤」のとき、コンフィグレーション停止信号はイネーブル状態を維持する。また、エンドフレーム生成部５０２で生成されたエンドフレームがＦＰＧＡ４００に出力される。これにより、判定結果が「誤」のときは、第一段階のコンフィグレーションが終了した時点、すなわち、ＲＯＭデータ管理情報がＦＰＧＡ４００の先頭フレーム群に展開された時点で、コンフィグレーションは強制終了する。
【００８２】
ＦＰＧＡ４００は、エンドフレームを入力された時点で、コンフィグレーションを完了する。ＦＰＧＡ４００は、コンフィグレーション状態になるとコンフィグレーション状態信号（ＤＯＮＥ）をアサートし、コンフィグレーションが完了するとコンフィグレーション状態信号をデアサートする。コンフィグレーションの完了は、ＦＰＧＡ４００へのエンドフレームの入力によってなされる。正誤判定部１０３での判定結果が「誤」のときは、ＲＯＭ３００に格納されているエンドフレームはＦＰＧＡ４００に入力されない。そこで、判定結果が「誤」のときは、エンドフレーム生成部５０２がエンドフレームを生成する。
【００８３】
上述した実施例において説明した各種の処理は、予め用意されたプログラムをＣＰＵ（図示せず）に実行させることによっても実現できる。すなわち、アドレス制御部１０１、データストリーム制御部１０２、正誤判定部１０３、ＣＲＣ演算部５０１、エンドフレーム生成部５０２、選択部５０３、及び、インタフェース部５０４の少なくとも一つによって実行される処理に対応するプログラムが予めメモリに記憶され、各プログラムがＣＰＵへ読み出されてプロセスとして機能してもよい。また、各プログラムは、必ずしも予めメモリに記憶される必要はない。すなわち、例えば、ＣＰＵと接続可能なフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカード、メモリカード等の可搬の記録媒体に各プログラムが予め記録され、各プログラムがＣＰＵへ読み出されてプロセスとして機能してもよい。また例えば、インターネット、ＬＡＮ、ＷＡＮ等を介して無線または有線によりＣＰＵに接続されるコンピュータまたはサーバ等に各プログラムが予め記憶され、各プログラムがＣＰＵへ読み出されてプロセスとして機能してもよい。
【００８４】
以上のように上記実施例によれば、パーシャルコンフィグレーションが可能なＦＰＧＡ４００のコンフィグレーションを制御するコンフィグレーション制御装置１００において、正誤判定部１０３は、ＦＰＧＡ４００の複数のポートのいずれかに展開される回路データが、所望の展開先ポートを指定された所望の回路データであるか否かを、展開される回路データがＦＰＧＡ４００に書き込まれる前に判定する。データストリーム制御部１０２は、正誤判定部１０３での判定結果に応じて、展開される回路データのＦＰＧＡ４００への書き込みをするか否かを制御する。これにより、利用者が所望する回路データと異なる誤った回路データ、すなわち、利用者の意図しない誤った回路データがＦＰＧＡ４００に書き込まれてしまうことを防止できる。
【００８５】
また、上記実施例によれば、正誤判定部１０３は、展開される回路データの展開先領域を示すポート番号と、所望の回路データの展開先領域を示すポート番号とを比較することにより、展開される回路データが所望の回路データであるか否かを判定する。これにより、回路の変更予定がないポートの回路データが変更されてしまうことを防止できる。
【００８６】
また、上記実施例によれば、ＦＰＧＡ４００の複数の領域の各々は、先頭フレーム群と、先頭フレーム群に後続する残フレーム群とを含む。また、データストリーム制御部１０２が、第１書込処理として、展開先ポート番号を先頭フレーム群に書き込んだ後で、かつ、第２書込処理として、展開される回路データを残フレーム群に書き込む前に、正誤判定部１０３は、展開先ポート番号を先頭フレーム群から取得する。これにより、ＦＰＧＡ４００の運用に影響を与えない第１書込処理が行われた時点で、回路データの正誤判定を行うことができる。換言すれば、ＦＰＧＡ４００の運用に影響を与える第２書込処理が行われる前に、回路データの正誤判定を行うことができる。
【００８７】
また、上記実施例によれば、データストリーム制御部１０２は、展開される回路データが所望の回路データであると判定された場合には、第１書込処理後に第２書込処理を実行し、展開される回路データが所望の回路データでないと判定された場合には、第１書込処理後の第２書込処理を中止する。これにより、ＦＰＧＡ４００の運用に影響を与える誤った回路データがＲＯＭ３００から読み出される場合でも、その誤った回路データがＦＰＧＡ４００に書き込まれてしまうことを防止できる。また、展開される回路データが利用者が所望する回路データである場合には、その回路データを所望のポートにコンフィグレーションすることができる。
【００８８】
なお、上記実施例では、プログラマブルデバイスの一例としてＦＰＧＡについて説明した。しかし、開示の技術は、ＦＰＧＡ以外のプログラマブルデバイスに対しても上記同様にして実施可能である。
【００８９】
また、上記実施例では、ＲＯＭデータ管理情報は、回路種別と、ポート番号と、変更版数とを含むものとして説明した（図７）。しかし、利用者が、コンフィグレーションの際に、変更版数の正誤判断を不要とする場合には、ＲＯＭデータ管理情報から変更版数を除いてもよい。
【符号の説明】
【００９０】
１００  コンフィグレーション制御装置
１０１  アドレス制御部
１０２  データストリーム制御部
１０３  正誤判定部
２００  監視装置
３００  ＲＯＭ
４００  ＦＰＧＡ
５０１  ＣＲＣ演算部
５０２  エンドフレーム生成部
５０３  選択部
５０４  インタフェース部
【図１】
2013257640.tif 000003
【図２】
2013257640.tif 000004
【図３】
2013257640.tif 000005
【図４】
2013257640.tif 000006
【図５】
2013257640.tif 000007
【図６】
2013257640.tif 000008
【図７】
2013257640.tif 000009
【図８】
2013257640.tif 000010
【図９】
2013257640.tif 000011
【図１０】
2013257640.tif 000012
【図１１】
2013257640.tif 000013