新世代ハイブリッドHDD Momentus XTシリーズ - 高速化の原理とベンチマーク

SeagateのMomentus XTシリーズは、2.5インチHDDに4GBのSLCフラッシュを搭載した"ハイブリッドHDD"です。このシリーズについてのベンチマークや実環境でのパフォーマンスについては、既に多数のレビューが存在します。とりあえず列挙すると、AnandTech, Tom's Hardware, Tech Report, HDD・SSDとの比較動画といったところです。特に最後の動画で分かるように、OSやアプリケーションの起動時間について、Momentus XTはSSDには劣るもののHDDよりかなり高速になるようです。
しかし、これらのレビューでは、"ハイブリッド"によりどれだけ高速化されるのか、明白なベンチマークスコアは提示されていません。やはり、MB/sで性能表記ができないとなんとなく落ち着きませんよね。(←僕だけ?) というわけで、本日の記事では、"ハイブリッド"による高速化の原理の解説と、Iometerを用いた高速化の効果の測定を行ってみました。使用したのは、500GBモデルの"ST95005620AS"です。

Adaptive Memory Technologyによる高速化の原理

"ハイブリッドHDD"と呼ばれる製品は2,3年前にも数機種が発売されましたが、性能的にいまいちだったこともあり、あっという間にフェードアウトしてしまいました。
これらの第一世代ハイブリッドHDDは、Windows Vista,7の機能である"ReadyDrive"に依存しており、OSが不揮発性キャッシュ(NV Cache, 要するにNANDのこと)を制御します。一方、Momentus XTシリーズは、HDD内部のコントローラがNANDを制御しています(Adaptive Memory Technology)。そのため、Momentus XTであれば、Windows XPでもLinuxでもMac OSでも、NANDによる高速化の恩恵を得ることができます。

そういうわけで、CrystalDiskInfoでMomentus XTの情報を取得すると、ReadyDriveに用いられる"NV キャッシュ"は非搭載と表示されます。
一方、高速化の原理は、Adaptive Memory Technology、ReadyDrive、USBメモリなどを用いるReadyBoostのいずれも同じで、NANDを"読み込みキャッシュ"として用います。すなわち、OSやMomentus XTのコントローラは、読み込みが頻繁に発生するアドレスを調べておき、アイドル中にそれらのデータをHDDからNANDへとコピーしておきます。その後は、該当のアドレスへの読み込み要求が来ると、データはNANDから読み込まれることになり、NANDの高速なランダムリード性能を活かすことができます。NANDに書かれたデータは電源を切っても消えないので、SuperFetchと違って再起動後も使用することができます。
なお、これらの技術で高速化されるのはランダムリードだけで、シーケンシャルリードと書き込み全般は高速化されません。NANDフラッシュは、チップ1枚あたりのシーケンシャルリード・ライト性能はそれほど高くありません。SSDUSBメモリに使われるNANDの場合、MLCではRead 20MB/s程度、Write 5〜10MB/s程度で、SLCでも読み書き双方が20MB/s程度です。さらに、NANDは本来ランダムライトを非常に苦手としています。従って、シーケンシャルリードと書き込み全般はHDDの方が高性能であり、NANDを利用する必要はありません。

Adaptive Memory Technologyの効果をベンチマーク

上の原理から、CrystalDiskMarkやAS SSD Benchmarkのようなファイル作成型のベンチマークソフトではAdaptive Memory Technologyの効果を評価できないことが分かります。これらのソフトはベンチマーク用の一時ファイルを作成しますが、そのファイルはHDD上に書き込まれてしまうので、ベンチマークの間NANDは蚊帳の外となってしまいます。
そこで、Iometerを用い、以下のようなテストを行いました。

  1. パーティションを削除し、物理ドライブへのアクセスモードとする。Maximum Disk Sizeは200,000セクタ(約100MB)とし、Starting Disk Sectorを適宜設定することで、NANDにデータが移動されていない(と思われる)領域でテストを行う
  2. 十分な時間(今回10分)4KBのシーケンシャルリードを行う
  3. しばらく放置
  4. 4KiB〜1MiBのランダムリードを行い、性能を計測する

手順2を行うことでHDDにアクセスを記録させ、手順3の間にNANDフラッシュにデータをコピーしてもらうという寸法です。ちなみに、ランダムリードを連続して何分動作させても高速化しませんでした。放置時間を設けると次のテストは高速化されるので、NANDへのデータコピーはアイドル中に行われているようです。
結果は以下の通りです。"Cached"とあるのが上述の手順の結果で、"Not Cached"とあるのが手順2,3を省いた結果です。Starting Disk Sectorは、Cachedテストでは4,000,000(先頭から約2GBのところ)、Not Cachedテストでは4,200,000(先頭から約2.1GBのところ)としました(色々なテストをしているうちにだんだん後ろに来てしまいました)。
どうでもいいですが、Gnuplotできれいな棒グラフを書くTipsに感動したので、今回の結果はそれを用いた図にしてみました。凡例もこのグラデーション付きで書けないかなあ?

512Kまでは"Cached"の方が早いですが、768Kで追いつかれます。NANDによる高速化の恩恵は、512KBくらいまで受けられるということでしょう。一方、"Cached"の4Kの結果は5.23MB/sとなっており、SSDの4〜5分の1程度のスコアでした。
個人的な予想では、高速化の恩恵が受けられるのはせいぜい32KBか64KBぐらいまでだろうと思っていました。前述した通り、SLCタイプのNANDフラッシュの読み込み性能は一般的に1チップで20MB/s程度で、Momentus XTにはチップが1枚しか搭載されていないためです。ところが、結果を見ると256KB以上では60MB/s近い速度が出ており、かなり高速なチップが採用されているようです。*1

結論

以上のテストから、Adaptive Memory Technologyの効果を計測することができました。4Kのランダムリードで5MB/sを超える結果が出ており、これは一般的な2.5インチHDDの10倍ものパフォーマンスです。また、128K,256Kといった比較的大きなサイズの読み込みに対してもAdaptive Memory Technologyは有効に働いています。
しかし、このスコアではSSDの速度には太刀打ちできず、"SSD>ハイブリッドHDD>HDD"という序列がはっきりしてしまいました。やはり、Momentus XTは、「どうしても250GB以上の大容量が欲しいが、その容量のSSDを買うほど予算が無い」というノートPCユーザ向けの製品と言えそうです。

*1:Tech Reportの記事では、Momentus XTに使われているNANDの速度はRead 140MB/s、Write 100MB/sとされています。にわかには信じがたいのですが、それほど高速にできるものなんでしょうか…?