|
top >
技術情報 >
「Interface」 2004年12月号
|
フラッシュ・ファイル・システムと電源障害耐性
|
組み込みシステムにおいてもっとも忌み嫌われるのは,応答時間が読めないことです.たとえシステムにとって最悪の状況に遭遇したとしても,
一定時間で応答が帰ってくることがわかっていれば,以後の対策を施すプログラムを実行することができます.しかし,いつ制御が帰ってくるかわからないのでは,
事前に対応策を組み込んでおくこともできません.
「やってみなければわからない」で許されるのは,試作研究の領域であり,最終商品に搭載されるプログラムにおいては,やれば必ずこうなる,
少なくともここまではがんばってそれ以上はあきらめる,といった具体的な線が把握できないとシステム設計として許容できません.
筆者の会社で開発したフラッシュ・ファイル・システムFugue(フーガ)の設計においては,応答時間もさることながら,
瞬断発生時にどこまでデータの損傷が発生するのかを事前に提示できることを重要なポイントとしました.つまり,電源断が起きた場合に,どこまでを保証し,
何をあきらめるのかを明確に上位プログラムに提示できることを必須要件にしたのです.
そのためには,見かけ上の高速化を演出するための内部キャッシュを排除したり,
フラッシュへの書き込み処理を吟味して不確定状態のメモリ・ブロックを発生させないといったさまざまなくふうを施しました.
また,ファイル・システムを構成する各モジュールの責任分担を明確にして,フラッシュ・ドライバからファイル・システムまで各階層において,
それぞれが遵守すべき項目を定めたために各層のモジュールの独立性が向上し,信頼性も高くなりました.
|
|
|
|
|
|