JP7449193B2 - Computing device and vehicle control device - Google Patents
Computing device and vehicle control device Download PDFInfo
- 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
Links
- 238000004364 calculation method Methods 0.000 claims description 53
- 238000012545 processing Methods 0.000 claims description 44
- 230000006870 function Effects 0.000 claims description 29
- 238000000034 method Methods 0.000 claims description 22
- 238000003860 storage Methods 0.000 claims description 22
- 230000008569 process Effects 0.000 claims description 17
- 238000010586 diagram Methods 0.000 description 17
- 230000000694 effects Effects 0.000 description 15
- 230000010365 information processing Effects 0.000 description 14
- 238000013527 convolutional neural network Methods 0.000 description 13
- 210000002569 neuron Anatomy 0.000 description 13
- 238000001514 detection method Methods 0.000 description 11
- 230000008859 change Effects 0.000 description 10
- 238000012360 testing method Methods 0.000 description 10
- 238000013461 design Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 6
- 230000004913 activation Effects 0.000 description 5
- 230000001186 cumulative effect Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 230000006866 deterioration Effects 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000035945 sensitivity Effects 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 2
- 230000008707 rearrangement Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0706—Error 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/0736—Error 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/0739—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning 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
しかしながら、複数の演算器で情報処理を行う場合、例えば、大規模多並列な積和演算器が必要な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.
以下、図面を参照して本発明の実施形態を説明する。各実施例は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略および簡略化がなされている。本発明は、他の種々の形態でも実施することが可能である。特に限定しない限り、各構成要素は単数でも複数でも構わない。 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
また、演算器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
ここで、本実施例においては、故障検出器120が配置される演算器110と、配置されない演算器110が混在している構成である。以下、まず、故障検出器の配置有無が混在する理由について以下で説明する。なお、本実施例では、少なくとも1つの演算器110に、故障検出器120が配置されていることになる。
Here, in this embodiment, the configuration is such that there are
一般的なランダムロジックにおける演算器であれば、回路素子や配線が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
また、学習データセットを用いたトレーニングにより決まる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
このことを実現するために、本実施例では、図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
ここで、図1Eに、故障検出器配置情報1021の一例を示す。故障検出器配置情報1021は、演算器を識別する識別情報である「演算器」、当該演算器の演算結果が認識処理に与える影響を示す「影響度」および故障検出器120の「配置有無」を有する。ここで、「演算器」は番号以外の名称など他の識別情報を用いてもよい。
Here, FIG. 1E shows an example of the failure
ここで、影響度とは、予め定められたアルゴリズムにより算出され、演算器の演算結果による演算装置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
より具体的には、影響度は、情報処理の結果である認識結果の変化具合である劣化具合(認識精度)や認識結果が車両の制御結果への影響に応じて定められるものを含む。以上のように、影響度は、演算器等の演算算果による情報処理に対する影響の程度を示している。 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
さらに、「配置有無」を、複数の要件を組み合わせて判断してもよい。例えば、認識結果の変化具合や認識結果が車両の制御結果への影響度それぞれの積や和などに基づいて、判断してもよい。また、認識結果の変化具合や認識結果が車両の制御結果への影響度の双方を用いて、新たに影響度を算出してもよい。またさらに、認識結果の変化具合や認識結果が車両の制御結果への影響度の双方が閾値を超える場合に、配置と判断するなど、それぞれを用いてもよい。 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
まず、ステップ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
なお、この場合、劣化具合として、演算器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
また、認識の精度という観点だけでなく、故障による認識結果が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
このような本実施例を実際に適用する場合、は高速道路や市街地などの走行場所や、自車速、周辺車両の混雑度などから、どのような誤検知・不検知が制御に与える影響が大きいかの定義を総合的に判断し、基準を作成することとなる。
<実施例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
まず、図2Aは、本実施例の演算装置1の構成を示す。図2Aに示すように、本実施例の演算装置1は、演算部11、故障検出器再構成器12、故障検出器配置スケジューラ13および故障検出器配置計画部14を有する。そして、演算部11は、複数の演算器110を有する。ここで、故障検出器再構成器12、故障検出器配置スケジューラ13の機能は、プログラムに従った処理であるが、ハードウェアとしてその機能を実現してもよい。
First, FIG. 2A shows the configuration of the
ここで、故障検出器配置スケジューラ13が、配置入替トリガ6を受け付けると、故障検出器配置計画部14に記憶された故障検出器配置計画情報に従って、再配置(構成)を実行するように、故障検出器再構成器12に指示を出力する。このため、故障検出器再構成器12が、故障検出器配置計画情報に従って、故障検出器120の再配置を実行する。なお、図2Aには、図示しないが、実施例1と同様に、本実施例も故障検出器配置器101および故障検出器配置記憶部102を有してもよい。この場合、故障検出器配置器101および故障検出器配置記憶部102については、それぞれ故障検出器再構成器12および故障検出器配置計画部14がその機能を有してもよい。以下、本実施例では、故障検出器配置記憶部102の機能を故障検出器配置計画部14が有しているものとして説明する。
Here, when the fault
以下、本実施例の詳細を説明する。まず、故障検出器配置計画部14には、図2Bに示す故障検出器配置計画情報141が記憶されている。この内容に従って、故障検出器再構成器12が、故障検出器120の再配置を実行する。なお、このために、演算装置1は、FPGA等の再構成可能なデバイスであることが望ましい。
The details of this embodiment will be explained below. First, the fault detector
ここで、この故障検出器配置計画情報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
以下、この入れ替え、つまり、故障検出器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
ここで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
故障検出器配置スケジューラ13は、このような故障検出器の配置の入れ替え、つまり、配置変換を、配置入替トリガ6を受けたタイミングごとに繰り返す。これを、x回繰り返すとNo.Mまでの演算器までカバーされることになる。ここで、n*x>Nの関係が成り立つ(xも自然数)。なお、x+1回目の配置変換(一巡)で最初の配置に戻ることになる。このことで、図2Aに示すように「認識結果に影響が小さい演算器 図の時刻では故障検出器の配置無し」「認識結果に影響が小さい演算器 図の時刻では故障検出器の配置有り」「認識結果に影響が大きい演算器 故障検出器 配置対象」が混在することになる。つまり、少なくとも1つの演算器に対して、故障検出器120が配置されており、また、他の演算器のうち、少なくとも1つは故障検出器120が配置されていないことになる。
The fault
また、上記の例では、定数(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
また、この配置を示す故障検出器配置計画情報141については、カウンタや数式ベースでプログラムしておいてもよいし、図2Bに示すようなテーブル等の形式で故障検出器配置計画部14に記憶しておいてもよい。さらに、配置変換のトリガは、上述した通り、信号待ち、エンジン入でもよいし、任意の周期を使ってもよい。
<実施例2の効果>
本実施例によれば、1bit故障の感度など影響度が低い演算器、すなわち故障検出器120が配置されない演算器に対しても、信頼性を担保することができる。
<実施例3>
次に、様々な状況、環境に応じた故障検出器120の配置を行う実施例3について、説明する。車両は、時間帯、場所(道路等)といった様々な走行環境下で走行することが多い。このため、車両に対するADASやADにおいても、その環境にあった制御を行う必要がある。この際、その環境ごとに、感度の高いニューロン、つまり演算器110の影響度は異なることもある。ここで、想定される各環境に対応した、故障検出器120の配置を行おうすると、各演算器とも全体的に影響度の数値が高く感度が高くなり、その差が出にくくなるため、配置が必要となる演算器の数が多くなってしまうとの課題が発生する。つまり、故障検出器120の配置に関するオーバヘッドが生じる。
Further, the fault detector
<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
<Example 3>
Next, a third embodiment will be described in which the
そこで、本実施例では、環境ごとに演算器の影響度を算出し、図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
まず、図3Aは、本実施例の演算装置1の構成を示す。図3Aに示すように、本実施例の演算装置1は、演算部11の他、故障検出器再構成器12、環境判定器15および故障検出器配置記憶部102を有する。故障検出器再構成器12および環境判定器15の機能は、プログラムに従った処理であるが、ハードウェアとしてその機能を実現してもよい。
First, FIG. 3A shows the configuration of the
なお、図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
2 may be provided in an external device of the
ここで、故障検出器配置記憶部102は、実施例1と同様の記憶機能を有するが、環境ごとにその故障検出器配置情報1021を記憶する点で、実施例1と相違する。つまり、本実施例の故障検出器配置記憶部102は、図3Bに示す環境1(高速道路)の故障検出器配置情報1021-1、環境2(市街地)の故障検出器配置情報1021-2…といった各故障検出器配置情報を記憶している。また、図示しないが、故障検出器配置情報1021の環境には、夜間、日中といった時間帯や晴天、雨天といった天候、都市部、郊外といった位置・地域を含めてもよい。
Here, the fault detector
以下、本実施例の処理について、説明する。まず、環境判定器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
また、環境判定器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
<Effects of Example 3>
Since the
<Example 4>
In Examples 1 to 3, the
本実施例の構成は、実施例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
以上で、本実施例の故障検出器120の配置を決定する処理の説明を終了する。続いて、演算単位機器における故障が検知した場合の対応について、説明する。
This concludes the description of the process for determining the placement of the
まず、図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
ここで、故障検出器配置器101は、積算器No.1の故障検出器120から積算器1が故障したことを通知される。次に、故障検出器配置器101は、故障検出器配置情報1021-3を用いて、故障検出器120が配置されていない積算器を特定する。そして、故障検出器配置器101は、そのうち、影響度が最小のものなど所定の条件の積算器を特定する。これは、影響度が小さいものほど、故障した演算単位機器である積算器1と入れ替えても、その影響が小さいと判断できるためである。
Here, the
この結果、本例では、故障検出器配置器101は、積算器2を特定したとする。そして、故障検出器配置器101は、演算器110に対して、積算器1と積算器2の機能を入れ替え、積算器2に対し、故障検出器120を配置する指示を出力する。この結果、演算器110-1は、図4Dに示すように構成される。このため、本実施例でも、演算装置1は、FPGA等の再構成可能なデバイスであることが望ましい。
As a result, in this example, it is assumed that the
なお、故障検出器配置器101は、まず、故障が検出されるごとに、積算器1と積算器2の機能を入れ替え、代替処理を実行させる。そして、故障検出器配置器101が、この代替処理が一定回数以上である場合に、故障検出器120を配置する指示を出力する。さらに、故障検出器配置器101は、代替処理が一定回数以上である場合に、警告情報を、車載端末など外部装置に出力することが望ましい。
Note that the failure
さらに、機能を入れ替える演算単位機器を、隣接する機器など所定条件を満たすものから故障検出器配置器101が選択することが望ましい。
Further, it is preferable that the fault
お、この処理は、実施例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
演算装置1では、回路リソースの制約により、ニューロン(演算器110)それぞれの演算をデバイスに実装出来ない場合がある。例えば、図5Aのようにニューロンが並んだ層が続いているネットワークにおいて、以下の構成を有する。つまり、1ニューロン(演算器110)の演算構成は積算器111、累積加算器112、丸め演算器であるビットシフト(丸め)113、バイアス係数加算器114、活性化関数演算器(ReLU演算器)115などから構成される。この場合、ニューロンごとに入力データの組み合わせと、重みとバイアス係数の値が異なる。このような演算装置1においては、枠線内のK個の演算器110を演算部11に実装し、演算が終わったら次のK個の演算部11の重みに切り替えて演算を行う。このような場合は、同じ演算器をパラメータだけを切り替えて使いまわし続けるので、重みやバイアス係数による演算結果への影響度では故障検出器の配置を判断できない。
In the
一方で、アルゴリズム上の特性上、故障に対する影響度の高い演算単位機器の種類で定義できる。例えば、図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
このために、故障検出器配置器101は、予め記憶された演算器110の構成情報を用いる。この構成情報は、演算単位機器ごとに、配置の有無を定めている。このため、故障検出器配置器101から配置を行う演算単位機器を特定し、これらに対して故障検出器120を配置すると決定する。ここで、故障検出器配置器101は、同種の演算単位機器で共用する故障検出器120を配置するよう決定してもよい。つまり、図5Bに示すように、複数の累積加算器112で共用する故障検出器120を配置する。このように、共用の故障検出器120の配置は、実施例1~4でも実行してもよい。
For this purpose, the
以上のように、本実施例では、例えば累積加算器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
<Effects of Example 5>
According to this embodiment, the
<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
まず、図6において、車両3000が、演算装置1で実現可能な車両制御装置1A-1と通信装置3001を有する。そして、これらは互いに通信路を介して接続されている。また、車両制御装置1A-1は、図1Dの構成を有しているものとする。
First, in FIG. 6, a
ここで、車両制御装置1A-1の故障検出器配置器101は、各実施例の処理を行う。さらに、故障検出器配置器101は、車両制御装置1A-1の処理結果や制御結果を用いて、図1FのステップS1~S4のうち、少なくとも1つをその順序に従って行う。そして、故障検出器配置器101は、自身の処理結果を、通信装置3001を介して、設計・製造部門で利用されるサーバ装置1000に送信する。
Here, the failure
ここで、サーバ装置1000は、いわゆるコンピュータで実現され、プログラムに従って、CPUの如き処理装置がその処理を実行する。そして、サーバ装置1000は、故障検出器配置器101の処理結果を用いて、図1FのステップS1~S4の残りの処理を行い、この結果をファイルシステム4000に格納する。なお、故障検出器配置器101がステップS1~S4を実行する場合、サーバ装置1000は、その結果をファイルシステム4000に格納する。なお、ファイルシステム4000は、情報を格納できればよく、サーバ装置1000の内部に設けてもよいし、外部に設けてもよい。そして、この結果を反映して、設計や製造を行い、車両制御装置1A-2を製造する。
Here, the
このため、実際の制御の結果を反映した、より実態に即した故障検出器120の配置を実現可能となる。
Therefore, it is possible to realize a more realistic arrangement of the
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
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.
予め定められた条件に従って、動的に、前記故障検出器の配置される演算器が変更されることを特徴とする演算装置。 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.
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)
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)
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 |
-
2020
- 2020-07-31 JP JP2020130212A patent/JP7449193B2/en active Active
-
2021
- 2021-06-28 WO PCT/JP2021/024398 patent/WO2022024634A1/en active Application Filing
- 2021-06-28 DE DE112021003053.1T patent/DE112021003053T5/en active Pending
Patent Citations (3)
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 |