基本情報技術者 2018年 春期 午前(科目A) 問11
問題文
キャッシュメモリに関する記述のうち、適切なものはどれか。
選択肢
ア:キャッシュメモリにヒットしない場合に割込みが生じ、プログラムによって主記憶からキャッシュメモリにデータが転送される。
イ:キャッシュメモリは、実記憶と仮想記憶とのメモリ容量の差を埋めるために採用される。
ウ:データ書込み命令を実行したときに、キャッシュメモリと主記憶の両方を書き換える方式と、キャッシュメモリだけを書き換えておき、主記憶の書換えはキャッシュメモリから当該データが追い出されるときに行う方式とがある。(正解)
エ:半導体メモリのアクセス速度の向上が著しいので、キャッシュメモリの必要性は減っている。
🔒 解説は解答すると表示されます
キャッシュメモリの書き込み方式【午前解説】
正解の理由
正解は ウ です。
ウはキャッシュの書込みポリシーとして一般的に使われる2種類を正しく示しています。1つは「キャッシュと主記憶を同時に書き換える方式(ライトスルー、write-through)」で、データを書いた時点で主記憶にも反映されるため一貫性が保ちやすいが書込み回数が増える欠点があります。もう1つは「キャッシュだけを書き換え、主記憶の更新はキャッシュから追い出されるときに行う方式(ライトバック、write-back)」で、書込みを遅延させて主記憶へのアクセスを減らすため高速だが、ダーティビット管理や障害時の整合性確保が必要です。ウはこれらを正しく説明しているため適切です。
ウはキャッシュの書込みポリシーとして一般的に使われる2種類を正しく示しています。1つは「キャッシュと主記憶を同時に書き換える方式(ライトスルー、write-through)」で、データを書いた時点で主記憶にも反映されるため一貫性が保ちやすいが書込み回数が増える欠点があります。もう1つは「キャッシュだけを書き換え、主記憶の更新はキャッシュから追い出されるときに行う方式(ライトバック、write-back)」で、書込みを遅延させて主記憶へのアクセスを減らすため高速だが、ダーティビット管理や障害時の整合性確保が必要です。ウはこれらを正しく説明しているため適切です。
解法ステップ
- 設問のキーワード(キャッシュ、ヒット、ミス、書込み)を確認する。
- キャッシュの基本機能(高速バッファ、ヒット/ミス、ミス時の補充)がどう動くかを思い出す。
- 各選択肢と既知の用語(ライトスルー/ライトバック、仮想記憶の目的など)を照合して誤りを排除する。
- 書込みポリシーの説明が正確かを確認して正答を選ぶ(ウが該当)。
選択肢別の誤答解説
- ア:誤り。キャッシュミスが起きても通常はハードウェアが主記憶から読み出してキャッシュに格納します。プログラム割込みで個別に転送するわけではありません(例外的にソフトウェア制御キャッシュの方式もあるが設問の記述は一般論として不適切)。
- イ:誤り。仮想記憶は主記憶と補助記憶(ディスク)間の容量差と管理を扱う仕組みであり、キャッシュはCPUと主記憶の速度差を埋めるための高速バッファで目的が異なります。
- ウ:正解。ライトスルー(同時書換え)とライトバック(遅延書換え、追い出し時に主記憶更新)の両方式の存在を正しく述べています。
- エ:誤り。半導体メモリの性能向上はあるが、CPUやシステム設計の要求によりキャッシュの必要性は残っており、キャッシュ不要を示す記述は不適切です。
よくある誤解
- 「キャッシュミスで割込みが発生し、プログラムが主記憶へ転送する」は誤りです。キャッシュミス処理は通常ハードウェア(メモリコントローラやキャッシュコントローラ)が行い、ソフトウェア割込みは不要です。
- 「キャッシュは仮想記憶と実記憶の容量差を埋める」は混同です。仮想記憶は主記憶と補助記憶の管理(ページング)であり、キャッシュはCPUと主記憶間の速度差を埋めます。
- 「半導体メモリ速度向上でキャッシュ不要」は誤りです。半導体の高速化は進むがCPU性能向上や階層設計の必要性からキャッシュは依然重要です。
補足コラム
- ライトバック方式では「ダーティビット(dirty bit)」を使ってキャッシュラインが主記憶と異なるかを管理します。追い出し時にダーティなら主記憶へ書き戻します。
- ライトスルーは常に主記憶へ書き込むので一貫性は保ちやすいですが、書込みバンド幅が増えるためバッファや書込み合併(write buffer)で性能対策を行います。
- 実システムではL1/L2/L3といった階層的キャッシュと、書込みポリシー(write-allocate vs no-write-allocate)やキャッシュコヒーレンシ(マルチコア環境)が設計の鍵になります。
FAQ
Q1: キャッシュミスのとき本当にCPUは割込みされませんか?
A1: 通常はハードウェア(キャッシュコントローラやMMU)がメモリから読み出しを行い、CPUは一時的に待機します。ソフト割込みは不要です。
A1: 通常はハードウェア(キャッシュコントローラやMMU)がメモリから読み出しを行い、CPUは一時的に待機します。ソフト割込みは不要です。
Q2: ライトバックは電源断でデータが失われますか?
A2: ライトバックはキャッシュ内のデータが主記憶に反映されるまで遅延するため、電源断やクラッシュ時に失われるリスクがあります。対策として電源監視や定期的なフラッシュがあります。
A2: ライトバックはキャッシュ内のデータが主記憶に反映されるまで遅延するため、電源断やクラッシュ時に失われるリスクがあります。対策として電源監視や定期的なフラッシュがあります。
Q3: ライトスルーとライトバックの使い分け基準は?
A3: 一貫性優先ならライトスルー、性能(書込み回数削減)優先ならライトバックを選びます。多くの現代CPUはハードウェアでコヒーレンシ管理を行いつつ、L1はライトバックが多いです。
A3: 一貫性優先ならライトスルー、性能(書込み回数削減)優先ならライトバックを選びます。多くの現代CPUはハードウェアでコヒーレンシ管理を行いつつ、L1はライトバックが多いです。
関連キーワード: キャッシュメモリ、ライトスルー、ライトバック、ダーティビット、ヒット率、キャッシュミス、書込みポリシー、ライトアロケート、キャッシュコヒーレンシ、L1 L2 L3、主記憶、メモリ階層、メモリコントローラ

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

