(57)【要約】【課題】モジュール間通信するモジュール化プログラムの再利用性を高める。【解決手段】モジュール管理部１０５は、制御モジュール１０１・１０２からの被制御モジュール生成指示に応じて、被制御モジュール１０３・１０４を生成する。また、制御モジュール１０１・１０２と被制御モジュール１０３・１０４との間でのモジュール間通信に用いられる、モジュール番号とプロセッサ番号とから構成される通信識別子（モジュール間通信制御情報）の生成を通信識別子設定部１０６・１０７に指示する。通信識別子設定部１０６・１０７は、通信識別子を生成して各モジュール１０１〜１０４に設定する。通信部選択部１０８は、各モジュール１０１〜１０４から与えられる通信識別子に応じて、通信部１０９・１１０を選択する。通信部１０９は、プロセッサ間通信を行う一方、通信部１１０は、プロセッサ内通信を行う。【選択図】図１
2008108123.tif 000002
【特許請求の範囲】
【請求項１】
制御モジュール、および上記制御モジュールの実行によって生成される被制御モジュールのうちの少なくとも一方を実行するモジュール実行部と、
上記制御モジュールと被制御モジュールとの間のモジュール間通信を行う複数種類のモジュール間通信部と、
上記モジュール間通信に用いられるモジュール間通信部を選択するモジュール間通信部選択部と、
を備え、
上記制御モジュールおよび被制御モジュールの少なくとも一方が、その制御モジュールまたは被制御モジュールの外部から与えられたモジュール間通信制御情報に基づいて、上記モジュール間通信部選択部にモジュール間通信部の選択を指示するように構成されたことを特徴とするモジュール実行装置。
【請求項２】
請求項１のモジュール実行装置であって、
制御モジュールが被制御モジュールを生成する際に、上記制御モジュールと被制御モジュールとの間の通信に応じたモジュール間通信制御情報が生成されるように構成されたことを特徴とするモジュール実行装置。
【請求項３】
請求項２のモジュール実行装置であって、
制御モジュールが被制御モジュールを生成するごとに、上記制御モジュールから被制御モジュールへの通信に応じたモジュール間通信制御情報が生成され、上記制御モジュールはその制御モジュールが生成した複数の被制御モジュールと通信可能となるように構成されたことを特徴とするモジュール実行装置。
【請求項４】
請求項２のモジュール実行装置であって、
制御モジュールが被制御モジュールを生成する際に、上記被制御モジュールから制御モジュールへの通信に応じたモジュール間通信制御情報が生成され、上記被制御モジュールはその被制御モジュールを生成した制御モジュールと通信可能となるように構成されたことを特徴とするモジュール実行装置。
【請求項５】
請求項１のモジュール実行装置であって、
上記複数種類のモジュール間通信部は、同一のプロセッサで実行されるモジュール間の通信を行うモジュール間通信部と、互いに異なるプロセッサで実行されるモジュール間の通信を行うモジュール間通信部とを含むとともに、
上記モジュール間通信制御情報は、通信相手のモジュールが実行されるプロセッサを示すプロセッサ特定情報を含み、
上記プロセッサ特定情報に基づいて、モジュール間通信部の選択が行われるように構成されたことを特徴とするモジュール実行装置。
【請求項６】
請求項１のモジュール実行装置であって、
上記モジュール間通信制御情報は、通信相手のモジュールを特定するモジュール特定情報、および上記通信相手のモジュールが実行されるプロセッサを示すプロセッサ特定情報を含み、上記モジュール間通信制御情報に基づいて、上記制御モジュールと被制御モジュールとの間のモジュール間通信が行われるように構成されたことを特徴とするモジュール実行装置。
【請求項７】
制御モジュールの処理内容、または上記制御モジュールの実行によって生成された被制御モジュールの処理内容を示すモジュール化プログラムであって、
上記制御モジュールまたは被制御モジュールの外部から与えられたモジュール間通信制御情報に基づいて、上記制御モジュールと被制御モジュールとの間のモジュール間通信に用いられるモジュール間通信方法が選択されるように構成されたことを特徴とするモジュール化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御モジュールと、上記制御モジュールによって生成され、制御される被制御モジュールとの間のモジュール間通信が行われるように構成されたモジュール実行装置に関するものである。
【背景技術】
【０００２】
プログラムの実行によって種々の機能が実現される機器においては、プログラムがモジュール化され、モジュール間通信が行われながら実行されるものがある。また、さらに、モジュール間通信が行われる際に、複数種類の通信方式のうち何れかの通信方式が選択的に用いられるものもある。
【０００３】
具体的には、例えばマルチＣＰＵシステムにおいては、同一のＣＰＵで実行されるモジュール（タスク）との通信が行われる場合には直接メッセージが送信される一方、他のＣＰＵで実行されるタスクとの通信が行われる場合には、通信先のタスクおよびそのタスクを実行するＣＰＵの指定を伴う送信依頼が、ＣＰＵ間通信タスクに対してなされる。このような装置の場合、システム構成の変更や他のシステムへの移植によって通信相手のタスクを実行するＣＰＵが異なるなどすると、通信方式が変更になるため、その都度タスク（モジュール化プログラム）を修正する必要があり、再利用性が低下する。
【０００４】
そこで、例えば、システム構築の際に割り当てられる、ＣＰＵ番号とローカルなタスク番号から成るタスクＩＤが登録されたタスクテーブル、および上記タスクテーブルを参照して、通信先のタスクを実行するＣＰＵが通信元のＣＰＵと同じかどうかに応じて通信方式を切り替えるリアルタイムモニタを設ける技術が提案されている（例えば、特許文献１参照。）。これによれば、通信先のタスクがどのＣＰＵで実行されるかに係わらず、通信処理を同一にすることができる。
【特許文献１】特開平８−３３９３５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記のようにタスクテーブルとリアルタイムモニタを用いて通信方式を切り替えるように構成したとしても、通信相手自体を異ならせるためには、モジュール化プログラムの修正が必要となり、再利用性が低下しがちであるという問題点を有していた。
【０００６】
本発明は、上記の点に鑑み、通信処理の柔軟性を高くして、モジュール化プログラムの再利用性を容易に高められるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するため、本発明のモジュール実行装置は、
制御モジュール、および上記制御モジュールの実行によって生成される被制御モジュールのうちの少なくとも一方を実行するモジュール実行部と、
上記制御モジュールと被制御モジュールとの間のモジュール間通信を行う複数種類のモジュール間通信部と、
上記モジュール間通信に用いられるモジュール間通信部を選択するモジュール間通信部選択部と、
を備え、
上記制御モジュールおよび被制御モジュールの少なくとも一方が、その制御モジュールまたは被制御モジュールの外部から与えられたモジュール間通信制御情報に基づいて、上記モジュール間通信部選択部にモジュール間通信部の選択を指示するように構成されたことを特徴とする。
【０００８】
モジュール間通信に用いられる通信方式は、制御モジュールまたは被制御モジュールの外部から与えられたモジュール間通信制御情報に基づいて選択される。それゆえ、通信手続きに関する処理を隠蔽したモジュール化プログラムを作成して用いることができる。
【発明の効果】
【０００９】
本発明によれば、通信方式がモジュール間通信制御情報に基づいて柔軟に選択されるようにして、モジュール化プログラムを変更することなく再利用することが容易にできる。
【発明を実施するための最良の形態】
【００１０】
モジュール実行装置は、例えばプロセッサやメモリを有するコンピュータに、オペレーティングシステムやモジュール化されたモジュール化プログラムなどが組み合わされて構成され、これらのモジュール化プログラムによって示される処理が行われるようになっている。
【００１１】
より具体的には、モジュール実行装置１００は、例えば図１に示すような機能的構成を有している。
【００１２】
制御モジュール１０１・１０２、および被制御モジュール１０３・１０４は、それぞれ生成され実行されることによって（モジュール化プログラムがロードされ起動されることによって）、所定の処理を行うようになっている。処理の内容は特に限定されないが、例えば、モジュール実行装置１００がテレビ受像器や映像録画装置に適用される場合には、制御モジュール１０１・１０２がそれぞれの装置に専用の処理を行う一方、被制御モジュール１０３・１０４は、これらの装置で共通のモジュール化プログラムが用いられてＭＰＥＧ２、４の処理などを行う。
【００１３】
ここで、モジュールの実現形態としては、例えばマルチスレッドシステムにおけるスレッドや、マルチタスクシステムにおけるタスクなどを適用することができる。
【００１４】
また、制御モジュールと被制御モジュールとの区別は、生成する側と生成される側との関係であることを示す。ただし、この区別は相対的なもので、例えば被制御モジュールが、さらに、制御モジュールとして他の被制御モジュールを生成したりしてもよい。
【００１５】
モジュール管理部１０５は、被制御モジュール１０３・１０４の生成等を管理するもので、例えば制御モジュール１０１・１０２からの被制御モジュール生成指示に応じて、被制御モジュール１０３・１０４を生成するようになっている。また、その際に、制御モジュール１０１・１０２と被制御モジュール１０３・１０４との間でのモジュール間通信に用いられる通信識別子（モジュール間通信制御情報）の生成を通信識別子設定部１０６・１０７に指示するようになっている。上記通信識別子は、例えば通信相手のモジュールを特定するためのモジュール番号と、そのモジュールが実行されるプロセッサのプロセッサ番号とから構成される（本実施形態ではモジュール実行装置とプロセッサとが１：１に対応するとして説明する。）。上記プロセッサ番号は、本実施形態では、文字通りプロセッサを特定するのに加えて、後述するように通信部１０９・１１０の何れが用いられるか（複数種類の通信方法のうち何れの通信方式が用いられるか）を示す情報として用いられる。
【００１６】
通信識別子設定部１０６・１０７は、上記モジュール管理部１０５からの指示に応じて通信識別子を生成し、各モジュール１０１〜１０４に対して設定するようになっている。具体的には、例えば各モジュール１０１〜１０４が参照可能なメモリ領域等に記憶させるようになっている。
【００１７】
通信部選択部１０８は、各モジュール１０１〜１０４から通信データと伴に与えられる通信識別子に応じて、通信部１０９・１１０を選択するようになっている。
【００１８】
通信部１０９・１１０は、各モジュール間の通信処理を行うようになっている。より詳しくは、通信部１０９は、モジュール実行装置１００のモジュール１０１〜１０４から、他のモジュール実行装置２００の制御モジュール２０１への通信（プロセッサ間通信）を行うようになっている。一方、通信部１１０は、モジュール実行装置１００内のモジュール１０１〜１０４間での通信（プロセッサ内通信）を行うようになっている。
【００１９】
上記モジュール管理部１０５、通信識別子設定部１０６・１０７、通信部選択部１０８、および通信部１０９・１１０は、例えばオペレーティングシステムの機能として一般的に提供されるもの（被制御モジュールの生成処理や、通信処理等）を用いることができる。
【００２０】
ここで、図１に示すモジュール実行装置２００は、制御モジュール２０１と通信部２０９とだけが描かれているが、モジュール実行装置１００と同様に構成されたものでもよいし、あらかじめモジュール化プログラム中に指定された通信方法で通信するように構成されたものでもよい。すなわち、モジュール実行装置１００における各モジュールとの通信が可能に構成されていればよい。
【００２１】
上記のように構成されたモジュール実行装置１００の動作を説明する。
【００２２】
（制御モジュール１０１による被制御モジュール１０３の生成）
例えば制御モジュール１０１がモジュール管理部１０５に被制御モジュール１０３の生成を指示すると、モジュール管理部１０５は、指示に応じたモジュール化プログラムをロードして起動し、被制御モジュール１０３を生成する。
【００２３】
モジュール管理部１０５は、また、生成された被制御モジュール１０３のモジュール番号、およびモジュール実行装置１００のプロセッサ番号を通信識別子設定部１０６に通知する一方、制御モジュール１０１のモジュール番号、およびモジュール実行装置１００のプロセッサ番号を通信識別子設定部１０７に通知する。そこで、通信識別子設定部１０６・１０７は、それぞれ上記モジュール番号およびプロセッサ番号から構成される通信識別子をモジュール１０１・１０３に対して設定する。
【００２４】
上記のようにして生成された被制御モジュール１０３は、制御モジュール１０１によって制御されて所定の処理を行い、処理の完了応答等を制御モジュール１０１に返す。これらの制御や応答は、モジュール間通信を介してなされる。
【００２５】
（制御モジュール１０１から被制御モジュール１０３等への通信）
上記モジュール間通信は、例えば制御モジュール１０１から被制御モジュール１０３に通信する場合、図２および以下に示すように行われる。
【００２６】
（Ｓ１０１）  制御モジュール１０１は、例えば被制御モジュール１０３の生成時に通信識別子設定部１０６によって設定された通信識別子、すなわち被制御モジュール１０３のモジュール番号、およびモジュール実行装置１００のプロセッサ番号から構成される通信識別子を取得し、通信データと伴に通信部選択部１０８に渡す。
【００２７】
（Ｓ１０２）  通信部選択部１０８は、通信識別子から、モジュール番号と、プロセッサ番号とを抽出する。
【００２８】
（Ｓ１０３）  通信部選択部１０８は、また、抽出したプロセッサ番号がモジュール実行装置１００自体のプロセッサ番号かどうかを判定する。
【００２９】
（Ｓ１０４）  通信相手が被制御モジュール１０３の場合には、プロセッサ番号が一致するので、通信部選択部１０８は通信部１１０（プロセッサ内通信）を選択し、選択した通信部１１０にモジュール番号と通信データを渡す。
【００３０】
（Ｓ１０５）  通信部１１０は、モジュール番号によって示される被制御モジュール１０３等に、プロセッサ内通信によって通信データを送る。
【００３１】
一方、制御モジュール１０１が他のプロセッサで実行される被制御モジュールを生成し、その被制御モジュールと通信するような場合には、上記（Ｓ１０３）でプロセッサ番号が一致しないと判定されるので、以下の処理が行われる。
【００３２】
（Ｓ１０６）  通信部選択部１０８は通信部１０９（プロセッサ間通信）を選択し、選択した通信部１０９に、モジュール番号と、プロセッサ番号と、通信データとを渡す。
【００３３】
（Ｓ１０７）  通信部１０９は、プロセッサ番号およびモジュール番号によって示されるプロセッサの被制御モジュールに、プロセッサ間通信によって通信データを送る。
【００３４】
上記のように、制御モジュール１０１の生成元のモジュール化プログラム自体は、特に通信方式や通信相手を関知せずに作成されても、通信識別子設定部１０６によって設定された通信識別子に基づく通信処理が行われることによって、適切に被制御モジュール１０３等との通信が行われる。
【００３５】
また、制御モジュール１０１は、その制御モジュール１０１が生成した被制御モジュールと通信する際には通信識別子設定部１０６によって設定された通信識別子を取得するだけでよく、特開平８−３３９３５６号公報に示されるような全タスクについてのタスクテーブルを参照したりする必要がないので、検索時間や処理負荷を低減し、処理の高速化を図ることも容易にできる。また、使用メモリ量の増加を招くこともない。
【００３６】
（被制御モジュール１０３から制御モジュール１０１への通信など）
被制御モジュール１０３から制御モジュール１０１への通信も同様に、通信識別子設定部１０７によって設定された通信識別子に基づいて、通信部選択部１０８により通信部１１０が選択され、プロセッサ内通信によって、制御モジュール１０１への通信が行われる。すなわち、やはり、被制御モジュール１０３の生成元のモジュール化プログラム自体は、特に通信方式や通信相手を関知せずに作成されても、通信識別子設定部１０７によって設定された通信識別子に基づく通信処理が行われることによって、適切に制御モジュール１０１との通信が行われる。
【００３７】
そこで、例えば、上記被制御モジュール１０３の生成元となったのと同じモジュール化プログラムに基づいて、制御モジュール１０２が被制御モジュール１０４を生成し、その被制御モジュール１０４が制御モジュール１０２と通信する場合でも、やはり同様に通信識別子設定部１０７によって設定された通信識別子に基づいて、適切に通信が行われる。
【００３８】
さらに、例えば、他のモジュール実行装置２００内の制御モジュール２０１がモジュール実行装置１００内に被制御モジュールを生成した場合には、制御モジュール２０１のモジュール番号とモジュール実行装置２００のプロセッサ番号とから構成される通信識別子が被制御モジュールに対して設定され、これに基づいて、やはり、その被制御モジュールから通信部１０９を介した制御モジュール２０１への通信が適切に行われる。
【００３９】
したがって、同一または異なるモジュール実行装置における種々の制御モジュールによって被制御モジュールが生成される場合や種々の通信方式が適用される場合などでも、実際の通信相手や通信方式を意識することなく、同一の通信手続きを有する被制御モジュール用のモジュール化プログラムを作成して（通信処理に関する記述を変更することなく）、共通に用いることができ、同一の機器内や複数の機器間で、モジュール化したモジュール化プログラムの再利用性を容易に向上させることができる。また、システム構成の変更に柔軟に対応させることなども容易にできる。
【００４０】
また、上記のように通信識別子設定部１０７によって通信識別子が設定されるモジュール、すなわち、例えば被制御モジュール１０３の通信相手となるモジュールが、その被制御モジュール１０３を生成した制御モジュール１０１だけに限定されることによって、タスクテーブルの検索を不要にして処理負荷の軽減や処理の高速化を図ることが容易にできる。
【００４１】
なお、上記の説明では、通信方式がプロセッサ間通信とプロセッサ内通信との２種類である例を示したが、これに限らず、複数種類のインターフェイスやプロトコルに応じたプロセッサ内通信やプロセッサ間通信が選択的に用いられるようにしてもよい。すなわち、同一のプロセッサ内やプロセッサ間で、種々の条件に応じて通信方法が決定（変更）される場合などでも、やはりモジュール化したモジュール化プログラムを、通信処理に関する記述を変更することなく用いることができ、独立性と再利用性を向上させることができる。
【００４２】
また、通信識別子が通信相手のモジュール番号とプロセッサ番号とから構成され、プロセッサ番号によって通信方式が選択される例を示したが、これに限らず、直接通信方式を示す情報が通信識別子に含められるようにしてもよい。
【００４３】
また、例えば通信識別子にプロセッサ番号と通信方式番号とを含め、プロセッサ番号によってプロセッサ間通信またはプロセッサ内通信が示されるとともに、それぞれにおける通信方式が通信方式番号によって示されるようにしてもよい。また、プロセッサ間通信またはプロセッサ内通信と、通信方式との組み合わせが、通信方式番号等によって示されるようにしたりしてもよい。
【００４４】
さらに、例えばプロセッサが単一である場合などに、プロセッサ内通信を前提として、通信識別子にはプロセッサ番号は含まれないようにしたりしてもよい。
【００４５】
また、説明の便宜上、モジュール実行装置とプロセッサとが１：１に対応するとして説明したが、これに限るものではなく、例えば１つのモジュール実行装置が同種または異種のプロセッサによって構成されるマルチプロセッサ構成が用いられたりしてもよい。
【００４６】
また、通信識別子の設定は被制御モジュールの生成時に設定される例を示したが、生成される被制御モジュールがあらかじめ判る場合などには、システムの構成時等に設定されるなどしてもよい。
【産業上の利用可能性】
【００４７】
本発明にかかるモジュール間通信装置は、通信方式がモジュール間通信制御情報に基づいて柔軟に選択されるようにして、モジュール化プログラムを変更することなく再利用することが容易にできる効果を有し、制御モジュールと、上記制御モジュールによって生成され、制御される被制御モジュールとの間のモジュール間通信を行うモジュール間通信装置等として有用である。
【図面の簡単な説明】
【００４８】
【図１】本発明の実施形態のモジュール実行装置の構成を示すブロック図である。
【図２】同、モジュール間通信動作を示すフローチャートである。
【符号の説明】
【００４９】
１００            モジュール実行装置
１０１・１０２    制御モジュール
１０３・１０４    被制御モジュール
１０５            モジュール管理部
１０６・１０７    通信識別子設定部
１０８            通信部選択部
１０９・１１０    通信部
２００      モジュール実行装置
２０１      制御モジュール
２０９      通信部
【図１】
2008108123.tif 000003
【図２】
2008108123.tif 000004