ホーム SSD コントローラー

SSD コントローラー

SSD コントローラー

プロセッサとも呼ばれる SSD コントローラには、フラッシュ メモリ コンポーネントを SSD 入出力インターフェイスにブリッジする電子機器が含まれています。コントローラーは、ファームウェア レベルのソフトウェアを実行する組み込みプロセッサです。 SSD ファームウェアはデバイス固有であり、ほとんどの場合更新できます。

SSD コントローラー
拡大表示

プロセッサとも呼ばれる SSD コントローラには、フラッシュ メモリ コンポーネントを SSD 入出力インターフェイスにブリッジする電子機器が含まれています。コントローラーは、ファームウェア レベルのソフトウェアを実行する組み込みプロセッサです。 SSD ファームウェアはデバイス固有であり、ほとんどの場合更新できます。

SSD コントローラー
拡大表示

主流の SSD コントローラーには次の電気要素が含まれており、多くの場合、単一の集積回路 (IC) 内に含まれています。

  • 組み込みプロセッサ – 通常は 32 ビットのマイクロコントローラー
  • 電気的に消去可能なデータファームウェアROM
  • システムRAM
  • 外部 RAM のサポート – 通常は SDRAM としての DDR/DDR2
  • エラー訂正コード (ECC) 回路
  • フラッシュ コンポーネント インターフェイス – 通常は Open NAND フラッシュ インターフェイス (ONFI) などの標準インターフェイス
  • ホスト電気インターフェース – 通常は SATA、USB、SAS、またはその組み合わせ

市場に出回っている SSD 製品の大部分は標準のフラッシュ コンポーネントを使用していますが、ECC を統合し、場合によってはコントローラ機能全体をフラッシュ チップ自体に統合する新しいフラッシュ コンポーネントも利用可能です。この記事では、上に挙げた従来のコントローラー派閥に焦点を当てます。

SSDコントローラ要素
典型的な SSD コントローラー要素

以下の表では、これらの各要素について詳しく説明します。

 

コントローラ要素
説明
使用法
プロセッサ
16 または 32 ビットの組み込みマイクロコントローラー。ほとんどの場合 C でプログラムされ、ターゲット CPU エンジンで実行するようにコンパイルされます。
メインのフラッシュ アプリケーションのファームウェアの実行、診断 (SMART)、ウェア レベリング (ガベージ コレクション/TRIM)、キャッシュ、およびセキュリティ機能。
エラー訂正 (ECC)
読み出し時にデータエラーの検出と訂正を行うために、格納された各バイトに冗長ビットを追加するハードウェア機能。 
データエラーの検出と訂正は ECC ハードウェアで自動的に実行され、1 ビット 10E-12 程度のデータ信頼性エラー率を達成します。
フラッシュコントローラー
512 つ以上のフラッシュ コンポーネントを管理するためのアドレス指定、データ バス、および制御が含まれます。一般的な SSD コントローラは、最大 XNUMXGB のフラッシュを管理します。 
通常は、標準 NAND フラッシュ用の 8 ビット オープン NAND フラッシュ インターフェイス (ONFI) です。
 
通常、最大 16 個のフラッシュ コンポーネントを制御できます。
DRAM コントローラ
256 つ以上の DRAM コンポーネントを管理するためのアドレス指定、データ バス、および制御が含まれます。一般的な SSD コントローラーは、最大 XNUMXMB の DRAM を管理できます。
DRAM は主に、フラッシュ アレイから I/O インターフェイスへのデータフローを一致させるためのバッファ メモリとして使用されます。このメモリは、全体的なパフォーマンスを向上させるデータ キャッシュとしても利用できます。これにはファームウェアのプログラミングが必要です
I/O インターフェース (例: SATA)
SATA、USB、SAS などの特定のオープン システム規格に準拠したネイティブ電気インターフェイスが含まれています。インターフェイスはコントローラー ファームウェア ドライバーによって制御されます。基本的なアドレス指定とハンドシェイクはハードウェアで行われます。
一部のコントローラーでは、データ フローにコントローラーが介入しなくても、USB や SATA などのインターフェイス間のデータ転送が可能です。
コントローラメモリ
プロセッサに緊密に結合されたプログラムされたメモリ (ROM) とスクラッチパッド/バッファ RAM で構成されます。このメモリは、プログラムの実行とスクラッチパッドの値の保存のためにコントローラによって使用されます。コストに制約のある一部のアプリケーションでは、RAM が SSD の唯一のデータ バッファとして機能します。
通常は 32 ~ 64KB の ROM と 128 ~ 256KB の RAM です。
チップ構成
使用するメモリ部品の種類と速度、クロック入力、診断I/O、LEDステータス出力の設定を行います。
ベンダーによって異なります。
一般的なI / O
アプリケーションで使用できる汎用のプログラム可能なピン。  
通常は 4 ~ 16 個のピンが提供されます。
梱包
 
281ピンBGAが一般的
208ピンLQFPが共通
 

一般的に使用される SSD コントローラー

2010 年初頭の時点で市場にある一般的な SSD コントローラには次のものがあります。

  • インディリンクス 「ベアフットECO」 IDX110MO1
  • インディリンクス「ベアフット」IDX110M00
  • インテル PC29AS21BA0
  • ジェイマイクロン JMF602
  • ジェイマイクロン JMF612
  • マーベル 88SS9174-BJP2
  • サムスン S3C29RBB01-YK40
  • SandForce SF-1200
  • SandForce SF-1500
  • 東芝 T6UG1XBG

システム設計者は、ターゲット製品およびターゲット市場に合わせてサプライヤーと特定のコントローラーを選択する際に、一連のトレードオフを実行します。 

トレードオフには次のようなものがあります。

  • プログラム的 – コスト、スケジュール、サポート、保証、可用性。
  • 技術 – パフォーマンス、消費電力、パッケージ オプション、機能、拡張性、柔軟性。
  • その他 – 共通性、互換性、ドキュメント、開発サポート、テスト、評判。

コントローラの選択の過程で、システム設計者は、設計に必要なフラッシュ部品やその他の部品についても同じ分析を行います。特定の製品の要件を最もよく満たすサプライヤーとコンポーネントの適切な組み合わせを見つけるのは、反復的なプロセスです。

独自の問題により、すべてのコントローラ設計データがインターネット経由で一般公開されているわけではありません。ただし、既存の SSD での使用を研究することで、市販の SSD コントローラごとにアプリケーションの詳細を大量に知ることができます。

StorageReview.com でのレビュー などは、各コントローラーの利点と SSD に対するその影響を識別するのに役立ちます。コントローラーが SSD のパフォーマンスに重要であるのと同様に、まったく同じ SSD コントローラー コンポーネントを使用している場合でも、2 つの異なるベンダー間で SSD のパフォーマンスが異なる可能性があるため、これらのコンテキスト参照は重要です。

一般に、このパフォーマンスの差異は、2 つの設計で異なるフラッシュ パーツ、異なる数のフラッシュ パーツ、異なる量のキャッシュ バッファ メモリが使用されているか、あるいはおそらく何らかの方法で最適化されたファームウェアが使用されていることが原因です。重要なのは、SDD コントローラーは SSD システム設計全体の一部にすぎず、パフォーマンスには重要ですが、SSD の購入を決定する際に考慮すべき唯一の要素ではないということです。

関連ガイド

に戻る SSDガイド