(57)【要約】  異なるタイミングで入力される制御信号によって規定されるルーティング制御情報の処理を行う場合において、ルーティング制御情報を自動で生成しかつルーティング制御情報の分析等を自動で行う経路制御システムを提供することを目的とする。本発明の経路制御装置は、接続関係を規定するアーキテクチャ接続関係リスト（４１）、並びに、送受信対応リストに基づいて第１の接続情報及び第２の接続情報を生成するルーティング制御情報生成部（４４）と、シミュレーションにて、第１及び第２のデータの転送先が一致した場合、第１の接続情報または第２の接続情報のうちの少なくとも１つを変更するルーティング制御情報修正部（４７）と、を含むものである。
2013111547.tif 000002
【特許請求の範囲】
【請求項１】
第１のデータを送信する第１の送信手段と、第２のデータを送信する第２の送信手段と、前記第１のデータ又は前記第２のデータを受信する第１の受信手段及び第２の受信手段と、第１の接続情報に基づいて前記第１のデータを前記第１の受信手段又は前記第２の受信手段へ転送する第１の接続手段と、第２の接続情報に基づいて前記第２のデータを前記第１の受信手段又は前記第２の受信手段へ転送する第２の接続手段とを含む装置の、前記第１の接続情報の接続関係及び前記第２の接続情報の接続関係を規定する接続関係リスト、並びに、前記第１の受信手段と前記第１の受信手段が受信するデータの送信元との第１の対応関係、及び前記第２の受信手段と前記第２の受信手段が受信するデータの送信元との間の第２の対応関係とを管理する送受信対応リストに基づいて前記第１の接続情報及び前記第２の接続情報を生成する接続情報生成手段と、
前記第１の接続情報及び前記第２の接続情報に基づいて、前記第１のデータ及び前記第２のデータの転送のシミュレーションを行い、前記シミュレーションにおいて、前記第１のデータの転送先と前記第２のデータの転送先が一致した場合、前記第１の接続情報または前記第２の接続情報のうちの少なくとも１つを変更する接続情報修正手段と、を含む経路制御装置。
【請求項２】
前記第１及び第２の接続情報は、
前記送受信対応リストに管理されている対応関係の記載順に決定される、請求項１に記載の経路制御装置。
【請求項３】
前記第１及び第２の接続情報は、
前記第１の対応関係における候補経路数と前記第２の対応関係における候補経路数とを比較して前記候補経路数が少ない対応関係を優先して決定される、請求項１に記載の経路制御装置。
【請求項４】
前記接続情報生成手段は、
前記接続関係リストと前記送受信対応リストとに基づいて、前記第１及び第２の対応関係の候補となる複数の経路を管理する使用候補リストを生成する、請求項１乃至３のいずれか１項に記載の経路制御装置。
【請求項５】
前記接続情報生成手段は、
前記第１の対応関係において用いられる経路として決定された第１の経路情報を記録した使用済みリストを生成し、前記使用候補リストから前記使用済みリストに記録されている経路を削除する、請求項４に記載の経路制御装置。
【請求項６】
前記接続情報生成手段は、
前記使用済みリストに記録されている経路が削除された後の前記使用候補リストを用いて前記第２の対応関係において用いられる第２の経路を決定する、請求項５に記載の経路制御装置。
【請求項７】
前記接続情報生成手段は、
前記使用済みリストに記録されている経路が削除された後の前記使用候補リストにおいて選択可能な経路が存在しない場合、エラー情報を生成する、請求項６に記載の経路制御装置。
【請求項８】
第１のデータを送信する第１の送信手段と、第２のデータを送信する第２の送信手段と、前記第１のデータ又は前記第２のデータを受信する第１の受信手段及び第２の受信手段と、第１の接続情報に基づいて前記第１のデータを前記第１の受信手段又は前記第２の受信手段へ転送する第１の接続手段と、第２の接続情報に基づいて前記第２のデータを前記第１の受信手段又は前記第２の受信手段へ転送する第２の接続手段とを含む装置の、前記第１の接続情報の接続関係及び前記第２の接続情報の接続関係を規定する接続関係リスト、並びに、前記第１の受信手段と前記第１の受信手段が受信するデータの送信元との第１の対応関係、及び前記第２の受信手段と前記第２の受信手段が受信するデータの送信元との間の第２の対応関係とを管理する送受信対応リストに基づいて前記第１の接続情報及び前記第２の接続情報を生成し、
前記第１の接続情報及び前記第２の接続情報に基づいて、前記第１のデータ及び前記第２のデータの転送のシミュレーションを行い、前記シミュレーションにおいて、前記第１のデータの転送先と前記第２のデータの転送先が一致した場合、前記第１の接続情報または前記第２の接続情報のうちの少なくとも１つを変更する制御情報生成方法。
【請求項９】
第１のデータを送信する第１の送信手段と、第２のデータを送信する第２の送信手段と、前記第１のデータ又は前記第２のデータを受信する第１の受信手段及び第２の受信手段と、第１の接続情報に基づいて前記第１のデータを前記第１の受信手段又は前記第２の受信手段へ転送する第１の接続手段と、第２の接続情報に基づいて前記第２のデータを前記第１の受信手段又は前記第２の受信手段へ転送する第２の接続手段とを含む装置の、前記第１の接続情報の接続関係及び前記第２の接続情報の接続関係を規定する接続関係リスト、並びに、前記第１の受信手段と前記第１の受信手段が受信するデータの送信元との第１の対応関係、及び前記第２の受信手段と前記第２の受信手段が受信するデータの送信元との間の第２の対応関係とを管理する送受信対応リストに基づいて前記第１の接続情報及び前記第２の接続情報を生成するステップと、
前記第１の接続情報及び前記第２の接続情報に基づいて、前記第１のデータ及び前記第２のデータの転送のシミュレーションを行い、前記シミュレーションにおいて、前記第１のデータの転送先と前記第２のデータの転送先が一致した場合、前記第１の接続情報または前記第２の接続情報のうちの少なくとも１つを変更するステップとをコンピュータに実行させるプログラムが格納された非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は経路制御システムに関し、特に再構成可能なプロセッサデバイスが用いられる経路制御システムに関する。
【背景技術】
【０００２】
一般的に、装置内の処理デバイス間においてデータの送受信を行うために、特許文献１に記載されたような、複数の処理デバイス間を、クロスバースイッチ等を用いたルーティングユニットによって接続する再構成可能プロセッサデバイスが用いられる。【０００３】
このようなプロセッサではルーティングユニットへの制御信号を変更することによって、処理デバイス間の接続関係、すなわちルーティングを変更し、さらに処理フローを変更することが可能である。ルーティングユニットへの制御信号群は、予めプログラマによって作成され、プロセッサ内のメモリ、もしくは外部記憶に蓄えられる。さらに、ルーティングユニットへの制御信号群は、外部もしくは内部で生成された制御信号をトリガとして適切なタイミングで読み出されてルーティングユニットへ供給される。以降、ルーティングユニットへの制御信号群をルーティング制御情報と称する。【０００４】
このようなプロセッサにおいて、ルーティング制御情報をプログラマが全て手作業で作成することは、処理の手順が多くなればなるほど、また、処理の流れが複雑になればなるほど困難となる。そこで従来から、ルーティング制御情報をプログラマが記述しやすい形式、すなわち送受信対応リストの形式で記述しておき（以降、送受信対応リストの各行をプログラムと呼称する）、プログラムとプロセッサの特性を分析し、ルーティング制御情報を自動的に形成する特許文献２のような手法が研究されてきた。【０００５】
図２５に特許文献２に示されている方法を示す。特許文献２に示された方法は、複数処理デバイス（特許文献２においては処理エレメントと呼称）を２次元アレイ構造に接続し、この処理エレメント間の接続を変更することにより、その処理フローを変更可能なプロセッサのルーティングを決定する手法である。【０００６】
まず、プログラマが作成したプログラムは、データフローファイル１００として、記憶装置１１０に保存される。また、ＬＳＩ上の処理エレメント間の接続関係（処理エレメントが配置される位置のそれぞれにおいて、その出力と接続可能な他の位置の処理エレメントの属性、および、その入力と接続可能な他の位置の処理エレメントの属性）を示したソース処理エレメント及びデスティネーション処理エレメントファイル１０３が記憶装置１２に保存される。【０００７】
その後、マップ作成部１１１は、データフローファイル１００から１つのプログラムを取り出し、ソース処理エレメント及びデスティネーション処理エレメントファイル１０３を用いてルーティングの形成を開始する。【０００８】
まず、マップ作成部１１１は、データフローファイル１００とソース処理エレメント及びデスティネーション処理エレメントファイル１０３とを用いて使用する可能性のある接続関係を抽出して記録したバスリソースリクエストマップ１０１を作成する。次に、マップ更新部１１２は、バスリソースリクエストマップ１０１を分析し、データの入力から出力までにおいて、分断されている箇所がないか、もしくは複数の処理フローが同一の信号線を同時に使用するなどの違反を起こしていないか等、ルーティング制約違反を検出し、有効ではないパスを削除する。さらに、それら分析結果から、可能なルーティング候補のみを抽出し、バスリソースリクエストマップ１０１が更新される。最後に、配置配線処理部１１３は、上記候補のなかから実際の配置配線を決定する。また、使用しない候補については削除するよう、バスリソースリクエストマップ１０１を更新する。上記処理をデータフローファイル１００に格納された全てのプログラムについて実行する。 
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１０−１９３４５４号公報
【特許文献２】特開２００７−１４０７３２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
特許文献２に開示された手法は、プログラマが予め作成したプログラムのみを用いて静的にルーティングを決定する。また、特許文献２に開示された手法は、ある１つのルーティングによる処理フローが全て終了してから、次のルーティング処理に移るという処理構造が前提である。すなわち、ある制御信号にて規定されるルーティング制御情報（ルーティング１とする）を実行しながら、別のタイミングで入力される別の制御信号によって規定されるルーティング制御情報（ルーティング２とする）の処理も行うような方式に関する記述はない。このような方式にて上記処理を行おうとすると、ルーティング１及び２の各ルーティングを個別に実行した場合には動作する。しかし、これらをあわせて動作させた場合、プログラマがルーティング１及び２のタイミング的依存関係を把握しきれず、ルーティング１及び２のデータ同士が衝突を起こすバグが発生することがある。このような状況でのプログラム修正、デバッグには多大な時間が必要となる。【００１１】
本発明は、このような課題を解決するために、ある制御信号にて規定されるルーティング制御情報を実行しながら、別のタイミングで入力される別の制御信号によって規定されるルーティング制御情報の処理も行うような場合において、これらルーティング制御情報をプログラムから自動で生成し、かつ、生成されたルーティング制御情報の分析と修正を自動で行うことによってその動作を保証し、もってプログラマの負担を軽減する経路制御システム、経路制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の第１の態様にかかる経路制御装置は、第１のデータを送信する第１の送信部と、第２のデータを送信する第２の送信部と、前記第１のデータ又は前記第２のデータを受信する第１の受信部及び第２の受信部と、第１の接続情報に基づいて前記第１のデータを前記第１の受信部又は前記第２の受信部へ転送する第１の接続部と、第２の接続情報に基づいて前記第２のデータを前記第１の受信部又は前記第２の受信部へ転送する第２の接続部とを含む装置の、前記第１の接続情報の接続関係及び前記第２の接続情報の接続関係を規定する接続関係リスト、並びに、前記第１の受信部と前記第１の受信部が受信するデータの送信元との第１の対応関係、及び前記第２の受信部と前記第２の受信部が受信するデータの送信元との間の第２の対応関係とを管理する送受信対応リストに基づいて前記第１の接続情報及び前記第２の接続情報を生成する接続情報生成部と、前記第１の接続情報及び前記第２の接続情報に基づいて、前記第１のデータ及び前記第２のデータの転送のシミュレーションを行い、前記シミュレーションにおいて、前記第１のデータの転送先と前記第２のデータの転送先が一致した場合、前記第１の接続情報または前記第２の接続情報のうちの少なくとも１つを変更する接続情報修正部と、を含むものである。【００１３】
本発明の第２の態様にかかる制御情報生成方法は、第１のデータを送信する第１の送信部と、第２のデータを送信する第２の送信部と、前記第１のデータ又は前記第２のデータを受信する第１の受信部及び第２の受信部と、第１の接続情報に基づいて前記第１のデータを前記第１の受信部又は前記第２の受信部へ転送する第１の接続部と、第２の接続情報に基づいて前記第２のデータを前記第１の受信部又は前記第２の受信部へ転送する第２の接続部とを含む装置の、前記第１の接続情報の接続関係及び前記第２の接続情報の接続関係を規定する接続関係リスト、並びに、前記第１の受信部と前記第１の受信部が受信するデータの送信元との第１の対応関係、及び前記第２の受信部と前記第２の受信部が受信するデータの送信元との間の第２の対応関係とを管理する送受信対応リストに基づいて前記第１の接続情報及び前記第２の接続情報を生成し、前記第１の接続情報及び前記第２の接続情報に基づいて、前記第１のデータ及び前記第２のデータの転送のシミュレーションを行い、前記シミュレーションにおいて、前記第１のデータの転送先と前記第２のデータの転送先が一致した場合、前記第１の接続情報または前記第２の接続情報のうちの少なくとも１つを変更するものである。【００１４】
本発明の第３の態様にかかるプログラムは、第１のデータを送信する第１の送信部と、第２のデータを送信する第２の送信部と、前記第１のデータ又は前記第２のデータを受信する第１の受信部及び第２の受信部と、第１の接続情報に基づいて前記第１のデータを前記第１の受信部又は前記第２の受信部へ転送する第１の接続部と、第２の接続情報に基づいて前記第２のデータを前記第１の受信部又は前記第２の受信部へ転送する第２の接続部とを含む装置の、前記第１の接続情報の接続関係及び前記第２の接続情報の接続関係を規定する接続関係リスト、並びに、前記第１の受信部と前記第１の受信部が受信するデータの送信元との第１の対応関係、及び前記第２の受信部と前記第２の受信部が受信するデータの送信元との間の第２の対応関係とを管理する送受信対応リストに基づいて前記第１の接続情報及び前記第２の接続情報を生成するステップと、
前記第１の接続情報及び前記第２の接続情報に基づいて、前記第１のデータ及び前記第２のデータの転送のシミュレーションを行い、前記シミュレーションにおいて、前記第１のデータの転送先と前記第２のデータの転送先が一致した場合、前記第１の接続情報または前記第２の接続情報のうちの少なくとも１つを変更するステップとをコンピュータに実行させるものである。
【発明の効果】
【００１５】
本発明により、ある制御信号にて規定されるルーティング制御情報を実行しながら、別のタイミングで入力される別の制御信号によって規定されるルーティング制御情報の処理も行うような場合において、これらルーティング制御情報をプログラムから自動で生成し、かつ、生成されたルーティング制御情報の分析と修正を自動で行うことによってその動作を保証し、もってプログラマの負担を軽減する経路制御システム、経路制御方法及びプログラムを提供することができる。
【図面の簡単な説明】
【００１６】
【図１】実施の形態１にかかる経路制御部の構成図である。
【図２】実施の形態１にかかるプログラムを示す図である。
【図３】実施の形態１にかかるアーキテクチャ接続関係リストを示す図である。
【図４】実施の形態１にかかるシミュレーションリストを示す図である。
【図５Ａ】実施の形態１にかかる使用候補リストを示す図である。
【図５Ｂ】実施の形態１にかかる使用済みパスリストを示す図である。
【図６】実施の形態１にかかるルーティング制御情報の修正処理の流れを示す図である。
【図７】実施の形態１にかかるルーティング制御情報の生成処理の流れを示す図である。
【図８】実施の形態１にかかる使用候補リストの作成処理の流れを示す図である。
【図９】実施の形態１にかかる使用済みパスの削除処理の流れを示す図である。
【図１０】実施の形態１にかかるシミュレーションの実行処理の流れを示す図である。
【図１１Ａ】実施の形態１にかかる同一パス使用分析レポートを示す図である。
【図１１Ｂ】実施の形態１にかかる動作時使用パスリストを示す図である。
【図１２】実施の形態１にかかるルーティング制御情報の修正処理の流れを示す図である。
【図１３】実施の形態１にかかる処理デバイス及びクロスバースイッチのアーキテクチャを示す図である。
【図１４Ａ】実施の形態１にかかる送受信されるデータのデータ形式を示す図である。
【図１４Ｂ】実施の形態１にかかる送受信されるデータのデータ形式を示す図である。
【図１５】実施の形態１にかかるそれぞれの処理における必要サイクル数を示す図である。
【図１６】実施の形態１にかかるプログラムを示す図である。
【図１７】実施の形態１にかかるアーキテクチャ接続関係リストを示す図である。
【図１８】実施の形態１にかかるシミュレーションリストを示す図である。
【図１９】実施の形態１にかかるタイミングダイアグラムを示す図である。
【図２０Ａ】実施の形態１にかかる同一パス使用分析レポートを示す図である。
【図２０Ｂ】実施の形態１にかかる動作時使用パスリストを示す図である。
【図２１】実施の形態２にかかる使用パスの決定に関する処理の流れを示す図である。
【図２２】実施の形態２にかかるアーキテクチャ接続関係リストを示す図である。
【図２３】実施の形態２にかかるプログラムを示す図である。
【図２４】その他の実施の形態にかかるＰＣを活用した制御情報の生成を示す図である。
【図２５】特許文献２にかかるルーティング制御情報の生成処理を示す図である。
【発明を実施するための形態】
【００１７】
（実施の形態１）
以下、図面を参照して本発明の実施の形態について説明する。
【００１８】
図１を用いて本発明の実施の形態１にかかる経路制御装置４０の構成例について説明する。経路制御装置４０は、アーキテクチャ接続関係リスト４１と、プログラム４２と、シミュレーションリスト４３と、ルーティング制御情報生成部４４と、使用候補リスト４５と、使用済パスリスト４６と、ルーティング制御情報修正部４７と、を備えている。
【００１９】
アーキテクチャ接続関係リスト４１と、プログラム４２と、シミュレーションリスト４３と、使用候補リスト４５と、使用済パスリスト４６とは、例えば、経路制御装置４０内におけるＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等のメモリ領域に格納されていてもよく、装置内部もしくは外部装置のメモリ領域、例えば、ハードディスク装置や外付け用カードデバイス、等に格納されていてもよい。
【００２０】
プログラム４２には、データを送信する際の送信元となる送信元処理デバイスと、データの到着先となる送信先処理デバイスと、このデータ送信を行うトリガ信号となる制御信号の組の列が記載される。このようなプログラムの一例を図２に示す。図２は、表形式を用いてプログラムを記述した例である。プログラムの１列目が送信元処理デバイス、２列目が送信先処理デバイス、３列目が制御信号を示している。実際のプログラムは、２行目から記載されている。例えば、２行目のプログラムは、制御信号１が処理デバイスＡに入力された際には、送信元処理デバイスＡは処理デバイスＢにデータを送信する、という内容を記述している。なお、図２の書式は一例に過ぎず、少なくとも上記送信元及び送信先処理デバイス、及び制御信号が記載されていればその他書式は問わない。
【００２１】
アーキテクチャ接続関係リスト４１には、処理デバイス間のルーティングユニットに関する制約、もしくは接続関係が記載される。このようなアーキテクチャ接続関係リスト４１の一例を図３に示す。図３のアーキテクチャ接続関係リスト４１は、第一列、第二列目にそれぞれ送信元処理デバイスと送信先処理デバイスの組を示しており、第三列目において、データを送信する際に使用することができるパスのリストを記載している。例えば、第二行目には処理デバイスＡから処理デバイスＢにデータを送る際には、Ｐａｔｈ１とＰａｔｈ２との２パスが使用可能であることを示している。また、Ｐａｔｈ１、２のコロンの後には、それぞれのＰａｔｈにおいて使用されるルーティングユニットとそのポートとが、記述されている。また、ルーティングユニットとポートとの通過順序が、カンマで区切って示されている。例えば、第二行目のＰａｔｈ１は、ルーティングユニットＲｕｎｉｔ１のｐｏｒｔ０、ルーティングユニットＲｕｎｉｔ２のｐｏｒｔ０及びルーティングユニットＲｕｎｉｔ３のｐｏｒｔ０を通過して、処理デバイスＢに送信されうることが示されている。なお、図３の例は一例に過ぎず、アーキテクチャの制約、もしくは接続関係等は、処理デバイス間の接続を認識できる形式で記述されていればよく、書式は問わない。
【００２２】
シミュレーションリスト４３は、生成されたルーティング制御情報について、様々な制御信号を入力して実際にシミュレーションを行って動作を検証し、動作中にルーティング制御情報のバグによるデータ同士の衝突が発生しないか、すなわち、ルーティング制御情報の修正を行う必要がないか検査する際に使用される。このシミュレーションリストの一例を図４に示す。本例におけるシミュレーションリストは、"[ ]"を用いて、シミュレーションデータの名称と先頭とが規定され、さらに複数のシミュレーションデータにより構成される。各シミュレーションデータには、シミュレーションの各サイクルにおいて入力する制御信号と、その制御信号の入力先を記述する。制御信号の入力先は、処理デバイス名であってもよく、処理デバイスのポート番号等であってもよい。図４には、シミュレーションの宣言が"[ ]"で２つ示されており、各シミュレーションにおいては、第一列をサイクル、第二列をそのときに与える入力制御信号値、第三列をその入力先として記述している。なお、本例も上記同様一例にすぎず、該アーキテクチャにおけるシミュレーションが可能であれば書式は問わない。
【００２３】
ルーティング制御情報生成部４４は、アーキテクチャ接続関係リスト４１と、プログラム４２と、から受け取った情報に基づいて、使用候補リスト４５及び使用済パスリスト４６とを生成する。例えば、ルーティング制御情報生成部４４は、アーキテクチャ接続関係リスト４１から、送信元処理デバイスおよび送信先処理デバイスの組ごとに、使用可能パスを抽出して、使用候補リスト４５を生成する。使用候補リスト４５の一例を図５Ａに示す。
【００２４】
図５Ａの使用候補リスト４５には、行ごとに記載されているプログラムを用いて送信元処理デバイスと送信先処理デバイスとが決定された際に、使用する接続関係の候補となる全てのパスが列挙される。例えば、送信元処理デバイスをＡとし、送信先処理デバイスをＢとすると、図３に示されたアーキテクチャ接続関係リスト４１の２行目に記載されたＰａｔｈ１と、Ｐａｔｈ２とを抽出して記録する。
【００２５】
次に、図５Ｂの使用済みパスリストは、制御信号ごとに、これまでに分析したプログラムによって既に使用されたパスを記録する。図５Ｂにおいては、制御信号が１の場合、すでに使用されたパスは、Ｐａｔｈ１以降に規定されたＲｕｎｉｔ１＿ｐｏｒｔ０、Ｒｕｎｉｔ２＿ｐｏｒｔ０、Ｒｕｎｉｔ４＿ｐｏｒｔ１となる。これらも、上記同様書式は問わない。
【００２６】
ルーティング制御情報生成部４４は、使用候補リスト４５及び使用済パスリスト４６を用いて送信元処理デバイスと送信先処理デバイスとの間の使用パスを決定する。また、ルーティング制御情報生成部４４は、全てのプログラムにおいて使用パスを決定し、ルーティング制御情報を生成する。
【００２７】
ルーティング制御情報修正部４７は、異なる制御信号に対応付けられたルーティング制御情報間に、重複する使用パスが存在する場合、ルーティング制御情報を修正する。詳細な修正処理については、後に詳述する。
【００２８】
続いて、図６を用いて、ルーティング制御情報の修正処理の流れについて説明する。なお、以下の説明においては、説明の簡略化のため、図２〜図４に示したルーティング制御情報生成部４４に対する入力データを用いて説明を行う。
【００２９】
はじめに、ルーティング制御情報生成部４４は、ルーティング制御情報を生成する（Ｓ１１）。ここで、ルーティング制御情報の生成処理について、図７を用いて詳細に説明する。
【００３０】
はじめに、ルーティング制御情報生成部４４は、表形式に記載されているプログラムを１行取得する（Ｓ２１）。その後、ルーティング制御情報生成部４４は、使用候補リストの作成（Ｓ２２）、使用済みパスの削除（Ｓ２３）、使用パスの決定（Ｓ２４）、使用パスの記録（Ｓ２５）の処理を実行する。ここで、ステップＳ２２における使用候補リストの作成について、図８を用いて詳細に説明する。
【００３１】
はじめに、ルーティング制御情報生成部４４は、取得したプログラムに記載されている送信元処理デバイス及び送信先処理デバイスに基づいて、アーキテクチャ接続関係リスト４１を検索し、該当する接続関係の使用可能パスを抽出する（Ｓ３１）。次に、ルーティング制御情報生成部４４は、抽出した使用可能パスを使用候補リスト４５に登録する（Ｓ３２）。
【００３２】
続いて、図７のステップＳ２３における使用済みパスの削除について、図９を用いて詳細に説明する。はじめに、ルーティング制御情報生成部４４は、取得したプログラムに記載されている制御信号情報に基づいて、使用済みパスリスト４６を検索し、制御信号情報に関連付けられている接続関係を抽出する（Ｓ４１）。次に、ルーティング制御情報生成部４４は、使用候補リスト４５から、抽出した接続関係に記載されているパス情報を削除する（Ｓ４２）。使用済みパスリスト４６には、他のプログラムにおいて決定された使用パスが記録されている。
【００３３】
図７に戻り、ステップ２３における使用済みパスの削除後、ルーティング制御情報生成部４４は、使用パスを決定する（Ｓ２４）。ルーティング制御情報生成部４４は、使用候補リスト４５の中に残ったパスであって、送信元処理デバイス及び送信先処理デバイスを接続可能なパスについて、使用候補リスト４５の先頭から検索し、抽出する。ルーティング制御情報生成部４４は、抽出したパスを使用パスとして決定する。なお、ここでは接続可能なパスの抽出はリストの先頭から検索して初めて見つかったものとしたが、これに限る必要はなく、何らかの方法によって１つのパスを選択すればよい。また、図９には明記していないが、使用済みパスリスト４６を用いて使用候補リストから削除を行った結果、使用可能なパスがなく、ルーティング制御情報を生成できない場合については、エラー文等を出力してユーザーにその旨を通知し、処理を終了してもよい。
【００３４】
次に、ルーティング制御情報生成部４４は、使用パスとして決定したパスを、使用済パスリスト４６に記録する（Ｓ２５）。これにより、決定されたパスと同一のパスが重複して用いられることを防止することができる。
【００３５】
次に、ステップＳ２２〜Ｓ２５までの処理を、プログラムの全行において実施したか否かを判定する（Ｓ２６）。ルーティング制御情報生成部４４は、プログラムの全行において実施したと判定した場合、処理を終了し、プログラムの全行において実施していないと判定した場合、ステップＳ２１の処理を繰り返す。以上が図７のルーティング制御情報生成処理である。
【００３６】
続いて、図６に戻り、ルーティング制御情報生成部４４は、シミュレーションリスト４３から取得した情報に基づいて、シミュレーションを実行する（Ｓ１２）。ここで、シミュレーションの実行処理について、図１０を用いて詳細に説明する。
【００３７】
はじめに、ルーティング制御情報生成部４４は、次のサイクルで実行するルーティング制御情報を全て取得して、ルーティング制御情報に関連付けられている使用パスに関する情報を記録する（Ｓ５１）。取得したルーティング制御情報には、異なる制御信号において決定される使用パスに関する情報も含む。ここで記録データ構造は任意であり、例えば、使用候補リストに示したようにリスト化したデータ構造を用いてもよい。
【００３８】
次に、ルーティング制御情報生成部４４は、この記録した情報において、同一パスの使用が記録されていないか分析する（Ｓ５２）。ここで同一パスの使用がない場合（Ｓ５３）、ルーティング制御情報生成部４４は、１サイクルシミュレーションを行う（Ｓ５４）。シミュレーションの全サイクルが終了した場合はループをぬけて終了する。シミュレーションの全サイクルが終了していない場合、ステップＳ５１に戻り、次のサイクルの分析に移る。
【００３９】
同一パスの使用があった場合（Ｓ５３）、ルーティング制御情報修正部４７は、動作時使用パスリストと同一パス使用分析レポートを作成して（Ｓ５６）、これらを基にルーティング制御情報の修正を行い（Ｓ５７）、フロー先頭に戻る。
【００４０】
ここで動作時使用パスリストと同一パス使用分析レポートについて図１１を用いて説明する。図１１Ａが同一パス使用分析レポートであり、図１１Ｂが動作時使用パスリストである。同一パス使用分析レポートは、同一パスを使用したルーティングの送信元及び送信先処理デバイスと制御信号（ＣＰ）とを記録した同一パス使用リストを記録する。例えば図１１の例においては、本処理サイクルで２つの同一パス使用（同時パス使用リスト１及び同時パス利用リスト２）が発生していることを示している。同時パス使用リスト１では、制御信号＝１の送信元Ａ、送信先Ｂと、制御信号＝２の送信元Ｃ、送信先Ａのルーティングにおいて同一パス使用が発生していることを示している。同様に同時パス使用リスト２も制御信号＝１の送信元Ｄ、送信先Ｂと、制御信号＝２の送信元Ａ、送信先Ｂと、制御信号＝３の送信元Ｃ、送信先Ｅと、の３つのルーティングが同時に同じパスを使用することを示している。
【００４１】
一方、動作時使用パスリストは、図１０のステップＳ５１（次サイクルで実行する全制御信号の使用パス情報を取得）において構築した情報から、同一パス使用分析レポートに記録されたパス全てを除いたものであり、例えば図１１Ｂのような情報となる。
【００４２】
次に、図１０のステップＳ５７に記載のルーティング制御情報の修正方法について、図１２を用いて説明する。まず、ルーティング制御情報修正部４７は、同一パス使用分析レポートから同時使用パスリストを１つ抽出する（Ｓ６１）。次に、この抽出したリストから１項目(送信元、送信先、制御信号)を選択し、ルーティング制御情報の再生成を行う（Ｓ６２）。ここで、リストの選択方法は任意であり、例えばリストの先頭から順に選んでもよいし、何らかの評価基準を用いてリスト内の優先順位を決定して、その優先順位に従って処理を実行してもよい。また、ルーティング制御情報再生成処理は、プログラムの代わりに同一パス使用リストを、使用済みパスリストの代わりに動作時使用パスリストを入力とすること以外には、前記にて図７とともに示した処理と差異はない。このため、詳細な説明を省略する。本処理が終了したら、同一パス使用リストの全項目が終了したか、また、同時使用分析レポートの全てが終了したかを検索して（Ｓ６３）、終了していない場合は図１２に示したようにフローの適切な位置に戻って再度実行する。なお、図に明記していないが、ルーティング制御情報生成において、使用可能なパスが発見できない場合においてはエラーとし、プログラマにその旨を伝えるエラー文を生成して終了してもよい。
【００４３】
続いて、図６〜１０及び図１２の処理について、具体例を示して説明する。図１３を用いて、本具体例において用いるアーキテクチャ例について説明する。図１３に示すアーキテクチャは、処理デバイス１１〜１４と、処理デバイス２１〜２４と、１段目ルーティングユニット５０と、２段目ルーティングユニット６０と、３段目ルーティングユニット７０とを備えている。１段目ルーティングユニット５０は、クロスバースイッチ（以下、Ｘｂａｒ）５１〜５４を有し、２段目ルーティングユニット６０は、Ｘｂａｒ６１〜６４を有し、３段目ルーティングユニット７０は、Ｘｂａｒ７１〜７４を有している。また、実線で示されている矢印は、処理デバイス及びＸｂａｒ、もしくは、Ｘｂａｒ間をつなぐパスを示している。
【００４４】
それぞれの処理デバイスは、入出力ポートとして、それぞれ４ポート有する。それぞれのポートは、演算ユニットを有し、入力された制御信号に従って予め決められた処理を実行する。処理デバイス１１の入力ポートは、図の左からｉｎＡ０〜ｉｎＡ３とし、出力ポートは、図の左からｐｏＡ０〜ｐｏＡ３とする。同様に、処理デバイス１２の入出力ポートは、ｉｎＢ０〜ｉｎＢ３と、ｐｏＢ０〜ｐｏＢ３とし、処理デバイス１３の入出力ポートは、ｉｎＣ０〜ｉｎＣ３と、ｐｏＣ０〜ｐｏＣ３とし、処理デバイス１４の入出力ポートは、ｉｎＤ０〜ｉｎＤ３と、ｐｏＤ０〜ｐｏＤ３とする。さらに、処理デバイス２１の入力ポートは、ｐｉＥ０〜ｐｉＥ３とし、処理デバイス２２の入力ポートは、ｐｉＦ０〜ｐｉＦ３とし、処理デバイス２３の入力ポートは、ｐｉＧ０〜ｐｉＧ３とし、処理デバイス２４の入力ポートは、ｐｉＨ０〜ｐｉＨ３とする。
【００４５】
また、生成されたルーティング制御情報は、送信元処理デバイスを示す処理デバイス１１〜１４の各ポートそれぞれに対し１つずつ供えられたルーティング制御情報用メモリ（図示せず）に格納される。処理デバイス１１〜１４のいずれかに制御信号が入力された際には、その制御信号が示すメモリの位置からルーティング制御情報を読み出して、演算が終了したデータに付加し、処理デバイス１１〜１４のいずれかからデータの出力処理を行う。
【００４６】
続いて、図１４を用いて、本アーキテクチャにおいて送受信されるデータのデータ形式について説明する。処理デバイス１１〜１４に入力されるデータは、図１４Ａに示すように、ｋビットであり、データと制御信号とにより構成される。なお、本発明の説明においては、データと制御信号とのビット数については特に意味を持たないため、ｋという符号を用いて示している。
【００４７】
また、処理デバイス１１〜１４から出力されるデータは、ルーティングユニットの制御を行うための制御信号を加えた形式となる。この様子を図１４Ｂに示す。図１４Ｂでは、データと制御信号とに加え、１段目ルーティングユニット、２段目ルーティングユニット、３段目ルーティングユニット用制御情報を付加した様子を示している。なお、これらルーティング制御情報は、本例においては、Ｘｂａｒの出力ポート値である０、１、２、３の値のみとなるので、ビット数を２ビットとしている。
【００４８】
１段目、２段目、３段目のルーティングユニットは、それぞれ対応する制御信号を入力されたデータから取得し、その値によってルーティングを決定する。本例においては、Ｘｂａｒの出力ポートは、Ｘｂａｒを示すブロックの左からそれぞれ０、１、２、３の番号を有し、制御情報は、そのポート番号を指定して、Ｘｂａｒの宛先を決定する。なお、各Ｘｂａｒの詳細なアーキテクチャや制御については、本特許とは直接関係がないため省略する。
【００４９】
また、処理デバイス１１〜１４が実行する処理と、それに必要なサイクル数を図１５のように定義する。なお、本例の説明に必要な処理以外については省略している。処理デバイス１１〜１４における処理Ｘは１サイクル、処理Ｙは２サイクルのサイクル数が必要である。例えば処理Ｙを実行した次のサイクルでは処理Ｘ、もしくは処理Ｙを新たに実行することはできない。
【００５０】
次に、本具体例におけるプログラムと、アーキテクチャ接続関係リストと、シミュレーションリストとの詳細を示す。まず、プログラムについて図１６に示した図を用いて説明する。図１６には、本手法の効果説明に必要な３行分のプログラムについて具体的に示している。まず１行目は、制御信号＝１の際のルーティングであり、送信元ｐｏＡ０から送信先ｐｉＥ０へ繋ぐルーティングを定義している。２行目も同様に制御信号＝１のルーティングであり、送信元ｐｏＡ１から送信先ｐｉＥ１へ繋ぐルーティングを定義している。一方、３行目は、制御信号＝２の際のルーティングであり、送信元ｐｏＢ０から送信先ｐｉＥ２へ繋ぐルーティングを定義している。なお、本具体例を説明するために、送信元における処理についても記載した。本例では制御信号１では処理Ｙを行い、制御信号２では処理Ｘを行うものとしている。
【００５１】
図１７には本アーキテクチャにおけるアーキテクチャ接続関係リストを示している。図１７には本具体例の説明に必要な接続関係のみを記載している。具体的には、まずＸｂａｒのポートについては、本例においてはあるＸｂａｒから次のＸｂａｒへのルーティングが決定すれば、使用するポートは一意となるので、図１７には明示していない。また、同様に送信元と送信先処理デバイスについては、表内の第一列、第二列を参照すれば判明するため、第三列には明示していない。
【００５２】
本具体例におけるアーキテクチャ接続関係リストの２行目には、送信元がｐｏＡ０、送信先がｐｉＥ０の場合の接続関係を示している。この場合の接続関係は４つである。１例として、ｐａｔｈ１は、Ｘｂａｒ５１にてＸｂａｒ６１にルーティングを行った後、Ｘｂａｒ６１にてＸｂａｒ７１にルーティングを行い、最後にＸｂａｒ７１にてｐｉＥ０にルーティングを行う。ｐａｔｈ２、３、４のルーティングと、送信元ｐｏＡ１及び送信先ｐｉＥ１間と、送信元ｐｏＢ０及び送信先ｐｉＥ２間に対するルーティングについては、図１７に示したとおりである。
【００５３】
図１８に本具体例におけるシミュレーションリストを示す。本具体例におけるシミュレーションデータは１つであり、先頭４サイクルは、制御信号に１を入力、後半４サイクルは２を入力すると仮定する。なお、図１８に記載のシミュレーションデータを実行した際の、入力(ｉｎＡ０、ｉｎＡ１、ｉｎＢ０)及び出力(ｐｏＡ０、ｐｏＡ１、ｐｏＢ０)のタイミングダイアグラムを図１９に示す。入力においては、図１８のシミュレーションデータに示したとおり、開始４サイクルはｉｎＡ０、ｉｎＡ１に制御信号１が入力される。一方、後半４サイクルはｉｎＢ０に制御信号２が入力される。
【００５４】
上記具体例における情報を用いた場合において、図６に示した本手法の適用について詳細に説明する。はじめに、図６のステップＳ１１におけるルーティング制御情報の生成について、図７の詳細フローを用いて説明する。まず、ルーティング制御情報生成部４４は、プログラムから１行を取得する（図７、ステップＳ２１）。本例においては図１６の２行目に記載されている制御信号１のプログラム行が取得される。次に、ルーティング制御情報生成部４４は、使用候補リスト４５を作成する（図７、ステップＳ２２）。本例においては、図１７のアーキテクチャ接続関係リスト４１における送信元ｐｏＡ０、送信先ｐｉＥ０の行に記載のＰａｔｈ１〜Ｐａｔｈ４を抽出し、使用候補リスト４５に登録する。
【００５５】
次に、ルーティング制御情報生成部４４は、使用候補リストの作成が終了した後、使用済みパスを削除する（図７、ステップＳ２３）。ここで、本処理では制御信号１における使用パスが決定されていなく、使用済みパスリスト４６は空白であるため、使用済みパスの削除は行われない。次に、ルーティング制御情報生成部４４は、使用パスの決定を行う（図７、ステップＳ２４）。ここでは、使用候補リストの先頭であるＰａｔｈ１が採用される。最後に、ルーティング制御情報生成部４４は、使用パスの記録を行う（図７、ステップＳ２５）。ここでは、ルーティング制御情報生成部４４は、Ｐａｔｈ１を採用したため、Ｐａｔｈ１に記載されたパス情報と制御信号１とを使用済パスリスト４６に記載する。次に、全行のプログラムについて上述した処理を完了していないため、図７のステップＳ２１に戻り、処理を継続する。
【００５６】
次に、ルーティング制御情報生成部４４は、次行のプログラム（図１６の３行目）を取得する（図７、ステップＳ２１）。次行は、制御信号１であり、送信元ｐｏＡ１、送信先ｐｉＥ１である。まず、ルーティング制御情報生成部４４は、使用候補リスト４５を作成する（図７、ステップＳ２２）。本例においては、ルーティング制御情報生成部４４は、図１７のアーキテクチャ接続関係リスト４１における送信元ｐｏＡ１、送信先ｐｉＥ１の行に記載のＰａｔｈ１〜Ｐａｔｈ４を抽出し、使用候補リスト４５に登録する。
【００５７】
ルーティング制御情報生成部４４は、使用候補リストの作成を終了した後、使用済みパスを削除する（図７、ステップＳ２３）。ここで、使用候補リストのＰａｔｈ１は、先に作成した使用済みパスリストに記載のパスと同一のルーティングが含まれる。そのため、ルーティング制御情報生成部４４は、使用候補リストからＰａｔｈ１を削除する。次に、ルーティング制御情報生成部４４は、使用パスの決定を行う。ここでは、ルーティング制御情報生成部４４は、Ｐａｔｈ１を削除して残った使用候補リストのうち、使用候補リストの先頭であるＰａｔｈ２を採用する（図７、ステップＳ２４）。次に、ルーティング制御情報生成部４４は、使用済パスリスト４６に、採用したＰａｔｈ２に記載されたパス情報と制御信号１とを記録する（図７、ステップＳ２５）。
【００５８】
次に、ルーティング制御情報生成部４４は、次行のプログラム（図１６の４行目）を取得する（図７、ステップＳ２１）。次行は制御信号２であり、送信元ｐｏＢ０、送信先ｐｉＥ２である。上記と同様に、まずルーティング制御情報生成部４４は、使用候補リストを作成する（図７、ステップＳ２２）。ルーティング制御情報生成部４４は、使用候補リストの作成が終了した後、使用済みパスを削除する（図７、ステップＳ２３）。ここで、使用済みパスリストには、制御信号２に関連付けられた使用済みパスがないため、使用済みパスの削除は行われない。
【００５９】
次に、ルーティング制御情報生成部４４は、使用パスの決定を行う（図７、ステップＳ２４）。ここでは、ルーティング制御情報生成部４４は、使用候補リスト４５の先頭であるＰａｔｈ１を採用する。最後に、使用パスの記録を行う（図７、ステップＳ２５）。ここではルーティング制御情報生成部４４は、Ｐａｔｈ１を採用したため、Ｐａｔｈ１に記載されたパス情報と制御信号２とを使用済パスリスト４６に記載する。以上により、ルーティング制御情報の生成が終了する。
【００６０】
次に、シミュレーションの実行（図６、ステップＳ１２）とルーティング制御情報の修正（図６、ステップＳ１３）とを行う。まず、ルーティング制御情報生成部４４は、シミュレーションに使うシミュレーションデータを決定する。本例ではルーティング制御情報生成部４４は、図１８のシミュレーション１のデータを用いてシミュレーションを行う。
【００６１】
はじめに、ルーティング制御情報生成部４４は、１サイクル目に行うシミュレーションについて、全制御信号に対応付けられたルーティング制御情報を取得する（図１０、ステップＳ５１）。次に、ルーティング制御情報生成部４４は、取得したルーティング制御情報において、同一パスを使用するルーティングがないか分析を行う（図１０、ステップＳ５１及びＳ５２）。本例においては、ルーティング制御情報生成部４４は、１サイクル目にてｉｎＡ０及びｉｎＡ１に制御信号１を入力する。ここで、ｉｎＡ０及びｉｎＡ１において入力された制御信号１に対応する処理は、ｉｎＡ０及びｉｎＡ１ともに処理Ｙである。図１５より、処理Ｙは、処理期間として２サイクル必要となる。そのため、本サイクルにおいて、ｐｏＡ０及びｐｏＡ１からデータは出力されない。従って、ルーティング制御情報修正部４７は、実行されるルーティングはないため、同一パスの使用はないと判定し（図１０、ステップＳ５３）、１サイクル目のシミュレーションを実行する（図１０、ステップＳ５４）
【００６２】
２サイクル目では再びｉｎＡ０及びｉｎＡ１に制御信号１が入力される。本サイクルも前サイクルと同様、ｐｏＡ０及びｐｏＡ１からデータは出力されない。従って、次のサイクルの処理に移る。
【００６３】
３サイクル目では再びｉｎＡ０及びｉｎＡ１に制御信号１が入力される。本サイクルでは２サイクル前にｉｎＡ０及びｉｎＡ１に制御信号１が入力されることにより実行された処理Ｙが終了し、ｐｏＡ０及びｐｏＡ１それぞれからデータが出力される。ここで、ルーティング制御情報生成部４４は、これらのルーティング制御情報を取得して分析し、同一パスの使用がないかを分析する。本サイクルにおいては、ｐｏＡ０からｐｉＥ０及びｐｏＡ１からｐｉＥ１へのルーティングが実行される。これらのパス情報を分析すると、ｐｏＡ０からｐｉＥ０へのパスは、Ｐａｔｈ１であってＸｂａｒ５１、Ｘｂａｒ６１、Ｘｂａｒ７１を通るパスである。一方、ｐｏＡ１からｐｉＥ１へのパスは、Ｐａｔｈ２であってＸｂａｒ５１、Ｘｂａｒ６２、Ｘｂａｒ７１を通るパスである。Ｐａｔｈ１及びＰａｔｈ２は、図１３に示したアーキテクチャ例を参照すると、同一パスの使用がないことが分かる。そのため、ルーティング制御情報修正部４７は、ルーティング制御情報の修正を行わず、次のサイクルの分析に移る。
【００６４】
４サイクル目は、３サイクル目と同様の処理となるので、説明を省略する。また、５サイクル目では、制御信号が入力されるポートがｉｎＡ０、ｉｎＡ１からｉｎＢ０に変わり、さらに制御信号が２となる。一方、ｐｏＡ０及びｐｏＡ１から出力されるデータに関しては３サイクル目と変わらないため、説明を省略する。
【００６５】
６サイクル目ではｉｎＢ０に制御信号２が入力される。本サイクルでは前サイクルにてｉｎＢ０に制御信号２が入力されることにより実行された処理Ｘと、２サイクル前にｉｎＡ０、ｉｎＡ１に制御信号１が入力されることにより実行された処理Ｙが終了し、ｐｏＡ０、ｐｏＡ１及びｐｏＢ０からデータが出力される。ここで、これらのルーティング制御情報を取得して分析し、同一パスの使用がないかを分析する。
【００６６】
本サイクルにおいては、ｐｏＢ０からｐｉＥ２、ｐｏＡ０からｐｉＥ０及びｐｏＡ１からｐｉＥ１へのルーティングが実行される。これらのパス情報を分析すると、ｐｏＢ０からｐｉＥ２へのパスは、Ｘｂａｒ５２、Ｘｂａｒ６１及びＸｂａｒ７１を通るパスであり、ｐｏＡ０からｐｉＥ０へのパスは、Ｘｂａｒ５１、Ｘｂａｒ６１及びＸｂａｒ７１を通るパスであり、ｐｏＡ１からｐｉＥ１へのパスは、Ｘｂａｒ５１、Ｘｂａｒ６２及びＸｂａｒ７１を通るパスとなる。このとき、図１３に示したアーキテクチャ例を参照すると、ｐｏＢ０からｐｉＥ２と、ｐｏＡ０からｐｉＥ０のルーティングに使用するＸｂａｒ６１及びＸｂａｒ７１を通るパスが同一パスであることが分かる。そのため、ルーティング制御情報修正部４７は、同一パス使用分析レポート及び動作時使用パスリストの作成と、ルーティング制御情報の修正に移る（図１０、ステップＳ５７）。
【００６７】
本例における同一パス使用分析レポートと動作時使用パスリストを図２０Ａ及びＢに示す。図２０Ａの同一パス使用リストに記載される内容は、６サイクル目の分析で同一パスの使用が判明したｐｏＡ０からｐｉＥ０と、ｐｏＢ０からｐｉＥ２とへのルーティングであり、それぞれの制御信号（ＣＰ）は１及び２である。一方、図２０Ｂの動作時使用パスリストは、６サイクル目に実行されるルーティングにおいて、前述した同一パスを除いたパスであり、すなわち、ｐｏＡ１からｐｉＥ１へのルーティングに使用するパスである。
【００６８】
続いて、図６におけるステップＳ１３のルーティング制御情報修正処理について、図１２を用いて説明する。はじめに、同一パス使用分析レポートから１つの同時パス使用リストを抽出する（図１２、ステップＳ６１）。本例では図２０Ａの同時パス使用リスト１が選択される。この次のステップでは同時使用パスリスト１から１つのパス情報が抽出される。この場合、抽出されるパス情報はｐｏＡ０からｐｉＥ０へのパスが選択される。
【００６９】
次に、ルーティング制御情報修正部４７は、このパス情報と図２０Ｂの動作時使用パスリストとを用いて、図７に示した処理フローを実行し、ルーティング制御情報を再生成する（図１２、ステップＳ６２）。具体的には、まず、ルーティング制御情報修正部４７は、ｐｏＡ０からｐｉＥ０へのルーティングにおいて、図１７に示したアーキテクチャ接続関係リスト４１を参照し、使用候補リスト４５を作成する。本例においては、使用候補リスト４５には、図１７の送信元ｐｏＡ０、送信先ｐｉＥ０の行に記載されたＰａｔｈ１、２、３、４が記録される。次に、ルーティング制御情報修正部４７は、使用候補リスト４５に記録されたパスの中から、動作時使用パスリストに記録されているパスを削除する。図２０Ｂの動作時使用パスリストを見ると、使用候補リストのＰａｔｈ２と一致することが分かる。このため、ルーティング制御情報修正部４７は、Ｐａｔｈ２を使用候補リストから削除する。ルーティング制御情報修正部４７は、削除が終了した後、使用パスを決定する。このとき、ルーティング制御情報修正部４７は、使用候補リストの先頭から残っているパスを検索し、Ｐａｔｈ１を使用パスとして決定する。また、このパスを動作時パスリストに追加する。
【００７０】
次に、ルーティング制御情報修正部４７は、同時パス使用リストの次の行、すなわち、ｐｏＢ０からｐｉＥ２へのルーティング情報の修正を行う（図１２、ステップＳ６３）。まず、ルーティング制御情報修正部４７は、図１７に示したアーキテクチャ接続関係リスト４１を参照し、使用候補リスト４５を作成する。本例においては、使用候補リストは図 １７の送信元ｐｏＢ０、送信先ｐｉＥ２の行に記載されたＰａｔｈ１、２、３、４が使用候補リスト４５に記録される。
【００７１】
次に、使用候補リスト４５に記録されたパスの中から、動作時使用パスリストに記録されているパスを削除する。図２０Ｂ及びｐｏＡ０からｐｉＥ０へのルーティング制御情報を再生成した際に追加した動作時使用パスリストを参照すると、使用候補リストのＰａｔｈ１及びＰａｔｈ２が一致することが分かる。このため、ルーティング制御情報修正部４７は、Ｐａｔｈ１、Ｐａｔｈ２を使用候補リスト４５から削除する。ルーティング制御情報修正部４７は、削除が終了した後、使用パスを決定する。このとき、ルーティング制御情報修正部４７は、使用候補リストの先頭から残っているパスを検索し、Ｐａｔｈ３を使用パスとして決定する。また、ルーティング制御情報修正部４７は、このＰａｔｈ３を動作時パスリストに追加する。以上で同時パス使用リストが終了するため、処理を終了とする。また、同一パス使用分析レポートも終了となるため、ルーティング制御情報の修正プロセスを終了し、シミュレーションに戻る。
【００７２】
図１２に戻り、ルーティング制御情報修正部４７は、６サイクル目のシミュレーションを再度行う。今回の場合は、ｐｏＢ０からｐｉＥ２へのルーティングがＸｂａｒ５２、Ｘｂａｒ６３及びＸｂａｒ７１であり、ｐｏＡ０からｐｉＥ０へのルーティングがＸｂａｒ５１、Ｘｂａｒ６１及びＸｂａｒ７１であり、ｐｏＡ１からｐｉＥ１へのルーティングは、Ｘｂａｒ５１、Ｘｂａｒ６２、Ｘｂａｒ７１を通るパスとなる。これらには同一使用パスがないため、次のサイクルのシミュレーションに移る。
【００７３】
７サイクル目及び８サイクル目は、ｐｏＢ０からｐｉＥ２へのルーティングのみ行われる。このときのルーティングは、修正して作成された、Ｘｂａｒ５２、Ｘｂａｒ６３、Ｘｂａｒ７１となる。また、その他のルーティングはないため、同一パスの使用はない。以上でシミュレーションは終了となり、作成したルーティング制御情報を出力して本手法を終了する。
【００７４】
上記手順にて説明したように、本手法により、プログラマが作成したプログラムから自動でルーティング制御情報を作成し、かつ、その情報を用いてシミュレーションを行って、同一パスの使用が検出された場合に自動でルーティング制御情報の修正を行うことができる。このため、プログラマのプログラム作成・デバッグ時間を短縮することができる。
【００７５】
（実施の形態２）
本発明の実施形態２においては、図７において使用するパスを決定する際に、本発明の実施形態１のようにプログラムを先頭から順に分析してルーティング情報を構築するのではなく、プログラム内の各接続関係の、その時点における使用可能なパスの数を分析し、使用可能なパスが少ない、すなわちルーティング情報の選択の余地が少ない候補から優先的にルーティングの決定を行う。
【００７６】
使用パスの決定に関する処理フローを図２１に示す。図２１は、第１ループ部及び第２ループ部の２つのループにより構成されている。第１ループ部は、ステップＳ７１〜Ｓ７５の処理を実行する。第１ループ部は、プログラムの中で使用するパスが決定していないものについて、使用可能なパス数を調査し、どのプログラムについて使用パスを決定するか分析するものである。第２ループ部は、実際に使用するパスを決定した後、全プログラムについて使用するパスが決定していない場合、処理開始時点に戻るループである。
【００７７】
第一ループ部について具体的な処理内容を説明する。はじめに、ルーティング制御情報生成部４４は、まだ使用するパスが決定していないプログラムを１行取得する（Ｓ７１）。次に、ルーティング制御情報生成部４４は、このプログラム行について使用候補リストの作成と使用済みパスの削除を行う（Ｓ７２、Ｓ７３）。なお、ステップＳ７１〜Ｓ７３の処理は、図７と同じ処理であるため、詳細な説明を省略する。次に、ルーティング制御情報生成部４４は、使用済みパスを削除した使用候補リストと、使用候補リストに残った、使用が可能なパス数を一時的に記録する（Ｓ７４）。これら処理が終了し、まだ使用するパスが決定していないプログラムが残っている場合には、処理先頭に戻り、次の使用するパスが決定していないプログラムの分析に移る（Ｓ７５）。
【００７８】
次に、第二ループ部について具体的な処理内容を説明する。まず、ルーティング制御情報生成部４４は、第一ループ部にて既に一時的に記録してある、各使用パスが未決定なプログラムにおいて最も使用可能パス数が少ないものを取得する。ルーティング制御情報生成部４４は、このプログラムについて、同じく既に記録してある使用候補リストを参照し、使用パスを決定する（Ｓ７６）。さらに、ルーティング制御情報生成部４４は、決定した使用パスを使用済みパスリストへ記録する（Ｓ７７）。次に、ルーティング制御情報生成部４４は、まだ使用パスが決定していないプログラムが存在するかを確認し（Ｓ７８）、存在する場合は、記録した使用候補リストや使用パス数、また、第一ループ部にて、例えば分析が済んだプログラムを記録するフラグ等内部変数を初期化して（Ｓ７９）、第一ループ部へと戻る。また、本処理はシミュレーション時のルーティング制御情報の修正にも用いてもよい。
【００７９】
続いて、図２２及び図２３に示したアーキテクチャ接続関係リストとプログラムとを用いて図２１の処理を具体的に説明する。図２２に示したアーキテクチャ接続関係リストには、送信元、送信先がそれぞれｐｏＡ０及びｐｉＥ０、ｐｏＡ１及びｐｉＥ１、ｐｏＡ２及びｐｉＥ２、の３つの接続関係が明示されている。ここで、各接続関係において、第１の実施例とは異なり、使用可能な接続関係の数が異なる。例えば、ｐｏＡ０及びｐｉＥ０の接続関係では３つのパス、すなわち、Ｘｂａｒ５１、Ｘｂａｒ６１、Ｘｂａｒ７１を通過するＰａｔｈ１と、Ｘｂａｒ５１、Ｘｂａｒ６２、Ｘｂａｒ７１を通過するＰａｔｈ２と、Ｘｂａｒ５１、Ｘｂａｒ６３、Ｘｂａｒ７１を通過するＰａｔｈ３が使用可能であるのに対し、ｐｏＡ１及びｐｉＥ１の接続関係では、Ｘｂａｒ５１、Ｘｂａｒ６１、Ｘｂａｒ７１を通過するＰａｔｈ１のみ使用可能となっている。
【００８０】
また、図２３におけるプログラムでは、制御信号＝１を用いて、ｐｏＡ０とｐｉＥ０との間の経路、ｐｏＡ１とｐｉＥ１との間の経路、ｐｏＡ２とｐｉＥ２との間の経路を制御することが示されている。この例において、図２１のフローを適用する。
【００８１】
はじめに、ルーティング制御情報生成部４４は、第１のループ部における処理を実行する。その結果、ｐｏＡ０及びｐｉＥ０、ｐｏＡ１及びｐｉＥ１、ｐｏＡ２及びｐｉＥ２のそれぞれのプログラムについて、各々の使用候補リストと、使用可能なパス数が記録される。使用可能なパス数は、ｐｏＡ０及びｐｉＥ０では３、ｐｏＡ１及びｐｉＥ１では１、ｐｏＡ２及びｐｉＥ２では２と記録される。
【００８２】
次に、第２のループ部を実行する。上記にて記録した使用可能パス数を見ると、ｐｏＡ１及びｐｉＥ１が使用パス数＝１で最小である。そのため、ルーティング制御情報生成部４４は、ｐｏＡ１及びｐｏＥ１の使用パスを決定する。具体的には、図２２のｐｏＡ１とｐｉＥ１の行に記載のＰａｔｈ１: Ｘｂａｒ５１、Ｘｂａｒ６１、Ｘｂａｒ７１が選択される。ルーティング制御情報生成部４４は、このパスを使用済みパスリストに記録する。記録が終了した後、プログラムにまだ決定していない使用パスが残っているため、ルーティング制御情報生成部４４は、第１ループ部にて記録した使用候補リストや使用可能パス数、内部変数を初期化し、第１ループ部に戻る。
【００８３】
２回目の第１ループ部の処理においては、ルーティング制御情報生成部４４は、既に使用パスが決定したｐｏＡ１及びｐｉＥ１を除いた、２つ（ｐｏＡ０及びｐｉＥ０、ｐｏＡ２及びｐｉＥ２）について、使用候補リスト、使用パス数を決定する。ここで、ｐｏＡ０及びｐｉＥ０においては、ｐｏＡ１及びｐｉＥ１のルーティングで決定し、使用済みパスリストに記録されたＰａｔｈ１と同一のパスを使用しているため、使用候補リストには、Ｐａｔｈ２及びＰａｔｈ３のみを記録する。一方、ｐｏＡ２及びｐｏＥ２においても、Ｐａｔｈ１が同一であるため、使用候補リストからＰａｔｈ１が削除される。その結果、ｐｏＡ２及びｐｉＥ２の使用候補リストにはＰａｔｈ２のみが残る。以上より、ｐｏＡ０及びｐｏＥ０、ｐｏＡ２及びｐｏＥ２の使用可能パス数はそれぞれ２、１となる。
【００８４】
上記において第二ループ部の処理を行うと、ルーティング制御情報生成部４４は、ｐｏＡ２及びｐｉＥ２の使用可能パス数が１であるため、使用パスをＰａｔｈ２と決定して、これを使用済みパスリストに記録する。ルーティング制御情報生成部４４は、残ったｐｏＡ０及びｐｉＥ０についても再度第一ループ部及び第二ループ部の処理を行って使用パスを決定する。
【００８５】
以上の手法では、接続が可能なパスが少ないものから優先的にパスを決定していくことにより、他のパスによって使用可能なパスがふさがれてしまうことがないようにするものである。実施形態にも記述したが、同様の手法は、シミュレーション時のルーティング制御情報修正にも用いることができる。この場合には、第一の実施形態と同様入力データがプログラムの同一パス使用リスト、使用済みパスリストが動作時使用パスリストとなる以外は差異がない。そのため、説明を省略する。
【００８６】
（その他の実施の形態）
実施の形態１でも述べたが、アーキテクチャ接続関係リスト、プログラム、シミュレーションリストについては、本稿にて述べた処理フローを実施できるものであれば、形式は問わない。又、本発明はプログラムによって実現し、これをＰＣ等の記録媒体に記録して実行することにより、上記制御情報を得ることができる。図２４は、本実施の形態を示したもので、ユーザーが作成した制御情報自動生成プログラムは、ＰＣや外部の記録媒体に蓄えられ、蓄えられたプログラムがＰＣで実行される。その結果、上記制御情報を得ることができる。また、本発明の活用例として、プロセッサ用コンパイラ等が挙げられる。
【００８７】
また、実施の形態１及び２においては、ルーティング制御情報を生成する経路制御装置は、図１３に記載されているアーキテクチャにかかる装置とは異なる装置として説明したが、経路制御装置は、例えば、図１３に記載されているアーキテクチャにかかる装置に組み込まれてもよい。もしくは、経路制御装置は、図１３に記載されているアーキテクチャにかかる装置に直接接続されてもよい。
【００８８】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【００８９】
例えば、上述の実施の形態では、ハードウェアの構成として説明したが、これに限定されるものではなく、図６及びこれに関連する処理を、ＣＰＵ（Central Processing Unit）にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（random access memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００９０】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【００９１】
この出願は、２０１２年１月２４日に出願された日本出願特願２０１２−１１６９５を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【００９２】
４０  経路制御装置
４１  アーキテクチャ接続関係リスト
４２  プログラム
４３  シミュレーションリスト
４４  ルーティング制御情報生成部
４５  使用候補リスト
４６  使用済パスリスト
４７  ルーティング制御情報修正部
５０  １段目ルーティングユニット
５１〜５４  Ｘｂａｒ
６０  ２段目ルーティングユニット
６１〜６４  Ｘｂａｒ
７０  ３段目ルーティングユニット
７１〜７４  Ｘｂａｒ
【図１】
2013111547.tif 000003
【図２】
2013111547.tif 000004
【図３】
2013111547.tif 000005
【図４】
2013111547.tif 000006
【図５Ａ】
2013111547.tif 000007
【図５Ｂ】
2013111547.tif 000008
【図６】
2013111547.tif 000009
【図７】
2013111547.tif 000010
【図８】
2013111547.tif 000011
【図９】
2013111547.tif 000012
【図１０】
2013111547.tif 000013
【図１１Ａ】
2013111547.tif 000014
【図１１Ｂ】
2013111547.tif 000015
【図１２】
2013111547.tif 000016
【図１３】
2013111547.tif 000017
【図１４Ａ】
2013111547.tif 000018
【図１４Ｂ】
2013111547.tif 000019
【図１５】
2013111547.tif 000020
【図１６】
2013111547.tif 000021
【図１７】
2013111547.tif 000022
【図１８】
2013111547.tif 000023
【図１９】
2013111547.tif 000024
【図２０Ａ】
2013111547.tif 000025
【図２０Ｂ】
2013111547.tif 000026
【図２１】
2013111547.tif 000027
【図２２】
2013111547.tif 000028
【図２３】
2013111547.tif 000029
【図２４】
2013111547.tif 000030
【図２５】
2013111547.tif 000031
【手続補正書】
【提出日】平成26年4月21日(2014.4.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のデータを送信する第１の送信手段と、第２のデータを送信する第２の送信手段と、前記第１のデータ又は前記第２のデータを受信する第１の受信手段及び第２の受信手段と、第１の接続情報に基づいて前記第１のデータを前記第１の受信手段又は前記第２の受信手段へ転送する第１の接続手段と、第２の接続情報に基づいて前記第２のデータを前記第１の受信手段又は前記第２の受信手段へ転送する第２の接続手段とを含む装置の、前記第１の接続情報の接続関係及び前記第２の接続情報の接続関係を規定する接続関係リスト、並びに、前記第１の受信手段と前記第１の受信手段が受信するデータの送信元との第１の対応関係、及び前記第２の受信手段と前記第２の受信手段が受信するデータの送信元との間の第２の対応関係とを管理する送受信対応リストに基づいて前記第１の接続情報及び前記第２の接続情報を生成する接続情報生成手段と、
前記第１の接続情報及び前記第２の接続情報に基づいて、前記第１のデータ及び前記第２のデータの転送のシミュレーションを行い、前記シミュレーションにおいて、前記第１のデータの転送先と前記第２のデータの転送先が一致した場合、前記第１の接続情報または前記第２の接続情報のうちの少なくとも１つを変更する接続情報修正手段と、を含む経路制御装置。
【請求項２】
前記第１及び第２の接続情報は、
前記送受信対応リストに管理されている対応関係の記載順に決定される、請求項１に記載の経路制御装置。
【請求項３】
前記第１及び第２の接続情報は、
前記第１の対応関係における候補経路数と前記第２の対応関係における候補経路数とを比較して前記候補経路数が少ない対応関係を優先して決定される、請求項１に記載の経路制御装置。
【請求項４】
前記接続情報生成手段は、
前記接続関係リストと前記送受信対応リストとに基づいて、前記第１及び第２の対応関係の候補となる複数の経路を管理する使用候補リストを生成する、請求項１乃至３のいずれか１項に記載の経路制御装置。
【請求項５】
前記接続情報生成手段は、
前記第１の対応関係において用いられる経路として決定された第１の経路情報を記録した使用済みリストを生成し、前記使用候補リストから前記使用済みリストに記録されている経路を削除する、請求項４に記載の経路制御装置。
【請求項６】
前記接続情報生成手段は、
前記使用済みリストに記録されている経路が削除された後の前記使用候補リストを用いて前記第２の対応関係において用いられる第２の経路を決定する、請求項５に記載の経路制御装置。
【請求項７】
前記接続情報生成手段は、
前記使用済みリストに記録されている経路が削除された後の前記使用候補リストにおいて選択可能な経路が存在しない場合、エラー情報を生成する、請求項６に記載の経路制御装置。
【請求項８】
第１のデータを送信する第１の送信手段と、第２のデータを送信する第２の送信手段と、前記第１のデータ又は前記第２のデータを受信する第１の受信手段及び第２の受信手段と、第１の接続情報に基づいて前記第１のデータを前記第１の受信手段又は前記第２の受信手段へ転送する第１の接続手段と、第２の接続情報に基づいて前記第２のデータを前記第１の受信手段又は前記第２の受信手段へ転送する第２の接続手段とを含む装置の、前記第１の接続情報の接続関係及び前記第２の接続情報の接続関係を規定する接続関係リスト、並びに、前記第１の受信手段と前記第１の受信手段が受信するデータの送信元との第１の対応関係、及び前記第２の受信手段と前記第２の受信手段が受信するデータの送信元との間の第２の対応関係とを管理する送受信対応リストに基づいて前記第１の接続情報及び前記第２の接続情報を生成し、
前記第１の接続情報及び前記第２の接続情報に基づいて、前記第１のデータ及び前記第２のデータの転送のシミュレーションを行い、前記シミュレーションにおいて、前記第１のデータの転送先と前記第２のデータの転送先が一致した場合、前記第１の接続情報または前記第２の接続情報のうちの少なくとも１つを変更する制御情報生成方法。
【請求項９】
第１のデータを送信する第１の送信手段と、第２のデータを送信する第２の送信手段と、前記第１のデータ又は前記第２のデータを受信する第１の受信手段及び第２の受信手段と、第１の接続情報に基づいて前記第１のデータを前記第１の受信手段又は前記第２の受信手段へ転送する第１の接続手段と、第２の接続情報に基づいて前記第２のデータを前記第１の受信手段又は前記第２の受信手段へ転送する第２の接続手段とを含む装置の、前記第１の接続情報の接続関係及び前記第２の接続情報の接続関係を規定する接続関係リスト、並びに、前記第１の受信手段と前記第１の受信手段が受信するデータの送信元との第１の対応関係、及び前記第２の受信手段と前記第２の受信手段が受信するデータの送信元との間の第２の対応関係とを管理する送受信対応リストに基づいて前記第１の接続情報及び前記第２の接続情報を生成するステップと、
前記第１の接続情報及び前記第２の接続情報に基づいて、前記第１のデータ及び前記第２のデータの転送のシミュレーションを行い、前記シミュレーションにおいて、前記第１のデータの転送先と前記第２のデータの転送先が一致した場合、前記第１の接続情報または前記第２の接続情報のうちの少なくとも１つを変更するステップとをコンピュータに実行させるプログラム。
【国際調査報告】
2013111547.tif 000032
2013111547.tif 000033
2013111547.tif 000034
2013111547.tif 000035