情報処理試験を勉強していると、「ライトバックとライトスルーって何が違うの?」と混乱しがちです。こ
の記事では、ライトバック方式の仕組みをライトスルーとの比較を交えて整理します。
対象試験と出題頻度
ライトバックは、応用情報技術者試験で出題されるテーマです。
キャッシュメモリの書込み方式を問う問題として定番化しており、ライトスルー方式との違いを正確に区別できるかが問われます。
詳細をクリックして確認
応用情報技術者
★★☆☆☆
ランクC(応用)余裕があれば覚える
用語の定義
ライトバック(Write Back)とは、一言で言うと
「CPUがデータを書き込む際、キャッシュメモリにだけ書き込み、主記憶への反映はデータが追い出されるときにまとめて行う方式」
のことです。
イメージとしては、「手元のメモ帳にどんどん書き込んで、メモ帳がいっぱいになったときだけ清書ノートに書き写す」という方法です。
いちいち清書ノートを開かないので作業は速いですが、メモ帳と清書ノートの内容が一時的にズレるリスクがあります。
📊 ライトバックの基本情報
| 項目 | 内容 |
|---|---|
| 英語名 | Write Back(ライトバック) |
| 別名 | コピーバック(Copy Back) |
| 分類 | キャッシュメモリの書込み制御方式 |
| 対になる方式 | ライトスルー(Write Through) |
| 主なメリット | 主記憶への書込み回数が減り、高速 |
| 主なデメリット | キャッシュと主記憶の不一致が起き、整合性制御が複雑 |
解説
CPUは非常に高速に動作しますが、主記憶(メインメモリ)への書込みは相対的に遅い処理です。CPUが書き込みのたびに主記憶の応答を待っていたら、処理全体が大幅に遅くなります。
この速度差を吸収するために、書込み動作をキャッシュで受け止め、主記憶への反映を後回しにするのがライトバック方式の考え方です。
動作の流れ
ライトバック方式では、CPUの書込み命令は次の手順で処理されます。
ライトバック方式の書込みフロー
(主記憶と内容が異なることを示すフラグ)
ポイントは「⑤」です。主記憶への書込みが発生するのは、キャッシュ上のデータが別のデータに置き換えられるタイミングだけです。これにより、主記憶へのアクセス回数が大幅に減ります。
ライトスルー方式との比較
ライトバック方式を理解するには、対になるライトスルー方式と並べて整理するのが近道です。
| 比較項目 | ライトバック | ライトスルー |
|---|---|---|
| 書込み先 | キャッシュのみ | キャッシュ+主記憶の両方を同時に |
| 主記憶への反映 | キャッシュからデータが追い出されるときにまとめて | 書込みのたびに毎回 |
| 書込み速度 | 速い(主記憶の応答を待たない) | 遅い(主記憶の応答を待つ) |
| データ整合性 | 一時的に不一致が発生する(コヒーレンシ制御が必要) | 常に一致(整合性を保ちやすい) |
| 回路の複雑さ | 複雑(ダーティビット管理が必要) | 単純 |
| バス占有率 | 低い | 高い(書込みのたびにバスを使う) |
図解:2つの方式の書込み動作の違い
図解:2つの方式の書込み動作の違い
ライトバック方式
書込み
追い出し時だけ書き戻し ↓
💡 主記憶への反映は後回し
→ 書込みが高速・整合性の制御は複雑
ライトスルー方式
書込み
⬆ 毎回、両方に同時書込み
💡 主記憶にも毎回すぐ反映
→ 整合性は常に確保・書込みは低速
では、この用語が試験でどのように出題されるか見ていきましょう。
💡 ライトバックの核心を3行で
・キャッシュにだけ書き込み、主記憶への反映はデータ追い出し時に行う
・主記憶へのアクセス回数が減るため書込みが高速
・一方でキャッシュと主記憶の内容が一時的に不一致になるため、整合性制御(コヒーレンシ)が複雑になる
試験ではこう出る!
ライトバックは、応用情報技術者の午前問題でキャッシュの書込み方式を問う定番テーマです。ライトスルーと「入れ替えて」出題されるため、どちらの説明がどちらの方式かを正確に判別する力が求められます。
📊 過去問での出題実績
| 試験回 | 出題内容 | 問われたポイント |
|---|---|---|
| AP R5春 午前 問10 |
ライトスルー方式とライトバック方式の特徴として適切なものを選ぶ | ・「キャッシュと主記憶の両方に同時に書き込む」がライトスルーの正解 ・ライトバックの説明をライトスルーにすり替えるひっかけ |
| AP R4秋 午前 問9 |
ライトスルーの説明として適切なものを選ぶ | ・ライトバックの「キャッシュだけに書き込む」がひっかけ選択肢 ・「キャッシュと主記憶の両方に書き込む」が正解 |
| AP H25春 午前 問12 |
ライトバック方式を使用する目的を選ぶ | ・「主記憶への書込み頻度を減らす」が正解 ・「コヒーレンシを保つ」はライトスルーの目的でひっかけ |
| AP H23特別 午前 問12 |
ライトバック方式の書込み動作の説明を選ぶ | ・「キャッシュにだけ書き込み、追い出し時に主記憶に書く」が正解 ・メモリインターリーブの説明が混入 |
📝 IPA試験での出題パターン
パターン1:「ライトバック方式の説明を選べ」
4つの選択肢にキャッシュの書込み方式の説明が並び、ライトバックに該当するものを選ぶ形式。ひっかけとして「キャッシュと主記憶に同時に書き込む」(これはライトスルー)、「メモリインターリーブ」「ライトバッファ付きライトスルー」の説明が紛れ込みます。
パターン2:「使用する目的を選べ」
AP H25春・H26秋・FE H29春で繰り返し出題された形式です。正解は「主記憶への書込み頻度を減らす」。「コヒーレンシの確保」「キャッシュ管理の簡素化」はいずれもライトスルー側の特徴なので除外します。
試験ではここまででOKです。ダーティビットの具体的なビット幅やマルチプロセッサでのスヌーピングプロトコルまでは出題されないので、深追いは不要です。
【確認テスト】理解度チェック
ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。
Q. キャッシュの書込み方式であるライトバック方式を使用する目的として、最も適切なものはどれでしょうか?
- A. キャッシュと主記憶の一貫性(コヒーレンシ)を常に保ちながら書込みを行う。
- B. プロセッサから主記憶への書込み頻度を減らし、書込み性能を向上させる。
- C. キャッシュミスが発生したときに、キャッシュの内容を主記憶に書き戻す処理を不要にする。
正解と解説を見る
正解:B
解説:
ライトバック方式は、キャッシュにだけ書き込み、主記憶への反映をデータ追い出し時にまとめて行うことで、主記憶への書込み回数を削減する方式です。目的は「書込み頻度を下げて処理を高速化すること」にあります。
選択肢Aはライトスルー方式の目的です。ライトスルーはキャッシュと主記憶に同時に書き込むため、常にデータの一貫性が保たれます。選択肢Cは誤りです。ライトバック方式ではキャッシュミスによりデータが追い出される際に、変更済みのデータ(ダーティなデータ)を主記憶に書き戻す処理が必ず発生します。書き戻しが「不要になる」のはライトスルー方式の特徴です。
よくある質問(FAQ)
Q. マルチプロセッサ環境ではライトバック方式はどうなりますか?
マルチプロセッサでは、各CPUが独自のキャッシュを持つため、あるCPUがキャッシュに書き込んだ変更を他のCPUが知らないまま古いデータを参照する問題(キャッシュコヒーレンシ問題)が起きます。これを解決するために、スヌープ方式(他CPUのキャッシュを監視する仕組み)やMESIプロトコルなどが使われます。IPA試験の午前問題ではここまで問われませんが、「マルチプロセッサではコヒーレンシ制御が必要」という知識は持っておいて損はありません。
Q. ダーティビットとは具体的に何ですか?
ダーティビットは、キャッシュの各ブロック(ライン)に付与される1ビットのフラグです。値が「1」のとき、そのブロックは書込みによって変更済みであり、主記憶の内容と異なることを意味します。キャッシュからデータを追い出す際、ダーティビットが「1」なら主記憶に書き戻し、「0」なら主記憶と同じ内容なのでそのまま破棄します。この仕組みにより、変更のないデータの不要な書き戻しを省けます。
Q. ライトバッファ付きライトスルーとは何ですか?
ライトスルー方式の弱点である「主記憶への書込みでCPUが待たされる問題」を緩和する改良手法です。キャッシュと主記憶に同時に書き込む代わりに、キャッシュへの書込みと同時にバッファ(一時的な記憶領域)にデータを溜め、バッファから主記憶へ順次書き込みます。AP H23特別 午前問12の選択肢ウにこの説明が登場しており、ライトバックと混同させるひっかけとして使われました。
Q. 実務ではどちらの方式が主流ですか?
現代のPC・サーバ向けCPU(Intel Core、AMD Ryzenなど)は、L1キャッシュにライトバック方式を採用するのが主流です。書込み性能の高さがシステム全体のスループットに直結するためです。一方、組み込みシステムや一部のI/Oデバイス向けでは、回路の単純さやデータ整合性の確保しやすさからライトスルー方式が選ばれる場合もあります。