キャッシュメモリの仕組みと性能
キャッシュメモリは、CPUと主記憶の速度差を埋めるために、主記憶の一部を高速な記憶装置に保持する仕組みである。CPUが要求するデータがキャッシュにあればヒット、なければミスとなり、ミス時にだけ主記憶にアクセスする。キャッシュの性能は、ヒット率とアクセス時間の組合せで決まるため、両者を正しく扱うことが重要である。
キャッシュの原理と局所性
キャッシュが効果を発揮するのは、プログラムのアクセスに局所性があるためである。一度参照したデータは近いうちに再び参照されやすく(時間的局所性)、参照した番地の近くのデータも続けて参照されやすい(空間的局所性)。キャッシュはこの性質を利用し、最近使ったデータを高速なメモリに保持しておく。ヒット率が高いほど、CPUは主記憶の遅さを意識せずに済む。キャッシュには高速なSRAMが主に用いられる。
置換えアルゴリズムの判断基準
キャッシュが満杯のときに新しいブロックを読み込むには、既存のブロックから置換対象を選ぶ必要がある。代表的な方式として、ロードされてからの時間が最も古いものを選ぶFIFO、参照回数が最も少ないものを選ぶLFU、最後に参照されてからの経過時間が最も長いものを選ぶLRUがある。LRUは直近の参照履歴を重視するため、局所性を利用する方式として実用的である。問題文が示す時刻や回数のうち、どの基準で比較するかを正確に読み取ることが求められる。
平均アクセス時間と実効性能の計算
実効アクセス時間は、ヒット時の時間とミス時の時間をそれぞれの確率で重み付けした平均として求める。ヒット率をhとし、キャッシュのアクセス時間を主記憶の1/30とすると、ヒット時の時間は主記憶時間の1/30となる。ミス時は主記憶のアクセス時間とみなすと、実効時間は0.95×(1/30)+0.05×1となり、約0.08倍である。 ヒット率そのもの(0.95)は実効時間の比ではないため、混同しないようにする。
この節の続き
- 書込み方式と主記憶との整合性
- 試験で問われやすい区別
ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。
アプリでこの節を読む