(57)【要約】【課題】  読み取りのパフォーマンスを改善するためのシステム、方法、および装置を提供する。【解決手段】  リード完了内にオーダリング属性を設定することによって、リード完了のオーダリングを緩和する方法およびシステムが提供される。緩和されたオーダリングによって、リード完了が待機中の書き込みを迂回することが可能になる。【選択図】図３
2010097615.tif 000002
【特許請求の範囲】
【請求項１】
リード完了のオーダリング属性を緩和することが可能かどうかを決定するために形成され、さらに、適切な場合には、前記オーダリング属性を緩和するために形成されるトランザクション・オーダリング・メカニズムを含み、
リラックス・オーダリング属性によって、前記リード完了は、待機中の書き込みを迂回することができる、
ことを特徴とするデータ処理システム。
【請求項２】
前記トランザクション・オーダリング・メカニズムは、完了ヘッダ内にリラックス・オーダリングのビットを設定するために形成され、さらに、迂回は、ペリフェラル・コンポーネント・インターコネクト内で生じることを特徴とする請求項１記載のシステム。
【請求項３】
前記トランザクション・オーダリング・メカニズムは、完了ヘッダ内にリラックス・オーダリングのビットを設定するために形成され、さらに、迂回は、デスクトップ・マネジメント・インターフェイス内で生じることを特徴とする請求項１記載のシステム。
【請求項４】
前記システムは、第１エンドポイント装置を含み、前記第１エンドポイント装置は、前記トランザクション・オーダリング・メカニズムを含むことを特徴とする請求項１記載のシステム。
【請求項５】
前記トランザクション・オーダリング・メカニズムは、トランザクション特定要求に関する前記第１エンドポイント装置の認識に基づいて、前記オーダリング属性を緩和するために採用されることを特徴とする請求項４記載のシステム。
【請求項６】
前記システムは、追加のエンドポイント装置を含み、さらに、リラックス・ビットの設定によって、前記リード完了は、前記追加のエンドポイント装置から待機中の書き込みを迂回することができることを特徴とする請求項４記載のシステム。
【請求項７】
ルート・コンプレックス内に集積されたエンドポイント装置をさらに含むことを特徴とする請求項１記載のシステム。
【請求項８】
追加のエンドポイント装置をさらに含むことを特徴とする請求項７記載のシステム。
【請求項９】
前記追加のエンドポイント装置の少なくとも１つは、前記ルート・コンプレックス内に位置することを特徴とする請求項８のシステム。
【請求項１０】
リード完了が１またはそれ以上の待機中の書き込みを迂回することができるために、前記リード完了のオーダリング属性を緩和することができるかどうかを決定する段階と、
前記リード完了が１またはそれ以上の待機中の書き込みを迂回することができるために、前記リード完了の前記オーダリング属性を設定する段階と、
から構成されることを特徴とする方法。
【請求項１１】
第１エンドポイント装置に対する前記リード完了は、前記１またはそれ以上の待機中の書き込みに関連しているかどうかを決定する段階をさらに含むことを特徴とする請求項１０記載の方法。
【請求項１２】
前記オーダリング属性を設定する段階は、完了ヘッダ内にリラックス・オーダリングのビットを設定する段階を含み、迂回は、ペリフェラル・コンポーネント・インターコネクト内で生じることを特徴とする請求項１０記載の方法。
【請求項１３】
前記オーダリング属性を設定する段階は、完了ヘッダ内にリラックス・オーダリングのビットを設定する段階を含み、迂回は、デスクトップ・マネジメント・インターフェイス内で生じることを特徴とする請求項１０記載の方法。
【請求項１４】
リード完了のオーダリング属性が緩和できるかどうかを決定する段階は、トランザクション特定要求に関する前記第１エンドポイント装置の認識に基づくことを特徴とする請求項１０記載の方法。
【請求項１５】
前記１またはそれ以上の待機中の書き込みを迂回する前記リード完了をさらに含むことを特徴とする請求項１２記載の方法。
【請求項１６】
前記１またはそれ以上の待機中の書き込みを迂回する前記リード完了をさらに含むことを特徴とする請求項１３記載の方法。
【請求項１７】
前記１またはそれ以上の待機中の書き込みは、１またはそれ以上の追加のエンドポイント装置からのものであることを特徴とする請求項１１の方法。
【請求項１８】
前記少なくとも１またはそれ以上の追加のエンドポイント装置は、ルート・コンプレックス内に集積されることを特徴とする請求項１７の方法。
【請求項１９】
前記リード要求を、中央処理装置から前記第１エンドポイント装置へ送る段階であって、前記第１エンドポイント装置は前記ルート・コンプレックス内に集積される、段階と、
前記リード要求を、前記第１エンドポイント装置からメイン・メモリへ送る段階と、
をさらに含み、
前記オーダリング属性は、前記リード完了が前記少なくとも１つの追加の集積装置からの前記１またはそれ以上の待機中の書き込みを迂回することができるように常に設定される、
ことを特徴とする請求項１８記載の方法。
【請求項２０】
前記リード要求を、中央処理装置から前記第１エンドポイント装置へ送る段階であって、前記第１エンドポイント装置は前記ルート・コンプレックス内に集積される、段階と、
前記リード要求を、前記第１エンドポイント装置からメイン・メモリへ送る段階と、
をさらに含み、
前記オーダリング属性は、前記リード完了が追加の非集積装置からの前記１またはそれ以上の待機中の書き込みを迂回することができるように常に設定されている、
ことを特徴とする請求項１８記載の方法。
【請求項２１】
前記リード要求を、中央処理装置から前記第１エンドポイント装置へ送る段階であって、前記第１エンドポイント装置は前記ルート・コンプレックス内に集積されていない、段階と、
前記リード要求を、前記第１エンドポイント装置からメイン・メモリへ送る段階と、
をさらに含み、
前記オーダリング属性は、前記リード完了が前記少なくとも１つの追加の集積装置からの前記１またはそれ以上の待機中の書き込みを迂回することができるように常に設定されている、
ことを特徴とする請求項１８記載の方法。
【請求項２２】
前記リード要求を、中央処理装置から前記第１エンドポイント装置へ送る段階であって、前記第１エンドポイント装置は前記ルート・コンプレックス内に集積されていない、段階と、
前記リード要求を、前記第１エンドポイント装置からメイン・メモリへ送る段階と、
をさらに含み、
前記オーダリング属性は、前記リード完了が追加の非集積装置からの前記１またはそれ以上の待機中の書き込みを迂回することができるように常に設定されている、
ことを特徴とする請求項１８記載の方法。
【請求項２３】
リード完了のオーダリング属性は、前記リード完了が１またはそれ以上の待機中の書き込みを回避することができるために緩和することができるかどうかを決定するための手段と、
前記１またはそれ以上の待機中の書き込みの迂回することができるために前記リード完了の前記オーダリング属性を設定する手段と、
から構成されることを特徴とする装置。
【請求項２４】
前記オーダリング属性を設定するための前記手段は、完了ヘッダ内にリラックス・オーダリングのビットを設定するための手段を含むことを特徴とする請求項２３記載の装置。
【請求項２５】
前記装置は、ペリフェラル・コンポーネント・インターコネクトであることを特徴とする請求項２３記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施例は、一般にトランザクションのオーダリングに関し、特に、ストリクト・オーダリングの修正を許可するシステムおよび方法に関する。
【背景技術】
【０００２】
ペリフェラル・コンポーネント・インターコネクト(Peripheral Component Interconnect)（ＰＣＩ）は、インダストリー・スタンダード・アーキテクチャ(Industry Standard Architecture)（ＩＳＡ）バスの代替として１９９２年に開発された、第２世代のパラレル・バス・アーキテクチャである。ＰＣＩにおいて、全ての装置は、同一の双方向３２ビット（または６４ビット）パラレル信号パスを共有する。ＰＣＩバスは、ＩＳＡバスと比べて、プロセッサの独立、バッファによる分離、バスマスタ、および真のプラグ・アンド・プレイ動作を含む多くの利点をもたらした。ＰＣＩ Ｅｘｐｒｅｓｓ（ＰＣＩｅ）は、ＰＣＩバスの代替として設計された第３世代の汎用シリアル出力／入力（Ｉ／Ｏ）インターコネクトである。ＰＣＩｅは、バスというよりも、むしろレーンと呼ばれる２点間シリアル・リンクの周囲に構築される。
【０００３】
ＰＣＩ Ｅｘｐｒｅｓｓの２点間シリアル・リンク・アーキテクチャは、分散型マルチプロセッサ構造モデルを経由する分散処理に好適である。分散型プロセッサは、一般に、データ・パケット処理機能を実行するために最適化される。パフォーマンスを改善するために、キャッシングに極度に依存する汎用ＣＰＵとは異なり、分散型プロセッサは、パケット処理におけるローカリティが無く、さらに、パケットを高速のデータ速度で処理しつつ処理遅延を低減するための革新的構造を設計者に創作させる後押しをしてきた、高性能Ｉ／Ｏのために必要である。
【０００４】
現在、ＰＣＩｅおよび類似のインターコネクト内のトランザクション・オーダリング属性は、リクエスタによって設定されなければならない。ホストＣＰＵは一般的な資源であるので、それらは、典型的には、実行しているアクティビティの特定の要求に従ってオーダリング属性を設定するための能力を有さず、最低の共通レベルまで落とさなければならず、それによってパフォーマンスが低くなる。ＣＰＵからＩＯへの読み取り(リード：read)は、ＣＰＵコアが結果を待つために機能停止（ストール）する可能性があるので、多くの場合、パフォーマンスが最も重視されるシステム・トランザクションである。したがって、このような読み取りのパフォーマンスの改善は、ＣＰＵ資源を解放することによって他のより有用な作業のためにシステム全体のパフォーマンスを改善することに直結する。
【図面の簡単な説明】
【０００５】
本発明は、以下の記述および本発明の実施例を示すために使用される添付図面を参照することにより、最もよく理解されるであろう。
【図１】リラックス・オーダリング属性を示すＰＣＩｅ要求ヘッダの概要図である。
【図２】リラックス・オーダリング属性を示すＰＣＩｅ完了ヘッダの概要図である。
【図３】本発明の一実施例の概要図である。
【図４】本発明の他の実施例の概要図である。
【発明を実施するための最良の形態】
【０００６】
本明細書および特許請求の範囲において使用されるように、英文において単数を示す「ａ」、「ａｎ」および「ｔｈｅ」は、文脈において明らかに示されない限り、複数も含む。「ルート・コンプレックス」(root complex)（「ＲＣ」）は、中央処理装置（「ＣＰＵ」または「プロセッサ」）およびメモリをＰＣＩ Ｅｘｐｒｅｓｓのスイッチ構造に結合するためのＰＣＩ Ｅｘｐｒｅｓｓ装置である。ルート・コンプレックスは、プロセッサに代わってトランザクション要求を生成する。「リクエスタ」(requester)は、要求を出すあらゆる装置である。「コンプリータ」(completer)は、要求を処理するあらゆるエンティティ（実体）である。「中間装置」(intermediate)は、リクエスタとコンプリータとの間にある、スイッチのようなあらゆる装置である。典型的には、中間装置は単に要求を転送させるだけである。本明細書および特許請求の範囲において使用されるように、「上流」(upstream)とは、ルート・コンプレックスに向かう流れを示す。「下流」(downstream)とは、ルート・コンプレックスから遠ざかる流れを示す。「領域」(region)は、アドレスまたはアドレスの範囲によって定義されたメモリの一部である。例えば、ある領域はその装置に対する命令を格納するために使用され、他の領域はその装置によって生成されまたは使用されるデータのために用いるというように、装置は異なる動きを要求することもできる。
【０００７】
本発明の実施例は、装置がトランザクション特定要求(transaction-specific request)を認識することに基づいて、ＩＯ装置に完了(complete)のオーダリング属性を修正させることによって、ＣＰＵからＩＯ装置への読み取りのために、不必要に厳格なオーダリングのために失われたパフォーマンスのいくらかをどのように回復することができるかについて説明する。ストリクト・オーダリング(strict ordering)における課題の一例として、最初は完了までに２μｓを要した読み取りが１μｓに改善された場合、この１μｓの差を、有用な仕事をするためにコアへ「返還」できると考えると、それは、コアが何千もの命令を実行するのに十分な時間となる。現行システムでは、しばしば、ＣＰＵからＩＯ装置への読み取りに０．６μｓから数μｓの遅延を生じる。大規模システムでは、従来のオーダリングはＣＰＵからＩＯ装置への読み取りにおいて４μｓの遅延が生じる。この遅延の多くは、完了に書き込み(ライト：write)の迂回を禁じている従来のオーダリング要求によって引き起こされる。ＩＯ装置からメイン・メモリへ書き込むトラフィックは多量である場合が多いので、ＣＰＵへのリード完了は、単にこれらの多量の書き込みによって引き起こされたキューイング遅延によってしばしば遅延する。
【０００８】
ＰＣＩｅおよび類似のインターコネクトは、最適化されたハンドリングを可能とするために、オーダリング属性をトランザクションに関連させる。例えば、ＰＣＩ／ＰＣＩｅにおいて、デフォルトのオーダリング・ルールは、ＰＣＩプロデューサ／コンシューマ・オーダリング・モデルの正確性要求として、リード完了が同一方向に流れる、以前に送出された全ての書き込みのために待機することを要求する。しかしながら、このモデルは、ほとんどの場合、過度に保守的である。例えば、ＩＯ装置の状態を記述するデータ構造を読み取る前に、ＩＯ装置の書き込みをメイン・メモリにフラッシングすることが通常必要である。装置の書き込みをフラッシングすることは、ＣＰＵに装置から読み取らせることによりしばしば行われる。しかしながら、一旦フラッシングの読み取りが完了すると、典型的には、装置状態の追加の読み取りは、上流の書き込みに対してオーダされる必要はない。さらに、ＰＣＩ／ＰＣＩｅのデフォルト・オーダリング・ルールがこの行動を要求したとしても、無関係な装置からの上流の書き込みに対して、ＣＰＵの読み取りをオーダすることは通常必要ではない。
【０００９】
典型的には、要求されるオーダリング属性を示すために、ホストＣＰＵがどのようにリード要求をマークすべきかを知る方法はない。しかしながら、ＩＯ装置は、一般に、どの領域が従来のオーダリングを要求するか、および、どの領域が従来のオーダリングを要求しないかを認識している。オーダリング要求は、ある装置と他の装置、装置内のあるレジスタと同一装置内の他のレジスタ、および、レジスタがどのようにアクセスされるかに基づいて１つのレジスタに対してさえ、非常に多様である。オーダリング要求に関する知識は、理論上、ホスト上で実行されているデバイス・ドライバのソフトウェアによって通信することが可能であるが、最近のアーキテクチャＣＰＵは、これを行なうためのメカニズムを提供していない。しかしながら、一般に、ＩＯ装置自体は、オーダリング要求に関する知識を有している。しかしながら、ＩＯ装置は、ＣＰＵを装置の要求にタグ付けすることができない−このトランザクションの一部は、いくつかの他のメカニズムが示すために使用されない限り、最も保守的なオーダリング要求が該当するものと仮定して処理されなければならない。
【００１０】
多くの場合、完了で配置されたオーダリング要求は、著しい機能停止（ストール）を引き起こす。しかしながら、本発明のシステムおよび方法によって、オーダリング要求は、適切な箇所で、オーダリング要求を緩和するのためにＩＯ装置によってタグを付すことができる。オーダリング要求は、実行中のアーキテクチャに依存する。本発明の１つの実施例では、そのアーキテクチャはＰＣＩｅである。ＰＣＩｅ装置は、既に、リラックス・オーダリング（ＲＯ：Relaxed Ordering）と呼ばれるオーダリング属性へのアクセスを有する。
【００１１】
図１は、ＰＣＩｅ要求ヘッダ内のＲＯビットの位置を示す。典型的には、ＣＰＵがどの要求によってＲＯビットを設定することができるかを知るための情報を提供するメカニズムが無い限り、ＲＯビットは要求内で０に設定される。既存のＰＣＩｅルールに従って、ＲＯビット（および関連するオーダリング・インプリケーション）は、コンプリータによって、要求から完了へ単純にコピーされる。図２は、ＰＣＩｅ完了ヘッダ内の対応するリラックス・オーダリング（ＲＯ）ビットを示す。
【００１２】
今日のＰＣＩ−ｘ／ＰＣＩｅにおいて、ＲＯビットは、それが対応する要求内で設定された場合にのみ、完了ヘッダ内に設定される。どの要求がＲＯであるとマークすることができるか、またはどれができないかを装置が「知っている」と仮定されるので、このポリシーは、メイン・メモリへの装置リードのために意味をなす。本発明の実施例は、装置からのＣＰＵリードが、装置によって戻された完了のためにＲＯとマークすることができることを認識する。これによって、完了は、メモリへの無関係な装置ライトを迂回することができる。
【００１３】
図３は、リラックス・オーダリング属性（この場合、ＰＣＩ／ＰＣＩｅ完了のＲＯビット）が、ＩＯ装置によってどのように設定されるのかという一例を示す。この例において、システム１００は、３つのＰＣＩ／ＰＣＩｅエンドポイント１，２，３を含む。しかしながら、システム１００は、任意の数のＰＣＩ／ＰＣＩｅエンドポイントを有することができる。最初の２つのＰＣＩ／ＰＣＩｅエンドポイント１，２は、ＰＣＩｅインターコネクト１２２を経由してスイッチ１０８に接続される。スイッチ１０８は、他のＰＣＩｅインターコネクト１２２を経由してルート・コンプレックス１１０に接続される。第３のＰＣＩ／ＰＣＩｅエンドポイント３は、ＰＣＩｅインターコネクト１２２を経由してルート・コンプレックス１１０に直接接続される。ルート・コンプレックス１１０は、出力／入力コントローラ・ハブ・コントローラ（ＩＣＨ）１１２、メモリ・コントローラ・ハブ（ＭＣＨ）１１４、メイン・メモリ１１６、およびＣＰＵ１１８を含む。入力／出力コントローラ・ハブ・コントローラ（ＩＣＨ）１１２は、デスクトップ・マネジメント・インターフェイス（ＤＭＩ）１２０を経由してメモリ・コントローラ・ハブ（ＭＣＨ）１１４に接続される。
【００１４】
本実施例では、エンドポイント２，３は、メイン・メモリ１１６にデータを書き込んでいる。これらの書き込みは、エンドポイント１のアクティビティとは無関係である。ＣＰＵコア１１８は、エンドポイント１から読み取りを行っている。従来のＰＣＩオーダリング・ルールは、それらの書き込みが、読み取りデータと関係するであろうという（過度に保守的な）仮定の下に、メモリへのその書き込みの迂回を完了することを禁止する。この行動は、ＰＣＩプロダクタ／コンシューマ・モデルによって要求される。典型的には、エンドポイント１は、ＣＰＵによって読み取られるデータが、メモリへの未処理の書き込みに関係しているかどうかを「知って」おり、そして、未処理の書き込みと関係がある場合は、リード完了に対してＲＯを示さないであろう。しかしながら、ほとんどの場合は、エンドポイント１は、その読み取りはいずれの未処理の書き込みにも関係しないことを「知って」おり、そして、その場合は、エンドポイント１は、ＲＯのための完了を差し支えなくマークすることができる。
【００１５】
図４は、アドレス指定装置がルート・コンプレックス１１０に集積されている、本発明の別の実施例を示す。システム２００は、入力／出力コントローラ・ハブ・コントローラ（ＩＣＨ）１１２に接続された、２つの集積されたエンドポイント１２４，１２６を含む。入力／出力コントローラ・ハブ・コントローラ（ＩＣＨ）１１２は、デスクトップ・マネジメント・インターフェイス（ＤＭＩ）１２０を経由してメモリ・コントローラ・ハブ（ＭＣＨ）１１４に接続される。メモリ・コントローラ・ハブ（ＭＣＨ）１１４は、ＣＰＵ１１８およびメイン・メモリ１１６に接続される。本実施例は、単一のＰＣＩ／ＰＣＩｅエンドポイント１を含む。しかしながら、システム２００は、任意の数の集積されたアドレス指定装置１２４，１２６またはＰＣＩ／ＰＣＩｅエンドポイント１を有することができる。
【００１６】
多くの場合、集積されたアドレス指定装置１２４，１２６は、非常によく定義された方法で使用され、そして、完了オーダリング・リラクゼーションがいつ受理可能であるかを決定するために使用されるメカニズムを単純化することができる。完了オーダリングの特定の処理は、ＰＣＩｅのＲＯ要求にならう必要はないことに注意すべきである。すなわち、本発明の他の実施例は、所望のコスト／利益に従って、より単純化またはより複雑化することができる。
【００１７】
図４は、完了オーダリング・リラクゼーション・スキームに関係するルート・コンプレックスの集積装置を具備するシステムを示す。図４に示されたシステムでは、以下のポリシーまたは他の類似のポリシーを実行することができる。
・集積装置からのＣＰＵリードは、他の集積装置からメイン・メモリへの書き込みに対するオーダリング要求を有しないことを認識すること。
・集積装置からのＣＰＵリードは、非集積装置からメイン・メモリへの書き込みに対するオーダリング要求を有しないことを認識すること。
・非集積装置からのＣＰＵリードは、他の集積装置からメイン・メモリへの書き込みに対するオーダリング要求を有しないことを認識すること。
・非集積装置からのＣＰＵリードは、他の非集積装置からメイン・メモリへの書き込みに対するオーダリング要求を有しないことを認識すること。
【００１８】
上記の例は、ＰＣＩ／ＰＣＩｅのＲＯ属性によって示された。しかしながら、本発明はＰＣＩ／ＰＣＩｅのＲＯに制限されない。より一般的な場合には、オーダリング属性がＲＯと異なってもよい。さらに、オーダリング属性の表現方法が変わってもよい。完了オーダリングがデフォルトの行動から安全に修正されることができるかどうかを決定するための知識をコンプリータが有することで十分である。加えて、上記の例は、上流の書き込みに対するオーダリングに関して示された。しかしながら、システムは対称的である。すなわち、オーダリング属性は、下流の書き込みに対しても同様に、緩和させるように変更することができる。
【００１９】
本発明の実施例は、コンピュータ・システムの広範な配列に望ましいパフォーマンスの向上を提供する。旧資産のハードウェアおよびソフトウェアに対するサポートに関連する要求は、オーダリング・リラクゼーションの実行を非常に困難にさせるので、ＰＣコンパチブルのアーキテクチャ・システムは、特に制約される。しかしながら、上述のメカニズムは、ＰＣ環境内でよく動作する。
【００２０】
本発明がいくつかの実施例に関して記述されたが、当業者であれば、本発明は、記載された本発明の実施例に制限されていないことを理解し、また、本発明は、添付された請求項の精神および範囲内で修正および変更して実行することができることを認識するであろう。したがって、本記述は、制限するものではなく、例示であるとみなされる。
【符号の説明】
【００２１】
１００，２００  システム
１０８  スイッチ
１１０  ルート・コンプレックス
１１４  メモリ・コントローラ・ハブ（ＭＣＨ）
１１６  メイン・メモリ
１１８  ＣＰＵ
１２０  デスクトップ・マネジメント・インターフェイス（ＤＭＩ）
１２２  ＰＣＩｅインターコネクト
１２４，１２６  アドレス指定装置
【図１】
2010097615.tif 000003
【図２】
2010097615.tif 000004
【図３】
2010097615.tif 000005
【図４】
2010097615.tif 000006