(57)【要約】調停コントローラが調停論理と協力するさまざまな方法と装置を説明する。調停コントローラは、複数の機能ブロックから１つまたは複数のトランザクションを受け取る複数の入力を有する。調停コントローラは、調停ポリシを実施することによって、機能の複数のブロックの間で共用リソースへのアクセスの要求を調停する。調停ポリシは、複数の機能ブロックからのトランザクションを、共用リソースによってサービスされるトランザクションのグローバル・グループにグループ化する。第１グローバル・グループのすべてのトランザクションが、トランザクションの次のグローバル・グループのトランザクションのサービスの前に、その共用リソースによってサービスされる。調停論理は、調停ポリシを容易にする。調停論理に、共用リソースを階層的に調停するカスケード接続された調停ユニットが含まれる。トランザクションを調停コントローラへの入力に供給する機能ブロックのトポロジは、調停ユニットの集合によって達成される調停ポリシと独立に変更することができる。
2006523895.tif 000002
【特許請求の範囲】
【請求項１】
複数の機能ブロックから１つまたは複数のトランザクションを受け取る複数の入力を有する調停コントローラであって、前記調停コントローラは、調停ポリシを実施することによって前記複数の機能ブロックの間で共用リソースへのアクセスの要求を調停し、また、前記調停ポリシは、機能の前記複数のブロックからの前記トランザクションを、その共用リソースによるサービスに関するトランザクションのグローバル・グループにグループ化し、さらに第１グローバル・グループ内のトランザクションのすべては、トランザクションの次のグループ内のトランザクションのサービスの前に、その共用リソースによってサービスされる、調停コントローラと、
前記調停ポリシを容易にする調停論理であって、前記調停論理は、前記共用リソースについて階層的に調停するカスケード接続された調停ユニットを含み、また、前記調停コントローラへの入力に前記トランザクションを供給する機能ブロックのトポロジが、調停ユニットの集合によって達成される前記調停ポリシと独立に変更することができる、前記調停論理と
を含む装置。
【請求項２】
請求項１に記載の装置は、システム・オン・チップ内に置かれる請求項１に記載の装置。
【請求項３】
前記調停ポリシは、最も以前にサービスされた要求要因に基づいて、グローバル・グループ内で前記機能ブロックからの前記トランザクションの順序付けに重みを付ける請求項１に記載の装置。
【請求項４】
前記調停ポリシは、サービス品質要因に基づいて、前記機能ブロックからの前記トランザクションに重みを付ける請求項１に記載の装置。
【請求項５】
前記調停ポリシは、マルチスレッデッド・リンク要因に基づいて、前記機能ブロックからの前記トランザクションに重みを付ける請求項１に記載の装置。
【請求項６】
前記調停論理は、ブランチ調停論理とスレッド調停論理を含む請求項１に記載の装置。
【請求項７】
請求項１に記載の装置を表す情報をその上に格納された機械可読媒体。
【請求項８】
トランザクションのローカル・グループ化の開始点と終了点を制御するために、１つまたは複数の機能ブロックからのトランザクションに表示を付加する、前記調停コントローラの上流のフィールド構成可能構成要素
をさらに含む請求項１に記載の装置。
【請求項９】
前記共用リソースが示されたトランザクションを順次サービスすることを保証するために、複数のトランザクションに表示を付加する、前記調停コントローラの上流のフィールド構成可能構成要素
をさらに含む請求項１に記載の装置。
【請求項１０】
共用ターゲットによってサービスされるトランザクションを調停プロセスからフィルタ・アウトするために、前記調停論理と通信する、前記調停コントローラの下流の構成要素をさらに含む請求項１に記載の装置。
【請求項１１】
トランザクションの所与のグローバル・グループは、前記調停ユニットのトポロジと独立の前記調停ポリシの実施と、トランザクションの前記所与のグローバル・グループに含まれる前記トランザクションを受け取る前記調停ユニットの間のパイプライン化の後に、そのグローバル・グループ内のトランザクションとほぼ同一の構成内容を有する請求項１に記載の装置。
【請求項１２】
前記調停論理は、さらに、
第１ブランチを他のブランチと比較する行および列対サービス・ヒストリを格納するステータス・レジスタを含む請求項１に記載の装置。
【請求項１３】
前記調停論理は、さらに、
ブランチが前記調停プロセスに勝たなければならないかどうかを示す信号を、トランザクションを供給する前記機能ブロックのそれぞれから受け取る論理ゲートと、
前記ステータス・レジスタから信号を受け取り、その機能ブロックからの前記トランザクションが前記調停プロセスに勝たなければならないかどうかを示す禁止信号を前記論理ゲートに供給する禁止論理ゲートと
を含む請求項１２に記載の装置。
【請求項１４】
入ってくるトランザクションに割り当てられた優先順位を動的に降格するために、前記調停論理と通信する前記調停コントローラの下流の構成要素をさらに含む請求項１に記載の装置。
【請求項１５】
所与のトランザクションは、そのトランザクションを前記調停コントローラの入力に供給する前記機能ブロックの物理的トポロジと独立に、トランザクションの第１グローバル・グループに含まれる同一の統計的比率の可能性を有する請求項１に記載の装置。
【請求項１６】
調停ポリシを実施することによって、複数の機能ブロックの間で共用リソースへのトランザクションを調停することと、
前記複数の機能ブロックからのトランザクションを、その共用リソースによるサービスに関するトランザクションのグローバル・グループにグループ化することであって、第１グローバル・グループ内のトランザクションのすべては、トランザクションの次のグループ内のトランザクションのサービスの前に、その共用リソースによってサービスされる、前記グループ化することと、
調停されるトランザクションを供給する機能ブロックの物理トポロジに発生した変更と独立に、前記第１グローバル・グループに含まれるトランザクションの構成内容に関して実質的に類似する調停結果を維持することと
を含む方法。
【請求項１７】
最も以前のサービス要因に基づいて、前記グローバル・グループ内の前記トランザクションのサービス順序に優先順位を付けることをさらに含む請求項１６に記載の方法。
【請求項１８】
複数の機能ブロックからのトランザクションを含むトランザクションのグローバル・グループ内でシーケンシャル順序でサービスされるように、第１の機能ブロックからの複数のトランザクションをロックすることをさらに含む請求項１６に記載の方法。
【請求項１９】
前記グローバル・グループ内の前記トランザクションに関連するサービス品質表示に基づいて、前記トランザクションのサービス順序に優先順位を付けることをさらに含む請求項１６に記載の方法。
【請求項２０】
前記調停ポリシに従って、マルチスレッデッド・リンクからのトランザクションを調停することをさらに含む請求項１６に記載の方法。
【請求項２１】
前記調停ポリシを実施する機構によって調停されるトランザクションに割り当てられる優先順位レベルを動的に降格するために、前記調停ポリシを実施する機構の下流の構成要素から通信することをさらに含む請求項１６に記載の方法。
【請求項２２】
前記共用リソースがトランザクションをサービスする準備ができていない時に、前記共用サービスによってサービスされるトランザクションを調停プロセスからフィルタ・アウトすることをさらに含む請求項１６に記載の方法。
【請求項２３】
調停ポリシを実施することによって、複数の機能ブロックの間で共用リソースへのトランザクションを調停する手段と、
前記複数の機能ブロックからのトランザクションを、その共用リソースによるサービスに関するトランザクションのグローバル・グループにグループ化する手段であって、第１グローバル・グループ内のトランザクションのすべては、トランザクションの次のグループ内のトランザクションのサービスの前に、その共用リソースによってサービスされる、前記手段と、
調停されるトランザクションを供給する機能ブロックの物理トポロジに発生した変更と独立に、前記第１グローバル・グループに含まれるトランザクションの構成内容に関して実質的に類似する調停結果を維持する手段と
を含む装置。
【請求項２４】
最も以前のサービス要因に基づいて、前記グローバル・グループ内の前記トランザクションのサービス順序に優先順位を付ける手段をさらに含む請求項２３に記載の装置。
【請求項２５】
複数の機能ブロックからのトランザクションを含むトランザクションのグローバル・グループ内でシーケンシャル順序でサービスされるように、第１の機能ブロックからの複数のトランザクションをロックする手段をさらに含む請求項２３に記載の装置。
【請求項２６】
前記グローバル・グループ内の前記トランザクションに関連するサービス品質表示に基づいて、前記トランザクションのサービス順序に優先順位を付ける手段をさらに含む請求項２３に記載の装置。
【請求項２７】
前記調停ポリシに従って、マルチスレッデッド・リンクからのトランザクションを調停する手段をさらに含む請求項２３に記載の装置。
【請求項２８】
前記調停ポリシを実施する機構によって調停されるトランザクションに割り当てられる優先順位レベルを動的に降格するために、前記調停ポリシを実施する機構の下流の構成要素から通信する手段をさらに含む請求項２３に記載の装置。
【請求項２９】
前記共用リソースがトランザクションをサービスする準備ができていない時に、前記共用サービスによってサービスされるトランザクションを調停プロセスからフィルタ・アウトする手段をさらに含む請求項２３に記載の装置。
【請求項３０】
請求項１に記載の装置は、システム・オン・チップ内に置かれる請求項２３に記載の装置。
【請求項３１】
請求項２３に記載の装置を表す情報をその上に格納された機械可読媒体。
【請求項３２】
前記第１グローバル・グループに含まれる第１の機能ブロックからの個々のトランザクションの量を動的に決定するために、前記調停ポリシを実施する機構の外部の構成要素から通信する手段をさらに含む請求項２３に記載の装置。
【請求項３３】
トランザクションの前記第１グループの一部として含まれる資格があるすべての機能ブロックから存在するトランザクションなしで、前記第１グローバル・グループの形成を完了する手段をさらに含む請求項２３に記載の装置。
【請求項３４】
パイプライン・レジスタ点が前記調停ポリシを実施する機構に存在するかどうかに独立に、前記第１グローバル・グループに含まれるトランザクションの構成内容に関して実質的に類似する調停結果を維持する手段をさらに含む請求項２３に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権表示
この特許文書の開示の一部に、著作権保護の対象になる材料が含まれる。著作権所有者は、米国特許商標局のファイルまたは記録に現れるテキストと図面の何人によるそのままの複製に異議を申し立てないが、それ以外のすべての著作権を留保する。
【背景技術】
【０００２】
従来の手法では、調停機構が、集中化され、物理的にまたは異なるクロック・サイクルに分散することができないことが多い。パイプライン点が複数の調停点を分離している場合に、調停ポリシは調停点の物理的分散に依存することが多い。これは、調停ポリシを実装している論理の変更無しでは、チップ物理レイアウトの後のステージ中に発生する物理分散の変更を困難にする。
【０００３】
サービス品質機能および／またはマルチスレッディングの追加は、調停機構を複雑にし、はるかに低速にする可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
調停コントローラが調停論理と協力するさまざまな方法と装置を説明する。
【課題を解決するための手段】
【０００５】
調停コントローラは、複数の機能ブロックから１つまたは複数のトランザクションを受け取る複数の入力を有する。調停コントローラは、調停ポリシを実施することによって、機能の複数のブロックの間で共用リソースへのアクセスの要求を調停する。調停ポリシは、複数の機能ブロックからのトランザクションを、共用リソースによってサービスされるトランザクションのグローバル・グループにグループ化する。第１グローバル・グループのすべてのトランザクションが、トランザクションの次のグローバル・グループのトランザクションのサービスの前に、その共用リソースによってサービスされる。調停論理は、調停ポリシを容易にする。調停論理に、共用リソースを階層的に調停するカスケード接続された調停ユニットが含まれる。トランザクションを調停コントローラへの入力に供給する機能ブロックのトポロジは、調停ユニットの集合によって達成される調停ポリシと独立に変更することができる。
【発明を実施するための最良の形態】
【０００６】
本発明は、さまざまな変更および代替形態をうけるが、その特定の実施形態を、例として図面に示し、本明細書で詳細に説明する。本発明を、開示される特定の形態に制限されると理解してはならず、逆に、本発明は、本発明の趣旨と範囲に含まれるすべての修正形態、同等物、および代替形態を含む。
【０００７】
次の説明では、本発明の完全な理解を提供するために、たとえば特定のデータ信号、名前付き構成要素、接続、調停論理を構成する論理回路の個数とタイプ、ブランチの個数、ならびに／または各ブランチのスレッドの異なる個数などの多数の特定の詳細を示す。しかし、本発明をこれらの特定の詳細なしで実践できることは、当業者に明白であろう。他の場合に、本発明を不必要に不明瞭にしないようにするために、周知の構成要素または方法は、詳細にではなくブロック図で説明する。したがって、示される特定の詳細は、単に例示である。特定の詳細は、本発明の趣旨と範囲から変更でき、なおかつ本発明の趣旨と範囲内で企図されている。
【０００８】
一般に、共用相互接続リンクまたは共用ターゲットなどの共用リソースへのアクセスについて複数の競争するものの間を調停機構が調停するさまざまな方法と装置を説明する。この調停機構は、調停点の物理的分布を調停ポリシ自体と独立に変更することができる構造を有する。さらに、この調停機構に、サービス品質機能とマルチスレッデッド・リンクのサポートを含めることができる。この調停機構の調停論理は、調停遅延を最小にするために、超高速論理を実現しながら上記の特徴のすべてを含むように最適化することができる。
【０００９】
図１に、本発明の方法と装置を実現できるネットワーク環境の実施形態のブロック図を示す。ネットワーク環境１００は、Ｓ個のサーバ１０４−１から１０４−ＳとＣ個のクライアント１０８−１から１０８−Ｃを接続するネットワーク１０２を有する。さらなる詳細を、下で説明する。
【００１０】
図２に、コンピュータ・システムの実施形態のブロック図を示す。ブロック図形式のコンピュータ・システム２００は、図１に示されたクライアントおよび／またはサーバのいずれかを表している。さらに、このコンピュータ・システムに示された機能ブロック２０２から２３２の一部を、システム・オン・チップなどの単一の基板上に実装することができる。さらなる詳細を、下で説明する。
【００１１】
図３に、複数の機能ブロックの間で調停ポリシを実施する調停コントローラの実施形態のブロック図を示す。複数の調停ユニット３０６が、さまざまな機能ブロック３０２〜３０４、３０８〜３１２に接続して、その共用リソース３０２〜３０４、３０８〜３１２にアクセスする要求を調停することができる。機能ブロック３０２〜３０４、３０８〜３１２に、回路、バス、通信リンク、マイクロプロセッサなど、自己完結的に設計された機能を有するインテレクチャル・プロパティ（ＩＰ）コアを含めることができる。さらに、ＩＰは、さまざまな形で実装することができ、システム・オン・チップなどの単一の集積回路に製造することができる。さらなる詳細を、下で説明する。
【００１２】
図４に、共用リンクを有する複数の機能ブロックの間で調停ポリシを実施する調停コントローラの実施形態のブロック図を示す。さらなる詳細を、下で説明する。
【００１３】
図５に、複数の機能ブロックから１つまたは複数のトランザクションを受け取る複数の入力を有する調停コントローラの実施形態のブロック図を示す。複数の機能ブロックは、第１ブランチ５０２、第２ブランチ５０４、第３ブランチ５０８などのさまざまなブランチを介してそのトランザクションを供給することができる。これらの機能ブロックからのトランザクション５１０〜５１４は、第１トランザクション５１０、第２トランザクション５１２、第３トランザクション５１４などのトランザクションのそれぞれに付加されたエポック(epoch)ビット５１６を有している。調停コントローラ５１８に、さまざまなステータス・レジスタ５２０を含む調停論理を含めることができる。ステータス・レジスタ５２０は、エポック・クレジット(epoch credit)が特定のブランチに帰するか否かを、ブランチ・エポック・ベーシスごとに示すことができる。調停コントローラ５１８の上流のフィールド構成可能(field configurable)構成要素５２２が、機能ブロックからのトランザクション５１０〜５１４に表示を付加することができる。調停コントローラ５１８の上流のフィールド構成可能構成要素５２２は、エポック・ビットをセットまたはリセットすることによって表示を付加することができる。
【００１４】
調停コントローラ５１８は、ＩＰコアなどの複数の機能ブロックから、要求、応答などの１つまたは複数のトランザクション５１０〜５１４を受け取る複数の入力を有する。調停コントローラ５１８は、調停ポリシを実施することによって、複数の機能ブロックの間で、共用ターゲット機能ブロックまたは共用リンクなどの共用リソースへのアクセスの要求を調停する。調停ポリシは、複数の機能ブロックからのトランザクション５１０〜５１４を、共用リソースによるサービスに関するトランザクションのグローバル・グループにグループ化する。調停ポリシは、第１グローバル・グループのすべてのトランザクションが、トランザクションの次のグローバル・グループのトランザクションのサービスの前にその共用リソースによってサービスされることを維持する。
【００１５】
調停コントローラ５１８は、調停ポリシを容易にする調停論理を含んでいる。調停論理は、共用リソースを階層式に調停するカスケード接続された調停ユニットを含む。少なくとも１つまたは複数の調停ユニットが、機能ブロックのサブセットからのトランザクションを調停する。さらに、調停コントローラ５１８への入力にトランザクションを供給する、機能ブロックの位置などの機能ブロックのトポロジおよび／またはリンクのトポロジは、調停ユニットの集合によって達成される調停ポリシと独立に変化することができる。
【００１６】
したがって、調停論理は、調停論理によって調停されるトランザクションを供給する機能ブロックのトポロジに対して変更が行われた場合であっても、調停論理に含まれる論理回路のどれをも変更する必要なしに、トランザクション調停結果の実質的に類似するグローバル・グループ化を維持する調停ポリシを実施する。調停コントローラ５１８への入力にトランザクション５１０〜５１４を供給する調停点の物理的分布は、調停論理に含まれる調停ポリシの適用の後に、所与のトランザクションが共用リソースによってサービスされるトランザクションのグローバル・グループ化に含まれるか否かに独立に変更することができる。
【００１７】
調停コントローラ５１８は、この例では、１つの出力５２４への３つの異なる入ってくるブランチ５０２、５０４、５０８からのアクセスを調停する。トランザクションのローカル・グループ化を、各サイクルに各ブランチ５０２、５０４、５０８からサブミットすることができる。単一のブランチ５０２、５０４または５０８からサブミットされた少なくとも１つのトランザクション５１０〜５１４がある場合に、そのトランザクションは、調停コントローラの出力５２４に送られる。トランザクション５１０〜５１４を有する複数のブランチ５０２、５０４または５０８がある場合に、調停コントローラ５１８の内部の調停ユニットが、どのブランチのトランザクションを出力５２４に転送するかを選択する。
【００１８】
調停ポリシは、トランザクションのグループ内で進行する。エポックなどのトランザクションのローカル・グループは、調停コントローラ５１８の上流のフィールド構成可能構成要素５２２によって識別されたトランザクションのグループである。基本的な原理は、調停コントローラ５１８が、ブランチからのトランザクションの次のローカル・グループからのトランザクションを許可する前に、各ブランチからのトランザクションの１つのローカル・グループからのすべてのトランザクションを許可することによって、トランザクションのグローバル・グループ化を形成することである。この形で、共用リソースへのアクセスの公平さが維持される。
【００１９】
調停コントローラ５１８の上流のフィールド構成可能構成要素５２２は、機能ブロックからのトランザクションに表示を付加して、トランザクションのローカル・グループ化の開始点と終了点を制御することができる。付加された表示は、特定のブランチからの何個の個々のトランザクションが、トランザクションの所与のローカル・グループに含まれるかを制御する。これによって、特定のブランチからの何個の個々のトランザクションが、調停コントローラの出力５２４でのトランザクションのグローバル・グループ化に含まれるかも決定することができる。調停コントローラ５１８の上流のフィールド構成可能構成要素５２２は、各トランザクションに、対応するトランザクションがトランザクションの新しいローカル・グループを開始するか否かを指定するビットを用いて注釈を付ける。このビットを、エポックの始めビット５１６とすることができる。各機能ブロックからのトランザクションの各グループの、個々のトランザクションの個数などのサイズは、異なるのもとすることができるが、調停ポリシは、エポック・ビットによってマークされたトランザクションのローカル・グループを、単一のトランザクションとして扱う。したがって、トランザクションのローカル・グループのサイズと結果の形成されるトランザクションのグローバル・グループは、調停論理が何かを変更する必要なしに、上流で制御することができる。
【００２０】
調停コントローラ５１８は、調停ポリシを適用することによって、特定の機能ブロックからのトランザクションの同一ローカル・グループ内のトランザクションが進行することを許可すると同時に、その特定の機能ブロックからのトランザクションの次のローカル・グループを開始するトランザクションをブロックする。
【００２１】
ブランチ５０２、５０４、５０８のうちの少なくとも１つがトランザクションを提示し、調停コントローラ５１８にトランザクション５１０〜５１４を供給するブランチのすべてが、１）新しいエポックを開始するエポック・ビットを有するトランザクションを提示しているか、２）トランザクションを提示していない、のいずれかである時に、調停コントローラ５１８は、トランザクションのグローバル・グループの形成を完了する。調停コントローラ５１８は、トランザクションのグローバル・グループの形成の後に、エポックをロール・オーバーする。調停コントローラ５１８は、ブランチごとのエポック・クレジット・ビットなどのレジスタ５２０を使用して、各ブランチのエポック・ロールオーバー状態を追跡する。調停コントローラ５１８エポックがロール・オーバーしたならば、トランザクションの新しいローカル・グループを開始するエポック・ビットを有するトランザクションが、すべてのブランチから受け入れられる。レジスタ５２０は、エポックがロール・オーバーした時に増分され、セットされたエポック・ビットを有する要求が調停に勝った時に減分される、複数ロール・オーバーを追跡するクレジット・カウンタとすることもできる。
【００２２】
トランザクションが、調停論理を介して処理された時に、調停コントローラ５１８は、出力５２４のトランザクションの結果のグローバル・グループ内のすべてのトランザクションからエポック・ビット５１６を除去する。調停コントローラ５１８は、出力５２４に送られる最初のトランザクションに新しいエポック・ビットを付加する。
【００２３】
さらに、すべてのエポック・クレジット・ビット５２０が、エポックがロール・オーバーした時に調停に勝たなかったブランチ５０２、５０４、５０８に対してセットされる。エポック・クレジット・ビット５２０がセットされている時に、ブランチの入ってくるエポックの始めビット５１６が取り消され、そのブランチのトランザクションがトランザクションの現在のグローバル・グループに参加できるようになる。したがって、エポック・クレジット・レジスタ５２０は、エポックがロール・オーバーした時に準備ができているトランザクションを有しなかったブランチまたはその時に調停に勝たなかったブランチに関して調停コントローラがロール・オーバーしたことを記憶する。したがって、エポック・クレジット・レジスタ５２０は、調停コントローラ５１８がロール・オーバーし、トランザクションのグローバル・グループの形成を完了した時に、どのブランチ５０２、５０４、５０８がグローバル・グループ内のトランザクションを有しなかったが、調停ポリシによりグローバル・グループ内のトランザクションを有することができたかを追跡する。あるブランチのエポック・クレジット・ビット５２０は、入ってくるエポックの始めビット５１６が取り消される時にリセットされる。
【００２４】
エポックベースの機構だけでは、出力に関するすべての競合を解決するのに不十分である可能性がある。というのは、トランザクションの同一のグローバル・グループの一部である複数のトランザクションが、異なるブランチで提示される可能性があるからである。これらのトランザクション５１０〜５１４のすべてが、トランザクションのグローバル・グループ内で出力５２４に転送される資格があり、その順序が解決されなければならない。このために、調停コントローラ５１８は、ブランチのサービス順序を追跡する。複数のブランチが、トランザクションの同一のグローバル・グループの一部である、準備のできたトランザクションを有する時に、調停コントローラ５１８は、最も以前にサービスされた(least-recently-serviced)ブランチが最初に通過することを許可する。調停ポリシのこの第２のエイジ(age)ベースの部分は、そうでなければ調停に関して同位のトランザクションの引き分けを解決する。
【００２５】
図６に、機能ブロックから異なるサイズのローカル・グループのトランザクションを受け取る調停コントローラの実施形態のブロック図を示す。各機能ブロックは、たとえば４つのトランザクションを供給している。調停コントローラの上流のフィールド構成可能構成要素は、第１ブランチ６０２に関連する機能ブロックから来る１つおきの個々のトランザクション６１２だけにエポック・ビット６１６を供給し、または付加する。したがって、調停コントローラ６１８は、第２ブランチ６０４または第３ブランチ６０８から来るトランザクション６１０、６１４と比較して、調停コントローラ６１８によって形成されるトランザクションのグローバル・グループに、第１ブランチ６０２からの２倍の個数のトランザクション６１２を含める。
【００２６】
この例では、複数のトランザクション６１２、６１４、６１０が、調停コントローラ６１８への入力を供給するブランチ６０２、６０４、６０８ごとにキューイングされる。各トランザクション６１０、６１２、６１４に、それ自体のエポックの始まりビット６１６を用いて注釈を付けることができる。第２、第３のブランチ６０４、６０８の各トランザクション６１０、６１４は、エポックの始まりビット６１６がセットされている。しかし、第１ブランチ６０２では、１つおきのトランザクション６１０だけが、エポックの始まりビット６１６がセットされている。その効果は、第１ブランチ６０２からのトランザクション６２６、６２８の各ローカル・グループが、２つの個々のトランザクション６１２からなることである。その効果は、すべてのブランチ６０２、６０４、６０８がトランザクション６１０、６１２、６１４を送っている限り、トランザクションの各グローバル・グループが、第１ブランチ６０２からの２つのトランザクション６１２と、第２、第３のブランチ６０４、６０８のそれぞれからの１つのトランザクション６１０、６１４から構成されることである。
【００２７】
エポックの始まりビット６１６の挿入は、フィールド構成可能な上流の送るユニットによって制御され、したがって、このユニットは、相対トランザクション・ローカル・グループ・サイズを決定する。この形で、重み付きの公平な調停を達成することができ、ここで、異なるブランチからのトランザクションは、トランザクションのローカル・グループの重みの比で渡される。所与のブランチが、トランザクションのすべてのグループのそのブランチの共有を満たすのに十分に早くトランザクション処理をしていない場合に、残りのブランチが、それ自体の相対トランザクション・ローカル・グループ・サイズによってトランザクションのグループを共有する。調停の相対重み付けは、上流から制御することができ、調停コントローラが情報を知ることを全く必要としない。実際に、重み付けは、調停コントローラに知らせる必要なしに動的に変更することができる。というのは、調停コントローラ内の調停論理自体を、エポックの始めビットの存在によって単純に制御できるからである。
【００２８】
図７に、調停ポリシがトランザクションのシーケンスに適用される時の、異なるブランチから来るトランザクションの例のシーケンスと結果のトランザクションのグローバル・グループ化を示す。最も以前のサービス機構を使用する調停ポリシを使用して、トランザクションの各グローバル・グループ内のトランザクションを順序付けることができる。各トランザクションは、番号付きの文字（Ａ１、Ｂ２など）として図示され、それがエポック番号を担持するかどうかを示すためのドットを用いて注釈を付けられている。
【００２９】
トランザクションＡ０、Ａ１、Ａ２は、第１ブランチ７０２から来る。トランザクションＢ０、Ｂ１は、第２ブランチ７０４から来、トランザクションＣ０、Ｃ１は、第３ブランチ７０８から来る。調停コントローラは、その入力で、第１タイミング・サイクル７３４中にトランザクションＡ０、Ｂ０を感知する。トランザクションＡ０は、第１グローバル・グループ７３６に含まれ、共用リソースによってサービスされる第１グローバル・グループ７３６内で最初のトランザクションになるように、Ｂ０より優先して選択される。調停コントローラは、トランザクションＡ０が共用リソースによって最初にサービスされる、トランザクションのグローバル・グループ内で最初のトランザクションなので、トランザクションＡ０に新規エポック・ビット７３９を付加する。
【００３０】
次の時間サイクル７３８に、調停コントローラは、調停ポリシを適用した後に、この第１グローバル・グループ７３６の一部になる、その入力のトランザクションのすべてを考慮する。この場合に、トランザクションＡ１、Ｂ０、Ｃ０が候補である。最も以前のサービスの順序によって、Ｂ０、Ｃ０、最後にＡ１という順序付けが決定される。
【００３１】
したがって、第２の時間サイクル７３８に、トランザクションＢ０が、第１グローバル・グループ７３６に置かれる。出てゆくトランザクションＢ０は、トランザクションの同一のグローバル・グループ７３６の一部なので、エポック・マーカーを有しない。次に、トランザクションＡ１、Ｃ０が、調停コントローラの入力で感知される。Ａグループまたはブランチ０からのトランザクションは、既に第１グローバル・グループ７３６に含まれている。したがって、調停ポリシは、最も以前のサービス要因を適用して、トランザクションＣ０を、調停コントローラの出力の共用リソースからサービスされるトランザクションの順序で次に置く。
【００３２】
トランザクションＡ１は、トランザクションの新しいシリーズの始めを示すエポック・ビット・マーカーをそのトランザクションに付加されていない。これは、トランザクションＡ１とトランザクションＡ０の両方が、トランザクションの同一のローカル・グループから来たことを意味する。したがって、トランザクションＡ１も、トランザクションに対する調停ポリシの適用の後に、共用リソースによってサービスされるトランザクションの第１グローバル・グループ７３６に含まれる。したがって、トランザクションＡ０、Ｂ０、Ｃ０、Ａ１が、サービスされるトランザクションの第１グローバル・グループ７３６に含まれる。
【００３３】
この時点で、トランザクションの第１グローバル・グループ７３６の一部になる資格がある、コントローラの入力で使用可能な要求はない。調停ポリシに従って、調停コントローラ・エポックが、ロール・オーバーする。
【００３４】
トランザクションＢ１、Ｃ１、Ａ２のすべてが、調停コントローラの上流のフィールド構成可能構成要素からトランザクションに付加されたエポック・マーカーを有し、これらのそれぞれがトランザクションの新しいローカル・グループに属することが示されている。調停ポリシは、各ブランチからの新しいローカル・グループが、調停コントローラの入力で感知された時という条件の下で新しいグループを形成することを指示している。最も以前のサービス要因を含む調停ポリシの適用によって、トランザクションＢ１が、トランザクションの第２グループ７４２で最初にサービスされるトランザクションになる。サービスされるトランザクションのラインをたどると、第２ブランチ７０４からのトランザクションが、最も以前にサービスされており、したがって、Ｂ１が、トランザクションのこの次のグループ７４２で最初にサービスされるトランザクションになる。この時点で、ブランチ０、ブランチ２のエポック・クレジット・ビットがセットされ、トランザクションＣ１、Ａ２が、サービス順序でＢ１に続くようになる。
【００３５】
これらのエポック・クレジット・ビットのそれぞれは、エポック・マーカーをセットされたトランザクションが調停コントローラを介して許可された時にリセットされる。
【００３６】
図８に、調停ロック要因を有する調停ポリシがトランザクションのシーケンスに適用される時の、異なるブランチから来るトランザクションの例のシーケンスと結果のトランザクションのグローバル・グループ化を示す。いくつかの場合に、あるブランチから来るトランザクションの組が、他のブランチからのトランザクションとインターリーブされずに一緒になることが必要である。理由の例は、最小単位要件または、相互排他同期化を実行するためである。調停ロックは、トランザクションと共に運ばれる情報の追加ビットを用いて達成することができる。この場合に、注釈は、調停をロックする（ロックのＬとして図示）８４４かロック解除する（アンロックのＬとして図示）８４６かのいずれかである。ロックは、グローバル・グループ化境界をまたいではならない。
【００３７】
図８に、トランザクションＡ０、Ａ１、Ａ２を含む第１ブランチ８０２から、トランザクションＢ０、Ｂ１を含む第２ブランチ８０４から、トランザクションＣ０、Ｃ１を含む第３ブランチ８０８からの同一のトランザクションが示されており、トランザクションの同一の第１グローバル・グループ８３６が形成されているが、共用リソースがこれらのトランザクションをサービスするためにこれらのトランザクションを順次処理し、受け取るシーケンシャル順序は、変更されている。調停コントローラの上流のフィールド構成可能構成要素は、トランザクションＡ０、Ａ１にロック表示８４４、８４６を付加して、共用リソースがこれらの示されたトランザクションを順次サービスすることが保証されている。したがって、トランザクションの第１グループ８３６内のサービスされる順序は、Ａ０から始まり、Ａ１が続き、その後、順次Ｂ０が続き、最後にＣ０が続く。
【００３８】
注記したように、図８に示された例のトランザクション到着順序は、図７で使用されたものと同一であるが、今回は、Ａ０、Ａ１が一緒にロックされる。調停ユニットがトランザクションＡ０を処理する時に、調停論理は、そのブランチにロックされ、したがって、トランザクションＡ１が、次に調停に勝つトランザクションになることが保証される。その結果は、トランザクションの第１グローバル・グループ化８３６の出力シーケンスが、最初の２つのトランザクションとして、図７に示されたＡ０、Ｂ０ではなくＡ０、Ａ１を有することである。したがって、フィールド構成可能構成要素は、最小単位に関する調停ロックをサポートする。
【００３９】
また、第１ブランチ８０２からのトランザクションＡ２は、トランザクションの第２グローバル・グループ８４２の形成中に、どのブランチが最も以前にサービスされたかを調停論理が判定する時に、トランザクションの次のグローバル・グループ８４２に最初に置かれるトランザクションである。
【００４０】
図９ａ、９ｂに、共用リソースによってサービスされるトランザクションのグループを形成する時に、両方が出力での実質的に同一の統計的結果を受け取る調停コントローラにトランザクションを供給する機能ブロックの２つの異なるトポロジのブロック図を示す。図９ａに、階層的にカスケード接続された第１、第２、第３の調停ユニット９５０ａ〜９５４ａを示す。図９ｂにも、カスケード接続された形で階層的に配置された第１、第２、第３の調停ユニット９５０ｂ〜９５４ｂが示されている。各調停ユニットは、共用リソースについて階層的に調停し、機能ブロックからのトランザクションのサブセットを受け取る。しかし、図９ａ、図９ｂに示されているように、調停コントローラへの入力にトランザクションを供給する機能ブロック９０２ａ〜９０８ａ、９０２ｂ〜９０８ｂのトポロジは、調停ユニット９５０ｂ〜９５４ｂ、９５０ａ〜９５４ａの集合によって達成される調停ポリシと独立に変更することができる。図９ａに示されているように、調停ユニット９５０ａ〜９５４ａを、機能ブロック９０２ａ〜９０８ａからの複数の入ってくるブランチの間で集合的に調停を実行する調停コントローラ・ツリーを形成するようにカスケード接続することができる。図９ｂに示されているように、機能ブロック９０２ｂ〜９０８ｂからの複数の入ってくるブランチの間で集合的に調停を実行する調停コントローラ・ツリーを形成するように調停ユニット９５０ｂ〜９５４ｂをカスケード接続することができる。図示の２つのツリーのそれぞれが、４つの入力ブランチを有する。しかし、図９ａでは、調停コントローラ・ツリーが平衡を取られており、図９ｂでは、非常に不平衡である。
【００４１】
２つの異なるツリー９ａ、９ｂによって形成されるトランザクションのグローバル・グループは、その構成内容において同一である。単に、グループ内のトランザクションの順序が変化する可能性がある。したがって、達成される調停結果は、調停ユニット９５０ｂ〜９５４ｂ、９５０ａ〜９５４ａの物理トポロジまたは機能ブロック９０２ａ〜９０８ａ、９０２ｂ〜９０８ｂがどうであるかにかかわりなく、実質的に同一である。たとえば、図９ａに示されているように、エポック・ビットが、機能ブロック９０２ａ〜９０８ａのブロックからのｎ個おきのトランザクションに付加される場合に、第３調停ユニット９５４ａの出力での各グローバル・グループに、各ブランチからのｎ個のトランザクションが含まれる。同様に、図９ｂに示されているように、エポック・ビットが、機能ブロック９０２ｂ〜９０８ｂからのすべてのトランザクションに付加される場合に、第３調停ユニット９５４ｂの出力での各グローバル・グループに、各ブランチからの１つのトランザクションが含まれる。所与のトランザクションは、調停コントローラの入力にトランザクションを供給する機能ブロックの物理トポロジと独立の、トランザクションの第１グローバル・グループに含まれるほぼ同一の統計的比率の可能性を有する。
【００４２】
新しいエポックをマークされたトランザクションをブランチごとに１つに制限する調停ポリシは、毎回調停ユニットの集合によって形成される結果のグローバル・エポックに、各ブランチからのトランザクションの多くとも１つのローカル・グループ化が含まれることを保証する。したがって、各ブランチから取られる個々のトランザクションの個数の重み付けは、カスケード接続された調停ユニット９５０ｂ〜９５４ｂ、９５０ａ〜９５４ａの物理的配置と独立である。
【００４３】
図９ｂに関して、いくつかの実施形態で、第１、第２の機能ブロック９０２ｂ、９０４ｂからのトランザクションが、単一のクロック・サイクル内に第１、第２、第３の調停ユニット９５０ｂ〜９５４ｂを介して処理される。第３機能ブロック９０６ｂからのトランザクションは、その単一のクロック・サイクル内に第２および第３の調停ユニット９５２ｂ、９５４ｂを介して処理される。また、第４機能ブロック９０８ｂからのトランザクションは、その単一のクロック・サイクル内に第３調停ユニット９５４ｂを介して処理される。したがって、調停コントローラから来る共用リソースによってサービスされるトランザクションの第１グローバル・グループには、各機能ブロックからのトランザクションの１つのローカル・グループが含まれる。このトランザクションのグローバル・グループ内のトランザクションのシーケンシャル順序は、図９ａの順序と異なるかもしれないが、同一のトランザクションが、第３調停ユニット９５４ｂの出力に形成されるトランザクションのグローバル・グループに含まれる。
【００４４】
いくつかの実施形態で、第１、第２、第３の機能ブロック９０２ｂ、９０４ｂ、９０６ｂからのトランザクションが、単一クロック・サイクル内に第１、第２、第３の調停ユニット９５０ｂ〜９５４ｂを介して処理されない場合がある。たとえば、調停コントローラ・ネットワークをパイプライン化するために、調停ユニット９５０ｂ、９５４ｂの間にレジスタ点を設けることができる。しかし、レジスタ点の存在は、全体的な調停プロパティに実質的に影響しない。たとえば、トランザクションの最初に形成されるグローバル・グループに、この時間遅延に起因して、各機能ブロックからのトランザクションの完全なローカル・グループが含まれない場合がある。第３調停ユニット９５４ｂは、調停ポリシを実施することができ、調停コントローラにトランザクションを供給するブランチのすべてがこの時間の間にトランザクションを提示しないことを判定し、調停コントローラは、トランザクションの初期グローバル・グループの形成を完了する。しかし、この機能ブロックからのトランザクションのローカル・グループが、トランザクションの最初に形成されるグローバル・グループに含まれた可能性があることを示すエポック・クレジット・ビットが、セットされる。調停コントローラは、トランザクションの第２グローバル・グループの形成によってこれを調整する。これが重要なのは、オンチップ・ネットワークのトポロジが、しばしば、互いに通信する異なる機能ブロックの物理レイアウトに関係しなければならないからである。調停コントローラの物理分布、接続性、パイプライン化に無関係にネットワーク定数の調停プロパティを統計的に保持することが、有益である。
【００４５】
したがって、システムの起動時に、図９ｂからのトランザクションの初期グローバル・グループ内の機能の異なるグループからのトランザクションの構成内容は、図９ａからのトランザクションの初期グローバル・グループと異なる。しかし、図９ｂからのトランザクションの後続グローバル・グループ内のトランザクションの構成内容は、図９ａからのトランザクションの後続グローバル・グループと一致しなければならない。調停ポリシを適用する調停論理は、調停を達成する調停ユニットのトポロジとパイプライン化が変更された場合であっても変化しない。
【００４６】
図４に、マルチスレッデッド・リンクを使用するオンチップ・ネットワークを示す。これまでは、本明細書で述べたブランチと出力リンクのそれぞれが、単一スレッデッド・リンク・コンテキストにあり、これらが、図３に示された特定の物理リンクを介して単一論理接続を担持できることを意味した。さまざまな機能ブロック４０２、４０４、４０８、４１０、４１４は、マルチスレッデッド・リンクを使用して、単一の共用物理リンク４０５で複数の論理接続を担持することができる。たとえば、プロセッサ４０４は、ＲＡＭ  ４０８に向かう第１論理スレッド接続、グラフィックス・エンジン４１４に向かう第２論理スレッド接続、論理４１０に向かう第３論理スレッド接続を、同一の共用リンク４０５上で有することができる。調停コントローラ４０６は、各論理接続がそれ自体の独立のフロー制御を有することを保証する。
【００４７】
図１０に、同一の機能ブロックから３つの異なるスレッド・キューを受け取る調停コントローラとのマルチスレッデッド・リンクの実施形態を示す。調停コントローラ１０１８は、たとえば共用リンクが存在する時に、多数のスレッド・キュー１０６０〜１０６４を受け取る。したがって、複数の論理接続を、１つの物理接続上で、調停コントローラ１０１８を介し、ターゲット機能ブロックへの共用リンクを介して行うことができる。調停コントローラ１０１８は、トランザクション１０１２とスレッドＩＤ  １０６６を出力することができる。調停コントローラ１０１８は、レシーバなどの調停コントローラの下流の構成要素１０６８から通信を受け取って、特定の共用ターゲットによってサービスされるトランザクションを調停論理からフィルタ・アウトすることができる。トランザクションは、共用ターゲットがビジーなので調停プロセスからフィルタ・アウトされる。したがって、スレッド・ビジー信号１０７０が、サービスできないスレッドを調停プロセスから除去する際のフロー制御のために、調停コントローラの下流の構成要素１０６８によって調停コントローラ１０１８に送られる。
【００４８】
フロー制御は、ｔｈｒｅａｄｂｕｓｙ信号１０７０などのスレッドごとのビット・ベクトル信号を介して適用される。リンクでスレッドＸに対応するｔｈｒｅａｄｂｕｓｙビットをセットすることは、それ以上のトランザクションをスレッドＸについて受け入れることができないことを意味する。ｔｈｒｅａｄｂｕｓｙ情報は、リンクを使用する準備ができている論理接続の間での物理リンクへのアクセスに関する調停に、送出側ユニットによって使用される。フィールド構成可能下流構成要素１０６８は、スレッドのフロー制御手段としてｔｈｒｅａｄｂｕｓｙ信号を供給することができる。
【００４９】
調停コントローラ１０１８に、ブランチ調停論理とスレッド調停論理を含む調停論理を含めることができる。調停論理は、サービス不能なスレッドを調停プロセスからフィルタ・アウトする。調停ポリシは、スレッド調停論理を介するマルチスレッデッド・リンク要因に基づいて、機能ブロックからのトランザクションに重みを付ける。調停論理は、調停ポリシを適用して、各ブランチからの勝つスレッドを決定する。グローバル・グループ化に次に含まれる勝つスレッドが決定されたならば、そのトランザクションは、スレッドＩＤ信号１０６６を介するそれが属するスレッドの表示と共に、共用リンクを介して渡される。
【００５０】
図１１に、さまざまなブランチではなくさまざまなスレッドからのトランザクションの例のシーケンスと、調停ポリシがトランザクションのシーケンスに適用される時のトランザクションの結果のグローバル・グループ化を示す。トランザクションＡ０、Ａ１、Ａ２は、スレッド０  １１０２内で機能ブロックから来、スレッド１  １１０４は、その同一の機能ブロックから来、トランザクションＢ０、Ｂ１を送出することができ、トランザクションＣ０、Ｃ１は、スレッド２  １１０６から、同一の機能ブロックから来る。図１１に、図１０に示されたものなどの送出側でのスレッド調停に関するトランザクションの例のシーケンスを示す。各スレッドでのトランザクションの到着シーケンスは、図７に示した例のブランチでのトランザクションの到着シーケンスと同一である。スレッド０  １１０２からスレッド２  １１０６のすべてが、同一の機能ブロックから来る必要がないことに留意されたい。
【００５１】
調停ポリシがトランザクションに適用された後の最初の期間１１３４に、トランザクションＡ０、Ｂ０が、その共用リンクによってサービスされるトランザクションの第１グローバル・グループ１１３６に置かれる。調停ポリシの次の期間１１３８は、トランザクションＡ１またはＣ０をグローバル・グループ１１３６に置くかどうかを決定し、スレッド２  １１０６からのトランザクションが最も以前にサービスされたので、トランザクションＣ０が、グループに入れられ、これにトランザクションＡ１が続く。トランザクションＡ０、Ｂ０、Ｃ０、Ａ１は、共用リンクにまたがってサービスされるトランザクションの第１グローバル・グループ１１３６を形成する。単に、トランザクションＡ０、Ａ１が、第１ターゲット・リソースによって実際にサービスされ、トランザクションＢ０が、第２ターゲット・リソースによってサービスされ、トランザクションＣ０が、第３ターゲット・リソースによってサービスされることに留意されたい。しかし、３つすべてのターゲット・リソースが、同一の共用リンクを使用した。また、いくつかの実施形態で、複数の異なるスレッドを、単一のマルチスレッデッド・ターゲット・リソースによってサービスすることができる。
【００５２】
この図の最下部に示されたトランザクションのグループ化は、グローバル調停グループ化１１３６と、そのグローバル調停グループ内で形成されるスレッドごとのグループ化１１３７を反映したものである。
【００５３】
調停コントローラの出力で形成されるトランザクションの第２のグループ１１４２は、トランザクションＢ１、Ｃ１、Ａ２である。これらのトランザクションのそれぞれが、そのトランザクションにエポック・ビット・マーカーを付加されている。調停論理は、３つすべてのスレッドが、保留中のトランザクションの新しい組を有することを認識し、したがって、共用リンクを介してサービスされるトランザクションの第２グローバル・グループ１１４２を形成する。
【００５４】
スレッド調停用の調停機構は、図５に示されたブランチ調停に使用されたものに非常に似たものとすることができる。スレッド調停論理とブランチ調停論理の間の差は、ブランチ調停が、新しいエポックを形成し、したがって、調停コントローラ・エポックがロール・オーバーした時に、エポック・マーカーが、出てゆくトランザクションに置かれるが、スレッド調停は、実質的に常に、各スレッドからのエポック・マーカーを維持することである。
【００５５】
スレッド調停の結果は、異なるスレッドのトランザクションが、上流送出側ユニットによって供給されるトランザクション・サイズのローカル・グループの比でインターリーブされることである。図１１の例では、スレッド０  １１０２が、２すなわちＡ０、Ａ１のローカル・トランザクション・グループ・サイズを有し、スレッド１と２が、１のローカル・トランザクション・グループ・サイズを有する。すべてのスレッドが、送出の準備ができたトランザクションを有し、下流からのフロー制御がない時に、スレッド０  １１０２からの２つのトランザクションが、スレッド１と２  １１０４、１１０６からの１トランザクションごとに渡される。
【００５６】
図１２に、その入力で、第１ブランチを介する第１の機能ブロックからのマルチスレッデッド・トランザクションと、第２ブランチを介する第２の機能ブロックからのマルチスレッデッド・トランザクションを受け取る調停コントローラの実施形態のブロック図を示す。調停コントローラ１２１８内の調停論理に、３つの調停論理ならびにブランチ調停論理を含めることができる。
【００５７】
調停コントローラ１２１８にトランザクションを供給する２つのブランチ１２０２、１２０４は、たとえば３つのスレッドを有することができる。ブランチ１２０２、１２０４は、準備のできた要求と対応するエポック・マーカーを有するスレッドのビットベクトルを、調停コントローラ１２１８に渡す。調停コントローラ１２１８内の１つまたは複数の調停ユニットが、この情報をとり、スレッド調停とブランチ調停の両方を実行して、どのブランチ１２０２または１２０４からのどのスレッドがトランザクションの送出を許可されるかを決定する。この決定は、ｔｈｒｅａｄｓｅｌｅｃｔベクトル１２６１を介してブランチに送ることができる。準備ができている少なくとも１つのトランザクションがある時に、必ず、１つのブランチが、そのｔｈｒｅａｄｓｅｌｅｃｔベクトル内に単一のセットされたビットを有し、これが対応するスレッドからトランザクションを送ることが可能になるが、他のブランチは、どのビットもセットされていないｔｈｒｅａｄｓｅｌｅｃｔベクトルを受け取り、したがって、トランザクションを送らない。調停コントローラ１２１８は、ｔｈｒｅａｄｂｕｓｙ信号１２７０の形の下流フロー制御およびｔｈｒｅａｄｄｅｍｏｔｅ信号１２７１などのスレッド優先順位制御信号も考慮に入れる。調停コントローラの下流の構成要素は、調停コントローラ１２１８内の調停論理に通信して、入ってくるトランザクションに割り当てられる優先順位を動的に降格することができる。下流構成要素は、スレッドごとにｔｈｒｅａｄｄｅｍｏｔｅ信号１２７１を供給することができる。
【００５８】
図１３に、さまざまな機能ブロック内のスレッドからのさまざまなトランザクションの例のシーケンスと、調停ポリシがトランザクションのシーケンスに適用された時のトランザクションの結果のグローバル・グループ化を示す。ブランチ０を介する第１の機能ブロックは、トランザクションの３つの異なるスレッド、スレッド０〜スレッド２を、調停コントローラの入力に供給することができる。第１スレッド１３０２すなわちスレッド０に、トランザクションＡ０、Ａ１、Ａ２を含めることができる。第２スレッド１３０４すなわちスレッド１に、トランザクションＢ０、Ｂ１を含めることができる。第３スレッド１３０６に、トランザクションＣ０、Ｃ１、Ｃ２を含めることができる。第２の機能ブロックも、ブランチ１を介してさまざまなトランザクションを有するさまざまなスレッドを供給することができる。第１スレッド１３０２に、ブランチ０から受け取られるトランザクションＡ１０、Ａ１１、Ａ１２も含めることができる。第２スレッド１３０４に、ブランチ１から受け取られるトランザクションＢ１０、Ｂ１１も含めることができる。第３スレッド１３０６に、ブランチ１から受け取られるトランザクションＣ１０、Ｃ１１、Ｃ１２も含めることができる。トランザクションのグローバル・グループ内での調停コントローラからの結果の出力グループに、トランザクションＡ０、Ｂ０、Ｃ０、Ａ１０、Ｂ１０、Ｃ１０、Ａ０１、Ａ１１、Ｃ１１が含まれる。トランザクションＣ１１の後に、次のタイム・サイクルに、さまざまな機能ブロックのすべてのスレッドからのすべての入力で、すべてが新しいエポック・マーカーを示し、これによって、調停論理が、共用リソースからサービスされるトランザクションの第２グローバル・グループの形成を開始する。
【００５９】
調停コントローラは、ブランチ調停とスレッド調停の組合せを用いて例のトランザクションを処理する。図１１に似て、トランザクションは、トランザクションのグローバル・グループ内でスレッドの順序で、各スレッド内でブランチの順序でサービスされる。スレッド１３０２〜１３０６ごとにトランザクションのブランチグループを設け、すべてのスレッドについてトランザクションのスレッド・グループを設けることができる。図１１に示されているように、スレッド・エポックがロール・オーバーした時に、各スレッドからの最初のトランザクションが、エポック・マーカーを担持する。後続トランザクションは、すべてのブランチのすべてのスレッド１３０２〜１３０６がトランザクションの新しいグローバル・グループの開始の準備ができるまで、渡される。エポックがロール・オーバーした時に、ブランチとスレッドのクレジット・ビットが、図５の基本的な調停コントローラに関して説明したものに似た形で維持される。
【００６０】
図１４に、サービス品質優先順位レベルを有する各スレッドの関連を示す、０から２までの範囲のサービス品質優先順位レベルと０から３までの範囲のスレッドを示す調停ポリシの実施形態でのテーブルを示す。調停ポリシは、サービス品質要因に基づいて、機能ブロックからのトランザクションに重みを付けることができる。
【００６１】
図１４ａに、異なるサービス品質（ＱｏＳ）優先順位レベルが、異なるスレッドについて存在し得ることを示す。４つのスレッド１４０９のそれぞれが、３つのＱｏＳ優先順位レベル１４０７の１つに割り当てられている。レベル２  １４１１が最高の優先順位を有し、レベル０  １４１３が最低の優先順位を有する。
【００６２】
サービス品質（ＱｏＳ）は、本明細書では、所与の送出側の機能ブロックが、共用リソースに関する調停の時に経験する待ち時間プロパティと帯域幅プロパティを記述するのに使用することができる。より高いＱｏＳ優先順位レベルは、より短い待ち時間とより低ジッタの帯域幅サービスに対応する。
【００６３】
スレッド１４０９からのより高いＱｏＳ優先順位レベル１４０７のトランザクションは、必ず、スレッド１４０９からのより低いＱｏＳ優先順位レベル１４０７のトランザクションに勝つ。所与のＱｏＳ優先順位レベル１４０７内では、エポックベースの調停によって、トランザクションの相対重み付けが決定される。調停コントローラの下流の構成要素は、ｔｈｒｅａｄｄｅｍｏｔｅビット・ベクトルを使用することによって、下流からＱｏＳ優先順位レベルを動的に制御することもできる。たとえば、スレッド０  １４１５のｔｈｒｅａｄｄｅｍｏｔｅビット・ベクトルがセットされており、スレッド０  １４１５が、最低のＱｏＳ優先順位レベルに降格されている。これは、現在、スレッド３  １４１７と同等であり、スレッド２  １４２１とスレッド１  １４１９の下と考えることができる。この動的スレッド降格は、スレッドに与えられるサービス品質を、スレッドが使用している帯域幅の量対それに割り振られた帯域幅の量などのシステム条件に応じて動的に変更するのに有用である可能性がある。
【００６４】
要約すると、トランザクションは、まず、優先順位の現在のスレッドＱｏＳレベルによって順序付けられる。ＱｏＳレベル内で、トランザクションは、トランザクション・グループベースの方式を使用してサービスされ、トランザクションの各グループ内では、トランザクションは、最も以前のサービス機構を使用して順序付けられる。初めから、調停コントローラは、調停ポリシを実施して、スレッド・フロー制御（ｔｈｒｅａｄｂｕｓｙを介して）、ＱｏＳ優先順位レベルの動的調整（ｔｈｒｅａｄｄｅｍｏｔｅを介して）と、最小単位／ロック（ロック・ビットを介して）を考慮する。しかし、すべての調停コントローラが、これらの機能のすべてを有する必要があるのではない。調停コントローラは、これらの機能のサブセットを使用することができる。対応する機構を除去することによって、機能のサブセットだけを有する調停コントローラを導出することができる。
【００６５】
図１５に、調停論理を有する調停コントローラの実施形態のブロック図を示す。調停論理１５２０を有する調停コントローラ１５１８の実施形態は、スレッド・ビジー、ロック、サービス品質フィルタ１５８０、複数のブランチ調停論理ブロック１５８２、スレッド調停論理ブロック１５８４、ＡＮＤボックス１５８６を有することができる。
【００６６】
機能ブロックから供給されるトランザクションは、第１ブランチ１５０２または第２ブランチ１５０４を介して入ることができる。各ブランチから入ってくる有効ビットとエポック・マーカーが、ｔｈｒｅａｄｂｕｓｙ、ロック、ＱｏＳフィルタ１５８０でフィルタリングされる。ＱｏＳ、ｔｈｒｅａｄｄｅｍｏｔｅ、スレッド・ビジー、ロックのすべてが、論理のトップ・フィルタ・ブロック１５８０内で処理される。調停コントローラの下流の構成要素からその通信を受け取るスレッド・ビジーは、現在その時点でビジーである共用リソースに向けられたトランザクションをフィルタ・アウトすることができる。ロックは、トランザクションに付加された表示に基づき、フィルタ論理１５８０内で実施される。
【００６７】
ｔｈｒｅａｄｂｕｓｙ、ロック、ＱｏＳフィルタ１５８０は、スレッド・フロー制御を適用されたトランザクション（ｔｈｒｅａｄｂｕｓｙ）、スレッドに現在ロックされているブランチから来たのでないトランザクション、または最高レベルからのトランザクションが存在する時のより低いＱｏＳ優先順位レベルからのトランザクションをフィルタ・アウトする。結果のフィルタリングされた情報が、ブランチ調停論理ブロック１５８２に渡される。
【００６８】
さまざまなブランチからのトランザクションは、ブランチ調停論理１５８２を介して処理される。スレッドごとに１つのブランチ調停論理１５８２がある。これは、そのスレッドからのすべてのトランザクションを処理し、結果の有効およびエポック・マーカーをスレッド調停ユニット１５８４に渡す。ブランチ調停論理１５８２は、最も以前のサービス機構およびトランザクション・グループ化機構に基づいて、どのブランチが調停に勝つかを判定し、ブランチごとにＡＮＤボックス１５８６に入力を送る。
【００６９】
機能ブロックからのスレッドは、スレッド調停論理１５８４を介して処理される。スレッド調停論理ユニット１５８４は、すべてのブランチからの総合的に勝つスレッドを判定する。勝ったスレッドは、ＡＮＤボックス１５８６に送られる。ＡＮＤボックス１５８６は、勝ったスレッドの情報を、スレッドごとの勝ったブランチの情報と組み合わせて、総合的な勝者を与える。したがって、ＡＮＤボックス１５８６は、どのブランチからのどのスレッドが特定の調停に勝ち、グローバル・グループに最初に置かれるかを判定する。トランザクションの調停プロセスが継続される時に、最も以前のサービス要因、サービス品質、およびロック要因が調べられる。最終的に、共用リソースによってサービスされるトランザクションの最初のグローバル・グループが形成される。
【００７０】
したがって、スレッド調停ユニットが、勝つスレッドを判定するのと同時に、並列に、各ブランチ調停ユニットが、そのスレッドが勝者である場合に勝つブランチを見つけ出す。最終的な勝者が、ＡＮＤボックスでスレッド調停勝者とブランチ調停勝者の論理和によって選択されて、ブランチごとのｔｈｒｅａｄｓｅｌｅｃｔベクトルが生成される。
【００７１】
これが、１つの可能な実装であり、多数の他の実装が可能であることに留意されたい。
【００７２】
図１６に、スレッド調停論理の実施形態のブロック図を示す。スレッド調停論理１６８４は、エポック・ロールオーバーを有する調停の第１ブロック１６８５とエポック・ロールオーバーなしの調停の第２ブロック１６８６を有することができる。一方は、エポック・ロールオーバーなしの勝者の判定に使用され、他方は、エポック・ロールオーバーありの勝者の判定に使用される。エポック・ロールオーバーなしの勝者がない場合には、エポック・ロールオーバーからの結果が使用される。基本的な調停ブロックは、複数のスレッド要求のうちのどれが勝者になるかの判定の世話をし、スレッドのサービス順序のヒストリを与える。可能な基本調停ブロックの例の実装を、図１８ａ、１８ｂで説明する。
【００７３】
図１６を参照すると、各スレッドは、この論理に２つの入力を供給することができる。トランザクションが存在することを意味する有効入力と、エポックの初めビットがトランザクションに付加されているか否かを示すエポック入力である。有効入力は、エポック・ロールオーバーを有する調停論理１６８５に直接に接続され、出る有効ビットＯＲゲート１６８７にも接続される。スレッドのそれぞれは、Ｎｏｔ−Ｏｒゲート１６８８に入り、次にＡＮＤゲート１６８９に入って、ロールオーバーなしの調停論理１６８６で処理される。
【００７４】
論理１がＡＮＤゲート１６８９から出るのは、１）有効ビットがセットされている場合と、２）ａ）エポックビットが存在しないかｂ）クレジット・ビットがセットされているのいずれかの場合である。そうである場合に、この要求は、トランザクションのこの現在のグローバル・グループ化に含められる。共用リソースによってサービスされるトランザクションの現在のグローバル・グループに置かれる最初のトランザクションは、新しいエポック・マーカーを担持する。出てゆくエポック・マーカーは、単に、勝ったスレッドのエポック・マーカーとすることができる。また、このグループの他のすべてのトランザクションは、そのエポック・マーカーを除去され、したがって、このグループ全体が、サービスされるか、下流の別の調停ユニットによって、共用リソースによってサービスされるトランザクションのこの現在のグループ化の単一の開始点と終了点と考えられる。マルチスレッデッド・トランザクションでは、エポック・マーカーが、付けられたままにされる。上で述べたように、論理ブロック１６８５と１６８６の両方が、共用リソースによって処理されるトランザクションの最初のグループに置かれる勝者を判定するための入力を供給する。
【００７５】
図１７に、ブランチ調停論理の実施形態のブロック図を示す。ブランチ調停論理１７８２は、２つの調停のブロックを有し、一方はエポック・ロールオーバー付き１７８５、他方はエポック・ロールオーバーなしの調停１７８６である。１実施形態について、ブランチ調停ユニットは、出るエポック・マーカーが異なる形で生成される（エポックがロール・オーバーする時にセットされる）ことを除いてスレッド調停ユニットに非常に似たものとすることができる。したがって、調停ポリシは、ブランチ調停に適用される場合に非常に似た形でスレッド調停に適用することができる。したがって、調停ポリシは、共用リソースによってサービスされるトランザクションのグローバル・グループを形成する時に、複数ブランチ調停要因、マルチスレッド・リンク要因、最も以前のサービス要因、サービス品質要因、ロック要因、その他の要因を考慮に入れる。
【００７６】
図１８ａに、基本調停論理の実施形態のブロック図を示す。基本調停論理１８９０に、第１ブランチを他のブランチと比較する、行および列対サービス・ヒストリを格納するステータス・レジスタ１８９１を含めることができる。基本調停論理１８９０に、さらに、３入力ＡＮＤゲートなど、ブランチが調停プロセスに勝つかどうかを示すブランチのすべてからの信号を受け取る１つまたは複数の共通論理ゲート１８９２を含めることができる。調停論理に、さらに、ＮＡＮＤゲートなど、ステータス・レジスタ１８９１からの入力を受け取り、どのブランチが調停プロセスに勝つかを示す禁止信号を共通論理ゲート１８９２に供給する禁止論理ゲート１８９３を含めることができる。
【００７７】
基本調停論理１８９０に、ステータス・レジスタ１８９１内のさまざまなステータス・ビットが含まれる。ステータス・ビットのそれぞれは、状態を保持し、これは、最も以前にサービスされたトランザクションを判定するのを助けるために、要求するブランチの間の相対エージを示す。ステータス・レジスタ１８９１のそれぞれは、インバータを介してＮＡＮＤゲート１８９３の１入力に接続される。ＮＡＮＤゲート１８９３の他の入力は、有効なトランザクションが存在するかどうかの入力を得る。その間で、勝者が判定される。
【００７８】
図１８ａに、３つのリクエスタを有する例が示されているが、２つ以上のリクエスタを有する同一の方式が可能である。この実装のタイミングは、アルゴリズムの複雑さが変化しないので、リクエスタの数が増える時に非常にぐあいよくスケーリングされる。トランザクション信号のより多いファンアウトと最後のＡＮＤゲートのより多いファンインだけが必要である。
【００７９】
図１８ｂに、第１ブランチをステータス・レジスタに格納された他のブランチと比較する行および列対サービス・ヒストリの実施形態の表を示す。この例では、Ｂｒ３〜Ｂｒ０などの４つのブランチが、調停論理にトランザクションを供給する。Ｂｒ３は、最も古いトランザクションまたは、言い換えれば、最も以前にサービスされたトランザクションを有するブランチである。Ｂｒ０は、最も若いトランザクション、言い換えれば、最も最近にサービスされたトランザクションを有するブランチである。
【００８０】
基本調停論理１８９０は、リクエスタの間の相対サービス順序を追跡し、勝ったリクエスタに、サービス順序を与える１ホット・ベクトルを送る。サービス順序状態は、リクエスタ・トランザクションごとに１つの行および列に配置される。各行／列交差点（テーブル・セル）の状態のビットが、行リクエスタが列リクエスタより最近にサービスを有したかどうかを記憶する。このテーブルの左下の三角形１８９４は、右上１８９５の逆であり、これらの状態のビットは、単に、右上の三角形１８９５の対応する状態のビットの反転版を使用することによって導出される。対角線１８９６は空である。リクエスタのビット・ベクトルは、縦に供給される。各テーブル・セルで、サービス順序ビットは、別のアクティブ・リクエスタより最近にサービスされたリクエスタを抑止する。ある行のすべてのテーブル・セル結果の論理和を一緒にとった時に、どのテーブル・セルでも抑止されていない正確に１つがあり、これが、最も以前にサービスされたリクエスタである。勝者が確立されたならば、対応する列および行のテーブル・セル状態ビットを更新して、対応するリクエスタを最も最近にサービスされたものとしてマークする。
【００８１】
ｔｈｒｅａｄｂｕｓｙフロー制御を有するマルチスレッデッド・アービタでは、個々の要求のエージを追跡する機構を使用して、同等に資格がある要求の間の引き分けを解決しなければならない。ｔｈｒｅａｄｂｕｓｙフロー制御は、いつでも適用することができるので、ラウンドロビン調停などの調停機構は、特定のスレッドが最高優先順位トランザクションである時に、そのスレッドが実質的に常にｔｈｒｅａｄｂｕｓｙを適用されるという反復パターンになり、そのトランザクションに関する前向きの進行(forward progress)の欠如につながる可能性がある。最も以前のサービス調停機構は、この問題をこうむらない。というのは、最も以前にサービスされたリクエスタが、実際にサービスされるまで、最高優先順位トランザクションのままになるからである。
【００８２】
図１９に、マルチスレッド、ロック、優先順位、サービス品質の特徴を有する調停コントローラの実施形態のブロック図を示す。図１９の上側部分に、ｔｈｒｅａｄｂｕｓｙ、ロック、ＱｏＳフィルタ・ゲート１９８０の可能な実装を詳細に示す。同一スレッドの別のブランチに対するロックまたはスレッドに対するｔｈｒｅａｄｂｕｓｙは、入ってくる要求をマスク・アウトする。同様に、より高い優先順位のＱｏＳレベルの要求は、より低いＱｏＳ優先順位のスレッドからの要求をマスク・アウトする。
【００８３】
一実施形態で、複雑な調停に、次の入力の組合せを含めることができる：各ブランチからの有効またはｖａｌｉｄｖｅｃｔｏｒ、ｔｈｒｅａｄｂｕｓｙまたはスレッド選択、スレッド降格、さらに以前の調停判断に依存する調停ヒストリと次の追加入力信号：エポック・マーカーとロック調停。構成に応じて、調停コントローラの調停ユニットに、これらの入力信号のサブセットだけを含めることができる。調停は、３つのティアですなわち、ＱｏＳグループによって、エポックによって、最後に最終サービス時刻（エージ）によって発生する可能性がある。リクエスタの間の重み付き公平さを支配する２タイプのエポックがあり、ブランチ・エポックは、異なる調停コントローラ入力ブランチからの要求に関してスレッドごとに使用され、スレッド・エポックは、異なる出てゆくスレッドへのすべての要求マッピングに使用される。さらに、すべての出てゆくスレッドを、特定のブランチにロックすることができ、その場合に、その出てゆくスレッドへの他の入ってくるブランチマッピングは、調停について考慮されない。ロック調停機構は、要求インターリーブ、最小単位、および相互排他（ＲｅａｄＥｘ）実施の世話に使用される。
【００８４】
調停アルゴリズムの例を、次の擬似コードに要約することができる。
ブランチクレジットをセットされている入ってくる要求のエポック・ビットを取り消す
ｔｈｒｅａｄｂｕｓｙまたはｔｈｒｅａｄｓｅｌｅｃｔをセットされている出てゆくスレッドへの要求をマスクする
ｉｆ  （降格されていない優先順位スレッドに要求がある）  ｛
降格されていない優先順位スレッド上でないすべての要求をマスクする
｝
ｅｌｓｅ  ｉｆ  （降格されていない割り振られたＢＷスレッドに要求がある）  ｛
降格されていない割り振られたＢＷスレッド上でないすべての要求をマスクする
｝
ｉｆ  （要求が残っている）  ｛
ｆｏｒ  ｅａｃｈ  （出てゆくスレッド）  ｛／／スレッド内調停
ｉｆ  （この出てゆくスレッドがブランチスレッドにロックされている）  ｛
ｉｆ  （そのブランチスレッドからの要求がある）  ｛
これが、この出てゆくスレッドに関する勝者である
｝
ｅｌｓｅ｛
この出てゆくスレッドに関する勝者はない
｝
｝
ｅｌｓｅ  ｉｆ  （この出てゆくスレッドに関する要求がある）  ｛
ｉｆ  （エポック・ビットをセットされていない要求がない）  ｛
ブランチ・エポックをロール・オーバーする
この出てゆくスレッドについて出てゆくエポック・ビットをセットする
｝
ｅｌｓｅ  ｛
同一の出てゆくスレッドに関するエポック・ビットをセットされた要求をマスクする
この出てゆくスレッドの出てゆくエポック・ビットをアンセットする
｛
この出てゆくスレッドに関して、最も以前にサービスされたものを勝者として選択する
｝
｝
／／  スレッド間調停を行う
スレッド・クレジットをセットされている出てゆくスレッド勝者の出てゆくエポック・ビットを取り消す
ｉｆ  （出てゆくエポック・ビットをセットされていない出てゆくスレッド勝者がない）  ｛
スレッド・エポックをロール・オーバーする
出てゆくエポック・ビットをセットする
｝
ｅｌｓｅ  ｛
出てゆくエポック・ビットをセットされている出てゆくスレッド勝者をマスクする
出てゆくエポック・ビットをアンセットする
｝
最も以前にサービスされたものを勝者として選択する
｝
ｅｌｓｅ  ｛
勝者なし
｝
【００８５】
ある要求が勝者になったならば、次の調停コントローラ内部状態を更新する。
・サービス順序を、スレッド間調停とブランチ（スレッド内）調停の両方について更新する。
・勝者が、ブランチ・エポックやスレッド・エポックをロール・オーバーさせた場合に、勝たなかったブランチと出てゆくスレッドのブランチやスレッドのクレジット・ビットをセットする。
・勝者が、ブランチ・エポックとスレッド・エポックをロール・オーバーさせなかったが、入ってくる要求がエポック・ビットをセットされていた場合に、そのブランチおよび／またはスレッドのブランチとスレッドのクレジット・ビットをアンセットする。
・勝者がロック調停をアサートされていた場合に、出てゆくスレッドのロック調停
【００８６】
図１に戻ると、図１に、説明した技法を適用できるネットワーク環境１００が示されている。ネットワーク環境１００は、Ｓ個のサーバ１０４−１から１０４−ＳとＣ個のクライアント１０８−１から１０８−Ｃを接続するネットワーク１０２を有する。図からわかるように、Ｓ個のサーバ１０４−１から１０４−ＳとＣ個のクライアント１０８−１から１０８−Ｃの形の複数のシステムが、ネットワーク１０２を介して互いに接続され、ネットワーク１０２は、たとえば、オンチップ通信ネットワークとすることができる。その代わりに、ネットワーク１０２を、チップ間通信、光ネットワーク、インターネット、ローカル・エリア・ネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、衛星リンク、ファイバ・ネットワーク、ケーブル・ネットワーク、あるいはこれらおよび／または他のネットワークの組合せのうちの１つまたは複数とするか、これを含めることができる。サーバは、たとえば、チップ上のマスタ・デバイス；メモリ；マイクロプロセッサ、通信インターフェースなどのインテレクチャル・プロパティ・コア；ディスク・ストレージ・システム；および／またはコンピューティング・リソースを表すことができる。同様に、クライアントは、コンピューティング機能、ストレージ機能、およびビューイング機能を有することができる。本明細書に記載の方法と装置は、本質的に、ＬＡＮ、ＷＡＮ、システム・バス、オンチップ・バスなど、ローカルまたリモートのいずれであれ、すべてのタイプの通信手段または通信デバイスに適用することができる。さらに、用語クライアントおよびサーバの使用が、どれが通信を開始し（クライアント）、どれが応答する（サーバ）かを指定する際の明瞭さのためであることを諒解されたい。階層は、明示的に述べられない限り暗示されない。両方の機構を、単一の通信デバイス内とすることができ、その場合に、クライアント−サーバ関係とサーバ−クライアント関係を、ピアツーピアとみなすことができる。したがって、１０８−１や１０４−Ｓなどの２つのデバイスが、通信を開始することと通信に応答することの両方ができる場合に、これらの通信を、ピアツーピアとみなすことができる。同様に、１０４−１と１０４−Ｓの間や１０８−１と１０８−Ｃの間の通信は、そのような通信デバイスが通信を開始することと通信に応答することの両方ができる場合に、ピアツーピアとみなすことができる。
【００８７】
図２に戻ると、図２には、図１に示されたクライアントおよび／またはサーバのいずれかを表すことができるシステム２００がブロック図形式で示されている。このブロック図は、高水準の概念表現であり、さまざまな形で、さまざまなアーキテクチャによって実施することができる。バス・システム２０２が、中央処理装置（ＣＰＵ）２０４、読取専用メモリ（ＲＯＭ）２０６、ランダム・アクセス・メモリ（ＲＡＭ）２０８、ストレージ２１０、ディスプレイ２２０、オーディオ２２２、キーボード２２４、ポインタ２２６、さまざまな入出力デバイス２２８、通信２３０を相互接続する。バス・システム２０２は、たとえば、オンチップ・バス、システム・バス、Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ（ＰＣＩ）、Ａｄｖａｎｃｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ（ＡＧＰ）、Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ（ＳＣＳＩ）、Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ（ＩＥＥＥ）標準規格１３９４（ＦｉｒｅＷｉｒｅ）、Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ（ＵＳＢ）などのバスのうちの１つまたは複数とすることができる。ＣＰＵ  ２０４は、単一、複数、または分散コンピューティング・リソースとすることができる。ストレージ２１０は、コンパクト・ディスク（ＣＤ）、ディジタル多用途ディスク（ＤＶＤ）、ハード・ディスク（ＨＤ）、光ディスク、テープ、フラッシュ、メモリ・スティック、ビデオ・レコーダなどとすることができる。ディスプレイ２２０は、たとえば、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プロジェクション・システム、テレビジョン（ＴＶ）などとすることができる。システムの実際の実装に応じて、このシステムに、このブロック図の構成要素の一部、すべて、より多く、または再配置を含めることができることに留意されたい。たとえば、集積回路上のオンチップ通信システムは、ディスプレイ２２０、キーボード２２４、ポインタ２２６を欠く場合がある。もう１つの例を、たとえば伝統的なキーボードを欠く無線ハンドヘルド・デバイスからなることができるシン・クライアントとすることができる。したがって、図２のシステムに対する多数の変形形態が可能である。
【００８８】
調停ポリシは、調停プロパティに影響せずに物理的分散を可能にし、間に入るレジスタ点の有無を問わずにカスケード可能である。調停ポリシは、すべてのブランチが必ず準備のできた要求を有するか否かに無関係に実施することができる。トランザクションの可変サイズ・ローカル・グループを可能にするエポック・マーキングは、帯域幅混合を制御するのに使用することができる。調停コントローラは、マルチスレッディング機能やサービス品質機能を組み込むことのできるオンチップ・ネットワーク用の物理的に分散可能な調停機構とすることができる。調停コントローラは、調停を物理的にチップ上で分散し、高価値サービス品質機能を組み込むことができると同時に、待ち時間と論理ゲートにおける低コストを維持する。調停コントローラは、間に入るパイプラインステージを有するおよび／または有しないカスケード接続された調停ユニットを有することができる。調停コントローラは、サービス品質機能を有する分散短待ち時間調停を実現することができる。
【００８９】
一実施形態で、機械可読媒体は、本明細書に記載の装置および／または方法を表す情報を格納することができる。機械可読媒体に、機械（たとえばコンピュータ）によって可読の形で情報を与える（たとえば、格納し、かつ／または伝送する）すべての機構が含まれる。たとえば、機械可読媒体に、読取専用メモリ（ＲＯＭ）；ランダム・アクセス・メモリ（ＲＡＭ）；磁気ディスク記憶媒体；光記憶媒体；フラッシュ・メモリ・デバイス；ＤＶＤ、電気、光、音響、または他の形の伝搬される信号（たとえば、搬送波、赤外線信号、ディジタル信号、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュ、磁気カードまたは光カード、あるいは電子命令を格納するのに適するすべてのタイプの媒体が含まれる。より低速の媒体は、より高速でより実用的な媒体にキャッシングすることができる。機械可読媒体に格納された装置および／または方法を表す情報は、本明細書に記載の装置および／または方法を作成する過程で使用することができる。たとえば、この装置および／または方法を表す情報を、一例で、ＩＰジェネレータ内のソフト命令に含めるか、この情報を格納する類似する機械可読媒体に含めることができる。
【００９０】
この説明のいくつかの部分は、たとえばコンピュータ・メモリ内のデータ・ビットに対する動作のアルゴリズムや記号表現に関して提示することができる。これらのアルゴリズム的記述と表現は、当業者が、その成果の実質を他の当業者に最も効率的に伝えるのに使用する手段である。アルゴリズムは、本明細書で、および一般に、所望の結果につながる動作の自己完結的シーケンスと考えられる。この動作は、物理的量の物理的操作を必要とする動作である。通常、必要ではないが、これらの量は、格納、転送、組合せ、比較、その他の操作をうけることができる、電気信号、磁気信号、または光信号の形をとる。時々、主に一般的な使用のために、これらの信号をビット、値、要素、記号、文字、項、数、または類似物と称することが便利であることがわかっている。
【００９１】
しかし、これらおよび類似する用語のすべてが、適当な物理的量に関連付けられねばならず、これらの量に適用される単位便利なラベルであることを念頭におく必要がある。他の形で特に述べられない限り、上の議論から明白であるように、本明細書全体を通じて、「処理」または「計算」または「判定」または「表示」または類似物などの用語を使用する議論が、コンピュータ・システムのレジスタやメモリ内の物理的（電子）量として表されたデータをコンピュータ・メモリまたはレジスタあるいは他のそのような情報の格納装置、伝送装置、もしくは表示装置内の物理的量として同様に表される他のデータに操作し、変換するコンピュータ・システムまたは類似する電子コンピューティング・デバイスの動作および処理を指すことを諒解されたい。
【００９２】
本明細書の動作を実行する装置は、本発明を実施することができる。この装置は、必要な目的のために特別に構成することができ、あるいは、コンピュータに格納されたコンピュータ・プログラムによって選択的にアクティブ化または再構成される汎用コンピュータを含めることができる。そのようなコンピュータ・プログラムは、フロッピ・ディスク、ハード・ディスク、光ディスク、コンパクト・ディスク読取専用メモリ（ＣＤ−ＲＯＭ）、ディジタル多用途ディスク（ＤＶＤ）、光磁気ディスクを含むすべてのタイプのディスク、読取専用メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、電気的プログラマブル読取専用メモリ（ＥＰＲＯＭ）、電気的消去可能プログラマブル読取専用メモリ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、磁気カード、または光カードなど、あるいは、コンピュータにローカルにまたはコンピュータにリモートにのいずれかで電子命令を格納するのに適するすべてのタイプの媒体を含むがこれに制限されないコンピュータ可読記憶媒体に格納することができる。
【００９３】
本明細書で提示された詳細は、特定のコンピュータまたは他の装置に固有に関係しない。さまざまな汎用システムを、本明細書の教示に従うプログラムと共に使用することができ、あるいは、必要な方法を実行するためにより特殊化された装置を構成することがより便利であることがわかる場合がある。たとえば、本発明による方法のどれであっても、ハードワイヤード回路で、汎用プロセッサをプログラムすることによって、またはハードウェアとソフトウェアの組合せによって、実現することができる。当業者は、ハンドヘルド・デバイス、マルチプロセッサ・システム、マイクロプロセッサベースまたはプログラマブルなコンシューマ・エレクトロニクス、ディジタル信号処理（ＤＳＰ）デバイス、セット・トップ・ボックス、ネットワークＰＣ、ミニコンピュータ、メインフレーム・コンピュータ、それらの類似物を含む、記載されたもの以外のコンピュータ・システム構成を用いて本発明を実践できることを即座に諒解するであろう。本発明は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境で実践することもできる。この通信ネットワークは、サイズによって制限されず、たとえば、オンチップ通信からインターネットなどのＷＡＮに及ぶものとすることができる。
【００９４】
本発明のある特定の実施形態を示したが、本発明は、これらの実施形態に制限されない。たとえば、当業者は、複数の異なる回路レイアウトや電子構成要素を使用して、調停回路を作ることができることを認めるであろう。トランザクションのグループ内の最後の要求をマークすることも可能である。調停ユニットの正確な実装は、エポックの終りマーカーが使用される時に異なるが、トランザクションのグループに基づく調停の全体的な原理は、同一のままである。本発明は、本明細書に記載の特定の実施形態によって制限されるのではなく、請求項の範囲のみによって制限される。
【図面の簡単な説明】
【００９５】
【図１】本発明の方法と装置を実施できるネットワーク環境の実施形態を示すブロック図である。
【図２】本発明の方法と装置を実施できるコンピュータ・システムの実施形態を示すブロック図である。
【図３】複数の機能ブロックの間で調停ポリシを実施する調停コントローラの実施形態を示すブロック図である。
【図４】共用リンクを有する複数の機能ブロックの間で調停ポリシを実施する調停コントローラの実施形態を示すブロック図である。
【図５】複数の機能ブロックから１つまたは複数のトランザクションを受け取る複数の入力を有する調停コントローラの実施形態を示すブロック図である。
【図６】機能ブロックから異なるサイズのグループのトランザクションを受け取る調停コントローラの実施形態を示すブロック図である。
【図７】調停ポリシがトランザクションのシーケンスに適用される時の、異なるブランチから来るトランザクションの例のシーケンスおよび結果のトランザクションのグローバル・グループ化を示す図である。
【図８】調停ロック要因を有する調停ポリシがトランザクションのシーケンスに適用される時の、異なるブランチから来るトランザクションの例のシーケンスおよび結果のトランザクションのグローバル・グループ化を示す図である。
【図９】共用リソースによってサービスされるトランザクションのグループを形成する時に、両方が出力での実質的に同一の統計的結果を受け取る調停コントローラにトランザクションを供給する機能ブロックの２つの異なるトポロジを示すブロック図である。
【図１０】同一の機能ブロックから３つの異なるスレッド・キューを受け取る調停コントローラの実施形態とのマルチスレッデッド・リンクを示すブロック図である。
【図１１】さまざまなブランチではなくさまざまなスレッドからのトランザクションの例のシーケンスと、調停ポリシがトランザクションのシーケンスに適用される時のトランザクションの結果のグローバル・グループ化を示す図である。
【図１２】その入力で、ブランチ０を介する第１の機能ブロックからのマルチスレッデッド・トランザクションおよびブランチ１を介する第２の機能ブロックからのマルチスレッデッド・トランザクションを受け取る調停コントローラの実施形態を示すブロック図である。
【図１３】さまざまな機能ブロック内のスレッドからのさまざまなトランザクションの例のシーケンスと、調停ポリシがトランザクションのシーケンスに適用された時のトランザクションの結果のグローバル・グループ化を示す図である。
【図１４】サービス品質優先順位レベルを示す、調停ポリシの実施形態でのテーブルを示す図である。
【図１５】調停論理を有する調停コントローラの実施形態を示すブロック図である。
【図１６】スレッド調停論理の実施形態を示すブロック図である。
【図１７】ブランチ調停論理の実施形態を示すブロック図である。
【図１８ａ】基本調停論理の実施形態を示すブロック図である。
【図１８ｂ】第１ブランチをステータス・レジスタに格納された他のブランチと比較する行および列対サービス・ヒストリの実施形態を示す表である。
【図１９】マルチスレッド、ロック、優先順位、およびサービス品質の特徴を有する調停コントローラの実施形態を示すブロック図である。
【図１】
2006523895.tif 000003
【図２】
2006523895.tif 000004
【図３】
2006523895.tif 000005
【図４】
2006523895.tif 000006
【図５】
2006523895.tif 000007
【図６】
2006523895.tif 000008
【図７】
2006523895.tif 000009
【図８】
2006523895.tif 000010
【図９】
2006523895.tif 000011
【図１０】
2006523895.tif 000012
【図１１】
2006523895.tif 000013
【図１２】
2006523895.tif 000014
【図１３】
2006523895.tif 000015
【図１４】
2006523895.tif 000016
【図１５】
2006523895.tif 000017
【図１６】
2006523895.tif 000018
【図１７】
2006523895.tif 000019
【図１８ａ】
2006523895.tif 000020
【図１８ｂ】
2006523895.tif 000021
【図１９】
2006523895.tif 000022
【国際調査報告】
2006523895.tif 000023
2006523895.tif 000024
2006523895.tif 000025