キャッシュメモリのヒット率、実行メモリアクセス時間の計算方法について、
備忘録のため残します。
多段キャッシュシステムのヒット率の計算方法
前提
キャッシュメモリがL1(1次)とL2(2次)の多段構成になっている場合、
CPUはまずL1キャッシュにアクセスし、そこにデータがなければL2キャッシュにアクセスする。
そのため、システム全体のヒット率は以下の式で求めることができる。
計算式:
システム全体のヒット率 = L1のヒット率 + (L1のミス率 × L2のヒット率)
例:
・L1、L2と2段のキャッシュを持つプロセッサ
・L1キャッシュヒット率:0.95
・L2キャッシュヒット率:0.6
・このキャッシュシステムのヒット率はいくらか
手順
① L1キャッシュでミスする(ヒットしない)確率: 1 - 0.95 = 0.05
② L1でミスし、かつL2でヒットする確率: 0.05 × 0.6 = 0.03
結論:0.95 + 0.03で、システム全体のヒット率は0.98となる。
実効メモリアクセス時間の計算方法
キャッシュメモリと主記憶(メインメモリ)を組み合わせた際の、
平均的なアクセス時間(実効アクセス時間)を求める計算について。
「主記憶の何倍になるか」を問われた場合は、主記憶のアクセス時間を「1」として計算する必要あり。
計算式:
実効アクセス時間 = (キャッシュのアクセス時間 × ヒット率) + 主記憶のアクセス時間 × (1 - ヒット率)
例:
・キャッシュメモリのアクセス時間が主記憶のアクセス時間の1/30
・キャッシュメモリのヒット率が95%
・実行メモリアクセス時間は、主記憶のアクセス時間の約何倍になるか。
手順
① キャッシュにヒットした場合の時間: (1/30) × 0.95
② キャッシュでミスし、主記憶にアクセスした場合の時間: 1 × (1 - 0.95) = 0.05
③ これらを足し合わせる:
(0.95 / 30) + 0.05
※分数の足し算をするため、0.05の分母を30に揃える(通分する:0.05 = 0.05 × 30 / 30 = 1.5 / 30)
= (0.95 / 30) + (1.5 / 30)
= 2.45 / 30
= 0.081666...
結論:約0.08倍となる
覚えるためのコツ:
- ヒット率(多段): 「1回目で当たる確率」+「1回目で外れて、2回目で当たる確率」と分解して考える。
- アクセス時間: 「キャッシュの速さ×当たる確率」+「主記憶の遅さ×外れる確率」の期待値を求める。比率を問われたら主記憶を「1」に置き換える。
