IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日立オートモティブシステムズ株式会社の特許一覧

<>
  • 特開-情報処理装置 図1
  • 特開-情報処理装置 図2
  • 特開-情報処理装置 図3
  • 特開-情報処理装置 図4
  • 特開-情報処理装置 図5
  • 特開-情報処理装置 図6
  • 特開-情報処理装置 図7
  • 特開-情報処理装置 図8
  • 特開-情報処理装置 図9
  • 特開-情報処理装置 図10
  • 特開-情報処理装置 図11
  • 特開-情報処理装置 図12
  • 特開-情報処理装置 図13
  • 特開-情報処理装置 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024003654
(43)【公開日】2024-01-15
(54)【発明の名称】情報処理装置
(51)【国際特許分類】
   G06F 9/48 20060101AFI20240105BHJP
【FI】
G06F9/48 300Z
【審査請求】未請求
【請求項の数】3
【出願形態】OL
(21)【出願番号】P 2022102943
(22)【出願日】2022-06-27
(71)【出願人】
【識別番号】509186579
【氏名又は名称】日立Astemo株式会社
(74)【代理人】
【識別番号】110002572
【氏名又は名称】弁理士法人平木国際特許事務所
(72)【発明者】
【氏名】本間 一樹
(57)【要約】
【課題】一定周期で実行されるタスクが何らかの要因により所定の周期内に処理が完了しない場合であっても、各タスクないしMPU全体として正常な動作を継続可能とする情報処理装置を提供する。
【解決手段】情報処理装置は、複数のタスクを実行するタスク実行部と、所定の周期で第一のトリガ信号を生成する周期生成部と、第一のトリガ信号を受信し、タスク実行部に対して複数のタスクの実行開始を指示する第二のトリガ信号を送信するタスク実行管理部と、を有し、タスク実行管理部は、タスク実行部の実行状況に応じて第二のトリガ信号の送信タイミングを調整する。
【選択図】図2
【特許請求の範囲】
【請求項1】
複数のタスクを実行するタスク実行部と、
所定の周期で第一のトリガ信号を生成する周期生成部と、
前記第一のトリガ信号を受信し、前記タスク実行部に対して前記複数のタスクの実行開始を指示する第二のトリガ信号を送信するタスク実行管理部と、を有し、
前記タスク実行管理部は、前記タスク実行部の実行状況に応じて前記第二のトリガ信号の送信タイミングを調整する、
ことを特徴とする情報処理装置。
【請求項2】
請求項1に記載の情報処理装置であって、
前記タスク実行部による、前記周期内における前記複数のタスクの実行を完了するまでの期間が所定の期間よりも短い場合に、
前記タスク実行管理部は、前記周期生成部に対して前記第一のトリガ信号を生成する周期を短縮化させる指示信号を送信する、
ことを特徴とする情報処理装置。
【請求項3】
請求項1に記載の情報処理装置であって、
前記タスク実行部は、前記周期内における前記複数のタスクの全ての実行が完了した場合に、前記タスク実行管理部に対して実行完了信号を送信し、
前記タスク実行管理部は、前記第一のトリガ信号を受信した後、前記実行完了信号の受信を条件として前記第二のトリガ信号を送信する、
ことを特徴とする情報処理装置。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は車両に搭載される情報処理装置に関し、特に、一定の周期で実行されるタスクの起動タイミングを調整可能な情報処理装置に関する。
【背景技術】
【0002】
車両等に搭載される情報処理装置において、一定の周期で実行されるタスクは様々な要因によりその実行が所定の周期内に終わらない場合がある。また、近年、自動車におけるECU(Electronic Control Unit)は複数のECUを統合した一種の仮想マシンであるIntegrated ECUとして実装される様になってきており、これに伴いIntegrated ECU内で実行されるタスク数も増加傾向にあり、上記のような所定の周期内にタスク処理が終了しない問題が顕著になりつつある。
【0003】
図1は、一般的な情報処理装置のハードウェア構成を示すブロック図である。情報処理装置(1)は、データの読み出しが可能な記憶装置であるROM(Read Only Memory)(12)、データの書き込みと読み出しの両方が可能であるRAM(Random Access Memory)(13)、データを基に車両制御に必要なパラメータの演算を行うCPU(Central Processing Unit)(11)、及び演算結果を通信用のプロトコルに変換して送信を行う通信モジュール(10)を保有している。
【0004】
また、情報処理装置(1)は、たとえば車両に搭載され、車両を制御する装置である。ただし、情報処理装置(1)は車両に搭載されないものであってもよく、車両以外の対象を制御する装置であってもよい。
【0005】
情報処理装置(1)は、通信路(14)を介して外部サーバ(15)と接続されている。通信路(14)は、物理的には複数の通信バスを含んでもよく、各通信バスの規格はすべて同一でもよいし異なっていてもよい。これら通信バスの規格はCAN(登録商標)、LIN(登録商標)、FlexRay(登録商標)、イーサネット(登録商標)などである。
【0006】
情報処理装置(1)は通信路(14)を通過したデータを受信する。すると、受信に応じて、受信データがRAM(13)に展開される。そして、書き込まれたRAM(13)のデータとROM(12)の読み出しデータを基に、CPU(11)が演算を行う。また、情報処理装置(1)には予めプログラムが組み込まれており、CPU(11)が当該プログラムを実行することによって以下に説明する処理を実行することが可能になる。
【0007】
上述した情報処理装置(1)として、例えばIntegrated ECU上の地図情報処理ユニット(MPU:Map Positioning Unit)等が挙げられる。MPUが実行するアプリは自動車に搭載される各種センサからの走行データを周期的に受信する経路において以下の遅延が発生し得る。すなわち、コンテナと仮想マシンとの間においてはタスクスイッチや他のコンテナとの干渉による遅延が生じ得、アプリとコンテナ間の仮想I/O(Input/Output)においては、S/W(SoftWare)処理による遅延が生じ得る。ここで、コンテナとは、稼働中のオペレーティングシステム(OS)の一部を分離して他と隔離された専用のエリアを用意し、その上でソフトウェアを動作させるコンピュータの仮想方式の一つであるコンテナ型仮想化技術において、隔離された領域のことをいう。
【0008】
これらの遅延の影響によりタスクがある一定期間(例えば10ms周期)内に終わらない場合、MPUの動作・出力結果を保証出来なくなる可能性がある。
【0009】
ここで、従来技術におけるMPUの構成及び実行される処理を図11-14を用いて説明する。図11は、従来技術におけるMPUの構成の一例を示すブロック図である。MPU(100)は、RTOS(130)、タイマー(140)、I/O(150)を有し、タスク1(110)、タスク2(111)、タスク3(112)をある周期(例えば10ms)毎に実行するものである。図11においてMPU(100)は単独の情報処理装置として描かれているが、例えばMPU(100)をIntegrated ECU上の1つの仮想マシンとして実行する形態でも良い。なお、実施例を含め以降では本発明に係る情報処理装置として車載ECUの1つであるMPUを例に説明するが、本発明の適用範囲は車載MPUに限定されることはなく、周期的にデータを受信して処理を実行するECU全てに適用可能である。
【0010】
RTOS(130)は、「Real Time Operation System」の略称であり、要求される期限までに処理を実行するシステムのことである。近年では、特にMPU等の、処理にリアルタイム性が要求される機器に搭載されることが多くなっている。RTOS(130)はさらにタスク・ディスパッチャ(131)とI/Oドライバ(132)を有する。タスク・ディスパッチャ(131)は、RTOS(130)が有する制御機能部の1つであり、実行可能状態にある複数のタスクの中から次に実行すべきタスクを選択してCPUの使用権を割り当てる機能を有する。I/Oドライバ(132)は、入出力制御、ファイルシステム、ネットワークプロトコルなどを含み、各種データへのアクセスを制御する機能を有する。
【0011】
タイマー(140)は、タスク毎に予め設定された周期を記憶しており、タスクを起動すべきタイミングで、タスク・ディスパッチャ(131)に対してタスクを起動するタイミングを示すトリガ信号(141)を送信する。タイマー(140)は例えばハードウェア的に実装されても良いし、ソフトウェア的に実装されても良い。
【0012】
I/O(Input/Output)(150)は、データの入出力を行うインターフェースであり、I/O(150)を介してMPU(100)と外部の車両(160)との間でデータの送受信が行われる。
【0013】
全てのタスクはRTOS(130)内のタスク制御装置であるタスク・ディスパッチャ(131)からの起動信号(121)を契機に1つずつ順番に実行される。それぞれのタスクはその実行が完了した際、完了信号(122)を用いてその実行が完了したことをタスク・ディスパッチャ(131)に伝える。
【0014】
なお、実施例も含め、本明細書においては、タスク・ディスパッチャ(131)はMPU(100)内に設置されたタイマー(140)で生成される例えば10ms毎の一定間隔のトリガ信号(141)に基づいて、タスク1~3を一定間隔で起動していくものとする。しかし、1周期内で実行されるタスク数は任意であり、また異なる周期を有するタスクが実行されることもある。
【0015】
また、タスク3(112)はその処理において、車両(160)からリアルタイムで得られる走行データ(151)をI/O(150)からの通信路(133)、およびRTOS(130)内のI/Oドライバ(132)からの通信路(123)を経由して入力値として用いて実行するものとする。
【0016】
図12-13に、従来技術における、それぞれのタスク1~3が実行される処理を表すタイムチャート及びフローチャートを示す。
【0017】
図12のタイムチャートに示すように、タイマー(140)は一定周期でトリガ信号(141)を生成する。ここでは例として10ms毎とするが、この周期は任意に設定可能である。タイマー(140)が第n周期においてトリガ信号(141)を生成すると、それを受けてタスク・ディスパッチャ(131)はbusy状態となりタスク1(110)、タスク2(111)、タスク3(112)を順番に起動していく。
【0018】
具体的には、先ずタスク・ディスパッチャ(131)はタスク1(110)に起動信号(121a)を送信し、タスク1(110)を起動する。タスク1(110)は起動信号(121a)の受信に応じて処理を開始し、その処理が完了すると完了信号(122a)をタスク・ディスパッチャ(131)に送信し、処理が完了したことを報告する。
【0019】
次にタスク・ディスパッチャ(131)はタスク2(111)に起動信号(121b)を送信し、タスク2(111)を起動する。タスク2(111)は起動信号(121b)の受信に応じて処理を開始し、その処理が完了すると完了信号(122b)をタスク・ディスパッチャ(131)に送信し、処理が完了したことを報告する。
【0020】
更にタスク・ディスパッチャ(131)は起動信号(121c)をタスク3(112)に送信し、タスク3(112)を起動する。タスク3(112)は起動信号(121c)の受信に応じて処理を開始し、その処理が完了すると完了信号(122c)をタスク・ディスパッチャ(131)に送信し、処理が完了したことを報告する。ここで、上述の通りタスク3(112)は車両(160)からリアルタイムで得られる走行データ(151)を入力値として用いるため、その起動には、10ms毎に到着する走行データ(151)が必要である。このケースでは走行データ(151)がタスク3(112)の起動タイミング(起動信号121cの受信タイミング)よりも先であるため、タスク3(112)は起動信号(121c)受信のタイミングで直ぐにその処理を開始する事が出来る。
【0021】
最後にタスク・ディスパッチャ(131)は第n周期内に実行されるべき最後のタスクであるタスク3(112)から実行完了を示す完了信号(122c)を受信すると、当該10msの第n周期内に実行すべきタスクは全て終了したものと見なして、busy状態を取り下げる。
【0022】
同様に第(n+1)周期、第(n+2)周期と連続して処理が実行される。
【0023】
図13に上述の処理をフローチャートとして示す。まずステップS1301において、タスク・ディスパッチャ(131)がタイマー(140)からトリガ信号(141)を受信する。ステップS1302において、該受信に応じてタスクを起動し、ステップS1303において該タスクの処理が完了するとタスクから完了信号を受信する。ステップS1304において、完了信号を送信してきたタスクが該周期内において最後に実行されるべきタスクであったか否か判定し、最後でなければステップS1302へと戻り次のタスクを起動し、最後であれば処理を終了する(busy状態を取り下げる)。以上が、従来用いられてきたMPU(100)が実行する処理である。
【0024】
図14に、従来技術における、それぞれのタスク1~3が実行される際にあるタスクの実行が所定の10ms間隔内に完了しない事により問題が発生するケースについて示す。
図14において、第n周期内における処理、及び第(n+1)周期内におけるタスク2(111)の実行までの処理は図12と同様である。
【0025】
第(n+1)周期内において、タスク・ディスパッチャ(131)はタスク2(111)から完了信号(122b)を受信後、起動信号(121c)をタスク3(112)に送信して起動しようとする。ここで、車両(160)とタスク3(112)との間の通信路(133、123)に何等かの異常が生じ、第(n+1)周期内において走行データ(151)が、タスク3(112)を起動すべきタイミングを示す起動信号(121c)の生成時点で得られない場合が生じ得る。この場合、タスク3(112)は起動信号(121c)受信のタイミングで直ぐにその処理を開始する事が出来ず、走行データ(151)受信の遅延(240)分だけタスク3(112)も遅延(250)して起動されることになる。その場合、結果的にタスク3(112)が完了するのは次の第(n+2)周期の開始タイミングの後まで遅れる事態が生じ得る。
【0026】
上記の状態においては、タイマー(140)は10ms毎にトリガ信号(141)を生成するようプログラムされているため、第(n+1)周期開始時点から10ms経過後に、第(n+2)周期を開始させるためのトリガ信号(141)を生成する。それを受けてタスク・ディスパッチャ(131)はタスク1(110)、タスク2(111)、タスク3(112)を順番に起動して行こうとするが、この時点では第(n+1)周期内におけるタスク3(112)の処理は未だ完了しておらず、タスク・ディスパッチャ(131)は依然busy状態のままである。一方でタスク・ディスパッチャ(131)はタイマー(140)からのトリガ信号受信に応じて第(n+2)周期のタスク処理を起動するために自らの状態をbusy状態にしようとするため、タスク・ディスパッチャ(131)の状態に不整合が生じることになる。
【0027】
このため、仮に本来よりも遅れたタイミングでタスク3(112)の完了がタスク・ディスパッチャ(131)に報告されても、タイミング230の時点において、第(n+1)周期におけるタスク3(112)の完了信号(122c)の受信とタイマー(140)による第(n+2)周期の開始を通知するトリガ信号(141)の受信とが重複してしまい、タスク・ディスパッチャ(131)は現状のbusy状態を以前の一連のタスク処理に該当するものとして解除して良いのか、あるいは次の一連のタスク処理に該当するためbusy状態を継続すべきなのか判断が出来ない。この不整合によりタスク・ディスパッチャ(131)が正常に動作を継続出来ない事態に陥る、あるいはタスク1(110)、タスク2(111)、タスク3(112)の処理が正しく継続出来なくなり、その処理内容の信頼性が低下する、などの問題が発生することになる。
【0028】
上記技術に関連して、特許文献1には、位置探索サービスをサポートするための技術であって、周期的トリガーサービスを有し、位置探索を実施する発明の構成が記載されており、さらに、受信した情報が蓄積された情報と適合しない場合に修正する技術が開示されている。
【先行技術文献】
【特許文献】
【0029】
【特許文献1】特開2013-048444号公報
【発明の概要】
【発明が解決しようとする課題】
【0030】
図14の例で示した通り、一定周期で実行され、かつその起動に走行データ(151)の到着が必要となるタスクがある場合、走行データ(151)の到着が遅れること等の理由で所定の一定周期内にタスクの処理が完了せず、次の一定周期までその完了が遅れてしまい、全体のタスクないしMPU(100)の実行結果が保証出来ないケースが起こりえる。なおこの様なタスクの完了の遅れは走行データ(151)の遅延に限った事では無く、例えばIntegrated ECU上の仮想マシンで実行されているMPU(100)が同一Integrated ECU上の他の仮想マシンで実行されているアプリケーションによる外乱を受けること、等の様々な要因が想定される事は自明である。
【0031】
本発明は、上記課題に鑑みてなされたものであり、一定周期で実行されるタスクが何らかの要因により所定の周期内に処理が完了しない場合であっても、各タスクないしMPU全体として正常な動作を継続可能とする情報処理装置を提供することを目的としている。
【課題を解決するための手段】
【0032】
上述の目的を実現するために、本発明に係る情報処理装置は、複数のタスクを実行するタスク実行部と、所定の周期で第一のトリガ信号を生成する周期生成部と、第一のトリガ信号を受信し、タスク実行部に対して複数のタスクの実行開始を指示する第二のトリガ信号を送信するタスク実行管理部と、を有し、タスク実行管理部は、タスク実行部の実行状況に応じて第二のトリガ信号の送信タイミングを調整する。
【発明の効果】
【0033】
本発明によれば、一定周期で実行されるタスクが何らかの要因により所定の周期内に処理が完了しない場合であっても、各タスクないしMPU全体として正常な動作を継続させることが可能となる。
本発明に関連する更なる特徴は、本明細書の記述、添付図面から明らかになるものである。また、上記した以外の課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【0034】
図1】一般的な情報処理装置の構成を示すブロック図。
図2】本発明に係るMPUの構成の一例を示すブロック図。
図3】本発明に係るMPUが有するタイム・キーパーの構成を示すブロック図。
図4】走行データ受信の遅延が生じていない場合に本発明に係るMPUが実行する処理を示すタイムチャート。
図5】本発明に係るMPU内にて実行される処理の概要を示すシーケンス図。
図6】タスク・ディスパッチャが実行する処理を示すフローチャート。
図7】走行データ受信の遅延が生じた場合に本発明に係るMPUが実行する処理を示すタイムチャート。
図8】タイム・キーパーが実行する処理を示すフローチャート。
図9】本発明の変形例に係るMPUが実行する処理を示すタイムチャート。
図10図9に示す処理中タイム・キーパーが実行する処理を示すフローチャート。
図11】従来のMPUの構成の一例を示すブロック図。
図12】従来のMPUが実行する処理の一例を示すタイムチャート。
図13】従来のMPUにおいてタスク・ディスパッチャが実行する処理を示すフローチャート。
図14】従来のMPUを採用した場合に、走行データ受信の遅延が生じた場合に生じる問題点を説明するためのタイムチャート。
【発明を実施するための形態】
【0035】
以下、本発明の実施形態について、図面を用いて説明する。
図2は、本発明の一実施例に係るMPU(100)の構成を示すブロック図である。本実施例に係るMPU(100)は、所定の周期毎にタスク1(110)、タスク2(111)、タスク3(112)を実行する点においては従来と同様である。本実施例に係るMPU(100)が図11に示した従来のMPU(100)と異なる点は、RTOS(130)内にさらにタイム・キーパー(300)を備える点である。従来のMPU(100)におけるタスク・ディスパッチャ(131)はタイマー(140)からのタスクの起動タイミングを示すトリガ信号(141)を直接受信し、各タスクを起動していたが、本実施例においては、タイマー(140)からのトリガ信号(141)はタイム・キーパー(300)に送信され、タスク・ディスパッチャ(131)は、タイム・キーパー(300)からのトリガ信号(320)の受信に応じて各タスクを起動する。
【0036】
タイム・キーパー(300)はMPU(100)内に設置されたタイマー(140)で生成される例えば10ms毎の一定間隔のトリガ信号(141)に基づいて、タスク・ディスパッチャ(131)に対してそれぞれのタスク1~3を一定間隔で起動していくタイミングをトリガ信号(320)の送信により伝える。タイマー(140)は例えばハードウェア的に実装されても良いし、ソフトウェア的に実装されても良い。
【0037】
タスク・ディスパッチャ(131)はRTOS(130)内に設置されたタイム・キーパー(300)からのトリガ信号(320)に基づいて、それぞれのタスク1~3を一定間隔で起動していく。またタスク・ディスパッチャ(131)はそれぞれのタスクから来る完了信号(122)を監視し、全てのタスクの実行が完了したのを確認すると直ちにディスパッチャ完了信号(310)をタイム・キーパー(300)に伝える。
【0038】
図3にタイム・キーパー(300)の構成例を示す。タイム・キーパー(300)はディスパッチャ完了信号(310)を保持しておくディスパッチャ完了信号保持レジスタ(301)、タイマー(140)からのトリガ信号(141)を保持しておくタイマー要求保持レジスタ(302)、ディスパッチャ完了信号保持レジスタ(301)の出力(304)およびタイマー要求保持レジスタ(302)の出力(305)が共に有効になった際にトリガ信号(320)を生成するAND器(303)を有する。またディスパッチャ完了信号保持レジスタ(301)およびタイマー要求保持レジスタ(302)はトリガ信号(320)が出力されるとその内容がクリアされるように設定されている。なお、「ディスパッチャ完了信号(310)及びトリガ信号(141)を保持」するとは、例えば各レジスタがフラグを有しており、信号の受信に応じてフラグを1に設定し、リセットする際にはフラグを0にする、といった方法で実現される。
【0039】
図4は、走行データ受信の遅延が生じていない場合に、本実施例に係るMPU(100)が実行する処理を示すタイムチャートである。なお、図4に示すタイムチャートは、図12に示す従来例におけるタイムチャートにタイム・キーパー(300)による処理が加わったものであるため、タイム・キーパー(300)に関わる処理についてのみ説明する。
【0040】
タイマー(140)がある10ms周期のタイミング(例えば第n周期の開始タイミング)でトリガ信号(141)を生成すると、それを受けてタイム・キーパー(300)はタイマー要求保持レジスタ(302)にトリガ信号が来た情報を保持する。ここでタイム・キーパー(300)のディスパッチャ完了信号保持レジスタ(301)は初期値として完了信号を保持した状態であるため、AND器(303)はタイマー(140)からのトリガ信号(141)の受信に応じてトリガ信号(320)をタスク・ディスパッチャ(131)に送信すると同時にディスパッチャ完了信号保持レジスタ(301)とタイマー要求保持レジスタ(302)をクリアする。トリガ信号(320)の受信に応じてタスク・ディスパッチャ(131)はbusy状態となりタスク1(110)、タスク2(111)、タスク3(112)を順番に起動していく。このタスク起動処理については従来と同様である。
【0041】
図5は、本実施例に係るMPU(100)内にて実行される上記処理の概要を示すシーケンス図である。図5に示すように、まずステップ501においてタイマー(140)が各周期の開始タイミングにおいてトリガ信号を生成し、タイム・キーパー(300)に送信する。ステップ502及び503において、タイム・キーパー(300)は、ディスパッチャ完了信号保持レジスタ(301)及びタイマー要求保持レジスタ(302)の内容をクリアするとともに、タスク・ディスパッチャ(131)に、各タスクの起動タイミングを通知するトリガ信号(320)を送信する。ステップ504においてタスク・ディスパッチャ(131)はタスクを順次起動させ、ステップ505において該周期内において最後に実行されるタスクからの完了信号(122)を受信する。タスク・ディスパッチャ(131)は、該最後の完了信号受信に応じて、ステップ506においてタイム・キーパー(300)にディスパッチャ完了信号(310)を送信する。ステップ507においてタイム・キーパー(300)は、ディスパッチャ完了信号保持レジスタ(301)にディスパッチャ完了信号(310)を保持し、タイマー(140)から次のトリガ信号(141)を受信するまで待機する。
【0042】
続いて、本実施例においてタスク・ディスパッチャ(131)が実行する処理について図6のフローチャートを用いて説明する。図6のフローチャートは、図13に示した従来におけるタスク・ディスパッチャ(131)が実行する処理に加えて、ステップS601が追加されている。また、ステップS1301において受信するトリガ信号は、タイマー(140)からのトリガ信号(141)ではなく、タイム・キーパー(300)からのトリガ信号(320)である。
【0043】
本実施例におけるタスク・ディスパッチャ(131)は、ステップS1304において該周期内に実行されるべき全タスクの処理が完了したと判定すると、ディスパッチャ完了信号(310)を生成し、タイム・キーパー(300)に送信する。タイム・キーパー(300)は、上述の通りこれに応じてディスパッチャ完了信号保持レジスタ(301)にこの信号を保持する。
【0044】
図7に、走行データ受信の遅延が生じた場合に本実施例に係るMPU(100)が実行する処理を表すタイムチャートを示す。図7においては、第(n+1)周期において、走行データ(151)の受信が遅延したと想定する。
【0045】
第n周期内における処理については走行データの受信遅延が生じていない図4と同様であり、タスク・ディスパッチャ(131)はタスク1~3を順次起動し、最後のタスク3(112)から完了信号(122c)を受信すると、ディスパッチャ完了信号(310)をタイム・キーパー(300)に送信する。タイム・キーパー(300)は、該受信においディスパッチャ完了信号保持レジスタ(301)に該受信情報を保持する。
【0046】
そして、タイマー(140)は第n周期に続く第(n+1)周期の開始タイミングにおいてトリガ信号(141)を生成し、タイム・キーパー(300)に送信する。すると、タイム・キーパー(300)はタイマー要求保持レジスタ(302)にトリガ信号が来たことを保持する。上述の通りタイム・キーパー(300)のディスパッチャ完了信号保持レジスタ(301)は完了を保持した状態であるため、AND器(303)はトリガ信号(320)をタスク・ディスパッチャ(131)に送信すると同時にディスパッチャ完了信号保持レジスタ(301)とタイマー要求保持レジスタ(302)をクリアする。それを受けてタスク・ディスパッチャ(131)はbusy状態となりタスク1(110)、タスク2(111)、タスク3(112)を順番に起動していく。
【0047】
タスク・ディスパッチャ(131)はタスク2(111)からの完了信号(122b)を受信後、タスク3(112)を起動するための起動信号(121c)をタスク3(112)に送信し、タスク3(112)を起動しようとする。しかし、上述の通り図7においては第(n+1)周期中において走行データ(151)の受信に遅延(240)が生じている。
【0048】
第(n+1)周期内におけるタスク3(112)の実行が完了しない場合であっても、タイマー(140)内のタイムカウンタは作動し続けるため、第(n+1)周期の開始から10ms経過後に、タイマー(140)は第(n+2)周期における処理を開始するためのトリガ信号(141)を生成し、タイム・キーパー(300)に送信する。タイム・キーパー(300)は該信号の受信に応じてタイマー要求保持レジスタ(302)にトリガ信号(141)が来た情報を保持する。しかし、タスク・ディスパッチャ(131)はこの時点ではタスク3(112)から完了信号(122c)を受信していないため、タイム・キーパー(300)にディスパッチャ完了信号(310)を送信していない。従って、タイム・キーパー(300)のディスパッチャ完了信号保持レジスタ(301)にはディスパッチャ完了信号(310)の受信情報が保持されていない。そのため、AND器(303)の信号生成条件が成立せず、タイム・キーパー(300)によるトリガ信号(320)の生成は保留状態となる。
【0049】
上述の保留状態は第(n+1)周期内にて遅延していたタスク3(112)の実行が完了し、タスク・ディスパッチャ(131)がタイム・キーパー(300)に対してディスパッチャ完了信号(310)を送信するまで継続する。その結果として、第(n+2)周期の始点として想定されていたタイミングから、タイム・キーパー(300)がディスパッチャ完了信号(310)を受信するまでの期間(260)は、第(n+2)周期の開始タイミングを通知するトリガ信号(141)の生成が保留状態になる「抑止期間」となる。
【0050】
タスク・ディスパッチャ(131)がタスク3(112)からの完了信号(122c)の受信に応じてタイム・キーパー(300)に対してディスパッチャ完了信号(310)を送信すると、タイム・キーパー(300)はディスパッチャ完了信号保持レジスタ(301)に信号を保持する。すると、AND器(303)のON条件が満たされるため、タイム・キーパー(300)第(n+2)周期の開始を通知するトリガ信号(320)をタスク・ディスパッチャ(131)に送信すると同時にディスパッチャ完了信号保持レジスタ(301)とタイマー要求保持レジスタ(302)をクリアする。それを受けてタスク・ディスパッチャ(131)はbusy状態となりタスク1(110)、タスク2(111)、タスク3(112)を順番に起動していく。以下、先述と同様の流れに従ってタスク1(110)、タスク2(111)、タスク3(112)が処理されていく。
【0051】
上記説明した実施例においてタイム・キーパー(300)が実行する処理を図8のフローチャートを用いて説明する。まずステップS801においてタイム・キーパー(300)は、タイマー(140)から、ある周期の開始タイミングを通知するトリガ信号(141)を受信する。ステップS802において、タイム・キーパー(300)はディスパッチャ完了信号保持レジスタ(301)を参照し、ディスパッチャ完了信号(310)の受信を保持しているか否か判定する。保持していなければそのまま待機し、保持していればステップS803へと移行し、トリガ信号(320)を生成し、タスク・ディスパッチャ(131)に対して処理の開始を通知する。
【0052】
以上説明した様に本実施例によれば、あるタスクの実行が想定されていた実行周期内に完了しなかった場合においても、タイム・キーパー(300)は全てのタスクの実行が完了するまでタスク・ディスパッチャ(131)に処理開始を通知するトリガ信号(320)の生成を保留とすることで、タイマー(140)から次の周期の開始を通知するトリガ信号(141)を受信した場合であってもタスク・ディスパッチャ(131)は正常に動作を継続することが可能であり、タスク1(110)、タスク2(111)、タスク3(112)の処理も正しく継続することが可能となる。
【0053】
次に、本発明の変形例に係るMPU(100)が実行する処理について図9-10を用いて説明する。図9は、変形例に係るMPU(100)が実行する処理を示すタイムチャートであり、図10は、タイム・キーパー(300)が実行する処理を示すフローチャートである。
【0054】
上記で説明した実施例においては、あるタスクの実行が想定されていた周期内に完了しない場合に、次の周期の開始を通知するトリガ信号が生成されることに起因する問題点を解消することを目的としていた。これに対して変形例においては、一周期内において全てのタスク実行が完了するまでの期間が所定の期間よりも短いときに、次の周期の開始を早め、CPUの利用効率を向上させることを目的とするものである。
【0055】
具体的には、図9に示すように例えば第n周期において、タイム・キーパー(300)は、タスク・ディスパッチャ(131)からディスパッチャ完了信号(310)を受信した時点から、タイマー(140)から第(n+1)周期の開始を通知するトリガ信号(141)を受信するまでの時間である周期間期間(270)を計測する。これは例えば、ディスパッチャ完了信号保持レジスタ(301)とタイマー要求保持レジスタ(302)のそれぞれにタイムカウンタを備えさせ、その受信時刻の差分を得ることで計測可能である。
【0056】
タイム・キーパー(300)は第n周期内においてタスク1-3の実行が完了するまでの期間と所定の期間とを比較し、タスク1-3の実行が完了するまでの期間が該所定の期間よりも短い場合に、タイマー(140)に対して、第(n+2)周期の開始を短縮時間(280)だけ早めるように指示する。これは、周期間期間(270)と、一周期(図9においては10ms)と上記所定の期間との差分を比較することによって判定できる。
【0057】
上記において、タスク1-3の実行が完了するまでの期間と比較される所定の期間は、既述の、周期内にタスクの実行が完了しない場合の問題が生じないような範囲で設定され、走行データの受信間隔や各タスクの最悪実行時間等を考慮して予め定めることができる。
【0058】
図10は、本変形例においてタイム・キーパー(300)が実行する処理を示すフローチャートである。まず、ステップS1001において、タイム・キーパー(300)はタスク・ディスパッチャ(131)からディスパッチャ完了信号(310)を受信する。ステップS1002において、タイム・キーパー(300)から、次の周期の開始を通知するトリガ信号(141)を受信する。そしてタイム・キーパー(300)は上述のように周期間期間(270)を計測し、ステップS1003において、予め設定された所定の期間に対応する閾値と比較し、周期間期間(270)が閾値よりも長ければ、一周期内において全タスクの実行を完了してから次周期が始まるまでの期間に余裕があると判断し、ステップS1004において、タイム・キーパー(300)に対して、次の周期の開始を通知するトリガ信号(141)の生成周期を短縮するよう指示する信号を送信する。
【0059】
以上説明した変形例によれば、一周期内において全タスクの実行を完了してから次周期の開始までに余裕がある場合に、周期開始のタイミングを早めることで、CPUが稼働しないidle時間を削減することが可能になり、CPUの利用効率を向上させ、タスク実行の高速化が期待できる。
【0060】
以上で説明した本発明の実施例によれば、以下の作用効果を奏する。
(1)本発明に係る情報処理装置は、複数のタスクを実行するタスク実行部と、所定の周期で第一のトリガ信号を生成する周期生成部と、第一のトリガ信号を受信し、タスク実行部に対して複数のタスクの実行開始を指示する第二のトリガ信号を送信するタスク実行管理部と、を有し、タスク実行管理部は、タスク実行部の実行状況に応じて第二のトリガ信号の送信タイミングを調整する。
【0061】
上記構成により、一定周期で実行されるタスクが何らかの要因により所定の周期内に処理が完了しない場合であっても、各タスクないしMPU全体として正常な動作を継続することが可能になる。
【0062】
(2)タスク実行部による、周期内における複数のタスクの実行を完了するまでの期間が所定の期間よりも短い場合に、タスク実行管理部は、周期生成部に対して第一のトリガ信号を生成する周期を短縮化させる指示信号を送信する。これにより、CPUが稼働しないidle時間を削減することが可能になり、CPUの利用効率を向上させ、タスク実行の高速化が期待できる。
【0063】
(3)タスク実行部は、周期内における複数のタスクの全ての実行が完了した場合に、タスク実行管理部に対して実行完了信号を送信し、タスク実行管理部は、第一のトリガ信号を受信した後、実行完了信号の受信を条件として第二のトリガ信号を送信する。これにより、タイム・キーパー(300)は全てのタスクの実行が完了するまでタスク・ディスパッチャ(131)に処理開始を通知するトリガ信号(320)の生成を保留とすることで、タイマー(140)から次の周期の開始を通知するトリガ信号(141)を受信した場合であってもタスク・ディスパッチャ(131)は正常に動作を継続することが可能になる。
【産業上の利用可能性】
【0064】
本実施例では地図情報処理ユニット(MPU)での動作を例に説明しているが、これはMPUに限定されるものでは無く、例えば一定間隔で定期的な処理を行うシステム全般への適用が考えられる。また情報処理システムは必ずしも実機である必要は無く、前述の通り例えばIntegrated ECUの上に構築されたMPUや情報処理システム全般への応用が考えられる。
【0065】
なお、本発明は、上記の実施例に限定されるものではなく、様々な変形が可能である。例えば、上記の実施例は、本発明を分かりやすく説明するために詳細に説明したものであり、本発明は、必ずしも説明した全ての構成を備える態様に限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能である。また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、削除したり、他の構成を追加・置換したりすることが可能である。
【符号の説明】
【0066】
100:MPU(情報処理装置) 131:タスク・ディスパッチャ(タスク実行部) 140:タイマー(周期生成部) 300:タイム・キーパー(タスク実行管理部)
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14