JP2020181569A - 電子制御装置 - Google Patents
電子制御装置 Download PDFInfo
- Publication number
- JP2020181569A JP2020181569A JP2020023500A JP2020023500A JP2020181569A JP 2020181569 A JP2020181569 A JP 2020181569A JP 2020023500 A JP2020023500 A JP 2020023500A JP 2020023500 A JP2020023500 A JP 2020023500A JP 2020181569 A JP2020181569 A JP 2020181569A
- Authority
- JP
- Japan
- Prior art keywords
- arithmetic
- unit
- processing
- parallel
- failure
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 claims description 46
- 238000001514 detection method Methods 0.000 claims description 8
- 239000000284 extract Substances 0.000 claims description 3
- 238000003745 diagnosis Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 101100048435 Caenorhabditis elegans unc-18 gene Proteins 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000004378 air conditioning Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Landscapes
- Hardware Redundancy (AREA)
Abstract
【課題】マイコンに搭載された並列演算処理器が有する複数の演算器のいずれかが故障したことを検出した場合に、並列演算処理器を停止させることなく演算を継続する。【解決手段】コアは、演算器のいずれかが故障していると判断した場合は(S21:YES)、故障した演算器の種類と異なる演算器を使用する処理を並列演算処理器に要求する(S202)。これにより、一部の演算器19が故障したとしても、コア12a〜12cから要求された処理を代替え処理によって実行することが可能となる。【選択図】図7
Description
本発明は電子制御装置に関する。
例えば車両に搭載される電子制御装置では、車両の制御の複雑化によりマイクロコンピュータ(以下、マイコンと略す)の処理能力の向上が図られている。このような技術として、特許文献1に示すようにマルチコアマイコンにより演算処理を並列実行させることが行われている。
ところで、マイコンによる演算処理をさらに高めるためにマイコンに並列演算処理器を搭載することが提案されている。この並列演算処理器はハードウェアから構成されており、マイコンのコアから複数の演算命令の集合体である演算命令群を処理することが要求された場合は、演算命令を当該演算命令に対応する演算器に対して自動的に割振って演算処理するものである。このような並列演算処理器をマイコンに搭載することにより高速な演算処理が可能となる。
しかしながら、並列演算処理器は、コアから要求された処理集合体に対して複数ある演算器のどれをどの順に使用するかをハードウェアが自動的に割振っているため、演算器のいずれかが故障したことを検出した場合であっても故障した演算器までは特定ができないことから、並列演算処理器による全ての演算処理を停止させる必要がある。
本発明は上記事情に鑑みてなされたもので、その目的は、マイコンに搭載された並列演算処理器が有する複数の演算器のいずれかが故障したことを検出した場合に、並列演算処理器を停止させることなく演算を継続することができる電子制御装置を提供することにある。
請求項1の発明によれば、制御部(12a〜12c)は、並列演算処理部(13)の演算器(19)のいずれかが故障していることを検出した場合は、故障した演算器(19)に対応する演算命令を使用しない故障回避処理を実行する。これにより、並列演算処理器(13)を停止することなく演算を継続することができる。
以下、エンジンECUに適用した複数の実施形態について図面を参照して説明する。複数の実施形態において、機能的または構造的に対応する部分には同一の参照符号を付与する。
(第1実施形態)
図2に示すように、車両にはエンジンECU(Electronic Control Unit)1(電子制御装置に相当)が搭載されている。このエンジンECU1は、車載LAN2を介して自動変速ECU3、メータECU4、空調ECU5などの他のECUに通信可能に接続されている。車載LAN2のプロトコルは、例えばCAN(Controller Area Network)である。CANは登録商標である。
図2に示すように、車両にはエンジンECU(Electronic Control Unit)1(電子制御装置に相当)が搭載されている。このエンジンECU1は、車載LAN2を介して自動変速ECU3、メータECU4、空調ECU5などの他のECUに通信可能に接続されている。車載LAN2のプロトコルは、例えばCAN(Controller Area Network)である。CANは登録商標である。
図1に示すようにECU1は、マイコン11を主体として構成されている。マイコン11は、複数のコア12a〜12c(制御部に相当)や並列演算処理器13(並列演算処理部に相当)を備えて構成されており、それらのコア12a〜12cや並列演算処理器13が複数の演算処理を並列処理することで高速処理を実現している。
コア12a〜12c及び並列演算処理器13は内部バス14を介して互いに接続されていると共に、ROM及びRAMなどのメモリ15やAD変換器及びCANインターフェースなどの周辺回路16とも接続されている。
コア12a〜12cは、エンジンを制御するためのアクチュエータの動作やエンジンの運転状態を検出するための各種センサからの検出信号をAD変換器によりデジタル変換したデジタル値を入力し、そのデジタル値を処理して所定の物理値を求める演算処理が必要となった場合は演算命令の集合体である演算命令群を並列演算処理器13に与えることで演算処理を要求する。
図3に示すように並列演算処理器13は、メモリ17と、制御回路18と、複数の演算器19とから構成されている。メモリ17にはコア12a〜12cから与えられた演算命令群が順に記憶される。
制御回路18はハードウェアから構成されており、メモリ17に記憶された演算命令群を演算器19と連携して演算処理する。つまり、制御回路18はスケジューラ機能を有しており、メモリ17に記憶された演算命令群から演算命令を抽出して対応する演算器19に自動的に割振る。
演算器19はFIFO(First-In First-Out)型であり、後述するように制御回路18により割振られた演算命令を順に演算処理する。演算器19は同一種類や異なる種類の演算器であり、同一種類や異なる種類の演算命令を並列処理可能である。演算器19は、演算処理結果をメモリ17に記憶する。
コア12a〜12cは、演算命令群を処理することを並列演算処理器13に要求した場合はメモリ17を介して演算結果を取得し、その演算結果に基づいて以後の処理を実行する。
演算器19の代表例としては、SIMD(Single Instruction Multiple Data)、ALU(Arithmetic Logic Unit)、SPMT(Special Math)を挙げることができるが、これに限定されるものではない。SIMDは配列演算器で、一つのSIMD命令で複数のデータを並列処理可能な演算器である。
ALUは算術論理演算器で、ALU命令としては論理積AND、論理和OR、否定NOT、加算ADD、乗算MUL、減算SUBが代表例であるが、これに限定されるものではない。
SPMTは特殊演算器で、SPMT命令としては逆数RCP、平方根SQRT、指数関数EXP、平方根SQRT、除算DIVが代表例であるが、これに限定されるものではない。
並列演算処理器13は、階層毎に並列化することにより高速化を実現できるように構成されている。つまり、演算命令群の並列化、演算命令の並列化、SIMDによる並列化である。
演算命令群の並列化はメモリ17が有する機能であり、各コア12a〜12cから与えられた演算命令群を並列化して記憶する。
演算命令の並列化は制御回路18が有する機能であり、メモリ17において並列化された演算命令群を入力し、その演算命令群から演算命令を抽出して対応する複数の演算器19に割振ることで並列化する。
演算命令の並列化は制御回路18が有する機能であり、メモリ17において並列化された演算命令群を入力し、その演算命令群から演算命令を抽出して対応する複数の演算器19に割振ることで並列化する。
SIMDによる並列化はSIMDが有する機能であり、SIMDにより一つの命令で複数のデータを並列化して演算処理する。つまり、SIMDはデータを一括して演算処理するのに適した演算器であり、SIMDを用いた場合に並列演算処理器13の並列化による演算処理時間の短縮を期待することができる。
ここで、コア12a〜12cの内、コア12aは故障検出部12a1に相当する。この故障検出部12a1は、コアが非遷移的実体的記憶媒体に格納されているプログラムを実行して対応する処理を実行することにより実現される。故障検出部12a1は、並列演算処理器13の演算器19が故障しているか否かを判断する故障診断処理の機能を有する。この故障診断処理は、同一種類の演算器19に対して同一の演算命令を演算処理させ、同一種類の演算器19の演算結果を一致確認することでいずれの種類の演算器19が故障しているかを特定するものである。
以下、故障検出部12a1による故障診断処理について説明する。図4に示すように並列演算処理器13が有する演算器19としてSIMD、ALU、SPMTがそれぞれ2個ずつ設けられている例を説明するが、演算器19の種類や数は限定されるものではない。
通常時においては、上述したようにメモリ17においてコア12a〜12cから与えられた演算命令群が並列化された状態で記憶される。制御回路18は、所定タイミングとなるとメモリ17から演算命令群を入力し、入力した演算命令群から演算命令を抽出して対応する演算器19に割振る。
図4に示す例では、SIMD命令をSIMDに割振り、ALU命令をALUに割振り、SPMT命令をSPMTに割振ることを示している。各演算器19は、割振られた演算命令を順に実行し、その演算結果をメモリ17に記憶する。
以上のようにして、コア12a〜12cは、演算命令群の演算結果を取得することができる。
以上のようにして、コア12a〜12cは、演算命令群の演算結果を取得することができる。
さて、コア12aは、所定タイミングで故障診断処理を実行する。即ち、図6に示すように故障診断タイミングとなると(S101:YES)、並列演算処理器13への処理要求を停止してから(S102)、一定時間経過するまで待機する(S103:NO)。この一定時間とは、全ての演算器19が割振られた演算命令の全てを演算処理してアイドル状態に復帰するのに要する時間よりも十分に長い時間である。
コア12aは、一定時間が経過すると(S103:YES)、コア12a〜12cから指示がなく各演算器19が動いていないアイドル状態となったと判断する。このアイドル状態は、演算器19が割振られた演算命令を直ちに実行可能な状態である。
次にコア12aは、故障診断処理することを並列演算処理器13に要求する(S104)。この故障診断処理の要求では、同一種類の演算器19の数だけ同一の演算命令を処理することを要求する。これにより、同一種類の演算器19の全ては同一の演算命令を同時に実行するようになるので、コア12aは、その演算結果を取得し、同一種類の演算器19の演算結果が一致するかを確認する(S105)。
図5に示す例では、コア12aが2個の同一のSIMD命令、2個の同一のALU命令、2個の同一のSPMTからなる演算命令群を処理することを並列演算処理器13に要求した状態を示している。この場合、制御回路18は、同一のSIMD命令を各SIMDに割振り、同一のALU命令を各ALUに割振り、同一のSPMT命令を各SPMTに割振る。
各演算器19は、制御回路18により割振られた演算命令を演算処理し、その演算結果をメモリ17に記憶する。この場合、同一種類の演算器19の全てが正常の場合は演算結果が一致し、同一種類の演算器19のいずれかが故障した場合は演算結果が不一致となる。
そこで、コア12aは、演算結果が不一致の演算器19がある場合は(S106:YES)、故障した演算器19を特定する(S107)。
そこで、コア12aは、演算結果が不一致の演算器19がある場合は(S106:YES)、故障した演算器19を特定する(S107)。
このように故障した演算器19を特定した場合に以後の処理を継続したときは、誤った演算結果に基づいて以後の処理を行うことになってしまうことから、コア12aは、次のように故障回避処理を実行する。
図7に示す故障回避処理において、コア12aは、演算器Aが故障したと判断した場合は(S201:YES)、並列演算処理器13への処理要求を演算器Aを使用しない処理Yに切り替える。例えば配列演算を行うSIMDが故障したことを特定した場合は、SIMDで並列ベクトル演算を行う処理を、ベクトル演算要素数を減らした処理に切り替えてALUにてシリアル演算させる。また、SPMTが故障したことを特定した場合は、ALUのみで演算できる方式に切り替える。
このような実施形態によれば、次のような効果を奏することができる。
コア12aは、演算器19のいずれかが故障していると判断した場合は、故障した演算器19の種類と異なる演算器19を使用する処理を並列演算処理器13に要求する故障回避処理を実行するので、演算器19のいずれかが故障したとしても、コア12a〜12cから要求された処理を代替え処理によって実行することにより演算を継続することが可能となる。
コア12aは、演算器19のいずれかが故障していると判断した場合は、故障した演算器19の種類と異なる演算器19を使用する処理を並列演算処理器13に要求する故障回避処理を実行するので、演算器19のいずれかが故障したとしても、コア12a〜12cから要求された処理を代替え処理によって実行することにより演算を継続することが可能となる。
(第2実施形態)
第2実施形態について図8を参照して説明する。この第2実施形態は、並列演算処理器13の演算器19が故障した場合の処理負荷を低減することを特徴とする。
第2実施形態について図8を参照して説明する。この第2実施形態は、並列演算処理器13の演算器19が故障した場合の処理負荷を低減することを特徴とする。
第1実施形態の構成では代替え処理によって処理を継続することはできるが、例えば代替え処理が非常に時間のかかる処理になる場合、そのまま演算をし続けると処理負荷が悪化するデメリットがある。
そこで、図8に示すようにコア12aは、演算器Aが故障した場合は(S301:YES)、並列演算処理器13への要求処理Xに故障した演算器Aを使用する処理が含まれるかを判断し(S302)、演算器Aを使用する処理が含まれていた場合は(S302:YES)、並列演算処理器13への要求処理X自体を停止する(S303)。
このような実施形態によれば、コア12aは、故障した演算器19に対する演算命令を使用する処理要求を停止することで故障回避処理を実行するので、並列演算処理器13の処理負荷の悪化を防ぐことができる。
(第3実施形態)
第3実施形態について図9を参照して説明する。この第3実施形態は、並列演算処理器13の演算器19が故障した場合に演算器19を使用することなく演算可能としたことを特徴とする。
第3実施形態について図9を参照して説明する。この第3実施形態は、並列演算処理器13の演算器19が故障した場合に演算器19を使用することなく演算可能としたことを特徴とする。
第2実施形態では、故障した演算器19での演算処理自体を停止したが、処理を停止させることができない必須処理である場合も想定できる。
そこで、図9に示すようにコア12aは、並列演算処理器13への要求処理Xに故障した演算器Aの処理が含まれている場合は(S402:YES)、並列演算処理器13への要求処理Xを停止し(S403)、要求処理Xを自分自身や他のコア12b〜12dで実行する。
そこで、図9に示すようにコア12aは、並列演算処理器13への要求処理Xに故障した演算器Aの処理が含まれている場合は(S402:YES)、並列演算処理器13への要求処理Xを停止し(S403)、要求処理Xを自分自身や他のコア12b〜12dで実行する。
例えば並列演算処理器13にて高サンプリングレートで所定の物理値を演算していた処理を、サンプリングレートを落としてコア12a〜12cで実行させたり、並列演算処理器13にてセンサ値から物理値を算出する処理をそのままコア12a〜12cで実行したりする。
尚、要求処理X自体ではなく、代替え処理Yをコア12a〜12cで実行するようにしても良い。
尚、要求処理X自体ではなく、代替え処理Yをコア12a〜12cで実行するようにしても良い。
このような実施形態によれば、コア12aは、故障した演算器19に対する故障処理要求と同等の処理をコア側にて実行することで故障回避処理を実行するので、必須処理を実行することができる。
(その他の実施形態)
エンジンECUに限定されることなく、自動運転システムの画像処理装置や高速処理が要求される他の電子制御装置に適用するようにしても良い。
マルチコアマイコンに限定されることなく、並列演算処理器を備えたシングルコアマイコンを用いるようにしても良い。
エンジンECUに限定されることなく、自動運転システムの画像処理装置や高速処理が要求される他の電子制御装置に適用するようにしても良い。
マルチコアマイコンに限定されることなく、並列演算処理器を備えたシングルコアマイコンを用いるようにしても良い。
本開示は、実施形態に準拠して記述されたが、本開示は当該実施形態や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、さらには、それらに一要素のみ、それ以上、あるいはそれ以下、を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に入るものである。
図面中、1はエンジンECU(電子制御装置)、11はマイコン、12a1は故障検出部、12a〜12cはコア(制御部)、13は並列演算処理器(並列演算処理部)、19は演算器である。
Claims (6)
- 演算命令の集合体である演算命令群を処理することを要求する制御部(12a〜12c)と、前記制御部から要求された演算命令群から演算命令を抽出して対応する演算器(19)に割振ることで複数の演算命令を並列処理可能な並列演算処理部(13)と、を有したマイクロコンピュータを備え、
前記制御部は、前記演算器のいずれかが故障していることを検出した場合は、故障した前記演算器を使用しない故障回避処理を実行する電子制御装置。 - 前記制御部は、前記演算器のいずれかが故障していることを検出する故障検出部(12a1)を備え、
前記故障検出部は、前記演算器の故障を検出した場合は、前記故障回避処理を実行する請求項1に記載の電子制御装置。 - 前記制御部は、故障した前記演算器に対応する演算命令を使用しないことで前記故障回避処理を実行する請求項1または2に記載の電子制御装置。
- 前記制御部は、故障した前記演算器の種類と異なる演算器を使用する処理を要求することで前記故障回避処理を実行する請求項3に記載の電子制御装置。
- 前記制御部は、故障した前記演算器に対する演算命令を使用する処理要求を停止することで前記故障回避処理を実行する請求項1または2に記載の電子制御装置。
- 前記制御部は、故障した前記演算器に対する故障処理要求と同等の処理を制御側にて実行することで前記故障回避処理を実行する請求項1または2に記載の電子制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102020204890.8A DE102020204890A1 (de) | 2019-04-23 | 2020-04-17 | Elektronische steuervorrichtung |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019081936 | 2019-04-23 | ||
JP2019081936 | 2019-04-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020181569A true JP2020181569A (ja) | 2020-11-05 |
Family
ID=73024210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020023500A Pending JP2020181569A (ja) | 2019-04-23 | 2020-02-14 | 電子制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2020181569A (ja) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007099606A1 (ja) * | 2006-02-28 | 2007-09-07 | Fujitsu Limited | プロセサ制御方法 |
-
2020
- 2020-02-14 JP JP2020023500A patent/JP2020181569A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007099606A1 (ja) * | 2006-02-28 | 2007-09-07 | Fujitsu Limited | プロセサ制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3663920B1 (en) | Buffer checker | |
JPH09269903A (ja) | プロセス管理方式 | |
JP4377463B2 (ja) | 少なくとも2つのプロセッサからなるコンピュータ装置のモニタ方法および装置 | |
US20220222129A1 (en) | System for parallel processing middleware node application algorithms using threads | |
US20130061098A1 (en) | Failure check apparatus and failure check method | |
US9734006B2 (en) | System and method for error detection in a critical system | |
JP2011141782A (ja) | 情報処理装置、電子制御ユニット、タスク割り当て方法 | |
JP2011022934A (ja) | 電子制御ユニット、異常検出方法 | |
JP2012128788A (ja) | 車両制御装置、データ通信方法 | |
CN111791886B (zh) | 用于车辆的实时控制系统以及经由实时控制系统执行车辆控制的方法 | |
JP4829038B2 (ja) | マルチプロセッサシステム | |
JP2020181569A (ja) | 電子制御装置 | |
JP7238574B2 (ja) | 電子制御装置 | |
CN102722466B (zh) | 一种3取2或2取2控制系统中的16位多总线电路 | |
US20170090982A1 (en) | Dynamic task scheduler in a multi-core electronic control unit | |
JP7226169B2 (ja) | 電子制御装置 | |
JP2001022720A (ja) | マルチプロセッサシステム | |
JP2013084218A (ja) | コア監視装置、情報処理装置 | |
JP7294226B2 (ja) | 電子制御装置 | |
JP2022019168A (ja) | 電子制御装置 | |
WO2024009656A1 (ja) | 車両制御装置 | |
JP2012226409A (ja) | マルチコア・プロセッサ | |
JP2021117747A (ja) | 電子制御装置 | |
WO2023119774A1 (ja) | アクセラレータ装置を利用した情報処理装置及び情報処理方法 | |
JP6865707B2 (ja) | 車両用制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220519 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230307 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20230905 |