JP3919765B2 - アービトレーションを管理する方法およびプロセッサ - Google Patents

アービトレーションを管理する方法およびプロセッサ Download PDF

Info

Publication number
JP3919765B2
JP3919765B2 JP2004112522A JP2004112522A JP3919765B2 JP 3919765 B2 JP3919765 B2 JP 3919765B2 JP 2004112522 A JP2004112522 A JP 2004112522A JP 2004112522 A JP2004112522 A JP 2004112522A JP 3919765 B2 JP3919765 B2 JP 3919765B2
Authority
JP
Japan
Prior art keywords
slice
transfer
cycle
request
received
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.)
Expired - Fee Related
Application number
JP2004112522A
Other languages
English (en)
Other versions
JP2004318876A (ja
Inventor
ロバート・エイチ・ベル・ジュニア
ロバート・アラン・カルニョーニ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2004318876A publication Critical patent/JP2004318876A/ja
Application granted granted Critical
Publication of JP3919765B2 publication Critical patent/JP3919765B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/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
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)

Description

本発明は、一般には、プロセッサおよびコンピューティング・システムに関し、より詳細には、プロセッサ内での、複数のスライス間で異なったレイテンシーを持つ要求パスおよびデータ・パス上での分散型バス・アービトレーションに関するものである。
今日の高速プロセッサには、様々なリソースと、1つまたは複数のプロセッサ・コア、キャッシュ、およびメモリとの間での非常に効率的な通信を可能にする、ハイレベルの統合化と非同期設計とが組み込まれており、その結果、データ転送および他の通信が、プロセッサ内でデジタル信号を伝播するほぼ限界の速度にて行われている。
具体的には、高速プロセッサの内部バスでは、異なったレイテンシーを持つパスを介してデータおよびコマンドを転送することができ、また、最大伝播時間のために制限された長い同期サイクルを必要とすることなしに、データおよびコマンドの妥当性が適切に検査され、それらが順序どおりに転送されるようにするロジックが備わっている。これは、今日のプロセッサにおいて、制御信号のみならず、データ値、プログラム命令、およびコマンドが、多数の論理ステージを介してパイプライン処理されることが可能で、これら信号が通過するステージの段数がチップ・レイアウトに大きく依存しているような場合には、特にそうである。
処理システム内でのこうした論理実装の一つに、プロセッサ・コア・アービタおよび1つまたは複数のスライス・アービタを含む、分散型アービトレーション方式がある。この分散方式によって、あるリソースからプロセッサ・コアへのデータ転送要求の早期の指示が可能になる。分散型アービトレーションの場合では、この早期の指示のタイミングは、データが存在する物理的な位置によって決まり、一方、集中型アービトレーション手法では一般に、要求を中央のポイントに中継し、アービトレーション決定を行い、次いでその決定をプロセッサ・コアに中継するのに必要な追加のサイクルを経た後でしか、こうした指示は提供されない。したがって、集中型アービトレーションでは、データが使用可能であることに関する指示をプロセッサ・コアに提供するのが非常に遅れることになる。
こうした分散型アービトレーション方式では、スライス・アービタに結合されたリソースが、1つまたは複数のスライスからプロセッサ・コアにデータを転送する準備ができたときに、当該スライス・アービタが、転送に必要なバスの割当てを決定し、それによって、いつ当該バス上にデータを置いてよいかをこれらスライスに対して指示する。それと同時に、かつ並行して、これらの要求はコア・アービタに送られ、その結果、プロセッサ・コアは、データ転送動作についての指示を早めに受け取る。コア・アービタは、要求元スライスからの個々のデータのレイテンシー分の時間が経過した後で、これら要求を受け取り、スライス・アービタ側で並行して行われている同じアービトレーション決定を履行し、データが届きつつあることをプロセッサ・コアに早めに指示し、続いて、これらスライスのデータがプロセッサ・コアでラッチ(またはロード)可能となる適切なときに、これらスライスから有効データが転送されるようにする。
一般に、単一サイクルのデータ転送動作のシーケンスを扱うのに必要なロジックはあまり複雑ではないが、それはそれぞれの要求元のレイテンシーが分かっており、また、スライス・アービタ側における(および並行してコア・アービタ側における)更なる許可は、それぞれのスライスの既知のレイテンシーに基づいて、別のスライスの要求を許可した後の特定の数サイクルの間は、ブロックすることができるからである。最長(最大)レイテンシーのスライスからの更なる要求をブロックする必要は全く無く、また、より速いスライスからの要求は、以前に調停された要求から届くデータがすでに選択されているので、データがコアに送信されはするが、ロードのためにスライス・アービタまたはコア・アービタのいずれによっても選択されることがないようなサイクルにおいては、ブロックされる。
上述のように、コア・アービタは、スライス・アービタと同じアービトレーション決定を行うが、これらスライスからコア・アービタに至るまでの異なったレイテンシーのせいで、必ずしもスライス・アービタ側と同じ順序で許可が行われるとは限らない。ただし、スライス・アービタによって許可されたのと同じ要求が、コア・アービタによって許可される。スライス・アービタ側とコア・アービタ側では、許可する順序が必ずしも一致しないことになるので、プロセッサ・コア側で(たとえば、戻ってきたデータのアドレスやタグを用いることによって)データを再度同期させる。コア・アービタは、マルチプレクサを介してこれらスライスをコアに結合する個々のバスを選択する決定を行う。コア・アービタは、所与のサイクルにおいて許可すべき適切なスライスを決定し、このようにして、適切なコア・レジスタにデータをロードするため適切なマルチプレクサ選択を行うことができる。
上述のように、コア・アービタは、それぞれのスライスのレイテンシーについての既知のサイクル数の差異に準拠した、スライス・アービタのための決定許可ロジック、に適合するロジックに基づいて決定を行う。いつスライス・アービタが、それぞれのスライスに関連するバスを許可したかを知ることによって、これらスライスから提供されるすべてのデータを使用することができ、また分散型アービトレーション手法では、スライス・アービタによって許可されたすべての転送の正常な終了が履行されるので、(所与のサイクルにおいて、マルチプレクサに対する競合が生じたために)データ転送に失敗したことをスライスに通知する必要はない。
しかし、もしこのようなシステムにおいてマルチサイクル要求が行われているとしたら、データが不正確にプロセッサ・コアに送られ、再試行処理または誤ったデータ転送が余儀なくされることになることもある。たとえば、最高(最大)レイテンシーのスライスが関与する要求が、すぐ後の最低(最小)レイテンシーのスライスからの要求の前に許可されるであろう。しかし、コア・アービタは、最レイテンシーのスライスがかなり後にならないとコア・アービタに到来しないので、まず最低レイテンシーのスライスからの要求を許可することになる。単一サイクル要求については、順不同な決定の間で生じるマルチプレクサの競合を防ぐには、上述のブロッキングで十分であるが、もしマルチサイクル要求が許可されると、既存のブロッキング方式では競合を防ぐのには不十分である。
したがって、分散型アービトレーション・システムにおいて、改良型のマルチサイクル・データ転送動作を実現するアービトレーション・システムおよび方法を提供することが望ましい。
分散型アービトレーション方式において、改良型のマルチサイクル・データ転送動作を提供する目的は、ある方法および装置で実現される。当該方法では、データ転送動作がマルチサイクル要求かどうかを判断し、要求がマルチサイクル要求であるという判断に応答して、最高レイテンシーを持つ第1のスライスだけに関連するバスを許可する。この方法ではさらに、当該第1のスライスよりも低い(小さい)レイテンシーを持つ別の要求元スライスからの要求は、当該別の要求元スライスと最高レイテンシーを持つ第1のスライスとの間のレイテンシーの差に所定のサイクル数を加えた値による時間が経過するまで、これをブロックする。この方法ではまた、所定のサイクル数を経るまで、当該第1のスライスからの追加の要求もブロックする。この方法ではさらに、当該第1のスライスよりも高い(大きい)レイテンシーを持ったスライスからの要求も、当該第1のスライスと当該より高いレイテンシーを持つスライスとの間のレイテンシーの差を所定のサイクル・カウンタ値から引いた値による時間が経過するまで、これをブロックする。当該装置は、本発明の一実施形態にしたがってプロセッサ内で本発明の方法を遂行するためのロジックを有している。
本発明の前述その他の目的、特徴および利点は、添付の図面に示す本発明の好ましい実施形態についての以下のより具体的な記述から明らかなものとなる。
次に図面、特に図1を参照すると、本発明による方法および装置を実施するプロセッサ10のブロック図が示されている。プロセッサ10は一般に対称型マルチプロセシング・システム(SMP)で使用されるタイプのものであり、他のプロセッサによって実行される命令を、キャッシュ内またはプロセッサ10内のリソースにロードされた値と関係させることができるものである。しかし、本発明の技術は、(転送の受信側によって開始されたコマンドに結果的に応答しての完了要求であることもある)転送要求が転送の供給側から提供されるようなデータ転送機構、を有するいずれのプロセッサにも適用される。単一のプロセッサ・システムには、たとえばあるいくつかの値が記憶装置または他のリソースからプロセッサ・コアに再ロードされる場合に、こうしたデータ転送機構を含めることがきる。本発明の文脈におけるデータ転送という用語は、即時のデータ転送要求がデータの供給側で発生する場合におけるある動作を意味し、具体的な例では、データ転送を要求するリソースからプロセッサ・コアに至る動作を意味する。また「データ転送」によって規定される転送のタイプは、「データ値」(プログラムで使用される変数や定数など)の転送に限定されず、プログラム命令、内部コマンド、アドレス値、タグなどの転送をも含む。
プロセッサ10は、プロセッサ10内のプログラム命令の実行およびデータの移動を制御するコア実行ユニット14を含む。コア実行ユニット14は、命令シーケンサ・ユニット12、プリフェッチ・ユニット13、キャッシュ・インターフェイス・ユニット16、オンボードのL1キャッシュ17およびL2キャッシュ18、ならびに浮動小数点ユニット15など様々なリソースに結合されている。一部のデータ転送命令は、単一のデータ値に対するものであり、このデータ値は、特定の要求元スライスから単一サイクルで取り出すことができる。しかし、マルチサイクルのデータ転送命令もまたコア実行ユニット14によってサポートされており、それには、複数のバス・サイクルが複数のデータ値を取り出せるよう調整されていることが必要であり、それはたとえば、L2キャッシュ18の1つまたは複数のキャッシュ・ラインである場合がある。
データ転送命令は、他のリソースのコア実行ユニット14への接続において、ならびに、コア実行ユニット14以外の装置間での接続においも実施することもできる。本明細書に開示するバス・アービトレーションの技術は、データ転送動作を必要としており、また、データ、プログラム命令またはコマンドを処理システム内の別のユニット(転送受信側ユニット)に供給するための共有バス、に結合された複数のスライス(データ供給側)を有している、処理システムのどんな部分にも適用することができる。
次に図2を参照すると、プロセッサ10内の回路の細部が示されている。本発明の技術を説明するために、L2キャッシュ18とコア実行ユニット14との間の接続を用いるが、本発明は、前述のように、プロセッサ10内の他のユニット間の接続に拡張され、また高速相互接続バス上の複数プロセッサ間などのアービトレーション方式にも一般に適用され、この高速相互接続バスでは、受信側ユニットにて早期のデータ供給の指示を受け取ることが必要であり、それ故、インターフェイス上で分散型アービトレーションが実施されるのだということを理解されたい。
スライスM1、M2およびM3は、L2キャッシュ18内の記憶ユニットであり、コア実行ユニット14に対して異なったレイテンシーを持つが、それは、L2キャッシュ18のアーキテクチュアのせいか、または、プロセッサ10内でのスライスM1、M2およびM3の物理的位置のせいである場合がある。3つのスライスの図は例示的なものであり、本発明の技術は、任意の数のスライスに、または一般に、任意の種類のデータ提供元に拡張される。スライスM1、M2およびM3は、コア実行ユニット14をL2キャッシュ18に接続する関連バス28A〜28Cを介して、コア実行ユニット14に結合される。コア実行ユニット14へのデータの供給も例示的なものであり、本発明の技術は、任意のデータ受信側に適用される。要求パス26は、単一の制御パスのこともあるし、実際にはバス28A〜28Cであることもあり、こうしたバスを介して、データ転送要求の指示がコア・アービタ22に送られる。スライス・アービタ24は、スライスM1、M2およびM3に結合され、それぞれのスライスM1、M2およびM3から要求の指示を受け取る。スライス・アービタ24の役割は、スライスM1、M2およびM3からコア実行ユニット14内のマルチプレクサ20へのデータ供給に関する競合ならびに順序制御誤りを防ぐことである。マルチプレクサ20は、1サイクルごとに、バス28A〜28Cのうちの1つからしかデータを選択することができないので、スライス・アービタの役割は、同じサイクルでマルチプレクサ20に届くはずの、スライスM1、M2およびM3からのデータ送信を行わないようにして、複数のスライスから同時に到来するデータのロスを回避することである。コア・アービタ22の役割は、所与のサイクルで、(あるとすれば)どのデータをマルチプレクサ20から供給するかを判断することである。マルチプレクサ20は、プロセッサ・コア内に集中型マルチプレクサとして示されているが、本発明の他の実施形態によるシステム内のマルチプレクサでは、データ転送動作のデータの宛先がマルチプレクサ・アドレスによって決まり、また、データ有効信号のタイミングを、異なったマルチプレクサ・レイテンシーに従って調整することができる、分散型マルチプレクサを組み込むことができる。
コア・アービタ22は、スライス・アービタ24によって許可された要求に関連するデータの順序およびサイクル・タイミングを決定する役割を担っており、その結果、コア実行ユニット14に到来するデータの順序およびサイクル・タイミング(それらは、スライス・アービタ24で行われる決定によって指示される)が、データのコア実行ユニット14への適切なロードが行えるように、正しく決定されることになる。スライスM1、M2およびM3からの要求レイテンシーL1、L2およびL3は異なっており、ここでの例では、最高レイテンシーL3から最低レイテンシーL1へ順序付けされる。コア・アービタ22はまた、レイテンシーL4でデータ有効信号を供給し、このことで、コア実行ユニット14内のレジスタへ適切なデータを供給するようにマルチプレクサ/ラッチ20が動作する。データ有効信号をアサートするまでの追加のレイテンシーによって、スライス・アービタ24側で許可されなかったためその後無効化されている要求を、キル/ブロックすることができる。データも同様に、スライスM1、M2およびM3の要求から、L4だけ遅延され、その結果、アサートされたデータ有信号が、提供されるデータとうまく並ぶようになる。もしデータおよびデータ有効信号が遅延しないのなら(すなわち、要求とデータがスライスM1、M2およびM3から同時に送出される場合)、スライス・アービタ24がバス28A〜28C上へのデータのロードをブロックする時間はなくなっていることであろうし、その後にマルチプレクサ20上で、それが拒否されていることになって、不必要な電力を消費させ、不必要な仕事によってスライスビジーにされるであろう。データ有効信号/データ遅延は、要求とデータの間の、固定サイクル・オフセットのみを表しているので、いかなる帯域幅に関するペナルティもこうした遅延には関連付けられていない。
本発明の文脈において、マルチサイクル動作の場合には、スライス・アービタ24によって再ロード・バスがスライスM1およびM2よりも高いレイテンシーのマルチサイクル動作用のスライスに既に許可されているときには、スライスM1およびM2から送られ、コア・アービタ22に移動中である要求を、コア・アービタ22がキルできることが必要不可欠である。上述の動作によって、スライス・アービタ24によって決定された許可が、コア・アービタ22で履行され、その結果、スライス・アービタ24によって許可されなかったが、コア・アービタ22によって受け取られた要求が、コア・アービタ22で誤って許可されることがなくなる。4≧L3−L1であるレイテンシーの関係から、こうした要求をキルする能力を具現化するのに必要な時間が提供される。単一サイクル動作について、表Iにスライス・アービタ24の動作を示す。
Figure 0003919765
表1の左3つの欄は、スライス・アービタ24に提示された、それぞれのスライスM1、M2およびM3からの要求を示し、ロジック「1」は要求している状態を、「0」は、要求していない状態を表す。スライス要求のすべての組合せについて、すべての要求されたスライスがサイクル1で許可されるが、これは、サイクル1でコアに向かって既に進行中のものはないと仮定しており、これは、スライス・アービタ24によっていずれかの要求が許可される前の初期状態である。要求が許可された後では、コア実行ユニット14に移動しているデータに関連する、より長いレイテンシーによって決まるサイクルにおいて、スライスM1およびM2からの更なる要求がブロックされなければならない。
たとえば、3つのスライスM1、M2およびM3がすべて、サイクル1で始まるデータ転送の開始を許可された場合、スライスM3からの更なる要求を、スライス・アービタ24上でブロックする必要はないが、これは、スライスM3からの次の要求がコア・アービタ22に(サイクルL3+1で)伝播する前に、当該第1の転送サイクルが(サイクルL3で)既に完了しているからである。しかし、スライスM1およびM2からの更なる要求は、その要求が、それらのデータの到来とスライスM3からの要求に対して提供されるデータの到来とを同時に発生させるものである場合は、当該到達するサイクルにてブロックされなければならない。要求後、データはL4サイクルだけ遅延されるので、別のスライスからのデータは、スライスM3からの当該データと同じサイクルにて到来し、マルチプレクサ20は、両方のスライスからのデータをロードすることはできないこともある。スライスM1からの要求もまた、当該要求がスライスM2からの要求と同時に到達するかもしれないようなサイクル、すなわち当該データがサイクルL2にて到来するようなサイクルである場合においては、そしてスライスM1からの場合は、サイクル1+L2−L1にて到来するようなサイクルである場合には、ブロックされなければならない。一般に、この表は、スライス・アービタ24で許可された以前の要求がコア・アービタ22に到達するような特定のサイクルについての要求をブロックし、複数のスライスからの要求を満たすデータが同時に到達することが回避されることを反映している。
上述の説明では、当該スライスについて、要求レイテンシーがデータレイテンシーと等しいと仮定している。もし(上述のデータ/データ有効レイテンシー以外に)データレイテンシーが要求レイテンシーと一定サイクル数分異なる場合には、当該許可サイクルを、当該データ・レイテンシーの超過分に等しい値だけ遅延させなければならない(たとえば、もし当該データ・イテンシーが要求レイテンシーよりも4サイクル分長い場合には、表を、サイクル1ではなく、サイクル4での許可として示すようにする)。もしデータ・レイテンシーの差が様々である場合には、システムでは、そのうちの最高データ・レイテンシーを待つこともできるし、また、保留中のサイクルに関わる最高データ・レイテンシーを遅延させる複雑なロジックを実装することもできる。
上述のアービトレーション方式は、コア・アービタ22およびスライス・アービタ24が要求を異なる時間に許可したとしても、エラーなく実装することができるが、それは、データと同じレイテンシーをL4サイクルずらしたレイテンシーで、要求タイプがコア実行ユニット14に供給されるためである。スライス・アービタ24はある順序で要求を許可し、コア・アービタ22は別の順序で要求を許可する(もしこれら要求が両スライス間のレイテンシーの時間差の範囲内である場合)が、データを常に適切な宛先にソートすることができなくてはならず、それは要求のレイテンシーおよびデータのレイテンシーがスライスごとに同じであり、それ故、当該データが各要求からL4サイクル分オフセットされるためである。もし複数の要求がコア・アービタ22に同時に到来した場合には、まず最長レイテンシーのスライスの要求が許可され、これは表1に従ったスライス・アービタ24での許可と一致する。このように、前記のプロセスに従って要求を許可することによって、コア・アービタ22は、バス28A〜C上に提供されたデータを、提供元のスライスと常に関連付けることができる。
しかし、マルチサイクル要求(データ転送動作を完遂するのに複数サイクルを必要とするサイクル・タイプ)を実施する場合には、表1に概要を示したアービトレーション方式では失敗するが、これは、スライスの要求が、別のスライスのマルチサイクル要求がまだ処理されている間に許可することが可能であり、単一サイクルでの要求をブロックしても、マルチサイクル動作と他のマルチサイクルまたは単一サイクル動作との間のマルチプレクサにおける競合回避されないためである。マルチサイクル動作のデータと他の動作のデータとの間の競合を回避するために、分散型アービトレーション・システムを変更して、保留中のマルチサイクル・データ転送動作の完了を保証するのに十分な時間だけ、追加の動作の要求をブロックするようにすることができる。効率的な動作を成し遂げるために、スライス・アービタ24およびコア・アービタ22では、マルチサイクル動作の指示が使用され、この指示は一般に、要求の指示から解読可能な動作タイプであるが、もう1つの方法として、別個の制御パスを介して供給されることもある。
表2は、すべての要求がマルチサイクル動作タイプである場合の、スライス・アービタ24の動作を示している。
Figure 0003919765
最長レイテンシーを持った要求元スライスが最初に許可される。他のスライスからの要求は、所定のサイクル・カウンタ値「K」が経過するまで、その後のすべてのサイクルでブロックされるが、このKは、少なくとも当該マルチサイクル・データ転送動作を完了するのに必要な最小サイクル数である。最長レイテンシーのスライスの要求が許可された後、K個のサイクルが経過した時点である、サイクル1+Kまで、そのスライスをブロックすることが観察される。さらに、それよりも低いレイテンシーのスライスからのマルチサイクル要求は、サイクル1+Kにそのレイテンシーの差に等しいサイクル数を加えた期間が経過するまでブロックされ、それによってマルチサイクル転送が完了することと、当該低いレイテンシーのスライスからのマルチサイクル要求が、そのマルチサイクル転送要求がコア実行ユニット14に伝わる前には、コア・アービタ22側で受信されないようにすることとが保証される。
さらに、より高いレイテンシーのスライスからのマルチサイクル要求は、Kサイクル経過した時間から、当該許可されたスライスと各々のより高いレイテンシーを持ったスライスとの差の分のレイテンシーを引いた値のサイクル数の間ブロックされる。たとえば、スライスM1が、マルチサイクル転送を実施する、許可されたスライスである場合、スライスM2の要求は、サイクル1+K−(L2−L1)までブロックされ、またスライスM3の要求は、サイクル1+K−(L3−L1)までブロックされることで、コア実行ユニット14に伝播されるマルチサイクル要求とのデータ衝突の潜在性が回避されるまで、より高いレイテンシーを持つスライスからの要求は遅延させられる。
スライス・アービタ24によって受信される要求が、単一サイクル要求とマルチサイクル要求の混在したものである場合、以下の規則によって、これら要求に応答してバス28A〜Cをブロックおよび許可するための処理方式(表1の方式または表2の方式)が選択される。
1)いずれかのより低いレイテンシーを持つ要求がマルチサイクル動作のためのものである場合、最高レイテンシーの要求が単一サイクルであったか、それともマルチサイクルであったかに関係なく、その要求は表2の規則に従い許可をされない。
2)最高レイテンシーの要求が、単一サイクル動作のためのものである場合、他のより低いレイテンシーの単一サイクル要求が、表1の規則に従って許可される。
3)最高レイテンシーの要求がマルチサイクル動作のためのものである場合、他のより低いレイテンシーの単一サイクル要求は、もし当該要求がサイクル1で発生するか、または、表1に示した、要求元スライスをブロックするサイクルの前に発生した場合には、表1の規則に従って許可される。そのスライスについての当該特定のブロッキング・サイクルの後は、そのスライスから行われるいずれの要求も、表2の規則に従ってブロックされる。
たとえば、スライスM1、M2およびM3がすべてサイクル1で要求しており、かつスライスM1およびM3からの要求はマルチサイクルであるが、スライスM2からの要求は単一サイクルである場合、スライスM3およびM2は、上記の規則1および規則3に従ってそのバスを許可されるが、M1は、規則1に従ってそのバスを許可されない。サイクル2で、スライスM1が次いで単一サイクル要求を行った場合、スライスM1はそのバスを許可されるが、それは規則3および表1に従えば、サイクル2での要求は、1+(L3−L1)=3よりも小さく、従ってその要求はブロックされないためである。
スライス・アービタ24に対する変更に加えて、コア・アービタ22も同様に修正され、その結果、表1または表2と、上記の単一サイクルおよびマルチサイクルの混在する要求についての規則とに従って、スライス・アービタ24で許可された、より高いレイテンシーのスライスからの単一サイクルまたはマルチサイクル転送が到来したときに、より低いレイテンシーのスライスからのマルチサイクル動作に対する誤った許可の補償が行われる。表3は、コア・アービタ22で「キル」しなければならないマルチサイクル要求を示している。「キル」の実施によっては、スライス・アービタ24、または、スライスM1、M2、もしくはM3は影響を受けないが、スライス・アービタ24で拒否された要求をコア・アービタ22で許可することも、また前に拒否された要求に対するデータ有効信号をアサートすることも回避され、そうしなければ、(当該「キル」の実施は)コア実行ユニット14で、無効または誤ったデータのマルチプレクスおよび/またはラッチを行うことになってしまう。
Figure 0003919765
表3を見ると、サイクル1より前のサイクルで既に許可されている要求が、コア・アービタ22で「キル」されることが分かり、キルすることによって、到来する拒否された要求は効果的に無視される。表3は、マルチサイクル再ロード動作を実施するスライスに対して、サイクル1での許可に基づいて要求をキルすることを示している。サイクル1より前にスライス・アービタ24で許可された、より低いレイテンシーのスライスからのマルチサイクル要求は、もしそれらがマルチサイクル再ロード・スライスとその要求元スライスとの間のレイテンシーの差の時間内に許可される場合は、キルされる。したがって、データ有効信号を生成するのに必要な時間は、スライス間の最長のレイテンシー差よりも長くなければならない。たとえば、図示する実施形態では、L4≧L3−L1となる。
コア・アービタ22はまた、スライス・アービタ24内のサイクル・カウンタ動作と同様に、カウンタも使用して、後続の単一サイクルおよびマルチサイクル動作をブロックする。このカウンタは、あるマルチサイクル動作が許可された後、その許可サイクルから始まってK+1サイクルの間、後続の動作に対する許可をブロックする。
そうでなければ、以前のマルチサイクル転送であるためコア・アービタ22でブロックされるはずの一部のマルチサイクル要求は、表4に示すように、アービトレーションのために可能にされなければならない。
Figure 0003919765
サイクル1で、コア・アービタ22によって、マルチサイクル要求についてより低いレイテンシーのスライスが許可されている場合は、スライス・アービタ24によって当該より低いレイテンシーの要求よりも優先して許可された、コア・アービタ22に到来するより高いレイテンシーのスライスの要求は、コア・アービタ22でアービトレーションが可能とならなければならない。表4は、(より低いレイテンシーの)マルチサイクル要求のデータ提供元と、スライス・アービタ24で以前にバスを許可されている(より高いレイテンシーの)スライスとの間のレイテンシーの差の時間内に到来する要求を許可することが示されている。
次に図3を参照すると、上述のシステム内でのバス動作が示されている。コア実行ユニット14における、要求/データの供給が、要求の指示29およびマルチプレクサ入力データ29Aを転送するパイプラインにおけるセル(実際には、各スライスにつき単一バスであることがある)にて示されている。要求ラインRM1、RM2およびRM3は、スライス・アービタ24に対する、データ転送要求の指示である。要求パイプライン29およびデータ・パイプライン29A中のセルは、各サイクルに対応しており、最も左のセルがサイクル1である。サイクル1では、マルチサイクル動作を示すMULTIがアサートされていないので、3つの要求のすべてがアサートされ許可される。サイクル2では、1サイクル・レイテンシーのため、要求がM1から供給される。サイクル5では、要求がM2から供給され、サイクル7では、要求がM3から供給される。サイクル3で、RM2が再びアサートされるが、しかし、(表1の)サイクル1でのスライスM3の許可に基づくスライスM2の許可をブロックするための式が、1+(L3−L2)=サイクル1+6−4=サイクル3であるので、スライス・アービタ24ではブロックされる。上述の、許可を拒否することによって、コア実行ユニット14内で、スライスM2からのデータが、M3スライスからのデータと、サイクル7+L4(この例では、L4=6)で、マルチプレクサ20に対して競合することがなくなる(c1は潜在的な競合関係を示す)。サイクル7で、両方の要求がコア・アービタ22に到来すること、および、スライスM3が最長レイテンシーを持つスライスであるので、コア・アービタ22はまた、スライスM2よりもスライスM3を選択することに留意されたい。
次いで、M2の要求が、サイクル4で許可され、サイクル8でコア・アービタ22に到来し、サイクル14でデータを供給する。マルチサイクル要求が、サイクル7で、M2から行われ、この要求が許可され、サイクル11で、コア実行ユニット14に到来し始める。サイクル12で、単一サイクル動作用にRM1、RM2およびRM3が、再びアサートされるが、RM1については、7+K+L2−L1=サイクル20まで、RM2については、7+K=サイクル17まで、RM3については、7+K−(6−4)=サイクル15までブロックされる。スライス・アービタ24によって許可されたスライスからの再ロード・データだけが、実際には再ロード・バス28上にロードされ、このロードされたデータが、L4の遅延(この例では、6サイクル)およびスライスのレイテンシーによって決まるサイクルでコアに到来する。
上述の許可された要求に対するデータであるM1、M2およびM3がバス・パイプライン29Aに表されており、このパイプラインがバス28A〜28Cからマルチプレクサ20に入力される有効データを表している。データ有効信号によって、コア実行ユニット14内のレジスタ(またはマルチプレクサ20の内部ラッチ)にデータがラッチされる。データ/データ有効信号と、コア・アービタ22に到来する要求との間の遅延は、本明細書では6サイクルとして示すL4である。データは、当該要求が届いてからL4サイクル後に、マルチプレクサ20を介してコア実行ユニット14にロードされる。したがって、上に示すように、スライス・アービタ24にて、表2に従って要求をブロックすることによって、上に示したマルチサイクル動作が終了した直後(サイクル7+K)にスライス・アービタ24によって行われる許可が、直前に終了したマルチサイクル動作を実施したスライスとそれより高いレイテンシーを持つスライスとの間のレイテンシー差による時間が経過するまで拒否され、それによって、コア・アービタ22によってこうした要求が拒否されることが回避され、その結果、コア・アービタ22がマルチサイクル動作の後に許可された要求を誤って拒否することがなくなる。
次に図4および5を参照すると、本発明の一実施形態による方法が示されている。データ転送要求がスライス・アービタ24で受信され(ステップ30)、その要求が以前の処理でブロックされていない場合には(判断31)、最高レイテンシーのスライスが許可され(ステップ32)、それより低いレイテンシーのマルチサイクル要求はすべてブロックされる。最高レイテンシーの要求がマルチサイクル動作でない場合には(判断33)、デフォルトの単一サイクル処理によってすべての要求元スライスが許可され、供給が、直前に許可されたスライス・データの供給と一致するようなサイクルでは、更なる要求はブロックされる(ステップ34)。そうでなく、もし最高レイテンシーの要求がマルチサイクル要求である場合は、それより低いレイテンシーの単一サイクル要求は、もしその要求がデフォルトの単一サイクル処理についてのブロッキング・サイクルよりも前に行われた場合に、それは許可される(ステップ35)。次いで、より低いレイテンシーのスライスからの要求は、最高レイテンシーとそのスライスのレイテンシーとの間のそれぞれの差に所定のカウンタ値を加えた値による時間が経過するまでブロックされる(ステップ38)。また最高レイテンシーの(許可された)スライスからの更なる要求は、所定のカウンタ値による時間が経過するまでブロックされる(ステップ40)。最後に、より高いレイテンシーのスライスからの要求が、所定のカウンタ値から、そのより高いレイテンシーとそのスライスのレイテンシーとの間のそれぞれの差を引いた値による時間が経過するまでブロックされる(ステップ42)。
コア・アービタ22では、より低いレイテンシーのマルチサイクル要求が、より高いレイテンシーのマルチサイクル動作が直前に許可された後、カウント値Kによる時間が経過するまでの間に届いた場合には、それをキルする(ステップ43)。さらには、より低いレイテンシーのマルチサイクル要求は、もしそれが、当該より高いレイテンシーの要求と同時に到来するか、または、それより以前であってかつ当該マルチサイクルの要求元のレイテンシーと当該より低いレイテンシーを持つ要求元のレイテンシーとの間の差に等しいサイクル数の範囲内に到来する場合に、それをキルする(ステップ44)。より高いレイテンシーのマルチサイクル要求は、もしそれが、より低いレイテンシーのマルチサイクル要求と同時に到来するか、または、それより以降であってかつ当該マルチサイクルの要求元のレイテンシーと当該より低いレイテンシーを持つマルチサイクルの要求元レイテンシーとの間の差に等しいサイクル数の範囲内に到来する場合に、それを受け入れる(ステップ46)。
一般に、上述のスライス・アービタのステップは、スライス・アービタで要求が受信されるのと同時に実施され、上述のコア・アービタについてのステップは、コア・アービタに要求が到来するのと同時に実施されるが、特定の論理設計のために、また、ブロック、キルおよび受入れ動作の特定のタイミングに依存して、それと多少異なることがある。
本発明を、好ましい実施形態を参照して具体的に示し説明したが、本発明の趣旨および範囲を逸脱せずに、前述のまたはその他の、形態および詳細における変更を実施できることは、当業者には理解されるであろう。
本発明の一実施形態によるプロセッサのブロック図である。 図1のプロセッサ10内をさらに詳細に示すブロック図である。 本発明の一実施形態によるプロセッサ内でのデータ転送動作を示すタイミング図である。 本発明の一実施形態による方法を示すフローチャートである。 本発明の一実施形態による方法を示すフローチャートである。
符号の説明
10 プロセッサ
12 命令シーケンサ・ユニット
13 プリフェッチ・ユニット
14 コア実行ユニット
15 浮動小数点ユニット
16 キャッシュ・インターフェイス・ユニット
17 L1キャッシュ
18 L2キャッシュ
19 バス・インターフェイス・ユニット
20 マルチプレクサ
22 コア・アービタ
24 スライス・アービタ
26 要求パス
28A バス
28B バス
28C バス
29 要求パイプライン
29A データ・パイプライン

Claims (12)

  1. 転送供給側の複数のスライスと転送受信側との間のアービトレーションを管理する方法であって、前記複数のスライスの各々が、別々のバスにそれぞれ接続されていて、これらの別々のバスがいずれも前記転送受信側に結合されており、前記複数のスライスの各々が、前記転送受信側に至るまでの異なったレイテンシーを有しており、
    前記転送供給側に設けられ且つ要求線を介して前記複数のスライスの各々に接続されたスライス・アービタが、前記複数のスライスのうちの1つまたは複数からそれぞれ発行された転送要求を受信するステップと、
    前記スライス・アービタが、前記受信した転送要求が複数であり且つ当該受信した複数の転送要求の全てが複数のデータ・サイクルを必要とするか否かを判断するステップと、
    前記スライス・アービタが、前記受信した複数の転送要求の全てが複数のデータ・サイクル必要としないと判断したことに応答して、(1)前記受信した複数の転送要求を発行した全てのスライスに対応するバスの使用を許可し、(2)前記受信した複数の転送要求のうちで最大レイテンシーを有する第1のスライスからの次の転送要求については、これをブロックせず、(3)前記受信した複数の転送要求のうちで前記第1のスライスよりも小さいレイテンシーを有する第2のスライスからの次の転送要求については、前記許可が行われたサイクルを示すサイクル・カウンタ値に、前記第1のスライスのレイテンシーと前記第2のスライスのレイテンシーとの間の差を加えた値に相当するサイクルで、これをブロックするステップと、
    を有する方法。
  2. 転送供給側の複数のスライスと転送受信側との間のアービトレーションを管理する方法であって、前記複数のスライスの各々が、別々のバスにそれぞれ接続されていて、これらの別々のバスがいずれも前記転送受信側に結合されており、前記複数のスライスの各々が、前記転送受信側に至るまでの異なったレイテンシーを有しており、
    前記転送供給側に設けられ且つ要求線を介して前記複数のスライスの各々に接続されたスライス・アービタが、前記複数のスライスのうちの1つまたは複数からそれぞれ発行された転送要求を受信するステップと、
    前記スライス・アービタが、前記受信した転送要求が複数であり且つ当該受信した複数の転送要求の全てが複数のデータ・サイクルを必要とするか否かを判断するステップと、
    前記スライス・アービタが、前記受信した複数の転送要求の全てが複数のデータ・サイクル必要とすると判断したことに応答して、(1)前記受信した複数の転送要求のうちで最大レイテンシーを有する第1のスライスからの転送要求だけを選択して、当該第1のスライスに対応するバスの使用を許可し、(2)前記受信した複数の転送要求のうちで前記第1のスライスよりも小さいレイテンシーを有する第2のスライスからの転送要求については、前記許可が行われたサイクルの後、少なくとも前記第1のスライスからの前記転送要求に関連するデータ転送動作を完了するのに必要なサイクル数を表す所定のサイクル・カウンタ値に、前記第1のスライスのレイテンシーと前記第2のスライスのレイテンシーとの間の差を加えた値に相当するサイクルが経過するまで、これをブロックし、(3)前記第1のスライスからの次の転送要求については、前記許可が行われたサイクルの後、前記所定のサイクル・カウンタ値に相当するサイクルが経過するまで、これをブロックするステップと、
    を有する方法。
  3. 前記スライス・アービタが、前記許可が行われたサイクルの後に、前記第1のスライスよりも大きいレイテンシーを有する第3のスライスから受信し且つ複数のデータ・サイクル必要とすると判断した転送要求については、前記許可が行われたサイクルの後、前記所定のサイクル・カウンタ値から、前記第のスライスのレイテンシーと前記第1のスライスのレイテンシーとの間の差を引いた値に相当するサイクルが経過するまで、これをブロックするステップ、をさらに有する、請求項に記載の方法。
  4. 前記転送受信側に設けられ且つ前記要求線に接続されたコア・アービタが、前記第1のスライスからの前記転送要求を受信し且つ当該第1のスライスに対応するバスの使用を許可するときは、当該許可が行われたサイクルの後、前記所定のサイクル・カウント値に相当するサイクルが経過するまで、前記第2のスライスから受信される前記転送要求をキルするステップ、をさらに有する、請求項に記載の方法。
  5. 前記転送受信側に設けられ且つ前記要求線に接続されたコア・アービタが、前記第1のスライスからの前記転送要求を受信し且つ当該のスライスに対応するバスの使用を許可するときは、前記第1のスライスからの前記転送要求と同時に受信されるか、又はそれより以前であって且つ前記第1のスライスのレイテンシーと前記第2スライスのレイテンシーとの間の差に相当するサイクルの範囲内に受信される前記第2のスライスからの前記転送要求をキルするステップ、をさらに有する、請求項に記載の方法。
  6. 前記転送受信側に設けられ且つ前記要求線に接続されたコア・アービタが、前記第1のスライスからの前記転送要求を受信し且つ当該のスライスに対応するバスの使用を許可するときは、前記のスライスからの前記転送要求と同時に受信されるか、又はそれより以降であって且つ前記第のスライスのレイテンシーと前記第のスライスのレイテンシーとの間の差に相当するサイクルの範囲内に受信される前記第3のスライスからの前記転送要求については、これを許可するステップ、をさらに有する、請求項に記載の方法。
  7. 送要求に関連するデータを受信する転送受信ユニットと、
    前記転送受信ユニットに結合され且つ複数のスライスを有するリソースとを備え、
    前記複数のスライスの各々は、別々のバスにそれぞれ接続されていて、これらの別々のバスがいずれも前記転送受信ユニットに結合されており、また前記複数のスライスの各々は、前記転送受信ユニットに至るまでの異なったレイテンシーを有しており、
    前記リソースの側に設けられ且つ前記バスについての要求を調停するため要求線を介して前記複数のスライスの各々に接続されたスライス・アービタをさらに備え、
    前記スライス・アービタが、前記複数のスライスのうちの1つまたは複数からそれぞれ発行された転送要求を受信し、前記受信した転送要求が複数であり且つ当該受信した複数の転送要求の全てが複数のデータ・サイクルを必要としないとの指示を生成するための回路を含み、当該指示に応答して、(1)前記受信した複数の転送要求を発行した全てのスライスに対応するバスの使用を許可し、(2)前記受信した複数の転送要求のうちで最大レイテンシーを有する第1のスライスからの次の転送要求については、これをブロックせず、(3)前記受信した複数の転送要求のうちで前記第1のスライスよりも小さいレイテンシーを有する第2のスライスからの次の転送要求については、前記許可が行われたサイクルを示すサイクル・カウンタ値に、前記第1のスライスのレイテンシーと前記第2のスライスのレイテンシーとの間の差を加えた値に相当するサイクルで、これをブロックするように構成されている、
    プロセッサ。
  8. 転送要求に関連するデータを受信する転送受信ユニットと、
    前記転送受信ユニットに結合され且つ複数のスライスを有するリソースとを備え、
    前記複数のスライスの各々は、別々のバスにそれぞれ接続されていて、これらの別々のバスがいずれも前記転送受信ユニットに結合されており、また前記複数のスライスの各々は、前記転送受信ユニットに至るまでの異なったレイテンシーを有しており、
    前記リソースの側に設けられ且つ前記バスについての要求を調停するため要求線を介して前記複数のスライスの各々に接続されたスライス・アービタをさらに備え、
    前記スライス・アービタが、前記複数のスライスのうちの1つまたは複数からそれぞれ発行された転送要求を受信し、前記受信した転送要求が複数であり且つ当該受信した複数の転送要求の全てが複数のデータ・サイクルを必要とすると指示を生成するための回路を含み、当該指示に応答して、(1)前記受信した複数の転送要求のうちで最大レイテンシーを有する第1のスライスからの転送要求だけを選択して、当該第1のスライスに対応するバスの使用を許可し、(2)前記受信した複数の転送要求のうちで前記第1のスライスよりも小さいレイテンシーを有する第2のスライスからの転送要求については、前記許可が行われたサイクルの後、少なくとも前記第1のスライスからの前記転送要求に関連するデータ転送動作を完了するのに必要なサイクル数を表す所定のサイクル・カウンタ値に、前記第1のスライスのレイテンシーと前記第2のスライスのレイテンシーとの間の差を加えた値に相当するサイクルが経過するまで、これをブロックし、(3)前記第1のスライスからのの要求については、前記許可が行われたサイクルの後、前記所定のサイクル・カウンタ値に相当するサイクルが経過するまで、これをブロックするように構成されている、
    ロセッサ。
  9. 前記スライス・アービタが、前記許可が行われたサイクルの後に、前記第1のスライスよりも大きいレイテンシーを有するのスライスから受信し且つ複数のデータ・サイクルを必要とすると指示した転送要求については前記許可が行われたサイクルの後、前記所定のサイクル・カウンタ値から、前記第のスライスのレイテンシーと前記第1のスライスのレイテンシーとの間の差を引いた値に相当するサイクルが経過するまで、これをブロックするように構成されている、請求項に記載のプロセッサ。
  10. 記転送受信ユニットには、前記要求線に接続され且つ前記スライス・アービタの行った決定を履行するためのコア・アービタが設けられ、
    記コア・アービタが、前記第1のスライスからの前記転送要求を受信し且つ当該第1のスライスに対応するバスの使用を許可するときは、当該許可が行われたサイクルの後、前記所定のカウンタ値に相当するサイクルが経過するまで、前記第2のスライスから受信される前記転送要求をキルするためのカウンタ回路を有する、請求項に記載のプロセッサ。
  11. 記転送受信ユニットには、前記要求線に接続され且つ前記スライス・アービタの行った決定を履行するためのコア・アービタが設けられ、
    記コア・アービタが、前記第1のスライスからの前記転送を受信し且つ当該第1のスライスに対応するバスの使用を許可するときは、前記第1のスライスからの前記転送要求と同時に受信されるか、又はそれより以前であって且つ前記第1のスライスのレイテンシーと前記第2スライスのレイテンシーとの間の差に相当するサイクルの範囲内に受信される前記第2のスライスからの前記転送要求をキルするための回路を有する、請求項に記載のプロセッサ。
  12. 記転送受信ユニットには、前記要求線に接続され且つ前記スライス・アービタの行った決定を履行するためのコア・アービタが設けられ、
    記コア・アービタが、前記第1のスライスからの前記転送要求を受信し且つ当該のスライスからの前記転送要求と同時に受信されるか、又はそれより以降であって且つ前記第のスライスのレイテンシーと記第のスライスのレイテンシーとの間の差に相当するサイクルの範囲内に受信される前記第3のスライスからの前記転送要求については、これを許可するための回路を有する、請求項に記載のプロセッサ。
JP2004112522A 2003-04-10 2004-04-06 アービトレーションを管理する方法およびプロセッサ Expired - Fee Related JP3919765B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/411,463 US6950892B2 (en) 2003-04-10 2003-04-10 Method and system for managing distributed arbitration for multicycle data transfer requests

Publications (2)

Publication Number Publication Date
JP2004318876A JP2004318876A (ja) 2004-11-11
JP3919765B2 true JP3919765B2 (ja) 2007-05-30

Family

ID=33130986

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004112522A Expired - Fee Related JP3919765B2 (ja) 2003-04-10 2004-04-06 アービトレーションを管理する方法およびプロセッサ

Country Status (3)

Country Link
US (1) US6950892B2 (ja)
JP (1) JP3919765B2 (ja)
CN (1) CN100373360C (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8386648B1 (en) 2003-06-26 2013-02-26 Nvidia Corporation Hardware support system for accelerated disk I/O
US8683132B1 (en) 2003-09-29 2014-03-25 Nvidia Corporation Memory controller for sequentially prefetching data for a processor of a computer system
US8356142B1 (en) 2003-11-12 2013-01-15 Nvidia Corporation Memory controller for non-sequentially prefetching data for a processor of a computer system
US8700808B2 (en) * 2003-12-01 2014-04-15 Nvidia Corporation Hardware support system for accelerated disk I/O
US7143220B2 (en) 2004-03-10 2006-11-28 Intel Corporation Apparatus and method for granting concurrent ownership to support heterogeneous agents in on-chip busses having different grant-to-valid latencies
US7304974B2 (en) * 2004-05-14 2007-12-04 Cisco Technology, Inc. Supporting a network behind a wireless station
US8356143B1 (en) 2004-10-22 2013-01-15 NVIDIA Corporatin Prefetch mechanism for bus master memory access
US7490200B2 (en) * 2005-02-10 2009-02-10 International Business Machines Corporation L2 cache controller with slice directory and unified cache structure
US7366841B2 (en) * 2005-02-10 2008-04-29 International Business Machines Corporation L2 cache array topology for large cache with different latency domains
US7469318B2 (en) * 2005-02-10 2008-12-23 International Business Machines Corporation System bus structure for large L2 cache array topology with different latency domains
US7809874B2 (en) * 2006-06-21 2010-10-05 International Business Machines Corporation Method for resource sharing in a multiple pipeline environment
GB2447690B (en) * 2007-03-22 2011-06-08 Advanced Risc Mach Ltd A Data processing apparatus and method for performing multi-cycle arbitration
WO2009067386A1 (en) * 2007-11-21 2009-05-28 Rambus Inc. Bidirectional memory interface with glitch tolerant bit slice circuits
US8356128B2 (en) * 2008-09-16 2013-01-15 Nvidia Corporation Method and system of reducing latencies associated with resource allocation by using multiple arbiters
US8370552B2 (en) * 2008-10-14 2013-02-05 Nvidia Corporation Priority based bus arbiters avoiding deadlock and starvation on buses that support retrying of transactions
US8698823B2 (en) * 2009-04-08 2014-04-15 Nvidia Corporation System and method for deadlock-free pipelining
TW201123732A (en) * 2009-12-31 2011-07-01 Ind Tech Res Inst Processing devices
US9195684B2 (en) * 2012-03-02 2015-11-24 Cleversafe, Inc. Redundant task execution in a distributed storage and task network
US9569385B2 (en) 2013-09-09 2017-02-14 Nvidia Corporation Memory transaction ordering
KR102643803B1 (ko) * 2018-11-15 2024-03-05 삼성전자주식회사 멀티 호스트 컨트롤러와 이를 포함하는 반도체 장치

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5388228A (en) * 1987-09-30 1995-02-07 International Business Machines Corp. Computer system having dynamically programmable linear/fairness priority arbitration scheme
US5228134A (en) * 1991-06-04 1993-07-13 Intel Corporation Cache memory integrated circuit for use with a synchronous central processor bus and an asynchronous memory bus
US5392422A (en) * 1992-06-26 1995-02-21 Sun Microsystems, Inc. Source synchronized metastable free bus
EP0707269A1 (en) * 1994-10-11 1996-04-17 International Business Machines Corporation Cache coherence network for a multiprocessor data processing system
US5623672A (en) * 1994-12-23 1997-04-22 Cirrus Logic, Inc. Arrangement and method of arbitration for a resource with shared user request signals and dynamic priority assignment
US5987549A (en) * 1996-07-01 1999-11-16 Sun Microsystems, Inc. Method and apparatus providing short latency round-robin arbitration for access to a shared resource
WO1997034237A2 (en) * 1996-03-15 1997-09-18 Sun Microsystems, Inc. Split transaction snooping bus and method of arbitration
US5933610A (en) * 1996-09-17 1999-08-03 Vlsi Technology, Inc. Predictive arbitration system for PCI bus agents
US5884051A (en) * 1997-06-13 1999-03-16 International Business Machines Corporation System, methods and computer program products for flexibly controlling bus access based on fixed and dynamic priorities
US6275888B1 (en) * 1997-11-19 2001-08-14 Micron Technology, Inc. Method for configuring peer-to-peer bus bridges in a computer system using shadow configuration registers
US6700899B1 (en) * 1998-02-03 2004-03-02 Broadcom Corporation Bit slice arbiter
GB9805479D0 (en) * 1998-03-13 1998-05-13 Sgs Thomson Microelectronics Microcomputer
US6446151B1 (en) * 1999-09-29 2002-09-03 Agere Systems Guardian Corp. Programmable time slot interface bus arbiter
US6910092B2 (en) * 2001-12-10 2005-06-21 International Business Machines Corporation Chip to chip interface for interconnecting chips

Also Published As

Publication number Publication date
US6950892B2 (en) 2005-09-27
CN1551002A (zh) 2004-12-01
US20040205275A1 (en) 2004-10-14
JP2004318876A (ja) 2004-11-11
CN100373360C (zh) 2008-03-05

Similar Documents

Publication Publication Date Title
JP3919765B2 (ja) アービトレーションを管理する方法およびプロセッサ
US8452907B2 (en) Data processing apparatus and method for arbitrating access to a shared resource
US7290075B2 (en) Performing arbitration in a data processing apparatus
Lu et al. SAMBA-Bus: A high performance bus architecture for system-on-chips
US8078781B2 (en) Device having priority upgrade mechanism capabilities and a method for updating priorities
KR920006745B1 (ko) 펜디드 버스에서의 인터럽트 서비스노드
CN105068951B (zh) 一种具有非等时传输结构的片上系统总线
US20060271715A1 (en) Interconnect logic for a data processing apparatus
CN110109847A (zh) Apb总线多个主设备的仲裁方法、系统及存储介质
US8307147B2 (en) Interconnect and a method for designing an interconnect
EP1922628B1 (en) Partially populated, hierarchical crossbar
JP2012043375A (ja) データ転送装置、データ転送方法およびプログラム、ならびに、画像形成装置
US20070156937A1 (en) Data transfer in multiprocessor system
US8667199B2 (en) Data processing apparatus and method for performing multi-cycle arbitration
US7945806B2 (en) Data processing apparatus and method for controlling a transfer of payload data over a communication channel
EP1089501B1 (en) Arbitration mechanism for packet transmission
US8909836B2 (en) Interrupt controller, apparatus including interrupt controller, and corresponding methods for processing interrupt request event(s) in system including processor(s)
WO2008023219A1 (en) Pipelined device and a method for executing transactions in a pipelined device
US7167939B2 (en) Asynchronous system bus adapter for a computer system having a hierarchical bus structure
US7987437B2 (en) Structure for piggybacking multiple data tenures on a single data bus grant to achieve higher bus utilization
US6651083B1 (en) Distributed service request system for providing fair arbitration using token passing scheme to resolve collisions
US20100153610A1 (en) Bus arbiter and bus system
KR100961965B1 (ko) 버스 시스템과 이를 이용한 데이터 전송 방법
JPH0512185A (ja) バーストサイクルデータ読み出しのためのアドレス予測および検証回路
JP4679601B2 (ja) パケット制御回路、パケット処理装置、および、パケット処理方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060921

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061003

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061220

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070213

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110223

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120223

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120223

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130223

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees