JP2006178616A - フォールトトレラントシステム、これで用いる制御装置、動作方法、及び動作プログラム - Google Patents

フォールトトレラントシステム、これで用いる制御装置、動作方法、及び動作プログラム Download PDF

Info

Publication number
JP2006178616A
JP2006178616A JP2004369380A JP2004369380A JP2006178616A JP 2006178616 A JP2006178616 A JP 2006178616A JP 2004369380 A JP2004369380 A JP 2004369380A JP 2004369380 A JP2004369380 A JP 2004369380A JP 2006178616 A JP2006178616 A JP 2006178616A
Authority
JP
Japan
Prior art keywords
state
systems
processor unit
online
processor
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
JP2004369380A
Other languages
English (en)
Inventor
Fumitoshi Mizutani
文俊 水谷
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2004369380A priority Critical patent/JP2006178616A/ja
Priority to CNA2005101215764A priority patent/CN1804811A/zh
Priority to EP05027906A priority patent/EP1675003A3/en
Priority to CA002531092A priority patent/CA2531092A1/en
Priority to US11/311,338 priority patent/US7519856B2/en
Priority to AU2005246986A priority patent/AU2005246986A1/en
Publication of JP2006178616A publication Critical patent/JP2006178616A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • G06F11/1645Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components and the comparison itself uses redundant hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1683Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/165Error detection by comparing the output of redundant processing systems with continued operation after detection of the error

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)

Abstract

【課題】フォールトトレラント機能を実現するためのエラー処理、同期化処理、再同期化処理をシステム状態に応じて適切に実行する。
【解決手段】 2つのシステム100は、自他システム間でクロックステップ同期により同じタイミングで動作するCPUサブシステム110と、これに接続されるIOサブシステム120と、両者間に接続されるFTコントローラ130と、FTコントローラ130を介して自他システム間を接続するクロスリング140とを有する。FTコントローラ130は、両システム100によるフォールトトレラント用のエラー処理、二重化処理、及び再同期化処理を行うための複数のシステム動作をこれに対応する複数ステートとして所定のイベント信号に関連付けて管理し、イベント信号に応じて、システム毎にステートを遷移させながら複数のシステム動作を選択してCPUサブシステム110に実行させる。
【選択図】 図1

Description

本発明は、フォールトトレラントシステム、これで用いる制御装置、動作方法、及び動作プログラムに係り、とくにコンピュータシステムにおけるフォールトトレラント実現のためのシステム動作を規定するステートの管理及びそのステートを用いた制御に関する。
従来、コンピュータシステムにおいて、そのコンピュータハードウェアを構成するCPU(Central Processing Unit)、メモリ、PCI(Peripheral Component Interconnect)、ディスク、電源等、全てのコンポーネントを多重化(例えば、二重化又は三重化)して、いずれかのコンポーネントに障害が発生してもコンピュータシステムを停止することなく連続稼動が可能なフォールトトレラントコンピュータシステム(以下、「フォールトトレラントシステム」と呼ぶ)が知られている。
フォールトトレラントシステムでは、多重化された複数のCPU(プロセッサ)が常に同期を取りながら同じタイミングで同一動作を実行する(このことを「ロックステップ同期」と言う)。このようにロックステップ同期で同一動作を実行している複数のCPUでは、あるCPUに障害が発生した場合でも、残りのCPUが正常稼動を続ける。このため、フォールトトレラントシステムは、CPUにより実行されるオペレーティングシステム(OS)やアプリケーションソフトウェア等のソフトウェア動作には影響を与えず、稼動し続けることができる。
このようなフォールトトレラントシステムの先行技術として、特許文献1にはロックステップ同期での命令実行のための装置及び方法が、また特許文献2には、フォールトトレラントサーバにおける大規模記録デバイスへのアクセス装置及び方法が、特許文献3には、ロックステップ同期により動作するプロセッサを含む複数の処理セット間のメモリ部分複写による高速再同期化技術がそれぞれ開示されている。
米国特許出願公開第2002/0152418号明細書 米国特許出願公開第2002/0152419号明細書 米国特許第5953742号明細書
しかしながら、前述した先行技術のフォールトトレラントシステムでは、フォールトトレラント機能を実現するためのエラー処理、二重化(同期化)処理、再同期化処理を、CPUの動作状態(CPUバスの動作一致又は不一致)やアクセス許可状態(IOアクセスの一致又は不一致)等のシステム状態に応じて適切に実行することが困難であった。
本発明は、このような従来の事情を考慮してなされたもので、フォールトトレラント機能を実現するためのエラー処理、同期化処理、再同期化処理をシステム状態に応じて適切に実行することを目的とする。
上記目的を達成するため、本発明に係るフォールトトレラントシステムは、互いに同一のコンピュータハードウェアで構成された複数のシステムを備えたものであって、前記複数のシステムは、自他システム間においてロックステップ同期の状態で動作可能なプロセッサ部と、前記プロセッサ部に接続される入出力部と、前記プロセッサ部及び前記入出力部間に接続される制御部と、前記制御部を介して前記自他システム間を互いに接続する信号伝送路とを有し、前記制御部は、前記複数のシステムによるフォールトトレラント用のエラー処理、同期化処理、及び再同期化処理を行うための複数のシステム動作をこれに対応する複数のステートとして所定のイベント信号に関連付けて管理するステート管理手段と、前記イベント信号に応じて、前記複数のシステム毎に前記複数のステートを遷移させながら前記複数のシステム動作を選択して前記プロセッサ部に実行させる制御手段とを備えことを特徴とする。
本発明において、前記複数のシステム動作は、自システム内の前記プロセッサ部及び前記入出力部間のアクセス制御と、自他システム間における前記プロセッサ部及び前記入出力部間のアクセス制御と、前記自他システム間における前記プロセッサ部から前記入出力部へのアクセス比較と、前記自他システム間における前記プロセッサ部内のバス上のアクセス比較と、前記自他システム間における前記プロセッサ部の主記憶複写とを有してもよい、好適には、前記主記憶複写は、部分複写を含む。
本発明において、前記複数のステートは、前記複数のシステムのうちサービスを提供するシステムに組み込まれている状態を示すオンライン系ステートと、前記サービスを提供するシステムから切り離されている状態を示すオフライン系ステートと、エラー検出により前記サービスを提供するシステムから切り離されている状態を示すフォールト系ステートとを有してもよい。
好適には、前記オンライン系ステートは、電源投入時に前記プロセッサ部が自他システムで互いに非同期で動作している状態を示すオンライン分離ステートと、前記プロセッサ部が前記自他システムで互いに非同期で動作している状態を示すオンライン準備ステートと、前記プロセッサ部が前記自他システムで互いに同期して動作し当該プロセッサ部内の主記憶内容をチェックしている状態を示すオンライン同期前ステートと、前記プロセッサ部が前記自他システムで互いに同期して動作している状態を示すオンライン同期ステートと、前記オンライン同期ステートのときに前記プロセッサ部内のバス上の動作が前記自他システムで互いに不一致となったときの一時的な状態を示すオンライン非同期ステートとを有し、前記オフライン系ステートは、前記電源投入時に前記プロセッサ部が前記自他システムで互いに非同期で動作している状態を示し前記オンライン分離ステートと対を成すオフライン分離ステートと、前記プロセッサ部が前記自他システムで互いに非同期で動作している状態を示し前記オンライン準備ステートと対を成すオフラインステートと、前記自他システム間で前記プロセッサ部の主記憶複写を実行し当該プロセッサ部が前記自他システムで互いに非同期で動作している状態を示すオフライン複写ステートと、前記プロセッサ部内のバス上の動作が前記自他システムで互いに不一致となったときに前記システムから切り離された状態を示すオフライン前ステートとを有してもよい。
本発明に係るフォールトトレラントシステムで用いる制御装置は、互いに同一のプロセッサ部及び入出力部を有する複数のシステムを備えたフォールトトレラントシステムで用いる制御装置であって、前記複数のシステムによるフォールトトレラント用のエラー処理、同期化処理、及び再同期化処理を行うための複数のシステム動作をこれに対応する複数のステートとして所定のイベント信号に関連付けて管理するステート管理手段と、前記イベント信号に応じて、前記複数のシステム毎に前記複数のステートを遷移させながら前記複数のシステム動作を選択して前記プロセッサ部に実行させる制御手段とを備えことを特徴とする。
本発明に係るフォールトトレラントシステムの動作方法は、互いに同一のプロセッサ部及び入出力部を有する複数のシステムを備えたフォールトトレラントコントローラの動作方法であって、前記複数のシステムによるフォールトトレラント用のエラー処理、同期化処理、及び再同期化処理を行うための複数のシステム動作をこれに対応する複数のステートとして所定のイベント信号に関連付けて管理するステップと、前記イベント信号に応じて、前記複数のシステム毎に前記複数のステートを遷移させながら前記複数のシステム動作を選択して前記プロセッサ部に実行させるステップとを備えたことを特徴とする。
本発明に係るフォールトトレラントシステムの動作プログラムは、互いに同一のプロセッサ部及び入出力部を有する複数のシステムを備えたフォールトトレラントシステムの動作プログラムであって、前記複数のシステムによるフォールトトレラント用のエラー処理、同期化処理、及び再同期化処理を行うための複数のシステム動作をこれに対応する複数のステートとして所定のイベント信号に関連付けて管理するステップと、前記イベント信号に応じて、前記複数のシステム毎に前記複数のステートを遷移させながら前記複数のシステム動作を選択して前記プロセッサ部に実行させるステップとをコンピュータに実行させることを特徴とする。
本発明によれば、フォールトトレラント機能を実現するためのエラー処理、同期化処理、再同期化処理をシステム状態に応じて適切に実行することができる。
次に、本発明に係るフォールトトレラントシステム、これで用いる制御装置、動作方法、及び動作プログラムを実施するための最良の形態について図面を参照して詳細に説明する。
図1は、本実施例によるフォールトトレラントシステムの基本構成を示す。
図1に示すフォールトトレラントシステム(「フォールトトレラントコンピュータ」、「フォールトトレラントサーバ」等とも言う)は、互いに同一のコンピュータハードウェアから構成されている複数のシステムから成る多重化コンピュータシステムとして二重化コンピュータシステムを適用したもので、2つのシステム100、100、即ち「#0システム」及び「#1システム」を備えている。図1の例では、互いに独立した#0システムと#1システムが単一のフォールトトレラントシステムを構成している。以下の説明では、必要に応じて、2つのシステム100、100の一方(例えば、#0システム)を「自システム(自系)」としたときに、その他方を「他システム(他系)」(例えば、#1システム)として区別して使用する。
各システム100、100は、図示のように、プロセッサ部を成すCPUサブシステム110と、入出力部を成すIO(Input Output:入出力)サブシステム120と、CPUサブシステム110及びIOサブシステム120に接続され、本発明のステート管理手段及び制御手段の主要部を成す制御部(制御装置)としてのFT(フォールトトレラント)コントローラ130と、自他システム間のCPUサブシステム110及びIOサブシステム120を相互に接続する信号伝送路としてのクロスリンク140、140とを備えている。本実施例では、FTコントローラ130は、CPUサブシステム110及びIOサブシステム120内の各種コントローラ(後述のメモリコントローラ113、IOコントローラ121、DMA/共有リソースコントローラ122)と共にフォールトトレラントシステム内のボードコントローラ(制御装置)101として搭載されている。
自システム内のCPUサブシステム110とIOサブシステム120とは、FTコントローラ130を介して互いにアクセス可能となっている。また、自システムのCPUサブシステム110と他システムのIOサブシステム120とは、自システムのFTコントローラ110、クロスリンク140、及び他システムのFTコントローラ110を介して互いにアクセス可能となっている。
CPUサブシステム110は、CPU111と、このCPU111の主記憶を成すメモリ112と、CPU111及びメモリ112間にCPUバスを介して接続されるメモリコントローラ113を有する。自他システムのCPUサブシステム110、110間は、各々のメモリコントローラ113、113を介して接続されている。
自他システムのCPUサブシステム110、110は、互いにロックステップ同期で同じ動作タイミングで同一動作を行い、ハードウェアの故障検出によりサービス中のCPUサブシステム110が切り離されると、同一動作中のCPUサブシステム110がそのままサービスを継続するようになっている。
IOサブシステム120は、CPUサブシステム110のCPU111で実行されるソフトウェアによるミラーリングの処理によって両システム100、100間で冗長性を持つよう構成されている。図1の例では、CPU111とIOデバイス126とを接続するための複数(図中の例では2つ)のIOコントローラ121、121と、自他システム間でCPUサブシステム110、110の二重化のため、両メモリ112、112の主記憶領域の内容を複写するためのDMA(Direct Memory Access)コントローラ及び両システム100、100間での情報共有を行うための共有メモリやシステム間通信機能を持つ共有リソースコントローラを含むDMA/共有リソースコントローラ122とを有する。
2つのIOコントローラ121、121の一方には、IOブリッジ123を介して図示しないハードディスクドライブ(HDD)等のIOデバイス126が、またその他方には、レガシーIOブリッジ124を介してROM125がそれぞれ接続されている。各IOコントローラ121、121は、自システムのCPUサブシステム110と、他システムのCPUサブシステム110からそれぞれアクセス可能となっている。IOブリッジ123は、例えばPCI(Peripheral Component Interconnect)バス、USB(Universal Serial Bus)、IEEE(Institute of Electrical and Electronic Engineers)1394等のインターフェースブリッジが、またレガシーIOブリッジ124は、例えばPS(Personal System)/2ポートやRS−232C(Recommended Standard 232 version C)ポート等のインターフェースブリッジが例示できる。
FTコントローラ130は、フォールトトレラント機能、即ち1)自システム内及び自他システム間におけるCPUサブシステム110とIOサブシステム120の接続及びその切り離し、2)エラー検出、3)自他システム間におけるCPUサブシステム110、110の二重化を実現するための諸機能を有する。以下、図2〜図6を参照して、FTコントローラ130の諸機能を説明する。
FTコントローラ130は、自システム内及び自他システム間におけるCPUサブシステム110とIOサブシステムとの間のアクセスを許可又は制限することで、自他システム間のCPUサブシステム110とIOサブシステム120の接続及びその切り離しを行う。図2は、自システム内におけるCPUサブシステム110及びIOサブシステム120間のアクセス動作(CPUサブシステム110からIOサブシステム120へのアウトバウンド(outbound)アクセスと、IOサブシステム120からCPUサブシステム110へのインバウンド(inbound)アクセスとの両方を含む)による動作信号の流れ(図中の矢印A1、A1参照)の様子、図3は、クロスリンク140、140を経由した自システム内のCPUサブシステム110と他システム内のIOサブシステム120との間のアクセス動作(アウトバウンドアクセス及びインバウンドアクセス)による動作信号の流れ(図中の矢印A2、A2参照)の様子をそれぞれ示す。
また、FTコントローラ130は、フォールトトレラント機能実現のためのエラー検出機構として、図4に示すように、自システムのCPUサブシステム110から自システムのIOサブシステム120へのアクセス動作による動作信号と、他システムのCPUサブシステム110から自システムのIOサブシステム120へのアクセス動作による動作信号との比較機能(比較回路)を有している。
このFTコントローラ130内の比較回路は、機能上、自システム内のメモリコントローラ113に接続されるバッファ(BUF)131と、他システム内のメモリコントローラ113にクロスリンク140経由で接続されるバッファ(BUF)132と、両バッファ131、132の出力に接続される比較部132とを備えている。
この比較回路において、比較部132により自システムのCPUサブシステム110からのアクセス動作による動作信号と、他システムのCPUサブシステム110からのアクセス動作による動作信号とが互いに比較され、その結果、両アクセス動作による動作信号に不一致が発生している場合は、両CPUサブシステム110、110のいずれか一方を切り離し、その残りの動作を継続する。本実施例では、比較回路がバッファ131、132を用いて構成されているため、両信号の不一致が発生した後でも、バッファ131、132の容量の許す限りにおいて、CPUサブシステム110を切り離さずにある程度の期間に亘って、その動作継続が可能となっている。
図4は、#0システム側のFTコントローラ130において、一方のバッファ131に入力される#0システム内におけるCPUサブシステム110からIOサブシステム120へのアクセス動作による動作信号(図中の矢印A3参照)と、他方のバッファ132に入力される#1システムのCPUサブシステム110から#0システムのIOサブシステム120へのアクセス動作による動作信号(図中の矢印A4参照)とを比較部133にて比較し、その結果(両信号の一致又は不一致)を比較部133から出力している様子(図中の矢印A5参照)を示す。
CPUサブシステム110は、DMA/共有リソースコントローラ122のDMAコントローラを用いて、サービスを提供している側のCPUサブシステム110におけるメモリ112の主記憶領域の内容の全てあるいは一部を、待機している側のCPUサブシステム110におけるメモリ112の主記憶領域に複写し、同時にCPUリセットを行うことで自他システム間のCPUサブシステム110、110の二重化を実現している。
ここで、メモリ112の主記憶領域の内容は、基本的に全ての領域に亘って複写されなければ、両CPUサブシステム110、110の二重化動作を保障できない。しかし、二重化を一旦行うと、両CPUサブシステム110、110内のCPUバス上のアクセス動作による動作信号を比較し、その結果、両信号に不一致が発生した後のメモリ112の主記憶内容に対するアクセス動作をトレースすることで自他システムのメモリ112、112間の主記憶内容の差分情報を得ることができる。この差分情報を用いることで、複写すべきメモリ112の主記憶内容を削減し、複写時間を大幅に短縮し、両CPUサブシステム110、110の二重化後に両CPUバスの動作信号に不一致が生じた場合の再同期化をより高速に行える。
このような動作を行うため、CPUサブシステム110内のメモリコントローラ113は、図5に示すように、両システム100、100のCPUサブシステム110、110間でのCPUバスの動作信号の比較機能(CPUバス比較機能)を備えている。図5の例では、自システムのCPUサブシステム110内のCPUバスの動作信号(図中の矢印A6参照)と、他システムのCPUサブシステム110内のCPUバスの動作信号(図中の矢印A7参照)とを比較し、その結果(一致・不一致)をFTコントローラ130に出力する比較部114を備えている。
また、FTコントローラ130は、前述のように両CPUサブシステム110、110内のCPUバス上のアクセス動作による両動作信号に不一致が発生した後のメモリ112の主記憶アクセス動作をトレースし、自他システムのメモリ112、112間の主記憶内容の差分情報を得る機能(以下、「主記憶アクセストレース機能」と呼ぶ)を備える。
図6の例は、DMA/共有リソースコントローラ122による#0システムから#1システムへの主記憶内容の全体又は一部を複写する場合を示す。
まず、自システム側において、DMA/共有リソースコントローラ122からFTコントローラ130、メモリコントローラ112を介してメモリ112へDMA読み取り要求が出され(図中の矢印A8、A9参照)、メモリ112の主記憶内容の全部又は一部がメモリコントローラ112、FTコントローラ130を介してDMA/共有リソースコントローラ122内の共有メモリへ送られる(図中の矢印A10、A11参照)。
同時に、自システム側のメモリコントローラ112からFTコントローラ130、クロスリンク140を介して、他システム側のFTコントローラ130、DMA/共有リソースコントローラ122経由で他システム側のメモリコントローラ112にDMA書き込み要求が出され(図中の矢印A12、A13参照)、自システム側のDMA/共有リソースコントローラ122内の共有メモリに一時格納されたメモリ112の主記憶内容の全部又は一部がFTコントローラ130、クロスリンク140を介して、他システム側のFTコントローラ130、メモリコントローラ112経由で、メモリ112に複写される(図中の矢印A14、A15参照)。
以上のような諸機能を実現するために、本実施例のFTコントローラ130では、システム動作状態を示すステートを定義し、当該ステート状態からエラー処理、二重化処理、及び再同期処理を実行するソフトウェア動作を規定し、これによりフォールトトレラント実現のためのステート管理を行う。
基本的に、エラー検出によるサブシステム110、120の切り離し(ステート遷移)は、ハードウェアによって即時行うが、サブシステム110、120の組み込みはソフトウェアによって開始される。エラー検出の通知によってCPU111により呼び出されたソフトウェアは、検出されたエラーの内容とそのときのステートの情報に従って、システムの動作情報(CPUサブシステム110の同期・非同期の状態、アクセス可否等)を認識し、処理を選択するようになっている。
ここで、FTコントローラ130で管理されるステートについて説明する。
FTコントローラ130で管理されるステートは、CPU111の状態、CPUサブシステム110とIOサブシステム120との間のアクセス許可状態、両システム100、100間のリンクの状態をまとめて示しており、ソフトウェア制御やハードウェアエラー検出イベントなどによって状態遷移が可能となっている。
また、ステートの予備情報として、システム毎に排他的な動作モードである「ACT(active:アクティブ)」モードと「SBY(stand-by:スタンバイ)」モードとが定義される。いくつかのエラー検出機構として、FTコントローラ130では、自システムのCPUサブシステム110から自システムへのIOサブシステム120へのアクセス比較や、CPUサブシステム110内のCPUバスの動作比較を行う。これにより比較不一致のように具体的なエラー箇所が特定不可能な場合は、動作モードが「ACT」モードのCPUサブシステム110でサービスを継続し、動作モードが「STB」モードのCPUサブシステム110を切り離す。
表1及び表2は、定義されるステート及び動作モードの内容を示す。
Figure 2006178616
Figure 2006178616
ここで、上記表を参照して、ステートの詳細について説明する。
本実施例で定義されるステートには、1)サービスを提供するシステムに組み込まれている状態(Online(オンライン)系)、2)システムから切り離されている状態(offline(オフライン)系)、及び3)システムから閉塞している状態(Fault(フォールト)系)の3つに大別される。以下、これについて順次説明する。
1)サービスを提供するシステムに組み込まれている状態(Online系)
このシステム動作状態を示すステートは、ステート名に「Online」が付く。このステートのCPUサブシステム110(CPU111)は、実際にサービスを提供しているものを示している。これに加え、同期状態やアクセスの制限によって、以下の1−1)〜1−5)の複数ステートST1〜ST5に派生している。
1−1)「Online divide(オンライン分離)」ステートST1
これは、最初に電源投入されたCPUサブシステム110に設定されるステートである。このステートST1になるCPUサブシステム110は、フォールトトレラントシステムでは1つだけであり、これと対になるCPUサブシステム110は、後述の「Offline divide」ステートとなる。CPUサブシステム110は、「Online divide」ステートST1のときに、自システムのIOサブシステム120しかアクセスできないが、フルアクセスが可能で、このCPUサブシステム100上で動作するBIOS(Basic Input Output System)は、OSをブートする段階まで進む。
1−2)「Online ready(オンライン準備)」ステートST2
これは、「Online divide」ステートST1からクロスリンク140を接続状態としたときのステートである。また、後述の「Online async」ステートの対を成すCPUサブシステム110、110において、前述のIOアクセス不一致やCPUバス不一致時の主記憶アクセストレース機能で得られる情報を一時格納するバッファが所定しきい値を超えて「ほぼ満杯(Almost Full)」の状態となった時、ソフトウェア指示によって動作モードが「ACT」モードのCPUサブシステム110が「Online ready」ステートST2になる(このとき、動作モードが「SBY」モードのCPUサブシステム110は、後述の「Pre offline」ステートになる)。「Online divide」ステートST1から「Online ready」ステートST2に遷移するとき、これと対になっているCPUサブシステム110は、後述の「Offline divide」ステートから「Offline」ステートに遷移する。このステートST2のCPUサブシステム110は、他システム上のIOサブシステム120へのフルアクセスが可能で、これと逆に、そのIOサブシステム120から当該CPUサブシステム110へのフルアクセスも可能である。
1−3)「Pre online sync(オンライン同期前)」ステートST3
これは、同期化処理における同期リセット解除後の状態であり、実質的に両システム100、100が同期状態にある。この「Pre online sync」ステートST3と、後述の「Online sync」ステートのとき、CPUサブシステム110からIOサブシステム120へのIOアウトバウンドアクセス動作による動作信号の比較が有効になる。
同期化処理における両システム間の主記憶内容比較チェックが終了していない状態であり、両システム間の主記憶の内容の完全一致が保証されないことから完全な同期状態として扱わず、高速再同期化処理の対象外となる。故障の発生や不一致発生の場合には、動作モードが「SBY」モードのCPUサブシステム110はフォールトにされ、動作モードが「ACT」モードのCPUサブシステム110は、両システムのどちらで故障が発生してもフォールトにできない。このステートST3のとき、CPUサブシステム110の動作モード(「ACT」モード/「SBY」モード)の切り替えできない。
1−4)「Online sync(オンライン同期)」ステートST4
これは、完全な同期状態(二重化)を示すステートである。この場合、両システム100、100のステートは、いずれも「Online sync」ステートST4である。このステートST4は、同期状態であるため、故障が発生すれば、故障状態の切り離し機能が働き、FSB(Front Sid Bus)比較を行っていれば高速再同期が可能となる。
1−5)「Online async(オンライン非同期)」ステートST5
これは、「Online sync」ステートST4の状態でCPUバス不一致の検出が行われた場合に遷移する一時的なステートである。この時点では、まだ同期を維持しているように扱われるため、故障箇所が明示的な故障が発生すれば故障部分の切り離しの機構が働く。この場合、両システム100、100とも「Online sync」ステートST5となっている。
CPUバス不一致の結果、主記憶アクセストレース機能による動作が開始される。これにより、IOアクセスバッファが「満杯(Full)」であったり、主記憶アクセストレースのサイズが限界に達したりすると、動作モードが「ACT」モードのCPUサブシステム110は後述の「Offline ready」となり、動作モードが「SBY」モードのCPUサブシステム110は「Pre offline」ステートとなる。また、動作モードが「SBY」モードのCPUサブシステム110側は、具体的に故障が特定されるエラー検出を行った場合は、後述の「Fault」ステートになる。
2)システムから切り離されている状態(offline系)
このシステム動作状態を示すステートは、ステート名に「offline」が付く。このステートのCPUサブシステム110(CPU111)は、実際のサービスから切り離されているものを示している。これに加え、アクセスの制限や同期化処理状態によって、以下の2−1)〜2−4)に示す複数ステートST6〜ST9に派生している。
2−1)「Offline divide(オフライン分離)」ステートST6
これは、電源が投入されてパワーオンリセット直後の状態を示すステートである。即ち、「Online divide」ステートST1にならなかったシステム100側のCPUサブシステム110のステートである。他システムのIOサブシステム120へのアクセスはできないが、自系システムのIOサブシステム120にフルアクセスが可能であり、IOサブシステム120から当該CPUサブシステム110へのアクセスもフルアクセスが可能である。
2−2)「Offline(オフライン)」ステートST7
これは、「Offline divide」ステートST6からクロスリンク140を接続状態にしたステートである。また、後述の「Fault」ステートにあったCPUサブシステム110にリセット実行後のステートである。「Offline state」ステートST6から遷移するとき、対になっている「Online divide」ステートST1のCPUサブシステム110が「Online ready」ステートST2に遷移している。これは、「Offline divide」ステートST6とは異なり、自他システムを問わず、IOサブシステム120へのアクセスが可能であるが、非同期アクセスとなっているため、他システムのCPU111とのアクセス競合は、ソフトウェアで管理されるようになっている。
2−3)「Recover offline(オフライン複写)」ステートST8
これは、「Offline」ステートST7からDMA/共有リソースコントローラ122のDMAコントローラによってメモリ112の主記憶複写を行う二重化処理に入る時のリカバーモード設定時である。また、後述の「Pre offline」ステートST9のときに、システムマネージメント割り込み要求であるSMI(System Management Interrupt)進入信号によって全CPU111からSMM(System Management Mode)に入り、これに応答して全CPU111からSMI ACK(ACKnowledgement)が返り、再同期化処理の準備が完了することで、このステートST8に遷移する。このステートST8において、CPUサブシステム110からIOサブシステム120へのアクセスは、非同期リクエストのみが可能である。このステートST8では、IOサブシステム120からCPUサブシステム110への非同期リクエストに対するコンプリーションと、IOサブシステム120からのリクエストとが通過する。
2−4)「Pre offline(オフライン前)」ステートST9
これは、「Online async」ステートST5のCPUサブシステム110で明示的なエラーが検出されることはなく、IOアクセス不一致やCPUバス不一致時の主記憶アクセストレースバッファが「ほぼ満杯(Almost Full)」の発生時、ソフトウェア指示によって動作モードが「SBY」モードのCPUサブシステム110が遷移する(動作モードが「SBY」モードのCPUサブシステム110は「Online ready」ステートST2に遷移する)。この時点で、システムの二重化が解除される。このステートST9に遷移するとき、動作モードが「SBY」モードのCPUサブシステム110の全てのCPU111にSMIが出され、全てのCPU111からSMI ACKが返されて再同期化処理準備が整うまで、このステートST9が継続される。このステートST9にあるとき、当該CPUサブシステム110は、システムから切り離されており、IOサブシステム120へのアクセスは破棄され、CPUサブシステム110にはマスタ・アボートで応答する。
3)システムから閉塞している状態(Fault系)
3−1)「Fault(フォールト)」ステートST10
これは、CPUサブシステム110の故障と判断され、システムから切り離されている状態、あるいはCPUサブシステム110の切り離しのためにソフトウェアから強制的に落とされるステートである。このステートST9にあるとき、外部からも内部からもアクセスは不可能であり、CPUサブシステム110からIOサブシステム120へのアクセスはマスタ・アボートとして処理される。
表3及び表4は、CPUサブシステム110とIOサブシステム120との間でやり取りされるリクエストを透過するか抑止するかの状態を表す。ここで、リクエストに対するコンプリーションは、全て透過する。表中、○はアクセス可能であり、△はアクセス制限があり、×はマスタ・アボートとして返されることをそれぞれ示す。
Figure 2006178616
Figure 2006178616
CPUサブシステム110からIOサブシステム120へのアウトバウンド(outbound)アクセスは、通常は、サービスを行っているCPUサブシステム110からのアクセスのみが有効となる。そのため、対応するコンプリーションもサービス中のCPUサブシステム110のみ返されるため、サービス外のCPUサブシステム110からIOシステム120へのアクセスができない。
そこで、本実施例では、サービス外のCPUサブシステム110であっても、非同期リクエストによってIOサブシステム120へアクセスする方法が用意されている。非同期リクエストは、CPU111が「Offline」ステートST7、「Offline divide」ステートST6、「Recover offline」ステートST8のときに、システム100内の図示しないルータで設定可能となっている。非同期リクエストは、各システム100で異なるリクエストとして処理し、これに対するコンプリーションは、非同期リクエストを出したシステム100に返される。これは、同一リソースにもアクセスできしまうため、ソフトウェアによって排他制御などの方法で競合を回避する必要がある。
図7は、FTコントローラ130による上記ステートST1〜ST10を用いた処理を示すフローチャートである。
FTコントローラ130は、上記ステートST1〜ST10に関連付けられたステート遷移イベント、エラー検出イベント、又はソフトウェア指示(予め設定されたイベント信号)を受けると(ステップS1)、これに応じてCPUサブシステム110のステートST1〜ST10を遷移させ(ステップS2:後述の図8〜図11参照)、遷移させたステートST1〜ST10に応じてフォールトトレラント用のエラー処理、二重化処理(同期化処理)、及び再同期化処理(ソフトウェア動作)を選択し(ステップS3)、選択された処理をCPUサブシステム110(CPU111)に実行させる(ステップS4)。
図8は、上記ステートST1〜ST10の遷移状態図を示す。図8に示すように、FTコントローラ130で管理されるステートST1〜ST10は、ステート遷移イベント、エラー検出イベント、ソフトウェア指示(予め設定されたイベント信号)によって遷移が行われる。
図9〜図11は、CPU111のステート遷移イベントによるステート遷移を説明するタイミングチャートを示す。
図9は、システムの電源ON時の処理シーケンスを示す。
まず、#0システム側にて、#0システムのパワーオンリセットを行う(T100)。このときのステートは、「Offline divide」ステートST6である。次いで、ボードコントローラ101により#0システムを「ACT」モードにセットする(T101)。これにより、#0システムは、「Online divide」ステートST1に遷移する。そして、リセットを解除して、BIOSを実行し、OSをブートする(T102〜T104)。
次いで、#1システム側にて、#1システムのパワーオンリセットを行う(T200)。このときのステートは、「Offline divide」ステートST6である。次いで、ボードコントローラ101により#1システムを「SBY」モードにセットする(T201)。このとき、#0システムは、「Offline divide」ステートST6のままである。そして、リセットを解除して、BIOSを実行する(T202、T203)。
次いで、両システムをクロスリンク140、140を介して接続すると(ST204)、#0システムは、「Online ready」ステートST2に遷移し、#1システムは、「Offline」STST7に遷移する。
次いで、#1システム側では、BIOS処理をループさせながらCPUサブシステム110のシステム同期プロセスを待機する(ST205)。
図10は、CPUサブシステム110のシステム同期化処理を行う場合の処理シーケンスを示す。
次いで、#0システム側にて、システム同期化処理を開始すると(ST105)、#1システム側では、BIOSループ(ST205)後、「Offline」ステートST7から「Recover offline」ステートST8にセットされる。このとき、#0システム側では、「Online ready」ステートST2のままである。
次いで、#0システム側にて、DMAコントローラによりメモリの複写を開始し(T106)、このDMAメモリ複写が完了すると(T107)、SMI BIOSによってCPU111の割り込み処理を行い(T108)、CPU111のキャッシュ/コンテキストを#1システムへ複写する(T109)。
次いで、両システムにて同期リセットを行う(T110)。これにより、#0システム側は「Online ready」ステートST2から「Pre online sync」ステートST3に、#1システム側は「Recover offline」ステートST8から「Pre online sync」ステートST3にそれぞれ遷移する。このとき、#0システム側の動作モードは、「ACT」モードに、#1システム側の動作モードは、「SBY」モードとなっている。
次いで、#0システム側では、BIOSを起動し(T111)、CPU111のコンテキストを復元し(T112)、OSに戻り(T113)、DMAコントローラによりメモリのチェックを開始する(T114)。このメモリのチェックが完了すると(T115)、#0システムは、「Pre online sync」ステートST3から「online sync」ステートST4に遷移する。
同様に、#1システム側でも、BIOSを起動し(T207)、CPU111のコンテキストを復元し(T208)、OSに戻り(T209)、DMAコントローラによりメモリのチェックを開始する(T210)。このメモリのチェックを完了すると(T211)、#1システムは、「Pre online sync」ステートST3から「online sync」ステートST4に遷移する。
このとき、#0システム側の動作モードは、「ACT」モードに、#1システム側の動作モードは、「SBY」モードとなっている。
図11は、両システムのCPUバス動作の不一致の発生から再同期処理が行われる場合の処理シーケンスを示す。
まず、両システムのCPUバス動作の不一致による同期外れが発生すると(T116、T212)、いずれも「online sync」ステートST4から「online async」ステートST5に遷移する。そして、エラーチェックのため、メモリアクセストレースが行われ、アクセストレースが「ほぼ満杯(Almost full)」になると(T117、T213)、#0システム側では、「online async」ステートST4から「Online ready」ステートST2に、#1システム側では、「online async」ステートST4から「Pre offline」ステートST9にそれぞれ遷移する。
次いで、両システムにて、SMI BIOSによってCPU111の割り込み処理を行い(T118、T214)、#1システム側では、「Pre offline」ステートST9から「Recover offline」ステートST8に遷移する。このとき、#0システム側では、「Online ready」ステートST2のままである。
次いで、両システムにて、DMAコントローラによりメモリ112の部分複写が開始され(T119、T215)、これが完了すると(T120、T216)、CPU111のキャッシュ/コンテキストが#1システムに複写される(T121、T217)。
次いで、両システムにて同期リセットを行う(T122)。これにより、#0システム側は「Online ready」ステートST2から「Pre online sync」ステートST3に、#1システム側は「Recover offline」ステートST8から「Pre online sync」ステートST3にそれぞれ遷移する。このとき、#0システム側の動作モードは、「ACT」モードに、#1システム側の動作モードは、「SBY」モードとなっている。
次いで、#0システム側では、BIOSを起動し(T123)、CPU111のコンテキストを復元し(T124)、OSに戻り(T125)、DMAコントローラによりメモリのチェックを開始する(T126)。このメモリのチェックが完了すると(T127)、#0システムは、「Pre online sync」ステートST3から「online sync」ステートST4に遷移する。
同様に、#1システム側でも、BIOSを起動し(T218)、CPU111のコンテキストを復元し(T219)、OSに戻り(T220)、DMAコントローラによりメモリのチェックを開始する(T221)。このメモリのチェックを完了すると(T222)、#1システムは、「Pre online sync」ステートST3から「online sync」ステートST4に遷移する。
従って、本実施例では、フォールトトレラント機能に必要とされるシステム動作を示す複数のステートを定義し、これらステートの状態からエラー処理、二重化処理(同期化処理)、及び再同期化処理を実行するためのソフトウェア動作を規定することにより、フォールトトレラント機能を実現している。即ち、本実施例によれば、ステート状態に従いFTコントローラのシステムの分離・接続とサブシステムの切り離し・接続を規定し、各システムのCPUで実行されているソフトウェアは、エラー通知およびステート状態から、自身のCPUの状態を確認し、エラー検出や再同期化処理の処理選択を行うことで、フォールトトレラント機能を実現することができる。
なお、上記実施例では、フォールトトレラントシステムとして二重化コンピュータシステムを例示しているが、本発明はこれに限らず、例えば三重化等、多重化した場合も適用可能である。
本発明の実施例に係るフォールトトレラントシステムの全体構成を示す概略ブロック図である。 フォールトトレラントコントローラによる自システム内のCPUサブシステムとIOサブシステムとの間のアクセス制御を説明する図である。 フォールトトレラントコントローラによるクロスリンクを経由したシステム間のアクセス制御を説明する図である。 フォールトトレラントコントローラによるCPUサブシステムからIOサブシステムへのアクセス比較を説明する図である。 メモリコントローラによるCPUバスのアクセス比較を説明する図である。 DMA/共有リソースコントローラによる主記憶複写を説明する図である。 フォールトトレラントシステムの処理を示す概略フォローチャートである。 フォールトトレラントシステムのステート遷移を説明する図である。 電源ON時の処理シーケンスを説明するタイミングチャートである。 CPUサブシステムの同期化処理の処理シーケンスを説明するタイミングチャートである。 CPUバスの動作不一致による同期外れ発生から再同期化処理までの処理シーケンスを説明するタイミングチャートである。
符号の説明
110 CPUサブシステム
111 CPU
112 メモリ
113 メモリコントローラ
120 IOサブシステム
121 IOコントローラ
122 DMA/共有リソースコントローラ
123 IOブリッジ
124 レガシーIOブリッジ
125 ROM
126 IOデバイス
130 FT(フォールトトレラント)コントローラ
140 クロスリンク

Claims (20)

  1. 互いに同一のコンピュータハードウェアで構成された複数のシステムを備えたフォールトトレラントシステムであって、
    前記複数のシステムは、
    自他システム間においてロックステップ同期の状態で動作可能なプロセッサ部と、
    前記プロセッサ部に接続される入出力部と、
    前記プロセッサ部及び前記入出力部間に接続される制御部と、
    前記制御部を介して前記自他システム間を互いに接続する信号伝送路とを有し、
    前記制御部は、
    前記複数のシステムによるフォールトトレラント用のエラー処理、同期化処理、及び再同期化処理を行うための複数のシステム動作をこれに対応する複数のステートとして所定のイベント信号に関連付けて管理するステート管理手段と、
    前記イベント信号に応じて、前記複数のシステム毎に前記複数のステートを遷移させながら前記複数のシステム動作を選択して前記プロセッサ部に実行させる制御手段とを備えたことを特徴とするフォールトトレラントシステム。
  2. 前記複数のシステム動作は、
    自システム内の前記プロセッサ部及び前記入出力部間のアクセス制御と、
    自他システム間における前記プロセッサ部及び前記入出力部間のアクセス制御と、
    前記自他システム間における前記プロセッサ部から前記入出力部へのアクセス比較と、
    前記自他システム間における前記プロセッサ部内のバス上のアクセス比較と、
    前記自他システム間における前記プロセッサ部の主記憶複写とを有することを特徴とする請求項1記載のフォールトトレラントシステム。
  3. 前記主記憶複写は、部分複写を含むことを特徴とする請求項2記載のフォールトトレラントシステム。
  4. 前記複数のステートは、
    前記複数のシステムのうちサービスを提供するシステムに組み込まれている状態を示すオンライン系ステートと、
    前記サービスを提供するシステムから切り離されている状態を示すオフライン系ステートと、
    エラー検出により前記サービスを提供するシステムから切り離されている状態を示すフォールト系ステートとを有することを特徴とする請求項1から3のいずれか1項に記載のフォールトトレラントシステム。
  5. 前記オンライン系ステートは、
    電源投入時に前記プロセッサ部が自他システムで互いに非同期で動作している状態を示すオンライン分離ステートと、
    前記プロセッサ部が前記自他システムで互いに非同期で動作している状態を示すオンライン準備ステートと、
    前記プロセッサ部が前記自他システムで互いに同期して動作し当該プロセッサ部内の主記憶内容をチェックしている状態を示すオンライン同期前ステートと、
    前記プロセッサ部が前記自他システムで互いに同期して動作している状態を示すオンライン同期ステートと、
    前記オンライン同期ステートのときに前記プロセッサ部内のバス上の動作が前記自他システムで互いに不一致となったときの一時的な状態を示すオンライン非同期ステートとを有し、
    前記オフライン系ステートは、
    前記電源投入時に前記プロセッサ部が前記自他システムで互いに非同期で動作している状態を示し前記オンライン分離ステートと対を成すオフライン分離ステートと、
    前記プロセッサ部が前記自他システムで互いに非同期で動作している状態を示し前記オンライン準備ステートと対を成すオフラインステートと、
    前記自他システム間で前記プロセッサ部の主記憶複写を実行し当該プロセッサ部が前記自他システムで互いに非同期で動作している状態を示すオフライン複写ステートと、
    前記プロセッサ部内のバス上の動作が前記自他システムで互いに不一致となったときに前記システムから切り離された状態を示すオフライン前ステートとを有することを特徴とする請求項4記載のフォールトトレラントシステム。
  6. 互いに同一のプロセッサ部及び入出力部を有する複数のシステムを備えたフォールトトレラントシステムで用いる制御装置であって、
    前記複数のシステムによるフォールトトレラント用のエラー処理、同期化処理、及び再同期化処理を行うための複数のシステム動作をこれに対応する複数のステートとして所定のイベント信号に関連付けて管理するステート管理手段と、
    前記イベント信号に応じて、前記複数のシステム毎に前記複数のステートを遷移させながら前記複数のシステム動作を選択して前記プロセッサ部に実行させる制御手段とを備えたことを特徴とするフォールトトレラントシステムで用いる制御装置。
  7. 前記複数のシステム動作は、
    自システム内の前記プロセッサ部及び前記入出力部間のアクセス制御と、
    自他システム間における前記プロセッサ部及び前記入出力部間のアクセス制御と、
    前記自他システム間における前記プロセッサ部から前記入出力部へのアクセス比較と、
    前記自他システム間における前記プロセッサ部内のバス上のアクセス比較と、
    前記自他システム間における前記プロセッサ部の主記憶複写とを有することを特徴とする請求項6記載のフォールトトレラントシステムで用いる制御装置。
  8. 前記主記憶複写は、部分複写を含むことを特徴とする請求項7記載のフォールトトレラントシステムで用いる制御装置。
  9. 前記複数のステートは、
    前記複数のシステムのうちサービスを提供するシステムに組み込まれている状態を示すオンライン系ステートと、
    前記サービスを提供するシステムから切り離されている状態を示すオフライン系ステートと、
    エラー検出により前記サービスを提供するシステムから切り離されている状態を示すフォールト系ステートとを有することを特徴とする請求項6から8のいずれか1項に記載のフォールトトレラントシステムで用いる制御装置。
  10. 前記オンライン系ステートは、
    電源投入時に前記プロセッサ部が自他システムで互いに非同期で動作している状態を示すオンライン分離ステートと、
    前記プロセッサ部が前記自他システムで互いに非同期で動作している状態を示すオンライン準備ステートと、
    前記プロセッサ部が前記自他システムで互いに同期して動作し当該プロセッサ部内の主記憶内容をチェックしている状態を示すオンライン同期前ステートと、
    前記プロセッサ部が前記自他システムで互いに同期して動作している状態を示すオンライン同期ステートと、
    前記オンライン同期ステートのときに前記プロセッサ部内のバス上の動作が前記自他システムで互いに不一致となったときの一時的な状態を示すオンライン非同期ステートとを有し、
    前記オフライン系ステートは、
    前記電源投入時に前記プロセッサ部が前記自他システムで互いに非同期で動作している状態を示し前記オンライン分離ステートと対を成すオフライン分離ステートと、
    前記プロセッサ部が前記自他システムで互いに非同期で動作している状態を示し前記オンライン準備ステートと対を成すオフラインステートと、
    前記自他システム間で前記プロセッサ部の主記憶複写を実行し当該プロセッサ部が前記自他システムで互いに非同期で動作している状態を示すオフライン複写ステートと、
    前記プロセッサ部内のバス上の動作が前記自他システムで互いに不一致となったときに前記システムから切り離された状態を示すオフライン前ステートとを有することを特徴とする請求項9記載のフォールトトレラントシステムで用いる制御装置。
  11. 互いに同一のプロセッサ部及び入出力部を有する複数のシステムを備えたフォールトトレラントシステムの動作方法であって、
    前記複数のシステムによるフォールトトレラント用のエラー処理、同期化処理、及び再同期化処理を行うための複数のシステム動作をこれに対応する複数のステートとして所定のイベント信号に関連付けて管理するステップと、
    前記イベント信号に応じて、前記複数のシステム毎に前記複数のステートを遷移させながら前記複数のシステム動作を選択して前記プロセッサ部に実行させるステップとを備えたことを特徴とするフォールトトレラントシステムの動作方法。
  12. 前記複数のシステム動作は、
    自システム内の前記プロセッサ部及び前記入出力部間のアクセス制御と、
    自他システム間における前記プロセッサ部及び前記入出力部間のアクセス制御と、
    前記自他システム間における前記プロセッサ部から前記入出力部へのアクセス比較と、
    前記自他システム間における前記プロセッサ部内のバス上のアクセス比較と、
    前記自他システム間における前記プロセッサ部の主記憶複写とを有することを特徴とする請求項11記載のフォールトトレラントシステムの動作方法。
  13. 前記主記憶複写は、部分複写を含むことを特徴とする請求項12記載のフォールトトレラントシステムの動作方法。
  14. 前記複数のステートは、
    前記複数のシステムのうちサービスを提供するシステムに組み込まれている状態を示すオンライン系ステートと、
    前記サービスを提供するシステムから切り離されている状態を示すオフライン系ステートと、
    エラー検出により前記サービスを提供するシステムから切り離されている状態を示すフォールト系ステートとを有することを特徴とする請求項11から13のいずれか1項に記載のフォールトトレラントシステムの動作方法。
  15. 前記オンライン系ステートは、
    電源投入時に前記プロセッサ部が自他システムで互いに非同期で動作している状態を示すオンライン分離ステートと、
    前記プロセッサ部が前記自他システムで互いに非同期で動作している状態を示すオンライン準備ステートと、
    前記プロセッサ部が前記自他システムで互いに同期して動作し当該プロセッサ部内の主記憶内容をチェックしている状態を示すオンライン同期前ステートと、
    前記プロセッサ部が前記自他システムで互いに同期して動作している状態を示すオンライン同期ステートと、
    前記オンライン同期ステートのときに前記プロセッサ部内のバス上の動作が前記自他システムで互いに不一致となったときの一時的な状態を示すオンライン非同期ステートとを有し、
    前記オフライン系ステートは、
    前記電源投入時に前記プロセッサ部が前記自他システムで互いに非同期で動作している状態を示し前記オンライン分離ステートと対を成すオフライン分離ステートと、
    前記プロセッサ部が前記自他システムで互いに非同期で動作している状態を示し前記オンライン準備ステートと対を成すオフラインステートと、
    前記自他システム間で前記プロセッサ部の主記憶複写を実行し当該プロセッサ部が前記自他システムで互いに非同期で動作している状態を示すオフライン複写ステートと、
    前記プロセッサ部内のバス上の動作が前記自他システムで互いに不一致となったときに前記システムから切り離された状態を示すオフライン前ステートとを有することを特徴とする請求項14記載のフォールトトレラントシステムの動作方法。
  16. 互いに同一のプロセッサ部及び入出力部を有する複数のシステムを備えたフォールトトレラントシステムの動作プログラムであって、
    前記複数のシステムによるフォールトトレラント用のエラー処理、同期化処理、及び再同期化処理を行うための複数のシステム動作をこれに対応する複数のステートとして所定のイベント信号に関連付けて管理するステップと、
    前記イベント信号に応じて、前記複数のシステム毎に前記複数のステートを遷移させながら前記複数のシステム動作を選択して前記プロセッサ部に実行させるステップとをコンピュータに実行させることを特徴とするフォールトトレラントシステムの動作プログラム。
  17. 前記複数のシステム動作は、
    自システム内の前記プロセッサ部及び前記入出力部間のアクセス制御と、
    自他システム間における前記プロセッサ部及び前記入出力部間のアクセス制御と、
    前記自他システム間における前記プロセッサ部から前記入出力部へのアクセス比較と、
    前記自他システム間における前記プロセッサ部内のバス上のアクセス比較と、
    前記自他システム間における前記プロセッサ部の主記憶複写とを有することを特徴とする請求項16記載のフォールトトレラントシステムの動作プログラム。
  18. 前記主記憶複写は、部分複写を含むことを特徴とする請求項17記載のフォールトトレラントシステムの動作プログラム。
  19. 前記複数のステートは、
    前記複数のシステムのうちサービスを提供するシステムに組み込まれている状態を示すオンライン系ステートと、
    前記サービスを提供するシステムから切り離されている状態を示すオフライン系ステートと、
    エラー検出により前記サービスを提供するシステムから切り離されている状態を示すフォールト系ステートとを有することを特徴とする請求項16から18のいずれか1項に記載のフォールトトレラントシステムの動作プログラム。
  20. 前記オンライン系ステートは、
    電源投入時に前記プロセッサ部が自他システムで互いに非同期で動作している状態を示すオンライン分離ステートと、
    前記プロセッサ部が前記自他システムで互いに非同期で動作している状態を示すオンライン準備ステートと、
    前記プロセッサ部が前記自他システムで互いに同期して動作し当該プロセッサ部内の主記憶内容をチェックしている状態を示すオンライン同期前ステートと、
    前記プロセッサ部が前記自他システムで互いに同期して動作している状態を示すオンライン同期ステートと、
    前記オンライン同期ステートのときに前記プロセッサ部内のバス上の動作が前記自他システムで互いに不一致となったときの一時的な状態を示すオンライン非同期ステートとを有し、
    前記オフライン系ステートは、
    前記電源投入時に前記プロセッサ部が前記自他システムで互いに非同期で動作している状態を示し前記オンライン分離ステートと対を成すオフライン分離ステートと、
    前記プロセッサ部が前記自他システムで互いに非同期で動作している状態を示し前記オンライン準備ステートと対を成すオフラインステートと、
    前記自他システム間で前記プロセッサ部の主記憶複写を実行し当該プロセッサ部が前記自他システムで互いに非同期で動作している状態を示すオフライン複写ステートと、
    前記プロセッサ部内のバス上の動作が前記自他システムで互いに不一致となったときに前記システムから切り離された状態を示すオフライン前ステートとを有することを特徴とする請求項19記載のフォールトトレラントシステムの動作プログラム。
JP2004369380A 2004-12-21 2004-12-21 フォールトトレラントシステム、これで用いる制御装置、動作方法、及び動作プログラム Pending JP2006178616A (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2004369380A JP2006178616A (ja) 2004-12-21 2004-12-21 フォールトトレラントシステム、これで用いる制御装置、動作方法、及び動作プログラム
CNA2005101215764A CN1804811A (zh) 2004-12-21 2005-12-19 容错系统及其中所使用的控制装置、动作方法
EP05027906A EP1675003A3 (en) 2004-12-21 2005-12-20 Fault tolerant system and controller, operation method, and operation program used in the fault tolerant system
CA002531092A CA2531092A1 (en) 2004-12-21 2005-12-20 Fault tolerant system and controller, operation method, and operation program used in the fault tolerant system
US11/311,338 US7519856B2 (en) 2004-12-21 2005-12-20 Fault tolerant system and controller, operation method, and operation program used in the fault tolerant system
AU2005246986A AU2005246986A1 (en) 2004-12-21 2005-12-21 Fault tolerant system and controller, operation method, and operation program used in the fault tolerant system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004369380A JP2006178616A (ja) 2004-12-21 2004-12-21 フォールトトレラントシステム、これで用いる制御装置、動作方法、及び動作プログラム

Publications (1)

Publication Number Publication Date
JP2006178616A true JP2006178616A (ja) 2006-07-06

Family

ID=36018211

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004369380A Pending JP2006178616A (ja) 2004-12-21 2004-12-21 フォールトトレラントシステム、これで用いる制御装置、動作方法、及び動作プログラム

Country Status (6)

Country Link
US (1) US7519856B2 (ja)
EP (1) EP1675003A3 (ja)
JP (1) JP2006178616A (ja)
CN (1) CN1804811A (ja)
AU (1) AU2005246986A1 (ja)
CA (1) CA2531092A1 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008225752A (ja) * 2007-03-12 2008-09-25 Nec Corp フォールトトレラントコンピュータ、フォールトトレラントコンピュータにおける同期制御方法
JP2009098988A (ja) * 2007-10-18 2009-05-07 Nec Computertechno Ltd フォルトトレラントコンピュータシステム
JP2009205630A (ja) * 2008-02-29 2009-09-10 Nec Corp フォールトトレラントサーバ、フルバックアップ方法、およびフルバックアッププログラム
JP2010092105A (ja) * 2008-10-03 2010-04-22 Fujitsu Ltd 同期制御装置,情報処理装置及び同期管理方法
JP2010218370A (ja) * 2009-03-18 2010-09-30 Nec Corp フォールトトレラントシステム
JP2015184866A (ja) * 2014-03-24 2015-10-22 日本電気株式会社 フォールトトレラントサーバ
JP2016115239A (ja) * 2014-12-17 2016-06-23 日本電気株式会社 フォールトトレラントシステム、フォールトトレラント方法、及び、プログラム
JP2016170577A (ja) * 2015-03-12 2016-09-23 日本電気株式会社 フォールトトレラントサーバおよび同期化方法、並びにコンピュータ・プログラム
US9477559B2 (en) 2013-09-27 2016-10-25 Nec Corporation Control device, control method and recording medium storing program thereof

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004025469A1 (en) * 2002-09-10 2004-03-25 Union Switch & Signal, Inc. Hot standby method and apparatus
US7496786B2 (en) * 2006-01-10 2009-02-24 Stratus Technologies Bermuda Ltd. Systems and methods for maintaining lock step operation
US8370423B2 (en) * 2006-06-16 2013-02-05 Microsoft Corporation Data synchronization and sharing relationships
US20080109464A1 (en) * 2006-11-06 2008-05-08 Microsoft Corporation Extending Clipboard Augmentation
US8453066B2 (en) 2006-11-06 2013-05-28 Microsoft Corporation Clipboard augmentation with references
US8020112B2 (en) * 2006-11-06 2011-09-13 Microsoft Corporation Clipboard augmentation
US8751442B2 (en) 2007-02-12 2014-06-10 Microsoft Corporation Synchronization associated duplicate data resolution
US7933296B2 (en) * 2007-03-02 2011-04-26 Microsoft Corporation Services for data sharing and synchronization
US7950014B2 (en) * 2007-06-01 2011-05-24 Microsoft Corporation Detecting the ready state of a user interface element
US8296671B2 (en) 2008-05-01 2012-10-23 Microsoft Corporation Enabling access to rich data by intercepting paste operations
US9665377B2 (en) 2011-07-20 2017-05-30 Nxp Usa, Inc. Processing apparatus and method of synchronizing a first processing unit and a second processing unit
JP5760847B2 (ja) * 2011-08-22 2015-08-12 日本電気株式会社 情報処理装置、情報処理システム、情報処理装置の異常兆候検出方法、及び異常兆候検出プログラム
CN102364448B (zh) * 2011-09-19 2014-01-15 浪潮电子信息产业股份有限公司 一种计算机故障管理系统的容错方法
CN103455393A (zh) * 2013-09-25 2013-12-18 浪潮电子信息产业股份有限公司 一种基于进程冗余的容错系统设计方法
CN104597850A (zh) * 2013-10-30 2015-05-06 北京精密机电控制设备研究所 用于三冗余伺服控制器的数据交互及同步的方法和装置
CN103593251A (zh) * 2013-11-07 2014-02-19 浪潮电子信息产业股份有限公司 一种基于进程冗余的容错系统及其设计方法
CN104007657B (zh) * 2013-12-13 2017-06-13 许继集团有限公司 一种三重冗余系统与两重冗余系统的对接装置及方法
WO2016016135A1 (de) 2014-07-30 2016-02-04 Siemens Aktiengesellschaft Verfahren und system zum zuweisen einer steuerberechtigung zu einem rechner
US10248156B2 (en) * 2015-03-20 2019-04-02 Renesas Electronics Corporation Data processing device
CN104810808B (zh) * 2015-04-03 2017-10-31 南京国电南自电网自动化有限公司 一种多总线保护出口仲裁容错方法
US10063376B2 (en) 2015-10-01 2018-08-28 International Business Machines Corporation Access control and security for synchronous input/output links
US10120818B2 (en) 2015-10-01 2018-11-06 International Business Machines Corporation Synchronous input/output command
US9710171B2 (en) * 2015-10-01 2017-07-18 International Business Machines Corporation Synchronous input/output commands writing to multiple targets
JP6083480B1 (ja) * 2016-02-18 2017-02-22 日本電気株式会社 監視装置、フォールトトレラントシステムおよび方法
JP2017188072A (ja) * 2016-04-05 2017-10-12 ルネサスエレクトロニクス株式会社 半導体装置及びアクセス管理方法
US10474532B1 (en) * 2017-07-28 2019-11-12 EMC IP Holding Company LLC Automatic fault tolerance in a computing system providing concurrent access to shared computing resource objects
CN111581003B (zh) * 2020-04-29 2021-12-28 浙江大学 一种全硬件双核锁步处理器容错系统
US11556394B2 (en) * 2021-05-14 2023-01-17 Nxp B.V. System and method for controlling access to shared resource in system-on-chips

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS615350A (ja) 1984-06-18 1986-01-11 Toshiba Corp 計算機
AU616213B2 (en) * 1987-11-09 1991-10-24 Tandem Computers Incorporated Method and apparatus for synchronizing a plurality of processors
US5163148A (en) * 1989-08-11 1992-11-10 Digital Equipment Corporation File backup system for producing a backup copy of a file which may be updated during backup
US6157967A (en) * 1992-12-17 2000-12-05 Tandem Computer Incorporated Method of data communication flow control in a data processing system using busy/ready commands
US5838894A (en) * 1992-12-17 1998-11-17 Tandem Computers Incorporated Logical, fail-functional, dual central processor units formed from three processor units
JPH0723079A (ja) 1993-07-01 1995-01-24 Fujitsu Ltd 二重化システムの運用系決定方法
CA2177850A1 (en) * 1993-12-01 1995-06-08 Thomas Dale Bissett Fault resilient/fault tolerant computing
JP3319146B2 (ja) 1994-05-13 2002-08-26 富士電機株式会社 二重化制御システムのデータ同期転写方法
JPH08221285A (ja) 1995-02-09 1996-08-30 Nec Eng Ltd 情報処理システム
JPH08241286A (ja) 1995-03-06 1996-09-17 Nec Eng Ltd マルチ情報処理システムのクロック同期化システム
US5887146A (en) 1995-08-14 1999-03-23 Data General Corporation Symmetric multiprocessing computer with non-uniform memory access architecture
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
JPH10187472A (ja) 1996-12-19 1998-07-21 Fujitsu Ltd データ処理システム
US6138198A (en) * 1998-06-15 2000-10-24 Sun Microsystems, Inc. Processor bridge with dissimilar data registers which is operable to disregard data differences for dissimilar data write accesses
JP2000298594A (ja) 1999-04-13 2000-10-24 Nec Corp フォールトトレラント制御方法および冗長コンピュータシステム
US6971043B2 (en) 2001-04-11 2005-11-29 Stratus Technologies Bermuda Ltd Apparatus and method for accessing a mass storage device in a fault-tolerant server
US6928583B2 (en) 2001-04-11 2005-08-09 Stratus Technologies Bermuda Ltd. Apparatus and method for two computing elements in a fault-tolerant server to execute instructions in lockstep
JP3982353B2 (ja) * 2002-07-12 2007-09-26 日本電気株式会社 フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム
JP3821806B2 (ja) 2002-08-30 2006-09-13 エヌイーシーコンピュータテクノ株式会社 フォールトトレラントコンピュータ、そのトランザクション同期制御方法及びプログラム
US7178058B2 (en) * 2002-08-30 2007-02-13 Nec Corporation Fault tolerant computer and transaction synchronization control method
JP4492035B2 (ja) 2003-04-21 2010-06-30 日本電気株式会社 データ処理装置
US20060178615A1 (en) * 2003-05-30 2006-08-10 Ronborg Steen M Allergy tester
JP4168403B2 (ja) * 2004-12-21 2008-10-22 日本電気株式会社 フォールトトレラントシステム、これで用いる制御装置、アクセス制御方法、及び制御プログラム

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008225752A (ja) * 2007-03-12 2008-09-25 Nec Corp フォールトトレラントコンピュータ、フォールトトレラントコンピュータにおける同期制御方法
JP4640359B2 (ja) * 2007-03-12 2011-03-02 日本電気株式会社 フォールトトレラントコンピュータ、フォールトトレラントコンピュータにおける同期制御方法
JP2009098988A (ja) * 2007-10-18 2009-05-07 Nec Computertechno Ltd フォルトトレラントコンピュータシステム
JP2009205630A (ja) * 2008-02-29 2009-09-10 Nec Corp フォールトトレラントサーバ、フルバックアップ方法、およびフルバックアッププログラム
JP2010092105A (ja) * 2008-10-03 2010-04-22 Fujitsu Ltd 同期制御装置,情報処理装置及び同期管理方法
JP2010218370A (ja) * 2009-03-18 2010-09-30 Nec Corp フォールトトレラントシステム
US8140893B2 (en) 2009-03-18 2012-03-20 Nec Corporation Fault-tolerant system
US9477559B2 (en) 2013-09-27 2016-10-25 Nec Corporation Control device, control method and recording medium storing program thereof
JP2015184866A (ja) * 2014-03-24 2015-10-22 日本電気株式会社 フォールトトレラントサーバ
US9785524B2 (en) 2014-03-24 2017-10-10 Nec Corporation Fault tolerant server
JP2016115239A (ja) * 2014-12-17 2016-06-23 日本電気株式会社 フォールトトレラントシステム、フォールトトレラント方法、及び、プログラム
JP2016170577A (ja) * 2015-03-12 2016-09-23 日本電気株式会社 フォールトトレラントサーバおよび同期化方法、並びにコンピュータ・プログラム

Also Published As

Publication number Publication date
EP1675003A2 (en) 2006-06-28
US7519856B2 (en) 2009-04-14
US20060150004A1 (en) 2006-07-06
AU2005246986A1 (en) 2006-07-06
CN1804811A (zh) 2006-07-19
EP1675003A3 (en) 2010-02-24
CA2531092A1 (en) 2006-06-21

Similar Documents

Publication Publication Date Title
JP2006178616A (ja) フォールトトレラントシステム、これで用いる制御装置、動作方法、及び動作プログラム
JP3982353B2 (ja) フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム
US7493517B2 (en) Fault tolerant computer system and a synchronization method for the same
US7441150B2 (en) Fault tolerant computer system and interrupt control method for the same
US9195553B2 (en) Redundant system control method
US20060150006A1 (en) Securing time for identifying cause of asynchronism in fault-tolerant computer
JPH0934809A (ja) 高信頼化コンピュータシステム
KR100258079B1 (ko) 밀결합 결함 허용 시스템에서 메모리 버스 확장에 의한 동시 쓰기 이중화 장치
JP5287974B2 (ja) 演算処理システム、再同期方法、およびファームプログラム
JP3774826B2 (ja) 情報処理装置
JPH06242979A (ja) 二重化コンピュータ装置
JP2001175545A (ja) サーバシステムおよび障害診断方法ならびに記録媒体
CN117827544B (zh) 热备份系统、方法、电子设备及存储介质
JP2013020566A (ja) 二重化情報処理システム
JPH10240555A (ja) フォールト・トレラント・データ処理システムとその方 法
JP2815730B2 (ja) アダプタ及びコンピュータシステム
JPH06187184A (ja) 2重系システムの入出力制御装置
JPH08278950A (ja) 多重化コンピュータシステムおよび障害回復方法
JPH06124242A (ja) 二重化共有メモリ等価性保証方式

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070802

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070813

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071012

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080416

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080417