メモリとキャッシュと整合性。どうも、かわしんです。 最近「詳解 LINUX カーネル」という分厚い本を読んでいるのですが、割と序盤の第 2 章で気になったことがあったので調べてみました。 ライトスルーとライトバック ご存知の通り、CPU にはキャッシュがあってメモリアクセスの遅延を高速化しています。 メモリの内容への書き込みではキャッシュとメモリを同時に書き換える「ライトスルー」方式とキャッシュの中身だけ書き換えてメモリへの書き込みは遅延させる「ライトバック」方式があります。 ライトスルーは書き込みのたびにメモリアクセスが発生し遅くなってしまうが簡単に実装できるし、複数段キャッシュの L1 キャッシュで使えばその書き込み遅延も軽減することができます。 一方で、ライトバック方式は高速に書き込みができるけど整合性を保つために実装が複雑になりがちだし、バグが起きやすいかもしれません。 とここまで

