それでも、不揮発性メインメモリはコンピュータを変える(と思う)
2月に書いた不揮発性メインメモリですが、Intelが正式に発表し、サンプル出荷を始めました。
IntelがDIMM型の高速・大容量・低価格の不揮発性メモリ「Optane DC Persistent Memory」を正式発表
メインメモリが不揮発性(電源を切っても内容が消えない)になった場合のメリットとしてわかりやすいのは、大量のデータをメモリ上に置くことによって高速化が期待できるインメモリデータベースです。SAPが対応を表明したり、OracleのイベントにIntelが参加したり。後は、同様にデータ量の多いAIの研究にも役立つとされています。でも、この辺の使い方って、「これまでSSDに置いていたものを、もっと高速の不揮発性メモリができたからそちらに移行しました。」という程度の話に聞こえます。あんまりパラダイムシフト感がありません。本当は、プログラムの書き方やOSのあり方にまで影響を及ぼす可能性があるはずなのです。それは例えば、「ファイル」という概念がOSから無くなる、といったものです。
あんまり速くなかった。。
Intelの発表に「コンピュータのあり方が変わる」という迫力に乏しいのは、どうも、今回のメモリはそれほど速くなく、DRAMを完全に置き換えるほどのものでは無いからではないかと思います。
インテル、DRAMと同じDDR4スロットに挿せる不揮発性メモリ「Intel Optane DC persistent memory」サンプル出荷開始、2019年に本格出荷へ
この記事の中で、DRAMのアクセス速度は数十ナノ秒から数百ナノ秒、SSDに使われるNAND型フラッシュは数十マイクロ秒(数万ナノ秒)から数百マイクロ秒で、その差は1,000倍あると書かれています。SAPの話と少し違う感じですが、桁としては似ています。その上で、今回のメモリは1~10マイクロ秒だそうで、NANDよりは1桁速いですが、DRAMよりも2桁遅いです。これはちょっと期待と違っていました。前回のエントリでは、アクセス速度について「現在メインメモリの主流であるDRAMと遜色ない速度(1.5倍くらい遅いようですが)」と書きましたが、100倍でしたか。。
これでは、コンピュータを変えるほどのインパクトは当面望めそうにありません。Publickeyの記事にも
現時点でアプリケーションから不揮発性メモリを活用する一般的な方法として、従来から存在するソフトウェアのテクニックであるメモリマップトファイルを利用するようです。
とありますが、そんな感じになるのでしょうね。Intelの発表の中にビデオがありますが、そこではDRAMとSSDの中間を取り持つ存在としてこの新メモリが描かれています。インメモリデータベースなどにはこれでも十分効果はあるのでしょうが、これだと「速いSSDができたので、これまでとは少し違う使い方ができます」というくらいのインパクトしか感じられません。
それでも期待
不揮発性メインメモリの本質は、もっと違うところにあるのだと思います(と信じています)。ただ、どうも今回のメモリはそれほど高速では無いため、完全にこれまでのDRAMを置き換えることができないのでしょう。それで、なんだか半端な位置づけになってしまっているように思えます。(それとも、この先もあまり高速化できないことがわかってしまっているのか?)
しかし、Intelもリリース文中でこのように言っています。期待したいところです。
One that we believe fundamentally breaks through some of the constricting methods for using data that have governed computing for more than 50 years. (50年以上に渡ってコンピューティングを支配してきたデータの利用方法についての制限のいくつかを根本的に解決すると信じている)
ただ、これはIntelだけではできないのも事実で、Intelが新しいデバイスを作り、それを活かしたOSやプログラミングの仕組みはMicrosoftとかGoogleが作っていくということになるのでしょう。
「50年以上の制約を解決」
ここで50年というのがミソですね。近代的コンピュータの始まりについては意見が分かれますが、よく言われるENIACができたのは1946年。70年以上前です。では、50年というのは何でしょう? Wikipediaを見ていたら、
というのがありました。これのことかなー。でも、62年前ですね。「ファイル」が生まれたはもう少し後のようです。これもWikipediaに
1962年のCTSSではファイルシステム機能があり、1つの補助記憶装置上に複数の「ファイル」が存在するという形態が登場した。これが現代的な意味でのファイルの始まりである。
とあります。56年前。近づいてきました。
ディスクが発明される前のコンピュータは、揮発性のメインメモリしか持っていなかったため、電源を入れるとパンチカードや磁気テープからプログラムを読み込んで実行していたのでしょう。それがディスクが発明されると、その上にいろいろなプログラムやデータを置いておき、何時でも高速に読み込むことができるようになり、それらを管理するためにファイルという概念が生まれ、それをうまく制御するためにDOS(Disk Operating System)が必要になった、という流れなのだろうと思います。Intelも「50年以上」と言っていますし、このあたりの話なのでしょうね。ファイルが無くなる世界、期待したいと思います。