(57)【要約】【課題】情報処理を停止することなく、故障前と同じ情報処理を継続して実行する情報処理装置を得ること。【解決手段】ＦＰＧＡで構成されるとともに外部入力された入力情報に対して同じ情報処理を行う多重化された第１〜第３の処理系統１１Ａ〜１１Ｃと、各処理系統から出力される処理結果の多数決を行なう多数決判定論理部１５と、故障の発生した処理系統を検出する故障系統検出回路２０と、故障が検出された際に、故障の発生した処理系統と同じ機能を有した処理系統をＦＰＧＡに再構成して新規な処理系統を形成する再構成部２８と、を備え、各処理系統は、自身の回路状態を記憶する記憶部をそれぞれ有し、再構成部２８は、故障が発生した際に、正常動作中の処理系統の記憶部に記憶させる回路状態と同じ情報を新規な処理系統の記憶部に入力し、その後、新規な処理系統に正常動作中の処理系統と同じ情報処理を行なわせる。【選択図】図１
2011216020.tif 000002
【特許請求の範囲】
【請求項１】
再構成可能な回路で構成されるとともに、外部入力された入力情報に対して同じ情報処理を行う多重化された複数の情報処理部と、
前記各情報処理部から出力される情報処理の処理結果に基づいて前記処理結果の多数決を行ない、多数決で決定した処理結果を出力する多数決判定部と、
前記各情報処理部から出力される前記各処理結果に基づいて故障の発生した情報処理部を検出する故障検出部と、
前記故障検出部が故障の発生した情報処理部を検出した際に、前記再構成可能な回路に、前記故障の発生した情報処理部と同じ機能を有した情報処理部を再構成して新規情報処理部を形成する再構成部と、
を備え、
前記各情報処理部は、自身の回路状態を記憶する記憶部をそれぞれ有し、
前記再構成部は、前記情報処理部の故障が発生した際に、正常動作中の情報処理部が有する記憶部に記憶させる回路状態の情報と同じ情報を正常回路状態情報として前記新規情報処理部の記憶部に入力し、その後、前記新規情報処理部に前記正常動作中の情報処理部と同じ情報処理を行なわせることを特徴とする情報処理装置。
【請求項２】
前記故障検出部が検出した情報処理部内から故障の発生した領域を特定する故障領域特定部をさらに備え、
前記再構成部は、前記故障領域特定部が特定した領域を除外して、前記再構成可能な回路に新規情報処理部を形成することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記再構成部は、前記入力情報および前記正常回路状態情報の何れか一方を前記再構成部の指示に基づいて選択し前記新規情報処理部の記憶部に入力する第１の選択部を、前記新規情報処理部を形成する際に前記新規情報処理部内に形成し、
前記第１の選択部は、前記新規情報処理部が前記正常動作中の情報処理部と同じ情報処理を行う前に前記正常回路状態情報を選択して前記新規情報処理部の記憶部に入力し、その後、前記入力情報を選択して前記新規情報処理部の記憶部に入力することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記各情報処理部は、前記入力情報および前記正常回路状態情報の何れか一方を前記再構成部の指示に基づいて選択し自身の記憶部に入力する第２の選択部を有し、
前記新規情報処理部の前記第２の選択部は、前記新規情報処理部が前記正常動作中の情報処理部と同じ情報処理を行う前に前記正常回路状態情報を選択して前記新規情報処理部の記憶部に入力し、その後、前記入力情報を選択して前記新規情報処理部の記憶部に入力することを特徴とする請求項１または２に記載の情報処理装置。
【請求項５】
外部入力された入力情報に対して同じ情報処理を行う複数の情報処理部を有するとともに前記各情報処理部から出力される情報処理の処理結果に基づいて前記処理結果の多数決を行ない多数決で決定した処理結果を出力する多数決回路と、前記各情報処理部から出力される前記各処理結果に基づいて前記多数決回路の故障を検出する故障検出回路と、を含んで構成された複数組の情報処理回路と、
再構成可能な回路が配置された領域であり、且つ前記故障検出回路が故障を検出した場合に故障の発生した情報処理回路である故障回路と同じ機能を有した新規回路が前記再構成可能な回路を用いて再構成される再構成回路領域と、
前記故障検出回路が故障を検出した際に、前記新規回路を前記再構成回路領域内に形成する再構成制御部と、
を備え、
前記再構成制御部は、前記新規回路を前記再構成回路領域内に形成した後、前記故障回路を前記新規回路に切替えて、故障する前の前記故障回路と動作と同じ動作を前記新規回路に実行させることを特徴とする情報処理装置。
【請求項６】
前記新規回路の多数決回路から出力される処理結果および前記故障回路の多数決回路から出力される処理結果の何れか一方を前記再構成制御部の指示に基づいて選択し後段部に出力する第１の切替部と、
前記新規回路の故障検出回路から出力される故障検出結果および前記故障回路の故障検出回路から出力される故障検出結果の何れか一方を前記再構成制御部の指示に基づいて選択し前記再構成制御部に出力する第２の切替部と、
が、それぞれ前記新規回路を形成する際に前記故障回路および前記新規回路に接続され、
前記第１の切替部は、前記故障回路を前記新規回路に切替える前は前記故障回路の多数決回路から出力される処理結果を選択して後段部に出力し、前記故障回路を前記新規回路に切替える際に前記新規回路の多数決回路から出力される処理結果を選択して後段部に出力し、
前記第２の切替部は、前記故障回路を前記新規回路に切替える前は前記故障回路の故障検出回路から出力される故障検出結果を選択して前記再構成制御部に出力し、前記故障回路を前記新規回路に切替える際に前記新規回路の故障検出回路から出力される故障検出結果を選択して前記再構成制御部に出力することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記故障回路が発生した場合に前記新規回路を形成する優先度を前記多数決回路毎に予め設定した優先度情報を記憶する記憶部をさらに備え、
前記再構成制御部は、複数の故障回路が発生した際には、前記優先度情報に基づいて、優先度の高い故障回路から順番に新規回路を形成していくことを特徴とする請求項５または６に記載の情報処理装置。
【請求項８】
再構成される回路の配置配線に関する再構成データを前記回路の設計データに基づいて生成するとともに多重化された複数の再構成データ生成部と、
再構成可能な回路である再構成可能回路に前記再構成データに応じた回路を形成するための設定情報を、前記再構成データに基づいて生成する前記再構成データ生成部毎の多重化された再構成部と、
前記各再構成部から出力される設定情報に基づいて前記設定情報の多数決を行ない、多数決で決定した設定情報を出力して、前記再構成可能回路に前記再構成データに応じた回路を形成する多数決判定部と、
を備えることを特徴とする回路再構成装置。
【請求項９】
前記再構成データ生成部は、再構成される前記回路の故障に関する情報を用いて前記再構成データを生成することを特徴とする請求項８に記載の回路再構成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、再構成可能な半導体集積回路に回路再構成する情報処理装置および回路再構成装置に関する。
【背景技術】
【０００２】
半導体集積回路の微細化に伴って、再構成可能な半導体集積回路が高集積化され、これにより、再構成可能な半導体集積回路が大規模な情報処理システムに利用されるようになってきた。このような、再構成可能な半導体集積回路では、半導体プロセスの微細化や電源の低電圧化によって、宇宙線によるソフトエラーなどの問題が顕著になってきている。このため、故障発生時にも情報処理システムを正常な状態に復旧する方法が求められている。
【０００３】
また、再構成可能な半導体集積回路の１つであり電気的に書き換え可能なＦＰＧＡ（Field  Programmable  Gate  Array）でも、ＳＲＡＭ（Static  Random  Access  Memory）等のメモリで発生するソフトエラーをＥＣＣ（Error  Check  and  Correct）回路によって訂正する方法などのように、故障発生時への対処方法が求められている。
【０００４】
例えば、特許文献１には、製造時に正常に機能したことが確認されているデータ処理回路に、破損や異常が発生しても正常に動作し続ける回路に関する技術が開示されている。この回路は、複数個（奇数個）の自己診断機能部を有する同じ処理回路と、これら複数個の処理回路から出力された出力信号を比較し、同じ出力結果が多数の方の回路の結果を正常な出力信号と判断して出力する比較回路と、を備えている。
【０００５】
また、特許文献２の情報処理装置は、所定機能を実現する論理処理部と、再構成可能に構成され論理処理部の所定機能を再現しうる予備論理処理部と、障害発生検出時に論理処理部の構成データに基づいて予備論理処理部を論理処理部と同一の論理回路構成になるように再構成する再構成手段とを備えている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−１４７０５８号公報
【特許文献２】特開平８−４４５８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記前者の従来技術では、故障した処理回路を正常動作中の処理回路と同一の状態に再設定することができなかった。そのため、情報処理に用いる処理回路は、フィードバックが存在しないデータ処理回路に限定されるという問題があった。
【０００８】
また、上記後者の従来技術では、正常な機能を再現するためには動作中の回路を一旦停止する必要があった。このため、故障が発生してから正常な機能を再現するまでの間は、情報処理を行うことができないという問題があった。
【０００９】
本発明は、上記に鑑みてなされたものであって、情報処理を停止することなく、故障前と同じ情報処理を継続して実行する情報処理装置および回路再構成装置を得ることを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明は、再構成可能な回路で構成されるとともに、外部入力された入力情報に対して同じ情報処理を行う多重化された複数の情報処理部と、前記各情報処理部から出力される情報処理の処理結果に基づいて前記処理結果の多数決を行ない、多数決で決定した処理結果を出力する多数決判定部と、前記各情報処理部から出力される前記各処理結果に基づいて故障の発生した情報処理部を検出する故障検出部と、前記故障検出部が故障の発生した情報処理部を検出した際に、前記再構成可能な回路に、前記故障の発生した情報処理部と同じ機能を有した情報処理部を再構成して新規情報処理部を形成する再構成部と、を備え、前記各情報処理部は、自身の回路状態を記憶する記憶部をそれぞれ有し、前記再構成部は、前記情報処理部の故障が発生した際に、正常動作中の情報処理部が有する記憶部に記憶させる回路状態の情報と同じ情報を正常回路状態情報として前記新規情報処理部の記憶部に入力し、その後、前記新規情報処理部に前記正常動作中の情報処理部と同じ情報処理を行なわせることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、情報処理を停止することなく、故障前と同じ情報処理を継続して実行することが可能になるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施の形態１に係る情報処理装置の構成を示す図である。
【図２】図２は、情報処理装置の故障修復処理手順を示すフローチャートである。
【図３】図３は、故障ブロックの特定方法の一例を説明するための図である。
【図４】図４は、故障した処理系統部内の順序回路の設定処理を説明するための図である。
【図５】図５は、実施の形態２に係るＦＰＧＡの構成を示す図である。
【図６】図６は、図５に示したＦＰＧＡの詳細な構成を示す図である。
【図７】図７は、多数決回路の再構成処理手順を示すフローチャートである。
【図８】図８は、多数決回路の再構成処理手順を説明するための図である。
【図９】図９は、多数決回路の再構成処理手順を説明するための図である。
【図１０】図１０は、故障した多数決回路から新規に再構成した多数決回路への切替え処理を説明するための図である。
【図１１】図１１は、エラー管理・制御部の構成を示す図である。
【図１２】図１２は、優先度が高い方の多数決回路を再構成する際のＦＰＧＡの処理を示す図である。
【図１３】図１３は、優先度が低い方の多数決回路を再構成する際のＦＰＧＡの処理を示す図である。
【図１４】図１４は、複数の多数決回路が再構成された後のＦＰＧＡの構成を示す図である。
【図１５】図１５は、実施の形態３に係る回路再構成装置の構成を示す図である。
【発明を実施するための形態】
【００１３】
以下に、本発明の実施の形態に係る情報処理装置を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。実施の形態１〜３で説明する再構成可能な半導体集積回路とは、例えばＦＰＧＡ（Field  Programmable  Gate  Array）のようにプログラムによって回路の機能を書き換え可能なデバイスである。なお、再構成可能な半導体集積回路としては、デバイス中の回路を部分的に書き換えることによって、短時間で回路を再構成できるデバイスなど何れのデバイスを用いてもよい。
【００１４】
実施の形態１．
図１は、実施の形態１に係る情報処理装置の構成を示す図である。図１では、情報処理装置１０の一例として、所定の情報処理を行いつつ故障発生時には自ら自己修復を行なう自己修復装置の構成を示している。情報処理装置１０は、再構成可能な半導体集積回路（後述の処理系統部）を備えており、故障発生時には再構成可能な半導体集積回路の修復を行う。情報処理装置１０は、所定の情報処理を行う情報処理システムなどに用いられる。なお、情報処理装置１０内の各処理系統部以外の構成要素は、再構成可能な半導体集積回路で構成してもよいし、再構成のできない半導体集積回路で構成してもよい。
【００１５】
情報処理装置１０は、再構成可能な半導体集積回路（論理の再構成が可能な回路）（半導体装置）の内部に実装されている機能が故障した場合に、情報処理システムの動作を停止することなく、故障した機能を自律的に修復し復元する。
【００１６】
情報処理装置１０は、３重多数決回路１と、故障系統検出回路（故障検出部）２０と、故障診断部（故障領域特定部）２６と、再構成データ生成部２７と、再構成部２８と、を有している。３重多数決回路１は、第１の処理系統１１Ａ、第２の処理系統１１Ｂ、第３の処理系統１１Ｃから出力される処理結果の多数決に基づいて、正常な処理結果を選択し出力する回路である。
【００１７】
３重多数決回路１は、第１の処理系統１１Ａ、第２の処理系統１１Ｂ、第３の処理系統１１Ｃ、比較部１２〜１４、多数決判定論理部（多数決判定部）１５を有している。なお、以下の説明では、第１の処理系統１１Ａ、第２の処理系統１１Ｂ、第３の処理系統１１Ｃを、処理系統部（情報処理部）という場合がある。
【００１８】
第１の処理系統１１Ａ、第２の処理系統１１Ｂ、第３の処理系統１１Ｃは、それぞれ同一の構成を有しており、それぞれ同一の機能（情報処理）を達成する。各処理系統部は、再構成可能な半導体集積回路で構成されており、複数のブロック（再構成可能な半導体集積回路）が配線で接続されて形成されている。各処理系統部の情報入力側は、それぞれ共通配線Ｌ１に接続されており、各処理系統部へは、共通配線Ｌ１を介して情報処理用の同一の情報が入力される。
【００１９】
また、第１の処理系統１１Ａ、第２の処理系統１１Ｂ、第３の処理系統１１Ｃは、それぞれ情報出力側が出力側配線Ｌ２Ａ、出力側配線Ｌ２Ｂ、出力側配線Ｌ２Ｃに接続されている。そして、各処理系統部の出力側配線Ｌ２Ａ〜Ｌ２Ｃは、それぞれ多数決判定論理部１５に接続されている。
【００２０】
多数決判定論理部１５は、各処理系統部から送られてくる処理結果（出力信号）に基づいて、何れの処理結果が正常な処理結果であるかを判定し、正常な処理結果を後段のブロック（図示せず）に出力する。具体的には、多数決判定論理部１５は、各処理系統部から送られてくる処理結果を比較し、同じ出力結果が多数の方の処理結果を正常な処理結果と判定して出力する。
【００２１】
比較部１２は、出力側配線Ｌ２Ａと、出力側配線Ｌ２Ｂと、比較結果出力線２２と、に接続されている。また、比較部１３は、出力側配線Ｌ２Ｂと、出力側配線Ｌ２Ｃと、比較結果出力線２３と、に接続されている。また、比較部１４は、出力側配線Ｌ２Ｃと、出力側配線Ｌ２Ａと、比較結果出力線２４と、に接続されている。
【００２２】
比較部１２〜１４は、多数決判定論理部１５が処理結果の多数決に基づいて正常な処理結果を出力している間、それぞれが接続されている処理系統部間の処理結果を比較し、比較結果を故障系統検出回路２０に出力する。
【００２３】
比較部１２は、第１の処理系統１１Ａから出力側配線Ｌ２Ａを介して送られてくる処理結果と、第２の処理系統１１Ｂから出力側配線Ｌ２Ｂを介して送られてくる処理結果と、を比較し、比較結果を比較結果出力線２２を介して故障系統検出回路２０に送る。
【００２４】
比較部１３は、第２の処理系統１１Ｂから出力側配線Ｌ２Ｂを介して送られてくる処理結果と、第３の処理系統１１Ｃから出力側配線Ｌ２Ｃを介して送られてくる処理結果と、を比較し、比較結果を比較結果出力線２３を介して故障系統検出回路２０に送る。
【００２５】
比較部１４は、第３の処理系統１１Ｃから出力側配線Ｌ２Ｃを介して送られてくる処理結果と、第１の処理系統１１Ａから出力側配線Ｌ２Ａを介して送られてくる処理結果と、を比較し、比較結果を比較結果出力線２４を介して故障系統検出回路２０に送る。
【００２６】
故障系統検出回路２０は、比較部１２〜１４からの比較結果に基づいて、処理系統部の故障検出、故障の発生した処理系統部の特定を行なう。故障系統検出回路２０は、情報出力側が故障結果出力線２５に接続されている。故障系統検出回路２０は、故障の検出結果（特定結果）を故障系統情報として故障結果出力線２５から再構成データ生成部２７に出力する。また、故障系統検出回路２０は、故障系統情報を故障診断部２６に送信する。
【００２７】
故障診断部２６は、故障の発生した処理系統部の故障診断を行う。故障診断部２６は、例えば、特開２０００−１４７０５８号公報などで用いられている自己診断機能などによって故障診断を行なう。この場合、処理系統部と同数の故障診断部２６を準備しておき、各処理系統部に１つずつの故障診断部２６を１対１で接続しておく。なお、故障診断の方法は、故障ブロックの特定が可能であれば何れの方法で行なってもよい。故障ブロックの特定方法としては、例えば二分探索のように故障診断領域を狭めて行く方法がある。
【００２８】
再構成データ生成部２７は、故障した処理系統部を再構成するための再構成データを生成する。再構成データは、例えば再構成可能な半導体集積回路に所望の機能を実現するためのプログラムを生成するためのデータや、再構成可能な半導体集積回路のコンフィグレーションデータを生成するためのデータである。コンフィグレーションデータは、故障ブロックを除いたブロックのブロック間を配置配線するためのデータ（配置配線を指示する情報など）である。
【００２９】
再構成部２８は、再構成データ生成部２７が生成したコンフィグレーションデータなどを用いてブロック間の配置配線を行ない、これにより、再構成可能な半導体集積回路を用いて故障した回路（処理系統部）の再構成を行なう。
【００３０】
なお、情報処理装置１０のうち３重多数決回路１以外の構成要素は、ハードウェア（構成要素毎の回路）のみで構成してもよいし、ハードウェアとソフトウェアを用いて構成してもよい。３重多数決回路１以外の構成要素をハードウェアとソフトウェアを用いて構成する場合、例えば各構成要素を、マイクロプロセッサ、ＲＯＭ（Read  Only  Memory）、ＲＡＭ（Random  Access  Memory）などを用いて構成しておく。そして、マイクロプロセッサが、コンピュータプログラムである再構成プログラム（処理系統部の再構成を行うプログラム）を用いて故障検出や再構成などに関する制御を行う。
【００３１】
再構成プログラムは、ＲＯＭ内に格納されており、バスラインを介してＲＡＭへロードされる。具体的には、ＣＰＵがＲＯＭ内からフロー制御プログラムを読み出してＲＡＭ内のプログラム格納領域に展開して各種処理を実行する。
【００３２】
情報処理装置１０で実行される再構成プログラムは、それぞれ故障系統検出回路２０、故障診断部２６、再構成データ生成部２７、再構成部２８を含むモジュール構成となっており、これらが主記憶装置上にロードされ、これらが主記憶装置上に生成される。
【００３３】
つぎに、情報処理装置の故障修復処理手順について説明する。図２は、情報処理装置の故障修復処理手順を示すフローチャートである。情報処理装置１０では、第１の処理系統１１Ａ、第２の処理系統１１Ｂ、第３の処理系統１１Ｃに、共通配線Ｌ１から情報処理用の同一の情報が入力される。各処理系統部は、入力された情報を用いた情報処理を行い、処理結果をそれぞれ出力側配線Ｌ２Ａ〜Ｌ２Ｃから出力する。
【００３４】
多数決判定論理部１５は、各処理系統部から送られてくる処理結果を比較し、同じ出力結果が多数の方の処理結果を正常な処理結果と判定して出力する。これにより、情報処理装置１０では、処理系統部のうちの１つが故障した場合においても多数決判定論理部１５によって正常に動作している２つの処理系統部からの処理結果が選択されて出力される。例えば、第３の処理系統１１Ｃが故障した場合、多数決判定論理部１５は、第１の処理系統１１Ａからの処理結果と第２の処理系統１１Ｂからの処理結果の何れかを選択して出力する。
【００３５】
比較部１２〜１４は、多数決判定論理部１５が処理結果の多数決に基づいて正常処理された処理結果を出力している間、それぞれが接続されている処理系統部間の処理結果を比較し、比較結果を故障系統検出回路２０に出力する。
【００３６】
具体的には、比較部１２は、第１の処理系統１１Ａからの処理結果と、第２の処理系統１１Ｂからの処理結果と、を比較し、比較結果を比較結果出力線２２を介して故障系統検出回路２０に送る。
【００３７】
また、比較部１３は、第２の処理系統１１Ｂからの処理結果と、第３の処理系統１１Ｃからの処理結果と、を比較し、比較結果を比較結果出力線２３を介して故障系統検出回路２０に送る。
【００３８】
また、比較部１４は、第３の処理系統１１Ｃからの処理結果と、第１の処理系統１１Ａからの処理結果と、を比較し、比較結果を比較結果出力線２４を介して故障系統検出回路２０に送る。
【００３９】
故障系統検出回路２０は、比較部１２〜１４からの比較結果に基づいて、処理系統部の故障検出、故障の発生した処理系統部を特定する（ステップＳ１０１）。例えば、第３の処理系統１１Ｃが故障した場合、第２の処理系統１１Ｂからの処理結果と第３の処理系統１１Ｃからの処理結果とは一致しない。また、第３の処理系統１１Ｃからの処理結果と第１の処理系統１１Ａからの処理結果とは一致しない。一方、第１の処理系統１１Ａからの処理結果と第２の処理系統１１Ｂからの処理結果とは一致する。
【００４０】
このため、比較部１３は、処理結果が不一致であることを示す比較結果を比較結果出力線２３を介して故障系統検出回路２０に送る。また、比較部１４は、処理結果が不一致であることを示す比較結果を比較結果出力線２４を介して故障系統検出回路２０に送る。また、比較部１２は、処理結果が一致していることを示す比較結果を比較結果出力線２２を介して故障系統検出回路２０に送る。
【００４１】
故障系統検出回路２０は、比較結果出力線２２〜２４を介して送られてくる比較結果に基づいて、処理系統部の故障検出、故障の発生した処理系統部の特定を行なう。ここでは、第２の処理系統１１Ｂと第３の処理系統１１Ｃとの比較結果が不一致を示し、且つ、第３の処理系統１１Ｃと第１の処理系統１１Ａとの比較結果が不一致を示し、且つ第１の処理系統１１Ａと第２の処理系統１１Ｂとの比較結果が一致を示しているので、第３の処理系統１１Ｃが故障していると判定される。故障系統検出回路２０は、故障系統情報として、第３の処理系統１１Ｃが故障していることを示す情報を、故障結果出力線２５から再構成データ生成部２７に出力する。
【００４２】
故障の発生した処理系統部を特定した後、情報処理装置１０の故障診断部２６は、特定した処理系統部の故障診断を行なうことによって故障した物理的な位置（故障ブロック）を特定する。
【００４３】
続いて、情報処理装置１０の再構成データ生成部２７は、故障した処理系統部を再構成するための再構成データを生成する。そして、再構成部２８は、再構成可能な半導体集積回路を用いて構成されたブロックのブロック間の配置配線を、再構成データに基づいて行なう（ステップＳ１０２）。故障ブロック以外の正常なブロック間が配線によって接続されることにより、故障した処理系統部と同一機能を達成する新たな処理系統部が形成され、この結果、処理系統部が復元される。
【００４４】
故障診断部２６は、故障の発生した処理系統部の故障診断を行う。このとき、故障系統検出回路２０は、故障系統情報を故障の発生した処理系統部に接続された故障診断部２６に送信する。これにより、故障の発生した処理系統部に接続された故障診断部２６が故障診断を行ない、この結果、処理系統部内の故障ブロックが特定される。
【００４５】
図３は、故障ブロックの特定方法の一例を説明するための図である。図３では、故障ブロックの特定方法の一例として、ブロックがマトリックス状に配置された回路アーキテクチャに、二分探索を適用した場合について説明する。ここでの回路アーキテクチャは、回路の形成領域内に縦方向および横方向に配置された複数の配線領域３５と、縦方向および横方向に配置された配線領域３５間の結線を行う複数のインターコネクト３６と、配線領域３５に囲まれた領域に配置された複数のブロック３２Ｘと、を備えている。
【００４６】
診断対象となる診断対象領域３０は、隣接する複数のブロック３２Ｘで構成されたブロック群であり、故障した処理系統部を含んだ領域である。図３では、診断対象領域３０内のブロック群を構成するブロックＸをブロック３２Ａ〜３２Ｈとして図示している。
【００４７】
診断対象領域３０は、ブロック３２Ａ〜３２Ｄから成る領域３１Ｘと、ブロック３２Ｅ〜３２Ｈから成る領域３１Ｙと、の２つの領域に分割される。そして、分割後の領域３１Ｘ，３１Ｙの夫々の領域に対して故障診断が実行される。さらに、故障ブロックを含むと判定された領域が２分割されるとともに、分割後の各領域に対して故障診断が実行される。診断対象領域３０内では、これらの領域分割と故障診断が繰り返されることによって、故障ブロックが特定される。
【００４８】
例えば、故障ブロックがブロック３２Ｇである場合、領域３１Ｙが故障ブロックを含む領域であると判定される。そして、領域３１Ｙは、例えばブロック３２Ｅ，３２Ｆからなる領域と、ブロック３２Ｇ，３２Ｈからなる領域とに２分割される。この後、分割後の各領域に対して故障診断が実行され、ブロック３２Ｇ，３２Ｈからなる領域が故障ブロックを含む領域であると判定される。そして、ブロック３２Ｇ，３２Ｈからなる領域が、ブロック３２Ｇと、ブロック３２Ｈとに２分割される。この後、分割後のブロック３２Ｇとブロック３２Ｈに対して故障診断が実行され、ブロック３２Ｇが故障ブロックであると判定される。
【００４９】
故障ブロックが特定された後、再構成部２８は、故障した処理系統部内の順序回路を正常動作中の処理系統部内の順序回路の状態に再設定する（ステップＳ１０３）。図４は、故障した処理系統部内の順序回路の設定処理を説明するための図である。第３の処理系統１１Ｃ´は、第３の処理系統１１Ｃの処理機能が復元されたことによって、第３の処理系統１１Ｃと同一の機能を有することとなった処理系統部（新規情報処理部）である。第３の処理系統１１Ｃ´を復元した後、第３の処理系統１１Ｃ´に、正常動作している第２の処理系統１１Ｂの回路状態をコピーする。換言すると、処理系統部間で同一の機能を有するレジスタ（記憶部）の値を同一の値に再設定しておく。
【００５０】
このため、第１の処理系統１１Ａ内に、第１の処理系統１１Ａの回路状態を記憶するレジスタＲａを配置しておくとともに、レジスタＲａの前段（データ入力段）にセレクタＳａを配置しておく。また、第２の処理系統１１Ｂ内に、第２の処理系統１１Ｂの回路状態を記憶するレジスタＲｂを配置しておくとともに、レジスタＲｂの前段にセレクタＳｂを配置しておく。また、第３の処理系統１１Ｃ内に、第３の処理系統１１Ｃの回路状態を記憶するレジスタＲｃを配置しておくとともに、レジスタＲｃの前段にセレクタＳｃを配置しておく。ここでのセレクタＳａ〜Ｓｃが特許請求の範囲に記載の第２の選択部に対応している。
【００５１】
ここでは、第３の処理系統１１Ｃが故障と判断されたので、処理機能が復元された第３の処理系統１１Ｃ´内にも、第３の処理系統１１Ｃ´の回路状態を記憶するレジスタＲｃ´を配置しておくとともに、レジスタＲｃ´の前段にセレクタＳｃ´を配置しておく。レジスタＲｃ´は、レジスタＲｃと同じ機能を有しており、セレクタＳｃ´は、セレクタＳｃと同じ機能を有している。なお、ここでのセレクタＳｃ´が特許請求の範囲に記載の第１の選択部に対応している。
【００５２】
セレクタＳａの出力側は、レジスタＲａに接続されるとともに、配線１８Ａを介してセレクタＳｂ，Ｓｃ´の入力側に接続されている。また、セレクタＳｂの出力側は、レジスタＲｂに接続されるとともに、配線１８Ｂを介してセレクタＳｃ´，Ｓａの入力側に接続されている。また、セレクタＳｃ´の出力側は、レジスタＲｃ´に接続されるとともに、配線１８Ｃ´を介してセレクタＳｂ，Ｓａの入力側に接続されている。
【００５３】
また、セレクタＳａの入力側は、通常動作時に用いられる情報入力用の配線１７ＡおよびセレクタＳｂ，Ｓｃ´の出力側（配線１８Ｂ，１８Ｃ´）に接続されている。また、セレクタＳｂの入力側は、通常動作時に用いられる情報入力用の配線１７ＢおよびセレクタＳｃ´，Ｓａの出力側（配線１８Ｃ´，１８Ａ）に接続されている。また、セレクタＳｃ´の入力側は、通常動作時に用いられる情報入力用の配線１７Ｃ´およびセレクタＳｂ，Ｓａの出力側（配線１８Ａ，１８Ｂ）に接続されている。
【００５４】
この構成により、セレクタＳａは、正常動作中（通常動作中）の入力値と、レジスタＲｂからの入力値と、レジスタＲｃ´からの入力値と、の何れかを自レジスタへの入力値として選択できる。また、セレクタＳｂは、正常動作中の入力値と、レジスタＲｃ´からの入力値と、レジスタＲａからの入力値と、の何れかを自レジスタへの入力値として選択できる。また、セレクタＳｃ´は、正常動作中の入力値と、レジスタＲａからの入力値と、レジスタＲｂからの入力値と、の何れかを自レジスタへの入力値として選択できる。
【００５５】
ここでは、第３の処理系統１１Ｃ´が再構成されているので、再構成部２８は、セレクタＳｃ´のセレクト信号として、第２の処理系統１１ＢのレジスタＲｂから送られてくる入力値を選択するようセレクタＳｃ´を制御する。これにより、第３の処理系統１１Ｃ´内のレジスタＲｃ´に、第２の処理系統１１ＢのレジスタＲｂに格納される値（正常回路状態情報）と同じ値を、レジスタＲｂへの入力と同時に１サイクルで入力することが可能となる。このとき、レジスタＲｃ´へは、転送パス１９を経由してデータ入力が行なわれる。転送パス１９は、正常動作中のセレクタＳｂへのデータ送信経路、セレクタＳｂからセレクタＳｃ´へのデータ送信経路、セレクタＳｃ´からレジスタＲｃ´へのデータ送信経路である。
【００５６】
なお、図４では、単一レジスタを多重化した構成について説明したが、各処理系統部内に複数のレジスタが存在する場合、レジスタ毎に上述した回路状態のコピーが行なわれる。例えば、各処理系統部が第１〜第Ｎ（Ｎは自然数）のレジスタとセレクタを有している場合、第１の処理系統１１Ａの第Ｍ（Ｍ＝１〜Ｎ）のレジスタとセレクタ、第２の処理系統１１Ｂの第Ｍのレジスタとセレクタ、第３の処理系統１１Ｃ´の第Ｍのレジスタとセレクタをそれぞれ対応付けしておく。
【００５７】
具体的には、図４で示したレジスタＲａ〜Ｒｃ´、セレクタＳａ〜Ｓｃ´と同様の構成を、各処理系統部の第１〜第Ｎのレジスタとセレクタに適用し、これにより、第１〜第Ｎのレジスタを各処理系統部間で多重化する。そして、各処理系統部間で多重化された３つのレジスタを、１つのレジスタ群として、他のレジスタ群と独立して動作させる。これにより、対応付けされたレジスタ群間で互いに同じ値が入力可能となる。
【００５８】
このように、各処理系統部間で多重化されたレジスタ群間で同じデータを入力できるよう情報処理装置１０を構成し、故障発生時には故障の発生した処理系統部を復元しているので、故障した処理系統部内の順序回路を正常動作中の回路状態と同じにすることが可能となる。
【００５９】
また、図４では、全処理系統部が同様の構成を有している場合について説明したが、正常な処理系統部と故障が発生して復元される処理系統部と、を異なる構成としてもよい。例えば、正常な処理系統部は、他の処理系統部系統の値をコピーする必要が無いのでセレクタは不要である。例えば、第１の処理系統１１Ａや第２の処理系統１１Ｂは、復元された処理系統部ではないので、セレクタＳａやセレクタＳｂを有していなくてもよい。この場合、レジスタＲａやレジスタＲｂへは、正常動作中の入力値がそのまま入力される。また、第３の処理系統１１Ｃ´へは、復元の際にセレクタＳｃ´を形成しておくとともに、配線１７Ａ，１７Ｂと接続しておく。
【００６０】
故障した処理系統部内の順序回路を正常動作中の処理系統部内の順序回路に再設定した後、各処理系統部を多数決回路として動作（再開）させる（ステップＳ１０４）。これにより、故障発生時の自律的な処理系統部の故障修復（自己修復）を完了する。自己修復の間、正常に稼動している処理系統部の動作は停止することなく、故障した処理系統部の故障の修復が行なわれる。
【００６１】
このように、情報処理装置１０では、多数決回路を用いた多重化回路を用いている。そして、故障系統検出回路２０は、多重化回路の何れの処理系統部で故障が発生したかを検出するとともに、故障が存在する処理系統部を識別している。
【００６２】
また、故障診断部２６は、再構成可能な半導体集積回路のうち故障した物理的な位置（故障ブロック）を特定する故障診断を行なうことによって故障箇所を特定している。さらに、再構成データ生成部２７は、故障した処理系統部に対し故障箇所を避けて設定した再構成データを生成し、再構成可能な半導体集積回路に再構成データをダウンロードしている。これにより、故障した処理系統部に関する回路のみを再構成し直し、故障が発生する前の回路と機能的に等価な状態に戻している。
【００６３】
また、正常動作している処理系統部の全レジスタの値を、復元した処理系統部内で同一機能を実現するレジスタに全て転送することによって、復元した処理系統部の回路を正常に動作している処理系統部の回路と同一の回路状態にしている。
【００６４】
このように、故障の発生した処理系統部の復元を自己修復装置が自律的に行うことにより、フィードバックを含む順序回路においても多重化回路の多重度を元の状態に戻すことが可能となる。
【００６５】
例えば、情報処理システムの稼働中に、外部環境に急激な変化が生じ、これにより多重化回路の処理系統部に故障が発生する場合がある。外部環境の急激な変化は、例えば、再構成可能な半導体集積回路にソフトエラーを生じさせる宇宙線や、急激な温度変化などである。処理系統部に故障が発生した場合であっても、本実施の形態では、正常動作している処理系統部の動作を止めず、発生した故障回路を自律的に正常な回路に修復し、故障した処理系統部を正常稼働中の処理系統部と同一の回路状態に再設定している。したがって、情報処理システムを停止することなく正常に情報処理を続けることができる。
【００６６】
このように、情報処理装置１０は、処理系統部の復元を自律的に行うことができるので、例えば、人工衛星、光海底ケーブル、原子力発電所の制御装置等のように故障の修復作業が困難な場所にあり、連続稼動が求められる機器に対しても情報処理装置１０を適用することが可能となる。
【００６７】
特に、社会基盤等の情報処理システムにおいては、故障によるシステムダウンが発生すると経済的な損失は大きい。情報処理装置１０は、故障発生時にもシステムを停止することなく、正常な状態に復旧することができるので、システムダウンによる経済損失を防止することが可能となる。
【００６８】
なお、本実施の形態の自己修復方法でカバーできない再構成可能な半導体集積回路中のメモリについては、従来通りの方法（例えば、ＥＣＣ回路やメモリ回路の多重化）によって、情報処理システムの信頼性を高めることができる。
【００６９】
また、本実施の形態では、多数決回路が３系統（３つの処理系統部）で構成されている場合について説明したが、多数決回路を２系統または４系統で構成してもよい。換言すると、情報処理装置内の多重度は、３に限定されるものではない。
【００７０】
また、本実施の形態では、第３の処理系統１１Ｃが故障した場合に、第２の処理系統１１Ｂの回路状態を第３の処理系統１１Ｃ´にコピーする場合について説明したが、第１の処理系統１１Ａの回路状態を第３の処理系統１１Ｃ´にコピーしてもよい。
【００７１】
また、本実施の形態では、故障ブロックを特定し、故障ブロックを除外して処理系統部を再構成したが、故障ブロックを特定することなく処理系統部を再構成してもよい。この場合、故障の発生した処理系統部の全ブロックを除外して処理系統部を再構成する。
【００７２】
このように実施の形態１によれば、故障の発生した処理系統部を故障の発生していないブロックを用いて復元するとともに、復元した処理系統部に、正常動作している処理系統部の回路状態をコピーするので正常動作中の処理系統部と同じ状態の処理系統部を構築することが可能となる。これにより、情報処理を停止することなく、故障前と同じ情報処理を継続して実行することが可能となる。したがって、情報処理システムの高い信頼性を長期間に亘って維持することが可能となる。
【００７３】
実施の形態２．
つぎに、図５〜図１４を用いてこの発明の実施の形態２について説明する。実施の形態２では、情報処理装置内に複数の多数決回路を配置しておくとともに、多数決回路に故障が発生した場合には、故障した多数決回路を再構成可能な領域に再構成する。なお、本実施の形態では、再構成可能な半導体集積回路（情報処理装置）がＦＰＧＡである場合について説明する。
【００７４】
図５は、実施の形態２に係るＦＰＧＡの構成を示す図である。情報処理装置の一例であるＦＰＧＡ５は、所定の情報処理を行いつつ故障発生時には自ら自己修復を行なう半導体装置である。
【００７５】
ＦＰＧＡ５は、複数の多数決回路と、複数のエラー検出回路と、を含んで構成されている。本実施の形態では、多数決回路が、多数決回路５１ａ〜５１ｆ（回路Ａ〜Ｆ）であり、エラー検出回路が多数決回路５１ａ〜５１ｆに１対１で対応するエラー検出回路５２ａ〜５２ｆである場合について説明する。なお、ＦＰＧＡ５が有する構成要素のうち、多数決回路５１ａ〜５１ｆ、エラー検出回路５２ａ〜５２ｆ以外の構成要素は、再構成可能な半導体集積回路で構成してもよいし、再構成のできない半導体集積回路で構成してもよい。
【００７６】
ＦＰＧＡ５は、複数の再構成可能な領域（再構成回路領域）と、エラー管理・制御部５４と、再構成管理・制御部５５と、再構成実行時に再構成データを記憶させておく再構成データ記憶部５６と、を具備している。本実施の形態では、再構成可能な領域が再構成可能領域５３ｘ（領域Ｘ），５３ｙ（領域Ｙ）の２領域である場合について説明する。なお、ここでのエラー管理・制御部５４と再構成管理・制御部５５が特許請求の範囲に記載の新規回路を形成する再構成制御部に対応している。
【００７７】
多数決回路５１ａ〜５１ｆは、例えばそれぞれが３重多数決回路であり、実施の形態１で説明した３重多数決回路１と同様の機能を有している。本実施の形態の多数決回路５１ａ〜５１ｆは、処理系統部を３つずつ備えている。なお、多数決回路５１ａ〜５１ｆは、実施の形態１で説明した比較部１２〜１４を有していなくてもよい。
【００７８】
エラー検出回路５２ａ〜５２ｆは、それぞれ多数決回路５１ａ〜５１ｆの処理結果をモニタすることによって、多数決回路５１ａ〜５１ｆのエラー検出を行なう。エラー検出回路５２ａ〜５２ｆは、エラー検出結果をエラー管理・制御部５４に送る。
【００７９】
エラー管理・制御部５４は、故障（エラー）に関する管理や制御を行うブロックである。エラー管理・制御部５４は、多数決回路の中から故障の発生した多数決回路５１ａ〜５１ｆを判定するとともに、判定結果に応じた指示を再構成管理・制御部５５に送る。エラー管理・制御部５４が再構成管理・制御部５５に送る指示は、故障の発生した多数決回路を再構成（構築）させる再構成要求である。
【００８０】
再構成管理・制御部５５は、再構成データの管理を行うとともに、多数決回路の再構成を制御するブロックである。再構成管理・制御部５５は、故障の発生した多数決回路の再構成に必要な再構成データを作成して再構成データ記憶部５６に記憶させておく。再構成管理・制御部５５は、エラー管理・制御部５４からの再構成要求に対応する多数決回路を、再構成可能領域５３ｘ，５３ｙの何れかに形成する。再構成管理・制御部５５は、再構成データに基づいて、故障の発生した多数決回路を再構成する。
【００８１】
再構成可能領域５３ｘ，５３ｙは、故障の発生した多数決回路およびエラー検出回路を再構成させるための領域である。再構成可能領域５３ｘ，５３ｙは、それぞれ、例えば多数決回路およびエラー検出回路を１つずつ再構成できる大きさの領域である。再構成データ記憶部５６は、再構成管理・制御部５５が作成した再構成データを記憶しておく領域（メモリ）である。
【００８２】
図６は、図５に示したＦＰＧＡの詳細な構成を示す図である。多数決回路５１ａ〜５１ｆは、実施の形態１で説明した多数決判定論理部１５に対応する回路（多数決判定論理部８１ａ〜８１ｆ）と、実施の形態１で説明した処理系統部に対応する回路と、を備えている。例えば、多数決回路５１ａは、多数決判定論理部８１ａと、処理系統部８２Ａａ〜８２Ａｃを、を有している。多数決判定論理部８１ａ〜８１ｆは、それぞれ処理系統部からのデータを入力するとともに、多数決によって決定した処理結果を後段ブロックへ出力する。
【００８３】
また、多数決回路５１ａ〜５１ｆには、それぞれ個別のエラー検出回路５２ａ〜５２ｆが接続されている。エラー検出回路５２ａ〜５２ｆは、それぞれ処理系統部の出力側に接続されている。例えば、多数決回路５１ａでは、処理系統部８２Ａａと多数決判定論理部８１ａとを結ぶ配線、処理系統部８２Ａｂと多数決判定論理部８１ａとを結ぶ配線、処理系統部８２Ａｃと多数決判定論理部８１ａとを結ぶ配線のそれぞれにエラー検出回路５２ａが接続されている。
【００８４】
この構成により、エラー検出回路（故障検出回路）５２ａ〜５２ｆには、それぞれ多数決判定論理部（多数決回路）８１ａ〜８１ｆと同じデータが入力される。エラー検出回路５２ａ〜５２ｆは、多数決回路５１ａ〜５１ｆの処理結果をモニタし、エラー検出結果をエラー管理・制御部５４に送る。
【００８５】
エラー管理・制御部５４は、入力されたエラー検出結果に基づいて、故障判定を行なう。具体的には、エラー管理・制御部５４は、多数決回路５１ａ〜５１ｆの中から故障の発生している多数決回路を判定する。エラー管理・制御部５４は、故障判定に応じた再構成要求として、故障の発生した多数決回路を再構成させるための再構成要求を、再構成管理・制御部５５に送る。
【００８６】
再構成管理・制御部５５は、故障の発生した多数決回路の再構成に必要な再構成データを作成して再構成データ記憶部５６に記憶させておく。再構成管理・制御部５５は、再構成データに基づいて、故障した多数決回路と同じ多数決回路を、再構成可能領域５３ｘ，５３ｙの何れかに再構成する。
【００８７】
具体的には、再構成管理・制御部５５は、故障の発生した多数決回路を再構成する際、再構成データに基づいて、故障の発生した多数決回路と機能的に等価な回路を、再構成可能領域５３ｘまたは再構成可能領域５３ｙに再構成する。そして、再構成管理・制御部５５は、故障の発生した多数決回路を新規に再構成した多数決回路に切替える。
【００８８】
図７は、多数決回路の再構成処理手順を示すフローチャートである。また、図８および図９は、多数決回路の再構成処理手順を説明するための図である。ここでは、故障の発生した多数決回路が多数決回路５１ａであり、多数決回路５１ａと同じ機能を有した多数決回路５１ａ´が再構成可能領域５３ｘ内に再構成される場合について説明する。
【００８９】
情報処理装置としてのＦＰＧＡ５が動作している間、エラー検出回路５２ａ〜５２ｆは、それぞれ多数決回路５１ａ〜５１ｆのエラー検出処理（故障発生の判定）を行なう（ステップＳ２０１）。エラー検出回路５２ａ〜５２ｆは自らの多数決回路内の各処理系統部から送られてくる処理結果を比較することにより、自らの多数決回路内で故障が発生したか否かを判断する（ステップＳ２０２）。例えば、エラー検出回路５２ａは、処理系統部８２Ａａ〜８２Ａｃからの各処理結果が全て同じであれば、多数決回路内５１ａに故障が発生していないと判断する。一方、エラー検出回路５２ａは、処理系統部８２Ａａ〜８２Ａｃからの各処理結果の１つでも他と異なる処理結果があれば、多数決回路内５１ａに故障が発生したと判断する。
【００９０】
多数決回路５１ａ〜５１ｆの何れかに故障がなければ（ステップＳ２０２、Ｎｏ）、エラー検出回路５２ａ〜５２ｆは、エラーが無いことを示すエラー検出結果をエラー管理・制御部５４に送る。そして、エラー検出回路５２ａ〜５２ｆは、それぞれ多数決回路５１ａ〜５１ｆのエラー検出処理を継続する（ステップＳ２０１）。
【００９１】
一方、多数決回路５１ａ〜５１ｆの何れかに故障があれば（ステップＳ２０２、Ｙｅｓ）、故障を検出したエラー検出回路は、エラーを示すエラー検出結果をエラー管理・制御部５４に送る。
【００９２】
ここでは、多数決回路５１ａが故障したと判定された場合について説明する。この場合、例えば、図８に示すように、エラー検出回路５２ａからエラー管理・制御部５４へのエラー検出結果の送信処理（ｓｔ１）が行なわれる。
【００９３】
なお、図５，６，８では、図示を省略しているが、ＦＰＧＡ５は、多数決回路５１ｃ〜５１ｅ、エラー検出回路５２ｃ〜５２ｅを有しており、エラー検出回路５２ｃ〜５２ｅからもエラー管理・制御部５４にエラー検出結果が送られる。
【００９４】
エラー管理・制御部５４は、入力されたエラー検出結果に基づいて、何れの多数決回路５１ａ〜５１ｆが故障したか否かの判定を行なう（ｓｔ４）。エラー管理・制御部５４は、故障の発生した多数決回路５１ａを再構成させるための再構成要求を、再構成管理・制御部５５に送る（ｓｔ５）。
【００９５】
これにより、再構成管理・制御部５５は、再構成処理を実行する（ステップＳ２０３）。具体的には、再構成管理・制御部５５は、故障の発生した多数決回路５１ａの再構成に必要な再構成データを作成して再構成データ記憶部５６に記憶させる（ｓｔ６）。
【００９６】
そして、再構成管理・制御部５５は、再構成データに基づいて、再構成可能領域５３ｘへのコンフィギュレーション処理を行う。具体的には、再構成管理・制御部５５は、故障の発生した多数決回路５１ａおよびエラー検出回路５２ａを、再構成可能領域５３ｘに再構成する（ステップＳ２０４）（ｓｔ７）。これにより、多数決回路５１ａおよびエラー検出回路５２ａと同じ機能を有する新規な多数決回路５１ａ´およびエラー検出回路５２ａ´が再構成可能領域５３ｘ内に構築される。
【００９７】
この後、再構成管理・制御部５５は、故障の発生した多数決回路５１ａおよびエラー検出回路５２ａを新規に再構成した多数決回路５１ａ´およびエラー検出回路５２ａ´に切替える（ステップＳ２０５）（ｓｔ８）。
【００９８】
この後、ＦＰＧＡ５は、新規に再構成した多数決回路５１ａ´で情報処理に関する動作を継続するとともに（ステップＳ２０６）、新規に再構成したエラー検出回路５２ａ´で多数決回路５１ａ´のエラー検出を行なう。このとき、故障した多数決回路５１ａおよび多数決回路５１ａは使用不可とする。
【００９９】
図１０は、故障した多数決回路から新規に再構成した多数決回路への切替え処理を説明するための図である。本実施の形態では、回路状態を保持しつつ、回路動作中に故障した多数決回路から新規に再構成した多数決回路への切替えを実施するために、エラー管理・制御部５４が多数決回路およびエラー検出回路の故障の有無を記憶しておく。そして、故障の有無に基づいて、再構成管理・制御部５５が切替制御信号を生成し、切替制御信号に従って実際の切替えを制御する。
【０１００】
具体的には、故障した回路Ａである多数決回路５１ａおよび新規に再構成した回路Ａである多数決回路５１ａ´の後段（出力側）に、セレクタ（第１の切替部）５７を配置しておく。また、エラー検出回路５２ａおよび新規に再構成したエラー検出回路５２ａ´の後段に、セレクタ（第２の切替部）５８を配置しておく。セレクタ５７，５８は、予め情報処理装置内に形成しておいてもよいし、再構成可能な半導体集積回路を用いて再構成管理・制御部５５が形成してもよい。
【０１０１】
再構成管理・制御部５５は、多数決回路５１ａの出力側の配線および多数決回路５１ａ´の出力側の配線を、再構成可能な半導体集積回路を用いてセレクタ５７の入力側に接続しておく。さらに、再構成管理・制御部５５は、エラー検出回路５２ａの出力側の配線およびエラー検出回路５２ａ´の出力側の配線を、再構成可能な半導体集積回路を用いてセレクタ５８の入力側に接続しておく。
【０１０２】
また、再構成管理・制御部５５は、再構成可能な半導体集積回路を用いて、再構成管理・制御部５５をセレクタ５７，５８に接続し、セレクタ５８をエラー管理・制御部５４に接続しておく。また、再構成管理・制御部５５は、再構成可能な半導体集積回路を用いて、多数決回路５１ａと多数決回路５１ａ´とを接続しておく。故障した多数決回路から新規に再構成し多数決回路への切替えを行う際には、図１０に示したセレクタ５７，５８、セレクタ５７，５８と接続される配線、多数決回路５１ａと多数決回路５１ａ´とを接続する配線などを形成しておく。
【０１０３】
多数決回路５１ａ´から多数決回路５１ａへの切替えを行なう前は、再構成管理・制御部５５は、切替制御信号として多数決回路５１ａからの出力を選択させる指示をセレクタ５７に入力する。また、再構成管理・制御部５５は、切替制御信号としてエラー検出回路５２ａからの出力を選択させる指示をセレクタ５８に入力する。
【０１０４】
これにより、セレクタ５７からは多数決回路５１ａ（多数決判定論理部８１ａ）からの処理結果が後段ブロックへ出力される。また、セレクタ５８からはエラー検出回路５２ａからのエラー検出結果が後段ブロックへ出力される。
【０１０５】
多数決回路５１ａから多数決回路５１ａ´への切替えを行なう際には再構成管理・制御部５５は、切替制御信号として多数決回路５１ａ´を選択させる指示をセレクタ５７に入力する。また、再構成管理・制御部５５は、切替制御信号としてエラー検出回路５２ａ´を選択させる指示をセレクタ５８に入力する。
【０１０６】
これにより、セレクタ５７からは多数決回路５１ａ´（多数決判定論理部８１ａ´）からの処理結果が後段ブロックへ出力される。また、セレクタ５８からはエラー検出回路５２ａ´からのエラー検出結果が後段ブロックへ出力される。
【０１０７】
また、多数決回路５１ａから多数決回路５１ａ´への切替えを行なう際には、多数決回路５１ａと多数決回路５１ａ´とを接続する配線を介して、多数決回路５１ａへの入力データを多数決回路５１ａ´にも入力する。なお、実施の形態１のように、多数決回路５１ａのレジスタなどで記憶していたデータを多数決回路５１ａ´に転送してもよい。これらの処理によって、多数決回路５１ａの回路状態が多数決回路５１ａ´へコピーされる。
【０１０８】
このように、ＦＰＧＡ５では、多数決回路を用いた多重化回路を用いている。そして、エラー検出回路５２ａ〜５２ｆが、多数決回路のエラーを検出し、エラー管理・制御部５４が、多数決回路５１ａ〜５１ｆの故障を判定している。
【０１０９】
多数決回路５１ａ〜５１ｆの何れかが故障であると判定されると、再構成管理・制御部５５は、予め準備しておいた再構成可能な半導体集積回路に、記憶しておいた再構成データから故障した多数決回路のデータをダウンロードしている。これにより、故障した多数決回路が再構成し直される。
【０１１０】
このとき、故障した多数決回路の全レジスタの値を、新規に再構成した多数決回路で同一機能を実現するレジスタに全て転送する。これにより、新規に再構成した多数決回路が故障した多数決回路と同一の回路状態になる。この後、再構成管理・制御部５５は、故障した多数決回路と新規に再構成した多数決回路を切り替える。これにより、情報処理システムを停止することなく、情報処理機能を修復することが可能となる。
【０１１１】
なお、複数の多数決回路で同時に故障が生じた場合、予め設定しておいた優先度に従って再構成する順番を決定する。エラー管理・制御部５４へは、予め多数決回路５１ａ〜５１ｆを再構成する際の多数決回路５１ａ〜５１ｆ毎の優先度に関する情報（後述の優先度情報８４）を格納しておく。
【０１１２】
図１１は、エラー管理・制御部の構成を示す図である。エラー管理・制御部５４は、優先度情報８４を記憶しておく優先度記憶部８３を備えている。優先度情報８４は、例えば多数決回路５１ａ〜５１ｆ毎の優先度を示すテーブルである。
【０１１３】
優先度情報８４には、多数決回路５１ａ〜５１ｆ（回路Ａ〜Ｆ）毎に再構成の優先度が設定されている。図１１の優先度情報８４では、回路Ａの再構成の優先度が「５」であり、回路Ｂの再構成の優先度が「２」であり、回路Ｆの再構成の優先度が「１６」である場合を示している。本実施の形態では、各多数決回路５１ａ〜５１ｆは、優先度の数値が大きいほど優先的に再構成される。換言すると、複数の多数決回路が故障した場合、故障した多数決回路の優先度が比較され、優先度の高い多数決回路から順番に再構成されていく。なお、優先度記憶部８３は、エラー管理・制御部５４の外部に配置してもよい。また、優先度記憶部８３は、ＦＰＧＡ５の外部に配置してもよい。
【０１１４】
図１２〜図１４は、複数の多数決回路を再構成する場合の再構成処理を説明するための図である。ここでは、故障の生じた多数決回路が多数決回路５１ａと多数決回路５１ｆである場合について説明する。
【０１１５】
図１２は、優先度が高い方の多数決回路を再構成する際のＦＰＧＡの処理を示す図であり、図１３は、優先度が低い方（第２優先）の多数決回路を再構成する際のＦＰＧＡの処理を示す図である。また、図１４は、複数の多数決回路が再構成された後のＦＰＧＡの構成を示す図である。
【０１１６】
複数の多数決回路で同時に故障が生じた場合、エラー管理・制御部５４は、故障の生じた多数決回路の中から優先度の最も高い多数決回路を抽出する。故障の生じた多数決回路が多数決回路５１ａ，５１ｆである場合、多数決回路５１ｆの優先度（１６）が多数決回路５１ａの優先度（５）よりも高いので、多数決回路５１ｆ（回路Ｆ）が多数決回路５１ａ（回路Ａ）よりも先に再構成される。
【０１１７】
エラー管理・制御部５４は、多数決回路５１ｆの再構成要求を再構成管理・制御部５５に出力する。これにより、再構成管理・制御部５５は、図１２に示すように、例えば再構成可能領域５３ｘ（領域Ｘ）に多数決回路５１ｆと同様の機能を有した多数決回路５１ｆ´およびエラー検出回路５２ｆ´を再構成するための指示を送る。
【０１１８】
この後、エラー管理・制御部５４は、故障の生じた多数決回路の中から次に優先度の高い多数決回路を抽出する。ここでは、多数決回路５１ａ（回路Ａ）が抽出される。エラー管理・制御部５４は、多数決回路５１ａの再構成要求を再構成管理・制御部５５に出力する。これにより、再構成管理・制御部５５は、図１３に示すように、例えば再構成可能領域５３ｙ（領域Ｙ）に多数決回路５１ａと同様の機能を有した多数決回路５１ａ´およびエラー検出回路５２ａ´を再構成するための指示を送る。これにより、図１４に示すように、領域Ｘに多数決回路５１ｆ´およびエラー検出回路５２ｆ´が再構成され、領域Ｙに多数決回路５１ａ´およびエラー検出回路５２ａ´が再構成される。
【０１１９】
なお、本実施の形態では、多数決回路が、多数決回路５１ａ〜５１ｆの６回路である場合について説明したが、多数決回路は、５回路以下または７回路以上であってもよい。また、本実施の形態では、再構成可能な領域が再構成可能領域５３ｘ，５３ｙの２領域である場合について説明したが、再構成可能領域は、１領域または３領域以上であってもよい。また、本実施の形態で説明したＦＰＧＡ５と実施の形態１で説明した情報処理装置１０を組み合わせてもよい。
【０１２０】
このように実施の形態２によれば、故障の発生した多数決回路を再構成可能領域に再構成するとともに、再構成した多数決回路と故障の発生した多数決回路とに同じデータを入力してから故障の発生した多数決回路から再構成した多数決回路への切替えを行なうので、情報処理を停止することなく、故障前と同じ情報処理を継続して実行することが可能となる。したがって、情報処理システムの高い信頼性を長期間に亘って維持することが可能となる。
【０１２１】
また、複数の多数決回路が同時に故障した場合、各多数決回路に設定しておいた再構成の優先度に従った順番で多数決回路を再構成していくので、重要な多数決回路ほど早く再構成を実施することが可能となる。したがって、情報処理システムの高い信頼性を確保することが可能となる。
【０１２２】
実施の形態３．
つぎに、図１５を用いてこの発明の実施の形態３について説明する。実施の形態３では、再構成データを生成する手段と、再構成データをダウンロードする手段と、をそれぞれ多重化して、半導体集積回路を再構成する際に用いるデータを多数決により決定する。
【０１２３】
図１５は、実施の形態３に係る回路再構成装置の構成を示す図である。回路再構成装置６０は、ＦＰＧＡなどの再構成可能な半導体集積回路（再構成可能回路７０）に回路を再構成する装置であり、例えば、実施の形態１の情報処理装置１０や実施の形態２のＦＰＧＡ５などの自己修復装置に適用される。
【０１２４】
回路再構成装置６０は、再構成データ生成部６３Ａ，６３Ｂ，６３Ｃと、再構成部６５Ａ，６５Ｂ，６５Ｃと、多数決判定論理部６６と、を有している。再構成可能回路７０に再構成される回路は、例えば多数決回路などである。
【０１２５】
再構成データ生成部６３Ａは、回路データ６１Ｄａと故障情報６２Ｄａとを入力し、回路データ６１Ｄａおよび故障情報６２Ｄａを用いて、再構成データ６４Ｄａを生成する。同様に、再構成データ生成部６３Ｂは、回路データ６１Ｄｂと故障情報６２Ｄｂとを入力し、回路データ６１Ｄｂおよび故障情報６２Ｄｂを用いて、再構成データ６４Ｄｂを生成する。また、再構成データ生成部６３Ｃは、回路データ６１Ｄｃと故障情報６２Ｄｃとを入力し、回路データ６１Ｄｃおよび故障情報６２Ｄｃを用いて、再構成データ６４Ｄｃを生成する。
【０１２６】
回路データ６１Ｄａ，６１Ｄｂ，６１Ｄｃは、再構成される回路（再構成可能回路）の回路設計データであり、故障情報６２Ｄａ，６２Ｄｂ，６２Ｄｃは、再構成される回路の故障に関する情報（故障箇所の物理的な位置情報）である。故障情報６２Ｄａ〜６２Ｄｃは、例えば、実施の形態１の図２（ステップＳ１０２）や図３で説明した故障診断の結果（故障ブロック）である。
【０１２７】
再構成データ生成部６３Ａ〜６３Ｃは、それぞれ故障の発生した領域（故障箇所）を避けて、故障した処理系統部（再構成可能回路）を再構成するための再構成データ６４Ｄａ〜Ｄｃを生成する。再構成データ６４Ｄａ〜６４Ｄｃは、再構成される回路をコンフィグレーションするためのデータである。再構成データ６４Ｄａ〜６４Ｄｃは、故障情報６２Ｄａ〜６２Ｄｃを用いて生成されるので、再構成データ６４Ｄａ〜６４Ｄｃは、故障ブロックを除外した位置に再構成可能回路を形成するためのデータとなっている。
【０１２８】
再構成部６５Ａ〜６５Ｃは、それぞれ再構成データ６４Ｄａ〜Ｄｃをダウンロードし、再構成データ６４Ｄａ〜６４Ｄｃに対応する回路をコンフィグレーションする。再構成部６５Ａ〜６５Ｃは、コンフィグレーションした回路の情報をコンフィグレーションデータ（設定情報）として多数決判定論理部６６に送る。
【０１２９】
多数決判定論理部６６は、再構成部６５Ａ〜６５Ｃに接続されている。多数決判定論理部６６は、再構成部６５Ａ〜６５Ｃで生成されたコンフィグレーションデータの多数決をとる。これにより、多数決判定論理部６６は、コンフィグレーションデータの中から多数派のコンフィグレーションデータを選択する。そして、多数決判定論理部６６は、選択したコンフィグレーションデータを用いて、このコンフィグレーションデータに対応する回路を再構成可能回路７０に再構成する。これにより、再構成可能回路７０に多数派のコンフィグレーションデータに対応する回路が形成される。このように、再構成される回路に対する再構成データの生成と再構成回路のコンフィグレーション処理を多重化しているので、再構成される回路のコンフィグレーション処理の信頼性が高まる。
【０１３０】
なお、本実施の形態では、故障情報６２Ｄａ〜６２Ｄｃを用いて再構成データ６４Ｄａ〜６４Ｄｃを生成する場合について説明したが、故障情報６２Ｄａ〜６２Ｄｃを用いることなく、回路データ６１Ｄａ〜６１Ｄｃを用いて再構成データ６４Ｄａ〜６４Ｄｃを生成してもよい。
【０１３１】
このように実施の形態３によれば、再構成データを生成する手段と、再構成データをダウンロードする手段と、をそれぞれ多重化しているので、回路を再構成する際の信頼性を高めることが可能となる。したがって、再構成可能な半導体集積回路の書き換えの信頼性を高めることが可能となる。
【産業上の利用可能性】
【０１３２】
以上のように、本発明にかかる情報処理装置および回路再構成装置は、再構成可能な半導体集積回路の再構成に適している。
【符号の説明】
【０１３３】
１  ３重多数決回路
５  ＦＰＧＡ
１０  情報処理装置
１１Ａ  第１の処理系統
１１Ｂ  第２の処理系統
１１Ｃ，１１Ｃ´  第３の処理系統
１２〜１４  比較部
１５，６６，８１ａ〜８１ｆ  多数決判定論理部
１７Ａ〜１７Ｃ，１７Ｃ´，１８Ａ，１８Ｂ，１８Ｃ´  配線
２０  故障系統検出回路
２２〜２４  比較結果出力線
２５  故障結果出力線
２６  故障診断部
２７，６３Ａ〜６３Ｃ  再構成データ生成部
２８，６５Ａ〜６５Ｃ  再構成部
３０  診断対象領域
３２Ａ〜３２Ｈ，３２Ｘ  ブロック
５１ａ〜５１ｆ，５１ａ´，５１ｆ´  多数決回路
５２ａ〜５２ｆ，５２ａ´，５２ｆ´  エラー検出回路
５３ｘ，５３ｙ  再構成可能領域
５４  エラー管理・制御部
５５  再構成管理・制御部
５６  再構成データ記憶部
５７，５８，Ｓａ〜Ｓｃ，Ｓｃ´  セレクタ
６０  回路再構成装置
６１Ｄａ〜６１Ｄｃ  回路データ
６２Ｄａ〜６２Ｄｃ  故障情報
６４Ｄａ〜６４Ｄｃ  再構成データ
７０  再構成可能回路
８２Ａａ〜８２Ａｃ  処理系統部
８３  優先度記憶部
８４  優先度情報
Ｌ１Ａ  共通配線
Ｌ２Ａ〜Ｌ２Ｃ  出力側配線
Ｒａ〜Ｒｃ，Ｒｃ´  レジスタ
【図１】
2011216020.tif 000003
【図２】
2011216020.tif 000004
【図３】
2011216020.tif 000005
【図４】
2011216020.tif 000006
【図５】
2011216020.tif 000007
【図６】
2011216020.tif 000008
【図７】
2011216020.tif 000009
【図８】
2011216020.tif 000010
【図９】
2011216020.tif 000011
【図１０】
2011216020.tif 000012
【図１１】
2011216020.tif 000013
【図１２】
2011216020.tif 000014
【図１３】
2011216020.tif 000015
【図１４】
2011216020.tif 000016
【図１５】
2011216020.tif 000017