JP2007200319A - マルチホスト環境における共用の入出力ファブリックのエラー・メッセージをマスタ制御ルート・ノードに経路指定する方法、装置およびプログラム - Google Patents

マルチホスト環境における共用の入出力ファブリックのエラー・メッセージをマスタ制御ルート・ノードに経路指定する方法、装置およびプログラム Download PDF

Info

Publication number
JP2007200319A
JP2007200319A JP2007007741A JP2007007741A JP2007200319A JP 2007200319 A JP2007200319 A JP 2007200319A JP 2007007741 A JP2007007741 A JP 2007007741A JP 2007007741 A JP2007007741 A JP 2007007741A JP 2007200319 A JP2007200319 A JP 2007200319A
Authority
JP
Japan
Prior art keywords
host computer
computer system
error
fabric
error message
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.)
Granted
Application number
JP2007007741A
Other languages
English (en)
Other versions
JP5078366B2 (ja
Inventor
J Recio Renato
レナト・ジェイ・レシコ
Wade Hunter Steven
スティーブン・ウェイド・ハンター
William Todd Boyd
ウィリアム・トッド・ボイド
Steve Mark Thurber
スティーブン・マーク・サーバー
Vega Madeline
マダリン・ヴェガ
William G Holland
ウィリアム・ガーヴィン・ホランド
Douglas M Freimuth
ダグラス・エム・フライムス
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2007200319A publication Critical patent/JP2007200319A/ja
Application granted granted Critical
Publication of JP5078366B2 publication Critical patent/JP5078366B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0784Routing of error reports, e.g. with a specific transmission path or data flow
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0712Error 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 a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0721Error 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 within a central processing unit [CPU]
    • G06F11/0724Error 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 within a central processing unit [CPU] in a multiprocessor or a multi-core unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Information Transfer Systems (AREA)

Abstract

【課題】
どのホスト・ノードおよび入出力ファブリック・デバイスが特定のエラーの影響を受け得るかを入出力ファブリックに対して定義し、そのエラーの影響を受け得るホスト・ノードのみにエラー・メッセージを送付するための方法、装置、及びコンピュータ・プログラムを提供する。
【解決手段】
ファブリックを利用して複数のデバイスを共用する複数のホスト・コンピュータ・システムを含むデータ処理環境において、エラーがデバイスの1つにおいて検出される。そのファブリックにおけるファブリック・デバイスに記憶された経路指定テーブルが、ホスト・コンピュータ・システムのうち、そのエラーの影響を受けるホスト・コンピュータ・システムを識別するために使用される。エラーを識別するエラー・メッセージが、ホスト・コンピュータ・システムのうちの識別されたホスト・コンピュータ・システムに経路指定される。
【選択図】 図5

Description

本発明は、一般的に、データ処理システムに関し、特に、複数のアダプタを共用し、PCI交換ファブリック・バスを介してそれらのアダプタと通信を実施する複数のホスト・コンピュータ・システムおよび複数のアダプタを含むデータ処理システムにおける通信に関する。さらに詳しく言えば、本発明は、1つのデバイスにおいて生じたエラーを、そのエラーの影響を受け得る、そのファブリック内のパスにおけるすべてのトラフィックが中断され、そしてエラーを解消しないうちは、そのエラーの影響を受け得るすべてのホスト・ノードがそのエラー発生の通知の受信を確認するまで待機する単一のマスタ制御ホスト・ノードにレポートするための、コンピュータにおいて実施される方法、装置、およびコンピュータ・プログラムに関する。
通常のPCIバスは、拡張カードがパーソナル・コンピュータのような単一のコンピュータ・システム内に設置されることを可能にするローカル・パラレル・バスである。従って、PCI準拠のアダプタ・カードは、ディスク・ドライブのような入出力(I/O)装置を追加するためにPCIバスを使用することができる。PCIバスをコンピュータ・システムのシステム・バスに接続するためには、PCIブリッジ/コントローラが必要である。PCIバスは、そのPCIバスが設置されるコンピュータ・システムのCPUと、PCIブリッジ/コントローラを介して通信を行うことができる。単一のコンピュータ・システム内に複数のPCIブリッジが存在することがある。しかし、これらのPCIブリッジは、複数のPCIバスを、それらのPCIバスが配置されたコンピュータ・システムのCPUに結合するように働く。かかるコンピュータ・システムが複数のCPUを含む場合は、複数のCPUがPCIバスを利用するようにすることもできる。
PCIエクスプレス(PCI−E)バスは標準のPCIコンピュータ・バスの改良版である。PCIエクスプレスは、より高速のシリアル伝送を実現する。さらに、PCIエクスプレスは、特に、ルート・コンプレックス(RC)がホスト・コンピュータ・システム・サブシステムを入出力に接続する入出力階層構造のルートを示すとともに、木構造の入出力相互接続トポロジを意識して体系化されている。
PCIエクスプレスは、PCIソフトウェア環境と互換性のあるマイグレーション・パスを提供する。PCIエクスプレスは、上位帯域幅、性能、ならびに、バス幅およびバス周波数の両方における拡張容易性を提供することに加えて、サービス品質(QoS:quality of service)、積極的な電源管理、ネイティブ・ホットプラグ、ピン当たりの帯域幅効率、エラー・レポート、回復、修正、および革新的なフォーム・ファクタを含む他の先進的な特徴を提供し、ピア・ツー・ピア転送および動的再構成のような高度の機能に対する要求に適応する。PCIエクスプレスは、低いピン・カウントおよびワイヤを通して製品の低コスト設計も可能にする。線形スケールの16レーンPCIエクスプレス相互接続は、8ギガバイト/秒以上のデータ転送速度を提供することができる。
一般に、ホスト・コンピュータ・システムは、ルート・コンプレックスとして広く知られているPCI・ツー・ホスト・ブリッジ機能を有する。ルート・コンプレックスは、ハイパ・トランスポートのようなCPUバスとPCIバスとの間をブリッジする。必要な場合、アドレス変換のような他の機能をルート・コンプレックスにおいて実施することできる。1以上のルート機能を含む複数ホスト・コンピュータ・システムは、マルチルート・システムとも呼ばれる。ここで、入出力(I/O)ファブリックを共用するマルチルート構成は、これまで十分に検討されていない。
現在では、PCIエクスプレス・バスは、複数の個別のコンピュータ・システム間におけるPCIアダプタの共用を許容していない。PCI標準、あるいは、ファイバ・チャネル、InfiniBand またはイーサネット(登録商標)のような二次的ネットワーク標準に準拠した既知の入出力アダプタは、一般に、ブレードおよびサーバ・コンピュータ・システムとして統合され、それらが統合されるブレードまたはシステムに専用のものである。アダプタを専用化してしまうことは、アダプタがかなり高価なものであるので、各システムのコストを高くする。さらに、種々のホスト・コンピュータ・システム間でアダプタを共用できないということが、これらの技術の採用を遅れさせる一因となっている。
コストの問題のほかに、ブレード・システムには、物理的スペースの問題がある。アダプタ用のブレードにおいてのために利用し得るスペースには制約がある。
入出力ファブリックを共用するマルチルート入出力ネットワーク構成は、これまで十分に検討されていなかった。そのため、既知のシステムでは、エラーが検出された時、そのエラーはすべてのホスト・ノードにレポートされ、入出力ファブリックにおいて検出されたエラーは、一般に、そのファブリックを使用している可能性のあるすべてのホスト・ノードを停止させる可能性があった。
すべてのホストに影響を及ぼし、すべてのホストにレポートされなければならないタイプのエラーが存在する。例えば、スイッチが故障した場合、すべてのホストに通知をする必要がある。しかし、別のタイプのエラーは、特定のホストのみに影響を与えるだけであって、すべてのホストに影響を与えるものではないこともある。例えば、アダプタが機能停止する場合、そのアダプタを利用している各ホスト・ノードにはエラーが通知されなければならないが、その他のホストには通知をする必要がないこともあるだろう。
既知のシステムでは、エラーが特定のホスト・ノードに影響を与えるのかまたはすべてのホスト・ノードに影響を与えるのかに関係なくすべてのエラーがすべてのホスト・ノードにレポートされる。なぜなら、そのエラーの影響を受ける可能性があるホスト・ノードのみにエラーのレポートを経路指定する方法がないためである。
従って、デバイス(コンポーネントとも呼ばれる)において生じたエラーを単一のマスタ制御ホスト・コンピュータ・システムにレポートするための方法、装置、およびコンピュータ・プログラムに対する要求が存在することが理解される。具体的には、ファブリックにおけるパスにあってそのエラーの影響を受け得るすべてのトラフィックが一時的に停止され、そのマスタ制御ホスト・コンピュータ・システムがエラーを解消しないうちは、そのエラーの影響を受け得るすべてのホスト・コンピュータ・システムがそのエラー発生の通知の受信を確認するまでそのマスタ制御ホスト・コンピュータ・システムが待機し、従って、そのエラーの影響を受け得るホスト・コンピュータ・システムのみにエラー・メッセージが経路指定されるようにする、方法、装置、およびコンピュータ・プログラムに対する要求が存在することが理解される。
本発明は、どのホスト・ノードおよび入出力ファブリック・デバイスが特定のエラーの影響を受け得るかを入出力ファブリックに対して定義し、マルチルート環境においてそのエラーの影響を受け得るホスト・ノードのみにエラー・メッセージを送付するための方法、装置、およびコンピュータ・プログラムを提供する。
複数ホスト・コンピュータ・システム環境においてエラー・メッセージを、エラーの影響を受けるホスト・コンピュータ・システムのみに経路指定するためのコンピュータ実施される方法、装置、およびコンピュータ・プログラムが開示される。複数ホスト・コンピュータ・システム環境は、ファブリック(交換ファブリック(switched fabric))を利用して複数のデバイスを共用する複数ホスト・コンピュータ・システムを含む。エラーはそれらデバイスの1つにおいて検出される。そのファブリックにおけるファブリック・デバイスに記憶された経路指定テーブルが、ホスト・コンピュータ・システムのうち、そのエラーの影響を受けるホスト・コンピュータ・システムを識別するために使用される。エラーを識別するエラー・メッセージが、ホスト・コンピュータ・システムのうちの識別されたホスト・コンピュータ・システムに経路指定される。
特に、本発明の実施例は、処理のためのPCIエクスプレス入出力ファブリック・エラー・メッセージを適切なファブリック・デバイスおよびホスト・コンピュータ・システムに伝達するための方法、装置、およびコンピュータ・プログラムに関するものである。
本発明の実施例は、複数のホスト・コンピュータ・システムが共通の入出力ファブリックを介して入出力アダプタ(IOA)のプールを共用する任意の汎用または特定用途のコンピュータ・システムに適用する。好適な実施例では、ファブリックは、PCIエクスプレス標準に準拠したデバイスの集合体である。
本発明の実施例では、複数の種々のホスト・コンピュータ・システムが他のホスト・コンピュータ・システムと入出力アダプタを共用し得るように、入出力ファブリックが2つ以上のホスト・コンピュータ・システムに接続される。入出力ファブリックに結合されたアダプタの1つによって検出されたエラーは、その影響を受けるホスト・コンピュータ・システムおよびマスタ制御ルート・ノードに経路指定される。そのホスト・コンピュータ・システムの1つがマスタ制御ルート・ノードとして作用する。
本発明の実施例によれば、ファブリックは、すべてのアダプタ・エラーを、マスタ制御ルート・ノード、およびそのエラーの影響を受け得るすべての他のホスト・コンピュータ・システムおよび他のファブリック・デバイスにレポートする。そこで、マスタ制御ルート・ノードおよび他のホスト・ノードは、影響を受けるファブリックを介したそれらの伝送を中断する。マスタ制御ルート・ノードは、その影響を受けたすべてのホスト・コンピュータ・システムがそのエラーを知っているということをレポートするまで待機し、しかる後、その影響を受けたホスト・コンピュータ・システムがその影響を受けたファブリック・デバイスを介して入出力オペレーションを再開することをホスト・コンピュータ・システムが可能にする。
次に、図面、特に図1を参照すると、本発明の好適な実施例に従って、分散型コンピュータ・システム100のブロック図が示される。図1に示された分散型コンピュータ・システム100は、2つ以上のルート・コンプレックス(RC)108、118、128、138、および139が入出力リンク110、120、130、142、および143を介して入出力ファブリック144に接続され、ルート・ノード(RN)160〜163のメモリ・コントローラ104、114、124、および134に接続されるという形を取る。ルート・コンプレックスは、ホスト・コンピュータ・システム・サブシステムを入出力に接続する入出力階層構造のルートを表す。ルート・コンプレックスはルート・ノード内に含まれる。ルート・ノードは、サーバ・コンピュータ・システムのような完全なコンピュータ・システムである。ルート・ノードは、本明細書では、ホスト・ノードとも呼ばれる。
入出力ファブリックはリンク151〜158を介して入出力アダプタ145〜150に接続される。入出力アダプタは、入出力アダプタ145〜146および149におけるように単一機能の入出力アダプタであってもよく、入出力アダプタ147〜148および150におけるように多重機能の入出力アダプタであってもよい。さらに、入出力アダプタは、入出力アダプタ145〜148におけるように単一のリンクを介して入出力ファブリックに接続されてもよく、入出力アダプタ149〜150におけるように冗長性のための複数のリンクと接続されてもよい。
ルート・コンプレックス108、118、128、138、および139はルート・ノード160〜163の一部分である。ルート・ノード163におけるように、1つのルート・ノード当たり2つ以上のルート・コンプレックスがあってもよい。各ルート・ノードは、ルート・コンプレックスのほかに1以上の中央処理ユニット(CPU)101〜102、111〜112、121〜122、131〜132、メモリ103、113、123、および133、CPU、メモリ、および入出力ファブリックを接続するメモリ・コントローラ104、114、124、および134を含み、メモリに対するコヒーレンシ・トラフィックを処理する機能等を実現する。
ルート・ノードは、そのメモリ・コントローラにおけるライン159により相互に接続されて1つのコヒーレンシ領域を形成することが可能であり、その場合、単一の対称マルチプロセッサ(SMP)システムとして作用し得る。あるいは、ルート・ノードは、ルート・ノード162〜163におけるように個別のコヒーレンシ領域を有する独立したノードとすることもできる。
構成マネージャ164は、入出力ファブリック144に別個に接続されてもよく、あるいはルート・ノード160〜163の1つの一部分であってもよい。構成マネージャ164は、入出力ファブリックの共用リソースを構成し、リソースをルート・ノードに割り当てる。
分散型コンピュータ・システム100は、種々の商業的に入手可能なコンピュータ・システムを使用して実現することが可能である。例えば、分散型コンピュータ・システム100は、インターナショナル・ビジネス・マシーンズ・コーポレーションから入手し得る IBM eServer iSeries Model 840 システムを使用して実現することが可能である。そのようなシステムは、インターナショナル・ビジネス・マシーンズ・コーポレーションから入手し得るOS/400 オペレーティング・システムを使用して論理的パーティショニングをサポートすることが可能である。
図1に示されたハードウェアが変更可能であることは当業者には明らかであろう。例えば、光ディスク・ドライブ等のような他の周辺装置が図示のハードウェアに加えてまたは図示のハードウェアの代わりに使用することも可能である。図示の例は、本発明の実施例に関してアーキテクチャ上の限定を示唆することを意味するものではない。
次に、図2を参照すると、本発明の実施例を具現化し得る例示的な論理的にパーティション化されたプラットフォームのブロック図が示される。論理的にパーティション化されたプラットフォーム200におけるハードウェアは、例えば、図1における分散型コンピュータ・システム100として具現化することが可能である。論理的にパーティション化されたプラットフォーム200は、パーティション化されたハードウェア230、オペレーティング・システム202、204、206、208、およびパーティション管理ファームウェア(プラットフォーム・ファームウェア)210を含む。
オペレーティング・システム202、204、206、および208は、単一のオペレーティング・システムの多重コピーであってもよく、あるいは論理的にパーティション化されたプラットフォーム200上で同時に実行される複数の異種のオペレーティング・システムであってもよい。これらのオペレーティング・システムは、ハイパーバイザのようなパーティション管理ファームウェア210とインターフェースするように設計されたOS/400を使用して具現化することも可能である。OS/400は、これらの実施例では単に1つの例として使用される。特定の具現化方法に依存して、AIX(R)および Linux(R) のような他のタイプのオペレーティング・システムを使用することも可能である。オペレーティング・システム202、204、206、および208は、パーティション203、205、207、および209に設けられる。パーティション管理ファームウェア210を具現化するために使用することが可能なソフトウェアの一例は、インターナショナル・ビジネス・マシーンズ・コーポレーションから入手可能であるハイパーバイザ・ソフトウェアである。ファームウェアは、例えば、リード・オンリ・メモリ(ROM)、プログラマブルROM(PROM)、消去可能プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、および不揮発性ランダム・アクセス・メモリ(不揮発性RAM)のような、電力なしで内容を保持するメモリ・チップに記憶された「ソフトウェア」である。
さらに、これらのパーティションは、パーティション・ファームウェア211、213,215、および217も含む。パーティション・ファームウェア211、213,215、および217は、初期ブート・ストラップ・コード、IEEE−1275標準オープン・ファームウェア、およびインターナショナル・ビジネス・マシーンズ・コーポレーションから入手可能であるランタイム・アブストラクション・ソフトウェア(RTAS)を使用して具現化することが可能である。パーティション203、205、207、および209がインスタンス化されるとき、ブート・ストラップ・コードのコピーがプラットフォーム・ファームウェア210によってパーティション203、205、207、および209上にロードされる。しかる後、ブート・ストラップ・コードがオープン・ファームウェアおよびRTASをロードすることによって、制御がそのブート・ストラップ・コードに移される。そこで、それらのパーティションに関連したまたは割り当てられたプロセッサが、そのパーティション・ファームウェアを実行するためにパーティションのメモリにディスパッチされる。
パーティション化されたハードウェア230は、複数のプロセッサ232〜238、複数のシステム・メモリ・ユニット240〜246、複数の入出力アダプタ248〜262、ストレージ・ユニット270を含む。プロセッサ232〜238、メモリ・ユニット240〜246、NVRAM298、および入出力アダプタ248〜262の各々、またはそれらの一部は、パーティションの1つに割り当てられることによって論理的パーティション・プラットフォームにおける複数のパーティションの1つにパーティション化されてもよい。その場合、パーティション化されたリソースの各々はオペレーティング・システム202、204、206、および208の1つに対応する。
パーティション管理ファームウェア210は、論理的にパーティション化されたプラットフォーム200のパーティション化を作成および強化するために、パーティション203、205,207、および209に関する多くの機能およびサービスを遂行する。パーティション管理ファームウェア210は、基礎的なハードウェアと同じファームウェア実装の仮想マシンである。従って、パーティション管理ファームウェア210は、論理的にパーティション化されたプラットフォーム200のハードウェア・リソースを仮想化することによって、独立したOSイメージ202、204、206、および208の同時実行を可能にする。
サービス・プロセッサ290は、パーティションにおけるプラットフォーム・エラーの処理のような種々のサービスを提供するために使用することが可能である。これらのサービスは、インターナショナル・ビジネス・マシーンズ・コーポレーションのようなベンダにエラーをレポートするためのサービス・エージェントとして作用することも可能である。種々のパーティションのオペレーションは、ハードウェア管理コンソール280のようなハードウェア管理コンソールを通して制御することが可能である。ハードウェア管理コンソール280は、別個の分散型コンピューティング・システムであり、そのシステムによって、システム管理者が、種々のパーティションへのリソースの再割り振りを含む種々の機能を遂行することが可能である。論理的にパーティション化された(LPAR)環境では、1つのパーティションにおけるリソースまたはプログラムが他のパーティションにおけるオペレーションに影響を与えることは許されないことである。さらに、有用であるために、リソースの割当てはきめ細かくされる必要がある。
図3は、本発明の実施例に従って本明細書に示されたいずれのデータ処理システムを具現化するためにも使用することが可能であるデータ処理システムのブロック図である。データ処理システム300は、システム・バス306に接続された複数のプロセッサ302および304を含む対称マルチプロセッサ(SMP)システムであってもよい。それとは別に、シングル・プロセッサ・システムを使用することも可能である。図示の例では、プロセッサ304はサービス・プロセッサである。システム・バス306には、ローカル・メモリ309に対するインターフェースを提供するメモリ・コントローラ/キャッシュ308が接続される。入出力バス・ブリッジ310がシステム・バス306に接続され、入出力バス312に対するインターフェースを提供する。メモリ・コントローラ/キャッシュ308および/Oバス・ブリッジ310は、図示のように統合されてもよい。
入出力バス312に接続された通常の周辺コンポーネント相互接続(PCI)バス・ブリッジ314は、通常のPCIローカル・バス316に対するインターフェースを提供する。モデム318のような多くの入出力アダプタがPCIバス316に接続されてもよい。典型的なPCIバスの実装体は、4つのPCI拡張スロットまたはアドイン・コネクタをサポートするであろう。モデム318および通信アダプタ320を通して他のコンピュータに対する通信リンクをサポートすることも可能である。通信アダプタ320は、データ処理システム300が通信リンク380を介して他のコンピュータ・システムとの間でメッセージを送信および受信することを可能にする。
更なるPCIバス・ブリッジ322および324は、更なるPCIバス326および328に対するインターフェースを提供し、それらのPCIバスによって、更なるモデムまたはネットワーク・アダプタをサポートすることも可能である。このように、データ処理システム300は、複数のネットワーク・コンピュータへの接続を可能にする。メモリ・マップされたグラフィックス・アダプタ330およびハード・ディスク332を、図示のように、入出力バス312に直接的にまたは間接的に接続することも可能である。
図4は、本発明の実施例に従って、エラーをレポートするために使用されるメッセージ・リクエスト・パケットの一般的なレイアウトのブロック図を示す。メッセージ・リクエスト・パケット400は、ヘッダ・フィールド402、要求元識別子(ID)フィールド404、データ・フィールド406、およびメッセージ・コード・フィールド408を含む。メッセージ・リクエスト・パケット400は、エラーが生じたという通知を送信するために使用される。メッセージ・リクエスト・パケット400は、本明細書では、エラー・メッセージとも呼ばれる。メッセージ・リクエスト・パケット400は、エラー・メッセージを送信するために使用されるエラー・メッセージ・パケットである。
要求元IDフィールド404には、要求元IDが含まれる。要求元IDは、エラーが生じたデバイスを識別する。メッセージ・コード・フィールド408には、メッセージ・コードが保存される。メッセージ・コードは、生じた特定のエラーに関する情報を含む。
図5は、本発明の実施例に従って、唯一のPCIルート・スイッチを含むPCIスイッチのファブリックを利用して、コンピュータ・システムが入出力アダプタのようなアダプタに結合されるデータ処理環境を示す。データ処理環境500はコンピュータ・システム502および504を含む。本明細書では、コンピュータ・システムはホスト・ノードとも呼ばれる。従って、コンピュータ・システム502は、ホスト・ノード502と呼ばれることもある。
コンピュータ・システム502〜504は、物理的アダプタ512、514、516、518、520、522、524、および526を利用する。コンピュータ・システム502〜504および物理的アダプタ512〜526は、ファブリック530を介して相互に通信を行う。ファブリック530は、PCIブリッジ/スイッチ532、534、536、および538のような複数のPCIブリッジ/スイッチを含む。ファブリック530は、PCIエクスプレス標準に準拠したデバイスのファブリックである。PCIスイッチ532はPCIルート・スイッチであり、一方、PCIスイッチ534,536、および538はPCIルート・スイッチではない。コンピュータ・システム502または504のようなホスト・ノードに直接的に接続されるときのPCIスイッチがPCIルート・スイッチである。
各コンピュータ・システムは、図2に示されるように、論理的にパーティション化されてもよい。例えば、コンピュータ・システム502は、論理的パーティション540および論理的パーティション542を含む。コンピュータ・システム504は、論理的パーティション544および論理的パーティション546を含む。
各物理的アダプタは、1つの物理的アダプタが複数の独立したアダプタであるように見えるよう、仮想化されてもよい。例えば、物理的アダプタ512は、2つの個別の仮想アダプタ548および550であるように見える。物理的アダプタ514は、3つの個別の仮想アダプタ552、554、および556であるように見える。物理的アダプタ516は、個別の仮想アダプタ558であるように見える。
各コンピュータ・システムおよび物理的アダプタは、PCIスイッチの1つにおけるポートに結合されることによってファブリック530に結合される。コンピュータ・システム502は、PCIスイッチ532におけるポート560に結合される。コンピュータ・システム504は、PCIスイッチ532におけるポート562に結合される。物理的アダプタ512は、PCIスイッチ534におけるポート564に結合される。物理的アダプタ514は、PCIスイッチ534におけるポート566に結合される。物理的アダプタ516は、PCIスイッチ536におけるポート568に結合される。物理的アダプタ518は、PCIスイッチ538におけるポート570に結合される。物理的アダプタ520は、PCIスイッチ538におけるポート572に結合される。物理的アダプタ522は、PCIスイッチ538におけるポート574に結合される。物理的アダプタ524は、PCIスイッチ538におけるポート576に結合される。物理的アダプタ526は、PCIスイッチ538におけるポート578に結合される。
各PCIスイッチは、ファブリック530内の他のPCIスイッチに結合することも可能である。例えば、PCIスイッチ532におけるポート580がPCIスイッチ534におけるポート582に結合される。PCIスイッチ532におけるポート584がPCIスイッチ536におけるポート586に結合される。PCIスイッチ532におけるポート588がPCIスイッチ538におけるポート590に結合される。
各PCIスイッチには、経路指定テーブルが含まれる。PCIスイッチ532には、経路指定テーブル592が含まれる。PCIスイッチ534には、経路指定テーブル593が含まれる。PCIスイッチ536には、経路指定テーブル594が含まれる。PCIスイッチ538には、経路指定テーブル595が含まれる。
マスタ制御ノード502において、マスタ経路指定テーブル596が生成され、保存される。マスタ経路指定テーブル596は、経路指定テーブル592〜595の組合せであり、経路指定テーブル592〜595のすべての内容を含む。各アダプタは、それ自身のエラー検出および制御ロジックを含む。例えば、アダプタ520は、エラー検出および制御ロジック598を含む。エラー検出および制御ロジックは、1つのアダプタのみに示されているが、それは、すべてのアダプタにおいて、図示されていないが、存在する。
PCIルート・スイッチ、すなわち、図5におけるPCIスイッチ532はレジスタ597を含む。レジスタ597は、各ホスト・ノードに対して1つのビットを含む。図示の例では2つのホスト・ノードしか存在しないので、レジスタ597は2つのホスト・ノード・ビットを含むであろう。各ビットは、ホスト・ノードの異なる1つと関連付けられる。従って、レジスタ597における第1ビットはコンピュータ・システム502と関連付けられ、レジスタ597における第2ビットはコンピュータ・システム504と関連付けられる。
以下は、アダプタ内でエラーが生じたとき、すなわち、アダプタが故障したとき、そのエラーをレポートするという例を説明する。本明細書において説明される方法、装置、およびコンピュータ・プログラムは、システム内のいずれかのコンポーネントにおいてエラーが生じたとき、そのエラーをレポートするために使用することも可能である。この場合、コンポーネントはアダプタ、ブリッジ、スイッチ、または任意の他のデバイスを含む。
本発明の実施例における例として、エラー検出および制御ロジック598がアダプタ520内のエラーを検出する。そこで、エラー検出および制御ロジック598は、図4のパケット400によって示されたフォーマットのメッセージ・リクエスト・パケットを生成する。エラーが生じたアダプタを識別する要求元IDがそのパケットに含められる。この場合、要求元IDはアダプタ520を識別する。メッセージ・リクエスト・パケットは、エラーがアダプタ内で生じたということをホストに知らせるために使用されるエラー・メッセージである。
要求元IDは、ファブリックの初期化時に構成コードによって設定され、PCIエクスプレスに関しては、アダプタ520におけるデバイスのバス番号、デバイス番号、および機能番号である。そこで、メッセージ・リクエスト・パケット400は、それが第1PCIスイッチ、すなわち、PCIスイッチ538に到達するまで、ファブリック530を通して送られる。PCIスイッチ538は経路指定テーブル595を含む。
メッセージ・リクエスト・パケット400は、まず、アダプタ520からPCIスイッチ538に送られる。PCIスイッチ538は、受信したメッセージ・リクエスト・パケットにどのような要求元IDが保存されているかを決定することによって、要求元を識別する。そこで、PCIスイッチ538は、経路指定テーブル595を使用してその要求元のエントリを探索する。
経路指定テーブルにおける正しいエントリのサーチを任意の多くの方法で遂行することが可能であることは当業者には明らかであろう。さらに、経路指定テーブルは、情報が保存される任意のタイプのデータ構造のものであってもよい。それは、例えば、エラー・メッセージにおける要求元IDに等しいそのテーブル内の要求元IDの値に関してそのテーブルをスキャンすることを伴う内容アドレス・メモリ、経路指定テーブルに対するインデックスとしてエラー・メッセージにおける要求元IDの使用等を含む。
PCIスイッチ538は、パケットの要求元IDフィールドにおいて識別されるアダプタ520に関して、中間ポート588に対するビットが設定されるということをその経路指定テーブルから決定する。そこで、PCIスイッチ538は、メッセージ・リクエスト・パケットを中間ポート588に送る。
次に、PCIスイッチ532がそのポート588からこのメッセージ・リクエスト・パケットを受信する。PCIスイッチ532はそれの経路指定テーブル592を使用して、そのパケットにおいて識別される要求元をルックアップすることによりどのルート・ポートおよびどの中間ポートが識別されるかを決定する。PCIスイッチ532は、そのパケットの要求元IDフィールドにおいて識別されるアダプタ520に関して、ルート(ホスト)ポート560および562に対するビットがセットされかつ中間ポートに対するビットがセットされないということをその経路指定テーブルから決定する。そこで、PCIスイッチ532は、メッセージ・リクエスト・パケットをルート・ポート560および562に送る。次に、コンピュータ・システム502は、PCIルート・スイッチ532からメッセージ・リクエスト・パケットを受信するであろう。コンピュータ・システム504も、PCIルート・スイッチ532からメッセージ・リクエスト・パケットを受信するであろう。
コンピュータ・システム502はマスタ制御ノードである。すべてのファブリック・エラーがそのマスタ制御ノードにレポートされる。従って、コンピュータ・システム502は、アダプタ520においてエラーが生じたということを表すメッセージ・リクエスト・パケットをPCIルート・スイッチ532から受信するであろう。そこで、コンピュータ・システム502は、そのレポートされたエラーによってどのパスが影響を受けるかを決定する。コンピュータ・システム502は、そのコンピュータ・システム502に保存されているマスタ経路指定テーブルを調べることによってこの決定を行う。ファブリック全体のトポロジならびにファブリックに接続されたホストおよびアダプタのトポロジに関する情報はマスタ経路指定テーブル592に保存されている。コンピュータ・システム502は、そのトポロジ情報を使用して、ファブリック530を通るどのパスがエラーの影響を受けるかを識別する。エラーがアダプタ520において生じたとする上記の例では、影響を受けるパスはPCIスイッチ538およびPCIスイッチ532を含む。コンピュータ・システム502および504は、エラーの影響を受けるものとしても識別される。
各影響を受けるコンピュータ・システムは、エラーが特定のアダプタにおいて生じたということを表すメッセージ・パケットをそのコンピュータ・システムが受信するとき、そのエラーに関して通知されるであろう。コンピュータ・システムがそのようなメッセージ・パケットを受信するとき、そのコンピュータ・システムはその特定のアダプタへのトラフィックを中断するであろう。そこで、このコンピュータ・システムは、このコンピュータ・システムがそのエラーに気づきそして特定のアダプタへのトラフィックを中断したということを通知することによって、そのエラーを確認する責任を負う。そこで、コンピュータ・システムは、そのエラーが解消されるまで待機し、しかる後、そのコンピュータ・システムは特定のアダプタへの伝送トラフィックを再び開始する。
マスタ制御ノードは、そのマスタ制御ノードがエラーを解消しないうちは、そのエラーの影響を受けた各ホスト・コンピュータ・システムがそのエラーを確認するまで待機する。各ルートPCIスイッチは、各ホスト・コンピュータ・システムに対して1つのビットが割り当てられているレジスタを含む。コンピュータ・システムは、このレジスタにおける関連するビットをセットすることによってエラー・メッセージの受信を確認する。そこで、マスタ制御ノードはそのレジスタをポーリングして、特定のホスト・コンピュータ・システムがエラーの受信を確認したかどうかを判定することができる。
すべての影響を受けたコンピュータ・システムがエラーの受信を確認した後、マスタ制御ノードはレジスタにおけるビットをクリアするであろう。マスタ制御ノードは、レジスタにおけるコンピュータ・システムのビットをクリアすることによってそのエラーが解消されたことをコンピュータ・システムに示す。コンピュータ・システムがエラー・メッセージを受信したことを表すためにそのコンピュータ・システムがレジスタにおけるそれのビットをセットした後、そのコンピュータ・システムは、そのコンピュータ・システムのビットが今でもセットされているかどうかを決定するためにそのレジスタをポーリングし続けるであろう。コンピュータ・システムのビットがクリアされるとき、そのコンピュータ・システムは、それが特定のアダプタへの伝送トラフィックを再び開始し得るということを通知される。
コンピュータ・システム502がメッセージ・リクエスト・パケットを受信するとき、コンピュータ・システム502は、この場合、アダプタ520である故障コンポーネントを介したトラフィックを中断するであろう。コンピュータ・システム502がメッセージ・リクエスト・パケットを受信するとき、コンピュータ・システム502はレジスタ597をポーリングして、コンピュータ・システム504に対するビットがセットされているかどうか決定するであろう。コンピュータ・システム504に対するビットがセットされていることをコンピュータ・システム502が決定するまで、コンピュータ・システム502はレジスタ597をポーリングし続けるであろう。コンピュータ・システム504に対するビットがセットされているとき、コンピュータ・システム502はレジスタ597のビットをクリアするであろう。この時点で、コンピュータ・システム502は、可能であれば、アダプタ520への伝送トラフィックを再開するであろう。
コンピュータ・システム502がエラー・メッセージを受信するときに生じる上記のプロセスと同時に、コンピュータ・システム504がメッセージ・パケットを受信するとき、コンピュータ・システム504はアダプタ520へのそれのトラフィックを中断するであろう。そこで、コンピュータ・システム504はレジスタ597におけるビットをセットするであろう。コンピュータ・システム504がセットするビットは、そのコンピュータ・システム504と関連するビットである。このビットがセットされるとき、それは、コンピュータ・システム504がエラーの通知を受信したということ、すなわち、それがメッセージ・リクエスト・パケットを受信したということを表す。そのビットがクリアされているとき、それは、コンピュータ・システム504がエラーの通知を受信していないということを表す。そこで、コンピュータ・システム504はレジスタ597をポーリングして、そのコンピュータ・システム504と関連するビットが今でもセットされているかどうかを決定する。そのビットがセットされている間、コンピュータ・システム504はアダプタ520へのそれのトラフィックを中断し続け、そのレジスタをポーリングし続ける。そのビットがクリアされるとき、コンピュータ・システム504はアダプタ520への伝送トラフィックを再開するであろう。
図6は、本発明の実施例に従って、複数のPCIルート・スイッチを含むPCIスイッチのファブリックを利用して、コンピュータ・システムが入出力アダプタのようなアダプタに結合されるデータ処理システムを示す。データ処理システム600はコンピュータ・システム602、604、606、608、および610を含む。コンピュータ・システム602〜610は、物理的アダプタ612、614、616、618、620、622、624、および626を利用する。コンピュータ・システム602〜610および物理的アダプタ612〜626は、ファブリック630を介して相互に通信を行う。ファブリック630は、PCIブリッジ/スイッチ632、633、634、635、636、および638のような複数のPCIブリッジ/スイッチを含む。PCIスイッチ632、633、および634はPCIルート・スイッチであり、一方、PCIスイッチ635、636、および638はPCIルート・スイッチではない。PCIスイッチは、そのPCIスイッチがコンピュータ・システム602〜610の1つのようなホスト・ノードに直接的に接続されるとき、PCIルート・スイッチである。
各コンピュータ・システムは、図2に示されるように、論理的にパーティションすることが可能である。例えば、コンピュータ・システム602は、論理的パーティション640および論理的パーティション642を含む。コンピュータ・システム604は、論理的パーティション644および論理的パーティション646を含む。
各物理的アダプタは、1つの物理的アダプタが複数の、個別の、および独立したアダプタであるように見えるように仮想化されることも可能である。例えば、物理的アダプタ612は2つの個別の仮想アダプタ648および650であるように見える。物理的アダプタ614は3つの個別の仮想アダプタ652、654、および656であるように見える。物理的アダプタ616は仮想アダプタ658であるように見える。
各コンピュータ・システムおよび物理的アダプタは、PCIスイッチの1つにおけるポートに結合されることによってファブリック630に結合される。コンピュータ・システム602がPCIスイッチ632におけるポート660、スイッチ633におけるポート661、およびスイッチ634におけるポート665に結合される。コンピュータ・システム604がPCIスイッチ633におけるポート662に結合される。コンピュータ・システム606がPCIスイッチ633におけるポート664に結合される。コンピュータ・システム608がPCIスイッチ634におけるポート666に結合される。コンピュータ・システム610がPCIスイッチ634におけるポート668に結合される。
物理的アダプタ512がPCIスイッチ635におけるポート670に結合される。物理的アダプタ614がPCIスイッチ635におけるポート671に結合される。物理的アダプタ616がPCIスイッチ636におけるポート672に結合される。物理的アダプタ618がPCIスイッチ638におけるポート673に結合される。物理的アダプタ620がPCIスイッチ638におけるポート674に結合される。物理的アダプタ622がPCIスイッチ638におけるポート675に結合される。物理的アダプタ624がPCIスイッチ638におけるポート676に結合される。物理的アダプタ626がPCIスイッチ638におけるポート677に結合される。
各PCIスイッチは、ファブリック630内の他のPCIスイッチに結合することも可能である。例えば、PCIスイッチ632におけるポート678がPCIスイッチ635におけるポート679に結合される。PCIスイッチ633におけるポート680がPCIスイッチ636におけるポート682に結合される。PCIスイッチ634におけるポート683がPCIスイッチ638におけるポート684に結合される。PCIスイッチ635におけるポート685がPCIスイッチ636におけるポート686に結合される。
各PCIスイッチには、経路指定テーブルが含まれる。PCIスイッチ632には、経路指定テーブル687が含まれる。PCIスイッチ633には、経路指定テーブル688が含まれる。PCIスイッチ634には、経路指定テーブル689が含まれる。PCIスイッチ635には、経路指定テーブル690が含まれる。PCIスイッチ636には、経路指定テーブル691が含まれる。PCIスイッチ638には、経路指定テーブル692が含まれる。
マスタ制御ノード602は、そのマスタ制御ノード602内にマスタ経路指定テーブル693を生成および保存する。マスタ経路指定テーブル693は、経路指定テーブル687〜692の結合体を含む。
図6におけるPCIスイッチ632〜634はPCIルート・スイッチである。従って、各PCIスイッチはレジスタを含む。PCIスイッチ632はレジスタ694を含む。PCIスイッチ633はレジスタ695を含む。PCIスイッチ634はレジスタ696を含む。
これらのレジスタの各々は、各ホスト・ノードに対して1つのビットを含む。したがって、各レジスタは、マスタ制御ノード602と関連した第1ビット、コンピュータ・システム604と関連した第2ビット、コンピュータ・システム606と関連した第3ビット、コンピュータ・システム608と関連した第4ビット、およびコンピュータ・システム610と関連した第5ビットを含むであろう。5つのホスト・ノードが存在するので、レジスタ687〜689はそれぞれ5つのホスト・ノード・ビットを含むであろう。各ビットは、それらのホスト・ノードの異なる1つと関連する。
各アダプタは、エラー検出および制御ロジックを含む。例えば、アダプタ620は、エラー検出および制御ロジック697を含む。
本発明の1つの実施例として、エラー検出および制御ロジック697がアダプタ620内のエラーを検出する。しかる後、エラー検出および制御ロジック697は、アダプタ620を識別する要求元IDが書込まれるメッセージ・リクエスト・パケット400を生成する。このメッセージ・リクエスト・パケットは、アダプタ620内でエラーが生じたということを各ホスト・ノードに通知するために使用されるエラー・メッセージである。そこで、メッセージ・リクエスト・パケット400は、それが第1PCIスイッチ、すなわち、PCIスイッチ638に達するまで、ファブリック630を通して送られる。
PCIスイッチ638は、どのような要求元IDがメッセージ・リクエスト・パケットに保存されているか決定することによって要求元を識別する。そこで、PCIスイッチ638は、経路指定テーブル692を使用してテーブル692における要求元のエントリをルックアップする。PCIスイッチ638は、そのパケットの要求元IDフィールドにおいて識別されるアダプタ620に関して、中間ポート683に対するビットがセットされているということをそれの経路指定テーブルから決定する。そこで、PCIスイッチ638はメッセージ・リクエスト・パケットを中間ポート683に送る。
次に、PCIスイッチ634が、それのポート683からこのメッセージ・リクエスト・パケットを受信する。PCIスイッチ634は、それの経路指定テーブル689を使用して、そのパケットにおいて識別される要求元をルックアップすることによってどのルート・ポートおよびどの中間ポートが識別されるかを決定する。PCIスイッチ634は、パケットの要求元IDフィールドにおいて識別されるアダプタ620に関して、ルート(ホスト)ポート665、666、および668に対するビットがセットされ、いずれの中間ポートに対するビットもセットされてないということをその経路指定テーブルから決定する。次に、PCIスイッチ634は、メッセージ・リクエスト・パケットをルート・ポート665、666、および668に送る。
コンピュータ・システム602、608、および610は、それぞれ、PCIルート・スイッチ634からメッセージ・リクエスト・パケットを受信する。コンピュータ・システム608がメッセージ・パケットを受信するとき、コンピュータ・システム608はアダプタ620へのそれのトラフィックを中断するであろう。次に、コンピュータ・システム608はレジスタ696における1つのビットをセットする。コンピュータ・システム608がセットするビットは、コンピュータ・システム608と関連するビットである。このビットがセットされるとき、それは、コンピュータ・システム608がエラーの通知、すなわち、メッセージ・リクエスト・パケットを受信したことを表す。そのビットがクリアされているとき、それは、コンピュータ・システム608がエラーの通知を受信していないことを表す。次に、コンピュータ・システム608は、レジスタ696をポーリングして、そのコンピュータ・システム608と関連するビットがセットされているかどうかを決定する。そのビットがセットされている間、コンピュータ・システム608はアダプタ620へのそれのトラフィックを中断し、そのレジスタをポーリングし続ける。そのビットがクリアされるとき、コンピュータ・システム608はアダプタ620への伝送トラフィックを再開するであろう。
コンピュータ・システム610がメッセージ・リクエスト・パケットを受信するとき、コンピュータ・システム610はアダプタ620へのそれのトラフィックを中断するであろう。次に、コンピュータ・システム610はレジスタ696における1つのビットをセットする。コンピュータ・システム610がセットするビットは、コンピュータ・システム610と関連するビットである。このビットがセットされるとき、それは、コンピュータ・システム610がエラーの通知を受信したことを表す。そのビットがクリアされているとき、それは、コンピュータ・システム610がエラーの通知を受信していないことを表す。次に、コンピュータ・システム610は、レジスタ696をポーリングして、そのコンピュータ・システム610と関連するビットがセットされているかどうかを決定する。そのビットがセットされている間、コンピュータ・システム610はアダプタ620へのそれのトラフィックを中断し、そのレジスタをポーリングし続ける。そのビットがクリアされるとき、コンピュータ・システム610はアダプタ620への伝送トラフィックを再開するであろう。
次に、コンピュータ・システム602がレジスタ696をポーリングし、コンピュータ・システム608および610と関連するビットがセットされているかどうかを決定する。コンピュータ・システム602は、コンピュータ・システム608および610に対するビットがセットされていることをそのコンピュータ・システム602が決定するまで、レジスタ696をポーリングし続けるであろう。コンピュータ・システム608および610に対するビットがセットされていたとき、コンピュータ・システム602はレジスタ696のビットをクリアするであろう。この時点で、コンピュータ・システム608および610はアダプタ620への伝送トラフィックを再開するであろう。
図7は、本発明の実施例に従って、経路指定テーブル・エントリ700を示す。エントリ700は、エラーが生じたデバイスを識別する要求元識別子(ID)702を含む。エントリ700はさらにルート・ポート・ビット・アレイ704を含む。アレイ704における各ビットは、メッセージ・リクエスト・パケットが経路指定される必要のあるルート・ポートに対応する。エントリ700は中間ポート・ビット・アレイ706を含む。アレイ706における各ビットは、メッセージ・リクエスト・パケットが経路指定される必要のある中間ポートに対応する。
図8は、本発明の実施例に従って、マスタ制御ノードがファブリック・トポロジを用いて経路指定テーブルを生成しかつそれらのテーブルを移植する操作を示す高レベルのフローチャートである。プロセスはブロック800によって示されるように開始し、ブロック802に進む。ブロック802は、マスタ制御ノードがファブリックを全探索してそのファブリックおけるすべてのデバイスを識別し、ファブリック・トポロジを識別する。ファブリック・トポロジは、各デバイスを識別することおよびこれらのデバイスの相互接続性、すなわち、それらのデバイスすべてを相互に接続する方法を識別することによって識別される。次に、ブロック804は、マスタ制御ノードがマスタ経路指定テーブルを生成することを示す。そこで、マスタ制御ノードはマスタ経路指定テーブルをそのマスタ制御ノードに保存する。
次に、プロセスはブロック806に進む。ブロック806は、マスタ制御ノードがファブリック全体のトポロジをマスタ経路指定テーブルに保存することを示す。次に、ブロック808は、マスタ制御ノードがファブリックにおける各PCIスイッチに対する経路指定テーブルを生成することを示す。そこで、マスタ制御ノードは、各PCIスイッチの経路指定テーブルをそのPCIスイッチに保存する。しかる後、ブロック810は、マスタ制御ノードが各可能な要求元に対するエントリを有する各PCIスイッチのテーブルをそのPCIスイッチに移植する。各エントリは、すべての可能なルート・ポートおよび中間ポートを識別する。そこで、プロセスは、ブロック812に示されるように終了する。
図9は、本発明の実施例に従って、エラーを検出し、そのエラーを記述したメッセージ・リクエスト・パケットを生成および伝送するエラー検出および制御ロジックを示す高レベルのフローチャートである。プロセスは、ブロック900によって示されるように開始し、しかる後、ブロック902に進む。ブロック902は、エラー検出ロジックがエラーを検出することを示す。ブロック904は、そのエラーを生じたデバイスをエラー検出ロジックが識別することを示す。そのデバイスの識別標識は、メッセージ・リクエスト・パケットにおける要求元識別子(ID)として使用される。
次に、ブロック906は、エラー検出ロジックがメッセージ・リクエスト・パケットを生成することを示す。エラー検出ロジックは、要求元IDをそのパケットの要求元IDフィールドに挿入し、この特定のエラーに関する情報をそのパケットのメッセージ・コード・フィールドに挿入する。そのエラーに関する情報はそのエラーのタイプを識別する。しかる後、ブロック908は、エラー検出ロジックがファブリックへのメッセージ・パケットをそれの最も近いPCIスイッチまで伝送すること示す。そこで、プロセスは、ブロック910によって示されるように終了する。
図10は、本発明の実施例に従って、PCIスイッチがそれの経路指定テーブルを利用してメッセージ・リクエスト・パケットを送り、故障した入出力アダプタに結合されたポートを介して入出力オペレーションを中断することを示す高レベルのフローチャートを示す。プロセスは、ブロック1000によって示されるように開始し、しかる後、ブロック1002に進む。ブロック1002は、PCIスイッチがメッセージ・リクエスト・パケットを受信することを示す。次に、ブロック1004は、PCIスイッチがそれの内部経路指定テーブルを使用して、メッセージ・リクエスト・パケットにおいて識別される要求元IDをルックアップすることを示す。そこで、プロセスはブロック1006に進む。ブロック1006は、この要求元IDに対する経路指定テーブルのエントリを使用してすべてのルート・ポートおよび中間ポートを識別することを示す。エントリが要求元IDを使用して位置指定される。一旦この要求元IDに対するエントリが位置指定されると、そのエントリにおいて識別されたルート・ポートおよび中間ポートが識別される。次に、ブロック1008は、PCIスイッチが、経路指定テーブルにおいて識別された各ルート・ポートおよび各中間ポートにそのメッセージ・リクエスト・パケットを伝送することを示す。
次に、ブロック1010は、PCIスイッチが、故障したアダプタに直接的にまたは間接的に結合されているその経路指定テーブルにおいて識別されたすべてのポートを介してその故障したアダプタに対するすべてのオペレーションを中断することを示す。そこで、プロセスは、ブロック1012によって示されるように終了する。
図11は、本発明の実施例に従って、エラーが解消されないうちは、ファブリック内の潜在的に影響を受けるパスにおけるすべてのトラフィックが中断され、すべての潜在的に影響を受けるホスト・ノードが、エラーが生じたという通知の受信を確認するまで、マスタ制御ノードが待機することを示す高レベルのフローチャートを示す。プロセスは、ブロック1100によって示されるように開始し、しかる後、ブロック1102に進む。ブロック1102は、マスタ制御ノードがメッセージ・リクエスト・パケットを受信することを示す。次に、ブロック1104は、マスタ制御ノードが、その影響を受けるファブリックを通してそのパケットにおける識別されたアダプタに送られるトラフィックを中断することを示す。その影響を受けるファブリックは、マスタ経路指定テーブルにおいて識別されたポートを含む。
次に、プロセスはブロック1106に進む。ブロック1106は、マスタ制御ノードがそれのマスタ経路指定テーブルを使用して、どのホスト・ノードがこのエラーの影響を受けるかを決定する。次に、ブロック1108は、各PCIルート・スイッチの各レジスタにおける各影響を受けるホスト・ノードに対するビットがセットされているかどうかを決定するために、マスタ制御ノードがすべてのPCIルート・スイッチにおけるレジスタをポーリングする。次に、ブロック1110は、各PCIルート・スイッチの各レジスタにおける各影響を受けるホスト・ノードに対するすべてのビットがセットされているかどうかの決定を示す。各PCIルート・スイッチの各レジスタにおける各影響を受けるホスト・ノードに対するすべてのビットがセットされているわけではないという決定が行われる場合、プロセスはブロック1108に戻る。各PCIルート・スイッチの各レジスタにおける各影響を受けるホスト・ノードに対するすべてのビットがセットされているという決定が行われる場合、プロセスはブロック1112に進む。ブロック1112は、マスタ制御ノードが各PCIルート・スイッチにおける各レジスタをクリアすることを示す。そこで、プロセスはブロック1114によって示されるように終了する。
図12は、本発明の実施例に従って、エラーの影響を受けるすべてのホスト・ノードがエラーを確認したことをマスタ制御ノードが信号するまで、ホスト・ノードが、エラーの影響を受けるファブリックの部分を介するそれのトラフィックを中断することを示す高レベルのフローチャートを示す。プロセスは、ブロック1200によって示されるように開始し、しかる後、ブロック1202に進む。ブロック1202は、ホスト・ノードがメッセージ・リクエスト・パケットを受信することを示す。次に、ブロック1204は、ホスト・ノードが、エラー・メッセージにおける影響を受けるアダプタへの、その影響を受けるポートを介するそのトラフィックを中断すること、およびPCIルート・スイッチのレジスタにおけるビットをセットすることを示す。これは、この特定のホスト・ノードと関連するビットである。
次に、プロセスはブロック1206に進む。ブロック1206は、このホスト・ノードと関連するビットがこのPCIルート・ノードのレジスタにおいてセットされているかどうかを決定するために、ホスト・ノードがすべてのPCIルート・スイッチにおけるレジスタをポーリングする。次に、ブロック1208は、ビットが現在クリアされているすべてのPCIスイッチを介した伝送トラフィックを再開することを示す。しかる後、ブロック1210は、PCIルート・スイッチにおけるいずれか1つのレジスタにおけるこのホスト・ノードと関連するいずれかのビットが依然としてセットされているか否かの決定を示す。PCIルート・スイッチの1つにおけるレジスタにおいて少なくとも1つのビットが依然としてセットされているという決定が行われる場合、プロセスはブロック1206に戻る。すべてのPCIルート・スイッチにおけるすべてのビットがクリアされているという決定が行われる場合、プロセスはブロック1212によって示されるように終了する。
本発明は、全体的にハードウェアの実施例、全体的にソフトウェアの実施例、またはハードウェアの要素およびソフトウェアの要素の両方を含む実施例の形を取り得る。好適な実施例では、本発明は、ファームウェア、常駐のソフトウェア、マイクロコード等を含むがそれに限定されないソフトウェアによって具現化される。
さらに、本発明は、コンピュータまたは任意の命令実行システムによってあるいはそれらに関連して使用するためのプログラム・コードを提供するコンピュータ使用可能媒体またはコンピュータ可読媒体からアクセスし得るコンピュータ・プログラムの形を取ることができる。この説明のためには、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスによってあるいはそれらと関連して使用するためのプログラムを含み、保存、通信、伝播、または搬送することができる任意の実態的な装置であることも可能である。
その媒体は、電子的、磁気的、光学式、電磁的、赤外線、または半導体システム(または装置、またはデバイス)あるいは伝送媒体であってもよい。コンピュータ可読媒体の例は、半導体またはソリッド・ステート・メモリ、磁気テープ、取外し可能フロッピ・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、固定磁気ディスク、および光ディスクを含む。光ディスクの現在の例は、コンパクト・ディスク・リード・オンリ・メモリ(CD−ROM)、コンパクト・ディスク・リード/ライト(CD−R/W)、およびDVDを含む。
プログラム・コードを保存し、実行するに適したデータ処理システムは、システム・バスを介してメモリ素子に直接的または間接的に結合された少なくとも1つのプロセッサを含むであろう。メモリ素子は、プログラム・コードの実際の実行中に使用されるローカル・メモリ、大容量記憶装置、および、実行中にコードが大容量記憶装置から検索されなければならない回数を減らすために、プログラム・コードの一時的記憶装置を提供するキャッシュ・メモリを含み得る。
入出力装置(キーボード、ディスプレイ、ポインティング装置等を含むが、それに限定されない)は、直接的にまたは入出力コントローラを介してシステムに結合することが可能である。
ネットワーク・アダプタは、そのシステムに結合してデータ処理システムが介在のプライベート・ネットワークまたは公衆ネットワークを介して他のデータ処理システム、リモート・プリンタ、記憶装置などに結合することを可能する。モデム、ケーブル・モデム、およびイーサネット(登録商標)は、現時点で使用し得るタイプのネットワーク・アダプタである。
本発明の実施例に関する記述は、図解および説明を目的として与えられたものであり、網羅的であることおよび開示された形に発明を限定することを意図するものではない。当業者にとって、多くの修正および変更が明らかであろう。実施例は、本発明の原理を最もよく説明し、考えられる特定の用途に適するような種々の修正を伴う種々の実施例に関して当業者が本発明を理解することを可能にするために、選択され説明された。
本発明の好適な実施例に従って示された分散型コンピュータ・システムの概略的なブロック図である。 本発明の実施例を具現化し得る例示的な論理的にパーティション化されたプラットフォームのブロック図である。 本発明の実施例に従って示された任意のデータ処理システムを具現化するために使用されるデータ処理システムのブロック図である。 本発明の実施例に従って、エラーをレポートするために使用されるメッセージ・レポート・パケットの一般的なレイアウトのブロック図である。 本発明の実施例に従って、1つのPCIルート・スイッチしか含まないPCIスイッチのファブリックを利用して、入出力アダプタのようなアダプタにコンピュータ・システムが結合されるデータ処理環境を示すブロック図である。 本発明の実施例に従って、複数のPCIルート・スイッチを含むPCIスイッチのファブリックを利用して、入出力アダプタのようなアダプタにコンピュータ・システムが結合されるデータ処理環境を示すブロック図である。 本発明の実施例に従って、経路指定テーブル・エントリを示すブロック図である。 本発明の実施例に従って、マスタ制御ノードが経路指定テーブルを生成しかつそれらのテーブルにファブリック・トポロジを移植することを示す高レベルのフローチャートである。 本発明の実施例に従って、エラー検出ロジックがエラーを検出しかつそのエラーを記述したメッセージ・リクエスト・パッケージを生成および伝送することを示す高レベルのフローチャートである。 本発明の実施例に従って、PCIスイッチがメッセージ・リクエスト・パケットを送るためにおよび故障した入出力アダプタに結合されたポートを介して入出力オペレーションを中断するために経路指定テーブルを利用することを示す高レベルのフローチャートである。 本発明の実施例に従って、エラーを解消しないうちは、ファブリック内の潜在的に影響を受けるパスにおけるすべてのトラフィックが中断されかつすべての潜在的に影響を受けるホスト・ノードが、そのエラーが生じたという通知の受信を確認するまで、マスタ制御ノードが待機することを示す高レベルのフローチャートである。 本発明の実施例に従って、エラーの影響を受けるすべてのホスト・ノードがそのエラーを確認したということをマスタ制御ノードが信号するまで、ホスト・ノードが、そのエラーの影響を受けるファブリックの部分を通してそれのファブリックを中断することを示す高レベルのフローチャートである。

Claims (20)

  1. 複数のホスト・コンピュータ・システムを含むデータ処理環境においてコンピュータ実施される方法であって、
    前記複数のホスト・コンピュータ・システムは複数のデバイスにファブリックを使用して結合され、
    前記ファブリックは、複数のホスト・コンピュータ・システムのうちの、エラー・メッセージによって識別されるエラーの影響を受けるホスト・コンピュータ・システムのみに前記エラー・メッセージを経路指定し、
    前記データ処理環境に含まれる前記複数のデバイスの1つにおけるエラーを検出するステップと、
    前記ファブリックにおけるファブリック・デバイスに保存された経路指定テーブルを使用し、前記複数のホスト・コンピュータ・システムのうちの、前記エラーの影響を受けるホスト・コンピュータ・システムを識別するステップと、
    前記エラーを識別するエラー・メッセージを、前記識別するステップにおいて識別されたホスト・コンピュータ・システムのみに経路指定するステップと、
    を含む、方法。
  2. 前記エラーの影響を受けるホスト・コンピュータ・システムを識別する単一のマスタ制御ノードに前記エラー・メッセージを経路指定するステップをさらに含む、請求項1に記載の方法。
  3. 前記エラー・メッセージを単一のマスタ制御ノードに経路指定するステップと、
    前記エラーが解消されないうちは、前記識別されたホスト・コンピュータ・システムのすべてが前記エラー・メッセージの受信を確認するまで、前記マスタ制御ノードを待機させるステップと、
    前記エラーが解消されるまで前記複数のデバイスの前記1つへの伝送トラフィックを中断するステップと、
    をさらに含む、請求項1に記載の方法。
  4. 前記識別されたホスト・コンピュータ・システムの第1のホスト・コンピュータ・システムが前記エラー・メッセージを受信するステップと、
    前記識別されたホスト・コンピュータ・システムの第1のホスト・コンピュータ・システムが前記エラー・メッセージの受信を確認するステップと、
    前記識別されたホスト・コンピュータ・システムの第1のホスト・コンピュータ・システムが前記第1のホスト・コンピュータ・システムから前記複数のデバイスの前記1つへの伝送トラフィックを中断するステップと、
    前記エラーが解消されるまで前記第1のホスト・コンピュータ・システムが待機し、しかる後前記複数のデバイスの前記1つへの伝送トラフィックを再開するステップと、
    をさらに含む、請求項1に記載の方法。
  5. 前記ファブリックはレジスタを備え、
    前記レジスタにおける個々のビットを前記複数のホスト・コンピュータ・システムの各々に割り当てるステップと、
    前記エラー・メッセージに応答して、前記複数のデバイスの前記1つへの伝送トラフィックを中断するステップと、
    前記識別されたホスト・コンピュータ・システムの第1のホスト・コンピュータ・システムが前記エラー・メッセージを受信するステップと、
    前記識別されたホスト・コンピュータ・システムの第1のホスト・コンピュータ・システムに割り当てられているビットをセットすることによって、前記識別されたホスト・コンピュータ・システムの第1のホスト・コンピュータ・システムが前記エラー・メッセージの受信を確認するステップと、
    前記識別されたホスト・コンピュータ・システムのすべてが前記エラー・メッセージの受信を確認したかどうかを決定するために、マスタ制御ノードが前記レジスタをポーリングするステップと、
    前記識別されたホスト・コンピュータ・システムのすべてが前記エラー・メッセージの受信を確認したという前記マスタ制御ノードによる決定に応答して、前記識別されたホスト・コンピュータ・システムが前記複数のデバイスの前記1つへの伝送トラフィックを再開することを可能にするために前記エラーを解消するステップと、
    前記識別されたホスト・コンピュータ・システムのすべてが前記エラー・メッセージの受信を確認したのではないという前記マスタ制御ノードによる決定に応答して、前記エラーの解消を待つステップであって、前記エラーの解消を待つ間、前記複数のデバイスの前記1つへのトラフィックが中断されたままである、ステップと、
    をさらに含む、請求項1に記載の方法。
  6. 前記ファブリックにおける前記ファブリック・デバイスのすべての識別情報、ならびに、前記ファブリック・デバイス、前記複数のホスト・コンピュータ・システム、および前記複数のデバイスの相互接続性を含むトポロジを識別するために、前記マスタ制御ノードが前記ファブリックを全探索するステップと、
    前記トポロジを前記マスタ制御ノードに保存するステップと、
    をさらに含む、請求項1に記載の方法。
  7. 前記ファブリックにおける前記ファブリック・デバイスの1つに関して、前記ファブリック・デバイスの前記1つに接続されるすべてのファブリック・デバイスを識別するデバイス・トポロジを決定するステップと、
    前記ファブリック・デバイスの前記1つに含まれた前記経路指定テーブルに前記デバイス・トポロジを保存するステップと、
    をさらに含む、請求項1に記載の方法。
  8. 前記複数のデバイスが複数の入出力アダプタであり、前記複数の入出力アダプタの1つにおけるエラーを検出するステップをさらに含む、請求項1に記載の方法。
  9. 複数のホスト・コンピュータ・システムを含むデータ処理環境における装置であって、
    前記複数のホスト・コンピュータ・システムは複数のデバイスにファブリックを使用して結合され、
    前記ファブリックは、複数のホスト・コンピュータ・システムのうちの、エラー・メッセージによって識別されるエラーの影響を受けるホスト・コンピュータ・システムのみに前記エラー・メッセージを経路指定し、
    前記ファブリックにおけるファブリック・デバイスに保存され、前記複数のホスト・コンピュータ・システムのうちの、前記データ処理環境内に含まれる複数のデバイスの1つにおいて生じたエラーの影響を受けるホスト・コンピュータ・システムを識別するための経路指定テーブルと、
    前記エラーを識別し、前記経路指定テーブルによって識別されたホスト・コンピュータ・システムのみに経路指定されるエラー・メッセージを生成する手段と、
    を含む、装置。
  10. 前記識別されたホスト・コンピュータ・システムを識別する単一のマスタ制御ノードをさらに含み、前記エラー・メッセージが前記マスタ制御ノードに経路指定される、請求項9に記載の装置。
  11. 単一のマスタ制御ノードを含み、
    前記エラー・メッセージが前記マスタ制御ノードに経路指定され、
    前記エラーが解消されないうちは、前記識別されたホスト・コンピュータ・システムのすべてが前記エラー・メッセージの受信を確認するまで、前記マスタ制御ノードが待機し、
    前記エラーが解消されるまで、前記複数のデバイスの前記1つへのトラフィックが中断される、
    請求項9に記載の装置。
  12. 前記識別されたホスト・コンピュータ・システムの第1のホスト・コンピュータ・システムが前記エラー・メッセージを受信し、
    前記識別されたホスト・コンピュータ・システムの第1のホスト・コンピュータ・システムが前記エラー・メッセージの受信を確認し、
    前記識別されたホスト・コンピュータ・システムの第1のホスト・コンピュータ・システムが前記第1のホスト・コンピュータ・システムから前記複数のデバイスの前記1つへの伝送トラフィックを中断し、
    前記エラーが解消されるまで前記第1のホスト・コンピュータ・システムが待機し、しかる後前記複数のデバイスの前記1つへの伝送トラフィックを再開する、
    請求項9に記載の装置。
  13. 前記ファブリックはレジスタを備え、
    前記レジスタにおける個々のビットが前記複数のホスト・コンピュータ・システムの各々に割り当てられ、
    前記エラー・メッセージに応答して、前記複数のデバイスの前記1つへのトラフィックが中断され、
    前記識別されたホスト・コンピュータ・システムの第1のホスト・コンピュータ・システムが前記エラー・メッセージを受信し、
    前記識別されたホスト・コンピュータ・システムの前記第1のホスト・コンピュータ・システムが、前記第1のホスト・コンピュータ・システムに割り当てられたビットをセットすることによって、前記エラー・メッセージの受信を確認し、
    前記識別されたホスト・コンピュータ・システムのすべてが前記エラー・メッセージの受信を確認したかどうかを決定するためにマスタ制御ノードが前記レジスタをポーリングし、
    前記識別されたホスト・コンピュータ・システムのすべてが前記エラー・メッセージの受信を確認したという前記マスタ制御ノードによる決定に応答して、前記識別されたホスト・コンピュータ・システムが前記複数のデバイスの前記1つへの伝送トラフィックを再開することを可能にするために、前記マスタ制御ノードが前記エラーを解消し、
    前記識別されたホスト・コンピュータ・システムのすべてが前記エラー・メッセージの受信を確認したのではないという前記マスタ制御ノードによる決定に応答して、前記マスタ制御ノードが前記エラーの解消を待ち、前記エラーの解消を待つ間、前記複数のデバイスの前記1つへのトラフィックが中断されたままである、
    請求項9に記載の装置。
  14. 前記ファブリックにおける前記ファブリック・デバイスのすべての識別情報および前記ファブリック・デバイスの相互接続性を含むトポロジを識別するために前記ファブリックを全探索するマスタ制御ノードをさらに含み、
    前記マスタ制御ノードが前記トポロジを保存する、請求項9に記載の装置。
  15. 前記ファブリックにおける前記ファブリック・デバイスの1つに関して、前記ファブリック・デバイスの前記1つに接続されるすべてのファブリック・デバイスを識別するデバイス・トポロジが決定され、
    前記経路指定テーブルが前記ファブリック・デバイスの前記1つに含まれ、前記デバイス・トポロジを保存する、
    請求項9に記載の装置。
  16. 前記複数のデバイスが複数の入出力アダプタであり、
    前記エラーが前記複数の入出力アダプタの1つにおいて検出される、
    請求項9に記載の装置。
  17. 複数のホスト・コンピュータ・システムのうち、エラー・メッセージによって識別されたエラーの影響を受けるホスト・コンピュータ・システムのみにエラー・メッセージを経路指定するためのコンピュータ・プログラムであって、
    前記複数のホスト・コンピュータ・システムは複数のデバイスにファブリックを使用して結合され、
    複数のデバイスの1つにおけるエラーを検出するステップと、
    前記ファブリックにおけるファブリック・デバイスに保存された経路指定テーブルを使用して、前記複数のホスト・コンピュータ・システムのうち、前記エラーの影響を受けるホスト・コンピュータ・システムを識別するステップと、
    前記エラーの影響を受けるホスト・コンピュータ・システムとして識別されたホスト・コンピュータ・システムのみに、前記エラーを識別するエラー・メッセージを経路指定するステップと、
    をデータ処理システムに実行させる、コンピュータ・プログラム。
  18. 前記エラー・メッセージを単一のマスタ制御ノードに経路指定するステップと、
    前記エラーが解消されないうちは、前記識別されたホスト・コンピュータ・システムのすべてが前記エラー・メッセージの受信を確認するまで、前記マスタ制御ノードを待機させるステップと、
    前記エラーが解消されるまで前記複数のデバイスの前記1つへの伝送トラフィックを中断するステップと、
    をさらにデータ処理システムに実行させる、請求項17に記載のコンピュータ・プログラム。
  19. 前記識別されたホスト・コンピュータ・システムの第1のホスト・コンピュータ・システムに前記エラー・メッセージを受信させるステップと、
    前記識別されたホスト・コンピュータ・システムの第1のホスト・コンピュータ・システムに前記エラー・メッセージの受信を確認させるステップと、
    前記識別されたホスト・コンピュータ・システムの第1のホスト・コンピュータ・システムに前記第1のホスト・コンピュータ・システムから前記複数のデバイスの前記1つへの伝送トラフィックを中断させるステップと、
    前記第1のホスト・コンピュータ・システムに前記エラーが解消されるまで待機させ、しかる後前記複数のデバイスの前記1つへの伝送トラフィックを再開させるステップと、
    をさらにデータ処理システムに実行させる、請求項17に記載のコンピュータ・プログラム。
  20. 前記ファブリックがレジスタを含み、
    前記レジスタにおける個々のビットを前記複数のホスト・コンピュータ・システムの各々に割り当てるステップと、
    前記エラー・メッセージに応答して、前記複数のデバイスの前記1つへの伝送トラフィックを中断するステップと、
    前記識別されたホスト・コンピュータ・システムの第1のホスト・コンピュータ・システムに前記エラー・メッセージを受信させるステップと、
    前記識別されたホスト・コンピュータ・システムの第1のホスト・コンピュータ・システムに割り当てられたビットをセットすることによって、前記識別されたホスト・コンピュータ・システムの第1のホスト・コンピュータ・システムに前記エラー・メッセージの受信を確認させるステップと、
    前記識別されたホスト・コンピュータ・システムのすべてが前記エラー・メッセージの受信を確認したかどうかを決定するために、前記マスタ制御ノードに前記レジスタをポーリングさせるステップと、
    前記識別されたホスト・コンピュータ・システムのすべてが前記エラー・メッセージの受信を確認したという前記マスタ制御ノードによる決定に応答して、前記識別されたホスト・コンピュータ・システムが前記複数のデバイスの前記1つへの伝送トラフィックを再開することを可能にするために前記エラーを解消するステップと、
    前記識別されたホスト・コンピュータ・システムのすべてが前記エラー・メッセージの受信を確認したのではないという前記マスタ制御ノードによる決定に応答して、前記エラーの解消を待つステップであって、前記エラーの解消を待つ間、前記複数のデバイスの前記1つへのトラフィックが中断されたままであるステップと、
    をさらにデータ処理システムに実行させる、請求項17に記載のコンピュータ・プログラム。
JP2007007741A 2006-01-26 2007-01-17 マルチホスト環境における共用の入出力ファブリックのエラー・メッセージをマスタ制御ルート・ノードに経路指定する方法、装置およびプログラム Expired - Fee Related JP5078366B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/340,447 US7707465B2 (en) 2006-01-26 2006-01-26 Routing of shared I/O fabric error messages in a multi-host environment to a master control root node
US11/340,447 2006-01-26

Publications (2)

Publication Number Publication Date
JP2007200319A true JP2007200319A (ja) 2007-08-09
JP5078366B2 JP5078366B2 (ja) 2012-11-21

Family

ID=38287046

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007007741A Expired - Fee Related JP5078366B2 (ja) 2006-01-26 2007-01-17 マルチホスト環境における共用の入出力ファブリックのエラー・メッセージをマスタ制御ルート・ノードに経路指定する方法、装置およびプログラム

Country Status (4)

Country Link
US (1) US7707465B2 (ja)
JP (1) JP5078366B2 (ja)
CN (1) CN101009532B (ja)
TW (1) TW200813708A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010117872A (ja) * 2008-11-13 2010-05-27 Sony Corp 割込検出装置および情報処理システム
JP2010146175A (ja) * 2008-12-17 2010-07-01 Hitachi Ltd 複合型計算機装置、複合型計算機の管理方法及び管理サーバ
WO2017199288A1 (ja) * 2016-05-16 2017-11-23 株式会社日立製作所 計算機システム、及び、障害管理方法
JP2020109555A (ja) * 2018-12-28 2020-07-16 富士通クライアントコンピューティング株式会社 情報処理システム

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7496045B2 (en) 2005-07-28 2009-02-24 International Business Machines Corporation Broadcast of shared I/O fabric error messages in a multi-host environment to all affected root nodes
US7430630B2 (en) * 2005-10-27 2008-09-30 International Business Machines Corporation Routing mechanism in PCI multi-host topologies using destination ID field
US7363404B2 (en) * 2005-10-27 2008-04-22 International Business Machines Corporation Creation and management of destination ID routing structures in multi-host PCI topologies
US7474623B2 (en) 2005-10-27 2009-01-06 International Business Machines Corporation Method of routing I/O adapter error messages in a multi-host environment
US7395367B2 (en) 2005-10-27 2008-07-01 International Business Machines Corporation Method using a master node to control I/O fabric configuration in a multi-host environment
US20070165596A1 (en) * 2006-01-18 2007-07-19 Boyd William T Creation and management of routing table for PCI bus address based routing with integrated DID
US7380046B2 (en) * 2006-02-07 2008-05-27 International Business Machines Corporation Method, apparatus, and computer program product for routing packets utilizing a unique identifier, included within a standard address, that identifies the destination host computer system
US7484029B2 (en) * 2006-02-09 2009-01-27 International Business Machines Corporation Method, apparatus, and computer usable program code for migrating virtual adapters from source physical adapters to destination physical adapters
US8151145B2 (en) * 2008-04-03 2012-04-03 Oracle America, Inc. Flow control timeout mechanism to detect PCI-express forward progress blockage
DE102008036654A1 (de) * 2008-08-06 2010-04-15 Siemens Aktiengesellschaft Verfahren und System zum Verwalten von Meldungen eines elektronischen Geräts
US8949499B2 (en) 2010-06-24 2015-02-03 International Business Machines Corporation Using a PCI standard hot plug controller to modify the hierarchy of a distributed switch
US8271710B2 (en) * 2010-06-24 2012-09-18 International Business Machines Corporation Moving ownership of a device between compute elements
KR101449229B1 (ko) 2010-06-30 2014-10-08 애플 인크. 액티브 케이블용 회로
US8327536B2 (en) 2010-06-30 2012-12-11 Apple Inc. Method of manufacturing high-speed connector inserts and cables
JP5639913B2 (ja) * 2011-02-02 2014-12-10 株式会社日立製作所 計算機システム、及びその制御方法
US20120226774A1 (en) * 2011-02-23 2012-09-06 Apple Inc. Display snooping
US8990631B1 (en) * 2011-03-03 2015-03-24 Netlogic Microsystems, Inc. Packet format for error reporting in a content addressable memory
US9086965B2 (en) * 2011-12-15 2015-07-21 International Business Machines Corporation PCI express error handling and recovery action controls
US8895981B2 (en) * 2011-12-28 2014-11-25 Altera Corporation Multichip module with reroutable inter-die communication
US10684973B2 (en) 2013-08-30 2020-06-16 Intel Corporation NUMA node peripheral switch
KR102147629B1 (ko) * 2013-11-18 2020-08-27 삼성전자 주식회사 플렉시블 서버 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10326261A (ja) * 1997-04-08 1998-12-08 Internatl Business Mach Corp <Ibm> 分散コンピュータ・システムのハードウェア要素によりエラーを報告するシステム
JP2004342109A (ja) * 2003-05-15 2004-12-02 Internatl Business Mach Corp <Ibm> 入出力ファブリックにおけるハードウェア・エラーからの自動回復

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US719538A (en) * 1902-04-09 1903-02-03 William C Gaston Buggy-top attachment.
US5257353A (en) * 1986-07-18 1993-10-26 Intel Corporation I/O control system having a plurality of access enabling bits for controlling access to selective parts of an I/O device
US5367695A (en) * 1991-09-27 1994-11-22 Sun Microsystems, Inc. Bus-to-bus interface for preventing data incoherence in a multiple processor computer system
US5392328A (en) * 1993-02-04 1995-02-21 Bell Communications Research, Inc. System and method for automatically detecting root causes of switching connection failures in a telephone network
US5960213A (en) * 1995-12-18 1999-09-28 3D Labs Inc. Ltd Dynamically reconfigurable multi-function PCI adapter device
US6061753A (en) * 1998-01-27 2000-05-09 Emc Corporation Apparatus and method of accessing target devices across a bus utilizing initiator identifiers
US6769021B1 (en) * 1999-09-15 2004-07-27 Adaptec, Inc. Methods for partitioning end nodes in a network fabric
US6692503B2 (en) * 1999-10-13 2004-02-17 Sdgi Holdings, Inc System and method for securing a plate to the spinal column
US6611883B1 (en) * 2000-11-16 2003-08-26 Sun Microsystems, Inc. Method and apparatus for implementing PCI DMA speculative prefetching in a message passing queue oriented bus system
US6766165B2 (en) * 2000-12-05 2004-07-20 Nortel Networks Limited Method and system for remote and local mobile network management
US6662251B2 (en) * 2001-03-26 2003-12-09 International Business Machines Corporation Selective targeting of transactions to devices on a shared bus
US7363389B2 (en) * 2001-03-29 2008-04-22 Intel Corporation Apparatus and method for enhanced channel adapter performance through implementation of a completion queue engine and address translation engine
US6691184B2 (en) * 2001-04-30 2004-02-10 Lsi Logic Corporation System and method employing a dynamic logical identifier
US7171458B2 (en) * 2001-06-12 2007-01-30 International Business Machines Corporation Apparatus and method for managing configuration of computer systems on a computer network
US6775750B2 (en) * 2001-06-29 2004-08-10 Texas Instruments Incorporated System protection map
US6988161B2 (en) * 2001-12-20 2006-01-17 Intel Corporation Multiple port allocation and configurations for different port operation modes on a host
US20040025166A1 (en) * 2002-02-02 2004-02-05 International Business Machines Corporation Server computer and a method for accessing resources from virtual machines of a server computer via a fibre channel
US7036122B2 (en) * 2002-04-01 2006-04-25 Intel Corporation Device virtualization and assignment of interconnect devices
US6907510B2 (en) * 2002-04-01 2005-06-14 Intel Corporation Mapping of interconnect configuration space
US20030221030A1 (en) * 2002-05-24 2003-11-27 Timothy A. Pontius Access control bus system
US7194538B1 (en) * 2002-06-04 2007-03-20 Veritas Operating Corporation Storage area network (SAN) management system for discovering SAN components using a SAN management server
US7251704B2 (en) * 2002-08-23 2007-07-31 Intel Corporation Store and forward switch device, system and method
US7152180B2 (en) * 2002-12-06 2006-12-19 Ntt Docomo, Inc. Configurable reliable messaging system
US7120711B2 (en) * 2002-12-19 2006-10-10 Intel Corporation System and method for communicating over intra-hierarchy and inter-hierarchy links
US7457906B2 (en) * 2003-01-21 2008-11-25 Nextio, Inc. Method and apparatus for shared I/O in a load/store fabric
US7953074B2 (en) * 2003-01-21 2011-05-31 Emulex Design And Manufacturing Corporation Apparatus and method for port polarity initialization in a shared I/O device
US7219183B2 (en) * 2003-01-21 2007-05-15 Nextio, Inc. Switching apparatus and method for providing shared I/O within a load-store fabric
US7103064B2 (en) * 2003-01-21 2006-09-05 Nextio Inc. Method and apparatus for shared I/O in a load/store fabric
US7174413B2 (en) * 2003-01-21 2007-02-06 Nextio Inc. Switching apparatus and method for providing shared I/O within a load-store fabric
US7188209B2 (en) * 2003-04-18 2007-03-06 Nextio, Inc. Apparatus and method for sharing I/O endpoints within a load store fabric by encapsulation of domain information in transaction layer packets
US20040210754A1 (en) * 2003-04-16 2004-10-21 Barron Dwight L. Shared security transform device, system and methods
US7380018B2 (en) * 2003-05-15 2008-05-27 Broadcom Corporation Peripheral bus transaction routing using primary and node ID routing information
US7096305B2 (en) * 2003-05-15 2006-08-22 Broadcom Corporation Peripheral bus switch having virtual peripheral bus and configurable host bridge
US20050044301A1 (en) * 2003-08-20 2005-02-24 Vasilevsky Alexander David Method and apparatus for providing virtual computing services
US7437738B2 (en) * 2003-11-12 2008-10-14 Intel Corporation Method, system, and program for interfacing with a network adaptor supporting a plurality of devices
US7383461B2 (en) * 2004-02-12 2008-06-03 International Business Machines Corporation Method and system to recover a failed flash of a blade service processor in a server chassis
US20050228531A1 (en) * 2004-03-31 2005-10-13 Genovker Victoria V Advanced switching fabric discovery protocol
US20050270988A1 (en) * 2004-06-04 2005-12-08 Dehaemer Eric Mechanism of dynamic upstream port selection in a PCI express switch
US8285907B2 (en) * 2004-12-10 2012-10-09 Intel Corporation Packet processing in switched fabric networks
US7886086B2 (en) * 2005-02-03 2011-02-08 International Business Machines Corporation Method and apparatus for restricting input/output device peer-to-peer operations in a data processing system to improve reliability, availability, and serviceability
US7386637B2 (en) * 2005-02-25 2008-06-10 International Business Machines Corporation System, method, and computer program product for a fully trusted adapter validation of incoming memory mapped I/O operations on a physical adapter that supports virtual adapters or virtual resources
US7480742B2 (en) 2005-02-25 2009-01-20 International Business Machines Corporation Method for virtual adapter destruction on a physical adapter that supports virtual adapters
US20060212870A1 (en) * 2005-02-25 2006-09-21 International Business Machines Corporation Association of memory access through protection attributes that are associated to an access control level on a PCI adapter that supports virtualization
US7398337B2 (en) * 2005-02-25 2008-07-08 International Business Machines Corporation Association of host translations that are associated to an access control level on a PCI bridge that supports virtualization
US7376770B2 (en) * 2005-02-25 2008-05-20 International Business Machines Corporation System and method for virtual adapter resource allocation matrix that defines the amount of resources of a physical I/O adapter
US20060195617A1 (en) * 2005-02-25 2006-08-31 International Business Machines Corporation Method and system for native virtualization on a partially trusted adapter using adapter bus, device and function number for identification
US8656488B2 (en) * 2005-03-11 2014-02-18 Trend Micro Incorporated Method and apparatus for securing a computer network by multi-layer protocol scanning
US8176204B2 (en) * 2005-03-11 2012-05-08 Hewlett-Packard Development Company, L.P. System and method for multi-host sharing of a single-host device
US7613864B2 (en) * 2005-04-22 2009-11-03 Sun Microsystems, Inc. Device sharing
US7565463B2 (en) * 2005-04-22 2009-07-21 Sun Microsystems, Inc. Scalable routing and addressing
US8223745B2 (en) * 2005-04-22 2012-07-17 Oracle America, Inc. Adding packet routing information without ECRC recalculation
US7478178B2 (en) * 2005-04-22 2009-01-13 Sun Microsystems, Inc. Virtualization for device sharing
US7293129B2 (en) * 2005-04-22 2007-11-06 Sun Microsystems, Inc. Flexible routing and addressing
US20060271718A1 (en) * 2005-05-27 2006-11-30 Diplacido Bruno Jr Method of preventing error propagation in a PCI / PCI-X / PCI express link
US7496045B2 (en) * 2005-07-28 2009-02-24 International Business Machines Corporation Broadcast of shared I/O fabric error messages in a multi-host environment to all affected root nodes
US7430630B2 (en) 2005-10-27 2008-09-30 International Business Machines Corporation Routing mechanism in PCI multi-host topologies using destination ID field
US7474623B2 (en) * 2005-10-27 2009-01-06 International Business Machines Corporation Method of routing I/O adapter error messages in a multi-host environment
US20070136458A1 (en) * 2005-12-12 2007-06-14 Boyd William T Creation and management of ATPT in switches of multi-host PCI topologies

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10326261A (ja) * 1997-04-08 1998-12-08 Internatl Business Mach Corp <Ibm> 分散コンピュータ・システムのハードウェア要素によりエラーを報告するシステム
JP2004342109A (ja) * 2003-05-15 2004-12-02 Internatl Business Mach Corp <Ibm> 入出力ファブリックにおけるハードウェア・エラーからの自動回復

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010117872A (ja) * 2008-11-13 2010-05-27 Sony Corp 割込検出装置および情報処理システム
JP2010146175A (ja) * 2008-12-17 2010-07-01 Hitachi Ltd 複合型計算機装置、複合型計算機の管理方法及び管理サーバ
WO2017199288A1 (ja) * 2016-05-16 2017-11-23 株式会社日立製作所 計算機システム、及び、障害管理方法
JP2020109555A (ja) * 2018-12-28 2020-07-16 富士通クライアントコンピューティング株式会社 情報処理システム
US10942793B2 (en) 2018-12-28 2021-03-09 Fujitsu Client Computing Limited Information processing system

Also Published As

Publication number Publication date
US20070174733A1 (en) 2007-07-26
US7707465B2 (en) 2010-04-27
CN101009532A (zh) 2007-08-01
JP5078366B2 (ja) 2012-11-21
TW200813708A (en) 2008-03-16
CN101009532B (zh) 2010-05-19

Similar Documents

Publication Publication Date Title
JP5078366B2 (ja) マルチホスト環境における共用の入出力ファブリックのエラー・メッセージをマスタ制御ルート・ノードに経路指定する方法、装置およびプログラム
US7380046B2 (en) Method, apparatus, and computer program product for routing packets utilizing a unique identifier, included within a standard address, that identifies the destination host computer system
US7907604B2 (en) Creation and management of routing table for PCI bus address based routing with integrated DID
CN100580648C (zh) 对包含在通信信息包中的标识符进行转换的方法和装置
US7549003B2 (en) Creation and management of destination ID routing structures in multi-host PCI topologies
JP5315209B2 (ja) 冗長構成を生成するための周辺機器相互接続入出力仮想化デバイスの使用
US20200301864A1 (en) Numa node peripheral switch
JP5128222B2 (ja) データ処理システム、並びに、データ処理システムの複数の入出力アダプタ・ユニットからの要求を処理する方法若しくは複数の入出力アダプタ・ユニットを分離する方法およびそれらのコンピュータ・プログラム
JP5595635B2 (ja) 入出力(i/o)ファブリック内のキューをクリアする方法、i/oファブリック・エラーを処理する方法及びコンピュータ・プログラム製品(エラー回復のためにi/oファブリックのロックアップ状態を検出しクリアするためのメカニズム)
US7430630B2 (en) Routing mechanism in PCI multi-host topologies using destination ID field
JP5016028B2 (ja) メモリ・マイグレーション中のdma動作を停止させるコンピュータ実装方法、装置、及びコンピュータ・プログラム
US7484029B2 (en) Method, apparatus, and computer usable program code for migrating virtual adapters from source physical adapters to destination physical adapters
US8225005B2 (en) Use of peripheral component interconnect input/output virtualization devices to create high-speed, low-latency interconnect
US20070260910A1 (en) Method and apparatus for propagating physical device link status to virtual devices
US20070136458A1 (en) Creation and management of ATPT in switches of multi-host PCI topologies
US20080273456A1 (en) Port Trunking Between Switches
US20080137676A1 (en) Bus/device/function translation within and routing of communications packets in a pci switched-fabric in a multi-host environment environment utilizing a root switch
US20080240127A1 (en) Method and apparatus for buffer linking in bridged networks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091030

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120216

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120216

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20120216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120217

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

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120807

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20120807

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

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

Free format text: PAYMENT UNTIL: 20150907

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5078366

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees