基本情報技術者 2010年 秋期 午前(科目A) 問12
問題文
キャッシュメモリに関する記述のうち、適切なものはどれか。
選択肢
ア:書込み命令を実行したときに、キャッシュメモリと主記憶の両方を書き換える方式と、キャッシュメモリだけを書き換えておき、主記憶の書換えはキャッシュメモリから当該データが追い出されるときに行う方式とがある。(正解)
イ:キャッシュメモリにヒットしない場合に割込みが生じ、プログラムによって主記憶からキャッシュメモリにデータが転送される。
ウ:キャッシュメモリは、実記憶と仮想記憶とのメモリ容量の差を埋めるために採用される。
エ:半導体メモリのアクセス速度の向上が著しいので、キャッシュメモリの必要性は減っている。
キャッシュメモリに関する記述のうち、適切なものはどれか。【午前2 解説】
要点まとめ
- 結論→キャッシュの書込み方式には主記憶に即時反映するライトスルーと、キャッシュ内だけ更新して追い出し時に主記憶へ書くライトバックがある。
- 根拠→ライトスルーは一貫性が取りやすく実装が単純、ライトバックは主記憶への書込回数を減らして性能向上を図るために使われる。
- 差がつくポイント→キャッシュミスはCPUがハードウェア的に待機して主記憶から取りに行うのが通常で、割込み発生や仮想記憶の機構とは区別して考える必要がある。
正解の理由
正解は ア です。
選択肢アはキャッシュの「ライトスルー(主記憶と同時書換)」と「ライトバック(キャッシュのみ更新し追い出し時に主記憶へ書換)」という代表的な2方式を正しく説明しており、キャッシュの基本的な動作を的確に表現しています。
選択肢アはキャッシュの「ライトスルー(主記憶と同時書換)」と「ライトバック(キャッシュのみ更新し追い出し時に主記憶へ書換)」という代表的な2方式を正しく説明しており、キャッシュの基本的な動作を的確に表現しています。
よくある誤解
- 「キャッシュミスで必ず割込みが起きる」:通常のキャッシュミスはハードウェアが処理し、CPUは遅延するが割込みは発生しない。例外はページフォルトなどOS介入が必要なケース。
- 「キャッシュは仮想記憶の不足を埋めるためのもの」:仮想記憶は容量拡張(ディスク利用)で、キャッシュは速度差を埋め、アクセス遅延を低減するために使われる。
- 「半導体メモリが速くなればキャッシュは不要になる」:DRAMやSRAMの速度向上はあるがCPUの高速化やメモリ階層の差(レイテンシ)が残るためキャッシュは依然必要。
解法ステップ
- 各選択肢のキーワード(書込み方式、割込み、実記憶と仮想記憶、半導体速度)を把握する。
- キャッシュの基本概念(目的=CPUと主記憶の速度差を埋める、ミスのハンドリング方法)と用語(ライトバック/ライトスルー、ページフォルト)を照合する。
- 選択肢ごとに事実と照らし合わせ、矛盾がないものを選ぶ。アは用語と動作が一致するため正解。
選択肢別の誤答解説
- ア:正解。ライトスルー(書込みを主記憶にも即時反映)とライトバック(追い出し時に主記憶へ書換)を正確に記述。ダーティビット等の実装要素が前提になるが概念として正しい。
- イ:誤り。キャッシュミスは通常ハードウェアが自動で主記憶からデータを転送し、CPUはその読み込みを待つ(ストール)。割込みが発生するのはページフォルトのようにOS介入が必要な例外時であり、一般的なキャッシュミスではない。
- ウ:誤り。キャッシュは「速度差」を埋めるために採用される。仮想記憶は主に容量拡張(ディスクを使った疑似記憶)であり、目的と機構が異なる。
- エ:誤り。半導体メモリの性能向上はあるが、CPU速度とのギャップ(メモリ壁)は依然存在し、キャッシュは今も重要である。むしろ階層化で性能最適化は続いている。
補足コラム
- ライトバック方式では「ダーティビット」を使ってキャッシュラインが主記憶と不整合かを示し、追い出す際にのみ書込みを行って帯域を節約します。一方ライトスルーは整合性維持が容易で、書込みバッファを併用して遅延を緩和することが多いです。
- キャッシュのレベル(L1/L2/L3)、直接マップ/セットアソシアティブ/フルアソシアティブ、インクルーシブ/エクスクルーシブ設計なども性能に影響します。
- キャッシュミス処理の一種である「ページフォルト」は仮想記憶管理に関わり、OSによる割込み(トラップ)処理が発生する点で通常のキャッシュミスと異なります。
FAQ
Q1. キャッシュミスで必ずCPUが割込みされますか?
A1. いいえ。通常はハードウェアがメモリからデータを取得しCPUは待機(ストール)します。割込みが起きるのはページフォルトなどOS介入が必要な場合です。
A1. いいえ。通常はハードウェアがメモリからデータを取得しCPUは待機(ストール)します。割込みが起きるのはページフォルトなどOS介入が必要な場合です。
Q2. ライトバックとライトスルー、どちらが速いですか?
A2. 一般にライトバックは主記憶への書込回数を減らすため効率的で高速化に寄与しますが、整合性管理が必要です。ライトスルーは整合性が容易で設計が単純です。
A2. 一般にライトバックは主記憶への書込回数を減らすため効率的で高速化に寄与しますが、整合性管理が必要です。ライトスルーは整合性が容易で設計が単純です。
Q3. キャッシュは仮想記憶と一緒に使われますか?
A3. はい。実際のシステムでは仮想アドレスを使ったキャッシュ(仮想インデックス)や物理アドレスを使う設計があり、相互作用に注意が必要ですが、目的は異なります(速度改善 vs 容量拡張)。
A3. はい。実際のシステムでは仮想アドレスを使ったキャッシュ(仮想インデックス)や物理アドレスを使う設計があり、相互作用に注意が必要ですが、目的は異なります(速度改善 vs 容量拡張)。
Q4. 半導体メモリの速度向上でキャッシュは不要になりますか?
A4. いいえ。CPUとメモリの性能向上速度は一致せず、レイテンシ差が残るためメモリ階層としてのキャッシュは依然重要です。
A4. いいえ。CPUとメモリの性能向上速度は一致せず、レイテンシ差が残るためメモリ階層としてのキャッシュは依然重要です。
関連キーワード: キャッシュメモリ、ライトバック、ライトスルー、ダーティビット、キャッシュヒット、キャッシュミス、主記憶、ページフォルト、キャッシュ整合性、メモリ階層、ミスハンドリング、書込みバッファ、アソシアティビティ

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

