編集 - 私が尋ねた質問が長すぎると思うので、非常に具体的にしています。
質問: メモリ ロケーションが L1 キャッシュにあり、ダーティとマークされていない場合。値が X であるとします。同じ場所に X を書き込もうとするとどうなりますか? そのような書き込みが冗長であると判断してスキップする CPU はありますか?
たとえば、2 つの値を比較し、メイン メモリへの冗長な書き込みを破棄する最適化はありますか? 具体的には、主流のプロセッサはこれをどのように処理しますか? 値が 0 のような特別な値の場合はどうなりますか? 0 のような特別な値でもそのような最適化がない場合、理由はありますか?
動機: キャッシュに簡単に収まるバッファがあります。複数のスレッドが、それらの間でリサイクルすることにより、潜在的にそれを使用する可能性があります。各使用には、バッファー内のn 個の場所 (連続している必要はありません)への書き込みが含まれます。リサイクルとは、単にすべての値を 0 に設定することを意味します。リサイクルするたびに、サイズ n の場所はすでに 0 です。(直感的に) 非常に多くの冗長な書き戻しを回避することで、リサイクル プロセスが高速化されるように思われます。
分岐命令自体が不要なキャッシュ ミスを引き起こす可能性があるため (if (buf[i]) {...} )、コードでこれを実行しても意味がありません。