実際の製品のフラッシュメモリの仕様を見てみましょう。
図3に32ビットマイコン「STM32L476」(STマイクロエレクトロニクス製)のリファレンスマニュアルと、データシートから抜粋したフラッシュメモリの仕様を示します。
フラッシュメモリの消去単位はページ(2048バイト)とバンク、全体の3種類です。また、書き換え回数は10kcycles(1万回)ですので、図2の例のように仮想アドレス空間を256バイトとした場合は、16万回書き換え可能になります。
図2で示した例ではページ0とページ1の2ページだけでしたが、図3のSTM32L476にはページがバンク1だけで256ページあります。従って、さらにページを増やして使うと、書き換え回数を増やすことができます。また、仮想アドレス空間を256バイトよりも少なくすると、さらに書き換え回数を増やすことができます。
ただし、ページ数を増やした場合、仮想アドレス空間と実メモリ空間の相関および書き込み回数を把握することが複雑になる、という点に注意が必要です。システム設計者は、これらを集中的に管理するアルゴリズムを作ってプログラムに実装することをお勧めします。全てのページが同じ割合で使用され、各ページの書き込みサイクル数が均等になるようにしてください。また、総書き込みサイクル数がフラッシュメモリのスペックを超えないように管理する必要もあります。
フラッシュメモリをEEPROMとして使うためのソフトウェアは、マイコンメーカーが提供している場合があります。例に挙げたSTM32L476では、「EEPROM emulation in STM32F10x microcontrollers」*)というライブラリが提供されています(詳細については、実際のプログラムと説明書を確認してください)
*)このライブラリは「STM32F10x」というマイコンをベースに作られていますが、STM32L476などの「STM32ファミリ」の各製品に適用可能な互換性があります
(次の記事を読む)
Copyright © ITmedia, Inc. All Rights Reserved.