2012年8月30日木曜日

WindowsにおけるTrimサポートのまとめ

先日、原稿でWindows 7を利用した場合のTrim送信環境について、調査する機会がありました。前回のバスアナの記事でも予告したように、今回は、Trimの送信環境についてレポートしたいと思います。

最初にどのようにしてTrimが送信されるかを調査したかを簡単に説明しておきます。Trim送信環境の調査は、前回の記事で書いたプロトコルアナライザ(バスアナ)を利用して行なっています。OSからSSDに送られるATAコマンドをSATAのバス上でキャプチャして、Trimコマンドの送信の有無をチェックしています。Trimコマンドによる効果があるかどうかを検証したわけではありません。Trimコマンドの送信の事実のみをチェックしています。

それでは結果を報告します。

SATAの動作モードは、IDEモード/AHCIモード/RAIDモードのすべてのモードにおいてTrimコマンドの送信を確認しました。これまでのネット上の情報では、Trimの送信はAHCIモードのみという情報がひとり歩きしていましたが、Windows 7/8を利用する限り、IDEモードでもTrimコマンドは間違いなく送信されています。本ブログでは、随分以前にIDEモードでもTrimコマンドがでているという検証結果をレポートしていますが、これがコマンドレベルできちんと確認できました。また、RAIDモード利用時でもRAID構築に利用していないSSDの場合は、問題なくTrimコマンドが送信されます。この点は、以前から知られていた通りです。

加えて、条件付きですが、RAID0の構築に利用されたSSDへのTrimコマンド送信も確認しました。RAID0構築に利用したSSDへのTrimコマンド送信は、海外サイトで紹介されているように Intel 7シリーズチップセットとV11以降のドライバーが必要です。Intelの7シリーズチップセットを採用したマザーボードのOROMのバージョンは、すべてV11以降だと思いますので、OROMのバージョンもV11以降なら問題なくTrimコマンドが送信されると思います。また、Trim送信がサポートされたSSDは、Intel製SSDのみというような制限はないのでご安心ください。Trimコマンド対応のすべてのSSDに対してちゃんと送信されます。

なお、Intel 7シリーズチップセットのRAID環境でTrim送信がサポートされているのは、RAID0構築時のみです。RAID1やRAID5では、Trimコマンドは送信されません

次にいつTrimコマンドが送信されるかですが、これもこれまで一般に知られていた通りです。具体的には、ごみ箱からファイルやフォルダーを削除した場合、フォーマットを行った場合です。パーティションの作成のみでもTrimコマンドは送信されますが、送信されるアドレス情報は非常に少なく、無視して良い程度のものです。

更にSSDをHDDのキャッシュに利用すると「SRT(Smart Response Technology)」利用時もチェックしてみましたが、こちらは、SRT設定時にTrimコマンドが送信されるのみで、運用状態に入るとTrimコマンドの送信は行なわれませんでした。速度低下が不安なユーザーは、SRTの利用解除、再構築を行えばTrimコマンドが送信されますので、定期的にこの操作を行ってみてもよいのではないかと思います。

Trimコマンドの送信條件は、これまできちんとしたコマンドレベルの検証が行なわれなかったこともあり、一部混乱していた部分があったのではないかと思います。今回の検証結果は、コマンドレベルの確認ですので、間違いはありません。

Trimコマンドの対応は、本来機材さえあれば簡単に確認できることは随分前からわかっていたのですが、機材そのものが安価なものでも200万円ぐらいするのでなかなかチェックする機会がありませんでした。チェックできる機会を与えてくれた某社の方に感謝したいと思います。

2 件のコメント:

  1. OROMがv11のIntel 6シリーズチップセットの場合はどうなるのでしょうか?
    UFEIのアップデートをしたらv10からv11になったので、その点が気になります。

    返信削除
  2. すでに機器が手元にないので、テストしていませんが、個人的な推測では、Intel 7シリーズチップセット以外ではTrimコマンドは送れない仕様となっている可能性が高いと考えています。

    また、Trimが送られているかどうかは、ファイル復元ソフトとTrimコマンドで通知された論理セクターに対して再度書き込みが発生するまでに読み出しが発生した場合に常に「0」を返す仕様となっているSSDがあれば確認できます。確認方法は、ファイルをごみ箱から削除し、そのファイルを復元すればOKです。

    「0」で返す仕様のSSDなら復元されたデータは、すべて「0」で埋まっています。上記の「0」で返す仕様のSSDには、Crucial m4、Plextor製SSD、Intel製SSD、Samsung製SSDなどがあります。Sandforce製コントローラを搭載したSSDの場合、Intel社以外の製品は、「0」で返さない仕様となっている場合が多く見られますのでご注意ください。

    返信削除