SSDは、長い期間使い続けていると全体的な性能が低下することが知られている。下のグラフは、Trim機能OFFの初期状態と90%の領域を使用した状態でベンチマークを行なった結果だ。これを見ると、使用する領域が増えると、速度が低下することがはっきり見て取れる。この性能低下は、読み出しと書き込みの両方で発生するが、後述するブロックコピーの処理が発生するため、書き込み性能の低下のほうが大きい傾向にある。
書き込み性能の低下が大きい原因は、SSDに採用されているNANDメモリ固有の制限に起因する。まず一つ目は、NANDメモリがいわゆる「上書き」ができず、消去済みの領域にしかデータを書き込めないこと。次に、その消去は「ページ」と呼ばれる書き込み単位を、さらに複数まとめた「ブロック」と呼ばれる、より大きな単位で行なう必要があることだ。そのため、SSDでデータを書き換えるためには、まず書き込みたい領域にあるデータをすべて読み出してコピーし、そのブロックを消去した後、コピーしたデータを書き戻すという「ブロックコピー」と呼ばれる手順を踏む必要がある。加えて、寿命を延ばすために特定の領域に記録が集中しないようにするという工夫も必要だ。空き容量が少なくなると必然的に消去を伴なった書き込みが増加する。消去を伴なう書き込みは、よぶんな書き込みを招く可能性が高くなり、記録速度の低下を引き起こすというわけだ。
Trimコマンドは、この速度低下の抑制剤として期待されている機能だ。WindowsなどのOS上では、ファイルを消去(ごみ箱から削除)しても、あくまで論理的な消去であり、実際のデータはまだストレージ上に残っている。論理的に削除されたデータの領域に書き込み発生すると、その時点で物理的な削除処理が発生し、その後に書き込みが行なわれるが、SSDでは上記のブロックコピー処理が発生するため、未使用領域への書き込みよりも大幅に遅くなる。Trimコマンドは、あらかじめ物理消去してもよい論理アドレスをSSDに通知する。SSDは、書き込み命令を受ける前に、効率よく物理消去を行なえる可能性が出てくる。結果として、消去を伴なう書き込みが減少して、書き込み速度の低下を抑えることができるわけだ。
ここ数年、需要が急速に拡大している「SSD」。2012年には市場規模が2007年度の11倍に拡大するとの民間予測もあり、HDDの寡占状態にある現在の状況も変わることが予想される。
そのSSD、フラグメンテーションの影響を受ける。特に起動ボリュームへの書き込みが多いWindowsの場合は、空き領域の断片化が進行しがちで、ともするとHDD以上にアクセス速度低下の悪影響を受けてしまう(特にキャッシュ非搭載のSSDで顕著)。
しかし、Windowsに標準装備のデフラグ機能では根本的な解決にならない。SSDはページ単位の書き込みとなるため、空き領域に断片化が生じている場合、書き込むページ数が増え速度も低下してしまうからだ。
たとえば、1ページ32KBで初期化されたSSDにユーザーが8KBのファイルを書き込む場合、断片化されていなければ書き込みは1度で完了するが、断片化されていれば4KB×2と回数は倍増、そのぶんトータルの書き込み速度は低下する。
先日リリースされたWindows 7 RC1には、SSDのフラグメンテーション問題に対処すべく「Trim」が実装されている。
このTrimは、システムがデバイス(SSD)に対し不要となったブロックをコントローラに通知し、書き込み時のムダを排除しようというもの。SSDでは、使用後に削除された領域に書き込む前には、時間のかかる消去処理を行わなければならないが、Trimではその領域を消去したうえで未使用領域にするため、次回の書き込み速度が改善される。
ただし、実際の処理はSSD上のコントローラに委ねられるというしくみのため、SSDのファームウェアレベルでの対応が必要。いますぐTrimの有効性を試したければ、SSDのファームウェアアップデートとWindows 7 RC1が必要だ。 |