COOL Chips 23の基調講演でIntelが語ったOptaneメモリ

2020年4月15日から17日までの3日間、IEEEが主催するコンピュータの国際学会「COOL Chips 23」がオンラインを活用する形で開催された。その基調講演で、Intelは不揮発性のOptaneメモリについて講演した。

Optaneメモリはデータセンター向けが中心だが、最近は個人向けにも提供されるようになってきた、なかなか面白いメモリである。

Optaneメモリが誕生した背景

次の図はコンピュータのメモリとストレージの階層を示すものである。ここで、メモリはバイトアドレスでアクセスする記憶デバイスで、ストレージはバイトよりはずっと大きな、例えば数10KB単位のブロックでアクセスする記憶デバイスである。

コンピュータのメモリとして、アクセスが高速で、ビット単価の安いものがあれば理想的であるが、そうはいかない。一般に、アクセス速度の速いメモリは高価であるので、経済的な点で大容量のメモリには使いにくい。従って、プロセサの近くには高速で小容量のメモリを置き、大量のデータを記憶するためにビット単価が安いメモリを使うということになる。

しかし、この2階層のメモリでは、高速小容量のメモリには格納できないデータが多く、大容量、低速のメモリへのアクセスの回数が多くなってしまう。こうなると、メモリ系全体としてはアクセス性能は上がらない。

この問題を軽減するため、メモリを多階層にする。CPUに一番近い階層はキャッシュでCPUチップに内蔵されることが多い。その次の階層はCPUチップと同じパッケージに入れられる高速メモリである。その次がコンピュータの主記憶の定番であるDRAMである。

そしてDRAMの次が、かつてはハードディスク(HDD)であった。DRAM主記憶のアクセス時間は数100nsであるが、HDDのアクセス時間は数10msで、4桁ほどの違いがある。このため、HDDのデータを読む必要がでると、長時間、CPUは止まってデータの到着を待つことになる。最初にHDDをアクセスするときは時間がかかるのは仕方がないが、たくさんのデータを纏めて読み込めば、次のデータはDRAMから読めるというケースが多くなる。そのため、次回以降は早くアクセスできることが多いので、低速の記憶デバイスはアクセスごとに大量のデータを纏めて読み書きするデバイスとなっている。

しかし、DRAMとHDDの4桁のアクセス時間の差を埋めるのは困難で、中間の速度とビット価格のメモリが求められた。そこに登場したのがNAND型フラッシュメモリである。NANDはHDDよりも高速なSSDとして登場した。これにより、記憶階層のアクセス時間とコストのギャップは狭まったが、SSDはDRAMと比べると3桁遅く、ギャップが埋まるというところまでは行かなかった。

  • Optane

    一般のコンピュータの記憶階層。DRAMと3D NANDの間には、アクセス速度、記憶コストで大きなギャップがある (出典:このレポートのすべての図はCOOL Chips 23でのIntelのJianping Xu氏とKaushik Balasubramanian氏の基調講演のスライドのコピーである)

Optaneメモリの仕組み

そこに登場したのがIntelのOptane DC不揮発性メモリとOptane DC不揮発性ストレージである。これらのデバイスは、CDやDVDのディスクと同じカルコゲナイドという物質を使っていると言われている。カルコゲナイドは高温にして急冷するとアモルファス状態で凝固し高抵抗になり、ゆっくり冷やすと結晶状態になって低抵抗になるので、2値の状態を記憶できる。この状態は電源を切っても消えないので、不揮発性の記憶デバイスとなる。

また、カルコゲナイドは掛ける電圧を上げて行きしきい値を超えると急に電流が流れるという性質がある。この性質を使う素子は「Ovonic Threshold Switch(OTS)」と呼ばれている。

ビット線とワード線に正負の電圧を与えると、両者の交点の素子には合計の電圧がかかるのでしきい値を超える電圧が掛かる。そして、カルコゲナイドのスイッチは低抵抗の状態となる。

ビット線やワード線に繋がっている他の素子にも電圧が掛かるが、交点以外の素子にはどちらかの一方の電圧しかかからないので、しきい値より小さい電圧しか加わらず、スイッチは高抵抗の状態にとどまる。

結果として交点の記憶素子だけが選択されて、低抵抗のスイッチを経由して、その記憶素子の抵抗値を読むことができる。

この性質は古くから分かっていたが、不揮発性メモリを作るには、IntelとMicronの技術陣が協力しても長い時間を要した。

なお、開発段階ではIntelとMicronは協力したが、商品化のステージでは袖を分かって独自に製品を作っている。

Optaneファミリそれぞれの位置づけ

そして、Intelは、DRAMでは記憶容量が足りないという容量ギャップを埋めるのがOptane DC不揮発性メモリであるという。

また、NAND SSDではアクセス速度が遅いというギャップを埋めるのがOptane DCを使うSSDであると位置づけている。

  • Optane

    DRAMの次の階層にOptane DC不揮発性メモリ、その次の階層にOptane DC SSDを使うとギャップを埋められる

次の図は3D Xpoint素子のSEM写真である。M4層とM5層の間にXpoint記憶素子が作られている。左上のイラストに見られるように、ワード線とビット線の交点に2段に記憶素子が積まれている。

イラストの黄色の部分がOvonic Threshold Switchで、赤い部分が相変化で抵抗値が変化する記憶素子である。

  • Optane

    Intelの3D XpointメモリのSEM断面像。第4層の金属配線層と第5層の金属配線層の間に細かい櫛の歯のように見えるのが3D Xpointメモリアレイである。左上はメモリ素子部の拡大イラスト。右上のSEMは記憶素子を拡大したもので、上から順にビット線、OTSスイッチ、記憶素子、ワード線が見える。右側の面はビット線方向、左側の面はワード線方向に切った図である

Optane DC不揮発性メモリは、右側の写真に見られるように、放熱板の付いたDDR4と互換のDIMMで、128GB、256GB、512GBのモジュールが製品化されている。

不揮発性のFlashメモリなどはブロック単位でアクセスしてまとめて読み書きするが、Optaneは交点ごとの記憶素子をアドレスするので、DRAM DIMMと同様にバイト単位でアドレスすることができる。

  • Optane

    Optane DC不揮発性メモリは128GB、256GB、512GBの容量のDIMMが製品化されている。NAND Flashとは異なり、バイト単位でアドレスできる。そして、NAND Flashと違い書き込みを繰り返しても劣化が少ない。右側の画像は放熱板が付いたOptane DCメモリDIMM

DIMMは表裏で合計11個のXpointメモリチップと専用のメモリコントローラチップなどが搭載されている。コントローラチップにはマイクロコントローラ、AES-XTS256暗号化、ECCなどの機能が搭載されている。

  • Optane

    Optane DIMMには11個の3D Xpointメモリチップと専用のメモリコントローラチップなどが搭載されている

2つのモードがあるOptaneメモリ

Optaneメモリには、メモリモードとアプリケーションモードという2つの使い方がある。メモリモードは、Optaneメモリをメインメモリとして使い、DDR4 DRAMはキャッシュとして使う。CPUからのアクセスがDDR4メモリにヒットすればOptane無しのメモリ系と同様に、DDR4からCPUにデータを返す。一方、DDR4メモリにデータが無い場合はOptaneメモリをアクセスする。このメモリモードでは、ソフトウェアを変える必要は無い。

アプリケーションダイレクトモードでは、DDR4メモリとOptaneメモリは別々のメモリで、データの配置はソフトウェアで決めて、それぞれをアクセスするプログラムを書かなければならない。

  • Optane

    Optaneメモリは、メモリモードとアプリケーションダイレクトモードという2つの使い方ができる。メモリモードでは、DRAM部分をキャッシュとし、Optaneをメインメモリとして使う。一方、アプリダイレクトモードではソフトウェアがDDR4をアクセスするかOptaneをアクセスするか意識してプログラムを書く必要がある

Optaneは不揮発性メモリであるので、停電などが起こってもデータは保持されているというメリットがあるが、Optaneモジュールが盗まれると、書いてあったデータが盗まれてしまう。このため、Optaneメモリは256bitのAES-XTP暗号化を行ってデータを保護している。そして暗号化のカギはモジュール上のハードウェアに格納されており、ファームウェアでアクセスを制御している。

  • Optane

    モジュールを盗まれると、格納されているデータも盗まれてしまう。このため、格納するデータは256bitのAES-XTPで暗号化している。暗号化のカギはモジュール上のハードウェアに格納されてファームウェアによる権限チェックを通らないとアクセスできない

Optaneメモリの性能はどの程度か

次のグラフはランダムな読み出しを行った場合のレーテンシを示すもので、左端は通常のNAND SSD、中央はIntelのOptane SSD、右端はOptaneメモリを使った場合のレーテンシで、青の部分はハードウェア自体のレーテンシで、茶色の部分はソフトウェアのレーテンシである。

通常のSSDはデータの読み出しに80μsあまり掛かるが、Optane SSDは記憶素子が高速なので、10μs程度で読み出すことができる。右端のOptaneメモリは~100nsから~340nsでアクセスでき、DRAMと比べると多少遅いものの、普通のSSDより高速のOptane SSDと比べても30倍以上速い。

  • Optane

    通常SSDとOptane SSD、Optaneメモリのランダム読み出しのレーテンシの比較。通常SSDは80μs以上、Optane SSDは10μs程度、Optaneメモリは~100nsから~340μs

次の図はIntelの通常のSSD、Optane SSD、Optaneメモリの読み書きのバンド幅と読み出しレーテンシの関係を示すグラフである。ここで書いた順にレーテンシが短く、読み書きできるバンド幅も大きくなっている。読み出しのレーテンシであるが、Optaneメモリは通常のSSDと比べると最大1000倍も速い。

  • Optane

    横軸は読み書きのバンド幅、縦軸は平均の読み出しバンド幅である。3本のグラフは上から順に通常のSSD、Optane SSD、Optaneメモリの性能を表している。Optaneメモリは5GB/sのバンド幅でも1μs以下のレーテンシを保っている

NAND Flashは電荷を保持する薄いゲート絶縁膜の劣化という問題があり、書き込み寿命が短い。しかし、Optaneメモリは動作原理が全く異なり、カルコゲナイドというバルク物質の相変化で情報を記憶しており、NAND Flashに比べて各段に書き込み耐性が高い。

  • Optane

    NAND Flashは書き込み寿命が短いが、Optaneメモリは数百PBの書き込み寿命があり、製品には5年間の保証が付いている

次の図の縦軸はメモリバンド幅、横軸はDRAMキャッシュのヒット率である。3本のグラフは、上から最大負荷の状態、33GB/sという中負荷、13GB/sの低負荷の状態を表している。低負荷、中負荷では、 DRAMキャッシュのミス率が40%まで上がっても読み書きのバンド幅には影響はでていない。最大バンド幅を使っている場合はキャッシュミスが増えると使えるメモリバンド幅が減っていく。しかし、40%のキャッシュミス率であれば40GB/sは維持している。

  • Optane

    縦軸はメモリアクセスのバンド幅で、3つのグラフは、上から順に、最大バンド幅、33GB/sの中負荷、13GB/sの低負荷のグラフである

DRAMとNAND Flashメモリを使うSSDの間のアクセス速度とビット単価のギャップは大きく、大量のデータを扱うデータセンターサーバーでは、このギャップのために効率的なメモリ階層が作れないという問題があった。しかし、IntelのOptaneメモリとOptane SSDを使うことによって、このギャップを埋めることができるようになった。

パソコンを使っている場合でも、大きな配列を定義したりすると、仮想記憶が動いて、DRAMを溢れたデータをSSDやHDDと出し入れして処理を行うようになる。仮想記憶を使い始めるとパソコンの処理速度がドラマチックに遅くなることを経験された読者はOptaneのような記憶階層の重要性を理解して頂けると思う。

  • Optane

    DRAMとHDDのギャップに、Optaneメモリ、Optane SSDとIntelの3D NAND SSDを入れると大量データを扱うことができるようになる