SSDの構造・仕組み・動作

SSD(Solid State Drive、ソリッド・ステート・ハイブリッド・ドライブ)は、データを保存するための高速で信頼性の高い記憶装置です。SSDはNAND型フラッシュメモリであり、フラッシュメモリはデータを保存するための半導体技術で、スマートフォンなどの多くの身近な電子機器で広く利用されています。NAND型フラッシュメモリは、フラッシュメモリの中でも特に広く普及しているタイプで、これまでに世界中で最も多く使用されてきました。下記にSSDの構造とその主なコンポーネントについて詳しく説明します。

1. NAND型フラッシュメモリチップ

NAND型フラッシュメモリは東芝(現キオクシア株式会社)が1984年に開発したメモリです。複数のフラッシュメモリが基盤にあり、データを保存しています。

NANDフラッシュセルの種類

データの基本的な保存単位であり、電荷を保持することで情報を保存します。フラッシュメモリセルには、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回程度とされており、寿命が最も短い方式です。

2. メモリコントローラ

SSDの「脳」ともいえるメモリコントローラは、フラッシュメモリへのデータの読み書きやデータのやり取りを管理します。このコントローラの性能は、SSDの読込・書込速度や寿命といったパフォーマンスに大きな影響を与えます。コントローラが行う処理には、ウェアレベリング、不良ブロックの管理、エラーチェックと訂正(ECC)、ガベージコレクションなどが含まれ、これらの機能によりSSDのパフォーマンスと寿命が最適化されます。

    コントローラによる処理は以下のようなものが挙げられます。
  • ウェアレベリング
  • 不良フロックの管理
  • エラー訂正
  • ガベージコレクション
メモリコントローラの主なメーカー
Intel、東芝(TOSHIBA)、Indilinx、InnoGrit、Micron Technology、Western Digital (SanDisk)、Electronics、Marvell Technology Group、Silicon Motion Technology Corporation、Samsung Electronics

3. キャッシュメモリ

  • DRAMキャッシュ: 管理情報の保管や一時的なデータキャッシュを行います。一時的にデータを保存することでアクセス速度を向上させます。DRAMを使用することで、データの読み書き速度が大幅に向上します。一部の低コストSSDではDRAMレスの設計もありますが、これらは通常、パフォーマンスが劣ります。初期のSSDには外部キャッシュがなく、プチフリーズ(プチフリ)を起こしていました。
メモ
最新のSSDではメモリーコントローラに改良が加えられた結果としてキャッシュメモリがないモデルも開発されています。

4. インターフェース

SATAは一般的なインターフェースで、従来のハードディスクドライブ(HDD)やSSDと互換性があります。最大転送速度は約600MB/sであり、コンパクトな形状のmicroSATAも存在します。また、IDE、ZIF、LIFなどの他の接続タイプもあります。NVMe(Non-Volatile Memory Express)は、PCIe(Peripheral Component Interconnect Express)バスを使用するインターフェースで、SATAよりもはるかに高速です。最新のSSDではこのインターフェースが主流で、数GB/sの転送速度を実現します。その他にも、USB、PC Expressなど、さまざまな接続タイプが存在します。

6. その他のコンポーネント

  • PCB(Printed Circuit Board): すべてのコンポーネントが取り付けられている基板です。
  • 電源管理IC: 電力供給と消費を制御し、安定した動作を保証します。
  • ファームウェア: コントローラを制御するソフトウェアで、データ管理、エラーチェック、パフォーマンスの最適化を行います。
  • フォームファクター:2.5インチ、M.2、U.2

SSDの内部構造図

+-----------------------------------------------------+
| SSD外部ケース |
| |
| +-----------------------------------------------+ |
| | PCB(基板) | |
| | | |
| | +---------+ +----------+ +-----------+ | |
| | | NAND | | コントローラ | | DRAM | | |
| | | フラッシュ | | チップ | | キャッシュ | | |
| | | メモリ | | | | メモリ | | |
| | +---------+ +----------+ +-----------+ | |
| | | |
| +-----------------------------------------------+ |
| |
+-----------------------------------------------------+

SSDは、機械的な可動部品を持たないため、従来のHDDに比べて高速で耐久性があり、衝撃や振動にも強い特徴があります。これにより、現代のコンピュータやデータセンターで広く使用されています。

TRIMコマンドについて

Trimコマンドを使用することで、SSDの読み書き速度を向上させることができます。SSDのデータ上書きは複雑なプロセスであり、削除には時間がかかり、コントローラの負荷が増えることで速度低下を引き起こすことがあります。

この速度低下を防ぐためには、「Trimコマンド」を実行して、あらかじめ自動的に空きブロックを確保する方法が有効です。ただし、Trimコマンドを実行すると、SSD内のブロックに残っている削除データが不要と判断され、完全に消去されます。そのため、誤って削除したデータの復旧ができなくなる可能性があるため、実行には注意が必要です。

TRIMコマンドは、SSDが効率的に動作するために不可欠な機能です。SSDは、従来のハードディスクドライブ(HDD)とは異なり、データの上書きが直接的にはできません。SSDはまず、データを消去してから新しいデータを書き込む必要があります。これが、TRIMコマンドの重要性を高めています。

メモリバッファの役割

メモリバッファは、TRIMコマンドの処理を効率化するために重要な役割を果たします。SSDには通常、DRAMキャッシュやSLCキャッシュなどのバッファメモリが搭載されています。

  1. データの一時保存
    • データがSSDに書き込まれる前に、一時的にDRAMキャッシュやSLCキャッシュに保存されます。これにより、書き込み速度が向上します。
  2. ガベージコレクションの効率化
    • TRIMコマンドを受け取ると、SSDコントローラは不要なブロックを特定し、これらのブロックをガベージコレクションの対象としてマークします。バッファメモリは、これらの操作を高速に行うための中継地点として機能します。
  3. 書き込みの最適化
    • バッファメモリは、ランダムな書き込みをシーケンシャルな書き込みに変換することで、フラッシュメモリの効率を最適化します。これにより、ガベージコレクションの頻度が減少し、SSDの寿命が延びます。

TRIMコマンドの有効化手順

WindowsでのTRIMコマンドの確認と実行

  1. 確認: 管理者権限でコマンドプロンプトを開き、次のコマンドを入力します。
  2. graphqlfsutil behavior query DisableDeleteNotify
  3. 手動実行: 手動でTRIMを実行する場合、ディスクの最適化ツールを使用します。
    • 「ディスクの最適化」ツールを開き、SSDを選択して「最適化」をクリックします。
  4. DisableDeleteNotify = 0 であれば、TRIMは有効です。

macOSでのTRIMコマンドの確認と実行

  1. 確認: ターミナルを開き、次のコマンドを入力します。
  2. perlsystem_profiler SPSerialATADataType | grep TRIM
    • TRIM Support: Yes であれば、TRIMは有効です。
  3. 有効化: サードパーティ製SSDでTRIMを有効にするには、次のコマンドを入力します(管理者権限が必要です)。
  4. bashsudo trimforce enable

LinuxでのTRIMコマンドの確認と実行

  1. 確認: ターミナルを開き、次のコマンドを入力します。
  2. bashsudo hdparm -I /dev/sdX | grep TRIM
    • Data Set Management TRIM supported が表示されれば、TRIMはサポートされています。
  3. 手動実行: 手動でTRIMを実行するには、次のコマンドを入力します。sudo fstrim / -v

TRIMコマンドは、SSDの性能を最適化し、寿命を延ばすために非常に重要です。適切に設定し、定期的に実行することをお勧めします。

関連情報

トップへ戻る