JP4341186B2 - メモリシステム - Google Patents
メモリシステム Download PDFInfo
- Publication number
- JP4341186B2 JP4341186B2 JP2001012608A JP2001012608A JP4341186B2 JP 4341186 B2 JP4341186 B2 JP 4341186B2 JP 2001012608 A JP2001012608 A JP 2001012608A JP 2001012608 A JP2001012608 A JP 2001012608A JP 4341186 B2 JP4341186 B2 JP 4341186B2
- Authority
- JP
- Japan
- Prior art keywords
- line
- cache
- address
- line data
- cache memory
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
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
【発明の属する技術分野】
本発明は、高性能コンピュータ・システム用のメモリシステムに関し、特にデータのキャッシュメモリ上への配置においてダイレクトマップ方式もしくはセットアソシアティブ方式で構成されたキャッシュメモリシステムで特定のカラムに対して多数のデータ登録要求が発生した場合に生じるスラッシング問題を検出する検出機構と、スラッシング問題による性能低下を軽減するための補助メモリとを備えた高性能計算機用メモリシステムに関する。
【0002】
【従来の技術】
高性能コンピュータ・システムのメモリシステムにおいて、メモリからのデータ転送は高性能化の実現における重要な部分である。そこで、プロセッサとメインメモリの間の階層にキャッシュメモリを用意し、データの時間的・空間的局所性を利用してデータ転送にかかる遅延時間の短縮をはかることが多くなっている。しかし、キャッシュメモリは物理的制約によりメインメモリにくらべてかなり小容量のメモリしか用意できず、またその連想度においても、ダイレクトマップ方式や4ウェイ/8ウェイなどのセットアソシアティブ方式であることが多い。
【0003】
ダイレクトマップ方式とは、複数のエントリに分けられたキャッシュメモリにデータを登録する際に、そのデータのアドレスに対して1対1に対応する唯一のエントリにしかそのデータを登録できない方式である。この方式では、2つのデータが同じエントリに登録されるデータアドレスを持っていた場合、すぐに前のデータがキャッシュメモリから追い出されてしまう現象が起こり、利用効率が低下する。しかし、ダイレクトマップ方式は機構が簡単であり、実装効率の点では高い方式である。
【0004】
ダイレクトマップ方式と逆の方式が、フルアソシアティブ方式である。フルアソシアティブ方式では、データはどのエントリにでも登録可能である。この方式は利用効率が高くなる一方、実装効率は大変に低い。4ウェイ/8ウェイなどのセットアソシアティブ方式は、ダイレクトマップ方式とフルアソシアティブ方式の中間の方式で、1つのデータアドレスに対して、4エントリ/8エントリの中のいずれかにデータを登録する。よって4つ/8つのデータまでは前のデータをキャッシュから追い出さずに登録することが可能である。実装効率についても、フルアソシアティブ方式よりも小さい面積に実装でき、実装効率が高い。
【0005】
その他に、ビクティムキャッシュとよばれる機構がスラッシング対策の機構として知られている。ビクティムキャッシュはキャッシュメモリから追い出されたデータを一時的に保持しておくキャッシュメモリである。スラッシングが発生すると、キャッシュメモリから追い出されたデータは無効化されずにビクティムキャッシュに転送される。すると、スラッシングを起こしたキャッシュエントリ(群)の連想度は、キャッシュメモリの連想度に、ビクティムキャッシュの連想度を加えたものとなり、結果的に連想度が高くなったように動作する。これによってスラッシング問題の軽減がはかられる。
【0006】
しかし、ビクティムキャッシュでは、キャッシュメモリから追い出されたデータを、スラッシングによりキャッシュメモリから追い出されたものかどうかを区別せずにビクティムキャッシュに登録するため、登録されるデータに不必要なデータも含まれ、ビクティムキャッシュの利用効率が低くなる場合もある。またキャッシュメモリ上のデータを置きかえる際に、元のデータを無効化するだけでなく、ビクティムキャッシュへ登録するために転送するパスを用意する必要がある。
【0007】
【発明が解決しようとする課題】
キャッシュメモリを設けたプロセッサでは、キャッシュメモリへのアクセスレイテンシの短縮および実装効率の向上のためにセットアソシアティブ方式もしくはダイレクトマップ方式のキャッシュメモリを採用することが一般的である。しかし、このような連想度の低いキャッシュメモリでは、同一のセットに連想度を上回るデータセットのマッピングが集中して発生すると登録されたデータが後続のデータによって追い出され、キャッシュメモリが有効に機能しなくなるスラッシングンクとよばれる問題が発生する。スラッシングが発生すると、本来キャッシュメモリにヒットするデータ転送がキャッシュミスとなり、メインメモリからデータ転送を行う必要が生じるため、キャッシュメモリにヒットして短いアクセスレイテンシでデータが転送されている状態にくらべて、プロセッサの処理性能が3〜10倍程度も低下することがある。
【0008】
スラッシングはデータ配列などの間にダミーデータを入れるなどして、データのアドレスを調整することによって回避できる可能性もあるが、スラッシングの発生の検出・スラッシング発生個所の特定は容易とはいえない。また、キャッシュメモリをフルアソシアティブ方式にすることでスラッシングの発生を防ぐことが可能ではあるが、キャッシュメモリのヒットチェックの複雑化によりハードウェアが大規模化し、キャッシュアクセスに必要な時間の増大や、実装効率の低下を起こすため、通常においてフルアソシアティブ方式は採用されない。
【0009】
そこで本発明では、フルアソシアティブ方式のような大規模なハードウェアをキャッシュメモリに搭載する必要なしに、スラッシング問題を解決することを課題とする。
【0010】
【課題を解決するための手段】
本発明では、セットアソシアティブ方式もしくはダイレクトマップ方式のキャッシュメモリにおいて、キャッシュメモリのアクセス速度の低下や実装効率の低下を起こすことなく、スラッシング問題を回避するために、キャッシュメモリとメインメモリの間に、スラッシングの発生を検出するためのロード・アドレス・ヒストリ表と、スラッシングデータをキャッシングするためのキャッシュ・アシスト・バッファを備えて、スラッシングによるプロセッサの実行速度低下を軽減する。ロード・アドレス・ヒストリ表は、キャッシュメモリにデータがなく、メインメモリにデータ転送要求が発生した場合に、そのデータのアドレスを保持しておく表であり、キャッシュ・アシスト・バッファはスラッシングによりキャッシュメモリから追い出され、メインメモリから転送されてきたデータを保持しておくバッファである。
【0011】
【発明の実施の形態】
図1に本発明の一実施例によるメモリシステム構成を示す。図1においてロード・ストア・ユニット1からデータ転送を要求するアドレスがラインデータ転送要求パス22を経由してレベル1キャッシュメモリ23に送信される。レベル1キャッシュメモリ23は、レベル1キャッシュメモリ・タグ表24とレベル1キャッシュメモリ・データ表25から構成される。
【0012】
キャッシュメモリの構成は、図2〜図4で示されるいずれかの方式をとるのが通常である。
【0013】
図2はダイレクトマップ方式のキャッシュメモリである。データアドレス・パス26を経由して転送されたアクセス・アドレスとキャッシュメモリのアドレス・タグ表30を比較する際に、セットセレクタ28によって、アクセス・アドレスに対して1対1の関係にある唯一のエントリが選択され、そのエントリのアドレス・タグ表30のアドレスとのみ比較が行われる。図2のダイレクトマップ方式のキャッシュメモリの連想度は1である。
【0014】
図3は4ウェイセットアソシアティブ方式のキャッシュメモリである。データアドレス・パス26を経由して転送されたアクセス・アドレスとキャッシュメモリのアドレス・タグ表30を比較する際に、セットセレクタ28によって、アクセス・アドレスに対して1対4の関係にある4つのエントリを1セットとした1つのセットが選択され、その4つエントリのアドレス・タグ表30のアドレスと比較が行われ、ウェイセレクタ32によってその中の比較結果が真となったエントリが選択される。一般にnウェイセットアソシアティブ方式のキャッシュメモリでは、1セットに含まれるエントリ数がn個であることを除けば、図3に示した構成図と同様の構成となる。nウェイセットアソシアティブ方式のキャッシュメモリの連想度はnである。
【0015】
図4はフルアソシアティブ方式のキャッシュメモリである。データアドレス・パス26を経由して転送されたアクセス・アドレスとキャッシュメモリのアドレス・タグ表30を比較する際に、アクセス・アドレスに対してすべてのエントリのアドレス・タグ表30とアドレス比較が行われ、ウェイセレクタ32によってその中の比較結果が真となったエントリが選択される。
【0016】
本発明では、ダイレクトマップ方式もしくはnウェイセットアソシアティブ方式のキャッシュメモリをレベル1キャッシュメモリとして持ち、そのキャッシュメモリの連想度を超える数のラインデータがある時間内にキャッシュメモリの特定のセットを利用する場合に、キャッシュメモリからデータが溢れ出すスラッシング現象を軽減する機構を設ける。
【0017】
スラッシングによってレベル1キャッシュメモリ23から追い出されたデータに対するアクセス要求は、レベル1キャッシュメモリ・タグ表24との比較によりミスヒットとなり、レベル1キャッシュメモリ・ヒット結果パス20,21を通ってミスヒット情報が伝達される。ミスヒット情報によりラインデータ転送要求はラインデータ転送要求パス2,3,10を通って下位レベルキャッシュメモリ・メインメモリ11に転送される。この途中でパス4によりロード・アドレス・ヒストリ表5に登録されているラインアドレスと転送要求アドレスの比較を行う。
【0018】
ロード・アドレス・ヒストリ表5は次のように動作する。
(1)ラインデータ転送要求パス4から送られてくるアドレスと一致するラインアドレスがロード・アドレス・ヒストリ表5にない場合、ロード・アドレス・ヒストリ表5にそのラインアドレスを登録する。
(2)ラインデータ転送要求パス4から送られてくるアドレスと一致するラインアドレスがロード・アドレス・ヒストリ表5にあった場合、ロード・アドレス・ヒストリ表5の該当ラインを無効化し、そのラインアドレスをヒット・ラインアドレス転送パス6に出力する。
【0019】
ロード・アドレス・ヒストリ表5はmエントリ用意され、フルアソシアティブ方式で構成されている。ロード・アドレス・ヒストリ表5はmウェイセットアソシアティブ方式で構成することも可能である。以下では、mエントリのフルアソシアティブ方式の場合を仮定する。
【0020】
上記の動作によって、ロード・ストア・ユニット1から出力されたラインデータ転送要求において、そのラインアドレスがロード・アドレス・ヒストリ表5に登録されていた場合は、時間的に近い過去にそのラインアドレス転送要求が起こっていたことを検出できる。このようなラインデータ転送要求の発生は、レベル1キャッシュメモリにおいてスラッシングが発生したときに見られる特徴的な挙動で、ヒット・ラインアドレス転送パス6にラインアドレスが出力された場合は、スラッシング発生の検出が行われ、スラッシングを起こしたラインアドレスが特定されたことを意味する。
【0021】
mエントリのロード・アドレス・ヒストリ表5によって検出可能なスラッシングの規模は、スラッシングを起こしているラインの数が1であると仮定すると、ロード・ストア・ユニット1から出力される連続してm個以内のラインデータ転送要求にスラッシングデータの転送要求が入る場合である。また、ラインデータ転送要求のすべてがスラッシングデータの転送要求であるとすれば、mエントリのロード・アドレス・ヒストリ表5で検出可能なスラッシングの規模は、スラッシングを起こしているラインの数がm以下の場合である。
【0022】
ロード・ストア・ユニット1からラインデータ転送要求パス2に出力される転送要求の種類としては、レベル1キャッシュメモリをミスしたロード命令によるもの、プリフェッチなどのレベル1キャッシュメモリもしくはレジスタにデータを事前に登録するためのもの、ストアの3種類がある。この内、ロード・アドレス・ヒストリ表5に登録するのは、レベル1キャッシュメモリをミスしたロード命令によるラインデータ転送要求によるものだけである。プリフェッチなどによるラインデータ転送要求は、ロード・アドレス・ヒストリ表5の利用効率を下げる可能性があるため登録しない。
【0023】
一方、ロード・アドレス・ヒストリ表5とラインデータ転送要求のラインアドレスとの比較については、レベル1キャッシュメモリをミスしたロード命令によるラインデータ転送要求の他に、プリフェッチなどのレベル1キャッシュメモリもしくはレジスタにデータを事前に登録するためラインデータ転送要求も対象とする。これによってスラッシングを起こしているラインに対するプリフェッチなどに対して、スラッシングによる性能低下を軽減することができる。
【0024】
キャッシュ・アシスト・バッファ・タグ9は、ロード・アドレス・ヒストリ表5と同様にしてラインアドレスをn個保持する表であり、そのラインアドレスはキャッシュ・アシスト・バッファ12に登録されているラインデータに対応するラインアドレスである。キャッシュ・アシスト・バッファ・タグ9は、nエントリのフルアソシアティブ方式で構成されるが、nウェイセットアソシアティブ方式で構成してもよい。以下では、nエントリのフルアソシアティブ方式の場合を仮定する。
【0025】
キャッシュ・アシスト・バッファ・タグ9には、ロード・アドレス・ヒストリ表5からのヒット・ラインアドレス転送パス6と、ロード・ストア・ユニット1からラインデータ転送要求パス2,3を通って送られる転送要求を途中で取り出してくるパス7の2つの入力がある。また出力として、キャッシュ・アシスト・バッファ・ヒット結果パス8がある。キャッシュ・アシスト・バッファ・タグ9の動作は次の通りである。
(1)ロード・アドレス・ヒストリ表5からのヒット・ラインアドレス転送パス6を通してラインアドレスが転送されてきた場合には、そのラインアドレスをキャッシュ・アシスト・バッファ・タグ9に登録する。また、キャッシュ・アシスト・バッファ・ヒット結果パス8を通して、キャッシュ・アシスト・バッファ・タグ9に新規にそのラインアドレスが登録されたことを通知する。
(2)パス7を経由して転送されてきたラインデータ転送要求のラインアドレスと一致するラインアドレスがキャッシュ・アシスト・バッファ・タグ9のエントリにあった場合、キャッシュ・アシスト・バッファ12に該当ラインデータが存在することを意味し、キャッシュ・アシスト・バッファ・タグ9の該当エントリはそのままの状態を維持する。
(3)キャッシュ・アシスト・バッファ・タグ9に転送要求されたラインアドレスがヒットしたかミスヒットであったかの結果は、キャッシュ・アシスト・バッファ・ヒット結果パス8に転送される。
【0026】
キャッシュ・アシスト・バッファ・ヒット結果パス8から出力される情報に応じてラインデータ転送要求パス10への転送要求内容は次のように変化する。
(1)キャッシュ・アシスト・バッファ・ヒット結果パス8にキャッシュ・アシスト・バッファ・タグ9へのラインアドレスの新規登録情報がのった場合は、ラインデータ転送要求パス10への転送要求内容は、キャッシュ・アシスト・バッファ12に登録するラインデータ転送要求となる。
(2)キャッシュ・アシスト・バッファ・ヒット結果パス8にキャッシュ・アシスト・バッファ・タグ9に転送要求されたラインアドレスのヒット情報がのった場合は、キャッシュ・アシスト・バッファ12から該当ラインデータが返されるため、ラインデータ転送要求パス10への転送要求は抑止される。
【0027】
以上の動作により、スラッシングを起こしていたラインデータのラインデータ転送が、下位レベルキャッシュメモリ・メインメモリ11からの遅延時間の長い転送ではなく、レベル1キャッシュメモリ23と下位レベルキャッシュメモリ・メインメモリ11の間の階層からの転送にできる。
【0028】
下位レベルキャッシュメモリ・メインメモリ11からのデータ転送はデータ転送パス14〜19を経由して転送される。ラインデータ転送要求パス10を通してキャッシュ・アシスト・バッファ12に登録するラインデータと指定されていたデータ転送は、キャッシュ・アシスト・バッファ12に登録される。この検出は、データ転送パス15上に印をつけたデータをのせる方法と、データ転送パス15上には転送されるデータを一意に特定できる識別子のみつけ、キャッシュ・アシスト・バッファ12でその識別子の中から、キャッシュ・アシスト・バッファ12に登録すべきデータ転送を選別する方法がある。
【0029】
キャッシュ・アシスト・バッファ12はキャッシュ・アシスト・バッファ・タグ9と1対1に対応するラインデータを登録するバッファで、キャッシュ・アシスト・バッファ・タグ9と同様の構成である。つまり、キャッシュ・アシスト・バッファ・タグ9がnエントリのフルアソシアティブ方式で構成されている場合には、キャッシュ・アシスト・バッファ12もnエントリのフルアソシアティブ方式のバッファとなる。
【0030】
キャッシュ・アシスト・バッファ・タグ9において、ラインデータ転送要求のラインアドレスとの比較でヒットしたエントリがあった場合は、キャッシュ・アシスト・バッファ12の該当ラインからデータ転送パス13を通してレベル1キャッシュメモリ23およびロード・ストア・ユニット1に対してデータ転送する。
【0031】
図5は、本発明によるレベル1キャッシュメモリ23、キャッシュ・アシスト・バッファ12、ロード・アドレス・ヒストリ表5の状態遷移図である。図5では、レベル1キャッシュメモリ23を「L1」、キャッシュ・アシスト・バッファ12を「CAB」(Cache Assist Buffer)、ロード・アドレス・ヒストリ表5を「LAH」(Load Address History)と略している。
【0032】
状態1(33)は初期状態で、すべてのエントリに該当ラインデータおよびラインアドレスが存在しない。この状態1(33)でレベル1キャッシュメモリ・ミスしたロード命令によるラインデータ転送が起こると、状態遷移(39)により状態5(37)になる。つまり、ロード・アドレス・ヒストリ表5に該当ラインアドレスが登録され、レベル1キャッシュメモリ23に該当ラインデータが転送されて登録された状態である。
【0033】
状態5(37)において、レベル1キャッシュメモリ23の該当エントリが他のデータによって上書きされると、レベル1キャッシュメモリ23の溢れが起こり、状態遷移(40)により状態6(38)となる。スラッシングによりデータがレベル1キャッシュメモリ23から追い出されるのもこの状態遷移(40)である。
【0034】
状態6(37)で、レベル1キャッシュメモリ・ミスしたロード命令によるラインデータ転送もしくはプリフェッチによるラインデータ転送が起こると、状態遷移(42)により状態4(36)になる。ここでは、ロード・アドレス・ヒストリ表5にラインデータ転送要求のラインアドレスがヒットして、ヒット・ラインアドレス転送パス6を通してキャッシュ・アシスト・バッファ・タグ9に該当ラインアドレスが登録され、ラインデータ転送要求パス10上を流れる転送要求がキャッシュ・アシスト・バッファ12へのラインデータの登録をする印のついたものとなり、下位レベルキャッシュメモリ・メインメモリ11からのラインデータがデータ転送パス15,14を通り、キャッシュ・アシスト・バッファ12に登録される状態遷移と、データ転送パス15,16,19を通りレベル1キャッシュメモリ23にラインデータが登録される状態遷移を意味する。
【0035】
次に状態4(36)においてレベル1キャッシュメモリ23の該当エントリが他のデータによって上書きされると、レベル1キャッシュメモリ23の溢れが起こり、状態遷移(48)により状態2(34)となる。スラッシングによりデータがデベル1キャッシュメモリ23から追い出されるのもこの状態遷移(48)である。
【0036】
状態2(34)では、レベル1キャッシュメモリ23上からはラインデータが消えているが、キャッシュ・アシスト・バッファ12上にはラインデータが残っている。この状態2(34)において、レベル1キャッシュメモリ・ミスしたロード命令によるラインデータ転送もしくはプリフェッチによるラインデータ転送が起こると、状態遷移(47)により状態4(36)になる。
【0037】
スラッシングによるレベル1キャッシュメモリ・ミスをキャッシュ・アシスト・バッファ12で救済する典型的な例がこの状態遷移(47)である。同一のスラッシングが繰り返された場合には、状態2(34)と状態4(36)の間を状態遷移(47,48)することになる。
【0038】
本発明の機構がない場合には、状態2(34)が状態1(33)となり、ロード命令のたびに下位レベルキャッシュメモリ・メインメモリ(11)からのデータ転送となり、性能が大幅に低下するスラッシング状態となってしまう。
【0039】
すなわち、状態1(33)においてプリフェッチによるラインデータ転送要求が起こると、状態遷移(45)により状態3(35)になる。状態3(35)では、ロード・アドレス・ヒストリ表5、キャッシュ・アシスト・バッファ12のいずれにもラインデータやラインアドレスが登録されていないため、レベル1キャッシュメモリ23の該当エントリが他のデータによって上書きされるとレベル1キャッシュメモリ23の溢れが起こり、状態遷移(46)により状態1(33)となる。スラッシングによりデータがデベル1キャッシュメモリ23から追い出されるのもこの状態遷移(46)により状態1(33)となる。
【0040】
また、状態遷移(46)はキャッシュ無効化が起こったときにも通る状態遷移である。状態2(34)において、キャッシュ・アシスト・バッファ12の該当エントリが他のラインデータによって上書きされると、状態遷移(44)によって状態1(33)になる。これはキャッシュ・アシスト・バッファ12の連想度を上回る規模のスラッシングデータがキャッシュ・アシスト・バッファ12に登録された場合に起こる。
【0041】
また、キャッシュ無効化の場合にも、状態遷移(44)が起こる。状態4(36)においてキャッシュ・アシスト・バッファ12の該当エントリが他のラインデータによって上書きされると、状態遷移(50)によって状態3(35)になる。また、キャッシュ無効化の場合には、状態遷移(43)により状態1(33)になる。
【0042】
状態5(37)において、ロード・アドレス・ヒストリ表5の該当エントリが他のラインアドレスによって上書きされると、状態遷移(49)によって状態3(35)になる。これは、ロード・アドレス・ヒストリ表5のエントリ数を超える数のレベル1キャッシュメモリ・ミスをしたロード命令によるラインデータ転送要求が発生した場合に起こる。また、キャッシュ無効化の場合には、状態遷移(51)により状態1(33)になる。
【0043】
状態6(38)において、ロード・アドレス・ヒストリ表5の該当ラインが他のラインアドレスによって上書きされると、状態遷移(41)によって状態1(33)になる。またキャッシュ無効化の場合にも状態遷移(41)により状態1(33)になる。
【0044】
【発明の効果】
本発明の効果は、セットアソシアティブ方式もしくはダイレクトマップ方式のキャッシュメモリにおいて生じるスラッシング問題によるプロセッサ処理性能の低下を軽減することである。特に本発明に特徴的な効果は、キャッシュメモリ自体に特別な機構を設けないため、キャッシュメモリのアクセス性能の低下や実装効率の低下を起こさずにスラッシング問題の軽減ができる点にある。
【0045】
またスラッシング問題を軽減するためのスラッシングデータを登録するバッファについては、スラッシングデータを選択してそのバッファに登録することで、バッファの利用効率を高くすることができ、同一程度のスラッシング問題の軽減を目的とした場合には、バッファの容量を小さくすることが可能となり、また同一容量のバッファを用意した場合には、本発明の方式によるバッファの利用法によればより大規模なスラッシング問題の軽減が可能となるため、性能向上に対する実装効率が高く取れる点があげられる。
【図面の簡単な説明】
【図1】本発明の一実施例によるメモリシステムの構成を示すブロック図。
【図2】ダイレクトマップ方式のキャッシュメモリの構成を示すブロック図。
【図3】4ウェイセットアソシアティブ方式のキャッシュメモリの構成を示すブロック図。
【図4】フルアソシアティブ方式のキャッシュメモリの構成を示すブロック図。
【図5】本発明の動作を説明する状態遷移図。
【符号の説明】
1…ロード・ストア・ユニット、2〜4…ラインデータ転送要求パス、5…ロード・アドレス・ヒストリ表、6…ヒット・ラインアドレス転送パス、7…ラインデータ転送要求パス、8…キャッシュ・アシスト・バッファ・ヒット結果パス、9…キャッシュ・アシスト・バッファ・タグ表、10…ラインデータ転送要求パス、11…下位レベルキャッシュメモリ・メインメモリ、12…キャッシュ・アシスト・バッファ・データ表、13〜19…データ転送パス、20,21…レベル1キャッシュメモリ・ヒット結果パス、22…ラインデータ転送要求パス、23…レベル1キャッシュメモリ、24…レベル1キャッシュメモリ・タグ表、25…レベル1キャッシュメモリ・データ表、26,29…データアドレス・パス、27…キャッシュメモリ、28…セットセレクタ、30…アドレス・タグ表、31…ラインデータ表、32…ウェイセレクタ、33〜37…状態、38〜50…状態遷移。
Claims (2)
- キャッシュメモリと、
ロード・アドレス・ヒストリ表と、
キャッシュ・アシスト・バッファ・タグと、
前記キャッシュ・アシスト・バッファ・タグに格納されているラインアドレスに対応するラインデータを格納するキャッシュ・アシスト・バッファと、
前記キャッシュメモリにラインデータ転送要求に係るラインデータがなく、前記キャッシュメモリよりも下位のレベルのキャッシュメモリまたは主記憶装置にラインデータ転送要求を出す場合に、前記ラインデータ転送要求に係るラインアドレスと前記ロード・アドレス・ヒストリ表に格納されているラインアドレスとを比較する第1の比較手段と、
前記第1の比較手段により、前記ラインデータ転送要求に係るラインアドレスと一致するラインアドレスが前記ロード・アドレス・ヒストリ表に格納されていないことが判明した場合に、前記ラインデータ転送要求に係るラインアドレスを前記ロード・アドレス・ヒストリ表に格納する第1の格納手段と、
前記第1の比較手段により、前記ラインデータ転送要求に係るラインアドレスと一致するラインアドレスが前記ロード・アドレス・ヒストリ表に格納されていることが判明した場合に、一致することが判明したラインアドレスを前記キャッシュ・アシスト・バッファ・タグに格納する第2の格納手段と、
前記第1の比較手段により、前記ラインデータ転送要求に係るラインアドレスと一致するラインアドレスが前記ロード・アドレス・ヒストリ表に格納されていることが判明した場合に、前記ラインデータ転送要求に、当該ラインデータ転送要求に係るラインデータを前記キャッシュ・アシスト・バッファに格納すべきことを示す印を付けて、この印付きのラインデータ転送要求を前記下位のレベルのキャッシュメモリまたは前記主記憶装置に発行する発行手段と、
前記印付きのラインデータ転送要求に係るラインデータが前記下位のレベルのキャッシュメモリまたは前記主記憶装置から転送されてきた時に、当該ラインデータを少なくとも前記キャッシュ・アシスト・バッファに格納する第3の格納手段と、
を備えるメモリシステム。 - ラインデータ転送要求に係るラインアドレスと前記キャッシュ・アシスト・バッファ・タグに格納されているラインアドレスとを比較する第2の比較手段と、
前記第2の比較手段により、前記ラインデータ転送要求に係るラインアドレスと一致するラインアドレスが前記キャッシュ・アシスト・バッファ・タグに格納されていることが判明し、かつ、前記キャッシュメモリに前記ラインデータ転送要求に係るラインデータがない場合に、前記キャッシュ・アシスト・バッファからラインデータを読み出し、当該ラインデータを前記キャッシュメモリと転送要求元に対して転送する転送手段と、
をさらに備える請求項1に記載のメモリシステム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001012608A JP4341186B2 (ja) | 2001-01-22 | 2001-01-22 | メモリシステム |
US09/923,339 US6792498B2 (en) | 2001-01-22 | 2001-08-08 | Memory system with mechanism for assisting a cache memory |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001012608A JP4341186B2 (ja) | 2001-01-22 | 2001-01-22 | メモリシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002215457A JP2002215457A (ja) | 2002-08-02 |
JP4341186B2 true JP4341186B2 (ja) | 2009-10-07 |
Family
ID=18879596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001012608A Expired - Fee Related JP4341186B2 (ja) | 2001-01-22 | 2001-01-22 | メモリシステム |
Country Status (2)
Country | Link |
---|---|
US (1) | US6792498B2 (ja) |
JP (1) | JP4341186B2 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6874056B2 (en) * | 2001-10-09 | 2005-03-29 | Agere Systems Inc. | Method and apparatus for reducing cache thrashing |
US20050086435A1 (en) * | 2003-09-09 | 2005-04-21 | Seiko Epson Corporation | Cache memory controlling apparatus, information processing apparatus and method for control of cache memory |
JP4451717B2 (ja) * | 2004-05-31 | 2010-04-14 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置および情報処理方法 |
KR100859395B1 (ko) * | 2004-05-31 | 2008-09-22 | 가부시키가이샤 소니 컴퓨터 엔터테인먼트 | 정보 처리 장치 및 정보 처리 방법 |
US7634639B2 (en) * | 2005-08-23 | 2009-12-15 | Sun Microsystems, Inc. | Avoiding live-lock in a processor that supports speculative execution |
US7836435B2 (en) * | 2006-03-31 | 2010-11-16 | Intel Corporation | Checking for memory access collisions in a multi-processor architecture |
JP2007272691A (ja) * | 2006-03-31 | 2007-10-18 | Fujitsu Ltd | プロセッサ装置およびスラッシング回避方法 |
JP2009059005A (ja) * | 2007-08-29 | 2009-03-19 | Panasonic Corp | デバッグシステム、デバッグ装置および方法 |
US20130103903A1 (en) * | 2011-10-20 | 2013-04-25 | Vidyalakshmi Rajagopalan | Methods And Apparatus For Reusing Prior Tag Search Results In A Cache Controller |
US9141560B2 (en) * | 2012-06-29 | 2015-09-22 | Intel Corporation | Multi-level storage apparatus |
US9489149B2 (en) | 2014-06-16 | 2016-11-08 | Netapp, Inc. | Methods and systems for using a write cache in a storage system |
CN108153685A (zh) * | 2016-12-06 | 2018-06-12 | 阿里巴巴集团控股有限公司 | 一种处理请求的方法、装置及设备、可读介质 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE469402B (sv) | 1991-05-02 | 1993-06-28 | Swedish Inst Of Computer Scien | Foerfarande foer att haemta data till ett cache-minne |
JP2881049B2 (ja) | 1991-07-30 | 1999-04-12 | 株式会社日立製作所 | プリフェッチバッファ |
US5603004A (en) | 1994-02-14 | 1997-02-11 | Hewlett-Packard Company | Method for decreasing time penalty resulting from a cache miss in a multi-level cache system |
JPH08263424A (ja) | 1995-03-20 | 1996-10-11 | Fujitsu Ltd | コンピュータ装置 |
US6085291A (en) | 1995-11-06 | 2000-07-04 | International Business Machines Corporation | System and method for selectively controlling fetching and prefetching of data to a processor |
US5809530A (en) * | 1995-11-13 | 1998-09-15 | Motorola, Inc. | Method and apparatus for processing multiple cache misses using reload folding and store merging |
US5860095A (en) | 1996-01-02 | 1999-01-12 | Hewlett-Packard Company | Conflict cache having cache miscounters for a computer memory system |
JP3175675B2 (ja) * | 1997-12-04 | 2001-06-11 | 日本電気株式会社 | プリフェッチ制御装置 |
US5958040A (en) * | 1997-05-28 | 1999-09-28 | Digital Equipment Corporation | Adaptive stream buffers |
US6047363A (en) * | 1997-10-14 | 2000-04-04 | Advanced Micro Devices, Inc. | Prefetching data using profile of cache misses from earlier code executions |
US6253289B1 (en) | 1998-05-29 | 2001-06-26 | Compaq Computer Corporation | Maximizing sequential read streams while minimizing the impact on cache and other applications |
TW440761B (en) | 1999-05-06 | 2001-06-16 | Ind Tech Res Inst | The cache device and method |
US6507892B1 (en) * | 2000-02-21 | 2003-01-14 | Hewlett-Packard Company | L1 cache memory |
US6499085B2 (en) * | 2000-12-29 | 2002-12-24 | Intel Corporation | Method and system for servicing cache line in response to partial cache line request |
JP3969009B2 (ja) | 2001-03-29 | 2007-08-29 | 株式会社日立製作所 | ハードウェアプリフェッチシステム |
-
2001
- 2001-01-22 JP JP2001012608A patent/JP4341186B2/ja not_active Expired - Fee Related
- 2001-08-08 US US09/923,339 patent/US6792498B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002215457A (ja) | 2002-08-02 |
US6792498B2 (en) | 2004-09-14 |
US20020099912A1 (en) | 2002-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240078190A1 (en) | Write merging on stores with different privilege levels | |
EP1388065B1 (en) | Method and system for speculatively invalidating lines in a cache | |
US6766419B1 (en) | Optimization of cache evictions through software hints | |
US8909871B2 (en) | Data processing system and method for reducing cache pollution by write stream memory access patterns | |
JP4486750B2 (ja) | テンポラリ命令及び非テンポラリ命令用の共用キャッシュ構造 | |
US7240163B2 (en) | Microprocessor, apparatus and method for selective prefetch retire | |
US6480939B2 (en) | Method and apparatus for filtering prefetches to provide high prefetch accuracy using less hardware | |
US6622211B2 (en) | Virtual set cache that redirects store data to correct virtual set to avoid virtual set store miss penalty | |
US7908439B2 (en) | Method and apparatus for efficient replacement algorithm for pre-fetcher oriented data cache | |
US20090006757A1 (en) | Hierarchical cache tag architecture | |
US20100217937A1 (en) | Data processing apparatus and method | |
JP4341186B2 (ja) | メモリシステム | |
JP3262519B2 (ja) | 第2レベルキャッシュの古いラインの除去によるプロセッサのメモリ性能の強化方法及びシステム | |
US5737749A (en) | Method and system for dynamically sharing cache capacity in a microprocessor | |
US20030018855A1 (en) | Method and apparatus for caching with variable size locking regions | |
US6202128B1 (en) | Method and system for pre-fetch cache interrogation using snoop port | |
JP3431878B2 (ja) | マルチスレッド・プロセッサの命令キャッシュ | |
US7325101B1 (en) | Techniques for reducing off-chip cache memory accesses | |
JP2001249846A (ja) | キャッシュメモリ装置及びデータ処理システム | |
US20030033483A1 (en) | Cache architecture to reduce leakage power consumption | |
US20240111677A1 (en) | Region pattern-matching hardware prefetcher | |
JP2019096307A (ja) | 複数のデータ・タイプのためのデータ・ストレージ | |
JPH1055309A (ja) | 階層キャッシュメモリ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060418 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060525 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20090318 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090414 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090514 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090526 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090604 |
|
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: 20090616 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090629 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120717 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120717 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130717 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |