システムアーキテクト 2025年 午前2 問20
問題文
キャッシュメモリにおけるセットアソシアティブ方式の説明として、適切なものはどれか。
選択肢
ア:CPUがあるアドレスにアクセスすると、そのアドレスがキャッシュメモリに存在するかどうか、キャッシュメモリ内の全てのタグを検索する。
イ:キャッシュされているアドレスに書込みが発生したとき、キャッシュメモリと記憶の両方にデータを書き込む。
ウ:主記憶のある一つのメモリブロックを、キャッシュメモリ内の単一又は複数の配置可能なロケーションに対応付ける。(正解)
エ:プログラムが仮想アドレスにアクセスすると、対応する物理アドレスのメモリがアクセスされる。
キャッシュメモリにおけるセットアソシアティブ方式の説明【午前2 解説】
要点まとめ
- 結論→セットアソシアティブは主記憶のブロックをキャッシュ内の特定の「セット」に属する単一または複数のロケーションへ対応付ける混合型マッピング方式です。
- 根拠→アドレスは「オフセット・インデックス・タグ」に分解され、インデックスでセットを選びタグで一致を確認するため全タグ検索は不要です。
- 差がつくポイント→直接マップは1対1、フルアソシアティブは全域検索、セットサイズと置換(LRU等)の違いがヒット率と性能を左右します。
正解の理由
ウが正解です。セットアソシアティブ方式は主記憶のブロックがキャッシュ内の「特定のセット」に配置され、そのセット内の複数ライン(ロケーション)のいずれかに割り当てられます。つまり「ある一つのメモリブロックをキャッシュ内の単一又は複数の配置可能なロケーションに対応付ける」という説明がそのまま当てはまります。インデックスでセットを選択し、セット内でタグ比較を行うため、フルアソシアティブのようにキャッシュ全体のタグを毎回走査する必要はありません。
よくある誤解(2〜3 行)
- 「全てのタグを検索する」はフルアソシアティブの説明であり、セットアソシアティブとは異なります。
- 「キャッシュと主記憶に必ず同時書込みする」はライトスルー方式の特性であって、マッピング方式の説明ではありません。
解法ステップ(番号付きリスト)
- 問題文のキーワード(セットアソシアティブ、タグ、全タグ検索、書込みの扱い、仮想→物理)を拾う。
- 各選択肢がどの概念を説明しているか(直接マップ/フルアソシアティブ/書込み戦略/仮想記憶)を分類する。
- 「全てのタグを検索」はフルアソシアティブ、「キャッシュと記憶の両方に書込む」はライトスルー、「仮想→物理」は仮想記憶の説明と対応付ける。
- 「主記憶のブロックをキャッシュの単一または複数ロケーションに対応付ける」はセットアソシアティブの定義そのものと一致するため正解を確定する。
- 不正解の選択肢はそれぞれ別概念の説明であると理由を添えて除外する。
選択肢別の誤答解説
- ア: CPUがあるアドレスにアクセスすると、そのアドレスがキャッシュに存在するかどうかキャッシュ内の全タグを検索する。
→ 誤り。キャッシュ内全タグの検索はフルアソシアティブ方式の特徴であり、セットアソシアティブではインデックスでセットを絞ります。 - イ: キャッシュされているアドレスに書込みが発生したとき、キャッシュメモリと記憶の両方にデータを書き込む。
→ 誤り。これはライトスルー(write-through)という書込みポリシーの説明であり、マッピング方式の説明ではありません。 - ウ: 主記憶のある一つのメモリブロックを、キャッシュメモリ内の単一又は複数の配置可能なロケーションに対応付ける。
→ 正解。セットアソシアティブはまさにこの「セット内の複数ラインのいずれか」に配置する方式です。 - エ: プログラムが仮想アドレスにアクセスすると、対応する物理アドレスのメモリがアクセスされる。
→ 誤り。これは仮想記憶やアドレス変換(MMU/TLB)の説明であり、キャッシュの配置方式とは別の概念です。
補足コラム(関連知識など)
- マッピング方式比較:直接マップ(direct-mapped)は各主記憶ブロックが1つの決まったラインにのみ置かれるため実装が単純だが衝突が多くなる。フルアソシアティブ(fully associative)は任意のラインに配置できヒット率は高いがタグ比較コストが大きい。セットアソシアティブはその中間で実用的。
- 置換アルゴリズム:セット内で空きがない場合はLRUやランダムなどで置換を行う。セットの連想度(例えば2ウェイ、4ウェイ)が性能とコストのトレードオフを決めます。
- 書込みポリシー:ライトスルー(write-through)は即座に主記憶へ反映、ライトバック(write-back)は後で反映しダーティビットで管理します。イの記述はライトスルーの特徴です。
- 仮想アドレスに関する補足:エは仮想→物理のアドレス変換説明で、ページテーブルやTLBの話題に属します。
FAQ
Q: セットアソシアティブの「nウェイ」とは何ですか?
A: 「nウェイ」は1セットあたりのライン数(連想度)を示し、例えば2ウェイなら各セットは2つの候補ラインを持ちます。
A: 「nウェイ」は1セットあたりのライン数(連想度)を示し、例えば2ウェイなら各セットは2つの候補ラインを持ちます。
Q: フルアソシアティブとセットアソシアティブの見分け方は?
A: 「全タグ検索が必要か」を見ればよく、全タグ検索ならフルアソシアティブ、インデックスで絞るならセットアソシアティブです。
A: 「全タグ検索が必要か」を見ればよく、全タグ検索ならフルアソシアティブ、インデックスで絞るならセットアソシアティブです。
Q: 書き込み動作がマッピング方式に含まれることはありますか?
A: マッピング(配置)方式と書込みポリシーは別概念です。イは書込みポリシー(ライトスルー)に関する記述です。
A: マッピング(配置)方式と書込みポリシーは別概念です。イは書込みポリシー(ライトスルー)に関する記述です。
関連キーワード: キャッシュメモリ、セットアソシアティブ、直接マップ、フルアソシアティブ、ライトスルー、ライトバック、タグ、インデックス、LRU, 置換アルゴリズム

\ せっかくなら /
システムアーキテクトを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

