で、このコンテキスト(予算の消費者のギア)、Optaneはかなりはっきりちょうどそれに非常に高い書き込み耐久性を与え、(代わりにNANDフラッシュの)3D XPointメモリを用いた小型/高速なのNVMe接続SSDを参照しています。(したがって、スワップスペースとして使用されても摩耗しません)。
これは、ページフォールトとアクセスに数マイクロ秒かかるのに対し、DRAMアクセス(キャッシュミス)の場合は〜70ナノ秒であるため、多くのワークロードでは依然として無駄になります。CPUのメモリバスに直接メモリマッピングされていません。また、アウトオブオーダー実行/ HWプリフェッチ/その他のメモリ並列処理により、物理コアごとに最大10個のキャッシュミスが飛行中に保持されますが、ページフォールトがシリアル化されます。OSがページフォールトを処理している間、(このスレッドで)有用な作業は行われないため、OoO execがそのハードページフォールトレイテンシを非表示にする機会はありません。(しかし、70nsでも長すぎて完全に隠すことはできません。それでも、異なるラインへの飛行中に複数のミスがあると、ワークロードによってはそれを緩和するのに大いに役立ちます。)
この種のOptaneのユースケースは、非常に少量のRAMを使用し、スワップスペース/ページファイルを高速SSDに依存することだけではありません。(そして、おそらく良いユースケースではありません)。以下のようhttps://www.tweaktown.com/articles/8119/intel-optane-memory-matters/index.htmlは説明し、それが主なユースケースは、磁気ハードドライブのための透過キャッシュのようになります。Intelはこれを実現するためのWindowsドライバーを提供していると思います。ディスクの頻繁にアクセスされる部分のバッファ/キャッシュとしてフラッシュが組み込まれた回転磁気ストレージを備えたSATAハードドライブを購入できます。Optane HW +ドライバーは、どのディスクでもこれを行うことができます。
Optane NVMeは明らかに、低いキュー深度で非常に良好なランダム読み取りパフォーマンスを持っています(1つの読み取りが完了するまで待ってから別の読み取りを開始します。助けていない)。したがって、プログラムの起動時間と起動の高速化に優れているはずです。
大きなファイルの大規模な連続書き込みでは特に驚くことではありません。ドライバーソフトウェアがOptaneキャッシュをバイパスし、そのために基盤となる磁気ディスクに直接移動することを知っていることを願っています。IntelのメインOptaneページは、16GB Mを示すhttps://www.intel.ca/content/www/ca/en/products/memory-storage/optane-memory/optane-16gb-m-2-80mm.htmlにリンクしています。 .2 Optaneには900MB / sのシーケンシャル読み取りがありますが、145MB / sのシーケンシャル書き込みのみです。32GBバージョンは、読み取り速度1350 MB /秒、書き込み290 MB /秒で高速です。しかし、繰り返しますが、これらはOptaneが得意とするものではありません。順次およびランダム読み取りIOPSはいずれも240k IOPSで、読み取りレイテンシは7 µsです。
IntelにはIMDT (Intel Memory Drive Technology)と呼ばれるものがありますこれは、オペレーティングシステムのより大きなメインメモリアドレス空間の錯覚を作り出すハイパーバイザーです。一部のページは実際のDRAMメインメモリにマップされ、他のページはSSDメモリにマップされます。SSDにマップされたページにアクセスすると、IMDTによってキャッチされるページフォールトが発生し、ページがSSDからメインメモリに移動します(メモリからSSDにページを削除する可能性があります)。IMDTは、SSDの劣った帯域幅と遅延を軽減するために、ページをDRAMにプリフェッチしようとします。また、最もホットなページをメインメモリに保存して、ペナルティを最小限に抑えてアクセスできるようにします(ペナルティは、仮想化により追加のページングレイヤーから発生する場合があります)。この種類のメモリシステムは、ソフトウェア定義メモリ(SDM)と呼ばれます。いいね「科学アプリケーション向けのインテルメモリドライブテクノロジーパフォーマンスの評価」というタイトルのペーパーでは、IMDTのパフォーマンス評価を提供し、同じ量のDRAMメインメモリを持つシステムと比較しています。私はこの論文を完全に読んでいませんが、IMDTはNUMAノード間でページを移行して、最も必要なノードに近づけることができるようです。
ただし、IMDTはサーバーグレードのIntelプロセッサでのみサポートされています。パフォーマンスへの影響が小さい可能性がある、費用対効果の高い、電力効率の高いサーバーを作成することを目的としています。
http://www.lmdb.tech/bench/optanessd/imdt.htmlには、Optane DC P4800X SSDのベンチマークがあります。(消費者向けのものではなく、ハイエンドのデータセンターバージョン。はるかに高い持続書き込み機能。)
私はこれを検討していないので、Windowsが消費者向けOptane SSDをどのように活用できるかについて、まったく関連があるかどうかはわかりません。
Optaneのブランド名は(やや紛らわしいですが)より興味深いエキゾチックなものにも使用されています:
3D XPoint不揮発性DIMM、別名「Optane DC Persistent Memory」。 https://www.anandtech.com/show/12828/intel-launches-optane-dimms-up-to-512gb-apache-pass-is-here。Apache Passは、第一世代のOptane DC PMの名前です。将来の世代については、これを参照してください。
インテルは、技術の詳細へのリンクを含む独自のマーケティングページをここに用意しています。「DC」は、明らかにデータ中心の略です。
これは、DDR4 DIMMスロットに差し込む不揮発性ストレージであり、実際の物理メモリとして表示されます。 どうやら、それは次世代のXeonでのみ完全にサポートされているようです(現在のSkylake-X、別名Skylake Scalable Processorシリーズではありません)。
NVDIMMには他にも種類があります。たとえば、バッテリバックアップ付きの通常のDRAM(オプションで、フラッシュを使用してデータをダンプし、長期間の電源オフのために、化学電池の代わりにスーパーキャパシタのみが必要です)。 https://en.wikipedia.org/wiki/NVDIMMに詳細があります。
https://www.electronicdesign.com/industrial-automation/why-are-nvdimms-suddenly-hotには、NVDIMM(およびそれらのJEDEC標準化、およびOS +アプリケーションがアプリケーションと直接対話できるようにするための連携方法に関する詳細情報があります)メモリにマッピングされたNVストレージの領域、コミット順序などを保証します)。主なポイントは、実際にRAMとストレージの境界を曖昧にすることです(4 + 16GBを主張する見かけのラップトップ広告の厳密なマーケティングの意味ではなく、コンピューターアーキテクチャの意味で)。
OSは、プロセスがこの不揮発性物理メモリを独自の仮想アドレス空間にマップできるようにするため、ユーザー空間の負荷でストレージに直接アクセスし、システムコールなしでメモリアドレスに保存して、CPUハードウェアが未処理の読み取り/書き込みがある間に実行を注文します。(開発者がこれを利用できるソフトウェアライブラリがあります。これには、flush()
データが実際に永続ストレージに書き込まれることを確認する機能が含まれます。
このマッピングはライトバックキャッシュ可能にすることもできるので、データの使用は、書き直すまで(変更された場合)まで、L3 / L2 / L1dキャッシュから完全に恩恵を受けます。ほとんどのデータを読み取る場合、この種のOptaneは実際には4 + 16GBのRAMと呼ぶことができます。(もちろん、Optane NVDIMMの現在のデータセンターのユースケースでは、512GBなどのはるかに大きなDIMM を使用します。)
(mmap
OSのページキャッシュをファイルにマップするだけの通常のディスク上のedファイルとは異なり、OSはバックグラウンドでI / Oを処理し、ダーティRAMページをストレージデバイスと同期します。)
一部のデータが実際に他のデータより先にNVストレージに到達していることを確認すること(ファイルシステムやデータベースジャーナルのようなクラッシュリカバリを可能にするため)は不可欠です。システムコールでは、ここでPOSIX fsync
またはを使用しますfdatasync
。しかし、アプリケーションには真にメモリマップされたストレージがあるため、ここでライブラリ関数呼び出しが行われます。
x86 asmでは、通常のロード/ストアでストレージにアクセスしていますが、データが実際にNVDIMMに書き戻されるとき(電力損失から安全な場所)ではなく、他のコアやキャッシュコヒーレントDMAで認識されるときではありません(ストアバッファからL1dキャッシュにコミットするとすぐに)、x86の通常のメモリ順序規則はすべてを完全に処理しません。CPUのキャッシュから選択したキャッシュラインをフラッシュするには特別な指示が必要です。(NVストレージライブラリで使用します。)
clflush
ASM命令は、しばらくの間存在していますが、NVストレージはIntelが追加大きな理由であるclflushopt
Skylakeマイクロアーキテクチャで(それは他のユースケースを持っているものの、あまりにも、)、および追加されたclwb
氷の湖(立ち退きのないライトバック)で。
ダンLUUは興味深い記事を書いたため、その時点でIntelの計画を詳述し、ストレージにアクセスするための方法のうちOSを取るの利点についてしばらく前clflush
/ clwb
及びそのメモリ・オーダリングセマンティクス。Intelはまだと呼ばれる命令を必要とすることを計画している間にそれを書かれましたpcommit
。このプロセスの一環として、(持続的なコミット)が、Intelは、後でその命令を削除することを決めPCOMMIT命令を卑下することは理由について、いくつかの興味深い情報を持っており、どのように物事がフードの下で働きます。
(これにより、x86 NVストレージの低レベルの詳細に話題が移りました。このセクションの大部分を投稿するために他の場所を見つける必要がありますが、そう思うでしょう)
PCIe x4カードまたは2.5 "としてのOptane DC SSDもあります。750GBバージョンは、最大2500 MB / sのシーケンシャル読み取り、2200 MB / sのシーケンシャル書き込み、および550000 IOPSランダム読み取りまたは書き込みを行います。読み取りレイテンシは、 M.2 NVMe、10μs。
これは、データベースサーバーなどを使用する場合(NVDIMMを使用できない場合)に必要なものですが、4GBラップトップを販売する16GB Optaneよりも(ほとんどの一般的な使用例では)速くなりません。スワップスペーススラッシングは、ページフォールトされたコードが次に何をしようと続行する前にページにページングしてアクセスする必要があるため、多くの依存読み取りを生成することがよくあります。メモリが非常に不足している場合、OSには積極的にプリフェッチするための予備ページがないため、コンシューマOptaneが最適化されるキューの深さが低いことが予想されます。(低レイテンシー。)
Intel Optane SSDは、優れたパフォーマンスと電力コストのトレードオフを提供します。SSDは基本的に、アクセスされていないときに電力を消費しません。対照的に、DRAMチップの静的消費電力(主にリフレッシュによる)は非常に大きくなります。したがって、システム内のDRAMの量は、典型的なワークロードのワーキングセットと理想的に一致する必要があります。購入したシステムは、約4GB以下のメインメモリを必要とする一般的なワークロード用に設計されています。この場合、システムに8GBのメインメモリが搭載されていると、不必要に多くの電力を消費するため、バッテリの寿命が短くなります。ただし、Optane SSDを使用すると、パフォーマンスの低下を最小限に抑えながら、わずかに多くのメインメモリを必要とするワークロードをときどき実行できます(NANDベースのSSDまたはHDDと比較して)。
現在、DRAMメモリのコストは1GBあたり約4.5ドルですが、Intel Optane SSDのコストは1GBあたり約2ドルです。したがって、16GB Optane SSDは4GB DRAMモジュールよりも高価ですが、8GB DRAMモジュールよりも安価です。したがって、Optane SSDを取り出して4GBのメモリを追加すると、安価なシステムが得られます。これは、4GBを超えるワーキングセットを使用する一般的なワークロードでも平均的に高速です。ただし、ハードページフォールトの処理、ページのプリフェッチ、およびページスワッピングは、HDDからは遅くなります。そのため、通常のワークロードで必要なメモリが4GB未満(または約4GB)の場合、8GBシステムはおそらく4GB DRAM + 16GB Optane SSDシステムよりも遅くなります。
インターネットブラウジングやテキスト編集に使用するだけなら、ラップトップは素晴らしいです。Optane SSDは起動時間を短縮し、最も頻繁にアクセスされるファイルへの迅速なアクセスを提供し、追加のセカンダリストレージとして使用できます。したがって、4GBのDRAMより16GBのOptane SSDを支払っていますが、そのための確かでユニークな利点が得られます。ただし、RStudioなど、あなたが言及した他のアプリケーションには、最低4GBのメモリが必要です。通常、ブラウザとRStudio(および他のアプリ)を同時に使用する場合は、少なくとも8GBのメモリを搭載したシステムを用意する必要があります。ただし、Optane SSDは十分に優れています。