SSD解説
(SSDの魅力からは)ああ逃れられない!
SSDって何?(初心者向け)
Solid State Driveの略。
簡単にいえばメモリチップをパソコンのHDDの代わりにすればいろいろ速いし省電力になるからえんでね?っていう代物。
ただし、容量とコスパの面ではまだHDDに敵わない。
USBメモリとかSDカードの中身と似たような半導体メモリいっぱい詰め込んで、それらに同時に分散して書き込みすることで大容量と高速化を実現している。
(え?USBメモリやSDカードにも大容量なものはあるじゃんって?その理由は後述する)
一般的によく挙げられるメリット・デメリットは以下の通り。主にHDDとの比較。
また、USBメモリやSDカードにも一部当てはまる。
メリット
- 読み書きが速い
HDDのようにヘッドを動かしているわけではないのでランダム読み書きに強い。
最近のものはシーケンシャル(連続)リード・ライトでもかなり速い。 - 静か
可動部がないので無音 - 低消費電力
モータを動かしたりする必要がないため - 衝撃に強い
HDDのように振動でディスクにダメージを受けたりすることがない - 軽量
HDDのように金属やガラス製の円盤がはいっていないため
デメリット
- 書き換え回数に上限がある
フラッシュメモリの宿命。 - 高い
諸行無常 - 通電してないとデータが飛ぶ可能性がある。
チップ内のコンデンサに電荷を蓄えてデータを記録しているため、電荷が抜けるとデータが飛ぶ
また、書き換えを多く行ったSSDほど、電荷を蓄えることができない(コンデンサが劣化する)ため、電荷が抜けやすく、データが飛びやすい。
記録チップ(NAND)の種類
MLC
一般的に手に入るもので少しお高めのものはだいたいこれ。
1つのセルに2bit「以上」記録するチップ。
書き換え回数はSLCに劣るが、SLCより安価で1チップあたりの容量も大きい。
SSDが話題に上がり始めた当初(2008年頃?)では1万回程度の書き換え寿命をもつと言われていたが、2016年現在ではNANDの微細化が進んだため、書き換え回数は3000回程度と言われている。
TLC
最近廉価大容量なSSDに増えてきた。
MLCの一種だが、区別して書いてある場合が多い。
1つのセルに3bit記録するチップ。(そのため3bitMLCとも呼ばれていた)
MLCよりさらに容量が大きいが、書き換え回数はさらに劣り、1000回程度と言われている(同じチップにアクセスが集中しやすいため)
また、3bitのデータの読み書きをするためには細かな電圧の制御が必要(電圧のレベルによってデータを判別しているため)だが、それによってエラーが発生しやすく、結果的にSLCやMLCに速度で劣る。
ただし、近年ではコントローラー側の対策(SSDに関する技術に後述)により、一般的な使用方法では寿命や速度は問題とならなくなりつつある。
SLC
サーバーとかの高耐久モデルに使用されるやつ。
1つのセルに1bit記録。
長寿命で書き換え回数約10万回程度と言われている(ただし、これは2008年当時の話。MLCと同様の理由で現在はさらに短くなっている可能性があるが、コンシューマ向けモデルが登場しないため検証不能)
代わりに1チップ辺りの容量が少なく、値段も高いので企業向けが多い。
上記はあくまで傾向であり、モデルにより寿命や速度が異なる
その他SSDに関する技術
Trimコマンド
OS側がSSDに対して発行する速度低下を防ぐ(+書き込みを平均化の補助をする)ためのコマンド
SSDには複数のNANDが搭載されており、それらに分散してデータの書き込みを行うことで高速化を図っているが、SSDはデータの上書きができないという特性を持っている。
SSDを使用をする際、一度書き込んだデータをOS上で削除しても、SSD上にはまだデータが残っているということが発生するのだが、前述した特性上、この領域にはSSDが書き込みを行うにはまずSSD上のデータの消去が必要になり、速度が低下してしまう。
これを防ぐために発行するコマンドがTrimコマンドであり、OS側がSSDに対して削除してよい領域(OS側から削除されたデータ)を通知し、SSD上のデータを予め消去させることで、速度低下を防ぐ役割を持つ。
また、SSDには書き換え寿命が存在するが、通常であれば頻繁に書き込みが行われる領域とさほど行われない領域では寿命に差が生じることになる。
そのため、SSDにはウェアレベリングと呼ばれる書き込みを平均化し、長寿命化するための機能を備えているが、SSDからみた空き容量(≠OSから見た空き容量)が低下すると、十分に機能しなくなる。
TrimコマンドによってSSDから見た空き容量が増えることによって、ウェアレベリングが十分に機能することになるため、結果的にSSDの寿命が伸びる。
対応OSはWindows7以降、MacOSX10.7(Lion)以降。
ECC(エラー訂正機能)
名前の通り、SSDのデータの誤りを修正するための機能。
SLCのような1bitのデータを書き込むセルでは、動作が単純(0か1用の2つの電圧があればよい)なためエラーは発生しにくいが、MLCやTLCではデータを識別するための電圧が複数あり、エラー(実際のデータと異なるデータを読み取ってしまう確率)が上昇する。
これは速度低下とデータ化けなどにつながるため、SSDではそういったエラーを修正するためにECCを備えている。
特に、TLCを採用するSSDではこのECCの精度と速度によってSSD自体の速度が決定するとの意見もあり、ECCの精度・速度がコントローラー(とFirmware)によって決定されるため、SSDの速度について述べる際に、NANDの種類以外にコントローラーの話が上がる事が多い。
SLCキャッシュ
TLCやMLCをSLCと同様に動作させ、それをキャッシュとして利用すること。
通常、TLCは3bit、MLCは2bit以上でデータを記録し、大容量を実現しているが、書き込み寿命や速度の点ではSLCに及ばない。
そのため、SSDの一部の領域をSLC(1bitでデータを記録)として利用し、それをキャッシュとすることで、書き込み寿命や速度を補おうという機能。
キャッシュメモリ(DRAM)よりも大きな領域が使用できること特徴であるが、反面キャッシュメモリとNAND(MLCやTLC)の中間の2次キャッシュ的な使われ方がなされている。
製造プロセス
半導体の配線の太さのこと。
SSDではNANDの方が特に重要視される(もちろんコントローラーにも製造プロセスはある)
製造プロセスが細かい方が一般的には新しいものであり、1チップ当たりの容量が大きくなる反面、データの保持時間・書き換え可能回数が減少するといわれている。
そのため、一概にCPUなどと違い、製造プロセスが細かいことで一概に良いとは言えない。
また、多bit記録を用いる方式(MLCやTLC)では16nmより小さいプロセスは、エラーが発生しやすくなることから量産化することが難しいと言われている。(2015年時点)
3DNAND
従来の2DNANDと違い、配線を平面でなく、立体的に構築したNANDのこと。
今までのNANDは配線を細かくする(微細化)方向で開発が進められていたが、微細化の技術的限界により、厚み方向に配線を重ね合わせることで、NANDチップの集積度を上げる方向へ動いた結果生まれた技術。
製造プロセス自体は2DNANDよりも大きく、40-50nm程度とされており(2015年時点)、書き換え寿命の向上が期待できる。
接続方式
IDE
化石。
種類も少なく、旧式PCのリニューアル用。
こいつだけパラレル転送。
SATA
一般的。
SATAⅢ(6Gbps)対応でMAX500MB/sちょいくらいの速度が出る。(理論上は600MB/sまで)
ただし、ケーブルによってはSATA3に対応するものと、SATA2(MAX300MB/s)やSATA1(MAX150MB/s)までのものもあるので注意。
mSATA
見た目はMini PCI Express。
端子もMini PCI Expressとおんなじ(はず)だが、SATAの配線のありなしで対応非対応とあるので、使用する場合は要チェック
スピードはSATAと同等
M.2が実質的な後継?
PCI-Express
基本高いやつ。
速いやつで3GB/sオーバーのやつもあるんだってすごーい。
ハイエンド、エンタープライズ向けと見ていい。
あと内部でSATA変換してるモデルも一部あるので注意。
M.2
内部的にはSATAだったりPCIeだったりあるので要確認。
まだまだ新しい規格。
SATA3なら理論上600MB/s(MAX)
PCIeでPCIeGen3.0×4接続ならば、理論上3200MB/sまで可能。
(PCIeGen3.0×2とかのやつもあったりしたはず…)
もちろん、PCIeに変換は可能。
ただし、帯域を大量にもっていくので、マザーボードによってはグラフィック用の帯域が下がる可能性がある。
あと、PCIeのタイプはコントローラーが熱くなるのでヒートシンクがほぼ必須である(70℃とか80℃とかいくことも…速度も落ちるし、寿命的にもよろしくない)
U.2
内部的にはPCIe。(と見て良いはず)
M.2が小さすぎて容量大きくしにくい!(あと熱の問題が・・・?)ということで策定された規格。
こちらはM.2と違い、エンタープライズ向け。
ただし、ぶっちゃけコネクタ違いなので、M.2やPCIeを変換すれば使える模様。
これを使うSSDはまだ高い。(でも、コンシューマ向けもでてる。IntelSSD750とか)
コントローラメーカー
メーカー別で。記憶だよりなので抜けてるところ多し。
あとは一個人の主観多し。
Marvel
多くのSSDのコントローラーチップとして搭載されている。
性能としてはバランスがよく、圧縮していないデータでも性能を発揮できる。
SATASSDでは88SS9174や88SS9187が代表的で、サーバーグレードを謳っている。
88SS1093を搭載したPCIeSSD用コントローラーもリリースしている。
また、東芝のようにファームウェアをカスタムしたモデルもある。
SandForce
SandForceシリーズで有名なところ。
SSDを多くの人が使うキッカケを作ったといえる。
チップ自体が安価なようで、SF-2281系が安価SSDから上位のSSDに使われた。
ベンチ番長とも呼ばれ、圧縮のかけやすいデータなら速いが、そうでないデータは他に劣る。
また、数が出る安価なSSDに使用されているからか、故障報告が多い。
現在では採用例も少なく、会社自体もLSIが買収→Seagateへ。
JMicron
安価SSDに採用されているメーカー。
SSDの出始めの頃は、プチフリで話題になったが、現在は改善。
性能的には他社に劣るが、安価なことが強みな模様。
Micron関連会社なのか…と思いきやあんまり関係がなさそう。(JMicronは台湾、Micronはアメリカ)
MicronNANDとの組み合わせが多い気がする。
Intel
同社のSSDにのみ搭載。
当時100MB/sが平均だったSSDの出始めの頃、300MB/sにせまる驚異的速度を叩きだした。
その後はコンシューマ向けでは自社のコントローラーを使用しなかったが、エンタープライズ向けでは健在。
ただし、コンシューマ向けではないので発熱が大きいのがネック。
Samsung
同社SSDに搭載。
同社が推し進めるTLCに対応させるために開発していると思われる。
性能は高いが安価なことが特徴。また、RAID構成も割りと行ける模様。
問題はTLC自体の寿命が・・・?
東芝
SATAⅡ時代にSSDの寿命が近くなったらリードオンリーにする機能を搭載し、話題になった。
その後は、同社コンシューマSSDには採用されていなかった(開発していなかった?)ものの、機能としては組み込んでいる。
現在は買収したOCZのSSDに採用されている模様。(Trion 100)
Indilinx
OCZのVertexシリーズで採用されていたコントローラー。
性能としては高いが、価格も高い模様で下位の機種では採用されていない。
現在はOCZに吸収されており、OCZの独自のコントローラーとして使用されている。(Barefootシリーズ)
SiliconMotion(SMI)
最近の安価なTLCNAND搭載SSDでよく見るコントローラー
性能としてはSM2256を見る限り、Marvelなどの定番コントローラーに比べればやや劣るようだが、一昔前のコントローラーよりは速くそこそこのスピードを確保している模様。
安価なコントローラーというのもあり、組み合わされるキャッシュの容量が控えめな傾向がある。
Phison
最近のTLCNAND搭載モデルや、M.2SSDに採用されているコントローラー。
スペックを見る限りでは、Marvel等定番コントローラーと速度的にはほぼ同等か、上回ることもある模様で、性能は高いと思われる。
こちらも組み合わされるキャッシュの容量が控えめな傾向。
Realtek(蟹)
オンボードチップのアイドル!RealtekがSSDコントローラーをついにリリース
ただし、2016年現在は日本では製品が発売されていない模様(リリースがあったのみ)
立ち位置としてはSMIやJMicronと近いものと思われる。