Optane Memoryが実はDドライブのキャッシュでも使えるという事実

文●北川達也 編集●ジサトライッペイ

2017年06月26日 14時00分

 Optane Memoryの32GBモデルの販売が始まった。Optane Memoryは、ストレージ向けのキャッシュソリューションで、主にHDDのキャッシュとして利用することを想定した製品である。Optane Memoryの16GBモデルのレビューはすでに行なっているので、本稿では32GBモデルのOptane Memoryをあれこれいじってみた結果をレポートしよう。

そもそもOptane MemoryはNVMe SSD

 最初にOptane Memoryについておさらいしておこう。本稿で紹介しているOptane Memoryは、IntelとMicronが共同開発した不揮発性メモリー「3D XPoint」を採用している点が特徴のストレージ製品である。主にHDDのキャッシュとして利用することを想定した製品となっており、記録容量は16GBのモデルと32GBのモデルが用意されている。

 Intelでは以前「Smart Response Technology」(SRT)というSSDをストレージのキャッシュに利用する機能をチップセットに搭載しているが、Optane Memoryで実現するキャッシュ機能はこの拡張版に相当する機能だ。なお、Optane Memoryそのものは容量が少ないだけで、“普通”のNVMe SSDとして設計されている。このため、OS起動ドライブとして利用することも可能な製品となっている。

 Optane Memoryのストレージ単体としてみたときの特徴は、3D XPointという高速な不揮発性メモリーを採用していることで小容量でも読み書き速度が非常に速く、寿命も従来のNANDメモリーと比べて一桁以上長いことである。例えば、現在の主流のTLC NANDメモリーでOptane Memoryと同容量のSSDを設計すると、16GBモデルなら読み込み速度で約10分の1、書き込み速度は6分の1ぐらいとなる。これから考えると、Optane Memoryは容量の割には非常に高速な製品と言えるだろう。

Intel RSTドライバーをインストールする前のデバイスマネージャーの画面。Optane Memoryは“普通”のNVMe SSDとして認識され、Windowsの標準インボックスドライバーで動作している。

プラットフォーム機能としてのOptane Memory

 一方で、Optane Memoryには“プラットフォーム機能”としての側面もある。同社ではOptane Memory及びそのロゴを「個々のコンポーネントで構成された“プラットフォーム機能”を表す」としているからだ。Optane Memoryのプラットフォーム機能とは、Optane Memory対応機器で実現するシステムドライブ(OSの起動ドライブで、通常はCドライブとなる)のキャッシュ機能である。

 対応機器の詳細は公式情報を参照してほしいが、基本的には、ストレージとして販売されているOptane Memoryに加え、Intelの最新チップセット「200シリーズ」を搭載し、かつ対応UEFIを適用したマザーボード、CPUにはKaby Lakeこと第7世代Coreプロセッサーを必要とする。

 また、マザーボードに搭載されているM.2スロットは、PCHに接続されている必要があることに加え、「PCH Remapped PCIeコントローラー」機能をサポートしていること。そして、インテルのRST(Rapid Storage Technology)15.5以降のドライバーまたはOptane Memory用に配布されているドライバーをインストールする必要もある。

 なお、PCH Remapped PCIeコントローラーの機能は、NVMe SSDを利用してRAIDを構築する場合に必須の機能でもある。このため、NVMe SSDのRAIDをサポートしたIntel 200シリーズチップセット搭載マザーボードと第7世代Coreプロセッサーを利用していれば、Optane Memoryのプラットフォーム機能を実現するためのハードウェア要件を基本的には満たすことができる。

 また、Optane Memoryのプラットフォームで加速できるストレージは、512バイトセクターのストレージまたは512バイトセクターのエミュレーションを行なっている512eタイプ(AFT)のSATA接続のストレージに限定されている。しかし、4KネイティブフォーマットのHDDやSSDは、一般的にはほとんど販売されていない。このため、一般的なユーザーの利用環境であれば、加速するストレージが問題となってOptane Memoryのプラットフォーム機能が実現できないことはないだろう。

 と、このようにプラットフォーム機能としてOptane Memoryを利用するとさまざまな制限があり、その中でもOS起動ドライブでしか使えないという点が導入のハードルを高くしている。また、RAID機能を使うということは、UEFIでSATAの動作モードをAHCIからRAIDに変更しなくてはならないため、AHCIで運用しているユーザーはOSを新規インストールしなければならないのも難点だ。

 となると、すでにOS起動ドライブで高速なNVMe SSDを使っているユーザーにとっては、この2点のせいでなかなか扱いづらい製品に思える。しかし、後述するが32GBモデル限定で、実はOS起動ドライブではないDドライブなどのデータ格納用ドライブでも、Optane Memoryをキャッシュとして使う方法がある。順序立てて説明していこう。

OSを新規インストールしなくてもキャッシュ機能を利用可能

 Optane Memoryをストレージキャッシュとして利用する方法は2つある。1つは、対応機器で利用する場合のOptane Memoryプラットフォームとしてのキャッシュ機能である。もう1つは、Intel SRTを利用したキャッシュ機能だ。Intel SRTは、9シリーズチップセット以降、NVMe SSDのサポートを行なっており、NVMe SSDをSRTのキャッシュとして利用できるようになっている。ストレージとしてのOptane Memoryは、OSからは単なるNVMe SSDとして認識される。このため、SRTを利用してもOptane Memoryをストレージキャッシュとして利用できるのだ。

 Intel SRTを使えば、Intel 100シリーズチップセットなどのプラットフォーム非対応機器でもOptane Memoryをキャッシュとして利用できる。ただし、Intel SRTでの利用は、上記のOptane Memoryプラットフォームの要件を満たす利用方法ではない。つまり、Intelが公式にサポートしている利用方法ではないので、自己責任で利用することになる。

もちろん、Optane Memoryをプラットフォーム対応機器で利用すると、Optane Memoryのプラットフォームのキャッシュとして利用できるほか、Intel SRTのキャッシュとしても利用できる。

 また、Optane Memoryのキャッシュ機能の利用はOSの新規インストールを行なわなくても、現環境から移行できる。例えば、すでにSATAのHDD/SSDをシステムドライブとして使っている環境にOptane Memoryのキャッシュ機能を追加することが可能だ。逆に速度が遅くなる可能性があるため利用者はいないと思うが、OS起動を行なっているNVMe SSDにキャッシュとして追加することもできる。

 次にOptane Memoryをストレージキャッシュとして利用するための設定についてだが、Optane Memoryをプラットフォーム機能として利用する場合も、Intel SRTで利用する場合も、キモとなるポイントはまったく同じだ。1つは、UEFIの設定変更。もう1つは、Intel製のデバイスドライバーのインストールである。

 UEFIの設定は、CSM(Compatibility Supported Module)の設定を「オフ」または「UEFI First」に設定することに加え、SATAの動作モードを「RAID」または「Intel RST Premium With Intel Optane System Acceleration(RAID)」にセットし、Optane Memoryを装着したM.2スロットの「PCH Remapped PCIeコントローラー」の機能を「オン(Enable)」にすることである。

 PCH Remapped PCIeコントローラーの機能の設定項目名は、マザーボードによって画面上の表記は異なるが、通常は「M.2_X PCIE Storage RAID Support」や「RST Pcie Storage Remapping」などと表記されている。PCH Remapped PCIeコントローラーの機能をサポートしたマザーボードならSATAの動作モードをRAIDに変更すると、これらの設定項目が表示されるので、Optane Memoryを装着したM.2スロットの設定を「オン(Enable)」に設定する。

ASUSのマザーボード「PRIME Z270-A」のUEFI設定画面。PRIME Z270-Aでは、SATAの動作モードに「Intel RST Premium With Intel Optane System Acceleration(RAID)」を設定し、Optane Memoryを装着したM.2スロットの「M.2_X PCIE Storage RAID Support」を「Enable」に設定する。

 なお、PCH Remapped PCIeコントローラーの機能をオンにしたM.2スロットは、PCHのRAID機能の管理下におかれ、通常のM.2スロットとは別の制御となる。このため、デバイスドライバーもWindowsに標準で備わっているNVMe用のインボックスドライバー(StoreNVMe.sys)ではなく、IntelのRAIDドライバーをインストールする必要があることを覚えておいてほしい。

今の環境を崩さずにOptane Memoryをセットアップする2つの方法

 Optane Memory対応環境にWindowsの新規インストールを行なう場合は、前述したUEFIの設定を行なってからOSをインストールすれば良い。OSのインストールが完了したら、Ver15.5以降のRSTドライバーをインストールすると、Optane Memoryをキャッシュとして利用する準備は完了だ。Intel RSTのツール画面を開き、Optaneのプラットフォームとしてのセットアップ、またはSRTとしてのセットアップを行なえるようになる。

 一方で、すでにWindowsがインストールされているOptane Memory対応環境にOptane Memoryを追加する場合は、2つの方法がある。1つは、Intelが配布しているOptane Memory専用のセットアッププログラムを利用して自動で各種設定とデバイスドライバーのインストールを行なう方法。もう1つは、すべての作業を手動で行なう方法である。

 前者の方法は、Optane MemoryをM.2スロットに装着してからWindowsを起動し、Intelが配布している「SetupOptaneMemory.exe」を実行する。このセットアッププログラムは、前述したUEFIの設定変更に加え、Ver15.5以降のRSTドライバーのインストールを自動で行なってくれる優れものとなっている。

筆者が調べた限りでは、ASUSやASRock製のマザーボードでは利用可能となっている。SATAのHDDやSSDをAHCIモードで利用していても自動的にUEFIの設定を変更してRAIDモードに移行し、デバイスドライバーのインストールまでを行なってくれる。セットアップグラムを使うだけですべての準備が完了するので、オススメの方法だ。

 この方法でセットアップできない場合のみ、後者の手動でセットアップする方法を試してほしい。

「SetupOptaneMemory.exe」を実行し、PCが再起動すると、Optane Memoryの設定が行なえるようになる。Optane Memoryの設定ツールを起動すると、Optane Memoryの有効/無効を切り替えられる。当初は無効に設定されているので、この設定を有効にすることで、キャッシュとして動作するようになる。

 後者の手動でセットアップを行なう場合は、(1)レジストリーの変更、(2)PCの再起動とUEFIの設定変更、(3)Windows起動後にRSTドライバーのインストールという手順で行なう。Optane MemoryのM.2スロットへの装着は、レジストリー変更前に行なっても良いし、レジストリー変更後にPCの電源を切断してから行なっても良い。

 レジストリーの変更箇所は、「HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\iaStoreAV」の「StartOverride」の項目である。この項目を開くと、中に「0」という項目があるので、この項目をダブルクリックして、「値のデータ」を「3」から「0」に変更する。また、「0」以外にも「1」や「2」、「3」など単数字の項目が複数あるときは、これらの単数字の項目の「値のデータ」をすべて「3」から「0」に変更する。

レジストリーの編集画面。まずスタートメニューの検索ボックスなどで「regedit」と入力し、レジストリーエディターを開く。レジストリーの変更箇所は、「HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\iaStoreAV」の「StartOverride」の項目だ。この中に「0」という項目があるので、この項目の設定を「3」から「0」に変更する。「StartOverride」の中には、「0」以外にも「1」や「2」、「3」などの単数字の項目が複数ある場合がある。そのときはすべて同じように設定を変更しよう。

 レジストリーを変更をしてからPCを再起動し、UEFIの設定を変更する。変更内容は、前述したSATAの動作モードの変更とPCH Remapped PCIeコントローラーの設定、CSMの動作モードの変更である。UEFIの設定変更後にOSを起動すると、SATAの動作モードがAHCIからRAIDへと変更される。あとは、Ver15.5以降のRSTドライバーをインストールすれば、Optane Memoryをキャッシュとして利用する準備は完了だ。RSTのツール画面を開き、OptaneのプラットフォームとしてのセットアップまたはSRTとしてのセットアップをしよう。

 なお、OS起動ドライブにNVMe SSDを利用している場合は、Optane MemoryをM.2スロットに装着後、UEFIの設定変更を行なってから、Ver15.5以降のRSTドライバーをインストールしよう。レジストリーの変更は必要ないので、SATAのHDD/SSDを利用しているときよりも簡単だ。

 ただし、注意したい点がある。それは、PCH Remapped PCIeコントローラーの設定だ。この設定をOS起動ドライブに利用しているNVMe SSDが装着されたM.2スロットにも間違って行なってしまうと、OSが起動しなくなるので注意してほしい。レジストリーの変更も関係の内場所をいじると最悪OSが起動しなくなるので注意が必要だ。

Optane MemoryでHDDは爆速化!

 さて、ここからはOptane Memoryのキャッシュ機能による高速化の結果について見ていこう。最初は、SSD/HDDを起動ドライブとして利用している環境にOptane Memoryのプラットフォーム機能を追加した場合の結果から解説する。テストは、ストレージベンチマークソフト「CrystalDiskMark 5.2.1」とOSの起動時間を計測している。OSの起動時間は、「Bootracer Ver6.5」を利用して計測し、5回平均の起動時間を掲載している。また、Optane MemoryをIntel SRTでHDDキャッシュに利用したときの速度も参考用に掲載しておく。

なお、テストした環境は以下だ。

■テスト環境
CPU:Intel「Core i7-7700K」
マザーボード:ASUS「Z270-A」(Intel Z270)
メモリー:DDR4 8GB×2
ストレージ:Western Digital「WD Blue WD10EZEX」(1TB HDD)、Samsung「850 EVO MZ-75E250B/IT」(250GB SSD)、Seagate「ST3000DM001」(3TB HDD)

SATA HDD単体時の速度。
Optane Memoryをプラットフォーム機能としてSATA HDDのキャッシュにあてた場合の速度。
Optane MemoryをNVMe SSDとして単体利用した場合の速度。

 まず、Crsytal Disk Markの結果からOptane Memoryのプラットフォーム機能では、キャッシュ機能が「ライトバックキャッシュ」として動作していることがわかる。これによって、Optane Memoryのキャッシュ機能を追加したHDDのライト/リード性能は、Optane Memoryを単体のSSDとして利用したときとほぼ同等の速度になっている。特に元の速度が遅いHDDにOptane Memoryのプラットフォーム機能を追加すると、その効果は絶大だ。シーケンシャルリードは毎秒1400MB。ライトも毎秒300MB弱まで高速化されている。

続いて、Optane MemoryをIntel SRTでHDDのキャッシュにあてた場合の結果をご覧いただこう。

Optane MemoryをIntel SRTの最速モードを使ってSATA HDDのキャッシュとしてあてた場合の速度。
Optane MemoryをIntel SRTの拡張モードを使ってSATA HDDのキャッシュとしてあてた場合の速度。

 Intel SRTの最速モードでHDDを加速した場合もライトバックキャッシュとなるため、プラットフォーム機能利用時と性能差はほとんどない。Intel SRTの拡張モードは「ライトスルーキャッシュ」となるためライト速度は加速されないが、リードに関してはプラットフォーム機能として利用した時と同等だ。

SATA SSDの場合、リードが高速化してライトは落ちる

SATA SSD単体時の速度。
Optane Memoryをプラットフォーム機能としてSATA SSDのキャッシュにあてた場合の速度。

 一方で、SATA SSDにOptane Memoryのプラットフォーム機能を追加すると、リード速度はOptane Memoryを単体SSDとして利用したときと同じ速度に高速化されるが、ライト速度はOptane Memoryの最大書き込み速度になるため、逆に下がっている。面白いのはSATA SSD/HDDでは通常高速化されることがない、マルチスレッド時の性能がアップすることである。

SSD+Optaneで1スレッドテストの速度。
SSD+Optaneで2スレッドテストの速度。
SSD+Optaneで4スレッドテストの速度。
HDD+Optaneで1スレッドテストの速度。
HDD+Optaneで2スレッドテストの速度。
HDD+Optaneで4スレッドテストの速度。

 NVMe SSDは、SATA SSDのように1スレッドで最大速度が得られるわけではなく、マルチスレッドで利用した場合に最大性能を発揮するように設計されている。Optane MemoryはNVMe SSDでもあるため、キャッシュ利用するとマルチスレッド時に伸びしろが残っているランダム4KBのリード性能が向上する。

 ちなみに、シーケンシャルリード/ライトや4KBのランダムライトはマルチスレッド時に速度が向上してないが、これはシングルスレッド時の性能が最大速度となっているためである。なお、掲載はしていないがIntel SRTで利用した場合も、プラットフォーム機能として利用した時と同様に、マルチスレッド時に性能が向上することを付け加えておく。

OS起動時間はSATA HDD/SSDの差がなくなるほど高速化

 次にOS起動時間だが、Optane Memoryのプラットフォーム機能のキャッシュは、HDDからの高速化はもちろんなのだが、それになりに速いSSD単体の起動時間よりも高速化された点を特筆しておきたい。起動時間はSSDをOptane Memoryで加速した時とHDDを加速した時で差がなく、いずれも19.4秒という短時間でOSの起動を終えている。SSD単体では23.4秒だったので、「4秒」もOS起動時間が短縮されたことになる。

各環境でテストしたOSの平均起動時間。

 興味深いのは、Intel SRTを利用したキャッシュ機能でHDDを加速したときの起動時間だ。Intel SRTで加速したときの起動時間は、プラットフォーム機能よりも4~5秒ほど遅く、SSD単体利用時に近い速さになった。この結果を見る限り、プラットフォーム機能のキャッシュは、Optane Memoryというストレージをキャッシュに利用する上での最適化が行なわれていると推測できる。

 というのも、Optane Memoryのプラットフォームのキャッシュ機能とIntel SRTのキャッシュ機能は、原理的にはほぼ同じものでドライバーも共通だ。原理が似通っているだけでなく、同じハードウェアとドライバーの環境でこれだけの違いが出る原因としては、プラットフォーム機能ではOptane Memoryへの最適化が行なわれていると見るのが自然だろう。

実はIntel SRTなら起動ドライブ以外でもOptane Memoryをキャッシュで使える

 最後に本来のOptame Memoryの使い方ではないが、Intel SRTを利用してストレージを加速する場合の効能について解説しよう。Optane MemoryをIntel SRTで利用する最大のメリットは、OS起動に利用するシステムドライブ以外のドライブのキャッシュに利用できるという点に尽きる。プラットフォーム機能で利用すると、Optane Memoryをシステムドライブ以外のキャッシュに利用できないが、Intel SRTならシステムドライブ以外のドライブのキャッシュに利用できる。

 加えて、Intel SRTで利用するなら、Intel 200シリーズチップセット搭載マザーボードなどの対応機器も不要だ。Intel 100シリーズチップセットなどでもOptane Memoryをキャッシュとして利用できる。その際の設定方法は、Intel 200シリーズでOptane Memoryを手動でセットアップする方法と同じ方法で行なえる。

 しかし、Intel SRTはキャッシュに利用するSSDの最低容量に制限があるため、32GBのOptane Memoryでのみこの方法で利用できる。16GBのOptane Memoryは、容量がOSで認識される容量が16GB未満となるため利用できない点には注意してほしい。

 実際にOptane MemoryをIntel SRTで使って、データ保存用HDDを加速してみたが、その性能はプラットフォーム機能でシステムドライブを加速したときと遜色ないものとなっている。例えば、Intel SRTの最速モード(ライトバックキャッシュ)で利用すると、CrystalDiskMarkの結果は、プラットフォーム機能と同様にOptane Memoryそのものとほぼ同等となる。

 また、体感速度を計測する「PCMark 8」のスコアーは、Intel SRTを利用していない状態(HDD単体時)の2倍以上となった。これだけの性能が得られるなら、Optane MemoryをあえてIntel SRTで利用するという方法もアリだろう。

Dドライブとして運用した、データ用HDDの速度。
Dドライブとして運用した、データ用HDDをSRTの拡張モードで高速化した時の速度。
Dドライブとして運用した、データ用HDDをSRTの最速モードで高速化した時の速度。

 ライトバックキャッシュで利用する最速モードの速度は、Optane Memoryを単体SSDとして利用したときと同等にまで高速化された。ライトスルーキャッシュで利用する拡張モードでは、ライト速度はキャッシュ設定前のHDDから大きな変化はない。

また、PCMark 8のストレージテストの結果は、Intel SRTで高速化することでスコアーが2倍以上も高くなっている。

Dドライブとして運用した、データ用HDDのスコアー。
Dドライブとして運用した、データ用HDDをSRTの拡張モードで高速化した時のスコアー。
Dドライブとして運用した、データ用HDDをSRTの最速モードで高速化した時のスコアー。

 PCMark 8はリードが主体のテストが多いためか、Intel SRTの動作モードによってのスコアー差はほとんどない。

大容量になっていくPCゲーム格納用DドライブにはSRTがオススメ

 特に最近のPCゲームは大容量化が進んでおり、標準インストールで20~30GBは当たり前の世界だ。追加のシナリオをインストールするとさらに数十GB追加するゲームも増加している。そんな時に、OSの起動はNVMe/SATA SSDを行ない、HDDにゲームをインストールした上でOptane Memoryを利用したIntel SRTで加速すれば、SATA SSDと同等以上の性能を比較的安価に手に入れることができる。

 SSDは安価になったとは言っても1TBクラスの製品は、SATA SSDでも3万円を超える製品が多く、HDDと比較するとコストパフォーマンスは高くない。しかし、32GBのOptane Memoryと3TBのHDDなら、セットで購入しても2万円前後だ。Optane Memoryのコストパフォーマンスは、利用方法によっては非常に高いので検討する価値は十分あるだろう。

 特にゲームはインストール済みのデータを毎回すべて読みだすわけではない。マップデータやレンダリング用のデータなど、一部のデータを読み出す場合が多いので、キャッシュの容量も32GBで十分なケースが多いはずだ。HDDにゲームをインストールし、Optane MemoryをIntel SRTで加速するという利用方法は、Intelの公式サポートの使い方ではないが、個人的にオススメしたい利用法だ。

■関連サイト
Optane Memory

■関連記事