マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。47回目は、中級者の方からよく質問される「フラッシュメモリをEEPROMとして使う裏技」についてです。
素朴な疑問から技術トラブルなどマイコンユーザーのあらゆる悩みに対し、マイコンメーカーのエンジニアが回答していく連載「Q&Aで学ぶマイコン講座」。
今回は、中級者から多く寄せられる質問です。
現在、マイコンのデータを保存するために外付けEEPROM(Electrically Erasable Programmable ROM)を使っていますが、通信でデータをやり取りするため時間がかかります。マイコン内蔵のフラッシュメモリをEEPROMとして使うことはできないのでしょうか?
一般的に、フラッシュメモリの書き変え回数はEEPROMよりも少なく、また、消去単位がページ(ブロック、セクタなどの場合もある)なので、ワード単位では、書き込みはできても消去ができません。そのため、頻繁に書き換えるデータを保存するのには適しません。しかし、仮想アドレス空間を定義し、実際にアクセスする実メモリ空間を複数対応させることによって、見かけ上EEPROMのように使うことができます。仮想アドレス空間と実メモリ空間の変換はソフトウェアで行います。
例えば、保存したいデータを、最初はページ0の先頭部分に保存します。このデータを更新する場合、ページ0の別のエリアに書き込みます。さらにデータを更新する場合は、同じページのさらに別のエリアに書き込みます。データ更新は、この操作を繰り返します。この時、システム設計者は最新のデータが入っている実メモリ空間のアドレスを把握しておき、仮想アドレス空間と実メモリ空間の変換をソフトウェアで行う必要があります。
ページ0が満杯になったら、実メモリ空間をページ1に移し、ページ0を消去します。これを繰り返すことによって、見かけ上、フラッシュメモリの書き換え回数を増やすことができ、かつ、ワード単位でアクセスが可能になります(図1)
Copyright © ITmedia, Inc. All Rights Reserved.