キャッシュメモリにおけるスラッシング
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/08/18 15:30 UTC 版)
「スラッシング」の記事における「キャッシュメモリにおけるスラッシング」の解説
キャッシュメモリを使用するパターンによっては、頻繁に同じキャッシュラインを別の用途(つまり別の物理アドレスに対応する内容)で置き換えてしまう現象が発生する。これをキャッシュメモリのスラッシング(キャッシュスラッシング)と呼ぶ。例えば、128Kバイトの配列 A の各要素に何らかの演算を施して、同じサイズの配列 B に結果を格納していく場合を考えてみよう。一般に、A[0]からデータを読み込むとメモリ上の A[0] を含むある程度のサイズの内容がキャッシュに取り込まれる。これによって A[1]、A[2]とアクセスしたときにキャッシュメモリにヒットしてCPUがその性能をフルに発揮できるようになる。しかしここで、A と B が物理メモリ上で隣接かつ連続していて、キャッシュメモリも 128Kバイトだったとする(仮想記憶方式では現実には起こりにくいが)。プログラムは A の先頭からデータを取り出し、計算を施して B の先頭に書き込む。しかし、この仮定のような配置であった場合は A から読み込んだデータと B に書き込むデータはキャッシュメモリ上の同じ位置(ライン)になってしまうため、ループするたびに二回主記憶にアクセスせざるを得なくなり、性能は劇的に低下する。仮想記憶方式であったとしても、キャッシュが仮想インデックス方式であった場合は同じことが容易に発生する。このとき、キャッシュメモリがセットアソシアティブ方式やフルアソシアティブ方式であれば、この問題をほぼ回避できる。
※この「キャッシュメモリにおけるスラッシング」の解説は、「スラッシング」の解説の一部です。
「キャッシュメモリにおけるスラッシング」を含む「スラッシング」の記事については、「スラッシング」の概要を参照ください。
- キャッシュメモリにおけるスラッシングのページへのリンク