メモリのキャッシュについて

キャッシュとは

各記憶装置間の速度ギャップを埋めて、実行の待ち時間によるロスを防ぐための手法。

各記憶装置のアクセス速度を図に表すと下のようなイメージになる。 Image from Gyazo

上図の越えられない壁(速度ギャップ)を軽減させることができれば、全体の処理効率が良くなる。

そのための手法が「キャッシュ」。

キャッシュメモリ

レジスタとメモリの間でキャッシュできるようにするための仕組み。

Image from Gyazo

CPUに内蔵できるキャッシュメモリの容量は僅かなので、CPUの外側に「SRAM」を使用して増設することができる!

レジスタからメモリへの書き込み

レジスタからキャッシュメモリへ書き込みを行う場合、「データの整合性」を保つためにメモリ(主記憶装置)への書き込みも行う必要がある。

メモリ(主記憶装置)を書き換える方式は以下の2つがある。

ライトスルー方式

キャッシュメモリへ書き込みを行う際、同時にメモリへも書き込みを行う。 Image from Gyazo

ライトバック方式

レジスタからはキャッシュメモリへのみ書き込みを行う。 キャッシュメモリからデータが追い出された時にメモリへ書き込みを行う。 Image from Gyazo

ヒット率と実効アクセス時間

ヒット率・・・目的とするデータがキャッシュメモリに入っている確率

実効アクセス時間・・・キャッシュメモリを利用したコンピュータの平均的なアクセス時間

実効アドレスは以下に式で求める事ができる。

キャッシュメモリアクセス時間 x ヒット率 + メモリのアクセス時間 x ( 1 - ヒット率)