書き込みバッファは、パフォーマンスを向上させ、レイテンシを削減するために、キャッシュからメインメモリまたはメモリ階層内の次のキャッシュに書き込まれるデータを保持するために使用できるデータバッファの一種です。Intelのx86やAMD64などの特定のCPUキャッシュアーキテクチャで使用されます。 [1]マルチコアシステムでは、書き込みバッファによって順次一貫性が破壊されます。C11のデータ競合フリー[2]などの一部のソフトウェア規律は、メモリの順次一貫性ビューを取り戻すのに十分です。
ライトスルーキャッシュのバリエーションは、バッファ ライトスルーと呼ばれます。[要出典]
このように書き込みバッファを使用すると、書き込みが行われている間にキャッシュが解放され、読み取り要求を処理できます。これは、長いメイン メモリ待ち時間を待たずに後続の読み取りを続行できるため、非常に低速のメイン メモリに特に便利です。書き込みバッファがいっぱいの場合 (つまり、すべてのバッファ エントリが占有されている場合)、後続の書き込みはスロットが解放されるまで待機する必要があります。後続の読み取りは、書き込みバッファから処理できます。このストールをさらに緩和するには、書き込みバッファ マージと呼ばれる最適化を実装できます。書き込みバッファ マージは、連続する宛先アドレスを持つ書き込みを 1 つのバッファ エントリに結合します。そうでない場合、書き込みは別々のエントリを占有することになり、パイプライン ストールの可能性が高くなります。
ビクティム バッファは、ダーティな追い出された行をライトバックキャッシュ[注 1]に格納してメイン メモリに書き戻すタイプの書き込みバッファです。単純な書き込みバッファのようにダーティな行が書き戻されるのを待たずにパイプラインのストールを減らすほか、ビクティム バッファは、後続のキャッシュ アクセスが局所性を示し、ビクティム バッファにまだ残っている最近追い出された行を要求する場合に、一時的なバックアップ ストレージとしても機能します。
ストアバッファは1964年から1968年にかけてのACSプロジェクト中にIBMによって発明されましたが[3] 、商用製品に初めて実装されたのは1990年代でした。
注記
- ^ ライトスルーキャッシュでは、キャッシュが書き込まれるときに、削除されたキャッシュ ラインがメイン メモリに書き込まれるため、削除されたキャッシュ ラインを書き込む必要はありません。
参考文献
- ^ Owens、Scott、Susmit Sarkar、Peter Sewell。「より優れた x86 メモリ モデル: x86-TSO」。高階論理における定理証明。Springer Berlin Heidelberg、2009 年。391-407 ページ。
- ^ Oberhauser, Jonas. 「x86-TSO のよりシンプルな縮約定理」。検証済みソフトウェア: 理論、ツール、実験。Springer International Publishing、2015 年。142-164
- ^ コック、ジョン (2007)。「科学プロセッサのパフォーマンスの探求」ACM チューリング賞講演。p. 1987。doi : 10.1145 / 1283920.1283945。ISBN 978-1-4503-1049-9。
