主記憶とキャッシュメモリ
CPU(プロセッサ)が計算をするときにデータを主記憶またはキャッシュメモリから読み込むという動作をします。読み込み速度はキャッシュメモリの方が圧倒的に速いです。よく使うデータはキャッシュメモリに持たせた方がCPUの処理速度が向上します。CPUがデータを取得する時のフローとして
- キャッシュメモリにデータが存在するか確認
- キャッシュメモリにデータがなければ主記憶からデータを取得する
- 主記憶から取得したデータをキャッシュメモリに書き込む
となります。
write-through方式
stack overflowに記載されていた内容として、write-throughはCPUの計算処理によって値が変更された場合、キャッシュメモリに更新後の値を書き込むのですが、同時に主記憶に対しても書き込みを行います。これにより主記憶とキャッシュメモリの整合性(coherency)を保つことができるので、コンピューターシステムのアーキテクチャーがシンプルになります。
The benefit of write-through to main memory is that it simplifies the design of the computer system.
引用:「Write-back vs Write-Through caching?」
write-back方式
write-back方式はwrite-through方式とは異なり、CPUの計算処理によって値が変更された場合、キャッシュメモリにデータを書き込むだけで主記憶にデータを書き込むということはしません。なのでタイミングによってどちらか一方が最新データであるといった状態が発生します。
if write-back is used, sometimes the up-to-date data is in a processor cache, and sometimes it is in main memory.
引用:「Write-back vs Write-Through caching?」
主記憶とキャッシュメモリの整合性(coherency)が保てないのでコンピューターシステム側で不具合が起きないように良い感じに調整する必要があり、これによってコンピューターシステムのアーキテクチャーが複雑化します。ただ主記憶に対しての書き込み頻度が減るので書き込み速度が向上します。
参考文献: