メモリ階層と性能

キャッシュの性能を評価するとき、ミス率だけでなく平均メモリアクセス時間で比べる必要がある理由として正しいものはどれか。

  1. Aミス率は測定できないが、平均メモリアクセス時間は簡単に測定できるから
  2. Bミス率が下がってもヒット時間が延び、平均では遅くなることがあるから
  3. C平均メモリアクセス時間はヒット時間に関係なくミス率だけで決まるから
答えと解説を見る

正解:B. ミス率が下がってもヒット時間が延び、平均では遅くなることがあるから

連想度や容量を増やすとミス率は下がりますが、ヒット時間が長くなることがあります。例えばヒット1サイクル・ミス率5%と、ヒット2サイクル・ミス率4%を、ミスペナルティ20サイクルで比べると、1 + 0.05 × 20 = 2.0と、2 + 0.04 × 20 = 2.8で、ミス率の低い方が遅くなります。平均メモリアクセス時間はヒット時間・ミス率・ミスペナルティの3つで決まります。ミス率は性能カウンタなどで測定できます。

  • A. ミス率は性能カウンタなどで測定できます。
  • B. 正しい。ミス率の改善がヒット時間の悪化で打ち消されることがあります。
  • C. 平均はヒット時間・ミス率・ミスペナルティの3つで決まります。
この分野を解く 分野ページへ

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

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