フルアソシアティブ方式
フルアソシアティブ方式とは、主記憶装置のデータをキャッシュメモリのどの位置に格納するか決める方式のひとつで、キャッシュメモリ内の空き領域にデータを保管する方式のことです。
キャッシュメモリへの格納
コンピュータの頭脳であるCPUは、コンピュータの動作に必要なデータや命令を主記憶装置とやり取りしながら処理します。しかし、高速で動作するCPUに比べると主記憶装置の処理は遅く待ち時間が発生してしまいます。
そこで、キャッシュメモリを使用します。キャッシュメモリは主記憶装置よりも高速に動作するため、メモリアクセスの時間が短縮できCPU性能の向上に繋がります。
CPUは次の流れでコンピュータの動作に必要なデータや命令を処理します。
CPU処理の流れ
- キャッシュメモリにデータがあるか確認する
- キャッシュメモリにデータがある場合は、高速なキャッシュメモリからデータを読み込む
- キャッシュメモリにデータがない場合は、低速な主記憶装置からデータを読み込む
- 主記憶装置からデータを読み込む際は、主記憶装置のデータをキャッシュメモリにも保存する
上記の処理4を実施するとき、キャッシュメモリのどの位置(ロケーション)に格納するか決める必要があります。
主記憶装置のデータをキャッシュメモリのどの位置(ロケーション)に格納するかを決定する方式には「ダイレクトマップ方式」「フルアソシアティブ方式」「セットアソシアティブ方式」があります。
フルアソシアティブ方式とは
フルアソシアティブ方式とは、主記憶装置のデータをキャッシュメモリ内の空き領域に保管する方式のことです。
例えば、次図のように主記憶装置のブロック番号4「データ5」をキャッシュメモリに格納するとします。(キャッシュメモリはブロック番号0、1が使用済み、ブロック番号2、3が空きの状態)
フルアソシアティブ方式では、キャッシュメモリへの格納位置を演算で求めるのではなく、空いている場所を探し出しその位置にデータを保管します。(キャッシュメモリの空き領域だったブロック番号2にデータ5を保管)
フルアソシアティブ方式は、キャッシュメモリの空いている場所にデータを保管するためヒット率は高くなるが、空いている場所を探すための検索コストが大きいため、速度的に難があります。