福田昭のセミコン業界最前線
NANDフラッシュをDIMMに載せたら
(2015/9/14 12:07)
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の内容は全て、失われる。
NVDIMMでは電源の喪失を検知すると直ちに電源がバックアップ電源に切り換わり、DRAMのデータを保持する。バックアップ電源は通常、スーパーキャパシタ(大容量コンデンサ)である。スーパーキャパシタは永久に電源として機能するわけではない。スーパーキャパシタが貯蔵していた電気エネルギーを完全に放電すると、NVDIMMの電源は失われる。その前に、NVDIMMはDRAMのデータを全て、NANDフラッシュメモリに転送(コピー)する。
転送が完了したところでNVDIMMは自分用の電源を遮断し、システムの電源が復活するのを待つ。システムの電源が復活したら、NANDフラッシュメモリの内容をDRAMに書き戻す。同時にスーパーキャパシタを充電する。
DRAMとNANDを混載したDIMMのメリットとデメリット
「DRAMとNANDフラッシュを混載したNVDIMM」のメリットは、停電に対処するコストが大きく下がることだろう。場合によっては、無停電電源装置(UPS)を省ける。このメリットは大きい。
もう1つのメリットはダウンタイムの短縮である。DRAMのデータが全て消えた場合は、データを全てPCIe接続あるいはSAS/SATA接続のストレージ(HDDあるいはSSD)から転送しなければならない。これらのストレージをDRAMから見ると、NANDフラッシュメモリに比べて遅延時間(レイテンシ)がはるかに長く、また、データ転送速度が極めて遅い。データセンターやWeb系システムのようなリアルタイム処理が必要とされるシステムでは、ダウンタイムはすなわち、金額的損失になる。ダウンタイムは極力、短いことが望ましい。
デメリットはもちろん、DIMMのコストが上昇することである。部品コストだけでも、NANDフラッシュメモリとコントローラロジック、バックアップ電源用スーパーキャパシタのコストが通常のDRAM DIMMに加わる。
NANDフラッシュDIMMは「超高速」のSSD
続いてもう1つのNVDIMM、メモリ構成としては「NANDフラッシュメモリだけを載せたDIMM(NANDフラッシュDIMM)」を見ていこう。DIMMにはNANDフラッシュのほかには主に、NANDフラッシュ用コントローラロジックが載る。CPUからはメモリではなく、ストレージに見える。DDRメモリバスを介してデータを高速に読み出せる、超高速のSSDという位置付けになる。DIMMソケットにSSDを装着したものだとも言える。
「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までの配線長が最も短い。つまり、レイテンシが短い。
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よりも低い。アプリケーションによっては、非常に有効なストレージであることが分かる。
今年(2015年)の6月には、半導体関連の標準規格策定団体であるJEDECが、不揮発性メモリを搭載したDDR4 DIMM「NVDIMM」の技術仕様を策定したと発表した。JEDECは仕様を2015年の後半に公表すると発表したが、9月12日現在では仕様書は公表されていないようだ。
ただしJEDECの規格策定作業と並行して、NVDIMMに関する半導体ベンダーやモジュールベンダーなどの製品開発が活発化している。規格策定に関わった企業や業界団体などは、「NVDIMM」の仕様を一部、明らかにし始めた。NVDIMMの規格仕様はNANDフラッシュメモリだけでなく、3D XPointや磁気メモリ、相変化メモリ、抵抗変化メモリなどの不揮発性メモリを対象とする。「NVDIMM」の仕様で現在明らかになっている内容や、不揮発性メモリ搭載NVDIMMの開発動向などは、機会を改めて近く、ご報告したい。