JP2004318876A - マルチサイクル・データ転送要求のための分散型アービトレーションを管理する方法およびシステム - Google Patents

マルチサイクル・データ転送要求のための分散型アービトレーションを管理する方法およびシステム Download PDF

Info

Publication number
JP2004318876A
JP2004318876A JP2004112522A JP2004112522A JP2004318876A JP 2004318876 A JP2004318876 A JP 2004318876A JP 2004112522 A JP2004112522 A JP 2004112522A JP 2004112522 A JP2004112522 A JP 2004112522A JP 2004318876 A JP2004318876 A JP 2004318876A
Authority
JP
Japan
Prior art keywords
slice
slices
latency
request
arbiter
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
JP2004112522A
Other languages
English (en)
Other versions
JP3919765B2 (ja
Inventor
Jr Robert H Bell
ロバート・エイチ・ベル・ジュニア
Robert Alan Cargnoni
ロバート・アラン・カルニョーニ
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)

Abstract

【課題】処理システムのパフォーマンス向上を実現する分散型アービトレーションを管理する。
【解決手段】マルチサイクル要求であることを示す標識が、スライス・アービタに提供され、もしマルチサイクル要求がある場合は、1つのスライス(第1のスライス)だけが、その関連するバスを許可される。この方法はさらに、第1のスライスよりも低いレイテンシーを有する他の要求元スライスからのいずれの要求についても、これら他の要求元スライスと最長レイテンシーを持つスライスとの間のレイテンシーの差を所定のサイクル・カウンタ値に加えた値、による時間が経過するまで、これをブロックする。この方法はまた、第1のスライスよりも高いレイテンシーを持つスライスからの要求を、所定のサイクル・カウンタ値から第1のスライスと当該高いレイテンシーを持つスライスとの間のレイテンシーの差を引いた値、による時間が経過するまで、ブロックする。
【選択図】図2

Description

本発明は、一般には、プロセッサおよびコンピューティング・システムに関し、より詳細には、プロセッサ内での、複数のスライス間で異なったレイテンシー(データ転送にかかる待ち時間)を持つ要求パスおよびデータ・パス上での分散型バス・アービトレーション(調停)に関するものである。
今日の高速プロセッサには、様々なリソースと、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から送られ、コア・アービタ22に移動中である要求を、コア・アービタ22がキルできることが必要不可欠である。上述の動作によって、スライス・アービタ24によって決定された許可が、コア・アービタ22で履行され、その結果、スライス・アービタ24によって許可されなかったが、コア・アービタ22によって受け取られた要求が、コア・アービタ22で誤って許可されることがなくなる。データ有効信号L4≧L3−L1であるレイテンシーの関係から、こうした要求をキルする能力を具現化するのに必要な時間が提供される。単一サイクル動作について、表Iにスライス・アービタ24の動作を示す。
Figure 2004318876
表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 2004318876
最長レイテンシーを持った要求元スライスが最初に許可される。他のスライスからの要求は、所定のサイクル・カウンタ値「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 2004318876
表3を見ると、サイクル1より前のサイクルで既に許可されている要求が、コア・アービタ22で「キル」されることが分かり、キルすることによって、到来する拒否された要求は効果的に無視される。表3は、マルチサイクル再ロード動作を実施するスライスに対して、サイクル1での許可に基づいて要求をキルすることを示している。サイクル1より前にスライス・アービタ24で許可された、より低いレイテンシーのスライスからのマルチサイクル要求は、もしそれらがマルチサイクル再ロード・スライスとその要求元スライスとの間のレイテンシーの差の時間内に許可される場合は、キルされる。したがって、データ有効信号を生成するのに必要な時間は、スライス間の最長のレイテンシー差よりも長くなければならない。たとえば、図示する実施形態では、L4≧L3−L1となる。
コア・アービタ22はまた、スライス・アービタ24内のサイクル・カウンタ動作と同様に、カウンタも使用して、後続の単一サイクルおよびマルチサイクル動作をブロックする。このカウンタは、あるマルチサイクル動作が許可された後、その許可サイクルから始まってK+1サイクルの間、後続の動作に対する許可をブロックする。
そうでなければ、前がマルチサイクル転送であるためコア・アービタ22でブロックされるはずの一部のマルチサイクル要求は、表4に示すように、アービトレーションのために有効にもされなければならない。
Figure 2004318876
サイクル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 (23)

  1. 転送供給側の複数のスライスと転送受信側との間のアービトレーションを管理する方法であって、前記スライスが、複数の関連するバスを介して前記転送受信側に結合されており、前記複数のスライスのそれぞれが、前記転送受信側に至るまでの異なったレイテンシーを有しており、
    前記複数のスライスのうちの1つまたは複数が関与する転送要求を受信するステップと、
    前記転送要求が複数のデータ・サイクルを必要とするか否かを判断するステップと、
    前記転送要求には複数のデータ・サイクルが必要であると判断したことに応答して、前記複数のスライスのうちの第1のスライスだけに対して前記バスのうちの関連する1つを許可するステップと、
    前記転送要求には複数のデータ・サイクルは必要でないと判断したことに応答して、前記転送要求に関わる前記複数のスライスのすべてに対して、関連するバスを許可するステップと、
    を有する方法。
  2. 前記複数のスライスのうちの前記第1のスライスとして、前記転送要求に関わる前記複数のスライスのうちで最高レイテンシーを持つものを選択するステップ、をさらに有する、請求項1に記載の方法。
  3. 前記転送要求には複数のデータ・サイクルが必要であると判断したことに応答して、前記転送供給側において、前記複数のスライスのうちの前記第1のスライスよりも低いレイテンシーを持つ第2のスライスからの要求を、所定のサイクル・カウンタ値の期間に、前記複数のスライスのうちの前記第1のスライスの持つ前記レイテンシーと前記第2のスライスの持つ前記レイテンシーとの間の差を加えた値、による時間が経過するまでブロックするステップ、をさらに有する、請求項1に記載の方法。
  4. 前記転送要求には複数のデータ・サイクルが必要であると判断したことに応答して、前記転送供給側において、前記第1のスライスからの更なる要求を、所定のサイクル・カウンタ値による時間が経過するまでブロックするステップ、をさらに有する、請求項1に記載の方法。
  5. 前記転送要求には複数のデータ・サイクルが必要であると判断したことに応答して、前記転送供給側において、前記複数のスライスのうちの前記第1のスライスよりも高いレイテンシーを持つ第2のスライスからの要求を、前記所定のサイクル・カウンタ値から、前記第2のスライスの持つ前記レイテンシーと前記複数のスライスのうちの前記第1のスライスの持つ前記レイテンシーとの間の差を引いた値、による時間が経過するまでブロックするステップ、をさらに有する、請求項4に記載の方法。
  6. 前記複数のスライスのうちの前記第1のスライスとして、前記要求に関わる前記複数のスライスのうちで最高レイテンシーを持つものを選択するステップと、
    前記転送要求には複数のデータ・サイクルが必要であると判断したことに応答して、前記転送供給側において、前記複数のスライスのうちの前記第1のスライスよりも低いレイテンシーを持つ第3のスライスからの要求を、所定のサイクル・カウンタ値に、前記複数のスライスのうちの前記第1のスライスの持つ前記レイテンシーと前記第3のスライスの持つ前記レイテンシーとの間の差を加えた値、による時間が経過するまでブロックするステップと、
    をさらに有する、請求項5に記載の方法。
  7. 前記転送受信側において、前記複数のスライスのうちの前記第1のスライスよりも低いレイテンシーを持つ第2のスライスからの要求を、所定のサイクル・カウント値による時間が経過するまでキルするステップ、をさらに有する、請求項6に記載の方法。
  8. 前記転送受信側において、前記複数のスライスのうちの前記第1のスライスよりも低いレイテンシーを持つ第2のスライスからの要求であって、前記許可の後、前記複数のスライスのうちの前記第1のスライスの持つ前記レイテンシーと前記第2のスライスの持つ前記レイテンシーとの間の差による時間の範囲内に行われた要求をキルするステップと、
    前記転送受信側において、前記複数のスライスのうちの前記第1のスライスよりも高いレイテンシーを持つ第3のスライスからの要求のアービトレーションを、前記第3のスライスの持つ前記レイテンシーと前記複数のスライスのうちの前記第1のスライスの持つ前記レイテンシーとの間の差による時間が経過したときに、受け入れるステップと、
    をさらに有する、請求項6に記載の方法。
  9. 前記転送要求には複数のデータ・サイクルが必要であると判断したことに応答して、前記転送供給側において、前記複数のスライスのうちの前記第1のスライスよりも高いレイテンシーを持つ第2のスライスからの要求を、所定のサイクル・カウンタ値から、前記第2のスライスの持つ前記レイテンシーと前記複数のスライスのうちの前記第1のスライスの持つ前記レイテンシーとの間の差を引いた値、による時間が経過するまでブロックするステップ、をさらに有する、請求項1に記載の方法。
  10. 前記転送受信側において、前記複数のスライスのうちの前記第1のスライスよりも低いレイテンシーを持つ第2のスライスからのマルチサイクル要求であって、前記許可の後、前記複数のスライスのうちの前記第1のスライスの持つ前記レイテンシーと前記第2スライスの持つレイテンシーとの間の差による時間の範囲内に行われたマルチサイクル要求をキルするステップ、をさらに有する、請求項1に記載の方法。
  11. 前記転送受信側において、前記複数のスライスのうちの前記第1のスライスよりも低いレイテンシーを持つ第2のスライスからの要求を、所定のサイクル・カウント値による時間が経過するまでキルするステップ、をさらに有する、請求項1に記載の方法。
  12. 前記転送受信側において、前記複数のスライスのうちの前記第1のスライスよりも高いレイテンシーを持つ第2のスライスからのマルチサイクル要求のアービトレーションを、前記第2のスライスの持つ前記レイテンシーと前記複数のスライスのうちの前記第1のスライスの持つ前記レイテンシーとの間の差による時間が経過したときに、受け入れるステップ、をさらに有する、請求項1に記載の方法。

  13. プロセッサ内にあり、転送要求に関連するデータを受信する転送受信ユニットと、
    前記転送受信ユニットに結合され、また、それぞれに前記転送受信ユニットに複数のバスのうちの関連する1つのバスによって結合されている複数のスライスを有する、リソースであって、前記複数のスライスが、前記転送受信ユニットに至るまでの異なった要求レイテンシーを有する、リソースと、
    前記バスについての要求を調停するため前記複数のスライスに結合されたスライス・アービタであって、前記スライス・アービタが、個々の要求がマルチサイクル転送要求であるか否か、についての指示を生成するための回路を含み、それによって前記スライス・アービタの動作が前記指示の状態に従って変更されるスライス・アービタと、
    を有するプロセッサ。
  14. 前記スライス・アービタが、前記指示がマルチサイクル転送要求を示している場合には、前記複数のスライスのうちの第1のスライスだけに対して前記バスのうちの関連する1つを許可し、また、前記要求が単一サイクル転送要求である場合には、関係するすべてのスライスに対して、関連するバスを許可する、請求項13に記載のプロセッサ。
  15. 前記スライス・アービタが、前記複数のスライスのうちの前記第1のスライスとして、要求に関わる前記複数のスライスのうちの最高レイテンシーを持つスライスを選択する、請求項14に記載のプロセッサ。
  16. 前記スライス・アービタが、前記複数のスライスのうちの前記第1のスライスよりも低いレイテンシーを持つ第2のスライスからの要求を、所定のサイクル・カウンタ値に、前記複数のスライスのうちの前記第1のスライスの持つ前記レイテンシーと前記第2のスライスの持つ前記レイテンシーとの間の差を加えた値、による時間が経過するまでブロックする、請求項14に記載のプロセッサ。
  17. 前記スライス・アービタが、前記第1のスライスからの追加の要求を、所定のサイクル・カウンタ値による時間が経過するまでブロックする、請求項14に記載のプロセッサ。
  18. 前記スライス・アービタが、前記複数のスライスのうちの前記第1のスライスよりも高いレイテンシーを持つ第2のスライスからの要求を、前記所定のサイクル・カウンタ値から、前記第2のスライスの持つ前記レイテンシーと前記複数のスライスのうちの前記第1のスライスの持つ前記レイテンシーとの間の差を引いた値、による時間が経過するまでブロックする、請求項14に記載のプロセッサ。
  19. 前記複数のスライスに結合され、前記転送受信ユニットにおいて前記スライス・アービタの行った決定を履行するための、コア・アービタをさらに有し、また、前記コア・アービタが、前記許可の後、所定のカウンタ値による時間が経過するまでの間に行われた、前記複数のスライスのうちの前記第1のスライスよりも低いレイテンシーを持つ第2のスライスからのマルチサイクル要求をキルするためのカウンタ回路を有する、請求項14に記載のプロセッサ。
  20. 前記複数のスライスに結合され、前記転送受信ユニットにおいて前記スライス・アービタの行った決定を履行するための、コア・アービタをさらに有し、また、前記コア・アービタが、前記複数のスライスのうちの前記第1のスライスよりも低いレイテンシーを持つ第2のスライスからのマルチサイクル要求であって、前記許可の後、前記複数のスライスのうちの前記第1のスライスの持つ前記レイテンシーと前記第2スライスの持つ前記レイテンシーとの間の差による時間の範囲内で行われたマルチサイクル要求をキルするための回路を有する、請求項14に記載のプロセッサ。
  21. 前記複数のスライスに結合され、前記転送受信ユニットにおいて前記スライス・アービタの行った決定を履行する、コア・アービタをさらに有し、また、前記コア・アービタが、前記複数のスライスのうちの前記第1のスライスよりも高いレイテンシーを持つ第2のスライスからのマルチサイクル転送要求を、前記第2のスライスの持つ前記レイテンシーと前記複数のスライスのうちの前記第1のスライスの持つ前記レイテンシーとの間の差による時間が経過したときに調停するための回路を有する、請求項14に記載のプロセッサ。
  22. プロセッサ内の転送受信ユニットと、
    前記転送受信ユニットに結合されており、また、前記転送受信ユニットに至るまでの異なったレイテンシーを持つ複数のスライスを有する、リソースと、
    前記複数のスライスに結合され、前記複数のスライスを前記転送受信ユニットに結合するバスのための要求を調停する、スライス・アービタと、
    個々の要求がマルチサイクル転送要求か否かを判断する手段であって、それにより前記スライス・アービタの動作が前記指示の状態に従って変更される手段と、
    を有するプロセッサ。
  23. 前記複数のスライスに結合され、前記転送受信ユニットにおいて前記スライス・アービタによって行われた決定を履行する、コア・アービタと、
    前記決定手段が、個々の要求がマルチサイクル転送要求であると判断したことに応答して、前記スライスから前記転送受信ユニットに供給される転送データの到来順序を維持する手段と、
    をさらに有する、請求項22に記載のプロセッサ。
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 true JP2004318876A (ja) 2004-11-11
JP3919765B2 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008234660A (ja) * 2007-03-22 2008-10-02 Arm Ltd マルチサイクル調停を実行するデータ処理装置と方法

Families Citing this family (19)

* 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
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
US7366841B2 (en) * 2005-02-10 2008-04-29 International Business Machines Corporation L2 cache array topology for large cache 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
US20100281289A1 (en) * 2007-11-21 2010-11-04 Kun-Yung Chang 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
US9588994B2 (en) 2012-03-02 2017-03-07 International Business Machines Corporation Transferring 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
EP0832459B1 (en) * 1996-03-15 2005-06-29 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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008234660A (ja) * 2007-03-22 2008-10-02 Arm Ltd マルチサイクル調停を実行するデータ処理装置と方法
US8667199B2 (en) 2007-03-22 2014-03-04 Arm Limited Data processing apparatus and method for performing multi-cycle arbitration

Also Published As

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

Similar Documents

Publication Publication Date Title
JP3919765B2 (ja) アービトレーションを管理する方法およびプロセッサ
US8452907B2 (en) Data processing apparatus and method for arbitrating access to a shared resource
US7143221B2 (en) Method of arbitrating between a plurality of transfers to be routed over a corresponding plurality of paths provided by an interconnect circuit of a data processing apparatus
US8190801B2 (en) Interconnect logic for a data processing apparatus
KR20130031258A (ko) 액세스 레이턴시를 감소시키기 위한 버스 중재 기술들
US7225281B2 (en) Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms
JP2009508247A (ja) バス調停に関する方法及びシステム
JP5565204B2 (ja) データ転送装置、データ転送方法およびプログラム、ならびに、画像形成装置
KR100347473B1 (ko) 버스시스템
JP5356024B2 (ja) 部分的にポピュレートされる階層型クロスバ
US20070156937A1 (en) Data transfer in multiprocessor system
KR100419679B1 (ko) 트랜잭션 요청 라우팅 방법
US20080235707A1 (en) Data processing apparatus and method for performing multi-cycle arbitration
US9858222B2 (en) Register access control among multiple devices
US7779189B2 (en) Method, system, and computer program product for pipeline arbitration
US7167939B2 (en) Asynchronous system bus adapter for a computer system having a hierarchical bus structure
KR100973419B1 (ko) 버스 중재 방법 및 장치
CN111026699B (zh) 基于环形总线的多核网络通信方法、装置及系统
JP2006215621A (ja) Dma制御装置
JPWO2004025478A1 (ja) メモリブロック間のレイテンシ差を活用するデータ処理装置および方法
US6651083B1 (en) Distributed service request system for providing fair arbitration using token passing scheme to resolve collisions
US20100153610A1 (en) Bus arbiter and bus system
US20050246463A1 (en) Transparent high-speed multistage arbitration system and method
KR20100004360A (ko) 버스 시스템과 이를 이용한 데이터 전송 방법
JP2002169768A (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