戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

基本情報技術者 2009年 春期 午前(科目A)12


問題文

キャッシュメモリに関する記述のうち、適切なものはどれか。

選択肢

書込み命令を実行したときに、キャッシュメモリと主記憶の両方を書き換える方式と、キャッシュメモリだけを書き換えておき、主記憶の書換えはキャッシュメモリから当該データが追い出されるときに行う方式とがある。(正解)
キャッシュメモリにヒットしない場合に割込みが生じ、プログラムによって主記憶からキャッシュメモリにデータが転送される。
キャッシュメモリは、実記憶と仮想記憶のメモリ容量の差を埋めるために採用される。
半導体メモリのアクセス速度の向上が著しいので、キャッシュメモリの必要性は減っている。

🔒 解説は解答すると表示されます

キャッシュの書込み方式【午前解説】

正解の理由

設問の記述の中で正しいのは、キャッシュへの書き込み方法に関する説明です。キャッシュに対する書き込みには主に「キャッシュと主記憶の両方を書き換える方式(ライトスルー)」と「キャッシュだけを書き換え、主記憶への更新は後で行う方式(ライトバック)」の二種類があり、これを説明している選択肢が正しいため、が正解です。ライトバック方式ではキャッシュ内のデータが変更された状態(ダーティ)が記録され、当該行が追い出される際に主記憶へ書き戻されます。ライトスルーは常に主記憶にも書き込むため整合性は保ちやすい一方で書き込み遅延が生じやすい、という特徴があります。

解法ステップ

  1. 設問のキーワードを確認:今回は「キャッシュメモリ」「書込み」「主記憶への反映」などが焦点。
  2. 基本概念を思い出す:ライトスルー(write-through)/ライトバック(write-back)とダーティビットの意味。
  3. 各選択肢がハードウェアの一般動作(自動的なデータ転送/割込みが要るか等)と一致するかを検証する。
  4. 一貫性のある説明(実際に存在する方式)を選ぶ。

選択肢別の誤答解説

  • : 正しい。ライトスルー(キャッシュと主記憶の両方を書き換える)とライトバック(キャッシュのみ更新し、追い出し時に主記憶を更新)の違いを説明している。ライトバックはダーティビットで追跡されるのが一般的。
  • イ: 誤り。通常のCPUキャッシュヒット/ミス処理はハードウェアが主記憶からラインをフェッチし、プロセッサはその間ステールする(実行を一時停止する)が、キャッシュミスで即座に割込みが発生してプログラムが自発的にデータを転送する、という動作は一般的ではない。ソフトウェア管理型キャッシュ(例:一部の組込み系や仮想メモリのページフォールト)は例外だが、通常のCPUのレベル1/2キャッシュはハードウェア自動制御が行う。
  • ウ: 誤り。キャッシュメモリはCPUと主記憶のアクセス速度差(階層的な速度ギャップ)を埋めるために用いられる。一方、仮想記憶は主記憶と補助記憶(ディスク)との間で容量を拡張するための仕組みであり、目的や動作原理が異なる。
  • エ: 誤り。半導体メモリの速度向上は続いているが、CPUの演算速度向上やレイテンシ要件に比べれば依然として主記憶は遅い。したがってキャッシュは今も重要であり、特にレイテンシと帯域を改善するために不可欠である。

よくある誤解

  • L1キャッシュは「高い連想度(高アソシアティビティ)」である、という誤解。実際にはL1は低レイテンシを優先するため容量が小さく、直接マップや低い連想度(2〜4ウェイなど)が多い。L2/L3は容量を増やしてミス率を下げるため高い連想度を採る傾向がある。
  • キャッシュミス=割込み発生、という誤解。通常のキャッシュミスではCPUはハードウェア的にメモリからデータを取得して処理を続行する(ソフトウェア割込みは発生しない)。割込みや例外はページフォールトなど特定の条件で発生する。
  • キャッシュと仮想記憶を同一視する誤解。両者は階層的メモリの改善を目指す点では共通するが、役割と実装(高速小容量のバッファ vs 仮想化による容量拡張)は別物。

補足コラム

  • ライトスルー(Write-Through)
    • 書き込み時にキャッシュと主記憶の両方を更新する。整合性は簡単に保てるが、書き込み数が増えると主記憶への負荷が高くなる。書き込みバッファを併用して性能を改善することが多い。
  • ライトバック(Write-Back)
    • キャッシュのみを更新し、該当行が追い出される際に主記憶へ書き戻す。ダーティビットで変更を追跡するため、主記憶への書き込み回数が減り効率的。ただしコヒーレンシ(複数キャッシュ間の整合性)制御が複雑になる。
  • 書き込み割当(Write Allocate)と非割当(No-Write Allocate)
    • 書き込みでミスした際にキャッシュに読み込むか否かの方針。ライトバックと組み合わせて用いられることが多い(write-back + write-allocate が一般的)。
  • キャッシュ構成の実務目安
    • L1: 小容量、極低レイテンシ、低〜中連想度(例:直接マップ〜4ウェイ)を採ることが多い。
    • L2/L3: より大容量、やや高いレイテンシ、より高い連想度でミス率低減を狙う。

FAQ

Q: ダーティビットとは何ですか?
A: キャッシュ内のあるラインが主記憶と比べて書き換えられているかを示すフラグです。セットされた場合、そのラインを追い出すときに主記憶へ書き戻す必要があります。
Q: キャッシュミスで必ずプログラムが中断されますか?
A: 通常のキャッシュミスではハードウェアがメモリからデータを読み込み、プロセッサはその間待機(ステール)しますが、プログラムに明示的な割込みや例外が発生するわけではありません。ページフォールトなどは別途ソフトウェア介入(例:割込み)を伴います。
Q: 「キャッシュがあれば主記憶は必要ない」のように聞こえますが?
A: いいえ。キャッシュは主記憶を補助してアクセス速度を改善するものであり、容量そのものを増やすものではありません。主記憶は依然として必要です。

関連キーワード: キャッシュメモリ、ライトバック、ライトスルー、ダーティビット、書き込み割当、キャッシュミス、アソシアティビティ、メモリ階層、コヒーレンシ、書き込みバッファ
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

基本情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について