主記憶装置 ~ メモリとは ~

憶装置は、文字どおりデータを記憶、保存するための装置で、主記憶装置補助記憶装置に大別されると、本章の冒頭(コンピュータの5大装置)でご紹介しました。

一行だけでさらりと読み飛ばされた方も多いと思いますが、記憶装置はCPUにも増して重要な装置であり、技術の進歩とともになかなか複雑になっています。

そこで本項では、そのうちの「主記憶装置」について、じっくりと学習していきたいと思います。

まず、主記憶装置は、

メモリ(メインメモリ)

と呼ばれています。

メモリという用語は何度も耳にしたことがある用語ではないでしょうか。

主記憶装置は、データを長期保存しておく補助記憶装置とは異なります。詳しくは後述しますが、プログラムやファイルを保存しておくハードディスクなどの記憶装置の方が「補助記憶装置」になるのです。(補助記憶装置は次項で学習します)

では、メモリ(主記憶装置)とはどのような記憶装置なのかというと、

起動するプログラムを一時的に記憶しておく装置

になります。

補助記憶装置と異なり、あくまでも「一時的」に記憶しておくだけの装置です。

記憶されるのは電源が供給されている間のみで、電源が供給されていないと内容が失われてしまうという特徴があります。こうした特徴のことを、揮発性(きはつせい)と言いますが、詳しくは後述します。

なぜ一時的に記憶しておく必要があるのかというと、コンピュータはプログラムを実行する際、

プログラムをメインメモリ上に読み込まなければならない(記憶しなければならない)

という仕組みになっているからです。

つまり、CPUが処理を行うときには、補助記憶装置に保存してあるプログラムをまずメモリに読み込んで、メモリからデータを受け取って処理を行っているのです。

例えるなら、餅つきの「杵でつく人」がCPUで、餅を「ひっくり返す人」がメモリです。そして、餅米を炊いたり丸めたりする「その他の作業をする人」が補助記憶装置です。

餅をつくには「その他の作業をする人(補助記憶装置)」が「ひっくり返す人(メモリ)」に餅米(データ)を渡して、「ひっくり返す人(メモリ)」は「杵でつく人(CPU)」が叩きやすいようにお膳立てします。そして、出来上がった餅を「その他の作業をする人(補助記憶装置)」が保管します。

このとき、もし「ひっくり返す人(メモリ)」に餅米(データ)を渡さなかったら非常に効率が悪くなります。なぜなら「その他の作業をする人(補助記憶装置)」では「餅をつく人(CPU)」のスピードについていけないからです。「ひっくり返す人(メモリ)」だけが「餅をつく人(CPU)」と息が合うのです。

このように、

主記憶装置の方が補助記憶装置よりも各段にスピードが速い

ということです。

スピードというのは、記憶を読み込んだり取り出したりするスピードのことです。

したがって、プログラムをメモリに読み込まなければならない理由は、低速の補助記憶装置からデータを直接取り出して処理していたのでは、CPUの処理速度に対してあまりにも遅く、ギャップが大きいためです。

CPUの高速処理に追いつくために、スピードの速いメモリにいったんデータを読み込んでからCPUに渡すことで処理速度を上げているというわけです。CPUと補助記憶装置間のデータの橋渡しをしているのです。

CPUと主記憶装置と補助記憶装置の概念図

また、メモリはよく机に例えられます。

人間が仕事をするとき、机の上に資料を広げて作業します。メモリはこの机の「広さ」になります。机が広いほど効率的に仕事ができるのと同じように、メモリの容量が多いほどパソコンは様々な処理を同時に行うことができ、スムーズに動作します。

そして、作業が終われば机の上を片付けてしまうのと同じように、メモリの記憶は一時的で一定時間後に消去されます。

一方、ハードディスクなどの補助記憶装置は、机の「引き出し」になります。必要な時に取り出して使いますが、机の上より探すのが遅くなります。ただし、引き出しにしまった書類と同じで、故意に捨てないとデータが消去されることはありません。

このことから、

主記憶装置の方が補助記憶装置よりも容量が少ない

ということになります。

つまり、メモリの方が処理速度は圧倒的に速いが、記憶できるデータ容量は補助記憶装置よりも少ないということです。

データサイズの単位は、これまでの学習のとおり、B(バイト)になります。(データサイズについては、デジタルデータの単位 で詳しく解説しています)

メモリの容量は、現在の一般的なパソコンで4~16GBくらいの容量になっています。ハードディスクなどの補助記憶装置は何百GB~数TBもあるのに比べたら相当小さいものです。まして、Windows98当時のメモリは、64MBほどでした。

なぜメモリの容量が小さいのかというと、最も大きな理由は「高価」だからです。

後述しますが、メモリもいくつかの種類に分類することができ、メインメモリとは別に、CPUの内部で動作するキャッシュメモリと言われるさらに高速なメモリも存在します。これらメモリは半導体で構成されており、高速で動作することが求められるために、小容量で高価になっています。

また、記憶が一時的で消去されるというのも理由のひとつですが、あくまでメモリは、CPUの処理のために一次的に記憶しておく(データを読み込む)場所であり、用途として記憶を長く保持しておく必要がありません。

ただし、メモリの中にも不揮発性(ふきはつせい)のメモリが存在します。詳しくは後述します。

メインメモリは揮発性のメモリです。

そのため、放っておくと一定時間で自然に放電しきってしまい、記憶データが消去されてしまいます。これを防ぐために、一定時間ごとに再び再充電する動作を行なっています。この再充電のことを、リフレッシュと言います。リフレッシュの分だけ処理は遅くなりますが、回路の構造が単純で安価に製造できます。と言っても当然、補助記憶装置よりも速く高価です。

一方、もっとも速度を必要とするキャッシュメモリは、リフレッシュが不要な構造になっていますが、回路がそのぶん複雑で高価な上、メインメモリよりも小容量になっています。

このように、高速、小容量の高価な記憶装置と、低速、大容量の安価な記憶装置を組み合わせ、適度な価格で、大容量のデータを保存しつつ、高速な処理ができるパソコンを利用できるようになっています。

基本的にはCPUに近い記憶装置ほど速度が速くなり、価格が高くなります。

速度の異なる記憶装置を組み合せてパソコンを形成してるということは、ただ単純にそのまま装置同士を接続したのでは、それぞれの装置間でギャップが生まれてしまします。

CPUと補助記憶装置のギャップを埋めるために主記憶装置があるように、CPUと主記憶装置、主記憶装置と補助記憶装置の間にもギャップは生じるのです。

またそれを防ぐために、CPUと主記憶装置の間にキャッシュメモリ、主記憶装置と補助記憶装置の間にディスクキャッシュという、さらに中間のメモリが設けられています。

キャッシュメモリは、前述のとおりメインメモリよりもさらに速いメモリで、CPUとメインメモリの橋渡しをします。ディスクキャッシュは、ハードディスクなどの補助記憶装置よりも速くデータを渡すため、メインメモリに設けられる領域になります。キャッシュにデータがあれば、遅い下位階層の装置までデータを取りに行く必要がありません。

バッファメモリの概念図

これらキャッシュはバッファメモリ(緩衝記憶装置)と呼ばれていますが、実際のところ、ここまで覚えておく必要はありません。あくまで本項では、メインメモリが担う橋渡しの意味をしっかり理解しておきましょう。

また、メモリは容量が限られるため、処理が複雑になるほど多くのメモリ容量を消費し、容量の限界に達することがあります。

メモリの容量が限界に達した場合は、補助記憶装置上にメモリ領域を作る(スワップファイルという)ので、なんとかすることはできますが、そういったメインメモリではないところを仮想メモリとして使うと、当然処理速度が格段に遅くなってしまいます。

経験のある方も多いと思いますが、いくつものウィンドウを開いて作業したり、いくつものアプリケーションソフトを立ち上げていると、画面が固まってパソコンが動かなくなる(フリーズする)ことがあります。

これは、いわゆるメモリ不足のために起こる現象です。

メモリが一時的に記憶できる容量を超えるほどの作業を行っている

ためにメモリがパンクするというわけです。

例えば、いくつものアプリケーションソフトを立ち上げて同時に実行していたり、動画編集等の負荷の高い処理を行っている場合などによく起こります。

※メモリのパンクというのは、あくまでわかりやすくするための表現です。実際には、メモリとは異なる「システムリソース」というWindowsにあらかじめ割り当てられた、同時にアプリケーションソフトを使用できる量(残量)を使い果たすためにフリーズします。(速度を維持するためにメモリに常駐するソフトウェアやユーザーの意識しないところで自動実行しているソフトウェアもあります)
したがって、メモリを増設しても、パソコンの全体的な動作は素早くなりますが、システムリソースの容量は変わらないため、速度の低下やフリーズが無くなるわけではありません。

動作が鈍くなった場合に、その状態を解消するには、起動しているアプリケーションソフト (自動的に動作している常駐アプリケーションソフトも含む)を終了するか、パソコン自体を再起動するしかありません。

前項で、CPUの性能だけでパソコンの性能が決まることはないと学習しましたが、高性能のCPUを搭載していても、メモリの容量が少なければ軽自動車のボディにスポーツカーのエンジンを搭載しているようなものです。

パソコンを買う時には、用途にもよりますが、CPUの性能よりもメモリの容量を気にして購入する方が良いと思います。

では、メモリにはどのような種類のものがあるのか、詳しくみていきましょう。

メモリは大きく、

RAMROM

分類されます。

RAMは「ラム」、ROMは「ロム」と読みます。一般にメモリと言えば、メインメモリである「RAM」を指します。

RAMは「Random Access Memory」の略になります。

内容を変更できるけれど、電源を切ると内容が消えてしまう、揮発性のメモリです。メインメモリ以外のキャッシュメモリやディスクキャッシュもRAMになります。

処理のたびにデータを読み込むので、RAMの記憶は頻繁に書き換えられ、消えていきます。

RAMはさらに、

DRAM(ディーラム)とSRAM(エスラム)

に分類することができます。

DRAMは「Dynamic Random Access Memory」の略、SRAMは「Static Random Access Memory」の略になります。

すでに少々専門的になってきたので詳しい説明は割愛しますが、DRAMはリフレッシュが必要な通常のメインメモリに使われるRAMで、SRAMはリフレッシュが必要ないさらに高速のキャッシュメモリに使われるRAMになります。よって、DRAMよりSRAMの方が高速で高価なメモリになります。

DLAMとSRAMの概念図

参考までに、上図のCPUの中に「レジスタ」という装置がありますが、レジスタはキャッシュメモリよりもさらにCPUに違いところにある小さな記憶装置になります。

キャッシュメモリよりもさらに高速で、キャッシュメモリからデータを読み込む記憶装置ですが、CPUに組み込まれたCPUを構成する装置のひとつであり、主記憶装置ではありません。(基礎知識の中で覚えておく必要はありません)

では次に、ROMを詳しくみていきましょう。

ROMは「Read Only Memory」の略になります。

これが電源を切っても内容が消えない、不揮発性のメモリになります。「Read Only」のとおり、あらかじめ情報が書き込まれていて、内容が変更できない読み取り専用として利用されるメモリです。

具体的には、パソコンの製造段階で書き込まれ、起動時に読み込むプログラムや、書き換えられると動作不良を起こすようなシステム情報を記憶させる際に使用されます。

プログラムとソフトウェアのまとめ で学習したBIOSやファームウェアなどがROMに書き込まれています。(アップデートなどの特定の条件下では書き換えできるROMもあります)

また、CD-ROMやDVD-ROMといったディスクメディアは、このROMと同じ意味になります。市販のソフトウェアなどの読み出し専用ディスクで、一般ユーザーがデータを書き込むことはできません。CD-RやDVD-Rといったディスクとはまた異なるので注意してください。(詳しくは、補助記憶装置の項で学習します)

ただし、ここからがややこしいところですが、ROMも技術の進歩により、単純に読み取り専用と言えなくなってきたのです。

ROMには、マスクROMEPROM(イーピーロム)、EEPROM(イーツーピーロム)、フラッシュメモリなど、多くの種類があるのです。(多くの種類が誕生してきました)

こちらも詳しい説明は割愛しますが、マスクROMは、あらかじめメモリ内に書き込まれた状態で工場から出荷される、従来の書き換え不能のROMEPROMは、紫外線によって消去でき、ユーザーが書き換え可能なROMEEPROMとフラッシュメモリは、電圧によって消去でき、ユーザーが書き換え可能なROMになります。

書き換え可能であっても、電源をOFFにしてもデータが消えることはないので、ROMの分類になっています。

一般的に広く使われているUSBタイプのメモリスティックが、フラッシュメモリと呼ばれるものです。現在ではROMが書き換え可能となり、主記憶装置としての用途のみならず、ハードディスクのような補助記憶装置としても利用されるようになってきています。(詳しくは次項で学習します)

それぞれを表にしてまとめると、以下のようになります。

メモリの分類表
分類 種類 概要 代表的な用途
RAM
(揮発性)
DRAM リフレッシュ処理が必要なRAMSRAMより安価だが低速。 メインメモリ
SRAM リフレッシュ処理が不要なRAMDRAMより高価で高速。 キャッシュメモリ
ROM
(不揮発性)
マスクROM 書き換え不能な読み取り専用のROM。完成したプログラムを保存する。安価だが、アップデートできないためEEPROMやフラッシュメモリに置き換わっている。 BIOS、ファームウェア
EPROM 紫外線によって消去、書き換えが可能なROM。書き換え可能なため、プログラム開発時のテスト段階などに使われる。(特別装置が必要で容易に消去できない) BIOS、ファームウェア
EEPROM 電気的にアクセスして消去、書き換えが可能なROMEPROMより内容の消去が容易なため、常にバージョンアップされる製品に使われる。 BIOS、ファームウェア
フラッシュメモリ 電気的にアクセスして消去、書き換えが可能なROMEEPROMを改良し大容量を実現したもの。補助記憶装置としても使われている。 BIOS、ファームウェア

よくよく整理して理解しないと混乱してしまいますが、上表をすべて覚えておく必要はありません。主記憶装置としてのメモリの基本的な役割をしっかり理解しておくようにしましょう。

メインメモリの状態は、前項でCPUの状態を参照した「タスクマネージャー」画面の「パフォーマンス」タブの「メモリ」から確認することができます。

「タスクマネージャー」画面のイメージ

この例の場合、メモリサイズは「8GB」で、そのうち現在「4.9GB」を使用中であり、「2.9GB」の空き(余裕)があることを意味しています。(63%の使用率ということになります)

その他の項目もありますが、ざっくりとこの画面が読み取ることができれば問題ありません。タブを「プロセス」に切り替えると、どのプロセス(アプリケーションソフト)がどれだけメモリを使用しているか把握することができます。

「タスクマネージャー」画面のイメージ

パソコンの動作が重く遅くなった場合は、たいていメモリの空きが少なくなっている場合が多いです。この画面を確認して、メモリを多く消費しているアプリケーションソフトを閉じるようにしましょう。

以上で、主記憶装置は終了です。

かなり応用的な要素が入ってしまいましたが、なるべく省略せずに盛り込みました。なぜかというと、このように記憶装置はいくつもの種類があり、様々な組み合わせが存在するからです。

CPUの速度に追いつく記憶装置を安価に製造することは困難で、組み合せやキャッシュなどの技術でなんとか補っていたのです。まだ現在では、高価な半導体記憶装置ですべての記憶装置をまかなうことはできません。

しかし、半導体メモリの低価格化と大容量化はどんどん進んでおり、フラッシュメモリのように、メモリでありながら次項で学習する補助記憶装置としても利用できる製品が現れています。

そのため、こうした組み合せの形態は変化していくものと思われます。遠くない未来に、補助記憶装置はなくなり、メモリが大容量になって、メモリにそのままデータを保存できるようなパソコンが普及してくるかもしれません。

更新履歴

2008年7月25日
ページを公開。
2009年4月10日
ページをXHTML1.0とCSS2.1で、Web標準化。レイアウト変更。
2018年1月25日
ページをSSL化によりHTTPSに対応。
2022年2月23日
内容修正。

参考文献・ウェブサイト

当ページの作成にあたり、以下の文献およびウェブサイトを参考にさせていただきました。

システムリソースとメモリ
http://www.coolandcool.net/tips/01_0628.html
「半導体メモリ」-ナノエレクトロニクス
https://www.s-graphics.co.jp/nanoelectronics/kaitai/memory/2.htm
DRAMとは? SRAMとの違いについても解説|TECH+
https://news.mynavi.jp/techplus/article/20200408-1012316/
RAMとROMの違いについて、メモリとストレージの意味とともにご紹介|ドスパラ通販【公式】
https://www.dospara.co.jp/5info/cts_str_pc_ram