(57)【要約】【課題】同期状態を意識することなく、ＩＯアクセスが容易にでき、同期外れを起こすことのないフォルトトレラント・コンピュータとそのバス選択制御方法を提供する。【解決手段】バス経路制御部１１２，１２２は、各ＣＰＵから発行される命令のうち同期動作が必要な命令は、同期制御部１１３，１２３を通過するバス１１５，１１６及び１２５，１２６を経由して同期制御部１１３，１２３に送る。同期制御部１１３，１２３では、各ＣＰＵから発行された命令のチェックを行い、ＩＯアドレス制御部１１４，１２４へ命令を転送する。同期外れを起こす自系内のローカル・アドレス空間へのアクセスでは、同期制御部１１３，１２３を通過しないバス１１７，１２７を経由してＩＯアドレス制御部１１４，１２４へ命令を発行することにより、同期制御部での同期外れを防ぐことができる。【選択図】図２
2006178614.tif 000002
【特許請求の範囲】
【請求項１】
複数のＣＰＵサブシステムがクロック同期して同じ命令列を処理するロックステップ方式のコンピュータシステムのフォルトトレラント・コントローラであって、
各ＣＰＵサブシステムに対応して、
ＣＰＵバスの制御を行うＣＰＵバス制御部と、
ＣＰＵバス制御部からの命令をどのバスを経由して発行するのか選択するバス経路制御部と、
各ＣＰＵサブシステムのクロック毎の同期状態を監視する同期制御部と、
メモリアクセス又はＩＯアクセスのアドレス制御を行うＩＯアドレス制御部と、
ＣＰＵバス制御部からの命令を、同期制御部を介してＩＯアドレス制御部へ転送する第１のバスと、
ＣＰＵバス制御部からの命令を、同期制御部を介さずにＩＯアドレス制御部へ転送する第２のバスとを備え、
前記バス経路制御部は、メモリアクセス又はＩＯアクセス命令の対象アドレスに応じて前記第１のバス又は第２のバスのいずれを経由して命令を発行するのか選択して、その命令をＩＯアドレス制御部へ転送することを特徴とするフォルトトレラント・コントローラ。
【請求項２】
各ＣＰＵサブシステム毎に割り当てられた共有アドレス空間と、ＣＰＵサブシステムが自系内でローカルにアクセスするためのローカル・アドレス空間とを有し、
前記バス経路制御部は、命令がアクセスする対象アドレスが共有アドレス空間の場合、前記第１のバスを選択し、命令がアクセスする対象アドレスがローカル・アドレス空間の場合、前記第２のバスを選択して、その命令を前記ＩＯアドレス制御部へ転送することを特徴とする請求項１記載のフォルトトレラント・コントローラ。
【請求項３】
複数のＣＰＵサブシステムがクロック同期して同じ命令列を処理するロックステップ方式のコンピュータシステムのフォルトトレラント・コントローラであって、
各ＣＰＵサブシステムに対応して、
ＣＰＵバスの制御を行うＣＰＵバス制御部と、
ＣＰＵバス制御部からの命令をどのバスを経由して発行するのか選択するバス経路制御部と、
各ＣＰＵサブシステムのクロック毎の同期状態を監視する同期制御部と、
メモリアクセス又はＩＯアクセスのコマンド制御を行うＩＯコマンド制御部と、
ＣＰＵバス制御部からの命令を、同期制御部を介してＩＯコマンド制御部へ転送する第１のバスと、
ＣＰＵバス制御部からの命令を、同期制御部を介さずにＩＯコマンド制御部へ転送する第２のバスとを備え、
前記バス経路制御部は、メモリアクセス又はＩＯアクセス命令のコマンドに応じて前記第１のバス又は第２のバスのいずれを経由して命令を発行するのか選択して、その命令をＩＯコマンド制御部へ転送することを特徴とするフォルトトレラント・コントローラ。
【請求項４】
複数のＣＰＵサブシステムで同じ命令列をクロック同期させて処理するロックステップ方式のコンピュータシステムにおいて、
請求項１〜３のいずれかに記載のフォルトトレラント・コントローラを有することを特徴とするフォルトトレラント・コンピュータシステム。
【請求項５】
ＣＰＵバスの制御を行うＣＰＵバス制御部と、ＣＰＵバス制御部からの命令をどのバスを経由して発行するのか選択するバス経路制御部と、各ＣＰＵサブシステムのクロック毎の同期状態を監視する同期制御部と、メモリアクセス又はＩＯアクセスのアドレス制御を行うＩＯアドレス制御部と、ＣＰＵバス制御部からの命令を同期制御部を介してＩＯアドレス制御部へ転送する第１のバスと、ＣＰＵバス制御部からの命令を同期制御部を介さずにＩＯアドレス制御部へ転送する第２のバスとを備えたＣＰＵサブシステムが、複数サブシステムでクロック同期して同じ命令列を処理するロックステップ方式のフォルトトレラント・コンピュータのバス選択制御方法であって、
前記バス経路制御部が、メモリアクセス又はＩＯアクセス命令の対象アドレスに応じて前記第１のバス又は第２のバスのいずれを経由して命令を発行するのか選択して、その命令をＩＯアドレス制御部へ転送することを特徴とするフォルトトレラント・コンピュータのバス選択制御方法。
【請求項６】
ＣＰＵバスの制御を行うＣＰＵバス制御部と、ＣＰＵバス制御部からの命令をどのバスを経由して発行するのか選択するバス経路制御部と、各ＣＰＵサブシステムのクロック毎の同期状態を監視する同期制御部と、メモリアクセス又はＩＯアクセスのコマンド制御を行うＩＯコマンド制御部と、ＣＰＵバス制御部からの命令を同期制御部を介してＩＯコマンド制御部へ転送する第１のバスと、ＣＰＵバス制御部からの命令を同期制御部を介さずにＩＯコマンド制御部へ転送する第２のバスとを備えたＣＰＵサブシステムが、複数サブシステムでクロック同期して同じ命令列を処理するロックステップ方式のフォルトトレラント・コンピュータのバス選択制御方法であって、
前記バス経路制御部が、メモリアクセス又はＩＯアクセス命令のコマンドに応じて前記第１のバス又は第２のバスのいずれを経由して命令を発行するのか選択して、その命令をＩＯコマンド制御部へ転送することを特徴とするフォルトトレラント・コンピュータのバス選択制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＣＰＵサブシステムがクロック同期して同じ命令列を処理するロックステップ方式のフォルトトレラント・コンピュータシステムに関する。
【背景技術】
【０００２】
従来、２つの情報処理装置に同期化装置を接続し、各情報処理装置からのデータをバッファに保持して同期化回路で照合し、同期をとるシステムがある（例えば、特許文献１参照）。
【０００３】
ここで、複数のＣＰＵサブシステム（ＣＰＵとそれに対応するメインメモリ及びメモリコントローラ等から構成）がクロック同期して同じ命令列を処理するロックステップ方式のフォルトトレラント・コンピュータシステムにおいて、自サブシステム系の内部情報や、自系に接続されるデバイス情報、他サブシステム系の内部情報、他系に接続されるデバイス情報等にアクセスの際に、単純に命令を発行し、同期制御部で同期状態の監視をおこなっていると同期はずれを起こしてしまう。
【０００４】
このための対策として、内部情報などを参照するための命令を実行する際に、一旦同期状態を止めてからアクセスし、命令実行終了後、再同期するなど同期状態を意識して命令を実行するとなると、ハードウェアの構成だけではなく、ソフトウェアの構成の複雑化を招くことになる。
【特許文献１】特開２００２−１４９４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来のロックステップ方式のフォルトトレラント・コンピュータシステムの場合、各ＣＰＵサブシステムが自系にローカルに割り当てられたアドレス空間へのアクセスが同期制御部を通過すると、同期制御部には他系からのアクセスがないために同期外れをおこす問題がある。
【０００６】
また、このような自系のローカル・アドレス空間へのアクセスの場合、システムが同期を維持するためには同期制御部においてアクセスのアドレスや命令の種別を意識して命令の監視を行い、命令による例外処理を設けなければならず同期制御部における処理を複雑化してしまう。
【０００７】
また、同期制御部に命令、アドレス等による例外処理を持たない場合には、同期外れを防ぐために、同期動作中は特定のアクセスを禁止するなどのアクセス制限を設ける必要が生じ、同期状態を管理するなどの制御の複雑化やリアルタイム・アクセスが不可能となるなどの制限が発生するという問題がある。
【０００８】
そこで本発明は、同期状態を意識することなく、自系、他系のサブシステムへのアクセスが容易にでき、かつ同期外れを起こすことのないフォルトトレラント・コンピュータとそのバス選択制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述の課題を解決するため、本発明は、複数のＣＰＵサブシステムがクロック同期して同じ命令列を処理するロックステップ方式のコンピュータシステムのフォルトトレラント・コントローラであって、各ＣＰＵサブシステムに対応して、ＣＰＵバスの制御を行うＣＰＵバス制御部と、ＣＰＵバス制御部からの命令をどのバスを経由して発行するのか選択するバス経路制御部と、各ＣＰＵサブシステムのクロック毎の同期状態を監視する同期制御部と、メモリアクセス又はＩＯアクセスのアドレス制御を行うＩＯアドレス制御部と、ＣＰＵバス制御部からの命令を、同期制御部を介してＩＯアドレス制御部へ転送する第１のバスと、ＣＰＵバス制御部からの命令を、同期制御部を介さずにＩＯアドレス制御部へ転送する第２のバスとを備え、前記バス経路制御部は、メモリアクセス又はＩＯアクセス命令の対象アドレスに応じて前記第１のバス又は第２のバスのいずれを経由して命令を発行するのか選択して、その命令をＩＯアドレス制御部へ転送することを特徴とする。
【００１０】
以上の構成によって、同期状態を意識することなく、自系、他系のサブシステムへのアクセスが容易にできるようになり、かつ同期外れを起こすこともなくなる。バス経路制御部ではメモリ又はＩＯに割り当てられたアドレス空間に応じてアクセスするバスを選択することにより、同期制御部には必ず同期した命令のみが転送されることになり、例外処理の必要性がなくなり、同期監視のための機能を簡素化することが可能となる。
【発明の効果】
【００１１】
本発明による第１効果は、サブシステムに割り当てられたアドレス空間毎に命令を転送するバスを切り替えることにより、どのようなアクセスに対しても、同期制御部において同期外れを起こすことがなくなるため、サブシステムの同期状態を意識することなく命令を実行することが可能となる。
【００１２】
また、サブシステムに割り当てられたアドレス空間により命令を転送するバスを切り替えることにより、同期制御部は同期命令のみが転送されるため、命令内容やアクセス先を意識することなく、同期外れをチェックすることができるようになり、同期制御回路を簡素化することが可能となる。
【００１３】
その理由は、同期制御部に転送される命令が、必ず同期が取れる命令だけに保障されているからである。これにより同期制御部では、各ＣＰＵから発行された命令に差異があった場合には、同期外れとして容易に判断することが可能となる。
【００１４】
第２の効果は、自系サブシステムのローカル・アドレス空間、サブシステム別に固有に割り当てられた共有アドレス空間を用意することにより、自系の内部へのアクセスや、自系に接続されるデバイスへのアクセス、または他系サブシステムの内部情報へのアクセスや、他系に接続されるデバイスの内部情報を、アドレス空間のみを意識して命令を実行することが可能となり、同期状態を意識する必要がなく、アクセスが容易にできるようになる。
【００１５】
その理由は、アドレス空間別にハードウェアが自動的にアクセスするバスを選択するので、同期状態を意識する必要がないからである。また、サブシステム別に固有の共有メモリ空間を実装することによる効果として、他系のデバイスのエラー情報の参照が容易となり、同期外れの原因などデバイスのエラー情報の参照が容易にでき、障害情報等の特定も容易にできるようになることがあげられる。
【００１６】
第３の効果は、サブシステムに割り当てられたアドレス空間の一部を固有デバイスのアドレス空間へのアクセスとして実装することにより、他系サブシステムのメモリアクセスとして利用することが可能となる。また、他に他系サブシステムへの命令発行用としてメモリ空間を割り当てることにより、他系への命令の発行を容易に行うことも可能になる。この機能はエラー時などの要因の特定等に利用することができる。
【００１７】
その理由は、同期制御部で同期外れを検出した場合などサブシステムでエラーを検出した際に、全てのＣＰＵサブシステムからそれぞれの固有に割り当てられた共有アドレス空間へアクセスを発行することにより、どのサブシステムで最初にエラーを検出したかを調べることができるためである。
【発明を実施するための最良の形態】
【００１８】
次に、本発明の最良の形態について図面を参照して説明する。
【００１９】
図１は、本発明を適用したロックステップ方式のフォルトトレラント・コンピュータシステムの概略構成を示す。サブシステム１１，１２の各フォルトトレラント（ＦＴ）・コントローラは、ＣＰＵ、メインメモリ、ＩＯ(Input/Output)ブリッジの制御部と、ＣＰＵから発行される命令をチェックする同期制御部と、ＣＰＵから発行された命令を他系の同期制御部へ転送するデータ転送部から構成される。ＣＰＵから発行された命令は内部のパスもしくはデータ転送部を通過し、いずれかのコントローラの同期制御部に送られ、データの差異のチェックを実施している。同期制御部内でデータの差異が検出された場合には、同期外れのエラーとなり、エラーを起こしたシステム側を切り離して動作する。
【実施例１】
【００２０】
図２は、本発明によるフォルトトレラント・コントローラの要部概略構成を示す。ＣＰＵバス制御部１１１，１２１は、ＣＰＵ（図示省略）に接続されてＣＰＵバスの制御を行う。バス経路制御部１１２，１２２は、ＣＰＵバス制御部１１１，１２１からの命令をどのバスを経由して発行するのか選択する。バス１１５，１１６及び１２５，１２６は、同期制御部１１３，１２３を通過させるバスである。バス１１７，１２７は、同期制御部を通過させずＩＯアドレス制御部１１４、１２４を直接アクセスするためのバスである。
【００２１】
バス経路制御部１１２，１２２では、各ＣＰＵから発行される命令に対し、命令の対象アドレスから通常に行われるデバイスへの命令の場合、同期動作が必要な命令としてバス１１５，１１６及び１２５，１２６を経由して同期制御部１１３，１２３に送る。同期制御部１１３，１２３では、各ＣＰＵから発行された命令のチェックを行い、ＩＯアドレス制御部１１４，１２４へ命令を転送する。ＩＯアドレス制御部１１４，１２４では、メモリアクセス又はＩＯアクセスのアドレス制御を行い、ＩＯ（又はメモリ）コントローラ１１８，１２８にアクセスする。
【００２２】
同期外れを起こす自系内のローカル・アドレス空間へのアクセスでは、同期制御部１１３，１２３を通過しないバックドアパスであるバス１１７，１２７を経由してＩＯアドレス制御部１１４，１２４へ命令を発行することにより、同期制御部での同期外れを防ぐことが可能となる。また同期制御部１１３，１２３は同期命令のみが転送されるため、命令の内容などを意識することなく同期状態を監視することが可能となる。
【００２３】
図３は、本発明によるロックステップ方式のフォルトトレラント・コンピュータシステムの動作例を示す。ＣＰＵ１１０，１２０から発行されたＩＯコントローラ１２８への命令は、ＣＰＵバス制御部１１１，１２１を通過し、バス経路制御部１１２，１２２によって命令の転送先の決定を行う。ＣＰＵ１１０から発行された命令は、バス経路制御部１１２において他系のデバイスへの命令として認識され、データ転送部（図示省略）を経由して同期制御部１２３へと転送される。
【００２４】
ＣＰＵ１２０から発行された命令は、バス経路制御部１２２で自系のデバイスへの命令としてデコードされ、コントローラ内部のインターフェースを通り同期制御部１２３に送られる。同期制御部１２３では、ＣＰＵ１１０，１２０から発行されたそれぞれの命令の比較を行い、命令に差異がない場合にＩＯアドレス制御部１２４に命令を転送する。この同期制御部で差異を検出した場合には、エラーとして、エラーを起こしたシステムを切り離し、残りのシステムで動作する。
【００２５】
図４は、本発明によるアドレス空間割り当てを示す。システム内部情報のアクセスのために、サブシステム１１用に割り当てた共有空間２１１と、サブシステム１２用に割り当てた共有空間２１２と、それぞれのサブシステム内でローカルに割り当てた空間２１０を用意する。これらのそれぞれの空間へアクセスする際の手段として、ＩＯアドレス制御部にアクセスするバスは、同期制御部を経由するバス１１５，１１６及び１２５，１２６と、同期制御部を経由せず直接ＩＯアドレス制御部をアクセスできるバス１１７，１２７を実装している。バス経路制御部では、アクセスされたアドレス空間から、どのバスを経由してアクセスすべきか判断し、命令の転送を行う。
【００２６】
図５は、サブシステム内のローカル空間へのアクセスを示す。ローカル・サブシステムへ割り当てられた空間２１０へ命令が発行された場合、バス経路制御部１１２，１２２は同期制御部１１３，１２３を経由しないバス１１７，１２７を選択して、それぞれのサブシステム内にあるＩＯアドレス制御部１１４，１２４にアクセスする。バス１１７，１２７を経由することにより、他系の同期制御部には命令が転送されないので、サブシステムのローカル空間への命令の際の同期外れを防ぐことができる。
【００２７】
もし、バス経路制御部１１２，１２２がバス１１５，１２５を経由して同期制御部１１３，１２３に命令を転送すると、サブシステム内のローカル・アドレスに割り当てられた空間のため、各ＣＰＵから発行された命令は自系の同期制御部に送られ、同期制御部には他系のＣＰＵからの命令が転送されず、同期外れを引き起こす。
【００２８】
図６は、各サブシステムの共有空間へのアクセスを示す。ＩＯアドレス制御部１１４に対応してサブシステム１１に割り当てられたアドレス空間２１１、もしくはＩＯアドレス制御部１２４に対応してサブシステム１２に割り当てられたアドレス空間２１２にアクセスする場合、片側のサブシステムにしか実装されていない空間のため、他系のＣＰＵからのアクセスも同期制御部を通過することになり、同期外れを起こすことはない。
【００２９】
この場合、ＣＰＵ１１０から発行された命令は、バス経路制御部１１２よりバス１１５を経由して同期制御部１１３に送られる。ＣＰＵ１２０から発行された命令は、バス経路制御部１２２よりバス１２６を経由して同期制御部１１３に命令が転送され、同期制御部１１３により命令の同期チェックが実施される。
【００３０】
ＩＯアドレス制御部１１４に送られた命令は、割り当てられたアドレス空間２１１をアクセスし、内部情報のアクセスが可能となる。また、システム固有のメモリ空間を使用することにより、外部の特定のデバイスにアクセスすることも可能である。この場合固有に割り当てたメモリ空間を特定のアドレスに振り替える機能を実装することによりアクセスが可能となる。
【００３１】
このようにバス経路制御部では、ＣＰＵから発行された命令をアドレス別に経路を選択し、同期外れの原因となるアドレスへの命令を別のバス（バックドアパス）を利用することにより、同期制御部での同期外れを起こすことなく自系、他系のサブシステムへのアクセスを容易にすることができる。また、システムに固有に割り当てられたメモリ空間を利用することによりデバイス情報だけではなく、他系のメインメモリの内容を読み出すことや、エラー時の処理として他系システムの命令の発行を行うことも可能である。
【００３２】
以上の説明では、サブシステム内で割り当てられたローカル空間、サブシステムそれぞれの共有空間をＩＯアドレス空間として説明したが、それぞれの空間をメモリ空間に割り当て、メモリアドレスによってバスを選択する方法も可能である。各図のＩＯアドレス制御部をシステムの共有メモリ空間およびローカルに割り当てたローカル・メモリ空間のアドレス制御部として扱うことにより同様の機能を実現することが可能である。
【実施例２】
【００３３】
実施例１では、命令の対象アドレスによってバスを選択していたが、本実施例のフォルトトレラント・コントローラでは、ＣＰＵが発行したメモリアクセス又はＩＯアクセス命令のコマンドによって、どのバスを経由して発行するのか選択する機能を有する。このため、実施例１のＩＯアドレス制御部の代わりに、メモリアクセス又はＩＯアクセスのコマンド制御を行うＩＯコマンド制御部を有する。
【００３４】
バス経路制御部では、各ＣＰＵから発行される命令に対し、命令のコマンドから通常に行われるデバイスへの命令の場合、同期動作が必要な命令として同期制御部を通過させるバスを経由して同期制御部に送る。同期制御部では、各ＣＰＵから発行された命令のチェックを行い、ＩＯコマンド制御部へ命令を転送する。ＩＯコマンド制御部では、メモリアクセス又はＩＯアクセスのコマンド制御を行い、ＩＯ（又はメモリ）コントローラにアクセスする。
【００３５】
同期外れを起こす可能性のあるコマンドでは、同期制御部を通過しないバックドアパスであるバスを経由してＩＯコマンド制御部へ命令を発行することにより、同期制御部での同期外れを防ぐことが可能となる。また同期制御部は同期命令のみが転送されるため、命令の内容などを意識することなく同期状態を監視することが可能となる。
【００３６】
本実施例のバス経路制御部では、ＣＰＵから発行されたメモリアクセス又はＩＯアクセス命令のコマンド別にＩＯコマンド制御部への経路を選択し、同期外れの原因となるコマンドを別のバス（バックドアパス）を利用して転送することにより、同期制御部での同期外れを起こすことなく自系、他系のサブシステムへのアクセスを容易にすることができる。
【図面の簡単な説明】
【００３７】
【図１】本発明を適用したフォルトトレラント・コンピュータシステムの概略構成図である。
【図２】本発明によるフォルトトレラント・コントローラの要部概略構成図である。
【図３】本発明によるフォルトトレラント・コンピュータシステムの動作例を示す図である。
【図４】本発明によるアドレス空間割り当てを示す図である。
【図５】発明によるローカル・サブシステムへのアクセスを示す図である。
【図６】発明による各サブシステムの共有空間へのアクセスを示す図である。
【符号の説明】
【００３８】
１１，１２  サブシステム
１１１，１２１  ＣＰＵバス制御部
１１２，１２２  バス経路制御部
１１３，１２３  同期制御部
１１４，１２４  ＩＯアドレス制御部
１１５，１１６，１２５，１２６  同期制御部を通過するバス
１１７，１２７  同期制御部を通過しないバス
【図１】
2006178614.tif 000003
【図２】
2006178614.tif 000004
【図３】
2006178614.tif 000005
【図４】
2006178614.tif 000006
【図５】
2006178614.tif 000007
【図６】
2006178614.tif 000008