SSDと物理メモリは何が違うか、揮発性メモリと不揮発性メモリ

 家電量販店や通販サイトでパソコンの性能を見る時、こう思ったことはないだろうか。
 「メモリが4ギガバイト、ストレージが750ギガバイト。同じギガバイトの単位で表される性能がどうして別々に2種類あるのだろう?」

 ストレージは最近ではギガバイトより上のテラバイトに届くものも多くなってきたが、バイトとはつまりデータの大きさの単位。パソコンの性能を表す時は、保存しておけるデータの量と考えて差し支えない。
 しかしそう考えると疑問は深まる。メモリの数字もハードディスクの容量も保存できるデータの量を表しているなら、どうして分ける必要があるのだろうか。

 その答えは、メモリとストレージの機能の違いにある。基本的には同じ「データの倉庫」であるメモリとストレージだが、パソコン内で果たしている機能と、何よりその仕組みには大きな隔たりがあるのだ。

 コンピュータがものを覚えるしくみ

 「データの倉庫」であるハードドライブとメモリの違いに移る前に、データを記録する、つまりはコンピュータにものを覚えさせる原理について簡単に説明したい。

 コンピュータの動作の根本原理は2進数にある。
 2進数とは0と1の配列で数を表記する方法だ。2進数の数はまず0、1と進み、その次に繰り上がりが発生し、10となる(これは日常で使われる10進数でいえば2にあたる)。その後11に進み、また繰り上がって今度は100となる(10進数でいう4)。桁数は膨大になるが、こうすれば1と0だけですべての数を表記できる。

Binary_counter
2進数で0から31までを表示するカウンタ―Wikipedia:Binary number

 2進数の利点は、2種類の状態を取りうるものを用意できればそれを使って数を表現できることにある。例えばドアが開いている/閉じている、電気が流れている/流れていない、帽子を被っている/被っていない……等、これらは「0か1か」を表しうるものだ。

 この「0か1か」という情報の単位はビットと呼ばれる。
 1ビットは0か1かの2種類で、表現できる情報の数は2つだけだが、2ビットになるとその2倍、3ビットはさらに2倍と倍々ゲームで増えていく。
 6ビットになれば2の6乗で64までの数を記述できるので、それぞれをひらがなに対応させるルールさえ作ったなら50音を表現することも可能だ。先述した具体例で言うと、帽子を持った人を6人並ばせたならば、帽子を被っている人と被っていない人の並び方でひらがな50音を表記するのに足りることになる。

 話をメモリとストレージに戻そう。
 どちらの装置もデータを記録するためのもので、その原理は上記の通り。両者を区別する大きな違いは、電源が切れるとデータが消えるか(揮発性メモリと呼ばれる)、電源がなくともデータを保持できるか(不揮発性メモリと呼ばれる)、という点だ。

 いわゆるコンピュータのメモリは前者、電源が切れるとデータが消える揮発性メモリに属する。
 電源を止めるたびデータが消えてしまうとなると記録装置の意味がないように思えるが、揮発性メモリはデータの書き込みと読み出しの速度が速いという利点がある。コンピュータがプログラムやOSを動かす際の命令やデータを保存しておくために使われ、この用途に用いられる記憶装置を一次記憶装置と呼び、現在はコンデンサに電荷を蓄え、一定時間毎に電荷を供給し続けるDRAMと呼ばれる型が主流になっている。

 データや命令の処理はコンピュータのCPUが行うが、一次記憶装置はそのCPUが直接アクセスできる記憶装置だ。CPUを人間の脳、あるプログラムの働きを何らかの仕事に例えるなら、一次記憶装置に記録された情報はその仕事の手順書やその過程で一時的に必要になるメモ書きに例えられるだろう。

 CPUが行うのはごく基本的な処理だけであり、プログラムを動かしたりするような複雑な処理の進め方は一次記憶装置に書き込まれる。この方式により、一次記憶装置の内容を書き換えることで同じコンピュータに異なる動作をさせることが可能になるのだ。
 電卓がキーを叩いての計算しかできないのに対し、パソコンが文字入力やグラフ作成、グラフィック描画や音楽の再生まで行える理由はここにある。

 不揮発性メモリとその活用

 メモリに対してストレージ、つまりハードディスクやソリッドステートドライブ(SSD)は電源が途切れてもデータが消えることはない。不揮発性メモリと呼ばれる種類に属し、コンピュータではデータやファイルの長期保存に使われるのだ。CPUから直接アクセスできる構造にはなっておらず、いわゆるメモリに対して二次記憶装置と呼ばれる。

 記憶装置と聞いて直観的にわかりやすいのはこの不揮発性メモリだろう。電源を切っても以前保存したデータを呼び出して作業を再開でき、膨大な量のファイルを長期間保存できるという、この点だけを見ると揮発性メモリをあえて使う理由はないように思える。

 しかし現在、不揮発性メモリは一次記憶装置として広くは使われていない。揮発性メモリと比べるとデータの読み込み/書き込み速度がはるかに遅いからだ。
 不揮発性メモリを一次記憶装置に使ったならば、データへのアクセス速度の遅さがネックになり、パソコンの動作も遅くなってしまうことだろう。
 ハードディスクはもちろん、ハードディスクよりもずっと動作の速いSSDでも、一次記憶装置として使うには速度が心もとないのだ。

 以上の理由から、コンピュータは2種類の記憶装置を使っているのが現状だ。
 常に動作する必要があるOSやプログラムを動かすのに必要なデータはアクセスが高速な揮発性メモリに。文書や写真など、常にアクセスする必要のないデータは長期間の保存に向いた不揮発性メモリに保存されている。

 コンピュータに種類の異なる記憶装置を2種類搭載するという構図は長らく変わることはなかったが、最近になってインテルとマイクロンが共同開発した「3D XPoint(クロスポイント)」はこれを大きく変えうるポテンシャルを秘めている。

3d-xpoint-die-100598793-large
(PCWorld.comより)

 ハードディスクともDRAMとも異なるこの新機軸の記録装置は不揮発性メモリでありながら、従来のSSDやフラッシュメモリの1000倍の速度で読み書きが行え、安価に大容量を確保でき、さらに寿命も長いという画期的な技術だ。
 不揮発性メモリの欠点であったデータの読み書き速度が大幅に改善された「3D XPoint」は、従来のハードディスクと同様の二次記憶装置として使えるだけでなく、一次記憶装置としても活用しうる。
 そうするとどうなるか。メモリとストレージとを分ける必要がなくなるのだ。
 プログラムが動作する際に必要なデータや数値、作成した文書や写真画像などは単一の器機内部に保存され、いずれも従来より高速で読み込むことができるようになる。

 現時点で予想できる恩恵はパソコンの高速化ぐらいのものだ。しかし記憶装置の構造の変化はOSやプログラムの基本設計の転換につながるハードウェア上の大きな変化である。
 近い将来製品化されるだろう「3D XPoint」や類似の不揮発性メモリ技術、そしてそれらの台頭にともなうパソコンの記憶装置統合の流れは、ソフトウェアを開発する会社にとっても無視できない流れになるだろう。