(57)【特許請求の範囲】
【請求項１】
同一の演算処理を実行する複数の演算処理手段を有し、ロックステップ方式により前記複数の演算処理手段のうち少なくとも１つの異常を検出する情報処理装置であって、
前記演算処理手段の演算処理対象であるプログラムを格納する記憶手段と、
前記演算処理手段により周期的に実行される演算処理と同期する所定のタイミングでオンまたはオフのいずれかの状態に設定される通知不要フラグと、
前記複数の演算処理手段による演算処理結果を比較し、それらが不一致であった場合に前記通知不要フラグの設定を参照してエラー情報を出力するか否かを判断する比較手段と、前記比較手段からエラー情報を取得し、該エラー情報に対応した所定のエラー処理を実行するエラー処理手段を備え、
前記演算処理手段により実行される演算処理は、その内容に関連して、エラー情報を出力する必要がある演算処理と、エラー情報を出力する必要がない演算処理とに分類されており、
前記通知不要フラグは、前記演算処理手段がエラー情報を出力する必要がある演算処理を実行中の期間はオフに設定され、前記演算処理手段がエラー情報を出力する必要がない演算処理を実行中の期間はオンに設定され、
前記比較手段は、前記通知不要フラグがオフに設定されている期間にはエラー情報を出力し、前記通知不要フラグがオンに設定されている期間にはエラー情報を出力しないことを特徴とする情報処理装置。
【請求項２】
前記通知不要フラグは、前記エラー処理手段によりエラー処理が実行されている期間はオンに設定されることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記比較手段は、前記複数の演算処理手段による演算処理結果が不一致であったときに実行されていた演算処理内容を確認し、該演算処理内容が前記通知不要フラグの設定に関する処理であった場合には、前記通知不要フラグを参照せずにエラー情報を出力することを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記通知不要フラグは、前記演算処理手段による演算処理に影響を与える環境変数に関連付けて設定されることを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記環境変数である温度を監視する温度監視制御手段を備え、前記通知不要フラグは、前記温度監視制御手段により温度異常が検出され該温度異常に対する処理が実行されている期間はオンに設定され、該温度異常が解除され正常状態に復帰した時点でオフに設定されることを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記環境変数である電圧を監視する電圧監視制御手段を備え、前記通知不要フラグは、前記電圧監視制御手段により電圧異常が検出され該電圧異常に対する処理が実行されている期間はオンに設定され、該電圧異常が解除され正常状態に復帰した時点でオフに設定されることを特徴とする請求項４記載の情報処理装置。
【請求項７】
前記比較手段から出力されたエラー情報の回数をカウントするエラーカウンタをさらに備え、前記エラー処理手段は、前記比較手段からエラー情報を取得する度に前記エラーカウンタを更新し、前記エラーカウンタのカウント値が予め設定された閾値を超えた場合に所定のエラー処理を実行することを特徴とする請求項１記載の情報処理装置。
【請求項８】
前記エラーカウンタは、前記演算処理手段により実行される演算処理内容に関連付けて設けられることを特徴とする請求項７記載の情報処理装置。
【請求項９】
前記エラーカウンタの閾値は、前記エラー処理手段によるエラー処理の実行回数に応じて変更されることを特徴とする請求項７記載の情報処理装置。
【請求項１０】
前記エラーカウンタの閾値は、前記演算処理手段による演算処理に影響を与える環境変数に応じて変更されることを特徴とする請求項７記載の情報処理装置。
【請求項１１】
前記環境変数である温度を監視する温度監視制御手段を備え、前記温度監視制御手段により温度異常が検出された際に前記エラーカウンタの閾値を変更することを特徴とする請求項１０記載の情報処理装置。
【請求項１２】
前記環境変数である電圧を監視する電圧監視制御手段を備え、前記電圧監視制御手段により電圧異常が検出された際に前記エラーカウンタの閾値を変更することを特徴とする請求項１０記載の情報処理装置。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の演算処理手段を有し、ロックステップ方式により複数の演算処理手段のうち少なくとも１つの異常を検出する情報処理装置に関する。
【背景技術】
【０００２】
自動車に搭載される電子制御装置のように高い信頼性が求められる情報処理装置においては、ロックステップ方式により演算処理手段の異常を検出するものがある。ロックステップ方式では、ＣＰＵ全体やプロセッサコア等の演算処理手段を冗長化して実装し、冗長化された各演算処理手段は同一の演算処理を実行する。それらの演算処理結果は、演算処理手段とは別に設けられた比較手段により比較され、演算処理結果が不一致であった場合には、いずれかの演算処理手段に異常が発生していると判断される。
【０００３】
特許文献１では、ロックステップ方式を採用した情報処理装置２００（図１１参照）において、演算処理手段１０Ａ、１０Ｂによる演算処理結果を比較手段２０により比較し、これらの演算処理結果が異なる場合には、演算処理手段１０Ａ、１０Ｂが行っている処理の重要度に応じて、エラー情報を書き込むアドレスを変更するようにしている。この例では、演算処理手段１０Ａ、１０Ｂが行っている処理の重要度が高い場合には所定のアドレス３１に、重要度が低い場合には所定のアドレス以外のアドレス３２に、エラー情報を書き込むようにし、所定のアドレス３１にエラー情報が書き込まれた場合にのみ、エラー処理手段４０がエラー処理を実行する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１４０１７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記の特許文献１では、演算処理手段１０Ａ、１０Ｂが行っている処理の重要度に応じて、エラー情報を書き込むアドレスを変更することにより、重要度が低い演算処理に対するエラー処理のために重要度が高い演算処理が停止してしまう事態の発生を抑制している。しかし、この方法では、重要度が低い演算処理に対するエラーの場合であっても、比較手段２０は所定のアドレス以外のアドレス３２にエラー情報を書き込む必要があった。このため、エラー情報の出力による処理負荷がかかり、実行中の演算処理が停止したり演算処理の開始が遅延したりするという問題があった。
【０００６】
本発明は、上記のような課題を解決するためになされたものであり、ロックステップ方式で動作する情報処理装置において、エラー情報の出力による処理負荷を低減し、演算処理の停止や遅延を抑制することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る情報処理装置は、同一の演算処理を実行する複数の演算処理手段を有し、ロックステップ方式により複数の演算処理手段のうち少なくとも１つの異常を検出する情報処理装置であって、演算処理手段の演算処理対象であるプログラムを格納する記憶手段と、演算処理手段により周期的に実行される演算処理と同期する所定のタイミングでオンまたはオフのいずれかの状態に設定される通知不要フラグと、複数の演算処理手段による演算処理結果を比較し、それらが不一致であった場合に通知不要フラグの設定を参照してエラー情報を出力するか否かを判断する比較手段と、比較手段からエラー情報を取得し、該エラー情報に対応した所定のエラー処理を実行するエラー処理手段を備え、演算処理手段により実行される演算処理は、その内容に関連して、エラー情報を出力する必要がある演算処理と、エラー情報を出力する必要がない演算処理とに分類されており、通知不要フラグは、演算処理手段がエラー情報を出力する必要がある演算処理を実行中の期間はオフに設定され、演算処理手段がエラー情報を出力する必要がない演算処理を実行中の期間はオンに設定され、比較手段は、通知不要フラグがオフに設定されている期間にはエラー情報を出力し、通知不要フラグがオンに設定されている期間にはエラー情報を出力しないものである。
【発明の効果】
【０００８】
本発明に係る情報処理装置によれば、比較手段は、通知不要フラグの設定を参照してエラー情報を出力するか否かを判断するようにしたので、エラー処理の必要性の低いエラー情報の出力処理を抑制することができ、その結果、必要性の低いエラー処理の実行回数が抑制されるため、演算処理手段の処理負荷が低減され、重要性の高い演算処理が停止したり遅延したりする事態を回避することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態１に係るエンジン制御用情報処理装置の構成を示すブロック図である。
【図２】本発明の実施の形態１に係るエンジン制御用情報処理装置による演算処理のタイミングと通知不要フラグの状態を時間軸に沿って説明する図である。
【図３】本発明の実施の形態１に係るエンジン制御用情報処理装置の比較手段における処理の流れを示す図である。
【図４】本発明の実施の形態１に係るエンジン制御用情報処理装置と従来の情報処理装置による演算処理の実行タイミングを時間軸に沿って説明する図である。
【図５】本発明の実施の形態１に係るエンジン制御用情報処理装置によるエラー処理のタイミングと通知不要フラグの状態を時間軸に沿って説明する図である。
【図６】本発明の実施の形態２に係るエンジン制御用情報処理装置の比較手段における処理の流れを示す図である。
【図７】本発明の実施の形態３に係るエンジン制御用情報処理装置の構成を示すブロック図である。
【図８】本発明の実施の形態３に係るエンジン制御用情報処理装置による演算処理のタイミングと通知不要フラグの状態を時間軸に沿って説明する図である。
【図９】本発明の実施の形態４に係るエンジン制御用情報処理装置の構成を示すブロック図である。
【図１０】本発明の実施の形態４に係るエンジン制御用情報処理装置におけるエラーカウンタの動作を時間軸に沿って説明する図である。
【図１１】ロックステップ方式を採用した従来の情報処理装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１０】
実施の形態１．
以下に、本発明の実施の形態１に係る情報処理装置について、図面に基づいて説明する。図１は、本実施の形態１に係るエンジン制御用情報処理装置の構成を示している。本実施の形態１に係るエンジン制御用情報処理装置１００（以下、情報処理装置１００と略す）は、同一の演算処理を実行する複数の演算処理手段を有し、ロックステップ方式により複数の演算処理手段のうち少なくとも１つの異常を検出するもので、図１に示すように、演算処理手段として２つのプロセッサコア１Ａ、１Ｂと、プロセッサコア１Ａ、１Ｂの演算処理結果を比較する比較手段２と、プロセッサコア１Ａ、１Ｂの演算処理対象であるプログラムを格納する記憶手段であるメモリ３を備え、これらは内部バス４により互いに接続されている。
【００１１】
情報処理装置１００のメモリ３に格納されているプログラムについて説明する。メモリ３には、プロセッサコア１Ａ、１Ｂの演算処理対象であるプログラムとして、エンジン制御用プログラム３１と、エラー処理手段（エラー処理プログラム）３２が格納されている
。エンジン制御用プログラム３１には、燃料噴射制御プログラム３１１、点火時期制御プログラム３１２、吸気量制御プログラム３１３、及びその他の制御プログラム３１４が含まれる。なお、本実施の形態１では、プログラムやデータの記憶手段として１つのメモリ３を用いているが、プログラムを不揮発メモリ、データを揮発メモリというように、別の記憶手段に格納してもよい。
【００１２】
エラー処理手段３２は、比較手段２からエラー情報が出力された場合に実行すべきエラー処理内容を保持しており、比較手段２から出力されるエラー情報を取得し、該エラー情報に対応した所定のエラー処理を実行するプログラムである。エラー処理内容としては、情報処理装置１００を機能縮退モードに遷移させる、あるいは情報処理装置１００をリセットする等の処理がある。
【００１３】
さらに、メモリ３には、通知不要フラグ３３が格納されている。通知不要フラグ３３は、プロセッサコア１Ａ、１Ｂにより周期的に実行される演算処理と同期する所定のタイミングでオンまたはオフのいずれかの状態に設定されるものである。本実施の形態１では、通知不要フラグ３３は、プロセッサコア１Ａ、１Ｂにより実行される演算処理内容に関連付けて設定される。
【００１４】
２つのプロセッサコア１Ａ、１Ｂは、メモリ３に格納されているエンジン制御用プログラム３１の同一の演算処理を同時に実行する。すなわち、プロセッサコア１Ａ、１Ｂがいずれも正常状態であれば、同じ演算処理結果を出力する。しかし、プロセッサコア１Ａ、１Ｂのいずれか一方または両方が故障している場合や一時的なノイズの印加等があった場合には、２つのプロセッサコア１Ａ、１Ｂの演算処理結果は異なるものとなる。
【００１５】
比較手段２は、２つのプロセッサコア１Ａ、１Ｂによる演算処理結果を比較し、それらが不一致であった場合に通知不要フラグ３３の設定を参照してエラー情報を出力するか否かを判断する。比較手段２は、通知不要フラグ３３がオフに設定されている期間にはエラー情報をエラー処理手段３２へ出力し、通知不要フラグ３３がオンに設定されている期間にはエラー情報を出力しない。
【００１６】
次に、情報処理装置１００における通知不要フラグ３３の設定例について、図２のタイムチャートを用いて説明する。図２は、情報処理装置１００のプロセッサコア１Ａ、１Ｂによる演算処理のタイミングと通知不要フラグ３３の状態を時間軸に沿って示している。図２において、縦軸はプロセッサコア１Ａ、１Ｂによるエンジン制御用の各演算処理内容（実行／停止）及び通知不要フラグ３３の状態（オン／オフ）を示し、横軸は時間を示している。
【００１７】
図２に示すように、エンジン制御用の各演算処理（燃料噴射制御、点火時期制御、吸気量制御）は、それぞれ周期的に実行される。プロセッサコア１Ａ、１Ｂがこれらのエンジン制御用の演算処理のいずれかを実行中の期間は、異常を検出する必要があるため、通知不要フラグ３３はオフに設定される。従って、この期間に比較手段２がプロセッサコア１Ａ、１Ｂの演算処理結果の不一致を検出した場合には、エラー情報を出力し、エラー処理手段３２は該エラー情報に対応した所定のエラー処理を実行する。
【００１８】
一方、プロセッサコア１Ａ、１Ｂがエンジン制御用の演算処理の１つの演算処理を終了してから次の演算処理を開始するまでの期間（図中、ａで示す期間）は、プロセッサコア１Ａ、１Ｂはエンジン制御に関わる演算処理を実行していない。この期間ａに実行される演算処理は、エンジン制御に関わるような重要なものではなく、補助的な演算処理や空のループ処理等である。このため、期間ａには、一時的なノイズの印加等によってプロセッサコア１Ａ、１Ｂによる演算処理結果が不一致であったとしても、エラー処理を実行しな
くても良い場合が多い（エラー処理の必要性が低い）。
【００１９】
これらのことから、本実施の形態１では、プロセッサコア１Ａ、１Ｂがエンジン制御に関わる演算処理を行っていない期間ａには、通知不要フラグ３３をオンに設定し、比較手段２がプロセッサコア１Ａ、１Ｂの演算処理結果の不一致を検出しても、エラー情報を出力しないようにしている。これにより、期間ａの後に実行されるエンジン制御用の演算処理（図２では点火時期制御）の開始が、エラー情報の出力やエラー処理のために妨げられることがなく、点火時期制御が遅延なく実行される。
【００２０】
続いて、情報処理装置１００の比較手段２における処理の流れについて、図３のフローチャートを用いて説明する。まず、ステップ１（Ｓ１）において、比較手段２は、２つのプロセッサコア１Ａ、１Ｂから出力された演算処理結果を比較する。続いてステップ２（Ｓ２）において、比較結果が一致した場合（ＹＥＳ）には、プロセッサコア１Ａ、１Ｂが共に正常に動作していると判断し、エラー処理は不要であるため処理を終了する。
【００２１】
一方、Ｓ２において、比較結果が不一致であった場合（ＮＯ）には、エラー処理手段３２にエラー情報を出力するか否かを判断するために、ステップ３（Ｓ３）に進む。Ｓ３において、比較手段２は、メモリ３に格納された通知不要フラグ３３を参照し、ステップ４（Ｓ４）において、通知不要フラグ３３がオフであった場合（ＹＥＳ）には、エラー情報の出力が必要であると判断し、ステップ５（Ｓ５）に進む。Ｓ５では、エラー情報をエラー処理手段３２へ書き込み、処理を終了する。また、Ｓ４において、通知不要フラグ３３がオンであった場合（ＮＯ）には、エラー情報の出力が不要であると判断し、処理を終了する。
【００２２】
次に、この図３のフローチャートを用い、プロセッサコア１Ａにノイズ電圧が印加したために２つのプロセッサコア１Ａ、１Ｂの演算処理結果が不一致となり、且つエンジン制御用の演算処理を実行中の期間で通知不要フラグ３３がオフに設定されている場合（これをケース１とする）の処理の流れについて説明する。
【００２３】
ケース１では、比較手段２は、Ｓ２において比較結果が不一致であるためＳ３に進み、通知不要フラグ３３を参照し、Ｓ４において通知不要フラグ３３がオフであるためＳ５に進み、エラー情報をエラー処理手段３２へ出力する。このケース１のように、プロセッサコア１Ａ、１Ｂがエンジン制御用の演算処理を実行中に演算処理結果の不一致が発生した場合には、比較手段２によりエラー情報が出力され、リセットの実行あるいは機能縮退モードへの遷移等のエラー処理が直ちに実行される。
【００２４】
続いて、この図３のフローチャートを用い、プロセッサコア１Ａにノイズ電圧が印加したために２つのプロセッサコア１Ａ、１Ｂの演算処理結果が不一致となり、且つエンジン制御用の演算処理を実行していない期間で通知不要フラグ３３がオンに設定されている場合（これをケース２とする）の処理の流れについて説明する。ケース２では、比較手段２は、Ｓ２において比較結果が不一致であるためＳ３に進み、通知不要フラグ３３を参照し、Ｓ４において通知不要フラグ３３がオンであるため処理を終了する。
【００２５】
次に、このケース２における通知不要フラグ３３の状態とプロセッサコア１Ａ、１Ｂによる演算処理の実行タイミングについて、図４のタイムチャートを用いて説明する。図４において、縦軸はプロセッサコア１Ａ、１Ｂによるエンジン制御用の各演算処理内容（実行／停止）、通知不要フラグ３３の状態（オン／オフ）、及び比較手段２からのエラー情報出力（実行／停止）を示し、横軸は時間を示している。なお、図４中、実線は本実施の形態１に係る情報処理装置１００による処理、点線は従来の情報処理装置による処理を示している。従来の情報処理装置は通知不要フラグを備えていないため、図４では通知不要
フラグが常時オフの状態であるように示されている。
【００２６】
図４に示すように、プロセッサコア１Ａ、１Ｂの演算処理結果に図中Ｂで示す時点で不一致が発生すると、従来の情報処理装置（点線）では比較手段がエラー情報を出力するため、エラー情報の出力処理の期間分（図中ｂで示す）、次の点火時期制御の実行開始が遅れ、その後の各演算処理の実行開始も全てｂで示す期間分遅れている。これに対し、情報処理装置１００（実線）では、エンジン制御用の演算処理を実行していない期間は通知不要フラグ３３がオンに設定されており、その期間中であるＢの時点で２つのプロセッサコア１Ａ、１Ｂの演算処理結果に不一致が発生しても、比較手段２はエラー情報を出力しない。このため、次の演算処理である点火時期制御が遅延無く実行されている。
【００２７】
次に、エラー処理実行中の通知不要フラグ３３の設定例について、図５のタイムチャートを用いて説明する。情報処理装置１００においては、２つのプロセッサコア１Ａ、１Ｂによる演算処理結果が１つのエラー要因によって連続して不一致となる場合がある。このため、エラー処理手段３２によりエラー処理が実行されている期間は、通知不要フラグ３３をオンに設定するとよい。
【００２８】
図５において、縦軸はプロセッサコア１Ａ、１Ｂによるエンジン制御用の各演算処理内容（実行／停止）、比較手段２からのエラー情報出力（実行／停止）、エラー処理手段３２によるエラー処理（実行／停止）、及び通知不要フラグ３３の状態（オン／オフ）を示し、横軸は時間を示している。なお、図５中、Ｃ、Ｄ、Ｅで示す時点でプロセッサコア１Ａ、１Ｂの演算処理結果に連続して不一致が発生し、Ｆで示す時点でエラーから復帰したものとする。
【００２９】
図５に示す例では、点火時期制御の演算処理を実行中に発生した不一致（Ｃ）の後、連続して不一致（Ｄ、Ｅ）が発生している。エラー処理手段３２は、最初の不一致（Ｃ）によるエラー情報を比較手段２から取得すると、正常な状態へ復帰するまで（すなわちエラー処理が終了するＦの時点まで）通知不要フラグ３３をオンに設定し、比較手段２がエラー情報を出力しないようにする。これにより、エラー情報の出力処理による処理負荷を低減することができ、エラー処理の実行を妨げない。
【００３０】
以上のように、本実施の形態１に係る情報処理装置１００は、２つのプロセッサコア１Ａ、１Ｂにより周期的に実行される演算処理と同期する所定のタイミングでオンまたはオフのいずれかの状態に設定される通知不要フラグ３３を備え、プロセッサコア１Ａ、１Ｂがエンジン制御用の演算処理を実行している期間は通知不要フラグ３３をオフに設定し、補助的な処理や空のループ処理等を実行している期間は通知不要フラグ３３をオンに設定するようにした。比較手段２は、２つのプロセッサコア１Ａ、１Ｂによる演算処理結果が不一致であった場合に通知不要フラグ３３の設定を参照し、通知不要フラグ３３がオフに設定されている期間にはエラー情報を出力し、エラー処理手段３２により該エラー情報に対応したエラー処理を実行し、通知不要フラグ３３がオンに設定されている期間には、エラー情報を出力しないようにした。
【００３１】
従って、本実施の形態１に係る情報処理装置１００によれば、エラー処理の必要性の低いエラー情報の出力処理が抑制されるため、プロセッサコア１Ａ、１Ｂの処理負荷が低減され、重要性の高いエンジン制御用の演算処理が停止したり遅延したりする事態を回避することができる。
【００３２】
さらに、エラー処理手段３２によりエラー処理が実行されている期間は通知不要フラグ３３をオンに設定することにより、１つのエラーの発生に起因してプロセッサコア１Ａ、１Ｂの演算処理結果が連続して不一致となった場合においても、比較手段２が連続してエ
ラー情報を出力しないので、エラー情報の出力処理による処理負荷が低減され、実行中のエラー処理がエラー情報の出力処理に割り込まれて中断されることがない。これにより、エラー処理に要する時間を従来よりも短縮することができ、エラー処理を遅延無く実行することができる。
【００３３】
実施の形態２．
本発明の実施の形態２に係るエンジン制御用情報処理装置の構成は、上記実施の形態１と同じであるため、図１を流用して説明する。本実施の形態２に係る情報処理装置１００の比較手段２は、２つのプロセッサコア１Ａ、１Ｂによる演算処理結果が不一致であったときに実行されていた演算処理内容を確認し、該演算処理内容が通知不要フラグ３３の設定に関する処理（オン／オフ切り替え処理）であった場合には、通知不要フラグ３３を参照せずにエラー情報を出力するものである。
【００３４】
本実施の形態２に係る情報処理装置１００の比較手段２における処理の流れについて、図６のフローチャートを用いて説明する。なお、図６中、図３と同じ処理番号は同じ処理を示している。まず、Ｓ１において、比較手段２は、２つのプロセッサコア１Ａ、１Ｂから出力された演算処理結果を比較し、Ｓ２において比較結果が一致した場合（ＹＥＳ）には、プロセッサコア１Ａ、１Ｂが共に正常に動作していると判断し、エラー処理は不要であるため処理を終了する。
【００３５】
一方、Ｓ２において、比較結果が不一致であった場合（ＮＯ）には、ステップ６（Ｓ６）に進み、比較手段２は、比較結果が不一致であったときに実行されていた演算処理内容が、通知不要フラグ３のオン／オフ設定に関する処理であったか否かを確認する。演算処理内容が通知不要フラグ３３の設定に関する処理であった場合（ＹＥＳ）には、その時点での通知不要フラグ３３の設定状態に関係なく、エラー情報を出力するためにＳ５へ進み、エラー情報をエラー処理手段３２へ書き込み、処理を終了する。
【００３６】
Ｓ６において、演算処理内容が通知不要フラグ３３の設定に関する処理でなかった場合（ＮＯ）には、通知不要フラグ３の設定状態を参照するためＳ３へ進む。Ｓ３において、比較手段２は、メモリ３に格納された通知不要フラグ３３を参照し、Ｓ４において、通知不要フラグ３３がオフであった場合（ＹＥＳ）には、エラー情報の出力が必要であると判断しＳ５に進む。Ｓ５では、エラー情報をエラー処理手段３２へ書き込み、処理を終了する。また、Ｓ４において、通知不要フラグ３３がオンであった場合（ＮＯ）には、エラー情報の出力が不要であると判断し、処理を終了する。
【００３７】
次に、この図６のフローチャートを用い、プロセッサコア１Ａにノイズ電圧が印加したために２つのプロセッサコア１Ａ、１Ｂの演算処理結果が不一致となり、且つエンジン制御用の演算処理を実行していない空ループ処理を実行中の期間で、通知不要フラグ３３がオンに設定されている場合（これをケース３とする）の処理の流れについて説明する。
【００３８】
ケース３では、比較手段２は、Ｓ２において比較結果が不一致であるためＳ６に進み、Ｓ６において演算処理内容が通知不要フラグ３３の設定に関する処理でなかったため、Ｓ３に進み、通知不要フラグ３を参照し、Ｓ４において通知不要フラグ３３がオンであるため、エラー情報を出力せずに処理を終了する。
【００３９】
続いて、この図６のフローチャートを用い、通知不要フラグ３３がオンの状態で、通知不要フラグ３３のオン／オフを切り替える処理を実行中に、プロセッサコア１Ａにノイズ電圧が印加したために２つのプロセッサコア１Ａ、１Ｂの演算処理結果が不一致となった場合（これをケース４とする）の処理の流れについて説明する。
【００４０】
このケース４では、比較手段２は、Ｓ２において比較結果が不一致であるためＳ６に進み、Ｓ６において演算処理内容が通知不要フラグ３３の設定に関する処理であったため、通知不要フラグ３３は参照せず、直ちにＳ５へ進み、エラー情報をエラー処理手段３２へ出力し、処理を終了する。
【００４１】
本実施の形態２によれば、上記実施の形態１と同様の効果に加え、２つのプロセッサコア１Ａ、１Ｂの演算処理結果が不一致であったときに実行されていた演算処理内容を確認し、該演算処理内容が通知不要フラグ３３の設定に関する処理であった場合には、通知不要フラグ３３を参照せず、エラー情報を出力するようにしたので、エラー情報が出力されないためにエラー処理が実行できないという事態を回避することができる。
【００４２】
実施の形態３．
図７は、本発明の実施の形態３に係るエンジン制御用情報処理装置の構成を示している。なお、図７中、図１と同一、相当部分には同一符号を付し、説明を省略する。本実施の形態３に係るエンジン制御用情報処理装置１００ａ（以下、情報処理装置１００ａと略す）は、上記実施の形態１に係る情報処理装置１００（図１）と同様の構成に加え、情報処理装置１００ａに入力される信号及び情報処理装置１００ａから出力される信号を処理する信号処理部５を備えている。
【００４３】
信号処理部５は、情報処理装置１００ａに接続された温度センサ６からの信号を検出し、プロセッサコア１Ａ、１Ｂは、演算処理中に信号処理部５を参照して温度を検出することができる。また、プロセッサコア１Ａ、１Ｂは、エンジン制御用の演算処理で決定した燃料噴射量（インジェクタ駆動時間）に基づき、信号処理部５を介してインジェクタ７を駆動する信号を出力する。
【００４４】
さらに、情報処理装置１００ａのメモリ３ａには、温度監視制御手段である温度監視制御プログラム３４が格納されている。温度監視制御プログラム３４は、プロセッサコア１Ａ、１Ｂによる演算処理に影響を与える環境変数である温度を、信号処理部５を介して監視し、所定の温度範囲から外れた場合に異常であると判断し、温度異常に対する処理を実行する。なお、本実施の形態３では、情報処理装置１００ａへの環境変数の入力は、信号処理部５に接続された温度センサ６から行ったが、他の情報処理装置から通信ネットワークを介して通信メッセージとして入力されるものであってもよい。
【００４５】
情報処理装置１００ａにおいて、通知不要フラグ３３は、上記実施の形態１と同様に、プロセッサコア１Ａ、１Ｂにより実行される演算処理内容に関連付けられて設定され、さらに、環境変数に関連付けて設定される。具体的には、温度監視制御プログラム３４が温度異常を検出した場合、通知不要フラグ３３をオンに設定すると共に、制御を縮退モードへ遷移させる等の温度異常に対する処理を実行する。このため、該温度異常に起因して２つのプロセッサコア１Ａ、１Ｂの演算処理結果に不一致が発生しても、エラー処理手段３２がエラー処理を実行する必要はない（従って通知不要フラグ３３をオンに設定する）。
【００４６】
情報処理装置１００ａにおける通知不要フラグ３３の設定例について、図８のタイムチャートを用いて説明する。図８は、情報処理装置１００ａのプロセッサコア１Ａ、１Ｂによる演算処理のタイミングと通知不要フラグ３３の状態を時間軸に沿って示している。図８において、縦軸はプロセッサコア１Ａ、１Ｂによるエンジン制御用の各演算処理内容（実行／停止）、温度監視制御プログラム３４による温度監視制御処理（実行／停止）、及び通知不要フラグ３３の状態（オン／オフ）を示し、横軸は時間を示している。
【００４７】
図８に示すように、エンジン制御用の各演算処理（燃料噴射制御、点火時期制御、吸気量制御）は、それぞれ周期的に実行される。図中Ｇで示す時点で、例えば熱雑音のような
温度異常が検出されると、温度監視制御プログラム３４は通知不要フラグ３３をオンに設定し、比較手段２がエラー情報を出力しないようにする。その後、温度異常が解除され正常状態に復帰した時点（図中Ｈで示す時点）で、通知不要フラグ３３をオフに設定する。
【００４８】
なお、本実施の形態３では、温度異常を検出した際に通知不要フラグ３３をオンに設定するようにしたが、本発明はこれに限定されるものではない。例えば、温度異常を検出した際に、温度監視制御プログラム３４が該温度異常に対する処理を直ちに実行しないようにし、代わりに温度異常に起因するプロセッサコア１Ａ、１Ｂの演算処理結果の不一致を検出するようにしてもよい。この場合は、温度異常を検出したら２つのプロセッサコア１Ａ、１Ｂの演算処理内容に関わらず、エラー情報が常に出力されるように通知不要フラグ３３をオフに設定すれば良い。
【００４９】
また、本実施の形態３では、環境変数として温度を例に挙げて説明したが、他の環境変数であってもよい。例えば、電圧を監視する電圧監視制御手段である電圧監視制御プログラムを備え、電圧監視制御プログラムにより電圧異常が検出されている期間は通知不要フラグ３３をオンに設定するようにしてもよい。これにより、電圧異常の際には比較手段２はエラー情報を出力しないため、エラー情報の出力処理による処理負荷を低減することができ、電圧監視制御プログラムにより電圧異常に対する処理を遅延無く実行することができる。
【００５０】
本実施の形態３によれば、上記実施の形態１と同様の効果に加え、通知不要フラグ３３を環境変数である温度に関連付けて設定するようにしたので、温度異常の際には比較手段２からエラー情報を出力せず、エラー情報の出力処理による処理負荷を低減することができ、温度監視制御プログラム３４による温度異常に対する処理を遅延無く実行することができる。
【００５１】
実施の形態４．
図９は、本発明の実施の形態４に係るエンジン制御用情報処理装置の構成を示している。なお、図９中、図７と同一、相当部分には同一符号を付し、説明を省略する。本実施の形態４に係るエンジン制御用情報処理装置１００ｂ（以下、情報処理装置１００ｂと略す）は、比較手段２から出力されたエラー情報の回数をカウントする２つのエラーカウンタ３５、３６と、信号処理部５を介して電圧を監視する電圧監視制御プログラム３７を備えている。
【００５２】
エラーカウンタ３５、３６及び電圧監視制御プログラム３７は、情報処理装置１００ｂのメモリ３ｂに格納されている。エラーカウンタ３５、３６は、プロセッサコア１Ａ、１Ｂの演算処理内容に関連付けて設定される。本実施の形態４では、演算処理内容が燃料噴射制御のときに発生したエラー情報をカウントする燃料噴射制御用エラーカウンタ３５と、燃料噴射制御以外のエンジン制御（点火時期制御、吸気量制御）のときに発生したエラー情報をカウントするその他の制御用エラーカウンタ３６の２つを備えている。
【００５３】
エラー処理手段３２は、比較手段２からエラー情報を取得する度に、そのエラー情報に応じてエラーカウンタ３５（または３６）を更新する。本実施の形態４では、比較手段２からエラー情報を取得したときのプロセッサコア１Ａ、１Ｂによる演算処理内容が燃料噴射制御であった場合には、燃料噴射制御用エラーカウンタ３５を更新（１インクリメント）し、それ以外のエンジン制御であった場合には、その他の制御用エラーカウンタ３６を更新する。
【００５４】
なお、一般に、エラー処理手段３２には、比較手段２からエラー情報の出力を直ちに検出し、エラーカウンタ３５、３６を更新するもの、あるいは周期的に起動し、その都度比
較手段２からのエラー情報を確認してエラーカウンタ３５、３６を更新するものがある。本実施の形態４におけるエラー処理手段３２は、そのいずれであってもよい。
【００５５】
さらに、エラー処理手段３２は、エラーカウンタ３５、３６のカウント値が予め設定された閾値を超えた場合に、所定のエラー処理を実行する。なお、エラーカウンタ３５、３６の閾値は、エラー処理手段３２によるエラー処理の実行回数に応じて、あるいはプロセッサコア１Ａ、１Ｂによる演算処理に影響を与える環境変数（温度、電圧等）に応じて変更される。本実施の形態４では、エラー処理手段３２は、いずれかのエラーカウンタ３５、３６のカウント値が閾値Ｘを超えた場合には、情報処理装置１００ｂを機能縮退モードに遷移させる、あるいは情報処理装置１００ｂをリセットする等のエラー処理を実行し、その後、閾値をＹ（Ｘ＞Ｙ）に変更する。
【００５６】
このように、特定の演算処理内容または特定の演算処理グループに対応したエラーカウンタ（本実施の形態４では燃料噴射制御用エラーカウンタ３５）を設けることにより、エラー処理手段３２は、特定の演算処理で不一致が多発していることを検出することができる。これにより、不一致の発生がノイズの印加等の一時的な要因によるものであるか、あるいは情報処理装置１００ｂの不具合のような重大な要因によるものであるか区別することができ、重大な要因に対してエラー処理手段３２によりエラー処理を行うことができる。
【００５７】
また、エラーカウンタ３５、３６のカウント値が閾値を超えた場合に、次回の閾値を下げることにより、演算処理結果の不一致に対するエラー処理の実行頻度を上げることができる。これにより、初回のエラー処理で正常状態に復帰できていなかった場合に、より早く次のエラー処理を実行することができる。また、エラー処理では復帰不可能な重大なエラーを検出することができる。なお、本実施の形態４において、エラー処理手段３２は、エラーカウンタ３５、３６のカウント値が閾値を超えた場合に閾値を下げるようにしたが、演算処理内容に応じて閾値を上げ、エラー処理手段３２によるエラー処理の実行頻度を下げ、復帰のためのエラー処理の回数を減らすようにしてもよい。
【００５８】
なお、本実施の形態４では、燃料噴射制御用エラーカウンタ３５と、その他の制御用エラーカウンタ３６の２つのエラーカウンタを設けたが、エラーカウンタの種類及び数はこれに限定されるものではない。燃料噴射制御用エラーカウンタ３５のみとし、燃料噴射制御用演算処理以外は通知不要フラグ３３をオンにし、燃料噴射制御での不一致発生時のみエラー情報を出力するようにしてもよい。
【００５９】
さらに、本実施の形態４において、電圧監視制御プログラム３７は、信号処理部５を介して検出した電圧が所定の電圧範囲から外れた場合、電圧異常であると判断し、エラーカウンタ３５、３６の閾値をＺ（Ｘ＜Ｚ）に変更するとともに、電圧異常に対する処理（例えば所定時間、制御を縮退モードに遷移させる）を実行する。このように、電圧異常が検出された際にエラーカウンタ３５、３６の閾値を上げることにより、予め予測可能な不一致の発生に対してエラー処理手段３２によるエラー処理の頻度を下げ、電圧監視制御プログラム３７による電圧異常に対する処理を遅延無く実行する。
【００６０】
以上説明した本実施の形態４に係る情報処理装置１００ｂにおけるエラーカウンタ３５、３６の動作について、図１０のタイムチャートを用いて説明する。図１０において、縦軸はプロセッサコア１Ａ、１Ｂによるエンジン制御用の各演算処理内容（実行／停止）、電圧監視制御プログラム３７による電圧監視制御処理（実行／停止）、通知不要フラグ３３の状態（オン／オフ）、及びエラーカウンタ３５、３６によるカウント値と閾値（Ｘ、Ｙ、Ｚ）を示し、横軸は時間を示している。
【００６１】
図１０に示すように、エンジン制御用の各演算処理（燃料噴射制御、点火時期制御、吸気量制御）は、それぞれ周期的に実行される。図中Ｊで示す時点でプロセッサコア１Ａ、１Ｂの演算処理結果に不一致が発生すると、燃料噴射制御の実行中で通知不要フラグ３３はオフに設定されているため、エラー情報が出力される。エラー処理手段３２は、燃料噴射制御用エラーカウンタ３５をインクリメントする。
【００６２】
次に、図中Ｋで示す不一致発生時は、通知不要フラグ３３がオンに設定されているため、比較手段２からエラー情報は出力されず、エラーカウンタ３５、３６はインクリメントされない。続いて、図中Ｌで示す不一致発生時は、点火時期制御の実行中であるため、通知不要フラグ３３はオフに設定されており、エラー情報が出力される。エラー処理手段３２は、その他の制御用エラーカウンタ３６をインクリメントする。
【００６３】
次に、図中Ｍで示す不一致発生時は、燃料噴射制御の実行中であるため通知不要フラグ３３はオフに設定されており、エラー情報が出力される。ここで、エラー処理手段３２が燃料噴射制御用エラーカウンタ３５をインクリメントすると、燃料噴射制御用エラーカウンタ３５のカウント値が閾値Ｘを超える。このため、エラー処理手段３２は、情報処理装置１００ｂを機能縮退モードに遷移させる、あるいは情報処理装置１００ｂをリセットする等のエラー処理を直ちに実行する。
【００６４】
その後、図中Ｎで示す時点でエラーから正常状態に復帰すると、エラー処理手段３２は燃料噴射制御のエラーカウンタ３５を「０」にリセットする。さらに、燃料噴射制御用エラーカウンタ３５は、閾値Ｘを超えてエラー処理を実行したため、以降の閾値の値はＹ（Ｘ＞Ｙ）に変更される。
【００６５】
次に、図中Ｐで示す不一致発生時は、燃料噴射制御の実行中であるため通知不要フラグ３３はオフに設定されており、エラー情報が出力される。ここで、エラー処理手段３２が燃料噴射制御用エラーカウンタ３５をインクリメントすると、燃料噴射制御用エラーカウンタ３５のカウント値が閾値Ｙを超える。このため、エラー処理手段３２は、情報処理装置１００ｂを機能縮退モードに遷移させる、あるいは情報処理装置１００ｂをリセットする等のエラー処理を直ちに実行する。その後、図中Ｑで示す時点でエラーから正常状態に復帰すると、エラー処理手段３２は燃料噴射制御のエラーカウンタ３５を「０」にリセットする。
【００６６】
さらに、図中Ｒで示す時点において、電圧監視制御プログラム３７が一時的な電圧低下等の電圧異常を検出すると、電圧監視制御プログラム３７は、エラーカウンタ３５、３６の閾値をＺ（Ｘ＜Ｚ）へ引き上げる。この電圧異常によって２つのプロセッサコア１Ａ、１Ｂが正常に動作せず、図中Ｓで示す時点で演算処理結果の不一致が発生し、その他の制御用エラーカウンタ３６のカウント値は閾値Ｘを超える。しかし、閾値はＺへ引き上げられているため、エラー処理手段３２はエラー処理を行う必要がなく、電圧監視制御プログラム３７により電圧異常に対する処理が速やかに実行される。その後、図中Ｔで示す時点で電圧異常が解除され正常状態に復帰すると、電圧監視制御プログラム３７は、エラーカウンタ３５、３６の閾値をＸに戻す。
【００６７】
なお、本実施の形態４では、電圧異常時にエラーカウンタの閾値を上げるようにしたが、演算処理内容に応じて閾値を下げるようにしてもよい。閾値を上げることによりエラー処理手段３２によるエラー処理の実行頻度を下げた場合には、電圧監視制御プログラム３７において、電圧異常に対する処理を遅延無く実行することができ、閾値を下げることによりエラー処理手段３２によるエラー処理の実行頻度を上げた場合には、予測される電圧異常に起因するエラーに対し、エラー処理手段３２により迅速にエラー処理を実行することができる。
【００６８】
また、本実施の形態４では、プロセッサコア１Ａ、１Ｂによる演算処理に影響を与える環境変数として電圧を例に挙げたが、他の環境変数であってもよい。例えば温度監視制御プログラム３４（図７参照）により温度を監視する場合には、検出した温度が正常の温度範囲よりも高い場合のような温度異常発生時に、エラーカウンタの閾値を変更するようにしてもよい。
【００６９】
以上のように、本実施の形態４によれば、上記実施の形態１と同様の効果に加え、エラーカウンタ３５、３６を備えることにより、通知不要フラグ３３がオフに設定されている間も、演算処理結果の不一致によって出力されるエラー情報の回数に応じて、エラー処理手段３２によるエラー処理の実行頻度を制御することができるため、エラー処理による処理負荷をさらに低減することができる。
【００７０】
また、エラーカウンタ３５、３６を、プロセッサコア１Ａ、１Ｂの演算処理内容に関連付けて設定することにより、特定の演算処理で不一致が多発していることが検出可能であり、特定の演算処理における重大なエラー要因に対して迅速にエラー処理を実行することができる。さらに、環境変数の異常時にエラーカウンタ３５、３６の閾値を変更することにより、プロセッサコア１Ａ、１Ｂの演算処理結果の不一致に対する許容度を変更することができる。
【産業上の利用可能性】
【００７１】
本発明は、自動車に搭載される電子制御装置のようなロックステップ方式で動作する複数の演算手段を備えた情報処理装置として利用することができる。
【符号の説明】
【００７２】
１Ａ、１Ｂ  プロセッサコア、２、２０  比較手段、３、３ａ、３ｂ  メモリ、
４  内部バス、５  信号処理部、６  温度センサ、７  インジェクタ、  
１０Ａ、１０Ｂ  演算処理手段、３１  エンジン制御用プログラム、
３２、４０  エラー処理手段、３３  通知不要フラグ、３４  温度監視制御プログラム、３５  燃料噴射制御用エラーカウンタ、３６  その他の制御用エラーカウンタ、
３７  電圧監視制御プログラム、
３１１  燃料噴射制御プログラム、３１２  点火時期制御プログラム、
３１３  吸気量制御プログラム、３１４  その他の制御プログラム、
１００、１００ａ、１００ｂ、２００  情報処理装置。
【図１】
0005518021.tif 000002
【図２】
0005518021.tif 000003
【図３】
0005518021.tif 000004
【図４】
0005518021.tif 000005
【図５】
0005518021.tif 000006
【図６】
0005518021.tif 000007
【図７】
0005518021.tif 000008
【図８】
0005518021.tif 000009
【図９】
0005518021.tif 000010
【図１０】
0005518021.tif 000011
【図１１】
0005518021.tif 000012