Vertex Firmware 1.4におけるTrimの効果の確認

Trimコマンドが送信される条件について

Windows 7では、OSが不要だと判断したディスク領域をSSDに通知する"Trim"というコマンドが実装されました。昨今のDRAMを搭載したSSDは、小さなサイズ(おそらく数十KB)でのアドレス変換を行い、ランダムライト性能を向上させています。その代償として、ランダムライトを繰り返すとSSDの性能低下が発生してしまいます。性能低下は「ガベージコレクション」という処理を行うことで回復できますが、Trimコマンドはそのガベージコレクションを補助する仕組みと言えます。
Trimコマンドを利用するには、OSとSSD双方の対応が必要となります。現在のところ、TrimをサポートするOSはWindows 7のみ、SSDの方はIntel X-25M G2シリーズ、Indilinx Barefootコントローラ搭載製品のみとなっています。さらに、いずれのSSDも最新のファームウェアにアップデートする必要があります。X-25M G2シリーズはファームウェア02HA、OCZ Vertexシリーズではファームウェア1.4、OCZ以外のBarefootコントローラ搭載製品ではファームウェア1819が必要です。
さらに、Windows 7でTrimコマンドを有効にするには、SATAモードをAHCIにし、Windows 7標準のドライバを使用する必要があります。すなわち、Intel Matrix Storage Managerや、AMDAHCI/RAIDドライバなどをインストールすると、Trimコマンドは送信されません。もちろん、RAIDも対象外です。
なお、Trimコマンドが送信されるタイミングは、「ファイルを削除したとき」「パーティションを作成したとき(クイックフォーマットでもOK)」に限られるようです。デフラグするとどうなるかは不明です。

OCZ VertexにおけるTrimの効果

X-25MのTrimの効果は、AnandTechの記事PC Perspectiveの記事においてすでに実証されています。そこで、今回はOCZ Vertexの30GBモデルを用いてTrimの効果を検証してみました。
まず、sanitary_eraseを実行した直後でのHD Tune ProのWriteテストの結果です。Test Sizeは8MB、Most Accurateの設定です。

次に、Iometerを用いてランダムライトをしばらく行った後の結果です。非常に性能が低下しています。

次に、パーティションをクイックフォーマットで作成し、すぐに削除してもう一度HD Tune ProのWriteテストを行った結果が以下です。

ほぼ完全に性能が元に戻りました。

Intel Matrix Storage Manager(IMSM)をインストールすると…

IMSMをインストールして同じ実験を行ってみました。
パーティション作成→削除後の結果が以下です。

やはり、事前情報通りIntel Matrix Storage ManagerをインストールしているとTrimコマンドは送信されないようです。*1
なお、VistaAHCIドライバよりIMSMの方が性能が高いようですが、以下のCrystalDiskMarkの結果に見られるように、Windows 7AHCIドライバとIMSMではほとんど差がないようです。HD Tuneでもほとんど性能差は見られません。

また、アキハバラ自腹日記 Part3.0さんの記事では、X-25M G2についても、IMSMとWindows 7標準ドライバの間にはほとんど差がないことが示されています。
よって、Trimに対応しているSSDを利用していて、かつRAIDを使わない場合では、IMSMをインストールする必要はないでしょう。また、IMSMをインストールしていても、Intel SSD Toolboxやwiper.exeを使用することは可能です*2。Trimの方がよりスマートなのは間違いありませんが、これらのツールをスケジュール実行させれば、性能劣化を防ぐことは可能です。

*1:Windows 7標準ドライバの劣化時より性能が下がっていますが、これはWindows 7標準ドライバのテスト時のランダムライトを行う時間が短かったためです

*2:wiperは64bitOSでは不具合があり、データが失われる場合があるようなので、使用は避けた方がよいでしょう

Windows 7用P55マシンの自作

Windows 7 Pro版を先行予約で購入できたので、それに併せてCore i5+P55で新しいマシンを組んでみました。
構成は以下の通りです。

CPU: Intel Core i5 750
CPUクーラー: Scythe 鎌アングル Rev.B
メモリ: Sanmax SMD-4G88HP-13H-D (DDR3-1333, 2GBx2)
マザー: ASRock P55 Deluxe
VGA: Gigabyte GV-R577D5-1GD-B (Radeon HD 5770)
光学ドライブ: Liteon IHES208-27
ストレージ: Solidata K5-64, WD6400AAKSなど(流用)
電源: Antec TP-650
ケース: Abee Method

たぶん今後もいろいろとストレージを出し入れすると思いますが、わざわざ他のパーツを取り外したりHDDケージを抜いたりするのは面倒なので、ケースはSSD/HDDを縦に入れられるものを前提としました。今回は、DOS/V Power Reportの記事にあるように、静音性が高く安価なAbeeのMethodにしてみました。でも今思うとCoolerMasterのSileo 500にすれば良かったような気もしたりしなかったり。
このMethodというケースは、静音性が高い(=密閉性が高い)分エアフローがあまりよくないようで、前述のレビューでもCPU・GPUの温度が高いという結果になっています。そもそも、このケースのように、サイドに空気取り入れ口が開いてないケースでは、トップフロー型のCPUファンはあまり適していません。そこで、前面・背面のファンをGentleTyphoonの最速モデル(+ファンコン)に変更するとともに、CPUクーラーをサイドフロー型の鎌アングルに変更しました。
が、しかし、なんと鎌アングルのファンが1番目のPCI Express x16スロットに干渉してしまいました。仕方ないので、VGAは2番目のPCI Expressに装着。これって別にデメリットはないですよね…
もうひとつのエアフロー改善策として、SATAケーブルとその電源ケーブルの裏側配線を行ってみました。意外とうまく収まるものですね。電源ユニットは、余計な電源線を減らすためセミプラグインタイプのTP-650を購入しました。もっと安価な製品でも良かったのですが、ドライブの故障は安い電源ユニットの不安定な電圧が原因だという説もあり、これ以上SSDに壊れてほしくないので、出力の安定しているTP-650にしてみました。

なんとなくOSは64bit版をインストール。3DMark06を実行してHWMonitorで温度を測ってみたところ、最高温度はCPUが67度、GPUが77度でした。まあ許容範囲内ですが、思ったよりは高めの温度でした。
鎌アングルの干渉以外に発生した問題は、BDドライブとの相性不良です。以前のPCでは、ソニーオプティアークのBC-5500AをタイムリーのUSB変換ケースに入れてポータブルBDドライブとして使っていました。それを使い回そうと思っていたのですが、どうもこのマザーと相性が悪いらしく、認識に失敗したりスピンアップに失敗したりします。おまけに、同梱されていたTotalMedia TheatreがWindows 7の64bitに対応しておらず、起動できないだけでなく何とアンインストールにすら失敗します。仕方がないので、LiteonのIHES208-27を買いました。しかし今時はBDドライブがソフト付きで1万円で買えるんですね…
問題なく、とは行きませんでしたが、これでなんとかWindows 7の環境を整えることができました。このマシンを使ってTrimの効果などを実証してみる予定です。

Intel X-25M G2(160GB)のファームウェアアップデート&ベンチマーク

  • (10/29追記)<重要!>ファームウェアはバグを含んでおり、アップデート後にWindowsが起動しないことがあるようです。詳細が判明するまで、アップデートは見合わせることをおすすめします。
  • (12/8追記)問題が解決された最新のアップデータがアップロードされています。

Intel X-25M G2用の新ファームウェアが公開されました。ファームウェアアップデータはこちらのページから入手することが可能です。ファイルはISO形式で提供されており、そのISOをCD-Rに焼いてブートするとアップデータが起動します。
また、それに合わせて、Solid-State Drive Toolboxも公開されています。このツールは、SMART値の表示、Trim送信、Diagnostic Scan(エラー診断スキャン)を行うことができます。後ろ2つの機能はIntelSSD限定ですが、SMART値の表示はどのストレージに対しても行うことができます。
さて、今回のファームウェア(02HA)の内容は、Trimの有効化と160GBタイプのシーケンシャルライト性能の向上です。性能向上がどれくらいになるのか気になったので、研究室で購入した該当製品のアップデートを行うついでに研究してるフリをしてベンチマークを取ってみました。
マザーボードはX58(ICH10R)、OSはWindows XP(32bit)、AHCIモード(IMSM)、SSDの状態は購入したばかりの新品です。CrystalDiskMarkは、Diskparでオフセットを2048セクタにしてからフォーマットしました。HD Tune 3.5はブロックサイズ8MB、Most Accurateの設定です。
いずれのスクリーンショットも、左が旧ファーム、右が新ファームの結果です。

  • HD Tune Read Benchmark

  • HD Tune Write Benchmark

  • HD Tune Random Write


読み込みの性能はほとんど変わりませんが、書き込み性能には向上が見られます。HD TuneのSequential Writeのグラフを見ると、新ファームの平均値が旧ファームのピーク性能を上回っています。というわけで、性能向上を期待されている方には、今回のファームウェアアップデートはおすすめです。
継続使用時のパフォーマンスの変化やTrimの効果については、また今度計測してみます。

OCZ Vertex/Agilityの新ファームウェア1.4/1.41公開

OCZの公式フォーラムにおいて、Vertex/Agility用の新ファームウェアが公開されています。以前公開されていたBeta版ファームウェアにはバグがあったらしく公開停止になってしまいましたが、ようやく修正版が完成したようです。
今回のアップデートでは、"1.4"と"1.41"の2種類が公開されています。1.4はTrim対応版、1.41はIdle GC対応版になっています。TrimをサポートするOS(現状では来週一般販売が始まるWindows 7のみ)で単体使用する場合は1.4、それ以外のOSや、RAIDで使用する場合は1.41が推奨されています。
なお、両バージョンともにwiperとsanitary_eraseはサポートされるようです。Windows 7以外のOSを使っていて、Idle GCに任せるより自分で管理をしたいという人の場合、1.4+wiperの組み合わせを使うのがいいかもしれません。

対応ドライブと必要なファイルの対応は以下の通りです。ドライブ名はCrystalDiskInfoなどを使って自分で確認する必要があります。

  • Vertexシリーズ : vertex_14_update.zip(1.4/1.41同梱)
  • Agility/Agility EXシリーズ
    • ドライブ名が"OCZ AGILITY"の製品 : fw14_a_no_hyphen.zip / fw141gc_a_no_hyphen.zip
    • ドライブ名が"OCZ-AGILITY"の製品 : fw14_a_with_hyphen.zip / fw141gc_a_with_hyphen.zip
  • Vertex EXシリーズ
    • ドライブ名が"OCZ VERTEX-EX"の製品 : vertex_ex_no_hyphen.zip(1.4/1.41同梱)
    • ドライブ名が"OCZ-VERTEX-EX"の製品 : vertex_ex_with_hyphen.zip(1.4/1.41同梱)

なんか、ファイル名の規則が一定じゃないし、果てしなく分かりにくいですね…
ファイルはISO形式で提供されています。通常はISOファイルをCDに焼き、そのCDからブートしてファームウェアをアップデートします。ジャンパは必要なく、データも保持されるようです。

CD以外のメディアからのアップデート方法(10/24更新)

現在の所、原因は不明ですが、CDブートからのファームウェアアップデートに失敗することがあるようです。その場合は、以下に述べるUSBメモリまたはフロッピーからのアップデートで成功することもあります。

isoファイルからのファイル抽出

まずは、isoファイルから必要なファイルを抽出します。方法は以下の3つです。

  • Winrarを使ってisoファイルを解凍
  • 仮想ディスクを作成するソフトでisoをマウント
  • isoをCDに焼き、エクスプローラからファイルをコピー

必要なファイルは、"AUP"フォルダの中身のみで、他は不要です。

USBメモリからのアップデート
  1. ブート可能なUSBメモリを作成(こちらのページなどが参考になります)
  2. aupフォルダ内のrunme.batをautoexec.batにリネーム
  3. aupフォルダ内の全てファイルを、ブート可能なUSBメモリのルートフォルダに全てコピー
  4. そのUSBメモリからブートすると、アップデータが起動します。
フロッピーからのアップデート(ネタ元)
  1. フロッピーを3枚用意し、1枚をMS-DOS起動ディスクとしてフォーマットしてください。なお、ネタ元の投稿者はDOS 6.22を使ったということなので、もしかするとWindowsからのフォーマットで作成できるMS-DOS起動ディスクでは機能不足なのかもしれません。(10/25追記 Windowsから作成した起動ディスクでも問題ないようです)
  2. aupフォルダの中身を起動ディスク以外のフロッピーにコピーします。1枚のフロッピーには収まりきらないので、2枚のフロッピーを使います。このとき、runme.batとssdchk.exeだけは両方のフロッピーにコピーします。また、フロッピーは容量一杯まで書き込まず、最低200KB程度の空きを残しておく必要があるようです。
  3. MS-DOS起動ディスクからブートします。
  4. aupフォルダの中身をコピーしたフロッピーを挿入し、runme[ENTER]とします。
  5. ファイルが足りないというエラーが表示されたら、もう1枚のフロッピーを挿入します。
  6. あとはCDブートの場合と同様です。

東芝SSDの性能&新旧SSDコストパフォーマンス比較

東芝製コントローラを搭載したIO DATA製SSDN-STBシリーズSuper Talent製UltraDrive DXシリーズが相次いでアナウンスされました。現在のところ詳細は不明ですが、おそらく両シリーズは同等品と思われます。
PC Onlineの記事では、CrystalDiskMarkのみですがいち早くSSDN-STBシリーズのベンチマークが掲載されています。それによると、100MBでのテストではシーケンシャルライト性能が下がり、1000MBのテストではランダムライト性能が低下するという非常に不思議な結果が出ています。これだけではよく分からないので、HD Tuneなどを用いた詳細なテスト結果が知りたいところです。

さて、新型コントローラ搭載製品が色々と出てきたので、従来の製品とのコストパフォーマンスについて比較してみました。価格は現在最安の店舗・シリーズとしました。具体的にはSamsung、Indilinxコントローラ搭載製品の最安値はBestgate調べ、SSDN-STBはアイオープラザ、CSSD J2,Photofast V5Jはビックカメラの予価(いずれもポイント差し引き後)のです。

コントローラ メーカ シリーズ 64GB 128GB 256GB
Indilinx Super Talent UltraDrive ME ¥14,980(¥234/GB) ¥27,980(¥219/GB) ¥59,800(¥234/GB)
Samsung Super Talent MasterDrive SX ¥16,970(¥265/GB) ¥33,960(¥265/GB) ¥63,800(¥249/GB)
東芝 IO DATA SSDN-STB ¥19,840(¥310/GB) ¥38,240(¥299/GB) ¥68,640(¥268/GB)
JMF612 CFD SSD J2 ¥16,020(¥250/GB) ¥26,820(¥210/GB) -
JMF612 Photofast G-Monster V5J ¥33,120(¥518/GB) ¥49,320(¥385/GB) ¥89,820(¥351/GB)

CFDは安いですが、公式サイトのベンチマーク結果を見ると非常に不安になります。G-Monster V5Jの方もエルミタージュ秋葉原のレビューでは何やら怪しげですし、ここは様子見の方がいいかも…?
東芝は初物ということを考えれば意外と安めです。性能の詳細次第ですが、もう少し値段が下がればIntelの対抗馬になるかもしれません。

ちなみに、IntelSSDは以下のような感じです。いずれもBestgate最安値です。

シリーズ 80GB 160GB
G1 ¥21,580(¥270/GB) ¥43,580(¥272/GB)
G2 ¥23,890(¥299/GB) ¥46,497(¥290/GB)

Intelも手の出しやすい値段になりましたね。もはや、あえて変なのにチャレンジする意味はあまりないですね…

JMF612搭載SSDの性能

ついに待望(?)のJMicron社製JMF612コントローラを搭載した製品が発売され始めました。
今のところ、Photofast社製"G-Monster V5Jシリーズ"、CFD社製"SSD J2シリーズ"、Carry社製"GINGLE SSD V3-128"などがアナウンスされています。
それぞれのシリーズは、微妙に構成が異なっています。まとめると、以下のような感じになります。

メーカ シリーズ 製品名 容量 DRAMサイズ 搭載フラッシュ ベンチマーク
Photofast G-Monster V5J GM-25M128GSSDV5J 128GB 128MB Samsung K9HCG08U1D PC Onlineの記事
CFD SSD J2 CSSD-SM64NJ2/CSSD-SM128NJ2 64GB/128GB 64MB 東芝 エルミタージュ秋葉原の記事
Carry - GINGLE SSD V3-128 128GB 64MB Samsung K9HCG08U1M DOS/V Power Report 2009年11月号

性能面では、G-Monster V5JとGINGLEはほぼ同等のようですが、SSD J2は妙に性能が低いようです。正確な原因は分かりませんが、ファームウェアが未完成なのか、東芝のチップの性能が低いのかどちらかでしょう。
JMF612の性能に関してですが、少なくとも心配されていたような「キャッシュ詐欺(書き込みキャッシュを使い果たした途端に急に速度が下がる)」はなさそうです。PC Onlineの記事によると、CrystalDiskMarkの結果では100MBのテストよりむしろ1000MBのテストの方が高性能になっています。ただし、DOS/V Power Report 2009年11月号の記事によると、Iometerのテスト(内容は不明ですがおそらくFile Server Patternあたり?)でのMax Response Timeは300ms程度あるらしく、若干心配な感じです。
問題は価格で、G-Monster V5Jの128GB版が約6万円と、非常に高価です。Intelの160GBタイプが最安の場合4万円程度で購入できることを考えると、あまり積極的に手を出したくはなりません。DailyTechの記事によると、JMF612と32nmのフラッシュの組み合わせでSSDの価格は半分になるとありますが、むしろ値上がりしてしまっています。買うのはもっと安くなってからの方がよさそうな感じです。

SSDに関する小ネタ集

一つのエントリにするには細かい話題がいくつかたまっているので、まとめて掲載してみます。

AS SSD Benchmarkの紹介

SSD専用を謳う新しいベンチマークソフト、AS SSD Benchmarkが公開されています。もともとはドイツ語のソフトでしたが、最近のバージョンでは英語表示が可能になりました。

ベンチマークの方向性としては、CrystalDiskMarkと同様の数クリックで結果が出てくるお手軽路線です。メインのテスト内容は、シーケンシャル、4kランダム(QueueDepth=1)、4Kランダム(QueueDepth=64)、アクセスタイム測定の4種類で、それらの値を元にスコアを算出してくれます。また、コピー速度測定モードもあります。
CrystalDiskMarkとの違いとしては、テスト回数が1回のみ、テストサイズが1GB限定(QD=64のテストでは16MB)になっている点です。また、CrystalDiskMarkの場合、最初にテストサイズの大きさを持つファイルを作成してその中で読み書きを行いますが、このソフトの場合はシーケンシャルライトのテストがいきなり開始され、そこで作成されたファイルを後のテストで使い回すようになっています。
このソフトの利点としては、複数のQueueDepthでのランダムリード・ライトをお手軽に測定できる点でしょう。これにより、AHCIモードの利点が容易に確認できるようになると思います。なお、CrystalDiskMarkの次期バージョンでも、同様に複数QDでのテストに対応するようです。現在ひっそりと技術デモ版が公開されているので、こちらにも期待です。

オーバークロック・ダウンクロック環境下でのIometerの誤差

Windows上でCPUのクロックを変化させると、Iometerの結果に誤差が生じることがあります。具体的には、マザーボードに添付されているOC用のWindowsアプリケーションや、Cool'n'Quietなどが原因となります。オーバークロックすると低めの結果が、ダウンクロックすると高めの結果が返ってきます。BIOSでのオーバークロックでは問題ありません。
この現象の原因は、ソフトの内部に使われているタイマにあります。Iometerでは、CPUを用いた高精度のタイマにより、1回ごとのディスクアクセスタイムを測定しています。Windowsの仕様で、そのタイマの分解能の変化を取得することができないので、CPUのクロックが変更されるとおかしなことになってしまうわけです。
CrystalDiskMarkなどではそれとは異なる種類のタイマ(マルチメディアタイマ)を利用しているため、この問題は発生しません。ただし、マルチメディアタイマは分解能が1msしかないので、一回ごとのアクセスタイム(マイクロ秒単位)を取得することはできず、IometerのようなMax Response Timeの測定を行うことができません。
というわけで、Iometerでのテストを行うときはオーバークロックを解除し、Cool'n'Quietなども無効にしましょう。

新型Samsungコントローラ搭載SSDの"Auto-TRIM"とファームウェアバージョンについて

Indilinx、IntelSamsungのいずれのコントローラにおいても、細かいファイルの書き込みを繰り返すと物理アドレスレベルの断片化が発生し、性能が劣化していまいます。この現象はOSからタッチできない物理アドレスレベルでの問題なので、たとえディスク全体をフォーマットしても性能は元に戻りません。AnandTechの記事にあるように、特にSamsungコントローラ搭載SSD(Samsung PB-22Jシリーズ、OCZ Summitシリーズなど)はその性能低下が著しいようです。PC WatchのMMDOE56G5MXP-0VBのテストでも、HD Tuneのテストがかなりひどい状態になっていますが、これは多数のテストに伴う性能劣化が原因と考えられます。
この問題の解決策としては、Indilinxはwiperという性能回復プログラムを公開、Intelは大きなファイルのシーケンシャルライト時に回復する機能の実装、そして、Samsungは"Auto-TRIM"と呼ばれるシステムの実装を行っています。
"Auto-TRIM"とは、アイドル時に自動的にガベージコレクションを行い、劣化した性能を回復させるという機能です。この機能の効果は大きく、PC PerspectiveのテストAnandTechのテストのいずれでも新品に近い状態にまで性能が回復しています。
ところが、ここには一つ落とし穴があります。古いバージョンのファームウェアは、"Auto-TRIM"を実装していません。そして、現在の所、ファームウェアアップデートツールは提供されていません。AnandTechの記事Hardware Canucksの記事によれば、ファームウェアのバージョンは"1801","18C1","1901"などが存在し、"Auto-TRIM"が実装されているのは"18C1"以降のファームウェアになるようです。
そのため、これらのSSDを購入する際には、最近出荷されたものを買うのが現状ではベストのようです。中古などは安くても手を出さない方が無難です。

SSD寿命診断ソフト SSD Inspector Lite (for Hana Micron SSD)

最近Hana Micronという紛らわしい名称の会社*1からいくつかのIndilinx製コントローラ搭載SSDが発売されています。SSD Inspector Liteは、それらのSSD専用の寿命診断ソフトのようです。
スクリーンショットを見る限り、(当たり前ですが)表示項目のいくつかはJSMonitorと共通していますね。ただし、このソフトは有料で価格は1,680円とのことです。試用ができないのが残念です。

Windowsの電源設定でSSDのパフォーマンスが低下?

OCZのフォーラムによると、Windowsの電源設定が"バランス"になっているとSSDのパフォーマンスが低下することがあるため、"パフォーマンス"にするのが良いようです。Linuxでも同様の結果が出ていますね。ノートPCをお使いの方は一度チェックしてみることをおすすめします。

*1:Samsungからスピンアウトした会社らしいです。Micronとは関係ない?