(57)【要約】データを所定の観測ポイントにルーティングするようにコンピューティング・システム中のノードを構成する方法と機構。クリティカルでない経路を介して観測データ・ストリームを識別および搬送するように、コンピューティング・デバイスまたはシステム中のノードを構成する。クリティカルでない経路をコンピュータ・システム内で構成して、生成されたデータ・ストリームを好都合なクライアント位置に送り、そこでデータを観測することができる。このデータ・ストリームは、ディセーブルになったリンク、複製されたリンク、監視リンク、またはその他のクリティカルでない経路に対応するリンクを介して、コンピュータ・システムの中をルーティングされる。ノードによって搬送される観測データ・ストリームは、ノードによって生成されたものとすることができ、ノードの内部状態に対応するものとすることができる。さらにノードは、受け取ったデータ・ストリームを複製して搬送するように構成することもでき、あるいは、受け取ったデータ・ストリームからデバッグ・データを抽出して所定の観測ポイントに送ることもできる。システムを通る一連のルーティング・ストリームをセットアップすることにより、回路交換ネットワークが、システム中の任意のノードからシステム中の他のノードに観測データ・ストリームをルーティングすることができる。
2004519793.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティング・システム中でデータを観測する方法であって、
前記システムの第１のノードと前記システムの第２のノードとの間で、通常のオペレーション・データに対応する第１の通信経路を構成すること、
前記第１のノードと前記システムの第３のノードとの間で、クリティカルでない経路に対応する第２の経路を構成すること、
前記第１の経路を介して第１のデータ・ストリームを、前記第２の経路を介して第２のデータ・ストリームを搬送するように、前記第１のデバイスを構成すること、
前記第１のデバイスから前記第１の経路を介して第１のデータ・ストリームを、前記第１のデバイスから前記第２のデータ経路を介して第２のデータ・ストリームを搬送すること、
前記第２のデータ・ストリームを前記第３のノードで受け取ること
を含む方法。
【請求項２】
前記第１のノードが前記第２のデータ・ストリームを生成するように構成された請求項１に記載の方法。
【請求項３】
前記第２のデータ・ストリームが前記第１のノードの内部状態に対応する請求項２に記載の方法。
【請求項４】
前記第１のデータ・ストリームが通常のオペレーション・データを含み、前記第２のデータ・ストリームが、前記第１のデータ・ストリームに対応するデバッグ情報を含む請求項２に記載の方法。
【請求項５】
前記第２のデータ・ストリームが前記第１のデータ・ストリームの複製である請求項２に記載の方法。
【請求項６】
前記第１のノードによって受け取られた第３のデータ・ストリームから前記第１のデータ・ストリームおよび前記第２のデータ・ストリームを抽出することをさらに含み、前記抽出することが前記第１のノードによって行われる請求項４に記載の方法。
【請求項７】
前記デバッグ・データを通常のオペレーション・データと結合することによって前記第３のデータ・ストリームを生成することであって、前記第３のデータ・ストリームは前記システムの第４のノードが生成すること、および
前記第３のデータ・ストリームを前記第４のノードから前記第１のノードに搬送することをさらに含む請求項６に記載の方法。
【請求項８】
前記クリティカルでない経路が、クリティカルでないポートを含む請求項２に記載の方法。
【請求項９】
前記クリティカルでないポートが、ディセーブルになったポート、複製されたポート、専用の監視ポート、エラー訂正コード（ＥＣＣ）ポートからなるグループから選択される請求項８に記載の方法。
【請求項１０】
前記第１および第２のデータ・ストリームに対応する基準データを生成すること、
前記第３のデータをクリティカルでない経路を介して搬送すること、および
前記第３のデータを観測ポイントで受け取ることをさらに含む請求項１に記載の方法。
【請求項１１】
複数の出力ポートと、
制御回路とを備えるデバイスであって、前記制御回路が、前記出力ポートのうちのポートを介して第１のデータ・ストリームを識別および搬送するように、かつ前記出力ポートのうちの第２のポートを介して第２のデータ・ストリームを識別および搬送するように構成され、前記第１のポートが通常のオペレーション・データに対応し、前記第２のポートがクリティカルでない経路に対応するデバイス。
【請求項１２】
前記制御回路が前記第２のデータ・ストリームを生成するように構成された請求項１１に記載のデバイス。
【請求項１３】
前記第２のデータ・ストリームが前記デバイスの内部状態に対応する請求項１２に記載のデバイス。
【請求項１４】
前記第１のデータ・ストリームが通常のオペレーション・データを含み、前記第２のデータ・ストリームが、前記第１のデータ・ストリームに対応するデバッグ情報を含む請求項１１に記載のデバイス。
【請求項１５】
前記第２のデータ・ストリームが前記第１のデータ・ストリームの複製である請求項１１に記載のデバイス。
【請求項１６】
前記制御回路が、前記デバイスによって受け取られた第３のデータ・ストリームから前記第１のデータ・ストリームおよび前記第２のデータ・ストリームを抽出するように構成された請求項１４に記載のデバイス。
【請求項１７】
前記デバッグ・データを通常のオペレーション・データと結合することによって前記第３のデータ・ストリームを生成するように構成された第４のノードから、前記第３のデータ・ストリームを受け取るように構成された請求項１６に記載のデバイス。
【請求項１８】
前記クリティカルでない経路が、クリティカルでないポートを含む請求項１１に記載のデバイス。
【請求項１９】
前記クリティカルでないポートが、ディセーブルになったポート、複製されたポート、専用の監視ポート、エラー訂正コード（ＥＣＣ）ポートからなるグループから選択される請求項１８に記載のデバイス。
【請求項２０】
前記制御回路がさらに、
前記第１および第２のデータ・ストリームに対応する基準データを生成するように構成され、かつ
前記基準データを前記クリティカルでないポートを介して搬送するように構成された請求項１１に記載のデバイス。
【請求項２１】
前記制御回路を構成することが、前記デバイスの制御レジスタを所定の値に設定することを含む請求項１１に記載のデバイス。
【請求項２２】
第１の経路を介して第１のデータ・ストリームを、第２の経路を介して第２のデータ・ストリームを搬送するように構成された第１のノードと、
通常のオペレーション・データに対応する前記第１の経路を介して、前記第１のノードに結合された第２のノードと、
クリティカルでない経路を含む前記第２の経路を介して、前記第１のノードに結合された第３のノードと
を備えるコンピューティング・システム。
【請求項２３】
前記第１のノードが前記第２のデータ・ストリームを生成するように構成された請求項２２に記載のコンピューティング・システム。
【請求項２４】
前記第２のデータ・ストリームが前記第１のノードの内部状態に対応する請求項２３に記載のコンピューティング・システム。
【請求項２５】
前記第１のデータ・ストリームが通常のオペレーション・データを含み、前記第２のデータ・ストリームが、前記第１のデータ・ストリームに対応するデバッグ情報を含む請求項２３に記載のコンピューティング・システム。
【請求項２６】
前記第２のデータ・ストリームが前記第１のデータ・ストリームの複製である請求項２３に記載のコンピューティング・システム。
【請求項２７】
前記第１のノードが、受け取った第３のデータ・ストリームから前記第１のデータ・ストリームおよび前記第２のデータ・ストリームを抽出するように構成された請求項２５に記載のコンピューティング・システム。
【請求項２８】
前記デバッグ・データを通常のオペレーション・データと結合することによって前記第３のデータ・ストリームを生成するように構成され、前記第３のデータ・ストリームを前記第１のノードの間で搬送するように構成された第４のノードをさらに備える請求項２７に記載のコンピューティング・システム。
【請求項２９】
前記クリティカルでない経路が、クリティカルでないリンクを含む請求項２２に記載のコンピューティング・システム。
【請求項３０】
前記クリティカルでないリンクが、ディセーブルになったリンク、複製されたリンク、専用の監視リンク、エラー訂正コード（ＥＣＣ）リンクからなるグループから選択される請求項２９に記載のコンピューティング・システム。
【請求項３１】
前記第１および第２のデータ・ストリームに対応する基準データを生成するようにさらに構成され、前記基準データが、クリティカルでない経路を介して観測ポイントに搬送される請求項２２に記載のコンピューティング・システム。
【発明の詳細な説明】
【０００１】
（発明の分野）
本発明はディジタル通信の分野に関し、より詳細には、ディジタル・システムのテストおよびデバッグに関する。
【０００２】
（関連技術の説明）
電子システムおよびディジタル・システムを開発する上でより重要な側面の一つは、テストやデバッグの面である。例えば、コンピュータ・システムの設計プロセスの間、実際にシステムを構築する前に、通常システムの様々な部分でテストとデバッグを複数回にわたって繰り返す。ある時点で、この設計における十分な信頼度が得られ、この設計を利用するシステムが実際に構築される。このようなシステムが構築されても、さらなるテストとデバッグがプロセスの一部として必要である。
【０００３】
作製後に回路およびシステムをデバッグするために、周知のテストおよびデバッグ方法が数多く存在する。テストおよびデバッグで使用される、より一般的なツールの一つは、プローブを使用するものである。システムのテスト中またはデバッグ中に、テスト技術者は、システムの動作中の特定の回路またはサブシステムの挙動を確認したいと思うことがしばしばある。回路またはサブシステムは、回路板またはパッケージに組み込まれていることがあるので、回路またはサブシステムへのアクセスは制限される場合がある。通常は、外部からのアクセスが可能な回路ポイントにプローブを取り付ける。過去のプローブは、ワニ口クリップまたはばね式オシロスコープ・グラバなどであった。ポイントへのアクセスがより困難な場合は、端が平らで歯のないワニ口クリップが利用されることもあった。しかし、過去数年にわたる回路およびパッケージングの小型化に伴い、プロービングおよびテスティングの課題がかなり増大している。より新しいパッケージのピッチは非常に小さいため、プローブを取り付けることが非常に難しくなった。さらに、ボール・グリッド・アレイ（ＢＧＡ）など、より新しいパッケージング技法では、あらゆる接続をプローブすることは不可能になる。したがって、システムの物理特性を変更することが必要な場合があり、これはテストを受ける環境を破壊する可能性がある。また、外部回路ポイントにアクセスしても、回路自体の内部状態の詳細は得られないことがある。それどころか、プローブを固定した回路ポイントを介して伝わる情報しかわからないことになる。例えば、回路板上の通信ポートまたはバスにしかアクセスできない場合、この回路板上にある特定の制御回路またはプロセッサの内部状態は観測不可能となる。したがって、テスト技術者は、システムを適切にデバッグする能力が制限されることがある。
【０００４】
オペレーション情報やデバッグ情報へアクセスするために時々使用される第２の方法は、「ウィンドウ」の使用である。この状況では、ウィンドウとは、テスト中やデバッグ中に観測するために意図的に生み出されたアクセス・ポイントと定義することができる。しかしこのような技法では、専用のピンを使用することを必要とすることが多く、これによりピン総数が増加する。別法として、既存のピンを多重化して観測ポイントとすることにより、ウィンドウを生成することもできる。しかし、このような技法もまた、通常の設計環境と動作環境を改変することが必要となる。さらに、ウィンドウ・ピンがプローブ・ポイントに通じるのではなく専用の記憶機構中で取り込まれる場合、この設計のゲート総数が増加することがある。
【０００５】
テスト情報やデバッグ情報へアクセスするための第３の方法は、周知の走査ベースの技術を使用することである。これは、前述のアクセスの欠点のいくつかに対処するために開発されたものである。残念ながら、走査ベースのテスティングにおける取込みと移動、一時停止と停止の性質もまた、通常のシステム・タイミングを妨げることがある。
【０００６】
以上に論じた困難に加えて、作製または構築の後でシステムをテストまたはデバッグする際には、その他の困難も存在する。テスト技術者は、現実世界でみられるようにシステムをテストしたいため、シャーシ内に完全に構築したシステムで作業するという困難にしばしば直面する。したがって、システムの内部コンポーネントにアクセスするために、システムの通常オペレーションをあまり妨げない何らかの形の物理的なアクセスを行わなければならない。アクセスを達成するためにシャーシにくり抜き部を空けた場合、システムの通常の気流および冷却が変化することがある。そのため、システムの通常オペレーションが改変される恐れがある。その他のオプションとしては、プローブ接続部を所望の観測ポイントにはんだ付けし、接続線をシャーシの外に引くことを含めることができる。しかし、このように回路板を再加工することは骨の折れる作業になる可能性があり、回路の電気特性を妨げることがある。さらに、密に実装された回路板を備えるマルチプロセッサ・コンピュータ・システムの状況では、これらの問題は増大する恐れがある。さらに、何らかの形の接続アクセスが達成されたとしても、これらのアクセス可能な回路ポイントを介して伝えられる情報を単に観測するだけでは、プロセッサ、特定用途向けＩＣ（ＡＳＩＣ）、およびその他のデバイスの内部状態は得られないことがある。
【０００７】
前述の問題ならびに他の問題にかんがみて、通常のシステム・タイミングを妨げずに通常の、必要とされる設計構造を主に利用する、テストおよびデバッグの方法と機構が望まれている。
【０００８】
（発明の概要）
以上に概説した問題の大部分は、本明細書に述べる方法と機構によって解決される。一実施態様では、コンピュータ・システム中の好都合な観測ポイントに観測データをルーティングする方法について述べる。この方法は、観測データを識別し、クリティカルでない経路を介して所定の観測ポイントにルーティングするようにノードを構成することを含む。一実施態様では、デバイスの内部状態に対応するデータ・ストリームを生成し、このデータ・ストリームをクリティカルでない経路を介して観測ポイントに搬送するようにノードを構成する。あるいは、受け取ったデータ・ストリームを複製し、受け取ったデータ・ストリームを通常のオペレーション・データ経路を介して搬送し、複製したデータ・ストリームをクリティカルでない経路を介して搬送するように、ノードを構成することもできる。また、受け取ったデータ・ストリーム内からデバッグ・データを識別して抽出し、抽出したデバッグ・データをクリティカルでない経路を介して観測ポイントに搬送し、データ・ストリームの残りを通常のオペレーション・データ経路を介して搬送するように、ノードを構成する実施態様も企図される。一般に、クリティカルでない経路は、専用の線、ディセーブルになった線、複製された線、または他の形のクリティカルでない線（オペレーションに必要とされないエラー訂正コード（ＥＣＣ）線など）を含むことができる。
【０００９】
本発明の他の目的および利点は、後続の詳細な説明を読み、添付の図面を参照すれば明らかになるであろう。
【００１０】
本発明は様々な修正および代替形が可能だが、本発明の具体的な実施形態を、図面に例として示し、本明細書に詳細に述べる。ただし、本発明に関する図面および詳細な説明は、開示する特定の形に本発明を限定するものではなく、反対に、頭記の特許請求に定義する本発明の趣旨および範囲の内に入るあらゆる修正、均等物、および代替をカバーするものとすることを理解されたい。
【００１１】
（発明の詳細な説明）
先に論じたように、テスト中やデバッグ中は、システム中の個々のＡＳＩＣ、ＣＰＵ、またはその他のデバイスの内部状態を観測できることが望ましい場合が多い。概して言えば、本明細書に述べる方法と機構は、受け取ったまたは生成したデータ・ストリームを特定の観測ポイントにルーティングするように、１つまたは複数のノードを構成することを企図するものである。一実施形態では、通常の設計構造を利用した回路交換ネットワークを確立して、データ・ストリームをクリティカルでない経路を介して観測ポイントにルーティングする。この状況では、回路交換ネットワークとは、データをルーティングするために専用の一連のリンクが内部に確立されているネットワークである。この方法は、デバイスの内部状態を観測するのに使用することに加えて、通常の通信ストリームまたはその他のオペレーション・データを複製して所望の観測ポイントにルーティングするのに使用することもできる。さらに、使用中の経路または他の形のクリティカルな経路にデバッグ情報を挿入し、次いでこの経路をタップして、タイミング・クリティカルでない方式で所望の観測ポイントにルーティングすることもできる。本明細書に述べる方法と機構の様々な変形および応用は、当業者には明らかになるであろう。
【００１２】
概観
ここで図１に目を向けると、データ・ストリームをルーティングおよび観測するための一実施形態を示すブロック図が示してある。図１には、クライアント・ノード１１０、１１４、ルーティング・ノード１１２、観測ノード１１６が含まれる。図示の実施形態では、クライアント・ノード１１０は、リンク１２０、１２１を介してルーティング・ノード１１２に結合され、クライアント・ノード１１４は、リンク１２２を介してルーティング・ノード１１２に結合され、観測ノード１１６は、リンク１２４を介してルーティング・ノードに結合される。通常の動作中は、ルーティング・ノード１１２は、クライアント・ノード１１０と１１４の間でそれぞれリンク１２０と１２２を介して通信するように構成することができる。
【００１３】
図１の例で、システムの動作中のノード１１０の内部状態を観測することが望まれる場合がある。したがって、観測のためにノード１１０の内部状態に対応するデータ・ストリーム（「ステータス」ストリーム）を生成するように、ノード１１０を構成する。しかし、通常の動作環境に影響を及ぼすことなくステータス・ストリーム観測のためにノード１１０に直接アクセスすることは不可能な場合がある。ステータス・ストリームへのアクセスを実現するには、ステータス・ストリームをルーティング・ノード１１２に搬送するようにノード１１０を構成する。次いでルーティング・ノード１１２を、受け取ったステータス・ストリームを観測ノード１１６にルーティングするように構成し、観測ノード１１６でそのステータス・ストリームを取り込むか、そうでなければ観測することができるようにする。一実施形態で、ノード１１０は、通常のオペレーション・データ・ストリームはリンク１２０を介してルーティング・ノード１１２にルーティングし、生成したステータス・ストリームはクリティカルでない経路１２１（例えばディセーブルになったリンク）を介してルーティングするように構成される。基本的なシステムの動作を損なうことなく、ノード１１０の内部状態を好都合な観測ポイント１１６にルーティングし、そこで観測することができるので有利である。別法として、リンク１２０上に現れる入力をリンク１２１にコピーすることもできる。これによりいくつかの実施形態では、経路に沿って個々のノードをプローブしないでも、システムの中でデータ・パケットを追跡して、これらのデータ・パケットがどこで失われるかを決定することができる。この方法は本質的に、観測するリンクの信号保全性に影響を及ぼさずにシステム中の任意のノードに仮想ブレークアウト・ボードを提供できるので有利である。さらに、チップが実際に観測するもの（ブレークアウト・ボードが観測するものではなく）を決定的に伝えることができる。
【００１４】
以上の記述から、いくつかの用法および利点がわかる。チップの内部状態を、好都合な位置にある観測クライアントまたはノードによって観測することができる。また、特定のチップに入力されたパターンを観測ポイントにルーティングすることにより、それらのパターンを観測することもできる。一実施形態では、データをクロック・サイクルごとに取り込むために、搬送されるデータ・ストリームの観測レートをその生成レートと合致するように構成することができる。例えば、４００ＭＨｚの信号を監視するために、４つの１００ＭＨｚモニタ信号を利用して、観測ノードへの信号を時分割することができる。通常の動作環境を妨げないようにするために、専用の線、ディセーブルになった線、複製された線（例えばＲＡＩＤまたは完全に冗長な重複の線）、あるいはクリティカルでない線（例えば無視できるＥＣＣ線またはパリティ線）を使用して、データ・パターン・ストリームをルーティングすることができる。さらに、後で論じるように、取り込んだデータ・ストリームの分析を補助するために第２のデータ・ストリームを使用することができ、あるいは、信号のサブセットの「より狭い」サンプリングから「より広い」パターン・シーケンスを構築するために、別々に取り込んだ２つのデータ・ストリームを同期させるのを補助するための基準として第２のデータ・ストリームを使用することができる。他の実施形態では、使用中の経路および／またはクリティカルな経路にデバッグ情報を挿入し、次いで、タイミング・クリティカルでない方式で観測ポイントにルーティングすることもできる。以下の考察では、種々の例示的な実施形態を用いて、この方法と機構をさらに示す。
【００１５】
方法と機構の利用
図１で例示した方法と機構は、任意の数の状況で利用することができる。さらに、図１に示したノードは、様々なデバイスを表すことができる。例えば、図１に示したすべてのノードは、コンピューティング・システムを表すものとすることもでき、単一の処理チップに含まれるものとすることもできる。クライアント・ノードはそれぞれ、コンピューティング・システムに結合された回路板を表すことができ、その場合ルーティング・ノードは回路板の間の通信を可能にする。各クライアント・ノードは、コンピューティング・ネットワーク中のノードまたはクラスタを表すことができ、ルーティング・ノードは、ネットワーク相互接続を表すことができる。その他も可能である。データをルーティングするためのスイッチとしては、ほぼどんなチップでも選択し構成することもできる。例えば、単一のプロセッサであっても、受け取ったデータをルーティングするように特定の出力ポートに指示するための内部選択を行うことのできる入力ポートおよび出力ポートを有する。通常の（または必要とされる）設計構造を利用して、本明細書に述べる実施形態および他の方法で企図される実施形態を実施することができるため有利である。当業者なら、本明細書に述べる方法と機構の多くの応用を理解するであろう。
【００１６】
次に図１Ａに移ると、前述の方法を利用することのできるコンピュータ・システム１４０の一実施形態のブロック図が示してある。コンピュータ・システム１４０は、ＣＰＵ１４２ＡおよびＣＰＵ１４２Ｂと、ＭＥＭ１４４ＡおよびＭＥＭ１４４Ｂと、入出力ブリッジ１４６を備える。本明細書では、文字が後に続く特定の参照番号で参照する要素を、参照番号だけで総称的に参照する。例えば、ＣＰＵ１４２Ａ〜１４２Ｃは、ＣＰＵ１４２として総称的に参照する。図１Ａにはまた、アドレス・ネットワーク１５０およびデータ・ネットワーク１５２も含まれる。一実施形態では、アドレス・ネットワーク１５０はブロードキャスト・ネットワークであり、データ・ネットワーク１５２はポイントツーポイント・スイッチ１５６を含むポイントツーポイント・ネットワークである。しかし、アドレス・ネットワーク１５０にもデータ・ネットワーク１５２にも、任意の適したタイプのネットワークを使用することができる。
【００１７】
図１Ａの例では、ＣＰＵ１４２Ａを、内部状態を表すデータ・ストリームを生成するように構成することができる。しかし、システム１４０の通常の動作環境を妨げないで生成されたデータ・ストリームに直接アクセスする手段がない場合がある。一実施形態では、入出力ブリッジ１４６を介して観測ポイントを確立することができる。例えば、入出力ブリッジ１４６を介してロジック・アナライザまたはその他のデータ取込みデバイスをシステム１４０に結合することができる。さらに、ＣＰＵ１４２Ａは、ネットワーク１５２の単一のスイッチング要素を介して直接に入出力ブリッジ１４６に結合しなくてもよい。そうではなく、ＣＰＵ１４２Ａをスイッチ１５６の第１のスイッチング要素に結合し、第１のスイッチング要素を第２のスイッチング要素に結合し、最後に第２のスイッチング要素を入出力ブリッジ１４６に結合することができる。したがって、ＣＰＵ１４２Ａと入出力部ブリッジ１４６の間で、システム１４０の通常の動作を妨げない経路を確立しなければならない。このような経路を確立するために、ＣＰＵ１４２Ａは、生成したステータス・ストリームを前述のように専用の線、ディセーブルになった線、複製された線、または他の形のクリティカルでない線など、クリティカルでないポートからルーティングするように構成される。この場合、ネットワーク１５２およびスイッチ１５６は、ＣＰＵ１４２Ａと入出力ブリッジ１４６との間の専用経路を確立するように構成される。
【００１８】
図１Ａに示す実施形態では、スイッチ１５６内の第１のスイッチング要素はＣＰＵ１４２Ａからステータス・ストリームを受け取るように構成され、また、受け取ったステイタス・ストリームをクリティカルでないポートを介してスイッチ１５６内の第２のスイッチング要素に搬送するように構成される。スイッチ１５６内の第２のスイッチング要素は、受け取ったステータス・ストリームをクリティカルでないポートを介して入出力ブリッジ１４６に搬送するように構成される。上記の経路では２つのスイッチング要素しか述べていないが、ＣＰＵ１４２Ａと宛先観測ポイントとの間に経路を生み出す際は、任意の数のスイッチング要素、または「ホップ」を利用することができる。さらに、生み出される経路は、ＣＰＵ１４２Ｂなど、システム１４０内の他のデバイスを含むこともできる。さらに、システム１４０の任意の要素（例えばスイッチ１５６内のスイッチング要素）についてのステータス・ストリームを、所望の観測ポイントにルーティングすることによって観測することもできる。最後に、ステータス・ストリームが宛先観測ポイント１４６に到着すると、これを観測するか、取り込むか、他の方法で利用することができる。このようにすれば、通常の設計構造を用いて、通常のシステムの動作またはタイミングに大きな影響を及ぼすことなく、ＣＰＵ１４２Ａの内部状態の観測が可能になる。
【００１９】
次に図２に移ると、代替コンピューティング・システム２００の例示的なブロック図が示してある。図２には、ノード１２Ａ〜１２Ｃおよびノード２０２Ａ〜２０２Ｄが含まれる。データを送受信するために、ノード１２はそれぞれポート２１および２２を備え、ノード２０２はポート２３０および２４０を備える。様々な実施形態で、ノード２０２および１２は、単一のチップ、単一のシステム・ボード、複数のチップ、複数のボード、またはその他に対応している。例えば、ある特定の実施形態では、ノード２０２はポイントツーポイント相互接続に対応し、ノード１２はＳＭＰコンピューティング・システム中のプロセッサに対応することができる。このような実施形態では、ノード２０２は、システム２００中のノード１２間でデータをルーティングするためのスイッチとして働くように構成することができる。図２に示すように、ノード１２の入力ポート２２Ａ、２２Ｂ、２２Ｃは、それぞれノード２０２のポート２３０Ｄ、２３０Ｅ、２３０Ｊからデータを受け取るように結合される。ノード１２の出力ポート２１Ａ、２１Ｂ、２１Ｃは、それぞれノード２０２のポート２４０Ａ、２４０Ｂ、２４０Ｇにデータを搬送するように結合される。さらに、ノード２０２Ａの出力ポート２３０Ａ、２３０Ｂ、２３０Ｃは、それぞれノードの入力ポート２４０Ｄ、２４０Ｉ、２４０Ｊに結合される。最後に、ノード２０２Ｃの出力ポート２３０Ｇおよび２３０Ｉは、それぞれノードの入力ポート２４０Ｆおよび２４０Ｈに結合される。
【００２０】
図２を参照する。その際、次のように仮定する。動作中のノード２０２Ｂの内部状態を観測することが望まれており、その内部状態をノード１２Ｃを介して観測したいものとする。一実施形態では、データを観測および分析するためにロジック・アナライザを宛先ノード１２Ｃに結合することができる。あるいは、受け取ったデータを後で分析するために、データをメモリまたはその他の記憶デバイスに書き込むように宛先ノード１２Ｃを構成することもできる。最初に、ノード２０２Ｂを、その内部状態に対応するデータ・ストリームを生成するように構成する。次に、このデータ・ストリームを宛先ノード１２Ｃに搬送しなければならない。しかし、内部状態に対応するデータ・ストリームを通常のオペレーション・データと同じ経路を介して搬送すると、システムの通常動作に影響を及ぼす恐れがある。したがって、通常の経路を介して内部状態データ・ストリームを搬送するのではなく、クリティカルでない代替経路を構成する。このようなクリティカルでない経路には、ディセーブルになったポート、複製されたポート、監視ポート専用になっているポート、または他の形のクリティカルでないポートを含めることができる。このクリティカルでない経路を利用して、内部状態データ・ストリームをノード２０２Ｂからノード１２Ａ、ノード２０２Ａ、ノード２０２Ｄを通してノード１２Ｃにルーティングする。
【００２１】
図２の例示では、別個のポートを利用して所望のデータ・ストリームを搬送した。ノード２０２Ｂは、通常のオペレーション・データ用にノード１２Ａへの経路２１０Ａを備えており、これはポート２３０Ｅおよびポート２２Ｂを利用する。この経路２１０Ａを用いて内部状態データ・ストリームを搬送するのではなく、ポート２３０Ｄおよびポート２２Ａを含む代替経路２１０Ｂを利用する。ノード１２Ａもまた、ポート２１Ｂおよびポート２４０Ｂを含む通常のデータ経路２１２Ａ、ならびに、ポート２１Ａおよびポート２４０Ａを含む代替経路２１２Ｂを介して、ノード２０２Ａに結合される。ノード２０２Ａは、ポート２３０Ｂおよびポート２４０Ｉを含む通常のデータ経路２１４Ａ、ならびに、ポート２３０Ａおよびポート２４０Ｊを含む代替経路２１４Ｂを介して、ノード２０２Ｄに結合される。最後に、ノード２０２Ｄは、ポート２３０Ｋおよびポート２２Ｄを利用する経路２１６を介してノード１２Ｃに結合される。このようにして、一連のルーティング・ストリームをセットアップし、それにより、既存のシステム相互接続を用いて、訂正および分析のために可観測性データを好都合なクライアント・スロット１２Ｃにルーティングすることができる。
【００２２】
挿入されたデバッグ情報とクローン化されたデータ・ストリームの観測
前述のように、この方法を用いて、使用中のストリームに挿入されたデバッグ情報を観測することもできる。例示として再び図２を参照するが、ノード２０２Ａは、受け取ったデータ・ストリームを別のノードに搬送する前に、デバッグ情報をそれに挿入するように構成することができる。例えばノード１２Ａは、通常のシステムの動作中に、リンク２１２Ｂを介してデータ・パケットのストリームをノード２０２Ａに搬送することができる。ノード２０２Ａは、ノード１２Ａから受け取った通常のオペレーション・データをポート２３０Ａからリンク２１４Ｂを介してノード２０２Ｄに搬送するように構成することができ、ノード２０２Ｄは、ポート２３０Ｊおよび２２Ｃをそれぞれ介してこのデータをノード１２Ｂに搬送する。さらにノード２０２Ａは、ノード１２Ａから受け取ったＮ個のデータ・パケット（Ｎは整数）の各グループに対応するデバッグ情報パケットを生成するように構成することもできる。しかしノード２０２Ａは、生成したデバッグ・パケットをポート２３０Ａから搬送するのではなく、タイミング・クリティカルでないポート２３０Ｂを介し、リンク２１４Ａを介してノード２０２Ｄにデバッグ・データを搬送するように構成することができ、ノード２０２Ｄは、ポート２４０Ｉで受け取ったデータを観測のためにリンク２１６を介してノード１２Ｃに搬送するように構成することができる。有利にも、通常のオペレーション・データに対応するデバッグ情報を生成し、次いでこれを、観測するか取り込むために、好都合な観測ポイントであるノード１２Ｃに搬送することができる。しかし、使用中のストリームにデバッグ情報を挿入することはシステムの動作および待ち時間に影響を及ぼす恐れがあるので、経路およびデバッグ・データ抽出ポイントは慎重に選択すべきである。
【００２３】
また、特定の観測ポイントで観測するためにデータ・ストリームを複製または「クローン化」してルーティングできることについても先に触れた。例えば、図２のノード２０２Ｄは、ノード２０２Ａからポート２４０Ｊを介して通常のデータ通信を受け取るように構成することができる。ノード２０２Ｄはまた、その通常のシステムの動作の一部として、ポート２４０Ｊ上で受け取ったすべてのデータを、ポート２３０Ｊを介してノード１２Ｂに搬送するように構成することができる。しかし、受け取ったデータ・ストリームをポート２３０Ｊを介してノード１２Ｂに搬送することに加えて、ノード２０２Ｄは、受け取ったデータ・ストリームを複製して、複製データ・ストリームを観測のためにノード１２Ｃに搬送するように構成することもできる。このような技法を用いて、任意のデータ・ストリームをシステム内で複製して所望の観測ポイントに搬送することができる。
【００２４】
次に図３に移ると、ノード３００の一部の一実施形態が示してある。ノード３００は、入力ポート３０２Ａ〜３０２Ｃと、出力ポート３０４Ａ〜３０４Ｃを備える。ノード３００はまた、制御回路３１０と、マルチプレクサ３５０、３６０、３７０Ａ〜３７０Ｃも備える。入力ポート３０２は、制御回路３１０とマルチプレクサ３５０に結合される。制御回路３１０はさらに、マルチプレクサ３６０と３７０に結合される。最後に、マルチプレクサ３７０Ａ〜３７０Ｃは、それぞれ出力ポート３０４Ａ〜３０４Ｃに結合される。図３には、ブロック３１０に内部チップ・ステータス３２０を示す。一実施形態では、制御回路３１０は、入力ポート３０２および出力ポート３０４をイネーブルにするか、ディセーブルにするか、または他の方法で構成することができる。制御回路３１０は、マルチプレクサ３５０、３６０、３７０から搬送する特定の入力を選択するように構成することもできる。図示の実施形態では、ノード３００を通る標準的なデータ経路３８０が示されている。加えて、マルチプレクサ３５０と３６０に結合される代替データ経路も示されている。動作中、ノード３００は内部状態３２０を含むことができる。内部状態３２０は、ノード３００内のいくつかのレジスタまたはその他の記憶デバイスの内容を含むことがある。
【００２５】
第１の動作例では、ノード３００を利用して、受け取ったステータス・データ・ストリームを搬送する。ノード３００は、ポート３０２Ｃを介した通常のオペレーション・データを通常のデータ経路３８０に沿ってマルチプレクサ３７０Ａに搬送し、ポート３０４Ａに出力するように構成される。ノード３００は、別のデバイスからのステータス・データ・ストリームをポート３０２Ａに受け取るように構成される。受け取ったステータス・データ・ストリームを、マルチプレクサ３５０、３６０、３７０Ｃに搬送し、ポート３０４Ｃに出力する。第２の例では、ノード３００は、それ自体の内部状態を搬送するように構成される。それ自体の内部チップ・ステータス３２０を搬送するときには、マルチプレクサ３５０の出力をマルチプレクサ３６０へ搬送するのではなく、制御回路３１０が搬送用としてマルチプレクサ３６０への入力３５２を選択するように構成される。次いで、搬送した内部状態を、マルチプレクサ３７０の１つとポート３０４の１つを介して出力することができる。第３の例では、制御回路は、ポート３０２Ａを介して受け取ったデータ・ストリームを複製し、その複製ストリームをマルチプレクサ３７０Ｃに搬送し、ポート３０４Ｃを介して出力するように構成することができる。第４の例では、制御回路は、ポート３０２Ａを介して受け取った通常のオペレーション・データに対応するデバッグ情報を生成し、ポート３０４Ａを介して通常のオペレーション・データを搬送し、ポート３０４Ｃを介してデバッグ情報を搬送するように構成することができる。さらに制御回路は、ポート３０２Ａを介してデータ・ストリームおよび対応するデバッグ・データを受け取り、データ・ストリームからデバッグ・データを分離し、ポート３０４Ａを介してデータ・ストリームを搬送し、ポート３０４Ｃを介して分離したデバッグ・データを搬送するように構成することができる。
【００２６】
基準データ・ストリームおよびより広いパターン
代替の一実施形態では、テスト中およびデバッグ中に複数の経路を利用してデータを送ることができる。基準データ・ストリームを利用することにより、観測データの分析をより効率的にすることができ、取り込んだ複数のデータ・ストリームを、価値ある情報をもたらす形で「結合」することができる。例えば、第２のデータ・ストリームを「基準」として利用して、取り込んだ第１のデータ・ストリームと第２のデータ・ストリームをより容易に相関させることができる。このような実施形態では、第１のデータ・ストリームの送出および取込みに第１の経路を使用することができる。第１のデータ・ストリームは、内部ステータス・データを含むもの、所定のテスト・パターンに対応するもの、または単に通常のシステム・オペレーションに対応するものとすることができる。第１のデータ・ストリームに加えて、第１のデータ・ストリームに対応する基準データ・ストリームを第２の経路に生成する。基準データ・ストリーム（「基準データ」）は、単一データ・ビットほどの単純なものでもよく、データ・ビットの小さいシーケンスを含むものでもよく、大きなデータ・ストリームを含むものでもよい。例えば基準データ・ストリームは、第１のデータ・パターンをそれに対応するテストまたは入力データと相関させる「開始」信号またはパターン、あるいは「カウント」を含むことができる。生成した基準データ・ストリームは、第１のデータ・ストリームと同様の方式でルーティングして取り込む。取り込んだ第１のデータ・ストリームに基準データ・ストリームを相関させることにより、テスト技術者は、取り込んだテスト・データに関連する側面をよりよく識別することができる。別法として、対応するデータに先行できる基準開始パターンを利用し、対応するデータは後で取り込むこともできる。
【００２７】
さらに、基準ストリームを使用すると、観測可能なシステム挙動を拡張することができる。例えば、動作中、前述のように限られた数のデータ・ストリームだけを取り込むことも可能である。しかしテスト技術者は、より大きなデータ・セットを分析して、デバッグ・プロセスをさらに容易にしたいと思う場合がある。この作業を達成するには、前述のように第１のデータ・ストリームおよび対応する基準ストリームを取り込めばよい。その後、第２のテスト（おそらく第１のテストと同一）を実行し、第２のデータ・ストリームおよび対応する基準ストリームを取り込めばよい。このようにすれば、テスト技術者は、取り込んだ基準データを利用して、第１のデータ・ストリームを第２のデータ・ストリームに相関させることができる。したがって、別々に取り込んだデータ・ストリームをより大きなデータ・セットに結合することができ、このデータ・セットは、単一のデータ・ストリームだけでは確認不可能なシステム挙動を明らかにすることができる。システム挙動をより大きな視野で観測することができるので有利である。
【００２８】
次に図４に移ると、ノードの内部状態を観測する方法の一実施形態が示してある。最初にデバイスまたはノードを、その内部状態に対応するデータ・ストリームを生成するように構成する（ブロック４００）。さらに、生成したデータ・ストリームをクリティカルでない経路を介して搬送するようにデバイスを構成する（ブロック４０２）。一実施形態では、クリティカルでない経路を介してデータ・ストリームを搬送するようにデバイスを構成することは、ディセーブルになったポート、複製されたポート、専用の監視ポート、または他の形のクリティカルでないポートにデータ・ストリームを出力することを含むことができる。また一実施形態では、内部状態データ・ストリームを生成してそれをクリティカルでない経路を介して搬送するようにデバイスを構成することは、デバイスの選択された内部構成レジスタを特定の値に設定することによって行うことができる。次いで、クリティカルでない経路を介して内部状態データ・ストリームを搬送する（ブロック４０４）。その後、データ・ストリームを受け取り（ブロック４０６）、搬送されたデータが最終宛先に到達したかどうかを決定する（決定ブロック４０８）。データがその最終宛先に到達していない場合は、データ・ストリームに対応するこのデータを、クリティカルでない経路を介して次の宛先に搬送する（ブロック４０４）。データが最終宛先に到達した場合は（決定ブロック４０８）、観測するためにデータを取り込むことができる（ブロック４１０）。
【００２９】
図５は、通常のオペレーション・データ・ストリームを複製および搬送する方法の一実施形態を示すものである。最初に、特定のポートに受け取ったデータ・ストリームに対応する複製データ・ストリームを生成するようにノードを構成する（ブロック５００）。さらに、受け取ったデータ・ストリームは通常の経路を介して搬送し、複製データ・ストリームは所望の観測ポイントに対応するクリティカルでない経路を介して搬送するように、ノードを構成する（ブロック５０２）。その後、ノードはデータ・ストリームを受け取り（ブロック５０４）、複製する（ブロック５０６）。次いで、受け取ったデータ・ストリームは通常のデータ経路を介して搬送し（ブロック５０８）、複製データ・ストリームは構成済みのクリティカルでない経路を介して搬送する。
【００３０】
最後に、デバッグ・データを挿入および観測する方法の一実施形態を図６に示す。データ・ストリームに対応するデバッグ・データをデータ・ストリームに挿入するように、第１のノードを構成する（ブロック６００）。さらに、受け取ったデータ・ストリームからデバッグ・データを検出および分離して、クリティカルでない経路を介して観測ポイントに搬送するように、第２のノードを構成する（ブロック６０２）。その後、第２のノードは第１のノードからデータ・ストリームを受け取る（ブロック６０４）。次いで第２のノードは、受け取ったデータ・ストリームがデバッグ・データを含むかどうかを決定する（決定ブロック６０６）。データ・ストリーム中にデバッグ・データがないと決定した場合は、受け取ったデータ・ストリームを通常のデータ経路を介して搬送する（ブロック６１４）。しかし、受け取ったデータ・ストリーム中にデバッグ・データがあると決定した場合は、デバッグ・データをデータ・ストリームの残りから分離し（ブロック６０８）、残りのデータ・ストリームは通常のデータ経路を介して搬送し（ブロック６１０）、デバッグ・データは構成済みのクリティカルでない経路を介して搬送する（ブロック６１２）。
【００３１】
以上の開示を完全に理解すれば、当業者には多くの変形および修正が明らかになるであろう。頭記の特許請求の範囲は、そのような変形および修正すべてを含むと解釈されるものとする。
【図面の簡単な説明】
【図１】
観測の方法を示す一実施形態の図である。
【図１Ａ】
コンピュータ・システムの一実施形態の図である。
【図２】
データを観測する機構の一実施形態の図である。
【図３】
ノードの一部を示す図である。
【図４】
テスト・データおよびデバッグ・データを観測する方法を示す流れ図である。
【図５】
複製されたデータを観測する方法を示す流れ図である。
【図６】
デバッグ・データを挿入および観測する方法を示す流れ図である。
【図１】
2004519793.tif 000003
【図１Ａ】
2004519793.tif 000004
【図２】
2004519793.tif 000005
【図３】
2004519793.tif 000006
【図４】
2004519793.tif 000007
【図５】
2004519793.tif 000008
【図６】
2004519793.tif 000009
【国際公開パンフレット】
2004519793.tif 000010
2004519793.tif 000011
2004519793.tif 000012
2004519793.tif 000013
2004519793.tif 000014
2004519793.tif 000015
2004519793.tif 000016
2004519793.tif 000017
2004519793.tif 000018
2004519793.tif 000019
2004519793.tif 000020
2004519793.tif 000021
2004519793.tif 000022
2004519793.tif 000023
2004519793.tif 000024
2004519793.tif 000025
2004519793.tif 000026
2004519793.tif 000027
2004519793.tif 000028
【国際公開パンフレット（コレクトバージョン）】
2004519793.tif 000029
2004519793.tif 000030
【国際調査報告】
2004519793.tif 000031
2004519793.tif 000032
2004519793.tif 000033