(57)【要約】【課題】  システムバスの使用効率を向上させることのできるキャッシュメモリのライトバック装置を提供する。【解決手段】  ライトバック装置１は、キャッシュメモリ１００のインデックスを走査してダーティなキャッシュラインを検出するライトバック制御部２と、システムバス２００を監視してシステムバス２００のアイドル状態を検出するスヌープ部４と、ライトバック制御部２によりダーティであることが検出されたキャッシュラインのデータを一時保存し、その後、スヌープ部４によりシステムバス２００がアイドル状態であることが検出されたときに、システムバス２００を介してメインメモリ３００へ１ワードごとにシングルライトでライトバックするシングルライトバックライトバッファー部５とを有する。【選択図】  図１
2006091995.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュメモリのキャッシュラインを走査してダーティなキャッシュラインを検出するライトバック制御部と、
システムバスを監視してアイドル状態を検出するスヌープ部と、
前記ライトバック制御部が検出したダーティなキャッシュラインのデータを一時的に保存し、前記スヌープ部が前記システムバスのアイドル状態を検出したときに前記保存したデータを前記システムバスを介して前記キャッシュラインのワードごとにシングルライトでメインメモリへ書き込むシングルライトバックライトバッファー部と
を具備することを特徴とするキャッシュメモリのライトバック装置。
【請求項２】
前記ライトバック制御部が、キャッシュラインをインデックス順に順次走査することを特徴とする請求項１に記載のキャッシュメモリのライトバック装置。
【請求項３】
前記ライトバック制御部が、キャッシュラインをランダムに走査することを特徴とする請求項１に記載のキャッシュメモリのライトバック装置。
【請求項４】
新たに書き込みの行われたキャッシュラインのインデックスを順次格納するＦＩＦＯを有し、ストア命令またはキャッシュメモリのダーティビットのクリア命令の実行時に前記ＦＩＦＯのデータを更新して出力するインデックスキュー部と、
前記インデックスキュー部から出力されたインデックスのキャッシュラインを前記キャッシュメモリから取得するライトバック制御部と、
システムバスを監視してアイドル状態を検出するスヌープ部と、
前記ライトバック制御部が取得した前記キャッシュラインのデータを一時的に保存し、前記スヌープ部が前記システムバスのアイドル状態を検出したときに前記保存したデータを前記システムバスを介して前記キャッシュラインのワードごとにシングルライトでメインメモリへ書き込むシングルライトバックライトバッファー部と
を具備することを特徴とするキャッシュメモリのライトバック装置。
【請求項５】
前記ライトバック制御部が、前記シングルライトバックライトバッファー部によるメインメモリへの書き込みの終わったキャッシュラインのステートをクリーンにすることを特徴とする請求項１乃至４のいずれか１項に記載のキャッシュメモリのライトバック装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリのライトバック装置に関する。
【背景技術】
【０００２】
ライトバック方式のキャッシュメモリシステムでは、キャッシュラインのリプレースが必要になったとき、キャッシュメモリのダーティなラインのデータがメインメモリにライトバックされる。このとき、キャッシュメモリから読み出されたデータはシステムバスを介してメインメモリへ転送される。
【０００３】
ところで、システムバスにはＣＰＵをはじめ、さまざまなデバイスが接続されている。そこで、従来、キャッシュメモリのライトバックの実行にあたっては、システムバスの状態を監視し、システムバスのアイドル期間にライトバックを実行することが行われている。このとき、キャッシュメモリにダーティなラインが複数あるときは、ダーティなラインがなくなるまで連続してライトバックを行うことが提案されている（例えば、特許文献１参照。）。
【０００４】
このような連続してライトバックを行うとき、メインメモリへバーストライトを行うと、メインメモリへのデータの書き込みを効率よく行うことができる。
【０００５】
しかし、一般的にメインメモリの動作速度はＣＰＵに比べてかなり遅い。そのため、バーストライトでメインメモリへのライトバックを行うと、その間動作速度の遅いメインメモリへのアクセスにシステムバスが占有され、システムバスの使用効率が悪化するという問題があった。
【特許文献１】特開２００２−１０８７０２号公報（第７−８ページ、図４、図５）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
そこで、本発明の目的は、システムバスの使用効率を向上させることのできるキャッシュメモリのライトバック装置を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の一態様によれば、キャッシュメモリのキャッシュラインを走査してダーティなキャッシュラインを検出するライトバック制御部と、システムバスを監視してアイドル状態を検出するスヌープ部と、前記ライトバック制御部が検出したダーティなキャッシュラインのデータを一時的に保存し、前記スヌープ部が前記システムバスのアイドル状態を検出したときに前記保存したデータを前記システムバスを介して前記キャッシュラインのワードごとにシングルライトでメインメモリへ書き込むシングルライトバックライトバッファー部とを具備することを特徴とするキャッシュメモリのライトバック装置が提供される。
【０００８】
また、本発明の別の一態様によれば、新たに書き込みの行われたキャッシュラインのインデックスを順次格納するＦＩＦＯを有し、ストア命令またはキャッシュメモリのダーティビットのクリア命令の実行時に前記ＦＩＦＯのデータを更新して出力するインデックスキュー部と、前記インデックスキュー部から出力されたインデックスのキャッシュラインを前記キャッシュメモリから取得するライトバック制御部と、システムバスを監視してアイドル状態を検出するスヌープ部と、前記ライトバック制御部が取得した前記キャッシュラインのデータを一時的に保存し、前記スヌープ部が前記システムバスのアイドル状態を検出したときに前記保存したデータを前記システムバスを介して前記キャッシュラインのワードごとにシングルライトでメインメモリへ書き込むシングルライトバックライトバッファー部とを具備することを特徴とするキャッシュメモリのライトバック装置が提供される。
【発明の効果】
【０００９】
本発明によれば、ダーティなキャッシュラインのデータをシステムバスがアイドル状態であるときに分散させてシングルライトでメインメモリへライトバックするので、システムバスを効率よく使用することができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施例を図面を参照して説明する。
【実施例１】
【００１１】
図１は、本発明の第１の実施例に係るキャッシュメモリのライトバック装置の構成の例を示すブロック図である。
【００１２】
ライトバック装置１は、キャッシュメモリ１００のインデックスを走査してダーティなキャッシュラインを検出するライトバック制御部２と、システムバス２００を監視してシステムバス２００のアイドル状態を検出するスヌープ部４と、ライトバック制御部２によりダーティであることが検出されたキャッシュラインのデータを一時保存し、その後、スヌープ部４によりシステムバス２００がアイドル状態であることが検出されたときに、システムバス２００を介してメインメモリ３００へ１ワードごとにシングルライトでライトバックするシングルライトバックライトバッファー部５とを有する。
【００１３】
このライトバック装置１は、次のように動作する。
【００１４】
ライトバック制御部２は、キャッシュラインのインデックス値を１ずつインクリメントしてカウントするカウンタ３を有しており、カウンタ３の出力に従ってキャッシュメモリ１００のキャッシュラインを順次アクセスし、アクセスしたキャッシュラインのステートを読み出す。そして、ステートがダーティであれば、そのキャッシュラインのデータをシングルライトバックライトバッファー部５に保存するようにシングルライトバックライトバッファー部５へ指示する。また、ライトバック制御部２は、ライトバックの終わったキャッシュラインのステートをクリーンにする。
【００１５】
スヌープ部４は、システムバス２００を監視し、システムバス２００がアイドル状態であることを検出すると、システムバス２００がアイドル状態であることをシングルライトバックライトバッファー部５へ通知する。
【００１６】
シングルライトバックライトバッファー部５は、ライトバック制御部２の指示に従ってキャッシュメモリ１００のダーティなキャッシュラインのデータを一時保管する。そして、スヌープ部４からシステムバス２００がアイドル状態であることを通知されると、一時保管しているキャッシュラインのデータの１ワード分をシングルライトで、システムバス２００を介してメインメモリ３００へ書き込む。
【００１７】
このとき、一時保管しているキャッシュラインのデータが複数ワード分あるときは、１ワード分の書き込みが終わるごとに、シングルライトバックライトバッファー部５は、システムバス２００への他のデバイスからのアクセス要求がないかをスヌープ部４を介して確認する。他のデバイスからのアクセス要求があるときは、その時点でメモリ３００への書き込みを終了する。そして、次にシステムバス２００がアイドル状態になったときにメモリ３００への書き込みを再開する。
【００１８】
このようにして、シングルライトバックライトバッファー部５は、一時保管しているキャッシュラインの総てのワードを１つのバスアイドル期間で書き込めないときは、データを複数のバスアイドル期間に分割してメインメモリ３００へ書き込む。
【００１９】
このような本実施例のキャッシュメモリのライトバック装置によれば、インデックス順に順次走査されて検出されたダーティなキャッシュラインのデータを、システムバスの複数のアイドル期間に分割して１ワードごとのシングルライトでメインメモリへライトバックすることができる。これにより、メインメモリへのライトバックがシステムバスを長期間占有することがなく、システムバスを効率よく使用することができる。
【実施例２】
【００２０】
図２は、本発明の第２の実施例に係るキャッシュメモリのライトバック装置の構成の例を示すブロック図である。本実施例のライトバック装置１１の構成は、実施例１のライトバック装置と基本的に同じである。そこで、図２において図１と同一の機能を有するブロックには図１と同じ符号を付し、ここではその詳細な説明を省略する。
【００２１】
本実施例のライトバック装置１１は、キャッシュメモリ１００のインデックスを走査してダーティなキャッシュラインを検出するライトバック制御部２１と、スヌープ部４と、シングルライトバックライトバッファー部５とを有する。
【００２２】
ここで、ライトバック制御部２１は、実施例１のライトバック制御部２と同様、キャッシュメモリ１００のキャッシュラインにアクセスし、アクセスしたキャッシュラインのステートを読み出し、ステートがダーティであれば、そのキャッシュラインのデータをシングルライトバックライトバッファー部５に保存するようにシングルライトバックライトバッファー部５へ指示するよう動作する。また、ライトバック制御部２１は、ライトバックの終わったキャッシュラインのステートをクリーンにするよう動作する。
【００２３】
このライトバック制御部２１が実施例１のライトバック制御部２と異なる点は、キャッシュラインへアクセスするためのキャッシュメモリ１００のインデックスの走査に乱数発生器３１の出力を用いる点である。これにより、ライトバック制御部２１は、キャッシュメモリ１００のインデックスをランダムに走査する。すなわち、キャッシュメモリ１００のキャッシュラインはランダムにアクセスされる。
【００２４】
一般に、キャッシュメモリ１００に新しいデータが書き込まれてキャッシュラインがダーティになるのは任意のインデックスでランダムに発生する。一方、ダーティになったキャッシュラインのデータは、あまり時間が経たないうちに、メインメモリ３００へライトバックされることが望まれる。
【００２５】
そこで、本実施例のライトバック制御部２１は、ランダムにキャッシュラインにアクセスし、新たにダーティになったキャッシュラインへ早めにアクセスする確率の増大を図る。
【００２６】
このような本実施例のキャッシュメモリのライトバック装置によれば、ランダムなインデックス順でキャッシュメモリがアクセスされるので、キャッシュラインが長い時間ダーティであることを防止することを可能とする。
【実施例３】
【００２７】
図３は、本発明の第３の実施例に係るキャッシュメモリのライトバック装置の構成の例を示すブロック図である。図３においても、図１と同一の機能を有するブロックには図１と同じ符号を付し、ここではその詳細な説明を省略する。
【００２８】
本実施例のライトバック装置１２は、キャッシュメモリ１００へのストア時のインデックスが順次格納されてダーティなキャッシュラインをアクセスするためのキューを形成するインデックスキュー部６と、インデックスキュー部６から出力されたインデックスのキャッシュラインのデータの取得を制御するライトバック制御部２２と、スヌープ部４と、シングルライトバックライトバッファー部５とを有する。また、ライトバック制御部２２は、ライトバックの終わったキャッシュラインのステートをクリーンにする。
【００２９】
ここで、インデックスキュー部６の内部構成の例と動作について説明する。
【００３０】
図４は、インデックスキュー部６の構成の例を示すブロック図である。
【００３１】
インデックスキュー部６は、ＦＩＦＯ６１と、比較回路６２とを有する。
【００３２】
ＦＩＦＯ６１は、Ｑ０〜Ｑ４の５段のキューを持っており、キャッシュメモリ１００へのストアが行われたときのインデックスがＱ０からＱ４へ向かってシフトされながら順次格納される。したがって、このとき書き込まれるインデックスは、ライトバックの必要なダーティなキャッシュラインのインデックスである。なお、図５ではキューを５段としているが、この段数は５段に限るものではなく、任意の段数とすることができる。
【００３３】
比較回路６２は、新たなインデックスの入力があると、その値とＦＩＦＯ６１に格納されているインデックスの値とを比較する。ＦＩＦＯ６１に格納されているインデックスの値が、新たに入力されたインデックスの値と一致したときは、そのインデックスのキャッシュラインは最新のデータを持つことになるのでキューの位置をＱ０へ変更する必要がある。そのため、比較回路６２は、今まで該当のインデックスを格納していた段へ無効化信号を出力する。
【００３４】
また、比較回路６２は、キャッシュメモリ１００のダーティビットがクリアされたときも、そのダーティビットがクリアされたキャッシュラインのインデックスの値と、ＦＩＦＯ６１に格納されているインデックスの値とを比較する。その結果、その値が一致すると、ＦＩＦＯ６１の該当のインデックスを格納していた段へ無効化信号を出力する。
【００３５】
ＦＩＦＯ６１は、比較回路６２から無効化信号が出力されると、その段の内容を削除すし、その空いた段へ向かってキューを１つずつシフトさせる。
【００３６】
一方、比較回路６２から無効化信号が出力されないときは、ＦＩＦＯ６１のキューは、そのまま出力側へシフトし、Ｑ４に格納されていたインデックスがインデックスキュー部６の出力として出力される。このようにして、インデックスキュー部６からはキャッシュラインがダーティになった順番に、そのキャッシュラインのインデックスが出力される。
【００３７】
ライトバック制御部２２は、インデックスキュー部６からのインデックスが入力されると、そのインデックスのキャッシュラインはダーティであるので、そのキャッシュラインのデータを保存するようにシングルライトバックライトバッファー部５へ指示する。
【００３８】
そして、シングルライトバックライトバッファー部５は、スヌープ部４がシステムバス２００のアイドル状態を検出したときに、保存したデータをメインメモリ３００へシングルライトでライトバックする。
【００３９】
このような本実施例のキャッシュメモリのライトバック装置によれば、ダーティなキャッシュラインがダーティになった順番にライトバックされるので、効率的なライトバックが可能となる。
【００４０】
なお、上述の各実施例において、ライトバック装置が接続されるキャッシュメモリは、シングルポートのメモリであってもマルチポートのメモリであってもよいが、マルチポートのメモリであった場合には、その内の１つのポートをライトバック装置接続専用とすることにより、ライトバック装置のキャッシュラインへのアクセスを容易に行うようにすることができる。
【図面の簡単な説明】
【００４１】
【図１】本発明の第１の実施例に係るキャッシュメモリのライトバック装置の構成の例を示すブロック図。
【図２】本発明の第２の実施例に係るキャッシュメモリのライトバック装置の構成の例を示すブロック図。
【図３】本発明の第３の実施例に係るキャッシュメモリのライトバック装置の構成の例を示すブロック図。
【図４】本発明の第３の実施例に係るキャッシュメモリのライトバック装置に含まれるインデックスキュー部の構成の例を示すブロック図。
【符号の説明】
【００４２】
１、１１、１２  ライトバック装置
２、２１、２２  ライトバック制御部
３  カウンタ
３１  乱数発生器
４  スヌープ部
５  シングルライトバックライトバッファー部
６  インデックスキュー部
６１  ＦＩＦＯ
６２  比較回路
【図１】
2006091995.tif 000003
【図２】
2006091995.tif 000004
【図３】
2006091995.tif 000005
【図４】
2006091995.tif 000006