パソコン(PC)の森

2020/031234567891011121314151617181920212223242526272829302020/05

PREV | PAGE-SELECT | NEXT

≫ EDIT

SSDのデータ構造について

【SSDのデータ構造について】

今回はSSDのデータ構造について書きます。
(2015/10/16時点公開)



注意:以下は2D NANDフラッシュメモリのSSDについての説明
です。

3D NAND型フラッシュメモリのSSDについては記事の最後のリ
ンクの【3D NAND型フラッシュメモリについて】に行って下
さい。



【SSDのデータ領域について】
SSDのデータ領域
SSDはHDDの様に回転するプラッタに磁気で記憶するのではなく、
記憶素子にNAND型フラッシュメモリを使用しています。

記憶領域は画像の様に一定データ量毎にブロックで区切られてお
り、ブロック単位でデータを格納する様になっています。



【データの格納単位】
前に【フラッシュメモリとは】でフラッシュメモリの記憶素子に
ついて説明していますが、NAND型フラッシュメモリは構造上1
素子(セル)単位でデータを格納できません。

理由を理解するためにはブロック内部の構造を理解する必要があ
るので詳細を書きます。



【ブロック内部の記憶素子の構造】
SSDのデータ領域(ブロック内部)

これはブロック内部の構造を表したものです。

記憶素子間略図
↑の画像は簡略表記した1素子(セル)になります。

ブロック内部は16個以上の素子を数珠繋ぎにしたものを16本以上
並べ、をれに交差する様に制御ゲート用の配線をしている為、
数の素子を一度に書き込み
をする事になり1素子単位でデータを格
納出来ない訳です。



【書き込み読み込みの詳細】
SSDのデータ領域(書き込みと読み込み)
フラッシュメモリとは】で書き込みについて説明してあります
が、ソースとドレインさらに制御ゲートに電圧をかける事でフロ
ーティングゲートに電子を押し込んで書き込む訳ですが、

画像の様な構造上、書き込み方は制御ゲートの配線で横一列に繋
いだ記憶素子を一度に書き換えることになります。

この最小書き換え単位ページと呼びます。

画像は数珠繋ぎのbit lineを並べた数だけ一度に書き換えている事
になります。

画像のページ内のデータを左から5本目まで表すと、00101を書
き込んでいると言う事を表しています。

尚、読み込みについてもページ単位で行われます。



【書き換えと消去】
SSDのデータ領域(消去)
NAND型フラッシュメモリは電子入れるか出す事でデータを識
別しているのと書き込みの仕様上、効率が悪い為一部を書き換え
たり上書きする
事が出来ません。

その為、bit linとWord lineで接続されたブロック単位で一度記
憶素子からすべて電子を抜いた状態にしてから改めて入れ直すと
いう事をやっています。

尚、ちょっとデータが変わるだけでもブロック内の全データが書
き直しになる
為、劣化が早まるという問題があります。



【書き換えの仕様で起きる問題】
【データの書き込み速度が極端に落ちる】

上記した様にブロック単位でデータを消去して書き換えている訳
ですが、

空きブロックがある内は同じ場所を頻繁に使用しない様にデータ
を別ブロックに振り分けているので0からの書き込み速度を保て
ます。

しかし、空きブロックをすべて使用した時点で書き換えが発生す
様になる為、元データを消去する作業が加わって書き込み速度
が遅くなります。

一定期間使用していると、急に書き込み速度が遅くなるのは上記
の仕様が原因です。

一応OS上から開きブロックの認識になっている場所のデータをバ
ックグラウンドで定期的に削除するTrimという機能はありますが、

間違ってOS上でデータを消した場合復元が不可能になる可能性も
あるので注意が必要です。


【データがブロック単位で消失する】
データを書き換える時にエラーが発生した場合、ブロック単位で
消去しているので、ブロック全体のデータが消失してしまいます。

また、最近のSSDはキャッシュ(一時的にデータを保存する記憶装
置)にも不揮発性のフラッシュメモリを使用して突然の電源断でデ
ータが消失しない様にしていますが、

キャッシュに揮発性のメモリを使用している場合電源断でブロッ
ク単位でデータが消失する事もあります。



【アロケーションユニットサイズ】
SSDの場合HDDと違ってページ最小書き込み容量がデフォルト
の値になります。

一応フォーマットにページの未満のサイズはありますが、仮想的
に小容量でデータを格納しようとする為、書き換えが発生しやす
くなるのでデフォルトよりも容量を少なくするのは止めた方が良
いでしょう。

尚、上記した様にブロック単位で書き換えをする仕様なので、
ロック毎の容量に近づける
と効率が良くなると思われます。
(但しファームでデフォルトサイズに最適化されている場合は除く)



【フォーマット時の注意】
ストレージ(HDD,SSD)の増設の仕方】でも注意していますが、
NAND型フラッシュメモリの記憶素子デフォルトの値は1(MLCだ
11)です。

だから、フルフォーマット(0で領域をすべて埋める)をしてしまう
と全ブロックがはじめから埋まってしまうので、

クイックフォーマットチェックを外してはいけません

初期導入時は注意してください。



【関連記事】

フラッシュメモリとは
3D NAND型フラッシュメモリについて


このBlogはBlogランキングに参加しています。
役に立ったと思った方はクリックをお願いします。




総合情報に戻る

TOPに戻る

| ハードウェア | 20:30 | comments:0 | trackbacks:0 | TOP↑

COMMENT















非公開コメント


TRACKBACK URL

https://pcnomori.blog.fc2.com/tb.php/230-8b95bbaf

TRACKBACK

PREV | PAGE-SELECT | NEXT