基本情報

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

問題

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

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

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

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

答え合わせ

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

自信の3択

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

解説

答えは c です。

キャッシュメモリへの書き込みには2つの方式:

  • ライトスルー:キャッシュと主記憶に同時に書く(安全だけど遅い)
  • ライトバック:キャッシュだけに書いておき、キャッシュから追い出されるときに主記憶へまとめ書き(速い)

選択肢cはこの2方式を正確に説明しています。

👉 覚え方:スルー=両方同時、バック=後でまとめ!

ほかの選択肢:a 割込みでプログラム転送=実際はハードウェアが自動/b 仮想記憶との混同/d キャッシュ不要論=今でも必須技術。

なぜこれが正解か

正解は c。キャッシュメモリへの書き込み方式は2種類:

  • ライトスルー方式:データ書き込み時にキャッシュと主記憶の両方を同時更新。常に一貫性が保たれるが、主記憶への書き込み頻度が多くなる。
  • ライトバック方式:キャッシュのみ更新し、該当キャッシュラインが追い出される(リプレース)タイミングで主記憶へ書き戻す。主記憶アクセス頻度を減らし高速化。

選択肢cはこの2方式の説明として正確。

各選択肢の解説

  • a 割込み発生時にプログラムが主記憶からキャッシュ転送:ハードウェアが自動で行うためプログラム介入は不要。誤り。
  • b 実記憶と仮想記憶のメモリ容量差を埋めるためのキャッシュ:ページ・スワップ機構の説明であり、CPUキャッシュの目的とは異なる。CPUキャッシュは主記憶とCPUの速度差を埋める。
  • c ライトスルーとライトバックの2方式説明 → 正解。
  • d 半導体メモリ高速化でキャッシュ不要:誤り。CPUとメモリの速度差は依然大きく(メモリウォール問題)、現代CPUでもL1〜L3キャッシュは必須。

覚え方・ひっかけ注意

キャッシュの目的:CPUと主記憶の速度差を埋める。仮想記憶は容量を増やす目的、キャッシュは速度を上げる目的、と混同しない。書き込み方式の他、リプレース方式(LRU、FIFO、ランダム)、マッピング方式(直接、フルアソシエイティブ、セットアソシエイティブ)もセットで整理。

キャッシュメモリの理論的背景

メモリウォール問題:CPUの動作速度向上(ムーアの法則)に対し主記憶アクセス速度の改善は遅く、両者のギャップが拡大。これを埋めるのがキャッシュメモリ。参照の局所性(時間的局所性=最近使ったデータは再利用される、空間的局所性=近接アドレスは連続アクセスされる)を利用して有効性を発揮。

キャッシュ階層

現代CPUは多段階キャッシュ:

  • L1:CPU各コア内、命令キャッシュ(L1I)とデータキャッシュ(L1D)に分離。容量32-64KB、レイテンシ1-4サイクル。
  • L2:コア内またはコア間共有、容量256KB-1MB、レイテンシ10-15サイクル。
  • L3:複数コア共有、容量数MB-100MB+、レイテンシ30-50サイクル。
  • L4:一部のCPU(IBM POWER、Intel初期等)でDRAMベース。
  • 主記憶(DRAM):レイテンシ100-300サイクル。

書き込み方式の組み合わせ

キャッシュヒット時とミス時で4通り:

ヒット時ミス時名称
ライトスルーノーアロケートシンプル、ライトスルー単純構成
ライトスルーライトアロケート一部の高性能設計
ライトバックノーアロケート稀少
ライトバックライトアロケート現代CPUの標準

マッピング方式

  • 直接マッピング(Direct Mapped):主記憶アドレスから一意にキャッシュ位置決定。シンプルだが衝突多い。
  • フルアソシエイティブ(Fully Associative):任意のキャッシュラインに格納可能。柔軟だが検索コスト大。
  • nウェイセットアソシエイティブ:両者の折衷。現代CPUは4〜16ウェイが主流。

リプレースアルゴリズム

  • LRU(Least Recently Used):最も古く使われたものを追い出す。理想的だが完全実装は高コスト。
  • 疑似LRU(Pseudo-LRU):tree-LRU、近似実装。
  • FIFO:単純、性能は劣る。
  • ランダム:シンプル、平均的に妥当。
  • NRU(Not Recently Used):参照ビットで近似LRU。
  • ARC、CLOCK-Pro:高度な近代アルゴリズム。

マルチプロセッサとキャッシュコヒーレンス

複数CPUがキャッシュを持つ場合、データ一貫性確保のためコヒーレンスプロトコルが必要:

  • MESI(Modified、Exclusive、Shared、Invalid):Intel標準。
  • MOESI(+Owned):AMD K8以降、ARM等。
  • MESIF(+Forward):Intel QPI/UPI。
  • ディレクトリベース:大規模NUMA向け。
  • スヌーピング:バスベース、各キャッシュが他のメモリトランザクションを監視。

キャッシュ関連の現代トピック

  • キャッシュサイドチャネル攻撃:Meltdown(2018)、Spectre(2018)、Foreshadow、ZombieLoad。投機的実行とキャッシュタイミングの組み合わせで秘密情報漏洩。
  • キャッシュパーティショニング:複数テナント間の干渉防止。Intel CAT(Cache Allocation Technology)、ARM MPAM。
  • 不揮発性キャッシュ:Intel Optane Persistent Memory、3D XPoint。

試験での位置づけ

FE「ハードウェア/コンピュータアーキテクチャ」分野で毎期出題の最重要領域。書き込み方式・マッピング方式・リプレース方式・ヒット率計算は確実な得点源。応用情報・エンベデッドではコヒーレンスプロトコル、NUMA、TLB(Translation Lookaside Buffer)、メモリオーダリングまで踏み込む。

性能計算

実効アクセス時間 = ヒット率 × キャッシュアクセス時間 + (1 − ヒット率) × 主記憶アクセス時間。

例:ヒット率95%、L1=1ns、主記憶=100ns → 0.95×1 + 0.05×100 = 5.95ns。

選択肢の発展補足

bの仮想記憶は主記憶を超える論理アドレス空間を実現する技術。ページング方式でページテーブル管理、TLB(Translation Lookaside Buffer)でアドレス変換を高速化。TLB自体もキャッシュの一種(アドレス変換結果のキャッシュ)。dのメモリウォール問題は2010年代以降より深刻化、3D積層DRAM(HBM)、Compute Express Link(CXL)、CXL.memory等で対策が進む。L3キャッシュの大容量化(AMD 3D V-Cache:96MB+)、SRAM eDRAM混在等が現代の解決策。

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

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