JP2010033555A - コントロール・ユニット、分散処理システム及び分散処理方法 - Google Patents

コントロール・ユニット、分散処理システム及び分散処理方法 Download PDF

Info

Publication number
JP2010033555A
JP2010033555A JP2009148353A JP2009148353A JP2010033555A JP 2010033555 A JP2010033555 A JP 2010033555A JP 2009148353 A JP2009148353 A JP 2009148353A JP 2009148353 A JP2009148353 A JP 2009148353A JP 2010033555 A JP2010033555 A JP 2010033555A
Authority
JP
Japan
Prior art keywords
processing element
control unit
information
processing
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009148353A
Other languages
English (en)
Inventor
Masanori Kubo
允則 久保
Arata Shinozaki
新 篠崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Olympus Corp
Original Assignee
Olympus Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Olympus Corp filed Critical Olympus Corp
Priority to JP2009148353A priority Critical patent/JP2010033555A/ja
Priority to US12/494,743 priority patent/US20100011370A1/en
Publication of JP2010033555A publication Critical patent/JP2010033555A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】極めて汎用性が高く、ネットワークに接続される全てのハードウェア、ソフトウェアを統一的に扱うためのコントロール・ユニット等を提供する。
【解決手段】コントロール・ユニットは、接続されたプロセッシング・エレメントの種類および機能に関する情報を判別する判別部と、プロセッシング・エレメントに、必要に応じて接続されたライブラリに含まれるプログラム情報またはハードウエアの再構成情報をロードするライブラリロード部と、プロセッシング・エレメントに実行させるタスクの1つ以上の組み合わせからなる任意のサービス情報と、判別部によって判別されたプロセッシング・エレメントの種類及び機能に関する情報と、からサービス情報に対応したプロセッシング・エレメントの組み合わせを含む実行遷移情報を生成し、それをプロセッシング・エレメントに送信する実行遷移情報制御部を有する。

【選択図】図1−B

Description

本発明は、コントロール・ユニット、分散処理システム及び分散処理方法に関するものである。
従来、自動的にサーバーから更新データとしてプログラムをダウンロードし、ある特定のハードウェアまたはソフトウェアの機能を修正・変更・拡張することが行われている。これは、自動的にサーバーから更新データとしてプログラムをダウンロードすることで、ある特定のハードウェアまたはソフトウェアの機能を修正・変更・拡張するシステムである。
コンピュータのオペレーティングシステム、例えばLinuxやWindows(登録商標)などでは、後から必要に応じてプログラムをサーバーから自動的にダウンロードしてインストールすることが行われている(例えば、非特許文献1参照)。ダウンロードするデータとしては、例えば、セキュリティーを強化するための更新データや、アプリケーションソフトの機能更新データなどである。
このように、自動的にサーバーから更新データとしてプログラムをダウンロードし、ある特定のハードウェアまたはソフトウェアの機能を修正・変更・拡張するシステムが知られている。
サーバー構築研究会編著、「Fedora Core5で作るネットワークサーバー構築ガイド」、秀和システム、2006年、pp.88−101
しかしながら、上述した従来技術では、ある特定のハードウェアの機能またはソフトウェアの機能を修正すること、変更すること、拡張すること等を意図したものである。このため、汎用性に欠けている。
本発明は、上記に鑑みてなされたものであって、極めて汎用性が高く、ネットワークに接続される全てのハードウェア、ソフトウェアを統一的に扱うことができるコントロール・ユニット,分散処理システム、及び分散処理方法を提供することを目的とする。
上述した課題を解決し、目的を達成するために、第1の側面にしたがう本発明によれば、
プロセッシング・エレメントが接続されたコントロール・ユニットであって、
前記コントロール・ユニットは、接続された前記プロセッシング・エレメントの種類および機能に関する情報を判別する判別部と、
前記プロセッシング・エレメントに、必要に応じて接続されたライブラリに含まれるプログラム情報またはハードウエアの再構成情報をロードするライブラリロード部と、
前記プロセッシング・エレメントに実行させるタスクの1つ以上の組み合わせからなる任意のサービス情報と、前記判別部によって判別された前記プロセッシング・エレメントの種類及び機能に関する情報と、から前記サービス情報に対応した前記プロセッシング・エレメントの組み合わせを含む実行遷移情報を生成し、それを前記プロセッシング・エレメントに送信する実行遷移情報制御部と、
を有することを特徴とするコントロール・ユニットを提供できる。
また、本発明の好ましい態様によれば、前記プロセッシング・エレメントは、所定の前記機能を実行する専用プロセッシング・エレメントと、入力される前記プログラムによって前記機能が変更される汎用プロセッシング・エレメントと、入力される前記再構成情報によってハードウェアを再構成するダイナミック・リコンフィギャラブル・プロセッサと、の少なくとも一つを含み、
前記実行遷移情報制御部は、前記判別部が前記汎用プロセッシング・エレメントまたは前記ダイナミック・リコンフィギャラブル・プロセッサであることを判別したときに、それらに対応する前記プログラム情報または前記再構成情報を考慮して前記実行遷移情報を生成することが好ましい。
また、本発明の好ましい態様によれば、前記プロセッシング・エレメントは、前記を汎用プロセッシング・エレメント含み、
前記ライブラリは、前記実行遷移情報に含まれた所定の機能を前記汎用プロセッシング ・エレメントに実行させるための前記プログラム情報を含み、
前記汎用プロセッシング・エレメントが前記実行遷移情報に含まれた所定の機能を実行させるための前記プログラムを保持していないとき、前記ライブラリロード部は、前記汎用プロセッシング・エレメントに対し、前記ライブラリを参照して、前記プログラム情報をロードし、
前記特定の機能を実行させるために、前記汎用プロセッシング・エレメントに前記プログラムを動的に配信することが好ましい。
また、本発明の好ましい態様によれば、前記ライブラリロード部は、前記汎用プロセッシング・エレメントの要求によって前記汎用プロセッシング・エレメントに前記プログラムを動的に配信することが好ましい。
また、本発明の好ましい態様によれば、前記コントロール・ユニットは、前記プログラムをサーバーから取得することが好ましい。
また、本発明の好ましい態様によれば、前記汎用プロセッシング・エレメントは、複数の機能のうちの前記特定の機能を行うための仮想処理部を備えることが好ましい。
また、本発明の好ましい態様によれば、前記ライブラリは、前記汎用プロセッシング・エレメントが備える前記仮想処理部に対応するプログラムを含むことが好ましい。
また、本発明の好ましい態様によれば、前記プロセッシング・エレメントは、前記ダイナミック・リコンフィギャラブル・プロセッサを含み、
前記ライブラリは、前記実行遷移情報に含まれた所定の機能を前記ダイナミック・リコ ンフィギャラブル・プロセッサに実現するための前記再構成情報を含み、
前記ライブラリロード部は、前記ダイナミック・リコンフィギャラブル・プロセッサが前記実行遷移情報に含まれた所定の機能を実行させるための前記再構成情報を保持していないとき、前記ダイナミック・リコンフィギャラブル・プロセッサに対し、前記ライブラリを参照して、前記再構成情報をロードし、
前記特定の機能を実行させるために、動的に前記ダイナミック・リコンフィギャラブル・プロセッサのハードウェアを再構成することが好ましい。
また、本発明の好ましい態様によれば、前記ライブラリロード部は、前記ダイナミック・リコンフィギャラブル・プロセッサの要求によって前記ダイナミック・リコンフィギャラブル・プロセッサに前記再構成情報を動的に配信することが好ましい。
また、本発明の好ましい態様によれば、前記コントロール・ユニットは、前記再構成情報をサーバーから取得することが好ましい。
また、本発明の好ましい態様によれば、前記実行遷移情報制御部は、クライアントから要求された前記サービス情報に基づいて前記実行遷移情報を生成し、それを前記プロセッシング・エレメントまたは、前記クライアントに送信し、
前記プロセッシング・エレメントまたは前記クライアントが、受信した前記実行遷移情報の中で該当する前記タスクを実行可能か否か判断し、その実行可否判断情報を前記実行遷移情報制御部に送信することによって、前記実行遷移情報に含まれる前記タスクの処理経路が決定されることが好ましい。
また、本発明の好ましい態様によれば、前記コントロール・ユニットは、前記実行遷移情報に含まれるタスクを実行するための計算資源の確保要求と解放要求および処理経路の確立要求と解放要求に関する制御情報を、前記タスクに対応する前記プロセッシング・エレメントまたは前記クライアントに送信することが好ましい。
また、本発明の好ましい態様によれば、前記コントロール・ユニットは、同一の前記実行遷移情報または前記制御情報を、前記実行遷移情報に含まれる前記プロセッシング・エレメントと、前記クライアントとに対して、一斉に送信することが好ましい。
また、本発明の好ましい態様によれば、前記実行遷移情報または前記制御情報を、前記実行遷移情報に含まれる前記プロセッシング・エレメントと、前記クライアントとに対して、それぞれに送信することが好ましい。
また、本発明の好ましい態様によれば、前記実行遷移情報制御部は、前記実行遷移情報のうち、特定のタスクを実行するために必要な前記プロセッシング・エレメントごと対応する前記実行遷移情報を抽出し、抽出された前記実行遷移情報を前記プロセッシング・エレメントに対して、それぞれ送信することが好ましい。
また、第2の側面にしたがう本発明によれば、プロセッシング・エレメントと、
前記プロセッシング・エレメントが接続されるコントロール・ユニットと、を有する分散処理システムであって、
前記コントロール・ユニットは、上述の前記コントロール・ユニットであることを特徴とする分散処理システムを提供できる。
また、本発明の好ましい態様によれば、前記プロセッシング・エレメントは、前記機能を実行する専用プロセッシング・エレメントと、入力される前記プログラムによって前記機能を変更できる汎用プロセッシング・エレメントと、入力される前記再構成情報によってハードウェアを再構成するダイナミック・リコンフィギャラブル・プロセッサと、の少なくとも一つを含み、
前記実行遷移情報制御部は、前記判別部が前記汎用プロセッシング・エレメントまたは前記ダイナミック・リコンフィギャラブル・プロセッサであることを判別したときに、それらに対応する前記プログラム情報または前記再構成情報を考慮して前記実行遷移情報を生成することが好ましい。
また、本発明の好ましい態様によれば、さらに、前記コントロール・ユニットに対してサービス実行要求を送信するクライアントを有することが好ましい。
また、第3の側面にしたがう本発明によれば、コントロール・ユニットに接続された前記プロセッシング・エレメントの種類および機能に関する情報を判別する判別ステップと、
前記プロセッシング・エレメントに、必要に応じて接続されたライブラリに含まれるプログラム情報またはハードウエアの再構成情報をロードするライブラリロード・ステップと、
前記プロセッシング・エレメントに実行させるタスクの1つ以上の組み合わせからなる任意のサービス情報と、前記判別部によって判別された前記プロセッシング・エレメントの種類及び機能に関する情報と、から前記サービス情報に対応した前記プロセッシング・エレメントの組み合わせを含む実行遷移情報を生成し、それを前記プロセッシング・エレメントに送信する実行遷移情報制御ステップと、
前記プロセッシング・エレメントまたは前記クライアントが、受信した前記実行遷移情報の中で該当する前記タスクを実行可能か否か判断することによって、前記実行遷移情報に含まれるタスクの処理経路が決定される処理経路決定ステップと、
を有することを特徴とする分散処理方法を提供できる。
本発明にかかるコントロール・ユニットは、極めて汎用性が高く、ネットワークに接続される全てのハードウェア、ソフトウェアを統一的に扱うことができるコントロール・ユニット、分散処理システム、及び分散処理方法を提供できるという効果を奏する。
本発明の実施例1に係るコントロール・ユニットを有する分散処理システムのモデルを示す図である。 本発明の実施例1に係るコントロール・ユニットを含む処理システム全体の概略構成を示す図である。 JPEGデコードの手順を示すフローチャートである。 TIDとタスクとの関係を示す図である。 SIDとサービスとの関係を示す図である。 PEタイプを示す図である。 ライブラリ一覧を示す図である。 PE接続表を示す図である。 タスク実行遷移表を示す図である。 サービス−タスク対応表を示す図である。 実施例1におけるコントロール・ユニットの基本制御を示すフローチャートである。 実施例1におけるサービス実行要求プロセッシング・エレメントの基本制御を示すフローチャートである。 実施例1におけるプロセッシング・エレメントの基本制御を示す他のフローチャートである。 実施例1におけるコントロール・ユニットの制御を示すフローチャートである。 実施例1におけるコントロール・ユニットの制御を示すフローチャートである。 実施例1におけるプロセッシング・エレメントの制御を示すフローチャートである。 実施例1におけるプロセッシング・エレメントの制御を示すフローチャートである。 実施例1におけるJPEGデコード処理の流れとシステム構成の対応を示す図である。 実施例1におけるシステム構成を示す図である。 実施例1におけるプロセッシング・エレメント接続表を示す図である。 実施例1におけるサービス・タスク対応表を示す図である。 実施例1におけるシーケンスの一部を示す図である。 実施例1におけるタスク遷移表を示す図である。 実施例1におけるシーケンスを示す他の図である。 実施例1におけるシーケンスを示す別の図である。 実施例1におけるシーケンスを示す他の図である。 実施例1におけるプロセッシング・エレメント接続表を示す図である。 実施例1におけるシーケンスを示す他の図である。 実施例1におけるシーケンスを示す図である。 実施例1におけるシーケンスを示す図である。 実施例1におけるシーケンスを示す図である。 実施例1におけるシーケンスを示す図である。 本発明の実施例2に係るコントロール・ユニットを有する分散処理システムのモデルを示す図である。 実施例2におけるJPEGデコード処理の流れとシステム構成の対応を示す図である。 実施例2におけるプロセッシング・エレメントの基本制御を示すフローチャートである。 実施例2におけるプロセッシング・エレメントの制御を示すフローチャートである。 本発明の実施例3に係るコントロール・ユニットを有する分散処理システムのモデルを示す図である。 実施例3におけるJPEGデコード処理の流れとシステム構成の対応を示す図である。 実施例3におけるプロセッシング・エレメントの基本制御を示すフローチャートである。 実施例3におけるプロセッシング・エレメントの制御を示すフローチャートである。
以下に、本発明にかかるコントロール・ユニットの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
図1−Aは、本実施例におけるコントロール・ユニットを有する分散処理システムのモデルを示している。コントロール・ユニットCUには、7個のプロセッシング・エレメントPE1〜PE7が接続されている。プロセッシング・エレメントPE1は、サービス実行要求プロセッシング・エレメントであり、B社製の汎用CPUである。プロセッシング・エレメントPE3は、汎用CPUまたは仮想マシンである。プロセッシング・エレメントPE2、PE4〜PE7は、専用ハードウェアである。プロセッシング・エレメントPE2、PE4〜PE7は所定の機能を提供する専用のソフトウェアでもよい。
汎用CPUと仮想マシンとは、プロセッシング・エレメントの種類に適したプログラムを適時ロードするという点では相違がない。このため、汎用CPUと仮想マシンとは、同様に取り扱うものとする。
以下の各実施例では、JPEG復号化(デコード)を行う場合について考える。
図2は、JPEGデコードを行う処理手順を示すフローチャートである。
図2のステップS101において、JPEGファイルの解析を行う。ステップS102において、エントロピー復号化を行う。ステップS103において、逆量子化を行う。ステップS104において、IDCT(逆離散コサイン変換)を行う。ステップS105において、色信号の変換を行う。ステップS105はJPEGファイルがサンプリングされている場合には色信号の変換の前にアップサンプリングを含む。ステップS106において、結果表示を行う。そして、JPEGのデコード処理が終了する。
次に、各実施例における用語について予め定義する。「タスク」とは、あるまとまった機能の実行単位を指す。図2で示したJPEGデコードの各ステップはすべて一つのタスクで構成している。例えば、逆量子化は一つのタスクである。
各タスクにはタスク識別子(TID)と呼ぶ識別番号がつけられている。
図3に示すように、タスクが実現する機能とTIDは一対一で対応している。
「プロセッシング・エレメント」(以下、適宜「PE」という。)とは、データの入出力、処理、伝達、格納の4つの機能のうち一つ以上の機能を実現するシステムの構成単位をいう。一般的には、一つのプロセッシング・エレメントが一つ以上のタスクを処理する機能と、処理に必要なデータ入出力機能やデータ格納機能を有している。
「コントロール・ユニット」(以下、適宜「CU」という。)とは、分散処理システムにおいて各プロセッシング・エレメントへのタスクの割り当て(アサイン)と、処理経路の管理、サービス実行時のタスク実行遷移の管理などを行う制御部をいう。
「サービス」とは一つ以上の関連を持つタスクの集合をいう。サービスはタスクよりもまとまった意味のある処理を実現するものである。JPEGデコード処理はサービスの一例である。サービスにもサービス識別子(SID)と呼ぶ一意の識別番号がついている。
図4は、サービスとサービス識別子との対応例を示している。サービスの実行を要求するプロセッシング・エレメントを特にサービス実行要求プロセッシング・エレメント(クライアント)という。クライアントはサービスの実行を要求するだけでタスクを実行しないか、もしくは、サービスの実行を要求しかつタスクを実行する。
なお、一つのタスクが一つのサービスとなる場合もある。例えば、IDCTの処理がサービスとして要求されれば、入力に対してIDCT処理を行った結果を返す。また、サービス実行要求プロセッシング・エレメントは結果データを受信する必要はない。他のプロセッシング・エレメントでデータを表示、格納などしてサービスが終了する場合もある。
「機能識別子」(FID)とは、各プロセッシング・エレメントで実行できるタスクの識別子をいう。従って、タスクが実現する機能に対応するFIDとTIDは一対一で対応している。一つのプロセッシング・エレメントで2つ以上のFIDを持つこともある。本実施例では、専用ハードウェアとダイナミック・リコンフィギャラブル・プロセッサ(DRP)では一度に一つだけFIDを有する。実際には2つ以上のFIDを有する場合もある。また、中央処理装置(CPU)や仮想(バーチャル)マシン(VM)ではFIDを複数持つ場合を想定している。
「ライブラリ」とは、汎用的なプロセッシング・エレメントであるCPUや仮想マシン上で専用ハードウェアなどと同様の機能を実現するためのプログラム(ソフトウェア)とダイナミック・リコンフィギャラブル・プロセッサ(DRP)の再構成情報の集合をいう。専用ハードウェアで実現する機能と一対一で対応したプログラムを準備する。これらのプログラムは、ライブラリ内のデータベースに格納できる。また、ルック・アップ・テーブル(LUT)などにより、格納されているプログラムや再構成情報を検索できるように構成している。
「プロセッシング・エレメント・タイプ」(PET)とは、プロセッシング・エレメントの種類、アーキテクチャ、バージョンなどを表す識別子である。プロセッシング・エレメントは専用ハードウェアないし専用ソフトウェア、ダイナミック・リコンフィギャラブル・プロセッサ、汎用CPU、仮想マシンを含んでいる。
専用ハードウェアと専用ソフトウェアは、特定の機能を実行するものである。ダイナミック・リコンフィギャラブル・プロセッサは、特定の機能の実行のために最適な形にリアルタイムでハードウェアを再構成できるものである。汎用CPUは、プログラムにより汎用的な機能を実行できる。
専用ハードウェアおよび専用ソフトウェアを含む専用プロセッシング・エレメントの特定の機能と、特定の機能を汎用プロセッシング・エレメントに実現するためのプログラムないしDRPの再構成情報との対応情報及び前記プログラムないし前記再構成情報を含む構成、即ちライブラリ一覧とプログラムないし再構成情報とは、ダイナミック・プロセッシング・ライブラリに対応する。
図5は、プロセッシング・エレメント・タイプの例を示している。例えばA社のXXという命令が使用できる64ビットのCPUなどである。
「ライブラリ一覧」とは、ライブラリ識別子LIDと、ライブラリ識別子LIDを決定する(1)プロセッシング・エレメント・タイプPET、(2)タスク識別子TIDなどの因子の対応を示す表である。
図6は、ライブラリ一覧の例を示している。ここで、「ライブラリ識別子」(LID)とはライブラリに含まれる一つ一つのプログラムや再構成情報を識別するための識別番号をいう。例えば、プロセッシング・エレメント上で実行できる(1)プロセッシング・エレメント・タイプ(PET)、(2)実現するタスクの識別子(TID)によって決定される。
プロセッシング・エレメントからのプログラム要求をコントロール・ユニットが受信すると、ライブラリ一覧から必要なライブラリ識別子を検索する。そして、ライブラリ識別子に対応するプログラムをそのプロセッシング・エレメントに送信する。
また、接続されている(1)プロセッシング・エレメント・タイプと(2)機能識別子(FID)が判別されたとき、ライブラリ一覧から、それに対応するライブラリ識別子を受信してきてもよい。
「データ」とは、プロセッシング・エレメントPEが処理する情報で、例えば、画像や音声などをいう。
「タスク実行要求」とは、サービス実行要求PEを含む実行順序が最初のプロセッシング・エレメントに対して、タスクの実行開始をコントロール・ユニットCUが要求する信号である。
「タスク実行完了」とは、すべてのタスクの実行を完了したことをサービス実行要求PEを含む実行順序が最後のプロセッシング・エレメントがコントロール・ユニットCUに通知する信号である。
「サービス実行完了」とは、コントロール・ユニットCUがサービスの実行を完了したことをサービス実行要求プロセッシング・エレメントに通知するための信号である。
「計算資源確保」とは、プロセッシング・エレメントPEがサービス処理に必要な汎用プロセッサ、DRP、専用ハードウェアないし専用ソフトウェアなどの計算パワーやメモリなどの計算資源をある特定のタスクの処理に割り当てることである。「計算資源解放」は割り当てていた計算資源を他のサービス処理のために使用できる状態にすることである。
「処理経路確立」とは、タスク処理に関するデータなどを他のプロセッシング・エレメントPEと1対1で相互に通信できる状態にすることである。「処理経路解放」は処理経路を閉じて、他のプロセッシング・エレメントとの相互通信を遮断することである。なお、単に「解放」といった場合は計算資源解放と処理経路解放の両方を含んでいる。
次に、各実施例で使用するデータ構造の概略構成を以下に示す。なお、これらのデータ構造は例示であり、この構造に限定されるものではない。以下の例示では、適宜、プロセッシング・エレメントPEが7個接続されている場合を考える。7個のプロセッシング・エレメントPEのうちの1個は、サービス実行要求PE1である。
(プロセッシング・エレメント接続表)
コントロール・ユニットCUはプロセッシング・エレメントPEの接続を検知すると、そのプロセッシング・エレメントPEの情報を取得する。そして、コントロール・ユニットCU自身に接続されているプロセッシング・エレメントPEを管理するための一覧表を作成する。この一覧表をプロセッシング・エレメント接続表と呼ぶ。
図7は、プロセッシング・エレメント接続表の一部を示している。プロセッシング・エレメント接続表は、例えば、図7に示すように、プロセッシング・エレメントのIPアドレスと、プロセッシング・エレメントのタイプ(PET)と、各プロセッシング・エレメントで実行できるタスクの識別子である機能識別子(FID)とが記述されている。さらに、プロセッシング・エレメント接続表は、その他に、プロセッシング・エレメントPEの接続開始時間や処理能力、メモリ容量の情報などを含んでいる。
(タスク実行遷移表)
図8は、タスク実行遷移表の例を示している。タスク実行遷移表は、実行遷移情報の具体的な形態の一つで、本実施例では入出力を行うプロセッシング・エレメントのタイプ(PET)、タスクを実行するプロセッシング・エレメントPEのIPアドレス(以下、適宜、「IP」という。)、及びタスク識別子を実行する順序に並べた一覧表である。具体的には、タスク実行遷移表には、実行順に、「タスク識別子(TID)」、「入力IP」、「実行IP」、「出力IP」が記述されている。ここで、「入力IP]とは、データを入力するプロセッシング・エレメントのIPをいう。「実行IP」とは、タスクを実行するプロセッシング・エレメントのIPをいう。また、「出力IP」とは、データを出力するプロセッシング・エレメントのIPをいう。
図1−Bは、コントロール・ユニットCUを含む処理システム全体の概略構成を示している。コントロール・ユニットCUには、実行遷移情報制御部と、ライブラリロード部と、判別部が含まれている。クライアントからの要求に応じてコントロール・ユニットCUはプロセッシング・エレメントPEの接続を検知すると、判別部がそのプロセッシング・エレメントPEの情報を取得し、図7のようなプロセッシング・エレメント接続表を作成する。
汎用プロセッシング・エレメントまたはダイナミック・リコンフィギャラブル・プロセッサの接続を検知したことが判別部に判別されると、ライブラリに格納されているライブラリ一覧から、接続されたものに対応したライブラリ識別子(LID)を読み出し、ライブラリ情報を取得する。
実行遷移情報制御部は、クライアントからの要求をタスクごとに分けた図9のようなサービス−タスク対応表と、必要に応じてライブラリ情報を加味したプロセッシング・エレメント接続表とを比較し、タスクをどのPEにどの順番で割り振るかと、入出力先のPEと対応するIPアドレスとを決定し、図8のような実行遷移情報にまとめる。
コントロール・ユニットCUは、タスク実行遷移表に基づいて各プロセッシング・エレメントPEにタスクの割り当てを行う。タスクの実行前に、タスク実行遷移表は、経路情報としてコントロール・ユニットCUから各プロセッシング・エレメントPE1〜PE7に配布される。
また、コントロール・ユニットCUは、サービス実行要求を受け付けてからタスク実行遷移表を作成する。
割り当てたタスクの実行を要求するために、上述のタスク実行遷移表の各行に記述されている情報、即ち、実行順序、TID、入力IP、実行IP、出力IPをタスク実行要求として、コントロール・ユニットからそれぞれのプロセッシング・エレメントに以下に述べるように送出する。
このとき、コントロール・ユニットCUがタスク実行遷移表を送信する方式は、後述するように、
・ブロードキャスト方式
・逐次1対1方式(適宜、「1対1方式」という。)
の2通りがある。
(サービス-タスク対応表)
図9は、サービス−タスク対応表の構成を示している。サービス−タスク対応表は、サービスを構成するタスクの対応を識別子を使って一覧にした表である。
コントロール・ユニットCUは、初期化時にサービス−タスク対応表を管理しているサーバーからサービス−タスク対応表を取得してくる。
(実施例1のフロー)
図10は、コントロール・ユニットCUの基本的な制御のフローチャートを示している。なお、本フローチャートでは基本的な流れを示し、詳細な手順については後述する。
ステップS1200において、コントロール・ユニットCUは、サービス実行要求を受信して、解析し実行遷移情報を生成する。
ステップS1201において、コントロール・ユニットCUは、計算資源確保要求を確保するプロセッシング・エレメントPEに対して必要に応じて行う。
ステップS1202において、CUが各プロセッシング・エレメントPEに対して、処理経路の確立要求を必要に応じて行う。
ステップS1203において、コントロール・ユニットCUは、タスク実行要求をプロセッシング・エレメントPEへ送信する。
ステップS1204において、コントロール・ユニットCUは、タスク実行完了受信後に、処理経路の解放要求を各プロセッシング・エレメントPEへ必要に応じて送信する。また、コントロール・ユニットCUは、各プロセッシング・エレメントPEから処理経路解放の完了を受取った後、計算資源の解放要求を各プロセッシング・エレメントに対して必要に応じて行い、各プロセッシング・エレメントPEから計算資源解放の完了を受取る。
そして、ステップS1205において、サービス完了をサービス実行要求プロセッシング・エレメントPEに送信する。
図11は、サービス実行要求プロセッシング・エレメントPEの基本的な制御のフローチャートを示している。
ステップS1250において、サービス実行要求PEは、サービス実行の要求を行う。
ステップS1251において、必要に応じて、計算資源を確保する。ステップS1252において、必要に応じて処理経路を確立する。
ステップS1253において、処理経路の確立後に必要に応じてタスクの処理を行う。サービス実行要求プロセッシング・エレメントはサービスの要求を行うだけでタスクを行わない場合もある。
ステップS1254において、必要に応じて、処理経路の解放と、計算資源の解放とを行う。
ステップS1255において、サービス実行要求PE1は、サービス完了信号を受信する。
図12は、本実施例における汎用CPUまたは仮想マシンであるプロセッシング・エレメントPEの基本的なフローチャートを示している。
ステップS1301において、受信時の自分の機能と、要求された機能とが一致しているか否かが判断される。
ステップS1301の判断結果が真のとき、ステップS1304において、計算資源の確保を行う。
ステップS1305において、CUからの要求に応じて、処理経路を確立する。
ステップS1306において、タスクの処理を行う。ステップS1307において、CUからの要求に応じて、処理経路の解放と、計算資源の解放とを行う。
ステップS1301の判断結果が偽のとき、ステップS1308において、プログラムをコントロール・ユニットCUに要求しプログラムを受信する。ステップS1302において、要求された機能を達成するためのプログラムをロード可能か否かが判断される。
ステップS1302の判断結果が真のとき、S1303において、プログラムがロードされる。
そして、ステップS1304へ進む。また、ステップS1302の判断結果が偽のとき、処理を終了する。
図13、図14は、それぞれコントロール・ユニットのさらに詳細な制御の手順を説明するためのフローチャートである。
ステップS1401において、コントロール・ユニットCUが初期化される。ステップS1402において、コントロール・ユニットCUがサービス実行要求を受信したか否かが判断される。
ステップS1402の判断結果が偽のとき、ステップS1402を繰り返す。
ステップS1402の判断結果が真のとき、ステップS1403において、サービス−タスク対応表に受信したサービスに対応したサービスが含まれているか否かについて判断される。ステップS1403の判断結果が偽のとき、コントロール・ユニットCUは処理を終了する。
ステップS1403の判断結果が真のとき、ステップS1460において、プロセッシング・エレメント接続表のプロセッシング・エレメント・タイプPET部分を読み出し、汎用プロセッシング・エレメントまたはダイナミック・リコンフィギャラブル・プロセッサが含まれているか否か判断する。ステップS1460の判断結果が偽のとき、ステップS1404へ進む。
ステップS1460の判断結果が真のとき、ステップS1461において、ライブラリ一覧を読み出し、ステップS1460で読み出されたPETに対応するライブラリ情報を取得し、S1404へと進む。
ステップS1460の判断結果が偽のとき、または、ステップS1461の後に、ステップS1404において、該当するサービス-タスク対応表に含まれるTIDと、プロセッシング・エレメント接続表に含まれるFIDおよびステップS1460で読み出されたPETに対応するライブラリ情報から全てのタスクをプロセッシング・エレメントPEに割り当てることができるか否かについて判断される。ステップS1404の判断結果が真のとき、ステップS1405において、コントロール・ユニットCUは、タスク実行遷移表を作成する。ステップS1404の判断結果が偽のとき、コントロール・ユニットCUは処理を終了する。
また、ステップS1406において、タスク実行遷移表を、1対1方式またはブロードキャスト方式でプロセッシング・エレメントPEに送信する。
次に、図14を参照して説明を続ける。ステップS1450において、全てのプロセッシング・エレメントPEの資源確保に成功したか否かについて判断される。ステップS1450の判断結果が真のとき、ステップS1453において、処理経路確立要求を送信する。ステップS1454において、全てのプロセッシング・エレメントPEから処理経路確立完了の信号を受信したか否かが判断される。
ステップS1454の判断結果が真のとき、ステップS1455において、実行順序が最初のプロセッシング・エレメントPEに対してタスク実行要求を通知する。ステップS1456において、実行順序が最後のプロセッシング・エレメントPEからタスク実行完了を受信したか否か、が判断される。ステップS1454の判断結果が偽のとき、ステップS1454を繰り返す。
ステップS1456の判断結果が真のとき、ステップS1457において、サービス実行完了をサービス実行要求プロセッシング・エレメントPE1に送信する。ステップS1458において、計算資源の解放と処理経路の解放とを行う。そして、コントロール・ユニットCUは処理を完了する。ステップS1456の判断結果が偽のとき、ステップS1456を繰り返す。
ステップS1450の判断結果が偽のとき、ステップS1451において、ダイナミック・リコンフィギャラブル・プロセッサ(DRP)の再構成情報を要求されたか否かが判断される。ステップS1451の判断結果が真のとき、ステップS1459において、ライブラリから再構成情報の検索を行う。ステップS1473において、再構成情報の取得に成功したか否かが判断される。ステップS1473の判断結果が真のとき、ステップS1474において、再構成情報を要求したプロセッシング・エレメントPEに対して再構成情報を送信する。ステップS1471でPE(DRP)から計算資源確保成功を受信し、ステップS1460において、プロセッシング・エレメント接続表を更新する。そして、ステップS1450へ戻る。ステップS1473の判断結果が偽のとき、ステップS1458へ進む。
ステップS1451の判断結果が偽のとき、ステップS1452において、プログラムを要求されたか否かが判断される。ステップS1452の判断結果が真のとき、ステップS1461において、ライブラリからプログラムを検索する。ステップS1462において、プログラムの取得に成功したか否かが判断される。ステップS1452の判断結果が偽のとき、ステップS1470で機能を変更する必要のないPEから計算資源確保成功を受信し、ステップS1450へ戻る。
ステップS1462の判断結果が真のとき、ステップS1463において、プログラムを要求したプロセッシング・エレメントPEに対してプログラムを送信する。ステップ1472でPE(汎用CPUないし仮想マシン)から計算資源確保成功を受信し、ステップS1464において、プロセッシング・エレメント接続表を更新する。ステップS1462の判断結果が偽のとき、ステップS1458へ進む。
ステップS1458において、計算資源の解放と処理経路との解放とを行う。そして、コントロール・ユニットCUは、処理を完了する。
(PEの制御フロー)
図15、図16−Aは、それぞれ本実施例における汎用CPUまたは仮想マシンであるプロセッシング・エレメントPEに関する制御の手順を説明するためのフローチャートである。なお、ここでは、サービス実行要求プロセッシング・エレメントPEとして汎用CPUや仮想マシン(VM)が使用されるときの処理を省略し、一般的な機能の実現に絞ってフローを記述する。
図15に示すステップS1501において、プロセッシング・エレメントPEが初期化される。ステップS1502において、プロセッシング・エレメントPEは、タスク実行遷移表を受信したか否かが判断される。
ステップS1502の判断結果が真のとき、ステップS1503において、プロセッシング・エレメントPE自身のIPアドレスと実行IPアドレスとが一致するか否かが判断される。また、ステップS1502の判断結果が偽のとき、ステップS1502を繰り返す。
ステップS1503の判断結果が真のとき、ステップS1504において、プロセッシング・エレメントPEの自分のFIDの一つがTIDと一致するか否かが判断される。ステップS1503の判断結果が偽のとき、プロセッシング・エレメントPEは、処理を終了する。
ステップS1504の判断結果が真のとき、ステップS1505において、計算資源を確保し、計算資源確保が成功したことをコントロール・ユニットCUに通知し、ステップS1551へ進む。ステップS1504の判断結果が偽のとき、ステップS1506において、プログラムをコントロール・ユニットCUへ要求する。そして、ステップS1551へ進む。
ステップS1551において、プロセッシング・エレメントPEは、プログラム受信のための待機状態か否かが判断される。ステップS1551の判断結果が偽のとき、ステップS1558において、処理経路確立要求を受信する。ステップS1562で処理経路を確立し、処理経路確立完了をコントロール・ユニットCUに通知する。ステップS1559において、タスクの処理が実行される。ステップS1560において、解放要求を受信する。ステップS1561において、処理経路の解放と計算資源の解放とを行う。そして、プロセッシング・エレメントPEは、処理を終了する。
ステップS1551の判断結果が真のとき、ステップS1552において、プログラムを受信したか否かが判断される。ステップS1552の判断結果が真のとき、ステップS1553において、受信したプログラムが要求したプログラムと一致しているか否かが判断される。
ステップS1553の判断結果が真のとき、ステップS1554において、受信したプログラムがメモリに展開可能か否かが判断される。ステップS1554の判断結果が真のとき、ステップS1555において、プログラムをメモリに展開する。ステップS1556において、FIDを書き換える。ステップS1557において、計算資源を確保し、計算資源確保の成功をコントロール・ユニットCUへ通知する。そして、ステップS1559においてタスク処理を行う。
ステップS1552の判断結果が偽のとき、ステップS1552を繰り返す。ステップS1553の判断結果が偽のとき、処理を終了する。ステップS1554の判断結果が偽のとき、処理を終了する。
(JPEGデコード処理の例)
次に、図2に示した処理モデルにおけるJPEGデコード処理の流れを時系列に従って説明する。
図16−Bは、本実施例におけるJPEGデコード処理の流れとシステム構成の対応を示している。この例では、CUが汎用CPUであるプロセッシング・エレメントPE3にエントロピー復号化機能を提供するソフトウェアをライブラリから動的にダウンロードすることで、汎用CPUにエントロピー復号化タスクの実行をさせてJPEGデコード処理の一部を実現している。その他の機能はプロセッシング・エレメントPE2およびPE4〜PE7において専用ハードウェアで実行する。専用ハードウェアは専用ソフトウェアでも代用できる。
図17は、本実施例におけるシステム構成を示している。この例では、ユーザーUが携帯端末100上から指示してPE7にimage.jpgというJPEG画像を表示させる場合を考える。ユーザーUがファイルを指定すると、PEネットワーク上でJPEGデコードを分散処理し、結果をPE7上に表示する。
また、コントロール・ユニットCUに接続されているプロセッシング・エレメントPE1〜PE7のうちプロセッシング・エレメントPE3は、A社汎用CPUである。
(前提条件)
また、以下の事項を前提条件とする。
ユーザーUは、プロセッシング・エレメントPEを搭載した携帯機器100を所有している。本プロセッシング・エレメントPEはサービス実行要求プロセッシング・エレメント(クライアント)として以下のことを最低限行うことができる。
・ ユーザーUの要求判別を行う。
・ コントロール・ユニットCUへのサービス実行要求発行を行う。
・ JPEGファイルの読み込み、他のプロセッシング・エレメントPEへの画像データ送信を行うこと。
・ コントロール・ユニットCUと各プロセッシング・エレメントPEは必要な初期化処理を完了している。
・ コントロール・ユニットCUは、プロセッシング・エレメントPEの接続を検出し、PE接続表の更新済み(各PEのタイプ(PET)やFIDを取得している)である。
図18は、本実施例におけるコントロール・ユニットCUに保持されているPE接続表を示している。
・ コントロール・ユニットCUはPE7に画像を出力しなければならないことを知っている。
・ コントロール・ユニットCUは、JPEGデコード処理に対応したサービス−タスク対応表を取得済みである。
図19は、このサービス−タスク対応表を示している。
・ コントロール・ユニットCUは、JPEG復号化処理の全ステップ(ステップ101からステップ106)を実行するためのダイナミック・プロセッシング・ライブラリを全てサーバーから取得済みである。また、各プロセッシング・エレメントPEで実行可能な形式にコンパイルおよびリンクされている。ただし、ライブラリは実行時に動的に取得してくることも可能である。
・ 各プロセッシング・エレメントPEは自IPアドレスとコントロール・ユニットCUのIPを取得済みである。
また、以下の事項は特に考慮していない。
・ 1つのプロセッシング・エレメントPEが2つ以上のタスクを実行する場合
・ コントロール・ユニットCUが他のコントロール・ユニットCUに対してプロセッシング・エレメントPEの情報を問い合わせる場合
・ 細かいエラー処理
(ユーザー処理要求)
図20において、まず、ユーザーUは、携帯端末上で「image.jpgファイル」のアイコンをダブルクリックするなどしてJPEGファイルの表示を要求する。
携帯端末100は、JPEGファイルのデコード処理が必要と判断する。これにより、サービス実行要求プロセッシング・エレメントPE1は、コントロール・ユニットCUにJPEG復号化処理(SID:823)のサービス実行要求を送信する。
コントロール・ユニットCUは、サービス実行要求を受信すると、JPEGデコーダを表すサービス識別子(SID)823に基づいて、サービス−タスク対応表110を参照する。そして、コントロール・ユニットCUは、サービス識別子823からサービスに必要なタスクとその実行順序を取得する。
コントロール・ユニットCUは、プロセッシング・エレメント接続表120を参照して、タスクの割り当てとサービスの実行が可能か否かを判断する。
サービスの実行が可能であると判断した場合は、処理を続ける。
サービスの実行が不可能であると判断した場合は、エラー通知をサービス実行要求プロセッシング・エレメントPE1に返す。
(ブロードキャスト方式)
コントロール・ユニットCUは、タスク実行の割り当てと実行順序を記述したタスク実行遷移表130を作成する。
図21は、本実施例におけるタスク実行遷移表を示している。タスク実行遷移表や処理経路確立要求などの制御情報を送信する方式には、ブロードキャスト方式と1対1方式とがある。
図22、図23、図24、図25は、それぞれ本実施例におけるブロードキャスト方式を説明する図である。他の実施例においても同様にブロードキャスト方式でタスク実行遷移表や制御情報をプロセッシング・エレメントまたはクライアントに送信できる。
図22において、コントロール・ユニットCUは、タスク実行遷移表を作成したら全プロセッシング・エレメントPEに同報通信(ブロードキャスト)する。各プロセッシング・エレメントPEは、タスク実行遷移表130を受信すると、自分のIPと実行IPとが一致する行の情報だけを取得する。プロセッシング・エレメントPEは、タスク実行遷移表130内において、自分のIPアドレスと実行IPアドレスとが一致する行が存在しない場合は、コントロール・ユニットCUにエラーを返す。
以下本実施例では、コントロール・ユニットCUが発行するタスク実行遷移表が計算資源確保要求の機能を果たしている。
図23は、ブロードキャスト方式における、プロセッシング・エレメントPEが専用ハードウェアのときの計算資源の確保のシーケンスを示している。専用ハードウェアで構成されたプロセッシング・エレメントPE2、4、5、6、7は自分のFIDと要求されたTIDが一致する場合は、タスクの処理に必要な計算資源を確保し、計算資源確保成功をコントロール・ユニットCUに返す。要求されたタスク処理に必要な機能を提供できない場合はエラーを返す。
(資源の確保)
図24は、ブロードキャスト方式における、プロセッシング・エレメントPEが汎用CPUのときの計算資源の確保のシーケンスを示している。汎用CPUで構成されたPEは自分のFIDのうちの一つと要求されたTIDが一致する場合は、点線内の処理は実行せずにタスクの処理に必要な計算資源を確保し、計算資源確保成功をコントロール・ユニットCUに返す。要求されたタスク処理に必要な機能を提供できない場合は点線内の処理に入りプログラム要求をコントロール・ユニットCUに返す。
コントロール・ユニットCUはプログラム要求を受信するとライブラリからPETとTIDとが一致する該当するプログラムを検索する。そして、コントロール・ユニットCUは、取得したプログラムをプロセッシング・エレメントPEに送信する。
プロセッシング・エレメントPE3は、プログラムを受信したとき、要求した機能との一致やメモリの空き容量などから実行可能性を判断する。実行不可能な場合はコントロール・ユニットCUにエラーを返す。必要に応じて、不要なプログラムと対応するFIDを削除した後で、新たに追加するプログラムのFIDを追加し、プログラムをメモリに展開する。その後、プロセッシング・エレメントPEは、計算資源確保成功をコントロール・ユニットCUに送信する。
本実施例では、PE3はFIDが665の機能を実現するプログラムをメモリから削除し、FID103を実現するプログラムを新たにロードする。この時、コントロール・ユニットCUは、プロセッシング・エレメント接続表120を更新する。
図25は、プロセッシング・エレメント接続表120を更新した状態を示している。
なお、プロセッシング・エレメントPEが、仮想マシンであるとき、ダイナミック・プロセッシング・ライブラリは、汎用プロセッシング・エレメントが備える仮想処理部に対応するプログラムを含んでいる。
(処理経路の確立)
図26において、コントロール・ユニットCUは各プロセッシング・エレメントPEから計算資源確保成功を受け取った後、経路確立が必要なすべてのプロセッシング・エレメントPEに処理経路の確立要求をブロードキャストする。処理経路確立要求を受信したすべてのプロセッシング・エレメントPEは、一斉に処理経路を確立し、処理経路確立完了をコントロール・ユニットCUに通知する。コントロール・ユニットCUがタスク実行要求をサービス実行要求PE1に送信すると、サービス実行要求PE1は処理を開始する。
データの処理が終了すると、プロセッシング・エレメントPE7はタスク実行完了をコントロール・ユニットCUに送信する。コントロール・ユニットCUは処理経路解放要求を経路解放が必要なすべてのプロセッシング・エレメントPEにブロードキャストする。処理経路解放要求を受信したプロセッシング・エレメントPEは、一斉に処理経路を解放し、処理経路解放完了をコントロール・ユニットCUに通知する。
コントロール・ユニットCUはすべての処理経路解放完了を受信すると、計算資源解放要求を計算資源解放が必要なすべてのプロセッシング・エレメントPEにブロードキャストする。計算資源解放要求を受信したプロセッシング・エレメントPEは、一斉に計算資源を解放し、計算資源解放完了をコントロール・ユニットCUに通知する。
(1対1方式)
次に、上述したブロードキャスト方式とは異なる1対1方式について説明する。1対1方式は、コントロール・ユニットCUが確保するすべてのプロセッシング・エレメントPEのそれぞれに対応するタスク実行遷移表130の一部や制御情報を送信する方式である。つまり、コントロール・ユニットCUと、各プロセッシング・エレメントPEとが1対1となるようにタスク実行遷移表130を送信する。他の実施例においても同様に1対1方式でタスク実行遷移表や制御情報をプロセッシング・エレメントまたはクライアントに送信できる。
図27、図28、図29、図30は、それぞれ1対1方式を説明する図である。コントロール・ユニットCUは、1対1方式において、タスク実行遷移表130全体を各プロセッシング・エレメントPEに送信しても良い。このときは、
(a)各プロセッシング・エレメントPEは、タスク実行遷移表130を受信すると、自分のIPと実行IPとが一致する行の情報だけを取得する。
(b)プロセッシング・エレメントPEは、タスク実行遷移表130内において、自分のIPアドレスと実行IPアドレスとが一致する行が存在しない場合は、コントロール・ユニットCUにエラーを返す。
(計算資源確保)
ブロードキャスト方式と同様に、各プロセッシング・エレメントPEは計算資源を確保できれば、計算資源確保成功をコントロール・ユニットCUに送信する。確保できない場合は、CUに該当機能を実現するプログラムを要求するかエラーを返す。
(経路確立要求と経路確立)
コントロール・ユニットCUは各プロセッシング・エレメントPEから計算資源確保成功を受け取った後、経路確立が必要なプロセッシング・エレメントPEの一つずつに対して処理経路確立要求を送信する。処理経路確立要求を受け付けたプロセッシング・エレメントPEは、処理経路を確立し、処理経路確立完了をコントロール・ユニットCUに通知する。上述のシーケンスを必要なプロセッシング・エレメントPEの数だけ繰り返す。コントロール・ユニットCUがタスク実行要求をサービス実行要求PE1に送信すると、サービス実行要求PE1は処理を開始する。
データの処理が終了すると、プロセッシング・エレメントPE7はタスク実行完了をコントロール・ユニットCUに送信する。コントロール・ユニットCUは処理経路解放要求を経路解放が必要なプロセッシング・エレメントPEの一つずつに対して送信する。処理経路解放要求を受け付けたプロセッシング・エレメントPEは処理経路を解放し、処理経路解放完了をコントロール・ユニットCUに通知する。上述のシーケンスを必要なプロセッシング・エレメントPEの数だけ繰り返す。
コントロール・ユニットCUはすべての処理経路解放完了を受信すると、計算資源解放要求を計算資源の解放が必要なプロセッシング・エレメントPEの一つずつに対して送信する。要求を受信したプロセッシング・エレメントPEは、計算資源を解放し、計算資源解放完了をコントロール・ユニットCUに通知する。上述のシーケンスを必要なプロセッシング・エレメントPEの数だけ繰り返す。
上述した計算資源確保・解放、処理経路確立・解放もプロセッシング・エレメントPEごとに順を追って実行してゆく。1対1方式では、いずれのプロセッシング・エレメントPEまでの計算資源確保と処理経路確立および計算資源解放と処理経路解放が可能であるかをトレースできる。
(ブロードキャスト方式と1対1方式との組合せ)
また、計算資源確保と処理経路確立について、それぞれ1対1方式、ブロードキャスト方式を組み合わせることができる。さらに、計算資源確保を行わない場合も存在する。即ち、以下の7通りのパターンの組み合わせが可能である。
パターン 計算資源確保 処理経路確立
1 ブロードキャスト ブロードキャスト
2 ブロードキャスト 1対1
3 1対1 ブロードキャスト
4 1対1 1対1
5 行わない ブロードキャスト
6 行わない 1対1
7 行わない 行わない
例えば、プロセッシング・エレメントPEを計算資源として確保するときは、一斉に確保すること、以前に実行されたサービスの一部を流用できる場合には、サービスを構成するタスクの一部に必要な計算資源のみを確保すること等ができる。計算資源の確保は不要な場合もある。処理経路についてもすべてを一斉に確立しなければならない場合と一部を再構成すればよい場合がある。
次に、各パターンについて説明する。なお、以下の説明において、N>Mの場合(N,Mは整数)、サービスNはサービスMよりも後にサービス実行要求を受け付けたことを表している。例えば、サービス2は、サービス1よりも後にサービス実行要求を受け付けていることを示す。また、タスクA〜Eは、各プロセッシング・エレメントPEが実行するタスクを表している。
(パターン1)
パターン1は、計算資源確保をブロードキャスト方式、処理経路確立をブロードキャストで行う場合である。パターン1は、基本パターンであり、通常はパターン1で計算資源の確保と処理経路の確立を行う。パターン1では、すべて一括で処理できるので効率が良い。
(パターン2)
パターン2は、計算資源確保をブロードキャスト方式、処理経路確立を1対1方式で行う場合である。通常は使用する必要がないが、処理経路の確立を一つずつトレースして経路の状態だけをモニタリングする場合には有効である。
(パターン3)
パターン3は、計算資源確保を1対1方式、処理経路確立をブロードキャスト方式で行う場合である。具体例を以下に示す。
サービス1:タスクA→B→C
サービス2:タスクA→C→D→B
この場合は、サービス2はサービス1に対してタスクDを処理する計算資源が不足しているだけである。ただし処理経路は全く異なるので、サービス1実行後、すべての処理経路を解放する。その後計算資源Dを1対1方式で確保し、サービス2の処理経路をブロードキャスト方式で確立すれば効率がよい。
別の使用方法として、計算資源の確保だけを一つずつトレースして計算資源の状態だけをモニタリングする場合には有効である。
(パターン4)
パターン4は、計算資源確保を1対1方式、処理経路確立を1対1方式で行う場合である。具体例を以下に示す。
サービス1:タスクA→B→C
サービス2:タスクA→B→D
サービス3:タスクE→B→D
この場合は、サービス2はサービス1の一部(タスクA、タスクB)を使用し、サービス3はサービス2の一部(タスクB、タスクD)を使用するという場合である。このとき、サービス2のタスクDについて計算資源確保を1対1方式、経路B−Dにおいて処理経路確立を1対1方式で行う。同様にサービス3のタスクEについて1対1方式で計算資源を確保し、E−B間の処理経路について1対1方式で処理経路を確立する。
こうすることで、部分的に計算資源と処理経路を組み替えることができる。そのほか、1対1方式を用いると、計算資源をどこまで確保したかと処理経路をどこまで確立したかを追跡できる。このため、計算資源確保や処理経路確立の状況やエラーの発生状況などを逐一モニタリングできる。
(パターン5)
パターン5は、計算資源確保を行わず、処理経路確立をブロードキャスト方式で行う場合である。具体例を以下に示す。
サービス1:タスクA→B→C→D
サービス2:タスクA→C→D→B
サービス2がサービス1のすべてのプロセッシング・エレメントPEをそのまま使うが経路が全く異なる場合はこの組み合わせパターンが効率的である。
(パターン6)
パターン6は、計算資源確保を行わず、処理経路確立を1対1方式で行う場合である。具体例を以下に示す。
サービス1:タスクA→B→C→D
サービス2:タスクA→B→D
サービス1を構成するタスクだけでサービス2が構成でき、サービス1の一部の経路を組み替えるだけでサービス2が構成できる。このときサービス2において、処理経路確立のみを1対1方式で行う。処理経路の変更箇所が多数ある場合でも、上述のように各処理経路の確立状況やエラーをトレースしたい場合には本方式を用いることができる。
(パターン7)
パターン7は、計算資源確保を行わず、処理経路確立も行わない場合である。具体例を以下に示す。
サービス1:タスクA→B→C→D
サービス2:タスクA→B→C
すなわち、サービス1の一部の計算資源と処理経路を解放するだけでサービス2の提供が可能な場合である。
上述の7パターンのほかに組み合わせとしては以下の2パターンが存在するが、計算資源を新規に確保した場合は経路を確立しないと当該計算資源を使用できないため、このようなパターンは事実上存在しない。
パターン 計算資源確保 処理経路確立
8 ブロードキャスト 行わない
9 1対1 行わない
(ブロードキャスト方式と1対1方式との組合せ)
同様に、処理経路解放と計算資源解放とについてそれぞれ1対1方式、ブロードキャスト方式を組み合わせることができる。計算資源解放を行わない場合も存在する。即ち、以下の7通りのパターンの組み合わせが可能である。
パターン 計算資源解放 処理経路解放
11 ブロードキャスト ブロードキャスト
12 ブロードキャスト 1対1
13 1対1 ブロードキャスト
14 1対1 1対1
15 行わない ブロードキャスト
16 行わない 1対1
17 行わない 行わない
例えば、計算資源として確保したプロセッシング・エレメントPEを解放する場合は、一斉に解放すること、確保した計算資源の一部を以後に実行するサービスでも流用できる場合には、以後のタスクに不要な一部の計算資源のみを解放すること等ができる。計算資源の解放は不要な場合もある。処理経路についてもすべてを一斉に解放しなければならない場合と一部を解放すればよい場合がある。
次に、各パターンについて説明する。なお、以下の説明において、N>Mの場合(N,Mは整数)、サービスNはサービスMよりも後にサービス実行要求を受け付けたことを表している。例えば、サービス2は、サービス1よりも後にサービス実行要求を受け付けていることを示す。また、タスクA〜Eは、各プロセッシング・エレメントPEが実行するタスクを表している。
(パターン11)
パターン11は、計算資源解放をブロードキャスト方式、処理経路解放をブロードキャストで行う場合である。パターン11は、基本パターンであり、通常はパターン11で計算資源の解放と処理経路の解放を行う。パターン11では、すべて一括で処理できるので効率が良い。
(パターン12)
パターン12は、計算資源解放をブロードキャスト方式、処理経路解放を1対1方式で行う場合である。通常は使用する必要がないが、処理経路の解放を一つずつトレースして経路の状態だけをモニタリングする場合には有効である。
(パターン13)
パターン13は、計算資源解放を1対1方式、処理経路解放をブロードキャスト方式で行う場合である。具体例を以下に示す。
サービス1: タスクA→C→D→B
サービス2: タスクA→B→C
この場合は、サービス2はサービス1に対してタスクDを処理する計算資源だけが不要である。ただし処理経路は全く異なるので、サービス1の実行後、すべての処理経路をブロードキャスト方式で解放する。その後計算資源Dだけを1対1方式で解放すれば、サービス2で使用する計算資源をすべて残しておくことができる。別の使用方法として、計算資源の解放だけを一つずつトレースして計算資源の状態だけをモニタリングする場合には有効である。
(パターン14)
パターン14は、計算資源解放を1対1方式、処理経路解放を1対1方式で行う場合である。具体例を以下に示す。
サービス1:タスクA→B→C
サービス2:タスクA→B→D
サービス3:タスクE→B→D
この場合は、サービス2はサービス1の一部(タスクA、タスクB)を使用し、サービス3はサービス2の一部(タスクB、タスクD)を使用するという場合である。このとき、サービス1のタスクCにおいて計算資源解放を1対1方式、B−C間の処理経路解放を1対1方式で行う。サービス2のタスクAとA−B間の処理経路についても同様である。こうすることで、部分的に計算資源と処理経路を組み替えることができる。そのほか、1対1方式を用いると、計算資源をどこまで解放したかと処理経路をどこまで解放したかを追跡できる。このため、計算資源解放や処理経路解放の状況やエラーの発生状況などを逐一モニタリングできる。
(パターン15)
パターン15は、計算資源解放を行わず、処理経路解放をブロードキャスト方式で行う場合である。具体例を以下に示す。
サービス1:タスクA→B→C→D
サービス2:タスクA→C→D→B
サービス2がサービス1のすべてのプロセッシング・エレメントPEをそのまま使うが経路が全く異なる場合はこの組み合わせパターンが効率的である。
(パターン16)
パターン16は、計算資源解放を行わず、処理経路解放を1対1方式で行う場合である。具体例を以下に示す。
サービス1:タスクA→B→D
サービス2:タスクA→B→C→D
サービス1を構成するすべてのタスクがサービス2に必要であり、サービス1の一部の経路をサービス2にそのまま使用できる。この場合、サービス2において、処理経路B−D間の処理経路解放のみを1対1方式で行う。処理経路の変更箇所が多数ある場合でも、上述のように各処理経路の解放状況やエラーをトレースしたい場合には本方式を用いる。
(パターン17)
パターン17は、計算資源解放を行わず、処理経路解放も行わない場合である。具体例を以下に示す。
サービス2:タスクA→B→C
サービス1:タスクA→B→C→D
すなわち、サービス1のすべての計算資源と処理経路がサービス2で必要な場合は計算資源の解放と処理経路の解放を行わない。
上述の7パターンのほかに組み合わせとしては以下の2パターンが存在する。しかしながら、計算資源を解放しながら経路だけは残るという状況が発生する。このため、このようなパターンは事実上存在しない。
パターン 計算資源解放 処理経路解放
18 ブロードキャスト 行わない
19 1対1 行わない
本実施例によれば、要求に応じて異なる機能を動的に入れ替えること、機能が存在しない場合の代替手段を実現することができるコントロール・ユニットを提供できる。
また、1対1方式においては、計算資源として繰り返し使用できるプロセッシング・エレメントPEは、解放しないで、そのまま確保しておくことができる。このため、再確保する必要がなくなる。
次に、本発明の実施例2に係るコントロール・ユニットCUを備える分散処理システムについて説明する。実施例2に係るコントロール・ユニットCUの基本的な構成および基本的な動作については、前述した実施例1と同じであるので、実施例1と同一の部分には同一の符号を付して、重複する説明は省略する。実施例1の重複する説明において参照した図面については、当然実施例2にも適応される。
(ダイナミック・リコンフィギャラブル・プロセッサ)
図31−Aは、本実施例におけるコントロール・ユニットを有する分散処理システムのモデルを示している。コントロール・ユニットCUには、7個のプロセッシング・エレメントPE1〜PE7が接続されている。プロセッシング・エレメントPE1は、サービス実行要求プロセッシング・エレメントであり、B社製の汎用CPUである。プロセッシング・エレメントPE3は、ダイナミック・リコンフィギャラブル・プロセッサ(DRP)である。その他のプロセッシング・エレメントPE2、PE4〜PE7は、専用ハードウェアである。プロセッシング・エレメントPE2、PE4〜PE7は所定の機能を提供する専用のソフトウェアでも実現できる。
ダイナミック・リコンフィギャラブル・プロセッサとは、上述したように、アプリケーションに最適な形に、リアルタイムでハードウェアを再構成できるプロセッサで、高い処理スピードと高いフレキシビリティを同時に可能とするICである。
図31−Bは、本実施例におけるJPEGデコード処理の流れとシステム構成の対応を示している。この例では、CUがダイナミック・リコンフィギャラブル・プロセッサであるプロセッシング・エレメントPE3にエントロピー復号化機能を提供する再構成情報をライブラリから動的にダウンロードすることで、ダイナミック・リコンフィギャラブル・プロセッサにエントロピー復号化タスクの実行をさせてJPEGデコード処理の一部を実現している。
ダイナミック・リコンフィギャラブル・プロセッサに対応したダイナミック・プロセッシング・ライブラリは、例えばダイナミック・リコンフィギャラブル・プロセッサ内部の配線情報であり、ダイナミック・リコンフィギャラブル・プロセッサであるプロセッシング・エレメントPE3はライブラリの情報を使って動的に結線を切り替え、エントロピー復号化の機能を提供する。その他の機能はプロセッシング・エレメントPE2およびPE4〜PE7において専用ハードウェアで実行する。
(実施例2のフローチャート)
図32は、本実施例におけるプロセッシング・エレメントのうちダイナミック・リコンフィギャラブル・プロセッサであるプロセッシング・エレメントPE3の基本的な制御のフローチャートを示している。なお、本フローチャートは基本的な流れを示している。詳細な手順については後述する。
プロセッシング・エレメントPE3は、処理要求を受信する。ステップS2501において、自分の機能と要求された機能とが一致するか否かが判断される。
ステップS2501の判断結果が真のとき、上述した実施例1と同様に、計算資源の確保と、処理経路の確立が行われる(ステップS2502、S2503)。そして、ステップS2504においてデータ処理を行う。ステップS2505で処理経路と計算資源を解放する。ステップS2501の判断結果が偽のとき、ステップS2506において、機能の変更が可能か否かについて判断される。
ステップS2506の判断結果が真のとき、ステップS2507において、必要に応じて再構成情報の要求、受信を行う。そして、ステップS2508において、プロセッシング・エレメントPE3の機能の変更を行う。ステップS2504において、データ処理を実行する。ステップS2506の判断結果が偽のとき、処理を終了する。
(PE(DRP)の制御フロー)
次に、図33に基づいて、ダイナミック・リコンフィギャラブル・プロセッサであるプロセッシング・エレメントPE3を含むプロセッシング・エレメントに関する制御の手順を説明する。
ステップS2601において、プロセッシング・エレメントPEが初期化される。ステップS2602において、プロセッシング・エレメントPEは、タスク実行遷移表を受信したか否かが判断される。
ステップS2602の判断結果が真のとき、ステップS2603において、プロセッシング・エレメントPE自身のIPアドレスと実行IPアドレスとが一致する行が存在するか否かが判断される(タスク実行遷移表の全体を送信する場合)。ステップS2602の判断結果が偽のとき、ステップS2602を繰り返す。
ステップS2603の判断結果が真のとき、ステップS2604において、プロセッシング・エレメントPEの自分のFIDの一つがTIDと一致するか否かが判断される。ステップS2603の判断結果が偽のとき、処理を終了する。
ステップS2604の判断結果が真のとき、ステップS2608において、プロセッシング・エレメントは計算資源を確保し、計算資源確保成功をコントロール・ユニットCUに通知する。
ステップS2604の判断結果が偽のとき、ステップS2605において、プロセッシング・エレメントPE3(ダイナミック・リコンフィギャラブル・プロセッサ)の機能が、TIDと一致する機能に変更可能か否かが判断される。
ステップS2605の判断結果が偽のとき、処理を終了する。ステップS2605の判断結果が真のとき、ステップS2606において、再構成情報の要求と受信とを行う。ステップS2607において、プロセッシング・エレメントPE3のFIDを書き換えて、ステップS2608において計算資源を確保し、計算資源確保成功をコントロール・ユニットCUに通知する。
ステップS2609において、プロセッシング・エレメントPEは、経路確立要求を受信する。ステップS2610において、処理経路を確立し、処理経路確立完了をコントロール・ユニットCUに通知する。
ステップS2611において、タスク処理を行う。ステップS2612において、コントロール・ユニットCUから、解放要求を受信する。そして、ステップS2613において、処理経路と計算資源とを解放する。
このように、本実施例では、コントロール・ユニットCUは、専用ハードウェアおよび専用ソフトウェアを含む専用プロセッシング・エレメントPEの特定の機能をダイナミック・リコンフィギャラブル・プロセッサに実現するための再構成情報を含むダイナミック・プロセッシング・ライブラリを管理する。
ここで、「再構成情報」には、ダイナミック・リコンフィギャラブル・プロセッサの配線情報、処理内容を設定するパラメータを含んでいる。そして、コントロール・ユニットCUは、ダイナミック・リコンフィギャラブル・プロセッサに対し、ダイナミック・プロセッシング・ライブラリを参照して、再構成情報をプロセッシング・エレメントPEに送信する。プロセッシング・エレメントPEは特定の機能を実行させるために、再構成情報を使って動的にダイナミック・リコンフィギャラブル・プロセッサのハードウェアを再構成する。
実施例1では、汎用プロセッシング・エレメントPEは、新たに追加するプログラムのFIDを追加し、プログラムをメモリに展開している。これに対して、本実施例では、ダイナミック・リコンフィギャラブル・プロセッサは、特定の機能を実行させるために、再構成情報を使って動的にハードウェアを再構成する点が異なる。
次に、本発明の実施例3に係るコントロール・ユニットCUを備える分散処理システムについて説明する。実施例3に係るコントロール・ユニットCUの基本的な構成および基本的な動作については、前述した実施例1、実施例2と同じであるので、実施例1、実施例2と同一の部分には同一の符号を付して、重複する説明は省略する。また、実施例1、実施例2と重複する説明において参照した図面については、実施例3にも適応される。
図34−Aは、本実施例におけるコントロール・ユニットを有する分散処理システムのモデルを示している。コントロール・ユニットCUには、7個のプロセッシング・エレメントPE1〜PE7が接続されている。プロセッシング・エレメントPE1は、サービス実行要求プロセッシング・エレメントであり、B社製の汎用CPUである。その他のプロセッシング・エレメントPE2〜PE7は、すべて専用ハードウェアである。ただし、専用プロセッシング・エレメントはソフトウェアで実装しても構わない。
図34−Bは、本実施例におけるJPEGデコード処理の流れとシステム構成の対応を示している。この例では、JPEGを構成する6つの機能のすべてをプロセッシング・エレメントPE2〜PE7において専用ハードウェアで実行することができるため、CUはライブラリからダイナミック・プロセッシング・ライブラリをダウンロードする必要はない。
本実施例における専用ハードウェアであるプロセッシング・エレメントPE3を例にして基本的な制御について説明する。専用ソフトウェアも同様の制御を行う。
図35は、専用ハードウェアであるプロセッシング・エレメントPE3の基本的な制御を示すフローチャートである。
プロセッシング・エレメントPE3は、処理要求を受信する。ステップS3401において、プロセッシング・エレメントPE3は、自分の機能と要求された機能とが一致するか否かが判断される。
ステップS3401の判断結果が偽のとき、処理を終了する。また、ステップS3401の判断結果が真のとき、上述した実施例1と同様に、計算資源の確保と、処理経路の確立が行われる(ステップS3402、ステップS3403)。ステップS3404において、データ処理を行う。ステップS3405において、処理経路と計算資源とを解放する。そして、処理を終了する。
(PEの制御フロー)
次に、図36に基づいて、専用ハードウェアであるプロセッシング・エレメントPEの制御の手順を説明する。
ステップS3501において、プロセッシング・エレメントPEが初期化される。ステップS3502において、プロセッシング・エレメントPEは、タスク実行遷移表を受信したか否かが判断される。
ステップS3502の判断結果が真のとき、ステップS3503において、プロセッシング・エレメントPE自身のIPアドレスと実行IPアドレスとが一致する行が存在するか否かが判断される(タスク実行遷移表の全体を送信した場合)。ステップS3502の判断結果が偽のとき、ステップS3502を繰り返す。
ステップS3503の判断結果が真のとき、ステップS3504において、プロセッシング・エレメントPEの自分のFIDがTIDと一致するか否かが判断される。ステップS3503の判断結果が偽のとき、プロセッシング・エレメントPEは、処理を終了する。
ステップS3504の判断結果が真のとき、ステップS3505において、計算資源を確保し、計算資源確保成功をコントロール・ユニットCUに通知する。ステップS3506において、経路確立要求の受信を行う。ステップS3504の判断結果が偽のとき、プロセッシング・エレメントPEは、処理を終了する。
ステップS3507において、処理経路を確立し、処理経路確立完了をコントロール・ユニットCUに通知する。
ステップS3508において、タスク処理が実行される。ステップS3509において、解放要求を受信する。ステップS3510において、通信経路と計算資源を解放する。そして、プロセッシング・エレメントPEは、処理を終了する。
さらに、実施例3において、全てのプロセッシング・エレメントPEを専用ハードウェアで構成することもできる。
なお、上記実施例において、処理システムが搭載するダイナミック・リコンフィギャラブル・プロセッサやCPU/仮想マシンの数に本実施例は依存しない。すなわち、実施例1、実施例2において、プロセッシング・エレメントがすべてダイナミック・リコンフィギャラブル・プロセッサやCPU/仮想マシンで構成されても良い。
なお、上述した各実施例ではIPアドレスを用いて計算資源の照合をしている。しかしながらこれに限られず、他の識別子でも照合可能である。本発明は、その趣旨を逸脱しない範囲で様々な変形例をとることができる。
ライブラリはサーバーから取得することもできる。サーバーはコントロール・ユニットCU上に起動してもよいし、CUの外部に起動してもよい。またコントロール・ユニットCUはライブラリの情報をキャッシュすることができる。
なお、本発明に適用可能なアプリケーションはJPEGに限定されるものではなく、他の静止画コーデックやMPEGやH.264を含む動画像コーデックなどの符号化のほか、変換、特徴量抽出、認識、検出、解析、復元を含む画像処理にも適用できる。その他、音声処理、言語処理を含むマルチメディア処理のほか、有限要素法などの科学技術演算や統計処理にも適用できる。
以上のように、本発明にかかるコントロール・ユニットは、分散処理システムに有用である。
100 携帯端末
110 サービス−タスク対応表
120 プロセッシング・エレメント接続表
130 タスク実行遷移表
CU コントロール・ユニット
PE、PE1〜PE7 プロセッシング・エレメント

Claims (19)

  1. プロセッシング・エレメントが接続されたコントロール・ユニットであって、
    前記コントロール・ユニットは、接続された前記プロセッシング・エレメントの種類および機能に関する情報を判別する判別部と、
    前記プロセッシング・エレメントに、必要に応じて接続されたライブラリに含まれるプログラム情報またはハードウエアの再構成情報をロードするライブラリロード部と、
    前記プロセッシング・エレメントに実行させるタスクの1つ以上の組み合わせからなる任意のサービス情報と、前記判別部によって判別された前記プロセッシング・エレメントの種類及び機能に関する情報と、から前記サービス情報に対応した前記プロセッシング・エレメントの組み合わせを含む実行遷移情報を生成し、それを前記プロセッシング・エレメントに送信する実行遷移情報制御部と、
    を有することを特徴とするコントロール・ユニット。
  2. 前記プロセッシング・エレメントは、所定の前記機能を実行する専用プロセッシング・エレメントと、入力される前記プログラムによって前記機能が変更される汎用プロセッシング・エレメントと、入力される前記再構成情報によってハードウェアを再構成するダイナミック・リコンフィギャラブル・プロセッサと、の少なくとも一つを含み、
    前記実行遷移情報制御部は、前記判別部が前記汎用プロセッシング・エレメントまたは前記ダイナミック・リコンフィギャラブル・プロセッサであることを判別したときに、それらに対応する前記プログラム情報または前記再構成情報を考慮して前記実行遷移情報を生成することを特徴とする請求項1に記載のコントロール・ユニット。
  3. 前記プロセッシング・エレメントは、前記を汎用プロセッシング・エレメント含み、
    前記ライブラリは、前記実行遷移情報に含まれた所定の機能を前記汎用プロセッシング ・エレメントに実行させるための前記プログラム情報を含み、
    前記汎用プロセッシング・エレメントが前記実行遷移情報に含まれた所定の機能を実行させるための前記プログラムを保持していないとき、前記ライブラリロード部は、前記汎用プロセッシング・エレメントに対し、前記ライブラリを参照して、前記プログラム情報をロードし、
    前記特定の機能を実行させるために、前記汎用プロセッシング・エレメントに前記プログラムを動的に配信することを特徴とする請求項2に記載のコントロール・ユニット。
  4. 前記ライブラリロード部は、前記汎用プロセッシング・エレメントの要求によって前記汎用プロセッシング・エレメントに前記プログラムを動的に配信することを特徴とする請求項3に記載のコントロール・ユニット。
  5. 前記コントロール・ユニットは、前記プログラムをサーバーから取得することを特徴とする請求項3または請求項4に記載のコントロール・ユニット。
  6. 前記汎用プロセッシング・エレメントは、複数の機能のうちの前記特定の機能を行うための仮想処理部を備えることを特徴とする請求項3に記載のコントロール・ユニット。
  7. 前記ライブラリは、前記汎用プロセッシング・エレメントが備える前記仮想処理部に対応するプログラムを含むことを特徴とする請求項6に記載のコントロール・ユニット。
  8. 前記プロセッシング・エレメントは、前記ダイナミック・リコンフィギャラブル・プロセッサを含み、
    前記ライブラリは、前記実行遷移情報に含まれた所定の機能を前記ダイナミック・リコ ンフィギャラブル・プロセッサに実現するための前記再構成情報を含み、
    前記ライブラリロード部は、前記ダイナミック・リコンフィギャラブル・プロセッサが前記実行遷移情報に含まれた所定の機能を実行させるための前記再構成情報を保持していないとき、前記ダイナミック・リコンフィギャラブル・プロセッサに対し、前記ライブラリを参照して、前記再構成情報をロードし、
    前記特定の機能を実行させるために、動的に前記ダイナミック・リコンフィギャラブル・プロセッサのハードウェアを再構成することを特徴とする請求項2に記載のコントロール・ユニット。
  9. 前記ライブラリロード部は、前記ダイナミック・リコンフィギャラブル・プロセッサの要求によって前記ダイナミック・リコンフィギャラブル・プロセッサに前記再構成情報を動的に配信することを特徴とする請求項8に記載のコントロール・ユニット。
  10. 前記コントロール・ユニットは、前記再構成情報をサーバーから取得することを特徴とする請求項8または請求項9に記載のコントロール・ユニット。
  11. 前記実行遷移情報制御部は、クライアントから要求された前記サービス情報に基づいて前記実行遷移情報を生成し、それを前記プロセッシング・エレメントまたは、前記クライアントに送信し、
    前記プロセッシング・エレメントまたは前記クライアントが、受信した前記実行遷移情報の中で該当する前記タスクを実行可能か否か判断し、その実行可否判断情報を前記実行遷移情報制御部に送信することによって、前記実行遷移情報に含まれる前記タスクの処理経路が決定されることを特徴とする請求項1から請求項10のいずれか一項に記載のコントロール・ユニット。
  12. 前記コントロール・ユニットは、前記実行遷移情報に含まれるタスクを実行するための計算資源の確保要求と解放要求および処理経路の確立要求と解放要求に関する制御情報を、前記タスクに対応する前記プロセッシング・エレメントまたは前記クライアントに送信することを特徴とする請求項11に記載のコントロール・ユニット
  13. 前記コントロール・ユニットは、同一の前記実行遷移情報または同一の前記制御情報を、前記実行遷移情報に含まれる前記プロセッシング・エレメントと、前記クライアントとに対して、一斉に送信することを特徴とする請求項12に記載のコントロール・ユニット。
  14. 前記実行遷移情報または前記制御情報を、前記実行遷移情報に含まれる前記プロセッシング・エレメントと、前記クライアントとに対して、それぞれに送信することを特徴とする請求項12に記載のコントロール・ユニット。
  15. 前記実行遷移情報制御部は、前記実行遷移情報のうち、特定のタスクを実行するために必要な前記プロセッシング・エレメントごと対応する前記実行遷移情報を抽出し、抽出された前記実行遷移情報を前記プロセッシング・エレメントに対して、それぞれ送信することを特徴とする請求項11、請求項12、請求項14のいずれか一項に記載のコントロール・ユニット。
  16. プロセッシング・エレメントと、
    前記プロセッシング・エレメントが接続されるコントロール・ユニットと、を有する分散処理システムであって、
    前記コントロール・ユニットは、請求項1から請求項15のいずれか一項に記載の前記コントロール・ユニットであることを特徴とする分散処理システム。
  17. 前記プロセッシング・エレメントは、前記機能を実行する専用プロセッシング・エレメントと、入力される前記プログラムによって前記機能を変更できる汎用プロセッシング・エレメントと、入力される前記再構成情報によってハードウェアを再構成するダイナミック・リコンフィギャラブル・プロセッサと、の少なくとも一つを含み、
    前記実行遷移情報制御部は、前記判別部が前記汎用プロセッシング・エレメントまたは前記ダイナミック・リコンフィギャラブル・プロセッサであることを判別したときに、それらに対応する前記プログラム情報または前記再構成情報を考慮して前記実行遷移情報を生成することを特徴とする請求項16に記載の分散処理システム。
  18. さらに、前記コントロール・ユニットに対してサービス実行要求を送信するクライアントを有することを特徴とする請求項16または請求項17に記載の分散処理システム。
  19. コントロール・ユニットに接続された前記プロセッシング・エレメントの種類および機能に関する情報を判別する判別ステップと、
    前記プロセッシング・エレメントに、必要に応じて接続されたライブラリに含まれるプログラム情報またはハードウエアの再構成情報をロードするライブラリロード・ステップと、
    前記プロセッシング・エレメントに実行させるタスクの1つ以上の組み合わせからなる任意のサービス情報と、前記判別部によって判別された前記プロセッシング・エレメントの種類及び機能に関する情報と、から前記サービス情報に対応した前記プロセッシング・エレメントの組み合わせを含む実行遷移情報を生成し、それを前記プロセッシング・エレメントに送信する実行遷移情報制御ステップと、
    前記プロセッシング・エレメントまたは前記クライアントが、受信した前記実行遷移情報の中で該当する前記タスクを実行可能か否か判断することによって、前記実行遷移情報に含まれるタスクの処理経路が決定される処理経路決定ステップと、
    を有することを特徴とする分散処理方法。
JP2009148353A 2008-06-30 2009-06-23 コントロール・ユニット、分散処理システム及び分散処理方法 Pending JP2010033555A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009148353A JP2010033555A (ja) 2008-06-30 2009-06-23 コントロール・ユニット、分散処理システム及び分散処理方法
US12/494,743 US20100011370A1 (en) 2008-06-30 2009-06-30 Control unit, distributed processing system, and method of distributed processing

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008170760 2008-06-30
JP2009148353A JP2010033555A (ja) 2008-06-30 2009-06-23 コントロール・ユニット、分散処理システム及び分散処理方法

Publications (1)

Publication Number Publication Date
JP2010033555A true JP2010033555A (ja) 2010-02-12

Family

ID=41506249

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009148353A Pending JP2010033555A (ja) 2008-06-30 2009-06-23 コントロール・ユニット、分散処理システム及び分散処理方法

Country Status (2)

Country Link
US (1) US20100011370A1 (ja)
JP (1) JP2010033555A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011102369A1 (ja) 2010-02-18 2011-08-25 富士通テン株式会社 エンジン始動装置、及びエンジン始動方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201138372A (en) * 2010-04-29 2011-11-01 Hon Hai Prec Ind Co Ltd Master server and method for decoding multimedia files using the master server
US8745121B2 (en) 2010-06-28 2014-06-03 Nokia Corporation Method and apparatus for construction and aggregation of distributed computations
US9201701B2 (en) * 2010-07-16 2015-12-01 Nokia Technologies Oy Method and apparatus for distributing computation closures
US8898581B2 (en) * 2011-02-22 2014-11-25 Sony Corporation Display control device, display control method, search device, search method, program and communication system
US8810368B2 (en) 2011-03-29 2014-08-19 Nokia Corporation Method and apparatus for providing biometric authentication using distributed computations
US9710291B2 (en) * 2013-06-19 2017-07-18 Empire Technology Development Llc Processor-optimized library loading for virtual machines
CN104252391B (zh) * 2013-06-28 2017-09-12 国际商业机器公司 用于在分布式计算系统中管理多个作业的方法和装置
CN104423956B (zh) * 2013-09-05 2018-10-12 联想(北京)有限公司 一种任务控制方法及系统
GB2565770B (en) * 2017-08-15 2019-09-18 Advanced Risc Mach Ltd Data processing systems
US11327808B2 (en) * 2018-11-13 2022-05-10 Western Digital Technologies, Inc. Decentralized data processing architecture
US11604752B2 (en) 2021-01-29 2023-03-14 Arm Limited System for cross-routed communication between functional units of multiple processing units

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003044301A (ja) * 2001-07-26 2003-02-14 Mitsubishi Electric Corp ソフトウェアにより無線通信機能を実現する無線通信機
JP2008097498A (ja) * 2006-10-16 2008-04-24 Olympus Corp プロセッシング・エレメント、コントロール・ユニット、及びこれらを備える処理システム、分散処理方法

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE68927946T2 (de) * 1988-08-02 1997-10-16 Philips Electronics Nv Verfahren und Vorrichtung für die Synchronisierung von parallelen Prozessoren unter Verwendung einer unscharf definierten Sperre
US6112017A (en) * 1992-06-30 2000-08-29 Discovision Associates Pipeline processing machine having a plurality of reconfigurable processing stages interconnected by a two-wire interface bus
JPH07234842A (ja) * 1994-02-22 1995-09-05 Fujitsu Ltd 並列データ処理システム
US5970510A (en) * 1996-04-10 1999-10-19 Northrop Grumman Corporation Distributed memory addressing system
US5909368A (en) * 1996-04-12 1999-06-01 Fisher-Rosemount Systems, Inc. Process control system using a process control strategy distributed among multiple control elements
JP2882475B2 (ja) * 1996-07-12 1999-04-12 日本電気株式会社 スレッド実行方法
JPH10232875A (ja) * 1997-02-19 1998-09-02 Hitachi Ltd データベース管理方法および並列データベース管理システム
US6188381B1 (en) * 1997-09-08 2001-02-13 Sarnoff Corporation Modular parallel-pipelined vision system for real-time video processing
JP3636871B2 (ja) * 1997-09-16 2005-04-06 株式会社日立製作所 並列プロセッサシステム
US6088370A (en) * 1997-09-22 2000-07-11 Intel Corporation Fast 16 bit, split transaction I/O bus
US6581089B1 (en) * 1998-04-16 2003-06-17 Sony Corporation Parallel processing apparatus and method of the same
JP2000132529A (ja) * 1998-10-23 2000-05-12 Sony Corp 並列処理装置、並列処理方法および記録媒体
US6581102B1 (en) * 1999-05-27 2003-06-17 International Business Machines Corporation System and method for integrating arbitrary isochronous processing algorithms in general media processing systems
US20020107903A1 (en) * 2000-11-07 2002-08-08 Richter Roger K. Methods and systems for the order serialization of information in a network processing environment
US6671747B1 (en) * 2000-08-03 2003-12-30 Apple Computer, Inc. System, apparatus, method, and computer program for execution-order preserving uncached write combine operation
JP3783608B2 (ja) * 2001-10-31 2006-06-07 ソニー株式会社 通信方法、通信システム、データ処理装置、サーバ装置およびプログラム
US7418703B2 (en) * 2002-03-20 2008-08-26 Nec Corporation Parallel processing system by OS for single processor
US7571303B2 (en) * 2002-10-16 2009-08-04 Akya (Holdings) Limited Reconfigurable integrated circuit
US7330768B2 (en) * 2003-01-28 2008-02-12 Fisher-Rosemount Systems, Inc. Integrated configuration in a process plant having a process control system and a safety system
US7437729B2 (en) * 2003-04-23 2008-10-14 Micron Technology, Inc. Method for load balancing a loop of parallel processing elements
US7472392B2 (en) * 2003-04-23 2008-12-30 Micron Technology, Inc. Method for load balancing an n-dimensional array of parallel processing elements
US7437726B2 (en) * 2003-04-23 2008-10-14 Micron Technology, Inc. Method for rounding values for a plurality of parallel processing elements
US20050022173A1 (en) * 2003-05-30 2005-01-27 Codito Technologies Private Limited Method and system for allocation of special purpose computing resources in a multiprocessor system
JP4665760B2 (ja) * 2003-06-25 2011-04-06 日本電気株式会社 電子計算機、半導体集積回路、制御方法、プログラムの生成方法、及びプログラム
JP4062441B2 (ja) * 2003-07-18 2008-03-19 日本電気株式会社 並列処理システム及び並列処理プログラム
JP2005242994A (ja) * 2004-01-27 2005-09-08 Ricoh Co Ltd サービス提供装置、情報処理装置、サービス提供方法、情報処理方法、サービス提供プログラム、情報処理プログラム及び記録媒体
JP4296421B2 (ja) * 2004-06-09 2009-07-15 ソニー株式会社 信号処理装置
GB2417105B (en) * 2004-08-13 2008-04-09 Clearspeed Technology Plc Processor memory system
TWI251171B (en) * 2004-09-21 2006-03-11 Univ Tsinghua Task scheduling method with low power consumption and a SOC using the method
JP2006163482A (ja) * 2004-12-02 2006-06-22 Hitachi Ltd 情報処理装置の制御方法、情報処理装置、及びプログラム
JP2006236310A (ja) * 2005-01-28 2006-09-07 Dainippon Screen Mfg Co Ltd 制作管理装置、制作管理方法、プログラム、およびドキュメント制作システム
WO2006110952A1 (en) * 2005-04-19 2006-10-26 Fairlight.Au Pty Ltd Media processing system and method
US8510329B2 (en) * 2005-05-25 2013-08-13 Experian Marketing Solutions, Inc. Distributed and interactive database architecture for parallel and asynchronous data processing of complex data and for real-time query processing
US8032635B2 (en) * 2005-07-29 2011-10-04 Sap Ag Grid processing in a trading network
US8600960B2 (en) * 2005-11-22 2013-12-03 Sap Ag Processing proposed changes to data
JP4871598B2 (ja) * 2006-01-19 2012-02-08 キヤノン株式会社 画像処理装置および画像処理装置の起動方法およびプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003044301A (ja) * 2001-07-26 2003-02-14 Mitsubishi Electric Corp ソフトウェアにより無線通信機能を実現する無線通信機
JP2008097498A (ja) * 2006-10-16 2008-04-24 Olympus Corp プロセッシング・エレメント、コントロール・ユニット、及びこれらを備える処理システム、分散処理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011102369A1 (ja) 2010-02-18 2011-08-25 富士通テン株式会社 エンジン始動装置、及びエンジン始動方法

Also Published As

Publication number Publication date
US20100011370A1 (en) 2010-01-14

Similar Documents

Publication Publication Date Title
JP2010033555A (ja) コントロール・ユニット、分散処理システム及び分散処理方法
US20200090172A1 (en) Containerization of network services
Saurez et al. Incremental deployment and migration of geo-distributed situation awareness applications in the fog
JP4701220B2 (ja) ビジネスプロセス再構成方法、そのプログラム及び計算機
US10452372B2 (en) Method and deployment module for managing a container to be deployed on a software platform
US8862933B2 (en) Apparatus, systems and methods for deployment and management of distributed computing systems and applications
US10462262B2 (en) Middleware abstraction layer (MAL)
KR102499219B1 (ko) 동적 네트워크 인터페이스를 사용하는 상호운용가능 클라우드 기반 미디어 처리
US20150186129A1 (en) Method and system for deploying a program module
CN113760452B (zh) 一种容器调度方法、系统、设备及存储介质
US20100162230A1 (en) Distributed computing system for large-scale data handling
CN109547509B (zh) 一种跨平台部署的方法和系统
CN109032751B (zh) 一种虚拟机部署方法及omm虚拟机
CN111641515A (zh) Vnf的生命周期管理方法及装置
CN113810230A (zh) 对容器集群中的容器进行网络配置的方法、装置及系统
CN111176818A (zh) 分布式预测的方法、装置、系统、电子设备及存储介质
Slamnik-Kriještorac et al. Collaborative orchestration of multi-domain edges from a Connected, Cooperative and Automated Mobility (CCAM) perspective
JP2005202631A (ja) プログラムコンポーネントの処理要求キューの構成方法、プログラムコンポーネントの登録方法及び実行制御方法、プログラムコンポーネントの登録プログラム及び実行制御プログラム、並びに、アプリケーションサーバ
He et al. Functional split of in-network deep learning for 6G: A feasibility study
CN116755799A (zh) 一种服务编排系统和方法
US10459753B2 (en) System and method for agent based centralized and efficient transaction recordings for service virtualization
CN113076128B (zh) 用于机器人配置的方法、装置、电子设备及存储介质
CN114461249A (zh) 一种微服务部署方法、装置、代码服务器及存储介质
Solayman et al. Seamless Integration of DevOps Tools for Provisioning Automation of the IoT Application on Multi-Infrastructures
KR20170111246A (ko) 네트워크 기능 가상화를 위한 자원 제어방법과 자원 스케줄링 방법 및 그 네트워크 기능 가상화 시스템

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120614

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130605

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130703

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131204