JP2005258576A - 二重系cpu切替システム - Google Patents
二重系cpu切替システム Download PDFInfo
- Publication number
- JP2005258576A JP2005258576A JP2004066032A JP2004066032A JP2005258576A JP 2005258576 A JP2005258576 A JP 2005258576A JP 2004066032 A JP2004066032 A JP 2004066032A JP 2004066032 A JP2004066032 A JP 2004066032A JP 2005258576 A JP2005258576 A JP 2005258576A
- Authority
- JP
- Japan
- Prior art keywords
- cpu
- register
- bit
- standby
- switching
- 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
Links
Images
Landscapes
- Hardware Redundancy (AREA)
Abstract
【課題】 特別な信号のやり取りや複雑なアルゴリズムを必要としない、簡単な構成で実現できる二重系CPU切替システムを提供する。
【解決手段】 電源投入後、CPU1,CPU2は運用化要求を示すビットをレジスタ1a、2aそれぞれ立てる。調停回路3は、レジスタ1a、1bをみて早くビットを立てた方のCPU1(CPU2)を運用系とし他方を待機系とし、調停結果ビット(待機系は運用系の反転ビット)をレジスタ1b、2bにセットする。運用中、または待機中、CPU1(CPU2)はレジスタ1b(2b)を参照し、WDTカウンタ1c(2c)をリセットごとにループしながらチェックする。運用系CPUに障害が発生したときは、レジスタ1a(2a)のビットを反転させる。調停回路3は、レジスタ1a(2a)のビット反転よって、レジスタ2b(1b)のビットを反転させてセットする。CPU2(CPU1)は、レジスタ2b(1b)のビット反転により運用系(待機系)としてCPUを立ち上げ、切り替わる。
【選択図】 図1
【解決手段】 電源投入後、CPU1,CPU2は運用化要求を示すビットをレジスタ1a、2aそれぞれ立てる。調停回路3は、レジスタ1a、1bをみて早くビットを立てた方のCPU1(CPU2)を運用系とし他方を待機系とし、調停結果ビット(待機系は運用系の反転ビット)をレジスタ1b、2bにセットする。運用中、または待機中、CPU1(CPU2)はレジスタ1b(2b)を参照し、WDTカウンタ1c(2c)をリセットごとにループしながらチェックする。運用系CPUに障害が発生したときは、レジスタ1a(2a)のビットを反転させる。調停回路3は、レジスタ1a(2a)のビット反転よって、レジスタ2b(1b)のビットを反転させてセットする。CPU2(CPU1)は、レジスタ2b(1b)のビット反転により運用系(待機系)としてCPUを立ち上げ、切り替わる。
【選択図】 図1
Description
この発明は、CPUを二重に構成し運用系、待機系として動作させ、障害時に切り替えを行う二重系CPU切替システムに関するものである。
従来の二重系CPU切替システムにおいては、2つの情報処理装置と系切替手段から構成されている。まず、運用系か待機系かを決める系指示信号により運用系として動作する情報処理装置と待機系として操作する情報処理装置を決める。系切替手段は、これら2系の情報処理装置の稼動中、系切替要求レベル信号と系切替受付レベル信号に基づき、これらのレベルを比較する。この比較で、運用系の切替要求レベルが待機系の系切替受付レベルより小さい場合は、リカバリ指示信号を送出して、運用系のリカバリ処理を行って、そのまま運用系の運用を継続させる。また、系切替要求レベルが系切替受付レベルより大きい場合は、系切替指示信号を送出して系切替を行い、系切替要求レベルと系切替受付レベルが共に運用不可のレベルであった場合はシステムダウンとなる(例えば、特許文献1参照)。
従来の二重系CPU切替システムでは、系切替を実施するまでに5種の信号をやりとりし、また、通信する手段を設ける必要がある。また、系切替が実施されるまでに煩雑なアルゴリズムが必要となる。
この発明は、上記のような問題点を解決するためになされたもので、調停回路の結果を各CPUが判断し、そのCPU自身が自分の系が「運用系」か「待機系」か、を判断することによって構成を簡素化し、信号の通信をやり取りする手段を必要としない簡易な二重系CPU切替システムを提供することを目的とする。
この発明に係る二重系CPU切替システムにおいては、CPUが運用化要求ビットをセットする第1のレジスタと、前記第1のレジスタのビット内容により運用系または待機系を決める調停結果ビット生成する調停回路と、前記調停回路の調停結果ビットがセットされる第2のレジスタとを備える。
この発明によれば、二重系CPU切替システムの切替制御をCPU間で特別な信号のやり取りや、複雑なアルゴリズムを必要とせず、簡単な構成で実現できる。
実施の形態1.
図1は、この発明を実施するための実施の形態1における二重系CPU切替システムを示すものである。図1において、CPU1とCPU2のそれぞれに運用化要求を立てるレジスタ1a、2aと運用・待機ステータスを示すレジスタ1b、2bおよびハードウェアまたはプログラムの実行の異常を検出するためのウォッチドッグタイマ(Watch Dog Timer、以下WDTという)カウンタ1c、2cを示し、調停回路3において、両CPU1、2の運用系か待機系かを調停する。また、図2は、系状態判断処理を示すフローチャートである。
以下、図1と図2をもとに、動作について説明する。まず、電源投入後、CPU1とCPU2は運用化要求をするため、レジスタ1aとレジスタ2aにビットをセットする。調停回路3は、CPU1またはCPU2からの運用化要求4a、4bを受け、調停し、運用系となったCPUに対し運用を示す調停結果ビット5a、5bを運用または待機ステータスを示すレジスタ1b、2bにセットする。具体的には、電源投入後、早く運用化要求をレジスタ1a、1bにセットした方のCPUに運用系としてのビットを、他方のCPUを待機系としての反転ビットを、調停結果ビットとしてセットする。
以下では、CPU1の方が、いち早くレジスタ1aに運用化要求ビットを立てたとして説明する。調停回路3は、レジスタ1aからの運用化要求4aを受け、運用を示すビットをレジスタ1bに立てるとともに、CPU2の運用・待機ステータスを示すレジスタ2bにはレジスタ1bに立てたビットの反転ビットを立てる。一方、CPU2からの運用化要求4bは無視される。そして、CPU2は運用・待機ステータスを示すレジスタ2bにすでに反転ビットが立っているため、待機系として動作する。
図1は、この発明を実施するための実施の形態1における二重系CPU切替システムを示すものである。図1において、CPU1とCPU2のそれぞれに運用化要求を立てるレジスタ1a、2aと運用・待機ステータスを示すレジスタ1b、2bおよびハードウェアまたはプログラムの実行の異常を検出するためのウォッチドッグタイマ(Watch Dog Timer、以下WDTという)カウンタ1c、2cを示し、調停回路3において、両CPU1、2の運用系か待機系かを調停する。また、図2は、系状態判断処理を示すフローチャートである。
以下、図1と図2をもとに、動作について説明する。まず、電源投入後、CPU1とCPU2は運用化要求をするため、レジスタ1aとレジスタ2aにビットをセットする。調停回路3は、CPU1またはCPU2からの運用化要求4a、4bを受け、調停し、運用系となったCPUに対し運用を示す調停結果ビット5a、5bを運用または待機ステータスを示すレジスタ1b、2bにセットする。具体的には、電源投入後、早く運用化要求をレジスタ1a、1bにセットした方のCPUに運用系としてのビットを、他方のCPUを待機系としての反転ビットを、調停結果ビットとしてセットする。
以下では、CPU1の方が、いち早くレジスタ1aに運用化要求ビットを立てたとして説明する。調停回路3は、レジスタ1aからの運用化要求4aを受け、運用を示すビットをレジスタ1bに立てるとともに、CPU2の運用・待機ステータスを示すレジスタ2bにはレジスタ1bに立てたビットの反転ビットを立てる。一方、CPU2からの運用化要求4bは無視される。そして、CPU2は運用・待機ステータスを示すレジスタ2bにすでに反転ビットが立っているため、待機系として動作する。
CPU1は運用化要求実施後(ステップST1)、運用/待機ステータスを示すレジスタ1bにセットされたビットをループしながらチェックし(ステップST2)、運用がセットされていれば、そのままループを抜けてCPUの立ち上げ処理(ステップST4)へと移行する。待機系となったCPU2も同様に運用・待機ステータスを示すレジスタ2bを見て、運用を示すビットがレジスタ2bにセットされるまで、WDTカウンタ2cをリセットしながらループを実行する(ステップST3)。運用系のCPU1において、CPU障害が発生し、WDTカウンタ1cをリセットできない状態に陥った場合には、H/W的に自動でリセットを実施する。リセットが行われたCPU1の運用化要求はH/W的に要求を取り下げのレベルへビットをセットする。このビットのセットは、運用化要求のレジスタ1aのビットを反転させることである。調停回路3は、このビット反転にもとづいて、待機系であるCPU2の運用・待機ステータスを示すレジスタ2bにすでに立っているビットを反転させて、運用を開始させる。一方、CPU1の運用・待機を示すレジスタ1bに調停結果ビット5aのビットを反転させてセットする。
また、運用系であるCPU1が障害を検知し自立的に切替を行う場合には、運用化要求を示すレジスタ1aにセットされているビットを取り下げ側にセットする。運用化要求4aが取り下げ側にビットセットされるので、調停回路3は、CPU1のレジスタ1bのビットを反転させ、CPU1を待機系とする。また、同時に、CPU2のレジスタ2bに立っているビット(待機を示すビットである)を反転させ、運用系とする。
また、運用系であるCPU1が障害を検知し自立的に切替を行う場合には、運用化要求を示すレジスタ1aにセットされているビットを取り下げ側にセットする。運用化要求4aが取り下げ側にビットセットされるので、調停回路3は、CPU1のレジスタ1bのビットを反転させ、CPU1を待機系とする。また、同時に、CPU2のレジスタ2bに立っているビット(待機を示すビットである)を反転させ、運用系とする。
このように構成された二重系CPU切替システムにおいては、CPUのレジスタにセットされる運用化要求ビットを調停回路が見て、CPUの運用化要求を調停し、その結果をCPUの運用・待機ステータスを示すレジスタに運用または待機ビットを立てて、運用系または待機系となるCPUを決めているので、複雑なアルゴリズムを必要としない簡単な構成で系の切替ができる。
実施の形態2.
なお、実施の形態1では、調停回路がCPUの運用要求のレジスタをみて切り替えるようにしたが、図3に示すように調停回路3にCPU障害レジスタ3aを設けることにより、障害が区別できる。すなわち、CPUが障害を起こすとWDTカウンタがかかりH/W的な調停回路により系が切り替わるが、CPU障害レジスタ3aを設けることにより、相手がCPU障害で切り替わったかどうかを判別できる。このCPU障害レジスタ3aの内容は、CPU1およびCPU2から読むことができ、系切替をする前にS/WにてCPU障害レジスタ3aに相手の系番号を書き込んでから自分の系のリセットを行う。系が切り替わった後、新運用系になったCPU1(またはCPU2)がCPU障害レジスタ3aをチェックすることにより、S/Wの介在しない切り替え(CPU障害によるWDTカウンタのリセット)の場合、CPU障害レジスタ3aの値は他系すなわちCPU2(CPU1)の番号になっている。また、S/Wの介在する切り替え(CPU自ら系切り替えを実施)の場合、CPU障害レジスタ3aの値はデフォルト値か自系の値となる。したがって、運用系となったCPUがこのCPU障害レジスタ3aの内容をチェックすれば、待機系となった元運用系CPUが、CPU障害によって切り替わったのか、CPU自ら切り替えたのかが分かり障害内容が確認できる。
なお、実施の形態1では、調停回路がCPUの運用要求のレジスタをみて切り替えるようにしたが、図3に示すように調停回路3にCPU障害レジスタ3aを設けることにより、障害が区別できる。すなわち、CPUが障害を起こすとWDTカウンタがかかりH/W的な調停回路により系が切り替わるが、CPU障害レジスタ3aを設けることにより、相手がCPU障害で切り替わったかどうかを判別できる。このCPU障害レジスタ3aの内容は、CPU1およびCPU2から読むことができ、系切替をする前にS/WにてCPU障害レジスタ3aに相手の系番号を書き込んでから自分の系のリセットを行う。系が切り替わった後、新運用系になったCPU1(またはCPU2)がCPU障害レジスタ3aをチェックすることにより、S/Wの介在しない切り替え(CPU障害によるWDTカウンタのリセット)の場合、CPU障害レジスタ3aの値は他系すなわちCPU2(CPU1)の番号になっている。また、S/Wの介在する切り替え(CPU自ら系切り替えを実施)の場合、CPU障害レジスタ3aの値はデフォルト値か自系の値となる。したがって、運用系となったCPUがこのCPU障害レジスタ3aの内容をチェックすれば、待機系となった元運用系CPUが、CPU障害によって切り替わったのか、CPU自ら切り替えたのかが分かり障害内容が確認できる。
このように、各CPUの番号を書き込めるCPU障害レジスタを調停回路に設けることによって、CPU障害レジスタを確認することにより、障害の内容が把握でき適切な処理が可能となる。
1 CPU、1a,1b レジスタ、1c WDTカウンタ、2 CPU、2a,2b レジスタ、2c WDTカウンタ、3 調停回路、3a CPU障害レジスタ。
Claims (2)
- CPUが運用化要求ビットをセットする第1のレジスタと、前記第1のレジスタのビット内容により運用系または待機系を決める調停結果ビット生成する調停回路と、前記調停回路の調停結果ビットがセットされる第2のレジスタとを備える二重系CPU切替システム。
- 前記調停回路は、CPUが運用系から待機系に切り替わる際に相手方CPUの番号を書き込めるレジスタを備えることを特徴とする請求項1記載の二重系CPU切替システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004066032A JP2005258576A (ja) | 2004-03-09 | 2004-03-09 | 二重系cpu切替システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004066032A JP2005258576A (ja) | 2004-03-09 | 2004-03-09 | 二重系cpu切替システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005258576A true JP2005258576A (ja) | 2005-09-22 |
Family
ID=35084256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004066032A Pending JP2005258576A (ja) | 2004-03-09 | 2004-03-09 | 二重系cpu切替システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005258576A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8086776B2 (en) * | 2005-03-30 | 2011-12-27 | Canon Kabushiki Kaisha | Device for arbitrating bus accesses and method for controlling same |
-
2004
- 2004-03-09 JP JP2004066032A patent/JP2005258576A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8086776B2 (en) * | 2005-03-30 | 2011-12-27 | Canon Kabushiki Kaisha | Device for arbitrating bus accesses and method for controlling same |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7085959B2 (en) | Method and apparatus for recovery from loss of lock step | |
WO2019136595A1 (zh) | 处理i2c总线死锁的方法、电子设备和通信*** | |
JP2009540436A (ja) | 障害を分離するsasエクスパンダ | |
JP6098778B2 (ja) | 冗長化システム、冗長化方法、冗長化システムの可用性向上方法、及びプログラム | |
JP2006338380A (ja) | 情報処理装置およびその制御方法 | |
WO2017062131A1 (en) | System and method for providing operating system independent error control in a computing device | |
WO2016033755A1 (zh) | 任务处理装置、电子设备及方法 | |
JP2006244382A (ja) | マイクロプロセッサ | |
JP2003296133A (ja) | コントローラ | |
US20060159023A1 (en) | CRC error history mechanism | |
JP3891994B2 (ja) | 順番のある(in−order)キューをドレインする(drain)システムおよび方法 | |
JP2005258576A (ja) | 二重系cpu切替システム | |
JP2016206891A (ja) | アクセス遮断回路、半導体集積回路およびアクセス遮断方法 | |
US7243257B2 (en) | Computer system for preventing inter-node fault propagation | |
JP2016126409A (ja) | 情報処理装置、情報処理システムおよび通信装置 | |
JP2005316679A (ja) | 並列演算処理装置 | |
JP4507875B2 (ja) | 多重化装置及びレガシーデバイス多重化方法 | |
JP2004013723A (ja) | 共有メモリを使ったクラスタ構成を採用した情報処理システムの障害処理装置と方法 | |
JPH10207586A (ja) | コンピュータの電源オフ制御方式 | |
JP2008009518A (ja) | 2重化オペレーションシステム | |
JP2007052685A (ja) | マイクロコントローラ | |
JP2998804B2 (ja) | マルチマイクロプロセッサシステム | |
KR20020049096A (ko) | 정보처리시스템의 플래쉬 롬의 데이터 복구 제어장치 | |
JP2008287558A (ja) | 半導体装置及びマイクロコンピュータ | |
JP2010128741A (ja) | クラスタシステム |