ダイレクトマップ方式 【direct mapping cache】 ダイレクトマッピング方式
概要
ダイレクトマップ方式(direct mapping cache)とは、コンピュータ内部のメインメモリ(主記憶装置)とキャッシュメモリの間でデータ格納位置の対応付けを行う方式の一つで、メインメモリのアドレスに一定の計算を行うことで直にキャッシュメモリ上の格納位置を算出する方式。キャッシュメモリはCPUの処理装置とメインメモリの中間に置かれる高速なメモリ装置で、メインメモリの内容の一部を保管しておきデータの読み出しを高速化する。その際、メインメモリのどの位置のデータをキャッシュメモリのどの位置に格納するかを決定する方式がいくつかあり、それぞれ特徴が異なる。
ダイレクトマップ方式はこの方式の一つで、メインメモリのアドレス(を表す整数値)に一定の手順で演算を行い、その結果をそのアドレスに対応するキャッシュメモリ上の位置として用いる。演算の例としては、アドレス値をキャッシュメモリのブロックの数で割った余りを求めるなどの方法がある。
メインメモリ上のアドレスからキャッシュ内の格納個所が一意に定まるため、読み出し時の探索時間が最も短く、実装も容易という特徴がある。ただし、キャッシュ内の格納位置が衝突する別のアドレスから読み出しを行おうとすると自動的にキャッシュの入れ替えが発生するため、キャッシュヒット率は他の方式よりも低くなる。
一方、メモリアドレスとは無関係にキャッシュメモリ内の空いている領域にデータを格納する方式を「フルアソシアティブ方式」、キャッシュ内の複数のブロックを一つのセットにまとめ、メモリアドレスから算出した値をセット単位で対応付ける方式を「セットアソシアティブ方式」という。
(2023.8.25更新)