キャッシュメモリは、CPUとメモリの速度差を埋める高速な小容量メモリ。効果的なヒット率向上が性能のカギ。
キャッシュメモリってよく聞くけど、何のためにあるんだろ?
CPUと主記憶 (メモリ) の速度差を埋めるための高速バッファよ。
キャッシュメモリは階層構造になっていて、L1が最も近く高速、L2、L3 と遠ざかるにつれ大容量だけど低速になるの。
性能の鍵はヒット率。
アクセスしたデータがキャッシュにある確率ね。
ヒット率が高いほど性能が出るわ。
ミスしちゃったらどうなるんですかぁ?
主記憶まで取りに行く必要があるから、ヒット時の100倍以上の時間がかかってしまうの。
だからミス率を減らすことがとても重要ね。
書き込み方式にはライトスルーとライトバックがあるの。
書き込みのタイミングが違うのよ。
ライトスルーは書き込みのたびにキャッシュと主記憶を両方更新、整合性は高いけど遅い。
ライトバックはキャッシュだけ更新して、後でまとめて主記憶に反映、高速だけど整合性管理が必要。
何か計算式とかあるの?
実効アクセス時間 = ヒット率 × キャッシュアクセス時間 + (1 - ヒット率) × 主記憶アクセス時間。
これは試験頻出よ。
確認クイズ
キャッシュメモリのヒット率が95%、キャッシュアクセスが10ns、主記憶アクセスが100nsの時、実効アクセス時間はどれか。
- 10ns
- 14.5ns
- 55ns
- 100ns
こたえを見る
正解: 2. 14.5ns
実効アクセス時間 = 0.95 × 10 + 0.05 × 100 = 9.5 + 5 = 14.5ns です。ヒット率が高いほど主記憶アクセスのペナルティを受けにくくなります。