(57)【特許請求の範囲】
【請求項１】
実行単位となるプログラム間で割込処理を行って所定機能を実現する処理実行装置であって、
実行単位となるプログラムの複数で構成され、前記実行単位となるプログラムとして、データの更新要求があると、同時性を必要とする一連のデータを更新する手順を、当該処理実行装置が有するＣＰＵに実行させるためのデータ更新プログラムを有する処理プログラムを備え、
前記処理プログラムは、更に、
前記データ更新プログラムの実行条件となるイベントを取得すると、前記データ更新プログラムに対して前記更新要求を通知すると共に、更新状態へ移行し、一方、前記データ更新プログラムからの更新完了通知に基づき、前記データ更新プログラムによる前記一連のデータの更新完了を判断して、待機状態へ移行する手順を、前記ＣＰＵに実行させるための更新管理プログラムと、
前記更新管理プログラムが前記更新状態である場合、当該処理プログラムを構成する前記データ更新プログラムを除く他の前記各実行単位となるプログラムの内、実行すると前記同時性を必要とする一連のデータに対する参照が行われる種類のプログラムの実行を禁止する手順を、前記ＣＰＵに実行させるための参照制限プログラムとを備え、
前記禁止する手順は、前記参照が行われる種類のプログラムの実行条件となるイベントを取得すると、前記更新管理プログラムの状態を参照し、前記更新管理プログラムが前記更新状態である場合には、前記参照が行われる種類のプログラムの実行を禁止することにより、前記参照が行われる種類のプログラムの実行を制御するものであること
を特徴とする処理実行装置。
【請求項２】
請求項１に記載の処理実行装置において、
前記処理プログラムは、オブジェクト指向設計されており、
前記実行単位のプログラムは、再利用可能なオブジェクトとして実現されていること
を特徴とする処理実行装置。
【請求項３】
請求項２に記載の処理実行装置において、
前記更新管理プログラム及び前記参照制限プログラムはそれぞれ、更新管理オブジェクト及び参照制限オブジェクトとして実現されていること
を特徴とする処理実行装置。
【請求項４】
請求項３に記載の処理実行装置において、
前記更新管理オブジェクトは、前記更新状態又は前記待機状態を、当該オブジェクトのデータとして示すこと
を特徴とする処理実行装置。
【請求項５】
実行単位となるプログラム間で割込処理を行って所定機能を実現する処理実行装置に搭載されて用いられる処理プログラムであって、
実行単位となるプログラムの複数で構成され、
前記実行単位となるプログラムとして、データの更新要求があると、同時性を必要とする一連のデータを更新する手順を、前記処理実行装置が有するＣＰＵに実行させるためのデータ更新プログラムを備えると共に、
前記データ更新プログラムの実行条件となるイベントを取得すると、前記データ更新プログラムに対して前記更新要求を通知すると共に、更新状態へ移行し、一方、前記データ更新プログラムからの更新完了通知に基づき、前記データ更新プログラムによる前記一連のデータの更新完了を判断して、待機状態へ移行する手順を、前記ＣＰＵに実行させるための更新管理プログラムと、
前記更新管理プログラムが前記更新状態である場合、当該処理プログラムを構成する前記データ更新プログラムを除く他の前記各実行単位となるプログラムの内、実行すると前記同時性を必要とする一連のデータに対する参照が行われる種類のプログラムの実行を禁止する手順を、前記ＣＰＵに実行させるための参照制限プログラムとを備え、
前記禁止する手順は、前記参照が行われる種類のプログラムの実行条件となるイベントを取得すると、前記更新管理プログラムの状態を参照し、前記更新管理プログラムが前記更新状態である場合には、前記参照が行われる種類のプログラムの実行を禁止することにより、前記参照が行われる種類のプログラムの実行を制御するものであること
を特徴とする処理プログラム。
【請求項６】
請求項５に記載の処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、実行単位となるプログラム間で割込処理を行って所定機能を実現する処理実行装置及び当該処理実行装置に搭載される処理プログラムに関する。
【０００２】
【従来の技術】
車両に搭載される電子制御装置（以下「ＥＣＵ」という。）に用いられる制御プログラムでは、制御応答性や安全性の確保等から所定の処理をリアルタイムに実行する必要がある。そのため、優先度の設定されたタスク毎にプログラムを記述している。具体的には言えば、実行単位となる複数のプログラムを、高優先度のタスクに属するもの、中優先度のタスクに属するもの、低優先度のタスクに属するものというように分けて記述するという具合である。これによって、実質的にプログラム毎に実行の優先度を設定しておき、タスクの単位で切り換えを行って該当するプログラムを実行することにより、相対的に優先度の高い処理プログラムが相対的に優先度の低い処理プログラムに優先して実行される（割り込む）ようにして、リアルタイム性を確保している。
【０００３】
ここで問題となるのが、他のプログラム（以下「上位プログラム」という。）に割り込まれる可能性のあるプログラム（以下「下位プログラム」という。）において、同時性を必要とする一連のデータを操作する場合である。例えば下位プログラムで３つのデータａ，ｂ，ｃを更新するときである。このとき、下位プログラムにてデータａだけが更新された状態で上位プログラムが割り込んで３つのデータａ，ｂ，ｃを参照すると、データａだけが更新されており、残りのデータｂ，ｃは古いままとなってしまう。すなわち、いわゆる同時性が確保されない状態が生じる。
【０００４】
そのため、従来は、上述したような下位プログラムによる一連のデータ操作の期間内の上位プログラムの割込処理を禁止し、一連のデータ操作の途中で上位プログラムによってデータが参照されないようにしていた。なお、本明細書でいう割込処理の禁止とは、コンピュータレベルでの割り込みを全て禁止する場合だけでなく、タスクレベルに基づくタスクの切り換えを禁止するいわゆるタスクディスパッチの禁止も含む。
【０００５】
【発明が解決しようとする課題】
しかしながら、割込処理を禁止すると、操作対象の一連のデータを参照しない、すなわち実行したとしても問題の生じない上位プログラムの実行までが、一律に禁止されることになる。したがって、操作対象の一連のデータが多くなった場合は特に、割込禁止の時間が長くなるため、リアルタイム性の高い処理の実行が遅延することになり、制御性能に悪影響を与える可能性が高くなる。
【０００６】
例えば、一連のデータ操作としては、故障コード（ＤＴＣ）やフリーズフレームデータ（ＦＦＤ）の初期化に関するものが、その一例として挙げられる。
車両制御プログラムは、特に高い信頼性を要求されるため、自己診断機能を備えることにより、信頼性の向上が図られている。すなわち、コンピュータ部やセンサ類の動作状態を適当な周期で自動的にチェックし、故障時には、その故障内容が修理担当者などに分かるよう故障情報であるＤＴＣや故障時の車両情報であるＦＦＤを不揮発性メモリに記憶する。
【０００７】
このようなダイアグノーシス処理に関し、法規制（ＯＢＤ２）により、記憶されたＤＴＣやＦＦＤを初期化するｍｏｄｅ０４と呼ばれるサービスの実現が要請されている。このサービスを実現するには、不揮発性メモリに記憶されたＤＴＣやＦＦＤと共に、故障検出を行うためのロジックのパラメータも同時に初期化する必要がある。両者の間で整合性がとれていないと、システムの動作が不安定になるためである。
【０００８】
ところが、故障検出の対象が現在では約２００にもおよび、さらに、増加傾向にある。そのため、初期化対象となるデータも膨大な数となっている。
繰り返すことになるが、このような場合は特に、割込禁止時間が長くなって、リアルタイム性の高い処理の実行が遅延し、結果的に、制御性能に悪影響を与える可能性が高くなってしまう。
【０００９】
本発明は、上述した問題点を解決するためになされたものであり、操作対象となる一連のデータの同時性を確保し、しかも、リアルタイム性の高い処理の遅延を極力防止することを目的とする。
【００１０】
【課題を解決するための手段及び発明の効果】
上述した目的を達成するためになされた請求項１に記載の処理実行装置は、実行単位となるプログラム毎に、細分化されて記述された処理プログラムを備える。そして、実行単位となるプログラム間で割込処理を行って所定機能を実現する。割込処理とは、あるプログラムの実行途中で別のプログラムが優先的に実行されることをいう。したがって、上述したようなタスクディスパッチによるものはもちろん、時分割処理によるものも含む。
【００１１】
処理プログラムは、実行単位となるプログラムとして、データ更新プログラムを有する。データ更新プログラムは、データの更新要求があると、同時性を必要とする一連のデータを更新するものである。
ここで特に本発明では、処理プログラムが、更新管理プログラムと参照制限プログラムとを備えていることを特徴とする。
【００１２】
更新管理プログラムは、データ更新プログラムの実行条件となるイベントを取得すると、データ更新プログラムに対し更新要求を通知すると共に更新状態へ移行する。また一方、データ更新プログラムからの更新完了通知により、データ更新プログラムによる一連のデータの更新完了を判断して、待機状態へ移行する。すなわち、更新管理プログラムは、データ更新プログラムによる更新状態を管理するものとして位置付けられる。そして、参照制限プログラムは、更新管理プログラムが更新状態にある場合、当該処理プログラムを構成する前記データ更新プログラムを除く他の各実行単位となるプログラムの内、実行すると同時性を必要とする一連のデータに対する参照が行われる種類のプログラムの実行を禁止する。
【００１３】
つまり、一律に上位プログラムの割り込み（実行）を禁止するのではなく、データ更新中であるか否かを示す更新管理プログラムを用意し、この更新管理プログラムの状態に基づいて、同時性を必要とする一連のデータを参照する上位プログラムの割り込み（実行）を、個別に禁止するのである。
これによって、一連のデータの更新中には、当該データの参照が禁止されるため、更新対象となる一連のデータの同時性を確保できる。そして、当該データを参照しないプログラムの実行を禁止しないので、リアルタイム性の高い処理の遅延も防止できる。
【００１４】
尚、参照制限プログラムは、前記参照が行われる種類のプログラムの実行に先立って実行されるが、これらのプログラムが、例えば何十、何百と存在する場合には、参照制限プログラムを、前記参照が行われる種類のプログラム毎に記述するのは手間となる。
【００１５】
そこで、参照制限プログラムは、前記参照が行われる種類のプログラムの実行条件となるイベントを取得すると、前記更新管理プログラムの状態を参照し、前記更新管理プログラムが更新状態である場合には、前記参照が行われる種類のプログラムの実行を禁止することにより、前記参照が行われる種類のプログラムの実行を制御するものとする。
【００１６】
つまり、前記参照が行われる種類のプログラムの実行条件である根本的なトリガを、更新管理プログラムの状態によって、シャットアウトするのである。このような仕組みによって、参照制限プログラムは、前記参照が行われる種類のプログラムから独立したプログラムとなり、処理プログラムの再利用性が向上する。
この場合、参照制限プログラムは、複数存在する前記参照が行われる種類のプログラムに対して、それらプログラムの実行を制御するプログラムとして、一つだけ用意すればよく、処理プログラムの構成が簡単になる。よって、本発明は、プログラム作成者にとって便利である。
【００１７】
なお、再利用性という観点からは、請求項２示す構成を採用することが望ましい。
すなわち、処理プログラムをオブジェクト指向設計し、実行単位のプログラムを、再利用可能なオブジェクトとして実現するのである。このとき、請求項３に示すように、更新管理プログラム及び参照制限プログラムはそれぞれ、更新管理オブジェクト及び参照制限オブジェクトとして実現することが考えられる。また、更新管理プログラムが更新に係る状態を示すことは既に述べたが、更新管理オブジェクトとして実現する場合、請求項４に示すように、更新状態又は待機状態を、当該オブジェクトのデータ（属性）として示すようにしてもよい。
【００１８】
以上は処理実行装置の発明として説明してきたが、本発明は、処理プログラムの構成にその特徴を有するものであり、この意味で、処理プログラムの発明として実現することもできる。すなわち、請求項５に示す如くである。
この処理プログラムが備える更新管理プログラム及び参照制限プログラムによる作用・効果の説明は、上述した処理実行装置に搭載された処理プログラムに含まれる更新管理プログラム及び参照制限プログラムと同様であるため割愛する。もちろん、請求項２〜４に記載の処理実行装置の各プログラムと同様に、処理プログラムの備える各プログラムを構成できることは言うまでもない。
【００１９】
また、このような処理プログラムを媒体に記憶してディーラーなどに定期的に配布することを考えると、請求項６に示すような、処理プログラムを記録した記録媒体の発明として実現することもできる。このような処理プログラムの場合、例えば、ＦＤ、ＭＯ、ＤＶＤ、ＣＤ−ＲＯＭ、ハードディスク等の処理実行装置にて読み取り可能な記録媒体に記録することが考えられ、必要に応じて処理実行装置にロードして起動することにより用いることができる。この他、ＲＯＭやバックアップＲＡＭをコンピュータ読み取り可能な記録媒体としてプログラムを記録しておき、このＲＯＭあるいはバックアップＲＡＭを処理実行装置に組み込んで用いてもよい。
【００２０】
【発明の実施の形態】
以下、本発明を具体化した一実施例を図面を参照して説明する。
図１は、本発明の「処理実行装置」を具体化したエンジン制御装置（以下「ＥＣＵ」という。）１の構成を表すブロック図である。ＥＣＵ１は、車両に搭載された内燃機関型エンジンの制御を行う。
【００２１】
ＥＣＵ１は、エンジンのクランク軸が所定角度回転する毎にパルス状の信号を出力する回転角センサ、エンジンの特定の気筒のピストンが所定位置（例えば上死点：ＴＤＣ）にくる度にパルス状の信号を出力する基準位置センサ、エンジンの冷却水の温度を検出する水温センサ、及び酸素濃度を計測する酸素濃度センサ等、エンジンの運転状態を検出する様々なセンサ３０からの信号を入力して波形整形やＡ／Ｄ変換を行う入力回路２１と、入力回路２１からのセンサ信号に基づき、エンジンを制御するための様々な処理を実行するマイコン１０と、マイコン１０からの制御データに応じて、エンジンに取付けられたインジェクタ（燃料噴射装置）及びイグナイタ（点火装置）等のアクチュエータ４０を駆動する出力回路２２とを、備えている。
【００２２】
そして、マイコン１０には、プログラムを実行する周知のＣＰＵ１１と、ＣＰＵ１１によって実行されるプログラムを記憶するＲＯＭ１２と、ＣＰＵ１１による演算結果等を記憶するためのＲＡＭ１３と、入力回路２１及び出力回路２２との間で信号をやり取りするためのＩ／Ｏ１４と、各種レジスタやフリーランカウンタ等（図示省略）とが備えられている。
【００２３】
このように構成されたＥＣＵ１は、各種センサ３０から入力回路２１を介して入力される信号に基づき、出力回路２２に接続されたアクチュエータ４０を駆動する、エンジン制御処理を行う。
このようなＥＣＵ１のエンジン制御プログラムは、上述したようにＲＯＭ１２に記憶されており、オブジェクト指向設計されている。このエンジン制御プログラムが上述した「処理プログラム」に相当する。処理プログラムは、実行単位のプログラムであるオブジェクトで構成されており、これらオブジェクト間のメッセージ通信によって結合・動作する。各オブジェクトは、低優先度タスク、中優先度のタスク、又は、高優先度のタスクのいずれかに属している。そして、イベントの発生があると、ＲＴＯＳによってタスクが起床され、当該イベントに対応するオブジェクトが動作する。このとき、相対的に優先度の高いタスクは、相対的に優先度の低いタスクに対して優先的に起床される。これによって、オブジェクト間で割込処理が実現されることになり、リアルタイム性の高いオブジェクトが優先的に実行されることになる。
【００２４】
次に、図２の説明図に基づいて、エンジン制御プログラムの特徴的概要を説明する。
図２には、低優先度タスク５０と高優先度タスク６０とを示した。なお、図中では、オブジェクトを単に「ｏｂｊ」と示す。
【００２５】
低優先度タスク５０には、更新管理オブジェクト５１及び、Ａ，Ｂ，Ｃの３つのデータ更新オブジェクト５２，５３，５４が含まれる。一方、高優先度タスク６０には、参照制限オブジェクト６１及び、Ｘオブジェクト６２、Ｙオブジェクト６３が含まれる。
【００２６】
低優先度タスク５０に属するＡ〜Ｃのデータ更新オブジェクト５２〜５４はそれぞれ、一又は複数のデータを有しており、データの更新要求があると、当該データの更新を行う。ここでＡ〜Ｃのデータ更新オブジェクト５２〜５４の更新対象とするデータは、参照時の同時性を必要とする。
【００２７】
高優先度タスク６０に属するＸオブジェクト６２は、Ａ〜Ｃのデータ更新オブジェクト５２〜５４の有するデータの参照処理を含むオブジェクトの集合であり、Ｙオブジェクト６３は、これらデータの参照処理を含まないオブジェクトの集合である。すなわち、高優先度タスク６０に属し各種機能を実現する実行単位のオブジェクトを、Ａ〜Ｃのデータ更新オブジェクト５２〜５４の有するデータの参照の有無で、２つのグループに分けて示した。
【００２８】
ところで、Ａ〜Ｃの全てのデータ更新オブジェクト５２〜５４においてデータの更新が完了しない内にＸオブジェクト６２が割り込んで動作すると、データの同時性が確保されなくなってしまう。例えば、Ａデータ更新オブジェクト５２によるデータ更新だけが完了した時点でＸオブジェクト６２が割り込めば、ＢやＣのデータ更新オブジェクト５３，５４の有するデータの中には更新前の古いものが存在することになるからである。
【００２９】
これを解決するために本実施例では、Ａ〜Ｃのデータ更新オブジェクト５２〜５４によってデータが更新中であるか否かを判断する更新管理オブジェクト５１を用意し、参照制限オブジェクト６１が、更新管理オブジェクト５１の状態を参照して、Ｘオブジェクト６２の実行制御を行う。
【００３０】
そこで次に、更新管理オブジェクト５１及び参照制限オブジェクト６１の動作について説明する。ここでは最初に、更新管理オブジェクト５１による更新管理処理を説明し、続けて、参照制限オブジェクト６１による参照制限処理を説明する。
【００３１】
図３（ａ）は、更新管理処理を示すフローチャートである。
まず最初のステップ（以下、ステップを単に記号Ｓで示す。）１００において、イベントを取得する。イベントとは、動作のトリガとなる信号を意味し、例えば上述した入力回路２１を介してマイコン１０へ入力される信号であることが考えられる。また、マイコン１０の内部のカウンタに基づく信号であってもよい。さらに、外部ツールからのイベントであることも考えられる。
【００３２】
続くＳ１１０では、Ａ〜Ｃの各データ更新オブジェクト５２〜５４へ、データの更新要求を通知する。そして次のＳ１２０では、変数ｓｔａｔｕｓを「更新状態」とする。この変数ｓｔａｔｕｓは、更新管理オブジェクト５１のデータとして用意されており、初期化時には「待機状態」となっている。
【００３３】
上述したＳ１１０の更新要求によって、Ａ〜Ｃのデータ更新オブジェクト５２〜５４は、データの更新処理を実行し、データの更新が完了すると、更新完了通知を行う。したがって、続くＳ１３０では、Ａ〜Ｃのデータ更新オブジェクト５２〜５４の全てから更新完了通知があったか否かを判断する。ここで、更新完了通知があったと判断された場合（Ｓ１３０：ＹＥＳ）、Ｓ１４０にて変数ｓｔａｔｕｓを「待機状態」として、その後、本更新管理処理を終了する。一方、更新完了通知がないうちは（Ｓ１３０：ＮＯ）、この判断処理を繰り返す。
【００３４】
上述した更新管理処理によって、更新管理オブジェクト５１は、データ更新中である場合には変数ｓｔａｔｕｓを「更新状態」とし、一方、データ更新が完了すると変数ｓｔａｔｕｓを「待機状態」として、いわゆる状態遷移を行う。これを示すのが、図３（ｂ）の説明図である。つまり、初期化後はまず、待機状態αとなり、イベント取得によって、更新要求を通知すると共に更新状態βへ移行する。そして、更新終了を判断すると、再び待機状態αへ移行する。
【００３５】
図４は、参照制限処理を示すフローチャートである。
まず最初のＳ２００において、Ｘオブジェクト６２の動作条件となるイベントを取得する。続くＳ２１０では、更新管理オブジェクト５１の状態を参照する。具体的には、更新管理オブジェクト５１へのメッセージ出力を行い、変数ｓｔａｔｕｓを参照する。
【００３６】
この参照結果に基づき、Ｓ２２０では、更新状態であるか否かを判断する。ここで更新状態であると判断した場合（Ｓ２２０：ＹＥＳ）、Ｓ２３０の処理を実行せず、本参照制限処理を終了する。この場合、イベントに対応するＸオブジェクト６２が実行されないことになる。一方、更新状態でないと判断した場合（Ｓ２２０：ＮＯ）、すなわち待機状態であると判断した場合には、Ｓ２３０にてイベントを通知し、その後、本参照制限処理を終了する。この場合、イベントに対応するＸオブジェクト６２が実行される。
【００３７】
次に、本実施例のＥＣＵ１が発揮する効果を説明する。
本実施例では、更新管理オブジェクト５１と参照制限オブジェクト６１とを設け、更新管理オブジェクト５１が変数ｓｔａｔｕｓの値として（図３中のＳ１２０，Ｓ１４０）、Ａ〜Ｃのデータ更新オブジェクト５２〜５４がデータの更新中であるか否かを管理する。そして、参照制限オブジェクト６１は、更新管理オブジェクト５１の状態を参照し、すなわち変数ｓｔａｔｕｓの値を参照し（図４中のＳ２１０）、更新状態であれば（Ｓ２２０：ＹＥＳ）、取得したイベントをＸオブジェクト６２へ通知しない。これによって、データの参照処理を含むＸオブジェクト６２は、データ更新中にあっては実行されないことになる。その結果、Ａ〜Ｃのデータ更新オブジェクト５２〜５４の更新対象となっている一連のデータの参照時の同時性が確保される。一方、データの参照処理を含まないＹオブジェクト６３については、イベントによって直接動作するため、リアルタイム性の高い処理が遅延することを極力防止できる（図２参照）。
【００３８】
また、本実施例では、参照制限オブジェクト６１が、Ｘオブジェクト６２の実行条件となるイベントを取得し（図４中のＳ２００）、更新管理オブジェクト５１の状態を参照して（Ｓ２１０）、当該イベントの通知／非通知によってＸオブジェクト６２の動作を制御する（Ｓ２２０，Ｓ２３０）。つまり、実行条件である根本的なトリガを、更新管理オブジェクト５１の状態によって、シャットアウトするのである。これによって、データの参照処理を含む複数のオブジェクト、すなわちＸオブジェクト６２が存在しても、参照制限オブジェクト６１を一つだけ設けることで対応でき、さらに、参照制限オブジェクト６１は、Ｘオブジェクト６２から独立したものとなり、再利用性が高くなる。
【００３９】
さらにまた、本実施例では、エンジン制御プログラム全体がオブジェクト指向設計されており、更新管理オブジェクト５１とＡ〜Ｃのデータ更新オブジェクト５２〜５４も、それぞれが処理に依存しない形式的なメッセージ通信によって結合されるため独立性が高く、エンジン制御プログラムの再利用性の向上が図られる。
【００４０】
以上、本発明はこのような実施例に何等限定されるものではなく、本発明の主旨を逸脱しない範囲において種々なる形態で実施し得る。
（イ）上記実施例では、更新管理オブジェクト５１は、Ａ〜Ｃのデータ更新オブジェクト５２〜５４のそれぞれに対して更新要求を通知し、それぞれのデータ更新オブジェクト５２〜５４からの更新完了通知に基づいて、全体の更新完了を判断していた。これに対して、図５に示すように、まず更新管理オブジェクト５５がＡデータ更新オブジェクト５６に対して更新要求を行い、次にＡデータ更新オブジェクト５６からＢデータ更新オブジェクト５７へ更新要求を行い、さらに続けて、Ｂデータ更新オブジェクト５７からＣデータ更新オブジェクト５８へ更新要求を行うようにしてもよい。この場合、更新管理オブジェクト５５は、Ｃデータ更新オブジェクト５８からの完了通知に基づいて、全体の更新完了を判断する。
【００４１】
（ロ）また、上記実施例では、Ａ〜Ｃのデータ更新オブジェクト５２〜５４の更新対象とする全てのデータが、同時性を必要とするものとしていた。これに対して、更新対象とするデータの中の特定のデータ間に同時性が必要となる場合も考えられる。この場合、更新管理オブジェクト５１は、イベントの内容を判断して、Ａ〜Ｃの中のデータ更新オブジェクト５２〜５４の中の該当するものだけに更新要求を通知するようにしてもよい。
【００４２】
（ハ）上記実施例では、参照制限オブジェクト６１が、イベントを取得し、更新管理オブジェクト５１の状態を参照して、当該イベントの通知／非通知を決定していた。これに対して、図６に示すように、各Ｘオブジェクト６４が更新管理オブジェクト５１の状態を参照して、参照処理を実行するか否かを判断するようにしてもよい。
【００４３】
このとき、Ｘオブジェクト６４が比較的少ない場合は問題ないが、何十、何百というように多くなる場合がある。このときは、上記実施例のように、参照制限オブジェクト６１を、Ｘオブジェクト６２とは別に、独立させて設けることが望ましい。各Ｘオブジェクト６４のそれぞれに、参照制限のための処理や参照制限のための処理をコールするステップを記述する必要がなくなるためである。
【図面の簡単な説明】
【図１】実施例のエンジン制御装置の構成を表すブロック図である。
【図２】エンジン制御プログラムの特徴的概要を示す説明図である。
【図３】（ａ）は更新管理オブジェクトによる更新管理処理を示すフローチャートであり、（ｂ）は更新管理オブジェクトの状態遷移を示す説明図である。
【図４】参照制限オブジェクトによる参照制限処理を示すフローチャートである。
【図５】別実施例のデータ更新オブジェクトの結合を示す説明図である。
【図６】別実施例の参照処理の禁止を示す説明図である。
【符号の説明】
１…エンジン制御装置
１０…マイコン
１１…ＣＰＵ
１２…ＲＯＭ
１３…ＲＡＭ
１４…Ｉ／Ｏ
２１…入力回路
２２…出力回路
３０…センサ
４０…アクチュエータ
５０…低優先度タスク
５１，５５…更新管理オブジェクト
５２，５３，５４，５６，５７，５８
…データ更新オブジェクト
６０…高優先度タスク
６１…参照制限オブジェクト
６２，６４…Ｘオブジェクト
６３…Ｙオブジェクト
【図１】
0003755415.tif 000002
【図２】
0003755415.tif 000003
【図３】
0003755415.tif 000004
【図４】
0003755415.tif 000005
【図５】
0003755415.tif 000006
【図６】
0003755415.tif 000007