(57)【要約】【課題】デッドロックを発生させることなく複数の処理を効率的に実行させる構成を実現する。【解決手段】データ処理を時系列または並列に実行する複数の処理部を構成して、一連のデータ処理を実行させる構成において、処理部の全てが一対の入力キューと出力キューを有する構成とした。また、処理部の少なくとも一部の処理部には識別部が設定され、識別部の設定された処理部は、処理部前段の入力キューの格納データを識別部に入力し、識別部において対応処理部の処理対象データであるか否かを判定し、処理対象データでない場合は処理部における処理を行うことなく出力キューに転送する構成とした。本構成によりデッドロックの発生が抑制され、処理効率化が実現される。【選択図】図４
2010055162.tif 000002
【特許請求の範囲】
【請求項１】
データ処理を実行するデータ処理部と、
前記データ処理部における処理待機データまたは処理結果データを格納するキューを持つメモリを有し。
前記データ処理部は、
データ処理を時系列または並列に実行する複数の処理部を構成して、一連のデータ処理を実行する構成であり、
前記複数の処理部中、少なくとも前後に処理部を有する処理部の全てが一対の入力キューと出力キューを有する構成である情報処理装置。
【請求項２】
前記処理部の少なくとも一部の処理部には識別部が設定され、
識別部の設定された処理部は、処理部前段の入力キューの格納データを識別部に入力し、識別部において対応処理部の処理対象データであるか否かを判定し、処理対象データでない場合は処理部における処理を行うことなく出力キューに転送する処理を実行する構成である請求項１に記載の情報処理装置。
【請求項３】
前記識別部の設定される処理部は、処理部前段の入力キューに処理部における処理対象データでないデータが格納される可能性のある処理部とした構成を有する請求項２に記載の情報処理装置。
【請求項４】
前記データ処理部は、
画像データおよび音声データを含むデータに対する処理を実行する構成であり、
前記処理部の一部は画像データに対する処理を実行し、
前記処理部の一部は音声データに対する処理を行う構成であり、
画像データに対する処理を実行する処理部と、音声データに対する処理を実行する処理部はキューと交互に設定され、
先頭の入力キューは、画像データ処理部と音声データ処理部のいずれかで処理を必要とするデータが混在して格納されるキューであり、
画像データ処理部と音声データ処理部の中間に位置するキューは、前段の処理部の処理結果と、後段の処理部における処理対象データを格納するキューである請求項１に記載の情報処理装置。
【請求項５】
前記処理部の全てが一対の入力キューと出力キューを有する構成である請求項１に記載の情報処理装置。
【請求項６】
情報処理装置において実行する情報処理方法であり、
複数の処理部の各々において、入力キューからデータを取得し、取得データに対する処理を実行し、処理結果を出力キューヘ格納する処理を実行するステップと、
識別部を有する処理部において、入力キューからデータを取得し、取得データが処理部の処理対象データであるか否かを判定し、取得データが処理対象データである場合は処理部における処理を行い処理結果を出力キューに格納し、取得データが処理対象データでない場合は処理部における処理を行うことなく出力キューに格納するステップと、
を有する情報処理方法。
【請求項７】
情報処理装置において情報処理を実行させるプログラムであり、
複数の処理部の各々において、入力キューからデータを取得し、取得データに対する処理を実行し、処理結果を出力キューヘ格納する処理を実行させるステップと、
識別部を有する処理部において、入力キューからデータを取得し、取得データが処理部の処理対象データであるか否かを判定し、取得データが処理対象データである場合は処理部における処理を行い処理結果を出力キューに格納し、取得データが処理対象データでない場合は処理部における処理を行うことなく出力キューに格納させるステップと、
を有するプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、および情報処理方法、並びにプログラムに関する。さらに詳細には、複数の処理を時系列処理あるいは並列処理を行う情報処理装置、および情報処理方法、並びにプログラムに関する。
【背景技術】
【０００２】
プロセッサを適用したデータ処理を行う情報処理装置において、データ処理単位としてのスレッドをシーケンシャルにあるいは並列に処理することが行われる。情報処理装置は、処理シーケンスを規定したプログラムに従って処理を行うことになる。
【０００３】
複数の処理を同時に実行するマルチスレッド環境において、例えば、図１に示すプログラム構造に従って処理を実行する場合について考察する。図１に示すように、処理対象のデータは、入力部１１に入力され、最初の処理を実行する処理部Ａ１２において、第１のデータ処理が実行される。その後、処理部Ａ１２における処理データが処理部Ｂ１３，処理部Ｃ１４に入力され、それぞれの処理が並列に実行された後、その処理結果が処理部Ｄ１５に入力され、最終的な処理が実行された後、出力部１６を介して出力される。
【０００４】
なお、各処理部Ａ〜Ｄの接続部には、キューが設定され、データ１〜４は、それぞれキューに格納される。後段の処理部はキューからデータを取得して処理を実行する。なお、このような多段構成の処理を実行する構成を開示した従来技術としては例えば特許文献１（特開２００６−３９６７７号公報）がある。
【０００５】
図１に示すプログラム構造を適用した処理として画像のデコード処理、例えばＭＰＥＧのデコード処理を行う場合について考える。ＭＰＥＧデコード処理を実行する場合、
処理部Ａ１２はデマクチプレクサ、
データ１、データ２は、それぞれオーディオストリーム、ビデオストリーム、
処理部Ｂ１３、処理部Ｃ１４は、それぞれオーディオデータ、ビデオデータに対する処理を行う処理部、
データ３、データ４は、オーディオデータ、ビデオデータに対する処理結果、
処理部Ｄ１５はＡＶ同期処理部、
このような構成となる。
【０００６】
しかし、このような処理構造によって処理を行うと、デッドロック状態を招く場合がある。デッドロック状態とは、全ての処理部が動作を続行できなくなる状態である。
【０００７】
例えば、処理部Ｃ１４におけるビデオデータに対する処理が、たまたま単純な画像に対する処理であり、処理部Ｃ１４の処理結果としてのビデオデータが、処理部Ｂ１３のオーディオデータの処理結果出力より先行して処理部Ｄ１５に出力されたとする。この場合、処理部Ｄ１５は、処理部Ｂ１３からのオーディオデータを大気することになる。
【０００８】
つまり、処理部Ｂ１３の出力であるデータ３のキューが空であり、処理部Ｃ１４の出力であるデータ４のキューが詰まった状態である。
【０００９】
ビデオデータのデコード処理を実行する処理部Ｃ１４は、出力側のキュー（データ４）が満杯であるため、処理を続行できない。その結果、入力側のキュー（データ２）を詰まらせることになる。逆に、オーディオのデコード処理を実行する処理部Ｂ１３は、入力側のキュー（データ１）にデータが到着するまでは処理を開始できない。
【００１０】
この時、処理部Ａ１２は、次に書き込むデータがオーディオストリーム（データ１）であれば処理を続行できるが、ビデオストリーム（データ２）であった場合、データ２のキューは詰まっているためそれ以上書き込むことできず、処理を続行できない。
【００１１】
このようにして、全ての処理部が動作を続行できなくなる状態が発生する。この状態を、デッドロックとよぶ。
【００１２】
例えばＭＰＥＧデコード処理を行う場合、このようなデッドロック状態が発生しないように、ストリームの構造が仕様で制限されている。しかしながら、通信路のエラー等で規格外のストリームが入力された場合の動作は不定であり、デッドロック状態の発生を防止できない場合がある。
【００１３】
プログラム構造に基づいて全てのデッドロックコンディションを把握して、これらに対応したストリーム構造を設定する構成とすれば、デッドロックを防止できるが、プログラム構造が複雑になると、全てのデッドロックコンディションを把握することは困難である。例えば図２に示すようなプログラム構造では、全てのデッドロックコンディションを把握することはほぼ不可能である。
【００１４】
このような複雑なプログラム構造の場合、例えば図３に示すように、各処理部の間に収集・再配布処理部２１，２２を設けることによって、デッドロック状態の発生可能性を一部分に集約することができる。
【００１５】
しかし、この図３に示すような収集・再配布処理部２１，２２を設けた構造では、処理部Ａ〜Ｂ、処理部Ｅ〜Ｈ、処理部Ｉ〜Ｌは、それぞれ歩調を合わせて動作することになる。仮に、処理部Ｅ〜Ｈの中でＥの処理に最も時間を要したとする。このとき、処理部Ｆ〜Ｈは、先に処理が終了しても、処理部Ｅの処理と歩調を合わせるために次の配布タイミングまで処理の開始を待たなければならず、全体の処理の効率性を損なう。
【００１６】
また、マルチスレッド環境を前提としたプログラム構造は、当然の事ながらシングルスレッド環境への可搬性はないという問題もある。シングルスレッド環境のプログラムのデバッグは、その実行順を追うことにより容易に行える。しかしながら、マルチスレッド環境のプログラムは、予測不能な事象（例えば他プロセスの割り込みなど）により、実行タイミングが前後する場合があり、タイミングに依存したバグが発生する可能性がある。よって、そのデバッグにはプログラムの実行順番だけではなく、実行タイミングも同時にトレースする必要があり、非常に困難となる。
【特許文献１】特開２００６−３９６７７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
本発明は、例えば上記問題点に鑑みてなされたものであり、デッドロックの発生可能性を低減しスムーズな処理を可能とする情報処理装置、および情報処理方法、並びにプログラムを提供することを目的とする。
【００１８】
また、マルチスレッドとシングルスレッドいずれでも実行可能であり、デバッグ処理を容易にした情報処理装置、および情報処理方法、並びにプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１９】
本発明の第１の側面は、
データ処理を実行するデータ処理部と、
前記データ処理部における処理待機データまたは処理結果データを格納するキューを持つメモリを有し。
前記データ処理部は、
データ処理を時系列または並列に実行する複数の処理部を構成して、一連のデータ処理を実行する構成であり、
前記複数の処理部中、少なくとも前後に処理部を有する処理部の全てが一対の入力キューと出力キューを有する構成である情報処理装置にある。
【００２０】
さらに、本発明の情報処理装置の一実施態様において、前記処理部の少なくとも一部の処理部には識別部が設定され、識別部の設定された処理部は、処理部前段の入力キューの格納データを識別部に入力し、識別部において対応処理部の処理対象データであるか否かを判定し、処理対象データでない場合は処理部における処理を行うことなく出力キューに転送する処理を実行する構成である。
【００２１】
さらに、本発明の情報処理装置の一実施態様において、前記識別部の設定される処理部は、処理部前段の入力キューに処理部における処理対象データでないデータが格納される可能性のある処理部とした構成を有する。
【００２２】
さらに、本発明の情報処理装置の一実施態様において、前記データ処理部は、画像データおよび音声データを含むデータに対する処理を実行する構成であり、前記処理部の一部は画像データに対する処理を実行し、前記処理部の一部は音声データに対する処理を行う構成であり、画像データに対する処理を実行する処理部と、音声データに対する処理を実行する処理部はキューと交互に設定され、先頭の入力キューは、画像データ処理部と音声データ処理部のいずれかで処理を必要とするデータが混在して格納されるキューであり、画像データ処理部と音声データ処理部の中間に位置するキューは、前段の処理部の処理結果と、後段の処理部における処理対象データを格納するキューである。
【００２３】
さらに、本発明の情報処理装置の一実施態様において、前記処理部の全てが一対の入力キューと出力キューを有する構成である。
【００２４】
さらに、本発明の第２の側面は、
情報処理装置において実行する情報処理方法であり、
複数の処理部の各々において、入力キューからデータを取得し、取得データに対する処理を実行し、処理結果を出力キューヘ格納する処理を実行するステップと、
識別部を有する処理部において、入力キューからデータを取得し、取得データが処理部の処理対象データであるか否かを判定し、取得データが処理対象データである場合は処理部における処理を行い処理結果を出力キューに格納し、取得データが処理対象データでない場合は処理部における処理を行うことなく出力キューに格納するステップと、
を有する情報処理方法にある。
【００２５】
さらに、本発明の第３の側面は、
情報処理装置において情報処理を実行させるプログラムであり、
複数の処理部の各々において、入力キューからデータを取得し、取得データに対する処理を実行し、処理結果を出力キューヘ格納する処理を実行させるステップと、
識別部を有する処理部において、入力キューからデータを取得し、取得データが処理部の処理対象データであるか否かを判定し、取得データが処理対象データである場合は処理部における処理を行い処理結果を出力キューに格納し、取得データが処理対象データでない場合は処理部における処理を行うことなく出力キューに格納させるステップと、
を有するプログラムにある。
【００２６】
なお、本発明のプログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【００２７】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【発明の効果】
【００２８】
本発明の一実施例の構成によれば、データ処理を時系列または並列に実行する複数の処理部を構成して、一連のデータ処理を実行させる構成において、処理部の全てが一対の入力キューと出力キューを有する構成とした。また、処理部の少なくとも一部の処理部には識別部が設定され、識別部の設定された処理部は、処理部前段の入力キューの格納データを識別部に入力し、識別部において対応処理部の処理対象データであるか否かを判定し、処理対象データでない場合は処理部における処理を行うことなく出力キューに転送する処理を実行される構成とした。本構成により、デッドロックの発生が抑制され、処理の効率化が実現される。
【発明を実施するための最良の形態】
【００２９】
以下、本発明の情報処理装置、および情報処理方法、並びにプログラムの詳細について説明する。
【００３０】
本発明の一実施例に従った情報処理装置の実行するプログラム構造例を図４に示す。図４に示す構成は、入力部１０１、処理部Ａ１０２、処理部Ｂ１０３、処理部Ｃ１０４、処理部Ｄ１０５、出力部１０６を有し、さらに処理部Ｂに対応して設定された識別部Ｂ１２１、処理部Ｃに対応して設定された識別部Ｃ１２２を有する。
【００３１】
処理対象データは、入力部１０１から、処理部Ａ１０２に入力され、処理部Ａ１０２における処理の処理結果であるデータ１、データ２がキューＸ１５１に順次格納される。
【００３２】
キューＸ１５１に格納されたデータ１、データ２は、処理部Ｂ１０３に対応して設定された識別部Ｂ１２１に順次、入力される。識別部Ｂ１２１は、処理部Ｂ１０３の入力側のキューＸ１５１から受け取ったデータが処理部Ｂ１０３の処理対象データ（データ１）であるか、処理対象でないデータ（データ２）であるかを判別する。
【００３３】
キューＸ１５１から受け取ったデータが処理部Ｂ１０３の処理対象データ（データ１）であれば処理部Ｂ１０３を呼び出して処理を実行して、処理結果データであるデータ３を生成して出力側のキューＹ１５２に書き込む。
【００３４】
一方、処理部Ｂ１０３の入力側のキューＸ１５１から受け取ったデータが処理部Ｂ１０３の処理対象データでない（データ２）と識別部Ｂ１２１が判定した場合は、識別部Ｂ１２１は、処理部Ｂ１０３を呼び出すことなく処理は何も行わずに、そのまま出力側のキューＹ１５２に書き込む。
【００３５】
さらに、キューＹ１５２に格納されたデータ２、データ３は、処理部Ｃ１０４に対応して設定された識別部Ｃ１２２に順次、入力される。識別部Ｃ１２２は、処理部Ｃ１０４の入力側のキューＹ１５２から受け取ったデータが処理部Ｃ１０４の処理対象データ（データ２）であるか、処理対象でないデータ（データ３）であるかを判別する。
【００３６】
キューＹ１５２から受け取ったデータが処理部Ｃ１０４の処理対象データ（データ２）である場合は、処理部Ｃ１０４を呼び出して処理を実行して、処理結果データであるデータ４を生成して出力側のキューＺ１５３に書き込む。
【００３７】
一方、処理部Ｃ１０４の入力側のキューＹ１５２から受け取ったデータが処理部Ｃ１０４の処理対象データでない（データ３）と識別部Ｃ１２２が判定した場合は、識別部Ｃ１２２は、処理部Ｃ１０４を呼び出すことなく処理は何も行わずに、そのまま出力側のキューＺ１５３に書き込む。
【００３８】
さらに、キューＺ１５３に格納されたデータ３、データ４は、処理部Ｄ１０５に順次、入力される。処理部Ｄ１０５は、キューＺ１５３に格納されたデータ３、データ４を順次入力し、処理結果を出力部１０６に入力する。出力部１０６は、処理部Ｄ１０５からの入力データを最終処理結果データとして出力する。
【００３９】
このプログラム構造は、先に図１を参照して説明したと同様の処理を実行することができる。図１を参照して説明した構造では、処理部Ｂと処理部Ｃが並列処理構成となっており、それぞれの処理部の前段（入力側）に各処理部固有のキューが設定され、さらに、各処理部の後段（出力側）にも各処理部固有のキューが設定された構成となっている。
【００４０】
一方、図４に示す構成では、処理部Ｂと処理部Ｃはシーケンシャルに並べて構成されており、キューは、各処理部の間に１つずつ設定されている。すなわち、キューと処理部が交互に接続されている。
【００４１】
処理部対応の識別部では、入力側キューから取り出したデータが、識別部に対応する処理部の処理対象となるデータであれば、その処理部での処理を実行させ、処理対象データでない場合には、その処理部の後段のキューにそのまま出力して格納する。
【００４２】
このような構成とすることで、図４に示す各処理部は、いずれかの処理部の処理完了を待機するといった必要がなく、処理部の前段（入力側）のキューから順次データを取り出して処理を実行、あるいは後段キューに転送するといったことが可能となる。
【００４３】
なお、図４に示す処理部Ｃ１０４は、処理部Ｂ１０３の後段に設定されているが、処理部Ｃ１０４は処理部Ｂ１０３の処理の完了を待つ必要がない。キューＸ１５１には、データ１、データ２が格納されるが、データ２は、処理部Ｃ１０４の処理対象データであり、識別部Ｂの識別処理によって、キューＹ１５２に即座に格納されることになる。結果として、処理部Ｂ１０３と処理部Ｃは並列に処理が可能となり、処理部Ｂ１０３と処理部Ｃ各々の処理結果は、キューＺ１５３に順次格納される。
【００４４】
このようなプログラム構造、すなわち、少なくとも前後に処理部を有する処理部の全てが一対の入力キューと出力キューを有する構成、あるいは全ての処理部が一対の入力キューと出力キューを持つ構造とすることにより、原理的にデッドロックコンディションは発生しない。
【００４５】
また、図４に示す構造では、全ての処理部が独立して動作可能である。歩調同期部が存在しないため、マルチスレッド環境での処理は効率よく行える。
【００４６】
さらに、図４に示す構成は、シングルスレッド環境で適用することも可能である。すなわち、処理部間のキューをバッファ（段数１のキュー）に置き換え、各処理部を順番に呼び出すだけでよい。また、各処理部間のキューの段数を１とすると、動作は逐次処理となり、シングルスレッド環境と同等にデバッグが行える。
【００４７】
このように、図４に示すような構成は、以下のようなメリットを持つ。
（ａ）デッドロックコンディションの発生防止効果、
（ｂ）マルチスレッド環境での処理効率の向上、
（ｃ）シングルスレッド環境への可搬性、
（ｄ）デバッグの容易性、
【００４８】
図４に示すプログラム構造を適用した処理として画像のデコード処理、例えばＭＰＥＧのデコード処理を行う場合について説明する。ＭＰＥＧデコード処理を実行する場合、
処理部Ａ１０２はデマクチプレクサ、
データ１、データ２は、それぞれオーディオストリーム、ビデオストリーム、
処理部Ｂ１０３、処理部Ｃ１０４は、それぞれオーディオデータ、ビデオデータに対する処理を行う処理部、
データ３、データ４は、オーディオデータ、ビデオデータに対する処理結果、
処理部Ｄ１０５はＡＶ同期処理部、
このような構成となる。
【００４９】
処理部Ａ１０２は、入力データをデータ１（オーディオストリーム）とデータ２(ビデオストリーム)とに分離して、キューＸ１５１に格納する。
【００５０】
キューＸ１５１に格納されたデータ１（オーディオストリーム）とデータ２(ビデオストリーム)は、処理部Ｂ１０３に対応して設定された識別部Ｂ１２１に順次、入力される。識別部Ｂ１２１は、処理部Ｂ１０３の入力側のキューＸ１５１から受け取ったデータが処理部Ｂ１０３の処理対象データ（データ１（オーディオストリーム））であるか、処理対象でないデータ（データ２(ビデオストリーム)）であるかを判別する。
【００５１】
キューＸ１５１から受け取ったデータが処理部Ｂ１０３の処理対象データ（データ１（オーディオストリーム））であれば処理部Ｂ１０３を呼び出して処理を実行して、処理結果データであるデータ３を生成して出力側のキューＹ１５２に書き込む。
【００５２】
一方、処理部Ｂ１０３の入力側のキューＸ１５１から受け取ったデータが処理部Ｂ１０３の処理対象データでない（データ２(ビデオストリーム)）と識別部Ｂ１２１が判定した場合は、識別部Ｂ１２１は、処理部Ｂ１０３を呼び出すことなく処理は何も行わずに、そのまま出力側のキューＹ１５２に書き込む。
【００５３】
さらに、キューＹ１５２に格納されたデータ２(ビデオストリーム)、データ３（オーディオデータ）は、処理部Ｃ１０４に対応して設定された識別部Ｃ１２２に順次、入力される。識別部Ｃ１２２は、処理部Ｃ１０４の入力側のキューＹ１５２から受け取ったデータが処理部Ｃ１０４の処理対象データ（データ２）であるか、処理対象でないデータ（データ３（オーディオデータ））であるかを判別する。
【００５４】
キューＹ１５２から受け取ったデータが処理部Ｃ１０４の処理対象データ（データ２(ビデオストリーム)）である場合は、処理部Ｃ１０４を呼び出して処理を実行して、処理結果データであるデータ４(ビデオデータ)を生成して出力側のキューＺ１５３に書き込む。
【００５５】
一方、処理部Ｃ１０４の入力側のキューＹ１５２から受け取ったデータが処理部Ｃ１０４の処理対象データでない（データ３（オーディオデータ））と識別部Ｃ１２２が判定した場合は、識別部Ｃ１２２は、処理部Ｃ１０４を呼び出すことなく処理は何も行わずに、そのまま出力側のキューＺ１５３に書き込む。
【００５６】
さらに、キューＺ１５３に格納されたデータ３（オーディオデータ）、データ４(ビデオデータ)は、ＡＶ同期処理部である処理部Ｄ１０５に順次、入力される。処理部Ｄ１０５は、キューＺ１５３に格納されたデータ３（オーディオデータ）、データ４(ビデオデータ)を順次入力し、ＡＶ同期処理結果を出力部１０６に入力する。出力部１０６は、処理部Ｄ１０５からの入力データを最終処理結果データとして出力する。
【００５７】
図５に、識別部を有する処理部の処理シーケンスを説明するフローチャートを示す。この図５に示すフローは、例えば図４に示す処理部Ｂ１０３や、処理部Ｃ１０４、すなわち識別部を有する処理部において実行される処理である。
【００５８】
まず、ステップＳ１０１において、前段の入力キューからデータを識別部に入力する。ステップＳ１０２において識別部は、入力データがこの処理部での処理対象であるか否かを判定する。処理対象データである場合はステップＳ１０３に進む。一方、処理対象データでない場合はステップＳ１０３に進む
【００５９】
キューから取得したデータが、処理部における処理対象データである場合は、ステップＳ１０３に進み、ステップＳ１０３において、その処理部において処理を実行する。次に、ステップＳ１０４において、処理部の処理結果を出力側のキューに書き込む。
【００６０】
一方、ステップＳ１０２において、入力データがこの処理部での処理対象でないと判定した場合はステップＳ１０５に進む。ステップＳ１０５では、処理部における処理を実行することなく、キューから取り出したテータをそのまま出力側のキューに書き込む。
【００６１】
このような処理を実行する処理部を連結して構成することで、上述した効果、すなわち、
（ａ）デッドロックコンディションの発生防止効果、
（ｂ）マルチスレッド環境での処理効率の向上、
（ｃ）シングルスレッド環境への可搬性、
（ｄ）デバッグの容易性、
このような効果がもたらされる。
【００６２】
なお、図４の構成では、識別部が設定されているのは処理部Ｂ１０３、処理部Ｃ１０４のみとなっている。識別部を設定する処理部は、処理部前段のキューにその処理部における処理対象データと処理対象とならないデータが混在して格納される可能性がある処理部のみでよい。前段キューに格納されるデータの全てが処理対象となる処理部、たとえば図４に示す処理部Ｄ１０５には、識別部を設けなくてよい。
【００６３】
図４に示すキューＸ１５１に格納されるデータは、処理部Ｂ１０３、処理部Ｃ１０４の両者において処理されるデータが混在している。
処理部Ｂ１０３前段のキューＸ１５１には、処理部Ｂ１０３における処理対象データと処理対象とならないデータが混在して格納される。処理部Ｂ１０３の識別部Ｂ１２１は、このデータから処理部Ｂ１０３の処理対象データと処理対象とならないデータを判別する処理を行う。
【００６４】
同様に、処理部Ｃ１０４前段のキューＹ１５２には、処理部Ｃ１０４における処理対象データと処理対象とならないデータが混在して格納される。処理部Ｃ１０４の識別部Ｃ１２２は、このデータから処理部Ｃ１０４の処理対象データと処理対象とならないデータを判別する処理を行う。
【００６５】
最後に、図４に示すようなプログラム構造を持つプログラムを実行する情報処理装置の構成例について図６を参照して説明する。情報処理装置は例えばＰＣなどプログラム実行機能を持つ装置によって実現される。なお並列処理可能なマルチプロセッサ構成を持つことが望ましい。
【００６６】
図６に示す情報処理装置２００は、プログラムの実行部として野データ処理部２０１、プログラムや、処理データ、パラメータ等の格納領域としてのメモリ２０２、データや処理指示を入力する入力部２０３、処理結果などを出力する出力部２０４を有する構成である。
【００６７】
データ処理部２０１はたとえばマルチプロセッサ構成を持ち、複数の処理を並列に実行可能な構成を持つ、メモリ２０２は、ＲＡＭ、ＲＯＭなどの要素によって構成されており、先に説明した実施例におけるキューとしての機能も提供する。
【００６８】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
【００６９】
また、明細書中において説明した一連の処理は、例えば集積回路などのハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【００７０】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【００７１】
以上、説明したように、本発明の一実施例の構成によれば、データ処理を時系列または並列に実行する複数の処理部を構成して、一連のデータ処理を実行させる構成において、処理部の全てが一対の入力キューと出力キューを有する構成とした。また、処理部の少なくとも一部の処理部には識別部が設定され、識別部の設定された処理部は、処理部前段の入力キューの格納データを識別部に入力し、識別部において対応処理部の処理対象データであるか否かを判定し、処理対象データでない場合は処理部における処理を行うことなく出力キューに転送する処理を実行される構成とした。本構成により、デッドロックの発生が抑制され、処理の効率化が実現される。
【図面の簡単な説明】
【００７２】
【図１】複数の処理を同時に実行するマルチスレッド環境において実行されるプログラムの一例につい説明する図である。
【図２】複数の処理を同時に実行するマルチスレッド環境において実行されるプログラムの一例につい説明する図である。
【図３】複数の処理を同時に実行するマルチスレッド環境において実行されるプログラムの一例につい説明する図である。
【図４】本発明の一実施例に係る情報処理装置の実行するプログラムの一例につい説明する図である。
【図５】本発明の一実施例に係る情報処理装置の実行する処理の一例につい説明するフローチャートを示す図である。
【図６】本発明の一実施例に係る情報処理装置の構成例について説明する図である。
【符号の説明】
【００７３】
１１  入力部
１２  処理部Ａ
１３  処理部Ｂ
１４  処理部Ｃ
１５  処理部Ｄ
１６  出力部
２１，２２  収集再配布処理部
１０１  入力部
１０２  処理部Ａ
１０３  処理部Ｂ
１０４  処理部Ｃ
１０５  処理部Ｄ
１０６  出力部
１２１  識別部Ｂ
１２２  識別部Ｃ
１５１  キューＸ
１５２  キューＹ
１５３  キューＺ
２００  情報処理装置
２０１  データ処理部
２０２  メモリ
２０３  入力部
２０４  出力部
【図１】
2010055162.tif 000003
【図２】
2010055162.tif 000004
【図３】
2010055162.tif 000005
【図４】
2010055162.tif 000006
【図５】
2010055162.tif 000007
【図６】
2010055162.tif 000008