JP4218538B2 - コンピュータシステム、バスコントローラ及びそれらに用いるバス障害処理方法 - Google Patents

コンピュータシステム、バスコントローラ及びそれらに用いるバス障害処理方法 Download PDF

Info

Publication number
JP4218538B2
JP4218538B2 JP2004019124A JP2004019124A JP4218538B2 JP 4218538 B2 JP4218538 B2 JP 4218538B2 JP 2004019124 A JP2004019124 A JP 2004019124A JP 2004019124 A JP2004019124 A JP 2004019124A JP 4218538 B2 JP4218538 B2 JP 4218538B2
Authority
JP
Japan
Prior art keywords
bus
input
transaction
output
failure
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
JP2004019124A
Other languages
English (en)
Other versions
JP2005215809A (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 JP2004019124A priority Critical patent/JP4218538B2/ja
Priority to US11/033,901 priority patent/US7631226B2/en
Publication of JP2005215809A publication Critical patent/JP2005215809A/ja
Application granted granted Critical
Publication of JP4218538B2 publication Critical patent/JP4218538B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0745Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in an input/output transactions management context
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/141Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Bus Control (AREA)

Description

本発明はコンピュータシステム、バスコントローラ及びそれらに用いるバス障害処理方法に関し、特にコンピュータシステムにおいてPCI(Peripheral Component Interconnect)バスを制御するPCIバスコントローラに関する。
今日では多くのコンピュータシステムが開発されており、さまざまな分野で使用されている。図11にはコンピュータシステムとしては最小構成の構成例を示しているが、この構成をさらに発展させ、1システムにさらに多くのプロセッサやPCIデバイスを接続し、32ないし64プロセッサからなるマルチプロセッサシステムや、100を越えるPCIバススロットを持つマルチプロセッサシステムも開発されている。
このような大規模コンピュータシステムは、一般に、高度な信頼性や耐障害性が必要となる用途(ミッションクリティカルな用途)に用いられることが多い。したがって、そこで用いられるコンピュータシステムには高度な可用性が求められる。このため、近年、障害検出時のエラー伝播による影響を最小限に抑えるための技術が必要とされている。
従来のPCIバスを備えるコンピュータシステムの構成の一例を図11に示す。図11において、プロセッサ(CPU:中央処理装置)61はプロセッサバス(FSB:Front Side Bus)100を介してメモリコントローラ(MMC:Main Memory Control)62に接続さている。
メモリコントローラ62はプロセッサ61とのI/F(インタフェース)の他、主記憶(DIMM:Dual In−line Memory Module)63及びI/O(Input/Output)コントローラ(IOC:Input Output control)64のI/Fを備えている。
メモリコントローラ62はプロセッサ61及びI/Oコントローラ64から受けたトランザクションのルーティングを行い、システム規模や構成によって1個ないし複数のLSI(大規模集積回路)で構成されるユニットである。主記憶63にはPCIデバイスドライバ632を含むOS(Operating System)631が格納されている。
I/Oコントローラ64はメモリコントローラ62とのI/Fを備え、配下に接続されるPCIバス200を制御するPCIバスコントローラ(PBC:PCI Bus Control)65を内蔵し、システム規模や構成によって1個ないし複数のLSIで構成されるユニットである。PCIバス200には複数のPCIデバイス(周辺装置)(図示せず)を接続することが可能である。
ここで、上記のOS631及びPCIデバイスドライバ632は、図12に示すように、アプリケーションプログラム71とPCIデバイス[ハードウェア(HW)72]との間の信号やデータの入出力を制御しており、OS631はPCIデバイスドライバ632とアプリケーションプログラム71との間の信号やデータの流れを監視してPCIバス200の障害を検出している。
上述したコンピュータシステムでは、プロセッサ61からPCIデバイスへ直接的なアクセスや、PCIデバイスを起点とした主記憶63へのアクセスが行われる。このアクセス動作について図11を参照して説明する。
まず、プロセッサ61からPCIデバイスへ直接的なアクセス動作について、プロセッサ61からのI/Oリード[アウトバウンド(Outbound)リード]の場合について説明する。プロセッサ61からのI/Oリードの場合、プロセッサ61からPCIデバイスへのリードトランザクションは、プロセッサバス100を経由してメモリコントローラ62からI/Oコントローラ64へ入る。
I/Oコントローラ64へ到達したリードトランザクションは、PCIバスコントローラ65でPCIバストランザクションに変換されてPCIバス200に送出され、目的のPCIデバイスへと到達する。このPCIバス200上でのトランザクションの伝達動作は一般的なPCIサイクル(メモリサイクル、I/Oサイクル、コンフィグレーションサイクル等)であり、その動作が公知であるので、その説明については省略する。
その後、PCIデバイスからのリプライ及びリードデータは、上記と逆の経路を辿って、PCIバス200からPCIバスコントローラ65、メモリコントローラ62、プロセッサバス100を経てトランザクションの送出元であるプロセッサ61へと返却される。
PCIバス200へのトランザクション送出が障害等によって失敗した場合には、以下のような動作となる。つまり、アドレス・パリティエラー等のPCIバス200のエラーが発生した場合には、PCIデバイスがエラーを検知してシステムエラー線SERR(System Error)#をドライブし、エラーを検知したPCIバスコントローラ65がプロセッサ61に対してNMI(Non Mask Interrupt)信号線によってエラーを通知する。
また、データ・パリティエラー等のPCIバス200のエラーを検出した場合には、PCIバスコントローラ65がエラーを検知してパリティエラー線PERR(Parity Error)#をドライブし、リードリプライの代わりにエラーリプライを返却する。エラーリプライとは正常リプライと異なり、プロセッサ61から送出されたトランザクションが正常に終了しなかったことをプロセッサ61に通知するためのリプライである。
続いて、プロセッサ61からのPCIデバイスへの直接的なアクセス動作のI/Oライト[アウトバウンド(Outbound)ライト]について説明する。プロセッサ61からPCIデバイスへのライトには2種類のトランザクションが定義される。プロセッサ61がPCIデバイスへの書込み完了応答を待ち合わせるデファード(Deferred)タイプの書込み(Deferredライト)と、書込み完了応答を待合せないポステッド(Posted)タイプの書込み(Postedライト)とである。
Deferredライトトランザクションの場合、上述したI/Oリードと同様の経路を辿ってPCIバスコントローラ65にルーティングされる。ルーティングされたライトトランザクションはPCIバスコントローラ65でPCIバストランザクションに変換されてPCIバス200に送出され、目的のPCIデバイスへと到達する。このPCIバス200上でのトランザクションの伝達動作は、一般的なPCIサイクルのため、公知であるので、その説明については省略する。
その後、全てのデータの送信(PCIサイクルの終了)を確認したPCIバスコントローラ65はライトリプライを発行する。このライトリプライが上記と逆の経路を辿って、メモリコントローラ62、プロセッサバス100を経てトランザクションの送出元であるプロセッサ61へと返却される。
尚、Postedライトトランザクションの場合、プロセッサ61はトランザクションの送出を完了した時点で書込み動作を完了と見なし、送出されたPostedライトを目的のPCIデバイスに向けてルーティングし、PCIバス200に全てのデータの送信が完了した時点でトランザクションとしての動作を終了する。
PCIバス200へのトランザクション送出が障害等によって失敗した場合には、以下のような動作となる。つまり、アドレス・パリティエラー等のPCIバス200のエラーが発生した場合には、PCIデバイスがエラーを検知してシステムエラー線SERR#をドライブし、エラーを検知したPCIバスコントローラ65がプロセッサ61に対してNMI信号線によってエラーを通知する。
また、データ・パリティエラー等のPCIバス200のエラーを検出した場合には、PCIデバイスがパリティエラー線PERR#をドライブし、PCIバスコントローラ65がエラーを検知してプロセッサ61に通知する。ここで、Deferredライトのデータ・パリティエラーの場合には、PCIバスコントローラ65は正常リプライの代わりにエラーリプライを送出する。Postedライトのデータ・パリティエラーの場合には、PCIバスコントローラ65はNMI信号線によってエラーを通知する。
PCIデバイスを起点とした主記憶へのアクセス動作のPCIバス200配下のPCIデバイスからのメモリリード[インバウンド(Inbound)リード]について説明する。PCIバス200に送出されたリードトランザクションはI/Oコントローラ64のPCIバスコントローラ65に入力される。リードトランザクションを受信したPCIバスコントローラ65はPCIトランザクションをプラットフォームの内部形式のトランザクションへ変換し、メモリコントローラ62へトランザクションを送出する。メモリコントローラ62はI/Oコントローラ64から受取ったトランザクションにしたがって主記憶63をアクセスする。
主記憶63からのリプライデータは、上記と逆の経路を辿ってメモリコントローラ62からI/Oコントローラ64へ送出され、要求元のPCIデバイスが接続されているPCIバスコントローラ65に送信される。ルーティングされたリプライデータはPCIバスコントローラ65でPCIバストランザクションに変換され、PCIバス200へ送出され、リード送出元のPCIデバイスへと送信される。このPCIバス200上でのリードデータの伝達動作は、一般的なPCIサイクルのため、公知であるので、その説明については省略する。
PCIバス200へのトランザクション送出が障害等によって失敗した場合には、以下のような動作となる。つまり、アドレス・パリティエラー等のPCIバスのエラーが発生した場合には、PCIバスコントローラ65がエラーを検出してシステムエラー線SERR#をドライブするとともに、プロセッサ61に対してNMI信号線によってエラーを通知する。
また、PCIバスコントローラ65がリードデータをPCIバス200に送出中にデータ・パリティエラーが発生した場合には、PCIデバイスがエラーを検出してパリティエラー線PERR#をドライブしてPCIバスコントローラ65にエラーを通知する。データ・パリティエラーを検出したPCIデバイスは、デバイス固有のエラー処理を行う。
PCIデバイスを起点とした主記憶63へのアクセス動作のPCIバス200配下のPCIデバイスからのメモリライト[インバウンド(Inbound)ライト]について説明する。PCIバス200配下のPCIデバイスからのライトトランザクションは、PCIバス200からI/Oコントローラ64のPCIバスコントローラ65に入力される。
ライトトランザクションを受信したPCIバスコントローラ65はPCIトランザクションをプラットフォームの内部形式のトランザクションへ変換し、メモリコントローラ62へトランザクションを送出する。メモリコントローラ62はI/Oコントローラ64から受取ったトランザクションにしたがって、主記憶63に対して書込みを行う。このPCIバス200上でのライトデータの伝達動作は、一般的なPCIサイクルのため、公知であるので、その説明については省略する。
PCIバス200へのトランザクション送出が障害等によって失敗した場合には、以下のような動作となる。つまり、アドレス・パリティエラー等のPCIバス200のエラーが発生した場合には、PCIバスコントローラ65がエラーを検出してシステムエラー線SERR#をドライブするとともに、プロセッサ61に対してNMI信号線によってエラーを通知する。
また、PCIデバイスがライトデータをPCIバス200に送出中にデータ・パリティエラーが発生した場合には、PCIバスコントローラ65がエラーを検出してパリティエラー線PERR#をドライブしてPCIデバイスにエラーを通知する。通知を受けたPCIデバイスは、デバイス固有のエラー処理を行う。
特開2001−273200号公報
上述した従来のコンピュータシステムでは、プロセッサからPCIデバイスへのアクセス中、もしくはPCIデバイスから主記憶へのアクセス中に、PCIバスで障害が発生したトランザクションを特定できないアドレス・パリティエラー等のエラーを検出した場合に、システムエラー信号線SERR#をアクティブにする。
通常、システムエラー信号線SERR#がアサートされると、プロセッサ(OS)に対してNMI信号線によってエラーの発生が通知される。システムエラー信号線SERR#はクロックに同期していれば、複数のデバイスが同時に、いつでもドライブすることができる。これによって、プロセッサはエラー発生を知ることができるが、エラーの発生源を特定することができない。このため、プロセッサでは有効なエラー処理を行うことができず、エラー伝搬を抑えるために、NMI発生時にはシステムを異常停止(システムダウン)させている。
また、PCIバスのデータ・パリティエラーを検出し、エラーリプライとしてプロセッサに報告した場合には、例外ハンドラによる特殊なエラー処理が必要となる。しかしながら、接続されるPCIデバイスの仕様や制御方法はPCIデバイスによって大きく異なるため、例外ハンドラが単独で全てのPCIデバイスのエラー処理を完全に行うことはできない。このため、有効なエラー処理を行うことがてきない場合、例外ハンドラはエラー伝搬を抑えるために、システムを異常停止(システムダウン)させている。
このように、エラーの発生元を特定できないNMI信号線による障害通知の場合、及びエラーリプライによる障害通知に対して例外ハンドラが十分なエラー処理を行うことができない場合には、システムへのエラー伝播を抑えるために、システムダウンさせている。これはPCIバス障害時に有効な障害処理手段がないことに起因する。
上記のように、従来のコンピュータシステムでは、PCIバス障害をNMI信号線やエラーリプライとしてプロセッサに通知し、OSの例外ハンドラに処理させる場合、例外ハンドラが十分なエラー処理を行うことができなければ、システムへのエラー伝播を抑えるためにシステムダウンさせてしまうという問題がある。
そこで、本発明の目的は上記の問題点を解消し、PCIバス障害によるシステムダウンの発生を抑止することができ、全てのPCIバス障害処理をPCIデバイスドライバによって行うことができるコンピュータシステム、バスコントローラ及びそれらに用いるバス障害処理方法を提供することにある。
本発明によるコンピュータシステムは、プロセッサと、主記憶と、複数の入出力デバイスとを入出力バスにて接続し、前記入出力バスを制御するバスコントローラを含むコンピュータシステムであって、
前記入出力バスの縮退状態の監視及び前記入出力バスの復旧処理の指示を行うブリッジドライバを有し、
前記バスコントローラに、障害が発生した入出力バスを縮退状態として扱う手段と、前記入出力バスの縮退状態において当該障害の伝搬を抑止しかつ当該障害の発生時及び発生後のトランザクションを処理する手段とを備え、
前記ブリッジドライバと前記バスコントローラとを連携させて前記入出力デバイスに前記入出力バスの障害検出から復旧処理までを行わせ
前記バスコントローラは、前記入出力バスでのエラー検出時に点灯させるバス障害インジケータを含み、前記バス障害インジケータの点灯時に前記入出力バスを縮退状態とするとともに、
前記バスコントローラは、前記入出力バスの障害を検出したトランザクションに対して、前記入出力デバイスへの書込み系の処理のエラー時に全て正常リプライを返却するとともに、前記入出力デバイスからの読出し系の処理のエラー時に全て正常リプライを返却しかつ前記入出力デバイスからの読出し系の処理を再度行わせるために全ての値が予め設定した所定値のデータを読出す入出力バス制御手段を含んでいる。
本発明によるバスコントローラは、プロセッサと、主記憶と、複数の入出力デバイスとを入出力バスにて接続するシステムにおいて前記入出力バスを制御するバスコントローラであって、
障害が発生した入出力バスを縮退状態として扱う手段と、前記入出力バスの縮退状態において当該障害の伝搬を抑止しかつ前記障害の発生時及び発生後のトランザクションを処理する手段とを備え、
前記縮退状態の監視及び前記入出力バスの復旧処理の指示を行うブリッジドライバと連携して前記入出力デバイスに前記入出力バスの障害検出から復旧処理までを行わせ
前記入出力バスでのエラー検出時に点灯させるバス障害インジケータを含み、前記バス障害インジケータの点灯時に前記入出力バスを縮退状態とするとともに、
前記入出力バスの障害を検出したトランザクションに対して、前記入出力デバイスへの書込み系の処理のエラー時に全て正常リプライを返却するとともに、前記入出力デバイスからの読出し系の処理のエラー時に全て正常リプライを返却しかつ前記入出力デバイスからの読出し系の処理を再度行わせるために全ての値が予め設定した所定値のデータを読出す入出力バス制御手段を含んでいる。
本発明によるバス障害処理方法は、プロセッサと、主記憶と、複数の入出力デバイスとを入出力バスにて接続し、前記入出力バスを制御するバスコントローラを含むコンピュータシステムに用いるバス障害処理方法であって、
前記バスコントローラ、障害が発生した入出力バスを縮退状態として扱わせ、前記入出力バスの縮退状態において当該障害の伝搬を抑止させかつ前記障害の発生時及び発生後のトランザクションを処理させるとともに、
前記入出力バスの縮退状態の監視及び前記入出力バスの復旧処理の指示を行うブリッジドライバと前記バスコントローラとを連携させて前記入出力デバイスに前記入出力バスの障害検出から復旧処理までを行わせ
前記入出力バスでのエラー検出時に点灯させるバス障害インジケータを前記バスコントローラに設け、
前記バスコントローラが前記バス障害インジケータの点灯時に前記入出力バスを縮退状態とするとともに、
前記バスコントローラに設けた入出力バス制御手段で、前記入出力バスの障害を検出したトランザクションに対して、前記入出力デバイスへの書込み系の処理のエラー時に全て正常リプライを返却するとともに、前記入出力デバイスからの読出し系の処理のエラー時に全て正常リプライを返却しかつ前記入出力デバイスからの読出し系の処理を再度行わせるために全ての値が予め設定した所定値のデータを読出させている。
すなわち、本発明のコンピュータシステムは、プロセッサと、主記憶と、入出力バス[PCI(Peripheral Component Interconnect)バス]及びそれらを接続するチップセット[メモリコントローラ及びI/O(Input/Output)コントローラ]とから構成され、PCIバスコントローラとブリッジドライバとを設けることによって、PCIバスの障害をプロセッサ及びOS(Operating System)の例外ハンドラに通知することなく、PCIデバイスドライバによって障害検出から復旧処理までを行うことで、システムダウンさせずに運用を継続することが可能となる。
本発明のコンピュータシステムでは、上記の問題を解決するために、PCIバスコントローラ(PBC:PCI Bus Control)内に、PCIバスでのエラー検出時に点灯させるバス障害インジケータ(ERI:Error Indicator)を備え、バス障害インジケータの点灯時にPCIバスを縮退状態とし、PCIバス障害を検出したトランザクションに対して以下のように動作するPCIバス制御部(PXC:PCI−X Controller)を備えている。
PCIバス制御部は、(1)アウトバウンド(Outbound)ライト(プロセッサからのPCIデバイスへの直接的なアクセス動作のI/Oライト)系の処理のエラー時に全て正常リプライを返却し、(2)アウトバウンドリード(プロセッサからのPCIデバイスへの直接的なアクセス動作のI/Oリード)系の処理のエラー時に全て正常リプライを返却し、ALL“1”データを読出す。
また、PCIバス制御部は、(3)インバウンド(Inbound)アドレス(PCIデバイスを起点とした主記憶へのアクセス動作のPCIバス配下のPCIデバイスからのアドレス)系の処理のエラー時にトランザクションを破棄またはリトライし、(4)インバウンドライト(PCIデバイスを起点とした主記憶へのアクセス動作のPCIバス配下のPCIデバイスからのメモリライト)系の処理エラー時にトランザクションを破棄し、(5)インバウンドリード(PCIデバイスを起点とした主記憶へのアクセス動作のPCIバス配下のPCIデバイスからのメモリリード)系の処理のエラー時にデータ・パリティエラーを通知(PERR#検出のみ)する。
一方、PCIバス制御部はPCIバス縮退後に送られてくる後続のトランザクションに対して、(1)アウトバウンド系トランザクションを実行可能とし[但し、実際にはPCIバスに出力されずに正常リプライ(読出しデータはALL“1”)を返却する]、(2)インバウンド系のトランザクションを受付けない。
さらに、本発明のコンピュータシステムでは、PCIバスコントローラの縮退状態の監視及び復旧処理を提供するブリッジドライバを備えている。ブリッジドライバはPCIバスコントローラの縮退状態を監視することによって障害を検出し、対応するPCIデバイスドライバに障害発生を通知する機能と、PCIデバイスドライバからの要求によってバスの縮退状態を復旧させるための指示をPCIバスコントローラに発行し、その結果を要求元のPCIデバイスドライバへ通知する機能とを備えている。復旧通知を受取ったPCIデバイスドライバは、自PCIデバイスに対して初期設定処理を行い、再びシステムへの組込みを行う。
本発明のコンピュータシステムでは、上記のPCIバスコントローラとブリッジドライバとが連携して動作することによって、PCIデバイスドライバに障害発生を通知することが可能となり、PCIデバイスドライバによって障害検出から復旧までを行うことが可能となる。
これによって、本発明のコンピュータシステムでは、PCIバス障害に対して有効な障害復旧手段を提供することで、障害発生時にシステムダウンさせることなく、障害からの復旧及び継続運転が可能となる。
つまり、本発明のコンピュータシステムでは、ブリッジドライバとPCIバスコントローラとが連携して動作することによって、障害が発生したPCIバスを縮退状態として扱い、障害伝搬することなく、障害発生時及び発生後のトランザクションを処理することが可能となるため、PCIバス障害の発生をNMI信号線やエラーリプライとしてCPUに通知することなく検出することが可能となり、十分な機能を持たない例外ハンドラ実行によるシステムダウンを回避し、コンピュータシステムを継続運転することが可能となる。
また、本発明のコンピュータシステムでは、PCIバスの障害(種別は問わない)発生時に、PCIバスコントローラがPCIバスを縮退状態とし、ブリッジドライバが障害が発生したPCIバスのPCIデバイスドライバに対して障害発生を通知することが可能となるため、PCIバスの障害種別にかかわらず、PCIデバイスドライバ主導による障害復旧処理を行うことが可能となる。
PCIデバイスドライバはブリッジドライバとPCIバスコントローラの機能とを使用し、該当PCIバスを初期化することによってバス縮退状態を復旧し、自PCIデバイスを再度組込むことによって、障害から復旧させることが可能となる。
本発明は、以下に述べるような構成及び動作とすることで、PCIバス障害によるシステムダウンの発生を抑止することができ、全てのPCIバス障害処理をPCIデバイスドライバによって行うことができるという効果が得られる。
次に、本発明の実施例について図面を参照して説明する。図1は本発明の一実施例によるコンピュータシステムの構成を示すブロック図である。図1において、本発明の一実施例によるコンピュータシステムは、上述した従来のコンピュータシステムと同様に、プロセッサ(CPU:中央処理装置)2がプロセッサバス(FSB:Front Side Bus)100を介してメモリコントローラ(MMC:Main Memory Control)3に接続さている。
メモリコントローラ3はプロセッサ2とのI/F(インタフェース)の他、主記憶(DIMM:Dual In−line Memory Module)4及びI/O(Input/Output)コントローラ(IOC:Input Output control)5のI/Fを備え、プロセッサ2及びI/Oコントローラ5から受けたトランザクションのルーティングを行い、システム規模や構成によって1個ないし複数のLSI(大規模集積回路)で構成されるユニットである。主記憶4にはPCIデバイスドライバ411及びブリッジドライバ412を含むOS(Operating System)41が格納されている。
I/Oコントローラ5はメモリコントローラ3とのI/Fを備え、配下に接続されるPCI(Peripheral Component Interconnect)バス200を制御するPCIバスコントローラ(PBC:PCI Bus Control)1を内蔵し、システム規模や構成によって1個ないし複数のLSIで構成されるユニットである。PCIバス200には複数のPCIデバイス(周辺装置)(図示せず)を接続することが可能である。
図2は図1のOS41に対する信号の入出力を示す概念図である。図2において、OS41はアプリケーションプログラム42とPCIデバイス[ハードウェア(HW)43]との間の信号やデータの入出力を制御しており、PCIデバイスドライバ411とアプリケーションプログラム42との間の信号やデータの流れを監視してPCIバス200の障害を検出している。
ブリッジドライバ412はPCIデバイスドライバ411とPCIデバイスとの間における信号やデータの中継を行っており、OS41によるアプリケーションプログラム42とPCIデバイスとの間の要求及び応答の監視において矛盾が生じないように、つまりOS41で障害が検出されないように動作する。
図3は図1のPCIバスコントローラ1の構成を示すブロック図である。図3において、PCIバスコントローラ1はインプットI/F制御部(INC:Input Controller)11と、アウトプットI/F制御部(OTC:Output Controller)12と、アウトバウンドバッファ制御部(OBQ:Outbound Queue)13と、インバウンドバッファ制御部(IBQ:Inbound Queue)14と、インバウンドリードデータ制御部(DRQ:Delayed Request Queue)15と、PCIバス制御部(PXC:PCI−X Controller)16とから構成されている。
インプットI/F制御部11はメモリコントローラ3からのトランザクションを受信し、トランザクション種別によってPCIバスコントローラ1内の格納先にルーティングする。
アウトプットI/F制御部12はインバウンドバッファ制御部14とのI/Fを有し、インバウンドバッファ制御部14からのトランザクションをメモリコントローラ3へと送出する。
アウトバウンドバッファ制御部13はインプットI/F制御部11とのI/Fを有し、インプットI/F制御部11からのアウトバウンドリクエストトランザクションを受信し、受信したトランザクションを格納するバッファ(Buffer)13aと、アービトレーション部(ARB:Arbitration Controller)165とのI/Fと、PCIバス制御部16とのI/Fとを有している。
アウトバウンドバッファ制御部13はトランザクションを格納すると、アービトレーション部165に対してPCIバス使用要求を発行し、アービトレーション部165によってPCIバス使用許可が下りると、バッファ13aに格納しているトランザクションをPCIバス制御部16に送信する。
インバウンドバッファ制御部14はPCIバス制御部16とのI/Fを有し、PCIバス制御部16からのアウトバウンドリプライトランザクションと、インバウンドリクエストトランザクションとを受信する。
また、インバウンドバッファ制御部14はインバウンドリードデータ制御部15とのI/Fを有し、インバウンドリードデータ制御部15からのインバウンドリクエストトランザクションを受信し、受信した各トランザクションを格納するバッファ14aを有している。
さらに、インバウンドバッファ制御部14はアウトプットI/F制御部12とのI/Fを有し、受信したトランザクションをアウトプットI/F制御部12に送信する。
インバウンドリードデータ制御部15はインプットI/F制御部11とのI/Fを有し、インプットI/F制御部11からインバウンドリプライトランザクション(主記憶4からのリードデータ)を受信し、受信したトランザクションを格納するバッファ15aを有している。
また、インバウンドリードデータ制御部15はPCIバス制御部16とのI/Fを有し、PCIバス制御部16からのインバウンドリクエストトランザクションを受信する。
さらに、インバウンドリードデータ制御部15はトランザクションで要求されたデータがバッファ15aに存在するかをチェックし、データが存在しなければインバウンドバッファ制御部14にインバウンドリクエストトランザクションを送信すると同時に、PCIバス制御部16にリトライ指示を発行し、データが存在していたならば該当データをバッファ15aから読出してPCIバス制御部16に送信する。
PCIバス制御部16はバス信号制御部(BS:Bus controller)161と、アウトバウンドコントローラ部(OBC:Outbound Controller)162と、インバウンドコントローラ部(IBC:Inbound Controller)163と、コンフィグレーション部(CFG:Configurarion register)164と、アービトレーション部165とから構成され、プラットフォームとPCIデバイスとのトランザクション制御機能を有する。
バス信号制御部161はアウトバウンドコントローラ部162とインバウンドコントローラ部163とPCIバス200とのI/Fと、PCIバスプロトコルにしたがってPCIバス200上に接続されたPCIデバイスとのトランザクション制御機能とを有し、バス障害検出時にバス障害インジケータ(ERI:Error Indicator)164aをセットする。また、バス信号制御部161はインバウンドリードデータ制御部15とのI/Fを有し、PCIデバイスへのリトライ指示要求を受付ける。
アウトバウンドコントローラ部162はアウトバウンドバッファ制御部13とインバウンドリードデータ制御部15とバス信号制御部161とインバウンドコントローラ部163とコンフィグレーション部164とのI/Fを有し、アウトバウンドバッファ制御部13もしくはインバウンドリードデータ制御部15から受信するトランザクションを、バス信号制御部161とインバウンドコントローラ部163とコンフィグレーション部164とにルーティングする。ルーティング先はトランザクション種別及びバス障害インジケータ164aの点灯状態によって決定される。
アウトバウンドバッファ制御部13から受信するPCIバスコントローラ1宛てのコンフィグレーションリクエストトランザクションはコンフィグレーション部164に送信され、インバウンドリードデータ制御部15から受信するインバウンドリードリプライトランザクションはバス信号制御部161に送信される。
また、バス障害インジケータ164aの未点灯時にアウトバウンドバッファ制御部13から受信するアウトバウンドリクエストトランザクションはバス信号制御部161に送信される。バス障害インジケータ164aの点灯時にアウトバウンドバッファ制御部13から受信するアウトバウンドリードリクエストトランザクションに関しては、リードデータをALL“1”としたリードリプライトランザクションに変換する。このALL“1”のデータはOS41に対して正常であることを認識させるとともに、PCIデバイスドライバ411に対してはバス状態に障害が発生していることを認識させ、アプリケーションプログラム42に対してはリードデータエラーを通知する契機となる。つまり、OS41はALL“1”のデータによって障害が発生していることを認識せずに動作し、アプリケーションプログラム42はOS41経由でPCIデバイスドライバ411からのリードデータエラー通知を受けることによって、再度、所望のデータの読出し動作を行うこととなる。
アウトバウンドDefferredライトリクエストトランザクションに関しては、ライトリプライトランザクションをインバウンドコントローラ部163に送信される。アウトバウンドPostedライトリクエストトランザクションに関してはアウトバウンドコントローラ部162内で破棄する。
インバウンドコントローラ部163はインバウンドバッファ制御部14、インバウンドリードデータ制御部15、バス信号制御部161、アウトバウンドコントローラ部OBC162、コンフィグレーション部164とのI/Fを有し、バス信号制御部161、アウトバウンドコントローラ部OBC162、コンフィグレーション部164から受信するトランザクションを、インバウンドバッファ制御部14もしくはインバウンドリードデータ制御部15にルーティングする。ルーティング先はトランザクション種別によって決定される。
コンフィグレーション部164から受信するコンフィグレーションリプライトランザクション、及びバス信号制御部161とアウトバウンドコントローラ部162とから受信するアウトバウンドリプライトランザクション、及びバス信号制御部161から受信するインバウンドライトリクエストトランザクションはインバウンドバッファ制御部14に送信する。バス信号制御部161から受信するインバウンドリードリクエストトランザクションはインバウンドリードデータ制御部15に送信される。
コンフィグレーション部164はコンフィグレーションレジスタ(図示せず)と、その一部としてPCIバス200に障害が発生したことを保持するバス障害インジケータ164aとを有している。
また、コンフィグレーション部164はアウトバウンドコントローラ部162とインバウンドコントローラ部163とのI/Fを有し、アウトバウンドコントローラ部162から受信するリクエストトランザクションの指示にしたがってコンフィグレーションレジスタを更新し、必要に応じてリプライトランザクションをインバウンドコントローラ部163に送信する。
バス障害インジケータ164aはバス信号制御部161とアウトバウンドコントローラ部162とアービトレーション部165とのI/Fを有し、バス信号制御部161がバス障害を検出時にセットされる。また、バス障害インジケータ164aをリセットすることによって、PCIバスリセットを含む障害状態からの復旧が行われる。
アービトレーション部165はPCIバス200上に接続されたPCIデバイスと、アウトバウンドバッファ制御部13からのバス使用要求とに対してバス使用権の調停を行う。
また、アービトレーション部165はバス障害インジケータ164aとのI/Fを有し、バス障害インジケータ164aのセット時にPCIデバイスからのバス使用要求をマスクし、インバウンド系トランザクションを受付けない。
ブリッジドライバ412は各PCIデバイスドライバ411へ提供するPCIバスアクセス用の各種関数群を有し、各PCIデバイスドライバ411からのPCIバスアクセス要求時(提供関数コール時)にアクセス要求に応じたトランザクションを送信する。
また、ブリッジドライバ412はアウトバウンドリードトランザクション処理でALL“1”の読出しデータを検知した場合に、PCIバスコントローラ1のバス障害インジケータ164aを確認し、PCIデバイスドライバ411からの要求によってバス障害インジケータ164aを確認し、定期的にバス障害インジケータ164aを確認し、バス障害インジケータ164aの点灯を検出した場合に、エラー状態を各PCIデバイスドライバ411に通知する。
さらに、ブリッジドライバ412は各PCIデバイスドライバ411からのPCIバス障害復旧要求によって、PCIバスコントローラ1に対して障害復旧動作を要求するトランザクションを送り、障害復旧が完了したら各PCIデバイスドライバ411に通知する。
本発明の障害復旧手段を利用するためには、PCIデバイスドライバ411がデバイスへのアクセス時にブリッジドライバ411から提供される関数群を用い、ブリッジドライバ412からエラー状態を通知された場合に適切な障害復旧処理を実施する必要がある。
図4は本発明の一実施例によるブリッジドライバ412から提供されるPCIバスアクセス用の各種関数群を示す図である。図4において、関数名「pci_config_read()」は「コンフィグレーション空間のリード」の機能を持ち、関数名「pci_config_write()」は「コンフィグレーション空間のライト」の機能を持ち、関数名「pci_mem_read()」は「PCI Mapped Memory空間のリード」の機能を持ち、関数名「pci_mem_write()」は「PCI Mapped Memory空間のライト」の機能を持ち、関数名「pci_bus_check()」は「PCIバスの縮退状態チェック」の機能を持ち、関数名「pci_bus_recovery()」は「PCIバスの縮退状態からの復旧要求の機能を持っている。
図5は本発明の一実施例によるプロセッサ2からのI/Oリードの動作を示すシーケンスチャートであり、図6は本発明の一実施例によるプロセッサ2からのI/Oライトの動作を示すシーケンスチャートであり、図7は本発明の一実施例によるPCIデバイスからのメモリリードの動作を示すシーケンスチャートであり、図8は本発明の一実施例によるPCIデバイスからのメモリライトの動作を示すシーケンスチャートである。これら図1〜図8を参照して本発明の一実施例の動作について説明する。
本発明の一実施例によるコンピュータシステムにおいては、(1)プロセッサ2からのI/Oリード(アウトバウンドリード)(プロセッサ2からのPCIデバイスへの直接的なアクセス動作のI/Oリード)、(2)プロセッサ2からのI/Oライト(アウトバウンドライト)(プロセッサ2からのPCIデバイスへの直接的なアクセス動作のI/Oライト)、(3)PCIデバイスからのメモリリード(インバウンドリード)(PCIデバイスを起点とした主記憶4へのアクセス動作のPCIバス配下のPCIデバイスからのメモリリード)、(4)PCIデバイスからのメモリライト(インバウンドライト)(PCIデバイスを起点とした主記憶4へのアクセス動作のPCIバス配下のPCIデバイスからのメモリライト)、(5)縮退状態でのトランザクション処理、(6)ブリッジドライバ412による障害検出処理がそれぞれ実行される。
まず、(1)プロセッサ2からのI/Oリード(アウトバウンドリード)について説明する。PCIデバイスドライバ411がPCIデバイスからデータを読出す場合、ブリッジドライバ412が提供するリード関数[pci_mem_read()]をコールする。これによって、ブリッジドライバ412は目的のPCIデバイスに対してアウトバウンドリードリクエストトランザクションを送信する。
このアウトバウンドリードリクエストトランザクションはプロセッサバス100を経由してメモリコントローラ3からI/Oコントローラ5へと送出される。I/Oコントローラ5へ送出されたアウトバウンドリードリクエストトランザクションはPCIバスコントローラ1内のインプットI/F制御部11で受信される。
トランザクションを受信したインプットI/F制御部11はトランザクション種別によってトランザクションの格納先を決定する。ここではアウトバウンド系のトランザクションのため、格納先はアウトバウンドバッファ制御部13のバッファ13aとなる。
トランザクションを格納したアウトバウンドバッファ制御部13は、アービトレーション部165に対してPCIバス200の使用権を要求する。これを受取ったアービトレーション部165はPCIバス200の調停を行い、PCIバス200の使用許可をアウトバウンドバッファ制御部13に通知する。
通知を受けたアウトバウンドバッファ制御部13はバッファ13aに格納されているトランザクションをアウトバウンドコントローラ部162に送信する。アウトバウンドコントローラ部162はアウトバウンドリードリクエストトランザクションを受取ったので、バス信号制御部161に受信したトランザクションを送出する。バス信号制御部161は受取ったトランザクションをPCIバストランザクションに変換してPCIバス200へ送出し、目的のPCIデバイスへと到達させる。
リードリクエストトランザクション(この場合はアドレス)を受取ったPCIデバイスは対応するリードデータをPCIバス200上に送出する。リードデータはバス信号制御部161によって受信される。このPCIバス200上でのデータの伝達動作は一般的なPCIサイクル(メモリサイクル、I/Oサイクル、コンフィグレーションサイクル等)であり、その動作は公知であるので、その説明については省略する。
リードデータを受信したバス信号制御部161はリードデータをインバウンドコントローラ部163に送信する。インバウンドコントローラ部163は受取ったリードデータをインバウンドバッファ制御部14のバッファ14aに格納する。PCIデバイスから要求したデータの受信完了を確認したバス信号制御部161は、正常リプライをインバウンドコントローラ部163経由でインバウンドバッファ制御部14に送信する。
リプライを受取ったインバウンドバッファ制御部14はバッファ14aに格納されたリードデータとリプライとをリードリプライトランザクションとしてアウトプットI/F制御部12に送出する。アウトプットI/F制御部12は受信したリードリプライトランザクションをメモリコントローラ3に送出する。以降、リードリプライトランザクションは上記と逆の経路を辿ってメモリコントローラ3、プロセッサバス100を経てトランザクションの送出元であるプロセッサ2に返却され、ブリッジドライバ412に返却され、関数をコールしたPCIデバイスドライバ411にリードデータを返却する。
PCIバス200上でのアウトバウンドリードトランザクション実行中にPCIバスエラー(アドレス・パリティエラー、データ・パリティエラー、SERR#検出)が発生した場合には、PCIバス制御部16内のバス信号制御部161がエラーを検出してバス障害インジケータ164aを点灯させる。同時に、バス信号制御部161はアウトバウンドコントローラ部162から受信したリードリクエストトランザクションに対して、リードデータをALL“1”とした正常リードリプライトランザクションをインバウンドコントローラ部163に送出する。
インバウンドコントローラ部163は受取ったリードリプライトランザクションをインバウンドバッファ制御部14のバッファ14aに格納する。インバウンドバッファ制御部14はバッファ14aに格納されたリードリプライトランザクションをアウトプットI/F制御部12に送出する。アウトプットI/F制御部12は受信したリードリプライトランザクションをメモリコントローラ3に送出する。
以降、リードリプライトランザクションは上記と逆の経路を辿ってメモリコントローラ3、プロセッサバス100を経てトランザクションの送出元であるプロセッサ2に返却され、リードトランザクション発行元のブリッジドライバ412に返却される。バス障害インジケータ164aの点灯後には、PCIバス200の縮退状態となる。
続いて、(2)プロセッサ2からのI/Oライト(アウトバウンドライト)について説明する。PCIデバイスドライバ411がPCIデバイスにデータを転送する場合には、ブリッジドライバ412が提供するライト関数[pci_mem_write()]がコールされる。これによって、ブリッジドライバ412は目的のPCIデバイスに対してアウトバウンドライトリクエストトランザクションを送信する。
まず、Postedライトトランザクションに関して説明する。Postedのアウトバウンドライトリクエストトランザクションはプロセッサバス100を経由してメモリコントローラ3からI/Oコントローラ5へと送出される。I/Oコントローラ5へ送出されたアウトバウンドライトリクエストトランザクションは、PCIバスコントローラ1内のインプットI/F制御部11で受信される。
トランザクションを受信したインプットI/F制御部11はトランザクション種別によってトランザクション格納先を決定する。ここでは、アウトバウンド系のトランザクションのため、格納先はアウトバウンドバッファ制御部13のバッファ13aとなる。
トランザクションを格納したアウトバウンドバッファ制御部13はアービトレーション部165に対してPCIバス200の使用権を要求する。これを受取ったアービトレーション部165はPCIバス200の調停を行い、PCIバス200の使用許可をアウトバウンドバッファ制御部13に通知する。
通知を受けたアウトバウンドバッファ制御部13はバッファ13aに格納されているトランザクションをアウトバウンドコントローラ部162に送信する。アウトバウンドコントローラ部162はアウトバウンドライトリクエストトランザクションを受取ったので、バス信号制御部161に受信したトランザクションを送出する。
バス信号制御部161は受取ったトランザクションをPCIバストランザクションに変換してPCIバス200へ送出し、そのPCIバストランザクションを目的のPCIデバイスへ到達させる。このPCIバス200上でのトランザクションの伝達動作は、一般的なPCIサイクルであり、その動作は公知であるので、その説明については省略する。
次に、Deferredライトトランザクションに関して説明する。DeferredのアウトバウンドライトリクエストトランザクションのPCIデバイスへの伝達動作は、上述したPostedライトトランザクションと同様に行われる。
Deferredライトトランザクションの場合、リプライが必要であるため、バス信号制御部161は目的のPCIデバイスへ全てのデータ送出完了を確認した後、インバウンドコントローラ部163に対して正常ライトリプライトランザクションを発行する。インバウンドコントローラ部163はライトリプライトランザクションをインバウンドバッファ制御部14に送信する。
インバウンドバッファ制御部14はライトリプライトランザクションをアウトプットI/F制御部12に送出する。アウトプットI/F制御部12は受信したライトリプライトランザクションをメモリコントローラ3に送出する。以降、ライトリプライトランザクションは上記と逆の経路を辿って、メモリコントローラ3、プロセッサバス100を経てトランザクションの送出元であるプロセッサ2に返却される。
PCIバス200上でのアウトバウンドライトトランザクション実行中にPCIバスエラー(アドレス・パリティエラー、データ・パリティエラー、SERR#検出)が発生した場合には、PCIバス制御部16内のバス信号制御部161がエラーを検出してバス障害インジケータ164aを点灯させる。同時に、バス信号制御部161はアウトバウンドコントローラ部162から受信したPostedのライトリクエストトランザクションを破棄する。
また、バス信号制御部161はアウトバウンドコントローラ部162から受信したDeferredのライトリクエストトランザクションを破棄し、正常ライトリプライトランザクションをインバウンドコントローラ部163に送出する。インバウンドコントローラ部163は受取ったライトリプライトランザクションをインバウンドバッファ制御部14のバッファ14aに格納する。
インバウンドバッファ制御部14はバッファ14aに格納されたライトリプライトランザクションをアウトプットI/F制御部12に送出する。アウトプットI/F制御部12は受信したライトリプライトランザクションをメモリコントローラ3に送出する。以降、ライトリプライトランザクションは上記と逆の経路を辿ってメモリコントローラ3、プロセッサバス100を経てトランザクションの送出元であるプロセッサ2に返却される。バス障害インジケータ164aの点灯後はPCIバス縮退状態となる。
次に、(3)PCIデバイスからのメモリリード(インバウンドリード)について説明する。メモリリードを行うPCIバス200配下のPCIデバイスは、リクエスト信号線REQ#をドライブし、アービトレーション部165に対してPCIバス200の使用権を要求する。これに対して、アービトレーション部165は調停を行い、要求元のPCIデバイスに対してPCIバス200の使用を許可する。
PCIバス200の使用権を獲得したPCIデバイスは、インバウンドリードリクエストトランザクションをI/Oコントローラ5のPCIバスコントローラ1に送信する。リードリクエストトランザクションを受信したバス信号制御部161は受信したPCIトランザクションをプラットフォームの内部形式へと変換し、インバウンドコントローラ部163に送信する。
インバウンドコントローラ部163は受信したトランザクションがインバウンドリードリクエストトランザクションであるため、インバウンドリードデータ制御部15に送信する。
リードリクエストトランザクションを受取ったインバウンドリードデータ制御部15はバッファ15aにリードリクエストトランザクションに対応するリードデータがあるかをチェックする。ここでは、最初のリードリクエストトランザクションであるため、該当するリードデータがバッファ15aには存在しない。
このため、インバウンドリードデータ制御部15は主記憶4からリクエストトランザクションに対応するデータを読出すためにリードリクエストトランザクションをインバウンドバッファ制御部14に送る。これと並行して、インバウンドリードデータ制御部15は該当するデータが存在していない旨をバス信号制御部161に対して通知する。
通知を受けたバス信号制御部161は要求元のPCIデバイスに対してリトライの指示を出す。リードリクエストトランザクションを受取ったインバウンドバッファ制御部14はそのリードリクエストトランザクションをアウトプットI/F制御部12に送る。アウトプットI/F制御部12はメモリコントローラ3へリードリクエストトランザクションを送信する。
メモリコントローラ3はI/Oコントローラ5から受取ったトランザクションにしたがって主記憶4をアクセスする。主記憶4からのリプライデータはインバウンドリプライトランザクションとして、上記と逆の経路を辿ってメモリコントローラ3からI/Oコントローラ5へと送出され、PCIバスコントローラ1内のインプットI/F制御部11にて受信される。
インバウンドリードリプライトランザクションを受信したインプットI/F制御部11はインバウンドトランザクションのため、インバウンドリードリプライトランザクションをインバウンドリードデータ制御部15にルーティングする。インバウンドリードデータ制御部15はそのインバウンドリードリプライトランザクションをバッファ15aに格納する。
その後、バス信号制御部161はPCIデバイスから前回と同じリードリクエストトランザクションを受信すると、上述した動作と同様に、リードリクエストトランザクションをインバウンドリードデータ制御部15に送信する。トランザクションを受信したインバウンドリードデータ制御部15はバッファ15aに対応するリードデータがあるかをチェックする。
今回はデータが存在するため、リードリクエストトランザクションに対応するリードデータをアウトバウンドコントローラ部162に送信する。アウトバウンドコントローラ部162は受信したリードデータをバス信号制御部161に送信する。バス信号制御部161は受信したリードデータをPCIバストランザクションに変換してPCIバス200へ送出し、リード要求元のPCIデバイスへと到達させる。このPCIバス200上でのリトライやリードデータの伝達動作は、一般的なPCIサイクルであり、その動作は公知であるので、その説明については省略する。
PCIバス200上でのインバウンドリードトランザクション実行中にPCIバスエラー(アドレス・パリティエラー、データ・パリティエラー、SERR#検出)が発生した場合には、PCIバス制御部16内のバス信号制御部161がエラーを検出してバス障害インジケータ164aを点灯させる。同時に、バス信号制御部161はPCIバス200から受信したインバウンドリードトランザクションを破棄する。バス障害インジケータ164aの点灯後はPCIバス縮退状態となる。
また、(4)PCIデバイスからのメモリライト(インバウンドライト)について説明する。メモリライトを行うPCIバス200配下のPCIデバイスはリクエスト信号線REQ#をドライブし、アービトレーション部165に対してPCIバス200の使用権を要求する。これに対して、アービトレーション部165はPCIバス200の調停を行い、要求元のPCIデバイスに対してPCIバス200の使用を許可する。
PCIバス200の使用権を獲得したPCIデバイスは、インバウンドライトリクエストトランザクションをI/Oコントローラ5のPCIバスコントローラ1に送信する。ライトリクエストトランザクションを受信したバス信号制御部161は受信したPCIトランザクションをプラットフォームの内部形式へ変換し、インバウンドコントローラ部163に送信する。
インバウンドコントローラ部163は受信したライトリクエストトランザクションをインバウンドバッファ制御部14に送信する。インバウンドバッファ制御部14は受取ったライトリクエストトランザクションをバッファ14aに格納する。
PCIデバイスから全てのライトリクエストトランザクションの受信を完了した後、インバウンドバッファ制御部14はバッファ14aに格納していたトランザクションをアウトプットI/F制御部12に送信する。アウトプットI/F制御部12は受信したライトリクエストトランザクションをメモリコントローラ3へと送出する。メモリコントローラ3はI/Oコントローラ5から受取ったトランザクションにしたがって主記憶4に対して書込みを行う。このPCIバス200上でのライトデータの伝達動作は、一般的なPCIサイクルであり、その動作は公知であるので、その説明については省略する。
PCIバス200上でのインバウンドライトトランザクション実行中にPCIバスエラー(アドレス・パリティエラー、データ・パリティエラー、SERR#検出)が発生した場合には、PCIバス制御部16内のバス信号制御部161がエラーを検出してバス障害インジケータ164aを点灯させる。バス障害インジケータ164aを点灯させたバス信号制御部161はPCIバス200から受信するインバウンドライトリクエストトランザクションを破棄する。バス障害インジケータ164aの点灯後はPCIバス縮退状態となる。
さらに、(5)縮退状態でのトランザクション処理について説明する。上述した(1)〜(4)の処理で説明したように、PCIバスコントローラ1はバス障害インジケータ164aの点灯後、配下のPCIバス200を縮退状態として扱い、後続のトランザクションを以下のように処理する。
つまり、PCIデバイスへのアウトバウンドリードトランザクションに関しては、上述した動作と同様の動作でPCIバスコントローラ1に送信される。送信されたトランザクションはインプットI/F制御部11からアウトバウンドバッファ制御部13を経由してアウトバウンドコントローラ部162に到達する。
アウトバウンドコントローラ部162は受取ったトランザクションをバス信号制御部161経由でPCIバス200に出力せずに、アウトバウンドコントローラ部162内でリードデータをALL“1”としたリードリプライトランザクションに変換し、インバウンドコントローラ部163経由でインバウンドバッファ制御部14のバッファ14aに格納する。
インバウンドバッファ制御部14はバッファ14aに格納されたリードリプライトランザクションをアウトプットI/F制御部12に送出する。アウトプットI/F制御部12は受信したリードリプライトランザクションをメモリコントローラ3に送出する。以降、リードリプライトランザクションは上記と逆の経路を辿って、メモリコントローラ3、プロセッサバス100を経てトランザクションの送出元であるプロセッサ2に返却され、リードトランザクション発行元のブリッジドライバに返却される。
また、PCIデバイスへのアウトバウンドライトトランザクションに関しては、上述した動作と同様の動作でPCIバスコントローラ1に送信される。送信されたトランザクションはインプットI/F制御部11からアウトバウンドバッファ制御部13を経由してアウトバウンドコントローラ部162に到達する。
アウトバウンドコントローラ部162は受取ったトランザクションがPostedライトの場合、受信したトランザクションをバス信号制御部161経由でPCIバス200に出力せずに破棄する。
また、アウトバウンドコントローラ部162は受取ったトランザクションがDeferredライトの場合、受信したトランザクションをバス信号制御部161経由でPCIバス200に出力せずに破棄し、正常ライトリプライトランザクションをインバウンドコントローラ部163経由でインバウンドバッファ制御部14のバッファ14aに格納する。
インバウンドバッファ制御部14はバッファ14aに格納されたライトリプライトランザクションをアウトプットI/F制御部12に送出する。アウトプットI/F制御部12は受信したライトリプライトランザクションをメモリコントローラ3に送出する。以降、ライトリプライトランザクションは上記と逆の経路を辿って、メモリコントローラ3、プロセッサバス100を経てトランザクションの送出元であるプロセッサ2に返却される。
また、PCIデバイスからのインバウンドトランザクションに関しては、アービトレーション部165が配下のPCIバス200に接続されているPCIデバイスからのリクエスト信号線REQ#をマスクする。これによって、インバウンドトランザクションを受付けないようにし、PCIバス200の障害伝搬によるさらなるエラー発生を抑止する。
続いて、(6)ブリッジドライバ412による障害検出処理について説明する。アウトバウンドリードトランザクションに関しての障害検出処理は次のように行われる。ブリッジドライバ412は返却されたリードデータをチェックする。ここで受取ったリードデータがALL“1”である場合、ブリッジドライバ412はPCIバス200のエラーが発生した可能性があることを検知する。
PCIバス200のエラー発生の可能性を検知したブリッジドライバ412はPCIバスコントローラ1宛てにコンフィグレーションリードトランザクションを送信し、バス障害インジケータ164aの点灯状況の確認を行う。ここで、バス障害インジケータ164aが点灯していた場合、ブリッジドライバ412はPCIデバイスドライバ411に対して障害発生を通知する。障害発生の通知を受けたPCIデバイスドライバ411は、自身の障害復旧プログラムを起動する。この障害復旧プログラムの動作については後述する。
また、アウトバウンドライトトランザクションに関しての障害検出処理は次のように行われる。PCIデバイスドライバ411はトランザクションが正常終了したかが不明のため、適切なタイミングでブリッジドライバ412が提供する縮退チェック関数[pci_bus_check()]をコールし、PCIバス200の状態確認を行う。
これによって、ブリッジドライバ412はPCIバスコントローラ1宛てにコンフィグレーションリードトランザクションを送信し、バス障害インジケータ164aの点灯状況の確認を行う。ここで、バス障害インジケータ164aが点灯していた場合、ブリッジドライバ412はPCIデバイスドライバ411に対して障害発生を通知する。障害発生の通知を受けたPCIデバイスドライバ411は、自身の障害復旧プログラムを起動する。
さらに、インバウンドトランザクションに関しての障害検出処理は次のように行われる。PCIバス縮退時はインバウンドトランザクションがPCIデバイスから送信されないために、PCIデバイスドライバ411が障害を検出するタイミングがない。
障害を検出するために、ブリッジドライバ412は定期的にPCIバスコントローラ1宛てにコンフィグレーションリードトランザクションを送信し、バス障害インジケータ164aの確認を行う。ここで、バス障害インジケータ164aが点灯していた場合、ブリッジドライバ412はPCIデバイスドライバ411に対して障害発生を通知する。障害発生の通知を受けたPCIデバイスドライバ411は、自身の障害復旧プログラムを起動する。
最後に、(7)縮退状態の復旧処理について説明する。バス縮退状態からの復旧は次のように行われる。上述したように、障害発生が通知されたPCIデバイスドライバ411は、自身の障害復旧プログラムの中でPCIバス縮退状態復旧要求関数[pci_bus_recoverry()]をコールする。
復旧要求を受取ったブリッジドライバ412はバス障害インジケータ164aをリセットするために、PCIバスコントローラ1に対して復旧動作を要求するコンフィグレーションライトリクエストトランザクションを送信し、PCIデバイスドライバ411に対しては復旧処理中を通知する。
また、該当するPCIバス200が既に復旧処理中ならば、PCIデバイスドライバ411に対して復旧処理中のみを通知する。コンフィグレーションライトリクエストトランザクションは、アウトバウンドトランザクションと同様の動作でPCIバスコントローラ1に到達する。
PCIバスコントローラ1に到達したトランザクションは、PCIバスコントローラ1内のインプットI/F制御部11で受信される。トランザクションを受信したインプットI/F制御部11はコンフィグレーションライトリクエストトランザクションであるため、そのトランザクションをアウトバウンドバッファ制御部13にルーティングし、トランザクションをバッファ13aに格納する。
トランザクションを格納したアウトバウンドバッファ制御部13は、アービトレーション部165に対してPCIバス200の使用権を要求する。これを受け取ったアービトレーション部165はPCIバス200の調停を行い、PCIバス200の使用許可をアウトバウンドバッファ制御部13に通知する。
通知を受けたアウトバウンドバッファ制御部13はバッファ13aに格納されているトランザクションをアウトバウンドコントローラ部162に送信する。アウトバウンドコントローラ部162は自PCIバスコントローラ1宛てのコンフィグレーションライトリクエストトランザクションを受取ったので、コンフィグレーション部164にトランザクションを送出する。
コンフィグレーション部164は受信したトランザクションにしたがって、バス障害インジケータ164aのリセットを行い、PCIバス200のリセット信号をドライブすることで、PCIバス関連部分の初期化を行い、縮退状態からの復旧を行う。縮退状態からの復旧完了後、コンフィグレーション部164はコンフィグレーションライトリプライトランザクションをインバウンドコントローラ部163に送信する。
インバウンドコントローラ部163は受取ったコンフィグレーションライトリプライトランザクションをインバウンドバッファ制御部14のバッファ14aに格納する。インバウンドバッファ制御部14はバッファ14aに格納されたコンフィグレーションライトリプライトランザクションをアウトプットI/F制御部12に送出する。
アウトプットI/F制御部12は受信したコンフィグレーションライトリプライトランザクションをメモリコントローラ3に送出する。以降、コンフィグレーションライトリプライトランザクションは上記と逆の経路を辿って、メモリコントローラ3、プロセッサバス100を経てトランザクションの送出元であるプロセッサ2に返却される。
コンフィグレーションライトの完了を確認したブリッジドライバ412は、復旧要求を指示したPCIデバイスドライバ411へ復旧完了を通知する。復旧完了を通知されたPCIデバイスドライバ411は、自PCIデバイスをシステムに再組込みするための処理を行う。
このように、本実施例では、ブリッジドライバ412とPCIバスコントローラ1とが連携して動作することによって、障害が発生したPCIバス200を縮退状態として扱い、障害発生時及び発生後のトランザクションを障害伝搬することなく処理することができるため、PCIバス障害の発生をNMI信号線やエラーリプライとしてプロセッサ2に通知することなく、検出することができ、十分な機能を持たない例外ハンドラ実行によるシステムダウンを回避し、コンピュータシステムを継続運転することができる。
また、本実施例では、PCIバス200の障害(種別は問わない)発生時に、PCIバスコントローラ1がPCIバス200を縮退状態とし、ブリッジドライバ412が障害が発生したPCIバス200のPCIデバイスドライバ411に対して障害発生を通知することができるため、PCIバス200の障害種別にかかわらず、PCIデバイスドライバ411主導による障害復旧処理を行うことができる。
PCIデバイスドライバ411はブリッジドライバ412とPCIバスコントローラ1の機能とを使用し、該当PCIバス200を初期化することによって、バス縮退状態を復旧し、自PCIデバイスを再度組込むことで障害から復旧させることができる。
図9は本発明の他の実施例によるコンピュータシステムの構成を示すブロック図であり、図10は図9のセル(Cell)の構成を示すブロック図である。図10において、本発明の他の実施例によるコンピュータシステムは、本発明の一実施例よりも大規模なシステムに適用したシステムである。
図1にはコンピュータシステムとしては最小構成の構成例を示しているが、この最小構成におけるプロセッサ2/プロセッサバス100/メモリコントローラ3/主記憶4をセル6という構成単位にまとめ、このセル6内のCPU数を増やし(図9では4個のプロセッサ2−1〜2−4)、メモリコントローラ3とI/Oコントローラ5のI/Fとをクロスバー(XBC)7に集約し、I/Oコントローラ5、PCIバス200の数を増やすことによって(図9では9個のI/Oコントローラ5−1〜5−9)、さらに大規模なコンピュータシステム(マルチプロセッサシステム)を構築している。
この場合、クロスバー7には8個のセル6−1〜6−8が接続されている。このようなクロスバー7を用いたシステムに関しては、公知であるため、その説明については省略する。
図9に示すシステムは、クロスバー7を用いた大規模マルチプロセッサシステムであり、4つのプロセッサ2−1〜2−4を1つのセル6にまとめ、8つのセル6−1〜6−8で構成した32ウェイプロセッサ機である。
このような大規模なマルチプロセッサシステムにおいても、プロセッサ2からのI/Oリード、プロセッサ2からのI/Oライト、PCIデバイスからのメモリリード、PCIデバイスからのメモリライトという動作は、上述したようなアウトバウンドリード/アウトバウンドライト/インバウンドリード/インバウンドライトといったトランザクションの送受信によって行われる。大規模なマルチプロセッサシステムでは構成要素としてクロスバー7が追加されているが、各種トランザクションはクロスバー7を経由するだけであり、本発明によるPCIバス障害処理方法の動作に影響を与えるものではない。
よって、本発明によるPCIバス障害処理方法は、図9に示すような大規模なマルチプロセッサシステムの構成規模に左右されず、本発明の一実施例と同様な効果を発揮することが可能である。
本発明の一実施例によるコンピュータシステムの構成を示すブロック図である。 図1のOSに対する信号の入出力を示す概念図である。 図1のPCIバスコントローラの構成を示すブロック図である。 本発明の一実施例によるブリッジドライバから提供されるPCIバスアクセス用の各種関数群を示す図である。 本発明の一実施例によるプロセッサからのI/Oリードの動作を示すシーケンスチャートである。 本発明の一実施例によるプロセッサからのI/Oライトの動作を示すシーケンスチャートである。 本発明の一実施例によるPCIデバイスからのメモリリードの動作を示すシーケンスチャートである。 本発明の一実施例によるPCIデバイスからのメモリライトの動作を示すシーケンスチャートである。 本発明の他の実施例によるコンピュータシステムの構成を示すブロック図である。 図9のセルの構成を示すブロック図である。 従来例によるコンピュータシステムの構成を示すブロック図である。 図11のOSに対する信号の入出力を示す概念図である。
符号の説明
1 PCIバスコントローラ
2,2−1〜2−4 プロセッサ
3 メモリコントローラ
4 主記憶
5,5−1〜5−9 I/Oコントローラ
6 セル
7 クロスバー
11 インプットI/F制御部
12 アウトプットI/F制御部
13 アウトバウンドバッファ制御部
13a,14a,15a バッファ
14 インバウンドバッファ制御部
15 インバウンドリードデータ制御部
16 PCIバス制御部
41 OS
100 プロセッサバス
161 バス信号制御部
162 アウトバウンドコントローラ部
163 インバウンドコントローラ部
164 コンフィグレーション部
164a バス障害インジケータ
165 アービトレーション部
200 PCIバス
411 PCIデバイスドライバ
412 ブリッジドライバ

Claims (13)

  1. プロセッサと、主記憶と、複数の入出力デバイスとを入出力バスにて接続し、前記入出力バスを制御するバスコントローラを含むコンピュータシステムであって、
    前記入出力バスの縮退状態の監視及び前記入出力バスの復旧処理の指示を行うブリッジドライバを有し、
    前記バスコントローラに、障害が発生した入出力バスを縮退状態として扱う手段と、前記入出力バスの縮退状態において当該障害の伝搬を抑止しかつ当該障害の発生時及び発生後のトランザクションを処理する手段とを有し、
    前記ブリッジドライバと前記バスコントローラとを連携させて前記入出力デバイスに前記入出力バスの障害検出から復旧処理までを行わせ、
    前記バスコントローラは、前記入出力バスでのエラー検出時に点灯させるバス障害インジケータを含み、前記バス障害インジケータの点灯時に前記入出力バスを縮退状態とするとともに、
    前記バスコントローラは、前記入出力バスの障害を検出したトランザクションに対して、前記入出力デバイスへの書込み系の処理のエラー時に全て正常リプライを返却するとともに、前記入出力デバイスからの読出し系の処理のエラー時に全て正常リプライを返却しかつ前記入出力デバイスからの読出し系の処理を再度行わせるために全ての値が予め設定した所定値のデータを読出す入出力バス制御手段を含むことを特徴とするコンピュータシステム。
  2. 前記入出力バス制御手段は、前記入出力バスの縮退後に送られてくる後続のトランザクションに対して、前記入出力デバイスへのトランザクションを実行可能とし、前記入出力デバイスからのトランザクションの受付けを抑止することを特徴とする請求項1記載のコンピュータシステム。
  3. 前記ブリッジドライバは、前記バスコントローラの縮退状態を監視することによって前記障害を検出し、対応する前記入出力デバイスに障害発生を通知する機能と、前記入出力デバイスからの要求によって前記入出力バスの縮退状態を復旧させるための指示を前記バスコントローラに発行しかつその結果を要求元の前記入出力デバイスへ通知する機能とを含むことを特徴とする請求項1または請求項2記載のコンピュータシステム。
  4. 前記入出力デバイスは、前記復旧の通知を受取った時に自デバイスに対して初期設定処理を行って再びシステムへの組込みを行うことを特徴とする請求項3記載のコンピュータシステム。
  5. 前記入出力バスは、PCI(Peripheral Component Interconnect)バスであることを特徴とする請求項1から請求項4のいずれか記載のコンピュータシステム。
  6. プロセッサと、主記憶と、複数の入出力デバイスとを入出力バスにて接続するシステムにおいて前記入出力バスを制御するバスコントローラであって、
    障害が発生した入出力バスを縮退状態として扱う手段と、前記入出力バスの縮退状態において当該障害の伝搬を抑止しかつ前記障害の発生時及び発生後のトランザクションを処理する手段とを有し、
    前記縮退状態の監視及び前記入出力バスの復旧処理の指示を行うブリッジドライバと連携して前記入出力デバイスに前記入出力バスの障害検出から復旧処理までを行わせ、
    前記入出力バスでのエラー検出時に点灯させるバス障害インジケータを含み、前記バス障害インジケータの点灯時に前記入出力バスを縮退状態とするとともに、
    前記入出力バスの障害を検出したトランザクションに対して、前記入出力デバイスへの書込み系の処理のエラー時に全て正常リプライを返却するとともに、前記入出力デバイスからの読出し系の処理のエラー時に全て正常リプライを返却しかつ前記入出力デバイスからの読出し系の処理を再度行わせるために全ての値が予め設定した所定値のデータを読出す入出力バス制御手段を含むことを特徴とすることを特徴とするバスコントローラ。
  7. 前記入出力バス制御手段は、前記入出力バスの縮退後に送られてくる後続のトランザクションに対して、前記入出力デバイスへのトランザクションを実行可能とし、前記入出力デバイスからのトランザクションの受付けを抑止することを特徴とする請求項6記載のバスコントローラ。
  8. 前記入出力バスは、PCI(Peripheral Component Interconnect)バスであることを特徴とする請求項6または請求項7記載のバスコントローラ。
  9. プロセッサと、主記憶と、複数の入出力デバイスとを入出力バスにて接続し、前記入出力バスを制御するバスコントローラを含むコンピュータシステムに用いるバス障害処理方法であって、
    前記バスコントローラに、障害が発生した入出力バスを縮退状態として扱わせ、前記入出力バスの縮退状態において当該障害の伝搬を抑止させかつ前記障害の発生時及び発生後のトランザクションを処理させるとともに、
    前記入出力バスの縮退状態の監視及び前記入出力バスの復旧処理の指示を行うブリッジドライバと前記バスコントローラとを連携させて前記入出力デバイスに前記入出力バスの障害検出から復旧処理までを行わせ、
    前記入出力バスでのエラー検出時に点灯させるバス障害インジケータを前記バスコントローラに設け、
    前記バスコントローラが前記バス障害インジケータの点灯時に前記入出力バスを縮退状態とするとともに、
    前記バスコントローラに設けた入出力バス制御手段で、前記入出力バスの障害を検出したトランザクションに対して、前記入出力デバイスへの書込み系の処理のエラー時に全て正常リプライを返却するとともに、前記入出力デバイスからの読出し系の処理のエラー時に全て正常リプライを返却しかつ前記入出力デバイスからの読出し系の処理を再度行わせるために全ての値が予め設定した所定値のデータを読出させることを特徴とするバス障害処理方法。
  10. 前記入出力バス制御手段が、前記入出力バスの縮退後に送られてくる後続のトランザクションに対して、前記入出力デバイスへのトランザクションを実行可能とし、前記入出力デバイスからのトランザクションの受付けを抑止することを特徴とする請求項9記載のバス障害処理方法。
  11. 前記ブリッジドライバが、前記バスコントローラの縮退状態を監視することによって前記障害を検出し、対応する前記入出力デバイスに障害発生を通知し、前記入出力デバイスからの要求によって前記入出力バスの縮退状態を復旧させるための指示を前記バスコントローラに発行しかつその結果を要求元の前記入出力デバイスへ通知することを特徴とする請求項9または請求項10記載のバス障害処理方法。
  12. 前記入出力デバイスが、前記復旧の通知を受取った時に自デバイスに対して初期設定処理を行って再びシステムへの組込みを行うことを特徴とする請求項11記載のバス障害処理方法。
  13. 前記入出力バスが、PCI(Peripheral Component Interconnect)バスであることを特徴とする請求項9から請求項12のいずれか記載のバス障害処理方法。
JP2004019124A 2004-01-28 2004-01-28 コンピュータシステム、バスコントローラ及びそれらに用いるバス障害処理方法 Expired - Fee Related JP4218538B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004019124A JP4218538B2 (ja) 2004-01-28 2004-01-28 コンピュータシステム、バスコントローラ及びそれらに用いるバス障害処理方法
US11/033,901 US7631226B2 (en) 2004-01-28 2005-01-13 Computer system, bus controller, and bus fault handling method used in the same computer system and bus controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004019124A JP4218538B2 (ja) 2004-01-28 2004-01-28 コンピュータシステム、バスコントローラ及びそれらに用いるバス障害処理方法

Publications (2)

Publication Number Publication Date
JP2005215809A JP2005215809A (ja) 2005-08-11
JP4218538B2 true JP4218538B2 (ja) 2009-02-04

Family

ID=34823701

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004019124A Expired - Fee Related JP4218538B2 (ja) 2004-01-28 2004-01-28 コンピュータシステム、バスコントローラ及びそれらに用いるバス障害処理方法

Country Status (2)

Country Link
US (1) US7631226B2 (ja)
JP (1) JP4218538B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4667108B2 (ja) * 2005-04-11 2011-04-06 パナソニック株式会社 データ処理装置
US20070201059A1 (en) * 2006-02-28 2007-08-30 Radzykewycz Tim O Method and system for automatically configuring a device driver
US7673170B2 (en) * 2006-04-25 2010-03-02 Intel Corporation Personal computer bus protocol with error correction mode
JP4728896B2 (ja) 2006-07-13 2011-07-20 エヌイーシーコンピュータテクノ株式会社 コンピュータシステム
JP5151580B2 (ja) 2008-03-14 2013-02-27 日本電気株式会社 コンピュータシステムおよびバス制御装置
CN102486746A (zh) * 2010-12-03 2012-06-06 鸿富锦精密工业(深圳)有限公司 服务器及其检测pci系统错误的方法
JP6032510B2 (ja) * 2012-06-06 2016-11-30 インテル・コーポレーション 入出力エラー封じ込めイベント後のリカバリ
US9164888B2 (en) * 2012-12-10 2015-10-20 Google Inc. Using a logical to physical map for direct user space communication with a data storage device
US9792167B1 (en) * 2016-09-27 2017-10-17 International Business Machines Corporation Transparent north port recovery
JP7298950B1 (ja) 2022-02-08 2023-06-27 Necプラットフォームズ株式会社 情報処理装置、リカバリ方法及びプログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58176726A (ja) 1982-04-09 1983-10-17 Toshiba Corp バス障害検出装置
JPH02294753A (ja) * 1989-05-09 1990-12-05 Fujitsu Ltd 入出力処理装置の初期化方式
JPH0424839A (ja) 1990-05-18 1992-01-28 Fujitsu Ltd 障害処理方式
KR960016648B1 (ko) * 1993-12-29 1996-12-19 현대전자산업 주식회사 커먼 컨트롤 중복 스위치 방법
KR100244836B1 (ko) * 1995-11-02 2000-02-15 포만 제프리 엘 컴퓨터시스템 및 다수의 기능카드 중 한개의 기능카드를 격리하는 방법
US6487623B1 (en) * 1999-04-30 2002-11-26 Compaq Information Technologies Group, L.P. Replacement, upgrade and/or addition of hot-pluggable components in a computer system
JP2001109635A (ja) 1999-10-07 2001-04-20 Mitsubishi Electric Corp 障害対処方法及びコンピュータシステム読み取り可能な記録媒体
JP2001273200A (ja) 2000-03-24 2001-10-05 Nec Eng Ltd コンピュータシステム
US6708283B1 (en) * 2000-04-13 2004-03-16 Stratus Technologies, Bermuda Ltd. System and method for operating a system with redundant peripheral bus controllers
JP2001350674A (ja) 2000-06-08 2001-12-21 Mitsubishi Electric Corp 計算機システム
US6745345B2 (en) * 2000-12-04 2004-06-01 International Business Machines Corporation Method for testing a computer bus using a bridge chip having a freeze-on-error option
JP3644399B2 (ja) 2001-03-27 2005-04-27 ティーエム・ティーアンドディー株式会社 Pciバス不良個所切り離し方法およびそのプログラム
US6996750B2 (en) * 2001-05-31 2006-02-07 Stratus Technologies Bermuda Ltd. Methods and apparatus for computer bus error termination
JP2003022222A (ja) 2001-07-06 2003-01-24 Toshiba Corp 情報処理装置及びその保守方法
US7480831B2 (en) * 2003-01-23 2009-01-20 Dell Products L.P. Method and apparatus for recovering from a failed I/O controller in an information handling system

Also Published As

Publication number Publication date
US7631226B2 (en) 2009-12-08
US20050177760A1 (en) 2005-08-11
JP2005215809A (ja) 2005-08-11

Similar Documents

Publication Publication Date Title
US7631226B2 (en) Computer system, bus controller, and bus fault handling method used in the same computer system and bus controller
US6643727B1 (en) Isolation of I/O bus errors to a single partition in an LPAR environment
US7526592B2 (en) Interrupt control system and storage control system using the same
US7395362B2 (en) Method for a slave device to convey an interrupt and interrupt source information to a master device
JP4658122B2 (ja) Dmaコントローラ、ノード、データ転送制御方法、及びプログラム
US7747897B2 (en) Method and apparatus for lockstep processing on a fixed-latency interconnect
EP1090350B1 (en) Multi-processor system bridge with controlled access
JPH06337820A (ja) マルチプル・バス・システムにおけるエラー検知及び回復機構とその方法
EP1675006A2 (en) Fault tolerant computer system and interrupt control method for the same
US7774638B1 (en) Uncorrectable data error containment systems and methods
CZ9701560A3 (cs) Můstek mezi dvěma sběrnicemi
EP0779579A2 (en) Bus error handler on dual bus system
US20040193735A1 (en) Method and circuit arrangement for synchronization of synchronously or asynchronously clocked processor units
US4858234A (en) Method and apparatus for error recovery in a multibus computer system
JP3329986B2 (ja) マルチプロセッサシステム
JP5151500B2 (ja) コンピュータシステム、障害処理方法および障害処理プログラム
JP5151580B2 (ja) コンピュータシステムおよびバス制御装置
US4837767A (en) Bus adapter module with improved error recovery in a multibus computer system
JP4487756B2 (ja) コンピュータシステム及びシステム監視プログラム
US20050165974A1 (en) Computer apparatus and computer system
US7243257B2 (en) Computer system for preventing inter-node fault propagation
JP6256087B2 (ja) ダンプシステムおよびダンプ処理方法
EP2019359B1 (en) Information processing apparatus including transfer device for transferring requests
JP5444194B2 (ja) データ転送装置、データ転送方法、コンピュータシステム
JP2004013723A (ja) 共有メモリを使ったクラスタ構成を採用した情報処理システムの障害処理装置と方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080204

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080729

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080929

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: 20081021

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: 20081103

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

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4218538

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20131121

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees