説明

浮動小数点演算機能を有する電子制御装置

【課題】浮動小数点演算機能を有する電子制御装置において、浮動小数点演算により非数が発生した際には、演算により求められた変数同士の相関関係を保持し、処理負荷を大きくすることなく非数による制御不良を防止する。
【解決手段】浮動小数点演算プロセッサが演算した浮動小数点型データを保存するRAM15の記憶領域31を複数の記憶部32Aに分割し、幾つかの連続した記憶部32Aの集合であるブロック(吸気制御ブロック33A、噴射制御ブロック33B等)を制御単位で割り当てておく。ここで、各制御が終了する度に、ブロック単位で記憶部32Aに非数32Bがあるか否かを判定し、非数32Bがあると判定すると、ブロックの先頭アドレスからブロックの終了アドレスまでを一括して初期化する。この結果、変数同士の相関関係を保持し、RAM15の初期化の際の処理負荷を軽減しながら、非数32B発生時の制御不良を防ぐことができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、浮動小数点演算機能を備えた電子制御装置に関する。
【背景技術】
【0002】
従来より、浮動小数点型データを用いて演算を行う装置として、自動車のエンジン制御等に使用される電子制御装置が知られている。
この電子制御装置では、浮動小数点演算プロセッサ(FPU)を用いて、浮動小数点型データの演算を実施しているので、固定小数点型データを用いる場合と比べて、非常に高精度な演算が可能である。
【0003】
また、浮動小数点演算を実行する際の固有の問題として、非数(数値ではない値)が発生した場合、非数が発生した後の演算が全て非数となり、制御不能になる虞があるため、制御不能にならないようにするために、次のような電子制御装置が開発されている(例えば、特許文献1および特許文献2参照)。
【0004】
特許文献1に記載の電子制御装置では、浮動小数点型データを記憶するRAM全体の中に非数があるか否かを判定し、RAM内に非数があると判定すれば、RAM全体を一括して初期化することにより、この装置が制御不能になることを回避していた。
【0005】
また、特許文献2に記載の電子制御装置では、RAM内の非数が発生した部分のみを初期化し、RAM内の非数を消去することにより、この装置が制御不能になることを回避していた。
【特許文献1】特開2001−184192号公報
【特許文献2】特開2001−282505号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1に記載の電子制御装置では、RAM内を一括して初期化しており、非数の影響が及ばないRAM内の領域までも初期化を行うので、初期化に伴う処理負荷が大きくなり、初期化に時間がかかるという問題点があった。また反対に、RAM内の非数が発生した部分のみを初期化すると、ある条件の場合には、必ずある値を一定値にするといった相関関係がある制御を行う場合に、この相関関係を保持できなくなるという問題点があった。
【0007】
また、特許文献2に記載の電子制御装置では、非数発生時に固定小数点のバックアップ演算に移行してしまうため、高度な演算が行えなくなると同時に、バックアップ処理に膨大なROMを消費する可能性がある。
【0008】
上記であげた相関関係を具体的に説明すると次のようなものがある。例えば、エンジンの燃料噴射量の制御において、燃料噴射量の変数と、燃料カットフラグの値との間には、前述の相関関係があり、燃料カットフラグがONのときには、燃料噴射量の変数は必ず0に設定することになっている。しかし、燃料カットフラグの値に非数が発生し、この値のみの初期化を行うと、燃料噴射量の変数に0以外の値が入ってしまうことがある。このようになると、燃料噴射量の変数と、燃料カットフラグの値との間の相関関係が崩れてしまうので、燃料噴射制御としては好ましくない。
【0009】
そこで、このような問題点を鑑み、浮動小数点演算機能を有する電子制御装置において、浮動小数点演算により非数が発生した際には、演算により求められた変数同士の相関関係を保持し、処理負荷を大きくすることなく非数による制御不良を防止することを本発明の目的とする。
【課題を解決するための手段】
【0010】
かかる目的を達成するために成された本発明の電子制御装置においては、浮動小数点型データが非数であるか否かを判定する非数判定手段が、浮動小数点演算手段により演算された浮動小数点型データを非数であると判定した場合に、初期化手段は、メモリ内の所定のブロックに浮動小数点型データを記憶させる書込み手段が非数を書き込むブロックを、選択的に初期化する。
【0011】
つまり、浮動小数点演算手段による演算結果が非数である場合に、メモリ全体を初期化するのでは、初期化に伴う処理負荷が大きいので、非数の影響が及ばない正常なデータをできる限り初期化しないようにしながら、更に、演算した数値間の相関関係を保持するために、メモリに設定されたブロック単位でデータを初期化するようにしているのである。
【0012】
このようにすると、メモリの初期化の際に処理負荷を軽減しながら、非数発生時の制御不良を防ぐことができる。また、数値間の相関関係を保持することができる。
また、初期化手段が初期化するメモリ内のブロックは、数値間の相関関係があるデータを記憶させるように設定されていれば、メモリ内で、どのように分割されていてもよいが、浮動小数点演算手段が複数の制御対象に対して浮動小数点演算を実行する場合には、本発明のように、メモリ内のブロックは、浮動小数点演算手段が実行する制御単位毎に定められているとよい。
【0013】
つまり、数値間に相関関係があるデータは、前述した燃料噴射量の変数と、燃料カットフラグの値との関係のように、1つの制御(この場合は燃料噴射の制御)をするのに用いられることが多いので、本発明のように、制御単位でメモリ内のブロックを設定し、初期化手段は制御単位で設定されたブロックを初期化すればよいのである。
【0014】
このようにすれば、数値間の相関関係があるデータを確実に初期化することができる。また、制御単位で分離したプログラムを作成することができるので、効率よくプログラムの作成や変更等をすることができる。
【0015】
加えて、非数判定手段は、書込み手段により浮動小数点型データがメモリに書き込まれる前に、非数であるか否かを判定する。
つまり、浮動小数点型データが非数であるか否かを判定する前に書込みを行うと、判定するまでに他の制御により参照されてしまうことがあり、仮に参照されたデータが非数だった場合には、他の制御が制御不能になる虞があるため、本発明の電子制御装置では、書込み手段によるメモリへの書込み前に浮動小数点型データが非数であるか否かを判定しているのである。
【0016】
このようにすると、非数を判定するまでに浮動小数点型データが他の制御に使用されることを防ぐことができるので、浮動小数点型データが非数であることにより、他の制御が制御不良になることを防止することができる。
【0017】
また、非数判定手段は、浮動小数点演算手段による演算が前記ブロック単位で終了する毎に、ブロック単位で浮動小数点型データが非数であるか否かを判定するようにしてもよい。
【0018】
ところで、非数判定手段は、請求項2に記載のように、浮動小数点演算手段による演算毎に該演算された浮動小数点型データが非数であるか否かを判定し、非数であれば非数である旨のフラグを立てるフラグ制御手段と、フラグを参照することによって浮動小数点型データが非数であるか否かを判定するフラグチェック手段と、を備えていてもよい。
【0019】
また、書込み手段が浮動小数点型データを書き込むメモリ内のブロックは、メモリ内で分散して配置されていてもよいが、請求項3に記載のように、連続したメモリ領域により構成されていてもよい。
【0020】
このようにすると、例えば、初期化手段による初期化の際に、同じ値(初期値)をブロックに書き込む処理を行う場合、初期化するブロックが分散されて配置されているよりも、連続したメモリ領域に配置されているほうが、初期化する際の処理負荷を軽くすることができる。
【0021】
更に、請求項4に記載のように、初期化手段がメモリのブロックを初期化する際には、メモリのブロックに既定値を書き込むように構成されていてもよい。
この既定値とは、制御不良にならないような無難な値であって、このような既定値を初期化の際にブロックに書き込むようにしているので、浮動小数点演算手段により非数が発生しても継続して制御を実行することができる。
【0022】
また、上述の電子制御装置は、請求項5に記載のように、自動車のエンジン制御のためのエンジン制御装置として自動車に搭載されていること望ましい。
自動車には、点火プラグやメータ類が多く搭載されており、それらから発生するノイズが多いため、浮動小数点演算手段による演算中に、意図しない非数の発生が予想される。しかし、このような環境であっても、請求項5に記載のように、請求項1〜請求項4の何れかに記載の電子制御装置をエンジン制御装置に使用すれば、高精度な演算をしながら、非数発生により制御不能になることを回避できる。
【発明を実施するための最良の形態】
【0023】
以下に本発明にかかる実施の形態を図面と共に説明する。
〔実施例1〕
本発明の電子制御装置が適用されたエンジン制御ECUの構成について、図1を用いて説明する。図1は、エンジン制御ECU1(本発明でいうエンジン制御装置)を構成する各部の結合関係を示すブロック図である。
【0024】
例えば、ガソリン噴射式多気筒内燃機関であるエンジン11の制御を行うエンジン制御ECU1は、CPU14と、RAM15(本発明でいうメモリ)と、ROM16と、浮動小数点演算プロセッサ17(FPU。本発明でいう浮動小数点演算手段。)と、入出力装置18(I/O)とを備えている。
【0025】
FPU17およびCPU14は、ROM16に格納されたプログラムに基づいて駆動する。また、FPU17は浮動小数点型データの演算を実施し、CPU14は浮動小数点型データ以外の演算を実施する。
【0026】
I/O18は、周知のA/D変換器、およびD/A変換器が含まれており、エンジン11内やその近傍に設置された、エアフロメータ、吸気温センサ(図示省略)、スロットル開度センサ等のセンサ類12からの検知信号(アナログ信号)をディジタル信号に変換すると共に、エンジン制御ECU1からエンジン11に送られる制御信号(ディジタル信号)をアナログ信号に変換する。
【0027】
次に、RAM15について図2を用いて説明する。図2は、RAM15の構造を示す模式図である。
RAM15は、例えば、常時、車載バッテリ(図示省略)から給電を受け、記憶内容を保持するように構成された不揮発性メモリであって、図2に示すように、RAM15の記憶領域31を複数の記憶部32Aに分割し、幾つかの連続した記憶部32Aの集合であるブロック(吸気制御ブロック33A、噴射制御ブロック33B、点火制御ブロック33C等)から構成されている。
【0028】
また、RAM15は、FPU17およびCPU14により演算された浮動小数点型データを格納すると共に、FPU17およびCPU14が吸気制御等の各種制御を実行する際の作業領域としても使用される。
【0029】
尚、FPU17およびCPU14が各種制御を実行し、その演算結果を書き込むRAM15内の位置(アドレス)は、実行する制御内容により指定されており、例えば、吸気制御であれば、演算により求められた変数は、必ずRAM15内の吸気制御ブロック33A内に格納される。
【0030】
次に、FPU17が取り扱う浮動小数点型データについて図3を用いて説明する。図3は、浮動小数点型データの構成を示す説明図である。
FPU17が取り扱う浮動小数点型データは、例えば、IEEE754規格に従い構成されており、図3(A)に示すように、4バイトの浮動小数点型データ(単精度記憶形式)であって、その内訳は、1ビットの符号部と、8ビットの指数部と、23ビットの仮数部とを有する。
【0031】
また、図3(B)の単精度記憶形式でのビットパターンに示す表から解るように、指数部と仮数部との組合せにより、正規化数、非正規化数、ゼロ、無限大、および非数に識別される。
【0032】
尚、非数とは、数値ではないことを意味し、例えば、0/0や+∞−∞のように、数値として表現できない演算結果を表す場合に用いられる。
このように構成されたエンジン制御ECU1のうち、FPU17の動作について図4を用いて説明する。図4はFPU17が実行するエンジン制御変数演算処理を示すフローチャートである。
【0033】
尚、図4に示すエンジン制御変数演算処理において、S152およびS154は本発明でいう書込み手段、S102、S105、およびS108は非数判定手段、S103、S106、およびS109は初期化手段に該当する。
【0034】
図4(A)に示すように、エンジン制御変数演算処理では、先ず、S101にて、吸気制御変数演算処理を実行する。
S101の吸気制御変数演算処理は、図4(B)に示すように、S151にて、例えば、吸入空気量等の変数A1を、センサ類12に含まれるエアフロメータ(図示省略)の電圧に基づいて演算し、S152に移行する。
【0035】
S152では、演算により求めた変数A1をRAM15内の吸気制御ブロック33A内に書き込む。
次に、S153に進み、S151〜S152と同様に、例えば、吸気温補正値等の変数C1をセンサ類12に含まれる吸気温センサからの検知に基づいて演算し、S154では、演算により求めた変数A2をRAM15内の吸気制御ブロック33A内に書き込む。
【0036】
以下、同様にして変数A3、A4、…、を演算および書き込みの処理を繰返し、全ての変数に対する演算および書き込みの処理が完了すると吸気制御変数演算処理を終了し、図4(A)のS102に移行する。
【0037】
S102では、RAM15内の吸気制御ブロック33Aに非数32B(図5参照)があるか否かを判定する。具体的には、吸気制御ブロック33Aの先頭アドレスから吸気制御ブロック33Aの終了アドレスまでを4バイト単位で選択し、順次選択する記憶部32Aを変更しながら、各記憶部32Aに記憶されている変数の指数部(ビット30〜23)が全て「1」であり、且つ、この変数の仮数部(ビット22〜0)のうち少なくとも1つ「1」である場合(図3参照)、非数32Bであると判定する。
【0038】
また、判定方法として演算毎に非数チェックしておき、発生をフラグに累積させてS102で累積フラグが立っているかどうかを見ることで非数の発生を判定してもよい。FPU17を搭載したマイコンは上記累積フラグレジスタを実装している場合が多いためこれを利用してもよい。
【0039】
このようにして、RAM15内の吸気制御ブロック33Aに非数32Bがないと判定すれば(S102;NO)、そのままS104に進み、RAM15内の吸気制御ブロック33Aに非数32Bがあると判定すれば(S102;YES)、S103に進み、RAM15内の吸気制御ブロック33Aを初期化した後に、S104に進む。
【0040】
ここで、S103の動作を図5を用いて説明する。図5は、RAM15の初期化範囲を示す説明図である。
図5に示すように、RAM15内の吸気制御ブロック33Aには、非数32Bが含まれている。この際、S102にて(図4参照)、吸気制御ブロック33Aに非数32Bがあると判定されると、S103では、吸気制御ブロック33Aの先頭アドレスから吸気制御ブロック33Aの終了アドレスまでを一括して初期化する。
【0041】
尚、初期化とは、制御に支障がない数値(既定値)を上書きする処理を意味する。
次に、図4(A)におけるS104では、噴射制御変数演算処理を行う。
噴射制御変数演算処理は、図4(B)に示す吸気制御変数演算処理と同様の手順で、それぞれの変数を演算する処理を行い、演算により求められた変数をRAM15内の噴射制御ブロック33Bに書込む処理を行う(図示省略)。
【0042】
以下、S102〜S103と同様に、S105では、RAM15内の噴射制御ブロック33Bに非数32Bがあるか否かを判定し、RAM15内の吸気制御ブロック33Aに非数32Bがないと判定すれば(S105;NO)、そのままS107に進み、RAM15内の噴射制御ブロック33Bに非数32Bがあると判定すれば(S105;YES)、S106に進み、RAM15内の噴射制御ブロック33Bを初期化した後に、S107に進む。
【0043】
S107の点火制御変数演算処理は、図4(B)に示す吸気制御変数演算処理および噴射制御変数制御処理と同様に、それぞれの変数を演算する処理を行い、演算により求められた変数をRAM15内の点火制御ブロック33Cに書込む処理を行う(図示省略)。
【0044】
以下、S102〜S103と同様に、S108では、RAM15内の点火制御ブロック33Cに非数32Bがあるか否かを判定し、RAM15内の点火制御ブロック33Cに非数32Bがないと判定すれば(S108;NO)、例えば、排気制御変数演算処理等の制御を行い、それら全ての処理が終了するとS101に戻りエンジン制御変数演算処理を繰り返す。
【0045】
また、RAM15内の点火制御ブロック33Cに非数32Bがあると判定すれば(S108;YES)、S109に進み、RAM15内の噴射制御ブロック33Bを初期化した後に、例えば、排気制御変数演算処理等の制御を行い、それら全ての処理が終了するとS101に戻りエンジン制御変数演算処理を繰り返す。
【0046】
以上のように詳述したエンジン制御ECU1を使用した際の効果について以下に説明する。
本実施例のエンジン制御ECU1は、FPU17により演算し、RAM15内の記憶部32Aに書き込まれた値に非数32Bがあるか否かを判定し、非数32Bがあると判定した場合には、非数32Bが含まれる制御ブロック(例えば、吸気制御ブロック33A)を初期化するので、RAM15の初期化の際の処理負荷を軽減しながら、非数32B発生時の制御不良を防ぐことができる。
【0047】
また、前述した燃料噴射量の変数と、燃料カットフラグの値との関係のように、数値間に相関関係があるデータが存在する場合であっても、数値間に相関関係があるデータは1つの制御(この場合は燃料噴射の制御)をするのに用いられることが多いので、本実施例のエンジン制御ECU1であれば、制御ブロック単位でRAM15内のブロックの初期化を行うので、数値間の相関関係があるデータを確実に初期化することができる。また、制御単位で分離したプログラムを作成することができるので、効率よくプログラムの作成や変更等をすることができる。
【0048】
また、浮動小数点型データを書き込むRAM15内の各ブロックは、連続したアドレスが割り当てられた記憶部32Aにより構成されているので(図2参照)、例えば、RAM15内のブロックの初期化の際に、同じ値(初期値)をブロックに書き込む処理を行う場合、初期化するブロックが分散されて配置されているよりも、RAM15内のブロックを初期化する際の処理負荷を軽くすることができる。
【0049】
また、RAM15内のブロックを初期化する際には、RAM15内のブロックに制御不良にならないような無難な値である既定値を書き込むようにしているので、FPU17の演算により非数32Bが発生しても継続して制御を実行することができる。
【0050】
更に、エンジン制御ECU1は、点火プラグやメータ類等から発生するノイズが多く、FPU17による演算中に、意図しない非数32Bの発生が予想される環境にある自動車に搭載されているが、このような環境であっても、上述のように、FPU17による演算結果が非数32Bであると判定した場合には、非数32Bが含まれる制御ブロックの初期化を行うので、高精度な演算をしながら、非数32B発生により制御不能になることを回避できる。
【0051】
以下、本実施例における変形例について説明する。尚、ここで述べる変形例は一例に過ぎず、本発明の技術的思想および技術分野に属する限り、多種多様の形態を採りうることは言うまでもない。
【0052】
本実施例におけるエンジン制御ECU1では、各制御(吸気制御、噴射制御等)を順に行ったが、特にこのようにする必要はなく、各制御を同時に並行して行ってもよい。
また、本実施例におけるエンジン制御ECU1では、RAM15の各ブロックを制御単位で設定したが、特に制御単位で各ブロックを設定しなくても、数値間の相関関係があるデータを同時に初期化できるように、各ブロックを設定すればよい。
【0053】
更に、本実施例におけるRAM15内の各ブロックは、連続したアドレスが割り当てられた記憶部32Aにより構成されているが、各ブロックは連続したアドレスが割り当てられた記憶部32Aにより構成されている必要はなく、RAM15内で分散して配置されていてもよい。
【0054】
上記に説明したようなエンジン制御ECU1であっても、高精度な演算をしながら、非数32B発生により制御不能になることを回避できる。
また、本実施例は、本発明の電子制御装置を自動車に使用した一例であるが、特に自動車に限らず、浮動小数点データを取り扱う制御を行うものであれば、本発明の電子制御装置を利用することができる。
【0055】
〔実施例2〕
次に、本実施例(実施例2)のエンジン制御ECU2の搭載された、FPU17の動作について図6および図7を用いて説明する。図6はFPU17が実行するエンジン制御変数演算処理を示すフローチャート、図7はRAM15の構造を示す模式図である。
【0056】
ここで、実施例1で詳述したエンジン制御ECU1と、本実施例(実施例2)のエンジン制御ECU2とは、FPU17が行うエンジン制御変数演算処理とが異なるのみで、その他の構成は同様である。従って、本実施例のエンジン制御ECU2が実施例1のエンジン制御ECU1と同様の箇所については、同一の符号を付して説明を省略し、異なる箇所のみについて詳述する。
【0057】
図6(A)に示すように、エンジン制御変数演算処理は、S201にて、吸気制御変数演算処理を行い、S202にて、噴射制御変数演算処理を行い、S203にて、噴射制御変数演算処理を行い、以下、例えば、排気制御変数演算処理等の演算処理を連続して行い、全ての演算処理が終了すると、S201に戻り、エンジン制御変数演算処理を繰り返す。
【0058】
また、S201の吸気制御変数演算処理では、図6(B)に示すような処理を行う。
図6(B)におけるS251では、例えば、吸入空気量等の変数B1を、センサ類12に含まれるエアフロメータ(図示省略)の電圧に基づいて演算し、S252に移行する。
【0059】
ここで、RAM15内の吸気制御ブロック33Aに含まれる記憶部32Cは、図7に示すように、吸気制御内のみに使用される非参照データ52Aと、吸気制御以外でも使用される参照データ52Bとに分類され、S251で演算した吸入空気量等の変数B1は、このうちの参照データ52Bに属する。
【0060】
次に、S252では、S251にて演算された変数B1が非数32Bであるか否かを判定する。変数B1が非数32Bでないと判定すれば(S252;NO)、S253に進み、変数B1が非数32Bであると判定すれば(S252;YES)、S259に進む。
【0061】
S253では、演算により求めた変数B1をRAM15内の吸気制御ブロック33A内に書き込み、S254に進む。
S254では、例えば、吸気温補正値等の変数C1をセンサ類12に含まれる吸気温センサからの検知に基づいて演算し、S255では、演算により求めた変数C1をRAM15内の吸気制御ブロック33A内に書き込む。
【0062】
ここで、吸気温補正値等の変数C1は、吸気制御内のみに使用される非参照データ52Aに該当し(図7参照)、演算した変数C1が非参照データ52Aに該当する場合にはS252のように、変数C1が非数32Bであるか否かの判定は行わない。尚、演算された各変数B1、C1が非参照データ52Aおよび参照データ52Bの何れに属するかは、予めROM16に記憶されている。
【0063】
次にS256に移行し、例えば、参照データ52Bに属する吸気管圧力等の変数B2を、センサ類12に含まれるエアフロメータの電圧に基づいて演算し、S257に移行する。
【0064】
次に、S257では、S256にて演算された変数B2が非数32Bであるか否かを判定する。変数B2が非数32Bでないと判定すれば(S257;NO)、そのままS258に進み、変数B2が非数32Bであると判定すれば(S257;YES)、S259に進む。
【0065】
S258では、演算により求めた変数B1をRAM15内の吸気制御ブロック33A内に書き込み、以下、同様に変数B3、B4、…、C2、C3、…の演算、非数32Bであるか否かの判定、および書き込みの処理を繰り返し、全ての変数に対する演算および書き込みの処理が完了すると吸気制御変数演算処理を終了する。
【0066】
また、前述のように、参照データ52Bである変数B1(またはB2)を非数32Bであると判定すれば(S252またはS257;NO)、S259に移行し、S259では、RAM15内の吸気制御ブロック33Aを初期化する。この動作は、図4(A)のS103と同様であるため説明を省略する。
【0067】
吸気制御変数演算処理(S201)を終了すると図6(A)のS202の噴射制御変数演算処理を行う。
噴射制御変数演算処理は、図6(B)に示す吸気制御変数演算処理と同様の手順で、それぞれの変数を演算する処理を行い、演算により求められた変数をRAM15内の噴射制御ブロック33Bに書込む処理を行う(図示省略)。
【0068】
以下、同様にして、S203の点火制御変数演算処理、図示しない排気制御変数演算処理等の処理を行い、それら全ての処理が終了するとS201に戻りエンジン制御変数演算処理を繰り返す。
【0069】
尚、図6に示すエンジン制御変数演算処理において、S253およびS258は本発明でいう書込み手段、S252およびS258は非数判定手段、SS259は初期化手段に該当する。
【0070】
以上のように詳述したエンジン制御ECU2であれば、実施例1にて詳述したエンジン制御ECU1とは、RAM15内の記憶部32Aにデータを書き込んでから非数32Bであるか否かの判定を行うか(実施例1)、データを書き込む前に非数32Bであるか否かの判定を行うか(実施例2)の点で異なるが、同様の効果および変形例が考えられる。
【0071】
特に、本実施例(実施例2)のエンジン制御ECU2では、FPU17が非数32Bであるか否かを判定するのは、FPU17が演算した浮動小数点型データのうち、他の制御対象に対する制御の際に参照される参照データ52Bのみに対してであるので、判定のための処理負荷を更に軽減することができる。また、実行中の制御以外の制御に非数32Bの影響が伝播することを防ぐことができる。
【0072】
更に、本実施例(実施例2)のエンジン制御ECU2では、参照データ52BがRAM15に書き込まれる前に、非数32Bであるか否かを判定するので、参照データ52Bが非数32Bであるか否かを判定する前に書込みを行い、参照データ52Bが非数32Bであるのに、参照データ52Bが非数32Bか否かを判定するまでに他の制御により参照され、他の制御が制御不能になることを防止することができる。
【図面の簡単な説明】
【0073】
【図1】エンジン制御ECUを構成する各部の結合関係を示すブロック図である。
【図2】RAMの構造を示す模式図である。
【図3】浮動小数点型データの構成を示す説明図である。
【図4】実施例1のFPUが実行するエンジン制御変数演算処理を示すフローチャートである。
【図5】RAMの初期化範囲を示す説明図である。
【図6】実施例2のFPUが実行するエンジン制御変数演算処理を示すフローチャートである。
【図7】実施例2のRAMの構造を示す模式図である。
【符号の説明】
【0074】
1、2…エンジン制御ECU、11…エンジン、12…センサ類、14…CPU、15…RAM、16…ROM、17…浮動小数点演算プロセッサ(FPU)、18…入出力装置(I/O)、31…記憶領域、32A、C…記憶部、32B…非数、33A…吸気制御ブロック、33B…噴射制御ブロック、33C…点火制御ブロック、52A…非参照データ、52B…参照データ。

【特許請求の範囲】
【請求項1】
浮動小数点型データを演算する浮動小数点演算手段を有し、所定の制御プログラムに従った制御を実行する電子制御装置において、
複数の浮動小数点型データを記憶可能なブロックの集合から成るメモリと、
前記浮動小数点演算手段により演算された浮動小数点型データを前記メモリの所定のブロックに記憶させる書込み手段と、
前記浮動小数点演算手段により演算された浮動小数点型データが非数であるか否かを判定する非数判定手段と、
前記メモリに記憶された浮動小数点型データをブロック単位で初期化する初期化手段と、
を備え、
前記浮動小数点演算手段は、複数の制御対象に対して、それぞれ浮動小数点演算を実行し、
前記メモリのブロックは、前記浮動小数点演算手段が実行する制御単位毎に定められており、
前記非数判定手段は、前記浮動小数点演算手段による複数の浮動小数点演算が前記ブロック単位で終了する毎に前記浮動小数点型データが非数であるか否かを判定し、
前記初期化手段は、前記非数判定手段が前記浮動小数点型データを非数であると判定した場合に、前記メモリの内、前記書込み手段が前記非数を書き込むブロックを選択的に初期化すること
を特徴とする電子制御装置。
【請求項2】
前記非数判定手段は、
前記浮動小数点演算手段による演算毎に該演算された浮動小数点型データが非数であるか否かを判定し、非数であれば非数である旨のフラグを立てるフラグ制御手段と、
前記フラグを参照することによって浮動小数点型データが非数であるか否かを判定するフラグチェック手段と、
を備えたことを特徴とする請求項1に記載の電子制御装置。
【請求項3】
前記書込み手段が浮動小数点型データを書き込むメモリ内のブロックは、前記メモリを複数に分割して設定されているメモリ領域のうち、連続したメモリ領域により構成されていることを特徴とする請求項1または請求項2に記載の電子制御装置。
【請求項4】
前記初期化手段は前記メモリのブロックに既定値を書き込むことにより前記ブロックを初期化することを特徴とする請求項1〜請求項3の何れかに記載の電子制御装置。
【請求項5】
当該電子制御装置は、自動車のエンジン制御のために搭載されるエンジン制御装置であることを特徴とする請求項1〜請求項4の何れかに記載の電子制御装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2008−152801(P2008−152801A)
【公開日】平成20年7月3日(2008.7.3)
【国際特許分類】
【出願番号】特願2008−36049(P2008−36049)
【出願日】平成20年2月18日(2008.2.18)
【分割の表示】特願2003−74210(P2003−74210)の分割
【原出願日】平成15年3月18日(2003.3.18)
【出願人】(000004260)株式会社デンソー (27,639)
【Fターム(参考)】