キャッシュメモリのアドレスマッピング方式とは?#
主記憶上の格納位置とキャッシュメモリ上の格納位置とをどのように対応させるかを決める方式として、ダイレクトマップ、フルアソシエイティブ、セットアソシエイティブがある。
ダイレクトマップ#
主記憶のアドレスからキャッシュメモリ上の格納位置(ブロック番号)が一意に決まる方式
- 主記憶のアドレスの一部(下位ビット)をインデックスとして使用し、格納先を決定
- 回路構成が単純でコストが低い
- 主記憶上の異なるアドレスが、キャッシュメモリ上の同じ場所に割り当てられる「コンフリクト」が発生する可能性がある
- コンフリクトはキャッシュヒット率が低下する原因にもなる
フルアソシエイティブ#
主記憶のブロックをキャッシュメモリ上のどのブロックにも格納することができる方式
- コンフリクトが発生しにくく、キャッシュヒット率が高い
- 検索にCAM(Content Addressable Memory:連想メモリ)を使用するため、回路が非常に複雑で高コスト
- 小容量のキャッシュ(TLBなど)で使用されることが多い
セットアソシエイティブ#
キャッシュメモリをいくつかの「セット」と呼ばれるグループに分け、主記憶のアドレスからはまず特定のセットが決定される。そのセットの中であれば、どのブロックにでも格納することができる。
- ダイレクトマップとフルアソシエイティブの中間的な存在
- 現在の主流の方式(コストとパフォーマンスのバランスが良い)
- n-way セットアソシエイティブ: 1つのセット内に格納できるブロック数を「n」で表す
- 2-way: 1セットに2ブロック格納可能
- 4-way: 1セットに4ブロック格納可能
- nが大きいほどフルアソシエイティブに近づき、ヒット率は上がるがコストも増加
3方式の比較#
| 方式 | 格納位置の自由度 | 回路の複雑さ | コスト | ヒット率 |
|---|---|---|---|---|
| ダイレクトマップ | 低(1箇所固定) | 単純 | 低 | 低 |
| フルアソシエイティブ | 高(どこでも可) | 複雑 | 高 | 高 |
| セットアソシエイティブ | 中(セット内で自由) | 中程度 | 中 | 中 |
参考リンク#
- 応用情報技術者過去問道場:令和4年春期 問10
- 出典:応用情報技術者:令和4年春期 問10