1. ホーム
  2. caching

[解決済み] コンフリクトミスvsコンパルソリーミス

2022-01-29 20:45:23

質問事項

コンパルソリーミス は、ブロックが初めてキャッシュに持ち込まれるときに発生します。

コンフリクトミス セットアソシアティブまたはダイレクトマップドブロック配置ストラテジーの場合、複数のブロックが同じセットにマップされると、コンフリクトミスが発生します。

メインメモリが64ブロック(0 - 63)で、4セットで合計8キャッシュブロック(0 - 7)の2ウェイセット連想型キャッシュメモリを考えます。LRU ポリシーで置換し、キャッシュを空にした場合、次のメモリブロックの参照順序での競合キャッシュミスの総数は: 0 5 9 13 7 0 15 25

疑問なのは、13と25は強制ミスだけなのか、強制&競合ミスの両方が発生するのか、ということです。

どのように解決するのですか?

コンフリクトミスの定義がちょっと不親切なんですが。

コンフリクトミスは、以前キャッシュに存在したブロックが必要なときに発生しますが、同じスロットにマッピングされなければならない他のブロックのために退避させられました。

この例では、13と25へのアクセスは一意であり、必然的に最初のアクセスになります。定義上、最初の使用前に退去されることはあり得ません。従って、これらは強制ミスです。

それらは 原因 もちろん、その後のコンフリクトミス(およびキャパシティミス)もあります。