JP2018503891A - 共有キャッシュメモリシステムに関する概算使用測定値の生成 - Google Patents

共有キャッシュメモリシステムに関する概算使用測定値の生成 Download PDF

Info

Publication number
JP2018503891A
JP2018503891A JP2017527594A JP2017527594A JP2018503891A JP 2018503891 A JP2018503891 A JP 2018503891A JP 2017527594 A JP2017527594 A JP 2017527594A JP 2017527594 A JP2017527594 A JP 2017527594A JP 2018503891 A JP2018503891 A JP 2018503891A
Authority
JP
Japan
Prior art keywords
cache
subdivisions
qosid
memory system
subdivision
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017527594A
Other languages
English (en)
Other versions
JP6262408B1 (ja
Inventor
デレイク・ロバート・ハワー
ハロルド・ウェイド・ケイン・ザ・サード
Original Assignee
クアルコム,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Application granted granted Critical
Publication of JP6262408B1 publication Critical patent/JP6262408B1/ja
Publication of JP2018503891A publication Critical patent/JP2018503891A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3471Address tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/211Optical disk storage
    • G06F2212/2112Optical disk storage with a removable carrier, e.g. DVD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/282Partitioned cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/314In storage network, e.g. network attached cache
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Abstract

共有キャッシュメモリシステムに関する概算使用測定値を生成することが開示される。一態様では、キャッシュメモリシステムが提供される。キャッシュメモリシステムは、共有キャッシュメモリシステムを備える。共有キャッシュメモリシステムのサブセットは、QoSクラスについてのQoSIDトラッキングインジケータを記憶するように構成されたサービス品質識別子(QoSID)トラッキングタグを含む。共有キャッシュメモリシステムは、QoSIDを含むメモリアクセス要求を受け取るように構成され、メモリアクセス要求に対応するキャッシュ線にアクセスするように構成されるキャッシュコントローラをさらに備える。キャッシュコントローラはまた、メモリアクセス要求のQoSIDが、QoSIDに割り当てられたキャッシュ線に対応するかどうかを決定するように構成される。対応する場合は、キャッシュコントローラは追加的に、QoSIDトラッキングタグを更新するように構成される。

Description

優先権主張
本出願は、米国特許法第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が付加されているかを完全かつ精密に追跡するのに必要な相対的オーバヘッドのパーセンテージである。
Figure 2018503891
前述のように、いくつかの態様では、キャッシュ下位区分は、キャッシュ線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 ビデオプロセッサ

Claims (23)

  1. 複数のキャッシュ下位区分と、
    前記複数のキャッシュ下位区分のうちのキャッシュ下位区分に各々が関連付けられた複数のサービス品質識別子(QoSID)トラッキングタグと、
    キャッシュ使用モニタとを備え、前記キャッシュ使用モニタが、
    前記複数のキャッシュ下位区分のうちの各キャッシュ下位区分を複数のQoSクラスのうちのQoSクラスに関連付けること、
    QoSIDを含むメモリアクセス要求を受け取ること、
    前記複数のキャッシュ下位区分のうちの、前記メモリアクセス要求に対応するキャッシュ下位区分にアクセスすること、
    前記メモリアクセス要求の前記QoSIDが、前記キャッシュ下位区分に関連付けられた前記QoSクラスに対応するかどうかを決定すること、
    前記決定に基づいて、前記複数のQoSIDトラッキングタグのうちの、前記メモリアクセス要求に対応する前記キャッシュ下位区分に関連付けられたQoSIDトラッキングタグを更新すること、および、
    前記複数のQoSIDトラッキングタグに基づいて前記複数のQoSクラスのうちの前記QoSクラスについての概算使用測定値を生成すること
    を行うように構成された、共有キャッシュメモリシステム。
  2. 前記キャッシュ使用モニタが、
    前記QoSクラスに関連付けられた前記複数のキャッシュ下位区分の割合を決定すること、
    前記関連付けられた複数のQoSIDトラッキングタグが設定されている、前記QoSクラスに関連付けられた前記複数のキャッシュ下位区分のカウントを決定すること、および、
    前記複数のキャッシュ下位区分の前記カウントを前記割合で割って前記概算使用測定値を生成すること
    によって、前記複数のQoSIDトラッキングタグに基づいて前記複数のQoSクラスのうちの前記QoSクラスについての前記概算使用測定値を生成するように構成された、請求項1に記載の共有キャッシュメモリシステム。
  3. 前記複数のキャッシュ下位区分のうちの各キャッシュ下位区分が、キャッシュ線を含む、請求項1に記載の共有キャッシュメモリシステム。
  4. 前記複数のキャッシュ下位区分のうちの各キャッシュ下位区分が、キャッシュ線のセットを含む、請求項1に記載の共有キャッシュメモリシステム。
  5. 前記複数のキャッシュ下位区分のうちの各キャッシュ下位区分が、キャッシュ線のウェイを含む、請求項1に記載の共有キャッシュメモリシステム。
  6. 前記複数のキャッシュ下位区分のうちの各キャッシュ下位区分が、キャッシュ線のバンクを含む、請求項1に記載の共有キャッシュメモリシステム。
  7. 前記複数のQoSIDトラッキングタグが、前記複数のキャッシュ下位区分のうちの分散されたサブセットに関連付けられる、請求項1に記載の共有キャッシュメモリシステム。
  8. 集積回路(IC)に統合された、請求項1に記載の共有キャッシュメモリシステム。
  9. セットトップボックス、娯楽ユニット、ナビゲーションデバイス、通信デバイス、固定場所データユニット、モバイル場所データユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、パーソナルデジタルアシスタント(PDA)、モニタ、コンピュータモニタ、テレビジョン、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤ、からなるグループから選択されたデバイスに統合された、請求項1に記載の共有キャッシュメモリシステム。
  10. 共有キャッシュメモリシステムの複数のキャッシュ下位区分のうちの各キャッシュ下位区分を、複数のサービス品質(QoS)クラスのうちのQoSクラスに関連付けるための手段と、
    QoS識別子(QoSID)を含むメモリアクセス要求を受け取るための手段と、
    前記複数のキャッシュ下位区分のうちの、前記メモリアクセス要求に対応するキャッシュ下位区分にアクセスするための手段と、
    前記メモリアクセス要求の前記QoSIDが、前記複数のQoSクラスのうちの、前記キャッシュ下位区分に関連付けられた前記QoSクラスに対応するかどうかを決定するための手段と、
    前記決定するための手段に基づいて、複数のQoSIDトラッキングタグのうちの、前記メモリアクセス要求に対応する前記キャッシュ下位区分に関連付けられたQoSIDトラッキングタグを更新するための手段と、
    前記複数のQoSIDトラッキングタグに基づいて前記複数のQoSクラスのうちの前記QoSクラスについての概算使用測定値を生成するための手段と
    を備える共有キャッシュメモリシステム。
  11. 前記複数のQoSIDトラッキングタグに基づいて前記複数のQoSクラスのうちの前記QoSクラスについての前記概算使用測定値を生成するための前記手段が、
    前記QoSクラスに関連付けられた前記複数のキャッシュ下位区分の割合を決定するための手段と、
    前記関連付けられたQoSIDトラッキングタグが設定されている、前記QoSクラスに関連付けられた前記複数のキャッシュ下位区分のカウントを決定するための手段と、
    前記複数のキャッシュ下位区分の前記カウントを前記割合で割って前記概算使用測定値を生成するための手段と
    を備える、請求項10に記載の共有キャッシュメモリシステム。
  12. 前記複数のキャッシュ下位区分のうちの各キャッシュ下位区分が、キャッシュ線を含む、請求項10に記載の共有キャッシュメモリシステム。
  13. 前記複数のキャッシュ下位区分のうちの各キャッシュ下位区分が、キャッシュ線のセットを含む、請求項10に記載の共有キャッシュメモリシステム。
  14. 前記複数のキャッシュ下位区分のうちの各キャッシュ下位区分が、キャッシュ線のウェイを含む、請求項10に記載の共有キャッシュメモリシステム。
  15. 前記複数のキャッシュ下位区分のうちの各キャッシュ下位区分が、キャッシュ線のバンクを含む、請求項10に記載の共有キャッシュメモリシステム。
  16. 前記複数のQoSIDトラッキングタグが、前記複数のキャッシュ下位区分のうちの分散されたサブセットに関連付けられる、請求項10に記載の共有キャッシュメモリシステム。
  17. 共有キャッシュメモリ使用を概算するための方法であって、
    共有キャッシュメモリシステムの複数のキャッシュ下位区分のうちの各キャッシュ下位区分を、複数のサービス品質(QoS)クラスのうちのQoSクラスに関連付けるステップと、
    QoS識別子(QoSID)を含むメモリアクセス要求を受け取るステップと、
    前記複数のキャッシュ下位区分のうちの、前記メモリアクセス要求に対応するキャッシュ下位区分にアクセスするステップと、
    前記メモリアクセス要求の前記QoSIDが、前記複数のQoSクラスのうちの、前記キャッシュ下位区分に関連付けられた前記QoSクラスに対応するかどうかを決定するステップと、
    前記決定に基づいて、複数のQoSIDトラッキングタグのうちの、前記メモリアクセス要求に対応する前記キャッシュ下位区分に関連付けられたQoSIDトラッキングタグを更新するステップと、
    前記複数のQoSIDトラッキングタグに基づいて前記複数のQoSクラスのうちの前記QoSクラスについての概算使用測定値を生成するステップと
    を含む方法。
  18. 前記複数のQoSIDトラッキングタグに基づいて前記複数のQoSクラスのうちの前記QoSクラスについての前記概算使用測定値を生成するステップが、
    前記QoSクラスに関連付けられた前記複数のキャッシュ下位区分の割合を決定するステップと、
    前記関連付けられたQoSIDトラッキングタグが設定されている、前記QoSクラスに関連付けられた前記複数のキャッシュ下位区分のカウントを決定するステップと、
    前記複数のキャッシュ下位区分の前記カウントを前記割合で割って前記概算使用測定値を生成するステップと
    を含む、請求項17に記載の方法。
  19. 前記複数のキャッシュ下位区分のうちの各キャッシュ下位区分が、キャッシュ線を含む、請求項17に記載の方法。
  20. 前記複数のキャッシュ下位区分のうちの各キャッシュ下位区分が、キャッシュ線のセットを含む、請求項17に記載の方法。
  21. 前記複数のキャッシュ下位区分のうちの各キャッシュ下位区分が、キャッシュ線のウェイを含む、請求項17に記載の方法。
  22. 前記複数のキャッシュ下位区分のうちの各キャッシュ下位区分が、キャッシュ線のバンクを含む、請求項17に記載の方法。
  23. 前記複数のQoSIDトラッキングタグが、前記複数のキャッシュ下位区分のうちの分散されたサブセットに関連付けられる、請求項17に記載の方法。
JP2017527594A 2014-11-25 2015-11-09 共有キャッシュメモリシステムに関する概算使用測定値の生成 Active JP6262408B1 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462084469P 2014-11-25 2014-11-25
US62/084,469 2014-11-25
US14/860,993 US9697126B2 (en) 2014-11-25 2015-09-22 Generating approximate usage measurements for shared cache memory systems
US14/860,993 2015-09-22
PCT/US2015/059685 WO2016085642A1 (en) 2014-11-25 2015-11-09 Generating approximate usage measurements for shared cache memory systems

Publications (2)

Publication Number Publication Date
JP6262408B1 JP6262408B1 (ja) 2018-01-17
JP2018503891A true JP2018503891A (ja) 2018-02-08

Family

ID=56010345

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017527594A Active JP6262408B1 (ja) 2014-11-25 2015-11-09 共有キャッシュメモリシステムに関する概算使用測定値の生成

Country Status (11)

Country Link
US (1) US9697126B2 (ja)
EP (1) EP3224727B1 (ja)
JP (1) JP6262408B1 (ja)
KR (1) KR101847905B1 (ja)
CN (1) CN107003947B (ja)
AU (1) AU2015354704B2 (ja)
BR (1) BR112017010869A2 (ja)
ES (1) ES2692855T3 (ja)
HU (1) HUE039628T2 (ja)
TW (1) TWI612422B (ja)
WO (1) WO2016085642A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10055158B2 (en) * 2016-09-22 2018-08-21 Qualcomm Incorporated Providing flexible management of heterogeneous memory systems using spatial quality of service (QoS) tagging in processor-based systems
US10936490B2 (en) * 2017-06-27 2021-03-02 Intel Corporation System and method for per-agent control and quality of service of shared resources in chip multiprocessor platforms
US10678690B2 (en) * 2017-08-29 2020-06-09 Qualcomm Incorporated Providing fine-grained quality of service (QoS) control using interpolation for partitioned resources in processor-based systems
EP4273704A3 (en) * 2018-06-29 2024-01-10 INTEL Corporation Techniques to support a holistic view of cache class of service for a processor cache
US11693708B2 (en) * 2019-04-24 2023-07-04 Netflix, Inc. Techniques for increasing the isolation of workloads within a multiprocessor instance

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007156821A (ja) * 2005-12-05 2007-06-21 Fujitsu Ltd キャッシュシステム及び共用2次キャッシュ

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7725657B2 (en) * 2007-03-21 2010-05-25 Intel Corporation Dynamic quality of service (QoS) for a shared cache
US8296522B2 (en) * 2007-12-20 2012-10-23 Intel Corporation Method, apparatus, and system for shared cache usage to different partitions in a socket with sub-socket partitioning
US8244982B2 (en) * 2009-08-21 2012-08-14 Empire Technology Development Llc Allocating processor cores with cache memory associativity
US8667493B2 (en) 2010-05-07 2014-03-04 Advanced Micro Devices, Inc. Memory-controller-parallelism-aware scheduling for multiple memory controllers
US8458399B2 (en) 2010-11-17 2013-06-04 Lsi Corporation Methods and structure for determining cache size in a storage system
CN103502959B (zh) * 2011-04-07 2016-01-27 富士通株式会社 信息处理装置以及并行计算机系统
US8850122B2 (en) 2011-11-30 2014-09-30 International Business Machines Corporation Cache optimization via predictive cache size modification
US8751746B2 (en) 2011-12-15 2014-06-10 Apple Inc. QoS management in the L2 cache
US10554505B2 (en) 2012-09-28 2020-02-04 Intel Corporation Managing data center resources to achieve a quality of service

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007156821A (ja) * 2005-12-05 2007-06-21 Fujitsu Ltd キャッシュシステム及び共用2次キャッシュ

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
RAVI IYER: "CQoS: A Framework for Enabling QoS in Shared Caches of CMP Platforms", PROCEEDINGS OF 18TH ANNUAL INTERNATIONAL CONFERENCE ON SUPERCOMPUTING, JPN7017003668, 1 July 2004 (2004-07-01), pages 257 - 266 *

Also Published As

Publication number Publication date
EP3224727A1 (en) 2017-10-04
US20160147655A1 (en) 2016-05-26
BR112017010869A2 (pt) 2018-01-09
AU2015354704A1 (en) 2017-05-04
TW201633149A (zh) 2016-09-16
HUE039628T2 (hu) 2019-01-28
ES2692855T3 (es) 2018-12-05
AU2015354704B2 (en) 2018-03-29
KR20170087883A (ko) 2017-07-31
US9697126B2 (en) 2017-07-04
TWI612422B (zh) 2018-01-21
CN107003947B (zh) 2018-08-03
JP6262408B1 (ja) 2018-01-17
CN107003947A (zh) 2017-08-01
EP3224727B1 (en) 2018-08-15
WO2016085642A1 (en) 2016-06-02
KR101847905B1 (ko) 2018-04-11

Similar Documents

Publication Publication Date Title
JP7116047B2 (ja) プロセッサベースシステムの異種メモリシステムの柔軟な管理を実現するためのメモリコントローラおよび方法
JP6262408B1 (ja) 共有キャッシュメモリシステムに関する概算使用測定値の生成
TWI619016B (zh) 共享快取記憶體系統之快取控制器及用於分配共享快取記憶體系統之快取線之方法
US10678690B2 (en) Providing fine-grained quality of service (QoS) control using interpolation for partitioned resources in processor-based systems
TWI627533B (zh) 提供記憶體管理單元分割之轉譯快取及其相關設備、方法及電腦可讀取媒體
US9880748B2 (en) Bifurcated memory management for memory elements

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171113

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171213

R150 Certificate of patent or registration of utility model

Ref document number: 6262408

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250