JP5752331B2 - 物理タグ付けされたデータキャッシュへのトラフィックをフィルタリングするための方法 - Google Patents

物理タグ付けされたデータキャッシュへのトラフィックをフィルタリングするための方法 Download PDF

Info

Publication number
JP5752331B2
JP5752331B2 JP2014551432A JP2014551432A JP5752331B2 JP 5752331 B2 JP5752331 B2 JP 5752331B2 JP 2014551432 A JP2014551432 A JP 2014551432A JP 2014551432 A JP2014551432 A JP 2014551432A JP 5752331 B2 JP5752331 B2 JP 5752331B2
Authority
JP
Japan
Prior art keywords
virtual
tag array
tagged tag
array
tagged
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.)
Expired - Fee Related
Application number
JP2014551432A
Other languages
English (en)
Other versions
JP2015506517A (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 クアルコム,インコーポレイテッド
Publication of JP2015506517A publication Critical patent/JP2015506517A/ja
Application granted granted Critical
Publication of JP5752331B2 publication Critical patent/JP5752331B2/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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本開示はデータキャッシュに関する。
優先権の主張
本出願は、その全体が参照により本明細書に組み込まれる、2012年1月17日に出願されたMETHOD FOR FILTERING TRAFFIC TO A PHYSICALLY-TAGGED DATA CACHEと題する米国仮特許出願第61/587,140号の優先権を主張する。
多くの現代のマイクロプロセッサは、仮想的にアドレス指定されたキャッシュを利用する。仮想的にアドレス指定されたキャッシュを使用するために、仮想アドレスから対応する物理アドレスへの変換が一般に実行される。この変換は本質的に別のステージを命令パイプラインに追加し、今度は命令パイプラインがマイクロプロセッサの性能を低下させる。
加えて、モバイルデバイスのより長いバッテリー寿命に対する増加する需要に応じて、マイクロプロセッサの電力プロファイルはますます重要になってきている。記憶ユニット内の電力利用の最も大きい構成要素のうちの1つは、動作が命令パイプラインを下に移動するときに各動作に対して物理タグ付けされたタグアレイを検索することである。物理タグ付けされたタグアレイにおけるこの検索は、平均負荷使用ペナルティができるだけ低くなるように、命令パイプラインから直接負荷を取り除くことができるようにするのに必要である。問題は、一般的に大きな構造である物理タグ付けされたタグアレイにアクセスすることに関連する電力が極めて大きいということである。
したがって、データキャッシュと、物理タグ付けされたタグアレイへのアクセス数を制限しながら命令パイプラインが同じ性能を実現することを可能にするデータキャッシュの動作方法とが必要とされている。
データキャッシュの物理タグ付けされたタグアレイへのアクセス数を実質的に減少させる、データキャッシュの実施形態が開示される。概して、データキャッシュは、データ要素を記憶するデータアレイと、物理タグ付けされたタグアレイと、仮想タグ付けされたタグアレイとを含む。一実施形態では、仮想タグ付けされたタグアレイは仮想アドレスを受け取る。仮想タグ付けされたタグアレイ中に仮想アドレスとの一致がある場合、仮想タグ付けされたタグアレイは、データアレイに、仮想アドレスについての仮想タグ付けされたタグアレイに記憶されたウェイ(way)を出力する。加えて、一実施形態では、仮想タグ付けされたタグアレイは物理タグ付けされたタグアレイを無効化する。このようにして、物理タグ付けされたタグアレイにアクセスすることなくウェイが取得される。仮想タグ付けされたタグアレイによって出力されたウェイを使用して、データアレイ中の所望のデータ要素がアドレス指定される。対照的に、仮想タグ付けされたタグアレイ中に仮想アドレスとの一致がない場合、仮想アドレスから物理アドレスへの変換から取得された物理アドレスが物理タグ付けされたタグアレイに与えられ、物理タグ付けされたタグアレイは、物理アドレスについての物理タグ付けされたタグアレイに記憶されたウェイを出力する。データアレイ中の所望のデータ要素は、仮想アドレスから取得されたインデックスおよび仮想タグ付けされたタグアレイから取得されたウェイを用いてアドレス指定される。
仮想アドレスと仮想タグ付けされたタグアレイ中のタグとの間に一致があるときに、仮想タグ付けされたタグアレイからウェイを取得することによって、物理タグ付けされたタグアレイにアクセスすることなくウェイが取得される。その結果、データキャッシュにおけるステージ数を事実上低減することによって性能が改善される。加えて、仮想アドレスと仮想タグ付けされたタグアレイ中のタグとの間に一致があるときに、物理タグ付けされたタグアレイが無効化される実施形態では、データキャッシュの電力消費が低減される。
本開示の一実施形態による、仮想タグ付けされたタグアレイを含むデータキャッシュを示す図である。 本開示の一実施形態による、データアレイがセットアソシアティブメモリ構造として実装される、図1のデータキャッシュのデータアレイの一例を示す図である。 図1のデータキャッシュを用いることができるプロセッサベースのシステムの一例を示す図である。
ここで図面を参照して、本開示のいくつかの例示的な実施形態について説明する。「例示的な」という言葉は、「例、実例、または例示として機能すること」を意味するように本明細書で使用される。「例示的な」として本明細書で説明するいかなる実施形態も、必ずしも他の実施形態よりも好ましいまたは有利であると解釈されるべきではない。
データキャッシュの物理タグ付けされたタグアレイへのアクセス数を実質的に減少させる、データキャッシュの実施形態が開示される。以下で説明するように、物理タグ付けされたタグアレイへのアクセス数を減少させることによって、データキャッシュの性能が向上するとともに、データキャッシュの電力消費が低減される。図1は、本開示によるデータキャッシュ10の一実施形態を示す。概して、データキャッシュ10は、図示のように接続された、データアレイ12と、変換回路14と、仮想タグ付けされたマイクロタグアレイ16と、物理タグ付けされたタグアレイ18とを含む。データアレイ12は、いくつかのデータ要素(たとえば、いくつかの64バイトデータ要素)を記憶する。さらに、図2に示すように、データアレイ12の各インデックスまたはセットについて、各々が別個のデータ要素を記憶するいくつかの「ウェイ」をデータアレイ12が含むように、データアレイ12はセットアソシアティブである。したがって、データアレイ12の各インデックスについて、データアレイ12はN-1個のデータ要素を記憶し、N-1はデータアレイ12中のウェイの数である。たとえば、データアレイ12が4ウェイセットアソシアティブである場合、データアレイ12は、各々が各インデックスまたはセットについての別個のデータ要素をデータアレイ12に記憶する4つのウェイを含む。したがって、データアレイ12中の特定のデータ要素をアドレス指定するためにインデックスとウェイの両方が使用される。
変換回路14は、知られている仮想アドレスから物理アドレスへの変換技法を使用して、データキャッシュ10に入力された仮想アドレスを物理アドレスに変換するように動作する。仮想タグ付けされたマイクロタグアレイ16は、たとえば、セットアソシアティブメモリ構造、フルアソシアティブメモリ構造、またはダイレクトマップメモリ構造などの任意の所望のメモリ構造を使用して実装され得る。仮想タグ付けされたマイクロタグアレイ16のサイズは、好ましくは、物理タグ付けされたタグアレイ18のサイズよりも実質的に小さい。しかしながら、仮想タグ付けされたマイクロタグアレイ16のサイズはこれに限定されない。たとえば、仮想タグ付けされたマイクロタグアレイ16のサイズは、代替として、物理タグ付けされたタグアレイ18のサイズと等しくてもよい。仮想タグ付けされたマイクロタグアレイ16はいくつかの仮想タグのウェイ値を記憶する。物理タグ付けされたタグアレイ18も、たとえば、セットアソシアティブメモリ構造、フルアソシアティブメモリ構造、またはダイレクトマップメモリ構造などの任意の所望のメモリ構造を使用して実装され得る。物理タグ付けされたタグアレイ18はいくつかの物理タグのウェイ値を記憶する。
動作の際、データ要素、またはデータ要素の一部分がデータアレイ12に書き込まれると、対応するウェイ値は、対応する仮想タグと関連して、仮想タグ付けされたマイクロタグアレイ16に記憶される。同様の方法で、対応するウェイ値は、対応する物理タグと関連して、物理タグ付けされたタグアレイ18に記憶される。ウェイ値が仮想タグ付けされたマイクロタグアレイ16および物理タグ付けされたタグアレイ18に記憶される厳密な方法は、仮想タグ付けされたマイクロタグアレイ16および物理タグ付けされたタグアレイ18の構造に依存する。このプロセスは、新しいデータ要素、またはデータ要素の一部分がデータアレイ12に書き込まれるたびに繰り返される。
データ要素がデータキャッシュ10から読み出されるか、またはさもなければアドレス指定されるとき、データキャッシュ10は、たとえば、マイクロプロセッサの命令パイプラインから仮想アドレス(VA)を受け取る。仮想アドレスを受け取ったことに応答して、変換回路14は、知られている仮想アドレスから物理アドレスへの変換技法を使用して、仮想アドレスを物理アドレスに変換する。変換回路14が変換を実行しているのと同時に、仮想タグ付けされたマイクロタグアレイ16は、仮想タグ付けされたマイクロタグアレイ16中に仮想アドレスとの一致があるかどうかを判断する。仮想タグ付けされたマイクロタグアレイ16中に仮想アドレスとの一致があるかどうかを仮想タグ付けされたマイクロタグアレイ16が判断する方法は、特定の実装形態によって異なる。たとえば、仮想タグ付けされたマイクロタグアレイ16が、たとえば、内容アドレスメモリ(Content Addressable Memory)(CAM)構造などのセットアソシアティブメモリ構造として実装される場合、仮想アドレス、または少なくとも仮想アドレスに含まれる仮想タグは、仮想タグ付けされたマイクロタグアレイ16中に仮想アドレスとの一致があるかどうかを判断するために、仮想タグ付けされたマイクロタグアレイ16に記憶されたいくつかの仮想タグと同時に比較される。
別の例として、仮想タグ付けされたマイクロタグアレイ16がセットアソシアティブメモリ構造として実装される場合、仮想タグ付けされたマイクロタグアレイ16は、いくつかのセットまたはインデックスと、各セットまたはインデックスについてのいくつかのウェイとを含み得る。好ましくは、仮想タグ付けされたマイクロタグアレイ16中のウェイの数は、データアレイ12中のウェイの数よりも少ない。この例では、仮想タグ付けされたマイクロタグアレイ16のインデックスはデータアレイ12のインデックスと同じであり、仮想タグ付けされたマイクロタグアレイ16中の各データ要素(すなわち、各インデックスとウェイの組合せ)は、仮想タグおよび関連するウェイを記憶するように構成される。仮想アドレスとの一致があるかどうかを判断するために、仮想アドレスに含まれるインデックスを使用して、仮想タグ付けされたマイクロタグアレイ16にインデックス付けし、仮想タグ付けされたマイクロタグアレイ16中のインデックスについてのウェイを検索して、これらのウェイのいずれかについての仮想タグが仮想アドレスからの仮想タグと一致するかどうかを判断する。仮想タグが一致する場合、仮想アドレスとの一致がある。仮想タグ付けされたマイクロタグアレイ16の上記の例は例示のためのみに与えられ、本開示の範囲を限定するものではないことに留意されたい。
仮想タグ付けされたマイクロタグアレイ16中に仮想アドレスとの一致がない場合、仮想タグ付けされたマイクロタグアレイ16は、物理タグ付けされたタグアレイ18を有効化するミスインジケータを出力する。応答して、物理タグ付けされたタグアレイ18は変換回路14からの物理アドレスを処理して、対応するウェイをデータアレイ12に出力する。物理タグ付けされたタグアレイ18が物理アドレスを処理して、対応するウェイを出力する方法は、特定の実装形態によって異なる。たとえば、物理タグ付けされたタグアレイ18がフルアソシアティブメモリ構造(たとえば、CAM構造)として実装される場合、物理タグ付けされたタグアレイ18は、いくつかの物理タグおよび対応するウェイを記憶する。次いで、物理タグ付けされたタグアレイ18中の物理タグは、物理タグ付けされたタグアレイ18中の物理タグと関連して記憶されたウェイ値を出力するために、物理アドレスに含まれる物理タグと同時に比較される。別の例として、物理タグ付けされたタグアレイ18は、いくつかのセットまたはインデックスと、各セットまたはインデックスについてのいくつかのウェイとを有するセットアソシアティブメモリ構造として実装され得る。物理タグ付けされたタグアレイ18のインデックスはデータアレイ12のインデックスと同じであり、物理タグ付けされたタグアレイ18中の各データ要素(すなわち、各インデックスとウェイの組合せ)は、物理タグおよび対応するウェイを記憶するように構成される。物理アドレスに含まれるインデックスを使用して、物理タグ付けされたタグアレイ18にインデックス付けし、物理アドレスからの物理タグと一致する物理タグについて、物理タグ付けされたタグアレイ18中のインデックスについてのウェイを検索する。次いで、一致する物理タグに関連して記憶されたウェイ値は、物理タグ付けされたタグアレイ18によって出力される。物理タグ付けされたタグアレイ18の上記の例は例示のためのみに与えられ、本開示の範囲を限定するものではないことに留意されたい。
物理タグ付けされたタグアレイ18からウェイを受け取ったことに応答して、データアレイ12は適切なデータ要素を出力する。より具体的には、一実施形態では、データアレイ12中のデータ要素は、仮想アドレスに含まれるインデックスおよび仮想タグ付けされたマイクロタグアレイ16または物理タグ付けされたタグアレイ18のいずれかから取得されたウェイを使用してアドレス指定される。こうして、仮想アドレスからのインデックスおよび物理タグ付けされたタグアレイ18によって出力されたウェイを使用して、データアレイ12はインデックスおよびウェイによってアドレス指定されたデータ要素を出力する。
仮想タグ付けされたマイクロタグアレイ16中に仮想アドレスとの一致がある場合、この実施形態では、仮想タグ付けされたマイクロタグアレイ16は物理タグ付けされたタグアレイ18を無効化するヒットインジケータを出力する。加えて、仮想タグ付けされたマイクロタグアレイ16は仮想アドレスのウェイをデータアレイ12に出力する。この場合も、仮想タグ付けされたマイクロタグアレイ16によって出力されたウェイは、仮想アドレスと一致する仮想タグに関連して仮想タグ付けされたマイクロタグアレイ16に記憶されたウェイ値である。仮想タグ付けされたマイクロタグアレイ16からウェイを受け取ったことに応答して、 データアレイ12は適切なデータ要素を出力する。より具体的には、一実施形態では、データアレイ12中のデータ要素は、仮想アドレスに含まれるインデックスおよび仮想タグ付けされたマイクロタグアレイ16または物理タグ付けされたタグアレイ18のいずれかから取得されたウェイを使用してアドレス指定される。こうして、仮想アドレスからのインデックスおよび仮想アドレスについての仮想タグ付けされたマイクロタグアレイ16から出力されたウェイを使用して、データアレイ12はインデックスおよびウェイによってアドレス指定されたデータ要素を出力する。
特に、仮想タグ付けされたマイクロタグアレイ16は、一般的に大きな構造である物理タグ付けされたタグアレイ18へのアクセス数を低減することによって、データキャッシュ10の性能を改善し、データキャッシュ10の電力消費を低減する。より具体的には、仮想タグ付けされたマイクロタグアレイ16中に仮想アドレスのヒットがある場合、物理タグ付けされたタグアレイ18にアクセスすることなくウェイが取得される。結果として、データキャッシュ10におけるステージ数が事実上2ステージに低減される。具体的には、仮想タグ付けされたマイクロタグアレイ16中にヒットがあるとき、データキャッシュ10におけるステージ数は2(すなわち、仮想タグ付けされたマイクロタグアレイ16およびデータアレイ12)である。対照的に、従来のデータキャッシュは3ステージを必要とし、これらのステージは、仮想タグ付けされたマイクロタグアレイ16中に仮想アドレスのヒットがないときにデータキャッシュ10で利用される、変換回路14、物理タグ付けされたタグアレイ18、およびデータアレイ12に対応する。データキャッシュ10におけるステージ数を低減することに加えて、仮想タグ付けされたマイクロタグアレイ16におけるヒットは、本来なら物理タグ付けされたタグアレイ18によって消費されていたであろう電力も節約する。
本明細書で説明するデータキャッシュ10によって与えられる利点の2つの例は、性能を向上させることおよび電力を低下させることである。性能は、仮想タグ付けされたマイクロタグアレイ16からのウェイを使用して、データアレイ12にインデックス付けすることによって向上する。電力は、仮想タグ付けされたマイクロタグアレイ16中にヒットがあるときに物理タグ付けされたタグアレイ18を有効化しないことによって低減される。しかしながら、代替実施形態では、仮想タグ付けされたマイクロタグアレイ16中にヒットがあるとき、物理タグ付けされたタグアレイ18は無効化されない場合がある(たとえば、物理タグ付けされたタグアレイ18を無効化するためにヒットインジケータが与えられない場合がある)ことに留意されたい。そうすることによって、電力消費は物理タグ付けされたタグアレイ18を無効化することによって低減されない。しかしながら、仮想タグ付けされたマイクロタグアレイ16からのウェイをデータアレイ12に与え、それによって、データキャッシュ10のステージ数を事実上低減することによって、性能は依然として改善される。
本明細書で開示する実施形態によるデータキャッシュ10は任意のプロセッサベースのデバイスに設けられるか、または組み込まれる。例として、限定されないが、セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビジョン、チューナー、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤが含まれる。
この点について、図3は、図1に示すデータキャッシュ10を用いることができるプロセッサベースのシステム20の一例を示す。この例では、プロセッサベースのシステム20は、1つまたは複数のプロセッサ24を各々が含む1つまたは複数の中央処理装置(CPU)22を含む。CPU22は、一時的に記憶されたデータへの高速アクセスのためにプロセッサ24に結合されたデータキャッシュ10を含む。CPU22はシステムバス26に結合され、プロセッサベースのシステム20に含まれるマスターデバイスおよびスレーブデバイスを相互結合することができる。よく知られているように、CPU22は、アドレス情報、制御情報、およびデータ情報をシステムバス26を通じて交換することによって、これらの他のデバイスと通信する。図3には示されていないが、複数のシステムバス26を設けてもよく、この場合、各システムバス26は異なるファブリックを構成する。
他のマスターデバイスおよびスレーブデバイスが、システムバス26に接続され得る。図3に示されるように、これらのデバイスは、例として、メモリシステム28、1つまたは複数の入力デバイス30、1つまたは複数の出力デバイス32、1つまたは複数のネットワークインターフェースデバイス34、および1つまたは複数のディスプレイコントローラ36を含み得る。入力デバイス30は、限定はしないが、入力キー、スイッチ、音声プロセッサなどを含む、任意のタイプの入力デバイスを含み得る。出力デバイス32は、限定はしないが、オーディオ、ビデオ、他の視覚インジケータなどを含む、任意のタイプの出力デバイスを含み得る。ネットワークインターフェースデバイス34は、ネットワーク38との間のデータの交換を可能にするように構成された任意のデバイスとすることができる。ネットワーク38は、限定はしないが、有線ネットワークまたはワイヤレスネットワーク、私設ネットワークまたは公衆ネットワーク、ローカルエリアネットワーク(LAN)、ワイドローカルエリアネットワーク(WLAN)、およびインターネットを含む、任意のタイプのネットワークとすることができる。ネットワークインターフェースデバイス34は、所望の任意のタイプの通信プロトコルをサポートするように構成され得る。
CPU22はまた、システムバス26を通じてディスプレイコントローラ36にアクセスして、1つまたは複数のディスプレイ40に送られる情報を制御するように構成され得る。ディスプレイコントローラ36は、1つまたは複数のビデオプロセッサ42を介して表示されるべき情報をディスプレイ40に送り、ビデオプロセッサ42は、表示されるべき情報をディスプレイ40に適切なフォーマットとなるように処理する。ディスプレイ40は、限定はしないが、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイなどを含む、任意のタイプのディスプレイを含み得る。
本明細書で開示する実施形態に関して説明する様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムは、電子ハードウェアとして、メモリもしくは別のコンピュータ可読媒体に記憶されプロセッサもしくは他の処理デバイスによって実行される命令として、または両方の組合せとして実装され得ることが、当業者にはさらに諒解されよう。本明細書で開示するメモリは、任意のタイプおよびサイズのメモリでもよく、所望の任意のタイプの情報を記憶するように構成され得る。この互換性を明確に示すために、上記では、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップは全般的に、それらの機能に関して説明されている。そのような機能がどのように実装されるかは、特定の適用例、設計選択、および/またはシステム全体に課される設計制約により決まる。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈すべきではない。
本明細書で開示する実施形態に関して説明する様々な例示的な論理ブロック、モジュール、および回路は、プロセッサ、DSP、特定用途向け集積回路(ASIC)、FPGAもしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明する機能を実行するように設計されたそれらの任意の組合せで実装または実行され得る。プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。
本明細書で開示する実施形態は、ハードウェアで具現化されてよく、ハードウェアに記憶される命令で具現化されてよく、たとえば、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、電気的にプログラム可能なROM(EPROM)、電気的に消去可能なプログラム可能ROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または、当技術分野で知られている任意の他の形態のコンピュータ可読媒体に、存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサと一体であり得る。プロセッサおよび記憶媒体はASIC中に存在し得る。ASICは遠隔局に存在し得る。代替として、プロセッサおよび記憶媒体は、遠隔局、基地局、またはサーバの中に、個別構成要素として存在し得る。
本明細書の例示的な実施形態のいずれかで説明した動作ステップは、例および議論を提供するために説明したものであることにも、留意されたい。説明した動作は、例示した順序以外の多くの異なる順序で実行されてもよい。さらに、単一の動作ステップで説明した動作は、実際には、いくつかの異なるステップで実行され得る。加えて、例示的な実施形態において論じた1つまたは複数の動作ステップは、組み合わされてもよい。フローチャート図において例示した動作ステップは、当業者に容易に明らかとなるような多くの異なる修正を受けてもよいことを、理解されたい。情報および信号は、様々な異なる技術および技法のいずれかを使用して表され得ることも、当業者には理解されよう。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
本開示の前述の説明は、いかなる当業者でも本開示を作成または使用することができるように提供される。本開示への様々な修正が当業者には容易に明らかとなり、本明細書で定義した一般原理は、本開示の趣旨および範囲を逸脱することなく他の変形形態に適用され得る。したがって、本開示は、本明細書で説明した例および設計に限定されるものではなく、本明細書で開示する原理および新規の特徴に一致する最も広い範囲を与えられるべきである。
10 データキャッシュ
12 データアレイ
14 変換回路
16 仮想タグ付けされたマイクロタグアレイ
18 物理タグ付けされたタグアレイ
20 プロセッサベースのシステム
22 中央処理装置(CPU)
24 プロセッサ
26 システムバス
28 メモリシステム
30 入力デバイス
32 出力デバイス
34 ネットワークインターフェースデバイス
36 ディスプレイコントローラ
38 ネットワーク
40 ディスプレイ
42 ビデオプロセッサ

Claims (27)

  1. データアレイと、
    物理タグ付けされたタグアレイと、
    仮想タグ付けされたタグアレイであって、
    仮想アドレスを受け取り、
    前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致があるかどうかを判断し、
    前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がある場合、前記仮想アドレスについての前記仮想タグ付けされたタグアレイによって記憶されたウェイを前記データアレイに出力する
    ように構成された仮想タグ付けされたタグアレイと
    を備え
    前記データアレイは、前記仮想アドレスに含まれるインデックスと、前記仮想タグ付けされたタグアレイまたは前記物理タグ付けされたタグアレイのうち何れかから得られたウェイとを用いて検索される、
    データキャッシュ。
  2. 前記仮想タグ付けされたタグアレイが、前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致があるかどうかを判断すると同時に、前記仮想アドレスを物理アドレスに変換し、前記物理アドレスを前記物理タグ付けされたタグアレイに出力し、前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がある場合、前記仮想アドレスについての前記仮想タグ付けされたタグアレイによって記憶された前記ウェイを前記データアレイに出力するように構成された変換回路
    をさらに備える、請求項1に記載のデータキャッシュ。
  3. 前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がある場合、前記変換回路からの前記物理アドレスを使用した前記物理タグ付けされたタグアレイの検索が実行されないように、前記物理タグ付けされたタグアレイが無効化される、請求項2に記載のデータキャッシュ。
  4. 前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がある場合、前記仮想タグ付けされたタグアレイが、前記物理タグ付けされたタグアレイを無効化するようにさらに構成される、請求項1に記載のデータキャッシュ。
  5. 前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がない場合、前記仮想タグ付けされたタグアレイが、前記仮想アドレスに対応する物理アドレスを使用した前記物理タグ付けされたタグアレイの検索を有効化するようにさらに構成される、請求項4に記載のデータキャッシュ。
  6. 前記仮想タグ付けされたタグアレイが、前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致があるかどうかを判断すると同時に、前記仮想アドレスを前記物理アドレスに変換し、前記物理アドレスを前記物理タグ付けされたタグアレイに出力し、前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がある場合、前記仮想アドレスについての前記仮想タグ付けされたタグアレイによって記憶された前記ウェイを前記データアレイに出力するように構成された変換回路
    をさらに備える、請求項5に記載のデータキャッシュ。
  7. 前記物理タグ付けされたタグアレイの前記検索を有効化するために、前記仮想タグ付けされたタグアレイが、前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がない場合、ミスを前記物理タグ付けされたタグアレイに出力するように構成される、請求項6に記載のデータキャッシュ。
  8. 前記仮想タグ付けされたタグアレイからの前記ミスに応答して、前記物理タグ付けされたタグアレイが、
    前記物理タグ付けされたタグアレイ中に前記物理アドレスとの一致があるかどうかを判断し、
    一致がある場合、前記物理アドレスについての前記物理タグ付けされたタグアレイによって記憶されたウェイを出力する
    ように構成される、請求項7に記載のデータキャッシュ。
  9. 前記データアレイが、
    前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がある場合、前記仮想タグ付けされたタグアレイから前記ウェイを受け取り、前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がないが、前記物理タグ付けされたタグアレイ中に前記物理アドレスとの一致がある場合、前記物理タグ付けされたタグアレイから前記ウェイを受け取り、
    前記ウェイを受け取ったことに応答して、前記ウェイに基づいてデータ要素を出力する
    ように構成される、請求項8に記載のデータキャッシュ。
  10. 前記データアレイがセットアソシアティブであり、前記データ要素を出力するために、前記データアレイが、前記仮想アドレスから取得されたインデックスおよび前記ウェイによってアドレス指定されたデータ要素を出力する、請求項9に記載のデータキャッシュ。
  11. 前記仮想タグ付けされたタグアレイのサイズが、前記物理タグ付けされたタグアレイのサイズよりも小さい、請求項1に記載のデータキャッシュ。
  12. 前記仮想タグ付けされたタグアレイのサイズが、前記物理タグ付けされたタグアレイのサイズと等しい、請求項1に記載のデータキャッシュ。
  13. 前記仮想タグ付けされたタグアレイが、セットアソシアティブメモリ構造、フルアソシアティブメモリ構造、およびダイレクトマップメモリ構造からなる群から選択される構造を有する、請求項1に記載のデータキャッシュ。
  14. 前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致があるとき、前記データキャッシュのステージ数が、前記仮想タグ付けされたタグアレイおよび前記データアレイからなる2ステージに低減される、請求項1に記載のデータキャッシュ。
  15. 前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致があり、前記一致に応答して、前記仮想タグ付けされたタグアレイが、前記仮想アドレスについての前記仮想タグ付けされたタグアレイによって記憶された前記ウェイを前記データアレイに出力し、前記物理タグ付けされたタグアレイを無効化する、請求項1に記載のデータキャッシュ。
  16. 半導体ダイ上に実装される、請求項1に記載のデータキャッシュ。
  17. セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビジョン、チューナー、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤからなる群から選択されるデバイスに組み込まれる、請求項1に記載のデータキャッシュ。
  18. データアレイと、物理タグ付けされたタグアレイと、仮想タグ付けされたタグアレイとを含むデータキャッシュの動作方法であって、
    仮想アドレスを受け取るステップと、
    前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致があるかどうかを判断するステップと、
    前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がある場合、前記仮想アドレスについての前記仮想タグ付けされたタグアレイによって記憶されたウェイを前記データアレイに出力するステップと
    を含み、
    前記データアレイは、前記仮想アドレスに含まれるインデックスと、前記仮想タグ付けされたタグアレイまたは前記物理タグ付けされたタグアレイのうち何れかから得られたウェイとを用いて検索される、
    方法。
  19. 前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がある場合、前記物理タグ付けされたタグアレイを無効化するステップをさらに含む、請求項18に記載の方法。
  20. 前記仮想アドレスを物理アドレスに変換するステップと、
    前記物理アドレスを前記物理タグ付けされたタグアレイに出力するステップとをさらに含み、
    前記仮想アドレスを前記物理アドレスに変換するステップおよび前記物理アドレスを前記物理タグ付けされたタグアレイに出力するステップが実行されると同時に、前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致があるかどうかを判断し、前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がある場合、前記仮想アドレスについての前記仮想タグ付けされたタグアレイによって記憶された前記ウェイを前記データアレイに出力する、請求項19に記載の方法。
  21. 前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がない場合、前記仮想アドレスに対応する前記物理アドレスを使用した前記物理タグ付けされたタグアレイの検索を有効化するステップを含む、請求項20に記載の方法。
  22. 前記物理タグ付けされたタグアレイの前記検索を有効化するステップが、前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がない場合、ミスを前記物理タグ付けされたタグアレイに出力するステップを含む、請求項21に記載の方法。
  23. 前記仮想タグ付けされたタグアレイからの前記ミスに応答して、
    前記物理タグ付けされたタグアレイ中に前記物理アドレスとの一致があるかどうかを判断するステップと、
    前記物理タグ付けされたタグアレイ中に前記物理アドレスとの一致がある場合、前記物理アドレスについての前記物理タグ付けされたタグアレイによって記憶されたウェイを出力するステップと
    をさらに含む、請求項22に記載の方法。
  24. 前記データアレイにおいて、前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がある場合、前記仮想タグ付けされたタグアレイから、または前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がないが、前記物理タグ付けされたタグアレイ中に前記物理アドレスとの一致がある場合、前記物理タグ付けされたタグアレイから前記ウェイを受け取るステップと、
    前記ウェイを受け取ったことに応答して、前記ウェイに基づいてデータ要素を出力するステップと
    をさらに含む、請求項23に記載の方法。
  25. 前記データアレイがセットアソシアティブであり、前記データ要素を出力するステップが、前記仮想アドレスから取得されたインデックスおよび前記ウェイによってアドレス指定されたデータ要素を出力するステップを含む、請求項24に記載の方法。
  26. データキャッシュであって、
    仮想タグ付けされたタグアレイ中に仮想アドレスとの一致があるかどうかを判断するための手段と、
    前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がある場合、
    前記仮想アドレスについての前記仮想タグ付けされたタグアレイによって記憶されたウェイを前記データキャッシュのデータアレイに出力するための手段と、
    前記データキャッシュの物理タグ付けされたタグアレイを無効化するための手段と
    を備え
    前記データアレイは、前記仮想アドレスに含まれるインデックスと、前記仮想タグ付けされたタグアレイまたは前記物理タグ付けされたタグアレイのうち何れかから得られたウェイとを用いて検索される、
    データキャッシュ。
  27. プロセッサに、
    データキャッシュの仮想タグ付けされたタグアレイ中に仮想アドレスとの一致があるかどうかを判断し、
    前記仮想タグ付けされたタグアレイ中に前記仮想アドレスとの一致がある場合、
    前記仮想アドレスについての前記仮想タグ付けされたタグアレイによって記憶されたウェイを前記データキャッシュのデータアレイに提供し、
    前記データキャッシュの物理タグ付けされたタグアレイを無効化する
    ように命令するためのソフトウェアを記憶し、
    前記データアレイは、前記仮想アドレスに含まれるインデックスと、前記仮想タグ付けされたタグアレイまたは前記物理タグ付けされたタグアレイのうち何れかから得られたウェイとを用いて検索される、
    非一時的コンピュータ可読記憶媒体。
JP2014551432A 2012-01-17 2013-01-17 物理タグ付けされたデータキャッシュへのトラフィックをフィルタリングするための方法 Expired - Fee Related JP5752331B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261587140P 2012-01-17 2012-01-17
US61/587,140 2012-01-17
US13/426,647 US8612690B2 (en) 2012-01-17 2012-03-22 Method for filtering traffic to a physically-tagged data cache
US13/426,647 2012-03-22
PCT/US2013/021822 WO2013109679A1 (en) 2012-01-17 2013-01-17 Method for filtering traffic to a physically-tagged data cache

Publications (2)

Publication Number Publication Date
JP2015506517A JP2015506517A (ja) 2015-03-02
JP5752331B2 true JP5752331B2 (ja) 2015-07-22

Family

ID=48780804

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014551432A Expired - Fee Related JP5752331B2 (ja) 2012-01-17 2013-01-17 物理タグ付けされたデータキャッシュへのトラフィックをフィルタリングするための方法

Country Status (7)

Country Link
US (1) US8612690B2 (ja)
EP (1) EP2805244B1 (ja)
JP (1) JP5752331B2 (ja)
KR (1) KR101458928B1 (ja)
CN (1) CN104025061B (ja)
IN (1) IN2014CN04535A (ja)
WO (1) WO2013109679A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10061698B2 (en) * 2017-01-31 2018-08-28 Qualcomm Incorporated Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compression memory system when stalled write operations occur

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379396A (en) 1991-10-11 1995-01-03 Intel Corporation Write ordering for microprocessor depending on cache hit and write buffer content
KR970029072A (ko) * 1995-11-17 1997-06-26 김주용 이중 디렉토리 가상 캐쉬 및 그 제어 방법
US6253301B1 (en) 1998-04-16 2001-06-26 Compaq Computer Corporation Method and apparatus for a dedicated physically indexed copy of the data cache tag arrays
US6976117B2 (en) 2002-08-13 2005-12-13 Intel Corporation Snoopy virtual level 1 cache tag
US7117290B2 (en) * 2003-09-03 2006-10-03 Advanced Micro Devices, Inc. MicroTLB and micro tag for reducing power in a processor
US7451271B2 (en) 2004-04-05 2008-11-11 Marvell International Ltd. Physically-tagged cache with virtually-tagged fill buffers
US7657708B2 (en) 2006-08-18 2010-02-02 Mips Technologies, Inc. Methods for reducing data cache access power in a processor using way selection bits
US7594079B2 (en) * 2006-09-29 2009-09-22 Mips Technologies, Inc. Data cache virtual hint way prediction, and applications thereof
US8631207B2 (en) 2009-12-26 2014-01-14 Intel Corporation Cache memory power reduction techniques

Also Published As

Publication number Publication date
JP2015506517A (ja) 2015-03-02
KR101458928B1 (ko) 2014-11-07
WO2013109679A1 (en) 2013-07-25
KR20140116506A (ko) 2014-10-02
EP2805244B1 (en) 2018-11-21
EP2805244A1 (en) 2014-11-26
IN2014CN04535A (ja) 2015-09-11
US8612690B2 (en) 2013-12-17
US20130185473A1 (en) 2013-07-18
CN104025061A (zh) 2014-09-03
CN104025061B (zh) 2016-01-06

Similar Documents

Publication Publication Date Title
JP6744423B2 (ja) プロセッサベースシステム内のロード経路履歴に基づくアドレス予測テーブルを使用したロードアドレス予測の実現
US10503661B2 (en) Providing memory bandwidth compression using compressed memory controllers (CMCs) in a central processing unit (CPU)-based system
US20150286571A1 (en) Adaptive cache prefetching based on competing dedicated prefetch policies in dedicated cache sets to reduce cache pollution
US20110145542A1 (en) Apparatuses, Systems, and Methods for Reducing Translation Lookaside Buffer (TLB) Lookups
US9558120B2 (en) Method, apparatus and system to cache sets of tags of an off-die cache memory
US9823854B2 (en) Priority-based access of compressed memory lines in memory in a processor-based system
US9075746B2 (en) Utility and lifetime based cache replacement policy
US20180173623A1 (en) Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compressed memory system to avoid stalling write operations
JP2019513271A (ja) 中央処理ユニット(cpu)ベースシステムにおいて複数のラストレベルキャッシュ(llc)ラインを使用してメモリ帯域幅圧縮を行うこと
US20160224241A1 (en) PROVIDING MEMORY BANDWIDTH COMPRESSION USING BACK-TO-BACK READ OPERATIONS BY COMPRESSED MEMORY CONTROLLERS (CMCs) IN A CENTRAL PROCESSING UNIT (CPU)-BASED SYSTEM
KR101895852B1 (ko) Mmu(memory management unit) 파티셔닝된 변환 캐시들, 및 관련 장치들, 방법들, 및 컴퓨터-판독가능한 매체들의 제공
TWI453584B (zh) 處理非對準式記憶體存取的設備、系統及方法
CN113656330B (zh) 确定访问地址的方法和装置
US9460018B2 (en) Method and apparatus for tracking extra data permissions in an instruction cache
JP2016522936A (ja) データアクセスの前のメモリ内の不完全データエントリから冗長データエントリへのデータのリダイレクトならびに関連するシステムおよび方法
JP5752331B2 (ja) 物理タグ付けされたデータキャッシュへのトラフィックをフィルタリングするための方法
WO2019045940A1 (en) INSERTING INSTRUCTION BLOCK HEADER DATA CACHING IN SYSTEMS BASED ON BLOCK ARCHITECTURE PROCESSOR
US10061698B2 (en) Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compression memory system when stalled write operations occur
US10067706B2 (en) Providing memory bandwidth compression using compression indicator (CI) hint directories in a central processing unit (CPU)-based system
CN114258533A (zh) 在基于处理器的设备中优化对页表条目的访问

Legal Events

Date Code Title Description
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20141211

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150323

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: 20150420

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150519

R150 Certificate of patent or registration of utility model

Ref document number: 5752331

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees