JP2006523902A - ラウンド・ロビン資源アービトレーション方法とそのための装置 - Google Patents

ラウンド・ロビン資源アービトレーション方法とそのための装置 Download PDF

Info

Publication number
JP2006523902A
JP2006523902A JP2006513106A JP2006513106A JP2006523902A JP 2006523902 A JP2006523902 A JP 2006523902A JP 2006513106 A JP2006513106 A JP 2006513106A JP 2006513106 A JP2006513106 A JP 2006513106A JP 2006523902 A JP2006523902 A JP 2006523902A
Authority
JP
Japan
Prior art keywords
token
arbiter
requester
subtree
indicating
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.)
Withdrawn
Application number
JP2006513106A
Other languages
English (en)
Other versions
JP2006523902A5 (ja
Inventor
メイヤー,マイケル・ジェイ
ウィンガード,ドリュー
ウェバー,ウォルフ−ディートリッヒ
Original Assignee
ソニックス・インコーポレーテッド
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 ソニックス・インコーポレーテッド filed Critical ソニックス・インコーポレーテッド
Publication of JP2006523902A publication Critical patent/JP2006523902A/ja
Publication of JP2006523902A5 publication Critical patent/JP2006523902A5/ja
Withdrawn 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/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/37Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a physical-position-dependent priority, e.g. daisy chain, round robin or token passing
    • 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

Abstract

ラウンド・ロビン・アービトレーション方式のための方法と装置を説明する。ラウンド・ロビン・アービトレーションを実現する装置は、少なくとも2つのトークン・アービタを備え、各トークン・アービタは、少なくとも2つのサブツリーが接続されるノードに関連付けられ、各サブツリーは、トークン・アービタまたは有限状態マシン・リクエスタを備える。

Description

本発明は、資源アービトレーションに関し、より詳細には、資源アービトレーションのためのラウンド・ロビン方式に関する。
複数のリクエスタによって共有される資源があり、かつ1リクエスタだけが特定の期間(通常は1クロック・サイクル)に資源を使用することができるとき、要求を受諾し、1リクエスタだけが資源の使用を許されることを保証するアービタを有することが必要である。共有資源の例には、ネットワーク、バス、シリコン・バックプレーンが含まれる。共有資源の所有権は、「トークン」の所有権によって指定することができる。ラウンド・ロビン・アービトレーションは、資源への均等かつ公平なアクセスを保証するので、一般的に使用されるアービトレーション・ポリシーである。ラウンド・ロビン・アービトレーション・ポリシーでは、固定された順序の優先順位ローテーションがリクエスタに割り当てられる。例えば、3つのリクエスタの順序は、R1、R2、R3、そしてR1に戻る。最後にトークンを付与されたリクエスタは、最低の優先順位であるとみなされ、その後ろのリクエスタが最高の優先順位であるとみなされる。例えば、R2が要求が許可される最後のユニットである場合、R3が最高の優先順位となり、その後にR1が続き、最後にR3となる。R3がトークンを要求し、トークンを付与された場合、R3が最低の優先順位となり、したがってアービトレーション順序はR1、R2、次いでR3となる。
トークンの所有権は、資源の所有権と最低優先順位のリクエスタを共に示す。共有資源を効率的に使用するために、各サイクルで新しい要求を許可できることが通常は望ましく、そのことは、トークンを任意の所有者から次の所有者に1サイクルで渡すことができなければならないことを意味する。トークンの所有権は、同一サイクルまたは次のサイクルでの共有資源の所有権を意味する。
そのようなトークン・パッシング機構の従来技術の一実装は、図1に示す分散デイジー・チェーンである。この例では、各リクエスタが、トークンを所有するときに「1」である1つの状態ビットを有する。これは、そのリクエスタが資源の使用を許可されており、次のアービトレーション・サイクルでは最低の優先順位であることを意味する。リクエスタがトークンを必要としない場合、トークンは、次の優先順位のリクエスタに提供される。このプロセスは、アクティブなリクエスタが存在するまで、または現トークン所有者に戻るまでリングを周回し続ける。トークンがリクエスタに与えられるとき、その時トークンを所有するリクエスタは最低の優先順位となり、リング内の次のリクエスタは最高の優先順位となる。サイクル中にリクエスタが存在しない場合、トークンは移動しない。しかし、デイジー・チェーン実装は、静的タイミング分析の難しい偽組合せループ(false combinatorial loop)に対処しなければならない。さらに、リングのタイミングは、リング中のリクエスタ数とリングの長さに比例して低下する。
図2に集中型アービトレーション方式を示す。この集中型アービトレーション方式は、すべての要求信号を中央アービトレーション・ユニットに送り、中央アービトレーション・ユニットで、N個の優先順位エンコーダのうち1つを使用可能にする。この手法での組合せ論理は、リクエスタ数の2乗に比例して増大する。この手法はさらに、要求入力上の著しいファンアウト遅延とgrant出力上のファンイン遅延を受け、さらに要求信号とgrant信号を集中型アービタに配信し、集中型アービタから配信するためにそれらの信号に挿入されるリピータからの遅延も受ける。
図8に、4つの要求信号を有する木構造トークン・リングを示す。ツリーは、階層的に互いに接続されたアグリゲータから構成される。葉は、各イニシエータで現トークン・リング状態マシンへのローカル接続だけを有するアグリゲータである。ツリーの頂部(すなわちルート)は、頂部からのgrant入力が配線され、頂部への要求出力が無視されたアグリゲータである。アグリゲータは、底部からの3つの入力、1つは左に接続する入力、1つは右に接続する入力、残りはローカル・イニシエータに接続する3番目の入力を有するが、機能は2つ以上の入力に対して機能する。各リクエスタは、1ホットの4ビット要求入力を有する。ツリーはn個の4ビット要求を有する。ただしnは、集約すべき低レベルリクエスタ数である。要求入力の4ビットは以下の意味を有する。
HAVETOKENは、トークンと最高優先順位のリクエスタを有する
GENTOKENは、トークンを有するが最低優先順位のリクエスタを有する
WANTTOKENは、トークンを有さないがそれを必要としている
NOTOKENは、トークンを有さず、それを必要としていない
ツリー中の各ノードはさらに、以下の式によって実現されるn個の単一ビットgrantダウンストリームと1ホットの4ビット要求アップストリームを出力する。各ノードは、アップストリームからの単一ビットgrantの追加の入力をさらに有する。
root[HAVETOKEN]=rightF[HAVETOKEN]
OR localF[HAVETOKEN]
OR leftF[HAVETOKEN]
OR (leftF[GENTOKEN] AND localF[WANTTOKEN])
OR (leftF[GENTOKEN] AND rightF[WANTTOKEN])
OR (localF[GENTOKEN] AND rightF[WANTTOKEN])

root[GENTOKEN]=rightF[GENTOKEN]
OR (localF[GENTOKEN] AND !rightF[WANTTOKEN])
OR (leftF[GENTOKEN] AND !rightF[WANTTOKEN]
AND !localF[WANTTOKEN])

root[WANTTOKEN]=(rightF[WANTTOKEN]
AND (localF[NOTOKEN] OR localFI[WANTTOKEN])
AND (leftF[NOTOKEN] OR leftF[WANTTOKEN]))
OR (localF[WANTTOKEN]
AND (leftF[NOTOKEN] OR leftF[WANTTOKEN])
AND !rightF[HAVETOKEN] AND !rightF[GENTOKEN])
OR (leftF[WANTTOKEN]
AND !localF[HAVETOKEN] AND !locaIF[GENTOKEN]
AND !rightF[HAVETOKEN] AND !rightF[GENTOKEN])

root[NOTOKEN]=rightF[NOTOKEN] AND localF[NOTOKEN]
AND leftF[NOTOKEN]
rootF = root(with fast buffer)
rootS = root(with slow buffer)

rightGnt = rootGnt AND (rightS[HAVETOKEN]
OR (right[SWANTTOKEN] AND localS[GENTOKEN])
OR (rightS[WANTTOKEN] AND localS[NOTOKEN] AND IeftF[GENTOKEN])
OR (rightS[WANTTOKEN] AND localS[NOTOKEN] AND leftS[NOTOKEN])
OR (rightS[GENTOKEN] AND localS[NOTOKEN] AND leftS[NOTOKEN]))

localGnt=rootGnt AND (localS[HAVETOKEN]
OR (localS[WANTTOKEN] AND leftS[GENTOKEN])
OR (localS[WANTTOKEN] AND leftS[NOTOKEN]
AND !rightS[HAVETOKEN])
OR (localS[GENTOKEN] AND leftS[NOTOKEN] AND rightS[NOTOKEN]))

leftGnt=rootGnt AND (leftS[HAVETOKEN]
OR (leftS[WANTTOKEN] AND !localS[HAVETOKEN]
AND !(rightS[WANTTOKEN] AND localS[GENTOKEN])
AND !rightS[HAVETOKEN])
OR (leftS[GENTOKEN] AND localS[NOTOKEN] AND rightS[NOTOKEN]))
トークン・アービタに対する未使用の入力の結合が解かれ、NOTOKEN入力が1に結合され、その他は0に結合される。ルートgrant信号は1に結びつけられる。
この実装のタイミングを改善するために、要求が2回、ルートに対する要求で使用される高速タイミング(rootF)のための大きなバッファで1回、grant down論理(rootS)のためのより緩和されたタイミングで1回送信される。したがって、この実装は、要求をツリーの上方に送るために8個の信号を実際には使用する。これにより、他の手法よりも著しく多くの配線が必要となり、したがって不利である。
ラウンド・ロビン資源アービトレーション方式のための方法と装置を説明する。ラウンド・ロビン・トークン・アービトレーションを実現する装置は、少なくとも2つのトークン・アービタを備え、各トークン・アービタは、少なくとも2つのサブツリーが接続されるノードと関連付けられ、各サブツリーは、トークン・アービタまたは有限状態マシン・リクエスタを備える。
本発明を限定的なものではなく、例示的なものとして添付の図面の各図に示す。各図では、同様の参照番号は同様の要素を指す。
ラウンド・ロビン・アービトレーションのための方法と装置を説明する。共有資源についてのアービトレーションは、多くのシステムの性能にとって重要である。ラウンド・ロビン・アービトレーションは、その単純さと公平性のために良いアービトレーション・ポリシーである。リクエスタが分散するとき、要求を受信すると共にその要求のgrantを返すのにかかる時間は、アービトレーションを行うのにかかる時間と同程度に重要となる。
ツリー・ベースのアービトレーション構造は、図3Aからわかるように、集積回路チップの2−D構造中の距離を効率的に横切ることができる。例えば、集積回路は、システム・オン・チップ(SOC)でよい。
図3Aのレイアウトは、ルート・ノードB1 310とその補助ノードを示す。図3Bに、図3Aのチップのリクエスタによって形成されるツリー構造を示す。ノードB1からB11は、アービタまたはリクエスタを表す。図3Aでは、アービタは、B1(ルート)、B2、B5、B3、B6、B7である。言い換えれば、(ローカル・リクエスタに加えて)少なくとも1つの補助ノードを有する各ノードはアービタを有する。これを図4により詳細に示す。
ノードの実際の順序付けは、ルートから任意の葉までの最大長を最小限に抑えるように選ぶことができる。したがって、一実施形態では、設計者は、ツリーの平衡を取るようにノードの順序付けを最適化することができる。したがって、設計者は、トークンについての最大移動時間を最小限に抑えるようにルート・ノードとノード間の接続とを選ぶことができる。ここで、最大移動時間は、リクエスタB8からルートB1、またはリクエスタB9からルートB1である。B8からの横断では、トークンは、ノードB5、B2を通ってルートB1まで上流に移動し、戻らなければならない。B9からの横断では、トークンは、ノードB6、B3を通ってルートB1まで上流に移動し、戻らなければならない。ツリーのルートは、ルートに接続される2つのサブツリー・クリティカル・パスが同等であるときに最適な位置に配置される。サブツリーの1つのクリティカル・パスが他のサブツリーよりもかなり長い場合、長いサブツリーのルートを全ツリーのルートにすることにより、ツリーの遅延の平衡がより良好に取られることになる可能性が高い。
図4の編成では、どちらのサブツリー・クリティカル・パスも6ステップを必要とする。回路が上述のデイジー・チェーン方法を使用して実装される場合、最大距離は11ステップとなる。リクエスタの数が2倍になる場合、ツリー構造中のステップ数は2倍に増加すると共に、デイジー・チェーン中のステップ数が2倍になる。
ツリーの各ノードで分散アービトレーションを実行することにより、所望のラウンド・ロビン・アービトレーション論理が実装され、信号がチップを横切るときに信号がバッファリングされる。
図4に、図3に示すチップに関するラウンド・ロビン・アービトレーションを実装するのに必要なアービタ・セルとアービタFSMからなるトークン・ツリー構造を示す。信号が移動しなければならない距離は、トークン・リング構造よりも短い。さらに、ルートまたはハブ410を通過する信号の数は、集中型手法よりもかなり少なく、集中型アービタが22個の信号を必要とする(全11リクエスタからそれぞれ2個)のに対して、トークン・アービタ420とトークン・アービタ440からそれぞれ3個である。
分散実装の一態様は、要求信号がツリーの上方に送られるときの、要求信号の符号化である。図4に示すように、要求をツリーの上方に送るのに2つの信号が使用される。第1の信号は、トークンが現在このサブツリー内のリクエスタの1つによって保持され、かつツリーの残りの中のリクエスタよりも高い優先順位である、このサブツリー内のアクティブなリクエスタが存在しないので、トークンがこのサブツリーによってルートに向かって上流に渡されることを示す生成信号(G)である。第2の信号は、このサブツリーがアクティブなリクエスタを含まず、トークンを保持しないことを示す伝播信号(P)である。
一実施形態では、GとPの両方は同一サイクルで決して真とならない。このことにより、後述するいくつかの最適化が得られる。
サブツリーに関するG信号とP信号(rootGとrootP)をそのローカルとサブツリーのP、G入力から生成することができる。図4では、サブツリーのP、G入力が、ローカル・サブツリーに関するLocalGとLocalP、左サブツリーに関するLeftGとLeftP、さらに右サブツリーに関するRightGとRightPとして示されている。ローカル・ノードとサブツリーのすべてがトークンを伝搬中である場合、特定のサブツリーはトークンを伝搬中である。サブツリー内のラウンド・ロビン順序は、トークンがサブツリーの下方に渡されるとき、サブツリーのG出力の生成とgrantの生成に影響を及ぼす一実施形態では、ラウンド・ロビン順序はローカル、右、次いで左である。
grant(Gnt)信号が、最高の優先順位を有するリクエスタまで伝播される。一実施形態では、優先順位は、ローカル、右、次いで左である。したがって、図4に示す例では、ラウンド・ロビン順序は、F1、F3、F11、F10、F6、F9、F2、F5、F8、F4で、そしてF1に戻る。
図4は2進木を示すが、より高次のツリーにスケーリングすることができる。具体的には、あるチップ設計では、ローカル・ノードと3つのサブツリーを有するツリーが有用である。例えば、ルートが北側に位置する場合、ローカル・リクエスタに加えて東、西、南に分岐するサブツリーを有することが有用である。2方向または3方向から集中する要求がある場合は特に、ローカル・リクエスタを有さないアービタを有することが有用であることもある。別の実施形態では、ローカル・リクエスタの方向の分岐が不要であるので、ローカル・リクエスタを有さないアービタが不要である。したがって、追加のリクエスタが存在する場合、別のリクエスタでアービトレーション論理を拡張することができ、または別のアービトレーション・ノードを挿入することができる。
ローカル・ノード、左サブツリー、右サブツリーの順序付けは任意であり、アービトレーションの公平性に影響を及ぼさないが、アービタのタイミングには影響を及ぼす。アービトレーションの順序付けは、左サブツリーと右サブツリーからの経路を最適化すべきである。左サブツリーと右サブツリーは通常はリモートであり、それらもサブツリーである場合に余分の論理レベルを含むからである。
図5Aにトークン・アービタの一実施形態を示す。図示する例では、ラウンド・ロビン順序はローカル、右、次いで左である。この順序付けが与えられると、左が生成し(LeftGからU1へ)、または右がそれを生成してそれを左に伝搬し(U2)、またはローカルが生成して左と右が共にそれを伝搬する(U3)ときはいつでも、サブツリーはトークンを生成する。サブツリーのより低いレベルがトークン(U4)を伝搬するとき、サブツリーはトークンを伝搬する。Pは1つの論理レベルを必要とする一方でGは2つのレベルを必要とするので、PはGよりも速いことに留意されたい。
図5Aに示すように、トークン・アービトレーション・セルは、左セルからのRootG生成を最適化する。左サブツリーが2つのサブツリーのうちの長い方であるという任意の規約を採用することにより、RootGを通る経路の平衡が保たれる。LeftGからRootGへの経路が唯一の論理レベル(U1)であり、一方RightGからRootGへの経路が2レベル(U2およびU1)であるからである。
この順序付けの1つの結果は、LeftGntの生成は、RightGntとLocalGntの両方より複雑であることである。しかし、この複雑さのタイミングに対する効果は、論理を再構築し、タイミング・クリティカルな信号RootGntからの経路を最適化することによって低減することができる。
図5Bからわかるように、U5をU5AとU5Bに、U8をU8AとU8B、U11をU11AとU11Bに変換することにより、この経路を1つの複雑なゲートまたは2つの単純2入力ゲートに単純化することができる。したがって、LeftGntに関するタイミングはRightGntと同等である。この最適化をゲート・レベルで直接行うことができ、または論理合成に対するタイミング制約を介して行うことができる。論理合成に対するタイミング制約では、RootGntからLeftGntとRightGntへの経路が、他の入力からアービタ・セルへの経路よりもかかる時間が短くなるように制約を受ける。
したがって、図5Bに示す論理は以下のようになる。
RootG=LeftG OR (RightG AND LeftP) OR (LocalG AND LeftP AND RightP)
RootP=LeftP OR RightP OR LocalP
LeftGnt=((!LeftP AND RightP AND LocalG) OR (!LeftP AND RightG))
OR ((LocalP AND RightP) AND RootGnt))
RightGnt=(!RightP AND LocalG) OR ((LocalP AND !RightP) AND RootGnt))
LocatGnt=(!LocalP AND RootGnt)
一実施形態では、各トークン・アービタは同様に設計され、ローカル・サブツリー、左サブツリー、右サブツリーを含む。しかし、ある場合には、接続することのできる有限状態マシンまたはアービタのサブセットだけが使用される。その場合、一実施形態では、アービタ・ノードへの未使用のG入力とP入力がゼロと結びつけられる。これにより、このリクエスタに関連する不要な論理を論理合成中に除去することが可能となる。
従来技術では、トークンFSMがローカル・インターフェースだけに接続された。FSMを左インターフェースまたは右インターフェースに接続する代わりに、FSMがアービトレーション・ユニットに接続され、左要求と右要求がゼロに結合される。これらの結び付きとの論理合成は、U12を除くアービトレーション・ユニット中のすべてのゲートを除去する。Pがアサートされるときアービトレーション・ユニットは決してgrantを受け取らないので、U12は不要である。現設計において、一実施形態では、アービトレーション・ユニットは、複数のユニットまたはサブツリーがアービトレーション・ユニットに接続されるときにだけ使用される。これにより、左サブツリーと右サブツリーを有するトークン・アービタごとの2つの論理ゲートが不要となる。
図6Aは、ルート・ノード・アービタの一実施形態である。図6Aに示すように、ルート・ノードでの生成信号RootGは、許可入力RootGntとしてRootG自体にフィードバックされる。これによりループが完了し、現位置の後の他のノードがトークンを要求しているときにトークンをツリーの始めで再始動することが可能となる。
しかし、RootGのRootGntへの直接接続は最適ではない。U8の点で冗長性が存在し、同時に決してアサートされないRightGとRightPが共にU8に供給される(U2とU1を介するRightG)。さらに、RightGnt信号とLocalGnt信号を計算するために、システムはまずRootGntを計算しなければならない。したがって、RightGntとLocalGntを計算する前に遅延が存在する。
図6Bに、この遅延をなくす、最適化されたルート構造の一実施形態を示す。図からわかるように、この最適化されたルート構造では、すべての出力についての深さは2層だけである。
したがって、図6Bに示す論理は以下のようになる。
LeftGnt=(!LeftP AND RightG) OR (!LeftP AND RightP AND LocalG)
OR (LeftG And RightP and LocalP)
RightGnt=(!RightP AND LocalG) OR (!RightP AND LocalP AND LeftG)
OR (RightG AND LeftP AND LocalP)
LocalGnt=(!LocalP AND LeftG) OR (!LocalP AND LeftP AND RightG)
OR (LeftP AND LocalG AND LeftG)
一実施形態では、信号の一部が移動した距離を処理するために、アービタ・セルの出力がバッファリングされる。一実施形態では、このことが、ANDとOR出力ゲートをそれぞれNANDとNORゲートで置き換え、次いでこれらのゲートの出力を高出力インバータの入力に供給し、次いでインバータが出力を駆動することによって行われる。アービタ間の実際の配線長が求められると、手動により、あるいは自動論理合成、配置、経路指定、または目標の動作頻度を達成するための他の最適化プログラムにより、追加のバッファリングを追加することができる。
図7に有限状態マシンの一実施形態を示す。一実施形態では、G信号とP信号が、ラウンド・ロビン・アービトレーションに参加している各リクエスタ内に位置するトークン・アービトレーション有限状態マシン(PSM)の0/1ホット符号化状態から直接生成される。状態マシンは、入力として、リクエスタからの要求と、アービトレーション・ツリーからのgrantとを取る。
Figure 2006523902
NOTOKEN状態710は、FSMがトークンを有さず、トークンを要求していないことを示す。したがって、G(生成)はゼロであり、渡すためのトークンがここにはないことを示し、P(伝播)は1であり、トークンがこのFSMによって必要とされていないことを示す。要求を受け取った場合、状態はNOTOKEN710からWANTTOKEN状態720に移る。WANTTOKEN状態720は、FSMがトークンを有さないがトークンを必要としていることを示し、したがってGはゼロであり、Pはゼロである。FSMは、要求が許可されるまでこの状態にとどまる。一実施形態では、要求が許可されたときのクロック・サイクル中に、現要求が完了する。grantがアクティブであるときや、アクティブな要求がないときまたは優先使用がないとき、FSMはGENTOKEN状態730になる。この状態は、トークンがこのサブツリー内にあり、それに沿って渡す準備ができていることを示す。
GENTOKEN状態730から、トークンがより高い優先順位のリクエスタに渡される場合、FSMはトークンを渡し、NOTOKEN状態710に移り、要求を再び受け取るまでその状態にとどまる。GENTOKEN状態730でgrantがアクティブなままである場合(例えば他のリクエスタが存在しない場合)、grantはGENTOKEN状態730のままであり、一方、要求を受け取って、要求が許可されない場合、FSMはWANTTOKEN状態720に移る。このようにして、FSMは3つの状態間を移動する。
さらに、一実施形態では、すべてのFSMは、分散された資源からの入力として優先使用信号を受け取ることができる。優先使用信号は、それによって高い優先順位のリクエスタ−ラウンド・ロビン・アービトレーションの一部ではない可能性のあるリクエスタ−が資源へのアクセスの許可を受けることができる機構である。一実施形態では、優先使用の間、ラウンド・ロビンは、トークンを付与する新しい所有者を仲裁するが、優先使用が完了するまでリクエスタの資源の使用を遅延する。優先使用信号は、すべてのリクエスタFSMに配信されるグローバル信号である。FSMにトークンが付与されている間に優先使用信号がアクティブであり、要求がアクティブである場合、WANTTOKEN720であっても、GENTOKEN状態730であっても、FSMはPREEMPTED状態750に移る。この状態では、FSMはトークンを所有するが、資源の使用を許可されていない。FSMは、優先使用と要求がアクティブである間、この状態にとどまり、トークンを保持する。要求が非アクティブになったとき、すなわち、FSMがトークンを使用することを望まないので優先使用がもはや必要でないとき、FSM状態はGENTOKEN状態730に遷移する。
優先使用が非アクティブになった場合、すなわち、高優先順位アービトレーションが資源をFSMに返すことを終了した場合、FSMはPREEMPTED状態750からGENTOKEN状態730に遷移する。その時点で、要求がまだアクティブである場合、例えばまだサービスされていない要求をFSMがまだ有する場合、FSMは資源の使用を許可される。要求がアクティブでない場合、FSMは、許可された資源を使用することなくGENTOKEN状態730に移る。
一実施形態では、機械可読媒体が、本明細書に記載の装置および/または方法を表す情報を格納することができる。機械可読媒体は、マシン(例えばコンピュータ)が読取り可能な形式で情報を提供する(例えば格納し、かつ/または送る)任意の機構を含む。例えば、機械可読媒体は読取り専用メモリ(ROM)、ランダム・アクセス・メモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュ・メモリ・デバイス、DVD、電気、光、音響、またはその他の形態の伝播信号(例えば搬送波、赤外線信号、デジタル信号、EPROM、EEPROM、FLASH、磁気または光カード、あるいは電子命令を格納するのに適した任意のタイプの媒体)を含む。低速の媒体を、より高速のより実用的な媒体に対してキャッシュすることができる。機械可読媒体上に格納された装置および/または方法を表す情報を、本明細書に記載の装置および/または方法を作成するプロセスで使用することができる。
上記の明細書では、本発明の特定の例示的実施形態を参照しながら本発明を説明した。しかし、添付の特許請求の範囲に記載の本発明のより広い精神と範囲から逸脱することなく、本発明に対して様々な修正や変更を行えることができることは明らかであろう。したがって、明細書と図面は、限定的にではなく例示的な意味とみなすべきである。
従来技術のデイジー・チェーン・トークン・アービトレーション方式の一実装である。 従来技術の集中型トークン・アービトレーション方式の一実装である。 本発明のラウンド・ロビン・アービトレーション方式を使用する例示的チップ・レイアウトである。 図3Aのレイアウトを使用して得られるアービトレーション・ツリー構造を示す図である。 本発明によるトークン・ツリー構造の一実施形態を示す図である。 トークン・リング・アービタ・セルの一実施形態を示す図である。 トークン・リング・アービタ・セルの別の実施形態を示す図である。 トークン・リング・アービタ・ルート・セルの一実施形態を示す図である。 トークン・リング・アービタ・ルート・セルの別の実施形態を示す図である。 トークン・リング・アービトレーションを表す有限状態マシンの一実施形態を示す図である。 アービタ間で8本のワイヤを使用する分散ツリー構造アービタを示す図である。

Claims (28)

  1. ラウンド・ロビン・トークン・アービトレーションを実現する装置であって、
    それぞれがトークン・アービタまたはリクエスタを含む少なくとも2つのサブツリーが接続されたノードにそれぞれ関連する少なくとも2つのトークン・アービタ
    を備える装置。
  2. 各トークン・アービタが、サブツリーを受け取るように設計された3つのコネクタを有する請求項1に記載の装置。
  3. 各アービタが、リクエスタを受け取るように設計された1つのローカル接続を有する請求項1に記載の装置。
  4. 各アービタが、ローカル接続、右接続、左接続を含む請求項1に記載の装置。
  5. 要求の優先順位が、ローカル、右、左である請求項4に記載の装置。
  6. 各アービタが、
    サブツリーを受け取るように設計された各コネクタへのGrant信号の出力と、
    前記サブツリーの現状態を示す、各サブツリーからの一対の信号Genrate(G)とPropagate(P)の入力と
    を含む請求項1に記載の装置。
  7. 各非ルート・アービタが、
    トークンがアービタに付与されたことを示すルートgrant信号の入力と、
    前記アービタの現状態を示す一対の信号G、Pの出力アップストリームと
    をさらに含む請求項6に記載の装置。
  8. 前記一対の信号によって示される状態が、
    前記サブツリーがトークンを有さず、前記トークンを必要としていないことを示すNoToken状態と、
    前記サブツリーが前記トークンを必要としていることを示すWantToken状態と、
    前記サブツリーが前記トークンを有することを示すGenToken状態と
    を含む請求項6に記載の装置。
  9. リクエスタが、
    有限状態マシン・リクエスタがトークンを有さず、前記トークンを必要としていないことを示すNoToken状態と、
    前記有限状態マシン・リクエスタが前記トークンを必要としていることを示すWantToken状態と、
    前記有限状態マシン・リクエスタが前記トークンを有することを示すGenToken状態
    という3つの状態を有する有限状態マシン・リクエスタを有する請求項1に記載の装置。
  10. 前記有限状態マシン・リクエスタが、
    前記有限状態マシン・リクエスタが前記トークンを有することを示すが、前記ラウンド・ロビン・アービトレーションがより高い優先順位アービトレーションによって優先使用されたことを示す優先使用状態
    という追加の状態を有する請求項9に記載の装置。
  11. 前記アービタとリクエスタがツリー構造内にレイアウトされる請求項1に記載の装置。
  12. 前記ツリー構造が、前記ルートから最も遠い葉ノードまでの最大距離を最小限に抑えるように構築される請求項11に記載の装置。
  13. 請求項1に記載の装置を表す情報が格納された機械可読媒体。
  14. システム・オン・チップ(SOC)用のアービタであって、
    サブツリーを受け取るための少なくとも2つのダウンストリーム・コネクタを有するルート・トークン・アービタと、
    前記ルート・トークン・アービタのコネクタの1つに結合され、サブツリーを受け取るための少なくとも2つのダウンストリーム・コネクタを有するトークン・アービタとを有し、
    各サブツリーがトークン・アービタまたはリクエスタを有するアービタ。
  15. 各ダウンストリーム・コネクタが、
    前記コネクタに結合された前記サブツリーに前記トークンが付与されたことを示す出力信号Grantと、
    前記トークンに結合された前記サブツリーのステータスを示す一対の入力信号Genrate(G)とPropagate(P)と
    を含む請求項14に記載のアービタ。
  16. 各トークン・アービタが、アップストリーム・コネクタをさらに備える請求項15に記載のアービタ。
  17. 前記アップストリーム・コネクタが、
    前記トークン・アービタ・アップストリームのステータスを示す一対の入力信号Genrate(G)とPropagate(P)と、
    前記トークン・アービタに前記トークンが付与されたことを示す入力信号RootGrantと
    を有する請求項16に記載のアービタ。
  18. バッファリング信号が、前記トークン・アービタに結合された前記サブツリーに出力される請求項14に記載のアービタ。
  19. 前記バッファリング信号が、前記トークン・アービタの出力を駆動する高出力バッファまたはインバータを使用してバッファリングされる請求項18に記載のアービタ。
  20. ローカル・リクエスタと少なくとも第2のトークン・アービタを受け取る第1トークン・アービタと、
    前記第1トークン・アービタに結合され、少なくとも2つのリクエスタを受け取る第2トークン・アービタと
    を備えるアービタ。
  21. 少なくとも2つのリクエスタの1つがローカル・リクエスタである請求項20に記載のアービタ。
  22. 少なくとも2つのリクエスタの1つがリモート・リクエスタである請求項20に記載のアービタ。
  23. 前記リモート・リクエスタが、第3トークン・アービタを介して前記第2トークン・アービタに結合される請求項22に記載のアービタ。
  24. 複数の論理装置と、
    前記複数の論理装置によってアクセスされる共有資源と、
    前記共有資源を求める要求を生成し、前記共有資源が利用可能であるときを前記論理装置に示すために、前記複数の論理装置のそれぞれに関連付けられ、かつ
    それぞれが前記有限状態マシンまたは別のトークン・アービタを有する少なくとも2つのサブツリーと関連付けられるトークン・アービタを使用してツリー構造で互いに結合される、有限状態マシン
    を有し、前記共有資源を仲裁するアービトレーション論理と
    を備えるシステム・オン・チップ(SOC)。
  25. 請求項24に記載の装置を表す情報が格納された機械可読媒体。
  26. ツリー構造アービタの葉ノードを含む複数の有限状態マシンであって、各有限状態マシンがリクエスタと関連付けられ、2線接続で状態を上流に渡す有限状態マシンと、
    ルート・ノードとブランチ・ノードを含む複数のトークン・アービタであって、有限状態マシンからの2線接続を受け、前記トークンを前記有限状態マシンにいつ付与するかを決定するトークン・アービタと
    を備えるツリー構造アービタ。
  27. トークン・アービタが、前記トークン・アービタに結合された有限状態マシンを有する請求項26に記載のアービタ。
  28. トークン・アービタが、トークン・アービタに結合されたドータ・トークン・アービタを有し、前記ドータ・トークン・アービタが、前記ドータ・アービタのサブツリーの状態を示す2線接続を前記トークン・アービタに渡す請求項26に記載のアービタ。
JP2006513106A 2003-04-18 2004-04-16 ラウンド・ロビン資源アービトレーション方法とそのための装置 Withdrawn JP2006523902A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/418,624 US20040210696A1 (en) 2003-04-18 2003-04-18 Method and apparatus for round robin resource arbitration
PCT/US2004/011943 WO2004095296A2 (en) 2003-04-18 2004-04-16 A method and apparatus for round robin resource arbitration

Publications (2)

Publication Number Publication Date
JP2006523902A true JP2006523902A (ja) 2006-10-19
JP2006523902A5 JP2006523902A5 (ja) 2007-06-07

Family

ID=33159154

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006513106A Withdrawn JP2006523902A (ja) 2003-04-18 2004-04-16 ラウンド・ロビン資源アービトレーション方法とそのための装置

Country Status (4)

Country Link
US (1) US20040210696A1 (ja)
JP (1) JP2006523902A (ja)
KR (1) KR20060016753A (ja)
WO (1) WO2004095296A2 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266786B2 (en) 2002-11-05 2007-09-04 Sonics, Inc. Method and apparatus for configurable address mapping and protection architecture and hardware for on-chip systems
US7149829B2 (en) * 2003-04-18 2006-12-12 Sonics, Inc. Various methods and apparatuses for arbitration among blocks of functionality
US7296105B2 (en) * 2003-10-03 2007-11-13 Sonics, Inc. Method and apparatus for configuring an interconnect to implement arbitration
US7231479B2 (en) * 2003-12-17 2007-06-12 International Business Machines Corporation Round robin selection logic improves area efficiency and circuit speed
US7739436B2 (en) 2004-11-01 2010-06-15 Sonics, Inc. Method and apparatus for round robin resource arbitration with a fast request to grant response
US7681014B2 (en) * 2005-02-04 2010-03-16 Mips Technologies, Inc. Multithreading instruction scheduler employing thread group priorities
US9262356B2 (en) * 2006-12-15 2016-02-16 Lantiq Beteiligungs-GmbH & Co.KG Arbiter device and arbitration method
US7734856B2 (en) * 2007-08-22 2010-06-08 Lantiq Deutschland Gmbh Method for operating a plurality of arbiters and arbiter system
US8229723B2 (en) * 2007-12-07 2012-07-24 Sonics, Inc. Performance software instrumentation and analysis for electronic design automation
TWI337517B (en) * 2008-03-04 2011-02-11 Inventec Corp Trace carrier
US8073820B2 (en) 2008-04-07 2011-12-06 Sonics, Inc. Method and system for a database to monitor and analyze performance of an electronic design
US8032329B2 (en) * 2008-09-04 2011-10-04 Sonics, Inc. Method and system to monitor, debug, and analyze performance of an electronic design
EP2182638A1 (en) * 2008-10-29 2010-05-05 Panasonic Corporation Method and apparatus for safe power up of programmable interconnect
US8972995B2 (en) 2010-08-06 2015-03-03 Sonics, Inc. Apparatus and methods to concurrently perform per-thread as well as per-tag memory access scheduling within a thread and across two or more threads
US8521933B2 (en) * 2010-12-30 2013-08-27 Lsi Corporation Round robin arbiter with mask and reset mask
US20130019041A1 (en) * 2011-07-12 2013-01-17 Lsi Corporation Bit slice round robin arbiter
GB2542646B (en) * 2016-03-18 2017-11-15 Imagination Tech Ltd Non-linear cache logic
US10579428B2 (en) * 2017-12-01 2020-03-03 International Business Machines Corporation Data token management in distributed arbitration systems
GB2593211B (en) 2020-03-20 2022-06-01 Imagination Tech Ltd Priority based arbitration
GB2593210B (en) 2020-03-20 2022-06-01 Imagination Tech Ltd Priority based arbitration
US11580058B1 (en) * 2021-08-30 2023-02-14 International Business Machines Corporation Hierarchical ring-based interconnection network for symmetric multiprocessors

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59165118A (ja) * 1983-03-11 1984-09-18 Hitachi Ltd 選択回路
US5301333A (en) * 1990-06-14 1994-04-05 Bell Communications Research, Inc. Tree structured variable priority arbitration implementing a round-robin scheduling policy
JPH0660018A (ja) * 1992-08-11 1994-03-04 Fujitsu Ltd バスアービトレーション方法、アービタ回路及びアービタ
US5630173A (en) * 1992-12-21 1997-05-13 Apple Computer, Inc. Methods and apparatus for bus access arbitration of nodes organized into acyclic directed graph by cyclic token passing and alternatively propagating request to root node and grant signal to the child node
US5519837A (en) * 1994-07-29 1996-05-21 International Business Machines Corporation Pseudo-round-robin arbitration for a shared resource system providing fairness and high throughput
US5784648A (en) * 1995-12-01 1998-07-21 Apple Computer, Inc. Token style arbitration on a serial bus by passing an unrequested bus grand signal and returning the token by a token refusal signal
US5948089A (en) * 1997-09-05 1999-09-07 Sonics, Inc. Fully-pipelined fixed-latency communications system with a real time dynamic bandwidth allocation
US6487213B1 (en) * 1998-01-05 2002-11-26 Polytechnic University Methods and apparatus for fairly arbitrating contention for an output port
US6411628B1 (en) * 1998-02-02 2002-06-25 Intel Corporation Distributed arbitration on a full duplex bus
US6038234A (en) * 1998-02-02 2000-03-14 Intel Corporation Early arbitration on a full duplex bus
US6182183B1 (en) * 1998-11-13 2001-01-30 Sonics, Inc. Communications system and method with multilevel connection identification
US6556571B1 (en) * 1999-05-25 2003-04-29 Nec Usa, Inc. Fast round robin priority port scheduler for high capacity ATM switches
US6636914B1 (en) * 1999-11-05 2003-10-21 Apple Computer, Inc. Method and apparatus for arbitration and fairness on a full-duplex bus using dual phases
US6330225B1 (en) * 2000-05-26 2001-12-11 Sonics, Inc. Communication system and method for different quality of service guarantees for different data flows
US6826643B2 (en) * 2001-03-19 2004-11-30 Sun Microsystems, Inc. Method of synchronizing arbiters within a hierarchical computer system
US6578117B2 (en) * 2001-10-12 2003-06-10 Sonics, Inc. Method and apparatus for scheduling requests using ordered stages of scheduling criteria

Also Published As

Publication number Publication date
WO2004095296A2 (en) 2004-11-04
WO2004095296A3 (en) 2005-03-03
KR20060016753A (ko) 2006-02-22
US20040210696A1 (en) 2004-10-21

Similar Documents

Publication Publication Date Title
JP2006523902A (ja) ラウンド・ロビン資源アービトレーション方法とそのための装置
Sewell et al. Swizzle-switch networks for many-core systems
US9495290B2 (en) Various methods and apparatus to support outstanding requests to multiple targets while maintaining transaction ordering
Gebali et al. Networks-on-chips: theory and practice
US7739436B2 (en) Method and apparatus for round robin resource arbitration with a fast request to grant response
Peh Flow control and micro-architectural mechanisms for extending the performance of interconnection networks
JP2006523902A5 (ja)
US7395360B1 (en) Programmable chip bus arbitration logic
Khanam et al. Design a low latency Arbiter for on chip Communication Architecture
US7685345B2 (en) Apparatus and method for fairness arbitration for a shared pipeline in a large SMP computer system
Shanthi et al. Performance analysis of on-chip communication architecture in MPSoC
US20090077289A1 (en) Bus interconnect with flow control
Hu Design methodologies for application specific networks-on-chip
Ma et al. Reducing code size in scheduling synchronous dataflow graphs on multicore systems
Naeem et al. Scalability of relaxed consistency models in NoC based multicore architectures
Zitouni et al. Communication architecture synthesis for multi-bus SoC
Bamberg et al. Interconnect architectures for 3d technologies
KR101051926B1 (ko) 버스 시스템의 버스 중재 장치 및 방법
Chen Design and implementation of low-latency, low-power reconfigurable on-chip networks
KR101013769B1 (ko) 버스 중재방법 및 장치
KR101041477B1 (ko) 버스 시스템의 버스 중재 장치 및 방법
US7809861B1 (en) System memory map decoder logic
Poornima et al. Mailbox based inter-processor communication in SoC
Balkan Mesh-of-trees interconnection network for an explicitly multi-threaded parallel computer architecture
Ziabari Improving the global memory efficiency in GPU-based systems

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070416

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070416

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20080821