SSDのTrim

最終更新日 2021年09月28日

SSDのTrimとは

基礎

SSDのTrimとは、削除してもよいデータの存在場所をOSからSSDに通知する機能です。

HDDに限らずSSDでも、データの存在場所をアドレスを利用し管理します。OSを操作しデータを削除すると、アドレス管理上においては削除としますが、SSD上ではデータを削除しておらず残ります。これがゴミ箱からデータを削除しても復元できる理由です。データを建物に例えて説明すると、地図上では建物を削除としたが、実際にはまだ建物が残っているイメージです。

SSD上でもデータを削除したいところですが、SSDのみではどのデータがアドレス管理上において削除したのかわかりません。それがわかるように情報をOSからSSDに通知する機能がTrimです。

GC

GCとはGarbage Collection(ガベージコレクション)の略であり、SSD上のデータの整理や削除する機能です。TrimとGCは異なる機能です。OSがTrim実行後に通知を受け取ったSSDは、GCを実行しデータを整理し削除します。Trim通知を受け取り後、直ちにGCを実行するとは限りません。Trim通知を受け取っていなくても、必要に応じてGCを実行する場合もあります。

GCが行うデータの整理と削除する処理の流れ

SSDはページ単位でデータ書き込み可能です。複数のページをまとめた単位がブロックであり、ブロック単位でデータ削除可能です。GCでは、SSD上から削除してもよいデータなのか残すデータなのか管理し、残すデータを移動し整理します。特定のブロックに残すデータを集め、別の特定ブロックに削除してもよいデータのみにし、そのブロックのデータを削除します。

例えばブロックAにある残すデータ1、残すデータ2をブロックBの空きページに移動します。ブロック単位でデータ削除可能なので、データを移動しないとブロックAにある削除してもよいデータを削除できません。削除してもよいデータはOSを操作して削除になったデータとは限りません。SSDではデータの上書きができないため、データを更新すると空きページに更新後のデータを書き込み、更新前のデータは削除してもよいデータになります。

ブロックA ブロックB
削除してもよいデータ 残すデータ
削除してもよいデータ 残すデータ
残すデータ1 残すデータ
削除してもよいデータ 空きページ
削除してもよいデータ 空きページ
残すデータ1 空きページ
削除してもよいデータ 空きページ

ブロックAにある残すデータ1、残すデータ2が削除してもよいデータになり、ブロックAのデータを削除できます。削除後はブロックAのページが全て空きページになりデータを書き込めます。削除してもよいデータが残っているとデータを書き込めません。

ブロックA ブロックB
削除してもよいデータ 残すデータ
削除してもよいデータ 残すデータ
削除してもよいデータ 残すデータ
削除してもよいデータ 残すデータ1
削除してもよいデータ 残すデータ2
削除してもよいデータ 空きページ
削除してもよいデータ 空きページ

TrimやGCによりデータ書き込み速度の低下を抑えられる

HDDではデータを削除していない領域にデータを書き込むには上書きすれば済みます。SSDでは上書きができません。まだ削除しておらず残っているデータを削除する処理を実行しないとデータを書き込めません。GCが行うデータの整理と削除する処理と同様の処理が発生し、データ書き込み速度が体感できるほど低下します。

そこで定期的にTrimやGCを実行しデータを削除しておくことで、データ書き込み速度の低下を抑えられます。データ書き込み速度の低下が深刻な問題になるので、SSDにとってTrimやGCは対応必須な機能ですが、2016年3月頃に確認した時点では標準対応しています。

TrimとOS

OSの対応状況

SSDがTrimに対応でも、OSがTrimに非対応だとTrimを利用できません。WindowsではWindows 7からTrimに対応です。Mac OS Xでは、v10.7(Lion)からTrimに対応です。Windows 7より前のWindows VistaやWindows XPではTrimを利用できないわけではなく、専用ソフトウェアを導入すると利用できます。

OSがTrim非対応でも実行できる

OSがTrimに非対応でも、OS上で動くTrim対応ソフトウェアがあればTrimを利用できます。

例えば「インテルSSDオプティマイザー」というソフトウェアを導入すると、Windows XPやWindows VistaでもTrimを利用できます。ただし、インテルのSSDの中でインテルSSDオプティマイザーに対応のSSDが必要です。

「Samsung SSD Magician」というソフトウェアを導入すると、Windows XPやWindows VistaでTrimを利用できます。ただし、SamsungのSSDの中でSamsung SSD Magicianに対応のSSDが必要です。

Trimとインターフェース

IDE

Windows標準のTrimはWindows 7から対応しましたが、そのTrimがAHCIではなくIDEだと働かないという報告を見聞きしました。原則的には働き、例外的に働かない場合があると思われますが、働かない条件とは何か不明です。

某SSDメーカーの人に聞いてみたところ、自社SSDに関してはIDEでも働くことを確認済みだが、SSDがTrimに対応していてもコントローラーによってはIDEだと働かない可能性があり、他社SSDではIDEだと働かない場合があるかもしれないそうです。

PCI Express

Windows 7が登場後しばらくは、SSDがPCI Express接続だとWindowsが実行するTrimを利用できませんでした。それでもTrim対応ソフトウェアであれば利用できました。

その後にWindows 7の更新によってTrimに関する仕様変更が行われ、利用できるようになりました。Windows 7の後継のWindows 8では標準対応しており、Windows 10も同様です。

USB

Windows標準のTrimはWindows 7から対応しましたが、USB接続のSSDに対しては利用できませんでした。Windows 7でもTrim対応ソフトウェアであれば利用可能でした。Windows 8以降では利用可能です。

TrimとRAID

RAIDを構築するにはハードウェアRAIDかソフトウェアRAIDを使用しますが、これらがTrim対応だとRAIDでTrimを利用可能です。

例えば、ソフトウェアRAIDの機能があるIRST(Intel Rapid Storage Technology)を利用し、かつIRSTのドライバが11以降であれば、RAIDでTrimを利用可能です。ただし、RAIDレベルに制限があり、RAID 0であればTrimを利用可能です(2016/08/22時点)。

Trim実行タイミング

主なタイミング

ファイルの移動を行う、ごみ箱からファイルを削除する、デフラグを実行する、パーティションをフォーマットする等、以上のタイミングでTrimが実行される場合があります。必ずTrimも実行されるとは限らず、例えばファイルの移動や削除の後に様々なデータ読み書き処理が発生しているとTrimが実行されない場合があります。特に何も操作を行っていなくても定期的にTrimが実行される場合があります。Trimの実行タイミングは、OSやSSDの使い方等によって違います。

プロトコル・アナライザー使用で判明したタイミング

プロトコル・アナライザーを使用し信号を解析したところ、ごみ箱を空にする、通常のフォーマットする、クイックフォーマットする、パーティションを作成する、パーティションを削除する、以上のタイミングでTrimの実行を確認しました。あらゆる条件で確認が困難であり、条件によっては上記のタイミングでもTrimが未実行の場合がある可能性があります。

手動実行

Trimを実質手動実行する方法があります。例えばWindows 10ではドライブの最適化を実行するとTrimを実行します。


キャンペーン情報
マウスコンピューター
夏の感謝セール
最大88,000円OFF!!
(8月17日迄)
DELL
・クーポンで人気のパソコン・モニターがお買い得
おすすめパソコンがクーポンで最大22%OFF、ビジネス向けパソコンは最大49%OFF。モニターも最大25%OFF。
(キャンペーン実施中)
パソコン工房
・大ボーナスSALE
ゲーム・クリエイターPCがお得!PCパーツや中古商品も充実
(8月9日迄)