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

NANDフラッシュをDIMMに載せたら

 NANDフラッシュメモリを載せたメモリモジュール(NANDフラッシュ搭載DIMM)の開発が活発になってきた。NANDフラッシュ搭載DIMMを、サーバーの主記憶用DIMMスロットに装着することで、ストレージ(外部記憶)、あるいは、システムメモリ(主記憶)として利用する。

 NANDフラッシュ搭載DIMMには、大別すると2種類のメモリ構成が存在する。1つは、DDR3 DRAMあるいはDDR4 DRAMと、NANDフラッシュメモリを混載したDIMMである。もう1つは、NANDフラッシュメモリだけを載せたDIMMである。いずれも「NVDIMM」あるいは「不揮発性DIMM」などと呼ぶことが多い。

DRAMとNANDフラッシュを混載したDIMMの動作

 前者の「DRAMとNANDフラッシュを混載したNVDIMM」は、通常はDRAM DIMMとして利用する。CPUのDDRメモリコントローラからは、DRAMだけが見え、NANDフラッシュメモリは見えない。NVDIMMが搭載するDRAMの記憶容量とNANDフラッシュメモリの記憶容量は普通、同じである。DRAMとNANDが8GBずつ、あるいは、16GBずつ、といったメモリ構成になる。ほかには、NANDフラッシュ用のコントローラロジックがDIMMには搭載されている。

 DRAMとともにNANDフラッシュメモリを搭載するのは、バックアップのためだ。停電(瞬時電源電圧低下を含む)が発生したり、不良発生によってシステムがリセットしたりすると、DIMMを載せたボードの電源が断たれる。通常のDRAM DIMMであれば、ここでDRAMの内容は全て、失われる。

「DRAMとNANDフラッシュを混載したNVDIMM」の例。上はDDR3 DIMMタイプ。左右はモジュールの表面と裏面。中央はDDR4 DIMMタイプ。下はバックアップ電源用のスーパーキャパシタ基板。いずれもViking Technologyの製品

 NVDIMMでは電源の喪失を検知すると直ちに電源がバックアップ電源に切り換わり、DRAMのデータを保持する。バックアップ電源は通常、スーパーキャパシタ(大容量コンデンサ)である。スーパーキャパシタは永久に電源として機能するわけではない。スーパーキャパシタが貯蔵していた電気エネルギーを完全に放電すると、NVDIMMの電源は失われる。その前に、NVDIMMはDRAMのデータを全て、NANDフラッシュメモリに転送(コピー)する。

 転送が完了したところでNVDIMMは自分用の電源を遮断し、システムの電源が復活するのを待つ。システムの電源が復活したら、NANDフラッシュメモリの内容をDRAMに書き戻す。同時にスーパーキャパシタを充電する。

DDR3 DIMMスロットに装着したNVDIMMの動作。通常はDDR3 DRAM DIMMと同様に動作する。左端はシステムの電源の状態(緑色は電源オンを意味する)、中央はDIMM(左がDRAM、中央がコントローラ・ロジック、右がNANDフラッシュメモリ)とスロット、サーバー、右端はスーパーキャパシタ
システムの電源が遮断される(左端のスイッチが赤色になる)と、DRAMのデータ(誤り訂正符号を含む)を全て、NANDフラッシュメモリに転送する。転送中に電源はスーパーキャパシタが賄う。転送が完了したら、DIMMの電源を遮断する
システムの電源が復活する(左端のスイッチが緑色になる)と、NANDフラッシュメモリのデータをDRAMに転送する。同時にスーパーキャパシタを充電する
DRAMへのデータ転送が完了すると、NVDIMMは再び通常の状態に戻る。リブートされたシステムはDIMMをDDR3 DRAMと認識する
システムの電源遮断によってDRAMのデータをNANDフラッシュメモリに転送する時のタイミングチャート。始めに何らかの原因で電源(交流電源)が止まる(ポイントA)。電源の状態を示す信号「Powergood」が変化し、異常発生を通知する(ポイントB)。異常発生を受信したロジック(CPLD)はセーブトリガー信号「SAVE_Trigger_n」をアクティブにする(ポイントC)。セーブトリガー信号を受信したプロセッサあるいはチップセットは、割り込み状態に入る(ポイントD)とともに、NVDIMMに対するセーブ信号「SAVE_n」をアクティブにする(ポイントF)。セーブ信号を受信したNVDIMMは、DRAMのデータをNANDフラッシュメモリに転送する(ポイントG)

DRAMとNANDを混載したDIMMのメリットとデメリット

 「DRAMとNANDフラッシュを混載したNVDIMM」のメリットは、停電に対処するコストが大きく下がることだろう。場合によっては、無停電電源装置(UPS)を省ける。このメリットは大きい。

 もう1つのメリットはダウンタイムの短縮である。DRAMのデータが全て消えた場合は、データを全てPCIe接続あるいはSAS/SATA接続のストレージ(HDDあるいはSSD)から転送しなければならない。これらのストレージをDRAMから見ると、NANDフラッシュメモリに比べて遅延時間(レイテンシ)がはるかに長く、また、データ転送速度が極めて遅い。データセンターやWeb系システムのようなリアルタイム処理が必要とされるシステムでは、ダウンタイムはすなわち、金額的損失になる。ダウンタイムは極力、短いことが望ましい。

 デメリットはもちろん、DIMMのコストが上昇することである。部品コストだけでも、NANDフラッシュメモリとコントローラロジック、バックアップ電源用スーパーキャパシタのコストが通常のDRAM DIMMに加わる。

DRAMとNANDフラッシュを混載したNVDIMMのメリット(無停電電源装置の省略)

NANDフラッシュDIMMは「超高速」のSSD

 続いてもう1つのNVDIMM、メモリ構成としては「NANDフラッシュメモリだけを載せたDIMM(NANDフラッシュDIMM)」を見ていこう。DIMMにはNANDフラッシュのほかには主に、NANDフラッシュ用コントローラロジックが載る。CPUからはメモリではなく、ストレージに見える。DDRメモリバスを介してデータを高速に読み出せる、超高速のSSDという位置付けになる。DIMMソケットにSSDを装着したものだとも言える。

NANDフラッシュメモリを載せたDIMMの概要。DDR3 DIMMと同じフォームファクタに、NANDフラッシュとNANDコントローラを載せた。Diablo Technologiesが開発したMCS(Memory Channnel Storage)技術の説明図面から
NANDフラッシュメモリを載せたDIMMの製品例。SanDiskの「ULLtraDIMM」。Diablo Technologiesが開発したMCS技術を導入した。「ULLtraDIMM」はDDR3メモリのDIMMスロットに装着する。記憶容量は200GBあるいは400GBと、DIMMとしては非常に大きい

 「NANDフラッシュDIMM」の動作は、SSDと変わらない。既存のSSDと違うのは、データ転送速度が極めて高いということだろう。既存のSSDでは、高速なデータ転送速度の製品ではPCIe 3.0×4インターフェイスを利用する。データ転送速度は最大で4GB/secであり、かなり高い。これまで良く使われてきたSATA 6Gbpsのデータ転送速度は約600MB/secである。最近のSSDはデータ転送速度をかなり高くできるので、SATAインターフェイスでは速度が不足する。そこで最近の高速SSDは、PCIeインターフェイスを使うようになっている。

 DDRメモリインターフェイスを使うと、原理的にはSSDをさらに高速にできる。例えば、DDR4メモリチャンネルのデータ転送速度は17GB/sec(ピン当たりのデータ転送速度は2,166Mbit/sec)と極めて高い。PCIe 3.0×4インターフェイスの4倍を超えるバンド幅を備える。この高速なチャンネルを利用するので、非常にバンド幅の広いSSDを実現できる。

 またDDRメモリインターフェイスを使うことで、SSDの遅延時間(レイテンシ)を短くできる。同じ性能のSSDであれば、遅延時間はCPUとストレージの物理的な距離(ブリッジの数と配線長)で決まる。DDR、PCIe、SATAの中では、DDRがSSDまでの配線長が最も短い。つまり、レイテンシが短い。

SanDiskの「ULLtraDIMM」とPCIeインターフェイスのSSDで性能を比較した結果。上段のグラフは書き込み遅延時間(レイテンシ)の実測値(μs)。左がULLtraDIMM、右がPCIe SSD。中段のグラフはレイテンシのヒストグラム。左がULLtraDIMM、右がPCIe SSD。レイテンシがおよそ4分の1以下に短縮されていることが分かる。下段の左はメッセージングのスループット。上がULLtraDIMMで903MB/sec、下がPCIe SSDで752MB/secの実効速度を得ている
CPUとストレージの距離を縮める。PCIeインターフェイスのSSDをストレージにするのではなく、DDR DIMMスロットにSSDを装着することで、ストレージをCPUに物理的に近づける。Diablo Technologiesが開発したMCS技術の説明図面から

DRAM DIMMをはるかに超える大容量データを低消費で格納

 NANDフラッシュDIMMをDRAM DIMMと比べると、大きく違うのは記憶容量である。DRAM DIMMの記憶容量が16GBや32GBであるのに対し、NANDフラッシュDIMMの記憶容量は現行製品(DDR3 DIMMスロットに装着可能な製品)で200GB、あるいは400GBもある。DRAM DIMMに比べると記憶容量が10倍~20倍も大きい。

 また待機時の消費電力が大きく違う。DRAMはメモリセルのリフレッシュ(データの定期的な再書き込み)を常に必要とするので、待機時の消費電流がかなり大きく、これが無視できない。これに対し、NANDフラッシュメモリは待機時は電流をほとんど消費しない(一部の周辺回路だけが動作する)。極端なことを言えば、DIMMの電源を遮断しても構わない(ただしこの場合はレイテンシが著しく増大する)。

 さらに重要なのは部品コストである。DRAMのビット単価(記憶容量当たりのコスト)とNANDフラッシュメモリのビット単価は、12倍も違う。NANDフラッシュのビット単価はDRAMの12分の1なのである。先ほど説明したように、記憶容量がDRAMの10倍ほどあったとしても、半導体メモリの部品コストはほぼ等しい。

 同じメモリコストで記憶容量が10倍になる。NANDフラッシュの読み出し性能(サイクル時間)はDRAMとほぼ同様なので、データ読み出しが主体のアプリケーションでは、記憶容量が増えることで処理性能は確実に向上する。しかも消費電力はDRAM DIMMよりも低い。アプリケーションによっては、非常に有効なストレージであることが分かる。

NANDフラッシュメモリを載せたDIMMの製品例。Lenovoの「eXFlash DIMM」。DDR3メモリのDIMMソケットに装着する。SanDiskの「ULLtraDIMM」をLenovo(元はIBM)向けにOEM供給した製品とみられる
Lenovoの「eXFlash DIMM」の内部ブロック。左側がコントローラ部分、右側がストレージ本体部分

 今年(2015年)の6月には、半導体関連の標準規格策定団体であるJEDECが、不揮発性メモリを搭載したDDR4 DIMM「NVDIMM」の技術仕様を策定したと発表した。JEDECは仕様を2015年の後半に公表すると発表したが、9月12日現在では仕様書は公表されていないようだ。

 ただしJEDECの規格策定作業と並行して、NVDIMMに関する半導体ベンダーやモジュールベンダーなどの製品開発が活発化している。規格策定に関わった企業や業界団体などは、「NVDIMM」の仕様を一部、明らかにし始めた。NVDIMMの規格仕様はNANDフラッシュメモリだけでなく、3D XPointや磁気メモリ、相変化メモリ、抵抗変化メモリなどの不揮発性メモリを対象とする。「NVDIMM」の仕様で現在明らかになっている内容や、不揮発性メモリ搭載NVDIMMの開発動向などは、機会を改めて近く、ご報告したい。

(福田 昭)