JP2009157612A - キャッシュメモリシステム及びキャッシュメモリの制御方法 - Google Patents

キャッシュメモリシステム及びキャッシュメモリの制御方法 Download PDF

Info

Publication number
JP2009157612A
JP2009157612A JP2007334496A JP2007334496A JP2009157612A JP 2009157612 A JP2009157612 A JP 2009157612A JP 2007334496 A JP2007334496 A JP 2007334496A JP 2007334496 A JP2007334496 A JP 2007334496A JP 2009157612 A JP2009157612 A JP 2009157612A
Authority
JP
Japan
Prior art keywords
cache memory
address
cache
data
area
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
JP2007334496A
Other languages
English (en)
Other versions
JP5157424B2 (ja
Inventor
Masayuki Tsuji
雅之 辻
Yoshimasa Takebe
好正 竹部
Akira Notomi
昭 納富
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.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
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 Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2007334496A priority Critical patent/JP5157424B2/ja
Priority to US12/343,251 priority patent/US20090172296A1/en
Publication of JP2009157612A publication Critical patent/JP2009157612A/ja
Application granted granted Critical
Publication of JP5157424B2 publication Critical patent/JP5157424B2/ja
Active 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement

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

【課題】本発明は、ライトアロケート方式のストア命令における無駄なデータ転送をなくしたキャッシュメモリシステムを提供することを目的とする。
【解決手段】キャッシュメモリシステムは、ストア命令を実行する場合に、キャッシュミスの発生に応答してキャッシュメモリにアドレスの領域をアロケートするとともに、主記憶装置のアドレスのデータをキャッシュメモリ上のアロケートされた領域にコピーした後、キャッシュメモリ上のコピーされたデータを書き込みデータで書き替える第1の動作モードと、キャッシュミスの発生に応答してキャッシュメモリにアドレスの領域をアロケートするとともに、主記憶装置のアドレスのデータをキャッシュメモリ上のアロケートされた領域にコピーすることなく、キャッシュメモリ上のアロケートされた領域に書き込みデータをストアする第2の動作モードとを選択的に実行可能なように構成される。
【選択図】図1

Description

本発明は、一般にメモリシステムに関し、詳しくはキャッシュメモリシステムに関する。
コンピュータシステムにおいては一般に、主記憶とは別に小容量で高速なキャッシュメモリが設けられる。主記憶に記憶される情報の一部をキャッシュメモリにコピーしておくことで、この情報をアクセスする場合には主記憶からではなくキャッシュメモリから読み出すことで、高速な情報の読み出しが可能となる。
キャシュメモリは複数のキャッシュラインを含み、主記憶からキャッシュメモリへの情報のコピーはキャッシュライン単位で実行される。主記憶のメモリ空間はキャッシュライン単位で分割され、分割されたメモリ領域を順番にキャッシュラインに割当てておく。キャッシュメモリの容量は主記憶の容量よりも小さいので、主記憶のメモリ領域を繰り返して同一のキャッシュラインに割当てることになる。
一般に、アドレスの全ビットのうちで、所定数の下位ビットがキャッシュメモリのインデックスとなり、それより上位に位置する残りのビットがキャッシュメモリのタグとなる。データをアクセスする場合には、アクセス先を示すアドレス中のインデックス部分を用いて、キャッシュメモリ中の対応するインデックスのタグを読み出す。読み出したタグと、アドレス中のタグ部分のビットパターンとが一致するか否かを判断する。一致しない場合にはキャッシュミスとなる。一致する場合には、キャッシュヒットとなり、当該インデックスに対応するキャッシュデータ(1キャッシュライン分の所定ビット数のデータ)がアクセスされる。
ライトスルー方式では、データをメモリに書き込む際に、キャッシュメモリへの書き込みとともに主記憶にも書き込みを行う。この方式では、キャッシュメモリの内容を置き換える必要が生じても、データの有効/無効を示す有効ビットを無効化するだけでよい。それに対してライトバック方式では、データをメモリに書き込む際に、キャッシュメモリへの書き込みのみを行う。書き込んだデータはキャッシュメモリ上にしか存在しないので、キャッシュメモリの内容を置き換える際には、キャッシュメモリの内容を主記憶にコピーする必要がある。またミスヒットしたときの書き込み動作として、ライトアロケート方式とノーライトアロケート方式とがある。ライトアロケート方式では、アクセス対象のデータを主記憶からキャッシュメモリにコピーして、キャッシュメモリ上のデータを書き込み動作により更新する。ノーライトアロケート方式では、主記憶のデータをキャッシュメモリにコピーすることなく、主記憶上のアクセス対象のデータのみを書き込み動作により更新する。
ライトアロケート方式のストア命令(書き込み命令)では、キャッシュミスが発生したときに、主記憶のデータのコピーをキャッシュに用意する動作を実行するので、プロセッサの命令実行に少なからずペナルティが生じることになる。このような主記憶からキャッシュメモリへの1キャッシュライン分のデータ転送のペナルティを軽減するために、プリロード(プリフェッチ)命令を用いることができる。このプリロード命令は、主記憶のデータのコピーをキャッシュメモリに用意する動作にかかる時間分だけ、キャッシュミスするストア命令よりも早いタイミングで発行する。これにより、プリロード命令後の他の命令を実行している間に、主記憶のデータのコピーをキャッシュメモリに用意することができる。従って、キャッシュミス時のストア命令のペナルティを隠蔽することができる。
このようにしてキャッシュミス時の1キャッシュライン分のデータ転送(MoveIn動作)のペナルティをプリロード命令の事前発行によって隠蔽することができるが、そもそも主記憶からキャッシュメモリへの1キャッシュライン分のデータ転送そのものが無駄である場合がある。即ち、ストア命令に応答してキャッシュメモリにコピーされる1キャッシュライン分のデータが当該ストア命令により全て書き替えられることが予め分かっている場合、このデータの主記憶からキャッシュメモリへの転送そのものが無駄である。このデータ転送に伴うメモリアクセスは、処理性能を劣化させ且つ消費電力を増大させる無駄な要因でしかない。
ライトアロケート方式のストア命令における、上記の本質的に無駄なデータ転送をハードウェアによって抑止する技術がある(特許文献1)。この技術は、キャッシュエントリの全データを連続ストアする場合を対象とするものであり、連続ストア命令発行を検出するための多くの命令キューやライトバッファを専用に設ける必要がある。また、ストライドアクセスのような複数のキャッシュエントリを対象に順にストア命令を発行する場合等、不連続ストア動作となる場合については、無駄なデータ転送を抑止することに著しい困難が生じる。
特開平7−210463号公報 特開平8−212133号公報 特開平7−152650号公報
以上を鑑みて本発明は、ライトアロケート方式のストア命令における無駄なデータ転送をなくしたキャッシュメモリシステムを提供することを目的とする。
キャッシュメモリシステムは、主記憶装置にアクセスするよう機能する処理装置と、該処理装置に結合され該処理装置から該主記憶装置よりも高速にアクセス可能なキャッシュメモリを含み、あるアドレスに書き込みデータをストアするストア命令を実行する場合に、該アドレスへのアクセスによるキャッシュミスの発生に応答して該キャッシュメモリに該アドレスの領域をアロケートするとともに、該主記憶装置の該アドレスのデータを該キャッシュメモリ上の該アロケートされた領域にコピーした後、該キャッシュメモリ上の該コピーされたデータを該書き込みデータで書き替える第1の動作モードと、該アドレスへのアクセスによるキャッシュミスの発生に応答して該キャッシュメモリに該アドレスの領域をアロケートするとともに、該主記憶装置の該アドレスのデータを該キャッシュメモリ上の該アロケートされた領域にコピーすることなく、該キャッシュメモリ上の該アロケートされた領域に該書き込みデータをストアする第2の動作モードとを選択的に実行可能なように構成されたことを特徴とする。
キャッシュメモリシステムにおけるストア命令の実行方法は、主記憶装置にアクセスするよう機能する処理装置と、該処理装置に結合され該処理装置から該主記憶装置よりも高速にアクセス可能なキャッシュメモリとを含むキャッシュメモリシステムにおいて、あるアドレスに書き込みデータをストアするストア命令を実行する方法であって、該アドレスへのアクセスによるキャッシュミスの発生に応答して該キャッシュメモリに該アドレスの領域をアロケートし、該主記憶装置の該アドレスのデータを該キャッシュメモリ上の該アロケートされた領域にコピーすることなく、該キャッシュメモリ上の該アロケートされた領域に前記書き込みデータをストアする各段階を含むことを特徴とする。
本発明の少なくとも1つの実施例によれば、キャッシュミスに応答してMoveIn動作を実行する通常の第1の動作モードと、キャッシュミスに応答してMoveIn動作を実行しない第2の動作モードとが設けられている。従って、MoveIn動作によるデータ転送が無駄になることが分かっている場合には、キャッシュミスの発生に応答してキャッシュメモリに書き込みアドレスの領域をアロケートするだけで、主記憶装置からキャッシュメモリにMoveIn動作を実行することなく、キャッシュメモリ上のアロケートされた領域に書き込みデータをストアすることができる。これにより、ライトアロケート方式のストア命令における無駄なデータ転送をなくして、処理性能を改善して且つ消費電力を削減することができる。
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
ストア命令に応答してキャッシュメモリにコピーされる1キャッシュライン分のデータが当該ストア命令により全て書き替えられることが予め分かっている場合、このデータの主記憶からキャッシュメモリへの転送そのものが無駄である。このような無駄なデータ転送が発生するデータ領域は、多くの場合、プログラムの作成時点で既に静的に決定している。従って、無駄なデータ転送を行うストア命令は例えばコンパイラ等のソフトウェアで認識可能であり、無駄なデータ転送を抑止する手段をソフトウェアにより提供することができる。
本発明の第1の実施例では、ライトアロケート方式のキャッシュメモリシステムにおいて、第1のストア命令と第2のストア命令との2種類のストア命令が用意される。無駄でないデータ転送を発生させるストア命令の実行には第1のストア命令を割り当て、無駄なデータ転送を発生させるストア命令の実行には第2のストア命令を割り当てる。
あるアドレスに書き込みデータをストアするストア命令を実行する場合に、第1のストア命令を実行することにより、当該アドレスへのアクセスによるキャッシュミスの発生に応答してキャッシュメモリに当該アドレスの領域をアロケートするとともに、主記憶装置の当該アドレスのデータをキャッシュメモリ上のアロケートされた領域にコピーした後、キャッシュメモリ上のコピーされたデータを書き込みデータで書き替える第1の動作モードを実行する。これにより、通常のライトアロケート方式のストア命令を実装する。
更に、あるアドレスに書き込みデータをストアするストア命令を実行する場合に、第2のストア命令を実行することにより、当該アドレスへのアクセスによるキャッシュミスの発生に応答してキャッシュメモリに当該アドレスの領域をアロケートするとともに、主記憶装置の当該アドレスのデータをキャッシュメモリ上のアロケートされた領域にコピーすることなく、キャッシュメモリ上のアロケートされた領域に書き込みデータをストアする第2の動作モードを実行する。これにより、通常のライトアロケート方式のストア命令とは異なり、主記憶装置からキャッシュメモリへの1キャッシュライン分のデータ転送(MoveIn)動作をなくしたストア動作を実行することができる。
図1は、本発明の第1の実施例の動作を説明するための概念図である。主記憶装置12にアクセスするよう機能するCPU等の処理装置と、処理装置から主記憶装置12よりも高速にアクセス可能なキャッシュメモリ11とを含むキャッシュメモリシステムにおいて、処理装置がプログラム(命令列)10を実行する。プログラム10は、命令1乃至命令nを含み、例えば2番目の命令がストア命令である。
まずストア命令が、MoveIn動作を実行する第1のストア命令である場合について説明する。CPU(処理装置)がストア命令をフェッチし、デコードし、ストア命令の実行を開始する。このストア命令の発行に応答して、書き込みデータ及び書き込みアドレスがキャッシュメモリ11に送られる(S1)。このとき、対応するキャッシュエントリ13のタグと書き込みアドレスとが一致せずにキャッシュミスしたとする。また、対応キャッシュラインにはダーティな状態(即ち主記憶装置12にキャッシュデータの変化が反映されていない状態)の別のキャッシュラインデータが存在するとする。この場合、キャッシュエントリ13への書き込みデータの書き込みは保留となり、書き込みデータはキャッシュメモリ11内部のバッファに保持される。
その後、対象キャッシュエントリ13のキャッシュラインデータを入れ替えるため、対象キャッシュエントリ13に現在格納されているキャッシュラインデータを主記憶装置12に書き込むライトバック動作を実行する(S2)。また、指定された書き込みアドレスを含む1キャッシュライン分のデータを主記憶装置12からキャッシュメモリ11の対象キャッシュエントリ13にコピーするために、主記憶装置12からキャッシュメモリ11へのデータ転送(MoveIn動作)が実行される(S3)。この際、キャッシュエントリ13のタグを、指定された書き込みアドレスに対応するタグに書き替えて、キャッシュメモリ11のキャッシュエントリ13を書き込みアドレスの領域としてアロケートする。
最後に、キャッシュメモリ11の内部バッファに保留されていた書き込みデータにより対象キャッシュエントリ13のデータを更新する。これにより第1のストア命令の実行が完了する。
次にストア命令が、MoveIn動作を実行しない第1のストア命令である場合について説明する。ストア命令の発行により、書き込みデータ及び書き込みアドレスがキャッシュメモリ11に送られる動作(S1)は、第1のストア命令の場合と同様である。また対応キャッシュラインにはダーティな状態(即ち主記憶装置12にキャッシュデータの変化が反映されていない状態)の別のキャッシュラインデータが存在するとする。この場合、対象キャッシュエントリ13のキャッシュラインデータを入れ替えるため、対象キャッシュエントリ13に現在格納されているキャッシュラインデータを主記憶装置12に書き込むライトバック動作を実行する(S2)。第1のストア命令の場合と異なり、第2のストア命令の場合には、指定された書き込みアドレスを含む1キャッシュライン分のデータを主記憶装置12からキャッシュメモリ11の対象キャッシュエントリ13に転送するMoveIn動作は実行しない。即ち、点線で示すS3のデータ転送は実行しない。但し、キャッシュエントリ13のタグを、指定された書き込みアドレスに対応するタグに書き替えて、キャッシュメモリ11のキャッシュエントリ13を書き込みアドレスの領域としてアロケートする。
最後に、キャッシュメモリ11の内部バッファに保留されていた書き込みデータにより対象キャッシュエントリ13のデータを更新する。これにより第2のストア命令の実行が完了する。
図2は、本発明の第2の実施例の動作を説明するための概念図である。第2の実施例では、ライトアロケート方式のキャッシュメモリシステムにおいて、第1のプリロード命令と第2のプリロード命令との2種類のプリロード命令が用意される。データ転送が無駄にならないストア命令の場合には事前に第1のプリロード命令を実行し、データ転送が無駄になるストア命令の場合には事前に第2のプリロード命令を実行する。
ストア命令に先行して第1のプリロード命令が発行されると、プリロード命令によるキャッシュミスの発生に応答してキャッシュメモリにアクセス対象のアドレスの領域をアロケートするとともに、主記憶装置の当該アドレスのデータをキャッシュメモリ上のアロケートされた領域にコピーする。またストア命令に先行して第2のプリロード命令が発行されると、プリロード命令によるキャッシュミスの発生に応答してキャッシュメモリにアクセス対象のアドレスの領域をアロケートするとともに、主記憶装置の当該アドレスのデータをキャッシュメモリ上のアロケートされた領域にコピーしないでプリロード命令動作を終了する。
図2において、図1と同一の構成要素は同一の番号で参照し、その説明は省略する。プログラム10Bは、命令1乃至命令nを含み、例えば1番目の命令がプリロード命令であり、n番目の命令がストア命令である。
まずプリロード命令が、MoveIn動作を実行する第1のプリロード命令である場合について説明する。CPU(処理装置)がプリロード命令をフェッチし、デコードし、プリロード命令の実行を開始する。このプリロード命令の発行により、ロードアドレス(後続ストア命令の書き込みアドレス)がキャッシュメモリ11に送られる(S1)。このとき、対応するキャッシュエントリ13のタグとロードアドレスとが一致せずにキャッシュミスしたとする。また、対応キャッシュラインにはダーティな状態(即ち主記憶装置12にキャッシュデータの変化が反映されていない状態)の別のキャッシュラインデータが存在するとする。
この場合、対象キャッシュエントリ13のキャッシュラインデータを入れ替えるため、対象キャッシュエントリ13に現在格納されているキャッシュラインデータを主記憶装置12に書き込むライトバック動作を実行する(S2)。また、指定された書き込みアドレスを含む1キャッシュライン分のデータを主記憶装置12からキャッシュメモリ11の対象キャッシュエントリ13にコピーするために、主記憶装置12からキャッシュメモリ11へのデータ転送(MoveIn動作)が実行される(S3)。この際、キャッシュエントリ13のタグを、指定された書き込みアドレスに対応するタグに書き替えて、キャッシュメモリ11のキャッシュエントリ13を書き込みアドレスの領域としてアロケートする。以上で第1のプリロード命令の実行が終了する。
最後に、CPU(処理装置)がストア命令をフェッチし、デコードし、ストア命令の実行を開始する。このストア命令の発行により、書き込みデータ及び書き込みアドレスがキャッシュメモリ11に送られる(S4)。書き込みアドレスにタグが一致するキャッシュエントリ13が存在するのでキャッシュヒットし、この対応キャッシュエントリ13に書き込みデータが格納される。これによりストア命令の実行が完了する。
次にプリロード命令が、MoveIn動作を実行しない第2のプリロード命令である場合について説明する。プリロード命令の発行により、ロードアドレス(後続ストア命令の書き込みアドレス)がキャッシュメモリ11に送られる動作(S1)については、第1のプリロード命令の場合と同一である。また対応キャッシュラインにはダーティな状態(即ち主記憶装置12にキャッシュデータの変化が反映されていない状態)の別のキャッシュラインデータが存在するとする。この場合、対象キャッシュエントリ13のキャッシュラインデータを入れ替えるため、対象キャッシュエントリ13に現在格納されているキャッシュラインデータを主記憶装置12に書き込むライトバック動作を実行する(S2)。第1のプリロード命令の場合と異なり、第2のプリロード命令の場合には、指定されたアドレスを含む1キャッシュライン分のデータを主記憶装置12からキャッシュメモリ11の対象キャッシュエントリ13に転送するMoveIn動作は実行しない。即ち、点線で示すS3のデータ転送は実行しない。但し、キャッシュエントリ13のタグを、指定されたアドレスに対応するタグに書き替えて、キャッシュメモリ11のキャッシュエントリ13を指定アドレスの領域としてアロケートする。以上で第2のプリロード命令の実行が終了する。
最後に、CPU(処理装置)がストア命令をフェッチし、デコードし、ストア命令の実行を開始する。このストア命令の発行により、書き込みデータ及び書き込みアドレスがキャッシュメモリ11に送られる(S4)。書き込みアドレスにタグが一致するキャッシュエントリ13が存在するのでキャッシュヒットし、この対応キャッシュエントリ13に書き込みデータが格納される。これによりストア命令の実行が完了する。
図3は、本発明の第3の実施例の動作を説明するための概念図である。図3において、図1と同一の構成要素は同一の番号で参照し、その説明は省略する。第3の実施例では、ライトアロケート方式のキャッシュメモリシステムにおいて、設定レジスタ14を更に含み、書き込みアドレスに対応するキャッシュメモリ11の領域(キャッシュエントリ13)が設定レジスタ14に有効値として設定されている場合には、プリロード命令又はストア命令においてMoveIn動作が実行される。また書き込みアドレスに対応するキャッシュメモリ11の領域(キャッシュエントリ13)が設定レジスタ14に有効値として設定されていない場合には、プリロード命令又はストア命令においてMoveIn動作を実行しない。図3は、一例としてストア命令の場合を示すが、プリロード命令の場合も同様である。図3のプログラム10Cは、命令1乃至命令nを含み、例えば1番目の命令がストア命令であり、n番目の命令が解除命令である。
まずストア命令の実行時にMoveIn動作を実行する場合について説明する。最初に、CPUによる所定の命令の実行により、設定レジスタ14を解除状態(無効状態)として、設定レジスタ14の設定値が有効ではない状態にする(S1)。これは、設定レジスタ14に有効/無効ビット等を設けておき、このビットに無効を示す値を設定することで実現できる。
その後CPU(処理装置)がストア命令をフェッチし、デコードし、ストア命令の実行を開始する。このストア命令の発行に応答して、書き込みデータ及び書き込みアドレスがキャッシュメモリ11に送られる(S2)。このとき、対応するキャッシュエントリ13のタグと書き込みアドレスとが一致せずにキャッシュミスしたとする。また、対応キャッシュラインにはダーティな状態(即ち主記憶装置12にキャッシュデータの変化が反映されていない状態)の別のキャッシュラインデータが存在するとする。この場合、キャッシュエントリ13への書き込みデータの書き込みは保留となり、書き込みデータはキャッシュメモリ11内部のバッファに保持される。
その後、対象キャッシュエントリ13のキャッシュラインデータを入れ替えるため、対象キャッシュエントリ13に現在格納されているキャッシュラインデータを主記憶装置12に書き込むライトバック動作を実行する(S3)。また、指定された書き込みアドレスを含む1キャッシュライン分のデータを主記憶装置12からキャッシュメモリ11の対象キャッシュエントリ13にコピーするために、主記憶装置12からキャッシュメモリ11へのデータ転送(MoveIn動作)が実行される(S4)。この際、キャッシュエントリ13のタグを、指定された書き込みアドレスに対応するタグに書き替えて、キャッシュメモリ11のキャッシュエントリ13を書き込みアドレスの領域としてアロケートする。
最後に、キャッシュメモリ11の内部バッファに保留されていた書き込みデータにより対象キャッシュエントリ13のデータを更新する。これによりストア命令の実行が完了する。
次にストア命令の実行時にMoveIn動作を実行しない場合について説明する。最初に、CPUによる所定の命令の実行により、設定レジスタ14にキャッシュエントリ13を示す値を設定し、更に、設定レジスタ14の設定値が有効な状態にする(S1)。これは、設定レジスタ14に有効/無効ビット等を設けておき、このビットに有効を示す値を設定することで実現できる。
ストア命令の発行により、書き込みデータ及び書き込みアドレスがキャッシュメモリ11に送られる動作(S2)は、第1のストア命令の場合と同様である。また対応キャッシュラインにはダーティな状態(即ち主記憶装置12にキャッシュデータの変化が反映されていない状態)の別のキャッシュラインデータが存在するとする。この場合、対象キャッシュエントリ13のキャッシュラインデータを入れ替えるため、対象キャッシュエントリ13に現在格納されているキャッシュラインデータを主記憶装置12に書き込むライトバック動作を実行する(S3)。設定レジスタ14がキャッシュエントリ13を指し示す場合には、指定された書き込みアドレスを含む1キャッシュライン分のデータを主記憶装置12からキャッシュメモリ11の対象キャッシュエントリ13に転送するMoveIn動作は実行しない。即ち、点線で示すS4のデータ転送は実行しない。但し、キャッシュエントリ13のタグを、指定された書き込みアドレスに対応するタグに書き替えて、キャッシュメモリ11のキャッシュエントリ13を書き込みアドレスの領域としてアロケートする。
その後、キャッシュメモリ11の内部バッファに保留されていた書き込みデータにより対象キャッシュエントリ13のデータを更新する。これによりストア命令の実行が完了する。
最後に、データキャッシュ制御命令やレジスタ解除命令を発行することにより、キャッシュメモリ11の設定レジスタ14を解除状態(無効状態)として、設定レジスタ14の設定値が有効ではない状態にする。これは、設定レジスタ14に有効/無効ビット等を設けておき、このビットに無効を示す値を設定することで実現できる。これにより、キャッシュエントリ13を通常のキャッシュ領域として使用することが可能となる。なおこのとき、キャッシュエントリ13のキャッシュラインデータはダーティな状態(即ち主記憶装置12にキャッシュデータの変化が反映されていない状態)であるので、このキャッシュラインデータを主記憶装置12に書き込むライトバック動作を、設定レジスタ14の解除動作と一緒に実行してよい(S6)。
図4は、本発明の実施例によるキャッシュメモリシステムの構成を示す図である。図4のキャッシュメモリシステムは、CPU20、主記憶装置21、及びキャッシュメモリ22を含む。メモリシステムは階層構造となっていてもよく、例えば主記憶装置21とキャッシュメモリ22との間に、主記憶装置21の上位に位置する上位記憶階層のメモリ装置が設けられている構成であってもよい。同様に、CPU20とキャッシュメモリ22との間に、キャッシュメモリ22の上位に位置する上位記憶階層のメモリ装置が設けられている構成であってもよい。
キャッシュメモリ22は、制御部31、タグレジスタ32、アドレス比較器33、データキャッシュレジスタ34、セレクタ35、データバッファ36、及びキャッシュ属性情報レジスタ37を含む。タグレジスタ32には、有効ビット、ダーティビット、及びタグが格納される。データバッファ36には、各キャッシュエントリに対応する1キャッシュラインのデータが格納される。キャッシュメモリ22の構成は、各キャッシュラインに対して1つだけタグを設けたダイレクトマッピング方式であってもよいし、各キャッシュラインに対してN個のタグを設けたNウェイセットアソシアティブ方式であってもよい。Nウェイセットアソシアティブ方式の場合には、タグレジスタ32及びデータキャッシュレジスタ34が複数セット設けられることになる。
CPU20がメモリ空間にアクセスする命令を発行(実行開始)すると、CPU20からアクセス先を示すアドレスが出力される。このアクセス先を示すアドレスのうちのインデックス部分が、タグレジスタ32に供給される。タグレジスタ32は、当該インデックスに対応する内容(タグ)を選択して出力する。タグレジスタ32から出力されたタグと、CPU20から供給されたアドレス中のタグ部分のビットパターンが一致するか否かを、アドレス比較器33で判断する。比較結果が一致を示し且つタグレジスタ32の当該インデックスの有効ビットが有効値“1”であれば、キャッシュヒットとなり、アドレス比較器33からアドレス一致を示す信号が制御部31に対してアサートされる。
またCPU20から供給されたアクセス先を示すアドレスのうちのインデックス部分は、データキャッシュレジスタ34にも供給される。データキャッシュレジスタ34は、当該インデックスに対応するキャッシュラインのデータを選択して出力する。セレクタ35は、Nウェイセットアソシアティブ方式の場合にアドレス比較器33から供給される信号に基づいて、複数のキャッシュラインのデータのうちのアクセス対象の1つを選択して出力する。セレクタ35から出力されるデータは、キャッシュメモリ22からの読み出しデータとしてCPU20に供給される。
キャッシュメモリ22にアクセス対象のデータが存在しない場合、即ちキャッシュミスした場合、アドレス比較器33はアドレス不一致を示す出力をアサートする。この場合の基本的な動作として、制御部31は、主記憶装置21の当該アドレスをアクセスし、主記憶装置21から読み出したデータをキャッシュエントリとして登録する。即ち、主記憶装置21から読み出したデータをデータキャッシュレジスタ34に格納するとともに、対応するタグをタグレジスタ32に格納し、更に対応有効ビットを有効にする。但し本願発明の実施例では、後述するように、キャッシュミスした場合であっても主記憶装置21からキャッシュメモリ22へのデータ転送(MoveIn動作)を実行しない動作モードが設けられている。
制御部31は、キャッシュ管理に関わる種々の制御動作を実行する。例えば、有効ビットの設定をしたり、タグの設定をしたり、有効ビットをチェックすることで利用可能なキャッシュラインを検索したり、例えばLRU(least recently used)アルゴリズム等に基づいて置換対象となるキャッシュラインを選択したり、データキャッシュレジスタ34へのデータ書き込み動作を制御したりする。また制御部31は更に、主記憶装置21に対するデータ読み出し/書き込み動作を制御する。
図5は、図1に示す第1の実施例の動作を示すフローチャートである。図4と図5とを参照して、以下に第1の実施例の動作について説明する。
図5のステップS1で、ストア先のアドレスを指定してストア命令を発行する。これにより図4においてCPU20からキャッシュメモリ22に対してアドレスが供給される(A1)。またCPU20からキャッシュメモリ22に対して書き込みデータが供給され、データバッファ36に格納される。またこれと同時に、CPU20からキャッシュメモリ22の制御部31に対して、MoveIn動作の実行/非実行を指定する信号が制御部31に供給される(A2)。具体的には、CPU20のデコーダ25が実行対象の命令をデコードすることにより、実行対象の命令がMoveIn動作を伴う第1のストア命令であるのかMoveIn動作を伴わない第2のストア命令であるのかを判断できるので、この判断結果に基づいてCPU20から制御部31への指示がなされる。
次に図5のステップS2で、ストア先のアドレスがキャッシュメモリ22にアロケート済みであるか否かを判断する。これは図4においてアドレス比較器33がアクセス対象のアドレスのタグ部分と対応キャッシュエントリのタグとを比較し、比較結果に応じてアドレス一致を示す信号又はアドレス不一致を示す信号をアサートすることに相当する(A3)。アロケート済みである場合、即ちタグが一致する場合、図5のステップS6において、対応キャッシュエントリに対してストア対象の書き込みデータを書き込む。即ち、図4において、ストア命令と共に供給された書き込みデータがデータバッファ36を介してデータキャッシュレジスタ34の対応キャッシュエントリに格納される(A5)。
図5のステップS2の判断の結果がアロケート済みでない場合、即ちタグが一致しない場合、図5のステップS3において、対応キャッシュエントリにダーティなデータがあるか否かを判断する。これはタグレジスタ32の対応キャッシュエントリのダーティビットが有効設定/無効設定の何れであるかを判断することにより行われる。ダーティなデータが有る場合、図5のステップS4において、対応キャッシュエントリのデータを主記憶にライトバックする。即ち図4において、データキャッシュレジスタ34の対応キャッシュエントリのデータを主記憶装置21の対応アドレスに書き込みする(A4)。ダーティなデータが無い場合、ステップS4はスキップされる。
次に図5のステップS5で、対応キャッシュエントリを書き込みアドレスの領域としてアロケートする。図5に示す例では、MoveIn動作を伴わない第2のストア命令を実行した場合が示されており、MoveIn動作無しでアロケート動作のみが実行される。これは図4において、タグレジスタ32の対応キャッシュエントリのタグを、書き込みアドレスに対応するタグに書き替えることに相当する。なおMoveIn動作を伴う第1のストア命令を実行した場合であれば、主記憶装置21の対応アドレスから読み出したキャッシュラインのデータをデータキャッシュレジスタ34の対応キャッシュエントリに書き込んで、更にタグレジスタ32の対応キャッシュエントリのタグを書き込みアドレスに対応するタグに書き替えることになる。
その後、図5のステップS6において、対応キャッシュエントリにストア命令により書き込みデータを書き込む。即ち、図4において、ストア命令と共に供給された書き込みデータがデータバッファ36を介してデータキャッシュレジスタ34の対応キャッシュエントリに格納される(A5)。
図6は、図2に示す第2の実施例の動作を示すフローチャートである。図4と図6とを参照して、以下に第2の実施例の動作について説明する。
図6のステップS1で、ロード先のアドレス(その後のストア命令の書き込みアドレス)を指定してプリロード命令を発行する。これにより図4においてCPU20からキャッシュメモリ22に対してアドレスが供給される(A1)。またこれと同時に、CPU20からキャッシュメモリ22の制御部31に対して、MoveIn動作の実行/非実行を指定する信号が制御部31に供給される(A2)。具体的には、CPU20のデコーダ25が実行対象の命令をデコードすることにより、実行対象の命令がMoveIn動作を伴う第1のプリロード命令であるのかMoveIn動作を伴わない第2のプリロード命令であるのかを判断できるので、この判断結果に基づいてCPU20から制御部31への指示がなされる。図6は、第2のプリロード命令が発行された場合の動作を示すフローチャートである。
以降、発行された第2のプリロード命令により、図5のステップS2からステップS5と同一の動作が図6のステップS2からステップS5として実行される。但し、図5ではステップS2からステップS5がストア命令により実行されるのに対して、図6ではステップS2からステップS5がプリロード命令により実行される点が異なる。最後に、図6のステップS6において、プリロード命令後のストア命令の発行により、対応キャッシュエントリにストア命令による書き込みデータを書き込む。即ち、図4において、ストア命令と共に供給された書き込みデータがデータバッファ36を介してデータキャッシュレジスタ34の対応キャッシュエントリに格納される(A5)。
図7は、本発明の実施例によるキャッシュメモリシステムの別の構成を示す図である。図7において図4と同一の構成要素は同一の番号で参照し、その説明は省略する。図7のキャッシュメモリシステムは、図4に示されるキャッシュメモリシステムの構成に加え、キャッシュメモリ22においてRAM化領域アドレス保持レジスタ41とアドレス比較器42とを更に含む。RAM化領域アドレス保持レジスタ41は、図3の設定レジスタ14に対応するレジスタであり、MoveIn動作無くそのままアクセス可能な領域のアドレスを格納する。MoveIn動作無くアクセス可能であるという性質が、そのままアクセスできるRAMのメモリ領域の性質と類似しているために、ここではRAM化という用語を用いている。即ち、RAM化されたキャッシュエントリは、MoveIn動作無くアクセスされることになる。アドレス比較器42は、CPU20から供給されたアクセス対象のアドレスとRAM化領域アドレス保持レジスタ41に格納されるアドレスとを比較して、一致/不一致の比較結果を示す信号を制御部31に供給する。
図8は、図3に示す第3の実施例の動作を示すフローチャートである。図7と図8とを参照して、以下に第3の実施例の動作について説明する。なお図8は一例としてストア命令の場合について説明するが、プリロード命令の場合についても同様の動作を実行することができる。
図8のステップS1で、所望のアドレス領域(キャッシュエントリ)をRAM化対象の領域として指定する。即ち、図7において、CPU20からキャッシュメモリ22のRAM化領域アドレス保持レジスタ41にRAM化対象の所望のキャッシュエントリに対応するアドレスを供給し、このアドレスがRAM化領域アドレス保持レジスタ41に格納される(A1)。なおこの所望のアドレス領域とは、無駄なMoveIn動作の実行を無くしたいストア命令が有る場合に、このストア命令による書き込みアドレスに対応する領域である。
次に図8のステップS2で、発行されたストア命令がキャッシュエントリのRAM化領域へのストアであるか否かを判定する。即ち図7において、ストア先のアドレスを指定してストア命令を発行すると、CPU20からキャッシュメモリ22に対してアドレスが供給される(A2)。アドレス比較器42は、RAM化領域アドレス保持レジスタ41に格納されているアドレスとCPU20から供給されたアドレスとを比較して、アドレス一致又は不一致を示す信号を制御部31に供給する(A3)。また上記ストア命令の発行により、CPU20からキャッシュメモリ22に対して書き込みデータが供給され、書き込みデータがデータバッファ36に格納される。
図8のステップS2の判定結果がNOの場合、ステップS10で通常のストア命令が実行される。即ち、キャッシュミスした場合にはMoveIn動作を実行してからキャッシュエントリのデータを書き込みデータで書き替える動作が実行される。図8のステップS2の判定結果がYESの場合、ステップS3で、ストア先のアドレスがキャッシュメモリ22にアロケート済みであるか否かを判断する。これは図7においてアドレス比較器33がアクセス対象のアドレスのタグ部分と対応キャッシュエントリのタグとを比較し、比較結果に応じてアドレス一致を示す信号又はアドレス不一致を示す信号をアサートすることに相当する(A4)。アロケート済みである場合、即ちタグが一致する場合、図8のステップS7において、対応キャッシュエントリに対してストア対象の書き込みデータを書き込む。即ち、図7において、ストア命令と共に供給された書き込みデータがデータバッファ36を介してデータキャッシュレジスタ34の対応キャッシュエントリに格納される(A6)。
図8のステップS3の判断の結果がアロケート済みでない場合、即ちタグが一致しない場合、図8のステップS4において、対応キャッシュエントリにダーティなデータがあるか否かを判断する。これはタグレジスタ32の対応キャッシュエントリのダーティビットが有効設定/無効設定の何れであるかを判断することにより行われる。ダーティなデータが有る場合、図8のステップS5において、対応キャッシュエントリのデータを主記憶にライトバックする。即ち図7において、データキャッシュレジスタ34の対応キャッシュエントリのデータを主記憶装置21の対応アドレスに書き込みする(A5)。ダーティなデータが無い場合、ステップS5はスキップされる。
次に図8のステップS6で、MoveIn動作を実行することなく、対応キャッシュエントリをRAM領域としてロックする。即ち、対応キャッシュエントリを書き込みアドレスの領域としてアロケートする。これは図7において、タグレジスタ32の対応キャッシュエントリのタグを、書き込みアドレスに対応するタグに書き替えることに相当する。その後、図8のステップS7において、対応キャッシュエントリにストア命令により書き込みデータを書き込む。即ち、図7において、ストア命令と共に供給された書き込みデータがデータバッファ36を介してデータキャッシュレジスタ34の対応キャッシュエントリに格納される(A6)。
図8のステップS8で、キャッシュエントリのRAM化領域を開放するか否かを判断する。開放しない場合には、ステップS2に戻り以降の処理(次の命令の実行処理)を行う。開放する場合には、ステップS9で、キャッシュエントリのRAM化領域を開放して、通常のキャッシュエントリとして使用可能な状態にする。またこの際に、当該キャッシュエントリのデータをライトバック(データ変更を反映させるための主記憶装置21への書き込み動作)してよい。キャッシュエントリのRAM化領域の開放は、図7において、CPU20からRAM化領域アドレス保持レジスタ41及び/又は制御部31に対して、RAM化領域アドレス保持レジスタ41の格納アドレスを無効値として設定するような指示をすればよい(A7)。
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
本発明の第1の実施例の動作を説明するための概念図である。 本発明の第2の実施例の動作を説明するための概念図である。 本発明の第3の実施例の動作を説明するための概念図である。 本発明の実施例によるキャッシュメモリシステムの構成を示す図である。 図1に示す第1の実施例の動作を示すフローチャートである。 図2に示す第2の実施例の動作を示すフローチャートである。 本発明の実施例によるキャッシュメモリシステムの別の構成を示す図である。 図3に示す第3の実施例の動作を示すフローチャートである。
符号の説明
10 プログラム
11 キャッシュメモリ
12 主記憶装置
13 キャッシュエントリ
14 設定レジスタ
20 CPU
21 主記憶装置
22 キャッシュメモリ
31 制御部
32 タグレジスタ
33 アドレス比較器
34 データキャッシュレジスタ
35 セレクタ
36 データバッファ
37 キャッシュ属性情報レジスタ
41 RAM化領域アドレス保持レジスタ
42 アドレス比較器

Claims (10)

  1. 主記憶装置にアクセスするよう機能する処理装置と、
    該処理装置に結合され該処理装置から該主記憶装置よりも高速にアクセス可能なキャッシュメモリ
    を含み、あるアドレスに書き込みデータをストアするストア命令を実行する場合に、該アドレスへのアクセスによるキャッシュミスの発生に応答して該キャッシュメモリに該アドレスの領域をアロケートするとともに、該主記憶装置の該アドレスのデータを該キャッシュメモリ上の該アロケートされた領域にコピーした後、該キャッシュメモリ上の該コピーされたデータを該書き込みデータで書き替える第1の動作モードと、該アドレスへのアクセスによるキャッシュミスの発生に応答して該キャッシュメモリに該アドレスの領域をアロケートするとともに、該主記憶装置の該アドレスのデータを該キャッシュメモリ上の該アロケートされた領域にコピーすることなく、該キャッシュメモリ上の該アロケートされた領域に該書き込みデータをストアする第2の動作モードとを選択的に実行可能なように構成されたことを特徴とするキャッシュメモリシステム。
  2. 前記ストア命令に先行してプリロード命令が発行されると、前記第1の動作モードでは該プリロード命令によるキャッシュミスの発生に応答して前記キャッシュメモリに前記アドレスの領域をアロケートするとともに、前記主記憶装置の該アドレスのデータを該キャッシュメモリ上の該アロケートされた領域にコピーし、前記第2の動作モードでは該プリロード命令によるキャッシュミスの発生に応答して前記キャッシュメモリに前記アドレスの領域をアロケートするとともに、前記主記憶装置の該アドレスのデータを該キャッシュメモリ上の該アロケートされた領域にコピーしないことを特徴とする請求項1記載のキャッシュメモリシステム。
  3. 前記第1の動作モードは該第1の動作モードを指定して実行する第1のプリロード命令により実行され、前記第2の動作モードは該第2の動作モードを指定して実行する第2のプリロード命令により実行されることを特徴とする請求項2記載のキャッシュメモリシステム。
  4. 前記ストア命令が発行されると、前記第1の動作モードでは該ストア命令によるキャッシュミスの発生に応答して前記キャッシュメモリに前記アドレスの領域をアロケートするとともに、前記主記憶装置の該アドレスのデータを該キャッシュメモリ上の該アロケートされた領域にコピーし、該キャッシュメモリ上の該コピーされたデータを該書き込みデータで書き替え、前記第2の動作モードでは該ストア命令によるキャッシュミスの発生に応答して前記キャッシュメモリに前記アドレスの領域をアロケートするとともに、前記主記憶装置の該アドレスのデータを該キャッシュメモリ上の該アロケートされた領域にコピーすることなく、該キャッシュメモリ上の該アロケートされた領域に該書き込みデータをストアすることを特徴とする請求項1記載のキャッシュメモリシステム。
  5. 前記第1の動作モードは該第1の動作モードを指定して実行する第1のストア命令により実行され、前記第2の動作モードは該第2の動作モードを指定して実行する第2のストア命令により実行されることを特徴とする請求項4記載のキャッシュメモリシステム。
  6. レジスタを更に含み、前記アドレスに対応する前記キャッシュメモリの領域が該レジスタに有効値として設定されている場合に前記第1の動作モードが実行され、該アドレスに対応する該キャッシュメモリの領域が該レジスタに有効値として設定されていない場合に前記第2の動作モードが実行されることを特徴とする請求項1記載のキャッシュメモリシステム。
  7. 所定の命令に応答して前記レジスタの有効値の設定を解除することを特徴とする請求項6記載のキャッシュメモリシステム。
  8. 前記第1の動作モードと前記第2の動作モードとにおいて、前記キャッシュメモリに前記アドレスの領域をアロケートする際に、該領域に既に存在する別のアドレスのデータを該キャッシュメモリから前記主記憶装置に転送することを特徴とする請求項1記載のキャッシュメモリシステム。
  9. 主記憶装置にアクセスするよう機能する処理装置と、
    該処理装置に結合され該処理装置から該主記憶装置よりも高速にアクセス可能なキャッシュメモリとを含むシステムにおけるキャッシュメモリの制御方法であって、
    あるアドレスにデータをストアするストア命令の実行は、
    該アドレスへのアクセスによるキャッシュミスの発生に応答して該キャッシュメモリに該アドレスの領域をアロケートし、
    該主記憶装置の該アドレスのデータを該キャッシュメモリ上の該アロケートされた領域にコピーすることなく、該キャッシュメモリ上の該アロケートされた領域に前記書き込みデータをストアする各段階を含む
    ことを特徴とするキャッシュメモリの制御方法。
  10. 前記アドレスの領域をアロケートする際に該領域に既に存在する別のアドレスのデータを前記キャッシュメモリから前記主記憶装置に転送する段階
    を更に含み、
    該主記憶装置に転送する段階と該アドレスの領域をアロケートする段階とは、前記ストア命令に先行するプリロード命令により実行される
    ことを特徴とする請求項9記載のキャッシュメモリの制御方法。
JP2007334496A 2007-12-26 2007-12-26 キャッシュメモリシステム及びキャッシュメモリの制御方法 Active JP5157424B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007334496A JP5157424B2 (ja) 2007-12-26 2007-12-26 キャッシュメモリシステム及びキャッシュメモリの制御方法
US12/343,251 US20090172296A1 (en) 2007-12-26 2008-12-23 Cache Memory System and Cache Memory Control Method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007334496A JP5157424B2 (ja) 2007-12-26 2007-12-26 キャッシュメモリシステム及びキャッシュメモリの制御方法

Publications (2)

Publication Number Publication Date
JP2009157612A true JP2009157612A (ja) 2009-07-16
JP5157424B2 JP5157424B2 (ja) 2013-03-06

Family

ID=40800020

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007334496A Active JP5157424B2 (ja) 2007-12-26 2007-12-26 キャッシュメモリシステム及びキャッシュメモリの制御方法

Country Status (2)

Country Link
US (1) US20090172296A1 (ja)
JP (1) JP5157424B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011138213A (ja) * 2009-12-25 2011-07-14 Fujitsu Ltd 演算処理装置、情報処理装置及びキャッシュメモリ制御方法
WO2012074850A3 (en) * 2010-12-02 2012-08-16 Microsoft Corporation Efficient cache management

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CH699208B1 (fr) * 2008-07-25 2019-03-29 Em Microelectronic Marin Sa Circuit processeur à mémoire partagée et système tampon.
JP5326708B2 (ja) * 2009-03-18 2013-10-30 富士通株式会社 演算処理装置および演算処理装置の制御方法
GB2526849B (en) * 2014-06-05 2021-04-14 Advanced Risc Mach Ltd Dynamic cache allocation policy adaptation in a data processing apparatus
JP2018206175A (ja) * 2017-06-07 2018-12-27 富士通株式会社 コンパイラ、情報処理装置及びコンパイル方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07152650A (ja) * 1993-11-30 1995-06-16 Oki Electric Ind Co Ltd キャッシュ制御装置
JPH07191910A (ja) * 1993-12-27 1995-07-28 Hitachi Ltd キャッシュメモリ制御方法
JPH07210463A (ja) * 1994-01-21 1995-08-11 Hitachi Ltd キャッシュメモリシステム及びデータプロセッサ
JP2006501563A (ja) * 2002-10-04 2006-01-12 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データ処理システムおよび同システムを動作させる方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0325421B1 (en) * 1988-01-20 1994-08-10 Advanced Micro Devices, Inc. Organization of an integrated cache unit for flexible usage in supporting multiprocessor operations
EP0377970B1 (en) * 1989-01-13 1995-08-16 International Business Machines Corporation I/O caching
EP0895162A3 (en) * 1992-01-22 1999-11-10 Enhanced Memory Systems, Inc. Enhanced dram with embedded registers
US5325503A (en) * 1992-02-21 1994-06-28 Compaq Computer Corporation Cache memory system which snoops an operation to a first location in a cache line and does not snoop further operations to locations in the same line
US5524212A (en) * 1992-04-27 1996-06-04 University Of Washington Multiprocessor system with write generate method for updating cache
JP3207591B2 (ja) * 1993-03-19 2001-09-10 株式会社日立製作所 キャッシュメモリを有する計算機の改良
US5809537A (en) * 1995-12-08 1998-09-15 International Business Machines Corp. Method and system for simultaneous processing of snoop and cache operations
US7035981B1 (en) * 1998-12-22 2006-04-25 Hewlett-Packard Development Company, L.P. Asynchronous input/output cache having reduced latency
US7127559B2 (en) * 2001-07-10 2006-10-24 Micron Technology, Inc. Caching of dynamic arrays
US7065613B1 (en) * 2002-06-06 2006-06-20 Maxtor Corporation Method for reducing access to main memory using a stack cache
US20070204107A1 (en) * 2004-02-24 2007-08-30 Analog Devices, Inc. Cache memory background preprocessing
US7149848B2 (en) * 2004-02-26 2006-12-12 Hewlett-Packard Development Company, L.P. Computer system cache controller and methods of operation of a cache controller
US7281096B1 (en) * 2005-02-09 2007-10-09 Sun Microsystems, Inc. System and method for block write to memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07152650A (ja) * 1993-11-30 1995-06-16 Oki Electric Ind Co Ltd キャッシュ制御装置
JPH07191910A (ja) * 1993-12-27 1995-07-28 Hitachi Ltd キャッシュメモリ制御方法
JPH07210463A (ja) * 1994-01-21 1995-08-11 Hitachi Ltd キャッシュメモリシステム及びデータプロセッサ
JP2006501563A (ja) * 2002-10-04 2006-01-12 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データ処理システムおよび同システムを動作させる方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011138213A (ja) * 2009-12-25 2011-07-14 Fujitsu Ltd 演算処理装置、情報処理装置及びキャッシュメモリ制御方法
US8856478B2 (en) 2009-12-25 2014-10-07 Fujitsu Limited Arithmetic processing unit, information processing device, and cache memory control method
WO2012074850A3 (en) * 2010-12-02 2012-08-16 Microsoft Corporation Efficient cache management
US8775737B2 (en) 2010-12-02 2014-07-08 Microsoft Corporation Efficient cache management

Also Published As

Publication number Publication date
JP5157424B2 (ja) 2013-03-06
US20090172296A1 (en) 2009-07-02

Similar Documents

Publication Publication Date Title
US20230004500A1 (en) Aggressive write flush scheme for a victim cache
EP1388065B1 (en) Method and system for speculatively invalidating lines in a cache
US7539823B2 (en) Multiprocessing apparatus having reduced cache miss occurrences
TWI230862B (en) Translation lookaside buffer that caches memory type information
US6212602B1 (en) Cache tag caching
US6370622B1 (en) Method and apparatus for curious and column caching
US6122709A (en) Cache with reduced tag information storage
US9892039B2 (en) Non-temporal write combining using cache resources
US20110173400A1 (en) Buffer memory device, memory system, and data transfer method
US20080005504A1 (en) Global overflow method for virtualized transactional memory
US20100064107A1 (en) Microprocessor cache line evict array
US7284094B2 (en) Mechanism and apparatus allowing an N-way set associative cache, implementing a hybrid pseudo-LRU replacement algorithm, to have N L1 miss fetch requests simultaneously inflight regardless of their congruence class
US5765199A (en) Data processor with alocate bit and method of operation
JP2000250813A (ja) I/oキャッシュ・メモリにおけるデータ管理方法
JP5157424B2 (ja) キャッシュメモリシステム及びキャッシュメモリの制御方法
US11036639B2 (en) Cache apparatus and method that facilitates a reduction in energy consumption through use of first and second data arrays
US20110167223A1 (en) Buffer memory device, memory system, and data reading method
JP5319049B2 (ja) キャッシュシステム
JP2007156821A (ja) キャッシュシステム及び共用2次キャッシュ
WO2005121970A1 (en) Title: system and method for canceling write back operation during simultaneous snoop push or snoop kill operation in write back caches
US6976130B2 (en) Cache controller unit architecture and applied method
US20060277351A1 (en) Method and system for efficient cache locking mechanism
JP2001249846A (ja) キャッシュメモリ装置及びデータ処理システム
JP7311959B2 (ja) 複数のデータ・タイプのためのデータ・ストレージ
IL303710A (en) A technique for tracking after changing the content of memory areas

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120821

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121019

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121126

R150 Certificate of patent or registration of utility model

Ref document number: 5157424

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151221

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350