(57)【要約】【課題】固定回路の障害時に、再構成可能な回路を固定回路の機能に再構成する論理集積回路において、再構成時間を短縮し、且つ障害部位以外の動作を継続する。【解決手段】固定回路（２，３，４，５）を、複数の機能回路ブロック（２−１，２−２，２−３）に分割し、これらをプログラマブルバス（１４−１〜１４−４）で接続し、且つ各機能回路ブロック（２−１〜２−３）に対応した再構成可能な回路（６−１〜６−３）を設けた。再構成範囲が不良箇所を含むブロックに限られるため、代替処理は短時間で終了する。また、代替処理の影響がない範囲は、代替処理中も動作を継続することが可能である。【選択図】図１
2006309700.tif 000002
【特許請求の範囲】
【請求項１】
回路のエラーの検出に応じて、プログラムにより再構成可能な回路を、前記回路の機能に再構成する動的代替機能を有する論理集積回路において、
複数の機能回路ブロックに分割された回路と、
前記分割された各機能回路ブロック間を接続するプログラマブルバスと、
再構成可能な回路と、
前記機能回路ブロックの再構成データを格納するメモリと、
前記機能回路ブロックのエラーの検出に応じて、前記メモリから前記エラーが検出された機能回路ブロックの再構成データを読み出し、前記再構成可能な回路を、前記再構成データを用いて前記エラーを検出した機能回路ブロックに再構成する制御回路と、
を有することを特徴とする動的代替機能を有する論理集積回路。
【請求項２】
前記プログラマブルバスは、一の回路に係る前記複数の機能回路ブロックを接続するように、設定されており、
前記制御回路は、前記エラーが検出された機能回路ブロックを前記プログラマブルバスから切り離し、且つ前記再構成された回路を、前記プログラマブルバスに接続して、前記エラーが検出された機能回路ブロック以外の機能回路ブロックと接続する
ことを特徴とする請求項１の動的代替機能を有する論理集積回路。
【請求項３】
回路のエラーの検出に応じて、プログラムにより再構成可能な回路を、前記回路の機能に再構成する動的代替機能を有する論理集積回路を含む情報処理装置において、
複数の機能回路ブロックに分割された回路と、
前記分割された各機能回路ブロック間を接続するプログラマブルバスと、
再構成可能な回路と、
前記機能回路ブロックの再構成データを格納するメモリと、
前記機能回路ブロックのエラーの検出に応じて、前記メモリから前記エラーが検出された機能回路ブロックの再構成データを読み出し、前記再構成可能な回路を、前記再構成データを用いて前記エラーを検出した機能回路ブロックに再構成する制御回路とを有する論理集積回路を備える
ことを特徴とする情報処理装置。
【請求項４】
前記プログラマブルバスは、一の回路に係る前記複数の機能回路ブロックを接続するように、設定されており、
前記制御回路は、前記エラーが検出された機能回路ブロックを前記プログラマブルバスから切り離し、且つ前記再構成された回路を、前記プログラマブルバスに接続して、前記エラーが検出された機能回路ブロック以外の機能回路ブロックと接続する論理集積回路を備える
ことを特徴とする情報処理装置。
【請求項５】
回路のエラーの検出に応じて、プログラムにより再構成可能な回路を、前記回路の機能に再構成する論理集積回路の動的代替方法において、
回路内の機能回路ブロックのエラーを検出するステップと、
前記機能回路ブロックの再構成データを格納するメモリから、前記エラーが検出された機能回路ブロックの再構成データを読み出すステップと、
前記再構成可能な回路を、前記再構成データを用いて前記エラーを検出した機能回路ブロックに再構成するステップとを有する
ことを特徴とする論理集積回路の動的代替方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一の固定回路ブロックの障害が生じても、代替回路ブロックを、障害検出された固定回路ブロックの機能にプログラムして、自己修復する動的代替機能を持つ論理集積回路、これを用いた情報処理装置および論理集積回路の動的代替方法に関する。
【背景技術】
【０００２】
高度に集積された現在のＬＳＩ（Large Scale Integration）回路では、ある一点の故障で、システム全体の機能を著しく損ない、長時間に渡ってシステムの停止を招くことになる。このような問題に対し、従来、ＬＳＩ回路全体を、ＦＰＧＡ（Field Programmable Gate Array）で構成し、ＦＰＧＡのある領域を、複数の機能の異なる回路ブロックに、プログラムするとともに、残りの領域を代替ブロックにより構成する。そして、一の回路ブロックの障害時に、ＦＰＧＡの代替ブロックを、障害を起こした回路ブロックの機能にプログラムして、自己修復することが提案されている（例えば、特許文献１参照）。
【０００３】
又、固定回路ＬＳＩを複数持つ情報処理装置では、代替用のＦＰＧＡ回路を設け、情報処理装置の制御回路が、固定回路チップの障害を検出した時に、ＦＰＧＡ回路を、障害を検出された回路の機能にプログラムして、自己修復することも提案されている（例えば、特許文献２，３参照）。
【特許文献１】特開平８−０４４５８１号公報
【特許文献２】特開平７−２７３８３７号公報
【特許文献３】特開２０００−０８１９９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、第１の従来技術では、ＬＳＩ全体が、集積度が低く、ゲート数に限りがあるＦＰＧＡで構成されるため、大規模な回路を実現することは、困難である。又、回路の一部に障害が発生しても、回路ブロック全体を再構成するため、再構成に時間がかかる。このため、ノンストップ動作の阻害となり、且つダウンタイムを低減できない。特に、ノンストップ動作やダウンタイムの最小化を要求されるサーバー等の情報処理装置に適用しにくい。
【０００５】
一方、第２の従来技術では、障害が回路の一部であっても、障害を検出した回路全体を再構成するため、再構成に時間がかかる。このため、ノンストップ動作の阻害となり、且つダウンタイムを低減できない。又、異常を、制御部側で判定するため、複雑な構成のＬＳＩでは、実現が難しい。
【０００６】
従って、本発明の目的は、１つの論理集積回路で、短時間で再構成し、ダウンタイムを低減するための動的代替機能を持つ論理集積回路、これを用いた情報処理装置及び論理集積回路の動的代替方法を提供することにある。
【０００７】
又、本発明の他の目的は、複雑且つ大規模な論理集積回路でも、再構成可能な動的代替機能を持つ論理集積回路、これを用いた情報処理装置及び論理集積回路の動的代替方法を提供することにある。
【０００８】
更に、本発明の別の目的は、固定回路ブロックの異常部分のみを、再構成して、再構成時間を短縮し、ダウンタイムを低減するための動的代替機能を持つ論理集積回路、これを用いた情報処理装置及び論理集積回路の動的代替方法を提供することにある。
【０００９】
更に、本発明の別の目的は、固定回路ブロックの異常を、固定回路ブロック自体で検出し、制御部による再構成動作を高速化するための動的代替機能を持つ論理集積回路、これを用いた情報処理装置及び論理集積回路の動的代替方法を提供することにある。
【課題を解決するための手段】
【００１０】
この目的を達成するため、本発明は、回路のエラー検出に応じて、プログラムにより再構成可能な回路を、前記回路の機能に再構成する動的代替機能を有する論理集積回路において、各々複数の機能回路ブロックに分割された複数の固定回路と、前記分割された各機能回路ブロック間を接続するプログラマブルバスと、再構成可能な回路と、前記機能回路ブロックの再構成データを格納するメモリと、前記機能回路ブロックのエラー検出に応じて、前記メモリからの前記エラー検出した機能回路ブロックの再構成データを読み出し、前記再構成可能な回路を、前記再構成データを用いて前記エラーを検出した機能回路ブロックに再構成する制御回路とを有する。
【００１１】
又、本発明は、回路のエラーの検出に応じて、プログラムにより再構成可能な回路を、前記回路の機能に再構成する動的代替機能を有する論理集積回路を含む情報処理装置において、複数の機能回路ブロックに分割された回路と、前記分割された各機能回路ブロック間を接続するプログラマブルバスと、再構成可能な回路と、前記機能回路ブロックの再構成データを格納するメモリと、前記機能回路ブロックのエラーの検出に応じて、前記メモリから前記エラーが検出された機能回路ブロックの再構成データを読み出し、前記再構成可能な回路を、前記再構成データを用いて前記エラーを検出した機能回路ブロックに再構成する制御回路とを有する論理集積回路を備える。
【００１２】
又、本発明は、回路のエラーの検出に応じて、プログラムにより再構成可能な回路を、前記回路の機能に再構成する論理集積回路の動的代替方法において、回路内の機能回路ブロックのエラーを検出するステップと、前記機能回路ブロックの再構成データを格納するメモリから、前記エラーが検出された機能回路ブロックの再構成データを読み出すステップと、前記再構成可能な回路を、前記再構成データを用いて前記エラーを検出した機能回路ブロックに再構成するステップとを有する。
【００１３】
又、本発明では、好ましくは、前記制御回路は、前記機能回路ブロックのエラー検出に応じて、前記エラー検出した機能回路ブロックに対応する再構成可能な回路を特定し、前記エラーを検出した機能回路ブロックを前記プログラマブルバスから切り離し、且つ前記再構成された回路を、前記プログラマブルバスに接続する。
【００１４】
又、本発明では、好ましくは、前記プログラマブルバスは、１の固定回路の前記複数の機能回路ブロックを接続するように、設定されており、前記制御回路は、前記エラーを検出した機能回路ブロックを前記プログラマブルバスから切り離し、且つ前記再構成された回路を、前記プログラマブルバスに接続して、前記エラー検出した機能回路ブロック以外の機能回路ブロックと接続する。
【００１５】
又、本発明では、好ましくは、前記制御回路は、前記再構成された回路を、前記プログラマブルバスに接続し、前記エラーを検出した機能回路ブロックと並行に動作させ、制御回路と機能回路ブロックとの同期をとり、その後、前記エラーを検出した機能回路ブロックを前記プログラマブルバスから切り離す。
【００１６】
又、本発明では、好ましくは、前記制御回路は、前記再構成された回路と前記エラーを検出した機能回路ブロックとを、前記プログラマブルバスに付随する状態監視バスに接続し、前記エラーを検出した機能回路ブロックと前記再構成された回路を並行に動作させ、同期をとる。
【００１７】
又、本発明では、好ましくは、前記再構成可能な回路が、ＦＰＧＡ回路で構成された。
【００１８】
又、本発明では、好ましくは、前記複数の機能回路ブロックの各々は、前記複数の機能回路ブロック間の送受信信号のエラーを検出するエラー検出回路を有し、前記エラー検出回路のエラー発生状況をチエックして、前記エラーを生じた機能回路ブロックを特定する。
【００１９】
又、本発明では、好ましくは、前記送受信する複数の機能回路ブロックの少なくとも一方に、前記エラー検出回路のエラー発生状況をチエックして、前記エラーを生じた機能回路ブロックを特定する比較回路を設けた。
【００２０】
又、本発明では、好ましくは、前記制御回路は、前記比較回路の特定結果を受け、前記エラー検出した機能回路ブロックに対応する前記再構成可能な回路を特定する。
【００２１】
又、本発明では、好ましくは、前記制御回路は、前記複数の機能回路ブロックの配置を格納するマップを有し、前記機能回路ブロックのエラー検出に応じて、前記マップを参照して、前記エラー検出した機能回路ブロックと、前記機能回路ブロックに対応する前記再構成可能な回路を特定する。
【００２２】
又、本発明では、好ましくは、前記制御回路は、前記特定した再構成可能な回路を、前記再構成データを用いて前記エラーを検出した機能回路ブロックに再構成したことに応じて、前記マップを更新する。
【発明の効果】
【００２３】
固定回路を、複数の機能回路ブロックに分割し、これらをプログラマブルバスで接続し、且つ各機能回路ブロックに対応した再構成可能な回路を設けたので、再構成範囲が不良箇所を含むブロックに限られるため、代替処理は短時間で終了する。また、代替処理の影響がない範囲は、代替処理中も動作を継続することが可能である。
【発明を実施するための最良の形態】
【００２４】
以下、本発明の実施の形態を、論理集積回路の構成、訂正不可能なエラーの代替処理、訂正可能なエラーの代替処理、他の実施の形態の順で説明するが、本発明は、これらの実施の形態に限られない。
【００２５】
＊＊論理集積回路の構成＊＊
図１は、本発明における一実施形態の論理集積回路の構成図、図２は、図１の論理集積回路を使用したコンピュータシステムの構成図である。尚、図１の論理集積回路は、システムコントローラを例に示す。
【００２６】
図１に示すように、複数の固定回路ブロックを任意の規模で分割し、プログラムにより接続変更可能なバスで、これら分割ブロックを接続する。ここでは、１つの回路ブロック２、３，４，５を、３つの回路ブロック２−１，２−２，２−３、３−１，３−２，３−３，４−１，４−２，４−３，５−１，５−２，５−３に分割する。
【００２７】
そして、第１の分割された回路ブロック群２−１，３−１，４−１，５−１は、外部と、第１のプログラマブルバス１４−１で接続され、第２の分割された回路ブロック群２−２，３−２，４−２，５−２と、第２のプログラマブルバス１４−２で接続される。第２の分割された回路ブロック群２−１，３−１，４−１，５−１は、第１の分割された回路ブロック群２−１，３−１，４−１，５−１と、第２のプログラマブルバス１４−２で接続され、且つ第３のプログラマブルバス１４−３で、第３の分割された回路ブロック群２−３，３−３，４−３，５−３と接続される。
【００２８】
第３の分割された回路ブロック群２−３，３−３，４−３，５−３は、外部と、第４のプログラマブルバス１４−４で接続され、第２の分割された回路ブロック群２−２，３−２，４−２，５−２と、第３のプログラマブルバス１４−３で接続される。
【００２９】
これらの回路ブロック群２−１〜２−３，３−１〜３−３，４−１〜４−３、５−１〜５−３は、再構成不可能な固定回路ブロック(非ＦＰＧＡブロック)で構成される。
【００３０】
一方、再構成可能な回路ブロック（ＦＰＧＡブロック)６も、同様に、任意の規模で、分割される。即ち、３つの回路ブロック６−１，６−２，６−３に分割され、これらは、固定回路ブロック２，３，４，５の第１、第２、第３の回路ブロック２−１（３−１，４−１，５−１）、２−２（３−２，４−２，５−２）、２−３（３−３，４−３，５−３）に対応して、同様に、プログラマブルバス１４−１，１４−２、１４−３，１４−４で接続されるように、配置される。
【００３１】
即ち、集積回路（ＬＳＩ）上を，複数の回路ブロックに分け、ある数のブロック毎にグループを形成する。そして、各グループには、プログラムにより再構成可能な回路ブロック６−１，６−２，６−３を配置する。この再構成不可能な回路ブロックと、再構成可能な回路ブロックの比率は任意であるが、再構成可能な回路ブロック６−１，６−２，６−３は、それぞれ同一グループ内の回路ブロック２−１（３−１，４−１，５−１）、２−２（３−２，４−２，５−２）、２−３（３−３，４−３，５−３）に対してのみ代替可能である。
【００３２】
ＲＯＭ（Read Only Memory）１０は、分割された各回路ブロックの再構成のための論理回路情報を格納する。制御回路１２は、回路ブロックの配置を示すマップ１２Ａを有し、分割された固定回路ブロック２−２等からの異常通知を受け、その異常が発生した回路ブロックのグループを特定し、代替が必要な場合には、その異常が発生した回路ブロックのグループに属する再構成可能な回路ブロックを、異常が発生した回路ブロックの機能に最構成し、且つプログラマブルバスの接続を切り替える。
【００３３】
このような構成により、通常の回路を、分割された固定回路(非ＦＰＧＡ)で構成することにより、再構成が必要な範囲を限定することが出来、回路の高速な修復、特に、回路の動作を継続したままでの交代動作(ノンストップリカバリ)が可能となる。
【００３４】
図２により、集積回路の一例を具体的に説明する。ここでは、ＬＳＩ回路は、システムコントローラを構成している。システムコントローラ（論理集積回路）１は、図示しないＣＰＵ，Ｉ／Ｏ，他のシステムコントローラ（ＳＣ）／クロスバスイッチ（ＸＢ）、メモリに接続され、これらの間で、コマンド、データのやりとりのパスを提供する。
【００３５】
このため、システムコントローラ１は、ＣＰＵ、Ｉ／Ｏ、ＳＣ／ＸＢ，メモリのためのインタフェースを備える。即ち、システムコントローラ１は、ＣＰＵインタフェース回路２、Ｉ／Ｏチャネルインタフェース回路３、ＳＣ／ＸＢインタフェース回路４、メモリインタフェース回路５を備える。これら回路２，３，４，５は、接続されるユニットのバス仕様（転送速度、送信フォーマット、エラー検出、訂正方法等）に応じて、回路構成が異なる。
【００３６】
更に、システムコントローラ１のＣＰＵインタフェース回路２、Ｉ／Ｏチャネルインタフェース回路３、ＳＣ／ＸＢインタフェース回路４、メモリインタフェース回路５は、プライオリテイ制御部６とデータクロスバスイッチ７とに、各々接続される。
【００３７】
プライオリテイ制御部６は、ＣＰＵインタフェース回路２、Ｉ／Ｏチャネルインタフェース回路３、ＳＣ／ＸＢインタフェース回路４、メモリインタフェース回路５からの接続リクエストの優先順位を決定する。決定した優先順位に応じて、データクロスバスイッチ７が、ＣＰＵインタフェース回路２、Ｉ／Ｏチャネルインタフェース回路３、ＳＣ／ＸＢインタフェース回路４、メモリインタフェース回路５のうちのいずれか２つを、一対の接続元、接続先として接続し、データのやりとりのパスを選択する。
【００３８】
このようなインタフェース回路において、例えば、ＣＰＵインタフェース回路２は、エラー検出／訂正回路ブロック２−１と、キュー及びバッファ２−２と、リクエスト制御回路２−３に分割される。Ｉ／Ｏチャネルインタフェース回路３、ＳＣ／ＸＢインタフェース回路４、メモリインタフェース回路５も同様である。
【００３９】
この分割された回路ブロックが、図１の分割された回路ブロック２−１，２−２，２−３に対応する。そして、前述のプログラマブルバス１４−１，１４−２，１４−３，１４−４では、そのスイッチが、回路ブロック２−１，２−２，２−３を接続するように、図１のＲＯＭ１０に格納されるプログラムにより、設定される。
【００４０】
従って、当該プログラムにより、このプログラマブルバスのスイッチの接続関係を変更できる。即ち、回路ブロック間は、再構成可能なプログラマブルバス回路で接続され、各回路ブロック２−１等は、エラー検出機能を持つ。
【００４１】
図３は、図１及び図２の回路ブロックの構成図、図４は、図３の回路ブロックにおけるエラー検出回路構成のブロック図、図５は、図３及び図４のエラー検出結果の説明図である。
【００４２】
図３は、図２のＣＰＵインタフェース回路２のエラー検出／訂正回路ブロック２−１と、キュー及びバッファ２−２とを例に示す。エラー検出／訂正回路ブロック２−１は、ＣＰＵからの制御信号（コマンド）ＣＴとそのパリティ信号ＰＡ、データとそのＥＣＣ（Error Correction Code）を受信する。このエラー検出／訂正回路ブロック２−１は、制御信号ＣＴとそのパリティ信号ＰＡを受け、制御信号ＣＴのパリティチェックを行う第１のエラーチェック回路２０と、データとそのＥＣＣを受け、データのエラー検出及び訂正を行う第２のエラーチェック回路２２とを有する。
【００４３】
一方、キュー及びバッファ２−２は、プログラマブルバス１４−２からの制御信号を受信する第１のバス受信回路２４と、第１のバス受信回路２４で受信された制御信号の解析を行い、アドレスを生成するアドレス生成回路２６と、プライオリテイ回路６からのリクエストを、プログラマブルバス１４−４、リクエスト制御回路２−３、プログラマブルバス１４−３を介して受信し、アドレス生成回路２６に通知する第２のバス受信回路２８とを有する。
【００４４】
又、キュー及びバッファ２−２は、プログラマブルバス１４−２からのデータを受信する第３のバス受信回路３０と、第３のバス受信回路３０で受信されたデータを、アドレス生成回路２６で指定されたアドレスに格納するバッファＲＡＭ（Random Access Memory）３２と、プライオリテイ回路６からのリクエストに応じて、アドレス生成回路２６から指定されたバッファＲＡＭ３２のデータを読み出し、プログラマブルバス１４−３、リクエスト制御回路２−３、プログラマブルバス１４−４を介し、プライオリテイ回路６やクロスバスイッチ７に送信するバス送信回路３４とを有する。
【００４５】
この構成例では、制御信号ＣＴのルートが、制御系のパスを構成し、データのルートがデータ系のパスを構成する。
【００４６】
第１のバス受信回路２４は、プログラマブルバス１４−２からの制御信号ＣＴとそのパリティ信号ＰＡを受け、制御信号ＣＴのパリティチェックを行う第３のエラーチェック回路４０と、第１のエラーチェック回路２０からのエラー通知と、第３のエラーチェック回路４０からのエラー通知を受け、両通知の比較により、不良箇所の検出を行う第１の比較回路４２を有する。
【００４７】
一方、第３のバス受信回路３０は、プログラマブルバス１４−２からのデータとそのＥＣＣを受け、データのエラー検出及び訂正を行う第４のエラーチェック回路４４と、第２のエラーチェック回路２２からのエラー通知と、第４のエラーチェック回路４４からのエラー通知を受け、両通知の比較により、不良箇所の検出を行う第２の比較回路４６を有する。
【００４８】
この第１のエラーチェック回路２０と、第３のエラーチェック回路４０は、同一のエラーチェック機能を有し、同様に、第２のエラーチェック回路２２と、第４のエラーチェック回路４４は、同一のエラーチェック機能を有する。
【００４９】
次に、図４及び図５で、このエラーチェック構成を説明する。図４は、図３のデータ系のパスにおけるエラーチェック構成を示すが、制御系のパスも同様である。図４に示すように、データとそのＥＣＣを受け、データのエラー検出及び訂正を行う第２のエラーチェック回路２２とを有する。
【００５０】
先ず、信号の流れで上流側の第２のエラーチェック回路２２は、データとそのＥＣＣを受け、データのエラー検出及び訂正を行う。そして、第２のエラーチェック回路２２は、プログラマブルバス１４−２を介し、データとそのＥＣＣを、第４のエラーチェック回路４４に、エラー通知（エラーチェック結果）を比較回路４６に送信する。
【００５１】
この第４のエラーチェック回路２２は、プログラマブルバス１４−２からのデータとそのＥＣＣを受け、データのエラー検出及び訂正を行い、同様に、エラーチェック結果を比較回路４６に送信する。
【００５２】
比較回路４６は、第２のエラーチェック回路２２のエラーチェック結果（上流側エラー通知）と、第４のエラーチェック回路４４のエラーチェック結果（下流側エラー通知）を比較する。図５に示すように、比較回路４６は、上流側エラー通知が、エラーで、下流側エラー通知が、エラーである場合には、上流側回路ブロック２−１で、何らかの異常が発生したと判断し、上流ブロック不良を、プログラマブルバス１４−２を介し、図１の制御回路１２に通知する。
【００５３】
同様に、比較回路４６は、上流側エラー通知が、正常で、下流側エラー通知が、エラーである場合には、下流側回路ブロック２−２（例えば、バス受信回路３０）で、何らかの異常が発生したと判断し、下流ブロック不良を、プログラマブルバス１４−２を介し、図１の制御回路１２に通知する。
【００５４】
更に、比較回路４６は、上流側エラー通知が、エラーで、下流側エラー通知が、正常である場合は、通常は、発生しないため、通知しない。比較回路４６は、上流側エラー通知、下流側エラー通知とも、正常であると、問題ないため、通知しない。
【００５５】
このように、エラーチェック回路が、他のエラーチェック回路と、エラー発生状況を送受信する機能を持つ。この機能を使用し、論理的に関係のあるブロック(データの送信側と受信側)のエラーチェック回路間で、エラー発生状況をチェックし合う。これにより、エラーが、回路ブロック間を次々と伝播するような状況であっても、制御回路１２で解析する方法に比べて、高速に、エラーの根源である回路ブロックを特定することが可能である。
【００５６】
図１に戻り、回路ブロックのエラー検出時の再構成方法を説明する。
【００５７】
（１）回路ブロックで、エラーを検出した場合、エラー情報を、制御回路１２に通知する。例えば、回路ブロック３−２で、エラーを検出した場合には、プログラマブルバス（実際には、図６で説明する状態監視バス）１４−２を介し、制御回路１２に通知する。
【００５８】
（２）制御回路１２は、マップ１２Ａを参照して、エラーが発生した回路ブロックを特定し、論理回路情報を格納したＲＯＭ１０から，故障箇所を含むブロックの論理回路情報を読み出す。
【００５９】
（３）そして、制御回路１２は、マップ１２Ａを参照して、その故障回路ブロックが属するグループ内の、再構成可能な回路ブロック６−２に、論理回路情報を書き込み、再構成可能な回路ブロック６−２を、故障した回路ブロック３−２の機能に再構成する。
【００６０】
（４）次に、制御回路１２は、作成した正常な回路ブロック６−２に、故障回路ブロック３−２を代替させる。即ち、マップ１２Ａを参照して、プログラマブルバス１４−３，１４−２のスイッチを切り替え、回路ブロック６−２を、回路ブロック３−１，３−３に接続する。
【００６１】
このようにして、正常な回路に代替し機能を回復したＬＳＩ１は、正常な動作に復帰することが可能となる。又、既に代替しているブロックが，再度故障した場合も、再構成可能な回路ブロックの数に，余裕があれば，再交代可能である。更に、エラーチェック回路自体は、再構成不可能な回路ブロック中に構成されるが、エラーチェック回路同士の接続は、プログラマブルバス回路部により、自由に変更しても良い。
【００６２】
次に、エラーの程度により、各エラーチェック回路には、動作継続が困難(Damaged)、訂正可能(Recoverable)という分類がされている。この情報を基に代替動作が決定される。
【００６３】
＊＊動作継続が困難な障害の再構成処理＊＊
図６は、本発明における一実施形態の再構成処理フロー図、図７は、その動作説明図である。
【００６４】
（Ｓ１０）制御回路１２は、エラー発生により、回路は正常な動作が継続不可能となるエラー通知を受けると、先ず、制御回路１２は、障害の影響する範囲の回路を初期化(リセット)する。初期化後も、同様のエラーが発生し、エラー通知された場合、制御回路１２は、その回路ブロックに固定故障が発生していることを確認する。又、リセット後の再エラーを待たずに、最初のエラーが発生した時点で、エラーの発生を確定することも可能である。
【００６５】
（Ｓ１２）制御回路１２は、エラーの発生を確定したら、その影響範囲（不良箇所を含む回路ブロック３−２）を特定し、その動作を停止する。
【００６６】
（Ｓ１４）制御回路１２は、マップ１２Ａを参照し、故障回路ブロック３−２の属するグループに、再構成されていないＦＰＧＡ回路６−２が存在するかを判定する。存在しない場合には、代替処理を中止し、不良箇所の縮退を行う。
【００６７】
（Ｓ１６）一方、故障回路ブロック３−２の属するグループに、再構成されていないＦＰＧＡ回路６−２が存在する場合には、制御回路１２は、各回路ブロックの論理プログラムを格納するＲＯＭ１０から、障害が発生した回路ブロック３−２の論理情報を読み出す。そして、読み出した論理情報に係るプログラムを、そのブロック３−２の属するグループ内のＦＰＧＡブロック６−２に展開し、図４に示すように、障害の発生したブロック３−２と，正常な等価回路を再構成する。
【００６８】
（Ｓ１８）続いて、制御回路１２は、障害の発生したブロック３−２を、再構成されたブロック６−２で代替するよう指示する。即ち、図７に示すように、マップ１２Ａを参照して、プログラマブルバス１４−３，１４−２のスイッチを切り替え、回路ブロック６−２を、回路ブロック３−１，３−３に接続する。これにより、障害の発生したブロック３−２は、周辺の回路から論理的に切り離され、再構成した回路６−２が組み込まれる。
【００６９】
（Ｓ２０）接続変更後、制御回路１２より、障害の影響する範囲の回路３−１，３−３を、再度初期化する。障害の発生した回路ブロック３−２は、正常な代替ブロック６−２に置き換えられたため、正常な動作を回復する。
【００７０】
このように、再構成範囲が不良箇所を含むブロックに限られるため、代替処理は短時間で終了する。また、代替処理の影響がない範囲は、代替処理中も動作を継続することが可能である。
【００７１】
このような訂正不可能(Damaged)エラーの場合の例として、ＥＣＣによっては訂正が不可能であるデータのマルチビットエラーや、制御信号のエラー等の致命的なエラーが発生した場合である。
【００７２】
＊＊訂正可能な障害(Recoverable)の再構成処理＊＊
図８は、本発明における他の実施形態の再構成処理フロー図、図９及び図１０は、その動作説明図である。この例は、ＥＣＣ等のエラー訂正符号を利用してエラー訂正を行う回路や、エラー発生時にリトライ動作をすることにより、エラー状態を回復するような回路で，エラーが検出された場合に、選択できる処理である。即ち、動作の継続は可能だが、耐障害性や性能の低下が発生しており、速やかな交換が望まれる状況では、動作を継続したまま回路の交替を行うノンストップリカバリが有効である。
【００７３】
（Ｓ３０）制御回路１２は、エラー発生により、訂正可能なエラー通知を受けると、先ず、制御回路１２は、エラーの通知頻度を調べる。エラーの通知頻度がしきい値を越えたら、制御回路１２は、その回路ブロックは、代替が必要と判断する。
【００７４】
（Ｓ３２）制御回路１２は、代替が必要と判断したら、その影響範囲（不良箇所を含む回路ブロック３−２）を特定し、その動作を停止する。
【００７５】
（Ｓ３４）制御回路１２は、マップ１２Ａを参照し、エラー通知回路ブロック３−２の属するグループに、再構成されていないＦＰＧＡ回路６−２が存在するか否かを判定する。存在しない場合には、代替処理を中止し、エラー訂正を継続しながら、動作を続行する。
【００７６】
（Ｓ３６）一方、エラー通知回路ブロック３−２の属するグループに、再構成されていないＦＰＧＡ回路６−２が存在する場合には、制御回路１２は、各回路ブロックの論理プログラムを格納するＲＯＭ１０から、エラーが発生した回路ブロック３−２の論理情報に係る論理プログラムを読み出す。そして、読み出した論理プログラムを、そのブロック３−２の属するグループ内のＦＰＧＡブロック６−２に展開し、エラーの発生したブロック３−２と，正常な等価回路を再構成する。
【００７７】
（Ｓ３８）続いて、制御回路１２は、図９に示すように、再構成されたブロック６−２を、プログラマブルバス１４−３に接続し、且つエラー回路ブロック３−２と、再構成された回路ブロック６−２の入力を並列に接続する。次に、エラー回路ブロック３−２と、再構成された回路ブロック６−２を、プログラマブルバス１４−２に付随する状態監視バス１４−２’に接続し、状態監視バス１４−２’を介し、両回路ブロック３−２，６−２の出力と内部ステートを接続し、同期させる。
【００７８】
（Ｓ４０）制御回路１２は、同期完了後、代替を指示する。即ち、図１０に示すように、マップ１２Ａを参照して、プログラマブルバス１４−３，１４−２のスイッチを切り替え、回路ブロック６−２を、回路ブロック３−１，３−３に接続する。これにより、障害の発生したブロック３−２は、周辺の回路から論理的に切り離され、再構成した回路６−２が組み込まれる。更に、回路ブロック３−２を状態監視バス１４−２’から切り離す。
【００７９】
この予め設定しておいたエラー発生頻度の閾値を超えたら、自動で代替処理を実行する方法の代わりに、予め設定しておいたエラー累積発生回数の閾値を超えたら、停止・初期化処理を行わずに切り替える方式も選択できる。この場合は、動作中にＦＰＧＡブロック６−２に対して不良ブロックの回路コピーを行い、入力信号のみ並列に接続して回路の状態が同期したら、出力の接続を変更して不良ブロックの切り離しを行う。尚、同期の確認は、出力信号および内部状態を監視する信号を比較することにより行われる。
【００８０】
＊＊他の実施の形態＊＊
この代替処理情報を記録することは、有効である。代替処理を行ったブロックに関する情報は、制御回路１２の不揮発メモリ（マップ１２Ａで示す）に記録され、システムの電源を、オフしても保持される。
【００８１】
電源再投入時には、代替処理で使用されるＦＰＧＡブロックの設定は、全て自動で行われる。又、より重要度の高い回路ブロックに、既に割り当て済みの代替ブロックを再割り当てする等の再変更を行うことも可能である。
【００８２】
又、図２のインタフェース回路を有するシステムコントローラで説明したが、他の機能の回路にも適用できる。  
【００８３】
（付記１）回路のエラーの検出に応じて、プログラムにより再構成可能な回路を、前記回路の機能に再構成する動的代替機能を有する論理集積回路において、複数の機能回路ブロックに分割された回路と、前記分割された各機能回路ブロック間を接続するプログラマブルバスと、再構成可能な回路と、前記機能回路ブロックの再構成データを格納するメモリと、前記機能回路ブロックのエラーの検出に応じて、前記メモリから前記エラーが検出された機能回路ブロックの再構成データを読み出し、前記再構成可能な回路を、前記再構成データを用いて前記エラーを検出した機能回路ブロックに再構成する制御回路と、を有することを特徴とする動的代替機能を有する論理集積回路。
【００８４】
（付記２）前記プログラマブルバスは、一の回路に係る前記複数の機能回路ブロックを接続するように、設定されており、前記制御回路は、前記エラーが検出された機能回路ブロックを前記プログラマブルバスから切り離し、且つ前記再構成された回路を、前記プログラマブルバスに接続して、前記エラーが検出された機能回路ブロック以外の機能回路ブロックと接続することを特徴とする付記１の動的代替機能を有する論理集積回路。
【００８５】
（付記３）回路のエラーの検出に応じて、プログラムにより再構成可能な回路を、前記回路の機能に再構成する動的代替機能を有する論理集積回路を含む情報処理装置において、複数の機能回路ブロックに分割された回路と、前記分割された各機能回路ブロック間を接続するプログラマブルバスと、再構成可能な回路と、前記機能回路ブロックの再構成データを格納するメモリと、前記機能回路ブロックのエラーの検出に応じて、前記メモリから前記エラーが検出された機能回路ブロックの再構成データを読み出し、前記再構成可能な回路を、前記再構成データを用いて前記エラーを検出した機能回路ブロックに再構成する制御回路とを有する論理集積回路を備えることを特徴とする情報処理装置。
【００８６】
（付記４）前記プログラマブルバスは、一の回路に係る前記複数の機能回路ブロックを接続するように、設定されており、前記制御回路は、前記エラーが検出された機能回路ブロックを前記プログラマブルバスから切り離し、且つ前記再構成された回路を、前記プログラマブルバスに接続して、前記エラーが検出された機能回路ブロック以外の機能回路ブロックと接続する論理集積回路を備えることを特徴とする情報処理装置。
【００８７】
（付記５）回路のエラーの検出に応じて、プログラムにより再構成可能な回路を、前記回路の機能に再構成する論理集積回路の動的代替方法において、回路内の機能回路ブロックのエラーを検出するステップと、前記機能回路ブロックの再構成データを格納するメモリから、前記エラーが検出された機能回路ブロックの再構成データを読み出すステップと、前記再構成可能な回路を、前記再構成データを用いて前記エラーを検出した機能回路ブロックに再構成するステップとを有することを特徴とする論理集積回路の動的代替方法。
【００８８】
（付記６）前記複数の機能回路ブロックの各々は、前記複数の機能回路ブロック間の送受信信号のエラーを検出するエラー検出回路を有し、前記エラー検出回路のエラー発生状況をチエックして、前記エラーを生じた機能回路ブロックを特定することを特徴とする付記１の動的代替機能を有する論理集積回路。
【００８９】
（付記７）前記送受信する複数の機能回路ブロックの少なくとも一方に、前記エラー検出回路のエラー発生状況をチエックして、前記エラーを生じた機能回路ブロックを特定する比較回路を設けたことを特徴とする付記６の動的代替機能を有する論理集積回路。
【００９０】
（付記８）前記制御回路は、前記比較回路の特定結果を受け、前記エラー検出した機能回路ブロックに対応する前記再構成可能な回路を特定することを特徴とする付記７の動的代替機能を有する論理集積回路。
【００９１】
（付記９）前記制御回路は、前記複数の機能回路ブロックの配置を格納するマップを有し、前記機能回路ブロックのエラー検出に応じて、前記マップを参照して、前記エラー検出した機能回路ブロックと、前記機能回路ブロックに対応する前記再構成可能な回路を特定することを特徴とする付記１の動的代替機能を有する論理集積回路。
【００９２】
（付記１０）前記制御回路は、前記特定した再構成可能な回路を、前記エラーを検出した機能回路ブロックに再構成したことに応じて、前記マップを更新することを特徴とする付記９の動的代替機能を有する論理集積回路。
【００９３】
（付記１１）固定回路のエラーの検出に応じて、プログラムにより再構成可能な回路を、前記固定回路の機能に再構成する動的代替機能を有する論理集積回路において、各々複数の機能回路ブロックに分割された複数の固定回路と、前記分割された各機能回路ブロック間を接続するプログラマブルバスと、前記複数の機能回路ブロックに対応して設けられた複数の再構成可能な回路と、前記機能回路ブロックの再構成データを格納するメモリと、前記機能回路ブロックのエラーの検出に応じて、前記エラーが検出された機能回路ブロックに対応する前記再構成可能な回路を特定し、前記メモリから前記エラーが検出された機能回路ブロックの再構成データを読み出し、前記特定した再構成可能な回路を、前記エラーを検出した機能回路ブロックに再構成する制御回路とを有し、前記エラーが検出された機能回路ブロックを前記プログラマブルバスから切り離し、且つ前記再構成された回路を、前記プログラマブルバスに接続することを特徴とする動的代替機能を有する論理集積回路。
【００９４】
（付記１２）前記プログラマブルバスは、一の固定回路に係る前記複数の機能回路ブロックを接続するように、設定されており、前記制御回路は、前記エラーが検出された機能回路ブロックを前記プログラマブルバスから切り離し、且つ前記再構成された回路を、前記プログラマブルバスに接続して、前記エラーが検出された機能回路ブロック以外の機能回路ブロックと接続することを特徴とする付記１１の動的代替機能を有する論理集積回路。
【００９５】
（付記１３）固定回路のエラーの検出に応じて、プログラムにより再構成可能な回路を、前記固定回路の機能に再構成する動的代替機能を有する論理集積回路を含む情報処理装置において、各々複数の機能回路ブロックに分割された複数の固定回路と、前記分割された各機能回路ブロック間を接続するプログラマブルバスと、前記複数の機能回路ブロックに対応して設けられた複数の再構成可能な回路と、前記機能回路ブロックの再構成データを格納するメモリと、前記機能回路ブロックのエラーの検出に応じて、前記エラーが検出された機能回路ブロックに対応する前記再構成可能な回路を特定し、前記メモリから前記エラーが検出された機能回路ブロックの再構成データを読み出し、前記特定した再構成可能な回路を、前記エラーを検出した機能回路ブロックに再構成する制御回路とを有し、前記エラーが検出された機能回路ブロックを前記プログラマブルバスから切り離し、且つ前記再構成された回路を、前記プログラマブルバスに接続することを特徴とする動的代替機能を有する論理集積回路を含む情報処理装置。
【００９６】
（付記１４）前記プログラマブルバスは、一の固定回路に係る前記複数の機能回路ブロックを接続するように、設定されており、前記制御回路は、前記エラーが検出された機能回路ブロックを前記プログラマブルバスから切り離し、且つ前記再構成された回路を、前記プログラマブルバスに接続して、前記エラーが検出された機能回路ブロック以外の機能回路ブロックと接続することを特徴とする付記１３の動的代替機能を有する論理集積回路を含む情報処理装置。
【００９７】
（付記１５）固定回路のエラーの検出に応じて、プログラムにより再構成可能な回路を、前記固定回路の機能に再構成する論理集積回路の動的代替方法において、各々複数の機能回路ブロックに分割された複数の固定回路において、前記機能回路ブロックのエラーを検出するステップと、前記機能回路ブロックのエラーの検出に応じて、前記エラーが検出された機能回路ブロックに対応する前記再構成可能な回路を特定するステップと、前記機能回路ブロックの再構成データを格納するメモリから、前記エラーが検出された機能回路ブロックの再構成データを読み出すステップと、前記特定した再構成可能な回路を、前記エラーを検出した機能回路ブロックに再構成するステップと，前記エラーが検出された機能回路ブロックを前記分割された各機能回路ブロック間を接続するプログラマブルバスから切り離すステップと、前記再構成された回路を、前記プログラマブルバスに接続するステップとを有することを特徴とする論理集積回路の動的代替方法。
【００９８】
（付記１６）回路のエラーの検出に応じて、プログラムにより再構成可能な回路を、前記回路の機能に再構成する動的代替機能を有する論理集積回路において、複数の機能回路ブロックに分割された回路と、前記分割された各機能回路ブロック間を接続するプログラマブルバスと、複数のブロックに分割された再構成可能な回路と、前記機能回路ブロックの再構成データを格納するメモリと、前記機能回路ブロックのエラーの検出に応じて、前記メモリから前記エラーが検出された機能回路ブロックの再構成データを読み出し、前記複数の機能回路ブロックに分割された回路と前記複数のブロックに分割された再構成可能な回路を、グループ化することを特徴とする動的代替機能を有する論理集積回路。
【産業上の利用可能性】
【００９９】
固定回路を、複数の機能回路ブロックに分割し、これらをプログラマブルバスで接続し、且つ各機能回路ブロックに対応した再構成可能な回路を設けたので、再構成範囲が不良箇所を含むブロックに限られるため、代替処理は短時間で終了する。また、代替処理の影響がない範囲は、代替処理中も動作を継続することが可能である。
【図面の簡単な説明】
【０１００】
【図１】本発明の一実施形態の論理集積回路の構成図
【図２】図１の回路を適用したコンピュータシステムの構成図
【図３】図１及び図２の詳細回路ブロック図
【図４】図３のエラー検出構成のブロック図
【図５】図３及び図４のエラーブロック特定動作の説明図
【図６】本発明の第１の実施の形態の再構成処理フロー図
【図７】図６の再構成動作の説明図
【図８】本発明の第２の実施の形態の再構成処理フロー図
【図９】図８の再構成における同期動作の説明図
【図１０】図８の再構成における切り離し動作の説明図である。
【符号の説明】
【０１０１】
１  ＬＳＩ（論理集積回路）
２  ＣＰＵインタフェース回路
２−１，２−２，２−３  ＣＰＵ機能回路ブロック
３  Ｉ／Ｏインタフェース回路
４  ＳＣ／ＸＢインタフェース回路
５  メモリインタフェース回路
６−１，６−２，６−３  ＦＰＧＡ回路（再構成可能な回路）
１０  ＲＯＭ
１２  制御回路
１４−１，１４−２，１４−３，１４−４  プログラマブルバス
２０，２２，４０，４４  エラー検出回路
４６  比較回路
【図１】
2006309700.tif 000003
【図２】
2006309700.tif 000004
【図３】
2006309700.tif 000005
【図４】
2006309700.tif 000006
【図５】
2006309700.tif 000007
【図６】
2006309700.tif 000008
【図７】
2006309700.tif 000009
【図８】
2006309700.tif 000010
【図９】
2006309700.tif 000011
【図１０】
2006309700.tif 000012