
出典:公益社団法人 日本技術士会「技術士第一次試験 過去問題」
キャッシュメモリ(アクセスタイム10ナノ秒、ヒット率90%)を内蔵したCPUで、メインメモリ(150ナノ秒)を180ナノ秒のものに変えたとき、平均アクセスタイムを維持するために必要なキャッシュメモリの高速化の倍率を求める問題。
ヒット率を用いて、平均アクセスタイムを計算し、条件を満たすキャッシュの速度を求める問題。
① 平均アクセス時間=ヒット率×キャッシュの時間+(1−ヒット率)×主記憶の時間
② 今: 0.9×10+0.1×150=24。変更後: 0.9t+0.1×180=24 → 0.9t=6、t≒6.67
③ 10÷6.67=1.5倍(④)
平均アクセスタイム=ヒット率×キャッシュのアクセスタイム+(1−ヒット率)×メインメモリのアクセスタイム(簡易モデル)。変更前は、0.9×10+0.1×150=9+15=24ナノ秒。メインメモリを180ナノ秒に変えると、キャッシュのアクセスタイムをtとして、0.9t+0.1×180=0.9t+18。これを24ナノ秒に維持するには、0.9t=6、t≈6.67ナノ秒。キャッシュを10/6.67=1.5倍に高速化する必要がある。したがって④が最も近い(ミス時にキャッシュ参照時間も加えるモデルでも、約1.4倍で、最も近いのは1.5倍)。
■ 平均アクセスタイムの式の意味
ヒット率90%とは、読み出しの90%はキャッシュで済み(速い)、残り10%はメインメモリまで取りに行く(遅い)ということです。平均アクセスタイムは、それぞれの時間をこの割合で重み付けして足した値(重み付き平均)になります。
■ 「何倍速く」の求め方
速さの倍率は、アクセスタイムの比の逆になります。10ナノ秒を約6.67ナノ秒にするなら、10÷6.67=1.5倍速いものが必要です。
平均アクセスタイム=ヒット率×キャッシュ時間+(1−ヒット率)×主記憶時間。ヒット率が高いほど、キャッシュの速度の影響が大きい。
キーワード: キャッシュメモリ、平均アクセスタイム、ヒット率、メインメモリ、実効アクセス時間、情報工学部門