JP3578082B2 - 処理実行装置及び記録媒体 - Google Patents
処理実行装置及び記録媒体 Download PDFInfo
- Publication number
- JP3578082B2 JP3578082B2 JP2000387120A JP2000387120A JP3578082B2 JP 3578082 B2 JP3578082 B2 JP 3578082B2 JP 2000387120 A JP2000387120 A JP 2000387120A JP 2000387120 A JP2000387120 A JP 2000387120A JP 3578082 B2 JP3578082 B2 JP 3578082B2
- Authority
- JP
- Japan
- Prior art keywords
- task
- event
- wake
- execute
- causing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 title claims description 65
- 238000000034 method Methods 0.000 claims description 105
- 230000008569 process Effects 0.000 claims description 90
- 230000000737 periodic effect Effects 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 8
- 238000012546 transfer Methods 0.000 claims description 7
- 230000002618 waking effect Effects 0.000 claims 4
- 230000008859 change Effects 0.000 description 12
- 238000007726 management method Methods 0.000 description 9
- 238000001514 detection method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- QVGXLLKOCUKJST-UHFFFAOYSA-N atomic oxygen Chemical compound [O] QVGXLLKOCUKJST-UHFFFAOYSA-N 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 229910052760 oxygen Inorganic materials 0.000 description 2
- 239000001301 oxygen Substances 0.000 description 2
- 230000004043 responsiveness Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000002485 combustion reaction Methods 0.000 description 1
- 239000000498 cooling water Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000004092 self-diagnosis Methods 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Combined Controls Of Internal Combustion Engines (AREA)
- Debugging And Monitoring (AREA)
Description
【発明の属する技術分野】
本発明は、リアルタイムオペレーティングシステム(以下「RTOS」という。)を用いたタスク切り換え技術に関する。
【0002】
【従来の技術】
例えば車両に搭載される電子制御装置(以下「ECU」という。)に用いられる制御プログラムでは、制御応答性や安全性の確保等から所定の処理をリアルタイムに実行する必要性がある。そのため、優先度の設定されたタスクの単位で処理プログラムを記述し、RTOSによるタスクの切り換えによって、リアルタイム性を確保している。
【0003】
より具体的には、イベントの発生を検知して起床要求プログラムが該当タスクの起床要求を行うと、RTOSがタスクを起床し、起床されたタスクにて、そのイベントに応じた処理(以下「イベント対応処理」という。)が実行されるようになっている。なお、タスクにはそれぞれ優先度が設定されている。これはタスク間に実行の優先順位が存在するからであり、リアルタイム性の高い処理ほど、優先度の高いタスクとして実現される。したがって、RTOSは、起床要求のあったタスクが起床されておらず、かつ、既に起床されているタスクがあれば、そのタスクよりも起床要求のあったタスクの優先度が高い場合に、その起床要求のあったタスクを起床する。
【0004】
従来、このRTOSによって起床されるタスクは、上述した優先度毎に、設けられていた。つまり、優先度が同じである複数のイベント対応処理が、1つのタスクに属するプログラム構造になっていた。これについて説明する。
RTOSによって起床されるタスクの優先度が3段階に設定されていれば、図5に示すように、高優先度のAタスク、中優先度のBタスク、低優先度のCタスクという具合に3つのタスクが存在する。一例として各タスクで実行されるイベント対応処理を挙げると、Aタスクで実行される処理は、1ms毎に実行される1ms処理、クランク軸の30°CA毎に実行される30°CA処理などである。また、Bタスクで実行される処理は、4ms毎に実行される4ms処理、8ms毎に実行される8ms処理、所定気筒のピストンが上死点(TDC)に来た時点で実行されるTdc処理、エンジンストール時に実行されるエンスト処理、自己診断を行うための故障検出処理などである。さらに、Cタスクで実行される処理は16ms毎に実行される16ms処理、32ms毎に実行される32ms処理などである。
【0005】
このようにタスクを優先度毎に設けている理由は、RTOSがタスクの切り換えを優先度で行うからであり、また、タスクの総数がそれほど多くならず、RTOSによる管理情報が比較的少なくなるためである。管理情報が減少すれば、RAMといったメモリの記憶容量を削減できる点で有利である。
【0006】
【発明が解決しようとする課題】
しかしながら、上述したプログラム構造では、1つのタスク内に複数のイベント対応処理が存在するため、要求されたイベント対応処理を各タスクが特定して実行する必要が生じる。
【0007】
具体的には、起床要求プログラムが、イベントの発生を検知すると、RTOSに対し該当タスクの起床要求を行うと共に、実行すべきイベント対応処理を特定するための識別情報(ID)を、待ち行列であるキュー(メモリ領域)に格納する。一方、タスクは、RTOSによって起床されると、キューからIDを読み出し、要求されたイベント対応処理を特定して実行する。
【0008】
IDのキューへの記憶及びキューからの取得は、FIFOと呼ばれる方式で行われる。FIFOは、ある場所に格納したデータを、古く格納した順に取り出すようにする方式である。これは、様々なイベントが連続して発生する可能性を考慮したものである。
【0009】
以上のように、従来のプログラム構造では、タスクが優先度毎に設けられていたため、イベントが発生する度に必ず、IDの記憶及び取得(以下適宜「キューイング」という。)が必要になっていた。このキューイングでは、キューにデータがあるか否かのチェックや、キューが一杯になっているか否かのチェックも必要である。そのため、従来のプログラム構造では、各種のイベントが連続して発生する状況下において、CPUの処理負荷が大きなものになっていた。
【0010】
そしてCPUの処理負荷が大きくなると、相対的に優先度の低いタスクの起床が遅れ、結果的にそのタスク内のイベント対応処理の実行が遅れることになる。また、CPUの負荷が100パーセントに達すると、相対的に優先度の低いイベント対応処理は間引かれて、実行されなくなってしまう。その結果、応答性が悪化するなど、制御性能への悪影響が生じる。
【0011】
本発明は、上述した問題点を解決するためになされたものであり、上述したイベント対応処理をRTOSに管理されるタスクで実現するにあたり、CPUの処理負荷を低減させることを目的とする。
【0012】
【課題を解決するための手段及び発明の効果】
上述した目的を達成するためになされた請求項1に記載の処理実行装置は、所定のイベントの発生を検知し、当該イベントに応じたイベント対応処理を実行するタスクスケジューリングプログラムを備えている。
【0013】
なお、本明細書では、「プログラムが・・・する」といったプログラムを主体とした表現を適宜用いるが、詳しくは、処理実行装置のCPUがプログラムに基づく処理を実行することによって各機能が実現されることは言うまでもない。
このタスクスケジューリングプログラムは、イベント対応処理を実現するためのタスクと、起床要求プログラムと、RTOSとを有している。そして、起床要求プログラムがイベントの発生を検知して該当するタスクの起床を要求すると、RTOSは、起床要求プログラムからの要求に応じ、設定された優先度に基づいてタスクを起床する。
【0014】
このとき、タスクに複数のイベント対応処理が記述されている場合には、起床要求プログラムが、該当するイベント対応処理を特定するための識別情報をメモリ領域に格納し、一方、タスクは、当該メモリ領域に格納された識別情報を読み出して、該当するイベント対応処理を特定し、実行する。
【0015】
このような基本構成を前提として、本発明では、特定イベントに対しては、当該特定イベント毎に、当該特定イベントに対応するイベント対応処理のみを実現するための専用タスクを用意することによって、識別情報によるイベント対応処理の特定を不要にした。
即ち、本発明のタスクスケジューリングプログラムは、特定イベントについては、特定イベント毎に、その特定イベントに対応するイベント対応処理を実現する専用タスクを備え、特定イベント以外のイベントについては、複数のイベント対応処理が記述された共有タスクを備える。
起床要求プログラムは、起床要求対象のタスクが共有タスクである場合にのみ、該当するイベント対応処理を特定するための識別情報をメモリ領域に格納する。また、タスクについては、共有タスクのみが、メモリ領域に格納された識別情報を読み出して、この識別情報に基づき、該当するイベント対応処理を特定するプログラムを備え、専用タスクは、これを有しない。
【0016】
つまり、本発明の技術思想は、イベントとタスクとを1対1に対応させることによって、従来技術で説明したような識別情報のキューイングを不要にし、CPUの処理負荷を軽減するものである。
なお、特定イベントは、発生するイベントの一部とすることが考えられる。全てのイベントとタスクとを1対1に対応させてもよいが、その場合には、タスク数が膨大になり、RTOSの管理情報が多くなってしまうからである。また、イベントによって識別情報のキューイングが連続的に生じることによってCPUの処理負荷が増大するという事実を考えると、単発的に発生するイベントに対して専用タスクを割り当てる必要性は小さい。
【0017】
そこで、特定イベントは、時間に同期して発生する周期的なイベントとすることが考えられる。例えば所定時間間隔で繰り返し発生するイベントを特定イベントにするという具合である。また、請求項2に示すように、処理実行装置が所定の制御対象を制御する制御装置として実現されている場合、特定イベントは、制御対象の運転状態に同期して発生する周期的なイベントとしてもよい。ここで制御対象の一例としては、車両のエンジンが考えられる。制御対象が車両のエンジンである場合、請求項3に示すように、エンジンの回転に同期して発生するイベントを特定イベントにするという具合である。具体的には、エンジンのクランク軸の回転に同期した回転同期イベントを特定イベントにするという具合である。
【0018】
このように周期的に繰り返されるイベントを特定イベントとして、この特定イベントに専用タスクを対応させ、識別情報のキューイングを不要にすれば、CPUの処理負荷を大幅に削減することができる。
また、例えば制御対象が車両のエンジンなどである場合、モデルチェンジのタイミングや設計変更などで、追加/削除されるイベントもある。このようなイベントの追加/削除があると、該当するイベント対応処理の変更が必要になる。しかし、専用タスクとしてそのイベント対応処理を実現する場合、タスク構成自体を変更する必要が生じて、変更作業に手間がかかる。
【0019】
そこで、本装置を含むシステムの変更があっても追加あるいは削除される可能性が相対的に小さなイベントを、特定イベントとすることが望ましい。このようにすれば結果的に、専用タスクを変更する必要が少なくなり、タスク構成自体の変更が少なくなって、イベントの追加/削除による変更作業が容易になるからである。
【0020】
さらにまた、上述したイベントはイベント対応処理のトリガとなるものであるが、このようなトリガに加え処理対象のデータを含むメッセージ(イベント+データ)が存在する。この場合には、このデータの受け渡しにおいてキューイングが必要になるため、専用タスクとしてもデータのキューイングは発生することになる。したがって、請求項4に示すように、起床要求プログラムからタスクへのデータの受け渡しを必要としないイベントを、特定イベントとすることが考えられる。
【0021】
なお、車両のエンジンを制御対象とする場合、周期的なイベントは、一般的に追加/削除される可能性が少なく、また、データの受け渡しを要しない場合が多い。
ところで、請求項5に示すように、上述してきた発明において、特定イベント以外のイベントに対応するイベント対応処理は、従来技術と同様に、優先度毎に用意された共有タスクで実現することが考えられる。タスクの切り換えを優先度毎に行うRTOSの管理手法から見て適切だからであり、また、タスクの総数を抑えることができ、RTOSによる管理情報を比較的少なくできるためである。管理情報が減少すれば、RAMといったメモリの記憶容量を削減できる。つまり、CPUの処理負荷低減に有効なイベントに対する処理は専用タスクとして実現し、一方、そうでないイベントに対する処理は優先度毎の共有タスクとして実現することによって、共有タスクとして実現した場合のメリットも享受できるのである。
【0022】
なお、上述したタスクスケジューリングプログラムの場合、例えば、FD、MO、CD−ROM、DVD、ハードディスク等のコンピュータ読み取り可能な記録媒体に記録し、必要に応じてコンピュータシステムにロードして起動することにより用いることができる。この他、ROMやバックアップRAMをコンピュータ読み取り可能な記録媒体としてプログラムを記録しておき、このROMあるいはバックアップRAMをコンピュータシステムに組み込んで用いてもよい。
【0023】
【発明の実施の形態】
以下、本発明を具体化した一実施例を図面を参照して説明する。
図1は、本発明の「処理実行装置」を具体化したエンジン制御装置(以下「ECU」という。)1の構成を表すブロック図である。ECU1は、車両に搭載された内燃機関型エンジンの制御を行う。
【0024】
ECU1は、エンジンのクランク軸が所定角度回転する毎にパルス状の信号を出力する回転角センサ、エンジンの特定の気筒のピストンが所定位置(例えば上死点:TDC)にくる度にパルス状の信号を出力する基準位置センサ、エンジンの冷却水の温度を検出する水温センサ、及び酸素濃度を計測する酸素濃度センサ等、エンジンの運転状態を検出する様々なセンサ30からの信号を入力して波形整形やA/D変換を行う入力回路21と、入力回路21からのセンサ信号に基づき、エンジンを制御するための様々な処理を実行するマイコン10と、マイコン10からの制御データに応じて、エンジンに取付けられたインジェクタ(燃料噴射装置)及びイグナイタ(点火装置)等のアクチュエータ40を駆動する出力回路22とを、備えている。
【0025】
そして、マイコン10には、プログラムを実行する周知のCPU11と、CPU11によって実行されるプログラムを記憶するROM12と、CPU11による演算結果等を記憶するためのRAM13と、入力回路21及び出力回路22との間で信号をやり取りするためのI/O14と、各種レジスタやフリーランカウンタ等(図示省略)とが備えられている。
【0026】
このように構成されたECU1は、各種センサ30から入力回路21を介して入力される信号に基づき、出力回路22に接続されたアクチュエータ40を駆動する、エンジン制御処理を行う。
次に図2に基づき、ROM12に記憶される「タスクスケジューリングプログラム」としてのエンジン制御プログラムの構成を説明する。エンジン制御プログラムは、少なくとも、起床要求プログラム12a、RTOS12b、及び、タスク12c,12dから構成されている。
【0027】
起床要求プログラム12aの実行により、イベントの発生が検知されると、起床要求プログラム12a中の起床要求処理が実行される。この起床要求処理では、検知されたイベントに対応するタスク12c,12dを特定し、RTOS12bに対して、タスク12c,12dの起床を要求する。なお、イベントの発生は、上述したセンサ群30からの信号に基づいて検知することが考えられる。また、マイコン10内部のフリーランカウンタによって検知することが考えられる。さらに、車内LAN等のネットワーク情報によって検知することが考えられる。
【0028】
RTOS12bは、タスク12c,12dの起床要求があると、起床要求のあったタスク12c,12dが実行中でない場合で、かつ、既に起床されているタスク12c,12dの優先度が起床要求のあったタスク12c,12dの優先度よりも低い場合に、起床要求のあったタスク12c,12dを起床する。これによって優先度に基づくタスク12c,12dの起床(切り換え)が行われ、リアルタイム性の高いタスク12c,12dが優先的に実行される。
【0029】
特に本実施例では、タスク12c,12dの構成を工夫しており、A,B,Cの3つの共有タスク12cと、D,E,F,G,H,I,Jの7つの専用タスク12dを備える構成とした。
本実施例では、特定のイベントに対しては、そのイベントに対応するイベント対応処理のみを実現するD〜Jの専用タスク12dを用意した。ここで特定のイベントとは、制御対象であるエンジン回転に同期して発生するイベント及び、時間に同期して発生する所定時間間隔のイベントである。すなわち、図2では、図5に示した処理の中の、1ms処理、4ms処理、8ms処理、16ms処理、32ms処理、30°CA処理、及びTdc処理が、D〜Jのそれぞれの専用タスク12dに記述されている。
【0030】
一方、特定イベント以外のイベントに対応する処理については、優先度毎に用意されたA〜Cの共有タスク12cに記述した。図2では、図5に示した処理の中の、エンスト処理、故障検出処理が、中優先度のB共有タスクに記述されている。
【0031】
次に、起床要求処理及びタスク処理が共有タスク12cと専用タスク12dとでどのように異なるかを、図3及び図4のフローチャートを用いて説明する。ここでは最初に共有タスク12cの場合を説明し、続けて専用タスク12dの場合を説明する。
【0032】
図3(a)は、共有タスク12cの起床を要求する起床要求処理を示すフローチャートである。
まず最初のステップ(以下、ステップを単に記号Sで示す。)100において、タスク12cを選択する。この処理は、発生したイベントに対応する処理を特定するためのIDに基づいて行われる。
【0033】
続くS110では、IDをキューに記憶する。そして必要であれば、IDと共にデータもキューに記憶する。このデータはイベントに関連するものであり、この処理は、共有タスク12cに受け渡す必要がある場合に行われる。
続くS120では、S100にて選択した共有タスク12cの起床を、RTOS12bに対して要求する。そして、その後、本起床要求処理を終了する。
【0034】
このような起床要求処理によって、上述したようにRTOS12bが該当する共有タスク12cを起床する。
図3(b)は、RTOS12bに起床された共有タスク12cにおけるタスク処理を示すフローチャートである。
【0035】
まず最初のS200では、キューに記憶されたIDを読み出して取得する。そして、上述したようにイベントに関連するデータがキューに記憶されている場合には、そのデータもIDと共に読み出して取得する。
次のS210では、IDに基づき、実行対象のイベント対応処理を特定する。
【0036】
そして続くS220ではIDより特定したイベント対応処理を実行し、その後、本タスク処理を終了する。
このように共有タスク12cは優先度毎に用意されており、1つの共有タスク12cに複数のイベント対応処理が記述されている。そのため、共有タスク12cに係る起床要求処理(図3(a)参照)では、イベント対応処理を特定するためのIDをキューに記憶する必要がある(S110)。一方、タスク処理(図3(b)参照)では、IDをキューから取得し(S200)、さらに、IDに基づいてイベント対応処理を特定する必要がある(S210)。
【0037】
これに対し、専用タスク12dに係る起床要求処理及びタスク処理を次に説明する。
図4(a)は、専用タスク12dの起床を要求する起床要求処理を示すフローチャートである。
【0038】
まず最初のS300において、専用タスク12dを選択する。この処理は、共有タスクに係る処理(図3(a)中のS100)と同様のものであり、発生したイベントに対応する処理を特定するためのIDに基づいて行われる。
そして専用タスク12dは特定イベントに1対1に対応させて用意され、そのイベントに対応するイベント対応処理のみが記述されている。したがって、S300におけるタスク選択後、次のS310では専用タスク12dの起床要求を行い、その後、本起床要求処理を終了する。
【0039】
つまり、共有タスク12cの場合と異なり、図3(a)の起床要求処理に示したS110に相当する処理が不要になる。
起床要求処理によって、上述したようにRTOS12bが該当する専用タスク12dを起床する。
【0040】
図4(b)は、RTOS12bに起床された専用タスク12dにおけるタスク処理を示すフローチャートである。
専用タスク12dには、ある特定イベントに対応するイベント対応処理のみが記述されているため、S400にてそのイベント対応処理を実行し、その後、本タスク処理を終了する。
【0041】
つまり、図3(b)中のS200及びS210に相当する処理が不要になる。以上のようにタスク12c,12dを構成したことによる効果を、次に説明する。
上述したようなIDの記憶(図3(a)中のS110)及び取得(図3(b)中のS200)では、キューが空であるか否かのチェックやキューが情報で一杯になっているか否かのチェックも必要になるため、発生する全てのイベントに対して、これらの処理が発生することによって、CPUの処理負荷が大きくなっていた。特に、エンジン回転に同期したイベントや時間に同期したイベントといった周期的なイベント発生によるIDのキューイングがCPUの処理負荷を増大させていた。
【0042】
本実施例では、このような周期的なイベントを特定イベントとし、これらのイベントに関しては、イベント毎に用意される専用タスク12dにて、イベント対応処理を実現する。これによって、上述したような、IDの記憶(図3(a)中のS110)及び取得(図3(b)中のS200)が不要になる。これによって、周期的なイベントによるIDのキューイングがなくなるため、CPUの処理負荷を大幅に低減することができる。
【0043】
また、本実施例では、周期的なイベント、すなわち、CPUの処理負荷低減に有効なイベントに対する処理は専用タスク12dとして実現し、一方、そうでないイベントに対する処理は優先度毎の共有タスク12cとして実現した。
例えばエンジンストールや故障検出といった単発的なイベントにおいては、IDのキューイングが発生しても、その処理時間がそれほど問題にならないからである。そして、このようなイベント対応処理を優先度毎に用意された共有タスク12cにて実現すれば、優先度に基づいてタスク12c,12dを起床するRTOSの管理手法から見て適切であり、また、タスクの総数を抑えることができ、RTOSによる管理情報を比較的少なくできる。管理情報が減少すれば、RAMといったメモリの記憶容量を削減できる。つまり、本実施例によれば、CPU11の処理負荷を低減すると共に、共有タスク12cとして実現した場合のメリットも享受できるのである。
【0044】
以上、本発明はこのような実施例に何等限定されるものではなく、本発明の主旨を逸脱しない範囲において種々なる形態で実施し得る。
(イ)例えば、上記実施例では、特定イベントを、エンジンの回転に同期して発生するイベント及び時間に同期して発生するイベントとしていたが、ECU1を含むエンジン制御システムの変更を考慮して特定イベントを決定することも考えられる。すなわち、システムの変更時に追加あるいは削除される可能性が相対的に小さなイベントを、特定イベントとする。このようにすればシステムの変更があっても、専用タスク12dを変更する必要が少なくなり、タスク構成自体の変更が少なくなって、イベントの追加/削除に伴うプログラムの変更作業が容易になる。
【0045】
(ロ)上述したイベントはイベント対応処理のトリガとなるものであるが、このようなトリガと共に処理対象のデータを含むメッセージ(イベント+データ)が存在する。この場合には、このデータの受け渡しにおいてキューイングが必要になるため、専用タスク12dとしてイベント対応処理を実現しても、図3(a)中のS110におけるデータの格納処理、及び図3(b)中のS200におけるデータの取得処理が必要になり、IDのキューイングを不要にしてもCPUの処理負荷がほとんど変わらない。したがって、起床要求プログラム12aからタスク12c,12dへのデータの受け渡しを必要としないイベントを、特定イベントとすることが好ましい。
【0046】
(ハ)上記実施例は、車両のエンジンを制御するECU1として本発明を具現化したものであった。これに対し、RTOSによるタスクスケジューリングを行う全ての処理実行装置に本発明が適用できることは言うまでもない。
【図面の簡単な説明】
【図1】実施例のエンジン制御装置の構成を表すブロック図である。
【図2】エンジン制御プログラムの構造を示す説明図である。
【図3】共有タスクに係る起床要求処理及びタスク処理を示すフローチャートである。
【図4】専用タスクに係る起床要求処理及びタスク処理を示すフローチャートである。
【図5】従来のタスクスケジューリングプログラムの構造を示す説明図である。
【符号の説明】
1…ECU 10…マイコン
11…CPU 12…ROM
12a…起床要求プログラム 12b…RTOS
12c…共有タスク 12d…専用タスク
13…RAM 14…I/O
21…入力回路 22…出力回路
30…センサ 40…アクチュエータ
Claims (7)
- CPUと、そのCPUに、所定のイベントの発生を検知させ、イベントに応じたイベント対応処理を実行させるためのタスクスケジューリングプログラムと、を備える処理実行装置であって、
前記タスクスケジューリングプログラムは、
前記イベント対応処理をCPUに実行させるためのタスクと、
前記イベントの発生を検知し、該当するタスクの起床を要求する手順を、CPUに実行させるための起床要求プログラムと、
タスクの起床要求に対し、設定された優先度に基づいて前記タスクを起床する手順を、CPUに実行させるためのリアルタイムオペレーティングシステムと、
を有し、
前記タスクとして、時間に同期して発生する周期的なイベントを含む特定イベントについては、特定イベント毎に、その特定イベントに対応するイベント対応処理をCPUに実行させるための専用タスクを有し、前記特定イベント以外のイベントについては、複数のイベント対応処理が記述された共有タスクを有し、
前記起床要求プログラムは、起床要求対象のタスクが共有タスクである場合にのみ、CPUが、そのタスクの起床要求と共に、該当するイベント対応処理を特定するための識別情報をメモリ領域に格納するように構成され、
前記タスクについては、前記共有タスクのみが、前記メモリ領域に格納された前記識別情報を読み出し、この識別情報に基づき、該当するイベント対応処理を特定する手順をCPUに実行させるためのプログラムを有し、前記専用タスクは、このプログラムを有しないこと
を特徴とする処理実行装置。 - CPUと、そのCPUに、所定のイベントの発生を検知させ、イベントに応じたイベント対応処理を実行させるためのタスクスケジューリングプログラムと、を備え、このタスクスケジューリングプログラムを用いて、所定の制御対象を制御する構成にされた処理実行装置であって、
前記タスクスケジューリングプログラムは、
前記イベント対応処理をCPUに実行させるためのタスクと、
前記イベントの発生を検知し、該当するタスクの起床を要求する手順を、CPUに実行させるための起床要求プログラムと、
タスクの起床要求に対し、設定された優先度に基づいて前記タスクを起床する手順を、CPUに実行させるためのリアルタイムオペレーティングシステムと、
を有し、
前記タスクとして、前記制御対象の運転状態に同期して発生する周期的なイベントを含む特定イベントについては、特定イベント毎に、その特定イベントに対応するイベント対応処理をCPUに実行させるための専用タスクを有し、前記特定イベント以外のイベントについては、複数のイベント対応処理が記述された共有タスクを有し、
前記起床要求プログラムは、起床要求対象のタスクが共有タスクである場合にのみ、CPUが、そのタスクの起床要求と共に、該当するイベント対応処理を特定するための識別情報をメモリ領域に格納するように構成され、
前記タスクについては、前記共有タスクのみが、前記メモリ領域に格納された前記識別情報を読み出し、この識別情報に基づき、該当するイベント対応処理を特定する手順をCPUに実行させるためのプログラムを有し、前記専用タスクは、このプログラムを有しないこと
を特徴とする処理実行装置。 - 前記制御対象の運転状態に同期して発生する周期的なイベントは、前記制御対象として のエンジンの回転に同期して発生するイベントであることを特徴とする請求項2記載の処理実行装置。
- 前記特定イベントは、前記起床要求プログラムから前記タスクへのデータの受け渡しを必要としないイベントであること
を特徴とする請求項1〜3のいずれかに記載の処理実行装置。 - 前記共有タスクは、優先度毎に用意されており、
前記特定イベント以外のイベントに対応するイベント対応処理は、前記優先度毎に用意された共有タスクで実現されること
を特徴とする請求項1〜4のいずれかに記載の処理実行装置。 - コンピュータに、所定のイベントの発生を検知させ、当該イベントに応じたイベント対応処理を実行させるためのタスクスケジューリングプログラムであって、
前記イベント対応処理をコンピュータに実行させるためのタスクと、
前記イベントの発生を検知し、該当するタスクの起床を要求する手順を、コンピュータに実行させるための起床要求プログラムと、
タスクの起床要求に対し、設定された優先度に基づいて前記タスクを起床する手順を、コンピュータに実行させるためのリアルタイムオペレーティングシステムと、
を有し、
前記タスクとして、時間に同期して発生する周期的なイベントを含む特定イベントについては、特定イベント毎に、その特定イベントに対応するイベント対応処理をコンピュータに実行させるための専用タスクを有し、前記特定イベント以外のイベントについては、複数のイベント対応処理が記述された共有タスクを有し、
前記起床要求プログラムは、起床要求対象のタスクが共有タスクである場合にのみ、コンピュータが、そのタスクの起床要求と共に、該当するイベント対応処理を特定するための識別情報をメモリ領域に格納するように構成され、
前記タスクについては、前記共有タスクのみが、前記メモリ領域に格納された前記識別情報を読み出し、この識別情報に基づき、該当するイベント対応処理を特定する手順をコンピュータに実行させるためのプログラムを有し、前記専用タスクは、このプログラムを有しないこと
を特徴とするタスクスケジューリングプログラムを記録したコンピュータ読み取り可能な記録媒体。 - 所定の制御対象を制御するコンピュータに、所定のイベントの発生を検知させ、当該イベントに応じたイベント対応処理を実行させるためのタスクスケジューリングプログラムであって、
前記イベント対応処理をコンピュータに実行させるためのタスクと、
前記イベントの発生を検知し、該当するタスクの起床を要求する手順を、コンピュータに実行させるための起床要求プログラムと、
タスクの起床要求に対し、設定された優先度に基づいて前記タスクを起床する手順を、コンピュータに実行させるためのリアルタイムオペレーティングシステムと、
を有し、
前記タスクとして、前記制御対象の運転状態に同期して発生する周期的なイベントを含む特定イベントについては、特定イベント毎に、その特定イベントに対応するイベント対応処理をコンピュータに実行させるための専用タスクを有し、前記特定イベント以外のイベントについては、複数のイベント対応処理が記述された共有タスクを有し、
前記起床要求プログラムは、起床要求対象のタスクが共有タスクである場合にのみ、コンピュータが、そのタスクの起床要求と共に、該当するイベント対応処理を特定するための識別情報をメモリ領域に格納するように構成され、
前記タスクについては、前記共有タスクのみが、前記メモリ領域に格納された前記識別情報を読み出し、この識別情報に基づき、該当するイベント対応処理を特定する手順をコンピュータに実行させるためのプログラムを有し、前記専用タスクは、このプログラムを有しないこと
を特徴とするタスクスケジューリングプログラムを記録したコンピュータ読み取り可能な記録媒体。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000387120A JP3578082B2 (ja) | 2000-12-20 | 2000-12-20 | 処理実行装置及び記録媒体 |
US10/020,437 US6968552B2 (en) | 2000-12-20 | 2001-12-18 | Processor unit for executing event process in real time in response to occurrence of event |
EP01130193A EP1217518A3 (en) | 2000-12-20 | 2001-12-19 | Processor unit for executing event process in real time in response to occurrence of event |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000387120A JP3578082B2 (ja) | 2000-12-20 | 2000-12-20 | 処理実行装置及び記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002189606A JP2002189606A (ja) | 2002-07-05 |
JP3578082B2 true JP3578082B2 (ja) | 2004-10-20 |
Family
ID=18854111
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000387120A Expired - Fee Related JP3578082B2 (ja) | 2000-12-20 | 2000-12-20 | 処理実行装置及び記録媒体 |
Country Status (3)
Country | Link |
---|---|
US (1) | US6968552B2 (ja) |
EP (1) | EP1217518A3 (ja) |
JP (1) | JP3578082B2 (ja) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7099855B1 (en) | 2000-01-13 | 2006-08-29 | International Business Machines Corporation | System and method for electronic communication management |
US6408277B1 (en) * | 2000-06-21 | 2002-06-18 | Banter Limited | System and method for automatic task prioritization |
US8290768B1 (en) | 2000-06-21 | 2012-10-16 | International Business Machines Corporation | System and method for determining a set of attributes based on content of communications |
US9699129B1 (en) | 2000-06-21 | 2017-07-04 | International Business Machines Corporation | System and method for increasing email productivity |
US7644057B2 (en) | 2001-01-03 | 2010-01-05 | International Business Machines Corporation | System and method for electronic communication management |
JP3879514B2 (ja) | 2002-01-11 | 2007-02-14 | 株式会社デンソー | 電子制御装置及びプログラム |
JP3882666B2 (ja) * | 2002-04-19 | 2007-02-21 | 株式会社デンソー | 送信装置及び電子制御装置 |
DE10228064B4 (de) * | 2002-06-17 | 2005-08-11 | Robert Bosch Gmbh | Verfahren, Echtzeit-Rechengerät und Initialisierungs-Programm zur Teilinitialisierung eines auf dem Rechengerät ablauffähigen Computerprogramms |
JP3882760B2 (ja) * | 2003-02-18 | 2007-02-21 | 株式会社デンソー | タスク間通信方法、プログラム、記録媒体、電子機器 |
US7389230B1 (en) | 2003-04-22 | 2008-06-17 | International Business Machines Corporation | System and method for classification of voice signals |
US8495002B2 (en) | 2003-05-06 | 2013-07-23 | International Business Machines Corporation | Software tool for training and testing a knowledge base |
US20050187913A1 (en) | 2003-05-06 | 2005-08-25 | Yoram Nelken | Web-based customer service interface |
US7912820B2 (en) * | 2003-06-06 | 2011-03-22 | Microsoft Corporation | Automatic task generator method and system |
US7484214B2 (en) | 2003-08-04 | 2009-01-27 | Hitachi, Ltd. | Real time control system |
US7784062B2 (en) * | 2004-06-18 | 2010-08-24 | General Electric Company | Event based operating system, method, and apparatus for instrumentation and control systems |
US8677377B2 (en) * | 2005-09-08 | 2014-03-18 | Apple Inc. | Method and apparatus for building an intelligent automated assistant |
US7433986B2 (en) * | 2005-11-14 | 2008-10-07 | Fujitsu Limited | Minimizing ISR latency and overhead |
JP4609381B2 (ja) * | 2006-06-14 | 2011-01-12 | 株式会社デンソー | 異常監視用プログラム、記録媒体及び電子装置 |
US20080235658A1 (en) * | 2007-03-21 | 2008-09-25 | Asaf Adi | Code generation for real-time event processing |
JP5128972B2 (ja) * | 2008-01-25 | 2013-01-23 | 学校法人日本大学 | 保安処理装置 |
FR2927438B1 (fr) * | 2008-02-08 | 2010-03-05 | Commissariat Energie Atomique | Methode de prechargement dans une hierarchie de memoires des configurations d'un systeme heterogene reconfigurable de traitement de l'information |
TWI412996B (zh) * | 2009-08-25 | 2013-10-21 | Htc Corp | 應用程序管理方法及系統,及其電腦程式產品 |
US9719432B2 (en) * | 2011-09-12 | 2017-08-01 | Toyota Jidosha Kabushiki Kaisha | Control apparatus for internal combustion engine |
JP2013058228A (ja) * | 2012-11-01 | 2013-03-28 | Nihon Univ | 保安処理装置 |
US9875149B2 (en) * | 2013-04-29 | 2018-01-23 | Microsoft Technology Licensing, Llc | Preventing sync interruptions |
JP6207238B2 (ja) * | 2013-05-31 | 2017-10-04 | 富士通テン株式会社 | 車両用装置、通信システム、及び、アプリケーションの実行方法 |
JP5669987B1 (ja) * | 2014-01-07 | 2015-02-18 | 三菱電機株式会社 | 制御装置、開発装置、および開発プログラム |
JP7127300B2 (ja) * | 2018-03-02 | 2022-08-30 | 株式会社デンソー | 噴射制御装置 |
RU2758418C1 (ru) * | 2019-12-30 | 2021-10-28 | федеральное государственное бюджетное образовательное учреждение высшего образования "Московский государственный технический университет имени Н.Э. Баумана (национальный исследовательский университет)" (МГТУ им. Н.Э. Баумана) | Стенд для исследования цифровой системы управления комбинированной энергетической установки |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3072043D1 (en) * | 1979-04-06 | 1987-11-19 | Hitachi Ltd | Electronic type engine control method and apparatus |
JPS5638542A (en) * | 1979-09-05 | 1981-04-13 | Hitachi Ltd | Controlling method for engine |
JPS60253397A (ja) | 1984-05-30 | 1985-12-14 | Fujitsu Ltd | 呼処理タスク制御方式 |
US4658351A (en) * | 1984-10-09 | 1987-04-14 | Wang Laboratories, Inc. | Task control means for a multi-tasking data processing system |
US4768149A (en) * | 1985-08-29 | 1988-08-30 | International Business Machines Corporation | System for managing a plurality of shared interrupt handlers in a linked-list data structure |
US4954948A (en) * | 1986-12-29 | 1990-09-04 | Motorola, Inc. | Microprocessor operating system for sequentially executing subtasks |
DE3826526A1 (de) * | 1988-08-04 | 1990-02-08 | Bosch Gmbh Robert | Verfahren und vorrichtung zum einstellen von betriebsgroessen einer brennkraftmaschine |
JPH0378034A (ja) | 1989-08-21 | 1991-04-03 | Yoshinori Takahashi | プログラム並行実行装置 |
US5390329A (en) * | 1990-06-11 | 1995-02-14 | Cray Research, Inc. | Responding to service requests using minimal system-side context in a multiprocessor environment |
JP2914580B2 (ja) | 1990-09-10 | 1999-07-05 | 日産自動車株式会社 | イベント駆動型車両制御用コンピュータ |
JPH04195577A (ja) * | 1990-11-28 | 1992-07-15 | Hitachi Ltd | マルチプロセッサにおけるタスクスケジューリング方式 |
FR2696259A1 (fr) * | 1992-09-30 | 1994-04-01 | Apple Computer | Organisation en tâches et en modules d'une exécution dans un processeur. |
JPH06139121A (ja) | 1992-10-28 | 1994-05-20 | Toyota Motor Corp | 情報処理方法 |
EP0636955B1 (en) * | 1993-07-26 | 1998-11-04 | Hitachi, Ltd. | Control unit for vehicle and total control system therefor |
DE19500957A1 (de) * | 1994-07-19 | 1996-01-25 | Bosch Gmbh Robert | Verfahren zur Steuerung von technischen Vorgängen oder Prozessen |
US5636124A (en) * | 1995-03-08 | 1997-06-03 | Allen-Bradley Company, Inc. | Multitasking industrial controller |
US5627745A (en) * | 1995-05-03 | 1997-05-06 | Allen-Bradley Company, Inc. | Parallel processing in a multitasking industrial controller |
US6148321A (en) * | 1995-05-05 | 2000-11-14 | Intel Corporation | Processor event recognition |
US5606703A (en) * | 1995-12-06 | 1997-02-25 | International Business Machines Corporation | Interrupt protocol system and method using priority-arranged queues of interrupt status block control data structures |
JPH10105416A (ja) | 1996-09-26 | 1998-04-24 | Fujitsu Ten Ltd | リアルタイムオペレーティングシステムを用いたタスク起動制御装置 |
JP2000047883A (ja) * | 1998-07-31 | 2000-02-18 | Denso Corp | タスク制御方法および記録媒体 |
JP3460593B2 (ja) * | 1998-09-17 | 2003-10-27 | 株式会社デンソー | 車両用制御装置 |
JP4427860B2 (ja) * | 2000-03-24 | 2010-03-10 | 株式会社デンソー | 車両用制御装置及び記録媒体 |
JP3879514B2 (ja) * | 2002-01-11 | 2007-02-14 | 株式会社デンソー | 電子制御装置及びプログラム |
-
2000
- 2000-12-20 JP JP2000387120A patent/JP3578082B2/ja not_active Expired - Fee Related
-
2001
- 2001-12-18 US US10/020,437 patent/US6968552B2/en not_active Expired - Lifetime
- 2001-12-19 EP EP01130193A patent/EP1217518A3/en not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
US6968552B2 (en) | 2005-11-22 |
EP1217518A2 (en) | 2002-06-26 |
JP2002189606A (ja) | 2002-07-05 |
US20020078257A1 (en) | 2002-06-20 |
EP1217518A3 (en) | 2005-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3578082B2 (ja) | 処理実行装置及び記録媒体 | |
US8719827B2 (en) | Processor and program execution method capable of efficient program execution | |
US7086056B2 (en) | Processor unit for executing event processes in real time without causing process interference | |
JP4920015B2 (ja) | 分散制御用制御ソフトウェアおよび電子制御装置 | |
JP5861718B2 (ja) | 車両用電子制御装置、データ受信方法 | |
JP4241462B2 (ja) | 制御ユニットおよびマイクロコンピュータ | |
JP2020135214A (ja) | タスク管理装置 | |
JP3538867B2 (ja) | 内燃機関用a/d変換制御装置 | |
US7930523B2 (en) | Inter-CPU data transfer device | |
JP5213485B2 (ja) | マルチプロセッサシステムにおけるデータ同期方法及びマルチプロセッサシステム | |
JP3882760B2 (ja) | タスク間通信方法、プログラム、記録媒体、電子機器 | |
JP2007280253A (ja) | 情報処理装置及び情報処理方法 | |
JP2000207174A (ja) | 電子制御装置 | |
JP2000199450A (ja) | エンジン制御装置 | |
US20030135319A1 (en) | Electronic control unit having different mask return processes | |
JP2002304304A (ja) | 処理実行装置、当該処理実行装置に搭載される処理プログラム、及び記録媒体 | |
JP4692501B2 (ja) | データ記憶システム、及びデータ記憶方法 | |
JP6981512B2 (ja) | 電子制御装置 | |
JP2003345404A (ja) | 電子制御装置、プログラム | |
JP2000122880A (ja) | リアルタイムosを搭載した情報処理装置 | |
JPH08137703A (ja) | タスク切替装置 | |
JPH0666060B2 (ja) | バス優先権制御方式 | |
JP3900660B2 (ja) | シーケンスコントローラ | |
WO2024222649A1 (zh) | 线程控制方法及装置、通信设备及系统 | |
JP2013161363A (ja) | 電子制御装置、プログラム実行方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040330 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040528 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040622 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040705 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3578082 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110723 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120723 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120723 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130723 Year of fee payment: 9 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |