(57)【要約】【課題】コンフィギュレーションデータの転送誤りが発生して、コンフィギュレーションが失敗しても、再度のコンフィギュレーションでの成功の可能性を高めて、プログラマブルデバイスの可用性を高めることができるようにする。【解決手段】プログラマブルデバイス２によるコンフィギュレーションデータの読み出しが正常に行われない場合、コンフィギュレーションデータの読み出し先を別のアドレス領域に変更するコンフィギュレーション制御回路３を備え、プログラマブルデバイス２が、コンフィギュレーション制御回路３による変更後のアドレス領域からコンフィギュレーションデータの読み出しを再実行する。【選択図】図１
2013143733.tif 000002
【特許請求の範囲】
【請求項１】
回路の構成情報を示すコンフィギュレーションデータを複数のアドレス領域に格納している外部メモリと、上記外部メモリのアドレス領域からコンフィギュレーションデータを読み出し、上記コンフィギュレーションデータにしたがって回路を構成するプログラマブルデバイスと、上記プログラマブルデバイスによるコンフィギュレーションデータの読み出しが正常に行われない場合、上記コンフィギュレーションデータの読み出し先を上記アドレス領域と異なる別のアドレス領域に変更するコンフィギュレーション制御回路とを備え、
上記プログラマブルデバイスは、上記コンフィギュレーション制御回路による変更後のアドレス領域からコンフィギュレーションデータの読み出しを再実行することを特徴とするプログラマブルデバイス装置。
【請求項２】
コンフィギュレーションデータが２つのアドレス領域に格納されており、２つのアドレス領域を示すアドレスのビットパターンの全ビットが互いに反転している関係にある場合、
コンフィギュレーション制御回路は、上記コンフィギュレーションデータの読み出し先を変更する際、変更前のアドレス領域を示すアドレスのビットパターンを全ビット反転し、全ビット反転後のアドレスが示すアドレス領域を変更後のアドレス領域に設定する
ことを特徴とする請求項１記載のプログラマブルデバイス装置。
【請求項３】
コンフィギュレーションデータが２つのアドレス領域に格納されており、２つのアドレス領域を示すアドレスのビットパターンの最上位ビットが互いに反転している関係にある場合、
コンフィギュレーション制御回路は、上記コンフィギュレーションデータの読み出し先を変更する際、変更前のアドレス領域を示すアドレスのビットパターンの最上位ビットを反転し、最上位ビット反転後のアドレスが示すアドレス領域を変更後のアドレス領域に設定する
ことを特徴とする請求項１記載のプログラマブルデバイス装置。
【請求項４】
コンフィギュレーションデータを格納している複数のアドレス領域を示すアドレスの一部がバンクカウンタの値で表される場合、
コンフィギュレーション制御回路は、上記コンフィギュレーションデータの読み出し先を変更する際、上記バンクカウンタの値を変更前のアドレス領域を示すアドレスに加算し、加算後のアドレスが示すアドレス領域を変更後のアドレス領域に設定する
ことを特徴とする請求項１記載のプログラマブルデバイス装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プログラマブルデバイスにおけるコンフィギュレーション動作の安定性を改善して、可用性の高いプログラマブルデバイスを提供するプログラマブルデバイス装置に関するものである。
【背景技術】
【０００２】
プログラマブルデバイスとして、代表的なものにＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ Ａｒｒａｙ）がある。
ＦＰＧＡは、フラッシュメモリなどの外部メモリに保持されているコンフィギュレーションデータ（ＦＰＧＡが実現する回路の構成情報）を読み出し、そのコンフィギュレーションデータにしたがって回路を構成するデバイスであり、外部メモリに保持されているコンフィギュレーションデータを変更することで、ＦＰＧＡのハード機能を変更することが可能である。
【０００３】
ＦＰＧＡは、内部にある電源がＯＮであることを検知した場合、あるいは、外部からの指示を受けた場合に、外部メモリに保持されているコンフィギュレーションデータを読み出すコンフィギュレーション動作を開始する。
このコンフィギュレーション動作において、外部メモリに保持されているコンフィギュレーションデータが誤っている場合や、外部メモリからＦＰＧＡへのコンフィギュレーションデータの転送誤りが発生する場合などでは、ＦＰＧＡへのコンフィギュレーションを完了させることができない。
【０００４】
ＦＰＧＡへのコンフィギュレーションの失敗の対策が以下の特許文献１，２に開示されている。
特許文献１では、不揮発性メモリに格納されているコンフィギュレーションデータに誤りがあるために、コンフィギュレーションが失敗した場合、ＣＰＵが不揮発性メモリに格納されているコンフィギュレーションデータを書き換える技術を開示している。
特許文献２では、ＦＰＧＡがコンフィギュレーションデータをフラッシュメモリに書き込む構成を採用し、そのコンフィギュレーションデータの書き込みに失敗した場合、次回、そのコンフィギュレーションデータのコンフィギュレーションをＦＰＧＡに行うと、コンフィギュレーションを失敗するため、フラッシュメモリに正しい書き込みを行う手段を喪失するという問題を解決する手段を開示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−４４３０３号公報（段落番号［００１４］）
【特許文献２】特開２００５−１９１８７２号公報（段落番号［００２０］）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来のプログラマブルデバイス装置は以上のように構成されているので、特許文献１の場合、コンフィギュレーションが失敗した場合、ＣＰＵが不揮発性メモリに格納されているコンフィギュレーションデータを書き換えるようにしているが、ＣＰＵが自動的に再コンフィギューションを行うものではない。このため、再コンフィギュレーションが完了するまでは、ＦＰＧＡの機能が停止したままであり、ＣＰＵがリセット状態から復帰せずに動作しないという課題があった。
また、引用文献２の場合、フラッシュメモリに正しいデータが書き込まれており、ＦＰＧＡへのコンフィギュレーションを行う際、コンフィギュレーションデータを誤ることを想定していないため、最新のコンフィギュレーションデータを利用することができないことがある課題があった。
【０００７】
この発明は上記のような課題を解決するためになされたもので、コンフィギュレーションデータの転送誤りが発生して、コンフィギュレーションが失敗しても、再度のコンフィギュレーションでの成功の可能性を高めて、プログラマブルデバイスの可用性を高めることができるプログラマブルデバイス装置を得ることを目的とする。
【課題を解決するための手段】
【０００８】
この発明に係るプログラマブルデバイス装置は、回路の構成情報を示すコンフィギュレーションデータを複数のアドレス領域に格納している外部メモリと、外部メモリのアドレス領域からコンフィギュレーションデータを読み出し、そのコンフィギュレーションデータにしたがって回路を構成するプログラマブルデバイスと、プログラマブルデバイスによるコンフィギュレーションデータの読み出しが正常に行われない場合、コンフィギュレーションデータの読み出し先を上記アドレス領域と異なる別のアドレス領域に変更するコンフィギュレーション制御回路とを備え、プログラマブルデバイスが、コンフィギュレーション制御回路による変更後のアドレス領域からコンフィギュレーションデータの読み出しを再実行するようにしたものである。
【発明の効果】
【０００９】
この発明によれば、プログラマブルデバイスによるコンフィギュレーションデータの読み出しが正常に行われない場合、コンフィギュレーションデータの読み出し先を別のアドレス領域に変更するコンフィギュレーション制御回路を備え、プログラマブルデバイスが、コンフィギュレーション制御回路による変更後のアドレス領域からコンフィギュレーションデータの読み出しを再実行するように構成したので、コンフィギュレーションデータの転送誤りが発生して、コンフィギュレーションが失敗しても、再度のコンフィギュレーションでの成功の可能性が高まり、その結果、プログラマブルデバイスの可用性を高めることができる効果がある。
【図面の簡単な説明】
【００１０】
【図１】この発明の実施の形態１によるプログラマブルデバイス装置を示す構成図である。
【図２】この発明の実施の形態１によるプログラマブルデバイス装置のコンフィギュレーション制御回路を示す構成図である。
【図３】この発明の実施の形態１によるプログラマブルデバイス装置の処理内容を示すフローチャートである。
【図４】この発明の実施の形態２によるプログラマブルデバイス装置のコンフィギュレーション制御回路を示す構成図である。
【図５】この発明の実施の形態２によるプログラマブルデバイス装置の処理内容を示すフローチャートである。
【図６】図１に示している外部メモリ１の１／２の容量のメモリを２個使用するプログラマブルデバイス装置に適用するコンフィギュレーション制御回路を示す構成図である。
【図７】この発明の実施の形態３によるプログラマブルデバイス装置のコンフィギュレーション制御回路を示す構成図である。
【図８】この発明の実施の形態３によるプログラマブルデバイス装置の処理内容を示すフローチャートである。
【発明を実施するための形態】
【００１１】
実施の形態１．
図１はこの発明の実施の形態１によるプログラマブルデバイス装置を示す構成図である。
図１において、外部メモリ１は例えばフラッシュメモリなどから構成されており、回路の構成情報を示すコンフィギュレーションデータをアドレス領域１ａ，１ｂに格納している。
図１では、外部メモリ１がコンフィギュレーションデータを２つのアドレス領域１ａ，１ｂに格納している例を示しているが、コンフィギュレーションデータを３つ以上のアドレス領域に格納していてもよい。
【００１２】
この実施の形態１では、アドレス領域１ａを示すアドレスのビットパターンと、アドレス領域１ｂを示すアドレスのビットパターンは、全ビットが互いに反転している関係にあるものとする。
例えば、アドレス領域１ａを示すアドレスのビットパターンが“１１１１００００”であれば、アドレス領域１ｂを示すアドレスのビットパターンが“００００１１１１”であるものとする。
ただし、ビットパターンの全ビットが互いに反転している関係にあることは必須ではなく、あくまでも一例である。
【００１３】
プログラマブルデバイス２は例えばＦＰＧＡなどが該当し、外部メモリ１のアドレス領域１ａからコンフィギュレーションデータを読み出して、そのコンフィギュレーションデータにしたがって回路を構成し、そのコンフィギュレーションデータの読み出しが正常に完了すると、正常に完了した旨を示すコンフィギュレーション完了通知をコンフィギュレーション制御回路３に出力する処理を実施する。
【００１４】
コンフィギュレーション制御回路３はプログラマブルデバイス２によるコンフィギュレーションデータの読み出しが正常に行われない場合、即ち、プログラマブルデバイス２がコンフィギュレーションデータの読み出しを開始してから一定時間を経過しても、プログラマブルデバイス２からコンフィギュレーション完了通知が出力されない場合、そのコンフィギュレーションデータの読み出し先をアドレス領域１ａと異なる別のアドレス領域１ｂに変更する処理を実施する。
なお、プログラマブルデバイス２は、コンフィギュレーション制御回路３によりコンフィギュレーションデータの読み出し先が変更された場合、コンフィギュレーション制御回路３による変更後のアドレス領域１ｂからコンフィギュレーションデータの読み出しを再実行する。
【００１５】
図２はこの発明の実施の形態１によるプログラマブルデバイス装置のコンフィギュレーション制御回路３を示す構成図である。
図２において、コンフィギュレーションアドレス格納部１１は外部メモリ１のアドレス領域１ａを示すアドレス（例えば、“１１１１００００”）を格納しているメモリである。
リトライカウンタ１２はプログラマブルデバイス２によるコンフィギュレーションデータの読み出し処理のリトライ回数を計数するカウンタである。
【００１６】
コンフィギュレーション完了結果判定部１３はタイマ１４がタイムアウトする前にプログラマブルデバイス２からコンフィギュレーション完了通知が出力されない場合、リトライカウンタ１２のカウント値をインクリメントして、コンフィギュレーション完了通知が出力されない旨をコンフィギュレーション制御部１６に通知する。一方、タイマ１４がタイムアウトする前にプログラマブルデバイス２からコンフィギュレーション完了通知が出力された場合、コンフィギュレーションデータの読み出しが正常に完了している旨をコンフィギュレーション制御部１６に通知する処理を実施する。
【００１７】
再コンフィギュレーションカウンタ１５は再コンフィギュレーションの実行回数を計数するカウンタである。
コンフィギュレーション制御部１６はプログラマブルデバイス２がコンフィギュレーションを行う際、コンフィギュレーションアドレス格納部１１に格納されている外部メモリ１のアドレス領域１ａを示すアドレスを反転回路１７を介して外部メモリ１に出力させる一方、プログラマブルデバイス２が再コンフィギュレーションを行う際、コンフィギュレーションアドレス格納部１１に格納されている外部メモリ１のアドレス領域１ａを示すアドレスの全ビットを反転回路１７に反転させて、全ビット反転後のアドレスであるアドレス領域１ｂを示すアドレスを外部メモリ１に出力させる処理を実施する。
【００１８】
反転回路１７はコンフィギュレーション制御部１６の制御の下、コンフィギュレーションアドレス格納部１１に格納されている外部メモリ１のアドレス領域１ａを示すアドレスを外部メモリ１に出力する処理を実施する。あるいは、外部メモリ１のアドレス領域１ａを示すアドレスの全ビットを反転して、全ビット反転後のアドレスであるアドレス領域１ｂを示すアドレスを外部メモリ１に出力する処理を実施する。
図３はこの発明の実施の形態１によるプログラマブルデバイス装置の処理内容を示すフローチャートである。
【００１９】
次に動作について説明する。
プログラマブルデバイス２は、例えば、外部からコンフィギュレーションの開始指示を受けた場合、あるいは、デバイス自身が装備している電源オンの検知機能が電源オンを検知した場合（ステップＳＴ１）、コンフィギュレーション動作を開始する（ステップＳＴ２）。
コンフィギュレーション制御回路３のコンフィギュレーション制御部１６は、プログラマブルデバイス２がコンフィギュレーション動作を開始する際、コンフィギュレーションアドレス格納部１１に格納されている外部メモリ１のアドレス領域１ａを示すアドレスを、反転回路１７を介して、外部メモリ１に出力するとともに、タイマ１４を起動する（ステップＳＴ３）。
【００２０】
これにより、プログラマブルデバイス２は、外部メモリ１のアドレス領域１ａからコンフィギュレーションデータの読み出しを開始し、そのコンフィギュレーションデータの読み出しが正常に完了すれば、そのコンフィギュレーションデータにしたがって回路を構成するとともに、そのコンフィギュレーションデータの読み出しが正常に完了した旨を示すコンフィギュレーション完了通知をコンフィギュレーション制御回路３に出力する。
【００２１】
コンフィギュレーション制御回路３のコンフィギュレーション完了結果判定部１３は、プログラマブルデバイス２からのコンフィギュレーション完了通知の出力を監視し（ステップＳＴ４）、タイマ１４がタイムアウトする前に（ステップＳＴ６）、プログラマブルデバイス２からコンフィギュレーション完了通知が出力された場合、コンフィギュレーションデータの読み出しが正常に完了している旨をコンフィギュレーション制御部１６に通知する。
これにより、コンフィギュレーション制御部１６は、コンフィギュレーションデータの読み出しが正常に完了している旨を上位装置に通知する（ステップＳＴ５）。
以後、プログラマブルデバイス２は、上位装置の指示の下、システム動作を開始する。
【００２２】
コンフィギュレーション完了結果判定部１３は、タイマ１４がタイムアウトする前に（ステップＳＴ６）、プログラマブルデバイス２からコンフィギュレーション完了通知が出力されない場合、リトライカウンタ１２のカウント値をインクリメントして（ステップＳＴ７）、コンフィギュレーション完了通知が出力されない旨をコンフィギュレーション制御部１６に通知する。
コンフィギュレーション制御部１６は、コンフィギュレーション完了結果判定部１３からコンフィギュレーション完了通知が出力されない旨を受けると、リトライカウンタ１２がオーバーフローしているか否かを判定（ステップＳＴ８）、即ち、リトライカウンタ１２のカウント値が示すリトライ回数が規定回数に到達しているか否かを判定し、そのリトライ回数が規定回数に到達していなければ、プログラマブルデバイス２に対して、同じアドレス領域１ａからコンフィギュレーションデータの読み出し処理の再実行を指示する。
これにより、ステップＳＴ２の処理に戻り、プログラマブルデバイス２が、再度、コンフィギュレーション動作を開始する。
【００２３】
コンフィギュレーション制御部１６は、リトライ回数が規定回数に到達していれば、再コンフィギュレーションカウンタ１５のカウント値をインクリメントして（ステップＳＴ９）、再コンフィギュレーションカウンタ１５がオーバーフローしているか否かを判定（ステップＳＴ１０）、即ち、再コンフィギュレーションカウンタ１５のカウント値が示す再コンフィギュレーションの実行回数が規定回数に到達しているか否かを判定する。
コンフィギュレーション制御部１６は、再コンフィギュレーションの実行回数が規定回数に到達していなければ、反転回路１７を制御して、外部メモリ１のアドレス領域１ａを示すアドレスの全ビットを反転させ、全ビット反転後のアドレスであるアドレス領域１ｂを示すアドレスを外部メモリ１に出力させる（ステップＳＴ１１）。また、プログラマブルデバイス２に対して、コンフィギュレーションデータの読み出し処理の再実行を指示する。
これにより、ステップＳＴ２の処理に戻り、プログラマブルデバイス２が、再度、コンフィギュレーション動作を開始する。
【００２４】
コンフィギュレーション制御部１６は、再コンフィギュレーションの実行回数が規定回数に到達していれば、プログラマブルデバイス２が故障している旨を上位装置に通知する（ステップＳＴ１２）。
【００２５】
以上で明らかなように、この実施の形態１によれば、プログラマブルデバイス２によるコンフィギュレーションデータの読み出しが正常に行われない場合、コンフィギュレーションデータの読み出し先を別のアドレス領域に変更するコンフィギュレーション制御回路３を備え、プログラマブルデバイス２が、コンフィギュレーション制御回路３による変更後のアドレス領域からコンフィギュレーションデータの読み出しを再実行するように構成したので、コンフィギュレーションデータの転送誤りが発生して、コンフィギュレーションが失敗しても、再度のコンフィギュレーションでの成功の可能性が高まり、その結果、プログラマブルデバイスの可用性を高めることができる効果を奏する。
即ち、この実施の形態１によれば、外部メモリ１へアクセスするアドレスパターンが変化することにより、配線パターンにクロストークノイズが載ることの影響を避けることができ、正常に外部メモリ１からコンフィギュレーションデータの読み出しを実施することができる。
【００２６】
実施の形態２．
上記実施の形態１では、アドレス領域１ａを示すアドレスのビットパターンと、アドレス領域１ｂを示すアドレスのビットパターンが、全ビット反転している関係にあるものを示したが、この実施の形態２では、アドレス領域１ａを示すアドレスのビットパターンの最上位ビットと、アドレス領域１ｂを示すアドレスのビットパターンの最上位ビットが、互いに反転している関係にあるものとする。
例えば、アドレス領域１ａを示すアドレスのビットパターンが“１０１０１０１０”であれば、アドレス領域１ｂを示すアドレスのビットパターンが“００１０１０１０”であるものとする。
【００２７】
図４はこの発明の実施の形態２によるプログラマブルデバイス装置のコンフィギュレーション制御回路を示す構成図であり、図において、図２と同一符号は同一または相当部分を示すので説明を省略する。
コンフィギュレーション制御部２１はプログラマブルデバイス２がコンフィギュレーションを行う際、コンフィギュレーションアドレス格納部１１に格納されている外部メモリ１のアドレス領域１ａを示すアドレスをＭＳＢ反転回路２２を介して外部メモリ１に出力させる一方、プログラマブルデバイス２が再コンフィギュレーションを行う際、コンフィギュレーションアドレス格納部１１に格納されている外部メモリ１のアドレス領域１ａを示すアドレスの最上位ビットをＭＳＢ反転回路２２に反転させて、最上位ビット反転後のアドレスであるアドレス領域１ｂを示すアドレスを外部メモリ１に出力させる処理を実施する。
【００２８】
ＭＳＢ反転回路２２はコンフィギュレーション制御部２１の制御の下、コンフィギュレーションアドレス格納部１１に格納されている外部メモリ１のアドレス領域１ａを示すアドレスを外部メモリ１に出力する処理を実施する。あるいは、外部メモリ１のアドレス領域１ａを示すアドレスの最上位ビットを反転させて、最上位ビット反転後のアドレスであるアドレス領域１ｂを示すアドレスを外部メモリ１に出力する処理を実施する。
図５はこの発明の実施の形態２によるプログラマブルデバイス装置の処理内容を示すフローチャートである。
【００２９】
次に動作について説明する。
図５のステップＳＴ２１の処理以外は、上記実施の形態１と同様であるため、主にステップＳＴ２１の処理内容を説明する。
コンフィギュレーション制御部２１は、リトライ回数が規定回数に到達していれば、再コンフィギュレーションカウンタ１５のカウント値をインクリメントして（ステップＳＴ９）、再コンフィギュレーションカウンタ１５がオーバーフローしているか否かを判定（ステップＳＴ１０）、即ち、再コンフィギュレーションカウンタ１５のカウント値が示す再コンフィギュレーションの実行回数が規定回数に到達しているか否かを判定する。
【００３０】
コンフィギュレーション制御部２１は、再コンフィギュレーションの実行回数が規定回数に到達していなければ、ＭＳＢ反転回路２２を制御して、外部メモリ１のアドレス領域１ａを示すアドレスの最上位ビット（ＭＳＢ）を反転させ、最上位ビット反転後のアドレスであるアドレス領域１ｂを示すアドレスを外部メモリ１に出力させる（ステップＳＴ２１）。また、プログラマブルデバイス２に対して、コンフィギュレーションデータの読み出し処理の再実行を指示する。
これにより、ステップＳＴ２の処理に戻り、プログラマブルデバイス２が、再度、コンフィギュレーション動作を開始する。
一方、再コンフィギュレーションの実行回数が規定回数に到達していれば、プログラマブルデバイス２が故障している旨を上位装置に通知する（ステップＳＴ１２）。
【００３１】
以上で明らかなように、この実施の形態２によれば、コンフィギュレーション制御回路３が、コンフィギュレーションデータの読み出し先を変更する際、変更前のアドレス領域を示すアドレスのビットパターンの最上位ビットを反転し、最上位ビット反転後のアドレスが示すアドレス領域を変更後のアドレス領域に設定するように構成したので、上記実施の形態１と同様の効果を奏することができる。
予め用意するコンフィギュレーションデータのアドレス構成を、最上位ビット（ＭＳＢ）を除いて同一とすることができるため簡素化が可能になる。
【００３２】
ここで、図６は図１に示している外部メモリ１の１／２の容量のメモリを２個使用するプログラマブルデバイス装置に適用するコンフィギュレーション制御回路３を示す構成図である。図６において、２３はインバータである。
この場合、アドレスの最上位ビット（ＭＳＢ）を使用して、アクセス先の外部メモリを選択（２つの外部メモリのうちのいずれか一方を選択）し、下位のアドレスによって、選択した外部メモリからコンフィギュレーションデータを読み出す構成とする。
このように外部メモリを２個に分離することで、デバイス故障によるコンフィギュレーション失敗の確率を低減することが可能となり、システムの可用性を向上させることが可能となる。
【００３３】
実施の形態３．
上記実施の形態１，２では、外部メモリ１がコンフィギュレーションデータを２つのアドレス領域１ａ，１ｂに格納しているものを示したが、外部メモリ１がコンフィギュレーションデータをＮ（Ｎは２以上の整数）個のアドレス領域に格納していてもよい。
この実施の形態３では、コンフィギュレーションデータを格納している複数のアドレス領域を示すアドレスの一部が図７のバンクカウンタ３２のカウンタ値で表されるものとする。
【００３４】
図７はこの発明の実施の形態３によるプログラマブルデバイス装置のコンフィギュレーション制御回路を示す構成図であり、図において、図２と同一符号は同一または相当部分を示すので説明を省略する。
コンフィギュレーション制御部３１はプログラマブルデバイス２がコンフィギュレーションを行う際、コンフィギュレーションアドレス格納部１１に格納されている外部メモリ１を示すアドレス領域のアドレスを外部メモリ１に出力させる一方、プログラマブルデバイス２が再コンフィギュレーションを行う際、バンクカウンタ３２のカウント値を変更前のアドレス領域を示すアドレスに加算し、加算後のアドレスを外部メモリ１に出力させる処理を実施する。
バンクカウンタ３２は複数のアドレス領域を示すアドレスの一部をカウント値として有するカウンタである。
図８はこの発明の実施の形態３によるプログラマブルデバイス装置の処理内容を示すフローチャートである。
【００３５】
次に動作について説明する。
図８のステップＳＴ３１，ＳＴ３２の処理以外は、上記実施の形態１と同様であるため、主にステップＳＴ３１，ＳＴ３２の処理内容を説明する。
ただし、この実施の形態３では、再コンフィギュレーションカウンタ１５を実装していないため、再コンフィギュレーションカウンタ１５に係る処理は行われない。
【００３６】
コンフィギュレーション完了結果判定部１３は、タイマ１４がタイムアウトする前に（ステップＳＴ６）、プログラマブルデバイス２からコンフィギュレーション完了通知が出力されない場合、リトライカウンタ１２のカウント値をインクリメントして（ステップＳＴ７）、コンフィギュレーション完了通知が出力されない旨をコンフィギュレーション制御部３１に通知する。
コンフィギュレーション制御部３１は、コンフィギュレーション完了結果判定部１３からコンフィギュレーション完了通知が出力されない旨を受けると、リトライカウンタ１２がオーバーフローしているか否かを判定（ステップＳＴ８）、即ち、リトライカウンタ１２のカウント値が示すリトライ回数が規定回数に到達しているか否かを判定し、そのリトライ回数が規定回数に到達していなければ、プログラマブルデバイス２に対して、同じアドレス領域１ａからコンフィギュレーションデータの読み出し処理の再実行を指示する。
これにより、ステップＳＴ２の処理に戻り、プログラマブルデバイス２が、再度、コンフィギュレーション動作を開始する。
【００３７】
コンフィギュレーション制御部３１は、リトライ回数が規定回数に到達していれば、バンクカウンタ３２のカウント値をインクリメントして（ステップＳＴ３１）、バンクカウンタ３２がオーバーフローしているか否かを判定する（ステップＳＴ３２）。
コンフィギュレーション制御部３１は、バンクカウンタ３２がオーバーフローしていなければ、バンクカウンタ３２のカウント値を前回外部メモリ２に出力しているアドレスに加算し、加算後のアドレスを外部メモリ１に出力する。また、プログラマブルデバイス２に対して、コンフィギュレーションデータの読み出し処理の再実行を指示する。
これにより、ステップＳＴ２の処理に戻り、プログラマブルデバイス２が、再度、コンフィギュレーション動作を開始する。
【００３８】
コンフィギュレーション制御部３１は、バンクカウンタ３２がオーバーフローしていれば、プログラマブルデバイス２が故障している旨を上位装置に通知する（ステップＳＴ１２）。
【００３９】
以上で明らかなように、この実施の形態３によれば、コンフィギュレーション制御部３１が、コンフィギュレーションデータの読み出し先を変更する際、バンクカウンタの値を変更前のアドレス領域を示すアドレスに加算し、加算後のアドレスが示すアドレス領域を変更後のアドレス領域に設定するように構成したので、上記実施の形態１と同様の効果を奏することができる。
また、プログラマブルデバイスのコンフィギュレーション動作に失敗したときに、再実行の際の読み出し先を多くすることができるため、上記実施の形態１，２よりも更に、システムの可用性を高めることができる。
【００４０】
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【符号の説明】
【００４１】
１  外部メモリ、１ａ，１ｂ  アドレス領域、２  プログラマブルデバイス、３  コンフィギュレーション制御回路、１１  コンフィギュレーションアドレス格納部、１２  リトライカウンタ、１３  コンフィギュレーション完了結果判定部、１４  タイマ、１５  再コンフィギュレーションカウンタ、１６，２１，３１  コンフィギュレーション制御部、１７  反転回路、２２  ＭＳＢ反転回路、２３  インバータ、３２  バンクカウンタ。
【図１】
2013143733.tif 000003
【図２】
2013143733.tif 000004
【図３】
2013143733.tif 000005
【図４】
2013143733.tif 000006
【図５】
2013143733.tif 000007
【図６】
2013143733.tif 000008
【図７】
2013143733.tif 000009
【図８】
2013143733.tif 000010