【システム構成】速度と効率を両立する超重要メカニズム!「セットアソシアティブ」|情報処理問題1000本ノック
CPUと主記憶の速度差を埋めるキャッシュメモリ。主記憶のデータをキャッシュ上のどこに配置(マッピング)するか、その割り当てアルゴリズムを攻略しましょう。
1. 【 問題 】:キャッシュメモリの割付方式
【 問題 】 キャッシュメモリにおいて、主記憶(メインメモリ)のデータをキャッシュに割り当てる(マッピングする)方式のうち、キャッシュメモリを複数の「セット」と呼ばれるブロックのグループ単位に分割し、主記憶の各ブロックが割り当てられるセット(グループ)があらかじめ固定されている方式はどれでしょうか?
① ダイレクトマッピング方式(直接写像方式)
② フルアソシアティブ方式(全連想方式)
③ セットアソシアティブ方式(組連想方式)
④ ライトバック方式(Write-Back)
2. 正解:
正解: ③ セットアソシアティブ方式(組連想方式)
3. 解説:自由度と検索スピードのバランスを追求した決定版
主記憶のデータをキャッシュメモリへ割り当てる方式は、主に3つあります。今回の正解である「セットアソシアティブ」は、①と②の欠点を補い合うために生まれた現在最も主流の方式です。
■ ① ダイレクトマッピング方式
・特徴:主記憶のデータが置かれるキャッシュ上の場所が「1カ所」にガチガチに固定されます。構造が単純で高速ですが、同じ場所に別のデータが来るとすぐに追い出されるため、ヒット率が下がります(競合が多い)。
■ ② フルアソシアティブ方式
・特徴:キャッシュ上の「どこにでも」自由にデータを置けます。空いている場所を有効活用できるためヒット率は上がりますが、いざデータを「探す」ときに全箇所を総当たりで検索する必要があり、回路が複雑化し遅くなります。
■ ③ セットアソシアティブ方式
・特徴:キャッシュをいくつかの「グループ(セット)」に分割します。「主記憶のこのデータは、キャッシュの『Aグループ(セット)』のどこかに置く」というルールにします。グループ内であれば何番目の部屋を使っても自由です。← ココが問題の正解!
★ ④ ライトバック方式:マッピング方式ではなく、CPUがデータを書き込む際の方式です。キャッシュにだけ高速に書き込み、主記憶への書き込みはキャッシュからデータが追い出されるまで後回しにする仕組みです。
1. 理解のコツ: 「ホテルの部屋割り」に例えてみましょう。
・あなたの部屋は101号室だけ!と決めるのがダイレクト。
・ホテル中のどの部屋でも好きなところを使っていいよ!がフルアソシアティブ。
・あなたは「1階のグループ(セット)」の部屋なら、空いているどこを使ってもいいよ!とするのがセットアソシアティブです。これなら、101号室が埋まっていても102号室を使える(自由度がある)し、探すときも1階の部屋だけを見ればいい(検索が早い)ので、非常にバランスが良いのです。
2. 試験対策の視点: 「キャッシュのブロックのグループ単位」「セット単位で割り当てられる」というキーワードがあれば「セットアソシアティブ方式」が一択です。基本情報・応用情報試験の午前では、この定義を問う問題のほか、メモリのアドレス構成(タグ、セットインデックス、ブロックオフセット)に関する計算問題としても非常によく狙われる重要テーマです。
4. まとめ
「ダイレクトマッピングの検索の速さと、フルアソシアティブの無駄のなさを組み合わせ、グループ(セット)単位で割り当てを行う賢いマッピング方式」。これがセットアソシアティブ方式です。現代のPCやスマートフォンのCPUキャッシュの多くはこの方式が採用されており、プロセッサの超高速化をハードウェアの裏側から支えています。