(57)【要約】【課題】フラッシュメモリに保存しているデータの書き込みを行う場合の新しいデータの書き込み、古いデータの消去の一連の動作時に、停電などの事故があったときでも、フラッシュメモリに書き込み前のデータが保存されている状態または書き込み後の新しいデータが保存されている状態に復元できるフラッシュメモリを用いた装置及びそのフラッシュメモリへのデータの書き込み方法を提供する。【解決手段】フラッシュメモリを用いた装置１において、フラッシュメモリ１１は記憶領域として少なくとも３つのページ２ａ，２ｂ，２ｃ…を備え、各ページ２ａ，２ｂ，２ｃ…の記憶領域が、書き込まれる正データの２倍以上の容量を有し、現在のページ２ａの記憶領域のみにデータＤｐが書き込まれている状態で、新しいデータを書き込むとき、次のページ２ｂの記憶領域に新しいデータＤｆを書き込んだ後、現在のページ２ａのデータＤｐを消去するものである。【選択図】図１
2010044504.tif 000002
【特許請求の範囲】
【請求項１】
フラッシュメモリを用いた装置において、
前記フラッシュメモリは記憶領域として少なくとも３つのページを備え、
現在のページにデータが書き込まれている状態で、次のページに新しいデータを書き込んだ後、前記現在のページのデータを消去することを特徴とするフラッシュメモリを用いた装置。
【請求項２】
電源を投入したとき、前記現在のページのデータが壊れていないかどうかを判断し、そのデータが壊れていない場合、前記次のページの新しいデータが壊れていないかどうかを判断し、その新しいデータも壊れていない場合、前記現在のページのデータを消去する請求項１記載のフラッシュメモリを用いた装置。
【請求項３】
前記各ページへのデータを書き込みは所定の順序で循環に行われる請求項１または２記載のフラッシュメモリを用いた装置。
【請求項４】
データとして正データと該正データの反転データとを保存する請求項１〜３いずれかに記載のフラッシュメモリを用いた装置。
【請求項５】
フラッシュメモリを用いた装置のフラッシュメモリへのデータの書き込み方法において、
前記フラッシュメモリは記憶領域として少なくとも３つのページを備え、
現在のページにデータが書き込まれている状態で、次のページに新しいデータを書き込んだ後、前記現在のページのデータを消去することを特徴とするフラッシュメモリを用いた装置のフラッシュメモリへのデータの書き込み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリを用いた装置及びそのフラッシュメモリへのデータの書き込み方法に関する。
【背景技術】
【０００２】
近年、電子機器に備えられたＭＣＵ（Micro Controller Unit）などのコントローラには、電子機器で使用する各種のデータを記憶するためのフラッシュメモリ（フラッシュＲＯＭ）が内蔵されている。このフラッシュメモリは、大量のデータを一括処理するのに向いているため、コントローラにＥＥＰＲＯＭ（Electrical Erasable Programmable Read Only Memory）を外付けし、そのＥＥＰＲＯＭで少数のデータを処理することが従来から広く行われている。
【０００３】
なお、この出願の発明に関連する先行技術文献情報としては、次のものがある。
【０００４】
【特許文献１】特開２００７−７２６９５号公報
【特許文献２】特開２００７−４１７９８号公報
【特許文献３】特開平１１−２７２５６６号公報
【特許文献４】特開平１０−１６１９４２号公報
【特許文献５】特開平１０−１２４４０３号公報
【特許文献６】特開平８−３０５１５号公報
【特許文献７】特開平１０−９７４７５号公報
【特許文献８】特開２００２−２６８９５５号公報
【特許文献９】特開２００３−１５７２０４号公報
【特許文献１０】特開２００５−３３９４５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、従来から使用されているＥＥＰＲＯＭは、コントローラに外付けして設けられるため、電子機器の部品点数が増えて電子機器が大型になったり、回路基板の実装面積が大きくなったりする問題がある。
【０００６】
また、ＥＥＰＲＯＭはセル面積が大きいので、製造コスト面では不利であり、ＥＥＰＲＯＭを用いると電子機器が高価になりやすい。
【０００７】
そこで、ＥＥＰＲＯＭに保存していたデータを、ＭＣＵに内蔵されているフラッシュメモリに保存することで、部品点数やコストの低減を図ることが提案されている。
【０００８】
図４に従来のフラッシュメモリを用いた装置４１の動作を示す。
（ステップＳ４２）「Start」
スタートする。
（ステップＳ４３）「書き込み要求あり？」
フラッシュメモリへの新しいデータの書き込み要求があるかどうかを判断する。
（ステップＳ４４）「ページを消去」
書き込み要求がある場合（Ｙｅｓ）、フラッシュメモリのページに保存されているデータを消去する。
（ステップＳ４５）「ページへ新しいデータを書き込み」
そのページに新しいデータを書き込む。
（ステップＳ４６）「End」
終了する。
（ステップＳ４６）「End」
ステップＳ４３において書き込み要求がない場合（Ｎｏ）には、終了する。
【０００９】
しかしながら、従来のフラッシュメモリを用いた装置４１は、フラッシュメモリがページ単位でデータを一括消去する構造であるため、ステップＳ４４のページに保存されたデータを消去する時やステップＳ４５のページに新しいデータを書き込む時に、途中で停電などの事故があった場合、データが失われてしまい、最悪すべてのデータが破壊されるという問題がある。
【００１０】
そこで、本発明の目的は、フラッシュメモリにデータの書き込みを行う場合の新しいデータの書き込み、古いデータの消去の一連の動作時に、停電などの事故があったときでも、フラッシュメモリに書き込み前のデータが保存されている状態または書き込み後の新しいデータが保存されている状態に復元できるフラッシュメモリを用いた装置及びそのフラッシュメモリへのデータの書き込み方法を提供することにある。
【課題を解決するための手段】
【００１１】
前記目的を達成するために創案された請求項１に係る発明は、フラッシュメモリを用いた装置において、前記フラッシュメモリは記憶領域として少なくとも３つのページを備え、現在のページにデータが書き込まれている状態で、次のページに新しいデータを書き込んだ後、前記現在のページのデータを消去することを特徴とするフラッシュメモリを用いた装置である。
【００１２】
請求項２に係る発明は、電源を投入したとき、前記現在のページのデータが壊れていないかどうかを判断し、そのデータが壊れていない場合、前記次のページの新しいデータが壊れていないかどうかを判断し、その新しいデータも壊れていない場合、前記現在のページのデータを消去する請求項１記載のフラッシュメモリを用いた装置である。
【００１３】
請求項３に係る発明は、前記各ページへのデータの書き込みは所定の順序で循環に行われる請求項１または２記載のフラッシュメモリを用いた装置である。
【００１４】
請求項４に係る発明は、データとして正データと該正データの反転データとを保存する請求項１〜３いずれかに記載のフラッシュメモリを用いた装置である。
【００１５】
請求項５に係る発明は、フラッシュメモリを用いた装置のフラッシュメモリへのデータの書き込み方法において、前記フラッシュメモリは記憶領域として少なくとも３つのページを備え、現在のページにデータが書き込まれている状態で、次のページに新しいデータを書き込んだ後、前記現在のページのデータを消去することを特徴とするフラッシュメモリを用いた装置のフラッシュメモリへのデータの書き込み方法である。
【発明の効果】
【００１６】
本発明によれば、フラッシュメモリにデータの書き込みを行う場合の新しいデータの書き込み、古いデータの消去の一連の動作時に、停電などの事故があったときでも、フラッシュメモリに書き込み前のデータが保存されている状態または書き込み後の新しいデータが保存されている状態に復元できる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の好適な実施形態を添付図面にしたがって説明する。
【００１８】
図１は、本発明の好適な実施形態を示すフラッシュメモリを用いた装置の主要部の構成図と、その書き込み方法の一例を説明する図であり、図１（ａ）は定常状態、図１（ｂ）は書き込み中、図１（ｃ）は書き込み完了、図１（ｄ）は消去中を示す。
【００１９】
図１（ａ）〜図１（ｄ）に示すように、本実施形態に係るフラッシュメモリを用いた装置１は、１つのフラッシュメモリ１１を備える。このフラッシュメモリ１１は、記憶領域として３つのページ２ａ，２ｂ，２ｃを備える。フラッシュメモリ１１は、記憶領域を４つ以上備えていても良い。
【００２０】
本実施形態では、各ページ２ａ，２ｂ，２ｃの記憶領域が、実際のデータである正データの２倍以上の容量を有する。ページには正データと、正データの各ビットを反転した反転データを保存する。１つのページサイズは、正データ、反転データ、順次増加する新しいデータ、冗長部Ｒに格納される管理情報などの冗長データが格納できる容量とする。
【００２１】
ページ２ａ，２ｂ，２ｃの記憶領域は、フラッシュメモリ１１に、メモリのアドレス上位からページ２ａ，２ｂ，２ｃの順で設けられる。電源を投入したときの初期動作では、アドレス最上位のページ２ａにアクセスしにいく。通常の動作時では、ページ２ａ，２ｂ，２ｃ，２ａ，２ｂ…のように所定の順序で循環にアクセスする。
【００２２】
例えば、図１（ａ）のような定常状態において、ページ２ｂにデータが保存されてページ２ｂが現在のページであるとすると、その後のデータ書き込み順序は、ページ２ｃ、ページ２ａ、ページ２ｂとなり、３つのページ２ａ〜２ｃ間で循環する。
【００２３】
フラッシュメモリ１１としては、ＮＡＮＤ型でもＮＯＲ型でも使用できるが、本実施形態では、大容量化が容易なＮＡＮＤ型フラッシュメモリを用いた。
【００２４】
以下の説明において、「現在のページ」とは、定常状態においてデータが保存されているページであり、「次のページ」とは、ページへのアクセス順序において「現在のページ」の次にアクセスされるページであり、「前のページ」とは、「現在のページ」の前にアクセスされたページである。
【００２５】
フラッシュメモリを用いた装置１では、３つのページ２ａ、ページ２ｂ、ページ２ｃのうちいずれかに現在のページとしてデータが保存されており、他のページ（前のページと次のページ）の記憶領域のデータは消去されている。新しいデータの書き込みを行う場合、新しいデータを次のページの記憶領域に書き込んだ後、現在のページのデータを消去する。以後同様に、さらなる新しいデータを書き込むページを順次変更していく。
【００２６】
フラッシュメモリを用いた装置１には、フラッシュメモリ１１の他にも、図示しないＲＡＭ（例えば、後述する図３参照）を備える。新しいデータの書き込みを行う場合、例えば、ライタなどのプログラム機器、あるいは電子機器に備えられたＭＣＵなどの制御手段（コントローラ）を用いて、ＲＡＭに現在のページのデータをいったんコピーし、そのコピーしたデータに変更分のデータを加えて新しいデータとし、この新しいデータをＲＡＭから読み出し、これを次のページの記憶領域に書き込む。新しいデータ全てを外部からＲＡＭに記憶しても良い。
【００２７】
正データの例として、電子機器の１〜３月までの合計使用時間などがある。この場合、変更分のデータの例として、電子機器の４月中の合計使用時間であり、新しいデータは、電子機器の１〜４月までの合計使用時間である。
【００２８】
フラッシュメモリを用いた装置１では、ページに保存されたデータが壊れていないかどうかを判断する。本実施形態では、ページに保存された正データと、反転データとが整合するか否かを判断する。整合する場合は、そのページに正しく正データと反転データが保存されている。したがって、データは壊れていないと判断される。整合しない場合は、そのページに正しく正データと反転データが保存されていない。したがって、データは壊れていると判断される。ここで整合するとは、正データと、反転データの反転とが同じであることをいう。
【００２９】
次に、フラッシュメモリを用いた装置１の書き込み方法の動作を図１（ａ）〜図１（ｄ）、図２（ａ）および図２（ｂ）を用いて説明する。
【００３０】
図１（ａ）における書き込み動作前の定常状態は、ページ２ｂが現在のページであり、ページ２ａが前のページであり、ページ２ｃが次のページである。現在のページであるページ２ｂには正データＤｐ＋と反転データＤｐ−とからなるデータＤｐが保存されている。ページ２ａとページ２ｃは消去済み（すべて１）である。
【００３１】
フラッシュメモリを用いた装置１の新しいデータの書き込みの一連の動作（データ消去、データ書き込み、ページ計算、判断）は、ライタなどのプログラム機器、あるいは電子機器に備えられたＭＣＵなどの制御手段で行う。
【００３２】
新しいデータの書き込み動作；
（ステップＳ２０ａ）「Start」
図２（ａ）に示すように、フラッシュメモリを用いた装置１は、現在のページ（ページ２ｂ）にデータＤｐが保存されている定常状態（図１（ａ））からスタートする。
（ステップＳ２１ａ）「書き込み要求あり？」
フラッシュメモリ１１に新しいデータＤｆの書き込み要求があるかどうかを判断する。
（ステップＳ２２ａ）「次のページを計算」
書き込み要求がある場合（Ｙｅｓ）、次のページを計算する。図１（ａ）において、現在のページはページ２ｂであるため、アクセス順序により、ページ２ｃが次のページとなる。
（ステップＳ２３ａ）「次のページに新しい正データと反転データを書き込む」
次のページ（ページ２ｃ）に新しいデータＤｆの正データＤｆ＋と反転データＤｆ−を書き込む（図１（ｂ））。本実施形態では、正データＤｆ＋、反転データＤｆ−の順に書き込む（書き込む順を逆にしても以降の動作は同様）。
（ステップＳ２４ａ）「現在のページを消去」
現在のページ（ページ２ｂ）のデータＤｐを消去する。本実施形態では、正データＤｐ＋、反転データＤｐ−の順に消去する（消去順を逆にしても以降の動作は同様）。
（ステップＳ２５ａ）「次のページを現在のページとする」
そして、次のページ（ページ２ｃ）を現在のページとする。
（ステップＳ２６ａ）「End」
終了する。
（ステップＳ２６ａ）「End」
ステップＳ２１ａで書き込み要求がない場合（Ｎｏ）には、終了する。
【００３３】
フラッシュメモリを用いた装置１は、図２（ａ）で説明したデータ書き込み中に、停電、電源ＯＦＦなどの障害（事故）が発生し、その障害が復旧した時（電源再投入時など）、図２（ｂ）に示した動作を行う。
【００３４】
電源ＯＦＦの状態から電源を投入したときの動作；
（ステップＳ２０ｂ）「Start」
電源を投入してスタートする。
（ステップＳ２１ｂ）「現在のページを初期化する」
現在のページを初期化する。図１の実施形態では、電源を投入したとき、フラッシュメモリ１１のアドレス最上位であるページ２ａにアクセスし、ページ２ａを現在のページとする。
（ステップＳ２２ｂ）「現在のページの正データと反転データが整合しているか検査する」
現在のページの正データと反転データが整合しているかを検査する。
（ステップＳ２３ｂ）「整合している？」
現在のページの正データと反転データが整合しているか否かを判断する。
（ステップＳ２４ｂ）「次のページを計算し、それを現在のページとする」
整合していない場合（Ｎｏ）には、次のページを計算し、それを現在のページとし、ステップＳ２２ｂに戻る。
（ステップＳ２５ｂ）「次のページを計算し、次のページも正データと反転データが整合しているか検査する」
現在のページのデータが整合している場合（Ｙｅｓ）は、次のページを計算し、次のページの正データと反転データが整合しているか検査する。
（ステップＳ２６ｂ）「整合している？」
次のページの正データと反転データが整合しているか否かを判断する。
（ステップＳ２７ｂ）「次のページを現在のページとする」
次のページの正データと反転データが整合している場合（Ｙｅｓ）は、次のページを現在のページとする。
（ステップＳ２８ｂ）「他のページを全消去」
他のページ（前のページと次のページ）を全消去する。
（ステップＳ２９ｂ）「End」
終了する。
（ステップＳ３０ｂ）「他のページを全消去」
ステップＳ２６ｂにおいて次のページの正データと反転データが整合していない場合（Ｎｏ）には、他のページ（前のページと次のページ）を全消去する。
（ステップＳ２９ｂ）「End」
終了する。
【００３５】
ここで、フラッシュメモリを用いた装置１に、途中で電源がＯＦＦになるなどの障害が発生したとき、どのようにデータを復元することができるかを、図１（ａ）〜図１（ｄ）を用いて、より詳細に説明する。
【００３６】
電源がＯＦＦとなるタイミングは、図１（ａ）の定常状態、図１（ｂ）の書き込み中、図１（ｃ）の書き込み完了、図１（ｄ）の消去中の４つに分けられる。データの復元の動作は、図２（ｂ）で説明したフローチャートにしたがって行う。
【００３７】
図１（ａ）の定常状態で電源ＯＦＦとなった時の復元動作；
（ステップＳ２０ｂ）「Start」
電源を投入する。
（ステップＳ２１ｂ）「現在のページを初期化する」
フラッシュメモリ１１のアドレス最上位であるページ２ａにアクセスし、ページ２ａを現在のページとする。
（ステップＳ２２ｂ）「現在のページの正データと反転データが整合しているか検査する」
現在のページであるページ２ａの正データと反転データが整合しているかを検査する。
（ステップ２３ｂ）「整合している？」
ページ２ａは消去済み（すべて１）であるため整合していないと判断する。
（ステップＳ２４ｂ）「次のページを計算し、それを現在のページとする」
アクセス順序により次のページであるページ２ｂを現在のページとする。
（ステップＳ２２ｂ）「現在のページの正データと反転データが整合しているか検査する」
現在のページであるページ２ｂの正データと反転データが整合しているかを検査する。
（ステップ２３ｂ）「整合している？」
ページ２ｂに正データＤｐ＋と反転データＤｐ−が保存されているため整合していると判断する。
（ステップＳ２５ｂ）「次のページを計算し、次のページも正データと反転データが整合しているか検査する」
アクセス順序により次のページはページ２ｃであり、次のページであるページ２ｃの正データと反転データが整合しているかを検査する。
（ステップＳ２６ｂ）「整合している？」
ページ２ｃは消去済み（すべて１）であるため整合していないと判断する。
（ステップＳ３０ｂ）「他のページを全消去」
他のページ（前のページと次のページ）であるページ２ａとページ２ｃを全消去する。
（ステップＳ２９ｂ）「End」
終了する。
【００３８】
これにより、ページ２ｂを現在のページとする図１（ａ）の定常状態に復元される。
【００３９】
図１（ｂ）の書き込み中に電源ＯＦＦとなった時の復元動作；
（ステップＳ２０ｂ）「Start」
電源を投入する。
（ステップＳ２１ｂ）「現在のページを初期化する」
フラッシュメモリ１１のアドレス最上位であるページ２ａにアクセスし、ページ２ａを現在のページとする。
（ステップＳ２２ｂ）「現在のページの正データと反転データが整合しているか検査する」
現在のページであるページ２ａの正データと反転データが整合しているかを検査する。
（ステップ２３ｂ）「整合している？」
ページ２ａは消去済み（すべて１）であるため整合していないと判断する。
（ステップＳ２４ｂ）「次のページを計算し、それを現在のページとする」
アクセス順序により次のページであるページ２ｂを現在のページとする。
（ステップＳ２２ｂ）「現在のページの正データと反転データが整合しているか検査する」
現在のページであるページ２ｂの正データと反転データが整合しているかを検査する。
（ステップ２３ｂ）「整合している？」
ページ２ｂに正データＤｐ＋と反転データＤｐ−が保存されているため整合していると判断する。
（ステップＳ２５ｂ）「次のページを計算し、次のページも正データと反転データが整合しているか検査する」
アクセス順序により次のページはページ２ｃであり、次のページであるページ２ｃの正データと反転データが整合しているかを検査する。
（ステップＳ２６ｂ）「整合している？」
ページ２ｃはデータの一部しか保存されていないため整合していないと判断する。
（ステップＳ３０ｂ）「他のページを全消去」
他のページ（前のページと次のページ）であるページ２ａとページ２ｃを全消去する。
（ステップＳ２９ｂ）「End」
終了する。
【００４０】
これにより、ページ２ｂを現在のページとする図１（ａ）の定常状態に復元される。
【００４１】
図１（ｃ）の書き込み完了時に電源ＯＦＦとなった時の復元動作；
（ステップＳ２０ｂ）「Start」
電源を投入する。
（ステップＳ２１ｂ）「現在のページを初期化する」
フラッシュメモリ１１のアドレス最上位であるページ２ａにアクセスし、ページ２ａを現在のページとする。
（ステップＳ２２ｂ）「現在のページの正データと反転データが整合しているか検査する」
現在のページであるページ２ａの正データと反転データが整合しているかを検査する。
（ステップ２３ｂ）「整合している？」
ページ２ａは消去済み（すべて１）であるため整合していないと判断する。
（ステップＳ２４ｂ）「次のページを計算し、それを現在のページとする」
アクセス順序により次のページであるページ２ｂを現在のページとする。
（ステップＳ２２ｂ）「現在のページの正データと反転データが整合しているか検査する」
現在のページであるページ２ｂの正データと反転データが整合しているかを検査する。
（ステップ２３ｂ）「整合している？」
ページ２ｂに正データＤｐ＋と反転データＤｐ−が保存されているため整合していると判断する。
（ステップＳ２５ｂ）「次のページを計算し、次のページも正データと反転データが整合しているか検査する」
アクセス順序により次のページはページ２ｃであり、次のページであるページ２ｃの正データと反転データが整合しているかを検査する。
（ステップＳ２６ｂ）「整合している？」
ページ２ｃは正データＤｆ＋と反転データＤｆ−が保存されているため整合していると判断する。
（ステップＳ２７ｂ）「次のページを現在のページとする」
次のページであるページ２ｃを現在のページとする。
（ステップＳ２８ｂ）「他のページを全消去」
他のページ（前のページと次のページ）であるページ２ｂとページ２ａを全消去する。
（ステップＳ２９ｂ）「End」
終了する。
【００４２】
これにより、新しいデータが保存されたページ２ｃを現在のページとする定常状態に復元される。
【００４３】
図１（ｄ）の消去中に電源ＯＦＦとなった時の復元動作；
電源を投入する。
（ステップＳ２１ｂ）「現在のページを初期化する」
フラッシュメモリ１１のアドレス最上位であるページ２ａにアクセスし、ページ２ａを現在のページとする。
（ステップＳ２２ｂ）「現在のページの正データと反転データが整合しているか検査する」
現在のページであるページ２ａの正データと反転データが整合しているかを検査する。
（ステップ２３ｂ）「整合している？」
ページ２ａは消去済み（すべて１）であるため整合していないと判断する。
（ステップＳ２４ｂ）「次のページを計算し、それを現在のページとする」
アクセス順序により次のページであるページ２ｂを現在のページとする。
（ステップＳ２２ｂ）「現在のページの正データと反転データが整合しているか検査する」
現在のページであるページ２ｂの正データと反転データが整合しているかを検査する。
（ステップ２３ｂ）「整合している？」
ページ２ｂは正データと反転データの一部しか保存されていないため整合していないと判断する。
（ステップＳ２４ｂ）「次のページを計算し、それを現在のページとする」
アクセス順序により次のページであるページ２ｃを現在のページとする。
（ステップＳ２２ｂ）「現在のページの正データと反転データが整合しているか検査する」
現在のページであるページ２ｃの正データと反転データが整合しているかを検査する。
（ステップ２３ｂ）「整合している？」
ページ２ｃは正データＤｆ＋と反転データＤｆ−が保存されているため整合していると判断する。
（ステップＳ２５ｂ）「次のページを計算し、次のページも正データと反転データが整合しているか検査する」
アクセス順序により次のページはページ２ａであり、次のページであるページ２ａの正データと反転データが整合しているかを検査する。
（ステップＳ２６ｂ）「整合している？」
ページ２ａは消去済み（すべて１）であるため整合していないと判断する。
（ステップＳ３０ｂ）「他のページを全消去」
他のページ（前のページと次のページ）であるページ２ｂとページ２ａを全消去する。
（ステップＳ２９ｂ）「End」
終了する。
【００４４】
これにより、新しいデータが保存されたページ２ｃを現在のページとする定常状態に復元される。
【００４５】
上記の通り、本実施形態のフラッシュメモリを用いた装置１によれば、定常状態および書き込み中、書き込み完了、消去中の一連の新しいデータの書き込み動作中において、停電や電源ＯＦＦなどの障害があっても、現在のページに正データと反転データが保存された状態に復元できる。
【００４６】
なお、図２（ｂ）の動作は、フラッシュメモリを用いた装置１を搭載した電子機器の交換時や初期の取り付け時の、交換後又は取り付け後の電源投入時にも適用される。電子機器の製品出荷時、フラッシュメモリにデータが保存されない（必要としない）ケースがある。この場合、フラッシュメモリの３つのページのいずれにもデータが保存されていないため、図２（ｂ）の動作はループし終了しない。これに対し、製品出荷時に、フラッシュメモリの１つのページにダミーのデータを保存しておき、図１（ａ）に示すような定常状態に設定しておくと良い。また、図２（ｂ）の動作において、３つのページ全てが整合しない場合、所定のページ（例えば、ページ２ａ）を現在のページとして終了する手順を含めるようにしても良い。
【００４７】
フラッシュメモリを用いた装置１では、フラッシュメモリ１１とは別に外付けＥＥＰＲＯＭを必要としないため、部品点数削減による高密度実装とコスト低減を実現できる。
【００４８】
また、フラッシュメモリを用いた装置１では、３つのページ２ａ，２ｂ，２ｃを用いることにより、図２（ｂ）のフローチャートの示す手順で、現在のページに正データと反転データが保存された状態に復元することができる。２つのページを用いる場合、書き込み完了時の２つのページ両方にデータが保存されている状態で電源ＯＦＦとなったとき、どちらに新しいデータが保存されているかを判断して復元することができない。したがって、２つのページにページ番号を記憶する領域を設けて、一方のページに新しいデータを書き込む時、新しいページ番号を同時に書き込み記憶させる必要が生じる。本実施形態のフラッシュメモリを用いた装置１では、各ページにページ番号を記憶する領域を設け、各ページにページ番号を記憶させることを行う必要はない。フラッシュメモリを用いた装置１は、所定の手順によって、新しいデータの書き込み完了前に電源ＯＦＦとなった時には元のデータを保存しているページを現在のページとして定常状態に復元し、新しいデータの書き込み完了後に電源ＯＦＦとなった場合は新しいデータを保存しているページを現在のページとして定常状態に復元することができる。
【００４９】
フラッシュメモリを用いた装置１を搭載した電子機器の一例としての光モジュールを、図３を用いて説明する。
【００５０】
図３に示すように、光モジュール３１は、ＭＣＵにフラッシュメモリを用いた装置１を内蔵した１チップの制御手段３２で動作が制御される伝送速度が１０Ｇｂｉｔ／ｓ以上のＳＦＰ（Small Form Factor Pluggable）型の光送受信器である。
【００５１】
この光モジュール３１は、電気信号を光信号に変換して送信するＴＯＳＡ（光送信サブアセンブリ）などの光送信部３３ｔと、その光送信部３３ｔが有するＬＤ（半導体レーザ）を駆動・変調するためのドライバを有する駆動部３４と、受信した光信号を電気信号に変換するＲＯＳＡ（光受信サブアセンブリ）などの光受信部３３ｒと、光受信部３３ｒが有するＰＤ（フォトダイオード）からの電気信号を増幅するアンプなどの増幅部３５とを備える。
【００５２】
図３の例では、ＲＯＳＡ３３ｒと増幅部３５を別体で構成したが、ＲＯＳＡ内に増幅部が含まれるように構成してもよい。
【００５３】
制御手段３２には、光送信部３３ｔ、駆動部３４、光受信部３３ｒ、増幅部３５がそれぞれ接続され、これら各部品と制御手段３２間で低速制御・状態信号が伝送される。光送信部３３ｔには光伝送路として送信用光ファイバ３６ｔが接続され、光受信部３３ｒには光伝送路として受信用光ファイバ３６ｒが接続される。
【００５４】
光モジュール３１は、カードエッジコネクタ３７を有し、スイッチングハブやメディアコンバータなどの上位機器に挿抜自在に設けられる。このため、上位機器と、制御手段３２、光送信部３３ｔ、光受信部３３ｒとがそれぞれ電気的に接続され、これら各部品と上位機器間でも低速制御・状態信号が伝送される。また、上位機器と、駆動部３４、増幅部３５とがそれぞれ電気的に接続され、これらと上位機器間では高速伝送信号が伝送される。
【００５５】
光モジュール３１では、制御手段３２の本発明に係るフラッシュメモリ（Ｆｌｕｓｈ ＲＯＭ）１にファームウェア（組み込みソフトウェア）を保存する。従来、外付けのＥＥＰＲＯＭにファームウェアを保存していた。本発明のフラッシュメモリを用いた装置１を用いると、ファームウェアを記憶したフラッシュメモリを備えた１チップＭＣＵによって実現することで、従来の外付けＥＥＰＲＯＭ削減による高密度実装およびコスト削減を図りながら、故障時の保存データの復元を行うことができる。したがって、光モジュール３１にフラッシュメモリを用いた装置１を用いると有用である。
【００５６】
光モジュール３１において、前述した正データの一例としては、光モジュール３１の種類、製造日などの初期特性データや、累積使用時間、エラー信号の履歴などのユーザによって書き込まれるユーザデータなどがある。
【図面の簡単な説明】
【００５７】
【図１】図１は、本発明の好適な実施形態を示すフラッシュメモリを用いた装置の主要部の構成図と、その書き込み方法の一例を説明する図であり、図１（ａ）は定常状態、図１（ｂ）は書き込み中、図１（ｃ）は書き込み完了、図１（ｄ）は消去中を示す。
【図２】図２（ａ）は図１のフラッシュメモリを用いた装置の書き込み動作を説明するフローチャート、図２（ｂ）は電源を投入したときの動作のフローチャートである。
【図３】図１に示したフラッシュメモリを用いた装置を搭載した電子機器として、光モジュールの一例を示すブロック図である。
【図４】従来のフラッシュメモリを用いた装置の動作を説明するフローチャートである。
【符号の説明】
【００５８】
１  フラッシュメモリを用いた装置
２ａ，２ｂ，２ｃ  ページ
１１  フラッシュメモリ
Ｄｐ  データ
Ｄｆ  新しいデータ
【図１】
2010044504.tif 000003
【図２】
2010044504.tif 000004
【図３】
2010044504.tif 000005
【図４】
2010044504.tif 000006