JP2003521029A - Dynamic priority external transaction system - Google Patents

Dynamic priority external transaction system

Info

Publication number
JP2003521029A
JP2003521029A JP2001549203A JP2001549203A JP2003521029A JP 2003521029 A JP2003521029 A JP 2003521029A JP 2001549203 A JP2001549203 A JP 2001549203A JP 2001549203 A JP2001549203 A JP 2001549203A JP 2003521029 A JP2003521029 A JP 2003521029A
Authority
JP
Japan
Prior art keywords
transaction
queue
request
prefetch
requests
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.)
Granted
Application number
JP2001549203A
Other languages
Japanese (ja)
Other versions
JP2003521029A5 (en
JP4219106B2 (en
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 JP2003521029A publication Critical patent/JP2003521029A/en
Publication of JP2003521029A5 publication Critical patent/JP2003521029A5/ja
Application granted granted Critical
Publication of JP4219106B2 publication Critical patent/JP4219106B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • 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/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)
  • Developing Agents For Electrophotography (AREA)
  • Cash Registers Or Receiving Machines (AREA)
  • Measuring Volume Flow (AREA)
  • Preparation Of Compounds By Using Micro-Organisms (AREA)
  • Transmitters (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Computer And Data Communications (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】 マルチ‐モード・トランザクション・キューが、デフォルトの優先順位スキームに従って動作することができる。このトランザクション・キューは、輻輳イベントが検出されたとき、第2の優先順位スキームを使用することができる。 (57) Summary Multi-mode transaction queues can operate according to a default priority scheme. This transaction queue may use a second priority scheme when a congestion event is detected.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】 (背景) 周知のように、多くの近代的コンピューティング・システムは、マルチ‐エー
ジェント・アーキテクチャを採用している。代表的なシステムを図1に示す。本
システムは、複数のエージェント110〜160が、あらかじめ決定されたバス
・プロトコルに従って、外部バス170を介して通信を行う。「エージェント」
には、汎用プロセッサ110〜140、メモリ・コントローラ150、インター
フェース・チップセット160、入出力デバイスおよび/またはデータ要求を処
理するそのほかの集積回路(図示せず)を含めることができる。バス170によ
って、複数の外部バス・トランザクションが同時に進行することができる。
BACKGROUND As is well known, many modern computing systems employ a multi-agent architecture. A typical system is shown in FIG. In this system, a plurality of agents 110 to 160 communicate with each other via an external bus 170 according to a predetermined bus protocol. "Agent"
May include general purpose processors 110-140, memory controller 150, interface chipset 160, input / output devices and / or other integrated circuits (not shown) that handle data requests. Bus 170 allows multiple external bus transactions to proceed concurrently.

【0002】 エージェント(たとえば110)は、通常、エージェントの別のコンポーネン
トから要求を受け取り、その要求を満たす外部バス・トランザクションを処理す
るトランザクション・マネジメント・システムを含んでいる。図2に示されてい
るバス・シーケンシング・ユニット200(「BSU」)は、その種のトランザ
クション・マネジメント・システムの一例である。BSU 200は、アービタ
210、内部キャッシュ220、内部トランザクション・キュー230、外部ト
ランザクション・キュー240、外部バス・コントローラ250、およびプリフ
ェッチ・キュー260などを含んでいる。BSU 200は、たとえばエージェ
ント・コア(図2には示していない)によって発行されたデータ要求に応答して
、外部バス170上のトランザクションをマネージする。
An agent (eg, 110) typically includes a transaction management system that receives requests from other components of the agent and handles external bus transactions that satisfy the requests. The bus sequencing unit 200 ("BSU") shown in Figure 2 is an example of such a transaction management system. BSU 200 includes arbiter 210, internal cache 220, internal transaction queue 230, external transaction queue 240, external bus controller 250, prefetch queue 260, and the like. BSU 200 manages transactions on external bus 170, eg, in response to a data request issued by an agent core (not shown in FIG. 2).

【0003】 アービタ210は、コアからのデータ要求だけでなく、プリフェッチ・キュー
260などの各種の別のソースからのデータ要求を受け取ることができる。アー
ビタ210は、アービタ210が同時に受け取る可能性のあるデータ要求の中か
ら選択を行って、その1つをBSU 200の残りの部分に向けて出力すること
ができる。
Arbiter 210 can receive data requests from various other sources, such as prefetch queue 260, as well as data requests from the core. The arbiter 210 may make a selection among the data requests that the arbiter 210 may receive at the same time and output one to the rest of the BSU 200.

【0004】 内部キャッシュ220は、いくつかのキャッシュ・エントリ内にデータをスト
アすることができる。これは、データ要求に応答して、要求されたデータの有効
なコピーをキャッシュ220がストアしているか否かを決定するロジックを有し
ていてもよい。ここで使用している「データ」は、インストラクション・データ
およびエージェントによる使用が可能な各種のデータを指す。内部キャッシュ2
20は、データ要求に応答して要求されたデータを供給することができる。
The internal cache 220 can store data in several cache entries. It may have logic that, in response to a data request, determines whether cache 220 is storing a valid copy of the requested data. As used herein, "data" refers to instruction data and various data that can be used by an agent. Internal cache 2
20 can provide the requested data in response to the data request.

【0005】 内部トランザクション・キュー230もまた、アービタ210によって発行さ
れたデータ要求を受け取り、それをストアすることができる。読み出し要求の場
合であれば、内部キャッシュ220との調整を行って、要求されたデータが内部
キャッシュ220を「ヒットしたか」(それによって供給可能か)否かを決定す
る。否であれば、つまりデータ要求が内部キャッシュ220を「外した」場合に
は、内部トランザクション・キュー230がそのデータ要求を外部トランザクシ
ョン・キュー240に転送する。
The internal transaction queue 230 can also receive data requests issued by the arbiter 210 and store them. In the case of a read request, coordination with internal cache 220 is made to determine whether the requested data "hits" (can be served by) internal cache 220. If not, that is, if the data request "disengages" the internal cache 220, the internal transaction queue 230 transfers the data request to the external transaction queue 240.

【0006】 外部トランザクション・キュー240は、データ要求を解釈し、要求を実行す
るために外部バス・トランザクションを生成する。外部トランザクション・キュ
ー240は、いくつかのキュー・レジスタによって占められることもある。これ
は、エージェントのトランザクションが外部バス170上において進行するとき
、そのマネージを行う。たとえば、トランザクションに応じてデータが使用可能
な場合には、外部トランザクション・キュー240がそのデータを検索してエー
ジェント内の要求元(たとえばコア)に転送する。
External transaction queue 240 interprets data requests and creates external bus transactions to fulfill the requests. The external transaction queue 240 may be occupied by several queue registers. It manages the agent's transaction as it proceeds on the external bus 170. For example, if data is available for a transaction, the external transaction queue 240 retrieves the data and forwards it to the requester (eg, core) in the agent.

【0007】 プリフェッチ・キュー260は、コア(図示せず)によって発行された読み出
し要求におけるあらかじめ決定されたパターンを識別することができる。たとえ
ば、コアが連続的に進むメモリ・ロケーション(アドレスA、A+1、A+2、
A+3、...)に向けられた読み出し要求を発行したとすれば、プリフェッチ
・キュー260は、実際にコアがデータを要求する前にシーケンス内の次のアド
レス(A+4)からデータを読み出すプリフェッチ要求を発行することができる
。データの要求を予測することによって、プリフェッチ・キュー260は、コア
がそのデータに関する要求を発行したとき、内部キャッシュ220内にそれが入
手可能になっているようにすることができる。データは、外部メモリからではな
く、内部キャッシュ220からコアに供給されることになる。これは、はるかに
高速な動作である。ここでは、このタイプのプリフェッチ要求を「パターン化さ
れたプリフェッチ」と呼ぶことにする。
Prefetch queue 260 can identify a predetermined pattern in a read request issued by a core (not shown). For example, the memory locations (addresses A, A + 1, A + 2,
A + 3 ,. . . ), The prefetch queue 260 may issue a prefetch request to read data from the next address (A + 4) in the sequence before the core actually requests the data. it can. By anticipating a request for data, the prefetch queue 260 can ensure that it is available in the internal cache 220 when the core issues a request for that data. The data will be provided to the core from the internal cache 220 rather than from external memory. This is a much faster operation. Here, this type of prefetch request will be referred to as "patterned prefetch".

【0008】 BSU 200は、「ブラインド・プリフェッチ」と呼んでいる第2のタイプ
のプリフェッチも実施することができる。コアが、外部バス・トランザクション
によって実行される、あるアドレス(アドレスBとする)のデータに対する読み
出し要求を発行するとき、ブラインド・プリフェッチ・メカニズムは、第2のメ
モリ・アドレス(B+1)のデータを、第2の外部バス・トランザクションに検
索させることができる。ブラインド・プリフェッチは、内部的に実行することが
できないコアからのすべての読み出し要求に、外部バス・トランザクションのペ
アを生じさせることができる。ブラインド・プリフェッチは、コアの読み出し要
求を実行するために必要なキャッシュ・ライン(またはキャッシュ・セクタ)の
2倍の検索を行うことによって、プロセッサのパフォーマンスを向上させること
ができる。この場合も、コアが最終的に他方のアドレス(B+1)からプリフェ
ッチしたデータからのデータを要求する場合には、コアがそのデータに関する読
み出し要求を発行した時点において、そのデータが内部キャッシュ220内に存
在することになる。ブラインド・プリフェッチ要求は、パターン化されたプリフ
ェッチ要求から生成されることもある。前述の例を使用すると、アドレスA+4
に対するパターン化されたプリフェッチ要求を、ブラインド・プリフェッチによ
ってアドレスA+5まで拡大することができる。
The BSU 200 may also implement a second type of prefetch, called “blind prefetch”. When the core issues a read request for data at a certain address (denoted as address B), which is executed by an external bus transaction, the blind prefetch mechanism transfers the data at the second memory address (B + 1) to A second foreign bus transaction can be retrieved. Blind prefetch can cause a pair of external bus transactions for every read request from the core that cannot be executed internally. Blind prefetching can improve processor performance by performing twice the number of cache lines (or cache sectors) required to fulfill a core read request. Also in this case, when the core finally requests the data from the data prefetched from the other address (B + 1), the data is stored in the internal cache 220 at the time when the core issues a read request for the data. Will exist. Blind prefetch requests may also be generated from patterned prefetch requests. Using the example above, the address A + 4
The patterned prefetch request for A can be extended to address A + 5 by blind prefetch.

【0009】 図1に戻るが、特にマルチプロセッサ・コンピュータ・システムにおいては、
外部バス170がシステムのパフォーマンスを制限する可能性のあることがよく
知られている。外部バス170は、エージェントの内部クロック速度よりはるか
に遅いクロック速度で動作していることが少なくない。コアは、しばしば、外部
バス170が単一の外部バス・トランザクションを完了できる時間内に、データ
に関するいくつかの要求を発行することがある。つまり、単一のエージェントは
、1つの外部バス170より多くの帯域幅を消費することができる。複数のエー
ジェントが外部バス170を共有しなければならない場合には、各エージェント
には、バス170で使用可能な帯域幅の一部しか割り当てられない。複数エージ
ェント・システムにおいては、先に進むために必要なデータを外部バスが検索し
ている間、エージェントがアイドル状態で待機しなければならないということが
頻繁に生じている。
Returning to FIG. 1, particularly in a multiprocessor computer system,
It is well known that external bus 170 can limit system performance. The external bus 170 is often operating at a clock speed much slower than the agent's internal clock speed. The core often issues some requests for data within the time that the external bus 170 can complete a single external bus transaction. That is, a single agent can consume more bandwidth than one external bus 170. If multiple agents must share the external bus 170, each agent will be allocated only a portion of the bandwidth available on the bus 170. In multi-agent systems, it is often the case that agents have to wait idle while the external bus is searching for the data it needs to move forward.

【0010】 外部トランザクション・キュー240(図2)は、外部バスにポスティングす
るためにペンディング要求の優先順位設定を行うコントロール・ロジックを含む
ことがある。一般的に、プリフェッチ読み出しよりコア読み出しが優先順位に設
定され、書き込みよりプリフェッチ読み出しが優先順位に設定される。コア読み
出し要求は、コアが直ちに必要とするデータを識別する。プリフェッチ読み出し
要求は、コアが、将来における任意の時点において必要とする可能性のあるデー
タを識別する。書き込み要求は、エージェントがシステムのストレージに戻そう
としているデータを識別する。したがって、外部トランザクション・キュー24
0は、この優先順位に従って外部バス上に要求をポスティングするコントロール
・ロジックを含むことができる。
External transaction queue 240 (FIG. 2) may include control logic that prioritizes pending requests for posting on the external bus. In general, the core read is set as a priority order than the prefetch read, and the prefetch read is set as a priority order than the write. The core read request identifies the data that the core needs immediately. The prefetch read request identifies data that the core may need at any time in the future. The write request identifies the data the agent is about to return to the system's storage. Therefore, the external transaction queue 24
The 0 may contain control logic that posts requests on the external bus according to this priority.

【0011】 あらかじめ決定された優先順位スキームは、内在する欠点を有する。要求は、
通常、それが外部バス上において完了されるまで、外部トランザクション・キュ
ー240内にストアされる。外部トランザクション・キュー240が完全に、も
しくはほぼ充満される高い輻輳の期間においては、プリフェッチ要求ならびに書
き込み要求によって、キュー240への新しいコア要求のストアが妨げられるこ
とがある。優先順位の低い要求が、その要求に対する外部バス・トランザクショ
ンが完了するまで、キュー内にストアされた状態でとどまることになる。つまり
、より優先順位の低い要求によって、より優先順位の高い要求を実施することが
妨げられることがある。これは、システムのパフォーマンスを制限することにな
る。
Pre-determined priority schemes have inherent drawbacks. Request is,
It is typically stored in the external transaction queue 240 until it is completed on the external bus. During periods of high congestion when the external transaction queue 240 is fully or nearly full, prefetch requests as well as write requests may prevent new core requests from being stored in the queue 240. A low priority request will remain stored in the queue until the external bus transaction for that request completes. That is, a lower priority request may prevent a higher priority request from being fulfilled. This will limit the performance of the system.

【0012】 したがって、この分野では、エージェント内の外部トランザクション・キュー
に関する輻輳マネジメント・システムが必要となっている。またこの分野では、
システムの輻輳がない場合には第1の優先順位スキームを維持するが、輻輳イベ
ントが生じた場合には第2の優先順位を実施する動的な優先順位システムを提供
するシステムが求められている。
Therefore, there is a need in this field for a congestion management system for external transaction queues within agents. Also in this area,
What is needed is a system that maintains a first priority scheme when there is no system congestion, but provides a dynamic priority system that implements a second priority when a congestion event occurs. .

【0013】 (要約) 本発明の実施態様は、1つのエージェントに関してマルチ‐モードのトランザ
クション・キューを提供する。トランザクション・キューは、デフォルトの優先
順位スキームに従って動作することができる。このトランザクション・キューは
、輻輳イベントが検出された場合に、第2の優先順位スキームを使用することが
できる。
SUMMARY Embodiments of the present invention provide a multi-mode transaction queue for one agent. Transaction queues can operate according to a default priority scheme. This transaction queue can use a second priority scheme if a congestion event is detected.

【0014】 (詳細な説明) 本発明の実施形態は、輻輳イベントに対する均整のとれた応答をもたらすトラ
ンザクション・キューを提供する。このトランザクション・キューは、キュー内
のペンディングされているトランザクションを選択的に無効にする。つまり、現
在、外部バスにポスティングされていないトランザクションを選択的に無効にす
る。一実施形態においては、トランザクション・キューが、ブラインド・プリフ
ェッチ要求を最初に無効にする。このトランザクション・キューは、関連のポス
ティングされているプリフェッチ要求とともにストアされているポスティングさ
れていないプリフェッチ要求を無効にすることもできる。最後に、新しい要求に
使用できるスペースがまったくないといった、極度に輻輳している場合において
は、トランザクション・キューがポスティングされていないパターン化されたプ
リフェッチ要求を無効にすることができる。
DETAILED DESCRIPTION Embodiments of the present invention provide a transaction queue that provides a well-balanced response to congestion events. This transaction queue selectively invalidates pending transactions in the queue. That is, it selectively invalidates transactions that are not currently posted on the external bus. In one embodiment, the transaction queue first invalidates the blind prefetch request. The transaction queue can also invalidate unposted prefetch requests that are stored with the associated posted prefetch request. Finally, in cases of extreme congestion, such as when there is no space available for new requests, patterned prefetch requests where the transaction queue is not posted can be overridden.

【0015】 これらの実施形態は、動的な優先順位スキームを有するトランザクション・キ
ューを提供する。輻輳していない場合には、トランザクション・キューが第1の
優先順位スキームに従って動作する。たとえば、トランザクション・キューは、
すでに述べたように、プリフェッチ要求の上にコア読み出し要求の優先順位を設
定し、書き込み要求の上にプリフェッチ要求の優先順位を設定することができる
。しかしながら、輻輳イベントが生じたときには、トランザクション・キューが
第2の優先順位スキームを採用することができる。たとえば、トランザクション
・キューは、コア読み出し要求を最優先要求として維持する一方、書き込み要求
を次に高い優先順位の要求として優先順位を再設定することができる。トランザ
クション・キューは、トランザクション・キュー内にストアされているプリフェ
ッチ要求を無効にすることもできる。
These embodiments provide a transaction queue with a dynamic priority scheme. When not congested, the transaction queue operates according to the first priority scheme. For example, the transaction queue is
As described above, the priority of the core read request can be set on the prefetch request, and the priority of the prefetch request can be set on the write request. However, the transaction queue may employ a second priority scheme when a congestion event occurs. For example, the transaction queue may maintain the core read request as the highest priority request while re-prioritizing the write request as the next highest priority request. The transaction queue can also invalidate prefetch requests stored in the transaction queue.

【0016】 図3は、本発明の一実施形態に従ったエージェントの外部トランザクション・
キュー300のブロック図である。外部トランザクション・キュー300は、コ
ントローラ310および複数のキュー・レジスタ320−1〜320−N(集合
的に320というラベルを適用している)を含んでいる。各キュー・レジスタ内
は、アドレス・フィールド330、第1のステータス・フィールド340および
第2のステータス・フィールド350を含む複数のフィールドが占めている。
FIG. 3 illustrates an external transaction of an agent according to an embodiment of the present invention.
FIG. 3 is a block diagram of a queue 300. The external transaction queue 300 includes a controller 310 and a plurality of queue registers 320-1 to 320-N (collectively applying the label 320). Within each queue register are a plurality of fields, including an address field 330, a first status field 340 and a second status field 350.

【0017】 外部トランザクション・キュー300は、ブラインド・プリフェッチを実行す
るエージェント内における使用に適している。ステータス・フィールド340、
350が、それぞれ、ブラインド・プリフェッチ・ペアに従って実行されること
になる外部バス・トランザクションのそれぞれに関する情報をストアしている。
アドレス・フィールド330には、トランザクションが向けられているベース・
アドレスをストアすることができる。通常、アドレス・フィールド330とステ
ータス・フィールド340、350の間には、あらかじめ決められた関係が存在
する。たとえば、アドレスDがレジスタ320−1のアドレス・フィールド33
0にストアされる場合、ステータス・フィールド340は、アドレスDに向けら
れているトランザクションに関するステータス情報を維持し、ステータス・フィ
ールド350は、アドレスD+1に向けられている第2のトランザクションに関
するステータス情報を維持するという形が考えられる。
The external transaction queue 300 is suitable for use within agents that perform blind prefetch. Status field 340,
Each 350 stores information about each external bus transaction that will be executed according to the blind prefetch pair.
The address field 330 contains the base to which the transaction is directed.
Addresses can be stored. Usually, there is a predetermined relationship between the address field 330 and the status fields 340,350. For example, address D is address field 33 of register 320-1.
When stored at 0, status field 340 maintains status information for the transaction destined for address D and status field 350 maintains status information for the second transaction destined for address D + 1. The form of doing is possible.

【0018】 ステータス・フィールド340、350は、それぞれのトランザクションに関
係する管理情報をストアすることができる。この種の情報は、要求のタイプ、外
部バス上におけるそれぞれのトランザクションのステータスに関する情報(つま
り、それがすでにポスティング済みか、要求がいずれのトランザクション段階に
あるか、トランザクションは完了したか等)、およびトランザクションに従って
受け取られることになるデータの行き先に関する情報を含むことができる。通常
、ステータス・フィールド340、350がともに、それらに対応するトランザ
クションが完了したことを示したとき、そのトランザクションはレジスタ320
からクリアされる。
The status fields 340, 350 can store management information related to each transaction. This type of information includes the type of request, information about the status of each transaction on the external bus (that is, whether it has already been posted, in what transaction phase the request is, whether the transaction is complete, etc.). Information may be included regarding the destination of the data that will be received according to the transaction. Generally, when status fields 340 and 350 together indicate that their corresponding transactions have completed, the transactions are registered.
Cleared from.

【0019】 本発明の一実施形態によれば、ステータス・フィールド340、350は、そ
れぞれ対応するトランザクションがコア要求(「C」)に従って生成されたか否
か、あるいはプリフェッチ要求(「P」)に従って生成されたか否かを識別する
サブ‐フィールドを含むことができる。図3は、7つの要求がコア要求であり、
残りがプリフェッチ要求であることを示している。この例においては、レジスタ
320−1、320−4、320−5、320−6、320−8、320−11
、および320−Nが、コア要求によって開始されたトランザクションをストア
している。これらのレジスタの一方のステータス・フィールド340または35
0が、コア要求から開始されたものとしてトランザクションを識別し;他方のス
テータス・フィールドは、ブラインド・プリフェッチ要求を示している。
According to one embodiment of the present invention, the status fields 340, 350 respectively indicate whether the corresponding transaction was generated according to a core request (“C”) or according to a prefetch request (“P”). It may include a sub-field that identifies whether or not it has been done. In FIG. 3, seven requirements are core requirements,
It indicates that the rest are prefetch requests. In this example, registers 320-1, 320-4, 320-5, 320-6, 320-8, 320-11.
, And 320-N are storing transactions initiated by core requests. The status field 340 or 35 of one of these registers
0 identifies the transaction as originating from a core request; the other status field indicates a blind prefetch request.

【0020】 残りのレジスタ320−2、320−3、320−7、320−9、および3
20−10は、ブラインド・プリフェッチによって拡大されたパターン化された
プリフェッチ要求を識別する。これらのステータス・フィールド340、350
は、いずれも対応する要求がプリフェッチ要求であることを示している。
The remaining registers 320-2, 320-3, 320-7, 320-9, and 3
20-10 identifies the patterned prefetch request extended by blind prefetch. These status fields 340, 350
Indicates that the corresponding request is a prefetch request.

【0021】 コントローラ310は、外部トランザクション・キュー300とエージェント
内の別のエレメント(たとえば図2を参照されたい)をインターフェースする。
コントローラ310はキュー・レジスタ320にトランザクションを登録し、も
しくはそれから削除し、かつアドレス・フィールド330内およびステータス・
フィールド340、350にデータを書き込むことができる。またコントローラ
310は、外部バス170(図1)上にポスティングされるトランザクションの
順序をスケジュールすることもできる。一実施形態においては、コントローラ3
10を状態マシンとすることができる。
Controller 310 interfaces external transaction queue 300 with another element within the agent (see, eg, FIG. 2).
The controller 310 registers the transaction in or deletes it from the queue register 320, and in the address field 330 and
Data can be written to the fields 340 and 350. The controller 310 can also schedule the order of transactions posted on the external bus 170 (FIG. 1). In one embodiment, the controller 3
10 can be a state machine.

【0022】 本発明の一実施形態によれば、BSU 200内における輻輳イベントの間に
、コントローラ310が選択的にプリフェッチ要求をディセーブルすることがで
きる。第1の実施形態においては、トランザクション・キュー300が輻輳状態
にあるとき、まだ外部バス上にポスティングされていないブラインド・プリフェ
ッチ・トランザクションをトランザクション・キューがディセーブルすることが
できる。これは、たとえば、トランザクションがまだポスティングされていなく
ても、そのブラインド・プリフェッチ・トランザクションのステータス・フィー
ルドを完了としてマークすることによって達成することができる。この実施形態
においては、外部バスでコア読み出し要求が完了したとき、そのトランザクショ
ンを外部トランザクション・キュー300から追い出すことができる。
According to one embodiment of the present invention, controller 310 may selectively disable prefetch requests during a congestion event in BSU 200. In the first embodiment, when the transaction queue 300 is congested, the transaction queue can disable blind prefetch transactions that have not yet been posted on the external bus. This can be accomplished, for example, by marking the status field of the blind prefetch transaction as complete, even if the transaction has not yet been posted. In this embodiment, the transaction can be flushed from the external transaction queue 300 when the core read request is completed on the external bus.

【0023】 別の実施形態においては、トランザクション・キューが輻輳状態にあるとき、
トランザクション・キュー300は、キュー内にストアされているが、まだ外部
バス上にポスティングされていないパターン化されたプリフェッチ要求をすべて
追い出すことができる。外部トランザクション・キュー300は、開始されてい
ないプリフェッチ要求を、単純に、関連付けされたキュー・レジスタの割り当て
を解くことによって追い出すことができる。
In another embodiment, when the transaction queue is congested,
The transaction queue 300 can evict any patterned prefetch requests stored in the queue but not yet posted on the external bus. The external transaction queue 300 may evict an unstarted prefetch request by simply deallocating the associated queue register.

【0024】 さらに別の実施形態においては、トランザクション・キューが輻輳状態にあり
、かつトランザクション・キュー300が、すでに開始されたパターン化された
プリフェッチ・トランザクションをストアしているとき、外部トランザクション
・キュー300は、プリフェッチ・ペア内のポスティングされていないプリフェ
ッチ・トランザクションをディセーブルすることができる。ここで、図3のレジ
スタ320−2内に図示されているパターン化されたプリフェッチ要求について
考える。これからわかるように、ステータス・フィールド350は、1番目のプ
リフェッチ・トランザクションはペンディングされているが、外部バス上にまだ
ポスティングされていないことを示している。これに対して、ステータス・フィ
ールド340は、2番目のプリフェッチ・トランザクションが外部バス上にポス
ティングされたことを示している。この実施形態においては、トランザクション
・キュー300が、輻輳イベントに応答して、1番目のトランザクションを完了
としてマークすることができる。この場合の2番目のプリフェッチ要求は、完了
するまで継続することが許容される。それが完了するとトランザクション・キュ
ー300は、ステータス・フィールド340、350がともに完了済みトランザ
クションを識別していることから、レジスタ320−2の割り当てを解除するこ
とができる。
In yet another embodiment, the external transaction queue 300 is when the transaction queue is congested and the transaction queue 300 is storing a patterned prefetch transaction that has already started. Can disable unposted prefetch transactions in a prefetch pair. Now consider the patterned prefetch request illustrated in register 320-2 of FIG. As can be seen, the status field 350 indicates that the first prefetch transaction is pending, but not yet posted on the external bus. In contrast, the status field 340 indicates that the second prefetch transaction was posted on the external bus. In this embodiment, the transaction queue 300 may mark the first transaction as complete in response to a congestion event. The second prefetch request in this case is allowed to continue until completed. Upon completion, transaction queue 300 may deallocate register 320-2 because both status fields 340 and 350 identify completed transactions.

【0025】 図4は、本発明の実施形態に従ってトランザクション・キュー300(図3)
によって実行される方法1000のフローチャートである。輻輳イベントに応答
して、トランザクション・キューは、新しい要求がトランザクション・キュー内
に入力されたか否かを決定することができる(ステップ1010)。新しい要求
の受け取りに応答して、トランザクション・キューはその新しい要求にレジスタ
が使用可能であるか否かを決定することができる(ステップ1020)。可能で
あれば、その要求を使用可能なレジスタ内にストアする(ステップ1030)。
要求のストアは、この分野における従来の方法に従って実行することができる。
トランザクション・キュー300は、その要求のベース・アドレスを決定し、割
り当て済みレジスタの各種のフィールド330〜350内に適切な情報を入力す
ることができる。
FIG. 4 illustrates a transaction queue 300 (FIG. 3) according to an embodiment of the invention.
6 is a flowchart of a method 1000 performed by. In response to the congestion event, the transaction queue may determine whether a new request has entered the transaction queue (step 1010). In response to receipt of the new request, the transaction queue may determine if the register is available for the new request (step 1020). If possible, store the request in an available register (step 1030).
The request store can be performed according to conventional methods in the art.
The transaction queue 300 can determine the base address of the request and enter the appropriate information in various fields 330-350 of the allocated register.

【0026】 ステップ1020において使用可能なレジスタがなかった場合には、トランザ
クション・キュー300は、ポスティングされていないパターン化されたプリフ
ェッチ要求のペアに関連付けされたレジスタの割り当てを解除することができる
(ステップ1040)。このステップの実行において、トランザクション・キュ
ー300は、ステータス・フィールド340、350がともに、それぞれのトラ
ンザクションがまだ外部バスにポスティングされていないことを示しているパタ
ーン化されたプリフェッチ要求の割り当てを解除することができる。開始されて
いないプリフェッチ要求のペアを識別しているレジスタ320がまったくない場
合には、新しく受け取られた要求が停止される(このステップの図示はない)。
この要求は、トランザクション・キュー内に入ることが妨げられる。
If no registers were available in step 1020, transaction queue 300 may deallocate the registers associated with the unposted pair of patterned prefetch requests (step). 1040). In performing this step, the transaction queue 300 deallocates the patterned prefetch request, the status fields 340, 350 of which together indicate that the respective transaction has not yet been posted to the external bus. You can If there are no registers 320 identifying a pair of prefetch requests that have not been started, the newly received request is stopped (this step not shown).
This request is prevented from entering the transaction queue.

【0027】 ステップ1030の結果、あるいはステップ1010において受け取った要求
がなかった場合に、トランザクション・キューは、輻輳モードで動作しているか
否かを決定する(ステップ1050)。否であれば、トランザクション・キュー
300は、方法1000のこの繰り返しを終了する。
As a result of step 1030, or if there was no request received in step 1010, the transaction queue determines whether it is operating in congestion mode (step 1050). If not, transaction queue 300 ends this iteration of method 1000.

【0028】 輻輳モードにおいてトランザクション・キュー300が動作している場合には
、トランザクション・キューは、ペンディングされているブラインド・プリフェ
ッチ・トランザクションをストアしているか否かを決定する(ステップ1060
)。ストアしている場合には、トランザクション・キュー300は、ブラインド
・プリフェッチ・トランザクションの1つをディセーブルすることができる(ス
テップ1070)。ステップ1070は、コア要求またはパターン化されたプリ
フェッチ要求に関連付けされたブラインド・プリフェッチに適用することができ
る。ストアしていない場合、あるいはステップ1070の結果として、この方法
が終了する。
If the transaction queue 300 is operating in the congestion mode, the transaction queue determines whether it is storing a pending blind prefetch transaction (step 1060).
). If so, transaction queue 300 may disable one of the blind prefetch transactions (step 1070). Step 1070 can be applied to blind prefetches associated with core requests or patterned prefetch requests. If not, or as a result of step 1070, the method ends.

【0029】 この方法1000は、輻輳に対して均整のとれた応答を好適に提供する。第1
の応答として、トランザクション・キューは、トランザクション・キューからの
ブラインド・プリフェッチ要求を無効にする。前述したように、プリフェッチ要
求は、クラスとしてコア要求の下位に置かれる。経験から、ブラインド・プリフ
ェッチをパターン化されたプリフェッチの下位に置くと適切であることもわかっ
ている。パターン化されたプリフェッチは、ブラインド・プリフェッチより効率
的である可能性が高い。パターン化されたプリフェッチは、メモリからのコア読
み出しの確立されたパターンに応じて発行される。ブラインド・プリフェッチは
、測定可能な特徴とまったく結びつけられていない。したがって、パターン化さ
れたプリフェッチが、最終的にコアが要求するであろうデータを検索する可能性
が高く、それを残してブラインド・プリフェッチの方を無効にすることを選ぶべ
きである。
The method 1000 preferably provides a well-balanced response to congestion. First
In response, the transaction queue invalidates the blind prefetch request from the transaction queue. As described above, the prefetch request is placed under the core request as a class. Experience has also shown that it is appropriate to place blind prefetches below patterned prefetches. Patterned prefetch is likely to be more efficient than blind prefetch. The patterned prefetch is issued in response to the established pattern of core reads from memory. Blind prefetch is not tied to any measurable feature. Therefore, patterned prefetch is likely to retrieve the data that the core will eventually request, and one should choose to disable blind prefetch, leaving it alone.

【0030】 ブラインド・プリフェッチが無効化されると、新しく受け取られる要求に対し
てレジスタ320が使用可能になるレートが増加する。すでに示したように、ブ
ラインド・プリフェッチは、コア読み出し要求に関連付けされる。コア読み出し
要求は、トランザクション・キューによって扱われる最優先の要求である。これ
らはもっとも高い優先順位で外部バス上にポスティングされる。
When blind prefetch is disabled, the rate at which register 320 is available for newly received requests increases. As previously indicated, blind prefetch is associated with core read requests. The core read request is the highest priority request handled by the transaction queue. These are posted on the external bus with the highest priority.

【0031】 すべてのブラインド・プリフェッチを無効化した後に、なおも輻輳が続く場合
には、トランザクション・キューが、2番目のレベルの優先順位において、進行
中のプリフェッチ要求に関連付けされたペンディングされているパターン化され
たプリフェッチ要求を無効にすることができる(ステップ1080)。プリフェ
ッチ要求の1つがすでに外部バスに対してポスティングされていることから、所
定の時間内にそれが終了することが見込まれる。しかしながら、それが終了した
場合であっても、2番目のペンディングされたプリフェッチ要求(つまりステッ
プ1080において無効化される要求)の状態によって、関連付けされたレジス
タの割り当てが解除されることが防止される。ステップ1080は、ペンディン
グされているプリフェッチ要求を完了としてマークすることによって、ポスティ
ングされたプリフェッチ要求が終了した時点においてレジスタの割り当てが解除
されることを保証する。
If the congestion persists after disabling all blind prefetches, then the transaction queue is pending, at the second level of priority, associated with the in-progress prefetch request. The patterned prefetch request may be overridden (step 1080). Since one of the prefetch requests has already been posted to the external bus, it is expected to finish within a predetermined time. However, even if it does, the state of the second pending prefetch request (ie, the request invalidated in step 1080) prevents the associated register from being deallocated. . Step 1080 ensures that the registers are deallocated at the end of the posted prefetch request by marking the pending prefetch request as complete.

【0032】 3番目のレベルの優先順位において、トランザクション・キューは、新しく受
け取られた要求のために、ペンディングされているプリフェッチ要求のペアをス
トアしているレジスタの割り当てを解除する。これは、新しく受け取られた要求
のためのレジスタがない場合に限って行われる。
At the third level of priority, the transaction queue deallocates the register storing the pair of pending prefetch requests for newly received requests. This is done only if there are no registers for the newly received request.

【0033】 本発明の原理は、いくつかの異なるトリガ・イベントを許容してトランザクシ
ョン・キュー300に、輻輳モードにおいて動作していることを決定させること
である。第1の実施形態においては、トランザクション・キュー300が、キュ
ー内の割り当て済みもしくは割り当てされていないレジスタ320の数を基礎と
して輻輳していることを決定する。たとえば、レジスタの90%もしくは100
%が充満されているとトランザクション・キューが判断した場合には、それが輻
輳モードで動作していると決定することができる。
The principle of the present invention is to allow several different trigger events to cause the transaction queue 300 to determine that it is operating in a congestion mode. In the first embodiment, the transaction queue 300 determines that it is congested based on the number of allocated or unallocated registers 320 in the queue. For example, 90% of registers or 100
If the transaction queue determines that the% is full, then it can determine that it is operating in congestion mode.

【0034】 第2の例においては、トランザクション・キューが、測定された外部バスの待
ち時間に基づいて輻輳イベントの発生を決定することができる。周知のように、
通常エージェントは、あらかじめ決定されたバス・プロトコルに従って動作する
。バス・プロトコルは、新しい要求を外部バス上にいつポスティングできるかと
いうこと、および可能性のある多くのエージェントのいずれに対し、各要求「ス
ロット」に関して、すなわちバス上に新しい要求をポスティングするそれぞれの
機会に関して、バス上に新しい要求のポスティングが許されるかということを管
理する規則を設定することができる。その種の実施形態においてトランザクショ
ン・キュー300は、トランザクション・キュー300がバスのオーナーシップ
を獲得するまでに通過する要求スロットの数を測定することができる。測定され
たスロットの数があらかじめ決めたスレッショルドを超えていれば、トランザク
ション・キュー300は、輻輳イベントが生じていると決定することができる。
In a second example, the transaction queue may determine the occurrence of a congestion event based on the measured external bus latency. As we all know,
Usually agents operate according to a predetermined bus protocol. The bus protocol tells when a new request can be posted on the external bus, and to any of the many possible agents, for each request "slot", ie for each posting of the new request on the bus. With respect to opportunity, rules can be set to govern whether posting of new requests is allowed on the bus. In such an embodiment, transaction queue 300 may measure the number of request slots that transaction queue 300 will pass through before gaining ownership of the bus. If the measured number of slots exceeds a predetermined threshold, the transaction queue 300 can determine that a congestion event is occurring.

【0035】 別の実施形態によれば、トランザクション・キュー300は、検出された輻輳
のタイプに応じて輻輳イベントに対する応答を変化させることができる。例とし
てトランザクション・キューが、前述したうちの2つのタイプのトリガ・イベン
トの検出が可能な場合を考える:すなわち(1)使用可能なレジスタの数が特定
のスレッショルド数を下回っている場合(つまり、トランザクション・キューが
完全に充満されている場合)、および(2)外部バス上の測定された待ち時間が
スレッショルド値を超えている場合である。一実施形態によれば、トランザクシ
ョン・キュー300が完全に充満されていれば、トランザクション・キュー30
0がすべてのプリフェッチ要求を無効にすることになるが、測定された外部バス
上の待ち時間がスレッショルドを超える場合には、ブラインド・プリフェッチ要
求だけを無効にすればよい。この実施形態は、単純な実施を提供し、かつ深刻性
に関して高低の輻輳イベントの間における明確な区別を提供することから有利な
ものとなり得る。
According to another embodiment, the transaction queue 300 may change its response to a congestion event depending on the type of congestion detected. As an example, consider the case where a transaction queue is able to detect two types of triggering events mentioned above: (1) when the number of available registers is below a certain threshold (ie, Transaction queue is completely full), and (2) the measured latency on the external bus exceeds the threshold value. According to one embodiment, if the transaction queue 300 is completely full, the transaction queue 30
A 0 will invalidate all prefetch requests, but if the measured latency on the external bus exceeds the threshold, then only the blind prefetch request need be invalidated. This embodiment may be advantageous as it provides a simple implementation and provides a clear distinction between high and low congestion events in terms of severity.

【0036】 以上の議論は、ペンディング要求とポスティングされている要求を区別してい
る。これにおいて、ポスティングされている要求とは、外部バス上においてすで
に開始された要求である。通常、外部バスは、あらかじめ決定されたバス・プロ
トコルによって定義され、それは、トランザクションが完了に向かって通過して
行く漸進的な段階を指定する。上記の実施形態において説明した輻輳マネジメン
ト方法は、すでにポスティングされているトランザクションを妨害するものでは
ない。これに対して、ペンディング要求は、BSUバス内にストアされているが
外部バス上においてまだ開始されていない要求である。本発明の輻輳マネジメン
ト方法は、上記の実施形態の中で説明したテクニックに従ってペンディング要求
を無効にすることができる。
The above discussion distinguishes between pending and posted requests. Here, a posted request is a request already initiated on the external bus. External buses are typically defined by a predetermined bus protocol, which specifies the gradual phase through which a transaction passes toward completion. The congestion management methods described in the above embodiments do not interfere with already posted transactions. A pending request, on the other hand, is a request stored in the BSU bus but not yet initiated on the external bus. The congestion management method of the present invention can invalidate pending requests according to the techniques described in the above embodiments.

【0037】 すでに示したように、本発明の実施形態は、動的な優先順位スキームに従って
動作することができるトランザクション・キュー300を提供する。第1の優先
順位スキームは、輻輳のない状態におけるトランザクション・キューに対して定
義することができる。しかしながら、輻輳が検出されたときには、トランザクシ
ョン・キューが第2の優先順位スキームを実施することができる。上記の実施形
態においてはトランザクション・キューがプリフェッチ要求を無効にする。
As previously indicated, embodiments of the present invention provide a transaction queue 300 that can operate according to a dynamic priority scheme. The first priority scheme can be defined for a transaction queue in a congestion free state. However, the transaction queue may implement a second priority scheme when congestion is detected. In the above embodiment, the transaction queue invalidates the prefetch request.

【0038】 以上の実施形態において説明した輻輳マネジメント・テクニックは、トランザ
クション・マネジメント・システムによって処理される読み出し要求に向けられ
ている。周知のように、BSUは別のタイプの要求、たとえばエージェント内に
データを読み込ませることが意図されていない書き込み要求といった別のタイプ
の要求を処理することもある。前述の実施形態において説明した輻輳マネジメン
ト・テクニックには、トランザクション・マネジメント・システムが、こういっ
たそのほかのタイプの要求を処理する方法を妨害することが意図されていない。
The congestion management techniques described in the above embodiments are directed to read requests processed by the transaction management system. As is well known, the BSU may handle other types of requests, such as write requests that are not intended to read data in the agent. The congestion management techniques described in the above embodiments are not intended to interfere with how the transaction management system handles these other types of requests.

【0039】 ここでは、本発明のいくつかの実施形態を詳細に示し、説明してきた。しかし
ながら、本発明の修正ならびに変形が上記の教示によってカバーされ、また本発
明の精神ならびに意図された範囲から逸脱することなく、付随する特許請求の範
囲内に含まれることを認識されるであろう。
Several embodiments of the present invention have been shown and described in detail herein. It will be appreciated, however, that modifications and variations of the present invention are covered by the above teachings and are within the scope of the appended claims without departing from the spirit and intended scope of the invention. .

【図面の簡単な説明】[Brief description of drawings]

【図1】 マルチ‐エージェント・コンピュータ・システムのブロック図である。[Figure 1]   FIG. 3 is a block diagram of a multi-agent computer system.

【図2】 エージェントのバス・シーケンシング・ユニットを例示したブロック図である
FIG. 2 is a block diagram illustrating an agent's bus sequencing unit.

【図3】 本発明の一実施形態に従ったエージェントの外部トランザクション・キューの
ブロック図である。
FIG. 3 is a block diagram of an agent's external transaction queue in accordance with one embodiment of the present invention.

【図4】 本発明の一実施形態に従った輻輳マネジメント方法のフローチャートである。[Figure 4]   6 is a flowchart of a congestion management method according to an embodiment of the present invention.

───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE,TR),OA(BF ,BJ,CF,CG,CI,CM,GA,GN,GW, ML,MR,NE,SN,TD,TG),AP(GH,G M,KE,LS,MW,MZ,SD,SL,SZ,TZ ,UG,ZW),EA(AM,AZ,BY,KG,KZ, MD,RU,TJ,TM),AE,AG,AL,AM, AT,AU,AZ,BA,BB,BG,BR,BY,C A,CH,CN,CR,CU,CZ,DE,DK,DM ,DZ,EE,ES,FI,GB,GD,GE,GH, GM,HR,HU,ID,IL,IN,IS,JP,K E,KG,KP,KR,KZ,LC,LK,LR,LS ,LT,LU,LV,MA,MD,MG,MK,MN, MW,MX,MZ,NO,NZ,PL,PT,RO,R U,SD,SE,SG,SI,SK,SL,TJ,TM ,TR,TT,TZ,UA,UG,UZ,VN,YU, ZA,ZW (72)発明者 プルドヴィ,チナ・ビイ アメリカ合衆国・97229・オレゴン州・ポ ートランド・ノースウエスト ディアフィ ールド ドライブ・17924 (72)発明者 マール,デボラ・ティ アメリカ合衆国・97210・オレゴン州・ポ ートランド・ノースウエスト ペティグル ーブ ストリート・2564 Fターム(参考) 5B061 BB04 BB06 BC02 PP04 ─────────────────────────────────────────────────── ─── Continued front page    (81) Designated countries EP (AT, BE, CH, CY, DE, DK, ES, FI, FR, GB, GR, IE, I T, LU, MC, NL, PT, SE, TR), OA (BF , BJ, CF, CG, CI, CM, GA, GN, GW, ML, MR, NE, SN, TD, TG), AP (GH, G M, KE, LS, MW, MZ, SD, SL, SZ, TZ , UG, ZW), EA (AM, AZ, BY, KG, KZ, MD, RU, TJ, TM), AE, AG, AL, AM, AT, AU, AZ, BA, BB, BG, BR, BY, C A, CH, CN, CR, CU, CZ, DE, DK, DM , DZ, EE, ES, FI, GB, GD, GE, GH, GM, HR, HU, ID, IL, IN, IS, JP, K E, KG, KP, KR, KZ, LC, LK, LR, LS , LT, LU, LV, MA, MD, MG, MK, MN, MW, MX, MZ, NO, NZ, PL, PT, RO, R U, SD, SE, SG, SI, SK, SL, TJ, TM , TR, TT, TZ, UA, UG, UZ, VN, YU, ZA, ZW (72) Inventor Pludhobi, Chinaby             USA ・ 97229 ・ Oregon ・ Po             Orlando Northwest Diafi             Field Drive 17924 (72) Inventor Marl, Deborah Tee             U.S.A. 97210 Oregon PO             Zealand Northwest Petitgle             Grove Street 2564 F term (reference) 5B061 BB04 BB06 BC02 PP04

Claims (26)

【特許請求の範囲】[Claims] 【請求項1】 動的優先順位スキームに従って動作するエージェント用のト
ランザクション・キューであって、デフォルトの優先順位スキームに従って動作
し、かつ輻輳イベントが検出されたときには、第2の優先順位スキームを使用す
るトランザクション・キュー。
1. A transaction queue for an agent operating according to a dynamic priority scheme, operating according to a default priority scheme, and using a second priority scheme when a congestion event is detected. Transaction queue.
【請求項2】 エージェント内における、外部トランザクションのためのマ
ネジメント方法であって: 複数の読み出し要求のデータをキューするステップ; キューが行われた要求のそれぞれに関して、それぞれの要求に関連付けされた
ブラインド・プリフェッチ・トランザクションのデータをストアするステップ; トランザクション輻輳イベントが発生したときに、選択したストア済みのプリ
フェッチ要求をディセーブルするステップ; を包含するマネジメント方法。
2. A management method for an external transaction within an agent: queuing data of a plurality of read requests; for each queued request, a blind associated with each request. Storing prefetch transaction data; disabling selected stored prefetch requests when a transaction congestion event occurs;
【請求項3】 前記トランザクション輻輳イベントは、キューされた要求の
数が、あらかじめ決めたスレッショルドを超えると発生することを特徴とする請
求項1記載のマネジメント方法。
3. The management method according to claim 1, wherein the transaction congestion event occurs when the number of queued requests exceeds a predetermined threshold.
【請求項4】 前記トランザクション輻輳イベントは、キューされた要求を
ストアするキューが充満されると発生することを特徴とする請求項1記載のマネ
ジメント方法。
4. The management method according to claim 1, wherein the transaction congestion event occurs when a queue storing queued requests is full.
【請求項5】 前記トランザクション輻輳イベントは、ポスティングされた
トランザクションの、測定された待ち時間があらかじめ決めたスレッショルドを
超えると発生することを特徴とする請求項1記載のマネジメント方法。
5. The management method according to claim 1, wherein the transaction congestion event occurs when a measured latency of a posted transaction exceeds a predetermined threshold.
【請求項6】 エージェント内における、外部トランザクションのためのマ
ネジメント方法であって: 複数の外部バス・トランザクションのデータをキューするステップ; 少なくとも1つのキューが行われたトランザクションに関して、それぞれのト
ランザクションに関連するブラインド・プリフェッチ・トランザクションのデー
タをストアするステップ; トランザクション輻輳イベントが発生したときに、前記ブラインド・プリフェ
ッチ・トランザクションをディセーブルするステップ; を包含するマネジメント方法。
6. A management method for external transactions within an agent, the method comprising: queuing data for a plurality of external bus transactions; at least one queue being associated with each transaction with respect to the performed transaction. A method of storing data of a blind prefetch transaction; a step of disabling the blind prefetch transaction when a transaction congestion event occurs.
【請求項7】 前記トランザクション輻輳イベントは、キューされている要
求の数が、あらかじめ決めたスレッショルドを超えると発生することを特徴とす
る請求項6記載のマネジメント方法。
7. The management method according to claim 6, wherein the transaction congestion event occurs when the number of queued requests exceeds a predetermined threshold.
【請求項8】 前記トランザクション輻輳イベントは、キューされている要
求をストアするキューが充満されると発生することを特徴とする請求項6記載の
マネジメント方法。
8. The management method according to claim 6, wherein the transaction congestion event occurs when a queue for storing queued requests is full.
【請求項9】 前記トランザクション輻輳イベントは、ポスティングされた
トランザクションの、測定された待ち時間があらかじめ決めたスレッショルドを
超えると発生することを特徴とする請求項6記載のマネジメント方法。
9. The management method according to claim 6, wherein the transaction congestion event occurs when a measured latency of a posted transaction exceeds a predetermined threshold.
【請求項10】 エージェント内における、外部トランザクションのための
マネジメント方法であって: 複数の読み出し要求、エージェント・コアによって行われている実行に関連す
る特定の読み出し要求、プリフェッチが行われているデータに関連する特定の別
の読み出し要求のデータをキューするステップ; トランザクション輻輳イベントが発生したときに、前記プリフェッチ要求をデ
ィセーブルするステップ; を包含するマネジメント方法。
10. A method of management within an agent for external transactions comprising: a plurality of read requests, a particular read request associated with execution being performed by an agent core, data being prefetched. Queuing data for another particular read request of interest; disabling the prefetch request when a transaction congestion event occurs;
【請求項11】 前記トランザクション輻輳イベントは、キューされている
要求の数が、あらかじめ決めたスレッショルドを超えると発生することを特徴と
する請求項10記載のマネジメント方法。
11. The management method of claim 10, wherein the transaction congestion event occurs when the number of queued requests exceeds a predetermined threshold.
【請求項12】 前記トランザクション輻輳イベントは、キューされている
要求をストアするキューが充満されると発生することを特徴とする請求項10記
載のマネジメント方法。
12. The management method of claim 10, wherein the transaction congestion event occurs when a queue that stores queued requests is full.
【請求項13】 前記トランザクション輻輳イベントは、ポスティングされ
たトランザクションの、測定された待ち時間があらかじめ決めたスレッショルド
を超えると発生することを特徴とする請求項10記載のマネジメント方法。
13. The management method according to claim 10, wherein the transaction congestion event occurs when a measured latency of a posted transaction exceeds a predetermined threshold.
【請求項14】 エージェント内における、外部トランザクションのための
マルチ‐モード・マネジメント方法であって: 複数のコア読み出し要求のデータをキューするステップ; 各コア読み出し要求に関して、それぞれのコア読み出し要求に関連付けされた
ブラインド・プリフェッチ・トランザクションのデータをストアするステップ; コア読み出し要求のパターンに関連するプリフェッチ要求のデータをキューす
るステップ; 第1のモードにおいて、トランザクション輻輳イベントが発生すると、ブライ
ンド・プリフェッチ・トランザクションをディセーブルするステップ; 第2のモードにおいて、トランザクション輻輳イベントが発生すると、プリフ
ェッチ要求をディセーブルするステップ; を包含するマネジメント方法。
14. A multi-mode management method within an agent for external transactions: queuing data for multiple core read requests; for each core read request, associated with each core read request. Stored data of a blind prefetch transaction; queuing data of a prefetch request related to a pattern of core read requests; Disable step; Disable the prefetch request when a transaction congestion event occurs in the second mode.
【請求項15】 前記トランザクション輻輳イベントは、キューされている
要求の数が、あらかじめ決めたスレッショルドを超えると発生することを特徴と
する請求項14記載のマネジメント方法。
15. The management method according to claim 14, wherein the transaction congestion event occurs when the number of queued requests exceeds a predetermined threshold.
【請求項16】 前記トランザクション輻輳イベントは、キューされている
要求をストアするキューが充満されると発生することを特徴とする請求項14記
載のマネジメント方法。
16. The management method of claim 14, wherein the transaction congestion event occurs when a queue that stores queued requests is full.
【請求項17】 前記トランザクション輻輳イベントは、ポスティングされ
たトランザクションの、測定された待ち時間があらかじめ決めたスレッショルド
を超えると発生することを特徴とする請求項14記載のマネジメント方法。
17. The management method according to claim 14, wherein the transaction congestion event occurs when a measured latency of a posted transaction exceeds a predetermined threshold.
【請求項18】 コントローラ; 複数のキュー・レジスタであって、それぞれがアドレスに関連するトランザク
ションのペアに関連付けされたアドレス・フィールドおよびステータス・フィー
ルドを有するキュー・レジスタ;を有するトランザクション・キューであって、 前記コントローラが、輻輳イベントに応答して、レジスタ内のステータス・フ
ィールドの1つを修正してそれぞれのトランザクションを無効にすることを特徴
とするトランザクション・キュー。
18. A transaction queue comprising: a controller; a plurality of queue registers, each queue register having an address field and a status field associated with a pair of transactions associated with an address. A transaction queue in which the controller modifies one of the status fields in the register to invalidate each transaction in response to a congestion event.
【請求項19】 前記トランザクション・キューが、コア読み出し要求、ブ
ラインド・プリフェッチ要求、およびパターン化されたプリフェッチ要求をスト
アし、かつ 前記無効にするトランザクションが、ブラインド・プリフェッチ要求であるこ
とを特徴とする請求項18記載のトランザクション・キュー。
19. The transaction queue stores a core read request, a blind prefetch request, and a patterned prefetch request, and the invalidating transaction is a blind prefetch request. The transaction queue according to claim 18.
【請求項20】 有効なブラインド・プリフェッチ要求が存在しない場合に
、前記コントローラが、パターン化されたプリフェッチ要求を無効にすることを
特徴とする請求項19記載のトランザクション・キュー。
20. The transaction queue of claim 19, wherein the controller invalidates a patterned prefetch request if there is no valid blind prefetch request.
【請求項21】 エージェントのバス・シーケンシング・ユニットであって
: アービタ; 前記アービタに結合される内部キャッシュ; 前記アービタに結合される、前記エージェントによって実行されるべき外部ト
ランザクションのデータをストアするトランザクション・キューであって、前記
トランザクションは、コア読み出し要求、ブラインド・プリフェッチ要求、およ
びパターン化されたプリフェッチ要求のグループから選択されるトランザクショ
ン・キュー;および、 前記トランザクション・キューに結合される外部バス・コントローラ;を包含
し、 前記バス・シーケンシング・ユニット内における輻輳イベントに応答して、前
記トランザクション・キューが、選択されたトランザクションを無効にすること
を特徴とするバス・シーケンシング・ユニット。
21. An agent bus sequencing unit, comprising: an arbiter; an internal cache coupled to the arbiter; a transaction storing data for an external transaction to be executed by the agent, coupled to the arbiter. A transaction queue, wherein the transaction is selected from the group of core read requests, blind prefetch requests, and patterned prefetch requests; and an external bus controller coupled to the transaction queue A bus sequence in which the transaction queue invalidates a selected transaction in response to a congestion event in the bus sequencing unit. Nshingu unit.
【請求項22】 前記選択されたトランザクションが、ブラインド・プリフ
ェッチ要求であることを特徴とする請求項21記載のバス・シーケンシング・ユ
ニット。
22. The bus sequencing unit of claim 21, wherein the selected transaction is a blind prefetch request.
【請求項23】 前記トランザクション・キュー内に有効なブラインド・プ
リフェッチ要求が存在しない場合には、前記選択されたトランザクションがパタ
ーン化されたプリフェッチ要求となることを特徴とする請求項21記載のバス・
シーケンシング・ユニット。
23. The bus of claim 21, wherein the selected transaction is a patterned prefetch request if there is no valid blind prefetch request in the transaction queue.
Sequencing unit.
【請求項24】 外部トランザクションが、コア読み出し要求とブラインド
・プリフェッチ要求のペアおよびパターン化されたプリフェッチ要求のペアから
なるセットから採用されたペアとしてトランザクション・キュー内にストアされ
る、外部トランザクションに関する輻輳マネジメント方法において: トランザクション・キューにおいて新しい要求を受け取るステップ; 前記トランザクション・キューが、前記新しい要求をストアするためのスペー
スを有するか否かを決定し、否であれば、 前記トランザクション・キューからパターン化されたプリフェッチ要求のペ
アを再除し、かつ 前記新しい要求を前記トランザクション・キュー内にストアするステップ; を包含することを特徴とする輻輳マネジメント方法。
24. Congestion on an external transaction, wherein the external transaction is stored in a transaction queue as a pair taken from a set of core read request and blind prefetch request pairs and patterned prefetch request pairs. In the management method: receiving a new request in a transaction queue; determining whether the transaction queue has space to store the new request, and if not patterning from the transaction queue Redissolving the pair of prefetch requests made and storing the new request in the transaction queue.
【請求項25】 さらに、ブラインド・プリフェッチ要求を無効にするステ
ップを包含することを特徴とする請求項24記載の輻輳マネジメント方法。
25. The congestion management method according to claim 24, further comprising the step of invalidating the blind prefetch request.
【請求項26】 さらに、前記ペア内の第2のパターン化されたプリフェッ
チ要求のポスティングが行われたとき、第1のパターン化されたプリフェッチ要
求を無効にするステップを包含することを特徴とする請求項23記載の輻輳マネ
ジメント方法。
26. The method further comprising invalidating the first patterned prefetch request when the second patterned prefetch request in the pair is posted. The congestion management method according to claim 23.
JP2001549203A 1999-12-28 2000-11-28 Dynamic priority external transaction system Expired - Fee Related JP4219106B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/474,011 1999-12-28
US09/474,011 US6654837B1 (en) 1999-12-28 1999-12-28 Dynamic priority external transaction system
PCT/US2000/032154 WO2001048618A2 (en) 1999-12-28 2000-11-28 Dynamic priority external transaction system

Publications (3)

Publication Number Publication Date
JP2003521029A true JP2003521029A (en) 2003-07-08
JP2003521029A5 JP2003521029A5 (en) 2005-11-17
JP4219106B2 JP4219106B2 (en) 2009-02-04

Family

ID=23881859

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001549203A Expired - Fee Related JP4219106B2 (en) 1999-12-28 2000-11-28 Dynamic priority external transaction system

Country Status (11)

Country Link
US (2) US6654837B1 (en)
EP (2) EP1323045B1 (en)
JP (1) JP4219106B2 (en)
CN (3) CN101520759B (en)
AT (1) ATE317991T1 (en)
AU (1) AU1793701A (en)
DE (2) DE60026068T2 (en)
HK (1) HK1066610A1 (en)
MX (1) MXPA02005822A (en)
TW (1) TW484065B (en)
WO (1) WO2001048618A2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008159057A (en) * 2006-12-22 2008-07-10 Intel Corp Prefetch from dynamic random access memory to static random access memory
RU2619067C2 (en) * 2012-12-04 2017-05-11 Тойота Дзидося Кабусики Кайся Device for controlling battery charge, method for charging control, computer program and recording medium
US9703730B2 (en) 2014-02-12 2017-07-11 Socionext Inc. Arbitration circuit and processing method of arbitration circuit

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3908482B2 (en) * 2001-06-22 2007-04-25 富士通株式会社 INPUT / OUTPUT CONTROL DEVICE, INPUT / OUTPUT CONTROL METHOD, AND INFORMATION STORAGE SYSTEM
US6732242B2 (en) 2002-03-28 2004-05-04 Intel Corporation External bus transaction scheduling system
US7315912B2 (en) * 2004-04-01 2008-01-01 Nvidia Corporation Deadlock avoidance in a bus fabric
US20060123003A1 (en) * 2004-12-08 2006-06-08 International Business Machines Corporation Method, system and program for enabling non-self actuated database transactions to lock onto a database component
US8984198B2 (en) * 2009-07-21 2015-03-17 Microchip Technology Incorporated Data space arbiter
CN101908000B (en) * 2010-07-08 2012-10-10 北京航空航天大学 Method for blocking and awakening transaction threads in hardware transactional memory system
CN101930371A (en) * 2010-09-16 2010-12-29 复旦大学 Software quality run-time optimizing method based on control theory and goal inference
US9009414B2 (en) * 2010-09-21 2015-04-14 Texas Instruments Incorporated Prefetch address hit prediction to reduce memory access latency
US8769175B2 (en) * 2011-03-09 2014-07-01 International Business Machines Corporation Adjustment of post and non-post packet transmissions in a communication interconnect
CN102183923B (en) * 2011-04-26 2013-06-05 中国工商银行股份有限公司 Computer related event executing control method and system
US9251108B2 (en) * 2012-11-05 2016-02-02 International Business Machines Corporation Managing access to shared buffer resources
US20180081749A1 (en) * 2013-12-04 2018-03-22 International Business Machines Corporation Performance ranking of read requests in a distributed storage network
CN103984652B (en) * 2014-05-28 2017-12-19 山东超越数控电子有限公司 A kind of Beidou communication method based on Loongson platform
KR20160018204A (en) * 2014-08-08 2016-02-17 삼성전자주식회사 Electronic device, On-Chip memory and operating method of the on-chip memory
US10496577B2 (en) * 2017-02-09 2019-12-03 Hewlett Packard Enterprise Development Lp Distribution of master device tasks among bus queues
US10387320B2 (en) 2017-05-12 2019-08-20 Samsung Electronics Co., Ltd. Integrated confirmation queues
US10983836B2 (en) 2018-08-13 2021-04-20 International Business Machines Corporation Transaction optimization during periods of peak activity

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE414087B (en) 1977-02-28 1980-07-07 Ellemtel Utvecklings Ab DEVICE IN A COMPUTER SYSTEM FOR SENDING SIGNALS FROM A PROCESSOR TO ONE OR MANY OTHER PROCESSORS WHERE PRIORITY SIGNALS ARE SENT DIRECTLY WITHOUT TIME DELAY AND OPRIORATED SIGNALS ORDER ...
US5056041A (en) * 1986-12-31 1991-10-08 Texas Instruments Incorporated Data processing apparatus with improved bit masking capability
JPH0664567B2 (en) * 1989-12-25 1994-08-22 株式会社日立製作所 Multiprocessor system
US5230078A (en) * 1991-08-05 1993-07-20 Motorola Inc. Method for a console to quickly monitor a group
US5666494A (en) * 1995-03-31 1997-09-09 Samsung Electronics Co., Ltd. Queue management mechanism which allows entries to be processed in any order
US5937205A (en) 1995-12-06 1999-08-10 International Business Machines Corporation Dynamic queue prioritization by modifying priority value based on queue's level and serving less than a maximum number of requests per queue
US5673413A (en) * 1995-12-15 1997-09-30 International Business Machines Corporation Method and apparatus for coherency reporting in a multiprocessing system
US5761452A (en) 1996-03-18 1998-06-02 Advanced Micro Devices, Inc. Bus arbiter method and system
US5724613A (en) 1996-05-06 1998-03-03 Vlsi Technology, Inc. System and method for automatically enabling and disabling a prefetching capability
US6401212B1 (en) * 1997-08-21 2002-06-04 Texas Instruments Incorporated Microprocessor circuits, systems, and methods for conditioning information prefetching based on resource burden
US6341335B1 (en) * 1997-10-29 2002-01-22 Hitachi, Ltd. Information processing system for read ahead buffer memory equipped with register and memory controller
US6484239B1 (en) * 1997-12-29 2002-11-19 Intel Corporation Prefetch queue
US6148372A (en) * 1998-01-21 2000-11-14 Sun Microsystems, Inc. Apparatus and method for detection and recovery from structural stalls in a multi-level non-blocking cache system
US6076130A (en) * 1998-03-19 2000-06-13 Hewlett-Packard Company System and method for efficient communication between buses
US6446143B1 (en) * 1998-11-25 2002-09-03 Compaq Information Technologies Group, L.P. Methods and apparatus for minimizing the impact of excessive instruction retrieval
US6286074B1 (en) * 1999-03-24 2001-09-04 International Business Machines Corporation Method and system for reading prefetched data across a bridge system
US6330647B1 (en) * 1999-08-31 2001-12-11 Micron Technology, Inc. Memory bandwidth allocation based on access count priority scheme
US6553446B1 (en) * 1999-09-29 2003-04-22 Silicon Graphics Inc. Modular input/output controller capable of routing packets over busses operating at different speeds
US6470427B1 (en) * 1999-11-09 2002-10-22 International Business Machines Corporation Programmable agent and method for managing prefetch queues
US6704817B1 (en) * 2000-08-31 2004-03-09 Hewlett-Packard Development Company, L.P. Computer architecture and system for efficient management of bi-directional bus

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008159057A (en) * 2006-12-22 2008-07-10 Intel Corp Prefetch from dynamic random access memory to static random access memory
JP4658112B2 (en) * 2006-12-22 2011-03-23 インテル コーポレイション Prefetching from dynamic random access memory to static random access memory
RU2619067C2 (en) * 2012-12-04 2017-05-11 Тойота Дзидося Кабусики Кайся Device for controlling battery charge, method for charging control, computer program and recording medium
US9703730B2 (en) 2014-02-12 2017-07-11 Socionext Inc. Arbitration circuit and processing method of arbitration circuit

Also Published As

Publication number Publication date
TW484065B (en) 2002-04-21
WO2001048618A2 (en) 2001-07-05
EP1624379A3 (en) 2006-04-26
EP1323045B1 (en) 2006-02-15
US7143242B2 (en) 2006-11-28
ATE317991T1 (en) 2006-03-15
CN100492332C (en) 2009-05-27
HK1066610A1 (en) 2005-03-24
AU1793701A (en) 2001-07-09
US20040059854A1 (en) 2004-03-25
CN1503947A (en) 2004-06-09
EP1624379B1 (en) 2008-07-02
EP1624379A2 (en) 2006-02-08
CN101520759B (en) 2011-12-28
WO2001048618A3 (en) 2002-03-07
CN101520759A (en) 2009-09-02
JP4219106B2 (en) 2009-02-04
US6654837B1 (en) 2003-11-25
DE60026068D1 (en) 2006-04-20
CN101539896A (en) 2009-09-23
DE60026068T2 (en) 2006-11-02
MXPA02005822A (en) 2003-12-11
EP1323045A2 (en) 2003-07-02
DE60039375D1 (en) 2008-08-14

Similar Documents

Publication Publication Date Title
JP2003521029A (en) Dynamic priority external transaction system
US7133981B2 (en) Prioritized bus request scheduling mechanism for processing devices
US6578116B2 (en) Snoop blocking for cache coherency
US6742085B2 (en) Prefetch queue
US5664148A (en) Cache arrangement including coalescing buffer queue for non-cacheable data
US20060112255A1 (en) Method and apparatus for determining a dynamic random access memory page management implementation
US20100125677A1 (en) Cache Stashing Processor Control Messages
US7330940B2 (en) Method and system for cache utilization by limiting prefetch requests
CN107003962B (en) Method and device for maintaining cache consistency in computing system and computing system
JPH0531177B2 (en)
US20050251660A1 (en) Method and system for specualtively sending processor-issued store operations to a store queue with full signal asserted
US6754775B2 (en) Method and apparatus for facilitating flow control during accesses to cache memory
USRE40921E1 (en) Mechanism for efficiently processing deferred order-dependent memory access transactions in a pipelined system
US6928525B1 (en) Per cache line semaphore for cache access arbitration
US5809550A (en) Method and apparatus for pushing a cacheable memory access operation onto a bus controller queue while determining if the cacheable memory access operation hits a cache
US6209068B1 (en) Read line buffer and signaling protocol for processor
US7631152B1 (en) Determining memory flush states for selective heterogeneous memory flushes
US20050010711A1 (en) Buffer page roll implementation for PCI-X block read transactions
JPH0773035A (en) Multiprocessor system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040401

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040401

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080129

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080430

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080509

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080529

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080605

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080630

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: 20081104

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081111

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111121

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121121

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131121

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees