忍者ブログ
情報処理技術者試験の合格を目指す全受験者のための、1問1問「徹底解説」ブログです。単なる過去問の暗記ではなく、なぜその答えになるのかを本質的に理解できるよう解説します。書籍などでは学べない最新用語やトレンドを踏まえてご紹介します。

【システム構成】速度と効率を両立する超重要メカニズム!「セットアソシアティブ」|情報処理問題1000本ノック

CPUと主記憶の速度差を埋めるキャッシュメモリ。主記憶のデータをキャッシュ上のどこに配置(マッピング)するか、その割り当てアルゴリズムを攻略しましょう。

1. 【 問題 】:キャッシュメモリの割付方式

【 問題 】 キャッシュメモリにおいて、主記憶(メインメモリ)のデータをキャッシュに割り当てる(マッピングする)方式のうち、キャッシュメモリを複数の「セット」と呼ばれるブロックのグループ単位に分割し、主記憶の各ブロックが割り当てられるセット(グループ)があらかじめ固定されている方式はどれでしょうか?

① ダイレクトマッピング方式(直接写像方式)
② フルアソシアティブ方式(全連想方式)
③ セットアソシアティブ方式(組連想方式)
④ ライトバック方式(Write-Back)

2. 正解:

正解: ③ セットアソシアティブ方式(組連想方式)

3. 解説:自由度と検索スピードのバランスを追求した決定版

主記憶のデータをキャッシュメモリへ割り当てる方式は、主に3つあります。今回の正解である「セットアソシアティブ」は、①と②の欠点を補い合うために生まれた現在最も主流の方式です。

【キャッシュマッピング3大方式の比較】

■ ① ダイレクトマッピング方式
特徴:主記憶のデータが置かれるキャッシュ上の場所が「1カ所」にガチガチに固定されます。構造が単純で高速ですが、同じ場所に別のデータが来るとすぐに追い出されるため、ヒット率が下がります(競合が多い)。

■ ② フルアソシアティブ方式
特徴:キャッシュ上の「どこにでも」自由にデータを置けます。空いている場所を有効活用できるためヒット率は上がりますが、いざデータを「探す」ときに全箇所を総当たりで検索する必要があり、回路が複雑化し遅くなります。

■ ③ セットアソシアティブ方式
特徴:キャッシュをいくつかの「グループ(セット)」に分割します。「主記憶のこのデータは、キャッシュの『Aグループ(セット)』のどこかに置く」というルールにします。グループ内であれば何番目の部屋を使っても自由です。← ココが問題の正解!
[ 選択肢のひっかけポイント ]
★ ④ ライトバック方式:マッピング方式ではなく、CPUがデータを書き込む際の方式です。キャッシュにだけ高速に書き込み、主記憶への書き込みはキャッシュからデータが追い出されるまで後回しにする仕組みです。

1. 理解のコツ: 「ホテルの部屋割り」に例えてみましょう。
・あなたの部屋は101号室だけ!と決めるのがダイレクト
・ホテル中のどの部屋でも好きなところを使っていいよ!がフルアソシアティブ
・あなたは「1階のグループ(セット)」の部屋なら、空いているどこを使ってもいいよ!とするのがセットアソシアティブです。これなら、101号室が埋まっていても102号室を使える(自由度がある)し、探すときも1階の部屋だけを見ればいい(検索が早い)ので、非常にバランスが良いのです。
2. 試験対策の視点: 「キャッシュのブロックのグループ単位」「セット単位で割り当てられる」というキーワードがあれば「セットアソシアティブ方式」が一択です。基本情報・応用情報試験の午前では、この定義を問う問題のほか、メモリのアドレス構成(タグ、セットインデックス、ブロックオフセット)に関する計算問題としても非常によく狙われる重要テーマです。


4. まとめ

「ダイレクトマッピングの検索の速さと、フルアソシアティブの無駄のなさを組み合わせ、グループ(セット)単位で割り当てを行う賢いマッピング方式」。これがセットアソシアティブ方式です。現代のPCやスマートフォンのCPUキャッシュの多くはこの方式が採用されており、プロセッサの超高速化をハードウェアの裏側から支えています。


PR