(57)【特許請求の範囲】
【請求項１】
画像データを処理して、シーンの画素の色を示す色データを生成するように構成された色プロセッサと、
画像データを処理して、前記シーン内の画素の距離値を示す深度データを生成するように構成された深度プロセッサと、
データを記憶するように構成されたキャッシュと、
電子ハードウェアを備え、前記深度プロセッサからキャッシュ深度要求を受信し、前記色プロセッサからキャッシュ色要求を受信し、前記キャッシュ深度要求および前記キャッシュ色要求を前記キャッシュに提供するように構成された、アービタとを備え、前記アービタは、
前記色プロセッサおよび前記深度プロセッサから受信された前記キャッシュ深度要求および前記キャッシュ色要求に重みを割り当て、ここにおいて前記重みは前記シーンのタイプに基づいて割り当てられる、
前記重みに少なくとも部分的に基づいて前記受信されたキャッシュ深度要求およびキャッシュ色要求のうちのいずれが最も高い優先順位を有するかを決定し、
前記最も高い優先順位を有すると決定されたキャッシュ要求を前記キャッシュに提供する、
ようにさらに構成されている、装置。
【請求項２】
前記アービタは、異なるシーングループ内のシーンのために前記キャッシュ深度要求および前記キャッシュ色要求に異なる重みを割り当てるように構成されている、請求項１に記載の装置。
【請求項３】
前記アービタは、異なるタイプのシーンのために前記キャッシュ深度要求および前記キャッシュ色要求に異なる重みを割り当てるように構成されている、請求項１に記載の装置。
【請求項４】
前記アービタは、異なるシーンのために前記キャッシュ深度要求および前記キャッシュ色要求に異なる重みを割り当てるように構成されている、請求項１に記載の装置。
【請求項５】
ドライバをさらに備え、前記アービタは、前記ドライバから前記重みを受信し、前記ドライバは、前記アービタの重みレジスタを設定するように構成されている、請求項１に記載の装置。
【請求項６】
前記重みは、前記深度プロセッサから受信された深度キャッシュ要求の数、および前記色プロセッサから受信された色キャッシュ要求の数に基づいて割り当てられる、請求項１に記載の装置。
【請求項７】
前記アービタは、最も高い重みを有するように深度キャッシュ読取り要求を、前記深度キャッシュ読取り要求の次に最も高い重みを有するように深度キャッシュ書込み要求を、前記深度キャッシュ書込み要求の次に最も高い重みを有するように色キャッシュ読取り要求を、および最も低い重みを有するように色キャッシュ書込み要求を割り当てるように構成されている、請求項１に記載の装置。
【請求項８】
選択されたキャッシュ要求をキャッシュに提供する、電子的に実行される方法であって、
アービタによって、色プロセッサから１つまたは複数の第１のキャッシュ要求を受信することと、前記色プロセッサは、シーンの画像データを処理して、前記シーンの画素の色を示す色データを生成するように構成されている、
前記アービタによって、深度プロセッサから１つまたは複数の第２のキャッシュ要求を受信することと、前記深度プロセッサは、前記シーン内のピクセルの距離値を示す深度データを生成するように構成されている、
前記シーンのタイプに基づいて、前記第１および第２のキャッシュ要求の各々に重みを割り当てることと、
前記重みに少なくとも部分的に基づいて前記受信されたキャッシュ要求のうちのいずれが最も高い優先順位を有するかを決定することと、
前記最も高い優先順位を有すると決定された、前記受信された要求を、キャッシュに提供することと、
を備える、方法。
【請求項９】
前記アービタによって、異なるシーングループ内のシーンのための前記キャッシュ要求に異なる重みを割り当てることをさらに備える、請求項８に記載の方法。
【請求項１０】
前記アービタによって、異なるタイプのシーンのための前記キャッシュ要求に異なる重みを割り当てることをさらに備える、請求項８に記載の方法。
【請求項１１】
前記アービタによって、異なるシーンのための前記キャッシュ要求に異なる重みを割り当てることをさらに備える、請求項８に記載の方法。
【請求項１２】
ドライバによって、前記アービタの重みレジスタを設定するために、前記アービタによって、前記ドライバから前記重みを受信することをさらに備える、請求項８に記載の方法。
【請求項１３】
前記アービタによって、前記深度プロセッサから受信された深度キャッシュ要求の数、および前記色プロセッサから受信された色キャッシュ要求の数に基づいて前記重みを割り当てることをさらに備える、請求項８に記載の方法。
【請求項１４】
前記アービタによって、最も高い重みを有するように深度キャッシュ読取り要求を、前記深度キャッシュ読取り要求の次に最も高い重みを有するように深度キャッシュ書込み要求を、前記深度キャッシュ書込み要求の次に最も高い重みを有するように色キャッシュ読取り要求を、および最も低い重みを有するように色キャッシュ書込み要求を割り当てることをさらに備える、請求項８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本発明の実施形態は、一般にエレクトロニクスに関し、具体的には、キャッシュ要求の調停（arbitration）に関する。
【背景技術】
【０００２】
[0002]多種多様な目的のために、スマートフォンなどのモバイルデバイスが使用されているので、モバイルデバイス用のプロセッサは、ますます増加する機能を有するように設計されている。たとえば、モバイルデバイス用のプロセッサは、中央処理装置（ＣＰＵ）、グラフィックス・プロセッシング・ユニット（ＧＰＵ）、デジタル信号プロセッサ（ＤＳＰ）などの、別々の機能を有するいくつかの構成要素を含み得る。ＧＰＵは、様々なアプリケーションのための２次元（２Ｄ）および３次元（３Ｄ）画像をレンダリングするために広く使用されている。ＧＰＵは、静止画像および／またはビデオ画像をレンダリングするために使用され得る。
【０００３】
[0003]画像をレンダリングするために、ＧＰＵは、色プロセッサ（a color processor）と深度プロセッサ（a depth processor）とを含み得る。色プロセッサは、画像データを処理して、ディスプレイ上にレンダリングされるべきシーンの画素（pixels）の色を示す色データを生成することができる。深度プロセッサは、画像データを処理して、シーン内の画素の距離値を示す深度データを生成することができる。色プロセッサと深度プロセッサとは、色データと深度データとを記憶するために、メモリを共有することができる。共有メモリにアクセスするための複数の要求がある場合、要求が処理される順序は調停に基づき得る。共有メモリにアクセスするための要求間を調停する（arbitrating）既存の方法は、ＧＰＵパイプラインにおける準最適な性能とボトルネックとをもたらした。
【発明の概要】
【０００４】
[0004]本開示の一態様は、キャッシュとアービタ（an arbiter）とを含む装置である。キャッシュは、データを記憶するように構成されている。アービタは、電子ハードウェアを含む。アービタは、アービタによって受信されたデータに基づいて、異なるタイプのキャッシュ要求に重みを割り当てるように構成されている。異なるタイプのキャッシュ要求は、少なくとも第１のタイプのキャッシュ要求と、第２のタイプのキャッシュ要求とを含む。アービタはまた、深度プロセッサからキャッシュにアクセスするための第１の要求を受信するように構成されている。第１の要求は、第１のタイプのキャッシュ要求である。アービタはまた、色プロセッサからキャッシュにアクセスするための第２の要求を受信するように構成されている。第２の要求は、第２のタイプのキャッシュ要求である。アービタは、第１のタイプの要求と第２のタイプの要求とに関連する重みに少なくとも部分的に基づいて、受信された要求のうちのいずれが最も高い優先順位を有するかを決定するように構成されている。アービタは、最も高い優先順位を有すると決定された、受信された要求を、キャッシュに提供するようにさらに構成されている。
【０００５】
[0005]本開示の別の態様は、データを記憶するように構成されたキャッシュと、異なるタイプのキャッシュ要求に関連する重みと、異なるタイプのキャッシュ要求の、要求のカウントとに少なくとも部分的に基づいて、異なるタイプのキャッシュ要求の相対的優先順位（a relative priority）を決定するための調停手段（arbitration means）と、を含む装置である。調停手段は、相対的優先順位に基づいて、異なるタイプのキャッシュ要求をキャッシュに提供するように構成されている。本装置はまた、調停手段にキャッシュ要求を提供するように構成された色プロセッサと、調停手段にキャッシュ要求を提供するように構成された深度プロセッサとを含む。
【０００６】
[0006]本開示の別の態様は、選択されたキャッシュ要求をキャッシュに提供する電子的実装である。本方法は、深度プロセッサから、および色プロセッサから、深度プロセッサと色プロセッサとによって共有されるキャッシュにアクセスするための、複数の異なるタイプのキャッシュ要求を受信することと、異なるタイプのキャッシュ要求に関連する１つまたは複数の重みと、異なるタイプのキャッシュ要求に関連する１つまたは複数のカウントとに少なくとも部分的に基づいて、受信されたキャッシュ要求のうちの選択されたキャッシュ要求が、受信されたキャッシュ要求のうちの最も高い優先順位を有すると決定することと、受信されたキャッシュ要求のうちの他のキャッシュ要求をキャッシュに提供する前に、選択されたキャッシュ要求をキャッシュに提供することと、を含む。
【０００７】
[0007]本開示の別の態様は、実行されたとき、グラフィックス・プロセッシング・ユニットに、方法を実行するよう指示する命令を含む、非一時的コンピュータ可読ストレージである。本方法は、異なるタイプのキャッシュ要求に関連する重みと、異なるタイプのキャッシュ要求に関連するカウントとに少なくとも部分的に基づいて、キャッシュにアクセスするための複数の異なるタイプのキャッシュ要求からキャッシュ要求を選択することと、なお、異なるタイプのキャッシュ要求は、色プロセッサと深度プロセッサとによって提供される、選択されたキャッシュ要求をキャッシュに提供することとを含む。
【０００８】
[0008]本開示を要約する目的のために、本発明の特定の態様、利点、および新規な特徴が、本明細書に記載されている。必ずしもすべてのそのような利点が、本発明の任意の特定の実施形態に従って達成され得るとは限らないことが理解されるべきである。したがって、本発明は、本明細書に教示または示唆され得るような他の利点を必ずしも達成することなしに、本明細書に教示されるような１つの利点または利点のグループを達成または最適化する方法で具現化または実行され得る。
【図面の簡単な説明】
【０００９】
【図１】[0009]実例となるグラフィックス・プロセッシング・ユニットの概略ブロック図。
【図２】[0010]一実施形態による、深度プロセッサおよび色プロセッサからキャッシュ要求を受信して、キャッシュ要求をキャッシュに提供するように構成された、実例となるアービタを含む概略ブロック図。
【図３】[0011] 一実施形態による、実例となるアービタの概略ブロック図。
【図４】[0012] 一実施形態による、複数の異なるタイプのキャッシュ要求から選択されたキャッシュ要求をキャッシュに提供するプロセスの実例となる流れ図。
【詳細な説明】
【００１０】
[0013]説明の重複を避けるために、同じまたは類似の機能を有する構成要素は、同じ参照番号によって参照され得る。
【００１１】
[0014]本明細書に特定の実施形態が記載されているが、本明細書で説明されるすべての利点および特徴を提供するとは限らない実施形態を含む他の実施形態は、当業者には明らかであろう。
【００１２】
[0015]一般的に、本開示の態様は、共有キャッシュにアクセスするための深度要求と色要求との間の調停に関する。アービタは、深度プロセッサから、深度書込みおよび深度読取り（a depth write and a depth read）などの深度要求（depth requests）を、ならびに色プロセッサから、色書込みおよび色読取り（a color write and a color read）などの色要求（color requests）を受信することができる。アービタは、共有キャッシュへの様々な要求間で設定可能な優先順位を有することができる。したがって、様々な要求間の優先順位は、システムの性能を向上させるために調整され得る。
【００１３】
[0016]本明細書に記載されるアービタの実施形態は、様々なタイプのキャッシュ要求間の優先順位を決定するための設定可能な重みを有することができる。これらの重みは、ドライバおよび／またはハードウェアによってプログラムされ得る。そのようなアービタは、共有キャッシュを効率的に使用するために、および／またはパイプラインにおけるボトルネックを避けるために、異なるタイプのキャッシュ要求間の相対的優先順位に基づく順序で、共有キャッシュに要求を提供することができる。いくつかの例では、異なるタイプのキャッシュ要求間の相対的優先順位は、たとえ、異なるタイプのキャッシュ要求のうちの１つまたは複数が、アービタによって比較的長期間にわたって受信されない、または、他のタイプのキャッシュ要求と比較して比較的頻度が低い（たとえば、特定のタイプのキャッシュ要求を受信することなしに２０のキャッシュ要求）時でも、同じままであり得る。キャッシュ要求キューは、特定の実装形態に応じて、必要とされない場合がある。
【００１４】
[0017]キャッシュ要求の調停は、共有キャッシュ内のロケーション（a location）の可用性に基づいて決定され得る。優先順位は、特定のタイプのキャッシュ要求のカウンタのカウント値を、特定のタイプのキャッシュ要求の重みレジスタに記憶されたそれぞれの重みと比較することに基づいて決定され得る。１つまたは複数の条件が検出されると、特定のタイプのキャッシュ要求のカウンタはクリアされ得る。
【００１５】
[0018]本開示に記載される主題の特定の実装形態は、とりわけ、以下の潜在的な利点のうちの１つまたは複数を実現するために実装され得る。異なるタイプのキャッシュ要求の相対的優先順位は、より良好な性能を実現するために、異なるシーンに基づいて設定され得る。可能な場合、利用可能な宛先ロケーション（available destination locations）を有するキャッシュ要求は、より良い性能を実現するために、利用可能な宛先ロケーションを持たない他のキャッシュ要求の前に供給され（served）得る。本明細書に記載される調停スキーム（arbitration schemes）は、たとえ１つまたは複数のタイプのキャッシュ要求が比較的長期間にわたって受信されない場合でも、異なるタイプのキャッシュ要求の適切な優先順位評価（priority ratings）を維持することができる。本明細書に記載されるアービタは、比較的少量のハードウェアで実装され得る。たとえば、１つの例示的なアービタは、２４の１ビットフリップフロップだけを用いて（with only 24 one bit flip−flops）４つの異なるタイプのキャッシュ要求に優先順位を割り当てることができる。この例では、アービタは、約１０００μｍ2未満の領域を消費することができる。本明細書に記載されるアービタは、比較的高速で実装され得る。たとえば、２８ナノメートルの処理技術で０．８５５ｖの電源電圧で動作するときに、アービタにおける最長パスは、約５００ピコ秒以下でトラバースされ得る。
【００１６】
[0019]いくつかの実施形態では、本明細書に記載されるシステムおよび装置は、本明細書に記載される１つまたは複数の機能を実装するための、グラフィックス・プロセッシング・ユニット（ＧＰＵ）などの集積回路を含む。そのようなグラフィックス・プロセッシング・ユニットの１つの非限定的な例は、カリフォルニア州サンディエゴのＱｕａｌｃｏｍｍ社から提供される、チップセットのＳＮＡＰＤＲＡＧＯＮ（登録商標）ラインの一部であるＡＤＲＥＮＯ（登録商標）統合グラフィックス・ソリューションである。これらの実施形態では、ＧＰＵは、本明細書に記載される機能のうちの１つまたは複数を実行するための命令を記憶したメモリを含み得る。
【００１７】
[0020]図１は、実例となるグラフィックス・プロセッシング・ユニット（ＧＰＵ）１００の概略ブロック図である。そのようなＧＰＵは、たとえば、スマートフォン用に設計された集積回路に含まれ得る。図示されたＧＰＵ１００は、シェーダシステム（a shader system）１１０と、色／深度ブロック１２０ａ〜１２０ｄと、メモリ調停（ＭＡＲＢ：memory arbitration）ブロック１３０ａ〜１３０ｄとを含む。ＧＰＵ１００は図示されるよりも多数の、またはより少数のブロックを含み得ることが理解されよう。ＧＰＵ１００は、ＧＰＵの外部にあるグラフィックス・メモリ（Ｇｍｅｍ）１４０ａ〜１４０ｄと通信し得る。ＧＰＵ１００は中央処理装置（ＣＰＵ）１５０と通信し得る。Ｇｍｅｍ１４０ａ〜１４０ｄ、および／またはＣＰＵ１５０は、ＧＰＵ１００を含むチップセットまたはプロセッサに含まれ得る。
【００１８】
[0021]シェーダシステム１１０は、レンダリングされるべき画像における適切なレベルの光および／または色を生成するために、グラフィックス・データを処理することができる。シェーダシステム１１０は、レンダリングされるべき画像のいくつかまたはすべての位置（position）、色相（hue）、彩度（saturation）、輝度（brightness）、コントラスト等、またはそれらの任意の組合せを調整することができる。シェーダシステム１１０は、色／深度ブロック１２０ａ〜１２０ｄに画像データを提供することができる。
【００１９】
[0022]各色／深度ブロック１２０ａ〜１２０ｄは、色プロセッサ２２０ａ〜２２０ｄと、深度プロセッサ２１０ａ〜２１０ｄとを含む。色プロセッサ２２０ａ〜２２０ｄは、画像データを処理して、ディスプレイ上にレンダリングされるべきシーンの画素の色を示す色データを生成することができる。深度プロセッサ２１０ａ〜２１０ｄは、画像データを処理して、シーン内の画素の距離値を示す深度データを生成することができる。深度プロセッサと色プロセッサとは、任意の適切な回路によって実装され得る。いくつかの実施形態では、深度プロセッサは色プロセッサから離れていてよい。深度プロセッサと色プロセッサとは異なる機能を実装するが、特定の実施形態では、これらのプロセッサは、いくつかの共通回路を共有することができる。色／深度ブロック１２０ａ〜１２０ｄの各々は、ディスプレイの異なる部分に対応し得る。たとえば、ディスプレイは、４つの象限（quadrants）に分割されてよく、色／深度ブロック１２０ａ〜１２０ｄの各々はその４つの象限のうちの１つに対応し得る。図１に示されるＧＰＵ１００は、それぞれがディスプレイの異なる部分に対応する４つの色／深度ブロック１２０ａ〜１２０ｄを含むが、特定のアプリケーションのために任意の適切な数の色／深度ブロックがＧＰＵに実装され得ることが理解されよう。たとえば、特定のアプリケーションに単一の色／深度ブロックが実装され得る。いくつかの実装形態では、１つのＭＡＲＢブロックは、複数のＲＢブロック間で共有され得る。
【００２０】
[0023]図１に示されるように、各色／深度ブロック１２０ａ〜１２０ｄは、それぞれのＭＡＲＢブロック１３０ａ〜１３０ｄと通信し得る。いくつかの他の実装形態では、色／深度ブロック１２０ａ〜１２０ｄのうちの２つ以上が、単一のＭＡＲＢブロック１３０ａと通信し得る。各ＭＡＲＢブロックは、アービタとキャッシュとを含む。ＭＡＲＢブロック１３０ａのキャッシュからのデータは、Ｇｍｅｍ１４０ａに提供され得る。図１では、各ＭＡＲＢブロック１３０ａ〜１３０ｄは、アービタとキャッシュとを含む。
【００２１】
[0024]図２は、ＭＡＲＢブロック１３０に含まれるアービタとキャッシュとへの、またはそこからのデータフローを示す概略ブロック図である。ＭＡＲＢブロック１３０は、図１からのＭＡＲＢブロック１３０ａ〜１３０ｄのうちの１つであり得る。ラスタライザ（a rasterizer）からのデータは、深度プロセッサ２１０に提供され得る。深度プロセッサ２１０は、キャッシュ２５０にアクセスするための深度読取り要求と深度書込み要求とを生成することができる。深度プロセッサ２１０は、アービタ２４０に、深度読取り要求と深度書込み要求とを提供することができる。色プロセッサ２２０は、深度プロセッサ２１０からデータを受信することができる。特定の実装形態では、色プロセッサ２２０は、ストリームプロセッサ２３０を介して深度プロセッサ２１０からいくつかのデータを受信することができる。色プロセッサ２２０は、キャッシュ２５０にアクセスするための色読取り要求と色書込み要求とを生成することができる。色プロセッサ２２０は、アービタ２４０に、色読取り要求と色書込み要求とを提供することができる。深度プロセッサ２１０と色プロセッサ２２０とは、図１の色／深度ブロック１２０ａ〜１２０ｄのうちの１つに含まれ得る。
【００２２】
[0025]アービタ２４０は、深度プロセッサ２１０と色プロセッサ２２０とからキャッシュ要求を受信して、キャッシュ要求をキャッシュ２５０に提供することができる。キャッシュ２５０は、深度プロセッサ２１０と色プロセッサ２２０とによって共有され得る。深度プロセッサ２１０と色プロセッサ２２０との両方は、それぞれ読取りおよび書込み要求をキャッシュ２５０に送信することができる。したがって、特定の実施形態では、キャッシュ２５０に、深度読取り、深度書込み、色読取り、および色書込みの４つの異なるタイプのキャッシュ要求が提供され得る。
【００２３】
[0026]グラフィックス・パイプラインでは、色命令よりも深度命令が優先され得る。対応する色要求が供給されていない場合、キャッシュへの深度読取りまたは深度書込み要求がブロックされ得る。深度要求が十分に供給されていない場合、アイドル命令が実行されるボトルネックがパイプラインにおいて発生し得る。したがって、アービタ２４０は、複数のキャッシュ要求がある場合、そのような手順を制定しないデバイスと比較してより高い性能を実現するために、どの要求を最初にキャッシュ２５０に提供するべきかを決定することができる。
【００２４】
[0027]アービタ２４０は、１つまたは複数の深度プロセッサ２１０と１つまたは複数の色プロセッサ２２０とから異なるタイプのキャッシュ要求を受信して、受信した要求のうちのいずれが最も高い優先順位を有するかを決定することができる。たとえば、アービタ２４０は、深度読取り、深度書込み、色読取り、および色書込みのうちの２つ以上を受信して、どの要求が最も高い優先順位を有するかを決定することができる。次いで、最も高い優先順位を有するキャッシュ要求が、他の受信された要求がキャッシュ２５０に提供される前に、アービタ２４０によってキャッシュ２５０に提供され得る。アービタ２４０は、複数の入力を受信して、特定の時点で選択されたキャッシュ要求をキャッシュ２５０に提供するための単一の出力を生成することができる。アービタ２４０の複数の入力の各々は、異なるタイプのキャッシュ要求に対応し得る。たとえば、図２に示されるように、アービタ２４０の４つの入力は、それぞれ深度読取り、深度書込み、色読取り、および色書込みに対応し得る。要求の優先順位は、設定可能であり得る。
【００２５】
[0028]アービタ２４０は、どのキャッシュ要求が最も高い優先順位を有するかを決定する際に、受信されたキャッシュ要求に関連するキャッシュ２５０内のロケーションの可用性を調べることができる。たとえば、キャッシュ２５０から受信されたキャッシュ情報が、選択されたキャッシュ要求に関連するキャッシュ２５０のロケーションが利用可能ではないことを示す場合、選択されたキャッシュ要求は、より低い優先順位を有すると決定され得る。要求されたデータ以外のデータがキャッシュロケーションに記憶されている場合、および／または有効なデータがキャッシュロケーションに記憶されていない場合、そのキャッシュロケーション（cache location）は、利用可能ではない場合がある。
【００２６】
[0029]図示されるように、アービタ２４０は、単一の要求を一度にキャッシュ２５０に提供することができる。キャッシュ２５０はまた、図１のＧｍｅｍ１４０ａ〜１４０ｄのうちの１つであり得る、Ｇｍｅｍ１４０、および統合キャッシュ（Ｕｃａｃｈｅ：a unified cache）２６０とインターフェースすることができる。キャッシュ２５０は、Ｇｍｅｍ要求をＧｍｅｍ１４０に提供して、Ｇｍｅｍ１４０からＧｍｅｍデータを受信することができる。同様に、キャッシュ２５０は、Ｕｃａｃｈｅ要求をＵｃａｃｈｅ２６０に提供して、Ｕｃａｃｈｅ２６０からＵｃａｃｈｅデータを受信することができる。Ｇｍｅｍ１４０とＵｃａｃｈｅ２６０とは、それぞれシステムメモリ２７０と通信し得る。
【００２７】
[0030]図３は、一実施形態による、アービタ２４０の実例となる例の概略ブロック図である。図３では、「Ｚ」は深度を指し、「Ｃ」は色を指す。アービタ２４０は、深度読取り（Ｚ読取り）、深度書込み（Ｚ書込み）、色読取り（Ｃ読取り）、および色書込み（Ｃ書込み）を含む、異なるタイプのキャッシュ要求を受信して、異なるタイプのキャッシュ要求の相対的優先順位に基づいて、異なるタイプのキャッシュ要求のうちの選択された要求を提供するように構成されている。アービタ２４０は、電子ハードウェアを備え、デジタル回路などの任意の適切な回路によって実装され得る。アービタ２４０は、重みレジスタ３２０〜３２６と、入力カウンタ３３０〜３３６と、出力カウンタ３３８と、調停回路（an arbitration circuit）３４０と、マルチプレクサ３６０とを含み得る。いくつかの実装形態では、アービタ２４０は、図示されるよりも多数の、またはより少数の構成要素を含み得ることが理解されよう。
【００２８】
[0031]アービタ２４０は、キャッシュ要求のタイプごとに重みレジスタを含み得る。たとえば、図３に示されるように、重みレジスタは、深度読取り重みレジスタ３２０と、深度書込み重みレジスタ３２２と、色読取り重みレジスタ３２４と、色書込み重みレジスタ３２６とを含む。重みレジスタの各々は、１つまたは複数の重みから特定のタイプのキャッシュ要求の相対的優先順位が決定され得る、その１つまたは複数の重みを含み得る。重みレジスタは設定可能であり、様々な方法で設定され得る。たとえば、特定の重みレジスタの重みは、ドライバによって設定され得る。代替で、または追加で、重みレジスタのうちの１つまたは複数のものの重みは、異なるタイプのキャッシュ要求に重みを割り当てるためにアービタ２４０によって受信されるデータを生成するように構成された重み付け回路（a weighting circuit）などのハードウェアによってプログラムされ得る。重みレジスタの重みは、先入れ先出し（ＦＩＦＯ：a first in first out）カウンタからの情報などの、パイプライン情報に基づいて設定され得る。重みレジスタ３２０〜３２６内の１つまたは複数の重みを調整することによって、異なるタイプのキャッシュ要求間の相対的優先順位を変更することができる。たとえば、色要求よりも多くの実行するべき複数の深度要求がある場合、一実施形態によれば、深度重みレジスタは色重みレジスタよりも高い重みを割り当てられ得る。重みは、たとえば、異なるシーンまたはシーンのタイプに対応する、割り当てられた値であり得る。したがって、優先順位は、特定のシーンまたはシーンのグループにカスタマイズされ得る。
【００２９】
[0032]アービタ２４０は、異なるタイプのキャッシュ要求ごとに１つの入力カウンタを含み得る。入力カウンタは、許可されたキャッシュ要求の数を数えることができる。したがって、入力カウンタは許可カウンタ（grant counters）と呼ばれ得る。図３に示されるように、深度読取りカウンタ３３０と、深度書込みカウンタ３３２と、色読取りカウンタ３３４と、色書込みカウンタ３３６との４つの入力カウンタがあり得る。入力カウンタ３３０〜３３６の各々は、異なるタイプのキャッシュ要求に対応し得る。各入力カウンタ３３０〜３３６は、特定のタイプのキャッシュ要求が何回処理されたかを数えることができる。たとえば、各入力カウンタ３３０〜３３６は、それぞれのタイプのキャッシュ要求が、アービタ２４０によって何回受信されたかを、および／またはキャッシュ２５０に何回提供されたかを追跡することができる。入力カウンタ３３０〜３３６は、カウント値をインクリメントすること、および／またはデクリメントすることによって、キャッシュ要求が許可された回数を追跡することができる。いくつかの他の実施形態では、異なる数の入力カウンタ３３０〜３３６が実装され得る、および／または異なる数のタイプのキャッシュ要求が処理され得ることが理解されよう。入力カウンタ３３０〜３３６のうちの１つが特定のカウント値に到達すると、キャッシュ要求の相対的優先順位は変化することができる。たとえば、特定の入力カウンタのカウント値が、対応する重みレジスタ内の重み以上である場合、対応するタイプのキャッシュ要求は、他のタイプのキャッシュ要求と比較してより低い優先順位を有し得る。
【００３０】
[0033]アービタ２４０はまた、合計でいくつのキャッシュがアービタ２４０によって処理されたかを数えるための出力カウンタ３３８を含み得る。たとえば、出力カウンタ３３８は、合計でいくつのキャッシュ要求がアービタ２４０によって受信されたか、および／またはアービタ２４０によってキャッシュ２５０に提供されたかを追跡することができる。一実施形態（図示せず）では、加算回路は、出力カウンタ３３８の代わりに合計カウント値を生成するために、入力レジスタ３３０〜３３６のカウント値を加算することができる。
【００３１】
[0034]アービタの入力カウンタ３３０〜３３６および／または出力カウンタ３３８は、アービタ２４０が１つまたは複数の条件を検出することに応答してリセットされ得る。アービタ２４０の１つまたは複数のカウンタをリセットするための１つの例示的な条件は、指定された数のキャッシュ要求がアービタ２４０によって処理されたことである。たとえば、出力カウンタ３３８は、キャッシュ２５０に提供されたキャッシュ要求の数を数えることができ、調停回路３４０は、出力カウンタ３３８が特定のカウント値に到達したと検出することに応答して１つまたは複数のカウンタをリセットすることができる。したがって、カウンタは、キャッシュ要求が指定された数のキャッシュ要求（たとえば、１０、１５、２０、３０のキャッシュ要求）を超えてバランスを取られる（balanced over）ようにリセットされ得る。アービタ２４０の１つまたは複数のカウンタをリセットするための別の例示的な条件は、入力カウンタ３３０〜３３６のうちの１つまたは複数がしきい値カウント値に到達することである。そのようなしきい値カウント値は、入力カウンタによって異なる（different for different input counters）場合がある。ある例では、アービタ２４０の各入力カウンタ３３０〜３３６が、ゼロ、または対応する優先順位レジスタにおける重み以上、であるカウント値を有する場合、アービタ２４０内のすべてのカウンタが０などの初期値にクリアされ得る。代替で、または追加で、キャッシュ２５０に提供されたキャッシュ要求の合計数が、アービタ２４０の重みレジスタ３２０〜３２６の重みのすべての合計以上である場合（たとえば、出力カウンタ３３８によって数えられるように）、入力カウンタ３３０〜３３６と出力カウンタ３３８とを含むすべてのカウンタが０などの初期値にクリアされ得る。したがって、アービタ２４０は、アービタ２４０のカウンタ３３０〜３３８のうちの１つまたは複数における値がクリアされるようにすることができる。
【００３２】
[0035]調停回路３４０は、異なるタイプのキャッシュ要求間の相対的優先順位を決定することができる。特定の実装形態では、調停回路３４０は、デジタル回路によって実装され得る。調停回路３４０は、異なるタイプのキャッシュ要求を受信することができる。調停回路３４０の異なる入力は、各タイプのキャッシュ要求を受信することができる。たとえば、図３に示されるように、調停回路３４０の異なる入力は、それぞれ深度読取り要求と、深度書込み要求と、色読取り要求と、色書込み要求とを受信する。調停回路３４０は、重みレジスタ３２０〜３２６からの情報、入力カウンタ３３０〜３３６からの情報、キャッシュ２５０からの情報、またはそれらの任意の組合せに基づいて、異なるタイプのキャッシュ要求に優先順位を割り当てることができる。最も高い優先順位を有するキャッシュ要求が、キャッシュ２５０に提供され得る。調停回路３４０は、どのタイプのキャッシュ要求をキャッシュ２５０に提供するべきかを示すセレクト信号（a select signal）を生成することができる。マルチプレクサ３６０は、調停回路３４０から選択信号を受信して、選択信号に基づいて、選択されたキャッシュ要求をキャッシュ２５０に提供することができる。
【００３３】
[0036]優先順位付きキュー（priority queue）は、最初の優先順位を設定するために初期化され得る。たとえば、優先順位付きキューは、以下の相対的優先順位を有するために初期化され得る：最も高い優先順位を有する深度読取り、次に最も高い優先順位を有する深度書込み、次に最も高い優先順位を有する色読取り、および最も低い優先順位を有する色書込み。優先順位付きキューは、重みレジスタ３２０〜３２６に割り当てられた値に少なくとも部分的に基づいて設定され得る。調停回路３４０は、優先順位付きキューおよび／または他の機能を実装するためにステートマシンを含み得る。
【００３４】
[0037]調停回路３４０は、優先順位付きキューを管理することができる。一実施形態では、有効な要求を有する優先順位付きキューにおける最も高い相対的優先順位を有するタイプのアービタ２４０によって受信されるキャッシュ要求、キャッシュ２５０内の要求に関連する利用可能なロケーション（たとえば、キャッシュ２５０によって提供された情報から決定される）、および、対応する重みレジスタ値未満のカウント値を有する対応する入力カウンタが、キャッシュ２５０に提供されることによって供給され得る。次いで、キャッシュ要求の優先順位付きキューは、まず、キューの末尾に供給されるタイプのキャッシュ要求を移動することによって変化することができる。次いで、それの入力カウンタが、それの対応する重みレジスタ内の値以上であるカウント値を有する場合、先頭タイプのキャッシュ要求（the leading type of cache request）がキューの末尾に移動され得る。キューの先頭の要求は、キュー内の先頭タイプのキャッシュ要求の入力カウンタが、それの対応する入力カウンタ内に、それの対応する重みレジスタ内の値未満であるカウント値を有する、またはすべての入力カウンタのカウント値が、それらの対応する重みレジスタ内の値以上であると決定されるまで、末尾に移動され得る。いくつかの他の実施形態では、重みレジスタ内の値とカウンタ内の値との間の異なる比較が実行され得ることが理解されよう。たとえば、カウント値が対応する重みレジスタ値を超えるかどうかを調べる代わりに、調停回路は、カウント値が対応する重み値未満かどうかを調べることができる。優先順位付きキューは、代替で、または追加で、キャッシュ要求に関連するキャッシュ内のロケーションが利用可能ではない場合、先頭タイプのキャッシュ要求をキューの末尾に移動させることができる。
【００３５】
[0038]図４は、一実施形態による、複数の異なるタイプのキャッシュ要求から選択されたキャッシュ要求をキャッシュに提供するプロセス４００の実例となる流れ図である。処理４００において、異なるタイプのキャッシュ要求が受信されて、最も高い優先順位を有する選択されたキャッシュ要求がキャッシュに提供される。ＧＰＵ内のアービタは、深度プロセッサと色プロセッサとによって共有されるキャッシュに特定のタイプのキャッシュ要求を選択的に提供するために、プロセス４００のうちのいくつかまたはすべてを実行することができる。プロセス４００は、たとえば、本明細書に記載される装置、たとえば、図１、図２、および／または図３の装置、のうちのいずれかによって実装され得る。さらに、本明細書に記載される装置のうちのいずれかは、プロセス４００の特徴の任意の組合せを実装することができる。
【００３６】
[0039]ブロック４１０で、異なるタイプのキャッシュ要求に関連する重みが割り当てられ得る。たとえば、重みレジスタは、それぞれ色読取り、色書込み、深度読取り、および深度書込みに対応する値でプログラムされ得る。このように、様々なタイプのキャッシュ要求間の優先順位が初期化され得る。重みレジスタは、ハードウェア、ファームウェア、またはそれらの任意の組合せの指示でプログラムされ得る。重みは、初期プログラミングの後に異なる値でプログラムされ得る。いくつかの実装形態では、重みの値はキャッシュ要求を受信した後に調整され得る。異なる重み値を割り当てることによって、異なるタイプのキャッシュ要求の相対的優先順位を調整することができる。
【００３７】
[0040]ブロック４２０で、キャッシュ要求が受信され得る。たとえば、アービタは、深度プロセッサからのキャッシュ要求と、色プロセッサからのキャッシュ要求とを受信することができる。したがって、アービタは、異なるプロセッサから異なるタイプのキャッシュ要求を、および／または、同じプロセッサから異なるタイプのキャッシュ要求を受信することができる。異なるタイプのキャッシュ要求は、アービタの異なる入力接点（input contacts）で受信され得る。２つ以上の異なるタイプのキャッシュ要求がアービタによって受信されると、アービタは、どのタイプの要求が最も高い相対的優先順位を有するかを決定して、次いで、最も高い相対的優先順位を有するタイプの要求を最初にキャッシュに提供することができる。
【００３８】
[0041]ブロック４３０で、キャッシュ要求に関連するキャッシュロケーションは利用可能かどうかが決定され得る。たとえば、アービタは、キャッシュへの読取りまたは書込みに関連するキャッシュロケーションが利用可能か否かを示すキャッシュから情報を受信することができる。より具体的には、特定の実施形態では、アービタは、色読取り、色書込み、深度読取り、または深度書込みのうちの１つまたは複数に関連するキャッシュロケーションが利用可能かどうかを示す情報を受信することができる。次いで、アービタは、特定のキャッシュ要求に関連するキャッシュロケーションが利用可能かどうかを決定することができる。
【００３９】
[0042]ブロック４４０で、特定のタイプのキャッシュ要求の、処理されたキャッシュ要求の数が、特定のタイプに関連する重みと比較され得る。一例では、カウンタは、特定のタイプのキャッシュ要求が処理されるたびに追跡することができ、カウンタのカウント値は、特定のタイプのキャッシュ要求の対応する重みレジスタに記憶された重みと比較され得る。そのような比較は、アービタによって受信された異なるタイプのキャッシュ要求のうちの１つまたは複数のために実行され得る。カウンタは、アービタが、たとえば上述した条件を検出することに応答してクリアされ得る。
【００４０】
[0043]ブロック４５０で、最も高い優先順位を有すると決定されたタイプのキャッシュ要求がキャッシュに提供され得る。最も高い優先順位は、キャッシュ内の関連ロケーションが利用可能かどうかに基づいて、および／または、処理された特定のタイプのキャッシュ要求の数のカウントと、その特定のタイプのキャッシュ要求の重みとの比較に基づいて、決定され得る。最も高い優先順位は、たとえば、要求が有効かどうかを決定することと、その要求に関連するキャッシュロケーションが利用可能かどうかを調べることと、次いで、優先順位付きキューの先頭のキャッシュ要求のタイプに関連するカウント値を重みレジスタ内の対応する値と比較することと、によって決定され得る。たとえば、カウント値は、最初に、優先順位付きキューの先頭のタイプのキャッシュ要求の重みレジスタ内の対応する値と比較され得る。次いで、そのような比較が、そのタイプのキャッシュ要求をキャッシュに提供しないことを示す場合、カウント値は、優先順位付きキュー内の次の異なるタイプのキャッシュ要求の重みレジスタ内の対応する値と比較され得る。これは、カウント値と、重みレジスタ内の対応する値との比較が、特定のタイプのキャッシュ要求をキャッシュに提供することを示すまで繰り返され得る。
【００４１】
[0044]キャッシュ要求がキャッシュに提供された後、プロセス４００は、キャッシュ要求を受信すること、そのような要求に関連するロケーションが利用可能かどうかを決定すること、特定のタイプの要求の数を対応する重みと比較すること、キャッシュ要求をキャッシュに提供すること、またはそれらの任意の組合せを継続することができる。
【００４２】
[0045]上記に記載された実施形態のうちのいくつかは、グラフィックス・プロセッシング・ユニットに関連する例を提供している。本明細書で論じられた技術の実施形態の原理および利点は、多数の汎用または専用コンピューティングシステム環境または構成で動作可能である。本明細書に記載される技術で使用するのに適し得る、そのようなコンピューティングシステム、環境、および／または構成の例としては、これらに限定されないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、タブレットコンピュータ、マルチプロセッサシステム、プロセッサベースのシステム、プログラマブル家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのうちのいずれかを含む分散コンピューティング環境などがある。
【００４３】
[0046]当業者は、本明細書に開示された実施形態に関連して説明される様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムの動作は、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることをさらに理解するであろう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、および動作を、上記では概してそれらの機能に関して説明した。そのような機能性がハードウェアとして実装されるか、またはソフトウェアとして実装されるかは、システム全体に課される設計制約および特定のアプリケーションに依存する。当業者は、各特定のアプリケーションごとに様々な方法で説明された機能性を実装することができるが、そのような実装形態の決定は、本開示の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【００４４】
[0047]本明細書で開示された実施形態に関連して説明された、様々な例示的な論理ブロック、モジュール、および回路は、任意の適切な汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または他のプログラマブル論理デバイス、ディスクリートゲートまたはトランジスタ論理、ディスクリートハードウェアコンポーネント、あるいは本明細書に記載された機能を実行するように設計されたそれらの任意の組合せで、実装または実行され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替では、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであり得る。プロセッサはまた、コンピューティングデバイスの組合せとして、たとえば、ＤＳＰとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと関連する１つまたは複数のマイクロプロセッサ、あるいは他の任意のそのような構成として実装され得る。さらに、プロセッサは、単一のコアまたは複数のコアを有し得る。さらに、プロセッサは、グラフィックス・プロセッサなどの任意の専用プロセッサであり得る。
【００４５】
[0048]１つまたは複数の例示的な実施形態では、説明された機能および方法は、ハードウェア、ソフトウェア、またはプロセッサ上で実行されるファームウェア、あるいはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、その機能は非一時的コンピュータ可読ストレージに記憶され得る。限定ではなく例として、そのような非一時的コンピュータ可読ストレージは、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭまたは他の光学ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは命令またはデータ構造の形態で所望のプログラムコードを記憶するために使用され得てコンピュータによってアクセスされ得る他の任意の非一時的媒体、を備え得る。さらに、本明細書で論じられた方法は、少なくとも物理的な回路によって実行されることが理解されよう。したがって、特許請求の範囲は、純粋な金属プロセス（purely metal processes）または抽象的概念をカバーすることを意図されない。実際、開示された技法は、精神的なステップには適用されず、人間の心の中で、または一枚の紙の上に書いている人間によって、実行されない。
【００４６】
[0049]文脈が明らかに要求しない限り、記述および特許請求の範囲を通して、「備える（ｃｏｍｐｒｉｓｅ）」、「備えている（ｃｏｍｐｒｉｓｉｎｇ）」などの用語は、排他的または網羅的な意味とは反対に、包括的な意味、すなわち、「含むが、それに限定されない（including, but not limited to）」の意味で解釈されるべきである。本明細書で一般的に使用される「結合された（ｃｏｕｐｌｅｄ）」、「接続された（ｃｏｎｎｅｃｔｅｄ）」などの用語は、直接接続され得る、または１つまたは複数の中間要素によって接続され得る、２つ以上の要素を指す。さらに、「本明細書で（ｈｅｒｅｉｎ）」、「上記で（ａｂｏｖｅ）」、「以下で（ｂｅｌｏｗ）」などの用語、および同様の意味の用語は、本明細書で使用される場合、本明細書の任意の特定の部分ではなく、本明細書を全体として指すものとする。文脈が許せば、単数または複数を使用する、上記の詳細な説明における用語は、それぞれ複数または単数も含み得る。２つ以上の項目のリストに関連した「または（ｏｒ）」という用語は、その用語が用語の以下の解釈：リスト内の項目のうちのいずれか、リスト内の項目のうちのすべて、およびリスト内の項目の任意の組合せ、のうちのすべてをカバーする。本明細書で提供されるすべての数値は、測定誤差内の類似した値を含むことが意図される。
【００４７】
[0050]さらに、本明細書で使用される、とりわけ「できる（ｃａｎ）」、「できた（ｃｏｕｌｄ）」、「かもしれない（ｍｉｇｈｔ）」、「たとえば（ｅ．ｇ．）」、「たとえば（ｆｏｒ  ｅｘａｍｐｌｅ）」、「などの（ｓｕｃｈ  ａｓ）」などの条件付き言語は、特に異なるように明記されない限り、または使用される際に文脈内で違ったふうに理解されない限り、一般に、特定の実施形態は、特定の特徴、要素、および／または状態を含むが、他の実施形態はこれらを含まない、ことを伝えることが意図される。したがって、そのような条件付き言語は、一般的に、特徴、要素、および／または状態が、１つまたは複数の実施形態にとって多少なりとも必要である（in any way required for）ことを、あるいは、１つまたは複数の実施形態が、作成者の入力（author input）またはプロンプティングの有無にかかわらず、これらの特徴、要素、および／または状態は任意の特定の実施形態に含まれているかどうか、または任意の特定の実施形態で実行されるべきかどうかを決定するためのロジックを必ず含むことを、暗示することを意図していない。
【００４８】
[0051]実施形態の上記の詳細な説明は、包括的であること、または本発明を上記で開示された正確な形態に限定すること、が意図されるものではない。本発明の特定の実施形態、および本発明の例が、例示の目的のために上記に記載されているが、たとえば、プロセスまたはブロックが所与の順序で提示されているが、代替の実施形態は、異なる順序で、動作を有するルーチンを実行してもよく、ブロックを有するシステムを使用してもよく、また、いくつかのプロセスまたはブロックは削除、移動、追加、細分化、結合、および／または修正され得る。これらのプロセスまたはブロックの各々は、様々な異なる方法で実装され得る。また、プロセスまたはブロックは、順番に実行されているように時々示されているが、これらのプロセスまたはブロックは、代わりに並行して実行されてもよく、異なる時間に実行されてもよい。
【００４９】
[0052]特定の実施形態が説明されたが、これらの実施形態は例としてのみ提示されており、本開示の範囲を限定することが意図されるものではない。たとえば、関連分野の当業者が認識するように、本発明の範囲内で様々な同等の修正が可能である。さらに、上記に記載された様々な実施形態の要素および行為は、さらなる実施形態を提供するために結合され得る。実際、本明細書に記載された方法、システム、装置、および製品は、他の様々な形態で具現化され得る。さらに、本明細書に記載された方法、システム、装置、および製品の形態の様々な省略、置換、および変更は、本開示の精神から逸脱することなしになされ得る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］  データを記憶するように構成されたキャッシュと、
電子ハードウェアを備えるアービタとを備え、前記アービタが、
前記アービタによって受信されたデータに基づいて、異なるタイプのキャッシュ要求に重みを割り当て、前記異なるタイプのキャッシュ要求が、少なくとも第１のタイプのキャッシュ要求と、第２のタイプのキャッシュ要求とを含み、
深度プロセッサから前記キャッシュにアクセスするための第１の要求を受信し、前記第１の要求が、前記第１のタイプのキャッシュ要求であり、
色プロセッサから前記キャッシュにアクセスするための第２の要求を受信し、前記第２の要求が、前記第２のタイプのキャッシュ要求であり、
前記第１のタイプの要求と前記第２のタイプの要求とに関連する前記重みに少なくとも部分的に基づいて、前記受信された要求のうちのいずれが最も高い優先順位を有するかを決定し、
前記最も高い優先順位を有すると決定された、前記受信された要求を、前記キャッシュに提供する、ように構成されている、
装置。
［Ｃ２］  前記アービタが、前記第１の要求に関連する前記キャッシュ内のロケーションが利用可能かどうかのインジケーションに少なくとも部分的に基づいて、前記最も高い優先順位を決定するように構成される、Ｃ１に記載の装置。
［Ｃ３］  前記アービタが、複数の入力カウンタを備え、前記複数の入力カウンタの各々が、前記アービタによって処理された前記異なるタイプのキャッシュ要求のそれぞれの要求の数を数えるように構成されている、Ｃ１に記載の装置。
［Ｃ４］  前記アービタが、異なるタイプのキャッシュ要求に割り当てられた前記重みのうちの選択された重みと、対応する入力カウンタによって数えられた要求の前記数との比較に少なくとも部分的に基づいて、前記最も高い優先順位を決定するように構成される、Ｃ３に記載の装置。
［Ｃ５］  前記アービタが、いくつの要求が前記キャッシュに提供されたかを追跡するように構成された出力カウンタを備える、Ｃ３に記載の装置。
［Ｃ６］  前記アービタが、条件を検出することに応答して、前記入力カウンタをクリアするように構成される、Ｃ３に記載の装置。
［Ｃ７］  前記装置が、グラフィックス・プロセッシング・ユニットを備え、前記グラフィックス・プロセッシング・ユニットが、前記キャッシュと、前記アービタと、前記深度プロセッサと、前記色プロセッサとを備える、Ｃ１に記載の装置。
［Ｃ８］  前記異なるタイプのキャッシュ要求が、色読取りと、色書込みと、深度読取りと、深度書込みとを備える、Ｃ１に記載の装置。
［Ｃ９］  前記異なるタイプのキャッシュ要求に重みを割り当てるための前記アービタによって受信された前記データを生成するように構成された重み付け回路をさらに備える、Ｃ１に記載の装置。
［Ｃ１０］  前記異なるタイプのキャッシュ要求に重みを割り当てるための前記アービタによって受信された前記データが、ドライバによって生成される、Ｃ１に記載の装置。
［Ｃ１１］  データを記憶するように構成されたキャッシュと、
異なるタイプのキャッシュ要求に関連する重みと、前記異なるタイプのキャッシュ要求の、要求のカウントとに少なくとも部分的に基づいて、前記異なるタイプのキャッシュ要求の相対的優先順位を決定するための調停手段と、前記調停手段が、前記相対的優先順位に基づいて、前記異なるタイプのキャッシュ要求を前記キャッシュに提供するように構成される、
前記調停手段にキャッシュ要求を提供するように構成された色プロセッサと、
前記調停手段にキャッシュ要求を提供するように構成された深度プロセッサと
を備える、装置。
［Ｃ１２］  選択されたキャッシュ要求をキャッシュに提供することを電子的に実装される、方法が、
深度プロセッサから、および色プロセッサから、前記深度プロセッサと前記色プロセッサとによって共有されるキャッシュにアクセスするための、複数の異なるタイプのキャッシュ要求を受信することと、
前記異なるタイプのキャッシュ要求に関連する１つまたは複数の重みと、前記異なるタイプのキャッシュ要求に関連する１つまたは複数のカウントとに少なくとも部分的に基づいて、受信されたキャッシュ要求のうちの選択されたキャッシュ要求が、前記受信されたキャッシュ要求のうちの最も高い優先順位を有すると決定することと、
前記受信されたキャッシュ要求のうちの他のキャッシュ要求を前記キャッシュに提供する前に、前記選択されたキャッシュ要求を前記キャッシュに提供することと、
を備える、
方法。
［Ｃ１３］  前記複数の異なるタイプのキャッシュ要求が、色読取りと、色書込みと、深度読取りと、深度書込みとを備える、Ｃ１２に記載の方法。
［Ｃ１４］  前記１つまたは複数の重みを設定することをさらに備える、Ｃ１２に記載の方法。
［Ｃ１５］  前記設定することが、ドライバの指示で実行される、Ｃ１４に記載の方法。
［Ｃ１６］  前記異なるタイプのキャッシュ要求の相対的優先順位を決定することが、前記受信された要求のうちの少なくとも１つに関連する前記キャッシュ内のロケーションが利用可能かどうかに少なくとも部分的に基づく、Ｃ１２に記載の方法。
［Ｃ１７］  前記異なるタイプのキャッシュ要求の各々のカウンタで前記異なるタイプのキャッシュ要求の各々のキャッシュ要求の前記カウントを生成することをさらに備える、Ｃ１２に記載の方法。
［Ｃ１８］  条件を検出することに少なくとも部分的に基づいて、前記異なるタイプのキャッシュ要求の数の前記カウントをクリアすることをさらに備える、Ｃ１７に記載の方法。
［Ｃ１９］  前記条件が、あらかじめ定められた数のキャッシュ要求が受信されていることを示す、Ｃ１８に記載の方法。
［Ｃ２０］  実行されたとき、グラフィックス・プロセッシング・ユニットに、方法を実行するよう指示する命令を備える非一時的コンピュータ可読ストレージであって、前記方法が、
異なるタイプのキャッシュ要求に関連する重みと、前記異なるタイプのキャッシュ要求に関連するカウントとに少なくとも部分的に基づいて、キャッシュにアクセスするための複数の前記異なるタイプのキャッシュ要求からキャッシュ要求を選択することと、ここにおいて、前記異なるタイプのキャッシュ要求は、色プロセッサと深度プロセッサとによって提供される、
前記選択されたキャッシュ要求を前記キャッシュに提供することと
を備える、
非一時的コンピュータ可読ストレージ。
［Ｃ２１］  前記方法が、アービタのレジスタ内の前記重みを設定することをさらに備え、前記重みが設定可能である、Ｃ２０に記載の非一時的コンピュータ可読ストレージ。
［Ｃ２２］  選択することが、前記キャッシュ要求に関連する前記キャッシュ内のロケーションが利用可能かどうかに少なくとも部分的に基づく、Ｃ２１に記載の非一時的コンピュータ可読ストレージ。
【図１】
0006411557.tif 000002
【図２】
0006411557.tif 000003
【図３】
0006411557.tif 000004
【図４】
0006411557.tif 000005