(57)【要約】【課題】並列演算処理時間の増大が抑制された電子制御装置を提供する。【解決手段】一定周期で演算処理を同期して並列に行う複数の演算部を有する。演算処理として、処理順序に依存する同期処理と、処理順序に依存しない他処理と、がある。第１演算部は同期処理を行って第１データを算出する。第２演算部は第１演算部が第１データを算出している間に他処理を行い、第１データに基づいて同期処理を行う。【選択図】図２
2017021426.tif 000002
【特許請求の範囲】
【請求項１】
一定周期で演算処理を同期して並列に行う複数の演算部（１１，２１）を有し、
前記演算処理として、処理順序に依存する同期処理と、前記処理順序に依存しない他処理と、があり、
複数の前記演算部の内の２つを第１演算部（１１）および第２演算部（２１）とすると、
前記第１演算部は前記同期処理を行って第１データを算出し、
前記第２演算部は前記第１演算部が前記第１データを算出している間に前記他処理を行い、前記第１データに基づいて前記同期処理を行う電子制御装置。
【請求項２】
前記第２演算部は、前記第１演算部が前記第１データを算出し始めてから前記第１演算部から前記第１データを受け取るのに要する第１処理時間以上の第１所定時間が経過した後、前記同期処理を行う請求項１に記載の電子制御装置。
【請求項３】
前記第２演算部は、前記第１演算部が前記第１データを算出し始めてから前記第１所定時間経過した時点において前記第１データを前記第１演算部から受け取っていない場合、前記同期処理を中止する請求項２に記載の電子制御装置。
【請求項４】
前記第２演算部は、前記第１演算部が前記第１データを算出し始めてから前記第１所定時間経過した時点において前記第１データを前記第１演算部から受け取っていない場合、前記第１データを受け取るまで前記他処理を行い、前記第１データを受け取ると前記同期処理を行う請求項２に記載の電子制御装置。
【請求項５】
前記第２演算部は、前記第１演算部が前記第１データを算出した後、前記第１演算部から前記第１データを受け取るのに要する第２処理時間以上の第２所定時間が経過した後、前記同期処理を行う請求項１に記載の電子制御装置。
【請求項６】
前記第２演算部は、前記第１演算部から前記第１データを受け取った後、前記同期処理を行う請求項１に記載の電子制御装置。
【請求項７】
第１基本クロック信号を生成して出力する第１基本クロック部（３０）、および、第２基本クロック信号を生成して出力する第２基本クロック部（４０）を有し、
前記第１演算部は前記第１基本クロック信号よりも周波数の低い第１クロック信号を生成して前記第１クロック信号に含まれるパルスの数をカウントし、
前記第２演算部は前記第２基本クロック信号よりも周波数の低い第２クロック信号を生成して前記第２クロック信号に含まれるパルスの数をカウントし、
前記第１演算部は、前記第１クロック信号に含まれるパルスのカウント数に前記第２クロック信号に含まれるパルスのカウント数を一致させる同期信号を前記第２演算部に出力する請求項１〜６いずれか１項に記載の電子制御装置。
【請求項８】
基本クロック信号を生成して出力する基本クロック部（５０）を有し、
前記第１演算部は前記基本クロック信号よりも周波数の低い第１クロック信号を生成して前記第１クロック信号に含まれるパルスの数をカウントし、
前記第２演算部は前記基本クロック信号よりも周波数の低い第２クロック信号を生成して前記第２クロック信号に含まれるパルスの数をカウントし、
前記第１演算部は、前記第１クロック信号に含まれるパルスのカウント数に前記第２クロック信号に含まれるパルスのカウント数を一致させる同期信号を前記第２演算部に出力する請求項１〜６いずれか１項に記載の電子制御装置。
【請求項９】
前記第１演算部は、前記一定周期を前記第１クロック信号のカウント数によって計測するとともに前記一定周期経過毎に前記第１クロック信号のカウント数をキャンセルし、
前記第２演算部は、前記一定周期を前記第２クロック信号のカウント数によって計測するとともに前記一定周期経過毎に前記第２クロック信号のカウント数をキャンセルし、
前記第１演算部は、前記一定周期経過毎に前記第２演算部に前記同期信号を出力する請求項７または請求項８に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一定周期で演算処理を同期して並列に行う複数の演算部を有する電子制御装置に関するものである。
【背景技術】
【０００２】
特許文献１に示されるように、複数のプロセッサを有するマルチプロセッサシステムが知られている。特許文献１のマルチプロセッサシステムでは、プロセッサＡはメモリに記憶されたプログラムＡを実行し、プロセッサＢはメモリに記憶されたプログラムＢを実行する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−２１５５９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１のプロセッサＡとプロセッサＢは、プログラムＡとプログラムＢを同期して並列に処理する。このプログラムＡ，Ｂの中には、並列演算処理において処理順序の依存する同期処理と、処理順序の依存しない他処理とがある。プロセッサＡ，Ｂが同期処理を共同して行う場合、プロセッサＡが同期処理の前半処理を行った後、プロセッサＢはその前半処理にて得られたデータに基づいて同期処理の後半処理を行う。プロセッサＡが同期処理を行っている際、プロセッサＢは同期処理を行うことができず、待機状態となる。したがってプロセッサＢの処理時間が長くなり、その結果として並列演算処理時間が増大する虞がある。
【０００５】
そこで本発明は上記問題点に鑑み、並列演算処理時間の増大が抑制された電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記した目的を達成するための開示された発明の１つは、一定周期で演算処理を同期して並列に行う複数の演算部（１１，２１）を有し、
演算処理として、処理順序に依存する同期処理と、処理順序に依存しない他処理と、があり、
複数の演算部の内の２つを第１演算部（１１）および第２演算部（２１）とすると、
第１演算部は同期処理を行って第１データを算出し、
第２演算部は第１演算部が第１データを算出している間に他処理を行い、第１データに基づいて同期処理を行う。
【０００７】
このように本発明によれば、第２演算部（２１）は第１演算部（１１）が同期処理を行っている間に他処理を行う。そのため第１演算部（１１）が同期処理を行っている間に第２演算部（２１）が待機状態となる構成と比べて、並列演算処理時間の増大が抑制される。
【０００８】
なお、特許請求の範囲に記載の請求項、および、課題を解決するための手段それぞれに記載の要素に括弧付きで符号をつけている。この括弧付きの符号は実施形態に記載の各構成要素との対応関係を簡易的に示すためのものであり、実施形態に記載の要素そのものを必ずしも示しているわけではない。括弧付きの符号の記載は、いたずらに特許請求の範囲を狭めるものではない。
【図面の簡単な説明】
【０００９】
【図１】第１実施形態に係る電子制御装置の概略構成を示すブロック図である。
【図２】第１実施形態における電子制御装置の演算処理を示すタイミングチャートである。
【図３】第１データの算出処理に遅延が生じた場合の演算処理を示すタイミングチャートである。
【図４】第１データの算出処理に遅延が生じた場合の演算処理の変形例を示すタイミングチャートである。
【図５】演算処理の変形例を示すタイミングチャートである。
【図６】タイミング同期処理の変形例を示すタイミングチャートである。
【図７】電子制御装置の変形例を示すブロック図である。
【発明を実施するための形態】
【００１０】
以下、本発明をエンジンＥＣＵに適用した場合の実施形態を図に基づいて説明する。
（第１実施形態）
図１〜図３に基づいて本実施形態に係る電子制御装置（ＥＣＵ）を説明する。なお図２および図３では各種処理を分けて明示するため、それぞれにハッチングを施している。
【００１１】
電子制御装置１００は車両に搭載されるエンジンＥＣＵである。電子制御装置１００は、例えばアクセル踏み込み量やスロットル開度などからトルク要求値を算出し、そのトルク要求値に基づいて点火プラグの点火タイミングや燃料噴射弁の燃料噴射タイミングを算出する。このように電子制御装置１００はエンジンの燃焼駆動に関わる制御（以下、エンジン制御処理と示す）を行う。また電子制御装置１００は、アクセル踏み込み量を検出するアクセルセンサやスロットル開度を検出するスロットル開度センサなどの故障診断処理も行う。
【００１２】
図１に示すように電子制御装置１００は、第１マイコン１０と第２マイコン２０、および、第１基本クロック部３０と第２基本クロック部４０を有する。第１基本クロック部３０は第１基本クロック信号を生成し、それを第１マイコン１０に出力する。第２基本クロック部４０は第２基本クロック信号を生成し、それを第２マイコン２０に出力する。基本クロック部３０，４０は水晶振動子を保有している。なお図示しないが、電子制御装置１００は上記の構成要素の他に入出力回路や電源回路などを有する。
【００１３】
第１マイコン１０は、第１演算部１１と第１メモリ１２を有する。第１演算部１１は第１メモリ１２に記憶された第１プログラムに基づいて演算処理を行う。同様にして第２マイコン２０は、第２演算部２１と第２メモリ２２を有する。第２演算部２１は第２メモリ２２に記憶された第２プログラムに基づいて演算処理を行う。演算部１１，２１の処理能力は互いに等しくなっている。
【００１４】
図２に示すように第１演算部１１は、第１基本クロック信号に基づいて第１基本クロック信号よりも周波数の低い第１クロック信号を生成する。そして第１演算部１１は第１クロック信号をカウントし、そのカウント数（第１カウント数）に基づいて演算処理を行う。同様にして第２演算部２１は、第２基本クロック信号に基づいて第２基本クロック信号よりも周波数の低い第２クロック信号を生成する。そして第２演算部２１は第２クロック信号をカウントし、そのカウント数（第２カウント数）に基づいて演算処理を行う。
【００１５】
本実施形態において第１基本クロック信号と第２基本クロック信号の周波数は互いに同一である。また第１クロック信号と第２クロック信号の周波数も互いに同一である。第１クロック信号と第２クロック信号それぞれのデューティ比は５０％である。
【００１６】
演算部１１，２１は、カウント信号に含まれるパルスの立ち上がりエッジや立ち下がりエッジをカウントする度にカウント数を１だけインクリメントする。第１クロック信号と第２クロック信号のパルス幅は１ｍｓに相当する。演算部１１，２１はカウント数を０から８までカウントするとキャンセルすることを繰り返す。演算部１１，２１は上記の演算処理を、このカウント数がカウントされてからキャンセルされるまでの間に行う。したがって演算処理はその周期時間を８ｍｓとして、演算部１１，２１において一定周期で行われる。
【００１７】
図１に示すように第１演算部１１から第２演算部２１へ同期信号が出力される。第１演算部１１と第２演算部２１とは、この同期信号に基づいて上記の演算処理を同期して並列に行う。本実施形態においてこの同期信号は、図２に示すように演算部１１，２１が演算処理を開始し始める際に、第１演算部１１から第２演算部２１へ出力される。
【００１８】
同期信号は、第１カウント数に第２カウント数を一致させるための信号である。本実施形態では第１カウント数がゼロのときに第１演算部１１が第２演算部２１に同期信号を出力する。第２演算部２１は同期信号を受け取ると、第２カウント数をゼロにし、第１カウント数と第２カウント数のカウント始まりを一致させる。これにより演算部１１，２１が同一のカウント数で同期し、演算処理を並列に行う。
【００１９】
第１演算部１１と第２演算部２１とはバスを通してデータ通信可能となっている。第１演算部１１と第２演算部２１とはこのバスを介してデータの送受信を行い、演算処理を共同して行う。
【００２０】
演算処理としては、処理順序に依存する同期処理と、処理順序に依存しない他処理とがある。同期処理は、例えば上記したエンジン制御処理である。他処理は、例えば上記した故障診断処理である。
【００２１】
上記したようにエンジン制御処理を行うためには点火プラグの点火タイミングや燃料噴射弁の燃料噴射タイミングを算出しなくてはならない。しかしながらこれらを算出するためには予めトルク要求値を算出しなくてはならない。このように点火タイミングや燃料噴射タイミングを算出するためには、その前にトルク要求値を算出しなくてはならず、算出処理順序に依存する。これに対して故障診断処理は単に配線の断線や天絡地絡を検出するものなので、処理順序に依存しない。
【００２２】
同期処理は他処理に比べて処理容量が多く、その算出処理工数が多い。そのために演算部１１，２１のいずれか一方のみでは算出しきれない虞がある。そこで同期処理を前半処理と後半処理とに分け、第１演算部１１が前半処理を行った後、その前半処理によって算出された第１データに基づいて、第２演算部２１が後半処理を行う。こうすることで電子制御装置１００は同期処理を行う。本実施形態では同期処理を前半処理と後半処理とに等分している。
【００２３】
次に、図２に基づいて演算部１１，２１による演算処理を具体的に説明する。演算処理の始まりにおいて第１演算部１１は、第２演算部２１に同期信号を出力する。これにより第１カウント数と第２カウント数とが同一のタイミングにおいてともにゼロとなる。これが図２に示すタイミング同期処理に相当する。なお、このように第１カウント数と第２カウント数とが一致するため、以下においては特に断わらない限り、第１カウント数と第２カウント数とをまとめてカウント数と示す。
【００２４】
カウント数が１になると、演算部１１，２１はともに他処理を行う。しかしながらカウント数が２になると、第１演算部１１は同期処理（前半処理）を開始する。この第１演算部１１による前半処理は、カウント数が４になるまで継続して行われる。第１演算部１１はカウント数が４に至り、前半処理が終了すると、前半処理によって算出した第１データを第２演算部２１に出力する（送受信処理）。そして第１演算部１１はカウント数が５から８（０）になるまで他処理を行う。
【００２５】
これに対して第２演算部２１はカウント数が２になっても他処理を継続する。しかしながらカウント数４において第１演算部１１から第１データが送信されると、第２演算部２１は第１データを受信する（送受信処理）。そして第１データを受信し終えてカウント数５に至ると、第２演算部２１は同期処理（後半処理）を開始する。この第２演算部２１による後半処理は、カウント数が７になるまで継続して行われる。第２演算部２１はカウント数が７に至り、後半処理が終了すると、カウント数が７から８（０）になるまで他処理を行う。
【００２６】
以上に示したように第１演算部１１が前半処理を終えるには、カウント数２分の時間（２ｍｓ）を要する。この前半処理にかかる時間が第１処理時間に相当する。また第２演算部２１が後半処理を終えるには、カウント数２分の時間（２ｍｓ）を要する。
【００２７】
また、第１演算部が前半処理を終了して第１データを算出した後、第２演算部が第１データを受信し終えるのにカウント数１分の時間（１ｍｓ）を要する。この第１データの受信にかかる時間が第２処理時間に相当する。また本実施形態では、この第１データの受信にかかる時間が第２所定時間にも相当する。
【００２８】
図２に示すように第１演算部１１から第２演算部２１へと第１データが送信され始めるのはカウント数４の時である。そして第２演算部２１が第１データを受信し終えるのはカウント数５の時である。このため第２演算部２１は、予め後半処理をカウント数５において行うように設定されている。
【００２９】
第１演算部１１が前半処理を開始してから第２演算部２１が第１データを受け取るまでにカウント数で３だけかかる。換言すれば、３ｍｓ要する。この第１演算部１１が前半処理を開始してから３ｍｓ要する時間が、第１所定時間に相当する。
【００３０】
なお、同期処理よりも優先順位の高い割り込み処理のために、第１演算部１１での前半処理の終了が遅れる場合がある。例えば図３に示すように第１演算部１１が前半処理を行っている最中に割り込み処理が発生すると、第１データの算出タイミングが遅延する。上記したように第２演算部２１がカウント数５において後半処理を開始する設定となっているにも関わらず、その後半処理を行うのに必要な第１データがカウント数５を超えても第２演算部２１にて受信し終わらなくなる。この場合、図３に示すように第２演算部２１は、後半処理を中止する。そして第２演算部２１は他処理を行う。
【００３１】
次に、本実施形態に係る電子制御装置１００の作用効果を説明する。上記したように第２演算部２１は、第１演算部１１が同期処理を行っている間に他処理を行う。そのため第１演算部１１が同期処理を行っている間に第２演算部２１が待機状態となる構成と比べて、演算部１１，２１が並列して演算処理する時間（並列演算処理時間）の増大が抑制される。
【００３２】
演算処理の始まりにおいて第１演算部１１は、第２演算部２１に同期信号を出力する。これにより第１カウント数と第２カウント数とが同一のタイミングにおいてともにゼロとなる。これによれば第１カウンタと第２カウンタのカウント数がずれていたとしても、それを補正することができる。これにより第１演算部１１と第２演算部２１との同期がずれることが抑制される。
【００３３】
以上、本発明の好ましい実施形態について説明したが、本発明は上記した実施形態になんら制限されることなく、本発明の主旨を逸脱しない範囲において、種々変形して実施することが可能である。
【００３４】
（第１の変形例）
本実施形態では第２演算部２１が同期処理開始タイミング（カウント数５）を超えても第１データを受信し終わらない場合、後半処理を中止する例を示した。しかしながら例えば図４に示すように第２演算部２１は、カウント数５を越えて第１データを受信し終わった後に後半処理を開始してもよい。これによれば割り込み処理などのために第２演算部２１における第１データの受信がカウント数５を超えたとしても、第２演算部２１において後半処理を行うことができる。
【００３５】
（第２の変形例）
本実施形態ではカウント数５において第２演算部２１が後半処理を行う例を示した。換言すれば、第２演算部２１において第１データを受信し終えることが期待されるタイミングで第２演算部２１が後半処理を行う例を示した。しかしながら第２演算部２１は第１データを受信し終わりを契機として、後半処理を行ってもよい。これによれば、第２演算部２１における後半処理タイミングをカウント数指定（時間指定）する構成とは異なり、第２演算部２１における第１データの受信が遅れたとしても、第２演算部２１において後半処理を行うことができる。
【００３６】
ただし、上記の第１の変形例、および、第２の変形例それぞれにおいて、第２演算部２１での後半処理の終了がカウント数０（８）を超えることが予想される場合、第２演算部２１は後半処理を中止する。換言すれば、同一周期内において後半処理を終了しえない場合、第２演算部２１は第１データを受信したとしても、後半処理を中止する。更に言い換えれば、第２演算部２１は第１データを受信し終わった時点における同一周期内において残された時間が後半処理を行う時間よりも短い場合、後半処理を中止する。本実施形態の場合、第２演算部２１が後半処理を行うのに必要なカウント数は２である。したがってより具体的に言えば、第２演算部２１はカウント数６を超えて第１データを受信し終わった場合、後半処理を中止する。
【００３７】
（第３の変形例）
本実施形態ではカウント数５において第２演算部２１が後半処理を行う例を示した。換言すれば、第２演算部２１において第１データを受信し終えることが期待されるタイミングで第２演算部２１が後半処理を行う例を示した。しかしながらこれとは異なり、例えば図５に示すようにカウント数６において第２演算部２１が後半処理を行ってもよい。換言すれば、第２演算部２１において第１データを受信し終えることが期待されるタイミングよりも遅くに、第２演算部２１が後半処理を行ってもよい。これによれば割り込み処理などのために第２演算部２１における第１データの受信がカウント数５を超えたとしても、第２演算部２１において後半処理を行うことができる。
【００３８】
なおこの第３の変形例の場合、第１演算部１１が前半処理を開始してから４ｍｓ要する時間が、第１所定時間に相当する。そして第１演算部１１が前半処理を終了してから２ｍｓ要する時間が第２所定時間に相当する。
【００３９】
（第４の変形例）
本実施形態では演算処理の始まりにおいて第１演算部１１が第２演算部２１に同期信号を出力する例を示した。しかしながら図６に示すように、第１演算部１１が第１カウント数をキャンセルする毎に第２演算部２１に同期信号を出力してもよい。これによれば第１カウント数と第２カウント数とがずれたとしても、そのずれを周期的に補正することができる。これにより第１演算部１１と第２演算部２１との同期がずれることが抑制される。
【００４０】
なお、同期信号の入出力タイミングは、カウント数がゼロのときに限定されない。例えば第１カウント数が１の特に同期信号を入出力してもよい。この場合、第２演算部２１は第２カウント数を１に設定する。
【００４１】
（第５の変形例）
本実施形態では電子制御装置１００が、第１マイコン１０と第２マイコン２０、および、第１基本クロック部３０と第２基本クロック部４０を有する例を示した。しかしながらこれとは異なり、例えば図７に示すように電子制御装置１００が、第１マイコン１０と基本クロック部５０を有する構成を採用することもできる。なお図示しないが、この変形例においても電子制御装置１００は上記の構成要素の他に、入出力回路や電源回路などを有する。
【００４２】
この構成の場合、基本クロック部５０は水晶振動子を保有して基本クロック信号を生成し、それを第１マイコン１０に出力する。第１マイコン１０は、演算部１１，２１と共有メモリ６０を有する。演算部１１，２１は共有メモリ６０に記憶されたプログラムに基づいて演算処理を行う。第１演算部１１と第２演算部２１との間でのデータの送受信は共有メモリ６０を介して行われる。
【００４３】
演算部１１，２１は基本クロック信号に基づいて、基本クロック信号よりも周波数の低いクロック信号を生成し、それをカウントする。そして演算部１１，２１はそのカウント数（第１カウント数、第２カウント数）に基づいて演算処理を行う。第１演算部１１から第２演算部２１へ同期信号が出力され、この同期信号に基づいて第１演算部１１と第２演算部２１とが演算処理を同期して並列に行う。
【００４４】
（その他の変形例）
本実施形態に係る電子制御装置１００はエンジンＥＣＵである例を示した。しかしながら電子制御装置１００としては上記例に限定されず、例えばハイブリッドＥＣＵやバッテリＥＣＵなどを採用することができる。より広く言えば、電子制御装置１００としては、２つ以上の演算部を有し、これらが同期して並列演算処理を行うものであれば、適宜採用することができる。
【００４５】
本実施形態では電子制御装置１００が２つのマイコン１０，２０を有する例を示した。しかしながら電子制御装置１００が有するマイコン１０，２０の数としては上記例に限定されない。例えば第５の変形例で示したように電子制御装置１００が１つの第１マイコン１０を有してもよいし、電子制御装置１００が３つ以上のマイコンを有してもよい。電子制御装置１００は演算処理するための演算部を少なくとも２つ有していれば良い。
【００４６】
本実施形態では演算部１１，２１が、ソフト的に基本クロック信号に基づいてクロック信号を生成し、クロック信号の数をカウントする例を示した。しかしながらこれとは異なり、図示しないが、電子制御装置１００が演算部１１，２１の他に、基本クロック信号に基づいてクロック信号を生成するクロック部と、クロック信号の数をカウントするカウンタと、をハード的に有してもよい。
【００４７】
本実施形態では第１基本クロック信号と第２基本クロック信号の周波数が互いに同一である例を示した。しかしながら第１基本クロック信号と第２基本クロック信号の周波数は異なっていてもよい。
【００４８】
本実施形態では第１クロック信号と第２クロック信号の周波数が互いに同一である例を示した。しかしながら第１クロック信号と第２クロック信号の周波数は異なっていてもよい。
【００４９】
本実施形態では第１クロック信号と第２クロック信号のパルス幅が１ｍｓに相当する例を示した。しかしながらパルス幅としては上記例に限定されず、例えば０．５ｍｓでもよい。
【００５０】
本実施形態では演算部１１，２１がカウント数を０から８までカウントするとキャンセルすることを繰り返す例を示した。しかしながら、例えば演算部１１，２１がカウント数を０から４までカウントするとキャンセルすることを繰り返してもよい。また演算部１１，２１がカウント数を０から１６までカウントするとキャンセルすることを繰り返してもよい。
【００５１】
本実施形態では演算部１１，２１の処理能力が互いに等しい例を示した。しかしながら演算部１１，２１の処理能力は互いに異なっていてもよい。
【００５２】
本実施形態では同期処理を前半処理と後半処理とに等分する例を示した。しかしながら同期処理を等分しなくともよい。例えば２つの演算部１１，２１の処理能力に差がある場合、同期処理が早く効率よく終わるように、前半処理と後半処理の分ける割合を決定してもよい。例えば演算部１１，２１の処理能力比が１：２の場合、前半処理と後半処理とを１：２に分ける。
【符号の説明】
【００５３】
１０…第１マイコン
１１…第１演算部
２０…第２マイコン
２１…第２演算部
１００…電子制御装置
【図１】
2017021426.tif 000003
【図２】
2017021426.tif 000004
【図３】
2017021426.tif 000005
【図４】
2017021426.tif 000006
【図５】
2017021426.tif 000007
【図６】
2017021426.tif 000008
【図７】
2017021426.tif 000009