プログラムを実行する際に、一時的に主記憶からキャッシュメモリにデータを格納し、CPUがデータにアクセスする時間を高速化させるという話を前述しました。
では逆に、「ファイル1に”ABC...”を書込みなさい。」といったかたちで、データの追加や更新などの命令がある場合はどうでしょうか?
まず、CPUはキャッシュ上のデータを更新します。
しかし、キャッシュ上のデータは複製でしかないので、いずれ主記憶に更新したデータを送る必要があります。この書込む方式には、ライトスルー方式とライトバック方式があります。
ライトスルー方式:CPUから書込み命令が出された際、キャッシュメモリと主記憶の両方へ更新したデータを送る方式。
ライトバック方式:CPUから書込み命令が出された際、まずはキャッシュメモリのデータを更新します。そして、主記憶に更新したデータを送るタイミングは、キャッシュ上のデータが追い出されるタイミングとなります。
つまり、キャッシュ上でプログラムAの更新データを格納していたが、CPUは次にプログラムBのデータを処理するため、キャッシュの領域を空けなくてはいけなくなります。
この時、プログラムAのキャッシュ上の更新データを主記憶へ戻すことになります。