
SSD(Solid State Drive)を利用する際に、内部記憶媒体としてNAND Flash メモリーが使用されています。実際にはSATA/mSATA/M.2/CFlash/CF/SDなど さまざまな形態がありますが、この基本は替りありません。
SSDにおける電断対策と記憶障害対策については、NAND Flashメモリーの特性から問題をとらえることができると言えるでしょう。
SSDのデータはNAND Flashメモリーのデータ記憶によって保持されます。また この記憶の中心は1ビットのデータを電子として保持されます。NAND Flashが登場してしばらくの期間は、記憶素子ひとつに0/1レベルで電子を保持することで記憶されていました(SLC/Sigle Level Cell)。
その後、高密度化を図るために記憶素子ひとつに対し 複数の電子レベルを保持させる技術が進んできました(MLC/Multi Level Cell) (TLC/Triple Level Cell)。
記憶素子に電子を充填する方式であるために、NAND Flashでは次のような記憶障害が存在します。
・ データ保持不良(Retention Loss)
書き込んだデータが時間とともに保持不良により劣化する。(電子レベルが劣化する)
・ 読み出し障害(Read Disturb)
読み出しによるデータ障害およびアクセス動作により周辺のデータセルに障害を起こす。
・ プログラム障害(Program Disturb)
データ書込み時のデータ障害およびアクセス動作により周辺のデータセルに障害を起こす。
・ 書き換え劣化(Program/Erase Cycling)
消去や書込みを繰り返すことにより記憶素子として劣化してくる。
ファームウェア
さて、ここで重要なポイントは「正常に書き込まれたデータ」が"読み出し動作"や、"書込み動作"で対象となったデータだけではなく 、周辺のデータにさえも障害を与える可能性があるということです。
この障害の対策についてはSSDのファームウェアが担っています。
SSDに内蔵されているファームウェアが、これらの障害を回避する動作を行います。
・ECC (Error Correction Code)データを書込みデータと合わせ書込み、読出し時にECCチェックを行い必要であれば訂正します。
・ ECCエラーが起きたデータは 別の場所に移動させ、書込み・リフレッシュ再生させます。特にデータ保持不良になりかけたデータをこの方法で救済します。
・ 書込み不良や消去エラーが起きた場所(ブロック)は再利用されないように管理します。
・ ファームウェアが定期的に巡回して、障害を起こしかけているデータをリフレッシュさせます。
・ 書き換え場所が全体に均等に回るように処理します。(WareLeveling)
SLC/MLC/TLC による違い
SLC NANDでは1素子1ビットの記憶でしたが、MLC/TLC NANDでは1素子で複数ビットを保持するために、上記の記憶障害の影響の頻度が増すことになります。
産業用高信頼性SSDでは、SLC NANDが利用されているのは この理由によります。
リフレッシュ動作は電源が必要
ファームウェアが動作していれば行うさまざまな回避動作をバックグラウンドで行うため、SSDの電源は供給したままの方がよいという事になります。
データロストが発生した場合
ここで、注意点としては、上記の記憶障害についてファームウェアが対処しきれない場合、データロストが起こりうるという事です。この場合、「システムが起動できない」「データに障害が起きる」といった障害となります。
電源断が起きた場合、電源電圧が低下していく時間がmsecオーダーで発生します。
通常CPUボードでは電源低下を検知した場合の対策は、すぐにCPUリセットすることです。CPUリセットが発生するとソフトウェア的な動作を強制的に停止させます。
SSDにおける電断障害は、ファームウェアが内部でNAND Flashへの書込み/消去動作を行っている途中で、電源低下が起こる可能性によって起されることになります。
現在のSSDでは、書込み/読出し動作を高速にするために内部キャッシュメモリーを持っており、OSサイドで電断リセットによりソフトが停止しても、ファームウェアが内部キャッシュメモリーの内容をNAND Flashへ書込み/消去動作を継続している可能性があります。
高信頼性SSDでは上記の電源障害時のトラブルを解消するためにPLP(Power Loss Protection)機能を持ったものが存在します。このPLP(電源断保護)機能を持ったSSDで電断が発生した場合、内蔵コンデンサで数msec~数10msecの間で電源を保持し、内蔵ファームウェアがNAND Flashの書込み/消去をコントロールして電源断保護を実現します。
注意点はPLP機能はNAND Flashへの書込み/消去に対して電断保護を実現していても、
OSの観点からファイルシステムとして保護を実現しているわけではないという点です。
電断後の再起動で、システムが起動しないという障害を避けるために必要なSSD環境の構築の方法は以下のようになります。
・SLC NANDを利用しているSSDを用いる。(記憶障害を起こしにくい)
・過去から実績が積まれたファームウェアが搭載されているSSDを用いる。
ECC訂正が組み込まれ記憶障害に対策されている。
・PLP(電源断保護/Power Loss Protection)機能を搭載したSSDを用いる。
そしてソフトウェアサイドからは
・OSサイドで復旧可能なファイルシステムを利用する。
Journaling File System, Power Safe File System …
ここで注意しなければならないのは、最後にSSDに書込みを行っているデータについては保護されないという点です。
PLP機能を搭載したSSDを用い、かつJournaling File System(NTFS,ext3,ext4,..)でどの程度保護がされるかについては検証が必要となります。
(掲載日 2026年4月30日)
Copyright © YAMASHITA SYSTEMS CORP All Rights Reserved.