[解決済み] コンフリクトミスとキャパシティミスの違いについて
質問内容
キャッシュがプログラム実行に必要なすべてのブロックを含むことができないため、ブロックがキャッシュから廃棄され、容量不足が発生します(プログラムのワーキングセットがキャッシュ容量よりはるかに大きい)。
コンフリクトミスは、セットアソシアティブまたはダイレクトマップドブロック配置ストラテジーの場合、複数のブロックが同じセットまたはブロックフレームにマップされたときに発生します。
実はとても密接な関係があるのでしょうか?
例えば、キャッシュラインがすべて埋まっている状態で、メモリBに対する読み出し要求があり、そのためにメモリAを退避させなければならない場合です。
では、容量が足りないので、容量ミスと考えるべきなのでしょうか?また、後でメモリAにアクセスしたい場合、前に退避させたので、コンフリクトミスとみなされます。
私の理解は正しいでしょうか?ありがとうございます。
どのように解決するのですか?
ここで重要なのは、データセットのサイズに起因するキャッシュミスと、キャッシュとデータアライメントの編成方法に起因するキャッシュミスを区別することです。
32kのダイレクトマップキャッシュがあると仮定して、次の2つのケースを考えてみます。
-
128kの配列に対して繰り返し反復処理を行う。データはキャッシュに収まりきらないので、ミスはすべて容量になります(各行の最初のアクセスは強制ミスで、キャッシュを無限に増やせたとしても残ります)。
-
8kの小さなアレイが2つありますが、残念ながら両方ともアラインされており、同じセットにマッピングされています。つまり、理論的にはキャッシュに収まるのですが(アライメントを修正すれば)、キャッシュのサイズをフルに活用できず、代わりに同じグループのセットを奪い合い、互いに衝突してしまうのです。データは収まるはずなのに、編成の関係で衝突してしまうので、これらはコンフリクトミスとなります。同じ問題はセット連想キャッシュでも発生しますが、頻度は低くなります(キャッシュが2ウェイで、4つのアライメントされたデータセットがあるとします......)。
この2つのタイプは確かに関連しており、高レベルの連想性、セットの傾き、適切なデータのアライメント、その他のテクニックを使えば、競合を減らすことができ、ほとんどが避けられない真のキャパシティミスになってしまうとも言えます。
関連
-
[解決済み】IISで静的リソースのHTTPヘッダーに有効期限や最大年齢を設定する方法
-
[解決済み] コンフリクトミスvsコンパルソリーミス
-
[解決済み] キャッシュとキャッシュヒット/ミスについていくつか質問があります。
-
[解決済み] ライトバックキャッシングとライトスルーキャッシングの違いは?
-
[解決済み] Cache-Control: max-age=0とno-cacheの違いは何ですか?
-
[解決済み】開発機でAngularJSの部分的なキャッシュを無効にする
-
[解決済み] Redisキャッシュとメモリ直接使用との比較
-
[解決済み] Redis: 配列やソートされたセットの要素を失効させることは可能か?
-
[解決済み] キャッシュとメモライゼーションの違いは何ですか?
-
[解決済み] Angular 2のサイトでブラウザキャッシュを防ぐには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】IISで静的リソースのHTTPヘッダーに有効期限や最大年齢を設定する方法
-
[解決済み] コンフリクトミスvsコンパルソリーミス
-
[解決済み] TLBシュートダウンとは何ですか?
-
[解決済み] FIFOキャッシュとLRUキャッシュの比較
-
[解決済み] キャッシュとキャッシュヒット/ミスについていくつか質問があります。
-
[解決済み] ライトバックキャッシングとライトスルーキャッシングの違いは?
-
[解決済み】Redisは単なるキャッシュなのか?
-
[解決済み】開発機でAngularJSの部分的なキャッシュを無効にする
-
[解決済み] Notepad++のキャッシュファイルの場所
-
[解決済み] Redis: 配列やソートされたセットの要素を失効させることは可能か?