(57)【要約】【課題】  構成情報の送信経路に故障箇所を検知した場合、送信経路の代替経路を検索する。【解決手段】  動的再構成回路107は、演算処理を行う複数のPE、複数のPEの間を接続する複数のルータ、および、複数のPEおよび複数のルータの少なくとも一部の動作設定を示す構成情報101の送信経路を形成する複数のスイッチを備える。経路設定部117は、構成情報101をPEおよびルータに送信する送信経路を形成するための経路切替信号201を複数のスイッチに送信する。故障検知部116は、送信経路情報105に基づき送信経路の故障箇所を検知する。構成情報制御部115または経路分割制御部123は、故障箇所が検知された場合、送信経路の代替経路を検索する。【選択図】  図1
2016133926.tif 000002
【特許請求の範囲】
【請求項１】
演算処理を行う複数の演算要素、前記複数の演算要素の間を接続する複数の接続要素、並びに、前記複数の演算要素および前記複数の接続要素の少なくとも一部の動作設定を示す構成情報の送信経路を形成する複数のスイッチを備える演算回路と、
前記構成情報を前記演算要素および前記接続要素に送信する送信経路を形成するための経路切替信号を前記複数のスイッチに送信する経路設定手段と、
前記送信経路を示す情報に基づき前記送信経路の故障箇所を検知する検知手段と、
前記故障箇所が検知された場合、前記送信経路の代替経路を検索する検索手段とを有し、
前記検索手段は、前記送信経路を構成するスイッチとそれらスイッチの間の接続を含む経路空間において前記代替経路を検索する第一の検索手段、前記経路空間に隣接する経路を含む拡大経路空間において前記代替経路を検索する第二の検索手段、および、前記経路空間または前記拡大経路空間を分割して前記代替経路を検索する第三の検索手段を有する情報処理装置。
【請求項２】
前記第二の検索手段は、前記故障箇所に関連する第一のスイッチに接続する第二のスイッチと、前記第二のスイッチによって得られる経路を前記経路空間に追加した前記拡大経路空間において前記代替経路を検索する請求項1に記載された情報処理装置。
【請求項３】
前記第三の検索手段は、前記経路空間または前記拡大経路空間において、前記送信経路の始点から終点に向って構成情報の送信が可能な経路の検索、および、前記終点から前記始点に向って構成情報の送信が可能な経路の検索を行い、それら検索によって発見した経路の集合を前記代替経路とする請求項1または請求項2に記載された情報処理装置。
【請求項４】
前記検索手段は、前記経路空間に前記代替経路が存在するか否かを判定する判定手段を有する請求項1から請求項3の何れか一項に記載された情報処理装置。
【請求項５】
前記判定手段は、前記故障箇所を示す情報に基づき、前記経路空間の各スイッチについて、当該スイッチと他のスイッチの間の正常な接続の数をカウントし、前記正常な接続の数が一つ以下のスイッチが存在しない場合、前記経路空間に前記代替経路が存在すると判定する請求項4に記載された情報処理装置。
【請求項６】
前記経路空間に前記代替経路が存在すると判定された場合、前記第一の検索手段による前記代替経路の検索が行われる請求項4または請求項5に記載された情報処理装置。
【請求項７】
前記経路空間に前記代替経路が存在しないと判定された場合、前記第二の検索手段による前記代替経路の検索が行われる請求項4から請求項6の何れか一項に記載された情報処理装置。
【請求項８】
前記第二の検索手段が前記代替経路を発見しなかった場合、前記第三の検索手段による前記代替経路の検索が行われる請求項7に記載された情報処理装置。
【請求項９】
前記構成情報は、前記少なくとも一部の演算要素および接続要素それぞれの動作を設定する設定データを含み、
前記代替経路が発見された場合、前記代替経路に基づき、前記構成情報に含まれる設定データの送信順序を変更する変更手段を有する請求項1から請求項8の何れか一項に記載された情報処理装置。
【請求項１０】
前記変更手段は、前記代替経路が示す前記スイッチの並び順に基づき前記設定データを並べ替える請求項9に記載された情報処理装置。
【請求項１１】
前記検知手段は、前記送信経路を示す情報に基づき作成したテストパターン信号を前記送信経路に送信し、前記送信経路から受信したテストパターン応答信号に基づき前記故障箇所を特定する請求項1から請求項10の何れか一項に記載された情報処理装置。
【請求項１２】
前記スイッチは隣接するスイッチとの間にスキャンフリップフロップを有する請求項11に記載された情報処理装置。
【請求項１３】
前記検知手段は、前記スキャンフリップフロップをテストモードに切り替えて前記送信経路の始点に相当するスイッチに対応するスキャンフリップフロップに前記テストパターン信号を入力し、前記スキャンフリップフロップを通常モードに切り替えて前記スキャンフリップフロップにクロック信号を供給する動作を繰り返す請求項12に記載された情報処理装置。
【請求項１４】
前記検知手段は、前記テストモードにおいて、前記送信経路の終点に相当するスイッチに対応するスキャンフリップフロップから前記テストパターン応答信号を受信する請求項13に記載された情報処理装置。
【請求項１５】
演算処理を行う複数の演算要素、前記複数の演算要素の間を接続する複数の接続要素、並びに、前記複数の演算要素および前記複数の接続要素の少なくとも一部の動作設定を示す構成情報の送信経路を形成する複数のスイッチを備える演算回路を有する情報処理装置の制御方法であって、
前記構成情報を前記演算要素および前記接続要素に送信する送信経路を形成するための経路切替信号を前記複数のスイッチに送信し、
前記送信経路を示す情報に基づき前記送信経路の故障箇所を検知し、
前記故障箇所が検知された場合、前記送信経路の代替経路を検索し、
前記代替経路の検索には、前記送信経路を構成するスイッチとそれらスイッチの間の接続を含む経路空間において前記代替経路を検索する第一の検索、前記経路空間に隣接する経路を含む拡大経路空間において前記代替経路を検索する第二の検索、および、前記経路空間または前記拡大経路空間を分割して前記代替経路を検索する第三の検索が含まれる制御方法。
【請求項１６】
コンピュータを請求項1から請求項14の何れか一項に記載された情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の演算要素を有し、動的再構成が可能な情報処理装置に関する。
【背景技術】
【０００２】
半導体製造技術の進歩による素子の微細化に伴い、膨大な数のトランジスタが大規模集積回路(LSI)上に集積されるようになった。そのため単一チップで多用途なLSIが望まれている。また、多様化する製品に対応可能なLSIとして高性能化、低消費電力、機能変更の柔軟性が求められている。高性能化、低消費電力、機能変更の柔軟性といった要望を実現するために、近年、動的に再構成が可能なプロセッサが注目されている。
【０００３】
動的に再構成が可能なプロセッサは、中央処理装置(CPU)、ディジタル信号処理装置(DSP)、演算装置(ALU)などの演算要素(PE)と、PE間の接続を制御するネットワーク回路で構成される。PEの処理内容およびネットワーク接続の変更は、「構成情報」と呼ばれる設定データの変更により可能である。そのため、データ処理内容に応じて構成情報を動的に変更することで機能変更に柔軟に対応し、PEの数を増やすことで高性能化、処理性能の向上を図ることができる。
【０００４】
一方、プロセスの微細化によって信頼性の低下が懸念され、多数のPEを有する動的に再構成が可能なプロセッサを有するデバイスの故障、フォルト対策が必要になる。例えば、動作中に演算要素（CPUコア）の故障を検出し、故障コアを使用しないように処理を割り当てる手法が提案されている（特許文献1）。
【０００５】
しかし、動的に再構成が可能なプロセッサにおいて、構成情報の送信経路に故障が生じた場合、構成情報を正しく設定することができず、システムとして動作不能になる。従って、設計時の構成情報を変更するために、再度、構成情報を生成する必要がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平02-287668号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、構成情報の送信経路に故障箇所を検知した場合、送信経路の代替経路を検索することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【０００９】
本発明にかかる情報処理装置は、演算処理を行う複数の演算要素、前記複数の演算要素の間を接続する複数の接続要素、並びに、前記複数の演算要素および前記複数の接続要素の少なくとも一部の動作設定を示す構成情報の送信経路を形成する複数のスイッチを備える演算回路と、前記構成情報を前記演算要素および前記接続要素に送信する送信経路を形成するための経路切替信号を前記複数のスイッチに送信する経路設定手段と、前記送信経路を示す情報に基づき前記送信経路の故障箇所を検知する検知手段と、前記故障箇所が検知された場合、前記送信経路の代替経路を検索する検索手段とを有し、前記検索手段は、前記送信経路を構成するスイッチとそれらスイッチの間の接続を含む経路空間において前記代替経路を検索する第一の検索手段、前記経路空間に隣接する経路を含む拡大経路空間において前記代替経路を検索する第二の検索手段、および、前記経路空間または前記拡大経路空間を分割して前記代替経路を検索する第三の検索手段を有する。
【発明の効果】
【００１０】
本発明によれば、構成情報の送信経路に故障箇所を検知した場合、送信経路の代替経路を検索することができ。
【図面の簡単な説明】
【００１１】
【図１】実施例の情報処理装置の構成例を示すブロック図。
【図２】情報処理装置が有する動的再構成回路の構成例を示すブロック図。
【図３】構成情報のフォーマット例およびPEの内部構成例を示す図。
【図４】ルータの内部構成例を示すブロック図。
【図５】情報処理装置の動作を説明するフローチャート。
【図６】情報処理装置の動作を説明するフローチャート。
【図７】設定ネットワークの送信経路の形成例を説明する図。
【図８】動的再構成回路における故障箇所を特定するための構成例を示す図。
【図９】構成情報制御部の構成例を示すブロック図。
【図１０】代替経路有無判定部による代替経路の有無判定を説明するフローチャート。
【図１１】代替経路の検索を説明するフローチャート。
【図１２】経路分割制御部の構成例を示すブロック図。
【図１３】動的再構成回路の構成要素と各種IDの関係、および、構成情報の一例を説明する図。
【図１４】送信経路情報を説明する図。
【図１５】テストパターン信号、期待パターン、テストパターン応答信号を説明する図。
【図１６】代替経路の有無の判定を説明する図。
【図１７】外部メモリに保持される構成情報の配置例を示す図。
【図１８】拡大経路空間における代替経路の探索方法を説明する図。
【図１９】代替経路の探索結果を示す図。
【図２０】構成情報制御部が出力する再設定情報の一例を示す図。
【図２１】経路空間の分割による代替経路の検索処理を説明する図。
【図２２】経路0と経路1の経路情報を示す図。
【図２３】経路分割制御部が出力する再設定情報の一例を示す図。
【図２４】構成情報を生成する構成情報生成装置および構成情報を使用する半導体装置の構成例を示すブロック図。
【発明を実施するための形態】
【００１２】
以下、本発明にかかる実施例の情報処理装置および情報処理方法を図面を参照して詳細に説明する。なお、以下では、情報処理装置の一つであるアレイ型演算装置に本発明を適用する例を説明する。また、以下の実施例に示す構成は一例に過ぎず、本発明は図示された構成に限定されない。
【００１３】
実施例においては、構成情報を設定するためのネットワーク回路に故障が生じた場合、故障箇所を特定し、構成情報の送信経路を変更し、送信経路の変更に合わせて構成情報の送信順序を変更する方法を説明する。
【００１４】
［装置の構成］
図1のブロック図により実施例の情報処理装置120の構成例を示す。また、図2のブロック図により情報処理装置120が有する動的再構成回路107の構成例を示す。なお、以下に説明する情報処理装置120の構成は一例であり、他の構成でもよい。
【００１５】
●動的再構成回路
演算回路である動的再構成回路107が有するPE100は、構成情報101に応じて演算内容を変更可能な要素であり、PE100としてALUやプロセッサなどが使用可能である。例えば、PE100としてALUを使用する場合、構成情報101に応じて加算器や乗算器といった処理をPE100に割り当てることができる。PE100としてプロセッサを使用する場合、構成情報101に応じて、例えば、画像のエッジ抽出やアルファブレンディングといった単位の処理をPE100に割り当てることができる。
【００１６】
データ転送用ネットワーク回路（以下、データネットワーク）108は、○記号で表すルータ203と（図2に）破線で示すバス（以下、データバス）を有す。データバスは、ルータ203同士の間、および、ルータ203とPE100の間を接続する。ルータ203は、構成情報101に応じてデータバスの接続先をPE100またはルータ203に切り替える接続要素である。つまり、PE100の演算処理結果または入出力データは、データネットワーク108を介して、他のPE100へ転送される。
【００１７】
構成情報設定用のネットワーク回路（以下、設定ネットワーク）114は、□印で示すクロスバースイッチ（以下、スイッチ）200、（図2に）実線で示す設定情報用の設定バス204、および、（図2に）実線で示す経路切替信号用の信号バス202を有す。
【００１８】
設定バス204は、スイッチ200同士の間を接続する。信号バス202は、図1に示す経路設定部117と各スイッチ200を一対一に接続する。各スイッチ200は、信号バス202を介して、経路設定部117から経路切替信号を受信し、スイッチ200の入出力を切り替えて設定バス204を構成情報の送信経路に適合させる。
【００１９】
●経路設定部
経路設定部117は、外部メモリ1910から入力した構成情報101から構成情報の送信経路情報105を抽出し、送信経路情報105に基づき経路切替信号201を生成する。そして、経路切替信号201を設定ネットワーク114に送信して、各スイッチ200の入出力を制御して送信経路を形成する。送信経路の形成が完了すると、経路設定部117は、設定ネットワーク114に構成情報101を送信して、各PE100および各ルータ203の設定を行う。つまり、経路設定部117は、構成情報の設定部としても機能する。
【００２０】
また、経路設定部117は、送信経路情報105を故障検知部116に送信し、送信経路情報105の送信が完了すると送信完了通知104をホストCPU1202に送信する。さらに、経路設定部117は、構成情報101を構成情報制御部115と経路分割制御部123に送信する。
【００２１】
●故障検知部
故障検知部116は、受信した送信経路情報105に従いテストパターン信号112を生成し、テストパターン信号112を設定ネットワーク114に送信する。そして、設定ネットワーク114からテストパターン応答信号113を受信し、テストパターン応答信号113に基づき設定ネットワーク114の故障箇所を特定する。故障箇所を特定すると、故障経路特定情報109を構成情報制御部115と経路分割制御部123に送信する。
【００２２】
●構成情報制御部
故障経路特定情報109を受信すると、構成情報制御部115は、受信した故障経路特定情報109と、受信した構成情報101に含まれる送信経路情報105に基づき、構成情報101を送信するための別の送信経路（代替経路）があるか否かを判定する。
【００２３】
代替経路が存在する場合、構成情報制御部115は、構成情報101に基づくPE100とルータ203の設定と同様の設定を可能にする再設定構成情報（以下、再設定情報）106を生成し、再設定情報106を経路設定部117に送信する。再設定情報106によって構成情報101の送信順序も変更される。また、代替経路を発見できず再設定情報106を生成することができない場合は、経路分割要求122を経路分割制御部123に送信する。
【００２４】
●経路分割制御部
経路分割要求122を受信すると、経路分割制御部123は、受信した故障経路特定情報109と、受信した構成情報101に含まれる送信経路情報105に基づき、後述する経路空間を分割して代替経路を探索する。そして、代替経路を発見すると、後述する設定スケジュールの制御を行って再設定情報124を生成し、再設定情報124を経路設定部117に送信する。また、代替経路を発見できず再設定情報124を生成することができない場合は、演算処理の中止要求102をホストCPU1202に送信する。
【００２５】
●外部メモリとホストCPU
外部メモリ1910は、構成情報101を保持する。システムを管理するホストCPU1202は、詳細は後述するが、演算処理の開始要求103および故障特定の開始信号110を送信し、送信完了通知104、演算処理の中止/継続要求102および故障特定の完了信号111などを受信する。
【００２６】
●構成情報と演算要素(PE)
図3により構成情報101のフォーマット例およびPE100の内部構成例を示す。図3(A)に示す設定値303は、各PE100と各ルータ203の動作を設定する値である。ID301は識別番号であり、各PE100と各ルータ203には固有の識別番号(ID)が予め設定されている。アドレス302は、PE101またはルータ203の内部に設定値303を書き込む際の領域を指定する。
【００２７】
構成情報101は、図3(A)に示すID301に対応するPE100またはルータ203の動作設定を示す設定データの集合（例えば図13(C)参照）であり、構成情報101によってPE100およびルータ203の少なくとも一部の動作が設定される。
【００２８】
図3(B)に示すPE100の構成情報指示部403は、設定ネットワーク114を介して構成情報101を受信し、受信した構成情報101に含まれるID301がPE100に設定されたIDと一致するか否かを判定する。つまり、構成情報101に自分のIDと一致するID301が含まれるか否かを判定する。
【００２９】
IDが一致する構成情報101を受信した場合、構成情報指示部403は、当該構成情報のアドレス302に従い、当該構成情報の設定値303を構成情報記憶部400に書き込み、受信した構成情報101を出力する。そして、構成情報指示部403は、設定値303に従い、入力側のセレクタ404の入力設定、演算処理部405の動作設定、出力側のセレクタ406の出力設定を行う。以下、これら設定および設定された動作を「動作設定」と呼ぶ場合がある。
【００３０】
動作設定により、セレクタ404のデータ入力経路、演算処理部405が行う演算処理、および、セレクタ406のデータ出力経路が決まる。つまり、PE100の演算処理の内容が決定する。なお、データ入力経路とデータ出力経路はデータバス108bの何れかに接続されている。
【００３１】
演算処理部405は、経路設定部117から処理開始信号402を受信すると、セレクタ404が入力したデータの演算処理を開始する。そして、演算処理が終了すると、処理結果のデータをセレクタ406に出力し、処理完了信号401を経路設定部117に送信する。
【００３２】
また、IDが一致しない構成情報を受信した場合、構成情報指示部403は、動作設定を行わずに、受信した構成情報101を送信経路の後方に出力する。なお、PE100の構成は図3(B)に限定されず、構成情報101に従う動作設定が可能であればどのような構成でも構わない。
【００３３】
●ルータ
図4のブロック図によりルータ203の内部構成例を示す。ルータ203の構成情報指示部403は、設定ネットワーク114を介して構成情報101を受信し、受信した構成情報101に含まれるID301がルータ203に設定されたIDと一致するか否かを判定する。つまり、構成情報101に自分のIDと一致するID301が含まれるか否かを判定する。
【００３４】
IDが一致する構成情報を受信した場合、構成情報指示部403は、該当構成情報のアドレス302に従い、当該構成情報の設定値303を構成情報記憶部400に書き込み、受信した構成情報101を出力する。そして、構成情報指示部403は、入出力切替部500に設定値303を送信する。また、IDが一致しない構成情報を受信した場合、構成情報指示部403は、構成情報記憶部400への書き込みと入出力切替部500の設定を行わずに、受信した構成情報101を送信経路の後方に出力する。
【００３５】
入出力切替部500には、入力用に複数のデータバス108bと出力用に複数のデータバス108bが接続されている。入出力切替部500は、設定値303に従い、データバス108bの一つを入力用に選択し、データバス108bの一つを出力用に選択し、選択したデータバス108b同士を電気的に接続状態にする。また、未選択のデータバス108bを電気的に切断状態にする。
【００３６】
以下では、入出力切替部500に入出力データバスを選択させる動作および設定された動作を「動作設定」と呼ぶ場合がある。なお、ルータ203の構成は図4に限定されず、構成情報101に従う動作設定が可能であればどのような構成でもよい。
【００３７】
［情報処理装置の動作］
図5、図6のフローチャートにより情報処理装置120の動作を説明する。ホストCPU1202から演算処理の開始指示を受信すると、経路設定部117は、構成情報101を要求する信号を外部メモリ1910に送信し、演算処理に必要な構成情報101を取得する(S101)。そして、構成情報101から送信経路情報105を抽出し(S102)、送信経路情報105に基づき経路切替信号201を生成して、設定ネットワーク114の送信経路の形成を行う(S103)。
【００３８】
図7により設定ネットワーク114の送信経路の形成例を説明する。なお、図7においてデータネットワーク108の記載は省略する。図7に□印で示す各スイッチは、設定ネットワーク114を介して受信した経路切替信号201に従い入出力を切り替える。
【００３９】
送信経路の始点であるスイッチ603は、出力側の送信経路を第一の経路600または第二の経路601に切り替えることができる。送信経路の終点であるスイッチ606は、入力側の送信経路を第一の経路604または第二の経路605に切り替えることができる。図7は、スイッチ603が第一の経路600を選択し、スイッチ606が第一の経路604を選択した例を示す。
【００４０】
次に、経路設定部117は、構成情報101を構成情報制御部115と経路分割制御部123に送信し(S104)、抽出した送信経路情報105を故障検知部116に送信する(S105)。そして、送信経路情報の送信完了通知104をホストCPU1202に送信する(S106)。送信完了通知104を受信したホストCPU1202は、故障特定の開始信号110を出力する。
【００４１】
故障特定の開始信号110を受信すると、故障検知部116は、送信経路情報105に基づきテストパターン信号112とテストパターン応答信号の期待値（以下、期待パターン）を作成する(S107)。そして、テストパターン信号112を設定ネットワーク114に送信する(S108)。その後、故障検知部116は、設定ネットワーク114から受信したテストパターン応答信号113と期待パターンを比較して、設定ネットワーク114に故障箇所があるか否かを判定する(S109)。
【００４２】
テストパターン応答信号113と期待パターンが一致する場合、故障検知部116は、故障が存在しないと判定して、故障特定の完了信号111をホストCPU1202に送信する(S110)。完了信号111を受信したホストCPU1202は、演算処理の開始要求103を出力する。開始要求103を受信した経路設定部117は、構成情報101を設定ネットワーク114に送信し、処理開始信号402をPE100に送信し(S111)、構成情報101に従う処理が開始される。
【００４３】
テストパターン応答信号113と期待パターンが一致しない場合、故障検知部116は、故障が存在すると判定する。そして、設定ネットワーク114の故障箇所（経路）を示す故障経路特定情報109を構成情報制御部115と経路分割制御部123に送信する(S112)。
【００４４】
詳細は後述するが、故障経路特定情報109を受信すると、構成情報制御部115（または経路分割制御部123）は、故障経路特定情報109と構成情報101に基づき構成情報を送信する代替経路の有無を判定する(S113)。そして、代替経路が存在しない場合、経路分割制御部123は、演算処理の中止要求102をホストCPU1202へ送信し(S114)、ホストCPU1202の演算処理の開始指示に対する動作が終了する。
【００４５】
代替経路が存在する場合、構成情報制御部115（または経路分割制御部123）は、代替経路に従って構成情報101の送信順序を変更した再設定情報106（または124）を作成する(S115)。そして、再設定情報106（または124）を経路設定部117に送信する(S116)。さらに、演算処理の継続要求102をホストCPU1202へ送信する(S117)。継続要求102を受信したホストCPU1202は、演算処理の開始要求103を出力する。
【００４６】
再設定情報106（または124）を受信すると、経路設定部117は、再設定情報106（または124）から抽出した送信経路情報105に基づき経路切替信号201を生成して、再び、設定ネットワーク114の送信経路の形成を行う(S118)。そして、演算処理の開始要求103を受信すると、再設定情報106（または124）を設定ネットワーク114に送信し、処理開始信号402をPE100に送信し(S119)、再設定情報106（または124）に従う処理が開始される。
【００４７】
［故障特定］
図8により動的再構成回路107における故障箇所を特定するための構成例を示す。動的再構成回路107の設定ネットワーク114には、構成情報101の送信経路の故障箇所を特定するためのスキャンフリップフロップ回路（以下、スキャンFF）900が組み込まれている。なお、図8にはスイッチ200と隣接するスイッチ200の間にスキャンFF900を組み込む例を示すが、これに限定されるものではなく、他の構成を用いてもよい。
【００４８】
動的再構成回路107の外部IOとして、スキャンFF900を制御し、動作を観測するためのスキャンチェーン（経路）として、スキャンイン端子901、スキャンモード端子902、スキャンアウト端子903が設けられる。
【００４９】
スキャンFF900は、マルチプレクサ(MUX)904と通常のフリップフロップ(FF)905で構成され、スイッチ200同士の接続ごとに設けられる。スキャンFF900の動作モードは、スキャンモード端子902に入力されるスキャンイネーブル信号に従い通常モードとテストモードの間で切り替わる。テストモードにおいて、各スキャンFF900は、シリアル接続され、シフトレジスタを形成する。
【００５０】
スキャンFF900が通常モードに設定された状態で、経路切替信号201によりスイッチ200の入出力が制御され、送信経路が形成される。故障特定が開始されると、故障検知部116は、スキャンモード端子902にスキャンイネーブル信号を入力し、スキャンFF900をテストモードに設定する。
【００５１】
次に、故障検知部116は、送信経路の始点に相当するスイッチ200のスキャンFF900のスキャンイン端子901にテストパターン信号112を入力する。そして、スキャンFF900を通常モードに設定し、FF905にテストクロック信号CLKを供給して、各スイッチ200の出力をスキャンFF900に取り込む。そして、スキャンFF900をテストモードに設定し、スキャンFF900が取り込んだ信号をスキャンアウト端子903から取得する。
【００５２】
テストモードにおいて各スキャンFF900はシフトレジスタを形成する。従って、モードの切替、テストパターン信号112の入力、テストクロック信号CLKの供給を繰り返すと、送信経路の終点に相当するスイッチ200のスキャンFF900のスキャンアウト端子903からテストパターン応答信号113が出力される。
【００５３】
故障検知部116は、受信したテストパターン応答信号113と期待パターンを比較する。テストパターン応答信号113と期待パターンが一致しない場合、故障検知部116は、パターンが異なる部分に対応するスイッチ200のスイッチIDを検出する。そして、検出したスイッチIDと送信経路情報105から故障箇所の経路IDを検出する。
【００５４】
故障箇所の経路IDを検出した場合、故障検知部116は、当該経路IDを故障経路特定情報109として構成情報制御部115および経路分割制御部123に送信する。なお、各スイッチ200には予めスイッチIDが付与され、各経路には予め経路IDが付与されていて、故障検知部116はスイッチIDと経路IDの関係を示すテーブルを保持している。
【００５５】
［構成情報制御部］
図9のブロック図により構成情報制御部115の構成例を示す。代替経路有無判定部1001は、構成情報101と送信経路情報105を入力し、故障経路特定情報109を受信すると、それら情報に基づき代替経路の有無の判定を開始する。送信経路情報105は送信経路に設定すべきスイッチ200を示すため、構成情報101の送信経路を明らかにすることができる。以下、送信経路情報105によって定義される、送信経路に設定すべきスイッチと経路の集合を「経路空間」と呼ぶ。
【００５６】
代替経路有無判定部1001は、経路空間に代替経路が存在するか否かを判定する。経路空間に代替経路が存在すると判定した場合は、代替経路検索要求を代替経路検索部1002に送信する。一方、経路空間に代替経路が存在しない場合は、拡大経路検索要求を経路空間検索部1003に送信する。
【００５７】
代替経路検索要求を受信した代替経路検索部1002は、経路空間において代替経路の検索を行い、代替経路情報を送信順序変更部1004に送信する。また、拡大経路検索要求を受信した経路空間検索部1003は、経路空間を拡大した経路空間において代替経路の検索を行う。
【００５８】
経路空間検索部1003は、すべての構成情報を設定するための送信経路を示す情報を予め保持し、当該情報には各スイッチのIDと経路ID、それらの物理的な配置情報が含まれる。経路空間検索部1003は、送信経路情報105によって定義される経路空間に隣接する経路が構成情報の設定タイミングにおいて使用されるか否かを判定し、使用されない場合は、それら経路を経路空間に追加し、代替経路の探索を開始する。拡大経路空間において代替経路を発見した場合、経路空間検索部1003は、代替経路情報を送信順序変更部1004に送信する。
【００５９】
また、拡大経路空間においても代替経路が発見されない場合、経路空間検索部1003は、経路分割制御部123に経路分割要求122を送信する。経路分割要求122を受信した経路分割制御部123は、詳細は後述するが、経路空間を分割して代替経路の検索を行う。
【００６０】
代替経路情報を受信すると、送信順序変更部1004は、構成情報101の送信順序の制御を開始する。つまり、代替経路情報からPE100とルータ203の設定順序を抽出し、設定順序に合わせて構成情報101を送信順序を並べ替える。並べ替えが完了した設定情報が再設定情報106であり、再設定情報106は経路設定部117に送信される。
【００６１】
構成情報101の送信経路の変更に合わせて構成情報101の送信順序を変更しない場合、構成情報101の設定に、構成情報101を設定する要素数の最大二倍のサイクルを必要とする。構成情報101の送信経路の変更に合わせて構成情報101を並べ替える（送信順序を変更する）場合、構成情報101を設定は、構成情報101を設定する要素数のサイクルで完了し、構成情報101の設定時間の増加を防ぐことができる。
【００６２】
●代替経路有無判定部
図10のフローチャートにより代替経路有無判定部1001による代替経路の有無判定を説明する。以下の説明においては、各スイッチ200を「ノード」と呼び、スイッチ200同士の接続を「ブランチ」と呼ぶ。代替経路有無判定部1001は、故障経路特定情報109に基づき、経路空間の各ノードについて他ノードとの間の正常なブランチの数をカウントし(S201)、正常なブランチが二つ以上存在するか否かを判定する(S202)。
【００６３】
経路空間の各ノードと他ノードの間に二つ以上の正常なブランチが存在する場合、代替経路有無判定部1001は、経路空間に代替経路が存在すると判定して、代替経路検索要求を代替経路検索部1002に送信する(S203)。また、正常なブランチが二つ以上存在しない（一つ以下の）ノードがある場合、代替経路有無判定部1001は、経路空間に代替経路が存在しないと判定して、拡大経路検索要求を経路空間検索部1003に送信する(S204)。
【００６４】
このように、送信経路情報105が示す設定ネットワーク114の各ノードについて正常なブランチが一つ以下のノードが存在しない場合に代替経路検索要求が発行され、正常なブランチが一つ以下のノードが存在する場合に拡大経路検索要求が発行される。なお、各ノードのブランチの数を用いる最も単純な判定方法を説明したが、別の判定方法を用いてもよい。例えば、一般的に知られているオイラーの一筆書きの定理などを利用してもよい。
【００６５】
●代替経路の検索
図11のフローチャートにより代替経路の検索を説明する。代替経路検索要求を受信した代替経路検索部1002は、代替経路の探索を開始し、送信経路情報105に基づき送信経路の始点としてノードNaを設定する(S301)。
【００６６】
次に、代替経路検索部1002は、始点から代替経路を探索し、代替経路のリスト（Ri、Ri+1、…、Rn）を作成する(S302)。そして、代替経路が存在するか否かを判定する(S303)。代替経路が存在しないと判定した場合、代替経路検索部1002は、拡大経路検索要求を経路空間検索部1003に送信し(S304)、処理を終了する。言うまでもないが、代替経路Rは同じノードを二度通らずに経路空間の全ノードを通過する経路である。
【００６７】
代替経路が存在する場合、代替経路検索部1002は、代替経路のリストと故障経路特定情報109に基づき、代替経路の故障箇所の有無を判定する(S305)。故障箇所が存在する代替経路はリストから削除し(S306)、リストに含まれるすべての代替経路について故障箇所の有無判定を行ったか否かを判定し(S307)、故障箇所の有無判定が未了の代替経路がある場合は処理をステップS305に戻す。
【００６８】
また、故障箇所の有無判定が未了の代替経路がなくなり、すべての代替経路に故障箇所が存在すると判定した場合、代替経路検索部1002は、拡大経路検索要求を経路空間検索部1003に送信し(S304)、処理を終了する。
【００６９】
ステップS305において故障箇所が存在しない代替経路Rxを検出すると、代替経路検索部1002は、代替経路Rxがすべてのノードを通過するか否かを判定する(S308)。代替経路Rxがすべてのノードを通過しない場合、代替経路Rxの接続先のノードNa+1を始点に設定し(S309)、ステップS302からS308の処理を繰り返す。
【００７０】
一方、代替経路Rxがすべてのノードを通過する場合、代替経路検索部1002は、代替経路Rxの終点が構成情報101が示す終点に一致するか否かを判定する(S310)。つまり、代替経路Rxの終点に相当するスイッチ200が、構成情報101が示す終点のPE100またルータ203に対応する場合、代替経路Rxの終点が構成情報101が示す終点に一致すると判定される。
【００７１】
代替経路検索部1002は、終点が一致しない場合、処理をステップS301に戻し、始点を変更して同様の処理を繰り返す。また、終点が一致する場合、代替経路を発見したと判定して、代替経路Rxを示す代替経路情報を生成し(S311)、処理を終了する。
【００７２】
図11には記載しないが、経路空間のすべてのノードを始点として代替経路探索を行っても代替経路が発見されない場合、代替経路検索部1002は、拡大経路検索要求を経路空間検索部1003に送信し(S304)、処理を終了する。
【００７３】
上記の代替経路の探索方法は、経路空間を拡大した場合も同様に代替経路を探索することができ、経路空間検索部1003の検索処理に適用することができる。ただし、ステップS304は、経路空間検索部1003が経路分割要求122を経路分割制御部123に送信する処理になる。
【００７４】
［経路分割制御部］
図12のブロック図により経路分割制御部123の構成例を示す。経路分割検索部1301は、構成情報101と故障経路特定情報109を入力し、経路分割要求122を受信すると、経路空間を分割することで構成情報の設定が可能か否かを判定する。代替経路が存在する場合、代替経路情報を設定スケジュール制御部1302と送信順序変更部1303に送信する。
【００７５】
設定スケジュール制御部1302は、受信した代替経路情報に基づき、構成情報の設定スケジュールを変更し、変更後の設定スケジュールを送信順序変更部1303に送信する。送信順序変更部1303は、代替経路情報と設定スケジュールに基づき構成情報の送信順序の変更を行って生成した再設定情報124を経路設定部117に送信する。なお、送信順序の変更は、送信順序変更部1004が行う送信順序の制御と同様である。
【００７６】
また、設定スケジュールが変更不可、または、設定スケジュールが変更可能でも構成情報が設定できないなど経路空間を分割しても代替経路が発見できない場合がある。この場合、経路分割制御部123は、代替経路が存在しないとして処理の中止要求102をホストCPU1202に送信して、処理を終了する。
【００７７】
このように、構成情報101の送信経路上の故障箇所を特定し、構成情報101を送信する代替経路を探索することができる。従って、構成情報101の送信経路に故障が生じた場合も、代替経路を設定することができれば、処理動作を継続することができる。さらに、送信経路を分割して代替経路の検索を行うことができ、動作中に設定ネットワーク114に故障が生じた場合も代替経路の探索を可能にして、処理動作を継続させる可能性を高めることができる。
【００７８】
［動作例］
●構成情報の設定
まず、動的再構成回路107に構成情報101（あるいは再設定情報106または124）を設定する動作を説明する。図13により動的再構成回路107の構成要素と各種IDの関係、および、構成情報101の一例を説明する。
【００７９】
図13(A)は動的再構成回路107の構成要素（PE100、ルータ203、スイッチ200）とIDの関係例を示す。□記号で示すスイッチ200にはそれぞれ「1」から「15」のIDが付与されている。○記号で示すルータ203と□記号で示すPE100にはそれぞれタ「001」から「013」のIDが付与されている。なお、構成情報の設定用に、ID=1、2、3、7、8、9、13、14、15のスイッチ200はそれぞれID=001、002、003、006、007、008、011、012、013のルータ203に接続されている。同様に、構成情報の設定用に、設定ID=4、5、10、11のスイッチ200はそれぞれID=004、005、009、010のPE100に接続されている。図13(A)においては、それら接続の記載は省略する。
【００８０】
図12(B)は経路IDを示す。あるスイッチ200を中心に、図に示す上に向う経路のIDを「00」、右に向う経路のIDを「01」、下に向う経路のIDを「10」、左に向う経路のIDを「11」とする。例えば、ID=5のスイッチ200から右に向う経路のIDを「501」と表記する。
【００８１】
図13(C)は構成情報101の一例を示す。構成情報101は、前述したように、PE100の設定データとルータ203の設定データを組み合わせた情報である。図13(C)の例には、四つのPE100、九つのルータ203に対する設定データが含まれる。なお、図13(A)の例において、ID=6とID=12のスイッチ200は、構成情報101の送信経路としてのみ使用されるため、図13(C)の構成情報101にそれらスイッチ200に接続されたPE100の設定データは含まれない。
【００８２】
図13(C)に示すような構成情報101を取得した経路設定部117は、構成情報101から経路を設定するための情報である送信経路情報105を抽出する。送信経路情報105は、各設定データの並びから作成され、図13(C)の例においては、スイッチ200のIDが並んだ「1→2→3→6→5→4→7→8→9→12→11→10→13→14→15」の送信経路が抽出される。
【００８３】
図14により送信経路情報105を説明する。図14(A)は抽出された送信経路を示し、図14(B)は図14(A)に示す送信経路に対応する送信経路情報105を示す。送信経路情報105は、スイッチ200のIDと、当該スイッチにおける経路IDを組み合わせた情報である。
【００８４】
経路設定部117は、図14(B)に示す送信経路情報105から各スイッチ200の経路切替信号201を作成し、経路切替信号201を各スイッチ200に送信し、設定ネットワーク114の送信経路を形成する。また、構成情報101を構成情報制御部115と経路分割制御部123に送信する。
【００８５】
次に、経路設定部117は、送信経路情報105を故障検知部116に送信し、ホストCPU1202に送信経路情報の送信完了通知104を送信する。送信完了通知104を受信したホストCPU1202は、故障検知部116に故障特定の開始信号110を送信する。
【００８６】
●故障経路の特定
故障特定の開始信号110を受信した故障検知部116は、送信経路情報105に基づきテストパターン信号112とテストパターン応答信号113の期待パターンを作成し、テストパターン信号112を設定ネットワーク114に送信する。
【００８７】
図15によりテストパターン信号112、期待パターン、テストパターン応答信号113を説明する。なお、設計段階において構成情報101の送信経路が定まっている場合は、テストパターン信号112と期待パターンを予め外部メモリ1910に格納しておいてもよい。その場合、構成情報101の取得に合わせて、テストパターン信号112と期待パターンを外部メモリ1910から取得し、故障検知部116に供給すればよい。
【００８８】
故障検知部116は、‘1’と‘0’を繰り返すテストパターン信号112を作成し、期待パターンとしてテストパターン信号112を1サイクル分シフトしたパターンを作成する。故障検知部116は、スキャンモード端子902にスキャンイネーブル信号を供給し、スキャンFF900をテストモードに設定する。次に、図15に示すテストパターン信号112をスキャンイン端子901を介して各スキャンFF900に供給する。その結果、例えば、図15に示すテストパターン応答信号113が得られたとする。
【００８９】
図15に示す期待パターンと、テストパターン応答信号113を比較すると、スイッチID=2の位置で信号値に不一致が生じていることが分かる。この場合、故障検知部116は、送信経路情報105からID=1とID=2のスイッチ200の間の経路に故障箇所があると特定する。そして、図13(B)の表記に従い特定した故障箇所を示す情報「101」（または「211」）を故障経路特定情報109として構成情報制御部115と経路分割制御部123に送信する。
【００９０】
●代替経路の検索
故障経路特定情報109を受信した構成情報制御部115の代替経路有無判定部1001は、代替経路の有無の判定を開始する。まず、送信経路情報105に基づきスイッチ200の数（ノード数）をカウントする。図14(A)の例はノード数Nが15である。そして、代替経路有無判定部1001は、故障経路特定情報109を反映した状態で各ノードにブランチが二つ以上存在するか否かを判定する。
【００９１】
図16により代替経路の有無の判定を説明する。ID=1のスイッチ200（以下、ノード1）の経路ID=01に故障が生じたと仮定すると、図16(A)に示すようにノード1のブランチの数は「2」という結果が得られる。なお、ノード1については、経路設定部117からノード1までの経路もブランチの一つとしてカウントし、故障がなければブランチの数は「3」になる。同様に、ID=15のスイッチ200（以下、ノード15）についても、ノード15から経路設定部117への経路もブランチの一つとしてカウントし、故障がなければブランチの数は「3」になる。
【００９２】
後述する図18(A)に×印で示すように、ノード1の経路「101」（または「211」）、および、ノード2の経路「201」（または「311」）に故障が生じたと仮定する。この場合、図16(A)に示すように、ノード2と3のブランチの数が「1」という結果が得られる。
【００９３】
図16(A)の例においては、ブランチが一つのノードが存在するため、経路空間には代替経路が存在しないと判定される。従って、構成情報制御部115の経路空間検索部1003は、送信経路情報105に基づき経路空間に隣接する経路、言い替えれば、故障箇所のノードに接続するスイッチ200（ノード）とその経路を検索する。
【００９４】
検索の結果、図16(B)に示すように、ノード2に接続するノード16とその経路、および、ノード3に接続するノード17とその経路がリストアップされる。なお、図16などに示すノードのIDは便宜的に付加したものであり、IDの大小とノード同士の接続・非接続は無関係である。経路空間検索部1003は、リストアップしたノードと経路が同じタイミングで他の構成情報の設定に使われていないか否かを判定する。
【００９５】
図17により外部メモリ1910に保持される構成情報101の配置例を示す。構成情報101の設定データは、設定データの使用順に従い、外部メモリ1910の上位アドレスから順に格納されている。つまり、第一のデータ処理を実現する第一の構成情報1601、第二のデータ処理を実現する第二の構成情報1602、…の順に格納されている。第一の構成情報1601はアドレス領域1603に保持され、第二の構成情報1602はアドレス領域1604に保持される。なお、図17に示す構成情報101の配置に限らず、他の方法によって構成情報101を配置してもよい。
【００９６】
図17に示すように、構成情報101の設定データは、その使用順（設定順序）に従って外部メモリ1901に格納されている。従って、経路空間検索部1003は、構成情報の設定順序を参照して、リストアップしたノードと経路が使用されるタイミングを認識することができる。ここでは、ノード16と17およびその経路が未使用と判定されると仮定する。
【００９７】
次に、経路空間検索部1003は、リストアップしたノードと経路を経路空間に加えた拡大経路空間に代替経路が存在するか否かの判定を行う。その結果、図16(B)に示すように、ノード2と3のブランチの数が「1」から「2」に増加し、拡大経路空間の全ノードのブランチの数が二以上になり、代替経路が存在すると判定される。
【００９８】
図18により拡大経路空間における代替経路の探索方法を説明する。経路空間検索部1003は、送信経路情報105に基づき開始点を設定する。図18(A)に示す例では、ノード1を開始点とし、開始点から取り得る経路を探索する。以下、ノードdを「Nd」と表記する場合がある。
【００９９】
開始点のN1から取り得る経路は、図13(B)の表記に従えば経路101と経路110である。故障経路特定情報109が「101」を示すことから経路101は故障経路と判定され、経路「101」が代替経路のリストから削除され、経路「110」が代替経路のリストに残る。
【０１００】
代替経路に未通過のノードがあるので、経路空間検索部1003は、図18(B)に示すように、経路110の接続先であるN4を次のノードに設定する。N4から取り得る経路は、既選択の経路「110」（経路「400」）を除くと、経路「401」と経路「410」である。故障経路特定情報109は、それら経路の故障を示さないので、例えば経路「410」が選択されるとする。
【０１０１】
なお、経路の候補が複数ある場合の選択順に基準を設けてもよい。例えば、PE100に特別な仕様が施されている場合、特別なルータ203が用いられている場合、先に構成情報の設定が必要なPE100やルータ203がある場合などは、それらを接続する経路を優先的に選択する基準を設ければよい。
【０１０２】
代替経路に未通過のノードがあるので、経路空間検索部1003は、図18(C)に示すように、経路「410」の接続先であるN7を次のノードに設定する。以下、同様の検索を繰り返し、代替経路に未通過のノードがなくなるまで代替経路の検索が継続する。図18(C)は、N7の次にN8が選択され、その後、N5、N2、N16、N17、N3、N6、…が順次選択される例を示している。
【０１０３】
図19により代替経路の探索結果を示す。図19(A)は経路変更前の送信経路と送信経路情報105の例（図14と同じ）を示し、図19(B)は代替経路の探索によって得られる代替経路情報の例を示す。
【０１０４】
上記では、経路空間を拡大して代替経路を検索する例を説明したが、経路空間に代替経路が存在すると判定された場合は、代替経路検索部1002が経路空間において代替経路の検索を行うことになる。その場合の検索方法は、経路空間の拡大（上記の例ではノード16、17とその経路のリストアップ）を除いて上記の検索方法と同様であり、詳細説明を省略する。
【０１０５】
●構成情報の送信順序の変更
次に、構成情報制御部115の送信順序変更部1004は、代替経路情報に基づき、構成情報101の送信順序を変更する。つまり、代替経路情報からPE100とルータ203の設定順序を抽出し、代替経路情報が示す送信経路に合わせて構成情報101の設定データを並べ替える。
【０１０６】
スイッチ200、PE100、ルータ203のIDから、ID=1のスイッチがルータ001に、ID=4のスイッチがPE004に、ID=7のスイッチがルータ006に、…、それぞれ接続されることが判別される。この判別結果から、構成情報101の送信順序がルータ001の設定データ、PE004の設定データ、ルータ006の設定データ、…の順になるように、構成情報101の設定データの送信順序を変更する。なお、経路空間を拡大した場合のスイッチ（上記の例ではノード16、17）に接続された構成要素には、構成情報を設定する必要がないため、当該構成要素用にダミーまたは空の設定データを用意する。
【０１０７】
図20により構成情報制御部115が出力する再設定情報106の一例を示す。図20(A)は経路変更前の構成情報101の例（図13(C)と同じ）を示し、図20(B)は経路変更後の構成情報である再設定情報106の例を示す。つまり、送信順序変更部1004は、代替経路情報が示す送信経路のスイッチの並び順（図17(B)）に従い、構成情報101に含まれる設定データの並び順を変更する。
【０１０８】
送信順序の変更が完了すると、送信順序変更部1004は、送信順序を変更した構成情報である再設定情報106を経路設定部117に送信する。また、構成情報制御部115は、演算処理の継続要求102をホストCPU1202へ送信する。
【０１０９】
●経路空間の分割による代替経路の検索
前述したように、構成情報制御部115の経路空間検索部1003は、経路空間を拡大して代替経路を検索しても代替経路が発見されない場合、経路分割要求122を経路分割制御部123に送信する。経路分割要求122を受信した経路分割制御部123は、経路空間の分割による代替経路の検索を行う。
【０１１０】
図21により経路空間の分割による代替経路の検索処理を説明する。図21には拡大経路空間を分割して代替経路を検索する拡大経路空間検索を示すが、経路空間を分割して代替経路を検索する経路空間検索を行ってもよい。ただし、経路空間検索において代替経路が発見されない場合は拡大経路空間検索を行うことになるので、処理効率を考慮すると、拡大経路空間検索を行うことが望ましい。
【０１１１】
図21(A)に示すような故障が発生したとすると、すべてのノードに一度に構成情報を設定することができない。このような場合が代替経路が発見できない場合に相当し、経路分割制御部123は、経路空間を分割し、構成情報の設定スケジュールを変更して代替経路を検索する。なお、ここでは、送信経路情報105が示す構成情報を設定する終点がN15であるとする。
【０１１２】
経路分割制御部123の経路分割検索部1301は、送信経路情報105に基づき開始点を設定する。図21(B)に示す例では、N1を開始点とし、開始点から取り得る経路を探索する。N1から取り得る経路は経路「110」のみであり、N4が次のノードに設定される。N4から取り得る経路は、既選択の経路「110」（経路「400」）を除くと、経路「401」と経路「410」であり、経路「401」が選択されるとする。
【０１１３】
次に、経路分割検索部1301は、図21(B)に示すように、経路「401」の接続先であるN5を次のノードに設定する。以下、同様の検索を繰り返し、図21(B)の例では、N5の次にN2が選択され、その後、N16、N17、N3、N6、N9、N12、N11、N14、N15が順次選択されて、終点に到達する。図21(B)に示す経路は終点に到達するが、構成情報の設定が必要なすべてのノード（以下、全構成情報設定ノード）を通過していない。従って、経路分割検索部1301は、図21(B)に示す経路を経路0として記録する。
【０１１４】
次に、経路分割検索部1301は、図21(C)に示すように、終点であるN15から始点であるN1に向って逆方向に経路を検索する。N15から取り得る経路は故障した経路「1500」を除くと経路「1511」のみであり、N14が次のノードに設定される。N14から取り得る経路は、経路iで選択された経路「1400」と未選択の経路「1411」であり、経路iで未選択の経路「1411」が選択され、N13が次のノードに設定される。
【０１１５】
次に、N13から取り得る経路は、既選択の経路「1301」を除くと経路「1300」のみであり、N10が次のノードに設定される。N10から取り得る経路は、故障した経路「1001」を除くと経路「1000」のみであり、N7が次のノードに設定される。以下、同様の検索を繰り返し、図21(C)の例では、N7の次にN8が選択され、その後、N5、N4、N1が順次選択されて、始点に戻る。経路0と同様に、図21(C)に示す経路は全構成情報設定ノードを通過していない。従って、経路分割検索部1301は、図21(C)に示す経路を経路1として記録する。
【０１１６】
次に、経路分割検索部1301は、検索した経路の組み合わせ（以下、経路集合）によって、全構成情報設定ノードを通過するか否かの判定（以下、全通過判定）を行う。図21(B)(C)の例では、経路0と経路1の経路集合によって全構成情報設定ノードを通過するので代替経路の検索を終了する。
【０１１７】
経路集合によって全構成情報設定ノードを通過しないと判定した場合、経路分割検索部1301は、始点から終点に向って未選択の経路を優先的に通る経路iの検索と、終点から始点に向って未選択の経路を優先的に通る経路i+1の検索を交互に繰り返す。そして、検索が完了する度に全通過判定を行う。全構成情報設定ノードを通過すると判定する前に未選択の経路がなくなった場合、経路分割検索部1301は、代替経路が存在しないとして処理の中止要求102をホストCPU1202に送信して、処理を終了する。
【０１１８】
以下、経路0と経路1の経路集合によって全構成情報設定ノードを通過するとして説明を行う。図22により経路0と経路1の経路情報を示す。奇数番の経路、例えば図22(B)に示す経路1は、逆方向に検索されたため経路情報を反転する必要があり、図22(C)は反転した経路1の経路情報を示す。なお、ノードの順番を反転するだけでなく、経路IDも変更する必要がある。つまり、経路ID=01は11に、経路ID=11は01に、経路ID=10は00に、経路ID=00は10に変更される。
【０１１９】
経路分割検索部1301は、経路空間を分割した代替経路の探索が完了すると、図22(A)(C)に示す経路情報を代替経路情報として設定スケジュール制御部1302と送信順序変更部1303に送信する。
【０１２０】
代替経路情報を受信した設定スケジュール制御部1302は、複数の経路に構成情報を設定する順序（以下、経路順）を決定する。例えば、経路0、経路1の順に決定すればよいが、構成情報を優先設定すべき経路が存在する場合などは当該経路の順序を優先してもよい。
【０１２１】
次に、送信順序変更部1303は、設定スケジュール制御部1302が決定した経路順と代替経路情報に基づき、構成情報101の送信順序を制御する。つまり、経路順に従い、経路0の経路情報からPE100とルータ203の設定順序を抽出し、設定順序に合わせて構成情報101を送信順序を並べ替える。次に、経路1の経路情報からPE100とルータ203の設定順序を抽出し、設定順序に合わせて構成情報101を送信順序を並べ替える。このようにして構成される設定情報が再設定情報124であり、再設定情報124は経路設定部117に送信される。
【０１２２】
図23により経路分割制御部123が出力する再設定情報124の一例を示す。図23に示す再設定情報124は、経路0の経路情報と経路1の経路情報に基づき、図13(C)に示す構成情報101の設定データを並べ替えたものである。
【０１２３】
このように、経路空間を分割して代替経路を検索し、設定スケジュールを決定することで、動作中に設定ネットワーク114の複数箇所に故障が生じた場合も代替経路の探索を可能にして、処理動作を継続させる可能性を高めることができる。
【０１２４】
●再設定情報に基づく動的再構成回路の設定
再設定情報106（または124）を受信した経路設定部117は、再設定情報106（または124）に基づき各スイッチ200の経路切替信号201を生成して、構成情報101の送信経路を再設定する。そして、送信経路の再設定が完了すると、送信順序が変更された構成情報である再設定情報106（または124）を動的再構成回路107に送信する。
【０１２５】
図19(B)に示す代替経路と図20(B)に示す再設定情報106を例に説明すると、ID=1のスイッチを介してルータ001は「ルータ013の設定データ」を受信する。ルータ001は、設定データのID301と自身のIDが不一致と判定し、設定値303を構成情報記憶部400に書き込まずに、設定データを出力する。続く、PE004、ルータ006、…、PE011も同様に、IDが一致しないため、設定値303の書き込みを行わずに、設定データを出力する。
【０１２６】
17クロックサイクル後、ID=15のスイッチを介してルータ013は「ルータ013の設定データ」を受信する。ルータ013は、設定データのID301と自身のIDが一致すると判定し、設定データのアドレス302に従い、構成情報記憶部400に設定値303を書き込む。
【０１２７】
また「PE004の設定データ」は、17クロックサイクル後、ID=4のスイッチを介してPE004に到達し、IDの一致により、設定値303が構成情報記憶部400に書き込まれる。言い換えれば、17クロックサイクル後、すべてのPE100とルータ203に構成情報が設定される。
【０１２８】
このように、構成情報の送信経路の故障箇所を検知し、故障箇所を検知した場合は送信経路を再設定し、構成情報の送信順序を変更することで、動的再構成回路107に正常な処理を継続させることができる。
【０１２９】
［構成情報生成装置および半導体装置の構成説明］
図24のブロック図により構成情報101を生成する構成情報生成装置および構成情報101を使用する半導体装置の構成例を示す。図24(A)において、CPU1901は、装置全体の制御を司る。ROM1902は、ブートプログラムなどを記憶する。RAM1903は、CPU1901のワークエリアとして利用され、オペレーティングシステム(OS)、アプリケーションプログラムなどがロードされる。
【０１３０】
ハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)などの記憶部1904は、OS、構成情報101を作成するためのアプリケーションプログラムおよび様々なデータを格納する。キーボード1905とマウス1906は、ユーザインタフェイスに対する入力部として機能する。
【０１３１】
表示制御部1907は、ビデオメモリおよびビデオコントローラを備える。表示装置1908は、表示制御部1907から映像信号を受信し、映像信号が表す画像を表示する。表示装置1908に表示される画像にはユーザインタファイスが含まれる。
【０１３２】
インタフェイス(I/F)1909は、各種の外部デバイスと通信するインタフェイスである。例えば、外部メモリ1910がI/F1909に接続されると、CPU1901は、作成した構成情報101を外部メモリ1910に書き込むことができる。
【０１３３】
上記の構成において、構成情報生成装置に電源が投入されると、CPU1901はROM1902に格納されたブートプログラムを実行し、記憶部1904に格納されたOSをRAM1903にロードする。その後、構成情報101を作成するアプリケーションプログラムが起動されると、構成情報生成装置は回路構成情報作成装置として機能する。そして、作成された構成情報101は、例えば外部メモリ1910を介して情報処理装置120に入力され、本発明の処理に用いられる。
【０１３４】
図24(B)において、半導体装置1200は、再構成デバイス1201と外部メモリ1910を有する。再構成デバイス1201は、実施例の情報処理装置120、ホストCPU1202、インタフェイス(I/F)1204、入出力ポート(I/O)1205、および、それら構成を接続するバス1203を有する。なお、半導体装置の構成は図24(B)に限定されない。
【０１３５】
ホストCPU1202は、再構成デバイス1201全体の制御を司る。I/F1204に接続された外部メモリ1910は、構成情報101、ブートプログラム、OS、アプリケーションが格納されるEEPROMやRAMなどのメモリである。I/O1205は、再構成デバイス1201が画像データなどの処理対象または処理結果のデータ1206を入出力するためのポートである。勿論、I/O1205を介して構成情報101を入力することもできる。
【０１３６】
前述したように、図17は外部メモリ1910に保持される構成情報101の配置例を示す。構成情報101の設定データは、設定データの使用順に従い、外部メモリ1910の上位アドレスから順に格納されている。つまり、第一のデータ処理を実現する第一の構成情報1601、第二のデータ処理を実現する第二の構成情報1602、…の順に格納されている。第一の構成情報1601はアドレス領域1603に保持され、第二の構成情報1602はアドレス領域1604に保持される。なお、図20に示す構成情報101の配置に限らず、他の方法によって構成情報101を配置してもよい。
【０１３７】
半導体装置1200に電源が投入されると、ホストCPU1202は、外部メモリ1910に格納されたブートプログラムを実行し、システムを起動する。システムが起動すると、ホストCPU1202は、例えば、I/O1205を介して構成情報101を読み込み、構成情報101を外部メモリ1910に格納した後、情報処理装置120に、外部メモリ1910からの構成情報101の読み出しを指示する。指示に従い、情報処理装置120は外部メモリ1910から構成情報101を読み出し、構成情報101は第一の構成情報1601、第二の構成情報1602、…の順に情報処理装置120に読み込まれる。
【０１３８】
以降、情報処理装置120は、構成情報101に従う動作設定およびデータ処理を行う。つまり、情報処理装置120内の動的再構成回路107の動作設定が行われ、動作設定が完了すると、I/O1205を介して処理対象のデータ1206が情報処理装置120に入力される。そして、動的再構成回路107内のPE100によってデータ処理が行われ、データ処理が終了すると、処理結果のデータ1206がI/O1205を介して出力される。
【０１３９】
なお、上記では、I/O1205を介して構成情報101を読み込み、構成情報101を外部メモリ1910に格納する例を説明したが、構成情報101が予め格納された外部メモリ1910を半導体装置1200に組み込んでもよい。
【０１４０】
［変形例］
上記では、構成情報101の送信経路を変更する際に、送信経路の始点を変更し、送信経路の終点を維持する例を説明した。しかし、終点を維持すると代替経路の探索時間を早めることができるが、代替経路が発見されない場合が存在する。送信経路の終点の変更を許容することもできる。つまり、図11に示す処理と基本的に同じであり、ステップS310の判定を実施しなければよい。
【０１４１】
さらに、発見した代替経路について、当該経路が実際に使用し得るか否かを判定してもよい。また、代替経路の探索を所定回数実施して代替経路が見付からない場合、代替経路は探索不能と判定してもよい。また、終点の変更を許容することにより、構成情報101の送信経路が長くなり、構成情報101の設定に所定以上の時間を必要とする場合、代替経路は探索不能と判定してもよい。
【０１４２】
あるいは、送信経路の終点を維持し、送信経路の始点の変更することもできる。その場合、図11に示す処理のステップS301を「送信経路の終点を設定する」に変更し、以降の処理を終点から代替経路を探索する処理に変更すればよい。このように、代替経路の探索処理において終点の変更も許容すれば、故障箇所が複数存在する場合も代替経路を見付け易くすることができる。
【０１４３】
また、情報処理装置120の動的再構成回路107以外の構成をマイクロプロセッサのようなコンピュータによって構成することもできる。その場合、当該コンピュータには、ROMなどの記録媒体を介して、動的再構成回路107以外の構成を実現するプログラムが供給される。
【０１４４】
［その他の実施例］
本発明は、上述の実施形態の一以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける一以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、一以上の機能を実現する回路（例えば、ASIC）によっても実現可能である。
【符号の説明】
【０１４５】
107 … 動的再構成回路、117 … 経路設定部、116 … 故障検知部、115 … 構成情報制御部、123 … 経路分割制御部
【図１】
2016133926.tif 000003
【図２】
2016133926.tif 000004
【図３】
2016133926.tif 000005
【図４】
2016133926.tif 000006
【図５】
2016133926.tif 000007
【図６】
2016133926.tif 000008
【図７】
2016133926.tif 000009
【図８】
2016133926.tif 000010
【図９】
2016133926.tif 000011
【図１０】
2016133926.tif 000012
【図１１】
2016133926.tif 000013
【図１２】
2016133926.tif 000014
【図１３】
2016133926.tif 000015
【図１４】
2016133926.tif 000016
【図１５】
2016133926.tif 000017
【図１６】
2016133926.tif 000018
【図１７】
2016133926.tif 000019
【図１８】
2016133926.tif 000020
【図１９】
2016133926.tif 000021
【図２０】
2016133926.tif 000022
【図２１】
2016133926.tif 000023
【図２２】
2016133926.tif 000024
【図２３】
2016133926.tif 000025
【図２４】
2016133926.tif 000026