メモリ階層と性能
一度書いたあと当分読み返さない大きなデータを書き出すとき、キャッシュを通さないストア(ノンテンポラルストア)を使う主な利点はどれか。
- A書いたデータがキャッシュに長く残り、あとで読むときに速くなる
- B再利用しないデータでキャッシュを埋めずに済む
- C書き込みの順番が保証されなくなるので、プログラムの誤りが見つけやすくなる
答えと解説を見る
正解:B. 再利用しないデータでキャッシュを埋めずに済む
通常の書き込みでは、ライトアロケートによりラインを主記憶から読み込んでから書くため、書くだけのデータでも読み込みの通信が発生し、再利用するほかのデータを追い出してしまいます。ノンテンポラルストアは書き込みをまとめて直接主記憶へ送り、キャッシュを汚さず、不要な読み込みも省けます。書いたデータはキャッシュに残らないので、すぐ読み返す場合はかえって遅くなります。順番の扱いが変わるのは副作用で、利点ではありません。
- A. 書いたデータはキャッシュに残らず、すぐ読むならかえって遅くなります。
- B. 正しい。再利用しないデータでキャッシュを埋めず、不要な読み込みも省けます。
- C. 順番の扱いの変化は注意点で、利点ではありません。