JP6141379B2 - トランザクション属性を修正するためのメモリ領域オーダリング要求に関するコンプリータ知識の使用 - Google Patents

トランザクション属性を修正するためのメモリ領域オーダリング要求に関するコンプリータ知識の使用 Download PDF

Info

Publication number
JP6141379B2
JP6141379B2 JP2015201103A JP2015201103A JP6141379B2 JP 6141379 B2 JP6141379 B2 JP 6141379B2 JP 2015201103 A JP2015201103 A JP 2015201103A JP 2015201103 A JP2015201103 A JP 2015201103A JP 6141379 B2 JP6141379 B2 JP 6141379B2
Authority
JP
Japan
Prior art keywords
packet
completion
ordering
transaction
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015201103A
Other languages
English (en)
Other versions
JP2016033823A (ja
Inventor
ハーリマン,デイビッド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2016033823A publication Critical patent/JP2016033823A/ja
Application granted granted Critical
Publication of JP6141379B2 publication Critical patent/JP6141379B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Systems (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)
  • Bus Control (AREA)
  • Power Sources (AREA)

Description

本発明の実施例は、一般にトランザクションのオーダリングに関し、特に、ストリクト・オーダリングの修正を許可するシステムおよび方法に関する。
ペリフェラル・コンポーネント・インターコネクト(Peripheral Component Interconnect)(PCI)は、インダストリー・スタンダード・アーキテクチャ(Industry Standard Architecture)(ISA)バスの代替として1992年に開発された、第2世代のパラレル・バス・アーキテクチャである。PCIにおいて、全ての装置は、同一の双方向32ビット(または64ビット)パラレル信号パスを共有する。PCIバスは、ISAバスと比べて、プロセッサの独立、バッファによる分離、バスマスタ、および真のプラグ・アンド・プレイ動作を含む多くの利点をもたらした。PCI Express(PCIe)は、PCIバスの代替として設計された第3世代の汎用シリアル出力/入力(I/O)インターコネクトである。PCIeは、バスというよりも、むしろレーンと呼ばれる2点間シリアル・リンクの周囲に構築される。
PCI Expressの2点間シリアル・リンク・アーキテクチャは、分散型マルチプロセッサ構造モデルを経由する分散処理に好適である。分散型プロセッサは、一般に、データ・パケット処理機能を実行するために最適化される。パフォーマンスを改善するために、キャッシングに極度に依存する汎用CPUとは異なり、分散型プロセッサは、パケット処理におけるローカリティが無く、さらに、パケットを高速のデータ速度で処理しつつ処理遅延を低減するための革新的構造を設計者に創作させる後押しをしてきた、高性能I/Oのために必要である。
現在、PCIeおよび類似のインターコネクト内のトランザクション・オーダリング属性は、リクエスタによって設定されなければならない。ホストCPUは一般的な資源であるので、それらは、典型的には、実行しているアクティビティの特定の要求に従ってオーダリング属性を設定するための能力を有さず、最低の共通レベルまで落とさなければならず、それによってパフォーマンスが低くなる。CPUからIOへの読み取り(リード:read)は、CPUコアが結果を待つために機能停止(ストール)する可能性があるので、多くの場合、パフォーマンスが最も重視されるシステム・トランザクションである。したがって、このような読み取りのパフォーマンスの改善は、CPU資源を解放することによって他のより有用な作業のためにシステム全体のパフォーマンスを改善することに直結する。
米国特許出願公開第2007/0130372号明細書
本発明は、以下の記述および本発明の実施例を示すために使用される添付図面を参照することにより、最もよく理解されるであろう。
リラックス・オーダリング属性を示すPCIe要求ヘッダの概要図である。 リラックス・オーダリング属性を示すPCIe完了ヘッダの概要図である。 本発明の一実施例の概要図である。 本発明の他の実施例の概要図である。
本明細書および特許請求の範囲において使用されるように、英文において単数を示す「a」、「an」および「the」は、文脈において明らかに示されない限り、複数も含む。「ルート・コンプレックス」(root complex)(「RC」)は、中央処理装置(「CPU」または「プロセッサ」)およびメモリをPCI Expressのスイッチ構造に結合するためのPCI Express装置である。ルート・コンプレックスは、プロセッサに代わってトランザクション要求を生成する。「リクエスタ」(requester)は、要求を出すあらゆる装置である。「コンプリータ」(completer)は、要求を処理するあらゆるエンティティ(実体)である。「中間装置」(intermediate)は、リクエスタとコンプリータとの間にある、スイッチのようなあらゆる装置である。典型的には、中間装置は単に要求を転送させるだけである。本明細書および特許請求の範囲において使用されるように、「上流」(upstream)とは、ルート・コンプレックスに向かう流れを示す。「下流」(downstream)とは、ルート・コンプレックスから遠ざかる流れを示す。「領域」(region)は、アドレスまたはアドレスの範囲によって定義されたメモリの一部である。例えば、ある領域はその装置に対する命令を格納するために使用され、他の領域はその装置によって生成されまたは使用されるデータのために用いるというように、装置は異なる動きを要求することもできる。
本発明の実施例は、装置がトランザクション特定要求(transaction-specific request)を認識することに基づいて、IO装置に完了(complete)のオーダリング属性を修正させることによって、CPUからIO装置への読み取りのために、不必要に厳格なオーダリングのために失われたパフォーマンスのいくらかをどのように回復することができるかについて説明する。ストリクト・オーダリング(strict ordering)における課題の一例として、最初は完了までに2μsを要した読み取りが1μsに改善された場合、この1μsの差を、有用な仕事をするためにコアへ「返還」できると考えると、それは、コアが何千もの命令を実行するのに十分な時間となる。現行システムでは、しばしば、CPUからIO装置への読み取りに0.6μsから数μsの遅延を生じる。大規模システムでは、従来のオーダリングはCPUからIO装置への読み取りにおいて4μsの遅延が生じる。この遅延の多くは、完了に書き込み(ライト:write)の迂回を禁じている従来のオーダリング要求によって引き起こされる。IO装置からメイン・メモリへ書き込むトラフィックは多量である場合が多いので、CPUへのリード完了は、単にこれらの多量の書き込みによって引き起こされたキューイング遅延によってしばしば遅延する。
PCIeおよび類似のインターコネクトは、最適化されたハンドリングを可能とするために、オーダリング属性をトランザクションに関連させる。例えば、PCI/PCIeにおいて、デフォルトのオーダリング・ルールは、PCIプロデューサ/コンシューマ・オーダリング・モデルの正確性要求として、リード完了が同一方向に流れる、以前に送出された全ての書き込みのために待機することを要求する。しかしながら、このモデルは、ほとんどの場合、過度に保守的である。例えば、IO装置の状態を記述するデータ構造を読み取る前に、IO装置の書き込みをメイン・メモリにフラッシングすることが通常必要である。装置の書き込みをフラッシングすることは、CPUに装置から読み取らせることによりしばしば行われる。しかしながら、一旦フラッシングの読み取りが完了すると、典型的には、装置状態の追加の読み取りは、上流の書き込みに対してオーダされる必要はない。さらに、PCI/PCIeのデフォルト・オーダリング・ルールがこの行動を要求したとしても、無関係な装置からの上流の書き込みに対して、CPUの読み取りをオーダすることは通常必要ではない。
典型的には、要求されるオーダリング属性を示すために、ホストCPUがどのようにリード要求をマークすべきかを知る方法はない。しかしながら、IO装置は、一般に、どの領域が従来のオーダリングを要求するか、および、どの領域が従来のオーダリングを要求しないかを認識している。オーダリング要求は、ある装置と他の装置、装置内のあるレジスタと同一装置内の他のレジスタ、および、レジスタがどのようにアクセスされるかに基づいて1つのレジスタに対してさえ、非常に多様である。オーダリング要求に関する知識は、理論上、ホスト上で実行されているデバイス・ドライバのソフトウェアによって通信することが可能であるが、最近のアーキテクチャCPUは、これを行なうためのメカニズムを提供していない。しかしながら、一般に、IO装置自体は、オーダリング要求に関する知識を有している。しかしながら、IO装置は、CPUを装置の要求にタグ付けすることができない−このトランザクションの一部は、いくつかの他のメカニズムが示すために使用されない限り、最も保守的なオーダリング要求が該当するものと仮定して処理されなければならない。
多くの場合、完了で配置されたオーダリング要求は、著しい機能停止(ストール)を引き起こす。しかしながら、本発明のシステムおよび方法によって、オーダリング要求は、適切な箇所で、オーダリング要求を緩和するためにIO装置によってタグを付すことができる。オーダリング要求は、実行中のアーキテクチャに依存する。本発明の1つの実施例では、そのアーキテクチャはPCIeである。PCIe装置は、既に、リラックス・オーダリング(RO:Relaxed Ordering)と呼ばれるオーダリング属性へのアクセスを有する。
図1は、PCIe要求ヘッダ内のROビットの位置を示す。典型的には、CPUがどの要求によってROビットを設定することができるかを知るための情報を提供するメカニズムが無い限り、ROビットは要求内で0に設定される。既存のPCIeルールに従って、ROビット(および関連するオーダリング・インプリケーション)は、コンプリータによって、要求から完了へ単純にコピーされる。図2は、PCIe完了ヘッダ内の対応するリラックス・オーダリング(RO)ビットを示す。
今日のPCI−x/PCIeにおいて、ROビットは、それが対応する要求内で設定された場合にのみ、完了ヘッダ内に設定される。どの要求がROであるとマークすることができるか、またはどれができないかを装置が「知っている」と仮定されるので、このポリシーは、メイン・メモリへの装置リードのために意味をなす。本発明の実施例は、装置からのCPUリードが、装置によって戻された完了のためにROとマークすることができることを認識する。これによって、完了は、メモリへの無関係な装置ライトを迂回することができる。
図3は、リラックス・オーダリング属性(この場合、PCI/PCIe完了のROビット)が、IO装置によってどのように設定されるのかという一例を示す。この例において、システム100は、3つのPCI/PCIeエンドポイント1,2,3を含む。しかしながら、システム100は、任意の数のPCI/PCIeエンドポイントを有することができる。最初の2つのPCI/PCIeエンドポイント1,2は、PCIeインターコネクト122を経由してスイッチ108に接続される。スイッチ108は、他のPCIeインターコネクト122を経由してルート・コンプレックス110に接続される。第3のPCI/PCIeエンドポイント3は、PCIeインターコネクト122を経由してルート・コンプレックス110に直接接続される。ルート・コンプレックス110は、出力/入力コントローラ・ハブ・コントローラ(ICH)112、メモリ・コントローラ・ハブ(MCH)114、メイン・メモリ116、およびCPU118を含む。入力/出力コントローラ・ハブ・コントローラ(ICH)112は、デスクトップ・マネジメント・インターフェイス(DMI)120を経由してメモリ・コントローラ・ハブ(MCH)114に接続される。
本実施例では、エンドポイント2,3は、メイン・メモリ116にデータを書き込んでいる。これらの書き込みは、エンドポイント1のアクティビティとは無関係である。CPUコア118は、エンドポイント1から読み取りを行っている。従来のPCIオーダリング・ルールは、それらの書き込みが、読み取りデータと関係するであろうという(過度に保守的な)仮定の下に、メモリへのその書き込みの迂回を完了することを禁止する。この行動は、PCIプロダクタ/コンシューマ・モデルによって要求される。典型的には、エンドポイント1は、CPUによって読み取られるデータが、メモリへの未処理の書き込みに関係しているかどうかを「知って」おり、そして、未処理の書き込みと関係がある場合は、リード完了に対してROを示さないであろう。しかしながら、ほとんどの場合は、エンドポイント1は、その読み取りはいずれの未処理の書き込みにも関係しないことを「知って」おり、そして、その場合は、エンドポイント1は、ROのための完了を差し支えなくマークすることができる。
図4は、アドレス指定装置がルート・コンプレックス110に集積されている、本発明の別の実施例を示す。システム200は、入力/出力コントローラ・ハブ・コントローラ(ICH)112に接続された、2つの集積されたエンドポイント124,126を含む。入力/出力コントローラ・ハブ・コントローラ(ICH)112は、デスクトップ・マネジメント・インターフェイス(DMI)120を経由してメモリ・コントローラ・ハブ(MCH)114に接続される。メモリ・コントローラ・ハブ(MCH)114は、CPU118およびメイン・メモリ116に接続される。本実施例は、単一のPCI/PCIeエンドポイント1を含む。しかしながら、システム200は、任意の数の集積されたアドレス指定装置124,126またはPCI/PCIeエンドポイント1を有することができる。
多くの場合、集積されたアドレス指定装置124,126は、非常によく定義された方法で使用され、そして、完了オーダリング・リラクゼーションがいつ受理可能であるかを決定するために使用されるメカニズムを単純化することができる。完了オーダリングの特定の処理は、PCIeのRO要求にならう必要はないことに注意すべきである。すなわち、本発明の他の実施例は、所望のコスト/利益に従って、より単純化またはより複雑化することができる。
図4は、完了オーダリング・リラクゼーション・スキームに関係するルート・コンプレックスの集積装置を具備するシステムを示す。図4に示されたシステムでは、以下のポリシーまたは他の類似のポリシーを実行することができる。
・集積装置からのCPUリードは、他の集積装置からメイン・メモリへの書き込みに対するオーダリング要求を有しないことを認識すること。
・集積装置からのCPUリードは、非集積装置からメイン・メモリへの書き込みに対するオーダリング要求を有しないことを認識すること。
・非集積装置からのCPUリードは、他の集積装置からメイン・メモリへの書き込みに対するオーダリング要求を有しないことを認識すること。
・非集積装置からのCPUリードは、他の非集積装置からメイン・メモリへの書き込みに対するオーダリング要求を有しないことを認識すること。
上記の例は、PCI/PCIeのRO属性によって示された。しかしながら、本発明はPCI/PCIeのROに制限されない。より一般的な場合には、オーダリング属性がROと異なってもよい。さらに、オーダリング属性の表現方法が変わってもよい。完了オーダリングがデフォルトの行動から安全に修正されることができるかどうかを決定するための知識をコンプリータが有することで十分である。加えて、上記の例は、上流の書き込みに対するオーダリングに関して示された。しかしながら、システムは対称的である。すなわち、オーダリング属性は、下流の書き込みに対しても同様に、緩和させるように変更することができる。
本発明の実施例は、コンピュータ・システムの広範な配列に望ましいパフォーマンスの向上を提供する。旧資産のハードウェアおよびソフトウェアに対するサポートに関連する要求は、オーダリング・リラクゼーションの実行を非常に困難にさせるので、PCコンパチブルのアーキテクチャ・システムは、特に制約される。しかしながら、上述のメカニズムは、PC環境内でよく動作する。
本発明がいくつかの実施例に関して記述されたが、当業者であれば、本発明は、記載された本発明の実施例に制限されていないことを理解し、また、本発明は、添付された請求項の精神および範囲内で修正および変更して実行することができることを認識するであろう。したがって、本記述は、制限するものではなく、例示であるとみなされる。
100,200 システム
108 スイッチ
110 ルート・コンプレックス
114 メモリ・コントローラ・ハブ(MCH)
116 メイン・メモリ
118 CPU
120 デスクトップ・マネジメント・インターフェイス(DMI)
122 PCIeインターコネクト
124,126 アドレス指定装置

Claims (28)

  1. ロジックを含む機器において、前記ロジックは、
    特定のトランザクションのパケットを1またはそれ以上のポイント・ツー・ポイントのシリアル・リンクからなるインターコネクトを介して受信し、前記パケットは、リクエスタを認識するための要求パケットを含み、かつ前記特定のトランザクションは、ルート・コンプレックスの集積化されたエンドポイントに関連付けられ、
    リラックス・オーダリングが前記特定のトランザクションに適用されることを示すために、オーダリング属性が前記要求パケット中に設定されたかどうかを認識し、
    前記ルート・コンプレックスの集積化されたエンドポイントに関連付けられた前記特定のトランザクションの少なくとも一部に基づいて、リラックス・オーダリングを前記特定のトランザクションの完了に適用する決定を行う
    ことを特徴とする機器。
  2. 前記ロジックは、リラックス・オーダリングが前記完了に適用されることを示すために、オーダリング属性を完了パケット内に設定することを特徴とする請求項1記載の機器。
  3. 前記インターコネクトは、ペリフェラル・コンポーネント・インターコネクト・エクスプレス(Peripheral Component Interconnect Express: PCIe)のプロトコルをサポートするための物理層、および、1またはそれ以上の他のプロトコルを含む物理層の少なくとも1つからなることを特徴とする請求項1記載の機器。
  4. 前記ロジックは、前記オーダリング属性を設定するためにさらに構成されることを特徴とする請求項1記載の機器。
  5. 前記特定のトランザクションは、システム内の複数のトランザクションの1つであり、前記オーダリング属性を設定するに先立って、前記複数のトランザクションは、第1オーダに従って完了され、前記特定のトランザクションは、前記第1オーダに従って前記複数のトランザクション中の第2トランザクション後に完了し、リラックス・オーダリングを前記特定のトランザクションに適用することによって、前記特定のトランザクションが前記第2トランザクション前に完了することを特徴とする請求項記載の機器。
  6. 前記特定のトランザクションはリード・トランザクションを含み、また前記第2トランザクションはライト・トランザクションを含むことを特徴とする請求項記載の機器。
  7. 前記特定のトランザクションは、第1装置のメモリの読み取りを含み、かつ異なるIO装置のメモリへの書き込みを含むことを特徴とする請求項記載の機器。
  8. 前記特定のトランザクションは第1の集積されたエンドポイントによって完了され、かつ前記第2トランザクションは第2の集積されたエンドポイントによって完了されることを特徴とする請求項記載の機器。
  9. 前記オーダリング属性は、前記パケットのヘッダ中に含められるフィールドを含むことを特徴とする請求項1記載の機器。
  10. 前記オーダリング属性のフィールドは、少なくとも2ビットからなることを特徴とする請求項記載の機器。
  11. 前記要求パケットは、前記リラックス・オーダリングが設定されていないことを示す場合があることを特徴とする請求項1記載の機器。
  12. 前記ロジックは、
    リラックス・オーダリングが前記特定のトランザクションの前記完了に適用することを示すために設定される前記オーダリング属性を備える完了パケットを生成し、
    前記完了パケットを前記インターコネクトを介して前記リクエスタへ送信する、
    ためにさらに構成されることを特徴とする請求項1記載の機器。
  13. 前記完了パケットは、リラックス・オーダリングの属性フィールドを備えるヘッダを含めることができることを特徴とする請求項12記載の機器。
  14. 前記完了パケットのヘッダは、前記リクエスタを認識するルーティング識別子フィールドを含むことを特徴とする請求項13記載の機器。
  15. 前記ルーティング識別子フィールドの値は、前記要求パケットのヘッダ中に含められる値に一致することを特徴とする請求項14記載の機器。
  16. 前記完了パケットのヘッダは、前記装置に対応するコンプリータ識別子および完了ステータス識別子を含むことを特徴とする請求項13記載の機器。
  17. 前記特定のトランザクションは、システム内の複数のトランザクションの1つであり、前記オーダリング属性を設定する決定は、前記特定のトランザクションの完了が前記複数のトランザクション中の他のトランザクションの完了と衝突しないであろうことの決定を含むことを特徴とする請求項1記載の機器。
  18. IOロジックからなる機器であって、
    パケットのヘッダを含めるためにトランザクション層の完了パケットを組み立て、
    特定の装置がルート・コンプレックスの集積化されたエンドポイントであるかどうかに基づいて、前記リラックス・オーダリングのフィールド中にエンコードされるべき値を決定し、かつ
    前記完了パケットをインターコネクトを介して装置に送る、
    ためのIOロジックを含み、
    前記完了パケットは、前記特定の装置に関連付けられたリクエストに対応し、前記パケットのヘッダは、リラックス・オーダリングのフィールド、コンプリータ識別子フィールド、および、完了ステータスのフィールドを含み、かつ前記完了パケットは、前記装置に関連付けられたリクエストに対応する、
    ことを特徴とする機器。
  19. 前記インターコネクトは、ペリフェラル・コンポーネント・インターコネクト・エクスプレス(Peripheral Component Interconnect Express: PCIe)のプロトコル層、および、1またはそれ以上の他のプロトコルを含む物理層をサポートするための少なくとも1つの物理層からなることを特徴とする請求項18記載の機器。
  20. 第1のルート・コンプレックスの集積化されたエンドポイント(Root Complex Integrated Endpoint: RCIE)を含む機器において、前記第1のルート・コンプレックスの集積化されたエンドポイントは、
    特定のトランザクションのパケットをインターコネクトを介して受信し、前記パケットはリクエスタの要求パケットを含み、かつ前記要求はIOリード要求を含み、
    リラックス・オーダリングが前記要求の完了に適用しないことを前記要求パケットのパケット・ヘッダのオーダリング属性フィールドから認識し、および
    前記特定のトランザクションのための完了パケットを生成し、前記完了パケットは、前記第1のルート・コンプレックスの集積化されたエンドポイントが前記特定のトランザクションに含められていることに基づいて、リラックス・オーダリングを前記完了に適用することを示すために設定されるオーダリング属性のフィールドを含む完了ヘッダを含み、前記完了は、コンプリータ識別子、完了ステータス識別子、および、ルーティング識別子をさらに含み、
    前記特定のトランザクションは複数のトランザクションに含められており、リラックス・オーダリングを前記特定のトランザクションの完了に適用することにより、前記特定のトランザクションの完了が前記複数のトランザクション中に含められる少なくとも1つのメモリ・リード・トランザクションに先立って完了される、
    ことを特徴とする機器。
  21. 特定のトランザクションの要求パケットをインターコネクトを介して受信する段階であって、前記特定のトランザクションは、ルート・コンプレックスの集積化されたエンドポイントを含み、かつ前記特定のトランザクションは、要求、および、完了を含、前記パケットは、リクエスタからの前記要求に対応する、段階と、
    前記要求パケット中のオーダリング属性は、リラックス・オーダリングが前記特定のトランザクションに適用しないことを示していることを、前記要求パケットから認識する段階と、
    前記ルート・コンプレックスの集積化されたエンドポイントに関連付けられた前記特定のトランザクションの少なくとも一部に基づいて、リラックス・オーダリングを前記特定のトランザクションに適用するために、前記オーダリング属性定を決定する段階と、
    リラックス・オーダリングが前記決定に少なくとも部分的に基づいて前記特定のトランザクションに適用することを示すために設定されたことで前記オーダリング属性を備える完了パケットを生成する段階と、
    を含むことを特徴とする方法。
  22. 前記特定のトランザクションは、システム中の複数のトランザクションの1つであり、前記オーダリング属性定を決定する段階は、前記特定のトランザクションの完了が前記複数のトランザクション中の他のトランザクションの完了と衝突しないであろうことを決定する段階を含むことを特徴とする請求項21記載の方法。
  23. 前記完了パケットを生成する段階は、リラックス・オーダリングが前記特定のトランザクションに適用することを示すために設定されたオーダリング属性のフィールドを含むパケット・ヘッダを組み立てる段階を含むことを特徴とする請求項21記載の方法。
  24. ルート・コンプレックスの集積化されたエンドポイントからなる第1装置と、
    少なくとも1つのプロセッサによって実行させられるIOモジュールを含む第2装置と、を含むシステムであって、
    前記第1装置からの要求に対応する要求パケットをインターコネクトを介して受信し、
    リラックス・オーダリングが前記要求の完了に適用することを示すために、前記要求パケット中に設定されていたかどうかを、前記要求パケットから認識し、
    前記完了に対応する完了パケットを生成し、前記完了パケットは、リラックス・オーダリングが前記完了に適用することを示すために設定されたオーダリング属性を含み、かつ前記オーダリング属性は、前記第1装置がルート・コンプレックスの集積化されたエンドポイントであるに基づいて、前記完了パケットに設定され
    前記完了パケットを前記インターコネクトを介して前記第1装置に送信する、
    ことを特徴とするシステム。
  25. ルート・コンプレックスをさらに含むことを特徴とする請求項24記載のシステム。
  26. 前記第1装置は第1エンドポイント装置を含み、かつ前記第2装置は第2エンドポイント装置を含むことを特徴とする請求項24記載のシステム。
  27. 特定のトランザクションのパケットを1またはそれ以上のポイント・ツー・ポイントのシリアル・リンクからなるインターコネクトを介して受信する手段であって、前記パケットは、リクエスタを認識するための要求パケットを含み、前記特定のトランザクションは、リード・トランザクションを含み、かつ前記特定のトランザクションは、特定の装置と関連づけられる、手段と、
    リラックス・オーダリングが前記特定のトランザクションに適用することを示すために、オーダリング属性が前記要求パケット中に設定されたかどうかを認識する手段と、
    リラックス・オーダリングを前記特定のトランザクションの完了への用を決定する手段であって、リラックス・オーダリングを前記特定のトランザクションの完了へ適用する前記決定は、前記特定の装置がルート・コンプレックスの集積化されたエンドポイントであるかどうかに少なくとも部分的に基づく、手段と、
    からなることを特徴とする機器。
  28. パケット・ヘッダを含めるためにトランザクション層の完了パケットを組み立てるための手段であって、前記パケット・ヘッダは、リラックス・オーダリングのフィールド、コンプリータ識別子フィールド、および、完了ステータス・フィールドを含む、手段と、
    前記完了パケットをインターコネクトを介して装置に送信するための手段であって、前記完了パケットは、前記装置に関連する要求に対応する、手段と、
    からなる機器であり、
    前記完了パケットは、装置に関連付けられたリクエストに対応し、かつ前記機器は、前記装置がルート・コンプレックスの集積化されたエンドポイントであるかどうかに基づいて、前記リラックス・オーダリングのフィールド中にエンコードされるべき値を決定するための手段をさらに含む、
    ことを特徴とする機器。
JP2015201103A 2008-10-15 2015-10-09 トランザクション属性を修正するためのメモリ領域オーダリング要求に関するコンプリータ知識の使用 Active JP6141379B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/252,303 US8108584B2 (en) 2008-10-15 2008-10-15 Use of completer knowledge of memory region ordering requirements to modify transaction attributes
US12/252,303 2008-10-15

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013175504A Division JP5824488B2 (ja) 2008-10-15 2013-08-27 トランザクション属性を修正するためのメモリ領域オーダリング要求に関するコンプリータ知識の使用

Publications (2)

Publication Number Publication Date
JP2016033823A JP2016033823A (ja) 2016-03-10
JP6141379B2 true JP6141379B2 (ja) 2017-06-07

Family

ID=41462384

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2009237987A Active JP5479020B2 (ja) 2008-10-15 2009-10-15 トランザクション属性を修正するためのメモリ領域オーダリング要求に関するコンプリータ知識の使用
JP2013175504A Active JP5824488B2 (ja) 2008-10-15 2013-08-27 トランザクション属性を修正するためのメモリ領域オーダリング要求に関するコンプリータ知識の使用
JP2015201103A Active JP6141379B2 (ja) 2008-10-15 2015-10-09 トランザクション属性を修正するためのメモリ領域オーダリング要求に関するコンプリータ知識の使用

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2009237987A Active JP5479020B2 (ja) 2008-10-15 2009-10-15 トランザクション属性を修正するためのメモリ領域オーダリング要求に関するコンプリータ知識の使用
JP2013175504A Active JP5824488B2 (ja) 2008-10-15 2013-08-27 トランザクション属性を修正するためのメモリ領域オーダリング要求に関するコンプリータ知識の使用

Country Status (6)

Country Link
US (2) US8108584B2 (ja)
JP (3) JP5479020B2 (ja)
CN (2) CN101727413B (ja)
DE (2) DE102009049078B4 (ja)
GB (1) GB2464403B (ja)
TW (2) TWI548997B (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8108584B2 (en) * 2008-10-15 2012-01-31 Intel Corporation Use of completer knowledge of memory region ordering requirements to modify transaction attributes
US8402195B2 (en) * 2009-10-27 2013-03-19 Hitachi, Ltd. Storage system mounted with plurality of processors
CN104081722B (zh) * 2012-01-13 2018-05-22 英特尔公司 SoC构造中的高效对等通信支持
US9129071B2 (en) * 2012-10-24 2015-09-08 Texas Instruments Incorporated Coherence controller slot architecture allowing zero latency write commit
KR102065664B1 (ko) 2013-08-09 2020-01-13 삼성전자 주식회사 메모리 장치의 열화 상태 추정 방법 및 이를 이용한 메모리 시스템에서의 웨어 레벨링 방법
US9569362B2 (en) * 2014-11-13 2017-02-14 Cavium, Inc. Programmable ordering and prefetch
US10013385B2 (en) 2014-11-13 2018-07-03 Cavium, Inc. Programmable validation of transaction requests
US10007619B2 (en) * 2015-05-29 2018-06-26 Qualcomm Incorporated Multi-threaded translation and transaction re-ordering for memory management units
US10127968B2 (en) * 2015-08-03 2018-11-13 Intel Corporation Method and apparatus for completing pending write requests to volatile memory prior to transitioning to self-refresh mode
US10223307B2 (en) * 2017-06-15 2019-03-05 International Business Machines Corporation Management of data transaction from I/O devices
US10353833B2 (en) * 2017-07-11 2019-07-16 International Business Machines Corporation Configurable ordering controller for coupling transactions
CN110688332B (zh) * 2019-09-12 2021-01-15 无锡江南计算技术研究所 一种面向高速消息传输的pcie数据传输系统及计算机
US11762785B2 (en) * 2021-05-03 2023-09-19 Mellanox Technologies, Ltd. Peripheral component interconnect attributes shared using address bits

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3255908B2 (ja) * 1988-06-30 2002-02-12 エルジー・セミコン・カンパニー・リミテッド メモリー制御ユニット
GB2230120B (en) * 1989-04-07 1992-12-02 Intel Corp Read/write ordering apparatus and method for a microprocessor
US5418940A (en) * 1993-08-04 1995-05-23 International Business Machines Corporation Method and means for detecting partial page writes and avoiding initializing new pages on DASD in a transaction management system environment
US5530933A (en) * 1994-02-24 1996-06-25 Hewlett-Packard Company Multiprocessor system for maintaining cache coherency by checking the coherency in the order of the transactions being issued on the bus
US5657472A (en) * 1995-03-31 1997-08-12 Sun Microsystems, Inc. Memory transaction execution system and method for multiprocessor system having independent parallel transaction queues associated with each processor
US5790870A (en) * 1995-12-15 1998-08-04 Compaq Computer Corporation Bus error handler for PERR# and SERR# on dual PCI bus system
US6272600B1 (en) * 1996-11-15 2001-08-07 Hyundai Electronics America Memory request reordering in a data processing system
US5860126A (en) * 1996-12-17 1999-01-12 Intel Corporation Controlling shared memory access ordering in a multi-processing system using an acquire/release consistency model
US5878237A (en) * 1997-07-11 1999-03-02 Compaq Computer Corp. Apparatus, method and system for a comuter CPU and memory to PCI bridge having a pluarlity of physical PCI buses
US6145052A (en) * 1997-11-04 2000-11-07 Western Digital Corporation Disk drive with adaptive pooling for command reordering
US6038646A (en) * 1998-01-23 2000-03-14 Sun Microsystems, Inc. Method and apparatus for enforcing ordered execution of reads and writes across a memory interface
US6816934B2 (en) * 2000-12-22 2004-11-09 Hewlett-Packard Development Company, L.P. Computer system with registered peripheral component interconnect device for processing extended commands and attributes according to a registered peripheral component interconnect protocol
US6175889B1 (en) * 1998-10-21 2001-01-16 Compaq Computer Corporation Apparatus, method and system for a computer CPU and memory to high speed peripheral interconnect bridge having a plurality of physical buses with a single logical bus number
US6625683B1 (en) * 1999-08-23 2003-09-23 Advanced Micro Devices, Inc. Automatic early PCI transaction retry
US6490635B1 (en) * 2000-04-28 2002-12-03 Western Digital Technologies, Inc. Conflict detection for queued command handling in disk drive controller
JP2002043544A (ja) * 2000-07-21 2002-02-08 Mitsubishi Electric Corp 半導体装置およびその製造方法
US6615295B2 (en) * 2000-12-26 2003-09-02 Hewlett-Packard Development Company, L.P. Relaxed read completion ordering in a system using transaction order queue
US6757768B1 (en) * 2001-05-17 2004-06-29 Cisco Technology, Inc. Apparatus and technique for maintaining order among requests issued over an external bus of an intermediate network node
US7177971B2 (en) 2001-08-24 2007-02-13 Intel Corporation General input/output architecture, protocol and related methods to provide isochronous channels
US6801970B2 (en) * 2001-09-30 2004-10-05 Hewlett-Packard Development Company, L.P. Priority transaction support on the PCI-X bus
US6754737B2 (en) * 2001-12-24 2004-06-22 Hewlett-Packard Development Company, L.P. Method and apparatus to allow dynamic variation of ordering enforcement between transactions in a strongly ordered computer interconnect
US7184399B2 (en) * 2001-12-28 2007-02-27 Intel Corporation Method for handling completion packets with a non-successful completion status
US20030145136A1 (en) * 2002-01-31 2003-07-31 Tierney Gregory E. Method and apparatus for implementing a relaxed ordering model in a computer system
US20040022094A1 (en) * 2002-02-25 2004-02-05 Sivakumar Radhakrishnan Cache usage for concurrent multiple streams
US20050289306A1 (en) * 2004-06-28 2005-12-29 Sridhar Muthrasanallur Memory read requests passing memory writes
JP4410190B2 (ja) * 2005-03-24 2010-02-03 富士通株式会社 PCI−Express通信システム
US8516165B2 (en) * 2005-10-19 2013-08-20 Nvidia Corporation System and method for encoding packet header to enable higher bandwidth efficiency across bus links
US7721023B2 (en) * 2005-11-15 2010-05-18 International Business Machines Corporation I/O address translation method for specifying a relaxed ordering for I/O accesses
US7698498B2 (en) * 2005-12-29 2010-04-13 Intel Corporation Memory controller with bank sorting and scheduling
US7461210B1 (en) * 2006-04-14 2008-12-02 Tilera Corporation Managing set associative cache memory according to entry type
US7949794B2 (en) * 2006-11-02 2011-05-24 Intel Corporation PCI express enhancements and extensions
KR100823171B1 (ko) * 2007-02-01 2008-04-18 삼성전자주식회사 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
US8108584B2 (en) * 2008-10-15 2012-01-31 Intel Corporation Use of completer knowledge of memory region ordering requirements to modify transaction attributes

Also Published As

Publication number Publication date
JP5824488B2 (ja) 2015-11-25
US8307144B2 (en) 2012-11-06
JP2014041618A (ja) 2014-03-06
GB0918065D0 (en) 2009-12-02
US20100095032A1 (en) 2010-04-15
US20120096212A1 (en) 2012-04-19
TW201019128A (en) 2010-05-16
CN102981984A (zh) 2013-03-20
JP2010097615A (ja) 2010-04-30
GB2464403A (en) 2010-04-21
JP5479020B2 (ja) 2014-04-23
DE102009049078B4 (de) 2015-03-05
GB2464403B (en) 2011-08-24
DE102009061252B3 (de) 2023-04-20
DE102009049078A1 (de) 2010-05-20
CN101727413A (zh) 2010-06-09
TWI548997B (zh) 2016-09-11
CN101727413B (zh) 2013-09-11
TW201329732A (zh) 2013-07-16
CN102981984B (zh) 2016-04-06
TWI420319B (zh) 2013-12-21
JP2016033823A (ja) 2016-03-10
US8108584B2 (en) 2012-01-31

Similar Documents

Publication Publication Date Title
JP6141379B2 (ja) トランザクション属性を修正するためのメモリ領域オーダリング要求に関するコンプリータ知識の使用
US11657015B2 (en) Multiple uplink port devices
US11238203B2 (en) Systems and methods for accessing storage-as-memory
EP3035198B1 (en) Low power entry in a shared memory link
JP4589384B2 (ja) 高速メモリモジュール
KR100647161B1 (ko) 레거시 인터럽트를 지원하는 범용 입/출력 아키텍쳐프로토콜 및 관련 방법
US20050091432A1 (en) Flexible matrix fabric design framework for multiple requestors and targets in system-on-chip designs
CN112631959B (zh) 用于一致性消息的高带宽链路层
US10061707B2 (en) Speculative enumeration of bus-device-function address space
JP4559861B2 (ja) キャッシュを備えたデータ処理システムのオーバーヘッドを小さくするための方法及び装置
US10754808B2 (en) Bus-device-function address space mapping
CN112699068A (zh) 共享缓冲存储器路由
JP2021530813A (ja) 専用低レイテンシリンクを使用した複数のハードウェアアクセラレータのための統合されたアドレス空間
CN111752607A (zh) 用于处理器中的批量寄存器访问的系统、装置和方法
US20230022544A1 (en) Transactional memory support for compute express link (cxl) devices
US10963409B2 (en) Interconnect circuitry and a method of operating such interconnect circuitry
US7930459B2 (en) Coherent input output device
US20230013023A1 (en) ARCHITECTURAL INTERFACES FOR GUEST SOFTWARE TO SUBMIT COMMANDS TO AN ADDRESS TRANSLATION CACHE IN XPUs

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160829

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20161125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170309

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170407

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170502

R150 Certificate of patent or registration of utility model

Ref document number: 6141379

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250