応用情報技術者 PR

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

記事内に商品プロモーションを含む場合があります

応用情報技術者では高頻度でキャッシュメモリに関する問題が出題されます。ここでマスターしましょう。

キャッシュメモリ

キャッシュメモリとは、主記憶装置(メインメモリ)の代わりに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をキャッシュメモリに保管するとき、キャッシュメモリの空いているブロックを探して、そこに保管します。

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

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

応用情報技術者試験を突破するのに必要な知識はこれだけです。

出題例

応用情報技術者 午前試験
令和元年度秋期問10、平成29年度秋期問11

容量がaMバイトでアクセス時間がxナノ秒の命令キャッシュと、容量がbMバイトでアクセス時間がyナノ秒の主記憶をもつシステムにおいて、CPUからみた、主記憶と命令キャッシュとを合わせた平均アクセス時間を表す式はどれか。ここで、読み込みたい命令コードがキャッシュに存在しない確率をrとし、キャッシュメモリ管理に関するオーバヘッドは無視できるものとする。

正解と解説

正解は”イ”

キャッシュメモリに命令コードが存在する時は、キャッシュメモリにアクセスして、
キャッシュメモリに命令コードが存在しない時は、主記憶にアクセスします。

よって、平均アクセス時間は、
キャッシュに命令コードが存在する確率(1-r)×キャッシュへのアクセス時間(x)+
キャッシュに命令コードが存在しない確率(r)×主記憶へのアクセス時間(y)
=(1-r)・x + r・y
となり、エが答えになります。

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

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

ア ライトスルー方式では、データをキャッシュメモリだけに書き込むので、高速に書込みができる。
イ ライトスルー方式では、データをキャッシュメモリと主記憶の両方に同時に書き込むので、主記憶の内容は常にキャッシュメモリの内容と一致する。
ウ ライトバック方式では、データをキャッシュメモリと主記憶の両方に同時に書き込むので、速度が遅い。
エ ライトバック方式では、読出し時にキャッシュミスが発生してキャッシュメモリの内容が追い出されるときに、主記憶に書き戻す必要が生じることはない。

正解と解説

正解は”イ”

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

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

ア キャッシュメモリの各ブロックに主記憶のセットが固定されている。
イ キャッシュメモリの各ブロックに主記憶のブロックが固定されている。
ウ 主記憶の特定の1ブロックに専用のキャッシュメモリが割り当てられる。
エ 任意のキャッシュメモリのブロックを主記憶のどの部分にも割り当てられる。

正解と解説

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

応用情報技術者試験に関する他の記事