メディア案内|データ復旧

SSDの構造・仕組み・動作|データ復旧
下記にSSDの構造とその主なコンポーネントについて詳しく説明します。
NAND型フラッシュメモリチップ
NAND型フラッシュメモリは東芝(現キオクシア株式会社)が1984年に開発したメモリです。フラッシュメモリセルに電荷を保持することで情報を保存します。複数のフラッシュメモリが基盤にあり、データを保存しています。
フラッシュメモリセルには、SLC(Single-Level Cell)、MLC(Multi-Level Cell)、TLC(Triple-Level Cell)、QLC(Quad-Level Cell)などの種類があり、それぞれ異なるビット数のデータを保存します。
- SLC型
1つのセルに1ビットの情報を記録する方式は「SLC」(Single Level Cell)と呼ばれます。SLCのSSDは、1つのセルにon/offの情報のみを記録するため、非常に高い信頼性を持ち、SSDの寿命もMLCやTLCと比較して長くなります。また、読込/書込の速度も速いのが特徴です。耐久性と書き込み速度においてMLCやTLCを上回りますが、その反面、大容量化が難しく、価格も高くなる傾向があります。そのため、SLCは耐久性と信頼性が特に求められるサーバー用途に適しています。寿命にあたる書き換え可能回数は、9万~10万回程度です。 - MLC型
1つのセルに2ビット以上の情報を記録する方式は「MLC」(Multi Level Cell)と呼ばれますが、通常は2ビット記録のタイプを指してMLCと呼びます。MLCのSSDでは、1セルあたりのビット数がSLCの2倍になるため、読込/書込速度はSLCよりも遅くなり、寿命も短くなります。書き換え可能回数は8,000~10,000回程度とされています。しかし、その代わりに、MLCはSLCよりも大容量化が容易であるという利点があります。 - TLC型
1つのセルに3ビットの情報を記録する方式は、MLCに含まれますが、2ビットタイプと区別するために「TLC」(Triple Level Cell)と一般的に呼ばれます。TLCは、MLCよりも1セルに多くのデータを保存できるため、容量が大きく、コストも抑えられるという利点がありますが、その反面、速度や信頼性ではMLCに劣ります。ただし、データ書き込みを管理するコントローラの技術が進歩したことにより、初期のSLCよりも高速に動作するTLC製品も存在しています。書き換え可能回数は3,000~5,000回程度とされており、寿命が最も短い方式です。
メモリコントローラ
SSDの「脳」ともいえるメモリコントローラは、フラッシュメモリへのデータの読み書きやデータのやり取りを管理します。このコントローラの性能は、SSDの読込・書込速度や寿命といったパフォーマンスに大きな影響を与えます。
コントローラによる処理は以下のようなものが挙げられます。- ウェアレベリング
- 不良フロックの管理
- エラー訂正
- ガベージコレクション
DRAMキャッシュメモリ
管理情報の保管や一時的なデータキャッシュを行います。一時的にデータを保存することでアクセス速度を向上させます。DRAMを使用することで、データの読み書き速度が大幅に向上します。一部の低コストSSDではDRAMレスの設計もありますが、これらは通常、パフォーマンスが劣ります。初期のSSDには外部キャッシュがなく、プチフリーズ(プチフリ)を起こしていました。
インターフェース
SATAは一般的なインターフェースで、従来のハードディスクドライブ(HDD)と互換性があります。最大転送速度は約600MB/sであり、コンパクトな形状のmicroSATAも存在します。また、IDE、ZIF、LIFなどの他の接続タイプもあります。NVMe(Non-Volatile Memory Express)は、PCIe(Peripheral Component Interconnect Express)バスを使用するインターフェースで、SATAよりもはるかに高速です。最新のSSDではこのインターフェースが主流で、数GB/sの転送速度を実現します。その他にも、USB、PC Expressなど、さまざまな接続タイプが存在します。
その他のコンポーネント
- PCB(Printed Circuit Board): すべてのコンポーネントが取り付けられている基板です。
- 電源管理IC: 電力供給と消費を制御し、安定した動作を保証します。
- ファームウェア: コントローラを制御するソフトウェアで、データ管理、エラーチェック、パフォーマンスの最適化を行います。
SSDの内部構造図
+-----------------------------------------------------+
| SSD外部ケース |
| |
| +-----------------------------------------------+ |
| | PCB(基板) | |
| | | |
| | +---------+ +----------+ +-----------+ | |
| | | NAND | |コントローラ| | DRAM | | |
| | |フラッシュ| | チップ | | キャッシュ| | |
| | | メモリ | | | | メモリ | | |
| | +---------+ +----------+ +-----------+ | |
| | | |
| +-----------------------------------------------+ |
| |
+-----------------------------------------------------+
TRIMコマンドについて
TRIMコマンドは、SSDが効率的に動作するために不可欠な仕組みです。SSDは、従来のハードディスクドライブ(HDD)とは異なり、データの上書きが直接的にはできないという特徴があります。SSDはまず、データを消去してから新しいデータを書き込む必要があります。つまり「上書き」という1つのアクションではなく、「旧データの削除」と「新データの書き込み」の2アクションを順番に行っています。当然アクション回数が多いため、時間がかかりかねませんが、この速度低下を防ぐためには、あらかじめ不要なデータを削除しておき、空きブロックを確保しておく方法が有効です。
この不要なデータを事前に削除しておく処理を効率化するためのコマンドがTRIMコマンドです。
ただし、Trimコマンドを実行すると、SSD内のブロックに残っている削除データが不要と判断され、文字通り”完全に”消去されます。そのため、誤って削除したデータの復旧は一切できなくなります。TRIMコマンドは通常、バックグラウンドでコントローラー側で自動で実行されるため、常日頃からのバックアップが非常に重要です。
TRIMコマンドの有効化手順
WindowsでのTRIMコマンドの確認と実行
- 確認: 管理者権限でコマンドプロンプトを開き、次のコマンドを入力します。
fsutil behavior query DisableDeleteNotify
- 手動実行: 手動でTRIMを実行する場合、ディスクの最適化ツールを使用します。
「ディスクの最適化」ツールを開き、SSDを選択して「最適化」をクリックします。
macOSでのTRIMコマンドの確認と実行
- 確認: ターミナルを開き、次のコマンドを入力します。
system_profiler SPSerialATADataType | grep 'TRIM'
TRIM Support: Yes
であれば、TRIMは有効です。 - 有効化: サードパーティ製SSDでTRIMを有効にするには、次のコマンドを入力します(管理者権限が必要です)。
sudo trimforce enable