[第49回]国家試験解説[AP令和4年秋]

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

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

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

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

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

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

出典 IPA公開[過去問題]:https://www.ipa.go.jp/shiken/mondai-kaiotu/gmcbt80000008smf-att/2022r04a_ap_am_qs.pdf

コンピュータの演算はCPUで行われます。しかし、データは補助記憶装置や主記憶装置の中にあります。主記憶装置の中にあるデータをCPUに取り出して演算を行い、結果をレジスタに保存します。

「ライトスルー」「ライトバック」はこうした際にレジスタに保存した演算結果をどうするかを考えた仕組みです。

ライトスルーとは

CPUで演算した結果をレジスタと主記憶装置の両方に書き込みに行くことを言います。

CPUで演算した結果はレジスタに保存されます。しかし、レジスタは保存できる容量がかなり少ないです。そのうえ、万が一何かのトラブルでレジスタにあるデータが消えてしまった場合には演算した結果も消えてしまいます。

ライトスルーではこうしたトラブルに対処するため、CPUが演算した結果をレジスタだけでなく、主記憶装置にも書き込みます。ただ、CPUから主記憶装置へのアクセス時間がかなりかかるため、全体的な処理時間は遅くなります。

ライトバックとは

CPUで演算した結果をレジスタのみに書き込みに行くことを言います。

CPUで演算した結果はレジスタに保存されます。しかし、ライトスルーのように毎回主記憶装置にまで演算結果を書き込みに行っていては処理が遅くなってしまいます。そのため、基本的にはレジスタのみに演算結果を書き込みます。ただ、レジスタに保存できるデータ量はかなり少ないです。そのため、レジスタから演算した結果を開放(他のデータで上書き)するときにだけ主記憶装置にデータを書き込みます。つまり、途中経過を逐一書き込むのではなく、最終的なデータだけを書き込むのです。そうすることで主記憶装置へのアクセスを減らして処理速度を上げるのです。

正解は、「イ:キャッシュメモリと主記憶の両方に同時にデータを書き込む」です。