JP2009187314A - 二重化コントローラ・システム、cpuモジュール、そのプログラム - Google Patents

二重化コントローラ・システム、cpuモジュール、そのプログラム Download PDF

Info

Publication number
JP2009187314A
JP2009187314A JP2008026910A JP2008026910A JP2009187314A JP 2009187314 A JP2009187314 A JP 2009187314A JP 2008026910 A JP2008026910 A JP 2008026910A JP 2008026910 A JP2008026910 A JP 2008026910A JP 2009187314 A JP2009187314 A JP 2009187314A
Authority
JP
Japan
Prior art keywords
parallel bus
cpu
identification number
module
standby
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008026910A
Other languages
English (en)
Inventor
Toshiyuki Nishiwaki
敏之 西脇
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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Systems Co 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 Fuji Electric Systems Co Ltd filed Critical Fuji Electric Systems Co Ltd
Priority to JP2008026910A priority Critical patent/JP2009187314A/ja
Publication of JP2009187314A publication Critical patent/JP2009187314A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Safety Devices In Control Systems (AREA)
  • Programmable Controllers (AREA)
  • Hardware Redundancy (AREA)

Abstract

【課題】稼動/待機切り替えが生じた場合に稼動系のCPUモジュールにアクセスできなくなるという問題を解決する。
【解決手段】任意の稼動/待機ペアにおいて稼動/待機切り替えが生じた場合、このペアの各CPUモジュールは、自己が稼動系に移行する場合にはデフォルト稼動CPU番号を取得してこれを自己のバラレルバス制御部にセットする。一方、自己が待機系に移行する場合にはデフォルト待機CPU番号を取得してこれを自己のバラレルバス制御部にセットする。
【選択図】図2

Description

本発明は、複数のCPUモジュールで構成されて、各CPUモジュールがパラレルバスを介して相互に通信可能な二重化コントローラ・システムに関する。
従来より、プログラマブルコントローラ・システムにおいて、信頼性を向上させるためにCPUモジュール(プログラマブルコントローラ本体)を待機冗長の二重化構成にする場合がある。待機冗長の二重化構成は、2つのCPUモジュールを1組とし、一方を稼動系、他方を待機系とし、稼動系CPUモジュールを待機系CPUモジュールが監視して、稼動系CPUモジュールに障害等の切り替え要因が生じたならば待機系CPUモジュールが稼動系に切り替る構成(以下、二重化コントローラ・システムと呼ぶ)である。
上記従来の二重化コントローラ・システムの一例が、例えば特許文献1,2,3等に開示されている。
図4に、従来の二重化コントローラ・システム全体の概略構成図を示す。
図4に示す例では2組のCPUモジュールがシステムバス102に接続されている。すなわち、CPU0モジュールとCPU1モジュール、CPU2モジュールとCPU3モジュールが、其々、稼動/待機ペア(図示の稼動/待機ペア0と稼動/待機ペア1)として構成され、各CPUモジュールと各I/Oモジュール103はシステムバス102に接続される。
また、上記特許文献1〜3には示されていないが、図4に示すように、各CPUモジュールはパラレルバス101に接続されており、各CPUモジュールはパラレルバス101を介して他のCPUモジュールのユーザデータにアクセスすることができる。
図5に、各CPUモジュールのペアの詳細な構成例を示す。ここでは一例として稼動/待機ペア0の構成例を示すが、稼動/待機ペア1も同じ構成である。
図示の通り、稼動/待機ペアとなるCPUモジュール同士は、上記パラレルバス101だけで無く更に等値化バス104により接続されており、等値化バス104を介して上記特許文献1,2等に記載の等値化処理を行っているが、ここでは等値化処理は関係ないので特に説明しない。
各CPUモジュールの構成は同じであるので、その各構成の符号は同一の構成に関しては同一符号を付してある。図示のCPU0モジュールは、プログラムRAM51、データRAM52、等値化バス制御部53、受信バッファ用RAM54、マイクロプロセッサ55、及びパラレルバス制御部56等を有する。図示の通り、CPU1モジュールもCPU0モジュールと同じ構成である。
上記構成のうち、パラレルバス制御部56以外の構成は、上記特許文献1,2等に詳細に説明されているので、ここではごく簡単に説明するのみとする。
まず、プログラムRAM51には、ユーザプログラム51aが格納される。ユーザプログラム51aとは、例えば各定周期プログラム(定周期に実行される各種制御処理等をマイクロプロセッサにより実行させるプログラム)等である。
データRAM52は、ユーザデータ領域52aを有し、また、等値化データ転送情報52bを格納する。等値化データ転送情報52b、等値化バス制御部53、受信バッファ用RAM54、及び等値化バス104は、上記特許文献1,2等に記載の等値化処理に関係する構成/情報であり、ここでは関係ないので特に説明しない。また、システムバス102を介したデータ送受信処理を行う為の構成も存在するが、ここでは関係ないので特に図示/説明しない。
ユーザデータ領域52aには各種ユーザデータが格納される。ユーザデータは上記ユーザプログラム51aによる処理に係る各種データ(変数等)であり、詳細な一例は特許文献2等に記載されているが、ここでは特に関係ないので説明しないものとする。
そして、パラレルバス制御部56は、パラレルバス101を介して他のCPUモジュールとの通信を行う為の構成である。すなわち、ユーザプログラム51aを実行するマイクロプロセッサ55は、ユーザプログラム51aによって示されるアドレスがパラレルバス空間である場合は、自己のパラレルバス制御部56に通信処理を依頼する。これにより、自己のパラレルバス制御部56がパラレルバス101を介して他のCPUモジュールのパラレルバス制御部56との通信を行う。また、他のCPUモジュールのユーザデータ領域52にアクセスすることができる。
ここで、図6に示すように、パラレルバス制御部56内にはCPU番号設定レジスタ56aが備えられており、このCPU番号設定レジスタ56aには、予め各CPUモジュール毎のユニークなCPU番号が設定されている。パラレルバス制御部56は、このCPU番号によりアクセス応答を行う。すなわち、パラレルバス101上での他のCPUモジュールによるアクセス相手先として、自己のCPU番号が指定されている場合には、アクセス応答を行う。
ここで、特許文献3には、CPUモジュール間の各種アクセスのために各CPUモジュールを物理的に識別するCPU局番(上記CPU番号に相当)が、各CPUモジュールには設定されていることが開示されている。更に、特許文献3には、CPUモジュールの冗長化ペアの組み合わせの決定に、このCPU局番を利用することが開示されている。すなわち、このCPU局番を用いて、例えばCPU局番0と1、CPU局番2と3というように、CPU局番の数字が連番のものがペアとなることを固定的に定義する。
また、どちらが稼動状態/待機状態になるかを同時電源投入時の決定する際において、上記各ペアの組合せにおいて偶数番号側をデフォルトで稼動CPU、奇数番号側をデフォルトで待機CPUと定義している。これにより同時電源投入時に、例えば上記CPU局番が0と2の各CPUモジュールは稼動系、上記CPU局番が1と3の各CPUモジュールは待機系となる。
ここで、例えば、CPU0モジュールがCPU番号=0、CPU1モジュールがCPU番号=1、CPU2モジュールがCPU番号=2、CPU3モジュールがCPU番号=3を、それぞれ自己のパラレルバス制御部56に設定するものとすると、例えば図7に示すように、パラレルバス上でのアドレス空間が決まる。
また、図8には、ユーザプログラムにおけるパラレルバス上のアドレス空間表現の一例を示す。
図示のアドレス空間表現では、最上位アドレスビット=15により内部データRAM空間であるかパラレルバス空間であるかを識別できる。
そして、ユーザプログラムを実行するマイクロプロセッサ55は、パラレルバス空間である場合は、アドレスビット=14〜0をパラレルバス制御部56に渡してアクセス処理を要求する。アドレスビット=14〜0において、アドレスビット14〜10は上記CPU番号、アドレスビット0〜9がオフセットアドレスである。
パラレルバス制御部56は、このアドレスビット=14〜0をパラレルバス101上に送出する。これによりアドレスビット14〜10によって示される上記CPU番号に該当する他CPUモジュールのパラレルバス制御部56が、アクセス応答することになる。すなわち、自己のCPU番号設定レジスタ56aに設定されているCPU番号が、上記アドレスビット14〜10のCPU番号と同一であるパラレルバス制御部56が、アクセス応答することになる。例えば上記の例においてアドレスビット14〜10のCPU番号=‘2’であった場合、CPU2モジュールのパラレルバス制御部56が、アクセス応答することになる。
ここで、稼動/待機ペアとなる1組のCPUモジュールは、同一のユーザプログラムを格納することが一般的である。上記図4の例では、図9(a)に示すように、CPU0モジュールとCPU1モジュールには、其々、同一のユーザプログラムが格納されている。同様に、CPU2モジュールとCPU3モジュールには、其々、同一のユーザプログラムが格納されている(このユーザプログラムは、基本的に、CPU0モジュール等のユーザプログラムとは異なる)。
そして、各ユーザプログラムにおける上記アドレス空間表現のアドレスビット14〜10によって示されるCPU番号、すなわちアクセス先を示すCPU番号は、通常、デフォルト稼動系のCPUモジュールのCPU番号となっている。
ここで、例えば、図9(a)、(b)に示す例では、図9(a)にはデフォルト状態、図9(b)には稼動/待機切り替えがあった後の状態を示す。
デフォルト状態(電源投入直後等)では、図4に示す状態となっている。すなわち、CPU0モジュールとCPU2モジュールとがデフォルト稼動系となっており、CPU1モジュールとCPU3モジュールとがデフォルト待機系となっている。上記ユーザプログラムは、上記の通り、このデフォルト状態に合わせて作成されている。
従って、例えば、稼動/待機ペア0のCPUモジュールのユーザプログラムにて、稼動/待機ペア1のCPUモジュールのユーザデータ領域をアクセスする場合、このユーザプログラムにおける上記アドレスビット14〜10のCPU番号は、稼動/待機ペア1においてデフォルト稼動系であるCPU2モジュールのCPU番号となっている。図9(a)に示す例では、上記アドレスビット14〜10のCPU番号=‘2’となっている。
デフォルト状態のままであれば、これで問題はない。しかし、少なくとも何れかのペアにおいて何らかの原因により稼動/待機切り替えが生じると、問題が生じる。例えば、図9(a)に示す状態から、図9(b)に示す状態になった場合等である。すなわち、稼動/待機ペア1において稼動/待機切り替えが生じた結果、図9(b)に示すように、CPU2モジュールが待機系、CPU3モジュールが稼動系になったとする。
この場合、例えばCPU0モジュールが、上記アドレスビット14〜10のCPU番号=‘2’によってアクセスした場合、アクセス先は当然CPU2モジュールとなるが、これは上記の通り待機系になってしまっている。この為、現在稼動系となっているCPU3モジュールにアクセスできなくなるという問題が発生してしまう。
この問題への対策としては、ユーザが上記稼動/待機ペア0のCPUモジュールのユーザプログラムにおいて、稼動/待機ペア1のCPUモジュールの現在の稼動/待機状態を判断して、この判断結果に応じてアクセスアドレスを使い分けるなどの処理を追加作成する等の対処をしなければならない。勿論、稼動/待機ペア1のCPUモジュールのユーザプログラムに関しても同様の対処が必要である。よって、ユーザに複雑なプログラムを作成させることになり、ユーザの負担が重くなる。また、プログラム実行速度の低速化をまねいてしまう。
特開2003−296133号公報 特開2005−92520号公報 特開2002−140206号公報
本発明の課題は、上記二重化コントローラ・システムにおいて、ユーザプログラムによりパラレルバスを介して他の稼動/待機ペアの稼動系CPUモジュールにアクセスを行う処理に係る問題、すなわち稼動/待機切り替えが生じた場合に稼動系のCPUモジュールにアクセスできなくなるという問題を、ユーザがユーザプログラムにこの問題を解決する為の処理を追加する等の作業を行う必要なく、ユーザの手間が掛かることなく且つプログラムが複雑化し処理の低速化をまねくことなく、パラレスバス制御部の設定内容を自動的に変更することで解決できるようにする二重化コントローラ・システム、CPUモジュール、そのプログラム等を提供することである。
本発明の二重化コントローラ・システムは、稼動系と待機系のCPUモジュールのペアが複数組存在し、各CPUモジュールがパラレルバスを介して相互に通信可能な二重化コントローラ・システムであって、前記各CPUモジュールは、任意に設定可能な自己の識別番号を記憶する番号設定レジスタを備え、前記パラレルバスに接続し、該パラレルバス上で前記自己の識別番号を用いて他のCPUモジュールのパラレルバス制御手段との間で通信を行うパラレルバス制御手段と、ユーザプログラム実行に伴い前記パラレスバスを介した通信処理を実行する場合、通信相手先の前記識別番号を含むアクセス先アドレスを前記パラレルバス制御手段に渡すことで前記通信を行わせるユーザプログラム実行手段と、自ペアにおける稼動系、待機系それぞれに対応する前記識別番号を記憶する識別番号記憶手段と、稼動系/待機系切り替えが行われる際に、前記識別番号記憶手段を参照し、自モジュールが稼動系から待機系へ移行する場合には前記待機系に対応する識別番号を前記番号設定レジスタに設定し、自モジュールが待機系から稼動系へ移行する場合には前記稼動系に対応する識別番号を前記番号設定レジスタに設定する識別番号設定手段とを有する。
例えば、前記パラレルバス制御手段は、任意の他のCPUモジュールのパラレルバス制御手段による通信における前記通信相手先の識別番号が、自己の前記番号設定レジスタに記憶される識別番号と同一の場合には、自己が前記通信相手先であると認識し、アクセス応答する。
上記ユーザプログラム実行に伴う通信相手先の識別番号は、上記稼動系に対応する識別番号となっている。上記稼動系/待機系切り替えが行われる際の上記識別番号設定手段の処理により、新たに稼動系となったCPUモジュールの番号設定レジスタには上記稼動系に対応する識別番号が設定されている。よって、稼動系/待機系切り替えが行われた場合でも、上記ユーザプログラム実行に伴う通信に対して、新たに稼動系となったCPUモジュールのパラレルバス制御手段がアクセス応答することになり、稼動系のCPUモジュールにアクセスすることができる。
本発明の二重化コントローラ・システム、CPUモジュール、そのプログラム等によれば、二重化コントローラ・システムにおいて、ユーザプログラムによりパラレルバスを介して他の稼動/待機ペアの稼動系CPUモジュールにアクセスを行う処理に係る問題、すなわち稼動/待機切り替えが生じた場合に稼動系のCPUモジュールにアクセスできなくなるという問題を、ユーザがユーザプログラムにこの問題を解決する為の処理を追加する等の作業を行う必要なく、ユーザの手間が掛かることなく且つプログラムが複雑化し処理の低速化をまねくことなく、パラレスバス制御部の設定内容を自動的に変更することで解決できる。
以下、図面を参照して本発明の実施の形態について説明する。
図1は、本例の二重化コントローラ・システムにおけるCPUモジュールの構成図である。
尚、本例の二重化コントローラ・システム全体構成は、ここでは示さないが、例えば図4に示す構成と同様に、稼動/待機ペアのCPUモジュールが複数組存在しており、各CPUモジュールはパラレルバス1やシステムバス3に接続している。このシステムバス3には、各I/Oモジュール4も接続している。また稼動/待機ペアとなるCPUモジュール間は等値化バス2により接続している。この複数のCPUモジュールの構成/処理は同じであり、その構成例を図1に示している。
また、尚、図1に示す構成自体は、上述した従来の構成と略同様である。従来と異なる点は、本例のCPUモジュールでは、後述する図2の処理も実行する点であり、これについては後に説明する。よって、図1の構成に関しては、以下の通り、簡単に説明するのみとする。
図1に示す例のCPUモジュール10は、プログラムRAM11、データRAM12、等値化バス制御部13、受信バッファ用RAM14、マイクロプロセッサ15、及びパラレルバス制御部16等を有する。
プログラムRAM11には、ユーザプログラム11aが格納される。ユーザプログラム11aとは、例えば各定周期プログラム(定周期に実行される各種制御処理等をマイクロプロセッサにより実行させるプログラム)等である。データRAM12は、ユーザデータ領域12aを有し、また、等値化データ転送情報12bを格納する。等値化データ転送情報12b、等値化バス制御部13、受信バッファ用RAM14、及び等値化バス2によって、上記特許文献1,2等に記載の等値化処理が実行される。尚、等値化バス2は、自己とペアとなるCPUモジュールと接続するバスである。
そして、特に図示しないが、図1の構成におけるパラレルバス制御部16も、図6に示す従来例と同様、CPU番号設定レジスタを備えている。CPU番号設定レジスタには予め所定のCPU番号が記憶されている。
従来では、このCPU番号が予め設定された固定的な値のままであったが、本手法では、マイクロプロセッサ15が図2(a)、(b)の処理を実行することで、CPU番号設定レジスタに記憶されるCPU番号を変更する場合がある。
すなわち、上記本例の二重化コントローラ・システムにおけるCPUモジュールでは、マイクロプロセッサ15は、自モジュールの稼動/待機状態に応じて、自己のパラレルバス制御部16に対して、稼動状態時には他のCPUモジュールのユーザプログラムにより使用されるパラレルバスのアドレス空間(デフォルト稼動のCPU番号)の設定にする。また、待機状態時は、他のCPUモジュールのユーザプログラムにより使用されないアドレス空間(デフォルト待機のCPU番号)の設定にする。詳しくは後に図2を参照して説明する。
尚、本例のユーザプログラム11aは、パラレルバスアクセス処理に関しては、上記従来と同様、他の各稼動/待機ペアへのアクセスに関して、アクセス先としてデフォルト稼動系のCPUモジュールのCPU番号を使用している。
上述した設定の切り替えは、例えば、自機が稼動状態から待機状態に切り替わる際(待機状態に移行する際)、あるいは待機状態から稼動状態に切り替わる際(稼動状態に移行する際)に実行する。図2(a)には稼動状態に移行する際の設定処理、図2(b)には待機状態に移行する際の設定処理を示す。
ここで、図1には示していないが、例えばデータRAM12又はマイクロプロセッサ15の不図示の内部メモリには、予め、自己の稼動/待機ペアに係るデフォルト稼動CPU番号とデフォルト待機CPU番号とが記憶されている。例えば、図9(a)に示す例を用いると、稼動/待機ペア0のCPU0モジュールとCPU1モジュールには、それぞれ、デフォルト稼動CPU番号=‘0’及びデフォルト待機CPU番号=‘1’が記憶されている。同様に、稼動/待機ペア1のCPU2モジュールとCPU3モジュールには、それぞれ、デフォルト稼動CPU番号=‘2’及びデフォルト待機CPU番号=‘3’が記憶されている。
そして、本例においても、初期状態では、各CPUモジュールのパラレルバス制御部16(そのCPU番号設定レジスタ)には、従来と同様のCPU番号が記憶されている。すなわち、図9(a)の例のように、パラレルバス制御部16に予め記憶されているCPU番号は、CPU0モジュールでは‘0’、CPU1モジュールでは‘1’、CPU2モジュールでは‘2’、CPU3モジュールでは‘3’となっている。
これは、換言すれば、デフォルト稼動系となっているCPUモジュールのパラレルバス制御部16には上記デフォルト稼動CPU番号が記憶され、デフォルト待機系となっているCPUモジュールのパラレルバス制御部16には上記デフォルト待機CPU番号が記憶されている。
そして、任意の稼動/待機ペアにおいて稼動/待機切り替えがあった場合には、当該ぺアの各CPUモジュールのマイクロプロセッサ15は、自己が待機状態から稼動状態に移行する場合には図2(a)の処理を、自己が稼動状態から待機状態に移行する場合には図2(b)の処理を、それぞれ実行する。
図2(a)の処理では、上記デフォルト稼動CPU番号を取得して(ステップS11)、これを自己のパラレルバス制御部16に(そのCPU番号設定レジスタに)セットする(ステップS12)。
図2(b)の処理では、上記デフォルト待機CPU番号を取得して(ステップS21)、これを自己のパラレルバス制御部16に(そのCPU番号設定レジスタに)セットする(ステップS22)。
この様な処理を実行することで、常に、現在稼動系となっているCPUモジュールのパラレルバス制御部16には、ユーザプログラムで使用するCPU番号と同じCPU番号がセットされることになり、このユーザプログラム実行により必ず現在稼動系のCPUモジュールにアクセルされることになり、ユーザプログラムを変更しなくても、上記従来の問題が解決できる。すなわち、ユーザの手間が掛かることなく、上記従来の問題が解決できる。また、ユーザプログラム実行速度の低速化を招くこともない。
尚、図2(a)、(b)に示す処理は、マイクロプロセッサ15が、その内部メモリ又はプログラムRAM11等に予め記憶されている所定のアプリケーションプログラムを読出し・実行することにより実現される。
ここで、例えば、パラレルバス制御部16に対するデフォルトのCPU番号設定が、上述したように(そして図9等に一例として示したように)、デフォルト稼動系に対しては偶数のCPU番号、デフォルト待機系に対しては奇数のCPU番号が設定されるように、予め決められている場合には、これに対応して、ユーザプログラムが扱う論理アドレスのCPU番号(例えば図8に示す10〜14ビットにより示されるCPU番号)は、全て偶数のCPU番号となっている。
この場合には、上記図2(a)の稼動系への移行時の処理は、パラレルバス制御部16が管理する物理アドレスを、ユーザプログラムが扱う論理アドレスである偶数CPU番号へ変更する処理を意味することになる。同様に、上記図2(a)の待機系への移行時の処理は、パラレルバス制御部16が管理する物理アドレスを、ユーザプログラムにより使用されない論理アドレスである奇数CPU番号へ変更する処理を意味することになる。
この偶数CPU番号と奇数CPU番号の対応関係は、例えば、ペア情報として不図示のテーブル等に予め定義されている(マイクロプロッセ15のアクセス可能な図示しないファームウェア部に具備する)。
尚、上記の例では、0と1、2と3・・・、のような奇数・偶数をペアとしているが、0と2、1と3・・・、のような対応関係であっても構わない。また、偶数CPU番号がデフォルト待機系で奇数CPU番号がデフォルト起動系であっても構わない。本説明では一例として、偶数CPU番号がデフォルト稼動系の場合について説明している。
上述した図2(a)、(b)の処理により、各CPUモジュールのパラレルバス制御部16には、そのCPUモジュールが稼動状態時には物理アドレス=偶数CPU番号、待機状態時は物理アドレス=奇数CPU番号が設定されていることになるので、ユーザプログラムが扱う論理アドレスが固定的(偶数CPU番号)であっても、常に、現在稼動系のCPUモジュールにアクセスされることになる。
図3(a)〜(c)に、上記構成のCPUモジュールを例えば図9のシステム構成に適用した場合のCPU番号変更の一例を示す。
図3(a)〜(c)のシステム構成では、図9の例に従い、2組のCPUモジュールペアが存在する。すなわち、稼動/待機ペア0(CPU0モジュールとCPU1モジュールのペア)と稼動/待機ペア1(CPU2モジュールとCPU3モジュールのペア)とが存在する。そして、ここでは、CPU0モジュールとCPU2モジュールがデフォルト稼動系となっており、初期状態ではそれぞれ自己のパラレルバス制御部16にCPU番号=0、CPU番号=2が設定されている。同様に、CPU1モジュールとCPU3モジュールがデフォルト待機系となっており、初期状態ではそれぞれ自己のパラレルバス制御部16にCPU番号=1、CPU番号=3が設定されている。
図3(a)に示す状態1には上記初期状態のCPU番号設定状況を示してある。
そして、ユーザプログラムは上記初期状態に合わせて作成されている。例えば、稼動/待機ペア0のCPUモジュールにおけるユーザプログラムでは、稼動/待機ペア1のCPUモジュールにパラレスバス1を介してアクセスする処理において、アクセス先のCPU番号(例えば図8に示す10〜14ビットにより示されるCPU番号)=2となっている。同様に、稼動/待機ペア1のCPUモジュールにおけるユーザプログラムでは、稼動/待機ペア0のCPUモジュールにパラレスバス1を介してアクセスする処理において、アクセス先のCPU番号=0となっている。
よって、例えば、CPU0モジュールが論理アドレスとしてCPU番号=2を用いてパラレルバスアクセスを行った場合、CPU2モジュールは物理アドレスとしてCPU番号=2を設定しているので、CPU2モジュールがアクセス応答することになる。これより、CPU0モジュールはCPU2モジュールのユーザデータ領域12aにアクセスすることができる。
そして、例えば、稼動/待機ペア1にて稼動/待機切り替えが発生すると、当該ペアの各CPUモジュールで上記図2(a)または図2(b)の処理が実行されることで、図3(b)に示す状態2となる。すなわち、待機系へと切り替わったCPU2モジュールのパラレルバス制御部16にはCPU番号=3が設定され、稼動系へと切り替わったCPU3モジュールのパラレルバス制御部16にはCPU番号=2が設定された状態となる。
この状態2で上記例と同様にCPU0モジュールが論理アドレスとしてCPU番号=2を用いてパラレルバスアクセスを行った場合、CPU3モジュールは物理アドレスとしてCPU番号=2を設定しているので、現在稼動系のCPU3モジュールがアクセス応答することになる。これより、CPU0モジュールはCPU3モジュールのユーザデータ領域12aにアクセスすることができる。
尚、図3(b)に示す状態2において更に稼動/待機ペア1にて稼動/待機切り替えが発生すると、再び図2(a)、(b)の処理が実行されることで、図3(c)に示す状態3となる。この状態3は図3(a)に示す状態1と同じである。
上記の通り、本手法によれば、ユーザプログラムにおいて、通信相手先のCPUモジュールペアの現在の稼動/待機状態を判断してこの判断結果に応じてアクセスアドレスを使い分けるなどの処理を追加しなくても、稼動/待機切り替え時にのみ上記簡単な処理を実行するだけで、必ず、現在稼動状態のCPUモジュールがアクセス応答するようにできる。
すなわち、システム処理にて、常に、現在稼動状態となっているCPUモジュールのパラレルバス制御部16に設定されるCPU番号=偶数の物理アドレスを維持することにより、ユーザがパラレルバスアクセスを行うプログラムを作成する時は、CPU番号=偶数の論理アドレスを使用すれば良いことになり、ユーザプログラム作成の容易化、または、プログラム実行の高速化が図れる。
本例の二重化コントローラ・システムにおけるCPUモジュールの構成図である。 (a)、(b)は稼動/待機切り替え時の処理フローチャート図である。 (a)〜(c)は、図2の処理によるCPU番号設定変更の様子を示す図である。 従来の二重化コントローラ・システム全体の概略構成図である。 図4の各CPUモジュールのペアの詳細な構成例である。 パラレルバス制御部内のCPU番号設定レジスタを示す図である。 パラレルバス上でのアドレス空間の一例である。 ユーザプログラムのパラレルバスのアドレス空間表現の一例である。 (a)、(b)は稼動/待機切り替え前後の状態を示す図である。
符号の説明
1 パラレスバス
2 等値化バス
3 システムバス
4 I/Oモジュール
10 CPUモジュール
11 プログラムRAM
12 データRAM
13 等値化バス制御部
14 受信バッファ用RAM
15 マイクロプロセッサ
16 パラレルバス制御部

Claims (4)

  1. 稼動系と待機系のCPUモジュールのペアが複数組存在し、各CPUモジュールがパラレルバスを介して相互に通信可能な二重化コントローラ・システムであって、
    前記各CPUモジュールは、
    任意に設定可能な自己の識別番号を記憶する番号設定レジスタを備え、前記パラレルバスに接続し、該パラレルバス上で前記自己の識別番号を用いて他のCPUモジュールのパラレルバス制御手段との間で通信を行うパラレルバス制御手段と、
    ユーザプログラム実行に伴い前記パラレスバスを介した通信処理を実行する場合、通信相手先の前記識別番号を含むアクセス先アドレスを前記パラレルバス制御手段に渡すことで前記通信を行わせるユーザプログラム実行手段と、
    自ペアにおける稼動系、待機系それぞれに対応する前記識別番号を記憶する識別番号記憶手段と、
    稼動系/待機系切り替えが行われる際に、前記識別番号記憶手段を参照し、自モジュールが稼動系から待機系へ移行する場合には前記待機系に対応する識別番号を前記番号設定レジスタに設定し、自モジュールが待機系から稼動系へ移行する場合には前記稼動系に対応する識別番号を前記番号設定レジスタに設定する識別番号設定手段と、
    を有することを特徴とする二重化コントローラ・システム。
  2. 前記パラレルバス制御手段は、任意の他のCPUモジュールのパラレルバス制御手段から通信を受けた前記通信相手先の識別番号と、自己の前記番号設定レジスタに記憶される識別番号とが同一の場合には、自己が前記通信相手先であると認識し、アクセス応答することを特徴とする請求項1記載の二重化コントローラ・システム。
  3. 稼動系と待機系のCPUモジュールのペアが複数組存在し、各CPUモジュールがパラレルバスを介して相互に通信可能な二重化コントローラ・システムにおける前記各CPUモジュールであって、
    任意に設定可能な自己の識別番号を記憶する番号設定レジスタを備え、前記パラレルバスに接続し、該パラレルバス上で前記自己の識別番号を用いて他のCPUモジュールのパラレルバス制御手段との間で通信を行うパラレルバス制御手段と、
    ユーザプログラム実行に伴い前記パラレスバスを介した通信処理を実行する場合、通信相手先の前記識別番号を含むアクセス先アドレスを前記パラレルバス制御手段に渡すことで前記通信を行わせるユーザプログラム実行手段と、
    自ペアにおける稼動系、待機系それぞれに対応する前記識別番号を記憶する識別番号記憶手段と、
    稼動系/待機系切り替えが行われる際に、前記識別番号記憶手段を参照し、自モジュールが稼動系から待機系へ移行する場合には前記待機系に対応する識別番号を前記番号設定レジスタに設定し、自モジュールが待機系から稼動系へ移行する場合には前記稼動系に対応する識別番号を前記番号設定レジスタに設定する識別番号設定手段と、
    を有することを特徴とするCPUモジュール。
  4. 稼動系と待機系のCPUモジュールのペアが複数組存在し、各CPUモジュールがパラレルバスを介して相互に通信可能な二重化コントローラ・システムにおける前記各CPUモジュールにおけるコンピュータを、
    任意に設定可能な自己の識別番号を記憶する番号設定レジスタを備え、前記パラレルバスに接続し、該パラレルバス上で前記自己の識別番号を用いて他のCPUモジュールのパラレルバス制御手段との間で通信を行うパラレルバス制御手段と、
    ユーザプログラム実行に伴い前記パラレスバスを介した通信処理を実行する場合、通信相手先の前記識別番号を含むアクセス先アドレスを前記パラレルバス制御手段に渡すことで前記通信を行わせるユーザプログラム実行手段と、
    自ペアにおける稼動系、待機系それぞれに対応する前記識別番号を記憶する識別番号記憶手段と、
    稼動系/待機系切り替えが行われる際に、前記識別番号記憶手段を参照し、自モジュールが稼動系から待機系へ移行する場合には前記待機系に対応する識別番号を前記番号設定レジスタに設定し、自モジュールが待機系から稼動系へ移行する場合には前記稼動系に対応する識別番号を前記番号設定レジスタに設定する識別番号設定手段、
    として機能させる為のプログラム。
JP2008026910A 2008-02-06 2008-02-06 二重化コントローラ・システム、cpuモジュール、そのプログラム Pending JP2009187314A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008026910A JP2009187314A (ja) 2008-02-06 2008-02-06 二重化コントローラ・システム、cpuモジュール、そのプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008026910A JP2009187314A (ja) 2008-02-06 2008-02-06 二重化コントローラ・システム、cpuモジュール、そのプログラム

Publications (1)

Publication Number Publication Date
JP2009187314A true JP2009187314A (ja) 2009-08-20

Family

ID=41070481

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008026910A Pending JP2009187314A (ja) 2008-02-06 2008-02-06 二重化コントローラ・システム、cpuモジュール、そのプログラム

Country Status (1)

Country Link
JP (1) JP2009187314A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011227597A (ja) * 2010-04-16 2011-11-10 Hitachi Ltd プログラマブル表示器の監視操作方法、監視操作プログラムおよびプログラマブル表示器
WO2013168258A1 (ja) * 2012-05-10 2013-11-14 三菱電機株式会社 待機冗長二重化装置
JP2014049068A (ja) * 2012-09-04 2014-03-17 Japan Research Institute Ltd サーバの単独切替システム及びその方法
CN107508454A (zh) * 2017-07-28 2017-12-22 中车大连电力牵引研发中心有限公司 变流器柜体级并联方法及***
KR20180078323A (ko) 2016-01-13 2018-07-09 미쓰비시덴키 가부시키가이샤 통신 시스템, 통신 기기 및 통신처의 전환 방법
JP2019219894A (ja) * 2018-06-20 2019-12-26 株式会社明電舎 Plc二重化システムの切替方式、plc二重化システムの切替方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816422A (ja) * 1994-07-04 1996-01-19 Fujitsu Ltd バス通信方法及びバス通信システム
JP2000076216A (ja) * 1998-09-02 2000-03-14 Nec Corp マルチプロセッサシステム及びそのプロセッサ二重化方法並びにその制御プログラムを記録した記録媒体

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816422A (ja) * 1994-07-04 1996-01-19 Fujitsu Ltd バス通信方法及びバス通信システム
JP2000076216A (ja) * 1998-09-02 2000-03-14 Nec Corp マルチプロセッサシステム及びそのプロセッサ二重化方法並びにその制御プログラムを記録した記録媒体

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011227597A (ja) * 2010-04-16 2011-11-10 Hitachi Ltd プログラマブル表示器の監視操作方法、監視操作プログラムおよびプログラマブル表示器
WO2013168258A1 (ja) * 2012-05-10 2013-11-14 三菱電機株式会社 待機冗長二重化装置
JPWO2013168258A1 (ja) * 2012-05-10 2015-12-24 三菱電機株式会社 待機冗長二重化装置
JP2014049068A (ja) * 2012-09-04 2014-03-17 Japan Research Institute Ltd サーバの単独切替システム及びその方法
KR20180078323A (ko) 2016-01-13 2018-07-09 미쓰비시덴키 가부시키가이샤 통신 시스템, 통신 기기 및 통신처의 전환 방법
CN107508454A (zh) * 2017-07-28 2017-12-22 中车大连电力牵引研发中心有限公司 变流器柜体级并联方法及***
CN107508454B (zh) * 2017-07-28 2023-02-10 中车大连电力牵引研发中心有限公司 变流器柜体级并联方法及***
JP2019219894A (ja) * 2018-06-20 2019-12-26 株式会社明電舎 Plc二重化システムの切替方式、plc二重化システムの切替方法
JP7028078B2 (ja) 2018-06-20 2022-03-02 株式会社明電舎 Plc二重化システムの切替方式、plc二重化システムの切替方法

Similar Documents

Publication Publication Date Title
US11237728B2 (en) Method for accessing extended memory, device, and system
US10824499B2 (en) Memory system architectures using a separate system control path or channel for processing error information
US8156376B2 (en) Method, device and system for storing data in cache in case of power failure
KR20170139438A (ko) 디디알 호환 비동기 메모리 모듈 시스템 및 그것의 동작 방법
KR102378466B1 (ko) 메모리 장치 및 모듈
JP2009187314A (ja) 二重化コントローラ・システム、cpuモジュール、そのプログラム
JP2019536136A (ja) プラットフォームマージニング及びデバッグのためのソフトウェアモードレジスタアクセス
JP6710219B2 (ja) 統合プロセッサを備えたdram回路
US10810133B1 (en) Address translation and address translation memory for storage class memory
TW201945920A (zh) 儲存備份記憶體封裝中之狀態管理
US10762137B1 (en) Page table search engine
CN104932914A (zh) 多cpu启动电路和多cpu启动方法
CN114527942B (zh) 一种基于固态硬盘的写数据方法、***、存储介质及设备
US8601215B2 (en) Processor, server system, and method for adding a processor
US8055939B2 (en) Memory control device and methods thereof
US10740167B2 (en) Multi-core processor and cache management method thereof
KR102334739B1 (ko) 메모리 모듈, 시스템, 및 그것의 에러 정정 방법
US10754789B1 (en) Address translation for storage class memory in a system that includes virtual machines
US20160034405A1 (en) Heterogeneous memory system and data communication method in the same
JP6632416B2 (ja) 共有メモリ制御回路及び共有メモリ制御方法
US9436613B2 (en) Central processing unit, method for controlling central processing unit, and information processing apparatus
JP2019053617A (ja) システムlsiおよびシステムlsiの故障検出方法
JP2008226111A (ja) 2重化コントローラシステム、その稼動系コントローラ
US9081673B2 (en) Microprocessor and memory access method
US11455248B2 (en) Semiconductor device capable of performing software lock-step

Legal Events

Date Code Title Description
A625 Written request for application examination (by other person)

Free format text: JAPANESE INTERMEDIATE CODE: A625

Effective date: 20100914

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20110422

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120904

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130108