情報処理技術者試験対策

コンピュータにキャッシュメモリはなぜ必要なのか?

こんにちは、みやびのです。

今回は、
「なぜコンピュータにはキャッシュメモリが必要なの?主記憶装置だけだとダメなの?」
という疑問に答えます。

本記事の内容は以下の通り。

・キャッシュメモリはなぜ必要?主記憶装置だけではダメな理由
・キャッシュメモリとデータ管理方式

キャッシュメモリはなぜ必要?主記憶装置だけではダメな理由

Why
キャッシュメモリがなくても主記憶装置があればコンピュータは動作できます。
ではなぜキャッシュメモリが必要かというと主記憶装置だけだと動作が遅くて使い物にならないからです。

キャッシュメモリと主記憶装置はそれぞれ以下のような特徴があります。

キャッシュメモリ:読み込み・書き込みが速い・処理できる容量は小さい、電源が落ちるとデータが破棄される
主記憶装置:読み込み・書き込みが遅い・処理できる容量は大きい、電源が落ちてもデータを保持できる

主記憶装置なら数百ギガバイト(ギガバイト=約10億バイト)からテラバイト(テラバイト=約1兆バイト)など大容量のデータを処理できます。
しかし、データの読み書きが遅いので毎回アクセスしていたら非常に時間がかかってしまうのが難点です。

また、データがたくさん保存できるということは良いことしかないように思えますが、必要なデータを探すのが大変になります。
でも一度に使うデータってそんなに多くないですよね。

せいぜい数キロバイト(キロバイトは=約1,000バイト)から数百メガバイト(メガバイト=約100万バイト)くらいだと思います。
毎回何ギガとか何テラから探すのは非常に効率が悪いです。

主記憶装置だけだとめっちゃ重いスペックの低いコンピュータとなってしまいます。

キャッシュメモリは扱える容量は多くありませんが、データの読み書きが高速でできるのが特徴です。
さらに最近使ったデータを優先的にキャッシュメモリに入れることでさらに効率的にデータを探せます。

ということでデータを書き込む場合は、

・処理の速いキャッシュメモリに一度データを書き込む
・バックグラウンドでデータを書き込める場所を探しながらハードディスクに書き込む

データを読み込む場合は、
・キャッシュメモリにデータがないか確認
・データがない場合はハードディスクに読みに行く
・読み込んだデータはキャッシュメモリにも書き込む(次にアクセスが来てもすぐに使えるようにしておく)

という手順を踏んでいます。

以上のようにキャッシュメモリがあると高速でデータの読み書きが可能です。

キャッシュメモリのデータ管理

データ管理
キャッシュメモリのデータ管理について説明します。
具体的には以下の3点です。
・キャッシュメモリのデータ更新
・キャッシュメモリとシャットダウン
・キャッシュメモリのデータロストの可能性

キャッシュメモリのデータ更新

キャッシュメモリは前述の通り高速で処理ができる反面格納できるデータは多くありません。
データの更新が多いとすぐに書き込めなくなってしまいます。

そこで新しい更新があった時に古いデータを追い出して新しいデータを書き込みます。

キャッシュメモリデータの管理方式は以下の2つを取ることが多いです。
FIFO方式(first in first out):作成してから最も時間の経過しているデータに上書き
LRU方式(Least Recently Used):最後に参照されてから最も時間が経過しているデータに上書き

当然、そのデータがハードディスクに書き込まれていないデータなら書き込む処理が発生するので少し重くなります。
家庭のパソコン程度であればそんな状況は滅多にないと思いますが、クラウドサーバーなどはテラバイトやペタバイト(ペタバイト=1,100兆バイト)という大容量のデータを軽く超える容量を処理するので書き込めないデータも多いです。

キャッシュメモリとシャットダウン

キャッシュメモリは電源の供給がなくなるとデータが保持できないため、コンピュータの電源を落とす場合にはキャッシュメモリ上のデータを全てハードディスクに書き込みます。

当然次に立ち上げる時はキャッシュメモリはまっさらで何もデータが入っていない状態で立ち上がります。
パソコンを立ち上げた直後に

「ちょっと動作が重いな」
と感じることがあると思いますが、これはキャッシュメモリにデータが一切ないからです。

しばらくするとハードディスクからキャッシュメモリにデータの書き込みが終わりサクサク動くようになります。

キャッシュメモリのデータロストの可能性

データの更新が多いとキャッシュメモリのデータは新しいけどハードディスクのデータが古いという状態が起きやすくなります。

前述の通り、キャッシュメモリは電源の供給がなくなるとデータを保持できません。

システム障害などでキャッシュのデータが書けないままコンピュータの電源が落ちてしまうとデータロスト(更新が破棄される)が起きる可能性があります。
通常コンピュータにはバッテリーが搭載されているので電源が落ちても即座にキャッシュデータが消えてしまうことはありません。

終わりに

主記憶装置だけでもコンピュータは動きますが、恐らくめっちゃ遅くてスペックの悪いコンピュータになると思います。
ビッグデータの時代であっても一度に使うデータということを考えると容量はそこまで多くありません。

いちいち主記憶装置にアクセスしていたら非効率です。

キャッシュメモリによく使うデータを格納しておくことで必要なデータに高速にアクセスできます。
高速で処理することが求められるコンピュータにキャッシュメモリは欠かせない存在です。

コンピュータの知識TOP>>ITエンジニアのためのコンピュータの基礎知識まとめ

こちらの記事も読まれています

  • この記事を書いた人
miyabikno

miyabikno

住んでいるところ:神奈川県。 SIer中小企業(C,VBA):8年(うち5年QA)。Web系ベンチャー(PHP,Javascript,Python):2年。フリーランス:2年。現在はブログをメインに活動しています。

-情報処理技術者試験対策

Copyright© みやびのどっとぴーわい , 2020 All Rights Reserved Powered by AFFINGER5.