ライトバック方式
キャッシュメモリへの書込み方式の1つ。更新をまずキャッシュメモリだけに反映し、変更済みのデータを追い出すときなどに主記憶へ書き戻す。同じ場所への更新をまとめることで、主記憶への書込み回数を減らせる。
イマシルちゃんの解説
CPUの近くに置くキャッシュメモリは、主記憶より短い時間でデータを読み書きできるよ。
ライトバック方式は、書込みをまずキャッシュメモリだけで済ませ、主記憶への反映を後に回す方式なんだ。
変更した場所にはダーティビットという印を付けて、まだ反映していないことを覚えておくよ。
そのデータを追い出すときなどに、最新の内容を主記憶へ書き戻すんだ。
同じ場所を何度も更新しても、そのたびに主記憶へ書かずに済むから、書込みの負担を減らせるよ。
この解説はわかりやすかったですか?
より深い解説
定義
ライトバック方式は、CPUがデータを書き込むとき、キャッシュメモリだけに書き込む方式である。主記憶への反映は、そのデータ(ブロック)がキャッシュから追い出されるときにまとめて行う。これを書き戻し(ライトバック)という。
ダーティビット
キャッシュの各ブロックには、書き換えられて主記憶と内容が違っているかどうかを示すダーティビットが付いている。
| ダーティビット | 状態 | 追い出すとき |
|---|---|---|
| 0(クリーン) | 主記憶と同じ内容 | 書き戻さずに捨ててよい |
| 1(ダーティ) | 書き換えられ、主記憶より新しい | 主記憶に書き戻す必要がある |
特徴
| 項目 | 内容 |
|---|---|
| 書込みの速さ | キャッシュに書くだけなので速い |
| 主記憶との一致 | 書き戻すまでの間、主記憶の内容は古い |
| 主記憶へのアクセス回数 | 同じデータを何度書き換えても、書き戻しは1回で済むので少ない |
| 仕組み | ダーティビットの管理などが必要で複雑 |
キャッシュミスのときの動き
読出しのときにキャッシュミスが起き、新しいデータを入れるために追い出すブロックがダーティだった場合は、まずそのブロックを主記憶に書き戻してから、新しいデータを読み込む。そのぶん、キャッシュミスのときの処理には時間がかかる。
注意が必要な場面
| 場面 | 問題 |
|---|---|
| 複数のCPU(コア)がそれぞれキャッシュを持つ | あるCPUのキャッシュだけが新しく、ほかのCPUが古いデータを読むおそれがある。各キャッシュの一致を保つ仕組み(キャッシュコヒーレンシ、MESIプロトコルなど)が必要になる |
| 電源が突然落ちる | キャッシュにしかない最新のデータが失われる。ストレージのキャッシュでは、バッテリーで保護するなどの対策をとる |
ライトスルー方式との比較
| ライトバック方式 | ライトスルー方式 | |
|---|---|---|
| 書き込む先 | キャッシュだけ | キャッシュと主記憶の両方 |
| 書込みの速さ | 速い | 遅い |
| 主記憶との一致 | 一時的に一致しない | 常に一致する |
| 追い出すときの書き戻し | 書き換えたデータなら必要 | 不要 |
実際の試験ではここに出る!全1問
ネットワークスペシャリスト
- 午前Ⅱ