(57)【要約】【課題】異なる複数の優先度レベルのトランザクション要求をサポートする集積回路内における処理リソース割振りを実現すること。【解決手段】集積回路２は、複数のトランザクションソース６、８、１０、１２、１４、１６、１８および２０を含み、トランザクションソースは、関連付けられたＰＯＣ／ＰＯＳ３０および３４を各々が有する共有キャッシュ２２および２４とリングベースの相互接続３０を介して通信し、要求サービング回路として働く。要求サービング回路は、異なる複数のトランザクションに割り振ることができる処理リソース３６のセットを有する。これらの処理リソースは、動的に、または静的に割り振ることができる。静的割振りは、選択アルゴリズムに依存して行うことができる。この選択アルゴリズムは、入力変数のうちの１つとしてサービス品質値／優先度レベルを使用することができる。【選択図】図１
2013037681.tif 000002
【特許請求の範囲】
【請求項１】
トランザクション要求を発生させるように構成された複数のトランザクションソースと、
処理リソースのセットを使用して、前記トランザクション要求を処理するように構成された要求サービング回路と
を備える集積回路であって、
前記トランザクション要求が、それぞれ、サービス品質値の範囲内の関連付けられたサービス品質値を有し、
前記要求サービング回路が、サービス品質マッピング構成にしたがって、サービス品質値の前記範囲の異なる複数の下位範囲内のサービス品質値を、最下位レベルから最上位レベルに及ぶ優先度レベルの階層内の異なる複数の優先度レベルにマッピングするように構成され、
前記要求サービング回路が、前記階層の各レベル内においてトランザクション要求をサービスするように同時に割り振ることができる最大数の前記処理リソースを提供するように構成される、
集積回路。
【請求項２】
前記サービス品質マッピング構成が、前記サービス品質値のうちの少なくともいくつかについてプラグラム可能である、請求項１に記載の集積回路。
【請求項３】
前記階層の各レベル内における前記最大数が、前記階層のうちの少なくともいくつかのレベルに対してプラグラム可能なパラメータである、請求項１に記載の集積回路。
【請求項４】
前記最大数が、優先度の前記階層内において単調に増加する、請求項１に記載の集積回路。
【請求項５】
前記階層の所与のレベル内のトランザクション要求に、前記処理リソースのうちの１つを割り振るときは、次いで、前記階層内において前記所与のレベルおよび任意の下位レベルに割り振られる際に前記要求サービング回路によって追跡されたリソースの数がインクリメントされる、請求項１に記載の集積回路。
【請求項６】
前記階層の所与のレベル内におけるトランザクション要求に前記処理リソースのうちの１つを割り振ることを中止したときは、次いで、前記階層内において前記所与のレベルおよび任意の下位レベルに割り振られる際に前記要求サービング回路によって追跡されたリソースの数がデクリメントされる、請求項１に記載の集積回路。
【請求項７】
前記階層の所与のレベル内のトランザクション要求に、前記処理リソースのうちの１つを割り振るときは、次いで、前記階層において前記所与のレベルに割り振られる際に前記要求サービング回路によって追跡されたリソースの数だけがインクリメントされる、請求項１に記載の集積回路。
【請求項８】
前記階層の所与のレベル内におけるトランザクション要求に前記処理リソースのうちの１つを割り振ることを中止したときは、次いで、前記階層において前記所与のレベルに割り振られる際に前記要求サービング回路によって追跡されたリソースの数だけがデクリメントされる、請求項１に記載の集積回路。
【請求項９】
前記要求サービング回路が、選択アルゴリズムを使用して、前記トランザクション要求からの前記処理リソースの動的割振りと前記トランザクション要求からの前記処理リソースの静的割振りとを切り替えるように構成される、請求項１に記載の集積回路。
【請求項１０】
前記選択アルゴリズムが、前記複数のトランザクション要求の各々に関連付けられたそれぞれ対応する優先度レベルに依存する、請求項８に記載の集積回路。
【請求項１１】
前記要求サービング回路が、
前記複数のトランザクションソースのうちの要求トランザクションソースから、前記トランザクション要求に関連付けられたトランザクションを処理する際に前記要求トランザクションソースによって使用されるために、リソースの前記セットのうちの１つを割り振るための少なくとも暗黙の要求(implicit request)を受信し、
処理リソースの前記セットのうちの１つが、前記要求トランザクションソースによって使用されるために利用可能であるかどうかを判断し、
処理リソースの前記セットのうちの１つが、前記要求トランザクションソースによって使用されるために利用可能である場合には、前記トランザクションを処理する際に使用するために、処理リソースのうちの前記１つまたは前記セットを前記要求トランザクションソースに割り振り、
処理リソースの前記セットのうち、前記要求トランザクションソースによって使用されるために利用可能であるものが１つもない場合、前記要求トランザクションソースにリトライ応答を送信する
ように構成され、
前記要求トランザクションソースが、
前記要求サービング回路から前記リトライ応答を受信し、
前記トランザクション要求に関連付けられた前記トランザクションを処理する前に、前記要求サービング回路から続行応答が受信されるのを待つことによって、前記リトライ応答に応答する
ように構成され、
前記要求サービング回路が、
前記複数のトランザクションソースのうち続行応答を待っているトランザクションソースを追跡し、
処理リソースの前記セットのうちの１つを、続行応答を待っている前記トランザクションソースのうちの１つに割り振り、
続行応答を待っている前記トランザクションソースのうちの前記１つに、続行応答を送信する
ように構成される、請求項１に記載の集積回路。
【請求項１２】
前記選択アルゴリズムが、優先度レベルを共有する静的割振りを待っているトランザクション要求間でラウンドロビン選択を使用する、請求項９に記載の集積回路。
【請求項１３】
前記選択アルゴリズムが、異なる複数の優先度レベルを有する静的割振りを待っている前記トランザクション要求間から選択する、請求項９に記載の集積回路。
【請求項１４】
異なる複数の優先度レベルを有する静的割振りを待っている前記トランザクション要求間の前記選択が、スターベーション率に依存する、請求項１３に記載の集積回路。
【請求項１５】
前記スターベーション率が、プラグラム可能である、請求項１４に記載の集積回路。
【請求項１６】
前記複数のトランザクションソースが、各々が複数のプロセッサコアを備える複数のプロセッサクラスタを備える、請求項１に記載の集積回路。
【請求項１７】
前記要求サービング回路が、共有キャッシュメモリを備える、請求項１に記載の集積回路。
【請求項１８】
各々が前記複数のトランザクション要求間の割振りのために処理リソースのセットを有する複数の前記要求サービング回路を備える、請求項１に記載の集積回路。
【請求項１９】
処理リソースの前記セットが、前記トランザクション要求を受信するために利用可能な処理スロットのセットを備える、請求項１に記載の集積回路。
【請求項２０】
前記トランザクションソースと前記要求サービング回路との間で前記トランザクション要求を通信するように構成された相互接続回路をさらに備える、請求項１に記載の集積回路。
【請求項２１】
前記相互接続回路が、リングベースの相互接続回路である、請求項２０に記載の集積回路。
【請求項２２】
トランザクション要求を発生させるための複数のトランザクションソース手段と、
処理リソース手段のセットを使用して前記トランザクション要求を処理するための要求サービング手段と
を備える集積回路であって、
前記トランザクション要求が、それぞれ、サービス品質値の範囲内の関連付けられたサービス品質値を有し、
前記要求サービング手段が、プラグラム可能なサービス品質マッピング構成にしたがって、サービス品質値の前記範囲の異なる複数の下位範囲内のサービス品質値を、最下位レベルから最上位レベルに及ぶ優先度レベルの階層内の異なる複数の優先度レベルマッピングするように構成され、
前記要求サービング手段が、前記階層の各レベル内においてトランザクション要求をサービスするように、同時に割り振ることができる最大数の前記処理リソース手段を提供するように構成される、
集積回路。
【請求項２３】
複数のトランザクションソースを使用して、トランザクション要求を発生させるステップと、
処理リソースのセットを使用して、前記トランザクション要求を処理するステップと
を含む集積回路内で通信する方法であって、
前記トランザクション要求が、それぞれ、サービス品質値の範囲内の関連付けられたサービス品質値を有し、
プラグラム可能なサービス品質マッピング構成にしたがって、サービス品質値の前記範囲の異なる複数の下位範囲内のサービス品質値を、最下位レベルから最上位レベルに及ぶ優先度レベルの階層内の異なる複数の優先度レベルにマッピングするステップと、
前記階層の各レベル内においてトランザクション要求をサービスするように同時に割り振ることができる最大数の前記処理リソース手段を提供するステップと
をさらに含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路の分野に関する。より詳細には、本発明は、異なる複数の優先度レベルを有することができるトランザクション要求の処理に対するリソース割振りに関する。
【背景技術】
【０００２】
１つまたは複数のトランザクションスレイブのような要求サービング回路に相互接続回路を介して結合される、トランザクションマスタのような複数のトランザクションソースを有する集積回路が提供されることが知られている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
個別の優先度レベルのいずれにも割り振りの処理リソースが少なすぎないように、または多すぎないように、異なる複数の優先度レベルに割り振られた処理リソースのバランスをとることが望ましい。
【課題を解決するための手段】
【０００４】
１つの態様を鑑みると、本発明は、トランザクション要求を発生させるように構成された複数のトランザクションソースと、処理リソースのセットを使用して、前記トランザクション要求を処理するように構成された要求サービング回路とを備える集積回路を提供し、ここで前記トランザクション要求は各々サービス品質価値の範囲内で想定されるサービス品質価値を持ち、前記要求サービング回路が、サービス品質マッピング構成にしたがって、サービス品質値の前記範囲の異なる複数の下位範囲内のサービス品質値を、最下位レベルから最上位レベルに及ぶ優先度レベルの階層内の異なる複数の優先度レベルにマッピングするように構成され、前記要求サービング回路が、前記階層の各レベル内においてトランザクション要求をサービスするように同時に割り振ることができる最大数の前記処理リソースを提供するように構成される、集積回路を提供する。
【０００５】
本技法は、トランザクション要求に関連付けられたサービス品質値を利用し、優先度レベルの階層内の下位優先度レベルにこれをマッピングする。これらの優先度レベルの各々は、階層のそのレベル内においてトランザクション要求をサービスするように同時に割り振ることができる最大数の処理リソースである。したがって、サービス品質値の下位範囲は、優先度レベルにマッピングされ、次いで、各優先度レベルに割り振られたリソースの最大数を制御することができる。
【０００６】
集積回路の改善された適合性は、サービス品質マッピングおよび／または階層の各レベル内における最大数の一方または両方がプラグラム可能であるときに達成することができる。
【０００７】
いくつかの実施形態では、階層の各レベルに割り振り可能なリソースの最大数は、優先度の階層とともに単調に増加する。したがって、上位優先度レベルは、潜在的に利用可能な処理リソースをより多く有することになる。
【０００８】
階層の所与のレベル内のトランザクション要求に割り振られた処理リソースは、所与のレベル内のトランザクション要求に処理リソースのうちの１つを割り振ると、次いで、カウント値がインクリメントされるように、および、その所与のレベル内のトランザクション要求に処理リソースを割り振ることを中止すると、次いで、カウント値がデクリメントされるように、追跡することができる。これらのカウント値は、階層内の異なる複数のレベルに割り振られた処理リソース間のバランスを追跡するために使用することができる。
【０００９】
カウントは、所与の優先度レベルに関連付けられたカウント値がインクリメント／デクリメントされる場合、互いから独立してまたは交互に、個別にインクリメント／デクリメントすることができ、次いで、すべての下位優先度レベルのカウント値は、同様にインクリメント／デクリメントされる。この手法は、処理リソースが、上位優先度レベルよりも先に下位優先度レベルに割り振られるのを回避するのに役立つ。
【００１０】
要求サービング回路は、処理リソースの動的割振りと静的割振りとを切り替えるように形成することができる。静的割振りは、選択アルゴリズムに基づいて実行することができる。いくつかの実施形態では、選択アルゴリズムは、トランザクション要求の各々に関連づけられたそれぞれ対応する優先度レベルに依存し得る。
【００１１】
トランザクションソースと要求サービング回路との間で交換される要求およびメッセージは、様々な形態をとることができる。いくつかの実施形態では、前記複数のトランザクションソースのうちの要求トランザクションソースから、前記トランザクション要求に関連付けられたトランザクションを処理する際に前記要求トランザクションソースによって使用されるために、リソースの前記セットのうちの１つを割り振るための少なくとも暗黙の要求(implicit request)を受信し、処理リソースの前記セットのうちの１つが、前記要求トランザクションソースによって使用されるために利用可能であるかどうかを判断し、処理リソースの前記セットのうちの１つが、前記要求トランザクションソースによって使用されるために利用可能である場合には、前記トランザクションを処理する際に使用するために、処理リソースのうちの前記１つまたは前記セットを前記要求トランザクションソースに割り振り、処理リソースの前記セットのうち、前記要求トランザクションソースによって使用されるために利用可能であるものが１つもない場合、前記要求トランザクションソースにリトライ応答を送信するように前記要求サービング回路が構成され、前記要求サービング回路から前記リトライ応答を受信し、前記トランザクション要求に関連付けられた前記トランザクションを処理する前に、前記要求サービング回路から続行応答が受信されるのを待つことによって、前記リトライ応答に応答するように前記要求トランザクションソースが構成され、前記複数のトランザクションソースのうち続行応答を待っているトランザクションソースを追跡し、処理リソースの前記セットのうちの１つを、続行応答を待っている前記トランザクションソースのうちの１つに割り振り、続行応答を待っている前記トランザクションソースのうちの前記１つに、続行応答を送信するように前記要求サービング回路が構成される。
【００１２】
静的割振り内で使用される選択アルゴリズムは、優先度レベルを共有する静的割振りを待っているトランザクション要求間でラウンドロビン選択を採用することができる。これは、実行が単純であり、処理リソース割振りを永続的に欠く個別のトランザクション要求がないことを保証する予想可能な挙動を提供する。
【００１３】
また、静的割振りにおいて使用される選択アルゴリズムは、異なる複数の優先度レベルを有する静的割振りを待っているトランザクション要求から選択することができる。上位優先度レベルトランザクションが常に選択されるわけではない。スターベーション率は、しきい値率よりも大きい数をもつ上位優先度トランザクションが、下位優先度レベルトランザクションよりも先に予め選択されたとき、下位優先度トランザクションを強制的に選択するために使用することができる。このスターベーション率は、プラグラム可能とすることができる。
【００１４】
複数のトランザクションソースは、グラフィック処理ユニット、入出力コヒーレントデバイス、およびプロセッサクラスタを含む様々な異なる形態をとることができる。そのようなプロセッサクラスタは、複数のプロセッサコアおよび共有ローカルキャッシュメモリを含むことができる。
【００１５】
また、要求サービング回路も、様々な異なる形態をとることができる。いくつかの実施形態では、要求サービング回路は共有キャッシュメモリである。
【００１６】
集積回路内に、一つ以上の要求サービング回路を設けることができる。これにより、そのようなリソースのスケーリングを容易にすることができる。
【００１７】
相互接続回路は、トランザクションソースと要求サービング回路との間でトランザクション要求を通信するために使用することができる。いくつかの実施形態では、そのような相互接続回路は、リングベースの相互接続回路である。
【００１８】
別の態様を鑑みると、本発明は、トランザクション要求を発生させるための複数のトランザクションソース手段と、処理リソース手段のセットを使用して前記トランザクション要求を処理するための要求サービング手段とを備える集積回路であって、前記トランザクション要求が、それぞれ、サービス品質値の範囲内の関連付けられたサービス品質値を有し、前記要求サービング手段が、プラグラム可能なサービス品質マッピング構成にしたがって、サービス品質値の前記範囲の異なる複数の下位範囲内のサービス品質値を、最下位レベルから最上位レベルに及ぶ優先度レベルの階層内の異なる複数の優先度レベルマッピングするように構成され、前記要求サービング手段が、前記階層の各レベル内においてトランザクション要求をサービスするように、同時に割り振ることができる最大数の前記処理リソース手段を提供するように構成される、集積回路を提供する。
【００１９】
さらなる態様を鑑みると、本発明は、複数のトランザクションソースを使用して、トランザクション要求を発生させるステップと、処理リソースのセットを使用して、前記トランザクション要求を処理するステップと含む集積回路内で通信する方法であって、前記トランザクション要求が、それぞれ、サービス品質値の範囲内の関連付けられたサービス品質値を有し、プラグラム可能なサービス品質マッピング構成にしたがって、サービス品質値の前記範囲の異なる複数の下位範囲内のサービス品質値を、最下位レベルから最上位レベルに及ぶ優先度レベルの階層内の異なる複数の優先度レベルにマッピングするステップと、前記階層の各レベル内においてトランザクション要求をサービスするように同時に割り振ることができる最大数の前記処理リソース手段を提供するステップとをさらに含む、方法を提供する。
【００２０】
本発明の上記および他の目的、特徴および利点は、添付の図面と併せて読むべき例示的実施形態の以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【００２１】
【図１】リングベースの相互接続を介して複数の要求サービング回路に接続された複数のトランザクションソースを含む集積回路を概略的に示す図である。
【図２】図１の要求サービング回路の一部をより詳細に示す概略図である。
【図３】要求サービング回路内における処理リソースの割振りの論理図を概略的に図である。
【図４】サービス品質値と優先度レベルとの間のマッピングのための回路を概略的に示す図である。
【図５】サービス品質値と優先度レベルとの間のマッピングのプログラマビリティを概略的に示す図である。
【図６】トランザクション要求が受信されると、トランザクション要求サービング回路内で実行される処理を概略的に示すフロー図である。
【図７】静的クレジット割振りを概略的に示すフロー図である。
【図８】トランザクションソースにおける処理を概略的に示すフロー図である。
【図９】異なる複数の優先度レベル間のプログラム可能なスターベーション率を概略的に示す図である。
【発明を実施するための形態】
【００２２】
図１に、メインメモリ４に接続されたシステムオンチップ集積回路の形態の集積回路２を概略的に示す。集積回路２は、複数のトランザクションソース６、８、１０、１２、１４、１６、１８および２０と、共有キャッシュメモリ２２および２４を含む複数の要求サービング回路と、メモリコントローラ２６と、出入力デバイス２８とを含み、それらはすべて、リングベースの相互接続３０を介して通信する。また、要求サービング回路の対象部分は、リングベースの相互接続３０上でトランザクションを送受信する、共有キャッシュメモリ２２および２４の一部であるコヒーレンスポイント／シリアリゼーションポイント（ＰＯＣ／ＰＯＳ）３２および３４である。
【００２３】
トランザクションソース６、８、１０、１２、１４、１６、１８および２０は、それぞれ、トランザクション要求を発生させ、そのトランザクション要求は、（ソフトウェア制御またはハードウェア制御の下で付加される）関連付けられたサービス品質値を有し、かつ、リングベースの相互接続３０のまわりで、要求サービング回路２２および２４のうちの適当な１つに送信される。共有キャッシュメモリ２２および２４である場合、共有キャッシュメモリ２２および２４は、メモリアドレス空間の異なる複数の領域にマッピングされたメモリとすることができ、したがって、それぞれが、マッピングされるメモリアドレス空間の領域にアドレス指定されたトランザクション要求をサービスするように働く。それぞれ対応するＰＯＣ／ＰＯＳ３２および３４は、以下に論じるように、それらの共有キャッシュメモリ２２および２４と関連付けられたメモリアドレスを検出し、受信したトランザクション要求を取り扱うことに、処理リソースを割り振るように試みることができる。共有キャッシュメモリ２２および２４によってサービスすることができないトランザクション要求は、それらが、対象のメモリアドレス空間範囲の外側にあることか、あるいは、メモリアドレスが、共有キャッシュメモリ２２および２４内で失われていることのいずれかを理由に、さらなるトランザクションの発生の対象とすべきメモリコントローラ２６に、さらにメインメモリ４に送信されないことがある。いくつかのトランザクション要求は、このデバイスによってサービスするために、出入力デバイス２８にマッピングすることができる。
【００２４】
リングベースの相互接続３０上で発行されるトランザクション要求は、ＰＯＣ／ＰＯＳ３２および３４が、第１のオプションとして、そのトランザクション要求への処理リソースの動的割振りを試みるべきであることを示す動的クレジット（提案された割振りモードを示すフラグまたは信号）をデフォルトで含むことになる。処理リソースがそのトランザクション要求には利用できない場合、対象のトランザクションソースに、リングベースの相互接続３０を介して拒絶応答が戻され、トランザクションソースは、トランザクション要求に再送信する前に続行要求を受信するまで待機する状態になる。
【００２５】
ＰＯＣ／ＰＯＳ３２および３４は、そのトランザクション要求に割り振るために利用可能な処理リソースを有しているときには、続行要求を送信し、続行応答が送信される前に、対象のトランザクションソースにその処理リソースを静的に割り振る（将来の使用のために戻す）ことになる（トランザクションソースは、拒絶応答を引き起こす同じトランザクションまたは異なるペンディングトランザクション（たとえば、より高いサービス品質を指定する、キューされたトランザクション要求）のために、静的に割り振られた処理リソースを使用することができる）。したがって、トランザクションソースが続行要求を受信すると、これは、効果的にも、静的クレジットを含むことになる。静的クレジットは、その静的クレジット表示を含むそのトランザクション要求（または異なるトランザクション要求）を、処理リソースがそのトランザクションソースに事前に割り振られているＰＯＣ／ＰＯＳ３２および３４に再送信して戻し、それにしたがって、どれが受け入れるかを保証することを示す。
【００２６】
トランザクション要求は、それらに関連付けられたサービス品質値を有する。ＰＯＣ／ＰＯＳ３２および３４は、そのようなサービス品質値と、最下位レベルから最上位レベルに及ぶ優先度レベルの階層内の複数の優先度レベルとの間に、プラグラム可能なマッピング構成を使用してマッピングする（いくつかの実施形態では、マッピングは、静的／非プラグラム可能であり得る）。ＰＯＣ／ＰＯＳ３２および３４は、それらに利用可能な最大数の処理リソースのセットから処理リソースを各優先度レベルに割り振るように構成される。したがって、低優先度レベルは、その優先度レベルにおいてトランザクション要求に同時に割り振ることができる最大数として、少数の処理リソースセットを有することができ、一方、高優先度レベルは、その上位優先度レベルに同時に割り振ることができる処理リソースの最大数として、より多くの処理リソースセットを有する。割り振ることができる処理リソースのこれらの最大数は、一定としても、プラグラム可能としてもよい。上位優先度レベルにおいて、そのような優先度レベルを有するトランザクション要求に潜在的に割り振り可能である処理リソース最大数がより大きくなるように、優先度レベルが上がるにつれて、処理リソースの最大数は、単調に増加する。
【００２７】
ＰＯＣ／ＰＯＳ３２および３４は、処理リソースを所与の優先度レベルに割り振るとき、カウンタ値を使用して、これを追跡する。カウンタは、その優先度レベルに処理リソースを割り振られるたびにインクリメントされ、その優先度レベルに処理リソースを割り振ることを中止するたびにデクリメントされる。いくつかの実施形態では、割振りが上述のように変化するときに、各優先度レベルに関するカウンタのみをインクリメントおよびデクリメントすることができるが、他の実施形態では、インクリメントおよびデクリメントは、対象の優先度レベルに、ならびに同じく追跡されている、すべての下位優先度レベルのカウンタに適用される。たとえば、優先度の階層に高高優先度レベル、高優先度レベル、中優先度レベル、および低優先度レベルを含むシステムにおいて、処理リソースが、高高優先度レベルに割り振られるべきであるならば、高優先度レベルに関するカウンタ、ならびに中優先度レベルおよび低優先度レベルに関するカウンタは、すべてインクリメントされることになる。高優先度レベルからトランザクション要求に処理リソースを割り振ることを中止するときには、高優先度レベル、中優先度レベル、および低優先度レベルに関するカウンタは、すべてデクリメントされる。このようにして、上位優先度レベルに割り振ることが可能なリソースのプールを使い果たす前に、下位優先度レベルに割り振ることができる処理リソースのプールを使い果たすように、選択アルゴリズムをガイドされ得る。また、これらのカウンタは、そのように相互依存することなく、それら自身の優先度レベルを個別に追跡し得ることも可能である。
【００２８】
また、ＰＯＣ／ＰＯＳ３２および３４内のペンディング要求カウンタは、続行応答を受信するために待機している各優先度レベルのトランザクション要求の数、ならびにトランザクションソースのアイデンティティおよび関与する拒絶された要求のサービス品質値を追跡するために提供される。これらのペンディング要求カウンタは、静的割振りを待っているトランザクション要求の数および詳細（すなわち、割り振られるべき処理リソースおよび送るべき続行応答（静的クレジット））を追跡するために使用される。
【００２９】
所与の優先度レベルの複数のトランザクション要求が処理リソースの割振りを待っているとき、選択アルゴリズムは、ポインタを使用するラウンドロビン選択技法を使用して、これらのトランザクション間で選択され、各選択とともに進められ、その優先度レベルのトランザクション要求のキューは、処理リソースの割振りを待っている。
【００３０】
また、選択アルゴリズムは、スターベーション率に依存して、異なる複数の優先度レベルを有する静的割振りを待っているトランザクション要求間で選択することができる。上位優先度レベルのトランザクション要求の定常ストリームは、下位優先度レベルからの任意のトランザクションが、処理リソースに割り振られるのを完全には防がないことが望ましい。したがって、スターベーションカウンタを使用して、トランザクション要求が、下位優先度レベルからのキューされたトランザクション要求よりも先に、上位優先度レベルから何回選択されるかをカウントすることができる。このカウントが（プラグラム可能であり得る）スターベーション率レベルに達したときには、次いで、下位優先度レベルからのトランザクション要求のうちの少なくともいくつかが前進するように、下位優先度レベルからのトランザクション要求が、上位優先度レベルからのトランザクション要求よりも先に選択される。
【００３１】
図１のトランザクションソース６、８、１０、１２、１４、１６、１８および２０は、プロセッサクラスタの形態を有してもよい。そのようなプロセッサクラスタは、複数のプロセッサコアと、複数のレベル１キャッシュおよび共有レベル２キャッシュのようないくつかのローカルキャッシュメモリとを含むことができる。上述の動的選択か、または静的選択のいずれかにしたがって割り振られる必要があるＰＯＣ／ＰＯＳ３２および３４内の処理リソースは、トランザクションソースからトランザクション要求を選択するために利用可能な処理スロットである。
【００３２】
図２は、ＰＯＣ／ＰＯＳ３２をより詳細に示す概略図である。ＰＯＣ／ＰＯＳは、リングベースの相互接続３０からトランザクションを受信するために複数の処理スロット３８を備える複数の処理リソース３６を含む。ＰＯＣ／ＰＯＳコントローラ４０は、受信したトランザクション要求に対して応答性であり、処理リソース３６の利用度、ならびに異なる複数の優先度レベルの各々からのそのＰＯＣ／ＰＯＳの処理リソース３８の割振りを待っているトランザクションソースからのトランザクション要求の数（ならびに、それらのアイデンティファイおよび関連付けられたサービス品質値）を追跡する。ＰＯＣ／ＰＯＳコントローラ４０は、プラグラム可能なマッピングにしたがって、受信したサービス品質値から優先度レベルにマッピングする。また、ホームコントローラ４０は、割振り可能なリソース４２の優先度レベル最大数を特定する構成データ４２、ならびに前述したスターベーション率４４を受信する。トランザクション要求は、共有キャッシュメモリ２２によってサービスするために、ＰＯＣ／ＰＯＳコントローラ４０によって、スロット３８のうちの１つから共有キャッシュ２４にパスされる。
【００３３】
図３は、ＰＯＣ／ＰＯＳ３２内で利用可能な処理リソース３６の論理図である。この論理図では、各優先度レベルに対して利用可能な処理リソースは、１つにグループ化されており、より低いエンドからより高いエンドに及んでいる。低優先度レベルＬに対して利用可能な処理リソースのプールが最下位である。中優先度レベルＭに対して利用可能な処理リソースのプールは、下位優先度レベルＬに対して利用可能なリソースのすべて、ならびにいくつかのさらなるリソースを含む。同様の関係が、高優先度レベルＨおよび高高（最も高い）優先度レベルＨＨについて成り立つ。各優先度レベルに同時に割り振られ得る処理リソースの最大数は単調に増加する。これらの最大数は、図２に示された優先度レベル最大数４２内でプログラム可能に規定し、その中に記憶することができる。図４は、処理リソースの論理図であり、物理的処理リソースは、それらが、動的割振り（プレリザベーションなし）か、または静的割振りが動作中のときには前述の選択アルゴリズムのいずれかにしたがって利用可能になると、動的にも静的にも割り振られるので、異なる複数の優先度レベル間にインターリーブされやすくなることが理解されよう。
【００３４】
図４に、上述のように、トランザクション要求とともに受信されたサービス品質値を、選択アルゴリズムを制御する際に使用すべき優先度レベルにマッピングするように働くＰＯＣ／ＰＯＳコントローラ４０内のマッピング回路４６を概略的に示す。マッピング回路４６は、プラグラム可能なマッピング構成データ４８に対して応答性である。サービス品質値は、１６個の異なるサービス品質レベルを特定することが可能な４ビット値とすることができるが、優先度レベルは、前述の高高優先度レベル、高優先度レベル、中優先度レベル、および低優先度レベルを特定することが可能な２ビット値とすることができる。
【００３５】
プラグラム可能なマッピング構成データは、図５に示されるように、サービス品質値と優先度値とで、異なるマッピングを提供することがある。優先度レベルＰＬの第１のセットに対するマッピングでは、サービス品質値０〜５は優先度レベル低にマッピングされ、サービス品質値６〜９は優先度レベル中にマッピングされ、サービス品質値１０〜１３は優先度レベル高にマッピングされ、サービス品質値１４〜１５は優先度レベル高高にマッピングされる。優先度レベルＰＬ’に対する例示された異なるマッピングでは、サービス品質値０〜８は優先度レベル低にマッピングされ、サービス品質値８〜１２は優先度レベル中にマッピングされ、サービス品質値１３〜１４は優先度レベル高にマッピングされ、サービス品質値１５は優先度レベル高高にマッピングされる。
【００３６】
図６は、ＰＯＣ／ＰＯＳ３２および３４内のトランザクション要求の受信および処理を概略的に示すフロー図である。ステップ５０において、処理は、トランザクション要求が受信されるまで待機する。ステップ５２は、トランザクション要求が、動的クレジットを求めていること、すなわち、処理リソースのうちの１つの動的割振りを求めていることを示すか否かを判断する。トランザクション要求が、動的クレジットを求めていない場合、静的クレジットを探していなければならず、以下にさらに論じるように、静的に割り振られた処理リソースを既に有していることになる。したがって、この場合、処理はステップ５４に進み、トランザクション要求が、動的クレジットを求めていること、すなわち、処理リソースのうちの１つの動的割振りを求めていることを示すか否かを判断する。
【００３７】
ステップ５２における判断が、トランザクション要求は、動的クレジットを求めているというものであった場合、次いで、ステップ５６は、ステップ５０において受信されたトランザクション要求の優先度レベルに既に割り振られている処理リソースの数が、既に、そのレベルに割り振られ得る処理リソースの最大数に等しい、またはそれよりも多いかどうかを判断する。この最大数が超えていなかった場合、次いで、ステップ５８は、ステップ５０において受信したトランザクション要求について、受信したトランザクションおよびそのような動的割振りが成功裏にトランザクションソースに戻されたことを示す応答を処理するために、処理リソースのうちの１つを動的に割り振るように働く。処理リソースの割振りを追跡する（１つまたは複数の）カウンタ値は、再びインクリメントされる。トランザクションが、割り振られたリソースを使用することを中止し、異なるトランザクションに割り振られるように解放されたときに、これらの（１つまたは複数の）カウンタ値はデクリメントされる。
【００３８】
ステップ５６における判断が、動的クレジットを要求している受信済みのトランザクション要求は、その優先度レベルに関して許可された最大数を超えてしまっているので、処理リソースに動的に割り振ることができないとうものであった場合、次いで、処理はステップ６０に進み、要求トランザクションソースに拒絶応答を戻す。次いで、ステップ６２は、さらなる１つのトランザクション要求が、その優先度レベルに関する処理リソースの割振りを待っていることを示すために、対象の優先度レベルに関するカウント値をインクリメントする。
【００３９】
図７は、ＰＯＣ／ＰＯＳ３２内における静的クレジット割振りを概略的に示すフロー図である。ステップ６４は、ペンディングトランザクションカウンタ値から、処理リソースの静的割振りを待っている任意のトランザクション要求があるか否かを判断する。処理リソース割振りを待っているそのようなトランザクション要求がある場合、次いで、処理はステップ６６に進み、システムは、処理リソースが静的スケジューリングについて利用可能になるまで待機する。トランザクション要求が完了していることを理由に、もはやそのトランザクション要求により使用されないような処理リソースは、事前に動的または静的に割り振られた処理リソースが解放されるときに利用可能になり得る。
【００４０】
ステップ６６において処理リソースが静的スケジューリングについて利用可能になると、処理はステップ６８に進み、そのスターベーションしきい値を超えた優先度レベルがあるか否かについて判断される。そのようなスターベーションしきい値は、所与の優先度レベルが、そのような割振りが所定の数よりも大きい場合、優先度レベルがより高くなるので、処理リソースに割り当てられていないことを示す。これらのスターベーションレベルは、優先度レベルの個別の対の間に効果を有するような比率として、個別にプログラミングすることができる。したがって、中優先度レベルに関しては低優先度レベルとなるように、高優先度レベルおよび高高優先度レベルの各々に関しては別個にスターベーション率が存在し得る。上位優先度レベルは、優先度レベルがより低いことを理由に処理リソース割振りを欠くことになるので、スターベーション率のみが、優先度の階層を高める働きをする。ステップ６８における判断が、優先度レベルは現在、スターベーションしきい値を超えているというものである場合、次いで、ステップ７０は、そのスターベーションしきい値を超えている優先度が最も高いトランザクション要求に対して、（２つ以上そのようなトランザクションがある場合にはラウンドロビン選択を使用して）続行応答を発行するように働く。次いで、ステップ７２は、その優先度レベルに割り振られた処理リソースの数を追跡するように、対象の１つまたは複数の優先度レベルに関するカウント値をインクリメントする。２つ以上のカウンタがインクリメントされる場合、このステップは、下位優先度レベルのカウンタもインクリメントする。
【００４１】
ステップ６８における判断が、スターベーションしきい値が超えていないというものである場合、次いで、ステップ７４は、ゼロでない数のキューされた要求を用いて、最も高い優先度レベルを選択する。ステップ７６は、次いで、トランザクション要求のそのキュー内のポインタによって指し示された、選択された優先度レベルにおいて、次のトランザクションを選択する。次いで、ステップ７８は、キュー内におけるラウンドロビン割振りのためのポインタを前進させ、ステップ８０は、トランザクションソースが、今度は静的クレジットを示すトランザクション要求を再送しなければならないことを示すために、選択されたトランザクション要求のトランザクションソースに対して、続行要求を発行する。次いで、処理は、ステップ７２に進む。
【００４２】
図８に、トランザクションソース６、８、１０、１２、１４、１６、１８および２０内において実行される処理を概略的に示す。ステップ８２において、処理は、トランザクション要求の送信準備が調うまで待機する。ステップ８４は、処理リソースのデフォルト動的割振りが要求されることを示す動的クレジットとともに、トランザクション要求を要求サービング回路に送信する。次いで、ステップ８６は、応答を待つ。応答が受信されると、ステップ８８は、これが拒絶応答かどうかを判断する。応答が拒絶応答である場合、次いで、動的割振りは成功し、処理がステップ９０に進み、要求サービング回路と協働してトランザクションを完了する。
【００４３】
ステップ８８において拒絶応答が受信された場合、次いで、処理はステップ９２に進み、トランザクションソースは、続行応答が受信されるまで待機する。そのような続行応答は、現在トランザクション要求に関して処理リソースの静的割振りが行われていることを示し、したがって、処理はステップ９４に進まなければならず、トランザクション要求が再送信されるが、今度は、関連付けられた静的クレジットを有すること、および前述の静的割振り技法にしたがって、処理リソースがそのトランザクションソースに既に割り振られていることを示す。次いで、ステップ９０において、静的に割り振られたトランザクションを完了する。
【００４４】
図９に、上位優先度レベルトランザクションによる処理リソースの割振りの、完全に開始された下位優先度レベルトランザクションレベルを回避するために使用することができるプラグラム可能なスターベーション率を概略的に示す。具体的には、スターベーション率は、複数レベルの階層内における１つの優先度レベルと、上位優先度レベルとの間の関係ごとにプログラムされる。この数は、下位優先度レベルからのトランザクションが割振りについて選択される前に、割振りのために順番に選択しなければならないその上位優先度レベルからのトランザクションの最大連続数を示す。したがって、スターベーション率が３０であった場合、これは、割振りについて選択された上位優先度レベルの３０個の連続するトランザクションごとに、単一の下位優先度トランザクションを強制的に選択しなければならないことを示す。
【００４５】
添付の図面を参照して、本発明の例示された実施形態について本明細書で説明してきたが、本発明は、それらの実施形態に限定されるものではなく、添付の特許請求の範囲に規定される本発明の趣旨および精神から逸脱することなく、当業者によって様々な変更および修正をなし得ることを理解れる。
【符号の説明】
【００４６】
２  集積回路
４  メインメモリ
６、８、１０、１２、１４、１６、１８、２０  トランザクションソース
２２、２４  共有キャッシュ
２６  メモリコントローラ
２８  出入力デバイス
３０  リングベースの相互接続
３０、３４  ＰＯＣ／ＰＯＳ
３６  処理リソース
【図１】
2013037681.tif 000003
【図２】
2013037681.tif 000004
【図３】
2013037681.tif 000005
【図４】
2013037681.tif 000006
【図５】
2013037681.tif 000007
【図６】
2013037681.tif 000008
【図７】
2013037681.tif 000009
【図８】
2013037681.tif 000010
【図９】
2013037681.tif 000011
【外国語明細書】
2013037681000001.pdf