問題 No.3296
Embedded Flash Memoryを搭載したマイコンを用いて、工場内のセンサーデータを定期的に不揮発領域へ書き込む組込みシステムを開発している。フラッシュメモリの特性である「ブロック単位での消去が必要であること」および「書き換え回数に寿命があること」を考慮した場合、データを長期間安定して保存するためにソフトウェアで実装すべき適切な対策はどれか。
【正解の解説】
書き換え回数が特定のブロックに偏らないように平準化するウェアレベリングを行うとともに、変更のあったデータのみを効率よく管理する。
フラッシュメモリの書き換え寿命を鉛筆の消しゴムに例えると、いつも同じ場所ばかり使っているとそこだけ早く穴が空いてしまいます。ノート全体をまんべんなく使うように工夫するのが「ウェアレベリング」です。これにより特定の場所だけが劣化して壊れるのを防ぎ、システム全体の寿命を大きく延ばすことができます。
スポンサーリンク
【その他の選択肢の解説】
書き換え回数が特定のブロックに偏らないように平準化するウェアレベリングを行うとともに、読み出し速度を向上させる。
試験では「正しい前半部分に、まったく関係のないもっとらしい機能や効果を後半に混ぜる」という引っかけ問題が非常によく使われます。ウェアレベリングはあくまで書き換えの寿命を延ばすための技術であり、読み出しスピードを速くするためのものではないため、この選択肢は不適切となります。
ブロック単位での消去処理を行わずにバイト単位でのダイレクトな書き込みを可能にする領域管理制御機能を追加する。
フラッシュメモリは構造上、消去は「ブロック」というまとまった単位でしか行えないという物理的な制約があります。あたかもRAMのように「1バイトだけピンポイントで書き換える」ということは物理的に不可能なため、この記述はハードウェアの特性に反する誤りとなります。
すべてのセンサーデータを毎回新しいブロックへ順番に順次追記していくことで、古いデータの確実な自動消去を図る。
無限に広い紙であれば追記し続けられますが、マイコンのフラッシュメモリには限られた容量しかありません。古いデータを消去せずにただ追記していくだけでは、あっという間にメモリがいっぱいになってしまい、それ以上データを書き込めなくなる致命的な状態に陥るため誤りです。