JP2013211049A - 制御装置 - Google Patents

制御装置 Download PDF

Info

Publication number
JP2013211049A
JP2013211049A JP2013118170A JP2013118170A JP2013211049A JP 2013211049 A JP2013211049 A JP 2013211049A JP 2013118170 A JP2013118170 A JP 2013118170A JP 2013118170 A JP2013118170 A JP 2013118170A JP 2013211049 A JP2013211049 A JP 2013211049A
Authority
JP
Japan
Prior art keywords
circuit
ecc
processor
main memory
information
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.)
Granted
Application number
JP2013118170A
Other languages
English (en)
Other versions
JP5563700B2 (ja
Inventor
Satoru Funaki
覚 船木
Yasuhiro Kiyofuji
康弘 清藤
Masashi Suenaga
雅士 末永
Makoto Ogura
小倉  真
Eiji Kobayashi
英二 小林
Akihiro Onozuka
明弘 小野塚
Yusuke Seki
裕介 関
Toshiki Shimizu
俊樹 清水
Yukiko Tahara
由季子 田原
Yuta Sugimoto
裕太 杉本
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
Hitachi Information and Control Systems Inc
Hitachi Information and Control Solutions Ltd
Original Assignee
Hitachi Ltd
Hitachi Information and Control Systems Inc
Hitachi Information and Control Solutions 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, Hitachi Information and Control Systems Inc, Hitachi Information and Control Solutions Ltd filed Critical Hitachi Ltd
Priority to JP2013118170A priority Critical patent/JP5563700B2/ja
Publication of JP2013211049A publication Critical patent/JP2013211049A/ja
Application granted granted Critical
Publication of JP5563700B2 publication Critical patent/JP5563700B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Hardware Redundancy (AREA)

Abstract

【課題】故障を即時かつ確実に検出して不安定な状態で処理し続けることを阻止する。
【解決手段】第一プロセッサが所定のプログラムを実行した結果として出力する第一情報から第一誤り検出符号を生成する。そして、第一プロセッサと同一の演算結果を出力するべく構成されている第二プロセッサがプログラムを実行した結果として出力する第二情報から第二誤り検出符号を生成する。そして、第一情報と第二情報が同一であるか否かを検出するとともに、第一誤り検出符号と第二誤り検出符号が同一であるか否かを検出し、検出の結果に基づいて第一情報あるいは第二情報のメインメモリへの書き込みを制御する。
【選択図】図2

Description

本発明は、プログラマブル電子装置を備える制御装置に関する。
原子力プラントや化学プラントなど潜在的な危険性の高いプロセス設備では、万が一の事態に作業員および周辺環境への影響を低減するため、隔壁等の防護設備による受動的な対策および緊急停止装置等の安全装置を用いる能動的な対策が講じられる。このうち、安全装置等の制御には、従来リレー等の電磁的・機械的な手段により実現されていた。
しかし、近年、プログラマブル電子装置(Programmable Logic Controller:PLC)に代表されるプログラム可能な制御機器における技術の発展に伴い、これらを安全制御システムの制御手段として利用するニーズが高まっている。
例えば、IEC61508は、そのような動向に対応して発行された国際規格であり、電気的/電子的/プログラム可能な電子的装置を安全制御システムの一部に利用する場合の要件が規定されている(非特許文献1)。
IEC61508では、安全制御システムの能力の尺度としてSafety Integrity Level(SIL)を定義し、1から4までのレベルに対応する水準の要求事項を規定している。SILが高いほどプロセス設備の持つ潜在的な危険性を低減できる度合が大きいことを示す。すなわち、プロセス設備の異常を検出した際、どれだけ確実に所定の安全制御を実施できるかを意味する。
安全制御装置は、通常稼働状態で非活性となっていても、プロセス設備の異常発生時には直ちに活性化することを求められる。そのため、常時自己診断を行い、自身の健全性をチェックし続けることが重要となる。また、高いSILが要求される安全制御システムでは、未検出の故障によりシステムが不動作となる確率を極小とするため、広範囲・高精度な自己診断を実施する必要がある。
IEC61508では、安全制御装置を構成する要素部品の種類ごとに、各々適用される自己診断技法を紹介し、それぞれの技法の有効性を診断率という形で示している。診断率は、各構成要素における全故障のうち、その診断技法を採用したとき検出可能な故障の割合を示す。例えば、RAMの診断技法"abraham"では、最高99%の診断率を主張可能であるとされている(特許文献2)。
また、PLCの構成要素の一つであるプロセッサの故障検出手段として、複数のプロセッサを用いて、相互の出力結果の整合性を監視する方法が有効である。
複数のプロセッサ出力を相互診断する方式としては、各プロセッサが同様の制御処理を同時に実行し、その出力が一致していることを確認しあう手段が効果的である。
例えば、非同期に動作する複数のプロセッサの出力を照合することにより、プロセッサが故障しても即時検出するという技術がある(特許文献1)。
特開2007−11639号公報 米国登録6779128号公報
特許文献1に記載されたものは、プロセッサ照合手段によりプロセッサの診断ができる。しかしながら、プロセッサ照合手段の出力からメインメモリまでのメモリインターフェースで故障が発生した場合に、ハード的な検出手段がないため、ソフトウェアによる故障検出を行わなければならない。プロセッサのソフトウェアによる診断処理はメモリに期待値をライトリードバック比較することで、メモリインターフェースの診断を行うことは可能である。しかし、n回目の診断処理とn+1回目の診断処理の間の実稼働期間は、異常を検出できず不安定なまま動作継続する可能性がある、という問題があった。
本発明は斯かる点に鑑みてなされたものであり、故障を即時かつ確実に検出して不安定な状態で処理し続けることを阻止できるようにすることを目的とする。
上記課題を解決するため、本発明の制御装置は、第一プロセッサが所定のプログラムを実行した結果としてメインメモリに格納される第一情報から第一誤り検出符号を作成し、予めメインメモリに記憶されている誤り検出符号である第二記憶情報と比較することで異常を検する第一符号生成部と、第一プロセッサと同一の演算結果を出力するべく構成されている第二プロセッサがプログラムを実行した結果としてメインメモリに格納される第二情報から第二誤り検出符号を作成し、第二記憶情報と比較することで異常を検する第二符号生成部とを備える。さらに、第一プロセッサ及び/又は第二プロセッサがメインメモリから第一情報あるいは第二情報である第一記憶情報を読み出す時、メインメモリから読み出した第一記憶情報と第二記憶情報に対し、必要に応じてエラー訂正を行って第一符号生成部及び第二符号生成部に供給する訂正処理部と、第一符号生成部が第一誤り検出符号と第二記憶情報との不一致を検出した場合、及び/又は第二符号生成部が第二誤り検出符号と第二記憶情報との不一致を検出した場合、第一プロセッサが第一記憶情報をメインメモリから読み出す動作及び第二プロセッサが第二記憶情報をメインメモリから読み出す動作を禁止する、割込制御部とを備える。さらに、第一情報と第二情報が同一であるか否かを検出して割込制御部に報告すると共に、第一誤り検出符号と第二誤り検出符号が同一であるか否かを検出して割込制御部に報告することで、第一誤り検出符号と第二誤り検出符号とが同一でない時には、第一情報あるいは第二情報を第一記憶情報としてメインメモリに書き込むことを禁止する照合部とを備える。
本発明の制御装置では、ライト時において照合部が第一情報と第二情報が一致するか否かを検出することにより、第一プロセッサ、第二プロセッサおよびこれらのプロセッサと照合部の間にあるバスインターフェースとの故障を検出する。そして、照合部が第一誤り検出符号と第二誤り検出符号が一致するか否かを検出することにより、第一符号生成部、第二符号生成部およびこれらの生成部と照合部の間にあるバスインターフェースの故障を検出する。
すなわち、本発明の制御装置では、照合部は、第一情報あるいは第二情報に生じるビットエラーを常に検出することができる。また、照合部は、検出したビットエラーに基づいて第一情報および第二情報のメインメモリに対する書き込みの制御を行う。それゆえ、本発明では、ライト中に各プロセッサあるいは各バスインターフェースの故障によりビットエラーが生じた場合、第一情報あるいは第二情報がメインメモリに書き込まれないようにすることができる。
本発明の制御装置では、リード時において照合部が第一情報と第二情報が一致するか否かを検出することにより、第一プロセッサ、第二プロセッサおよびこれらのプロセッサと照合部の間にあるバスインターフェースとの故障を検出する。そして、第一照合部は故障が検出された場合、メインメモリから記憶情報を読み出さないようにしている。
メインメモリから記憶情報を読み出した場合に、第一符号生成部は、記憶情報の第一記憶情報および第一情報で新たに生成した誤り検出符号と、記憶情報の第二記憶情報とが同一であるか否かを検出することにより、メインメモリおよび当該メインメモリと第一符号生成部との間にあるバスインターフェースの故障を検出する。また、第二符号生成部は、記憶情報の第一記憶情報および第二情報で新たに生成した誤り検出符号と、記憶情報の第二記憶情報とが同一であるか否かを検出することにより、メインメモリおよび当該メインメモリと第一符号生成部との間にあるバスインターフェースの故障を検出する。
第一符号生成部および第二符号生成部は、いずれか一方の符号生成部で故障を検出した場合に、第一プロセッサおよび第二プロセッサそれぞれに対して第一記憶情報の入力を行わないようにしている。それゆえ、本発明では、リード中に各プロセッサあるいは各バスインターフェースの故障によりビットエラーが生じた場合、当該ビットエラーを誤検出することなく、第一記憶情報が第一プロセッサおよび第二プロセッサに入力させないことができる。
本発明によれば、各プロセッサあるいは各バスインターフェースに発生した故障を確実に検出できる。ライト時に故障を検出した場合、メインメモリに対する情報の書き込みを禁止し、リード時に故障を検出した場合、各プロセッサに対する情報の入力を禁止する。つまり、故障を即時かつ確実に検出して不安定な状態で処理し続けることを阻止できる。これにより、安全性をより向上させる。
制御システムを示すブロック図である。 本発明の一実施形態に係る制御装置を適用したCPU装置を示すブロック図である。 A系CRC回路を示すブロック図である。 ECC回路を示すブロック図である。 CPU装置のモードの遷移を示す状態遷移図である。 本発明の一実施形態に係る制御装置を適用したCPU装置の動作を示すタイミングチャートである。 本発明の一実施形態に係る制御装置を適用したCPU装置の動作を示すタイミングチャートである。 本発明の一実施形態に係る制御装置を適用したCPU装置の動作を示すタイミングチャートである。 本発明の一実施形態に係る制御装置を適用したCPU装置の故障検出範囲を示す表である。
以下、発明を実施するための最良の形態(以下、「実施の形態」とする)について以下の順序で説明を行う。以下に述べる実施の形態は、本発明の好適な具体例である。そのため、技術的に好ましい種々の限定が付されている。しかしながら、本発明の範囲は、下記の説明において特に本発明を限定する旨の記載がない限り、これらの形態に限られるものではない。例えば、以下の説明で挙げる各パラメータの数値的条件は好適例に過ぎず、説明に用いた各図における寸法、形状および配置関係も概略的なものである。
1.一実施形態
(1)制御システムの構成
(2)CPU装置の構成
(3)A系CRC回路の構成の一例
(4)ECC回路の構成の一例
(5)CPU装置のモード遷移
(6)CPU装置の動作
(7)CPU装置の故障検出範囲
<1.一実施形態>
[制御システムの構成]
以下、本発明の実施の形態の例について、図1〜図9を参照して説明する。
図1は、発明の一実施形態である制御システム101を示すブロック図である。
制御システム101は、CPU装置102と、上位装置103と、下位装置104と、制御対象105よりなる。
上位装置103は、所定のプログラムを記憶しており、CPU装置102とネットワーク106で接続されている。
CPU装置102は、上位装置103からネットワーク106を介して所定のプログラムをダウンロードし、当該プログラムに基づいて演算を行う。また、CPU装置102は下位装置104ともネットワーク106で接続されており、演算結果を当該ネットワークを介して下位装置104に出力する。
このCPU装置102は、後述するように複数のプロセッサを備えており、一般モードあるいは安全モードのいずれかで、プログラムに基づいた演算を行う。一般モードは、各プロセッサで独立した演算を行うモードある。また、安全モードは、各プロセッサで同一の演算を行い、その演算結果が同一であるか否かを検証することにより、プロセッサの健全性を確認するモードである。さらに、CPU装置102は、テストモードで稼動する場合もある。テストモードは、予めCPU装置102に記憶されたテストプログラムに基づいて、CPU装置102が正常に動作するか否かを検証するモードである。一般モードおよび安全モード時のCPU装置102は基本的に演算結果を下位装置104に入力するが、テストモード時のCPU装置102は下位装置104になにも出力しない。すなわち、テストモードは、CPU装置102による下位装置104の制御が行われていないときに行われる。なお、一般モード、安全モードおよびテストモードの切り替えは、予めCPU装置102に設定されたスケジューラにより行われる。
下位装置104は、制御対象105との間で制御情報の入出力を行うインターフェースである。下位装置104は、制御対象105と接続されており、CPU装置102から入力される演算結果に基づいて制御対象105を動作させる。この制御対象105は、制御を行う際に安全性が求められる、例えば原子力プラントや化学プラント等の潜在的な危険性の高いプロセス設備である。
[CPU装置の構成]
次に、制御システム101を構成するCPU装置102について図2を参照して説明する。
図2は、CPU装置102を示すブロック図である。なお、以下に示すCPU装置102は、CPU装置102が上位装置103からダウンロードしたプログラムに基づいて、安全モードで演算を行う場合を想定している。ただし、CPU装置102が、上位装置103から所定のプログラムをダウンロードするときだけは、安全モードとは異なる動作を行う。
まず、CPU装置102が、上位装置103から所定のプログラムをダウンロードするときに使用する構成について説明する。このときCPU装置102において使用される構成は、A系プロセッサ202と、B系プロセッサ203と、制御装置204の一部と、メインメモリ205である。制御装置204の一部とは、ネットワークコントローラ206、CRC回路207およびECC回路232である。以下、本例では、CPU装置102を構成するプロセッサがA系プロセッサ202およびB系プロセッサ203という2個の場合について説明するが、プロセッサの台数に制限はなく、それにより本発明が制約を受けることはない。
上位装置103からの所定のプログラムのダウンロードは、マルチタスクモード、すなわちA系プロセッサ202あるいはB系プロセッサ203のいずれか一方により行われる。このとき、ネットワークコントローラ206は、ネットワーク106を介して上位装置103からプログラムである32ビット幅のデータ列を取得する。ネットワークコントローラ206は、図示しないDMA(Direct Memory Access)コントローラを含んでおり、メインメモリ205のどの位置に当該プログラムを書き込むかを決定する。すなわち、アドレスである32ビット幅のデータ列を生成する。また、ネットワークコントローラ206は、CRC回路207およびECC回路232と接続されており、上位装置103から取得したプログラムおよび生成したアドレスをCRC回路207およびECC回路232に出力する。
CRC回路207は、ネットワークコントローラ206から入力されるアドレスおよびプログラムを併せた64ビットの幅のデータ列から8ビットのCRCC(Cyclic Redundancy Check Codes)を生成する。また、CRC回路207は、ECC回路232と接続されており、生成したCRCCをECC回路232へ出力する。ECC回路232は、CRCC、プログラム本体およびアドレスを併せた合計72ビット幅のデータ列から8ビット幅のデータ列のECC(Error-Correcting Code)を生成し、プログラム本体、CRCCおよびECCをメインメモリ205に書き込む。このECC回路232は、安全モードの演算でも用いられる。そこで、このECC回路232についてのより詳細な説明は安全モードに関する構成の説明を行う箇所に記載する。
メインメモリ205は、データ記憶領域229、CRCC記憶領域230およびECC記憶領域231という3つの領域を有している。データ記憶領域229は、プログラムが書き込まれる領域である。CRCC記憶領域230は、ネットワークコントローラ206を経由してCRC回路で生成されたCRCCが書き込まれる領域である。ECC記憶領域231は、ネットワークコントローラ206経由してECC回路232で生成されたECCが書き込まれる領域である。
次に、CPU装置102が、上位装置103からダウンロードしたプログラムに基づいて安全モードで演算を行う際に使用される構成について説明する。このときCPU装置102において使用される構成は、A系プロセッサ202と、B系プロセッサ203と、CRC回路207を除いた制御装置204と、メインメモリ205である。
A系プロセッサ202は、上位装置103からダウンロードした所定のプログラムを実行してタスクを処理する。その際、タスクによっては情報のライト/リードを制御装置204を介してメインメモリ205に対し行うものもある。A系プロセッサ202は、制御装置204とA系プロセッサバス208により接続されており、A系プロセッサバス208を介して制御装置204に情報の入出力を行う。ライト時には、A系プロセッサ202は、アドレス、データおよびコマンドをA系プロセッサバス208を介して制御装置204に出力する。一方、リード時には、A系プロセッサ202は、アドレスおよびコマンドをA系プロセッサバス208を介して制御装置204に出力する。
データおよびアドレスは、32ビット幅のデータ列である。一方、コマンドは、制御装置204およびメインメモリ205を制御する1ビットのデータである。本例では、制御装置204およびメインメモリ205は、コマンドが‘1’のときにライトに対応する動作を行い、コマンドが‘0’のときにリード動作を行うものとする。
また、B系プロセッサ203は、A系プロセッサ202と同じ機能を備えたものである。つまり、B系プロセッサ203は、上位装置103からダウンロードした所定のプログラムを実行してタスクを処理する際に、当該タスクに応じた情報等のライト/リードを制御装置204を介してメインメモリ205に対し行うものである。B系プロセッサ203は、制御装置204とB系プロセッサバス211により接続されており、B系プロセッサバス211を介して制御装置204に情報の入出力を行う。ライト時には、B系プロセッサ203は、アドレス、データおよびコマンドをB系プロセッサバス211を介して制御装置204に出力する。一方、リード時には、B系プロセッサ203は、アドレスおよびコマンドをB系プロセッサバス211を介して制御装置204に出力する。
制御装置204は、当該制御装置204を構成する各ブロックおよびバスと、A系プロセッサ202と、B系プロセッサ203と、メインメモリ205に故障があるか否かを検出するものである。
制御装置204は、A系CRC回路209と、B系CRC回路212と、照合回路214と、ECC回路232と、割込制御部220とを含んで構成される。さらに、制御装置204は、ネットワークコントローラ206と、出力切替スイッチ221を含む。
A系CRC回路209は、入力される所定の桁数のビット幅のデータ列からCRCCを生成する回路である。
本例のA系CRC回路209は、ライト時とリード時では異なる処理を行う。
ライト時のA系CRC回路209は、A系プロセッサ202から入力されるアドレスおよびデータを併せた64ビット幅のデータ列からCRCCを生成する。また、A系CRC回路209は、照合回路214とA系CRCCバス210で接続されており、生成したCRCCを照合回路214へ出力する。
リード時のA系CRC回路209は、A系プロセッサ202から入力されるアドレスおよびライト時にメインメモリ205に書き込まれたデータを併せた64ビット幅のデータ列から新たにCRCCを生成する。そして、当該メインメモリ205に記憶されたCRCCと、新たに生成したCRCCとが同じデータ列であるか否かを判定する。
このA系CRC回路209は、割込制御部220と接続されており、その判定結果(一致/不一致)に基づいた論理信号(以下、「A系CRCC照合不一致」という)を生成して割込制御部220に出力する。
B系CRC回路212は、A系CRC回路209と同じ回路であり、所定の桁数のビット幅のデータ列からCRCCを生成する回路である。
本例のB系CRC回路212は、ライト時とリード時では異なる処理を行う。
ライト時のB系CRC回路212は、B系プロセッサ203から入力されるアドレスおよびデータを併せた64ビット幅のデータ列からCRCCを生成する。また、B系CRC回路212は、照合回路214とB系CRCCバス213で接続されており、生成したCRCCを照合回路214へ出力する。
リード時のB系CRC回路212は、B系プロセッサ203から入力されるアドレスおよびライト時にメインメモリ205に書き込まれたデータを併せた64ビット幅のデータ列から新たにB系CRCCを生成する。そして、当該メインメモリ205に記憶されたCRCCと、新たに生成したCRCCとが同じデータ列であるか否かを判定する。
このB系CRC回路212は、割込制御部220と接続されており、その判定結果(一致/不一致)に基づいた論理信号(以下、「B系CRCC照合不一致」という)を生成して割込制御部220に出力する。以下、A系CRC回路209で生成されるCRCCをA系CRCCと記載し、B系CRC回路212で生成されるCRCCをB系CRCCと記載する。
照合回路214は、入力される2つのデータ列の一致/不一致を判定する回路である。この照合回路214は、ECC回路232と内部バス215およびCRCC内部バス216という2本のバスでECC回路232と接続されている。さらに、照合回路214は、割込制御部220とも接続されている。
ライト時の照合回路214は、A系プロセッサ202から入力されるアドレスおよびデータと、A系CRC回路209から入力されるA系CRCCとを併せた72ビット幅のデータ列を、B系プロセッサ203から入力されるアドレスおよびデータと、B系CRC回路212から入力されるB系CRCCとを併せた72ビットのデータ列と比較して一致/不一致を判定する。このとき照合回路214は、そのデータ列の判定結果(一致/不一致)に基づいた論理信号(以下、「照合不一致」という)を生成して割込制御部220に出力する。相互のデータ列が一致、すなわち判定結果が一致である場合に限り、照合回路214は、A系プロセッサ202から入力されるアドレス、データ、コマンドを内部バス215を介してECC回路232に出力し、A系CRCCをCRCC内部バス216を介してECC回路232に出力する。
リード時の照合回路214は、A系プロセッサ202から入力されるアドレスのデータ列を、B系プロセッサ203から入力されるアドレスのデータ列と比較して一致/不一致を判定する。このとき照合回路214は、その判定結果(一致/不一致)に基づいて照合不一致を生成して割込制御部220に出力する。相互のデータ列が一致しているすなわち、判定結果が一致である場合に限り、照合回路214は、A系プロセッサ202から入力されるアドレスおよびコマンドを内部バス215を介してECC回路232に出力する。
ECC回路232は、所定の桁数のビット幅のデータ列からECCを生成する。また、生成したECCを利用することにより、当該データ列のエラーを検出し、検出したエラーが訂正可能な1ビットエラーの場合に当該データ列を訂正する。
ECC回路232は、ライト時とリード時では異なった処理を行う。このECC回路232は、メインメモリ205の間でデータ列のやりとりができるように、メモリバス217、CRCCメモリバス218およびECCメモリバス219によって接続されている。
ライトのECC回路232は、照合回路214から入力されるアドレス、データおよびCRCCを併せた72ビット幅のデータ列でECCを生成する。そして、生成したECCをECCメモリバス219を介してメインメモリ205に出力する。そして、ECC回路232は、照合回路214から入力されるアドレス、データ、コマンドをメモリバス217を介してメインメモリ205に出力し、照合回路214から入力されるCRCCをCRCCメモリバス218を介してメインメモリ205に出力する。
リード時のECC回路232は、メインメモリ205に書き込まれているデータと、照合回路214から入力されるアドレスおよびCRCCとを併せた72ビット幅のデータ列から新たにECCを生成する。そして、ECC回路232は、新たに生成したECCと、メインメモリ205に書き込まれたECCとの一致不一致を判定する。また、ECC回路232は、割込制御部220と接続されており、その判定結果(一致/不一致)に基づいた論理信号(以下、「ECC照合不一致」という)を生成して割込制御部220に出力する。
判定結果が一致の場合、ECC回路232は、メインメモリ205に書き込まれているデータおよびCRCCを照合回路214を介してA系CRC回路209およびB系CRC回路212に出力するとともに、ECC照合不一致(一致)を生成して割込制御部220に出力する。
判定結果が不一致の場合、ECC回路232は、新たに生成したECCおよびメインメモリ205に書き込まれているECCを利用してメインメモリ205に書き込まれたECCおよびCRCCのエラーチェックを行う。
訂正可能なエラーの場合は、ECC回路232は、データおよびCRCCのエラー訂正を行い、エラー訂正を行ったデータおよびCRCCを照合回路214を介してA系CRC回路209およびB系CRC回路212に出力するとともに、ECC照合不一致(一致)を生成して割込制御部220に出力する。
訂正不可能なエラーの場合は、ECC回路232は、ECC照合不一致(不一致)を生成して割込制御部220に出力する。
割込制御部220は、A系割込要求をA系プロセッサ202に出力し、B系割込要求をB系プロセッサ203に出力する。また、割込制御部220は、A系割込要求とB系割込要求を制御する機能を備え、A系割込要求をアサートするためのA系割込要求レジスタと、割込要因を示すA系割込要因レジスタで構成する。また、B系割込要求をアサートするためのB系割込要求レジスタと、割込要因を示すB系割込要因レジスタを備える。
割込制御部220は、A系プロセッサ202に対するA系割込要求とB系プロセッサ203に対するB系割込要求独立に制御することが可能である。
A系割込要求レジスタと、B系割込要求レジスタ、A系割込要因レジスタ、B系割込要因レジスタはA系プロセッサ202とB系プロセッサ203からアクセスすることが可能な構造となっている。
割込制御部220は、各プロセッサの異常または各プロセッサからメインメモリ205までのインターフェースの異常およびメインメモリ205の異常を検出すると、制御装置204を不安全な状態から回避する機能を備える。すなわち、割込制御部220は、A系CRC回路209からのA系CRC照合不一致、B系CRC回路212からB系CRC照合不一致、照合回路214からの照合不一致あるいはECC回路232からのECC照合不一致のいずれか一つの論理信号に基づいて、A系プロセッサ202およびB系プロセッサ203が現在行っている演算を中断させるか否かを決定する。割込制御部220は他の割込要因についても制御を行っているが、本発明では言及しない。
ところで、出力切替スイッチ221は、A系プロセッサ202、B系プロセッサ203およびネットワークコントローラ206に接続されている。この出力切替スイッチ221は、A系プロセッサ202あるいはB系プロセッサ203の演算結果のいずれか一方を選択し、選択した方プロセッサの演算結果をネットワークコントローラ206に出力する。つまり、出力切替スイッチ221は、選択した方のプロセッサの演算結果がネットワークコントローラ206を介してネットワーク106上にある上位装置103あるいは下位装置104に出力されるようにするためのスイッチである。
[A系CRC回路の構成]
次に、A系CRC回路209およびB系CRC回路212の回路構成の一例について図3を参照して説明する。
図3は、A系CRC回路209の一例およびその周辺を示す図である。なお、A系CRC回路209とB系CRC回路212は同じ回路であるので、B系CRC回路212の説明は省略する。
A系CRC回路209は、A系プロセッサバス208を介してA系プロセッサ202および照合回路214と接続されているCRC計算回路302と、A系プロセッサ202を介してA系プロセッサ202および照合回路214と接続されているスイッチと、デジタル比較器304とよりなる。
スイッチの端子S2はCRC計算回路302およびデジタル比較器304と接続されており、端子S1はCRCバスで照合回路214と接続されており、端子S3はデジタル比較器304と接続されている。このスイッチは、A系プロセッサ202から入力されるコマンドに基づいて接続する端子を切り替える。より具体的には、スイッチは、コマンドが‘1’のとき、すなわちライト時に端子S1と端子S2を接続し、入力されるコマンドが‘0’のとき、すなわちリード時に端子S1と端子S3を接続する。
CRC計算回路302は、ライト時にA系プロセッサ202から入力されるアドレスおよびデータでA系CRCCを計算し、計算したA系CRCCをA系CRCCバス210を介して照合回路214へ出力する。
また、CRC計算回路302は、リード時にA系プロセッサ202から入力されるアドレスおよび照合回路214を介してメインメモリ205から取得したデータでA系CRCCを計算し、計算したA系CRCCをデジタル比較器304に出力する。
デジタル比較器304は、リード時のみ動作する。デジタル比較器304は、CRC計算回路302が計算したA系CRCCと、照合回路214を介してメインメモリ205から取得したCRCCを比較し、その比較結果に応じた論理信号であるA系CRCC照合不一致を割込制御部220に出力する。
[ECC回路の構成]
次に、ECC回路232の回路構成の一例について図4を参照して説明する。
図4は、ECC回路232の一例およびその周辺を示す図である。
ECC回路232は、第一切替スイッチ402と、第二切替スイッチ403と、ECC計算回路404と、第三切替スイッチ405と、ECC比較回路406と、ECC訂正回路408と、第四切替スイッチ409と、第五切替スイッチ410と、スイッチ制御回路411よりなる。
第一切替スイッチ402は、ECC計算回路404と、内部バス215あるいはメモリバス217のいずれか一方とを接続するスイッチである。
第一切替スイッチ402の端子S4は内部バス215で照合回路214と接続されており、端子S5はメモリバス217でメインメモリ205と接続されており、端子S6はECC計算回路404と接続されている。この第一切替スイッチ402は、スイッチ制御回路411により接続する端子を制御される。具体的には、ライト時に、端子S4と端子S6を接続することで、ECC計算回路404と内部バス215を接続する。一方、リード時に、端子S5と端子S6を接続してECC計算回路404とメモリバス217を接続する。
第二切替スイッチ403は、ECC計算回路404と、CRCC内部バス216あるいはCRCCメモリバス218のいずれか一方とを接続するスイッチである。
第二切替スイッチ403の端子S7はCRCC内部バス216で照合回路214と接続されており、端子S8はCRCCメモリバス218でメインメモリ205と接続されており、端子S9はECC計算回路404と接続されている。この第二切替スイッチ403は、スイッチ制御回路411により接続する端子を制御される。具体的には、ライト時に、端子S7と端子S9を接続してECC計算回路404とCRCC内部バス216を接続する。一方、リード時に、端子S8と端子S9を接続してECC計算回路404とCRCCメモリバス218を接続する。
ライト時のECC計算回路404は、内部バス215を介して照合回路214から入力されるアドレスおよびデータと、CRCC内部バス216を介して照合回路214から入力されるCRCCからECCを生成し、生成したECCを第三切替スイッチ405を介して出力する。
一方、リード時のECC計算回路404は、メモリバス217を介してメインメモリ205から取得するデータと、CRCCメモリバス218を介してメインメモリ205から取得するCRCCと、内部バス215を介して照合回路214から入力されるアドレスからECCを生成し、生成したECCを第三切替スイッチ405を介して出力する。
第三切替スイッチ405は、ECC回路232からの出力をECC比較回路406あるいはメインメモリ205のいずれかに切り替えるスイッチである。
第三切替スイッチ405の端子S10はECC計算回路404と接続されており、端子S12はECC比較回路406と接続されており、端子S11はECCメモリバス219でメインメモリ205と接続されている。この第三切替スイッチ405は、スイッチ制御回路411により接続する端子を制御される。具体的には、ライト時に、端子S10と端子S11を接続してECC計算回路404で生成されたECCをECCメモリバス219に出力する。一方、リード時に、端子S10と端子S12を接続してECC計算回路404で生成されたECCをECC比較回路406に出力する。
ECC比較回路406は、第三切替スイッチ405によりリード時のみ処理を行う。ECC比較回路406は、メインメモリ205からECCメモリバス219を介して取得したECCと、ECC計算回路404で生成されたECCそれぞれのデータ列の排他的論理和を計算することにより、これらの各ECCのエラーチェックを行う。ここでのエラーチェックは、エラーなし(全ビット一致)か、1ビットエラーか、2ビット以上のエラーか、を検出するとともに、これらの各エラーが訂正可能であるか否かを検出する、ことを指す。ECC比較回路406は、このようなエラーチェック結果をECC訂正回路408およびスイッチ制御回路411に出力する。
ECC訂正回路408は、第三切替スイッチ405によりリード時のみ処理を行う。ECC訂正回路408は、メインメモリ205から読み出したデータおよびCRCCのエラーの訂正をECC比較回路406から入力されたエラーチェック結果に基づいて行う。
訂正不可能な1ビットエラーおよび2ビット以上のエラーの場合、ECC訂正回路408は割込制御部220にECC照合不一致(不一致)を出力する。
訂正可能な1ビットエラーの場合、ECC訂正回路408は、メインメモリ205から読み出したデータまたはCRCCのビット訂正をECC比較回路406から入力されるエラーチェック結果を利用して行うとともに、割込制御部220にECC照合不一致(一致)を出力する。
第四切替スイッチ409は、内部バス215とメモリバス217の接続のオン/オフを切り替えるスイッチである。第四切替スイッチ409の端子S13は内部バス215に接続しており、端子S14はメモリバス217に接続している。この第四切替スイッチ409は、スイッチ制御回路411によりオン/オフを制御される。ライト時に、端子S13と端子S14を接続して照合回路214から入力されるアドレス、データおよびコマンドをメインメモリ205に出力するようにする。リード時にECC比較回路406で検出したエラーチェック結果がエラーなしあるいは訂正可能な1ビットエラーの場合、端子S13と端子S14を接続してメインメモリ205に記憶されたデータを照合回路214に出力するようにする。
第五切替スイッチ410は、CRCC内部バス216とCRCCメモリバス218の接続のオン/オフを切り替えるスイッチである。第五切替スイッチ410の端子S15はCRCC内部バス216に接続しており、端子S16はCRCCメモリバス218に接続している。この第五切替スイッチ410は、スイッチ制御回路411によりオン/オフを制御される。ライト時に、端子S15と端子S16を接続して照合回路214から入力されるCRCCをメインメモリ205に出力するようにする。リード時においてECC比較回路406で検出したエラーチェック結果がエラーなしあるいは訂正可能な1ビットエラーの場合、端子S15と端子S16を接続してメインメモリ205に記憶されたCRCCを照合回路214に出力するようにする。
スイッチ制御回路411は、第一切替スイッチ402、第二切替スイッチ403、第三切替スイッチ405、第四切替スイッチ409および第五切替スイッチ410の各端子の接続を制御するものである。この制御は、内部バス215を介して照合回路214から入力されるコマンドおよびECC比較回路406から入力されるエラーチェック結果に基づいて行われる。
[CPU装置のモード遷移]
次に、CPU装置102のモードの遷移について図5を参照して説明する。
図5は、CPU装置102のモードの遷移を示す状態遷移図である。
まず、CPU装置102が起動されると、当該CPU装置102はOS立ち上がりモードになる(ステップS501)。このとき、CPU装置102は、上位装置103に記憶された所定のプログラムをネットワーク経由で取得する。
そして、CPU装置102は、スケジューラにより、前述の一般モード(ステップS502)、安全モード(ステップS503)あるいはテストモード(ステップS504)のいずれかのモードで稼動する。なお、スケジューラにより、モードの変更が行われる場合は、OS立ち上がりモードに移行する(ステップS506、ステップS507およびステップS508)。
CPU装置102は、一般モードでの演算中にCPU装置102に異常が発生すると、CPU装置102は演算を中止する(ステップS509)。
また、CPU装置102は、安全モードでの演算中にCPU装置102に以上が発生すると、CPU装置102は演算を中止する(ステップS510)。
また、CPU装置102は、テストモードの実行、すなわちテストプログラムによりCPU装置102を構成する各ブロックおよび各バスの故障を検出すると、当該CPU装置102を停止する(ステップS511)。
以上に示した各状態のうち、ステップS510のエラーを検出するために、CPU装置102は、図2から図4に示した構成となっている。つまり、本実施形態の図2乃至図4の構成は、安全モードでCPU装置102の異常を確実に検出し、異常停止モードに至らせるためのものである。
[CPU装置の動作]
次に、安全モード時における制御装置204の動作を図6〜図8を参照して説明する。
図6は、故障がない場合の制御装置204の動作を示すタイミングチャートである。
A系プロセッサ202およびB系プロセッサ203が、予め上位装置103から取得した所定のプログラムに基づいて、メインメモリ205に対してライトを行う時の制御装置204の動作について説明する。なお、B系CRC回路212はA系CRC回路209と同じ構成であるので、以下ではB系CRC回路に関する動作を図3に示すA系CRC回路を参照して説明する。
まず、A系プロセッサ202は、メインメモリ205に書き込み要求を行うと(T601)、A系プロセッサバス208を介してアドレス、データおよびライトを示すコマンド(‘1’)を制御装置204のA系CRC回路209および照合回路214へ出力する。すると、A系CRC回路209は、A系プロセッサ202から入力されたコマンドをトリガーにスイッチ303の端子S1と端子S2を接続する。そして、A系CRC回路209のCRC計算回路302は、A系プロセッサ202から入力されたアドレスおよびデータからA系CRCCを生成する。そして、A系CRC回路209のCRC計算回路302は、生成したA系CRCCをA系CRCCバスを介して照合回路214に出力する(T602)。
一方、B系プロセッサ203もA系プロセッサ202と同様の動作を行う。まず、B系プロセッサ203は、メインメモリ205に書き込み要求を行うと(T603)、B系プロセッサバス211を介してデータ、アドレスおよびライトを示すコマンド(‘1’)を制御装置204のB系CRC回路212および照合回路214へ出力する。すると、B系CRC回路212は、B系プロセッサ203から入力されたコマンドをトリガーにスイッチ303の端子S1と端子S2を接続する。そして、B系CRC回路212のCRC計算回路302は、B系プロセッサ203から入力されたアドレスおよびデータからB系CRCCを生成する。そして、B系CRC回路212のCRC計算回路302は生成したB系CRCCを照合回路214に出力する(T604)。
照合回路214は、A系CRC回路209のCRC計算回路302から入力されるA系CRCCと、B系CRC回路212のCRC計算回路302から入力されるB系CRCCとが一致するか否かを判定する(T605)。各故障検出対象に故障がないケースでは、判定結果が一致となるので、照合回路214は、A系プロセッサバス208を介してA系プロセッサ202から入力されるアドレス、データおよびコマンドを内部バス215を介してECC回路232に出力する。さらに、照合回路214は、A系CRC回路209から入力されるA系CRCCをCRCC内部バス216を介してECC回路232に出力する。なお、ECC回路232にはB系CRC回路212からの出力を入力するようにしてもよいので、以下ではA系CRCCおよびB系CRCCを区別せず単にCRCCと記載する。
ECC回路232は、照合回路214から入力されたコマンドをトリガーに、第一切替スイッチ402の端子S4と端子S6を接続し、第二切替スイッチ403の端子S7と端子S9を接続し、第三切替スイッチ405の端子S10と端子S11を接続し、第四切替スイッチ409の端子S13と端子S14を接続し、第五切替スイッチ410の端子S15と端子S16を接続する。ECC計算回路404は、照合回路214から入力されるアドレス、データおよびCRCCでECCを生成し、生成したECCをECCメモリバス219を介してメインメモリ205に出力する。このとき、ECC回路232は、照合回路214から入力されたデータ、コマンドおよびデータをメモリバス217を介してメインメモリ205に出力し、照合回路214から入力されたCRCCをCRCCメモリバス218を介してメインメモリ205に出力する(T606)。
メインメモリ205は、ECC回路232から入力されたコマンドをトリガーにして、ECC回路232から入力された各アドレスが示す位置にECC回路232から入力されたデータ、CRCCおよびECCを記憶する。すなわち、メインメモリ205は、アドレスに基づいて、データをデータ記憶領域229に記憶し、CRCCをCRCC記憶領域230に記憶し、ECCをECC記憶領域231に記憶する(T607)。
以上の処理が完了した後、メインメモリ205が制御装置204の各回路に書き込み終了応答を出力すると、メインメモリ205の各回路は書き込み動作を終了する(T608)。
続いて、A系プロセッサ202およびB系プロセッサ203が、予め上位装置103から取得した所定のプログラムに基づいて、メインメモリ205からリードを行う時の制御装置204の動作について説明する。
まず、A系プロセッサ202およびB系プロセッサ203は制御装置204に対して読み込み要求を行う。すると、A系プロセッサ202は、A系プロセッサバス208を介して制御装置204の照合回路214にアドレスおよびリードを示すコマンド(‘0’)を出力するとともに、当該コマンドをA系CRC回路209に出力する。A系CRC回路209は、A系プロセッサ202から入力されたコマンドをトリガーにスイッチ303の端子S1と端子S3を接続する。
一方、B系プロセッサ203は、B系プロセッサバス211を介してメインメモリ205の照合回路214にアドレスおよびリードを示すコマンド(‘0’)を出力するとともに、当該コマンドをB系CRC回路212に出力する。B系CRC回路212は、B系プロセッサ203から入力されたコマンドをトリガーにスイッチ303の端子S1と端子S3を接続する。
ここで、照合回路214は、A系プロセッサ202から入力されたアドレスと、B系プロセッサ203から入力されたアドレスとを比較し、比較結果が一致であるか否かを判定する(T609)。
照合回路214が一致と判定すると、照合回路214は、A系プロセッサ202から入力されたアドレスおよびコマンドを内部バス215を介してECC回路232に出力する。すると、ECC回路232は、照合回路214から入力されたコマンドをトリガーに、第一切替スイッチ402の端子S5と端子S6を接続し、第二切替スイッチ403の端子S8と端子S9を接続し、第三切替スイッチ405の端子S10と端子S12を接続する。そして、ECC回路232は、照合回路214から入力されたアドレスおよびコマンドをメモリバスを介してメインメモリ205に出力する。
メインメモリ205は、ECC回路232から入力されたコマンドをトリガーにして、ECC回路232から入力されたアドレスに従って、メインメモリ205に記憶されたデータをメモリバスを介してECC回路232に出力する。このとき、メインメモリ205は、ECC回路232から入力されたアドレスに従って、記憶しているCRCCをCRCCメモリバス218を介してECC回路232に出力する。さらに、メインメモリ205は、ECC回路232から入力されたアドレスに従って、記憶しているECCをECCメモリバス219を介してECC回路232に出力する。
すると、ECC回路232のECC計算回路404は、照合回路214から入力されたアドレスおよびメインメモリ205から取得したデータおよびCRCCから新たにECCを生成してECC比較回路406に出力する。
ECC比較回路406は、新たに生成したECCと、メインメモリ205から取得したECCとの排他的論理和を計算する。そして、前述のエラーチェックを行い、エラーチェック結果をECC訂正回路408およびスイッチ制御回路411に出力する。本ケースではエラーチェック結果がエラーなしとなるので、スイッチ制御回路411は、第四切替スイッチ409の端子S13とS14を接続し、第五切替スイッチ410の端子S15とS16を接続する。すると、メインメモリ205から取得したデータが、内部バス215、照合回路214およびA系プロセッサバス208を介してA系CRC回路209のCRC計算回路302へ出力される。このとき、メインメモリ205から取得したCRCCがCRCC内部バス216、照合回路214およびA系CRCCバスを介してA系CRC回路209のデジタル比較器304に出力される。なお、メインメモリ205から取得したデータおよびCRCCは、B系CRC回路212にも同様に入力される(T610)。
ここで、A系CRC回路209のCRC計算回路302は、A系プロセッサバス208を介してA系プロセッサ202から出力されているアドレスおよびECC回路232から入力されたデータから新たにCRCCを生成してデジタル比較器304に入力する。デジタル比較器304は、新たに生成したCRCCと、ECC回路232から入力されたCRCCとを比較し、その比較結果一致であるが否かを判定する。
本ケースでは、判定結果が一致となるので、ECC回路232から出力されたデータ、すなわちメインメモリ205に記憶されたデータがA系プロセッサバス208を介してA系プロセッサ202に出力される(T611)。このとき、B系プロセッサ203にも同様に、B系CRC回路212からB系プロセッサバス211を介して、メインメモリ205に記憶されたと同じデータが出力される(T612)。
図7は、A系プロセッサ202、A系CRC回路209、A系プロセッサバス208、B系プロセッサ203、B系CRC回路212およびB系プロセッサバス211のいずれかで故障が起きた場合の制御装置204の動作を示すタイミングチャートである。なお、T701〜T704は、図6のT601〜T604と同じなので、それらの説明は省略する。
T704のタイミングの直後、すなわちライト中に、A系プロセッサ202、A系CRC回路209、A系プロセッサバス208、B系プロセッサ203、B系CRC回路212およびB系プロセッサバス211のいずれかで故障が起きたとする(T705)。すると、照合回路214は、A系CRCCバス210を介してA系CRC回路209から入力されたA系CRCCおよびB系CRCCバス213を介してB系CRC回路212から入力されたB系CRCCを比較する。そして、照合回路214はそれぞれの比較結果が一致であるか否かを判定する(T706)。
本ケースでは、判定結果が不一致となるので、照合回路214は、A系プロセッサ202およびB系プロセッサ203に応答を返す。また、照合回路214は、割込制御部220に照合不一致(不一致)を出力し、A系割込要因レジスタおよびB系割込要因レジスタに要因を登録する。そして、A系割込要因レジスタおよびB系割込要因レジスタにより、T607の時点でA系プロセッサ202およびB系プロセッサ203の処理がそれぞれ一次中断される。
以上のようにして、本ケースのような故障が生じた際、メインメモリ205へのデータの書き込みが行われなくなり、その後のプログラムの実行が割込制御部220によって中断される。
次に、照合回路214、内部バス215、CRCC内部バス216、ECC回路232、メモリバス、CRCCメモリバス218、ECCメモリバス219およびメインメモリ205のいずれかで故障が起きたときの制御装置204の動作について図8を参照して説明する。
図8は、制御装置204の動作を示すタイミングチャートである。なお、T801〜T809は図6に示すT601〜T609と同じなので、それらの説明は省略する。
T809のタイミングの直後、すなわちリード中に、照合回路214、内部バス215、CRCC内部バス216、ECC回路232、メモリバス217、CRCCメモリバス218、ECCメモリバス219およびメインメモリ205のいずれかで故障が起きているとする(T810)。
メインメモリ205は、記憶しているデータをECC回路232から入力されたアドレスに従ってメモリバスを介してECC回路232に出力する。このとき、メインメモリ205は、記憶しているECCをECC回路232から入力されたアドレスに従ってECCメモリバス219を介してECC回路232に出力するとともに、記憶しているCRCCをECC回路232から入力されたアドレスに従ってCRCCメモリバス218を介してECC回路232に出力する。そして、ECC回路232のECC計算回路404は、照合回路214から内部バス215を介して入力されたアドレスと、メインメモリ205から取得したデータおよびCRCCから新たにECCを生成してECC比較回路406に出力する。
ECC計算回路404は、新たに生成したECCと、メインメモリ205から読み出したECCの排他的論理和を計算することにより、前述のエラーチェックを行う。そして、エラーチェック結果をECC比較回路406およびスイッチ制御回路411に出力する。本ケースではエラーチェック結果が‘ビットエラーなし’となるので、スイッチ制御回路411は、第四切替スイッチ409の端子S13とS14を接続し、第五切替スイッチ410の端子S15とS16を接続する。すると、メインメモリ205から取得したデータが、内部バス215、照合回路214およびA系プロセッサバス208を介してA系CRC回路209のCRC計算回路302へ出力される。このとき、メインメモリ205から取得したCRCCがCRCC内部バス216、照合回路214およびA系CRCCバスを介してA系CRC回路209のデジタル比較器304に出力される。なお、メインメモリ205から取得したデータおよびCRCCは、B系CRC回路212にも同様に入力される(T811)。
A系CRC回路209のCRC計算回路302は、A系プロセッサバス208を介してA系プロセッサ202から入力されたアドレスおよびECC回路232から入力されるデータから新たにCRCCを生成してA系CRC回路209のデジタル比較器304に出力する。このデジタル比較器304は、新たに生成したCRCCと、ECC回路232から入力されたCRCCとを比較し、その比較結果が一致であるか否かを判定する(T812)。
一方、B系CRC回路212のCRC計算回路302は、B系プロセッサバス211を介してB系プロセッサ203から入力されたアドレスおよびECC回路232から入力されるデータから新たにCRCCを生成してB系CRC回路212のデジタル比較器304に出力する。このデジタル比較器304は、新たに生成したCRCCと、ECC回路232から入力されたCRCCとを比較し、その比較結果が一致であるか否かを判定する(T813)。
本ケースでは、A系CRC回路209のデジタル比較器304およびB系CRC回路212のデジタル比較器304の両方あるいはいずれか一方が、不一致であると判定する。すると、不一致を検出した方のデジタル比較器304は、割込制御部220にCRC照合不一致(不一致)を出力し、A系割込要因レジスタあるいはB系割込要因レジスタに要因を登録する。そして、A系割込要因レジスタあるいはB系割込要因レジスタにより、T607の時点でA系プロセッサ202およびB系プロセッサ203の処理がそれぞれ一時中断される。
以上のようにして、本ケースのような故障が発生した際に、A系プロセッサ202およびB系プロセッサ203がデータを読み込めなくなり、その後のプログラムの実行が割込制御部220によって中断される。
[CPU装置の故障検出範囲]
次に、CPU装置102の故障検出範囲についてまとめる。
図9は、CPU装置102の故障検出範囲を示す表である。
図9(a)は、安全モードで稼働しているときのCPU装置102の故障検出範囲を示す表である。
前述したように、安全モードのときにCPU装置102を構成する各ブロックおよび各バス(以下、「故障検出対象」という)の故障を検出する構成要素としてCPU装置102はA系CRC回路209、B系CRC回路212、照合回路214およびECC回路232を備えている。
A系CRC回路209の故障検出対象は、A系プロセッサバス208と、照合回路214と、内部バス215と、CRCC内部バス216と、ECC回路232と、メモリバス217と、CRCCメモリバス218と、ECCメモリバス219と、メインメモリ205である。
B系CRC回路212の故障検出対象は、B系プロセッサバス211と、照合回路214と、内部バス215と、CRCC内部バス216と、ECC回路232と、メモリバス217と、CRCCメモリバス218と、ECCメモリバス219と、メインメモリ205である。
照合回路214の故障検出対象は、A系プロセッサ202、B系プロセッサ203、A系CRC回路209、B系CRC回路212、A系プロセッサバス208およびB系プロセッサバス211である。
ECC回路232の故障検出対象は、メモリバス217と、CRCCメモリバス218と、ECCメモリバス219と、メインメモリ205である。
図9(b)は、テストモードで稼働しているときのCPU装置102の故障検出範囲を示す表である。テストモードでは、表に示すようなテストプログラムを動作させることにより、A系プロセッサ202、B系プロセッサ203、A系CRC回路209、B系CRC回路212、A系プロセッサバス208、B系プロセッサバス211、照合回路214、内部バス215、CRCCメモリバス218、ECC回路232、メモリバス217、CRCCメモリバス218、ECCメモリバス219およびメインメモリ205の診断を独立して行う。なお、故障検出対象は図9(a)の表に示したものと同じなので、故障検出対象に関する説明は省略する。
以上説明したように、本実施形態は、複数のプロセッサからの出力を単に比較してそれらの出力の一致/不一致を判定することにより故障を検出するだけではなく、当該比較を行う手段の故障の検出を行えるようにした。そのため、CPU装置102での処理中(安全モード時)における、当該CPU装置102を構成する各ブロックおよび各バスの故障をより確実に検出することができる。そして、故障が検出されるとすぐに、当該処理を中止するようにした。例えば、潜在的な危険性の高いプロセス設備の制御中に何らかの故障が発生しても、すぐにその制御が中断されるので、安全性をより向上させる、という効果がある。
なお、本実施形態ではECC回路232を設けてあるが、このECC回路232を設けなくても上述したものと同様の効果が得られる。ただし、ECC回路232を設けない場合は、内部バス215とメモリバス217が接続されており、CRCC内部バス216とCRCCメモリバス218が接続されていることが必要となる。
以上、本発明の実施形態の例について説明したが、本発明は上記実施形態例に限定されるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りにおいて、他の変形例、応用例を含むことはいうまでもない。
101…制御システム、102…CPU装置、103…上位装置、104…下位装置、105…制御対象、106…ネットワーク、202…A系プロセッサ、203…B系プロセッサ、204…制御装置、205…メインメモリ、206…ネットワークコントローラ、207…CRC回路、208…A系プロセッサバス、209…A系CRC回路、210…A系CRCCバス、211…B系プロセッサバス、212…B系CRC回路、213…B系CRCCバス、214…照合回路、215…内部バス、216…CRCC内部バス、217…メモリバス、218…CRCCメモリバス、219…ECCメモリバス、220…割込制御部、221…出力切替スイッチ、229…データ記憶領域、230…CRCC記憶領域、231…ECC記憶領域、232…ECC回路、302…CRC計算回路、303…スイッチ、304…デジタル比較器、402…第一切替スイッチ、403…第二切替スイッチ、404…ECC計算回路、405…第三切替スイッチ、406…ECC比較回路、408…ECC訂正回路、409…第四切替スイッチ、410…第五切替スイッチ、411…スイッチ制御回路

Claims (2)

  1. 第一プロセッサが所定のプログラムを実行した結果としてメインメモリに格納される第一情報から第一誤り検出符号を作成し、予め前記メインメモリに記憶されている誤り検出符号である第二記憶情報と比較することで異常を検する第一符号生成部と、
    前記第一プロセッサと同一の演算結果を出力するべく構成されている第二プロセッサが前記プログラムを実行した結果として前記メインメモリに格納される第二情報から第二誤り検出符号を作成し、前記第二記憶情報と比較することで異常を検する第二符号生成部と、
    前記第一プロセッサ及び/又は前記第二プロセッサが前記メインメモリから前記第一情報あるいは前記第二情報である第一記憶情報を読み出す時、前記メインメモリから読み出した前記第一記憶情報と前記第二記憶情報に対し、必要に応じてエラー訂正を行って前記第一符号生成部及び前記第二符号生成部に供給する訂正処理部と、
    前記第一符号生成部が前記第一誤り検出符号と前記第二記憶情報との不一致を検出した場合、及び/又は前記第二符号生成部が前記第二誤り検出符号と前記第二記憶情報との不一致を検出した場合、前記第一プロセッサが前記第一記憶情報を前記メインメモリから読み出す動作及び前記第二プロセッサが前記第二記憶情報を前記メインメモリから読み出す動作を禁止する、割込制御部と、
    前記第一情報と前記第二情報が同一であるか否かを検出して前記割込制御部に報告すると共に、前記第一誤り検出符号と前記第二誤り検出符号が同一であるか否かを検出して前記割込制御部に報告することで、前記第一誤り検出符号と前記第二誤り検出符号とが同一でない時には、前記第一情報あるいは前記第二情報を第一記憶情報として前記メインメモリに書き込むことを禁止する照合部と
    を備える制御装置。
  2. 前記割込制御部は、前記第一符号生成部、前記第二符号生成部及び前記照合部が前記故障の要因を登録する割込要因レジスタを有し、前記第一符号生成部が前記第一誤り検出符号と前記第二記憶情報との不一致を検出した場合、及び/又は前記第二符号生成部が前記第二誤り検出符号と前記第二記憶情報との不一致を検出した場合、前記メインメモリ又は前記訂正処理部に起因する故障として、前記割込要因レジスタに登録すると共に、前記照合部が前記第一情報と前記第二情報との不一致を検出した場合、及び/又は前記照合部が前記第一誤り検出符号と前記第二誤り検出符号との不一致を検出した場合、前記第一符号生成部、前記第二符号生成部、前記第一プロセッサ又は前記第二プロセッサに起因する故障として、前記割込要因レジスタに登録する、
    請求項1記載の制御装置。
JP2013118170A 2013-06-04 2013-06-04 制御装置 Expired - Fee Related JP5563700B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013118170A JP5563700B2 (ja) 2013-06-04 2013-06-04 制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013118170A JP5563700B2 (ja) 2013-06-04 2013-06-04 制御装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2009001899A Division JP5344936B2 (ja) 2009-01-07 2009-01-07 制御装置

Publications (2)

Publication Number Publication Date
JP2013211049A true JP2013211049A (ja) 2013-10-10
JP5563700B2 JP5563700B2 (ja) 2014-07-30

Family

ID=49528738

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013118170A Expired - Fee Related JP5563700B2 (ja) 2013-06-04 2013-06-04 制御装置

Country Status (1)

Country Link
JP (1) JP5563700B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020098487A (ja) * 2018-12-18 2020-06-25 ファナック株式会社 機械の制御装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06161798A (ja) * 1992-11-24 1994-06-10 Hitachi Ltd 情報処理装置
JPH06348516A (ja) * 1993-06-08 1994-12-22 Hitachi Ltd 情報処理装置
JPH11338833A (ja) * 1998-05-22 1999-12-10 Hitachi Ltd マルチプロセッサ型コントローラ及びスケーラブルコントローラシステム
JP2006285631A (ja) * 2005-03-31 2006-10-19 Yokogawa Electric Corp 二重化システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06161798A (ja) * 1992-11-24 1994-06-10 Hitachi Ltd 情報処理装置
JPH06348516A (ja) * 1993-06-08 1994-12-22 Hitachi Ltd 情報処理装置
JPH11338833A (ja) * 1998-05-22 1999-12-10 Hitachi Ltd マルチプロセッサ型コントローラ及びスケーラブルコントローラシステム
JP2006285631A (ja) * 2005-03-31 2006-10-19 Yokogawa Electric Corp 二重化システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020098487A (ja) * 2018-12-18 2020-06-25 ファナック株式会社 機械の制御装置
JP7359543B2 (ja) 2018-12-18 2023-10-11 ファナック株式会社 機械の制御装置

Also Published As

Publication number Publication date
JP5563700B2 (ja) 2014-07-30

Similar Documents

Publication Publication Date Title
JP5344936B2 (ja) 制御装置
US10114356B2 (en) Method and apparatus for controlling a physical unit in an automation system
Johnson An introduction to the design and analysis of fault-tolerant systems
US10379946B2 (en) Controller
CN111033470A (zh) 确保双处理器架构中的校正程序序列
JP2013175118A (ja) 制御装置、及びそのメモリ故障検出方法、その自己診断方法
KR20050121729A (ko) 프로그램 제어식 유닛 및 방법
JP5563700B2 (ja) 制御装置
JP6332134B2 (ja) メモリ診断回路
KR101983125B1 (ko) 페일세이프 계산들을 수행하기 위한 방법
JP5352815B2 (ja) 制御装置および制御方法
JP2019191770A (ja) 故障検出装置、故障検出方法及び故障検出プログラム
US12040032B2 (en) Electronic circuit and method for self-diagnosis of a data memory
US20240013847A1 (en) Electronic circuit and method for self-diagnosis of a data memory
JP2014225110A (ja) 安全コントローラ
US10262752B2 (en) Method and apparatus for identifying erroneous data in at least one memory element
WO2016042751A1 (ja) メモリ診断回路
CN116931824A (zh) 以计算机辅助的方式运行存储单元和执行应用程序的方法
CN116931825A (zh) 运行存储单元以及执行具有存储器检查的应用程序的方法
JP2018185855A (ja) フェイルセーフ計算を実施するための方法
Perrone et al. Department of Electrical Engineering Charlottesville, Virginia bwj@ virginia. edu
Zhanyuan et al. A novel comparator with hamming code correction for Safety Programmable Logic Controller
Thiemann et al. Concept for a safety-controller based on uncertified hardware
JP2011203965A (ja) 自己診断装置及び自己診断方法
KR20060050595A (ko) 회로 장치 및 체크 방법

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140326

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140513

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140520

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140612

R150 Certificate of patent or registration of utility model

Ref document number: 5563700

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees