JP2017152009A - マルチスレッドプロセッサ内の区分された共有キャッシュにおけるスレッド単位のキャッシュライン割当て機構 - Google Patents

マルチスレッドプロセッサ内の区分された共有キャッシュにおけるスレッド単位のキャッシュライン割当て機構 Download PDF

Info

Publication number
JP2017152009A
JP2017152009A JP2017067172A JP2017067172A JP2017152009A JP 2017152009 A JP2017152009 A JP 2017152009A JP 2017067172 A JP2017067172 A JP 2017067172A JP 2017067172 A JP2017067172 A JP 2017067172A JP 2017152009 A JP2017152009 A JP 2017152009A
Authority
JP
Japan
Prior art keywords
cache
thread
processing
partition
data
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
JP2017067172A
Other languages
English (en)
Other versions
JP6279787B2 (ja
Inventor
クリストファー・エドワード・クーブ
Edward Kube Christopher
アジャイ・アナント・イングル
Anant Ingle Ajay
ルシアン・コドレスク
Codrescu Lucian
スレッシュ・ケー・ヴェンクマハンティ
K Venkumahanti Suresh
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2017152009A publication Critical patent/JP2017152009A/ja
Application granted granted Critical
Publication of JP6279787B2 publication Critical patent/JP6279787B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】マルチスレッドプロセッサの区分された共有キャッシュにおけるキャッシュラインの割当てのためのシステムおよび方法を提供すること。【解決手段】処理システムにおいて、メモリ管理ユニット、キャッシュに割り当てられるべき処理スレッドに関連付けられたキャッシュエントリのアドレスに関連付けられた属性を判断する。構成レジスタは、判断された属性に基づくキャッシュ割当て情報を記憶する。区分レジスタは、キャッシュを2つ以上の部分(メイン/予備)に区分するための区分情報を記憶する。キャッシュエントリは、構成レジスタおよび区分レジスタに基づいて、キャッシュの部分のうちの1つに割り当てられる。【選択図】図4

Description

開示される実施形態は、共有キャッシュにおけるキャッシュ割当てを対象とする。より詳細には、例示的な実施形態は、マルチスレッドプロセッサ内の区分された共有キャッシュにおけるキャッシュラインの割当てを対象とする。
プロセッサにおけるマルチスレッドの明示は、プロセスの粒度(process granularity)の異なるレベルで、または異なる程度で行うことができる。マルチスレッドプロセッサの様々なスレッドは、1つまたは複数のレベルのキャッシュと、メモリとを共有し得る。スレッドは、「ストリーミングデータ」、「ローカライズされたデータ」、「マルチユースデータ」、「共有」、「非共有」などのような異なるデータ属性を有し得る。LRU(least recently used)のような単純な割当ておよび置換方式は、スレッドと、スレッドに固有のデータ属性とによって作成された異なるコンテキストを考慮しなければならないので、不適切である。
たとえば、専用の割当て/置換機構がない場合、ストリーミングデータによってポピュレートされた共有キャッシュのキャッシュラインは、別のスレッドのローカライズされたデータまたはマルチユースデータに置き換えられ得る。そのようなシナリオは許容できないものであり、処理速度および効率の深刻な低下をもたらす可能性がある。
いくつかの共有キャッシュは、異なるスレッドからのデータを別々にしておくための静的区分を含み得る。しかし、静的区分を用いると、スレッドは特定のキャッシュ区分に静的に固定され、このことはさらなる欠点をもたらす。たとえば、スレッドのデータ属性は、ストリーミングデータからローカライズされたデータに、またはローカライズされたデータからストリーミングデータに動的に移行することがある。わかるように、スレッドを固定して、キャッシュのあらかじめ定義された部分に割り当てる静的区分は、スレッドにおけるデータ属性のそのような動的移行を考慮することができない。
したがって、上記の欠点を回避する、共有キャッシュにおける柔軟なキャッシュ割当てが当技術分野で必要とされている。
本発明の例示的な実施形態は、マルチスレッド用の区分された共有キャッシュにおけるキャッシュラインの割当てのためのシステムおよび方法を対象とする。
たとえば、例示的な実施形態は、キャッシュに割り当てられるべき処理スレッドに関連付けられたキャッシュエントリのアドレスを受け取るステップと、アドレスに関連付けられた属性を判断するステップと、属性に基づくキャッシュ割当て情報を用いて、処理スレッドに対応する構成レジスタを設定するステップと、区分レジスタに基づいて、キャッシュ区分を判断するステップと、構成レジスタおよびキャッシュ区分に基づいて、キャッシュエントリをキャッシュに割り当てるステップとを含む、共有キャッシュを更新する方法を対象とする。
別の例示的な実施形態は、マルチスレッド処理システムの処理スレッドについての、キャッシュに割り当てられるべきデータに関連付けられたアドレスを受け取るステップと、アドレスに関連付けられたページ属性を判断するステップと、キャッシュを2つ以上の部分に区分するステップと、ページ属性のうちの少なくとも1つに基づいて、データをキャッシュの1つまたは複数の部分に割り当てるステップとを含む、マルチスレッド処理システムにおけるキャッシュ割当ての方法を対象とする。
さらに別の例示的な実施形態は、キャッシュと、処理スレッドと、キャッシュに割り当てられるべき処理スレッドに関連付けられたキャッシュエントリのアドレスに関連付けられた属性を判断するためのメモリ管理ユニットと、判断された属性に基づくキャッシュ割当て情報を含む構成レジスタと、キャッシュを2つ以上の部分に区分するための区分情報を含む区分レジスタと、構成レジスタおよび区分レジスタに基づいて、キャッシュエントリをキャッシュの部分のうちの1つに割り当てるための論理手段とを含むマルチスレッド処理システムを対象とする。
さらに別の例示的な実施形態は、キャッシュと、処理スレッドと、キャッシュに割り当てられるべき処理スレッドに関連付けられたキャッシュエントリのアドレスに関連付けられた属性を判断するためのメモリ管理手段と、判断された属性に基づくキャッシュ割当て情報を記憶するための構成手段と、キャッシュを2つ以上の部分に区分するための区分情報を記憶するための区分手段と、構成手段および区分手段に基づいて、キャッシュエントリをキャッシュの部分のうちの1つに割り当てるための手段とを含むマルチスレッド処理システムを対象とする。
さらに別の例示的な実施形態は、マルチスレッドプロセッサによって実行されると、マルチスレッドプロセッサに共有キャッシュを更新するための動作を実行させるコードを含む非一時的コンピュータ可読記憶媒体を対象とし、非一時的コンピュータ可読記憶媒体は、キャッシュに割り当てられるべき処理スレッドに関連付けられたキャッシュエントリのアドレスを受け取るためのコードと、アドレスに関連付けられた属性を判断するためのコードと、属性に基づくキャッシュ割当て情報を用いて、構成レジスタを設定するためのコードと、キャッシュ区分を判断するためのコードと、構成レジスタおよびキャッシュ区分に基づいて、キャッシュエントリをキャッシュに割り当てるためのコードとを含む。
さらに別の例示的な実施形態は、マルチスレッドプロセッサによって実行されると、マルチスレッドプロセッサにマルチスレッド処理システムにおけるキャッシュ割当てのための動作を実行させるコードを含む非一時的コンピュータ可読記憶媒体を対象とし、非一時的コンピュータ可読記憶媒体は、マルチスレッド処理システムの処理スレッドについての、キャッシュに割り当てられるべきデータに関連付けられたアドレスを受け取るためのコードと、アドレスに関連付けられたページ属性を判断するためのコードと、キャッシュを2つ以上の部分に区分するためのコードと、ページ属性のうちの少なくとも1つに基づいて、データをキャッシュの1つまたは複数の部分に割り当てるためのコードとを含む。
添付の図面は、本発明の実施形態の説明を助けるために提示され、実施形態の限定ではなく、実施形態の例示のためのみに提供される。
例示的な実施形態による、キャッシュ区分およびキャッシュ割当てを実装するように構成された処理システム100のブロック図である。 キャッシュ割当てのための構成レジスタ設定を含む表である。 例示的なデータキャッシュにおけるキャッシュ割当ておよびキャッシュ区分の論理的な実装形態の概略図である。 例示的な実施形態による、キャッシュを割り当てる方法の例示的な動作フローを示す図である。 例示的な実施形態に従って構成されたマルチコアプロセッサを含むワイヤレスデバイスの特定の例示的な実施形態のブロック図である。
本発明の特定の実施形態を対象とする以下の説明および関連する図面で、本発明の態様を開示する。本発明の範囲から逸脱することなく代替的な実施形態を考案することができる。さらに、本発明の関連する詳細を不明瞭にしないように、本発明のよく知られている要素については詳細に説明しないか、または省略する。
「例示的な」という言葉は、「例、事例、または例示として機能すること」を意味するように本明細書で使用される。「例示的な」として本明細書で説明する任意の実施形態は、必ずしも他の実施形態よりも好ましいか、または有利であると解釈されるべきではない。同様に、「本発明の実施形態」という用語は、本発明のすべての実施形態が、論じられた特徴、利点または動作モードを含むことを必要としない。
本明細書で使用する用語は、特定の実施形態の説明のみを目的とするものであり、本発明の実施形態を限定するものではない。本明細書で使用する単数形「a」、「an」、および「the」は、文脈が別段に明確に示すのでなければ、複数形をも含むものとする。「comprises(備える)」、「comprising(備える)」、「includes(含む)」および/または「including(含む)」という用語は、本明細書で使用する場合、述べられた特徴、整数、ステップ、動作、要素および/または構成要素の存在を明示するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素および/またはそのグループの存在または追加を排除しないことがさらに理解されよう。
さらに、多くの実施形態について、たとえばコンピューティングデバイスの要素によって実施されるべき、一連のアクションに関して説明する。本明細書で説明する様々なアクションは、特定の回路(たとえば、特定用途向け集積回路(ASIC))によって、1つまたは複数のプロセッサによって実行されるプログラム命令によって、あるいは両方の組合せによって実施され得ることを認識されよう。さらに、本明細書で説明するこれらの一連のアクションは、実行時に、関連するプロセッサに本明細書で説明する機能を実行させるコンピュータ命令の対応するセットを記憶した、任意の形式のコンピュータ可読記憶媒体内で全体として具現化されるものと見なすことができる。したがって、本発明の様々な態様は、請求する主題の範囲内にすべて入ることが企図されているいくつかの異なる形式で具現化され得る。さらに、本明細書で説明する実施形態ごとに、任意のそのような実施形態の対応する形式について、本明細書では、たとえば、記載のアクションを実施する「ように構成された論理手段」として説明することがある。
例示的な実施形態は、共有キャッシュを備えるマルチスレッドプロセッサに適している。実施形態は、区分されたキャッシュにおけるデータの柔軟な割当てを可能にするように構成され得る。いくつかの実施形態では、ソフトウェアは、静的区分をオーバーライドし、データをソフトウェアによって決定された区分に割り当てることによって、静的に区分されたキャッシュにおけるデータの割当てを制御することができる。言い換えれば、ソフトウェアは、たとえば、スレッド固有であり得るキャッシュの静的に定義された区分に従うことなく、データをキャッシュ全体に割り当ててもよい。
次に図1を参照すると、処理システム100の略図が示されている。マルチスレッドプロセッサ102は、ハードウェアまたはソフトウェアで実装され得る2つ以上のスレッド(たとえば、スレッドT0、T1、T2、およびT3)を処理するように構成され得る。2つ以上のスレッドは、本明細書で論じる例示的な実施形態に従って区分され得る、Dキャッシュ104およびIキャッシュ106などのL1キャッシュにアクセスすることができる。L2キャッシュ(図示せず)などの1つまたは複数のレベルのキャッシュも、最終的に共有メインメモリ108になる、プロセッサ102のメモリ階層に存在し得る。メモリ管理ユニット(MMU)110は、マルチスレッドプロセッサ102によって生成された仮想アドレスからキャッシュおよびメインメモリ108にアクセスするための物理アドレスへのアドレス変換などの機能を果たすために、様々なキャッシュおよびメインメモリと通信していてもよい。処理システム100の適切な変形形態は、開示される実施形態の範囲を逸脱することなく、当業者によって認識されよう。
次に、一般性の喪失なしに、例示的な実施形態におけるキャッシュ割当てについて、Dキャッシュ104を参照しながら説明する。Dキャッシュ104は、特定のニーズに従ってキャッシュスペース内でのデータの配置を制御するために、様々な方法で区分され得る。たとえば、Dキャッシュ104は、メイン部分および予備部分に区分され得る。メイン部分は、マルチスレッドプロセッサ102からのスレッドのデータ処理のニーズに専用のものとすることができるが、予備部分は、たとえばダイレクトメモリアクセス(DMA)エンジン(図示せず)から受け取ることができるストリーミングデータに専用のものとすることができる。メイン部分および予備部分の相対的サイズまたは絶対的サイズと配置とは、静的に設定され得る。たとえば、キャッシュは、50:50、25:75、75:25などの選択された比率で、メイン部分および予備部分に静的に区分され得る。言い換えれば、キャッシュのウェイに関して、キャッシュ区分はメイン部分および予備部分におけるウェイの数を指定することができる。たとえば、8ウェイキャッシュの場合、キャッシュ区分は、メイン部分で6ウェイを指定し、予備部分で2ウェイを指定する(75:25の割合に対応する)ことができる。いくつかの実施形態では、キャッシュ区分は動的であってもよい。たとえば、メイン部分および予備部分の相対的な割合は処理スレッドに基づいてもよい。
例示的な実施形態は、マルチスレッドプロセッサ102のスレッド単位の構成レジスタを含むことができ、構成レジスタは、スレッドに対応するキャッシュ割当てを制御することができる。構成レジスタは、ソフトウェアによって設定されてもよい。各スレッドは、スレッド内のデータのアドレスに関連付けられたページ属性などの関連するデータ属性を有し得る。これらのデータ属性は、Dキャッシュ104におけるデータの割当てを決定するために使用され得る。
次に図2を参照すると、第1のスレッドの構成レジスタCP 200に基づく(たとえば、マルチスレッドプロセッサ102で実行される)第1のスレッドに対するキャッシュ割当てディレクティブを含む表が示されている。図示のように、CP 200が「00」の値に設定される第1のモードでは、Dキャッシュ104におけるデータの割当て/配置は、関連するデータ属性によって制御される。たとえば、第1のモードでは、Dキャッシュ104の定義された区分へのデータのいかなる静的に決定された割当ても無視され、データ属性はデータをどこに配置するかを命令する。言い換えれば、この第1のモードでは、どのようにDキャッシュ104が特定の割合のメイン部分および予備部分に区分されるかにかかわらず、これらの区分を無視することができ、データ属性に基づいて、データをDキャッシュ104全体の任意の部分に割り当てることができる。いくつかの実施形態では、MMU 110は、データ属性についてのデータに関連付けられたアドレスをパースし、これらの属性を使用して、それに応じて構成レジスタCPを設定することによって、キャッシュ割当てを支援するように構成され得る。
引き続き図2の表200を参照すると、CP 200が「01」の値に設定される第2のモードでは、Dキャッシュ104の区分へのデータの割当てのいかなる静的な決定も無視され、データはDキャッシュ104のメイン部分に割り当てられる。同様に、CP 200が「10」の値に設定される第3のモードでは、Dキャッシュ104の区分へのデータの割当てのいかなる静的な決定も無視され、データはDキャッシュ104の予備部分に割り当てられる。図2の表では3つのモードのみが示されているが、必要であれば、より多くのビットをCP 200に追加することによって、追加のモードを定義することができる。たとえば、別のモードは、Dキャッシュ104における関連するデータの割当てがスキップされ、データが未キャッシュとして扱われる、「割当てなし」を指定することができる。さらに別のモードは、第1のスレッドについてDキャッシュ104におけるデータ割当てに最も最近使用された部分(たとえば、メインまたは予備)にデータが割り当てられる、「MRU(most recently used)」割当てを指定することができる。当業者であれば、特定の実装形態のための構成レジスタを設定することに基づいて、上記のモードの適切な変形形態を認識されよう。
次に図3を参照すると、スレッド固有の構成レジスタを使用した、Dキャッシュ104の割当ての例示的な実装形態が示されている。スレッドT0、T1、およびT2にそれぞれ対応する、3つの構成レジスタCP 300_0、300_1、および300_2が示されている。同じく図示のように、Dキャッシュ104の拡大図は、タグアレイ302、状態アレイ304、およびデータアレイ306を含む。次に、Dキャッシュ104のタグアレイ302、状態アレイ304、およびデータアレイ306における区分を制御するように構成されたDキャッシュ区分レジスタDP 310についてさらに詳細に論じる。
Dキャッシュ区分レジスタDP 310は、Dキャッシュ104についての特定の区分情報を保持するように構成され得る。一例では、Dキャッシュ104の静的区分を実装することができ、Dキャッシュ104のメイン部分および予備部分の相対的な割合に関係する情報を用いてDP 310を設定することができる。たとえば、処理システム100のシステム構成の一部としてDP 310を設定することができる。静的区分は各処理スレッドに共通であってもよく、またはスレッド固有であってもよい。固有の静的区分はプログラマーによって選択されてもよい。別の例では、Dキャッシュ104はスレッド固有の方法で動的に区分されてもよい。静的区分と動的区分の組合せも可能であり、区分レジスタDP 310を適切に構成することによって実装され得る。
静的に区分されるか動的に区分されるかにかかわらず、DP 310によって示される固有の区分は、タグアレイ302をメインタグアレイ部分302aおよび予備タグアレイ部分302bに区分するために使用され得る。同様に、状態アレイ304をメイン状態アレイ部分304aおよび予備状態アレイ部分304bに区分することができ、データアレイ306をメインデータアレイ部分306aおよび予備データアレイ部分306bに区分することができる。
次に、データをDキャッシュ104に書き込む一般的な機構について説明する。Dキャッシュ104に割り当てられる必要があるデータの物理アドレス(PA)は、PA[タグビット]316a、PA[セットビット]316b、およびPA[データアレイビット]316cのタグビットにパースされ得る。PA[タグビット]316aは、コンパレータ314を使用して、(コンテントアドレッサブルメモリ(CAM: content addressable memory)として実装され得る)タグアレイ302に存在するタグと比較され得る。コンパレータ314は、PA[セットビット]316bを使用して状態アレイ304から読み出された対応する状態ビットを用いて、肯定的な結果(ヒット)を確認して、ヒットするタグアレイエントリが有効であることを保証することもできる。一方、ミスがあり、Dキャッシュ104を割り当てる必要がある場合、置換ウェイロジック308は、構成レジスタCPのモードを考慮することによって、PAに対応するデータアレイ306におけるエントリの割当てを支援することができる。
次に、上記で説明したDキャッシュ104に書き込む機構を用いた、スレッド固有の構成レジスタCP 300_0、300_1および300_2の例示的な協調について、引き続き図3を参照しながら説明する。図示のように、3つのスレッドT0、T1、およびT2の選択されたスレッドについて、スレッドmux 312は、選択されたスレッドに対応する構成レジスタCP 300_0、300_1および300_2から選択するように構成され得る。第1の例では、物理アドレスPAを有するデータはスレッドT0に属すると仮定される。対応して、スレッドmux 312は、値「00」を保持するように示されている構成レジスタCP 300_0を選択する。前に説明したように、これは、Dキャッシュ104の既存の区分が無視され、Dキャッシュ104の割当てがデータ属性に基づく第1のモードに対応する。したがって、上記で説明したDキャッシュ104に書き込む機構の後、ミスがある場合、置換ウェイロジック308は、PA[データアレイビット]316cから導出された割り当てられたロケーションでのメインデータアレイ部分306aまたは予備データアレイ部分306bへのデータの書込みと、DP 310から導出された区分情報によって決定され得る任意の割当てのオーバーライドとを支援する。
第2の例では、データはスレッドT1に属することができ、したがって、スレッドmux 312に、値「01」を保持するように示されている構成レジスタCP 300_1を選択させる。前に説明したように、この値は、データがDキャッシュ104のメイン部分に割り当てられる第2のモードに対応する。Dキャッシュ104内のメイン部分のロケーションは、DP 310に基づいて決定される。したがって、上記で説明したDキャッシュ104に書き込む機構の後、ミスがあると、データはPA[データアレイビット]316cから導出されたロケーションでメインデータアレイ部分306aに書き込まれる。
第3の例では、データはスレッドT2に属することができ、したがって、スレッドmux 312に、値「10」を保持するように示されている構成レジスタCP 300_2を選択させる。前に説明したように、この値は、データがDキャッシュ104の予備部分に割り当てられる第3のモードに対応する。Dキャッシュ104内の予備部分のロケーションは、DP 310に基づいて決定される。したがって、上記で説明したDキャッシュ104に書き込む機構の後、ミスがあると、データはPA[データアレイビット]316cから導出されたロケーションで予備データアレイ部分306bに書き込まれる。
したがって、例示的な実施形態では、Dキャッシュ104は静的に区分されてもよい。データの後続の割当ては、属性に基づいて対応する構成レジスタCPを適切に設定することによって制御され得る。当業者であれば、開示される技法はIキャッシュ106またはL2キャッシュなどの任意の他のキャッシュに容易に拡張され得ることを理解されよう。対応して、キャッシュ割当ては、キャッシュラインまたはデータもしくは命令を含むキャッシュブロックなどの任意の適切なキャッシュエントリのためのものであってもよい。固有の区分または割当てモードにかかわらず、例示的な実施形態におけるデータ/命令の割当てのきめの細かい制御は、ソフトウェアにおける共有キャッシュの管理を改善し、それによって処理システム100のパフォーマンスを改善することができる。
実施形態は、本明細書で開示するプロセス、機能および/またはアルゴリズムを実施するための様々な方法を含むことが諒解されよう。たとえば、図4に示すように、一実施形態は、キャッシュに割り当てられるべき処理スレッドに関連付けられたキャッシュエントリのアドレス(たとえば、図3のスレッドT0に関連付けられたデータに対するPA)を受け取るステップ-ブロック402と、アドレスに関連付けられた属性(たとえば、ページ属性)を判断するステップ-ブロック404と、属性に基づくキャッシュ割当て情報を用いて、構成レジスタ(たとえば、図3のスレッドT0に対する構成レジスタCP)を設定するステップ-ブロック406と、区分レジスタに基づいて、キャッシュ区分(たとえば、DP 310)を判断するステップ-ブロック408と、構成レジスタおよびキャッシュ区分に基づいて、キャッシュエントリをキャッシュに(たとえば、メイン部分または予備部分に)割り当てるステップ-ブロック410とを含む、キャッシュを更新する方法を含むことができる。
情報および信号は、多種多様な技術および技法のいずれかを使用して表すことができることを当業者は諒解されよう。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
さらに、本明細書で開示した実施形態に関連して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得ることを、当業者は諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップを、上記では概してそれらの機能に関して説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈すべきではない。
本明細書で開示した実施形態に関連して説明した方法、シーケンス、および/またはアルゴリズムは、ハードウェアで、プロセッサによって実行されるソフトウェアモジュールで、またはその2つの組合せで直接具現化され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態の記憶媒体中に常駐し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサと一体であり得る。
図5を参照すると、例示的な実施形態に従って構成されたマルチコアプロセッサを含むワイヤレスデバイスの特定の例示的な実施形態のブロック図が示され、全体的に500と表される。デバイス500はデジタル信号プロセッサ(DSP)564を含み、デジタル信号プロセッサ(DSP)564は、図示のようにメモリ532に結合されたプロセッサ102、MMU 110、Dキャッシュ104、およびIキャッシュ106など、図1に示す様々なブロックを含み得る。図5は、DSP 564およびディスプレイ528に結合された、ディスプレイコントローラ526も示している。コーダ/デコーダ(コーデック)534(たとえば、オーディオおよび/または音声コーデック)は、DSP 564に結合され得る。(モデムを含むことができる)ワイヤレスコントローラ540などの他の構成要素も示されている。スピーカー536およびマイクロフォン538は、コーデック534に結合され得る。図5は、ワイヤレスコントローラ540が、ワイヤレスアンテナ542に結合され得ることも示している。特定の実施形態では、DSP 564、ディスプレイコントローラ526、メモリ532、コーデック534、およびワイヤレスコントローラ540は、システムインパッケージデバイスまたはシステムオンチップデバイス522に含まれる。
特定の実施形態では、入力デバイス530および電源544は、システムオンチップデバイス522に結合される。さらに、特定の実施形態では、図5に示すように、ディスプレイ528、入力デバイス530、スピーカー536、マイクロフォン538、ワイヤレスアンテナ542、および電源544は、システムオンチップデバイス522の外部にある。ただし、ディスプレイ528、入力デバイス530、スピーカー536、マイクロフォン538、ワイヤレスアンテナ542、および電源544の各々は、インターフェースまたはコントローラなどの、システムオンチップデバイス522の構成要素に結合され得る。
図5はワイヤレス通信デバイスを示しているが、DSP 564およびメモリ532も、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、エンターテインメントユニット、ナビゲーションデバイス、携帯情報端末(PDA)、固定ロケーションデータユニット、またはコンピュータに組み込むことができることに留意されたい。プロセッサ(たとえばDSP 564)も、そのようなデバイス内に組み込むことができる。
したがって、本発明の一実施形態は、キャッシュ割当てのための方法を具現化するコンピュータ可読記録媒体を含むことができる。したがって、本発明は図示の例に限定されず、本明細書で説明した機能を実施するためのいかなる手段も、本発明の実施形態に含まれる。
上記の開示は本発明の例示的な実施形態を示すが、添付の特許請求の範囲によって規定される本発明の範囲から逸脱することなく、本明細書において様々な変更および修正を行えることに留意されたい。本明細書で説明した本発明の実施形態による方法クレームの機能、ステップおよび/またはアクションは、特定の順序で実施されなくてもよい。さらに、本発明の要素は、単数形で説明または特許請求されていることがあるが、単数形に限定することが明示的に述べられていない限り、複数形が企図される。
100 処理システム
102 マルチスレッドプロセッサ、プロセッサ
104 Dキャッシュ
106 I-キャッシュ
108 メインメモリ
110 メモリ管理ユニット、MMU
200 表、構成レジスタCP
300_0 構成レジスタCP
300_1 構成レジスタCP
300_2 構成レジスタCP
302 タグアレイ
302a メインタグアレイ部分
302b 予備タグアレイ部分
304 状態アレイ
304a メイン状態アレイ部分
304b 予備状態アレイ部分
306 データアレイ
306a メインデータアレイ部分
306b 予備データアレイ部分
308 置換ウェイロジック
310 Dキャッシュ区分レジスタDP
312 スレッドmux
314 コンパレータ
316a PA[タグビット]
316b PA[セットビット]
316c PA[データアレイビット]
522 システムオンチップデバイス
526 ディスプレイコントローラ
528 ディスプレイ
530 入力デバイス
532 メモリ
534 コーデック
536 スピーカー
538 マイクロフォン
540 ワイヤレスコントローラ
542 ワイヤレスアンテナ
544 電源
564 DSP
T0、T1、T2、T3 キャッシュ

Claims (20)

  1. マルチスレッドプロセッサの2つ以上の処理スレッドの間で共有されるキャッシュを更新する方法であって、
    前記キャッシュに割り当てられるべき前記2つ以上の処理スレッドのうちの1つの処理スレッドに関連付けられたキャッシュエントリのアドレスを受け取るステップと、
    前記アドレスに関連付けられた属性を決定するステップと、
    前記属性に基づくキャッシュ割当て情報を用いて、前記処理スレッドに対応する構成レジスタを設定するステップであって、2つ以上の構成レジスタは、前記2つ以上の処理スレッドに関するキャッシュ割当て情報をそれぞれ含む、ステップと、
    区分レジスタに基づいて、メイン部分と予備部分との間のデフォルトのキャッシュ区分を決定するステップと、
    前記処理スレッドに対応する前記構成レジスタから、前記デフォルトのキャッシュ区分が無視されるモードを決定するステップと、
    前記デフォルトのキャッシュ区分を無視しながら、前記処理スレッドの前記構成レジスタに基づき、前記キャッシュ内に前記キャッシュエントリを割り当てるステップと
    を含む、方法。
  2. 前記属性がページ属性である、請求項1に記載の方法。
  3. 前記属性が、ストリーミングデータ、ローカライズされたデータ、マルチユースデータ、共有、および非共有のうちの1つを示す、請求項1に記載の方法。
  4. 前記キャッシュを含むシステムのシステム構成中に前記区分レジスタを設定するステップを含む、請求項1に記載の方法。
  5. 前記アドレスに関連付けられた前記属性を決定するためのメモリ管理ユニット(MMU)を構成するステップをさらに含む、請求項1に記載の方法。
  6. 前記属性に基づくキャッシュ割当て情報を用いて前記構成レジスタを設定するために前記MMUを構成するステップをさらに含む、請求項5に記載の方法。
  7. 前記キャッシュ割当て情報が、前記属性に基づくキャッシュ割当て、メイン部分へのキャッシュ割当て、および予備部分へのキャッシュ割当てのうちの1つを示す、請求項1に記載の方法。
  8. マルチスレッド処理システムでのキャッシュ割当ての方法であって、
    キャッシュに割り当てられるべき、前記マルチスレッド処理システムの2つ以上の処理スレッドのうちの1つの処理スレッドのためのデータに関連付けられたアドレスを受け取るステップと、
    前記アドレスに関連付けられたページ属性を決定するステップと、
    デフォルトのキャッシュ区分に基づき、前記キャッシュをメイン部分と予備部分とに区分するステップと、
    前記ページ属性から、前記デフォルトのキャッシュ区分が無視されるモードを決定するステップと、
    前記デフォルトのキャッシュ区分を無視しながら、前記ページ属性と、前記処理スレッドに対応するスレッド固有の構成レジスタによって提供されるキャッシュ割当て情報とに基づき、前記データを前記キャッシュの1つまたは複数の部分に割り当てるステップ
    とを含む、方法。
  9. 前記キャッシュを区分するステップが、静的区分に基づく、請求項8に記載の方法。
  10. 前記静的区分が、前記キャッシュを含むシステムのための構成情報によって決定される、請求項9に記載の方法。
  11. 前記静的区分が、前記マルチスレッド処理システムの全ての処理スレッドについて共通に決定される、請求項10に記載の方法。
  12. 前記静的区分が、前記マルチスレッド処理システムの各処理スレッドについて個別に決定される、請求項11に記載の方法。
  13. マルチスレッド処理システムの2つ以上の処理スレッドの間で共有されるキャッシュと、
    前記キャッシュに割り当てられるべき前記2つ以上の処理スレッドのうちの1つの処理スレッドに関連付けられたキャッシュエントリのアドレスに関連付けられた属性を決定するためのメモリ管理ユニットと、
    前記2つ以上の処理スレッドに対応する2つ以上の構成レジスタであって、前記決定された属性に基づく前記対応する処理スレッドのキャッシュ割当て情報を含む2つ以上の構成レジスタと、
    メイン部分および予備部分への前記キャッシュのデフォルトのキャッシュ区分を含む区分レジスタと、
    前記デフォルトのキャッシュ区分が無視される前記処理スレッドのモードを選択するように構成されるスレッドmuxと、
    前記処理スレッドに対応する構成レジスタによって提供される前記キャッシュ割当て情報に基づくが、前記区分レジスタによって提供される前記デフォルトのキャッシュ区分とは独立に、前記キャッシュエントリを前記キャッシュの前記部分のうちの1つに割り当てるための論理回路と
    を備える、マルチスレッド処理システム。
  14. 前記属性がページ属性である、請求項13に記載のマルチスレッド処理システム。
  15. 前記キャッシュ割当て情報が、ページ属性に基づくキャッシュ割当て、メイン部分へのキャッシュ割当て、および予備部分へのキャッシュ割当てのうちの1つを示す、請求項13に記載のマルチスレッド処理システム。
  16. マルチスレッド処理システムの2つ以上の処理スレッドに共有されるキャッシュと、
    前記キャッシュに割り当てられるべき前記2つ以上の処理スレッドのうちの1つの処理スレッドに関連付けられたキャッシュエントリのアドレスに関連付けられた属性を決定するための手段と、
    前記決定された属性に基づくキャッシュ割当て情報を記憶するための2つ以上の手段であって、前記記憶するための2つ以上の手段の各々が、前記2つ以上の処理スレッドのうちの1つに対応する、手段と、
    メイン部分および予備部分への前記キャッシュのデフォルトのキャッシュ区分を記憶するための手段と、
    前記処理スレッドについて前記デフォルトのキャッシュ区分が無視されるモードを決定するための手段と、
    前記処理スレッドのキャッシュ割当て情報を記憶するための前記手段に基づくが、前記デフォルトのキャッシュ区分とは独立に、前記キャッシュエントリを割り当てるための手段と
    を備える、マルチスレッド処理システム。
  17. コードを含む非一時的コンピュータ可読記録媒体であって、前記コードは、マルチスレッドプロセッサによって実行されるときに、前記マルチスレッドプロセッサの2つ以上の処理スレッドの間で共有されるキャッシュを更新するための動作を前記マルチスレッドプロセッサに実行させ、
    前記キャッシュに割り当てられるべき前記2つ以上の処理スレッドのうちの1つの処理スレッドに関連付けられたキャッシュエントリのアドレスを受け取るためのコードと、
    前記アドレスに関連付けられた属性を決定するためのコードと、
    前記属性に基づくキャッシュ割当て情報を用いて前記処理スレッドに対応する構成レジスタを設定するためのコードであって、2つ以上の構成レジスタが、前記2つ以上の処理スレッドに関するキャッシュ割当て情報をそれぞれ含む、コードと、
    メイン部分と予備部分との間のデフォルトのキャッシュ区分を決定するためのコードと、
    前記処理スレッドに対応する前記構成レジスタから、前記デフォルトのキャッシュ区分が無視されるモードを決定するためのコードと、
    前記デフォルトのキャッシュ区分を無視しながら、前記処理スレッドの前記構成レジスタに基づき、前記キャッシュに前記キャッシュエントリを割り当てるためのコードと
    を含む、非一時的コンピュータ可読記録媒体。
  18. 前記メイン部分は、前記2つ以上の処理スレッドのデータ処理のニーズに専用のものとされ、前記予備部分は、ストリーミングデータに専用のものとされる、請求項1に記載の方法。
  19. 前記メイン部分は、前記2つ以上の処理スレッドのデータ処理のニーズに専用のものとされ、前記予備部分は、ストリーミングデータに専用のものとされる、請求項8に記載の方法。
  20. 前記メイン部分は、前記2つ以上の処理スレッドのデータ処理のニーズに専用のものとされ、前記予備部分は、ストリーミングデータに専用のものとされる、請求項13に記載のマルチスレッド処理システム。
JP2017067172A 2012-05-08 2017-03-30 マルチスレッドプロセッサ内の区分された共有キャッシュにおけるスレッド単位のキャッシュライン割当て機構 Expired - Fee Related JP6279787B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/466,359 2012-05-08
US13/466,359 US9824013B2 (en) 2012-05-08 2012-05-08 Per thread cacheline allocation mechanism in shared partitioned caches in multi-threaded processors

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2015511642A Division JP6125617B2 (ja) 2012-05-08 2013-05-08 マルチスレッドプロセッサ内の区分された共有キャッシュにおけるスレッド単位のキャッシュライン割当て機構

Publications (2)

Publication Number Publication Date
JP2017152009A true JP2017152009A (ja) 2017-08-31
JP6279787B2 JP6279787B2 (ja) 2018-02-14

Family

ID=48446688

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2015511642A Active JP6125617B2 (ja) 2012-05-08 2013-05-08 マルチスレッドプロセッサ内の区分された共有キャッシュにおけるスレッド単位のキャッシュライン割当て機構
JP2017067172A Expired - Fee Related JP6279787B2 (ja) 2012-05-08 2017-03-30 マルチスレッドプロセッサ内の区分された共有キャッシュにおけるスレッド単位のキャッシュライン割当て機構

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2015511642A Active JP6125617B2 (ja) 2012-05-08 2013-05-08 マルチスレッドプロセッサ内の区分された共有キャッシュにおけるスレッド単位のキャッシュライン割当て機構

Country Status (5)

Country Link
US (1) US9824013B2 (ja)
EP (1) EP2847684A1 (ja)
JP (2) JP6125617B2 (ja)
CN (1) CN104272278B (ja)
WO (1) WO2013169836A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10430190B2 (en) * 2012-06-07 2019-10-01 Micron Technology, Inc. Systems and methods for selectively controlling multithreaded execution of executable code segments
US10089238B2 (en) * 2014-07-17 2018-10-02 Qualcomm Incorporated Method and apparatus for a shared cache with dynamic partitioning
US9588893B2 (en) 2014-11-10 2017-03-07 International Business Machines Corporation Store cache for transactional memory
US9727239B2 (en) * 2014-11-13 2017-08-08 Samsung Electronics Co., Ltd. Electronic system with partitioning mechanism and method of operation thereof
US9678875B2 (en) 2014-11-25 2017-06-13 Qualcomm Incorporated Providing shared cache memory allocation control in shared cache memory systems
KR101820223B1 (ko) * 2014-12-14 2018-01-18 비아 얼라이언스 세미컨덕터 씨오., 엘티디. 모드에 따라 선택적으로 하나 또는 복수의 셋트를 선택하도록 동적으로 구성가능한 멀티 모드 셋트 연관 캐시 메모리
US10698827B2 (en) 2014-12-14 2020-06-30 Via Alliance Semiconductor Co., Ltd. Dynamic cache replacement way selection based on address tag bits
JP6209689B2 (ja) 2014-12-14 2017-10-04 ヴィア アライアンス セミコンダクター カンパニー リミテッド モードに応じてウェイの全部又はサブセットに選択的に割り当てるように動的に構成可能であるマルチモード・セット・アソシエイティブ・キャッシュ・メモリ
EP3258382B1 (en) * 2016-06-14 2021-08-11 Arm Ltd A storage controller
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
GB201806997D0 (en) * 2018-04-30 2018-06-13 Univ Leuven Kath Configurable hardware device
CN112148665B (zh) * 2019-06-28 2024-01-09 深圳市中兴微电子技术有限公司 缓存的分配方法及装置
CN114726925B (zh) * 2020-12-21 2024-04-19 瑞昱半导体股份有限公司 具有存储器共享机制的无线通信装置及其存储器共享方法
KR20230075914A (ko) * 2021-11-23 2023-05-31 삼성전자주식회사 프로세싱 장치 및 이의 동작 방법과 전자 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10232834A (ja) * 1997-01-30 1998-09-02 Sgs Thomson Microelectron Ltd キャッシュメモリを作動する方法およびコンピュータシステム
JP2000507010A (ja) * 1996-03-15 2000-06-06 マイクロン・テクノロジイ・インコーポレーテッド 画素エンジン・データ・キャッシング機構
JP2002342163A (ja) * 2001-05-15 2002-11-29 Fujitsu Ltd マルチスレッドプロセッサ用キャッシュ制御方式
JP2006309581A (ja) * 2005-04-28 2006-11-09 Aisin Aw Co Ltd ナビゲーションシステム、キャッシュメモリ及びキャッシュ管理方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9701960D0 (en) 1997-01-30 1997-03-19 Sgs Thomson Microelectronics A cache system
US6078994A (en) * 1997-05-30 2000-06-20 Oracle Corporation System for maintaining a shared cache in a multi-threaded computer environment
US6223256B1 (en) * 1997-07-22 2001-04-24 Hewlett-Packard Company Computer cache memory with classes and dynamic selection of replacement algorithms
US6205519B1 (en) * 1998-05-27 2001-03-20 Hewlett Packard Company Cache management for a multi-threaded processor
GB9901933D0 (en) 1999-01-28 1999-03-17 Univ Bristol Cache memory
US6493800B1 (en) * 1999-03-31 2002-12-10 International Business Machines Corporation Method and system for dynamically partitioning a shared cache
US6535905B1 (en) 1999-04-29 2003-03-18 Intel Corporation Method and apparatus for thread switching within a multithreaded processor
US6421761B1 (en) * 1999-11-09 2002-07-16 International Business Machines Corporation Partitioned cache and management method for selectively caching data by type
US6859862B1 (en) 2000-04-07 2005-02-22 Nintendo Co., Ltd. Method and apparatus for software management of on-chip cache
US6604174B1 (en) * 2000-11-10 2003-08-05 International Business Machines Corporation Performance based system and method for dynamic allocation of a unified multiport cache
US6871264B2 (en) 2002-03-06 2005-03-22 Hewlett-Packard Development Company, L.P. System and method for dynamic processor core and cache partitioning on large-scale multithreaded, multiprocessor integrated circuits
US7039760B2 (en) 2003-04-28 2006-05-02 International Business Machines Corporation Programming means for dynamic specifications of cache management preferences
US7536692B2 (en) * 2003-11-06 2009-05-19 Intel Corporation Thread-based engine cache partitioning
JP2007065743A (ja) 2005-08-29 2007-03-15 Sony Ericsson Mobilecommunications Japan Inc 携帯情報端末及びその携帯情報端末の記憶領域管理方法
US7895415B2 (en) * 2007-02-14 2011-02-22 Intel Corporation Cache sharing based thread control
US7725657B2 (en) * 2007-03-21 2010-05-25 Intel Corporation Dynamic quality of service (QoS) for a shared cache
US20090157968A1 (en) * 2007-12-12 2009-06-18 International Business Machines Corporation Cache Memory with Extended Set-associativity of Partner Sets
CN101286138A (zh) 2008-06-03 2008-10-15 浙江大学 基于数据划分的多线程共享多核处理器二级缓存的方法
US8250332B2 (en) * 2009-06-11 2012-08-21 Qualcomm Incorporated Partitioned replacement for cache memory
CN101609432B (zh) 2009-07-13 2011-04-13 中国科学院计算技术研究所 共享缓存管理系统及方法
US9952977B2 (en) * 2009-09-25 2018-04-24 Nvidia Corporation Cache operations and policies for a multi-threaded client

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000507010A (ja) * 1996-03-15 2000-06-06 マイクロン・テクノロジイ・インコーポレーテッド 画素エンジン・データ・キャッシング機構
JPH10232834A (ja) * 1997-01-30 1998-09-02 Sgs Thomson Microelectron Ltd キャッシュメモリを作動する方法およびコンピュータシステム
JP2002342163A (ja) * 2001-05-15 2002-11-29 Fujitsu Ltd マルチスレッドプロセッサ用キャッシュ制御方式
JP2006309581A (ja) * 2005-04-28 2006-11-09 Aisin Aw Co Ltd ナビゲーションシステム、キャッシュメモリ及びキャッシュ管理方法

Also Published As

Publication number Publication date
EP2847684A1 (en) 2015-03-18
CN104272278A (zh) 2015-01-07
CN104272278B (zh) 2017-05-24
JP2015519654A (ja) 2015-07-09
JP6125617B2 (ja) 2017-05-10
US20130304994A1 (en) 2013-11-14
WO2013169836A1 (en) 2013-11-14
US9824013B2 (en) 2017-11-21
JP6279787B2 (ja) 2018-02-14

Similar Documents

Publication Publication Date Title
JP6279787B2 (ja) マルチスレッドプロセッサ内の区分された共有キャッシュにおけるスレッド単位のキャッシュライン割当て機構
US8250332B2 (en) Partitioned replacement for cache memory
JP6279508B2 (ja) 事前充填能力を有するメモリ管理ユニット
US6260114B1 (en) Computer cache memory windowing
US9201796B2 (en) System cache with speculative read engine
US7802057B2 (en) Priority aware selective cache allocation
JP6133896B2 (ja) 物理アドレスを用いる非割当てメモリアクセス
US9292447B2 (en) Data cache prefetch controller
JP6960933B2 (ja) 実行許可に基づくキャッシュのライトアロケーション(Write−Allocation)
US20170371654A1 (en) System and method for using virtual vector register files
US9009413B2 (en) Method and apparatus to implement lazy flush in a virtually tagged cache memory
KR100634930B1 (ko) 캐시 메모리에서 문맥 식별자를 사용하는 방법 및 장치
US9311251B2 (en) System cache with sticky allocation
US20130275683A1 (en) Programmably Partitioning Caches
US20170046274A1 (en) Efficient utilization of memory gaps
US20160246721A1 (en) Role based cache coherence bus traffic control
US11455253B2 (en) Set indexing for first-level and second-level set-associative cache
US20190332166A1 (en) Progressive power-up scheme for caches based on occupancy state

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20171215

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171218

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180117

R150 Certificate of patent or registration of utility model

Ref document number: 6279787

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees