JP2004508634A - 分割トランザクション相互接続のスループットを改善するための中間バッファ制御 - Google Patents
分割トランザクション相互接続のスループットを改善するための中間バッファ制御 Download PDFInfo
- Publication number
- JP2004508634A JP2004508634A JP2002524831A JP2002524831A JP2004508634A JP 2004508634 A JP2004508634 A JP 2004508634A JP 2002524831 A JP2002524831 A JP 2002524831A JP 2002524831 A JP2002524831 A JP 2002524831A JP 2004508634 A JP2004508634 A JP 2004508634A
- Authority
- JP
- Japan
- Prior art keywords
- data transfer
- intermediate buffer
- data
- transfer request
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
Abstract
回路構成、装置および方法は、分割トランザクション相互接続、即ちバス16aを伴う中間バッファ28内へのデータの転送を、中間バッファ28内の空きペースの量とそのデータ転送に結び付けられたデータ転送リクエストがデータ転送リクエストのターゲットである共有リソース12において処理される準備がされているか否かとの両方に基づいてそのような転送を調整することによって、制御する。従って、少なくともある形式のデータ転送リクエストのための中間バッファ28内へのデータ待機転送が共有リソース12によって処理される準備がまだできていないデータ転送リクエストと関連付けられている場合は、いつでも、中間バッファ28内へのデータ転送が禁止され、よって、相互接続16aは自由に他の形式の未処理の転送リクエストを処理し、それによって、そのリクエストは待ち時間の削減を達成させることが可能となる。例えば、データ転送リクエストは共有メモリ62へのグラフィック専用高速ポート(Accelerated Graphics Port(AGP))書き込みトランザクションを示し、それにより、中間バッファ28のための制御ロジック34はそのトランザクションに関連付けられた書き込みデータを記憶するために使用され、少なくとも1ブロックの空きペース(書き込みトランザクションを開始するのに必要なスペースの最小量を表す)が中間バッファ28内に存在し、並びに、その共有メモリ62においてトランザクションを処理する準備ができているということの両方を満たさない限り、AGP書き込みトランザクションと関連付けられた書き込みデータの記憶を選択的に禁止するように構成されている。
Description
【0001】
本発明は、一般に、電子バスアーキテクチャおよびそのような相互接続に関し、特に、分割トランザクションを用いた複数のリクエスタによるメモリなどの共有リソースのアクセスに関する。
【0002】
コンピュータや他の電子装置に益々困難なタスクを処理することを要求するのに従い、そのような装置には益々高い性能が求められることになる。情報がそのような装置間にて転送される速度は電子システムの全体の性能に重要な影響をもたらし得るので、多くの装置に特に関連するものとしては、例えば、相互接続された装置間の通信速度または“バンド幅” がある。
【0003】
複数の電子装置を互いに結合する1つの方法としては、“バス”を用いることによって、多くの電子装置がメモリなどの共有リソースにアクセスすることを可能とするために頻繁に用いられる相互接続をすることである。バス構造において、バスと結合された各装置は、バスに送信された信号を、送信された信号に注意を払っている(バス上への“アドレス”送信によってしばしば示される)意図された目的の装置のみで受信する。アドレス指定されていないいずれの装置もその送信信号を無視する。
【0004】
分割トランザクションバスは、情報転送がリクエスタによって発せられている個々の“トランザクション”を用いて、アドレス相(address phase)およびデータ相(data phase)の両方を含む各トランザクションで処理されるバス構造の特定の構成である。典型的には、アドレス相の間に、データ転送のロケーションおよびデータの両方は、(例えば、読み出し、書き込みなどの)実行をさせる種のトランザクションと同様に指定される。例えば、トランザクションのアドレス相は、読み出しリクエストがターゲットとなる装置の特定のアドレスに記憶されている情報のうち16バイトを得ることを実行する、という要求をしてもよい。次に、データ相の間に、要求された現在の情報は、ターゲットとなる装置から要求をした装置までをバスを介して転送される。
【0005】
分割トランザクションバスの重要な特徴は、トランザクションのアドレス相およびデータ相が互いに“分割(split)”されており若しくは逆多重化されており、それによりそのデータ相が任意の固定された時点においてアドレス相に関連して機能することを要求されないことである。アドレス相およびデータ相の分割は、他の生成動作(productive work)がトランザクションのアドレス相およびデータ相の間の期間に機能し得るので、分割トランザクションバスの性能をしばしば改善する。例えば、ターゲットとなる装置にとってトランザクションのアドレス相を受信した後バスを介して要求されたデータを送信するためには、2、3バスサイクルかかる場合がある。従って、そのしばらくの間、要求されたデータが送信されるのを待機し、バスをアイドル状態にしておくことなく、他のトランザクションがそのバスを介し始めることができる(“パイプライン”として知られる処理である)。いすれのバスからも得られる最高の性能は、有用な情報がサイクルごとに送信されたときであり、従って、トランザクションを分割できることは、不使用のサイクルの量を最小限にし、即ち、バス効率を最大限にするように役立つことを可能にする。
【0006】
分割トランザクションの1つの特別な用途としては、グラフィック専用高速ポートバス(Accelerated Graphics Port(AGP) bus)である。それは、コンピュータにおいて、グラフィック・アクセラレータ(リクエスタとして機能する)とシステムメモリ(共有リソースとして機能する)との間にグラフィカルデータを送信するために用いられる高性能相互接続である。特に3Dの用途においては、多くのグラフィック用途が比較的高いバンド幅リクエストを有し、AGPバスは、そのようなメモリ集約型の用途(memory−intensive application)におけるグラフィックデータの送信の高速化に役立つ。
【0007】
AGPバスは、最優先読み出し、優先度の低い読み出し、最優先書き込み、優先度の低い書き込みなどを含む多くの異なる種のトランザクションを補助する。各種のトランザクションに対するトランザクションリクエスト(そのトランザクションのアドレス相を示す)は、典型的には、共通のリクエストキュー(a common request queue)に位置付けられ、そのリクエストは、所定の規則に基づいてそのキューに従って順序付けられる。しかし、各種のトランザクションは、典型的には、それ自体のデータ記憶領域、または、“中間バッファ”を有し、その中のデータはAGP装置とシステムメモリとの間で転送されるときに一時的に記憶される。AGPトランザクションに分割特性が与えられると、そのリクエストに関連付けられたデータ転送は、いずれか単一種類のアクセスのためのデータ転送が特定の順序で実行される限りにおいて、異なる順序で実行され得る。
【0008】
典型的には、AGPバスは、メモリインタフェースを介して、コンピュータのメインプロセッサによってシステムメモリへのアクセスをも処理するシステムメモリと、そのプロセッサを管理するためのメモリインタフェースおよびシステムメモリへアクセスするAGPに含まれる任意の機能性(functionality)でもって、インタフェースされる。多くの例において、そのシステムは、時にはAGPバスの損失になるが、メインプロセッサとシステムメモリとの間のデータ転送を最適化するように構成される。例えば、x86プロセッサ構造によって、メインプロセッサおよびシステムメモリは、4クロックサイクルの長さ(クロックサイクルはバス上における最小単位時間を示す)までの比較的“短い”トランザクションを処理するために構成されている。しかし、多くのAGPトランザクションは、比較的長く、従って、メモリインタフェースによって複数のより小さいトランザクションへ分割される必要がある。
【0009】
部分的には、AGPバスと多くのメモリインタフェースとの両方の高いパイプライン特性のために、“待機状態”として知られる遅延がある環境においてAGPバスに挿入される必要があるという非効率の潜在的根源が確認された。特に、AGP装置は、典型的には、リクエストキューにリクエストを位置付けること並びに利用可能な異なるトランザクションの種類にサポートされた様々な中間バッファとAGP装置との間のデータ転送を処理することに用いられるAGPバスへ結合されたAGPインタフェースを用いてメモリとインタフェースされている。メモリインタフェースは、順にリクエストキューからリクエストを引き出し、メモリと中間バッファとの間のデータ転送を処理する。結果として、この構成により、メモリインタフェースおよびAGPインタフェースは、典型的に、所与のいずれの時点においても異なるリクエストを処理することができる。
【0010】
従来のAGPの実施によって、データの1ブロック(4クロックに相当する)を保持するためにトランザクションに関連付けられた中間バッファ内に充分なスペースがある場合に、トランザクションを介して転送されるデータの総てを記憶するために充分な空きスペースが無くとも、AGPバスにおいて書き込みトランザクションが開始されることが可能になる。AGP2.0仕様は、トランザクションにおいて転送される情報のうち最大64バイトで、3つの速さ、即ち、1X、2Xおよび4X、に対応する。従って、32ビット(4バイト)バスによって、1Xの速さでは、最大4ブロックが転送のために要求され、2Xの速さでは、最大2ブロックが転送のために要求されることができる。しかし、書き込みアクセスがトランザクションを開始するために必要とされる最小スペースが利用可能であるときであって、しかし、そのトランザクションを成し遂げるために必要とされる最小スペースが利用可能でないときに開始された場合には、そのメモリインタフェースが中間バッファ内へのAGP転送を達成するのに充分なスペースを中間バッファに空けるまで、AGPバスにおける動作を遅延させるために、待機状態がAGPバスに挿入される必要がある。
【0011】
待機状態がAGPバスに挿入される期間においては、次のAGPリクエストトランザクションがAGPインタフェースによって開始されることはない。このことは、異なる種のトランザクション(例えば、読み取りトランザクション)が他方でこの期間の間に実行され得るという事実にもかかわらない。さらに、関連する中間バッファにおいてスペースが空けられる前に複数の短いトランザクションがメモリインタフェースに発せられる必要があるので、この問題は、メモリへアクセスするために長いAGPトランザクションを複数の短いトランザクションに分割する必要のために悪化してしまう。
【0012】
前述した待機状態の問題は典型的には関心事でないという事実にかかわらず、順序規則が他のトランザクションを停滞させるために、性能は依然として最適ではないので、データを記憶するために必要とするスペースの総てが利用可能になるまで中間バッファにおいてトランザクションに関連するデータ転送の開始を待機することは望ましくない選択である。
【0013】
中間バッファ内で利用可能なスペースの量に依ってのみ分割トランザクションに関連するデータの記憶を調整することは、結果的に、分割トランザクションバスまたは他の相互接続のピーク時の効率を限定してしまう。従って、当該技術において、分割トランザクションバスにおけるトランザクション処理の効率を、特にAGPおよびそれに類似する用途において、改善する必要性がある。
【0014】
中間バッファ内へのデータの転送制御が、中間バッファ内の空きスペースの量に基づき調整されることに加え、そのデータ転送に関連付けられたデータ転送リクエストがデータ転送リクエストのターゲットである共有リソースにおいて処理される準備ができているか否かに基づき調整される、という回路構成、装置および方法を提供することによって、本発明は従来技術に関連するこれらのおよび他の問題点を処理する。従って、少なくともある種のデータ転送リクエストのための中間バッファ内への転送を待機しているデータが、共有リソースによって処理される準備が未だできていないデータ転送リクエストに関連しているときにはいつでも、中間バッファ内へのデータ転送が禁止される。従って、停滞している他の種の転送リクエストを処理するためのバッファを供給する相互接続を空けることにより、そのリクエストが潜在的に待ち時間の削減を達成し得る。
【0015】
共有リソースによって処理される準備ができているそのようなデータ転送リクエストに関連するデータ転送は、リクエスタおよび共有リソースの両方が同じリクエストを処理するので、そのリクエストがより速く達成され、比較的短時間しか停滞しないという確率が高くなる。
【0016】
1つの特定の、しかし排他的なものではないが、本発明の用途において、データ転送リクエストは共有メモリへのAGP書き込みトランザクションを示し、そのトランザクションに関連付けられた書き込みデータを記憶するために用いられる中間バッファのための制御ロジックは、少なくとも1ブロックの空きペース(書き込みトランザクションを開始するのに必要なスペースの最小量を表す)が中間バッファ内にあるのにおいて存在し、並びに、その共有メモリにおいてトランザクションを処理する準備ができているということの両方を満たさない限り、AGP書き込みトランザクションと関連付けられた書き込みデータの記憶を選択的に禁止するように構成されている。
【0017】
本発明を特徴付けるこれらのおよび他の利点および特徴は、本明細書に記載され、本明細書のさらなる部分を構成する請求項において規定されている。しかし、本発明のより良き理解と、その用途を通して得られる利点および目的のより良き理解のためには、添付図面および本発明による実施の形態を記述した次の記載事項を参照すべきである。
【0018】
図面を参照して、いくつかの図を通して同じ番号は同様の要素を示す。図1は、本発明に対応する中間バッファ制御を組み込んだ装置10を示している。装置10は、複数のリクエスタまたはイニシエータ14、16へ結合された共有リソース12を含む。(図1においてコントローラ19によって実施されている)共有リソースインタフェースおよびリクエスタインタフェース20を組み込んだ制御ロジック18は、共有リソース12および各リクエスタ14、16の間のデータの転送を管理する。
【0019】
共有リソース12は、共有アクセスが望ましく、例えば、周辺機器相互接続(a peripheral component interconnect(PCI))バスなどの共有メモリを介して結合された装置などの様々な内部または外部に相互接続された装置のほか、例えば、主メモリ、ワーキングメモリ、様々な補助レベルのメモリなど、種々のレベルのメモリを表す。共有リソース12は、データベースや大容量記憶装置などの情報記憶システムをも表してもよい。この記載において共有リソースは、典型的には、任意の数のリクエスタに対する“スレーブ”であり、その各々は、共有リソースをアクセスためのリクエストを発することのできる“マスタ”コントローラとして機能する。
【0020】
各リクエスタは、マイクロプロセッサや他の中央演算処理装置(CPU)装置などのように、グラフィックコントローラ、デバイスコントローラ、メモリコントローラなどの他の様々なコントローラと同様に、任意の数のリソースアクセス装置を用いて実施されることができる。
【0021】
以下に考察される特定の実施の形態においては、例えば、共有リソースはコンピュータのメインメモリとして実施され、リクエスタ14はコンピュータのCPUとして実施され、リクエスタ16はグラフィック専用高速ポート(AGP)を介してメインメモリとインタフェースされたグラフィックコントローラとして実施されている。しかし、幅広い種類のマスタおよびスレーブ装置が装置10のリクエスタおよび共有リソースを実施するために利用され得るので、従って、本発明が本明細書に記載した特定の実施の形態に限定されないことを充分に理解されたい。
【0022】
制御ロジック18は、複数のリクエスタと共有リソースとの間のインタフェースを表す。共有リソースとの通信は、例えば、コントローラ19などの共有リソースインタフェースによって、リクエスタ14、16の各々との通信をもたらすために用いられるリクエスタインタフェース20に直接にもたらされる。リクエスタインタフェースが、例えば、コントローラ21、22などの複数の専用コントローラであって、それぞれリクエスタ14、16とインタフェースするために専用される専用コントローラを含む。
【0023】
共有リソース12との通信は、共有リソースバス12aを介してもたらされ、リクエスタ14、16のそれぞれとの通信は、同様に、それぞれリクエスタバス、即ち、相互接続14a、16aによってもたらされる。制御ロジック18と共有リソースとリクエスタとの間の相互接続は、ポイント−to−ポイント(point−to−point)またはマルチドロップバス(multi−drop buses)または他の相互接続を含む任意の数の相互接続技術を用いて実施されることができ、個々のリクエスタはいくつかの環境において同じ相互接続を共有することができることを充分に理解されたい。従って、“バス”という文言の使用は、本発明に対応する任意の数の異なる相互接続技術を含むことを充分に理解されたい。
【0024】
図示された実施の形態において制御ロジック18はリクエスタおよび共有リソースとの通信を管理するためにコントローラを用いるが、この機能は他の種の制御ロジックによって処理されることができ、よって、“コントローラ”という文言は、バスまたは他の相互接続の通信を管理するのに適した任意の制御ロジックを含むように理解されるべきであることを充分に理解されたい。さらに、制御ロジック18は各リクエスタおよび共有リソースへのアクセスをもたらすために互いにインタフェースされた個々のコントローラの使用を通して表されてきたが、これらの様々なコントローラの間に割り当てられた機能は他の環境においては異なるように分割されることを充分に理解されたい。
【0025】
さらに、“装置”という文言は、コンピュータや他の電子装置などの様々なデータ処理システムを、そのシステムの範囲内の様々な要素と同様に含み、個々の集積回路装置またはその組合せを含むと考慮され得ることに充分に理解されたい。さらに、装置内は、1またはそれ以上の回路構成が組み込まれ、典型的には、1またはそれ以上の集積回路装置で実施され、最も好ましくは、それとインタフェースされた追加の個々の要素を含む。回路構成は、典型的には、ここではハードウェア定義プログラム(hardware definition programs)として記載するが、集積回路装置上に回路構成のレイアウトを定義する1またはそれ以上のコンピュータデータファイルを少なくとも部分的に用いて設計され、製造されることにも認識されたい。そのプログラムは、代表的には、設計ツールによって公知の手法で生成され、続いて、半導体ウェハへ適用される回路構成を規定するレイアウトマスクを作製するために製造の間に用いられる。代表的には、そのプログラムは、ベリログ(verilog)、EDIF、VHDLのようなハードウェア規定言語(a hardware definition language(HDL))を用いる予め定められたフォーマットで提供される。従って、本発明は、集積回路装置完全に機能させることで実施される回路構成という環境で記述されてきており、また、以下、記述され、当業者は、本発明に対応する回路構成が様々な形態でのプログラム製品として頒布され得ること、および、本発明がその頒布の実際の実行に利用される特定の種類の信号搬送媒体に関係なく等しく適用されることを理解されたい。信号搬送媒体の例としては、揮発性および不揮発性メモリ装置、フロッピディスク、ハードディスク装置、CD−ROMおよびDVDなどの記録可能型の媒体に限定することなく、他の中でも、デジタルおよびアナログ通信リンクなどの伝送型の媒体をも含む。
【0026】
バッファが本発明に対応する中間バッファ制御を図示する目的のために、バス16aが分割トランザクションバスとして実施され、コントローラ22内において本発明に対応する中間バッファ制御が実施されると想定する。従って、以下における検討は、リクエスタコントローラ22に注目している。この特定の実施のために、コントローラ19および21が従来の手法によって実施され得ることが想定される。さらに、いくつかの実施の形態において、バス12aもバス14aもともに分割トランザクションを補助するために構成されることを要しない。
【0027】
しかし、ここで記載される機能は、コントローラ22内の他の中間バッファを制御するために用いられているのと同様に、他のリクエストや共有リソースとのインタフェースをもたらすように用いられてもよい。従って、本発明は図1に示した特定の実施の形態に限定されない。
【0028】
コントローラ22はリクエストバッファ24、データインバッファ26およびデータアウトバッファ28を組み込んでいる。リクエストバッファ24はコントローラによって処理されるべき分割トランザクションのアドレス相を記憶するために用いられ、キューまたは他の適切なデータ構造を用いて実施され得る。リクエスタ16からの入ったリクエストはコントローラによって自動的に受信され、リクエストバッファ24に位置付けられる。リソース状態マシーンとしてここで実施されているリソース制御ロジック30は、共有リソースへ転送するために用いられる共有リソースコントローラ19へのそのようなリクエストの出力を制御する。以下により詳細に記述されるように、リソース制御ロジック30は、さらに、各データバッファ26、28のリソースの“エンド(end)”を制御する。
【0029】
図示された実施の形態において、分離したデータ相はデータを取り込みおよびデータを取り出すために与えられる。そのようなデータ経路にはそれぞれデータバッファ26、28が組み込まれている。特に、バッファ26内のデータは、リクエストに応答して、例えば、共有リソース内に記憶されたデータを取り出すためにリクエスタ16によって開始された読み出しリクエストに応答して、共有リソースから受け取った取り込みデータを記憶するために用いられる中間バッファを示す。リソース制御ロジック30は、バッファ26内のバッファ26内のデータに結合され、それにより、そのバッファ内の共有リソースから受け取ったデータの記憶を制御する。バス16aを介してリクエスタへそのデータを転送する場合には、一旦、バッファ内へそのデータが記憶され、“X”状態マシーンとしても参照されているように状態マシーンとして示された形態で実施されている制御ロジック32の中のデータを介して制御される。制御ロジック32内のデータは、リクエストバッファ24のリソースエンドにおいて記憶されるアドレス情報と同様に、リクエスタ16によって送信されるアドレス情報を入力として受信し、そのそれぞれのアドレス情報は、リクエストがリクエスタバス16aにおいて処理されていること、および、そのリクエストが共有リソースによって処理される準備ができていることを示す。
【0030】
データアウトバッファ28もまた、例えば、共有リソースにデータを記憶するためにリクエスタによって発せられた書き込みリクエストに応答して、リクエスタ16から共有リソース12への転送データに用いる中間バッファとして機能する。バッファ28内に既に記憶されている共有リソースへのデータ転送は、リソース制御ロジック30によって制御される。一方で、データバッファ28内のデータの記憶は、データアウト制御ロジック34を介して制御され、制御ロジック34は、制御ロジック32のように、リクエスタ16によって与えられ、共有リソースによって処理される準備ができている現在のリクエストの表示と同様に、リクエストバッファ24のリソースエンドからもたらされるアドレス情報を入力として受信する。本発明に対応する中間バッファ制御が装置10において実施されるのは、制御ロジック34内においてである。
【0031】
各バッファ26および28は、キューとして実施され得る。他のデータ構造も代替的に用いられてもよい。さらに、バッファ24から28のそれぞれは、環境に依存して異なる大きさ(size)を有する。
【0032】
従って、図示された実施の形態においては、読み出しリクエストは、制御ロジック30および32の組合せによってインタフェース22内において処理され、それにより、読み出しリクエストと関連付けられたアドレス情報は、リクエスタによってリクエストバッファ24へ転送され、並びに、共有リソースへのそのリクエストの転送は制御ロジック30を介して制御される。次に、リクエストのデータ相の間に、共有リソースからの取り込みデータは制御ロジック30によってバッファ26内に中間データとして制御可能に記憶され、結局制御ロジック32によって制御されるバス16aを介してのリクエスタへのその情報の転送がなされる。
【0033】
一方で、書き込みリクエストのために、そのようなリクエストのアドレス相は、共通リクエストバッファ24へ転送され、制御ロジック30によって制御される共有リソースへのそのようなリクエストの発生がなされる。共有リソースへのデータの書き込みの転送は制御ロジック30および34の組合せによって制御され、制御ロジック34は中間データアウトバッファ28内へ書き込みデータの記憶を制御し、かつ、制御ロジック30は共有リソースへのそのデータの転送を制御する。
【0034】
本発明に対応して、データアウト制御ロジック34は、中間バッファ28内にデータを記憶することができないためにリクエスタバス16aに要される待機状態の可能性を最小限にするように、そのような手法で、中間バッファ28内への書き込みデータの記憶を制御する。図2は、例えば、制御ロジック34の1つの適切な制御アルゴリズムを示す状態図40を図示している。制御ロジック34は、4つの状態42、44、46および48を用いて実施されることができ、また、図2においては、状態S1からS4としても設けられている。状態S1は、アイドル状態を示し、中間バッファ28内の記憶のために現在保留している書き込みリクエストが無いときにはいつでも生じる。新しい書き込みリクエストの受信の際に、状態遷移が状態S2に生じ、現在のリクエストを達成するために充分なスペースが中間バッファ内に存在するか否か、即ち、中間バッファ内のリクエストと関連する総てのデータを記憶するために充分なスペースがあるか否か、を決定する。代表的には、状態S2における決定は、(そのリクエストのアドレス相から得られる)現在のリクエストに関連するデータの量と、中間バッファ内の既知の利用可能なスペースとを比較することによって実行される。
【0035】
まず、バッファ内において現在のリクエストを達成するために利用可能であるスペースが不充分であると想定すると、状態遷移は状態S3に生じ、それにより、リクエストバッファ24のリソースエンドにおいて処理される現在のリクエストがそのリクエスタエンドにおいて処理される現在のリクエストと同じであるか否かを決定する。さらに、現在のリクエストを開始するために充分なスペースが中間バッファ内に存在するか否かをも決定する。状態マシーンは、その条件が両方とも満たされるまで状態S3を維持する。次に、一旦、両条件が満たされると、状態遷移は状態S4に生じ、それにより、現在のリクエストのためのデータ転送を開始する、即ち、リクエストと関連する書き込みデータを中間バッファ内へ転送する処理を開始する。さらに、状態S2へ戻り、現在のリクエストを達成するために充分なスペースが中間バッファにおいて利用可能である場合には、状態遷移は状態S4に直接生じ、それによりリクエストのデータ転送を開始する。一旦、データ転送が開始されると、状態遷移はS1に戻って生じる。
【0036】
現在のリクエストを開始しかつ達成するために必要なスペースの量は、代表的には、異なる環境において変化し、リクエストを開始するために必要とされるスペースの量は、代表的には、そのリクエストを達成するために必要とされるスペースの量よりも少ない。AGP環境において、例えば、代表的には、AGPトランザクションを開始するためにリクエストされる中間バッファにおいて最小のスペース量はデータの1ブロック相当であり、一方、AGPトランザクションを達成するためにリクエストされるスペース量は利用されるアクセスモードに依存して変化し、代表的には、1Xモードにおいてデータの4ブロック相当と同程度の量である。しかし、他の環境においては、必要な関連のスペースは変化し得る。
【0037】
図1へ戻り、共有リソースへアドレスおよび書き込みデータを転送するのに用いられるリソース制御ロジック30の構成は当業者にとって周知である。例えば、AGP実施形態において、制御ロジック30の実施の形態は公知のAGP仕様に従って実施され得る。同様に、多くの環境において、例えば、AGP環境において、共有リソースから発するデータが典型的にはリクエスタによって直ちに処理されることが可能であるので、制御ロジック32は典型的にはここで検討されているアルゴリズムを制御する独自の中間バッファを必要としない。従って、受信してすぐにリクエスタバスに位置させることができる。しかし、いくつかの実施の形態においては、このようにすることができない。従って、類似のバッファ制御機能も制御ロジック32において実施され得る。また、追加的な種類のリクエスト(例えば、高優先度または低優先度のリクエストのような他の種の書き込みリクエスト)が追加的な中間バッファを介して分離して処理され、類似の制御機能はその中間バッファの制御ためにも用いられる。
【0038】
状態S1からS4によって表される制御アルゴリズムが本発明に対応して変更され得ることを理解されたい。例として、状態S2はいくつかの実施の形態においては省略できる。
【0039】
次に、図3および図4は、本発明に対応した方法で、装置10によって例示的なリクエストを処理することを図示している。例えば、図3は、特定の時点におけるリクエストバッファ24および中間バッファ28の例示的な内容を図示し、リクエストバッファ24は多くの停滞しているリクエストY1、X2、X3、Y4、Y5、Y6およびX7を有し、“Y”種のリクエストは書き込みリクエストであり、“X”種のリクエストは読み出しリクエストである。リソース状態マシーン(図1の制御ロジック30)の透視(perspective)から、“Y”および“X”リクエストの両方ともが図示されている。理解を容易にするために、リクエストバッファの代替的な表示24が、“Y”種のリクエストの順序のみを示すY状態マシーン(図1の制御ロジック34)の透視から示されている。また、本実施の形態のために、中間バッファ28は、データ保存の2つの空きブロックと共に、リクエストY5と関連する現在そこに記憶されているデータを有する。
【0040】
本実施の形態においては、Y状態マシーンが現在リクエストY6を処理しているときに、リソース状態マシーンは現在リクエストY5を処理しているとも考えられる。まず、現在のリクエストY6が受信されたと想定すると、Y状態マシーンは状態S1からS2へ遷移する。また、例えば、リクエストY6が中間バッファ28内においてスペースの4ブロックを必要とすると想定する。それにより、状態S2は、中間バッファ内に存在するスペースがリクエストを達成するためには不充分であると決定され、遷移は状態S3に生じるであろう。一方で、リクエストY6が中間バッファ28内において2ブロックまたはそれ以下のブロックのスペースしか必要としない場合には、状態S2から状態S4への直接遷移が生じ、そのリクエストに関連するデータは中間バッファ内へ直ちに転送される。
【0041】
また、実施の形態として、バッファ内へのデータ転送を開始するために少なくとも1ブロックのスペースが中間バッファ内に必要とされる、と想定する。しかし、図3に示すとおり、リソース状態マシーンはY状態マシーンとは異なるリクエストを処理する(Y状態マシーンによって処理される現在のリクエストは共有リソースによって処理される準備ができていないことを意味する)場合、Y状態マシーンは状態S3に維持される。次に、図4に示すとおり、一旦、リソース状態マシーンがリクエストY6を処理し始めると、遷移は状態S4に生じ、中間バッファ(ここでは、リクエストY6と関連する最初の2ブロックのデータである)内へデータの転送を開始する。
【0042】
Y状態マシーンが状態S3に維持されている間、“X”種のリクエストはインタフェースにおいて他の制御ロジックによって処理され続けることができ、例えば、それによって、共有リソースから来た読み出しデータがバス16aを介してリクエスタへ転送されることができ、従って、“Y”リクエストの処理が行き詰まっている間にリクエスタバスの使用を最大化する。さらに、新しいリクエストがリクエスタからリクエストバッファまで転送され続けてもよい。
【0043】
上述したとおり、本発明の1つの特に好ましい適用としては、グラフィック専用高速ポート相互接続(Accelerated Graphics Port(AGP) interconnect)を介してグラフィックアクセラレータをシステムメモリとインタフェースすることである。例えば、図5は、CPU64とインタフェースされたシステムメモリ62を含むコンピュータ60およびチップセット68によってグラフィックアクセラレータ66を示す。チップセット68はメモリバス72を介してシステムメモリ62との通信をもたらすメモリインタフェース70を含む。同様に、チップセット68は、CPUバス76を介してチップセットをCPU64とインタフェースするCPUバス74を含む。AGPインタフェース78はAGPバス80を介してチップセットをグラフィックアクセラレータ66とインタフェースする。グラフィックアクセラレータ66は、CRT、LCDまたは他のディスプレイなどのディスプレイ82を駆動するために用いられる。さらに、チップセット68は、複数のアクセス可能なI/O装置86を含むPCIバス84へのインタフェースをももたらすように構成されている。
【0044】
従って、図5の実施の形態において、チップセット68は、コンピュータ60の“ノースブリッジ(north bridge)”機能を示す。メモリバス72およびCPUバス76のそれぞれは、代表的には、短い(4ブロックまたはそれ以下の)分割トランザクションを受け入れる。しかし、AGP仕様に対応して、AGPバス80は、4ブロック以上の長さであるトランザクションを導入することができる。
【0045】
さらに、メモリインタフェース70は共有リソースコントローラに対して類似の機能を有し、一方、CPU74は、CPU64のための専用リクエスタインタフェースとして機能し、リクエスタとして機能する。AGPインタフェース78はグラフィックアクセラレータ66へのリクエスタインタフェースを示し、本発明の内容においては、リクエスタとしても機能する。ここで検討された独自の中間バッファ制御は、AGPインタフェース78内において実施され得る。従って、この実施におけるリクエストは、例えば、書き込みトランザクションなどのAGP互換トランザクション(AGP−compatible transactions)の形態を採る。さらに、他の種のAGPトランザクション(例えば、低優先度および高優先度の書き込みトランザクション)が別々に処理されることができ、従って、専用中間バッファおよび関連の制御ロジックは、AGPインタフェースによって処理される複数種類のトランザクションのために設けられてもよい。
【0046】
AGPインタフェース78内にここに記載されたバッファ制御機能を実施することは、本開示の利益を有する当業者の能力範囲内であることを理解されたい。しかし、本発明はAGPに基づくシステムとは異なる環境における適用可能性をも有することも理解されたい。
【0047】
様々な変更が本発明の目的および範囲から逸脱することなく示された実施の形態から成し得る。従って、本発明は特許請求の範囲内にある。
【図面の簡単な説明】
【図1】
本発明に対応した装置のブロック図。
【図2】
図1の装置において、Y状態機の動作を示す状態図。
【図3】
図1の装置によって処理されるトランザクションの例を示したブロック図。
【図4】
図1の装置によって処理されるトランザクションの例を示したブロック図。
【図5】
グラフィック専用高速ポートインタフェース(Accelerated Graphics Port(AGP) interface)を組み込んだ、本発明に対応する他の装置のブロック図。
本発明は、一般に、電子バスアーキテクチャおよびそのような相互接続に関し、特に、分割トランザクションを用いた複数のリクエスタによるメモリなどの共有リソースのアクセスに関する。
【0002】
コンピュータや他の電子装置に益々困難なタスクを処理することを要求するのに従い、そのような装置には益々高い性能が求められることになる。情報がそのような装置間にて転送される速度は電子システムの全体の性能に重要な影響をもたらし得るので、多くの装置に特に関連するものとしては、例えば、相互接続された装置間の通信速度または“バンド幅” がある。
【0003】
複数の電子装置を互いに結合する1つの方法としては、“バス”を用いることによって、多くの電子装置がメモリなどの共有リソースにアクセスすることを可能とするために頻繁に用いられる相互接続をすることである。バス構造において、バスと結合された各装置は、バスに送信された信号を、送信された信号に注意を払っている(バス上への“アドレス”送信によってしばしば示される)意図された目的の装置のみで受信する。アドレス指定されていないいずれの装置もその送信信号を無視する。
【0004】
分割トランザクションバスは、情報転送がリクエスタによって発せられている個々の“トランザクション”を用いて、アドレス相(address phase)およびデータ相(data phase)の両方を含む各トランザクションで処理されるバス構造の特定の構成である。典型的には、アドレス相の間に、データ転送のロケーションおよびデータの両方は、(例えば、読み出し、書き込みなどの)実行をさせる種のトランザクションと同様に指定される。例えば、トランザクションのアドレス相は、読み出しリクエストがターゲットとなる装置の特定のアドレスに記憶されている情報のうち16バイトを得ることを実行する、という要求をしてもよい。次に、データ相の間に、要求された現在の情報は、ターゲットとなる装置から要求をした装置までをバスを介して転送される。
【0005】
分割トランザクションバスの重要な特徴は、トランザクションのアドレス相およびデータ相が互いに“分割(split)”されており若しくは逆多重化されており、それによりそのデータ相が任意の固定された時点においてアドレス相に関連して機能することを要求されないことである。アドレス相およびデータ相の分割は、他の生成動作(productive work)がトランザクションのアドレス相およびデータ相の間の期間に機能し得るので、分割トランザクションバスの性能をしばしば改善する。例えば、ターゲットとなる装置にとってトランザクションのアドレス相を受信した後バスを介して要求されたデータを送信するためには、2、3バスサイクルかかる場合がある。従って、そのしばらくの間、要求されたデータが送信されるのを待機し、バスをアイドル状態にしておくことなく、他のトランザクションがそのバスを介し始めることができる(“パイプライン”として知られる処理である)。いすれのバスからも得られる最高の性能は、有用な情報がサイクルごとに送信されたときであり、従って、トランザクションを分割できることは、不使用のサイクルの量を最小限にし、即ち、バス効率を最大限にするように役立つことを可能にする。
【0006】
分割トランザクションの1つの特別な用途としては、グラフィック専用高速ポートバス(Accelerated Graphics Port(AGP) bus)である。それは、コンピュータにおいて、グラフィック・アクセラレータ(リクエスタとして機能する)とシステムメモリ(共有リソースとして機能する)との間にグラフィカルデータを送信するために用いられる高性能相互接続である。特に3Dの用途においては、多くのグラフィック用途が比較的高いバンド幅リクエストを有し、AGPバスは、そのようなメモリ集約型の用途(memory−intensive application)におけるグラフィックデータの送信の高速化に役立つ。
【0007】
AGPバスは、最優先読み出し、優先度の低い読み出し、最優先書き込み、優先度の低い書き込みなどを含む多くの異なる種のトランザクションを補助する。各種のトランザクションに対するトランザクションリクエスト(そのトランザクションのアドレス相を示す)は、典型的には、共通のリクエストキュー(a common request queue)に位置付けられ、そのリクエストは、所定の規則に基づいてそのキューに従って順序付けられる。しかし、各種のトランザクションは、典型的には、それ自体のデータ記憶領域、または、“中間バッファ”を有し、その中のデータはAGP装置とシステムメモリとの間で転送されるときに一時的に記憶される。AGPトランザクションに分割特性が与えられると、そのリクエストに関連付けられたデータ転送は、いずれか単一種類のアクセスのためのデータ転送が特定の順序で実行される限りにおいて、異なる順序で実行され得る。
【0008】
典型的には、AGPバスは、メモリインタフェースを介して、コンピュータのメインプロセッサによってシステムメモリへのアクセスをも処理するシステムメモリと、そのプロセッサを管理するためのメモリインタフェースおよびシステムメモリへアクセスするAGPに含まれる任意の機能性(functionality)でもって、インタフェースされる。多くの例において、そのシステムは、時にはAGPバスの損失になるが、メインプロセッサとシステムメモリとの間のデータ転送を最適化するように構成される。例えば、x86プロセッサ構造によって、メインプロセッサおよびシステムメモリは、4クロックサイクルの長さ(クロックサイクルはバス上における最小単位時間を示す)までの比較的“短い”トランザクションを処理するために構成されている。しかし、多くのAGPトランザクションは、比較的長く、従って、メモリインタフェースによって複数のより小さいトランザクションへ分割される必要がある。
【0009】
部分的には、AGPバスと多くのメモリインタフェースとの両方の高いパイプライン特性のために、“待機状態”として知られる遅延がある環境においてAGPバスに挿入される必要があるという非効率の潜在的根源が確認された。特に、AGP装置は、典型的には、リクエストキューにリクエストを位置付けること並びに利用可能な異なるトランザクションの種類にサポートされた様々な中間バッファとAGP装置との間のデータ転送を処理することに用いられるAGPバスへ結合されたAGPインタフェースを用いてメモリとインタフェースされている。メモリインタフェースは、順にリクエストキューからリクエストを引き出し、メモリと中間バッファとの間のデータ転送を処理する。結果として、この構成により、メモリインタフェースおよびAGPインタフェースは、典型的に、所与のいずれの時点においても異なるリクエストを処理することができる。
【0010】
従来のAGPの実施によって、データの1ブロック(4クロックに相当する)を保持するためにトランザクションに関連付けられた中間バッファ内に充分なスペースがある場合に、トランザクションを介して転送されるデータの総てを記憶するために充分な空きスペースが無くとも、AGPバスにおいて書き込みトランザクションが開始されることが可能になる。AGP2.0仕様は、トランザクションにおいて転送される情報のうち最大64バイトで、3つの速さ、即ち、1X、2Xおよび4X、に対応する。従って、32ビット(4バイト)バスによって、1Xの速さでは、最大4ブロックが転送のために要求され、2Xの速さでは、最大2ブロックが転送のために要求されることができる。しかし、書き込みアクセスがトランザクションを開始するために必要とされる最小スペースが利用可能であるときであって、しかし、そのトランザクションを成し遂げるために必要とされる最小スペースが利用可能でないときに開始された場合には、そのメモリインタフェースが中間バッファ内へのAGP転送を達成するのに充分なスペースを中間バッファに空けるまで、AGPバスにおける動作を遅延させるために、待機状態がAGPバスに挿入される必要がある。
【0011】
待機状態がAGPバスに挿入される期間においては、次のAGPリクエストトランザクションがAGPインタフェースによって開始されることはない。このことは、異なる種のトランザクション(例えば、読み取りトランザクション)が他方でこの期間の間に実行され得るという事実にもかかわらない。さらに、関連する中間バッファにおいてスペースが空けられる前に複数の短いトランザクションがメモリインタフェースに発せられる必要があるので、この問題は、メモリへアクセスするために長いAGPトランザクションを複数の短いトランザクションに分割する必要のために悪化してしまう。
【0012】
前述した待機状態の問題は典型的には関心事でないという事実にかかわらず、順序規則が他のトランザクションを停滞させるために、性能は依然として最適ではないので、データを記憶するために必要とするスペースの総てが利用可能になるまで中間バッファにおいてトランザクションに関連するデータ転送の開始を待機することは望ましくない選択である。
【0013】
中間バッファ内で利用可能なスペースの量に依ってのみ分割トランザクションに関連するデータの記憶を調整することは、結果的に、分割トランザクションバスまたは他の相互接続のピーク時の効率を限定してしまう。従って、当該技術において、分割トランザクションバスにおけるトランザクション処理の効率を、特にAGPおよびそれに類似する用途において、改善する必要性がある。
【0014】
中間バッファ内へのデータの転送制御が、中間バッファ内の空きスペースの量に基づき調整されることに加え、そのデータ転送に関連付けられたデータ転送リクエストがデータ転送リクエストのターゲットである共有リソースにおいて処理される準備ができているか否かに基づき調整される、という回路構成、装置および方法を提供することによって、本発明は従来技術に関連するこれらのおよび他の問題点を処理する。従って、少なくともある種のデータ転送リクエストのための中間バッファ内への転送を待機しているデータが、共有リソースによって処理される準備が未だできていないデータ転送リクエストに関連しているときにはいつでも、中間バッファ内へのデータ転送が禁止される。従って、停滞している他の種の転送リクエストを処理するためのバッファを供給する相互接続を空けることにより、そのリクエストが潜在的に待ち時間の削減を達成し得る。
【0015】
共有リソースによって処理される準備ができているそのようなデータ転送リクエストに関連するデータ転送は、リクエスタおよび共有リソースの両方が同じリクエストを処理するので、そのリクエストがより速く達成され、比較的短時間しか停滞しないという確率が高くなる。
【0016】
1つの特定の、しかし排他的なものではないが、本発明の用途において、データ転送リクエストは共有メモリへのAGP書き込みトランザクションを示し、そのトランザクションに関連付けられた書き込みデータを記憶するために用いられる中間バッファのための制御ロジックは、少なくとも1ブロックの空きペース(書き込みトランザクションを開始するのに必要なスペースの最小量を表す)が中間バッファ内にあるのにおいて存在し、並びに、その共有メモリにおいてトランザクションを処理する準備ができているということの両方を満たさない限り、AGP書き込みトランザクションと関連付けられた書き込みデータの記憶を選択的に禁止するように構成されている。
【0017】
本発明を特徴付けるこれらのおよび他の利点および特徴は、本明細書に記載され、本明細書のさらなる部分を構成する請求項において規定されている。しかし、本発明のより良き理解と、その用途を通して得られる利点および目的のより良き理解のためには、添付図面および本発明による実施の形態を記述した次の記載事項を参照すべきである。
【0018】
図面を参照して、いくつかの図を通して同じ番号は同様の要素を示す。図1は、本発明に対応する中間バッファ制御を組み込んだ装置10を示している。装置10は、複数のリクエスタまたはイニシエータ14、16へ結合された共有リソース12を含む。(図1においてコントローラ19によって実施されている)共有リソースインタフェースおよびリクエスタインタフェース20を組み込んだ制御ロジック18は、共有リソース12および各リクエスタ14、16の間のデータの転送を管理する。
【0019】
共有リソース12は、共有アクセスが望ましく、例えば、周辺機器相互接続(a peripheral component interconnect(PCI))バスなどの共有メモリを介して結合された装置などの様々な内部または外部に相互接続された装置のほか、例えば、主メモリ、ワーキングメモリ、様々な補助レベルのメモリなど、種々のレベルのメモリを表す。共有リソース12は、データベースや大容量記憶装置などの情報記憶システムをも表してもよい。この記載において共有リソースは、典型的には、任意の数のリクエスタに対する“スレーブ”であり、その各々は、共有リソースをアクセスためのリクエストを発することのできる“マスタ”コントローラとして機能する。
【0020】
各リクエスタは、マイクロプロセッサや他の中央演算処理装置(CPU)装置などのように、グラフィックコントローラ、デバイスコントローラ、メモリコントローラなどの他の様々なコントローラと同様に、任意の数のリソースアクセス装置を用いて実施されることができる。
【0021】
以下に考察される特定の実施の形態においては、例えば、共有リソースはコンピュータのメインメモリとして実施され、リクエスタ14はコンピュータのCPUとして実施され、リクエスタ16はグラフィック専用高速ポート(AGP)を介してメインメモリとインタフェースされたグラフィックコントローラとして実施されている。しかし、幅広い種類のマスタおよびスレーブ装置が装置10のリクエスタおよび共有リソースを実施するために利用され得るので、従って、本発明が本明細書に記載した特定の実施の形態に限定されないことを充分に理解されたい。
【0022】
制御ロジック18は、複数のリクエスタと共有リソースとの間のインタフェースを表す。共有リソースとの通信は、例えば、コントローラ19などの共有リソースインタフェースによって、リクエスタ14、16の各々との通信をもたらすために用いられるリクエスタインタフェース20に直接にもたらされる。リクエスタインタフェースが、例えば、コントローラ21、22などの複数の専用コントローラであって、それぞれリクエスタ14、16とインタフェースするために専用される専用コントローラを含む。
【0023】
共有リソース12との通信は、共有リソースバス12aを介してもたらされ、リクエスタ14、16のそれぞれとの通信は、同様に、それぞれリクエスタバス、即ち、相互接続14a、16aによってもたらされる。制御ロジック18と共有リソースとリクエスタとの間の相互接続は、ポイント−to−ポイント(point−to−point)またはマルチドロップバス(multi−drop buses)または他の相互接続を含む任意の数の相互接続技術を用いて実施されることができ、個々のリクエスタはいくつかの環境において同じ相互接続を共有することができることを充分に理解されたい。従って、“バス”という文言の使用は、本発明に対応する任意の数の異なる相互接続技術を含むことを充分に理解されたい。
【0024】
図示された実施の形態において制御ロジック18はリクエスタおよび共有リソースとの通信を管理するためにコントローラを用いるが、この機能は他の種の制御ロジックによって処理されることができ、よって、“コントローラ”という文言は、バスまたは他の相互接続の通信を管理するのに適した任意の制御ロジックを含むように理解されるべきであることを充分に理解されたい。さらに、制御ロジック18は各リクエスタおよび共有リソースへのアクセスをもたらすために互いにインタフェースされた個々のコントローラの使用を通して表されてきたが、これらの様々なコントローラの間に割り当てられた機能は他の環境においては異なるように分割されることを充分に理解されたい。
【0025】
さらに、“装置”という文言は、コンピュータや他の電子装置などの様々なデータ処理システムを、そのシステムの範囲内の様々な要素と同様に含み、個々の集積回路装置またはその組合せを含むと考慮され得ることに充分に理解されたい。さらに、装置内は、1またはそれ以上の回路構成が組み込まれ、典型的には、1またはそれ以上の集積回路装置で実施され、最も好ましくは、それとインタフェースされた追加の個々の要素を含む。回路構成は、典型的には、ここではハードウェア定義プログラム(hardware definition programs)として記載するが、集積回路装置上に回路構成のレイアウトを定義する1またはそれ以上のコンピュータデータファイルを少なくとも部分的に用いて設計され、製造されることにも認識されたい。そのプログラムは、代表的には、設計ツールによって公知の手法で生成され、続いて、半導体ウェハへ適用される回路構成を規定するレイアウトマスクを作製するために製造の間に用いられる。代表的には、そのプログラムは、ベリログ(verilog)、EDIF、VHDLのようなハードウェア規定言語(a hardware definition language(HDL))を用いる予め定められたフォーマットで提供される。従って、本発明は、集積回路装置完全に機能させることで実施される回路構成という環境で記述されてきており、また、以下、記述され、当業者は、本発明に対応する回路構成が様々な形態でのプログラム製品として頒布され得ること、および、本発明がその頒布の実際の実行に利用される特定の種類の信号搬送媒体に関係なく等しく適用されることを理解されたい。信号搬送媒体の例としては、揮発性および不揮発性メモリ装置、フロッピディスク、ハードディスク装置、CD−ROMおよびDVDなどの記録可能型の媒体に限定することなく、他の中でも、デジタルおよびアナログ通信リンクなどの伝送型の媒体をも含む。
【0026】
バッファが本発明に対応する中間バッファ制御を図示する目的のために、バス16aが分割トランザクションバスとして実施され、コントローラ22内において本発明に対応する中間バッファ制御が実施されると想定する。従って、以下における検討は、リクエスタコントローラ22に注目している。この特定の実施のために、コントローラ19および21が従来の手法によって実施され得ることが想定される。さらに、いくつかの実施の形態において、バス12aもバス14aもともに分割トランザクションを補助するために構成されることを要しない。
【0027】
しかし、ここで記載される機能は、コントローラ22内の他の中間バッファを制御するために用いられているのと同様に、他のリクエストや共有リソースとのインタフェースをもたらすように用いられてもよい。従って、本発明は図1に示した特定の実施の形態に限定されない。
【0028】
コントローラ22はリクエストバッファ24、データインバッファ26およびデータアウトバッファ28を組み込んでいる。リクエストバッファ24はコントローラによって処理されるべき分割トランザクションのアドレス相を記憶するために用いられ、キューまたは他の適切なデータ構造を用いて実施され得る。リクエスタ16からの入ったリクエストはコントローラによって自動的に受信され、リクエストバッファ24に位置付けられる。リソース状態マシーンとしてここで実施されているリソース制御ロジック30は、共有リソースへ転送するために用いられる共有リソースコントローラ19へのそのようなリクエストの出力を制御する。以下により詳細に記述されるように、リソース制御ロジック30は、さらに、各データバッファ26、28のリソースの“エンド(end)”を制御する。
【0029】
図示された実施の形態において、分離したデータ相はデータを取り込みおよびデータを取り出すために与えられる。そのようなデータ経路にはそれぞれデータバッファ26、28が組み込まれている。特に、バッファ26内のデータは、リクエストに応答して、例えば、共有リソース内に記憶されたデータを取り出すためにリクエスタ16によって開始された読み出しリクエストに応答して、共有リソースから受け取った取り込みデータを記憶するために用いられる中間バッファを示す。リソース制御ロジック30は、バッファ26内のバッファ26内のデータに結合され、それにより、そのバッファ内の共有リソースから受け取ったデータの記憶を制御する。バス16aを介してリクエスタへそのデータを転送する場合には、一旦、バッファ内へそのデータが記憶され、“X”状態マシーンとしても参照されているように状態マシーンとして示された形態で実施されている制御ロジック32の中のデータを介して制御される。制御ロジック32内のデータは、リクエストバッファ24のリソースエンドにおいて記憶されるアドレス情報と同様に、リクエスタ16によって送信されるアドレス情報を入力として受信し、そのそれぞれのアドレス情報は、リクエストがリクエスタバス16aにおいて処理されていること、および、そのリクエストが共有リソースによって処理される準備ができていることを示す。
【0030】
データアウトバッファ28もまた、例えば、共有リソースにデータを記憶するためにリクエスタによって発せられた書き込みリクエストに応答して、リクエスタ16から共有リソース12への転送データに用いる中間バッファとして機能する。バッファ28内に既に記憶されている共有リソースへのデータ転送は、リソース制御ロジック30によって制御される。一方で、データバッファ28内のデータの記憶は、データアウト制御ロジック34を介して制御され、制御ロジック34は、制御ロジック32のように、リクエスタ16によって与えられ、共有リソースによって処理される準備ができている現在のリクエストの表示と同様に、リクエストバッファ24のリソースエンドからもたらされるアドレス情報を入力として受信する。本発明に対応する中間バッファ制御が装置10において実施されるのは、制御ロジック34内においてである。
【0031】
各バッファ26および28は、キューとして実施され得る。他のデータ構造も代替的に用いられてもよい。さらに、バッファ24から28のそれぞれは、環境に依存して異なる大きさ(size)を有する。
【0032】
従って、図示された実施の形態においては、読み出しリクエストは、制御ロジック30および32の組合せによってインタフェース22内において処理され、それにより、読み出しリクエストと関連付けられたアドレス情報は、リクエスタによってリクエストバッファ24へ転送され、並びに、共有リソースへのそのリクエストの転送は制御ロジック30を介して制御される。次に、リクエストのデータ相の間に、共有リソースからの取り込みデータは制御ロジック30によってバッファ26内に中間データとして制御可能に記憶され、結局制御ロジック32によって制御されるバス16aを介してのリクエスタへのその情報の転送がなされる。
【0033】
一方で、書き込みリクエストのために、そのようなリクエストのアドレス相は、共通リクエストバッファ24へ転送され、制御ロジック30によって制御される共有リソースへのそのようなリクエストの発生がなされる。共有リソースへのデータの書き込みの転送は制御ロジック30および34の組合せによって制御され、制御ロジック34は中間データアウトバッファ28内へ書き込みデータの記憶を制御し、かつ、制御ロジック30は共有リソースへのそのデータの転送を制御する。
【0034】
本発明に対応して、データアウト制御ロジック34は、中間バッファ28内にデータを記憶することができないためにリクエスタバス16aに要される待機状態の可能性を最小限にするように、そのような手法で、中間バッファ28内への書き込みデータの記憶を制御する。図2は、例えば、制御ロジック34の1つの適切な制御アルゴリズムを示す状態図40を図示している。制御ロジック34は、4つの状態42、44、46および48を用いて実施されることができ、また、図2においては、状態S1からS4としても設けられている。状態S1は、アイドル状態を示し、中間バッファ28内の記憶のために現在保留している書き込みリクエストが無いときにはいつでも生じる。新しい書き込みリクエストの受信の際に、状態遷移が状態S2に生じ、現在のリクエストを達成するために充分なスペースが中間バッファ内に存在するか否か、即ち、中間バッファ内のリクエストと関連する総てのデータを記憶するために充分なスペースがあるか否か、を決定する。代表的には、状態S2における決定は、(そのリクエストのアドレス相から得られる)現在のリクエストに関連するデータの量と、中間バッファ内の既知の利用可能なスペースとを比較することによって実行される。
【0035】
まず、バッファ内において現在のリクエストを達成するために利用可能であるスペースが不充分であると想定すると、状態遷移は状態S3に生じ、それにより、リクエストバッファ24のリソースエンドにおいて処理される現在のリクエストがそのリクエスタエンドにおいて処理される現在のリクエストと同じであるか否かを決定する。さらに、現在のリクエストを開始するために充分なスペースが中間バッファ内に存在するか否かをも決定する。状態マシーンは、その条件が両方とも満たされるまで状態S3を維持する。次に、一旦、両条件が満たされると、状態遷移は状態S4に生じ、それにより、現在のリクエストのためのデータ転送を開始する、即ち、リクエストと関連する書き込みデータを中間バッファ内へ転送する処理を開始する。さらに、状態S2へ戻り、現在のリクエストを達成するために充分なスペースが中間バッファにおいて利用可能である場合には、状態遷移は状態S4に直接生じ、それによりリクエストのデータ転送を開始する。一旦、データ転送が開始されると、状態遷移はS1に戻って生じる。
【0036】
現在のリクエストを開始しかつ達成するために必要なスペースの量は、代表的には、異なる環境において変化し、リクエストを開始するために必要とされるスペースの量は、代表的には、そのリクエストを達成するために必要とされるスペースの量よりも少ない。AGP環境において、例えば、代表的には、AGPトランザクションを開始するためにリクエストされる中間バッファにおいて最小のスペース量はデータの1ブロック相当であり、一方、AGPトランザクションを達成するためにリクエストされるスペース量は利用されるアクセスモードに依存して変化し、代表的には、1Xモードにおいてデータの4ブロック相当と同程度の量である。しかし、他の環境においては、必要な関連のスペースは変化し得る。
【0037】
図1へ戻り、共有リソースへアドレスおよび書き込みデータを転送するのに用いられるリソース制御ロジック30の構成は当業者にとって周知である。例えば、AGP実施形態において、制御ロジック30の実施の形態は公知のAGP仕様に従って実施され得る。同様に、多くの環境において、例えば、AGP環境において、共有リソースから発するデータが典型的にはリクエスタによって直ちに処理されることが可能であるので、制御ロジック32は典型的にはここで検討されているアルゴリズムを制御する独自の中間バッファを必要としない。従って、受信してすぐにリクエスタバスに位置させることができる。しかし、いくつかの実施の形態においては、このようにすることができない。従って、類似のバッファ制御機能も制御ロジック32において実施され得る。また、追加的な種類のリクエスト(例えば、高優先度または低優先度のリクエストのような他の種の書き込みリクエスト)が追加的な中間バッファを介して分離して処理され、類似の制御機能はその中間バッファの制御ためにも用いられる。
【0038】
状態S1からS4によって表される制御アルゴリズムが本発明に対応して変更され得ることを理解されたい。例として、状態S2はいくつかの実施の形態においては省略できる。
【0039】
次に、図3および図4は、本発明に対応した方法で、装置10によって例示的なリクエストを処理することを図示している。例えば、図3は、特定の時点におけるリクエストバッファ24および中間バッファ28の例示的な内容を図示し、リクエストバッファ24は多くの停滞しているリクエストY1、X2、X3、Y4、Y5、Y6およびX7を有し、“Y”種のリクエストは書き込みリクエストであり、“X”種のリクエストは読み出しリクエストである。リソース状態マシーン(図1の制御ロジック30)の透視(perspective)から、“Y”および“X”リクエストの両方ともが図示されている。理解を容易にするために、リクエストバッファの代替的な表示24が、“Y”種のリクエストの順序のみを示すY状態マシーン(図1の制御ロジック34)の透視から示されている。また、本実施の形態のために、中間バッファ28は、データ保存の2つの空きブロックと共に、リクエストY5と関連する現在そこに記憶されているデータを有する。
【0040】
本実施の形態においては、Y状態マシーンが現在リクエストY6を処理しているときに、リソース状態マシーンは現在リクエストY5を処理しているとも考えられる。まず、現在のリクエストY6が受信されたと想定すると、Y状態マシーンは状態S1からS2へ遷移する。また、例えば、リクエストY6が中間バッファ28内においてスペースの4ブロックを必要とすると想定する。それにより、状態S2は、中間バッファ内に存在するスペースがリクエストを達成するためには不充分であると決定され、遷移は状態S3に生じるであろう。一方で、リクエストY6が中間バッファ28内において2ブロックまたはそれ以下のブロックのスペースしか必要としない場合には、状態S2から状態S4への直接遷移が生じ、そのリクエストに関連するデータは中間バッファ内へ直ちに転送される。
【0041】
また、実施の形態として、バッファ内へのデータ転送を開始するために少なくとも1ブロックのスペースが中間バッファ内に必要とされる、と想定する。しかし、図3に示すとおり、リソース状態マシーンはY状態マシーンとは異なるリクエストを処理する(Y状態マシーンによって処理される現在のリクエストは共有リソースによって処理される準備ができていないことを意味する)場合、Y状態マシーンは状態S3に維持される。次に、図4に示すとおり、一旦、リソース状態マシーンがリクエストY6を処理し始めると、遷移は状態S4に生じ、中間バッファ(ここでは、リクエストY6と関連する最初の2ブロックのデータである)内へデータの転送を開始する。
【0042】
Y状態マシーンが状態S3に維持されている間、“X”種のリクエストはインタフェースにおいて他の制御ロジックによって処理され続けることができ、例えば、それによって、共有リソースから来た読み出しデータがバス16aを介してリクエスタへ転送されることができ、従って、“Y”リクエストの処理が行き詰まっている間にリクエスタバスの使用を最大化する。さらに、新しいリクエストがリクエスタからリクエストバッファまで転送され続けてもよい。
【0043】
上述したとおり、本発明の1つの特に好ましい適用としては、グラフィック専用高速ポート相互接続(Accelerated Graphics Port(AGP) interconnect)を介してグラフィックアクセラレータをシステムメモリとインタフェースすることである。例えば、図5は、CPU64とインタフェースされたシステムメモリ62を含むコンピュータ60およびチップセット68によってグラフィックアクセラレータ66を示す。チップセット68はメモリバス72を介してシステムメモリ62との通信をもたらすメモリインタフェース70を含む。同様に、チップセット68は、CPUバス76を介してチップセットをCPU64とインタフェースするCPUバス74を含む。AGPインタフェース78はAGPバス80を介してチップセットをグラフィックアクセラレータ66とインタフェースする。グラフィックアクセラレータ66は、CRT、LCDまたは他のディスプレイなどのディスプレイ82を駆動するために用いられる。さらに、チップセット68は、複数のアクセス可能なI/O装置86を含むPCIバス84へのインタフェースをももたらすように構成されている。
【0044】
従って、図5の実施の形態において、チップセット68は、コンピュータ60の“ノースブリッジ(north bridge)”機能を示す。メモリバス72およびCPUバス76のそれぞれは、代表的には、短い(4ブロックまたはそれ以下の)分割トランザクションを受け入れる。しかし、AGP仕様に対応して、AGPバス80は、4ブロック以上の長さであるトランザクションを導入することができる。
【0045】
さらに、メモリインタフェース70は共有リソースコントローラに対して類似の機能を有し、一方、CPU74は、CPU64のための専用リクエスタインタフェースとして機能し、リクエスタとして機能する。AGPインタフェース78はグラフィックアクセラレータ66へのリクエスタインタフェースを示し、本発明の内容においては、リクエスタとしても機能する。ここで検討された独自の中間バッファ制御は、AGPインタフェース78内において実施され得る。従って、この実施におけるリクエストは、例えば、書き込みトランザクションなどのAGP互換トランザクション(AGP−compatible transactions)の形態を採る。さらに、他の種のAGPトランザクション(例えば、低優先度および高優先度の書き込みトランザクション)が別々に処理されることができ、従って、専用中間バッファおよび関連の制御ロジックは、AGPインタフェースによって処理される複数種類のトランザクションのために設けられてもよい。
【0046】
AGPインタフェース78内にここに記載されたバッファ制御機能を実施することは、本開示の利益を有する当業者の能力範囲内であることを理解されたい。しかし、本発明はAGPに基づくシステムとは異なる環境における適用可能性をも有することも理解されたい。
【0047】
様々な変更が本発明の目的および範囲から逸脱することなく示された実施の形態から成し得る。従って、本発明は特許請求の範囲内にある。
【図面の簡単な説明】
【図1】
本発明に対応した装置のブロック図。
【図2】
図1の装置において、Y状態機の動作を示す状態図。
【図3】
図1の装置によって処理されるトランザクションの例を示したブロック図。
【図4】
図1の装置によって処理されるトランザクションの例を示したブロック図。
【図5】
グラフィック専用高速ポートインタフェース(Accelerated Graphics Port(AGP) interface)を組み込んだ、本発明に対応する他の装置のブロック図。
Claims (19)
- (a) 複数のリクエスタからの複数のデータ転送リクエストを受け取るように構成されたリクエスタインタフェースであって、前記複数のデータ転送リクエストのうち第1のデータ転送リクエストが前記複数のリクエスタのうち第1のリクエスタと関連するリクエスタインタフェースと、
(b) 前記リクエスタインタフェースによって受け取られた前記データ転送リクエストを共有リソースへ転送するように構成された共有リソースインタフェースと、
(c) 前記第1のデータ転送リクエストに応答して前記第1のリクエスタから前記第1のデータ転送リクエストに関連するデータを受け取り、その後、該データを前記共有リソースへ転送するように構成された中間バッファと、
(d) 前記中間バッファと結合された中間バッファ制御ロジックであって、前記第1のデータ転送リクエストが前記共有リソースにおいて処理される準備がなされかつ前記中間バッファにおいて所定の量のスペースが使用可能になるまで、前記第1のリクエスタから前記中間バッファへの前記第1のデータ転送リクエストと関連するデータの転送を禁止するように構成された中間バッファ制御ロジックとを備えた回路構成。 - 前記リクエスタインタフェースは、複数のリクエスタコントローラを含み、各リクエスタコントローラは前記複数のリクエスタのうちの1つを前記共有リソースインタフェースとインタフェースするように構成されていることを特徴とする請求項1に記載の回路構成。
- 前記リクエスタインタフェースは、
(a) 前記第1のリクエスタからデータ転送リクエストを受け取るように構成されたリクエストバッファと、
(b) 前記リクエストバッファと結合されたリクエストバッファ制御ロジックであって、該リクエストバッファ制御ロジックは前記リクエストバッファから前記共有リソースインタフェースへデータ転送リクエストを転送するように構成されたリクエストバッファ制御ロジックとを含み、
前記中間バッファ制御ロジックは、前記第1のデータ転送リクエストが前記共有リソースにおいて処理される準備ができているときを決定するために、さらに前記リクエストバッファへ結合されていることを特徴とする請求項1に記載の回路構成。 - 前記中間バッファ制御ロジックは、前記第1のデータ転送リクエストが前記共有リソースにおいて処理される準備ができておりかつ前記中間バッファにおいて所定の量のスペースが使用可能であるときに、前記中間バッファへ前記第1のデータ転送リクエストと関連するデータを転送するように構成され、前記リクエストバッファ制御ロジックは、前記中間バッファから前記共有リソースへの前記第1のデータ転送リクエストと関連するデータの転送を開始するために、前記中間バッファへ結合されていることを特徴とする請求項3に記載の回路構成。
- 前記中間およびリクエストバッファのそれぞれはキューを含むことを特徴とする請求項3に記載の回路構成。
- 前記中間バッファ制御ロジックは、前記中間バッファにおいて前記第1の所定量のスペースよりも大きい第2の所定量のスペースが利用可能になっている場合に、前記第1のデータ転送リクエストが前記共有リソースにおいて処理される準備ができているか否かに関わらず、前記中間バッファへ前記第1のデータ転送リクエストに関連するデータの転送をするようにさらに構成されていることを特徴とする請求項1に記載の回路構成。
- 前記第1の所定量のスペースは、前記第1のデータ転送リクエストに関連するデータの一部分を記憶するために必要とされる最小量のスペースを含み、前記第2の所定量のスペースは、前記第1のデータ転送リクエストに関連するデータの全てを記憶するために必要とされる最小量のスペースを含むことを特徴とする請求項6に記載の回路構成。
- 前記第1のデータ転送リクエストは、グラフィック専用高速ポート(AGP)書き込みトランザクションを含み、前記第1の所定量のスペースはAGPブロックを含むことを特徴とする請求項7に記載の回路構成。
- 前記共有リソースインタフェースは、前記共有リソースへ前記中間バッファによって転送されたデータを受け取り、そのようなデータを前記共有リソースへ転送するために、前記中間バッファおよび前記共有リソースの中間に結合されることを特徴とする請求項1に記載の回路構成。
- 請求項1の回路構成を備えた集積回路装置。
- 請求項1の回路構成を備えたデータ処理システム。
- 請求項1の回路構成を定めるハードウェア定義プログラムを備え、該ハードウェア定義プログラムを搬送する信号搬送媒体およびプログラム製品。
- (a) 共有リソースと、
(b) 前記共有リソースへアクセスするためにデータ転送リクエストを生成するようにそれぞれ構成された複数のリクエスタであって、第1のデータ転送リクエストを生成するように構成された第1のリクエスタを含む複数のリクエスタと、
(c) 前記第1のリクエスタからデータ転送リクエストを受け取り、そのデータ転送リクエストを前記共有リソースへ転送するように構成されたリクエストバッファと、
(d) 前記第1のデータ転送リクエストに応答して、前記第1のリクエスタから前記第1のデータ転送リクエストに関連するデータを受け取り、その後、該データを前記共有リソースへ転送するように構成された中間バッファと、
(e) 前記中間バッファと結合された中間バッファ制御ロジックであって、前記第1のデータ転送リクエストが前記共有リソースにおいて処理される準備がなされかつ前記中間バッファにおいて所定の量のスペースが使用可能になるまで、前記第1のリクエスタから前記中間バッファへの前記第1のデータ転送リクエストと関連するデータの転送を禁止するように構成された中間バッファ制御ロジックとを備えた装置。 - (a) メモリバスに結合され、第1の長さを有するトランザクションを処理するように構成された共有メモリと、
(b) プロセッサバスと結合され、前記第1の長さを有するトランザクションを発するように構成されたプロセッサと、
(c) AGPバスと結合され、前記第1の長さよりも長い第2の長さを有するトランザクションを発するように構成されたグラフィック専用高速ポート(AGP)リクエスタと、
(d) 前記メモリバス、プロセッサバスおよびAGPバスに結合されたチップセットであって、
該チップセットは、
(1) 前記AGPバスに結合されたAGPインタフェースと、
(2) 前記プロセッサバスに結合されたプロセッサインタフェースと、
(3) 前記メモリバスに結合された共有メモリインタフェースと、
(4) 前記AGPバスからトランザクションを受け取るように構成されたリクエストバッファと、
(5) 前記AGPバスから受け取ったトランザクションと関連するデータを受け取るように構成された中間バッファと、
(6) 前記リクエストバッファに結合された中間バッファであって、前記トランザクションが前記共有メモリによって処理される準備ができているときに、前記共有メモリインタフェースへ前記リクエストバッファに記憶されたトランザクションを転送するように構成された中間バッファと、
(7) 前記中間バッファに結合された中間バッファ制御ロジックであって、前記AGPバスから受け取った第1のトランザクションに関連するデータを、(i)前記中間バッファ内に前記第1のトランザクションを達成するために充分なスペースが存在する、(ii)中間バッファ内に前記第1のトランザクションを開始するために充分なスペースが存在し、かつ前記第1のトランザクションが前記共有メモリによって処理される準備ができている、のいずれかである場合に、前記中間バッファ内へ転送するように構成された中間バッファ制御ロジックとを備えた装置。 - 共有リソースを複数のリクエスタとインタフェースする方法であって、
(a) 前記複数のリクエスタから複数のデータ転送リクエストを受け取り、前記複数のデータ転送リクエストのうち第1のデータ転送リクエストは前記複数のリクエスタのうち第1のリクエスタに関連し、
(b) 前記共有リソースへ前記データ転送リクエストを転送し、
(c) 前記第1のリクエスタから中間バッファへの第1のデータ転送リクエストに関連するデータの転送を、前記第1のデータ転送リクエストが前記共有リソースにおいて処理される準備ができ、かつ前記中間バッファにおいて所定の量のスペースが利用可能になるまで、禁止し、
(d) 前記中間バッファ内に記憶されたデータを前記共有リソースへ転送することを具備する方法。 - 前記第1のデータ転送リクエストが前記共有リソースにおいて処理される準備ができており、かつ前記中間バッファにおいて前記所定の量のスペースが利用可能になっているときに、前記第1のデータ転送リクエストに関連するデータを前記中間バッファへ転送することをさらに具備することを特徴とする請求項15に記載の方法。
- 前記中間バッファにおいて、前記第1の所定量のスペースよりも大きい第2の所定量のスペースが利用可能となっている場合に、前記第1のデータ転送リクエストが前記共有リソースにおいて処理される準備ができているか否かに関わらず、前記第1のデータ転送リクエストに関連するデータを前記中間バッファへ転送することをさらに具備することを特徴とする請求項15に記載の方法。
- 前記第1の所定量のスペースは、前記第1のデータ転送リクエストに関連するデータの一部分を記憶する必要のある最小量のスペースを含み、前記第2の所定量のスペースは、前記第1のデータ転送リクエストに関連するデータの全てを記憶する必要のある最小量のスペースを含むことを特徴とする請求項17に記載の方法。
- 前記第1のデータ転送リクエストは、グラフィック専用高速ポート(AGP)書き込みトランザクションを含み、前記第1の所定量のスペースはAGPブロックを含むことを特徴とする請求項18に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/657,832 US6584529B1 (en) | 2000-09-08 | 2000-09-08 | Intermediate buffer control for improving throughput of split transaction interconnect |
PCT/EP2001/009973 WO2002021285A2 (en) | 2000-09-08 | 2001-08-27 | Intermediate buffer control for improving throughput of split transaction interconnect |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004508634A true JP2004508634A (ja) | 2004-03-18 |
Family
ID=24638828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002524831A Pending JP2004508634A (ja) | 2000-09-08 | 2001-08-27 | 分割トランザクション相互接続のスループットを改善するための中間バッファ制御 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6584529B1 (ja) |
EP (1) | EP1356383A2 (ja) |
JP (1) | JP2004508634A (ja) |
WO (1) | WO2002021285A2 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7272649B1 (en) * | 1999-09-30 | 2007-09-18 | Cisco Technology, Inc. | Automatic hardware failure detection and recovery for distributed max sessions server |
US7376742B1 (en) | 2002-03-22 | 2008-05-20 | Cisco Technology, Inc. | Resource and AAA service device |
US7237026B1 (en) * | 2002-03-22 | 2007-06-26 | Cisco Technology, Inc. | Sharing gateway resources across multi-pop networks |
US7590740B1 (en) | 2002-03-22 | 2009-09-15 | Cisco Technology, Inc. | Expediting port release in distributed networks |
US7529249B1 (en) | 2002-03-22 | 2009-05-05 | Cisco Technology, Inc | Voice and dial service level agreement enforcement on universal gateway |
US7284058B1 (en) * | 2002-11-01 | 2007-10-16 | Cisco Technology, Inc. | Querying ASAP policy systems |
IL174590A (en) | 2005-03-29 | 2015-03-31 | Yoel Arieli | A method and an imaging system for the analysis of optical properties of an object illuminated by a light source |
EP1988463B1 (en) * | 2006-02-24 | 2012-01-04 | Fujitsu Ltd. | Memory control apparatus and memory control method |
US7512723B2 (en) * | 2006-12-29 | 2009-03-31 | Freescale Semiconductor, Inc. | Queued interface devices, multi-core peripheral systems, and methods for sharing a peripheral in a multi-core system |
US7657682B2 (en) * | 2007-09-14 | 2010-02-02 | Freescale Semiconductor, Inc. | Bus interconnect with flow control |
FR2961048B1 (fr) * | 2010-06-03 | 2013-04-26 | Arteris Inc | Reseau sur puce avec caracteristiques de qualite-de-service |
US8707071B2 (en) * | 2010-10-12 | 2014-04-22 | Mediatek Inc. | Power management method for controlling communication interface to enter/leave power-saving mode and related device thereof |
US10467010B2 (en) | 2013-03-15 | 2019-11-05 | Intel Corporation | Method and apparatus for nearest potential store tagging |
US10152327B2 (en) | 2013-03-15 | 2018-12-11 | Intel Corporation | Apparatus for gating a load operation based on entries of a prediction table |
US9606935B2 (en) * | 2013-03-15 | 2017-03-28 | Intel Corporation | Method and apparatus for preventing non-temporal entries from polluting small structures using a transient buffer |
US11354164B1 (en) | 2018-04-20 | 2022-06-07 | Automation Anywhere, Inc. | Robotic process automation system with quality of service based automation |
US10908950B1 (en) * | 2018-04-20 | 2021-02-02 | Automation Anywhere, Inc. | Robotic process automation system with queue orchestration and task prioritization |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA1257400A (en) * | 1985-05-21 | 1989-07-11 | Akihiro Sera | Input/output control system |
US5239387A (en) * | 1989-11-30 | 1993-08-24 | Hewlett-Packard Company | Buffering control for accommodating variable data exchange rates |
US5239651A (en) * | 1991-12-30 | 1993-08-24 | Sun Microsystems, Inc. | Method of and apparatus for arbitration based on the availability of resources |
JPH10257073A (ja) * | 1997-01-10 | 1998-09-25 | Mitsubishi Electric Corp | 送信バッファメモリ管理方法およびatm通信装置 |
US5892964A (en) * | 1997-06-30 | 1999-04-06 | Compaq Computer Corp. | Computer bridge interfaces for accelerated graphics port and peripheral component interconnect devices |
US6026451A (en) * | 1997-12-22 | 2000-02-15 | Intel Corporation | System for controlling a dispatch of requested data packets by generating size signals for buffer space availability and preventing a dispatch prior to a data request granted signal asserted |
US6098124A (en) * | 1998-04-09 | 2000-08-01 | National Instruments Corporation | Arbiter for transferring largest accumulated data block output from data buffers over serial bus |
US6457077B1 (en) * | 1999-06-10 | 2002-09-24 | International Business Machines Corporation | System for executing a current information transfer request even when current information transfer request exceeds current available capacity of a transit buffer |
-
2000
- 2000-09-08 US US09/657,832 patent/US6584529B1/en not_active Expired - Fee Related
-
2001
- 2001-08-27 EP EP01978316A patent/EP1356383A2/en not_active Withdrawn
- 2001-08-27 WO PCT/EP2001/009973 patent/WO2002021285A2/en not_active Application Discontinuation
- 2001-08-27 JP JP2002524831A patent/JP2004508634A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2002021285A2 (en) | 2002-03-14 |
EP1356383A2 (en) | 2003-10-29 |
WO2002021285A3 (en) | 2003-08-28 |
US6584529B1 (en) | 2003-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8082378B1 (en) | Master and slave side arbitrators associated with programmable chip system components | |
JP2004508634A (ja) | 分割トランザクション相互接続のスループットを改善するための中間バッファ制御 | |
US7185126B2 (en) | Universal serial bus hub with shared transaction translator memory | |
JP4748610B2 (ja) | 取り出されたデータをメモリに直接に書き込むストレージコントローラによるバッファスペースの最適な使用 | |
US7308522B2 (en) | Method and apparatus to allow dynamic variation of ordering enforcement between transactions in a strongly ordered computer interconnect | |
US6665756B2 (en) | Bus interface unit for reflecting state information for a transfer request to a requesting device | |
US20070283109A1 (en) | Memory controller configurable to allow bandwidth/latency tradeoff | |
US6519666B1 (en) | Arbitration scheme for optimal performance | |
US8244950B2 (en) | Buffering non-posted read commands and responses | |
JPH0642225B2 (ja) | Dma機能を有する計算機システム | |
US7016994B2 (en) | Retry mechanism for blocking interfaces | |
JP2002530744A (ja) | 多重レベル接続識別を備えた通信のシステムおよび方法 | |
EP0908826A2 (en) | Packet protocol and distributed burst engine | |
JPH11175454A (ja) | 自動直接メモリ・アクセス機能を備えたコンピュータ・システム | |
JPH1078934A (ja) | パケット切替えコンピュータ・システムのマルチサイズ・バス結合システム | |
JPH02289017A (ja) | コンピユータシステム内でデータ転送方法 | |
US6321233B1 (en) | Apparatus for controlling pipelined memory access requests | |
US7409486B2 (en) | Storage system, and storage control method | |
US6199118B1 (en) | System and method for aligning an initial cache line of data read from an input/output device by a central processing unit | |
US6292807B1 (en) | Method for controlling pipelined memory access requests | |
US6742074B2 (en) | Bus to system memory delayed read processing | |
US6895454B2 (en) | Method and apparatus for sharing resources between different queue types | |
US7206904B2 (en) | Method and system for buffering multiple requests from multiple devices to a memory | |
US6735677B1 (en) | Parameterizable queued memory access system | |
JP2002149591A (ja) | プロセッサ・ローカル・バス・システムでのバス最適化の方法および装置 |