フラッシュロムはバグの巣窟

2020年2月3日バグの巣

データが蒸発する

TLCのNand型フラッシュロムは書き換え上限が数千回程度なので注意が必要というお話をしましたが、実はNand型のフラッシュロムはもう一つとても厄介な特徴を持っています。それは、時間がたつとデータが消えてしまう、という物です。もちろんどんなフラシュロムでも何十年とか何百年とかの長い時間が経つとデータが消えてしまいますが、普通はそれまでに装置そのものが壊れて無くなるのでフラッシュロムのデータが消える事は問題にはなりません。

例えばが、MLCのNand型フラッシュロムは条件が悪いと10日もすると記憶したデータが消えてしまいます。どんな条件かというと、書き換え上限回数に近い3千回程度の書き換えを行った物で周囲温度が60度程度という条件です。ちなみに周囲温度が70度なら3日程度でデータが消えます。周囲温度が60度とか70度というと、とても過酷な条件のようにも見えますが、夏の直射日光の下に停車している車の室内ならこの程度の温度にはなっています。

もし消えたデータがプログラムだとするとその装置は電源を入れても動かなくなってしまうので、かなり困りものです。そうならない様に、Nand型のフラッシュロムを使う時には、いろいろな注意が必要になってきます。 ちなみに TLCのNand型フラッシュロムは構造上MLCのNand型フラッシュロムよりもさらに短い期間でデータが消えてしまいます。ただ、グータラ親父の会社ではさすがにTLCのNand型フラッシュロムは製品には使わなかったので、どの程度の時間でデータが消えるのか情報が無かったので良く知りません。

SSDやSDカードやMMCはまあ大丈夫です

これまで紹介してきたフラシュロムの特徴は、SSDやSDカードやMMCに使われているフラッシュロムでも同じです。しかしSSDやSDカードやMMCでは、内蔵されたコントローラのプログラムに、これらの特徴というか問題点に対応するための処理が組み込まれているので、実際の使用時に問題になる事はあまりません。 それぞれの取り扱い説明書には使用にあたっての注意点も書いてあるので、その注意点を守っていれば大丈夫です。

しかしフラッシュロムを生の素子として自社の回路に組み込んで、ソフトウエアで直接フラッシュロムを使う場合には、ここで紹介したような特徴が悪影響を与えないように、注意深く設計・実装をする必要があります。どれも、開発初期の段階では問題なくて暫く使っていると問題が発覚するので、ソフトウエアの時限爆弾バグと同じように、問題が起きた時の影響範囲が広くなるので、皆さんも注意して扱って下さい。

バグの巣に戻る