2011-05-06
■[SSD]Marvell/AMDドライバにおけるTrimの効果を検証

震災に新生活にWorld of Tanks(参考)にと、いろいろ時間を取られているうちに5月になってしまいました。というわけで、久方ぶりに更新してみます。
以前の記事において、MarvellのSATA3チップ(88SE9123/88SE9128)のドライバや、AMDチップセットのAHCIドライバではTrimが送信されないと書きましたが、前者はバージョン1.0.0.1051、後者はバージョン1.2.1.275においてTrimに対応したとのことです(参考:Be Hardwareの記事)。というわけで、今回の記事では、それぞれのドライバにおけるTrimの効果を簡単に計測してみました。
テスト方法とP55チップセットによるリファレンス計測
テストは基本的にHD Tune ProのWriteテストの結果を見るというお手軽なものです。実行方法は以下の通りです。
- HDDEraseでSSDにSecureEraseを実行
- HD Tune ProのWrite Testを実行(1回目, 最高パフォーマンス)
- Iometerを用い、ディスク全域に4KBのランダムライトを30分実行
- HD Tune ProのWrite Testを実行(2回目, パフォーマンス劣化状態)
- ディスク全域にクイックフォーマットでドライブを作成し、すぐに消去
- HD Tune ProのWrite Testを実行(3回目, 全域Trim実行後)
使用したSSDはSolidataのK5-64(Barefootコントローラ,SLC,64GB)です。Barefootコントローラは全域に対するTrimで容易に最高パフォーマンスに近い状態まで性能が回復するので、このようなテストには適しています。
HD TuneのWrite Testは、Partial Test(Most Accurate), Test Size 128KBの設定で実行しました。Full Testだとシーケンシャルライトになってしまうので、飛び飛びのアクセスパターンになるPartial Testにしてみました。テストサイズは適当です。
リファレンスとして、P55チップセットのSATA2ポートにおいてテストを実行してみました。使用したマザーボードはASRock P55 Deluxe, OSはWindows 7 64bit (Professional Edition)です。ドライバはIRSTのバージョン9.6.0.1014です*1。
- 1回目, 最高パフォーマンス
- 2回目, パフォーマンス劣化状態
- 3回目, 全域Trim実行後
以上のように、劣化した状態からほぼ完璧に性能が回復します。
Marvell 88SE9123
Marvell 88SE9123は、SATA3(6Gbps)に対応したコントローラチップで、一部のマザーボードのSATA3ポートや、PCI-Express接続のSATA3ポート増設カードなどに採用されています。このチップは、Trimに対応していないだけではなく、ICH10などのSATA2ポートよりパフォーマンスが劣ることがある(参考BenchmarkReviewsの記事)、ホットスワップに対応していないなど、いまいち感の漂う製品でした。しかし、Trimに対応したことで、目に見える欠点は一つ克服されたと言えそうです。
今回用いたハードウェアは、ASRock P55 Deluxeに付属していたSATA3カード(参考:AKIBA PC Online!の記事)です。 OSは上述のSATA2ポートのテストと同じく、Windows 7 64bit (Professional Edition)です。ドライバのバージョンは1.2.0.1002で、Station-Driversからダウンロードしました。
- 1回目, 最高パフォーマンス
- 2回目, パフォーマンス劣化状態
- 3回目, 全域Trim実行後
IntelのSATA2ポートよりピーク性能が下がっているのが気になるところですが、Trimはしっかり送信されているようで、ほぼ完璧に性能が回復しています。
AMD 790GX
AMDのチップセットは、Intelに先駆けて880FX/880GXチップセットなどでSATA3に対応し、注目を集めていました。パフォーマンスは前述のMarvellのチップより高い傾向にあるようです(参考:PC Watchの記事)。
本当はSATA3のポートで試したいところでしたが、自宅には1世代前の790GXチップセット搭載のマザーしかなかったので、それを用いました。
使用したマザーボードは、BIOSTARのTA790GX XEで、OSはWindows Server 2008 R2です。使用したドライバのバージョンは1.2.1282です。ドライバは公式ページからダウンロードできるもの(AHCI for Windows 7)です。なお、HD Tuneのライセンスは1つしか持っていないので、こちらのPCでは体験版を用いました。
- 1回目, 最高パフォーマンス
- 2回目, パフォーマンス劣化状態
- 3回目, 全域Trim実行後
なぜかこれまでの2つに比べてTrim送信後の回復が完璧ではありませんが、Trimが有効であることは間違いなさそうです。
結論
いずれのチップセットでも、Trimが効果を発揮しているのが確認できました。最新のドライバさえインストールすれば、安心してSSDを使うことができそうです。
それぞれのチップセットの性能差は若干気になるところです。いずれ検証してみたいと思います。
おことわり
*1:最新版じゃなかったことにさっき気がつきました…












自分のPCはAtom330/ION、つまりNVIDIAのチップセットなのですがIntelのX-25Mの160GB(G2)をパーティションを区切って使っています。
で、パーティションを区切っているからか?チップセットがインテルじゃないからか?は分かりませんがデフラグ・プリフェッチなどすべて有効になってました。(手動で無効にしました)
もちろんインテルツールボックスも使えませんがTrimは有効になっているようで1年半使っていますが性能劣化は起きておりません。
SSDは未だ謎が多いですね…
あら、デフラグも無効になりませんでしたか…
デフラグ無効は成功している例がほとんどのようですが、何か条件があるのかもしれませんね。
Intel Toolboxが使えない、というのはソフトが起動しないということでしょうか?それともIntel SSD Optimizerなどが走らないということでしょうか?
TrimはWindows 7標準のAHCIドライバなら問題ないようですので、Intel SSD Optimizerを別途実施する必要はおそらく無いと思いますが、なんか気になりますね。
SSDの情報探し回ってここにたどり着きました。
ちょっと気になる記事があったのでご紹介します。
http://www.itmedia.co.jp/enterprise/articles/1107/16/news001.html
価格や容量云々はおいとくとして、デフラグ必要って明言してるのが気になります。
何の根拠も示さないでそんなこと言われましてもねぇ
あまりにひどいので、編集部にメールしましたよ。
HDDの時ほどの頻度でデフラグする必要がないのは間違いないと思いますが…
SSDをATAコマンドではデフラグ出来ないと認識しているのですが。
もちろん、SSDコントローラ固有のコマンドを使えば、その限りでは無いでしょうけど。
ATAコマンドで出来ることは、XPで空きセクタにTrimをするぐらいかな。
でも、これもデフラグではない。
物理アドレスレベルのデフラグ(ガベージコレクションって呼ぶことの方が多い?)はコントローラ依存ですから、何がどうなっているかは神のみぞ知るってところですね。
論理アドレスレベルのデフラグをすればガベージコレクションも容易になりますし、ランダムライトの発生も抑えられるので、論理アドレスレベルのデフラグが無意味ってことは無いはずです。しかし、それが実使用上どのぐらいの効果があるのかは議論の余地があると思います。
えっ? そんなはずは・・・と思って、いろいろググってたら、このブログに戻ってきました(笑)
http://d.hatena.ne.jp/Lansen/20090211/
理屈ではありえないと思っていたのですが、実際にやってみると、効果があるのですね。
言葉遊びのようですが、これは、
「空き領域が連続したことで、シーケンシャルライト性能が上がった」
のではなく、
「空き領域が連続していた場合に良い結果が出るような、シーケンシャルライトテストをした」
って事では無いでしょうか。
CrystalDiskMarkのアルゴリズムはわからないのですが、シーケンシャルテストは1MBの連続アクセスのようです。
http://crystalmark.info/software/CrystalDiskMark/manual-ja/Faq.html
この1MBって、論理セクタ空間で連続していることは保障しているんでしょうか。
また、同じ1つの1MBのファイルを読み書きするのか、次々と別の1MBのファイルに移るのか。この辺りがわからないと、これ以上の考察は難しいかな・・・
いずれにせよ、JMコントローラのころはいざ知らず、Trimに対応しているようなコントローラなら、効果が無いような気がします。
SSDの速度低下を改善するのに、ゼロフィルではダメでワンフィルを使う、という話題があったと思いますが、どのあたりだったでしょうか。
IntelのSSDはシーケンシャルライトを行うと性能が回復します。
0Fillで速度回復するのは、書き込む内容が0なのが効いているわけではなく、シーケンシャルライトが行われたということが重要なんですね。
なので、書き込む内容は0でも1でもランダムでも大丈夫だと思います。
なお、IntelのSSDは、現在ではTrimやSSD ToolBoxによって速度回復するので、0Fillで回復というのは既に過去の手法になっています。
>>0Fillで回復というのは既に過去の手法になっています。
それはそうですが。こういう事を試行する、という苦しさが最先端を走っている人にはわからない。プチフリ(ストール)が頻繁に起こってどうしようもなくなった、PhotoFast 1.8インチ日立型 SSDを救済する話なんです。
結局なんきょく、HDDErase.exeを使ったSecure Eraseには失敗。wipe-outを使って、ワンフィルを行いました。実感としてほぼ回復しようです。
SSDでSecure Eraseを試す【追記あり】
http://fooen79.blog10.fc2.com/blog-entry-14.html
ハードディスク消去ツール「wipe-out」
http://www.wheel.gr.jp/~dai/software/wipe-out/
ThinkPad X40で1.8インチ日立型SSDに苦労する、というのは極端ですが。数年前のトランセンドの類のJ-Micron IDE SSDで苦労している人はたくさんいると思います。
選択肢が少ないと困りますよね。
最近だとMach Extremeの製品しか見かけないような気がします。
JMicronコントローラはHDDEraseには対応してないはずです。
空き領域のデフラグは効果あるはずなので、MyDefragかDefragglerを試してみるといいかもです。