基本情報技術者 2017年 春期 午前(科目A) 問09
問題文
キャッシュの書込み方式には、ライトスルー方式とライトバック方式がある。ライトバック方式を使用する目的として、適切なものはどれか。
選択肢
ア:キャッシュと主記憶の一貫性(コヒーレンシ)を保ちながら、書込みを行う。
イ:キャッシュミスが発生したときに、キャッシュの内容の主記憶への書き戻しを不要にする。
ウ:個々のプロセッサがそれぞれのキャッシュをもつマルチプロセッサシステムにおいて、キャッシュ管理をライトスルー方式よりも簡単な回路構成で実現する。
エ:プロセッサから主記憶への書込み頻度を減らす。(正解)
🔒 解説は解答すると表示されます
ライトバック方式の目的【午前解説】
正解の理由
正解は エ です。ライトバック方式はキャッシュに対する書込みを即座に主記憶に反映せず、まずキャッシュ上のデータを更新して「ダーティビット」で変更を記録します。キャッシュラインが置換されるか明示的にフラッシュされるときに初めて主記憶へ書き戻すため、同一ラインへの複数回の書込みは主記憶への単一書込みに集約でき、プロセッサから主記憶への書込み頻度と総トラフィックを減らせます。これが選択肢エ(プロセッサから主記憶への書込み頻度を減らす)に対応します。
解法ステップ
- 問題文で「ライトバック方式」を目的を問うている点を確認する。
- ライトバックの基本動作(キャッシュに書き込んでダーティにし、後でまとめて主記憶へ書き戻す)を頭に描く。
- 各選択肢を「即時主記憶書込み/遅延・集約/コヒーレンシ簡素化/主記憶不要化」の観点で照合する。
- 「書込み頻度を減らす」という特徴と一致する選択肢を正解とする。
選択肢別の誤答解説
- ア: キャッシュと主記憶の一貫性(コヒーレンシ)を保ちながら、書込みを行う。
→ 誤り。これはライトスルー方式の特徴に近い説明です。ライトスルーは書込み時に主記憶にも即時反映するため単一コピーの一貫性は保ちやすいですが、ライトバック自体は一貫性を保つ仕組みを自動提供するものではありません。 - イ: キャッシュミスが発生したときに、キャッシュの内容の主記憶への書き戻しを不要にする。
→ 誤り。キャッシュミス(読み込みミス)時に書き戻しが不要になるとは限りません。ライトバックでは、ダーティなキャッシュラインが追放されるときに主記憶へ書き戻す必要があるため、ミス時に書き戻しが発生する場合があります。 - ウ: 個々のプロセッサがそれぞれのキャッシュをもつマルチプロセッサシステムにおいて、キャッシュ管理をライトスルー方式よりも簡単な回路構成で実現する。
→ 誤り。むしろライトバックは複数キャッシュ間のコヒーレンシを維持するためにMESIなどのプロトコルが必要となり、ハードウェアの複雑化を招くことが多いです。 - エ: プロセッサから主記憶への書込み頻度を減らす。
→ 正解。ライトバックは書込みをキャッシュ内で集約することで主記憶への書込み回数を削減します。
よくある誤解
- ライトバックは「常に主記憶への書込みを不要にする」と誤解しやすいが、書込みを完全に不要にするわけではなく、追放時などで主記憶へ書き戻す必要があります。
- 「ライトバックはコヒーレンシ問題を自動的に解決する」と考える誤り。むしろ複数キャッシュ間の整合性は追加のプロトコルで管理する必要があり、実装は複雑になります。
- 「ライトスルーと比べて回路が必ず簡単」という誤解。ライトバックはダーティ管理や追放時処理が必要で、マルチプロセッサではむしろ複雑化します。
補足コラム
- ダーティビットと書き戻し動作:各キャッシュラインには「ダーティビット」があり、書込みが行われるとこのビットが立ちます。ラインが置換される(追放される)時にダーティなら主記憶へ書き戻します。
- 性能面のメリットとデメリット:メリットは主記憶への書き込みトラフィック削減と帯域節約。デメリットは電源断時のデータ喪失リスク(未書込みのダーティデータ)や、マルチプロセッサでのコヒーレンシ管理の複雑化です。
- 実用上の工夫:ライトバッファや書込みバッファを使って主記憶への書き戻しを非同期で行い、プロセッサの待ち時間を短縮します。コヒーレンシはMESIやその他のキャッシュコヒーレンシプロトコルで解決します。
- 簡単な例:同じキャッシュラインに 回書き込みが発生した場合、ライトスルーなら主記憶にも 回書き込むが、ライトバックだと追放時にまとめて 回だけ書き戻す可能性があるため大幅に削減できる。
FAQ
Q1: ライトバックは常に高速ですか?
A1: 書込み回数を減らせるため帯域や総書込み時間が改善することが多いですが、コヒーレンシや追放時の書き戻しによる遅延、電源断時のリスクなど注意点があります。
A1: 書込み回数を減らせるため帯域や総書込み時間が改善することが多いですが、コヒーレンシや追放時の書き戻しによる遅延、電源断時のリスクなど注意点があります。
Q2: ダーティビットがあるなら主記憶と一致しないのでは?整合性はどうする?
A2: ダーティビットはキャッシュ内部での変更を示すだけで、複数コア間の整合性はMESI等のコヒーレンシプロトコルで管理します。ライトバック単体では整合性を保証しません。
A2: ダーティビットはキャッシュ内部での変更を示すだけで、複数コア間の整合性はMESI等のコヒーレンシプロトコルで管理します。ライトバック単体では整合性を保証しません。
Q3: ライトバックはどんな場面で有効か?
A3: 書込み頻度が高く、同一キャッシュラインへ繰返し書込みが多いワークロードで特に有効です。メモリ帯域が制約となるシステムで効果が大きいです。
A3: 書込み頻度が高く、同一キャッシュラインへ繰返し書込みが多いワークロードで特に有効です。メモリ帯域が制約となるシステムで効果が大きいです。
関連キーワード: キャッシュメモリ、ライトバック、ライトスルー、ダーティビット、書込みバッファ、キャッシュコヒーレンシ、MESI、キャッシュ置換、メモリ帯域、書込み集約

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

