JP2008176477A - 計算機システム - Google Patents
計算機システム Download PDFInfo
- Publication number
- JP2008176477A JP2008176477A JP2007008185A JP2007008185A JP2008176477A JP 2008176477 A JP2008176477 A JP 2008176477A JP 2007008185 A JP2007008185 A JP 2007008185A JP 2007008185 A JP2007008185 A JP 2007008185A JP 2008176477 A JP2008176477 A JP 2008176477A
- Authority
- JP
- Japan
- Prior art keywords
- transaction
- computer system
- controller
- failure
- node
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【課題】タイムアウト障害のように、計算機システムが設計者の意図しない動作を行ったか、もしくは故障してしまって発生するハードウェア障害が発生した時に、計算機システムの管理者が障害部位の特定を容易にすることができる計算機システムを提供する。
【解決手段】計算機システムの内部で、プロセッサ101及びメモリ107、拡張カード106間のデータの受け渡しを管理する回路であるチップセット110に、プロセッサ101または拡張カード106が発行したメモリアクセスもしくは拡張カード106へのアクセスの履歴を、チップセット内に記録する回路203を備える。計算機システムは、記録した履歴情報を、障害発生時に障害通報と共に計算機システムの管理者に送るか、もしくは計算機システムの管理者が外部から読み出す手段を備える。
【選択図】図1
【解決手段】計算機システムの内部で、プロセッサ101及びメモリ107、拡張カード106間のデータの受け渡しを管理する回路であるチップセット110に、プロセッサ101または拡張カード106が発行したメモリアクセスもしくは拡張カード106へのアクセスの履歴を、チップセット内に記録する回路203を備える。計算機システムは、記録した履歴情報を、障害発生時に障害通報と共に計算機システムの管理者に送るか、もしくは計算機システムの管理者が外部から読み出す手段を備える。
【選択図】図1
Description
本発明は、計算機システムに係り、特に計算機で障害が発生した時に、障害解析のための情報を外部から取り出す手段を備えた計算機システムに関する。
稼動中の計算機システムでハードウェア障害を検出した時は、障害部位を特定して切り離し又は切り替えを行い、計算機システムを止めずに実行中の処理を継続する事が、計算機システムに求められる。また、計算機システムがハードウェア障害により止まってしまった場合には、障害部位を特定してから交換し、素早く計算機システムを復旧して処理を再開する事が計算機システムに求められる。そのため、高い信頼性と可用性を保証する計算機システムは、計算機システムの各構成要素に、ハードウェア障害を検出し障害部位を特定する事ができるエラー検出機構を一般的に備える。具体的には、計算機システムの構成要素の1つであるプロセッサのキャッシュメモリ、システム・バス、メインメモリ等においては、パリティビット、もしくはECC(Error Correcting Code)をデータに付加し、データを各構成要素から読み出した際に、パリティエラーもしくはECCエラーの形で不正データの検出を行う機構を備える。それにより、キャッシュメモリ等の各構成要素からデータを読み出した時に、パリティエラーもしくはECCエラーを検出した際には、エラーが発生した構成要素を障害部位として特定する事ができる。パリティビットやECC以外の障害部位の特定を可能とするエラー検出機構としては、例えばPCIバスのトランザクション処理における、マスタアボート検出機構及びSERR信号アサートによるエラー報告機構が挙げられる。マスタアボート検出は、PCIバスのイニシエータのリクエストに対し、ターゲットデバイスが応答を返さなかったことを検出する。したがって、マスタアボート検出機構を用いると、ターゲットデバイスが障害部位であると特定する事ができる。また、SERR信号のアサートは、ブリッジ又はPCIデバイスなどのPCIバスのエージェントで致命的な障害が発生した事を示す。したがって、PCIバスでのSERR信号のアサートにより、PCIバスのエージェントが障害部位であると推定する事ができる。
しかし、計算機システムでハードウェア障害が発生した時に、先に説明したエラー検出機構を備えていても障害部位の特定ができない場合がある。先に説明したエラー検出機構は、設計者が計算システムを設計する際に予測し得るエラーを検出するものである。そのため、計算機システムが設計者の意図しない動作を行なって発生したか、もしくは故障により応答を返せないがために発生するハードウェア障害等では、先に説明したパリティエラーやECCエラー等のエラーが検出されず、障害部位を特定する事ができない。このようなハードウェア障害が発生した時、一般的な計算機システムでは、タイムアウト障害となる。計算機システムに任意のリクエストに対するハードウェアの応答時間を測定する機構を備え、一定時間リクエストに対し無応答であった時に、タイムアウトエラーを検出して、計算機システムの管理者にハードウェア障害発生を報告する。
タイムアウト障害が発生した時、計算機システムの管理者は、障害部位を推定するために、市販されているロジックアナライザ等のデジタル信号の観測装置を使用して計算機システム上のバス等でデジタル信号を観測し、障害部位を推定する必要がある。もしくは、特許文献1や特許文献2に記載されている技術のように、プロセッサバスのトレースを採取する機構を計算機システムに備えていれば、タイムアウト障害発生時に採取したプロセッサバスのトレースを見て障害部位を推定する。
しかし、上記前者の手段では、まず観測装置を計算機システムに接続し、その後タイムアウト障害を再現させて障害発生時のデジタル信号を採取し、採取した結果を元に障害部位を特定する必要がある。そのため、計算機システムの管理者は、調査に多大な時間と労力を要する事になる。また、タイムアウト障害の再現率が非常に低いものであれば、調査そのものが不可能となる場合もある。一方、後者の手段では、計算機システムの管理者は、プロセッサバスなど計算機システムの1構成要素の信号履歴を追って障害部位を推定する必要がある。そのため、タイムアウト障害がトレースを採取した箇所に関連して発生したものでないと、障害部位を特定することは困難となる。
以上説明した通り、従来技術では、タイムアウト障害のように、計算機システムが設計者の意図しない動作を行ったか、もしくは故障してしまって発生するハードウェア障害が発生した時に、計算機システムの迅速な復旧を保証することができないため、高い信頼性と可用性を保証する計算機システムでは重大な問題となる。
本発明の目的は、タイムアウト障害のように、計算機システムが設計者の意図しない動作を行ったか、もしくは故障してしまって発生するハードウェア障害が発生した時に、計算機システムの管理者が障害部位の推定を容易にすることができる計算機システムを提供することである。
本発明が提案する計算機システムは、計算機システムの内部でプロセッサ及びメモリ、拡張カード間のデータの受け渡しを管理する回路であるチップセットにおいて、プロセッサまたは拡張カードが発行したメモリアクセスもしくは拡張カードへのアクセスの履歴をチップセット内に記録する回路を備える。以降の説明では、計算機システム内でプロセッサまたは拡張カードが発行したメモリアクセス(メモリリード・ライト)もしくは拡張カードへのアクセス(I/Oリード・ライト)をトランザクションと称する。
履歴情報を記録する回路は、トランザクションの宛先であるメモリアドレス・I/Oアドレス、メモリリード・ライト及びI/Oリード・ライトといったトランザクションの種別を記録し、障害発生時に計算機システムでどのようなトランザクション処理を実行していたのか、履歴情報を見る事で推測できるようにする。また、履歴情報を記録する回路は、チップセット内のトランザクション処理状態も履歴情報として記録し、障害発生時に、チップセット内でトランザクション処理がどのような状態で止まっているのか履歴情報を見ることで分かるようにする。トランザクション処理状態の一例としては、宛先であるメモリまたは拡張カードに対してトランザクションを発行したか、宛先のメモリまたは拡張カードはリードデータを返したか、チップセットはトランザクション発行元のプロセッサまたは拡張カードに対しリードデータを返したか等が挙げられる。そして履歴情報を記録する回路は、上記トランザクション処理状態を記録する際に、計算機システムで一意に定めた時刻を記録する。具体的には、履歴情報を採取する各回路に、計算機システム内で同期して同じ値をカウントするカウンタを用意し、トランザクション処理状態を記録する際に該カウンタの値を同時に記録する。それにより、計算機システムの管理者は、計算機システムで複数の履歴情報を採取した場合にも、同じ時間軸で各履歴情報を見る事ができる。
また、本発明が提案する計算機システムは、記録した全チップセットのトランザクション処理状態の履歴情報を、障害発生時に障害通報と共に計算機システムの管理者に送るか、もしくは計算機システムの管理者が外部から任意のタイミングで読み出す手段を備える。
本発明によれば、タイムアウト障害のように、計算機システムが設計者の意図しない動作を行ったか、もしくは故障してしまって発生するハードウェア障害が発生した場合にも、計算機システムの管理者が障害発生時の全チップセット内でのトランザクション処理状態を知ることができるので、計算機システムの障害部位を特定することが容易となり、計算機システムの迅速な復旧を可能とする。
以下、図面を用いて本発明の実施形態を詳細に説明する。図1は本発明で想定する計算機システムの一例である。本計算機システムは、ノードA 100とノードB 130、そしてノードA 100とノードB 130を接続するノード間リンク140、計算機システムの各構成要素を管理する管理モジュール150を備える。
ノード間リンク140は、ノードA 100とノードB 130間でトランザクション情報の送信・受信を可能とするものであり、クロスバーや完全結合網など、構築する計算機システムに適した接続手段で実現することができる。本説明におけるトランザクション情報とは、計算機システム内でトランザクションを処理するために必要な情報を指す。具体的には、アクセス対象のメモリアドレスとI/Oアドレス、メモリリード・ライト及びI/Oリード・ライトといったトランザクションの種別、そして計算機システム内でトランザクションを一意に管理するためのトランザクション識別子、リードしたまたはライトするデータ、ライト処理を実施したことを報告するためのACKとリードまたはライト処理を実施出来なかった事を報告するためのNACKのことである。トランザクション情報は、トランザクションパス171を介して、計算機システム内の各構成要素間で発行・受信される。
管理モジュール150の機能は、計算機システムの各構成要素の電源管理(投入/切断)、構成要素情報の管理、障害発生時の計算機システム内トランザクション情報・処理状態履歴の採取・障害通報、システム内環境(温度・電源)監視である。本実施例では、管理用コンソール160と管理モジュール150は、LAN I/F170を介して通信が可能である。ただし、管理用コンソール160と管理モジュール150間の通信手段は特に制限するものではなく、例えばシリアルケーブルを使用して通信しても良い。計算機システムの使用者は、管理用コンソール160を使用して、管理モジュール150を介し計算機システムの管理/操作を行なうことができる。管理モジュール150は、計算機システム内の障害が発生したノードから障害通報を受けた時、計算機システムを構成する各ノードに対しトランザクション情報・処理状態履歴の採取要求を出す。そして、採取要求に対し各ノードからトランザクション情報・処理状態履歴の情報が返ってきたら、管理用コンソール160に対し障害通報と共に採取した各ノードのトランザクション情報・処理状態履歴を送信する。その結果、計算機システムの管理者は、管理用コンソール160に示された障害通報により障害が発生した事を知ることができ、障害通報と共に送られた各ノードのトランザクション情報・処理状態履歴を見る事で、エラー内容が障害部位を特定できるものではなくても、障害部位を特定する事が可能となる。また、管理モジュール150は、計算機システムの管理者が管理用コンソール160を介してトランザクション情報・処理状態履歴の採取要求を出した場合にも、計算機システムを構成する各ノードに対しトランザクション情報・処理状態履歴の採取要求を出す。そして、採取要求に対し各ノードからトランザクション情報・処理状態履歴の情報が返ってきたら、管理用コンソール160に対し各ノードのトランザクション情報・処理状態履歴を送信する。
ノードA 100は、プロセッサ101及び102、プロセッサバス(第1のパス)103、ノード内管理回路104、I/Oブリッジ105、PCIデバイス106、メモリ107、PCIバス108、チップセット110を備える。本実施例では、拡張カードとして一般的なPCIデバイスを採用したが、もちろんこれに制限するものではなく、例えば最新のPCI−Expressデバイスでも良い。また、ノードB 130はノードA 100と全く同じ構成要素を持つものとする。また、本実施例では2ノード構成としたが、ノード数も特に規定するものではない。
プロセッサバス103は、プロセッサ101及び102と、チップセット110を接続し、プロセッサ101及び102とチップセット110間のトランザクション情報の発行・受信を行う。
ノード内管理回路104は、障害情報通知パス172を介したチップセット110の各構成要素からの障害通報の受信と、障害情報採取パス173を介したプロセッサバスコントローラ111及びI/Oコントローラ112からのトランザクション情報・処理状態履歴の入手、そして管理モジュール150への障害通報を行う。ノード内管理回路104はLAN I/F(第2のパス)170を介して管理モジュール150と通信可能であり、障害通報を受けた管理モジュール150は、計算機システムを構成する各ノードのノード内管理回路104を介して、各ノードのプロセッサバスコントローラ111及びI/Oコントローラ112からトランザクション情報・処理状態履歴を採取する。
I/Oブリッジ105は、PCIバス108を介してチップセット110とPCIデバイス106を接続し、チップセット110とPCIデバイス106間のデータの発行・受信を行う。
チップセット110は、プロセッサバスコントローラ111、I/Oコントローラ112、メモリコントローラ113、ノード間リンクコントローラ114を備える。
プロセッサバスコントローラ111は、プロセッサ101またはプロセッサ102が発行したトランザクション及びライトデータを、プロセッサバス103を介して受信し、トランザクション情報を見て、リード・ライト対象となるチップセット110の構成要素に対し、トランザクション及びライトデータを発行する。例えば、ノードA 100にあるプロセッサコントローラ111においては、トランザクションのアクセス対象のアドレスがノードAのメモリ107宛てであればメモリコントローラ113に、もしくはノードAのPCIデバイス106宛てであればI/Oコントローラ112に、そしてノードBのメモリ107またはPCIデバイス106宛てであればノード間リンクコントローラ114にトランザクション及びライトデータを発行する。また、プロセッサバスコントローラ111は、チップセット110の各構成要素から送信されたリードデータを、プロセッサバス103を介してプロセッサ101または102に送信する。プロセッサバスコントローラ111は、本発明の特徴であるトランザクション情報・処理状態の履歴を記録する回路を備えているので、内部構成及び処理内容について後で詳細に説明する。
I/Oコントローラ112は、計算機システム内の各プロセッサまたは他ノードにあるPCIデバイスが発行したI/Oリード・ライト及びライトデータを、I/Oブリッジ105を介してPCIデバイス106に発行する。また、PCIデバイス106からリードしたデータを、トランザクション発行元であるプロセッサまたはPCIデバイスに対して発行する。I/Oライトの場合は、I/OライトとライトデータをI/Oブリッジ105を介してPCIデバイス106に発行した時点で、I/Oコントローラ112は、トランザクション発行元のプロセッサまたはPCIデバイスに対してACKを発行する。もしI/Oブリッジ105及びPCIバス108、そしてPCIデバイス106において障害が発生し、PCIデバイス106に対してI/OリードもしくはI/Oライトとライトデータを発行できない場合、I/Oコントローラ112は、トランザクション発行元のプロセッサまたはPCIデバイスに対してNACKを発行する。障害の具体例としては、PCIデバイス106の故障が発生し、PCIデバイス106がトランザクションに対し無応答、もしくはPCIバス108でSERR信号がアサートされている等が挙げられる。PCIデバイス106は、プロセッサと同様にメモリ107または他ノードのPCIデバイス106に対しリード・ライトトランザクション及びライトデータを発行する。そのため、I/Oコントローラ112は、PCIデバイス106が発行したトランザクション及びライトデータを、I/Oブリッジ105を介して受け取り、トランザクション情報を見て、リード・ライト対象となる構成要素に対しトランザクション及びライトデータを発行する。また、プロセッサバスコントローラ110は、チップセット110の各構成要素から送信されたリードデータを、I/Oブリッジ105を介してPCIデバイス106に送信する。I/Oコントローラ112も、プロセッサバスコントローラ111と同様に、本発明の特徴であるトランザクション情報・処理状態の履歴を記録する回路を備えているので、内部構成及び処理内容について後で詳細に説明する。
メモリコントローラ112は、計算機システム内の各プロセッサまたは各PCIデバイスが発行したメモリリード・ライト及びライトデータを、メモリ107に発行する。また、メモリ107からリードしたデータを、トランザクション発行元であるプロセッサまたはPCIデバイスに対して発行する。メモリライトの場合は、メモリライトとライトデータをメモリ107に発行した時点で、メモリコントローラ113は、トランザクション発行元のプロセッサまたはPCIデバイスに対してACKを発行する。また、I/Oコントローラ112と同様、メモリが故障したなどの障害が発生しメモリ107にメモリリードもしくはメモリライトとライトデータを発行できない場合、トランザクション発行元のプロセッサまたはPCIデバイスに対してNACKを発行する。
ノード間リンクコントローラ114は、自ノード内のプロセッサまたはPCIデバイスが発行したトランザクション情報を、ノード間リンク140を介し、他ノードに対して発行、もしくは他ノードのプロセッサまたはPCIデバイスが発行したトランザクション情報を受信する。そして、ノード間リンクコントローラ114は、リード・ライト対象となる自ノード内の構成要素に対し、受信したトランザクション情報を発行する。
以下、本発明の特徴であるトランザクション情報・処理状態の履歴を記録する回路を持つ、プロセッサバスコントローラ111の内部構成及び処理内容について、図2を用いて詳細に説明する。プロセッサバスコントローラ111は、プロセッサバスI/Fコントローラ200、トランザクションコントローラ201、管理回路I/Fコントローラ202、アドレスキュー203、データインキュー204、データアウトキュー205、他ユニットI/Fコントローラ206、障害報告回路207、カウンタ208を備える。
プロセッサバスI/Fコントローラ200は、プロセッサバス103からプロセッサ101または102が発行したトランザクションまたはライトデータを受信、もしくはプロセッサバス103にリードデータを送信する。そしてトランザクション情報を受信した場合、プロセッサバスI/Fコントローラ200は、アドレスキュー203のトランザクション情報が無効なエントリに、トランザクション情報を格納する。無効なエントリが複数存在した時は、LRU方式でトランザクション情報を格納するようにすると、トランザクション情報を時系列で見ることができるので望ましい。もし無効なエントリがアドレスキュー203に無い場合、プロセッサバスI/Fコントローラ200はプロセッサがトランザクションまたはライトデータを発行できないように、プロセッサバス103の処理を止める。ライトデータをプロセッサバス103から受信した場合は、データインキュー204にライトデータを格納する。データアウトキュー205が発行したリードデータ及びACK、NACKを受けた場合は、プロセッサバス103にリードデータ及びACK、NACKを発行する。また、プロセッサバスI/Fコントローラ200は、プロセッサバス103の状態を監視し、プロセッサバス103で発生した障害を検知した場合は、障害報告回路207に障害通報を行なう。プロセッサバス103で検出する障害の具体例としては、トランザクションの対象アドレスのパリティエラー、リード・ライトデータのECCエラー等が挙げられる。
アドレスキュー203は、トランザクション処理がチップセット110内で完了するまで、トランザクション情報を格納する回路である。アドレスキュー203は、トランザクションを格納した事をトランザクションコントローラ201に通知するのみで、アドレスキュー203からのトランザクション発行及びトランザクション処理が完了した時のトランザクション情報の無効化制御は、トランザクションコントローラ201が行なう。図3にアドレスキュー203の構成例を示す。図3のアドレスキューは、エントリ数をnとした時の例である。nの数は、実現する計算機システムに適した値に設定すればよい。例えば、プロセッサがチップセットに同時に発行できるトランザクションの数か、もしくはトランザクション情報・処理状態の履歴を採取したい数等にすればよい。エントリ番号300は、エントリ番号を格納する。バリッドビット301は、“1”の場合エントリに格納しているトランザクション情報が有効であることを示し、“0”の場合無効であることを示す。対象アドレス302は、トランザクションが対象とするメモリアドレスもしくはI/Oアドレスを格納する。種別303は、メモリリード・ライト、I/Oリード・ライトといったトランザクション種別を格納する。識別子304は、計算機システム内でトランザクションを一意に識別できる番号を格納する。
以下に説明するアドレスキュー203の構成要素は、チップセット110内でのトランザクション処理状態を示すものである。発行ステータス305は、トランザクションを宛先の構成要素に発行したことを示すフラグと、発行した時間を格納するカウンタ値を持つ。“フラグ”は、“1”の時にトランザクションを発行したことを示し、“0”の時に未発行であることを示す。また、“カウンタ値”は、トランザクションを発行した時のカウンタ208の値が入る。受信ステータス306は、プロセッサバス103からライトデータを受信したか、もしくはチップセット110の構成要素からリードデータ及びACK、NACKを受信した事を示す“状態”と、受信した時間を格納するカウンタ値を持つ。“状態”は、“data”の時にリード・ライトデータを受信したことを、“ack”または“nack”の時にACKまたはNACKを受信したことを、そして“0”の時に未受信であることを示す。また、カウンタ値は、リード・ライトデータ及びACK、NACKを受信した時のカウンタ208の値が入る。完了ステータス307は、リードデータ及びACK、NACKをプロセッサバス103に対して発行し、チップセット110内でのトランザクション処理が完了したことを示す“フラグ”と、トランザクション処理が完了した時間を格納するカウンタ値を持つ。フラグは、“1”の時にトランザクション処理が完了したことを示し、“0”の時にトランザクション処理が完了していないことを示す。また、カウンタ値は、トランザクション処理が完了した時のカウンタ208の値が入る。
本実施例では、チップセット110内でのトランザクション処理状態を示す情報として3種類のステータス305〜307を示しているが、必要であれば別のステータスを追加してもよい。追加するステータスの一例としては、メモリのccNUMA構成を提供する計算機システムにおける、キャッシュ一致制御処理の完了/未完了のステータスを挙げる事ができる。また、チップセット内でのトランザクション処理状態がカウンタ値と共に記録されれば良いので、“フラグ”や“状態”等の処理状態の表現手段も特に規定するものではなく、実現する計算機システムに適した表現手段を用いれば良い。
データインキュー204は、ライトデータを格納するキューである。また、データアウトキュー205は、リードデータ及びACK、NACKを格納するキューである。データインキュー204及びデータアウトキュー205とも、格納したデータの発行指示は、トランザクションコントローラ201が行なう。また、本実施例では、データインキュー204及びデータアウトキュー205ともデータ及びACK、NACKを格納するエントリは、対応するトランザクション情報をアドレスキュー203に格納した時と同じエントリ番号であるエントリに格納するものとする。これにより、アドレスキュー203のバリッドビット301で、データインキュー204及びデータアウトキュー205に格納した情報の有効・無効判定を実現する。
カウンタ208は、各ノードで共通のカウンタ値を示すものである。例えば、計算機システムを電源投入した際に各ノードで同期してカウンタのインクリメントを開始し、カウンタを同じ周波数で動作させれば、各ノードで共通なカウンタ値を実現できる。
他ユニットI/Fコントローラ206は、トランザクションの宛先であるチップセット110の各構成要素に対し、アドレスキュー203から受信したトランザクション及びデータインキュー204から受信したライトデータを発行、もしくはトランザクションの宛先であるチップセット110の各構成要素からリードデータ及びACK、NACKを受信する。そしてリードデータ及びACK、NACKを受信した場合、他ユニットI/Fコントローラ206は、データアウトキュー205にリードデータ及びACK、NACKを格納する。また、他ユニットI/Fコントローラ206は、チップセット110の構成要素112〜113のI/Fを監視し、リードデータ及びACK、NACK受信時に障害を検知した場合は、障害報告回路207に障害通報を行なう。プロセッサバス103で検出する障害と同様に、トランザクションの対象アドレスのパリティエラー、リード・ライトデータのECCエラー等が挙げられる。
トランザクションコントローラ201は、トランザクションとリード・ライトデータ、そしてACKとNACKの制御を行なう。他ユニットI/Fコントローラ206から、宛先のチップセット110の構成要素がトランザクションもしくはライトデータを受信可能かどうかの情報を入手し、受信可能であればアドレスキュー203に対してトランザクション発行指示を、もしくはデータインキュー205に対してライトデータの発行指示を出す。また、プロセッサバスI/Fコントローラ200から、プロセッサバス103にリードデータ及びACK、NACKを発行出来るか否かの情報を入手し、発行可能であればデータアウトキュー205に対してリードデータ及びACK、NACKの発行指示を出す。データアウトキュー205に対してリードデータ及びACK、NACKの発行指示を出した際にトランザクションコントローラ201は、チップセット110内でのトランザクション処理が完了したと判断し、アドレスキュー203のバリッドビット301を“0”に更新し、アドレスキュー203及びデータインキュー204、データアウトキュー205に格納したトランザクション情報の無効化を行なう。エントリの無効化に際してバリッドビットのみ更新する理由は、トランザクション処理が完了したトランザクションの情報を見ることができるようにするためである。
もう1つのトランザクションコントローラ201の機能は、アドレスキュー203のトランザクション処理状態を示すステータス305〜307を更新する事である。アドレスキュー203に対してトランザクション発行指示を出した際は、トランザクションコントローラ201は、発行ステータス305を更新する。また、リードデータ及びACK、NACKをデータアウトキュー205に格納した際は、格納したとの通知をデータアウトキュー205から受信し、受信ステータス306を更新する。もしくは、ライトデータをデータインキュー204に格納した際は、格納したとの通知をデータインキュー204から受信し、受信ステータス306を更新する。そして、データアウトキュー205に対してリードデータ及びACK、NACKの発行指示を出した際は、完了ステータス307を更新する。
トランザクションコントローラ201が検出する障害は、トランザクション処理のタイムアウトである。トランザクションコントローラ201は、アドレスキュー203にトランザクション情報を格納してから無効化するまでの時間を監視し、規定時間を越えてアドレスキュー203にトランザクション情報が有効であり続けた場合、トランザクション処理のタイムアウトが発生したと判断し、トランザクションコントローラ201は、障害通報を障害報告回路207に送信する。本実施例ではトランザクションコントローラ201が検出する障害をタイムアウト障害のみとしたが、実現する計算機システムの仕様に応じて、検出する障害の種類を増やしても良い。
障害報告回路207は、プロセッサバスI/Fコントローラ200及びトランザクションコントローラ201、そして他ユニットI/Fコントローラ206からの障害通報を、障害情報通知パス172を介してノード内管理回路104に発行する。
管理回路I/Fコントローラ202は、ノード内管理回路104から障害情報採取パス173を介して送られてきたトランザクション情報・処理状態履歴の採取要求を処理する回路である。トランザクション情報・処理状態履歴の採取要求を受けた管理回路I/Fコントローラ202は、アドレスキュー203の全エントリのトランザクション情報・処理状態を読み出し、障害情報採取パス(第2のパス)173を介してノード管理回路104に読み出したトランザクション情報・処理状態を送信する。トランザクション情報・処理状態の採取に使用するパスはトランザクション情報を送るパスとは全く別のパスで実現し、障害が発生しチップセット110のトランザクション処理が止まったとしても、トランザクション情報・処理状態の履歴を管理モジュール150が採取できる事を保証する。
次に、プロセッサバスコントローラ111と同様に、本発明の特徴であるトランザクション情報・処理状態の履歴を記録する回路を持つI/Oコントローラ112の内部構成及び処理内容を、図4を用いて説明する。I/Oコントローラ112は、I/O I/Fコントローラ400、トランザクションコントローラ401、管理回路I/Fコントローラ402、アドレスキュー403、データインキュー404、データアウトキュー405、他ユニットI/Fコントローラ406、障害報告回路407、カウンタ408、他ユニット発I/O要求コントローラ409を備える。
他ユニット発I/O要求コントローラ409は、計算機システム内の各プロセッサまたは他ノードにあるPCIデバイスが発行したI/Oリード・ライトを処理する回路である。I/O I/Fコントローラ400からI/Oブリッジ105にI/Oリード・ライト及びライトデータを発行可能との情報を得たら、他ユニット発I/O要求コントローラ409は、I/O I/Fコントローラ400を介して、I/Oブリッジ105にI/Oリード・ライト及びライトデータを発行する。また、他ユニット発I/O要求コントローラ409は、他ユニットI/Fコントローラ406から、宛先のチップセット110の構成要素がリードデータを受信可能かどうかの情報を入手し、受信可能であれば、PCIデバイス106からリードしたリードデータを、他ユニットI/Fコントローラ406を介して、トランザクション発行元であるプロセッサまたはPCIデバイスに対して発行する。I/Oライトの場合は、I/Oライト及びライトデータをI/Oブリッジ105を介してPCIデバイス106に発行した時点で、他ユニット発I/O要求コントローラ409は、トランザクション発行元のプロセッサまたはPCIデバイスに対してACKを発行する。もしI/Oブリッジ105及びPCIバス108、そしてPCIデバイス106において障害が発生し、PCIデバイス106に対してトランザクションまたはライトデータを発行できない場合、I/Oコントローラ112は、トランザクション発行元のプロセッサまたはPCIデバイスに対してNACKを発行する。
I/O I/Fコントローラ400は、I/Oブリッジ105からトランザクション及びライトデータ、計算機システム内の各プロセッサまたは他ノードにあるPCIデバイスが発行したI/Oリードに対するPCIデバイス106からのリードデータを受信、もしくはI/Oブリッジ105にリードデータ及びACK、NACK、そして計算機システム内の各プロセッサまたは他ノードにあるPCIデバイスが発行したI/Oリード・ライト及びライトデータを発行する。そしてトランザクションを受信した場合、I/O I/Fコントローラ400は、アドレスキュー403のトランザクション情報が無効なエントリに、トランザクション情報を格納する。無効なエントリが複数存在した時は、LRU方式でトランザクション情報を格納するようにすると、トランザクション情報を時系列で見ることができるので望ましい。そして、ライトデータをI/Oブリッジ105から受信した場合、I/O I/Fコントローラ400は、データインキュー404にライトデータを格納する。もし無効なエントリがアドレスキュー403に無い場合、I/O I/Fコントローラ400はPCIデバイスがトランザクションまたはライトデータを発行できないように、I/Oブリッジ105の処理を止める。リードデータ及びACK、NACKをデータアウトキュー405から受信した場合は、I/Oブリッジ105にリードデータ及びACK、NACKを発行する。計算機システム内の各プロセッサまたは他ノードにあるPCIデバイスが発行したI/Oリードに対するPCIデバイス106からのリードデータを受信した場合、I/O I/Fコントローラ400は、他ユニット発I/O要求コントローラ409にリードデータを発行する。また、I/O I/Fコントローラ400は、I/Oブリッジ105の状態を監視し、I/Oブリッジ105で発生した障害を検知した場合に、障害報告回路407に障害通報を行なう。I/Oブリッジ105で検出する障害の具体例としては、本実施例はPCIバス108を使用しているので、SERRアサート検出、マスタアボート等が挙げられる。
他ユニットI/Fコントローラ406は、トランザクションの宛先であるチップセット110の各構成要素に対し、アドレスキュー403から受信したトランザクション及びデータインキュー404から受信したライトデータ、計算機システム内の各プロセッサまたは他ノードにあるPCIデバイスが発行したI/Oリードに対するPCIデバイス106からのリードデータを発行する。また、他ユニットI/Fコントローラ406は、トランザクションの宛先であるチップセット110の各構成要素からリードデータ及びACK、NACKを受信した場合、他ユニットI/Fコントローラ406は、データアウトキュー405にリードデータ及びACK、NACKを格納する。そして計算機システム内の各プロセッサまたは他ノードにあるPCIデバイスが発行したI/Oリード・ライト及びライトデータを受信した場合、他ユニット発I/O要求コントローラ409にI/Oリード・ライト及びライトデータを送信する。また、他ユニットI/Fコントローラ406は、チップセット110の構成要素111及び113、114のI/Fを監視し、リードデータ及びACK、NACK受信時に障害を検知した場合は、障害報告回路407に障害通報を行なう。検知する障害の具体例としては、トランザクションの対象アドレスのパリティエラー、リード・ライトデータのECCエラー等が挙げられる。
I/Oコントローラ112の構成要素401〜405、407、408は、プロセッサバスコントローラ111の構成要素201〜205、207、208と全く機能が同じなので説明を省略する。
以下に、本実施例において障害を検出した時の障害通報及びトランザクション情報・処理状態履歴採取の流れを説明する。説明のために、ノードA 100のプロセッサバスコントローラ111にあるトランザクションコントローラ201でタイムアウト障害が発生したと仮定する。
トランザクションコントローラ201でタイムアウト障害を検出した時、トランザクションコントローラ201は、障害報告回路207にタイムアウト障害発生を通報する。障害通報を受信した障害報告回路207は、ノード内管理回路104を介して、管理モジュール150に、“ノードA 100のプロセッサバスコントローラ111にあるトランザクションコントローラ201でタイムアウト障害が発生した”と報告する。障害通報を受信した管理モジュール150は、各ノードのノード内管理回路104に、トランザクション情報・処理状態履歴の採取要求を発行する。トランザクション情報・処理状態履歴の採取要求を受信したノード内管理回路104は、管理回路I/Fコントローラ202及び402を介して、アドレスキュー203及び403にある全エントリのトランザクション情報・処理状態を読み出す。そして、読み出したアドレスキュー203及び403のトランザクション情報・処理状態履歴を、ノード内管理回路104は、管理モジュール150に送信する。各ノードのノード内管理回路104から、各ノードのアドレスキュー203及び403のトランザクション情報・処理状態履歴を受信した管理モジュール150は、該トランザクション情報・処理状態履歴を、“ノードA 100のプロセッサバスコントローラ111にあるトランザクションコントローラ201でタイムアウト障害が発生した”ことを示す障害通報と共に、管理用コンソール160に送信する。
トランザクションコントローラ201でタイムアウト障害を検出した時、トランザクションコントローラ201は、障害報告回路207にタイムアウト障害発生を通報する。障害通報を受信した障害報告回路207は、ノード内管理回路104を介して、管理モジュール150に、“ノードA 100のプロセッサバスコントローラ111にあるトランザクションコントローラ201でタイムアウト障害が発生した”と報告する。障害通報を受信した管理モジュール150は、各ノードのノード内管理回路104に、トランザクション情報・処理状態履歴の採取要求を発行する。トランザクション情報・処理状態履歴の採取要求を受信したノード内管理回路104は、管理回路I/Fコントローラ202及び402を介して、アドレスキュー203及び403にある全エントリのトランザクション情報・処理状態を読み出す。そして、読み出したアドレスキュー203及び403のトランザクション情報・処理状態履歴を、ノード内管理回路104は、管理モジュール150に送信する。各ノードのノード内管理回路104から、各ノードのアドレスキュー203及び403のトランザクション情報・処理状態履歴を受信した管理モジュール150は、該トランザクション情報・処理状態履歴を、“ノードA 100のプロセッサバスコントローラ111にあるトランザクションコントローラ201でタイムアウト障害が発生した”ことを示す障害通報と共に、管理用コンソール160に送信する。
計算機システムの管理者は、タイムアウト障害通報と共に送られたトランザクション情報・処理状態履歴を見て、例えば次のように障害部位を特定する。ノードA 100のアドレスキュー203から採取したトランザクション情報・処理状態履歴を見ると、障害発生時に、ノードB 130のPCIデバイス106宛てのI/Oリードに対してのみリードデータ及びNACKが返っていないことが分かったとする。NACKが返っていないので、ノードB 130のI/Oコントローラ112は、PCIデバイスにI/Oリクエストを発行したものと考えられる。この場合は、ノードB 130のPCIデバイス106がリードデータを返さないのがタイムアウト障害の原因であると推測できるので、故障部位としてノードB 130のPCIデバイス106を挙げる事ができる。ただし、ノードB 130のPCIデバイス106がリードデータを発行した後、例えばチップセットの論理不良が原因で、リターンデータがノードB 130のチップセット110内で送信が止まってしまっている場合が考えられる。この場合は、先の推測は誤りとなり、障害部位はノードB 130のチップセット110が正解となる。もし、このような障害部位推測ミスを極力防ぎたいのであれば、記録するトランザクション処理状態の粒度を細かくすればよい。本実施例では、トランザクション発行、リード・ライトデータまたはACK及びNACKの受信、トランザクション処理完了の3つのタイミングでしかトランザクション処理状態を記録していない。そこで、例えばメモリコントローラやI/Oコントローラでトランザクション情報を発行・受信をするタイミングでもトランザクション処理状態を記録するようにすれば、リターンデータの送信状況も詳細に分かるので、障害部位推測ミスを極力防ぐ事が可能である。
以上に説明した通り、上記実施例によれば、計算機システムの管理者は、障害通報と共に、計算機システムにある全チップセット内のトランザクション処理状態履歴を知ることができる。したがって、以下の効果を得ることができる。
(1)計算機システムにある全チップセット内のトランザクション処理状態履歴を知ることができるので、タイムアウト障害発生時にも障害発生時のトランザクション処理状態が分かり、障害部位の特定が可能になる。
(2)タイムアウト障害発生時の障害部位指摘に、市販されているロジックアナライザ等のデジタル信号の観測装置を使用する必要は無く、現象再現の必要がないので、調査に要する時間と労力を抑える事ができる。
(3)プロセッサバスのトレース等、計算機システムの1構成要素を見るのではなく、計算機システムの全チップセット内のトランザクション処理状態を見るので、タイムアウト障害に関係する情報を必ず得る事ができ、障害部位の解析が容易になる。
(1)計算機システムにある全チップセット内のトランザクション処理状態履歴を知ることができるので、タイムアウト障害発生時にも障害発生時のトランザクション処理状態が分かり、障害部位の特定が可能になる。
(2)タイムアウト障害発生時の障害部位指摘に、市販されているロジックアナライザ等のデジタル信号の観測装置を使用する必要は無く、現象再現の必要がないので、調査に要する時間と労力を抑える事ができる。
(3)プロセッサバスのトレース等、計算機システムの1構成要素を見るのではなく、計算機システムの全チップセット内のトランザクション処理状態を見るので、タイムアウト障害に関係する情報を必ず得る事ができ、障害部位の解析が容易になる。
100、130…ノードA及びノードB、
101、102…プロセッサ、
103…プロセッサバス、
104…ノード内管理回路、
105…I/Oブリッジ、
106…PCIデバイス、
107…メモリ、
108…PCIバス、
110…チップセット、
111…プロセッサバスコントローラ、
112…I/Oコントローラ、
113…メモリコントローラ、
114…ノード間リンクコントローラ、
140…ノード間リンク、
150…管理モジュール、
160…管理用コンソール、
170…LAN I/F、
171…トランザクションパス、
172…障害情報通知パス、
173…障害情報採取パス、
200…プロセッサバスI/Fコントローラ、
201、401…トランザクションコントローラ、
202、402…管理回路I/Fコントローラ、
203、403…アドレスキュー、
204、404…データインキュー、
205、405…データアウトキュー、
206、406…他ユニットI/Fコントローラ、
207、407…障害報告回路、
208、408…カウンタ、
300…エントリ番号、
301…エントリのバリッドビット、
302…トランザクションの対象アドレス、
303…トランザクションの種別、
304…トランザクションの識別子、
305…トランザクションの発行ステータス、
306…トランザクションの受信ステータス、
307…トランザクションの完了ステータス、
400…I/O I/Fコントローラ、
409…他ユニット発I/O要求コントローラ。
101、102…プロセッサ、
103…プロセッサバス、
104…ノード内管理回路、
105…I/Oブリッジ、
106…PCIデバイス、
107…メモリ、
108…PCIバス、
110…チップセット、
111…プロセッサバスコントローラ、
112…I/Oコントローラ、
113…メモリコントローラ、
114…ノード間リンクコントローラ、
140…ノード間リンク、
150…管理モジュール、
160…管理用コンソール、
170…LAN I/F、
171…トランザクションパス、
172…障害情報通知パス、
173…障害情報採取パス、
200…プロセッサバスI/Fコントローラ、
201、401…トランザクションコントローラ、
202、402…管理回路I/Fコントローラ、
203、403…アドレスキュー、
204、404…データインキュー、
205、405…データアウトキュー、
206、406…他ユニットI/Fコントローラ、
207、407…障害報告回路、
208、408…カウンタ、
300…エントリ番号、
301…エントリのバリッドビット、
302…トランザクションの対象アドレス、
303…トランザクションの種別、
304…トランザクションの識別子、
305…トランザクションの発行ステータス、
306…トランザクションの受信ステータス、
307…トランザクションの完了ステータス、
400…I/O I/Fコントローラ、
409…他ユニット発I/O要求コントローラ。
Claims (3)
- 第1のパスと、該第1のパスに接続されたプロセッサ及びチップセットと、前記チップセットに接続されたメモリ及び拡張カードとを有し、前記チップセットにより前記プロセッサとメモリ間及びプロセッサと拡張カード間の情報授受の制御を行うノードを有する計算機システムにおいて、
前記チップセットは、前記プロセッサもしくは拡張カードが発行した前記メモリに対するアクセスと、前記プロセッサが発行した前記拡張カードに対するアクセスの、当該チップセット内での処理状態を時間情報と共に記録する記録手段を有し、
前記ノードはさらに、他装置からの要求により、前記記録手段に記録されているチップセット内での処理状態と時間情報を第2のパスを介して読み出して、他装置に送信する手段を有することを特徴とする計算機システム。 - 前記時間情報は、前記チップセット内で一意に定めた時刻であることを特徴とする請求項1記載の計算機システム。
- 前記ノードを複数個有し、各ノードのプロセッサもしくは拡張カードから他ノードのメモリもしくは拡張カードへのアクセスの、各チップセット内での処理状態を前記複数のノードで一意に定めた時刻と共に各チップセットの記録手段に記録することを特徴とする請求項1記載の計算機システム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007008185A JP2008176477A (ja) | 2007-01-17 | 2007-01-17 | 計算機システム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2007008185A JP2008176477A (ja) | 2007-01-17 | 2007-01-17 | 計算機システム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2008176477A true JP2008176477A (ja) | 2008-07-31 |
Family
ID=39703463
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2007008185A Pending JP2008176477A (ja) | 2007-01-17 | 2007-01-17 | 計算機システム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2008176477A (ja) |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011197952A (ja) * | 2010-03-18 | 2011-10-06 | Ricoh Co Ltd | 情報処理装置、画像形成装置及び情報処理プログラム |
| JP2011248759A (ja) * | 2010-05-28 | 2011-12-08 | Nec Computertechno Ltd | 情報処理装置及び情報処理装置の実行制御方法 |
| JP2013186524A (ja) * | 2012-03-06 | 2013-09-19 | Nec Computertechno Ltd | データ処理システム、データ処理方法、データ処理プログラム、トランザクション測定回路 |
| JP2014021908A (ja) * | 2012-07-23 | 2014-02-03 | Nec Commun Syst Ltd | プロセッサアクセス履歴モニタ回路およびプロセッサアクセス履歴モニタ方法 |
| JP2017058974A (ja) * | 2015-09-16 | 2017-03-23 | 株式会社イシダ | 情報処理端末管理システム |
| JP2025106560A (ja) * | 2017-03-29 | 2025-07-15 | グーグル エルエルシー | 分散ハードウェアトレーシング |
-
2007
- 2007-01-17 JP JP2007008185A patent/JP2008176477A/ja active Pending
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2011197952A (ja) * | 2010-03-18 | 2011-10-06 | Ricoh Co Ltd | 情報処理装置、画像形成装置及び情報処理プログラム |
| US8874959B2 (en) | 2010-03-18 | 2014-10-28 | Ricoh Company, Limited | Information processing apparatus, image forming apparatus, and information processing program |
| JP2011248759A (ja) * | 2010-05-28 | 2011-12-08 | Nec Computertechno Ltd | 情報処理装置及び情報処理装置の実行制御方法 |
| JP2013186524A (ja) * | 2012-03-06 | 2013-09-19 | Nec Computertechno Ltd | データ処理システム、データ処理方法、データ処理プログラム、トランザクション測定回路 |
| JP2014021908A (ja) * | 2012-07-23 | 2014-02-03 | Nec Commun Syst Ltd | プロセッサアクセス履歴モニタ回路およびプロセッサアクセス履歴モニタ方法 |
| JP2017058974A (ja) * | 2015-09-16 | 2017-03-23 | 株式会社イシダ | 情報処理端末管理システム |
| JP2025106560A (ja) * | 2017-03-29 | 2025-07-15 | グーグル エルエルシー | 分散ハードウェアトレーシング |
| JP7802229B2 (ja) | 2017-03-29 | 2026-01-19 | グーグル エルエルシー | 分散ハードウェアトレーシング |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6311296B1 (en) | Bus management card for use in a system for bus monitoring | |
| US7313717B2 (en) | Error management | |
| US7543191B2 (en) | Method and apparatus for isolating bus failure | |
| US6829729B2 (en) | Method and system for fault isolation methodology for I/O unrecoverable, uncorrectable error | |
| US20040221198A1 (en) | Automatic error diagnosis | |
| US7917664B2 (en) | Storage apparatus, storage apparatus control method, and recording medium of storage apparatus control program | |
| JPH10334043A (ja) | 制御及び割り込みラインのマスキングによるpci及びeisaマスタの分離 | |
| JP2008176477A (ja) | 計算機システム | |
| CN110580235A (zh) | 一种sas扩展器通信方法及装置 | |
| KR101498452B1 (ko) | 복합 멀티-코어 및 멀티-소켓 시스템의 디버깅 | |
| US20040255187A1 (en) | Data synchronization for system controllers | |
| US10581555B2 (en) | Information processing device and burst error reproducing method | |
| TWI756007B (zh) | 用以進行全快閃記憶體陣列伺服器的高可用性管理的方法與設備 | |
| JP4299634B2 (ja) | 情報処理装置及び情報処理装置の時計異常検出プログラム | |
| JP4644720B2 (ja) | 制御方法、情報処理装置及びストレージシステム | |
| JP3838992B2 (ja) | 障害検出方法及び情報処理システム | |
| US9454452B2 (en) | Information processing apparatus and method for monitoring device by use of first and second communication protocols | |
| US20200073751A1 (en) | Storage apparatus and recording medium | |
| US6581121B1 (en) | Maintenance link system and method | |
| JP5440673B1 (ja) | プログラマブルロジックデバイス、情報処理装置、被疑箇所指摘方法およびプログラム | |
| US20140173365A1 (en) | Semiconductor apparatus, management apparatus, and data processing apparatus | |
| JP2003022222A (ja) | 情報処理装置及びその保守方法 | |
| JPWO2007097040A1 (ja) | 情報処理装置の制御方法、情報処理装置 | |
| JP3638773B2 (ja) | ディスクアレイ装置 | |
| JP2013196410A (ja) | サーバ装置及び障害管理方法及び障害管理プログラム |