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