(57)【要約】本発明は、一式の処理モジュールによる実行可能コードの実行を提供する。実行可能コードは、一式の処理モジュールのうちの少なくとも１つの第１の処理モジュールによって実行される。実行可能コードは、一式の並列実行可能な部分を含む。実行可能コードの各並列実行可能な部分は、少なくとも２つの並列実行可能なステップを含む。実行は、少なくとも１つの第１の処理モジュールが、実行対象となる、実行可能コードの一式の並列実行可能な部分のうちの並列実行可能な部分を検出することと、少なくとも１つの第１の処理モジュールが、一式の処理モジュールのうちの少なくとも２つの第２の処理モジュールを選択することと、少なくとも１つの第１の処理モジュールが、選択された少なくとも２つの第２の処理モジュールに対し、実行可能コードの検出された並列実行可能な部分の少なくとも２つの並列実行可能なステップを実施することを指令することと、を含む。
2016510146.tif 000002
【特許請求の範囲】
【請求項１】
一式の処理モジュールによって実行可能コードを実行する方法であって、
該方法は、前記一式の処理モジュールのうちの少なくとも１つの第１の処理モジュールが、前記実行可能コードを実行することを含み、
前記実行可能コードは、一式の並列実行可能な部分を含み、
前記実行可能コードの各並列実行可能な部分は、少なくとも２つの並列実行可能なステップを含み、
前記実行することは、
前記少なくとも１つの第１の処理モジュールが、実行対象となる、前記実行可能コードの前記一式の並列実行可能な部分のうちの並列実行可能な部分を検出することと、
前記少なくとも１つの第１の処理モジュールが、前記一式の処理モジュールのうちの少なくとも２つの第２の処理モジュールを選択することと、
前記少なくとも１つの第１の処理モジュールが、前記選択された少なくとも２つの第２の処理モジュールに対し、前記実行可能コードの前記検出された並列実行可能な部分の前記少なくとも２つの並列実行可能なステップを実施することを指令することと、
を含む、方法。
【請求項２】
請求項１に記載の方法であって、
前記指令することは、前記少なくとも１つの第１の処理モジュールが、前記実行可能コードの前記検出された並列実行可能な部分の前記少なくとも２つの並列実行可能なステップのそれぞれを、前記選択された少なくとも２つの第２の処理モジュールのうちの１つに割り当てることを含む、方法。
【請求項３】
請求項１または２に記載の方法であって、
前記選択された少なくとも２つの第２の処理モジュールのそれぞれは、前記実行可能コードの前記検出された並列実行可能な部分の前記少なくとも２つの並列実行可能なステップのうちの少なくとも１つを実施することを指令される、方法。
【請求項４】
先行する請求項のいずれか１項に記載の方法であって、
前記選択された少なくとも２つの第２の処理モジュールは、前記少なくとも１つの第１の処理モジュールを備える、方法。
【請求項５】
先行する請求項のいずれか１項に記載の方法であって、
前記実行可能コードの第１および第２の並列実行可能な部分は、前記実行可能コードの第１の部分が前記実行可能コードの第２の部分に含まれる場合に実施される、方法。
【請求項６】
先行する請求項のいずれか１項に記載の方法であって、
前記実行可能コードの前記一式の並列実行可能な部分の各並列実行可能な部分は、1つの特定の並列化形式のステップを含む、方法。
【請求項７】
請求項６に記載の方法であって、
２つの並列化形式は別個のものである、方法。
【請求項８】
請求項６または７に記載の方法であって、
第１の並列化形式はプログラムループを含み、第２の並列化形式は条件付き分岐を含む、方法。
【請求項９】
請求項８に記載の方法であって、
前記実行可能コードの前記一式の並列実行可能な部分のうちの前記検出された並列実行可能な部分が、前記少なくとも２つの並列実行可能なステップとして、プログラムループのステップを含む場合には、前記少なくとも１つの第１の処理モジュールは、前記プログラムループの一定の数のサイクルを、前記選択された少なくとも２つの第２の処理モジュールのそれぞれに割り当て、前記プログラムループの各サイクルは、前記選択された少なくとも２つの第２の処理モジュールのうちの１つに割り当てられ、
前記実行可能コードの前記検出された並列実行可能な部分が、前記少なくとも２つの並列実行可能なステップとして、一式のプログラムループを含む場合には、前記少なくとも１つの第１の処理モジュールは、前記一式のプログラムループのうちの前記プログラムループのそれぞれを、前記選択された少なくとも２つの第２の処理モジュールのうちの１つに割り当て、
前記実行可能コードの前記検出された並列実行可能な部分が、前記少なくとも２つの並列実行可能なステップとして、少なくとも２つの条件付き分岐を含む場合には、前記少なくとも１つの第１の処理モジュールは、各条件付き分岐を、前記選択された少なくとも２つの第２の処理モジュールのうちの１つに割り当て、そして／または、
前記実行可能コードの前記検出された並列実行可能な部分が、前記少なくとも２つの並列実行可能なステップとして、少なくとも２つの条件付き分岐を含む場合には、前記少なくとも１つの第１の処理モジュールは、前記少なくとも２つの条件付き分岐の各条件を、前記選択された少なくとも２つの第２の処理モジュールのうちの１つに割り当て、また、前記少なくとも２つの条件付き分岐の１つの条件に関してコーディングされた、前記少なくとも２つの条件付き分岐のコードの各部分を、前記選択された少なくとも２つの第２の処理モジュールのうちの１つに割り当てる、方法。
【請求項１０】
少なくとも１つの第１の処理モジュールを備える一式の処理モジュールであって、
前記少なくとも１つの第１の処理モジュールは、
実行可能コードを実行するように構成され、該実行可能コードは、一式の並列実行可能な部分を含み、前記実行可能コードの前記一式の並列実行可能な部分の各並列実行可能な部分は、少なくとも２つの並列実行可能なステップを含み、
実行対象となる前記実行可能コードの部分として、前記実行可能コードの前記一式の並列実行可能な部分のうちの並列実行可能な部分を検出するように構成され、
前記一式の処理モジュールのうちの少なくとも２つの第２の処理モジュールを選択するように構成され、そして、
前記選択された少なくとも２つの第２の処理モジュールに対し、前記実行可能コードの前記検出された並列実行可能な部分の前記少なくとも２つの並列実行可能なステップを実施することを指令するように構成されている、一式の処理モジュール。
【請求項１１】
請求項１０に記載の一式の処理モジュールであって、
前記少なくとも１つの第１の処理モジュールは、前記実行可能コードの前記検出された並列実行可能な部分の前記少なくとも２つの並列実行可能なステップのそれぞれを、前記選択された少なくとも２つの第２の処理モジュールのうちの１つに割り当てることによって、前記指令することを実行するように構成されている、一式の処理モジュール。
【請求項１２】
請求項１０または１１に記載の一式の処理モジュールであって、
少なくとも１つの第１の処理モジュールは、前記選択された少なくとも２つの第２の処理モジュールのそれぞれに対し、前記実行可能コードの前記検出された並列実行可能な部分の前記少なくとも２つの並列実行可能なステップのうちの少なくとも１つを実施することを指令するように構成されている、一式の処理モジュール。
【請求項１３】
先行する請求項１０〜１２のいずれか１項に記載の一式の処理モジュールであって、
前記選択された少なくとも２つの第２の処理モジュールは、前記少なくとも１つの第１の処理モジュールを備える、一式の処理モジュール。
【請求項１４】
請求項１０〜１３のいずれか１項に記載の一式の処理モジュールであって、
前記少なくとも１つの第１の処理モジュールは、前記実行可能コードの第１の並列実行可能な部分が前記実行可能コードの第２の並列実行可能な部分に含まれている場合には、前記実行可能コードの第１および第２の並列実行可能な部分を実施することを指令するように構成されている、一式の処理モジュール。
【請求項１５】
先行する請求項１０〜１４のいずれか１項に記載の一式の処理モジュールであって、
前記実行可能コードの前記一式の並列実行可能な部分の各並列実行可能な部分は、１つの特定の並列化形式のステップを含む、一式の処理モジュール。
【請求項１６】
請求項１０〜１５のいずれか１項に記載の一式の処理モジュールを備える、システム。
【請求項１７】
請求項１６に記載のシステムであって、
該システムは、
前記一式の処理モジュールを備える１つの処理エレメント、もしくは、前記一式の処理モジュールを備える少なくとも２つの処理エレメントと、
前記１つの処理エレメントに、もしくは、前記少なくとも２つの処理エレメントのうちの１つに接続されて、前記１つの処理エレメントに、もしくは、前記少なくとも２つの処理エレメントのうちの１つに、記憶容量を提供するように構成された、少なくとも１つのメモリモジュールと、
前記少なくとも１つのメモリモジュールに電力を供給するように構成された、第１の電力供給モジュールと、
前記一式の処理モジュールに電力を供給するように構成された、第２の電力供給モジュールと、
ネットワークからデータを受信して、該受信したデータを前記一式の処理モジュールに提供するように、そして／もしくは、前記一式の処理モジュールからデータを受信して、該受信したデータを前記ネットワークに送信するように構成された通信モジュールと、
前記デバイス用のソフトウェアを備えるファームウェアと、
前記ファームウェアに電力を供給するように構成された、第３の電力供給モジュールと、ならびに／または、
前記ファームウェア、前記ネットワークチップモジュール、および前記１つの処理エレメントを接続するように、もしくは、前記ファームウェア、前記ネットワークチップモジュール、および前記少なくとも２つの処理エレメントを接続するように構成された、接続モジュールと、ならびに／または、
前記第１、第２、および第３の電力供給モジュールに、ならびに、前記通信モジュールに、電力を供給するように構成された、電力供給インターフェースモジュールと、
のうちの少なくとも１つを備える、システム。
【請求項１８】
請求項１７に記載のシステムであって、
前記１つの処理エレメントはセルプロセッサを備え、もしくは、前記少なくとも２つの処理エレメントは少なくとも１つのセルプロセッサを備え、
前記少なくとも１つのメモリモジュールは、少なくとも１つのランダムアクセスメモリを備え、
前記電力供給インターフェースモジュールは、周辺コンポーネントインタコネクト、もしくは、周辺コンポーネントインタコネクトエクスプレスであり、
前記通信モジュールは、ネットワークチップモジュール、周辺コンポーネントインタコネクトエクスプレススイッチ、もしくは、アップリンクモジュールであり、
前記ファームウェアは、フラッシュ、フィールドプログラム可能ゲートアレイ、もしくは、統一拡張可能ファームウェアインターフェースであり、そして／または、
前記接続モジュールは、入力／出力機能を管理するように構成されているインタコネクトチップである、システム。
【請求項１９】
請求項１０〜１５のいずれか１項に記載の一式の処理モジュールを備える、サーバシステム。
【請求項２０】
プログラムコードを備えるコンピュータ可読媒体であって、前記プログラムコードは、演算デバイスによって実行されるときに、請求項１〜９のいずれか１項に記載の方法を前記演算デバイスに実行させる、コンピュータ可読媒体。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
［発明の分野］
本発明は、実行可能コードを実行するように構成された処理モジュール、および、実行可能コードを実行するための方法に関する。また、本発明は、システム一般、および、上記処理モジュールを備えるサーバシステムに関する。さらに、本発明は、実行可能コードを実行するための上記方法を実施することができる、コンピュータ可読媒体に関する。
［発明の背景］
今日では、急速に発展している通信およびコンピュータ技術によって、多大なデータ量が利用可能となっている。例えばウェブサーバのようなネットワークサービスまたは画像処理のような分野は、多大なデータ量の管理、処理、および取り扱いをする顕著な例である。このように大規模なデータが存在することにより、迅速、簡便、および省資源な方法でデータを取り扱うことが可能な技術およびデバイスが求められている。このようなデータを取り扱うデバイス、および特にハードウェアは、データの演算処理の実行に関して確実かつ迅速で、効率的かつ低エネルギー消費の、省スペースソリューションを可能にするために、小さいサイズでなければならない。
【０００２】
米国特許出願公開第２００２／００７８３０８号明細書は、対称型多重処理（ＳＭＰ）システムの分野に関するものであり、より具体的には、構造的にアドレス変換機構を用いて設定されていないため、取り付けられた処理装置が共有メモリへのアクセスを制限されている、ＳＭＰシステムに関する。
【０００３】
米国特許出願公開第２００２／０１３５５８２号明細書は、ブロードバンドネットワーク上の高速処理のための、コンピュータアーキテクチャおよびプログラミングモデルを提供している。このアーキテクチャでは、一貫性のあるモジュール構造、一般的な演算モジュール、および均一なソフトウェアセルを用いる。この一般的な演算モジュールは、制御プロセッサと、複数の処理装置と、処理装置がそこからプログラムを処理する複数のローカルメモリと、ダイレクトメモリアクセスコントローラと、共有メインメモリと、を備える。処理装置による、共有メインメモリからの、および、共有メインメモリへの、協調的なデータの読み書きのための、同期システムおよび方法もまた、提供されている。処理装置によって処理中であるプログラムの間でのデータ破損に対する安全対策のために、ハードウェアサンドボックス構造が提供されている。統一されたソフトウェアセルは、データおよびアプリケーションの両方を含み、ネットワークのプロセッサのうちのいずれかによる処理のために構築されている。各ソフトウェアセルは、ネットワーク上で一意的に識別される。ストリーミングデータ処理用の専用のパイプラインを創出するためのシステムおよび方法もまた、提供されている。
【０００４】
公知のハードウェア／ソフトウェアソリューションの中には、１つの方向または別の方向へと改善をもたらしているものがあり得る。しかし、それらは、依然として、上に挙げた基準を全く、または少なくともほとんど改善していない。したがって、多大なデータ量、多大なデータ通信量、および／または多大なデータスループットの管理、処理、および／または取り扱いをするための、改善されたハードウェア／ソフトウェアソリューションが、依然として必要とされている。
［発明の概要］
したがって、本発明の目的は、増大したデータ量、増大したデータ通信量、および／または、改善されたデータスループットが取り扱われることを可能にし、また、信号ノイズの低減、遮蔽の低減、冷却労力の低減、電力消費の削減、および／または、スペースの削減を提供する、方法および一式の処理モジュールを提供することである。
【０００５】
本発明は、実行可能コードの少なくとも一部が２つ以上の処理モジュールによって実行されることが好ましい、という理念に基づいている。実行可能コードの一部を実行するための処理モジュールの選択は、対応する部分の構造、取り扱われるデータの量、処理モジュールのハードウェアおよび／またはソフトウェア環境のような、幾つかの基準に左右され得る。並列実行可能な部分のそれぞれは、コードの実行中、認識可能または検出可能である。処理モジュールの決定は、コードのその一部を共同で実行する処理装置の最適な選択が実現されるように、コードの実行中に行われる。このようにして、効率的で、確実かつ迅速な、多大なデータ量の取り扱いが可能になる。さらに、処理装置を適切に使用することで、上記ハードウェアの更なるコンポーネント、ユニット、またはモジュールに関して、可能な限り小さいハードウェアの構成および実施態様が可能になる。その上、処理装置のうちの２つ以上によって実行が行われることが好ましい、コードの一部を取り扱うための処理装置を適切に選択することによって、多大なデータ量の取り扱いの省エネルギー化が可能になる。なおその上に、処理モジュールを備えたハードウェアを構成する際に、本発明では、必要な接続配線および／またはコネクタが最小限の量で済むように、互いに通信、相互作用、および／または接続しあうハードウェアのモジュール／エレメント／コンポーネントが互いに近接して設置される、ということを考慮に入れる。このようにして、エネルギー消費、モジュール／エレメント／コンポーネントによって生じる信号ノイズ、モジュール／エレメント／コンポーネントが必要とするスペース、モジュール／エレメント／コンポーネントの遮蔽、および／または、モジュール／エレメント／コンポーネントのための冷却が、削減され得る。
【０００６】
特に、本発明の利点は、添付の独立請求項によって実現される。本発明の更なる態様、実施形態、および特徴は、添付の従属請求項および明細書において明記され、同様に上記利点の実現に貢献している。
【０００７】
本発明の一実施形態によれば、少なくとも１つの第１の処理モジュールを備える一式の処理モジュールであって、少なくとも１つの第１の処理モジュールは、実行可能コードを実行するように構成され、実行可能コードは、一式の並列実行可能な部分を含み、実行可能コードの一式の並列実行可能な部分の各並列実行可能な部分は、少なくとも２つの並列実行可能なステップを含み；実行対象となる実行可能コードの部分として、実行可能コードの一式の並列実行可能な部分のうちの並列実行可能な部分を検出するように構成され；一式の処理モジュールのうちの少なくとも２つの第２の処理モジュールを選択するように構成され；そして、選択された少なくとも２つの第２の処理モジュールに対し、実行可能コードの検出された並列実行可能な部分の少なくとも２つの並列実行可能なステップを実施することを指令するように構成されている、一式の処理モジュールが提供されている。
【０００８】
実行可能コードは、コンピュータサイエンスの分野で周知であるソースコードに基づくものであることが好ましい。ソースコードは、実行可能コードを生成するための、例えばインタープリタまたはコンパイラによって読み取り可能である。ソースコード、および同様に実行可能コードも、通常コンピュータ言語で書かれるコンピュータ命令などの複数の命令を含む。ソースコードは、対応するコンピュータ言語で書かれるテキストを表す。命令および、ひいては、ソースコードまたは実行可能コードは、処理モジュールのような演算エンティティに対し、演算エンティティまたは処理モジュールがそれぞれ構築されている環境またはシステム内で、特定の演算またはアクションを実施することをそれぞれ命令する。
【０００９】
ソースコードは、コンパイラプログラムによって、コンピュータによって理解される下位レベルのマシンコードに変換され得る。この場合、マシンコードは、続いて、後の実行のために格納され得る。実行可能コードは、続いて、間接的にソースコードを参照し、むしろマシンコードを表す。ソースコードと同様に、マシンコードは、上述したような命令を含む。マシンコードの命令は、ソースコードの各命令に対応し、例えばマシンコードのようなちょうど別の言語で書かれる。
【００１０】
実行可能コードがソースコードを直接参照する場合、ソースコードプログラムの効果を直接オンザフライで分析および実施するのに、例えばインタープリタエンティティが用いられ得る。
【００１１】
特定のケースの実行可能コードが参照するコードの種類とは無関係に、実行可能コードは、実行可能コードの実行中に、１つまたは複数の演算モジュールまたは処理モジュールによって読み取りおよび実施／実行される命令を含むものとして理解されるべきである。当業者は、「実行可能コード」および「命令」という用語の意味を承知している。実行可能コードは、例えば、アプリケーション、ソフトウェアプログラム、またはソフトウェアシステムのコードである。
【００１２】
述べられているように、実行可能コードは、少なくとも１つの部分、好ましくは複数の部分からなる、または、区分される。上に概説したように、このような部分の幾つかは、並列実行可能な部分であることが好ましい。実行可能コードは、少なくとも１つの並列実行可能な部分を含み、すなわち、一式の並列実行可能な部分は、少なくとも１つの対応する部分を含む。並列実行可能な部分は、互いに独立して実施されることが好ましい少なくとも２つのステップを含むものとして定義され、すなわち、１つのステップの実行は、別のステップの実行に影響を与えない。ステップのそれぞれは、上に概説したように、対応する一式の命令を含む。具体的には、ステップのそれぞれは、少なくとも１つの命令を含む。「並列実行可能」または「並列に実行または実施」という用語は、対応する部分の対応する命令を有する対応するステップは、少なくとも部分的に同時に実施される、ということを意味する。上記ステップは、同時に、または実質的に同時に、すなわち、例えば無作為に起こり得る時間のオフセットを伴って、実施されることが好ましい。
【００１３】
一式の処理モジュールは、少なくとも２つの処理モジュールを備える。処理モジュールは、コアまたはプロセッサコアとも称される、例えば、独立した中央処理装置であってもよい。
【００１４】
上述のように、実行可能コードの並列実行可能な部分を実施しなければならない処理モジュールの決定は、コードの実行中に、すなわち、上記一式の処理モジュールの処理モジュールのうちの少なくとも１つによってコードが実行されるときに、行われる。このようにして、処理モジュールのハードウェアおよびソフトウェア環境、データの量等についての現在の状況を考慮に入れてもよい。さらに、大量のデータを取り扱い、また、複数の処理モジュールによって実施されることが好ましい、コードの部分は、少なくとも２つの処理モジュール、好ましくは複数の処理モジュールによって、効率的に実行される。これにより、効率的で、確実かつ迅速な、多大なデータ量の取り扱いが可能になる。処理装置を適切に使用することで、可能な限り小さいハードウェアの構成および実施態様が可能になる。さらに、コードの部分を共同で実行するための処理装置を適切に選択することによって、多大なデータ量の取り扱いの省エネルギー化が可能になる。
【００１５】
本発明の一実施形態によれば、少なくとも２つの並列実行可能なステップの実施は、例えば実質的に並列に、または並列に、というように、少なくとも部分的に同時に行われることが好ましい。このようにして、処理モジュールによるデータの迅速な演算および処理が可能になり、ひいてはそれが、大量のデータを処理するための効率的なハードウェアおよびソフトウェアのシステムをもたらすことになる。
【００１６】
本発明の一実施形態によれば、少なくとも１つの第１の処理モジュールは、実行可能コードの、検出された並列実行可能な部分の少なくとも２つの並列実行可能なステップのそれぞれを、選択された少なくとも２つの第２の処理モジュールのうちの１つに割り当てることによって、上記指令することを実行するように構成されている。このようにして、並列実行可能なステップの実行を処理モジュール間で広く分配することが可能になる。これにより、処理モジュールの性能および効率の改善がもたらされることになる。
【００１７】
本発明の一実施形態によれば、少なくとも１つの第１の処理モジュールは、選択された少なくとも２つの第２の処理モジュールのそれぞれに対し、実行可能コードの、検出された並列実行可能な部分の少なくとも２つの並列実行可能なステップのうちの少なくとも１つを実施することを指令するように構成されている。このようにして、並列実行可能なステップを実施することができる利用可能な処理モジュールの量もまた、考慮に入れられる。よって、並列実行可能なステップの効率的な分配が可能になり、ひいてはそれが、処理モジュールの効率の改善をもたらすことになる。
【００１８】
本発明の一実施形態によれば、選択された少なくとも２つの第２の処理モジュールは、少なくとも１つの第１の処理モジュールを備える。このようにして、一式の処理モジュールの各処理モジュールは、多大なデータ量の演算および処理を実施する際に関与することになる。よって、一式の処理モジュール全体の迅速、効率的、かつ効果的な運用が可能になる。
【００１９】
本発明の一実施形態によれば、少なくとも１つの第１の処理モジュールは、実行可能コードの第１の並列実行可能な部分が実行可能コードの第２の並列実行可能な部分に含まれている場合には、実行可能コードの第１および第２の並列実行可能な部分を実施することを指令するように構成されている。よって、多大なデータ量の演算および処理を分配する各可能性が用いられ、ひいてはそれが、大量のデータに関して、一式の処理モジュール全体の、効率的、効果的、かつ迅速な運用をもたらすことになる。
【００２０】
本発明の一実施形態によれば、実行可能コードの一式の並列実行可能な部分の各並列実行可能な部分は、１つの特定の並列化形式のステップを含む。このようにして、実行可能コードの構造化された実行が可能になり、これが、処理モジュールの性能の改善をもたらすことになる。本発明の更なる実施形態によれば、２つの並列化形式は別個のものである。さらに、本発明の一実施形態によれば、第１の並列化形式はプログラムループを含み、第２の並列化形式は条件付き分岐を含む。
【００２１】
本発明の一実施形態によれば、実行可能コードの一式の並列実行可能な部分のうちの検出された並列実行可能な部分が、少なくとも２つの並列実行可能なステップとして、プログラムループのステップを含む場合には、少なくとも１つの第１の処理モジュールは、プログラムループの一定の数のサイクルを、選択された少なくとも２つの第２の処理モジュールのそれぞれに割り当てるように構成され、プログラムループの各サイクルは、選択された少なくとも２つの第２の処理モジュールのうちの１つに割り当てられ；実行可能コードの検出された並列実行可能な部分が、少なくとも２つの並列実行可能なステップとして、一式のプログラムループを含む場合には、少なくとも１つの第１の処理モジュールは、一式のプログラムループのうちのプログラムループのそれぞれを、選択された少なくとも２つの第２の処理モジュールのうちの１つに割り当てるように構成され；実行可能コードの検出された並列実行可能な部分が、少なくとも２つの並列実行可能なステップとして、少なくとも２つの条件付き分岐を含む場合には、少なくとも１つの第１の処理モジュールは、各条件付き分岐を、選択された少なくとも２つの第２の処理モジュールのうちの１つに割り当てるように構成され；そして／または、実行可能コードの検出された並列実行可能な部分が、少なくとも２つの並列実行可能なステップとして、少なくとも２つの条件付き分岐を含む場合には、少なくとも１つの第１の処理モジュールは、少なくとも２つの条件付き分岐の各条件を、選択された少なくとも２つの第２の処理モジュールのうちの１つに割り当て、また、少なくとも２つの条件付き分岐の１つの条件に関してコーディングされた、少なくとも２つの条件付き分岐のコードの各部分を、選択された少なくとも２つの第２の処理モジュールのうちの１つに割り当てるように構成されている。
【００２２】
このようにして、複数の処理モジュールによる並列実行可能な部分の並列実行可能なステップの実施を、更に最適化することが可能になり、並列実行可能な部分を実行する各可能性が用いられる。これにより、一式の処理モジュールの性能、演算時間、および効率が改善する。
【００２３】
本発明の一実施形態によれば、一式の処理モジュールは、１つの処理エレメントまたは少なくとも２つの処理エレメントに備えられる。このようにして、処理モジュールは、比較的小さい面積に設置され、小型のハードウェアを実現することが可能になる。さらに、処理モジュール間の通信手段が削減される。このようにして、省エネルギー、省資源、効率的、かつ迅速な処理モジュールの運用が可能になる。
【００２４】
本発明の一実施形態によれば、１つの処理エレメントは、セルプロセッサもしくはセルチップをそれぞれ備え、または、少なくとも２つの処理エレメントは、少なくとも１つのセルプロセッサもしくはセルチップをそれぞれ備える。このようにして、多大なデータ量の迅速かつ効率的な処理が支持される。セルプロセッサまたはセルチップは、それぞれ、適度な性能の汎用電源アーキテクチャコアを、合理化した共同処理エレメントと組み合わせた、マイクロプロセッサアーキテクチャを有するものとして周知である。セルプロセッサの例は、例えば、ＩＢＭのＰｏｗｅｒＸＣｅｌｌ  ８ｉ  プロセッサ、または、ＳｏｎｙのＣｅｌｌ  Ｂ．Ｅ．である。
【００２５】
本発明の更なる実施形態によれば、少なくとも１つの第１の処理モジュールは、電力プロセッサエレメントを備え、少なくとも２つの第２の処理モジュールは、少なくとも１つの電力プロセッサエレメント、および／または、少なくとも１つの共同処理エレメントを備える。このようにして、多大なデータ量の迅速かつ効率的な処理が支持される。
【００２６】
本発明の一実施形態によれば、一式の処理モジュールによって実行可能コードを実行する方法が提供され、この方法は、一式の処理モジュールのうちの少なくとも１つの第１の処理モジュールが、実行可能コードを実行することを含み、実行可能コードは、一式の並列実行可能な部分を含み、実行可能コードの各並列実行可能な部分は、少なくとも２つの並列実行可能なステップを含む。上記実行することは、少なくとも１つの第１の処理モジュールが、実行対象となる、実行可能コードの一式の並列実行可能な部分のうちの並列実行可能な部分を検出することと；少なくとも１つの第１の処理モジュールが、一式の処理モジュールのうちの少なくとも２つの第２の処理モジュールを選択することと；少なくとも１つの第１の処理モジュールが、選択された少なくとも２つの第２の処理モジュールに対し、実行可能コードの検出された並列実行可能な部分の少なくとも２つの並列実行可能なステップを実施することを指令することと；を含む。
【００２７】
具体的には、この方法は、本出願において一式の処理モジュールに関して説明されているステップを実行するように構成されている。よって、対応するステップは、上述した方法のステップも表す。この方法を用いることにより、一式の処理モジュールについて概説されたものと同じ有益な効果が得られる。
【００２８】
本発明の一実施形態によれば、上に概説され、以下の記載で説明される一式の処理モジュールを備えるシステムが提供される。よって、ハードウェアおよびソフトウェアのシステム全体が、一式の処理モジュールに関して概説された有益な効果による恩恵を受け得る。
【００２９】
本発明の一実施形態によれば、このシステムは、一式の処理モジュールを備える１つの処理エレメント、もしくは、一式の処理モジュールを備える少なくとも２つの処理エレメントと；１つの処理エレメントに、もしくは、少なくとも２つの処理エレメントのうちの１つに接続されて、１つの処理エレメントに、もしくは、少なくとも２つの処理エレメントのうちの１つに、記憶容量を提供するように構成された、少なくとも１つのメモリモジュールと；少なくとも１つのメモリモジュールに電力を供給するように構成された、第１の電力供給モジュールと；一式の処理モジュールに電力を供給するように構成された、第２の電力供給モジュールと；ネットワークからデータを受信して、受信したデータを一式の処理モジュールに提供するように、そして／もしくは、一式の処理モジュールからデータを受信して、受信したデータをネットワークに送信するように構成された通信モジュールと；デバイス用のソフトウェアを備えるファームウェアと；ファームウェアに電力を供給するように構成された、第３の電力供給モジュールと；ファームウェア、ネットワークチップモジュール、および１つの処理エレメントを接続するように、もしくは、ファームウェア、ネットワークチップモジュール、および少なくとも２つの処理エレメントを接続するように構成された、接続モジュールと；ならびに／または、第１、第２、および第３の電力供給モジュールに、ならびに、通信モジュールに、電力を供給するように構成された、電力供給インターフェースモジュールと；のうちの少なくとも１つを備える。
【００３０】
本発明の更なる実施形態によれば、１つの処理エレメントはセルプロセッサを備え、もしくは、少なくとも２つの処理エレメントは少なくとも１つのセルプロセッサを備え；少なくとも１つのメモリモジュールは、少なくとも１つのランダムアクセスメモリを備え；電力供給インターフェースモジュールは、周辺コンポーネントインタコネクト（ＰＣＩ）、もしくは、周辺コンポーネントインタコネクトエクスプレス（ＰＣＩ  Ｅｘｐｒｅｓｓ）であり；通信モジュールは、ネットワークチップモジュール、周辺コンポーネントインタコネクトエクスプレススイッチ、もしくは、アップリンクモジュールであり；ファームウェアは、フラッシュ、フィールドプログラム可能ゲートアレイ（ＦＰＧＡ）、もしくは、統一拡張可能ファームウェアインターフェース（ＵＥＦＩ）であり；そして／または、接続モジュールは、入力／出力（Ｉ／Ｏ）機能を管理するように構成されているインタコネクトチップである。
【００３１】
このようにして、必要とされるコンポーネントの量が削減されたシステムの容易な製造が可能になるように、最小限のコンポーネントがシステムに備えられた、一式の処理モジュールを取り巻くコンポーネントのモジュール構成が可能になる。さらに、互いに通信または相互作用する、互いに接続されたシステムのコンポーネントは、互いに近接して設置される。このようにして、システムを配置するためのスペースが削減され、ひいてはそれが、小型のユニットを実現する可能性、およびエネルギー消費削減をもたらすことになる。加えて、システムの性能および効率もまた、改善される。
【００３２】
本発明の一実施形態によれば、上に概説され、より詳細に以下に説明される一式の処理モジュールを備える、サーバシステムが提供される。このようにして、サーバシステムもまた、本出願において挙げられている有益な効果の全てをもたらすように構成されることが好ましい。さらに、既存のデータセンターインフラ／コンポーネント／モジュール／エレメントの導入および／または使用が、同時に可能になる。
【００３３】
本発明の一実施形態によれば、プログラムコードを備えるコンピュータ可読媒体であって、プログラムコードは、演算デバイスによって実行されるときに、上に概説され、より詳細に以下に説明される方法を、前記演算デバイスに実行させる、コンピュータ可読媒体が提供される。
【００３４】
更なる利点および好ましい実施形態が、従属請求項に含まれており、添付の図面を参照して、好ましい実施形態の以下の説明からよりよく理解されるだろう。
【図面の簡単な説明】
【００３５】
【図１ａ】本発明の一実施形態に従って構成された、一式の処理モジュールを示す。
【図１ｂ】本発明の一実施形態に従って構成された、一式の処理モジュールを示す。
【図２】一式の処理モジュールを備え、本発明の一実施形態に従って構成された、処理エレメントを示す。
【図３】一式の処理モジュールがその上に配置された、本発明の一実施形態に係る２つの処理エレメントを示す。
【図４】本発明の一実施形態に係る実行可能コードの例示的構造を示す。
【図５ａ】本発明の一実施形態に係る実行可能コードの並列実行可能な部分を示す。
【図５ｂ】本発明の一実施形態に係る実行可能コードの並列実行可能な部分を示す。
【図５ｃ】本発明の一実施形態に係る実行可能コードの並列実行可能な部分を示す。
【図５ｄ】本発明の一実施形態に係る実行可能コードの並列実行可能な部分を示す。
【図６】本発明の一実施形態に係る実行可能コードの実行を示す。
【図７】本発明の一実施形態に係る実行可能コードの実施を示す。
【図８ａ】本発明の一実施形態に係る実行可能コードの並列実行可能な部分を実行するステップを示す。
【図８ｂ】本発明の一実施形態に係る実行可能コードの並列実行可能な部分を実行するステップを示す。
【図８ｃ】本発明の一実施形態に係る実行可能コードの並列実行可能な部分を実行するステップを示す。
【図８ｄ】本発明の一実施形態に係る実行可能コードの並列実行可能な部分を実行するステップを示す。
【図９ａ】本発明の一実施形態に従って本発明が実施されるシステムを示す。
【図９ｂ】本発明の一実施形態に従って本発明が実施されるシステムを示す。
【図１０】本発明の一実施形態に係る実行可能コードを実行する方法を示す。
【図１１】本発明の上記実施形態に係る上記方法の要求を処理するステップの実施を示す。
【図１２】本発明の上記実施形態に係る上記方法のファイルを処理するステップの実施を示す。
【図１３】本発明の一実施形態に係る一式の処理モジュールの実施態様を示す。
【図１４ａ】本発明の一実施形態に係る１つの処理エレメントを備えるシステムの実施態様を示す。
【図１４ｂ】本発明の一実施形態に係る２つの処理エレメントを備えるシステムの実施態様を示す。
【図１５】本発明の一実施形態に係る１つの処理エレメントを備えるシステムの実施態様を示す。
【図１６】本発明の一実施形態に係る２つの処理エレメントを備えるシステムの実施態様を示す。
【図１７】本発明の一実施形態に係る一式の処理モジュールの実施態様を示す。
【発明を実施するための形態】
【００３６】
［発明の詳細な説明］
以下の段落では、本発明の様々な実施形態を説明する。単に例示を目的として、実施形態のほとんどは、マイクロプロセッサアーキテクチャに関連して概説されており、以下のセクションで使用される専門用語は、主としてその技術に関するものである。しかし、使用される専門用語、およびマイクロプロセッサに関する実施形態の説明は、本発明の原理および理念をそのようなシステムに限定することを意図しているものではない。
【００３７】
また、上記「発明の背景」のセクションにおいてなされた詳細な説明は、以下に説明される、ほぼマイクロプロセッサアーキテクチャに特化した例示的実施形態を、よりよく理解することを単に意図しているのであって、説明されたプロセスおよび機能の特定の実施態様に本発明を限定するものと理解されるべきではない。
【００３８】
以下のセクションで概説される理念および原理は、より一般的なマイクロプロセッサアーキテクチャの概念を提供するシステムに適用可能であり得る。
図１ａは、本発明の一実施形態に従って構成された、処理モジュール１１、１２＿１〜１２＿ｋからなるセット１を示す。処理モジュール１１、１２＿１〜１２＿ｋは、例えばプロセッサであることが好ましい。処理モジュール１１、１２＿１〜１２＿ｋからなるセット１は、実行可能コードを実行するように構成されている。処理モジュール１１、１２＿１〜１２＿ｋのうちの少なくとも１つは、コードの実行を制御するように構成されている。図１ａでは、この制御用処理モジュールは、対応するボックス１１の太線によって強調されている。更なる処理モジュール１２＿１〜１２＿ｋは、コードの並列実行可能な部分のステップを実施するように構成されている。
【００３９】
制御用処理モジュール１１は、実行可能コードを実行するように構成されている。コードの実行中に、制御用処理モジュール１１が、並列に実行される可能性があって次に実行対象となる、実行可能コードの部分に到達すると、すなわち、制御用処理モジュール１１が、実行可能コードの並列実行可能な部分を検出または認識すると、制御用処理モジュール１１は、検出または認識された並列実行可能な部分を実施／実行するための、処理モジュール１１、１２＿１〜１２＿ｋからなるセット１のうちの、少なくとも２つの処理モジュール１１、１２＿１〜１２＿ｋを選択する。
【００４０】
本発明の一実施形態によれば、並列実行可能な部分は、実行可能コードにおいて、並列実行に適しているとしてマーキングされる。ここで、並列実行可能な部分の始まりと終わりが、実行可能コードにおいて、その旨マーキングされてもよい。これには、幾つかの適切な手法が適用され得る。例えば、コードの上記部分に関する特定の機能を実行するためのコール、好ましくは事前指定されたコール、コードの上記部分の始まりと終わりをマーキングする特定の指令、または、更なる事前規定された機能または命令が、並列実行可能な部分をコードにおいてマーキングするのに使用されることが好ましい。このようにして、コードを実行する制御用処理モジュール１１は、実行可能コードを実行する次の命令として、対応するマーカーを検出し、ひいては、次に実行対象となる並列実行可能な部分を検出する。
【００４１】
並列実行可能な部分を特定した後、制御用処理モジュール１１は、検出または認識された並列実行可能な部分を実施／実行するための、処理モジュール１１、１２＿１〜１２＿ｋからなるセット１のうちの、少なくとも２つの処理モジュール１１、１２＿１〜１２＿ｋを選択する。この少なくとも２つの処理モジュール１１、１２＿１〜１２＿ｋは、制御用処理モジュール１１を含んでいてもよい。あるいは、この少なくとも２つの処理モジュール１１、１２＿１〜１２＿ｋは、制御用処理モジュール１１の他に、処理モジュール１２＿１〜１２＿ｋを含んでいてもよい。
【００４２】
続いて、コードにおける検出された並列実行可能な部分を実施するための処理モジュール１１、１２＿１〜１２＿ｋを選択した後、制御用処理モジュール１１は、選択された処理モジュール１１、１２＿１〜１２＿ｋに対し、並列実行可能な部分の少なくとも２つのステップを実施するように指令する。ここで、制御用処理モジュール１１は、検出された並列実行可能な部分のステップのそれぞれを、選択された処理モジュール１１、１２＿１〜１２＿ｋのうちの１つに割り当てる。さらに、選択された処理モジュール１１、１２＿１〜１２＿ｋのそれぞれに、上記ステップの少なくとも１つが割り当てられる。よって、選択された処理モジュール１１、１２＿１〜１２＿ｋのうちの幾つかまたはそれぞれは、上記ステップのうちの複数を実行し得る。他のケースでは、選択された処理モジュール１１、１２＿１〜１２＿ｋへの並列実行可能なステップの割り当ては、選択された処理モジュール１１、１２＿１〜１２＿ｋのうちの少なくとも１つが、並列実行可能なステップを割り当てられないような形であり得る。これは、例えば、実行の際に、存在する並列実行可能なステップを上回る数の処理モジュール１１、１２＿１〜１２＿ｋが選択される状況にも当てはまり得る。例えば、並列実行可能な部分の並列実行可能なステップの数が、正確に事前指定できない、ということが起こり得る。このような状況が起こった場合には、選択された処理モジュール１１、１２＿１〜１２＿ｋのうちの幾つかは、実行のステップを有さないこととなる。あるいは、割り当ての間に、例えばハードウェアおよび／またはソフトウェアの環境の変化に起因して、選択された処理モジュール１１、１２＿１〜１２＿ｋのうちの１つまたは幾つかを使用しないことが適切であるように見え、それゆえ、並列実行可能なステップが、選択された処理モジュール１１、１２＿１〜１２＿ｋのうちの上記１つまたは幾つかに割り当てられない、ということが起こりうる。
【００４３】
割り当てられたステップの実行は、上記ステップが割り当てられている処理モジュール１１、１２＿１〜１２＿ｋによって、実質的に並列に、または、引き続いて、行われ得る。選択された処理モジュール１１、１２＿１〜１２＿ｋは、制御用処理モジュール１１から、対応する指令／命令を受けた後に、自らに割り当てられた１つまたは複数のステップを、実行し始める、すなわち、実行する。選択された処理モジュール１１、１２＿１〜１２＿ｋは、現在、または所定の時に、自らに割り当てられたステップを実行するのであるが、自らに割り当てられたステップを、少なくとも部分的に同時に、すなわち、少なくとも部分的に互いに並列に、実施している。制御用処理モジュール１１は、選択された処理モジュール１１、１２＿１〜１２＿ｋに対し、引き続いて、および／または、少なくとも部分的に並列に、対応するステップを実施することを指令し得る。よって、並列実行可能なステップの一群が、少なくとも部分的に互いに並列に実行される一方、並列実行可能なステップの別の一群が、少なくとも部分的に互いに並列に後に実行されることが可能である。したがって、並列実行可能なステップの幾つかが、選択された処理モジュール１１、１２＿１〜１２＿ｋの第１のサブセットによって実行される一方、並列実行可能なステップの他の一群が、選択された処理モジュール１１、１２＿１〜１２＿ｋの第２のサブセットによって実行される、ということが起こり得る。選択された処理モジュール１１、１２＿１〜１２＿ｋの第１および第２のサブセットは、重複していてもよいし、または等しくてもよい。
【００４４】
本発明の一実施形態によれば、処理モジュール１１、１２＿１〜１２＿ｋからなるセット１は、複数の制御用処理モジュール１１を備える。この場合、対応する制御用処理モジュール１１、１２＿１〜１２＿ｋは、互いに通信するように構成され、また、コード実行のタスク、具体的にはコード実行の制御のタスクを共有するように構成されている。上記実施形態によれば、制御用処理モジュール１１、１２＿１〜１２＿ｋのそれぞれに対して、セット１の対応する更なる処理モジュール１１、１２＿１〜１２＿ｋが割り当てられる。よって、制御用処理モジュール１１、１２＿１〜１２＿ｋのそれぞれは、自らに割り当てられた、対応する並列実行可能な部分を実施するための、そのような処理モジュール１１、１２＿１〜１２＿ｋのみを選択する。本発明の更なる実施形態によれば、２つの制御用処理モジュール１１、１２＿１〜１２＿ｋに割り当てられた、処理モジュール１１、１２＿１〜１２＿ｋは、重複していてもよい。よって、セット１の処理モジュール１１、１２＿１〜１２＿ｋの幾つかは、制御用処理モジュール１１、１２＿１〜１２＿ｋのうちの少なくとも２つによって、選択されることが好ましい。
【００４５】
図１ｂは、本発明の更なる実施形態に従って構成された、一式の処理モジュール１１’〜１１”、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”を示す。図１ｂでは、一式の制御用処理モジュール１１’〜１１”が提供され、制御用処理モジュール１１’〜１１”のそれぞれには、更なる処理モジュール１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”からなる対応するサブセットが割り当てられている。一式の制御用処理モジュール１１’〜１１”のうちの１つの制御用処理モジュール１１’は、主たる制御用処理モジュールを表す。その他の制御用処理モジュール１１”は、対応する一式の並列実行可能なステップを実行するための主たる制御用処理モジュール１１’によって選択されるように構成されている。主たる制御用処理モジュール１１’は、制御用処理モジュール１１’〜１１”のそれぞれに関して、および、それに割り当てられた処理モジュール１２’＿１〜１２’＿ｋ’に関して、選択を実施する。主たる制御用処理モジュール１１’が、一式のステップを実行するための別の制御用処理モジュール１１”も選択して、当該別の制御用処理モジュール１１”に対し、当該一式のステップを実施することを指令した場合、選択された処理モジュール１１”は、一式のステップを実行するための、対応する処理モジュール１１”、１２”＿１〜１２”＿ｋ”を選択するように構成され、また、選択された処理モジュール１１”、１２”＿１〜１２”＿ｋ”に対し、対応する並列実行可能なステップを実施することを指令するように構成されている。これは、図１ａに関して既に上に概説されている通りである。
【００４６】
図２は、本発明の一実施形態に係る一式の処理モジュール２１１、２１２＿１〜２１２＿ｍを備える、処理エレメント２１を示す。処理エレメント２１は、例えばセルプロセッサまたはセルチップのような、プロセッサまたはチップであることが好ましく、それらは当業者には周知であるため、ここでは明示的に定義されない。一式の処理モジュール２１１、２１２＿１〜２１２＿ｍは、上に概説されたように（図１およびその説明を特に参照）、そして／または、より詳細に以下に説明されるように、実現および配置される。
【００４７】
図３は、一式の処理モジュール３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒがその上に配置された、本発明の一実施形態に係る２つの処理エレメント３１、３２を示す。本実施形態によれば、処理エレメント３１、３２のそれぞれは、少なくとも１つの制御用処理モジュール３１１、３２１と、少なくとも１つの更なる処理モジュール３１２＿１〜３１２＿ｋ、３２２＿１〜３２２＿ｒと、を備える。処理エレメント３１、３２のそれぞれの、更なる処理モジュール３１２＿１〜３１２＿ｋ、３２２＿１〜３２２＿ｒのアカウントは、異なっていてもよいし、等しくてもよく、すなわち、ｒ＝ｋまたはｒ≠ｋが成り立つ。同様に、処理エレメント３１、３２のそれぞれの、制御用処理モジュール３１１、３２１のアカウントもまた、異なっていてもよいし、等しくてもよい。処理エレメント３１、３２のうちの少なくとも１つは、例えばセルプロセッサまたはセルチップのような、例えばプロセッサまたはチップであってもよい。一式の処理モジュール３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒは、上に概説されたように（図１およびその説明を特に参照）、そして／または、より詳細に以下に説明されるように、実現および配置される。
【００４８】
図４は、本発明の一実施形態に係る、実行可能コード４の例示的構成を示す。概して、実行可能コード４は、並列に実行され得る、すなわち、並列実行可能な、少なくとも１つの部分を含む。本実施形態は、実行可能コード４を区分するほんの一例を示しており、本発明は、この例にのみ限定されるものではない。本実施形態によれば、実行可能コードは、例として、６つの部分４１〜４５および４７に区分されており、そのうち、部分４２、４４、４５、および４７は、並列実行可能な部分である。本実施形態によれば、コード４は、選択的に実行される２つの分岐を有する。第１の分岐は、部分４４および４５を含み、その実行後、実行可能コードは完了する（コード４の完了を示すボックス４６参照）。第２の分岐は、部分４７を含み、その実行後、実行可能コードは完了する（コード４の完了を示すボックス４８参照）。
【００４９】
図６は、実行可能コード４を実行するステップ、具体的には、部分４４、４５を有する第１の選択肢が実施される場合の実行を、例示的に示す。
本実施形態については、コード４が実行されると、図６のステップＳ６１にて、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１が、部分４１を実行する。部分４１は、一式の並列実行可能な部分に属していない。続いて、Ｓ６１における部分４１の実行終了後、図６のステップＳ６２にて、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、次に実行対象となるコード４の一部として、並列実行可能な部分４２を検出または認識し、そして、検出された並列実行可能な部分４２を実施するための、少なくとも２つの処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒを選択する。さらに、選択した後、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、選択された少なくとも２つの処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒに対し、部分４２を実施することを指令する。この指令を実施する際に、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、部分４２の各並列実行可能なステップを、対応する選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒに割り当てるが、これらは、ひいては、並列実行可能なステップのうちの１つまたは複数を、引き続いて、または、実質的に並列に、実施することを指令され得る。
【００５０】
さらに、図６のステップＳ６２にて、部分４２のステップの実行終了後、対応する選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒのそれぞれは、実行の結果またはフィードバックを、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１に提供する。部分４２の全ての並列実行可能なステップの実行の結果またはフィードバックを受け取った後、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、部分４２を、実行されているものとみなす。こうして、図６のステップＳ６２は、完了する。
【００５１】
本実施形態によれば、部分４３は、一式の並列実行可能な部分に属していないため、図６のステップＳ６３にて、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、次の部分４３を実行する。
【００５２】
Ｓ６３における部分４３の実行完了後、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、与えられた状況に従って、部分４４および４５、または部分４７を含む、更なる選択肢のうちのどちらが実行されるべきかを判定する。図６の本実施形態のケースがそうであるように、部分４４および４５が、選ばれるべき選択肢である場合には、ステップＳ６４にて、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、並列実行可能な部分として部分４４を検出し、部分４２に関して上に説明されたものと同じ方法で、その実行を実施する。
【００５３】
Ｓ６４における部分４４の実行後、図６のステップＳ６５にて、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、並列実行可能な部分として部分４５を検出し、部分４２に関して上に説明されたものと同じ方法で、その実行を実施する。Ｓ６５における部分４４の実行が終了すると、コード４の実行はステップＳ６６で終了し、例えば、実行されるべき更なるコード命令は得られず、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、図４のボックス４６および図６のステップＳ６６に示されるように、コード４の実行を完了する。
【００５４】
同様の手順が、並列実行可能な部分４７だけを含む第２の選択肢に関しても行われる。部分４２に関して上に説明されたように部分４７が実行された後、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、図４のボックス４８に示されるように、コード４の実行を完了する。
【００５５】
図５ａ〜５ｄは、並列実行可能な部分４２、４４、４５、４７を実行する例を示す。並列実行可能な部分４２、４４、４５、４７の実行は、並列化の形式に左右される。並列化の形式とは、本発明の一実施形態によれば、プログラムループに関連する形式、または、条件付き分岐に関連する形式であり得る。
【００５６】
プログラムループは、ソフトウェアプログラミングの分野では周知である。ループは、一度に規定されるが連続して数回行われることが好ましい、一連の命令である。ループ内で規定されてループに関して行われるこの一連の命令は、ループ本体とも称される。加えて、ループは、ループ本体の命令を実行する回数の規定を含む。ループの代表例は、例えば、ｆｏｒループまたはｗｈｉｌｅループである。
【００５７】
ｆｏｒループは、以下のように規定され得る。
Ｆｏｒ  ｊ  ＝  １  ＴＯ  Ｎ
ＸＸＸ
ステートメント「Ｆｏｒ  ｊ  ＝  １  ＴＯ  Ｎ」は、ｉｆループ本体の命令「ＸＸＸ」を実行する反復回数を規定し、本例ではＮである。
【００５８】
Ｗｈｉｌｅループは、以下のように規定され得る。
Ｄｏ  ｗｈｉｌｅ（ｔｅｓｔ）
ＸＸＸ
ステートメント「Ｄｏ  ｗｈｉｌｅ（ｔｅｓｔ）」は、ｗｈｉｌｅループ本体の命令「ＸＸＸ」を実行する反復回数を規定する。ステートメント「ｔｅｓｔ」は、ｗｈｉｌｅループが実行されるたびに、真でなければならない条件を表す。
【００５９】
上に提示したループは、例にすぎず、本発明はそれらに限定されるものではなく、更なるループ規定を使用することも可能である。
本発明の一実施形態によれば、並列実行可能な部分は、１つのループのみによって定められてもよい。そのような並列実行可能な部分の各並列実行可能なステップは、ループ本体が実施される特定の時間、すなわちサイクルを参照し、また、上記並列実行可能なステップの実行のための、対応する選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒに割り当てられる。選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒは、ループの少なくとも１つのサイクルまたは並列実行可能なステップを実施し、複数の並列実行可能なステップまたはサイクルも実施してもよい。
【００６０】
並列実行可能なブロックとして１つのループを使用する条件は、ループの各サイクルの独立した実行である。換言すると、ループの１サイクルの実行は、ループの他のサイクルのうちのどれの実行にも影響を与えない。
【００６１】
図５ａは、１つのループを含み、それの各並列実行可能なステップ５１＿１〜５１＿ｉがループの実行サイクルを表す、並列実行可能な部分５１の一例を示す。図８ａは、Ｓ８１にて図５ａの並列実行可能な部分５１を実行するステップを示す。図８ａのステップＳ８１１では、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、次に実行対象となる部分であるとして、実行可能コードの部分５１を検出する。図８ａのステップＳ８１２では、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、実行可能コードの部分５１を実施するための、少なくとも２つの処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒを選択する。この選択は、ループまたは部分５１をそれぞれ実施するのに必要な、並列実行可能なステップ／サイクル５１＿１〜５１＿ｉのアカウント次第となり得る。並列実行可能なステップ／サイクル５１＿１〜５１＿ｉの量は、選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒの間で分配される。このため、図８ａのステップＳ８１３では、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、ループ／部分５１の各並列実行可能なステップ／サイクル５１＿１〜５１＿ｉを、並列実行可能なステップ／サイクル５１＿１〜５１＿ｉのうちの１つまたは複数を実施し得る、対応する選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒに割り当て、選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒに対し、自らに割り当てられた、並列実行可能な１つまたは複数のステップ／サイクル５１＿１〜５１＿ｉを実施することを指令する。
【００６２】
本発明の一実施形態によれば、並列実行可能な部分は、複数のループ、すなわち２つ以上のループによって定められ得る。そのような並列実行可能な部分の条件は、並列実行可能な部分のループの独立した実行である。よって、各ループを実行することは、他のループのうちのどれの実行にも影響を与えない。換言すると、ループのうちのどれも、別のループによって変更されたデータを使用しないし、また、必要ともしない。本実施形態によれば、ループのそれぞれは、複数のループを含む並列実行可能な部分の、並列実行可能なステップとみなされる。
【００６３】
図５ｂは、複数のループを含み、ループのそれぞれが、並列実行可能な部分５２の並列実行可能なステップ５２＿１〜５２＿ｉを表す、並列実行可能な部分５２の一例を示す。図８ｂは、Ｓ８２にて図５ｂの並列実行可能な部分５２を実行するステップを示す。図８ｂのステップＳ８２１では、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、次に実行対象となる部分であるとして、実行可能コードの部分５２を検出する。図８ｂのステップＳ８２２では、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、実行可能コードの部分５２を実施するための、少なくとも２つの処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒを選択する。この選択は、部分５２に含まれる、並列実行可能なステップ／ループ５２＿１〜５２＿ｉのアカウント次第となり得る。部分５２の並列実行可能なステップ／ループ５２＿１〜５２＿ｉは、選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒの間で分配される。このため、図８ｂのステップＳ８２３では、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、部分５２の各並列実行可能なステップ／ループ５２＿１〜５２＿ｉを、並列実行可能なステップ／ループ５２のうちの１つまたは複数を実施し得る、対応する選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒに割り当て、選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒに対し、自らに割り当てられた、並列実行可能な１つまたは複数のステップ／ループ５２＿１〜５２＿ｉを実施することを指令する。
【００６４】
本発明の一実施形態によれば、並列実行可能な部分は、条件付き分岐に関連する形式であってもよい。条件付き分岐は、ソフトウェアプログラミングの分野では周知である。条件付き分岐は、条件付きで実行される、実行可能コード４における一連のステートメント／命令と、条件付き分岐のステートメント／命令が実行されることになる１つまたは複数のケースを規定する条件と、を含む。ステートメント／命令は、条件付き分岐本体と称され得る。条件付き分岐の代表例は、ｉｆ-ｔｈｅｎ−ｅｌｓｅ構文である。ｉｆ-ｔｈｅｎ−ｅｌｓｅ構文は、以下のように規定され得る。
【００６５】
ｉｆ（ｃｏｎｄｉｔｉｏｎ  １）ｔｈｅｎ
ｙｙｙ１
ｅｌｓｅ  ｉｆ（ｃｏｎｄｉｔｉｏｎ  ２）ｔｈｅｎ
ｙｙｙ２
ｅｌｓｅ
ｙｙｙ３
ステートメント「ｉｆ（ｃｏｎｄｉｔｉｏｎ  １）」、「ｅｌｓｅ  ｉｆ（ｃｏｎｄｉｔｉｏｎ  ２）」、および「ｅｌｓｅ」は、条件を規定し、そのうち、「ｅｌｓｅ」は、「ｃｏｎｄｉｔｉｏｎ  １」および「ｃｏｎｄｉｔｉｏｎ  ２」が満たされていない場合を指す。「ｙｙｙ１」、「ｙｙｙ２」、および「ｙｙｙ３」は、条件が満たされた際に実施されることになる、対応する条件の本体を規定する。
【００６６】
図５ｃは、本発明の一実施形態に係る実行可能コードの、並列実行可能な部分５３を示す。図５ｃの実施形態によれば、並列実行可能な部分５３は、条件付き分岐を含み、条件規定および対応する条件本体を有する各条件付き分岐は、並列実行可能な部分５３の並列実行可能なステップ５３＿１〜５３＿ｉを表す。
【００６７】
図８ｃは、Ｓ８３にて図５ｃの並列実行可能な部分５３を実行するステップを示す。図８ｃのステップＳ８３１では、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、次に実行対象となる部分であるとして、実行可能コードの部分５３を検出する。図８ｃのステップＳ８３２では、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、実行可能コードの部分５３を実施するための、少なくとも２つの処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒを選択する。この選択は、部分５３に含まれる、並列実行可能なステップ／条件付き分岐５３＿１〜５３＿ｉのアカウント次第となり得る。部分５３の並列実行可能なステップ／条件付き分岐５３＿１〜５３＿ｉは、選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒの間で分配される。このため、図８ｃのステップＳ８３３では、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、部分５３の各並列実行可能なステップ／条件付き分岐５３＿１〜５３＿ｉを、並列実行可能なステップ／分岐５３＿１〜５３＿ｉのうちの１つまたは複数を実施し得る、対応する選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒに割り当て、選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒに対し、自らに割り当てられた、１つまたは複数の並列実行可能なステップ／分岐５３＿１〜５３＿ｉを実施することを指令する。
【００６８】
図５ｄは、本発明の一実施形態に係る実行可能コードの、並列実行可能な部分５４を示す。図５ｄの実施形態によれば、並列実行可能な部分５４は、条件付き分岐を含み、各条件規定および各条件本体は、並列実行可能な部分５４の並列実行可能なステップ５４＿１〜５４＿ｉを表す。理解しやすいように、図５ｄでは、条件５４＿１、５４＿ｉ−１によって表される並列実行可能なステップは、それらの本体５４＿２、５４＿ｉの上に描かれている。
【００６９】
図８ｄは、Ｓ８４にて図５ｄの並列実行可能な部分５４を実行するステップを示す。図８ｄのステップＳ８４１では、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、次に実行対象となる部分であるとして、実行可能コードの部分５４を検出する。図８ｄのステップＳ８４２では、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、実行可能コードの部分５４を実施するための、少なくとも２つの処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒを選択する。この選択は、部分５４の並列実行可能なステップ５４＿１〜５４＿ｉのアカウント次第となり得る。部分５４の並列実行可能なステップ５４＿１〜５４＿ｉは、選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒの間で分配される。このため、図８ｄのステップＳ８４３では、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、並列実行可能なステップ５４＿１〜５４＿ｉのうちの１つまたは複数を実施し得る、部分５４の各並列実行可能なステップ５４＿１〜５４＿ｉを、対応する選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒに割り当て、選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒに対し、自らに割り当てられた、１つまたは複数の並列実行可能なステップ５４＿１〜５４＿ｉを実施することを指令する。
【００７０】
ここで、注目すべきことは、並列実行可能な部分は、少なくとも１つの更なる並列実行可能な部分、すなわち少なくとも１つの並列実行可能なサブ部分を含み得る、ということである。この場合、並列実行可能な部分が、選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒによって実施されると、また、この実行のうちに並列実行可能なサブ部分が検出されると、上述したような選択および指令するステップが、並列実行可能なサブ部分に関して再び実行される。処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒの選択を実施する際に、上記並列実行可能な部分について選択されたものとは異なる、別の処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒが、並列実行可能なサブ部分の実施に関して選択されることが好ましい。
【００７１】
図７は、Ｓ７における本発明の一実施形態に係る実行可能コードの実施を示し、Ｓ７４における並列実行可能な部分の実行中に、並列実行可能なサブ部分がＳ７４１にて実施される。図７によれば、最初に、実行可能コードの一部が、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１によって、Ｓ７１にて実行される。続いて、並列実行可能な部分が、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１によって選択された、少なくとも２つの処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒによって、Ｓ７２にて実行される。続いて、更なる部分が、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１によって、Ｓ７３にて実行される。ステップＳ７４では、並列実行可能な部分の実行が行われる。ここで、対応する選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒは、並列実行可能なサブ部分の存在を検出し、これを少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１に報告する。ステップＳ７４１では、その報告を受けることによって、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、並列実行可能なサブ部分の存在を検出する。続いて、ステップＳ７４１にて、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、上記サブ部分を実施するための少なくとも２つの処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒを選択し、そして、それらに対し、並列実行可能なサブ部分の、対応する並列実行可能なステップを実施することを指令する。ステップＳ７４１の実行後、ステップＳ７４の実行が、上記サブ部分を含む並列実行可能な部分に関して選択された、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒによって継続される。
【００７２】
図９ａは、本発明が、本発明の一実施形態に従って実施され得るシステムを示す。図９ａのシステムは、サーバ９１と、クライアント９２と、データベース９３と、を備える。本実施形態によれば、クライアント９２は、サービスおよび／またはデータの要求をサーバ９１に送信する。サーバ９１は、受信したサービスおよび／またはデータの要求のそれぞれを処理する。このため、サーバ９１は、対応する、または必要なデータを、少なくとも部分的にデータベース９３を用いて検索・取得し得る。サーバ９１およびデータベース９３は、互いの間でデータを交換するように構成されている。受信したサービスおよび／またはデータの要求のそれぞれを処理した後、サーバ９１は、クライアント９２の対応する要求に応えて、対応するデータまたは情報をクライアント９２に送信する。サーバ９２は、例えば、ウェブサーバ、または、アプリケーションサーバなどの、別の情報またはサービス提供サーバであってもよい。
【００７３】
図９ｂは、本発明が、本発明の更なる実施形態に従って実施され得るシステムを示す。図９ａのシステムは、クライアント９２とサーバ９４とを備え、サーバ９４は、データ処理コンポーネント９４＿１とデータベース９４＿２とを備える。本実施形態によれば、クライアント９２は、データおよび／またはサービスの要求をサーバ９４に送信する。クライアント９２から受信した各要求に応えて、サーバ９４のデータ処理コンポーネント９４＿１は、対応する要求を処理する。このため、データ処理コンポーネント９４＿１は、対応する、または必要なデータを、少なくとも部分的にデータベース９４＿２を用いて検索・取得し得る。データ処理コンポーネント９４＿１およびデータベース９４＿２は、互いの間でデータを交換するように構成されている。受信したサービスおよび／またはデータの要求のそれぞれを処理した後、サーバ９４は、クライアント９２の対応する要求に応えて、対応するデータまたは情報をクライアント９２に送信する。サーバ９４は、例えば、ウェブサーバ、または、別の情報もしくはサービス提供サーバであってもよい。
【００７４】
図１０は、本発明の一実施形態に係る実行可能コードを実行する方法を示す。本実施形態によれば、実行可能コードは、要求されたデータを提供するソフトウェアプログラムまたはシステムを参照する、または、含む。図９ａおよび図９ｂの実施形態を考慮に入れると、実行可能コードは、サーバ９１、９４によって実行される。よって、サーバ９１、９４は、以下に挙げるもののうちの少なくとも１つに関する、大量のデータの取り扱いが可能でなければならないコンポーネントである：大量の受信した要求；例えばデータベース９３、９４＿２に格納されたデータのような大量のデータの処理；ならびに、クライアント９２から受信した要求に応えて、大量のデータを、処理する間、および／または、クライアント９２に提供する間に発生するデータ。サーバ９１、９４は、例えばウェブサーバが通常そうであるように、１つだけでなく複数のクライアント９２を受け持つように構成されることが好ましい。
【００７５】
以下において、本実施形態は、サーバ９１、９４がウェブサーバであるケースを扱う。しかし、本発明は、ウェブサーバの適用のみに限定されるものではない。同じことが、更なる種類のサーバ９１、９４に関しても同様に当てはまり得る。
【００７６】
本実施形態によれば、ステップＳ１０＿１にて、サーバ９１、９４は、クライアント９２からの要求の着信を読み取る。ステップＳ１０＿１は、サーバ９１、９４、またはデータ処理コンポーネント９４＿１の、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１によって実施されることが好ましい。
【００７７】
ステップＳ１０＿２では、受信した要求の処理が実施される。受信した要求のそれぞれは、別の受信した要求と実質的に並列に、Ｓ１０＿２で処理されることが好ましい。したがって、受信した要求の処理に関する実行可能コードの部分は、プログラムループを含む並列実行可能な部分を表す。この並列実行可能な部分は、図５ａおよび８ａに示されるように実行されることが好ましい。１つまたは複数の要求の存在を検出した後、受信した要求のそれぞれについて、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、サーバ９１、９４、またはデータ処理コンポーネント９４＿１の、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒを選択し、その処理モジュールに対し、要求の処理を実施することを指令する。
【００７８】
図１１は、本実施形態に係る、要求を処理するステップＳ１０＿２の実施をより詳細に示す。本実施形態によれば、クライアント９２から受信した要求は、ウェブアドレスを表す統一資源位置指定子（ＵＲＬ）を含む。ステップＳ１１＿１では、要求を処理するために選択された、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒは、要求が関連しているデータを特定するが、例えば、それは、要求のＵＲＬにアクセスがあった際に可視化または表示されるものである。本実施形態によれば、特定されたデータは、データベース９３、９４＿２に格納されている可能性のある、少なくとも１つのデータファイルに対応する。
【００７９】
ステップＳ１１＿２では、要求の上記ＵＲＬの可視化に使用されていることが特定された各データファイルが、処理される。複数のデータファイルが存在することがあるため、ステップＳ１１＿２をコーディングする部分は、データファイルのそれぞれに関して実施されるプログラムループに関する、並列実行可能な部分を表す。この並列実行可能な部分の実行は、例えば、図５ａおよび８ａに示されるように行われることが好ましい。よって、特定の要求に関してステップＳ１０＿２を実施するために選択される、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒは、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１に対し、並列実行可能な部分の存在を知らせる。この情報を受けて、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、上記並列実行可能な部分の存在を検出し、データファイルのそれぞれに関して、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒを選択し、そして、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒに対し、Ｓ１１＿２における上記データファイルの処理を実施することを指令する。
【００８０】
図１２は、本実施形態に係る、Ｓ１１＿２におけるファイルの処理の実施をより詳細に示す。ステップＳ１２＿１では、アクセス権の検証が行われる。複数のアクセス権がチェックされ得るため、ステップＳ１２＿１をコーディングする、実行可能なプログラムの部分は、条件付き分岐を含む並列実行可能な部分である。この並列実行可能な部分の実行は、図５ｃおよび８ｃに示されるように、または、図５ｄおよび８ｄに示されるように、行われることが好ましい。ステップＳ１１＿２を実施するために選択された、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒは、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１に対し、並列実行可能な部分の存在を知らせる。この情報を受けて、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、上記並列実行可能な部分の存在を検出し、そして、アクセス権の検証を実施するための、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒを選択する。並列実行可能なステップのそれぞれは、条件付き分岐の全体を含んでいてもよいし（図５ｃおよび８ｃの状態を参照）、または、条件規定もしくは条件分岐本体を含んでいてもよい（図５ｄおよび８ｄの状態を参照）。条件規定は、特定のアクセス権のチェックを表してもよく、条件分岐本体は、対応する条件が真である場合に実施されるステップを規定してもよい。少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒに対し、自らに割り当てられた、対応する１つまたは複数の並列実行可能なステップを実施することを指令する。選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒのそれぞれから結果を受信した後、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、その結果を、ステップＳ１１＿２を実施するために選択された、処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒに提供する。
【００８１】
対応する選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒは、データファイルへのアクセスが許可されているかを検証する。許可されていない場合には、エラー処理ステップＳ１２＿２の実行が開始される。データファイルへのアクセスが許可されている場合には、ステップＳ１２＿３で、ファイルの有無がチェックされる。ここで、データファイルの、（例えば、データベース９３、９４＿２における）考えられる記憶場所のそれぞれがチェックされる。したがって、ステップＳ１２＿３の実行をコーディングする、実行可能コードの部分は、条件付き分岐を含む並列実行可能な部分である。この並列実行可能な部分の実行は、図５ｃおよび８ｃに示されるように、または、図５ｄおよび８ｄに示されるように行われることが好ましい。ステップＳ１１＿２を実施するために選択された、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒは、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１に対し、並列実行可能な部分の存在を知らせる。この情報を受けて、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、上記並列実行可能な部分の存在を検出し、そして、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒを選択する。並列実行可能なステップのそれぞれは、条件付き分岐の全体を含んでいてもよいし（図５ｃおよび８ｃの状態を参照）、または、条件規定もしくは条件分岐本体を含んでいてもよい（図５ｄおよび８ｄの状態を参照）。条件規定は、特定の記憶場所をチェックすることを表してもよく、条件分岐本体は、対応する条件が真である場合に実施されるステップを規定してもよい。少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒに対し、自らに割り当てられた、１つまたは複数の並列実行可能なステップを実施することを指令する。選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒのそれぞれから結果を受信した後、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、その結果を、ステップＳ１１＿２を実施するために選択された、処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒに提供する。
【００８２】
ステップＳ１２＿３にてデータファイルの記憶場所が特定できない場合には、対応するエラー処理が、ステップＳ１２＿２にて開始される。あるいは、ステップＳ１２＿４にて、例えば多目的インターネットメール拡張仕様（ＭＩＭＥ）のような、データファイルのファイル形式の特定が行われる。ファイル形式は複数あり得るので、ステップＳ１２＿２の実行をコーディングする実行可能コードの部分は、１つのファイル形式につき１つの分岐を有する条件付き分岐を含む、並列実行可能な部分である。この並列実行可能な部分の実行は、図５ｃおよび８ｃに示されるように、または、図５ｄおよび８ｄに示されるように行われ得る。ステップＳ１１＿２を実施するために選択された、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒは、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１に対し、並列実行可能な部分の存在を知らせる。この情報を受けて、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、上記並列実行可能な部分の存在を検出し、そして、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒを選択する。並列実行可能なステップのそれぞれは、条件付き分岐の全体を含んでいてもよいし（図５ｃおよび８ｃの状態を参照）、または、条件規定もしくは条件分岐本体を含んでいてもよい（図５ｄおよび８ｄの状態を参照）。条件規定は、特定のファイル形式をチェックすることを表していてもよく、条件分岐本体は、対応する条件が真である場合に実施されるステップを規定してもよい。少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒに対し、自らに割り当てられた、１つまたは複数の並列実行可能なステップを実施することを指令する。選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒのそれぞれから条件チェックの結果を受信した後、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、その結果を、ステップＳ１１＿２を実施するために選択された、処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒに提供する。
【００８３】
そして、更なる処理は、データファイルの形式によって決定される。当該形式のデータファイルを可視化するための、例えばインタープリタを使用した、対応するデータの更なる処理が不必要な場合には、データファイルがクライアント９２に提供され得る。この場合、ファイルをファイル送信のために複数の部分に分割するステップＳ１２＿５が実施される。このため、ファイルの部分読み出しが行われるが、その際、等しいサイズの部分が読み出されてクライアント９２に送信するためのデータパケットに処理され、また、読み出されてデータパケットに処理された最後の部分は、他の／先行する部分のサイズ以下である。読み出し、および、引き続いての対応するデータ部分を用いたデータパケットの生成は、並列に行われることが好ましいため、ステップＳ１２＿５をコーディングする実行可能コードの部分は、並列実行可能な部分である。ステップＳ１２＿５をコーディングする並列実行可能な部分は、データファイルの特定の部分において、対応するデータが対応するデータパケットを生成するために用いられる、プログラムループを含む。このループは、データファイルの終わりに達する限り実施される。よって、並列実行可能な部分の実行は、図５ａおよび図８ａに示されるように行われることが好ましい。データファイルの各部分の取り扱いは、１つの並列実行可能なステップに対応する。ステップＳ１１＿２を実施するために選択された、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒは、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１に対し、並列実行可能な部分の存在を知らせる。この情報を受けて、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、上記並列実行可能な部分の存在を検出し、データファイルの部分のそれぞれについて、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒを選択し、そして、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒに対し、対応するデータパケットを生成することを指令する。選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒのそれぞれからデータパケットを受信した後、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、それらのデータパケットを、ステップＳ１１＿２を実施するために選択された、処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒに提供する。
【００８４】
ステップＳ１２＿６では、生成されたデータパケットが、クライアント９２に提供される。複数のデータパケットが利用可能であるため、ステップＳ１２＿６をコーディングする実行可能コードの部分は、各データパケットについて送信が実施されるプログラムループを含む、並列実行可能な部分を表す。よって、ステップＳ１２＿６をコーディングする実行可能コードの部分は、図５ａおよび８ａによって示されるように実行されることが好ましい。ステップＳ１１＿２を実施するために選択された、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒは、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１に対し、並列実行可能な部分の存在を知らせる。この情報を受けて、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、上記並列実行可能な部分の存在を検出し、データパケットの部分のそれぞれについて、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒを選択し、そして、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒに対し、対応するデータパケットをクライアント９２に送信することを指令する。全てのデータパケットの送信後、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、ステップＳ１１＿２を実施するために選択された、処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒに対し、完了した送信を示す。
【００８５】
ステップＳ１２＿６の完了後、要求されたデータはクライアント９２に提供されているので、ステップＳ１１＿２の実行は完了する。
ステップＳ１２＿４の実行後に、対応する形式のデータファイルを可視化するために、例えばインタープリタを使用した更なる処理が必要であると判定された場合には、ステップＳ１１＿２を実施するために選択された、処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｒは、例えば対応するインタープリタを実行することによって、ステップＳ１２＿７にてデータファイルの更なる処理を実施して、その処理後に取得されたデータファイルが可視化され得るように、また、クライアントに提供され得るようにする。
【００８６】
例えば処理中のエラーによって、データファイルの処理が成功しない場合には、対応するエラー処理手順がステップＳ１２＿２にて実施される。あるいは、ステップＳ１２＿８において、データパケットを生成するために取得されたデータファイルの分割が、ステップＳ１２＿５に関して既に説明されたように実施される。
【００８７】
続いて、取得されたデータファイルを送信するためのデータパケットが生成されると、ステップＳ１２＿６に関して既に説明されたものと同じ方法で、ステップＳ１２＿９にてデータパケットの送信が実施される。
【００８８】
ステップＳ１２＿９の完了後、要求されたデータはクライアント９２に提供されているので、ステップＳ１１＿２の実行は完了する。
加えて、ステップＳ１２＿７の処理が成功した後で、すなわち、データファイルの更なる処理の実施が成功した後で、クライアントに提供すべきデータがない、という状況が起こり得る。例えば、データの処理はリターンデータを作り出さなかったが、幾つかの機能だけを果たした。この場合、ステップＳ１１＿２の実行は、ステップＳ１２＿７の実行の成功をもって完了するが、それはいかなるリターンデータも提供しなかった。
【００８９】
さらに、ステップＳ１２＿２におけるエラー処理は、様々な方法で実施され得る。例えば、エラー処理は、サーバ９１、９４によってクライアント９１に送信されるエラーメッセージを生成してもよい。当業者は、エラー処理を承知しており、ステップＳ１２＿２にて複数の適切な手順が実施されることが好ましい、ということを知っているだろう。いずれの場合でも、ステップＳ１１＿２の実行は、ステップＳ１２＿２におけるエラー処理終了後に完了する。
【００９０】
図１３は、本発明の一実施形態に係る一式の処理モジュール１３＿１１、１３＿２１〜１３＿２ｎの実施態様を示す。一式の処理モジュール１３＿１１、１３＿２１〜１３＿２ｍは、本実施形態によれば、当業者に周知のセルチップまたはセルプロセッサ１３＿１である、処理エレメント１３＿１上に設置されている。処理モジュール１３＿１１は、電力プロセッサエレメント（ＰＰＥ）を表し、処理エレメント１３＿２１〜１３＿２ｍは、共同処理エレメント（ＳＰＥ）を表し、ＰＰＥおよびＳＰＥは、当業者に周知である。
【００９１】
図１４ａは、本発明の一実施形態に係る１つの処理エレメントを備える、システム１４＿１の実施態様を示す。本実施形態によれば、処理エレメント２１は、セルチップまたはセルプロセッサであり、図１３に示されるように構成され得る。システム１４＿１は、処理エレメント２１がその上に配置される、ボードを備えていてもよい。
【００９２】
図１４ｂは、本発明の一実施形態に係る２つの処理エレメント３１、３２を備えるシステム１４＿２の実施態様を示す。本実施形態によれば、２つの処理エレメント３１、３２のうちの少なくとも１つは、セルチップまたはセルプロセッサであり、図１３に示されるように構成され得る。システム１４＿２は、処理エレメント３１、３２がその上に配置される、少なくとも１つのボードを備えていてもよい。
【００９３】
図１５は、本発明の一実施形態に係る処理エレメント１５＿１１を備えるシステム１５＿１の実施態様を示す。処理エレメント１５＿１１は、図２または図１４ａに関して上に説明されたように構成されることが好ましい。処理エレメント１５＿１１上に設置されている、一式の処理モジュール（図１５に図示なし）は、本出願において説明されているように構成される。本実施形態によれば、システム１５＿１は、プリント回路基板（ＰＣＢ）であることが好ましい。さらに、システム１５＿１は、処理エレメント１５＿１１に接続されて、それゆえ処理エレメント１５＿１１に記憶容量を提供する、少なくとも１つのメモリモジュール１５＿１２、１５＿１３を備える。具体的には、少なくとも１つのメモリモジュール１５＿１２、１５＿１３は、処理エレメント１５＿１１上に設置されている一式の処理モジュールに、記憶容量を提供する。少なくとも１つのメモリモジュール１５＿１２、１５＿１３は、例えばランダムアクセスメモリ（ＲＡＭ）であってもよい。さらに、システム１５＿１は、少なくとも１つのメモリモジュール１５＿１２、１５＿１３に電力を供給する、電力供給モジュール１５＿１４を備える。さらに、システム１５＿１は、処理エレメント１５＿１１に電力を供給する、電力供給モジュール１５＿１５を備える。システム１５＿１は、例えばネットワークのような、システム１５＿１の外部からデータを受信して、受信したデータを、処理エレメント１５＿１１に、ひいてはその処理モジュールに提供し、そして／または、処理エレメント１５＿１１から、ひいてはその処理モジュールからデータを受信して、受信したデータを、例えばネットワークのような、システム１５＿１の外部に提供する、通信モジュール１５＿１９を備える。通信モジュール１５＿１９は、例えば、ネットワークチップモジュール、周辺コンポーネントインタコネクトエクスプレススイッチ、または、アップリンクモジュールであることが好ましい。さらに、システム１５＿１は、システム１５＿１を動作させるためのソフトウェアを有するファームウェアモジュール１５＿１７を備える。ファームウェアモジュール１５＿１７は、例えば、フラッシュ、フィールドプログラム可能ゲートアレイ（ＦＰＧＡ）、または、統一拡張可能ファームウェアインターフェースであってもよい。システム１５＿１は、ファームウェアモジュール１５＿１７に電力を供給する、電力供給モジュール１５＿１８も備えていてもよい。加えて、システム１５＿１は、ファームウェアモジュール１５＿１７、通信モジュール１５＿１９、および処理エレメント１５＿１１を接続する、接続モジュール１５＿１６を備える。接続モジュール１５＿１６は、入力／出力（Ｉ／Ｏ）機能を管理するように構成された、例えばインタコネクトチップであってもよい。さらにその上、システム１５＿１は、共通インターフェースモジュール１５＿１０を備え、これを介して、電力、ネットワーク、管理、および／またはハードウェアもしくはハードドライブ接続性が、システム１５＿１に提供される。共通インターフェースモジュール１５＿１０は、例えば、周辺コンポーネントインタコネクト（ＰＣＩ）、または周辺コンポーネントインタコネクトエクスプレス（ＰＣＩ  Ｅｘｐｒｅｓｓ）であってもよい。電力供給インターフェース１５＿１０は、電力供給モジュール１５＿１４、１５＿１８、および１５＿１５に電力を供給する。加えて、電力供給インターフェース１５＿１０は、通信モジュール１５＿１９に電力を供給する。
【００９４】
本実施形態によれば、システム１５＿１のモジュール／コンポーネントは、必要な接続配線および／またはコネクタが最小限で済むように、配置および相互接続される。よって、互いに接続／互いに相互作用するモジュール／コンポーネントは、図１５から推論され得るように、互いに近接して設置される。このようにして、エネルギー消費、モジュール／エレメント／コンポーネントによって生じる信号ノイズ、モジュール／エレメント／コンポーネントが必要とするスペース、モジュール／エレメント／コンポーネントの遮蔽、および／または、モジュール／エレメント／コンポーネントのための冷却労力が、削減され得る。
【００９５】
図１６は、本発明の一実施形態に係る２つの処理エレメント１５＿１１、１６＿１１を備える、システム１６＿１の実施態様を示す。システム１６＿１は、同じ参照符号の付されたコンポーネントによって認識され得るように、図１５のシステム１５＿１の構成に基づいている。２つの処理エレメント１５＿１１、１６＿１１は、図３または１４ｂに関して説明されたように構成されてもよい。処理エレメント１５＿１１、１６＿１１の上に設置されている、一式の処理モジュール（図１５に図示なし）は、本出願において説明されているように構成される。図１５の構成に加えて、本実施形態のシステム１６＿１は、処理エレメント１６＿１１に接続されている、少なくとも１つの更なるメモリモジュール１６＿１２、１６＿１３を備え、そのようにして、処理エレメント１６＿１１に記憶容量を提供する。具体的には、少なくとも１つの更なるメモリモジュール１６＿１２、１６＿１３は、一式の処理モジュール、または、処理エレメント１６＿１１上に設置されている処理モジュールのうちの少なくとも１つに、記憶容量を提供する。少なくとも１つの更なるメモリモジュール１６＿１２、１６＿１３は、例えば、ランダムアクセスメモリ（ＲＡＭ）であってもよい。少なくとも１つの更なるメモリモジュール１６＿１２、１６＿１３の存在により、電力供給モジュール１５＿１４は、少なくとも１つの更なるメモリモジュール１６＿１２、１６＿１３にも電力を供給するように追加的に構成される。２つの処理エレメント１５＿１１、１６＿１１は、データを交換するために互いに接続されている。加えて、処理エレメント１５＿１１、１６＿１１は、電力供給モジュール１５＿１５からの電力を、処理エレメント１５＿１１を介して処理エレメント１６＿１１に供給するために、互いに接続されている。
【００９６】
また、本実施形態によれば、システム１６＿１のモジュール／コンポーネントは、必要な接続配線および／またはコネクタが最小限で済むように、配置および相互接続される。よって、互いに接続／互いに相互作用するモジュール／コンポーネントは、図１６から推論され得るように、互いに近接して設置される。このようにして、システム１６＿１における電力消費は削減される。
【００９７】
図１７は、本発明の一実施形態に係る一式の処理モジュール１７＿１１〜１７＿１ｍおよび１７＿２１〜１７＿２ｎの実施態様を示す。本実施形態によれば、処理モジュール１７＿１１〜１７＿１ｍは、制御用処理モジュールに対応する。さらに、制御用処理モジュールのみがアクセス可能である、記憶領域１７＿４が設けられ、更なる処理モジュール１７＿２１〜１７＿２ｎのみがアクセス可能である、記憶領域１７＿５が設けられる。加えて、全ての処理モジュール１７＿１１〜１７＿１ｍおよび１７＿２１〜１７＿２ｎがアクセス可能である、記憶領域１７＿３も設けられる。記憶領域１７＿４、１７＿５のそれぞれの設置は任意である。記憶領域１７＿４、１７＿５のそれぞれは、少なくとも１つの特定の処理モジュール１７＿１１〜１７＿１ｍおよび１７＿２１〜１７＿２ｎのみがアクセス可能である部分を備えていてもよい。しかし、処理モジュール１７＿１１〜１７＿１ｍおよび１７＿２１〜１７＿２ｎのそれぞれが、対応する記憶領域１７＿４、１７＿５にアクセスできることは確保されている。共通の記憶領域１７＿３では、状況は同じであり、共通の記憶領域１７＿３の各部分が、少なくとも１つの制御用処理モジュール１７＿１１〜１７＿１ｍによって、そして、少なくとも１つの更なる処理モジュール１７＿２１〜１７＿２ｎによって、アクセスされることが確保されている。
【００９８】
図１５および１６の実施形態を考慮すると、記憶領域１７＿３、１７＿４、１７＿５は、それらが他のコンポーネントによってもアクセスされ得るように、メモリモジュール１５＿１２、１５＿１３、１６＿１２、１６＿１３に構築されてもよい。本発明の別の実施形態によれば、制御用処理モジュール１７＿１１、１７１ｍのみがアクセス可能である記憶領域１７＿４は、メモリモジュール１５＿１２、１５＿１３、１６＿１２、１６＿１３に構築されてもよく、一方、その他の記憶領域１７＿３、１７＿５は、処理モジュール１７＿１１〜１７＿１ｍおよび１７＿２１〜１７＿２ｎがその上に配置される、対応する処理エレメントの部分であってもよい。本発明の別の実施形態によれば、記憶領域１７＿３および１７＿５のうちの少なくとも１つは、処理モジュール１７＿１１〜１７＿１ｍおよび１７＿２１〜１７＿２ｎがその上に配置される、対応する１つまたは複数の処理エレメント上に、少なくとも部分的に設置されてもよい。
【００９９】
本発明の更なる実施形態によれば、処理モジュール１７＿１１〜１７＿１ｍおよび１７＿２１〜１７＿２ｎの選択は、共通の記憶領域１７＿３にアクセスするスケジューリングを考慮に入れて行われることが好ましい。共通の記憶領域１７＿３に次にアクセスする予定であり、この選択を実施する対応する指令用処理モジュール１７＿１１〜１７＿１ｍに接続されている、処理モジュール１７＿１１〜１７＿１ｍおよび１７＿２１〜１７＿２ｎは、並列実行可能なタスクを実施するための、対応する指令用処理モジュール１７＿１１〜１７＿１ｍによって選択されてもよい。一定の数の処理モジュール１７＿１１〜１７＿１ｍおよび１７＿２１〜１７＿２ｎを選択する際に、この選択は、対応する指令用処理モジュール１７＿１１〜１７＿１ｍによって、共通の記憶領域１７＿３に次にアクセスする予定である、この一定の数の処理モジュール１７＿１１〜１７＿１ｍおよび１７＿２１〜１７＿２ｎを考慮することによって、実施されることが好ましい。制御用処理モジュール１７＿１１〜１７＿１ｍと、選択された処理モジュール１７＿１１〜１７＿１ｍおよび１７＿２１〜１７＿２ｎと、の間でのデータ交換は、共通の記憶領域１７＿３を介して実現されるため、このような選択によって、処理モジュール１７＿１１〜１７＿１ｍおよび１７＿２１〜１７＿２ｎによるコードの実行に必要な実行時間が節約される。共通のメモリ１７＿３へのアクセスのスケジューリングにおいて最下位のうちの１つである処理モジュール１７＿１１〜１７＿１ｍおよび１７＿２１〜１７＿２ｎが、対応する１つまたは複数の並列実行可能なステップの実行から始めることが可能になるのを長時間待つ必要がない、ということは確保される。
【０１００】
上に説明された実施形態に関して注目すべきことは、上記実施形態は、互いに組み合わされてもよいということである。よって、例えば、図１７に関して説明されたような処理モジュールの選択は、他の例のいずれにおいても用いられ得る。一実施形態の処理モジュールの構成は、それぞれの別の実施形態の構成と、組み合わせ可能であり、交換可能である。加えて注目すべきことは、処理モジュールまたはエレメントを表さない、図１５および１６に示されるようなモジュールは、任意に設けられるものと理解され得るということ、および、システムのエネルギー消費の削減を可能にすべく、対応するシステムのモジュール／エレメント／コンポーネント間の接続配線を可能な限り短くしておくことが望まれる、処理モジュールまたはエレメントを取り巻く更なる構成も可能であるということである。
【図１】
2016510146.tif 000003
【図２】
2016510146.tif 000004
【図３】
2016510146.tif 000005
【図４】
2016510146.tif 000006
【図５ａ】
2016510146.tif 000007
【図５ｂ】
2016510146.tif 000008
【図５ｃ】
2016510146.tif 000009
【図５ｄ】
2016510146.tif 000010
【図６】
2016510146.tif 000011
【図７】
2016510146.tif 000012
【図８ａ】
2016510146.tif 000013
【図８ｂ】
2016510146.tif 000014
【図８ｃ】
2016510146.tif 000015
【図８ｄ】
2016510146.tif 000016
【図９ａ】
2016510146.tif 000017
【図９ｂ】
2016510146.tif 000018
【図１０】
2016510146.tif 000019
【図１１】
2016510146.tif 000020
【図１２】
2016510146.tif 000021
【図１３】
2016510146.tif 000022
【図１４ａ】
2016510146.tif 000023
【図１４ｂ】
2016510146.tif 000024
【図１５】
2016510146.tif 000025
【図１６】
2016510146.tif 000026
【図１７】
2016510146.tif 000027
【手続補正書】
【提出日】平成28年1月7日(2016.1.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
一式の処理モジュールによって実行可能コードを実行する方法であって、
該方法は、前記一式の処理モジュールのうちの少なくとも１つの第１の処理モジュールが、前記実行可能コードを実行することを含み、
前記実行可能コードは、一式の並列実行可能な部分を含み、
前記実行可能コードの各並列実行可能な部分は、少なくとも２つの並列実行可能なステップを含み、
前記実行することは、
前記少なくとも１つの第１の処理モジュールが、実行対象となる、前記実行可能コードの前記一式の並列実行可能な部分のうちの並列実行可能な部分を検出することと、
前記少なくとも１つの第１の処理モジュールが、前記一式の処理モジュールのうちの少なくとも２つの第２の処理モジュールを選択することと、
前記少なくとも１つの第１の処理モジュールが、前記選択された少なくとも２つの第２の処理モジュールに対し、前記実行可能コードの前記検出された並列実行可能な部分の前記少なくとも２つの並列実行可能なステップを実施することを指令することと、
を含む、方法。
【請求項２】
請求項１に記載の方法であって、
前記指令することは、前記少なくとも１つの第１の処理モジュールが、前記実行可能コードの前記検出された並列実行可能な部分の前記少なくとも２つの並列実行可能なステップのそれぞれを、前記選択された少なくとも２つの第２の処理モジュールのうちの１つに割り当てることを含む、方法。
【請求項３】
請求項１または２に記載の方法であって、
前記選択された少なくとも２つの第２の処理モジュールのそれぞれは、前記実行可能コードの前記検出された並列実行可能な部分の前記少なくとも２つの並列実行可能なステップのうちの少なくとも１つを実施することを指令される、方法。
【請求項４】
先行する請求項のいずれか１項に記載の方法であって、
前記選択された少なくとも２つの第２の処理モジュールは、前記少なくとも１つの第１の処理モジュールを備える、方法。
【請求項５】
先行する請求項のいずれか１項に記載の方法であって、
前記実行可能コードの第１および第２の並列実行可能な部分は、前記実行可能コードの第１の部分が前記実行可能コードの第２の部分に含まれる場合に実施される、方法。
【請求項６】
先行する請求項のいずれか１項に記載の方法であって、
前記実行可能コードの前記一式の並列実行可能な部分の各並列実行可能な部分は、1つ
の特定の並列化形式のステップを含む、方法。
【請求項７】
請求項６に記載の方法であって、
２つの並列化形式は別個のものである、方法。
【請求項８】
請求項６または７に記載の方法であって、
第１の並列化形式はプログラムループを含み、第２の並列化形式は条件付き分岐を含む、方法。
【請求項９】
請求項８に記載の方法であって、
前記実行可能コードの前記一式の並列実行可能な部分のうちの前記検出された並列実行
可能な部分が、前記少なくとも２つの並列実行可能なステップとして、プログラムループのステップを含む場合には、前記少なくとも１つの第１の処理モジュールは、前記プログラムループの一定の数のサイクルを、前記選択された少なくとも２つの第２の処理モジュールのそれぞれに割り当て、前記プログラムループの各サイクルは、前記選択された少なくとも２つの第２の処理モジュールのうちの１つに割り当てられ、
前記実行可能コードの前記検出された並列実行可能な部分が、前記少なくとも２つの並列実行可能なステップとして、一式のプログラムループを含む場合には、前記少なくとも１つの第１の処理モジュールは、前記一式のプログラムループのうちの前記プログラムループのそれぞれを、前記選択された少なくとも２つの第２の処理モジュールのうちの１つに割り当て、
前記実行可能コードの前記検出された並列実行可能な部分が、前記少なくとも２つの並列実行可能なステップとして、少なくとも２つの条件付き分岐を含む場合には、前記少なくとも１つの第１の処理モジュールは、各条件付き分岐を、前記選択された少なくとも２つの第２の処理モジュールのうちの１つに割り当て、そして／または、
前記実行可能コードの前記検出された並列実行可能な部分が、前記少なくとも２つの並列実行可能なステップとして、少なくとも２つの条件付き分岐を含む場合には、前記少なくとも１つの第１の処理モジュールは、前記少なくとも２つの条件付き分岐の各条件を、前記選択された少なくとも２つの第２の処理モジュールのうちの１つに割り当て、また、前記少なくとも２つの条件付き分岐の１つの条件に関してコーディングされた、前記少なくとも２つの条件付き分岐のコードの各部分を、前記選択された少なくとも２つの第２の処理モジュールのうちの１つに割り当てる、方法。
【請求項１０】
少なくとも１つの第１の処理モジュールを備える一式の処理モジュールであって、
前記少なくとも１つの第１の処理モジュールは、
実行可能コードを実行するように構成され、該実行可能コードは、一式の並列実行可能な部分を含み、前記実行可能コードの前記一式の並列実行可能な部分の各並列実行可能な部分は、少なくとも２つの並列実行可能なステップを含み、
実行対象となる前記実行可能コードの部分として、前記実行可能コードの前記一式の並列実行可能な部分のうちの並列実行可能な部分を検出するように構成され、
前記一式の処理モジュールのうちの少なくとも２つの第２の処理モジュールを選択するように構成され、そして、
前記選択された少なくとも２つの第２の処理モジュールに対し、前記実行可能コードの前記検出された並列実行可能な部分の前記少なくとも２つの並列実行可能なステップを実施することを指令するように構成されている、一式の処理モジュール。
【請求項１１】
請求項１０に記載の一式の処理モジュールであって、
前記少なくとも１つの第１の処理モジュールは、前記実行可能コードの前記検出された並列実行可能な部分の前記少なくとも２つの並列実行可能なステップのそれぞれを、前記選択された少なくとも２つの第２の処理モジュールのうちの１つに割り当てることによって、前記指令することを実行するように構成されている、一式の処理モジュール。
【請求項１２】
請求項１０または１１に記載の一式の処理モジュールであって、
前記少なくとも１つの第１の処理モジュールは、前記選択された少なくとも２つの第２の処理モジュールのそれぞれに対し、前記実行可能コードの前記検出された並列実行可能な部分の前記少なくとも２つの並列実行可能なステップのうちの少なくとも１つを実施することを指令するように構成されている、一式の処理モジュール。
【請求項１３】
先行する請求項１０〜１２のいずれか１項に記載の一式の処理モジュールであって、
前記選択された少なくとも２つの第２の処理モジュールは、前記少なくとも１つの第１の処理モジュールを備える、一式の処理モジュール。
【請求項１４】
請求項１０〜１３のいずれか１項に記載の一式の処理モジュールであって、
前記少なくとも１つの第１の処理モジュールは、前記実行可能コードの第１の並列実行可能な部分が前記実行可能コードの第２の並列実行可能な部分に含まれている場合には、前記実行可能コードの第１および第２の並列実行可能な部分を実施することを指令するように構成されている、一式の処理モジュール。
【請求項１５】
先行する請求項１０〜１４のいずれか１項に記載の一式の処理モジュールであって、
前記実行可能コードの前記一式の並列実行可能な部分の各並列実行可能な部分は、１つの特定の並列化形式のステップを含む、一式の処理モジュール。
【請求項１６】
請求項１０〜１５のいずれか１項に記載の一式の処理モジュールを備える、システム。
【請求項１７】
請求項１６に記載のシステムであって、
該システムは、
前記一式の処理モジュールを備える１つの処理エレメント、もしくは、前記一式の処理モジュールを備える少なくとも２つの処理エレメントと、
前記１つの処理エレメントに、もしくは、前記少なくとも２つの処理エレメントのうちの１つに接続されて、前記１つの処理エレメントに、もしくは、前記少なくとも２つの処理エレメントのうちの１つに、記憶容量を提供するように構成された、少なくとも１つのメモリモジュールと、
前記少なくとも１つのメモリモジュールに電力を供給するように構成された、第１の電力供給モジュールと、
前記一式の処理モジュールに電力を供給するように構成された、第２の電力供給モジュールと、
ネットワークからデータを受信して、該受信したデータを前記一式の処理モジュールに提供するように、そして／もしくは、前記一式の処理モジュールからデータを受信して、該受信したデータを前記ネットワークに送信するように構成された通信モジュールと、
デバイス用のソフトウェアを備えるファームウェアと、
前記ファームウェアに電力を供給するように構成された、第３の電力供給モジュールと、ならびに／または、
前記ファームウェア、ネットワークチップモジュール、および前記１つの処理エレメントを接続するように、もしくは、前記ファームウェア、前記ネットワークチップモジュール、および前記少なくとも２つの処理エレメントを接続するように構成された、接続モジュールと、ならびに／または、
前記第１、第２、および第３の電力供給モジュールに、ならびに、前記通信モジュールに、電力を供給するように構成された、電力供給インターフェースモジュールと、
のうちの少なくとも１つを備える、システム。
【請求項１８】
請求項１７に記載のシステムであって、
前記１つの処理エレメントはセルプロセッサを備え、もしくは、前記少なくとも２つの処理エレメントは少なくとも１つのセルプロセッサを備え、
前記少なくとも１つのメモリモジュールは、少なくとも１つのランダムアクセスメモリを備え、
前記電力供給インターフェースモジュールは、周辺コンポーネントインタコネクト、もしくは、周辺コンポーネントインタコネクトエクスプレスであり、
前記通信モジュールは、ネットワークチップモジュール、周辺コンポーネントインタコネクトエクスプレススイッチ、もしくは、アップリンクモジュールであり、
前記ファームウェアは、フラッシュ、フィールドプログラム可能ゲートアレイ、もしくは、統一拡張可能ファームウェアインターフェースであり、そして／または、
前記接続モジュールは、入力／出力機能を管理するように構成されているインタコネクトチップである、システム。
【請求項１９】
請求項１０〜１５のいずれか１項に記載の一式の処理モジュールを備える、サーバシステム。
【請求項２０】
プログラムコードを備えるコンピュータ可読媒体であって、前記プログラムコードは、演算デバイスによって実行されるときに、請求項１〜９のいずれか１項に記載の方法を前記演算デバイスに実行させる、コンピュータ可読媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００３５
【補正方法】変更
【補正の内容】
【００３５】
【図１】本発明の一実施形態に従って構成された、一式の処理モジュールを示す。
【図２】一式の処理モジュールを備え、本発明の一実施形態に従って構成された、処理エレメントを示す。
【図３】一式の処理モジュールがその上に配置された、本発明の一実施形態に係る２つの処理エレメントを示す。
【図４】本発明の一実施形態に係る実行可能コードの例示的構造を示す。
【図５ａ】本発明の一実施形態に係る実行可能コードの並列実行可能な部分を示す。
【図５ｂ】本発明の一実施形態に係る実行可能コードの並列実行可能な部分を示す。
【図５ｃ】本発明の一実施形態に係る実行可能コードの並列実行可能な部分を示す。
【図５ｄ】本発明の一実施形態に係る実行可能コードの並列実行可能な部分を示す。
【図６】本発明の一実施形態に係る実行可能コードの実行を示す。
【図７】本発明の一実施形態に係る実行可能コードの実施を示す。
【図８ａ】本発明の一実施形態に係る実行可能コードの並列実行可能な部分を実行するステップを示す。
【図８ｂ】本発明の一実施形態に係る実行可能コードの並列実行可能な部分を実行するステップを示す。
【図８ｃ】本発明の一実施形態に係る実行可能コードの並列実行可能な部分を実行するステップを示す。
【図８ｄ】本発明の一実施形態に係る実行可能コードの並列実行可能な部分を実行するステップを示す。
【図９ａ】本発明の一実施形態に従って本発明が実施されるシステムを示す。
【図９ｂ】本発明の一実施形態に従って本発明が実施されるシステムを示す。
【図１０】本発明の一実施形態に係る実行可能コードを実行する方法を示す。
【図１１】本発明の上記実施形態に係る上記方法の要求を処理するステップの実施を示す。
【図１２】本発明の上記実施形態に係る上記方法のファイルを処理するステップの実施を示す。
【図１３】本発明の一実施形態に係る一式の処理モジュールの実施態様を示す。
【図１４ａ】本発明の一実施形態に係る１つの処理エレメントを備えるシステムの実施態様を示す。
【図１４ｂ】本発明の一実施形態に係る２つの処理エレメントを備えるシステムの実施態様を示す。
【図１５】本発明の一実施形態に係る１つの処理エレメントを備えるシステムの実施態様を示す。
【図１６】本発明の一実施形態に係る２つの処理エレメントを備えるシステムの実施態様を示す。
【図１７】本発明の一実施形態に係る一式の処理モジュールの実施態様を示す。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００３８
【補正方法】変更
【補正の内容】
【００３８】
以下のセクションで概説される理念および原理は、より一般的なマイクロプロセッサアーキテクチャの概念を提供するシステムに適用可能であり得る。
図１は、本発明の一実施形態に従って構成された、処理モジュール１１、１２＿１〜１２＿ｋからなるセット１を示す。処理モジュール１１、１２＿１〜１２＿ｋは、例えばプロセッサであることが好ましい。処理モジュール１１、１２＿１〜１２＿ｋからなるセット１は、実行可能コードを実行するように構成されている。処理モジュール１１、１２＿１〜１２＿ｋのうちの少なくとも１つは、コードの実行を制御するように構成されている。図１では、この制御用処理モジュールは、対応するボックス１１の太線によって強調されている。更なる処理モジュール１２＿１〜１２＿ｋは、コードの並列実行可能な部分のステップを実施するように構成されている。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００４５
【補正方法】変更
【補正の内容】
【００４５】
本発明の更なる実施形態に従って構成された、一式の処理モジュール１１’〜１１”、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”では、一式の制御用処理モジュール１１’〜１１”が提供され、制御用処理モジュール１１’〜１１”のそれぞれには、更なる処理モジュール１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”からなる対応するサブセットが割り当てられている。一式の制御用処理モジュール１１’〜１１”のうちの１つの制御用処理モジュール１１’は、主たる制御用処理モジュールを表す。その他の制御用処理モジュール１１”は、対応する一式の並列実行可能なステップを実行するための主たる制御用処理モジュール１１’によって選択されるように構成されている。主たる制御用処理モジュール１１’は、制御用処理モジュール１１’〜１１”のそれぞれに関して、および、それに割り当てられた処理モジュール１２’＿１〜１２’＿ｋ’に関して、選択を実施する。主たる制御用処理モジュール１１’が、一式のステップを実行するための別の制御用処理モジュール１１”も選択して、当該別の制御用処理モジュール１１”に対し、当該一式のステップを実施することを指令した場合、選択された処理モジュール１１”は、一式のステップを実行するための、対応する処理モジュール１１”、１２”＿１〜１２”＿ｋ”を選択するように構成され、また、選択された処理モジュール１１”、１２”＿１〜１２”＿ｋ”に対し、対応する並列実行可能なステップを実施することを指令するように構成されている。これは、図１に関して既に上に概説されている通りである。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００４７
【補正方法】変更
【補正の内容】
【００４７】
図３は、一式の処理モジュール３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌがその上に配置された、本発明の一実施形態に係る２つの処理エレメント３１、３２を示す。本実施形態によれば、処理エレメント３１、３２のそれぞれは、少なくとも１つの制御用処理モジュール３１１、３２１と、少なくとも１つの更なる処理モジュール３１２＿１〜３１２＿ｋ、３２２＿１〜３２２＿ｌと、を備える。処理エレメント３１、３２のそれぞれの、更なる処理モジュール３１２＿１〜３１２＿ｋ、３２２＿１〜３２２＿ｌのアカウントは、異なっていてもよいし、等しくてもよく、すなわち、ｒ＝ｋまたはｒ≠ｋが成り立つ。同様に、処理エレメント３１、３２のそれぞれの、制御用処理モジュール３１１、３２１のアカウントもまた、異なっていてもよいし、等しくてもよい。処理エレメント３１、３２のうちの少なくとも１つは、例えばセルプロセッサまたはセルチップのような、例えばプロセッサまたはチップであってもよい。一式の処理モジュール３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌは、上に概説されたように（図１およびその説明を特に参照）、そして／または、より詳細に以下に説明されるように、実現および配置される。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００４９
【補正方法】変更
【補正の内容】
【００４９】
図６は、実行可能コード４を実行するステップ、具体的には、部分４４、４５を有する第１の選択肢が実施される場合の実行を、例示的に示す。
本実施形態については、コード４が実行されると、図６のステップＳ６１にて、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１が、部分４１を実行する。部分４１は、一式の並列実行可能な部分に属していない。続いて、Ｓ６１における部分４１の実行終了後、図６のステップＳ６２にて、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、次に実行対象となるコード４の一部として、並列実行可能な部分４２を検出または認識し、そして、検出された並列実行可能な部分４２を実施するための、少なくとも２つの処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌを選択する。さらに、選択した後、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、選択された少なくとも２つの処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌに対し、部分４２を実施することを指令する。この指令を実施する際に、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、部分４２の各並列実行可能なステップを、対応する選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌに割り当てるが、これらは、ひいては、並列実行可能なステップのうちの１つまたは複数を、引き続いて、または、実質的に並列に、実施することを指令され得る。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００５０
【補正方法】変更
【補正の内容】
【００５０】
さらに、図６のステップＳ６２にて、部分４２のステップの実行終了後、対応する選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌのそれぞれは、実行の結果またはフィードバックを、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１に提供する。部分４２の全ての並列実行可能なステップの実行の結果またはフィードバックを受け取った後、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、部分４２を、実行されているものとみなす。こうして、図６のステップＳ６２は、完了する。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００５３
【補正方法】変更
【補正の内容】
【００５３】
Ｓ６４における部分４４の実行後、図６のステップＳ６５にて、少なくとも１つの制御
用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、並列実行可能な部分として部分４５を検出し、部分４２に関して上に説明されたものと同じ方法で、その実行を実施する。Ｓ６５における部分４５の実行が終了すると、コード４の実行はステップＳ６６で終了し、例えば、実行されるべき更なるコード命令は得られず、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、図４のボックス４６および図６のステップＳ６６に示されるように、コード４の実行を完了する。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００５９
【補正方法】変更
【補正の内容】
【００５９】
上に提示したループは、例にすぎず、本発明はそれらに限定されるものではなく、更なるループ規定を使用することも可能である。
本発明の一実施形態によれば、並列実行可能な部分は、１つのループのみによって定められてもよい。そのような並列実行可能な部分の各並列実行可能なステップは、ループ本体が実施される特定の時間、すなわちサイクルを参照し、また、上記並列実行可能なステップの実行のための、対応する選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌに割り当てられる。選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１
２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌは、ループの少なくとも１つのサイクルまたは並列実行可能なステップを実施し、複数の並列実行可能なステップまたはサイクルも実施してもよい。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００６１
【補正方法】変更
【補正の内容】
【００６１】
図５ａは、１つのループを含み、それの各並列実行可能なステップ５１＿１〜５１＿ｉがループの実行サイクルを表す、並列実行可能な部分５１の一例を示す。図８ａは、Ｓ８１にて図５ａの並列実行可能な部分５１を実行するステップを示す。図８ａのステップＳ８１１では、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、次に実行対象となる部分であるとして、実行可能コードの部分５１を検出する。図８ａのステップＳ８１２では、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、実行可能コードの部分５１を実施するための、少なくとも２つの処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌを選択する。この選択は、ループまたは部分５１をそれぞれ実施するのに必要な、並列実行可能なステップ／サイクル５１＿１〜５１＿ｉのアカウント次第となり得る。並列実行可能なステップ／サイクル５１＿１〜５１＿ｉの量は、選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌの間で分配される。このため、図８ａのステップＳ８１３では、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、ループ／部分５１の各並列実行可能なステップ／サイクル５１＿１〜５１＿ｉを、並列実行可能なステップ／サイクル５１＿１〜５１＿ｉのうちの１つまたは複数を実施し得る、対応する選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌに割り当て、選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌに対し、自らに割り当てられた、並列実行可能な１つまたは複数のステップ／サイクル５１＿１〜５１＿ｉを実施することを指令する。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００６３
【補正方法】変更
【補正の内容】
【００６３】
図５ｂは、複数のループを含み、ループのそれぞれが、並列実行可能な部分５２の並列実行可能なステップ５２＿１〜５２＿ｉを表す、並列実行可能な部分５２の一例を示す。図８ｂは、Ｓ８２にて図５ｂの並列実行可能な部分５２を実行するステップを示す。図８ｂのステップＳ８２１では、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、次に実行対象となる部分であるとして、実行可能コードの部分５２を検出する。図８ｂのステップＳ８２２では、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、実行可能コードの部分５２を実施するための、少なくとも２つの処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌを選択する。この選択は、部分５２に含まれる、並列実行可能なステップ／ループ５２＿１〜５２＿ｉのアカウント次第となり得る。部分５２の並列実行可能なステップ／ループ５２＿１〜５２＿ｉは、選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌの間で分配される。このため、図８ｂのステップＳ８２３では、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、部分５２の各並列実行可能なステップ／ループ５２＿１〜５２＿ｉを、並列実行可能なステップ／ループ５２のうちの１つまたは複数を実施し得る、対応する選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌに割り当て、選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌに対し、自らに割り当てられた、並列実行可能な１つまたは複数のステップ／ループ５２＿１〜５２＿ｉを実施することを指令する。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００６７
【補正方法】変更
【補正の内容】
【００６７】
図８ｃは、Ｓ８３にて図５ｃの並列実行可能な部分５３を実行するステップを示す。図８ｃのステップＳ８３１では、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、次に実行対象となる部分であるとして、実行可能コー
ドの部分５３を検出する。図８ｃのステップＳ８３２では、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、実行可能コードの部分５３を実施するための、少なくとも２つの処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌを選択する。この選択は、部分５３に含まれる、並列実行可能なステップ／条件付き分岐５３＿１〜５３＿ｉのアカウント次第となり得る。部分５３の並列実行可能なステップ／条件付き分岐５３＿１〜５３＿ｉは、選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌの間で分配される。このため、図８ｃのステップＳ８３３では、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、部分５３の各並列実行可能なステップ／条件付き分岐５３＿１〜５３＿ｉを、並列実行可能なステップ／分岐５３＿１〜５３＿ｉのうちの１つまたは複数を実施し得る、対応する選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌに割り当て、選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌに対し、自らに割り当てられた、１つまたは複数の並列実行可能なステップ／分岐５３＿１〜５３＿ｉを実施することを指令する。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００６９
【補正方法】変更
【補正の内容】
【００６９】
図８ｄは、Ｓ８４にて図５ｄの並列実行可能な部分５４を実行するステップを示す。図８ｄのステップＳ８４１では、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、次に実行対象となる部分であるとして、実行可能コードの部分５４を検出する。図８ｄのステップＳ８４２では、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、実行可能コードの部分５４を実施するための、少なくとも２つの処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌを選択する。この選択は、部分５４の並列実行可能なステップ５４＿１〜５４＿ｉのアカウント次第となり得る。部分５４の並列実行可能なステップ５４＿１〜５４＿ｉは、選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌの間で分配される。このため、図８ｄのステップＳ８４３では、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、並列実行可能なステップ５４＿１〜５４＿ｉのうちの１つまたは複数を実施し得る、部分５４の各並列実行可能なステップ５４＿１〜５４＿ｉを、対応する選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌに割り当て、選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌに対し、自らに割り当てられた、１つまたは複数の並列実行可能なステップ５４＿１〜５４＿ｉを実施することを指令する。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００７０
【補正方法】変更
【補正の内容】
【００７０】
ここで、注目すべきことは、並列実行可能な部分は、少なくとも１つの更なる並列実行可能な部分、すなわち少なくとも１つの並列実行可能なサブ部分を含み得る、ということである。この場合、並列実行可能な部分が、選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌによって実施されると、また、この実行のうちに並列実行可能なサブ部分が検出されると、上述したような選択および指令するステップが、並列実行可能なサブ部分に関して再び実行される。処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌの選択を実施する際に、上記並列実行可能な部分について選択されたものとは異なる、別の処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌが、並列実行可能なサブ部分の実施に関して選択されることが好ましい。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００７１
【補正方法】変更
【補正の内容】
【００７１】
図７は、Ｓ７における本発明の一実施形態に係る実行可能コードの実施を示し、Ｓ７４における並列実行可能な部分の実行中に、並列実行可能なサブ部分がＳ７４１にて実施される。図７によれば、最初に、実行可能コードの一部が、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１によって、Ｓ７１にて実行される。続いて、並列実行可能な部分が、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１によって選択された、少なくとも２つの処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌによって、Ｓ７２にて実行される。続いて、更なる部分が、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１によって、Ｓ７３にて実行される。ステップＳ７４では、並列実行可能な部分の実行が行われる。ここで、対応する選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌは、並列実行可能なサブ部分の存在を検出し、これを少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１に報告する。ステップＳ７４１では、その報告を受けることによって、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、並列実行可能なサブ部分の存在を検出する。続いて、ステップＳ７４１にて、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、上記サブ部分を実施するための少なくとも２つの処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌを選択し、そして、それらに対し、並列実行可能なサブ部分の、対応する並列実行可能なステップを実施することを指令する。ステップＳ７４１の実行後、ステップＳ７４の実行が、上記サブ部分を含む並列実行可能な部分に関して選択された、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌによって継続される。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】００７２
【補正方法】変更
【補正の内容】
【００７２】
図９ａは、本発明が、本発明の一実施形態に従って実施され得るシステムを示す。図９
ａのシステムは、サーバ９１と、クライアント９２と、データベース９３と、を備える。本実施形態によれば、クライアント９２は、サービスおよび／またはデータの要求をサーバ９１に送信する。サーバ９１は、受信したサービスおよび／またはデータの要求のそれぞれを処理する。このため、サーバ９１は、対応する、または必要なデータを、少なくとも部分的にデータベース９３を用いて検索・取得し得る。サーバ９１およびデータベース９３は、互いの間でデータを交換するように構成されている。受信したサービスおよび／またはデータの要求のそれぞれを処理した後、サーバ９１は、クライアント９２の対応する要求に応えて、対応するデータまたは情報をクライアント９２に送信する。サーバ９１は、例えば、ウェブサーバ、または、アプリケーションサーバなどの、別の情報またはサービス提供サーバであってもよい。
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】００７７
【補正方法】変更
【補正の内容】
【００７７】
ステップＳ１０＿２では、受信した要求の処理が実施される。受信した要求のそれぞれは、別の受信した要求と実質的に並列に、Ｓ１０＿２で処理されることが好ましい。したがって、受信した要求の処理に関する実行可能コードの部分は、プログラムループを含む並列実行可能な部分を表す。この並列実行可能な部分は、図５ａおよび８ａに示されるように実行されることが好ましい。１つまたは複数の要求の存在を検出した後、受信した要
求のそれぞれについて、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、サーバ９１、９４、またはデータ処理コンポーネント９４＿１の、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌを選択し、その処理モジュールに対し、要求の処理を実施することを指令する。
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】００７８
【補正方法】変更
【補正の内容】
【００７８】
図１１は、本実施形態に係る、要求を処理するステップＳ１０＿２の実施をより詳細に示す。本実施形態によれば、クライアント９２から受信した要求は、ウェブアドレスを表す統一資源位置指定子（ＵＲＬ）を含む。ステップＳ１１＿１では、要求を処理するために選択された、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌは、要求が関連しているデータを特定するが、例えば、それは、要求のＵＲＬにアクセスがあった際に可視化または表示されるものである。本実施形態によれば、特定されたデータは、データベース９３、９４＿２に格納されている可能性のある、少なくとも１つのデータファイルに対応する。
【手続補正１９】
【補正対象書類名】明細書
【補正対象項目名】００７９
【補正方法】変更
【補正の内容】
【００７９】
ステップＳ１１＿２では、要求の上記ＵＲＬの可視化に使用されていることが特定された各データファイルが、処理される。複数のデータファイルが存在することがあるため、ステップＳ１１＿２をコーディングする部分は、データファイルのそれぞれに関して実施されるプログラムループに関する、並列実行可能な部分を表す。この並列実行可能な部分の実行は、例えば、図５ａおよび８ａに示されるように行われることが好ましい。よって、特定の要求に関してステップＳ１０＿２を実施するために選択される、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌは、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１に対し、並列実行可能な部分の存在を知らせる。この情報を受けて、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、上記並列実行可能な部分の存在を検出し、データファイルのそれぞれに関して、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌを選択し、そして、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌに対し、Ｓ１１＿２における上記データファイルの処理を実施することを指令する。
【手続補正２０】
【補正対象書類名】明細書
【補正対象項目名】００８０
【補正方法】変更
【補正の内容】
【００８０】
図１２は、本実施形態に係る、Ｓ１１＿２におけるファイルの処理の実施をより詳細に示す。ステップＳ１２＿１では、アクセス権の検証が行われる。複数のアクセス権がチェックされ得るため、ステップＳ１２＿１をコーディングする、実行可能なプログラムの部分は、条件付き分岐を含む並列実行可能な部分である。この並列実行可能な部分の実行は、図５ｃおよび８ｃに示されるように、または、図５ｄおよび８ｄに示されるように、行われることが好ましい。ステップＳ１１＿２を実施するために選択された、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌは、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１に対し、並列実行可能な部分の存在を知らせる。この情報を受けて、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、上記並列実行可能な部分の存在を検出し、そして、アクセス権の検証を実施するための、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌを選択する。並列実行可能なステップのそれぞれは、条件付き分岐の全体を含んでいてもよいし（図５ｃおよび８ｃの状態を参照）、または、条件規定もしくは条件分岐本体を含んでいてもよい（図５ｄおよび８ｄの状態を参照）。条件規定は、特定のアクセス権のチェックを表してもよく、条件分岐本体は、対応する条件が真である場合に実施されるステップを規定してもよい。少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌに対し、自らに割り当てられた、対応する１つまたは複数の並列実行可能なステップを実施することを指令する。選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌのそれぞれから結果を受信した後、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、その結果を、ステップＳ１１＿２を実施するために選択された、処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌに提供する。
【手続補正２１】
【補正対象書類名】明細書
【補正対象項目名】００８１
【補正方法】変更
【補正の内容】
【００８１】
対応する選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌは、データファイルへのアクセスが許可されているかを検証する。許可されていない場合には、エラー処理ステップＳ１２＿２の実行が開始される。データファイルへのアクセスが許可されている場合には、ステップＳ１２＿３で、ファイルの有無がチェックされる。ここで、データファイルの、（例えば、データベース９３、９４＿２における）考えられる記憶場所のそれぞれがチェックされる。したがって、ステップＳ１２＿３の実行をコーディングする、実行可能コードの部分は、条件付き分岐を含む並列実行可能な部分である。この並列実行可能な部分の実行は、図５ｃおよび８ｃに示されるように、または、図５ｄおよび８ｄに示されるように行われることが好ましい。ステップＳ１１＿２を実施するために選択された、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌは、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１に対し、並列実行可能な部分の存在を知らせる。この情報を受けて、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、上記並列実行可能な部分の存在を検出し、そして、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌを選択する。並列実行可能なステップのそれぞれは、条件付き分岐の全体を含んでいてもよいし（図５ｃおよび８ｃの状態を参照）、または、条件規定もしくは条件分岐本体を含んでいてもよい（図５ｄおよび８ｄの状態を参照）。条件規定は、特定の記憶場所をチェックすることを表してもよく、条件分岐本体は、対応する条件が真である場合に実施されるステップを規定してもよい。少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌに対し、自らに割り当てられた、１つまたは複数の並列実行可能なステップを実施することを指令する。選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌのそれぞれから結果を受信した後、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、その結果を、ステップＳ１１＿２を実施するために選択された、処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌに提供する。
【手続補正２２】
【補正対象書類名】明細書
【補正対象項目名】００８２
【補正方法】変更
【補正の内容】
【００８２】
ステップＳ１２＿３にてデータファイルの記憶場所が特定できない場合には、対応するエラー処理が、ステップＳ１２＿２にて開始される。あるいは、ステップＳ１２＿４にて、例えば多目的インターネットメール拡張仕様（ＭＩＭＥ）のような、データファイルのファイル形式の特定が行われる。ファイル形式は複数あり得るので、ステップＳ１２＿２の実行をコーディングする実行可能コードの部分は、１つのファイル形式につき１つの分岐を有する条件付き分岐を含む、並列実行可能な部分である。この並列実行可能な部分の実行は、図５ｃおよび８ｃに示されるように、または、図５ｄおよび８ｄに示されるように行われ得る。ステップＳ１１＿２を実施するために選択された、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌは、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１に対し、並列実行可能な部分の存在を知らせる。この情報を受けて、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、上記並列実行可能な部分の存在を検出し、そして、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌを選択する。並列実行可能なステップのそれぞれは、条件付き分岐の全体を含んでいてもよいし（図５ｃおよび８ｃの状態を参照）、または、条件規定もしくは条件分岐本体を含んでいてもよい（図５ｄおよび８ｄの状態を参照）。条件規定は、特定のファイル形式をチェックすることを表していてもよく、条件分岐本体は、対応する条件が真である場合に実施されるステップを規定してもよい。少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌに対し、自らに割り当てられた、１つまたは複数の並列実行可能なステップを実施することを指令する。選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌのそれぞれから条件チェックの結果を受信した後、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、その結果を、ステップＳ１１＿２を実施するために選択された、処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌに提供する。
【手続補正２３】
【補正対象書類名】明細書
【補正対象項目名】００８３
【補正方法】変更
【補正の内容】
【００８３】
そして、更なる処理は、データファイルの形式によって決定される。当該形式のデータファイルを可視化するための、例えばインタープリタを使用した、対応するデータの更なる処理が不必要な場合には、データファイルがクライアント９２に提供され得る。この場合、ファイルをファイル送信のために複数の部分に分割するステップＳ１２＿５が実施される。このため、ファイルの部分読み出しが行われるが、その際、等しいサイズの部分が読み出されてクライアント９２に送信するためのデータパケットに処理され、また、読み
出されてデータパケットに処理された最後の部分は、他の／先行する部分のサイズ以下である。読み出し、および、引き続いての対応するデータ部分を用いたデータパケットの生成は、並列に行われることが好ましいため、ステップＳ１２＿５をコーディングする実行可能コードの部分は、並列実行可能な部分である。ステップＳ１２＿５をコーディングする並列実行可能な部分は、データファイルの特定の部分において、対応するデータが対応するデータパケットを生成するために用いられる、プログラムループを含む。このループは、データファイルの終わりに達する限り実施される。よって、並列実行可能な部分の実行は、図５ａおよび図８ａに示されるように行われることが好ましい。データファイルの各部分の取り扱いは、１つの並列実行可能なステップに対応する。ステップＳ１１＿２を実施するために選択された、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌは、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１に対し、並列実行可能な部分の存在を知らせる。この情報を受けて、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、上記並列実行可能な部分の存在を検出し、データファイルの部分のそれぞれについて、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌを選択し、そして、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌに対し、対応するデータパケットを生成することを指令する。選択された処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌのそれぞれからデータパケットを受信した後、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、それらのデータパケットを、ステップＳ１１＿２を実施するために選択された、処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌに提供する。
【手続補正２４】
【補正対象書類名】明細書
【補正対象項目名】００８４
【補正方法】変更
【補正の内容】
【００８４】
ステップＳ１２＿６では、生成されたデータパケットが、クライアント９２に提供される。複数のデータパケットが利用可能であるため、ステップＳ１２＿６をコーディングする実行可能コードの部分は、各データパケットについて送信が実施されるプログラムループを含む、並列実行可能な部分を表す。よって、ステップＳ１２＿６をコーディングする実行可能コードの部分は、図５ａおよび８ａによって示されるように実行されることが好ましい。ステップＳ１１＿２を実施するために選択された、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌは、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１に対し、並列実行可能な部分の存在を知らせる。この情報を受けて、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、上記並列実行可能な部分の存在を検出し、データパケットの部分のそれぞれについて、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌを選択し、そして、対応する処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌに対し、対応するデータパケットをクライアント９２に送信することを指令する。全てのデータパケットの送信後、少なくとも１つの制御用処理モジュール１１、１１’〜１１”、２１１、３１１、３２１は、ステップＳ１１＿２を実施するために選択された、処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌに対し、完了した送信を示す。
【手続補正２５】
【補正対象書類名】明細書
【補正対象項目名】００８５
【補正方法】変更
【補正の内容】
【００８５】
ステップＳ１２＿６の完了後、要求されたデータはクライアント９２に提供されているので、ステップＳ１１＿２の実行は完了する。
ステップＳ１２＿４の実行後に、対応する形式のデータファイルを可視化するために、例えばインタープリタを使用した更なる処理が必要であると判定された場合には、ステップＳ１１＿２を実施するために選択された、処理モジュール１１、１１’〜１１”、１２＿１〜１２＿ｋ、１２’＿１〜１２’＿ｋ’、１２”＿１〜１２”＿ｋ”、２１１、２１２＿１〜２１２＿ｍ、３１１、３１２＿１〜３１２＿ｋ、３２１、３２２＿１〜３２２＿ｌは、例えば対応するインタープリタを実行することによって、ステップＳ１２＿７にてデータファイルの更なる処理を実施して、その処理後に取得されたデータファイルが可視化され得るように、また、クライアントに提供され得るようにする。
【手続補正２６】
【補正対象書類名】明細書
【補正対象項目名】００８９
【補正方法】変更
【補正の内容】
【００８９】
さらに、ステップＳ１２＿２におけるエラー処理は、様々な方法で実施され得る。例えば、エラー処理は、サーバ９１、９４によってクライアント９２に送信されるエラーメッセージを生成してもよい。当業者は、エラー処理を承知しており、ステップＳ１２＿２にて複数の適切な手順が実施されることが好ましい、ということを知っているだろう。いずれの場合でも、ステップＳ１１＿２の実行は、ステップＳ１２＿２におけるエラー処理終了後に完了する。
【手続補正２７】
【補正対象書類名】明細書
【補正対象項目名】００９０
【補正方法】変更
【補正の内容】
【００９０】
図１３は、本発明の一実施形態に係る一式の処理モジュール１３＿１１、１３＿２１〜１３＿２ｍの実施態様を示す。一式の処理モジュール１３＿１１、１３＿２１〜１３＿２ｍは、本実施形態によれば、当業者に周知のセルチップまたはセルプロセッサ１３＿１である、処理エレメント１３＿１上に設置されている。処理モジュール１３＿１１は、電力プロセッサエレメント（ＰＰＥ）を表し、処理エレメント１３＿２１〜１３＿２ｍは、共同処理エレメント（ＳＰＥ）を表し、ＰＰＥおよびＳＰＥは、当業者に周知である。
【手続補正２８】
【補正対象書類名】明細書
【補正対象項目名】００９５
【補正方法】変更
【補正の内容】
【００９５】
図１６は、本発明の一実施形態に係る２つの処理エレメント１５＿１１、１６＿１１を備える、システム１６＿１の実施態様を示す。システム１６＿１は、同じ参照符号の付されたコンポーネントによって認識され得るように、図１５のシステム１５＿１の構成に基づいている。２つの処理エレメント１５＿１１、１６＿１１は、図３または１４ｂに関して説明されたように構成されてもよい。処理エレメント１５＿１１、１６＿１１の上に設置されている、一式の処理モジュール（図１６に図示なし）は、本出願において説明されているように構成される。図１５の構成に加えて、本実施形態のシステム１６＿１は、処理エレメント１６＿１１に接続されている、少なくとも１つの更なるメモリモジュール１６＿１２、１６＿１３を備え、そのようにして、処理エレメント１６＿１１に記憶容量を提供する。具体的には、少なくとも１つの更なるメモリモジュール１６＿１２、１６＿１３は、一式の処理モジュール、または、処理エレメント１６＿１１上に設置されている処理モジュールのうちの少なくとも１つに、記憶容量を提供する。少なくとも１つの更なるメモリモジュール１６＿１２、１６＿１３は、例えば、ランダムアクセスメモリ（ＲＡＭ）であってもよい。少なくとも１つの更なるメモリモジュール１６＿１２、１６＿１３の存在により、電力供給モジュール１５＿１４は、少なくとも１つの更なるメモリモジュール１６＿１２、１６＿１３にも電力を供給するように追加的に構成される。２つの処理エレメント１５＿１１、１６＿１１は、データを交換するために互いに接続されている。加えて、処理エレメント１５＿１１、１６＿１１は、電力供給モジュール１５＿１５からの電力を、処理エレメント１５＿１１を介して処理エレメント１６＿１１に供給するために、互いに接続されている。
【手続補正２９】
【補正対象書類名】明細書
【補正対象項目名】００９８
【補正方法】変更
【補正の内容】
【００９８】
図１５および１６の実施形態を考慮すると、記憶領域１７＿３、１７＿４、１７＿５は、それらが他のコンポーネントによってもアクセスされ得るように、メモリモジュール１５＿１２、１５＿１３、１６＿１２、１６＿１３に構築されてもよい。本発明の別の実施形態によれば、制御用処理モジュール１７＿１１、１７＿１ｍのみがアクセス可能である記憶領域１７＿４は、メモリモジュール１５＿１２、１５＿１３、１６＿１２、１６＿１３に構築されてもよく、一方、その他の記憶領域１７＿３、１７＿５は、処理モジュール１７＿１１〜１７＿１ｍおよび１７＿２１〜１７＿２ｎがその上に配置される、対応する処理エレメントの部分であってもよい。本発明の別の実施形態によれば、記憶領域１７＿３および１７＿５のうちの少なくとも１つは、処理モジュール１７＿１１〜１７＿１ｍおよび１７＿２１〜１７＿２ｎがその上に配置される、対応する１つまたは複数の処理エレメント上に、少なくとも部分的に設置されてもよい。
【手続補正３０】
【補正対象書類名】図面
【補正対象項目名】図１３
【補正方法】変更
【補正の内容】
【図１３】
2016510146.tif 000028
【国際調査報告】
2016510146.tif 000029
2016510146.tif 000030
2016510146.tif 000031