さて、今回は記憶機能の階層について解説するよ。
むむ、なんだか難しそう…。
プロセッサと同様にコンピュータ全体の性能を左右する重要な要素なので、ぜひ覚えておこう。
おさらい
記憶機能とは
以前の授業で、コンピュータの五大機能の一つである記憶機能について解説しました。記憶機能とは、入力機能によって取り込んだ情報を、コンピュータ内部で処理するために保存しておく機能です。
記憶機能には「主記憶装置」と「補助記憶装置」があることについて軽く触れました。今回はその違いについて解説します。
記憶階層の考え方
主記憶装置と補助記憶装置
主記憶装置も補助記憶装置も、どちらもデータやプログラムを記憶しておくための装置です。演算装置(かつ制御装置)であるCPUは、処理対象のデータを記憶装置との間で読み書きします。
コンピュータが高速に動作するためには、CPUの演算処理、およびCPU↔記憶装置間のデータの読み書きが高速で行われる必要があります。
せっかくCPUが速くても、記憶装置が遅いと全体としては遅くなっちゃうんだね。
CPUの処理速度は非常に高速なため、CPUが直接データを読み書きする記憶装置は同等の処理速度が求められます。記憶装置は、電源を切ってもデータを保持できる機能が求められます。しかし、電源を切ってもデータが消えない不揮発性の記憶装置は、その構造上読み書きの速度があまり速くありません。
そこで、「データは保持できないが速度の速い主記憶装置」と「速度は遅いがデータを保持できる補助記憶装置」を併用する仕組みが誕生しました。
主記憶装置と補助記憶装置は、それぞれ一般的に以下のような違いがあります。
項目 | 主記憶装置 | 補助記憶装置 |
---|---|---|
CPUとの直接のデータのやり取り | 可能 | 不可能 |
読み書き速度 | 速い | 遅い |
記録容量 | 小さい | 大きい |
データ保持の性質 | 揮発性 (電源を切ると消える) | 不揮発性 (電源を切っても消えない) |
CPUがデータを読み込むとき、データは主記憶装置からCPUへ渡されます。データが主記憶装置上に存在しない場合は、補助記憶装置から主記憶装置へデータを読み込んだあと、CPUへ渡されます。
反対にCPUがデータを書き込むとき、データはCPUから主記憶装置へ渡されます。データを受け取った主記憶装置は、必要に応じてデータを補助記憶装置へ渡します。
このように、CPUが常に高速な主記憶装置とデータをやり取りすることで、コンピュータ全体の動作を高速化しているというわけです。
電気とガソリンのハイブリッドカーみたいなものだね!
そのとおり。1つの記憶装置では速さとデータ保持の特性を両立できないので、互いにカバーし合っているということだよ。
メインメモリとキャッシュメモリ
コンピュータ全体の動作を高速化するため、CPUが直接データを読み書きする記憶装置は主記憶装置であると解説しました。しかし、それでもCPUと主記憶装置の処理速度には大きな差があるため、主記憶装置だけではCPUの性能を最大限発揮することができません。
CPUってすごいんだね…。
記憶装置に保持されているデータには、使用頻度の高いものと低いものが混在しています。そのことに着目し、使用頻度の高いデータを主記憶装置よりも高速な記憶装置にコピーし、CPUのデータの読み書きをさらに高速化する仕組みが誕生しました。
主記憶装置を「メインメモリ」と呼ぶのに対し、このさらに高速な記憶装置は「キャッシュメモリ」と呼びます。
キャッシュメモリは、CPUと主記憶装置の間に位置します。使用頻度の高いデータは、メインメモリからキャッシュメモリにコピーされます。必要なデータがキャッシュメモリにある場合は、CPUはキャッシュメモリからそのデータを読み込みます。必要なデータがキャッシュメモリにない場合は、メインメモリからキャッシュメモリへ読み込み、CPUへ渡します。こうすることで、CPUの高い処理性能を最大限発揮できるというわけです。
よく使うデータを読み書きが速い場所に置いておくってことだね。
そのとおり。メインメモリの容量も大切だけど、キャッシュメモリの容量も性能に大きく影響するよ。
まとめ
記憶階層の考え方は以下のとおり。
- コンピュータが高速に動作するためには、CPUと記憶装置の両方が高速に動作する必要がある。
- 記憶装置は、「データは保持できないが速度の速い主記憶装置」と「速度は遅いがデータを保持できる補助記憶装置」に大別される。
- 主記憶装置を「メインメモリ」と呼ぶ。
- メインメモリよりもさらに高速な記憶装置として、「キャッシュメモリ」がある。
- キャッシュメモリには、使用頻度の高いデータがメインメモリからコピーされる。
- データは、「CPU↔キャッシュメモリ↔メインメモリ↔補助記憶装置」という階層で読み書きされる。
なんとなく分かったよ!
合格!