(57)【特許請求の範囲】
【請求項１】
キャッシュメモリと、
ロード・アドレス・ヒストリ表と、
キャッシュ・アシスト・バッファ・タグと、
前記キャッシュ・アシスト・バッファ・タグに格納されているラインアドレスに対応するラインデータを格納するキャッシュ・アシスト・バッファと、
前記キャッシュメモリにラインデータ転送要求に係るラインデータがなく、前記キャッシュメモリよりも下位のレベルのキャッシュメモリまたは主記憶装置にラインデータ転送要求を出す場合に、前記ラインデータ転送要求に係るラインアドレスと前記ロード・アドレス・ヒストリ表に格納されているラインアドレスとを比較する第１の比較手段と、
前記第１の比較手段により、前記ラインデータ転送要求に係るラインアドレスと一致するラインアドレスが前記ロード・アドレス・ヒストリ表に格納されていないことが判明した場合に、前記ラインデータ転送要求に係るラインアドレスを前記ロード・アドレス・ヒストリ表に格納する第１の格納手段と、
前記第１の比較手段により、前記ラインデータ転送要求に係るラインアドレスと一致するラインアドレスが前記ロード・アドレス・ヒストリ表に格納されていることが判明した場合に、一致することが判明したラインアドレスを前記キャッシュ・アシスト・バッファ・タグに格納する第２の格納手段と、
前記第１の比較手段により、前記ラインデータ転送要求に係るラインアドレスと一致するラインアドレスが前記ロード・アドレス・ヒストリ表に格納されていることが判明した場合に、前記ラインデータ転送要求に、当該ラインデータ転送要求に係るラインデータを前記キャッシュ・アシスト・バッファに格納すべきことを示す印を付けて、この印付きのラインデータ転送要求を前記下位のレベルのキャッシュメモリまたは前記主記憶装置に発行する発行手段と、
前記印付きのラインデータ転送要求に係るラインデータが前記下位のレベルのキャッシュメモリまたは前記主記憶装置から転送されてきた時に、当該ラインデータを少なくとも前記キャッシュ・アシスト・バッファに格納する第３の格納手段と、
を備えるメモリシステム。
【請求項２】
ラインデータ転送要求に係るラインアドレスと前記キャッシュ・アシスト・バッファ・タグに格納されているラインアドレスとを比較する第２の比較手段と、
前記第２の比較手段により、前記ラインデータ転送要求に係るラインアドレスと一致するラインアドレスが前記キャッシュ・アシスト・バッファ・タグに格納されていることが判明し、かつ、前記キャッシュメモリに前記ラインデータ転送要求に係るラインデータがない場合に、前記キャッシュ・アシスト・バッファからラインデータを読み出し、当該ラインデータを前記キャッシュメモリと転送要求元に対して転送する転送手段と、
をさらに備える請求項１に記載のメモリシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、高性能コンピュータ・システム用のメモリシステムに関し、特にデータのキャッシュメモリ上への配置においてダイレクトマップ方式もしくはセットアソシアティブ方式で構成されたキャッシュメモリシステムで特定のカラムに対して多数のデータ登録要求が発生した場合に生じるスラッシング問題を検出する検出機構と、スラッシング問題による性能低下を軽減するための補助メモリとを備えた高性能計算機用メモリシステムに関する。
【０００２】
【従来の技術】
高性能コンピュータ・システムのメモリシステムにおいて、メモリからのデータ転送は高性能化の実現における重要な部分である。そこで、プロセッサとメインメモリの間の階層にキャッシュメモリを用意し、データの時間的・空間的局所性を利用してデータ転送にかかる遅延時間の短縮をはかることが多くなっている。しかし、キャッシュメモリは物理的制約によりメインメモリにくらべてかなり小容量のメモリしか用意できず、またその連想度においても、ダイレクトマップ方式や４ウェイ／８ウェイなどのセットアソシアティブ方式であることが多い。
【０００３】
ダイレクトマップ方式とは、複数のエントリに分けられたキャッシュメモリにデータを登録する際に、そのデータのアドレスに対して１対１に対応する唯一のエントリにしかそのデータを登録できない方式である。この方式では、２つのデータが同じエントリに登録されるデータアドレスを持っていた場合、すぐに前のデータがキャッシュメモリから追い出されてしまう現象が起こり、利用効率が低下する。しかし、ダイレクトマップ方式は機構が簡単であり、実装効率の点では高い方式である。
【０００４】
ダイレクトマップ方式と逆の方式が、フルアソシアティブ方式である。フルアソシアティブ方式では、データはどのエントリにでも登録可能である。この方式は利用効率が高くなる一方、実装効率は大変に低い。４ウェイ／８ウェイなどのセットアソシアティブ方式は、ダイレクトマップ方式とフルアソシアティブ方式の中間の方式で、１つのデータアドレスに対して、４エントリ／８エントリの中のいずれかにデータを登録する。よって４つ／８つのデータまでは前のデータをキャッシュから追い出さずに登録することが可能である。実装効率についても、フルアソシアティブ方式よりも小さい面積に実装でき、実装効率が高い。
【０００５】
その他に、ビクティムキャッシュとよばれる機構がスラッシング対策の機構として知られている。ビクティムキャッシュはキャッシュメモリから追い出されたデータを一時的に保持しておくキャッシュメモリである。スラッシングが発生すると、キャッシュメモリから追い出されたデータは無効化されずにビクティムキャッシュに転送される。すると、スラッシングを起こしたキャッシュエントリ（群）の連想度は、キャッシュメモリの連想度に、ビクティムキャッシュの連想度を加えたものとなり、結果的に連想度が高くなったように動作する。これによってスラッシング問題の軽減がはかられる。
【０００６】
しかし、ビクティムキャッシュでは、キャッシュメモリから追い出されたデータを、スラッシングによりキャッシュメモリから追い出されたものかどうかを区別せずにビクティムキャッシュに登録するため、登録されるデータに不必要なデータも含まれ、ビクティムキャッシュの利用効率が低くなる場合もある。またキャッシュメモリ上のデータを置きかえる際に、元のデータを無効化するだけでなく、ビクティムキャッシュへ登録するために転送するパスを用意する必要がある。
【０００７】
【発明が解決しようとする課題】
キャッシュメモリを設けたプロセッサでは、キャッシュメモリへのアクセスレイテンシの短縮および実装効率の向上のためにセットアソシアティブ方式もしくはダイレクトマップ方式のキャッシュメモリを採用することが一般的である。しかし、このような連想度の低いキャッシュメモリでは、同一のセットに連想度を上回るデータセットのマッピングが集中して発生すると登録されたデータが後続のデータによって追い出され、キャッシュメモリが有効に機能しなくなるスラッシングンクとよばれる問題が発生する。スラッシングが発生すると、本来キャッシュメモリにヒットするデータ転送がキャッシュミスとなり、メインメモリからデータ転送を行う必要が生じるため、キャッシュメモリにヒットして短いアクセスレイテンシでデータが転送されている状態にくらべて、プロセッサの処理性能が３〜１０倍程度も低下することがある。
【０００８】
スラッシングはデータ配列などの間にダミーデータを入れるなどして、データのアドレスを調整することによって回避できる可能性もあるが、スラッシングの発生の検出・スラッシング発生個所の特定は容易とはいえない。また、キャッシュメモリをフルアソシアティブ方式にすることでスラッシングの発生を防ぐことが可能ではあるが、キャッシュメモリのヒットチェックの複雑化によりハードウェアが大規模化し、キャッシュアクセスに必要な時間の増大や、実装効率の低下を起こすため、通常においてフルアソシアティブ方式は採用されない。
【０００９】
そこで本発明では、フルアソシアティブ方式のような大規模なハードウェアをキャッシュメモリに搭載する必要なしに、スラッシング問題を解決することを課題とする。
【００１０】
【課題を解決するための手段】
本発明では、セットアソシアティブ方式もしくはダイレクトマップ方式のキャッシュメモリにおいて、キャッシュメモリのアクセス速度の低下や実装効率の低下を起こすことなく、スラッシング問題を回避するために、キャッシュメモリとメインメモリの間に、スラッシングの発生を検出するためのロード・アドレス・ヒストリ表と、スラッシングデータをキャッシングするためのキャッシュ・アシスト・バッファを備えて、スラッシングによるプロセッサの実行速度低下を軽減する。ロード・アドレス・ヒストリ表は、キャッシュメモリにデータがなく、メインメモリにデータ転送要求が発生した場合に、そのデータのアドレスを保持しておく表であり、キャッシュ・アシスト・バッファはスラッシングによりキャッシュメモリから追い出され、メインメモリから転送されてきたデータを保持しておくバッファである。
【００１１】
【発明の実施の形態】
図１に本発明の一実施例によるメモリシステム構成を示す。図１においてロード・ストア・ユニット１からデータ転送を要求するアドレスがラインデータ転送要求パス２２を経由してレベル１キャッシュメモリ２３に送信される。レベル１キャッシュメモリ２３は、レベル１キャッシュメモリ・タグ表２４とレベル１キャッシュメモリ・データ表２５から構成される。
【００１２】
キャッシュメモリの構成は、図２〜図４で示されるいずれかの方式をとるのが通常である。
【００１３】
図２はダイレクトマップ方式のキャッシュメモリである。データアドレス・パス２６を経由して転送されたアクセス・アドレスとキャッシュメモリのアドレス・タグ表３０を比較する際に、セットセレクタ２８によって、アクセス・アドレスに対して１対１の関係にある唯一のエントリが選択され、そのエントリのアドレス・タグ表３０のアドレスとのみ比較が行われる。図２のダイレクトマップ方式のキャッシュメモリの連想度は１である。
【００１４】
図３は４ウェイセットアソシアティブ方式のキャッシュメモリである。データアドレス・パス２６を経由して転送されたアクセス・アドレスとキャッシュメモリのアドレス・タグ表３０を比較する際に、セットセレクタ２８によって、アクセス・アドレスに対して１対４の関係にある４つのエントリを１セットとした１つのセットが選択され、その４つエントリのアドレス・タグ表３０のアドレスと比較が行われ、ウェイセレクタ３２によってその中の比較結果が真となったエントリが選択される。一般にｎウェイセットアソシアティブ方式のキャッシュメモリでは、１セットに含まれるエントリ数がｎ個であることを除けば、図３に示した構成図と同様の構成となる。ｎウェイセットアソシアティブ方式のキャッシュメモリの連想度はｎである。
【００１５】
図４はフルアソシアティブ方式のキャッシュメモリである。データアドレス・パス２６を経由して転送されたアクセス・アドレスとキャッシュメモリのアドレス・タグ表３０を比較する際に、アクセス・アドレスに対してすべてのエントリのアドレス・タグ表３０とアドレス比較が行われ、ウェイセレクタ３２によってその中の比較結果が真となったエントリが選択される。
【００１６】
本発明では、ダイレクトマップ方式もしくはｎウェイセットアソシアティブ方式のキャッシュメモリをレベル１キャッシュメモリとして持ち、そのキャッシュメモリの連想度を超える数のラインデータがある時間内にキャッシュメモリの特定のセットを利用する場合に、キャッシュメモリからデータが溢れ出すスラッシング現象を軽減する機構を設ける。
【００１７】
スラッシングによってレベル１キャッシュメモリ２３から追い出されたデータに対するアクセス要求は、レベル１キャッシュメモリ・タグ表２４との比較によりミスヒットとなり、レベル１キャッシュメモリ・ヒット結果パス２０，２１を通ってミスヒット情報が伝達される。ミスヒット情報によりラインデータ転送要求はラインデータ転送要求パス２，３，１０を通って下位レベルキャッシュメモリ・メインメモリ１１に転送される。この途中でパス４によりロード・アドレス・ヒストリ表５に登録されているラインアドレスと転送要求アドレスの比較を行う。
【００１８】
ロード・アドレス・ヒストリ表５は次のように動作する。
（１）ラインデータ転送要求パス４から送られてくるアドレスと一致するラインアドレスがロード・アドレス・ヒストリ表５にない場合、ロード・アドレス・ヒストリ表５にそのラインアドレスを登録する。
（２）ラインデータ転送要求パス４から送られてくるアドレスと一致するラインアドレスがロード・アドレス・ヒストリ表５にあった場合、ロード・アドレス・ヒストリ表５の該当ラインを無効化し、そのラインアドレスをヒット・ラインアドレス転送パス６に出力する。
【００１９】
ロード・アドレス・ヒストリ表５はｍエントリ用意され、フルアソシアティブ方式で構成されている。ロード・アドレス・ヒストリ表５はｍウェイセットアソシアティブ方式で構成することも可能である。以下では、ｍエントリのフルアソシアティブ方式の場合を仮定する。
【００２０】
上記の動作によって、ロード・ストア・ユニット１から出力されたラインデータ転送要求において、そのラインアドレスがロード・アドレス・ヒストリ表５に登録されていた場合は、時間的に近い過去にそのラインアドレス転送要求が起こっていたことを検出できる。このようなラインデータ転送要求の発生は、レベル１キャッシュメモリにおいてスラッシングが発生したときに見られる特徴的な挙動で、ヒット・ラインアドレス転送パス６にラインアドレスが出力された場合は、スラッシング発生の検出が行われ、スラッシングを起こしたラインアドレスが特定されたことを意味する。
【００２１】
ｍエントリのロード・アドレス・ヒストリ表５によって検出可能なスラッシングの規模は、スラッシングを起こしているラインの数が１であると仮定すると、ロード・ストア・ユニット１から出力される連続してｍ個以内のラインデータ転送要求にスラッシングデータの転送要求が入る場合である。また、ラインデータ転送要求のすべてがスラッシングデータの転送要求であるとすれば、ｍエントリのロード・アドレス・ヒストリ表５で検出可能なスラッシングの規模は、スラッシングを起こしているラインの数がｍ以下の場合である。
【００２２】
ロード・ストア・ユニット１からラインデータ転送要求パス２に出力される転送要求の種類としては、レベル１キャッシュメモリをミスしたロード命令によるもの、プリフェッチなどのレベル１キャッシュメモリもしくはレジスタにデータを事前に登録するためのもの、ストアの３種類がある。この内、ロード・アドレス・ヒストリ表５に登録するのは、レベル１キャッシュメモリをミスしたロード命令によるラインデータ転送要求によるものだけである。プリフェッチなどによるラインデータ転送要求は、ロード・アドレス・ヒストリ表５の利用効率を下げる可能性があるため登録しない。
【００２３】
一方、ロード・アドレス・ヒストリ表５とラインデータ転送要求のラインアドレスとの比較については、レベル１キャッシュメモリをミスしたロード命令によるラインデータ転送要求の他に、プリフェッチなどのレベル１キャッシュメモリもしくはレジスタにデータを事前に登録するためラインデータ転送要求も対象とする。これによってスラッシングを起こしているラインに対するプリフェッチなどに対して、スラッシングによる性能低下を軽減することができる。
【００２４】
キャッシュ・アシスト・バッファ・タグ９は、ロード・アドレス・ヒストリ表５と同様にしてラインアドレスをｎ個保持する表であり、そのラインアドレスはキャッシュ・アシスト・バッファ１２に登録されているラインデータに対応するラインアドレスである。キャッシュ・アシスト・バッファ・タグ９は、ｎエントリのフルアソシアティブ方式で構成されるが、ｎウェイセットアソシアティブ方式で構成してもよい。以下では、ｎエントリのフルアソシアティブ方式の場合を仮定する。
【００２５】
キャッシュ・アシスト・バッファ・タグ９には、ロード・アドレス・ヒストリ表５からのヒット・ラインアドレス転送パス６と、ロード・ストア・ユニット１からラインデータ転送要求パス２，３を通って送られる転送要求を途中で取り出してくるパス７の２つの入力がある。また出力として、キャッシュ・アシスト・バッファ・ヒット結果パス８がある。キャッシュ・アシスト・バッファ・タグ９の動作は次の通りである。
（１）ロード・アドレス・ヒストリ表５からのヒット・ラインアドレス転送パス６を通してラインアドレスが転送されてきた場合には、そのラインアドレスをキャッシュ・アシスト・バッファ・タグ９に登録する。また、キャッシュ・アシスト・バッファ・ヒット結果パス８を通して、キャッシュ・アシスト・バッファ・タグ９に新規にそのラインアドレスが登録されたことを通知する。
（２）パス７を経由して転送されてきたラインデータ転送要求のラインアドレスと一致するラインアドレスがキャッシュ・アシスト・バッファ・タグ９のエントリにあった場合、キャッシュ・アシスト・バッファ１２に該当ラインデータが存在することを意味し、キャッシュ・アシスト・バッファ・タグ９の該当エントリはそのままの状態を維持する。
（３）キャッシュ・アシスト・バッファ・タグ９に転送要求されたラインアドレスがヒットしたかミスヒットであったかの結果は、キャッシュ・アシスト・バッファ・ヒット結果パス８に転送される。
【００２６】
キャッシュ・アシスト・バッファ・ヒット結果パス８から出力される情報に応じてラインデータ転送要求パス１０への転送要求内容は次のように変化する。
（１）キャッシュ・アシスト・バッファ・ヒット結果パス８にキャッシュ・アシスト・バッファ・タグ９へのラインアドレスの新規登録情報がのった場合は、ラインデータ転送要求パス１０への転送要求内容は、キャッシュ・アシスト・バッファ１２に登録するラインデータ転送要求となる。
（２）キャッシュ・アシスト・バッファ・ヒット結果パス８にキャッシュ・アシスト・バッファ・タグ９に転送要求されたラインアドレスのヒット情報がのった場合は、キャッシュ・アシスト・バッファ１２から該当ラインデータが返されるため、ラインデータ転送要求パス１０への転送要求は抑止される。
【００２７】
以上の動作により、スラッシングを起こしていたラインデータのラインデータ転送が、下位レベルキャッシュメモリ・メインメモリ１１からの遅延時間の長い転送ではなく、レベル１キャッシュメモリ２３と下位レベルキャッシュメモリ・メインメモリ１１の間の階層からの転送にできる。
【００２８】
下位レベルキャッシュメモリ・メインメモリ１１からのデータ転送はデータ転送パス１４〜１９を経由して転送される。ラインデータ転送要求パス１０を通してキャッシュ・アシスト・バッファ１２に登録するラインデータと指定されていたデータ転送は、キャッシュ・アシスト・バッファ１２に登録される。この検出は、データ転送パス１５上に印をつけたデータをのせる方法と、データ転送パス１５上には転送されるデータを一意に特定できる識別子のみつけ、キャッシュ・アシスト・バッファ１２でその識別子の中から、キャッシュ・アシスト・バッファ１２に登録すべきデータ転送を選別する方法がある。
【００２９】
キャッシュ・アシスト・バッファ１２はキャッシュ・アシスト・バッファ・タグ９と１対１に対応するラインデータを登録するバッファで、キャッシュ・アシスト・バッファ・タグ９と同様の構成である。つまり、キャッシュ・アシスト・バッファ・タグ９がｎエントリのフルアソシアティブ方式で構成されている場合には、キャッシュ・アシスト・バッファ１２もｎエントリのフルアソシアティブ方式のバッファとなる。
【００３０】
キャッシュ・アシスト・バッファ・タグ９において、ラインデータ転送要求のラインアドレスとの比較でヒットしたエントリがあった場合は、キャッシュ・アシスト・バッファ１２の該当ラインからデータ転送パス１３を通してレベル１キャッシュメモリ２３およびロード・ストア・ユニット１に対してデータ転送する。
【００３１】
図５は、本発明によるレベル１キャッシュメモリ２３、キャッシュ・アシスト・バッファ１２、ロード・アドレス・ヒストリ表５の状態遷移図である。図５では、レベル１キャッシュメモリ２３を「Ｌ１」、キャッシュ・アシスト・バッファ１２を「ＣＡＢ」（Cache  Assist  Buffer）、ロード・アドレス・ヒストリ表５を「ＬＡＨ」（Load  Address  History）と略している。
【００３２】
状態１（３３）は初期状態で、すべてのエントリに該当ラインデータおよびラインアドレスが存在しない。この状態１（３３）でレベル１キャッシュメモリ・ミスしたロード命令によるラインデータ転送が起こると、状態遷移（３９）により状態５（３７）になる。つまり、ロード・アドレス・ヒストリ表５に該当ラインアドレスが登録され、レベル１キャッシュメモリ２３に該当ラインデータが転送されて登録された状態である。
【００３３】
状態５（３７）において、レベル１キャッシュメモリ２３の該当エントリが他のデータによって上書きされると、レベル１キャッシュメモリ２３の溢れが起こり、状態遷移（４０）により状態６（３８）となる。スラッシングによりデータがレベル１キャッシュメモリ２３から追い出されるのもこの状態遷移（４０）である。
【００３４】
状態６（３７）で、レベル１キャッシュメモリ・ミスしたロード命令によるラインデータ転送もしくはプリフェッチによるラインデータ転送が起こると、状態遷移（４２）により状態４（３６）になる。ここでは、ロード・アドレス・ヒストリ表５にラインデータ転送要求のラインアドレスがヒットして、ヒット・ラインアドレス転送パス６を通してキャッシュ・アシスト・バッファ・タグ９に該当ラインアドレスが登録され、ラインデータ転送要求パス１０上を流れる転送要求がキャッシュ・アシスト・バッファ１２へのラインデータの登録をする印のついたものとなり、下位レベルキャッシュメモリ・メインメモリ１１からのラインデータがデータ転送パス１５，１４を通り、キャッシュ・アシスト・バッファ１２に登録される状態遷移と、データ転送パス１５，１６，１９を通りレベル１キャッシュメモリ２３にラインデータが登録される状態遷移を意味する。
【００３５】
次に状態４（３６）においてレベル１キャッシュメモリ２３の該当エントリが他のデータによって上書きされると、レベル１キャッシュメモリ２３の溢れが起こり、状態遷移（４８）により状態２（３４）となる。スラッシングによりデータがデベル１キャッシュメモリ２３から追い出されるのもこの状態遷移（４８）である。
【００３６】
状態２（３４）では、レベル１キャッシュメモリ２３上からはラインデータが消えているが、キャッシュ・アシスト・バッファ１２上にはラインデータが残っている。この状態２（３４）において、レベル１キャッシュメモリ・ミスしたロード命令によるラインデータ転送もしくはプリフェッチによるラインデータ転送が起こると、状態遷移（４７）により状態４（３６）になる。
【００３７】
スラッシングによるレベル１キャッシュメモリ・ミスをキャッシュ・アシスト・バッファ１２で救済する典型的な例がこの状態遷移（４７）である。同一のスラッシングが繰り返された場合には、状態２（３４）と状態４（３６）の間を状態遷移（４７，４８）することになる。
【００３８】
本発明の機構がない場合には、状態２（３４）が状態１（３３）となり、ロード命令のたびに下位レベルキャッシュメモリ・メインメモリ（１１）からのデータ転送となり、性能が大幅に低下するスラッシング状態となってしまう。
【００３９】
すなわち、状態１（３３）においてプリフェッチによるラインデータ転送要求が起こると、状態遷移（４５）により状態３（３５）になる。状態３（３５）では、ロード・アドレス・ヒストリ表５、キャッシュ・アシスト・バッファ１２のいずれにもラインデータやラインアドレスが登録されていないため、レベル１キャッシュメモリ２３の該当エントリが他のデータによって上書きされるとレベル１キャッシュメモリ２３の溢れが起こり、状態遷移（４６）により状態１（３３）となる。スラッシングによりデータがデベル１キャッシュメモリ２３から追い出されるのもこの状態遷移（４６）により状態１（３３）となる。
【００４０】
また、状態遷移（４６）はキャッシュ無効化が起こったときにも通る状態遷移である。状態２（３４）において、キャッシュ・アシスト・バッファ１２の該当エントリが他のラインデータによって上書きされると、状態遷移（４４）によって状態１（３３）になる。これはキャッシュ・アシスト・バッファ１２の連想度を上回る規模のスラッシングデータがキャッシュ・アシスト・バッファ１２に登録された場合に起こる。
【００４１】
また、キャッシュ無効化の場合にも、状態遷移（４４）が起こる。状態４（３６）においてキャッシュ・アシスト・バッファ１２の該当エントリが他のラインデータによって上書きされると、状態遷移（５０）によって状態３（３５）になる。また、キャッシュ無効化の場合には、状態遷移（４３）により状態１（３３）になる。
【００４２】
状態５（３７）において、ロード・アドレス・ヒストリ表５の該当エントリが他のラインアドレスによって上書きされると、状態遷移（４９）によって状態３（３５）になる。これは、ロード・アドレス・ヒストリ表５のエントリ数を超える数のレベル１キャッシュメモリ・ミスをしたロード命令によるラインデータ転送要求が発生した場合に起こる。また、キャッシュ無効化の場合には、状態遷移（５１）により状態１（３３）になる。
【００４３】
状態６（３８）において、ロード・アドレス・ヒストリ表５の該当ラインが他のラインアドレスによって上書きされると、状態遷移（４１）によって状態１（３３）になる。またキャッシュ無効化の場合にも状態遷移（４１）により状態１（３３）になる。
【００４４】
【発明の効果】
本発明の効果は、セットアソシアティブ方式もしくはダイレクトマップ方式のキャッシュメモリにおいて生じるスラッシング問題によるプロセッサ処理性能の低下を軽減することである。特に本発明に特徴的な効果は、キャッシュメモリ自体に特別な機構を設けないため、キャッシュメモリのアクセス性能の低下や実装効率の低下を起こさずにスラッシング問題の軽減ができる点にある。
【００４５】
またスラッシング問題を軽減するためのスラッシングデータを登録するバッファについては、スラッシングデータを選択してそのバッファに登録することで、バッファの利用効率を高くすることができ、同一程度のスラッシング問題の軽減を目的とした場合には、バッファの容量を小さくすることが可能となり、また同一容量のバッファを用意した場合には、本発明の方式によるバッファの利用法によればより大規模なスラッシング問題の軽減が可能となるため、性能向上に対する実装効率が高く取れる点があげられる。
【図面の簡単な説明】
【図１】本発明の一実施例によるメモリシステムの構成を示すブロック図。
【図２】ダイレクトマップ方式のキャッシュメモリの構成を示すブロック図。
【図３】４ウェイセットアソシアティブ方式のキャッシュメモリの構成を示すブロック図。
【図４】フルアソシアティブ方式のキャッシュメモリの構成を示すブロック図。
【図５】本発明の動作を説明する状態遷移図。
【符号の説明】
１…ロード・ストア・ユニット、２〜４…ラインデータ転送要求パス、５…ロード・アドレス・ヒストリ表、６…ヒット・ラインアドレス転送パス、７…ラインデータ転送要求パス、８…キャッシュ・アシスト・バッファ・ヒット結果パス、９…キャッシュ・アシスト・バッファ・タグ表、１０…ラインデータ転送要求パス、１１…下位レベルキャッシュメモリ・メインメモリ、１２…キャッシュ・アシスト・バッファ・データ表、１３〜１９…データ転送パス、２０，２１…レベル１キャッシュメモリ・ヒット結果パス、２２…ラインデータ転送要求パス、２３…レベル１キャッシュメモリ、２４…レベル１キャッシュメモリ・タグ表、２５…レベル１キャッシュメモリ・データ表、２６，２９…データアドレス・パス、２７…キャッシュメモリ、２８…セットセレクタ、３０…アドレス・タグ表、３１…ラインデータ表、３２…ウェイセレクタ、３３〜３７…状態、３８〜５０…状態遷移。
【図１】
0004341186.tif 000002
【図２】
0004341186.tif 000003
【図３】
0004341186.tif 000004
【図４】
0004341186.tif 000005
【図５】
0004341186.tif 000006