基本情報技術者 2012年 春期 午前(科目A) 問13
問題文
キャッシュメモリに関する記述のうち、適切なものはどれか。
選択肢
ア:キャッシュメモリの転送ブロックの大きさを仮想記憶のページの大きさと同じにすると、プログラムの実行効率が向上する。
イ:キャッシュメモリは高速アクセスが可能なので、汎用レジスタと同じ働きをする。
ウ:主記憶のアクセス時間とプロセッサの命令実行時間の差が大きいマシンでは、多段のキャッシュ構成にすることで実効アクセス時間が短縮できる。(正解)
エ:ミスヒットが発生するとキャッシュ全体は一括消去され、主記憶から最新のデータの転送処理が実行される。
🔒 解説は解答すると表示されます
キャッシュメモリの多段構成【午前解説】
正解の理由
選択肢の中で正しいのは、多段のキャッシュ構成により実効アクセス時間が短縮できるという記述です。CPUと主記憶(メインメモリ)のアクセス時間差が大きいと、単一レベルのキャッシュだけでは充分なヒット率が得られない場合があります。L1(小・高速)とL2/L3(大・比較的遅い)の階層を設けることで、短いアクセス時間のレベルで高いヒット率を確保し、主記憶まで到達する頻度を下げることができます。その結果、全体の平均アクセス遅延(実効アクセス時間)が短くなります。
解法ステップ
- 設問のキーワードを抽出する(転送ブロック、汎用レジスタ、多段、ミス時の挙動)。
- 各選択肢がキャッシュの設計原理や動作(階層、ブロック、置換、書き込み)と整合するか確認する。
- 数式や概念を当てはめて検証する。特に「多段」であれば実効アクセス時間が段階的に表現できるかを考える。
- 明らかに常識や実際の実装と合わない文(全体消去など)は誤りと判断する。
選択肢別の誤答解説
- ア: キャッシュブロックと仮想記憶ページを同一にするのが常に良いとは限りません。ページは通常大きく、キャッシュブロックよりも大きいと主記憶からの転送コストが増え、TLBや仮想→物理の問題も発生し得ます。
- イ: キャッシュはレジスタの代替ではありません。汎用レジスタはプログラムが明示的に利用する高速記憶であり、キャッシュはメモリアクセスを高速化する階層ストレージです。アクセス方法や寿命、可視性が異なります。
- ウ: 正解。CPUと主記憶の遅延差が大きい場合に多段キャッシュでヒット率向上と実効アクセス時間短縮が期待できます。
- エ: ミスヒット発生時にキャッシュ全体を一括消去することは通常ないです。一般には該当ライン(ブロック)を置換し、書き込みポリシーに応じて主記憶へ書き戻すかどうかを判断します。
よくある誤解
- 「キャッシュのブロックサイズをページサイズと同じにすれば常に効率が良くなる」は誤り。ページサイズをそのまま使うとキャッシュミスで大きな転送が必要になり、局所性やT LB/仮想化の問題を引き起こす可能性があります。
- 「キャッシュは汎用レジスタと同じ働きをする」は誤解。レジスタはCPUの命令セットから直接参照されるアーキテクチャ要素であり、キャッシュは透明な階層記憶であり命令セット上のレジスタとは役割が異なります。
- 「ミスが発生するとキャッシュ全体を一括消去する」は誤り。通常は該当ブロックだけを置換し、書き込みポリシー(ライトバック/ライトスルー)に応じて主記憶への反映を行います。
補足コラム
- 実効アクセス時間(EAT)の例:L1のヒット率を 、L1時間を 、L2ヒット率を 、L2時間を 、主記憶時間を とすると、 これにより各レベルのヒット率と遅延が全体に与える影響が明確になります。
- 書き込みポリシー:ライトスルーは主記憶と常に同期させるため一貫性は保ちやすいが書き込みコストが高い。ライトバックは高効率だがコヒーレンシ管理が必要です。
- インクルージョン方針:上位キャッシュのデータが下位キャッシュに存在するか(inclusive/exclusive)で設計と性能が変わります。
FAQ
Q1: 多段キャッシュは常に有利ですか?
A1: 多段は大抵有利ですが、設計やコスト、電力、コヒーレンシ管理の複雑化を招くため無条件で最適とは限りません。
A1: 多段は大抵有利ですが、設計やコスト、電力、コヒーレンシ管理の複雑化を招くため無条件で最適とは限りません。
Q2: キャッシュブロックサイズはどう決めるべきですか?
A2: 空間的局所性やメモリ帯域、置換効率、ハードウェア制約を勘案し、極端に大きすぎない値を選びます。ページサイズと同一にするのは一般的ではありません。
A2: 空間的局所性やメモリ帯域、置換効率、ハードウェア制約を勘案し、極端に大きすぎない値を選びます。ページサイズと同一にするのは一般的ではありません。
Q3: ミスヒット時はどの範囲が置換されますか?
A3: 通常は単一のキャッシュライン(ブロック)単位で置換され、必要に応じて主記憶への書き戻しが行われます。
A3: 通常は単一のキャッシュライン(ブロック)単位で置換され、必要に応じて主記憶への書き戻しが行われます。
関連キーワード: キャッシュメモリ、ヒット率、実効アクセス時間、ブロックサイズ、ライトバック、ライトスルー、階層キャッシュ、コヒーレンシ、TLB、置換ポリシー

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

