(57)【特許請求の範囲】
【請求項１】
通信路を経由して他のプロセッサにデータを送信可能な複数のプロセッサを有する情報処理装置におけるプロセッサ間通信測定システムにおいて、
前記通信路に接続され、装着されたプロセッサを前記通信路に導通させるソケットと、
前記プロセッサの代わりに前記ソケットに装着されて前記通信路に導通し、前記通信路から流入する他のプロセッサ宛のデータを当該他のプロセッサへ向けて前記通信路に送出するルーティング部，及び、前記ルーティング部を経由するデータを傍受する傍受手段を有する測定ノードと、
前記測定ノードの傍受手段によって傍受されたデータを蓄積する蓄積手段と
を備え、
前記通信路は、前記複数のプロセッサの各々の間を個別に接続しており、
前記各プロセッサは、他の各プロセッサとの間に接続された複数の通信路に夫々繋がる複数のポート，データの宛先プロセッサとデータが送出されるポートとの関係を定義したルーティングテーブル，及び、前記ルーティングテーブルを参照して、他のプロセッサ宛のデータを送出するポートを決定し、当該決定したポートから当該他のプロセッサ宛のデータを送出するルーティング部を有するとともに、
前記測定ノードがソケットに装着された場合に、各プロセッサの前記ルーティングテーブルを、他のプロセッサ宛のデータを送出するポートとして前記測定ノードに接続された通信路に繋がるポートが定義されているルーティングテーブルに書き換えるルーティングテーブル変更手段を、更に備える
ことを特徴とするプロセッサ間通信測定システム。
【請求項２】
前記測定ノードは、更に、前記ソケットに接続されている各通信路の状態を測定する測定部を有し、
前記蓄積手段は、前記測定部によって測定された各通信路の状態についての情報をも蓄積する
ことを特徴とする請求項１記載のプロセッサ間通信測定システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置におけるプロセッサ間通信の測定システムに、関する。
【背景技術】
【０００２】
コンピュータシステム（情報処理装置）のアーキテクチャの一つとして、複数のＣＰＵ（Central Processing Unit）を、バスを通じて相互に通信可能に接続させたものがある。例えば、各ＣＰＵに夫々メモリが接続されているとともに、ＣＰＵ間で各メモリが共有される共有メモリシステムにおいて、かかるアーキテクチャが採用される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−２２９０８０号公報
【特許文献２】特開平１０−３１３３３０号公報
【特許文献３】特開２００６−１０７０７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
図１０は、このような共有メモリシステムの概略構成例を示すブロック図である。図１０に示す例では、共有メモリシステムは、配下に複数のメモリ１０１及び一つの入出力回路（Ｉ／Ｏ）１０２が夫々接続された４個のＣＰＵ（ＣＰＵ０〜３）１００を含む。そして、各ＣＰＵ（ＣＰＵ０〜３）１００は、３個のポート（ポート０〜２）１００ａを有しており、各ポート（ポート０〜２）１００ａには、他の３個のＣＰＵ（ＣＰＵ０〜３）１００に対して個別に接続された３本のバス１０３の何れかが接続されている。例えば、ＣＰＵ０のポート０にはＣＰＵ１に接続されたバス（BUS01）１０３が接続され、ポート１にはＣＰＵ３に接続されたバス（BUS03）１０３が接続され、ポート２にはＣＰＵ２に接続されたバス（BUS02）１０３が接続されている。【０００５】
かかるコンピュータシステムにおいては、各ＣＰＵ１００間におけるトランザクションの状況（使用状況）を測定する必要が生じ得る。その場合、測定者は、当該測定に専用に仕組まれたプロトコルアナライザ１０４を用い、プロトコルアナライザ１０４の入力装置として備えられたプローブ１０４ａを測定対象バス１０３に接続して、プロトコルアナライザ１０４を動作させれば良い。【０００６】
しかしながら、例えば共有メモリシステムでは、各ＣＰＵ１００間をバス１０３を通じて一対一で接続する必要があるので、バス１０３の本数はnＣ2（但し、ｎ：ＣＰＵの個数）本となるというように、ＣＰＵ１００の個数が多ければ多いほどバス１０３の本数も飛躍的に多くなる。そして、プローブ１０４ａを接続する際の物理的な制約等に因り複数のバス１０３において同時にトランザクションの状況を測定することは困難であるので、一度に測定を行い得るバス１０３は一つに限られてしまう。そのため、従来の測定方法によると、コンピュータシステムに含まれる全てのバス１０３においてトランザクションの状況の測定を完了するには、各バス１０３の測定を順番に行わなければならない。【０００７】
図１１は、従来における測定の手順を示すフローチャートである。図１１のフローチャートに示すように、測定者は、先ず、コンピュータシステム中の複数のバス１０３のうちから未選択の一つを測定対象として選択し、選択したバス１０３にプロトコルアナライザ１０４のプローブ１０４ａを取り付ける（Ｓ３１）。その上で、測定者は、コンピュータシステムをパワーオンし（Ｓ３２）、測定を開始する（Ｓ３３）。必要な測定を完了すると、測定者は測定を停止し（Ｓ３４）、測定データがプロトコルアナライザ１０４から読み出される（Ｓ３５）。以上の操作（Ｓ３１〜Ｓ３５）を未だ全てのバス１０３に対して行っていない場合には（Ｓ３６：ＮＯ）、操作者は、コンピュータシステムをパワーオフした後に（Ｓ３７）、他の未選択のバスを選択して、Ｓ３１〜Ｓ３５の操作を繰り返す。これに対して、Ｓ３１〜Ｓ３５の操作を全てのバス１０３に対して完了すると（Ｓ３６：ＹＥＳ）、全測定が終了となる。【０００８】
以上に説明したように、従来の測定方法によると、コンピュータシステム中の全バス１０３においてトランザクションの状況の測定を完了するまでに要するプローブ１０４ａ設置の手間や時間が莫大となる。更に、従来の測定方法によると、ＣＰＵ１００間のプロトコルの相関関係を測定することが困難であるという問題もある。更に、プローブ１０４ａをバス線に接触させることによってバス線のインダクタンスが変化する等、バス線の電気特性を変動させてしまうことに因り、正確な測定ができなくなるという問題もある。【０００９】
そこで、本案は、情報処理装置に含まれる複数のプロセッサから他の各プロセッサに宛てられたパケットを傍受し、これにより、各プロセッサ間でのトランザクションの状況を同時に測定可能にすることを、課題とする。
【課題を解決するための手段】
【００１０】
本案によるプロセッサ間通信測定システムが適用される情報処理装置は、通信路を経由して他のプロセッサにデータを送信可能な複数のプロセッサを、有する。そして、複数のプロセッサのうちの少なくとも一つは、通信路に接続されているとともに当該プロセッサを前記通信路に導通させるソケットに装着されるものである。当該システムでは、プロセッサの代わりにソケットに装着されることによって通信路に導通する測定ノードが、備えられる。測定ノードは、通信路から流入される他のプロセッサ宛のデータを当該他のプロセッサへ向けて通信路に送出するルーティング部，及び、当該ルーティング部を経由するデータを傍受する傍受手段を有する。更に、当該システムでは、測定ノードの前記傍受手段によって傍受されたデータを蓄積する蓄積手段が、備えられる。
【図面の簡単な説明】
【００１１】
【図１】共有メモリシステムの概略構成を示すブロック図である。
【図２】通常時用のルーティング設定テーブルのデータ例を示す表である。
【図３】検査時用のルーティング設定テーブルのデータ例を示す表である。
【図４】ＣＰＵの内部構成のうちルーティングに関与する部分を示すブロック図である。
【図５】測定ノードの内部構成を示すブロック図である。
【図６】デバッグＲＡＭに蓄積されるデータのデータフォーマットを示す表である。
【図７】システムサービスユニットによる測定処理を示すフローチャートである。
【図８】共有メモリシステムに対する測定の応用例を示す遷移図である。
【図９】測定の応用例を実施するためのシステムサービスユニットによる測定処理を示すフローチャートである。
【図１０】情報処理装置に対する従来の測定方法を示すブロック図である。
【図１１】従来の測定方法を実施するために測定者が行う手順を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、情報処理装置におけるプロセッサ間通信の測定システムの実施の形態を説明する。以下に説明する例は、各ＣＰＵ（Central Processing Unit）の配下に複数のメモリが接続されているとともに、各メモリを全てのＣＰＵの間で共有する共有メモリシステムを情報処理装置としたものである。しかし、複数のＣＰＵを備えるとともに各ＣＰＵ間でパケット（ないしフレーム又はセル）通信を行う情報処理装置であれば、本実施形態によるプロセッサ間通信の測定システムを適用することができる。
【００１３】
図１は、プロセッサ間通信の測定システムを備えた共有メモリシステムの概略構成図である。図１の共有メモリシステムは、夫々、配下に複数のメモリ１１及び入出力装置（Ｉ／Ｏ）１２が接続された４つのＣＰＵ（ＣＰＵ０〜ＣＰＵ３）１０を搭載可能である。但し、後述の理由により、図１ではＣＰＵ０が図示されていない。各ＣＰＵ（ＣＰＵ０〜ＣＰＵ３）１０は、基板上に設けられたソケット１３上に、着脱自在に装着される。各ＣＰＵ（ＣＰＵ０〜ＣＰＵ３）１０には、パケット送受信用の複数のポート（ポート０〜２）１０ａが備えられている。
【００１４】
各ソケット１３には、ＣＰＵ１０がソケット１３上に装着された時にＣＰＵ１０の制御用インタフェース（図示略）に導通するように、システムサービスユニット１４に接続された制御信号線１５が接続されている。システムサービスユニット１４は、各ＣＰＵ１０や後述する測定ノード１３に対するルーティング設定，後述する測定ノード１８に対するトランザクションの測定命令等のサービス処理を実行するプロセッサである。システムサービスユニット１４は、上述したルーティング設定及び測定命令を実行するためのプログラムを格納した内部メモリ１６，及び、ルーティングの内容を定義した多数のルーティング設定テーブルを格納した内部メモリ１７を有している。ルーティングとは、他のＣＰＵ１０から対応するポート１０ａを通じて受信したパケット又は自ＣＰＵ１０内部の処理回路（プログラムに従ってデータ処理をする回路自体）が生成したパケットの宛先に依り、パケットの送出先を切り替えることをいう。具体的には、パケットの宛先が自ＣＰＵ１０であればパケットを自ＣＰＵ１０内部の処理回路２０に取り込み、パケットの宛先が他のＣＰＵ１０であれば、宛先に対応したポート１０ａからパケットを送出することである。詳細については後述するが、ルーティング設定テーブルは、各ＣＰＵ１０及び測定ノード１８毎に、他のＣＰＵ１０又は測定ノード１８宛のパケットを何れのポート（ポート０〜２）１０ａから出力させるかを定義したテーブルである。図２は、各ソケット１３に夫々ＣＰＵ１０が装着された通常時において用いられる通常時用のルーティング設定テーブルを示す。また、図３は、ＣＰＵ０の代わりに測定ノード１８がソケットに装着された場合において用いられる測定時用のルーティング設定テーブルを示す。
【００１５】
図４は、各ＣＰＵ１０におけるルーティングに関与する部分（ルーティング部の一例）の回路構成を示すブロック図である。図４に示すように、ＣＰＵ１０は、各ポート（ポート０〜２）１０ａを通じて受信したパケットを夫々一時蓄積する３個の入力バッファ２１，及び、ＣＰＵ内部の処理回路２０によって生成された他のＣＰＵ宛のパケットを一時蓄積する入力バッファ２２を有している。各入力バッファ２１，２２の出力端子は、夫々、４つのセレクタ（セレクタ０〜３）２３，２６の入力端子に接続されている。そのうちの３つのセレクタ（セレクタ０〜２）２３の出力端子は、夫々に対応するポート（ポート０〜２）１０ａに接続されており、セレクタ２６の出力端子は、ＣＰＵ１０内部の処理回路２０に接続されている。各セレクタ（セレクタ０〜３）２３，２６は、夫々調停部２４から選択信号の入力を受けている。選択信号は、各セレクタ２３，２６に対して複数の入力端子のうち何れかを選択させ、選択された入力端子に接続された入力バッファ２１から入力されたパケットを出力端子から送出させる信号である。
【００１６】
調停部２４は、パケットの宛先毎にパケットを出力させるポート１０ａのポート番号（自ＣＰＵ宛てであればＮＵＬ値）を規定したルーティングテーブル２５を有している。調停部２４は、各セレクタ２３に入力されたパケットの宛先に対応したポート番号又はＮＵＬ値をルーティングテーブル２５から読み出す。そして、調停部２４は、読み出したポート番号に対応したポート１０ａに繋がるセレクタ２３又は読み出したＮＵＬ値に対応した処理回路２０に繋がるセレクタ２６からパケットを送出させる様に、各セレクタ２３，２６に対する選択信号を出力する。
【００１７】
各ＣＰＵ１０の調停部２４のルーティングテーブル２５は、システムサービスユニット１４からの制御に従って書き換えられる。具体的には、通常時において、システムサービスユニット１４は、ＣＰＵ１０毎に、内部メモリ１７上の通常時用のルーティング設定テーブル（図２）から、「設定対象」欄に当該ＣＰＵ１０の名称が記載された行を読み出す。そして、システムサービスユニット１４は、ＣＰＵ１０毎に、読み出した行における「宛先」欄に記載された各ＣＰＵ宛のパケットを当該行における、宛先となるＣＰＵに対応した列に記載されたポートへ送出する様、ルーティングテーブル２５を設定するのである。なお、図２において４箇所のグリッドに引かれた斜線は、対応する「宛先」欄の値がＮＵＬ値であることを示している。
【００１８】
以上の設定の結果、例えば、ＣＰＵ０においては、ＣＰＵ０宛のパケットは自身の処理回路２０に取り込まれ、ＣＰＵ１宛のパケットはポート０から送出され、ＣＰＵ２宛のパケットはポート２から送出され、ＣＰＵ３宛のパケットはポート１から送出される。また、ＣＰＵ１においては、ＣＰＵ０宛のパケットはポート２から送出され、ＣＰＵ１宛のパケットは自身の処理回路２０に取り込まれ、ＣＰＵ２宛のパケットはポート１から送出され、ＣＰＵ３宛のパケットはポート０から送出される。
【００１９】
また、ＣＰＵ１０がソケット１３上に装着された時にＣＰＵ１０の各ポート１０ａと夫々導通するように、各ソケット１３には、各ポートに対応した３本のバス１９が接続されている。各バス１９は、夫々、他のソケット１３を通じて、他のＣＰＵ１０の何れかのポート１０ａに接続されている。即ち、通信路としての各バス１９は、複数のＣＰＵ（プロセッサ）１０の各々の間を、個別に接続しているのである。例えば、図示せぬＣＰＵ０のポート０に導通するバス（BUS01）１９はＣＰＵ１のポート２に接続され、ＣＰＵ０のポート１に導通するバス（BUS03）１９はＣＰＵ３のポート１に接続され、ＣＰＵ０のポート２に導通するバス（BUS02）１９はＣＰＵ２のポート０に接続される。また、ＣＰＵ１のポート０に導通するバス（BUS13）１９はＣＰＵ３のポート２に接続され、ＣＰＵ１のポート１に導通するバス（BUS12）１９はＣＰＵ２のポート１に接続される。また、ＣＰＵ２のポート２に導通するバス（BUS23）１９はＣＰＵ３のポート０に接続される。その結果、各ＣＰＵ１０が送出した他のＣＰＵ１０宛のパケットは、宛先のＣＰＵ１０に到達するのである。
【００２０】
以上のように構成された共有メモリシステムにおいて、４つのＣＰＵ（ＣＰＵ０〜３）１０のうち３個のＣＰＵ１０が他のＣＰＵ１０に対して行うトランザクションを測定する場合には、測定者は、一個のＣＰＵ１０をソケット１３から取り外して、代わりに、測定ノード１８をソケット１３に装着する。図５は、測定ノード１８に実装された回路構成を示すブロック図である。測定ノード１８は、ＣＰＵ１０と互換性のある一種のプロセッサであり、ＣＰＵ１０と同一のピン，３個のポート（ポート０〜２）１８ａ，及び、ルーティングのための回路３３〜３６（図４における回路２３〜２６に対応）を有している。加えて、測定ノード１８は、ルーティングされたパケットを傍受する機能，パケットの誤り検出及び訂正をする機能（ＥＣＣ［Error Check and Correct］機能），ソケット１３に接続された各バス１９の転送量を測定する機能，電源ノイズ量を測定する機能を有している。傍受したパケットの内容を、以下、「パケット情報」という。また、ＥＣＣ機能による検出結果であるエラー情報，並びに、転送量情報及び電源ノイズ量の測定結果を、以下、「デバッグ情報」と総称する。測定ノード１８は、パケット情報及びデバッグ情報を蓄積する機能，及び、蓄積したパケット情報及びデバッグ情報をシステムサービスユニット１４からの要求に応じて応答する機能を、有している。
【００２１】
図５において、測定ノード１８は、各ポート（ポート０〜２）１８ａを通じて受信したパケットに対して夫々ＥＣＣ機能に基づくエラー検出及び訂正の処理を実行することにより、エラー情報を生成するエラーチェック回路３０を、ポート１８ａ毎に有している。ここにエラー情報には、エラー検出の結果として検出された訂正可能エラー（コレクタブルエラー）又は訂正不可能エラー（アンコレクタブルエラー）の別，及び、訂正された訂正可能エラーのビット情報が、含まれている。各ポート（ポート０〜２）１８ａを通じて受信したパケット，及び、同パケットに関して各エラーチェック回路３０によって生成されたエラー情報は、一組の情報として、各ポート１８ａに対応して設けられた入力バッファ（入力バッファ０〜２）３１の同じ区画に同時にバッファリングされる。
【００２２】
各入力バッファ（入力バッファ０〜２）３１の出力端子は、夫々、４つのセレクタ（セレクタ０〜３）３３，３６の入力端子に接続されている。そのうちの３つのセレクタ（セレクタ０〜２）３３の出力端子は、夫々に対応するポート（ポート０〜２）１８ａに接続されており、セレクタ３６の出力端子は、デバッグ制御部４１に接続されている。各セレクタ（セレクタ０〜３）３３，３６は、夫々調停部３４からの選択信号を受けている。選択信号は、セレクタ３３，３６に対して複数の入力端子のうち何れかを選択させ、選択された入力端子に接続された入力バッファ３１から入力されたパケット及びエラー情報を出力端子から送出させる信号である。
【００２３】
調停部３４は、パケットの宛先毎に出力すべきポート番号（自測定ノード又は自測定ノードに置き換えられたＣＰＵ宛てであればＮＵＬ値）を規定したルーティングテーブル３５を有している。調停部３４は、各セレクタ３３に入力されたパケット情報の宛先に対応したポート番号又はＮＵＬ値をルーティングテーブル３５から読み出す。そして、調停部３４は、読み出したポート番号に対応したポート１８ａに繋がるセレクタ（セレクタ０〜２）３３又は読み出したＮＵＬ値に応じたデバッグ制御部４１に繋がるセレクタ３６からパケット情報及びエラー情報を送出させる様に、選択信号を出力する。
【００２４】
以上の各入力バッファ３１，各セレクタ３３及び調停部３４が、ルーティング部の一例である。なお、各セレクタ（セレクタ０〜２）３３と対応するポート１８ａとの間に介在しているデータパケット伝送回路４４は、エラー情報のポート１８ａへの通過を阻止して、パケットのみを各ポート１８ａに向けて通過させる回路である。
【００２５】
測定ノード１８の調停部３４のルーティングテーブル３５は、システムサービスユニット１４からの制御に従って設定される。具体的には、システムサービスユニット１４は、内部メモリ１７上に、各ＣＰＵ（ＣＰＵ０〜３）１０に対応した４通りの測定時用のルーティング設定テーブルを有している。図３は、かかる測定時用のルーティング設定テーブルのうち、ＣＰＵ０を測定ノード１８（図３中「ノード０」）に置き換えて測定を行う場合に用いられるルーティング設定テーブルを示す。図３に示すように、測定時用のルーティングテーブルは、通常時用のルーティングテーブルと比較し、各ＣＰＵ１０が他のＣＰＵ１０宛のパケットを送出するポート１０ａとして測定ノード１８に繋がるポート１０ａが定義されている点が相違している。また、測定時用のルーティングテーブルは、測定ノード１８が他のＣＰＵ１０宛のパケットを送出するポート１８ａとして、本来の宛先のＣＰＵ１０に繋がるポート１８ａが定義されている点を特徴とする。
【００２６】
ＣＰＵ０を測定ノード１８に置き換えて測定を行う場合、システムサービスユニット１４は、図３に示す測定時用のルーティング設定テーブルから、「設定対象」欄に「測定ノード０」が示された行を読み出す。そして、システムサービスユニット１４は、読み出した行の「宛先」欄に記載された各ＣＰＵ１０宛のパケットを、当該行における宛先ＣＰＵ１０に対応した列に記載されたポートへ送出する様、ルーティングテーブル３５を設定する。このとき、システムサービスユニット１４は、他のＣＰＵ（ＣＰＵ１〜３）１０の調停部２４のルーティングテーブル２５も書き換える。当該処理を行うシステムサービスユニット１４が、ルーティングテーブル変更手段の一例である。具体的には、システムサービスユニット１４は、ＣＰＵ（ＣＰＵ１〜３）１０毎に、測定時用のルーティング設定テーブルから、「設定対象」欄に当該ＣＰＵ１０の名称が記載された行を読み出す。そして、システムサービスユニット１４は、読み出した行の「宛先」欄に記載された各ＣＰＵ宛のパケットを当該行における宛先ＣＰＵに対応する列に記載されたポートへ送出する様、ルーティングテーブル２５を書き換える。なお、システムサービスユニット１４は、他のＣＰＵ（ＣＰＵ１〜３）１０の処理回路２０に対して、測定ノード１８に置き換えられたＣＰＵ（ＣＰＵ０）宛のパケットを送出を禁止するので、図３のルーティング設定テーブルには宛先として「ＣＰＵ０」が設定されていない。
【００２７】
以上の結果、各ＣＰＵ（ＣＰＵ１〜３）１０から他のＣＰＵ１０及び測定ノード１８に宛てられたパケットは、全て、測定ノード１８に繋がるポート（ＣＰＵ１ではポート２，ＣＰＵ２ではポート０，ＣＰＵ３ではポート１）から、測定ノード１８へ向けて送出される。そして、測定ノード１８に送出された各パケットは、測定ノード１８を介して、本来の宛先であるＣＰＵ１０に繋がるポート（ＣＰＵ１ではポート０，ＣＰＵ２ではポート２，ＣＰＵ３ではポート１）１８ａから、宛先のＣＰＵ１０へ向けて送出される。よって、ＣＰＵ１宛のパケットは測定ノード１８のポート０からＣＰＵ１へ送出され、ＣＰＵ２宛のパケットは測定ノード１８のポート２からＣＰＵ２へ送出され、ＣＰＵ３宛のパケットは測定ノード１８のポート１からＣＰＵ３へ送出される。また、測定ノード１８宛のパケットは、デバッグ制御部４１へ入力される。以上のように、各ＣＰＵ（ＣＰＵ１〜３）１０から他のＣＰＵ１０に宛てられた全てのパケットが、測定ノード１８を経由して、本来の宛先にルーティングされるのである。従って、各ＣＰＵ１０が他のＣＰＵ１０に向けて発するパケットは、測定ノード１８において傍受される。なお、各ルーティングテーブル２５，３５の書き換えは、測定ノード１８の図示せぬ内部処理回路において実行されるBIOSプログラムによってなされても良い。
【００２８】
以上のようにして測定ノード１８内を経由したパケットの傍受のために、各セレクタ（セレクタ０〜２）３３の出力端子から対応するポート１８ａに繋がる信号線が分岐されて、夫々に対応するパケットバッファ（パケットバッファ０〜２）３７に接続されている。従って、各セレクタ（セレクタ０〜２）３３の出力端子から出力されたパケットとエラー情報は、出力端子に繋がる信号線から分岐した信号線の席に接続されたパケットバッファ（パケットバッファ０〜２）３７に、バッッファリングされる。そして、各パケットバッファ（パケットバッファ０〜２）３７の出力端子は、セレクタ３８の入力端子に接続されている。セレクタ３８は、デバッグ制御部４１からの選択信号に応じて、順次入力端子を選択し、選択の都度、選択した入力端子に接続されたパケットバッファ（パケットバッファ０〜２）３７からパケット及びエラー情報を読み出して、出力端子から出力する。以上に述べた各セレクタ（セレクタ０〜２）３３の出力端子の分岐した先である，各バッファ３７，セレクタ３８及びデバッグ制御部４１が、傍受手段の一例である。
【００２９】
各ポート１８ａから対応する入力バッファ３１へ入力されるパケットのデータ量，即ち、ソケット１３を介して各ポート１８ａに接続された各バス１９の転送量は、転送量測定カウンタ３２によって計測される。転送量測定カウンタ３２は、バス１９毎の転送量を表す転送量情報を、出力端子から出力する。
【００３０】
また、測定ノード１８には、電源電圧を測定して、所定の電圧閾値を超えたノイズの量（電源ノイズ量）をノイズ情報として出力する電源ノイズ量測定回路４２が設けられている。なお、電圧閾値は、システムサービスユニット１４により設定される。
【００３１】
また、測定ノード１８には、時刻情報を逐次出力するタイマー回路４３が設けられている。
【００３２】
上述したセレクタ３８の出力端子，転送量測定カウンタ３２の出力端子，電源ノイズ量測定回路４２の出力端子，及びタイマー回路４３の出力端子は、夫々、セレクタ３９の入力端子に接続されている。セレクタ３９は、デバッグ制御部４１からの選択信号に応じて入力端子を順次選択し、選択の都度、選択された入力端子に入力されている情報を、出力端子から出力する。即ち、セレクタ３９は、選択信号によって選択されたセレクタ３８からのパケット及びエラー情報，転送量測定カウンタ３２からの転送量情報，又は、電源ノイズ量測定回路４２からのノイズ情報及びタイマー回路４３からの時刻情報を出力する。
【００３３】
デバッグ制御部４１は、セレクタ３８及びセレクタ３９に対する選択信号の出力パターンを定義したレジスタ４１ａを有している。そして、デバッグ制御部４１は、他のＣＰＵから受信した測定ノード１８宛のパケットに制御情報が含まれていた場合，若しくは、システムサービスユニット１４から制御情報を受信した場合、受信した制御情報に従い、レジスタ４１ａの設定を書き換える。例えば、各パケットバッファ（パケットバッファ０〜２）３７から順番にパケットを読み出したり、特定のパケットバッファ３７のみからパケットを読み出すように、レジスタ４１ａは設定され得る。そして、デバッグ制御部４１は、レジスタ４１ａの設定内容に従った内容の選択信号を、セレクタ３８及びセレクタ３９に供給する。
【００３４】
デバッグＲＡＭ４０は、セレクタ３９の出力端子に接続されており、デバッグ制御部４１の制御に基づき、セレクタ３９から入力された時間情報，転送量情報，ノイズ情報，並びに、パケット（パケット情報）及びエラー情報を蓄積する。即ち、デバッグ制御部４１は、時間情報をセレクタ３９から出力させる毎に、当該時間情報が書き込まれたレコードをデバッグＲＡＭ４０に生成し、次に時間情報を出力させるまでに出力させたパケット情報・エラー情報，転送量情報，及びノイズ情報を、同レコードに書き込ませる。その結果、図６に示すように、デバッグＲＡＭ４０の各レコードには、時間情報が示す時間帯内に第５セレクタ３９から入力されたパケット情報・エラー情報，転送量情報，及びノイズ情報が記録されるのである。デバッグＲＡＭ４０は蓄積手段の一例である。そして、デバッグＲＡＭ４０に蓄積された情報は、システムサービスユニット１４によって読み出される。以上のように、パケット情報に加えてデバッグ情報がデバッグＲＡＭ４０に蓄積されるので、デバッグ情報やエラー情報を用いたＣＰＵ間通信の分析が可能となる。
【００３５】
次に、システムサービスユニット１４が、プロセッサ間のトランザクションを測定するために内部メモリ１６から読み出したプログラムに従って実行する処理を、図７のフローチャートを参照して説明する。図７の処理を実行させる前提として、操作者は、事前に、何れかのソケット１３及びシステムサービスユニット１４又は他のＣＰＵ１０を通じて、測定ノード１８のデバッグ制御部４１に対して制御情報を与え、測定ノード１８のレジスタ４１ａの設定を行っておく。その上で、測定者は、測定対象とする３個のＣＰＵ１０を選択し、共有メモリシステムをパワーＯＦＦした状態で、残余の一つのＣＰＵ１０の代わりに測定ノード１８をソケット１３に装着してから、共有メモリシステムをパワーＯＮする。すると、システムサービス１４ユニットは、一つのＣＰＵ１０が測定ノード１８に置き換えられていることを検出することにより、図７の処理をスタートする。
【００３６】
スタート後最初のＳ０１では、システムサービスユニット１４は、測定ノード１８に置き換えられたＣＰＵ１０に対応した測定時用ルーティング設定テーブル（図３参照）を、内部メモリ１７から読み出す。そして、システムサービスユニット１４は、当該ルーティング設定テーブルにおける「測定対象」欄が“ノード０”である行の内容に基づいて、測定ノード１８の調停部３４に対して、ルーティングテーブル３５の内容を設定させる。同様に、システムサービスユニット１４は、ルーティング設定テーブルにおける「測定対象」欄に記載されている各ＣＰＵ１０の調停部２４に対して、夫々の名称が記載されている行の内容に基づいて、夫々のルーティングテーブル２５の内容を書き換えさせる。その結果、各調停部２４，３４は、夫々のルーティングテーブル２５，３５の設定に従って、自律的に、各ポート１０ａ，１８ａから受信したパケットに対するルーティングを実行する。
【００３７】
次のＳ０２では、システムサービスユニット１４は、測定ノード１８のデバッグ制御部４１に対して、レジスタ４１ａの設定内容に従った測定（即ち、各セレクタ３８，３９の切り換え）及びデバッグＲＡＭ４０での情報蓄積を開始させる。
【００３８】
システムサービスユニット１４は、デバッグＲＡＭ４０に十分な量の情報が蓄積されるのに必要な時間の経過を待って、処理をＳ０３へ進める。Ｓ０３では、システムサービスユニット１４は、測定ノード１８のデバッグ制御部４１に対して、Ｓ０２で開始した測定を停止させる。
【００３９】
次のＳ０４では、システムサービスユニット１４は、測定ノード１８のデバッグＲＡＭ４０から、蓄積された情報を読み出す。
【００４０】
次のＳ０５では、システムサービスユニット１４は、通常時用ルーティングテーブルを内部メモリ１７から読み出す。システムサービスユニット１４は、読み出した通常時用ルーティングテーブルにおける「測定対象」欄に記載されている各ＣＰＵ１０の調停部２４に対して、夫々の名称が記載されている行の内容に基づいて、夫々のルーティングテーブル２５の内容を書き換えさせる。当該処理により、測定ノード１８に置き換えられたＣＰＵ１０以外の全ＣＰＵ１０における調停部３４のルーティングテーブル３５が、測定前の状態に復旧する。
【００４１】
次のＳ０６では、システムサービスユニット１４は、測定ノード１８のデバッグＲＡＭ４０から読み出した情報に基づいて、プロトコル解析，エラー解析等を実行する。Ｓ０６を完了すると、システムサービスユニット１４は、図７の処理を終了する。なお、測定者は、その後、共有メモリシステムをパワーＯＦＦして、測定ノード１８をソケット１３から取り外し、元々装着されていたＣＰＵ１０をソケット１３に装着する。ソケット１３に装着されたＣＰＵ１０の調停部２４のルーティングテーブル２５は、Ｓ０１での書き換えがなされていないので、次に共有メモリシステムをパワーＯＮすると、本来のルーティングが再開される。
【００４２】
上述した実施例によると、共有メモリシステムを構成する複数のＣＰＵ１０のうち測定ノード１８に置き換えられるもの以外の全ＣＰＵ１０が他のＣＰＵ１０に対して送出するパケットを、測定ノードで捕捉することができるが、測定ノード１８に置き換えられるＣＰＵ１０が他のＣＰＵ１０に対して送出するパケットを傍受することができない。また、測定ノード１８が装着されたソケット１３に直接接続されたバス１９以外のバス１９の伝送量やソケット電源のノイズ量を、直接測定することができない。そこで、図８に示すように、測定ノード１８を装着するソケット１３を順次変更し、測定ノード１８を移動させる毎に上述した測定を行うことで、測定漏れを補完することが考えられる。図８の例は、測定ノード１８を、最初にＣＰＵ０に置き換えて測定を行い（ａ）、次にＣＰＵ１に測定ノード１８を置き換えて測定を行い（ｂ）、次にＣＰＵ２に測定ノード１８を置き換えて測定を行い（ｃ）、最後にＣＰＵ３に測定ノード１８を置き換えて測定を行う（ｄ）ことを示している。図９のフローチャートは、測定者が斯様な測定を行うことを容易ならしめるべく、図７に示すものから処理内容が改良されたプログラムによる、システムサービスユニット１４の処理を示す。
【００４３】
図９の処理を実行する前提として、測定者は、共有メモリシステムをパワーＯＦＦした状態で、測定者が測定ノード１８を装着して測定を行うことを欲する全ソケット１３から、未選択の一つのソケット１３を選択し、選択したソケット１３からＣＰＵ１０を取り外して、当該ソケット１３に測定ノード１８を装着する（Ｓ１０）。その上で、測定者は、共有メモリシステムをパワーＯＮする（Ｓ１１）。すると、システムサービスユニット１４は、一つのＣＰＵ１０が測定ノード１８に置き換えられていることを検出することにより、Ｓ１２以下の処理をスタートする。
【００４４】
Ｓ１２〜Ｓ１６の処理は、図７におけるＳ１２〜Ｓ１６の処理と同じであるので、その説明を省略する。
【００４５】
Ｓ１６の次に実行されるＳ１７では、システムサービスユニット１４は、全てのソケットにおいて、測定ノード１８を装着した測定が行なわれ、データを採取したか否かをチェックする。システムサービスユニット１４は、Ｓ１７のチェックは、自己に予め設定された情報に基づいて行っても良い。システムサービスユニット１４は、測定のために測定ノード１８が装着されたソケットを記録しておき、記録に基づいて、Ｓ１７のチェックを行っても良い。そして、未だ、測定ノード１８を装着した全てのソケット１３での測定を終えていない場合には、システムサービスユニット１４は、Ｓ１９において、共有メモリシステムをパワーＯＦＦする。パワーＯＦＦがなされた後に、測定者は、測定ノード１８をソケット１３から取り外し、当該ソケット１３に元々装着されていたＣＰＵ１０を当該ソケット１３に装着する。そして、測定者は、未選択の一つのソケット１３を選択し、選択したソケット１３上のＣＰＵ１０を測定ノード１８と置換し（Ｓ１０）、共有メモリシステムをパワーＯＮする（Ｓ１１）。
【００４６】
以上の手順を繰り返した結果、測定ノード１８を装着した測定が全てのソケットで行なわれたとＳ１７にて判定した場合には、システムサービスユニット１４は、処理をＳ１７からＳ１８へ進める。Ｓ１８の処理は、図７におけるＳ０６と同じであるので、その説明を省略する。Ｓ０６の完了後、システムサービスユニット１４は、当該プログラムによる処理を全て終了する。
【００４７】
以上に説明した本実施形態によると、共有メモリシステムを構成する複数のＣＰＵ１０のうち測定ノード１８に置き換える一個のＣＰＵ１０以外の全ＣＰＵ１０から他のＣＰＵ１０宛てに送出されるパケットが、測定ノード１８を経由するようにルーティングされる。斯様にして測定ノード１８にルーティングされたパケットは、測定ノード１８によって傍受され、そのパケット情報が、デバッグ情報とともにデバッグＲＡＭ４０に蓄積される。また、元々基板にＣＰＵ１０を取り付けるために設置されている既存のソケット１３を通じて測定ノード１８がＣＰＵ１０に置き換えられるので、各バス１９に対する電気的影響が生じない。よって、本実施形態によると、複数のＣＰＵ１０が送出したパケットを同時に傍受することができるとともに、上記ソケット１３に接続された複数のバス１９について、同時に、転送量の測定がなされる。従って、従来の測定方法と比較して、システム電源をＯＮ／ＯＦＦしつつプローブを順次各バス１９に接続するという手間が省けるので、測定の手間が格段に減少するとともに、ＣＰＵ１０間のプロトコルの相関関係を測定することが可能となるという利点がある。
【図１】
0005482902.tif 000002
【図２】
0005482902.tif 000003
【図３】
0005482902.tif 000004
【図４】
0005482902.tif 000005
【図５】
0005482902.tif 000006
【図６】
0005482902.tif 000007
【図７】
0005482902.tif 000008
【図８】
0005482902.tif 000009
【図９】
0005482902.tif 000010
【図１０】
0005482902.tif 000011
【図１１】
0005482902.tif 000012