(57)【特許請求の範囲】
【請求項１】
ソースデバイスから発生したメッセージを用いて宛先の機能メモリ空間にアクセスするための方法であって、
宛先がベンダ定義メッセージの資源アクセス要求をサポートしているかどうかを判断することと、
前記宛先がサポートしていると判断した場合に、
前記ソースデバイスに実装されたメッセージ標準プロトコルで定義された特定ベンダ向けタイプフィールド内の値に基づく前記ベンダ定義メッセージである前記メッセージであって、前記機能メモリ空間のアクセスのタイプを特定するアクセスタイプ値と、前記機能メモリ空間に関連付けられる宛先オフセット値とを含む前記メッセージを、前記ソースデバイスで形成することと、
前記メッセージを前記宛先へ送ることと、を備える方法。
【請求項２】
前記メッセージ標準プロトコルはＰＣＩエクスプレスメッセージプロトコルである、請求項１に記載の方法。
【請求項３】
前記機能メモリ空間のアクセスのタイプは、メモリ読み出し動作、メモリ書き込み動作、構成レジスタ読み出し動作、構成レジスタ書き込み動作及び完了動作のうち１つである、請求項１に記載の方法。
【請求項４】
前記メッセージはデータ値を更に含み、前記機能メモリ空間のアクセスのタイプは、メモリ書き込み動作、構成レジスタ書き込み動作及び完了動作のうち１つである、請求項１に記載の方法。
【請求項５】
前記機能メモリ空間は、メモリロケーション及びレジスタロケーションのうち１つである、請求項１に記載の方法。
【請求項６】
前記形成すること及び前記送ることは、前記ソースデバイスに関連付けられる有効化フィールドがメッセージング有効化を示す値にセットされるときに行われる、請求項１に記載の方法。
【請求項７】
前記ソースデバイスに関連付けられる状態フィールドが予め定められた値に設定されることによって、前記メッセージが成功裏に送られたことを示すことを更に備える、請求項１に記載の方法。
【請求項８】
前記メッセージが成功裏に送られたこと及び前記データ値の読み出しが可能であることを示すことを更に備える、請求項４に記載の方法。
【請求項９】
前記形成すること及び前記送ることは、前記ソースデバイスで先のベンダ定義メッセージによる先のアクセスがクリアされたことを検証した後に行われる、請求項１に記載の方法。
【請求項１０】
前記メッセージを形成することは、単一ステップ伝搬に関連付けられる予め定められたルーティング値にルート値が設定されることを更に含む、請求項１に記載の方法。
【請求項１１】
前記メッセージを形成することは、多重ステップ伝搬に関連付けられる予め定められたルーティング値にルート値が設定されることを更に含む、請求項１に記載の方法。
【請求項１２】
ソースデバイスから発生したメッセージを用いて宛先の機能メモリ空間にアクセスするための方法であって、
宛先がベンダ定義メッセージの資源アクセス要求をサポートしていることを、前記宛先が前記ソースデバイスに示すことと、
前記ソースデバイスに実装されたメッセージ標準プロトコルで定義された特定ベンダ向けタイプフィールド内の値に基づくベンダ定義メッセージである前記メッセージであって、前記機能メモリ空間のアクセスのタイプを特定するアクセスタイプ値と、前記機能メモリ空間に関連付けられる宛先オフセット値とを含む前記メッセージを、前記宛先で受け取ることと、
前記宛先オフセット値及び前記アクセスタイプ値に基づき前記機能メモリ空間での前記アクセスを行うことと、を備える方法。
【請求項１３】
前記メッセージ標準プロトコルはＰＣＩエクスプレスメッセージプロトコルである、請求項１２に記載の方法。
【請求項１４】
前記機能メモリ空間のアクセスのタイプは、メモリ読み出し動作、メモリ書き込み動作、構成レジスタ読み出し動作、構成レジスタ書き込み動作及び完了動作のうち１つである、請求項１２に記載の方法。
【請求項１５】
前記メッセージはデータ値を更に含み、前記機能メモリ空間のアクセスのタイプは、メモリ書き込み動作、構成書き込み動作及び完了動作のうち１つである、請求項１２に記載の方法。
【請求項１６】
前記機能メモリ空間は、メモリロケーション及びレジスタロケーションのうち１つである、請求項１２に記載の方法。
【請求項１７】
前記機能メモリ空間にアクセスすることは、前記宛先でのレジスタ値がメッセージ有効化を示す予め定められた値にセットされるときに生じる、請求項１２に記載の方法。
【請求項１８】
ソースデバイスから発生したメッセージを用いて宛先デバイスの機能メモリ空間にアクセスするための装置であって、
宛先がベンダ定義メッセージの資源アクセス要求をサポートしているかどうかを判断するように構成されたデジタルソースデバイスであって、前記宛先がサポートしていると判断した場合に前記メッセージを形成するように構成されたデジタルソースデバイスを備え、
前記メッセージは、前記ソースデバイスに実装されたメッセージ標準プロトコルで定義された特定ベンダ向けタイプフィールド内の値に基づくベンダ定義メッセージであって、前記機能メモリ空間のアクセスのタイプを特定するアクセスタイプ値と、前記宛先デバイスの前記機能メモリ空間に関連付けられる宛先オフセット値とを含む、装置。
【請求項１９】
ソースデバイスから発生したメッセージを用いて宛先デバイスの機能メモリ空間にアクセスするための装置であって、
ベンダ定義メッセージの資源アクセス要求をサポートしていることを前記ソースデバイスに示すように構成されたデジタル宛先デバイスであって、前記メッセージを受け取るように構成されたデジタル宛先デバイスを備え、
前記メッセージは、前記ソースデバイスに実装されたメッセージ標準プロトコルで定義された特定ベンダ向けタイプフィールド内の値に基づくベンダ定義メッセージであって、前記機能メモリ空間のアクセスのタイプを特定するアクセスタイプ値と、前記宛先デバイスの前記機能メモリ空間に関連付けられる宛先オフセット値とを含み、
前記デジタル宛先デバイスは前記宛先オフセット値及び前記アクセスタイプ値に基づき前記機能メモリ空間にアクセスするように更に構成される、装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は概してデータ通信に関し、特にシリアル点対点データ通信に関する。
【背景技術】
【０００２】
近年、コンピュータの速度は劇的に増大してきている。その増大の大部分はＣＰＵ速度の増大に起因している。一方、コンピュータ速度は、データ通信の速度、即ちＣＰＵが周辺デバイスとの間でデータを通信する能力にも依存する。暫くの間は、周辺部品相互接続(peripheral component interconnect)（ＰＣＩ）バスが適切な周辺接続性を提供していた。しかし、ＣＰＵ速度の増大及びより大きなデータ転送要求に伴い、ＰＣＩはすぐにＣＰＵと周辺機器の間での最も低速なリンクになってしまった。特に、ＰＣＩバスは、データ転送要求の増大を満たすためには、ピン、電力及びクロッキングに関する相当な不利益をもたらしていた。
【０００３】
これらの不利益に対応するために、ＰＣＩエクスプレス業界規格(PCI Express industry standard)が開発された。低電圧差動信号を用いるシリアルプロトコルが採用されるＰＣＩエクスプレス業界規格は、上述のようなクロッキングの不利益をもたらすことはなく、またより広帯域をより少ないピン数で伝達する。ＰＣＩエクスプレスは、「ルート(root)」デバイスと「エンドポイント(endpoint)」デバイスの間でのシリアル点対点接続性(serial point-to-point connectivity)をもたらす最大で３２データチャネル（レーン(lanes)として知られる）を提供する。
【０００４】
ＰＣＩエクスプレスプロトコルは、トランザクションレイヤ、データリンクレイヤ及び物理レイヤを含む複数のレイヤを伴うレイヤードプロトコルである。ＰＣＩエクスプレス適合デバイスの間での通信の基本構築ブロックは、トランザクションレイヤパケット（ＴＬＰ）である。ＴＬＰは、ヘッダとデータペイロードと誤り訂正セグメント（ダイジェストと称される）とを含む。１つ以上のＴＬＰが、ＰＣＩエクスプレス適合デバイスにおける動作を有効にするトランザクションを作り出す。例えばＴＬＰトランザクションは、メモリの読み出し及び書き込みの動作を容易にする。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述したように、ＰＣＩエクスプレスプロトコルは、最新のデータ通信デバイス対デバイス課題への柔軟な高速アプローチを提供するために開発された。それでもなお、高性能コンピュータ設計をサービスするために効率的なデータ転送の要求が増大してきており、データ転送の効率はいまだに最優先である。従って、ＰＣＩエクスプレスプロトコルを強化する必要性が継続している。ＰＣＩエクスプレスプロトコルに対するどのような改善も、標準的なＰＣＩエクスプレス仕様と後方互換(backwards compatible)である必要がある。
【０００６】
結果として、ＰＣＩエクスプレスプロトコル強化からの追加的な機能が実現されるのを可能にするために、デバイス修正が必要である。ＰＣＩエクスプレスプロトコルに対する強化は、通信リンクのいずれかの端におけるデバイスに関連するソフトウエアドライバのアップグレードにより実現され得る。そのようなアップグレードされたソフトウエアドライバは、関連デバイスがＰＣＩエクスプレスプロトコル強化を十分に利用することができるように、メモリマップされた空間(memory-mapped space)をプログラムする。デバイスソフトウエアドライバのアップグレードは望ましい解決法ではあるが、多くの場合にそのようなアップグレードは、タイミング良く利用可能であるわけではない。また、ＰＣＩエクスプレス機能は、その機能により所有されていない資源（例えば構成空間(configuration space)）にアクセスすることを許可されていない。ＰＣＩエクスプレス環境における外部資源の幾つかの限定されたアクセスがピアツーピア(peer-to-peer)アプローチを用いて可能であることがあるが、多くのプラットフォームはピアツーピアアクセスをサポートしておらず、またピアツーピアアプローチを用いる「読み出しアクセス」をサポートしているプラットフォームは殆どない。加えて、下流のＰＣＩエクスプレスポートは、構成空間へのアクセスを受け入れない。更に、幾つかのシステムは、「アクセス制御サービス(Access Control Service)」を介したピアツーピアアクセスを全てブロックする。
【０００７】
そこで、関連デバイスソフトウエアドライバのアップグレードがない場合にＰＣＩエクスプレスプロトコル強化を実装する方法及びシステムに対する必要性がある。
【課題を解決するための手段】
【０００８】
本発明のある実施形態においては、ベンダ定義のメッセージ(vendor defined messages)を用いてメモリ空間及びレジスタ空間が構成される。
【０００９】
本発明の更なる実施形態においては、資源アクセスアプローチは、タイプ１ベンダ定義のＰＣＩエクスプレスメッセージを用いて適用される。メモリ読み出し、メモリ書き込み、構成読み出し(configuration read)、構成書き込み及び完了のためのタイプ１ベンダ定義のＰＣＩエクスプレスメッセージの例示的な実施形態が説明される。
【００１０】
資源アクセスへのメッセージングアプローチを用いる使用モデルの例もまた説明される。
【００１１】
本発明の更なる実施形態、特徴及び利点並びに本発明の種々の実施形態の構成及び動作は、添付図面を参照して以下に詳細に説明される。
【図面の簡単な説明】
【００１２】
ここに組み込まれ且つ出願書類の一部をなす添付の図面は、本発明を示し、そして明細書と共に、本発明の原理を説明すること及び関連分野を含めた当業者が本発明を作りそして使用するのを可能にすることに更に役立つ。
【００１３】
【図１】図１はＰＣＩエクスプレスアプローチを用いるデータ通信システムを示す図である。
【００１４】
【図２】図２は本発明の実施形態に従う例示的なベンダ定義のメモリ読み出しメッセージ定義を示す図である。
【００１５】
【図３】図３は本発明の実施形態に従う例示的なベンダ定義のメモリ書き込みメッセージ定義を示す図である。
【００１６】
【図４】図４は本発明の実施形態に従う例示的なベンダ定義の構成読み出しメッセージ定義を示す図である。
【００１７】
【図５】図５は本発明の実施形態に従う例示的なベンダ定義の構成書き込みメッセージ定義を示す図である。
【００１８】
【図６】図６は本発明の実施形態に従う例示的なベンダ定義の完了メッセージ定義を示す図である。
【００１９】
【図７Ａ】図７Ａは本発明の実施形態に従う資源アクセスへのベンダメッセージングアプローチのための例示的なレジスタ定義を示す図（その１）である。
【図７Ｂ】図７Ｂは本発明の実施形態に従う資源アクセスへのベンダメッセージングアプローチのための例示的なレジスタ定義を示す図（その１の２）である。
【図８】図８は本発明の実施形態に従う資源アクセスへのベンダメッセージングアプローチのための例示的なレジスタ定義を示す図（その２）である。
【図９】図９は本発明の実施形態に従う資源アクセスへのベンダメッセージングアプローチのための例示的なレジスタ定義を示す図（その３）である。
【００２０】
【図１０】図１０は本発明の実施形態に従いメッセージングを用いる資源アクセスの例示的な方法のフローチャートである。
【００２１】
【図１１】図１１は４つのエンドポイント、１つのルートコンプレックス及び３つのスイッチを伴うＰＣＩエクスプレストポロジを示す図である。
【００２２】
次に、添付図面を参照して本発明を説明する。図面において同様の参照番号は同一の又は機能的に類似の要素を示すことがある。また、参照番号の最も左の単一又は複数の数字は、その参照番号が初めて現れる図面を指定することがある。
【発明を実施するための形態】
【００２３】
図１はデバイス１１０及び１２０の間での通信のためのＰＣＩエクスプレスシステムを用いるデータ通信システムを示している。ＰＣＩエクスプレス規格における通信の基本ユニットは、トランザクションレイヤパケット（ＴＬＰ）である。１つ以上のＴＬＰがＰＣＩエクスプレストランザクションを確立し、そしてデバイス１１０及び１２０の間でリンク１３０を介して伝送される。デバイス１１０及び１２０は、典型的にはＰＣＩエクスプレストランザクションを制御し且つ管理する制御器を含む。
【００２４】
一般的なＴＬＰパケットは、ヘッダとデータペイロードと誤り照合部分（ダイジェストとしても知られる）とを含む。全てのＴＬＰパケットがデータペイロード及びダイジェストを必要とするわけではないので、データペイロード及びダイジェストは随意的である。ＴＬＰヘッダはダブルワード（ＤＷｏｒｄとしても知られる）として調整され、ＤＷｏｒｄは４バイト即ち３２ビットに等しい。具体的なＰＣＩエクスプレストランザクションに応じて、ＴＬＰヘッダの長さは変化し得る（例えば３ＤＷｏｒｄ長又は４ＤＷｏｒｄ長）。
【００２５】
上述したように、ＰＣＩエクスプレスプロトコル強化からの追加的な機能が実現されるのを可能にするためには、デバイス修正が必要である。ＰＣＩエクスプレスプロトコルに対する強化は、典型的には通信リンクのいずれかの端におけるデバイスに関連するソフトウエアドライバのアップグレードにより実装され得る。そのようなアップグレードされたソフトウエアドライバは、デバイスに関連するメモリマップされた空間(memory-mapped space)をプログラムすることにより、ＰＣＩエクスプレスプロトコル強化を用いることができる。影響を受ける各ＰＣＩエクスプレスデバイス（エンドポイント、スイッチ及びルートコンプレックスを含む）のためにアップデートされたソフトウエアドライバは、ＰＣＩエクスプレスプロトコル強化を組み込むために必要な望ましい解決法である。デバイスソフトウエアドライバのアップグレードは望ましい解決法ではあるが、多くの場合にそのようなアップグレードは、タイミング良く利用可能であるわけではない。
【００２６】
以下に説明されるアプローチにおいては、関連デバイスのメモリマップされた空間（又は構成空間）に対して読み出し及び書き込みするためにベンダ定義のＰＣＩエクスプレスメッセージが用いられる包括的方法が提案される。これらのベンダ定義のＰＣＩエクスプレスメッセージは、ＰＣＩエクスプレスプロトコルにおけるベンダ定義タイプ１メッセージである。ベンダ定義のタイプ１メッセージアプローチを用いることによって、ＰＣＩエクスプレスリンクの他端にあるＰＣＩエクスプレス適合デバイスがそのようなタイプのメッセージをサポートしていない場合に、メッセージは受け取り側により静かに廃棄され、エラーは報告されない。以下に説明するアプローチにおいては、どの時点においても１つの未処理要求のみがサポートされる。
【００２７】
このメッセージングアプローチを用いて４タイプのレジスタアクセスが定義される。４タイプのレジスタアクセスは、メモリ読み出し、メモリ書き込み、構成読み出し及び構成書き込みである。所望のレジスタアクセスのタイプは、ベンダ定義のメッセージのヘッダにおける特定ベンダ向けタイプフィールド(vendor-specific type field)内の適切な値によって定義される。この方法の例として、メモリ読み出し要求は以下のようにして動作する。このアプローチを用いてメモリ読み出し要求が送られると、通信リンクの反対側は、タイプ完了を示す特定ベンダ向けメッセージと３２ビットデータペイロードとに応答する。特定ベンダ向けメッセージの受け取り側は次いでこのメッセージを処理し、そしてデータは関連レジスタ内に記憶され、関連レジスタはソフトウエアによって後で読まれ得る。
【００２８】
〔メモリ読み出しのための例示的なベンダ定義のメッセージ〕
図２〜図６は本発明の実施形態に従いレジスタアクセスのために用いられるベンダ定義のタイプ１メッセージのためのトランザクションレイヤパケット定義を示している。図２はベンダ定義のメッセージにおけるメモリ読み出しのための例示的なＴＬＰ定義を示している。図２に示されるように、ベンダ定義のメモリ読み出しメッセージのヘッダは、４つのＤＷｏｒｄと１つのＤＷｏｒｄペイロードとから構成される。ヘッダの第１のワードは予備フィールドである第１のフィールドからなり、１ビット長であり、「Ｒ」で示されている。第２のフィールドは７ビットフィールドであり、ＴＬＰがベンダ定義のメッセージであることを示す値「１１１０１００」を含む。
【００２９】
第１のＤＷｏｒｄにおける次のフィールドもまた予備フィールドであり、１ビット長であり、「Ｒ」で示されている。トラフィッククラス（ＴＣ）フィールドは３ビットフィールドであり、トラフィッククラスの最大で８つの異なるタイプを識別する。そのような情報は、異なる品質のサービスを提供するための基礎を形成し得る。次のフィールドもまた予備フィールドであり、４ビット長であり、「Ｒ」で示されている。ＴＤフィールドは１ビットフィールドであり、ＴＬＰパケットの最後にダイジェストがあるかどうかを示す。従ってＴＤフィールド値の「１」はダイジェストの存在を示し、「０」の値はダイジェストの不在を示す。ＥＰフィールドは１ビットであり、ＴＬＰパケットが「悪い」データを含んでいるとみなされるかどうかを示す。従ってＥＰフィールド値の「１」は悪いデータの存在を示し、「０」の値は悪いデータの不在を示す。「Ａｔｔｒ」は２ビットフィールドであり、ＴＬＰパケットのための属性情報を提供し、属性情報は、キャッシュコヒーレンシ及び緩和された順序(relaxed ordering)に関する情報を含む。「ＡＴ」は２ビットフィールドであり、ＰＣＩエクスプレスアドレストランスレーションサービスが用いられる場合にパケット内のアドレスがトランスレートされているかどうかを示す。
【００３０】
最後に「長さ」フィールドは１０ビットフィールドであり、ＴＬＰ内のペイロードの長さを示す。ペイロード長はＤＷｏｒｄで表現される。このフィールドの値が「１」の値にセットされていると、これはペイロード長が１ＤＷｏｒｄの長さであることを示す。
【００３１】
ベンダ定義のメモリ読み出しメッセージの第２のＤＷｏｒｄは、「要求側ＩＤ」フィールド、「タグ」フィールド及び固定値フィールドを含む。「要求側ＩＤ」フィールドは１６ビットフィールドであり、要求側のバス番号、デバイス番号及び機能番号を含む。「要求側ＩＤ」フィールドの内容は、構成フェーズの間に割り当てられ、そしてＰＣＩエクスプレストポロジにおける要求側を一意的に識別することが意図されている。
【００３２】
「タグ」フィールドは８ビットフィールドであり、要求を一意的に識別するために用いられる。特に、要求側は、完了を必要とするその要求側によって作られる要求の各々に対して固有の「タグ」フィールドを作成することができる。従って、関連完了ヘッダは、その関連完了ヘッダを要求側が速やかに識別し得るように、関連「要求側ＩＤ」及び「タグ」を含む。
【００３３】
ベンダ定義のメモリ読み出しメッセージの第２のＤＷｏｒｄ内の最後のフィールドは８ビットフィールドであり、その値は「０１１１１１１１」に固定されている。
【００３４】
ベンダ定義のメモリ読み出しメッセージの第３のＤＷｏｒｄは、「ＩＤによるルート」フィールド及び「ベンダＩＤ」フィールドを含む。「ＩＤによるルート」フィールドは１６ビットフィールドであり、メッセージの所定の受け取り側であるデバイスを示すルーティング情報を含む。「ベンダＩＤ」フィールドは１６ビットフィールドであり、メッセージを送っているデバイスのベンダの識別を含む。「ベンダＩＤ」はＰＣＩスペシャルインタレストグループ(PCI Special Interest Group)（ＰＣＩ−ＳＩＧ）によって割り当てられる。
【００３５】
ベンダ定義のメモリ読み出しメッセージの第４のＤＷｏｒｄは、２８ビットの不使用フィールドと４ビットのタイプフィールドとを含む。４ビットのタイプフィールドは所望のアクセスのタイプを示す。「タイプ」フィールドのための例示的な値のセットは図７Ｂに示されている。
【００３６】
最後に、ベンダ定義のメモリ読み出しメッセージの第５のＤＷｏｒｄは、３２ビットフィールドを含むペイロードであり、メモリ読み出しメッセージによってアドレスされている最中の関連メモリ空間のアドレスを示す。
【００３７】
〔メモリ書き込みのための例示的なベンダ定義のメッセージ〕
図３はベンダ定義のメッセージにおけるメモリ書き込みのための例示的なＴＬＰ定義を示している。図３に示されるように、ベンダ定義のメモリ書き込みメッセージのヘッダは、４つのＤＷｏｒｄと２つのＤＷｏｒｄペイロードとから構成される。ヘッダの第１のＤＷｏｒｄは、メモリ読み出しメッセージに対して図２に示されるのと同じフィールド及び値を含む。唯一の違いは、長さフィールドが「２」の値にセットされていることであり、これはペイロード長が２ＤＷｏｒｄの長さであることを示している。次の３つのＤＷｏｒｄは、タイプフィールドがメモリ書き込みタイプメッセージに関連付けられる値にセットされている点を除き、メモリ読み出しメッセージに対して図２に示されるのと同じである。メッセージのペイロードは２つのＤＷｏｒｄを含み、第１のＤＷｏｒｄは３２ビットのアドレスフィールドを含み、第２のＤＷｏｒｄは３２ビットのデータフィールドを含む。代替的な実施形態においては、ＴＬＰパケットは、可変長データのアドレシングをサポートするアドレシング情報を含むことができる。そのような実施形態においては、ペイロード長は、２（又はメモリ読み出しの場合には１）等のセットされた値でハードウエア組み込みされていない代わりに、データブロックに１を加えた長さにセットされる。この代替的な実施形態は、メモリ書き込み、メモリ読み出し及び完了のメッセージに適用され得る。
【００３８】
〔構成読み出しのための例示的なベンダ定義のメッセージ〕
図４はベンダ定義のメッセージにおける構成読み出しのための例示的なＴＬＰ定義を示している。図４に示されるように、ベンダ定義の構成読み出しメッセージのヘッダは、４つのＤＷｏｒｄとそれに続く１つのＤＷｏｒｄペイロードとから構成される。ヘッダの第１のＤＷｏｒｄは、メモリ読み出しメッセージに対して図２に示されるのと同じフィールド及び値を含む。メモリ読み出しメッセージと同様に、長さフィールドは「１」の値にセットされており、これはペイロード長が１ＤＷｏｒｄの長さであることを示している。次の３つのＤＷｏｒｄは、タイプフィールドが構成読み出しタイプメッセージに関連付けられる値にセットされている点を除き、メモリ読み出しメッセージに対して図２に示されるのと同じである。メッセージのペイロードは１つのＤＷｏｒｄを含み、このＤＷｏｒｄは２０ビットの予備フィールドを含み、それに続き、読み出し中のレジスタの数を示す１０ビットの「レジスタ数」フィールドがある。最後に、残りの２ビットは、２ビット予備フィールドを構成する。
【００３９】
〔構成書き込みのための例示的なベンダ定義のメッセージ〕
図５はベンダ定義のメッセージにおける構成書き込みのための例示的なＴＬＰ定義を示している。図５に示されるように、ベンダ定義の構成書き込みメッセージのヘッダは、４つのＤＷｏｒｄとそれに続く２つのＤＷｏｒｄペイロードとから構成される。ヘッダの第１のＤＷｏｒｄは、ペイロード長が２ＤＷｏｒｄの長さであることを示す「２」の値に長さフィールドがセットされている点を除き、メモリ読み出しメッセージに対して図２に示されるのと同じフィールド及び値を含む。次の３つのＤＷｏｒｄは、タイプフィールドが構成書き込みタイプメッセージに関連付けられる値にセットされている点を除き、メモリ読み出しメッセージに対して図２に示されるのと同じである。メッセージのペイロードは２つのＤＷｏｒｄを含み、第１のＤＷｏｒｄは２０ビットの予備フィールドを含み、それに続き、書き込み中のレジスタの数を示す１０ビットの「レジスタ数」フィールドがある。ペイロードの第１のＤＷｏｒｄの残りの２ビットは、２ビット予備フィールドを構成する。最後にペイロードの第２のＤＷｏｒｄは、構成書き込みメッセージの３２ビットのデータを含む。
【００４０】
〔完了のための例示的なベンダ定義のメッセージ〕
図６はベンダ定義のメッセージにおける完了のための例示的なＴＬＰ定義を示している。図６に示されるように、ベンダ定義の完了読み出しメッセージのヘッダは、４つのＤＷｏｒｄとそれに続く１つのＤＷｏｒｄペイロードとから構成される。ヘッダの第１のＤＷｏｒｄは、メモリ読み出しメッセージに対して図２に示されるのと同じフィールド及び値を含む。メモリ読み出しメッセージと同様に、長さフィールドは「１」の値にセットされており、これはペイロード長が１ＤＷｏｒｄの長さであることを示している。次の３つのＤＷｏｒｄは、タイプフィールドが完了メッセージに関連付けられる値にセットされている点を除き、メモリ読み出しメッセージに対して図２に示されるのと同じである。メッセージのペイロードは１つのＤＷｏｒｄを含み、このＤＷｏｒｄは３２ビットのデータを含む。
【００４１】
〔ベンダ定義のメッセージングアプローチのための例示的なレジストリ定義〕
図７Ａ〜図９はベンダ定義のメッセージングアプローチのサポートにおける例示的なレジストリ定義を示している。図７Ａは５つのフィールドの例示的な定義を示しており、これらのフィールドは、ここで説明される能力をサポートするデバイスを指定するリードオンリ２ビットフィールド（ＲＥＧ＿ＡＣＣＥＳＳ＿ＣＡＰＡＢＩＬＩＴＹ）と、ベンダ定義のメッセージを介してレジスタアクセスの発生を有効にする１ビットフィールド（ＲＥＧ＿ＡＣＣＥＳＳ＿ＧＥＮ＿ＥＮ）と、セットされたときに、受け取ったベンダ定義のメッセージを介してレジスタアクセスを無効にすることができる１ビットフィールド（ＲＥＧ＿ＡＣＣＥＳＳ＿ＲＣＶ＿ＤＩＳ）と、先のメッセージが既に送られていること（書き込みの場合）及びデータがアクセスされ得ること（読み出しの場合）を、「０」の値を用いて示す１ビットフィールド（ＲＥＧ＿ＡＣＣＥＳＳ＿ＤＯＮＥ）と、図７Ｂに示される例示的な定義を用いてアクセスのタイプを示す４ビットフィールド（ＲＥＧ＿ＡＣＣＥＳＳ＿ＴＹＰＥ）と、である。図８はベンダ定義のメッセージを介してレジスタアクセスのためのメモリマップされた空間におけるオフセットを提供する３２ビットフィールド（ＲＥＧ＿ＡＣＣＥＳＳ＿ＡＤＤＲＥＳＳ）の例示的な定義を示している。構成読み出し及び構成書き込みの動作の場合に対しては、レジスタオフセットを提供するために、３２ビットフィールドのうちのビット９：０のみが用いられる。図９は、ベンダ定義のメッセージを介したレジスタアクセスを用いて、メモリマップされた書き込み又は構成書き込みのためのデータを提供する３２ビットフィールド（ＲＥＧ＿ＡＣＣＥＳＳ＿ＷＲＩＴＥ＿ＤＡＴＡ）の例示的な定義を示している。読み出しデータレジスタはまた、読み出し動作の完了に際して受け取ったデータを記憶する必要がある。例示的な実施形態においては、読み出しデータレジスタは、単純に読み出し動作のために再使用される書き込みデータレジスタであってよい。代替的には、読み出しデータレジスタは、全く別のレジスタ、例えば３２ビットフィールド（ＲＥＧ＿ＡＣＣＥＳＳ＿ＲＥＡＤ＿ＤＡＴＡ）であってよい。既に述べたように、本発明の実施形態は、柔軟な長さのデータブロックへのアクセスを提供することを含む。加えて、データブロックは、レジスタロケーション又はメモリロケーションの範囲内にあってよい。
【００４２】
〔ベンダ定義のメッセージアプローチを用いる方法〕
図１０は本発明の実施形態に従うベンダ定義のＰＣＩエクスプレスメッセージアプローチの使用のための例示的な方法のフローチャート１０００を示す。図１の動作環境への参照を続けて図１０を説明する。しかし、方法１０００はその実施形態には限定されない。方法１０００はステップ１０１０で始まる。
【００４３】
ステップ１０１０では、ベンダ定義のメッセージに対してソースでの資源アクセスを有効にする。例示的な実施形態においては、ＰＣＩＥ＿ＲＥＧ＿ＡＣＣＥＳＳ＿ＣＮＴＬレジスタのＲＥＧ＿ＡＣＣＥＳＳ＿ＧＥＮ＿ＥＮフィールドを「１」の値にセットすることにより、アクセスが有効にされ得る。
【００４４】
ステップ１０２０では、先のベンダ定義のメッセージによる先のアクセスが確実にクリアされたことをチェックする。例示的な実施形態においては、そのようなチェックは、ＰＣＩＥ＿ＲＥＧ＿ＡＣＣＥＳＳ＿ＣＮＴＬのＲＥＧ＿ＡＣＣＥＳＳ＿ＤＯＮＥフィールドが「０」にセットされているかを調べてチェックすることにより行うことができる。
【００４５】
ステップ１０３０では、ソースに関連付けられる適切なロケーションに宛先資源オフセットが書き込まれる。例示的な実施形態においては、宛先資源オフセットは、ＰＣＩＥ＿ＲＥＧ＿ＡＣＣＥＳＳ＿ＡＤＤＲレジスタ内に書き込まれる。
【００４６】
ステップ１０４０では、メモリ書き込みベンダメッセージ又は構成書き込みベンダメッセージに対して、ソースに関連付けられる適切なロケーションにデータを書き込む。例示的な実施形態においては、ＰＣＩＥ＿ＲＥＧ＿ＡＣＣＥＳＳ＿ＤＡＴＡレジスタ内のＲＥＧ＿ＡＣＣＥＳＳ＿ＷＲＩＴＥ＿ＤＡＴＡロケーション内にデータが書き込まれる。
【００４７】
ステップ１０５０では、所望の宛先アクセスのタイプをセットする。例示的な実施形態では、ＰＣＩＥ＿ＲＥＧ＿ＡＣＣＥＳＳ＿ＣＮＴＬ内のＲＥＧ＿ＡＣＣＥＳＳ＿ＴＹＰＥフィールドを所望の宛先アクセスにセットする。タイプフィールドが書き込まれると、ベンダ定義のメッセージが送られる。
【００４８】
ステップ１０６０では、ベンダ定義のメッセージを送ることの完了を示すメッセージ状態を待機する。例示的な実施形態では、ＰＣＩＥ＿ＲＥＧ＿ＡＣＣＥＳＳ＿ＣＮＴＬレジスタのＲＥＧ＿ＡＣＣＥＳＳ＿ＤＯＮＥ値が「０」の値にセットされるまで待機することができる。
【００４９】
ステップ１０７０では、ベンダメッセージを介したメモリ読み出し又は構成読み出しの動作であった場合に、適切なロケーションからデータを読み出す。例示的な実施形態では、ロケーションＰＣＩＥ＿ＲＥＧ＿ＡＣＣＥＳＳ＿ＤＡＴＡからデータが読み出され得る。
【００５０】
ステップ１０８０では、ステップ１０３０に戻って次の宛先資源アクセスを続ける。
【００５１】
ステップ１０９０では、更なる資源要求アクセスがない場合に、ベンダ定義のメッセージを介して資源アクセスを無効にする。例示的な実施形態では、ＰＣＩＥ＿ＲＥＧ＿ＡＣＣＥＳＳ＿ＣＮＴＬ内のＲＥＧ＿ＡＣＣＥＳＳ＿ＧＥＮ＿ＥＮを「０」の値にセットすることにより、資源アクセスが無効にされ得る。
【００５２】
ベンダ定義のメッセージの方法を介してこの資源アクセス要求をソフトウエアが用いる前に、ソフトウエアは、通信リンクの反対側がこの特徴をサポートしていることを決定する必要がある。このことは、ソフトウエアがこの方法を用いて構成空間アドレス０（ベンダ／デバイスＩＤ）の読み出しを行うことによりなされてよい。これにより、オフセット０をレジスタするタイプ０×２（即ち構成読み出し）のベンダ定義のメッセージが反対側へと送られることになる。この要求が成功し且つソフトウエアがＰＣＩＥ＿ＲＥＧ＿ＡＣＣＥＳＳ＿ＤＡＴＡ内のベンダ／デバイスＩＤを読み出すことができる場合には、この方法はサポートされ、次いでソフトウエアはこの方法を用いることができる。ソフトウエアにおいてセットされるタイムアウト値の後にもＰＣＩＥ＿ＲＥＧ＿ＡＣＣＥＳＳ＿ＣＮＴＬ．ＲＥＧ＿ＡＣＣＥＳＳ＿ＤＯＮＥ＝１である場合には、この方法はサポートされず、この方法を用いることはできない。例示的な実施形態では、このステップはステップ１０１０に続いて行われ得る。
【００５３】
前述したように、ＰＣＩエクスプレス仕様のように、通信リンクの反対側がこのメカニズムをサポートしておらず且つベンダ定義のメッセージを理解しない場合には、メッセージは受け取り側で静かに廃棄される必要がある。上述の方法は、例えば図１１に示されるような多重エンドデバイスを含むより複雑なトポロジに容易に拡張され得る。例えば、図１１におけるルート制御器、全てのスイッチ及びエンドポイントが、メモリアクセスに対するメッセージベースのアプローチをサポートする。
【００５４】
尚、これらのベンダ定義のメッセージは受け取り側で終端し、スイッチによって転送されない（即ちルーティング［２：０］＝１００ｂ）。例えば図１１において、ＥＰ０がＳＷ０のレジスタにアクセスする必要がある場合には、ＥＰ０は多重ステッププロセスでこれを行う必要がある。例えばＥＰ０がＳＷ０へのメモリ書き込みを行うためには、ベンダ定義のメッセージを介してメモリ書き込みをＳＷ１の上流へ送るようにＥＰ０をプログラムする。ＥＰ０からのこの書き込みは、ＳＷ１のＰＣＩＥ＿ＲＥＧ＿ＡＣＣＥＳＳ＊レジスタをプログラムし、これらレジスタは次いで、ベンダ定義のメッセージを介してメモリ書き込みをＳＷ０の上流へ送るようにＳＷ１をトリガーすることになる。そのような単一ステップの伝搬モードは効率的でない。代替的でより効率的な多重ステップの実施形態においては、メッセージはＩＤによりルートされ得る（即ちルーティング［２：０］＝０１０ｂ）。そのようなルーティングを用いることにより、メッセージはそれらの最終的な宛先へとスイッチを介して伝搬することができる。これら２つのベンダ伝搬方法のどちらが用いられるべきかは、追加的なレジスタロケーション（例えばＲＥＧ＿ＡＣＣＥＳＳ＿ＲＯＵＴＥ＿ＡＰＰＲＯＡＣＨ）が示す必要がある。
【００５５】
関連分野を含めた当業者であれば、本発明の実施形態の範囲はこの説明において提供される特定の例示的なエンコーディングに限定されないことを認識するはずである。特に、本発明の実施形態は、ＰＣＩエクスプレストポロジにおいて低減されたヘッダアプローチを実装する代替的なエンコーディングと共に用いられ得る。また、本発明の実施形態は、ＰＣＩエクスプレス規格の将来のバージョンを含むバージョンと共に用いられ得る。加えて、本発明の実施形態は、現在及び将来の他のデータトランザクション規格にも適用可能である。
【００５６】
本発明は、ここに説明される以外のソフトウエア、ハードウエア及びオペレーティングシステムの実装と共に実施され得る。ここに説明される機能を行うのに適する任意のソフトウエア、ハードウエア及びオペレーティングシステムの実装が用いられ得る。
【００５７】
特定の機能の実装及びそれらの関係性を示す機能構築ブロックを補助として、本発明が上述のように説明されてきた。これらの機能構築ブロックの境界は、説明の便宜上ここでは適宜画定されてきた。特定の機能及びそれらの関係性が適切に実行される限りにおいて、代替的な境界が画定され得る。
【００５８】
特定の実施形態の上述した説明は、本発明の一般的性質を十分に明らかにするであろうから、他者は、当業者における知識を適用することによって、過度の実験なしに、本発明の一般的概念から逸脱することなく、そのような特定の実施形態を容易に修正し且つ／又は種々の応用に適応させることができる。従って、そのような適応及び修正は、ここに提示されている教示及び指針に基いて、開示されている実施形態と均等なものの意味及び範囲の範疇にあることが意図されている。ここでの用語等は、説明を目的としたものであって限定を目的としていないことが理解されるべきであり、本出願書類の用語等は教示及び指針の下で当業者によって解釈されるべきである。
【００５９】
〔結論〕
本発明の例示的な実施形態が提示されてきた。本発明はこれらの例に限定されない。これらの例は例示の目的でここに提示されており、限定の目的ではない。ここに含まれる教示に基く代替案（ここに説明されるものに対する均等なもの、拡張、変形、改変等を含む）が関連分野を含む当業者には明らかなはずである。そのような代替案は本発明の範囲及び精神に包含される。
【００６０】
本発明の広さ及び範囲は、上述したいかなる例示的な実施形態によっても限定されるべきではなく、以下の特許請求の範囲及びそれらと均等なものに従ってのみ画定されるべきである。
【図１】
0005893020.tif 000002
【図２】
0005893020.tif 000003
【図３】
0005893020.tif 000004
【図４】
0005893020.tif 000005
【図５】
0005893020.tif 000006
【図６】
0005893020.tif 000007
【図７Ａ】
0005893020.tif 000008
【図７Ｂ】
0005893020.tif 000009
【図８】
0005893020.tif 000010
【図９】
0005893020.tif 000011
【図１０】
0005893020.tif 000012
【図１１】
0005893020.tif 000013