SNIA の Non-Volatile Memory Programming Model について
ストレージベンダーを中心とした業界団体 SNIA(スニアと発音する) は、NVM Express とは別に不揮発性メモリ(Non Volatile Memory; NVM)に関する様々な規格を決めようとしている。その一環としてSNIA NVM Programming Techinical Work Groupで NVM を使ったプログラムモデルの提唱を行っている。
- SNIA NVM Programming Model Working Draft September 30, 2013
- SDC 2013 での Andy Rudoff 氏(Intel) の講演資料 The Impact of the NVM Programming Model … プログラミングモデルの話がはじまるのは 23 ページ以降
上記の資料等で SNIA は NVM と Persistent Memory(PM) の二つの用語を使い分けている。境界は微妙だが NVM とは永続性のあるメディアで、PM とは storage technology with performance characterisics suitable for a load and store programming model だそうな。SSD、PCI SSD、SD カード等は NVM で、PRAM、ReRAM、MRAM や ULLtraDIMM (id:nminoru:20140122:mcs) などは PM という位置づけだと思われる。
1. の SNIA NVM Programming Model では 4 つのモデルが提唱されている。
- ファイルシステムとして NVM を使わせる (NVM.FILE mode)
- ブロックデバイスとして NVM を使わせる (NVM.BLOCK mode)
- ボリュームとして PM を使わせる (NVM.PM.VOLUME mode)
- ファイルシステムとして PM を使わせる (NVM.PM.FILE mode)
さらに 2. の講演では PM を malloc ライクなライブラリで使わせるライブラリ(pmem)が提唱されている。
pmem と NVM.PM.FILE モデルの PMFS は、Linux ベースの実装が github 上に公開されている。ただし PM は簡単に手に入らないので、DRAM を persistent memory に見立てて実験するしかない。