(57)【要約】【課題】コンピュータ・システムを介して伝搬し、二次エラーを引き起こすエラーの一次発生源を識別する方法を提供すること。【解決手段】コンピュータ構成要素（処理装置など）にそれぞれ関連付けられた複数のカウンタを初期化し、コンピュータ構成要素が動作している間は、カウンタを増分するが、所与のカウンタを、それに関連するコンピュータ構成要素がエラーを検出したときは一時停止させ、次いで、どのカウンタが最小のカウント値を含んでいるかを判断する。初期化信号を受信する相対遅延時間に基づいて、カウンタの同期をとる。エラーが報告されたとき、診断コードが、最小カウント値を含むカウンタに関連する特定のコンピュータ構成要素について、エラー・イベントをログに記録する。【選択図】図３
2004326775.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ・システムの一部を介して伝搬し、二次エラーを引き起こすエラーの一次発生源を識別する方法であって、
複数のコンピュータ構成要素にそれぞれ関連付けられた複数のカウンタを初期化するステップと、
前記コンピュータ構成要素が動作している間、前記複数のカウンタを増分するステップと、
前記複数カウンタのうち所与の１つを、それに関連するコンピュータ構成要素がエラーを検出したときに、一時停止するステップと、
前記一時停止ステップの後で、前記複数カウンタのうちどれが最小カウント値を含むかを判断するステップとを含む方法。
【請求項２】
前記初期化ステップが、初期化信号を受信する相対遅延時間に基づいて、前記複数カウンタのそれぞれの同期をとるステップを含む、請求項１に記載の方法。
【請求項３】
前記複数のカウンタのうち１つが、集積回路チップ上にあり、それと同じ集積回路チップ上にある構成要素内でエラーを検出するステップに応答して一時停止される、請求項１に記載の方法。
【請求項４】
前記複数カウンタのうち１つが、第１の集積回路チップ上にあり、第２の集積回路チップからのエラー信号を検出するステップに応答して一時停止される、請求項１に記載の方法。
【請求項５】
前記判断ステップに応答して、最小カウント値を含むカウンタに関連する特定のコンピュータ構成要素について、エラー・イベントをログに記録するステップをさらに含む、請求項１に記載の方法。
【請求項６】
前記複数カウンタのうち１つが、最大カウント値を超えて１回または複数回増分された後、低いラップアラウンド値で中断され、
前記判断ステップが、前記最大カウント値を前記低いラップアラウンド値に加算するステップを含む、請求項１に記載の方法。
【請求項７】
前記コンピュータ構成要素間の通信経路を静止するステップと、
前記静止ステップの後に、前記コンピュータ構成要素上の障害分離レジスタをクリアするステップと、
前記クリア・ステップの後に、前記通信経路を再開するステップとをさらに含む、請求項１に記載の方法。
【請求項８】
コンピュータ・システムの一部を介して伝搬し、二次エラーを引き起こすエラーの一次発生源を識別するための機構であって、
複数のコンピュータ構成要素にそれぞれ関連付けられ、それぞれが初期化され、前記コンピュータ構成要素が動作している間に増分する複数のカウンタと、
前記複数カウンタのうち所与の１つを、それに関連するコンピュータ構成要素がエラーを検出したときに一時停止する手段と、
前記複数カウンタのうちどれが最小カウント値を含むかを判断する手段とを含む機構。
【請求項９】
初期化信号を受信する相対遅延時間に基づいて、前記複数カウンタの同期がとられる、請求項８に記載の機構。
【請求項１０】
前記複数カウンタのうち特定の１つが集積回路チップ上にあり、それと同じ集積回路チップ上にある構成要素内でエラーが検出されたことに応答して、前記一時停止手段が前記特定のカウンタを一時停止する、請求項８に記載の機構。
【請求項１１】
前記複数カウンタのうち特定の１つが第１の集積回路チップ上にあり、第２の集積回路チップからのエラー信号が検出されたことに応答して、前記一時停止手段が前記特定のカウンタを一時停止する、請求項８に記載の機構。
【請求項１２】
最小カウント値を含むカウンタに関連する特定のコンピュータ構成要素について、エラー・イベントをログに記録する診断コードをさらに含む、請求項８に記載の機構。
【請求項１３】
それぞれのカウンタの最大カウント値が、前記コンピュータ構成要素を回るエラー伝搬の最大遅延時間の少なくとも２倍であるサイクル時間に対応するように、それぞれのカウンタに十分な記憶域を設ける、請求項８に記載の機構。
【請求項１４】
前記判断手段が、前記コンピュータ構成要素間の通信経路を静止し、それらが静止している間に、前記コンピュータ構成要素上の障害分離レジスタをクリアし、次いで、前記通信経路を再開する、請求項８に記載の機構。
【請求項１５】
複数の処理装置と、
前記処理装置にプログラム命令およびオペランド・データを提供するためのメモリ階層と、
前記複数の処理装置のうち様々な処理装置間で通信できるようにするデータ経路と、
前記複数の処理装置にそれぞれ関連付けられ、それぞれが初期化され、前記複数の処理装置が動作している間に増分する複数のカウンタと、
前記複数カウンタのうち所与の１つを、それに関連する処理装置がエラーを検出したときに一時停止する障害分離論理と、
前記複数カウンタのうちどれが最小カウント値を含むかを判断する手段とを含むコンピュータ・システム。
【請求項１６】
初期化信号を受信する相対遅延時間に基づいて、前記複数カウンタの同期がとられる、請求項１５に記載のコンピュータ・システム。
【請求項１７】
前記複数カウンタのうち特定の１つが、集積回路チップ上にあり、それと同じ集積回路チップ上にある処理装置内でエラーが検出されたことに応答して、前記障害分離論理が前記特定のカウンタを一時停止する、請求項１５に記載のコンピュータ・システム。
【請求項１８】
前記複数カウンタのうち特定の１つが第１の集積回路チップ上にあり、第２の集積回路チップからのエラー信号が検出されたことに応答して、前記一時停止の手段が前記特定のカウンタを一時停止する、請求項１５に記載のコンピュータ・システム。
【請求項１９】
最小カウント値を含むカウンタに関連する特定の処理装置について、エラー・イベントをログに記録する診断コードをさらに含む、請求項１５に記載のコンピュータ・システム。
【請求項２０】
それぞれのカウンタの最大カウント値が、前記処理装置を回るエラー伝搬の最大遅延時間の少なくとも２倍であるサイクル時間に対応するように、それぞれのカウンタに十分な記憶域を設ける、請求項１５に記載のコンピュータ・システム。
【請求項２１】
前記判断手段が、前記通信経路を静止し、それらが静止されている間に、前記処理装置内の障害分離レジスタをクリアし、次いで、前記通信経路を再開する、請求項１５に記載のコンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般には、コンピュータ・システムに関し、より詳細には、複雑な通信トポロジで相互接続されたいくつかの構成要素、特に、処理装置、メモリ・デバイスなどの現場交換可能なユニットすなわちＦＲＵ（Field Replaceable Unit）のいずれか１つから生じた可能性があるシステム・エラーの発生源を判断する改良型の方法に関する。
【背景技術】
【０００２】
図１に、従来の対称マルチプロセッサ・コンピュータ・システム１０の基本的な構造を示す。コンピュータ・システム１０は、１つまたは複数のプロセッサ・グループに構成された１つまたは複数の処理装置を含み、図示するシステムでは、プロセッサ・グループ１４内に、４つの処理装置１２ａ、１２ｂ、１２ｃおよび１２ｄがある。処理装置は、システムまたはファブリック・バス１６を介してシステム１０の他の構成要素と通信する。ファブリック・バス１６は、１つまたは複数のサービス・プロセッサ１８ａ、１８ｂ、システム・メモリ・デバイス２０および様々な周辺装置２２に接続される。プロセッサ・ブリッジ２４を任意選択で使用して、追加のプロセッサ・グループを相互接続することができる。システム１０は、ファームウェア（図示せず）を含むこともでき、このファームウェアは、システムの基本入出力論理を格納し、コンピュータに最初に電源が投入された（コンピュータが立ち上げられた）ときはいつでも、周辺装置の１つから、オペレーティング・システムを見つけてロードする。
【０００３】
システム・メモリ・デバイス２０（ランダム・アクセス・メモリすなわちＲＡＭ）は、処理装置が使用するプログラム命令およびオペランド・データを、揮発性（一時的）状態で格納する。周辺装置２２は、たとえばＰＣＩホスト・ブリッジを使用するＰＣＩ（周辺装置相互接続：Peripheral Component Interconnect）ローカル・バスを介して、ファブリック・バス１６に接続することができる。ＰＣＩブリッジは、待ち時間の小さい経路を提供し、この経路を介して処理装置１２ａ、１２ｂ、１２ｃおよび１２ｄは、バス・メモリまたはＩ／Ｏアドレス空間内のどこかにマップされているＰＣＩデバイスにアクセスすることができる。またＰＣＩホスト・ブリッジ２２は、広帯域経路を提供して、ＰＣＩデバイスがＲＡＭ２０にアクセスできるようにする。こうしたＰＣＩデバイスは、ネットワーク・アダプタと、永続記憶装置（すなわちハード・ディスク）との相互接続を提供するＳＣＳＩ（小型コンピュータ・システム・インターフェース：SmallComputer System Interface）アダプタと、キーボード、表示装置に接続されたグラフィックス・アダプタ、および表示装置とともに使用するためのグラフィカル・ポインティング装置（マウス）を含めた入出力（Ｉ／Ｏ）装置に接続するためのＩＳＡ（業界標準アーキテクチュア：IndustryStandard Architecture）拡張バスなどの拡張バス・ブリッジとを含むことができる。
【０００４】
対称マルチプロセッサ（ＳＭＰ）コンピュータでは、処理装置１２ａ、１２ｂ、１２ｃおよび１２ｄはすべて、一般に同一のものである。すなわち、それらはすべて、命令およびプロトコルの共通のセットまたはサブセットを使用して動作し、一般に同じアーキテクチュアを有する。処理装置１２ａで示すように、それぞれの処理装置は、コンピュータを動作させるためにプログラム命令を実行する１つまたは複数のプロセッサ・コア２６ａ、２６ｂを含むことができる。例示的なプロセッサ・コアは、インターナショナル・ビジネス・マシーンズ・コーポレーションが販売するＰｏｗｅｒＰＣ（商標）プロセッサを含む。このプロセッサは、様々な実行ユニット、レジスタ、バッファ、メモリおよび他の機能ユニットを含む単一の集積回路スーパースカラ・マイクロプロセッサを備えており、これらのユニットはすべて、集積回路によって形成される。プロセッサ・コアは、スーパースカラ・アーキテクチュアのパフォーマンスをさらに向上させるために、ＲＩＳＣ（縮小命令セットコンピューティング：Reduced Instruction Set Computing）技術に従って動作することができ、また命令のパイプライン処理およびアウトオブオーダ処理の両方を使用することができる。
【０００５】
それぞれのプロセッサ・コア２６ａ、２６ｂは、高速メモリ・デバイスを使用して実装されるオンボード（Ｌ１）キャッシュ（実際には別個の命令キャッシュおよびデータ・キャッシュ）を含む。システム・メモリ２０から値をロードするステップが長くなることを回避することによって処理を速めるために、キャッシュを一般に使用し、プロセッサが繰り返しアクセスする可能性がある値を一時的に格納する。処理装置は、２次（Ｌ２）キャッシュ２８などの別のキャッシュを含むことができ、このＬ２キャッシュは、メモリ・コントローラ３０とともに、コア２６ａおよび２６ｂそれぞれの一部である、両方のＬ１キャッシュをサポートする。ファブリック・バス１６を介してアクセスすることができるＬ３キャッシュ３２などの追加のキャッシュ・レベルを設けることができる。それぞれのキャッシュ・レベルは、最も高次（Ｌ１）のものから最も低次（Ｌ３）のものへと続いて、より多くの情報を格納することができるが、アクセス・ペナルティは大きくなる。たとえば、プロセッサ・コア内のオンボードＬ１キャッシュは、１２８キロバイトのメモリ記憶容量を有することがあり、Ｌ２キャッシュ２８は、５１２キロバイトの記憶容量を有することがあり、Ｌ３キャッシュ３２は、２メガバイトの記憶容量を有することがある。欠陥のある処理装置構成要素の修理／交換を容易にするために、それぞれの処理装置１２ａ、１２ｂ、１２ｃおよび１２ｄは、モジュール方式で容易にシステム１０へスワップ・インストールし（swap install）、そこからスワップ・アウトすることができる、交換可能な回路板、プラグ可能モジュールまたは類似の現場交換可能ユニットすなわちＦＲＵの形態で構成することができる。
【０００６】
マルチプロセッサ・コンピュータ・システムは、より規模が大きく、複雑になっているので、様々なシステム構成要素から発生するエラーの診断および訂正がますます重要視されてきた。エラーによっては、こうした構成要素に埋め込まれているエラー訂正コード（ＥＣＣ：Error Correction Code）論理によって訂正することができるが、訂正コードは、それが訂正と検出の両方を行うことができるエラーの数に限りがあるので、こうしたエラーの原因を突き止めることが依然として求められている。一般に、使用されるＥＣＣコードは、ＳＥＣ／ＤＥＤタイプ（Single-ErrorCorrect/Double Error Detect：単一エラー訂正／二重エラー検出）である。したがって、永続的な訂正可能エラーが発生した場合、第２のエラーが訂正不可能なエラーを引き起こし、システムをクラッシュさせることを回避するために、できるだけ早く欠陥のある構成要素のＦＲＵ交換を求めることが望ましい。システムに、システム・エラーを引き起こす障害および欠陥がある場合は、破壊によって、下流の、ＳＭＰファブリックに接続された他のチップまたは装置上で、二次エラーが発生し得るので、一次エラーの元の発生源を突き止めることが難しくなり得る。こうした破壊は、回復可能なまたはチェック停止（システム障害）状態という形をとり得る。多くのエラーは、パフォーマンスの問題に起因して、伝搬することができる。インライン・エラー訂正は、システムに多大な遅延時間をもたらし得るので、ＥＣＣは、データ・パケットのソースまたは中間ノードではなく、データ・パケットの終点（データ「コンシューマ」）でだけ使用されることがある。したがって、回復可能なエラーには、望ましくない待ち時間をシステムに加えずにデータを転送する前に、ＥＣＣ訂正を行うのに十分なほどの時間がしばしば不足し、したがって、不良なデータが故意に以降のノードまたはチップに伝搬されることがある。回復可能エラーとチェック停止エラーの両方にとって、診断ファームウェアがシステムを分析し、エラーの一次発生源を確実に突き止めることができ、それによって適切な措置を講じることができることが重要である。訂正の措置は、構成要素の予防修理、選択されたリソースの構成解除、および／または完全に動作可能なユニットとスワップ・アウトすることができるＦＲＵである場合には、欠陥構成要素交換を求めるサービス・コールを含み得る。
【０００７】
システム１０では、エラーの元の原因を分離するために使用される方法が、それぞれの構成要素に１つ配置される複数のカウンタまたはタイマ、および構成要素を通ってループを形成する通信リンクを使用する。たとえば、図２に、システム１０のプロセッサの通信トポロジを示す。複数のデータ経路すなわちバス３４は、トポロジ内の隣接プロセッサ・コア間の通信を可能にする。それぞれのプロセッサ・コアに、一意のプロセッサ識別番号が割り当てられる。一実施形態では、１つのプロセッサ・コア、本例ではコア２６ａが、一次モジュールに指定される。この一次モジュールは、処理装置１２ｂ内のプロセッサ・コアのうち１つに情報を供給する通信バス３４を含む。通信バス３４は、複数のデータ・ビット、複数の制御ビット、および１つのエラー・ビットを含み得る。こうした従来技術の設計では、所与のプロセッサ・コア内のそれぞれのカウンタが、エラーが最初に検出されたときに増分し始め、システム・エラー表示が（バス３４内のエラー・ビットを介して）バス・トポロジ全体を横断し、その所与のコアに戻ってきた後で、そのカウンタが停止する。次いで、カウンタを調べて、エラーの一次発生源を示す最大カウント数を含む構成要素を識別することができる。
【０００８】
障害分離に対するこうした手法は、単純なリング（単一ループ）トポロジでは可能であるが、たとえば通信トポロジ内で交差する複数ループを含むことがある、より複雑な処理装置の構成では実現可能でない。こうした構成では、まさにどのチップが一次エラーを受け、また特定のデータまたはコマンド・パケットがどのようにファブリック・トポロジに沿ってルーティングされるかによって決定される予測不可能な形でエラーがトポロジを介して伝搬する可能性があるので、最大カウント数のカウンタが欠陥のある構成要素に対応するという保証はない。構成要素を監視して判断を行うことができる中央制御ポイントを備える障害分離システムを考案することができるが、中央制御では、システム全体のシャットダウンを引き起こし得る単一の障害点が与えられることになるので、現代コンピューテイングの動向は、こうした中央制御から脱却しつつある。
【特許文献１】米国特許出願第１０／４２５３９７号
【発明の開示】
【発明が解決しようとする課題】
【０００９】
したがって、複雑な通信トポロジを有するコンピュータ・システムにおいて、障害を分離して、複数の構成要素のうちからシステム・エラーの発生源を正確に特定する（pinpoint）改良された方法を考案することが望ましいであろう。この方法が、追加の相互接続によってチップ配線をさらに複雑にするのではなく、構成要素間の既存の経路を使用するのであれば、それはいっそう有利であろう。
【課題を解決するための手段】
【００１０】
したがって、本発明の一目的は、コンピュータ・システムがエラーの発生源を識別するための改良された診断方法を提供することである。
【００１１】
本発明の別の目的は、プロセッサ・コアなどの構成要素を含み、および位相的に複雑な通信経路を有するコンピュータ・システムに適用することができるこうした方法を提供することである。
【００１２】
本発明の別の目的は、他のコンピュータ構成要素に伝搬し、こうした構成要素内で二次エラーを引き起こす可能性のあるエラーの一次発生源を突き止める方法およびシステムを提供することである。
【００１３】
前記の目的は、コンピュータ・システムの一部を介して伝搬し、二次エラーを引き起こすエラーの一次発生源を識別する方法で達成され、この方法は一般に、コンピュータ構成要素（処理装置など）にそれぞれ関連付けられた複数のカウンタを初期化するステップと、コンピュータ構成要素が動作している間はカウンタを増分するが、所与のカウンタを、それに関連するコンピュータ構成要素がエラーを検出したときに一時停止するステップと、次いで、カウント値が最も低いカウンタはどれかを判断するステップとを含む。そのカウンタが、エラーの一次発生源であるコンピュータ構成要素に対応する。初期化信号を受信する相対遅延時間に基づいて、カウンタの同期がとられる。所与のカウンタは、それと同じ集積回路チップ上にある構成要素内にエラーが検出された結果でも、異なる集積回路チップからのエラー信号が検出された結果でも一時停止することができる。エラーが報告されたときは、診断コードが、最小カウント値を含むカウンタと関連付けられる特定のコンピュータ構成要素について、エラー・イベントをログに記録する。
【００１４】
カウンタが現在のカウントをゼロに（モジュロのように（in a modulofashion））ラップアラウンドするときに発生し得る潜在的な問題を回避するために、それぞれのカウンタの最大カウント値が、コンピュータ構成要素トポロジを回るエラー伝搬の最大遅延時間の少なくとも２倍であるサイクル時間に相当するように、それぞれのカウンタに十分な記憶域を設ける。次いで、診断コードが、いずれかの低いラップアラウンド値を認識し、どのカウンタのカウントが本当に最小であるかを判断したときに、最大カウント値を適切に加算する。回復可能なエラーをもたらすハードな障害（すなわち「スタック（stuck）」ビット）を伴う潜在的な問題をさらに回避するために、障害分離制御によって、コンピュータ構成要素間の通信経路を静止し、コンピュータ構成要素上の障害分離レジスタをクリアし、次いでその通信経路を再開することができる。
【００１５】
本発明の上記および追加の目的、特徴および利点は、以下で詳細に記載する説明から明らかになろう。
【００１６】
添付の図面を参照することによって、本発明がより深く理解され、またその数々の目的、特徴および利点が当業者には明らかになり得る。
【発明を実施するための最良の形態】
【００１７】
様々な図面内で同じ参照記号を使用することによって、同様または同一の項目を示す。
【００１８】
次に図面、特に図３を参照すると、本発明に従って構成される対称マルチプロセッサ（ＳＭＰ）コンピュータ・システム向けのプロセッサ・グループ４０の一実装が示されている。この特定の実装では、プロセッサ・グループ４０は、処理装置の３つのドロワ（drawer）４２ａ、４２ｂ、４２ｃで構成される。３つのドロワだけが示されているが、プロセッサ・グループは、それより少数のドロワを含むことも、追加のドロワを含むこともある。ＳＭＰシステムの物理的な設置では、ドロワは、関連するフレーム内にスライドして入るように機械的に設計されている。処理装置ドロワはそれぞれ、２つのマルチチップ・モジュール（ＭＣＭ：multi-chipmodule）を含み、すなわちドロワ４２ａはＭＣＭ４４ａおよび４４ｂを、ドロワ４２ｂはＭＣＭ４４ｃおよび４４ｄを、ドロワ４２ｃはＭＣＭ４４ｅおよび４４ｆを含む。この場合も、この構成は、ドロワごとに３つ以上のＭＣＭを含み得る。それぞれのＭＣＭは、４つの集積チップまたは別個の処理装置を含む（５つ以上でも、３つ以下でも設けることができる）。所与のＭＣＭについて、４つの処理装置に、文字「Ｓ」、「Ｔ」、「Ｕ」および「Ｖ」のラベルが付けられる。したがって、図３には、合計で２４個の処理装置すなわちチップが示されている。
【００１９】
送信されたデータおよびコマンドの対象設定（targeting）が行えるように、それぞれの処理装置に、一意の識別番号（ＰＩＤ）が割り当てられる。ＭＣＭのうち１つが、本例ではＭＣＭ４４ａが、一次モジュールに指定され、そのモジュールの一次チップＳは、サービス・プロセッサによって直接制御される。それぞれのＭＣＭを、現場交換可能ユニット（ＦＲＵ）として製造することができ、それによって、特定のチップに欠陥が生じた場合は、モジュールまたはドロワ内の他の部分の交換を必要とせずに、新しい、機能する装置とスワップ・アウトすることができる。あるいは、技術者がどのように訓練されているか、顧客の環境においてＦＲＵの交換がどれくらい容易か、およびドロワの構成に応じて、ＦＲＵがドロワ全体となり得る（好ましい実施形態）。
【００２０】
プロセッサ・グループ４０は、図１に関して論じたように、他の構成要素、たとえば追加のメモリ階層、通信ファブリック、周辺装置などを含み得るＳＭＰシステムで使用するように適合される。ＳＭＰコンピュータ・システム用のオペレーティング・システムは、ある種の構成要素、すなわちＦＲＵを、システムの残りの部分が実行されている間に、オフラインで取り出すことを可能にする好ましいシステムであり、それによって、全体的なシステムダウンを伴わずに、ＦＲＵの交換を実施することができる。
【００２１】
通信ファブリックを介して使用可能な相互接続に加えて、パフォーマンスの理由から、一部のチップ間に様々なデータ経路が設けられる。図３で見られるように、こうした経路は、数個のドロワ間バス４６ａ、４６ｂ、４６ｃおよび４６ｄ、ならびにドロワ内バス４８ａ、４８ｂおよび４８ｃを含む。所与の処理チップを、同じモジュール上の他のあらゆる処理チップに接続するモジュール内バスもある。例示的な実施形態では、こうした経路のそれぞれが、１２８個のデータ・ビット、４０個の制御ビット、１個のエラー・ビットを提供する。さらに、図示するＳチップ接続４６および４８と同様に、Ｔチップを他のＴチップと、Ｕチップを他のＵチップと、Ｖチップを他のＶチップと接続するバスもあり得る。図が見やすいように、こうしたバスを省略している。この具体的な実施形態では、こうしたチップすべての間に存在しているバス・インターフェースがエラー信号を含むが、位相的に複雑になることを制限しながら、最大の接続性およびエラー伝搬速度を実現するために、図示されたバス上のエラー信号だけが実際に使用される。
【００２２】
次に、図４を参照すると、それぞれのユニットは一般に同一であり、所与のチップ５０は本質的に、クロック制御された複数の構成要素５２およびフリーラン構成要素（free-running component）５４で構成される。クロック制御された構成要素は、２つのプロセッサ・コア５６ａおよび５６ｂ、メモリ・サブシステム５８、ならびに障害分離回路６０を含む。２つのプロセッサ・コアが、１つの集積チップ上に含まれるものとして示されているが、それより少ないことも、多いこともある。それぞれのプロセッサ・コア５６ａおよび５６ｂは、それ自体の制御論理、実行ユニット、レジスタおよびバッファの別個のセット、ならびにその１次（Ｌ１）キャッシュ（それぞれのコア内の別個の命令キャッシュおよびデータ・キャッシュ）を含む。コア内のＬ１キャッシュおよびロード／格納ユニットは、メモリ・サブシステム５８と通信し、メモリ階層から／に対してデータの読出し／書込みを行う。メモリ・サブシステム５８は２次（Ｌ２）キャッシュおよびメモリ・コントローラを含み得る。プロセッサ・コアおよびメモリ・サブシステムは、前の段落で説明したデータ経路とのインターフェース６２を介して他のチップと通信することができる。
【００２３】
チップ５０のフリーラン構成要素は、スキャン通信（ＳＣＯＭ：ScanCommunications）コントローラ６６およびスキャン・リング・コントローラ６８に接続されたＪＴＡＧインターフェース６４を含む。ＪＴＡＧインターフェース６４は、サービス・プロセッサと、チップ５０の内部制御インターフェースの間のアクセスを提供する。ＪＴＡＧインターフェース６４は、テスト・アクセス・ポートおよびバウンダリ・スキャン・アーキテクチュアに関係するＩＥＥＥ（Instituteof Electrical and Electronics Engineers：電気電子技術者協会）規格１１４９．１でコンパイルされる。ＳＣＯＭは、システム・クロックを動作させたままにしながら、内部レジスタへの読み書きアクセスを可能にするＪＴＡＧプロトコルの拡張版である。
【００２４】
ＳＣＯＭコントローラ６６は、クロック・コントローラ７０、および並列直列変換器７２に接続される。ＳＣＯＭコントローラ６６は、サービス・プロセッサが、クロックがまだ動作している間に、クロック制御構成要素内に配置された「サテライト」にさらにアクセスできるようにする。こうしたＳＣＯＭサテライトは、構成要素内の様々な機能を可能にするために使用することができる内部の制御レジスタおよびエラー・レジスタを含む。ＳＣＯＭコントローラ６６は、外部ＳＣＯＭ（すなわちＸＳＣＯＭ：external SCOM）インターフェースに接続することもでき、この外部ＳＣＯＭインターフェースによって、サービス・プロセッサの介入を必要とせずに、さらに多くのチップ間通信がもたらされる。ＳＣＯＭサテライトおよびＸＳＣＯＭチップ間インターフェースの追加の詳細については、本件と同時期に申請された、米国特許出願第１０／４２５３９７号「分散ノード・トポロジにおけるチップ間の通信機構（CROSS-CHIPCOMMUNICATION MECHANISM IN DISTRIBUTED NODE TOPOLOGY）」で見ることができる。同特許を本明細書中で援用する。スキャン・リング・コントローラ６８は、機能クロックが停止した内部ラッチ状態に、通常のＪＴＡＧスキャン機能（ＬＳＳＤタイプ）を提供する。
【００２５】
プロセッサ・グループ４０内の処理装置はそれぞれ、図４で示す構造を含むが、一部の処理装置またはそのサブセットに、追加ポートなどの特別な機能を、要望に応じて設けることができる。
【００２６】
さらに図５を参照すると、障害分離回路６０がより詳しく示されている。それぞれの処理チップ（またはより一般には、ＳＭＰシステム内のいずれのＦＲＵも）障害分離回路にカウンタ／タイマ７６を含む。こうしたカウンタを使用して、どの構成要素が、システムの他の「下流」構成要素に伝搬して、二次エラーを引き起こした可能性があるエラーの一次発生源であったかを突き止める。背景技術の節で述べたように、従来技術の障害分離技術では、エラーが検出されたときに始動し、次いで、エラーがリング・トポロジを横断した後に停止するカウンタが使用されていた。その場合、最大カウント数のカウンタがエラーの発生源に対応していた。一方、本発明は、立ち上げ時に（またはエラー・イベントが生じる前の、何らかの他の一般的な初期化を行う際に）すべてのカウンタ７６を始動させ、その後、エラー状態が検出されたら直ちに所与のカウンタを停止する。この場合、最小カウント数のカウンタによって、エラーの元の発生源である構成要素が識別される。
【００２７】
エラーが最初に発生した際に、エラー信号によってアクティブ化されるラッチ７８によって、カウンタ７６がフリーズまたは一時停止される。エラー信号は、コア５６ａ、５６ｂまたはメモリ・サブシステム５８に関連する、エラー訂正コード（ＥＣＣ）回路、機能制御チェッカ、またはパリティ・チェック回路から内部的に生じることもあれば、データ経路内に含まれる単一ビットのエラー・ラインから外部的に生じることもある。サービス・プロセッサ内で実行されるプロセッサ・ランタイム診断コードによって、ＪＴＡＧインターフェースを介してカウンタ７６をチェックして、どのカウンタが、いずれかの障害分離回路６０によってエラーが検出された最初の時点に対応する最小カウンタ数を含むかを判断する。次いで、一次発生源として識別された対応する構成要素について、診断コードがエラー・イベントをログに記録する。回復可能なエラーの場合は、プロセッサがまだ実行している間に、プロセス全体が行われる。こうした改善された障害分析によって、障害が発生した後の、より迅速な修理および長い実行可能時間がもたらされる。所与のＦＲＵについて最初に報告されたエラーに関するサービス・コールを行う必要はない。診断コードによってエラー情報を収集することができ、特定のＦＲＵについて、エラー数が関連する閾値を超えている場合には、サービス・コールが行われる。こうした手法によって、システムが、必ずしも欠陥ハードウェアを示しているのではない、分離された「ソフト・エラー」のイベントと、構成要素に障害または欠陥が生じたことを示す、より永続的なすなわち「ハード・エラー」のイベントを区別できるようになる。
【００２８】
各カウンタ７６のクロック（増分）周波数は同じであるが、カウント数が適切に解釈されるように、すべてのカウンタの同期をとらなければならない。同期化は立ち上げ時に実施することができる。例示的な実施形態では、同期信号用に単一ビットのエラー・ラインが使用されるが、別法として、別個の信号を設けることもできる。このようにして、システムの電源が最初に投入されたときに、エラー信号を使用して、カウンタ７６を再設定する同期化論理（ＳＹＮＣ）８０をアクティブ化することができる。同期化論理８０は、特定のチップについて、エラー信号の待ち時間を考慮し、すなわち初期化エラー信号を受信する相対遅延時間に基づいて、様々なチップ内の様々なカウンタが、０以外の様々な初期値を有することができる（あるいは、エラー・サイクルのもう一方側で、診断コードによって、こうした待ち時間を考慮することもでき、すべてのカウンタがゼロ値に再設定される）。診断コードがエラーに対処した後、すべてのカウンタがクリアされ、再度同期がとられる。別法として、特殊な同期化ハードウェア８０の代わりに、サービス・プロセッサを用いて、ＪＴＡＧおよびＳＣＯＭインターフェースを介してカウンタの同期をとることもできる。
【００２９】
カウンタ７６のカウント値は限られているので、カウンタはモジュロのように動作し、カウンタが最大値から増分されたときに、現在の値をゼロにラップアラウンドする。最大カウント値が比較的に低い場合には、診断コードがカウント結果の解釈を誤ることがあり得る。たとえば、モジュロ・ラップアラウンドのため、カウンタが実際には、それよりも大きいカウント数を意味する場合に、カウンタのゼロ値を最小カウント数として識別することがあり得る。こうした問題を回避するために、それぞれのカウンタに、その最大カウント値が（クロック周波数に基づく）サイクル時間に対応することを保証するのに十分なほどの記憶域を設ける。このサイクル時間は、システムを回るエラー伝搬の最大遅延時間、すなわちエラーがプロセッサ・グループ４０を横断するのに要する最大時間の少なくとも２倍である。診断コードは、これを理解しており、低いラップアラウンド値と、見られる最大カウント数の差が大きい（最大伝搬遅延時間を超える）ことによって、低いラップアラウンド値を認識し、最小カウント数を識別したときに、（たとえば最大カウント値をいずれかのラップアラウンド値に加算することによって）単にモジュロ計算をラップアラウンド値に組み入れることができる。
【００３０】
ハードな回復可能障害（ＥＣＣ保護インターフェース上の単一の「スタック」ビットなど）の場合、障害分離はさらに難しくさえなり得る。このような場合、障害分離レジスタ（ＦＩＲ：Fault Isolation Register）がクリアされたときに、別のエラーが、通信トポロジを回って伝搬されている途中であることがある。特別な配慮がなされないと、ＦＩＲがクリアされることがあり、エラー報告が途中で新たに開始し、中間の二次エラーが一次エラーとして誤って識別されることになる。こうした問題は、通信経路を瞬間的に静止させ、任意の中間トラフィックを取り除き、すべてのチップ上のＦＩＲおよびカウンタを、同期をとってクリアし、次いで通信経路を改めて再開することによって解決することができる。このようにして、中間障害の伝搬によって、誤った分離レジスタが間違ってアクティブ化され得ないようにする。こうした静止時間は非常に短いので、処理装置またはＩ／Ｏ装置には、それが、通信トポロジを使用するための通常の調停による遅延時間とは異なるものには見えず、それによって、診断コードが回復可能エラーの発生源を除去する際に、顧客は停止に気付かない。
【００３１】
特定の実施形態を参照して本発明について述べたが、こうした説明は、限定的な意味で解釈されるものではない。本発明の説明を参照することにより、開示した実施形態の様々な修正、および本発明の別の実施形態が当業者には明らかになろう。たとえば、処理装置に関連する障害分離回路の背景において本発明を開示したが、本発明はより一般に、処理装置だけでなく、コンピュータ・システムの任意の構成要素、特に、任意のＦＲＵに適用することができる。したがって、添付の特許請求の範囲で定める本発明の精神または範囲から逸脱せずに、こうした修正を行えることが企図されている。
【００３２】
まとめとして、本発明の構成に関して以下の事項を開示する。
【００３３】
（１）コンピュータ・システムの一部を介して伝搬し、二次エラーを引き起こすエラーの一次発生源を識別する方法であって、
複数のコンピュータ構成要素にそれぞれ関連付けられた複数のカウンタを初期化するステップと、
前記コンピュータ構成要素が動作している間、前記複数のカウンタを増分するステップと、
前記複数カウンタのうち所与の１つを、それに関連するコンピュータ構成要素がエラーを検出したときに、一時停止するステップと、
前記一時停止ステップの後で、前記複数カウンタのうちどれが最小カウント値を含むかを判断するステップとを含む方法。
（２）前記初期化ステップが、初期化信号を受信する相対遅延時間に基づいて、前記複数カウンタのそれぞれの同期をとるステップを含む、上記（１）に記載の方法。
（３）前記複数のカウンタのうち１つが、集積回路チップ上にあり、それと同じ集積回路チップ上にある構成要素内でエラーを検出するステップに応答して一時停止される、上記（１）に記載の方法。
（４）前記複数カウンタのうち１つが、第１の集積回路チップ上にあり、第２の集積回路チップからのエラー信号を検出するステップに応答して一時停止される、上記（１）に記載の方法。
（５）前記判断ステップに応答して、最小カウント値を含むカウンタに関連する特定のコンピュータ構成要素について、エラー・イベントをログに記録するステップをさらに含む、上記（１）に記載の方法。
（６）前記複数カウンタのうち１つが、最大カウント値を超えて１回または複数回増分された後、低いラップアラウンド値で中断され、
前記判断ステップが、前記最大カウント値を前記低いラップアラウンド値に加算するステップを含む、上記（１）に記載の方法。
（７）前記コンピュータ構成要素間の通信経路を静止するステップと、
前記静止ステップの後に、前記コンピュータ構成要素上の障害分離レジスタをクリアするステップと、
前記クリア・ステップの後に、前記通信経路を再開するステップとをさらに含む、上記（１）に記載の方法。
（８）コンピュータ・システムの一部を介して伝搬し、二次エラーを引き起こすエラーの一次発生源を識別するための機構であって、
複数のコンピュータ構成要素にそれぞれ関連付けられ、それぞれが初期化され、前記コンピュータ構成要素が動作している間に増分する複数のカウンタと、
前記複数カウンタのうち所与の１つを、それに関連するコンピュータ構成要素がエラーを検出したときに一時停止する手段と、
前記複数カウンタのうちどれが最小カウント値を含むかを判断する手段とを含む機構。
（９）初期化信号を受信する相対遅延時間に基づいて、前記複数カウンタの同期がとられる、上記（８）に記載の機構。
（１０）前記複数カウンタのうち特定の１つが集積回路チップ上にあり、それと同じ集積回路チップ上にある構成要素内でエラーが検出されたことに応答して、前記一時停止手段が前記特定のカウンタを一時停止する、上記（８）に記載の機構。
（１１）前記複数カウンタのうち特定の１つが第１の集積回路チップ上にあり、第２の集積回路チップからのエラー信号が検出されたことに応答して、前記一時停止手段が前記特定のカウンタを一時停止する、上記（８）に記載の機構。
（１２）最小カウント値を含むカウンタに関連する特定のコンピュータ構成要素について、エラー・イベントをログに記録する診断コードをさらに含む、上記（８）に記載の機構。
（１３）それぞれのカウンタの最大カウント値が、前記コンピュータ構成要素を回るエラー伝搬の最大遅延時間の少なくとも２倍であるサイクル時間に対応するように、それぞれのカウンタに十分な記憶域を設ける、上記（８）に記載の機構。
（１４）前記判断手段が、前記コンピュータ構成要素間の通信経路を静止し、それらが静止している間に、前記コンピュータ構成要素上の障害分離レジスタをクリアし、次いで、前記通信経路を再開する、上記（８）に記載の機構。
（１５）複数の処理装置と、
前記処理装置にプログラム命令およびオペランド・データを提供するためのメモリ階層と、
前記複数の処理装置のうち様々な処理装置間で通信できるようにするデータ経路と、
前記複数の処理装置にそれぞれ関連付けられ、それぞれが初期化され、前記複数の処理装置が動作している間に増分する複数のカウンタと、
前記複数カウンタのうち所与の１つを、それに関連する処理装置がエラーを検出したときに一時停止する障害分離論理と、
前記複数カウンタのうちどれが最小カウント値を含むかを判断する手段とを含むコンピュータ・システム。
（１６）初期化信号を受信する相対遅延時間に基づいて、前記複数カウンタの同期がとられる、上記（１５）に記載のコンピュータ・システム。
（１７）前記複数カウンタのうち特定の１つが、集積回路チップ上にあり、それと同じ集積回路チップ上にある処理装置内でエラーが検出されたことに応答して、前記障害分離論理が前記特定のカウンタを一時停止する、上記（１５）に記載のコンピュータ・システム。
（１８）前記複数カウンタのうち特定の１つが第１の集積回路チップ上にあり、第２の集積回路チップからのエラー信号が検出されたことに応答して、前記一時停止の手段が前記特定のカウンタを一時停止する、上記（１５）に記載のコンピュータ・システム。
（１９）最小カウント値を含むカウンタに関連する特定の処理装置について、エラー・イベントをログに記録する診断コードをさらに含む、上記（１５）に記載のコンピュータ・システム。
（２０）それぞれのカウンタの最大カウント値が、前記処理装置を回るエラー伝搬の最大遅延時間の少なくとも２倍であるサイクル時間に対応するように、それぞれのカウンタに十分な記憶域を設ける、上記（１５）に記載のコンピュータ・システム。
（２１）前記判断手段が、前記通信経路を静止し、それらが静止されている間に、前記処理装置内の障害分離レジスタをクリアし、次いで、前記通信経路を再開する、上記（１５）に記載のコンピュータ・システム。
【図面の簡単な説明】
【００３４】
【図１】一般的に同一の４つの処理ユニットの１つについて、内部の詳細が示された、従来の対称マルチプロセッサ（ＳＭＰ）コンピュータ・システムのブロック図である。
【図２】図１のＳＭＰコンピュータ・システムのプロセッサの通信トポロジを示すブロック図である。
【図３】本発明の一実装による、プロセッサ・グループのレイアウトおよび通信トポロジを示すブロック図である。
【図４】特定の処理装置がエラーの一次発生源であるかどうかを判断するために使用される、本発明による障害分離回路を含む、図３のプロセッサ・グループ内の処理装置（チップ）のうち１つを示すブロック図である。
【図５】本発明による障害分離回路の一実施形態を示す、ハイレベル概略図である。
【符号の説明】
【００３５】
１０  コンピュータ・システム
１２ａ  処理装置
１２ｂ  処理装置
１２ｃ  処理装置
１２ｄ  処理装置
１４  プロセッサ・グループ
１６  ファブリック・バス
１８ａ  サービス・プロセッサ
１８ｂ  サービス・プロセッサ
２０  システム・メモリ・デバイス
２２  周辺装置
２４  プロセッサ・ブリッジ
２６ａ  プロセッサ・コア
２６ｂ  プロセッサ・コア
２８  Ｌ２キャッシュ
３０  メモリ・コントローラ
３２  Ｌ３キャッシュ
３４  通信バス
４０  プロセッサ・グループ
４２ａ  ドロワ
４２ｂ  ドロワ
４２ｃ  ドロワ
４４ａ  ＭＣＭ
４４ｂ  ＭＣＭ
４４ｃ  ＭＣＭ
４４ｄ  ＭＣＭ
４４ｅ  ＭＣＭ
４４ｆ  ＭＣＭ
４６ａ  ドロワ間バス
４６ｂ  ドロワ間バス
４６ｃ  ドロワ間バス
４６ｄ  ドロワ間バス
４８ａ  ドロワ内間バス
４８ｂ  ドロワ内間バス
４８ｃ  ドロワ内間バス
５０  チップ
５２  クロック制御された構成要素
５４  フリーラン構成要素
５６ａ  プロセッサ・コア
５６ｂ  プロセッサ・コア
５８  メモリ・サブシステム
６０  障害分離回路
６２  データ経路へのインターフェース
６４  ＪＴＡＧインターフェース
６６  ＳＣＯＭコントローラ
６８  スキャン・リング・コントローラ
７０  クロック・コントローラ
７２  並列直列変換器
７６  カウンタ／タイマ
７８  ラッチ
８０  同期化論理
【図１】
2004326775.tif 000003
【図２】
2004326775.tif 000004
【図３】
2004326775.tif 000005
【図４】
2004326775.tif 000006
【図５】
2004326775.tif 000007