
出典:公益社団法人 日本技術士会「技術士第一次試験 過去問題」
キャッシュメモリ(アクセスタイム20ns、ヒット率80%)とメインメモリ(120ns)を持つCPUで、メインメモリを180nsに変えたとき、平均アクセスタイムを維持するために、キャッシュのアクセスタイムを何倍速くする必要があるかを求める問題。
キャッシュのヒット率と各メモリのアクセスタイムから、平均アクセスタイムを維持するのに必要なキャッシュの高速化倍率を求める問題。
① 平均アクセス時間=ヒット率×キャッシュの時間+(1−ヒット率)×主記憶の時間
② 今: 0.8×20+0.2×120=40。変更後: 0.8t+0.2×180=40 → 0.8t=4、t=5
③ 20÷5=4.0倍(④)
平均アクセスタイム=ヒット率×キャッシュのアクセスタイム+(1−ヒット率)×メインメモリのアクセスタイムで求める。変更前は、0.8×20+0.2×120=16+24=40nsである。メインメモリを180nsに変えると、キャッシュのアクセスタイムをt(ns)として、0.8×t+0.2×180=40より、0.8t=40−36=4、t=5nsとなる。したがって、キャッシュのアクセスタイムは、20ns→5nsで、20÷5=4.0倍速くする必要がある。④が正しい。
■ 平均アクセスタイムの式の意味
ヒット率80%とは、読み出しの80%はキャッシュで済み(速い)、残り20%はメインメモリまで取りに行く(遅い)ということです。平均アクセスタイムは、それぞれの時間をこの割合で重み付けして足した値(重み付き平均)になります。
実効(平均)アクセス時間=h×Tc+(1−h)×Tm(hはヒット率、Tcはキャッシュ、Tmはメインメモリのアクセス時間)。この式に、条件を代入して未知の値を求める。
キーワード: キャッシュメモリ、平均アクセスタイム、ヒット率、実効アクセス時間、コンピュータアーキテクチャ、情報工学部門