(57)【要約】      （修正有）【課題】メインメモリへの書き戻しの再発生を抑え、この書き戻し時にシステムバスが占領されることを防ぎ、キャッシュのオーバーヘッドを可能な限り防ぐ。【解決手段】キャッシュメモリ書き戻し装置１は、メインメモリおよびキャッシュメモリと接続されており、所定のサイクル毎に、キャッシュメモリのキャッシュラインを走査することによって、ダーティラインを検出する検出部１２ｂと、検出されたダーティラインを一時記憶するバッファ部１７と、所定のサイクル毎に、検出されたダーティラインのカウント値を増やすカウンタ部１２ａと、カウント値が閾値よりも大きくなるのに応じて、検出されたダーティラインをメインメモリへ書き戻す監視部１４とを備える。【選択図】図１
2015210552.tif 000002
【特許請求の範囲】
【請求項１】
メインメモリが記憶する情報の少なくとも一部を一時記憶可能なキャッシュメモリと接続されたキャッシュメモリ書き戻し装置であって、
所定のサイクル毎に、前記キャッシュメモリのキャッシュラインを走査することによって、ダーティラインを検出する検出部と、
前記検出されたダーティラインを一時記憶するバッファ部と、
前記所定のサイクル毎に、前記検出されたダーティラインのカウント値を増やすカウンタ部と、
前記カウント値が閾値よりも大きくなるのに応じて、前記検出されたダーティラインを前記メインメモリへ書き戻す監視部
とを備えることを特徴とするキャッシュメモリ書き戻し装置。
【請求項２】
自装置と前記メインメモリとを接続するバスの通信状態を監視するスヌープ部を更に備え、
前記監視部は、前記スヌープ部から前記バスの通信状態が混雑していないことを通知された際に、前記検出されたダーティラインを前記メインメモリへ書き戻す
ことを特徴とする請求項１に記載のキャッシュメモリ書き戻し装置。
【請求項３】
前記検出されたダーティラインを一時記憶する前に、前記検出されたダーティラインが前記バッファ部に記憶済みか否かを判断し、記憶済みでない場合には、前記検出されたダーティラインを前記バッファ部に一時記憶するよう制御する転送制御部を更に含むことを特徴とする請求項１に記載のキャッシュメモリ書き戻し装置。
【請求項４】
請求項１乃至３のいずれか１項に記載のキャッシュメモリ書き戻し装置と、
前記メインメモリと、前記キャッシュメモリと、前記バス
とを備え、
前記キャッシュメモリ書き戻し装置は、前記キャッシュメモリと接続されており、
前記キャッシュメモリ書き戻し装置は、前記バスを介して、前記キャッシュメモリと前記メインメモリとの同期をとる
ことを特徴とするキャッシュメモリ書き戻しシステム。
【請求項５】
メインメモリが記憶する情報の少なくとも一部を一時記憶可能なキャッシュメモリと接続されたキャッシュメモリ書き戻し装置におけるキャッシュメモリ書き戻し方法であって、
所定のサイクル毎に、前記キャッシュメモリのキャッシュラインを走査することによって、ダーティラインを検出し、
前記検出されたダーティラインをバッファ部に一時記憶し、
前記所定のサイクル毎に、前記検出されたダーティラインのカウント値を増やし、
前記カウント値が閾値よりも大きくなるのに応じて、前記検出されたダーティラインを前記メインメモリへ書き戻す
ことを特徴とするキャッシュメモリ書き戻し方法。
【請求項６】
更に、前記キャッシュメモリ書き戻し装置と前記メインメモリとを接続するバスの通信状態を監視し、その監視において前記バスの通信状態が混雑していないことを検知した際に、前記検出されたダーティラインを前記メインメモリへ書き戻す
ことを特徴とする請求項５に記載のキャッシュメモリ書き戻し方法。
【請求項７】
前記検出したダーティラインを一時記憶する前に、前記検出したダーティラインが前記バッファ部に記憶済みか否かを判断し、記憶済みでない場合には、前記検出されたダーティラインを前記バッファ部に一時記憶することを特徴とする請求項５に記載のキャッシュメモリ書き戻し方法。
【請求項８】
メインメモリが記憶する情報の少なくとも一部を一時記憶可能なキャッシュメモリと接続された装置の動作を制御するコンピュータによって、
所定のサイクル毎に、前記キャッシュメモリのキャッシュラインを走査することによって、ダーティラインを検出する機能と、
前記検出されたダーティラインをバッファ部に一時記憶する機能と、
前記所定のサイクル毎に、前記検出されたダーティラインのカウント値を増やす機能と、
前記カウント値が閾値よりも大きくなるのに応じて、前記検出されたダーティラインを前記メインメモリへ書き戻す機能とを
実現させるキャッシュメモリ書き戻しプログラム。
【請求項９】
前記装置と前記メインメモリとを接続するバスの通信状態を監視する機能を更に備え、
前記書き戻す機能は、前記監視する機能によって前記バスの通信状態が混雑していないことを通知された際に、前記検出されたダーティラインを前記メインメモリへ書き戻す
ことを特徴とする請求項８に記載のキャッシュメモリ書き戻しプログラム。
【請求項１０】
前記検出されたダーティラインを一時記憶する前に、前記検出されたダーティラインが前記バッファ部に記憶済みか否かを判断し、記憶済みでない場合には、前記検出されたダーティラインを前記バッファ部に一時記憶するよう制御する機能
を更に備える請求項８に記載のキャッシュメモリ書き戻しプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ライトバック方式においてキャッシュメモリのデータをメインメモリに書き戻すキャッシュメモリ書き戻し装置等に関する。
【背景技術】
【０００２】
CPU（Central Processing Unit）の動作速度は、メモリのアクセス速度の向上に比べ、著しく向上している。このようなCPUの性能を最大限発揮させるためには、キャッシュメモリによるアクセス待ち時間の改善が必須である。
【０００３】
CPUでの命令処理において、必要なデータがキャッシュメモリに存在する場合（即ちキャッシュヒットした場合）は、単にキャッシュメモリからデータを読み出してCPUに送れば良い。しかしCPUでの命令処理に必要なデータがキャッシュメモリに存在しない場合（即ちキャッシュミスした場合）は、メインメモリから対象データを転送し、キャッシュラインを置き換えるリプレイス処理が必要となる。アクセス速度の向上において問題となるのは、キャッシュミスが発生した場合である。この場合の制御手法は、キャッシュメモリへの書き込み制御方式の違いと深く関わる。
【０００４】
キャッシュメモリへの書き込み制御は、ライトスルー方式とライトバック方式の２通りが知られている。ライトスルー方式は、書き込み時にキャッシュメモリとメインメモリとの両方のデータを更新する手法である。この方式は、常に最新のデータがメインメモリに書き込まれるので、同期を考慮する必要がないが、キャッシュメモリとメインメモリ間のバスが混雑するので、メインメモリへの書き込み待ち時間が発生するという欠点がある。ライトバック方式は、書き込み時にキャッシュメモリのみを更新し、対象キャッシュラインがリプレイスされるときにメインメモリを更新する手法である。この方式は、高速にデータを書き込むことが可能となるが、一定期間キャッシュメモリとメインメモリとが非同期となる。そこで、キャッシュメモリに格納される所定の大きさの単位データ（以下、本願においてキャッシュラインと記載）毎に、ダーティ（Dirty）ビットを付す。このダーティビットはキャッシュラインが更新されていることを示すフラグである。制御装置は、このダーティビットを目印として、キャッシュメモリとメインメモリとの間のキャッシュラインを適宜同期させる。一般に、キャッシュメモリとメインメモリとが同期している状態をクリーン（Clean）、非同期の状態をダーティと呼ぶ。
【０００５】
ライトバック方式では、キャッシュラインのリプレイスが必要になったとき、ダーティビットが付与されたキャッシュライン（以下「ダーティライン」と記載）がメインメモリに書き戻される。このとき、キャッシュメモリから書き戻されるダーティラインは、システムバスを介してメインメモリへ転送される。キャッシュメモリの書き戻しは、システムバスの状態を監視しながら、システムバスを流れるデータの送受信量が少ないアイドル期間に実行される。
【０００６】
特許文献１は、キャッシュメモリにダーティラインが複数ある場合は、この書き戻し実行時に、ダーティラインがなくなるまで連続して書き戻すことで、システムの性能低下を軽減する技術を開示している。
【０００７】
特許文献２は、システムバスのアイドル期間に、ダーティラインを分散させてメインメモリへ書き戻すことで、システムバスを効率良く使用する手法を開示している。
【０００８】
特許文献３は、キャッシュメモリ内の使用頻度の低いデータを効率よく主メモリに書き戻すことで、CPUの負担を軽減する手法を開示している。
【０００９】
特許文献４は、電池によってバックアップされた外部メモリが、ライトバック型のキャッシュを用いることで、キャッシュアクセスを高速に行う手法を開示している。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開2002-108702号公報
【特許文献２】特開2006-91995号公報
【特許文献３】特開2005-092311号公報
【特許文献４】特開2008-083904号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
特許文献１の手法では、連続してメインメモリへの書き戻しを行うと、その間動作速度の遅いメインメモリへのアクセスによってシステムバスが占有されるので、システムバスの使用効率が悪化するという問題がある。この原因は、一般的なメインメモリの動作速度が、CPUに比べてかなり遅いからである。
【００１２】
特許文献２の手法では、書き戻しが完了した結果、キャッシュラインがクリーンとなっても、CPUにより再更新されるとダーティとなり、再度メインメモリへの書き戻しが発生する。そのため、あるキャッシュラインが頻繁に更新される場合、書き戻しによるシステムバスの占有頻度が高くなるので、システムバスの使用効率が悪化する問題がある。
【００１３】
特許文献３の手法では、CPUからキャッシュへの書き込みアクセス時に、キャッシュライン毎の時刻情報を更新する必要があるので、キャッシュのオーバーヘッドが生じるという問題がある。
【００１４】
特許文献４の手法では、カウンタの計算値が規定値以上になると、この規定値以上となったライン番号の情報を基に、キャッシュメモリからメインメモリへキャッシュラインの書き戻しが行われる。この場合、カウンタの計算値が規定値に達するまでに、キャッシュメモリ内の該当データがリプレイスされてダーティからクリーンになっていることも考えられる。しかしこのような状態であっても、その状態をコヒーレンス維持回路は検出できずにキャッシュへ書き戻し指令を送信してしまい、メインメモリに同じデータを書き込むという問題がある。
【００１５】
本発明は、上記の問題点を解決するべくなされた。本発明は、ライトバック方式においてキャッシュメモリのデータをメインメモリに書き戻す時に、メインメモリへのアクセスにシステムバスが占領されることを防ぎ、メインメモリへの書き戻しの再発生を可能な限り抑え、キャッシュのオーバーヘッドを生じさせないキャッシュメモリ書き戻し装置等を提供することを主たる目的とする。
【課題を解決するための手段】
【００１６】
上記課題を解決するため、本発明の第１の観点は、メインメモリが記憶する情報の少なくとも一部を一時記憶可能なキャッシュメモリと接続されたキャッシュメモリ書き戻し装置であって、所定のサイクル毎に、キャッシュメモリのキャッシュラインを走査することによって、ダーティラインを検出する検出部と、検出されたダーティラインを一時記憶するバッファ部と、所定のサイクル毎に、検出されたダーティラインのカウント値を増やすカウンタ部と、カウント値が閾値よりも大きくなるのに応じて、検出されたダーティラインをメインメモリへ書き戻す監視部とを備えるキャッシュメモリ書き戻し装置である。
【００１７】
本発明の第２の観点は、上記に記載のキャッシュメモリ書き戻し装置と、メインメモリと、キャッシュメモリと、バスとを備え、キャッシュメモリ書き戻し装置は、キャッシュメモリと接続されており、キャッシュメモリ書き戻し装置は、バスを介して、キャッシュメモリとメインメモリとの同期をとるキャッシュメモリ書き戻しシステムである。
【００１８】
本発明の第３の観点は、メインメモリが記憶する情報の少なくとも一部を一時記憶可能なキャッシュメモリと接続されたキャッシュメモリ書き戻し装置におけるキャッシュメモリ書き戻し方法であって、所定のサイクル毎に、キャッシュメモリのキャッシュラインを走査することによって、ダーティラインを検出し、検出されたダーティラインをバッファ部に一時記憶し、所定のサイクル毎に、検出されたダーティラインのカウント値を増やし、カウント値が閾値よりも大きくなるのに応じて、検出されたダーティラインをメインメモリへ書き戻すキャッシュメモリ書き戻し方法である。
【００１９】
本発明の第４の観点は、メインメモリが記憶する情報の少なくとも一部を一時記憶可能なキャッシュメモリと接続された装置の動作を制御するコンピュータによって、所定のサイクル毎に、キャッシュメモリのキャッシュラインを走査することによって、ダーティラインを検出する機能と、検出されたダーティラインをバッファ部に一時記憶する機能と、所定のサイクル毎に、検出されたダーティラインのカウント値を増やす機能と、カウント値が閾値よりも大きくなるのに応じて、検出されたダーティラインをメインメモリへ書き戻す機能とを実現させるキャッシュメモリ書き戻しプログラムである。
【発明の効果】
【００２０】
本発明によれば、ライトバック方式においてキャッシュメモリのデータをメインメモリに書き戻す時に、メインメモリへのアクセスにシステムバスが占領されることを防ぎ、メインメモリへの書き戻しの再発生を可能な限り抑え、キャッシュのオーバーヘッドを可能な限り防ぐことができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の第一の実施形態に係るキャッシュメモリ書き戻し装置の構成を示す図である。
【図２】本発明の第二の実施形態に係るキャッシュメモリ書き戻しシステムの構成を示す図である。
【図３】バッファ部内のデータ構造を示す図である。
【図４Ａ】キャッシュメモリ書き戻し装置の動作を示すフロー図である。
【図４Ｂ】キャッシュメモリ書き戻し装置の動作を示すフロー図である。
【発明を実施するための形態】
【００２２】
次に図面を参照して、本発明の実施形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。ただし、図面は本発明の実施形態における構成を模式的に表している。更に以下に記載される本発明の実施形態は一例であり、その本質を同一とする範囲において適宜変更可能である。
＜第一の実施形態＞
（キャッシュメモリ書き戻し装置）
第一の実施形態に係るキャッシュメモリ書き戻し装置１は、メインメモリおよびメインメモリの内容を一部記憶するキャッシュメモリと接続されている。キャッシュメモリ書き戻し装置１は、検出部１２ｂ、バッファ部１７、カウンタ部１２ａおよび監視部１４を備えている。
【００２３】
検出部１２ｂは、所定のサイクル毎に、キャッシュメモリのキャッシュラインを走査することによって、ダーティラインを検出する。バッファ部１７は、検出されたダーティラインを一時記憶する。カウンタ部１２ａは、所定のサイクル毎に、検出されたダーティラインのカウント値を増やす。監視部１４は、カウント値が閾値よりも大きくなるのに応じて、検出されたダーティラインをメインメモリへ書き戻す。
【００２４】
第一の実施形態に係るキャッシュメモリ書き戻し装置１は、カウント値が所定の閾値を超えたダーティラインを、ヒット率が高くメインメモリと同期すべきキャッシュラインであると判断し、メインメモリへ書き戻す。これによりメインメモリへのアクセスの為にシステムバスが占領されることを防ぎ、メインメモリへの書き戻しの再発生を可能な限り抑え、キャッシュのオーバーヘッドを可能な限り防ぐことができる。
＜第二の実施形態＞
（キャッシュメモリ書き戻しシステム）
第二の実施形態に係るキャッシュメモリ書き戻しシステム１００は、図２に示すように、キャッシュメモリ書き戻し装置１１、キャッシュメモリ１０１、システムバス１０５およびメインメモリ１０６等を備える。
【００２５】
キャッシュメモリ１０１は、メインメモリ１０６と図示しないCPUの間に設けられる高速小容量記憶装置である。
【００２６】
システムバス１０５は、キャッシュメモリ書き戻しシステム１００の各部がデータを送受信するための共通の経路となる通信バスである。
【００２７】
メインメモリ１０６は、図示しないCPUが演算処理するデータやプログラムを記憶する一次記憶装置である。メインメモリ１０６は、CPUから直接読み書きすることができる。
【００２８】
キャッシュメモリ書き戻し装置１１は、書き戻し制御部１０２、スヌープ部１０３、データ保存監視部１０４およびバッファ部１０７を備える。
【００２９】
書き戻し制御部１０２は、カウンタ部１０２ａ、ダーティ検索部１０２ｂ、データ転送制御部１０２ｃおよびステート制御部１０２ｄを備える。
【００３０】
カウンタ部１０２ａは、キャッシュメモリ１０１において各キャッシュラインが一定期間連続して存在したことを示す値をカウントする。例えば、カウンタ部１０２ａは、所定のライン走査のサイクル毎に、カウンタ値（計測値）を１ずつ増加する。増加されたカウント値は、バッファ部１０７にて保存される。
【００３１】
ダーティ検索部１０２ｂは、キャッシュメモリ１０１の各キャッシュラインのステート（状態）を走査し、その結果を基にダーティラインを検出する。
【００３２】
データ転送制御部１０２ｃは、検出されたダーティラインを転送すべきか判断し、転送すべき場合にはバッファ部１０７に転送する。
【００３３】
ステート制御部１０２ｄは、書き戻し制御部１０２の指示に従い、キャッシュラインの現在のステートをクリーン又はダーディに変更する。
【００３４】
スヌープ部１０３は、システムバス１０５を監視し、アイドル状態が検出されると、バッファ部１０７に通知する。
【００３５】
データ保存監視部１０４は、キャッシュメモリ１０１において一定期間更新されていないダーティラインが存在するか監視する。更にデータ保存監視部１０４は、データ比較部１０４ａと書き戻し指示部１０４ｂを備える。データ比較部１０４ａは、キャッシュメモリ１０１内のキャッシュラインと、バッファ部１０７内のキャッシュラインとを順次比較することにより、これらのラインに格納されているデータが互いに一致するかを判断する。書き戻し指示部１０４ｂは、バッファ部１０７に対し、キャッシュメモリ１０１において一定期間更新されていないダーティラインを、システムバス１０５を介して、メインメモリ１０６へ書き戻しするよう指示する。書き戻し指示部１０４ｂは、この書き戻しのとき、ダーティラインを適当な大きさのデータに分割し、分割されたデータを１ワード毎（シングルライト方式）にメインメモリ１０６へ書き戻しするよう指示する。
【００３６】
バッファ部１０７は、キャッシュライン毎に、図３に示すように、キャッシュラインのインデックス値、ステートフラグ、キャッシュラインのデータおよびカウント値を一時的に保存する。尚、本実施形態においてはバッファ部１０７に格納されるキャッシュラインは原則的にダーティラインである。
【００３７】
インデックス値とは、各キャッシュラインが自らを他のキャッシュラインと識別可能な値である。カウント値とは、同一インデックス値のダーティラインがこれまでに何サイクル分キャッシュメモリ１０１に存在していたか、その時間（期間）を表す計測値である。
【００３８】
尚、上述した書き戻し制御部１０２、スヌープ部１０３およびデータ保存監視部１０４の各部およびこれらの内の各部は、機能ブロック単位のプログラムを表している。これらは実際には、図示しないコンピュータのＣＰＵ、図示しないＲＯＭ（Read Only Memory）や図示しないＲＡＭ(Random Access Memory)などに格納されている。図示しないＣＰＵがこれらのプログラムを適宜演算処理することでこれらの機能は実行される。
（キャッシュメモリ書き戻しシステムの動作）
次にキャッシュメモリ書き戻しシステム１００の動作について図４Ａおよび図４Ｂに示すフローチャートを参照して説明する。
【００３９】
最初にカウント値が閾値に達するまでのループＬ１の動作について図４Ａを用いて説明する。
【００４０】
ステップＳ２０１において、図２に示す書き戻し制御部１０２のカウンタ部１０２ｂは、カウント値を初期値、例えば０に設定する。ダーティ検索部１０２ｂは、キャッシュメモリ１０１内の複数のキャッシュラインにアクセスし、そのステートをチェックする。
【００４１】
ステップＳ２０２において、Ｓ２０１におけるチェックの結果、ダーティ検索部１０２は、ステートがダーティとなっているキャッシュラインを発見する。ステップＳ２０３において、データ転送制御部１０２ｃは、そのダーティラインを表すインデックス値を読み出し、読み出したインデックス値が、バッファ部１０７に保存されているインデックス値と同じか否かを判断する。
【００４２】
インデックス値が同値である場合、ステップＳ２０４において、データ転送制御部１０２ｃは、当該ダーティラインがバッファ部１０７に保存済みと判断し、このキャッシュラインを破棄する。
【００４３】
インデックス値が異値である場合、ステップＳ２０５において、データ転送制御部１０２ｃは、当該ダーティラインはバッファ部１０７に未保存と判断する。そしてこの場合、データ転送制御部１０２ｃは、バッファ部１０７に、読み出したダーティラインとそのインデックス値とを送信し、一時記憶させる。このときステップＳ２０６において、カウンタ部１０２ａは、バッファ部１０７内のこのインデックス値に対応するカウンタ値を１増加させる。
【００４４】
ステップＳ２０１〜Ｓ２０６を一サイクルとし、いずれかのカウンタ値が予め定められた閾値よりも大きくなるまでの間、このサイクルが繰り返し行われる。カウンタ値を参照することで、何サイクルの間、当該インデックス値に対応するダーティラインがキャッシュメモリ１０１に存在するかが判断できる。即ち、書き戻し制御部１０２は、キャッシュメモリ１０１内のどのダーティラインのヒット率が高いかが識別できる。ヒット率の高いダーティラインは早めにメインメモリ１０６と同期を取ることが好ましい。
【００４５】
次にいずれかのカウンタ値が予め定められた閾値より大きくなった場合について図４Ｂを参照して説明する。
【００４６】
ステップＳ２０７において、カウンタ部１０２ａは、閾値より大きいカウンタ値に対応するインデックス値をデータ保存監視部１０４に通知する。データ保存監視部１０４は、閾値より大きいインデックス値およびこのインデックス値に対応するキャッシュラインをバッファ部１０７から受信する。
【００４７】
ステップＳ２０８において、データ保存監視部１０４のデータ比較部１０４ａは、バッファ部１０７から受信したインデックス値を基に、対象となるキャッシュラインをキャッシュメモリ１０１から読み出す。またデータ比較部１０４ａは、読み出されたキャッシュラインと、バッファ部１０７から受信したキャッシュラインとが一致するか判断すると共に、読み出されたキャッシュラインのステートがダーティであることを確認する。
【００４８】
データ一致の確認の必要性について説明する。例えば、ダーティライン(キャッシュラインAとする)がバッファ部１０７に格納されている間に、図示しないCPUがキャッシュメモリ１０１のラインAを書き換えた場合、ラインAのステートはダーティのままだが、キャッシュラインのデータは既に別のデータに変わっている。この時、同期処理は不要となる。
【００４９】
ステートの再確認の必要性について説明する。例えば、キャッシュラインAのデータをバッファ部１０７に格納中、DMA(Direct Memory Access)転送等で、図示しないCPUがキャッシュラインAのデータをメインメモリ１０６へ書き戻しした場合、ラインAのステートはクリーンに変わる。この時、同期処理は不要となる。
【００５０】
よって、Ｓ２０３においてデータが一致しなかった、又は書き戻しの対象となるキャッシュライン（以下、対象キャッシュラインと記載）のステートがクリーンの場合に、ステップＳ２０９において、書き込み指示部１０４ｂは、バッファ部１０７上の当該キャッシュラインおよびそのインデックス値を破棄させ、更に書き戻し制御部１０２に対しカウンタのリセットを要求する。
【００５１】
ステートがダーティで且つＳ２０３においてデータが一致した場合、対象キャッシュラインが一定時間更新されていないことを意味する。このため、ステップＳ２１０において、書き込み指示部１０４ｂは、バッファ部１０７の当該対象キャッシュラインを、メインメモリ１０６に書き戻しさせることを決定する。
【００５２】
ステップＳ２１１において、スヌープ部１０３は、システムバス１０５を監視し、システムバスのアイドル期間を発見すると、データ保存監視部１０４へ通知する。
【００５３】
ステップＳ２１２において、データ保存監視部１０４の書き込み指示部１０４ｂは、スヌープ部１０３からの通知を受信する。受信後、書き込み指示部１０４ｂは、システムバス１０５を介して、バッファ部１０７内の対象キャッシュラインを適当な大きさのデータに分割し、分割されたデータを１ワード毎にメインメモリ１０６へ書き戻す。書き戻しが完了したら、書き戻し制御部１０４へ完了を通知する。
【００５４】
ステップＳ２１３において、書き戻し制御部１０４は、書き込み指示部１０４ｂからの完了通知を受信すると、これを書き戻し制御部１０２に通知する。通知された書き戻し制御部１０２のステート制御部１０２ｄは、対象となるキャッシュラインのステートをクリーンに変更する。
【００５５】
上述のように、本発明の第二の実施形態によれば、データ転送制御部１０２ｃが、カウント値が閾値より大きくなったダーティラインを、ヒット率が高くメインメモリと同期すべきキャッシュラインであると判断する。この後、書き込み指示部１０４ｂが、同期すべきダーティラインを適当な大きさのデータに分割し、システムバスのアイドル期間に、分割されたデータを１ワード毎にメインメモリ１０６へ書き戻す。これにより、メインメモリ１０６への書き戻しによりシステムバス１０５の占有頻度を下げ、システムバス１０５の使用効率を高めることができる。更に、本実施形態によれば、メインメモリ１０６への書き戻しの再発生を可能な限り抑え、キャッシュのオーバーヘッドを可能な限り防ぐことができる。
【符号の説明】
【００５６】
１、１１    キャッシュメモリ書き戻し装置
１００    キャッシュメモリ書き戻しシステム
１０１    キャッシュメモリ
１０２    書き戻し制御部
１０２ａ    カウンタ部
１０２ｂ    ダーティ検索部
１０２ｃ    データ転送制御部
１０２ｄ    ステート制御部
１０３    スヌープ部
１０４    データ保存監視部
１０４ａ    データ比較部
１０４ｂ    書き込み指示部
１０５    システムバス
１０６    メインメモリ
１０７    バッファ部
【図１】
2015210552.tif 000003
【図２】
2015210552.tif 000004
【図３】
2015210552.tif 000005
【図４Ａ】
2015210552.tif 000006
【図４Ｂ】
2015210552.tif 000007