米Microsoftは5月5日(現地時間)、Engineering Windows 7ブログを通じて、Windows 7におけるSSD(Solid State Drive)のサポートと関連Q&Aの情報を公開した。
SSDは低コスト化が可能な小容量製品がネットブックに採用されたのを皮切りに、ムーアの法則の後押しを受けて大容量製品の低価格化も進んでいる。バイト単価ではHDD(Hard Disk Drive)に及ばないものの、モバイル用途では高速なデータアクセス、低消費電力、高い耐衝撃性、静音動作などのSSDのメリットは大きな魅力である。Windows 7はネットブック/ ミニノートのようなモバイルPCからハイエンドPCまで幅広く対応するOSになる。モバイルPCに根付こうとしているSSDサポートは欠かせない。ただし成長過程にあるSSDには、正しく扱わないと、そのメリットを打ち消すような欠点も存在する。ファンダメンタル・チームのMichael Fortin氏は「Windows 7開発で、われわれはSSDの動作特性を考慮して数多くの技術的な取り組みを行ってきた。その結果、Windows 7ではユーザーの手をわずらわすことなく、デフォルトのままSSDが効率良く動作する」と述べる。
今日のNANDフラッシュを用いたSSDには書き換え回数に制限がある。SLCで10万回、MLCで1万回程度と言われている。効率よく使わなければ、「デスクトップ/ノートブックのノーマルなワークロードでも、ほとんどのデバイスが数年で寿命を迎える」とFortin氏。ところがSSDの動作は効率的ではない。書き込みを行う際、空きスペースがなければ、まず消去して空きスペースを作る作業を行うのだ。しかも読み込み/書き込みはページ単位で行えるものの、消去は大規模なブロック単位になる。例えば1ページ: 4KB/ 1ブロック: 512KBのSSDで、ユーザーが8KB(2ページ)のデータを書き込もうとしたら、まず1ブロック分のデータがまるごとメモリーにキャッシュされ、1ブロック全体を消去した後に、メモリー上で8KB分がオーバーライトされたデータがSSDに書き戻される。書き込み完了までに時間がかかるし、書き換え回数に制限のあるSSDで8KBの書き込みのために512KBが書き換えられるのは大きな痛手だ。SSDを効率よく動作させるには、書き換え制限と消去・書き込みへの対策が必要になる。
さて書き換え回数の制限に対しては、不必要な書き込みを削減するのが対策の第一歩になる。まずSSDはランダム読み込み動作に優れるためデフラグメンテーションを実行する必要がない。SSDにとってデフラグは寿命を縮めるだけの機能に過ぎないのだ。WindowsではVistaから自動デフラグ機能が実装されたが、Windows 7ではSSDドライブが自動的に除外される。ドライブがSSDと判断されなかったとしても、ランダム読み込みが8MB/秒以上のスレッショルドならば自動デフラグが無効になるそうだ。またSuperfetch、ReadyBoostも、SSDシステムには必要ないため自動的に無効化される。
消去・書き込みがパフォーマンスに影響するならば、書き込みに備えて事前に消去(pre-erasing)しておけば低下を避けられる。エンタープライズ向けのハイエンドSSDでは、書き込みの集中を想定して最大50%のスペースを空けて書き込み性能の低下を避けるようにしているものもある。ただしFortin氏によると、消去・書き込みによるパフォーマンス低下は「ベンチマークにはっきりと現れているものの、通常の使用でユーザーが変化に気づくほどではない」という。パフォーマンスという点では、一般的なPC利用でこれらを気にかける必要はなさそうだ。
しかしながら効率性の向上はSSDの寿命の延長にもつながるため、MicrosoftはSSDメーカーと共に様々な取り組みを行っている。その代表がWindows 7で実装されたTrimオペレーションだ。SSDがATAプロトコルのData Set Management命令のTrim属性をサポートする場合、NTSFファイルシステムがATAドライバーにファイルの削除を通知するコマンドをリクエストする。通常ユーザーがファイルを削除してもデータ自体はストレージに残りオーバーライトを待つ状態になる。そのため、しばらく使用したSSDでは書き込みの際に必ず消去・書き込みの作業が発生する。Trimオペレーションは髪の毛の"トリム"と同様、ムダをカットする作業だ。例えば前述のSSDでユーザーが48KB(12ページ分)のデータを削除した場合、そのタイミングでメモリーに1ブロック全体のデータを移し、48KB分を削除してSSDに戻しておく。すると1ブロックの中に48KB分の空きスペースができる。その状態で前述の例のような8KBの書き込みを行っても、1回ごとに1ブロック(512KB)丸ごと書き換えるような作業をすることなく6回まで書き込める。このTrimオペレーションはファイル消去だけではなく、FormatやDeleteなどパーティションやボリュームレベルの命令にも統合されているそうだ。
ほかにもSSDの配置構造とOSのパーティション作成にずれが生じると、SSDのパフォーマンス低下を引き起こすと見られている。Windows 7のパーティション作成ツールは、SSD本来の性能を引き出せるように調整されているという。
Windows Experience IndexにもSSDを反映
Windows 7ベータでは、ストレージディスク(SSD/ HDD)に不安要素がある場合、Windows Experience Indexのサブスコアが1.9、2.9レベルにとどめられた。そのためデメリットも多いSSDのスコアが伸び悩み、その評価に納得できないというフィードバックが多かったという。現在SSDについてはパフォーマンスのみに制限が絞り込まれており、SSDで6.5から7.9のスコアが可能になっている。
Windows 7はSSDを効率よく活用できるOSになる。ただし、Steven Sinofsky氏は今回のFortin氏の書き込みを「"現世代"のSSDに対するWindows 7の取り組みを示すもの」と説明している。SSDは発展途上の技術であり、今後も変化し続ける。「今後もWindowsをチューンし続ける作業が続くと覚悟している。テクノロジの進化と共に、新たなトレードオフや課題に直面することになるだろう」と同氏。Windows 7でSSDは格段に扱いやすくなるものの、ユーザーは今後もSSDの動向に注意を払っていく必要がありそうだ。