(57)【要約】【課題】アプリケーション処理に最適なプロセッシング・エレメント間の処理経路を形成するハードウエアスイッチ及び分散処理システムを提供する。【解決手段】複数のプロセッシング・エレメントが接続されたハードウエアスイッチであって、複数のプロセッシング・エレメントから選択した、送信側プロセッシング・エレメント、及び、送信側プロセッシング・エレメントとは別の受信側プロセッシング・エレメント、について、送信側プロセッシング・エレメントが備える出力から選択した１つの出力と、受信側プロセッシング・エレメントが備える入力から選択した１つの入力と、を互いに接続することによって、複数のプロセッシング・エレメント間の経路を選択的に切り替え、送信側プロセッシング・エレメントの出力及び受信側プロセッシング・エレメントが備える入力の少なくとも一方を複数接続する。【選択図】図１
2010218415.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッシング・エレメントが接続されたハードウエアスイッチであって、
前記複数のプロセッシング・エレメントから選択した、送信側プロセッシング・エレメント、及び、前記送信側プロセッシング・エレメントとは別の受信側プロセッシング・エレメント、について、
前記送信側プロセッシング・エレメントが備える出力から選択した１つの出力と、前記受信側プロセッシング・エレメントが備える入力から選択した１つの入力と、を互いに接続することによって、前記複数のプロセッシング・エレメント間の経路を選択的に切り替え、前記送信側プロセッシング・エレメントの出力及び前記受信側プロセッシング・エレメントが備える入力の少なくとも一方を複数接続することを特徴とするハードウエアスイッチ。
【請求項２】
互いに接続した、前記送信側プロセッシング・エレメントと前記受信側プロセッシング・エレメントとの間のデータフロー処理を行う請求項１に記載のハードウエアスイッチ。
【請求項３】
前記ハードウエアスイッチは、前記複数のプロセッシング・エレメントの出力及び入力が接続される複数のチャネルを備えるスイッチ部と、前記スイッチ部を制御する制御部と、を備える請求項１又は請求項２に記載のハードウエアスイッチ。
【請求項４】
前記制御部は、前記送信側プロセッシング・エレメントの出力から受信したデータが処理データであるか制御コマンドであるかを識別する請求項３に記載のハードウエアスイッチ。
【請求項５】
前記制御部は、前記送信側プロセッシング・エレメントの出力から受信したデータが処理データであるか制御コマンドであるかをハードウエアロジックで識別する請求項４に記載のハードウエアスイッチ。
【請求項６】
前記制御部は、前記データが制御コマンドである場合、前記制御コマンドにしたがって、経路情報を設定する請求項４又は請求項５に記載のハードウエアスイッチ。
【請求項７】
前記制御部は、前記データが処理データの場合は、処理データに対応付けられた経路選択情報と経路情報にしたがって、次の送信先を決定する請求項４から請求項６のいずれか１項に記載のハードウエアスイッチ。
【請求項８】
前記制御部は、前記データが処理データの場合は、処理データに対応付けられた経路選択情報と経路情報にしたがって、前記スイッチ部の経路の切り替えを行う請求項７に記載のハードウエアスイッチ。
【請求項９】
前記制御部は、前記送信側プロセッシング・エレメントの出力から受信したデータが、前記受信側プロセッシング・エレメントのどの入力チャネルに対するデータかを識別する請求項３から請求項８のいずれか１項に記載のハードウエアスイッチ。
【請求項１０】
前記経路選択情報は、前記送信側プロセッシング・エレメントに関する情報を含む請求項７から請求項９のいずれか１項に記載のハードウエアスイッチ。
【請求項１１】
前記送信側プロセッシング・エレメントに関する情報は、前記送信側プロセッシング・エレメントのＩＤ情報として、前記送信側プロセッシング・エレメントが接続された前記ハードウエアスイッチのＩＤ情報、前記送信側プロセッシング・エレメント自体のＩＤ情報、及び、前記送信側プロセッシング・エレメントが接続しているチャネルのＩＤ情報の少なくともいずれか一つを含む請求項１０に記載のハードウエアスイッチ。
【請求項１２】
前記経路選択情報は、前記データ処理のセッションのＩＤを含む請求項７から請求項１１のいずれか１項に記載のハードウエアスイッチ。
【請求項１３】
前記制御部は、前記データが制御コマンドである場合、前記制御コマンドにしたがって、前記複数のプロセッシング・エレメントの登録及び登録の解除、プロセッシング・エレメントの登録情報開示、又は、プロセッシング・エレメント設定データの転送を行う請求項４から請求項１２のいずれか１項に記載のハードウエアスイッチ。
【請求項１４】
前記制御部は、前記スイッチ部の入出力チャネルと、前記スイッチ部に接続された前記複数のプロセッシング・エレメントの各入出力チャネルとの接続関係を認識する請求項３から請求項１３のいずれか１項に記載のハードウエアスイッチ。
【請求項１５】
前記制御部は、システム実行中に前記接続関係が動的に変更されても前記接続関係を認識する請求項１４に記載のハードウエアスイッチ。
【請求項１６】
前記ハードウエアスイッチにおいて、前記経路は同時に複数存在する請求項１から請求項１５のいずれか１項に記載のハードウエアスイッチ。
【請求項１７】
前記経路の切り替え及び新たな経路の追加は、送信側プロセッシング・エレメントと受信側プロセッシング・エレメントとの間で通信を行っているときにも実行可能である請求項１から請求項１６のいずれか１項に記載のハードウエアスイッチ。
【請求項１８】
前記スイッチ部に接続されたプロセッシング・エレメントは出力または入力のいずれか一方だけを接続する請求項１から請求項１７のいずれか１項に記載のハードウエアスイッチ。
【請求項１９】
前記スイッチ部に接続されたプロセッシング・エレメントを含むセッションが複数存在する請求項１から請求項１８のいずれか１項に記載のハードウエアスイッチ。
【請求項２０】
前記スイッチ部に接続されたプロセッシング・エレメントを含む経路が複数存在する請求項１９に記載のハードウエアスイッチ。
【請求項２１】
前記ハードウエアスイッチは、別個のハードウエアスイッチに対してパケットを転送する請求項１から請求項２０のいずれか１項に記載のハードウエアスイッチ。
【請求項２２】
複数のプロセッシング・エレメントと、
前記複数のプロセッシング・エレメントが接続されたハードウエアスイッチと、を備え、
前記ハードウエアスイッチが、
前記複数のプロセッシング・エレメントから選択した、送信側プロセッシング・エレメント、及び、前記送信側プロセッシング・エレメントとは別の受信側プロセッシング・エレメント、について、
前記送信側プロセッシング・エレメントが備える出力から選択した１つの出力と、
前記受信側プロセッシング・エレメントが備える入力から選択した１つの入力と、
を互いに接続することによって、前記複数のプロセッシング・エレメント間の経路を選択的に切り替え、
前記送信側プロセッシング・エレメントの出力及び前記受信側プロセッシング・エレメントが備える入力の少なくとも一方を複数接続することを特徴とする分散処理システム。
【請求項２３】
互いに接続した、前記送信側プロセッシング・エレメントと前記受信側プロセッシング・エレメントとの間のデータフロー処理を行う請求項２２に記載の分散処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードウエアスイッチ及び分散処理システムに関するものである。
【背景技術】
【０００２】
並列計算機システムには、計算ノードとして複数のプロセッシング・エレメントをクロスバスイッチなどのスイッチにより相互に接続し、ノード間のデータ転送などを行いながら、それらを連動させて入力データを処理するものがある。これらは処理対象となるデータを、相互依存関係を持たないように分割し、独立かつ並列なノード間ネットワークを使用して高速にデータ転送することで、高速化を実現することを目的としている。このようなスイッチを応用した並列計算機システムとしては、例えば、特許文献１に提案されたシステムがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−２０７９７公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のスイッチを使用した並列計算機システムは、アプリケーションのデータを並列して処理することによる処理性能の向上を目的としている。一方、機能に特化したプロセッシング・エレメントを相互に複数つなぎ合わせることで、データフロー処理を独立並行して実現する際にスイッチが有効である。機能に特化したプロセッシング・エレメント間の処理経路をスイッチングにより形成することで、アプリケーションのデータフロー処理が可能となる。したがって、スイッチにはデータを転送するだけでなく、経路情報やプロセッシング・エレメントの情報を管理するなどの制御機能が必要となるが、従来のスイッチはデータの転送が主目的であり、例えば、プロセッシング・エレメントで指定された転送先ノードの情報に従ってスイッチングを実現すればよかった。すなわち、プロセッシング・エレメントからの制御情報とデータの識別および制御情報の解釈により制御情報に従った処理経路形成をすることが困難であった。
【０００５】
本発明は、上記に鑑みてなされたものであって、接続されたプロセッシング・エレメントからの制御情報を処理データと識別して解釈し、プロセッシング・エレメントの自律的管理、プロセッシング・エレメントの情報提供、経路情報やプロセッシング・エレメント内部パラメータの設定を行う。これにより、スイッチに接続されたプロセッシング・エレメントを管理、制御しつつ、アプリケーション処理に対応付けられた各データの識別子と経路情報を相互参照することで、アプリケーション処理に最適なプロセッシング・エレメント間の処理経路を形成するハードウエアスイッチ及び分散処理システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明に係るハードウエアスイッチは、複数のプロセッシング・エレメントが接続されたハードウエアスイッチであって、複数のプロセッシング・エレメントから選択した、送信側プロセッシング・エレメント、及び、送信側プロセッシング・エレメントとは別の受信側プロセッシング・エレメント、について、送信側プロセッシング・エレメントが備える出力から選択した１つの出力と、受信側プロセッシング・エレメントが備える入力から選択した１つの入力と、を互いに接続することによって、複数のプロセッシング・エレメント間の経路を選択的に切り替え、送信側プロセッシング・エレメントの出力及び受信側プロセッシング・エレメントが備える入力の少なくとも一方を複数接続することを特徴としている。
【０００７】
本発明のハードウエアスイッチでは、互いに接続した、送信側プロセッシング・エレメントと受信側プロセッシング・エレメントとの間のデータフロー処理を行うことが好ましい。
【０００８】
本発明のハードウエアスイッチにおいて、ハードウエアスイッチは、複数のプロセッシング・エレメントの出力及び入力が接続される複数のチャネルを備えるスイッチ部と、スイッチ部を制御する制御部と、を備えることが好ましい。
【０００９】
本発明のハードウエアスイッチにおいて、制御部は、送信側プロセッシング・エレメントの出力から受信したデータが処理データであるか制御コマンドであるかを識別することが好ましい。
【００１０】
本発明のハードウエアスイッチにおいて、制御部は、送信側プロセッシング・エレメントの出力から受信したデータが処理データであるか制御コマンドであるかをハードウエアロジックで識別することが好ましい。
【００１１】
本発明のハードウエアスイッチにおいて、制御部は、データが制御コマンドである場合、制御コマンドにしたがって、経路情報を設定することが好ましい。
【００１２】
本発明のハードウエアスイッチにおいて、制御部は、データが処理データの場合は、処理データに対応付けられた経路選択情報と経路情報にしたがって、次の送信先を決定することが好ましい。
【００１３】
本発明のハードウエアスイッチにおいて、制御部は、データが処理データの場合は、処理データに対応付けられた経路選択情報と経路情報にしたがって、スイッチ部の経路の切り替えを行うことが好ましい。
【００１４】
本発明のハードウエアスイッチにおいて、制御部は、送信側プロセッシング・エレメントの出力から受信したデータが、受信側プロセッシング・エレメントのどの入力チャネルに対するデータかを識別することが好ましい。
【００１５】
本発明のハードウエアスイッチにおいて、経路選択情報は、送信側プロセッシング・エレメントに関する情報を含むことが好ましい。
【００１６】
本発明のハードウエアスイッチにおいて、送信側プロセッシング・エレメントに関する情報は、送信側プロセッシング・エレメントのＩＤ情報として、送信側プロセッシング・エレメントが接続されたハードウエアスイッチのＩＤ情報、送信側プロセッシング・エレメント自体のＩＤ情報、及び、送信側プロセッシング・エレメントが接続しているチャネルのＩＤ情報の少なくともいずれか一つを含むことが好ましい。
【００１７】
本発明のハードウエアスイッチにおいて、経路選択情報は、データ処理のセッションのＩＤを含むことが好ましい。
【００１８】
本発明のハードウエアスイッチにおいて、制御部は、データが制御コマンドである場合、制御コマンドにしたがって、複数のプロセッシング・エレメントの登録及び登録の解除、プロセッシング・エレメントの登録情報開示、又は、プロセッシング・エレメント設定データの転送を行うことが好ましい。
【００１９】
本発明のハードウエアスイッチにおいて、制御部は、スイッチ部の入出力チャネルと、スイッチ部に接続された複数のプロセッシング・エレメントの各入出力チャネルとの接続関係を認識することが好ましい。
【００２０】
本発明のハードウエアスイッチにおいて、前記制御部は、システム実行中に前記接続関係が動的に変更されても前記接続関係を認識することが好ましい。
【００２１】
本発明のハードウエアスイッチにおいて、経路は同時に複数存在することが好ましい。
【００２２】
本発明のハードウエアスイッチにおいて、経路の切り替え及び新たな経路の追加は、送信側プロセッシング・エレメントと受信側プロセッシング・エレメントとの間で通信を行っているときにも実行可能であることが好ましい。
【００２３】
本発明のハードウエアスイッチにおいて、スイッチ部に接続されたプロセッシング・エレメントは出力または入力のいずれか一方だけを接続する請求項１から請求項２１のいずれか１項に記載のハードウエアスイッチ。
【００２４】
本発明のハードウエアスイッチにおいて、スイッチ部に接続されたプロセッシング・エレメントを含むセッションが複数存在することが好ましい。
【００２５】
本発明のハードウエアスイッチにおいて、スイッチ部に接続されたプロセッシング・エレメントを含む経路が複数存在することが好ましい。
【００２６】
本発明のハードウエアスイッチは、別個のハードウエアスイッチに対してパケットを転送することが好ましい。
【００２７】
本発明の分散処理システムは、複数のプロセッシング・エレメントと、複数のプロセッシング・エレメントが接続されたハードウエアスイッチと、を備え、ハードウエアスイッチが、複数のプロセッシング・エレメントから選択した、送信側プロセッシング・エレメント、及び、送信側プロセッシング・エレメントとは別の受信側プロセッシング・エレメント、について、送信側プロセッシング・エレメントが備える出力から選択した１つの出力と、受信側プロセッシング・エレメントが備える入力から選択した１つの入力と、を互いに接続することによって、複数のプロセッシング・エレメント間の経路を選択的に切り替え、送信側プロセッシング・エレメントの出力及び受信側プロセッシング・エレメントが備える入力の少なくとも一方を複数接続することを特徴としている。
【００２８】
本発明の分散処理システムにおいて、互いに接続した、送信側プロセッシング・エレメントと受信側プロセッシング・エレメントとの間のデータフロー処理を行うことが好ましい。
【発明の効果】
【００２９】
本発明に係るハードウエアスイッチ及び分散処理システムは、スイッチに接続されたプロセッシング・エレメントを管理、制御しつつ、アプリケーション処理に対応付けられた各データの識別子と経路情報を相互参照することで、アプリケーション処理に最適なプロセッシング・エレメント間の処理経路を形成することができる、という効果を奏する。
【図面の簡単な説明】
【００３０】
【図１】本発明の第１実施形態に係る分散処理システムの構成を示す図である。
【図２】本発明の第１実施形態に係るハードウエアスイッチの構成を示す図である。
【図３】（ａ）、（ｂ）、（ｃ）、（ｄ）は、本発明の実施形態のプロセッシング・エレメントのチャネルの例を示す図である。
【図４】本発明の第１実施形態に係る分散処理システムの構成例を示す図である。
【図５】本発明の第１実施形態に係るスイッチ部において入力チャネルから出力チャネルへの接続を切り替える例を示す図である。
【図６】本発明の第１実施形態に係るＰＥ、ＣＵ、ハードウエアスイッチ間で送受信されるパケット構造を示す図である。
【図７】メッセージの例を左列に示し、対応するメッセージの内容を右列に示した図である。
【図８】ステータスの例を左列に示し、対応するステータスの内容を右列に示した図である。
【図９】ＰＥ登録要求時の情報の例と、各情報のデータ例と、をそれぞれ示す表である。
【図１０】登録要求に対する応答時の情報の例と、各情報のデータ例と、をそれぞれ示す表である。
【図１１】図９、１０に示す例に対応する接続例を示す図である。
【図１２】登録ＰＥ問い合わせの応答時における情報の例と、各情報のデータ例と、をそれぞれ示す表である。
【図１３】図１２に示す例に対応する接続例を示す図である。
【図１４】経路情報設定要求時における情報の例と、各情報のデータ例と、をそれぞれ示す表である。
【図１５】図１４に示す例に対応する接続例を示す図である。
【図１６】図１４に示す例に対応する接続例を示す図である。
【図１７】ＣＵ、ＰＥ、スイッチ間のプロトコルシーケンスの一例を示す図である。
【図１８】スイッチの制御部の処理の流れを示すフローチャートである。
【図１９】ハードウエアスイッチにおけるスイッチング動作の流れを示すフローチャートである。
【図２０】ハードウエアスイッチにおけるスイッチング動作の流れを示すフローチャートである。
【図２１】ハードウエアスイッチの実装例を示す図である。
【図２２】本発明の第２実施形態に係るアプリケーションとしてのＪＰＥＧデコード処理の流れを示すフローチャートである。
【図２３】本発明の第２実施形態に係るアプリケーションとしての画像二値化処理の流れを示すフローチャートである。
【図２４】第２実施形態に係るスイッチおよびＰＥのチャネル設定を示す図である。
【図２５】ＪＰＥＧデコード処理を実行すると形成される経路のイメージを示す図である。
【図２６】画像二値化処理を実行すると形成される経路のイメージを示す図である。
【図２７】ＰＥ登録要求時のパケットの情報の例と、各情報のデータ例と、をそれぞれ示す表である。
【図２８】ＰＥ登録要求に対する返信時のパケットの情報の例と、各情報のデータ例と、をそれぞれ示す表である。
【図２９】ＰＥ登録要求時のパケットの情報の例と、各情報のデータ例と、をそれぞれ示す表である。
【図３０】ＰＥ登録要求に対する返信時のパケットの情報の例と、各情報のデータ例と、をそれぞれ示す表である。
【図３１】登録ＰＥ問い合わせ時のパケットのヘッダ部の情報の例と、各情報のデータ例と、をそれぞれ示す表である。
【図３２】登録ＰＥ問い合わせの返信時のパケットの情報の例と、各情報のデータ例と、をそれぞれ示す表である。
【図３３】ＪＰＥＧデコード処理のための経路情報設定時のパケットの情報の例と、各情報のデータ例と、をそれぞれ示す表である。
【図３４】画像二値化処理のための経路情報設定時のパケットの情報の例と、各情報のデータ例と、をそれぞれ示す表である。
【図３５】パラメータ設定時のパケットの情報の例と、各情報のデータ例と、をそれぞれ示す表である。
【図３６】図３５に示す例に対応する接続例を示す図である。
【図３７】ＪＰＥＧデコード処理において、ＰＥ−１３（逆量子化）からＰＥ−１４（ＩＤＣＴ）へＮバイトの画像データを送信する場合のパケット構成を示す図である。
【図３８】ＰＥ−１７（輝度画像作成）からＰＥ−１８（二値化）へＭバイトの画像データを送信する場合のパケット構成を示す図である。
【図３９】別個のＰＥに対して複数の経路が形成されたときの接続例を示す図である。
【図４０】共通のＰＥに対して複数の経路が形成されたときの接続例を示す図である。
【発明を実施するための形態】
【００３１】
以下に、本発明に係るハードウエアスイッチ及び分散処理システムの実施形態を図面に基づいて詳細に説明する。なお、以下の実施形態によりこの発明が限定されるものではない。
【００３２】
まず、第１実施形態の分散処理システムの概要構成について説明する。
図１に示すように、第１実施形態の分散処理システムは、複数のＰＥ、ハードウエアスイッチ、及びＣＵを有する。図１は、第１実施形態に係る分散処理システムの構成を示す図である。
ＰＥ（プロセッシング・エレメント）は、応用に特化した機能を提供する計算モジュールである。ＣＵ（コントロール・ユニット）は、ハードウエアスイッチやＰＥに対する制御コマンドを生成し、特にハードウエアスイッチの経路情報を生成する。ハードウエアスイッチ（以下、スイッチと省略することがある）は、ＰＥ同士を相互に結合するネットワークを生成する動的スイッチング回路である。
【００３３】
ハードウエアスイッチは、制御部、記憶部、及びスイッチ部で構成されている（図２参照）。図２は、第１実施形態のハードウエアスイッチの構成を示す図である。図２では記憶部の図示を省略しているが制御部内に設ける構成としても良い。
ＣＵからの経路情報は制御部経由で記憶部に保存される。制御部は各ＰＥからの経路選択情報と記憶部の経路情報を使って、スイッチ部のスイッチ切り替え（スイッチング）を行う。
【００３４】
スイッチ部の入出力インタフェースをチャネルと呼ぶ。スイッチングを行うことは、入力チャネルと出力チャネルを１対１で対応付け、相互接続することである。図２においては、入力チャネルを白抜きで表示し、出力チャネルをハッチングで表示しており、図２以外の図においても入力チャネルと出力チャネルは同様に表示する。
【００３５】
ＰＥとＣＵもハードウエアスイッチと同様に入出力インタフェースとしてチャネルをもつ（図３参照）。図３（ａ）、（ｂ）、（ｃ）、（ｄ）は、本実施形態のプロセッシング・エレメントのチャネルの例を示す図である。図３においては、使用する入出力チャネルに矢印を付している。
【００３６】
１つのＰＥは入力、出力それぞれに対して一つまでチャネルを持つ。
入出力チャネルは、基本的にはＰＥ−１（図３（ａ））のようにペアで使用するが、ＰＥ−２（図３（ｂ））、ＰＥ−３（図３（ｃ））のように入力側あるいは出力側だけ使用することもできるし、ＰＥ−４（図（３）（ｄ））のように入力と出力のチャネル番号が異なっていてもよい。
【００３７】
図４は、本実施形態の分散処理システムの構成例を示す図である。
図４に示すように、ハードウエアスイッチの各チャネルには、ＣＵおよびＰＥの各チャネルが一対一に接続され、これにより分散処理システムが構成される。各ＰＥの入力チャネルと出力チャネルのＩＤは異なっていてもよいが、同じＩＤを持つハードウエアスイッチのチャネルに接続される。
【００３８】
図５は、スイッチ部において入力チャネルから出力チャネルへの接続を切り替える例を示す図である。
図５では、入力チャネル１から出力チャネル６への経路Ａから、入力チャネル１から出力チャネル４への経路Ｂへ、接続を切り替える様子を表している。
【００３９】
つづいて、本実施形態のパケット構造について説明する。
図６は、本実施形態のＰＥ、ＣＵ、ハードウエアスイッチ間で送受信される情報のパケット構造を示す図である。
パケットはヘッダ部とデータ部で構成される。ヘッダ部はＰＥのＩＤ情報、セッションＩＤ、カレントインデックス値、データ・制御コマンドなどのパケット内容を表すメッセージ、データの処理結果などを格納するステータス、データ部のデータサイズなどで構成されている。データ部は処理データのほか、ＰＥの設定データや制御コマンドの設定パラメータを格納する。
【００４０】
パケットの各フィールドとその概要は次のとおりである。
ＳＷＩＤは、ＰＥのＩＤ情報の１つで、ＰＥが接続されているハードウエアスイッチのＩＤを表す。ハードウエアスイッチへの接続、登録時に通知される。
ＰＥＩＤは、ＰＥのＩＤ情報の１つで、ＰＥ自体のＩＤを表す。ハードウエアスイッチへの接続、登録時に各ＰＥに一意にかつ動的に割り当てられる。
チャネルＩＤは、ＰＥのＩＤ情報の１つで、ＰＥが接続しているチャネルのＩＤを表す。
【００４１】
各タスク要求に対するデータ処理をセッションと呼ぶ。セッションＩＤは、各処理セッションに割り当てられる。例えば同じ画像処理でも対象となる画像が異なれば異なるセッションＩＤが割り当てられる。
カレントインデックス値は、処理が完了しているＰＥに対応する経路情報上の処理順序を表す。カレントインデックス値があることで、同じＰＥを繰り返し経路上で使うことができる。
【００４２】
メッセージは、処理データや制御コマンドなどパケットの内容を示す。例を図７に示す。図７は、メッセージの例を左列に示し、対応するメッセージの内容を右列に示した図である。
【００４３】
ステータスは、データの処理結果などを格納する。例を図８に示す。図８は、ステータスの例を左列に示し、対応するステータスの内容を右列に示した図である。
【００４４】
データサイズは、データ部のサイズである。
データは、処理データのほか、ＰＥの設定データや制御コマンドの設定パラメータを格納する。
【００４５】
次に実施データ例について説明する。
以下、各メッセージに対応するデータ部の具体例を示す。ヘッダ部のメッセージフィールドには各メッセージが格納される。
【００４６】
以下の説明において、有効チャネルマップはチャネルが一つのＰＥの入出力について有効なチャネル番号を指示する。本実施例では８チャネルのうち一つを選択する。各桁が各チャネルと対応しており、最下位ビットである１ビット目が１（０００００００１）であればチャネル１、２ビット目が１（００００００１０）であればチャネル２を表す。
機能番号はブロックが提供する機能を識別する番号である。例えば機能番号ＦＮ−２は１６ビット精度のＤＣＴを提供するなどである。
以降前記のとおり、チャネルＩＤが１のチャネルをチャネル１、チャネルＩＤが２のチャネルをチャネル２とも表記する。
【００４７】
（１）ＰＥ登録要求（ＲＥＧ＿ＰＥ）
図９は、ＰＥ登録要求時の情報の例と、各情報のデータ例と、をそれぞれ示す表である。図１０は、登録要求に対する応答時の情報の例と、各情報のデータ例と、をそれぞれ示す表である。
図１１は、図９、１０に示す例に対応する接続例を示す図である。
【００４８】
図９に示すように、登録要求時には、データ部にＳＷＩＤ、ＰＥＩＤが割り当てられておらず、制御部は、登録する機能の番号と有効チャネルマップを通知する。
これに対して、図１０に示すように、応答時には、データ部にＳＷＩＤ、ＰＥＩＤが割り当てられている。
【００４９】
（２）登録ＰＥ問い合わせ（ＱＵＥＲＹ＿ＰＥ）
図１２は、登録ＰＥ問い合わせの応答時における情報の例と、各情報のデータ例と、をそれぞれ示す表である。図１２に示す例では、登録済みＰＥの数は４である。図１３は、図１２に示す例に対応する接続例を示す図である。
登録ＰＥの問い合わせ時には、メッセージを格納したヘッダ部だけを送信する。応答時には、図１２に示すように、データ部には登録されているすべてのＰＥの情報が返ってくる。
【００５０】
（３）経路情報設定要求（ＳＥＴ＿ＰＡＴＨ）
図１４は、経路情報設定要求時における情報の例と、各情報のデータ例と、をそれぞれ示す表である。経路情報はセッションごとにＣＵによって決定される。図１４はセッションＩＤがＳＳ−１０のセッションに対応した経路情報のデータ例を示している。図１５は、図１４に示す例に対応する接続例を示す図である。図１５においては、接続される経路を矢印で示している。
図１４に示すように、経路情報設定要求時には、データ部には各ＰＥの入出力チャネル情報が経路情報として書き込まれている。なお、経路情報設定要求の応答時のデータ部は、要求時から特に変化はない。
【００５１】
図１６は、図１４に示す例に対応する接続例を示す図であって、図１５を書き直したものである。図１６に示すように、入出力が一対一に対応した経路が構成されている。
【００５２】
つづいて、図１７を参照して、上記メッセージ例（ＰＥ登録要求、登録ＰＥ問い合わせ、経路情報設定要求）についてのＣＵ、ＰＥ、ハードウエアスイッチ間のプロトコルシーケンスに関して説明する。図１７は、ＣＵ、ＰＥ、スイッチ（ハードウエアスイッチ）間のプロトコルシーケンスの一例を示す図である。
【００５３】
まず、ステップＳ１００からステップＳ１８０（図１７のステップＳ１００＋）はＲＥＧ＿ＰＥ（ＰＥ登録）に関するシーケンスである。
ステップＳ１００では、ＰＥ１は起動すると、メッセージをＲＥＧ＿ＰＥ（ＰＥ登録）とし、データ部に自ＰＥが提供できる機能とその機能の入出力に使用可能なチャネルマップの情報を格納したパケットを、スイッチの制御部に送信し、ＰＥの登録を要求する。ここでは、ヘッダ部のＩＤ情報（ＳＷＩＤ、ＰＥＩＤ、セッションＩＤ、チャネルＩＤ）は特に必要ない。また、ＰＥ１、ＰＥ２は、システム使用中に後から起動したり、再起動した場合も登録を要求できる。
【００５４】
ステップＳ１１０では、スイッチの制御部は、受け取ったメッセージを認識し、ＰＥ１にＳＷＩＤとＰＥＩＤを割り当てパケットに格納する。その後、パケットの機能情報とともに記憶部にコピーする。
さらに、ステップＳ１２０では、パケットのステータスをＯＫとし、ＳＷＩＤ、ＰＥＩＤとともにＰＥ１にパケットを返送する。
【００５５】
ステップＳ１３０では、ＰＥ１と同様に、ＰＥ２についてもＰＥ登録要求としてパケットを発行する。
ステップＳ１４０で、スイッチ制御部がＩＤを発行し、ステータスを書き換えた上で、ステップＳ１５０では、パケットをＰＥ２に返送する。
【００５６】
ステップＳ１６０では、ＰＥ１と同様に、ＣＵについてもＰＥ登録要求としてパケットを発行する。
ステップＳ１７０で、スイッチ制御部がＩＤを発行し、ステータスを書き換えた上で、ステップＳ１８０では、パケットをＣＵに返送する。
【００５７】
次に、ステップＳ２００からステップＳ２２０（図１７のステップＳ２００＋）はＱＵＥＲＹ＿ＰＥ（登録ＰＥ問い合わせ）に関するシーケンスである。
ステップＳ２００では、ＣＵがスイッチに登録しているＰＥの情報を問い合わせるためにメッセージをＱＵＥＲＹ＿ＰＥとしたパケットを送信する。
ステップＳ２１０では、スイッチの制御部は記憶部に登録されているＰＥの情報を読み出し、パケットのデータ部にコピーして、ステータスをＯＫに書き換える。
ステップＳ２２０では、スイッチの制御部はＣＵに対してパケットを返信し、応答とする。
【００５８】
さらに、ステップＳ３００からステップＳ３２０（図１７のステップＳ３００＋）はＳＥＴ＿ＰＡＴＨ（経路情報設定）に関するシーケンスである。
ステップＳ３００では、ＣＵがメッセージをＳＥＴ＿ＰＡＴＨ、データ部に経路情報を書き込んだパケットを、スイッチの制御部に送信し、経路情報設定を要求する。
ステップＳ３１０では、スイッチの制御部は経路情報を記憶部にコピーし、パケットのステータスをＯＫとする。
ステップＳ３２０では、スイッチの制御部はＣＵに対してパケットを返送し、応答とする。
【００５９】
ここで、経路情報に、図１７に図示したハードウエアスイッチ以外のハードウエアスイッチに接続されたＰＥが含まれていた場合は、経路情報をそのハードウエアスイッチへ転送する。
【００６０】
ステップＳ４００からステップＳ４７０（図１７のステップＳ４００＋）はＮＡＴＩＶＥ（ＰＥ設定パラメータ）に関するシーケンスである。
まず、ステップＳ４００について説明する。例えば、ＰＥがＪＰＥＧエンコード処理の一部である量子化を機能として提供する場合、量子化に必要な量子化テーブルをパラメータと呼ぶ。ＰＥが提供する機能に固有のパラメータを設定する場合はメッセージをＮＡＴＩＶＥとし、設定パラメータと設定対象となるＰＥのＩＤ情報（ＳＷＩＤ、ＰＥＩＤ）をデータ部に書き込んでＣＵからスイッチに送信する。カレントインデックス値は０としておく。本例では、ＰＥ１にパラメータを設定する場合について説明する。ヘッダ部には送信元ＩＤ情報を格納しておく。セッションＩＤはＣＵが任意に定める。
【００６１】
ステップＳ４１０では、ＣＵはメッセージがＮＡＴＩＶＥであることを認識すると、全ＰＥを通過する経路を形成し、パケットを転送する。例えばＣＵ→ＰＥ１→ＰＥ２→ＣＵとなる経路を形成する。この場合パケットは何もせずにＰＥ１への経路を形成し、パケット転送する。
【００６２】
ステップＳ４２０では、ＰＥ１はメッセージがＮＡＴＩＶＥであり、データ部のパラメータ設定対象ＰＥのＩＤ情報が自ＩＤ情報と一致していることを確認したら、パラメータを設定し、パケットのステータスをＯＫとする。その後パケットのヘッダ部のＩＤ情報を自ＩＤ情報に書き換える。またカレントインデックス値に１を加える。
【００６３】
ステップＳ４３０では、パケットをスイッチに返送する。
ステップＳ４４０では、スイッチは再度メッセージがＮＡＴＩＶＥであることを認識し、スイッチングにより次ＰＥであるＰＥ２への転送経路を確立し、データを転送する。
【００６４】
ステップＳ４５０では、ＰＥ２はメッセージがＮＡＴＩＶＥであるが、データ部のパラメータ設定対象ＰＥのＩＤ情報が自ＩＤ情報と一致しないため、ヘッダ部のＩＤ情報を自ＩＤ情報に書き換え、カレントインデックス値に１を加えてそのままパケットを転送する。
【００６５】
ステップＳ４６０では、スイッチはメッセージがＮＡＴＩＶＥであることを認識し、スイッチングによりＣＵへの転送経路を確立し、データを転送する。
ステップＳ４７０では、ＣＵはＰＥ設定の応答として、パケットを受信する。
【００６６】
ここで、図１７に示したハードウエアスイッチ以外のスイッチに接続されたＰＥの設定情報であれば、そのスイッチへ転送する。
【００６７】
つづくステップＳ５００からステップＳ５６０（図１７のステップＳ５００＋）はＤＡＴＡ（処理データ）に関するシーケンスである。
ここでは、ステップＳ５００においてＣＵから処理データを発行し、ＰＥ１、ＰＥ２でデータ処理を行って、ＣＵに処理結果を返す例について説明する。ＣＵはメッセージがＤＡＴＡであり、データ部に処理データを格納したパケットをスイッチに送信する。ヘッダ部のＩＤ情報は送信元であるＣＵのＩＤ情報を格納しておく。またカレントインデックス値を０としておく。
【００６８】
ステップＳ５１０では、スイッチはメッセージがＤＡＴＡであることを確認すると、ヘッダ部のＩＤ情報とカレントインデックス値を経路選択情報とし、先に設定され記憶部に格納している経路情報を参照して、転送先の次ＰＥを決定し、スイッチングしてデータを転送する。
【００６９】
ステップＳ５２０では、ＰＥ１では、データを処理し、ヘッダ部のＩＤ情報を自ＰＥのＩＤ情報に書き換える。このとき、ステータスをＯＫとし、カレントインデックス値に１を加える。そしてパケットをスイッチへ送信する。
【００７０】
ステップＳ５３０では、ステップＳ５１０と同様、スイッチでは、メッセージがＤＡＴＡであることを確認すると、ヘッダ部のＩＤ情報とカレントインデックス値を経路選択情報とし、先に設定され記憶部に格納している経路情報を参照して、転送先の次ＰＥ（ＰＥ２）を決定し、スイッチングしてデータを転送する。
【００７１】
ステップＳ５４０では、ＰＥ２でもデータを処理し、ヘッダ部のＩＤ情報を自ＰＥのＩＤ情報に書き換える。ここで、ステータスをＯＫとするとともに、カレントインデックス値に１を加える。そしてパケットをスイッチへ送信する。
【００７２】
ステップＳ５５０では、ステップＳ５１０と同様、スイッチでは、メッセージがＤＡＴＡであることを確認すると、ヘッダ部のＩＤ情報とカレントインデックス値を経路選択情報とし、先に設定され記憶部に格納している経路情報を参照して、転送先の次ＰＥを決定し、スイッチングしてデータを転送する。
ステップＳ５６０では、処理結果をＣＵに転送する。
【００７３】
ここで、経路情報において、図１７に示したハードウエアスイッチ以外のスイッチに接続されたＰＥにスイッチングする必要があれば、そのスイッチへデータを転送する。
【００７４】
次に、ステップＳ６００からステップＳ６２０（図１７のステップＳ６００＋）はＵＮＲＥＧ＿ＰＥ（ＰＥ登録解除）に関するシーケンスである。
ステップＳ６００では、ＣＵがメッセージをＵＮＲＥＧ＿ＰＥとし、データ部に登録解除対象となるＰＥのＩＤ情報を格納したパケットをスイッチに送信し、ＰＥ登録解除要求を発行する。
ステップＳ６１０では、スイッチは記憶部から該当するＰＥの情報を削除し、成功するとパケットのステータスをＯＫに書き換える。
ステップＳ６２０では、スイッチの制御部はＣＵに対してパケットを返信し、応答とする。
【００７５】
次に、つづいて、図１８を参照して、上記メッセージ例（ＰＥ登録要求、登録ＰＥ問い合わせ、経路情報設定要求）についてのハードウエアスイッチの制御部における処理に関して説明する。ここで、図１８は、スイッチの制御部の処理の流れを示すフローチャートである。
【００７６】
スイッチの制御部は、ステップＳ８００でＣＵやＰＥおよび他のＣＵからパケットを受信すると、ステップＳ８１０でメッセージを読み込み、ステップＳ８２０でメッセージの内容を識別する。
【００７７】
ステップＳ８２０でＲＥＧ＿ＰＥ（ＰＥ登録）メッセージである場合は、ステップＳ８３０でパケットへＳＷＩＤとＰＥＩＤを書き込み、ステップＳ８４０では、ＰＥの情報を記憶部へコピーする。さらに、ステップＳ８５０では、パケットのステータスをＯＫとして、パケットを送信元へ返信する。
【００７８】
ステップＳ８２０でＵＮＲＥＧ＿ＰＥ（ＰＥ登録解除）メッセージである場合は、ステップＳ８６０でデータ部に指定されたＰＥの情報を記憶部から削除し、パケットのステータスをＯＫとして、パケットを送信元へ返信する（ステップＳ８５０）。
【００７９】
ステップＳ８２０でＳＥＴ＿ＰＡＴＨ（経路情報設定）メッセージである場合は、ステップＳ８７０で経路情報を記憶部へコピーし、パケットのステータスをＯＫとして、パケットを送信元へ返信する（ステップＳ８５０）。
【００８０】
ステップＳ８２０でＱＵＥＲＹ＿ＰＥ（登録ＰＥ問い合わせ）メッセージである場合は、ステップＳ８８０で登録しているＰＥの全情報を記憶部から読み出す。さらに、ステップＳ８９０では、パケットに情報を書き込む。その後、パケットのステータスをＯＫとして、パケットを送信元へ返信する（ステップＳ８５０）。
【００８１】
ステップＳ８２０でＤＡＴＡ（処理データ）メッセージである場合は、ステップＳ９００で経路選択情報となるパケットヘッダ部のＩＤ情報と記憶部の経路情報を相互に参照し、データを送信する次のＰＥを決定して経路を形成（スイッチング）する。つづくステップＳ９１０では、形成した経路にそって次のＰＥへデータを転送する。
【００８２】
ステップＳ８２０でＮＡＴＩＶＥ（ＰＥ設定データ）メッセージである場合は、ステップＳ９２０で経路選択情報となるパケットヘッダ部のＩＤ情報と全ＰＥを通過するように定めた経路情報を相互に参照し、設定情報を転送する次のＰＥを決定して経路を形成（スイッチング）する。ＮＡＴＩＶＥメッセージによって形成される経路は全ＰＥを一回ずつ通る一意な経路となる。経路情報は自動的に生成される。
次に、ステップＳ９３０では、形成した経路にそって次のＰＥへデータを転送する。
【００８３】
つづいて、ハードウエアスイッチにおける処理データのスイッチング動作について説明する。ＰＥ設定データに関するスイッチング動作も同様の流れとなる。
まず、図１９を参照して、スイッチング動作の流れの概略について説明する。図１９は、ハードウエアスイッチにおけるスイッチング動作の流れを示すフローチャートである。
【００８４】
ステップＳ１０００では、スイッチの制御部は、通信側ＰＥから送信側ＰＥのＩＤ情報（ＳＷＩＤ、ＰＥＩＤ、チャネルＩＤ、セッションＩＤ）とカレントインデックス値を含むパケットのヘッダ部を受信する。
ステップＳ１０１０では、ヘッダ部からメッセージを抽出し、ＤＡＴＡ（処理データ）であることを確認する。
【００８５】
ステップＳ１０２０では、ヘッダ部から送信側ＰＥのＩＤ情報とカレントインデックス値を抽出する。
ステップＳ１０３０では、送信側ＰＥのＩＤ情報およびカレントインデックス値から次のインデックス値をもつ受信側ＰＥのＩＤ情報を記憶部から検索する。
【００８６】
ステップＳ１０４０では、送信側および受信側ＰＥのＩＤ情報に対応するスイッチ部の入出力チャネルを決定する。
ステップＳ１０５０では、Ｓ１０４０で決定した入力チャネルと出力チャネルを接続する経路を形成し、スイッチングを行う。
【００８７】
ステップＳ１０６０では、送信側ＰＥへパケットのデータ部の送信を要求し、
ステップＳ１０７０では、スイッチ部の経路に従って送信側ＰＥから受信側ＰＥへデータパケットを転送する
【００８８】
次に、図２０を参照して、スイッチング動作の流れを、より詳細に説明する。図２０は、ハードウエアスイッチにおけるスイッチング動作の流れを示すフローチャートである。
図２０では、ハードウエアスイッチの制御部を（１）受信部、（２）検索部、（３）情報保持部、（４）経路形成部の４つのサブモジュールに分割して説明する。情報保持部と経路形成部は対で動作し、スイッチ部の出力チャネルごとに独立したサブモジュールである。すなわち出力チャネル数だけ情報保持部と経路形成部が存在する。
【００８９】
ステップＳ３０００では、送信側ＰＥにおいて、送信するデータがあれば（ステップＳ３０００でＹ）、ステップＳ３０１０に進む。ステップＳ３０００でＮの場合、送信するデータがあるまで待機する。
【００９０】
ステップＳ３０１０では、送信側ＰＥにおいて、ヘッダ部をスイッチ制御部の受信部に送信する。その後、ステップＳ３０２０ヘ進む。
【００９１】
ステップＳ３０１０の後、受信部では、ヘッダ部を受信したら（ステップＳ３１００でＹ）、ステップＳ３１１０に進む。ステップＳ３１００でＮの場合、ヘッダ部を受信するまで待機する。
【００９２】
ステップＳ３１１０では、受信部において、ヘッダ部からメッセージフィールドを抽出し、ＤＡＴＡ（処理データ）であることを確認する。
ステップＳ３１２０では、受信部において、ヘッダ部からＩＤ情報とカレントインデックス値を読み出して、チャネル検索リクエストとともに検索部に送信する。その後ステップＳ３１３０に進む。
【００９３】
ステップＳ３１２０の後、検索部では、チャネル検索リクエストを受信したら（ステップＳ３２００でＹ）、ステップＳ３２１０に進む。ステップＳ３２００でＮの場合、受信するまでは待機する。
【００９４】
ステップＳ３２１０では、検索部において、受信した送信側ＰＥのＩＤ情報とカレントインデックス値から、次のインデックス値に対応する受信側ＰＥの入力チャネルを検索し、対応するスイッチ部の入出力チャネルを決定する。
次のステップＳ３２２０では、検索部において、スイッチ部の入力チャネルの情報をスイッチ部の出力チャネルに対応した情報保持部に送信する。
さらに、ステップＳ３２３０では、検索部において、検索完了通知を受信部に発行し、ステップＳ３２００に戻る。
【００９５】
ステップＳ３１３０では、受信部において、検索完了通知受信したら（ステップＳ３１３０でＹ）、ステップＳ３１４０へ進む。ステップＳ３１３０でＮの場合、受信するまでは待機する。
ステップＳ３１４０では、受信部において、チャネル検索リクエストを解除し、ステップＳ３１００に戻ってヘッダ部の受信を待機する。
【００９６】
ステップＳ３２２０の後、情報保持部では、入力チャネル情報を受信したら（ステップＳ３３００でＹ）、ステップＳ３３１０に進む。ステップＳ３３００でＮの場合、受信するまでは待機する。
ステップＳ３３１０では、情報保持部において、入力チャネル情報を受信した順に保持し、ステップＳ３３００に戻って待機する。
【００９７】
ステップＳ３３１０の後、経路形成部では、情報保持部に入力チャネル情報が存在したら（ステップＳ３４００でＹ）、ステップＳ３４１０に進む。入力チャネル情報がなければ（ステップＳ３４００でＮ）、そのまま待機する。
ステップＳ３４１０では、経路形成部において、現在対応する出力チャネルを使って形成された経路がないかどうか、すなわち出力チャネルが使用中でないか確認する。使用中でなければ（ステップＳ３４１０でＹ）、ステップＳ３４２０に進む。使用中（ステップＳ３４１０でＮ）ならば、使用完了するまで待機してから、ステップＳ３４２０に進む。
【００９８】
ステップＳ３４２０では、経路形成部において、最も長く情報保持部に保持されている入力チャネル情報（一番古い情報）を読み出し、経路形成部に対応するスイッチ部の出力チャネルと入力チャネル情報に対応する入力チャネルとの間にスイッチ部上の経路を形成（スイッチング）する。
ステップＳ３４３０では、経路形成部において、形成した経路と対をなす信号線を介して、送信側ＰＥへデータ要求を送信する。その後ステップＳ３４００に戻る。
【００９９】
ステップＳ３４３０の後、ステップＳ３０２０では、送信側ＰＥにおいて、データ要求を受信したら（ステップＳ３０２０でＹ）、ステップＳ３０３０に進む。ステップＳ３０２０でＮの場合、受信するまでは待機する。
ステップＳ３０３０では、送信側ＰＥにおいて、パケットのデータ部をハードウエアスイッチのスイッチ部に形成された経路に送信する。
【０１００】
ここで、ステップＳ３１４０でチャネル検索リクエストを解除すれば次の要求を受け付けられ、データ送信が完了しなくても別の経路を受け付けられる。すなわち、経路１を残したまま、別の経路２を形成し、並列データ転送が可能である。また、受信した順でヘッダ部を記憶しておき、リクエストの解除をステップＳ３１２０のすぐ後に行って、次の受信を待機するノンブロッキング処理にしてもよい。
【０１０１】
図２１は、ハードウエアスイッチの実装例を示す図である。
図２１に示すように、８入力８出力のスイッチとしての実装が可能である。各入力チャネルは全出力チャネルのうちいずれか一つと１対１で経路を形成できる。出力チャネル側には経路形成部が存在し、チャネル部の出力チャネルから入力チャネルへのデータ処理経路と対をなす信号線を介して、データ要求を入力チャネルに対して発行し、スイッチングを行う。
【０１０２】
スイッチの制御部は接続されているプロセッシング・エレメントの接続情報がシステム実行中に変化しても、ＰＥの入出力チャネルと、スイッチ部の入出力チャネルを対応づけて管理し、送信側ＰＥの入力チャネルと受信側ＰＥの入力チャネルを１対１に対応付けて接続しスイッチングすることが可能である。
【０１０３】
データの送信に関しては同期・非同期は問わない。入出力チャネルの一方または両方にレジスタなどを設置して同期通信を行うことも可能であり、ＦＩＦＯなどを設置して非同期通信を行うことも可能とする。
【０１０４】
次に、本発明の第２実施形態について説明する。
第２実施形態に係るハードウエアスイッチ及び分散処理システムにおいては、送信側ＰＥと受信側ＰＥを接続する経路が２つ存在し、２つの処理を同時に実行する点が第１実施形態に係るハードウエアスイッチ及び分散処理システムと異なる。以下の説明では、第１実施形態と重複する構成、作用、効果についての詳細な説明は省略する。
【０１０５】
まず、図２２、図２３を参照して、アプリケーションについて説明する。図２２は、第２実施形態に係るアプリケーションとしてのＪＰＥＧデコード処理の流れを示すフローチャートである。図２３は、第２実施形態に係るアプリケーションとしての画像二値化処理の流れを示すフローチャートである。
【０１０６】
第２実施形態に係る分散処理システムでは、ハードウエアスイッチに接続されたＰＥを使用して（１）ＪＰＥＧデコード処理と（２）画像二値化処理を実現する。
ＪＰＥＧデコード処理は（１−１）エントロピー復号化（ＦＮ−１２）、（１−２）逆量子化（ＦＮ−１３）、（１−３）ＩＤＣＴ（逆離散コサイン変換）（ＦＮ−１４）、（１−４）アップサンプリング、色信号変換などを含む後処理（ＦＮ−１５）、の４つの機能で構成されている。
一方、画像二値化処理は色信号変換（ＦＮ−１６）、輝度画像作成（ＦＮ−１７）、二値化（ＦＮ−１８）の３つの機能で構成されている。括弧内のＦＮ−１２からＦＮ−１８は、対応する機能ＩＤである。また各処理のセッションＩＤはそれぞれＳＳ−１、ＳＳ−２である。
【０１０７】
次に、第２実施形態のシステム設定について説明する。図２４は、第２実施形態に係るスイッチおよびＰＥのチャネル設定を示す図である。
図２４に示すスイッチＳＷ−３は、チャネル１からチャネル８の入出力各８チャネルを備え、各チャネルはＰＥの入出力チャネルに対応している。ＰＥのチャネルは１−８までを指定できるが、スイッチの１チャネルに対応付けている。ここで、ＰＥ間で有効チャネルのＩＤが重複していても、ＰＥのＩＤで識別できるため問題ない。例えば、ＰＥ−１６は入力チャネル２、をＳＷ−３の出力チャネル６に、出力チャネル１をＳＷ−３の入力チャネル６に対応付けている。
【０１０８】
図２５は、ＪＰＥＧデコード処理を実行すると形成される経路のイメージを示す図である。図２６は、画像二値化処理を実行すると形成される経路のイメージを示す図である。なお、図２５、図２６においては、ＣＵにも入出力を接続し、経路を形成するが、図示を省略している。
【０１０９】
次に、実施データ例について説明する。
（１）ＰＥ登録（ＲＥＧ＿ＰＥ）
システムが起動するとスイッチに接続された８つのＰＥが自機能の登録を行う。ＣＵもＰＥの一種としてみなされる。例えば、ＦＮ−１４（ＩＤＣＴ）（図２２）の機能をもつＰＥを登録する場合は、図２７に示すパケットをＲＥＧ＿ＰＥメッセージとともにスイッチ部を介して制御部に送信する。図２７は、ＰＥ登録要求時のパケットの情報の例と、各情報のデータ例と、をそれぞれ示す表である。
【０１１０】
パケットのデータ部には機能番号と有効チャネルのマップを格納する。本例における有効チャネルのマップはＬＳＢ側をチャネル１、ＭＳＢ側をチャネル８として記載する。図２７では、有効入力チャネルはＬＳＢ側から４番目のビットが１となっているため、チャネル４が入力チャネルとして有効である。有効出力チャネルはＬＳＢ側から７番目のビットが１となっているため、チャネル７が出力チャネルとして有効である。各データは１バイトとし、データサイズは５バイトとする。
【０１１１】
上記のメッセージを制御部に送信し、ＰＥの登録が完了すると図２８に示すパケットが返信される。図２８は、ＰＥ登録要求に対する返信時のパケットの情報の例と、各情報のデータ例と、をそれぞれ示す表である。
図２８に示すパケットでは、制御部によりＳＷＩＤとＰＥＩＤがそれぞれＳＷ−３、ＰＥ−１４として割り振られている。登録が成功したので、ステータスはＯＫとなっている。
【０１１２】
同様に、ＦＮ−１８（二値化）（図２３）の機能を持つＰＥを登録する場合は図２９に示すパケットを送信する。図２９は、ＰＥ登録要求時のパケットの情報の例と、各情報のデータ例と、をそれぞれ示す表である。この場合の有効入力チャネルおよび出力チャネルはそれぞれ１である。この結果、図３０に示すようにＳＷＩＤとＰＥＩＤが同様に割り振られ、ステータスをＯＫとされたパケットが返信される。ここで、図３０は、ＰＥ登録要求に対する返信時のパケットの情報の例と、各情報のデータ例と、をそれぞれ示す表である。
【０１１３】
（２）登録ＰＥ問い合わせ（ＱＵＥＲＹ＿ＰＥ）
ＰＥの登録が完了すると、ＣＵが主として経路を構成するための情報として登録ＰＥの問い合わせを行なう。このとき、図３１に示すように、ＳＷＩＤとＰＥＩＤが割り振られており、自身の出力チャネルのＩＤも分かっているので、ヘッダに格納する。セッションＩＤとカレントインデックス値は経路に対して割り振るため不要である。問い合わせ時はデータ部も不要である。図３１は、登録ＰＥ問い合わせ時のパケットのヘッダ部の情報の例と、各情報のデータ例と、をそれぞれ示す表である。
【０１１４】
問い合わせに対しては、図３２に示すように、８個のＰＥの情報が返信される。図３２は、登録ＰＥ問い合わせの返信時のパケットの情報の例と、各情報のデータ例と、をそれぞれ示す表である。
図３２に示すパケットにおいては、４番目のＰＥ（ＰＥ４）として、ＰＥ−１４の情報が登録したとおりに格納されている。７番目のＰＥ（ＰＥ７）として、ＰＥ−１８の情報が登録したとおりに格納されている。その他のＰＥについても登録時のＳＷＩＤ、ＰＥＩＤ、機能番号、有効入出力チャネルマップの情報を得ることができる。
【０１１５】
（３）経路情報設定（ＳＥＴ＿ＰＡＴＨ）
問い合わせたＰＥの情報を使ってＣＵが経路情報を構成する。以下に（ａ）ＪＰＥＧデコード処理（セッションＩＤ＝ＳＳ−１）と（ｂ）画像二値化処理（セッションＩＤ＝ＳＳ−２）を行なうための経路情報を示す。
【０１１６】
（ａ）ＪＰＥＧデコード処理（セッションＩＤ＝ＳＳ−１）
図３３は、ＪＰＥＧデコード処理のための経路情報設定時のパケットの情報の例と、各情報のデータ例と、をそれぞれ示す表である。
ここでは、２番目のＰＥ（ＰＥ２）に注目して説明する。ＪＰＥＧデコード処理においてＰＥ−１３（逆量子化）は２番目にデータ処理を行うがインデックス値は０から始まるためインデックス値は１となっている。ＰＥ−１３はデータに逆量子化の処理を行うと出力チャネル５からデータを出力する。出力データは出力先ＰＥであるＰＥ−１４の入力チャネル４に送信される。すなわち、ＰＥ−１３の出力チャネル５とＰＥ−１４の入力チャネル４をハードウエアスイッチが相互に接続することを示している。また４番目のＰＥは最終段であり、後続に処理ＰＥは存在しないため出力チャネルを０としている。本例では、初段および最終段と接続するＣＵの情報を経路情報に含めていないが、ＣＵを含めて経路情報を構成する仕様としてもよい。
【０１１７】
（ｂ）画像二値化処理（セッションＩＤ＝ＳＳ−２）
図３４は、画像二値化処理のための経路情報設定時のパケットの情報の例と、各情報のデータ例と、をそれぞれ示す表である。
画像二値化処理も、上述のＪＰＥＧデコード処理と同様に経路を構成できるため、詳細な説明は省略する。
【０１１８】
（４）ＰＥ設定パラメータ（ＮＡＴＩＶＥ）
第２実施形態の分散処理システムでは、必要に応じてＰＥの機能に固有のパラメータを設定することができる。データ部には設定対象となるＰＥの各種ＩＤ情報を格納する。さらにパラメータの数、バイト数、種別ＩＤを格納する。
【０１１９】
図３５は、パラメータ設定時のパケットの情報の例と、各情報のデータ例と、をそれぞれ示す表である。図３６は、図３５に示す例に対応する接続例を示す図である。
本例は、ＰＥ−１８（二値化）に二値化の閾値を設定する場合を示している。閾値のパラメータ種別ＩＤはＰ−１８１、閾値の値を５３とすると、図３５に示すパケットの構成となる。
【０１２０】
パラメータ設定時は、図３６に示すように、ＣＵを含む全ＰＥを通過する経路をスイッチが自律的に構成する。メッセージとデータ部の対象となるＰＥの情報を参照して、各ＰＥはパラメータの設定を行うか、次のＰＥへそのまま転送するかを判断する。
【０１２１】
（５）処理データ（ＤＡＴＡ）
経路情報と必要に応じてパラメータの設定が完了すると、処理データを送信する。
図３７は、ＪＰＥＧデコード処理において、ＰＥ−１３（逆量子化）からＰＥ−１４（ＩＤＣＴ）へＮバイトの画像データを送信する場合のパケット構成を示す図である。ヘッダには送信元のＰＥであるＰＥ−１３の情報を格納する。ＰＥ−１３はＳＷ−３に接続され、セッションＳＳ−１の処理について出力チャネル５からデータを出力する。カレントインデックス値は２、ステータスはＯＫとなっていることから、セッションＳＳ−１において２番目の処理を完了したことがわかる。処理データのパケットについては各ＰＥでの処理が完了するたびにステータスを更新する。
【０１２２】
図３８は、図３７と同様に、ＰＥ−１７（輝度画像作成）からＰＥ−１８（二値化）へＭバイトの画像データを送信する場合のパケット構成を示す図である。
図３７、図３８に示すパケットは入出力チャネルがそれぞれ独立しているため、同時にデータ転送することができる。制御部は上記パケットを各々互いとは無関係のタイミングで受け付けると、ヘッダ部を解析し、図２０に示す詳細フローに従って経路を構成する。ＰＥの入出力チャネルのＩＤとハードウエアスイッチのスイッチ部の入出力チャネルのＩＤはチャネル内部で一対一に対応付けて管理している。
【０１２３】
例えば、ＰＥ−１３、ＰＥ−１７の順で処理データパケットが到着したとすると、まず、ＰＥ−１３からの処理パケットを解析し、経路情報から次段のＰＥの入力チャネルを検索する。結果ＰＥ−１３の出力チャネル５とＰＥ−１４の入力チャネル４に対応付けられたスイッチ部の入力チャネル５と出力チャネル４を接続することを決定する。接続するチャネル部のチャネルを決定し、チャネル検索リクエストを解除したら、経路の形成および、データの転送を待たずに、ＰＥ−１７からの処理データパケットを解析できる。すなわち、図３９に示すように、ＰＥ−１３からＰＥ−１４へのデータ転送とＰＥ−１７からＰＥ−１８へのデータ転送を同時に実現できる。図３９は、別個のＰＥに対して複数の経路が形成されたときの接続例を示す図である。
【０１２４】
一方、図４０は、共通のＰＥに対して複数の経路が形成されたときの接続例を示す図である。図４０に示すように複数の経路が同一のＰＥを共有する場合、ＰＥ−２５からＰＥ−２４への経路が先に形成されており、ＰＥ−２７からの処理データパケットが到着した場合は、ＰＥ−２５からＰＥ−２４へのデータ転送完了を確認してから、ＰＥ−２７からＰＥ−２４へのデータ転送経路を形成し、スイッチングを行なう。ただし、図２０の詳細フローで説明したとおり、出力チャネル側には入力チャネルの情報を到着順に記憶保持しておくための情報保持部が存在し、経路形成を待つことなく、受信部は次の経路形成の要求を受け付けることが可能である。
【産業上の利用可能性】
【０１２５】
以上のように、本発明に係るハードウエアスイッチ及び分散処理システムは、スイッチに接続されたプロセッシング・エレメントを管理、制御しつつ、アプリケーション処理に対応付けられた各データの識別子と経路情報を相互参照することで、アプリケーション処理に最適なプロセッシング・エレメント間の処理経路を形成するハードウエアスイッチ及び分散処理システムに適している。
【符号の説明】
【０１２６】
ＰＥ−１、ＰＥ−２、ＰＥ−３、ＰＥ−４    プロセッシング・エレメント
ＰＥ−１２、ＰＥ−１３、ＰＥ−１４、ＰＥ−１５、ＰＥ−１６、ＰＥ−１７、ＰＥ−１８    プロセッシング・エレメント
ＰＥ−２１、ＰＥ−２２、ＰＥ−２３、ＰＥ−２４、ＰＥ−２５、ＰＥ−２６、ＰＥ−２７、ＰＥ−２８    プロセッシング・エレメント
ＳＷ−３    ハードウエアスイッチ
【図１】
2010218415.tif 000003
【図２】
2010218415.tif 000004
【図３】
2010218415.tif 000005
【図４】
2010218415.tif 000006
【図５】
2010218415.tif 000007
【図６】
2010218415.tif 000008
【図７】
2010218415.tif 000009
【図８】
2010218415.tif 000010
【図９】
2010218415.tif 000011
【図１０】
2010218415.tif 000012
【図１１】
2010218415.tif 000013
【図１２】
2010218415.tif 000014
【図１３】
2010218415.tif 000015
【図１４】
2010218415.tif 000016
【図１５】
2010218415.tif 000017
【図１６】
2010218415.tif 000018
【図１７】
2010218415.tif 000019
【図１８】
2010218415.tif 000020
【図１９】
2010218415.tif 000021
【図２０】
2010218415.tif 000022
【図２１】
2010218415.tif 000023
【図２２】
2010218415.tif 000024
【図２３】
2010218415.tif 000025
【図２４】
2010218415.tif 000026
【図２５】
2010218415.tif 000027
【図２６】
2010218415.tif 000028
【図２７】
2010218415.tif 000029
【図２８】
2010218415.tif 000030
【図２９】
2010218415.tif 000031
【図３０】
2010218415.tif 000032
【図３１】
2010218415.tif 000033
【図３２】
2010218415.tif 000034
【図３３】
2010218415.tif 000035
【図３４】
2010218415.tif 000036
【図３５】
2010218415.tif 000037
【図３６】
2010218415.tif 000038
【図３７】
2010218415.tif 000039
【図３８】
2010218415.tif 000040
【図３９】
2010218415.tif 000041
【図４０】
2010218415.tif 000042