(57)【要約】【課題】ＦＰＧＡを構築するＦＰＧＡ構成処理制御回路に関し、高信頼性の処理制御回路を提供する。【解決手段】ＦＰＧＡの構築処理を実行するＦＰＧＡ構成処理制御回路であって、ＦＰＧＡ構築用データを格納した複数の不揮発性メモリ３−０，３−１と、セレクタ８により選択された不揮発性メモリからのデータを格納する揮発性メモリ２と、複数の不揮発性メモリを選択するセレクタ８と、選択された不揮発性メモリから揮発性メモリに転送するＦＰＧＡ構築用データのエラーチェックを行うチェック部７と、揮発性メモリ２からＦＰＧＡ１に構築用データを転送して構築処理を行うコンフィグレーション用マクロ５及びチェック部７によるＦＰＧＡ構築用データのエラー検出時に、他の不揮発性メモリを選択切替制御して、ＦＰＧＡ構築用データを揮発性メモリ２に転送制御する制御部６とを含む構築用処理部４とを備えている。【選択図】図１
2013187699.tif 000002
【特許請求の範囲】
【請求項１】
ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）の構築処理を実行するＦＰＧＡ構成処理制御回路に於いて、
前記ＦＰＧＡの構築用データをそれぞれ格納した複数の不揮発性メモリと、
該複数の不揮発性メモリの中の選択された不揮発性メモリから転送されたデータを格納する揮発性メモリと、
前記複数の不揮発性メモリを選択するセレクタと、該セレクタにより選択された不揮発性メモリから前記揮発性メモリに転送するＦＰＧＡ構築用データのエラーチェックを行うチェック部と、前記揮発性メモリから前記ＦＰＧＡに前記ＦＰＧＡ構築用データを転送して前記ＦＰＧＡの構築処理を行うコンフィグレーション用マクロと、前記チェック部による前記ＦＰＧＡ構築用データのエラー検出時に、他の前記不揮発性メモリを選択切替制御してＦＰＧＡ構築用データを前記揮発性メモリに転送制御する制御部とを含む構築用処理部と
を備えたことを特徴とするＦＰＧＡ構成処理制御回路。
【請求項２】
前記構築用処理部は、前記セレクタにより選択切替えした前記不揮発性メモリから前記揮発性メモリに前記ＦＰＧＡ構築用データを転送し、前記チェック部により前記ＦＰＧＡ構築用データのエラー検出時に、前記セレクタにより他の前記不揮発性メモリに切替えて、該不揮発性メモリに格納された全アドレスの前記ＦＰＧＡ構築用データを前記揮発性メモリに転送して上書き処理する構成を有することを特徴とする前記請求項１記載のＦＰＧＡ構成処理制御回路。
【請求項３】
前記構築用処理部は、前記不揮発性メモリから前記揮発性メモリに前記ＦＰＧＡ構築用データを転送し、前記チェック部による前記ＦＰＧＡ構築用データのエラー検出時に、前記セレクタにより他の前記不揮発性メモリに切替えて、前記エラー検出のアドレス対応のデータのみを前記揮発性メモリに転送し、該揮発性メモリの前記ＦＰＧＡ構築用データに対する上書き処理を行う構成を有することを特徴とする前記請求項１記載のＦＰＧＡ構成処理制御回路。
【請求項４】
前記構築用処理部は、前記ＦＰＧＡの構築処理完了後に、前記複数の不揮発性メモリを順次切替えて、前記ＦＰＧＡ構築用データを前記揮発性メモリに転送し、且つ前記チェック部によりチェックする処理を繰り返して、前記複数の不揮発性メモリの正常性をチェックする構成を有することを特徴とする前記請求項１記載のＦＰＧＡ構成処理制御回路。
【請求項５】
前記構築用処理部は、前記ＦＰＧＡの構築処理完了後のエラー発生時に、前記揮発性メモリに記憶させた前記ＦＰＧＡ構築用データによる再構築処理を行い、該再構築処理によってもエラー発生の時に、前記揮発性メモリに対して、前記複数の不揮発性メモリの一つを選択して、該不揮発性メモリに格納した前記ＦＰＧＡ構築用データによって、前記ＦＰＧＡの構築処理を行う構成を有することを特徴とする前記請求項１記載のＦＰＧＡ構成処理制御回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＦＰＧＡの自動的な再構成制御処理を実行可能として、信頼性の高いＦＰＧＡを提供するＦＰＧＡ構成処理制御回路に関する。
【背景技術】
【０００２】
各種の制御回路等を、多数の同一構成又は異なる構成の論理回路やゲート回路等を含む回路素子を半導体基板上に形成して、回路素子内及び回路素子間の接続構成等を形成することにより、所望の処理機能を有する構成とするＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）は、既に各種の構成が提案され、且つ実用化されている。図１１は、従来例のＦＰＧＡ構成処理制御回路の要部を示し、１０１はＦＰＧＡ、１０２は構築用処理部（ＣＰＬＤ；Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）、１０３は不揮発性メモリを示し、Ｐｏｗｅｒ_  ＯＮは動作電力供給、ＣＲＣ_  ＥＲＲＯＲはＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）によるエラー検出信号、ｒｅ_  ｃｏｎｆｉｇはコンフィグレーション（Ｃｏｎｆｉｇｕｒａｔｉｏｎ）用マクロ１０４の再構築要求端子、ｒｅｓｅｔはコンフィグレーション・スタートを指示する為のリセット端子を示す。
【０００３】
ＦＰＧＡ１０１は、半導体基板上に、複数の論理ブロックを例えば二次元配置構成として、ゲートや配線により相互間を接続設定可能の構成とし、論理ブロック内の構成や論理ブロック間の接続構成等を外部から設定制御することにより、所望の論理処理機能を有する構成とするものである。この従来例の図１１に於いては、電源オンＰｏｗｅｒ_  ＯＮにより、コンフィグレーション用マクロ１０４を起動して、不揮発性メモリ１０３からＦＰＧＡ１０１に対する構築用データとアドレスと制御信号等を含むデータを、ＦＰＧＡ１０１へ転送して、ＦＰＧＡ１０１の各部間の接続構成や処理機能等を設定する。又ＦＰＧＡ１０１に於けるＣＲＣチェックエラーＣＲＣ_  ＥＲＲＯＲ検出により、コンフィグレーション用マクロ１０４に、再コンフィグレーション要求信号ｒｅ_  ｃｏｎｆｉｇとして転送し、コンフィグレーション用マクロ１０４によりＦＰＧＡ１０１の再構築処理を行う。正常終了時は、ＣＰＬＤ１０２をリセットし、ＦＰＧＡ１０１と切り離すか、又は接続状態を維持して運用し、エラー検出時に再構築処理を可能とすることもできる。
【０００４】
図１２は、図１１に示す構成に於ける従来例の動作説明図であり、コンフィグレーション動作と通常動作との概要を示す。同図に於いて、Ｐｏｗｅｒ_  ＯＮは電源オン、ｒｅｓｅｔは電源オンによりコンフィグレーション用マクロ１０４をリセットして、コンフィグレーション・スタートとするリセット信号、データ方向は、ＦＰＧＡに対するコンフィグレーション処理を行う場合の図１１に於けるデータの転送方向を、（不揮発→ＦＰＧＡ）として、不揮発性メモリからＦＰＧＡへのデータ転送方向を示す。又ＩＮＩＴ_  ＤＯＮＥはコンフィグレーション終了、ＣＲＣ_  ＥＲＲＯＲはエラー検出信号、ｒｅ_  ｃｏｎｆｉｇはＦＰＧＡからのエラー検出信号ＣＲＣ_  ＥＲＲＯＲによるＦＰＧＡ１０１の再構築の処理を示す。コンフィギュレーション開始により、不揮発性メモリからの構築用データをＦＰＧＡへ転送し、構築用データに従って内部構成を構築し、構築処理過程及び構築処理終了後のエラー検出信号（ＣＲＣ_  ＥＲＲＯＲ）によって、ＦＰＧＡ１０１の再コンフィグレーションを行う。このような制御処理は、構築用データ格納部ＣＰＬＤのコンフィグレーション用マクロの機能等によって行うことができる。
【０００５】
又ＦＰＧＡは、半導体集積回路の微細化構成により大規模回路化すると共に、各種の処理機能を有する装置を比較的容易に構築可能である。このようなＦＰＧＡにより構成された各種の機能を有する処理装置に於いては、システム構築時や、システム運用中の障害発生に容易に対処可能の構成が要望されている。例えば、ＦＰＧＡにより構成された装置部分の障害発生時に、複数のセル対応のルックアップテーブル（ＬＵＴ；Ｌｏｏｋ−Ｕｐ  Ｔａｂｌｅ）の修正処理等によって経路を変更した構成とし、障害発生ブロックに於ける休止状態の回路素子を利用可能とした再構築処理、及び休止ブロックによる障害発生ブロックの代替えによる再構築処理等によって、障害発生個所を切り離し、健全な回路素子による構成に修復する手段が提案されている（例えば、特許文献１参照）。又コンフィグレーション用データを格納するメモリを、メインメモリと、サブメモリとの複数個設けて、メインメモリによるＦＰＧＡの構築処理を行う時の処理時間を計測し、所定時間経過によっても処理が完了しないことを検出した場合、メインメモリ系統の障害発生と推定し、サブメモリに切替えることにより、このサブメモリによって、ＦＰＧＡの構築処理を再度実行する手段も提案されている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−１３６０５８号公報
【特許文献２】特開２０１０−０６６９６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＦＰＧＡによる所望の機能を有する構成を構築する時に、外来ノイズ等の影響によるエラー発生や、不揮発メモリに格納した構築用データのビット化けによるエラー発生があると、再度構築処理を最初から実行することになる。しかし、外来ノイズ等による一時的な外部からの影響を受けた場合のエラー発生は、再構築処理によって正常終了とすることができるが、不揮発性メモリに格納されたＦＰＧＡの構築用データにエラーが含まれている場合は、再構築処理を繰り返しても、正常終了とならない問題がある。又正常終了した場合でも、宇宙線等の外来ノイズの影響による構築用メモリのデータのビット化け等によって、その後の再構築処理時にはエラー発生となる問題がある。又前述の特許文献１に於いては、セル対応に機能又は経路変更を可能とし、障害発生部分の代替可能機能を再構築可能とするものであって、ＦＰＧＡの再構成の上位概念を示すとしても、ＦＰＧＡの再構成の自動化及び信頼性の向上の為の手段については開示されていない。又前述の特許文献２に於いては、コンフィグレーションメモリを複数設けて冗長化構成とした場合を示すものであり、単なる二重化構成を示すものである。
【０００８】
本発明は、前述の従来例の問題点を解決するもので、揮発性メモリと複数の不揮発性メモリとを、ＦＰＧＡのコンフィグレーション用として設け、ＦＰＧＡ構築用データに対する外来雑音等によるエラー発生等の影響を回避可能として、且つ長期間の運用を行っても、ＦＰＧＡの高信頼性を維持可能とするものである。
【課題を解決するための手段】
【０００９】
本発明のＦＰＧＡ構成処理制御回路は、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）の構築処理を実行するＦＰＧＡ構成処理制御回路であって、前記ＦＰＧＡの構築用データをそれぞれ格納した複数の不揮発性メモリと、該複数の不揮発性メモリの中の選択された不揮発性メモリから転送されたデータを格納する揮発性メモリと、前記複数の不揮発性メモリを選択するセレクタと、該セレクタにより選択された不揮発性メモリから前記揮発性メモリに転送するＦＰＧＡ構築用データのエラーチェックを行うチェック部と、前記揮発性メモリから前記ＦＰＧＡに前記ＦＰＧＡ構築用データを転送して前記ＦＰＧＡの構築処理を行うコンフィグレーション用マクロと、前記チェック部による前記ＦＰＧＡ構築用データのエラー検出時に、他の前記不揮発性メモリを選択切替制御してＦＰＧＡ構築用データを前記揮発性メモリに転送制御する制御部とを含む構築用処理部とを備えている。
【００１０】
又前記構築用処理部は、前記セレクタにより選択切替えした前記不揮発性メモリから前記揮発性メモリに前記ＦＰＧＡ構築用データを転送し、前記チェック部により前記ＦＰＧＡ構築用データのエラー検出時に、前記セレクタにより他の前記不揮発性メモリに切替えて、該不揮発性メモリに格納された全アドレスの前記ＦＰＧＡ構築用データを前記揮発性メモリに転送して上書き処理する構成を有するものである。
【００１１】
前記構築用処理部は、前記不揮発性メモリから前記揮発性メモリに前記ＦＰＧＡ構築用データを転送し、前記チェック部による前記ＦＰＧＡ構築用データのエラー検出時に、前記セレクタにより他の前記不揮発性メモリに切替えて、前記エラー検出のアドレス対応のデータのみを前記揮発性メモリに転送し、該揮発性メモリの前記ＦＰＧＡ構築用データに対する上書き処理を行う構成を有するものである。
【００１２】
前記構築用処理部は、前記ＦＰＧＡの構築処理完了後に、前記複数の不揮発性メモリを順次切替えて、前記ＦＰＧＡ構築用データを前記揮発性メモリに転送し、且つ前記チェック部によりチェックする処理を繰り返して、前記複数の不揮発性メモリの正常性をチェックする構成を有するものである。
【００１３】
前記構築用処理部は、前記ＦＰＧＡの構築処理完了後のエラー発生時に、前記揮発性メモリに記憶させた前記ＦＰＧＡ構築用データによる再構築処理を行い、該再構築処理によってもエラー発生の時に、前記揮発性メモリに対して、前記複数の不揮発性メモリの一つを選択して、該不揮発性メモリに格納した前記ＦＰＧＡ構築用データによって、前記ＦＰＧＡの構築処理を行う構成を有するものである。
【発明の効果】
【００１４】
ＦＰＧＡ構築用データを、複数の不揮発性メモリに記憶させて、その中の選択した不揮発性メモリから揮発性メモリにＦＰＧＡ構築用データを転送すると共に、ＦＰＧＡ構築用データの正常性をチェックし、エラーがなければ、揮発性メモリからＦＰＧＡに構築用データを転送してＦＰＧＡの構築処理を実行し、エラー検出時は、他の不揮発性メモリに切替えて、揮発性メモリにＦＰＧＡ構築用データを転送して、エラーがない場合のみ、ＦＰＧＡ構築処理を実行することにより、ＦＰＧＡの信頼性向上を図り、ＦＰＧＡ構築後も、不揮発性メモリに記憶させたＦＰＧＡ構築用データを揮発性メモリに転送すると共に、正常性をチェックすることを繰り返すことにより、長期間に亘り、ＦＰＧＡ構築用データの信頼性を維持可能とする。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施例１の説明図である。
【図２】本発明の実施例１の処理説明図である。
【図３】本発明の実施例２の処理説明図である。
【図４】本発明の実施例３の処理説明図である。
【図５】本発明の実施例３の要部フローチャートである。
【図６】本発明の実施例４の処理説明図である。
【図７】本発明の実施例４の要部フローチャートである。
【図８】本発明の実施例５の処理説明図である。
【図９】本発明の実施例５の要部フローチャートである。
【図１０】本発明の実施例１〜５の正常修了時の処理説明図である。
【図１１】従来例のＦＰＧＡの要部説明図である。
【図１２】従来例の動作説明図である。
【発明を実施するための形態】
【００１６】
本発明のＦＰＧＡ構成処理制御回路は、図１を参照すると、ＦＰＧＡ１（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）の構築処理を実行するＦＰＧＡ構成処理制御回路であって、前記ＦＰＧＡ１の構築用データをそれぞれ格納した複数の不揮発性メモリ３−０，３−１と、これらの不揮発性メモリ３−０，３−１の中の選択された不揮発性メモリから転送されたデータを格納する揮発性メモリ２と、複数の不揮発性メモリ３−０，３−１を選択するセレクタ８と、このセレクタ８により選択された不揮発性メモリから前記揮発性メモリ２に転送するＦＰＧＡ構築用データのエラーチェックを行うチェック部７と、前記揮発性メモリ２から前記ＦＰＧＡ１に前記ＦＰＧＡ構築用データを転送して前記ＦＰＧＡの構築処理を行うコンフィグレーション用マクロ５と、前記チェック部７による前記ＦＰＧＡ構築用データのエラー検出時に、他の不揮発性メモリを選択切替制御してＦＰＧＡ構築用データを前記揮発性メモリ２に転送制御する制御部６とを含む構築用処理部４とを備えている。
【実施例１】
【００１７】
図１は、本発明の実施例１の説明図であり、１はＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、２は揮発性メモリ、３−０，３−１は不揮発性メモリ、４はプログラム可能の論理制御部（ＣＰＬＤ；Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）、５はコンフィグレーション用マクロ、６は制御部、７はチェック部、８はセレクタ（ＳＥＬ）を示し、論理制御部４の制御部６は、電源オン（Ｐｏｗｅｒ_  ＯＮ）により、不揮発性メモリ３−０，３−１の読出制御／コンフィグレーション制御（不揮発０／１の読出制御／Ｃｏｎｆｉｇ制御）及びセレクタ８の制御を行う構成を有し、セレクタ８を制御して、不揮発性メモリ３−０，３−１の選択切替えを行う。これらの不揮発性メモリ３−０，３−１は、更に多数設けて、それぞれに同一のコンフィグレーション用のデータを格納した構成とすることも可能であるが、２個の不揮発性メモリ３−０，３−１を設けた場合について説明する。
【００１８】
又チェック部７は、セレクタ８により選択接続した不揮発性メモリ３−０，３−１の何れか一方のアドレス毎に、（Ａｄｄｒｅｓｓ毎のＣｈｅｃｋ  Ｓｕｍのチェック）として示すようにチェックを行い、チェックエラー（Ｃｈｅｃｋ  Ｓｕｍ_  ＥＲＲＯＲ）が存在すると、制御部６へ通知する。制御部６は、セレクタ８を制御して、不揮発性メモリ３−０，３−１の一方から他方へ切替えて、揮発性メモリ２に再度ＦＰＧＡ１構築用のデータを転送する。この場合も、チェック部７によりデータをチェックし、エラーがなければ、制御部６は、コンフィグレーション用マクロ５の制御により、揮発性メモリ２からＦＰＧＡ１に対して構築用のデータを転送して、ＦＰＧＡ１の構築処理を実行する。本発明に於いては、前述のように、２個の不揮発性メモリ３−０，３−１を設けた場合の実施例１を示すものであるが、これらの不揮発性メモリは、３個以上の複数個とすることも可能であり、エラー検出時には、複数の不揮発性メモリを順番に選択し、その選択した不揮発性メモリから揮発性メモリ２に、ＦＰＧＡ構築用のデータを転送し、且つデータチェックを行う構成とすることも可能である。
【００１９】
図２は、本発明の実施例１の処理説明図であり、図１に於ける記号と対応した状態を示すもので、Ｐｏｗｅｒ_  ＯＮは論理制御部（以下、図１に示す「ＣＰＬＤ」と称する）４に対する電源オンの状態を示す。なお、ＦＰＧＡ１にも動作電源を供給するＯＮ状態とする。又ＳＥＬは、セレクタ８による不揮発性メモリ３−０，３−１の選択状態（不揮発０→揮発は、不揮発性メモリ３−０から揮発性メモリ２に対するデータ転送方向を示し、又不揮発１→揮発は、不揮発性メモリ３−１から揮発性メモリ２に対するデータ転送方向を示す）。又Ｃｈｅｃｋ  Ｓｕｍ_  ＥＲＲＯＲは、チェック部７によるチェック結果のエラー（Ｅｒｒｏｒ）の有無を示す。又データ方向は、コンフィグレーション用データの転送方向（揮発→ＦＰＧＡ；揮発性メモリ２からＦＰＧＡ１に対するデータ転送方向）を示し、ｒｅｓｅｔは制御部６からコンフィグレーション用マクロ５に加えてＦＰＧＡ１のコンフィグレーション・スタートの為のリセット信号、ＩＮＩＴ_  ＤＯＮＥはコンフィグレーション完として示す完了信号、ＣＲＣ_  ＥＲＲＯＲはＣＲＣエラー信号で、Ｎｏ  Ｅｒｒｏｒはエラーなしを示す。又ｒｅ_  ｃｏｎｆｉｇは制御部６からコンフィグレーション用マクロ５に対する再構成処理の要求信号を示し、図２に於いてはこの要求信号がない場合を示す。
【００２０】
電源オンＰｏｗｅｒ_  ＯＮによる不揮発データコピーの期間と、その後のコンフィグレーションの期間と、コンフィグレーション完了後の通常動作との期間とに分けて示し、不揮発データコピーの期間は、先ず、電源オンＰｏｗｅｒ_  ＯＮとし、セレクタ８により不揮発性メモリ３−０を選択して、（不揮発０→揮発）として示すように、不揮発性メモリ３−０を選択して、揮発性メモリ２にデータを転送する。その転送過程に於いて、チェック部７によりチェックし、Ｅｒｒｏｒ検出となった場合、全アドレスのデータ転送時もチェックを行い、その後に、制御部６によってセレクタ８を制御して、（不揮発１→揮発）として示すように、一方の不揮発性メモリ３−０から他方の不揮発性メモリ３−１に切替えて、揮発性メモリ２に対してコンフィグレーション用のデータを転送し、その場合もチェック部７によるチェックを行い、Ｅｒｒｏｒ検出がなかった場合は、リセット信号（ｒｅｓｅｔ）をオンとして、コンフィグレーション・スタートとする。
【００２１】
そして、揮発性メモリ２から、コンフィグレーション用マクロ５の制御によってＦＰＧＡ１にデータを転送し、ＦＰＧＡ１の所望の処理機能の構築が終了すると、完了信号ＩＮＩＴ_  ＤＯＮＥによって、コンフィグレーション完とし、その後、ＣＲＣ_  ＥＲＲＯＲが検出されなかった場合の通常動作に於いて、セレクタＳＥＬは、不揮発１→不揮発０として示すように、不揮発データコピーの期間にエラー検出があった不揮発性メモリ３−０に対して、エラー検出がなかった不揮発性メモリ３−１から全アドレスのデータを転送し、その転送過程に於いて、チェック部７によりチェックして、コンフィグレーション用のデータの正常性の確認を行い、正常の場合は、不揮発０→揮発、・・・不揮発１→揮発として示すように、不揮発性メモリ３−０，３−１の全アドレスのデータを、揮発性メモリ２へ交互に転送し、その転送過程に於いて、チェック部７によりチェックを繰り返す。従って、ＦＰＧＡ１の再構築時に於けるコンフィグレーション用データの正常性を確保し、信頼性向上を図ることができる。なお、不揮発性メモリを更に多数設けた場合も同様に、順次選択した不揮発性メモリの全アドレスのコンフィグレーション用データを揮発性メモリへ転送し、チェック部７により正常性の確認を行うことになる。
【実施例２】
【００２２】
図３は、本発明の実施例２の処理説明図であり、図２と同一符号は同一名称又は同一内容に対応し、電源オンＰｏｗｅｒ_  ＯＮによる不揮発データコピーとコンフィグレーションと通常動作との期間の不揮発データコピーの期間に於いて、セレクタＳＥＬ（図１に於けるセレクタ８）により、不揮発０→揮発として示すように、セレクタＳＥＬ（セレクタ（ＳＥＬ）８）により不揮発性メモリ３−０を選択して、不揮発性メモリ３−０から揮発性メモリ２にデータを転送し、チェック部７により、Ｅｒｒｏｒとして示すように、チェックサムエラーＣｈｅｃｋ  Ｓｕｍ_  ＥＲＲＯＲを検出した場合、エラー検出があったデータのアドレスと同一のアドレスのデータのみを、不揮発性メモリ３−１から読出して、揮発性メモリ２へ（不揮発１→揮発）として示すように転送する。そして、その転送処理過程に於いてエラー検出がなければ、コンフィグレーション・スタートにより、揮発性メモリ２からのデータによるＦＰＧＡ１の構築が行われ、コンフィグレーション完了により、正常であった不揮発性メモリ３−１からエラー検出があった不揮発性メモリ３−０に、全アドレスのデータをコピーして修復し、その後は、図２に示す通常動作の期間と同様に、不揮発性メモリ３−０から揮発性メモリ２へデータを転送し、且つエラーの有無をチェック部７によりチェックし、正常ならば、不揮発性メモリ３−１に切り替えて、同様なチェックを行うことを繰り返す。従って、不揮発データコピーの期間に於けるエラー処理時間を短縮することができる。又コンフィグレーション完了後は、不揮発性メモリ３−０，３−１に保持しているコンフィグレーション用のデータの正常性を繰り返し確認するものであるから、ＦＰＧＡ１運用中の障害発生等による再構築処理時の信頼性を向上することができる。
【実施例３】
【００２３】
図４は、本発明の実施例３の処理説明図であり、図２及び図３と同一符号は同一名称部分を示し、不揮発データコピー、コンフィグレーション、通常動作の処理過程に於いて、図１を参照して説明すると、ＦＰＧＡ１のコンフィグレーション完了後、制御部６によりセレクタ８を制御し、待機中の不揮発性メモリ３−０，３−１の何れか一方をセレクタ８により選択し、その選択した不揮発性メモリからデータを読出して、チェック部７によりアドレス対応のデータのチェックサムによるエラーチェックを行い、エラーが検出されない場合は、セレクタ８により他方の不揮発性メモリを選択し、選択した不揮発性メモリからデータを読出して、チェック部７によりエラーチェックを行い、エラーが検出されない場合は、再度不揮発性メモリの選択による読出しとエラーチェックとを繰り返す。そして、ＣｈｅｃｋＳｕｍ  Ｅｒｒｏｒ検出が、不揮発１→揮発として示す不揮発性メモリ３−１から読出したデータのエラー検出時に、不揮発０→不揮発１として示すように、エラー検出時のアドレスのデータを、不揮発性メモリ３−０から読出して、不揮発性メモリ３−１のエラー発生のアドレスに上書きして、正常なデータに修復する。それによって、不揮発性メモリ３−０，３−１のデータを常に正常な状態に維持し、ＦＰＧＡ１の再構築処理時の信頼性向上を図ることができる。
【００２４】
図５は、前述の本発明の実施例３の要部フローチャートを示すもので、ＦＰＧＡの構築時の処理過程の要部を示し、図１及び図４を参照して説明すると、ＦＰＧＡ１のコンフィグレーション終了後に、ＣＰＬＤ４の制御部６の制御により、不揮発０→揮発コピー（ａ１）として示すように、不揮発性メモリ３−０からデータを読出して揮発性メモリ２に書込みを行う。図４に於いては、不揮発０→揮発（ａ１）として示す。そして、チェック部７によりチェックし、Ｃｈｅｃｋ  Ｓｕｍエラー無し（ａ２）の場合は、不揮発性メモリ３−１に切替えて、不揮発１→揮発コピー（ａ３）、即ち、不揮発性メモリ３−１からデータを読出して、揮発性メモリ２に書込み、チェック部７によりチェックし、Ｃｈｅｃｋ  Ｓｕｍエラー有り（ａ４）の場合は、不揮発性メモリ３−１のデータを修復する為に、不揮発０→不揮発１コピー（ａ５）により、（不揮発１修復）として示すように、不揮発性メモリ３−１のデータを修復し、この修復した不揮発性メモリ３−１のデータを揮発性メモリ２にコピーして（ａ６）、（揮発修復）として示すように、不揮発性メモリ３−１から揮発性メモリ２にコピーしたデータの修復を行い、Ｃｈｅｃｋ  Ｓｕｍによるエラーの有無を判定し、エラー無し（ａ７）により、次の不揮発０→揮発コピー（ａ８）の処理により、不揮発性メモリ３−０の正常性チェックを行う。このような処理を繰り返すことによって、不揮発性メモリ３−０，３−１に格納したＦＰＧＡ１の構築用データの正常性の確認を継続することが可能となり、長期間の運用中の再構築によっても、高信頼性のＦＰＧＡを提供することができる。
【実施例４】
【００２５】
図６は、本発明の実施例４の処理説明図であり、ＦＰＧＡのコンフィグレーション処理終了後にエラー（ＣＲＣ_  ＥＲＲＯＲ）検出があった場合の処理について示し、不揮発データコピー、コンフィグレーション、通常動作等の繰り返しが行われる場合を示す。前述の図１に示す構成も参照すると、Ｐｏｗｅｒ_  ＯＮにより、ＣＰＬＤ４のセレクタ８（ＳＥＬ）により不揮発０→揮発として示すように、不揮発性メモリ３−０を選択してデータを揮発性メモリ２へ転送し、チェック部７によるＣｈｅｃｋ  Ｓｕｍ_  ＥＲＲＯＲがない場合（Ｎｏ  ＥＲＲＯＲ）、コンフィグレーション・スタートとし、揮発→ＦＰＧＡとして示すように、揮発性メモリ２からＦＰＧＡ１へデータを転送し、総てのデータにエラーがなければ、コンフィグレーション完了となる。そして、通常動作時に、ＦＰＧＡ１に於けるエラー発生としてのＣＲＣ_  ＥＲＲＯＲ検出（Ｅｒｒｏｒ）の場合は、再コンフィグレーション（ｒｅ_  ｃｏｎｆｉｇ）を行う。この場合のエラーは、揮発性メモリ２のデータ異常ではなく、ＦＰＧＡ１内のノイズ等による影響による場合が殆んどであるから、揮発性メモリ２に保持しているデータをＦＰＧＡ１へ転送（揮発→ＦＰＧＡ）して、ＦＰＧＡ１の再構築処理を行う。しかし、揮発性メモリ２が破損していると、再コンフィグレーション（ｒｅ−ｃｏｎｆｉｇ）を実行しても、再度ＣＲＣ_  ＥＲＲＯＲを検出する。この場合、先ず、不揮発性メモリ３−０から揮発性メモリ２にデータをコピーし、チェック部７によりエラーのないことを確認してから、揮発性メモリ２のデータをＦＰＧＡ１に転送し、ＦＰＧＡ１の再構築処理を行う。通常処理時に、ＣＲＣ_  ＥＲＲＯＲを検出し、更に揮発性メモリ２が破損しても、正常な不揮発性メモリ３−０，３−１により、高い信頼性を提供することができる。
【００２６】
図７は、本発明の実施例４の要部フローチャートであり、ＦＰＧＡ構築後の通常動作時に於いて（ｂ１）、ＦＰＧＡ１からのＣＲＣ_  ＥＲＲＯＲによるエラー有りの通知により（ｂ２）、再コンフィグレーションを開始する（ｂ３）。再度ＣＲＣ_  ＥＲＲＯＲ有り（ｂ４）の場合、（揮発エラー）として示すように、揮発性メモリ２のデータエラーとして、不揮発０→揮発コピー（揮発修復）（ｂ４）として示すように、不揮発性メモリ３−０から揮発性メモリ２へデータをコピーして、揮発性メモリ２に対するデータ修復を行って、再コンフィグレーションを行う（ｂ６）。それによって、ＦＰＧＡ１からのＣＲＣ_  ＥＲＲＯＲエラー無し（ｂ７）の状態となるから、通常動作（ｂ８）に移行することができる。
【実施例５】
【００２７】
図８は、本発明の実施例５の処理説明図であり、図１の構成を参照して説明する。不揮発データコピー、コンフィグレーション、通常動作の期間の繰り返しの状態に於いて、Ｐｏｗｅｒ_  ＯＮ、ＳＥＬ（セレクタ８の状態）、Ｃｈｅｃｋ  Ｓｕｍ_  ＥＲＲＯＲ（チェック部７による処理）、データ方向（構築処理用のデータの転送方向）、ｒｅｓｅｔは、制御部６からコンフィグレーション用マクロ５に、コンフィグレーション・スタートを通知する信号、ＩＮＩＴ_  ＤＯＮＥはコンフィグレーション完通知信号、ＣＲＣ_  ＥＲＲＯＲは、ＦＰＧＡに於けるエラー信号、ｒｅ_  ｃｏｎｆｉｇは、再コンフィグレーション信号を示す。ＦＰＧＡ１のコンフィグレーション処理完了後に、ＦＰＧＡ１に於いてＣＲＣ_  ＥＲＲＯＲ検出時に、電源オンＰｏｗｅｒ_  ＯＮ時と同様に、不揮発０→揮発として示すように、セレクタ８（ＳＥＬ）により選択した例えば不揮発性メモリ３−０から揮発性メモリ２にデータをコピーし、チェック部７によりチェックし、エラーがなければ、データ方向の揮発→ＦＰＧＡとして示すように、コンフィグレーション・スタートとし、エラーがなければ、コンフィグレーション完となる。この実施例５に於いては、揮発性メモリ２に比較して、不揮発性メモリ３−０，３−１の格納データの信頼性が高いことから、ＦＰＧＡ１の再構築処理を迅速且つ信頼性を維持して実行することができる。
【００２８】
図９は、本発明の実施例５の要部フローチャートを示し、ＦＰＧＡの通常動作状態に於いて（ｃ１）、ＣＲＣ_  ＥＲＲＯＲエラー有りとして示すエラー検出があると（ｃ２）、不揮発０→揮発コピー（揮発修復）（ｃ３）として、例えば、不揮発性メモリ３−０から揮発性メモリ２にデータをコピーして、前に揮発性メモリ２にエラーが含まれているとしても、それを修復した状態として、再コンフィグレーションを行う（ｃ４）。この再コンフィグレーションにより、ＣＲＣ_  ＥＲＲＯＲ無しの状態となると（ｃ５）、ＦＰＧＡ１は通常動作に復帰することができる（ｃ６）。
【００２９】
図１０は、前述の実施例５を含む前述の各実施例に於ける正常時の処理説明図を示すもので、前述の各処理説明図に於ける符号と同一の符号は同一名称部分及びデータ等の信号を示し、不揮発データコピー、コンフィグレーション、通常動作の期間に於けるＰｏｗｅｒ_  ＯＮ、ＳＥＬ、Ｃｈｅｃｋ_  Ｓｕｍ_  ＥＲＲＯＲ、データ方向、ｒｅｓｅｔ、ＩＮＩＴ_  ＤＯＮＥ、ＣＲＣ_  ＥＲＲＯＲ、ｒｅ_  ｃｏｎｉｇについて示す。又図１を参照して説明すると、電源供給開始のＰｏｗｅｒ_  ＯＮにより、セレクタ７（ＳＥＬ）は、不揮発０→揮発として示す不揮発性メモリ３−０から揮発性メモリ２にデータを転送し、チェック部７によるチェックを行って、エラー無しの場合（Ｎｏ  Ｅｒｒｏｒ）、揮発→ＦＰＧＡとして示すように、コンフィグレーション・スタートとして示すように、揮発性メモリ２からＦＰＧＡ１にデータを転送し、ＦＰＧＡ１に於けるＣＲＣ_  ＥＲＲＯＲ無し（Ｎｏ  Ｅｒｒｏｒ）の場合、コンフィグレーション完となり、ＦＰＧＡ１は通常動作に移行することが可能となり、その場合の通常動作中に、不揮発０→揮発及び不揮発１→揮発として示すように、不揮発性メモリ３−０から揮発性メモリ２にデータを転送して書込むと共に、チェック部７によりチェックサム等によりチェックを行い、次に不揮発性メモリ３−１から揮発性メモリ２にデータを転送して、チェックを行うことを周期的に繰り返す。
【符号の説明】
【００３０】
１  ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）
２  揮発性メモリ
３−０，３−１  不揮発性メモリ
４  ＣＰＬＤ（Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）
５  コンフィグレーション用マクロ
６  制御部
７  チェック部
８  セレクタ（ＳＥＬ）
【図１】
2013187699.tif 000003
【図２】
2013187699.tif 000004
【図３】
2013187699.tif 000005
【図４】
2013187699.tif 000006
【図５】
2013187699.tif 000007
【図６】
2013187699.tif 000008
【図７】
2013187699.tif 000009
【図８】
2013187699.tif 000010
【図９】
2013187699.tif 000011
【図１０】
2013187699.tif 000012
【図１１】
2013187699.tif 000013
【図１２】
2013187699.tif 000014