10月4日に開催された「インテル デベロッパー・カンファレンス/ソリューション・デイ 2019」においてIntelは、3D Xpointメモリと3D NANDメモリを前面に押し出した発表を行った。
データセンタのサーバの場合、データの記憶階層は、CPU内部のキャッシュ、DRAMメモリで、その次はHDDというのが伝統的な構造である。
DRAMメモリのアクセスタイムは容量にもよるが数百ns程度である。これに対して、HDDのアクセスタイムは10ms~100msといったところで、DRAMと比較すると5桁くらい遅いことになる。PCでWebブラウザを動かしているような使い方の場合は、DRAMのメインメモリに格納されたデータをアクセスするだけで済むので、HDDがアクセスされることはほとんど起こらず、HDDが5桁遅いことはほとんど問題にならない。
しかし、データセンタのような用途や大規模なデータベースを処理する場合は、データはメインメモリには収まらず、HDDがアクセスされる。PCでもビデオをファイルに格納する場合にはHDDの読み書きの速度が直接見えるようになり、長い時間が掛る。
このファイルアクセスを高速にするためには、DRAMに5桁遅いHDDを直接つなぐのではなく、記憶容量が1桁多く、HDDの読み書きの速度よりも1桁遅い記憶装置を何階層もつないだ記憶階層を作れば、その影響を軽減できることが知られている。
Intelが提案するやりかたは、Optane DCのPersistent Memory(DRAMより若干遅いが、DRAMの10倍程度の容量がある不揮発性のメモリ)を第1段のキャッシュとして使い、第2段のキャッシュとしては、IntelのOptane DCのSolid State Disk(SSD)を推奨する。OptaneのSSDは3D NANDのSSDと比較して数倍アクセスが速くキャッシュとしての使用に適している。
第3段としてはアクセス速度はDRAMの100倍で良いが記憶容量はDRAMの100倍の10~100GBの容量が欲しい。ここでは、QLC 3D NANDなどの高密度SSDが向いている。なお、キャッシュとして使用されるフラッシュメモリは書き換えの頻度が多いので、それに耐えられる信頼度を持つように作られていることが必要である。
また、これらの各階層のキャッシュメモリにデータを書き込んだ状態で電源が切れると、書き込むべきデータが消えてしまう。このため、キャッシュ階層のメモリは不揮発性でなければならない。
現状、Optane DCの対抗馬となる不揮発性メモリは磁性体を使うMRAMである。しかし、MRAMは小さな容量のメモリは作れるのであるが、量産できる大容量のキャッシュメモリとしては、最近では3D Xpointメモリに抜かれて後塵を拝するという状況になっている。なお、3D Xpointメモリは共同で開発を行ったMicronも「QuantiX」という商標で製品化している。
大容量の不揮発性メモリと言えばNANDフラッシュの独壇場で、最近ではそれを3D多層化した3D NANDが大容量製品市場を独占している。そして、この市場ではSamsungやキオクシア(旧 東芝メモリ)が有名であるが、次の図に示すようにIntelも高密度化では先頭グループを走っている。そして、2020年には144層の3D NANDを出すほか、5bit/cellの開発に成功したとも言っており、高密度化のリーダーにおどり出そうとしている。
また、製品としては、2019年第2四半期に、1Uサーバに収容できるE1.Lというフォームファクタで記憶容量15TBのSSDを発表している。
さらに、Intelは記憶媒体だけでなく、サーバとして高い記憶密度を実現するE1.LとE1.Sというフォームファクタを提唱している。E1.Lは高さ38.6mmで厚みは12.5mmであるが、長さは325.25mmという細長いパッケージである。このサイズであれば1U筐体のサーバに立てて実装できる。次の図の写真の奥の横向きの白いパッケージがE1.Lである。
そして、E1.Lパッケージの手前に見えるのがE1.Sパッケージで、厚みは5mmで高さは31.5mm、長さは111.5mmとなっている。現状のE1.S製品の記憶容量は最大4TBである。
NANDメモリはビット密度を高めることを最優先とした設計であるので、SRAMのようにアドレスで1bitを選択して、そのデータを読む、あるいは書くということはできない。フラッシュメモリでは、一群のメモリビット全部を消去して、それらのビットに順に情報を書き込んでいくという動作になる。最初は記憶素子が1層のメモリであったが、今や100層になろうとしている。消去はすべての層を同時に消去することになるので、消去するブロックのサイズは層数に比例して大きくなる。
また、当初は1bit/cellのメモリであったが、現在では4bit/cellのQLCが多く使われている。1cellの情報は同時に消去されるので、さらに消去するブロックのビット数は数倍に大きくなる。
この大きなブロックには色々なデータが格納されており、書き込みを行うデータだけでなく、残しておく必要があるデータも存在することが多い。したがって、まず、アクセスするブロックのデータをバッファに読み出し、そのバッファに書き込むデータの部分を書き変え、次にそのバッファを消去したブロックに書き込むという動作になる。
また、TLCやQLCのような多ビットセルでは、8値とか16値というアナログな値を正確に書き込む必要がある。このため、書き込んだ電圧を読み出してみて、目標の電圧からの誤差分を補正する追加の書き込みを行って精度を向上させている。このように、QLC NANDなどのフラッシュメモリは書き込みに伴ってやることがたくさんあるので、書き込みアクセス時間は長くなってしまう。
これに対してIntelの3D Xpointメモリは次の図のようにXとY方向の金属配線の交点に記憶素子があるので、ビット単位でアクセスができる。このため、書き込みにあたって、NANDのように面倒な手順を踏まず、直接ビットをアクセスできるので、DRAMと同程度の時間でアクセスすることができる。
そして、3D Xpointメモリはセルを2層に重ねて記憶密度を高めている。原理的には、X、Y、X、Yと重ねていけば記憶密度を高めることができる構造であり、カンファレンスの会場では、4層にしてビット密度を倍増する素子はすでにできていると発表された。
次の図は、HDDのキャッシュとしての3D NANDのP4600 SSDを使った場合とOptane P4800Xを使用した場合を比較したものである。3つの図の内の左の図は横軸は書き込みのアクティビティで、縦軸は読み出しのレーテンシである。先に述べたように、3D NANDの場合、書き込みには色々な手間があるので時間がかかり、その間、読み出しが待たされるので、書き込みが頻繁になると黒い線のグラフのように読み出しのレーテンシは長くなるし、待ち時間も大きくばらつく。
一方、OptaneのSSDをキャッシュに使用した場合(青線)は書き込みにはほとんど影響されず、読み出しのレーテンシは一定である。P4800Xを使用した場合の読み出しのレーテンシは書き込み頻度がほぼゼロの場合でもP4600の8分の1、書き込み頻度が高い場合では63分の1となっている。
また、書き込み許容度は、P4800Xが60 Drive Write Per Day(DWPD:ドライブ全体への書き込みを1日に何回行うか)であるのに対して、3D NANDのP4600は3DWPDと1/20の書き込みしか許容されない。そして、右の図は、SSDのどれだけがキャッシュのために使われて実効容量が減少するかを示すパイチャートで、Optane P4800XではP4600に比べてキャッシュに使われる容量は1/3程度に抑えられている。
次の図はVMWare社のvSANで3D NAND SSDを使った場合とOptane SSDを使った場合の比較で、3D NAND SSDを使うと6ノードのサーバが必要であるが、Optane SSDなら4ノードのクラスタで済む。その結果、3D NANDを使うと3年間のサービスコストは36万5000ドル掛かるが、Optaneを使うと27万ドルで済む。Optane SSDは3D NANDのSSDよりも高いのであるが、性能が高くサーバの台数が減らせることで、3年間の運用費用はOptaneを使う方が経済的であるという。
このような経済効果は、どのような処理を行うかに依存するが、大量のデータを扱うデータセンタサーバでは、高速で、書き込み寿命も長いOptane SSDは威力を発揮しそうである。使用範囲が広がれば、Intelのドル箱に育つ可能性もあると思われる。