JP5563700B2 - Control device - Google Patents
Control device Download PDFInfo
- Publication number
- JP5563700B2 JP5563700B2 JP2013118170A JP2013118170A JP5563700B2 JP 5563700 B2 JP5563700 B2 JP 5563700B2 JP 2013118170 A JP2013118170 A JP 2013118170A JP 2013118170 A JP2013118170 A JP 2013118170A JP 5563700 B2 JP5563700 B2 JP 5563700B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- ecc
- processor
- main memory
- crcc
- 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.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 claims description 171
- 238000012795 verification Methods 0.000 claims description 58
- 238000001514 detection method Methods 0.000 claims description 43
- 238000012937 correction Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 13
- 230000005856 abnormality Effects 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 description 50
- 238000000034 method Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000012360 testing method Methods 0.000 description 9
- 230000007704 transition Effects 0.000 description 7
- 238000003745 diagnosis Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000004092 self-diagnosis Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012631 diagnostic technique Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Hardware Redundancy (AREA)
Description
本発明は、プログラマブル電子装置を備える制御装置に関する。 The present invention relates to a control device including a programmable electronic device.
原子力プラントや化学プラントなど潜在的な危険性の高いプロセス設備では、万が一の事態に作業員および周辺環境への影響を低減するため、隔壁等の防護設備による受動的な対策および緊急停止装置等の安全装置を用いる能動的な対策が講じられる。このうち、安全装置等の制御には、従来リレー等の電磁的・機械的な手段により実現されていた。 In potentially dangerous process facilities such as nuclear power plants and chemical plants, in order to reduce the impact on workers and the surrounding environment in the event of an emergency, passive measures such as protective equipment such as partition walls, emergency stop devices, etc. Active measures using safety devices are taken. Of these, control of safety devices and the like has been conventionally realized by electromagnetic and mechanical means such as relays.
しかし、近年、プログラマブル電子装置(Programmable Logic Controller:PLC)に代表されるプログラム可能な制御機器における技術の発展に伴い、これらを安全制御システムの制御手段として利用するニーズが高まっている。 However, in recent years, with the development of technology in programmable control equipment represented by programmable electronic devices (Programmable Logic Controller: PLC), there is an increasing need to use these as control means of a safety control system.
例えば、IEC61508は、そのような動向に対応して発行された国際規格であり、電気的/電子的/プログラム可能な電子的装置を安全制御システムの一部に利用する場合の要件が規定されている(非特許文献1)。 For example, IEC61508 is an international standard issued in response to such a trend, and requirements for using an electrical / electronic / programmable electronic device as part of a safety control system are defined. (Non-Patent Document 1).
IEC61508では、安全制御システムの能力の尺度としてSafety Integrity Level(SIL)を定義し、1から4までのレベルに対応する水準の要求事項を規定している。SILが高いほどプロセス設備の持つ潜在的な危険性を低減できる度合が大きいことを示す。すなわち、プロセス設備の異常を検出した際、どれだけ確実に所定の安全制御を実施できるかを意味する。 In IEC61508, Safety Integrity Level (SIL) is defined as a measure of the capability of a safety control system, and requirements of levels corresponding to levels from 1 to 4 are defined. The higher the SIL, the greater the degree to which the potential danger of the process equipment can be reduced. That is, it means how reliably predetermined safety control can be performed when an abnormality in the process equipment is detected.
安全制御装置は、通常稼働状態で非活性となっていても、プロセス設備の異常発生時には直ちに活性化することを求められる。そのため、常時自己診断を行い、自身の健全性をチェックし続けることが重要となる。また、高いSILが要求される安全制御システムでは、未検出の故障によりシステムが不動作となる確率を極小とするため、広範囲・高精度な自己診断を実施する必要がある。 Even if the safety control device is inactive in the normal operation state, it is required to be activated immediately when an abnormality occurs in the process equipment. Therefore, it is important to always perform self-diagnosis and check its own soundness. In addition, in a safety control system that requires a high SIL, it is necessary to perform a wide range and high accuracy self-diagnosis in order to minimize the probability that the system will not operate due to an undetected failure.
IEC61508では、安全制御装置を構成する要素部品の種類ごとに、各々適用される自己診断技法を紹介し、それぞれの技法の有効性を診断率という形で示している。診断率は、各構成要素における全故障のうち、その診断技法を採用したとき検出可能な故障の割合を示す。例えば、RAMの診断技法"abraham"では、最高99%の診断率を主張可能であるとされている(特許文献2)。 In IEC61508, self-diagnosis techniques to be applied are introduced for each type of component parts constituting the safety control device, and the effectiveness of each technique is shown in the form of a diagnostic rate. The diagnosis rate indicates the proportion of failures that can be detected when the diagnosis technique is adopted among all failures in each component. For example, it is said that a diagnosis rate of up to 99% can be claimed in the RAM diagnostic technique “abraham” (Patent Document 2).
また、PLCの構成要素の一つであるプロセッサの故障検出手段として、複数のプロセッサを用いて、相互の出力結果の整合性を監視する方法が有効である。 In addition, a method of monitoring the consistency of the output results of each other using a plurality of processors is effective as a failure detection means for a processor that is one of the components of the PLC.
複数のプロセッサ出力を相互診断する方式としては、各プロセッサが同様の制御処理を同時に実行し、その出力が一致していることを確認しあう手段が効果的である。 As a method for mutually diagnosing the outputs of a plurality of processors, it is effective to perform a similar control process at the same time and confirm that the outputs match each other.
例えば、非同期に動作する複数のプロセッサの出力を照合することにより、プロセッサが故障しても即時検出するという技術がある(特許文献1)。 For example, there is a technique in which the outputs of a plurality of processors operating asynchronously are collated to detect immediately even if a processor fails (Patent Document 1).
特許文献1に記載されたものは、プロセッサ照合手段によりプロセッサの診断ができる。しかしながら、プロセッサ照合手段の出力からメインメモリまでのメモリインターフェースで故障が発生した場合に、ハード的な検出手段がないため、ソフトウェアによる故障検出を行わなければならない。プロセッサのソフトウェアによる診断処理はメモリに期待値をライトリードバック比較することで、メモリインターフェースの診断を行うことは可能である。しかし、n回目の診断処理とn+1回目の診断処理の間の実稼働期間は、異常を検出できず不安定なまま動作継続する可能性がある、という問題があった。 In the device described in Patent Document 1, the processor can be diagnosed by the processor verification means. However, when a failure occurs in the memory interface from the output of the processor verification means to the main memory, there is no hardware detection means, so failure detection by software must be performed. In the diagnosis process by the processor software, the memory interface can be diagnosed by comparing the read / write-back value with the expected value in the memory. However, there is a problem that during the actual operation period between the n-th diagnosis process and the (n + 1) -th diagnosis process, an abnormality may not be detected and the operation may continue without being unstable.
本発明は斯かる点に鑑みてなされたものであり、故障を即時かつ確実に検出して不安定な状態で処理し続けることを阻止できるようにすることを目的とする。 The present invention has been made in view of such a point, and an object of the present invention is to be able to immediately and surely detect a failure and prevent it from being processed in an unstable state.
上記課題を解決するため、本発明の制御装置は、第一プロセッサが所定のプログラムを実行した結果としてメインメモリに格納される第一情報から第一誤り検出符号を作成し、予めメインメモリに記憶されている誤り検出符号である第二記憶情報と比較することで異常を検出する第一符号生成部と、第一プロセッサと同一の演算結果を出力するべく構成されている第二プロセッサがプログラムを実行した結果としてメインメモリに格納される第二情報から第二誤り検出符号を作成し、第二記憶情報と比較することで異常を検出する第二符号生成部とを備える。さらに、第一プロセッサ及び/又は第二プロセッサがメインメモリから第一情報あるいは第二情報である第一記憶情報を読み出す時、メインメモリから読み出した第一記憶情報と第二記憶情報に対し、必要に応じてエラー訂正を行って第一符号生成部及び第二符号生成部に供給する訂正処理部と、第一符号生成部が第一誤り検出符号と第二記憶情報との不一致を検出した場合、及び/又は第二符号生成部が第二誤り検出符号と第二記憶情報との不一致を検出した場合、第一プロセッサが第一記憶情報をメインメモリから読み出す動作及び第二プロセッサが第二記憶情報をメインメモリから読み出す動作を禁止する、割込制御部とを備える。さらに、第一情報と第二情報が同一であるか否かを検出して割込制御部に報告すると共に、第一誤り検出符号と第二誤り検出符号が同一であるか否かを検出して割込制御部に報告することで、第一誤り検出符号と第二誤り検出符号とが同一でない時には、第一情報あるいは第二情報を第一記憶情報としてメインメモリに書き込むことを禁止する照合部とを備える。 In order to solve the above problem, the control device of the present invention creates a first error detection code from first information stored in the main memory as a result of the first processor executing a predetermined program, and stores it in the main memory in advance. a first code generator which detect the in abnormality by comparing the second stored information is an error detection code which has been, the second processor being configured to output a first processor and the same operation result program create a second error detection code from the second information stored in the main memory as a result of performing, and a second code generator to detect the in abnormality by comparing the second storage information. Further, when the first processor and / or the second processor reads the first information or the first memory information as the second information from the main memory, it is necessary for the first memory information and the second memory information read from the main memory. When the error correction is performed according to the correction processing unit supplied to the first code generation unit and the second code generation unit, and the first code generation unit detects a mismatch between the first error detection code and the second storage information And / or when the second code generation unit detects a mismatch between the second error detection code and the second storage information, the first processor reads the first storage information from the main memory, and the second processor stores the second memory. An interrupt control unit that prohibits an operation of reading information from the main memory. Further, it detects whether the first information and the second information are the same and reports them to the interrupt control unit, and detects whether the first error detection code and the second error detection code are the same. By reporting to the interrupt control unit, when the first error detection code and the second error detection code are not the same, it is prohibited to write the first information or the second information to the main memory as the first storage information A part.
本発明の制御装置では、ライト時において照合部が第一情報と第二情報が一致するか否かを検出することにより、第一プロセッサ、第二プロセッサおよびこれらのプロセッサと照合部の間にあるバスインターフェースとの故障を検出する。そして、照合部が第一誤り検出符号と第二誤り検出符号が一致するか否かを検出することにより、第一符号生成部、第二符号生成部およびこれらの生成部と照合部の間にあるバスインターフェースの故障を検出する。 In the control apparatus of the present invention, the collation unit detects whether the first information and the second information match at the time of writing, so that the first processor, the second processor, and these processors and the collation unit are present. Detects a failure with the bus interface. Then, the collation unit detects whether the first error detection code and the second error detection code match, so that the first code generation unit, the second code generation unit, and between these generation unit and the collation unit A failure of a certain bus interface is detected.
すなわち、本発明の制御装置では、照合部は、第一情報あるいは第二情報に生じるビットエラーを常に検出することができる。また、照合部は、検出したビットエラーに基づいて第一情報および第二情報のメインメモリに対する書き込みの制御を行う。それゆえ、本発明では、ライト中に各プロセッサあるいは各バスインターフェースの故障によりビットエラーが生じた場合、第一情報あるいは第二情報がメインメモリに書き込まれないようにすることができる。 That is, in the control device of the present invention, the collation unit can always detect a bit error occurring in the first information or the second information. The collation unit controls the writing of the first information and the second information to the main memory based on the detected bit error. Therefore, in the present invention, when a bit error occurs due to a failure of each processor or each bus interface during writing, the first information or the second information can be prevented from being written to the main memory.
本発明の制御装置では、リード時において照合部が第一情報と第二情報が一致するか否かを検出することにより、第一プロセッサ、第二プロセッサおよびこれらのプロセッサと照合部の間にあるバスインターフェースとの故障を検出する。そして、第一照合部は故障が検出された場合、メインメモリから記憶情報を読み出さないようにしている。 In the control device of the present invention, the collation unit detects whether the first information and the second information match at the time of reading, so that the first processor, the second processor, and these processors and the collation unit are present. Detects a failure with the bus interface. The first verification unit prevents the stored information from being read from the main memory when a failure is detected.
メインメモリから記憶情報を読み出した場合に、第一符号生成部は、記憶情報の第一記憶情報および第一情報で新たに生成した誤り検出符号と、記憶情報の第二記憶情報とが同一であるか否かを検出することにより、メインメモリおよび当該メインメモリと第一符号生成部との間にあるバスインターフェースの故障を検出する。また、第二符号生成部は、記憶情報の第一記憶情報および第二情報で新たに生成した誤り検出符号と、記憶情報の第二記憶情報とが同一であるか否かを検出することにより、メインメモリおよび当該メインメモリと第一符号生成部との間にあるバスインターフェースの故障を検出する。 When the storage information is read from the main memory, the first code generation unit is configured such that the first storage information of the storage information and the error detection code newly generated from the first information are the same as the second storage information of the storage information. By detecting whether or not there is, a failure of the main memory and a bus interface between the main memory and the first code generation unit is detected. Further, the second code generation unit detects whether or not the error detection code newly generated from the first storage information and the second information of the storage information is the same as the second storage information of the storage information. The failure of the main memory and the bus interface between the main memory and the first code generation unit is detected.
第一符号生成部および第二符号生成部は、いずれか一方の符号生成部で故障を検出した場合に、第一プロセッサおよび第二プロセッサそれぞれに対して第一記憶情報の入力を行わないようにしている。それゆえ、本発明では、リード中に各プロセッサあるいは各バスインターフェースの故障によりビットエラーが生じた場合、当該ビットエラーを誤検出することなく、第一記憶情報が第一プロセッサおよび第二プロセッサに入力させないことができる。 The first code generation unit and the second code generation unit do not input the first storage information to each of the first processor and the second processor when any one of the code generation units detects a failure. ing. Therefore, in the present invention, when a bit error occurs due to a failure of each processor or each bus interface during reading, the first storage information is input to the first processor and the second processor without erroneously detecting the bit error. You can not let it.
本発明によれば、各プロセッサあるいは各バスインターフェースに発生した故障を確実に検出できる。ライト時に故障を検出した場合、メインメモリに対する情報の書き込みを禁止し、リード時に故障を検出した場合、各プロセッサに対する情報の入力を禁止する。つまり、故障を即時かつ確実に検出して不安定な状態で処理し続けることを阻止できる。これにより、安全性をより向上させる。 According to the present invention, a failure occurring in each processor or each bus interface can be reliably detected. When a failure is detected during writing, writing of information to the main memory is prohibited, and when a failure is detected during reading, input of information to each processor is prohibited. That is, it is possible to prevent the failure from being detected immediately and reliably and continuing to be processed in an unstable state. Thereby, safety is further improved.
以下、発明を実施するための最良の形態(以下、「実施の形態」とする)について以下の順序で説明を行う。以下に述べる実施の形態は、本発明の好適な具体例である。そのため、技術的に好ましい種々の限定が付されている。しかしながら、本発明の範囲は、下記の説明において特に本発明を限定する旨の記載がない限り、これらの形態に限られるものではない。例えば、以下の説明で挙げる各パラメータの数値的条件は好適例に過ぎず、説明に用いた各図における寸法、形状および配置関係も概略的なものである。 Hereinafter, the best mode for carrying out the invention (hereinafter referred to as “embodiment”) will be described in the following order. The embodiments described below are preferred specific examples of the present invention. Therefore, various technically preferable limitations are attached. However, the scope of the present invention is not limited to these embodiments unless otherwise specified in the following description. For example, the numerical conditions of each parameter given in the following description are only suitable examples, and the dimensions, shapes, and arrangement relationships in the drawings used for the description are also schematic.
1.一実施形態
(1)制御システムの構成
(2)CPU装置の構成
(3)A系CRC回路の構成の一例
(4)ECC回路の構成の一例
(5)CPU装置のモード遷移
(6)CPU装置の動作
(7)CPU装置の故障検出範囲
1. Embodiments (1) Configuration of control system (2) Configuration of CPU device (3) Example of configuration of A system CRC circuit (4) Example of configuration of ECC circuit (5) Mode transition of CPU device (6) CPU device (7) CPU device failure detection range
<1.一実施形態>
[制御システムの構成]
以下、本発明の実施の形態の例について、図1〜図9を参照して説明する。
図1は、発明の一実施形態である制御システム101を示すブロック図である。
制御システム101は、CPU装置102と、上位装置103と、下位装置104と、制御対象105よりなる。
<1. One Embodiment>
[Control system configuration]
Examples of embodiments of the present invention will be described below with reference to FIGS.
FIG. 1 is a block diagram showing a control system 101 according to an embodiment of the invention.
The control system 101 includes a
上位装置103は、所定のプログラムを記憶しており、CPU装置102とネットワーク106で接続されている。
The
CPU装置102は、上位装置103からネットワーク106を介して所定のプログラムをダウンロードし、当該プログラムに基づいて演算を行う。また、CPU装置102は下位装置104ともネットワーク106で接続されており、演算結果を当該ネットワークを介して下位装置104に出力する。
The
このCPU装置102は、後述するように複数のプロセッサを備えており、一般モードあるいは安全モードのいずれかで、プログラムに基づいた演算を行う。一般モードは、各プロセッサで独立した演算を行うモードある。また、安全モードは、各プロセッサで同一の演算を行い、その演算結果が同一であるか否かを検証することにより、プロセッサの健全性を確認するモードである。さらに、CPU装置102は、テストモードで稼動する場合もある。テストモードは、予めCPU装置102に記憶されたテストプログラムに基づいて、CPU装置102が正常に動作するか否かを検証するモードである。一般モードおよび安全モード時のCPU装置102は基本的に演算結果を下位装置104に入力するが、テストモード時のCPU装置102は下位装置104になにも出力しない。すなわち、テストモードは、CPU装置102による下位装置104の制御が行われていないときに行われる。なお、一般モード、安全モードおよびテストモードの切り替えは、予めCPU装置102に設定されたスケジューラにより行われる。
As will be described later, the
下位装置104は、制御対象105との間で制御情報の入出力を行うインターフェースである。下位装置104は、制御対象105と接続されており、CPU装置102から入力される演算結果に基づいて制御対象105を動作させる。この制御対象105は、制御を行う際に安全性が求められる、例えば原子力プラントや化学プラント等の潜在的な危険性の高いプロセス設備である。
The
[CPU装置の構成]
次に、制御システム101を構成するCPU装置102について図2を参照して説明する。
図2は、CPU装置102を示すブロック図である。なお、以下に示すCPU装置102は、CPU装置102が上位装置103からダウンロードしたプログラムに基づいて、安全モードで演算を行う場合を想定している。ただし、CPU装置102が、上位装置103から所定のプログラムをダウンロードするときだけは、安全モードとは異なる動作を行う。
[Configuration of CPU device]
Next, the
FIG. 2 is a block diagram showing the
まず、CPU装置102が、上位装置103から所定のプログラムをダウンロードするときに使用する構成について説明する。このときCPU装置102において使用される構成は、A系プロセッサ202と、B系プロセッサ203と、制御装置204の一部と、メインメモリ205である。制御装置204の一部とは、ネットワークコントローラ206、CRC回路207およびECC回路232である。以下、本例では、CPU装置102を構成するプロセッサがA系プロセッサ202およびB系プロセッサ203という2個の場合について説明するが、プロセッサの台数に制限はなく、それにより本発明が制約を受けることはない。
First, a configuration used when the
上位装置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に出力する。
Download of a predetermined program from the
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についてのより詳細な説明は安全モードに関する構成の説明を行う箇所に記載する。
The
メインメモリ205は、データ記憶領域229、CRCC記憶領域230およびECC記憶領域231という3つの領域を有している。データ記憶領域229は、プログラムが書き込まれる領域である。CRCC記憶領域230は、ネットワークコントローラ206を経由してCRC回路で生成されたCRCCが書き込まれる領域である。ECC記憶領域231は、ネットワークコントローラ206経由してECC回路232で生成されたECCが書き込まれる領域である。
The
次に、CPU装置102が、上位装置103からダウンロードしたプログラムに基づいて安全モードで演算を行う際に使用される構成について説明する。このときCPU装置102において使用される構成は、A系プロセッサ202と、B系プロセッサ203と、CRC回路207を除いた制御装置204と、メインメモリ205である。
Next, a configuration used when the
A系プロセッサ202は、上位装置103からダウンロードした所定のプログラムを実行してタスクを処理する。その際、タスクによっては情報のライト/リードを制御装置204を介してメインメモリ205に対し行うものもある。A系プロセッサ202は、制御装置204とA系プロセッサバス208により接続されており、A系プロセッサバス208を介して制御装置204に情報の入出力を行う。ライト時には、A系プロセッサ202は、アドレス、データおよびコマンドをA系プロセッサバス208を介して制御装置204に出力する。一方、リード時には、A系プロセッサ202は、アドレスおよびコマンドをA系プロセッサバス208を介して制御装置204に出力する。
The
データおよびアドレスは、32ビット幅のデータ列である。一方、コマンドは、制御装置204およびメインメモリ205を制御する1ビットのデータである。本例では、制御装置204およびメインメモリ205は、コマンドが‘1’のときにライトに対応する動作を行い、コマンドが‘0’のときにリード動作を行うものとする。
Data and address are 32-bit wide data strings. On the other hand, the command is 1-bit data for controlling the
また、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に出力する。
The
制御装置204は、当該制御装置204を構成する各ブロックおよびバスと、A系プロセッサ202と、B系プロセッサ203と、メインメモリ205に故障があるか否かを検出するものである。
制御装置204は、A系CRC回路209と、B系CRC回路212と、照合回路214と、ECC回路232と、割込制御部220とを含んで構成される。さらに、制御装置204は、ネットワークコントローラ206と、出力切替スイッチ221を含む。
The
The
A系CRC回路209は、入力される所定の桁数のビット幅のデータ列からCRCCを生成する回路である。
The
本例のA系CRC回路209は、ライト時とリード時では異なる処理を行う。
ライト時のA系CRC回路209は、A系プロセッサ202から入力されるアドレスおよびデータを併せた64ビット幅のデータ列からCRCCを生成する。また、A系CRC回路209は、照合回路214とA系CRCCバス210で接続されており、生成したCRCCを照合回路214へ出力する。
The
The
リード時のA系CRC回路209は、A系プロセッサ202から入力されるアドレスおよびライト時にメインメモリ205に書き込まれたデータを併せた64ビット幅のデータ列から新たにCRCCを生成する。そして、当該メインメモリ205に記憶されたCRCCと、新たに生成したCRCCとが同じデータ列であるか否かを判定する。
The
このA系CRC回路209は、割込制御部220と接続されており、その判定結果(一致/不一致)に基づいた論理信号(以下、「A系CRCC照合不一致」という)を生成して割込制御部220に出力する。
The
B系CRC回路212は、A系CRC回路209と同じ回路であり、所定の桁数のビット幅のデータ列からCRCCを生成する回路である。
The B-
本例のB系CRC回路212は、ライト時とリード時では異なる処理を行う。
The B-
ライト時のB系CRC回路212は、B系プロセッサ203から入力されるアドレスおよびデータを併せた64ビット幅のデータ列からCRCCを生成する。また、B系CRC回路212は、照合回路214とB系CRCCバス213で接続されており、生成したCRCCを照合回路214へ出力する。
The B-
リード時のB系CRC回路212は、B系プロセッサ203から入力されるアドレスおよびライト時にメインメモリ205に書き込まれたデータを併せた64ビット幅のデータ列から新たにB系CRCCを生成する。そして、当該メインメモリ205に記憶されたCRCCと、新たに生成したCRCCとが同じデータ列であるか否かを判定する。
The B-
このB系CRC回路212は、割込制御部220と接続されており、その判定結果(一致/不一致)に基づいた論理信号(以下、「B系CRCC照合不一致」という)を生成して割込制御部220に出力する。以下、A系CRC回路209で生成されるCRCCをA系CRCCと記載し、B系CRC回路212で生成されるCRCCをB系CRCCと記載する。
The B-
照合回路214は、入力される2つのデータ列の一致/不一致を判定する回路である。この照合回路214は、ECC回路232と内部バス215およびCRCC内部バス216という2本のバスでECC回路232と接続されている。さらに、照合回路214は、割込制御部220とも接続されている。
The
ライト時の照合回路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に出力する。
The
リード時の照合回路214は、A系プロセッサ202から入力されるアドレスのデータ列を、B系プロセッサ203から入力されるアドレスのデータ列と比較して一致/不一致を判定する。このとき照合回路214は、その判定結果(一致/不一致)に基づいて照合不一致を生成して割込制御部220に出力する。相互のデータ列が一致しているすなわち、判定結果が一致である場合に限り、照合回路214は、A系プロセッサ202から入力されるアドレスおよびコマンドを内部バス215を介してECC回路232に出力する。
The collating
ECC回路232は、所定の桁数のビット幅のデータ列からECCを生成する。また、生成したECCを利用することにより、当該データ列のエラーを検出し、検出したエラーが訂正可能な1ビットエラーの場合に当該データ列を訂正する。
The
ECC回路232は、ライト時とリード時では異なった処理を行う。このECC回路232は、メインメモリ205の間でデータ列のやりとりができるように、メモリバス217、CRCCメモリバス218およびECCメモリバス219によって接続されている。
The
ライトのECC回路232は、照合回路214から入力されるアドレス、データおよびCRCCを併せた72ビット幅のデータ列でECCを生成する。そして、生成したECCをECCメモリバス219を介してメインメモリ205に出力する。そして、ECC回路232は、照合回路214から入力されるアドレス、データ、コマンドをメモリバス217を介してメインメモリ205に出力し、照合回路214から入力されるCRCCをCRCCメモリバス218を介してメインメモリ205に出力する。
The
リード時のECC回路232は、メインメモリ205に書き込まれているデータと、照合回路214から入力されるアドレスおよびCRCCとを併せた72ビット幅のデータ列から新たにECCを生成する。そして、ECC回路232は、新たに生成したECCと、メインメモリ205に書き込まれたECCとの一致不一致を判定する。また、ECC回路232は、割込制御部220と接続されており、その判定結果(一致/不一致)に基づいた論理信号(以下、「ECC照合不一致」という)を生成して割込制御部220に出力する。
The
判定結果が一致の場合、ECC回路232は、メインメモリ205に書き込まれているデータおよびCRCCを照合回路214を介してA系CRC回路209およびB系CRC回路212に出力するとともに、ECC照合不一致(一致)を生成して割込制御部220に出力する。
When the determination result is coincident, the
判定結果が不一致の場合、ECC回路232は、新たに生成したECCおよびメインメモリ205に書き込まれているECCを利用してメインメモリ205に書き込まれたECCおよびCRCCのエラーチェックを行う。
If the determination results do not match, the
訂正可能なエラーの場合は、ECC回路232は、データおよびCRCCのエラー訂正を行い、エラー訂正を行ったデータおよびCRCCを照合回路214を介してA系CRC回路209およびB系CRC回路212に出力するとともに、ECC照合不一致(一致)を生成して割込制御部220に出力する。
In the case of a correctable error, the
訂正不可能なエラーの場合は、ECC回路232は、ECC照合不一致(不一致)を生成して割込制御部220に出力する。
In the case of an uncorrectable error, the
割込制御部220は、A系割込要求をA系プロセッサ202に出力し、B系割込要求をB系プロセッサ203に出力する。また、割込制御部220は、A系割込要求とB系割込要求を制御する機能を備え、A系割込要求をアサートするためのA系割込要求レジスタと、割込要因を示すA系割込要因レジスタで構成する。また、B系割込要求をアサートするためのB系割込要求レジスタと、割込要因を示すB系割込要因レジスタを備える。
The interrupt control unit 220 outputs an A-system interrupt request to the
割込制御部220は、A系プロセッサ202に対するA系割込要求とB系プロセッサ203に対するB系割込要求独立に制御することが可能である。
The interrupt control unit 220 can control the A-system interrupt request to the
A系割込要求レジスタと、B系割込要求レジスタ、A系割込要因レジスタ、B系割込要因レジスタはA系プロセッサ202とB系プロセッサ203からアクセスすることが可能な構造となっている。
The A system interrupt request register, the B system interrupt request register, the A system interrupt factor register, and the B system interrupt factor register can be accessed from the
割込制御部220は、各プロセッサの異常または各プロセッサからメインメモリ205までのインターフェースの異常およびメインメモリ205の異常を検出すると、制御装置204を不安全な状態から回避する機能を備える。すなわち、割込制御部220は、A系CRC回路209からのA系CRC照合不一致、B系CRC回路212からB系CRC照合不一致、照合回路214からの照合不一致あるいはECC回路232からのECC照合不一致のいずれか一つの論理信号に基づいて、A系プロセッサ202およびB系プロセッサ203が現在行っている演算を中断させるか否かを決定する。割込制御部220は他の割込要因についても制御を行っているが、本発明では言及しない。
The interrupt control unit 220 has a function of avoiding the
ところで、出力切替スイッチ221は、A系プロセッサ202、B系プロセッサ203およびネットワークコントローラ206に接続されている。この出力切替スイッチ221は、A系プロセッサ202あるいはB系プロセッサ203の演算結果のいずれか一方を選択し、選択した方プロセッサの演算結果をネットワークコントローラ206に出力する。つまり、出力切替スイッチ221は、選択した方のプロセッサの演算結果がネットワークコントローラ206を介してネットワーク106上にある上位装置103あるいは下位装置104に出力されるようにするためのスイッチである。
Incidentally, the
[A系CRC回路の構成]
次に、A系CRC回路209およびB系CRC回路212の回路構成の一例について図3を参照して説明する。
図3は、A系CRC回路209の一例およびその周辺を示す図である。なお、A系CRC回路209とB系CRC回路212は同じ回路であるので、B系CRC回路212の説明は省略する。
[Configuration of A system CRC circuit]
Next, an example of the circuit configuration of the A
FIG. 3 is a diagram showing an example of the
A系CRC回路209は、A系プロセッサバス208を介してA系プロセッサ202および照合回路214と接続されているCRC計算回路302と、A系プロセッサ202を介してA系プロセッサ202および照合回路214と接続されているスイッチと、デジタル比較器304とよりなる。
The
スイッチの端子S2はCRC計算回路302およびデジタル比較器304と接続されており、端子S1はCRCバスで照合回路214と接続されており、端子S3はデジタル比較器304と接続されている。このスイッチは、A系プロセッサ202から入力されるコマンドに基づいて接続する端子を切り替える。より具体的には、スイッチは、コマンドが‘1’のとき、すなわちライト時に端子S1と端子S2を接続し、入力されるコマンドが‘0’のとき、すなわちリード時に端子S1と端子S3を接続する。
The switch terminal S2 is connected to the
CRC計算回路302は、ライト時にA系プロセッサ202から入力されるアドレスおよびデータでA系CRCCを計算し、計算したA系CRCCをA系CRCCバス210を介して照合回路214へ出力する。
The
また、CRC計算回路302は、リード時にA系プロセッサ202から入力されるアドレスおよび照合回路214を介してメインメモリ205から取得したデータでA系CRCCを計算し、計算したA系CRCCをデジタル比較器304に出力する。
The
デジタル比較器304は、リード時のみ動作する。デジタル比較器304は、CRC計算回路302が計算したA系CRCCと、照合回路214を介してメインメモリ205から取得したCRCCを比較し、その比較結果に応じた論理信号であるA系CRCC照合不一致を割込制御部220に出力する。
The
[ECC回路の構成]
次に、ECC回路232の回路構成の一例について図4を参照して説明する。
図4は、ECC回路232の一例およびその周辺を示す図である。
[Configuration of ECC circuit]
Next, an example of the circuit configuration of the
FIG. 4 is a diagram illustrating an example of the
ECC回路232は、第一切替スイッチ402と、第二切替スイッチ403と、ECC計算回路404と、第三切替スイッチ405と、ECC比較回路406と、ECC訂正回路408と、第四切替スイッチ409と、第五切替スイッチ410と、スイッチ制御回路411よりなる。
The
第一切替スイッチ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を接続する。
The
The terminal S4 of the
第二切替スイッチ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を接続する。
The
The terminal S7 of the
ライト時のECC計算回路404は、内部バス215を介して照合回路214から入力されるアドレスおよびデータと、CRCC内部バス216を介して照合回路214から入力されるCRCCからECCを生成し、生成したECCを第三切替スイッチ405を介して出力する。
The
一方、リード時のECC計算回路404は、メモリバス217を介してメインメモリ205から取得するデータと、CRCCメモリバス218を介してメインメモリ205から取得するCRCCと、内部バス215を介して照合回路214から入力されるアドレスからECCを生成し、生成したECCを第三切替スイッチ405を介して出力する。
On the other hand, the
第三切替スイッチ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に出力する。
The
The terminal S10 of the
ECC比較回路406は、第三切替スイッチ405によりリード時のみ処理を行う。ECC比較回路406は、メインメモリ205からECCメモリバス219を介して取得したECCと、ECC計算回路404で生成されたECCそれぞれのデータ列の排他的論理和を計算することにより、これらの各ECCのエラーチェックを行う。ここでのエラーチェックは、エラーなし(全ビット一致)か、1ビットエラーか、2ビット以上のエラーか、を検出するとともに、これらの各エラーが訂正可能であるか否かを検出する、ことを指す。ECC比較回路406は、このようなエラーチェック結果をECC訂正回路408およびスイッチ制御回路411に出力する。
The
ECC訂正回路408は、第三切替スイッチ405によりリード時のみ処理を行う。ECC訂正回路408は、メインメモリ205から読み出したデータおよびCRCCのエラーの訂正をECC比較回路406から入力されたエラーチェック結果に基づいて行う。
The
訂正不可能な1ビットエラーおよび2ビット以上のエラーの場合、ECC訂正回路408は割込制御部220にECC照合不一致(不一致)を出力する。
In the case of an uncorrectable 1-bit error and an error of 2 bits or more, the
訂正可能な1ビットエラーの場合、ECC訂正回路408は、メインメモリ205から読み出したデータまたはCRCCのビット訂正をECC比較回路406から入力されるエラーチェック結果を利用して行うとともに、割込制御部220にECC照合不一致(一致)を出力する。
In the case of a correctable 1-bit error, the
第四切替スイッチ409は、内部バス215とメモリバス217の接続のオン/オフを切り替えるスイッチである。第四切替スイッチ409の端子S13は内部バス215に接続しており、端子S14はメモリバス217に接続している。この第四切替スイッチ409は、スイッチ制御回路411によりオン/オフを制御される。ライト時に、端子S13と端子S14を接続して照合回路214から入力されるアドレス、データおよびコマンドをメインメモリ205に出力するようにする。リード時にECC比較回路406で検出したエラーチェック結果がエラーなしあるいは訂正可能な1ビットエラーの場合、端子S13と端子S14を接続してメインメモリ205に記憶されたデータを照合回路214に出力するようにする。
The
第五切替スイッチ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に出力するようにする。
The
スイッチ制御回路411は、第一切替スイッチ402、第二切替スイッチ403、第三切替スイッチ405、第四切替スイッチ409および第五切替スイッチ410の各端子の接続を制御するものである。この制御は、内部バス215を介して照合回路214から入力されるコマンドおよびECC比較回路406から入力されるエラーチェック結果に基づいて行われる。
The
[CPU装置のモード遷移]
次に、CPU装置102のモードの遷移について図5を参照して説明する。
図5は、CPU装置102のモードの遷移を示す状態遷移図である。
[Mode transition of CPU device]
Next, the mode transition of the
FIG. 5 is a state transition diagram showing mode transition of the
まず、CPU装置102が起動されると、当該CPU装置102はOS立ち上がりモードになる(ステップS501)。このとき、CPU装置102は、上位装置103に記憶された所定のプログラムをネットワーク経由で取得する。
First, when the
そして、CPU装置102は、スケジューラにより、前述の一般モード(ステップS502)、安全モード(ステップS503)あるいはテストモード(ステップS504)のいずれかのモードで稼動する。なお、スケジューラにより、モードの変更が行われる場合は、OS立ち上がりモードに移行する(ステップS506、ステップS507およびステップS508)。
The
CPU装置102は、一般モードでの演算中にCPU装置102に異常が発生すると、CPU装置102は演算を中止する(ステップS509)。
If an abnormality occurs in the
また、CPU装置102は、安全モードでの演算中にCPU装置102に以上が発生すると、CPU装置102は演算を中止する(ステップS510)。
Further, when the above occurs in the
また、CPU装置102は、テストモードの実行、すなわちテストプログラムによりCPU装置102を構成する各ブロックおよび各バスの故障を検出すると、当該CPU装置102を停止する(ステップS511)。
Further, when executing a test mode, that is, detecting a failure of each block and each bus constituting the
以上に示した各状態のうち、ステップS510のエラーを検出するために、CPU装置102は、図2から図4に示した構成となっている。つまり、本実施形態の図2乃至図4の構成は、安全モードでCPU装置102の異常を確実に検出し、異常停止モードに至らせるためのものである。
Among the states shown above, the
[CPU装置の動作]
次に、安全モード時における制御装置204の動作を図6〜図8を参照して説明する。
図6は、故障がない場合の制御装置204の動作を示すタイミングチャートである。
[Operation of CPU device]
Next, the operation of the
FIG. 6 is a timing chart showing the operation of the
A系プロセッサ202およびB系プロセッサ203が、予め上位装置103から取得した所定のプログラムに基づいて、メインメモリ205に対してライトを行う時の制御装置204の動作について説明する。なお、B系CRC回路212はA系CRC回路209と同じ構成であるので、以下ではB系CRC回路に関する動作を図3に示すA系CRC回路を参照して説明する。
An operation of the
まず、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)。
First, when the
一方、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)。
On the other hand, the
照合回路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と記載する。
The
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)。
The
メインメモリ205は、ECC回路232から入力されたコマンドをトリガーにして、ECC回路232から入力された各アドレスが示す位置にECC回路232から入力されたデータ、CRCCおよびECCを記憶する。すなわち、メインメモリ205は、アドレスに基づいて、データをデータ記憶領域229に記憶し、CRCCをCRCC記憶領域230に記憶し、ECCをECC記憶領域231に記憶する(T607)。
The
以上の処理が完了した後、メインメモリ205が制御装置204の各回路に書き込み終了応答を出力すると、メインメモリ205の各回路は書き込み動作を終了する(T608)。
After the above processing is completed, when the
続いて、A系プロセッサ202およびB系プロセッサ203が、予め上位装置103から取得した所定のプログラムに基づいて、メインメモリ205からリードを行う時の制御装置204の動作について説明する。
Next, the operation of the
まず、A系プロセッサ202およびB系プロセッサ203は制御装置204に対して読み込み要求を行う。すると、A系プロセッサ202は、A系プロセッサバス208を介して制御装置204の照合回路214にアドレスおよびリードを示すコマンド(‘0’)を出力するとともに、当該コマンドをA系CRC回路209に出力する。A系CRC回路209は、A系プロセッサ202から入力されたコマンドをトリガーにスイッチ303の端子S1と端子S3を接続する。
First, the
一方、B系プロセッサ203は、B系プロセッサバス211を介してメインメモリ205の照合回路214にアドレスおよびリードを示すコマンド(‘0’)を出力するとともに、当該コマンドをB系CRC回路212に出力する。B系CRC回路212は、B系プロセッサ203から入力されたコマンドをトリガーにスイッチ303の端子S1と端子S3を接続する。
On the other hand, the
ここで、照合回路214は、A系プロセッサ202から入力されたアドレスと、B系プロセッサ203から入力されたアドレスとを比較し、比較結果が一致であるか否かを判定する(T609)。
Here, the
照合回路214が一致と判定すると、照合回路214は、A系プロセッサ202から入力されたアドレスおよびコマンドを内部バス215を介してECC回路232に出力する。すると、ECC回路232は、照合回路214から入力されたコマンドをトリガーに、第一切替スイッチ402の端子S5と端子S6を接続し、第二切替スイッチ403の端子S8と端子S9を接続し、第三切替スイッチ405の端子S10と端子S12を接続する。そして、ECC回路232は、照合回路214から入力されたアドレスおよびコマンドをメモリバスを介してメインメモリ205に出力する。
If the
メインメモリ205は、ECC回路232から入力されたコマンドをトリガーにして、ECC回路232から入力されたアドレスに従って、メインメモリ205に記憶されたデータをメモリバスを介してECC回路232に出力する。このとき、メインメモリ205は、ECC回路232から入力されたアドレスに従って、記憶しているCRCCをCRCCメモリバス218を介してECC回路232に出力する。さらに、メインメモリ205は、ECC回路232から入力されたアドレスに従って、記憶しているECCをECCメモリバス219を介してECC回路232に出力する。
The
すると、ECC回路232のECC計算回路404は、照合回路214から入力されたアドレスおよびメインメモリ205から取得したデータおよびCRCCから新たにECCを生成してECC比較回路406に出力する。
Then, the
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)。
The
ここで、A系CRC回路209のCRC計算回路302は、A系プロセッサバス208を介してA系プロセッサ202から出力されているアドレスおよびECC回路232から入力されたデータから新たにCRCCを生成してデジタル比較器304に入力する。デジタル比較器304は、新たに生成したCRCCと、ECC回路232から入力されたCRCCとを比較し、その比較結果一致であるが否かを判定する。
Here, the
本ケースでは、判定結果が一致となるので、ECC回路232から出力されたデータ、すなわちメインメモリ205に記憶されたデータがA系プロセッサバス208を介してA系プロセッサ202に出力される(T611)。このとき、B系プロセッサ203にも同様に、B系CRC回路212からB系プロセッサバス211を介して、メインメモリ205に記憶されたと同じデータが出力される(T612)。
In this case, since the determination results are the same, the data output from the
図7は、A系プロセッサ202、A系CRC回路209、A系プロセッサバス208、B系プロセッサ203、B系CRC回路212およびB系プロセッサバス211のいずれかで故障が起きた場合の制御装置204の動作を示すタイミングチャートである。なお、T701〜T704は、図6のT601〜T604と同じなので、それらの説明は省略する。
FIG. 7 shows a
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)。
Immediately after the timing of T704, that is, during writing, a failure occurs in any of the
本ケースでは、判定結果が不一致となるので、照合回路214は、A系プロセッサ202およびB系プロセッサ203に応答を返す。また、照合回路214は、割込制御部220に照合不一致(不一致)を出力し、A系割込要因レジスタおよびB系割込要因レジスタに要因を登録する。そして、A系割込要因レジスタおよびB系割込要因レジスタにより、T607の時点でA系プロセッサ202およびB系プロセッサ203の処理がそれぞれ一次中断される。
In this case, since the determination results do not match, the
以上のようにして、本ケースのような故障が生じた際、メインメモリ205へのデータの書き込みが行われなくなり、その後のプログラムの実行が割込制御部220によって中断される。
As described above, when a failure such as this case occurs, data is not written to the
次に、照合回路214、内部バス215、CRCC内部バス216、ECC回路232、メモリバス、CRCCメモリバス218、ECCメモリバス219およびメインメモリ205のいずれかで故障が起きたときの制御装置204の動作について図8を参照して説明する。
図8は、制御装置204の動作を示すタイミングチャートである。なお、T801〜T809は図6に示すT601〜T609と同じなので、それらの説明は省略する。
Next, the
FIG. 8 is a timing chart showing the operation of the
T809のタイミングの直後、すなわちリード中に、照合回路214、内部バス215、CRCC内部バス216、ECC回路232、メモリバス217、CRCCメモリバス218、ECCメモリバス219およびメインメモリ205のいずれかで故障が起きているとする(T810)。
Immediately after the timing of T809, that is, during reading, a failure occurs in any of the
メインメモリ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に出力する。
The
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)。
The
A系CRC回路209のCRC計算回路302は、A系プロセッサバス208を介してA系プロセッサ202から入力されたアドレスおよびECC回路232から入力されるデータから新たにCRCCを生成してA系CRC回路209のデジタル比較器304に出力する。このデジタル比較器304は、新たに生成したCRCCと、ECC回路232から入力されたCRCCとを比較し、その比較結果が一致であるか否かを判定する(T812)。
The
一方、B系CRC回路212のCRC計算回路302は、B系プロセッサバス211を介してB系プロセッサ203から入力されたアドレスおよびECC回路232から入力されるデータから新たにCRCCを生成してB系CRC回路212のデジタル比較器304に出力する。このデジタル比較器304は、新たに生成したCRCCと、ECC回路232から入力されたCRCCとを比較し、その比較結果が一致であるか否かを判定する(T813)。
On the other hand, the
本ケースでは、A系CRC回路209のデジタル比較器304およびB系CRC回路212のデジタル比較器304の両方あるいはいずれか一方が、不一致であると判定する。すると、不一致を検出した方のデジタル比較器304は、割込制御部220にCRC照合不一致(不一致)を出力し、A系割込要因レジスタあるいはB系割込要因レジスタに要因を登録する。そして、A系割込要因レジスタあるいはB系割込要因レジスタにより、T607の時点でA系プロセッサ202およびB系プロセッサ203の処理がそれぞれ一時中断される。
In this case, it is determined that the
以上のようにして、本ケースのような故障が発生した際に、A系プロセッサ202およびB系プロセッサ203がデータを読み込めなくなり、その後のプログラムの実行が割込制御部220によって中断される。
As described above, when a failure such as this case occurs, the
[CPU装置の故障検出範囲]
次に、CPU装置102の故障検出範囲についてまとめる。
図9は、CPU装置102の故障検出範囲を示す表である。
図9(a)は、安全モードで稼働しているときのCPU装置102の故障検出範囲を示す表である。
[Fault detection range of CPU device]
Next, the failure detection range of the
FIG. 9 is a table showing a failure detection range of the
FIG. 9A is a table showing a failure detection range of the
前述したように、安全モードのときにCPU装置102を構成する各ブロックおよび各バス(以下、「故障検出対象」という)の故障を検出する構成要素としてCPU装置102はA系CRC回路209、B系CRC回路212、照合回路214およびECC回路232を備えている。
As described above, as a component for detecting a failure of each block and each bus (hereinafter referred to as “failure detection target”) constituting the
A系CRC回路209の故障検出対象は、A系プロセッサバス208と、照合回路214と、内部バス215と、CRCC内部バス216と、ECC回路232と、メモリバス217と、CRCCメモリバス218と、ECCメモリバス219と、メインメモリ205である。
The fault detection target of the A
B系CRC回路212の故障検出対象は、B系プロセッサバス211と、照合回路214と、内部バス215と、CRCC内部バス216と、ECC回路232と、メモリバス217と、CRCCメモリバス218と、ECCメモリバス219と、メインメモリ205である。
The failure detection target of the B-
照合回路214の故障検出対象は、A系プロセッサ202、B系プロセッサ203、A系CRC回路209、B系CRC回路212、A系プロセッサバス208およびB系プロセッサバス211である。
The failure detection targets of the
ECC回路232の故障検出対象は、メモリバス217と、CRCCメモリバス218と、ECCメモリバス219と、メインメモリ205である。
The failure detection targets of the
図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)の表に示したものと同じなので、故障検出対象に関する説明は省略する。
FIG. 9B is a table showing a failure detection range of the
以上説明したように、本実施形態は、複数のプロセッサからの出力を単に比較してそれらの出力の一致/不一致を判定することにより故障を検出するだけではなく、当該比較を行う手段の故障の検出を行えるようにした。そのため、CPU装置102での処理中(安全モード時)における、当該CPU装置102を構成する各ブロックおよび各バスの故障をより確実に検出することができる。そして、故障が検出されるとすぐに、当該処理を中止するようにした。例えば、潜在的な危険性の高いプロセス設備の制御中に何らかの故障が発生しても、すぐにその制御が中断されるので、安全性をより向上させる、という効果がある。
As described above, the present embodiment not only detects a failure by simply comparing outputs from a plurality of processors and determining whether or not the outputs match, but also the failure of the means for performing the comparison. Added detection. Therefore, it is possible to more reliably detect a failure of each block and each bus constituting the
なお、本実施形態ではECC回路232を設けてあるが、このECC回路232を設けなくても上述したものと同様の効果が得られる。ただし、ECC回路232を設けない場合は、内部バス215とメモリバス217が接続されており、CRCC内部バス216とCRCCメモリバス218が接続されていることが必要となる。
Although the
以上、本発明の実施形態の例について説明したが、本発明は上記実施形態例に限定されるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りにおいて、他の変形例、応用例を含むことはいうまでもない。 As mentioned above, although the example of embodiment of this invention was demonstrated, this invention is not limited to the said embodiment example, Unless it deviates from the summary of this invention described in the claim, other modifications Needless to say, application examples are included.
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…スイッチ制御回路
DESCRIPTION OF SYMBOLS 101 ... Control system, 102 ... CPU apparatus, 103 ... High-order apparatus, 104 ... Low-order apparatus, 105 ... Control object, 106 ... Network, 202 ... A system processor, 203 ... B system processor, 204 ... Control apparatus, 205 ... Main memory , 206 ... Network controller, 207 ... CRC circuit, 208 ... A system processor bus, 209 ... A system CRC circuit, 210 ... A system CRCC bus, 211 ... B system processor bus, 212 ... B system CRC circuit, 213 ... B system CRCC bus, 214 ... collation circuit, 215 ... internal bus, 216 ... CRCC internal bus, 217 ... memory bus, 218 ... CRCC memory bus, 219 ... ECC memory bus, 220 ... interrupt control unit, 221 ... output selector switch, 229 ... Data storage area, 230 ... CRCC storage area, 231 ...
Claims (2)
前記第一プロセッサと同一の演算結果を出力するべく構成されている第二プロセッサが前記プログラムを実行した結果として前記メインメモリに格納される第二情報から第二誤り検出符号を作成し、前記第二記憶情報と比較することで異常を検出する第二符号生成部と、
前記第一プロセッサ及び/又は前記第二プロセッサが前記メインメモリから前記第一情報あるいは前記第二情報である第一記憶情報を読み出す時、前記メインメモリから読み出した前記第一記憶情報と前記第二記憶情報に対し、必要に応じてエラー訂正を行って前記第一符号生成部及び前記第二符号生成部に供給する訂正処理部と、
前記第一符号生成部が前記第一誤り検出符号と前記第二記憶情報との不一致を検出した場合、及び/又は前記第二符号生成部が前記第二誤り検出符号と前記第二記憶情報との不一致を検出した場合、前記第一プロセッサが前記第一記憶情報を前記メインメモリから読み出す動作及び前記第二プロセッサが前記第二記憶情報を前記メインメモリから読み出す動作を禁止する、割込制御部と、
前記第一情報と前記第二情報が同一であるか否かを検出して前記割込制御部に報告すると共に、前記第一誤り検出符号と前記第二誤り検出符号が同一であるか否かを検出して前記割込制御部に報告することで、前記前記第一情報あるいは前記第二情報の前記メインメモリへの書き込みを制御する照合部と
を備える制御装置。 A first error detection code is created from first information stored in the main memory as a result of the first processor executing a predetermined program, and second storage information that is an error detection code stored in the main memory in advance A first code generation unit that detects an abnormality by comparing;
A second processor configured to output the same operation result as the first processor generates a second error detection code from second information stored in the main memory as a result of executing the program; A second code generation unit for detecting an abnormality by comparing with the two storage information;
When the first processor and / or the second processor reads the first information or the first storage information as the second information from the main memory, the first storage information read from the main memory and the second memory A correction processing unit that performs error correction on the stored information as needed and supplies the first code generation unit and the second code generation unit;
When the first code generation unit detects a mismatch between the first error detection code and the second storage information, and / or the second code generation unit includes the second error detection code and the second storage information. An interrupt control unit that prohibits an operation in which the first processor reads the first storage information from the main memory and an operation in which the second processor reads the second storage information from the main memory when a mismatch is detected When,
Whether or not the first information and the second information are the same is detected and reported to the interrupt control unit, and whether or not the first error detection code and the second error detection code are the same And a verification unit that controls writing of the first information or the second information to the main memory by detecting the error and reporting the interrupt to the interrupt control unit.
請求項1記載の制御装置。 The interrupt control unit has an interrupt factor register, and the first code generation unit detects a mismatch between the first error detection code and the second storage information, and / or the second code generation unit. Is registered in the interrupt factor register as a failure caused by the main memory or the correction processing unit when the mismatch between the second error detection code and the second storage information is detected, and the verification unit When a mismatch between the first information and the second information is detected, and / or when the matching unit detects a mismatch between the first error detection code and the second error detection code, the first code generation unit , Registering in the interrupt factor register as a failure caused by the second code generation unit, the first processor or the second processor,
The control device according to claim 1.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013118170A JP5563700B2 (en) | 2013-06-04 | 2013-06-04 | Control device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013118170A JP5563700B2 (en) | 2013-06-04 | 2013-06-04 | Control device |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009001899A Division JP5344936B2 (en) | 2009-01-07 | 2009-01-07 | Control device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013211049A JP2013211049A (en) | 2013-10-10 |
JP5563700B2 true JP5563700B2 (en) | 2014-07-30 |
Family
ID=49528738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013118170A Expired - Fee Related JP5563700B2 (en) | 2013-06-04 | 2013-06-04 | Control device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5563700B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7359543B2 (en) * | 2018-12-18 | 2023-10-11 | ファナック株式会社 | Machine control device |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06161798A (en) * | 1992-11-24 | 1994-06-10 | Hitachi Ltd | Information processor |
JPH06348516A (en) * | 1993-06-08 | 1994-12-22 | Hitachi Ltd | Information processor |
JPH11338833A (en) * | 1998-05-22 | 1999-12-10 | Hitachi Ltd | Multiprocessor type controller and scalable controller system |
JP2006285631A (en) * | 2005-03-31 | 2006-10-19 | Yokogawa Electric Corp | Duplex system |
-
2013
- 2013-06-04 JP JP2013118170A patent/JP5563700B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2013211049A (en) | 2013-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5344936B2 (en) | Control device | |
Johnson | An introduction to the design and analysis of fault-tolerant systems | |
US10114356B2 (en) | Method and apparatus for controlling a physical unit in an automation system | |
EP3255546B1 (en) | Controller | |
EP3373144A1 (en) | Method and computer system for fault tolerant data integrity verification of safety-related data | |
JP2013175118A (en) | Control device, memory failure detection method thereof and self-diagnostic method thereof | |
CN111033470A (en) | Ensuring correct program sequence in dual processor architecture | |
KR20050121729A (en) | Program-controlled unit and method | |
JP5563700B2 (en) | Control device | |
JP6332134B2 (en) | Memory diagnostic circuit | |
KR101983125B1 (en) | Method for performing failsafe calculations | |
JP5352815B2 (en) | Control apparatus and control method | |
US12040032B2 (en) | Electronic circuit and method for self-diagnosis of a data memory | |
JP2019191770A (en) | Failure detection device and failure detection method and failure detection program | |
JP2014225110A (en) | Safety controller | |
US10262752B2 (en) | Method and apparatus for identifying erroneous data in at least one memory element | |
Low | How to improve system availability and minimize down time with Hercules MCUs | |
WO2016042751A1 (en) | Memory diagnosis circuit | |
CN116931824A (en) | Method for running memory unit and executing application program in computer-aided mode | |
KR100802666B1 (en) | Circuit arrangement and method for operating such a circuit arrangement | |
JP2014048850A (en) | Control method of duplexing input signal control device and duplexing output signal control device, duplexing input signal control device thereof and duplexing output signal control device thereof | |
Perrone et al. | Department of Electrical Engineering Charlottesville, Virginia bwj@ virginia. edu | |
Noha | Ecc handling in tmsx70-based microcontrollers | |
JP2011203965A (en) | Self-diagnosis apparatus and self-diagnosis method | |
JPH02247756A (en) | Memory device |
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 |