豚吐露@wiki

問13回答

最終更新:

ohden

- view
管理者のみ編集可


データ格納構造

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

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

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

データ更新方式

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

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






更新日: 2009年11月18日 (水) 19時27分02秒
記事メニュー
ウィキ募集バナー