(57)【特許請求の範囲】
【請求項１】
複数のキャッシュ下位区分と、
前記複数のキャッシュ下位区分のうちのキャッシュ下位区分に各々が関連付けられた複数のサービス品質(QoS)識別子(QoSID)トラッキングタグと、
キャッシュ使用モニタとを備え、前記キャッシュ使用モニタが、
前記複数のキャッシュ下位区分のうちの各キャッシュ下位区分を複数のQoSクラスのうちのQoSクラスに関連付けること、
QoSIDを含むメモリアクセス要求を受け取ること、
前記複数のキャッシュ下位区分のうちの、前記メモリアクセス要求に対応するキャッシュ下位区分にアクセスすること、
前記メモリアクセス要求の前記QoSIDが、前記キャッシュ下位区分に関連付けられた前記QoSクラスに対応するかどうかを決定すること、
前記決定に基づいて、前記複数のQoSIDトラッキングタグのうちの、前記メモリアクセス要求に対応する前記キャッシュ下位区分に関連付けられたQoSIDトラッキングタグを更新すること、および、
前記複数のQoSIDトラッキングタグに基づいて前記複数のQoSクラスのうちの前記QoSクラスについての概算使用測定値を生成すること
を行うように構成され、
前記キャッシュ使用モニタが、
前記QoSクラスに関連付けられた前記複数のキャッシュ下位区分の割合を決定し、
前記関連付けられた複数のQoSIDトラッキングタグが設定されている、前記QoSクラスに関連付けられた前記複数のキャッシュ下位区分のカウントを決定し、
前記複数のキャッシュ下位区分の前記カウントを前記割合で割って概算使用測定値を生成するように構成されることによって、
前記複数のQoSIDトラッキングタグに基づいて前記複数のQoSクラスのうちの前記QoSクラスについての概算使用測定値を生成するように構成される、共有キャッシュメモリシステム。
【請求項２】
前記複数のキャッシュ下位区分のうちの各キャッシュ下位区分が、キャッシュ線を含む、請求項1に記載の共有キャッシュメモリシステム。
【請求項３】
前記複数のキャッシュ下位区分のうちの各キャッシュ下位区分が、キャッシュ線のセットを含む、請求項1に記載の共有キャッシュメモリシステム。
【請求項４】
前記複数のキャッシュ下位区分のうちの各キャッシュ下位区分が、キャッシュ線のウェイを含む、請求項1に記載の共有キャッシュメモリシステム。
【請求項５】
前記複数のキャッシュ下位区分のうちの各キャッシュ下位区分が、キャッシュ線のバンクを含む、請求項1に記載の共有キャッシュメモリシステム。
【請求項６】
前記複数のQoSIDトラッキングタグが、前記複数のキャッシュ下位区分のうちの分散されたサブセットに関連付けられる、請求項1に記載の共有キャッシュメモリシステム。
【請求項７】
集積回路(IC)に統合された、請求項1に記載の共有キャッシュメモリシステム。
【請求項８】
セットトップボックス、娯楽ユニット、ナビゲーションデバイス、通信デバイス、固定場所データユニット、モバイル場所データユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、パーソナルデジタルアシスタント(PDA)、モニタ、コンピュータモニタ、テレビジョン、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤ、からなるグループから選択されたデバイスに統合された、請求項1に記載の共有キャッシュメモリシステム。
【請求項９】
共有キャッシュメモリシステムの複数のキャッシュ下位区分のうちの各キャッシュ下位区分を、複数のサービス品質(QoS)クラスのうちのQoSクラスに関連付けるための手段と、
QoS識別子(QoSID)を含むメモリアクセス要求を受け取るための手段と、
前記複数のキャッシュ下位区分のうちの、前記メモリアクセス要求に対応するキャッシュ下位区分にアクセスするための手段と、
前記メモリアクセス要求の前記QoSIDが、前記複数のQoSクラスのうちの、前記キャッシュ下位区分に関連付けられた前記QoSクラスに対応するかどうかを決定するための手段と、
前記決定するための手段に基づいて、複数のQoSIDトラッキングタグのうちの、前記メモリアクセス要求に対応する前記キャッシュ下位区分に関連付けられたQoSIDトラッキングタグを更新するための手段と、
前記複数のQoSIDトラッキングタグに基づいて前記複数のQoSクラスのうちの前記QoSクラスについての概算使用測定値を生成するための手段とを備え、
前記複数のQoSIDトラッキングタグに基づいて前記複数のQoSクラスのうちの前記QoSクラスについての概算使用測定値を生成するための前記手段が、
前記QoSクラスに関連付けられた前記複数のキャッシュ下位区分の割合を決定するための手段と、
前記関連付けられたQoSIDトラッキングタグが設定されている、前記QoSクラスに関連付けられた前記複数のキャッシュ下位区分のカウントを決定するための手段と、
前記複数のキャッシュ下位区分の前記カウントを前記割合で割って前記概算使用測定値を生成するための手段とを備える、共有キャッシュメモリシステム。
【請求項１０】
前記複数のキャッシュ下位区分のうちの各キャッシュ下位区分が、キャッシュ線を含む、請求項9に記載の共有キャッシュメモリシステム。
【請求項１１】
前記複数のキャッシュ下位区分のうちの各キャッシュ下位区分が、キャッシュ線のセットを含む、請求項9に記載の共有キャッシュメモリシステム。
【請求項１２】
前記複数のキャッシュ下位区分のうちの各キャッシュ下位区分が、キャッシュ線のウェイを含む、請求項9に記載の共有キャッシュメモリシステム。
【請求項１３】
前記複数のキャッシュ下位区分のうちの各キャッシュ下位区分が、キャッシュ線のバンクを含む、請求項9に記載の共有キャッシュメモリシステム。
【請求項１４】
前記複数のQoSIDトラッキングタグが、前記複数のキャッシュ下位区分のうちの分散されたサブセットに関連付けられる、請求項9に記載の共有キャッシュメモリシステム。
【請求項１５】
共有キャッシュメモリ使用を概算するための方法であって、
共有キャッシュメモリシステムの複数のキャッシュ下位区分のうちの各キャッシュ下位区分を、複数のサービス品質(QoS)クラスのうちのQoSクラスに関連付けるステップと、
QoS識別子(QoSID)を含むメモリアクセス要求を受け取るステップと、
前記複数のキャッシュ下位区分のうちの、前記メモリアクセス要求に対応するキャッシュ下位区分にアクセスするステップと、
前記メモリアクセス要求の前記QoSIDが、前記複数のQoSクラスのうちの、前記キャッシュ下位区分に関連付けられた前記QoSクラスに対応するかどうかを決定するステップと、
前記決定に基づいて、複数のQoSIDトラッキングタグのうちの、前記メモリアクセス要求に対応する前記キャッシュ下位区分に関連付けられたQoSIDトラッキングタグを更新するステップと、
前記複数のQoSIDトラッキングタグに基づいて前記複数のQoSクラスのうちの前記QoSクラスについての概算使用測定値を生成するステップと
を含み、
前記複数のQoSIDトラッキングタグに基づいて前記複数のQoSクラスのうちの前記QoSクラスについての概算使用測定値を生成する前記ステップが、
前記QoSクラスに関連付けられた前記複数のキャッシュ下位区分の割合を決定するステップと、
前記関連付けられたQoSIDトラッキングタグが設定されている、前記QoSクラスに関連付けられた前記複数のキャッシュ下位区分のカウントを決定するステップと、
前記複数のキャッシュ下位区分の前記カウントを前記割合で割って概算使用測定値を生成するステップとを含む、方法。
【請求項１６】
前記複数のキャッシュ下位区分のうちの各キャッシュ下位区分が、キャッシュ線を含む、請求項15に記載の方法。
【請求項１７】
前記複数のキャッシュ下位区分のうちの各キャッシュ下位区分が、キャッシュ線のセットを含む、請求項15に記載の方法。
【請求項１８】
前記複数のキャッシュ下位区分のうちの各キャッシュ下位区分が、キャッシュ線のウェイを含む、請求項15に記載の方法。
【請求項１９】
前記複数のキャッシュ下位区分のうちの各キャッシュ下位区分が、キャッシュ線のバンクを含む、請求項15に記載の方法。
【請求項２０】
前記複数のQoSIDトラッキングタグが、前記複数のキャッシュ下位区分のうちの分散されたサブセットに関連付けられる、請求項15に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権主張
本出願は、米国特許法第119条(e)に従い、2014年11月25日に出願された「GENERATING APPROXIMATE USAGE MEASUREMENTS FOR SHARED CACHE MEMORY, AND RELATED METHODS AND SYSTEMS」という名称の米国仮特許出願第62/084,469号に対する優先権を主張するものであり、この仮特許出願の内容は、その全体が参照により本明細書に組み込まれる。
【０００２】
本出願はまた、2015年9月22日に出願された「GENERATING APPROXIMATE USAGE MEASUREMENTS FOR SHARED CACHE MEMORY SYSTEMS」という名称の米国特許出願第14/860,993号に対する優先権も主張するものであり、この特許出願の内容は、その全体が参照により本明細書に組み込まれる。
【０００３】
本開示の技術は、一般に、共有キャッシュメモリシステムに関し、特に、共有キャッシュの使用を測定することに関する。
【背景技術】
【０００４】
ますます多くのコンピュータハードウェアユニット(たとえば、非限定的な例として、中央処理装置(CPU)、グラフィックス処理ユニット(GPU)、デジタル信号処理(DSP)ユニット、および/またはダイレクトメモリアクセス(DMA)エンジン)が、キャッシュ、メモリ、相互接続帯域幅、およびキャッシュ帯域幅など、メモリシステムリソースを共有するように構成されている。コンピュータハードウェアユニット間のリソース干渉および競合は、非限定的な例として、モバイルシステムオンチップ(SoC)上でリアルタイムデッドラインをミスすること、または統合されたサーバ上でのサービスレベルアグリーメント(SLA)違反など、良くない結果をもたらす可能性がある。加えて、いくつかのコンピュータハードウェアユニットに関連する参照ストリームは、時間的局所性をほとんど有さないことがあり、このことは、チェックされないままにされた場合、キャッシュ汚染、および性能全体に対する悪影響につながる。したがって、リソース共有の効果を監視することが、最適なシステム性能の達成にとってより重要になってきた。これに関して、ユーザが共有リソースの使用を監視する能力を有することが望ましいであろう。
【０００５】
しかし、従来のキャッシュメモリシステムは、キャッシュ使用を監視するための空間効率の良いメカニズムを提供しない。結果として、そのような従来のキャッシュメモリシステムは、キャッシュ干渉が存在する場合の最悪の性能からの防護のために十分に利用されないままであることがある。さらに、キャッシュ占有に関するフィードバックがない結果、コンピュータ処理システムは、システムタスクの最適なスケジューリングを提供できないことがある。
【発明の概要】
【課題を解決するための手段】
【０００６】
詳細な記述において開示される態様は、共有キャッシュメモリシステムに関する概算使用測定値を生成することを含む。これに関して、一態様では、共有キャッシュメモリシステムが提供される。共有キャッシュメモリシステムは、複数のサービス品質(QoS)クラスの各々についてのキャッシュ使用を概算するように構成され、各QoSクラスは、関連付けられたQoS識別子(QoSID)を有する。共有キャッシュメモリシステムは複数のキャッシュ線を備え、これらのキャッシュ線は、複数のキャッシュ下位区分(Cache Subdivision)に細分される。本明細書で開示されるいくつかの態様によれば、複数のキャッシュ下位区分は、非限定的な例として、個々のキャッシュ線、キャッシュ線のセット、および/またはキャッシュ線のバンク、を含むことができる。複数のキャッシュ下位区分はそれぞれ、キャッシュ使用が概算されることになる複数のQoSクラスのうちの1つに関連付けられる。共有キャッシュメモリシステムはまた、複数のキャッシュ下位区分に対応する複数のQoSIDトラッキングタグを提供する。QoSIDを含むメモリアクセス要求が受け取られると、共有キャッシュメモリシステムのキャッシュ使用モニタがさらに、メモリアクセス要求に対応するキャッシュ下位区分にアクセスするように構成される。キャッシュ使用モニタは、メモリアクセス要求のQoSIDが、キャッシュ下位区分に関連付けられたQoSクラスに対応するかどうかを決定するように構成される。この決定に基づいて、キャッシュ使用モニタは、メモリアクセス要求に対応するキャッシュ下位区分に関連付けられたQoSIDトラッキングタグを更新する。このようにして、複数のQoSIDトラッキングタグは、各キャッシュ下位区分に関連付けられたQoSクラスが所与の時点で実際にそのキャッシュ下位区分を使用しているかどうかを示すように維持されることが可能である。
【０００７】
キャッシュ使用モニタはさらに、複数のQoSIDトラッキングタグに基づいて、複数のQoSクラスのうちのQoSクラスについての概算使用測定値を生成するように構成される。キャッシュ使用測定値の精度を、複数のQoSIDトラッキングタグのためのストレージオーバヘッドの削減とトレードオフすることによって、共有キャッシュメモリシステムは、プロセッサ性能および電力消費に対する影響を最小限に抑えながら、キャッシュ割振り(Cache Allocation)を管理するのに十分な使用測定値データを提供することができる。
【０００８】
別の態様では、共有キャッシュメモリシステムが提供される。共有キャッシュメモリシステムは、複数のキャッシュ下位区分を備える。共有キャッシュメモリシステムはさらに、複数のQoSIDトラッキングタグを備え、各QoSIDトラッキングタグは、複数のキャッシュ下位区分のうちのキャッシュ下位区分に関連付けられる。共有キャッシュメモリシステムはまた、キャッシュ使用モニタを備える。キャッシュ使用モニタは、複数のキャッシュ下位区分のうちの各キャッシュ下位区分を、複数のQoSクラスのうちのQoSクラスに関連付けるように構成される。キャッシュ使用モニタはさらに、QoSIDを含むメモリアクセス要求を受け取るように構成される。キャッシュ使用モニタはまた、複数のキャッシュ下位区分のうちの、メモリアクセス要求に対応するキャッシュ下位区分にアクセスするように構成される。キャッシュ使用モニタは追加的に、メモリアクセス要求のQoSIDが、キャッシュ下位区分に関連付けられたQoSクラスに対応するかどうかを決定するように構成される。キャッシュ使用モニタはさらに、決定に基づいて、複数のQoSIDトラッキングタグのうちの、メモリアクセス要求に対応するキャッシュ下位区分に関連付けられたQoSIDトラッキングタグを更新するように構成される。キャッシュ使用モニタはまた、複数のQoSIDトラッキングタグに基づいて、複数のQoSクラスのうちのQoSクラスについての概算使用測定値を生成するように構成される。
【０００９】
別の態様では、共有キャッシュメモリシステムが提供される。共有キャッシュメモリシステムは、共有キャッシュメモリシステムの複数のキャッシュ下位区分のうちの各キャッシュ下位区分を、複数のQoSクラスのうちのQoSクラスに関連付けるための手段を備える。共有キャッシュメモリシステムはさらに、QoSIDを含むメモリアクセス要求を受け取るための手段を備える。共有キャッシュメモリシステムはまた、複数のキャッシュ下位区分のうちの、メモリアクセス要求に対応するキャッシュ下位区分にアクセスするための手段を備える。共有キャッシュメモリシステムは追加的に、メモリアクセス要求のQoSIDが、複数のQoSクラスのうちの、キャッシュ下位区分に関連付けられたQoSクラスに対応するかどうかを決定するための手段を備える。共有キャッシュメモリシステムはさらに、決定するための手段に基づいて、複数のQoSIDトラッキングタグのうちの、メモリアクセス要求に対応するキャッシュ下位区分に関連付けられたQoSIDトラッキングタグを更新するための手段を備える。共有キャッシュメモリシステムはまた、複数のQoSIDトラッキングタグに基づいて、複数のQoSクラスのうちのQoSクラスについての概算使用測定値を生成するための手段を備える。
【００１０】
別の態様では、共有キャッシュメモリ使用を概算するための方法が提供される。この方法は、共有キャッシュメモリシステムの複数のキャッシュ下位区分のうちの各キャッシュ下位区分を、複数のQoSクラスのうちのQoSクラスに関連付けるステップを含む。この方法はさらに、QoSIDを含むメモリアクセス要求を受け取るステップを含む。この方法はまた、複数のキャッシュ下位区分のうちの、メモリアクセス要求に対応するキャッシュ下位区分にアクセスするステップを含む。この方法は追加的に、メモリアクセス要求のQoSIDが、複数のQoSクラスのうちの、キャッシュ下位区分に関連付けられたQoSクラスに対応するかどうかを決定するステップを含む。この方法はさらに、決定に基づいて、複数のQoSIDトラッキングタグのうちの、メモリアクセス要求に対応するキャッシュ下位区分に関連付けられたQoSIDトラッキングタグを更新するステップを含む。この方法はまた、複数のQoSIDトラッキングタグに基づいて、複数のQoSクラスのうちのQoSクラスについての概算使用測定値を生成するステップを含む。
【図面の簡単な説明】
【００１１】
【図１】共有キャッシュメモリシステムに関する概算使用測定値を生成するためのキャッシュ使用モニタを備えるキャッシュコントローラを含む例示的な共有キャッシュメモリシステムを示す図である。
【図２Ａ】サービス品質(QoS)クラスおよびQoS識別子(QoSID)トラッキングタグが、キャッシュ線を含むキャッシュ下位区分に関連付けられた、例示的な共有キャッシュメモリシステム実装形態を示す図である。
【図２Ｂ】サービス品質(QoS)クラスおよびQoS識別子(QoSID)トラッキングタグが、キャッシュ線のセットを含むキャッシュ下位区分に関連付けられた、例示的な共有キャッシュメモリシステム実装形態を示す図である。
【図２Ｃ】サービス品質(QoS)クラスおよびQoS識別子(QoSID)トラッキングタグが、キャッシュ線のウェイを含むキャッシュ下位区分に関連付けられた、例示的な共有キャッシュメモリシステム実装形態を示す図である。
【図２Ｄ】サービス品質(QoS)クラスおよびQoS識別子(QoSID)トラッキングタグが、キャッシュ線のバンクを含むキャッシュ下位区分に関連付けられた、例示的な共有キャッシュメモリシステム実装形態を示す図である。
【図３Ａ】共有キャッシュメモリシステムに関する概算使用測定値を生成するための、図1の共有キャッシュメモリシステムの例示的な動作を示す図である。
【図３Ｂ】共有キャッシュメモリシステムに関する概算使用測定値を生成するための、図1の共有キャッシュメモリシステムの例示的な動作を示す図である。
【図４】概算使用測定値を提供するために図1の共有キャッシュメモリシステムを含むことができる例示的なプロセッサベースのシステムのブロック図である。
【発明を実施するための形態】
【００１２】
次に図面を参照しながら、本開示のいくつかの例示的な態様について述べる。本明細書において、「例示的」という語は、「例、実例、または例証としての働きをする」ことを意味するために使用される。本明細書で「例示的」として記述されるどんな態様も、他の態様よりも好ましいかまたは有利であると解釈されるべきとは必ずしも限らない。
【００１３】
これに関して、共有キャッシュメモリシステム100の構造を示すために図1を提供する。共有キャッシュメモリシステム100は、非限定的な例として、半導体ダイ中に設けられてよい。いくつかの態様では、共有キャッシュメモリシステム100は、メモリの階層(図示せず)における、とりわけレベル1(L1)キャッシュ、レベル2(L2)キャッシュ、またはレベル3(L3)キャッシュであってよい。図1の例では、共有キャッシュメモリシステム100は、バンク102(0)〜102(X)に編成されたメモリアレイである。バンク102(0)〜102(X)の各々は、1つまたは複数のセット104(0)〜104(Y)を含み、セット104(0)〜104(Y)の各々は、キャッシュ線106(0)〜106(L)のサブセットからなる。セット104(0)〜104(Y)の各々の中のキャッシュ線106(0)〜106(L)の数Zは、共有キャッシュメモリシステム100の「結合性(associativity)」と呼ばれ、セット104(0)〜104(Y)の各々の内の0〜Zの特定位置にあるキャッシュ線106(0)〜106(L)のグループは、対応する「ウェイ(Way)」108(0)〜108(Z)と呼ばれる。したがって、各ウェイ108(0)〜108(Z)は、すべてのセット104(0)〜104(Y)にわたる、キャッシュ線106(0)〜106(L)の垂直「スライス」として視覚化されることが可能である。
【００１４】
本明細書に記載の態様は、いずれか特定の要素配列に制限されず、開示される技法は、共有キャッシュメモリシステム100の様々な構造およびレイアウトに容易に拡張され得ることを理解されたい。図1に示す構成は、例証のためのものにすぎない。いくつかの態様では、共有キャッシュメモリシステム100は、本明細書で示されるよりも少数もしくは多数のバンク102(0)〜102(X)、少数もしくは多数のセット104(0)〜104(Y)、少数もしくは多数のキャッシュ線106(0)〜106(L)、および/または、少数もしくは多数のウェイ108(0)〜108(Z)を備えることがある。
【００１５】
引き続き図1を参照すると、キャッシュコントローラ110が、各バンク102(0)〜102(X)に結合される。従来の動作では、実行中のソフトウェアアプリケーションなど、要求元エージェント(図示せず)が、メモリアドレス(図示せず)に記憶された命令または値(図示せず)を要求することがある。要求された命令または値が共有キャッシュメモリシステム100中で見つからない場合、キャッシュミスという結果になる。それに応答して、キャッシュコントローラ110は、キャッシュフィル動作を開始することができる。この動作により、キャッシュ線106(0)〜106(L)のうちの1つまたは複数のサイズに等しく、要求された命令または値を含む、システムメモリ(図示せず)の一部が、取り出され、キャッシュ線106(0)〜106(L)のうちの1つに記憶される。
【００１６】
共有キャッシュメモリシステム100は、共有メモリ使用に対するQoSサポートを実装するために、複数のQoSクラス112(0)〜112(N)に対するサポートを提供する。QoSクラス112(0)〜112(N)の各々は、固有のQoSID114(0)〜114(N)に関連付けられる。複数の要求元エージェント間でキャッシュ線106(0)〜106(L)をより効率的に割り振るために、いくつかの態様におけるキャッシュコントローラ110は、キャッシュ割振り回路116を設けることができる。キャッシュ割振り回路116は、QoSID114(0)〜114(N)の各々を特定の要求元エージェントに関連付けること、およびそのQoSID114(0)〜114(N)に対するキャッシュ線106(0)〜106(L)の割振りを指定することによって、共有キャッシュメモリシステム100のキャッシュリソースのユーザ制御を可能にすることができる。
【００１７】
キャッシュ線106(0)〜106(L)をQoSID114(0)〜114(N)間で割り振る(したがって、キャッシュ線106(0)〜106(L)を対応するQoSクラス112(0)〜112(N)間で効果的に割り振る)ことによって、共有キャッシュメモリシステム100は、いくつかの使用事例シナリオにおけるキャッシュ性能を改善することができる。たとえば、いくつかの態様では、共有キャッシュメモリシステム100は、要求元エージェントによって行われるレイテンシクリティカルな動作が、リアルタイム要件を満たすのに十分なキャッシュメモリを有することを確実にするために、リアルタイム制約をイネーブルにすることがある。リアルタイム制約に応えるサービスを提供するために、キャッシュ割振り回路116は、時間クリティカルな要求元エージェントのためのキャッシュ線106(0)〜106(L)の最小限の作業セットが共有キャッシュメモリシステム100中で保存されることを保証するように構成されてよい。キャッシュ割振り回路116によるキャッシュ線106(0)〜106(L)の割振りはまた、クラウドコンピューティングサービスレベルアグリーメント(SLA)を施行する際に、かつ/または、いくつかの要求元エージェントに対するキャッシュ線106(0)〜106(L)のキャッシュ割当てを制限してコンピュータ処理システムの全体的なスループットを改善するために、有用であることがある。
【００１８】
キャッシュ線106(0)〜106(L)を複数の要求元エージェント間で効率的に割り振ることは、システム性能全体に対するリソース割振りの効果を決定するために異なる複数のQoSクラス112(0)〜112(N)による共有キャッシュメモリシステム100の使用を監視することを必要とする。しかし、従来のキャッシュメモリシステムは、キャッシュ使用を監視するための空間効率の良いメカニズムを提供しない。キャッシュ線106(0)〜106(L)のうちのいくつが所与のQoSクラス112(0)〜112(N)によって使用されるかを監視するために、共有キャッシュメモリシステム100は、各QoSクラス112(0)〜112(N)によってアクセスされたキャッシュ線106(0)〜106(L)を識別する能力を有する。
【００１９】
あるアプローチは、キャッシュ線106(0)〜106(L)の各々に、キャッシュ線106(0)〜106(L)が現在割り振られているQoSクラス112(0)〜112(N)のQoSID114(0)〜114(N)をタグ付けすることを含む。しかし、このアプローチは、共有キャッシュメモリシステム100内のストレージ空間の点で、法外に高価なことがある。たとえば、N個のQoSクラス112(0)〜112(N)をサポートするシステム中では、各QoSID114(0)〜114(N)は、公称でlog2(N)ビット幅である。たとえば、共有キャッシュメモリシステム100が32メガバイトのサイズであり、8ビットQoSID114(0)〜114(N)をタグ付けされた128バイト線を備える場合、QoSID114(0)〜114(N)は256キロバイトを占めることになり、これは、ほぼ、いくつかのコンピュータプロセッサコア中の従来のL2キャッシュのサイズであることがある。
【００２０】
これに関して、共有キャッシュメモリシステム100は、キャッシュ線106(0)〜106(L)の割振りを決定および監視する際に使用するのに十分な精度の概算使用測定値を生成することによって、ストレージオーバヘッドを削減する。したがって、共有キャッシュメモリシステム100は、キャッシュコントローラ110のキャッシュ割振り回路116に提供される概算使用測定値120などの概算使用測定値を提供するために、キャッシュ使用モニタ118を設ける。いくつかの態様では、ユーザ(図示せず)は、QoSID114(0)〜114(N)を使用してキャッシュ使用モニタ118に照会して、対応するQoSクラス112(0)〜112(N)の現在のキャッシュ使用の概算を発見することができる。そのような態様では、概算使用測定値120は、非限定的な例として、メモリマップトインターフェース(図示せず)を介して提供されてよい。
【００２１】
キャッシュ使用の空間効率の良い監視を提供するために、いくつかの態様におけるキャッシュ使用モニタ118は、キャッシュ線106(0)〜106(L)の複数のキャッシュ下位区分(Cache Subdivision)の各々を、QoSクラス112(0)〜112(N)のうちの1つに関連付けることができる。いくつかの態様によれば、複数のキャッシュ下位区分は、非限定的な例として、キャッシュ線106(0)〜106(L)、キャッシュ線106(0)〜106(L)のセット104(0)〜104(Y)、キャッシュ線106(0)〜106(L)のウェイ108(0)〜108(Z)、またはキャッシュ線106(0)〜106(L)のバンク102(0)〜102(X)、のうちの1つまたは複数を含むことができる。これらの例示的な実装形態については、後で図2A〜図2Dに関してより詳細に論じる。各キャッシュ下位区分はまた、複数のQoSIDトラッキングタグ(図示せず)のうちの1つに関連付けられ、QoSIDトラッキングタグの各々は、キャッシュ下位区分がその関連付けられたQoSクラス112(0)〜112(N)によって現在使用されているかどうかを追跡するために、キャッシュ使用モニタ118によって使用されることが可能である。いくつかの態様によれば、複数のQoSIDトラッキングタグの各々は、単一ビットを含むことができる。いくつかの態様では、QoSIDトラッキングタグは複数ビットを含むことができ、それにより、各キャッシュ下位区分が複数のQoSクラス112(0)〜112(N)に関連付けられることが可能となる。いくつかの態様では、複数のQoSIDトラッキングタグはキャッシュ線106(0)〜106(L)に沿って記憶されてよく、一方、いくつかの態様は、複数のQoSIDトラッキングタグがQoSIDトラッキングタグデータ構造122に記憶されるように規定することができる。図1では、QoSIDトラッキングタグデータ構造122を、キャッシュコントローラ110内に位置するものとして示すが、いくつかの態様におけるQoSIDトラッキングタグデータ構造122は、共有キャッシュメモリシステム100内の別の場所(たとえば、非限定的な例として、キャッシュ使用モニタ118内)に位置してもよいことを理解されたい。
【００２２】
QoSID126を含むメモリアクセス要求124が受け取られると、キャッシュ使用モニタ118は、メモリアクセス要求124に対応するキャッシュ下位区分にアクセスし、メモリアクセス要求124のQoSID126が、キャッシュ下位区分に関連付けられたQoSクラス112(0)〜112(N)に対応するかどうかを決定する。この決定に基づいて、キャッシュ使用モニタ118は、メモリアクセス要求124に対応するキャッシュ下位区分のQoSIDトラッキングタグを更新することができる。たとえば、1ビットのQoSIDトラッキングタグを提供するいくつかの態様では、メモリアクセス要求124のQoSID126が、キャッシュ下位区分に関連付けられたQoSクラス112(0)〜112(N)に対応する場合は、キャッシュ使用モニタ118は、キャッシュ下位区分のQoSIDトラッキングタグを値1に設定することができる。メモリアクセス要求124のQoSID126が、キャッシュ下位区分に関連付けられたQoSクラス112(0)〜112(N)に対応しない場合は、キャッシュ使用モニタ118は、キャッシュ下位区分のQoSIDトラッキングタグを値0に設定することができる。このようにして、QoSIDトラッキングタグは、各キャッシュ下位区分に関連付けられたQoSクラス112(0)〜112(N)が所与の時点で実際にそのキャッシュ下位区分を使用しているかどうかを示すように維持されることが可能である。
【００２３】
QoSIDトラッキングタグに基づいて、キャッシュ使用モニタ118は、QoSクラス112(0)〜112(N)の各々について、キャッシュ線106(0)〜106(L)の概算使用測定値120を生成することができる。いくつかの態様では、キャッシュ使用モニタ118は、概算使用測定値120を生成することができるが、これは、QoSクラス112(0)〜112(N)に関連付けられた複数のキャッシュ下位区分の割合を決定すること、およびさらに、関連付けられたQoSIDトラッキングタグが設定されている、QoSクラス112(0)〜112(N)に関連付けられたキャッシュ下位区分のカウントを決定すること、によって行うことができる。次いで、キャッシュ使用モニタ118は、キャッシュ下位区分のカウントを割合で割って、概算使用測定値120を生成することができる。
【００２４】
非限定的な例として、共有キャッシュメモリシステム100が、キャッシュ下位区分を表す16個のセット104(0)〜104(15)を提供すると仮定する。セット104(0)〜104(7)は、すなわちセット104(0)〜104(15)の総数の半分は、測定目的でQoSクラス112(0)に関連付けられ、セット104(8)〜104(15)は、測定目的でQoSクラス112(N)に関連付けられる。したがって、たとえばQoSクラス112(0)および112(1)の各々に関連付けられた複数のキャッシュ下位区分の割合は、1/2すなわち0.5である。さらに、QoSクラス112(0)に関連付けられた6個のセット104(0)〜104(5)は、関連付けられたQoSIDトラッキングタグが設定されていると仮定する。したがって、キャッシュ使用モニタ118は、セット104(0)〜104(15)のうちで12個(すなわち6÷0.5)がQoSクラス112(0)によって現在使用されていると推定する概算使用測定値120を生成することができる。
【００２５】
いくつかの態様では、キャッシュ使用モニタ118は、キャッシュ下位区分を固定最大数のQoSクラス112(0)〜112(N)に関連付けるのではなく、キャッシュ下位区分をアクティブなQoSクラス112(0)〜112(N)のみに関連付けることによって、その精度を改善することができる。たとえば、1つのQoSクラス112(0)だけがアクティブである場合、アクティブなQoSクラス112(0)が共有キャッシュメモリシステム100中のあらゆるキャッシュ線106(0)〜106(L)に関連付けられてよく、その結果、概算使用測定値120の有するエラーは0となる。いくつかの態様は、QoSクラス112(0)〜112(N)を識別するのに必要なビット数を削減することに加えて、キャッシュ使用モニタ118が従来のサンプリング方法も採用するように規定することもできる。非限定的な例として、QoSIDトラッキングタグは、キャッシュ下位区分のうちの分散されたサブセットのみに関連付けられてよい。
【００２６】
いくつかの態様では、概算技法を組み合わせて、所与の適用例の場合のオーバヘッドと精度との間の許容可能なトレードオフを有する共有キャッシュメモリシステム100の構成を提供することができる。以下のTable 1(表1)に、いくつかの態様で提供される組合せに対するストレージ要件を示す。Table 1(表1)には、様々な構成によって必要とされる、バイトで表されたストレージ総計が示されている。各エントリは、8メガバイト、16ウェイ、128バイト線、4バンクのキャッシュ、および、最大32個のQoSIDをサポートするシステム、に基づいて計算される。括弧内の数字は、どのキャッシュ線に5ビットのQoSIDが付加されているかを完全かつ精密に追跡するのに必要な相対的オーバヘッドのパーセンテージである。
【００２７】
【表１】
0006262408.tif 000002
【００２８】
前述のように、いくつかの態様では、キャッシュ下位区分は、キャッシュ線106(0)〜106(L)、キャッシュ線106(0)〜106(L)のセット104(0)〜104(Y)、キャッシュ線106(0)〜106(L)のウェイ108(0)〜108(Z)、またはキャッシュ線106(0)〜106(L)のバンク102(0)〜102(X)、のうちの1つまたは複数を含むことができる。これに関して、キャッシュ線106(0)〜106(L)、キャッシュ線106(0)〜106(L)のセット104(0)〜104(Y)、キャッシュ線106(0)〜106(L)のウェイ108(0)〜108(Z)、またはキャッシュ線106(0)〜106(L)のバンク102(0)〜102(X)をそれぞれ含む、キャッシュ下位区分200(0)〜200(L)、200(0)〜200(Y)、200(0)〜200(Z)、200(0)〜200(X)を提供する例示的な態様を示すために、図2A〜図2Dを提供する。図2Aでは、キャッシュ下位区分200(0)〜200(L)はそれぞれ、キャッシュ線106(0)〜106(L)のうちの1つに対応し、キャッシュ線106(0)、106(2)、および106(L)はQoSクラス112(0)に関連付けられ、キャッシュ線106(1)、106(3)はQoSクラス112(1)に関連付けられる。キャッシュ下位区分200(0)〜200(L)の各々はまた、単一ビットを含む対応するQoSIDトラッキングタグ202(0)〜202(L)にも関連付けられる。QoSIDトラッキングタグ202(0)〜202(L)は、キャッシュ線106(1)が現在、関連付けられたQoSクラス112(1)によって使用されており、キャッシュ線106(2)および106(L)が現在、関連付けられたQoSクラス112(0)によって使用されていることを示す。同様に、QoSIDトラッキングタグ202(0)は、キャッシュ線106(0)が現在、関連付けられたQoSクラス112(0)によって使用されていないことを示し、QoSIDトラッキングタグ202(3)は、キャッシュ線106(3)が現在、関連付けられたQoSクラス112(1)によって使用されていないことを示す。
【００２９】
図2Bの例では、キャッシュ下位区分200(0)〜200(Y)はそれぞれ、キャッシュ線106(0)〜106(L)のセット104(0)〜104(Y)のうちの1つに対応する。セット104(0)、104(2)、および104(Y)は、QoSクラス112(0)に関連付けられ、セット104(1)、104(3)は、QoSクラス112(1)に関連付けられる。キャッシュ下位区分200(0)〜200(Y)に関連付けられたQoSIDトラッキングタグ202(0)〜202(Y)は、セット104(1)が現在、関連付けられたQoSクラス112(1)によって使用されており、セット104(2)および104(Y)が現在、関連付けられたQoSクラス112(0)によって使用されていることを示す。同様に、QoSIDトラッキングタグ202(0)は、セット104(0)が現在、関連付けられたQoSクラス112(0)によって使用されていないことを示し、QoSIDトラッキングタグ202(3)は、セット104(3)が現在、関連付けられたQoSクラス112(1)によって使用されていないことを示す。
【００３０】
図2Cでは、キャッシュ下位区分200(0)〜200(Z)はそれぞれ、キャッシュ線106(0)〜106(L)のウェイ108(0)〜108(Z)のうちの1つに対応する。ウェイ108(0)、108(2)、および108(Z)は、QoSクラス112(0)に関連付けられ、ウェイ108(1)、108(3)は、QoSクラス112(1)に関連付けられる。キャッシュ下位区分200(0)〜200(Z)に関連付けられたQoSIDトラッキングタグ202(0)〜202(Z)は、ウェイ108(1)が現在、関連付けられたQoSクラス112(1)によって使用されており、ウェイ108(2)および108(Z)が現在、関連付けられたQoSクラス112(0)によって使用されていることを示す。同様に、QoSIDトラッキングタグ202(0)は、ウェイ108(0)が現在、関連付けられたQoSクラス112(0)によって使用されていないことを示し、QoSIDトラッキングタグ202(3)は、ウェイ108(3)が現在、関連付けられたQoSクラス112(1)によって使用されていないことを示す。
【００３１】
次に図2Dを参照すると、この例におけるキャッシュ下位区分200(0)〜200(X)はそれぞれ、キャッシュ線106(0)〜106(L)のバンク102(0)〜102(X)のうちの1つに対応する。バンク102(0)、102(2)、および102(X)は、QoSクラス112(0)に関連付けられ、バンク102(1)、102(3)は、QoSクラス112(1)に関連付けられる。この例では、キャッシュ下位区分200(0)〜200(X)に関連付けられたQoSIDトラッキングタグ202(0)〜202(X)は、バンク102(1)が現在、関連付けられたQoSクラス112(1)によって使用されており、バンク102(2)および102(X)が現在、関連付けられたQoSクラス112(0)によって使用されていることを示す。同様に、QoSIDトラッキングタグ202(0)は、バンク102(0)が現在、関連付けられたQoSクラス112(0)によって使用されていないことを示し、QoSIDトラッキングタグ202(3)は、バンク102(3)が現在、関連付けられたQoSクラス112(1)によって使用されていないことを示す。
【００３２】
概算使用測定値120を生成するための図1の共有キャッシュメモリシステム100の例示的な動作を示すために、図3A〜図3Bを提供する。図3A〜図3Bについて述べる際、明確にするために図1および図2A〜図2Dの要素を参照する。図3Aでは、図1のキャッシュ使用モニタ118が、共有キャッシュメモリシステム100の複数のキャッシュ下位区分(たとえば、キャッシュ下位区分200(0)〜200(L)、200(0)〜200(Y)、200(0)〜200(Z)、200(0)〜200(X))のうちの各キャッシュ下位区分200(0)を、複数のQoSクラス112(0)〜112(N)のうちのQoSクラス112(0)に関連付ける(ブロック300)ことで、動作が開始する。これに関して、キャッシュ使用モニタ118は、本明細書では、「共有キャッシュメモリシステムの複数のキャッシュ下位区分のうちの各キャッシュ下位区分を、複数のQoSクラスのうちのQoSクラスに関連付けるための手段」と呼ばれることがある。
【００３３】
キャッシュ使用モニタ118は、次に、QoSID126を含むメモリアクセス要求124を受け取る(ブロック302)。したがって、キャッシュ使用モニタ118は、本明細書では、「QoSIDを含むメモリアクセス要求を受け取るための手段」と呼ばれることがある。キャッシュ使用モニタ118は、複数のキャッシュ下位区分200(0)〜200(L)、200(0)〜200(Y)、200(0)〜200(Z)、200(0)〜200(X)のうちの、メモリアクセス要求124に対応するキャッシュ下位区分200(0)にアクセスする(ブロック304)。したがって、キャッシュ使用モニタ118は、本明細書では、「複数のキャッシュ下位区分のうちの、メモリアクセス要求に対応するキャッシュ下位区分にアクセスするための手段」と呼ばれることがある。
【００３４】
引き続き図3Aを参照すると、キャッシュ使用モニタ118は、メモリアクセス要求124のQoSID126が、キャッシュ下位区分200(0)に関連付けられたQoSクラス112(0)に対応するかどうかを決定する(ブロック306)。これに関して、キャッシュ使用モニタ118は、本明細書では、「メモリアクセス要求のQoSIDが、複数のQoSクラスのうちの、キャッシュ下位区分に関連付けられたQoSクラスに対応するかどうかを決定するための手段」と呼ばれることがある。決定に基づいて、キャッシュ使用モニタ118は、メモリアクセス要求124に対応するキャッシュ下位区分200(0)に関連付けられたQoSIDトラッキングタグ202(0)を更新する(ブロック308)。したがって、キャッシュ使用モニタ118は、本明細書では、「決定するための手段に基づいて、複数のQoSIDのうちの、メモリアクセス要求に対応するキャッシュ下位区分に関連付けられたQoSIDトラッキングタグを更新するための手段」と呼ばれることがある。次いで、処理は図3Bのブロック310で再開する。
【００３５】
次に図3Bに移ると、キャッシュ使用モニタ118は、複数のQoSIDトラッキングタグ202(0)〜202(N)に基づいて、複数のQoSクラス112(0)〜112(Z)のうちのQoSクラス112(0)についての概算使用測定値120を生成する(ブロック310)。したがって、キャッシュ使用モニタ118は、本明細書では、「複数のQoSIDトラッキングタグに基づいて複数のQoSクラスのうちのQoSクラスについての概算使用測定値を生成するための手段」と呼ばれることがある。いくつかの態様では、概算使用測定値120を生成するためのブロック310の動作は、キャッシュ使用モニタ118が、QoSクラス112(0)に関連付けられた複数のキャッシュ下位区分200(0)〜200(X)の割合をまず決定すること(ブロック312)を含むことができる。これに関して、キャッシュ使用モニタ118は、本明細書では、「QoSクラスに関連付けられた複数のキャッシュ下位区分の割合を決定するための手段」と呼ばれることがある。キャッシュ使用モニタ118は、次に、関連付けられたQoSIDトラッキングタグ202(0)が設定されている、QoSクラス112(0)に関連付けられた複数のキャッシュ下位区分200(0)〜200(X)のカウントを決定することができる(ブロック314)。したがって、キャッシュ使用モニタ118は、本明細書では、「関連付けられたQoSIDトラッキングタグが設定されている、QoSクラスに関連付けられた複数のキャッシュ下位区分のカウントを決定するための手段」と呼ばれることがある。キャッシュ使用モニタ118は、次いで、キャッシュ下位区分200(0)〜200(X)のカウントを割合で割って、概算使用測定値120を生成することができる(ブロック316)。したがって、キャッシュ使用モニタ118は、本明細書では、「複数のキャッシュ下位区分のカウントを割合で割って概算使用測定値を生成するための手段」と呼ばれることがある。
【００３６】
共有キャッシュメモリシステムに関する概算使用測定値の生成は、任意のプロセッサベースのデバイス中で提供されてよく、または任意のプロセッサベースのデバイスに統合されてよい。限定ではないが、例は、セットトップボックス、娯楽ユニット、ナビゲーションデバイス、通信デバイス、固定場所データユニット、モバイル場所データユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、パーソナルデジタルアシスタント(PDA)、モニタ、コンピュータモニタ、テレビジョン、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤを含む。
【００３７】
これに関して、図4は、図1のキャッシュコントローラ110を有する共有キャッシュメモリシステム(SCMS)100を含むことができる例示的なプロセッサベースのシステム400のブロック図である。この例では、プロセッサベースのシステム400は、1つまたは複数のCPU402を備え、各CPU402は、1つまたは複数のプロセッサ404を備える。CPU402は、マスタデバイスであってよい。CPU402は、一時的に記憶されたデータへの素早いアクセスのために、プロセッサ404に結合されたキャッシュメモリ406を有することができる。いくつかの態様では、キャッシュメモリ406は、図1の共有キャッシュメモリシステム100および/またはキャッシュコントローラ110を含むことができる。CPU402は、プロセッサベースのシステム400に備わるマスタデバイスおよびスレーブデバイスを相互結合することができるシステムバス408に結合される。周知のように、CPU402は、システムバス408を介してアドレス、制御、およびデータ情報を交換することによって、これら他のデバイスと通信する。たとえば、CPU402は、スレーブデバイスの例としてのメモリコントローラ410に、バストランザクション要求を通信することができる。
【００３８】
他のマスタデバイスおよびスレーブデバイスがシステムバス408に接続されてもよい。図4に示すように、これらのデバイスは、例として、メモリシステム412、1つまたは複数の入力デバイス414、1つまたは複数の出力デバイス416、1つまたは複数のネットワークインターフェースデバイス418、および1つまたは複数のディスプレイコントローラ420を含むことができる。入力デバイス414は、任意のタイプの入力デバイスを含むことができ、これらは、以下のものに限定されないが、入力キー、スイッチ、音声プロセッサなどを含む。出力デバイス416は、任意のタイプの出力デバイスを含むことができ、これらは、以下のものに限定されないが、オーディオ、ビデオ、他の視覚インジケータなどを含む。ネットワークインターフェースデバイス418は、ネットワーク422との間でのデータの交換を可能にするように構成された任意のデバイスであってよい。ネットワーク422は、任意のタイプのネットワークであってよく、これらは、以下のものに限定されないが、有線またはワイヤレスネットワーク、私設または公衆ネットワーク、ローカルエリアネットワーク(LAN)、ワイヤレスローカルエリアネットワーク(WLAN)、ワイドエリアネットワーク(WAN)、BLUETOOTH(登録商標)ネットワーク、およびインターネットを含む。ネットワークインターフェースデバイス418は、望まれる任意のタイプの通信プロトコルをサポートするように構成されてよい。メモリシステム412は、1つまたは複数のメモリユニット424(0)〜424(N)を備えることができる。
【００３９】
CPU402はまた、システムバス408を介してディスプレイコントローラ420にアクセスして、1つまたは複数のディスプレイ426に送られる情報を制御するように構成されてよい。ディスプレイコントローラ420は、1つまたは複数のビデオプロセッサ428を介して表示されるように情報をディスプレイ426に送り、ビデオプロセッサ428は、表示されるべき情報を処理して、ディスプレイ426に適したフォーマットにする。ディスプレイ426は、任意のタイプのディスプレイを含むことができ、これらは、以下のものに限定されないが、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイなどを含む。
【００４０】
本明細書で開示される態様との関連で述べた様々な例証的な論理ブロック、モジュール、回路、およびアルゴリズムは、電子ハードウェアとして実装され得ることを、当業者ならさらに認識するであろう。本明細書に記載のデバイスは、例として、任意の回路、ハードウェアコンポーネント、集積回路(IC)、またはICチップにおいて採用されてよい。本明細書で開示されるメモリは、任意のタイプおよびサイズのメモリであってよく、望まれる任意のタイプの情報を記憶するように構成されてよい。この交換可能性を明確に示すために、様々な例証的なコンポーネント、ブロック、モジュール、回路、およびステップを、上記では概してそれらの機能性の点から述べた。そのような機能性がどのように実装されるかは、システム全体に課される特定の適用例、設計選択、および/または設計制約に依存する。当業者なら、述べた機能性を、特定の適用例ごとに様々な方式で実装することができるが、そのような実装決定は、本開示の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【００４１】
本明細書で開示される実施形態との関連で述べた様々な例証的な論理ブロック、モジュール、および回路は、本明細書に記載の機能を実施するように設計された、プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラム可能ロジックデバイス、ディスクリートゲートもしくはトランジスタロジック、ディスクリートハードウェアコンポーネント、またはこれらの任意の組合せを用いて、実装または実施され得る。プロセッサはマイクロプロセッサであってよいが、代替では、プロセッサは、任意の従来型プロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってもよい。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと併用される1つもしくは複数のマイクロプロセッサ、または他の任意のそのような構成として実装されることもある。
【００４２】
また、本明細書における例示的な態様のいずれかに記載の動作ステップは、例および考察を提供するために述べるものであることにも留意されたい。述べた動作は、示されたシーケンス以外の多くの異なるシーケンスで実施されてもよい。さらに、単一の動作ステップで述べた動作が、実際にはいくつかの異なるステップで実施されてもよい。加えて、例示的な態様において論じた1つまたは複数の動作ステップが、結合されてもよい。フローチャート図の中で示された動作ステップに、当業者にはすぐに明らかとなるような多くの異なる修正が加えられてもよいことを理解されたい。また、情報および信号は、様々な異なる技術および技法のいずれかを使用して表される場合があることも、当業者なら理解するであろう。たとえば、上の記述の全体を通して参照される場合のあるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはこれらの任意の組合せによって表される場合がある。
【００４３】
本開示に関する前の記述は、任意の当業者が本開示を作成または使用できるようにするために提供するものである。本開示に対する様々な修正が当業者にはすぐに明らかであろうし、本明細書で定義される一般原理は、本開示の主旨または範囲を逸脱することなく、他の変形にも適用され得る。したがって、本開示は、本明細書に記載の例および設計に限定されるものとはせず、本明細書で開示される原理および新規な特徴に一致する可能な最も広い範囲を与えられるものとする。
【符号の説明】
【００４４】
100  共有キャッシュメモリシステム(SCMS)
102(0)〜102(X)  バンク
104(0)〜104(Y)  セット
106(0)〜106(L)  キャッシュ線
108(0)〜108(Z)  ウェイ
110  キャッシュコントローラ
112(0)〜112(N)  QoSクラス
114(0)〜114(N)  QoSID
116  キャッシュ割振り回路
118  キャッシュ使用モニタ
120  概算使用測定値
122  QoSIDトラッキングタグデータ構造
124  メモリアクセス要求
126  QoSID
200(0)〜200(L)  キャッシュ線に対応するキャッシュ下位区分
200(0)〜200(Y)  キャッシュ線のセットに対応するキャッシュ下位区分
200(0)〜200(Z)  キャッシュ線のウェイに対応するキャッシュ下位区分
200(0)〜200(X)  キャッシュ線のバンクに対応するキャッシュ下位区分
202(0)〜202(L)  QoSIDトラッキングタグ
202(0)〜202(Y)  QoSIDトラッキングタグ
202(0)〜202(Z)  QoSIDトラッキングタグ
202(0)〜202(X)  QoSIDトラッキングタグ
400  プロセッサベースのシステム
402  CPU
404  プロセッサ
406  キャッシュメモリ
408  システムバス
410  メモリコントローラ
412  メモリシステム
414  入力デバイス
416  出力デバイス
418  ネットワークインターフェースデバイス
420  ディスプレイコントローラ
422  ネットワーク
424(0)〜424(N)  メモリユニット
426  ディスプレイ
428  ビデオプロセッサ
【要約】
共有キャッシュメモリシステムに関する概算使用測定値を生成することが開示される。一態様では、キャッシュメモリシステムが提供される。キャッシュメモリシステムは、共有キャッシュメモリシステムを備える。共有キャッシュメモリシステムのサブセットは、QoSクラスについてのQoSIDトラッキングインジケータを記憶するように構成されたサービス品質識別子(QoSID)トラッキングタグを含む。共有キャッシュメモリシステムは、QoSIDを含むメモリアクセス要求を受け取るように構成され、メモリアクセス要求に対応するキャッシュ線にアクセスするように構成されるキャッシュコントローラをさらに備える。キャッシュコントローラはまた、メモリアクセス要求のQoSIDが、QoSIDに割り当てられたキャッシュ線に対応するかどうかを決定するように構成される。対応する場合は、キャッシュコントローラは追加的に、QoSIDトラッキングタグを更新するように構成される。【図１】
0006262408.tif 000003
【図２Ａ】
0006262408.tif 000004
【図２Ｂ】
0006262408.tif 000005
【図２Ｃ】
0006262408.tif 000006
【図２Ｄ】
0006262408.tif 000007
【図３Ａ】
0006262408.tif 000008
【図３Ｂ】
0006262408.tif 000009
【図４】
0006262408.tif 000010