JP7449193B2 - Computing device and vehicle control device - Google Patents

Computing device and vehicle control device Download PDF

Info

Publication number
JP7449193B2
JP7449193B2 JP2020130212A JP2020130212A JP7449193B2 JP 7449193 B2 JP7449193 B2 JP 7449193B2 JP 2020130212 A JP2020130212 A JP 2020130212A JP 2020130212 A JP2020130212 A JP 2020130212A JP 7449193 B2 JP7449193 B2 JP 7449193B2
Authority
JP
Japan
Prior art keywords
arithmetic
failure
unit
computing
failure detector
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
JP2020130212A
Other languages
Japanese (ja)
Other versions
JP2022026647A (en
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.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Astemo Ltd
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 Hitachi Astemo Ltd filed Critical Hitachi Astemo Ltd
Priority to JP2020130212A priority Critical patent/JP7449193B2/en
Priority to DE112021003053.1T priority patent/DE112021003053T5/en
Priority to PCT/JP2021/024398 priority patent/WO2022024634A1/en
Publication of JP2022026647A publication Critical patent/JP2022026647A/en
Application granted granted Critical
Publication of JP7449193B2 publication Critical patent/JP7449193B2/en
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
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • G06F11/0739Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in automotive or aircraft systems
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • 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/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Detection And Correction Of Errors (AREA)
  • Hardware Redundancy (AREA)
  • Traffic Control Systems (AREA)

Description

本発明は、演算装置に関する。その中でも特に、演算装置を構成する演算器の配置に関する。 The present invention relates to an arithmetic device. Among these, it particularly relates to the arrangement of arithmetic units constituting an arithmetic device.

複数の演算器で実現される演算装置の一適用例として、ディープニューラルネットワーク(Deep Neural Network)等のニューラルネットワークがある。また、このディープニューラルネットワークの一つである畳込みニューラルネットワーク(Convolution Neural Network:CNN)は、情報処理の一種である画像認識処理に応用されていることが知られている。このような画像処理では、従来のルールベースのアルゴリズムに比べて認識精度が飛躍的に向上することが知られており、様々な分野における実用化が進んでいる。 An example of an application of an arithmetic device realized by a plurality of arithmetic units is a neural network such as a deep neural network. Furthermore, it is known that a convolutional neural network (CNN), which is one of these deep neural networks, is applied to image recognition processing, which is a type of information processing. It is known that such image processing dramatically improves recognition accuracy compared to conventional rule-based algorithms, and is being put into practical use in various fields.

例えば、自動車産業の分野においては、運転アシストや自動運転向けの周辺認識にCNNを適用し、重大事故の防止に貢献することが考えられる。CNNを処理するデバイスの要件として、数十ミリ秒オーダの周期でカメラから送られてくる画像を、高速処理することが求められる。このため、高価なGPUを搭載したデバイスが必要であった。しかし、昨今のアルゴリズムの軽量化やモデルを圧縮する実装技術の進歩により低コストのデバイスを選択可能となり、大衆車向けにもCNNを車載したECUの実用化が進んでいる。 For example, in the automotive industry, CNN could be applied to driving assist and peripheral recognition for autonomous driving, contributing to the prevention of serious accidents. As a requirement for a device that processes CNN, it is required to process images sent from a camera at a high speed with a period on the order of tens of milliseconds. Therefore, a device equipped with an expensive GPU was required. However, recent advances in lightweight algorithms and implementation technology for compressing models have made it possible to select low-cost devices, and ECUs equipped with CNNs are being put into practical use in popular cars.

一方で、車載部品に対してはISO26262等で定められた高い安全性・信頼性基準を満たす必要がある。すなわち、画像処理のための演算回路やソフトウェアの故障率や故障検出率などに対して高い要求がある。 On the other hand, in-vehicle components must meet high safety and reliability standards stipulated by ISO26262 and other standards. That is, there are high demands on the failure rate and failure detection rate of arithmetic circuits and software for image processing.

一般的な組合せ論理回路(ランダムロジック)が搭載された演算装置の故障を検出するための手段として、以下の技術が知られている。例えば、ロックステップ(二重化)方式によりそれぞれの出力値が常に一致するかどうかを検出する技術が知られている。他にも、演算器の故障を検出するための故障検出パターン(テスト信号)を回路に入力して、回路の出力値が期待値と一致しているかどうかを判定する技術が知られている。 The following techniques are known as means for detecting failures in arithmetic devices equipped with general combinational logic circuits (random logic). For example, a technique is known that uses a lockstep (duplex) method to detect whether the respective output values always match. Other known techniques include inputting a failure detection pattern (test signal) for detecting a failure in an arithmetic unit into a circuit and determining whether the output value of the circuit matches an expected value.

例えば、特許文献1には、画像処理装置の故障の有無を自己診断させる目的で、複数ステージに配置されたパイプライン型の演算器において、どの演算器を使用したかを記憶しておき、テストパタンの生成には使用した演算器のみをテストすることで、全面検査することなく短い時間で検査を可能とする構成が開示されている。 For example, in Patent Document 1, for the purpose of self-diagnosing the presence or absence of a failure in an image processing device, which processor is used among pipeline type processors arranged in multiple stages is memorized and tested. A configuration has been disclosed that allows testing to be performed in a short time without testing the entire surface by testing only the arithmetic unit used to generate the pattern.

特開2017-092757号公報JP2017-092757A

しかしながら、複数の演算器で情報処理を行う場合、例えば、大規模多並列な積和演算器が必要なCNNにおいては、パイプライン型の処理ではないために従来の技術を適用しても、故障検知のための回路オーバヘッドや検査時間が増大するという課題があった。 However, when information processing is performed using multiple arithmetic units, for example, in a CNN that requires large-scale multi-parallel product-sum arithmetic units, even if conventional technology is applied, failures occur because the processing is not pipelined. There was a problem that the circuit overhead for detection and inspection time increased.

このような場合、例えば、演算装置のような演算に用いられるデバイスが高コストになる。また、デバイスに実装可能な演算器の並列数が少なくなり情報処理速度、例えば、画像処理のフレームレートが低下すること、等が挙げられる。 In such a case, for example, a device used for calculation, such as an arithmetic unit, becomes expensive. Another problem is that the number of parallel arithmetic units that can be implemented in a device decreases, and the information processing speed, for example, the frame rate of image processing, decreases.

本発明は、このような課題を解決するためになされたものであり、故障検知のための回路オーバヘッドを削減して、デバイスの低コスト化を実現できる演算装置を提供することを目的とする。なお、本明細書では、障害、不具合などを含め故障と表現する。 The present invention has been made to solve such problems, and an object of the present invention is to provide an arithmetic device that can reduce the circuit overhead for failure detection and realize a lower cost of the device. Note that in this specification, failure includes failures, malfunctions, and the like.

本発明に係る演算装置の一例は、入力データに対して、認識処理を実行する演算装置において、それぞれが入力に対する演算を実行し、当該演算の結果を出力することで、前記認識処理を実現する複数の演算器と、前記複数の演算器の少なくとも1つに配置され、当該演算器の故障を検出する故障検出器とを有し、前記故障検出器は、前記複数の演算器のうち、当該演算器の演算結果による前記認識処理に対する影響の程度を示す影響度に応じて定められる演算器に配置され、前記影響度は、前記演算器の演算結果が前記認識処理の認識結果に与える影響を示し、前記演算器の故障およびビット反転のうち少なくとも一方が生じた場合に生じる前記認識処理の結果の認識精度に応じて定められる、演算装置である。 An example of a computing device according to the present invention is a computing device that performs a recognition process on input data, each of which executes a computation on the input and outputs the result of the computation, thereby realizing the recognition process . It has a plurality of arithmetic units and a failure detector that is arranged in at least one of the plurality of arithmetic units and detects a failure of the arithmetic unit, and the failure detector is arranged in at least one of the plurality of arithmetic units. The computing unit is arranged in a computing unit that is determined according to an influence level indicating the degree of influence of the computing result of the computing unit on the recognition process , and the influence level is the influence that the computing result of the computing unit has on the recognition result of the recognition process. and is determined according to the recognition accuracy of the result of the recognition processing that occurs when at least one of a failure of the arithmetic unit and a bit inversion occurs .

また、本発明に係る車両制御装置の一例は、画像データに基づいて、車両を制御する制御信号を出力する車両制御装置において、それぞれが前記画像データに基づく入力に対する演算を実行することで、前記制御信号の生成を実現する複数の演算器と、前記複数の演算器の少なくとも1つに配置され、当該演算器の故障を検出する故障検出器とを有し、前記故障検出器は、前記複数の演算器のうち、前記制御信号による前記車両の緊急制御の起因となる演算器に配置され、前記故障検出器が、当該故障検出器が配置された演算器の故障を検出した場合に、当該故障が検出された演算器と、前記故障検出器が配置されていない演算器の機能を入れ替える車両制御装置である。 Further, an example of a vehicle control device according to the present invention is a vehicle control device that outputs a control signal for controlling a vehicle based on image data, and each of the vehicle control devices performs an operation on an input based on the image data, so that the a plurality of arithmetic units that realize the generation of control signals; and a failure detector that is disposed in at least one of the plurality of arithmetic units and detects a failure of the arithmetic unit; Among the computing units , the fault detector is arranged in the computing unit that causes the emergency control of the vehicle by the control signal, and when the fault detector detects a failure in the computing unit to which the fault detector is arranged, This is a vehicle control device that replaces the functions of an arithmetic unit in which a failure has been detected and an arithmetic unit in which the failure detector is not installed .

本発明によれば、ニューラルネットワークなどを用いた演算装置での故障検出において、配置する故障検出器の数、つまり、回路オーバヘッドの増大を抑制することが出来る。 According to the present invention, in fault detection in an arithmetic device using a neural network or the like, it is possible to suppress an increase in the number of fault detectors to be arranged, that is, an increase in circuit overhead.

上記した以外の課題、構成および効果は、以下の発明を実施するための形態の説明により明らかにされる。 Problems, configurations, and effects other than those described above will be made clear by the following description of the mode for carrying out the invention.

本発明の実施例1における演算装置の構成例を示すブロック図である。1 is a block diagram showing an example of the configuration of an arithmetic device in Example 1 of the present invention. FIG. 本発明の実施例1における演算器(故障検出器無し)の構成例を示すブロック図である。FIG. 2 is a block diagram showing a configuration example of a computing unit (without a failure detector) in Embodiment 1 of the present invention. 本発明の実施例1における演算器とこれに配置される故障検出器の構成例を示すブロック図である。FIG. 2 is a block diagram showing a configuration example of a computing unit and a failure detector disposed therein in Embodiment 1 of the present invention. 本発明の実施例1における故障検出器配置器および故障検出器配置記憶部を設けた演算装置の構成例を示すブロック図である。FIG. 2 is a block diagram showing a configuration example of an arithmetic device provided with a fault detector placement device and a fault detector placement storage unit in Embodiment 1 of the present invention. 本発明の実施例1で用いられる故障検出器配置情報の一例を示す図である。FIG. 3 is a diagram showing an example of failure detector placement information used in Example 1 of the present invention. 本発明の実施例1における故障検出器の配置有無を判断する処理の一例を示すためのフローチャートである。7 is a flowchart illustrating an example of a process for determining whether or not a failure detector is arranged in Embodiment 1 of the present invention. 本発明の実施例2における演算装置の構成例を示すブロック図である。FIG. 2 is a block diagram showing a configuration example of an arithmetic device according to a second embodiment of the present invention. 本発明の実施例で用いられる故障検出器配置計画情報の一例を示す図である。FIG. 3 is a diagram showing an example of failure detector placement plan information used in the embodiment of the present invention. 本発明の実施例2で用いられる故障検出器配置情報の一例を示す図である。FIG. 7 is a diagram showing an example of failure detector placement information used in Example 2 of the present invention. 本発明の実施例3における演算装置の構成例を示すブロック図である。FIG. 3 is a block diagram showing an example of the configuration of an arithmetic device according to a third embodiment of the present invention. 本発明の実施例3における故障検出器配置情報を示す図を示すブロック図である。FIG. 7 is a block diagram showing a diagram showing failure detector placement information in Embodiment 3 of the present invention. 本発明の実施例4における演算器の構成例を示すブロック図である。FIG. 7 is a block diagram showing an example of the configuration of a computing unit in Embodiment 4 of the present invention. 本発明の実施例4における演算単位機器に故障検出器を配置した例を示すブロック図である。FIG. 7 is a block diagram showing an example in which a failure detector is arranged in a calculation unit device according to a fourth embodiment of the present invention. 本発明の実施例4における演算単位機器に故障検出器を配置した演算器の例を示す拡大図である。FIG. 7 is an enlarged view showing an example of a computing device in which a failure detector is arranged in a computing unit device according to a fourth embodiment of the present invention. 本発明の実施例4における演算単位機器の機能を入れ替える例を示す拡大図である。FIG. 7 is an enlarged view showing an example of exchanging functions of arithmetic unit devices in Example 4 of the present invention. 本発明の実施例4で用いられる故障検出器配置情報の一例を示す図である。FIG. 7 is a diagram showing an example of failure detector placement information used in Example 4 of the present invention. 本発明の実施例5のニューロン(演算器110)の層を説明する図である。FIG. 7 is a diagram illustrating layers of neurons (calculating unit 110) according to the fifth embodiment of the present invention. 本発明の実施例5における故障検出器の配置の一例を示す図である。It is a figure which shows an example of arrangement|positioning of the failure detector in Example 5 of this invention. 本発明の各実施例の応用例を説明するための図である。FIG. 3 is a diagram for explaining an application example of each embodiment of the present invention.

以下、図面を参照して本発明の実施形態を説明する。各実施例は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略および簡略化がなされている。本発明は、他の種々の形態でも実施することが可能である。特に限定しない限り、各構成要素は単数でも複数でも構わない。 Embodiments of the present invention will be described below with reference to the drawings. Each example is an illustration for explaining the present invention, and is omitted and simplified as appropriate for clarity of explanation. The present invention can also be implemented in various other forms. Unless specifically limited, each component may be singular or plural.

図面において示す各構成要素の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面に開示された位置、大きさ、形状、範囲などに限定されない。 The position, size, shape, range, etc. of each component shown in the drawings may not represent the actual position, size, shape, range, etc. in order to facilitate understanding of the invention. Therefore, the present invention is not necessarily limited to the position, size, shape, range, etc. disclosed in the drawings.

各実施例で扱う情報の例として、「テーブル」「情報」との表現を用いるが、それぞれ「リスト」「キュー」もしくは「情報」「テーブル」としてもよい。また、識別情報については、「識別子」、「名」、「ID」、「番号」等と読み替えが可能である。 As examples of information handled in each embodiment, the expressions "table" and "information" are used, but they may also be expressed as "list", "queue", "information", and "table", respectively. Further, the identification information can be read as "identifier", "name", "ID", "number", etc.

同一あるいは同様の機能を有する構成要素が複数ある場合には、同一の符号に異なる添字を付して説明する場合がある。また、これらの複数の構成要素を区別する必要がない場合には、添字を省略して説明する場合がある。 When there are multiple components having the same or similar functions, the same reference numerals may be given different suffixes for explanation. Furthermore, if there is no need to distinguish between these multiple components, the subscripts may be omitted from the description.

各実施例において、プログラムを実行して行う処理について説明する場合がある。ここで、計算機は、プロセッサ(例えばCPU、GPU)によりプログラムを実行し、記憶資源(例えばメモリ)やインターフェースデバイス(例えば通信ポート)等を用いながら、プログラムで定められた処理を行う。そのため、プログラムを実行して行う処理の主体を、プロセッサとしてもよい。同様に、プログラムを実行して行う処理の主体が、プロセッサを有するコントローラ、装置、システム、計算機、ノードであってもよい。プログラムを実行して行う処理の主体は、演算部であれば良く、特定の処理を行う専用回路を含んでいてもよい。ここで、専用回路とは、例えばFPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)、CPLD(Complex Programmable Logic Device)等である。 In each embodiment, processing performed by executing a program may be explained. Here, a computer executes a program using a processor (eg, CPU, GPU), and performs processing determined by the program using storage resources (eg, memory), interface devices (eg, communication port), and the like. Therefore, the main body of processing performed by executing a program may be a processor. Similarly, the subject of processing performed by executing a program may be a controller, device, system, computer, or node having a processor. The main body of processing performed by executing the program may be an arithmetic unit, and may include a dedicated circuit that performs specific processing. Here, the dedicated circuits include, for example, FPGA (Field Programmable Gate Array), ASIC (Application Specific Integrated Circuit), and CPLD (Complex Programmable Logic D). evice) etc.

プログラムは、プログラムソースから計算機にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサと配布対象のプログラムを記憶する記憶資源を含み、プログラム配布サーバのプロセッサが配布対象のプログラムを他の計算機に配布してもよい。また、実施例において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。 A program may be installed on a computer from a program source. The program source may be, for example, a program distribution server or a computer-readable storage medium. When the program source is a program distribution server, the program distribution server includes a processor and a storage resource for storing the program to be distributed, and the processor of the program distribution server may distribute the program to be distributed to other computers. Furthermore, in the embodiments, two or more programs may be implemented as one program, or one program may be implemented as two or more programs.

以下、図面を参照して本発明の実施形態を説明する。なお、以下の実施例では本発明を、車両制御、例えば、先進運転支援システム(Advanced Driver Assistance System:ADAS)や自動運転(Autonomous Driving:AD)向けの車載ECUに適用した例について説明する。但し、本発明は、ADAS、AD向け車載ECUに限定されるものではない。他には、画像処理などの情報処理全般に適用可能である。その中でも、特に、プラント制御のような安全性が求められる演算装置に広く適用することができる。
<実施例1>
本発明をADAS、AD向け車載ECUに適用した実施例1について、図1A~Fを用いて説明する。図1Aは、実施例1における演算装置の構成例を示すブロック図である。
Embodiments of the present invention will be described below with reference to the drawings. In the following embodiments, an example in which the present invention is applied to vehicle control, for example, an in-vehicle ECU for advanced driver assistance systems (ADAS) and autonomous driving (AD), will be described. However, the present invention is not limited to in-vehicle ECUs for ADAS and AD. In addition, it is applicable to general information processing such as image processing. Among these, it is particularly applicable to a wide range of computing devices that require safety, such as plant control.
<Example 1>
A first embodiment in which the present invention is applied to an in-vehicle ECU for ADAS and AD will be described using FIGS. 1A to 1F. FIG. 1A is a block diagram illustrating a configuration example of an arithmetic device according to the first embodiment.

演算装置1は、情報処理の一例として、入力データである画像データ2に対し画像処理を実行し、出力データである認識結果3を出力する演算部11を備える。演算部11はCNNのような大規模並列演算を行うことを想定しており、図1Bに示す演算器110、すなわち、ニューロンが並列配置された層が何層にも渡る処理を実行する。演算器110の入力130、例えば、入力信号は、前の層の演算器110の各出力140とそれぞれ結合されていてもよいし、一部の任意の出力とのみ結合されていてもよく、各層のニューロン(演算器110)の数は任意であってもよい。このように、演算部11は、複数の演算器110を有する。また、当該演算装置1からは、後述する故障検出器120の検出結果である正常/異常4を示す情報が出力される。 As an example of information processing, the computing device 1 includes a computing unit 11 that performs image processing on image data 2 that is input data and outputs recognition results 3 that are output data. The calculation unit 11 is assumed to perform large-scale parallel calculations such as CNN, and the calculation unit 110 shown in FIG. 1B, that is, the layers in which neurons are arranged in parallel, performs processing over many layers. The input 130 of the arithmetic unit 110, for example, an input signal, may be coupled to each output 140 of the arithmetic unit 110 of the previous layer, or may be coupled to only some arbitrary outputs, and each layer The number of neurons (calculating units 110) may be arbitrary. In this way, the arithmetic unit 11 includes a plurality of arithmetic units 110. Further, the arithmetic device 1 outputs information indicating normality/abnormality 4, which is a detection result of a failure detector 120, which will be described later.

また、演算器110が故障したことを検出するための仕組みとして、例えば図1Cに示す故障検出器120が配置される。故障検出器120は、以下の構成を有する。それは、演算器110の入力部にテスト信号150を生成するテスト信号生成回路121、演算器への入力130とテスト信号150を切り替えるための入力側のセレクタ122、テスト信号150が期待値と一致するかを確認するための比較器123である。そして、演算器110からは、出力140が出力される。また、比較器123からは、故障検出器120の正常/異常信号160が出力される。この構成は一例であり、演算器110の故障を検知するための機能を備えていれば、これに限るものではない。また、演算器に「配置」とは、当該演算器の故障を検出可能な状態とすることであり、例えば、演算器と接続することが含まれる。また、配置を実現するためには、後述のようにFPGA等を用いた配置やハードウェアとして固定的な配置のいずれもが含まれる。 Further, as a mechanism for detecting that the arithmetic unit 110 has failed, a failure detector 120 shown in FIG. 1C, for example, is arranged. Failure detector 120 has the following configuration. That is, a test signal generation circuit 121 that generates a test signal 150 at the input part of the arithmetic unit 110, a selector 122 on the input side for switching between the input 130 to the arithmetic unit and the test signal 150, and a test signal 150 that matches an expected value. This is a comparator 123 for checking whether Then, the arithmetic unit 110 outputs an output 140. Further, the comparator 123 outputs a normal/abnormal signal 160 of the failure detector 120. This configuration is an example, and the configuration is not limited to this as long as it has a function for detecting a failure of the arithmetic unit 110. Further, "placing" a computing unit means to put the computing unit in a state where a failure of the computing unit can be detected, and includes, for example, connecting the computing unit to the computing unit. Further, in order to realize the arrangement, as described later, an arrangement using an FPGA or the like or a fixed arrangement as hardware is included.

ここで、本実施例においては、故障検出器120が配置される演算器110と、配置されない演算器110が混在している構成である。以下、まず、故障検出器の配置有無が混在する理由について以下で説明する。なお、本実施例では、少なくとも1つの演算器110に、故障検出器120が配置されていることになる。 Here, in this embodiment, the configuration is such that there are arithmetic units 110 in which the failure detector 120 is arranged and arithmetic units 110 in which the failure detector 120 is not arranged. Hereinafter, first, the reason why the presence or absence of the failure detector is mixed will be explained below. Note that in this embodiment, a failure detector 120 is arranged in at least one arithmetic unit 110.

一般的なランダムロジックにおける演算器であれば、回路素子や配線が1か所(1bit)故障したときの演算結果や情報処理の結果は期待値から外れたものになり、その演算器を用いるシステムとしては大きな影響になることが多い。一方で、CNNのように多数の入力信号の積和演算と、ビットシフトや活性化関数などの丸め機能を持った回路から成る演算器110においては、1bitの故障が発生しても演算結果の変化は無視できるほど微小であることが多い。また、1つの演算器において演算結果の変化が大きかったとしても、他の演算器の結果も含めて次層以降で演算されるために、最終的な演算結果である情報処理の結果(認識結果3)では期待値に対する変化が微小になることもある。 In the case of an arithmetic unit in general random logic, if one circuit element or wiring fails in one place (1 bit), the calculation result or information processing result will deviate from the expected value, and the system using that arithmetic unit It often has a big impact. On the other hand, in an arithmetic unit 110 such as a CNN, which is composed of a circuit that performs product-accumulation operations on a large number of input signals and has rounding functions such as bit shifting and activation functions, even if a 1-bit failure occurs, the operation result cannot be changed. Changes are often so small that they can be ignored. In addition, even if there is a large change in the calculation result of one calculation unit, the results of other calculation units are also calculated in the next layer onwards, so the final calculation result is the information processing result (recognition result). In 3), the change in the expected value may be small.

また、学習データセットを用いたトレーニングにより決まるCNNの演算パラメータ(重み、バイアス 等)は、層や演算器ごとに異なる値が割り当てられる。割り当てられたパラメータのうち、0に近い微小な値が割り当てられた演算器は、どんなデータが入力されても微小な結果にしかならないため、故障が演算結果や認識結果3に与える影響は小さいと言える。 In addition, the CNN calculation parameters (weights, bias, etc.) determined by training using the learning data set are assigned different values for each layer and calculation unit. Among the assigned parameters, a computing unit that is assigned a small value close to 0 will only produce a small result no matter what data is input, so a failure will have little effect on the computing results or recognition results 3. I can say it.

以上のような理由から、アルゴリズムそのものの特徴や、演算パラメータの割り当てられ方(学習の結果)によって、故障が演算器110演算結果や演算装置1の情報処理結果に与える影響度が異なる。この影響度を、CNNの設計時に予め調査しておき、演算結果に与える影響が大きい演算器を特定し、これに対して、故障検出器120を配置する。 For the above reasons, the degree of influence that a failure has on the calculation results of the calculation unit 110 and the information processing results of the calculation device 1 differs depending on the characteristics of the algorithm itself and how calculation parameters are assigned (results of learning). This degree of influence is investigated in advance when designing the CNN, and arithmetic units that have a large influence on the calculation results are identified, and the failure detector 120 is arranged for these arithmetic units.

このことを実現するために、本実施例では、図1Dに示すように、故障検出器配置器101および故障検出器配置記憶部102を設ける。つまり、故障検出器配置記憶部102に記憶された故障検出器配置情報1021に基づいて、故障検出器配置器101が故障検出器120の配置を決定する。この故障検出器配置器101の機能は、プログラムに従った処理であるが、ハードウェアとしてその機能を実現してもよい。なお、後述する各実施例でも同様に、図1Aや図1Dに示す演算装置1を車両制御装置として利用してもよい。 In order to realize this, in this embodiment, as shown in FIG. 1D, a fault detector placement device 101 and a fault detector placement storage section 102 are provided. That is, based on the fault detector arrangement information 1021 stored in the fault detector arrangement storage section 102, the fault detector locator 101 determines the arrangement of the fault detectors 120. The function of this failure detector placement device 101 is processing according to a program, but the function may be realized as hardware. Note that in each embodiment described later, the arithmetic device 1 shown in FIG. 1A or FIG. 1D may be used as a vehicle control device.

ここで、図1Eに、故障検出器配置情報1021の一例を示す。故障検出器配置情報1021は、演算器を識別する識別情報である「演算器」、当該演算器の演算結果が認識処理に与える影響を示す「影響度」および故障検出器120の「配置有無」を有する。ここで、「演算器」は番号以外の名称など他の識別情報を用いてもよい。 Here, FIG. 1E shows an example of the failure detector placement information 1021. The failure detector placement information 1021 includes “calculation unit” which is identification information for identifying a calculation unit, “influence degree” indicating the influence of the calculation result of the calculation unit on recognition processing, and “placement presence/absence” of the failure detector 120. has. Here, the "computing unit" may use other identification information such as a name other than a number.

ここで、影響度とは、予め定められたアルゴリズムにより算出され、演算器の演算結果による演算装置1の情報処理に対する影響の程度を示す指標である。このため、影響度には、後述の情報処理の結果やこの情報処理の結果に応じた制御のうち少なくとも一方に応じて定められることが含まれる。このことで、演算装置1の情報処理や適用先に応じた適切な故障検出が可能になる。 Here, the degree of influence is an index that is calculated by a predetermined algorithm and indicates the degree of influence of the calculation results of the calculation unit on the information processing of the calculation device 1. Therefore, the degree of influence includes being determined according to at least one of the results of information processing described below and the control according to the results of this information processing. This enables appropriate failure detection depending on the information processing and application of the arithmetic device 1.

より具体的には、影響度は、情報処理の結果である認識結果の変化具合である劣化具合(認識精度)や認識結果が車両の制御結果への影響に応じて定められるものを含む。以上のように、影響度は、演算器等の演算算果による情報処理に対する影響の程度を示している。 More specifically, the degree of influence includes the degree of deterioration (recognition accuracy), which is the degree of change in the recognition result as a result of information processing, and the degree of influence determined according to the influence of the recognition result on the control result of the vehicle. As described above, the degree of influence indicates the degree of influence on information processing by the arithmetic results of an arithmetic unit or the like.

なお、本実施例は、影響度の閾値を「0.5」と記憶しておき、これを超える場合に、「配置有無」を配置、つまり、該当の演算器110に故障検出器120を配置する、と判断する。逆に、閾値以下の場合、「配置有無」を無、つまり、該当の演算器110に故障検出器120を配置しない、と判断する。また、故障検出器配置情報1021には、「影響度」が含まれていなくともよい。 In addition, in this embodiment, the threshold value of the degree of influence is stored as "0.5", and when this threshold is exceeded, the "presence or absence of placement" is placed, that is, the failure detector 120 is placed in the corresponding arithmetic unit 110. I judge that. Conversely, if it is less than or equal to the threshold, it is determined that the "presence or absence of placement" is null, that is, the failure detector 120 is not placed in the corresponding arithmetic unit 110. Furthermore, the failure detector placement information 1021 does not need to include the "degree of influence."

さらに、「配置有無」を、複数の要件を組み合わせて判断してもよい。例えば、認識結果の変化具合や認識結果が車両の制御結果への影響度それぞれの積や和などに基づいて、判断してもよい。また、認識結果の変化具合や認識結果が車両の制御結果への影響度の双方を用いて、新たに影響度を算出してもよい。またさらに、認識結果の変化具合や認識結果が車両の制御結果への影響度の双方が閾値を超える場合に、配置と判断するなど、それぞれを用いてもよい。 Furthermore, "placement presence/absence" may be determined by combining a plurality of requirements. For example, the determination may be made based on the degree of change in the recognition result or the product or sum of the degree of influence of the recognition result on the vehicle control result. Further, the degree of influence may be newly calculated using both the degree of change in the recognition result and the degree of influence of the recognition result on the control result of the vehicle. Furthermore, if both the degree of change in the recognition result and the degree of influence of the recognition result on the control result of the vehicle exceed thresholds, it may be determined that the arrangement is appropriate.

なお、故障検出器配置器101および故障検出器配置記憶部102によらず、人手で故障検出器120の配置を決定してもよい。また、故障検出器配置器101および故障検出器配置記憶部102は、演算装置1とは別装置に設けてもよい。この場合、演算装置1の設計装置や製造装置にこれを設け、設計ないし製造の際に故障検出器120の配置の有無を判断することが望ましい。この場合の処理について、図1Fに示すフローチャートを用いて説明する。 Note that the arrangement of the fault detectors 120 may be determined manually without using the fault detector placement device 101 and the fault detector arrangement storage unit 102. Furthermore, the failure detector placement unit 101 and the failure detector placement storage unit 102 may be provided in a separate device from the arithmetic device 1. In this case, it is desirable to provide this in the design device or manufacturing device of the arithmetic device 1 and determine whether or not the failure detector 120 is arranged during design or manufacturing. Processing in this case will be explained using the flowchart shown in FIG. 1F.

まず、ステップS1において、設計者の操作に応じて、設計装置が予め記憶された学習画像を入力して、学習、つまり、パラメータ更新を行う。次に、ステップS2において、設計装置が、予め記憶された推論画像を用いて、学習の結果による精度、つまり、画像処理の精度を評価する。この評価は、予め定められたアルゴリズムにより特定される演算装置の性能、つまり、精度を示す指標を算出するものである。そして、ステップS1およびS2は、精度が一定基準を満たすか、既定の回数終了まで繰り返される。 First, in step S1, the design device inputs a learning image stored in advance in response to a designer's operation, and performs learning, that is, parameter updating. Next, in step S2, the design device uses pre-stored inference images to evaluate the accuracy of the learning results, that is, the accuracy of the image processing. This evaluation calculates an index indicating the performance, that is, the accuracy, of the arithmetic device specified by a predetermined algorithm. Steps S1 and S2 are then repeated until the accuracy satisfies a certain standard or until a predetermined number of times is completed.

次に、ステップS3において、設計装置が推論画像に基づいて、影響度を調査すべき箇所(演算器)に対して、エラー注入を行う。そして、ステップS4において、設計装置が、各演算器の影響度を評価する。つまり、設計装置が図1Eに示すような影響度を算出し、当該演算器に故障検出器の配置有無を判断する。この結果を用いて、製造装置において、故障検出器を配置する。なお、ステップS3および4は、影響度を調査したいエラー箇所(演算器)が終了するまで繰り返す。 Next, in step S3, the design device injects an error into a location (calculating unit) whose degree of influence should be investigated based on the inference image. Then, in step S4, the design device evaluates the degree of influence of each arithmetic unit. That is, the design device calculates the degree of influence as shown in FIG. 1E, and determines whether or not a failure detector is placed in the arithmetic unit. Using this result, a failure detector is placed in the manufacturing equipment. Incidentally, steps S3 and S4 are repeated until the error location (calculating unit) whose influence degree is to be investigated is completed.

次に、故障検出器120の配置の一例について以下で説明する。上述のように、画像処理向けのCNNにおける故障の影響度の判断方法の一つに、上述したように認識結果の変化具合を評価することが挙げられる。この例での最も簡単な評価方法は、学習済みのCNNに推論用の画像データを入力したときの推論結果から認識精度を計算する。認識精度は、例えば物体認識した車のバウンディングボックスの座標、大きさが正解値に対してどれくらい差分があるか、によって評価できる。この認識精度の値が、故障の際にどれだけ劣化するかの閾値を定義しておき、閾値よりも大きな劣化をする演算器110もしくはこれを構成する演算単位機器が、故障検出器120を配置するための基準となる。つまり、本例では、認識精度を示す劣化具合を、上記影響度として用いることになる。 Next, an example of the arrangement of the failure detector 120 will be described below. As described above, one method for determining the degree of influence of a failure in a CNN for image processing is to evaluate the degree of change in recognition results as described above. The simplest evaluation method in this example is to calculate recognition accuracy from the inference result when image data for inference is input to a trained CNN. Recognition accuracy can be evaluated, for example, by determining how much the coordinates and size of the bounding box of a recognized car differ from the correct value. A threshold value for how much the recognition accuracy value deteriorates in the event of a failure is defined, and the failure detector 120 is placed in the arithmetic unit 110 or the arithmetic unit device constituting the arithmetic unit 110 that deteriorates more than the threshold value. This will serve as a standard for That is, in this example, the degree of deterioration indicating recognition accuracy is used as the degree of influence.

なお、この場合、劣化具合として、演算器110の故障およびビット反転のうち少なくも一方が生じた場合に生じる認識処理の結果における変化の具合を用いることが可能である。 In this case, as the degree of deterioration, it is possible to use the degree of change in the result of recognition processing that occurs when at least one of a failure of the arithmetic unit 110 and bit inversion occurs.

また、認識の精度という観点だけでなく、故障による認識結果がADAS、ADのアプリケーションにおいて与える影響も考慮した評価基準を影響度として用いることも考えられる。具体的には、故障によって認識結果のバウンディングボックスの変化が、急な制御に繋がるかどうかという観点である。すなわち、運転中の画像において、自車両から遥か遠方における誤検知(実際は無いのに有ると認識した場合)やバウンディングボックスの微小な変化は、制御に与える影響は無いと考えられる。一方で、故障によって自車両の数m先で誤検知が起こった場合は、急ブレーキや急ハンドルなどの緊急制御に繋がる可能性がある。後者のような影響を及ぼす故障部位(演算器110)については、故障検出器120を配置することが望ましいと言える。つまり、本例では、予め定められた制御を実行することになるか否かを、影響度としても用いる。その一例として、シミュレーション等により、複数の想定場面において、予め定められた制御を実行する可能性を、影響度として用いることが可能である。また、予め定められた制御として、演算装置1が車両の制御信号出力する場合の急ハンドルや急ブレーキを含む緊急制御が含まれる。この場合、緊急制御の起因となる演算を行う演算器110に、故障検出器120を配置する。このことで、ADAS、ADにおいて、フェールセーフな制御を実現できる。 Furthermore, it is also conceivable to use, as the degree of influence, an evaluation standard that takes into consideration not only the recognition accuracy but also the influence that recognition results due to failures have on ADAS and AD applications. Specifically, the point of view is whether a change in the bounding box of the recognition result due to a failure will lead to sudden control. That is, in images taken while driving, erroneous detection at a far distance from the host vehicle (where the vehicle is recognized as being present when it actually does not exist) or minute changes in the bounding box are considered to have no effect on control. On the other hand, if a fault occurs and a false detection occurs several meters ahead of the own vehicle, it may lead to emergency controls such as sudden braking or sudden steering. It can be said that it is desirable to arrange a failure detector 120 for a failure part (calculating unit 110) that has the latter effect. That is, in this example, whether or not a predetermined control will be executed is also used as the degree of influence. As an example, the possibility of executing a predetermined control in a plurality of hypothetical situations through simulation or the like can be used as the degree of influence. Further, the predetermined control includes emergency control including sudden steering and sudden braking when the computing device 1 outputs a control signal for the vehicle. In this case, a failure detector 120 is placed in the arithmetic unit 110 that performs calculations that cause emergency control. With this, fail-safe control can be realized in ADAS and AD.

このような本実施例を実際に適用する場合、は高速道路や市街地などの走行場所や、自車速、周辺車両の混雑度などから、どのような誤検知・不検知が制御に与える影響が大きいかの定義を総合的に判断し、基準を作成することとなる。
<実施例1の効果>
演算装置の故障検出を行なう場合の構成として、認識結果に対して影響度が高い部分に優先的に故障検出器を配置することにより、故障検出器の数の低減が可能となり、高い安全性を担保するとともにデバイスコストの抑制が実現出来る。
<実施例2>
演算器110の故障が固定的に発生する場合の認識結果への影響については、実施例1で対策すればよい。ここで、故障検出器120が配置されていない演算器110においても、それらがいくつも故障すれば演算結果への影響は大きくなるため、対策が必要となる。そこで、実施例2では、故障の影響が小さいと判断された故障検出器120が配置されていない演算器110に対しても、故障の検出を行うことを可能とする。このために、実施例2では、動的に故障検出器120が配置される演算器を変更する。これは言い換えると、故障検出器120が演算器110に対し、動的に再配置されることになる。このように、実施例2では、故障検出器120と演算器110の配置関係が動的に変更される。以下、その詳細を説明する。
When this embodiment is actually applied, it is important to consider how false detections and non-detections will have a large impact on control, depending on the driving location such as a highway or city area, the speed of the own vehicle, the degree of congestion of surrounding vehicles, etc. The criteria will be created based on a comprehensive assessment of the definitions.
<Effects of Example 1>
When detecting faults in arithmetic units, by placing fault detectors preferentially in areas that have a high degree of influence on recognition results, it is possible to reduce the number of fault detectors and achieve high safety. It is possible to reduce device costs while ensuring security.
<Example 2>
The first embodiment can take measures against the influence on the recognition results when a failure of the arithmetic unit 110 occurs on a fixed basis. Here, even in the arithmetic unit 110 in which the failure detector 120 is not arranged, if a number of failures occur in the arithmetic unit 110, the influence on the arithmetic result will be large, so countermeasures are required. Therefore, in the second embodiment, it is possible to detect a failure even in the arithmetic unit 110 in which the failure detector 120, which is determined to have a small influence on the failure, is not installed. For this reason, in the second embodiment, the arithmetic unit in which the failure detector 120 is arranged is dynamically changed. In other words, the failure detector 120 is dynamically relocated with respect to the arithmetic unit 110. In this way, in the second embodiment, the arrangement relationship between the failure detector 120 and the arithmetic unit 110 is dynamically changed. The details will be explained below.

まず、図2Aは、本実施例の演算装置1の構成を示す。図2Aに示すように、本実施例の演算装置1は、演算部11、故障検出器再構成器12、故障検出器配置スケジューラ13および故障検出器配置計画部14を有する。そして、演算部11は、複数の演算器110を有する。ここで、故障検出器再構成器12、故障検出器配置スケジューラ13の機能は、プログラムに従った処理であるが、ハードウェアとしてその機能を実現してもよい。 First, FIG. 2A shows the configuration of the arithmetic device 1 of this embodiment. As shown in FIG. 2A, the arithmetic device 1 of this embodiment includes a calculation section 11, a fault detector reconfigurator 12, a fault detector placement scheduler 13, and a fault detector placement planning section 14. The arithmetic unit 11 includes a plurality of arithmetic units 110. Here, the functions of the fault detector reconfigurator 12 and the fault detector placement scheduler 13 are processing according to a program, but the functions may be realized as hardware.

ここで、故障検出器配置スケジューラ13が、配置入替トリガ6を受け付けると、故障検出器配置計画部14に記憶された故障検出器配置計画情報に従って、再配置(構成)を実行するように、故障検出器再構成器12に指示を出力する。このため、故障検出器再構成器12が、故障検出器配置計画情報に従って、故障検出器120の再配置を実行する。なお、図2Aには、図示しないが、実施例1と同様に、本実施例も故障検出器配置器101および故障検出器配置記憶部102を有してもよい。この場合、故障検出器配置器101および故障検出器配置記憶部102については、それぞれ故障検出器再構成器12および故障検出器配置計画部14がその機能を有してもよい。以下、本実施例では、故障検出器配置記憶部102の機能を故障検出器配置計画部14が有しているものとして説明する。 Here, when the fault detector arrangement scheduler 13 receives the arrangement replacement trigger 6, the fault detector arrangement scheduler 13 executes the arrangement (configuration) according to the fault detector arrangement plan information stored in the fault detector arrangement planning section 14. An instruction is output to the detector reconstructor 12. For this reason, the fault detector reconfigurator 12 executes rearrangement of the fault detectors 120 according to the fault detector arrangement plan information. Although not shown in FIG. 2A, like the first embodiment, this embodiment may also include a fault detector placement device 101 and a fault detector placement storage section 102. In this case, the fault detector reconfigurator 12 and the fault detector arrangement planning section 14 may have the functions of the fault detector placement device 101 and the fault detector arrangement storage section 102, respectively. Hereinafter, in this embodiment, the function of the fault detector arrangement storage section 102 will be explained as being included in the fault detector arrangement planning section 14.

以下、本実施例の詳細を説明する。まず、故障検出器配置計画部14には、図2Bに示す故障検出器配置計画情報141が記憶されている。この内容に従って、故障検出器再構成器12が、故障検出器120の再配置を実行する。なお、このために、演算装置1は、FPGA等の再構成可能なデバイスであることが望ましい。 The details of this embodiment will be explained below. First, the fault detector arrangement planning section 14 stores fault detector arrangement planning information 141 shown in FIG. 2B. According to this content, the fault detector reconfigurator 12 executes rearrangement of the fault detector 120. Note that, for this reason, it is desirable that the arithmetic device 1 be a reconfigurable device such as an FPGA.

ここで、この故障検出器配置計画情報141は、故障検出器配置スケジューラ13により、図2C(図1Eと同じ)の故障検出器配置情報1021を用いて作成される。このために、まず、故障検出器配置スケジューラ13は、故障検出器配置情報1021のうち、影響度の比較位演算器、つまり、閾値以下の演算器であるNo.3~5、7、10、Mを特定する。そして、故障検出器配置スケジューラ13は、これら演算器の識別情報を、故障検出器配置計画情報141の影響度の低い演算器(閾値以下)に格納する。ここで、本実施例では、識別情報を、故障検出器配置情報1021のものを流用しているが、改めて付与し直してもよい。そして、故障検出器配置スケジューラ13は、時刻ごとの故障検出器120を配置する演算器を入れ替え、故障検出器配置情報1021に記録する。なお、図2Bでは、時刻ごとに配置の有無を決定しているが、時刻以外のトリガを用いてもよい。このように、本実施例では、周期的に故障検出器120の配置される演算器110を変更している。 Here, this fault detector placement plan information 141 is created by the fault detector placement scheduler 13 using the fault detector placement information 1021 in FIG. 2C (same as FIG. 1E). For this purpose, the fault detector placement scheduler 13 first selects No. 1 from the fault detector placement information 1021, which is a comparative computing unit of influence, that is, a computing unit having a value below a threshold value. Identify 3-5, 7, 10, and M. Then, the fault detector placement scheduler 13 stores the identification information of these arithmetic units in the arithmetic units with a low degree of influence (lower than the threshold value) in the fault detector placement plan information 141. Here, in this embodiment, the identification information used in the failure detector arrangement information 1021 is used, but it may be given again. Then, the failure detector placement scheduler 13 replaces the arithmetic units in which the failure detectors 120 are placed at each time, and records the result in the failure detector placement information 1021. Note that in FIG. 2B, the presence or absence of placement is determined for each time, but a trigger other than time may be used. In this manner, in this embodiment, the arithmetic unit 110 in which the failure detector 120 is arranged is periodically changed.

以下、この入れ替え、つまり、故障検出器120の再構成である配置変換の詳細を説明する。まず、故障検出器が配置されていない演算器個数が、N個であるとする(Nは自然数である)。ここで、nを入替検出数と定義すると、n個の演算器(例:故障検出器配置計画情報141の上位n個)に対して故障検出器120を配置するとする。例えば、故障検出器配置スケジューラ13は、n=2とした場合、時刻=tにおいて、No.3および4に「配置」を記録する。 The details of this replacement, that is, the arrangement conversion, which is the reconfiguration of the failure detector 120, will be described below. First, it is assumed that the number of arithmetic units in which no fault detector is arranged is N (N is a natural number). Here, if n is defined as the number of detected replacements, it is assumed that the failure detectors 120 are arranged for n computing units (eg, the top n pieces of the failure detector placement plan information 141). For example, when n=2, the failure detector placement scheduler 13 selects No. 1 at time=t. Record the “placement” in 3 and 4.

ここでn<Nであり、nも自然数である。このとき、上記以外(図2BのNo.5以降)の演算器には故障検出器は配置されていない。 Here, n<N, and n is also a natural number. At this time, no failure detector is arranged in the arithmetic units other than those mentioned above (No. 5 and after in FIG. 2B).

次に、信号待ちやエンジンを入れたときの初期化など、指定した配置入替トリガ6のタイミングで、故障検出器配置スケジューラ13は、故障検出器再構成器12に対して、No.5、および7の演算器に故障検出器120を配置するよう指示をする。このとき、故障検出器配置スケジューラ13は、No.5、および7以外のNo.3および4、No.10以降の演算器には故障検出器120は配置されないようにする。故障検出器再構成器12は、この指令に従って演算部内の故障検出器の配置を入れ替え、再構成する。 Next, at the specified timing of the placement reshuffling trigger 6, such as when waiting for a signal or initializing when the engine is turned on, the fault detector placement scheduler 13 sends the fault detector reconfigurator 12 to the No. An instruction is given to arrange the failure detector 120 in the arithmetic units 5 and 7. At this time, the failure detector placement scheduler 13 selects No. 5, and No. other than 7. 3 and 4, no. The failure detector 120 is not arranged in the arithmetic units 10 and onwards. The fault detector reconfigurator 12 rearranges and reconfigures the fault detectors within the calculation unit according to this command.

故障検出器配置スケジューラ13は、このような故障検出器の配置の入れ替え、つまり、配置変換を、配置入替トリガ6を受けたタイミングごとに繰り返す。これを、x回繰り返すとNo.Mまでの演算器までカバーされることになる。ここで、n*x>Nの関係が成り立つ(xも自然数)。なお、x+1回目の配置変換(一巡)で最初の配置に戻ることになる。このことで、図2Aに示すように「認識結果に影響が小さい演算器 図の時刻では故障検出器の配置無し」「認識結果に影響が小さい演算器 図の時刻では故障検出器の配置有り」「認識結果に影響が大きい演算器 故障検出器 配置対象」が混在することになる。つまり、少なくとも1つの演算器に対して、故障検出器120が配置されており、また、他の演算器のうち、少なくとも1つは故障検出器120が配置されていないことになる。 The fault detector arrangement scheduler 13 repeats such arrangement replacement of the fault detectors, that is, arrangement conversion, every time the arrangement replacement trigger 6 is received. If you repeat this x times, No. This will cover up to M computing units. Here, the relationship n*x>N holds true (x is also a natural number). Note that the x+1 arrangement conversion (one round) returns to the initial arrangement. As a result, as shown in FIG. 2A, ``A computer with a small effect on the recognition result has no fault detector placed at the time shown in the figure'' and ``a computer with a small effect on the recognition result has a fault detector placed at the time shown in the figure.'' ``Arithmetic units, fault detectors, and placement targets that have a large effect on recognition results'' will be mixed together. In other words, the fault detector 120 is arranged for at least one computing unit, and the fault detector 120 is not arranged for at least one of the other computing units.

また、上記の例では、定数(n=2)ずつ入れ替える構成としたが、この数は可変としてもよい。但し、故障検出器120の総数を上回らないように、故障検出器配置スケジューラ13がその上限を設ける。また、配置変換が一巡するごとに、「認識結果に影響が小さい演算器」の故障検出器120が配置される回数はそれぞれ同じになるが、可変としてもよい。例えば、故障検出器配置スケジューラ13は、故障検出器配置情報1021の影響度の大きな演算器ほど配置される回数を増加させてもよい。この場合、故障検出器配置スケジューラ13は、影響度に比例させて、その配置回数を決定することが望ましい。 Furthermore, in the above example, the configuration is such that the numbers are replaced by a constant (n=2), but this number may be variable. However, the fault detector placement scheduler 13 sets an upper limit so that the total number of fault detectors 120 is not exceeded. Further, the number of times that the failure detectors 120 of "arithmetic units that have little influence on recognition results" are arranged each time the arrangement conversion goes through is the same, but it may be variable. For example, the fault detector placement scheduler 13 may increase the number of times the arithmetic unit is arranged as the influence of the fault detector placement information 1021 increases. In this case, it is desirable that the fault detector placement scheduler 13 determines the number of placements in proportion to the degree of influence.

また、この配置を示す故障検出器配置計画情報141については、カウンタや数式ベースでプログラムしておいてもよいし、図2Bに示すようなテーブル等の形式で故障検出器配置計画部14に記憶しておいてもよい。さらに、配置変換のトリガは、上述した通り、信号待ち、エンジン入でもよいし、任意の周期を使ってもよい。
<実施例2の効果>
本実施例によれば、1bit故障の感度など影響度が低い演算器、すなわち故障検出器120が配置されない演算器に対しても、信頼性を担保することができる。
<実施例3>
次に、様々な状況、環境に応じた故障検出器120の配置を行う実施例3について、説明する。車両は、時間帯、場所(道路等)といった様々な走行環境下で走行することが多い。このため、車両に対するADASやADにおいても、その環境にあった制御を行う必要がある。この際、その環境ごとに、感度の高いニューロン、つまり演算器110の影響度は異なることもある。ここで、想定される各環境に対応した、故障検出器120の配置を行おうすると、各演算器とも全体的に影響度の数値が高く感度が高くなり、その差が出にくくなるため、配置が必要となる演算器の数が多くなってしまうとの課題が発生する。つまり、故障検出器120の配置に関するオーバヘッドが生じる。
Further, the fault detector arrangement planning information 141 indicating this arrangement may be programmed based on a counter or a mathematical formula, or may be stored in the fault detector arrangement planning unit 14 in a format such as a table as shown in FIG. 2B. You can leave it as is. Furthermore, as described above, the trigger for the location change may be waiting for a traffic signal or turning on the engine, or may use any cycle.
<Effects of Example 2>
According to this embodiment, reliability can be ensured even for an arithmetic unit that has a low influence such as sensitivity to a 1-bit failure, that is, an arithmetic unit in which the failure detector 120 is not arranged.
<Example 3>
Next, a third embodiment will be described in which the failure detector 120 is arranged according to various situations and environments. Vehicles often travel under various driving environments such as time of day and location (roads, etc.). For this reason, it is necessary to perform control appropriate to the environment in ADAS and AD for vehicles as well. At this time, the degree of influence of highly sensitive neurons, that is, the arithmetic unit 110, may differ depending on the environment. Here, if we try to arrange the fault detector 120 in a way that corresponds to each assumed environment, the overall impact value of each computing unit will be high and the sensitivity will be high, making it difficult to distinguish between them. A problem arises in that the number of arithmetic units required increases. In other words, an overhead occurs regarding the arrangement of the failure detector 120.

そこで、本実施例では、環境ごとに演算器の影響度を算出し、図3Aの故障検出器配置記憶部102に保存しておき、これを用いて、故障検出器120の配置を決定する。以下、この詳細を説明するが、環境には、シーン、状況、条件、時間帯、天候、位置なども含まれる。 Therefore, in this embodiment, the degree of influence of the computing unit is calculated for each environment and stored in the fault detector arrangement storage unit 102 in FIG. 3A, and is used to determine the arrangement of the fault detectors 120. The details will be explained below, but the environment includes scenes, situations, conditions, time of day, weather, location, and the like.

まず、図3Aは、本実施例の演算装置1の構成を示す。図3Aに示すように、本実施例の演算装置1は、演算部11の他、故障検出器再構成器12、環境判定器15および故障検出器配置記憶部102を有する。故障検出器再構成器12および環境判定器15の機能は、プログラムに従った処理であるが、ハードウェアとしてその機能を実現してもよい。 First, FIG. 3A shows the configuration of the arithmetic device 1 of this embodiment. As shown in FIG. 3A, the arithmetic device 1 of this embodiment includes, in addition to the arithmetic unit 11, a fault detector reconstructor 12, an environment determiner 15, and a fault detector arrangement storage unit 102. The functions of the failure detector reconfigurator 12 and the environment determiner 15 are processed according to a program, but the functions may be implemented as hardware.

なお、図3Aには、図示しないが、実施例1、2と同様に、本実施例も故障検出器配置器101や故障検出器配置計画部14を有してもよい。この場合、故障検出器配置器101および故障検出器配置計画部14については、それぞれ故障検出器再構成器12および故障検出器配置記憶部102がその機能を有してもよい。すなわち、実施例1~3については、その機能を組み合わせて実施されてもよい。さらに、これらの各部位は、実施例1
や2と同様に演算装置1の外部装置に設けてもよい。
Although not shown in FIG. 3A, like the first and second embodiments, this embodiment may also include the fault detector placement device 101 and the fault detector placement planning section 14. In this case, the functions of the fault detector placement device 101 and the fault detector placement planning section 14 may be provided by the fault detector reconstructor 12 and the fault detector placement storage section 102, respectively. That is, Examples 1 to 3 may be implemented by combining their functions. Furthermore, each of these parts is as described in Example 1.
2 may be provided in an external device of the arithmetic device 1.

ここで、故障検出器配置記憶部102は、実施例1と同様の記憶機能を有するが、環境ごとにその故障検出器配置情報1021を記憶する点で、実施例1と相違する。つまり、本実施例の故障検出器配置記憶部102は、図3Bに示す環境1(高速道路)の故障検出器配置情報1021-1、環境2(市街地)の故障検出器配置情報1021-2…といった各故障検出器配置情報を記憶している。また、図示しないが、故障検出器配置情報1021の環境には、夜間、日中といった時間帯や晴天、雨天といった天候、都市部、郊外といった位置・地域を含めてもよい。 Here, the fault detector arrangement storage unit 102 has a storage function similar to that of the first embodiment, but differs from the first embodiment in that it stores the fault detector arrangement information 1021 for each environment. In other words, the fault detector arrangement storage unit 102 of this embodiment includes fault detector arrangement information 1021-1 for environment 1 (expressway), fault detector arrangement information 1021-2 for environment 2 (urban area), etc. shown in FIG. 3B. It stores information on each fault detector arrangement. Although not shown, the environment of the failure detector placement information 1021 may include time zones such as nighttime and daytime, weather such as sunny and rainy weather, and location and region such as urban and suburban areas.

以下、本実施例の処理について、説明する。まず、環境判定器15は、画像撮影や走行に関する条件5を入力する。ここで、環境判定器15は、入力された条件5に基づいて、環境を判定してもよいし、条件5として外部の演算装置で判定した結果を環境として用いてもよい。 The processing of this embodiment will be explained below. First, the environment determiner 15 inputs conditions 5 regarding image shooting and driving. Here, the environment determiner 15 may determine the environment based on the input condition 5, or may use a result determined by an external arithmetic device as the condition 5 as the environment.

次に、環境判定器15は、上記の判定結果である環境を、故障検出器再構成器12に出力する。そして、故障検出器再構成器12は、受け取った環境に応じた故障検出器配置情報1021を特定する。例えば、環境が「高速道路」であれば、故障検出器再構成器12は、環境1の故障検出器の故障検出器配置情報1021-1を特定する。そして、故障検出器再構成器12は、この故障検出器配置情報1021-1を用いて、故障検出器120の配置を行う。 Next, the environment determiner 15 outputs the environment, which is the above determination result, to the failure detector reconstructor 12. Then, the fault detector reconfigurator 12 specifies the fault detector placement information 1021 according to the received environment. For example, if the environment is "expressway", the fault detector reconstructor 12 specifies the fault detector placement information 1021-1 of the fault detector of environment 1. Then, the fault detector reconstructor 12 uses this fault detector arrangement information 1021-1 to arrange the fault detectors 120.

また、環境判定器15は、入力した条件5に従って、環境が変化したことを検知すると、故障検出器再構成器12へその旨を出力する。そして、故障検出器再構成器12は、故障検出器配置記憶部102の故障検出器配置情報1021を参照して、演算部11内の故障検出器120を再配置する。このために、演算装置1は、FPGA等の再構成可能なデバイスであることが望ましい。なお、環境判定器15は、環境の変化の出力を、信号待ちなどで車が止まっている状態、低速で走行している状態(安全が担保されている状況)のときに行ってもよい。また、故障検出器再構成器12は、再配置を上述の状態の際におこなってもよい。
<実施例3の効果>
様々な走行環境下に応じて、故障検出器120を配置できるので、走行環境に応じた車両制御が可能になる。
<実施例4>
実施例1~3では、ニューロン、つまり、演算器110単位で、故障検出器120を配置していたが、本実施例4では、さらにその中の演算単位機器に対し、故障検出器120を配置するかを決定する。この演算単位機器には、後述のように積算器111などが含まれる。CNNでは1ニューロン(演算器110)の演算構成の一例として、図4Aのような構成を取ることが知られている。つまり、演算部11を構成する各演算器110が、積算器111、累積加算器112、ビットシフト(丸め)113、バイアス係数加算器114、活性化関数演算器(ReLU演算器)115などの演算単位機器を有する。ここで、このような構成では、ニューロンごとに重みとバイアス係数の値が異なっていることが一般的である。このため、重み、バイアス係数の値をもとに、ニューロン(演算器110)ごとの影響度を算出する他、ニューロン内の演算単位機器ごとに影響度を算出することも可能である。本実施例では、演算単位機器ごとに影響度を算出し、例えば図4Bのように、影響度の高い演算器110に故障検出器120を配置することで、回路オーバヘッドをさらに抑制できる。このための処理を、以下説明する。
Further, when the environment determiner 15 detects that the environment has changed according to the input condition 5, it outputs a notification to that effect to the failure detector reconfigurator 12. Then, the fault detector reconfigurator 12 refers to the fault detector arrangement information 1021 in the fault detector arrangement storage section 102 and rearranges the fault detectors 120 in the calculation section 11 . For this reason, it is desirable that the arithmetic device 1 be a reconfigurable device such as an FPGA. Note that the environment determiner 15 may output changes in the environment when the car is stopped, such as waiting at a traffic light, or when the car is running at a low speed (a situation where safety is ensured). Further, the fault detector reconfigurator 12 may perform the relocation in the above-mentioned state.
<Effects of Example 3>
Since the failure detector 120 can be arranged according to various driving environments, it is possible to control the vehicle according to the driving environment.
<Example 4>
In Examples 1 to 3, the fault detector 120 was placed in each neuron, that is, in each calculation unit 110, but in this Example 4, the failure detector 120 is further placed in each calculation unit device. Decide what to do. This calculation unit device includes an integrator 111 and the like as described later. In CNN, as an example of the calculation configuration of one neuron (computation unit 110), it is known that the configuration shown in FIG. 4A is adopted. In other words, each computing unit 110 constituting the computing unit 11 performs operations such as an integrator 111, a cumulative adder 112, a bit shift (rounding) 113, a bias coefficient adder 114, and an activation function computing unit (ReLU computing unit) 115. Has unit equipment. Here, in such a configuration, the values of weights and bias coefficients are generally different for each neuron. Therefore, in addition to calculating the degree of influence for each neuron (calculating unit 110) based on the values of the weights and bias coefficients, it is also possible to calculate the degree of influence for each calculation unit device within the neuron. In this embodiment, circuit overhead can be further suppressed by calculating the degree of influence for each calculation unit device and arranging the failure detector 120 in the arithmetic unit 110 with a high degree of influence, for example, as shown in FIG. 4B. The processing for this will be explained below.

本実施例の構成は、実施例1~3のいずれかもしくはその組合せで実現できる。ここでは、実施例1の構成、つまり、図1Dの構成を例で説明する。但し、故障検出器配置情報1021は、図4Eに示す故障検出器配置情報1021-3を用いる。ここで、図4Eに示す故障検出器配置情報1021-3は、演算装置1を構成する各演算器の演算単位ごとに、影響度を記憶している。そして、上述した処理により、故障検出器配置記憶部102に記憶された故障検出器配置情報1021-3に基づいて、故障検出器配置器101が故障検出器120の配置を決定する。 The configuration of this example can be realized by any one of Examples 1 to 3 or a combination thereof. Here, the configuration of Example 1, that is, the configuration of FIG. 1D will be described as an example. However, the fault detector arrangement information 1021 uses the fault detector arrangement information 1021-3 shown in FIG. 4E. Here, the failure detector arrangement information 1021-3 shown in FIG. 4E stores the degree of influence for each calculation unit of each calculation unit constituting the calculation device 1. Then, through the process described above, the fault detector locator 101 determines the arrangement of the fault detectors 120 based on the fault detector arrangement information 1021-3 stored in the fault detector arrangement storage section 102.

以上で、本実施例の故障検出器120の配置を決定する処理の説明を終了する。続いて、演算単位機器における故障が検知した場合の対応について、説明する。 This concludes the description of the process for determining the placement of the failure detector 120 of this embodiment. Next, a description will be given of what to do when a failure in a calculation unit device is detected.

まず、図4Bに示すように、故障検出器配置情報1021-3に基づいて、演算単位機器に対する故障検出器120が配置されているとする。このうち、左上の演算器110-1(No.1)は、図4Eに示すように積算器1および積算器Fの影響度が閾値より大きいため、これらに、故障検出器120が配置されている。この演算器110-1の拡大図を、図4Cに示す。 First, as shown in FIG. 4B, it is assumed that the failure detector 120 for the calculation unit device is placed based on the failure detector placement information 1021-3. Among these, the upper left arithmetic unit 110-1 (No. 1) has a failure detector 120 arranged thereon because the degree of influence of integrator 1 and integrator F is greater than the threshold as shown in FIG. 4E. There is. An enlarged view of this arithmetic unit 110-1 is shown in FIG. 4C.

ここで、故障検出器配置器101は、積算器No.1の故障検出器120から積算器1が故障したことを通知される。次に、故障検出器配置器101は、故障検出器配置情報1021-3を用いて、故障検出器120が配置されていない積算器を特定する。そして、故障検出器配置器101は、そのうち、影響度が最小のものなど所定の条件の積算器を特定する。これは、影響度が小さいものほど、故障した演算単位機器である積算器1と入れ替えても、その影響が小さいと判断できるためである。 Here, the failure detector locator 101 is connected to the integrator No. 1 is notified from the failure detector 120 that the integrator 1 has failed. Next, the fault detector locator 101 uses the fault detector arrangement information 1021-3 to identify an integrator in which a fault detector 120 is not arranged. Then, the failure detector placement unit 101 identifies an integrator that meets a predetermined condition, such as an integrator that has the least influence. This is because it can be determined that the smaller the degree of influence is, the smaller the influence will be even if the integrator 1, which is a failed arithmetic unit device, is replaced.

この結果、本例では、故障検出器配置器101は、積算器2を特定したとする。そして、故障検出器配置器101は、演算器110に対して、積算器1と積算器2の機能を入れ替え、積算器2に対し、故障検出器120を配置する指示を出力する。この結果、演算器110-1は、図4Dに示すように構成される。このため、本実施例でも、演算装置1は、FPGA等の再構成可能なデバイスであることが望ましい。 As a result, in this example, it is assumed that the failure detector locator 101 has identified the integrator 2. Then, the fault detector placement unit 101 outputs an instruction to the arithmetic unit 110 to exchange the functions of the integrator 1 and the integrator 2, and to arrange the fault detector 120 to the integrator 2. As a result, the arithmetic unit 110-1 is configured as shown in FIG. 4D. For this reason, also in this embodiment, it is desirable that the arithmetic device 1 be a reconfigurable device such as an FPGA.

なお、故障検出器配置器101は、まず、故障が検出されるごとに、積算器1と積算器2の機能を入れ替え、代替処理を実行させる。そして、故障検出器配置器101が、この代替処理が一定回数以上である場合に、故障検出器120を配置する指示を出力する。さらに、故障検出器配置器101は、代替処理が一定回数以上である場合に、警告情報を、車載端末など外部装置に出力することが望ましい。 Note that the failure detector placement device 101 first exchanges the functions of the integrator 1 and the integrator 2 every time a failure is detected, and executes an alternative process. Then, the failure detector placement device 101 outputs an instruction to place the failure detector 120 when this alternative processing is performed a certain number of times or more. Further, it is preferable that the failure detector placement device 101 outputs warning information to an external device such as an in-vehicle terminal when alternative processing is performed a certain number of times or more.

さらに、機能を入れ替える演算単位機器を、隣接する機器など所定条件を満たすものから故障検出器配置器101が選択することが望ましい。 Further, it is preferable that the fault detector placement unit 101 selects the calculation unit device whose function is to be replaced from among devices that satisfy a predetermined condition, such as adjacent devices.

お、この処理は、実施例1~3でも同様に処理可能である。つまり、故障が検出された演算器の処理を、他の演算器に入れ替えて処理させることも可能である。
<実施例4の効果>
演算単位機器での配置を行うことで、よりきめ細かく演算器に対する故障検出器の配置が可能となる。また、故障を検知しても、直接的に縮退モードや停止モードになることを抑止でき、しばらくは車両制御のような安全にシステムの動作を継続することが出来る
<実施例5>
次に、並列配置される各演算器110を構成する演算単位機器の種類ごとに、共通して、故障検出器120を配置する実施例5について、説明する。
Note that this process can be performed in the same manner in Examples 1 to 3. In other words, it is also possible to replace the processing of the arithmetic unit in which a failure has been detected with another arithmetic unit.
<Effects of Example 4>
By arranging fault detectors in arithmetic unit devices, it is possible to more precisely arrange failure detectors for arithmetic units. Furthermore, even if a failure is detected, it is possible to prevent the system from directly entering degenerate mode or stop mode, and the system can safely continue to operate, such as vehicle control, for a while (Example 5)
Next, a fifth embodiment will be described in which a failure detector 120 is commonly arranged for each type of processing unit device that constitutes each processing unit 110 arranged in parallel.

演算装置1では、回路リソースの制約により、ニューロン(演算器110)それぞれの演算をデバイスに実装出来ない場合がある。例えば、図5Aのようにニューロンが並んだ層が続いているネットワークにおいて、以下の構成を有する。つまり、1ニューロン(演算器110)の演算構成は積算器111、累積加算器112、丸め演算器であるビットシフト(丸め)113、バイアス係数加算器114、活性化関数演算器(ReLU演算器)115などから構成される。この場合、ニューロンごとに入力データの組み合わせと、重みとバイアス係数の値が異なる。このような演算装置1においては、枠線内のK個の演算器110を演算部11に実装し、演算が終わったら次のK個の演算部11の重みに切り替えて演算を行う。このような場合は、同じ演算器をパラメータだけを切り替えて使いまわし続けるので、重みやバイアス係数による演算結果への影響度では故障検出器の配置を判断できない。 In the arithmetic device 1, the operations of each neuron (arithmetic unit 110) may not be implemented in the device due to circuit resource constraints. For example, a network having successive layers in which neurons are arranged as shown in FIG. 5A has the following configuration. In other words, the calculation configuration of one neuron (operation unit 110) is an integrator 111, an accumulation adder 112, a bit shift (rounding) 113 which is a rounding operator, a bias coefficient adder 114, and an activation function operator (ReLU operator). 115, etc. In this case, the combination of input data and the values of weights and bias coefficients differ for each neuron. In such an arithmetic device 1, the K arithmetic units 110 within the frame are mounted in the arithmetic unit 11, and when the calculation is completed, the weight is switched to the next K arithmetic units 11 and the calculation is performed. In such a case, the same arithmetic unit is continued to be used by changing only the parameters, so the placement of the failure detector cannot be determined based on the influence of weights and bias coefficients on the arithmetic results.

一方で、アルゴリズム上の特性上、故障に対する影響度の高い演算単位機器の種類で定義できる。例えば、図5Bの累積加算器112は故障の影響が累積するため、感度の高い部分である。また、活性化関数演算器(ReLU演算器)115ではマイナスの値を0、それ以外をそのまま出力するものなので、符号ビットの感度、つまり、影響度は比較的高いと言える。そこで、本実施例では、これら予め演算単位機器に対して、故障検出器120を配置する構成とする。なお、本実施例の構成は、実施例1~4のいずれかもしくはその組合せで実現できる。ここでは、実施例1の構成、つまり、図1Dの構成を例で説明する。 On the other hand, due to the characteristics of the algorithm, it can be defined by the type of processing unit device that has a high degree of influence on failure. For example, the cumulative adder 112 of FIG. 5B is a sensitive part because the effects of failures accumulate. Furthermore, since the activation function calculator (ReLU calculator) 115 outputs negative values as 0 and outputs other values as is, it can be said that the sensitivity of the sign bit, that is, the degree of influence, is relatively high. Therefore, in this embodiment, the failure detector 120 is arranged in advance for these calculation unit devices. Note that the configuration of this example can be realized by any one of Examples 1 to 4 or a combination thereof. Here, the configuration of Example 1, that is, the configuration of FIG. 1D will be described as an example.

このために、故障検出器配置器101は、予め記憶された演算器110の構成情報を用いる。この構成情報は、演算単位機器ごとに、配置の有無を定めている。このため、故障検出器配置器101から配置を行う演算単位機器を特定し、これらに対して故障検出器120を配置すると決定する。ここで、故障検出器配置器101は、同種の演算単位機器で共用する故障検出器120を配置するよう決定してもよい。つまり、図5Bに示すように、複数の累積加算器112で共用する故障検出器120を配置する。このように、共用の故障検出器120の配置は、実施例1~4でも実行してもよい。 For this purpose, the fault detector locator 101 uses configuration information of the arithmetic unit 110 that is stored in advance. This configuration information determines the presence or absence of placement for each calculation unit device. For this reason, the calculation unit devices to be placed are identified from the failure detector placement device 101, and it is determined that the failure detectors 120 are to be placed for these devices. Here, the fault detector placement device 101 may decide to arrange the fault detector 120 that is shared by the same type of unit of processing devices. That is, as shown in FIG. 5B, a fault detector 120 shared by a plurality of cumulative adders 112 is arranged. In this way, the arrangement of the shared fault detector 120 may also be implemented in the first to fourth embodiments.

以上のように、本実施例では、例えば累積加算器112や図示しないRound、 Bias加算器などの符号ビットのような予め定められた演算単位機器に、故障検出器120を配置する。
<実施例5の効果>
本実施例によれば、回路リソースが比較的小さな演算装置デバイスにおいても、効率的に故障検出器120を配置できる。
<実施例1~5の組み合わせ>
以上で、実施例1~5の説明を終了する。なお、各実施例の処理は、それぞれを単独で実行してもよいし、そのうち少なくともその2つを組み合わせて実現してもよい。
<実施例1~5の応用例>
次に、実施例1~5の故障検出器120の配置に関する応用例を、図6を用いて説明する。なお、本例では、演算装置1を車両制御装置、いわゆる車載ECUに適用した例で説明するが、実施例1~5も同様に車載制御装置に適用することができる。本応用例では、車両3000での制御結果を学習し、この結果を設計、製造部門での活動にフィードバックする。以下その処理を、実施例1の構成、つまり、図1Dの構成を例で説明する。但し、本応用例は、実施例1~5のいずれかもしくはその組合せでも実現できる。
As described above, in this embodiment, the failure detector 120 is placed in a predetermined unit of operation, such as a sign bit of the cumulative adder 112 or a Round or Bias adder (not shown).
<Effects of Example 5>
According to this embodiment, the failure detector 120 can be efficiently arranged even in an arithmetic unit device with relatively small circuit resources.
<Combination of Examples 1 to 5>
This concludes the description of Examples 1 to 5. Note that the processing in each embodiment may be executed independently, or may be realized by combining at least two of them.
<Application examples of Examples 1 to 5>
Next, an application example regarding the arrangement of the failure detector 120 in Examples 1 to 5 will be described using FIG. 6. In this example, an example will be described in which the arithmetic device 1 is applied to a vehicle control device, so-called a vehicle-mounted ECU, but Examples 1 to 5 can be similarly applied to a vehicle-mounted control device. In this application example, control results in the vehicle 3000 are learned, and these results are fed back to activities in the design and manufacturing departments. The process will be described below using the configuration of the first embodiment, that is, the configuration of FIG. 1D, as an example. However, this application example can also be realized by any one of Examples 1 to 5 or a combination thereof.

まず、図6において、車両3000が、演算装置1で実現可能な車両制御装置1A-1と通信装置3001を有する。そして、これらは互いに通信路を介して接続されている。また、車両制御装置1A-1は、図1Dの構成を有しているものとする。 First, in FIG. 6, a vehicle 3000 includes a vehicle control device 1A-1 and a communication device 3001 that can be realized by the computing device 1. These devices are connected to each other via a communication path. Further, it is assumed that the vehicle control device 1A-1 has the configuration shown in FIG. 1D.

ここで、車両制御装置1A-1の故障検出器配置器101は、各実施例の処理を行う。さらに、故障検出器配置器101は、車両制御装置1A-1の処理結果や制御結果を用いて、図1FのステップS1~S4のうち、少なくとも1つをその順序に従って行う。そして、故障検出器配置器101は、自身の処理結果を、通信装置3001を介して、設計・製造部門で利用されるサーバ装置1000に送信する。 Here, the failure detector placement device 101 of the vehicle control device 1A-1 performs the processing of each embodiment. Further, the failure detector placement device 101 uses the processing results and control results of the vehicle control device 1A-1 to perform at least one of steps S1 to S4 in FIG. 1F in accordance with the order. Then, the failure detector placement device 101 transmits its own processing results to the server device 1000 used in the design/manufacturing department via the communication device 3001.

ここで、サーバ装置1000は、いわゆるコンピュータで実現され、プログラムに従って、CPUの如き処理装置がその処理を実行する。そして、サーバ装置1000は、故障検出器配置器101の処理結果を用いて、図1FのステップS1~S4の残りの処理を行い、この結果をファイルシステム4000に格納する。なお、故障検出器配置器101がステップS1~S4を実行する場合、サーバ装置1000は、その結果をファイルシステム4000に格納する。なお、ファイルシステム4000は、情報を格納できればよく、サーバ装置1000の内部に設けてもよいし、外部に設けてもよい。そして、この結果を反映して、設計や製造を行い、車両制御装置1A-2を製造する。 Here, the server device 1000 is realized by a so-called computer, and a processing device such as a CPU executes the processing according to a program. Then, the server device 1000 uses the processing results of the failure detector placement device 101 to perform the remaining processing of steps S1 to S4 in FIG. 1F, and stores the results in the file system 4000. Note that when the failure detector placement device 101 executes steps S1 to S4, the server device 1000 stores the results in the file system 4000. Note that the file system 4000 only needs to be able to store information, and may be provided inside the server device 1000 or outside. Then, the vehicle control device 1A-2 is manufactured by reflecting this result in designing and manufacturing.

このため、実際の制御の結果を反映した、より実態に即した故障検出器120の配置を実現可能となる。 Therefore, it is possible to realize a more realistic arrangement of the failure detectors 120 that reflects the results of actual control.

1…演算装置、11…演算部、12…故障検出器再構成器、13…故障検出器配置スケジューラ、14…故障検出器配置計画部、15…環境判定器、102…故障検出器配置記憶部、110…演算器、111…積算器、112…累積加算器、113…ビットシフト(丸め)、114…バイアス係数加算器、115…活性化関数演算器(ReLU演算器)、120…故障検出器、121…テスト信号生成回路、122…セレクタ、123…比較器、130…入力、140…出力、150…テスト信号、160…正常/異常信号、170…デバイスに実装可能な演算器の範囲、2…画像データ、3…認識結果、4…正常/異常 DESCRIPTION OF SYMBOLS 1... Arithmetic device, 11... Arithmetic unit, 12... Fault detector reconfigurator, 13... Fault detector placement scheduler, 14... Fault detector placement planning unit, 15... Environment determiner, 102... Fault detector placement storage unit , 110... Arithmetic unit, 111... Accumulator, 112... Cumulative adder, 113... Bit shift (rounding), 114... Bias coefficient adder, 115... Activation function operator (ReLU operator), 120... Fault detector , 121... Test signal generation circuit, 122... Selector, 123... Comparator, 130... Input, 140... Output, 150... Test signal, 160... Normal/abnormal signal, 170... Range of arithmetic unit that can be implemented in the device, 2 ...Image data, 3...Recognition result, 4...Normal/Abnormal

Claims (9)

入力データに対して、認識処理を実行する演算装置において、
それぞれが入力に対する演算を実行し、当該演算の結果を出力することで、前記認識処理を実現する複数の演算器と、
前記複数の演算器の少なくとも1つに配置され、当該演算器の故障を検出する故障検出器とを有し、
前記故障検出器は、前記複数の演算器のうち、当該演算器の演算結果による前記認識処理に対する影響の程度を示す影響度に応じて定められる演算器に配置され、
前記影響度は、前記演算器の演算結果が前記認識処理の認識結果に与える影響を示し、前記演算器の故障およびビット反転のうち少なくとも一方が生じた場合に生じる前記認識処理の結果の認識精度に応じて定められる、ことを特徴する演算装置。
In a computing device that performs recognition processing on input data,
a plurality of arithmetic units each performing an operation on an input and outputting a result of the operation to realize the recognition process ;
a failure detector disposed in at least one of the plurality of computing units to detect a failure of the computing unit;
The failure detector is placed in a computing unit among the plurality of computing units, which is determined according to a degree of influence indicating the degree of influence on the recognition processing by the computing result of the computing unit,
The degree of influence indicates the influence that the calculation result of the calculation unit has on the recognition result of the recognition process, and the recognition accuracy of the result of the recognition process that occurs when at least one of a failure of the calculation unit and a bit inversion occurs. An arithmetic device characterized by :
画像データである入力データに対して、認識処理を実行し、車両の制御を行う制御信号を出力する演算装置において、
それぞれが入力に対する演算を実行し、当該演算の結果を出力することで、前記認識処理を実現する複数の演算器と、
前記複数の演算器の少なくとも1つに配置され、当該演算器の故障を検出する故障検出器と、
前記画像データの撮影の撮影環境を判定する環境判定器と、
前記撮影環境ごとに、前記故障検出器の配置の有無を記憶する故障検出器配置記憶部と、を有し、
前記故障検出器は、前記複数の演算器のうち、当該演算器の演算結果による前記認識処理に対する影響の程度を示す影響度に応じて定められる演算器に配置され、
前記影響度は、前記演算器の演算結果が、前記認識処理の結果に応じた制御に与える影響により定められ、
前記故障検出器は、前記故障検出器配置記憶部を用いて、前記環境判定器により判定された撮影環境に応じて、配置されることを特徴とする演算装置。
In a calculation device that performs recognition processing on input data that is image data and outputs a control signal that controls a vehicle ,
a plurality of arithmetic units each performing an operation on an input and outputting a result of the operation to realize the recognition process;
a failure detector disposed in at least one of the plurality of computing units and detecting a failure of the computing unit;
an environment determiner that determines a photographing environment for photographing the image data;
a failure detector placement storage unit that stores presence/absence of placement of the failure detector for each of the photographing environments;
The failure detector is arranged in a computing unit among the plurality of computing units, which is determined according to a degree of influence indicating the degree of influence on the recognition processing by the computing result of the computing unit,
The degree of influence is determined by the influence that the calculation result of the arithmetic unit has on the control according to the result of the recognition process,
The arithmetic device is characterized in that the failure detector is arranged according to the photographing environment determined by the environment determination device using the failure detector arrangement storage unit.
請求項1ないしのいずれかに記載の演算装置において、
予め定められた条件に従って、動的に、前記故障検出器の配置される演算器が変更されることを特徴とする演算装置。
The arithmetic device according to any one of claims 1 to 2 ,
An arithmetic device characterized in that an arithmetic unit in which the failure detector is arranged is dynamically changed according to predetermined conditions.
請求項に記載の演算装置において、
周期的に前記故障検出器の配置される演算器が変更されることを特徴とする演算装置。
The arithmetic device according to claim 3 ,
A calculation device characterized in that a calculation unit in which the failure detector is arranged is periodically changed.
請求項に記載の演算装置において、
前記故障検出器が配置された演算器と、前記故障検出器が配置されていない演算器の機能を入れ替えることを特徴とする演算装置。
The arithmetic device according to claim 3 ,
An arithmetic device characterized in that functions of an arithmetic unit in which the fault detector is arranged and an arithmetic unit in which the fault detector is not arranged are exchanged.
請求項に記載の演算装置において、
前記故障検出器が、当該故障検出器が配置された演算器の故障を検出した場合に、当該故障が検出された演算器と、前記故障検出器が配置されていない演算器の機能を入れ替えることを特徴とする演算装置。
The arithmetic device according to claim 5 ,
When the failure detector detects a failure in an arithmetic unit in which the failure detector is arranged, the functions of the arithmetic unit in which the failure has been detected and the arithmetic unit in which the failure detector is not arranged are swapped. A computing device characterized by:
請求項に記載の演算装置において、
当該演算装置は、画像データを入力し、車両の制御を行う制御信号を出力する演算装置であって、前記機能が入れ替えられた演算器の数が予め定められた閾値を超える場合、前記車両への制御を終了することを特徴とする演算装置。
The arithmetic device according to claim 6 ,
The computing device is a computing device that inputs image data and outputs a control signal for controlling the vehicle, and when the number of computing units whose functions have been replaced exceeds a predetermined threshold, the computing device inputs image data and outputs a control signal to control the vehicle. An arithmetic device characterized in that it terminates control of.
画像データに基づいて、車両を制御する制御信号を出力する車両制御装置において、
それぞれが前記画像データに基づく入力に対する演算を実行することで、前記制御信号の生成を実現する複数の演算器と、
前記複数の演算器の少なくとも1つに配置され、当該演算器の故障を検出する故障検出器とを有し、
前記故障検出器は、前記複数の演算器のうち、前記制御信号による前記車両の緊急制御の起因となる演算器に配置され、
前記故障検出器が、当該故障検出器が配置された演算器の故障を検出した場合に、当該故障が検出された演算器と、前記故障検出器が配置されていない演算器の機能を入れ替えることを特徴とする車両制御装置。
In a vehicle control device that outputs a control signal for controlling a vehicle based on image data,
a plurality of arithmetic units, each of which realizes generation of the control signal by executing an arithmetic operation on an input based on the image data;
a failure detector disposed in at least one of the plurality of computing units to detect a failure of the computing unit;
The failure detector is disposed in a computing unit that causes emergency control of the vehicle based on the control signal, among the plurality of computing units,
When the failure detector detects a failure in an arithmetic unit in which the failure detector is arranged, the functions of the arithmetic unit in which the failure has been detected and the arithmetic unit in which the failure detector is not arranged are exchanged. A vehicle control device characterized by :
請求項に記載の車両制御装置において、
前記機能が入れ替えられた演算器の数が予め定められた閾値を超える場合、前記車両への制御を終了することを特徴とする車両制御装置。
The vehicle control device according to claim 8 ,
A vehicle control device characterized in that when the number of computing units whose functions have been replaced exceeds a predetermined threshold, control over the vehicle is terminated.
JP2020130212A 2020-07-31 2020-07-31 Computing device and vehicle control device Active JP7449193B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2020130212A JP7449193B2 (en) 2020-07-31 2020-07-31 Computing device and vehicle control device
DE112021003053.1T DE112021003053T5 (en) 2020-07-31 2021-06-28 COMPUTING DEVICE AND VEHICLE CONTROL DEVICE
PCT/JP2021/024398 WO2022024634A1 (en) 2020-07-31 2021-06-28 Computing device and vehicle control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020130212A JP7449193B2 (en) 2020-07-31 2020-07-31 Computing device and vehicle control device

Publications (2)

Publication Number Publication Date
JP2022026647A JP2022026647A (en) 2022-02-10
JP7449193B2 true JP7449193B2 (en) 2024-03-13

Family

ID=80035458

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020130212A Active JP7449193B2 (en) 2020-07-31 2020-07-31 Computing device and vehicle control device

Country Status (3)

Country Link
JP (1) JP7449193B2 (en)
DE (1) DE112021003053T5 (en)
WO (1) WO2022024634A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009001124A (en) 2007-06-20 2009-01-08 Toyota Motor Corp Power source device for vehicle
JP2013193612A (en) 2012-03-21 2013-09-30 Fuji Heavy Ind Ltd Control device for vehicle
WO2019225257A1 (en) 2018-05-23 2019-11-28 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ Abnormality detection device, abnormality detection method, and program

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS567154A (en) * 1979-06-27 1981-01-24 Hitachi Ltd Double system
JP2017092757A (en) 2015-11-12 2017-05-25 株式会社リコー Image processing system and image processing method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009001124A (en) 2007-06-20 2009-01-08 Toyota Motor Corp Power source device for vehicle
JP2013193612A (en) 2012-03-21 2013-09-30 Fuji Heavy Ind Ltd Control device for vehicle
WO2019225257A1 (en) 2018-05-23 2019-11-28 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ Abnormality detection device, abnormality detection method, and program

Also Published As

Publication number Publication date
JP2022026647A (en) 2022-02-10
WO2022024634A1 (en) 2022-02-03
DE112021003053T5 (en) 2023-07-20

Similar Documents

Publication Publication Date Title
EP3710328B1 (en) System and method for handling errors in a vehicle neural network processor
US11144027B2 (en) Functional safety controls based on soft error information
EP3997528B1 (en) System, device and method for testing autonomous vehicles
Aslansefat et al. Toward improving confidence in autonomous vehicle software: A study on traffic sign recognition systems
CN112585550A (en) Driving function monitoring based on neural network
US10866590B2 (en) Computer-assisted or autonomous driving safety-related decision making system and apparatus
KR20180082886A (en) Processor for preventing accident of automatic driving system and method of the same
JP7449193B2 (en) Computing device and vehicle control device
Suk et al. Rationale-aware autonomous driving policy utilizing safety force field implemented on CARLA simulator
CN116384755A (en) Method and device for determining cooperative driving safety of vehicle Lu Yun, vehicle and storage medium
Wang et al. Prediction-based reachability analysis for collision risk assessment on highways
JP7491746B2 (en) Distributed Systems
US20220084332A1 (en) Systems and methods for monitoring specifications over simulation and test data
US20230027577A1 (en) Safe Path Planning Method for Mechatronic Systems
Bansal et al. Synergistic Redundancy: Towards Verifiable Safety for Autonomous Vehicles
US20240185026A1 (en) Defect detection using multi-modality sensor data
WO2023015919A1 (en) Ai computing verification method and apparatus
CN117215908A (en) Method for performing data processing
EP3757904A1 (en) Device and method for training a neural network
Liggesmeyer et al. Evaluating Adaptation Behavior of Adaptive Cruise Control (ACC) in Autonomous Vehicles
KR20240013877A (en) Error-Proof Inference Computation for Neural Networks
CN114347032A (en) Control method and system for composite AGV robot
US8977529B2 (en) Method and apparatus for providing on-board diagnostics
CN118636919A (en) Risk policy decision method, apparatus, device, storage medium and program product
WO2020025425A1 (en) System and method for data analytics and verification

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240205

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: 20240227

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240301

R150 Certificate of patent or registration of utility model

Ref document number: 7449193

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150