基本情報

基本情報 平成29年度 春期 問9|テクノロジ系に関する問題

問題

基本情報 | 平成29年度 春期 | 分野:テクノロジ系

キャッシュの書込み方式には, ライトスルー方式とライトバック方式がある。ラ イトバック方式を使用する目的として, 適切かものはどれか。

キーボード:1〜4で選択・Enterで次へ

タップするとすぐ答え合わせ

答え合わせ

正解は D
  • A
  • B
  • C
  • D

自信の3択

えらぶと、この端末に記録します(登録はいりません)

解説

答えは d「主記憶への書込み頻度を減らす」 です。

キャッシュへの書込み方式は2種類:

  • ライトスルー:キャッシュと主記憶に同時書込み(安全だけど遅い)
  • ライトバック:キャッシュにだけ書き込み、追い出すときにまとめて主記憶へ書き戻す(高速)

ライトバックは「主記憶への書込み回数を減らして速くする」のが目的です。

👉 覚え方:バック=後でまとめて戻す!

ほかの選択肢:a 一貫性保持=ライトスルーの特徴/b キャッシュミス処理を不要にする→無理/c 簡単な回路=ライトスルーのほうが簡単。

なぜこれが正解か

正解は d。ライトバック方式は書込みをキャッシュにのみ反映し、該当ラインが追い出される(リプレース)タイミングで主記憶へまとめて書き戻す方式。これによりプロセッサから主記憶への書込み頻度を減らし、バスのトラフィックと書込みレイテンシを大幅に削減できる。

各選択肢の解説

  • a 一貫性(コヒーレンシ)保持:ライトスルー方式の特徴。書込み時点で常にキャッシュ=主記憶。
  • b キャッシュミス時の書き戻し不要:ライトバックではダーティなラインの追い出し時に書き戻しが必須で、矛盾。
  • c 簡単な回路:ダーティビット管理が必要なライトバックのほうが回路は複雑。ライトスルーの方がシンプル。
  • d 主記憶への書込み頻度を減らす → 正解。

覚え方・ひっかけ注意

ライトスルー=同時書き=安全だが遅い・回路単純、ライトバック=後でまとめ書き=高速・回路複雑・一貫性管理必要。マルチプロセッサではキャッシュコヒーレンスプロトコル(MESI等)が必要で、ライトバックでも整合性を担保。

理論的背景

キャッシュ書込み方式は 書込みヒット時 と 書込みミス時 で4通りの組合せ:

  • 書込みヒット時:ライトスルー(write-through) vs ライトバック(write-back)
  • 書込みミス時:ライトアロケート(write-allocate, ミスしたラインをキャッシュに読み込む) vs ノーアロケート(write-no-allocate, 主記憶のみ更新)

組合せ例:write-through + no-allocate(単純)、write-back + write-allocate(高性能、現代CPUの標準)。

ダーティビット管理

ライトバックではキャッシュラインにダーティビット(更新フラグ)を追加し、追い出し時にダーティなら主記憶へ書き戻す。クリーンなラインは破棄のみで済む。これにより未使用書込みを省略できるのが性能利得の源泉。

マルチプロセッサとコヒーレンス

ライトバック方式は他CPUが古い主記憶値を読む可能性があるため、スヌーピングまたはディレクトリ方式のコヒーレンスプロトコルが必要:

  • MESI(Modified, Exclusive, Shared, Invalid):x86の標準。
  • MOESI(+Owned):AMD K8以降、ARM等で採用。
  • MESIF(+Forward):Intel QPI、複数Shared状態の最適化。

コヒーレンス維持のためバス上でスヌープを行う、ライトバック+MESIの実装が現代のマルチコアCPUの共通設計。

試験での位置づけ

FE「コンピュータアーキテクチャ」分野で頻出。キャッシュ階層(L1/L2/L3)、書込み方式、リプレースアルゴリズム(LRU/random)、ヒット率はセットで出題。応用情報・エンベデッドではキャッシュコヒーレンス、MMU、TLBまで踏み込む。

性能トレードオフ

  • ライトスルーはライトバッファ(書込み待ち合わせFIFO)を組合せれば高速化可。CPUが書込み完了を待たずに次命令へ進める。
  • ライトバックでも書き戻し遅延が突発的に発生(追い出しが集中するとバースト的書込み)。
  • L1はライトスルー、L2/L3はライトバックという階層別使い分けも存在する(古いCPU)。

選択肢の発展補足

aのコヒーレンシはマルチプロセッサ環境で重要な概念。SC(sequential consistency)、TSO(total store order)、RC(relaxed consistency)のメモリモデルがあり、x86はほぼTSO、ARMはより緩やか。プログラマにはメモリバリア命令(mfence, dmb等)で意図的に順序保証する必要がある。

この問題の根拠出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成29年度 春期 問9
訂正の記録この問題の訂正はありません(サイト全体の記録)
出典と作り方

出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成29年度 春期 問9/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビ独自の3段階の解説(初級・標準・上級)です。