福田昭のセミコン業界最前線

不揮発性DIMM技術の本命「NVDIMM-P」が創造するPCとサーバーの近未来

不揮発性DIMM技術の本命「NVDIMM-P」が創造するPCとサーバーの近未来 NVDIMM技術(NVDIMM-P技術)が普及するDDR5メモリ時代のメモリ階層(予想図)
NVDIMM技術(NVDIMM-P技術)が普及するDDR5メモリ時代のメモリ階層(予想図)

 PC(タワーPCとデスクトップPC)とサーバーの主記憶(メインメモリ)は現在、DRAMモジュール(DRAM DIMM(Dual-Inline Memory Module))技術によって支えられている。過去が、ずっとそうであったように、今後もDRAM DIMMの時代が続くと考えがちだ。

 しかし5年後、言い換えると2020年代前半には、主記憶を支えるDRAM DIMMの姿は大きく変化している可能性が強まってきた。変化を牽引するのは、DIMMボードに不揮発性メモリとDRAMを混載する「不揮発性DIMM(NVDIMM: Non-Volatile Dual-Inline Memory Module)」技術である。

 NVDIMM技術による主記憶の変革は、2段階で進む。はじめは、「NVDIMM-N」と呼ばれるNVDIMMが主記憶に導入される。導入の時期は来年(2018年)~再来年(2019年)。DDRメモリの世代では、DDR4メモリ世代の後半に相当する時期である。その次に、「NVDIMM-P」と呼ばれるNVDIMMが主記憶に採用されるようになる。導入の時期は2020年代前半。DDRメモリの世代では、DDR4メモリの終わりから、DDR5メモリの始まりに相当する時期となる。

本格的な普及が始まるNVDIMM-N技術

 最初に導入される「NVDIMM-N」によってDRAM DIMMを置き換えると、何が起こるのだろうか。電源異常によるデータの消失を心配せずに済むようになる。データの消失は、システムが一時的に停止することを意味する。システムが停止している時間の長短が、コストや機会損失などを大きく左右する用途では、NVDIMM-Nは極めて重要な役割りを果たす。

 NVDIMM-Nの働きを簡単に説明しよう。NVDIMM-NはDRAMとNANDフラッシュメモリ、バックアップ用電源(スーパーキャパシタ)を混載したモジュールであり、電源異常の発生を検知すると、DRAMのすべてのデータをNANDフラッシュメモリに転送する。電源異常が発生しても、DRAM内部の貴重なデータを失う恐れがなくなる。電源が正常に戻ったら、NANDフラッシュメモリのデータをDRAMに書き戻す。書き戻しの所要時間は極めて短い。従来のDRAM DIMMだと電源が正常に戻った後でSSDあるいはHDDからデータをDRAM DIMMに書き戻す必要があり、この書き戻しに必要な時間がかなり長い。

 本コラムの既報「サーバー/ハイエンドPCの主記憶を変革するNVDIMM技術」で解説したように、DDR4メモリ互換のNVDIMM-Nは製品化と標準化が完了しており、Linux OSとWindows OSのサポートが始まっている。DDR4メモリ互換のNVDIMM-Nは来年(2018年)以降、本格的に普及していくだろう。

 ただし、本コラムの前回「停電の恐怖と記憶容量の制約から主記憶を解放するNVDIMM技術」で説明したように、NVDIMM-N技術はNVDIMM技術の「本命」ではない。主記憶(メインメモリ)の不揮発化には寄与するものの、主記憶を変革する原動力とはなりにくい。

 NANDフラッシュメモリの特徴である「記憶容量当たりの単価がDRAMよりもはるかに低い」ことを活用した「記憶容量の拡大」と、NANDフラッシュメモリが待機時は消費電力が原理的にゼロになることを活用した「消費電力の節約」。この両方を兼ね備えたNVDIMM技術が、本命の技術であり、主記憶を変革する原動力となる。それが「NVDIMM-P」技術だ。

不揮発性DIMM技術の本命「NVDIMM-P」が創造するPCとサーバーの近未来 NVDIMM技術による主記憶の変革
NVDIMM技術による主記憶の変革

NVDIMM技術の本命「NVDIMM-P技術」が次世代の主記憶を担う

 NVDIMM-P技術がNVDIMM-N技術と決定的に違うのは、外部から直接、不揮発性メモリ(NANDフラッシュメモリなど)にデータを書き込める点にある。バックアップ用途が主目的であるNVDIMM-N技術では、外部からデータを書き込む対象はDRAMだけだ。NANDフラッシュメモリにデータを外部から書き込む機能は持たない。

 これに対してNVDIMM-P技術は、不揮発性メモリ(実際にはNANDフラッシュメモリ)にデータを直接、書き込める。つまり、DIMMの記憶容量がDRAMチップとNANDフラッシュチップの合計に拡大する。NANDフラッシュメモリのシリコンダイ当たりの記憶容量は64Gbit~512Gbit。DRAMのシリコンダイ当たりの記憶容量は4Gbit~8Gbit。ワンシリコンでNANDフラッシュメモリは、DRAMの16倍~128倍の記憶容量を備えることになる。

 そして記憶容量当たりのコストでは、DRAMよりもNANDフラッシュメモリがはるかに低い。両者には10倍~20倍の開きがある。NANDフラッシュメモリを混載することで、DIMMボードの記憶容量を低いメモリコストで大きく拡大できる。

 仮に8GbitのDRAMシリコンを32個搭載したDIMMがあるとしよう。記憶容量は32GBである。ここに512Gbit(64GB)のNANDフラッシュのシリコンを2枚ほど追加しただけで、全体の記憶容量は32GBと128GBの合計、すなわち160GBに増加する。つまり、DRAMモジュールの記憶容量が見かけ上は、5倍に増えたことになる。しかもメモリのコストは、2倍以下に収まっている可能性が高い。

 そして160GBの「DRAMモジュール」の中で、待機時(メモリアクセスがない期間)に電力を消費するのは32GBのメモリ(DRAM)部分だけである。160GBのすべてをDRAMチップで実現する場合に比べ、待機時の消費電力は約5分の1と大幅に低くなっている。

不揮発性DIMM技術の本命「NVDIMM-P」が創造するPCとサーバーの近未来 2つのNVDIMM技術(NVDIMM-N技術とNVDIMM-P技術)の比較
2つのNVDIMM技術(NVDIMM-N技術とNVDIMM-P技術)の比較

メモリ階層とNVDIMM技術の近未来

 ここでサーバーやPCなどのシステムでメモリ階層が近い将来に、どのように変化していくかを概観しよう。NVDIMMの最初の世代であるNVDIMM-Nの普及は、DDR4メモリ時代の後半に始まる。メモリ階層では、現在のDRAM DIMMの階層の下に、NVDIMM-Nの階層が生じる。

不揮発性DIMM技術の本命「NVDIMM-P」が創造するPCとサーバーの近未来 DDR4メモリ時代後半のシステムにおけるメモリ階層
DDR4メモリ時代後半のシステムにおけるメモリ階層

 次に、NVDIMMの本命であるNVDIMM-Pが普及していくと、DRAM DIMMの階層は消滅する。高速性を追求する用途は、主記憶最上層のHBMがモジュールのコストダウンによって受け持つようになる。そして記憶容量の拡大と低消費電力の両立を追求する用途は、NVDIMM-Pが担う。DRAM DIMMの階層は隣接する上下の階層に吸収される形で、消えていく。DDR5メモリ時代のメモリ階層は、このようになっていくと予想される。

不揮発性DIMM技術の本命「NVDIMM-P」が創造するPCとサーバーの近未来 DDR5メモリ時代のシステムにおけるメモリ階層
DDR5メモリ時代のシステムにおけるメモリ階層

 繰り返しになるが、NVDIMM技術が普及していくスケジュールを再度、見ていこう。NVDIMM-N技術は標準規格が完成して公開されており、OSのサポートが始まり、エコシステムが整備されつつある。来年(2018年)以降、DDR4メモリのDIMMソケットに対応したNVDIMM-Nモジュールが本格的に普及していくと期待される。

 これに対して本命とされるNVDIMM-P技術は現在のところ、業界団体JEDECの標準規格(DDR4メモリ向け)が来年(2018年)に完成する予定である。DDR5メモリ向けの標準規格策定も、予定されている。ただし、OSのサポートやエコシステムの構築などはまだこれからだ。NVDIMM-P技術の普及が始まるのは早くても、2020年代の初頭になるだろう。

不揮発性DIMM技術の本命「NVDIMM-P」が創造するPCとサーバーの近未来 NVDIMM-N技術とNVDIMM-P技術の未来予想図(スケジュール)
NVDIMM-N技術とNVDIMM-P技術の未来予想図(スケジュール)
不揮発性DIMM技術の本命「NVDIMM-P」が創造するPCとサーバーの近未来 NVDIMM-P技術の標準規格策定作業。DDR4メモリでは、現行のDIMM規格の拡張仕様としてNVDIMM-Pの技術仕様を策定する。DDR5メモリでは、NVDIMM-Pは主要技術として最初から組み込まれる
NVDIMM-P技術の標準規格策定作業。DDR4メモリでは、現行のDIMM規格の拡張仕様としてNVDIMM-Pの技術仕様を策定する。DDR5メモリでは、NVDIMM-Pは主要技術として最初から組み込まれる

NVDIMM-Pではアウトオブオーダー実行をサポート

 ここからはNVDIMM-P技術の概要を解説していく。NVDIMM-P技術の特徴は、DRAMとNANDフラッシュメモリ(標準規格の対象は不揮発性メモリ全般)の両方を自由に使いこなせることにある。これは大きなメリットであると同時に、制御プロトコルがかなり複雑になることを意味する。

不揮発性DIMM技術の本命「NVDIMM-P」が創造するPCとサーバーの近未来 NVDIMM-Pモジュールの概要。書き込みデータをDRAMに格納するモードと、NANDフラッシュに格納するモードがある
NVDIMM-Pモジュールの概要。書き込みデータをDRAMに格納するモードと、NANDフラッシュに格納するモードがある
不揮発性DIMM技術の本命「NVDIMM-P」が創造するPCとサーバーの近未来 NVDIMM-Pモジュールの2つの形態。左は、すべてのデータがコントローラを経由して入出力されるモジュール。DRAMの存在はCPU(ホスト)からは隠ぺいされる。メモリアクセスの遅延時間(レイテンシ)は長めになるものの、制御そのものは簡素である。右は、コントローラを経由せずにDRAMと外部でデータをやり取り可能なモジュール。チップセレクト(CS)信号により、NVDIMM-Pとして扱うモードとDRAMモジュールとして扱うモードのどちらかを選択できる
NVDIMM-Pモジュールの2つの形態。左は、すべてのデータがコントローラを経由して入出力されるモジュール。DRAMの存在はCPU(ホスト)からは隠ぺいされる。メモリアクセスの遅延時間(レイテンシ)は長めになるものの、制御そのものは簡素である。右は、コントローラを経由せずにDRAMと外部でデータをやり取り可能なモジュール。チップセレクト(CS)信号により、NVDIMM-Pとして扱うモードとDRAMモジュールとして扱うモードのどちらかを選択できる

 制御プロトコルの最大の違いは、アウトオブオーダー実行をサポートしたことだろう。DRAM DIMMでは、読み出しコマンドの順番と、出力されるデータの順番は一致している。ところがNVDIMM-Pでは、読み出しコマンドの順番と、出力されるデータの順番は一致するとは限らない。場合によっては、出力されるデータの順番が前後する。

 なぜこのようなことをするかというと、DRAMと不揮発性メモリでは、メモリアクセスの遅延時間が大幅に異なる可能性があるからだ。CPU(ホスト)のアクセス対象は「NVDIMM-P」モジュールであり、モジュール内部に格納されているメモリ技術の違いはCPUからはなるべく見えないようにしたい。DRAMと不揮発性メモリ(しかも性能の異なる複数の技術がある)を混在させるための、苦肉の策とも言える。

不揮発性DIMM技術の本命「NVDIMM-P」が創造するPCとサーバーの近未来 NVDIMM-Pのデータ読み出しプロトコル。アウトオブオーダー実行をサポートすることで、搭載メモリ技術の遅延時間の違いを隠ぺいする
NVDIMM-Pのデータ読み出しプロトコル。アウトオブオーダー実行をサポートすることで、搭載メモリ技術の遅延時間の違いを隠ぺいする

ハンドシェークを基本とするデータのやり取り

 NVDIMM-Pの読み出しと書き込みに関するプロトコルも、DRAMとはかなり違う。違うのは、ハンドシェークを基本として動作が進行することだ。

 読み出し動作には、「XREAD」と「SREAD」の2種類のコマンドを用意した。「XREAD」は通常のデータ読み出しに相当するコマンドである。ホスト(CPUあるいはメモリコントローラ)が「XREAD」コマンドとアドレスをNVDIMM-Pに送ると、NVDIMM-Pは不揮発性メモリからデータを読み出してDIMM内部のコントローラ(バッファ)に保存する。そして、データが準備できたことを示す「RD_RDY」(読み出し準備完了)信号をホストに送出する。「RD_RDY」を受け取ったホストは、「SEND」信号を送出する。SEND信号を受領してから「tSEND」時間後に、DIMMはデータ(DQ)と誤り訂正符号(ECC)、読み出しID(RID)をホストに送出する。

不揮発性DIMM技術の本命「NVDIMM-P」が創造するPCとサーバーの近未来 通常のデータ読み出し「XREAD」のタイミングチャート。データが用意できたことを示す「RD_RDY」信号をRSP_Rピンを通じてDIMM側がホストに伝えてから、読み出しが始まる
通常のデータ読み出し「XREAD」のタイミングチャート。データが用意できたことを示す「RD_RDY」信号をRSP_Rピンを通じてDIMM側がホストに伝えてから、読み出しが始まる

DRAMあるいは高速メモリをキャッシュに使う

 もう1つの読み出しコマンド「SREAD」は、キャッシュからの読み出しを想定した、NVDIMM-Pに特有のコマンドである。NVDIMM-Pでは相対的には低速な大容量の不揮発性メモリと、高速で小容量のキャッシュに相当するメモリ(普通はDRAM)を混載する。規格の詳細は固まっていないが、異なるタイプとサイズのキャッシュに対応する予定である。

 「SREAD」コマンドとアドレスをホストがDIMMに送出した後、DIMMは「tSEND」時間後にデータ(DQ)と誤り訂正符号(ECC)、ヒット/ミスの識別符号を送出する。ここで最も重要なのは、「ヒット/ミスの識別符号」である。ヒットの場合は、ホストはデータを読み込める。ミスの場合は、ホストは読み込んだデータを使わない。キャッシュミスのときはDIMMのコントローラがデータを不揮発性メモリから読み出し、コントローラのバッファに転送する。そしてXREADと同様に、RD_RDY、SENDとプロトコルが進む。

不揮発性DIMM技術の本命「NVDIMM-P」が創造するPCとサーバーの近未来 キャッシュの読み出し「SREAD」のタイミングチャート。キャッシュヒットの場合とキャッシュミスの場合でプロトコルが大きく違ってくる
キャッシュの読み出し「SREAD」のタイミングチャート。キャッシュヒットの場合とキャッシュミスの場合でプロトコルが大きく違ってくる

不揮発性メモリにデータを書き込む専用コマンドを用意

 書き込み動作にも、2種類のコマンドがある。「XWRITE」と「PWRITE」だ。「XWRITE」は通常のデータ書き込みに相当するコマンドである。ホストは「XWRITE」コマンドとアドレスをDIMMに送信する。そして一定時間(tWL)後に、ホストはデータをDIMMに送信する。DIMMは同じタイミングで、データを受信する。

不揮発性DIMM技術の本命「NVDIMM-P」が創造するPCとサーバーの近未来 通常のデータ書き込み「XWRITE」のタイミングチャート
通常のデータ書き込み「XWRITE」のタイミングチャート

 「PWRITE」は、DIMMの不揮発性メモリにデータを書き込むコマンドである。「XWRITE」コマンドでは、データがDIMMのどのメモリに格納されたかは分からない。「PWRITE」コマンドを使うとデータが確実に不揮発性メモリに書き込まれるので、電源異常によるデータ消失の恐れがなくなる。

 「PWRITE」コマンドによる書き込み手順の前半は、「XWRITE」コマンドと変わらない。ホストはタイミングを合わせてデータをDIMMに送出する。違うのはここからだ。DIMMは、データが不揮発性メモリに書き込まれたことを示す信号「W_PER」をホストに送信する。この信号を受信したホストは、通常の読み出しコマンド「XREAD」のプロトコルを使い、「ステータス(Status)」パケットを読み出す。「ステータス」パケットには、不揮発性メモリに書き込まれたデータのビットマップが格納されている。このビットマップは次回以降のDIMMアクセスに活用される。

不揮発性DIMM技術の本命「NVDIMM-P」が創造するPCとサーバーの近未来 不揮発性メモリへのデータ書き込み「PWRITE」のタイミングチャート
不揮発性メモリへのデータ書き込み「PWRITE」のタイミングチャート

 さらにNVDIMM-Pでは、データを不揮発性メモリに格納するもう1つのコマンドとして、「FLUSH」コマンドを用意する。「FLUSH」はDIMM内部のコントローラ(バッファ)に格納してあるデータを、DIMMの不揮発性メモリに転送するコマンドである。ホストが「FLUSH」コマンドを送出すると、DIMMはデータを不揮発性メモリに書き込む。書き込みが完了すると、確認信号である「W_PER」信号をDIMMはホストに返信する。以降は「PWRITE」コマンドによるプロトコルと同様に、ホストは「ステータス」パケットを読み出す。

DDR4メモリに対応したNVDIMM-Pボードは2つのピンを追加

 DDR4メモリに対応したNVDIMM-Pボードのピン配置はすで固まりつつある。具体的には、独自のプロトコルを実行するために、「RSP_R」ピンと「RSP_E」ピンをDDR4 DRAM DIMMに追加する。ただしピンを増やすわけではない。これらのピンは、一部の既存のピン、具体的には「ODT1」ピンと「CKE1」ピンに多重化される。なお、DDR5メモリに対応したNVDIMM-Pでは、これら2本のピンを1本のピン「RSP_n」に統合する予定である。

不揮発性DIMM技術の本命「NVDIMM-P」が創造するPCとサーバーの近未来 DDR4メモリに対応したNVDIMM-Pボードのブロック図とピン配置。すべてのデータは一度、コントローラ(メディアコントローラ)に集められる。ピン配置図の中央に小さく描かれている「RSP_R」ピンと「RSP_E」ピンが、NVDIMM-P独自のピンである
DDR4メモリに対応したNVDIMM-Pボードのブロック図とピン配置。すべてのデータは一度、コントローラ(メディアコントローラ)に集められる。ピン配置図の中央に小さく描かれている「RSP_R」ピンと「RSP_E」ピンが、NVDIMM-P独自のピンである
不揮発性DIMM技術の本命「NVDIMM-P」が創造するPCとサーバーの近未来 NVDIMM-P独自のプロトコルを担うピンとその役割り。DDR4メモリでは、読み出し準備完了信号「RD_RDY」をRSP_Rピンが、不揮発性メモリへのデータ書き込み完了信号「W_PER」をRSP_Eピンが担う
NVDIMM-P独自のプロトコルを担うピンとその役割り。DDR4メモリでは、読み出し準備完了信号「RD_RDY」をRSP_Rピンが、不揮発性メモリへのデータ書き込み完了信号「W_PER」をRSP_Eピンが担う

 NANDフラッシュメモリとDRAMの混載がメモリのアクセス性能に与える影響は、NANDフラッシュメモリの記憶容量が増加するほど、大きくなる。NANDフラッシュメモリは基本的にデータ書き込みが遅いからだ。DRAM DIMMの性能を100%と仮定すると、DRAMの記憶容量を1、NANDフラッシュメモリの記憶容量を4の割合で搭載したNVDIMM-Pの性能は、約80%に低下する。NANDフラッシュメモリの記憶容量を2の割合にまで減らすと、性能は90%前後と若干ではあるが、改善する。

不揮発性DIMM技術の本命「NVDIMM-P」が創造するPCとサーバーの近未来 NANDフラッシュメモリとDRAMの混載によるメモリ性能の変化(シミュレーション値)
NANDフラッシュメモリとDRAMの混載によるメモリ性能の変化(シミュレーション値)

 上記の結果から見るとNANDフラッシュメモリの混載は性能的には不利に見える。しかし、例えばDRAMを1、NANDフラッシュメモリを4の割合で搭載したモジュールの記憶容量は「5」であり、「5」の記憶容量を備えるDRAMモジュールと性能を比べた結果であることに留意されたい。ここには「コスト」の観点が抜けている。「5」の記憶容量を備えるDRAMモジュールとは、DRAMのコストが5倍になるモジュール、という意味である。これを許容可能な予算があるのなら、最初からNVDIMM-Pは不要なのだ。

 一方、DRAMを1、NANDフラッシュメモリを4の割合で搭載したモジュールのコストは、専用コントローラを含めても1.5倍~2倍にとどまる。1.5倍~2倍のコストで4倍~5倍の記憶容量が得られる。

 ここで重要なのはメモリそのものではなく、アプリケーションが要求する記憶容量が急速に増大しつつあるという、要求仕様の変化だろう。1xnm世代で、シングルダイにおけるDRAMの記憶容量の拡大は飽和しつつある。16Gbitまでは見えているが、32Gbitはかなり怪しい。一方、NANDフラッシュは3D NAND技術の登場と急激な改良によって1Tbit(1,024Gbit)がすでに視野に入った。

 2020年代前半、あるいは5年後を想定すると、DRAMモジュール単独での記憶容量の拡大は、もはや困難な段階に入りつつある。記憶容量の拡大要求に応えるには、大容量で低コストのNANDフラッシュメモリ、あるいは3D XPointメモリの助けを借りるしかない。NVDIMMの台頭は、DRAM DIMMの限界が近づいていることの裏返しでもあるのだ。