問20
セットアソシアティブ方式(Set Associative)
複数のタグにより構成(連想度2以上)されるデータ格納構造。
同一エントリに異なるフレームアドレスのデータを複数格納することができる。
連想度が上がるほどキャッシュヒット率は上昇するが製造は困難になっていくため、
システムによりバランスのよい実装が異なる。
n個のタグにより構成された場合、nウエイセットアソシアティブ方式と呼ぶ。
最近はCAM(連想メモリ:Content Addressable Memory)がタグとして使われ出し、
32など非常に高い連想度を実装できるようになってきた。
ダイレクトマップ方式やフルアソシアティブ方式はこの方式の特殊な場合である。

ダイレクトマップ方式(Direct Mapped)
1組のタグにより構成(連想度1)されるデータ格納構造。
アドレスにより一意に配置が決まるため、タグの構造が非常に単純。
だが、同一エントリに異なるフレームアドレスが転送されると必ずラインの入れ替えが発生する。
ラインの入れ替えが頻発しスループットが落ちることをキャッシュスラッシングというが、
この状態が起こりやすくヒット率は他の方式に比べ高くない。

フルアソシアティブ方式(Fully Associative)
エントリアドレスによる振り分けはなく、全てのラインが検索対象となる構造。
従って連想度はライン数分となる。
キャッシュスラッシングは起こり難くヒット率は最も優れているが、
実装コストや複雑度の面から通常用いられることはない。

ライトスルー方式(Write Through Algorithm)
CPUがメモリ書き込みを行ったら、キャッシュにストアすると同時に
下位レベルのメモリにも書き戻す方式。
必ず下位レベルのバスが活性化するため、バスの競合や下位レベルの低いスループット
律束されるなどの制約はあるが、単純な構成で実現でき、
またデータのコヒーレンシを保つことが容易である。
出力段にライトバッファを設けることにより、
単一CPUであればライトバック方式に比べ遜色のない性能が期待できる。
そのためCPUのL1キャッシュなどに実装される場合が多い。

ライトバック方式(Write Back Algorithm)
CPUがメモリ書き込みを行っても、条件が整わない限りキャッシュに留まり
メモリへの書き戻しを行わない方式。
書き戻す条件は対象エントリにウエイ数以上のフレームアドレスのリード/ライトが行われる、
他のバスマスタが対象エントリが保持しているアドレスに対しアクセスを行った時に
コヒーレンシを保つために行うなどがある。
ライトスルー方式に対し下位レベルのバスが競合を起こしにくく、マルチCPU構成に向くため、
記憶階層の同一レベルに複数のキャッシュが接続されているようなL2キャッシュに実装される。

答はアのセットアソシアティブ
上3つはデータ格納方式で下2つはデータ更新方式らしいのでせめてそのくらいは覚えておこう…