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

【コンピュータ】回路全体が1つの自由席!「フルアソシアティブキャッシュ」の仕組み|情報処理問題1000本ノック


CPUの内部で繰り広げられる、限られた超高速メモリの奪い合い。メモリの番地に縛られず、「空いている場所ならどこにでもデータを滑り込ませる」究極のマッピング方式を攻略しましょう。

1. 【 問題 】:CPUにおけるキャッシュメモリのデータ配置方式

【 問題 】 コンピュータのCPUが主記憶(メインメモリ)のデータをキャッシュメモリに読み込む際、キャッシュメモリの全領域を「1つの巨大なセット(グループ)」として扱い、主記憶のどの番地(アドレス)にあるデータであっても、キャッシュ内の空いている場所であれば「どこにでも配置できる」方式はどれでしょうか?

① ダイレクトマッピング方式 (Direct Mapping)
② セットアソシアティブ方式 (Set Associative Mapping)
③ フルアソシアティブ方式 (Fully Associative Mapping / フルセットアソシアティブ方式)
④ ライトバック方式 (Write-Back)

2. 正解:

正解: ③ フルアソシアティブ方式(Fully Associative Mapping)

3. 解説:ヒット率は最強、だけど検索回路が巨大化するトレードオフ

コンピュータの性能を高めるため、CPUの中には容量は小さいけれど超高速なキャッシュメモリが載っています。主記憶にある膨大なデータのうち、どれをキャッシュのどこに入れるかというルール(マッピング方式)の最高峰が、このフルアソシアティブ方式です。

【フルアソシアティブ方式のコンピュータ的メカニズム】

配置の挙動:データの格納場所を決定するための「主記憶アドレスの計算(割り算やハッシュ)」を行いません。全体が1つのセットなので、キャッシュの中に1マスでも空き(空きライン)があれば、主記憶のどこから持ってきたデータでも制限なく自由に格納できます← ココが問題の正解!

CPU内部での検索の課題:場所が制限されていないということは、CPUが「あのデータはキャッシュにあるか?」と探す際、キャッシュ内のすべてのマス(全ライン)を同時に一斉検索(並列比較)しなければなりません。これを実現するには「連想メモリ(CAM:Content Addressable Memory)」という特殊かつ非常に複雑で高価なハードウェア回路が必要になり、CPUの消費電力やコストが跳ね上がる原因になります。
[ 選択肢のひっかけポイント(三大マッピング方式の比較) ]
★ ① ダイレクトマッピング方式:主記憶のアドレスによって、キャッシュ内の「格納場所がピンポイントで1箇所」に一意に決まる方式です。計算回路は一番シンプルで安価ですが、同じ場所にマッピングされる別データが来るとすぐに上書き(追い出し)されるため、ヒット率が下がりやすい弱点があります。
★ ② セットアソシアティブ方式:上記2つのいいとこ取りをした、現代のコンピュータのCPUの主軸方式です。キャッシュをいくつかの「複数のセット(2枚、4枚など)」に小分けし、セットの場所まではアドレスで指定しますが、そのセットの枠内(自由席)であればどこに置いても良いというバランス型の方式です。
★ ④ ライトバック方式:これはデータの配置ルールではなく、前回学んだ「データを書き換える際、一旦キャッシュだけに書いておき、後から主記憶に書き戻す」という書き込み制御方式の名称です。

1. 理解のコツ: 「劇場の座席案内」に例えてみましょう。
・チケットに座席番号がキッチリ印字されていて、他がどれだけ空いていてもそこしか座れないのがダイレクトマッピングです。
・これに対してフルアソシアティブ方式は、完全な『自由席』です。劇場全体が1つの大きなエリア(1つのセット)であり、空いている席(ライン)を見つけたらどこに座っても構いません。これなら「席は空いているのに座れない」という無駄(キャッシュの競合)が全く起きないため、ヒット率は最強です。ただし、特定の友達(お目当てのデータ)がどこにいるか探すときは、客席全体を端から端まで同時に見渡して探すハードウェア的なパワー(並列比較回路)が必要になります。
2. 試験対策の視点: 「1つのセットしかない」「どこにでも配置できる」という記述があれば「フルアソシアティブ(全連想)」が一択です。基本情報や応用情報の午前試験では、コンピュータのアーキテクチャ(構成要素)の問題として、ダイレクトマッピング、セットアソシアティブ、フルアソシアティブの3つの方式の「ヒット率の高さ」と「回路の複雑さ(コスト)」のトレードオフの関係性を正しく理解しているかを問う形で出題されます。


4. まとめ

「アドレスによる制限を一切排除し、キャッシュメモリの空きスペースを極限まで使い切ることで最高のデータ保持効率を実現する、完全自由席スタイルの格納方式」。これがフルアソシアティブ方式です。回路規模が大きくなるためCPUのメインキャッシュ(L1、L2、L3など)にはよりバランスの良いセットアソシアティブ方式が使われますが、仮想記憶の高速化を支える「TLB(ページテーブルのキャッシュ)」など、コンピュータの最重要かつ超高速なピンポイント領域でこのフルアソシアティブの技術が活躍しています。

PR