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

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

Info

Publication number
JP4168403B2
JP4168403B2 JP2004369379A JP2004369379A JP4168403B2 JP 4168403 B2 JP4168403 B2 JP 4168403B2 JP 2004369379 A JP2004369379 A JP 2004369379A JP 2004369379 A JP2004369379 A JP 2004369379A JP 4168403 B2 JP4168403 B2 JP 4168403B2
Authority
JP
Japan
Prior art keywords
access
access data
systems
asynchronous
synchronous
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.)
Expired - Fee Related
Application number
JP2004369379A
Other languages
English (en)
Other versions
JP2006178615A (ja
Inventor
文俊 水谷
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 JP2004369379A priority Critical patent/JP4168403B2/ja
Priority to CN200510121729.5A priority patent/CN1818882A/zh
Priority to EP05027907A priority patent/EP1675004A3/en
Priority to CA002530921A priority patent/CA2530921A1/en
Priority to US11/311,151 priority patent/US7539897B2/en
Priority to AU2005246984A priority patent/AU2005246984A1/en
Publication of JP2006178615A publication Critical patent/JP2006178615A/ja
Application granted granted Critical
Publication of JP4168403B2 publication Critical patent/JP4168403B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/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

Description

本発明は、フォールトトレラントシステム、これで用いる制御装置、アクセス制御方法、及び制御プログラムに係り、とくにコンピュータシステムにおけるフォールトトレラント実現のためのプロセッサからIOデバイスへのアクセス制御に関する。
従来、コンピュータシステムにおいて、そのコンピュータハードウェアを構成するCPU(Central Processing Unit)、メモリ、PCI(Peripheral Component Interconnect)、ディスク、電源等、全てのコンポーネントを多重化(例えば、二重化又は三重化)して、いずれかのコンポーネントに障害が発生してもコンピュータシステムを停止することなく連続稼動が可能なフォールトトレラントコンピュータシステム(以下、「フォールトトレラントシステム」と呼ぶ)が知られている。
フォールトトレラントシステムでは、多重化された複数のCPU(プロセッサ)が常に同期を取りながら同じタイミングで同一動作を実行する(このことを「ロックステップ同期」と言う)。このようにロックステップ同期で同一動作を実行している複数のCPUでは、あるCPUに障害が発生した場合でも、残りのCPUが正常稼動を続ける。このため、フォールトトレラントシステムは、CPUにより実行されるオペレーティングシステム(OS)やアプリケーションソフトウェア等のソフトウェア動作には影響を与えず、稼動し続けることができる。
このようなフォールトトレラントシステムの先行技術として、特許文献1にはロックステップ同期での命令実行のための装置及び方法が、また特許文献2には、フォールトトレラントサーバにおける大規模記録デバイスへのアクセス装置及び方法が、特許文献3には、ロックステップ同期により動作するプロセッサを含む複数の処理セット間のメモリ部分複写による高速再同期化技術が、特許文献4には、2つのシステム間でロックステップ同期で同一命令を同時に処理するCPUと入出力(IO)デバイスとの間でパケットを自他システムにルーティングするルータを持つ構成がそれぞれ開示されている。
米国特許出願公開第2002/0152418号明細書 米国特許出願公開第2002/0152419号明細書 米国特許第5953742号明細書 米国特許第5751932号明細書
前述したフォールトトレラントシステムでは、複数のCPUが非同期状態のときは、各CPUから発行されるアクセスを個別のアクセスとして処理すると共に、複数のCPUがロックステップ同期状態にある場合は、各CPUから発行されるアクセスを単一のアクセスとして処理することが望まれている。しかし、上述した従来例にあっては、こういったCPUの同期及び非同期状態に応じたアクセス処理を実現することを必ずしも意識したものではない。
本発明は、このような従来の事情を考慮してなされたもので、フォールトトレラントシステムにおいて、プロセッサの同期・非同期状態に応じたアクセス処理を実現することを目的とする。
上記目的を達成するため、本発明に係るフォールトトレラントシステムは、互いに同一のコンピュータハードウェアで構成された複数のシステムを備えたフォールトトレラントシステムであって、前記複数のシステムは、自他システム間においてロックステップ同期の状態及び非同期の状態で動作可能なプロセッサ部と、前記プロセッサ部に接続される入出力部と、前記プロセッサ部及び前記入出力部間に接続される制御部と、前記制御部を介して前記自他システム間を互いに接続する信号伝送路とを有し、前記制御部は、前記プロセッサ部から前記入出力部へアクセスされるアクセスデータに、アクセス元及びアクセス先の識別情報と、前記プロセッサ部が前記ロックステップ同期の状態にあるときに発行された同期アクセスデータか前記非同期の状態にあるときに発行された非同期アクセスデータかの同期状態情報とを含むタグ情報を付与するタグ付与手段と、前記プロセッサ部からのアクセスデータを前記自他システム毎に個別に保持するバッファ手段と、前記バッファ手段内の前記アクセスデータに付与されたタグ情報に基づいて当該アクセスデータが前記同期アクセスデータか前記非同期アクセスデータかを判定する同期判定手段と、前記アクセスデータが前記同期アクセスデータのときに、前記複数のシステムの内、いずれか1つのシステムからのアクセスデータを前記入出力部に出力し、残りのシステムからのアクセスデータを破棄し、前記アクセスデータが前記非同期アクセスデータのときに、前記複数のシステムからのアクセスデータを個別に処理して前記入出力部に出力する処理手段とを備えたことを特徴とする。
本発明において、前記同期アクセスデータか前記非同期アクセスデータかの同期状態情報は、前記アクセス元の識別情報と一体に組み合わせて構成され、前記同期アクセスデータである場合、前記アクセス元の識別情報が見かけ上全て同一となるよう設定され、前記非同期アクセスデータである場合、前記アクセス元の識別情報が個々に設定されてもよい。
本発明に係るフォールトトレラントシステムで用いる制御装置は、互いに同一のプロセッサ部及び入出力部を有する複数のシステムを備えたフォールトトレラントシステムで用いる制御装置であって、前記プロセッサ部から前記入出力部へアクセスされるアクセスデータに、アクセス元及びアクセス先の識別情報と、前記プロセッサ部が自他システム間においてロックステップ同期の状態にあるときに発行された同期アクセスデータか非同期の状態にあるときに発行された非同期アクセスデータかの同期状態情報とを含むタグ情報を付与するタグ付与手段と、前記プロセッサ部からのアクセスデータを前記自他システム毎に個別に保持するバッファ手段と、前記バッファ手段内の前記アクセスデータに付与されたタグ情報に基づいて当該アクセスデータが前記同期アクセスデータか前記非同期アクセスデータかを判定する同期判定手段と、前記アクセスデータが前記同期アクセスデータのときに、前記複数のシステムの内、いずれか1つのシステムからのアクセスデータを前記入出力部に出力し、残りのシステムからのアクセスデータを破棄し、前記アクセスデータが前記非同期アクセスデータのときに、前記複数のシステムからのアクセスデータを個別に処理して前記入出力部に出力する処理手段とを備えたことを特徴とする。
本発明に係るフォールトトレラントシステムで用いるアクセス制御方法は、互いに同一のプロセッサ部入出力部、及び制御部を有する複数のシステムを備えたフォールトトレラントシステムで用いるアクセス制御方法であって、前記制御部が、前記プロセッサ部から前記入出力部へアクセスされるアクセスデータに、アクセス元及びアクセス先の識別情報と、前記プロセッサ部が自他システム間においてロックステップ同期の状態にあるときに発行された同期アクセスデータか非同期の状態にあるときに発行された非同期アクセスデータかの同期状態情報とを含むタグ情報を付与前記制御部が、前記プロセッサ部からのアクセスデータを前記自他システム毎に個別にバッファ手段内に保持前記制御部が、前記バッファ手段内の前記アクセスデータに付与されたタグ情報に基づいて当該アクセスデータが前記同期アクセスデータか前記非同期アクセスデータかを判定前記制御部が、前記アクセスデータが前記同期アクセスデータのときに、前記複数のシステムの内、いずれか1つのシステムからのアクセスデータを前記入出力部に出力し、残りのシステムからのアクセスデータを破棄し、前記アクセスデータが前記非同期アクセスデータのときに、前記複数のシステムからのアクセスデータを個別に処理して前記入出力部に出力することを特徴とする。
本発明に係るフォールトトレラントシステムで用いる制御プログラムは、 互いに同一のプロセッサ部入出力部、及び制御部を有する複数のシステムを備えたフォールトトレラントシステムで用いる制御プログラムであって、前記制御部が、前記プロセッサ部から前記入出力部へアクセスされるアクセスデータに、アクセス元及びアクセス先の識別情報と、前記プロセッサ部が自他システム間においてロックステップ同期の状態にあるときに発行された同期アクセスデータか非同期の状態にあるときに発行された非同期アクセスデータかの同期状態情報とを含むタグ情報を付与するステップと、前記制御部が、前記プロセッサ部からのアクセスデータを前記自他システム毎に個別にバッファ手段内に保持するステップと、前記制御部が、前記バッファ手段内の前記アクセスデータに付与されたタグ情報に基づいて当該アクセスデータが前記同期アクセスデータか前記非同期アクセスデータかを判定するステップと、前記制御部が、前記アクセスデータが前記同期アクセスデータのときに、前記複数のシステムの内、いずれか1つのシステムからのアクセスデータを前記入出力部に出力し、残りのシステムからのアクセスデータを破棄し、前記アクセスデータが前記非同期アクセスデータのときに、前記複数のシステムからのアクセスデータを個別に処理して前記入出力部に出力するステップとをコンピュータに実行させることを特徴とする。
本発明によれば、フォールトトレラントシステムにおいて、プロセッサ部の同期・非同期状態に応じたアクセス処理を実現することができる。
次に、本発明に係るフォールトトレラントシステム、これで用いる制御装置、アクセス制御方法、及び制御プログラムを実施するための最良の形態について図面を参照して詳細に説明する。
図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)と共にフォールトトレラントシステム内のボードコントローラ(制御装置)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デバイス12とを接続するための複数(図中の例では2つ)のIOコントローラ121、121と、自他システム間でCPUサブシステム110、110の二重化のため、両メモリ112、112の主記憶領域の内容を複写するためのDMA(Direct Memory Access)コントローラ及び両システム100、100間での情報共有を行うための共有メモリやシステム間通信機能を持つ共有リソースコントローラを含むDMA/共有リソースコントローラ(図示しない)とを有する。
2つのIOコントローラ121、121の一方には、IOブリッジ122を介して図示しないハードディスクドライブ(HDD)等のIOデバイス123が、またその他方には、レガシーIOブリッジ124を介してROM125がそれぞれ接続されている。各IOコントローラ121、121は、自システムのCPUサブシステム110と、他システムのCPUサブシステム110からそれぞれアクセス可能となっている。IOブリッジ12は、例えば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)ポート等のインターフェースブリッジが例示できる。
ここで、本実施例のフォールトトレラント実現のためのアクセス制御の原理について説明する。
本実施例は、両システム100、100の各CPU111、111がロックステップ同期を取りながら同じタイミングで動作する冗長CPU構成において、IOデバイス123を冗長CPU111、111間で共有するフォールトトレラントシステムによる、CPU111からIOデバイス123へのアクセス制御に関するものである。ここで、ロックステップ同期しているときの各CPU111、111からIOデバイス123へのアクセスは、全て同一であり、実質1つのCPU111からのアクセスと等価となる。
図2は、ロックステップ同期前の状態で#0システムのCPU111から#0システムのIOデバイス123へのアクセス動作、図3は、ロックステップ同期前の状態で#1システムのCPU111から#0システムのIOデバイス123へのアクセス動作、図4は、ロックステップ同期中のアクセス動作をそれぞれ説明するものである。
図2及び図3に示すように、ロックステップ同期前の状態では、CPU111がIOデバイス123にアクセスする場合、冗長化のための各CPU111は全く異なる動作であるため、IOデバイス123はそれぞれのCPU111からのアクセス要求A1、A3に対応して、異なる内容あるいは異なるタイミングでアクセス応答(レスポンス)A2、A5を返すことになる。
一方、図4に示すように、ロックステップ同期動作の状態になると、複数のCPU111からIOデバイス123へのアクセス要求は単一のアクセス要求とし、これに対するIOデバイス123からの単一のアクセス応答(レスポンス)を全てのCPU111に返す必要がある。
即ち、フォールトトレラントシステムにおけるロックステップ同期前の状態からロックステップ同期動作の状態へ移行する際の移行イベントによって、複数のCPU111からのアクセスは、それぞれ複数のCPU111による個別のアクセスから、全CPU111によるアクセスが単一のアクセスとなるように処理を変更しなければならない。そして、フォールトトレラントシステムにおけるCPU111からのアクセス比較処理においては、各CPU111のアクセスを単一のアクセスとして処理しなければならない場合のみ、各CPU111の出力の比較を実施しなければならない。
そこで、本実施例では、以上のようなCPU111の同期・非同期状態に応じたアクセス処理を実現するために、各々のアクセスパケットに、アクセス元及びアクセス先のID(Source ID及びDestination ID)タグに加え、アクセスが発行されたタイミングで同期状態であったか非同期状態であったかを判別するタグを追加する。この場合、同期状態の判定は、各システム100、100で管理されているステート情報によって得る。
図5は、上記アクセス制御を行うためのフォールトトレラントシステムの主要部構成を示す。
図5に示すフォールトトレラントシステムには、機能上、メモリコントローラ113内に本発明のタグ付与手段及びこれに対応する処理ステップを実行する機能を有するCPUバスI/F(インターフェース)ルータ(以下、単に「ルータ」と略称する)114が、FTコントローラ130内に、本発明の同期判定手段・処理手段及びこれらに対応する処理ステップを実行する機能を有する各部、即ちステート管理部131、タイムアウトコントロール部132、及びアクセス比較部133が、IOコントローラ121内にIO I/F121aがそれぞれ設けられている。
ルータ114は、CPUサブシステム110内のCPUバスI/Fと、メモリ112の主記憶領域及び外部IOデバイス123との間でアクセスされるアクセスパケットをルーティングする。また、このルータ114は、アクセスパケットが読み取り要求(リードリクエスト)等の応答(レスポンス)を要求する場合、その応答先を明示するためのタグ情報を各アクセスパケットに付与する。
アクセス比較部133は、自システムのCPU111からルータ114を経由して送られてくるアクセスパケットを一時的に格納するバッファ134と、他システムのCPU111からルータ114を経由して送られてくるアクセスパケットを一時的に格納するバッファ135と、両バッファ134、135内のアクセスパケットに付与されたタグ情報をチェックしてアクセスパケットが両CPU111、111の同期状態で発行された同期アクセスか、それとも非同期状態で発行された非同期アクセスかを判定するタグチェック部136と、両バッファ134、135内のアクセスパケットを比較してエラー検出を行う比較部137とを有する。
比較部137は、タグチェック部136により同期アクセスであると判定されたアクセスパケットに関し、アクセス比較結果が一致であれば、一方のシステム100からのアクセスを冗長アクセスとして破棄し、残りの側のシステム100からのアクセスをIO I/F121aに出力する。また、アクセス比較結果が不一致であれば、システム100内に保持されている稼動履歴情報(例えば、サービスを提供しているシステム(制御系、アクティブ系)か、待機しているシステム(待機系、スタンバイ系)かの情報とそれに基づく稼動履歴等)等から予め信頼性の高いシステム100からのアクセスを残し、残りのシステム100からのアクセスを冗長パケットとして破棄する。
タイムアウトコントロール部132は、アクセス比較結果の不一致によるアクセス破棄やIOデバイス123の故障等が原因でCPU111に対して応答を返すパケットがない場合、タイマー機能によって一定時間後にアクセスのアボート応答を行う。
ステート管理部131は、システムの同期状態情報や、CPU111とIOデバイス123間のアクセス可否情報、システムの接続・切り離し情報、システムの信頼性情報を管理する。
IO I/F121aは、システム100と外部IOデバイス123との間のインターフェースとして機能するもので、アクセスパケットの入出力を制御する。
次に、本実施例の動作を説明する。
まず、CPU111からIOデバイス123へのアクセスパケットがCPUバスI/Fルータ114に入力される。このとき、CPUバスI/Fルータ114には、ステート管理部131から出力されるCPU111の同期状態情報を含むステート情報も入力される。
次いで、CPUバスI/Fルータ114にて、CPU111からのアクセスパケットに対してタグ付けが行われる。タグには、アクセスエンドポイントであるアクセス元(Source)を識別するID(identification)情報と、アクセス先(Destination)を識別するID情報のほか、ステート管理部131からのCPU111の同期状態情報が書き込まれる。
ここで、本実施例では、CPU111の同期情報と、アクセスエンドポイントであるアクセス元のID情報とを組み合わせたものが使用される。即ち、#0システムのCPU111と#1システムのCPU111からのアクセス時に付けられるタグは、見かけ上、同期の場合は各CPU111、111間で同一のアクセス元IDコード(Source ID)を、また非同期の場合は各CPU111、111間で個別のアクセス元IDコードを付与するよう設定される。
図6は、アクセスパケットに付与されるタグ情報の内のCPU同期情報付きアクセス元IDコード(Source ID)の設定例を示す。図6の例では、#0システムのCPU111では、同期の場合は、Source ID=Sync CPUに、非同期の場合は、Source ID=CPU 0にそれぞれ設定される。これに対し、#1システムのCPU111では、同期の場合は、#0システムと同一で、Source ID=Sync CPUに、非同期の場合は、#0システムとは異なり、Source ID=CPU 1にそれぞれ設定される。
このようなCPU同期情報付きアクセス元IDコードをもつタグが付与されたアクセスパケットは、FTコントローラ130内のアクセス比較部133に入力される。
図7は、アクセス比較部133の処理を示すフローチャートである。
アクセス比較部133は、CPUバスI/Fルータ114からのアクセスパケットが到着すると(ステップS1)、比較部137前段のバッファ134、135に一旦保持し、保持されたアクセスパケットのタグ情報をタグチェック部136にてチェックし、これによりタグ情報から同期アクセスが非同期アクセスかの判別が行う(ステップS2)。
その結果、非同期アクセスの場合は、アクセス比較部133での比較を行わず、IO I/F121aに向けてアクセスパケットを流す(ステップS7)。
一方、同期アクセスの場合は、他システムのCPU111からの対応するアクセスパケットが到着しているかどうか確認し(ステップS3)、同期アクセスに対応するアクセスパケットが揃うまで、タイムアウトコントロール部132によるタイマーを用いて一定時間待つ(ステップS3:NO、ステップS5:NO)。これにより、一定時間内に対応パケットが揃った時点で(ステップS3:YES)、比較部137にてアクセスパケットの比較を行い(ステップS4)、冗長パケットを破棄して、IO I/F121aに向けて1つのアクセスパケットを流す(ステップS6、S7)。
例えば、両アクセスパケットが一致していれば、一方のシステム100からのアクセスを冗長アクセスとして破棄し、残りの側のシステム100からのアクセスをIO I/F121aに出力する。また、両アクセスパケットが不一致であれば、前述したようにシステム100内に保持されている稼動履歴情報等から予め信頼性の高いシステム100からのアクセスパケットを残して出力し、残りのシステム100からのアクセスを冗長パケットとして破棄する。
一方、上記ステップS3、S5にて一定時間内に同期アクセスに対応するアクセスパケットが揃わず、タイムアウトした場合(ステップS3:NO、ステップS5:YES)、上記ステップS4の処理(アクセスパケット比較)を行わずに、上記ステップS6、S7の処理に移行する。
上記ステップS7にてアクセスパケットがIO I/F121aに出力されると、IO I/F121aは、受け取ったアクセスの応答を返す場合には、各アクセスパケットのアクセス元コード(Source ID)を指定して返す。これにより、アクセス応答が、FTコントローラ130を介して両システム100、100の各ルータ113、113経由で各CPU111、111に送られる。
従って、本実施例によれば、各CPU111、111が非同期状態のときは、各CPU111、111から発行されるアクセスを個別のアクセスとして処理すると共に、各CPU111、111がロックステップ同期状態にある場合は、各CPU111、111から発行されるアクセスを単一のアクセスとして処理することができ、これにより、フォールトトレラントシステムにおいて、CPU111の同期・非同期状態に応じたアクセス処理を実現することが可能になる。
なお、本実施例では、メモリコントローラ113内にルータ114が、FTコントローラ130内にステート管理部131、タイムアウトコントロール部132、及びアクセス比較部133が、IOコントローラ121内にIO I/F121aがそれぞれ配置されているが、これはあくまで機能上の構成であり、同様の機能を達成可能なものであればこれに限らず、他の構成であってもよい。例えば、全ての構成を1つのコントローラ内に配置してもよい。
また、上記実施例では、フォールトトレラントシステムとして二重化コンピュータシステムを例示しているが、本発明はこれに限らず、例えば三重化等、多重化した場合も適用可能である。
本発明の実施例に係るフォールトトレラントシステムの全体構成を示す概略ブロック図である。 ロックステップ同期前の状態で#0システムのCPUから#0システムのIOデバイスへのアクセス動作を説明する図である。 ロックステップ同期前の状態で#1システムのCPUから#0システムのIOデバイスへのアクセス動作を説明する図である。 ロックステップ同期中のアクセス動作を説明する図である。 本発明の実施例に係るフォールトトレラントシステムの主要部構成を示す概略ブロック図である。 アクセスパケットに付与されるタグ中のCPU同期情報付きアクセス元IDコードの設定例を説明する図である。 FTコントローラ内のアクセス比較部によるタグチェックの処理を説明する概略フローチャートである。
符号の説明
110 CPUサブシステム
111 CPU
112 メモリ
113 メモリコントローラ
114 CPUバスI/Fルータ
120 IOサブシステム
121 IOコントローラ
121a IO I/F
122 IOブリッジ
123 IOデバイス
124 レガシーIOブリッジ
125 ROM
130 FTコントローラ
131 ステート管理部
132 タイムアウトコントローラ部
133 アクセス比較部
134、135 バッファ
136 タグチェック部
137 比較部
140 クロスリンク

Claims (8)

  1. 互いに同一のコンピュータハードウェアで構成された複数のシステムを備えたフォールトトレラントシステムであって、
    前記複数のシステムは、
    自他システム間においてロックステップ同期の状態及び非同期の状態で動作可能なプロセッサ部と、
    前記プロセッサ部に接続される入出力部と、
    前記プロセッサ部及び前記入出力部間に接続される制御部と、
    前記制御部を介して前記自他システム間を互いに接続する信号伝送路とを有し、
    前記制御部は、
    前記プロセッサ部から前記入出力部へアクセスされるアクセスデータに、アクセス元及びアクセス先の識別情報と、前記プロセッサ部が前記ロックステップ同期の状態にあるときに発行された同期アクセスデータか前記非同期の状態にあるときに発行された非同期アクセスデータかの同期状態情報とを含むタグ情報を付与するタグ付与手段と、
    前記プロセッサ部からのアクセスデータを前記自他システム毎に個別に保持するバッファ手段と、
    前記バッファ手段内の前記アクセスデータに付与されたタグ情報に基づいて当該アクセスデータが前記同期アクセスデータか前記非同期アクセスデータかを判定する同期判定手段と、
    前記アクセスデータが前記同期アクセスデータのときに、前記複数のシステムの内、いずれか1つのシステムからのアクセスデータを前記入出力部に出力し、残りのシステムからのアクセスデータを破棄し、前記アクセスデータが前記非同期アクセスデータのときに、前記複数のシステムからのアクセスデータを個別に処理して前記入出力部に出力する処理手段とを備えたことを特徴とするフォールトトレラントシステム。
  2. 前記同期アクセスデータか前記非同期アクセスデータかの同期状態情報は、前記アクセス元の識別情報と一体に組み合わせて構成され、前記同期アクセスデータである場合、前記アクセス元の識別情報が見かけ上全て同一となるよう設定され、前記非同期アクセスデータである場合、前記アクセス元の識別情報が個々に設定されることを特徴とする請求項1記載のフォールトトレラントシステム。
  3. 互いに同一のプロセッサ部及び入出力部を有する複数のシステムを備えたフォールトトレラントシステムで用いる制御装置であって、
    前記プロセッサ部から前記入出力部へアクセスされるアクセスデータに、アクセス元及びアクセス先の識別情報と、前記プロセッサ部が自他システム間においてロックステップ同期の状態にあるときに発行された同期アクセスデータか非同期の状態にあるときに発行された非同期アクセスデータかの同期状態情報とを含むタグ情報を付与するタグ付与手段と、
    前記プロセッサ部からのアクセスデータを前記自他システム毎に個別に保持するバッファ手段と、
    前記バッファ手段内の前記アクセスデータに付与されたタグ情報に基づいて当該アクセスデータが前記同期アクセスデータか前記非同期アクセスデータかを判定する同期判定手段と、
    前記アクセスデータが前記同期アクセスデータのときに、前記複数のシステムの内、いずれか1つのシステムからのアクセスデータを前記入出力部に出力し、残りのシステムからのアクセスデータを破棄し、前記アクセスデータが前記非同期アクセスデータのときに、前記複数のシステムからのアクセスデータを個別に処理して前記入出力部に出力する処理手段とを備えたことを特徴とするフォールトトレラントシステムで用いる制御装置。
  4. 前記同期アクセスデータか前記非同期アクセスデータかの同期状態情報は、前記アクセス元の識別情報と一体に組み合わせて構成され、前記同期アクセスデータである場合、前記アクセス元の識別情報が見かけ上全て同一となるよう設定され、前記非同期アクセスデータである場合、前記アクセス元の識別情報が個々に設定されることを特徴とする請求項3記載のフォールトトレラントシステムで用いる制御装置。
  5. 互いに同一のプロセッサ部入出力部、及び制御部を有する複数のシステムを備えたフォールトトレラントシステムで用いるアクセス制御方法であって、
    前記制御部が、前記プロセッサ部から前記入出力部へアクセスされるアクセスデータに、アクセス元及びアクセス先の識別情報と、前記プロセッサ部が自他システム間においてロックステップ同期の状態にあるときに発行された同期アクセスデータか非同期の状態にあるときに発行された非同期アクセスデータかの同期状態情報とを含むタグ情報を付与
    前記制御部が、前記プロセッサ部からのアクセスデータを前記自他システム毎に個別にバッファ手段内に保持
    前記制御部が、前記バッファ手段内の前記アクセスデータに付与されたタグ情報に基づいて当該アクセスデータが前記同期アクセスデータか前記非同期アクセスデータかを判定
    前記制御部が、前記アクセスデータが前記同期アクセスデータのときに、前記複数のシステムの内、いずれか1つのシステムからのアクセスデータを前記入出力部に出力し、残りのシステムからのアクセスデータを破棄し、前記アクセスデータが前記非同期アクセスデータのときに、前記複数のシステムからのアクセスデータを個別に処理して前記入出力部に出力することを特徴とするフォールトトレラントシステムで用いるアクセス制御方法。
  6. 前記同期アクセスデータか前記非同期アクセスデータかの同期状態情報は、前記アクセス元の識別情報と一体に組み合わせて構成され、前記同期アクセスデータである場合、前記アクセス元の識別情報が見かけ上全て同一となるよう設定され、前記非同期アクセスデータである場合、前記アクセス元の識別情報が個々に設定されることを特徴とする請求項5記載のフォールトトレラントシステムで用いるアクセス制御方法。
  7. 互いに同一のプロセッサ部入出力部、及び制御部を有する複数のシステムを備えたフォールトトレラントシステムで用いる制御プログラムであって、
    前記制御部が、前記プロセッサ部から前記入出力部へアクセスされるアクセスデータに、アクセス元及びアクセス先の識別情報と、前記プロセッサ部が自他システム間においてロックステップ同期の状態にあるときに発行された同期アクセスデータか非同期の状態にあるときに発行された非同期アクセスデータかの同期状態情報とを含むタグ情報を付与するステップと、
    前記制御部が、前記プロセッサ部からのアクセスデータを前記自他システム毎に個別にバッファ手段内に保持するステップと、
    前記制御部が、前記バッファ手段内の前記アクセスデータに付与されたタグ情報に基づいて当該アクセスデータが前記同期アクセスデータか前記非同期アクセスデータかを判定するステップと、
    前記制御部が、前記アクセスデータが前記同期アクセスデータのときに、前記複数のシステムの内、いずれか1つのシステムからのアクセスデータを前記入出力部に出力し、残りのシステムからのアクセスデータを破棄し、前記アクセスデータが前記非同期アクセスデータのときに、前記複数のシステムからのアクセスデータを個別に処理して前記入出力部に出力するステップとをコンピュータに実行させることを特徴とするフォールトトレラントシステムで用いる制御プログラム。
  8. 前記同期アクセスデータか前記非同期アクセスデータかの同期状態情報は、前記アクセス元の識別情報と一体に組み合わせて構成され、前記同期アクセスデータである場合、前記アクセス元の識別情報が見かけ上全て同一となるよう設定され、前記非同期アクセスデータである場合、前記アクセス元の識別情報が個々に設定されることを特徴とする請求項7記載のフォールトトレラントシステムで用いる制御プログラム。
JP2004369379A 2004-12-21 2004-12-21 フォールトトレラントシステム、これで用いる制御装置、アクセス制御方法、及び制御プログラム Expired - Fee Related JP4168403B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2004369379A JP4168403B2 (ja) 2004-12-21 2004-12-21 フォールトトレラントシステム、これで用いる制御装置、アクセス制御方法、及び制御プログラム
CN200510121729.5A CN1818882A (zh) 2004-12-21 2005-12-19 容错系统、其中所用的控制装置、访问控制方法及控制程序
EP05027907A EP1675004A3 (en) 2004-12-21 2005-12-20 Fault tolerant system and controller, access control method, and control program used in the fault tolerant system
CA002530921A CA2530921A1 (en) 2004-12-21 2005-12-20 Fault tolerant system and controller, access control method, and control program used in the fault tolerant system
US11/311,151 US7539897B2 (en) 2004-12-21 2005-12-20 Fault tolerant system and controller, access control method, and control program used in the fault tolerant system
AU2005246984A AU2005246984A1 (en) 2004-12-21 2005-12-21 Fault tolerant system and controller, access control method, and control program used in the fault tolerant system

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2006178615A JP2006178615A (ja) 2006-07-06
JP4168403B2 true JP4168403B2 (ja) 2008-10-22

Family

ID=36084313

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004369379A Expired - Fee Related JP4168403B2 (ja) 2004-12-21 2004-12-21 フォールトトレラントシステム、これで用いる制御装置、アクセス制御方法、及び制御プログラム

Country Status (6)

Country Link
US (1) US7539897B2 (ja)
EP (1) EP1675004A3 (ja)
JP (1) JP4168403B2 (ja)
CN (1) CN1818882A (ja)
AU (1) AU2005246984A1 (ja)
CA (1) CA2530921A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006178616A (ja) * 2004-12-21 2006-07-06 Nec Corp フォールトトレラントシステム、これで用いる制御装置、動作方法、及び動作プログラム
JP4168403B2 (ja) * 2004-12-21 2008-10-22 日本電気株式会社 フォールトトレラントシステム、これで用いる制御装置、アクセス制御方法、及び制御プログラム
US7496786B2 (en) * 2006-01-10 2009-02-24 Stratus Technologies Bermuda Ltd. Systems and methods for maintaining lock step operation
JP5013309B2 (ja) * 2006-08-18 2012-08-29 日本電気株式会社 フォールトトレラントコンピュータ、そのトランザクション同期制御方法
EP2098978A1 (en) * 2006-11-28 2009-09-09 Brother Kogyo Kabushiki Kaisha Radio tag information system
WO2008120352A1 (ja) * 2007-03-29 2008-10-09 Fujitsu Limited 情報処理装置、エラー処理方法
US8064824B2 (en) * 2007-07-03 2011-11-22 Atc Technologies, Llc Systems and methods for reducing power robbing impact of interference to a satellite
FR2925191B1 (fr) * 2007-12-14 2010-03-05 Thales Sa Architecture de traitement numerique a haute integrite a multiples ressources supervisees
US8058916B2 (en) * 2010-04-15 2011-11-15 Xilinx, Inc. Lockstep synchronization and maintenance
JP5512383B2 (ja) * 2010-05-12 2014-06-04 ルネサスエレクトロニクス株式会社 計算機システム
JP2013088826A (ja) * 2011-10-13 2013-05-13 Hitachi Ltd 冗長系システムにおけるデータ入力方式
US9400722B2 (en) 2011-11-15 2016-07-26 Ge Aviation Systems Llc Method of providing high integrity processing
US9146835B2 (en) * 2012-01-05 2015-09-29 International Business Machines Corporation Methods and systems with delayed execution of multiple processors
JP5772911B2 (ja) * 2013-09-27 2015-09-02 日本電気株式会社 フォールトトレラントシステム
US9641287B2 (en) 2015-01-13 2017-05-02 Honeywell International Inc. Methods and apparatus for high-integrity data transfer with preemptive blocking
JP6554048B2 (ja) * 2016-02-29 2019-07-31 株式会社日立製作所 表示装置
JP6645467B2 (ja) * 2017-03-28 2020-02-14 株式会社デンソー マイクロコンピュータ

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US5751932A (en) * 1992-12-17 1998-05-12 Tandem Computers Incorporated Fail-fast, fail-functional, fault-tolerant multiprocessor system
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
US5574849A (en) * 1992-12-17 1996-11-12 Tandem Computers Incorporated Synchronized data transmission between elements of a processing 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
ATE215244T1 (de) 1997-11-14 2002-04-15 Marathon Techn Corp Verfahren zur erhaltung von synchronisierter ausführung bei fehler-betriebssicheren/ fehlertoleranten rechnersystemen
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
US7178058B2 (en) * 2002-08-30 2007-02-13 Nec Corporation Fault tolerant computer and transaction synchronization control method
JP4155088B2 (ja) 2003-04-18 2008-09-24 日本電気株式会社 情報処理装置
JP4492035B2 (ja) 2003-04-21 2010-06-30 日本電気株式会社 データ処理装置
JP4168403B2 (ja) * 2004-12-21 2008-10-22 日本電気株式会社 フォールトトレラントシステム、これで用いる制御装置、アクセス制御方法、及び制御プログラム

Also Published As

Publication number Publication date
CA2530921A1 (en) 2006-06-21
EP1675004A3 (en) 2010-09-01
US20060149986A1 (en) 2006-07-06
US7539897B2 (en) 2009-05-26
EP1675004A2 (en) 2006-06-28
AU2005246984A1 (en) 2006-07-06
CN1818882A (zh) 2006-08-16
JP2006178615A (ja) 2006-07-06

Similar Documents

Publication Publication Date Title
US7539897B2 (en) Fault tolerant system and controller, access control method, and control program used in the fault tolerant system
US7519856B2 (en) Fault tolerant system and controller, operation method, and operation program used in the fault tolerant system
US7797457B2 (en) Leaderless byzantine consensus
US8346997B2 (en) Use of peripheral component interconnect input/output virtualization devices to create redundant configurations
US8225005B2 (en) Use of peripheral component interconnect input/output virtualization devices to create high-speed, low-latency interconnect
US20180314666A1 (en) Storage system
US20050081080A1 (en) Error recovery for data processing systems transferring message packets through communications adapters
US20070168712A1 (en) Method and apparatus for lockstep processing on a fixed-latency interconnect
US8880768B2 (en) Storage controller system with data synchronization and method of operation thereof
WO2002077818A1 (fr) Procede de duplexage de serveurs et systeme de serveurs duplexes
US8041995B2 (en) Method and system for resetting fault tolerant computer system
CA2530913A1 (en) Fault tolerant computer system and interrupt control method for the same
JP2012063828A (ja) 耐故障システム、マスタft制御lsi、スレーブft制御lsiおよび耐故障制御方法
US7568054B2 (en) Duplicate synchronization system and method of operating duplicate synchronization system
JP5013324B2 (ja) コンピュータ装置及びそのbiosアップデート方法
US20130061086A1 (en) Fault-tolerant system, server, and fault-tolerating method
JP2006178636A (ja) フォールトトレラントコンピュータ、およびその制御方法
US20100082875A1 (en) Transfer device
US20090248915A1 (en) Communication control apparatus and communication control method
US20050078708A1 (en) Formatting packet headers in a communications adapter
JP2007280313A (ja) 冗長化システム
Tu et al. Seamless fail-over for PCIe switched networks
JP5381109B2 (ja) 通信装置及びその制御プログラム
US20060031622A1 (en) Software transparent expansion of the number of fabrics coupling multiple processsing nodes of a computer system
JP4117685B2 (ja) フォルトトレラント・コンピュータとそのバス選択制御方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080423

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080423

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080623

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080711

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080724

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110815

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110815

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120815

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130815

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees