記憶階層(レジスタ、キャッシュメモリなど)についてのまとめ【応用情報】

情報

【応用情報技術者試験・ハードウェアとコンピュータ構成要素】

記憶の階層化

補助記憶装置に記録されているプロブラム、データを主記憶装置に読み込み、CPUは主記憶装置からプログラムの命令を取り出して実行します(同時に、CPUと主記憶装置の間でデータの読み書きが行われる)。

CPUは記憶装置に「高速かつ大容量」であることを期待します。

しかし一般に、記憶装置は高速なものほど容量が小さく高価であり、大容量なものほど低速になります。

そこで、以下の図のような記憶階層を設計することで、この問題を解決します。

各記憶装置の説明

レジスタ

高速アクセス可能。CPU内部にある。後述するが、何度も使用するデータにアクセスする際にそのたびに主記憶装置にアクセスすると効率が悪いので、レジスタに記憶して処理を高速化する。

キャッシュメモリ

CPUの処理速度と主記憶のアクセス速度の差を埋めるくらいの、主記憶より高速にアクセスできる記憶装置。CPUがアクセスするデータの一部を主記憶からキャッシュメモリにコピーしておき、CPUがキャッシュメモリをアクセスすることで処理を高速化する。

ディスクキャッシュ

磁気ディスクよりは高速にアクセスできる記憶装置。

階層化する理由

上記のような階層化は、局所参照性により、実行アクセス時間を短縮するのが目的です。

つまり、あるデータがアクセスされたときに、そのデータが近い将来再びアクセスされる可能性が高いことと、連続してアクセスされたデータは隣接したアドレス空間に存在している可能性が高いことを利用して、高速にアクセスできるキャッシュメモリによく使うデータだけをためておき、そこにだけアクセスすることで、効率化を図ります。

アクセス時間

実行アクセス時間は、以下の式で求められます。

TE = T × P + TM × (1 – P)

TE : 実行アクセス時間

TC : キャッシュメモリのアクセス時間

P : ヒット率

TM : 主記憶のアクセス時間

P (ヒット率)とは、必要なデータがキャッシュメモリに存在する確率のことです。データがキャッシュメモリにあれば高速にアクセスでき、なければ主記憶にアクセスすることになります。基本的にはキャッシュメモリのアクセス時間の方が短いので、ヒット率が高いほど良いことになります。

主記憶への書き込み方式

ライトスルー方式

CPUから書き込み命令が発生したとき、キャッシュメモリと同時に主記憶にも書き込みを行う。キャッシュメモリと主記憶間のデータのコヒーレンシ(一貫性)がメリットとしてあるが、主記憶に書き込み終わるのを待たなければならないため、速度面でデメリットがある。

ライトバック方式

CPUから書き込み命令が発生したとき、キャッシュメモリにだけデータを書き込んでおき、主記憶への書き込みはキャッシュメモリからそのデータが追い出されたときに行う。主記憶への書き込む時間を待つ必要がないので高速性は保たれるが、キャッシュメモリと主記憶のデータの一貫性が保持できない場合があることがデメリット。

参考↓

コメント

タイトルとURLをコピーしました