(57)【要約】  本発明はコンピューティングの分野に関する。より詳細には、本発明はPCI Expressバス通信に関する。
2011527800.tif 000002
【特許請求の範囲】
【請求項１】
PCI Expressバスデバイスのバックエンドエンティティによって発行される所与のPCI Expressバスコマンドのための全てのデータが送信された時点を判断するための方法であって、該方法は、
PCI ExpressバスパケットのPCI Expressバスパケットヘッダタグフィールドを設定するステップであって、該PCI Expressバスコマンドを発信したバックエンドエンティティ、及び前記PCI Expressバスパケットが前記PCI Expressバスコマンドの最後のパケットであるか否かを指示する、設定するステップと、
前記PCI Expressバスパケットの前記PCI Expressバスパケットヘッダタグフィールドを検査するステップであって、前記PCI Expressバスパケットが前記PCI Expressバスコマンドの最後のパケットであるか否かを判断する、検査するステップと
を含むことを特徴とする方法。
【請求項２】
請求項１記載の方法において、前記バックエンドエンティティが、前記PCI Expressバスパケットヘッダタグフィールドを設定することを特徴とする方法。
【請求項３】
請求項１記載の方法において、PCI Expressバスコアが、前記PCI Expressバスパケットヘッダタグフィールドを検査することを特徴とする方法。
【請求項４】
請求項１記載の方法において、バスアナライザが、前記PCI Expressバスパケットヘッダタグフィールドを検査することを特徴とする方法。
【請求項５】
PCI Expressバスデバイスのバックエンドエンティティによって発行される所与のPCI Expressバスコマンドのための全てのデータが送信された時点を判断するための方法であって、該方法は、
PCI ExpressバスパケットのPCI Expressバスパケットヘッダタグフィールドを設定するステップであって、該PCI Expressバスパケットが前記PCI Expressバスコマンドの最後のパケットであるか否かを指示する、設定するステップと、
前記PCI Expressバスパケットの前記PCI Expressバスパケットヘッダタグフィールドを検査するステップであって、前記PCI Expressバスパケットが前記PCI Expressバスコマンドの最後のパケットであるか否かを判断する、検査するステップと
を含むことを特徴とする方法。
【請求項６】
請求項５記載の方法において、前記PCI Expressバスパケットを送信する前記バックエンドエンティティが、前記PCI Expressバスパケットヘッダタグフィールドを設定することを特徴とする方法。
【請求項７】
請求項５記載の方法において、前記PCI Expressバスパケットヘッダタグフィールドが、前記PCI Expressバスコマンドを送信する前記バックエンドエンティティを指示するためにも設定されることを特徴とする方法。
【請求項８】
請求項５記載の方法において、PCI Expressバスコアが、前記PCI Expressバスパケットヘッダタグフィールドを検査することを特徴とする方法。
【請求項９】
請求項５記載の方法において、バスアナライザが、前記PCI Expressバスパケットヘッダタグフィールドを検査することを特徴とする方法。
【請求項１０】
請求項５記載の方法において、前記PCI Expressバスコマンドはメモリ書込みコマンドであり、前記PCI ExpressバスパケットはPCI Expressバスメモリ書込みパケットであることを特徴とする方法。
【請求項１１】
PCI ExpressバスデバイスのいずれのバックエンドエンティティがPCI Expressバスコマンドを発信したかを判断するための方法であって、該方法は、
PCI ExpressバスパケットのPCI Expressバスパケットヘッダタグフィールドを設定するステップであって、該PCI Expressバスコマンドを発信した前記バックエンドエンティティを指示する、設定するステップと、
前記PCI Expressバスパケットの前記PCI Expressバスパケットヘッダタグフィールドを検査するステップであって、いずれのバックエンドエンティティが前記PCI Expressバスコマンドを発信したかを判断する、検査するステップと
を含むことを特徴とする方法。
【請求項１２】
請求項１１記載の方法において、前記バックエンドエンティティが、前記PCI Expressバスパケットヘッダタグフィールドを設定することを特徴とする方法。
【請求項１３】
請求項１１記載の方法において、PCI Expressバスコアが、前記PCI Expressバスパケットヘッダタグフィールドを検査することを特徴とする方法。
【請求項１４】
請求項１１記載の方法において、バスアナライザが、前記PCI Expressバスパケットヘッダタグフィールドを検査することを特徴とする方法。
【請求項１５】
請求項１１記載の方法において、該方法はさらに、前記PCI Expressバスパケットヘッダタグフィールドを設定するステップであって、前記PCI Expressバスパケットが前記PCI Expressバスコマンドの最後のパケットであるか否かを指示する、設定するステップを含むことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータ技術に関する。より詳細には、本発明はPCI Expressバス通信に関する。
【背景技術】
【０００２】
PCI Expressバスデバイスは、通常、複数の機能を実現する。これらの機能は、一般的には相互に独立して動作する。単一機能のデバイスであっても、１つのPCI Express機能を共用する多数のバックエンドエンティティが存在する場合がある。PCI Expressシステムの障害解析するときに、ＰＣＩメモリ書込みパケットを、その書込み要求を発行した機能又はバックエンドエンティティに逆から（back）相関付けることは、多くの場合に極めて困難であるか又は不可能である。これは、パケット内の唯一の識別情報が宛先アドレスであるためである。したがって、メモリ書込みパケットの宛先アドレスが発信元の機能又はバックエンドエンティティに対して一意でない限り、送信側エンティティを見つけるための解決策は、今まで存在していない。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
上記に鑑みて、上記のような制約を少なくとも部分的に克服するシステムが必要とされている。
【課題を解決するための手段】
【０００４】
上記及び他の課題は、PCI ExpressバスパケットのPCI Expressバスパケットヘッダタグフィールドを設定して、該PCI Expressバスコマンドを発信したバックエンドエンティティ、及び該PCI Expressバスパケットが該PCI Expressバスコマンドの最後のパケットであるか否かを指示し、次に、PCI ExpressバスパケットのPCI Expressバスパケットヘッダタグフィールドを検査して、PCI ExpressバスパケットがPCI Expressバスコマンドの最後のパケットであるか否かを判断することによって、PCI Expressバスデバイスのバックエンドエンティティによって発行される所与のPCI Expressバスコマンドのための全てのデータが送信された時点を特定するための方法によって解決される。
【０００５】
上記のように、PCI Expressバスパケットにおいて他では使用されない、ヘッダタグフィールドを検査するデバイスは、いずれのバックエンドデバイスがパケットを発信したか、及びそのパケットがコマンドの最後の部分を含むか否かを判断することができる。
【０００６】
種々の実施形態において、バックエンドエンティティは、PCI Expressバスパケットのヘッダタグフィールドを設定する。いくつかの実施形態では、PCI Expressバスコア又はバスアナライザの少なくとも一方が、PCI Expressバスパケットヘッダタグフィールドを検査する。
【０００７】
本発明のさらなる利点は、図面を参照して詳細な説明を検討することによって明らかになる。細部をより明確に示すために、図面は縮尺通りに描かれていない。なお、いくつかの図面を通して、類似の参照番号は類似の構成要素を指示する。
【図面の簡単な説明】
【０００８】
【図１】PCI Expressメモリ書込みパケットのフォーマットの従来技術による表現を示す図である。
【図２】本発明の一実施形態による、PCI Expressデバイスのブロック図である。
【発明を実施するための詳細な説明】
【０００９】
図１を参照すると、従来技術による、PCI Expressメモリ書込み要求パケットのフォーマットが示されている。PCI Express Base Specification Revision 2.0は、メモリ書込み要求パケットの８ビットタグフィールドが未定義であり、任意の値を含んでよいことを示している。PCI Expressデバイスは、典型的には、このフィールドを０に設定する。本発明の種々の実施形態は、この未定義のタグフィールドを利用して、有用な情報を伝達する。
【００１０】
図２を参照すると、複数のバックエンドエンティティ１２を有する典型的なPCI Expressデバイス１０を示している。バックエンドエンティティ１２は、アビータ１４を通じて、PCI Expressコア１６にコマンドを送信する。各バックエンドエンティティ１２は、PCI Expressコア１６に複数のコマンドを発行することができる。バックエンドエンティティ１２はそれぞれ、コマンドタグ、コマンドタイプ、コマンド長、コマンドアドレス及びバックエンド識別情報を指定する。コマンド長は、最大PCI Expressペイロードサイズ又は読出し要求サイズよりもはるかに大きい場合がある。この場合、PCI Expressコア１６は、そのコマンドを複数のPCI Express要求パケットに分割する。
【００１１】
図１に示されるように、コマンドタグは、PCI Expressパケットヘッダ内のタグフィールドに関連付けられない。PCI Expressコア１６は、或るコマンドを完了するとき、そのコマンドを発信したバックエンドエンティティ１２にコマンドタグ（図２において完了タグと示されている）及び終了フラグ（図２において、完了と示されている）を返すことによって、この事実を指示する。
【００１２】
本発明の種々の実施形態によれば、ファームウエアによって制御されるレジスタに応じて、メモリ書込みパケットのPCI Expressパケットヘッダタグフィールドは、以下に与えられる３つの値のいずれかに設定されることができる。
｛コマンドのための最後のパケット：バックエンド（Backend）ＩＤ｝
｛コマンド（Cmd）タグ｝、及び
｛コマンドのための最後のパケット:コマンドタグの最下位の３ビット、バックエンドＩＤ（４ビット）｝
【００１３】
コマンドのための最後のパケットを指示することは、バックエンドエンティティ１２によって発行されるコマンドのための全てのデータが送信された時点を判断するために、非常に有用である。
【００１４】
本発明の実施形態を適用することによって、PCI Expressメモリ書込みパケットを、バックエンドエンティティ１２及び該エンティティ１２によって発行されるＩＯコマンドに逆から相関付けることができるようになる。これは、ライブシステム（実用システム）の障害解析を行なうのに、又はシミュレーション環境においてスコアボーディングするのに非常に有用である。スコアボーディングとは、被試験デバイス内の或る場所から別の場所へ移動されるデータの自動検査のことである。
【００１５】
パケットのためのヘッダ内で指定されるタグを調べることのみによって、バックエンドエンティティ１２、又は受信されたPCI Expressメモリ書込みパケットのためのコマンドタグを特定するための手段を設ける。これにより、シミュレーション環境スコアボーディングが非常に簡単になる。
【００１６】
ライブシステムでは、所与のパケットのためのPCI Expressメモリ書込みパケットタグフィールドは、バスアナライザを用いて容易に取得される。本明細書において記述される本発明の種々の実施形態を用いることによって、タグは発行元デバイス内のコマンド又はイベントに逆から相関され、起こり得る問題を簡単に障害解析することができるようになる。
【００１７】
コマンドタグを生成するために、バックエンドエンティティ１２が使用するいくつかの方法がある。１つの方法は、タグをバックエンド機能にマッピングすることである。たとえば、バックエンドエンティティ１２が３つのＤＭＡエンジンを有する場合には、タグ０、１及び２をそれらのＤＭＡエンジンに割り当てることができる。ＤＭＡエンジン１がコマンドを発行するときはいつでも、そのコマンドのためのタグは１である。コマンドタグを生成するための別の方法は、カウンタを使用することである。発行される第１のタグは０であり、次に１であり、以下同様である。カウントが、バックエンドエンティティが発行することができる同時コマンドの最大数を超えると、カウンタはロールオーバする（０に戻る）。コマンドタグを生成するための他の方法も実現可能である。
【００１８】
一実施形態では、バックエンドエンティティ１２は、タグの生成において相互に連係しない。しかしながら、各バックエンドエンティティ１２は一意のＩＤを有する。したがって、バックエンドＩＤ及びコマンドタグの組み合わせは一意である。
【００１９】
バスアナライザは、ライブシステム内のＰＣＩｅバスをモニタすることができる。ＰＣＩｅバスアナライザを用いて、ＰＣＩｅバス上のすべてのパケットの細部を見ることができる。したがって、本明細書において記述されるような本発明の実施形態は、ライブシステムにおいて非常に有用である。現在、ＰＣＩｅメモリ書込みコマンドと共に発行されるタグは全て０に設定される。実際に、いずれのバックエンドエンティティ１２が書込みコマンドを発信したかを見分ける方法は存在していない。複数のバックエンドエンティティ１２を備えるデバイスでは（デバイスによっては、１６個以上のエンティティ１２を有する）、パケットに含まれる他の情報と共に、いずれのエンティティ１２がコマンドを発行したかを知ることは、デバイス１０内の或る問題を障害解析するのに十分な情報である。
【００２０】
１６個のバックエンドエンティティ１２を有するデバイス１０の例について考える。ただし、各エンティティ１２は、８個までの同時に未処理のコマンドを発行するだけの十分なリソースを有する。その際、バックエンドＩＤ及びコマンドタグと、そのコマンドのための最後のパケットの指示とを連結して、各メモリ書込みパケットと共に送出されるヘッダタグを形成することができる。バックエンドＩＤ２がコマンドタグ５を有するメモリ書込みコマンドを発行し、かつバックエンドＩＤ４がコマンドタグ７を有するメモリ書込みコマンドを発行し、かつ各コマンドにおいて４ＰＣＩｅパケットが送出される必要がある場合を考える。ＰＣＩｅバスアナライザを用いて、そのパケットにおいて発行されるタグを見ることによって、ＰＣＩｅバス上のアクティビティを追跡することができる。たとえば、タグの以下のシーケンスを見る場合がある。
【００２１】
０，２，５  （最後のパケットではない、バックエンドＩＤ２、コマンドタグ５）
０，４，７  （最後のパケットではない、バックエンドＩＤ４、コマンドタグ７）
０，４，７  （最後のパケットではない、バックエンドＩＤ４、コマンドタグ７）
０，２，５  （最後のパケットではない、バックエンドＩＤ２、コマンドタグ５）
０，２，５  （最後のパケットではない、バックエンドＩＤ２、コマンドタグ５）
１，２，５  （最後のパケット、バックエンドＩＤ２、コマンドタグ５）
０，４，７  （最後のパケットではない、バックエンドＩＤ４、コマンドタグ７）
１，４，７  （最後のパケット、バックエンドＩＤ４、コマンドタグ７）
【００２２】
本発明の非試験環境の実施形態も実現可能であり、その場合、バスの両端にあるデバイスが、発行されたＰＣＩｅタグが情報を伝達するものである。大部分のデバイスでは、受信されたメモリ書込みパケットのためのＰＣＩｅタグは無視され、捨てられる。しかしながら、符号化されたタグを予想するように設計されるデバイスは、この実施形態から利益を得ることができるであろう。ライブPCI Expressシステムでは、PCI Expressバスの一端において受信されるメモリ書込みパケットを、PCI Expressバスの他端においてパケットを発行させたバックエンドエンティティ１２に逆から相関付ける既知の代替手段は存在していない。
【００２３】
本発明の好ましい実施形態のこれまでの説明は、例示し、説明するために提示されてきた。それは、本発明を包括的に述べることや、開示されるのと全く同じ形に限定することを意図していない。上記の教示に鑑みて、明らかな変更又は変形が可能である。本発明の原理、及びその実用的な応用例の最良の例示を提供し、それにより、当業者が、本発明を種々の実施形態において、かつ検討される特定の用途に相応しいように種々の変更を加えて利用することができるようにするために、それらの実施形態は選択され、説明される。添付の特許請求の範囲が適正に、合法的に、かつ公正に権利を与えられる範囲に基づいて解釈されるときに、全てのそのような変更及び変形は、特許請求の範囲によって決定されるような本発明の範囲内にある。
【図１】
2011527800.tif 000003
【図２】
2011527800.tif 000004
【国際調査報告】
2011527800.tif 000005