JP2017111523A - フェールセーフ演算装置 - Google Patents

フェールセーフ演算装置 Download PDF

Info

Publication number
JP2017111523A
JP2017111523A JP2015243728A JP2015243728A JP2017111523A JP 2017111523 A JP2017111523 A JP 2017111523A JP 2015243728 A JP2015243728 A JP 2015243728A JP 2015243728 A JP2015243728 A JP 2015243728A JP 2017111523 A JP2017111523 A JP 2017111523A
Authority
JP
Japan
Prior art keywords
unit
cpu
reset
data
fail
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015243728A
Other languages
English (en)
Inventor
邦晃 大塚
Kuniaki Otsuka
邦晃 大塚
和貴 森田
Kazuki Morita
和貴 森田
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 Ltd
Original Assignee
Hitachi 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 Ltd filed Critical Hitachi Ltd
Priority to JP2015243728A priority Critical patent/JP2017111523A/ja
Publication of JP2017111523A publication Critical patent/JP2017111523A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Abstract

【課題】本発明では、照合型フェールセーフ演算装置において、CPUのスループットを低下させることなく、高速、安価なフェールセーフ演算装置を提供することを目的とする。【解決手段】上記課題の解決のため、本発明は、演算処理を行うCPUを複数備え、前記複数のCPUの演算結果を照合することによって前記CPUの故障を検知するフェールセーフ演算装置において、前記複数のCPUの間で演算結果を交換するデータ交換部と、前記データ交換部により得られた他CPUの演算結果と自CPUの演算結果を照合し、前記データ照合部による照合によりデータの不一致を検出した場合にリセット要求信号を出力するデータ照合部と、を備えたことを特徴とする。【選択図】 図1

Description

本発明は、CPUを用いたフェールセーフ演算装置に関する。
従来のCPUを用いたフェールセーフ演算装置は、CPUの演算結果をなんらかの手段でチェックすることによって故障を検出し、その際に危険側の動作を行わないように装置を構成する方法が主流となっている。また、故障の検出方法としては、故障検出回路を内蔵した自己診断型のCPUを用いる方式、または、CPUを多重化し、各CPUの動作を比較して比較結果が不一致となった場合に故障を検出する方式のいずれかが使用されている。本発明は、このうち後者の照合型のフェールセーフ演算装置に関する。
また、照合型のフェールセーフ演算装置は、特許文献1に記載されるような、複数のCPUを同期させて動作させ、バス上に現れるデータ全てを比較器にて照合する方式(以下、バス照合方式と呼ぶ)と、複数のCPUが外部に対して出力する演算結果を比較器にて照合する方式(以下、出力照合方式と呼ぶ)の大きく2つの方式に分類される。いずれの方式においても、照合不一致を検出した場合に、比較器によって演算結果の外部出力を停止させる方式である。
特開2009−86939
近年、制御システムの大規模化、制御内容の多様化によりフェールセーフ演算装置に対する高性能化(高速化)の要求が強い。これら要求に対し、上記照合型のフェールセーフ演算装置は、バス照合方式においては、バスのアクセスサイクルで照合を行うため、高速なCPUを導入する場合にスループットの低下を招く課題がある。また、出力照合方式においては、比較器を高速に動作させるために微細な半導体プロセスを用いることが必要となり、結果、コスト高を招く課題がある。
そこで本発明では、上記の照合型フェールセーフ演算装置において、CPUのスループットを低下させることなく、高速、安価なフェールセーフ演算装置を提供することを目的とする。
上記課題の解決のため、本発明は、演算処理を行うCPUを複数備え、前記複数のCPUの演算結果を照合することによって前記CPUの故障を検知するフェールセーフ演算装置において、前記複数のCPUの間で演算結果を交換するデータ交換部と、前記データ交換部により得られた他CPUの演算結果と自CPUの演算結果を照合し、前記データ照合部による照合によりデータの不一致を検出した場合にリセット要求信号を出力するデータ照合部と、を備えたことを特徴とする。
本発明のフェールセーフ演算装置においては、CPU外部に比較器を設けずに、複数のCPU間にてデータ照合を行うことで故障を検出でき、また、故障検出時に演算結果の外部出力を停止できる。そのため、比較器起因の速度制約がなく高速で動作可能であり、かつ高い安全性を維持したフェールセーフ演算装置を実現できる。
本発明の第一実施例の構成図 本発明の第一実施例における、データ照合処理フロー 本発明の第一実施例における、起動時処理フロー 本発明の第一実施例における、記録部の構成図 本発明の第二実施例の構成図 本発明の第三実施例の構成図
以下、図面を用いて本発明の具体的な実施形態を説明する。
本実施形態においては、CPU外部に比較器を設けずに、複数のCPU間にてデータ交換を行い、CPUのソフトウェアにてデータ照合を行い、照合不一致により故障を検出する。ここで、このような構成においては、従来技術と異なり比較器を使用しないため、演算結果の外部出力を停止する手段が新たに必要となる。そこで、本実施形態では、CPUにて照合不一致を検出した際にCPU自身にリセットをかけることで演算結果の外部出力を停止させる。またこの場合、リセットにより演算結果の外部出力を停止させるため、リセット動作が安全性の要となる。そのため、リセット動作を監視する手段を設けたうえ、CPUが自ら定期的にリセットをかけることで、リセット動作の健全性確認を行うことが望ましい。
まず、図1を用いて本実施形態におけるフェールセーフ演算装置の構成を説明する。図1に示したフェールセーフ演算装置は二重系の構成であり、主系(A系)のCPU-A1と従系(B系)のCPU-B(2)から構成される。
さらに、CPU-A(1)内部においては、演算処理を行うデータ演算部-A(12)、データ演算部-A(12)の演算結果(外部出力予定のデータ)のデータ圧縮を行うハッシュ計算部-A(16)、リセット信号を生成するリセット生成部-A(3)、CPU-B(2)内のハッシュ計算部-B(17)の演算結果を格納するデータ交換部-A(8)(CPU-A1内部のメモリ)、ハッシュ計算部-A(16)の演算結果とデータ交換部-A(8)に格納されたハッシュ計算部-B(17)の演算結果を照合するデータ照合部-A(10)、リセット生成部-A(3)に対しリセット動作の健全性確認のためのリセット要求を発行するリセットテスト部-A(18)、CPU-A(1)起動時にリセット信号の識別を行うブートチェック部-A(14)を備える。
同様に、CPU-B(2)内部においても、演算処理を行うデータ演算部-B(13)、データ演算部-B(13)の演算結果(CPU-A(1)の外部出力予定のデータに対応するもの)のデータ圧縮を行うハッシュ計算部-B(17)、リセット信号を生成するリセット生成部-B(4)、CPU-A(1)内のハッシュ計算部-A(16)の演算結果を格納するデータ交換部-B(9)(CPU-B2内部のメモリ)、ハッシュ計算部-B(17)の演算結果とデータ交換部-B(9)に格納されたハッシュ計算部-A(16)の演算結果を照合するデータ照合部-B(11)、リセット生成部-B(4)に対しリセット動作の健全性確認のためのリセット要求を発行するリセットテスト部-B(19)、CPU-B(2)起動時にリセット信号の識別を行うブートチェック部-B(15)を備える。
また、CPU-A(1)、CPU-B(2)外部においては、リセット生成部-A(3)からリセット信号Aが出力されたことを記録する記録部-A(5)と、リセット生成部-B(4)からリセット信号Bが出力されたことを記録する記録部-B(6)と、リセット生成部-A(3)またはリセット生成部-B(4)からリセット信号が出力された場合にCPU-A(1)とCPU-B(2)の双方にリセット信号を出力するリセット制御部(7)を備える。
次に、本発明に基づくフェールセーフ演算装置の動作を説明する。本発明に基づくフェールセーフ演算装置の動作は、故障による誤演算を検出するためのデータ照合部-A(10)及びデータ照合部-B(11)のデータ照合処理と、データ照合にて不一致検出した際のリセット系回路(リセット生成部-A(3)、リセット生成部-B(4)、リセット制御部(7))の動作、および、CPU-A(1)、CPU-B(2)の起動時処理を特徴とする。以下、各動作について説明を行う。
まず、データ照合部-A(10)、データ照合部-B(11)のデータ照合処理について、図2を用いて説明する。データ演算部-A(12)、データ演算部-B(13)が規定の演算処理を終了すると、他系のデータ交換部(CPU-A(1)ならばデータ交換部-B(9)、CPU-B(2)ならばデータ交換部-A(8))に、外部出力予定のデータをハッシュ計算部(CPU-A(1)ならばハッシュ計算部-A(16)、CPU-B(2)ならばハッシュ計算部-B(17))によってデータ圧縮した演算結果を格納する(ステップS21)。その後、データ照合部は他系のデータ交換部にデータ格納を行った後からの時間をカウント開始し(ステップS22)、規定時間Tc[s]内に自系のデータ交換部に他系の演算結果が格納されたか否かををチェックし(ステップS23)、規定時間内に格納されていれば、自系のデータ交換部に格納された他系の演算結果と自系の演算結果とを照合する(ステップS24、S25)。
なお、規定時間Tc[s]は、演算処理の監視を目的に設けたもので、故障発生からシステムが動作停止しなければならない時間Tstop[s]よりも短い時間に設定する。このとき、規定時間Tc[s]内に自系データ交換部に他系の演算結果が格納され、かつ、照合結果が一致であれば正常とし、それ以外を異常とする。
ここで、外部出力予定のデータが大きい、あるいはCPUの演算能力に比べて外部バスが低速な場合、ハッシュ計算部(ハッシュ計算部-A(16)、ハッシュ計算部-B(17))は、例えばCRCコードのようなデータに要約することで交換するデータ量を低減し、必要な規定時間Tc[s]以内にデータ照合を行うことができる。また、外部出力予定のデータが小さい場合、あるいは外部バスが十分に高速な場合は、ハッシュ計算部は入力データをそのまま出力しても良い。
上述のデータ照合処理において、データ照合部-A(10)が異常を検出した場合、データ照合部は自系のリセット生成部(CPU-A(1)ならばリセット生成部-A(3)、CPU-B(2)ならばリセット生成部-B(4))に対しリセット要求を発行し(ステップS26)、動作停止する(ステップS27)。
次に、リセット系回路動作について説明する。リセット生成部-A(3)は、データ照合部-A(10)からリセット要求が発行されると、記録部-A(5)及びリセット制御部(7)に対しリセット信号を出力する。同様に、データ照合部-B(11)が異常を検出した場合、リセット生成部-B(4)は、データ照合部-B(11)からリセット要求が発行されると、記録部-B(6)及びリセット制御部(7)に対しリセット信号を出力する。
そして、リセット制御部(7)は、リセット生成部-A(3)またはリセット生成部-B(4)からリセット信号が入力されると、CPU-A(1)、CPU-B(2)の双方に対しリセット信号を出力し、CPU-A(1)、CPU-B(2)の双方にリセットをかける。
図4は記録部(記録部-A(5)、記録部-B(6))の実施形態の一例を示す。図4に示した記録部はフリップフロップを用いた3ビットカウンタの構成をとり、リセット生成部-A(3)、リセット生成部-B(4)から入力されたリセットパルス数をカウント(図4では、Lowパルスを0〜7までカウント)することでリセット信号が出力されたことの確認を行う。なお、カウント値は電源投入時に電源有効となった後にクリアされ、記録部-A(5)、記録部-B(6)に記録される値は電源投入後からのリセットパルスのカウント値を示すものとする。
異常検出によってCPU-A(1)、CPU-B(2)にリセットがかかると、ブートチェック部-A(14)、ブートチェック部-B(15)は、再起動後、記録部-A(5)、記録部-B(6)に記録されたリセット信号のカウント値を読み取り、後述する起動時処理によって異常検出によるリセットか否かを判断し、異常検出によるリセットの場合は、再起動後に動作停止する。
以上のように、本発明に基づくフェールセーフ演算装置は、リセットによってCPU-A(1)、CPU-B(2)を動作停止させ演算結果の外部出力を停止するため、リセット系回路(リセット生成部-A(3)、リセット生成部-B(4)、リセット制御部(7))の動作が安全性の要となる。具体的には、万一、CPU-A(1)またはCPU-B(2)にて異常検出したときに、リセット系回路動作が故障している場合があると、CPU-A(1)またはCPU-B(2)が動作停止できなくなる可能性がある。したがって、リセット系回路の動作については定期的に健全性確認を行うことが望ましい。
ここで、本発明のリセット系回路については、入力指令に基づきリセット信号を生成する回路であり、CPU内部の演算回路と比較すれば遥かに少ない部品点数で実現でき、リセット系回路が故障する確率は、CPUが故障する確率よりも極めて低いものと考えられる。そのため、リセット系回路の健全性確認については、CPU-A(1)、CPU-B(2)がデータ照合を行う間隔よりも十分長い間隔、たとえば電源投入タイミングで行えば良い。
そのため、リセット系回路動作の健全性確認については、CPU-A(1)、CPU-B(2)のリセットテスト部-A(18)、リセットテスト部-B(19)が、電源投入後のパワーオンリセット時に、リセット生成部-A(3)、リセット生成部-B(4)に対しテスト用のリセット要求を発行し、自らリセットをかけることでリセット系回路動作の健全性確認を行う。また、再起動後に、記録部-A(5)、記録部-B(6)に記録されたリセット信号のカウント値を読み取り、カウント値に基づきテスト用のリセットがかかったか否かを判断する。
このとき、記録部-A(5)、記録部-B(6)に記録されたリセット信号のカウント値は、電源が有効であることを示す信号(PABL信号)の立ち上がりをトリガとしてゼロクリアされているものとする。したがって、CPU-A(1)、CPU-B(2)のパワーオンリセット後においては、記録部-A(5)、記録部-B(6)のカウント値は0を示し、CPU-A(1)、CPU-B(2)からリセットをかけた後は1を示す。
そこで、ブートチェック部-A(14)、ブートチェック部-B(15)は、それぞれ図3に示すフローに従い、起動時処理を行うものとする。まず、起動時、自系の記録部(CPU-A(1)ならば記録部-A(5)、CPU-B(2)ならば記録部-B(6))に記録されたカウント値を読み取る(ステップS32)。このとき、読み取るタイミングは、リセット生成部-A(3)、リセット生成部-B(4)にリセット要求が入力され、記録部-A(5)および記録部-B(6)にカウント値が記録された後とする。そのため、リセット生成部-A(3)、リセット生成部-B(4)にリセット要求が入力されてから記録部-A(5)、記録部-B(6)にカウント値が記録されるまでの回路上の時定数遅れ時間をTd[s]とすると、ブートチェック部-A(14)、ブートチェック部-B(15)は、起動後、Td[s]以上のウェイト時間を設けたうえで(ステップS31)、カウント値を読み取ることとする。
このとき、自系の記録部のカウント値が0であるか否かをチェックし(ステップS33)、0であれば、リセット系回路動作の健全性確認のため、リセットテスト部(CPU-A(1)ならばリセットテスト部-A(18)、CPU-B(2)ならばリセットテスト部-B(19))から自系のリセット生成部(CPU-A(1)ならばリセット生成部-A(3)、CPU-B(2)ならばリセット生成部-B(4))に対し、リセット要求を発行して(ステップS34)、動作を停止する(ステップS35)。また、カウント値が0ではない場合、異常検出によるリセットかリセット系回路動作の健全性確認のためのリセットかを識別する。
ここで、突発的なノイズ等によって、パワーオンリセット後に誤ってリセットがかかることに対処するため、カウント値が3以上となった場合を異常検出によるリセットとして判断する。また、カウント値が1または2の場合は、健全性確認のためのリセットとして判断する。
そのため、カウント値が0ではない場合、カウント値が3以上であるかチェックする(ステップS36)。その結果、カウント値が3未満であれば、正常動作とみなし通常動作へ移行する。また、カウント値が3以上であれば、異常検出によるリセットとみなし動作停止する(ステップS37)。
本実施例では、図5を用いて本発明に基づくフェールセーフ演算装置の第二の実施形態を示す。実施例1では、データ交換部(データ交換部-A(8)、データ交換部-B(9))をCPU-A1、CPU-B2内部にそれぞれ配置しているが、本実施形態では図5のデータ交換部(20)に示すように、CPU-A(20)、CPU-B(21)外部に共通メモリを一つ配置した構成としても良い。また、実施例1では、リセット生成部(リセット生成部-A(3)、リセット生成部-B(4))もCPU-A1、CPU-B2内部にそれぞれ配置しているが、図5のに示すように、CPU-A(20)、CPU-B(21)の外部にリセット生成部(24)を一つ配置し、データ照合部-A(27)またはデータ照合部-B(28)から要求に基づきリセット信号を生成し、図1のリセット制御部(7)を省略した構成としても良い。同様に、記録部(実施例1における記録部-A(5)、記録部-B(6))についても、図5に示すように、CPU-A(20)、CPU-B(21)の外部に記録部(23)を一つ配置し、リセット生成部(24)から出力されるリセット信号を記録する構成としても良い。以上のように、図5に示した構成とすることで、図1に示す実施例1の構成と比較して装置数を減少させることができ、フェールセーフ演算装置の小型化が可能となる。
なお、本実施例において、言及しない構成は実施例1と同様の動作及び機能を有するものとする。
本実施例では、図6を用いて本発明に基づくフェールセーフ演算装置の第三の実施形態を示す。本実施例では、CPU内部構成を図1に示す構成と同じままとして、データ交換部間の通信を三重系以上のCPU間で行う構成として、三重系以上の構成に拡張可能な実施例である。図6はフェールセーフ演算装置を三重系にしたときの実施形態である。図6では、データ照合部、データ交換部、データ演算部、ハッシュ計算部のみを図示しているが、各CPUは、図1と同様のリセット生成部、リセットテスト部、ブートチェック部を有するものとする。このとき、データ照合については、データ交換部-A(38)にデータ演算部-C(43)の演算結果を格納し、CPU-A(35)のデータ照合部-A(44)にてデータ演算部-A(41)の演算結果とデータ演算部-C(43)の演算結果を照合する。また、データ交換部-B(39)にデータ演算部-A(41)の演算結果を格納し、CPU-B(36)のデータ照合部-B(45)にてデータ演算部-B(42)の演算結果とデータ演算部-A(41)の演算結果を照合する。同様に、データ交換部-C(40)にデータ演算部-B(42)の演算結果を格納し、CPU-C(37)のデータ照合部-C(46)にてデータ演算部-C(43)の演算結果とデータ演算部-B(42)の演算結果を照合する。
各CPUのいずれのデータ照合部にて照合不一致を検出した場合には、実施例1と同様に、図示しないリセット制御部へリセット信号を送信し、各CPUにリセットを掛ける。
本実施形態により、本発明を三重系以上の多重系CPUへ適用することが可能となる。
1,2,20,21,35,36,37: CPU
3,4,24: リセット生成部
5,6,23: 記録部
7: リセット制御部
8,9,22,38,39,40: データ交換部
10,11,27,28,44,45,46: データ照合部
12,13,25,26,41,42,43: データ演算部
14,15,29,30: ブートチェック部
16,17,31,32,47,48,49: ハッシュ計算部
18,19,33,34: リセットテスト部

Claims (6)

  1. 演算処理を行うCPUを複数備え、前記複数のCPUの演算結果を照合することによって前記CPUの故障を検知するフェールセーフ演算装置において、
    前記複数のCPUの間で演算結果を交換するデータ交換部と、
    前記データ交換部により得られた他CPUの演算結果と自CPUの演算結果を照合し、前記データ照合部による照合によりデータの不一致を検出した場合にリセット要求信号を出力するデータ照合部と、
    を備えたことを特徴とするフェールセーフ演算装置 。
  2. 請求項1記載のフェールセーフ演算装置において、
    前記リセット要求信号に基づいて前記CPUにリセットをかけるリセット生成部を備えたことを特徴とするフェールセーフ演算装置。
  3. 請求項2記載のフェールセーフ演算装置において、
    前記複数のCPUは、定期的にリセット要求信号を出力するリセットテスト部を備え、
    前記リセット生成部は、前記データ交換部またはリセットテスト部からリセット要求信号が出力された場合に、前記リセット要求信号に基づいて前記CPUにリセットをかけることを特徴とするフェールセーフ演算装置。
  4. 請求項1乃至請求項3のいずれか1項に記載のフェールセーフ演算装置において、
    前記データ照合部は、所定の規定時間内に前記データ交換部を介して他CPUの演算結果が得られない場合、または、前記データ交換部を介して得られた他CPUの演算結果と自CPUの演算結果が照合不一致となった場合に、リセット要求信号を出力することを特徴とするフェールセーフ演算装置。
  5. 請求項2記載のフェールセーフ演算装置において、
    前記リセット生成部の出力するリセット信号の回数をカウントする記録部を備え、
    前記複数のCPUは、前記記録部に記録されたリセット回数に基づいて、自CPUの動作を停止させるか否かを判断するブートチェック部を備えたことを特徴とするフェールセーフ演算装置。
  6. 請求項1乃至請求項5のいずれか1項に記載のフェールセーフ演算装置において、
    前記複数のCPUは演算結果を要約してデータ量を圧縮するハッシュ計算部を備え、
    前記データ交換部は、前記複数のCPUのハッシュ計算部の出力を交換し、
    前記データ照合部は、自CPUのハッシュ計算部の出力と前記データ交換部を介して得られた他CPUのハッシュ計算部の出力を照合することを特徴とするフェールセーフ演算装置。
JP2015243728A 2015-12-15 2015-12-15 フェールセーフ演算装置 Pending JP2017111523A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015243728A JP2017111523A (ja) 2015-12-15 2015-12-15 フェールセーフ演算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015243728A JP2017111523A (ja) 2015-12-15 2015-12-15 フェールセーフ演算装置

Publications (1)

Publication Number Publication Date
JP2017111523A true JP2017111523A (ja) 2017-06-22

Family

ID=59081371

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015243728A Pending JP2017111523A (ja) 2015-12-15 2015-12-15 フェールセーフ演算装置

Country Status (1)

Country Link
JP (1) JP2017111523A (ja)

Similar Documents

Publication Publication Date Title
US9329927B2 (en) Semiconductor device
KR101606289B1 (ko) 프로그래머블 컨트롤러
EP1703401A2 (en) Information processing apparatus and control method therefor
US8161362B2 (en) Task management control apparatus and method, having redundant processing comparison
JP6029737B2 (ja) 制御装置
US9477559B2 (en) Control device, control method and recording medium storing program thereof
US11599090B2 (en) System and method of network synchronized time in safety applications
KR101560497B1 (ko) 락스텝으로 이중화된 프로세서 코어들의 리셋 제어 방법 및 이를 이용하는 락스텝 시스템
CN103176581B (zh) 电源管理装置及电源管理方法
US8255769B2 (en) Control apparatus and control method
JP6563047B2 (ja) 警報処理回路および警報処理方法
JP5537140B2 (ja) 安全制御装置、及びその安全制御プログラム
JP2017111523A (ja) フェールセーフ演算装置
CN103144657B (zh) 带校验板的通用轨旁安全平台主处理子系统
JP5337661B2 (ja) メモリ制御装置及びメモリ制御装置の制御方法
JP2011095837A (ja) フェールセーフシステム
JP2008262557A (ja) 制御装置のタスク管理装置、及び、制御装置のタスク管理方法
US9772897B1 (en) Methods and systems for improving safety of processor system
JP6017344B2 (ja) 制御装置、制御システム及びデータ生成方法
JP5982226B2 (ja) 二重化入力信号制御装置及び二重化出力信号制御装置の制御方法、その二重化入力信号制御装置、及びその二重化出力信号制御装置
JP2002229811A (ja) 論理分割システムの制御方法
JP2006338425A (ja) 制御装置
JP2018072967A (ja) 制御システム
JP2022184410A (ja) 演算装置
JP2014225110A (ja) 安全コントローラ