JP2006178636A - フォールトトレラントコンピュータ、およびその制御方法 - Google Patents
フォールトトレラントコンピュータ、およびその制御方法 Download PDFInfo
- Publication number
- JP2006178636A JP2006178636A JP2004369545A JP2004369545A JP2006178636A JP 2006178636 A JP2006178636 A JP 2006178636A JP 2004369545 A JP2004369545 A JP 2004369545A JP 2004369545 A JP2004369545 A JP 2004369545A JP 2006178636 A JP2006178636 A JP 2006178636A
- Authority
- JP
- Japan
- Prior art keywords
- cpu
- synchronization
- detected
- main storage
- tolerant computer
- 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
Classifications
-
- 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/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Bus Control (AREA)
Abstract
【課題】同期外れが検出された場合、再同期化処理を開始する前に同期外れの要因を特定する。
【解決手段】CPUバスコントローラ1130,1131は、CPUサブシステム110,111が同期動作している状態において同期外れが検出された場合でも、CPU1110,1111を停止せずに継続動作させる。また、DMAコントローラ1260,1261は、同期外れが検出されてから一定期間が経過するまでは、DMA転送を開始せずに待機する。この一定期間は、当該期間内に主記憶装置1120,1121に格納されたデータについてはDMAコントローラ1260,1261によるDMA転送が可能であることを示す期間である。
【選択図】図1
【解決手段】CPUバスコントローラ1130,1131は、CPUサブシステム110,111が同期動作している状態において同期外れが検出された場合でも、CPU1110,1111を停止せずに継続動作させる。また、DMAコントローラ1260,1261は、同期外れが検出されてから一定期間が経過するまでは、DMA転送を開始せずに待機する。この一定期間は、当該期間内に主記憶装置1120,1121に格納されたデータについてはDMAコントローラ1260,1261によるDMA転送が可能であることを示す期間である。
【選択図】図1
Description
本発明は、CPUおよび主記憶装置を備えたCPUサブシステムとIOサブシステムとからなるシステムを二重冗長構成(DMR:Double Modular Redundancy)としたフォールトトレラントコンピュータ(Fault Tolerant Computer)およびその制御方法に関する。
近年、コンピュータの多機能化に伴い、様々な分野でコンピュータが利用されるようになってきている。そのため、障害発生時においても、コンピュータを継続して動作させることが要求され、それに対して、システムを二重化したフォールトトレラント技術が採用されている。
このようなフォールトトレラント技術が採用されたフォールトトレラントコンピュータの中には、例えば、CPUおよび主記憶装置を備えたCPUサブシステムとIOサブシステムとからなるシステムが二重化され、2つのCPUサブシステムがクロックを同期させて全く同一の動作を行うロックステップ方式が採られたものがある。
ロックステップ方式のフォールトトレラントコンピュータにおいては、2つのCPUサブシステム間で同一動作性が崩れる同期外れが発生し、2つのCPUサブシステムの主記憶装置の内容が不一致になってしまうことがある。同期外れの要因としては、CPU故障の他、放射線の影響で主記憶装置のデータ内容が変わるソフトエラーの発生、ロックステップ方式で保証されていない動作が行われることなどの比較的小規模な故障が挙げられる。
ロックステップ方式のフォールトトレラントコンピュータにおいては、上述のような同期外れが発生した場合、2つのCPUサブシステムを再度同期化させる再同期化処理が行われる。この再同期化処理は、幾つかのフェーズに分かれており、その中のフェーズの1つに、一方のCPUサブシステムの主記憶装置の内容を他方のCPUサブシステムの主記憶装置に複写して、主記憶装置の内容を一致させるものがある。
上述の再同期化処理の高速化を図るためのフォールトトレラントコンピュータは、例えば、特許文献1に開示されている。
特許文献1に開示されたフォールトトレラントコンピュータにおいては、各CPUサブシステムにおいて、同期動作中に主記憶装置への書き込みイベントが発生すると、この書き込みイベントにより記録内容が更新された主記憶装置の位置(ページ)および時間の情報が記録される。そして、同期外れが検出されると、上記で記録した情報を基に、一方のCPUサブシステムの主記憶装置の更新部分となる一部のデータのみを他方のCPUサブシステムの主記憶装置に複写することが行われる。
このように、特許文献1に開示されたフォールトトレラントコンピュータによれば、主記憶装置の全てのデータを複写するのではなく、更新部分となる一部のデータのみを複写して複写時間を短縮することにより、再同期化処理の時間を短縮することができるという利点がある。
特開平10−177498号公報
しかしながら、特許文献1に開示されたフォールトトレラントコンピュータにおいては、同期外れが検出された場合、その同期外れの要因を特定することなく、即座に再同期化処理が開始されて、一方のCPUサブシステムの主記憶装置の一部のデータが他方のCPUサブシステムの主記憶装置に複写することが行われる。
そのため、同期外れが発生した要因が、例えば、複写元のCPUサブシステム側のCPU故障であった場合には、再同期化処理が全て完了した後もフォールトトレラントコンピュータの動作は保証されないことになる。
このように、フォールトトレラントコンピュータの制御においては、同期外れが検出された場合、同期外れの要因を特定してから再同期化処理を開始することが必要である。
ただし、同期外れの要因を特定する時間が長くなると、その間は同期外れが生じているため、CPUサブシステム間の主記憶装置の不一致度が大きくなることになり、その後に行われる再同期化処理の短縮化を図ることは困難になる。
よって、再同期化処理を開始する前に同期外れの要因を特定する場合には、CPUサブシステム間の主記憶装置の不一致度を最小限に抑えることも必要である。
そこで、本発明の目的は、同期外れが検出された場合、再同期化処理を開始する前に同期外れの要因を特定することができるフォールトトレラントコンピュータおよびその制御方法を提供することにある。
また、本発明の他の目的は、再同期化処理を開始する前に同期外れの要因を特定することにより生じる、CPUサブシステム間の主記憶装置の不一致度を最小限に抑えることができるフォールトトレラントコンピュータおよびその制御方法を提供することにある。
上記目的を達成するために本発明は、
CPUおよび主記憶装置を備えたCPUサブシステムを含むシステムが二重化に構成され、前記CPUサブシステムがロックステップ同期で同一の動作を行うフォールトトレラントコンピュータであって、
前記システムの各々は、
前記CPUサブシステムがロックステップ同期している状態において同期外れを検出した場合、自系のCPUを停止せずに継続動作させるCPUバスコントローラと、
前記CPUバスコントローラにより同期外れが検出された場合、以降、自系の主記憶装置にデータが書き込まれる度に当該主記憶装置におけるデータの書き込み場所の情報が格納されるトレースメモリと、
前記CPUバスコントローラにより同期外れが検出された場合、自系または他系の主記憶装置のデータのうち前記トレースメモリに書き込み場所が格納されているデータの他系または自系の主記憶装置へのDMA転送を、同期外れが検出されてから所定のタイミングとなるまで待機するDMAコントローラとを有することを特徴とする。
CPUおよび主記憶装置を備えたCPUサブシステムを含むシステムが二重化に構成され、前記CPUサブシステムがロックステップ同期で同一の動作を行うフォールトトレラントコンピュータであって、
前記システムの各々は、
前記CPUサブシステムがロックステップ同期している状態において同期外れを検出した場合、自系のCPUを停止せずに継続動作させるCPUバスコントローラと、
前記CPUバスコントローラにより同期外れが検出された場合、以降、自系の主記憶装置にデータが書き込まれる度に当該主記憶装置におけるデータの書き込み場所の情報が格納されるトレースメモリと、
前記CPUバスコントローラにより同期外れが検出された場合、自系または他系の主記憶装置のデータのうち前記トレースメモリに書き込み場所が格納されているデータの他系または自系の主記憶装置へのDMA転送を、同期外れが検出されてから所定のタイミングとなるまで待機するDMAコントローラとを有することを特徴とする。
この構成によれば、同期外れが検出された場合に、再同期化処理となるDMA転送を開始する前にソフトウェアやハードウェアにより同期外れの要因を特定するための時間を確保することが可能となる。
また、前記システムの各々は、
入力されるデータを一時的に格納してから出力するバッファと、
自系のCPUおよび他系のCPUからの前記バッファを介したアクセスの内容を比較して両者が不一致であることを検出した場合、および前記バッファの使用容量が所定値を超えたことを検出した場合に、前記CPUに対して割り込み信号を通知するアクセス比較器とをさらに有し、
前記DMAコントローラにおける前記所定のタイミングを、前記アクセス比較器から前記CPUに割り込み信号が通知されたタイミングとしても良い。
入力されるデータを一時的に格納してから出力するバッファと、
自系のCPUおよび他系のCPUからの前記バッファを介したアクセスの内容を比較して両者が不一致であることを検出した場合、および前記バッファの使用容量が所定値を超えたことを検出した場合に、前記CPUに対して割り込み信号を通知するアクセス比較器とをさらに有し、
前記DMAコントローラにおける前記所定のタイミングを、前記アクセス比較器から前記CPUに割り込み信号が通知されたタイミングとしても良い。
また、前記DMAコントローラは、前記トレースメモリの使用容量が所定値を超えたことを検出した場合に、前記CPUに対して割り込み信号を通知することとし、
前記DMAコントローラにおける前記所定のタイミングを、前記DMAコントローラから前記CPUに割り込み信号が通知されたタイミングとしても良い。
前記DMAコントローラにおける前記所定のタイミングを、前記DMAコントローラから前記CPUに割り込み信号が通知されたタイミングとしても良い。
これらの構成によれば、DMAコントローラにおける所定のタイミングを、DMAコントローラまたはIOアクセス比較器からCPUに対して割り込み通知がなされるタイミングとしている。この割り込み通知は、割り込み通知を発したタイミング以降に主記憶装置に格納されたデータについてはDMAコントローラによるDMA転送不可となることを、CPUに通知する信号として代用されるものである。従って、同期外れの要因を特定するための時間を、DMA転送が実行できる程度の最小限に抑えることができるため、同期外れの要因を特定する時間を確保しつつ、それにより生じる主記憶装置の不一致度を最小限に抑えることが可能となり、再同期化処理の短縮化を図ることが可能となる。
また、前記CPUバスコントローラは、自系のCPUバスの動作状態を監視し、その監視結果を示すCPUバス動作情報を他系のCPUバスコントローラに送信し、自系のCPUバス動作情報と他系のCPUバス動作情報とを比較することにより同期外れを検出することとしても良い。
この構成によれば、CPUバスコントローラ同士でCPUバスの動作を直接比較することにより、主記憶装置の不一致度が大きくなる前に早期に同期外れを検出することが可能となるため、再同期化処理の短縮化に寄与することが可能となる。
以上説明したように本発明によれば、同期動作している状態において同期外れが検出された場合でも、CPUを停止せずに継続動作させ、同期外れが検出されてから所定のタイミングとなるまでは、DMAコントローラによるDMA転送を開始せずに待機させるため、再同期化処理を開始する前にソフトウェアやハードウェアにより同期外れの要因を特定するための時間を確保することができるという効果を奏する。
以下に、本発明を実施するための最良の形態について図面を参照して説明する。
図1を参照すると、本発明の一実施形態のフォールトトレラントコンピュータは、CPUサブシステム110およびIOサブシステム120からなる0系のシステム100と、CPUサブシステム111およびIOサブシステム121からなる1系のシステム100とを二重化した構成であり、CPUサブシステム110およびCPUサブシステム111は、ロックステップ同期(以下、単に「同期」と呼ぶ)で全く同一の動作を行っている。
0系のCPUサブシステム110は、CPU1110と、主記憶装置1120と、CPUバスコントローラ1130と、メモリバスコントローラ1140と、ルータ1150とを備えている。また、0系のIOサブシステム120は、クロスリンクI/F1210と、IOコントローラ1220と、IOアクセス比較器1230と、バッファ1240と、メモリアクセストレースメモリ1250と、DMA(Direct Memory Access)コントローラ1260とを備えている。
同様に、1系のCPUサブシステム111は、CPU1111と、主記憶装置1121と、CPUバスコントローラ1131と、メモリバスコントローラ1141と、ルータ1151とを備えている。また、1系のIOサブシステム121は、クロスリンクI/F1211と、IOコントローラ1221と、IOアクセス比較器1231と、バッファ1241と、メモリアクセストレースメモリ1251と、DMAコントローラ1261とを備えている。
ここで、システム100,101内の構成要素の動作について説明する。以下では、0系のシステム100内の構成要素の動作について説明するが、1系のシステム101内の構成要素も同様の動作を行う。
CPUバスコントローラ1130は、自系のCPU1110との間のCPUバスの動作状態を監視し、その監視結果を示すCPUバス動作情報を他系のCPUバスコントローラ1131に送信し、自系のCPUバス動作情報と他系のCPUバス動作情報とを比較し、両者が不一致であること、すなわち同期外れが発生したことを検出する。そして、CPUバスの不一致を検出すると、CPUバスコントローラ1130は、CPUバスの不一致を示す信号をルータ1150経由でDMAコントローラ1260に通知する。なお、CPUバスコントローラ1130は、CPUバスが動作していない状態も含め、常にCPUバス動作情報を送信している。また、CPUバス自体のバンド幅が大きいため、CPUバス動作情報は、CPUバスコントローラ1130によりCRC(Cyclic Redundancy Check)コード変換が施されてデータ量が削減された情報となっている。
また、CPUバスコントローラ1130は、主記憶装置1120のアドレス/ページを指定して主記憶装置1120への書き込み指示をメモリバスコントローラ1140に対して行う。この書き込み指示は、DMAコントローラ1260にも通知される。また、CPUバスコントローラ1130は、DMAコントローラ1260からの指示を受けた場合等において、主記憶装置1120のアドレス/ページを指定して主記憶装置1120への読み出し指示をメモリバスコントローラ1140に対して行う。
メモリバスコントローラ1140は、CPUバスコントローラ1130からの書き込み指示または読み出し指示を受けて、主記憶装置1120の該当するアドレス/ページへの書き込みまたは主記憶装置1120の該当するアドレス/ページからの読み出しを行う。
ルータ1150は、CPUサブシステム110とIOサブシステム120との境界部分に配置されて、CPUサブシステム110とIOサブシステム120との間でデータを中継する。
クロスリンクI/F1210は、IOサブシステム120とIOサブシステム121との間の通信に利用される高速インタフェースであり、システム100内の内部クロックとは非同期に動作するシリアルリンクが一般に使用される。
IOコントローラ1220は、自系のCPU1110と他系のCPU1111の双方からアクセスを受ける。この2つのアクセスは、CPUサブシステム110,111が同期動作中である場合、同一のアクセスとなる。また、IOコントローラ1220は、自系のCPU1110と他系のCPU1111の双方へアクセスを行う。
IOアクセス比較器1230は、自系のCPU1110から自系のIOコントローラCPU1220へのアクセス内容と、他系のCPU1111から自系のIOコントローラ1220へのアクセス内容とを比較し、両者が不一致であることを検出すると、その旨を示す信号をルータ1150経由でCPU1110に割り込みで通知する。このとき、自系のCPU1110からのアクセスが内部パスのみを介して行われるのに対して、他系のCPU1111からのアクセスは外部パスを介して行われるため、他系のCPU1111からのアクセスは到着時間が遅れる。そのため、IOアクセス比較器1230の入力段にはバッファ1240が設けられており、自系のCPU1110からのアクセスデータをバッファ1240で一時的に格納してからIOアクセス比較器1230に出力する。それによって、アクセスデータの順序の入れ替えを調整することができるとともに両系からのアクセスが到着するまでアクセス不一致を判定せずに待機することができる。
IOアクセス比較器1230は、バッファ1240の使用容量が所定値を超えたことを検出すると、その旨を示す信号をルータ1150経由でCPU1110に割り込みで通知する。
DMAコントローラ1260は、CPUバスコントローラ1130から主記憶装置1120に対して行われた書き込み指示を基にして、データが書き込まれた主記憶装置1120のアドレス/ページ情報を、メモリアクセストレースメモリ1250にFIFO(First−In First−Out)形式で格納する動作を行う。この動作は、CPUバスコントローラ1130からCPUバス不一致を示す信号が通知されてから開始される。なお、DMAコントローラ1260からCPUバスコントローラ1130に対してなされる指示により主記憶装置1120に対する書き込みが行われる場合もあるが、この場合にはDMAコントローラ1260では主記憶装置1120のトレースを行わない。そのようにするために、CPUバスコントローラ1130において、主記憶装置1120に対して行う書き込み指示に所定のマークを付ける等の処理を行うことが望ましい。
DMAコントローラ1260は、メモリアクセストレースメモリ1250の使用容量が所定値を超えたことを検出すると、その旨を示す信号をルータ1150経由で自系のCPU1110に割り込みで通知するとともに、クロスリンクI/F1210経由で他系のCPU1111に割り込みで通知する。
DMAコントローラ1260は、メモリアクセストレースメモリ1250に格納されているアドレス/ページ情報に基づく主記憶装置1120の該当するアドレス/ページのデータを自系の主記憶装置1120および他系の主記憶装置1121の双方にDMA転送する動作を行う。この動作は、ソフトウェアからの指示を受けて開始される。
以下、図1に示した本実施形態のフォールトトレラントコンピュータの動作について説明する。なお、ここで説明する動作は、その動作の開始時に、CPUサブシステム110,111が同期動作を行っていることが前提となる。
図2を参照すると、CPUバスコントローラ1130,1131が、CPUサブシステム110,111が同期動作している状態において、CPUバスの不一致により同期外れが発生したことを検出したとする(ステップ201)。すると、CPUバスコントローラ1130は、その旨を示す信号をDMAコントローラ1260に通知し、また、CPUバスコントローラ1131は、CPUバスの不一致を示す信号をDMAコントローラ1261に通知する(ステップ202)。その様子を図3に示す。
また、CPUバスコントローラ1130,1131は、CPUバスの不一致を示す信号を、同期外れの要因がCPU故障であるか否かを診断するソフトウェアやハードウェア(不図示)にも通知する。
ただし、同期外れが発生しても、CPUバスコントローラ1130は、CPU1110を停止せずに継続して動作させ、また、CPUバスコントローラ1131は、CPU1111を停止せずに継続して動作させる。このように、同期外れが発生した後も、CPU1110,1111を継続して動作させることにより、ソフトウェアやハードウェアの診断により同期外れの要因がCPU故障であるか否かを特定できる可能性が高まる。
DMAコントローラ1260は、CPUバスコントローラ1130からのCPUバス不一致を示す信号の通知を受けると、主記憶装置1120のトレースを開始し、また、DMAコントローラ1261は、CPUバスコントローラ1131からのCPUバス不一致を示す信号の通知を受けると、主記憶装置1121のトレースを開始する(ステップ203)。
具体的には、DMAコントローラ1260は、CPUバスコントローラ1130から主記憶装置1120に対して行われた書き込み指示を基にして、データが書き込まれた主記憶装置1120のアドレス/ページ情報をメモリアクセストレースメモリ1250に格納する。また、DMAコントローラ1261は、CPUバスコントローラ1131から主記憶装置1121に対して行われた書き込み指示を基にして、データが書き込まれた主記憶装置1121のアドレス/ページ情報をメモリアクセストレースメモリ1251に格納する。その様子を図4に示す。
以降、DMAコントローラ1260が、メモリアクセストレースメモリ1250の使用容量が所定値を超えたことを検出し、また、DMAコントローラ1261が、メモリアクセストレースメモリ1251の使用容量が所定値を超えたことを検出したとする(ステップ204)。すると、DMAコントローラ1260は、その旨を示す信号を自系のCPU1110と他系のCPU1111に割り込みで通知し、また、DMAコントローラ1261は、その旨を示す信号を自系のCPU1111と他系のCPU1110に割り込みで通知する(ステップ206)。その様子を図5に示す。
また、IOアクセス比較器1230が、自系のCPU1110からのアクセス内容と他系のCPU1111からのアクセス内容とが不一致であることを検出したか、もしくはバッファ1240の使用容量が所定値を超えたことを検出したとする。また、IOアクセス比較器1231が、自系のCPU1111からのアクセス内容と、他系のCPU1110からのアクセス内容とが不一致であることを検出したか、もしくは、バッファ1241の使用容量が所定値を超えたことを検出したとする(ステップ205)。すると、DMAコントローラ1260は、その旨を示す信号を自系のCPU1110と他系のCPU1111に割り込みで通知し、また、DMAコントローラ1261は、その旨を示す信号を自系のCPU1111と他系のCPU1110に割り込みで通知する(ステップ206)。その様子を図6に示す。
ところで、ステップ202以降の時間は、CPU1110,1111に継続動作させて、ソフトウェアやハードウェアの診断により同期外れの要因がCPU故障であるかを特定させるための時間となる。しかし、上述のように、同期外れの要因を特定する時間を長くすると、それだけ主記憶装置1120,1121の不一致度が大きくなることになるため、その後に行われる再同期化処理の短縮化を図ることは困難になる。
そこで、本実施形態においては、ステップ202以降、ステップ206でCPU1110,1111への割り込み通知が発生した場合、割り込み通知が発生したタイミング以降に主記憶装置1120,1121に格納されるデータについてはDMAコントローラ1260,1261によるDMA転送が不可能であると判断する。言い換えれば、ステップ206で割り込み通知が発生したタイミングまでの期間に主記憶装置1120,1121に格納されたデータのみがDMA転送可能であると判断し、その期間に限定して同期外れの要因を特定させ、その後に再同期化処理に移行する。したがって、同期外れの要因を特定するための時間を、DMA転送が実行できる程度の最小限の時間に抑えることができるため、同期外れの要因を特定する時間を確保しつつ、それにより生じる主記憶装置1120,1121の不一致度を最小限に抑えることができる。
なお、ステップ206においては、DMAコントローラ1260,1261またはIOアクセス比較器1230,1231が、CPU1110,1111への割り込み通知を行う例について示したが、ステップ206またはそれ以前において、ソフトウェアからCPU1110,1111に割り込み通知がなされた場合にも、以降の動作は同様である。
ステップ206の割り込み通知イベントが発生すると、再同期化処理が開始される。再同期化処理においては、まず、ソフトウェアやハードウェアの診断により同期外れの要因がCPU1110,1111のいずれかの故障であると特定されたか否かが判定される(ステップ207)。
ステップ207において、同期外れの要因がCPU1110,1111のいずれかの故障であると特定されなかった場合は、ソフトウェアでは同期外れの要因がソフトエラーの発生等による小規模な故障であるものと判断される。この場合は、DMAコントローラ1260,1261は、ソフトウェアからの指示によりDMA転送を開始する(ステップ208)。
具体的には、まず、DMAコントローラ1260は、メモリアクセストレースメモリ1250からアドレス/ページ情報を読み出し、主記憶装置1120の該当するアドレス/ページからの読み出し指示をCPUバスコントローラ1130経由でメモリバスコントローラ1140に対して行う。同様に、DMAコントローラ1261は、メモリアクセストレースメモリ1251からアドレス/ページ情報を読み出し、主記憶装置1120の該当するアドレス/ページからの読み出し指示をCPUバスコントローラ1130経由でメモリバスコントローラ1140に対して行う。その様子を図7に示す。続いて、メモリバスコントローラ1140は、主記憶装置1120の該当するアドレス/ページからデータを読み出し、読み出したデータをDMAコントローラ1260,1261に転送する。その様子を図8に示す。続いて、DMAコントローラ1260は、主記憶装置1120から転送されてきたデータの書き込み指示をCPUバスコントローラ1131経由でメモリバスコントローラ1141に対して行う。同様に、DMAコントローラ1261は、主記憶装置1120から転送されてきたデータの書き込み指示をCPUバスコントローラ1131経由でメモリバスコントローラ1141に対して行う。その様子を図9に示す。その後、メモリバスコントローラ1141は、主記憶装置1121にデータの書き込みを行い、それにより、主記憶装置1120,1121の内容が一致することになる。
なお、主記憶装置1120の該当する全てのデータを主記憶装置1121に転送しても、DMAコントローラ1260,1261は、動作を停止せず、以後、主記憶装置1120への書き込みが行われる度に、主記憶装置1120の該当するアドレス/ページのデータの主記憶装置1121への転送を実行することになる。
その後、再同期化処理の中でDMA転送のフェーズが終了すると(ステップ209)、再同期化処理の次のフェーズに移行する(ステップ210)。
一方、ステップ207において、同期外れの要因がCPU1110,1111のいずれかの故障であると特定された場合、ソフトウェアからの指示により、故障が発生したCPU側のシステムが論理的に切り離されて(ステップ211)、再同期化処理の次のフェーズに移行する(ステップ212)。
上述したように本実施形態においては、同期動作している状態において同期外れが検出された場合でも、CPU1110,1111を停止せずに継続動作させ、同期外れが検出されてから一定のタイミングに達するまでは、DMAコントローラ1260,1261によるDMA転送を開始させずに待機させる。
それにより、同期外れが検出された場合に、再同期化処理を開始する前にソフトウェアやハードウェアにより同期外れの要因を特定するための時間を確保することができる。
なお、上記のタイミングは、DMAコントローラ1260,1261またはIOアクセス比較器1230,1231からCPU1110,1111に対して割り込み通知がなされるタイミングである。この割り込み通知は、割り込み通知を発したタイミング以降に主記憶装置1120,1121に格納されたデータについてはDMAコントローラ1260,1261によるDMA転送不可となることを、CPU1110,1111に通知する信号として代用されるものである。
従って、同期外れの要因を特定するための時間を、DMA転送が実行できる程度の最小限に抑えることができるため、同期外れの要因を特定する時間を確保しつつ、それにより生じる主記憶装置1120,1121の不一致度を最小限に抑えることができ、再同期化処理の短縮化を図ることができる。
また、本実施形態においては、CPUバスコントローラ1130,1131同士でCPUバス動作情報を互いに送受信し、CPUバス動作を直接比較することで同期外れを早期に検出している。
それにより、主記憶装置の不一致度が大きくなる前に早期に同期外れを検出することができるため、再同期化処理の短縮化に寄与することができる。
100,101 システム
110,111 CPUサブシステム
120,121 IOサブシステム
1110,1111 CPU
1120,1121 主記憶装置
1130,1131 CPUバスコントローラ
1140,1141 メモリバスコントローラ
1150,1151 ルータ
1210,1211 クロスリンクI/F
1220,1221 IOコントローラ
1230,1231 IOアクセス比較器
1240,1241 バッファ
1250,1251 メモリアクセストレースメモリ
1260,1261 DMAコントローラ
110,111 CPUサブシステム
120,121 IOサブシステム
1110,1111 CPU
1120,1121 主記憶装置
1130,1131 CPUバスコントローラ
1140,1141 メモリバスコントローラ
1150,1151 ルータ
1210,1211 クロスリンクI/F
1220,1221 IOコントローラ
1230,1231 IOアクセス比較器
1240,1241 バッファ
1250,1251 メモリアクセストレースメモリ
1260,1261 DMAコントローラ
Claims (8)
- CPUおよび主記憶装置を備えたCPUサブシステムを含むシステムが二重化に構成され、前記CPUサブシステムがロックステップ同期で同一の動作を行うフォールトトレラントコンピュータであって、
前記システムの各々は、
前記CPUサブシステムがロックステップ同期している状態において同期外れを検出した場合、自系のCPUを停止せずに継続動作させるCPUバスコントローラと、
前記CPUバスコントローラにより同期外れが検出された場合、以降、自系の主記憶装置にデータが書き込まれる度に当該主記憶装置におけるデータの書き込み場所の情報が格納されるトレースメモリと、
前記CPUバスコントローラにより同期外れが検出された場合、自系または他系の主記憶装置のデータのうち前記トレースメモリに書き込み場所が格納されているデータの他系または自系の主記憶装置へのDMA転送を、同期外れが検出されてから所定のタイミングとなるまで待機するDMAコントローラとを有するフォールトトレラントコンピュータ。 - 前記システムの各々は、
入力されるデータを一時的に格納してから出力するバッファと、
自系のCPUおよび他系のCPUからの前記バッファを介したアクセスの内容とを比較して両者が不一致であることを検出した場合、および前記バッファの使用容量が所定値を超えたことを検出した場合に、前記CPUに対して割り込み信号を通知するアクセス比較器とをさらに有し、
前記DMAコントローラにおける前記所定のタイミングを、前記アクセス比較器から前記CPUに割り込み信号が通知されたタイミングとする、請求項1に記載のフォールトトレラントコンピュータ。 - 前記DMAコントローラは、前記トレースメモリの使用容量が所定値を超えたことを検出した場合に、前記CPUに対して割り込み信号を通知することとし、
前記DMAコントローラにおける前記所定のタイミングを、前記DMAコントローラから前記CPUに割り込み信号が通知されたタイミングとする、請求項1または2に記載のフォールトトレラントコンピュータ。 - 前記CPUバスコントローラは、自系のCPUバスの動作状態を監視し、その監視結果を示すCPUバス動作情報を他系のCPUバスコントローラに送信し、自系のCPUバス動作情報と他系のCPUバス動作情報とを比較することにより同期外れを検出する、請求項1から3のいずれか1項に記載のフォールトトレラントコンピュータ。
- CPUおよび主記憶装置を備えたCPUサブシステムを含むシステムが二重化に構成され、前記CPUサブシステムがロックステップ同期で同一の動作を行うフォールトトレラントコンピュータの制御方法であって、
前記システムの各々にて、前記CPUサブシステムがロックステップ同期している状態において同期外れを検出した場合、自系のCPUを停止せずに継続動作させる第1のステップと、
前記システムの各々にて、同期外れが検出された場合、以降、自系の主記憶装置にデータが書き込まれる度に当該主記憶装置におけるデータの書き込み場所の情報をトレースメモリに格納する第2のステップと、
前記システムの各々にて、同期外れが検出された場合、自系または他系の主記憶装置のデータのうち前記トレースメモリに書き込み場所が格納されているデータの他系または自系の主記憶装置へのDMA転送を、同期外れが検出されてから所定のタイミングとなるまで待機する第3のステップとを有するフォールトトレラントコンピュータの制御方法。 - 前記システムの各々にて、自系のCPUおよび他系のCPUからの前記バッファを介したアクセスの内容とを比較して両者が不一致であることを検出した場合、および前記バッファの使用容量が所定値を超えたことを検出した場合に、前記CPUに対して割り込み信号を通知するステップをさらに有し、
前記第3のステップにおける前記所定のタイミングを、前記CPUに割り込み信号が通知されたタイミングとする、請求項5に記載のフォールトトレラントコンピュータの制御方法。 - 前記システムの各々にて、前記トレースメモリの使用容量が所定値を超えたことを検出した場合に、前記CPUに対して割り込み信号を通知するステップをさらに有し、
前記第3のステップにおける前記所定のタイミングを、前記CPUに割り込み信号が通知されたタイミングとする、請求項5または6に記載のフォールトトレラントコンピュータの制御方法。 - 前記第1のステップでは、前記システムの各々にて、自系のCPUバスの動作状態を監視し、その監視結果を示すCPUバス動作情報を他系のCPUバスコントローラに送信し、自系のCPUバス動作情報と他系のCPUバス動作情報とを比較することにより同期外れを検出する、請求項5から7のいずれか1項に記載のフォールトトレラントコンピュータの制御方法。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004369545A JP2006178636A (ja) | 2004-12-21 | 2004-12-21 | フォールトトレラントコンピュータ、およびその制御方法 |
CA002530018A CA2530018A1 (en) | 2004-12-21 | 2005-12-13 | Securing time for identifying cause of asynchronism in fault-tolerant computer |
US11/311,607 US7500139B2 (en) | 2004-12-21 | 2005-12-19 | Securing time for identifying cause of asynchronism in fault-tolerant computer |
EP05027815A EP1675002A1 (en) | 2004-12-21 | 2005-12-19 | Securing time for identifying cause of asynchronism in fault-tolerant computer |
AU2005246938A AU2005246938A1 (en) | 2004-12-21 | 2005-12-20 | Securing time for identifying cause of asynchronism in fault-tolerant computer |
CN200510022913.4A CN1794196A (zh) | 2004-12-21 | 2005-12-21 | 确保用于识别容错计算机中的异步原因的时间 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004369545A JP2006178636A (ja) | 2004-12-21 | 2004-12-21 | フォールトトレラントコンピュータ、およびその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006178636A true JP2006178636A (ja) | 2006-07-06 |
Family
ID=36084310
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004369545A Pending JP2006178636A (ja) | 2004-12-21 | 2004-12-21 | フォールトトレラントコンピュータ、およびその制御方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7500139B2 (ja) |
EP (1) | EP1675002A1 (ja) |
JP (1) | JP2006178636A (ja) |
CN (1) | CN1794196A (ja) |
AU (1) | AU2005246938A1 (ja) |
CA (1) | CA2530018A1 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008046942A (ja) * | 2006-08-18 | 2008-02-28 | Nec Corp | フォールトトレラントコンピュータ、そのトランザクション同期制御方法 |
JP2009098988A (ja) * | 2007-10-18 | 2009-05-07 | Nec Computertechno Ltd | フォルトトレラントコンピュータシステム |
JP2011048441A (ja) * | 2009-08-25 | 2011-03-10 | Nec Corp | 二重化システム、及び、二重化方法 |
JP5299281B2 (ja) * | 2007-09-25 | 2013-09-25 | 富士通株式会社 | 情報処理装置及び制御方法 |
US9465640B2 (en) | 2013-11-01 | 2016-10-11 | Fujitsu Limited | Information processing apparatus and method of controlling information processing apparatus |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3774826B2 (ja) * | 2002-07-11 | 2006-05-17 | 日本電気株式会社 | 情報処理装置 |
ATE420403T1 (de) * | 2004-10-25 | 2009-01-15 | Bosch Gmbh Robert | Verfahren und vorrichtung zur modusumschaltung und zum signalvergleich bei einem rechnersystem mit wenigstens zwei verarbeitungseinheiten |
KR20060066783A (ko) * | 2004-12-14 | 2006-06-19 | 엘지노텔 주식회사 | 디엠에이를 이용한 이중화시스템의 데이터전송장치 및 그제어방법 |
JP4182948B2 (ja) * | 2004-12-21 | 2008-11-19 | 日本電気株式会社 | フォールト・トレラント・コンピュータシステムと、そのための割り込み制御方法 |
US7496786B2 (en) * | 2006-01-10 | 2009-02-24 | Stratus Technologies Bermuda Ltd. | Systems and methods for maintaining lock step operation |
US7669080B2 (en) * | 2007-08-16 | 2010-02-23 | International Business Machines Corporation | Reducing likelihood of data loss during failovers in high-availability systems |
US8468500B2 (en) * | 2007-12-12 | 2013-06-18 | Nec Corporation | Program debugging method and program transformation method, program debugging device and program transformation device using the same, and storage medium |
JP5380978B2 (ja) * | 2008-09-26 | 2014-01-08 | 富士通株式会社 | 伝送装置、伝送装置の制御方法および伝送装置の制御プログラム |
WO2010103562A1 (ja) * | 2009-03-09 | 2010-09-16 | 富士通株式会社 | 情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラム |
US9983953B2 (en) | 2012-12-20 | 2018-05-29 | Intel Corporation | Multiple computer system processing write data outside of checkpointing |
US9571575B2 (en) * | 2014-08-29 | 2017-02-14 | Netapp, Inc. | Granular sync/semi-sync architecture |
Family Cites Families (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4541094A (en) * | 1983-03-21 | 1985-09-10 | Sequoia Systems, Inc. | Self-checking computer circuitry |
US4757442A (en) * | 1985-06-17 | 1988-07-12 | Nec Corporation | Re-synchronization system using common memory bus to transfer restart data from non-faulty processor to failed processor |
US4979108A (en) * | 1985-12-20 | 1990-12-18 | Ag Communication Systems Corporation | Task synchronization arrangement and method for remote duplex processors |
EP0306244B1 (en) * | 1987-09-04 | 1995-06-21 | Digital Equipment Corporation | Fault tolerant computer system with fault isolation |
US5204952A (en) * | 1988-07-18 | 1993-04-20 | Northern Telecom Limited | Duplex processor arrangement for a switching system |
JPH02287858A (ja) * | 1989-04-28 | 1990-11-27 | Toshiba Corp | 分散処理システムのリスタート方式 |
US5226152A (en) * | 1990-12-07 | 1993-07-06 | Motorola, Inc. | Functional lockstep arrangement for redundant processors |
JP2879480B2 (ja) | 1991-05-07 | 1999-04-05 | 株式会社山武 | 冗長計算機システムの同期外れ時の切替方式 |
JPH05128080A (ja) * | 1991-10-14 | 1993-05-25 | Mitsubishi Electric Corp | 情報処理装置 |
EP0550286A3 (en) * | 1992-01-03 | 1993-11-03 | Amdahl Corp | 2-level multi-processor synchronization protocol |
US5398331A (en) * | 1992-07-08 | 1995-03-14 | International Business Machines Corporation | Shared storage controller for dual copy shared data |
DE69325769T2 (de) * | 1992-11-04 | 2000-03-23 | Digital Equipment Corp | Erkennung von Befehlssynchronisationsfehlern |
US5790776A (en) * | 1992-12-17 | 1998-08-04 | Tandem Computers Incorporated | Apparatus for detecting divergence between a pair of duplexed, synchronized processor elements |
US5539345A (en) * | 1992-12-30 | 1996-07-23 | Digital Equipment Corporation | Phase detector apparatus |
DE69435090T2 (de) * | 1993-12-01 | 2009-06-10 | Marathon Technologies Corp., Stow | Rechnersystem mit Steuereinheiten und Rechnerelementen |
JPH08190494A (ja) | 1995-01-11 | 1996-07-23 | Hitachi Ltd | 二重化処理装置を有する高信頼化コンピュータ |
JP3132744B2 (ja) * | 1995-05-24 | 2001-02-05 | 株式会社日立製作所 | 二重化cpu保守交換時の動作一致検証方式 |
FR2737029B1 (fr) * | 1995-07-19 | 1997-09-26 | Sextant Avionique | Dispositif d'interface entre un calculateur a architecture redondante et un moyen de communication |
JP3247043B2 (ja) * | 1996-01-12 | 2002-01-15 | 株式会社日立製作所 | 内部信号で障害検出を行う情報処理システムおよび論理lsi |
US5799022A (en) | 1996-07-01 | 1998-08-25 | Sun Microsystems, Inc. | Faulty module location in a fault tolerant computer system |
US5953742A (en) * | 1996-07-01 | 1999-09-14 | Sun Microsystems, Inc. | Memory management in fault tolerant computer systems utilizing a first and second recording mechanism and a reintegration mechanism |
KR0175742B1 (ko) * | 1996-10-05 | 1999-05-15 | 한국전자통신연구원 | 이중화 시스템에서 동작 분리 고속 데이타 전송장치 |
US6260159B1 (en) * | 1998-06-15 | 2001-07-10 | Sun Microsystems, Inc. | Tracking memory page modification in a bridge for a multi-processor system |
DE19832060C2 (de) * | 1998-07-16 | 2000-07-06 | Siemens Ag | Doppelbare Prozessoreinrichtung |
US6393582B1 (en) * | 1998-12-10 | 2002-05-21 | Compaq Computer Corporation | Error self-checking and recovery using lock-step processor pair architecture |
US6327670B1 (en) * | 1999-01-22 | 2001-12-04 | Lucent Technologies Inc. | Duplex processor with an update bus and method for operating the update bus |
US6625749B1 (en) * | 1999-12-21 | 2003-09-23 | Intel Corporation | Firmware mechanism for correcting soft errors |
US6975629B2 (en) * | 2000-03-22 | 2005-12-13 | Texas Instruments Incorporated | Processing packets based on deadline intervals |
US6687851B1 (en) * | 2000-04-13 | 2004-02-03 | Stratus Technologies Bermuda Ltd. | Method and system for upgrading fault-tolerant systems |
US6643796B1 (en) * | 2000-05-18 | 2003-11-04 | International Business Machines Corporation | Method and apparatus for providing cooperative fault recovery between a processor and a service processor |
EP1317712A1 (en) * | 2000-09-06 | 2003-06-11 | Koninklijke Philips Electronics N.V. | Inter-processor communication system |
GB2369691B (en) * | 2000-11-29 | 2003-06-04 | Sun Microsystems Inc | Control logic for memory modification tracking |
GB2369692B (en) * | 2000-11-29 | 2002-10-16 | Sun Microsystems Inc | Processor state reintegration |
US7017073B2 (en) * | 2001-02-28 | 2006-03-21 | International Business Machines Corporation | Method and apparatus for fault-tolerance via dual thread crosschecking |
US6925512B2 (en) * | 2001-10-15 | 2005-08-02 | Intel Corporation | Communication between two embedded processors |
GB2390442B (en) * | 2002-03-19 | 2004-08-25 | Sun Microsystems Inc | Fault tolerant computer system |
US6948091B2 (en) * | 2002-05-02 | 2005-09-20 | Honeywell International Inc. | High integrity recovery from multi-bit data failures |
US7155721B2 (en) * | 2002-06-28 | 2006-12-26 | Hewlett-Packard Development Company, L.P. | Method and apparatus for communicating information between lock stepped processors |
JP2004046455A (ja) * | 2002-07-10 | 2004-02-12 | Nec Corp | 情報処理装置 |
JP3774826B2 (ja) * | 2002-07-11 | 2006-05-17 | 日本電気株式会社 | 情報処理装置 |
JP3982353B2 (ja) * | 2002-07-12 | 2007-09-26 | 日本電気株式会社 | フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム |
JP2004046599A (ja) * | 2002-07-12 | 2004-02-12 | Nec Corp | フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム |
US7178058B2 (en) * | 2002-08-30 | 2007-02-13 | Nec Corporation | Fault tolerant computer and transaction synchronization control method |
JP3821806B2 (ja) | 2002-08-30 | 2006-09-13 | エヌイーシーコンピュータテクノ株式会社 | フォールトトレラントコンピュータ、そのトランザクション同期制御方法及びプログラム |
EP1398701A1 (de) * | 2002-09-12 | 2004-03-17 | Siemens Aktiengesellschaft | Verfahren zur Ereignissynchronisation, insbesondere für Prozessoren fehlertoleranter Systeme |
US7055060B2 (en) * | 2002-12-19 | 2006-05-30 | Intel Corporation | On-die mechanism for high-reliability processor |
US7111196B2 (en) * | 2003-05-12 | 2006-09-19 | International Business Machines Corporation | System and method for providing processor recovery in a multi-core system |
JP4023441B2 (ja) * | 2003-12-09 | 2007-12-19 | 日本電気株式会社 | コンピュータシステム及びプログラム |
US20060020852A1 (en) * | 2004-03-30 | 2006-01-26 | Bernick David L | Method and system of servicing asynchronous interrupts in multiple processors executing a user program |
US7237144B2 (en) * | 2004-04-06 | 2007-06-26 | Hewlett-Packard Development Company, L.P. | Off-chip lockstep checking |
US7290169B2 (en) * | 2004-04-06 | 2007-10-30 | Hewlett-Packard Development Company, L.P. | Core-level processor lockstepping |
US7296181B2 (en) * | 2004-04-06 | 2007-11-13 | Hewlett-Packard Development Company, L.P. | Lockstep error signaling |
-
2004
- 2004-12-21 JP JP2004369545A patent/JP2006178636A/ja active Pending
-
2005
- 2005-12-13 CA CA002530018A patent/CA2530018A1/en not_active Abandoned
- 2005-12-19 EP EP05027815A patent/EP1675002A1/en not_active Withdrawn
- 2005-12-19 US US11/311,607 patent/US7500139B2/en not_active Expired - Fee Related
- 2005-12-20 AU AU2005246938A patent/AU2005246938A1/en not_active Abandoned
- 2005-12-21 CN CN200510022913.4A patent/CN1794196A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008046942A (ja) * | 2006-08-18 | 2008-02-28 | Nec Corp | フォールトトレラントコンピュータ、そのトランザクション同期制御方法 |
JP5299281B2 (ja) * | 2007-09-25 | 2013-09-25 | 富士通株式会社 | 情報処理装置及び制御方法 |
JP2009098988A (ja) * | 2007-10-18 | 2009-05-07 | Nec Computertechno Ltd | フォルトトレラントコンピュータシステム |
JP2011048441A (ja) * | 2009-08-25 | 2011-03-10 | Nec Corp | 二重化システム、及び、二重化方法 |
US9465640B2 (en) | 2013-11-01 | 2016-10-11 | Fujitsu Limited | Information processing apparatus and method of controlling information processing apparatus |
Also Published As
Publication number | Publication date |
---|---|
EP1675002A1 (en) | 2006-06-28 |
CN1794196A (zh) | 2006-06-28 |
AU2005246938A1 (en) | 2006-07-06 |
US20060150006A1 (en) | 2006-07-06 |
US7500139B2 (en) | 2009-03-03 |
CA2530018A1 (en) | 2006-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7500139B2 (en) | Securing time for identifying cause of asynchronism in fault-tolerant computer | |
JP3982353B2 (ja) | フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム | |
KR100566338B1 (ko) | 폴트 톨러런트 컴퓨터 시스템, 그의 재동기화 방법 및 재동기화 프로그램이 기록된 컴퓨터 판독가능 기억매체 | |
US7519856B2 (en) | Fault tolerant system and controller, operation method, and operation program used in the fault tolerant system | |
US7493517B2 (en) | Fault tolerant computer system and a synchronization method for the same | |
JP5013309B2 (ja) | フォールトトレラントコンピュータ、そのトランザクション同期制御方法 | |
JP4182948B2 (ja) | フォールト・トレラント・コンピュータシステムと、そのための割り込み制御方法 | |
KR100566340B1 (ko) | 정보 처리 장치 | |
JP5287974B2 (ja) | 演算処理システム、再同期方法、およびファームプログラム | |
JP3774826B2 (ja) | 情報処理装置 | |
JP2009098988A (ja) | フォルトトレラントコンピュータシステム | |
US20100077262A1 (en) | Information processing device and error processing method | |
JP5556086B2 (ja) | 二重化システム、及び、二重化方法 | |
US8677179B2 (en) | Information processing apparatus for performing error process when controllers in synchronization operation detect error simultaneously | |
JP5748214B2 (ja) | 二重化情報処理システム | |
JPH08202570A (ja) | 二重化プロセス制御装置 | |
JP2001175545A (ja) | サーバシステムおよび障害診断方法ならびに記録媒体 | |
JPH04211841A (ja) | 二重化処理装置 | |
JPH06124242A (ja) | 二重化共有メモリ等価性保証方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080423 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080813 |