SandForce 製 SSD コントローラー

SandForceについて

+クリックで展開

  ('A`('-`('д`('_` )
  ノ ノノ ノノ ノ) ノ|
  「「 「「  「「 「「
  • 先進的な機能を多数実装しベンチャーの割には当初はコントローラーチップそのものの期待と評価は高かったが、開発体制から来る各種のファームウェアのバグ (後述)、圧縮不可能なデータを扱った際のパフォーマンスの低さ、速度低下の大きさや Trim の効果が低い事が露呈し製品としては未熟な完成度である。またこういった不備が原因かは不明だが CORSAIR、A-DATA 等は Marvell 製 SSD コントローラー搭載製品を扱い始めている。しかし SandForce の企業としての規模は非常に小さいにも関わらず各種先進的機能は Intel 等の大企業に少なからずインパクトを与えている。

対応OS Windows 7 以降
RAID SF-1200系は不可
その他 AHCI モード対応である事(ファームウェアアップデートの為)、
Trim が確実に効く IRST が使用可能な Intel チップセット環境が望ましい

SandForce公式
SandForce搭載SSDベンダー一覧
2010/10 SF-2000 シリーズや SandForce の紹介 (PDF)
SandForce は基本的に SSD コントローラーのみを供給するが、ベンダー向けにはリファレンスの設計も提供している。

SandForce 自社設計の評価用の SSD もある。
SF-1000 Reference Designs and Evaluation ssds (PDF)
SF-2000 Reference Designs and Evaluation ssds (PDF)

#twitter_widget_profile



SandForce 製 SSD コントローラーの主な特徴について


DuraClass Technology とは

  • 他社製 SSD コントローラーより信頼性 (ファームウェアを除く)、性能、電力効率の点で優れている事を示す。SandForce 製 SSD コントローラーは全て DuraClass である。具体的には DureWrite・高度なブロック管理/ウェアレベリング・GC・RAISE・ECC 等の事。但し SandForce を採用するベンダーの多くは Intel 純正等の一流メーカーよりも低コストである事を市場に強いられており実際に Intel 等の SSD よりも安価で販売されている事が多く、その為選別落ちやグレードが低く信頼性に劣る NAND フラッシュメモリを使用する場合があり (SOLIDATA K5-64 もその一例)、以下のような機能があるからといって必ずしも SSD 単位では Intel 等の一流メーカーの SSD より信頼性が高いという訳ではない。

DuraWrite とは

  • 他社の SSD と比べ最大 20 倍の耐久性を実現している事を表す。データ圧縮 (圧縮可能なデータに限られる) や deduplication (重複データ除外) によって NAND への書き込みそのものを減らす事によって WA を低く抑え (SandForce による SSD への Windows Vista + Office 2007 のインストール実験では論理アドレス上で 25GB の書き込みが発生したが実際に NAND へ書き込まれたデータは 11GB だったとの事)、他の SSD コントローラーより高い最大 512bit あたり 55bit までのエラー訂正用 ECC の実装に対応している (どこまで実装するかはベンダー次第である) 事等を指している。データ圧縮は WA を低下させるだけでなくパフォーマンスを向上させる効果もあり、0/1Fill ではランダムなデータに比べかなりアクセス速度が高くなる (逆にランダムデータを扱うと一気に速度が落ち公称スペックを大きく下回るという言い方もできる)。但し、圧縮や重複除外が効きにくいデータを扱ったワーストケースでは思うように WA が下がらず、しかもその上強力な ECC や RAISE のような機能の為に他の SSD コントローラーよりもむしろ WA が悪化する可能性もある。

RAISE (Redundant Array of Independent Silicon Elements) とは

  • RAID5 のようにシリコンダイの一つに冗長データ (パリティ) を記録しており NAND フラッシュメモリのダイが一つ故障しても継続使用可能にする仕組みの事。最大 16 チップ x チップあたりのダイ積層数 8 = 128 ダイまでサポートしている。この機能は NAND のダイ一つあたりの容量が大きくなるとその分余計に予備領域を必要とする。その為 SF-1200 搭載 SSD では 34nm の NAND を採用したものより集積率の高い 25nm を採用した製品の方が NAND の物理搭載量が同じでもユーザーが使用可能な容量が減る (通常の予備領域は 13% だが 17~23% に増える) SF-1000 系は全てこの機能を備えているが、SF-2100/2200 系ではベンダーは 0% Over-provisioning の為この機能をオフにする事が出来る。

Over-provisioning とは

  • 予備領域の事だが SandForce は特に予備領域の内 JEDEC で定められた 7% を除いた部分に対してこの用語を使用している。従って SF-2100/2200 で予定されている RAISE を無効にした上での "0% Over-provisioning"は予備領域が全く無いということではなく JEDEC 準拠の約 7% の予備領域にするという意味。同様に"7% Over-provisioning"は実際には約 13% の予備領域、"20% Over-provisioning"は実際には約 28% の予備領域がある事を示す。但し SandForce 以外は全く同じ単語を予備領域全部 (=Spare Area) と同義で使用する事が多いので注意する必要がある。これらの予備領域はファームウェアの格納(SandForce のファームウェアはアップデータだけで 100MB 近いサイズがある)、不良ブロック代替用、アドレス管理テーブル、ウェアレベリング等の作業用等の他 SandForce 特有の 強力な ECC のパリティ・RAISE のパリティやスペア領域等の冗長データの他 SuperCache(NAND 上の L2 キャッシュ、SF-1200 系で予備領域が 13% まで減った際はこれに使用される領域が削られたのでベンチマーク上では誤差程度に性能が低下した)等に使用される。
  • AnandTech - The Impact of Spare Area on SandForce, More Capacity At No Performance Loss?

リアルタイム GC


SandForce 系 SSD でベンチマークを行う際の注意


その他の特徴

  • コントローラー内部に SRAM キャッシュを備えており外部キャッシュ用 DRAM を必要としない (対応もしていない)
  • AES 256/128bit + TCG Enterprise 等の各種セキュリティ機能が充実している (エンタープライズ向けグレードの方がより機能が多い)
  • SF-1000 系の時点で ATA8-ACS version 6 に対応しており Windows 7 で SSD として認識される
  • パーティションアライメントが合っていないと大きく速度が落ちるのでベンチマークをするならアライメント調整は必須
  • ファームウェアのアップデートは基本的に SandForce 製の Windows Vista 以降かつ AHCI モードのみに対応した (XP、IDE モード及び IRST 10 系のドライバには非対応) アップデートユーティリティ「ssdupdate.exe」で行うため要注意
  • 酷く速度低下しやすく低下量も大きい。Windows 7 のインボックスドライバの Trim と互換性が低く Trim があまり効果が無い。確実に Trim を使用するには Intel チップセット環境で使用できる IRST をインストールする必要がある。更に時々 SecureErase を行った方良いだろう。

バグと信頼性

  • 以下で説明するような事情により主にファームウェアの質が低くなりがちである。データが消失するバグ、ハングアップし認識されなくなる不具合などがあったため特にクライアント向けグレードのコントローラー搭載品の信頼性は上で説明したような各種先進的機能の甲斐も無く底辺ランクである。


開発体制とファームウェアについて

名称 特徴 使途
Beta 新機能を実装、既知の問題(バグ)多し ベンダーの評価用
RC 完全な機能を備える。既知の問題(バグ)有り ベンダーの検証用、OEMの評価と初期の検証用
MP RC のバグ修正版、既知の問題(バグ)は少ない ベンダー・OEMの検証用、製品に搭載

  • ベンダーがリビジョンの文字列を変更しない限り、実際の IDENTIFY DEVICE コマンドで取得可能なファームウェアリビジョンは beta、RC、MP の区別無しに"301A13F0"(例は SF-1200 用の初期のリビジョン) という形式で表記され、先頭三文字がリビジョンを意味し短縮して 3.0.1 と表記する場合もある。A の後の文字列は対応したコントローラーの種類によって異なり SF-1200 系なら A13F0、SF-1500 系なら A11F0 である。リンク先の情報によると 301A13F0 は RC 版ファームウェアとの事である。305A13F0 が SF-1200 系用初の MP 版ファームウェアで MP1 と表記される事もある。リビジョンは SandForce 社内で作成された順に番号を振っているようで 305A13F0 より新しい 309A13F0 は再び RC 版ファームウェアである (3.0.9 はより小さい予備領域という新たな特徴を持ったファームウェアであり、空白の 3.0.6~3.0.7 は公開されていない beta 版の可能性がある) 。従ってあるリビジョンよりも新しければ MP 版であるという訳ではなく、リビジョンが上がるにつれて beta、RC、MP が交互に現れる (観察の結果 SandForce は初期は機能を絞ってファームウェアに実装してバグを修正してゆき、安定バージョンが完成すると次の新機能を搭載した beta 版ファームウェアを作成するという事を繰り返す)。以降 MP2、MP3、MP4 (360A13F0) ファームウェアも確認されている。

  • 但し最初に注意した通りファームウェアリビジョンの文字列はベンダーが任意で書き換える事も可能 (例:OCZ、CORSAIR) であるし、IDENTIFY DEVICE コマンドで取得可能なリビジョンを書き換えないまでもベンダーが自社 HP にファームウェアアップデータを掲載する際に SandForce 社内で使用されている表記を使わない (例:その他多くのベンダー) 事も出来る為、エンドユーザーがどのリビジョンが beta、RC、MP ファームウェアなのかを見分ける事は容易ではない。その上、ベンダーによっては使用している NAND フラッシュに適合させる為のパラメータ変更程度の枠を超えた改造をしても SandForce 純正のリビジョン表記をそのまま使う、或いは当の SandForce 自身がカスタム版ファームウェアを提供する (例:OCZ) 例もあり、ベースとなったリビジョンが同じでもベンダーによってファームウェアの挙動が異なる場合がある。

  • SandForce は非常に小規模な企業であり、SandForce 一社で十分なテスト・検証を行うことは難しい為これらの作業はベンダーにも委ねている。その為ベンダーに配布する初期の評価・検証用のファームウェア (Beta、RC) は完成度が低い傾向にある。しかし、SandForce 製コントローラー採用ベンダーの多くは Intel 等の大手に対抗する為、以前は JMicron や Indilinx その他のコントローラーを採用した安価な製品を出荷していたベンダーであり、ベンダー側に必ずしも十分なテスト体制があるとは限らず、ベンダーによってはこの RC ファームウェアを搭載した製品を出荷した為、致命的なものを含む多くのバグが残った SF-1200 搭載製品が多数出荷された (SF-1200 の項目を参照)。SandForce 自身はあくまでも SSD コントローラーを提供しているのであってドライブは販売していない事、MP 版ファームウェアに不備が無い事を強調しており、製品に RC ファームウェアを搭載するかはベンダーの任意であるが、エンドユーザーの視点からするとSandForce 搭載製品のファームウェアが RC 版かどうかを容易に見分ける術は無く、しかも MP4 ファームウェアも CORSAIR によって問題が発見されている。これらの事情によって SandForce というブランドは信頼性の証には成り得ないどころか意図的に避けざるを得ない存在になりうる。このような開発・製造体制が SandForce の大きな弱点である。加えて、このような状況・体制ではファームウェアのアップデートが非常に重要になるが、このファームウェアアップデートツールは Intel や Micron の提供するような OS を選ばない CD ブートのものではなく Windows 用アプリケーションである為事実上使用環境を大きく制限している (後述) 事も考慮すべきである (OCZ は自社製のファームウェアアップデートツールを配布しており他のベンダーよりもやや制限が緩い。OCZ の項目参照)。エンタープライズ向けコントローラーのファームウェアに関してはクライアント向けコントローラーのものより検証期間が長いためバグが少ない事が期待出来る。


SandForce 搭載 SSD のファームウェアアップデート方法 (ssdupdate.exe) について

  • SandForce 製のファームウェアアップデートツールでどのベンダーの製品でも基本的にこのツールでファームウェアをアップデートする事になる。「ssdupdate.exe」本体の他、ssdupdate.exe のスキン画像の「ssdupdate.dat (実態は単なる bmp ファイル)」、拡張子「pkg」のファームウェアで構成されている。ファームウェアは SandForce が提供したものをベンダーによっては一部カスタマイズした上で ssdupdate.exe と ssdupdate.dat を同梱の上でユーザーに公開している。現在最新版は 1.0.0.1 (MX-Teqhnology で MP4 ファームウェア (360A13F0) 以降とセットで配布されているものは ver 1.0.2.1 (1.21) になっている。何故か HTTP://WWW.DIGICUBE.COM.TW 名義になっている。AHCI モードという以外に動作条件は不明でボタンに説明が付く様になった。)

  • 基本的に Windows 上でアップデートを行うが、ssdupdate.exe と *.pkg ファイルを USB メモリに入れて PC に接続し、Vista 以降の 32bit Windows のインストール DVD (64bit 版のインストールディスク不可) で PC を起動しコマンドプロンプトから USB メモリ内の ssdupdate.exe を実行する事でもアップデート可能。アップデート後に OS がドライブを見失う為にブルーバックになる場合がある。うまくいけば自動的に Windows が再起動する。アップデート後 SSD を認識出来なくなった場合は一度 SSD から全てのケーブルを外ししばらく放置してから再度接続する事。

  • 対応環境
    • Windows (Vista 以降?、XP 非対応とされている場合もある)、管理者権限
    • アップデート対象の SSD が AHCI モードで接続されている事 (IDE モード非対応)
    • IRST10 系、AMD AHCI ドライバ非対応。TRST 9.6 か Microsoft AHCI ドライバ環境のみ対応

SandForce 搭載 SSD のファームウェアアップデート方法 (SandForce Tool Box) について

  • OCZ や SuperTarent が自社 SSD 向けにそれぞれ OCZ Tool Box、TeraDrive Tool Box の名称で公開している。それぞれのベンダーの説明を見る事。


SF-1200 シリーズ

+クリックで展開
公式
S.M.A.R.T.の仕様(PDF)

  • ファームウェア一覧
リビジョン 内容
300A13F0
(RC)
・Mach Xtreme MX-DS が初期搭載
301A13F0
(RC)
パフォーマンス CAP 無しで SF-1500 系や Vertex 2 と同等のランダムライト 4K 性能 (30,000IOPS)
安定性に問題あり、省電力機能にバグを抱えていた
・Corsair Force がバグのある省電力機能を無効化して初期搭載 (CPRSAIR のバージョン表記は 0.2)
302A13F0
(RC)
・これ以降パフォーマンス CAP 有りの為ランダムライト 4K 性能低下 (10,000IOPS)
・安定性向上
・ADATA S599、RunCore Pro-V、PhotoFast G-Monster2 が初期搭載
305A13F0
(MP1)
・初の製品版 (MP) ファームウェア
・Flash メモリの設定を更新
・root (system file) block recycling algorithm の更新
(ノート PC で使用しているドライブでは失敗する可能性がある)
・Flash メモリのテストを強化
・Trim の動作の変更
・スリープからの復帰を高速化
・OWC Mercury Extreme Pro-RE、Patriot Inferno Vertex 2 が初期搭載
308A13F0
309A13F0
(RC)
・これ以降予備領域を 13% まで減らしユーザー領域拡大、SuperCache の量が減ったため性能低下
・Mushkin Callisto が初期搭載
310A13F0
(MP2?)
・G.Skill Phoenix Pro、OCZ Vertex-2 (OCZ のバージョン表記は 1.10) が初期搭載
30CA13F0
(RC)
・310A13F0 相当
・Vertex-2 E、Corsair Force F120 が初期搭載
320A13F0 ・温度センサーにドライブ個別の設定を付加
・ecliApp で使用される pderase 命令を追加
・空きブロックのマッピングを強化
・中止されたコマンドに関する詳細な情報をイベントログに記録するよう変更
・潜在的なタイムアウト問題を修正
・セルフテストの修正
・非データ命令のリストを修正
340A13F0
343A13F0 ・レイテンシを短縮
・フラッシュメモリダイのデバイス ID を識別する為の診断機能を追加
・DIPM を無効にできるようにした
・書き込み中に SATA のリンクが落ちる問題を修正
・CDU Identify data をファームウェアダウンロードで再生できるように変更
・SecureErase 後に SMARTステータスが異常になる問題を修正
・IOMETER 2006 でシーケンシャルライトを行うとドライブを見失う問題を修正
350A13F0 ・内容不明、OWC 製が搭載している事を確認
360A13F0
(MP4)
Mac 環境でハイバネーションからの復帰に失敗する問題を解決 (OWC より)
(以下 MX-Technology のリリースノートより)
・起動/スタンバイからの復帰を高速化
・ATA security の無効化を可能に
・FW の効率を高め 5% パフォーマンスが向上
・故障したダイの処理を改良
・ファイルシステムのルートへのファイル作成する際のプロセスを改良
・稀にドライブがリセットされる不具合を修正
・制御可能な不良ブロック数の増加
361A13F0
(MP4 Patch 1)
MUSHKIN Callisto deluxe 向けに公開されている。詳細不明

SF-1500 シリーズ

+クリックで展開
  • SF-1500 シリーズは SF-1200 系と同じダイを使用し CPU として SF-1200 同様 Tensilica DC_570T が内蔵されているが SF-1200 系の 5 倍の MTTF を保証する為より厳しいテストにパスしたダイにヒューズカットによる差別化が行われ SF-1200 系とは別の 2xxA11F0 系のファームウェア (よりテスト期間が長くバグが少ない) が搭載されセキュリティ機能等が充実したバージョンである (SF-1200 系用ファームウェアを搭載する製品もある)。訂正不能エラーレートも SF-1200 系が 1/10^16 なのに対し SF-1500 系は 1/10^17 となっている。選別落ちが SF-1200 系として出荷されているという可能性もある。

  • SF-1500 系は停電対策の大容量のコンデンサ (SuperCap) が搭載されている事を前提に設計されており (SuperCap を搭載しない製品もある) RW4KB の IOPS は SF-1200 系の三倍になっている。
公式

  • ファームウェア一覧
231A11F0 OCZ Vertex 2 Pro が初期搭載
232A11F0 Photofast G-Monster SFV1 が初期搭載

SF-2100/2200 シリーズ

+クリックで展開
  • 登場時には RAID 構成のものや HDD 非互換の形状の大型のものを除いた中ではトップクラスの性能であり、ベンチマークの種類を問わず大抵のベンチマークで高いスコアが出る。但し SF-1000 系同様 Trim の効果が低く、特に圧縮が効き難いランダムデータをシーケンシャルで書き込んだ後は大きく速度低下する (AnandTech のテストではシーケンシャルライトが約 40MB/s 程度まで落ち込んでいる) 0fill 時とランダムデータでのベンチスコアを比較するシーケンシャルライトやランダムライト (QD=32) のような並列書き込み性能は半分かそれ以下まで低下するが、SF-1000 系と異なりシーケンシャルリード・ランダムリード (QD=32) のような並列読み出しは 0fill とランダムデータで殆どスコアに変化が無くこの点が大きく改善されている。ランダムリード・ライト (NCQ 無効) の性能はほぼ変化しない点は SF-1000 系同様。RW4KB の IOPS は最初の 15 秒のみバーストモードで 60,000IOPS になるが、 SF-2500/2600 と異なり 15 秒経過後は 20,000IOPS まで低下する。これは SupeCap を搭載しない SF-2100/2200 に必要な停電対策である。SF-1200 系では RW4KB の IOPS が SF-1500 系の 1/3 に固定されていた事からすると、この点も 15 秒限定とは言えエンタープライズ向けグレード品と同じ速度が出る点は進化している。

公式

SF-2300/2500/2600 シリーズ

+クリックで展開
  • 2011 年から量産開始されるエンタープライズ・産業用 SSD コントローラー。コードネームは Phoenix Pro。やはり SF-2100/2200 と同じダイを選別したものである。SF-1500 系同様 SuperCap の搭載を前提にした設計になっている。6Gbps のインターフェースに対応し SF-1000 系に比べパフォーマンスがアップし AES-256bit に対応。SATA だけでなく SAS インターフェースにも対応し、SAS 版は SAN 等で使用される 512byte 以外のセクタサイズにも対応している。2500/2600 系の MTTF は 2300系の倍となっている。訂正不能エラーレートは 1/10^17。SF-1500 系同様クライアント向けコントローラーよりも機能が追加されている。
SF-2300 公式
SF-2500/2600 公式

SuperCap とは

+クリックで展開
  • CAP-XX 社の商品名で大容量のコンデンサの事。SandForce に良く搭載されているのは HZ2 シリーズの 5.5V 0.09F のもの。
  • CAP-XX

コントローラーチップのラインナップ

+クリックで展開
シリーズ名称 製品型番 インター
フェース※
対応NAND
フラッシュ※1
シーケンシャル
リード/ライト
(MB/s)※2
ランダム
リード
/ライト4K
IOPS
(QD=32)※2
備考
SF-1000
(SF-1200)
SF-1222TA3-SBH SATA2.6
3Gbps
NCQ(QD32)
/Trim
32~512GiB/MLC
32~64GiB/SLC
(50~25nm)
260/
260 MB/s
30,000
/10,000
SF-1500系の廉価版
SF-1232TA3-SBH 512GiB/MLC
(50~25nm)
SF-1000
(SF-1500)
SF-1564TA3-SBH 32~256GiB/SLC
(50~25nm)
30,000
/30,000
エンタープライズ向け
SF-1565TA3-SBH 32~512GB
/MLC eMLC
256GiB/SLC
(50~25nm)
SF-1565TA3-SBI 産業向け
SF-1575TA3-SBH 512GiB/MLC eMLC
(50~25nm)
エンタープライズ向け
SF-2000
(SF-2100)
SF-2141TB1-SDC 12~64GiB/MLC SLC
(30~20nm)
最大 4ch 接続
500/
500 MB/s
60,000
/10,000
クライアント向け
SF-2181TB1-SDC 12~512GiB/MLC
12~128GiB/SLC
(30~20nm)
最大 8ch 接続
60,000
/20,000
SF-2000
(SF-2200)
SF-2281VB1-SDC SATA 3.0
6Gbps
NCQ(QD32)
/Trim
SF-2282VB1-SDC 12~512GiB/MLC
12~128GiB/SLC
(30~20nm)
最大 8ch 接続
128ダイサポート
SF-2000
(SF-2300)
SF-2382VA1-ICB 32~512GiB
/MLC eMLC SLC
(30~20nm)
最大 8ch 接続
60,000
/60,000
産業向け
SF-2000
(SF-2500)
SF-2582VA1-SCD エンタープライズ向け
SF-2582VA1-ICB 産業向け
SF-2000
(SF-2600)
SF-2682VA1-SCD SAS 6Gbps
NCQ(QD32)
/Trim
(内部SATA+
SASブリッジ)
エンタープライズ向け
SF-2682VA1-ICB 産業向け
※ この他にカスタム品やES品が存在する
※1 あくまで SSD コントローラーがコントロール可能な搭載量であって、約 7~28% が予備領域(非ユーザー領域)になる。SF-1000 系は ONFi 2.x のみ、SF-2000 系は toggle DDR インターフェースもサポート。
※2 あくまでスタンダードなファームウェアと SSD コントローラーの性能であって、最終製品の性能はファームウェア・ベンダーの実装に左右される