(57)【特許請求の範囲】
【請求項１】
第１のプロセッサと第２のプロセッサとの間での、メッセージの通行を制御するように構成されたシステムであって、
前記第１のプロセッサは、それぞれに固有のタスク識別子が割り当てられた複数の所定のタスクを実行するとともに、前記複数のタスクの１つのために、入力メッセージを生成するように構成されており、
前記入力メッセージは、前記第２のプロセッサが前記システムの１つ以上の周辺装置を制御するための入力命令と、前記第２のプロセッサへの入力命令が実行されるべき最小時間長さを示す入力期間とを含み、
前記第１のプロセッサから第２のプロセッサに向けられた前記入力メッセージを受信し、その受信された入力メッセージと、以前に受信された入力メッセージとに基づき、メッセージ履歴を保持するように構成されたメッセージ制御モジュールを備え、
前記メッセージ履歴は、システムのいずれの周辺装置がオンとなり、及び複数のタスクの中のいずれのタスクが、前記周辺装置をオンさせることを要求したかを示すものであり、前記メッセージ制御モジュールは、前記メッセージ履歴に基づいて、前記第２のプロセッサのための出力命令と、出力期間とを含む出力メッセージを生成するように構成されており、
前記第２のプロセッサは、前記出力メッセージを受信し、前記出力期間に相当する時間長さの間、前記出力命令を実行するように構成されていることを特徴とするシステム。
【請求項２】
前記メッセージ履歴は複数の周辺フィールドを含み、各々の周辺フィールドは、前記周辺装置に１対１に対応し、前記周辺装置がオンされるべきときには、前記周辺フィールドが、前記周辺装置がオンされるべきことを示すことを特徴とする請求項１に記載のシステム。
【請求項３】
各々の周辺フィールドは、関連づけられた要求タスクアレイを有し、その要求タスクアレイは、複数のタスクの中のいずれのタスクが、現在、対応する周辺装置をオンすることを要求しているかを個々のタスクごとに示す要素からなることを特徴とする請求項２に記載のシステム。
【請求項４】
前記要求タスクアレイの１つ以上の要素が、現在、対応する周辺装置をオンすることを要求している場合、その要求タスクアレイに関連付けられる周辺フィールドが、前記周辺装置がオンされるべきことを示すことを特徴とする請求項３に記載のシステム。
【請求項５】
前記第２のプロセッサにより最も新しく受信される出力メッセージの、残された実行期間を示すタイマを備え、
前記タイマは、新しい出力メッセージが前記第２のプロセッサに送信されるタイミングで更新されることを特徴とする請求項１に記載のシステム。
【請求項６】
前記メッセージ制御モジュールは、前記タイマにより示される残りの実行期間と、前記入力メッセージの入力期間とのいずれが長いかを判定し、その長い方の期間に等しくなるように前記出力期間をセットすることを特徴とする請求項５に記載のシステム。
【請求項７】
前記メッセージ制御モジュールは、前記タイマが残りの実行期間がないことを示した場合、前記周辺装置がオフとなることを示すように、前記メッセージ履歴の全ての値をセットすることを特徴とする請求項５に記載のシステム。
【請求項８】
第１のプロセッサと第２のプロセッサとの間での、メッセージの通行を制御するための方法であって、
前記第２のプロセッサは、第１のプロセッサによって実行される複数の所定のタスクのために、１つ以上の周辺装置を制御するものであり、
前記第２のプロセッサに向けられた、第１のプロセッサにおいて実行されている複数のタスクの１つに基づく入力メッセージを受信するステップを有し、
前記入力メッセージは、前記第２のプロセッサが、１つ以上の周辺装置を制御するための入力命令と、前記第２のプロセッサへの入力命令が実行されるべき最小時間長さを示す入力期間とを含み、
受信された入力メッセージと、それよりも以前に受信された入力メッセージとに基づき、メッセージ履歴を更新して保持するステップを有し、
前記メッセージ履歴は、システムのいずれの周辺装置がオンとなり、及び複数のタスクの中のいずれのタスクが、前記周辺装置をオンさせることを要求したかを示すものであり、
さらに、前記メッセージ履歴に基づいて、前記第２のプロセッサのための出力命令と、出力期間とを含む出力メッセージを生成するステップと、
前記第２のプロセッサに出力メッセージを送信するステップと、を有することを特徴とする方法。
【請求項９】
前記メッセージ履歴は複数の周辺フィールドを含み、各々の周辺フィールドは、前記周辺装置に１対１に対応し、前記周辺装置がオンされるべきときには、前記周辺フィールドが、前記周辺装置がオンされるべきことを示すことを特徴とする請求項８に記載の方法。
【請求項１０】
各々の周辺フィールドは、関連づけられた要求タスクアレイを有し、その要求タスクアレイは、複数のタスクの中のいずれのタスクが、現在、対応する周辺装置をオンすることを要求しているかを個々のタスクごとに示す要素からなることを特徴とする請求項９に記載の方法。
【請求項１１】
前記要求タスクアレイの１つ以上の要素が、現在、対応する周辺装置をオンすることを要求している場合、その要求タスクアレイに関連付けられる周辺フィールドに、前記周辺装置がオンされるべきことを示す印を記録するステップを有することを特徴とする請求項１０に記載の方法。
【請求項１２】
前記第２のプロセッサにより最も新しく受信される出力メッセージの、残された実行期間を、タイマを用いてカウントするステップを有することを特徴とする請求項８に記載の方法。
【請求項１３】
新しい出力メッセージが前記第２のプロセッサに送信されるタイミングで前記タイマのカウント値を更新するステップを有することを特徴とする請求項１２に記載の方法。
【請求項１４】
前記タイマにより示される残りの実行期間と、前記入力メッセージの入力期間とのいずれが長いかを判定し、その長い方の期間に等しくなるように前記出力期間をセットするステップを有することを特徴とする請求項１２に記載の方法。
【請求項１５】
前記タイマが残りの実行期間がないことを示した場合、前記周辺装置がオフとなることを示すように、前記メッセージ履歴の全ての値をセットするステップを有することを特徴とする請求項１２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第１のプロセッサと第２のプロセッサとの間での、メッセージの通行を制御するためのシステム及び方法に関する。
【背景技術】
【０００２】
多くの装置やシステムが、１つよりも多いプロセッサから構成され、それらは互いにシリアルに通信する。例えば、テレマティクス装置は、互いにシリアル通信を行う２つのプロセッサを有することがある。同様に、コンピューティングシステムにおける複数のプロセッサも、互いにシリアルに通信したりする。これらの構成において、第１のプロセッサは、例えば通信を実行するアプリケーション、ＧＰＳ受信機を制御するアプリケーション、オーディオビジュアルシステムを制御するアプリケーション、あるいは他のリソース集約的なアプリケーションなど複数のアプリケーションを実行する。第２のプロセッサは、装置の構成部品を管理して、第１のプロセッサをサポートする。例えば、第２のプロセッサは、周辺装置からのＩ／Ｏ信号を処理したり、第１のプロセッサのために周辺装置を制御したりする。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
概して、第２のプロセッサは、低電力プロセッサであり、第１のプロセッサからメッセージの形式で指示（命令）を受け取る。この場合に起こりうる１つの問題は、第１のプロセッサが、連続するメッセージの間に、僅か、数ミリ秒の時間を挟んで、多数のメッセージを第２のプロセッサに送信することである。それらのメッセージは、例えば１０秒間ミュートするなど、第２のプロセッサが要求された機能を実行すべき時間長さを示す期間を含むことがある。それらの期間は、しばしば、２以上の連続するメッセージの間の時間長さを超えることがある。第２のプロセッサは、通常、低電力プロセッサであり、コンピュータ的に第１のプロセッサほどの能力を有していないので、先のメッセージによる期間が満了する前に後のメッセージが受信された場合、先のメッセージが後のメッセージによって無効にされてしまう虞がある。従って、能力の高い（ハイエンド）プロセッサと能力の低い（ローエンド）プロセッサ間におけるより効率的かつ正確な通信を可能とするメッセージ設計の必要性がある。
【０００４】
上述した背景技術の説明は、全体として、本発明の背景を提示するとの目的のためのものである。出願時の公知技術としてみなされない説明はもちろん、この背景技術のセクションに記述された程度まで、本願発明者らによる探求により得られた成果は、明示的にも暗示的にも、本発明に対する公知技術として了承されたものではない。
【課題を解決するための手段】
【０００５】
１つの態様において、第１のプロセッサと第２のプロセッサとの間での、メッセージの通行を制御するように構成されたシステムが開示される。第１のプロセッサは、複数の所定のタスクを実行するように構成される。各々のタスクには、固有のタスク識別子が割り当てられる。第１のプロセッサは、さらに、それら複数のタスクの１つのために、入力メッセージを生成するように構成されている。入力メッセージは、第２のプロセッサが、システムの１つ以上の周辺装置を制御するための入力命令と、第２のプロセッサへの入力命令が実行されるべき最小時間長さを示す入力期間とを含む。本発明によるシステムは、さらに、第１のプロセッサから第２のプロセッサに向けられた入力メッセージを受信し、その受信された入力メッセージと、以前に受信された入力メッセージとに基づき、メッセージの履歴を保持するように構成されたメッセージ制御モジュールを有している。メッセージ履歴は、システムのいずれの周辺装置がオンとなり、及び複数のタスクの中のいずれのタスクが、周辺装置をオンさせることを要求したかを示すものである。メッセージ制御モジュールは、さらに、メッセージ履歴に基づいて、第２のプロセッサのための出力命令と、出力期間とを含む出力メッセージを生成するように構成されている。第２のプロセッサは、出力メッセージを受信し、出力期間に相当する時間長さの間、出力命令を実行するように構成されている。
【０００６】
本発明の別の態様では、第１のプロセッサと第２のプロセッサとの間での、メッセージの通行を制御するための方法が開示される。第２のプロセッサは、第１のプロセッサによって実行される複数の所定のタスクのために、１つ以上の周辺装置を制御する。本発明による方法は、第２のプロセッサに向けられた、第１のプロセッサにおいて実行されている複数のタスクの１つに基づく入力メッセージを受信するステップを有する。入力メッセージは、第２のプロセッサが、１つ以上の周辺装置を制御するための入力命令と、第２のプロセッサへの入力命令が実行されるべき最小時間長さを示す入力期間とを含む。また、本発明による方法は、受信された入力メッセージと、以前に受信された入力メッセージとに基づき、メッセージの履歴を保持するステップを有する。メッセージ履歴は、システムのいずれの周辺装置がオンとなり、及び複数のタスクの中のいずれのタスクが、周辺装置をオンさせることを要求したかを示す。本発明による方法は、メッセージ履歴に基づいて、第２のプロセッサのための出力命令と、出力期間とを含む出力メッセージを生成するステップを有する。さらに、本発明による方法は、第２のプロセッサに出力メッセージを送信するステップを有する。
【０００７】
本発明のさらなる適用範囲は、以下に与えられる詳細な説明から明らかとなる。ただし、その詳細な説明及び特定の例は、説明のみを目的とすることが意図され、本発明の範囲を制限することは何ら意図されないことが理解されるべきである。また、本発明は、以下の詳細な説明及び添付図面から、より完全に理解されるようになる。
【図面の簡単な説明】
【０００８】
【図１】第１及び第２のプロセッサを有する代表的なシステムを示す構成図である。
【図２】メッセージ通行制御において、第１のプロセッサから第２のプロセッサに通信されるメッセージの一例を示す図である。
【図３Ａ】第１のプロセッサと第２のプロセッサとの間のメッセージの通行を制御するメッセージ制御モジュールを有するシステムの代表的な実施形態の第１の構成を示す構成図である。
【図３Ｂ】第１のプロセッサと第２のプロセッサとの間のメッセージの通行を制御するメッセージ制御モジュールを有するシステムの代表的な実施形態の第２の構成を示す構成図である。
【図３Ｃ】第１のプロセッサと第２のプロセッサとの間のメッセージの通行を制御するメッセージ制御モジュールを有するシステムの代表的な実施形態の第３の構成を示す構成図である。
【図３Ｄ】第１のプロセッサと第２のプロセッサとの間のメッセージの通行を制御するメッセージ制御モジュールを有するシステムの代表的な実施形態の第４の構成を示す構成図である。
【図４】メッセージ制御モジュールによって利用される代表的なデータ構造を示す図である。
【図５Ａ】メッセージ制御モジュールによって実行される代表的な方法を示すフローチャートである。
【図５Ｂ】メッセージ制御モジュールによって実行される代表的な方法の一部であって、出力メッセージをセットするための方法を示すフローチャートである。
【発明を実施するための形態】
【０００９】
第１及び第２プロセッサ間の効率的な通信のための方法及びシステムが以下に説明される。そのシステムは、第２のプロセッサに向けられた、第１のプロセッサからのシリアルメッセージを受信し、第２のプロセッサのための複数のメッセージから、１つの出力メッセージへと、命令を統合（集約）するメッセージ制御モジュールを有する。
【００１０】
図１は、代表的なシステム１００を示している。ただし、システムは、単一の装置に組み込まれたり、複数の装置にそれぞれ部分的に組み込まれたりされ得ることが理解されるべきである。例えば、システム１００は、第２のプロセッサ１１２と、その第２のプロセッサ１１２と通信する第１のプロセッサ１１０をともに有する装置であっても良いし、第２のプロセッサ１１２を有する第２の装置と、その第２の装置と通信する第１のプロセッサ１１０を有する第１の装置とからなるものであっても良い。第２のプロセッサ１１２は、第１番の周辺装置１１４，第２番の周辺装置１１６から、第Ｎ番の周辺装置１１８までを制御するように構成されている。なお、周辺装置との用語は、第２のプロセッサ１１２によって制御される、装置若しくはシステムのいかなる構成部品をも含むものであることに注意すべきである。
【００１１】
いくつかの実施形態では、第１のプロセッサ１１０はハイエンドプロセッサであり、第２のプロセッサはローエンドプロセッサである。例えば、テレマティクス装置においては、第１のプロセッサが、さまざまなアプリケーションを実行し、ＧＰＳ信号を処理し、及びＣＤＭＡ通信を実施するために使用される。テレマティクス装置におけるローエンドプロセッサは、外部Ｉ／Ｏ信号を処理し、電源管理周辺装置を制御し、及びマイクロフォン、スピーカー、ＬＥＤなどのテレマティクス装置の他の周辺装置を制御するように構成される。ハイエンドプロセッサは、概して、ローエンドプロセッサよりも高価であり、大きな電力を必要とする。なお、本発明は、広範囲なシステムや装置に適用可能なものであって、テレマティクス装置に限られるものではない。例えば、第１のプロセッサ１１０は第１コンピュータのプロセッサであり、第２のプロセッサ１１２は第２コンピュータのプロセッサであって、第２コンピュータは第１コンピュータのスレーブであっても良い。
【００１２】
第１のプロセッサ１１０は、１つ以上のタスクを実行する。タスクは、第１のプロセッサ１１０が実行の任を負った、システムのなんらかの機能である。例えば、テレマティクス装置の例で言えば、タスクには、テレマティクス装置のディスプレイの制御、テレマティクス装置のオーディオシステムの制御、及びテレマティクス装置のＧＰＳの制御が含まれる。タスクを実施するために、第１のプロセッサ１１０は、第２のプロセッサ１１２に特定の命令を実行するように指示する。例えば、第１のプロセッサ１１０は、第２のプロセッサに対して、電源をオンしたり、リセットを抑止したり、スピーカーシステムを消音したり、ＬＥＤを点灯したりすることを指示し、その場合、タスクは特定の期間の間設定される前述した状態を必要とする。それらの指示は、単一のメッセージに組み入れられる。以下は、代表的なメッセージの構造を示すものである。
【００１３】
メッセージ＿フォーマット｛
バイト０：メッセージＩＤ
バイト１：ＵＡＲＴ（汎用非同期送受信回路）  ウェークアップ
バイト２：リセット抑止
バイト３：消音ステータス
バイト４：ＬＥＤステータス
バイト５：メッセージの存続期間    ｝
なお、以下に説明する構造は、メッセージフォーマットの一例にすぎず、いかなる他の適当なメッセージフォーマットも適用可能であることが理解されるべきである。
【００１４】
さまざまなアプリケーションの種々のタスクを実行する第１のプロセッサ１１０は、第２のプロサッサ１１２に対して、いろいろなメッセージを発生する。第２のプロセッサ１１２は、そのメッセージを受信し、メッセージに含まれた指示（命令）を実行する。図２は、メッセージ通行制御を行わない場合の、シリアル通信の一例を示している。この例では、第１のプロセッサ１１０が、バス、無線通信リンク、又は有線通信リンクのような通信経路２１４を介して、第２のプロセッサ１１２に、３個のメッセージ２２０，２３０，２４０を送信している。メッセージＡ２２０は、タスクＡの一部として、第１のプロセッサ１１０から第２のプロセッサ１１２に送信されるものである。メッセージＢ２３０は、タスクＢの一部として、２００ｍｓ後に送信される。メッセージＣ２４０はタスクＣの一部として、さらに５００ｍｓ後に送信される。メッセージＡ２２０は、ＵＡＲＴがオフにセットされ、リセット抑止がオンにセットされ、消音がオフにセットされ、及びメッセージは５０秒の持続期間を持つことを要求する。メッセージＢ２３０は、ＵＡＲＴがオンにセットされ、リセット抑止がオフにセットされ、消音がオフにセットされ、及びメッセージは１０秒の持続期間を持つことを要求する。また、メッセージＣ２４０は、ＵＡＲＴがオンにセットされ、リセット抑止がオフにセットされ、消音がオフにセットされ、及びメッセージは１５秒の持続期間を持つことを要求する。メッセージ通行制御が行われない場合、メッセージＡ２２０は、メッセージＣ２４０の７００ｍｓ前に受信されているが、メッセージＣ２４０が、第２のプロセッサ１１２によって受信されたことに基づいて実行されることになる。そのため、タスクＡは、少なくとも５０秒の間リセット抑止をオンにすることを要求しているにも係わらず、リセット抑止がオフにセットされてしまうことになる。
【００１５】
メッセージ通行制御によって、そのような問題を解決するために、第１のプロセッサ１１０から第２のプロセッサ１１２へのメッセージが、メッセージ制御モジュールによって統合される。図３Ａ〜３Ｄは、メッセージ制御モジュール３２０を有するシステム１００の代表的な構成を示すものである。図３Ａにおいて、メッセージ制御モジュール３２０は、第１のプロセッサ１１０に組み入れられている。第１のプロセッサ１１０は第１番のアプリケーション３２２及び第２番のアプリケーション３２４から第Ｎ番のアプリケーション３２６までを実行する。各々のアプリケーションは、１つ以上の所定のタスクを実施するものであり、それぞれの所定のタスクは識別子を有する。アプリケーションのタスクが、１つ以上の周辺装置１１４，１１６，１１８をオンさせることを要求する場合、アプリケーションは第２のプロセッサ１１２へ送信するメッセージを生成する。第２のプロセッサ１１２は、指示（命令）の集合であるメッセージを受信し、その指示に基づいて周辺装置１１４，１１６，１１８を制御するコントローラー３２８を有している。例えば、指示に基づいて、コントローラー３２８は、周辺装置１１４，１１６，１１８をオン、オフする。
【００１６】
コントローラー３２８がタスクからのメッセージを受信する前に、そのメッセージは、メッセージ制御モジュール３２０によって受信される。メッセージ制御モジュール３２０は、メッセージに含まれる指示（命令）を分析し、いずれのタスクが、どの特定の周辺装置がオンされるべきであるか、あるいはオンしたままであるべきかを要求したかを記録したメッセージ履歴を保持する。メッセージ履歴に基づいて、メッセージ制御モジュール３２０から第２のプロセッサ１１２のコントローラー３２８に、出力メッセージが送信される。
【００１７】
図３Ｂには、メッセージ制御モジュール３２０が、専用のマイクロプロセッサ（図示せず）に組み入れられた例が示されている。メッセージ制御モジュール３２０は、上述した例と同様に動作する。図３Ｃには、メッセージ制御モジュール３２０が第２のプロセッサ１１２に組み入れられた例が示されている。この例においても、メッセージ制御モジュール３２０は、上述した例と同様に動作する。
【００１８】
図３Ｄに示された例では、メッセージ制御モジュール３２０が、専用のマイクロプロセッサ（図示せず）に組み入れられ、Ｍ個のアプリケーション３２２，３２４，３２６を実行するＭ個の異なるプロセッサ１１０，３１４，３１６から第２のプロセッサ１１２へ送信されるメッセージの通行を容易にする。すなわち、本例においては、メッセージ制御モジュール３２０が、各々のプロセッサ１１０，３１４，３１６からのメッセージを受信し、いずれのタスクが、どの特定の周辺装置がオンされるべきであるか、あるいはオンしたままであるべきかを要求したかを記録したメッセージ履歴を保持する。なお、メッセージ制御モジュール３２０がプロセッサ、アプリケーション及びタスクからメッセージを受信する際、それらの数は任意に変え得ることが理解されるべきである。さらに、そのような構成において、プロセッサ１１０，１１２，３１４，３１６は、複数の装置やコンピュータに分布するように配置され得ることが理解されるべきである。
【００１９】
上述した実施形態において、メッセージ制御モジュール３２０は、アプリケーションからの入力メッセージを受信し、受信したメッセージに基づいてメッセージ履歴を更新して保持し、そして、そのメッセージ履歴に基づき、第２のプロセッサ１１２によって実行されるべき指示（命令）を含む出力メッセージを生成する。図４（ａ）〜（ｃ）は、入力メッセージ４１０、出力メッセージ４５０、及びメッセージ履歴４３０の代表的な構造を示している。
【００２０】
入力メッセージ４１０は、サービスタスク識別子フィールド４１２，複数の周辺フィールド４１４，４１６，４１８，４２０、及び期間フィールド４２２からなる。タスク識別子フィールド４１２は、メッセージを発したタスクを示している。メッセージを発することができるタスクのセットは、所定の有限のセットであり、１つ以上の周辺装置がオンされることを要求可能なすべてのタスクを示し、各々のタスクには、固有のタスク識別子が割り当てられている。従って、タスク識別子フィールド４１２は、いずれのタスクがメッセージを発したかを示すものである。図４（ａ）には、入力メッセージが、タスクＡによって発せられた例を示している。
【００２１】
周辺フィールド４１４，４１６，４１８、４２０は、タスクによって発せられた指示（命令）を表すものであり、特定のフィールドが、格納された「１」を保有している場合、その特定のフィールドによって表される周辺装置が、少なくとも期間フィールド４２２に示された時間長さの間、オンされることをタスクが要求したことを意味する。なお、第２のプロセッサ１１２によって制御される周辺装置や部品の各々は、複数の周辺フィールドの個々の周辺フィールドに対応付けられていることが理解されるべきである。図４（ａ）には、入力メッセージ４１０が、第１番及び第Ｎ番の周辺装置をオンするように、第２のプロセッサ１１２に指示した例が示されている。
【００２２】
期間フィールド４２２は、周辺フィールドによって示される周辺装置がオンされたままとなるべき時間長さを示すものである。なお、各々のタスクは、第２のプロセッサ１１２に対して、一定ではない（タスクに応じて変動する）時間長さの間、特定の周辺装置をオンさせ続けることを要求する。図４（ａ）の例では、タスクＡは、第２のプロセッサ１１２が、第１番の周辺装置及び第Ｎ番の周辺装置を少なくとも１５秒間オンさせることを要求している。
【００２３】
メッセージ履歴４３０は、複数の周辺フィールド４３４，４３６，４３８，４４０、及び期間フィールド４４２を有している。メッセージ履歴４３０は、さらに、タスクフィールド４３２を有し、それは、最も新しく指示を発したタスクを示すものである。メッセージ履歴４３０において、周辺フィールド４３４，４３６，４３８，４４０の各々は、対応するタスクアレイ４４４，４４６，４４８，４４９を備え、そのタスクアレイ４４４，４４６，４４８，４４９における要求タスクフィールドの各々が、いずれのタスクが、現在、対応する周辺装置をオンにセットすることを要求しているかを示している。すなわち、タスクアレイ４４４，４４６，４４８，４４９は、対応する周辺装置をオンにセットすることを要求したタスクの集合を示している。例えば、示された例は、第１番の周辺装置が、タスクＡ及びタスクＢによってオンにセットされることが要求され、一方、第３番の周辺装置は、タスクＢのみによってオンにセットされることが要求され、また、第Ｎ番の周辺装置は、タスクＡのみによってオンにセットされることが要求されたものである。この結果、メッセージ履歴４３０の周辺フィールド４３４，４３６，４３８，４４０は、第１番，第３番，及び第Ｎ番の周辺装置がオンされるべきことを示すものとなっている。
【００２４】
メッセージ履歴４３０の期間フィールド４４２は、統合された受信メッセージに対する持続期間を示しており、それにより、持続期間は、全ての受信メッセージの中の最も長い残りの持続期間を示すことになる。例えば、古いメッセージは１８秒の持続期間を要求し、それよりも新しいメッセージが１５秒の持続期間を要求している場合、期間フィールドは、１８秒にセットされることになる。なお、メッセージ制御モジュール３２０は、統合されたメッセージに対して残存している時間を計測するタイマを有しており、そのタイマは、メッセージ履歴４３０の期間フィールド４４２に示された持続期間に基づくものであることに注意すべきである。
【００２５】
出力メッセージ４５０は、複数の周辺フィールド４５４，４５６，４５８，４６０、及び期間フィールド４６２を有している。出力メッセージ４５０は、さらに、タスクフィールド４５２を有している。メッセージ制御モジュール３２０は、メッセージ履歴４３０の周辺フィールド４３４，４３６，４３８，４４０に基づいて、出力メッセージ４５０の周辺フィールド４５４，４５６，４５８，４６０への登録を行う。すなわち、メッセージ履歴４３０の周辺フィールド４３４，４３６，４３８，４４０に「１」が記録されていれば、出力メッセージ４５０の対応する周辺フィールド４５４，４５６，４５８，４６０に、同様に、「１」を登録する。また、メッセージ制御モジュール３２０は、メッセージ履歴４３０の期間フィールド４４２の値に基づいて、出力メッセージ４５０の期間フィールド４６２への登録も行う。
【００２６】
入力メッセージ４１０、出力メッセージ４５０、及びメッセージ履歴４３０は、それぞれ、タスク識別子を示す要素、いずれの周辺装置がオンされるべきかを示す要素（周辺要素）、及び持続期間の値を示す要素を用いたデータ構造によって表されるものであることに注意すべきである。さらに、メッセージ履歴４３０において、周辺要素は要求タスクアレイを有し、要求タスクアレイの各要素が、タスク識別子によって識別される１つのタスクに対応するとともに、周辺機器がオンすべきことを要求したタスクを示すものとなる。なお、周辺フィールドと要求タスクアレイは、ビット列によって表せられても良く、その場合、ビットの位置が、周辺フィールドの特定の周辺装置、及び要求タスクアレイの特定のタスクに対応することになる。
【００２７】
図５Ａ及び図５Ｂは、メッセージ制御モジュール３２０によって実行される代表的な方法を示している。メッセージ制御モジュール３２０は、ステップ５１２に示されるように、特定のタスクを実行するアプリケーションからの入力メッセージを受信する。例えば、ＧＰＳアプリケーションは、第２のプロセッサ１１２によって実行されるべき命令のセットを、入力メッセージとして発し、その入力メッセージをメッセージ制御モジュール３２０に送信する。受信された入力メッセージには、そのメッセージを発したタスクを識別するタスク識別子、各々のフィールドが指定の周辺装置をオンすべきかどうかを示す複数の周辺フィールド、及び指定の周辺装置がオンされるべき最小時間長さを示す持続期間が含まれている。上述したように、複数の周辺フィールドはビット列によって表すことが可能であり、その場合、各ビットの位置が特定の周辺装置を示すことになる。例えば、０１０１のビット列は、第１番及び第３番の周辺装置がオンされ、第２番及び第４番の周辺装置がオフされることを示す。
【００２８】
上述したように、メッセージ制御モジュール３２０はタイマを保有している。そのタイマは、第２のプロセッサ１１２によって実行される命令のセットに対して、どの程度の持続期間が残されているかを計測するために用いられる。例えば、１０秒間の持続期間を要求する出力メッセージが第２のプロセッサ１１２に送信され、以前のメッセージの持続期間がそれよりも短い場合、タイマは１０秒にセットされる。そして、その出力メッセージが第２のプロセッサ１１２に送信されたときから、タイマはカウントダウンを開始する。タスクからの新たなメッセージが受信されると、ステップ５１４に示されるように、メッセージ制御モジュール３２０は、タイマに残り時間が有るかどうかを判定する。タイマがカウントを満了している場合には、ステップ５１６に示されるように、メッセージ履歴４３０がリセットされる。メッセージ履歴４３０は、メッセージ履歴内の全ての値を消去すること、つまり、全ての値をゼロにセットすることによってリセットされる。
【００２９】
タイマがチェックされた後、メッセージ制御モジュール３２０は、受信された入力メッセージが、いずれかの周辺装置をオンするものであるかを判定する。そのため、メッセージ制御モジュール３２０は、まず、ステップ５１８に示されるように、カウンターをゼロに初期化する。上述したように、周辺フィールドは、フィールド間の関係が所定の関係となるように配列されており、そのため、カウンターの値が、特定の周辺フィールドを示すものとすることができる。そして、メッセージ制御モジュール３２０は、ステップ５２０に示されるように、受信された入力メッセージは、カウンター値に対応する周辺装置がオンされるべきことを要求しているかどうかを判定する。具体的には、メッセージ制御モジュール３２０は、入力メッセージの周辺フィールドにおける、カウンター値に対応するビットが「１」にセットされているかどうかを判定する。これは、例えば、「１」がカウンターの値だけ右方向にシフトされる「１」操作のビットシフトを実行するとともに、複数の周辺フィールドとビットシフトされた値とのＡＮＤ操作を実行することによってなしえる。
【００３０】
カウンター値に応じた周辺フィールドに対応し、評価対象となっている周辺装置がオンされるべきものとして設定されている場合、メッセージ制御モジュール３２０は、ステップ５２２に示されるように、カウンターの値に対応する周辺フィールドの要求タスクアレイにおいて、メッセージを発したタスクを「１」にセットする。要求タスクアレイはビット列であっても良く、この場合、各ビットが特定のタスクを表すことになる。例えば、第１のタスクが、対応する周辺フィールドを１にセットすることを要求した場合、要求タスクアレイは、００００００１にセットされる。すなわち、要求タスクアレイのタスク識別子に対応するビットに「１」の値を格納することによって、要求タスクアレイのセットが行われる。
【００３１】
一方、受信された入力メッセージが、評価対象となっている周辺装置をオンさせることを要求するものではない場合、メッセージ制御モジュール３２０は、ステップ５２４に示されるように、要求タスクアレイのタスク識別子に対応するビットに「０」をセットする。
【００３２】
メッセージ制御モジュール３２０は、ステップ５２６に示されるように、いずれかのタスクが、評価対象となっている周辺装置をオンにセットすることを要求しているか否かを判定すべく、メッセージ履歴の、カウンター値に対応する周辺フィールドを分析する。これは、要求タスクアレイの値をチェックすることによって実現され得る。そして、要求タスクアレイの値がゼロではなく、すなわち、要求タスクアレイにおける少なくとも１つのビットが「１」にセットされている場合には、ステップ５２８に示されるように、評価対象となっている周辺装置がオンされるべき、もしくはオンされたままとされるべきことを示すために、メッセージ履歴の周辺フィールドが更新される（周辺フィールドに「１」が登録される）。一方、評価対象となっている周辺装置がオフされるべき、もしくはオフされたままとされるべきであれば、すなわち要求タスクトレイの値がゼロに等しければ、評価対象となっている周辺機器に対応する、メッセージ履歴の周辺フィールドは「０」にセットされる（「０」のままとされる）。いずれのケースにおいても、その後、ステップ５３０に示されるように、メッセージ制御モジュール３２０はカウンターをインクリメントすることにより更新し、さらに、ステップ５３２に示されるように、更新されたカウンターの値が、周辺フィールドの最大値よりも小さいか否かを判定することにより、評価される必要がある周辺フィールド（周辺装置）が残っているかどうかをチェックする。評価されるべき周辺フィールドが残っている場合には、メッセージ制御モジュール３２０は、ステップ５２０の処理に戻る。全ての周辺フィールドの分析が完了すると、メッセージ制御モジュール３２０は、ステップ５３４に示されるように、出力メッセージを生成する。
【００３３】
なお、上述したのは、メッセージ制御モジュール３２０によって実行される方法の一例にすぎず、上記方法の種々の変形例も実施可能であることが理解されるべきである。さらに、上述した方法の幾つかのステップは、複数のステップに分けて実行しても良く、その一方で、他のステップは、結合して単一のステップにしても良いことが理解されるべきである。
【００３４】
入力メッセージが分析され、かつメッセージ履歴が更新されて保持されると、上述したように、メッセージ制御モジュール３２０は、出力メッセージの値をセットする。図５Ｂは、出力メッセージをセットするための代表的な方法を示している。メッセージ制御モジュール３２０は、ステップ５５２に示されるように、最初に、いずれかの周辺装置がオンされるべき、もしくはオンされたままとされるべきかを判定する。これは、メッセージ履歴の周辺フィールドを評価することによってなされる。メッセージ履歴のすべての周辺フィールドが「０」にセットされている場合、ステップ５５４に示されるように、最終的な持続期間が「０」にセットされる。
【００３５】
一方、オンされるべきもしくはオンされたままとされるべき周辺装置が有る場合には、メッセージ制御モジュール３２０は、持続期間をセットする。この持続期間は、受信された入力メッセージの持続期間と、タイマにおける残り時間とのどちらか長い方の時間に等しくなるようにセットされる。そのため、メッセージ制御モジュール３２０は、ステップ５５６に示されるように、タイマの値（残り時間）が、受信された入力メッセージの持続期間（入力持続期間）の値よりも大きいかどうかを判定する。タイマの値が、入力持続期間よりも大きい場合には、ステップ５５８に示されるように、最終的な持続期間が、タイマ値に等しい値にセットされる。一方、入力メッセージの持続期間が、タイマの値よりも大きい場合には、メッセージ制御モジュール３２０は、ステップ５６０に示されるように、最終的な持続期間を、入力メッセージの持続期間に等しい値にセットする。
【００３６】
最終的な持続期間がセットされると、メッセージ制御モジュール３２０は、ステップ５６２に示されるように、最終持続期間がゼロに等しいかどうかを判定する。最終持続期間がゼロに等しい場合、すなわち、オンすべき、もしくはオンされたままとすべき周辺装置が無い場合、ステップ５６４に示されるように、出力メッセージがクリアされる。なお、出力メッセージは、出力メッセージの周辺フィールド及び期間フィールドの全ての値を「０」にセットすることによってクリアされる。
【００３７】
一方、最終持続期間が「０」よりも大きい場合、すなわち、少なくとも１つの周辺装置がオンされるべき、もしくはオンされたままとされるべきである場合、ステップ５６６に示されるように、出力メッセージの値がセットされる。具体的には、メッセージ制御モジュール３２０は、出力メッセージの期間フィールドに、上述した最終持続期間に等しい値をセットする。さらに、メッセージ制御モジュール３２０は、出力メッセージの周辺フィールドに、メッセージ履歴の周辺フィールドと等しい値をセットする。なお、出力メッセージの周辺フィールドは、ビット列からなるものであっても良く、その場合、各ビットが特定の周辺装置を表すことになる。それらの例において、出力メッセージの周辺フィールドは、メッセージ履歴の周辺フィールドを表すビット列をコピーすることによってセットされ得る。メッセージ制御モジュール３２０は、第２のプロセッサ１１２によって必要とされるような、他のいかなる追加的なデータを出力メッセージに設定しても良い。例えば、メッセージ制御モジュール３２０は、受信された入力メッセージを発したタスクを示すタスクフィールドを出力メッセージに含めても良い。
【００３８】
次に、ステップ５６８に示されるように、タイマが最終持続期間と等しい値にセットされる。そして、ステップ５７０に示されるように、タイマがスタートされ、出力メッセージが第２のプロセッサに送信される。
【００３９】
なお、上述したのは、メッセージ制御モジュール３２０によって実行される方法の一例にすぎず、上記方法の種々の変形例も実施可能であることが理解されるべきである。さらに、上述した方法の幾つかのステップは、複数のステップに分けて実行しても良く、その一方で、他のステップは、結合して単一のステップにしても良いことが理解されるべきである。
【００４０】
以上の説明から理解されるように、メッセージ履歴は、特定の周辺装置をオンすべき、もしくはオンしたままとすべきことを要求した全てのタスクの総合的なリストを提供するために使用される。さらに、メッセージ履歴は、すべての指示（命令）の持続時間を記録している。このようなメッセージ履歴を保有することにより、メッセージ制御モジュール３２０は、第１のプロセッサ１１０において実行中のアプリケーションのための、第２のプロセッサ１１２に対するメッセージを効率的に生成することができる。
【００４１】
本明細書で使用された如く、「モジュール」との用語は、特定用途向けＩＣ（ＡＳＩＣ）、電子回路、組み合わせ論理回路、書き換え可能ゲートアレイ（ＦＰＧＡ）、コードを実行するプロセッサ（共用、専用、あるいは集合）、説明した機能を提供する他の適当な構成、もしくは、システムオンチップのような、上述した構成のいくつかもしくはすべての組み合わせの、一部又は全体の構成を含むものとして使用されている。また、モジュールとの用語はプロセッサによって実行されるコードを記憶するメモリ（共用、専用、あるいは集合）を含むものであっても良い。
【００４２】
上記の記載は、本質的に、説明のみのためのものであり、本発明、その適用や使用を制限することは全く意図されていない。説明の明瞭さのため、図面において、類似の構成要素に対し、同じ参照番号が用いられている。本発明の方法を実施するための各ステップは、本発明の原理を変更しない限り、異なる順序で実行され得ることが理解されるべきである。
【００４３】
上記において使用された、「モジュール」との用語は、特定用途向けＩＣ（ＡＳＩＣ）、電子回路、組み合わせ論理回路、書き換え可能ゲートアレイ（ＦＰＧＡ）、コードを実行するプロセッサ（共用、専用、あるいは集合）、説明した機能を提供する他の適当な構成、もしくは、システムオンチップのような、上述した構成のいくつかもしくはすべての組み合わせの、一部又は全体の構成を含むものとして使用されている。また、「モジュール」との用語はプロセッサによって実行されるコードを記憶するメモリ（共用、専用、あるいは集合）を含むものでもある。
【００４４】
上記において使用された、「コード」との用語は、ソフトウエア、ファームウエア、及び／又はマイクロコードを含み、プログラム、ルーチン、機能、クラス、及び／又はオブジェクトまで言い及ぶものである。また、上記の「共用」との用語は、複数のモジュールからの幾つか若しくは全てのコードが単一の（共用された）プロセッサを用いて実行されることを意味する。さらに、複数のモジュールからの幾つか若しくは全てのコードが、単一（共用された）メモリに記憶されることも意味する。上記において使用された「集合」との用語は、単一のモジュールからの幾つかの若しくは全てのコードが複数のプロセッサのグループ、もしくは複数の実行エンジンのグループを用いて実行されることを意味する。例えば、プロセッサの複数のコア、及び／又は、複数のスレッドは、実行エンジンのグループであると考えることができる。種々の実施形態において、複数の実行エンジンは、１つのプロセッサ、複数のプロセッサ、及び並列処理配置の多数のサーバのような、異なる位置に配置されたプロセッサにおいてグループ化されたものであっても良い。さらに、単一のモジュールからのいくつかの若しくは全てのコードが、複数のメモリのグループに記憶されても良い。
【００４５】
本明細書に記載されたシステム及び方法は、１つあるいはそれ以上のプロセッサによって実行される１つあるいはそれ以上のコンピュータプログラムによって履行されるものである。コンピュータプログラムは、固定の実体的なコンピュータ読み出し可能媒体に記憶された、プロセッサが実行可能な命令を含むものである。コンピュータプログラムは、記憶されたデータも含むものであっても良い。固定の実体的なコンピュータ読み出し可能媒体の非制限的な例は、不揮発性メモリ、磁気メモリ、光メモリである。
【００４６】
本発明の広範な教示は、種々の形態で実施されえるものである。それ故、本明細書では、特定の例を含むものであるが、他の変形例は図面、明細書、及び特許請求の範囲の内容から、当業者にあきらかとなるので、本発明の真の範囲は、そのようなものに限定されるべきものではない。
【符号の説明】
【００４７】
１１０  第１のプロセッサ
１１２  第２のプロセッサ
１１４  第１の周辺装置
１１６  第２の周辺装置
１１８  第Ｎ番の周辺装置
３２０  メッセージ制御モジュール
【図１】
0005838865.tif 000002
【図２】
0005838865.tif 000003
【図３Ａ】
0005838865.tif 000004
【図３Ｂ】
0005838865.tif 000005
【図３Ｃ】
0005838865.tif 000006
【図３Ｄ】
0005838865.tif 000007
【図４】
0005838865.tif 000008
【図５Ａ】
0005838865.tif 000009
【図５Ｂ】
0005838865.tif 000010