JP5908068B2 - 待機冗長二重化装置 - Google Patents
待機冗長二重化装置 Download PDFInfo
- Publication number
- JP5908068B2 JP5908068B2 JP2014514305A JP2014514305A JP5908068B2 JP 5908068 B2 JP5908068 B2 JP 5908068B2 JP 2014514305 A JP2014514305 A JP 2014514305A JP 2014514305 A JP2014514305 A JP 2014514305A JP 5908068 B2 JP5908068 B2 JP 5908068B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- controller
- standby
- cpu
- calculation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000015654 memory Effects 0.000 claims description 65
- 230000005540 biological transmission Effects 0.000 claims description 53
- 239000000872 buffer Substances 0.000 claims description 24
- 230000004913 activation Effects 0.000 claims description 5
- 230000003213 activating effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 18
- 238000000034 method Methods 0.000 description 16
- 230000004044 response Effects 0.000 description 4
- 230000008054 signal transmission Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B9/00—Safety arrangements
- G05B9/02—Safety arrangements electric
- G05B9/03—Safety arrangements electric with multiple-channel loop, i.e. redundant control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2023—Failover techniques
- G06F11/2028—Failover techniques eliminating a faulty processor or activating a spare
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2097—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24186—Redundant processors are synchronised
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24187—Redundant processors run identical programs
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24195—Compare data in channels at timed intervals, for equality
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Hardware Redundancy (AREA)
- Safety Devices In Control Systems (AREA)
Description
この装置では、システムバスコントローラを使用して、稼動側CPUから待機側CPUに等値化データを送信することで、2つのコントローラ間でのデータの等値化を実現している。
これにより、回路規模が増大するという課題があった。
また、等値化データの送受信とI/Oボードとのデータの送受信を、同一のシステムバスを使用する構成とするために、等値化データの送受信とI/Oボードの送受信を同時に転送できず、データ転送のレスポンスを向上できないという課題があった。
2つのコントローラで構成し、一の前記コントローラが稼動側コントローラとして動作する時は、他方のコントローラは待機側コントローラとして動作する待機冗長二重化装置において、
各前記コントローラは、それぞれ内部に複数のCPUと、
メモリと、
I/Oボードと、
複数の前記CPUと、前記メモリと、前記I/Oボードとの間でデータを送受信するI/Oバスコントローラと、
前記稼動側コントローラから等値化データバスを介して前記待機側コントローラに、前記稼動側コントローラと前記待機側コントローラの装置状態を等値化するために使用する等値化データを送信する、前記I/Oバスコントローラから独立した等値化バスコントローラとを備え、
前記等値化データは、各演算ルーチンの識別コードと版コードを有し、
前記待機側コントローラの各前記CPUは、前記識別コードと前記版コードを確認して各前記CPUに割り当てられた演算を実行するものである。
各前記コントローラは、それぞれ内部に複数のCPUと、
メモリと、
I/Oボードと、
複数の前記CPUと、前記メモリと、前記I/Oボードとの間でデータを送受信するI/Oバスコントローラと、
前記稼動側コントローラから等値化データバスを介して前記待機側コントローラに、前記稼動側コントローラと前記待機側コントローラの装置状態を等値化するために使用する等値化データを送信する、前記I/Oバスコントローラから独立した等値化バスコントローラとを備え、
前記等値化データは、各演算ルーチンの識別コードと版コードを有し、
前記待機側コントローラの各前記CPUは、前記識別コードと前記版コードを確認して各前記CPUに割り当てられた演算を実行するものなので、
複数のCPUが処理するデータの等値化処理において、CPU毎のバスコントローラを不要とすることができる。
また、等値化データバスとI/Oバスを独立のバスとし、それぞれのバスコントローラも独立しているので、等値化データの送受信とI/Oボードの送受信の同時送信が可能となり、処理の高速化を図ることができる。
以下、本発明の実施の形態1を図を用いて説明する。
図1は、待機冗長二重化装置100(以下、装置100と称す)の構成を示す図である。
図において、装置100は、稼動側コントローラ10aと待機側コントローラ10bと等値化データバス20により構成される。
稼動側コントローラ10aの演算結果は、等値化データバス20を介して、待機側コントローラ10bへ通知される。
待機側コントローラ10bは、稼動側コントローラ10aと同じ構成であるため、稼動側コントローラ10aを主として各コントローラの構成を説明する。
本明細書では、2つのコントローラを稼動側コントローラ10a、待機側コントローラ10bとして固定して説明しているが、実際の運用では、稼動側コントローラ10aも待機側コントローラ10bも構成は等しく、それぞれの立場が入れ替わる場合がある。
また、CPUボード1aの演算ルーチンの演算結果である出力データは、I/Oバス3aを介してI/Oボード2aに書き込まれる。
待機側コントローラ10bのI/Oボード2b側に出力データの書き込みをおこなっても機器へのデータ出力はI/Oボード2b内で切り離されており、待機側コントローラ10bから機器には出力データは伝わらない。
CPUa0からCPUanまでの複数個のCPUは、それぞれ異なる演算を行う。
メモリ11aには、各CPUが演算に使用するデータが配置される。
I/Oバスコントローラ13aは、各CPUが使用するデータの読み出し要求または書き込み要求に従い、I/Oバス3aを経由してメモリ11aと複数のI/Oボード2aとの間でデータの送信を行う。
待機側コントローラ10bの等値化バスコントローラ12bは受信したデータを待機側コントローラ10bのメモリ11bに格納する。
更に、割込制御14aには、タイマ15aが接続されており、予め設定したCPUに一定間隔で割り込みを通知することができる。
割込制御14aには、CPUa0用からCPUan用の各割込通知レジスタが用意されており、例えば、CPUa0用の割込通知レジスタにデータをセットすると、CPUa0への割込信号17a0がONとなり、CPUa0に割り込みが通知される。
この割込通知レジスタと割込信号17a0〜17anがCPU毎に存在する。
メモリ11aとメモリ11bは、同一の構成となるので、メモリ11aを用いて説明する。
入力データ11a1は、I/Oボード2aを読み出すことで得たデータである。
出力データ11a2はI/Oボード2aに書き込むデータである。
入力データ11a1と出力データ11a2は、I/Oボード2aと制御対象となる機器が送受信する際に使用する形式で記録されている。
演算ルーチンp0から演算ルーチンpnは、実際には、それぞれ入力データ11a1から、それぞれのCPUが演算に使用するデータを演算に適した形式に変換する処理(演算1)と、実際に演算する処理(演算2)と、演算結果をI/Oボード2aからの出力に適したデータ形式へ変換する処理(演算3)が含まれている。
これらの演算データの具体的な内容を、CPUa0が使用する演算データpd0を用いて説明する。
これらのデータは、3種類のデータに分類される。
1種類目のデータは、入力データ11a1からCPUa0用の演算ルーチンp0が使用するデータを取得して、演算ルーチンp0の演算1によって演算2に適した形式に変換したデータである。
2種類目のデータは、演算ルーチンp0の演算2の結果得たデータと、その過去の蓄積データ群である。
3種類目のデータは、演算ルーチンp0の演算2による、演算結果のデータを、演算ルーチンp0の演算3によって、I/Oボード2aへの出力データ形式に変換したデータである。
等値化データ送信バッファ11a3は、このコントローラが稼動側コントローラ10aとして動作する際に使用される。
稼動側コントローラ10aの等値化バスコントローラ12aは、等値化データ送信バッファ11a3の内容を待機側コントローラ10bの等値化バスコントローラ12bに送信する。
また、送信時には等値化バスコントローラ12aは送信データの妥当性を確認するためのチェックサムを付与して送信する。
この点について、待機側コントローラ10bの動作として以下に説明する。
待機側コントローラ10bの等値化バスコントローラ12bは、稼動側コントローラ10aから受信したデータをチェックサムを用いて確認する。
そして受信データが妥当であると判断した場合は、受信データを等値化データ受信バッファ11b4又は等値化データ受信バッファ11b5に交互に格納し、不正と判断した場合は、受信データを破棄する。
稼動側コントローラ10aのメモリ11aには、CPUa0からCPUanがそれぞれ行う演算ルーチンp0〜演算ルーチンpnの実行回数が、実行カウントpc0〜実行カウントpcnとして格納される。
このカウント値はオーバーフローしても異常とはならず、0から再カウントし直す。
CPUの識別番号と、各CPU用の演算ルーチンの結果を保存するために必要とされる演算データサイズと、その演算データの3つのデータを一組とし、CPUa0の演算ルーチンp0からCPUanの演算ルーチンpnまでの各組のデータが結合された構造となっている。
図5は、稼動側コントローラ10aの動作を示すフローチャートである。
稼動側コントローラ10aのタイマ15aと割込制御14aに対して、予め、周期T間隔でCPUa0に割り込みが通知されるように設定しておく。
まず、この割り込み通知に基づき、稼動側コントローラ10aのCPUa0が処理を開始する。
この解除により、次回のタイマ15aからの周期Tの通知に備える。
次に、ステップST1020において、I/Oボード2aからデータの入力を行う。
CPUa0は、I/Oバスコントローラ13aに対して、I/Oボード2aからの入力データの読み出し要求を行う。
I/Oバスコントローラ13aは、読み出し要求を受けて、I/Oバス3a経由で複数のI/Oボード2aよりデータを読み出し、メモリ11aに入力データ11a1として格納する。
すると、割込制御14aは、割込信号17a1から割込信号17anをONにして、CPUa1からCPUanに対する割り込みの発生を通知する。
この演算ルーチンp0には、先に述べたように、CPUa0が演算に使用するデータを演算に適した形式に変換する処理(演算1)と、実際に演算する処理(演算2)と、演算結果をI/Oボード2aからの出力に適したデータ形式へ変換する処理(演算3)が含まれている。
最初に、入力データ11a1内の、CPUa0が演算に使用するデータが、演算ルーチンp0の演算に適した形式にデータを変換されて演算データpd0として格納される。(演算1)
次に、本来の演算2の処理が動作し、演算結果が演算データpd0に追加して格納される。(演算2)
更に、演算2による演算結果をI/Oボード2aに適した形式に変換する処理(演算3)が動作し、変換後のデータが出力データ11a2に格納される。
次に、ステップST1060において、後述するCPUa1からCPUanまでの処理がすべて完了するまで待つ。
次に、ステップST1080において、演算データpd0から演算データpdnまでの演算1の結果のデータと演算2の結果のデータ(以下、「p0演算データ」と表記する)を結合して、図4で示す送信データを等値化データ送信バッファ11a3に格納する。
等値化バスコントローラ12aは、CPUa0からの指示を受けて、等値化データ送信バッファ11a3のデータを待機側コントローラ10bに送信する。
ステップST1100においては、I/Oボード2aへのデータの出力処理を行う。
CPUa0は、I/Oバスコントローラ13aに対して、メモリ11aの出力データ11a2からI/Oボード2aへの書き込み要求を行う。
I/Oバスコントローラ13aは、この書き込み要求を受けて、I/Oバス3a経由でI/Oボード2aに対してデータを書き込む。
次に、CPUa0以外のCPUa1からCPUanまでの動作を図6を用いて説明する。
CPUa1からCPUanまでの各CPUの動作は同じなので、図6では、CPUa1を用いて説明する。
この解除により、次回の通知に備える。
次に、本来の演算2の処理が動作し、演算結果が演算データpd1に追加して格納される。
更に、演算2による演算結果をI/Oボード2aに適した形式に変換する処理(演算3)が動作し、変換後のデータが出力データ11a2に格納される。
次に、ステップST1140において、CPUa0に対して処理完了を通知する。
処理完了は、割込制御14aを介して通知しても良いし、メモリ11aを介して通知しても良い。
ただし、稼動側コントローラ10aと待機側コントローラ10bでタイミングが同期する仕組みはなく、非同期に動作する。
割込制御14bからの割り込み通知に基づき、待機側コントローラ10bのCPUb0が行う処理を図7を用いて説明する。
ステップST2010からステップST2030については、稼動側コントローラ10aのCPUa0が、図5のステップST1010からステップST1030で行う処理と同様である。
従って、CPUb0は、稼動側コントローラ10aのCPUa0と同様に、I/Oボード2bからデータを取得し、メモリ11bに入力データ11b1を記録し、自らデータ処理をし、他のCPUにも同様の処理を指示する。
次に、そのサイズ分の演算データを取得して、メモリ11b内の演算データpd0に展開する。
この時、等値化データと共通の部分(上述の演算1の結果のデータと演算2の結果のデータに相当する部分)は、等値化データで上書きされることになる。
なお、演算2の結果部分のデータは、更にその後のステップST2040の演算で上書きされることになる。
但し、待機側コントローラ10bのI/Oボード2bは、このコントローラが待機側コントローラとして動作している間は、I/Oボード2b内において制御対象となる機器との接続を切り離しているので、機器に対して出力データは送信されない。
次に、CPUb0以外のCPUb1からCPUbnまでの動作を図8を用いて説明する。
CPUb1からCPUbnまでの各CPUの動作は同じなので、図8では、CPUb1を用いて説明する。
図6と異なる点は、ステップST2110の後に、ステップST2115の処理が追加されている点である。
ステップST2115においては、図7のステップST2035と同様に、CPUb1は、等値化バスコントローラ12bが現時点で等値化データを受信しているバッファと異なる方の等値化データ受信バッファの内容を確認し、データのCPU識別番号が1の部分から、当該データサイズを取得する。
そして、そのサイズ分の演算データを取得して、メモリ11b内の演算データpd1に展開する。
この時、等値化データと共通の部分(上述の演算1の結果のデータと演算2の結果のデータに相当する部分)は、等値化データで上書きされることになる。
なお、演算2の結果部分のデータは、更にその後のステップST2120の演算で上書きされることになる。
各図内のそれぞれの矢印は信号やデータの送信を示す。
図9の矢印A1、A2は、ぞれぞれ図10の矢印A1、A2に繋がる。
2つの図を並べて見ると、稼動側コントローラ10aと、待機側コントローラ10bのタイミングを視覚的に理解できる。
本発明の実施の形態1に係る待機冗長二重化装置100によれば、複数のCPUが処理するデータの等値化処理において、CPU毎のバスコントローラを不要とすることができる。
また、等値化データバス20とI/Oバス3a、3bを独立のバスとし、それぞれのI/Oバスコントローラも独立しているので、等値化データの送受信とI/Oボードの送受信の同時送信が可能となり、処理の高速化を図ることができる。
以下、本発明の実施の形態2を図を用いて実施の形態1と異なる部分を中心に説明する。
実施の形態1では、各CPUへの処理の開始の通知として割込制御14a、14bを使用していた。
本実施の形態では、割り込みを使用せず、タイマにフラグを配置し、フラグのON/OFFを割り込みの通知信号として代用することとした。
実施の形態1のCPUa0の動作を示す図5と、本実施の形態のCPUa0の動作を示す図11の差異は、まず、図5では、処理開始の割り込みが発生してから処理を開始している点である。
次に、図11においては、ステップST1005をループさせて処理開始フラグを監視している点である。
本実施の形態では、CPUa0がフラグの監視をするので、独立した割込制御は必要ない。
ステップST1005において、CPUa0が、処理開始を示すフラグがONになったことを確認すると、ステップST1010においてフラグを解除し、ステップST1020においてI/Oボードからのデータ入力処理を行う。
次に、ステップST1030において、タイマ内または、メモリ領域に備えた、他のCPUに処理の開始を指示する各フラグをONにする。
その他の処理は実施の形態1と同様である。
実施の形態1のCPUa1の動作を示す図6と、本実施の形態のCPUa1の動作を示す図12の差異は、まず、図6では、処理開始の割り込みが発生してから処理を開始している点である。
次に、図12においては、ステップST1105をループさせて処理開始フラグを監視している点である。
本実施の形態では、CPUa1がフラグの監視をするので、独立した割込制御は必要ない。
ステップST1105において、CPUa1が、処理開始を示すフラグがONになったことを確認すると、ステップST1110においてフラグを解除し、ステップST1120において演算p1を行う。
その他の処理は実施の形態1と同様である。
待機側コントローラ10bのフローチャートは明示しないが、同様にフラグを用いて処理を実現可能である。
以下、本発明の実施の形態3を図を用いて実施の形態2と異なる部分を中心に説明する。
図13は、本実施の形態に係る稼動側コントローラのメモリ311a内に記録するデータの構成を示す図である。
本実施の形態では、CPU数を超える演算データと演算ルーチンを準備する。
そして、各CPUに対して複数の演算ルーチンを割り当てる。
図において、「p」の後に続く数字が、当該演算ルーチンを実行するCPU番号であり、ハイフンに続く数字が、その番号のCPUに割り当てられた演算ルーチンの連番である。
各図内のそれぞれの矢印は信号やデータの送信を示す。
図14の矢印A1、A2は、ぞれぞれ図15の矢印A1、A2に繋がる。
2つの図を並べて見ると、稼動側コントローラと、待機側コントローラのタイミングを視覚的に理解できる。
以下、本発明の実施の形態4を図を用いて実施の形態3と異なる部分を中心に説明する。
図16は、稼動側コントローラのメモリ411a内に記録するデータの構成の一部分を示す図である。
各演算ルーチンに対して、属性データとして実行CPU番号、起動周期設定、起動オフセット設定、実行カウント及び送信カウントの設定項目を設けている。
また、周期Tの倍数の周期で実行する演算ルーチンに対して、起動オフセット設定をすることができる。
起動オフセット設定は、演算ルーチンを実行するタイミングを周期Tを1として小数で設定する。
例えば、周期Tの4倍の周期で実行する演算ルーチンに対して、起動オフセットを0.25とすると、周期Tの4倍周期かつ、タイマに対して1/4周期分遅れて当該演算ルーチンを実行する。
一方、等値化データは周期Tで送信されるため、周期T単位では動作しない演算ルーチンのデータは送信する必要はない。
よって、これらの演算ルーチンのデータの再送信を避けるため、実行カウントと送信カウントをメモリ411a内に追加して利用する。
もし、送信カウントと実行カウントを比較して、これらが一致する場合は、既にデータの送信は行われていて、当該演算ルーチンの新たな実行が行われていないと判断し、送信バッファへの送信はしない。
なお、送信カウントは、送信バッファへの送信処理完了後に実行カウントの値に書き換えるものとする。
また、送信カウントを設け、実行カウントと比較することで、不要な等値化データの送信が削減され、等値化データの送受信時間を短くすることができる。
以下、本発明の実施の形態5を図を用いて実施の形態4と異なる部分を中心に説明する。
図17は、稼動側コントローラのメモリ511a内に記録するデータの構成の一部分を示す図である。
各CPUが実行する演算ルーチンに対して、起動継続可否設定を追加する。
起動継続可否設定が可の場合、演算が設定周期Tで完了しなかった場合でも、演算処理を一時保留とし、データの入出力をおこない、次の周期で動作を再開して継続する仕組みを追加する。
本実施の形態に係る待機冗長二重化装置によれば、処理時間が大きく異なる処理ルーチンが一部に存在する場合でも、全体の処理に影響を及ぼさない待機冗長二重化装置を提供できる。
以下、本発明の実施の形態6を図を用いて実施の形態1と異なる部分を中心に説明する。
図18は、待機冗長二重化装置600(以下、装置600と称す)の構成を示す図である。
稼動側コントローラ610aのCPUボード601aには、2つの等値化バスコントローラ12a1、12a2を備えている。
また、待機側コントローラ610bのCPUボード601bには、2つの等値化バスコントローラ12b1、12b2を備えている。
そして、等値化バスコントローラ12a1と等値化バスコントローラ12b1を等値化データバス20で接続し、等値化バスコントローラ12a2と等値化バスコントローラ12b2を等値化データバス21で接続している。
等値化バスコントローラのセットと、等値化データバス20、21をそれぞれ二重化した構成として装置600の信頼性を高めている。
図19は、稼動側コントローラ610aから待機側コントローラ610bに送信される等値化送信データの構成の一部を示す図である。
稼動側コントローラのCPUa0は、図5のステップST1090での等値化データの送信開始にあたって、図19に示した送信データを、等値化バスコントローラ12a1と等値化バスコントローラ12a2の2つのコントローラに対して送信する。
待機側コントローラの各CPUは、図7のステップST2035または、図8のステップST2115における等値化受信データの展開時において、等値化バスコントローラ12a1より等値化バスコントローラ12b2が受信した等値化受信データの実行カウントと、等値化バスコントローラ12a2より等値化バスコントローラ12b2が受信した等値化受信データの実行カウントを比較し、カウントが進んでいる方の演算データをメモリ11bに展開することとする。
以下、本発明の実施の形態7を図を用いて実施の形態1と異なる部分を中心に説明する。
図20は、待機冗長二重化装置700(以下、装置700と称す)の構成を示す図である。
CPUボード701a上のCPUa0からCPUanに対して、それぞれ個別にメモリa0からメモリanを追加する。
同様にCPUボード701b上のCPUb0からCPUbnに対して、それぞれ個別にメモリb0からメモリbnを追加する。
メモリ711aには、CPUa0からCPUanが共通に使用するデータを配置する。
同様に、メモリ711bには、CPUb0からCPUbnが共通に使用するデータを配置する。
図22は、CPU単位で個別に追加するメモリa0からメモリan、メモリb0からメモリbnの構成を示す図である。
CPUa0からCPUan、CPUb0からCPUbnがそれぞれ個別に使用するデータをのみを配置する。
これにより、他のCPUからのアクセスの集中により、演算が停止する頻度が減少するので、装置700の演算性能を向上することができる。
以下、本発明の実施の形態8を図を用いて実施の形態1と異なる部分を中心に説明する。
図23は、実施の形態8の等値化送信データの構成を示す図である。
送信データに各演算ルーチンの識別コードと版コードを追加する。
待機側コントローラの各CPUは、図7のステップST2035または図8のステップST2115にて、等値化データを展開するときに、受信した等値化データ内の各演算ルーチンの識別コードと版コードを、待機側コントローラ側でもつ各演算ルーチンの識別コードと版コードと比較する。
これらのコードが不一致の場合は、データの展開処理を実施せず、異常をコントローラの使用者に通知する。
Claims (9)
- 2つのコントローラで構成し、一の前記コントローラが稼動側コントローラとして動作する時は、他方のコントローラは待機側コントローラとして動作する待機冗長二重化装置において、
各前記コントローラは、それぞれ内部に複数のCPUと、
メモリと、
I/Oボードと、
複数の前記CPUと、前記メモリと、前記I/Oボードとの間でデータを送受信するI/Oバスコントローラと、
前記稼動側コントローラから等値化データバスを介して前記待機側コントローラに、前記稼動側コントローラと前記待機側コントローラの装置状態を等値化するために使用する等値化データを送信する、前記I/Oバスコントローラから独立した等値化バスコントローラとを備え、
前記等値化データは、各演算ルーチンの識別コードと版コードを有し、
前記待機側コントローラの各前記CPUは、前記識別コードと前記版コードを確認して各前記CPUに割り当てられた演算を実行する待機冗長二重化装置。 - 各前記コントローラは、
タイマと、
前記タイマに連動して一定周期で前記CPUに処理の開始を通知をする起動制御部とを有し、
前記稼動側コントローラの前記起動制御部から通知を受けた、前記稼動側コントローラの一の前記CPUは、前記稼動側コントローラの各前記CPUが演算に使用するデータを、前記I/Oボードから取得して前記メモリに、前記I/Oバスコントローラを介して入力した後、
前記稼動側コントローラの各前記CPUに割り当てられた演算の実行を指示し、
全ての前記CPUの演算が終了した後、全ての前記CPUの演算結果を纏めて、前記待機側コントローラに送信すべき前記等値化データを構成する請求項1に記載の待機冗長二重化装置。 - 前記メモリ内には、
前記I/Oボードから入力されたデータを纏めて記録する入力データと、
いずれかの前記CPUによって実行される演算ルーチンを記録する演算ルーチンと、
個別の前記演算ルーチンで使用する、前記入力データと、前記入力データを利用して前記演算ルーチンを実行して得た演算結果と、過去の前記演算結果とを記録する演算データと、
前記I/Oボードに出力するデータを纏めて保存する出力データと、
前記コントローラが前記稼動側コントローラとして動作する時に、前記待機側コントローラに送信する前記等値化データを纏めて記録する等値化データ送信バッファと、
前記コントローラが前記待機側コントローラとして動作する時に、前記稼動側コントローラからの前記等値化データを交互に受信する2つの等値化データ受信バッファとを有する請求項2に記載の待機冗長二重化装置。 - 前記メモリは、各前記演算ルーチンの属性データを有し、
前記演算ルーチンの前記属性データには、
各前記演算ルーチンを実行するCPU番号を特定するCPU情報と、
各前記演算ルーチンを前記タイマの周期の倍数の周期で起動させる起動周期情報と、
各前記演算ルーチンを前記タイマの周期の倍数に対して所定のオフセットを持たせて起動させるオフセット情報と、
各前記演算ルーチンを実行した回数を示す実行回数情報と、
前記等値化データを前記待機側コントローラに送信した回数を示す送信回数情報と、
各前記演算ルーチンが前記タイマの周期内に終了しなかった場合における次回の処理方法を示す継続処理可否情報、の中の少なくとも一つの情報を有する請求項3に記載の待機冗長二重化装置。 - 前記稼動側コントローラの前記メモリに記録した前記属性データには、前記実行回数情報と、前記送信回数情報を有し、前記実行回数情報と、前記送信回数情報の内容を比較して、前記等値化データのデータ構成を決定する請求項4に記載の待機冗長二重化装置。
- 前記等値化データは、前記送信回数情報を有し、
前記待機側コントローラは、2つの前記等値化データ受信バッファの中の前記等値化データの内、前記送信回数情報の進んでいる方の前記等値化データを使用して各前記CPUに割り当てられた演算を実行する請求項4に記載の待機冗長二重化装置。 - 前記メモリは、
各前記CPUがそれぞれ固有に扱うデータを記録するCPU用メモリと、
複数の前記CPUが、共通して使用するデータを記録する共通メモリとからなる、
請求項4に記載の待機冗長二重化装置。 - 前記等値化バスコントローラと前記等値化データバスを冗長化構成とした請求項1に記載の待機冗長二重化装置。
- 前記一のCPUは、割込制御、又は前記メモリに設けたフラグの状態を識別して各前記CPUに、各前記CPUに割り当てられた演算の開始を通知する請求項2から請求項8のいずれか1項に記載の待機冗長二重化装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2012/062003 WO2013168258A1 (ja) | 2012-05-10 | 2012-05-10 | 待機冗長二重化装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2013168258A1 JPWO2013168258A1 (ja) | 2015-12-24 |
JP5908068B2 true JP5908068B2 (ja) | 2016-04-26 |
Family
ID=49550342
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014514305A Active JP5908068B2 (ja) | 2012-05-10 | 2012-05-10 | 待機冗長二重化装置 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP2849005B1 (ja) |
JP (1) | JP5908068B2 (ja) |
WO (1) | WO2013168258A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6354535B2 (ja) * | 2014-11-17 | 2018-07-11 | 富士電機株式会社 | 冗長化制御システムおよびその制御装置 |
JP7023726B2 (ja) * | 2018-01-25 | 2022-02-22 | 株式会社日立ハイテクソリューションズ | 二重化制御システム |
JP7047728B2 (ja) * | 2018-11-29 | 2022-04-05 | オムロン株式会社 | コントローラ、およびコントローラの制御方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4608631A (en) * | 1982-09-03 | 1986-08-26 | Sequoia Systems, Inc. | Modular computer system |
JPH02156363A (ja) * | 1988-12-08 | 1990-06-15 | Fuji Electric Co Ltd | 共通メモリの状態変化検出方法 |
JP3206006B2 (ja) * | 1991-01-25 | 2001-09-04 | 株式会社日立製作所 | 二重化バス制御方法及び装置 |
JP3139884B2 (ja) * | 1993-06-14 | 2001-03-05 | 株式会社東芝 | 多重要素処理システム |
JP3360385B2 (ja) * | 1993-12-28 | 2002-12-24 | 株式会社日立製作所 | プラント制御装置 |
GB2290891B (en) * | 1994-06-29 | 1999-02-17 | Mitsubishi Electric Corp | Multiprocessor system |
JPH0944203A (ja) * | 1995-07-26 | 1997-02-14 | Hitachi Ltd | 冗長化制御システム |
JP2000305919A (ja) * | 1999-04-23 | 2000-11-02 | Hitachi Ltd | マルチプロセッサシステムとその同期方法、振動試験装置 |
JP4154853B2 (ja) | 2000-11-13 | 2008-09-24 | 富士電機機器制御株式会社 | 制御データを等値化する冗長化プログラマブルコントローラ及び等値化方法。 |
US7093158B2 (en) * | 2002-03-11 | 2006-08-15 | Hewlett-Packard Development Company, L.P. | Data redundancy in a hot pluggable, large symmetric multi-processor system |
JP4161276B2 (ja) * | 2004-12-17 | 2008-10-08 | 日本電気株式会社 | フォルトトレラントコンピュータ装置およびその同期化方法 |
JP2006031727A (ja) * | 2005-08-17 | 2006-02-02 | Hitachi Ltd | フェールセーフコントローラ |
GB2477238B (en) * | 2006-01-13 | 2011-09-07 | Emerson Process Management | A method for redundant controller synchronisation for bump-less failover during normal and mismatch conditions |
JP4791909B2 (ja) * | 2006-08-21 | 2011-10-12 | 株式会社東芝 | 高速入出力機能を備える制御装置、及びその制御データの制御方法 |
JP2009187314A (ja) * | 2008-02-06 | 2009-08-20 | Fuji Electric Systems Co Ltd | 二重化コントローラ・システム、cpuモジュール、そのプログラム |
JP5239525B2 (ja) * | 2008-06-06 | 2013-07-17 | 横河電機株式会社 | 多重化入出力モジュール |
JP4981951B2 (ja) * | 2010-06-02 | 2012-07-25 | 株式会社トライテック | 分散コンピューティングシステム |
-
2012
- 2012-05-10 EP EP12876411.5A patent/EP2849005B1/en active Active
- 2012-05-10 JP JP2014514305A patent/JP5908068B2/ja active Active
- 2012-05-10 WO PCT/JP2012/062003 patent/WO2013168258A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
EP2849005A1 (en) | 2015-03-18 |
JPWO2013168258A1 (ja) | 2015-12-24 |
EP2849005A4 (en) | 2016-07-06 |
WO2013168258A1 (ja) | 2013-11-14 |
EP2849005B1 (en) | 2019-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6600518B2 (ja) | バスシステム | |
US20120304024A1 (en) | Data processing method, data processor and apparatus including a data processor | |
JP2006195821A (ja) | 情報処理システムの制御方法、情報処理システム、ダイレクトメモリアクセス制御装置、プログラム | |
WO2015056695A1 (ja) | 制御装置および制御方法 | |
CN1971548A (zh) | 用于对固定等待时间互连进行锁步处理的方法和装置 | |
WO2006114822A1 (ja) | Dmaコントローラ、ノード、データ転送制御方法、及びプログラム | |
JP4454538B2 (ja) | 多重系電子計算機 | |
JP5908068B2 (ja) | 待機冗長二重化装置 | |
JP3988146B2 (ja) | マルチノードシステム、ノード間クロスバスイッチ、ノード、スイッチプログラム及びノードプログラム | |
US8181064B2 (en) | Information processing apparatus for inhibiting instructions, saving and restoring internal information in response to abnormality in redundant processor system | |
JP4131263B2 (ja) | マルチノードシステム、ノード装置、ノード間クロスバスイッチ及び障害処理方法 | |
JP4572138B2 (ja) | サーバ装置、サーバシステム、及びサーバシステムでの系切り換え方法 | |
EP3428799B1 (en) | Data access device and access error notification method | |
JP2012163995A (ja) | 情報処理装置 | |
EP2019359B1 (en) | Information processing apparatus including transfer device for transferring requests | |
US9959173B2 (en) | Node, arithmetic processing device, and arithmetic processing method | |
EP3327521B1 (en) | Duplexing process control device | |
JP2000132210A (ja) | 制御装置及び協調制御方法 | |
JP2016207142A (ja) | 計算機及びメモリ故障診断方法 | |
JP5076348B2 (ja) | 共有メモリのアクセス方式 | |
JP6535516B2 (ja) | マルチ・プログラマブルデバイス・システムとその制御方法 | |
JP4421812B2 (ja) | 診断機能を有するコンピュータシステム | |
CN118786416A (zh) | 多节点系统的重置 | |
JP5669193B2 (ja) | 情報処理装置、データ転送方法、及び情報処理システム | |
JP2009276983A (ja) | 多重化計算機システム、及びその処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150929 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151113 |
|
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: 20160223 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160322 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5908068 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |