テクノロジ編

【応用情報】キャッシュメモリについて解説

この記事ではキャッシュメモリについてIT初心者にも分かりやすく解説します。

キャッシュメモリとは

  • キャッシュメモリとは、主記憶装置の代わりにCPUと情報のやり取りをする記憶装置。
  • 実効アクセス時間とは、CPUが実際に欲しい情報にアクセスすることが出来る時間。
  • ライトスルー方式とは、CPUが情報を書き込むときに、主記憶装置とキャッシュメモリの両方同時に書き込む方式。
  • ライトバック方式とは、CPUが情報を書き込むときに、まずキャッシュメモリだけに書き込みを行い、その後、主記憶装置に書き込む方式。
  • フルアソシエイティブ方式とは、主記憶装置のデータをキャッシュメモリに書き込むとき、キャッシュメモリの空いている領域を探してそこに格納する方式。

応用情報ではキャッシュメモリに関する問題が出題されます。是非最後までご覧ください。

キャッシュメモリ

キャッシュメモリとは、主記憶装置(メインメモリ)の代わりにCPUとデータのやり取りをする記憶装置です

CPUはプログラムを実行するとき、必要なデータや命令を保管している主記憶装置からデータを受け取って動いています。

しかし、CPUの性能が向上し処理速度が上がると、主記憶装置ではデータのやり取りが間に合わなくなりました。

ここで登場するのがキャッシュメモリです。
主記憶装置よりも処理速度が速いキャッシュメモリがCPUとデータのやり取りをすることで、CPUの処理速度に合わせることにしたのです。

しかし、キャッシュメモリには主記憶装置より容量が少ないという欠点があります。
なので、CPUが必要なデータを全て持っている訳ではありません。必要に応じて主記憶装置ともやり取りをしないといけないのです。

そこで、CPUは以下のような手順で処理を行うことにしました。

  1. キャッシュメモリに必要なデータがあるか確認する
  2. 必要なデータがあればキャッシュメモリからデータをもらう
  3. 必要なデータが無ければ主記憶装置からデータをもらう
  4. 主記憶装置からデータをもらう時は、キャッシュメモリにもそのデータを保存する

④でキャッシュメモリにもデータを保存する理由は、再びそのデータが必要になった時にキャッシュメモリにあった方が受け渡しが速くて便利だからです。

平均アクセス時間

キャッシュメモリはCPUとのデータのやり取りを速くするために使われています。なので、キャッシュメモリを導入することで、どれだけ速くデータのやり取りが出来るようになったのかはとても大切な指標になります。データのやり取りの速さは平均アクセス時間で表します。

下図のようにCPUが主記憶装置とだけデータをやり取りする場合の平均アクセス時間は10ナノ秒となります。

主記憶装置へのアクセスに10ナノ秒、キャッシュメモリへのアクセスに2ナノ秒掛かり、CPUが欲しいデータの内、20%がキャッシュメモリにある場合、

20%はキャッシュメモリと、80%は主記憶装置とアクセスすれば良いので、
平均アクセス時間=(2ナノ秒×0.2)+(10ナノ秒×0.8)=8.4ナノ秒となります。
ちなみに、CPUが欲しいデータがキャッシュメモリに存在する確率をヒット率と言います。

主記憶装置だけの場合の平均アクセス時間は10ナノ秒だったので、処理速度を16%も削減できたことになります。

また、以上のことから、平均アクセス時間の公式が次のように書けることが分かります。

平均アクセス時間 = (キャッシュメモリへのアクセス時間 × ヒット率) +
平均アクセス時間 = (主記憶装置へのアクセス時間 × (1-ヒット率)) +

キャッシュメモリにデータが存在する時はキャッシュメモリとアクセスして、キャッシュメモリにデータが存在しない時は主記憶装置とアクセスするという意味の公式ですね。

主記憶装置への書き込み

CPUが処理を実行した結果は主記憶装置に書き込まれます。キャッシュメモリにだけ書き込めば良いのでは?と思うかもしれませんが、キャッシュメモリでは容量が足りないので主記憶装置にも書き込む必要があります。

では、CPUが処理を実行した結果をキャッシュメモリが受け取って、どのように主記憶装置へ書き込まれるのでしょうか?「ライトスルー方式」と「ライトバック方式」の2つの方法があります。

ライトスルー方式

ライトスルー方式とは、CPUがキャッシュメモリに書き込み処理を行う際、主記憶装置へも同時に書き込む方式です

ライトスルー方式は、書き込み処理に時間が掛かる主記憶装置にも同時に書き込みを行います。なので、書き込み処理に時間が掛かりますが、キャッシュメモリと主記憶装置のデータは常に一致しており、データの一貫性を保つことが出来ます。

メリット :キャッシュメモリと主記憶装置の間でデータの一貫性を保てる
デメリット:書き込み処理に時間が掛かる

ライトバック方式

ライトバック方式とは、基本的にキャッシュメモリにしか書き込み処理をしません。キャッシュメモリからデータが追い出されたときに主記憶装置に書き込み処理を行います
キャッシュメモリの容量が一杯の時に、CPUが書き込み処理を行うと古いデータを主記憶装置に戻して、新しいデータをキャッシュメモリに書き込みます。

ライトバック方式は、キャッシュメモリにしか書き込みをしないので高速で処理が出来ます。しかし、主記憶装置へ書き込みを行うタイミングが複雑なので制御が大変です。

メリット :書き込み処理が速く完了する
デメリット:制御が大変

主記憶装置からキャッシュメモリへの書き込み

では、どのように主記憶装置からキャッシュメモリへデータが書き込まれるのでしょうか?
「ダイレクトマップ方式」「セットアソシエイティブ方式」「フルアソシエイティブ方式」の3つの方法がありますが、ここでは応用情報技術者で出題された「フルアソシエイティブ方式」だけ紹介します。

フルアソシエイティブ方式

フルアソシエイティブ方式とは、主記憶装置のデータをキャッシュメモリ内の空いている領域に保管する方式です

例えば、下図のように、主記憶装置のブロック番号4に格納されているデータDをキャッシュメモリに保管するとき、キャッシュメモリの空いているブロックを探して、そこに保管します。

キャッシュメモリに空いている領域があれば保管できるので、無駄無くキャッシュメモリの容量は使えますが、毎回空いている領域を探さないといけないので、処理速度は落ちます。

応用情報技術者試験での出題例

令和年6度秋期問10、令和4年度春期問9

応用情報技術者
午前試験 令和6年度秋期問10、令和4年度春期問9

キャッシュメモリのアクセス時間が主記憶のアクセス時間の1/30で,ヒット率が95%のとき,実効メモリアクセス時間は,主記憶のアクセス時間の約何倍になるか。

ア 0.03     イ 0.08     ウ 0.37     エ 0.95

正解と解説

正解は”イ”

実効アクセス時間=1/30×0.95+1×0.05=0.08となり、
答えはイです。

令和年6度春期問10

応用情報技術者
午前試験 令和6年度春期問10

主記憶のアクセス時間が60ナノ秒,キャッシュメモリのアクセス時間が10ナノ秒であるシステムがある。キャッシュメモリを介して主記憶にアクセスする場合の実効アクセス時間が15ナノ秒であるとき,キャッシュメモリのヒット率は幾らか。

ア 0.1     イ 0.17     ウ 0.83     エ 0.9

正解と解説

正解は”エ”

ヒット率をαとしたとき、
10ナノ秒×α+60ナノ秒×(1-α)=15ナノ秒となり、
α=0.9で答えはエです。

令和年5度春期問10、令和3年度春期問12

応用情報技術者
午前試験 令和5年度春期問10、令和3年度春期問12

キャッシュメモリへの書込み動作には,ライトスルー方式とライトバック方式がある。それぞれの特徴のうち,適切なものはどれか。

ア ライトスルー方式では,データをキャッシュメモリだけに書き込むので,高速に書込みができる。

イ ライトスルー方式では,データをキャッシュメモリと主記憶の両方に同時に書き込むので,主記憶の内容は常にキャッシュメモリの内容と一致する。

ウ ライトバック方式では,データをキャッシュメモリと主記憶の両方に同時に書き込むので,速度が遅い。

エ ライトバック方式では,読出し時にキャッシュミスが発生してキャッシュメモリの内容が追い出されるときに,主記憶に書き戻す必要が生じることはない。

正解と解説

正解は”イ”

ライトスルー方式は主記憶装置とキャッシュメモリに同時に書き込みします。
ライトバック方式は、基本キャッシュメモリに書き込みを行い、キャッシュメモリのデータを追い出すときに主記憶装置に書き込みを行います。

令和4年度秋期問9

応用情報技術者
午前試験 令和4年度秋期問9

キャッシュメモリのライトスルーの説明として,適切なものはどれか。

ア CPUがメモリに書込み動作をするとき,キャッシュメモリだけにデータを書き込む。

イ CPUがメモリに書込み動作をするとき,キャッシュメモリと主記憶の両方に同時にデータを書き込む。

ウ 主記憶のデータの変更は,キャッシュメモリから当該データが追い出される時に行う。

エ 主記憶へのアクセス頻度が少ないので,バスの占有率が低い。

正解と解説

正解は”イ”

ライトスルー方式は主記憶装置とキャッシュメモリに同時に書き込みします。
ライトバック方式は、基本キャッシュメモリに書き込みを行い、キャッシュメモリのデータを追い出すときに主記憶装置に書き込みを行います。

アとウはライトバック方式の説明です。
ライトスルー方式は主記憶へ毎回書き込みを行うので、エも誤りです。

令和4年度春期問10

応用情報技術者
午前試験 令和4年度春期問
10

キャッシュメモリのフルアソシエイティブ方式に関する記述として,適切なものはどれか。

ア キャッシュメモリの各ブロックに主記憶のセットが固定されている。

イ キャッシュメモリの各ブロックに主記憶のブロックが固定されている。

ウ 主記憶の特定の1ブロックに専用のキャッシュメモリが割り当てられる。

エ 任意のキャッシュメモリのブロックを主記憶のどの部分にも割り当てられる。

正解と解説

正解は”エ”
任意のキャッシュメモリのブロックに主記憶のデータを保管するのがフルアソシエイティブ方式なので、”エ”が正解です。