説明

2つのプロセッサ間においてメッセージの通行を制御するためのシステム及び方法

【課題】能力の高い第1のプロセッサと能力の低い第2のプロセッサ間におけるより効率的かつ正確な通信を可能とする。
【解決手段】第2のプロセッサ112は、第1のプロセッサ110によって実行される複数のタスクのために、周辺装置114,116,118を制御する。メッセージ制御モジュール320が、第2のプロセッサに向けられた、第1のプロセッサにおいて実行されるタスクに基づく入力メッセージを受信するとともに、その受信入力メッセージと、以前の受信入力メッセージとに基づき、メッセージの履歴を保持する。メッセージ履歴は、いずれの周辺装置がオンとなり、及び複数のタスクの中のいずれのタスクが、周辺装置をオンさせることを要求したかを示す。メッセージ制御モジュールは、メッセージ履歴に基づき、第2のプロセッサのための出力命令と、出力期間とを含む出力メッセージを生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、第1のプロセッサと第2のプロセッサとの間での、メッセージの通行を制御するためのシステム及び方法に関する。
【背景技術】
【0002】
多くの装置やシステムが、1つよりも多いプロセッサから構成され、それらは互いにシリアルに通信する。例えば、テレマティクス装置は、互いにシリアル通信を行う2つのプロセッサを有することがある。同様に、コンピューティングシステムにおける複数のプロセッサも、互いにシリアルに通信したりする。これらの構成において、第1のプロセッサは、例えば通信を実行するアプリケーション、GPS受信機を制御するアプリケーション、オーディオビジュアルシステムを制御するアプリケーション、あるいは他のリソース集約的なアプリケーションなど複数のアプリケーションを実行する。第2のプロセッサは、装置の構成部品を管理して、第1のプロセッサをサポートする。例えば、第2のプロセッサは、周辺装置からのI/O信号を処理したり、第1のプロセッサのために周辺装置を制御したりする。
【発明の概要】
【発明が解決しようとする課題】
【0003】
概して、第2のプロセッサは、低電力プロセッサであり、第1のプロセッサからメッセージの形式で指示(命令)を受け取る。この場合に起こりうる1つの問題は、第1のプロセッサが、連続するメッセージの間に、僅か、数ミリ秒の時間を挟んで、多数のメッセージを第2のプロセッサに送信することである。それらのメッセージは、例えば10秒間ミュートするなど、第2のプロセッサが要求された機能を実行すべき時間長さを示す期間を含むことがある。それらの期間は、しばしば、2以上の連続するメッセージの間の時間長さを超えることがある。第2のプロセッサは、通常、低電力プロセッサであり、コンピュータ的に第1のプロセッサほどの能力を有していないので、先のメッセージによる期間が満了する前に後のメッセージが受信された場合、先のメッセージが後のメッセージによって無効にされてしまう虞がある。従って、能力の高い(ハイエンド)プロセッサと能力の低い(ローエンド)プロセッサ間におけるより効率的かつ正確な通信を可能とするメッセージ設計の必要性がある。
【0004】
上述した背景技術の説明は、全体として、本発明の背景を提示するとの目的のためのものである。出願時の公知技術としてみなされない説明はもちろん、この背景技術のセクションに記述された程度まで、本願発明者らによる探求により得られた成果は、明示的にも暗示的にも、本発明に対する公知技術として了承されたものではない。
【課題を解決するための手段】
【0005】
1つの態様において、第1のプロセッサと第2のプロセッサとの間での、メッセージの通行を制御するように構成されたシステムが開示される。第1のプロセッサは、複数の所定のタスクを実行するように構成される。各々のタスクには、固有のタスク識別子が割り当てられる。第1のプロセッサは、さらに、それら複数のタスクの1つのために、入力メッセージを生成するように構成されている。入力メッセージは、第2のプロセッサが、システムの1つ以上の周辺装置を制御するための入力命令と、第2のプロセッサへの入力命令が実行されるべき最小時間長さを示す入力期間とを含む。本発明によるシステムは、さらに、第1のプロセッサから第2のプロセッサに向けられた入力メッセージを受信し、その受信された入力メッセージと、以前に受信された入力メッセージとに基づき、メッセージの履歴を保持するように構成されたメッセージ制御モジュールを有している。メッセージ履歴は、システムのいずれの周辺装置がオンとなり、及び複数のタスクの中のいずれのタスクが、周辺装置をオンさせることを要求したかを示すものである。メッセージ制御モジュールは、さらに、メッセージ履歴に基づいて、第2のプロセッサのための出力命令と、出力期間とを含む出力メッセージを生成するように構成されている。第2のプロセッサは、出力メッセージを受信し、出力期間に相当する時間長さの間、出力命令を実行するように構成されている。
【0006】
本発明の別の態様では、第1のプロセッサと第2のプロセッサとの間での、メッセージの通行を制御するための方法が開示される。第2のプロセッサは、第1のプロセッサによって実行される複数の所定のタスクのために、1つ以上の周辺装置を制御する。本発明による方法は、第2のプロセッサに向けられた、第1のプロセッサにおいて実行されている複数のタスクの1つに基づく入力メッセージを受信するステップを有する。入力メッセージは、第2のプロセッサが、1つ以上の周辺装置を制御するための入力命令と、第2のプロセッサへの入力命令が実行されるべき最小時間長さを示す入力期間とを含む。また、本発明による方法は、受信された入力メッセージと、以前に受信された入力メッセージとに基づき、メッセージの履歴を保持するステップを有する。メッセージ履歴は、システムのいずれの周辺装置がオンとなり、及び複数のタスクの中のいずれのタスクが、周辺装置をオンさせることを要求したかを示す。本発明による方法は、メッセージ履歴に基づいて、第2のプロセッサのための出力命令と、出力期間とを含む出力メッセージを生成するステップを有する。さらに、本発明による方法は、第2のプロセッサに出力メッセージを送信するステップを有する。
【0007】
本発明のさらなる適用範囲は、以下に与えられる詳細な説明から明らかとなる。ただし、その詳細な説明及び特定の例は、説明のみを目的とすることが意図され、本発明の範囲を制限することは何ら意図されないことが理解されるべきである。また、本発明は、以下の詳細な説明及び添付図面から、より完全に理解されるようになる。
【図面の簡単な説明】
【0008】
【図1】第1及び第2のプロセッサを有する代表的なシステムを示す構成図である。
【図2】メッセージ通行制御において、第1のプロセッサから第2のプロセッサに通信されるメッセージの一例を示す図である。
【図3A】第1のプロセッサと第2のプロセッサとの間のメッセージの通行を制御するメッセージ制御モジュールを有するシステムの代表的な実施形態の第1の構成を示す構成図である。
【図3B】第1のプロセッサと第2のプロセッサとの間のメッセージの通行を制御するメッセージ制御モジュールを有するシステムの代表的な実施形態の第2の構成を示す構成図である。
【図3C】第1のプロセッサと第2のプロセッサとの間のメッセージの通行を制御するメッセージ制御モジュールを有するシステムの代表的な実施形態の第3の構成を示す構成図である。
【図3D】第1のプロセッサと第2のプロセッサとの間のメッセージの通行を制御するメッセージ制御モジュールを有するシステムの代表的な実施形態の第4の構成を示す構成図である。
【図4】メッセージ制御モジュールによって利用される代表的なデータ構造を示す図である。
【図5A】メッセージ制御モジュールによって実行される代表的な方法を示すフローチャートである。
【図5B】メッセージ制御モジュールによって実行される代表的な方法の一部であって、出力メッセージをセットするための方法を示すフローチャートである。
【発明を実施するための形態】
【0009】
第1及び第2プロセッサ間の効率的な通信のための方法及びシステムが以下に説明される。そのシステムは、第2のプロセッサに向けられた、第1のプロセッサからのシリアルメッセージを受信し、第2のプロセッサのための複数のメッセージから、1つの出力メッセージへと、命令を統合(集約)するメッセージ制御モジュールを有する。
【0010】
図1は、代表的なシステム100を示している。ただし、システムは、単一の装置に組み込まれたり、複数の装置にそれぞれ部分的に組み込まれたりされ得ることが理解されるべきである。例えば、システム100は、第2のプロセッサ112と、その第2のプロセッサ112と通信する第1のプロセッサ110をともに有する装置であっても良いし、第2のプロセッサ112を有する第2の装置と、その第2の装置と通信する第1のプロセッサ110を有する第1の装置とからなるものであっても良い。第2のプロセッサ112は、第1番の周辺装置114,第2番の周辺装置116から、第N番の周辺装置118までを制御するように構成されている。なお、周辺装置との用語は、第2のプロセッサ112によって制御される、装置若しくはシステムのいかなる構成部品をも含むものであることに注意すべきである。
【0011】
いくつかの実施形態では、第1のプロセッサ110はハイエンドプロセッサであり、第2のプロセッサはローエンドプロセッサである。例えば、テレマティクス装置においては、第1のプロセッサが、さまざまなアプリケーションを実行し、GPS信号を処理し、及びCDMA通信を実施するために使用される。テレマティクス装置におけるローエンドプロセッサは、外部I/O信号を処理し、電源管理周辺装置を制御し、及びマイクロフォン、スピーカー、LEDなどのテレマティクス装置の他の周辺装置を制御するように構成される。ハイエンドプロセッサは、概して、ローエンドプロセッサよりも高価であり、大きな電力を必要とする。なお、本発明は、広範囲なシステムや装置に適用可能なものであって、テレマティクス装置に限られるものではない。例えば、第1のプロセッサ110は第1コンピュータのプロセッサであり、第2のプロセッサ112は第2コンピュータのプロセッサであって、第2コンピュータは第1コンピュータのスレーブであっても良い。
【0012】
第1のプロセッサ110は、1つ以上のタスクを実行する。タスクは、第1のプロセッサ110が実行の任を負った、システムのなんらかの機能である。例えば、テレマティクス装置の例で言えば、タスクには、テレマティクス装置のディスプレイの制御、テレマティクス装置のオーディオシステムの制御、及びテレマティクス装置のGPSの制御が含まれる。タスクを実施するために、第1のプロセッサ110は、第2のプロセッサ112に特定の命令を実行するように指示する。例えば、第1のプロセッサ110は、第2のプロセッサに対して、電源をオンしたり、リセットを抑止したり、スピーカーシステムを消音したり、LEDを点灯したりすることを指示し、その場合、タスクは特定の期間の間設定される前述した状態を必要とする。それらの指示は、単一のメッセージに組み入れられる。以下は、代表的なメッセージの構造を示すものである。
【0013】
メッセージ_フォーマット{
バイト0:メッセージID
バイト1:UART(汎用非同期送受信回路) ウェークアップ
バイト2:リセット抑止
バイト3:消音ステータス
バイト4:LEDステータス
バイト5:メッセージの存続期間 }
なお、以下に説明する構造は、メッセージフォーマットの一例にすぎず、いかなる他の適当なメッセージフォーマットも適用可能であることが理解されるべきである。
【0014】
さまざまなアプリケーションの種々のタスクを実行する第1のプロセッサ110は、第2のプロサッサ112に対して、いろいろなメッセージを発生する。第2のプロセッサ112は、そのメッセージを受信し、メッセージに含まれた指示(命令)を実行する。図2は、メッセージ通行制御を行わない場合の、シリアル通信の一例を示している。この例では、第1のプロセッサ110が、バス、無線通信リンク、又は有線通信リンクのような通信経路214を介して、第2のプロセッサ112に、3個のメッセージ220,230,240を送信している。メッセージA220は、タスクAの一部として、第1のプロセッサ110から第2のプロセッサ112に送信されるものである。メッセージB230は、タスクBの一部として、200ms後に送信される。メッセージC240はタスクCの一部として、さらに500ms後に送信される。メッセージA220は、UARTがオフにセットされ、リセット抑止がオンにセットされ、消音がオフにセットされ、及びメッセージは50秒の持続期間を持つことを要求する。メッセージB230は、UARTがオンにセットされ、リセット抑止がオフにセットされ、消音がオフにセットされ、及びメッセージは10秒の持続期間を持つことを要求する。また、メッセージC240は、UARTがオンにセットされ、リセット抑止がオフにセットされ、消音がオフにセットされ、及びメッセージは15秒の持続期間を持つことを要求する。メッセージ通行制御が行われない場合、メッセージA220は、メッセージC240の700ms前に受信されているが、メッセージC240が、第2のプロセッサ112によって受信されたことに基づいて実行されることになる。そのため、タスクAは、少なくとも50秒の間リセット抑止をオンにすることを要求しているにも係わらず、リセット抑止がオフにセットされてしまうことになる。
【0015】
メッセージ通行制御によって、そのような問題を解決するために、第1のプロセッサ110から第2のプロセッサ112へのメッセージが、メッセージ制御モジュールによって統合される。図3A〜3Dは、メッセージ制御モジュール320を有するシステム100の代表的な構成を示すものである。図3Aにおいて、メッセージ制御モジュール320は、第1のプロセッサ110に組み入れられている。第1のプロセッサ110は第1番のアプリケーション322及び第2番のアプリケーション324から第N番のアプリケーション326までを実行する。各々のアプリケーションは、1つ以上の所定のタスクを実施するものであり、それぞれの所定のタスクは識別子を有する。アプリケーションのタスクが、1つ以上の周辺装置114,116,118をオンさせることを要求する場合、アプリケーションは第2のプロセッサ112へ送信するメッセージを生成する。第2のプロセッサ112は、指示(命令)の集合であるメッセージを受信し、その指示に基づいて周辺装置114,116,118を制御するコントローラー328を有している。例えば、指示に基づいて、コントローラー328は、周辺装置114,116,118をオン、オフする。
【0016】
コントローラー328がタスクからのメッセージを受信する前に、そのメッセージは、メッセージ制御モジュール320によって受信される。メッセージ制御モジュール320は、メッセージに含まれる指示(命令)を分析し、いずれのタスクが、どの特定の周辺装置がオンされるべきであるか、あるいはオンしたままであるべきかを要求したかを記録したメッセージ履歴を保持する。メッセージ履歴に基づいて、メッセージ制御モジュール320から第2のプロセッサ112のコントローラー328に、出力メッセージが送信される。
【0017】
図3Bには、メッセージ制御モジュール320が、専用のマイクロプロセッサ(図示せず)に組み入れられた例が示されている。メッセージ制御モジュール320は、上述した例と同様に動作する。図3Cには、メッセージ制御モジュール320が第2のプロセッサ112に組み入れられた例が示されている。この例においても、メッセージ制御モジュール320は、上述した例と同様に動作する。
【0018】
図3Dに示された例では、メッセージ制御モジュール320が、専用のマイクロプロセッサ(図示せず)に組み入れられ、M個のアプリケーション322,324,326を実行するM個の異なるプロセッサ110,314,316から第2のプロセッサ112へ送信されるメッセージの通行を容易にする。すなわち、本例においては、メッセージ制御モジュール320が、各々のプロセッサ110,314,316からのメッセージを受信し、いずれのタスクが、どの特定の周辺装置がオンされるべきであるか、あるいはオンしたままであるべきかを要求したかを記録したメッセージ履歴を保持する。なお、メッセージ制御モジュール320がプロセッサ、アプリケーション及びタスクからメッセージを受信する際、それらの数は任意に変え得ることが理解されるべきである。さらに、そのような構成において、プロセッサ110,112,314,316は、複数の装置やコンピュータに分布するように配置され得ることが理解されるべきである。
【0019】
上述した実施形態において、メッセージ制御モジュール320は、アプリケーションからの入力メッセージを受信し、受信したメッセージに基づいてメッセージ履歴を更新して保持し、そして、そのメッセージ履歴に基づき、第2のプロセッサ112によって実行されるべき指示(命令)を含む出力メッセージを生成する。図4(a)〜(c)は、入力メッセージ410、出力メッセージ450、及びメッセージ履歴430の代表的な構造を示している。
【0020】
入力メッセージ410は、サービスタスク識別子フィールド412,複数の周辺フィールド414,416,418,420、及び期間フィールド422からなる。タスク識別子フィールド412は、メッセージを発したタスクを示している。メッセージを発することができるタスクのセットは、所定の有限のセットであり、1つ以上の周辺装置がオンされることを要求可能なすべてのタスクを示し、各々のタスクには、固有のタスク識別子が割り当てられている。従って、タスク識別子フィールド412は、いずれのタスクがメッセージを発したかを示すものである。図4(a)には、入力メッセージが、タスクAによって発せられた例を示している。
【0021】
周辺フィールド414,416,418、420は、タスクによって発せられた指示(命令)を表すものであり、特定のフィールドが、格納された「1」を保有している場合、その特定のフィールドによって表される周辺装置が、少なくとも期間フィールド422に示された時間長さの間、オンされることをタスクが要求したことを意味する。なお、第2のプロセッサ112によって制御される周辺装置や部品の各々は、複数の周辺フィールドの個々の周辺フィールドに対応付けられていることが理解されるべきである。図4(a)には、入力メッセージ410が、第1番及び第N番の周辺装置をオンするように、第2のプロセッサ112に指示した例が示されている。
【0022】
期間フィールド422は、周辺フィールドによって示される周辺装置がオンされたままとなるべき時間長さを示すものである。なお、各々のタスクは、第2のプロセッサ112に対して、一定ではない(タスクに応じて変動する)時間長さの間、特定の周辺装置をオンさせ続けることを要求する。図4(a)の例では、タスクAは、第2のプロセッサ112が、第1番の周辺装置及び第N番の周辺装置を少なくとも15秒間オンさせることを要求している。
【0023】
メッセージ履歴430は、複数の周辺フィールド434,436,438,440、及び期間フィールド442を有している。メッセージ履歴430は、さらに、タスクフィールド432を有し、それは、最も新しく指示を発したタスクを示すものである。メッセージ履歴430において、周辺フィールド434,436,438,440の各々は、対応するタスクアレイ444,446,448,449を備え、そのタスクアレイ444,446,448,449における要求タスクフィールドの各々が、いずれのタスクが、現在、対応する周辺装置をオンにセットすることを要求しているかを示している。すなわち、タスクアレイ444,446,448,449は、対応する周辺装置をオンにセットすることを要求したタスクの集合を示している。例えば、示された例は、第1番の周辺装置が、タスクA及びタスクBによってオンにセットされることが要求され、一方、第3番の周辺装置は、タスクBのみによってオンにセットされることが要求され、また、第N番の周辺装置は、タスクAのみによってオンにセットされることが要求されたものである。この結果、メッセージ履歴430の周辺フィールド434,436,438,440は、第1番,第3番,及び第N番の周辺装置がオンされるべきことを示すものとなっている。
【0024】
メッセージ履歴430の期間フィールド442は、統合された受信メッセージに対する持続期間を示しており、それにより、持続期間は、全ての受信メッセージの中の最も長い残りの持続期間を示すことになる。例えば、古いメッセージは18秒の持続期間を要求し、それよりも新しいメッセージが15秒の持続期間を要求している場合、期間フィールドは、18秒にセットされることになる。なお、メッセージ制御モジュール320は、統合されたメッセージに対して残存している時間を計測するタイマを有しており、そのタイマは、メッセージ履歴430の期間フィールド442に示された持続期間に基づくものであることに注意すべきである。
【0025】
出力メッセージ450は、複数の周辺フィールド454,456,458,460、及び期間フィールド462を有している。出力メッセージ450は、さらに、タスクフィールド452を有している。メッセージ制御モジュール320は、メッセージ履歴430の周辺フィールド434,436,438,440に基づいて、出力メッセージ450の周辺フィールド454,456,458,460への登録を行う。すなわち、メッセージ履歴430の周辺フィールド434,436,438,440に「1」が記録されていれば、出力メッセージ450の対応する周辺フィールド454,456,458,460に、同様に、「1」を登録する。また、メッセージ制御モジュール320は、メッセージ履歴430の期間フィールド442の値に基づいて、出力メッセージ450の期間フィールド462への登録も行う。
【0026】
入力メッセージ410、出力メッセージ450、及びメッセージ履歴430は、それぞれ、タスク識別子を示す要素、いずれの周辺装置がオンされるべきかを示す要素(周辺要素)、及び持続期間の値を示す要素を用いたデータ構造によって表されるものであることに注意すべきである。さらに、メッセージ履歴430において、周辺要素は要求タスクアレイを有し、要求タスクアレイの各要素が、タスク識別子によって識別される1つのタスクに対応するとともに、周辺機器がオンすべきことを要求したタスクを示すものとなる。なお、周辺フィールドと要求タスクアレイは、ビット列によって表せられても良く、その場合、ビットの位置が、周辺フィールドの特定の周辺装置、及び要求タスクアレイの特定のタスクに対応することになる。
【0027】
図5A及び図5Bは、メッセージ制御モジュール320によって実行される代表的な方法を示している。メッセージ制御モジュール320は、ステップ512に示されるように、特定のタスクを実行するアプリケーションからの入力メッセージを受信する。例えば、GPSアプリケーションは、第2のプロセッサ112によって実行されるべき命令のセットを、入力メッセージとして発し、その入力メッセージをメッセージ制御モジュール320に送信する。受信された入力メッセージには、そのメッセージを発したタスクを識別するタスク識別子、各々のフィールドが指定の周辺装置をオンすべきかどうかを示す複数の周辺フィールド、及び指定の周辺装置がオンされるべき最小時間長さを示す持続期間が含まれている。上述したように、複数の周辺フィールドはビット列によって表すことが可能であり、その場合、各ビットの位置が特定の周辺装置を示すことになる。例えば、0101のビット列は、第1番及び第3番の周辺装置がオンされ、第2番及び第4番の周辺装置がオフされることを示す。
【0028】
上述したように、メッセージ制御モジュール320はタイマを保有している。そのタイマは、第2のプロセッサ112によって実行される命令のセットに対して、どの程度の持続期間が残されているかを計測するために用いられる。例えば、10秒間の持続期間を要求する出力メッセージが第2のプロセッサ112に送信され、以前のメッセージの持続期間がそれよりも短い場合、タイマは10秒にセットされる。そして、その出力メッセージが第2のプロセッサ112に送信されたときから、タイマはカウントダウンを開始する。タスクからの新たなメッセージが受信されると、ステップ514に示されるように、メッセージ制御モジュール320は、タイマに残り時間が有るかどうかを判定する。タイマがカウントを満了している場合には、ステップ516に示されるように、メッセージ履歴430がリセットされる。メッセージ履歴430は、メッセージ履歴内の全ての値を消去すること、つまり、全ての値をゼロにセットすることによってリセットされる。
【0029】
タイマがチェックされた後、メッセージ制御モジュール320は、受信された入力メッセージが、いずれかの周辺装置をオンするものであるかを判定する。そのため、メッセージ制御モジュール320は、まず、ステップ518に示されるように、カウンターをゼロに初期化する。上述したように、周辺フィールドは、フィールド間の関係が所定の関係となるように配列されており、そのため、カウンターの値が、特定の周辺フィールドを示すものとすることができる。そして、メッセージ制御モジュール320は、ステップ520に示されるように、受信された入力メッセージは、カウンター値に対応する周辺装置がオンされるべきことを要求しているかどうかを判定する。具体的には、メッセージ制御モジュール320は、入力メッセージの周辺フィールドにおける、カウンター値に対応するビットが「1」にセットされているかどうかを判定する。これは、例えば、「1」がカウンターの値だけ右方向にシフトされる「1」操作のビットシフトを実行するとともに、複数の周辺フィールドとビットシフトされた値とのAND操作を実行することによってなしえる。
【0030】
カウンター値に応じた周辺フィールドに対応し、評価対象となっている周辺装置がオンされるべきものとして設定されている場合、メッセージ制御モジュール320は、ステップ522に示されるように、カウンターの値に対応する周辺フィールドの要求タスクアレイにおいて、メッセージを発したタスクを「1」にセットする。要求タスクアレイはビット列であっても良く、この場合、各ビットが特定のタスクを表すことになる。例えば、第1のタスクが、対応する周辺フィールドを1にセットすることを要求した場合、要求タスクアレイは、0000001にセットされる。すなわち、要求タスクアレイのタスク識別子に対応するビットに「1」の値を格納することによって、要求タスクアレイのセットが行われる。
【0031】
一方、受信された入力メッセージが、評価対象となっている周辺装置をオンさせることを要求するものではない場合、メッセージ制御モジュール320は、ステップ524に示されるように、要求タスクアレイのタスク識別子に対応するビットに「0」をセットする。
【0032】
メッセージ制御モジュール320は、ステップ526に示されるように、いずれかのタスクが、評価対象となっている周辺装置をオンにセットすることを要求しているか否かを判定すべく、メッセージ履歴の、カウンター値に対応する周辺フィールドを分析する。これは、要求タスクアレイの値をチェックすることによって実現され得る。そして、要求タスクアレイの値がゼロではなく、すなわち、要求タスクアレイにおける少なくとも1つのビットが「1」にセットされている場合には、ステップ528に示されるように、評価対象となっている周辺装置がオンされるべき、もしくはオンされたままとされるべきことを示すために、メッセージ履歴の周辺フィールドが更新される(周辺フィールドに「1」が登録される)。一方、評価対象となっている周辺装置がオフされるべき、もしくはオフされたままとされるべきであれば、すなわち要求タスクトレイの値がゼロに等しければ、評価対象となっている周辺機器に対応する、メッセージ履歴の周辺フィールドは「0」にセットされる(「0」のままとされる)。いずれのケースにおいても、その後、ステップ530に示されるように、メッセージ制御モジュール320はカウンターをインクリメントすることにより更新し、さらに、ステップ532に示されるように、更新されたカウンターの値が、周辺フィールドの最大値よりも小さいか否かを判定することにより、評価される必要がある周辺フィールド(周辺装置)が残っているかどうかをチェックする。評価されるべき周辺フィールドが残っている場合には、メッセージ制御モジュール320は、ステップ520の処理に戻る。全ての周辺フィールドの分析が完了すると、メッセージ制御モジュール320は、ステップ534に示されるように、出力メッセージを生成する。
【0033】
なお、上述したのは、メッセージ制御モジュール320によって実行される方法の一例にすぎず、上記方法の種々の変形例も実施可能であることが理解されるべきである。さらに、上述した方法の幾つかのステップは、複数のステップに分けて実行しても良く、その一方で、他のステップは、結合して単一のステップにしても良いことが理解されるべきである。
【0034】
入力メッセージが分析され、かつメッセージ履歴が更新されて保持されると、上述したように、メッセージ制御モジュール320は、出力メッセージの値をセットする。図5Bは、出力メッセージをセットするための代表的な方法を示している。メッセージ制御モジュール320は、ステップ552に示されるように、最初に、いずれかの周辺装置がオンされるべき、もしくはオンされたままとされるべきかを判定する。これは、メッセージ履歴の周辺フィールドを評価することによってなされる。メッセージ履歴のすべての周辺フィールドが「0」にセットされている場合、ステップ554に示されるように、最終的な持続期間が「0」にセットされる。
【0035】
一方、オンされるべきもしくはオンされたままとされるべき周辺装置が有る場合には、メッセージ制御モジュール320は、持続期間をセットする。この持続期間は、受信された入力メッセージの持続期間と、タイマにおける残り時間とのどちらか長い方の時間に等しくなるようにセットされる。そのため、メッセージ制御モジュール320は、ステップ556に示されるように、タイマの値(残り時間)が、受信された入力メッセージの持続期間(入力持続期間)の値よりも大きいかどうかを判定する。タイマの値が、入力持続期間よりも大きい場合には、ステップ558に示されるように、最終的な持続期間が、タイマ値に等しい値にセットされる。一方、入力メッセージの持続期間が、タイマの値よりも大きい場合には、メッセージ制御モジュール320は、ステップ560に示されるように、最終的な持続期間を、入力メッセージの持続期間に等しい値にセットする。
【0036】
最終的な持続期間がセットされると、メッセージ制御モジュール320は、ステップ562に示されるように、最終持続期間がゼロに等しいかどうかを判定する。最終持続期間がゼロに等しい場合、すなわち、オンすべき、もしくはオンされたままとすべき周辺装置が無い場合、ステップ564に示されるように、出力メッセージがクリアされる。なお、出力メッセージは、出力メッセージの周辺フィールド及び期間フィールドの全ての値を「0」にセットすることによってクリアされる。
【0037】
一方、最終持続期間が「0」よりも大きい場合、すなわち、少なくとも1つの周辺装置がオンされるべき、もしくはオンされたままとされるべきである場合、ステップ566に示されるように、出力メッセージの値がセットされる。具体的には、メッセージ制御モジュール320は、出力メッセージの期間フィールドに、上述した最終持続期間に等しい値をセットする。さらに、メッセージ制御モジュール320は、出力メッセージの周辺フィールドに、メッセージ履歴の周辺フィールドと等しい値をセットする。なお、出力メッセージの周辺フィールドは、ビット列からなるものであっても良く、その場合、各ビットが特定の周辺装置を表すことになる。それらの例において、出力メッセージの周辺フィールドは、メッセージ履歴の周辺フィールドを表すビット列をコピーすることによってセットされ得る。メッセージ制御モジュール320は、第2のプロセッサ112によって必要とされるような、他のいかなる追加的なデータを出力メッセージに設定しても良い。例えば、メッセージ制御モジュール320は、受信された入力メッセージを発したタスクを示すタスクフィールドを出力メッセージに含めても良い。
【0038】
次に、ステップ568に示されるように、タイマが最終持続期間と等しい値にセットされる。そして、ステップ570に示されるように、タイマがスタートされ、出力メッセージが第2のプロセッサに送信される。
【0039】
なお、上述したのは、メッセージ制御モジュール320によって実行される方法の一例にすぎず、上記方法の種々の変形例も実施可能であることが理解されるべきである。さらに、上述した方法の幾つかのステップは、複数のステップに分けて実行しても良く、その一方で、他のステップは、結合して単一のステップにしても良いことが理解されるべきである。
【0040】
以上の説明から理解されるように、メッセージ履歴は、特定の周辺装置をオンすべき、もしくはオンしたままとすべきことを要求した全てのタスクの総合的なリストを提供するために使用される。さらに、メッセージ履歴は、すべての指示(命令)の持続時間を記録している。このようなメッセージ履歴を保有することにより、メッセージ制御モジュール320は、第1のプロセッサ110において実行中のアプリケーションのための、第2のプロセッサ112に対するメッセージを効率的に生成することができる。
【0041】
本明細書で使用された如く、「モジュール」との用語は、特定用途向けIC(ASIC)、電子回路、組み合わせ論理回路、書き換え可能ゲートアレイ(FPGA)、コードを実行するプロセッサ(共用、専用、あるいは集合)、説明した機能を提供する他の適当な構成、もしくは、システムオンチップのような、上述した構成のいくつかもしくはすべての組み合わせの、一部又は全体の構成を含むものとして使用されている。また、モジュールとの用語はプロセッサによって実行されるコードを記憶するメモリ(共用、専用、あるいは集合)を含むものであっても良い。
【0042】
上記の記載は、本質的に、説明のみのためのものであり、本発明、その適用や使用を制限することは全く意図されていない。説明の明瞭さのため、図面において、類似の構成要素に対し、同じ参照番号が用いられている。本発明の方法を実施するための各ステップは、本発明の原理を変更しない限り、異なる順序で実行され得ることが理解されるべきである。
【0043】
上記において使用された、「モジュール」との用語は、特定用途向けIC(ASIC)、電子回路、組み合わせ論理回路、書き換え可能ゲートアレイ(FPGA)、コードを実行するプロセッサ(共用、専用、あるいは集合)、説明した機能を提供する他の適当な構成、もしくは、システムオンチップのような、上述した構成のいくつかもしくはすべての組み合わせの、一部又は全体の構成を含むものとして使用されている。また、「モジュール」との用語はプロセッサによって実行されるコードを記憶するメモリ(共用、専用、あるいは集合)を含むものでもある。
【0044】
上記において使用された、「コード」との用語は、ソフトウエア、ファームウエア、及び/又はマイクロコードを含み、プログラム、ルーチン、機能、クラス、及び/又はオブジェクトまで言い及ぶものである。また、上記の「共用」との用語は、複数のモジュールからの幾つか若しくは全てのコードが単一の(共用された)プロセッサを用いて実行されることを意味する。さらに、複数のモジュールからの幾つか若しくは全てのコードが、単一(共用された)メモリに記憶されることも意味する。上記において使用された「集合」との用語は、単一のモジュールからの幾つかの若しくは全てのコードが複数のプロセッサのグループ、もしくは複数の実行エンジンのグループを用いて実行されることを意味する。例えば、プロセッサの複数のコア、及び/又は、複数のスレッドは、実行エンジンのグループであると考えることができる。種々の実施形態において、複数の実行エンジンは、1つのプロセッサ、複数のプロセッサ、及び並列処理配置の多数のサーバのような、異なる位置に配置されたプロセッサにおいてグループ化されたものであっても良い。さらに、単一のモジュールからのいくつかの若しくは全てのコードが、複数のメモリのグループに記憶されても良い。
【0045】
本明細書に記載されたシステム及び方法は、1つあるいはそれ以上のプロセッサによって実行される1つあるいはそれ以上のコンピュータプログラムによって履行されるものである。コンピュータプログラムは、固定の実体的なコンピュータ読み出し可能媒体に記憶された、プロセッサが実行可能な命令を含むものである。コンピュータプログラムは、記憶されたデータも含むものであっても良い。固定の実体的なコンピュータ読み出し可能媒体の非制限的な例は、不揮発性メモリ、磁気メモリ、光メモリである。
【0046】
本発明の広範な教示は、種々の形態で実施されえるものである。それ故、本明細書では、特定の例を含むものであるが、他の変形例は図面、明細書、及び特許請求の範囲の内容から、当業者にあきらかとなるので、本発明の真の範囲は、そのようなものに限定されるべきものではない。
【符号の説明】
【0047】
110 第1のプロセッサ
112 第2のプロセッサ
114 第1の周辺装置
116 第2の周辺装置
118 第N番の周辺装置
320 メッセージ制御モジュール

【特許請求の範囲】
【請求項1】
第1のプロセッサと第2のプロセッサとの間での、メッセージの通行を制御するように構成されたシステムであって、
前記第1のプロセッサは、それぞれに固有のタスク識別子が割り当てられた複数の所定のタスクを実行するとともに、前記複数のタスクの1つのために、入力メッセージを生成するように構成されており、
前記入力メッセージは、前記第2のプロセッサが前記システムの1つ以上の周辺装置を制御するための入力命令と、前記第2のプロセッサへの入力命令が実行されるべき最小時間長さを示す入力期間とを含み、
前記第1のプロセッサから第2のプロセッサに向けられた前記入力メッセージを受信し、その受信された入力メッセージと、以前に受信された入力メッセージとに基づき、メッセージの履歴を保持するように構成されたメッセージ制御モジュールを備え、
前記メッセージ履歴は、システムのいずれの周辺装置がオンとなり、及び複数のタスクの中のいずれのタスクが、前記周辺装置をオンさせることを要求したかを示すものであり、前記メッセージ制御モジュールは、前記メッセージ履歴に基づいて、前記第2のプロセッサのための出力命令と、出力期間とを含む出力メッセージを生成するように構成されており、
前記第2のプロセッサは、前記出力メッセージを受信し、前記出力期間に相当する時間長さの間、前記出力命令を実行するように構成されていることを特徴とするシステム。
【請求項2】
前記メッセージ履歴は複数の周辺フィールドを含み、各々の周辺フィールドは、前記周辺機器に1対1に対応し、前記周辺装置がオンされるべきときには、前記周辺フィールドが、前記周辺装置がオンされるべきことを示すことを特徴とする請求項1に記載のシステム。
【請求項3】
各々の周辺フィールドは、関連づけられた要求タスクアレイを有し、その要求タスクアレイは、複数のタスクの中のいずれのタスクが、現在、対応する周辺装置をオンすることを要求しているかを個々のタスクごとに示す要素からなることを特徴とする請求項2に記載のシステム。
【請求項4】
前記要求タスクアレイの1つ以上の要素が、現在、対応する周辺装置をオンすることを要求している場合、その要求タスクアレイに関連付けられる周辺フィールドが、前記周辺装置がオンされるべきことを示すことを特徴とする請求項3に記載のシステム。
【請求項5】
前記第2のプロセッサにより最も新しく受信される出力メッセージの、残された実行期間を示すタイマを備え、
前記タイマは、新しい出力メッセージが前記第2のプロセッサに送信されるタイミングで更新されることを特徴とする請求項1に記載のシステム。
【請求項6】
前記メッセージ制御モジュールは、前記タイマにより示される残りの実行期間と、前記入力メッセージの入力期間とのいずれが長いかを判定し、その長い方の期間に等しくなるように前記出力期間をセットすることを特徴とする請求項5に記載のシステム。
【請求項7】
前記メッセージ制御モジュールは、前記タイマが残りの実行期間がないことを示した場合、前記周辺装置がオフとなることを示すように、前記メッセージ履歴の全ての値をセットすることを特徴とする請求項5に記載のシステム。
【請求項8】
第1のプロセッサと第2のプロセッサとの間での、メッセージの通行を制御するための方法であって、
前記第2のプロセッサは、第1のプロセッサによって実行される複数の所定のタスクのために、1つ以上の周辺装置を制御するものであり、
前記第2のプロセッサに向けられた、第1のプロセッサにおいて実行されている複数のタスクの1つに基づく入力メッセージを受信するステップを有し、
前記入力メッセージは、前記第2のプロセッサが、1つ以上の周辺装置を制御するための入力命令と、前記第2のプロセッサへの入力命令が実行されるべき最小時間長さを示す入力期間とを含み、
受信された入力メッセージと、それよりも以前に受信された入力メッセージとに基づき、メッセージの履歴を更新して保持するステップを有し、
前記メッセージ履歴は、システムのいずれの周辺装置がオンとなり、及び複数のタスクの中のいずれのタスクが、前記周辺装置をオンさせることを要求したかを示すものであり、
さらに、前記メッセージ履歴に基づいて、前記第2のプロセッサのための出力命令と、出力期間とを含む出力メッセージを生成するステップと、
前記第2のプロセッサに出力メッセージを送信するステップと、を有することを特徴とする方法。
【請求項9】
前記メッセージ履歴は複数の周辺フィールドを含み、各々の周辺フィールドは、前記周辺機器に1対1に対応し、前記周辺装置がオンされるべきときには、前記周辺フィールドが、前記周辺装置がオンされるべきことを示すことを特徴とする請求項8に記載の方法。
【請求項10】
各々の周辺フィールドは、関連づけられた要求タスクアレイを有し、その要求タスクアレイは、複数のタスクの中のいずれのタスクが、現在、対応する周辺装置をオンすることを要求しているかを個々のタスクごとに示す要素からなることを特徴とする請求項9に記載の方法。
【請求項11】
前記要求タスクアレイの1つ以上の要素が、現在、対応する周辺装置をオンすることを要求している場合、その要求タスクアレイに関連付けられる周辺フィールドに、前記周辺装置がオンされるべきことを示す印を記録するステップを有することを特徴とする請求項10に記載の方法。
【請求項12】
前記第2のプロセッサにより最も新しく受信される出力メッセージの、残された実行期間を、タイマを用いてカウントするステップを有することを特徴とする請求項8に記載の方法。
【請求項13】
新しい出力メッセージが前記第2のプロセッサに送信されるタイミングで前記タイマのカウント値を更新するステップを有することを特徴とする請求項12に記載の方法。
【請求項14】
前記タイマにより示される残りの実行期間と、前記入力メッセージの入力期間とのいずれが長いかを判定し、その長い方の期間に等しくなるように前記出力期間をセットするステップを有することを特徴とする請求項12に記載の方法。
【請求項15】
前記タイマが残りの実行期間がないことを示した場合、前記周辺装置がオフとなることを示すように、前記メッセージ履歴の全ての値をセットするステップを有することを特徴とする請求項12に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図3C】
image rotate

【図3D】
image rotate

【図4】
image rotate

【図5A】
image rotate

【図5B】
image rotate


【公開番号】特開2012−216190(P2012−216190A)
【公開日】平成24年11月8日(2012.11.8)
【国際特許分類】
【出願番号】特願2012−50829(P2012−50829)
【出願日】平成24年3月7日(2012.3.7)
【出願人】(000004260)株式会社デンソー (27,639)
【出願人】(500164385)デンソー インターナショナル アメリカ インコーポレーテッド (49)