説明

異なる複数の優先度レベルのトランザクション要求をサポートする集積回路内における処理リソース割振り

【課題】異なる複数の優先度レベルのトランザクション要求をサポートする集積回路内における処理リソース割振りを実現すること。
【解決手段】集積回路2は、複数のトランザクションソース6、8、10、12、14、16、18および20を含み、トランザクションソースは、関連付けられたPOC/POS30および34を各々が有する共有キャッシュ22および24とリングベースの相互接続30を介して通信し、要求サービング回路として働く。要求サービング回路は、異なる複数のトランザクションに割り振ることができる処理リソース36のセットを有する。これらの処理リソースは、動的に、または静的に割り振ることができる。静的割振りは、選択アルゴリズムに依存して行うことができる。この選択アルゴリズムは、入力変数のうちの1つとしてサービス品質値/優先度レベルを使用することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、集積回路の分野に関する。より詳細には、本発明は、異なる複数の優先度レベルを有することができるトランザクション要求の処理に対するリソース割振りに関する。
【背景技術】
【0002】
1つまたは複数のトランザクションスレイブのような要求サービング回路に相互接続回路を介して結合される、トランザクションマスタのような複数のトランザクションソースを有する集積回路が提供されることが知られている。
【発明の概要】
【発明が解決しようとする課題】
【0003】
個別の優先度レベルのいずれにも割り振りの処理リソースが少なすぎないように、または多すぎないように、異なる複数の優先度レベルに割り振られた処理リソースのバランスをとることが望ましい。
【課題を解決するための手段】
【0004】
1つの態様を鑑みると、本発明は、トランザクション要求を発生させるように構成された複数のトランザクションソースと、処理リソースのセットを使用して、前記トランザクション要求を処理するように構成された要求サービング回路とを備える集積回路を提供し、ここで前記トランザクション要求は各々サービス品質価値の範囲内で想定されるサービス品質価値を持ち、前記要求サービング回路が、サービス品質マッピング構成にしたがって、サービス品質値の前記範囲の異なる複数の下位範囲内のサービス品質値を、最下位レベルから最上位レベルに及ぶ優先度レベルの階層内の異なる複数の優先度レベルにマッピングするように構成され、前記要求サービング回路が、前記階層の各レベル内においてトランザクション要求をサービスするように同時に割り振ることができる最大数の前記処理リソースを提供するように構成される、集積回路を提供する。
【0005】
本技法は、トランザクション要求に関連付けられたサービス品質値を利用し、優先度レベルの階層内の下位優先度レベルにこれをマッピングする。これらの優先度レベルの各々は、階層のそのレベル内においてトランザクション要求をサービスするように同時に割り振ることができる最大数の処理リソースである。したがって、サービス品質値の下位範囲は、優先度レベルにマッピングされ、次いで、各優先度レベルに割り振られたリソースの最大数を制御することができる。
【0006】
集積回路の改善された適合性は、サービス品質マッピングおよび/または階層の各レベル内における最大数の一方または両方がプラグラム可能であるときに達成することができる。
【0007】
いくつかの実施形態では、階層の各レベルに割り振り可能なリソースの最大数は、優先度の階層とともに単調に増加する。したがって、上位優先度レベルは、潜在的に利用可能な処理リソースをより多く有することになる。
【0008】
階層の所与のレベル内のトランザクション要求に割り振られた処理リソースは、所与のレベル内のトランザクション要求に処理リソースのうちの1つを割り振ると、次いで、カウント値がインクリメントされるように、および、その所与のレベル内のトランザクション要求に処理リソースを割り振ることを中止すると、次いで、カウント値がデクリメントされるように、追跡することができる。これらのカウント値は、階層内の異なる複数のレベルに割り振られた処理リソース間のバランスを追跡するために使用することができる。
【0009】
カウントは、所与の優先度レベルに関連付けられたカウント値がインクリメント/デクリメントされる場合、互いから独立してまたは交互に、個別にインクリメント/デクリメントすることができ、次いで、すべての下位優先度レベルのカウント値は、同様にインクリメント/デクリメントされる。この手法は、処理リソースが、上位優先度レベルよりも先に下位優先度レベルに割り振られるのを回避するのに役立つ。
【0010】
要求サービング回路は、処理リソースの動的割振りと静的割振りとを切り替えるように形成することができる。静的割振りは、選択アルゴリズムに基づいて実行することができる。いくつかの実施形態では、選択アルゴリズムは、トランザクション要求の各々に関連づけられたそれぞれ対応する優先度レベルに依存し得る。
【0011】
トランザクションソースと要求サービング回路との間で交換される要求およびメッセージは、様々な形態をとることができる。いくつかの実施形態では、前記複数のトランザクションソースのうちの要求トランザクションソースから、前記トランザクション要求に関連付けられたトランザクションを処理する際に前記要求トランザクションソースによって使用されるために、リソースの前記セットのうちの1つを割り振るための少なくとも暗黙の要求(implicit request)を受信し、処理リソースの前記セットのうちの1つが、前記要求トランザクションソースによって使用されるために利用可能であるかどうかを判断し、処理リソースの前記セットのうちの1つが、前記要求トランザクションソースによって使用されるために利用可能である場合には、前記トランザクションを処理する際に使用するために、処理リソースのうちの前記1つまたは前記セットを前記要求トランザクションソースに割り振り、処理リソースの前記セットのうち、前記要求トランザクションソースによって使用されるために利用可能であるものが1つもない場合、前記要求トランザクションソースにリトライ応答を送信するように前記要求サービング回路が構成され、前記要求サービング回路から前記リトライ応答を受信し、前記トランザクション要求に関連付けられた前記トランザクションを処理する前に、前記要求サービング回路から続行応答が受信されるのを待つことによって、前記リトライ応答に応答するように前記要求トランザクションソースが構成され、前記複数のトランザクションソースのうち続行応答を待っているトランザクションソースを追跡し、処理リソースの前記セットのうちの1つを、続行応答を待っている前記トランザクションソースのうちの1つに割り振り、続行応答を待っている前記トランザクションソースのうちの前記1つに、続行応答を送信するように前記要求サービング回路が構成される。
【0012】
静的割振り内で使用される選択アルゴリズムは、優先度レベルを共有する静的割振りを待っているトランザクション要求間でラウンドロビン選択を採用することができる。これは、実行が単純であり、処理リソース割振りを永続的に欠く個別のトランザクション要求がないことを保証する予想可能な挙動を提供する。
【0013】
また、静的割振りにおいて使用される選択アルゴリズムは、異なる複数の優先度レベルを有する静的割振りを待っているトランザクション要求から選択することができる。上位優先度レベルトランザクションが常に選択されるわけではない。スターベーション率は、しきい値率よりも大きい数をもつ上位優先度トランザクションが、下位優先度レベルトランザクションよりも先に予め選択されたとき、下位優先度トランザクションを強制的に選択するために使用することができる。このスターベーション率は、プラグラム可能とすることができる。
【0014】
複数のトランザクションソースは、グラフィック処理ユニット、入出力コヒーレントデバイス、およびプロセッサクラスタを含む様々な異なる形態をとることができる。そのようなプロセッサクラスタは、複数のプロセッサコアおよび共有ローカルキャッシュメモリを含むことができる。
【0015】
また、要求サービング回路も、様々な異なる形態をとることができる。いくつかの実施形態では、要求サービング回路は共有キャッシュメモリである。
【0016】
集積回路内に、一つ以上の要求サービング回路を設けることができる。これにより、そのようなリソースのスケーリングを容易にすることができる。
【0017】
相互接続回路は、トランザクションソースと要求サービング回路との間でトランザクション要求を通信するために使用することができる。いくつかの実施形態では、そのような相互接続回路は、リングベースの相互接続回路である。
【0018】
別の態様を鑑みると、本発明は、トランザクション要求を発生させるための複数のトランザクションソース手段と、処理リソース手段のセットを使用して前記トランザクション要求を処理するための要求サービング手段とを備える集積回路であって、前記トランザクション要求が、それぞれ、サービス品質値の範囲内の関連付けられたサービス品質値を有し、前記要求サービング手段が、プラグラム可能なサービス品質マッピング構成にしたがって、サービス品質値の前記範囲の異なる複数の下位範囲内のサービス品質値を、最下位レベルから最上位レベルに及ぶ優先度レベルの階層内の異なる複数の優先度レベルマッピングするように構成され、前記要求サービング手段が、前記階層の各レベル内においてトランザクション要求をサービスするように、同時に割り振ることができる最大数の前記処理リソース手段を提供するように構成される、集積回路を提供する。
【0019】
さらなる態様を鑑みると、本発明は、複数のトランザクションソースを使用して、トランザクション要求を発生させるステップと、処理リソースのセットを使用して、前記トランザクション要求を処理するステップと含む集積回路内で通信する方法であって、前記トランザクション要求が、それぞれ、サービス品質値の範囲内の関連付けられたサービス品質値を有し、プラグラム可能なサービス品質マッピング構成にしたがって、サービス品質値の前記範囲の異なる複数の下位範囲内のサービス品質値を、最下位レベルから最上位レベルに及ぶ優先度レベルの階層内の異なる複数の優先度レベルにマッピングするステップと、前記階層の各レベル内においてトランザクション要求をサービスするように同時に割り振ることができる最大数の前記処理リソース手段を提供するステップとをさらに含む、方法を提供する。
【0020】
本発明の上記および他の目的、特徴および利点は、添付の図面と併せて読むべき例示的実施形態の以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【0021】
【図1】リングベースの相互接続を介して複数の要求サービング回路に接続された複数のトランザクションソースを含む集積回路を概略的に示す図である。
【図2】図1の要求サービング回路の一部をより詳細に示す概略図である。
【図3】要求サービング回路内における処理リソースの割振りの論理図を概略的に図である。
【図4】サービス品質値と優先度レベルとの間のマッピングのための回路を概略的に示す図である。
【図5】サービス品質値と優先度レベルとの間のマッピングのプログラマビリティを概略的に示す図である。
【図6】トランザクション要求が受信されると、トランザクション要求サービング回路内で実行される処理を概略的に示すフロー図である。
【図7】静的クレジット割振りを概略的に示すフロー図である。
【図8】トランザクションソースにおける処理を概略的に示すフロー図である。
【図9】異なる複数の優先度レベル間のプログラム可能なスターベーション率を概略的に示す図である。
【発明を実施するための形態】
【0022】
図1に、メインメモリ4に接続されたシステムオンチップ集積回路の形態の集積回路2を概略的に示す。集積回路2は、複数のトランザクションソース6、8、10、12、14、16、18および20と、共有キャッシュメモリ22および24を含む複数の要求サービング回路と、メモリコントローラ26と、出入力デバイス28とを含み、それらはすべて、リングベースの相互接続30を介して通信する。また、要求サービング回路の対象部分は、リングベースの相互接続30上でトランザクションを送受信する、共有キャッシュメモリ22および24の一部であるコヒーレンスポイント/シリアリゼーションポイント(POC/POS)32および34である。
【0023】
トランザクションソース6、8、10、12、14、16、18および20は、それぞれ、トランザクション要求を発生させ、そのトランザクション要求は、(ソフトウェア制御またはハードウェア制御の下で付加される)関連付けられたサービス品質値を有し、かつ、リングベースの相互接続30のまわりで、要求サービング回路22および24のうちの適当な1つに送信される。共有キャッシュメモリ22および24である場合、共有キャッシュメモリ22および24は、メモリアドレス空間の異なる複数の領域にマッピングされたメモリとすることができ、したがって、それぞれが、マッピングされるメモリアドレス空間の領域にアドレス指定されたトランザクション要求をサービスするように働く。それぞれ対応するPOC/POS32および34は、以下に論じるように、それらの共有キャッシュメモリ22および24と関連付けられたメモリアドレスを検出し、受信したトランザクション要求を取り扱うことに、処理リソースを割り振るように試みることができる。共有キャッシュメモリ22および24によってサービスすることができないトランザクション要求は、それらが、対象のメモリアドレス空間範囲の外側にあることか、あるいは、メモリアドレスが、共有キャッシュメモリ22および24内で失われていることのいずれかを理由に、さらなるトランザクションの発生の対象とすべきメモリコントローラ26に、さらにメインメモリ4に送信されないことがある。いくつかのトランザクション要求は、このデバイスによってサービスするために、出入力デバイス28にマッピングすることができる。
【0024】
リングベースの相互接続30上で発行されるトランザクション要求は、POC/POS32および34が、第1のオプションとして、そのトランザクション要求への処理リソースの動的割振りを試みるべきであることを示す動的クレジット(提案された割振りモードを示すフラグまたは信号)をデフォルトで含むことになる。処理リソースがそのトランザクション要求には利用できない場合、対象のトランザクションソースに、リングベースの相互接続30を介して拒絶応答が戻され、トランザクションソースは、トランザクション要求に再送信する前に続行要求を受信するまで待機する状態になる。
【0025】
POC/POS32および34は、そのトランザクション要求に割り振るために利用可能な処理リソースを有しているときには、続行要求を送信し、続行応答が送信される前に、対象のトランザクションソースにその処理リソースを静的に割り振る(将来の使用のために戻す)ことになる(トランザクションソースは、拒絶応答を引き起こす同じトランザクションまたは異なるペンディングトランザクション(たとえば、より高いサービス品質を指定する、キューされたトランザクション要求)のために、静的に割り振られた処理リソースを使用することができる)。したがって、トランザクションソースが続行要求を受信すると、これは、効果的にも、静的クレジットを含むことになる。静的クレジットは、その静的クレジット表示を含むそのトランザクション要求(または異なるトランザクション要求)を、処理リソースがそのトランザクションソースに事前に割り振られているPOC/POS32および34に再送信して戻し、それにしたがって、どれが受け入れるかを保証することを示す。
【0026】
トランザクション要求は、それらに関連付けられたサービス品質値を有する。POC/POS32および34は、そのようなサービス品質値と、最下位レベルから最上位レベルに及ぶ優先度レベルの階層内の複数の優先度レベルとの間に、プラグラム可能なマッピング構成を使用してマッピングする(いくつかの実施形態では、マッピングは、静的/非プラグラム可能であり得る)。POC/POS32および34は、それらに利用可能な最大数の処理リソースのセットから処理リソースを各優先度レベルに割り振るように構成される。したがって、低優先度レベルは、その優先度レベルにおいてトランザクション要求に同時に割り振ることができる最大数として、少数の処理リソースセットを有することができ、一方、高優先度レベルは、その上位優先度レベルに同時に割り振ることができる処理リソースの最大数として、より多くの処理リソースセットを有する。割り振ることができる処理リソースのこれらの最大数は、一定としても、プラグラム可能としてもよい。上位優先度レベルにおいて、そのような優先度レベルを有するトランザクション要求に潜在的に割り振り可能である処理リソース最大数がより大きくなるように、優先度レベルが上がるにつれて、処理リソースの最大数は、単調に増加する。
【0027】
POC/POS32および34は、処理リソースを所与の優先度レベルに割り振るとき、カウンタ値を使用して、これを追跡する。カウンタは、その優先度レベルに処理リソースを割り振られるたびにインクリメントされ、その優先度レベルに処理リソースを割り振ることを中止するたびにデクリメントされる。いくつかの実施形態では、割振りが上述のように変化するときに、各優先度レベルに関するカウンタのみをインクリメントおよびデクリメントすることができるが、他の実施形態では、インクリメントおよびデクリメントは、対象の優先度レベルに、ならびに同じく追跡されている、すべての下位優先度レベルのカウンタに適用される。たとえば、優先度の階層に高高優先度レベル、高優先度レベル、中優先度レベル、および低優先度レベルを含むシステムにおいて、処理リソースが、高高優先度レベルに割り振られるべきであるならば、高優先度レベルに関するカウンタ、ならびに中優先度レベルおよび低優先度レベルに関するカウンタは、すべてインクリメントされることになる。高優先度レベルからトランザクション要求に処理リソースを割り振ることを中止するときには、高優先度レベル、中優先度レベル、および低優先度レベルに関するカウンタは、すべてデクリメントされる。このようにして、上位優先度レベルに割り振ることが可能なリソースのプールを使い果たす前に、下位優先度レベルに割り振ることができる処理リソースのプールを使い果たすように、選択アルゴリズムをガイドされ得る。また、これらのカウンタは、そのように相互依存することなく、それら自身の優先度レベルを個別に追跡し得ることも可能である。
【0028】
また、POC/POS32および34内のペンディング要求カウンタは、続行応答を受信するために待機している各優先度レベルのトランザクション要求の数、ならびにトランザクションソースのアイデンティティおよび関与する拒絶された要求のサービス品質値を追跡するために提供される。これらのペンディング要求カウンタは、静的割振りを待っているトランザクション要求の数および詳細(すなわち、割り振られるべき処理リソースおよび送るべき続行応答(静的クレジット))を追跡するために使用される。
【0029】
所与の優先度レベルの複数のトランザクション要求が処理リソースの割振りを待っているとき、選択アルゴリズムは、ポインタを使用するラウンドロビン選択技法を使用して、これらのトランザクション間で選択され、各選択とともに進められ、その優先度レベルのトランザクション要求のキューは、処理リソースの割振りを待っている。
【0030】
また、選択アルゴリズムは、スターベーション率に依存して、異なる複数の優先度レベルを有する静的割振りを待っているトランザクション要求間で選択することができる。上位優先度レベルのトランザクション要求の定常ストリームは、下位優先度レベルからの任意のトランザクションが、処理リソースに割り振られるのを完全には防がないことが望ましい。したがって、スターベーションカウンタを使用して、トランザクション要求が、下位優先度レベルからのキューされたトランザクション要求よりも先に、上位優先度レベルから何回選択されるかをカウントすることができる。このカウントが(プラグラム可能であり得る)スターベーション率レベルに達したときには、次いで、下位優先度レベルからのトランザクション要求のうちの少なくともいくつかが前進するように、下位優先度レベルからのトランザクション要求が、上位優先度レベルからのトランザクション要求よりも先に選択される。
【0031】
図1のトランザクションソース6、8、10、12、14、16、18および20は、プロセッサクラスタの形態を有してもよい。そのようなプロセッサクラスタは、複数のプロセッサコアと、複数のレベル1キャッシュおよび共有レベル2キャッシュのようないくつかのローカルキャッシュメモリとを含むことができる。上述の動的選択か、または静的選択のいずれかにしたがって割り振られる必要があるPOC/POS32および34内の処理リソースは、トランザクションソースからトランザクション要求を選択するために利用可能な処理スロットである。
【0032】
図2は、POC/POS32をより詳細に示す概略図である。POC/POSは、リングベースの相互接続30からトランザクションを受信するために複数の処理スロット38を備える複数の処理リソース36を含む。POC/POSコントローラ40は、受信したトランザクション要求に対して応答性であり、処理リソース36の利用度、ならびに異なる複数の優先度レベルの各々からのそのPOC/POSの処理リソース38の割振りを待っているトランザクションソースからのトランザクション要求の数(ならびに、それらのアイデンティファイおよび関連付けられたサービス品質値)を追跡する。POC/POSコントローラ40は、プラグラム可能なマッピングにしたがって、受信したサービス品質値から優先度レベルにマッピングする。また、ホームコントローラ40は、割振り可能なリソース42の優先度レベル最大数を特定する構成データ42、ならびに前述したスターベーション率44を受信する。トランザクション要求は、共有キャッシュメモリ22によってサービスするために、POC/POSコントローラ40によって、スロット38のうちの1つから共有キャッシュ24にパスされる。
【0033】
図3は、POC/POS32内で利用可能な処理リソース36の論理図である。この論理図では、各優先度レベルに対して利用可能な処理リソースは、1つにグループ化されており、より低いエンドからより高いエンドに及んでいる。低優先度レベルLに対して利用可能な処理リソースのプールが最下位である。中優先度レベルMに対して利用可能な処理リソースのプールは、下位優先度レベルLに対して利用可能なリソースのすべて、ならびにいくつかのさらなるリソースを含む。同様の関係が、高優先度レベルHおよび高高(最も高い)優先度レベルHHについて成り立つ。各優先度レベルに同時に割り振られ得る処理リソースの最大数は単調に増加する。これらの最大数は、図2に示された優先度レベル最大数42内でプログラム可能に規定し、その中に記憶することができる。図4は、処理リソースの論理図であり、物理的処理リソースは、それらが、動的割振り(プレリザベーションなし)か、または静的割振りが動作中のときには前述の選択アルゴリズムのいずれかにしたがって利用可能になると、動的にも静的にも割り振られるので、異なる複数の優先度レベル間にインターリーブされやすくなることが理解されよう。
【0034】
図4に、上述のように、トランザクション要求とともに受信されたサービス品質値を、選択アルゴリズムを制御する際に使用すべき優先度レベルにマッピングするように働くPOC/POSコントローラ40内のマッピング回路46を概略的に示す。マッピング回路46は、プラグラム可能なマッピング構成データ48に対して応答性である。サービス品質値は、16個の異なるサービス品質レベルを特定することが可能な4ビット値とすることができるが、優先度レベルは、前述の高高優先度レベル、高優先度レベル、中優先度レベル、および低優先度レベルを特定することが可能な2ビット値とすることができる。
【0035】
プラグラム可能なマッピング構成データは、図5に示されるように、サービス品質値と優先度値とで、異なるマッピングを提供することがある。優先度レベルPLの第1のセットに対するマッピングでは、サービス品質値0〜5は優先度レベル低にマッピングされ、サービス品質値6〜9は優先度レベル中にマッピングされ、サービス品質値10〜13は優先度レベル高にマッピングされ、サービス品質値14〜15は優先度レベル高高にマッピングされる。優先度レベルPL’に対する例示された異なるマッピングでは、サービス品質値0〜8は優先度レベル低にマッピングされ、サービス品質値8〜12は優先度レベル中にマッピングされ、サービス品質値13〜14は優先度レベル高にマッピングされ、サービス品質値15は優先度レベル高高にマッピングされる。
【0036】
図6は、POC/POS32および34内のトランザクション要求の受信および処理を概略的に示すフロー図である。ステップ50において、処理は、トランザクション要求が受信されるまで待機する。ステップ52は、トランザクション要求が、動的クレジットを求めていること、すなわち、処理リソースのうちの1つの動的割振りを求めていることを示すか否かを判断する。トランザクション要求が、動的クレジットを求めていない場合、静的クレジットを探していなければならず、以下にさらに論じるように、静的に割り振られた処理リソースを既に有していることになる。したがって、この場合、処理はステップ54に進み、トランザクション要求が、動的クレジットを求めていること、すなわち、処理リソースのうちの1つの動的割振りを求めていることを示すか否かを判断する。
【0037】
ステップ52における判断が、トランザクション要求は、動的クレジットを求めているというものであった場合、次いで、ステップ56は、ステップ50において受信されたトランザクション要求の優先度レベルに既に割り振られている処理リソースの数が、既に、そのレベルに割り振られ得る処理リソースの最大数に等しい、またはそれよりも多いかどうかを判断する。この最大数が超えていなかった場合、次いで、ステップ58は、ステップ50において受信したトランザクション要求について、受信したトランザクションおよびそのような動的割振りが成功裏にトランザクションソースに戻されたことを示す応答を処理するために、処理リソースのうちの1つを動的に割り振るように働く。処理リソースの割振りを追跡する(1つまたは複数の)カウンタ値は、再びインクリメントされる。トランザクションが、割り振られたリソースを使用することを中止し、異なるトランザクションに割り振られるように解放されたときに、これらの(1つまたは複数の)カウンタ値はデクリメントされる。
【0038】
ステップ56における判断が、動的クレジットを要求している受信済みのトランザクション要求は、その優先度レベルに関して許可された最大数を超えてしまっているので、処理リソースに動的に割り振ることができないとうものであった場合、次いで、処理はステップ60に進み、要求トランザクションソースに拒絶応答を戻す。次いで、ステップ62は、さらなる1つのトランザクション要求が、その優先度レベルに関する処理リソースの割振りを待っていることを示すために、対象の優先度レベルに関するカウント値をインクリメントする。
【0039】
図7は、POC/POS32内における静的クレジット割振りを概略的に示すフロー図である。ステップ64は、ペンディングトランザクションカウンタ値から、処理リソースの静的割振りを待っている任意のトランザクション要求があるか否かを判断する。処理リソース割振りを待っているそのようなトランザクション要求がある場合、次いで、処理はステップ66に進み、システムは、処理リソースが静的スケジューリングについて利用可能になるまで待機する。トランザクション要求が完了していることを理由に、もはやそのトランザクション要求により使用されないような処理リソースは、事前に動的または静的に割り振られた処理リソースが解放されるときに利用可能になり得る。
【0040】
ステップ66において処理リソースが静的スケジューリングについて利用可能になると、処理はステップ68に進み、そのスターベーションしきい値を超えた優先度レベルがあるか否かについて判断される。そのようなスターベーションしきい値は、所与の優先度レベルが、そのような割振りが所定の数よりも大きい場合、優先度レベルがより高くなるので、処理リソースに割り当てられていないことを示す。これらのスターベーションレベルは、優先度レベルの個別の対の間に効果を有するような比率として、個別にプログラミングすることができる。したがって、中優先度レベルに関しては低優先度レベルとなるように、高優先度レベルおよび高高優先度レベルの各々に関しては別個にスターベーション率が存在し得る。上位優先度レベルは、優先度レベルがより低いことを理由に処理リソース割振りを欠くことになるので、スターベーション率のみが、優先度の階層を高める働きをする。ステップ68における判断が、優先度レベルは現在、スターベーションしきい値を超えているというものである場合、次いで、ステップ70は、そのスターベーションしきい値を超えている優先度が最も高いトランザクション要求に対して、(2つ以上そのようなトランザクションがある場合にはラウンドロビン選択を使用して)続行応答を発行するように働く。次いで、ステップ72は、その優先度レベルに割り振られた処理リソースの数を追跡するように、対象の1つまたは複数の優先度レベルに関するカウント値をインクリメントする。2つ以上のカウンタがインクリメントされる場合、このステップは、下位優先度レベルのカウンタもインクリメントする。
【0041】
ステップ68における判断が、スターベーションしきい値が超えていないというものである場合、次いで、ステップ74は、ゼロでない数のキューされた要求を用いて、最も高い優先度レベルを選択する。ステップ76は、次いで、トランザクション要求のそのキュー内のポインタによって指し示された、選択された優先度レベルにおいて、次のトランザクションを選択する。次いで、ステップ78は、キュー内におけるラウンドロビン割振りのためのポインタを前進させ、ステップ80は、トランザクションソースが、今度は静的クレジットを示すトランザクション要求を再送しなければならないことを示すために、選択されたトランザクション要求のトランザクションソースに対して、続行要求を発行する。次いで、処理は、ステップ72に進む。
【0042】
図8に、トランザクションソース6、8、10、12、14、16、18および20内において実行される処理を概略的に示す。ステップ82において、処理は、トランザクション要求の送信準備が調うまで待機する。ステップ84は、処理リソースのデフォルト動的割振りが要求されることを示す動的クレジットとともに、トランザクション要求を要求サービング回路に送信する。次いで、ステップ86は、応答を待つ。応答が受信されると、ステップ88は、これが拒絶応答かどうかを判断する。応答が拒絶応答である場合、次いで、動的割振りは成功し、処理がステップ90に進み、要求サービング回路と協働してトランザクションを完了する。
【0043】
ステップ88において拒絶応答が受信された場合、次いで、処理はステップ92に進み、トランザクションソースは、続行応答が受信されるまで待機する。そのような続行応答は、現在トランザクション要求に関して処理リソースの静的割振りが行われていることを示し、したがって、処理はステップ94に進まなければならず、トランザクション要求が再送信されるが、今度は、関連付けられた静的クレジットを有すること、および前述の静的割振り技法にしたがって、処理リソースがそのトランザクションソースに既に割り振られていることを示す。次いで、ステップ90において、静的に割り振られたトランザクションを完了する。
【0044】
図9に、上位優先度レベルトランザクションによる処理リソースの割振りの、完全に開始された下位優先度レベルトランザクションレベルを回避するために使用することができるプラグラム可能なスターベーション率を概略的に示す。具体的には、スターベーション率は、複数レベルの階層内における1つの優先度レベルと、上位優先度レベルとの間の関係ごとにプログラムされる。この数は、下位優先度レベルからのトランザクションが割振りについて選択される前に、割振りのために順番に選択しなければならないその上位優先度レベルからのトランザクションの最大連続数を示す。したがって、スターベーション率が30であった場合、これは、割振りについて選択された上位優先度レベルの30個の連続するトランザクションごとに、単一の下位優先度トランザクションを強制的に選択しなければならないことを示す。
【0045】
添付の図面を参照して、本発明の例示された実施形態について本明細書で説明してきたが、本発明は、それらの実施形態に限定されるものではなく、添付の特許請求の範囲に規定される本発明の趣旨および精神から逸脱することなく、当業者によって様々な変更および修正をなし得ることを理解れる。
【符号の説明】
【0046】
2 集積回路
4 メインメモリ
6、8、10、12、14、16、18、20 トランザクションソース
22、24 共有キャッシュ
26 メモリコントローラ
28 出入力デバイス
30 リングベースの相互接続
30、34 POC/POS
36 処理リソース

【特許請求の範囲】
【請求項1】
トランザクション要求を発生させるように構成された複数のトランザクションソースと、
処理リソースのセットを使用して、前記トランザクション要求を処理するように構成された要求サービング回路と
を備える集積回路であって、
前記トランザクション要求が、それぞれ、サービス品質値の範囲内の関連付けられたサービス品質値を有し、
前記要求サービング回路が、サービス品質マッピング構成にしたがって、サービス品質値の前記範囲の異なる複数の下位範囲内のサービス品質値を、最下位レベルから最上位レベルに及ぶ優先度レベルの階層内の異なる複数の優先度レベルにマッピングするように構成され、
前記要求サービング回路が、前記階層の各レベル内においてトランザクション要求をサービスするように同時に割り振ることができる最大数の前記処理リソースを提供するように構成される、
集積回路。
【請求項2】
前記サービス品質マッピング構成が、前記サービス品質値のうちの少なくともいくつかについてプラグラム可能である、請求項1に記載の集積回路。
【請求項3】
前記階層の各レベル内における前記最大数が、前記階層のうちの少なくともいくつかのレベルに対してプラグラム可能なパラメータである、請求項1に記載の集積回路。
【請求項4】
前記最大数が、優先度の前記階層内において単調に増加する、請求項1に記載の集積回路。
【請求項5】
前記階層の所与のレベル内のトランザクション要求に、前記処理リソースのうちの1つを割り振るときは、次いで、前記階層内において前記所与のレベルおよび任意の下位レベルに割り振られる際に前記要求サービング回路によって追跡されたリソースの数がインクリメントされる、請求項1に記載の集積回路。
【請求項6】
前記階層の所与のレベル内におけるトランザクション要求に前記処理リソースのうちの1つを割り振ることを中止したときは、次いで、前記階層内において前記所与のレベルおよび任意の下位レベルに割り振られる際に前記要求サービング回路によって追跡されたリソースの数がデクリメントされる、請求項1に記載の集積回路。
【請求項7】
前記階層の所与のレベル内のトランザクション要求に、前記処理リソースのうちの1つを割り振るときは、次いで、前記階層において前記所与のレベルに割り振られる際に前記要求サービング回路によって追跡されたリソースの数だけがインクリメントされる、請求項1に記載の集積回路。
【請求項8】
前記階層の所与のレベル内におけるトランザクション要求に前記処理リソースのうちの1つを割り振ることを中止したときは、次いで、前記階層において前記所与のレベルに割り振られる際に前記要求サービング回路によって追跡されたリソースの数だけがデクリメントされる、請求項1に記載の集積回路。
【請求項9】
前記要求サービング回路が、選択アルゴリズムを使用して、前記トランザクション要求からの前記処理リソースの動的割振りと前記トランザクション要求からの前記処理リソースの静的割振りとを切り替えるように構成される、請求項1に記載の集積回路。
【請求項10】
前記選択アルゴリズムが、前記複数のトランザクション要求の各々に関連付けられたそれぞれ対応する優先度レベルに依存する、請求項8に記載の集積回路。
【請求項11】
前記要求サービング回路が、
前記複数のトランザクションソースのうちの要求トランザクションソースから、前記トランザクション要求に関連付けられたトランザクションを処理する際に前記要求トランザクションソースによって使用されるために、リソースの前記セットのうちの1つを割り振るための少なくとも暗黙の要求(implicit request)を受信し、
処理リソースの前記セットのうちの1つが、前記要求トランザクションソースによって使用されるために利用可能であるかどうかを判断し、
処理リソースの前記セットのうちの1つが、前記要求トランザクションソースによって使用されるために利用可能である場合には、前記トランザクションを処理する際に使用するために、処理リソースのうちの前記1つまたは前記セットを前記要求トランザクションソースに割り振り、
処理リソースの前記セットのうち、前記要求トランザクションソースによって使用されるために利用可能であるものが1つもない場合、前記要求トランザクションソースにリトライ応答を送信する
ように構成され、
前記要求トランザクションソースが、
前記要求サービング回路から前記リトライ応答を受信し、
前記トランザクション要求に関連付けられた前記トランザクションを処理する前に、前記要求サービング回路から続行応答が受信されるのを待つことによって、前記リトライ応答に応答する
ように構成され、
前記要求サービング回路が、
前記複数のトランザクションソースのうち続行応答を待っているトランザクションソースを追跡し、
処理リソースの前記セットのうちの1つを、続行応答を待っている前記トランザクションソースのうちの1つに割り振り、
続行応答を待っている前記トランザクションソースのうちの前記1つに、続行応答を送信する
ように構成される、請求項1に記載の集積回路。
【請求項12】
前記選択アルゴリズムが、優先度レベルを共有する静的割振りを待っているトランザクション要求間でラウンドロビン選択を使用する、請求項9に記載の集積回路。
【請求項13】
前記選択アルゴリズムが、異なる複数の優先度レベルを有する静的割振りを待っている前記トランザクション要求間から選択する、請求項9に記載の集積回路。
【請求項14】
異なる複数の優先度レベルを有する静的割振りを待っている前記トランザクション要求間の前記選択が、スターベーション率に依存する、請求項13に記載の集積回路。
【請求項15】
前記スターベーション率が、プラグラム可能である、請求項14に記載の集積回路。
【請求項16】
前記複数のトランザクションソースが、各々が複数のプロセッサコアを備える複数のプロセッサクラスタを備える、請求項1に記載の集積回路。
【請求項17】
前記要求サービング回路が、共有キャッシュメモリを備える、請求項1に記載の集積回路。
【請求項18】
各々が前記複数のトランザクション要求間の割振りのために処理リソースのセットを有する複数の前記要求サービング回路を備える、請求項1に記載の集積回路。
【請求項19】
処理リソースの前記セットが、前記トランザクション要求を受信するために利用可能な処理スロットのセットを備える、請求項1に記載の集積回路。
【請求項20】
前記トランザクションソースと前記要求サービング回路との間で前記トランザクション要求を通信するように構成された相互接続回路をさらに備える、請求項1に記載の集積回路。
【請求項21】
前記相互接続回路が、リングベースの相互接続回路である、請求項20に記載の集積回路。
【請求項22】
トランザクション要求を発生させるための複数のトランザクションソース手段と、
処理リソース手段のセットを使用して前記トランザクション要求を処理するための要求サービング手段と
を備える集積回路であって、
前記トランザクション要求が、それぞれ、サービス品質値の範囲内の関連付けられたサービス品質値を有し、
前記要求サービング手段が、プラグラム可能なサービス品質マッピング構成にしたがって、サービス品質値の前記範囲の異なる複数の下位範囲内のサービス品質値を、最下位レベルから最上位レベルに及ぶ優先度レベルの階層内の異なる複数の優先度レベルマッピングするように構成され、
前記要求サービング手段が、前記階層の各レベル内においてトランザクション要求をサービスするように、同時に割り振ることができる最大数の前記処理リソース手段を提供するように構成される、
集積回路。
【請求項23】
複数のトランザクションソースを使用して、トランザクション要求を発生させるステップと、
処理リソースのセットを使用して、前記トランザクション要求を処理するステップと
を含む集積回路内で通信する方法であって、
前記トランザクション要求が、それぞれ、サービス品質値の範囲内の関連付けられたサービス品質値を有し、
プラグラム可能なサービス品質マッピング構成にしたがって、サービス品質値の前記範囲の異なる複数の下位範囲内のサービス品質値を、最下位レベルから最上位レベルに及ぶ優先度レベルの階層内の異なる複数の優先度レベルにマッピングするステップと、
前記階層の各レベル内においてトランザクション要求をサービスするように同時に割り振ることができる最大数の前記処理リソース手段を提供するステップと
をさらに含む、方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2013−37681(P2013−37681A)
【公開日】平成25年2月21日(2013.2.21)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−155320(P2012−155320)
【出願日】平成24年7月11日(2012.7.11)
【出願人】(504394342)アーム・リミテッド (134)
【Fターム(参考)】