(57)【要約】【課題】リソースが排他的に割り当てられているタスクの実行が完了しない場合にも、そのタスクを終了させ、他のタスクを実行できるタスク制御装置及びタスク制御方法を提供する。【解決手段】ＣＰＵ１１は、特定タスクＴｘの排他区間処理を実行するに先立って、優先度が最高優先度よりも低い優先度のタスクＴの割り込みを排除する排他状態とする。続いて、実行中の特定タスクＴｘに応じて決められた所定時間に排他時間監視用タイマ２１ａのカウンタをセットしてから、排他時間監視用タイマ２１ａをスタートさせる。そして、排他時間監視用タイマ２１ａのカウンタがゼロになる、すなわち排他状態になってから所定時間が経過すると、強制終了タスクＴｅを割り込ませて特定タスクＴｘを強制的に終了させる。【選択図】図１
2018195138.tif 000002
【特許請求の範囲】
【請求項１】
複数のタスクを実行するタスク制御装置であって、
前記複数のタスクには、割り当てられるリソースの他のタスクへの割り当てを制限した排他状態で実行する排他区間処理を有する特定タスクが含まれ、
前記排他区間処理の実行前に前記排他状態とする排他制御部と、
前記特定タスクの実行時において、前記排他状態となってから所定時間が経過した場合に、前記特定タスクの少なくとも前記排他区間処理を強制的に終了させる強制終了部とを備えたタスク制御装置。
【請求項２】
請求項１に記載のタスク制御装置において、
前記特定タスクに応じて前記所定時間を設定する所定時間設定部を備えたタスク制御装置。
【請求項３】
請求項１又は２に記載のタスク制御装置において、
前記排他制御部は、最高優先度よりも低い優先度のタスクの割り込みを排除することで前記排他状態とし、
前記強制終了部は、最高優先度に設定され、前記所定時間の経過後に前記特定タスクの少なくとも前記排他区間処理を終了させる強制終了タスクを含むタスク制御装置。
【請求項４】
請求項１〜３のいずれか一項に記載のタスク制御装置において、
前記排他状態となってからの時間経過を計測するハードウェアタイマを備えたタスク制御装置。
【請求項５】
割り当てられるリソースの他のタスクへの割り当てを制限した排他状態で実行する排他区間処理を有する特定タスクを含む複数のタスクを実行するタスク制御方法であって、
前記特定タスクの実行時において、前記排他状態となってから所定時間が経過した場合に、前記特定タスクの少なくとも前記排他区間処理を強制的に終了させるタスク制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タスク制御装置及びタスク制御方法に関する。
【背景技術】
【０００２】
従来、複数のタスクを実行するタスク制御装置として、タスクの優先度等に応じてタスクを切り替えて実行するものがある。
各タスクは、所定周期で実行されるようになっており、予め設定された時間（デッドライン）内に当該タスクの実行を完了する必要がある。そのため、例えば特許文献１に記載のタスク制御装置では、特定リソースへアクセスする登録対象タスクについてその実行開始タイミングを遅延させられたとしてもデッドライン時間経過前に実行完了できるか否かを判定し、完了できると判定された登録対象タスクを実行対象タスクとして登録する。そして、タスクの切り替え時に、実行対象タスクとして登録されたタスクのうち、特定リソースへ先にアクセスしているタスクへのリソース割当が完了するまで、当該特定リソースへ後からアクセスしようとするタスクへのリソース割当を中止するようにしている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−１４９３１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、タスクを構成する各種処理の中には、該タスクにリソースが排他的に割り当てられている状態で実行する処理（排他区間処理）がある。こうした排他区間処理を有するタスクの実行時において、何らかの事由により排他区間処理の実行が完了しないと、同リソースを割り当てる他のタスクを実行することができない。その結果、タスクの実行をデッドライン時間内に完了できなくなるおそれがあり、この点においてなお改善の余地があった。
【０００５】
本発明の目的は、リソースが排他的に割り当てられているタスクの実行が完了しない場合にも、そのタスクを終了させ、他のタスクを実行できるタスク制御装置及びタスク制御方法を提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するタスク制御装置は、複数のタスクを実行するものであって、前記複数のタスクには、割り当てられるリソースの他のタスクへの割り当てを制限した排他状態で実行する排他区間処理を有する特定タスクが含まれ、前記排他区間処理の実行前に前記排他状態とする排他制御部と、前記特定タスクの実行時において、前記排他状態となってから所定時間が経過した場合に、前記特定タスクの少なくとも前記排他区間処理を強制的に終了させる強制終了部とを備えた。
【０００７】
また、上記課題を解決するタスク制御方法は、割り当てられるリソースの他のタスクへの割り当てを制限した排他状態で実行する排他区間処理を有する特定タスクを含む複数のタスクを実行するものであって、前記特定タスクの実行時において、前記排他状態となってから所定時間が経過した場合に、前記特定タスクの少なくとも前記排他区間処理を強制的に終了させる。
【０００８】
上記各構成によれば、特定タスクの実行時において、排他状態となってから所定時間が経過すると、リソースが排他的に割り当てられた特定タスクの少なくとも排他区間処理が強制的に終了されるため、同リソースの割り当てが必要な他のタスクが実行できなくなることを抑制できる。
【０００９】
上記タスク制御装置において、前記特定タスクに応じて前記所定時間を設定する所定時間設定部を備えることが好ましい。
上記構成によれば、リソースが排他的に割り当てられた特定タスクに応じて、強制的に終了されるまでの時間を設定できるため、好適に複数のタスクを実行できる。
【００１０】
上記タスク制御装置において、前記排他制御部は、最高優先度よりも低い優先度のタスクの割り込みを排除することで前記排他状態とし、前記強制終了部は、最高優先度に設定され、前記所定時間の経過後に前記特定タスクの少なくとも前記排他区間処理を終了させる強制終了タスクを含むことが好ましい。
【００１１】
上記構成によれば、過大な演算負荷を加えることなく、排他状態を実現するとともに特定タスクの少なくとも排他区間処理を強制的に終了できる。
上記タスク制御装置において、前記排他状態となってからの時間経過を計測するハードウェアタイマを備えることが好ましい。
【００１２】
上記構成によれば、簡易な構成で排他状態となってからの時間を確実に計測できる。
【発明の効果】
【００１３】
本発明によれば、リソースが排他的に割り当てられているタスクの実行が完了しない場合にも、そのタスクを終了させ、他のタスクを実行できる。
【図面の簡単な説明】
【００１４】
【図１】タスク制御装置の概略構成図。
【図２】特定タスクについて排他区間処理を実行する前後の手順を示すフローチャート。
【図３】排他開始処理の手順を示すフローチャート。
【図４】排他終了処理の手順を示すフローチャート。
【図５】強制終了タスクの手順を示すフローチャート。
【発明を実施するための形態】
【００１５】
以下、タスク制御装置及びタスク制御方法の一実施形態を図面に従って説明する。
図１に示すように、タスク制御装置（マイコン）１は、ＣＰＵ（中央処理装置）１１と、メモリ１２と、タイマユニット１３とを備えている。ＣＰＵ１１は、メモリ１２及びタイマユニット１３とそれぞれ接続されている。そして、タスク制御装置１は、ＣＰＵ１１がタイマユニット１３の計測時間に基づいてメモリ１２に記憶された各種のプログラムに基づく演算を行うことにより、複数のタスクＴを実行する。なお、タスク制御装置１は、例えば電動パワーステアリング装置の制御装置として用いられ、各タスクＴの実行により運転者の操舵を補助するアシスト制御を行う。
【００１６】
各タスクＴは、適宜の関数等からなる各種の処理を組み合わせてなるプログラムの実行単位であり、所定周期毎に実行される。各タスクＴの実行周期は、タスクＴの内容に応じて例えば数百μｓ〜数ｍｓに設定されている。また、各タスクＴは、所定周期毎に実行が完了できるようにデッドライン時間が予め設定されている。本実施形態の各タスクＴには、デッドライン時間内に実行が完了したか否かを監視する処理が、各タスクＴを構成する処理の１つとして含まれている。そして、デッドライン時間内にタスクＴの実行が完了しなかった場合には、異常が発生したとしてその旨を報知する。
【００１７】
複数のタスクＴには、対象となる装置の動作制御や異常検出等を行うための各種のタスクがあり、特定タスクＴｘ及び強制終了部としての強制終了タスクＴｅが含まれる。特定タスクＴｘは、排他的にリソースが割り当てられる状態（排他状態）にした上で行う処理（排他区間処理）を含んで構成されるタスクである。なお、排他的に割り当てられるリソースの一例としては、ＣＰＵ１１の実行時間（使用時間）が該当する。強制終了タスクＴｅは、特定タスクＴｘの実行時において、排他状態となってから所定時間が経過した場合に、当該特定タスクＴｘ自体を強制的に終了させるタスクである。各タスクＴには、ＣＰＵ１１が実行する優先度が設定されており、本実施形態では強制終了タスクＴｅの優先度がすべてのタスクＴの中で最も高く設定されている。
【００１８】
タイマユニット１３は、タスクＴ毎に対応付けられた複数のハードウェアタイマ２１を備えている。ハードウェアタイマ２１の中には、強制終了タスクＴｅに対応する排他時間監視用タイマ２１ａが含まれる。各ハードウェアタイマ２１は、ＣＰＵ１１とは別の独立した機械構成（ハードウェア）からなるクロック（時計）の機能を有しており、カウンタに設定されたタイムアウト値（時間）をダウンカウントする。そして、各ハードウェアタイマ２１は、カウンタの値が所定値（本実施形態ではゼロ）になる毎に、ＣＰＵ１１のレジスタに設けられた所定のトリガを起動する。各トリガにはタスクＴが対応付けられており、ＣＰＵ１１は、タスクＴの優先度に応じて割り込みをしつつ、起動されたトリガに対応づけられたタスクＴを実行する。
【００１９】
具体的には、ＣＰＵ１１は、例えば一のタスクＴの実行時において、より優先度の高い他のタスクＴに対応するトリガが起動された場合には、一のタスクＴの実行途中で他のタスクＴを割り込ませて実行する。これに対し、例えば一のタスクＴの実行時において、より優先度の低い他のタスクＴに対応するトリガが起動された場合には、一のタスクＴを継続して実行し、当該一のタスクＴの完了後に他のタスクＴを実行する。
【００２０】
次に、特定タスクＴｘの排他区間処理及び強制終了タスクＴｅについて詳述する。
ＣＰＵ１１は、特定タスクＴｘの排他区間処理を実行するに先立って排他開始処理を実行する。そして、排他区間処理を実行し、その後に排他終了処理を行う。
【００２１】
排他開始処理では、ＣＰＵ１１は、優先度が最も高い最高優先度の強制終了タスクＴｅ以外の割り込みを排除する排他状態とする。すなわち、ＣＰＵ１１は、優先度が最高以外のすべての割り込み要因をマスクする。続いて、排他時間監視用タイマ２１ａのカウンタを実行中の特定タスクＴｘに応じて決められた所定時間にセットし、排他時間監視用タイマ２１ａをスタートさせる。そして、排他開始処理を実行し、排他状態とした上で排他区間処理を行う。なお、排他区間処理としては、例えば複数のタスクＴが共通して使用するメモリ１２に記憶されたデータの更新等が該当する。
【００２２】
排他終了処理では、ＣＰＵ１１は、排他区間処理の実行後に、排他時間監視用タイマ２１ａのカウンタをストップさせる。そして、リソースの排他的な割り当てを解除することにより、最高優先度以外の優先度のタスクＴの割り込みを許容する。
【００２３】
ここで、排他区間処理の実行時において、何らかの事由により当該排他区間処理が進まずに排他時間監視用タイマ２１ａのカウンタがゼロになると、すなわち排他状態になってから所定時間が経過すると、ＣＰＵ１１は、排他時間監視用タイマ２１ａに対応するトリガを起動させる。このとき、ＣＰＵ１１は、同トリガに対応付けられた強制終了タスクＴｅの優先度が最も高いため、排他区間処理の実行時であっても、強制終了タスクＴｅを割り込ませて特定タスクＴｘを強制的に終了させる。なお、排他区間処理の実行開始から所定時間が経過して強制終了タスクＴｅにより特定タスクＴｘを終了させた後は、例えば他のタスクＴを優先度の高い順に実行する。
【００２４】
次に、本実施形態のＣＰＵ１１による特定タスクＴｘの実行手順について排他区間処理の前後を中心に説明する。
図２のフローチャートに示すように、ＣＰＵ１１は、排他開始処理を実行してから（ステップ１０１）、排他区間処理を実行し（ステップ１０２）、その後に排他終了処理を行う（ステップ１０３）。なお、本実施形態では、ステップ１０２及びステップ１０３が排他制御部に相当する。
【００２５】
図３のフローチャートに示すように、排他開始処理において、ＣＰＵ１１は、先ず最高優先度よりも低い優先度の割り込み要因をマスクし、最高優先度よりも低い優先度のタスクＴの割り込みを排除する（ステップ２０１）。続いて、実行中の特定タスクＴｘに応じた所定時間（タイムアウト値）を設定し（ステップ２０２）、排他時間監視用タイマ２１ａのダウンカウントをスタートさせる（ステップ２０３）。なお、本実施形態では、ステップ２０２が所定時間設定部に相当する。
【００２６】
図４のフローチャートに示すように、排他終了処理において、ＣＰＵ１１は、排他時間監視用タイマ２１ａのダウンカウントをストップし（ステップ３０１）、ステップ２０１で設定した割り込み要因のマスクを解除する（ステップ３０２）。
【００２７】
ここで、排他区間処理が何らかの事由により完了せず、排他時間監視用タイマ２１ａのカウンタがゼロになると、実行中の特定タスクＴｘに割り込んで強制終了タスクＴｅが実行される。
【００２８】
図５のフローチャートに示すように、強制終了タスクＴｅにおいて、ＣＰＵ１１は、実行中のタスクＴを強制的に終了させる（ステップ４０１）。
以上記述したように、本実施形態によれば、以下の作用効果を奏することができる。
【００２９】
（１）排他区間処理を有する特定タスクＴｘの実行時において、排他状態となってから所定時間が経過した場合に、当該特定タスクＴｘを強制的に終了させるようにした。そのため、何らかの事由により排他区間処理が進まなくとも、リソースの割り当てが必要な他のタスクＴが実行できなくなることを抑制できる。
【００３０】
（２）特定タスクＴｘに応じて排他時間監視用タイマ２１ａに所定時間（タイムアウト値）を設定するようにしたため、好適に複数のタスクＴを実行できる。
（３）最高優先度よりも低いすべての優先度のタスクＴの割り込みを排除することにより排他状態を実現し、排他区間処理の開始から所定時間の経過後に実行中の特定タスクＴｘを終了させる強制終了タスクＴｅの優先度を最高に設定した。そのため、ＣＰＵ１１に過大な演算負荷を加えることなく、排他状態を実現するとともに特定タスクＴｘを強制的に終了できる。
【００３１】
（４）ハードウェアタイマ２１の１つを排他時間監視用タイマ２１ａとして構成したため、簡易な構成で排他状態となってからの時間を確実に計測できる。
なお、上記実施形態は、これを適宜変更した以下の態様にて実施することもできる。
【００３２】
・上記実施形態では、ハードウェアタイマ２１はカウンタの値をダウンカウントしたが、これに限らず、例えばカウンタの値をアップカウントし、所定値（例えば、タイムアウト値）になった場合にＣＰＵ１１のトリガを起動する構成としてもよい。
【００３３】
・上記実施形態において、デッドライン時間内に実行が完了したか否かを監視する処理を含めずに各タスクＴを構成してもよい。
・上記実施形態では、ハードウェアタイマ２１の１つを排他時間監視用タイマ２１ａとして構成したが、これに限らず、例えば別途ＣＰＵを設け、排他状態となってからの時間経過を計測してもよく、その構成は適宜変更可能である。
【００３４】
・上記実施形態では、最高優先度よりも低いすべての優先度のタスクＴの割り込みを排除することにより排他状態を実現し、排他区間処理の開始から所定時間の経過後に実行中の特定タスクＴｘを終了させる強制終了タスクＴｅの優先度を最高に設定した。しかし、これに限らず、排他状態となってから所定時間が経過した場合に、特定タスクＴｘを強制的に終了させることができれば、その態様は適宜変更可能である。
【００３５】
・上記実施形態では、特定タスクＴｘに応じて排他時間監視用タイマ２１ａに所定時間（タイムアウト値）を設定するようにしたが、これに限らず、特定タスクＴｘの種類とは無関係に所定時間を予め決められた時間としてもよい。
【００３６】
・上記実施形態では、排他状態となってから所定時間が経過した場合に特定タスクＴｘ全体を終了させたが、これに限らず、実行中の排他区間処理のみを終了させ、該排他区間処理に続く処理を実行してもよい。
【００３７】
・上記実施形態では、タスク制御装置１を電動パワーステアリング装置に適用したが、これに限らず、タスク制御装置１により制御する対象は問わない。
【符号の説明】
【００３８】
１…タスク制御装置、１１…ＣＰＵ、１２…メモリ、１３…タイマユニット、２１…ハードウェアタイマ、２１ａ…排他時間監視用タイマ、Ｔ…タスク、Ｔｅ…強制終了タスク、Ｔｘ…特定タスク。
【図１】
2018195138.tif 000003
【図２】
2018195138.tif 000004
【図３】
2018195138.tif 000005
【図４】
2018195138.tif 000006
【図５】
2018195138.tif 000007