SlideShare a Scribd company logo
1 of 14
次世代不揮発メモリを自分のプ
ログラムに組み込もう
第十回 カーネル/VM探検隊
2014/5/24
自己紹介
• 名前:中村 実
• 所属:武蔵中原周辺の会社
• Mail: nminoru@nminoru.jp
• Twitter:@nminoru_jp
• Web:http://www.nminoru.jp/~nminoru/
不揮発メモリの進化?
HDDを不揮発メモリが
置き換える
メインメモリの一部が
不揮発に
メインメモリが全部
不揮発に
• SSD
• PCIe-SSD
• Persistent Memory
Persistent Memory
• メモリベンダーは開発中
• SNIAなどが団体がプログラムインターフェイス
を策定中
• アプリケーションベンダーの中には…
数年内に世の中のアプリケーションがPersistent
Memoryを直接使うようになるよ!
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も)
不揮発性メモリ
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回数程度
どうやって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に見立てて実験しているヨ
PMの適用先(1)
• DB
– DBはトランザクションのコミット毎にストレージにロ
グを書き込む必要がある
– 1回に書き込むトランザクションのデータは小さい
(128バイト以下のことも)
• DBトランザクションをPMでキャッシュ
– ストレージに書き込む前にPMでキャッシュ
– 小容量でも大きな効果
• PostgreSQLならインスタンス毎に8KBあればOK
PMの適用先(2)
• Remote Direct Memory Access(RDMA)
– RDMAはネットワークにつながった別のマシンのメ
モリを直接読み書きする仕掛け
– ネットワークにはInfiniBandやRoCEを使う
• PM+RDMA
– HA(DRDBとか)や分散ファイルシステム(Cephとか)
のレプリケーション・ミラーリングが非常に低遅延
に行える!
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になっていない
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
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);
その他プログラムで必要なこと
• キャッシュから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
参考ページ
• 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/

More Related Content

Viewers also liked

0円でできる自宅InfiniBandプログラム
0円でできる自宅InfiniBandプログラム0円でできる自宅InfiniBandプログラム
0円でできる自宅InfiniBandプログラムMinoru Nakamura
 
x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設Minoru Nakamura
 
Jvm reading-synchronization
Jvm reading-synchronizationJvm reading-synchronization
Jvm reading-synchronizationMinoru Nakamura
 
JVM-Reading-ConcurrentMarkSweep
JVM-Reading-ConcurrentMarkSweepJVM-Reading-ConcurrentMarkSweep
JVM-Reading-ConcurrentMarkSweepMinoru Nakamura
 
x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設Minoru Nakamura
 
プログラマ目線から見たRDMAのメリットと その応用例について
プログラマ目線から見たRDMAのメリットとその応用例についてプログラマ目線から見たRDMAのメリットとその応用例について
プログラマ目線から見たRDMAのメリットと その応用例についてMasanori Itoh
 
低遅延Ethernetとファブリックによるデータセンタ・ネットワーク
低遅延Ethernetとファブリックによるデータセンタ・ネットワーク低遅延Ethernetとファブリックによるデータセンタ・ネットワーク
低遅延Ethernetとファブリックによるデータセンタ・ネットワークNaoto MATSUMOTO
 
シーサーでのInfiniBand導入事例
シーサーでのInfiniBand導入事例シーサーでのInfiniBand導入事例
シーサーでのInfiniBand導入事例Naoto MATSUMOTO
 
InfiniBand Presentation
InfiniBand PresentationInfiniBand Presentation
InfiniBand PresentationShekhar Kumar
 
ioDriceとInfiniBandとDRBDを利用したリアルタイムレプリケーション
ioDriceとInfiniBandとDRBDを利用したリアルタイムレプリケーションioDriceとInfiniBandとDRBDを利用したリアルタイムレプリケーション
ioDriceとInfiniBandとDRBDを利用したリアルタイムレプリケーションIwasaki Noboru
 
Ml15min発表資料(提出用)
Ml15min発表資料(提出用)Ml15min発表資料(提出用)
Ml15min発表資料(提出用)WEBFARMER. ltd.
 
Connect_GANs_Actor-Critic
Connect_GANs_Actor-CriticConnect_GANs_Actor-Critic
Connect_GANs_Actor-CriticWEBFARMER. ltd.
 

Viewers also liked (19)

0円でできる自宅InfiniBandプログラム
0円でできる自宅InfiniBandプログラム0円でできる自宅InfiniBandプログラム
0円でできる自宅InfiniBandプログラム
 
Jvm reading-parallel gc
Jvm reading-parallel gcJvm reading-parallel gc
Jvm reading-parallel gc
 
x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設
 
Jvm reading-synchronization
Jvm reading-synchronizationJvm reading-synchronization
Jvm reading-synchronization
 
JVM-Reading-ConcurrentMarkSweep
JVM-Reading-ConcurrentMarkSweepJVM-Reading-ConcurrentMarkSweep
JVM-Reading-ConcurrentMarkSweep
 
x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設x86-64/Linuxに独自メモリ空間を勝手増設
x86-64/Linuxに独自メモリ空間を勝手増設
 
SC16 NVIDIA NEWS
SC16 NVIDIA NEWSSC16 NVIDIA NEWS
SC16 NVIDIA NEWS
 
Dentoo.LT12 並列処理・MPIの第一歩 20151025
Dentoo.LT12 並列処理・MPIの第一歩 20151025Dentoo.LT12 並列処理・MPIの第一歩 20151025
Dentoo.LT12 並列処理・MPIの第一歩 20151025
 
プログラマ目線から見たRDMAのメリットと その応用例について
プログラマ目線から見たRDMAのメリットとその応用例についてプログラマ目線から見たRDMAのメリットとその応用例について
プログラマ目線から見たRDMAのメリットと その応用例について
 
JVM-Reading-ParalleGC
JVM-Reading-ParalleGCJVM-Reading-ParalleGC
JVM-Reading-ParalleGC
 
低遅延Ethernetとファブリックによるデータセンタ・ネットワーク
低遅延Ethernetとファブリックによるデータセンタ・ネットワーク低遅延Ethernetとファブリックによるデータセンタ・ネットワーク
低遅延Ethernetとファブリックによるデータセンタ・ネットワーク
 
シーサーでのInfiniBand導入事例
シーサーでのInfiniBand導入事例シーサーでのInfiniBand導入事例
シーサーでのInfiniBand導入事例
 
MPIによる並列計算
MPIによる並列計算MPIによる並列計算
MPIによる並列計算
 
InfiniBand Presentation
InfiniBand PresentationInfiniBand Presentation
InfiniBand Presentation
 
ioDriceとInfiniBandとDRBDを利用したリアルタイムレプリケーション
ioDriceとInfiniBandとDRBDを利用したリアルタイムレプリケーションioDriceとInfiniBandとDRBDを利用したリアルタイムレプリケーション
ioDriceとInfiniBandとDRBDを利用したリアルタイムレプリケーション
 
Ml15min発表資料(提出用)
Ml15min発表資料(提出用)Ml15min発表資料(提出用)
Ml15min発表資料(提出用)
 
Client-Side Deep Learning
Client-Side Deep LearningClient-Side Deep Learning
Client-Side Deep Learning
 
Connect_GANs_Actor-Critic
Connect_GANs_Actor-CriticConnect_GANs_Actor-Critic
Connect_GANs_Actor-Critic
 
DRL_stydy_1_doc_ohmasa
DRL_stydy_1_doc_ohmasaDRL_stydy_1_doc_ohmasa
DRL_stydy_1_doc_ohmasa
 

Similar to Persistent-Memory-Programming-Model

コンテナで作る開発環境 (20161104 CodeIgniter Night)
コンテナで作る開発環境 (20161104 CodeIgniter Night)コンテナで作る開発環境 (20161104 CodeIgniter Night)
コンテナで作る開発環境 (20161104 CodeIgniter Night)智之 大野
 
他人事ではないWebセキュリティ
他人事ではないWebセキュリティ他人事ではないWebセキュリティ
他人事ではないWebセキュリティYosuke HASEGAWA
 
CrystalDiskMark & CrystalDiskInfo 開発裏話
CrystalDiskMark & CrystalDiskInfo 開発裏話CrystalDiskMark & CrystalDiskInfo 開発裏話
CrystalDiskMark & CrystalDiskInfo 開発裏話hiyohiyo
 
[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1MinGeun Park
 
3D CAD の新たな選択肢 仮想デスクトップで運用する
3D CAD の新たな選択肢 仮想デスクトップで運用する3D CAD の新たな選択肢 仮想デスクトップで運用する
3D CAD の新たな選択肢 仮想デスクトップで運用するDell TechCenter Japan
 
わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう
わんくま名古屋 #40 (20161217) Xamarinで自動化テストしようわんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう
わんくま名古屋 #40 (20161217) Xamarinで自動化テストしようYasuhiko Yamamoto
 
AHVでみるCVM Autopathの仕組み
AHVでみるCVM Autopathの仕組みAHVでみるCVM Autopathの仕組み
AHVでみるCVM Autopathの仕組みKazuhito Ohkawa
 

Similar to Persistent-Memory-Programming-Model (8)

コンテナで作る開発環境 (20161104 CodeIgniter Night)
コンテナで作る開発環境 (20161104 CodeIgniter Night)コンテナで作る開発環境 (20161104 CodeIgniter Night)
コンテナで作る開発環境 (20161104 CodeIgniter Night)
 
他人事ではないWebセキュリティ
他人事ではないWebセキュリティ他人事ではないWebセキュリティ
他人事ではないWebセキュリティ
 
第39回「Windows Server 2003 EOSに備えよう -SQL Serverはどうする?-」(2014/12/18 on しすなま!)
第39回「Windows Server 2003 EOSに備えよう -SQL Serverはどうする?-」(2014/12/18 on しすなま!)第39回「Windows Server 2003 EOSに備えよう -SQL Serverはどうする?-」(2014/12/18 on しすなま!)
第39回「Windows Server 2003 EOSに備えよう -SQL Serverはどうする?-」(2014/12/18 on しすなま!)
 
CrystalDiskMark & CrystalDiskInfo 開発裏話
CrystalDiskMark & CrystalDiskInfo 開発裏話CrystalDiskMark & CrystalDiskInfo 開発裏話
CrystalDiskMark & CrystalDiskInfo 開発裏話
 
[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1[141004] cedec 2014 참관기 & 강연 리뷰 #1
[141004] cedec 2014 참관기 & 강연 리뷰 #1
 
3D CAD の新たな選択肢 仮想デスクトップで運用する
3D CAD の新たな選択肢 仮想デスクトップで運用する3D CAD の新たな選択肢 仮想デスクトップで運用する
3D CAD の新たな選択肢 仮想デスクトップで運用する
 
わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう
わんくま名古屋 #40 (20161217) Xamarinで自動化テストしようわんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう
わんくま名古屋 #40 (20161217) Xamarinで自動化テストしよう
 
AHVでみるCVM Autopathの仕組み
AHVでみるCVM Autopathの仕組みAHVでみるCVM Autopathの仕組み
AHVでみるCVM Autopathの仕組み
 

Recently uploaded

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 

Recently uploaded (9)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 

Persistent-Memory-Programming-Model