メモリ階層と性能

一般的なコンピュータの記憶階層で、上の階層(CPUに近い側)ほど成り立つ性質として正しいものはどれか。

  1. A速いが、容量が小さく、1ビットあたりの価格が高い
  2. B遅いが、容量が大きく、1ビットあたりの価格が安い
  3. C速く、容量も大きく、1ビットあたりの価格も安い
答えと解説を見る

正解:A. 速いが、容量が小さく、1ビットあたりの価格が高い

レジスタやL1キャッシュのようにCPUに近い記憶ほど高速ですが、SRAMなどの面積の大きい回路を使うため1ビットあたりの価格が高く、容量は小さくなります。下の階層ほど遅い代わりに安く大容量になり、主記憶のDRAM、さらにSSDなどのストレージへと続きます。速くて大きくて安い記憶があれば階層は要りませんが、実際にはそれがないため、局所性を利用して速い小さな記憶に必要なデータを置く階層構造がとられています。

  • A. 正しい。上ほど速いが小さく、1ビットあたり高価です。
  • B. これは下の階層(CPUから遠い側)の性質です。
  • C. 速くて大きくて安い記憶がないからこそ、階層が必要になります。
この分野を解く 分野ページへ

メモリ階層と性能のほかの問題

  1. キャッシュの性能を評価するとき、ミス率だけでなく平均メモリアクセス時間で比べる必要がある理由として正しいものはどれか。
  2. 2つのプログラムを同じコアで交互に実行すると、それぞれを単独で実行するより遅くなることがある。キャッシュの観点から最も適切な説明はどれか。
  3. 時間的局所性の例として最も適切なものはどれか。
  4. C言語の2次元配列a[i][j]を上のように内側のループをjにして走査すると、内側をiにするより速くなりやすい。その理由はどれか。
  5. アドレスが32ビット、容量32 KB、ラインサイズ64バイトのダイレクトマップ方式のキャッシュで、タグは何ビットになるか。