ITパスポート講座の講師ブログ

よくあるご質問 -キャッシュメモリのデータ-

キャッシュメモリ

皆さん、こんにちは。 
ITパスポート講座担当の小野です。
暖かくなったり、寒くなったり。絶対に体調は崩さないように!

今回はキャッシュメモリに関するご質問を取り上げたいと思います。

【平成26年春の第65問】
CPU のキャッシュメモリに関する記述のうち,適切なものはどれか。
ア 1次キャッシュには,2次キャッシュよりも低速なメモリが使われる。
イ 1次キャッシュは演算処理の高速化のために使われ,2次キャッシュは画像描画の
  高速化のために使われる。
ウ 1次キャッシュは最初にアクセスされ,2次キャッシュは1次キャッシュにデータ
  がないときにアクセスされる。
エ 1次キャッシュは主記憶アクセスの高速化のために使われ,2次キャッシュは仮想記
  憶の実現のために使われる。

【解答】ウ
皆さん正解できましたか?
キャッシュはCPUに近い方から1次、2次…と搭載されています。
当然1次キャッシュからデータが書き込まれているはずと思ってしまうかも知れません。
ですから、ウにある
「1次キャッシュにデータがないときにアクセスされる」という部分が
適切ではないと感じるかもしれません。

例えば、時点1の時に次のような保存状態だったとしましょう。

[時点1]
  1次キャッシュ データA
  2次キャッシュ データB
  メインメモリ  データC・D・E

そして、[時点1]から[時点2]の間に、データAを使う処理が行われたとします。
CPUは1次キャッシュ→2次キャッシュ→メインメモリの順でアクセスして、
1次キャッシュからデータAを読み込みます。
処理後、データAは今後すぐ使うことはなくなったので、
1次キャッシュから削除され、メインメモリに保存されました。
すると[時点2]の時には次のような状態となります。

[時点2]
  1次キャッシュ データなし
  2次キャッシュ データB
  メインメモリ  データA・C・D・E

そして、[時点2]から[時点3]の間に、データBを使う処理が行われました。
CPUは1次キャッシュ→2次キャッシュ→→メインメモリの順でアクセスして、
2次キャッシュからデータBを読み込みます。

このように、1次キャッシュにデータがないケースも考えられますので、
選択肢ウは適切な文章です。

もちろん、原則として、
キャッシュにデータを蓄積する際には空いているキャッシュから書き込んでいきます。
ですから、選択肢ウ「データがない」という意味には2つの意味があると思われます。

  ・1次キャッシュにデータが何も保存されていない
  ・1次キャッシュにいくつかのデータはあるけれども、計算対象となっているデータは
   保存されていない

いずれにしても、1次キャッシュに必要なデータがなければ
2次キャッシュにアクセスする点で変わりはありませんから、
選択肢ウが適切です。