コンピュータ

ダイレクトマップ方式とは

2021年11月25日

ダイレクトマップ方式

ダイレクトマップ方式とは、主記憶装置のデータをキャッシュメモリのどの位置に格納するか決める方式のひとつで、主記憶装置のブロック番号に一定の計算を行うことでキャッシュメモリの格納位置を算出する方式のことです。ダイレクトマッピング方式とも呼ばれています。

ダイレクトマップ方式

それでは、ダイレクトマップ方式についてもう少し詳しく説明していきます。

キャッシュメモリとは

キャッシュメモリとは、コンピュータの頭脳であるCPUと主記憶装置の間にある記憶装置のことです。

スポンサーリンク

CPUはコンピュータの動作に必要なデータや命令を主記憶装置とやり取りしながら処理します。しかし、高速で動作するCPUに比べると主記憶装置の処理は遅く待ち時間が発生します。

そこで、キャッシュメモリを使用します。キャッシュメモリは主記憶装置よりも高速に動作するため、メモリアクセスの時間が短縮できCPU性能の向上につながります。

キャッシュメモリのイメージ例

CPUはキャッシュメモリにデータがある場合、高速なキャッシュメモリからデータを読み込み、キャッシュメモリにデータがない場合、低速な主記憶装置からデータを読み込みます。

その際、主記憶装置のデータをキャッシュメモリにも保存しておきます。

主記憶装置のデータをキャッシュメモリのどの位置(ロケーション)に格納するかを決定する方式には「ダイレクトマップ方式」「フルアソシアティブ方式」「セットアソシアティブ方式」があります。

ダイレクトマップ方式とは

ダイレクトマップ方式は、主記憶装置にあるブロック単位のデータを一定の計算式(ハッシュ演算)を用いて、キャッシュメモリ内の単一の場所(ロケーション)に格納する方式です。

主記憶装置にあるデータは、ブロックという一定長の単位ごとにキャッシュメモリに格納します。(キャッシュメモリのデータはブロックという単位で管理されている)

ダイレクトマップ方式

ダイレクトマップ方式では、一定の計算式でキャッシュメモリの格納位置を求めるため、キャッシュメモリに空きが残っていたとしても、空いている個所ではなく計算結果の位置にデータを格納します。

ダイレクトマップ方式の衝突1

例えば、上記図のようにキャッシュメモリのブロック1~3が空き状態のときに、ブロック5の計算結果がキャッシュメモリのブロック0だった場合、ブロック0のデータを入れ替えます。

ダイレクトマップ方式の衝突2

そのため「ヒット率」は他の方式(フルアソシアティブ方式、セットアソシアティブ方式)よりも下がります。

ヒット率とは、CPUがキャッシュメモリにアクセスするとき、キャッシュメモリに目的のデータが存在する確率のことです。

helpful