テクノロジ系 > 大分類2 コンピュータシステム > 中分類3 コンピュータ構成要素 > 2.メモリ
(3)メモリシステムの構成と記憶階層
CPUは高速ですが主記憶はそれに比較して低速であり、コンピュータの性能が向上してくると主記憶への書き込み時間で待ち時間が発生することになり、さらなる性能向上をするためにはCPUと主記憶の性能差を埋める必要があります。そこで考えられたのがキャッシュメモリを用いる方法です。キャッシュメモリにはSRAMが用いられており主記憶より高速に処理できます。このためデータは最終的には主記憶に書き込まれますが、一時的にキャッシュメモリに書き込むことで待ち時間を削減することができます。キャッシュメモリはCPUのチップ内に内蔵されていることが一般的です。
CPUはデータをまずキャッシュメモリに探しに行き、次に主記憶(一般的なメモリ)、補助記憶の順に探しに行きます。またキャッシュメモリも1次キャッシュ、2次キャッシュのように複数用意して性能を向上させることがあります。これを記憶の階層といいます。
データ更新方式
CPUがキャッシュメモリにデータを書き込んだ場合にその内容を主記憶に反映させる必要がありますが、その方式には2通りあります。
- ライトスルー方式
CPUがキャッシュメモリに書き込んだ時に同時に主記憶にも書き込む方式です。データの一貫性(コヒーレンシ)は保たれますが、処理スピード(スループット)は悪いです。 - ライトバック方式
CPUがキャッシュメモリに書き込んでもすぐに主記憶に書き込まず、キャッシュメモリのデータが追い出される等の条件が発生した場合に主記憶に書き込む方式です。スループットはよくなりますが、コヒーレンシを保つために別の処理が必要になります。
混同しやすいですが、「(キャッシュと主記憶)一緒に書き込みスルー(ライトスルー)」で私は覚えました。
データ管理方式
キャッシュメモリのデータを格納し管理する方式には以下の3つがあります
- ダイレクト方式(ダイレクトマップ方式)
一つのメモリブロックをキャッシュ内の単一のロケーションに割り当てる方式。メモリアドレスが分かれば場所を特定できるためアクセスは簡単にできますが、データの衝突が起きやすくヒット率が下がります。 - フルアソシエイティブ方式
メモリブロックをキャッシュ内の任意のロケーションに割り当てる方式。空いているところに入れていけるため衝突は起きませんが、検索に時間がかかるため性能に問題が出てきます。 - セットアソシエイティブ方式
メモリブロックをキャッシュ内の二つ以上の配置可能なロケーションに割り当てる方式。
フルアソシエイティブ方式とセットアソシエイティブ方式の検索の問題を解決するために連想メモリが使われます。
(5)メモリの容量と性能
アクセス時間とは、主記憶やキャッシュメモリからデータを取り出すときにかかる時間のことをいいます。主記憶のアクセス時間とキャッシュメモリのアクセス時間はキャッシュメモリのアクセス時間の方が短く済みますが、キャッシュメモリの中にデータが全てあるとは限りません。データがキャッシュメモリ上にある確率のことをヒット率といいます。キャッシュメモリにデータが無かった場合はアクセス時間の長い主記憶にデータを取りに行きます。これを考慮した平均的なアクセス時間を実行アクセス時間といいます。実行アクセス時間の公式は以下になります。
実行アクセス時間 =
キャッシュメモリへのアクセス時間 × ヒット率
+ 主記憶へのアクセス時間 × (1-ヒット率)