pulpul 日本の試験

応用情報技術者 概念書 · 組込み・コンピュータシステム

キャッシュメモリの仕組み

キャッシュメモリは、CPU と主記憶の速度差を埋めるために、よく使うデータを高速な小容量メモリに置く仕組みである。ヒット率、実効アクセス時間、書込み方式、対応付け方式が中心的な論点であり、いずれも数式と概念の両方から説明できることが求められる。プログラムの参照に局所性があるからこそキャッシュが効果を発揮する点を、まず押さえておくとよい。

実効アクセス時間とヒット率

実効アクセス時間は、ヒットした場合とミスした場合の時間をヒット率で重み付けした平均である。ヒット率を h、キャッシュの時間を t_c、主記憶の時間を t_m とすると、ミス時にどの経路をたどるかによって式が変わる。ミス時にキャッシュの確認時間を含めるかどうかを問題文から読み取ることが最も重要である。ヒット時 10 ナノ秒、主記憶 60 ナノ秒の条件で実効時間 15 ナノ秒となるヒット率を求める問題では、ミス時に主記憶のアクセスだけを計上すると、ヒット率は 0.9 となる。

キャッシュ確認の時間を含める場合は、同じ数値でも結果が変わる。主記憶の時間を 1、キャッシュの時間を 1/30 とし、ヒット率 0.95 で計算すると、ミス時にはキャッシュの確認と主記憶へのアクセスの両方の時間がかかるため、実効時間は主記憶の約 0.083 倍となる。同じ前提の問題も繰り返し出題されているため、経路の取り方を二通り試せるようにしておく。

書込み方式の違い

書込み方式には、ライトスルーとライトバックがある。ライトスルーはキャッシュへの書込みと同時に主記憶にも書き込むため、主記憶の内容は常にキャッシュと一致する。ライトバックは通常まずキャッシュだけを更新し、ブロックを追い出すときに主記憶へ書き戻す。書込みが繰り返される処理ではライトバックの方が主記憶へのアクセスを減らせるが、更新済みのデータが主記憶に反映されていない期間がある点に注意が必要である。

ライトスルーでは書込みのたびに主記憶にもアクセスするため、主記憶へのアクセスやバスの占有が増える。この性質は、主記憶の内容を最新に保ちたい場合の利点と、速度面の欠点を同時に示している。ライトバックでは、変更済みのブロックがキャッシュから追い出されるときに主記憶への書戻しが必要になる。書戻しの有無によって主記憶の内容が古い期間が生まれる点も、同じ単元で問われやすい。

この節の続き

ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。

アプリでこの節を読む