SSD には小さなコンピューターが内蔵されており、ファイルを保存するだけではありません。
SSD は、PCB にはんだ付けされた単なるフラッシュ メモリ チップではありません。これらはまだ比較的単純な設計ですが、フラッシュの隣に、データの書き込み、移動、消去の方法と場所、およびその他の多くの役割を管理する小さなチップがなければ機能しません。
すべての SSD にはコントローラーが付属しています
そしてコントローラーは本当に小さなコンピューターです
ハード ドライブとフラッシュ メモリ ベースのストレージ メディア (SSD を含む) の両方に、コントローラと呼ばれる小さなチップが内蔵されています。コントローラーがなければ PC の SSD は動作しないため、コントローラーはすべての SSD の最も重要な部分です。実際、搭載されているフラッシュ メモリ チップが問題なく動作しているにもかかわらず、コントローラーが故障した場合、ドライブは水没した状態になります。
後で説明する多くの役割を果たす必要があるため、最新の SSD コントローラーはそれぞれ独自のプロセッサ コアを備えた特殊なチップであり、通常は Arm アーキテクチャに基づいています。 エラー訂正や暗号化などのタスク用の専用ハードウェア。 SSD コントローラーは独自のファームウェアも実行します。これは、コントローラーのハードウェアと同様に SSD のパフォーマンスにとって重要です。ファームウェアをコントローラーの小さな OS と考えてください。パフォーマンスを向上させ、バグを修正するアップデートを入手することもできます。
各コントローラーが動作するためには、主にフラッシュ チップ上のデータの保存場所を追跡するマッピング テーブル用のメモリも必要です。マッピング テーブルはフラッシュ メモリに保存されますが、多くの SSD はそのコピーを DRAM チップに保存するため、コントローラはそれに迅速にアクセスできます。安価な DRAM レス SSD は、ホスト メモリ バッファ (HMB) と呼ばれる機能のおかげで、その一部を PC の RAM の小さなスライスに保持します。
当然のことながら、すべてのコントローラーが同じようにその仕事に優れているわけではありません。最高のものは主力 SSD と組み合わせられますが、より手頃な価格のドライブは機能の低いコントローラーを使用します。同じ NAND フラッシュを搭載した 2 つの SSD を使用でき、一方の方が他方よりも高速なのは、単純に優れたコントローラーを備えているためです。したがって、新しい SSD の市場に参入している場合は、PCIe 世代とボックスの速度だけに注目しないでください。また、どのコントローラーが電力を供給しているかも確認してください。
コントローラーはフラッシュ メモリへのデータの書き込みとフラッシュ メモリからのデータのフェッチを担当します。
データの駐車場管理者として考えてください。
SSD 上のフラッシュ メモリを駐車場として想像すると、コントローラーは駐車場の管理者となり、ドライバーに駐車場所と後で車を見つける場所を指示します。マネージャーがどれだけうまく仕事をするか、どれだけ速く仕事をするかに応じて、ドライバーは駐車スペースや自分の車を見つけるのが早くなったり遅くなったりします。
たとえば、Web から PC にファイルをダウンロードすると、ファイルを構成するすべてのデータ バイトが SSD のコントローラに到着してから、フラッシュ メモリに書き込まれます。データがゲートを通過すると、コントローラはマッピング テーブルをチェックし、フラッシュ メモリをブロック (通常は数メガバイト) とページ (通常は 16KB) まで追跡します。次に、空きページを見つけて、そこにデータを送信します。
一方、ファイルを開くと、オペレーティング システムは SSD にそのファイルを要求し、コントローラーはマッピング テーブルを検索して、ファイルの一部が格納されている場所を見つけて、フラッシュ メモリからファイルを読み取って、オペレーティング システムに送り返します。
フラッシュ メモリが対応できる限り、コントローラーの仕事の実行速度が速くなるほど、SSD の速度も速くなります。最も高速なコンシューマ コントローラは PCIe 5.0 SSD に搭載されており、14 GB/秒を超えることもある驚異的なシーケンシャル速度を達成できますが、これは転送の相手側のドライブが同じ速度である場合に限られます。ただし、別の SSD であってもインターネット プランであっても、通常は反対側によって SSD が制限されているため、ほとんどのワークロードでは SSD はかなり低速で実行されます。
ただし、コントローラーはフラッシュ メモリにデータを出入りするだけではありません。実際、コンピューターの電源が入っている限り、彼らは 24 時間稼働し、あらゆる種類のものを管理しています。
SSD コントローラーは他の多くのタスクもこなします
大きな責任と激しい仕事量
コンピューターで何もしていないときでも、いくつかのバックグラウンド プロセスが常にブート ドライブにアクセスしています。そのたびに、フラッシュ チップへのデータの読み書きを絶えず行うという大変な作業を行うコントローラーを経由します。しかし、コントローラーは、ストレージとしてのみ使用されアイドル状態にある SSD 上でも蜂のように忙しく動作します。
たとえば、ガベージ コレクションや TRIM 操作を処理します。フラッシュ メモリはブロック全体でしか消去できないため、ガベージ コレクションによって必要なデータがブロックから新しいページに移動され、ブロック全体が消去されて再利用できるようになります。一方、TRIM は削除されたデータを保持するページを SSD に通知するため、コントローラーはガベージ コレクション中にデータを移動するのに時間を無駄にすることがありません。
コントローラーのもう 1 つの重要な役割は、工場出荷時に欠陥が発生したり、時間の経過とともに磨耗したりする可能性がある不良ブロックを管理することです。これは、オーバープロビジョニングによって行われます。つまり、コントローラーのみがアクセスできる、各 SSD 上の少しの追加スペースです。コントローラーはこのスペースを使用して、不良ブロックを新しいブロックに置き換えるだけでなく、ガベージ コレクションやウェア レベリングにも使用します。
各 NAND セルは、磨耗して使用できなくなるまでに限られた回数の書き込みおよび消去サイクルしか処理できないため、ウェア レベリングが必要です。コントローラーは書き込みをドライブ全体に均等に分散するため、すべてのセルが同じ速度で摩耗し、SSD のどの部分も早期に停止することはありません。
また、コントローラーはドライブの全体的な状態を監視し、消費電力を管理し、ドライブまたはフラッシュ チップが熱くなりすぎると速度を低下させます (サーマル スロットル)。多くの SSD では、NAND に書き込まれるデータも暗号化されます。さらに、データを書き込む前にデータをスクランブルして、0 と 1 がページ全体に均等に分散されるようにし、データを完全な状態に保つことができます。
それだけではありません。 SSD コントローラーはエラー訂正も実行する必要があり、これがなければ NAND フラッシュはほとんど使用できなくなります。また、データのリフレッシュも処理し、NAND セルの電荷のわずかな変化によりエラーが蓄積してデータが読み取れなくなる前に、データを新しいページに再書き込みします。最後に重要なことですが、ほとんどの SSD はフラッシュの一部を高速 SLC キャッシュとして使用し、コントローラーは受信データを最初にそこに書き込み、後で (通常はドライブがアイドル状態のときに) 最終スポットに移動することで管理します。
SSD コントローラーは見た目よりも複雑です
ご覧のとおり、コントローラーの役割は広範囲にわたるため、間違いなく、すべての SSD の中で最も複雑なコンポーネントであることは驚くべきことではありません。これを小さなコンピュータと呼ぶのは間違いではありません。それが実際の姿であり、Windows や macOS の代わりに、その仕事を実行し、コンピュータのオペレーティング システムと通信できるようにするファームウェアを実行しているだけだからです。したがって、次回 SSD を購入するときは、このすべての作業を実行する小さなチップが、それが管理するフラッシュ メモリと同じくらい、あるいはそれ以上に重要であることを思い出してください。
関連情報は以下のリンクからご確認いただけます