JP7310521B2 - マイクロコンピュータ - Google Patents

マイクロコンピュータ Download PDF

Info

Publication number
JP7310521B2
JP7310521B2 JP2019185386A JP2019185386A JP7310521B2 JP 7310521 B2 JP7310521 B2 JP 7310521B2 JP 2019185386 A JP2019185386 A JP 2019185386A JP 2019185386 A JP2019185386 A JP 2019185386A JP 7310521 B2 JP7310521 B2 JP 7310521B2
Authority
JP
Japan
Prior art keywords
data
unit
groups
element data
arithmetic
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.)
Active
Application number
JP2019185386A
Other languages
English (en)
Other versions
JP2021060871A (ja
Inventor
憲一 峰田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP2019185386A priority Critical patent/JP7310521B2/ja
Priority to DE102020212554.6A priority patent/DE102020212554A1/de
Publication of JP2021060871A publication Critical patent/JP2021060871A/ja
Application granted granted Critical
Publication of JP7310521B2 publication Critical patent/JP7310521B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/165Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Advance Control (AREA)
  • Microcomputers (AREA)
  • Hardware Redundancy (AREA)

Description

本開示は、マイクロコンピュータに関する。
従来、マイクロコンピュータの一例として、特許文献1に開示された、互いに並列に演算を実行可能なSIMD型演算装置を有したマイクロコンピュータがある。
特開2011-233085号公報
ところで、マイクロコンピュータは、高い信頼性が要求されることもある。この場合、例えば、プロセッサを備えたマイクロコンピュータは、プロセッサの二重機構を採用して、故障が発生した場合であってもすぐに故障を検知し、素早く適切なフェールセーフ処理に繋げることで、信頼性の要求を満たすことが考えられる。
しかしながら、SIMD型演算装置は、一般的には回路規模及び消費電力が大きくなる傾向にある。よって、マイクロコンピュータは、SIMD型演算装置を含むプロセッサを二重機構にした場合、回路規模及び消費電力が大きくなるという問題がある。
本開示は、上記問題点に鑑みなされたものであり、回路規模及び消費電力が大きくなることを抑制しつつ、信頼性の高いマイクロコンピュータを提供することを目的とする。
上記目的を達成するために本開示は、
1つの命令で、データに含まれる複数の要素データを用いた演算を個別に且つ同時に実行可能な複数の演算器(21~28)を備えたマイクロコンピュータであって、
複数の演算器は、演算器を含む複数の演算器グループに区分け可能に構成されており、
要求された命令が信頼性の担保が必要な対象か否かを判定する判定部(S14)と、
判定部にて信頼性の担保が必要な対象と判定された場合、データを、要素データを含む複数のデータグループに分割するデータ分割部(S18)と、
データ分割部にて複数のデータグループに分割されると、複数の要素データをデータグループ単位で各演算器グループに共通して供給し、各演算器グループの各演算器による要素データを用いた演算を、全てのデータグループに関して段階的に実行する段階的演算部(S20、S26)と、
段階的演算部での演算が終了すると、複数の要素データが共通して供給された演算器グループどうしの演算結果を比較する比較部(S22、S24、S28、S30)と、
比較部にて各演算器グループの演算結果が一致しないと判定された場合、演算器が異常であると判断する異常検出部(S32、S32a)と、を備え
複数の演算器は、三つ以上の演算器グループに区分け可能に構成されており、
データ分割部は、データを三つ以上のデータグループに分割し、
異常検出部は、比較部にて各演算器グループの演算結果が一致しないと判定された場合、演算器が異常であると判断するとともに、複数の演算器グループから異常の演算器を含む演算器グループを特定し、
異常検出部にて特定された異常の演算器を含む演算器グループを、複数の要素データの供給先から除外する除外部を備えたマイクロコンピュータ。
このように、本開示は、各演算器グループに対して、要素データを共通に供給するため、各演算器グループが同じ要素データを用いた演算を実行することになる。そして、本開示は、複数の要素データが共通して供給された演算器グループどうしの演算結果を比較して、演算結果が一致しない場合に、演算器が異常であると判断する。このため、本開示は、信頼性を高めることができる。
また、本開示は、複数の要素データをデータグループ単位で各演算器グループに共通して供給し、各演算器グループの各演算器によって要素データを用いた演算を実行する。そして、本開示は、この各演算器グループの各演算器による演算を、全てのデータグループに関して段階的に実行する。よって、本開示は、異常を検出するために、データに含まれる全ての要素データを異なる演算器で一度に演算して、演算結果を比較する場合よりも、演算器の数を減らし、信頼性の担保が必要な対象でない処理に必要な演算器の数に対し演算器を増やすことなく処理を実行することができる。このため、本開示は、回路規模及び消費電力が大きくなることを抑制できる。
なお、特許請求の範囲、及び、この項に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本開示の技術的範囲を限定するものではない。
実施形態におけるECUの概略構成を示すブロック図である。 実施形態におけるマイコンの処理動作を示すフローチャートである。 実施形態におけるマイコンの処理動作を示すイメージ図である。
以下において、図1、図2、図3を参照しながら、本開示を実施するための形態を説明する。本実施形態では、一例として、ECU100に搭載されたマイクロコンピュータ(以下マイコン)1を採用している。ECU100は、車両に搭載されて、車載機器を制御する電子制御装置である。ECU100は、マイコン1に加えて、電源回路、ドライバ回路、通信回路、入力回路などを備えている。
マイコン1は、CPU10、SIMDプロセッサ20、ROM30、RAM40、バス50などを備えている。CPU10、SIMDプロセッサ20、ROM30、RAM40は、バス50を介して通信可能に構成されている。
CPU10は、ROM30に記憶されたプログラムから命令を読み出して、SIMDプロセッサ20に対して命令の実行を要求する。また、CPU10は、RAM40からデータを読み出してSIMDプロセッサ20に対して供給する。
ROM30は、不揮発性記憶媒体であり、CPU10から読み出されるプログラムなどを記憶している。このプログラムには、SIMDプロセッサ実行命令31が含まれている。ROM30はSIMDプロセッサ20のブロック内部にあってもよい。SIMDプロセッサ実行命令31には、機能安全対応が必要な命令が含まれている。
また、ROM30は、命令を格納しているアドレスを、機能安全対応が必要な命令と機能安全対応が不必要な命令とに分けて構成されている。言い換えると、ROM30は、命令を格納しているメモリのアドレスをASIL該当/非該当の命令毎に分けてある。よって、アドレスによって、機能安全対応が必要な命令であるか否かを判断することができる。なお、機能安全対応が必要な命令やASILに関しては、後程詳しく説明する。
RAM40は、揮発性記憶媒体であり、CPU10から読み出されるデータなどを記憶している。このデータは、ベクトルデータ41を含んでいる。ベクトルデータ41は、特許請求の範囲におけるデータに相当する。ベクトルデータ41は、スカラデータとは異なり、複数の要素データを含んでいる。つまり、ベクトルデータ41は、複数の数値の塊データとみなすことができる。よって、CPU10は、ベクトルデータ41を読み出して、SIMDプロセッサ20に供給する。
図3に示すように、本実施形態では、一例として、八つの要素データd1~d8を含んだベクトルデータ41を採用する。また、ROM30には、ベクトルデータ41に含まれている要素データの数を示すデータ数情報が、ベクトルデータ41と関連付けて記憶されている。
しかしながら、本開示は、これに限定されず、複数の要素データを備えたベクトルデータ41であれば採用できる。言い換えると、ベクトルデータ41は、N個の要素データを備えている。Nは、2以上の自然数である。
ところで、車両制御システムは、安全装置の電子制御化にともない機能安全の仕組みが導入されてきている。機能安全とは、電気電子システムに不具合が生じたときシステムが安全側に遷移することにより安全を確保する考えである。例えば、自動車向け機能安全規格ISO26262においては、規格独自の安全度水準であるASIL(Automotive Safety Integrity Level)が設けられている。
よって、SIMDプロセッサ20に要求する命令には、機能安全対応が必要な命令が含まれている。機能安全対応が必要な命令は、機能安全の対象の命令や、ASIL処理の命令などと言い換えることができる。また、本実施形態では、信頼性の担保が必要な対象の命令の一例として、機能安全の対象の命令を採用している。しかしながら、本開示は、これに限定されない。信頼性の担保が必要な対象の命令は、信頼性の要求からプロセッサの多重機構が必要な命令なども含む。
SIMDプロセッサ20は、CPU10からの要求に応じて演算を実行する。SIMDは、Single Instruction stream Multiple Data streamの略称である。SIMDプロセッサ20は、複数の演算器21~28、レジスタ20a、比較回路20b、モード切替器20cなどを備えている。
本実施形態では、第1演算器21、第2演算器22、第3演算器23、第4演算器24、第5演算器25、第6演算器26、第7演算器27、第8演算器28の八つの演算器21~28を備えたSIMDプロセッサ20を採用している。八つの演算器21~28のそれぞれは、特許請求の範囲における演算器に相当する。
しかしながら、本開示は、これに限定されず、複数の演算器を備えたSIMDプロセッサ20であれば採用できる。言い換えると、SIMDプロセッサ20は、N個の演算器を備えている。
このように、SIMDプロセッサ20は、複数の演算器21~28を備えている。このため、複数の演算器21~28は、少なくとも一つの演算器を含む複数の演算器グループに区分け(分割)可能に構成されていると言える。本実施形態では、一例として、八つの演算器21~28を前半と後半に区分けする例を採用する。つまり、図3に示すように、八つの演算器21~28は、第1演算器21~第4演算器24と、第5演算器25~第8演算器28とに区分けする。
よって、第1演算器21~第4演算器24のそれぞれは、前半演算器と言える。第5演算器25~第8演算器28のそれぞれは、後半演算器と言える。なお、第1演算器21~第4演算器24は、前半演算器グループとも言える。一方、第5演算器25~第8演算器28は、後半演算器グループとも言える。
なお、本実施形態では、複数の演算器21~28を二つに区分けする例を採用した。しかしながら、本開示は、これに限定されず、複数の演算器を三つ以上に区分けされてもよい。
演算器21~28は、CPU10から要求された1つの命令で、ベクトルデータ41に含まれる複数の要素データd1~d8を用いた演算を個別に且つ同時に実行可能に構成されている。演算器21~28は、要素データd1~d8のうち、自身に対応した一つの要素データを用いた演算を実行する。演算器21~28と要素データd1~d8は、符号の一桁の数字が同じものどうしが対応している。例えば、第1演算器21は、第1要素データd1と対応している。また、第8演算器28は、第8要素データd8と対応している。
レジスタ20aは、CPU10によって供給された命令や要素データd1~d8が一時的に記憶される。比較回路20bは、前半演算器の演算結果と、後半演算器の演算結果とを比較する回路である。
モード切替器20cは、演算器21~28の演算モードを通常モードと比較モードとで切り替える装置である。モード切替器20cは、通常モードと比較モードとで切り替えるために、少なくともROM30における機能安全対応が必要な命令のアドレスを有している。この場合、モード切替器20cは、機能安全対応が必要な命令のアドレスを記憶する記憶部を有している。
また、機能安全対応が必要な命令のアドレスは、ROM30に記憶されていてもよい。この場合、モード切替器20cは、ROM30から機能安全対応が必要な命令のアドレスを読み出し可能に構成される。なお、モード切替器20cは、機能安全対応が不必要な命令のアドレスを有するか、機能安全対応が不必要な命令のアドレスを読み出し可能に構成されていてもよい。
通常モードは、図3の左側に示すように、全ての演算器21~28が、全ての要素データd1~d8のそれぞれを用いて同時に演算を実行するモードである。
比較モードは、図3の右側に示すように、前半演算器21~24と後半演算器25~28とで同じ要素データd1~d8を用いた演算を実行し、前半演算器21~24の演算結果と後半演算器25~28の演算結果とを比較するモードである。また、比較モードでは、通常モードのように全ての要素データd1~d8を用いた演算を同時に行うのではなく、段階的に行うことになる。
詳述すると、比較モードでは、要素データd1~d8の前半の要素データd1~d4を用いた演算と、後半の要素データd5~d8を用いた演算とを異なるタイミングで実行する。なお、第1要素データd1~第4要素データd4のそれぞれは、前半データと言える。第5要素データd5~第8要素データd8のそれぞれは、後半データと言える。また、第1要素データd1~第4要素データd4は、前半要素データグループと言える。第5要素データd5~第8要素データd8は、後半要素データグループと言える。前半要素データグループと後半要素データグループは、データグループに相当する。
比較モードでは、前半の要素データd1~d4を用いた演算を前半演算器21~24と、後半演算器25~28とで実行し、これらの演算結果を比較する。このとき、前半演算器21~24は、前半の要素データd1~d4のそれぞれを用いて同時に演算を実行する。同様に、後半演算器25~28は、前半の要素データd1~d4のそれぞれを用いて同時に演算を実行する。
その後、比較モードでは、後半の要素データd1~d4を用いた演算を前半演算器21~24と、後半演算器25~28とで実行し、これらの演算結果を比較する。このとき、前半演算器21~24は、後半の要素データd5~d8のそれぞれを用いて同時に演算を実行する。同様に、後半演算器25~28は、後半の要素データd5~d8のそれぞれを用いて同時に演算を実行する。
ここで、図2、図3を用いて、マイコン1の処理動作に関して説明する。マイコン1は、SIMDプロセッサ20に命令が供給されるたびに図2の処理を実行する。また、マイコン1は、CPU10が命令を実行するたびに図2の処理を実行するものであってもよい。
ステップS10では、ASIL情報を取得する。ASIL情報は、SIMDプロセッサ20に要求された命令がASIL処理の命令であるか否かを判断するための情報である。ここでは、ASIL情報の一例として、SIMDプロセッサ20に要求された命令のROM30におけるアドレスを採用する。
モード切替器20cは、SIMDプロセッサ20に要求された命令がASIL処理の命令であるか否かを判定するためにASIL情報を取得する。つまり、モード切替器20cは、SIMDプロセッサ20に要求された命令のROM30におけるアドレスを、プログラムカウンタから取得する。
ステップS12では、データ数情報を取得する。モード切替器20cは、ROM30からデータ数情報を取得する。モード切替器20cは、SIMDプロセッサ20に要求された命令に応じて、演算器21~28が演算で用いるベクトルデータ41に含まれる要素データのデータ数情報を取得する。つまり、モード切替器20cは、演算器21~28が演算で用いるベクトルデータ41に関連付けられたデータ数情報を取得する。上記のように、本実施形態では、データ数Nとして8を採用している。よって、モード切替器20cは、データ数情報を取得することで、要素データが八つであることを認識することができる。
ステップS14では、命令がASILに該当するか否かを判定する(判定部)。モード切替器20cは、ステップS10で取得したASIL情報と、機能安全対応が必要な命令のアドレスとから、SIMDプロセッサ20に要求された命令がASIL処理の命令であるか否かを判定する。つまり、モード切替器20cは、ステップS10で取得したアドレスが、機能安全対応が必要な命令のアドレスであった場合、SIMDプロセッサ20に要求された命令がASIL処理の命令であると判定する。また、モード切替器20cは、ステップS10で取得したアドレスが、機能安全対応が必要な命令のアドレスでなかった場合、SIMDプロセッサ20に要求された命令がASIL処理の命令でないと判定する。
なお、モード切替器20cは、ステップS10で取得したASIL情報と、機能安全対応が必要な命令のアドレスと、機能安全対応が不必要な命令のアドレスとから、命令がASIL処理の命令であるか否かを判定してもよい。この場合、モード切替器20cは、ステップS10で取得したアドレスが、機能安全対応が不必要な命令のアドレスであった場合、命令がASIL処理の命令でないと判定する。
そして、モード切替器20cは、ASIL処理の命令であると判定した場合にASILに該当とみなして、ステップS18にすすみ、ASIL処理の命令であると判定しなかった場合にASILに該当とみなさずステップS16にすすむ。
また、モード切替器20cは、ASIL処理の命令であると判定した場合、演算モードを比較モードに設定する。一方、モード切替器20cは、ASIL処理の命令であると判定しなかった場合、演算モードを通常モードに設定する。
このように、本実施形態では、一例として、命令を格納しているROM30のアドレスをASIL情報として採用している。このため、モード切替器20cは、命令のアドレスを確認することで、SIMDプロセッサ20に要求された命令が、ASIL処理の命令であるか否かを判定することができる。よって、マイコン1は、特殊命令などを準備することなく、ASIL処理の命令であるか否かを判定することができる。また、マイコン1は、他のプロセッサの処理能力を使って、RAM40などを書き換える必要がない。
しかしながら、本開示は、これに限定されない。本開示は、特殊命令を用いて演算モードの切り替えを行ってもよい。特殊命令は、ASIL命令区間のスタートを示す命令、及びエンドを示す命令などを採用できる。この特殊命令は、予めROM30に記憶されたプログラムに含まれている。
この場合、モード切替器20cは、SIMDプロセッサ20に供給された命令がスタートを示す命令、エンドを示す命令、それ以外の命令を判定する。そして、モード切替器20cは、スタートを示す命令であると判定した場合は演算モードを比較モードに設定し、エンドを示す命令であると判定した場合は演算モードを通常モードに設定する。また、モード切替器20cは、それ以外の命令であると判定した場合は演算モードを切り替えない。これによって、マイコン1は、演算モードの切り替えを判断するための情報を記憶しておく専用の記憶領域を準備する必要がない。
また、本開示は、CPU10が演算モードの切り替えをSIMDプロセッサ20に指示してもよい。CPU10は、上記のように命令のアドレスや制御情報から演算モードの切り替えを判断する。そして、CPU10は、比較モードへの切り替えと判断した場合、SIMDプロセッサ20に比較モードへの切り替えを指示する。また、CPU10は、通常モードへの切り替えと判断した場合、SIMDプロセッサ20に通常モードへの切り替えを指示する。CPU10は、レジスタ20aの値を書き換えることで、比較モードへの切り替え、及び通常モードへの切り替えを指示することができる。この場合、マイコン1は、上記のように特殊命令を用意しておく必要がない。しかしながら、CPU10は、上記のように特殊命令に基づいて演算モードの切り替えを判断してもよい。
ステップS16では、N個の要素データをN個の演算器で実行する(通常演算部)。本実施形態では、N=8である。図3に示すように、モード切替器20cは、通常モードに設定しているため、レジスタ20aに格納された要素データd1~d8を演算器21~28にセット(供給)する。そして、SIMDプロセッサ20は、ベクトルデータ41を分割することなく、複数の演算器21~28にて、ベクトルデータ41に含まれる全ての要素データd1~d8を用いた演算を一度に実行する。
これによって、マイコン1は、命令がASILに該当しない場合、全ての演算器21~28で同時に演算を実行できるため処理性能を向上することができる。つまり、マイコン1は、演算器が一つの場合や、複数の演算器が順番に演算を行う場合よりも処理性能を向上することができる。
ステップS18では、N個の要素データを半分に分割する(データ分割部)。図3に示すように、モード切替器20cは、比較モードに設定しているため、レジスタ20aに格納された要素データd1~d8を半分に分割する。モード切替器20cは、ベクトルデータ41を第1要素データd1~第4要素データd4の前半データと、第5要素データd5~第8要素データd8の後半データに分割する。モード切替器20cは、ベクトルデータ41を前半要素データグループと後半要素データグループとの二つのデータグループに分割するとも言える。このように、モード切替器20cは、ステップS14で機能安全の対象と判定した場合、ベクトルデータ41を、要素データを含む複数のデータグループに分割する。
ステップS20では、前半データを前半演算器と後半演算器に入力し演算を実行する(段階的演算部)。図3に示すように、SIMDプロセッサ20は、モード切替器20cが前半データd1~d4のそれぞれを、前半演算器21~24のそれぞれ及び後半演算器25~28のそれぞれに入力する。つまり、モード切替器20cは、前半データd1~d4のそれぞれを、前半演算器21~24のそれぞれ、及び後半演算器25~28のそれぞれに共通に入力する。また、モード切替器20cは、複数の要素データd1~d4をデータグループ単位で各演算器グループに共通して供給すると言える。
各前半演算器21~24は、入力された前半データd1~d4を用いて演算を実行する。同様に、各後半演算器25~28は、入力された前半データd1~d4を用いて演算を実行する。SIMDプロセッサ20は、前半演算器21~24と後半演算器25~28で前半データd1~d4を用いて演算を行うため、ステップS20で一段階目の演算を行うことになる。
このように、前半演算器21~24と後半演算器25~28は、同じ前半データd1~d4を用いて演算を行うことになる。このため、前半演算器21~24と後半演算器25~28は、演算器21~28が正常であれば、同じ演算結果(ベクトル演算結果データ)を得ることになる。
ステップS22では、前半データ入力時の前半演算器と後半演算器の演算結果を比較する(比較部)。比較回路20bは、前半演算器21~24による前半データd1~d4を用いた演算結果と、後半演算器25~28による前半データd1~d4を用いた演算結果とを比較する。つまり、比較回路20bは、ステップS20での演算が終了すると、複数の要素データd1~d4が共通して供給された演算器グループどうしの演算結果を比較する。
ステップS24では、比較結果が異なるか否かを判定する(比較部)。比較回路20bは、前半演算器21~24の演算結果と後半演算器25~28の演算結果とを比較し、両演算結果が異なるか否かを判定する。比較回路20bは、両演算結果が異なると判定した場合はステップS32へ進み、両演算結果が異なると判定しなかった場合はステップS26へ進む。
ステップS26では、後半データを前半演算器と後半演算器に入力し演算を実行する(段階的演算部)。図3に示すように、SIMDプロセッサ20は、モード切替器20cが後半データd5~d8のそれぞれを、前半演算器21~24のそれぞれ及び後半演算器25~28のそれぞれに入力する。つまり、モード切替器20cは、後半データd5~d8のそれぞれを、前半演算器21~24のそれぞれ、及び後半演算器25~28のそれぞれに共通に入力する。また、モード切替器20cは、複数の要素データd5~d8をデータグループ単位で各演算器グループに共通して供給すると言える。
各前半演算器21~24は、入力された後半データd5~d8を用いて演算を実行する。同様に、各後半演算器25~28は、入力された後半データd5~d8を用いて演算を実行する。SIMDプロセッサ20は、前半演算器21~24と後半演算器25~28で後半データd5~d8を用いて演算を行うため、ステップS20で二段階目の演算を行うことになる。
このように、前半演算器21~24と後半演算器25~28は、同じ後半データd5~d8を用いて演算を行うことになる。このため、前半演算器21~24と後半演算器25~28は、演算器21~28が正常であれば、同じ演算結果を得ることになる。
以上のように、SIMDプロセッサ20は、ステップS18にて前半要素データグループと後半要素データグループに分割すると、複数の要素データをデータグループ単位で各演算器グループに共通して供給する。そして、SIMDプロセッサ20は、各演算器グループの各演算器による要素データを用いた演算を、全てのデータグループに関して段階的に実行する。本実施形態では、前半データグループと後半データグループを二段階で演算する例を採用している。
ステップS28では、後半データ入力時の前半演算器と後半演算器の演算結果を比較する(比較部)。比較回路20bは、前半演算器21~24による後半データd5~d8を用いた演算結果と、後半演算器25~28による後半データd5~d8を用いた演算結果とを比較する。つまり、比較回路20bは、ステップS20での演算が終了すると、複数の要素データd5~d8が共通して供給された演算器グループどうしの演算結果を比較する。
ステップS30では、比較結果が異なるか否かを判定する(比較部)。比較回路20bは、前半演算器21~24の演算結果と後半演算器25~28の演算結果とを比較し、両演算結果が異なるか否かを判定する。比較回路20bは、両演算結果が異なると判定した場合はステップS32へ進み、両演算結果が異なると判定しなかった場合は図2のフローチャートを終了する。
ステップS32では、演算器の異常と判断する(異常検出部)。比較回路20bは、ステップS24、S30で各演算器グループの演算結果が一致しないと判定した場合、演算器21~28が異常であると判断する。つまり、比較回路20bは、演算器21~28の少なくとも一つが異常であると判断する。
なお、マイコン1は、異常であると判断した場合、予め決められたフェールセーフ処理が実行されるように処理を行なってもよい。例えば、マイコン1は、自身でフェールセーフ処理を実行してもよいし、他のECUに異常であることを通知して、他のECUにフェールセーフ処理を実行させてもよい。
このように、マイコン1は、各演算器グループに対して、要素データd1~d8を共通に供給するため、各演算器グループが同じ要素データd1~d8を用いた演算を実行することになる。そして、マイコン1は、複数の要素データd1~d8が共通して供給された演算器グループどうしの演算結果を比較して、演算結果が一致しない場合に、演算器が異常であると判断する。このため、マイコン1は、信頼性を高めることができる。さらに、これによって、マイコン1は、機能安全規格へ対応することができる。
また、マイコン1は、複数の要素データd1~d8をデータグループ単位で各演算器グループに共通して供給し、各演算器グループの各演算器21~28によって要素データd1~d8を用いた演算を実行する。そして、マイコン1は、この各演算器グループの各演算器21~28による演算を、全てのデータグループに関して段階的に実行する。よって、マイコン1は、異常を検出するために、ベクトルデータ41に含まれる全ての要素データd1~d8を異なる演算器21~28で一度に演算して演算結果を比較する場合よりも、演算器21~28の数を減らすことができる。このため、マイコン1は、回路規模及び消費電力が大きくなることを抑制できる。
(変形例)
図変形例のマイコンに関して説明する。ここでは、主に、変形例のマイコンにおける、マイコン1との相違点に関して説明する。変形例のマイコンは、演算器グループ数、データグループ数、及び処理動作が、上記実施形態のマイコン1と異なる。ここでは、便宜的に同じ符号を用いる。
マイコン1は、複数の演算器を第1演算器グループ、第2演算器グループ、第3演算器グループの三つの演算グループに分割可能に構成されている。また、SIMDプロセッサ20は、ステップS18において、ベクトルデータ41を第1データグループ、第2データグループ、第3データグループの三つのデータグループに分割する(データ分割部)。
SIMDプロセッサ20は、第1データグループの各要素データを三つの演算器グループのそれぞれに共通に供給する。これによって、SIMDプロセッサ20は、三つの演算器グループのそれぞれで、第1データグループの各要素データを用いた演算を行う。つまり、SIMDプロセッサ20は、一段階目の演算を行うことになる(段階的演算部、)。
また、比較回路20bは、各演算器グループによる第1データグループの各要素データを用いた演算結果どうしを比較する。そして、比較回路20bは、各演算器グループの演算結果が一致しないと判定した場合、演算器21~28が異常であると判断する(異常検出部、比較部)。特に、変形例では、三つの演算器グループの演算結果を比較している。このため、比較回路20bは、三つの演算器グループから異常の演算器を含む演算器グループを特定する。
そして、マイコン1は、残りの第2データグループと第3データグループに関しても同様に行う。このように、マイコン1は、三段階にわけて演算、比較、異常判定を行う。よって、変形例のマイコンは、上記実施形態のマイコン1と同様の効果を奏することができる。
さらに、比較回路20bは、特定した異常の演算器を含む演算器グループをモード切替器20cに通知する。比較回路20bは、レジスタ20aの値などによって、モード切替器20cに通知することができる。
これによって、モード切替器20cは、比較回路20bによって特定された異常の演算器を含む演算器グループを認識することができる。そして、モード切替器20cは、その演算器グループを、複数の要素データの供給先から除外する(除外部)。このため、マイコン1は、異常が生じている演算器を用いることなく、正常な演算器のみで演算を行うことができる。
以上、本開示の好ましい実施形態について説明した。しかしながら、本開示は、上記実施形態に何ら制限されることはなく、本開示の趣旨を逸脱しない範囲において、種々の変形が可能である。例えば、本開示は、ベクトルデータ41と演算器21~28を四分割以上に分割してもよい。
1…マイコン、10…CPU、20…SIMDプロセッサ、21…第1演算器、22…第2演算器、23…第3演算器、24…第4演算器、25…第5演算器、26…第6演算器、27…第7演算器、28…第8演算器、20a…レジスタ、20b…比較回路、20c…モード切替器、30…ROM、31…SIMDプロセッサ実行命令、40…RAM、41…ベクトルデータ、50…バス、100…ECU

Claims (2)

  1. 1つの命令で、データに含まれる複数の要素データを用いた演算を個別に且つ同時に実行可能な複数の演算器(21~28)を備えたマイクロコンピュータであって、
    複数の前記演算器は、前記演算器を含む複数の演算器グループに区分け可能に構成されており、
    前記演算器に要求された命令が信頼性の担保が必要な対象か否かを判定する判定部(S14)と、
    前記判定部にて前記信頼性の担保が必要な対象と判定された場合、前記データを、前記要素データを含む複数のデータグループに分割するデータ分割部(S18)と、
    前記データ分割部にて複数の前記データグループに分割されると、複数の前記要素データを前記データグループ単位で各演算器グループに共通して供給し、各演算器グループの各演算器による前記要素データを用いた演算を、全ての前記データグループに関して段階的に実行する段階的演算部(S20、S26)と、
    前記段階的演算部での演算が終了すると、複数の前記要素データが共通して供給された前記演算器グループどうしの演算結果を比較する比較部(S22、S24、S28、S30)と、
    前記比較部にて各演算器グループの演算結果が一致しないと判定された場合、前記演算器が異常であると判断する異常検出部(S32)と、を備え
    複数の前記演算器は、三つ以上の前記演算器グループに区分け可能に構成されており、
    前記データ分割部は、前記データを三つ以上の前記データグループに分割し、
    前記異常検出部は、前記比較部にて各演算器グループの演算結果が一致しないと判定された場合、前記演算器が異常であると判断するとともに、複数の前記演算器グループから異常の前記演算器を含む前記演算器グループを特定し、
    前記異常検出部にて特定された異常の前記演算器を含む前記演算器グループを、複数の前記要素データの供給先から除外する除外部を備えたマイクロコンピュータ。
  2. 前記判定部にて前記信頼性の担保が必要な対象と判定されなかった場合、前記データを分割することなく、複数の前記演算器にて、前記データに含まれる全ての要素データを用いた演算を一度に実行する通常演算部(S16)を、さらに備えた請求項1に記載のマイクロコンピュータ。
JP2019185386A 2019-10-08 2019-10-08 マイクロコンピュータ Active JP7310521B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019185386A JP7310521B2 (ja) 2019-10-08 2019-10-08 マイクロコンピュータ
DE102020212554.6A DE102020212554A1 (de) 2019-10-08 2020-10-05 Mikrocomputer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019185386A JP7310521B2 (ja) 2019-10-08 2019-10-08 マイクロコンピュータ

Publications (2)

Publication Number Publication Date
JP2021060871A JP2021060871A (ja) 2021-04-15
JP7310521B2 true JP7310521B2 (ja) 2023-07-19

Family

ID=74876050

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019185386A Active JP7310521B2 (ja) 2019-10-08 2019-10-08 マイクロコンピュータ

Country Status (2)

Country Link
JP (1) JP7310521B2 (ja)
DE (1) DE102020212554A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050240793A1 (en) 2004-04-06 2005-10-27 Safford Kevin D Architectural support for selective use of high-reliability mode in a computer system
JP2012103772A (ja) 2010-11-08 2012-05-31 Renesas Electronics Corp プロセッサおよびそれを用いた画像処理システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050240793A1 (en) 2004-04-06 2005-10-27 Safford Kevin D Architectural support for selective use of high-reliability mode in a computer system
JP2012103772A (ja) 2010-11-08 2012-05-31 Renesas Electronics Corp プロセッサおよびそれを用いた画像処理システム

Also Published As

Publication number Publication date
DE102020212554A1 (de) 2021-04-08
JP2021060871A (ja) 2021-04-15

Similar Documents

Publication Publication Date Title
JP4232987B2 (ja) プロセッサユニットの少なくとも2つの動作モードを切替る方法および対応するプロセッサユニット
EP2386960B1 (en) Computer system
JP6074955B2 (ja) 情報処理装置および制御方法
US8234476B2 (en) Information processing apparatus and method of updating stack pointer
US20070245133A1 (en) Method and Device for Switching Between at Least Two Operating Modes of a Processor Unit
KR20130119452A (ko) 오류 허용 아키텍쳐를 갖는 마이크로프로세서 시스템
JP2009505186A (ja) コンピュータシステムの機能監視方法および機能監視装置
US10379931B2 (en) Computer system
US20080133975A1 (en) Method for Running a Computer Program on a Computer System
CN104246711A (zh) 信息处理装置、信息处理方法和存储有用于执行该信息处理方法的程序的存储介质
JP2018067047A (ja) 制御装置
JP4893427B2 (ja) マイクロコンピュータシステム
JP2009129463A (ja) 車両制御装置のリアルタイムシステムにおける一時的エラーの処理方法
KR20060098372A (ko) 프로세서 유닛 내에서 피연산자를 처리하기 위한 방법 및장치
JP7310521B2 (ja) マイクロコンピュータ
JP5699896B2 (ja) 情報処理装置、異常判定方法
KR101844095B1 (ko) 부트로더 실행 방법 및 장치
JP6229637B2 (ja) 車載制御装置
EP1505608B1 (en) Memory system with error detection device
US20170052787A1 (en) Electronic control unit
JP7236811B2 (ja) 情報処理装置
JP4115576B2 (ja) マルチプロセッサシステム
US11385977B2 (en) Reconfiguration control device
JP2013061783A (ja) マルチコア・プロセッサ
JP6524989B2 (ja) 演算器の動作保証方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230606

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230619

R151 Written notification of patent or utility model registration

Ref document number: 7310521

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151