キャッシュメモリのデータ格納構造

問題

キャッシュメモリにおけるダイレクトマップ方式の説明として,適切なものはどれか。

  • アドレスが連続した二つ以上のメモリブロックを格納するセクタを,キャッシュ内の任意のロケーションに割り当てる。
  • 一つのメモリブロックをキャッシュ内の単一のロケーションに割り当てる。
  • メモリブロックをキャッシュ内の任意のロケーションに割り当てる。
  • メモリブロックをキャッシュ内の二つ以上の配置可能なロケーションに割り当てる

答え

一つのメモリブロックをキャッシュ内の単一のロケーションに割り当てる。

解説

キャッシュメモリ


キャッシュメモリ (cache memory) は、CPUなど処理装置がデータ命令などの情報を取得/更新する際に主記憶装置バスなどの遅延/低帯域を隠蔽し、処理装置と記憶装置の性能差を埋めるために用いる高速小容量メモリのことである。


出典: フリー百科事典『ウィキペディア(Wikipedia)』

マップ(写像)方式

マップとは写像の意味で、キャッシュメモリにおけるマップ方式とは、キャッシュメモリのアドレスと主記憶(メインメモリ)のアドレスの対応づけの方式である。

「ダイレクト」だと一対一、「フルアソシアティブ」は適当、「セットアソシアティブ」は「ダイレクト」と「フルアソシアティブ」の中間。

(1) フルアソシアティブ方式 ( full associative ; 完全連想方式)

  • ブロックのキャッシュ内での位置は任意
  • キャッシュの利用効率は非常に高い
  • 自由度が高すぎてブロックの検索が困難で, ハードウェアが複雑になりすぎる
  • 実際のキャッシュでは用いられない

(2) ダイレクトマッピング方式 ( direct mapping ; 直接写像方式)

  • b 番ブロックのキャッシュ内での位置を一意にする
  • ブロックの検索が容易で, ハードウェアも単純
  • キャッシュの利用効率が 悪い (キャッシュ内で 衝突 が起き易い)

(3) セットアソシアティブ方式 ( set associative; セット連想方式)

  • ブロックのキャッシュ内での位置は S 個のどれか
    • S-way , あるいは連想度 S と言う
  • S を調節して利用効率と検索の容易性のバランス を取る
    • S = 1 とすればダイレクトマッピングになる
    • S = キャッシュ容量 とすればフルアソシアティブになる
    • S は通常 2 か 4 か 8 程度

参考資料

「コンピュータアーキテクチャ」ノート (2018 年度, c 石浦 菜岐佐)