(57)【要約】【課題】  プロセッサのソフトウェアモジュール間通信において、データ送受信時の割り込み発生頻度を削減する。【解決手段】  データ格納領域２１０と、データ送信の処理要求があるかないかを表す処理要求領域２２０とをメモリ３０上に確保し、データ送信部３００は、送信モジュール１０１からデータ送信の要求を受けて、データ格納領域２１０へデータを格納した後、処理要求領域２２０に未だ処理要求が書き込まれていない場合にのみ処理要求領域２２０に処理要求を書き込んで、処理要求受付部４００へ割り込みをかける。処理要求受付部４００は、処理要求領域２２０に処理要求が書き込まれていることを確認したうえ、当該処理要求をクリアしてデータ格納領域２１０へのデータ格納を受信モジュール１０２へ通知する。データ取得部５００は、受信モジュール１０２からのデータ受信の要求を受けて、データ格納領域２１０からデータを取得する。【選択図】  図２
2005352839.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサのソフトウェアモジュール間通信に用いられるデータ通信装置であって、
第１の状態又は第２の状態を示す識別子を持つデータ格納領域と、データ送信の処理要求があるかないかを表す処理要求領域とを有するメモリと、
少なくとも１つの送信モジュールからデータ送信の要求を受けて、前記データ格納領域の前記識別子が前記第２の状態を示す領域へデータを格納した後、当該識別子を前記第１の状態に変更し、かつ前記処理要求領域に未だ処理要求が書き込まれていない場合にのみ前記処理要求領域に処理要求を書き込んで通知信号を発生させるデータ送信部と、
前記通知信号を受けて、前記処理要求領域に処理要求が書き込まれていることを確認したうえ、当該処理要求をクリアして前記データ格納領域へのデータ格納を受信モジュールへ通知する処理要求受付部と、
前記受信モジュールからのデータ受信の要求を受けて、前記データ格納領域の前記識別子が前記第１の状態を示す領域からデータを取得した後、当該識別子を前記第２の状態に変更するデータ取得部とを備えたことを特徴とするデータ通信装置。
【請求項２】
請求項１記載のデータ通信装置において、
前記識別子の前記第１の状態がデータ読み出し許可であり、前記第２の状態がデータ読み出し不許可であることを特徴とするデータ通信装置。
【請求項３】
請求項１記載のデータ通信装置において、
前記識別子の前記第１の状態がデータ書き込み不許可であり、前記第２の状態がデータ書き込み許可であることを特徴とするデータ通信装置。
【請求項４】
請求項１記載のデータ通信装置において、
前記処理要求受付部は、
前記受信モジュールからデータ取得間隔の登録要求を受けて、前記データ取得間隔を前記受信モジュールへのデータ格納通知の間隔として登録し、前記データ格納領域へのデータ格納を前記データ格納通知の間隔に従って前記受信モジュールへ通知するタイマと、
前記通知信号を受けて、前記処理要求領域に処理要求が書き込まれていることを確認したうえ、当該処理要求をクリアして前記タイマへ動作開始を指示する処理要求判定部と、
前記受信モジュールよりデータ格納通知の停止要求を受けて、前記タイマへ動作停止を指示するタイマ制御部とを備えたことを特徴とするデータ通信装置。
【請求項５】
請求項１記載のデータ通信装置において、
前記処理要求受付部は、複数の送信モジュールから同じ受信モジュールへの処理要求が前記処理要求領域に書き込まれている場合、当該複数の処理要求を全てクリアして前記受信モジュールへ１度だけ送信モジュール情報とともに前記データ格納領域へのデータ格納を通知することを特徴とするデータ通信装置。
【請求項６】
プロセッサのソフトウェアモジュール間通信に用いられるデータ通信装置であって、
第１の状態又は第２の状態を示す識別子を持つデータ格納領域と、データ送信の処理要求があるかないかを表す処理要求領域と、通知データ量が登録されるリソース情報領域とを有するメモリと、
少なくとも１つの送信モジュールからデータ送信の要求を受けて、前記データ格納領域の前記識別子が前記第２の状態を示す領域へデータを格納した後、当該識別子を前記第１の状態に変更し、かつ前記データ格納領域の格納データ量が前記リソース情報領域に登録されている通知データ量以上であった場合にのみ前記処理要求領域に処理要求を書き込んで通知信号を発生させるデータ送信部と、
前記通知信号を受けて、前記処理要求領域に処理要求が書き込まれていることを確認したうえ、当該処理要求をクリアして前記データ格納領域へのデータ格納を受信モジュールへ通知する処理要求受付部と、
前記受信モジュールからのデータ受信の要求を受けて、前記データ格納領域の前記識別子が前記第１の状態を示す領域からデータを取得した後、当該識別子を前記第２の状態に変更するデータ取得部とを備えたことを特徴とするデータ通信装置。
【請求項７】
請求項６記載のデータ通信装置において、
前記リソース情報領域は、前記データ格納領域への格納済みデータの総量を表す情報を更に含み、
前記データ送信部は、少なくとも１つの送信モジュールからデータ送信の要求を受けて、前記データ格納領域の前記識別子が前記第２の状態を示す領域へデータを格納した後、当該識別子を前記第１の状態に変更し、かつ前記データ格納領域への格納済みデータの総量が前記リソース情報領域に登録されている通知データ量以上であった場合にのみ、前記格納済みデータの総量を表す情報を初期化したうえ前記処理要求領域に処理要求を書き込んで通知信号を発生させることを特徴とするデータ通信装置。
【請求項８】
プロセッサのソフトウェアモジュール間通信のためのデータ通信方法であって、
第１の状態又は第２の状態を示す識別子を持つデータ格納領域と、データ送信の処理要求があるかないかを表す処理要求領域とをメモリ上に確保するステップと、
少なくとも１つの送信モジュールからデータ送信の要求を受けて、前記データ格納領域の前記識別子が前記第２の状態を示す領域へデータを格納した後、当該識別子を前記第１の状態に変更し、かつ前記処理要求領域に未だ処理要求が書き込まれていない場合にのみ前記処理要求領域に処理要求を書き込んで通知信号を発生させるデータ送信ステップと、
前記通知信号を受けて、前記処理要求領域に処理要求が書き込まれていることを確認したうえ、当該処理要求をクリアして前記データ格納領域へのデータ格納を受信モジュールへ通知する処理要求受付ステップと、
前記受信モジュールからのデータ受信の要求を受けて、前記データ格納領域の前記識別子が前記第１の状態を示す領域からデータを取得した後、当該識別子を前記第２の状態に変更するデータ取得ステップとを備えたことを特徴とするデータ通信方法。
【請求項９】
プロセッサのソフトウェアモジュール間通信のためのデータ通信システムであって、
送信モジュールと受信モジュールとを実行するためのプロセッサ手段と、
第１の状態又は第２の状態を示す識別子を持つデータ格納領域と、データ送信の処理要求があるかないかを表す処理要求領域とを有するメモリと、
前記送信モジュールからデータ送信の要求を受けて、前記データ格納領域の前記識別子が前記第２の状態を示す領域へデータを格納した後、当該識別子を前記第１の状態に変更し、かつ前記処理要求領域に未だ処理要求が書き込まれていない場合にのみ前記処理要求領域に処理要求を書き込んで通知信号を発生させるデータ送信部と、
前記通知信号を受けて、前記処理要求領域に処理要求が書き込まれていることを確認したうえ、当該処理要求をクリアして前記データ格納領域へのデータ格納を前記受信モジュールへ通知する処理要求受付部と、
前記受信モジュールからのデータ受信の要求を受けて、前記データ格納領域の前記識別子が前記第１の状態を示す領域からデータを取得した後、当該識別子を前記第２の状態に変更するデータ取得部とを備えたことを特徴とするデータ通信システム。
【請求項１０】
プロセッサのソフトウェアモジュール間通信のためのデータ通信プログラムであって、
第１の状態又は第２の状態を示す識別子を持つデータ格納領域と、データ送信の処理要求があるかないかを表す処理要求領域とをメモリ上に確保する機能と、
少なくとも１つの送信モジュールからデータ送信の要求を受けて、前記データ格納領域の前記識別子が前記第２の状態を示す領域へデータを格納した後、当該識別子を前記第１の状態に変更し、かつ前記処理要求領域に未だ処理要求が書き込まれていない場合にのみ前記処理要求領域に処理要求を書き込んで通知信号を発生させるデータ送信機能と、
前記通知信号を受けて、前記処理要求領域に処理要求が書き込まれていることを確認したうえ、当該処理要求をクリアして前記データ格納領域へのデータ格納を受信モジュールへ通知する処理要求受付機能と、
前記受信モジュールからのデータ受信の要求を受けて、前記データ格納領域の前記識別子が前記第１の状態を示す領域からデータを取得した後、当該識別子を前記第２の状態に変更するデータ取得機能とをコンピュータに実行させるデータ通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサのソフトウェアモジュール（以下、単にモジュールという。）間通信に用いられるデータ通信装置に関するものである。
【背景技術】
【０００２】
従来のモジュール間データ通信において、送信モジュールが受信モジュールとの間で取り決めた共有メモリのデータ領域へデータを書き込み、受信モジュールへ割り込みをかけ、割り込みによって起動された受信モジュールが割り込み要求レジスタの値より送信モジュールを特定し、受信モジュールが共有メモリからデータを取得した後、送信モジュールとの間で取り決めた共有メモリの終了情報格納領域へ受信モジュールがサービス結果の通知（処理完了通知）を書き込むことで、モジュール間データ通信を実現しているものがあった（例えば、特許文献１参照）。
【特許文献１】特開平５−２１６７９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記従来技術によるデータ通信においては、送信モジュールが受信モジュールへデータを送信するたびに毎回受信モジュールへの割り込みが発生するので、連続的にデータを送信したい場合、割り込みによるオーバーヘッドが大きいという課題があった。また、送信モジュールは、受信モジュールによってデータが取得され、処理完了通知が共有メモリに書き込まれるまで次のデータを送信することができず、受信モジュールのデータ取得処理が遅れた場合、送信モジュールの処理にも遅延を生じるという課題があった。
【０００４】
本発明の目的は、データ送受信時における割り込みの発生頻度を削減したデータ通信装置を提供することにある。
【０００５】
本発明の他の目的は、送信モジュールと受信モジュールとが非同期に動作する場合においても、互いのモジュールの動作に影響を与えないデータ通信を実現するデータ通信装置を提供することにある。
【課題を解決するための手段】
【０００６】
前記課題を解決するために、本発明の第１のデータ通信装置は、第１の状態又は第２の状態を示す識別子を持つデータ格納領域と、データ送信の処理要求があるかないかを表す処理要求領域とを有するメモリと、少なくとも１つの送信モジュールからデータ送信の要求を受けて、前記データ格納領域の前記識別子が前記第２の状態を示す領域へデータを格納した後、当該識別子を前記第１の状態に変更し、かつ前記処理要求領域に未だ処理要求が書き込まれていない場合にのみ前記処理要求領域に処理要求を書き込んで通知信号を発生させるデータ送信部と、前記通知信号を受けて、前記処理要求領域に処理要求が書き込まれていることを確認したうえ、当該処理要求をクリアして前記データ格納領域へのデータ格納を受信モジュールへ通知する処理要求受付部と、前記受信モジュールからのデータ受信の要求を受けて、前記データ格納領域の前記識別子が前記第１の状態を示す領域からデータを取得した後、当該識別子を前記第２の状態に変更するデータ取得部とを備えた構成を採用したものである。これにより、送信モジュールは受信モジュールのデータ取得処理のタイミングに影響されず、連続してデータを送信可能であり、処理要求領域に処理要求がある場合には通知信号を重ねて発生させないので、受信モジュールの処理が通信処理要求の割り込み処理により中断される回数を削減することができる。
【０００７】
前記第１のデータ通信装置においては、前記識別子をデータ読み出し許可又はデータ読み出し不許可を表すものとして使用し、送信モジュールは前記識別子によりデータ読み出し不許可とされるデータ格納領域へデータを格納し、受信モジュールは前記識別子によりデータ読み出し許可とされるデータ格納領域からデータを取得する。これにより、例えばプロセッサバスの特別な排他制御なくデータ格納領域へ排他的にアクセスすることが可能となる。
【０００８】
更に、前記第１のデータ通信装置の前記処理要求受付部を、前記受信モジュールからデータ取得間隔の登録要求を受けて、前記データ取得間隔を前記受信モジュールへのデータ格納通知の間隔として登録し、前記データ格納領域へのデータ格納を前記データ格納通知の間隔に従って前記受信モジュールへ通知するタイマと、前記通知信号を受けて、前記処理要求領域に処理要求が書き込まれていることを確認したうえ、当該処理要求をクリアして前記タイマへ動作開始を指示する処理要求判定部と、前記受信モジュールよりデータ格納通知の停止要求を受けて、前記タイマへ動作停止を指示するタイマ制御部とから構成すれば、前記受信モジュールが一定間隔でデータを取得できる。
【０００９】
また、前記第１のデータ通信装置の前記処理要求受付部は、複数の送信モジュールから同じ受信モジュールへの処理要求が前記処理要求領域に書き込まれている場合、当該複数の処理要求を全てクリアして前記受信モジュールへ１度だけ送信モジュール情報とともに前記データ格納領域へのデータ格納を通知するものとする。これにより、受信モジュールへのデータ格納通知の回数を減らし、受信モジュールが通信処理要求の割り込み処理により中断される回数を更に削減する。
【００１０】
また、本発明の第２のデータ通信装置は、第１の状態又は第２の状態を示す識別子を持つデータ格納領域と、データ送信の処理要求があるかないかを表す処理要求領域と、通知データ量が登録されるリソース情報領域とを有するメモリと、少なくとも１つの送信モジュールからデータ送信の要求を受けて、前記データ格納領域の前記識別子が前記第２の状態を示す領域へデータを格納した後、当該識別子を前記第１の状態に変更し、かつ前記データ格納領域の格納データ量が前記リソース情報領域に登録されている通知データ量以上であった場合にのみ前記処理要求領域に処理要求を書き込んで通知信号を発生させるデータ送信部と、前記通知信号を受けて、前記処理要求領域に処理要求が書き込まれていることを確認したうえ、当該処理要求をクリアして前記データ格納領域へのデータ格納を受信モジュールへ通知する処理要求受付部と、前記受信モジュールからのデータ受信の要求を受けて、前記データ格納領域の前記識別子が前記第１の状態を示す領域からデータを取得した後、当該識別子を前記第２の状態に変更するデータ取得部とを備えた構成を採用したものである。これにより、受信モジュールの処理が通信処理要求の割り込み処理により中断される回数を削減することができる。
【００１１】
また、前記第２のデータ通信装置において、前記リソース情報領域は前記データ格納領域への格納済みデータの総量を表す情報を更に含み、前記データ送信部は、少なくとも１つの送信モジュールからデータ送信の要求を受けて、前記データ格納領域の前記識別子が前記第２の状態を示す領域へデータを格納した後、当該識別子を前記第１の状態に変更し、かつ前記データ格納領域への格納済みデータの総量が前記リソース情報領域に登録されている通知データ量以上であった場合にのみ、前記格納済みデータの総量を表す情報を初期化したうえ前記処理要求領域に処理要求を書き込んで通知信号を発生させることとしてもよい。
【発明の効果】
【００１２】
本発明による第１の効果は、データ送信時の送信モジュールから受信モジュールへの通知回数が削減されるということである。これにより、通信処理要求の割り込み処理により受信モジュール及び他のモジュールの処理が中断される回数を削減できるようになる。
【００１３】
本発明による第２の効果は、送信モジュールと受信モジュールとが非同期に動作する場合において、互いのモジュールの動作に影響を与えないということである。データ格納領域は、送信データとデータの読み出し許可又は不許可を示す識別子とを含み、送信モジュールは、複数のデータを任意のタイミングでデータ格納領域に格納可能であり、受信モジュールは、データ受信の要求を受けてデータ読み出し許可を表す識別子の付いたデータを任意のタイミングで取得可能であるので、送信モジュールと受信モジュールとの動作タイミングが異なる場合や受信モジュールの割り込み応答性が低い場合でも、いずれのモジュールも待たされることがなくなる。
【発明を実施するための最良の形態】
【００１４】
図１は、本発明に係るデータ通信システムの構成例を示している。図１のシステムは、２つのプロセッサ１０，２０のソフトウェアモジュール間双方向通信を可能にすべく、両プロセッサ１０，２０の間にメモリ３０を介在させたものである。一方のプロセッサ（プロセッサＡ）１０は、プロセッサコア１１と、送信インターフェイス（送信ＩＦ）１２と、受信インターフェイス（受信ＩＦ）１３とを備えている。他方のプロセッサ（プロセッサＢ）２０もまた、プロセッサコア２１と、送信ＩＦ２２と、受信ＩＦ２３とを備えている。このシステムによれば、一方のプロセッサ１０が実行する複数のモジュールと、他方のプロセッサ２０が実行する複数のモジュールとの間の双方向通信を達成できる。なお、メモリ３０を介して３以上のプロセッサを接続することとしてもよい。
【００１５】
以下、図１のシステムにおけるソフトウェアモジュール間のデータ通信装置について、５つの実施形態を説明する。
【００１６】
《第１の実施形態》
図２は、本発明に係るデータ通信装置の第１の実施形態を示している。ここでは、図１中の一方のプロセッサコア１１が実行する送信モジュール（モジュール１）１０１から、他方のプロセッサコア２１が実行する受信モジュール（モジュール２）１０２へデータを送信するものとしている。ここに、送信モジュール１０１と受信モジュール１０２とは各々複数のモジュールを含んでいる。送信ＩＦ１２はデータ送信部３００を、受信ＩＦ２２は処理要求受付部４００及びデータ取得部５００をそれぞれ有する。メモリ３０には、モジュール間で送受信するデータを格納するためのデータ格納領域２１０と、データが格納されたことを通知するための処理要求領域２２０とが確保される。
【００１７】
データ送信部３００は、データ格納領域２１０へデータを格納してデータ通信処理要求を出す。処理要求受付部４００は、データ送信部３００からのデータ通信処理要求を受けてデータ格納領域２１０へのデータ格納を受信モジュール１０２へ通知する。データ取得部５００は、データ格納領域２１０よりデータを取得して受信モジュール１０２へ引き渡す。
【００１８】
データ格納領域２１０は、送信モジュール１０１と受信モジュール１０２とが各々含んでいる複数のモジュールの組み合わせごとに専用の領域を確保し、その構造は、送信データを書き込む領域と、該送信データの書き込み領域が読み出し許可状態か否かを示す識別子とを含むものである。図２に示すデータ通信装置においては、送信モジュール１０１から受信モジュール１０２へのデータ送信用データ格納領域２１１が確保される。
【００１９】
処理要求領域２２０は、データ格納領域２１０の送信モジュール１０１と受信モジュール１０２との組み合わせごとの専用のデータ格納領域についてのデータ通信処理要求（ＲＥＱ）を表す。例えば、データ受信要求があるデータ格納領域２１０のポインタを要求発生時系列に保持するキューであってもよい。
【００２０】
図２において矢印は制御の流れを示す。モジュール１０１は、データを送信する場合、データ送信部３００へ送信先モジュール情報と送信データを含む送信要求とを行う（Ｓ１）。データ送信部３００は、モジュール１０１より送信データとモジュール１０２へのデータ送信要求を受けると（Ｓ１）、データ格納領域２１１へ送信データを格納し（Ｓ２）、処理要求領域２２０を調べ（Ｓ３）、データ格納領域２１１に対応する処理要求２２１がない場合、処理要求領域２２０へデータ格納領域２１１に対応する処理要求２２１を書き込み（Ｓ４）、処理要求受付部４００へ割り込みをかける（Ｓ５）。ただし、データ格納領域２１１に対応する処理要求２２１が既にあった場合は、データ送信部３００は処理要求領域２２０へ処理要求２２１を書き込まない。
【００２１】
処理要求受付部４００は、データ送信部３００からの割り込みを受けて（Ｓ５）、処理要求領域２２０の処理要求を判定し（Ｓ６）、処理要求２２１がある場合、処理要求２２１をクリアして（Ｓ７）、モジュール１０２へモジュール１０１からのデータ受信の通知を行う（Ｓ８）。受信モジュール１０２は、モジュール１０１からのデータ受信の通知を受けた場合（Ｓ８）、データ取得部５００へモジュール１０１からモジュール１０２への送信データの受信要求を行い、データを取得する処理を繰り返し（Ｓ９）、データ取得部５００よりデータ格納領域２１１の読み出し許可データなしを受けた場合には処理を終了する。データ取得部５００は、モジュール１０１からの送信データ受信要求をモジュール１０２より受けると（Ｓ９）、データ格納領域２１１からデータを取得し（Ｓ１０）、取得したデータをモジュール１０２へ引き渡す（Ｓ１１）。ただし、データ格納領域２１１に読み出し許可のデータがない場合、モジュール１０２へ読み出し許可データなしを通知する（Ｓ１１）。
【００２２】
図３は、図２のデータ通信装置の動作を示している。図２のデータ通信装置を用いたデータ通信においては、データ送信部３００で、処理要求領域２２０に処理要求２２１がある場合には処理要求受付部４００へ重ねて通信処理要求を行わないので（Ｓ３２）、モジュール２の処理が通信処理要求の割り込み処理により中断される回数が削減され、連続的にデータ通信が発生する場合の処理性能が高くなる。更に、本発明のデータ通信装置によるデータ通信の場合、モジュール１はモジュール２がデータを取得することを待たずに、次のデータを送信することが可能となり（Ｓ３１）、モジュール１の処理はモジュール２のデータ取得処理のタイミングに影響されない（Ｓ３３）。
【００２３】
図４は、図２中のデータ格納領域２１０の構成例を示している。データ格納領域２１０は、図４に示すように、送信データを格納するためのデータ領域と該データ領域の読み出し可否を示す識別子とを含むデータバッファ４２３１〜４２３ｎが、識別子に設定された読み出し許可を示す次のデータバッファへのポインタによって連結され、末尾のデータバッファ４２３ｎの識別子４２４ｎは読み出し不許可を示す特定の値（例えば０）とするデータバッファ列と、ｎ個のデータバッファ４２３１〜４２３ｎのうち先頭のデータバッファ４２３１を指すポインタ４２１０（以下、トップと呼ぶ。）と、末尾のデータバッファ４２３ｎを指すポインタ４２２０（以下、ボトムと呼ぶ。）とで構成される。
【００２４】
図５は、図４のデータ格納領域２１０を採用した場合のデータ格納手順を示している。図５によれば、データが格納されていないデータバッファＡを確保して（手順５００１）、識別子を０に設定し（手順５００２）、ボトムの値を一時保存領域に保存し（手順５００３）、ボトムをデータバッファＡへのポインタに変更して（手順５００４）、一時保存領域が指すデータバッファＢのデータ領域へデータを格納し（手順５００５）、最後にデータバッファＢの識別子にデータバッファＡへのポインタを設定することで、データバッファＢのデータ領域を読み出し許可にする（手順５００６）。なお、手順５００３は手順５００４の前であればどの時点で行ってもよく、手順５００５の後に手順５００４を行ってもよい。
【００２５】
図６（ａ）は手順５００１と手順５００２が終了した時点でのデータ格納領域２１０の状態を示し、図６（ｂ）は手順５００３〜５００５が終了した時点のデータ格納領域２１０の状態を示し、図６（ｃ）はデータ格納の終了時点でのデータ格納領域２１０の状態を示す。
【００２６】
図７は、図４のデータ格納領域２１０を採用した場合のデータ取得手順を示している。図７によれば、トップが指すデータバッファＴの識別子を判定し（手順７００１）、識別子が読み出し許可を示している場合、トップが指すデータバッファＴのデータ領域からデータを取得し（手順７００２）、トップをデータバッファＴの識別子の値に変更（手順７００３）した後、データバッファＴを解放する（手順７００４）。
【００２７】
図８（ａ）はデータ格納領域２１０にデータが２つ格納されている状態で手順７００１を実行する前のデータ格納領域２１０の状態を示し、図８（ｂ）は手順７００１〜７００３が終了した時点でのデータ格納領域２１０の状態を示し、図８（ｃ）は手順７００４の終了時点でのデータ格納領域２１０の状態を示す。
【００２８】
なお、データバッファは、データ領域の代わりに送信データの先頭ポインタと送信データのサイズを書き込むための領域を持つものであってもよい。
【００２９】
また、識別子は読み出し許可又は読み出し不可を示すフラグで、データバッファは次のデータバッファを指すポインタを格納する領域を識別子と別に持つものであってもよい。
【００３０】
図９は、図２中のデータ格納領域２１０の他の構成例を示している。データ格納領域２１０は、図９のように連続したデータ領域９０５１〜９０５ｎと、前記データ領域の先頭９０５１を指すデータ領域ポインタ（Ｐ）９０１０と、データ領域９０５１〜９０５ｎの全体の大きさＳを保持するデータ領域サイズ（Ｓ）９０２０と、読み出し位置指示子（Ｒ）９０３０と、書き込み位置指示子（Ｗ）９０４０とを持ち、読み出し位置指示子（Ｒ）から書き込み位置指示子（Ｗ）までの領域を読み出し許可領域とし、読み出し許可領域以外を書き込み許可領域として、データを格納する場合は、書き込み位置指示子（Ｗ）の指す位置からデータを書き込み、データ書き込みの終了後に書き込み位置指示子（Ｗ）をデータの末尾へ移動し、データを取得する場合は、読み出し位置指示子（Ｒ）の指す位置からデータを読み出し、データ書き込み指示子（Ｗ）の手前の任意の位置までデータを読み出した後、読み出し位置指示子（Ｒ）を未取得データ領域の先頭を指すように更新するものである。
【００３１】
データの書き込み及び読み出しは同一方向に向かって行い、例えば９０５１から９０５ｎへ向かって行うものとした場合、データ領域９０５ｎまで到達したら、データ領域９０５１より書き込み及び読み出しを再開する。読み出し位置指示子（Ｒ）と書き込み位置指示子（Ｗ）とが同じ位置を指す場合にデータ領域にデータがあるのかないのかを判断するために、読み出し位置指示子（Ｒ）と書き込み位置指示子（Ｗ）とが同じ位置を指す状態はデータ領域に読み出し許可データなしを示すものとし、データ書き込みは、読み出し位置指示子（Ｒ）の直前より１データ単位手前までとするとよい。
【００３２】
図１０は、図９のデータ格納領域２１０を採用した場合のデータ格納手順を示している。図１０によれば、まず書き込み位置指示子（Ｗ）と読み出し位置指示子（Ｒ）とを確認し（手順１０００１）、データ領域へ書き込み許可と判断した場合、書き込み位置指示子（Ｗ）の指す位置よりデータを格納して（手順１０００２）、格納したデータの末尾、すなわち次にデータ格納可能な位置に書き込み位置指示子（Ｗ）を更新する（手順１０００３）。
【００３３】
図１１（ａ）は、データ領域９０５２〜９０５５にデータが格納されている状態のデータ格納領域２１０を示す。読み出し位置指示子（Ｒ）は位置９０５２を指し、書き込み位置指示子（Ｗ）は位置９０５５を指す。図１１（ｂ）は、図１０における手順１０００１〜１０００２が終了した時点でのデータ格納領域２１０の状態を示す。データ格納領域９０５５〜９０５７のデータが新たに格納されたデータである。図１１（ｃ）は、手順１０００３の終了時点でのデータ格納領域２１０の状態を示す。
【００３４】
図１２は、図９のデータ格納領域２１０を採用した場合のデータ取得手順を示している。図１２によれば、まず書き込み位置指示子（Ｗ）と読み出し位置指示子（Ｒ）とを確認し（手順１２００１）、データ領域から読み出し許可と判断した場合、読み出し位置指示子（Ｒ）の指す位置より書き込み位置指示子（Ｗ）の指す位置の手前の任意の位置までデータを取得して（手順１２００２）、読み出し位置指示子（Ｒ）を未読み出しのデータの先頭ポインタに更新する（手順１２００３）。
【００３５】
図１３（ａ）は、データ領域の９０５２〜９０５７にデータが格納されている状態のデータ格納領域２１０を示す。読み出し位置指示子（Ｒ）は位置９０５２を指し、書き込み位置指示子（Ｗ）は位置９０５７を指す。図１３（ｂ）は、図１２における手順１２００１〜１２００２が終了した時点でのデータ格納領域２１０の状態を示す。データ格納領域９０５２〜９０５４のデータが、読み出されたデータである。図１３（ｃ）は、手順１２００３の終了時点でのデータ格納領域２１０の状態を示す。
【００３６】
《第２の実施形態》
図１４は、本発明に係るデータ通信装置の第２の実施形態を示している。図１４のデータ通信装置は、データ送信部３００からのデータ通信処理要求を受けて、予め登録されたデータ取得間隔ごとに、受信モジュール１０２からデータ格納通知の停止要求（Ｓ１２）を受けるまで、受信モジュール１０２へデータ格納領域２１０へのデータ格納を繰り返し通知する処理要求受付部４００ａを有する。
【００３７】
図１５は、図１４中の処理要求受付部４００ａの詳細構成例を示している。処理要求受付部４００ａは、図１５に示すように、受信モジュール１０２からデータ取得間隔の登録要求を受けて、このデータ取得間隔を受信モジュール１０２へのデータ格納通知の間隔として登録し、このデータ格納通知の間隔に従って受信モジュール１０２へデータ格納領域２１１へのデータ格納を通知するタイマ４０３と、データ送信部３００からのデータ通信処理要求を受けて、タイマ４０３へ動作開始を指示する処理要求判定部４０１と、受信モジュール１０２よりデータ格納通知の停止要求を受けて、タイマ４０３へ動作停止を指示するタイマ制御部４０２とからなる。
【００３８】
タイマ４０３は、受信モジュール１０２よりデータ取得間隔の登録要求を受けると（Ｓ０）、該データ取得間隔を当該受信モジュール１０２へのデータ格納通知間隔として保持する。データ送信部３００は、モジュール１０１より送信データとモジュール１０２へのデータ送信要求を受けると（Ｓ１）、データ格納領域２１１へ送信データを格納し（Ｓ２）、処理要求領域２２０を調べ（Ｓ３）、データ格納領域２１１に対応する処理要求２２１がない場合、処理要求領域２２０へデータ格納領域２１１に対応する処理要求２２１を書き込み（Ｓ４）、処理要求受付部４００へ割り込みをかける（Ｓ５）。ただし、データ格納領域２１１に対応する処理要求２２１が既にあった場合は、データ送信部３００は処理要求領域２２０へ処理要求２２１を書き込まない。
【００３９】
処理要求判定部４０１は、データ送信部３００からの割り込みを受けて（Ｓ５）、処理要求領域２２０の処理要求を判定し（Ｓ６）、処理要求２２１がある場合、処理要求２２１をクリアして（Ｓ７）、タイマ４０３へデータ格納領域２１１用動作開始を指示する（Ｓ８ａ）。タイマ４０３は、処理要求判定部４０１からデータ格納領域２１１用動作開始の指示を受けると（Ｓ８ａ）、計測を開始し、モジュール１０２へのデータ格納通知間隔に合わせてモジュール１０２へデータ格納通知を行う（Ｓ８）。モジュール１０２は、タイマ４０３よりデータ格納通知を受けると（Ｓ８）、データ取得部５００へデータの受信要求を行う（Ｓ９ａ）。モジュール１０２がモジュール１０１からのデータ格納通知を受けた場合（Ｓ８）、データ取得部５００へモジュール１０１からモジュール１０２への送信データの受信要求を行い、データを取得する（Ｓ１０，Ｓ１１）。データ取得部５００よりデータ格納領域２１１の読み出し許可データなしを受けた場合、モジュール１０２はタイマ制御部４０２へデータ格納通知停止を要求する（Ｓ１２）。一方、データ取得部５００は、モジュール１０２よりモジュール１０１からの送信データ受信要求を受けると（Ｓ９ａ）、データ格納領域２１１からデータを取得し（Ｓ１０）、モジュール１０２へ取得したデータを引き渡す（Ｓ１１）。ただし、データ格納領域２１１に読み出しが許可されているデータがない場合、モジュール１０２へ読み出し許可データなしを通知する（Ｓ１１）。
【００４０】
タイマ制御部４０２は、モジュール１０２よりデータ格納通知停止の要求を受けると（Ｓ１２）、タイマ４０３へデータ格納領域２１１用動作停止を指示する（Ｓ１２ａ）。タイマ４０３は、タイマ制御部４０２からデータ格納領域２１１用動作停止の指示を受けると（Ｓ１２ａ）、モジュール１０２へのデータ格納通知間隔の計測を終了し、モジュール１０２へのデータ格納通知を終了する。
【００４１】
図１４のデータ通信装置によれば、モジュール１０１のデータ送信タイミングに関わらず、モジュール１０２へ一定間隔でデータ格納通知を行うので、周期的に動作を開始しデータの処理を行うモジュール１０２との通信に特に有効である。
【００４２】
《第３の実施形態》
図１６は、本発明に係るデータ通信装置の第３の実施形態を示している。図１６のデータ通信装置は、データ送信部３００からのデータ通信処理要求を受け、複数のモジュール１０１，１０３から同一モジュール１０２への処理要求があった場合、受信モジュール１０２へのデータ格納の通知を送信元モジュール情報とともに１回行う処理要求受付部４００ｂを有する。
【００４３】
データ格納領域２１０は、送信モジュール１０１，１０３と受信モジュール１０２との組み合わせごとに専用の領域を確保し、その構造は、送信データを書き込む領域と該送信データの書き込み領域が読み出し許可状態か否かを示す識別子を含むものである。
【００４４】
処理要求領域２２０は、データ格納領域２１０の送信モジュール１０１，１０３と受信モジュール１０２との組み合わせごとの専用のデータ格納領域についてのデータ通信処理要求を表す。例えば、データ受信要求があるデータ格納領域のポインタを要求発生時系列に保持するキューであってもよい。
【００４５】
モジュール１０１，１０３は、データを送信する場合、データ送信部３００へ送信先モジュール情報と送信データを含む送信要求を行う（Ｓ１）。データ送信部３００は、モジュール１０１より送信データとモジュール１０２へのデータ送信要求を受けると（Ｓ１）、モジュール１０１からモジュール１０２へのデータ送信用データ格納領域２１１へ送信データを格納し（Ｓ２）、処理要求領域２２０を調べ（Ｓ３）、データ格納領域２１１に対応する処理要求２２１がない場合、処理要求領域２２０へデータ格納領域２１１に対応する処理要求２２１を書き込み（Ｓ４）、処理要求受付部４００ｂへ割り込みをかける（Ｓ５）。ただし、データ格納領域２１１に対応する処理要求２２１が既にあった場合は、データ送信部３００は処理要求領域２２０へ処理要求２２１を書き込まない。
【００４６】
データ送信部３００は、モジュール１０３より送信データとモジュール１０２へのデータ送信要求を受けると（Ｓ１）、モジュール１０３からモジュール１０２へのデータ送信用データ格納領域２１２へ送信データを格納し（Ｓ２）、処理要求領域２２０を調べ（Ｓ３）、データ格納領域２１２に対応する処理要求２２２がない場合、処理要求領域２２０へデータ格納領域２１２に対応する処理要求２２２を書き込み（Ｓ４）、処理要求受付部４００ｂへ割り込みをかける（Ｓ５）。ただし、データ格納領域２１２に対応する処理要求２２２が既にあった場合は、データ送信部３００は処理要求領域２２０へ処理要求２２２を書き込まない。
【００４７】
処理要求受付部４００ｂは、データ送信部３００からの割り込みを受けて（Ｓ５）、処理要求領域２２０の処理要求を判定し（Ｓ６）、同一モジュール１０２への処理要求が複数あった場合、例えばモジュール１０１からモジュール１０２への処理要求２２１と、モジュール１０３からモジュール１０２への処理要求２２２とがあった場合、処理要求２２１と処理要求２２２をクリアしてから（Ｓ７）、モジュール１０２へモジュール１０１とモジュール１０３からのデータ受信の通知を１度にまとめて行う（Ｓ８ａ）。
【００４８】
モジュール１０２は、処理要求受付部４００ｂよりデータ受信の通知を受けると（Ｓ８ａ）、データ取得部５００へデータの受信要求をデータ取得部５００がデータ格納領域の読み出し許可データなしを通知するまで繰り返し行う（Ｓ９）。
【００４９】
モジュール１０２がモジュール１０１とモジュール１０３からのデータ受信の通知を受けた場合（Ｓ８ａ）、データ取得部５００へモジュール１０１からモジュール１０２への送信データの受信要求を行い、データを取得する処理を繰り返し（Ｓ９）、データ取得部５００よりデータ格納領域２１１の読み出し許可データなしを受けた場合、繰り返し処理（Ｓ９）を終了する。また、モジュール１０３からモジュール１０２への送信データの受信要求を行い、データを取得する処理を繰り返し（Ｓ９）、データ取得部５００よりデータ格納領域２１２の読み出し許可データなしを受けた場合には処理を終了する。
【００５０】
データ取得部５００は、モジュール１０２よりモジュール１０１からの送信データ受信要求を受けると（Ｓ９）、データ格納領域２１１からデータを取得し（Ｓ１０）、モジュール１０２へ取得したデータを引き渡す（Ｓ１１）。ただし、データ格納領域２１１に読み出し許可のデータがない場合、モジュール１０２へ読み出し許可データなしを通知する（Ｓ１１）。同様に、データ取得部５００は、モジュール１０２よりモジュール１０３からの送信データ受信要求を受けると（Ｓ９）、データ格納領域２１２からデータを取得し（Ｓ１０）、モジュール１０２へ取得したデータを引き渡す（Ｓ１１）。ただし、データ格納領域２１２に読み出し許可のデータがない場合、モジュール１０２へ読み出し許可データなしを通知する（Ｓ１１）。
【００５１】
図１６のデータ通信装置によれば、複数のモジュール１０１，１０３が同一モジュール１０２へデータを送信した場合に、データ格納の通知信号の発生を１回に抑えることができるので、割り込みによる処理の中断の抑制に有効である。
【００５２】
《第４の実施形態》
図１７は、本発明に係るデータ通信装置の第４の実施形態を示している。図１７のデータ通信装置におけるメモリは、データ格納領域２１０と処理要求領域２２０とに加えて、モジュール１０２へデータ格納通知を行うタイミングに対応したデータ量（Ｄ）を保持するリソース情報領域２３０にも用いられる。
【００５３】
データ格納領域２１０は、送信モジュール１０１と受信モジュール１０２との組み合わせごとに専用の領域を確保し、その構造は、送信データを書き込む領域と該送信データの書き込み領域が読み出し許可状態か否かを示す識別子とを含むものであり、例えば、図９に示すものである。図９に示す構造のデータ格納領域２１０において、読み出し許可データ量は書き込み位置指示子（Ｗ）と読み出し位置指示子（Ｒ）との差分で求めることができる。
【００５４】
リソース情報領域２３０は、各モジュールの通信路ごとの通知データ量情報（Ｄ）を含み、モジュール１０２よりリソース情報領域２３０へのデータ取得間隔登録要求を受けると（Ｓ０ａ）、該データ取得間隔をモジュール１０２へのデータ格納通知間隔として保持する。例えば、モジュール１０２よりリソース情報領域２３０へのデータ取得間隔登録要求を受けた（Ｓ０ａ）場合、該データ取得間隔をモジュール１０２へのデータ格納通知間隔として通知データ量２３１を保持する。
【００５５】
モジュール１０１は、データを送信する場合、データ送信部３００へ送信先モジュール情報と送信データを含む送信要求を行う（Ｓ１）。データ送信部３００ａは、モジュール１０１より送信データとモジュール１０２へのデータ送信要求を受けると（Ｓ１）、データ格納領域２１１へ送信データを格納し（Ｓ２）、リソース情報領域２３０のモジュール１０２への通知データ量２３１を判定し（Ｓ３ａ）、データ格納領域２１１のデータ量と比較して、データ格納領域２１１のデータ量が通知データ量２３１以上である場合、処理要求領域２２０へデータ格納領域２１１に対応する処理要求２２１を書き込み（Ｓ４）、処理要求受付部４００へ割り込みをかける（Ｓ５）。ただし、データ格納領域２１１のデータ量が通知データ量２３１未満である場合は、データ送信部３００ａは処理要求領域２２０へ処理要求２２１を書き込まない。
【００５６】
処理要求受付部４００は、データ送信部３００からの割り込みを受けて（Ｓ５）、処理要求領域２２０の処理要求を判定し（Ｓ６）、処理要求２２１がある場合、処理要求２２１をクリアして（Ｓ７）、モジュール１０２へモジュール１０１からのデータ受信の通知を行う（Ｓ８）。モジュール１０２は、処理要求受付部４００よりデータ受信の通知を受けると（Ｓ８）、データ取得部５００へデータの受信要求をデータ取得部５００が該データ格納領域の読み出し許可データなしを通知するまで繰り返し行う（Ｓ９）。モジュール１０２がモジュール１０１からのデータ受信の通知を受けた場合（Ｓ８）、データ取得部５００へモジュール１０１からモジュール１０２への送信データの受信要求を行い、データを取得する処理を繰り返し（Ｓ９）、データ取得部５００よりデータ格納領域２１１の読み出し許可データなしを受けた場合には処理を終了する。データ取得部５００は、モジュール１０２よりモジュール１０１からの送信データ受信要求を受けると（Ｓ９）、データ格納領域２１１からデータを取得し（Ｓ１０）、モジュール１０２へ取得したデータを引き渡す（Ｓ１１）。ただし、データ格納領域２１１に読み出しが許可されているデータがない場合、モジュール１０２へ読み出し許可データなしを通知する（Ｓ１１）。
【００５７】
図１７のデータ通信装置によれば、モジュール１０２はデータ受信の通知を受けるまでスリープし、データ受信の通知を受けてから一気にデータを取得し処理できるので、モジュール１０２がモジュール１０１に対して十分高速に動作する場合、消費電力の抑制に効果的である。
【００５８】
《第５の実施形態》
図１８は、本発明に係るデータ通信装置の第５の実施形態を示している。図１８のデータ通信装置におけるメモリは、データ格納領域２１０と処理要求領域２２０とに加えて、モジュール１０２へデータ格納通知を行うタイミングに対応したデータ量（Ｄ）と送信データ総量（Ｔ）とを保持するリソース情報領域２３０ａにも用いられる。
【００５９】
データ格納領域２１０は、送信モジュール１０１と受信モジュール１０２との組み合わせごとに専用の領域を確保し、その構造は、送信データを書き込む領域と該送信データの書き込み領域が読み出し許可状態か否かを示す識別子とを含むものであり、例えば、図９に示すものである。
【００６０】
リソース情報領域２３０ａは、データ格納通知を行うデータ量の登録要求をモジュール１０２より受けた場合（Ｓ０ｂ）、該データ格納通知を行うデータ量をモジュール１０２へのデータ格納通知データ量２３１ａとしてリソース情報領域２３０ａに保持する。また、データ格納領域２１０における送信モジュール１０１と受信モジュール１０２との間の専用の領域ごとに、データ格納のたびに格納データ量を送信データ総量２３２に加算し、データ送信部３００ｂから送信データ総量クリアの要求を受けて、格納データ総量２３２を初期化する。
【００６１】
モジュール１０１は、データを送信する場合、データ送信部３００ｂへ送信先モジュール情報と送信データとを含む送信要求を行う（Ｓ１）。データ送信部３００ｂは、モジュール１０１より送信データとモジュール１０２へのデータ送信要求を受けると（Ｓ１）、データ格納領域２１１へ送信データを格納し（Ｓ２）、リソース情報領域２３０ａのデータ格納領域２１１への送信データ総量２３２に送信データのサイズを加算し（Ｓ３ｂ）、リソース情報領域２３０ａに保持されたモジュール１０２への通知データ量情報２３１ａと比較して、送信データ総量２３２が通知データ量２３１ａ以上である場合、送信データ総量２３２を初期化し（Ｓ３ｃ）、処理要求領域２２０へデータ格納領域２１１に対応する処理要求２２１を書き込み（Ｓ４）、処理要求受付部４００へ割り込みをかける（Ｓ５）。ただし、送信データ総量２３２が通知データ量情報２３１ａ未満である場合は、データ送信部３００ｂは処理要求領域２２０へ処理要求２２１を書き込まない。
【００６２】
処理要求受付部４００は、データ送信部３００ｂからの割り込みを受けて（Ｓ５）、処理要求領域２２０の処理要求を判定し（Ｓ６）、処理要求２２１がある場合、処理要求２２１をクリアして（Ｓ７）、モジュール１０２へモジュール１０１からのデータ受信の通知を行う（Ｓ８）。モジュール１０２がモジュール１０１からのデータ受信の通知を受けた場合（Ｓ８）、データ取得部５００へモジュール１０１からモジュール１０２への送信データの受信要求を行い、データを取得する処理を繰り返し（Ｓ９）、データ取得部５００よりデータ格納領域２１１の読み出し許可データなしを受けた場合には処理を終了する。データ取得部５００は、モジュール１０２よりモジュール１０１からの送信データ受信要求を受けると（Ｓ９）、データ格納領域２１１からデータを取得し（Ｓ１０）、モジュール１０２へ取得したデータを引き渡す（Ｓ１１）。ただし、データ格納領域２１１に読み出しが許可されているデータがない場合、モジュール１０２へ読み出し許可データなしを通知する（Ｓ１１）。
【００６３】
図１８のデータ通信装置によれば、モジュール１０２は通知データ量２３１ａとして設定したデータ量がデータ格納領域２１１へ格納されたときにデータ受信通知を受けるので、画像フレーム単位での処理が必要なマルチメディアストリームデータの通信などに特に有効である。
【産業上の利用可能性】
【００６４】
以上説明してきたとおり、本発明に係るデータ通信装置は、互いに独立して動作するモジュール間で連続的にデータを送受信する場合に、割り込みの回数を削減し処理の中断を抑えるので、モジュール間でのマルチメディアのストリームデータ通信に有用であり、携帯電話やＡＶ機器等の用途に応用できる。
【図面の簡単な説明】
【００６５】
【図１】本発明に係るデータ通信システムの構成例を示すブロック図である。
【図２】図１のシステムにおけるソフトウェアモジュール間のデータ通信装置の第１の実施形態を示すブロック図である。
【図３】図２のデータ通信装置の動作を示すタイムチャート図である。
【図４】図２中のデータ格納領域の構成例を示す概念図である。
【図５】図４のデータ格納領域を採用した場合のデータ格納手順を示すフローチャート図である。
【図６】（ａ）〜（ｃ）は図５のデータ格納手順を説明するための概念図である。
【図７】図４のデータ格納領域を採用した場合のデータ取得手順を示すフローチャート図である。
【図８】（ａ）〜（ｃ）は図７のデータ取得手順を説明するための概念図である。
【図９】図２中のデータ格納領域の他の構成例を示す概念図である。
【図１０】図９のデータ格納領域を採用した場合のデータ格納手順を示すフローチャート図である。
【図１１】（ａ）〜（ｃ）は図１０のデータ格納手順を説明するための概念図である。
【図１２】図９のデータ格納領域を採用した場合のデータ取得手順を示すフローチャート図である。
【図１３】（ａ）〜（ｃ）は図１２のデータ取得手順を説明するための概念図である。
【図１４】図１のシステムにおけるソフトウェアモジュール間のデータ通信装置の第２の実施形態を示すブロック図である。
【図１５】図１４中の処理要求受付部の詳細構成例を示すブロック図である。
【図１６】図１のシステムにおけるソフトウェアモジュール間のデータ通信装置の第３の実施形態を示すブロック図である。
【図１７】図１のシステムにおけるソフトウェアモジュール間のデータ通信装置の第４の実施形態を示すブロック図である。
【図１８】図１のシステムにおけるソフトウェアモジュール間のデータ通信装置の第５の実施形態を示すブロック図である。
【符号の説明】
【００６６】
１０，２０  プロセッサ
１１，２１  プロセッサコア
１２，２３  送信インターフェイス（送信ＩＦ）
１３，２２  受信インターフェイス（受信ＩＦ）
３０  メモリ
１０１，１０３  送信モジュール
１０２  受信モジュール
２１０  データ格納領域
２２０  処理要求領域
２３０，２３０ａ  リソース情報領域
３００，３００ａ，３００ｂ  データ送信部
４００，４００ａ，４００ｂ  処理要求受付部
４０１  処理要求判定部
４０２  タイマ制御部
４０３  タイマ
５００  データ取得部
【図１】
2005352839.tif 000003
【図２】
2005352839.tif 000004
【図３】
2005352839.tif 000005
【図４】
2005352839.tif 000006
【図５】
2005352839.tif 000007
【図６】
2005352839.tif 000008
【図７】
2005352839.tif 000009
【図８】
2005352839.tif 000010
【図９】
2005352839.tif 000011
【図１０】
2005352839.tif 000012
【図１１】
2005352839.tif 000013
【図１２】
2005352839.tif 000014
【図１３】
2005352839.tif 000015
【図１４】
2005352839.tif 000016
【図１５】
2005352839.tif 000017
【図１６】
2005352839.tif 000018
【図１７】
2005352839.tif 000019
【図１８】
2005352839.tif 000020