Web教材一覧ハードウェアとソフトウェア

SSD

キーワード

SSD、NANDフラッシュメモリ、コントローラ、ブロックコピー、ウェアレベリング

過去問題:「半導体素子」(hs-rom-ram)


SSDの特徴

SSD(Solid State Drive)とは、半導体素子のフラッシュメモリを用いた記憶装置です。近年は磁気ディスクと同じような用途に普及が進んできました。

半導体素子なので、磁気ディスクのような機械動作がないため、
・処理速度が高速(シーク、サーチ時間が不要)、特にランダムアクセスが高速
・小型化できる、発熱が少ない(省電力)、衝撃に強い
などの利点があります。
 逆に、磁気ディスクと比べて
・価格が高い
・まだ大容量化ができない、使用している
などの欠点があります(急速に改善されている)。
 そのため、モバイルパソコンに適しています。また、デスクトップパソコンではシステムドライブをSSD、データドライブを磁気ディスクにすることもあります。

SSDと磁気ディスクとは全く異なる媒体(ハードウェア)ですが、磁気ディスクの代替を目的としているので、パソコンの操作(ソフトウェア)では磁気ディスクと同じインタフェースになっており、利用者はどちらであるかを意識する必要はありません。
 SSDだけを搭載し、HDDを持たないパソコンも普及してきました。SSDとHDDの両方をもつときには、SSDをCドライブとしてシステム用に、HDDをDドライブとしてデータ用に使うのが適しています。

SSDの構造

SSDの構造は、図のようになっています。


SSDの写真
(出典)北川達也(インプレス)「SSDの仕組を大解剖!」
http://www.dosv.jp/other/0910/02.htm


SSDの理論構造
(出典)ロジテック「SSD[Solid State Disk]とは?」(数字は筆者挿入)
http://www.logitec.co.jp/data_recovery/column/vol_004/

②SDD筐体
SDDは、③④⑤の部品が、樹脂やスチールの筐体に収められており、パソコンのマザーボードに取り付けられます。横幅2.5インチが主流で、1.8インチのものもあります。
⑤フラッシュメモリチップ
ここにデータが記憶されます。32~128GB程度のNAND型フラッシュメモリのチップが、4~12個搭載されています。これらはコントローラにより並列的に動作します(直列的にチップ数を2倍にすることもあります)。
NANDフラッシュメモリは、半導体メモリとしては、それほど高速ではありませんが、並列処理により高速化を実現しています。そのため、チップ数が性能に大きく影響します。
③コントローラ
どのメモリチップあるいはキャッシュメモリにどのデータが記録されているかを管理する機構です。高速処理が必要なため専用のRISCプロセッサが採用されています。
④キャッシュメモリ
直前にアクセスされたデータの付近を格納して、次のアクセスが格納している部分であるとき、メモリチップへのアクセスをせずにここから読み込むことにより高速化を図ります。通常、256MBのSRAMが使われます。
①インターフェース
SSDとパソコン本体との接続部分(データ転送路)です。インタフェースは従来はSerial ATAが主流でしたが、近年は、より高速なPCI Expressが用いられるようになりました。

SSDのアクセス方式

SSDでは、フラッシュメモリの特性から、磁気ディスクとは異なるアクセス方式が必要になります。これらを管理するのは主にコントローラの機能です。

ブロックコピー
フラッシュメモリの読み書きはページ(2KB)単位で行います。消去は複数(64個)のページをまとめたブロックを単位で行います。
データの上書きができません。ページ内のデータを書き換えるときは、書き換えたページを含むブロックA全体をバッファブロック(空のブロック)に書込み、ブロックAを消去して、バッファメモリの内容をフラッシュメモリに書き込むという操作をします。これをブロックコピーといいます。
このように、SSDでは少量のデータの更新がブロック単位での移動を発生させます。そのため、少量データの書込みが多頻度に行われる処理では非効率です。
エラー補正機能
フラッシュメモリは書き換え回数が数千~数万回で劣化します。データを保持できる時間が短くなり読み出しエラーが発生しやすくなります。
SSDではデータ書き込みの際に、データそのもの以外に補正のための情報も書き込むことにより、エラーを防ぐようにしています。
ウェアレベリング
特定のメモリ(ブロック)への書き換えアクセスが集中しないようにしたり、ブロック消去が特定の個所に集中しないように、ブロック消去回数を記録して回数が少ないブロックを優先的に使うようにしたりすれば、見かけ上の寿命を延ばすことができます。これをウェアレベリングといいます。
それを実現するために、フラッシュメモリの実際のアドレスと外部から見たセクターアドレスは一致しません。書き込まれたファイルはSSD内部のあちこちに分散して記録されます。