(57)【要約】【課題】高い拡張性を有し、低コストで実現できる処理システムを提供すること。【解決手段】プロセッシング・エレメント１００とコントロール・ユニット２００とを有する処理システムであって、プロセッシング・エレメント１００は、特定の機能を行う処理部１０１と、外部からの要求に応じて特定の機能に関する機能情報を外部へ出力する通信部１０３と、機能情報を保持するデータ保持部１０２と、を有し、コントロール・ユニット２００は、外部からの要求に応じて接続されているプロセッシング・エレメント１００の機能情報を出力する通信部２０２を有する。【選択図】        図１
2008097498.tif 000002
【特許請求の範囲】
【請求項１】
特定の機能を行う処理部と、
外部からの要求に応じて前記特定の機能に関する機能情報を外部へ出力する通信部と、
前記機能情報を保持するデータ保持部と、
を有することを特徴とするプロセッシング・エレメント。
【請求項２】
プロセッシング・エレメントが接続されるコントロール・ユニットであって、
接続されている前記プロセッシング・エレメントが行う特定の機能に関する機能情報を外部からの要求に応じて出力する通信部を有することを特徴とするコントロール・ユニット。
【請求項３】
前記通信部は、他のコントロール・ユニットに対して、他の前記コントロール・ユニットに接続されている前記プロセッシング・エレメントの前記機能情報について問い合わせることができることを特徴とする請求項２に記載のコントロール・ユニット。
【請求項４】
前記コントロール・ユニットに接続または切断された前記プロセッシング・エレメントを検出することを特徴とする請求項２または３に記載のコントロール・ユニット。
【請求項５】
プロセッシング・エレメントとコントロール・ユニットとを有する処理システムであって、
前記プロセッシング・エレメントは、
特定の機能を行う処理部と、
外部からの要求に応じて前記特定の機能に関する機能情報を外部へ出力する通信部と、
前記機能情報を保持するデータ保持部と、を有し、
前記コントロール・ユニットは、
外部からの要求に応じて接続されている前記プロセッシング・エレメントの前記機能情報を出力する通信部を有することを特徴とする処理システム。
【請求項６】
前記コントロール・ユニットは、前記コントロール・ユニットに接続されている前記プロセッシング・エレメントの前記機能情報を前記通信部を介して取得し、保持するデータ保持部を有することを特徴とする請求項５に記載の処理システム。
【請求項７】
前記コントロール・ユニットは、
接続または切断された前記プロセッシング・エレメントを検出し、
前記コントロール・ユニットに接続されている前記プロセッシング・エレメントの少なくとも前記機能情報を管理するためのプロセッシング・エレメント接続情報を作成または更新し、
特定のサービスに関する実行要求を受信し、
前記サービスを構成するタスクの情報を取得し、
前記プロセッシング・エレメント接続情報を参照して、前記コントロール・ユニットに接続している前記プロセッシング・エレメントを用いて前記サービスの実行について判断し、
前記サービスの実行についての判断結果に基づいて、前記サービスを構成する前記タスクを実行するためのタスク実行遷移情報を取得し、
前記コントロール・ユニットに接続されている前記プロセッシング・エレメントは、前記タスク実行遷移情報に応じて前記機能を行うことを特徴とする請求項６に記載の処理システム。
【請求項８】
前記コントロール・ユニットの前記通信部は、前記サービスの実行についての判断結果に基づいて、他の前記コントロール・ユニットに保持されている前記機能情報について問い合わせを行い、
他の前記コントロール・ユニットに接続されている前記プロセッシング・エレメントも前記タスク実行遷移情報に応じて前記機能を行うことを特徴とする請求項７に記載の処理システム。
【請求項９】
特定の機能を行うプロセッシング・エレメントと、コントロール・ユニットとを用いる処理方法であって、
前記特定の機能に関する機能情報を前記プロセッシング・エレメント内に保持するプロセッシング・エレメント内データ保持ステップと、
前記プロセッシング・エレメントの外部からの要求に応じて前記機能情報を外部へ出力するプロセッシング・エレメント通信ステップと、
前記コントロール・ユニットの外部からの要求に応じて前記機能情報を出力するコントロール・ユニット通信ステップと、を有することを特徴とする分散処理方法。
【請求項１０】
さらに、前記コントロール・ユニットに接続されている前記プロセッシング・エレメントの前記機能情報を前記コントロール・ユニット内に取得し、保持するコントロール・ユニット内データ保持ステップを有することを特徴とする請求項９に記載の分散処理方法。
【請求項１１】
前記コントロール・ユニットに接続または切断された前記プロセッシング・エレメントを検出するプロセッシング・エレメント確認ステップと、
前記コントロール・ユニットに接続されている前記プロセッシング・エレメントの少なくとも前記機能情報を管理するためのプロセッシング・エレメント接続情報を取得または更新するプロセッシング・エレメント接続情報取得ステップと、
サービスに関する実行要求を受信するサービス実行要求受信ステップと、
前記サービスを構成するタスクを表す情報を取得するサービス−タスク対応情報取得ステップと、
前記サービス−タスク対応情報を参照して、前記コントロール・ユニットに接続している前記プロセッシング・エレメントに関する前記プロセッシング・エレメント接続情報及び／または前記機能情報に基づいて、前記サービスの実行について判断するサービス実行判断ステップと、
サービス実行判断ステップの判断結果に基づいて、前記サービスを構成する前記タスクを実行するためのタスク実行遷移情報を取得するタスク実行遷移情報取得ステップと、
前記コントロール・ユニットに接続されている前記プロセッシング・エレメントが前記タスク実行遷移情報に応じて前記機能を行うプロセッシング・エレメント実行ステップと、を有することを特徴とする請求項１０に記載の分散処理方法。
【請求項１２】
前記プロセッシング・エレメント接続情報取得ステップにおいて、前記コントロール・ユニットに接続されている所定範囲内の他のコントロール・ユニットに関するプロセッシング・エレメント接続情報を取得または更新することを特徴とする請求項１１に記載の分散処理方法。
【請求項１３】
前記コントロール・ユニットに接続されている所定範囲内の他のコントロール・ユニットは、通信距離に基づいて定められることを特徴とする請求項１２に記載の分散処理方法。
【請求項１４】
前記サービス実行判断ステップの判断結果に基づいて、前記サービスを構成する前記タスクを実行するための前記プロセッシング・エレメントを確保するプロセッシング・エレメント確保ステップをさらに有することを特徴とする請求項１１、１２または１３に記載の分散処理方法。
【請求項１５】
前記プロセッシング・エレメント実行ステップが終了したとき、前記サービスに用いた前記プロセッシング・エレメントを解放するリリースステップを有することを特徴とする請求項１１、１２または１３に記載の分散処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッシング・エレメント、コントロール・ユニット、及びこれらを備える処理システム、分散処理方法に関するものである。
【背景技術】
【０００２】
従来、複数のステップからなる処理を実行するとき、以下の（１）、（２）、（３）の３通りの方法が考えられる。
（１）すべてのステップをソフトウェアで解決する方法
（２）一部ステップ（機能）をハードウェアに置き換える方法
（３）すべてハードウェアで解決する方法
【０００３】
（１）の方法では、例えば、汎用のＣＰＵ上において、すべてのステップをソフトウェアとして記述する。各ステップは、一つのプログラムでサブルーチンやスレッドとして実現される場合、別々のプログラムで実現しプロセス間通信を行う場合等が考えられる。
【０００４】
また、（２）の方法では、例えば、最も負荷の高い処理の一部をＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）などのハードウェアを使用してアクセラレーション（加速実行）する。マルチメディアコーデック処理においては、最も一般的な方法である。また、（３）の方法は、すべてのステップをハードウェアを用いて実行するものである。並列処理システムとしては、例えば、特許文献１に提案されたシステムがある。
【０００５】
【特許文献１】特開平１０−３３４０５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
例えば、あるプロセッシング・エレメント（クライアント・プロセッシング・エレメント）がステップ１、ステップ２、ステップ３、ステップ４で構成される処理Ａを要求することを考える。
【０００７】
この時、要求を受け付けるプロセッシング・エレメントをサーバ・プロセッシング・エレメントと呼ぶ。サーバ・プロセッシング・エレメントがネットワーク上のすべてのプロセッシング・エレメントの情報を知っていれば、ステップ１〜ステップ４の処理に特化したプロセッシング・エレメントの場所を通知すればよい。
【０００８】
しかしながら、この方法では、サーバ・プロセッシング・エレメントがネットワーク上の全情報を保持する必要がある。このため、拡張性が低く、コストも高くなってしまう。
【０００９】
本発明は、上記に鑑みてなされたものであって、高い拡張性を有し、低コストで実現できる処理システム、このシステムに使用するプロセッシング・エレメント、コントロール・ユニット、及び分散処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明によれば、特定の機能を行う処理部と、外部からの要求に応じて特定の機能に関する機能情報を外部へ出力する通信部と、機能情報を保持するデータ保持部と、を有することを特徴とするプロセッシング・エレメントを提供できる。
【００１１】
また、本発明の好ましい態様によれば、プロセッシング・エレメントが接続されるコントロール・ユニットであって、接続されているプロセッシング・エレメントが行う特定の機能に関する機能情報を外部からの要求に応じて出力する通信部を有することが望ましい。
【００１２】
また、本発明の好ましい態様によれば、通信部は、他のコントロール・ユニットに対して、他のコントロール・ユニットに接続されているプロセッシング・エレメントの機能情報について問い合わせることができることが望ましい。
【００１３】
また、本発明の好ましい態様によれば、コントロール・ユニットに接続または切断されたプロセッシング・エレメントを検出することが望ましい。
【００１４】
また、本発明の好ましい態様によれば、プロセッシング・エレメントとコントロール・ユニットとを有する処理システムであって、プロセッシング・エレメントは、特定の機能を行う処理部と、外部からの要求に応じて特定の機能に関する機能情報を外部へ出力する通信部と、機能情報を保持するデータ保持部と、を有し、コントロール・ユニットは、外部からの要求に応じて接続されているプロセッシング・エレメントの機能情報を出力する通信部を有することが望ましい。
【００１５】
また、本発明の好ましい態様によれば、コントロール・ユニットは、コントロール・ユニットに接続されているプロセッシング・エレメントの機能情報を通信部を介して取得し、それを保持するデータ保持部を有することが望ましい。
【００１６】
また、本発明の好ましい態様によれば、コントロール・ユニットは、接続または切断されたプロセッシング・エレメントを検出し、コントロール・ユニットに接続されているプロセッシング・エレメントの少なくとも機能情報を管理するためのプロセッシング・エレメント接続情報を作成または更新し、特定のサービスに関する実行要求を受信し、サービスを構成するタスクの情報を取得し、プロセッシング・エレメント接続情報を参照して、コントロール・ユニットに接続しているプロセッシング・エレメントを用いてサービスの実行について判断し、サービスの実行についての判断結果に基づいて、サービスを構成するタスクを実行するためのタスク実行遷移情報を取得し、コントロール・ユニットに接続されているプロセッシング・エレメントは、タスク実行遷移情報に応じて機能を行うことが望ましい。
【００１７】
また、本発明の好ましい態様によれば、コントロール・ユニットの通信部は、サービスの実行についての判断結果に基づいて、他のコントロール・ユニットに保持されている機能情報について問い合わせを行い、他のコントロール・ユニットに接続されているプロセッシング・エレメントもタスク実行遷移情報に応じて機能を行うことが望ましい。
【００１８】
また、本発明によれば、特定の機能を行うプロセッシング・エレメントと、コントロール・ユニットとを用いる処理方法であって、特定の機能に関する機能情報をプロセッシング・エレメント内に保持するプロセッシング・エレメント内データ保持ステップと、プロセッシング・エレメントの外部からの要求に応じて機能情報を外部へ出力するプロセッシング・エレメント通信ステップと、コントロール・ユニットの外部からの要求に応じて機能情報を出力するコントロール・ユニット通信ステップと、を有することを特徴とする分散処理方法を提供できる。
【００１９】
また、本発明の好ましい態様によれば、さらに、コントロール・ユニットに接続されているプロセッシング・エレメントの機能情報をコントロール・ユニット内に取得し、保持するコントロール・ユニット内データ保持ステップを有することが望ましい。
【００２０】
また、本発明の好ましい態様によれば、コントロール・ユニットに接続または切断されたプロセッシング・エレメントを検出するプロセッシング・エレメント確認ステップと、コントロール・ユニットに接続されているプロセッシング・エレメントの少なくとも機能情報を管理するためのプロセッシング・エレメント接続情報を取得または更新するプロセッシング・エレメント接続情報取得ステップと、特定のサービスに関する実行要求を受信するサービス実行要求受信ステップと、サービスを構成するタスクを表す情報を取得するサービス−タスク対応情報取得ステップと、サービスを構成するタスクを表す情報を参照して、コントロール・ユニットに接続しているプロセッシング・エレメントに関するプロセッシング・エレメント接続情報及び／または機能情報に基づいてサービスの実行について判断するサービス実行判断ステップと、サービス実行判断ステップの判断結果に基づいて、サービスを構成するタスクを実行するためのタスク実行遷移情報を取得するタスク実行遷移情報取得ステップと、コントロール・ユニットに接続されているプロセッシング・エレメントがタスク実行遷移情報に応じて機能を行うプロセッシング・エレメント実行ステップと、を有することが望ましい。
【００２１】
また、本発明の好ましい態様によれば、プロセッシング・エレメント接続情報取得ステップにおいて、コントロール・ユニットに接続されている所定範囲内の他のコントロール・ユニットに関するプロセッシング・エレメント接続情報を取得または更新することが望ましい。
【００２２】
また、本発明の好ましい態様によれば、コントロール・ユニットに接続されている所定範囲内の他のコントロール・ユニットは、通信距離に基づいて定められることが望ましい。
【００２３】
また、本発明の好ましい態様によれば、サービス実行判断ステップの判断結果に基づいて、サービスを構成するタスクを実行するためのプロセッシング・エレメントを確保するプロセッシング・エレメント確保ステップをさらに有することが望ましい。
【００２４】
また、本発明の好ましい態様によれば、プロセッシング・エレメント実行ステップが終了したとき、サービスに用いたプロセッシング・エレメントを解放するリリースステップを有することが望ましい。
【発明の効果】
【００２５】
本発明によれば、高い拡張性を有し、低コストで実現できる処理システム、このシステムに使用するプロセッシング・エレメント、コントロール・ユニット、及び分散処理方法を提供できるという効果を奏する。
【発明を実施するための最良の形態】
【００２６】
以下に、本発明の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００２７】
図１の（ａ）、（ｂ）は、それぞれ本発明の実施例１におけるプロセッシング・エレメントとコントロール・ユニットの概略構成を示している。
【００２８】
図１の（ａ）において、プロセッシング・エレメント１００は、処理部１０１とデータ保持部１０２と通信部１０３とを有している。「プロセッシング・エレメント」とは、データの入出力と、処理と、伝達と、格納との４つの機能のうち１つ以上の機能を実現するシステムの構成単位をいう。
【００２９】
処理部１０１は、特定の機能を行う。通信部１０３は、外部からの要求に応じて特定の機能に関する機能情報を外部へ出力する。さらに、データ保持部１０２は、機能情報を保持している。
【００３０】
ここで、処理部１０１は、単にデータをスルーさせる、即ち処理せずに伝達するだけの機能でも良い。また、データ保持部１０２は、書き換え可能な構成、例えば、ハードウエアロジックとして書き込まれている構成、１６進Ｄｉｐスイッチの構成等を用いることができる。
【００３１】
例えば、一つのプロセッシング・エレメントは、一つ以上の「タスク」を行う処理機能と、この処理に必要なデータ入出力機能やデータ格納機能を有している。ここで、「タスク」とは、あるまとまった機能の実行単位を言う。
【００３２】
図１の（ｂ）は、コントロール・ユニット２００の概略構成を示している。コントロール・ユニット２００は、少なくとも通信部２０２を有していれば良い。さらに好ましくは、コントロール・ユニット２００は、処理部２０１も有している。コントロール・ユニット２００は、上述の構成を有するプロセッシング・エレメント１００が接続可能に構成されている。コントロール・ユニットとは、本実施例の分散処理システムにおいて、各プロセッシング・エレメントへの「タスク」の割り当て（アサイン）と、「サービス」においてタスク実行遷移の管理を行う制御部をいう。
【００３３】
コントロール・ユニット２００の通信部２０２は、コントロール・ユニット２００に接続されているプロセッシング・エレメントが行う特定の機能に関する機能情報を外部からの要求に応じて出力する。なお、プロセッシング・エレメント１００やコントロール・ユニット２００の詳細な機能については、後述する。「サービス」とは、一つ以上の関連を持つタスクの集合をいう。「サービス」は、「タスク」よりもまとまった意味のある処理を実現するものである。
【００３４】
次に、プロセッシング・エレメントとコントロール・ユニットとの他の構成について説明する。図２は、プロセッシング・エレメントとコントロール・ユニットとを用いるネットワーク構成を示している。
【００３５】
１つのプロセッシング・エレメント１００と、１つのコントロール・ユニット２００とが、ネットワークを介して接続されている。これは、ネットワークの最小構成の例である。プロセッシング・エレメント１００とコントロール・ユニット２００とは、情報通信が可能な通信経路で接続されていれば良い。
【００３６】
次に、プロセッシング・エレメントとコントロール・ユニットとの他の構成について説明する。図３は、他の構成例を示している。マザーボード３０１上に、１つのコントロール・ユニットＣＵと、３つのプロセッシング・エレメントＰＥ１、ＰＥ２、ＰＥ３とが搭載されている。コントロール・ユニットＣＵとプロセッシング・エレメントＰＥ１、ＰＥ２、ＰＥ３とは、それぞれシステムバス３０２で接続されている。
【００３７】
図４は、さらに他の構成を示している。マザーボード４０１には、コントロール・ユニットＣＵ１とプロセッシング・エレメントＰＥ１とが搭載されている。また、Ｉ／Ｏボード４０２には、コントロール・ユニットＣＵ２とプロセッシング・エレメントＰＥ２とが搭載されている。そして、コントロール・ユニットＣＵ１、ＣＵ２、プロセッシング・エレメントＰＥ１、ＰＥ２との間は、ペリフェラル用バス４０３で結合されている。ペリフェラル用バス４０３として、ＵＳＢやＰＣＩバスを用いることができる。
【００３８】
図５は、別の構成を示している。一方のＬＡＮ５０１ａには、プロセッシング・エレメントＰＥ１、ＰＥ２、ＰＥ３とコントロール・ユニットＣＵ１とが接続されている。他方のＬＡＮ５０１ｂには、プロセッシング・エレメントＰＥ４、ＰＥ５、ＰＥ６とコントロール・ユニットＣＵ２とが接続されている。そして、ＬＡＮ５０１ａとＬＡＮ５０１ｂとは、インターネット５０２を介して接続されている。
【００３９】
このように、本発明のプロセッシング・エレメントとコントロール・ユニットとの組合わせにより、図１に示す最小構成から、図５で示すインターネットを介する地球規模の構成まで包含することができる。
【００４０】
図６は、本発明の分散処理システムの概略構成を示している。ここで、ステップ１〜ステップ４までを行う「サービス」を考える。具体的には、「ステップ１」、「ステップ２」、「ステップ３」、「ステップ４」は、タスクに対応する。そして、ステップ１〜ステップ４の一連の処理の集合が「サービス」に対応する。
【００４１】
従来、インターネット上の経路情報に関しては、特定のコンピュータがインターネットに接続されているすべてのコンピュータの情報を有しているわけではない。ルータと呼ばれる経路制御端末がサブネットワークの情報および近隣のサブネットワークの情報のみを管理している。そして、必要に応じて近隣のネットワークに必要な情報を問い合わせるシステムとなっている。
【００４２】
本実施例では、プロセッシング・エレメントのサブネットワーク情報と近隣のサブネットワーク情報のみを管理するコントロール・ユニット（ルータに相当する）を設ける。コントロール・ユニットには、ネットワーク上の一部のプロセッシング・エレメントが接続されている。
【００４３】
次に、図６、図７に基づいて、本発明の概略構成について説明する。手順、構成等の詳細な内容については、後述する。
【００４４】
（単一のネットワーク内における処理）
図６において、コントロール・ユニットＣＵ１０には、４つのプロセッシング・エレメントＰＥ１、ＰＥ２、ＰＥ３、ＰＥ４が接続されている。タスク実行プロセッシング・エレメントＰＥ０は、サービスの実行要求を出力する。
【００４５】
ここで、サービスを実行するためには、「ステップ１」を行う機能のプロセッシング・エレメントＰＥ１と、「ステップ２」を行う機能のプロセッシング・エレメントＰＥ２と、「ステップ３」を行う機能のプロセッシング・エレメントＰＥ３と、「ステップ４」を行う機能のプロセッシング・エレメントＰＥ４とが必要となる場合を考える。
【００４６】
ここで、コントロール・ユニットＣＵ１０には、これら必要なプロセッシング・エレメントＰＥ１〜ＰＥ４が全て接続されている。コントロール・ユニットＣＵ１０は、それぞれ自分自身に接続されているプロセッシング・エレメントと、その機能を認識している。
【００４７】
そして、コントロール・ユニットＣＵ１０に接続されているプロセッシング・エレメントＰＥ１〜ＰＥ４により、ステップ１〜４を実行できる。このように、図６は、単一のネットワーク内において、特定のサービスを実行できる場合を示している。
【００４８】
（複数のネットワークにまたがる処理）
さらに、図７を用いて、複数のネットワークにまたがる処理を行う場合について概略を説明する。ステップ１を実行するためのプロセッシング・エレメントＰＥ１は、コントロール・ユニットＣＵ１０２に接続されている。ステップ２を実行するためのプロセッシング・エレメントＰＥ２は、コントロール・ユニットＣＵ４５に接続されている。
【００４９】
ステップ３を実行するためのプロセッシング・エレメントＰＥ３は、コントロール・ユニットＣＵ１０２に接続されている。さらに、ステップ４を実行するためのプロセッシング・エレメントＰＥ４は、コントロール・ユニットＣＵ２７に接続されている。
【００５０】
プロセッシング・エレメントＰＥ０（クライアント・プロセッシング・エレメント）は、接続されているコントロール・ユニットＣＵ４５に対して、サービス要求を出す。コントロール・ユニットＣＵ４５は、処理内容に適したプロセッシング・エレメントを検索する。そして、処理順序（ルーティング順序）を組み立てる。サーバなどからデータが入力されるとルーティング順序に従って処理を行い、処理結果をプロセッシング・エレメント０に返す。これにより、ステップ１〜ステップ４を行うことができる。なお、詳細な手順は後述する。
【００５１】
ここで、プロセッシング・エレメント同士の接続は、以下の（１）〜（３）のいずれでも良い。なお、接続方法は、有線に限らず、無線方式でも良い。
（１）ネットワークケーブル（イーサネット（登録商標）、ＩｎｆｉｎｉＢａｎｄ、Ｍｙｒｉｎｅｔなど） 
（２）プロセッサ内部バス（ＡＭＢＡ、ハイパートランスポートなど）
（３）ペリフェラル接続用バス（ＵＳＢ、ＰＣＩなど）
【００５２】
次に、具体例を用いて本実施例を説明する。ここでは、ＪＰＥＧデコードを行う場合について考える。図８は、ＪＰＥＧデコードを行う処理手順を示すフローチャートである。
【００５３】
図８のステップＳ２０１において、ＪＰＥＧファイルの解析を行う。ステップＳ２０２において、エントロピー復号化を行う。ステップＳ２０３において、逆量子化を行う。ステップＳ２０４において、ＩＤＣＴ（逆離散コサイン変換）を行う。ステップＳ２０５において、色信号の変換を行う。ステップＳ２０６において、結果表示を行う。そして、ＪＰＥＧのデコード処理が終了する。
【００５４】
上述したように、「タスク」とは、あるまとまった機能の実行単位を言う。図８で示すＪＰＥＧデコードの例では、ＪＰＥＧデコードの各ステップは、全て一つのタスクで構成されている。例えば、「逆量子化」は、一つのタスクである。各タスクにはタスク識別子（以下、適宜「ＴＩＤ」という）と呼ぶ識別番号が付されている。そして、タスクが実現する機能とＴＩＤは一対一で対応している。
【００５５】
また、「サービス」とは、上述したように、一つ以上の関連を持つタスクの集合を言う。ＪＰＥＧデコード処理は、サービスの一例である。サービスには、サービス識別子（以下、適宜「ＳＩＤ」と言う）と呼ぶ一意の識別番号が付されている。
【００５６】
また、サービスの実行を要求するプロセッシング・エレメントを、特にサービス実行要求プロセッシング・エレメントと呼ぶ。
【００５７】
なお、一つのタスクが一つのサービスとなる場合もある。例えば、ＪＰＥＧデコードの例において、ＩＤＣＴの処理がサービスとして要求されたときは、入力に対してＩＤＣＴ処理を行った結果を返すことになる。
【００５８】
さらに、サービス実行要求プロセッシング・エレメントは、結果データを受信する必要はない。他のプロセッシング・エレメントでデータの表示、格納等を行い、サービスが終了する場合もある。
【００５９】
図９の（ａ）は、処理モデルの概略を示している。処理モデルは、１つのコントロール・ユニットＣＵ１と、１つのサービス実行要求プロセッシング・エレメントＰＥ０と、ＰＥ１、ＰＥ２を含む２つ以上のタスク処理プロセッシング・エレメントから構成されている。なお、サービス実行要求プロセッシング・エレメントＰＥ０は、タスク実行プロセッシング・エレメントとしても機能することができる。
【００６０】
図９の（ｂ）は、プロセッシング・エレメントＰＥ０、ＰＥ１、ＰＥ２（以下、適宜「プロセッシング・エレメントＰＥ０等」という）やコントロール・ユニットＣＵ１が有している情報の構成を示している。図９の（ｂ）において、「タイプ」は、コントロール・ユニットまたはプロセッシング・エレメントの別を示している。「役割」は、「タスクを実行する」、「タスクを割り当てる」、「タスクの実行を要求する」等を示している。タスク識別子は、「逆量子化」、「６４ビット高精度ＩＤＣＴ」等に割り当てられている。
【００６１】
次に、本処理システムで使用するデータ構造の概略について説明する。
【００６２】
（プロセッシング・エレメント接続表）
コントロール・ユニットＣＵ１はプロセッシング・エレメントＰＥ０等の接続を検知すると、そのプロセッシング・エレメントＰＥ０等の情報を、このプロセッシング・エレメントＰＥ０等へ問い合わせる。そして、プロセッシング・エレメントＰＥ０等の情報を取得して、自分（コントロール・ユニットＣＵ１）に接続されているプロセッシング・エレメントＰＥ０等を管理するための一覧表を作成する。これをプロセッシング・エレメント接続表と言う。
【００６３】
図１０に示すプロセッシング・エレメント接続表には、「接続開始時間」、「ＩＰアドレス」、「プロセッサ・タイプ」、「処理能力」、「メモリ」「タスク識別子」等の情報が記述されている。プロセッシング・エレメント接続表の作成タイミングについては、後述する。
【００６４】
（タスク実行遷移表）
図１１に示すタスク実行遷移表は、入出力を行なうプロセッシング・エレメントＰＥ０等と、タスクを実行するプロセッシング・エレメントＰＥ０等のＩＰアドレスとタスク識別子とを、それぞれ実行する順序に並べた一覧表である。コントロール・ユニットＣＵ１は、タスク実行遷移表に基づいてプロセッシング・エレメントＰＥ０等にタスクの割り当てを行う。
【００６５】
タスク実行遷移表には、実行順に、「タスク識別子（ＴＩＤ）」、「入力ＩＰ］、「実行ＩＰ」、「出力ＩＰ」が記述されている。
【００６６】
（タスク実行要求）
プロセッシング・エレメントＰＥ０等に割り当てたタスクの実行を要求するために、上述のタスク実行遷移表の各行に記述されている情報、即ち、実行順序、ＴＩＤ、入力ＩＰ、実行ＩＰ、出力ＩＰをタスク実行要求として、コントロール・ユニットＣＵ１からそれぞれのプロセッシング・エレメントＰＥ０等に送出する。
【００６７】
実行順序が第１番目のタスクを実行するプロセッシング・エレメントは、タスク実行要求を受け付けると、タスクの実行を開始する。他のプロセッシング・エレメントは自分の直前にタスク実行を行なうプロセッシング・エレメントの実行が終わるまで待機する。
【００６８】
（タスク実行完了とサービス実行完了）
サービスの終端に対応するタスクを実行するプロセッシング・エレメントは、タスクの実行が完了したらコントロール・ユニットＣＵ１にタスク実行完了を送出する。タスク実行完了を受信後、コントロール・ユニットＣＵ１は、サービスの実行を完了したことをサービス実行要求プロセッシング・エレメントＰＥ０に送信し、再び要求の待機状態に入る。
【００６９】
（サービス−タスク対応表）
サービス−タスク対応表は、サービスとサービスを構成するタスクの対応を、識別子を使って一覧にした表である。図１２は、サービス−タスク対応表の概略を示している。コントロール・ユニットＣＵ１は、コントロール・ユニットＣＵ１の初期化時に、サービス−タスク対応表を管理しているサーバから取得してくる。
【００７０】
サービス−タスク対応表には、サービス識別子（ＳＩＤ）とタスク識別子（ＴＩＤ）とが記述されている。
【００７１】
（コントロール・ユニットの処理フロー）
図１３は、コントロール・ユニットＣＵ１の処理手順を示すフローチャートである。コントロール・ユニットＣＵ１は、以下の処理（１）、（２）、（３）、（４）を図１３に示すフローチャートの手順に従って行う。
【００７２】
（１）プロセッシング・エレメントの接続または切断の検出、
（２）サービス実行要求の受信と応答（受付、拒否）、タスク実行要求の送信、
（３）タスク実行完了受信とサービス実行完了送信、
（４）プロセッシング・エレメント資源の確保（ロック）と解放（リリース）。
【００７３】
ステップＳ７０１において、コントロール・ユニットＣＵ１は、上述したプロセッシング・エレメント接続表を、例えば電源ＯＮで初期化する。また、コントロール・ユニットＣＵ１は、タスク実行遷移表を初期化する。
【００７４】
ステップＳ７０２において、コントロール・ユニットＣＵ１は、サービス−タスク対応表をサービス−タスク対応表を管理しているサーバから取得してくる。
【００７５】
ステップＳ７０３において、コントロール・ユニットＣＵ１はプロセッシング・エレメントＰＥ０等の接続が検出されたか、否かを判断する。ステップＳ７０３の判断結果が偽（Ｎｏ）のとき、ステップＳ７０４へ進む。ステップＳ７０３の判断結果が真（Ｙｅｓ）のとき、ステップＳ７０５へ進む。
【００７６】
ステップＳ７０４において、プロセッシング・エレメントＰＥ０等が切断されたか、否かを判断する。ステップＳ７０４の判断結果が真（Ｙｅｓ）のとき、ステップＳ７０５へ進む。また、ステップＳ７０３の判断結果が真のときも、ステップＳ７０５へ進む。
【００７７】
ステップＳ７０５において、コントロール・ユニットＣＵ１は、接続または切断したプロセッシング・エレメントＰＥ０等の情報、特に機能情報を確認する。そして、ステップＳ７０６において、プロセッシング・エレメント接続表を更新する。そして、ステップＳ７０３へ戻る。
【００７８】
ステップＳ７０４の判断結果が偽のとき、ステップＳ７０７へ進む。ステップＳ７０７において、コントロール・ユニットＣＵ１は、サービス実行要求プロセッシング・エレメントＰＥ０からサービス実行要求を受信したか、否かを判断する。ステップＳ７０７の判断結果が真のとき、ステップＳ７０８へ進む。
【００７９】
ステップＳ７０８において、コントロール・ユニットＣＵ１は、サービス−タスク対応表を検索する。次に、ステップＳ７０９において、サービス実行要求受付可能か、否かを判断する。ステップＳ７０９の判断結果が真のとき、ステップＳ７１０へ進む。
【００８０】
なお、ステップＳ７０８の手順は、サービス−タスク対応表を検索する場合に限られない。例えば、サービスを構成するタスクが何であるかが分かれば良い。ここで、テーブルというデータ構造である必要はない。また、サービス−タスク対応表を検索する必要も無い場合もある。例えば、予めサービス要求時にサービスを構成するタスクの情報も一緒に取得（受信）するような場合である。
【００８１】
ステップＳ７１０において、ＪＰＥＧデコードの処理を実行するために必要なプロセッシング・エレメントＰＥ０等を確保（ロック）する。ステップＳ７１１において、サービス要求受理の信号をサービス実行要求プロセッシング・エレメントＰＥ０に送信する。ステップＳ７１２において、コントロール・ユニットＣＵ１は、上述したタスク実行遷移表を作成する。ステップＳ７１３において、コントロール・ユニットＣＵ１は、タスク実行の要求をタスクを実行する各プロセッシング・エレメントＰＥ０等に送信する。
【００８２】
なお、ステップＳ７１２において、タスク実行遷移に関して、情報を取得できれば良い。このため、必ずしもタスク実行遷移表を作成する場合に限られない。例えば、サービスを構成するタスク情報を取得したとき、同時に実行順序も分かるようなデータ構造になっている場合である。
【００８３】
ステップＳ７０９の判断結果が偽のとき、ステップＳ７１６へ進む。ステップＳ７１６において、コントロール・ユニットＣＵ１は、サービスを受け付けることができないため、サービス受付拒否通知をサービス実行要求プロセッシング・エレメントＰＥ０に送信する。そして、ステップＳ７０３へ戻る。
【００８４】
ステップＳ７０７の判断結果が偽のとき、ステップＳ７１７へ進む。ステップＳ７１７において、コントロール・ユニットＣＵ１は、タスク実行完了をタスクを実行する各プロセッシング・エレメントＰＥ０等から受信したか、否かについて判断する。ステップＳ７１７の判断結果が真のとき、ステップＳ７１８へ進む。
【００８５】
ステップＳ７１８において、コントロール・ユニットＣＵ１は、タスクを実行したプロセッシング・エレメントＰＥ０等を解放（リリース）する。ステップＳ７１９において、コントロール・ユニットＣＵ１は、サービス実行を完了したことをサービス実行要求プロセッシング・エレメントＰＥ０に送信する。そして、ステップＳ７０３へ戻る。
【００８６】
ステップＳ７１７の判断結果が偽のとき、ステップＳ７２０へ進む。ステップＳ７２０において、コントロール・ユニットＣＵ１は、実行完了要求、例えば、電源がＯＦＦされたか、否かを判断する。ステップＳ７２０の判断結果が真のとき、コントロール・ユニットＣＵ１の実行処理は終了する。ステップＳ７２０の判断結果が偽のとき、ステップＳ７０３へ戻る。この手順において、プロセッシング・エレメント接続表は、プロセッシング・エレメント接続情報に対応する。タスク実行遷移表は、タスク実行遷移情報に対応する。サービス−タスク対応表は、サービス−タスク対応情報に対応する。タスク実行遷移表は、タスク実行遷移情報に対応する。なお、各プロセッシング・エレメントＰＥ０等が情報を保持するときのデータ構造は、どのような構造でも良い。
【００８７】
（ＪＰＥＧデコード処理の例）
次に、図１４〜図１８に基づいて、図８に示した処理モデルにおけるＪＰＥＧデコード処理の流れを時系列に従って説明する。この例では、ユーザＵが携帯端末３００上において、「ｉｍａｇｅ．ｊｐｇ」というＪＰＥＧ画像を表示させる場合を考える。ユーザＵがファイルを指定すると、プロセッシング・エレメント・ネットワーク上でＪＰＥＧデコードを分散処理し、結果を携帯端末３００上に表示する。
【００８８】
（前提条件）
以下の説明においては、以下の（ａ）〜（ｄ）の内容を前提条件とする。
（ａ）コントロール・ユニットＣＵ１は必要な初期化処理を完了していること
（ｂ）プロセッシング・エレメントの接続を検出して、プロセッシング・エレメント接続表の更新済みであること
（ｃ）サービス−タスク対応表の取得済みであること
（ｄ）コントロール・ユニットＣＵ１は、何らかの方法で、携帯端末に搭載されたプロセッシング・エレメントＰＥ０上で「逆量子化」、「ＩＤＣＴ」以外の全処理が実行可能であると知っていること
【００８９】
図１４において、まず、（１）ユーザＵは、携帯端末上で「ｉｍａｇｅ．ｊｐｇファイル」のアイコンをダブルクリックするなどしてＪＰＥＧファイルの表示を要求する。
【００９０】
（２）携帯端末は、ＪＰＥＧファイルのデコード処理が必要と判断する。これにより、コントロール・ユニットＣＵ１にＪＰＥＧデコード処理のサービス実行要求を送信する。
【００９１】
（３）コントロール・ユニットＣＵ１は、サービス実行要求を受信すると、ＪＰＥＧデコーダを表すサービス識別子（ＩＤ）８０１に基づいて、サービス−タスク対応表８０２を参照する。そして、コントロール・ユニットＣＵ１は、サービス識別子８０１からサービスに必要なタスクとその実行順序８０３を取得する。
【００９２】
図１５の（ａ）において、コントロール・ユニットＣＵ１は、プロセッシング・エレメント（ＰＥ）接続表９０１を参照する。そして、図１５の（ｂ）に示すように、（４）コントロール・ユニットＣＵ１に接続しているプロセッシング・エレメントＰＥ０等を用いて、要求されたサービスの実行が可能かどうか判断する。
【００９３】
（５）コントロール・ユニットＣＵ１は、サービスの実行が可能と判断したとき、必要なプロセッシング・エレメント資源を確保（ロック）する。これにより、サービスが実行できるだけの計算資源を確保できる。そして、サービス要求受理の信号をサービス実行要求プロセッシング・エレメントＰＥ０に送信する。
【００９４】
図１６に示すように、（６）コントロール・ユニットＣＵ１は、各タスクを実行するプロセッシング・エレメントＰＥ０等の割り当てと実行順序を記述したタスク実行遷移表１００１を作成する。
【００９５】
（７）コントロール・ユニットＣＵ１は、タスク実行遷移表のタスク割り当てに従って、タスク実行要求を実行順序の遅いプロセッシング・エレメントから早いプロセッシング・エレメントに順番に送信する。ここで、データを入力または出力するプロセッシング・エレメントＰＥ０等のＩＰアドレスと実行するプロセッシング・エレメントＰＥ０等のＩＰアドレスが等しい場合は、プロセッシング・エレメント内部のタスク実行を待って、同一のプロセッシング・エレメント内で連続してタスクを実行するものとする。
【００９６】
図１７に示すように、（８）実行順序が第１番のタスク実行要求を受け取ったプロセッシング・エレメントＰＥ０は、タスクの実行を開始し、実行結果を出力先ＩＰアドレスで指定された次のプロセッシング・エレメントＰＥ１に送信する。
【００９７】
そして、図１８に示すように、（９）実行順序が最後のタスク実行が、例えばプロセッシング・エレメントＰＥ６により実行されると、プロセッシング・エレメントＰＥ６（不図示）は、タスク実行完了をコントロール・ユニットＣＵ１に送信する。
【００９８】
（１０）コントロール・ユニットＣＵ１は、タスク実行完了を受信すると、確保（ロック）していたプロセッシング・エレメント資源をリリースする。これにより、他のサービスが使用可能な状態に戻る。そして、サービス実行完了をサービス実行要求プロセッシング・エレメントＰＥ０に返す。（１１）コントロール・ユニットＣＵ１は、次のサービス実行要求を受信するまで待機する。
【実施例２】
【００９９】
次に、本発明の実施例２に係る分散処理方法について説明する。図１９、図２０、図２１は、本実施例に係る分散処理方法の手順を示すフローチャートである。
【０１００】
ステップＳ１９００において、コントロール・ユニットＣＵ１は、上述したプロセッシング・エレメント接続表を初期化する。このとき、コントロール・ユニットＣＵ１は、所定階層内(例えば階層数＝１)におけるコントロール・ユニットのプロセッシング・エレメント接続表の情報も取得している。階層の概念は後述する。また、コントロール・ユニットＣＵ１は、タスク実行遷移表を初期化する。
【０１０１】
階層とは、自コントロール・ユニットから他コントロール・ユニットへ情報が到達するまでの通信距離を表したものをいう。通信距離は任意の指標で定義してよいが、情報が到達するまでの時間（応答速度）によって表すのが最も一般的である。応答速度による分類のほか、通信範囲、例えばコントロール・ユニットによるサブネットワークを考えたときに自分が属するサブネットワーク内にあるか、否かによっても分類できる。
【０１０２】
タスクの割り当て、またはサービス検索は、階層数が０のコントロール・ユニットから階層数がより大きいコントロール・ユニットに対して順に行う。該当する条件が複数ある場合は、最小の階層数を割り当てる。
【０１０３】
（応答速度による分類の階層値例）
自コントロール・ユニット：０
応答速度が最も速い２つのコントロール・ユニット  ：１
応答速度が５０ｍｓ以下のコントロール・ユニット  ：２
応答速度が２００ｍｓ以下のコントロール・ユニット：３
その他のコントロール・ユニット：４
【０１０４】
（通信範囲による分類の階層値例）
自コントロール・ユニット：０
同一サブネットワーク内にあるコントロール・ユニット：１
その他のコントロール・ユニット：２
【０１０５】
また、これらの組み合わせで階層数を決めても良い。この場合は、例えば、２つの分類によって決まる階層数の和で表現する。同一サブネットワーク内にあり、応答速度が最も早いコントロール・ユニットは１＋１＝２となる。
【０１０６】
ステップＳ１９０１において、コントロール・ユニットＣＵ１は、サービス−タスク対応表をサービス−タスク対応表を管理しているサーバなどから取得してくる。
【０１０７】
ステップＳ１９０２において、コントロール・ユニットＣＵ１はプロセッシング・エレメントＰＥ０等の接続が検出されたか、否かを判断する。ステップＳ１９０２の判断結果が真（Ｙｅｓ）のとき、ステップＳ１９０３へ進む。
【０１０８】
ステップＳ１９０３において、コントロール・ユニットＣＵ１は、接続したプロセッシング・エレメントＰＥ０等の情報、特に機能情報を確認する。ステップＳ１９０４において、プロセッシング・エレメント接続表を更新する。このとき、コントロール・ユニットＣＵ１は、自分自身に接続しているプロセッシング・エレメントの接続が変わったとき、所定の階層内（例えば階層数＝１）のコントロール・ユニットへ、接続変更の情報を送る。そして、ステップＳ１９０２へ戻る。なお、上述の所定の階層数は自由に設定できる。
【０１０９】
ステップＳ１９０２の判断結果が偽のとき、ステップＳ１９０５へ進む。ステップＳ１９０５において、プロセッシング・エレメントＰＥ０等が切断されたか、否かを判断する。ステップＳ１９０５の判断結果が真（Ｙｅｓ）のとき、ステップＳ１９０６へ進む。
【０１１０】
ステップＳ１９０６において、コントロール・ユニットＣＵ１は、切断したプロセッシング・エレメントＰＥ０等の情報、特に機能情報を確認する。そして、ステップＳ１９０７において、プロセッシング・エレメント接続表を更新する。このとき、切断されたプロセッシング・エレメントに関しても、コントロール・ユニットＣＵ１は、自分自身に接続しているプロセッシング・エレメントの接続が変わったとき、所定の階層内（例えば階層数＝１）のコントロール・ユニットへ、接続変更の情報を送る。そして、ステップＳ１９０２へ戻る。
【０１１１】
ステップＳ１９０５の判断結果が偽のとき、ステップＳ１９０８へ進む。ステップＳ１９０８において、コントロール・ユニットＣＵ１は、サービス実行要求プロセッシング・エレメントＰＥ０等からサービス実行要求を受信したか、否かを判断する。ステップＳ１９０８の判断結果が真のとき、ステップＳ１９０９へ進む。
【０１１２】
ステップＳ１９０９において、コントロール・ユニットＣＵ１は、サービス−タスク対応表を検索する。次に、ステップＳ１９１０において、タスク探索がタイムアウトしたか否かを判断する。
【０１１３】
ここで、「タスク探索」とは、タスク処理が可能なプロセッシング・エレメントを探索することである。まず、自コントロール・ユニットＣＵ１に接続されたプロセッシング・エレメントＰＥ０等にタスク処理の割り当てが可能かどうか判断する。自コントロール・ユニットＣＵ１に接続されたプロセッシング・エレメントＰＥ０等にタスクの処理割り当てが不可能な場合は、他コントロール・ユニットにタスク処理が可能なプロセッシング・エレメントが接続されているかどうか探索する。具体的には他のコントロール・ユニットに対して、タスク探索要求を送信する。
【０１１４】
また、「タイムアウト」は、ある処理に対する制限時間のことである。例えば、（１）実行中のタスクに対するタイムアウト、（２）他のコントロール・ユニットへのタスク探索に対するタイムアウトの２種類を設けることができる。
【０１１５】
ステップＳ１９１０の判断結果が偽のとき、ステップＳ１９１１へ進む。ステップＳ１９１１において、サービスを構成する全てのタスクを探索したか、否かが判断される。ステップＳ１９１１の判断結果が真のとき、ステップＳ１９１２へ進む。ステップＳ１９１２において、全てのタスクが実行可能か否かが判断される。なお、本実施例において、コントロール・ユニットＣＵ１のプロセッシング・エレメント接続表には、コントロール・ユニットＣＵ１自身に接続されているプロセッシング・エレメントの接続表に加えて、さらに所定の階層内（例えば、探索階層数＝１）の接続表が含まれている。即ち、本実施例では、コントロール・ユニットＣＵ１に隣接するコントロール・ユニットに関するプロセッシング・エレメント接続表が含まれている。プロセッシング・エレメント接続表はＳ１９００、Ｓ１９０４、Ｓ１９０７において初期化および更新され、最新の探索階層数＝１の接続表を保持している。以下、この「探索階層数＝１」の接続表を、適宜「プロセッシング・エレメント（ＰＥ）接続表」に含むものとする。
【０１１６】
ステップＳ１９１２の判断結果が真のとき、ステップＳ１９１３へ進む。ステップＳ１９１３において、サービス要求受理の信号をサービス要求プロセッシング・エレメントに送信する。ステップＳ１９１４において、コントロール・ユニットＣＵ１は、上述したタスク実行遷移表を作成する。ステップＳ１９１５において、コントロール・ユニットＣＵ１は、タスク実行の要求を送信する。そして、ステップＳ１９０２へ戻る。
【０１１７】
また、ステップＳ１９１２の判断結果が偽のとき、ステップＳ１９１０へ戻る。
【０１１８】
ステップＳ１９０８の判断結果が偽のとき、ステップＳ１９２３において、コントロール・ユニットＣＵ１は、実行完了要求、例えば、電源がＯＦＦされたか、否かを判断する。ステップＳ１９２３の判断結果が真のとき、コントロール・ユニットＣＵ１の実行処理は終了する。ステップＳ１９２３の判断結果が偽のとき、ステップＳ１９２７へ進む。
【０１１９】
また、ステップＳ１９１０の判断結果が真のとき、ステップＳ１９２４へ進む。ステップＳ１９２４において、コントロール・ユニットＣＵ１は、サービスを受け付けることができないため、サービス受付拒否通知をサービス要求ＰＥに送信する。そして、ステップＳ１９０２へ戻る。
【０１２０】
上述したように、ステップＳ１９１１の判断結果が偽のとき、ステップＳ１９１６へ進む。ステップＳ１９１６において、コントロール・ユニットＣＵ１は、上述のプロセッシング・エレメント接続表を探索する。
【０１２１】
ステップＳ１９１７において、コントロール・ユニットＣＵ１は、タスクの実行が可能か、否かを判断する。ステップＳ１９１７の判断結果が偽のとき、ステップＳ１９１８へ進む。
【０１２２】
ステップＳ１９１８において、コントロール・ユニットＣＵ１は、探索階層数を減少（デクリメント）させる。「探索階層数」とは、上述の通信距離によって定められる階層数と同義であり、タスク探索時に要した階層数の総和である。ここでは、探索階層数を制限する。これにより、探索により探索階層数が上限に達したら、探索を終了するように設定する。例えば、コントロール・ユニットＣＵ１からコントロール・ユニットＣＵ２、コントロール・ユニットＣＵ２からコントロール・ユニットＣＵ３までの階層数がそれぞれ１であった場合、コントロール・ユニットＣＵ１→コントロール・ユニットＣＵ２→コントロール・ユニットＣＵ３という経路は探索階層数＝２になる。
【０１２３】
ステップＳ１９１９において、探索階層数＝０か、否かが判断される。ステップＳ１９１９の判断結果が偽のとき、ステップＳ１９２２へ進む。
【０１２４】
ステップＳ１９２２において、外部のコントロール・ユニットにタスク探索要求を送信する。そして、ステップＳ１９１０へ戻る。ここで外部とは、所定の探索階層数より多い探索階層数を持つコントロール・ユニットを意味し、本実施例では２以上を指す。
【０１２５】
ステップＳ１９１７の判断結果が真のとき、ステップＳ１９２５において、例えば、上述の例では、ＪＰＥＧデコードの処理を実行するために必要なプロセッシング・エレメントＰＥ０等を確保（ロック）する。
【０１２６】
ステップＳ１９１９において、判断結果が真のとき、ステップＳ１９２６において、コントロール・ユニットＣＵ１は、サービスを受け付けることができない。なぜなら、探索階層数の上限が１である場合は、プロセッシング・エレメント（ＰＥ）接続表を探索しただけで、探索階層数の上限に達するためである。従って、サービス受付拒否通知をサービス要求ＰＥに送信する。そして、ステップＳ１９０２へ戻る。
【０１２７】
さらに、ステップＳ１９２３の判断結果が偽のときの説明を続ける。このとき、ステップＳ１９２７へ進む。ステップＳ１９２７において、タスク探索の要求を受信したか、否かが判断される。
【０１２８】
ステップＳ１９２７の判断結果が真のとき、ステップＳ１９２８において、コントロール・ユニットＣＵ１は、プロセッシング・エレメント接続表を探索する。
【０１２９】
ステップＳ１９２９において、タスクの実行が可能か、否かが判断される。ステップＳ１９２９の判断結果が真のとき、ステップＳ１９３０において、例えば、上述の例では、ＪＰＥＧデコードの処理を実行するために必要なプロセッシング・エレメントを確保（ロック）する。
【０１３０】
ステップＳ１９３１において、タスク実行が可能である応答を要求コントロール・ユニットに送信する。そして、ステップＳ１９０２へ戻る。
【０１３１】
ステップＳ１９２９の判断結果が偽のとき、ステップＳ１９３２において、探索階層数の減少（デクリメント）を行う。そして、ステップＳ１９３３へ進む。
【０１３２】
ステップＳ１９３３において、探索階層数＝０か、否かが判断される。ステップＳ１９３３の判断結果が偽のとき、ステップＳ１９３４へ進む。ステップＳ１９３４において、経路履歴上に存在しないコントロール・ユニットが接続されているか、否かが判断される。
【０１３３】
ステップＳ１９３４の判断結果が真のとき、ステップＳ１９３５において、コントロール・ユニットＣＵ１は、経路履歴を更新する。経路履歴の更新は、例えば、自コントロール・ユニットのＩＰアドレスを書き込むことをいう。
【０１３４】
ステップＳ１９３６において、探索していないコントロール・ユニットにタスク探索要求を送信する。そして、ステップＳ１９０２へ戻る。
【０１３５】
ステップＳ１９３３の判断結果が真のときは、探索階層数の上限に達したため探索を中断する。また、ステップＳ１９３４の判断結果が偽のときは、すべてのＣＵを探索したと判断し、探索を中断する。そして、どちらの場合もステップＳ１９０２へ戻る。
【０１３６】
ステップＳ１９２７の判断結果が偽のときの説明を続ける。このとき、ステップＳ１９３９へ進む。ステップＳ１９３９において、コントロール・ユニットＣＵ１は、タスク実行完了を受信したか、否かについて判断する。ステップＳ１９３９の判断結果が真のとき、ステップＳ１９４０へ進む。
【０１３７】
ステップＳ１９４０において、コントロール・ユニットＣＵ１は、タスクを実行したプロセッシング・エレメントＰＥ０等を解放（リリース）する。ステップＳ１９４１において、コントロール・ユニットＣＵ１は、サービス実行を完了したことをサービス要求ＰＥに送信する。そして、ステップＳ１９０２へ戻る。
【０１３８】
ステップＳ１９３９の判断結果が偽のとき、ステップＳ１９０２へ戻る。
【０１３９】
本発明における、プロセッシング・エレメントの機能実現方法は、ハードウェアアクセラレータや汎用プロセッサ上のソフトウェアを用いることができる。また、ハードウェアの構成を動的に再構成できる、いわゆるリコンフィギュアラブルプロセッサでも良い。さらに、ソフトウェアやリコンフィギュアラブルプロセッサにおける経路情報は、実行時に動的にダウンロードする場合も含むものをいう。
【産業上の利用可能性】
【０１４０】
以上のように、本発明に処理システムは、特に分散処理システムに有用である。
【図面の簡単な説明】
【０１４１】
【図１】本発明におけるプロセッシング・エレメント、コントロール・ユニットの概略構成を示す図である。
【図２】本発明におけるプロセッシング・エレメントとコントロール・ユニットとの接続を示す図である。
【図３】本発明におけるプロセッシング・エレメントとコントロール・ユニットとの他の接続を示す図である。
【図４】本発明におけるプロセッシング・エレメントとコントロール・ユニットとのさらに他の接続を示す図である。
【図５】本発明におけるプロセッシング・エレメントとコントロール・ユニットとの別の接続を示す図である。
【図６】本発明における処理システムの概略構成を示す図である。
【図７】本発明における他の処理システムの概略構成を示す図である。
【図８】ＪＰＥＧデコードの処理を示すフローチャートである。
【図９】実施例１における処理モデルを示す図である。
【図１０】実施例１におけるプロセッシング・エレメント接続表の構成を示す図である。
【図１１】実施例１におけるタスク実行遷移表の構成を示す図である。
【図１２】実施例１におけるサービス−タスク対応表の構成を示す図である。
【図１３】実施例１におけるコントロール・ユニットの処理手順を示すフローチャートである。
【図１４】実施例１におけるＪＰＥＧデコードの処理の流れを示すフローチャートである。
【図１５】実施例１におけるＪＰＥＧデコードの処理の流れを示す他のフローチャートである。
【図１６】実施例１におけるＪＰＥＧデコードの処理の流れを示すさらに他のフローチャートである。
【図１７】実施例１におけるＪＰＥＧデコードの処理の流れを示す別のフローチャートである。
【図１８】実施例１におけるＪＰＥＧデコードの処理の流れを示すさらに別のフローチャートである。
【図１９】本発明の実施例２におけるコントロール・ユニットの処理手順を示すフローチャートである。
【図２０】実施例２におけるコントロール・ユニットの処理手順を示す他のフローチャートである。
【図２１】実施例２におけるコントロール・ユニットの処理手順を示すさらに他のフローチャートである。
【符号の説明】
【０１４２】
１００  プロセッシング・エレメント
１０１  処理部
１０２  データ保持部
１０３  通信部
２００  コントロール・ユニット
２０１  処理部
２０２  通信部
３００  携帯端末
３０１  マザーボード
３０２  システムバス
４０１  マザーボード
４０２  Ｉ／Ｏボード
４０３  ペリフェラル用バス
５０１ａ、５０１ｂ  ＬＡＮ
ＰＥ０、ＰＥ１等  プロセッシング・エレメント
ＣＵ１等  コントロール・ユニット
【図１】
2008097498.tif 000003
【図２】
2008097498.tif 000004
【図３】
2008097498.tif 000005
【図４】
2008097498.tif 000006
【図５】
2008097498.tif 000007
【図６】
2008097498.tif 000008
【図７】
2008097498.tif 000009
【図８】
2008097498.tif 000010
【図９】
2008097498.tif 000011
【図１０】
2008097498.tif 000012
【図１１】
2008097498.tif 000013
【図１２】
2008097498.tif 000014
【図１３】
2008097498.tif 000015
【図１４】
2008097498.tif 000016
【図１５】
2008097498.tif 000017
【図１６】
2008097498.tif 000018
【図１７】
2008097498.tif 000019
【図１８】
2008097498.tif 000020
【図１９】
2008097498.tif 000021
【図２０】
2008097498.tif 000022
【図２１】
2008097498.tif 000023