開閉ボタン
ユーザーメニュー
ユーザーメニューコンテンツ
ログイン

  • 会員限定
  • 2019/03/20

SCM(ストレージクラスメモリ)とは何か?「SSDの次」の技術の基礎とその仕組み

インテルやサムスンが開発競争

コンピューターの登場以来、CPUが必要とする記憶デバイスは、キャッシュ/メインメモリ/ストレージというように階層化され、用途・製品が整理されてきた。このメモリアーキテクチャに、新たな用途(階層)として登場したのが「ストレージクラスメモリ(SCM:Storage Class Memory)」だ。具体的にはインテルとMicron Technologyが共同開発した「3D XPoint」やサムスンの「Z-NAND」などの製品に注目が集まっている。メインメモリとストレージの性能差を吸収するレイヤーとして位置づけられるストレージクラスメモリだが、そもそもどのような仕組みで、従来のメモリやストレージとどのように異なるのか。この記事で基礎からひも解いていきたい。

フリーライター/エディター 大内孝子

フリーライター/エディター 大内孝子

主に技術系の書籍を中心に企画・編集に携わる。2013年よりフリーランスで活動をはじめる。IT関連の技術・トピックから、デバイス、ツールキット、デジタルファブまで幅広く執筆活動を行う。makezine.jpにてハードウェアスタートアップ関連のインタビューを、livedoorニュースにてニュースコラムを好評連載中。CodeIQ MAGAZINEにも寄稿。著書に『ハッカソンの作り方』(BNN新社)、共編著に『オウンドメディアのつくりかた』(BNN新社)および『エンジニアのためのデザイン思考入門』(翔泳社)がある。


ストレージクラスメモリ(SCM)とは?

 現代のコンピューターは、必要に応じてプログラムやデータ類を補助記憶(二次記憶)装置から主記憶(一次記憶)装置に移すという仕組みで、さまざまな機能を実現する。

画像
コンピューターの構成
(出典:著者作成)

 主記憶装置として使われるのが半導体メモリ、補助記憶装置(ストレージ)として主に使われるのがハードディスクドライブ(HDD)や光ディスク。基本的にはこのように大別されるが、最近では、USBメモリやSSD(Solid State Drive)のようなフラッシュメモリ(半導体メモリの1種)がストレージ用途で使われるようになっている。

 実際、記憶デバイスには数多くの種類があり、そしてその進化は目まぐるしい。磁気ディスク、光ディスク、半導体メモリと、記憶する仕組みによってさまざまなものがある。さらに磁気ディスク、光ディスクとひと口に言っても、これまでにさまざまなメディアが登場した(中には消えていったものもある)。半導体メモリもDRAM、SDRAM、DDR SDRAM、フラッシュメモリ……と多種多様だ。

 そもそも、コンピューターの進化と記憶デバイスの進化は切り離せない。というのも、図「コンピューターの構成」のとおり、コンピューターのメモリアーキテクチャが「レジスター(キャッシュ)―主記憶―補助記憶」となっており、連携で動作する形になっているからだ。そのため、記憶デバイスにおけるデータの読み書きの速度、容量/コスト、消費電力、大きさ、耐障害性といった特性が、コンピューターの性能にダイレクトに影響する。

 より性能の良いコンピューターシステムを実現するために、記憶デバイスはCPUの高速化に追随し進化してきたと言える訳だが、「ストレージクラスメモリ」の登場もその流れにある。

 「ストレージクラスメモリ」(Storage-class memory:SCM)という言葉が初めて使われたのは、2008年、IBMが発表した論文「Storage-class memory: The next storage system technology」(IBM Journal of Research and Development , Volume: 52 , Issue: 4.5 , July 2008)だ。

 一般に、コンピューターシステムのメモリ階層は次のように表される。

画像
メモリアーキテクチャ
(出典:著者作成)

 前述のように、代表的なストレージはハードディスクドライブだが、磁気ヘッドでディスクにデータを書き込む(読み出す)という機械的な動作を伴う構造であり、電子的に読み書きを行う半導体メモリと比較すると、そのI/O性能は段違いに低い。ただ、ビット単価は磁気ディスクのほうがはるかに安く、大容量の記憶メディアに用いるには磁気ディスクが適している。

 図「メモリアーキテクチャ」で示す階層構造は、コンピューターが一般に普及し始めた頃に、コストパフォーマンスや現実性から考えられた構成だ。CPUに近くなるほどデータアクセス性能は高く、遠くなるにつれ低くなる。

 しかし、時が経ち、半導体技術の進化でCPUの性能、主記憶装置として使われる半導体メモリが高速になればなるほど、補助記憶装置である磁気ディスクとの性能差が無視できないほど大きな問題になってくる。ナノ秒で動作する上部の階層とミリ秒で動作するストレージが1つのシステムとして連携するとき、どうしてもストレージの処理性能が足を引っ張る。この状況をどう解消するか。これはもう長い間、関連のメーカー企業が抱えてきた課題だ。

 この論文では、その差を補うべく、高速かつ安価にディスクドライブの代替品として使用できるストレージシステム製品を開発中だと述べている。それを総称し、「ストレージクラスメモリ」と呼ぶ。

 以降、ストレージクラスメモリは、メモリアーキテクチャが新たに取り入れるべき階層(分野)として認知されていく。

画像
ストレージクラスメモリでメインメモリとストレージの格差を吸収する
(出典:著者作成)

 以上を前提として、ここでなぜストレージクラスメモリが求められたのか、まずはメモリ技術のこれまでを振り返っていこう。ストレージクラスメモリについて、より実践的な内容を知りたい方は次の章に進んでほしい。

コンピューターに必要な記憶デバイス

 「主記憶に置かれたプログラムを実行する」、これはストアドプログラム方式(プログラム内蔵方式)と呼ばれ、現代のコンピューターの基本形と言われるノイマン型コンピューターで提唱されたアーキテクチャだ。

 それまでの、穿孔テープなど外部からプログラムを読み込んで実行していた“電気計算機”から一線を画する仕組みで、まさに“コンピューター”を実現したと言える。何が革新だったかというと、プログラムを内部に格納し、そして書き換えることができるということ。これにより、コンピューターは多機能、高性能を獲得していく。

 ストアドプログラム方式の実現に必要だったのが、電気的にデータを記憶し続けることができる記憶メディアだ。コンピューターが、今の記憶デバイスを獲得するまでの流れは次の図のとおり。

コンピューター開発の歴史
年代エポック    ※【 】は使われていた主な記憶デバイス
1725自動織機の制御にパンチカッターが使われ始める
1889ハーマン・ホレリス(米)がパンチカード方式の自動集計機タビュレーティングマシンを開発
1897フェルディナント・ブラウン(独)が陰極線管(ブラウン管)を発明
1905ジョン・フレミング(英)が二極真空管(後のダイオード)を発明
1906リー・ド・フォレスト(米)が三極真空管(増幅管)を発明
1936アラン・チューリング(英)が万能計算機械(チューリングマシン)の原理を論文発表
1941コンラート・ツーゼ(英)が世界初の完全動作プログラム制御式コンピュータZuseZ3を完成【セルロイドテープ】
1942ジョン・アタナソフとクリフォード・ベリー(米)が電子デバイスで演算処理をする世界初のデジタルコンピュータABC(アタナソフ&ベリー・コンピュータ)を完成【再生式キャパシタメモリ】
1943ドイツ軍の暗号を解読するためイギリスで世界初のプログラム可能なデジタル電子計算機Colossusを開発【機械式+紙テープ】
1945ジョン・フォン・ノイマン(ハンガリー)がプログラム内蔵方式のコンピュータ(ノイマン型コンピュータ)を提唱
1946ペンシルバニア大学(米)がENIACを開発【配線方式】
1947AT&Tベル研究所のウォルター・ブラッテン、ジョン・バーディーン、ウィリアム・ショックレーらがトランジスタを発明
1948マンチェスター大学(英)で世界初のプログラム内蔵式コンピュータManchester Small-Scale Experimental Machine(SSEM、愛称The Baby)が完成【ウィリアムス管】
1949ケンブリッジ大学(英)数学研究所が世界初の実用的なプログラム内蔵型コンピュータEDSACを開発【水銀遅延線】
1949ペンシルバニア大学(米)がEDVACを開発【水銀遅延線、磁気ドラム】
1951米レミントンランド社(現、ユニシス)が世界初の商用コンピュータUNIVACⅠを発売【水銀遅延線】
1952米IBMが世界初の商用プログラム内蔵式コンピュータIBM701を発売【ウィリアムス管】
1956富士写真フィルムがレンズ設計のため日本初の電子計算機FUJICを開発【水銀遅延線】
1956米IBMが世界初のハードディスクドライブを発売(5MB)
1958米テキサス・インスツルメンツが集積回路(IC)を開発
1959日本国有鉄道が日本初のオンラインシステム「MARS-1」(中央装置の開発は日立製作所)を導入【磁気ドラム】
(出典:石川憲二著『メモリ技術が一番わかる』技術評論社)

 ここではそれぞれの詳細には触れないが、プログラム内蔵式を世界で初めて実現したのは「SSEM(Manchester Small-Scale Experimental Machine)」、SSEMではウィリアムス管を記憶メディアとして用いた。そして、記憶メディアとして水銀遅延線を使った「EDSAC」によって、実用的なプログラム内蔵式コンピューターが登場した。

 SSEMに使われたウィリアムス管はブラウン管の仕組みを使った実験的な記憶メディアだ。ブラウン管は電子ビームを電磁石(偏向コイル)で屈折させ、任意の蛍光面に当てることで画像を表示する。光を発するときに周囲の電荷が変化するのだが、その差を利用し、1ビットを記憶するという仕組みだ。

 物理現象において、わずかな差があればこのように2値を表すことができる。これは、コンピューターの内部でデータを2進数で扱っているから可能なことで、2進数の採用がコンピューターには必須だったことがわかる。

 水銀遅延線は、パルスがメディアを伝わる際の“遅れ”を利用し、信号を循環させ記憶装置とする遅延記憶装置の1つで、文字通り、水銀を使ったもの。また、磁気ドラムは「磁気を帯びているか/いないか」で1ビットを表す、原理的にはハードディスクドライブと同じだ。磁気による記憶のため、電源を落としても失われない。

 ウィリアムス管、水銀遅延線、磁気ドラムといった記憶メディアが商用のコンピューターに用いられる中、大容量化、高速化、小型化、それに利便性(安定に動作するか)が課題だった。何より、サイクルごとのシーケンシャルアクセス(先頭から順の検索)しかできない。

 そこで、指定の場所にアクセスできる記憶デバイスを目指して開発されたのが、磁気コアメモリだ。1953年、マサチューセッツ工科大学(MIT)で開発されていたコンピューター「Whirlwind」に世界で初めて実装された。

 磁気コアメモリは、ドーナツ状のフェライト磁性体(これがコア)が格子状に配置され、コア1つが1ビットに相当する。

 仕組みはこうだ。書き込み用の2本の電線(X、Y)に電流が流れたときに磁化が起こり、磁気の向きによって0と1を割り当てる。指定した場所にデータが記憶できるということになる。これが、ランダムアクセス(Random Access)の登場だった。記憶したデータを読み出すには、駆動線を2本用いて電流を流し、コアの磁気の向きが反転したものを探査線で検知できるという仕組みだ。ただし、このとき磁気は反転してしまう(「破壊読み出し」と呼ばれる)ため、つど、リフレッシュが必要になる。

 磁気コアの実装は手作業で自動化はできなかったが、1950年後半に大量生産の体制ができてくると1ビット当たりの単価は徐々にこなれていき、1960年代には、磁気コアメモリは記憶デバイスとして主流になる。

 メモリアレイを構成することで記憶密度は飛躍的に上がり、コントロール・データ・コーポレーション社の「CDC 6600」(1964年開発された汎用コンピューター)では、64 x 64 コアで4096ビットの磁気コアメモリが使われた。大きさはおよそ10cm四方。

 こうして、ランダムアクセス可能で、電源を切っても記憶される不揮発性の記憶デバイスができたわけだが、1970年代になると半導体メモリに置き換えられていく。

【次ページ】揮発性メモリと不揮発性メモリの違いとは?

ストレージ ジャンルのセミナー

ストレージ ジャンルのトピックス

ストレージ ジャンルのIT導入支援情報

PR

ビジネス+IT 会員登録で、会員限定コンテンツやメルマガを購読可能、スペシャルセミナーにもご招待!