Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
0円でできる自宅InfiniBandプログラム
Next
Download to read offline and view in fullscreen.

6

Share

Download to read offline

Persistent-Memory-Programming-Model

Download to read offline

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Persistent-Memory-Programming-Model

  1. 1. 次世代不揮発メモリを自分のプ ログラムに組み込もう 第十回 カーネル/VM探検隊 2014/5/24
  2. 2. 自己紹介 • 名前:中村 実 • 所属:武蔵中原周辺の会社 • Mail: nminoru@nminoru.jp • Twitter:@nminoru_jp • Web:http://www.nminoru.jp/~nminoru/
  3. 3. 不揮発メモリの進化? HDDを不揮発メモリが 置き換える メインメモリの一部が 不揮発に メインメモリが全部 不揮発に • SSD • PCIe-SSD • Persistent Memory
  4. 4. Persistent Memory • メモリベンダーは開発中 • SNIAなどが団体がプログラムインターフェイス を策定中 • アプリケーションベンダーの中には… 数年内に世の中のアプリケーションがPersistent Memoryを直接使うようになるよ!
  5. 5. Non-Volatile Memory v.s. Persistent Memory • Non-Volatile Memory(NVM) – 不揮発なメモリ全般を指す言葉 – インターフェイスはブロック、メモリ、独自など • Persistent Memory(PM) – NVMのうち以下の特徴を備えたもの言う • Byte-addressable (バイト単位でアドレス指定可能) • Load/Store access (CPUから直接ロード・ストア可能) • Memory-like performance (高速で均一なアクセス速 度) • Probably DMA-able (DMAが使用可能。RDMAも)
  6. 6. 不揮発性メモリ NAND Flash Phase Change Memory(PCM), PRAM ReRAM, RRAM (STT-)MRAM 物性 相変化 抵抗変化 磁気変化 容量/チップ ~128Gbit 128Mbit 2Mbit 64Mbit 書き換え時間 10μ秒 100n秒 10n秒 7n秒 書き換え回数 104~5 106 1011~12 1015 主な製造メーカ 東芝、SanDisk、 Samsung Micron Panasonic Everspin、東芝 • NAND Flashは一度書き込んだ領域に再度書込みをする前に「消去」の動作が必 要。 • NAND Flashは書き換え回数が厳しいため、均等に書き込みを行えるようにwear levelingが必要。PCMにも必要。 • 現在のPanasonicのReRAMの書き換え回数は105回数程度
  7. 7. どうやってPMを入手する • 今のところ手頃に買えるPCM/ReRAM/MRAM はないようです • DIMMファクターのNAND Flashはある – Viking Technology NV-DIMM • http://www.vikingtechnology.com/nvdimm-faq – SanDisk ULLtraDIMM • http://www.sandisk.co.jp/enterprise/ulltradimm-ssd/ • みんなどうしているの? – とりあえずDRAMをPMに見立てて実験しているヨ
  8. 8. PMの適用先(1) • DB – DBはトランザクションのコミット毎にストレージにロ グを書き込む必要がある – 1回に書き込むトランザクションのデータは小さい (128バイト以下のことも) • DBトランザクションをPMでキャッシュ – ストレージに書き込む前にPMでキャッシュ – 小容量でも大きな効果 • PostgreSQLならインスタンス毎に8KBあればOK
  9. 9. PMの適用先(2) • Remote Direct Memory Access(RDMA) – RDMAはネットワークにつながった別のマシンのメ モリを直接読み書きする仕掛け – ネットワークにはInfiniBandやRoCEを使う • PM+RDMA – HA(DRDBとか)や分散ファイルシステム(Cephとか) のレプリケーション・ミラーリングが非常に低遅延 に行える!
  10. 10. PMのプログラムインターフェイス • NVM Programming Technical Work Group (http://snia.org/forums/sssi/nvmp) – Working Draft • http://snia.org/sites/default/files/NVMProgrammingModel_ v1.pdf – Andy Rudoff 氏のSDC 2013講演資料 • http://www.snia.org/sites/default/files2/SDC2013/presentat ions/GeneralSession/AndyRudoff_Impact_NVM.pdf • NVM Programmingはまだ概念をVerbsで提示す るだけでAPIになっていない
  11. 11. PMFS • PMをファイルシステムとして公開 – SNIAの”NVM.PM.FILE”プログラミングモデルに準拠 – ramfsのようにロード/ストア命令が直接PMに可能 • 実装 – Linuxカーネルモジュール https://github.com/linux-pmfs/pmfs – 現状ではx86_64でしか動作しない • 使い方 – カーネルオプション ”memmap=2G$4G”を指定すると4GBの位置から2GBを予約 – マウント #mount -t pmfs -o physaddr=0x100000000,init=2G none /mnt/pmfs – ファイルを作成してmmap
  12. 12. pmem • PMをmallocスタイルで確保するライブラリ https://github.com/pmem/linux-examples • pmemはPMFSのようなPM Filesystemを前提と している void* pmp = pmemalloc_init(path, MY_POOL_SIZE); void* addr = pmemalloc_reserve(pmp, size); pmemalloc_activate(pmp, addr);
  13. 13. その他プログラムで必要なこと • キャッシュからPMにwrite-backさせる必要がある • 一般命令 – x86 Instructions • INVD(Invalidate Internal Cache) • MOVNTQ(Store of Quadword Using Non-Temporal Hint) • ハードサポート – Epoch Hardware Modifications • キャッシュへの書込み時期をepoch IDで記録。一定epoch が経過したキャッシュはwrite backする。 • Jeremy Condit,et al.,: “Better I/O Through Byte-Addressable, Persistent Memory”, SOSP09
  14. 14. 参考ページ • Mnemosyne – Haris Volos, et al.,“Mnemosyne: Lightweight Persistent Memory”, ASPLOS 2011 http://research.cs.wisc.edu/sonar/projects/mnemosy ne/ • NV-HEAP – J. Coburn, et al. “NV-Heaps: Making Persistent Objects Fast and Safe with Next Generation, Non-Volatile Memories”, ASPLOS 2011 • DAX(Direct Access Block Layer) – http://lwn.net/Articles/591779/
  • TakahiroNarita

    Mar. 12, 2015
  • yoheiazekatsu

    Dec. 10, 2014
  • satorutakeuchi18

    May. 28, 2014
  • ishizaki

    May. 27, 2014
  • tsubame9590206

    May. 25, 2014
  • makotoshimazu

    May. 25, 2014

Views

Total views

4,007

On Slideshare

0

From embeds

0

Number of embeds

72

Actions

Downloads

41

Shares

0

Comments

0

Likes

6

×