(57)【要約】【課題】極めて汎用性が高く、ネットワークに接続される全てのハードウェア、ソフトウェアを統一的に扱うためのコントロール・ユニット等を提供する。【解決手段】コントロール・ユニットは、接続されたプロセッシング・エレメントの種類および機能に関する情報を判別する判別部と、プロセッシング・エレメントに、必要に応じて接続されたライブラリに含まれるプログラム情報またはハードウエアの再構成情報をロードするライブラリロード部と、プロセッシング・エレメントに実行させるタスクの１つ以上の組み合わせからなる任意のサービス情報と、判別部によって判別されたプロセッシング・エレメントの種類及び機能に関する情報と、からサービス情報に対応したプロセッシング・エレメントの組み合わせを含む実行遷移情報を生成し、それをプロセッシング・エレメントに送信する実行遷移情報制御部を有する。【選択図】図１−Ｂ
2010033555.tif 000002
【特許請求の範囲】
【請求項１】
プロセッシング・エレメントが接続されたコントロール・ユニットであって、
前記コントロール・ユニットは、接続された前記プロセッシング・エレメントの種類および機能に関する情報を判別する判別部と、
前記プロセッシング・エレメントに、必要に応じて接続されたライブラリに含まれるプログラム情報またはハードウエアの再構成情報をロードするライブラリロード部と、
前記プロセッシング・エレメントに実行させるタスクの１つ以上の組み合わせからなる任意のサービス情報と、前記判別部によって判別された前記プロセッシング・エレメントの種類及び機能に関する情報と、から前記サービス情報に対応した前記プロセッシング・エレメントの組み合わせを含む実行遷移情報を生成し、それを前記プロセッシング・エレメントに送信する実行遷移情報制御部と、
を有することを特徴とするコントロール・ユニット。
【請求項２】
前記プロセッシング・エレメントは、所定の前記機能を実行する専用プロセッシング・エレメントと、入力される前記プログラムによって前記機能が変更される汎用プロセッシング・エレメントと、入力される前記再構成情報によってハードウェアを再構成するダイナミック・リコンフィギャラブル・プロセッサと、の少なくとも一つを含み、
前記実行遷移情報制御部は、前記判別部が前記汎用プロセッシング・エレメントまたは前記ダイナミック・リコンフィギャラブル・プロセッサであることを判別したときに、それらに対応する前記プログラム情報または前記再構成情報を考慮して前記実行遷移情報を生成することを特徴とする請求項1に記載のコントロール・ユニット。
【請求項３】
前記プロセッシング・エレメントは、前記を汎用プロセッシング・エレメント含み、
前記ライブラリは、前記実行遷移情報に含まれた所定の機能を前記汎用プロセッシング  ・エレメントに実行させるための前記プログラム情報を含み、
前記汎用プロセッシング・エレメントが前記実行遷移情報に含まれた所定の機能を実行させるための前記プログラムを保持していないとき、前記ライブラリロード部は、前記汎用プロセッシング・エレメントに対し、前記ライブラリを参照して、前記プログラム情報をロードし、
前記特定の機能を実行させるために、前記汎用プロセッシング・エレメントに前記プログラムを動的に配信することを特徴とする請求項２に記載のコントロール・ユニット。
【請求項４】
前記ライブラリロード部は、前記汎用プロセッシング・エレメントの要求によって前記汎用プロセッシング・エレメントに前記プログラムを動的に配信することを特徴とする請求項３に記載のコントロール・ユニット。
【請求項５】
前記コントロール・ユニットは、前記プログラムをサーバーから取得することを特徴とする請求項３または請求項４に記載のコントロール・ユニット。
【請求項６】
前記汎用プロセッシング・エレメントは、複数の機能のうちの前記特定の機能を行うための仮想処理部を備えることを特徴とする請求項３に記載のコントロール・ユニット。
【請求項７】
前記ライブラリは、前記汎用プロセッシング・エレメントが備える前記仮想処理部に対応するプログラムを含むことを特徴とする請求項６に記載のコントロール・ユニット。
【請求項８】
前記プロセッシング・エレメントは、前記ダイナミック・リコンフィギャラブル・プロセッサを含み、
前記ライブラリは、前記実行遷移情報に含まれた所定の機能を前記ダイナミック・リコ  ンフィギャラブル・プロセッサに実現するための前記再構成情報を含み、
前記ライブラリロード部は、前記ダイナミック・リコンフィギャラブル・プロセッサが前記実行遷移情報に含まれた所定の機能を実行させるための前記再構成情報を保持していないとき、前記ダイナミック・リコンフィギャラブル・プロセッサに対し、前記ライブラリを参照して、前記再構成情報をロードし、
前記特定の機能を実行させるために、動的に前記ダイナミック・リコンフィギャラブル・プロセッサのハードウェアを再構成することを特徴とする請求項２に記載のコントロール・ユニット。
【請求項９】
前記ライブラリロード部は、前記ダイナミック・リコンフィギャラブル・プロセッサの要求によって前記ダイナミック・リコンフィギャラブル・プロセッサに前記再構成情報を動的に配信することを特徴とする請求項８に記載のコントロール・ユニット。
【請求項１０】
前記コントロール・ユニットは、前記再構成情報をサーバーから取得することを特徴とする請求項８または請求項９に記載のコントロール・ユニット。
【請求項１１】
前記実行遷移情報制御部は、クライアントから要求された前記サービス情報に基づいて前記実行遷移情報を生成し、それを前記プロセッシング・エレメントまたは、前記クライアントに送信し、
前記プロセッシング・エレメントまたは前記クライアントが、受信した前記実行遷移情報の中で該当する前記タスクを実行可能か否か判断し、その実行可否判断情報を前記実行遷移情報制御部に送信することによって、前記実行遷移情報に含まれる前記タスクの処理経路が決定されることを特徴とする請求項１から請求項１０のいずれか一項に記載のコントロール・ユニット。
【請求項１２】
前記コントロール・ユニットは、前記実行遷移情報に含まれるタスクを実行するための計算資源の確保要求と解放要求および処理経路の確立要求と解放要求に関する制御情報を、前記タスクに対応する前記プロセッシング・エレメントまたは前記クライアントに送信することを特徴とする請求項１１に記載のコントロール・ユニット
【請求項１３】
前記コントロール・ユニットは、同一の前記実行遷移情報または同一の前記制御情報を、前記実行遷移情報に含まれる前記プロセッシング・エレメントと、前記クライアントとに対して、一斉に送信することを特徴とする請求項１２に記載のコントロール・ユニット。
【請求項１４】
前記実行遷移情報または前記制御情報を、前記実行遷移情報に含まれる前記プロセッシング・エレメントと、前記クライアントとに対して、それぞれに送信することを特徴とする請求項１２に記載のコントロール・ユニット。
【請求項１５】
前記実行遷移情報制御部は、前記実行遷移情報のうち、特定のタスクを実行するために必要な前記プロセッシング・エレメントごと対応する前記実行遷移情報を抽出し、抽出された前記実行遷移情報を前記プロセッシング・エレメントに対して、それぞれ送信することを特徴とする請求項１１、請求項１２、請求項１４のいずれか一項に記載のコントロール・ユニット。
【請求項１６】
プロセッシング・エレメントと、
前記プロセッシング・エレメントが接続されるコントロール・ユニットと、を有する分散処理システムであって、
前記コントロール・ユニットは、請求項1から請求項１５のいずれか一項に記載の前記コントロール・ユニットであることを特徴とする分散処理システム。
【請求項１７】
前記プロセッシング・エレメントは、前記機能を実行する専用プロセッシング・エレメントと、入力される前記プログラムによって前記機能を変更できる汎用プロセッシング・エレメントと、入力される前記再構成情報によってハードウェアを再構成するダイナミック・リコンフィギャラブル・プロセッサと、の少なくとも一つを含み、
前記実行遷移情報制御部は、前記判別部が前記汎用プロセッシング・エレメントまたは前記ダイナミック・リコンフィギャラブル・プロセッサであることを判別したときに、それらに対応する前記プログラム情報または前記再構成情報を考慮して前記実行遷移情報を生成することを特徴とする請求項１６に記載の分散処理システム。
【請求項１８】
さらに、前記コントロール・ユニットに対してサービス実行要求を送信するクライアントを有することを特徴とする請求項１６または請求項１７に記載の分散処理システム。
【請求項１９】
コントロール・ユニットに接続された前記プロセッシング・エレメントの種類および機能に関する情報を判別する判別ステップと、
前記プロセッシング・エレメントに、必要に応じて接続されたライブラリに含まれるプログラム情報またはハードウエアの再構成情報をロードするライブラリロード・ステップと、
前記プロセッシング・エレメントに実行させるタスクの１つ以上の組み合わせからなる任意のサービス情報と、前記判別部によって判別された前記プロセッシング・エレメントの種類及び機能に関する情報と、から前記サービス情報に対応した前記プロセッシング・エレメントの組み合わせを含む実行遷移情報を生成し、それを前記プロセッシング・エレメントに送信する実行遷移情報制御ステップと、
前記プロセッシング・エレメントまたは前記クライアントが、受信した前記実行遷移情報の中で該当する前記タスクを実行可能か否か判断することによって、前記実行遷移情報に含まれるタスクの処理経路が決定される処理経路決定ステップと、
を有することを特徴とする分散処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コントロール・ユニット、分散処理システム及び分散処理方法に関するものである。
【背景技術】
【０００２】
従来、自動的にサーバーから更新データとしてプログラムをダウンロードし、ある特定のハードウェアまたはソフトウェアの機能を修正・変更・拡張することが行われている。これは、自動的にサーバーから更新データとしてプログラムをダウンロードすることで、ある特定のハードウェアまたはソフトウェアの機能を修正・変更・拡張するシステムである。
【０００３】
コンピュータのオペレーティングシステム、例えばＬｉｎｕｘやＷｉｎｄｏｗｓ（登録商標）などでは、後から必要に応じてプログラムをサーバーから自動的にダウンロードしてインストールすることが行われている（例えば、非特許文献１参照）。ダウンロードするデータとしては、例えば、セキュリティーを強化するための更新データや、アプリケーションソフトの機能更新データなどである。
【０００４】
このように、自動的にサーバーから更新データとしてプログラムをダウンロードし、ある特定のハードウェアまたはソフトウェアの機能を修正・変更・拡張するシステムが知られている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】サーバー構築研究会編著、「Fedora Core5で作るネットワークサーバー構築ガイド」、秀和システム、２００６年、ｐｐ．８８−１０１
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来技術では、ある特定のハードウェアの機能またはソフトウェアの機能を修正すること、変更すること、拡張すること等を意図したものである。このため、汎用性に欠けている。
【０００７】
本発明は、上記に鑑みてなされたものであって、極めて汎用性が高く、ネットワークに接続される全てのハードウェア、ソフトウェアを統一的に扱うことができるコントロール・ユニット,分散処理システム、及び分散処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、第１の側面にしたがう本発明によれば、
プロセッシング・エレメントが接続されたコントロール・ユニットであって、
前記コントロール・ユニットは、接続された前記プロセッシング・エレメントの種類および機能に関する情報を判別する判別部と、
前記プロセッシング・エレメントに、必要に応じて接続されたライブラリに含まれるプログラム情報またはハードウエアの再構成情報をロードするライブラリロード部と、
前記プロセッシング・エレメントに実行させるタスクの１つ以上の組み合わせからなる任意のサービス情報と、前記判別部によって判別された前記プロセッシング・エレメントの種類及び機能に関する情報と、から前記サービス情報に対応した前記プロセッシング・エレメントの組み合わせを含む実行遷移情報を生成し、それを前記プロセッシング・エレメントに送信する実行遷移情報制御部と、
を有することを特徴とするコントロール・ユニットを提供できる。
【０００９】
また、本発明の好ましい態様によれば、前記プロセッシング・エレメントは、所定の前記機能を実行する専用プロセッシング・エレメントと、入力される前記プログラムによって前記機能が変更される汎用プロセッシング・エレメントと、入力される前記再構成情報によってハードウェアを再構成するダイナミック・リコンフィギャラブル・プロセッサと、の少なくとも一つを含み、
前記実行遷移情報制御部は、前記判別部が前記汎用プロセッシング・エレメントまたは前記ダイナミック・リコンフィギャラブル・プロセッサであることを判別したときに、それらに対応する前記プログラム情報または前記再構成情報を考慮して前記実行遷移情報を生成することが好ましい。
【００１０】
また、本発明の好ましい態様によれば、前記プロセッシング・エレメントは、前記を汎用プロセッシング・エレメント含み、
前記ライブラリは、前記実行遷移情報に含まれた所定の機能を前記汎用プロセッシング  ・エレメントに実行させるための前記プログラム情報を含み、
前記汎用プロセッシング・エレメントが前記実行遷移情報に含まれた所定の機能を実行させるための前記プログラムを保持していないとき、前記ライブラリロード部は、前記汎用プロセッシング・エレメントに対し、前記ライブラリを参照して、前記プログラム情報をロードし、
前記特定の機能を実行させるために、前記汎用プロセッシング・エレメントに前記プログラムを動的に配信することが好ましい。
【００１１】
また、本発明の好ましい態様によれば、前記ライブラリロード部は、前記汎用プロセッシング・エレメントの要求によって前記汎用プロセッシング・エレメントに前記プログラムを動的に配信することが好ましい。
【００１２】
また、本発明の好ましい態様によれば、前記コントロール・ユニットは、前記プログラムをサーバーから取得することが好ましい。
【００１３】
また、本発明の好ましい態様によれば、前記汎用プロセッシング・エレメントは、複数の機能のうちの前記特定の機能を行うための仮想処理部を備えることが好ましい。
【００１４】
また、本発明の好ましい態様によれば、前記ライブラリは、前記汎用プロセッシング・エレメントが備える前記仮想処理部に対応するプログラムを含むことが好ましい。
【００１５】
また、本発明の好ましい態様によれば、前記プロセッシング・エレメントは、前記ダイナミック・リコンフィギャラブル・プロセッサを含み、
前記ライブラリは、前記実行遷移情報に含まれた所定の機能を前記ダイナミック・リコ  ンフィギャラブル・プロセッサに実現するための前記再構成情報を含み、
前記ライブラリロード部は、前記ダイナミック・リコンフィギャラブル・プロセッサが前記実行遷移情報に含まれた所定の機能を実行させるための前記再構成情報を保持していないとき、前記ダイナミック・リコンフィギャラブル・プロセッサに対し、前記ライブラリを参照して、前記再構成情報をロードし、
前記特定の機能を実行させるために、動的に前記ダイナミック・リコンフィギャラブル・プロセッサのハードウェアを再構成することが好ましい。
【００１６】
また、本発明の好ましい態様によれば、前記ライブラリロード部は、前記ダイナミック・リコンフィギャラブル・プロセッサの要求によって前記ダイナミック・リコンフィギャラブル・プロセッサに前記再構成情報を動的に配信することが好ましい。
【００１７】
また、本発明の好ましい態様によれば、前記コントロール・ユニットは、前記再構成情報をサーバーから取得することが好ましい。
【００１８】
また、本発明の好ましい態様によれば、前記実行遷移情報制御部は、クライアントから要求された前記サービス情報に基づいて前記実行遷移情報を生成し、それを前記プロセッシング・エレメントまたは、前記クライアントに送信し、
前記プロセッシング・エレメントまたは前記クライアントが、受信した前記実行遷移情報の中で該当する前記タスクを実行可能か否か判断し、その実行可否判断情報を前記実行遷移情報制御部に送信することによって、前記実行遷移情報に含まれる前記タスクの処理経路が決定されることが好ましい。
【００１９】
また、本発明の好ましい態様によれば、前記コントロール・ユニットは、前記実行遷移情報に含まれるタスクを実行するための計算資源の確保要求と解放要求および処理経路の確立要求と解放要求に関する制御情報を、前記タスクに対応する前記プロセッシング・エレメントまたは前記クライアントに送信することが好ましい。
【００２０】
また、本発明の好ましい態様によれば、前記コントロール・ユニットは、同一の前記実行遷移情報または前記制御情報を、前記実行遷移情報に含まれる前記プロセッシング・エレメントと、前記クライアントとに対して、一斉に送信することが好ましい。
【００２１】
また、本発明の好ましい態様によれば、前記実行遷移情報または前記制御情報を、前記実行遷移情報に含まれる前記プロセッシング・エレメントと、前記クライアントとに対して、それぞれに送信することが好ましい。
【００２２】
また、本発明の好ましい態様によれば、前記実行遷移情報制御部は、前記実行遷移情報のうち、特定のタスクを実行するために必要な前記プロセッシング・エレメントごと対応する前記実行遷移情報を抽出し、抽出された前記実行遷移情報を前記プロセッシング・エレメントに対して、それぞれ送信することが好ましい。
【００２３】
また、第２の側面にしたがう本発明によれば、プロセッシング・エレメントと、
前記プロセッシング・エレメントが接続されるコントロール・ユニットと、を有する分散処理システムであって、
前記コントロール・ユニットは、上述の前記コントロール・ユニットであることを特徴とする分散処理システムを提供できる。
【００２４】
また、本発明の好ましい態様によれば、前記プロセッシング・エレメントは、前記機能を実行する専用プロセッシング・エレメントと、入力される前記プログラムによって前記機能を変更できる汎用プロセッシング・エレメントと、入力される前記再構成情報によってハードウェアを再構成するダイナミック・リコンフィギャラブル・プロセッサと、の少なくとも一つを含み、
前記実行遷移情報制御部は、前記判別部が前記汎用プロセッシング・エレメントまたは前記ダイナミック・リコンフィギャラブル・プロセッサであることを判別したときに、それらに対応する前記プログラム情報または前記再構成情報を考慮して前記実行遷移情報を生成することが好ましい。
【００２５】
また、本発明の好ましい態様によれば、さらに、前記コントロール・ユニットに対してサービス実行要求を送信するクライアントを有することが好ましい。
【００２６】
また、第３の側面にしたがう本発明によれば、コントロール・ユニットに接続された前記プロセッシング・エレメントの種類および機能に関する情報を判別する判別ステップと、
前記プロセッシング・エレメントに、必要に応じて接続されたライブラリに含まれるプログラム情報またはハードウエアの再構成情報をロードするライブラリロード・ステップと、
前記プロセッシング・エレメントに実行させるタスクの１つ以上の組み合わせからなる任意のサービス情報と、前記判別部によって判別された前記プロセッシング・エレメントの種類及び機能に関する情報と、から前記サービス情報に対応した前記プロセッシング・エレメントの組み合わせを含む実行遷移情報を生成し、それを前記プロセッシング・エレメントに送信する実行遷移情報制御ステップと、
前記プロセッシング・エレメントまたは前記クライアントが、受信した前記実行遷移情報の中で該当する前記タスクを実行可能か否か判断することによって、前記実行遷移情報に含まれるタスクの処理経路が決定される処理経路決定ステップと、
を有することを特徴とする分散処理方法を提供できる。
【発明の効果】
【００２７】
本発明にかかるコントロール・ユニットは、極めて汎用性が高く、ネットワークに接続される全てのハードウェア、ソフトウェアを統一的に扱うことができるコントロール・ユニット、分散処理システム、及び分散処理方法を提供できるという効果を奏する。
【図面の簡単な説明】
【００２８】
【図１−Ａ】本発明の実施例１に係るコントロール・ユニットを有する分散処理システムのモデルを示す図である。
【図１−Ｂ】本発明の実施例１に係るコントロール・ユニットを含む処理システム全体の概略構成を示す図である。
【図２】ＪＰＥＧデコードの手順を示すフローチャートである。
【図３】ＴＩＤとタスクとの関係を示す図である。
【図４】ＳＩＤとサービスとの関係を示す図である。
【図５】ＰＥタイプを示す図である。
【図６】ライブラリ一覧を示す図である。
【図７】ＰＥ接続表を示す図である。
【図８】タスク実行遷移表を示す図である。
【図９】サービス−タスク対応表を示す図である。
【図１０】実施例１におけるコントロール・ユニットの基本制御を示すフローチャートである。
【図１１】実施例１におけるサービス実行要求プロセッシング・エレメントの基本制御を示すフローチャートである。
【図１２】実施例１におけるプロセッシング・エレメントの基本制御を示す他のフローチャートである。
【図１３】実施例１におけるコントロール・ユニットの制御を示すフローチャートである。
【図１４】実施例１におけるコントロール・ユニットの制御を示すフローチャートである。
【図１５】実施例１におけるプロセッシング・エレメントの制御を示すフローチャートである。
【図１６−Ａ】実施例１におけるプロセッシング・エレメントの制御を示すフローチャートである。
【図１６−Ｂ】実施例１におけるＪＰＥＧデコード処理の流れとシステム構成の対応を示す図である。
【図１７】実施例１におけるシステム構成を示す図である。
【図１８】実施例１におけるプロセッシング・エレメント接続表を示す図である。
【図１９】実施例１におけるサービス・タスク対応表を示す図である。
【図２０】実施例１におけるシーケンスの一部を示す図である。
【図２１】実施例１におけるタスク遷移表を示す図である。
【図２２】実施例１におけるシーケンスを示す他の図である。
【図２３】実施例１におけるシーケンスを示す別の図である。
【図２４】実施例１におけるシーケンスを示す他の図である。
【図２５】実施例１におけるプロセッシング・エレメント接続表を示す図である。
【図２６】実施例１におけるシーケンスを示す他の図である。
【図２７】実施例１におけるシーケンスを示す図である。
【図２８】実施例１におけるシーケンスを示す図である。
【図２９】実施例１におけるシーケンスを示す図である。
【図３０】実施例１におけるシーケンスを示す図である。
【図３１−Ａ】本発明の実施例２に係るコントロール・ユニットを有する分散処理システムのモデルを示す図である。
【図３１−Ｂ】実施例２におけるＪＰＥＧデコード処理の流れとシステム構成の対応を示す図である。
【図３２】実施例２におけるプロセッシング・エレメントの基本制御を示すフローチャートである。
【図３３】実施例２におけるプロセッシング・エレメントの制御を示すフローチャートである。
【図３４−Ａ】本発明の実施例３に係るコントロール・ユニットを有する分散処理システムのモデルを示す図である。
【図３４−Ｂ】実施例３におけるＪＰＥＧデコード処理の流れとシステム構成の対応を示す図である。
【図３５】実施例３におけるプロセッシング・エレメントの基本制御を示すフローチャートである。
【図３６】実施例３におけるプロセッシング・エレメントの制御を示すフローチャートである。
【発明を実施するための形態】
【００２９】
以下に、本発明にかかるコントロール・ユニットの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００３０】
図１−Ａは、本実施例におけるコントロール・ユニットを有する分散処理システムのモデルを示している。コントロール・ユニットＣＵには、７個のプロセッシング・エレメントＰＥ１〜ＰＥ７が接続されている。プロセッシング・エレメントＰＥ１は、サービス実行要求プロセッシング・エレメントであり、Ｂ社製の汎用ＣＰＵである。プロセッシング・エレメントＰＥ３は、汎用ＣＰＵまたは仮想マシンである。プロセッシング・エレメントＰＥ２、ＰＥ４〜ＰＥ７は、専用ハードウェアである。プロセッシング・エレメントＰＥ２、ＰＥ４〜ＰＥ７は所定の機能を提供する専用のソフトウェアでもよい。
【００３１】
汎用ＣＰＵと仮想マシンとは、プロセッシング・エレメントの種類に適したプログラムを適時ロードするという点では相違がない。このため、汎用ＣＰＵと仮想マシンとは、同様に取り扱うものとする。
【００３２】
以下の各実施例では、ＪＰＥＧ復号化（デコード）を行う場合について考える。
図２は、ＪＰＥＧデコードを行う処理手順を示すフローチャートである。
【００３３】
図２のステップＳ１０１において、ＪＰＥＧファイルの解析を行う。ステップＳ１０２において、エントロピー復号化を行う。ステップＳ１０３において、逆量子化を行う。ステップＳ１０４において、ＩＤＣＴ（逆離散コサイン変換）を行う。ステップＳ１０５において、色信号の変換を行う。ステップＳ１０５はＪＰＥＧファイルがサンプリングされている場合には色信号の変換の前にアップサンプリングを含む。ステップＳ１０６において、結果表示を行う。そして、ＪＰＥＧのデコード処理が終了する。
【００３４】
次に、各実施例における用語について予め定義する。「タスク」とは、あるまとまった機能の実行単位を指す。図２で示したＪＰＥＧデコードの各ステップはすべて一つのタスクで構成している。例えば、逆量子化は一つのタスクである。
各タスクにはタスク識別子(ＴＩＤ)と呼ぶ識別番号がつけられている。
図３に示すように、タスクが実現する機能とＴＩＤは一対一で対応している。
【００３５】
「プロセッシング・エレメント」(以下、適宜「ＰＥ」という。)とは、データの入出力、処理、伝達、格納の４つの機能のうち一つ以上の機能を実現するシステムの構成単位をいう。一般的には、一つのプロセッシング・エレメントが一つ以上のタスクを処理する機能と、処理に必要なデータ入出力機能やデータ格納機能を有している。
【００３６】
「コントロール・ユニット」（以下、適宜「ＣＵ」という。）とは、分散処理システムにおいて各プロセッシング・エレメントへのタスクの割り当て(アサイン)と、処理経路の管理、サービス実行時のタスク実行遷移の管理などを行う制御部をいう。
【００３７】
「サービス」とは一つ以上の関連を持つタスクの集合をいう。サービスはタスクよりもまとまった意味のある処理を実現するものである。ＪＰＥＧデコード処理はサービスの一例である。サービスにもサービス識別子(ＳＩＤ)と呼ぶ一意の識別番号がついている。
図４は、サービスとサービス識別子との対応例を示している。サービスの実行を要求するプロセッシング・エレメントを特にサービス実行要求プロセッシング・エレメント（クライアント）という。クライアントはサービスの実行を要求するだけでタスクを実行しないか、もしくは、サービスの実行を要求しかつタスクを実行する。
【００３８】
なお、一つのタスクが一つのサービスとなる場合もある。例えば、ＩＤＣＴの処理がサービスとして要求されれば、入力に対してＩＤＣＴ処理を行った結果を返す。また、サービス実行要求プロセッシング・エレメントは結果データを受信する必要はない。他のプロセッシング・エレメントでデータを表示、格納などしてサービスが終了する場合もある。
【００３９】
「機能識別子」（ＦＩＤ）とは、各プロセッシング・エレメントで実行できるタスクの識別子をいう。従って、タスクが実現する機能に対応するＦＩＤとＴＩＤは一対一で対応している。一つのプロセッシング・エレメントで２つ以上のＦＩＤを持つこともある。本実施例では、専用ハードウェアとダイナミック・リコンフィギャラブル・プロセッサ（ＤＲＰ）では一度に一つだけＦＩＤを有する。実際には２つ以上のＦＩＤを有する場合もある。また、中央処理装置（ＣＰＵ）や仮想（バーチャル）マシン（ＶＭ）ではＦＩＤを複数持つ場合を想定している。
【００４０】
「ライブラリ」とは、汎用的なプロセッシング・エレメントであるＣＰＵや仮想マシン上で専用ハードウェアなどと同様の機能を実現するためのプログラム（ソフトウェア）とダイナミック・リコンフィギャラブル・プロセッサ（ＤＲＰ）の再構成情報の集合をいう。専用ハードウェアで実現する機能と一対一で対応したプログラムを準備する。これらのプログラムは、ライブラリ内のデータベースに格納できる。また、ルック・アップ・テーブル（ＬＵＴ）などにより、格納されているプログラムや再構成情報を検索できるように構成している。
【００４１】
「プロセッシング・エレメント・タイプ」（ＰＥＴ）とは、プロセッシング・エレメントの種類、アーキテクチャ、バージョンなどを表す識別子である。プロセッシング・エレメントは専用ハードウェアないし専用ソフトウェア、ダイナミック・リコンフィギャラブル・プロセッサ、汎用ＣＰＵ、仮想マシンを含んでいる。
【００４２】
専用ハードウェアと専用ソフトウェアは、特定の機能を実行するものである。ダイナミック・リコンフィギャラブル・プロセッサは、特定の機能の実行のために最適な形にリアルタイムでハードウェアを再構成できるものである。汎用ＣＰＵは、プログラムにより汎用的な機能を実行できる。
【００４３】
専用ハードウェアおよび専用ソフトウェアを含む専用プロセッシング・エレメントの特定の機能と、特定の機能を汎用プロセッシング・エレメントに実現するためのプログラムないしＤＲＰの再構成情報との対応情報及び前記プログラムないし前記再構成情報を含む構成、即ちライブラリ一覧とプログラムないし再構成情報とは、ダイナミック・プロセッシング・ライブラリに対応する。
【００４４】
図５は、プロセッシング・エレメント・タイプの例を示している。例えばＡ社のＸＸという命令が使用できる６４ビットのＣＰＵなどである。
【００４５】
「ライブラリ一覧」とは、ライブラリ識別子ＬＩＤと、ライブラリ識別子ＬＩＤを決定する（１）プロセッシング・エレメント・タイプＰＥＴ、（２）タスク識別子ＴＩＤなどの因子の対応を示す表である。
【００４６】
図６は、ライブラリ一覧の例を示している。ここで、「ライブラリ識別子」（ＬＩＤ）とはライブラリに含まれる一つ一つのプログラムや再構成情報を識別するための識別番号をいう。例えば、プロセッシング・エレメント上で実行できる（１）プロセッシング・エレメント・タイプ（ＰＥＴ）、（２）実現するタスクの識別子（ＴＩＤ）によって決定される。
プロセッシング・エレメントからのプログラム要求をコントロール・ユニットが受信すると、ライブラリ一覧から必要なライブラリ識別子を検索する。そして、ライブラリ識別子に対応するプログラムをそのプロセッシング・エレメントに送信する。
また、接続されている（１）プロセッシング・エレメント・タイプと（２）機能識別子（ＦＩＤ）が判別されたとき、ライブラリ一覧から、それに対応するライブラリ識別子を受信してきてもよい。
【００４７】
「データ」とは、プロセッシング・エレメントＰＥが処理する情報で、例えば、画像や音声などをいう。
【００４８】
「タスク実行要求」とは、サービス実行要求ＰＥを含む実行順序が最初のプロセッシング・エレメントに対して、タスクの実行開始をコントロール・ユニットＣＵが要求する信号である。
【００４９】
「タスク実行完了」とは、すべてのタスクの実行を完了したことをサービス実行要求ＰＥを含む実行順序が最後のプロセッシング・エレメントがコントロール・ユニットＣＵに通知する信号である。
【００５０】
「サービス実行完了」とは、コントロール・ユニットＣＵがサービスの実行を完了したことをサービス実行要求プロセッシング・エレメントに通知するための信号である。
【００５１】
「計算資源確保」とは、プロセッシング・エレメントＰＥがサービス処理に必要な汎用プロセッサ、ＤＲＰ、専用ハードウェアないし専用ソフトウェアなどの計算パワーやメモリなどの計算資源をある特定のタスクの処理に割り当てることである。「計算資源解放」は割り当てていた計算資源を他のサービス処理のために使用できる状態にすることである。
【００５２】
「処理経路確立」とは、タスク処理に関するデータなどを他のプロセッシング・エレメントＰＥと１対１で相互に通信できる状態にすることである。「処理経路解放」は処理経路を閉じて、他のプロセッシング・エレメントとの相互通信を遮断することである。なお、単に「解放」といった場合は計算資源解放と処理経路解放の両方を含んでいる。
【００５３】
次に、各実施例で使用するデータ構造の概略構成を以下に示す。なお、これらのデータ構造は例示であり、この構造に限定されるものではない。以下の例示では、適宜、プロセッシング・エレメントＰＥが７個接続されている場合を考える。７個のプロセッシング・エレメントＰＥのうちの１個は、サービス実行要求ＰＥ１である。
【００５４】
（プロセッシング・エレメント接続表）
コントロール・ユニットＣＵはプロセッシング・エレメントＰＥの接続を検知すると、そのプロセッシング・エレメントＰＥの情報を取得する。そして、コントロール・ユニットＣＵ自身に接続されているプロセッシング・エレメントＰＥを管理するための一覧表を作成する。この一覧表をプロセッシング・エレメント接続表と呼ぶ。
【００５５】
図７は、プロセッシング・エレメント接続表の一部を示している。プロセッシング・エレメント接続表は、例えば、図７に示すように、プロセッシング・エレメントのＩＰアドレスと、プロセッシング・エレメントのタイプ（ＰＥＴ）と、各プロセッシング・エレメントで実行できるタスクの識別子である機能識別子（ＦＩＤ）とが記述されている。さらに、プロセッシング・エレメント接続表は、その他に、プロセッシング・エレメントＰＥの接続開始時間や処理能力、メモリ容量の情報などを含んでいる。
【００５６】
（タスク実行遷移表）
図８は、タスク実行遷移表の例を示している。タスク実行遷移表は、実行遷移情報の具体的な形態の一つで、本実施例では入出力を行うプロセッシング・エレメントのタイプ（ＰＥＴ）、タスクを実行するプロセッシング・エレメントＰＥのＩＰアドレス（以下、適宜、「ＩＰ」という。）、及びタスク識別子を実行する順序に並べた一覧表である。具体的には、タスク実行遷移表には、実行順に、「タスク識別子（ＴＩＤ）」、「入力ＩＰ」、「実行ＩＰ」、「出力ＩＰ」が記述されている。ここで、「入力ＩＰ］とは、データを入力するプロセッシング・エレメントのＩＰをいう。「実行ＩＰ」とは、タスクを実行するプロセッシング・エレメントのＩＰをいう。また、「出力ＩＰ」とは、データを出力するプロセッシング・エレメントのＩＰをいう。
【００５７】
図１−Ｂは、コントロール・ユニットＣＵを含む処理システム全体の概略構成を示している。コントロール・ユニットＣＵには、実行遷移情報制御部と、ライブラリロード部と、判別部が含まれている。クライアントからの要求に応じてコントロール・ユニットＣＵはプロセッシング・エレメントＰＥの接続を検知すると、判別部がそのプロセッシング・エレメントＰＥの情報を取得し、図７のようなプロセッシング・エレメント接続表を作成する。
【００５８】
汎用プロセッシング・エレメントまたはダイナミック・リコンフィギャラブル・プロセッサの接続を検知したことが判別部に判別されると、ライブラリに格納されているライブラリ一覧から、接続されたものに対応したライブラリ識別子（ＬＩＤ）を読み出し、ライブラリ情報を取得する。
【００５９】
実行遷移情報制御部は、クライアントからの要求をタスクごとに分けた図９のようなサービス−タスク対応表と、必要に応じてライブラリ情報を加味したプロセッシング・エレメント接続表とを比較し、タスクをどのＰＥにどの順番で割り振るかと、入出力先のＰＥと対応するＩＰアドレスとを決定し、図８のような実行遷移情報にまとめる。
【００６０】
コントロール・ユニットＣＵは、タスク実行遷移表に基づいて各プロセッシング・エレメントＰＥにタスクの割り当てを行う。タスクの実行前に、タスク実行遷移表は、経路情報としてコントロール・ユニットＣＵから各プロセッシング・エレメントＰＥ１〜ＰＥ７に配布される。
【００６１】
また、コントロール・ユニットＣＵは、サービス実行要求を受け付けてからタスク実行遷移表を作成する。
割り当てたタスクの実行を要求するために、上述のタスク実行遷移表の各行に記述されている情報、即ち、実行順序、ＴＩＤ、入力ＩＰ、実行ＩＰ、出力ＩＰをタスク実行要求として、コントロール・ユニットからそれぞれのプロセッシング・エレメントに以下に述べるように送出する。
【００６２】
このとき、コントロール・ユニットＣＵがタスク実行遷移表を送信する方式は、後述するように、
・ブロードキャスト方式
・逐次１対１方式（適宜、「１対１方式」という。）
の２通りがある。
【００６３】
（サービス-タスク対応表）
図９は、サービス−タスク対応表の構成を示している。サービス−タスク対応表は、サービスを構成するタスクの対応を識別子を使って一覧にした表である。
コントロール・ユニットＣＵは、初期化時にサービス−タスク対応表を管理しているサーバーからサービス−タスク対応表を取得してくる。
【００６４】
（実施例１のフロー）
図１０は、コントロール・ユニットＣＵの基本的な制御のフローチャートを示している。なお、本フローチャートでは基本的な流れを示し、詳細な手順については後述する。
【００６５】
ステップＳ１２００において、コントロール・ユニットＣＵは、サービス実行要求を受信して、解析し実行遷移情報を生成する。
ステップＳ１２０１において、コントロール・ユニットＣＵは、計算資源確保要求を確保するプロセッシング・エレメントＰＥに対して必要に応じて行う。
ステップＳ１２０２において、ＣＵが各プロセッシング・エレメントＰＥに対して、処理経路の確立要求を必要に応じて行う。
ステップＳ１２０３において、コントロール・ユニットＣＵは、タスク実行要求をプロセッシング・エレメントＰＥへ送信する。
【００６６】
ステップＳ１２０４において、コントロール・ユニットＣＵは、タスク実行完了受信後に、処理経路の解放要求を各プロセッシング・エレメントＰＥへ必要に応じて送信する。また、コントロール・ユニットＣＵは、各プロセッシング・エレメントＰＥから処理経路解放の完了を受取った後、計算資源の解放要求を各プロセッシング・エレメントに対して必要に応じて行い、各プロセッシング・エレメントＰＥから計算資源解放の完了を受取る。
そして、ステップＳ１２０５において、サービス完了をサービス実行要求プロセッシング・エレメントＰＥに送信する。
【００６７】
図１１は、サービス実行要求プロセッシング・エレメントＰＥの基本的な制御のフローチャートを示している。
ステップＳ１２５０において、サービス実行要求ＰＥは、サービス実行の要求を行う。
ステップＳ１２５１において、必要に応じて、計算資源を確保する。ステップＳ１２５２において、必要に応じて処理経路を確立する。
ステップＳ１２５３において、処理経路の確立後に必要に応じてタスクの処理を行う。サービス実行要求プロセッシング・エレメントはサービスの要求を行うだけでタスクを行わない場合もある。
【００６８】
ステップＳ１２５４において、必要に応じて、処理経路の解放と、計算資源の解放とを行う。
ステップＳ１２５５において、サービス実行要求ＰＥ１は、サービス完了信号を受信する。
【００６９】
図１２は、本実施例における汎用ＣＰＵまたは仮想マシンであるプロセッシング・エレメントＰＥの基本的なフローチャートを示している。
ステップＳ１３０１において、受信時の自分の機能と、要求された機能とが一致しているか否かが判断される。
ステップＳ１３０１の判断結果が真のとき、ステップＳ１３０４において、計算資源の確保を行う。
ステップＳ１３０５において、ＣＵからの要求に応じて、処理経路を確立する。
ステップＳ１３０６において、タスクの処理を行う。ステップＳ１３０７において、ＣＵからの要求に応じて、処理経路の解放と、計算資源の解放とを行う。
【００７０】
ステップＳ１３０１の判断結果が偽のとき、ステップＳ１３０８において、プログラムをコントロール・ユニットＣＵに要求しプログラムを受信する。ステップＳ１３０２において、要求された機能を達成するためのプログラムをロード可能か否かが判断される。
ステップＳ１３０２の判断結果が真のとき、Ｓ１３０３において、プログラムがロードされる。
そして、ステップＳ１３０４へ進む。また、ステップＳ１３０２の判断結果が偽のとき、処理を終了する。
【００７１】
図１３、図１４は、それぞれコントロール・ユニットのさらに詳細な制御の手順を説明するためのフローチャートである。
ステップＳ１４０１において、コントロール・ユニットＣＵが初期化される。ステップＳ１４０２において、コントロール・ユニットＣＵがサービス実行要求を受信したか否かが判断される。
ステップＳ１４０２の判断結果が偽のとき、ステップＳ１４０２を繰り返す。
【００７２】
ステップＳ１４０２の判断結果が真のとき、ステップＳ１４０３において、サービス−タスク対応表に受信したサービスに対応したサービスが含まれているか否かについて判断される。ステップＳ１４０３の判断結果が偽のとき、コントロール・ユニットＣＵは処理を終了する。
【００７３】
ステップＳ１４０３の判断結果が真のとき、ステップＳ１４６０において、プロセッシング・エレメント接続表のプロセッシング・エレメント・タイプＰＥＴ部分を読み出し、汎用プロセッシング・エレメントまたはダイナミック・リコンフィギャラブル・プロセッサが含まれているか否か判断する。ステップＳ１４６０の判断結果が偽のとき、ステップＳ１４０４へ進む。
【００７４】
ステップＳ１４６０の判断結果が真のとき、ステップＳ１４６１において、ライブラリ一覧を読み出し、ステップＳ１４６０で読み出されたＰＥＴに対応するライブラリ情報を取得し、Ｓ１４０４へと進む。
【００７５】
ステップＳ１４６０の判断結果が偽のとき、または、ステップＳ１４６１の後に、ステップＳ１４０４において、該当するサービス-タスク対応表に含まれるＴＩＤと、プロセッシング・エレメント接続表に含まれるＦＩＤおよびステップＳ１４６０で読み出されたＰＥＴに対応するライブラリ情報から全てのタスクをプロセッシング・エレメントＰＥに割り当てることができるか否かについて判断される。ステップＳ１４０４の判断結果が真のとき、ステップＳ１４０５において、コントロール・ユニットＣＵは、タスク実行遷移表を作成する。ステップＳ１４０４の判断結果が偽のとき、コントロール・ユニットＣＵは処理を終了する。
【００７６】
また、ステップＳ１４０６において、タスク実行遷移表を、１対１方式またはブロードキャスト方式でプロセッシング・エレメントＰＥに送信する。
【００７７】
次に、図１４を参照して説明を続ける。ステップＳ１４５０において、全てのプロセッシング・エレメントＰＥの資源確保に成功したか否かについて判断される。ステップＳ１４５０の判断結果が真のとき、ステップＳ１４５３において、処理経路確立要求を送信する。ステップＳ１４５４において、全てのプロセッシング・エレメントＰＥから処理経路確立完了の信号を受信したか否かが判断される。
【００７８】
ステップＳ１４５４の判断結果が真のとき、ステップＳ１４５５において、実行順序が最初のプロセッシング・エレメントＰＥに対してタスク実行要求を通知する。ステップＳ１４５６において、実行順序が最後のプロセッシング・エレメントＰＥからタスク実行完了を受信したか否か、が判断される。ステップＳ１４５４の判断結果が偽のとき、ステップＳ１４５４を繰り返す。
【００７９】
ステップＳ１４５６の判断結果が真のとき、ステップＳ１４５７において、サービス実行完了をサービス実行要求プロセッシング・エレメントＰＥ１に送信する。ステップＳ１４５８において、計算資源の解放と処理経路の解放とを行う。そして、コントロール・ユニットＣＵは処理を完了する。ステップＳ１４５６の判断結果が偽のとき、ステップＳ１４５６を繰り返す。
【００８０】
ステップＳ１４５０の判断結果が偽のとき、ステップＳ１４５１において、ダイナミック・リコンフィギャラブル・プロセッサ（ＤＲＰ）の再構成情報を要求されたか否かが判断される。ステップＳ１４５１の判断結果が真のとき、ステップＳ１４５９において、ライブラリから再構成情報の検索を行う。ステップＳ１４７３において、再構成情報の取得に成功したか否かが判断される。ステップＳ１４７３の判断結果が真のとき、ステップＳ１４７４において、再構成情報を要求したプロセッシング・エレメントＰＥに対して再構成情報を送信する。ステップＳ１４７１でＰＥ（ＤＲＰ）から計算資源確保成功を受信し、ステップＳ１４６０において、プロセッシング・エレメント接続表を更新する。そして、ステップＳ１４５０へ戻る。ステップＳ１４７３の判断結果が偽のとき、ステップＳ１４５８へ進む。
【００８１】
ステップＳ１４５１の判断結果が偽のとき、ステップＳ１４５２において、プログラムを要求されたか否かが判断される。ステップＳ１４５２の判断結果が真のとき、ステップＳ１４６１において、ライブラリからプログラムを検索する。ステップＳ１４６２において、プログラムの取得に成功したか否かが判断される。ステップＳ１４５２の判断結果が偽のとき、ステップＳ１４７０で機能を変更する必要のないＰＥから計算資源確保成功を受信し、ステップＳ１４５０へ戻る。
【００８２】
ステップＳ１４６２の判断結果が真のとき、ステップＳ１４６３において、プログラムを要求したプロセッシング・エレメントＰＥに対してプログラムを送信する。ステップ１４７２でＰＥ（汎用ＣＰＵないし仮想マシン）から計算資源確保成功を受信し、ステップＳ１４６４において、プロセッシング・エレメント接続表を更新する。ステップＳ１４６２の判断結果が偽のとき、ステップＳ１４５８へ進む。
【００８３】
ステップＳ１４５８において、計算資源の解放と処理経路との解放とを行う。そして、コントロール・ユニットＣＵは、処理を完了する。
【００８４】
（ＰＥの制御フロー）
図１５、図１６−Ａは、それぞれ本実施例における汎用ＣＰＵまたは仮想マシンであるプロセッシング・エレメントＰＥに関する制御の手順を説明するためのフローチャートである。なお、ここでは、サービス実行要求プロセッシング・エレメントＰＥとして汎用ＣＰＵや仮想マシン（ＶＭ）が使用されるときの処理を省略し、一般的な機能の実現に絞ってフローを記述する。
【００８５】
図１５に示すステップＳ１５０１において、プロセッシング・エレメントＰＥが初期化される。ステップＳ１５０２において、プロセッシング・エレメントＰＥは、タスク実行遷移表を受信したか否かが判断される。
【００８６】
ステップＳ１５０２の判断結果が真のとき、ステップＳ１５０３において、プロセッシング・エレメントＰＥ自身のＩＰアドレスと実行ＩＰアドレスとが一致するか否かが判断される。また、ステップＳ１５０２の判断結果が偽のとき、ステップＳ１５０２を繰り返す。
【００８７】
ステップＳ１５０３の判断結果が真のとき、ステップＳ１５０４において、プロセッシング・エレメントＰＥの自分のＦＩＤの一つがＴＩＤと一致するか否かが判断される。ステップＳ１５０３の判断結果が偽のとき、プロセッシング・エレメントＰＥは、処理を終了する。
【００８８】
ステップＳ１５０４の判断結果が真のとき、ステップＳ１５０５において、計算資源を確保し、計算資源確保が成功したことをコントロール・ユニットＣＵに通知し、ステップＳ１５５１へ進む。ステップＳ１５０４の判断結果が偽のとき、ステップＳ１５０６において、プログラムをコントロール・ユニットＣＵへ要求する。そして、ステップＳ１５５１へ進む。
【００８９】
ステップＳ１５５１において、プロセッシング・エレメントＰＥは、プログラム受信のための待機状態か否かが判断される。ステップＳ１５５１の判断結果が偽のとき、ステップＳ１５５８において、処理経路確立要求を受信する。ステップＳ１５６２で処理経路を確立し、処理経路確立完了をコントロール・ユニットＣＵに通知する。ステップＳ１５５９において、タスクの処理が実行される。ステップＳ１５６０において、解放要求を受信する。ステップＳ１５６１において、処理経路の解放と計算資源の解放とを行う。そして、プロセッシング・エレメントＰＥは、処理を終了する。
【００９０】
ステップＳ１５５１の判断結果が真のとき、ステップＳ１５５２において、プログラムを受信したか否かが判断される。ステップＳ１５５２の判断結果が真のとき、ステップＳ１５５３において、受信したプログラムが要求したプログラムと一致しているか否かが判断される。
【００９１】
ステップＳ１５５３の判断結果が真のとき、ステップＳ１５５４において、受信したプログラムがメモリに展開可能か否かが判断される。ステップＳ１５５４の判断結果が真のとき、ステップＳ１５５５において、プログラムをメモリに展開する。ステップＳ１５５６において、ＦＩＤを書き換える。ステップＳ１５５７において、計算資源を確保し、計算資源確保の成功をコントロール・ユニットＣＵへ通知する。そして、ステップＳ１５５９においてタスク処理を行う。
【００９２】
ステップＳ１５５２の判断結果が偽のとき、ステップＳ１５５２を繰り返す。ステップＳ１５５３の判断結果が偽のとき、処理を終了する。ステップＳ１５５４の判断結果が偽のとき、処理を終了する。
【００９３】
（ＪＰＥＧデコード処理の例）
次に、図２に示した処理モデルにおけるＪＰＥＧデコード処理の流れを時系列に従って説明する。
図１６−Ｂは、本実施例におけるＪＰＥＧデコード処理の流れとシステム構成の対応を示している。この例では、ＣＵが汎用ＣＰＵであるプロセッシング・エレメントＰＥ３にエントロピー復号化機能を提供するソフトウェアをライブラリから動的にダウンロードすることで、汎用ＣＰＵにエントロピー復号化タスクの実行をさせてＪＰＥＧデコード処理の一部を実現している。その他の機能はプロセッシング・エレメントＰＥ２およびＰＥ４〜ＰＥ７において専用ハードウェアで実行する。専用ハードウェアは専用ソフトウェアでも代用できる。
【００９４】
図１７は、本実施例におけるシステム構成を示している。この例では、ユーザーＵが携帯端末１００上から指示してＰＥ７にｉｍａｇｅ．ｊｐｇというＪＰＥＧ画像を表示させる場合を考える。ユーザーＵがファイルを指定すると、ＰＥネットワーク上でＪＰＥＧデコードを分散処理し、結果をＰＥ７上に表示する。
【００９５】
また、コントロール・ユニットＣＵに接続されているプロセッシング・エレメントＰＥ１〜ＰＥ７のうちプロセッシング・エレメントＰＥ３は、Ａ社汎用ＣＰＵである。
【００９６】
（前提条件）
また、以下の事項を前提条件とする。
ユーザーＵは、プロセッシング・エレメントＰＥを搭載した携帯機器１００を所有している。本プロセッシング・エレメントＰＥはサービス実行要求プロセッシング・エレメント（クライアント）として以下のことを最低限行うことができる。
・  ユーザーＵの要求判別を行う。
・  コントロール・ユニットＣＵへのサービス実行要求発行を行う。
・  ＪＰＥＧファイルの読み込み、他のプロセッシング・エレメントＰＥへの画像データ送信を行うこと。
・  コントロール・ユニットＣＵと各プロセッシング・エレメントＰＥは必要な初期化処理を完了している。
・  コントロール・ユニットＣＵは、プロセッシング・エレメントＰＥの接続を検出し、ＰＥ接続表の更新済み（各ＰＥのタイプ（ＰＥＴ）やＦＩＤを取得している）である。
図１８は、本実施例におけるコントロール・ユニットＣＵに保持されているＰＥ接続表を示している。
・  コントロール・ユニットＣＵはＰＥ７に画像を出力しなければならないことを知っている。
・  コントロール・ユニットＣＵは、ＪＰＥＧデコード処理に対応したサービス−タスク対応表を取得済みである。
【００９７】
図１９は、このサービス−タスク対応表を示している。
・  コントロール・ユニットＣＵは、ＪＰＥＧ復号化処理の全ステップ（ステップ１０１からステップ１０６）を実行するためのダイナミック・プロセッシング・ライブラリを全てサーバーから取得済みである。また、各プロセッシング・エレメントＰＥで実行可能な形式にコンパイルおよびリンクされている。ただし、ライブラリは実行時に動的に取得してくることも可能である。
・  各プロセッシング・エレメントＰＥは自ＩＰアドレスとコントロール・ユニットＣＵのＩＰを取得済みである。
【００９８】
また、以下の事項は特に考慮していない。
・  １つのプロセッシング・エレメントＰＥが２つ以上のタスクを実行する場合
・  コントロール・ユニットＣＵが他のコントロール・ユニットＣＵに対してプロセッシング・エレメントＰＥの情報を問い合わせる場合
・  細かいエラー処理
【００９９】
（ユーザー処理要求）
図２０において、まず、ユーザーＵは、携帯端末上で「ｉｍａｇｅ．ｊｐｇファイル」のアイコンをダブルクリックするなどしてＪＰＥＧファイルの表示を要求する。
【０１００】
携帯端末１００は、ＪＰＥＧファイルのデコード処理が必要と判断する。これにより、サービス実行要求プロセッシング・エレメントＰＥ１は、コントロール・ユニットＣＵにＪＰＥＧ復号化処理（ＳＩＤ：８２３）のサービス実行要求を送信する。
【０１０１】
コントロール・ユニットＣＵは、サービス実行要求を受信すると、ＪＰＥＧデコーダを表すサービス識別子（ＳＩＤ）８２３に基づいて、サービス−タスク対応表１１０を参照する。そして、コントロール・ユニットＣＵは、サービス識別子８２３からサービスに必要なタスクとその実行順序を取得する。
【０１０２】
コントロール・ユニットＣＵは、プロセッシング・エレメント接続表１２０を参照して、タスクの割り当てとサービスの実行が可能か否かを判断する。
【０１０３】
サービスの実行が可能であると判断した場合は、処理を続ける。
サービスの実行が不可能であると判断した場合は、エラー通知をサービス実行要求プロセッシング・エレメントＰＥ１に返す。
【０１０４】
（ブロードキャスト方式）
コントロール・ユニットＣＵは、タスク実行の割り当てと実行順序を記述したタスク実行遷移表１３０を作成する。
図２１は、本実施例におけるタスク実行遷移表を示している。タスク実行遷移表や処理経路確立要求などの制御情報を送信する方式には、ブロードキャスト方式と１対１方式とがある。
【０１０５】
図２２、図２３、図２４、図２５は、それぞれ本実施例におけるブロードキャスト方式を説明する図である。他の実施例においても同様にブロードキャスト方式でタスク実行遷移表や制御情報をプロセッシング・エレメントまたはクライアントに送信できる。
図２２において、コントロール・ユニットＣＵは、タスク実行遷移表を作成したら全プロセッシング・エレメントＰＥに同報通信（ブロードキャスト）する。各プロセッシング・エレメントＰＥは、タスク実行遷移表１３０を受信すると、自分のＩＰと実行ＩＰとが一致する行の情報だけを取得する。プロセッシング・エレメントＰＥは、タスク実行遷移表１３０内において、自分のＩＰアドレスと実行ＩＰアドレスとが一致する行が存在しない場合は、コントロール・ユニットＣＵにエラーを返す。
【０１０６】
以下本実施例では、コントロール・ユニットＣＵが発行するタスク実行遷移表が計算資源確保要求の機能を果たしている。
【０１０７】
図２３は、ブロードキャスト方式における、プロセッシング・エレメントＰＥが専用ハードウェアのときの計算資源の確保のシーケンスを示している。専用ハードウェアで構成されたプロセッシング・エレメントＰＥ２、４、５、６、７は自分のＦＩＤと要求されたＴＩＤが一致する場合は、タスクの処理に必要な計算資源を確保し、計算資源確保成功をコントロール・ユニットＣＵに返す。要求されたタスク処理に必要な機能を提供できない場合はエラーを返す。
【０１０８】
（資源の確保）
図２４は、ブロードキャスト方式における、プロセッシング・エレメントＰＥが汎用ＣＰＵのときの計算資源の確保のシーケンスを示している。汎用ＣＰＵで構成されたＰＥは自分のＦＩＤのうちの一つと要求されたＴＩＤが一致する場合は、点線内の処理は実行せずにタスクの処理に必要な計算資源を確保し、計算資源確保成功をコントロール・ユニットＣＵに返す。要求されたタスク処理に必要な機能を提供できない場合は点線内の処理に入りプログラム要求をコントロール・ユニットＣＵに返す。
【０１０９】
コントロール・ユニットＣＵはプログラム要求を受信するとライブラリからＰＥＴとＴＩＤとが一致する該当するプログラムを検索する。そして、コントロール・ユニットＣＵは、取得したプログラムをプロセッシング・エレメントＰＥに送信する。
【０１１０】
プロセッシング・エレメントＰＥ３は、プログラムを受信したとき、要求した機能との一致やメモリの空き容量などから実行可能性を判断する。実行不可能な場合はコントロール・ユニットＣＵにエラーを返す。必要に応じて、不要なプログラムと対応するＦＩＤを削除した後で、新たに追加するプログラムのＦＩＤを追加し、プログラムをメモリに展開する。その後、プロセッシング・エレメントＰＥは、計算資源確保成功をコントロール・ユニットＣＵに送信する。
【０１１１】
本実施例では、ＰＥ３はＦＩＤが６６５の機能を実現するプログラムをメモリから削除し、ＦＩＤ１０３を実現するプログラムを新たにロードする。この時、コントロール・ユニットＣＵは、プロセッシング・エレメント接続表１２０を更新する。
図２５は、プロセッシング・エレメント接続表１２０を更新した状態を示している。
【０１１２】
なお、プロセッシング・エレメントＰＥが、仮想マシンであるとき、ダイナミック・プロセッシング・ライブラリは、汎用プロセッシング・エレメントが備える仮想処理部に対応するプログラムを含んでいる。
【０１１３】
（処理経路の確立）
図２６において、コントロール・ユニットＣＵは各プロセッシング・エレメントＰＥから計算資源確保成功を受け取った後、経路確立が必要なすべてのプロセッシング・エレメントＰＥに処理経路の確立要求をブロードキャストする。処理経路確立要求を受信したすべてのプロセッシング・エレメントＰＥは、一斉に処理経路を確立し、処理経路確立完了をコントロール・ユニットＣＵに通知する。コントロール・ユニットＣＵがタスク実行要求をサービス実行要求ＰＥ１に送信すると、サービス実行要求ＰＥ１は処理を開始する。
【０１１４】
データの処理が終了すると、プロセッシング・エレメントＰＥ７はタスク実行完了をコントロール・ユニットＣＵに送信する。コントロール・ユニットＣＵは処理経路解放要求を経路解放が必要なすべてのプロセッシング・エレメントＰＥにブロードキャストする。処理経路解放要求を受信したプロセッシング・エレメントＰＥは、一斉に処理経路を解放し、処理経路解放完了をコントロール・ユニットＣＵに通知する。
【０１１５】
コントロール・ユニットＣＵはすべての処理経路解放完了を受信すると、計算資源解放要求を計算資源解放が必要なすべてのプロセッシング・エレメントＰＥにブロードキャストする。計算資源解放要求を受信したプロセッシング・エレメントＰＥは、一斉に計算資源を解放し、計算資源解放完了をコントロール・ユニットＣＵに通知する。
【０１１６】
（１対１方式）
次に、上述したブロードキャスト方式とは異なる１対１方式について説明する。１対１方式は、コントロール・ユニットＣＵが確保するすべてのプロセッシング・エレメントＰＥのそれぞれに対応するタスク実行遷移表１３０の一部や制御情報を送信する方式である。つまり、コントロール・ユニットＣＵと、各プロセッシング・エレメントＰＥとが１対１となるようにタスク実行遷移表１３０を送信する。他の実施例においても同様に１対１方式でタスク実行遷移表や制御情報をプロセッシング・エレメントまたはクライアントに送信できる。
【０１１７】
図２７、図２８、図２９、図３０は、それぞれ１対１方式を説明する図である。コントロール・ユニットＣＵは、１対１方式において、タスク実行遷移表１３０全体を各プロセッシング・エレメントＰＥに送信しても良い。このときは、
（ａ）各プロセッシング・エレメントＰＥは、タスク実行遷移表１３０を受信すると、自分のＩＰと実行ＩＰとが一致する行の情報だけを取得する。
（ｂ）プロセッシング・エレメントＰＥは、タスク実行遷移表１３０内において、自分のＩＰアドレスと実行ＩＰアドレスとが一致する行が存在しない場合は、コントロール・ユニットＣＵにエラーを返す。
【０１１８】
（計算資源確保）
ブロードキャスト方式と同様に、各プロセッシング・エレメントＰＥは計算資源を確保できれば、計算資源確保成功をコントロール・ユニットＣＵに送信する。確保できない場合は、ＣＵに該当機能を実現するプログラムを要求するかエラーを返す。
【０１１９】
（経路確立要求と経路確立）
コントロール・ユニットＣＵは各プロセッシング・エレメントＰＥから計算資源確保成功を受け取った後、経路確立が必要なプロセッシング・エレメントＰＥの一つずつに対して処理経路確立要求を送信する。処理経路確立要求を受け付けたプロセッシング・エレメントＰＥは、処理経路を確立し、処理経路確立完了をコントロール・ユニットＣＵに通知する。上述のシーケンスを必要なプロセッシング・エレメントＰＥの数だけ繰り返す。コントロール・ユニットＣＵがタスク実行要求をサービス実行要求ＰＥ１に送信すると、サービス実行要求ＰＥ１は処理を開始する。
【０１２０】
データの処理が終了すると、プロセッシング・エレメントＰＥ７はタスク実行完了をコントロール・ユニットＣＵに送信する。コントロール・ユニットＣＵは処理経路解放要求を経路解放が必要なプロセッシング・エレメントＰＥの一つずつに対して送信する。処理経路解放要求を受け付けたプロセッシング・エレメントＰＥは処理経路を解放し、処理経路解放完了をコントロール・ユニットＣＵに通知する。上述のシーケンスを必要なプロセッシング・エレメントＰＥの数だけ繰り返す。
【０１２１】
コントロール・ユニットＣＵはすべての処理経路解放完了を受信すると、計算資源解放要求を計算資源の解放が必要なプロセッシング・エレメントＰＥの一つずつに対して送信する。要求を受信したプロセッシング・エレメントＰＥは、計算資源を解放し、計算資源解放完了をコントロール・ユニットＣＵに通知する。上述のシーケンスを必要なプロセッシング・エレメントＰＥの数だけ繰り返す。
【０１２２】
上述した計算資源確保・解放、処理経路確立・解放もプロセッシング・エレメントＰＥごとに順を追って実行してゆく。１対１方式では、いずれのプロセッシング・エレメントＰＥまでの計算資源確保と処理経路確立および計算資源解放と処理経路解放が可能であるかをトレースできる。
【０１２３】
（ブロードキャスト方式と１対１方式との組合せ）
また、計算資源確保と処理経路確立について、それぞれ１対１方式、ブロードキャスト方式を組み合わせることができる。さらに、計算資源確保を行わない場合も存在する。即ち、以下の７通りのパターンの組み合わせが可能である。
【０１２４】
パターン        計算資源確保          処理経路確立
１              ブロードキャスト      ブロードキャスト
２              ブロードキャスト      １対１
３              １対１                ブロードキャスト
４              １対１                １対１
５              行わない              ブロードキャスト
６              行わない              １対１
７              行わない              行わない
【０１２５】
例えば、プロセッシング・エレメントＰＥを計算資源として確保するときは、一斉に確保すること、以前に実行されたサービスの一部を流用できる場合には、サービスを構成するタスクの一部に必要な計算資源のみを確保すること等ができる。計算資源の確保は不要な場合もある。処理経路についてもすべてを一斉に確立しなければならない場合と一部を再構成すればよい場合がある。
【０１２６】
次に、各パターンについて説明する。なお、以下の説明において、Ｎ＞Ｍの場合（Ｎ，Ｍは整数）、サービスＮはサービスＭよりも後にサービス実行要求を受け付けたことを表している。例えば、サービス２は、サービス１よりも後にサービス実行要求を受け付けていることを示す。また、タスクＡ〜Ｅは、各プロセッシング・エレメントＰＥが実行するタスクを表している。
【０１２７】
（パターン１）
パターン１は、計算資源確保をブロードキャスト方式、処理経路確立をブロードキャストで行う場合である。パターン１は、基本パターンであり、通常はパターン１で計算資源の確保と処理経路の確立を行う。パターン１では、すべて一括で処理できるので効率が良い。
【０１２８】
（パターン２）
パターン２は、計算資源確保をブロードキャスト方式、処理経路確立を１対１方式で行う場合である。通常は使用する必要がないが、処理経路の確立を一つずつトレースして経路の状態だけをモニタリングする場合には有効である。
【０１２９】
（パターン３）
パターン３は、計算資源確保を１対１方式、処理経路確立をブロードキャスト方式で行う場合である。具体例を以下に示す。
サービス１：タスクＡ→Ｂ→Ｃ
サービス２：タスクＡ→Ｃ→Ｄ→Ｂ
この場合は、サービス２はサービス１に対してタスクＤを処理する計算資源が不足しているだけである。ただし処理経路は全く異なるので、サービス１実行後、すべての処理経路を解放する。その後計算資源Ｄを１対１方式で確保し、サービス２の処理経路をブロードキャスト方式で確立すれば効率がよい。
別の使用方法として、計算資源の確保だけを一つずつトレースして計算資源の状態だけをモニタリングする場合には有効である。
【０１３０】
（パターン４）
パターン４は、計算資源確保を１対１方式、処理経路確立を１対１方式で行う場合である。具体例を以下に示す。
サービス１：タスクＡ→Ｂ→Ｃ
サービス２：タスクＡ→Ｂ→Ｄ
サービス３：タスクＥ→Ｂ→Ｄ
この場合は、サービス２はサービス１の一部（タスクＡ、タスクＢ）を使用し、サービス３はサービス２の一部（タスクＢ、タスクＤ）を使用するという場合である。このとき、サービス２のタスクＤについて計算資源確保を１対１方式、経路Ｂ−Ｄにおいて処理経路確立を１対１方式で行う。同様にサービス３のタスクＥについて１対１方式で計算資源を確保し、Ｅ−Ｂ間の処理経路について１対１方式で処理経路を確立する。
【０１３１】
こうすることで、部分的に計算資源と処理経路を組み替えることができる。そのほか、１対１方式を用いると、計算資源をどこまで確保したかと処理経路をどこまで確立したかを追跡できる。このため、計算資源確保や処理経路確立の状況やエラーの発生状況などを逐一モニタリングできる。
【０１３２】
（パターン５）
パターン５は、計算資源確保を行わず、処理経路確立をブロードキャスト方式で行う場合である。具体例を以下に示す。
サービス１：タスクＡ→Ｂ→Ｃ→Ｄ
サービス２：タスクＡ→Ｃ→Ｄ→Ｂ
サービス２がサービス１のすべてのプロセッシング・エレメントＰＥをそのまま使うが経路が全く異なる場合はこの組み合わせパターンが効率的である。
【０１３３】
（パターン６）
パターン６は、計算資源確保を行わず、処理経路確立を１対１方式で行う場合である。具体例を以下に示す。
サービス１：タスクＡ→Ｂ→Ｃ→Ｄ
サービス２：タスクＡ→Ｂ→Ｄ
サービス１を構成するタスクだけでサービス２が構成でき、サービス１の一部の経路を組み替えるだけでサービス２が構成できる。このときサービス２において、処理経路確立のみを１対１方式で行う。処理経路の変更箇所が多数ある場合でも、上述のように各処理経路の確立状況やエラーをトレースしたい場合には本方式を用いることができる。
【０１３４】
（パターン７）
パターン７は、計算資源確保を行わず、処理経路確立も行わない場合である。具体例を以下に示す。
サービス１：タスクＡ→Ｂ→Ｃ→Ｄ
サービス２：タスクＡ→Ｂ→Ｃ
すなわち、サービス１の一部の計算資源と処理経路を解放するだけでサービス２の提供が可能な場合である。
【０１３５】
上述の７パターンのほかに組み合わせとしては以下の２パターンが存在するが、計算資源を新規に確保した場合は経路を確立しないと当該計算資源を使用できないため、このようなパターンは事実上存在しない。
パターン        計算資源確保          処理経路確立
８              ブロードキャスト      行わない
９              １対１                行わない
【０１３６】
（ブロードキャスト方式と１対１方式との組合せ）
同様に、処理経路解放と計算資源解放とについてそれぞれ１対１方式、ブロードキャスト方式を組み合わせることができる。計算資源解放を行わない場合も存在する。即ち、以下の７通りのパターンの組み合わせが可能である。
【０１３７】
パターン        計算資源解放          処理経路解放
１１            ブロードキャスト      ブロードキャスト
１２            ブロードキャスト      １対１
１３            １対１                ブロードキャスト
１４            １対１                １対１
１５            行わない              ブロードキャスト
１６            行わない              １対１
１７            行わない              行わない
【０１３８】
例えば、計算資源として確保したプロセッシング・エレメントＰＥを解放する場合は、一斉に解放すること、確保した計算資源の一部を以後に実行するサービスでも流用できる場合には、以後のタスクに不要な一部の計算資源のみを解放すること等ができる。計算資源の解放は不要な場合もある。処理経路についてもすべてを一斉に解放しなければならない場合と一部を解放すればよい場合がある。
【０１３９】
次に、各パターンについて説明する。なお、以下の説明において、Ｎ＞Ｍの場合（Ｎ，Ｍは整数）、サービスＮはサービスＭよりも後にサービス実行要求を受け付けたことを表している。例えば、サービス２は、サービス１よりも後にサービス実行要求を受け付けていることを示す。また、タスクＡ〜Ｅは、各プロセッシング・エレメントＰＥが実行するタスクを表している。
【０１４０】
（パターン１１）
パターン１１は、計算資源解放をブロードキャスト方式、処理経路解放をブロードキャストで行う場合である。パターン１１は、基本パターンであり、通常はパターン１１で計算資源の解放と処理経路の解放を行う。パターン１１では、すべて一括で処理できるので効率が良い。
【０１４１】
（パターン１２）
パターン１２は、計算資源解放をブロードキャスト方式、処理経路解放を１対１方式で行う場合である。通常は使用する必要がないが、処理経路の解放を一つずつトレースして経路の状態だけをモニタリングする場合には有効である。
【０１４２】
（パターン１３）
パターン１３は、計算資源解放を１対１方式、処理経路解放をブロードキャスト方式で行う場合である。具体例を以下に示す。
サービス１： タスクＡ→Ｃ→Ｄ→Ｂ
サービス２： タスクＡ→Ｂ→Ｃ
この場合は、サービス２はサービス１に対してタスクＤを処理する計算資源だけが不要である。ただし処理経路は全く異なるので、サービス１の実行後、すべての処理経路をブロードキャスト方式で解放する。その後計算資源Ｄだけを１対１方式で解放すれば、サービス２で使用する計算資源をすべて残しておくことができる。別の使用方法として、計算資源の解放だけを一つずつトレースして計算資源の状態だけをモニタリングする場合には有効である。
【０１４３】
（パターン１４）
パターン１４は、計算資源解放を１対１方式、処理経路解放を１対１方式で行う場合である。具体例を以下に示す。
サービス１：タスクＡ→Ｂ→Ｃ
サービス２：タスクＡ→Ｂ→Ｄ
サービス３：タスクＥ→Ｂ→Ｄ
この場合は、サービス２はサービス１の一部（タスクＡ、タスクＢ）を使用し、サービス３はサービス２の一部（タスクＢ、タスクＤ）を使用するという場合である。このとき、サービス１のタスクＣにおいて計算資源解放を１対１方式、Ｂ−Ｃ間の処理経路解放を１対１方式で行う。サービス２のタスクＡとＡ−Ｂ間の処理経路についても同様である。こうすることで、部分的に計算資源と処理経路を組み替えることができる。そのほか、１対１方式を用いると、計算資源をどこまで解放したかと処理経路をどこまで解放したかを追跡できる。このため、計算資源解放や処理経路解放の状況やエラーの発生状況などを逐一モニタリングできる。
【０１４４】
（パターン１５）
パターン１５は、計算資源解放を行わず、処理経路解放をブロードキャスト方式で行う場合である。具体例を以下に示す。
サービス１：タスクＡ→Ｂ→Ｃ→Ｄ
サービス２：タスクＡ→Ｃ→Ｄ→Ｂ
サービス２がサービス１のすべてのプロセッシング・エレメントＰＥをそのまま使うが経路が全く異なる場合はこの組み合わせパターンが効率的である。
【０１４５】
（パターン１６）
パターン１６は、計算資源解放を行わず、処理経路解放を１対１方式で行う場合である。具体例を以下に示す。
サービス１：タスクＡ→Ｂ→Ｄ
サービス２：タスクＡ→Ｂ→Ｃ→Ｄ
サービス１を構成するすべてのタスクがサービス２に必要であり、サービス１の一部の経路をサービス２にそのまま使用できる。この場合、サービス２において、処理経路Ｂ−Ｄ間の処理経路解放のみを１対１方式で行う。処理経路の変更箇所が多数ある場合でも、上述のように各処理経路の解放状況やエラーをトレースしたい場合には本方式を用いる。
【０１４６】
（パターン１７）
パターン１７は、計算資源解放を行わず、処理経路解放も行わない場合である。具体例を以下に示す。
サービス２：タスクＡ→Ｂ→Ｃ
サービス１：タスクＡ→Ｂ→Ｃ→Ｄ
すなわち、サービス１のすべての計算資源と処理経路がサービス２で必要な場合は計算資源の解放と処理経路の解放を行わない。
【０１４７】
上述の７パターンのほかに組み合わせとしては以下の２パターンが存在する。しかしながら、計算資源を解放しながら経路だけは残るという状況が発生する。このため、このようなパターンは事実上存在しない。
パターン        計算資源解放          処理経路解放
１８            ブロードキャスト      行わない
１９            １対１                行わない
【０１４８】
本実施例によれば、要求に応じて異なる機能を動的に入れ替えること、機能が存在しない場合の代替手段を実現することができるコントロール・ユニットを提供できる。
また、１対１方式においては、計算資源として繰り返し使用できるプロセッシング・エレメントＰＥは、解放しないで、そのまま確保しておくことができる。このため、再確保する必要がなくなる。
【実施例２】
【０１４９】
次に、本発明の実施例２に係るコントロール・ユニットＣＵを備える分散処理システムについて説明する。実施例２に係るコントロール・ユニットＣＵの基本的な構成および基本的な動作については、前述した実施例１と同じであるので、実施例１と同一の部分には同一の符号を付して、重複する説明は省略する。実施例１の重複する説明において参照した図面については、当然実施例２にも適応される。
【０１５０】
（ダイナミック・リコンフィギャラブル・プロセッサ）
図３１−Ａは、本実施例におけるコントロール・ユニットを有する分散処理システムのモデルを示している。コントロール・ユニットＣＵには、７個のプロセッシング・エレメントＰＥ１〜ＰＥ７が接続されている。プロセッシング・エレメントＰＥ１は、サービス実行要求プロセッシング・エレメントであり、Ｂ社製の汎用ＣＰＵである。プロセッシング・エレメントＰＥ３は、ダイナミック・リコンフィギャラブル・プロセッサ（ＤＲＰ）である。その他のプロセッシング・エレメントＰＥ２、ＰＥ４〜ＰＥ７は、専用ハードウェアである。プロセッシング・エレメントＰＥ２、ＰＥ４〜ＰＥ７は所定の機能を提供する専用のソフトウェアでも実現できる。
【０１５１】
ダイナミック・リコンフィギャラブル・プロセッサとは、上述したように、アプリケーションに最適な形に、リアルタイムでハードウェアを再構成できるプロセッサで、高い処理スピードと高いフレキシビリティを同時に可能とするＩＣである。
【０１５２】
図３１−Ｂは、本実施例におけるＪＰＥＧデコード処理の流れとシステム構成の対応を示している。この例では、ＣＵがダイナミック・リコンフィギャラブル・プロセッサであるプロセッシング・エレメントＰＥ３にエントロピー復号化機能を提供する再構成情報をライブラリから動的にダウンロードすることで、ダイナミック・リコンフィギャラブル・プロセッサにエントロピー復号化タスクの実行をさせてＪＰＥＧデコード処理の一部を実現している。
【０１５３】
ダイナミック・リコンフィギャラブル・プロセッサに対応したダイナミック・プロセッシング・ライブラリは、例えばダイナミック・リコンフィギャラブル・プロセッサ内部の配線情報であり、ダイナミック・リコンフィギャラブル・プロセッサであるプロセッシング・エレメントＰＥ３はライブラリの情報を使って動的に結線を切り替え、エントロピー復号化の機能を提供する。その他の機能はプロセッシング・エレメントＰＥ２およびＰＥ４〜ＰＥ７において専用ハードウェアで実行する。
【０１５４】
（実施例２のフローチャート）
図３２は、本実施例におけるプロセッシング・エレメントのうちダイナミック・リコンフィギャラブル・プロセッサであるプロセッシング・エレメントＰＥ３の基本的な制御のフローチャートを示している。なお、本フローチャートは基本的な流れを示している。詳細な手順については後述する。
【０１５５】
プロセッシング・エレメントＰＥ３は、処理要求を受信する。ステップＳ２５０１において、自分の機能と要求された機能とが一致するか否かが判断される。
【０１５６】
ステップＳ２５０１の判断結果が真のとき、上述した実施例１と同様に、計算資源の確保と、処理経路の確立が行われる（ステップＳ２５０２、Ｓ２５０３）。そして、ステップＳ２５０４においてデータ処理を行う。ステップＳ２５０５で処理経路と計算資源を解放する。ステップＳ２５０１の判断結果が偽のとき、ステップＳ２５０６において、機能の変更が可能か否かについて判断される。
【０１５７】
ステップＳ２５０６の判断結果が真のとき、ステップＳ２５０７において、必要に応じて再構成情報の要求、受信を行う。そして、ステップＳ２５０８において、プロセッシング・エレメントＰＥ３の機能の変更を行う。ステップＳ２５０４において、データ処理を実行する。ステップＳ２５０６の判断結果が偽のとき、処理を終了する。
【０１５８】
（ＰＥ（ＤＲＰ）の制御フロー）
次に、図３３に基づいて、ダイナミック・リコンフィギャラブル・プロセッサであるプロセッシング・エレメントＰＥ３を含むプロセッシング・エレメントに関する制御の手順を説明する。
【０１５９】
ステップＳ２６０１において、プロセッシング・エレメントＰＥが初期化される。ステップＳ２６０２において、プロセッシング・エレメントＰＥは、タスク実行遷移表を受信したか否かが判断される。
【０１６０】
ステップＳ２６０２の判断結果が真のとき、ステップＳ２６０３において、プロセッシング・エレメントＰＥ自身のＩＰアドレスと実行ＩＰアドレスとが一致する行が存在するか否かが判断される（タスク実行遷移表の全体を送信する場合）。ステップＳ２６０２の判断結果が偽のとき、ステップＳ２６０２を繰り返す。
【０１６１】
ステップＳ２６０３の判断結果が真のとき、ステップＳ２６０４において、プロセッシング・エレメントＰＥの自分のＦＩＤの一つがＴＩＤと一致するか否かが判断される。ステップＳ２６０３の判断結果が偽のとき、処理を終了する。
【０１６２】
ステップＳ２６０４の判断結果が真のとき、ステップＳ２６０８において、プロセッシング・エレメントは計算資源を確保し、計算資源確保成功をコントロール・ユニットＣＵに通知する。
【０１６３】
ステップＳ２６０４の判断結果が偽のとき、ステップＳ２６０５において、プロセッシング・エレメントＰＥ３（ダイナミック・リコンフィギャラブル・プロセッサ）の機能が、ＴＩＤと一致する機能に変更可能か否かが判断される。
【０１６４】
ステップＳ２６０５の判断結果が偽のとき、処理を終了する。ステップＳ２６０５の判断結果が真のとき、ステップＳ２６０６において、再構成情報の要求と受信とを行う。ステップＳ２６０７において、プロセッシング・エレメントＰＥ３のＦＩＤを書き換えて、ステップＳ２６０８において計算資源を確保し、計算資源確保成功をコントロール・ユニットＣＵに通知する。
【０１６５】
ステップＳ２６０９において、プロセッシング・エレメントＰＥは、経路確立要求を受信する。ステップＳ２６１０において、処理経路を確立し、処理経路確立完了をコントロール・ユニットＣＵに通知する。
【０１６６】
ステップＳ２６１１において、タスク処理を行う。ステップＳ２６１２において、コントロール・ユニットＣＵから、解放要求を受信する。そして、ステップＳ２６１３において、処理経路と計算資源とを解放する。
【０１６７】
このように、本実施例では、コントロール・ユニットＣＵは、専用ハードウェアおよび専用ソフトウェアを含む専用プロセッシング・エレメントＰＥの特定の機能をダイナミック・リコンフィギャラブル・プロセッサに実現するための再構成情報を含むダイナミック・プロセッシング・ライブラリを管理する。
【０１６８】
ここで、「再構成情報」には、ダイナミック・リコンフィギャラブル・プロセッサの配線情報、処理内容を設定するパラメータを含んでいる。そして、コントロール・ユニットＣＵは、ダイナミック・リコンフィギャラブル・プロセッサに対し、ダイナミック・プロセッシング・ライブラリを参照して、再構成情報をプロセッシング・エレメントＰＥに送信する。プロセッシング・エレメントＰＥは特定の機能を実行させるために、再構成情報を使って動的にダイナミック・リコンフィギャラブル・プロセッサのハードウェアを再構成する。
【０１６９】
実施例１では、汎用プロセッシング・エレメントＰＥは、新たに追加するプログラムのＦＩＤを追加し、プログラムをメモリに展開している。これに対して、本実施例では、ダイナミック・リコンフィギャラブル・プロセッサは、特定の機能を実行させるために、再構成情報を使って動的にハードウェアを再構成する点が異なる。
【実施例３】
【０１７０】
次に、本発明の実施例３に係るコントロール・ユニットＣＵを備える分散処理システムについて説明する。実施例３に係るコントロール・ユニットＣＵの基本的な構成および基本的な動作については、前述した実施例１、実施例２と同じであるので、実施例１、実施例２と同一の部分には同一の符号を付して、重複する説明は省略する。また、実施例１、実施例２と重複する説明において参照した図面については、実施例３にも適応される。
【０１７１】
図３４−Ａは、本実施例におけるコントロール・ユニットを有する分散処理システムのモデルを示している。コントロール・ユニットＣＵには、７個のプロセッシング・エレメントＰＥ１〜ＰＥ７が接続されている。プロセッシング・エレメントＰＥ１は、サービス実行要求プロセッシング・エレメントであり、Ｂ社製の汎用ＣＰＵである。その他のプロセッシング・エレメントＰＥ２〜ＰＥ７は、すべて専用ハードウェアである。ただし、専用プロセッシング・エレメントはソフトウェアで実装しても構わない。
【０１７２】
図３４−Ｂは、本実施例におけるＪＰＥＧデコード処理の流れとシステム構成の対応を示している。この例では、ＪＰＥＧを構成する６つの機能のすべてをプロセッシング・エレメントＰＥ２〜ＰＥ７において専用ハードウェアで実行することができるため、ＣＵはライブラリからダイナミック・プロセッシング・ライブラリをダウンロードする必要はない。
【０１７３】
本実施例における専用ハードウェアであるプロセッシング・エレメントＰＥ３を例にして基本的な制御について説明する。専用ソフトウェアも同様の制御を行う。
図３５は、専用ハードウェアであるプロセッシング・エレメントＰＥ３の基本的な制御を示すフローチャートである。
【０１７４】
プロセッシング・エレメントＰＥ３は、処理要求を受信する。ステップＳ３４０１において、プロセッシング・エレメントＰＥ３は、自分の機能と要求された機能とが一致するか否かが判断される。
【０１７５】
ステップＳ３４０１の判断結果が偽のとき、処理を終了する。また、ステップＳ３４０１の判断結果が真のとき、上述した実施例１と同様に、計算資源の確保と、処理経路の確立が行われる（ステップＳ３４０２、ステップＳ３４０３）。ステップＳ３４０４において、データ処理を行う。ステップＳ３４０５において、処理経路と計算資源とを解放する。そして、処理を終了する。
【０１７６】
（ＰＥの制御フロー）
次に、図３６に基づいて、専用ハードウェアであるプロセッシング・エレメントＰＥの制御の手順を説明する。
【０１７７】
ステップＳ３５０１において、プロセッシング・エレメントＰＥが初期化される。ステップＳ３５０２において、プロセッシング・エレメントＰＥは、タスク実行遷移表を受信したか否かが判断される。
【０１７８】
ステップＳ３５０２の判断結果が真のとき、ステップＳ３５０３において、プロセッシング・エレメントＰＥ自身のＩＰアドレスと実行ＩＰアドレスとが一致する行が存在するか否かが判断される（タスク実行遷移表の全体を送信した場合）。ステップＳ３５０２の判断結果が偽のとき、ステップＳ３５０２を繰り返す。
【０１７９】
ステップＳ３５０３の判断結果が真のとき、ステップＳ３５０４において、プロセッシング・エレメントＰＥの自分のＦＩＤがＴＩＤと一致するか否かが判断される。ステップＳ３５０３の判断結果が偽のとき、プロセッシング・エレメントＰＥは、処理を終了する。
【０１８０】
ステップＳ３５０４の判断結果が真のとき、ステップＳ３５０５において、計算資源を確保し、計算資源確保成功をコントロール・ユニットＣＵに通知する。ステップＳ３５０６において、経路確立要求の受信を行う。ステップＳ３５０４の判断結果が偽のとき、プロセッシング・エレメントＰＥは、処理を終了する。
【０１８１】
ステップＳ３５０７において、処理経路を確立し、処理経路確立完了をコントロール・ユニットＣＵに通知する。
ステップＳ３５０８において、タスク処理が実行される。ステップＳ３５０９において、解放要求を受信する。ステップＳ３５１０において、通信経路と計算資源を解放する。そして、プロセッシング・エレメントＰＥは、処理を終了する。
【０１８２】
さらに、実施例３において、全てのプロセッシング・エレメントＰＥを専用ハードウェアで構成することもできる。
【０１８３】
なお、上記実施例において、処理システムが搭載するダイナミック・リコンフィギャラブル・プロセッサやＣＰＵ／仮想マシンの数に本実施例は依存しない。すなわち、実施例１、実施例２において、プロセッシング・エレメントがすべてダイナミック・リコンフィギャラブル・プロセッサやＣＰＵ／仮想マシンで構成されても良い。
【０１８４】
なお、上述した各実施例ではＩＰアドレスを用いて計算資源の照合をしている。しかしながらこれに限られず、他の識別子でも照合可能である。本発明は、その趣旨を逸脱しない範囲で様々な変形例をとることができる。
【０１８５】
ライブラリはサーバーから取得することもできる。サーバーはコントロール・ユニットＣＵ上に起動してもよいし、ＣＵの外部に起動してもよい。またコントロール・ユニットＣＵはライブラリの情報をキャッシュすることができる。
【０１８６】
なお、本発明に適用可能なアプリケーションはＪＰＥＧに限定されるものではなく、他の静止画コーデックやＭＰＥＧやＨ．２６４を含む動画像コーデックなどの符号化のほか、変換、特徴量抽出、認識、検出、解析、復元を含む画像処理にも適用できる。その他、音声処理、言語処理を含むマルチメディア処理のほか、有限要素法などの科学技術演算や統計処理にも適用できる。
【産業上の利用可能性】
【０１８７】
以上のように、本発明にかかるコントロール・ユニットは、分散処理システムに有用である。
【符号の説明】
【０１８８】
１００  携帯端末
１１０  サービス−タスク対応表
１２０  プロセッシング・エレメント接続表
１３０  タスク実行遷移表
ＣＵ    コントロール・ユニット
ＰＥ、ＰＥ１〜ＰＥ７    プロセッシング・エレメント
【図１−Ａ】
2010033555.tif 000003
【図１−Ｂ】
2010033555.tif 000004
【図２】
2010033555.tif 000005
【図３】
2010033555.tif 000006
【図４】
2010033555.tif 000007
【図５】
2010033555.tif 000008
【図６】
2010033555.tif 000009
【図７】
2010033555.tif 000010
【図８】
2010033555.tif 000011
【図９】
2010033555.tif 000012
【図１０】
2010033555.tif 000013
【図１１】
2010033555.tif 000014
【図１２】
2010033555.tif 000015
【図１３】
2010033555.tif 000016
【図１４】
2010033555.tif 000017
【図１５】
2010033555.tif 000018
【図１６−Ａ】
2010033555.tif 000019
【図１６−Ｂ】
2010033555.tif 000020
【図１７】
2010033555.tif 000021
【図１８】
2010033555.tif 000022
【図１９】
2010033555.tif 000023
【図２０】
2010033555.tif 000024
【図２１】
2010033555.tif 000025
【図２２】
2010033555.tif 000026
【図２３】
2010033555.tif 000027
【図２４】
2010033555.tif 000028
【図２５】
2010033555.tif 000029
【図２６】
2010033555.tif 000030
【図２７】
2010033555.tif 000031
【図２８】
2010033555.tif 000032
【図２９】
2010033555.tif 000033
【図３０】
2010033555.tif 000034
【図３１−Ａ】
2010033555.tif 000035
【図３１−Ｂ】
2010033555.tif 000036
【図３２】
2010033555.tif 000037
【図３３】
2010033555.tif 000038
【図３４−Ａ】
2010033555.tif 000039
【図３４−Ｂ】
2010033555.tif 000040
【図３５】
2010033555.tif 000041
【図３６】
2010033555.tif 000042