メインコンテンツへ
コンピュータ構成要素

CPUがキャッシュメモリにデータを書き込む際の動作方式として、ライトバック方式の説明はどれか。

ア.キャッシュメモリにデータを書き込むと同時に、主記憶にも同じデータを書き込む。
イ.キャッシュメモリにデータを書き込み、主記憶への反映はそのキャッシュブロックが追い出されるときにまとめて行う。正解
ウ.キャッシュミスが発生した場合にのみキャッシュと主記憶の両方にデータを書き込み、ヒット時はキャッシュのみを更新する。
エ.データの書込みを常にキャッシュメモリを経由せず、主記憶に直接書き込む。

解説

ライトバック方式は「授業中はメモ帳に走り書きして、家に帰ったときにまとめてノートに清書する」方式です。主記憶への書込み回数を最小限に抑えることで、高速な書込みを実現します。

なぜ イ が正解か

ライトバック方式では、書込みはまずキャッシュのみに対して行われ、そのブロックが更新済みであることを示す『ダーティビット』が立てられます。主記憶への書き戻しはキャッシュブロックが追い出されるときに初めて発生するため、同じアドレスへの書込みが繰り返されても主記憶アクセスは1回で済みます。その分、CPUとのやり取りが高速になりますが、キャッシュと主記憶の内容が一時的に不一致になるため、マルチコア環境ではキャッシュ一貫性の管理が必要になります。

なぜ ア は間違いか

これはライトスルー方式の説明です。書込みのたびにキャッシュと主記憶の両方を同時に更新するため、データの一貫性は常に保たれますが、主記憶アクセスが毎回発生するため書込み速度はライトバックより劣ります。シンプルさを重視する小規模システムや、マルチコアでの一貫性管理を簡単にしたい場面で採用されることがあります。

なぜ ウ は間違いか

「ミスしたときだけ書く」という表現がもっともらしく見えますが、これはキャッシュの書込みアロケーション方式(ライトアロケート)の話と混同した誤りです。ライトバックの本質は『どのタイミングで主記憶に反映するか』(追い出し時)であり、ミスヒットの有無で挙動が変わるという話ではありません。

なぜ エ は間違いか

これはライトアラウンド(ライトバイパス)方式の説明です。動画フレームバッファのように一度書いたら二度と読まないデータを扱う際、あえてキャッシュを汚染しないために使われることがあります。通常のプログラム処理ではほとんど使われません。

出典: AI生成問題(学習用)