【らいとするー】

ライトスルー とは?

最終更新:
💡 キャッシュの更新を、次の階層にも届ける

キャッシュを更新するとき、次の階層のメモリや保存先にも書き込みを反映する方式。キャッシュ内だけに変更をためるライトバックと対比される。

📌 このページのポイント
ライトスルー:更新を次の階層へライトスルーキャッシュ新しい値 A次の階層新しい値 Aライトバックキャッシュ新しい値 A次の階層まだ古い値実線:今回反映 / 破線:後で書き戻すメインメモリへの反映は、バックアップとは別
キャッシュにあるデータを更新する一階層の比較例。ライトバックは書き戻す前の状態を示す。
ひよこ ひよこ
ライトスルーは、どこへ書くの?
ペンギン先生 ペンギン先生
キャッシュを更新したら、次の階層にも書き込む方式だよ。たとえばキャッシュの下にメインメモリがある構成なら、そのメモリにも反映する。階層がもっとある場合は、次のキャッシュが相手になることもあるんだ。
ひよこ ひよこ
ライトバックとは、何が違うの?
ペンギン先生 ペンギン先生
ライトバックは、変更した内容をまずキャッシュに持ち、置き換えや書き戻しのときに次の階層へ送るよ。ライトスルーは変更を下位へ通すので、キャッシュ内だけに最新の値をため続けないんだ。
ひよこ ひよこ
毎回書くなら、遅くなる?
ペンギン先生 ペンギン先生
下位への書き込みが増え、処理量や待ち時間に影響するよ。同じ場所を何度も更新する場合、ライトバックなら下位への反映をまとめられることがある。実際の性能はキャッシュやバッファ、負荷などの構成でも変わるので、単純な倍率では比べられないね。
ひよこ ひよこ
メモリにも書けば、停電でも安心?
ペンギン先生 ペンギン先生
一般的なメインメモリは電源が切れると内容が失われるので、それだけで停電対策にはならないよ。ストレージの書き込みキャッシュでも同じ言葉を使うけれど、どこまで保存が完了したか、電源保護があるかは確認が必要。バックアップとも別の仕組みだね。
ひよこ ひよこ
キャッシュとメモリは、いつでも完全に同じ?
ペンギン先生 ペンギン先生
書き込みを次の階層へ反映する方針だけで、全てのデータや並行処理の一貫性を保証するわけではないよ。CPUのキャッシュなら複数コア間の整合性も別に考える。L1は必ずライトスルー、と決めつけず、機種やメモリ領域の設定を確認しよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ライトスルー」って出てきたら「キャッシュの更新を、次の階層にも届ける書き込み方式」と思えばだいたいOK!
📖 おまけ:英語の意味
「Write-Through」 = 書き込み貫通
💬 write(書き込み)がキャッシュを through(通り抜けて)メモリにも到達する、というイメージだよ

参考資料

← 用語集にもどる