メモリ階層と性能

キャッシュの容量を大きくすると一般にヒット時間がどうなるか。その理由とあわせて正しいものはどれか。

  1. A短くなる。データが多く入るほど探す時間が減るから
  2. B変わらない。ヒット時間はラインサイズだけで決まるから
  3. C長くなりやすい。配線と選択の回路が大きくなるから
答えと解説を見る

正解:C. 長くなりやすい。配線と選択の回路が大きくなるから

キャッシュを大きくするとミス率は下がりますが、記憶セルの配列が大きくなって配線が長くなり、インデックスの選択や出力の選択の回路も大きくなるため、ヒット時間は長くなりやすくなります。そのためL1は数十KB程度に小さく保ち、大きな容量はL2やL3で確保する多段の構成がとられます。ヒット時間が短くなることはなく、ラインサイズだけで決まるわけでもありません。ミス率とヒット時間のバランスで容量が決まります。

  • A. 大きくしても探す時間は短くならず、むしろ長くなります。
  • B. ヒット時間は容量や連想度にも左右されます。
  • C. 正しい。配線と選択の回路が大きくなり、ヒット時間が延びやすくなります。
この分野を解く 分野ページへ

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

  1. 上の連結リストをたどる処理が、同じ数の要素をもつ配列を順に読むより大幅に遅くなりやすい理由はどれか。
  2. 1回のミスで64バイトのラインを読み、主記憶の待ち時間が100 nsのとき、同時に処理できるミスが1つだけなら読み出しの帯域は約0.64 GB/sにとどまる。同時に10個のミスを処理できれば、帯域はおよそいくらになるか。(ほかの制約はないものとする)
  3. 一度書いたあと当分読み返さない大きなデータを書き出すとき、キャッシュを通さないストア(ノンテンポラルストア)を使う主な利点はどれか。
  4. キャッシュのヒット率が95%のとき、ミス率はいくらか。
  5. ミスしたラインを主記憶から読み込むとき、CPUが必要としている語(ワード)を先に送って、残りを後から送る手法はどれか。