JP4487756B2 - コンピュータシステム及びシステム監視プログラム - Google Patents

コンピュータシステム及びシステム監視プログラム Download PDF

Info

Publication number
JP4487756B2
JP4487756B2 JP2004364955A JP2004364955A JP4487756B2 JP 4487756 B2 JP4487756 B2 JP 4487756B2 JP 2004364955 A JP2004364955 A JP 2004364955A JP 2004364955 A JP2004364955 A JP 2004364955A JP 4487756 B2 JP4487756 B2 JP 4487756B2
Authority
JP
Japan
Prior art keywords
bus
controller
transaction
processor
bus controller
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.)
Active
Application number
JP2004364955A
Other languages
English (en)
Other versions
JP2006172218A (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 JP2004364955A priority Critical patent/JP4487756B2/ja
Priority to US11/296,484 priority patent/US7685473B2/en
Publication of JP2006172218A publication Critical patent/JP2006172218A/ja
Application granted granted Critical
Publication of JP4487756B2 publication Critical patent/JP4487756B2/ja
Active 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/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/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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

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)

Description

本発明は、コンピュータシステム及びシステム監視プログラムに関し、特に、入出力バスの障害による影響を受けずに、システムを安定動作できるようにしたコンピュータシステム及びシステム監視プログラムに関する。
16乃至32プロセッサからなるマルチプロセッサシステムや、64を越えるPCIバススロットを持つマルチプロセッサシステムなど、1システムに多くのプロセッサやPCIデバイスを接続したコンピュータシステムが開発されている。
このようなコンピュータシステムは、一般に、高度な信頼性や耐障害性が必要となる用途(ミッションクリティカルな用途)に用いられることが多い。したがって、高度な可用性(availablity)も求められる。このため、エラーによる影響を最小限に抑えることができるような障害検出及びその処理に関する技術が必要とされている。
なお、PCIバスにおけるエラーの検出、とりわけ、1つのPCIサイクルに対し、複数のターゲットデバイスが応答してしまう事象の検出(本発明でいうストールとは全く別の事象である)に関するものとして、特開2002−215557号公報に記載の技術がある。
特開2002−215557号公報
始めに、PCI(Peripheral Compornent Interconnect)バスシステムを例にとり、従来技術の問題点を説明する。
図5は、多数のPCIバスを備えるコンピュータシステムの構成を表した図である。図5において、プロセッサ(CPU;Central Processing Unit)1は、プロセッサバス(FSB;Front Side Bus)を介してメモリコントローラ(MMC;Main Memory Control)3に接続されている。
メモリコントローラ3は、プロセッサ1とのI/F(インタフェース)の他、主記憶装置(MMU;Main Memory Unit)2及びI/O(Input/Output)コントローラ(IOC;Input Output control)4のインタフェース(以下、I/Fともいう)を備えている。
I/Oコントローラ4は、メモリコントローラ3とのI/Fのほか、バスコントローラ(BUSC;Bus Control)5のI/Fを備えている。バスコントローラ5は、配下に接続されるPCIバス100を有し、PCIバス仕様に基づいた動作プロトコルによりデータ転送を行う。PCIバス100には複数のPCIデバイス(周辺装置)を接続することが可能である。
メモリコントローラ3及びI/Oコントローラ4は、プロセッサ1及びバスコントローラ5から受けたトランザクションのルーティングを行い、トランザクション毎にその宛先に応じてルーティングを行う。
なお、メモリコントローラ3、I/Oコントローラ4、及び、バスコントローラ5は、システム規模や構成によって1個ないし複数のLSI(大規模集積回路)で構成されるユニットである。
上述したコンピュータシステムでは、プロセッサ1からPCIデバイスへ直接的なアクセスや、PCIデバイスを起点とした主記憶装置2へのアクセスが行われる。以下、プロセッサ1からPCIデバイスへの直接的なアクセス動作について図5を参照して説明する。
まず、プロセッサ1からPCIデバイスへのI/Oリード[アウトバウンド(Outbound)リード]の場合について説明する。
プロセッサ1からのI/Oリードの場合、プロセッサ1からPCIデバイスへのリードトランザクションは、プロセッサバス(FSB)を経由してメモリコントローラ3からI/Oコントローラ4へ送られる。
I/Oコントローラ4へ到達したリードトランザクションは、更にバスコントローラ5へ送られる。バスコントローラ5にルーティングされたトランザクションは、バスコントローラ5でPCIバストランザクションに変換されてPCIバス100に送出され、目的のPCIデバイスへと到達する。
なお、このPCIバス100上でのトランザクションの伝達動作は一般的なPCIバスサイクル(メモリサイクル、I/Oサイクル、コンフィグレーションサイクル等)が用いられる。
その後、PCIデバイスからのリプライ及びリードデータは、上記と逆の経路を辿って、PCIバス100からバスコントローラ5、I/Oコントローラ4、メモリコントローラ3、プロセッサバス(FSB)を経てトランザクションの送出元であるプロセッサ1へと返却される。
PCIバス100へのトランザクション送出が障害等によって失敗した場合には、以下のような動作となる。アドレス・パリティエラー等のPCIバス100のエラーが発生した場合には、PCIデバイスがエラーを検知してシステムエラー線SERR(System Error)#をドライブし、エラーを検知したバスコントローラ5がプロセッサ1に対してNMI(Non Mask Interrupt)信号線によってエラーを通知する。
また、データ・パリティエラー等のPCIバス100のエラーを検出した場合には、バスコントローラ5がエラーを検知してパリティエラー線PERR(Parity Error)#をドライブし、リードリプライの代わりにエラーリプライを返却する。
エラーリプライとは正常リプライと異なり、プロセッサ1から送出されたトランザクションが正常に終了しなかったことをプロセッサ1に通知するためのリプライである。
続いて、プロセッサ1からのPCIデバイスへのI/Oライト[アウトバウンド(Outbound)ライト]について説明する。
プロセッサ1からPCIデバイスへのライトには2種類のトランザクションが定義される。プロセッサ1がPCIデバイスへの書込み完了応答を待ち合わせるデファード(Deferred)タイプの書込み(Deferredライト)と、書込み完了応答を待合せないポステッド(Posted)タイプの書込み(Postedライト)とである。
Deferredライトトランザクションの場合、上述したI/Oリードと同様の経路を辿ってバスコントローラ5にルーティングされる。バスコントローラ5にルーティングされたライトトランザクションはバスコントローラ5でPCIバストランザクションに変換されてPCIバス100に送出され、目的のPCIデバイスへと到達する。
その後、すべてのデータの送信(PCIバスサイクルの終了)を確認したバスコントローラ5はライトリプライを発行する。このライトリプライが上記と逆の経路を辿って、PCIバス100からバスコントローラ5、I/Oコントローラ4、メモリコントローラ3、プロセッサバスを経てトランザクションの送出元であるプロセッサ1へと返却される。
一方、Postedライトトランザクションの場合、プロセッサ1はトランザクションの送出を完了した時点で書込み動作を完了と見なし、送出されたPostedライトを目的のPCIデバイスに向けてルーティングし、PCIバス100にすべてのデータの送信が完了した時点でトランザクションとしての動作を終了する。
PCIバス100へのトランザクション送出が障害等によって失敗した場合には、以下のような動作となる。アドレス・パリティエラー等のPCIバス100のエラーが発生した場合には、PCIデバイスがエラーを検知してシステムエラー線SERR#をドライブし、エラーを検知したバスコントローラ5がプロセッサ1に対してNMI信号線によってエラーを通知する。
また、データ・パリティエラー等のPCIバス100のエラーを検出した場合には、PCIデバイスがパリティエラー線PERR#をドライブし、バスコントローラ5がエラーを検知してプロセッサ1に通知する。ここで、Deferredライトのデータ・パリティエラーの場合には、バスコントローラ5は正常リプライの代わりにエラーリプライを送出する。Postedライトのデータ・パリティエラーの場合には、バスコントローラ5はNMI信号線によってエラーを通知する。
図6は、上述したI/Oコントローラ4と、バスコントローラ5の詳細構成を表した図である。I/Oコントローラ4は、メモリコントローラ3とのインタフェースを制御するメモリコントローラ・インタフェース制御部41と、バスコントローラ5とのインタフェースを制御するバスコントローラ・インタフェース制御部42と、プロセッサからの未実行トランザクションに関する情報を保持する未実行トランザクション管理テーブル43と、プロセッサからの実行中トランザクションに関する情報を保持する実行中トランザクション管理テーブル44と、を備えている。
また、バスコントローラ5は、I/Oコントローラ4とのインタフェースを制御するI/Oコントローラ・インタフェース制御部51と、PCIバス100を制御するPCIバス制御部52と、プロセッサからの実行要求トランザクションに関する情報を保持する要求キュー53と、プロセッサへの応答トランザクションに関する情報を保持する応答キュー54と、備えている。
上述の構成において、I/Oコントローラ4へ到達したトランザクションは、メモリコントローラ・インタフェース制御部41で受信され、プロセッサからの未実行トランザクションに関する情報を保持する未実行トランザクション管理テーブル43に格納される。前記未実行トランザクション管理テーブル43に格納されたトランザクションは、バスコントローラ・インタフェース制御部42を介してバスコントローラ5へ送出される。このとき、該トランザクションがリード要求もしくはDeferredライト要求である場合、バスコントローラ5からのリプライ受信時にリプライを返却すべきトランザクションに関する諸情報(トランザクション種別や応答返却先プロセッサ識別等)が、実行中トランザクション管理テーブル44に格納される。
バスコントローラ5へ到達したトランザクションは、I/Oコントローラ・インタフェース制御部51で受信され、プロセッサからの実行要求トランザクションに関する情報を保持する要求キュー53に格納される。要求キュー53に格納されたトランザクションは、PCIバス制御部52を介してPCIバス100へ送出される。PCIバス100にて該トランザクションに関するデータ転送が終了すると、該トランザクションがリード要求もしくはDeferredライト要求である場合、該トランザクションに関するリプライ情報(実行結果の正常・異常識別とリードデータに関する情報)が、プロセッサへの応答トランザクションに関する情報を保持する応答キュー54へ格納される。応答キュー54へ格納されたトランザクションは、I/Oコントローラ・インタフェース制御部51を介してI/Oコントローラ4へ送出される。
I/Oコントローラ4へ到達したトランザクションのリプライ情報は、バスコントローラ・インタフェース制御部42で受信され、先に実行中トランザクション管理テーブル44に格納している実行中トランザクションに関する情報と結合され、メモリコントローラ・インタフェース制御部41を介してメモリコントローラ3へ送出される。
ここで、PCIバス100にて正常にデータ転送が実施された場合は、リプライ情報は正常終了(ノーマルリプライ)を示すことになるが、プロセッサからPCIデバイスへのアクセス中にPCIバスでパリティエラー等の障害が発生した場合に、システムエラー信号線SERR#のアサートによりNMI信号線、もしくは、エラーリプライによりプロセッサに対してエラーの発生が通知される。これにより、適切な例外ハンドラを実行することで障害復旧処理を行うことができる。
しかしながら、プロセッサからPCIデバイスへのアクセス中にPCIバスでストール状態(非アイドル状態が所定時間継続すること)が発生した場合に、バスコントローラは実行中のトランザクションを終了させることができず、前記実行中のトランザクションに対するリプライを返却することができない。実行中のトランザクションに関するリプライを待ち合わせているプロセッサは、リプライを受信できない状態に陥る。
そしてさらに、これらトランザクションの発行元となるプロセッサは、システムの運用継続が困難な重度の障害が発生したものと判断し、システムを異常停止(システムダウン)させる。これは、プロセッサが発行したトランザクションに対してタイムアウトが発生し、システムが不安定な状態になりうることを示唆している。
以上のように、従来のコンピュータシステムでは、プロセッサからPCIデバイスへ発行したトランザクションが入出力バスのストールに遭遇した場合、もしくは、ストールに巻き込まれた場合、そのトランザクションを発行したプロセッサに対してリプライを返却することができないため、トランザクションのタイムアウトとなってシステムダウン動作が開始されてしまうという問題点があった。
本発明は、上記した事情に鑑みてなされたものであって、その目的とするところは、上述した例に代表されるバスのストール状態に起因してシステムが異常停止することを抑止することができ、信頼性をより向上させることのできるコンピュータシステム及びシステム監視プログラムを提供することにある。
本発明の第1の視点によれば、プロセッサと、複数の入出力デバイスを接続する入出力バスを制御するバスコントローラを備えるコンピュータシステムにおいて、バスのストール状態(非アイドル状態の所定時間以上の継続)を検出するストール検出部と、前記ストール検出部からのストール検出信号を受信し、I/Oコントローラに障害状態を通知する障害通知制御部と、を有するバスコントローラと、前記プロセッサから到達した未実行のトランザクションを保持する未実行トランザクションリストと、前記未実行トランザクションリストからバスコントローラに送出したトランザクションのうち、リード要求またはDeferredライト要求であるトランザクションに関する情報を保持する実行中トランザクションリストと、前記バスコントローラの障害通知制御部からの障害通知を受信すると、前記未実行トランザクションリストに格納されているトランザクションのうち、前記障害通知がなされたバスに関わるトランザクションの前記バスコントローラへの送出を抑止するとともに、前記障害通知がなされたバスに関わるトランザクションのうち、リード要求またはDeferredライト要求であるトランザクションを前記実行中トランザクションリストに格納し、前記プロセッサに対して、前記実行中トランザクションリストに格納されたトランザクションについてエラーリプライを送信するエラーリプライ生成部と、を備えるI/Oコントローラと、を備えたこと、を特徴とするコンピュータシステムが提供される。
本発明の第2の視点によれば、プロセッサ、主記憶装置、及び前記プロセッサと前記主記憶装置を接続するメモリコントローラ、複数の入出力デバイスを接続する入出力バスを制御するバスコントローラ、及び前記バスコントローラとメモリコントローラを接続するI/Oコントローラとを有し、上述のエラーリプライを送信可能をしたコンピュータシステムが提供される。このコンピュータシステムにおいて、前記バスコントローラは、バスのストール状態を検出するストール検出部と、前記ストール検出部からのストール検出信号を受信し、前記I/Oコントローラに障害状態を通知する障害通知制御部と、を有する。また、前記I/Oコントローラは、前記プロセッサから到達した未実行のトランザクションを保持する未実行トランザクションリストと、前記未実行トランザクションリストからバスコントローラに送出したトランザクションのうち、リード要求またはDeferredライト要求であるトランザクションに関する情報を保持する実行中トランザクションリストと、を有し、前記バスコントローラの障害通知制御部からの障害通知を受信すると、前記未実行トランザクションリストに格納されているトランザクションのうち、前記障害通知がなされたバスに関わるトランザクションの前記バスコントローラへの送出を抑止するとともに、前記実行中トランザクションリストに前記障害通知がなされたバスに関わるトランザクションのうち、リード要求またはDeferredライト要求であるトランザクションを格納し、前記プロセッサに対して、前記実行中トランザクションリストに格納されたトランザクションについてエラーリプライを送信するエラーリプライ生成部を備える。
本発明によれば、バスがストール状態に陥ったことをプロセッサに報知することができ、適宜対処を行わせる信頼性の高いコンピュータシステムを実現できる。その理由は、バスのストール状態を検知し、プロセッサに異常終了(エラーリプライ)を確実に通知できるよう構成したことにある。
続いて、本発明を実施するための最良の形態について図面を参照して詳細に説明する。図1は、本発明の第1の実施の形態に係るコンピュータシステムの構成を表したブロック図である。図1を参照すると、本発明の第1の実施の形態に係るコンピュータシステムは、上述した従来のコンピュータシステムと同様に、プロセッサ(CPU)1、主記憶装置(MMU)2、メモリコントローラ(MMC)3、I/Oコントローラ(IOC)4、バスコントローラ(BUSC)5とを備えて構成されている。
更に、本発明の一実施の形態に係るコンピュータシステムは、メモリコントローラ3、I/Oコントローラ4、及び、バスコントローラ5に接続されたサービスプロセッサ6を備えている。
プロセッサ1は、プロセッサバス(FSB)を介してメモリコントローラ3に接続さている。
メモリコントローラ3は、プロセッサ1とのインタフェースのほか、主記憶装置2及びI/Oコントローラ4のインタフェースを備えている。
I/Oコントローラ4は、メモリコントローラ3とのインタフェースのほか、バスコントローラ5のインタフェースを備えている。
バスコントローラ5は、複数配設され、それぞれの配下に接続されるPCIバス100を有し、PCIバス仕様に基づいた動作プロトコルによりデータ転送を行う。PCIバス100には複数のPCIデバイスを接続することが可能である。
プロセッサ1上では、PCIデバイスを制御するためのデバイスドライバが動作し、デバイスドライバの動作に応じてプロセッサはPCIデバイスに対してトランザクションを発行する。プロセッサ1が発行したトランザクションは、メモリコントローラ3及びI/Oコントローラ4を介して、バスコントローラ5に送信される。
メモリコントローラ3及びI/Oコントローラ4は、プロセッサ1及びバスコントローラ5から受けたトランザクションを、該トランザクションの宛先となるバスもしくは主記憶装置に到達するよう、トランザクションのルーティング制御を行う。
図2は、上記コンピュータシステムのI/Oコントローラとバスコントローラの詳細構成を表したブロック図である。図2を参照すると、I/Oコントローラ4は、メモリコントローラ3とのインタフェースを制御するメモリコントローラ・インタフェース制御部41と、バスコントローラ5とのインタフェースを制御するバスコントローラ・インタフェース制御部42と、プロセッサからの未実行トランザクションに関する情報を保持する未実行トランザクション管理テーブル(未実行トランザクションリスト)43と、プロセッサからの実行中トランザクションに関する情報を保持する実行中トランザクション管理テーブル(仕掛かりトランザクションリスト)44と、バスコントローラ5からの障害通知により仕掛かり中のトランザクションに関して異常終了(エラーリプライ)を返却するよう制御するエラーリプライ生成部45とを備えて構成されている。
また、バスコントローラ5は、I/Oコントローラ4とのインタフェースを制御するI/Oコントローラ・インタフェース制御部51と、PCIバス100を制御するPCIバス制御部52と、プロセッサからの実行要求トランザクションに関する情報を保持する要求キュー53と、プロセッサへの応答トランザクションに関する情報を保持する応答キュー54と、内部にタイマを持ちPCIバス制御部のストール状態を監視・検出するストール検出部55と、ストール検出部55からのストール検出信号によりI/Oコントローラ4に対して障害通知を発行する障害通知制御部56と、を備えて構成されている。
続いて、図1を参照して、上記コンピュータシステムにおけるプロセッサ1からPCIデバイスへの直接的なアクセス動作について説明する。
まず、プロセッサ1からのI/Oリード・ライト要求の場合、プロセッサ1からPCIデバイスへのトランザクションは、プロセッサバスを経由してメモリコントローラ3からI/Oコントローラ4へ送られる。I/Oコントローラ4へ到達したトランザクションは、更にバスコントローラ5へ送られる。目的のバスコントローラ5にルーティングされたトランザクションは、バスコントローラ5でPCIバストランザクションに変換されてPCIバス100に送出され、目的のPCIデバイスへと到達する。これらトランザクションの伝達動作は一般的なPCIバスサイクル(メモリサイクル、I/Oサイクル、コンフィグレーションサイクル等)にて行われる。
その後、トランザクションがリード要求もしくはDeferredライト要求である場合、PCIデバイスからのリプライ及びリードデータは、上記と逆の経路を辿って、PCIバス100からバスコントローラ5、I/Oコントローラ4、メモリコントローラ3、プロセッサバスを経てトランザクションの送出元であるプロセッサ1へと返却される。
続いて、図2を参照して、I/Oコントローラ4とバスコントローラ5の内部動作について説明する。I/Oコントローラ4へ到達したトランザクションは、メモリコントローラ・インタフェース制御部41で受信され、プロセッサからの未実行トランザクションに関する情報を保持する未実行トランザクション管理テーブル43に格納される。未実行トランザクション管理テーブル43に格納されたトランザクションは、バスコントローラ・インタフェース制御部42を介してバスコントローラ5へ送出される。
トランザクションがリード要求もしくはDeferredライト要求である場合、バスコントローラ5からのリプライ受信時にリプライを返却すべきトランザクションに関する諸情報(トランザクション種別や応答返却先プロセッサ識別等)をプロセッサからの実行中トランザクションに関する情報を保持する実行中トランザクション管理テーブル44に格納する。
バスコントローラ5へ到達したトランザクションは、I/Oコントローラ・インタフェース制御部51で受信され、要求キュー53に格納される。要求キュー53に格納されたトランザクションは、PCIバス制御部52を介してPCIバス100へ送出される。データ転送が終了したトランザクションがリード要求もしくはDeferredライト要求である場合、該トランザクションに関するリプライ情報(実行結果の正常・異常識別とリードデータに関する情報)が、応答キュー54に格納される。応答キュー54に格納されたトランザクションは、I/Oコントローラ・インタフェース制御部51を介してI/Oコントローラ4へ送出される。
I/Oコントローラ4へ到達したトランザクションのリプライ情報は、バスコントローラ・インタフェース制御部42で受信され、先に実行中トランザクション管理テーブル44に格納している実行中トランザクションに関する情報と結合され、メモリコントローラ・インタフェース制御部41を介してメモリコントローラ3へ送出される。
以上がPCIデバイスへの直接的なアクセス動作の概要であるが、本実施の形態では、新たに実装した手段によって以下の動作が行なわれる。
バスコントローラ5のストール検出部55は、タイマを用いてPCIバス制御部52から示されるPCIバスのバスビジー状態(非アイドル状態)の継続時間を計数する。なお、このタイマは、バスがアイドル状態に戻るとクリアされる。ここで、該タイマが規定時間以上に到達した場合には、ストール検出部55は、PCIバスがストール状態であると判断し、ストール検出信号を障害通知制御部56に通知する。
バスコントローラ5の障害通知制御部56は、前記ストール検出部55からのストール検出信号を受信すると、I/Oコントローラ4に対してバスコントローラ5にてストールが発生していることを示す障害通知を送信する。
I/Oコントローラ4のエラーリプライ生成部45は、バスコントローラ5からの障害通知を受信すると、実行中トランザクション管理テーブル44に格納されているトランザクション(バスコントローラ5配下のPCIバス100に送出済みのトランザクション)に関して、発行元のプロセッサ1に対して異常終了を示すリプライ情報(エラーリプライ)を生成し応答として返却する。
その一方で、エラーリプライ生成部45は、バスコントローラ・インタフェース制御部42を制御し、未実行トランザクション管理テーブル43に格納されている未実行のトランザクション(障害通知を受けたバスコントローラ5配下のPCIバス100に送信していないトランザクション)について、ストールが発生しているバスコントローラ5への送出を抑止するとともに、実行中トランザクション管理テーブル44に格納する。
このようにして、実行中トランザクション管理テーブル44に格納されたトランザクションは、前述のバスコントローラ5配下のPCIバス100に送出済みのトランザクションと同じように、発行元のプロセッサ1に対して異常終了を示すリプライ情報(エラーリプライ)が返される。
上記のように、バスコントローラのストール検出部55によりバスのストール状態を監視・検出し、ストール検出時はI/Oコントローラ4のエラーリプライ生成部45により実行中トランザクション及び未実行トランザクションに関して発行元のプロセッサ1に対して異常終了(エラーリプライ)が返却される。これにより、PCIバス100がストール状態に陥っても、プロセッサ1がトランザクションのタイムアウトを検出し、システムダウン動作を開始することに代えて、適切な例外処理を実行させることが可能となる。
[第2の実施の形態]
続いて、新たにサービスプロセッサ6を用いることを特徴とする本発明の第2の実施の形態について図面を参照して詳細に説明する。図3は、本発明の第2の実施の形態に係るコンピュータシステムの構成を表したブロック図である。図3に示されたとおり、本実施の形態は、プロセッサ(CPU)1、主記憶装置(MMU)2、メモリコントローラ(MMC)3、I/Oコントローラ(IOC)4、バスコントローラ(BUSC)5といった基本構成は、上述した第1の実施の形態に係るコンピュータシステムと同様である。以下、上記第1の実施の形態で既に説明した事項は省略して説明する。
本実施の形態においてプロセッサ1は、システムの稼動状態を監視するためのシステム監視プログラムが動作しており、バスの状態については、サービスプロセッサ6に対して定期的に照会を行って、バスコントローラ5の稼動状態を監視している。
サービスプロセッサ6は、システムの初期設定や診断処理、及び、ログ採取処理などを行うため、コンピュータシステム内の主要コンポーネントであるメモリコントローラ3、I/Oコントローラ4、及び、バスコントローラ5に接続され、前記コントローラ群の内部レジスタの状態参照や各種設定を実行可能に構成される。プロセッサ1は、メモリコントローラ3を介してサービスプロセッサ6とも接続され、サービスプロセッサ6と通信し情報を送受信することがが可能となっている。
図4は、本実施の形態のI/Oコントローラとバスコントローラの詳細構成を表したブロック図である。図4を参照すると、バスコントローラ5には、サービスプロセッサ6と接続するための診断制御部57が設けられている。サービスプロセッサ6は、診断制御部57を介して、バスコントローラ5内の各種制御回路のレジスタの読み出しと、障害通知制御部56に対する障害状態の設定を行うことが可能となっている。
本実施の形態では、新たに実装したサービスプロセッサ6によって以下の動作が行なわれる。プロセッサ1は、システム監視プログラムにて設定された時間間隔にて、サービスプロセッサ6にアクセスし、バスコントローラ5内の制御レジスタの値を読み出す。
続いて、プロセッサ1は、前記したシステム監視プログラムに定められた条件に従ってバスコントローラ5がストール状態である否かを判定する。ここで、バスコントローラ5がストール状態であると判断した場合、プロセッサ1は、サービスプロセッサ6にアクセスし、バスコントローラ5内の障害通知制御部56に対してバスコントローラ5を障害状態に設定するよう指令する。
障害通知制御部56は、本障害状態の設定により、I/Oコントローラ4に対してバスコントローラ5にてストール障害が発生していることを示す障害通知を送信する。これ以降の処理は、前述した第1の実施の形態と同様で、I/Oコントローラ4のエラーリプライ生成部45が、障害通知を受け取ったバスに関わる実行中トランザクション及び未実行トランザクションに関して発行元のプロセッサ1に対して異常終了(エラーリプライ)を返却することにより、バスコントローラ5がストール状態に陥っても、プロセッサ1がトランザクションのタイムアウトを検出しないよう制御できるため、システムダウンの発生を抑止し、プロセッサ1により適切な例外処理が実行できる。
なお、上記した実施の形態では、上述したシステム監視プログラムを、サービスプロセッサ6において実行させ、サービスプロセッサ6経由でバスコントローラ5自体のストール状態を監視・検出して、エラーリプライを返却するようにしてもよい。
以上、本発明の実施の形態を説明したが、本発明は、要するに、バスコントローラ5のストール検出部55(又はサービスプロセッサ6)、障害通知制御部56、及び、I/Oコントローラ4のエラーリプライ生成部45を主要構成要素として構成することが可能である。また本構成によって、PCIバスのストール状態を監視・検出して、エラーリプライを返却し、適切な対処を取ることが可能となる。
また、上記した各実施の形態では、本発明をPCIバスシステムに適用した例を挙げて説明したが、本発明の原理を適用可能なその他の入出力バスシステムにも等しく、或いは、適宜設計変更をなして適用できることはもちろんである。
本発明の第1の実施の形態に係るコンピュータシステムの構成を表した図である。 本発明の第1の実施の形態に係るコンピュータシステムのI/Oコントローラとバスコントローラの構成を表した図である。 本発明の第2の実施の形態に係るコンピュータシステムの構成を表した図である。 本発明の第2の実施の形態に係るコンピュータシステムのI/Oコントローラとバスコントローラの構成を表した図である。 従来のコンピュータシステムの基本的な構成例を表した図である。 従来のコンピュータシステムのI/Oコントローラとバスコントローラの構成を表した図である。
符号の説明
1 プロセッサ(CPU)
2 主記憶装置(MMU)
3 メモリコントローラ(MMC)
4 I/Oコントローラ(IOC)
5 バスコントローラ(BUSC)
6 サービスプロセッサ
41 メモリコントローラ・インタフェース制御部
42 バスコントローラ・インタフェース制御部
43 未実行トランザクション管理テーブル(未実行トランザクションリスト)
44 実行中トランザクション管理テーブル(仕掛かりトランザクションリスト)
45 エラーリプライ生成部
51 I/Oコントローラ・インタフェース制御部
52 PCIバス制御部
53 要求キュー
54 応答キュー
55 ストール検出部
56 障害通知制御部
57 診断制御部
100 PCIバス

Claims (7)

  1. プロセッサと、複数の入出力デバイスを接続する入出力バスを制御するバスコントローラを備えるコンピュータシステムにおいて、
    バスのストール状態を検出するストール検出部と、
    前記ストール検出部からのストール検出信号を受信し、I/Oコントローラに障害状態を通知する障害通知制御部と、を有するバスコントローラと、
    前記プロセッサから到達した未実行のトランザクションを保持する未実行トランザクションリストと、
    前記未実行トランザクションリストからバスコントローラに送出したトランザクションのうち、リード要求またはDeferredライト要求であるトランザクションに関する情報を保持する実行中トランザクションリストと、
    前記バスコントローラの障害通知制御部からの障害通知を受信すると、前記未実行トランザクションリストに格納されているトランザクションのうち、前記障害通知がなされたバスに関わるトランザクションの前記バスコントローラへの送出を抑止するとともに、前記障害通知がなされたバスに関わるトランザクションのうち、リード要求またはDeferredライト要求であるトランザクションを前記実行中トランザクションリストに格納し、前記プロセッサに対して、前記実行中トランザクションリストに格納されたトランザクションについてエラーリプライを送信するエラーリプライ生成部と、を備えるI/Oコントローラと、を備えたこと、
    を特徴とするコンピュータシステム。
  2. 前記ストール検出部は、バスコントローラ毎にそれぞれ配設され、
    バスの非アイドル時間を計測してストール状態を検出すること、
    を特徴とする請求項1に記載のコンピュータシステム。
  3. 更に、複数のバスコントローラに接続されたサービスプロセッサを含み、
    前記サービスプロセッサの指示によりバスコントローラの制御レジスタの値を読み出す手段と、前記サービスプロセッサの指示により前記障害通知制御部に対してバスコントローラを障害状態に設定する手段と、を備える診断制御部を前記各バスコントローラに備えたこと、
    を特徴とする請求項1または2に記載のコンピュータシステム。
  4. 前記ストール検出部は、
    前記バスコントローラのバス制御部の制御レジスタの値に基づいて、バスのビジー状態が所定時間継続したか否かによってストール状態を検出すること、
    を特徴とする請求項1乃至いずれか一に記載のコンピュータシステム。
  5. 前記入出力バスは、PCI(PeripheralCompornentInterconnect)バスであること、
    を特徴とする請求項1乃至いずれか一に記載のコンピュータシステム。
  6. プロセッサ、主記憶装置、及び前記プロセッサと前記主記憶装置を接続するメモリコントローラ、複数の入出力デバイスを接続する入出力バスを制御するバスコントローラ、及び前記バスコントローラとメモリコントローラを接続するI/Oコントローラとを有するコンピュータシステムに接続されたサービスプロセッサに実行させるシステム監視プログラムであって、
    前記各バスコントローラの制御レジスタの値を読み出し、バスの状態を監視する処理と、
    前記バスのストール状態を検出した場合に、障害通知制御部に対してバスコントローラを障害状態に設定するよう指令し、エラーリプライ通知部に対し障害通知を送信させる処理と、を実行し、
    前記エラーリプライ通知部に、前記障害通知に基づいて、前記プロセッサから到達した未実行のトランザクションを保持する未実行トランザクションリストに格納されているトランザクションのうち、前記障害通知がなされたバスに関わるトランザクションの前記バスコントローラへの送出を抑止させるとともに、リード要求またはDeferredライト要求であるトランザクションに関する情報を保持する実行中トランザクションリストに、前記障害通知がなされたバスに関わるトランザクションを格納させ、前記プロセッサに対して、前記実行中トランザクションリストに格納されたトランザクションについてエラーリプライを送信させるシステム監視プログラム。
  7. プロセッサと、複数の入出力デバイスを接続する入出力バスを制御するバスコントローラと、前記プロセッサに対してストール状態が検出されたバスに送出されたトランザクションについてエラーリプライを送信するエラーリプライ生成部と、を備えるコンピュータシステムに実行させるプログラムであって、
    前記コンピュータシステムに接続されたサービスプロセッサと通信して、前記各バスコントローラの制御レジスタの値を読み出し、バスの状態を監視する処理と、
    前記バスのストール状態を検出した場合に、障害通知制御部に対してバスコントローラを障害状態に設定するよう指令し、エラーリプライ通知部に対し障害通知を送信させる処理と、を実行し、
    前記エラーリプライ通知部に、前記障害通知に基づいて、前記プロセッサから到達した未実行のトランザクションを保持する未実行トランザクションリストに格納されているトランザクションのうち、前記障害通知がなされたバスに関わるトランザクションの前記バスコントローラへの送出を抑止させるとともに、リード要求またはDeferredライト要求であるトランザクションに関する情報を保持する実行中トランザクションリストに、前記障害通知がなされたバスに関わるトランザクションを格納させ、前記プロセッサに対して、前記実行中トランザクションリストに格納されたトランザクションについてエラーリプライを送信させるシステム監視プログラム。
JP2004364955A 2004-12-16 2004-12-16 コンピュータシステム及びシステム監視プログラム Active JP4487756B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004364955A JP4487756B2 (ja) 2004-12-16 2004-12-16 コンピュータシステム及びシステム監視プログラム
US11/296,484 US7685473B2 (en) 2004-12-16 2005-12-08 Computer system, method of detecting a stall in a computer system, and signal-bearing medium embodying a program causing a computer system to perform a method of detecting a stall in a computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004364955A JP4487756B2 (ja) 2004-12-16 2004-12-16 コンピュータシステム及びシステム監視プログラム

Publications (2)

Publication Number Publication Date
JP2006172218A JP2006172218A (ja) 2006-06-29
JP4487756B2 true JP4487756B2 (ja) 2010-06-23

Family

ID=36597616

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004364955A Active JP4487756B2 (ja) 2004-12-16 2004-12-16 コンピュータシステム及びシステム監視プログラム

Country Status (2)

Country Link
US (1) US7685473B2 (ja)
JP (1) JP4487756B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7770054B2 (en) * 2008-01-03 2010-08-03 International Business Machines Corporation Apparatus, system, and method to prevent queue stalling
WO2011151859A1 (en) * 2010-06-01 2011-12-08 Hitachi, Ltd. Data transfer device and method of controlling the same
GB2495313B (en) * 2011-10-05 2013-12-04 Micron Technology Inc Connection method
GB2531011A (en) * 2014-10-07 2016-04-13 Ibm Initializing I/O Devices
US10630776B2 (en) * 2017-01-13 2020-04-21 International Business Machines Corporation Handling a system blocking call
KR102385541B1 (ko) 2017-09-29 2022-04-11 삼성전자주식회사 버스 시스템
US10565088B2 (en) * 2018-01-19 2020-02-18 Infineon Technologies Ag Monitoring device for recovering a stalled bus
CN112241382A (zh) * 2019-07-18 2021-01-19 叶锋 智能总线计算机

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5067071A (en) * 1985-02-27 1991-11-19 Encore Computer Corporation Multiprocessor computer system employing a plurality of tightly coupled processors with interrupt vector bus
JPS6476256A (en) 1987-09-18 1989-03-22 Fujitsu Ltd Bus adjusting device for multiplex input data transfer device
DE69132227T2 (de) * 1990-09-20 2000-09-28 Fujitsu Ltd Eingang-/Ausgangsteuerungseinrichtung
US5682551A (en) * 1993-03-02 1997-10-28 Digital Equipment Corporation System for checking the acceptance of I/O request to an interface using software visible instruction which provides a status signal and performs operations in response thereto
US5742843A (en) * 1994-07-20 1998-04-21 Fujitsu Limited Control system for access between processing elements in a parallel computer
JP3595033B2 (ja) 1995-07-18 2004-12-02 株式会社日立製作所 高信頼化コンピュータシステム
US6000043A (en) * 1996-06-28 1999-12-07 Intel Corporation Method and apparatus for management of peripheral devices coupled to a bus
US5978938A (en) * 1996-11-19 1999-11-02 International Business Machines Corporation Fault isolation feature for an I/O or system bus
US6256753B1 (en) * 1998-06-30 2001-07-03 Sun Microsystems, Inc. Bus error handling in a computer system
US6292910B1 (en) * 1998-09-14 2001-09-18 Intel Corporation Method and apparatus for detecting a bus deadlock in an electronic system
US6804800B2 (en) * 2000-12-29 2004-10-12 Intel Corporation Method and apparatus for detecting and recovering from errors in a source synchronous bus
JP3711871B2 (ja) 2001-01-23 2005-11-02 日本電気株式会社 Pciバスの障害解析容易化方式
US6829729B2 (en) * 2001-03-29 2004-12-07 International Business Machines Corporation Method and system for fault isolation methodology for I/O unrecoverable, uncorrectable error
US6996750B2 (en) * 2001-05-31 2006-02-07 Stratus Technologies Bermuda Ltd. Methods and apparatus for computer bus error termination
US7069477B2 (en) * 2002-10-30 2006-06-27 International Business Machines Corporation Methods and arrangements to enhance a bus
US7278062B2 (en) * 2003-01-09 2007-10-02 Freescale Semiconductor, Inc. Method and apparatus for responding to access errors in a data processing system
US7676621B2 (en) * 2003-09-12 2010-03-09 Hewlett-Packard Development Company, L.P. Communications bus transceiver

Also Published As

Publication number Publication date
US20060136789A1 (en) 2006-06-22
JP2006172218A (ja) 2006-06-29
US7685473B2 (en) 2010-03-23

Similar Documents

Publication Publication Date Title
US7849235B2 (en) DMA controller, node, data transfer control method and storage medium
US6141715A (en) Method and system for avoiding live lock conditions on a computer bus by insuring that the first retired bus master is the first to resubmit its retried transaction
US7343515B1 (en) System and method for performing error recovery in a data processing system having multiple processing partitions
US7631226B2 (en) Computer system, bus controller, and bus fault handling method used in the same computer system and bus controller
US7685473B2 (en) Computer system, method of detecting a stall in a computer system, and signal-bearing medium embodying a program causing a computer system to perform a method of detecting a stall in a computer system
JP2001350651A (ja) 故障状態を分離する方法
CN100478906C (zh) 使用输入/输出设备评估数据处理系统健康的方法和系统
JP2010140361A (ja) コンピュータシステム及び異常検出回路
JPH06231008A (ja) コンピュータシステムのオンライン監視システム
US7472310B2 (en) Debugging mechanism and debugging register
JP5151580B2 (ja) コンピュータシステムおよびバス制御装置
US8151028B2 (en) Information processing apparatus and control method thereof
JPS634209B2 (ja)
US20050165974A1 (en) Computer apparatus and computer system
JPH05224964A (ja) バス異常通知方式
JP3313667B2 (ja) 二重化システムの障害検出方式及びその方法
JP3743381B2 (ja) ホスト間処理同期方式
JP3540119B2 (ja) 割り込みルーティング機構およびマルチプロセッサ制御方式
JP6992295B2 (ja) 電子装置
JP3110124B2 (ja) マルチコンピュータシステムにおける障害検出方式
JPH02289020A (ja) 情報処理装置のタイムアウト処理方式
JP3340284B2 (ja) 冗長システム
JP2815730B2 (ja) アダプタ及びコンピュータシステム
JPH0512235A (ja) 電子機器
JPH02188863A (ja) マルチプロセッサシステム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090217

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090420

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091020

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100118

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100128

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

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

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

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4487756

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140409

Year of fee payment: 4