JP2002334586A - フラッシュメモリを用いた情報記憶方法および情報記憶プログラム - Google Patents
フラッシュメモリを用いた情報記憶方法および情報記憶プログラムInfo
- Publication number
- JP2002334586A JP2002334586A JP2001136333A JP2001136333A JP2002334586A JP 2002334586 A JP2002334586 A JP 2002334586A JP 2001136333 A JP2001136333 A JP 2001136333A JP 2001136333 A JP2001136333 A JP 2001136333A JP 2002334586 A JP2002334586 A JP 2002334586A
- Authority
- JP
- Japan
- Prior art keywords
- word
- bit
- flash memory
- rewritten
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- Y02B60/1225—
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Read Only Memory (AREA)
Abstract
(57)【要約】
【課題】フラッシュメモリを用いて電源オン時にセット
され正常な電源オフ時にリセットされる動作状態フラグ
を実現する。 【解決手段】フラッシュメモリに64kB程度のメモリ
エリアを確保し、電源オン時および電源オフ時にそれぞ
れ1ビットを“1”から“0”に書き換える。この書き
換えを1ワードの書き換えとして行う。すなわち、FF
hのワードに7Fhを書き込むことで最上位ビットを0
に書き換え、7Fhのワードに3Fhを書き込むことで
第2ビットを0に書き換える。以下同様に対応する値を
書き込むことで順番にビットを“0”にしてゆく。電源
オン時に“0”のビット数が偶数であれば正常であり、
奇数であれば前回異常な電源オフが行われたことが分か
る。
され正常な電源オフ時にリセットされる動作状態フラグ
を実現する。 【解決手段】フラッシュメモリに64kB程度のメモリ
エリアを確保し、電源オン時および電源オフ時にそれぞ
れ1ビットを“1”から“0”に書き換える。この書き
換えを1ワードの書き換えとして行う。すなわち、FF
hのワードに7Fhを書き込むことで最上位ビットを0
に書き換え、7Fhのワードに3Fhを書き込むことで
第2ビットを0に書き換える。以下同様に対応する値を
書き込むことで順番にビットを“0”にしてゆく。電源
オン時に“0”のビット数が偶数であれば正常であり、
奇数であれば前回異常な電源オフが行われたことが分か
る。
Description
【0001】
【発明の属する技術分野】この発明は、フラッシュメモ
リを節約し、イレース回数を少なくして情報を書き込む
情報記憶方法および情報記憶プログラムに関する。
リを節約し、イレース回数を少なくして情報を書き込む
情報記憶方法および情報記憶プログラムに関する。
【0002】
【発明が解決しようとする課題】電池で駆動される小型
の電子機器や、常時使用される装置でなく使用されると
きだけ商用電源に接続されるような電子機器は、電源が
オフされている間の揮発性メモリのバックアップが困難
であるため、電気的にデータの書き換えが可能なROM
であるフラッシュメモリを設け、このフラッシュメモリ
に情報を書き込むようにしたものがある。
の電子機器や、常時使用される装置でなく使用されると
きだけ商用電源に接続されるような電子機器は、電源が
オフされている間の揮発性メモリのバックアップが困難
であるため、電気的にデータの書き換えが可能なROM
であるフラッシュメモリを設け、このフラッシュメモリ
に情報を書き込むようにしたものがある。
【0003】フラッシュメモリには以下のような特徴が
ある。全ビットに“1”を書き込むことでデータの消去
(イレース)を行い、これはセクタ単位でなければする
ことができない。データの書き込みは、ワード(8ビッ
ト)単位で行うことができ、“1”のビットを“0”に
書き換えることで、そのワードに00h〜FFhの値を
書き込む。一度値を書き込んだワードであっても、その
ときの値の“1”のビットが“0”に書き換わるのみで
表現できる新たな値であれば上書きすることができる。
データの消去は、一旦全ビットを“0”にし、その後全
ビットを“1”にするという処理であり、既に全ビット
が“0”になっている場合のほうが“1”のビットが残
っている場合よりも消去に要する時間が短くてすむ。一
般的にデータの消去は1セクタあたり1秒程度の時間を
要する。データの消去を繰り返す毎にフラッシュメモリ
は劣化してゆき、書き換え(データ消去)の寿命は数万
回程度である。
ある。全ビットに“1”を書き込むことでデータの消去
(イレース)を行い、これはセクタ単位でなければする
ことができない。データの書き込みは、ワード(8ビッ
ト)単位で行うことができ、“1”のビットを“0”に
書き換えることで、そのワードに00h〜FFhの値を
書き込む。一度値を書き込んだワードであっても、その
ときの値の“1”のビットが“0”に書き換わるのみで
表現できる新たな値であれば上書きすることができる。
データの消去は、一旦全ビットを“0”にし、その後全
ビットを“1”にするという処理であり、既に全ビット
が“0”になっている場合のほうが“1”のビットが残
っている場合よりも消去に要する時間が短くてすむ。一
般的にデータの消去は1セクタあたり1秒程度の時間を
要する。データの消去を繰り返す毎にフラッシュメモリ
は劣化してゆき、書き換え(データ消去)の寿命は数万
回程度である。
【0004】上記動作状態フラグは電源のオン/オフ毎
にセット/リセットされるものであるため、フラッシュ
メモリの1ビット(1ワード)を用いて動作状態フラグ
を構成した場合、電源オンまたは電源オフ毎にセクタ全
体のイレースをする必要があり電源オン処理または電源
オフ処理に時間がかかるうえ、書き換え寿命が数万回程
度のフラッシュメモリを電源オン/オフ毎に書き換えす
る必要があるため、寿命を短くしてしまうという問題点
があった。
にセット/リセットされるものであるため、フラッシュ
メモリの1ビット(1ワード)を用いて動作状態フラグ
を構成した場合、電源オンまたは電源オフ毎にセクタ全
体のイレースをする必要があり電源オン処理または電源
オフ処理に時間がかかるうえ、書き換え寿命が数万回程
度のフラッシュメモリを電源オン/オフ毎に書き換えす
る必要があるため、寿命を短くしてしまうという問題点
があった。
【0005】この発明は、フラッシュメモリを用いて頻
繁に書き換えられるフラグ等の情報の記録をすることが
できる情報記憶方法および情報記憶プログラムを提供す
ることを目的とする。
繁に書き換えられるフラグ等の情報の記録をすることが
できる情報記憶方法および情報記憶プログラムを提供す
ることを目的とする。
【0006】
【課題を解決するための手段】請求項1の発明は、フラ
ッシュメモリ内のエリアを用い、記憶すべき事象が発生
する毎に1のビットを0に書き換えることにより事象に
関する情報を記憶する情報記憶方法であって、前記書き
換えられるビットを含むワードに対して、書き換えられ
るビットを0に書き換えた後のビット配列に対応する値
を書き込むことで前記書き換えを行うことを特徴とす
る。請求項2の発明は、請求項1の発明において、書き
換えを上位ビットから順に行うことを特徴とする。請求
項3の発明は、請求項1、2の発明において、前記エリ
アは複数ワードからなり、書き換えているワードの全ビ
ットが0になったときは次のワードに対して上記処理を
行うことを特徴とする。請求項4の発明は、請求項1〜
3の発明において、前記事象に関する情報は、前記ワー
ド内の0または1のビット数でセットまたはリセットが
表現されるフラグ情報であることを特徴とする。請求項
5の発明は、請求項1〜3の発明において、前記事象に
関する情報は、前記エリア内の0のビット数でカウント
値が表現されるカウンタ情報であることを特徴とする。
ッシュメモリ内のエリアを用い、記憶すべき事象が発生
する毎に1のビットを0に書き換えることにより事象に
関する情報を記憶する情報記憶方法であって、前記書き
換えられるビットを含むワードに対して、書き換えられ
るビットを0に書き換えた後のビット配列に対応する値
を書き込むことで前記書き換えを行うことを特徴とす
る。請求項2の発明は、請求項1の発明において、書き
換えを上位ビットから順に行うことを特徴とする。請求
項3の発明は、請求項1、2の発明において、前記エリ
アは複数ワードからなり、書き換えているワードの全ビ
ットが0になったときは次のワードに対して上記処理を
行うことを特徴とする。請求項4の発明は、請求項1〜
3の発明において、前記事象に関する情報は、前記ワー
ド内の0または1のビット数でセットまたはリセットが
表現されるフラグ情報であることを特徴とする。請求項
5の発明は、請求項1〜3の発明において、前記事象に
関する情報は、前記エリア内の0のビット数でカウント
値が表現されるカウンタ情報であることを特徴とする。
【0007】請求項6の発明は、コンピュータに、記憶
すべき事象が発生する毎にフラッシュメモリに設定され
たエリア内の1のビットを0に書き換える手順を実行さ
せることにより、前記事象に関する情報を前記フラッシ
ュメモリに記憶する情報記憶プログラムであって、前記
手順は、前記書き換えられるビットを含むワードに対し
て、書き換えられるビットを0に書き換えた後のビット
配列に対応する値を書き込むことで前記書き換えを行う
ものであることを特徴とする。請求項7の発明は、請求
項6の発明において、前記手順は、書き換えを上位ビッ
トから順に行うものであることを特徴とする。請求項8
の発明は、請求項6,7の発明において、前記エリアは
複数ワードからなり、前記手順は、書き換えているワー
ドの全ビットが0になったときは次のワードに対して上
記処理を行うものであることを特徴とする。請求項9の
発明は、請求項6〜8の発明において、前記事象に関す
る情報は、前記ワード内の0または1のビット数でセッ
トまたはリセットが表現されるフラグ情報であることを
特徴とする。請求項10の発明は、請求項6〜8の発明
において、前記事象に関する情報は、前記エリア内の0
のビット数でカウント値が表現されるカウンタ情報であ
ることを特徴とする。
すべき事象が発生する毎にフラッシュメモリに設定され
たエリア内の1のビットを0に書き換える手順を実行さ
せることにより、前記事象に関する情報を前記フラッシ
ュメモリに記憶する情報記憶プログラムであって、前記
手順は、前記書き換えられるビットを含むワードに対し
て、書き換えられるビットを0に書き換えた後のビット
配列に対応する値を書き込むことで前記書き換えを行う
ものであることを特徴とする。請求項7の発明は、請求
項6の発明において、前記手順は、書き換えを上位ビッ
トから順に行うものであることを特徴とする。請求項8
の発明は、請求項6,7の発明において、前記エリアは
複数ワードからなり、前記手順は、書き換えているワー
ドの全ビットが0になったときは次のワードに対して上
記処理を行うものであることを特徴とする。請求項9の
発明は、請求項6〜8の発明において、前記事象に関す
る情報は、前記ワード内の0または1のビット数でセッ
トまたはリセットが表現されるフラグ情報であることを
特徴とする。請求項10の発明は、請求項6〜8の発明
において、前記事象に関する情報は、前記エリア内の0
のビット数でカウント値が表現されるカウンタ情報であ
ることを特徴とする。
【0008】上述したようにフラッシュメモリは、
“1”から“0”への書き換えは、ビット単位で行うこ
とができるが、その逆はセクタ単位でしかすることがで
きない。そこでこの発明では、全ビットが“1”にされ
ている(イレース状態の)エリアに対して1ビットずつ
“0”を書き込んでゆくことによってカウンタとして機
能させたり、または、0の数(たとえば0が偶数である
か奇数であるか)によってステイタスを表現してフラグ
として機能させる。
“1”から“0”への書き換えは、ビット単位で行うこ
とができるが、その逆はセクタ単位でしかすることがで
きない。そこでこの発明では、全ビットが“1”にされ
ている(イレース状態の)エリアに対して1ビットずつ
“0”を書き込んでゆくことによってカウンタとして機
能させたり、または、0の数(たとえば0が偶数である
か奇数であるか)によってステイタスを表現してフラグ
として機能させる。
【0009】しかし、フラッシュメモリに対する書き込
みはワード単位で行う必要があり、各ビットに直接アク
セスして“1”から“0”に書き換えることができない
ため、この“1”から“0”に書き換えるビットを含む
ワード(書き換え中のワード)に対して、書き換えた後
のビット配列に対応する値を書き込む。たとえば、1ワ
ードが8ビットのとき、01111111の第2ビット
を“0”に書き換えて00111111にする場合に
は、このビット配列に対応する値である3Fhをこのワ
ードに対して書き込む。このようにすることにより、ワ
ード単位でアクセスするフラッシュメモリを1ビットず
つ使用してメモリを節約することができる。また、この
ようにすることにより、使用後のメモリエリアは全てが
“0”に書き換えられているため、データの消去時に
“0”に書き換える必要がなくなり、消去を短時間です
ませることができる。
みはワード単位で行う必要があり、各ビットに直接アク
セスして“1”から“0”に書き換えることができない
ため、この“1”から“0”に書き換えるビットを含む
ワード(書き換え中のワード)に対して、書き換えた後
のビット配列に対応する値を書き込む。たとえば、1ワ
ードが8ビットのとき、01111111の第2ビット
を“0”に書き換えて00111111にする場合に
は、このビット配列に対応する値である3Fhをこのワ
ードに対して書き込む。このようにすることにより、ワ
ード単位でアクセスするフラッシュメモリを1ビットず
つ使用してメモリを節約することができる。また、この
ようにすることにより、使用後のメモリエリアは全てが
“0”に書き換えられているため、データの消去時に
“0”に書き換える必要がなくなり、消去を短時間です
ませることができる。
【0010】
【発明の実施の形態】図1はこの発明が適用される電子
機器のブロック図である。この発明は、どのような電子
機器に適用することも可能であるが、この実施形態で
は、外部から入力された動画・静止画の映像をスクリー
ンに投影するプロジェクタとする。装置の動作を制御す
るコントローラ1は、マイクロコンピュータで構成され
ている。このコントローラ1には、ROM、RAMが内
蔵されているとともに、フラッシュメモリ2が外部接続
されている。ROMにはブートプログラムなどの基本プ
ログラムが記憶されている。RAMは動作中に発生した
各種のデータをバッファする。フラッシュメモリ2に
は、動作プログラムが記憶されているとともに、シャッ
トダウンが正常に行われたか否かを記憶する動作状態フ
ラグエリアおよび投影用ランプの点灯時間を記憶する点
灯時間カウンタエリアが設定されている。
機器のブロック図である。この発明は、どのような電子
機器に適用することも可能であるが、この実施形態で
は、外部から入力された動画・静止画の映像をスクリー
ンに投影するプロジェクタとする。装置の動作を制御す
るコントローラ1は、マイクロコンピュータで構成され
ている。このコントローラ1には、ROM、RAMが内
蔵されているとともに、フラッシュメモリ2が外部接続
されている。ROMにはブートプログラムなどの基本プ
ログラムが記憶されている。RAMは動作中に発生した
各種のデータをバッファする。フラッシュメモリ2に
は、動作プログラムが記憶されているとともに、シャッ
トダウンが正常に行われたか否かを記憶する動作状態フ
ラグエリアおよび投影用ランプの点灯時間を記憶する点
灯時間カウンタエリアが設定されている。
【0011】また、コントローラ1には、電子回路3、
電源異常検出回路4、点灯制御回路5およびインタフェ
ース7が接続されている。電子回路3は、装置外部から
入力される映像を処理して、投影用の液晶表示部に出力
する回路である。電源異常検出回路4は、電源電圧を常
に監視し電源電圧が突然低下する瞬断などが発生した場
合にコントローラ1をリセットする回路である。点灯制
御回路5は投影用ランプ6の点灯を制御する回路であ
る。インタフェース7は、フラッシュメモリ2の読み出
しや書き込みを外部装置から行うためのインタフェース
であり、外部装置は、インタフェース7を介して、フラ
ッシュメモリ2に記憶されているプログラムの更新や、
動作状態フラグ、点灯時間カウンタの読み出し、リセッ
トを行う。
電源異常検出回路4、点灯制御回路5およびインタフェ
ース7が接続されている。電子回路3は、装置外部から
入力される映像を処理して、投影用の液晶表示部に出力
する回路である。電源異常検出回路4は、電源電圧を常
に監視し電源電圧が突然低下する瞬断などが発生した場
合にコントローラ1をリセットする回路である。点灯制
御回路5は投影用ランプ6の点灯を制御する回路であ
る。インタフェース7は、フラッシュメモリ2の読み出
しや書き込みを外部装置から行うためのインタフェース
であり、外部装置は、インタフェース7を介して、フラ
ッシュメモリ2に記憶されているプログラムの更新や、
動作状態フラグ、点灯時間カウンタの読み出し、リセッ
トを行う。
【0012】図2は上記フラッシュメモリ2のブロック
図である。このフラッシュメモリ2は、たとえば32M
B程度の記憶容量を有するものであり、このメモリエリ
アの大部分は、設定データを含むプログラム20を記憶
している。そして、残った空きエリアに上記動作状態フ
ラグエリア21および点灯時間カウンタエリア22が設
定されている。動作状態フラグエリア21、点灯時間カ
ウンタエリア22とも64kB(64kワード)あれば
十分である。
図である。このフラッシュメモリ2は、たとえば32M
B程度の記憶容量を有するものであり、このメモリエリ
アの大部分は、設定データを含むプログラム20を記憶
している。そして、残った空きエリアに上記動作状態フ
ラグエリア21および点灯時間カウンタエリア22が設
定されている。動作状態フラグエリア21、点灯時間カ
ウンタエリア22とも64kB(64kワード)あれば
十分である。
【0013】ここで、動作状態フラグエリア21の書き
込み手順について説明する。上述したようにフラッシュ
メモリは“0”から“1”への書き換えは、セクタ全体
を単位としてしなければすることができない。一方、
“1”から“0”への書き換えはビット単位ですること
が可能である。ただし、書き込み処理はワード(1バイ
ト=8ビット)単位でしかすることができない。そこ
で、この装置では、リセット状態(オール“1”)のフ
ラグエリアに対して、電源オン時処理および(正常な)
電源オフ時処理のそれぞれの処理に1つずつ0を書き込
んでゆく。したがって、正常に電源がオフされていると
きはこのフラグエリアの0の数は必ず偶数になり、電源
がオフされているとき(電源オン時にフラグエリアをチ
ェックしたとき)に0の数が奇数であれば、その直前の
電源オフは異常終了であったと判断することができる。
込み手順について説明する。上述したようにフラッシュ
メモリは“0”から“1”への書き換えは、セクタ全体
を単位としてしなければすることができない。一方、
“1”から“0”への書き換えはビット単位ですること
が可能である。ただし、書き込み処理はワード(1バイ
ト=8ビット)単位でしかすることができない。そこ
で、この装置では、リセット状態(オール“1”)のフ
ラグエリアに対して、電源オン時処理および(正常な)
電源オフ時処理のそれぞれの処理に1つずつ0を書き込
んでゆく。したがって、正常に電源がオフされていると
きはこのフラグエリアの0の数は必ず偶数になり、電源
がオフされているとき(電源オン時にフラグエリアをチ
ェックしたとき)に0の数が奇数であれば、その直前の
電源オフは異常終了であったと判断することができる。
【0014】リセット状態のとき各ワードはFFh(1
1111111)であるため、0〜FFのどのような値
でも所定のビットを“1”から“0”に書き換えること
で書き込むことができる。また、一度ある値が書き込ま
れたワードであっても、“1”のビットが“0”に替わ
る値に書き換える場合に限り、同じワードに重ねて値を
書き込むことができる。
1111111)であるため、0〜FFのどのような値
でも所定のビットを“1”から“0”に書き換えること
で書き込むことができる。また、一度ある値が書き込ま
れたワードであっても、“1”のビットが“0”に替わ
る値に書き換える場合に限り、同じワードに重ねて値を
書き込むことができる。
【0015】そこで、最初に電源がオンされたとき、値
がFFh(11111111)のワードに7Fh(01
111111)を書き込む。次に電源をオフするときこ
のワードに3Fh(00111111)を書き込む。次
に電源がオンされたとき1Fh(00011111)を
書き込む。次に電源をオフするとき0Fh(00001
111)を書き込む。さらに、電源オン、電源オフ毎に
07h(00000111)、03h(0000001
1)、01h(00000001)、00h(0000
0000)を書き込んでゆく。さらに、次の電源オン時
には、このワードは既に00hであるため、次のワード
に7Fhを書き込み、以後は、このワードに対して上記
処理を繰り返してゆく。このようにすることにより、電
源がオンされたとき、書き込み中のワードの0の数(ま
たは1の数)が偶数であるか奇数であるかをカウントす
ることで、直前の電源オフが正常終了であったか異常終
了であったかを判断することができる。
がFFh(11111111)のワードに7Fh(01
111111)を書き込む。次に電源をオフするときこ
のワードに3Fh(00111111)を書き込む。次
に電源がオンされたとき1Fh(00011111)を
書き込む。次に電源をオフするとき0Fh(00001
111)を書き込む。さらに、電源オン、電源オフ毎に
07h(00000111)、03h(0000001
1)、01h(00000001)、00h(0000
0000)を書き込んでゆく。さらに、次の電源オン時
には、このワードは既に00hであるため、次のワード
に7Fhを書き込み、以後は、このワードに対して上記
処理を繰り返してゆく。このようにすることにより、電
源がオンされたとき、書き込み中のワードの0の数(ま
たは1の数)が偶数であるか奇数であるかをカウントす
ることで、直前の電源オフが正常終了であったか異常終
了であったかを判断することができる。
【0016】このように1ワードで4回のフラグセッ
ト、4回のフラグリセットを書き込むことができるた
め、動作状態フラグエリアが64kBの容量である場合
には、フラグセット/リセットとも64×1024×4
回の動作を記憶することができ、フラグとして十分使用
できる容量である。そして、フラッシュメモリは数万回
程度のイレースが可能であるため、適当な時期にフラグ
エリアをイレースして最初から再利用すれば、極めて長
期間の使用が可能になる。また、全てのメモリエリアが
“0”に書き換えられていればイレースを短時間で行う
ことができる。
ト、4回のフラグリセットを書き込むことができるた
め、動作状態フラグエリアが64kBの容量である場合
には、フラグセット/リセットとも64×1024×4
回の動作を記憶することができ、フラグとして十分使用
できる容量である。そして、フラッシュメモリは数万回
程度のイレースが可能であるため、適当な時期にフラグ
エリアをイレースして最初から再利用すれば、極めて長
期間の使用が可能になる。また、全てのメモリエリアが
“0”に書き換えられていればイレースを短時間で行う
ことができる。
【0017】上記の例では、1ワードの最上位ビットか
ら順に“0”を書き込んでゆくようにしているが、
“0”の書き込み順序は、図3に示すように種々設定す
ることができる。同図において方式1が上記説明した例
である。また、方式2は最下位ビットから順に“0”を
書き込んでゆく方式である。方式3、方式4は上位4ビ
ットと下位4ビットに分割し、それぞれ電源オン時に上
位4ビットのうち1ビットを“0”に書き換え、電源オ
フ時に下位4ビットのうち1ビットを“0”に書き換え
るようにしたものである。この方式では上記4ビットと
下位4ビットを比較して値が等しいか否かで正常に電源
オフされたか否かを判断することができる。
ら順に“0”を書き込んでゆくようにしているが、
“0”の書き込み順序は、図3に示すように種々設定す
ることができる。同図において方式1が上記説明した例
である。また、方式2は最下位ビットから順に“0”を
書き込んでゆく方式である。方式3、方式4は上位4ビ
ットと下位4ビットに分割し、それぞれ電源オン時に上
位4ビットのうち1ビットを“0”に書き換え、電源オ
フ時に下位4ビットのうち1ビットを“0”に書き換え
るようにしたものである。この方式では上記4ビットと
下位4ビットを比較して値が等しいか否かで正常に電源
オフされたか否かを判断することができる。
【0018】図4はコントローラのリセット時の動作を
示すフローチャートである。コントローラのリセット
は、通常の電源スイッチオン時および瞬断などで装置が
異常終了して再起動するときなどに行われる。コントロ
ーラ1がリセットされ(s1)、プログラムが起動する
と(s2)、フラッシュメモリ2に設定されている動作
状態フラグエリア21から現在書き込み中のワードを検
索する(s3)。この検索方法については後述する。書
き込み中のワードの0のビット数が偶数か奇数かを判断
する(s4)。0の数が偶数の場合には、前回の電源オ
フは正常に行われたことを示しているため、このワード
(00hの場合は次のワード)に0を1つ追加する値を
書き込む(s5)。こののち通常動作(s7)に進む。
示すフローチャートである。コントローラのリセット
は、通常の電源スイッチオン時および瞬断などで装置が
異常終了して再起動するときなどに行われる。コントロ
ーラ1がリセットされ(s1)、プログラムが起動する
と(s2)、フラッシュメモリ2に設定されている動作
状態フラグエリア21から現在書き込み中のワードを検
索する(s3)。この検索方法については後述する。書
き込み中のワードの0のビット数が偶数か奇数かを判断
する(s4)。0の数が偶数の場合には、前回の電源オ
フは正常に行われたことを示しているため、このワード
(00hの場合は次のワード)に0を1つ追加する値を
書き込む(s5)。こののち通常動作(s7)に進む。
【0019】一方、書き込み中のワードの0のビット数
が奇数の場合には前回の電源オフが正常に行われなかっ
たことを示しているため、リカバー動作を実行する(s
6)。リカバー動作はたとえば投影用ランプ6付近の温
度が異常上昇しているおそれがあるため最初からファン
を回転させるなどである。そして動作状態フラグは、0
のビット数が奇数で電源オン状態のままであるため新た
な書き込みをしない。こののち通常動作(s7)に進
む。
が奇数の場合には前回の電源オフが正常に行われなかっ
たことを示しているため、リカバー動作を実行する(s
6)。リカバー動作はたとえば投影用ランプ6付近の温
度が異常上昇しているおそれがあるため最初からファン
を回転させるなどである。そして動作状態フラグは、0
のビット数が奇数で電源オン状態のままであるため新た
な書き込みをしない。こののち通常動作(s7)に進
む。
【0020】通常動作を実行しているときに電源オフが
指示されると(s8)、データの退避などのシャットダ
ウン動作を実行したのち(s9)、動作状態フラグエリ
ア21の書き込み中のワードに0を追加して動作状態フ
ラグをリセットし(s10)、電源回路にシャットダウ
ンを指示して(s11)終了する。電源回路はこの指示
に応じて電源をオフする。
指示されると(s8)、データの退避などのシャットダ
ウン動作を実行したのち(s9)、動作状態フラグエリ
ア21の書き込み中のワードに0を追加して動作状態フ
ラグをリセットし(s10)、電源回路にシャットダウ
ンを指示して(s11)終了する。電源回路はこの指示
に応じて電源をオフする。
【0021】ここで、s3で実行される検索処理を図5
を参照して説明する。この図では説明を簡略化するた
め、動作状態フラグエリアが256バイトであるとして
説明する。256バイトのアドレスは8ビット、すなわ
ち00000000〜11111111で表すことがで
きる。ここで、まず第2ビット〜最下位ビット(A6〜
A0)を全て0であると仮定し、最上位ビットA7が1
であるとしてフラグエリア内のアドレス1000000
のワードを読み出す。このワードの値がFFhであれ
ば、まだこのワードまで書き込みが進んでいないとし
て、最上位ビットA7を0に書き換える。FFh以外の
値であればこのワードまで書き込みが進んでいるとして
このビットを1のままにする。
を参照して説明する。この図では説明を簡略化するた
め、動作状態フラグエリアが256バイトであるとして
説明する。256バイトのアドレスは8ビット、すなわ
ち00000000〜11111111で表すことがで
きる。ここで、まず第2ビット〜最下位ビット(A6〜
A0)を全て0であると仮定し、最上位ビットA7が1
であるとしてフラグエリア内のアドレス1000000
のワードを読み出す。このワードの値がFFhであれ
ば、まだこのワードまで書き込みが進んでいないとし
て、最上位ビットA7を0に書き換える。FFh以外の
値であればこのワードまで書き込みが進んでいるとして
このビットを1のままにする。
【0022】次にA6について同様の処理を行う。上記
の処理でA7が“1”であるか“0”であるかが確定し
ている。第2ビットA6を1に仮に書き換え、第3ビッ
ト〜最下位ビット(A5〜A0)を全て0であると仮定
してフラグエリア内のアドレスx1000000のワー
ドを読み出す(ここでxは確定した“1”または“0”
の値)。このワードの値がFFhであれば、まだこのワ
ードまで書き込みが進んでいないとして、このビットを
0に書き換える。FFh以外の値であればこのワードま
で書き込みが進んでいるとしてこのビットを1のままに
する。
の処理でA7が“1”であるか“0”であるかが確定し
ている。第2ビットA6を1に仮に書き換え、第3ビッ
ト〜最下位ビット(A5〜A0)を全て0であると仮定
してフラグエリア内のアドレスx1000000のワー
ドを読み出す(ここでxは確定した“1”または“0”
の値)。このワードの値がFFhであれば、まだこのワ
ードまで書き込みが進んでいないとして、このビットを
0に書き換える。FFh以外の値であればこのワードま
で書き込みが進んでいるとしてこのビットを1のままに
する。
【0023】以上の処理をアドレスの最上位ビットから
最下位ビットまで繰り返し行うことによって、現在の書
き込み中のワードを検索することができる。フラグエリ
アが256バイトの場合には図示のように8回の検索で
書き込み中のワードを発生することができる。また、フ
ラグエリアが64kバイトの場合にはフラグエリアのア
ドレスが16ビットになるため16の検索処理で書き込
み中のワードを発見することができる。
最下位ビットまで繰り返し行うことによって、現在の書
き込み中のワードを検索することができる。フラグエリ
アが256バイトの場合には図示のように8回の検索で
書き込み中のワードを発生することができる。また、フ
ラグエリアが64kバイトの場合にはフラグエリアのア
ドレスが16ビットになるため16の検索処理で書き込
み中のワードを発見することができる。
【0024】なお、フラグエリアがフラッシュメモリ2
の途中に設定されている場合には、上記説明したアドレ
スに対してフラグエリアの先頭アドレス(オフセットア
ドレス)を加算したアドレスを実際のアドレスとして用
いればよい。
の途中に設定されている場合には、上記説明したアドレ
スに対してフラグエリアの先頭アドレス(オフセットア
ドレス)を加算したアドレスを実際のアドレスとして用
いればよい。
【0025】次に、点灯時間カウンタエリア22を用い
たカウント動作について説明する。投影用ランプ6を点
灯させているときその時間をカウントし、所定の点灯時
間(たとえば1分や5分など)毎にカウンタエリアに1
ビットずつ0を書き込んでゆく。書き込みの方式は図3
で説明した方式(方式1)を用いればよい。
たカウント動作について説明する。投影用ランプ6を点
灯させているときその時間をカウントし、所定の点灯時
間(たとえば1分や5分など)毎にカウンタエリアに1
ビットずつ0を書き込んでゆく。書き込みの方式は図3
で説明した方式(方式1)を用いればよい。
【0026】図6のフローチャートを参照して投影用ラ
ンプ6の点灯時間カウント動作を説明する。投影用ラン
プの点灯指示を点灯制御回路5に出力したときこの動作
がスタートする。点灯時間が1分経過する毎に(s2
1)、カウンタエリア22に“0”を1ビット書き込む
(s22)。この1ビットの書き込みは、上述した方式
1の方式で行う。すなわち、書き込み対象となっている
ワードにFFh→7Fh→3Fh→…→03h→01h
→00hとなるように書き込んでゆき、00hの次は次
のワードを書き込み対象として上記書き込みを行う。
ンプ6の点灯時間カウント動作を説明する。投影用ラン
プの点灯指示を点灯制御回路5に出力したときこの動作
がスタートする。点灯時間が1分経過する毎に(s2
1)、カウンタエリア22に“0”を1ビット書き込む
(s22)。この1ビットの書き込みは、上述した方式
1の方式で行う。すなわち、書き込み対象となっている
ワードにFFh→7Fh→3Fh→…→03h→01h
→00hとなるように書き込んでゆき、00hの次は次
のワードを書き込み対象として上記書き込みを行う。
【0027】一方、ランプ点灯中に異常事態が発生した
場合には(s23)、現在の書き込み対象の次のワード
に異常コードを書き込む(s24)。異常事態とは、例
えば、投影用ランプが切れた場合や冷却用のファンが止
まってしまった場合、ランプ周辺の温度が異常に上昇し
た場合などである。これらの異常事態にはそれぞれユニ
ークなコードが割り当てられている。上記のようにカウ
ンタとして使用される値はFFh,7Fh,3Fh,1
Fh,0Fh,07h,03h,01h,00hの9種
類であるため、それ以外の値を異常コードとして扱うこ
とができる。ランプの点灯を継続して行う場合には(s
25)、この異常コードを書き込んだワードの次のワー
ドを書き込み中のワードとして指定して(s26)、点
灯時間のカウント(s21、s22)を継続する。
場合には(s23)、現在の書き込み対象の次のワード
に異常コードを書き込む(s24)。異常事態とは、例
えば、投影用ランプが切れた場合や冷却用のファンが止
まってしまった場合、ランプ周辺の温度が異常に上昇し
た場合などである。これらの異常事態にはそれぞれユニ
ークなコードが割り当てられている。上記のようにカウ
ンタとして使用される値はFFh,7Fh,3Fh,1
Fh,0Fh,07h,03h,01h,00hの9種
類であるため、それ以外の値を異常コードとして扱うこ
とができる。ランプの点灯を継続して行う場合には(s
25)、この異常コードを書き込んだワードの次のワー
ドを書き込み中のワードとして指定して(s26)、点
灯時間のカウント(s21、s22)を継続する。
【0028】カウンタエリア22のカウント値は、メン
テナンス時にインタフェース7を介して読み出され、点
灯時間、異常事態発生の有無、異常事態発生までの点灯
時間などがメンテナンスの参考にされる。
テナンス時にインタフェース7を介して読み出され、点
灯時間、異常事態発生の有無、異常事態発生までの点灯
時間などがメンテナンスの参考にされる。
【0029】この実施形態では、フラグエリアを電源オ
フが正常に行われたか否かを記憶する動作状態フラグと
して用いたが、フラグの内容はこれに限定されない。ま
た、カウンタエリアを投影用ランプの点灯時間カウンタ
として用いたが、カウントする内容はこれに限定されな
い。いずれにしてもバッテリでバックアップされた揮発
性メモリを持たない装置で電源オフ期間をまたいでデー
タ保持したい場合に有効である。
フが正常に行われたか否かを記憶する動作状態フラグと
して用いたが、フラグの内容はこれに限定されない。ま
た、カウンタエリアを投影用ランプの点灯時間カウンタ
として用いたが、カウントする内容はこれに限定されな
い。いずれにしてもバッテリでバックアップされた揮発
性メモリを持たない装置で電源オフ期間をまたいでデー
タ保持したい場合に有効である。
【0030】また、フラッシュメモリ2で実現するフラ
グはセット/リセットの2ステートフラグに限定され
ず、3ステートフラグなど多くのステイタスを持つフラ
グであってもよい。その場合には、0のビット数をその
ステート数で割った剰余でステートを表すようにすれば
よい。また、カウンタはこの実施形態のように1カウン
トずつカウントされるもののみならず、その発生した事
象に応じた値をカウントアップするカウンタであっても
よい。その場合には、そのカウントアップする数だけビ
ットを“0”に書き換えるような値をワードに書き込む
ようにする。
グはセット/リセットの2ステートフラグに限定され
ず、3ステートフラグなど多くのステイタスを持つフラ
グであってもよい。その場合には、0のビット数をその
ステート数で割った剰余でステートを表すようにすれば
よい。また、カウンタはこの実施形態のように1カウン
トずつカウントされるもののみならず、その発生した事
象に応じた値をカウントアップするカウンタであっても
よい。その場合には、そのカウントアップする数だけビ
ットを“0”に書き換えるような値をワードに書き込む
ようにする。
【0031】また、フラグエリア、カウンタエリアの大
きさは64kBに限定されない。その用途に応じて適当
な大きさを確保すればよい。いずれにしても、小さいエ
リアで用を足すことができるため、プログラムなどを記
憶したフラッシュメモリの空きエリアを活用することが
可能である。
きさは64kBに限定されない。その用途に応じて適当
な大きさを確保すればよい。いずれにしても、小さいエ
リアで用を足すことができるため、プログラムなどを記
憶したフラッシュメモリの空きエリアを活用することが
可能である。
【0032】また、この発明が適用される装置は、フラ
ッシュメモリを備えた電子機器であればどのような装置
でもよくプロジェクタに限定されるものではない。
ッシュメモリを備えた電子機器であればどのような装置
でもよくプロジェクタに限定されるものではない。
【0033】
【発明の効果】以上のようにこの発明によれば、フラッ
シュメモリのワードを1ビットずつ使用してフラグやカ
ウンタとして使用することができるため、メモリエリア
を節約できるとともに、使用後は全ビットが“0”に書
き換えられているためデータの消去時間を短縮すること
ができる。
シュメモリのワードを1ビットずつ使用してフラグやカ
ウンタとして使用することができるため、メモリエリア
を節約できるとともに、使用後は全ビットが“0”に書
き換えられているためデータの消去時間を短縮すること
ができる。
【図1】この発明の実施形態である電子機器のブロック
図
図
【図2】同電子機器のフラッシュメモリのエリアを示す
図
図
【図3】同フラッシュメモリをフラグとして使用する場
合の書き込み手順を説明する図
合の書き込み手順を説明する図
【図4】同電子機器の動作を示すフローチャート
【図5】前記フラグの書き込みエリアの検索手順を説明
する図
する図
【図6】同電子機器の動作を示すフローチャート
【符号の説明】 1…コントローラ、2…フラッシュメモリ、3…電子回
路、4…電源異常検出回路、5…点灯制御回路、6…投
影用ランプ、7…インタフェース、20…プログラム記
憶エリア、21…動作状態フラグエリア、22…点灯時
間カウンタエリア
路、4…電源異常検出回路、5…点灯制御回路、6…投
影用ランプ、7…インタフェース、20…プログラム記
憶エリア、21…動作状態フラグエリア、22…点灯時
間カウンタエリア
Claims (10)
- 【請求項1】 フラッシュメモリ内のエリアを用い、記
憶すべき事象が発生する毎に1のビットを0に書き換え
ることにより事象に関する情報を記憶する情報記憶方法
であって、 前記書き換えられるビットを含むワードに対して、書き
換えられるビットを0に書き換えた後のビット配列に対
応する値を書き込むことで前記書き換えを行うことを特
徴とするフラッシュメモリを用いた情報記憶方法。 - 【請求項2】 書き換えを上位ビットから順に行う請求
項1に記載のフラッシュメモリを用いた情報記憶方法。 - 【請求項3】 前記エリアは複数ワードからなり、書き
換えているワードの全ビットが0になったときは次のワ
ードに対して上記処理を行う請求項1または請求項2に
記載のフラッシュメモリを用いた情報記憶方法。 - 【請求項4】 前記事象に関する情報は、前記ワード内
の0または1のビット数でセットまたはリセットが表現
されるフラグ情報である請求項1、請求項2または請求
項3に記載のフラッシュメモリを用いた情報記憶方法。 - 【請求項5】 前記事象に関する情報は、前記エリア内
の0のビット数でカウント値が表現されるカウンタ情報
である請求項1、請求項2または請求項3に記載のフラ
ッシュメモリを用いた情報記憶方法。 - 【請求項6】 コンピュータに、記憶すべき事象が発生
する毎にフラッシュメモリに設定されたエリア内の1の
ビットを0に書き換える手順を実行させることにより、
前記事象に関する情報を前記フラッシュメモリに記憶す
る情報記憶プログラムであって、 前記手順は、前記書き換えられるビットを含むワードに
対して、書き換えられるビットを0に書き換えた後のビ
ット配列に対応する値を書き込むことで前記書き換えを
行うものであることを特徴とする情報記憶プログラム。 - 【請求項7】 前記手順は、書き換えを上位ビットから
順に行うものである請求項6に記載の情報記憶プログラ
ム。 - 【請求項8】 前記エリアは複数ワードからなり、前記
手順は、書き換えているワードの全ビットが0になった
ときは次のワードに対して上記処理を行うものである請
求項6または請求項7に記載の情報記憶プログラム。 - 【請求項9】 前記事象に関する情報は、前記ワード内
の0または1のビット数でセットまたはリセットが表現
されるフラグ情報である請求項6、請求項7または請求
項8に記載の情報記憶プログラム。 - 【請求項10】 前記事象に関する情報は、前記エリア
内の0のビット数でカウント値が表現されるカウンタ情
報である請求項6、請求項7または請求項8に記載の情
報記憶プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001136333A JP2002334586A (ja) | 2001-05-07 | 2001-05-07 | フラッシュメモリを用いた情報記憶方法および情報記憶プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001136333A JP2002334586A (ja) | 2001-05-07 | 2001-05-07 | フラッシュメモリを用いた情報記憶方法および情報記憶プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002334586A true JP2002334586A (ja) | 2002-11-22 |
Family
ID=18983630
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001136333A Pending JP2002334586A (ja) | 2001-05-07 | 2001-05-07 | フラッシュメモリを用いた情報記憶方法および情報記憶プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2002334586A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100845526B1 (ko) | 2006-10-19 | 2008-07-10 | 삼성전자주식회사 | 플래시 메모리를 포함한 메모리 시스템 및 그것의 프로그램방법 |
US7554859B2 (en) | 2006-09-22 | 2009-06-30 | Samsung Electronics Co., Ltd. | Nonvolatile memory system and associated programming methods |
JP2009283005A (ja) * | 2002-10-28 | 2009-12-03 | Sandisk Corp | 不揮発性メモリシステムにおいて用いられる電力管理ブロック |
JP2009289049A (ja) * | 2008-05-29 | 2009-12-10 | Toyota Motor Corp | メモリ制御装置 |
WO2010095280A1 (ja) * | 2009-02-23 | 2010-08-26 | 株式会社サトー | データ更新装置及びプリンタ装置 |
US8031522B2 (en) | 2007-04-30 | 2011-10-04 | Samsung Electronics Co., Ltd. | Memory system, program method thereof, and computing system including the same |
US9431069B2 (en) | 2013-07-01 | 2016-08-30 | Samsung Electronics Co., Ltd. | Management method for nonvolatile memory system following power-off |
-
2001
- 2001-05-07 JP JP2001136333A patent/JP2002334586A/ja active Pending
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009283005A (ja) * | 2002-10-28 | 2009-12-03 | Sandisk Corp | 不揮発性メモリシステムにおいて用いられる電力管理ブロック |
US7554859B2 (en) | 2006-09-22 | 2009-06-30 | Samsung Electronics Co., Ltd. | Nonvolatile memory system and associated programming methods |
KR100845526B1 (ko) | 2006-10-19 | 2008-07-10 | 삼성전자주식회사 | 플래시 메모리를 포함한 메모리 시스템 및 그것의 프로그램방법 |
US7602642B2 (en) | 2006-10-19 | 2009-10-13 | Samsung Electronics Co., Ltd. | Nonvolatile memory system and associated programming methods |
US8031522B2 (en) | 2007-04-30 | 2011-10-04 | Samsung Electronics Co., Ltd. | Memory system, program method thereof, and computing system including the same |
US8223544B2 (en) | 2007-04-30 | 2012-07-17 | Samsung Electronics Co., Ltd. | Memory system, program method thereof, and computing system including the same |
US8614914B2 (en) | 2007-04-30 | 2013-12-24 | Samsung Electronics Co., Ltd. | Memory system, program method thereof, and computing system including the same |
US9030876B2 (en) | 2007-04-30 | 2015-05-12 | Samsung Electronics Co., Ltd. | Memory system, program method thereof, and computing system including the same |
US9275742B2 (en) | 2007-04-30 | 2016-03-01 | Samsung Electronics Co., Ltd. | Memory system, program method thereof, and computing system including the same |
US9460796B2 (en) | 2007-04-30 | 2016-10-04 | Samsung Electronics Co., Ltd. | Memory system, program method thereof, and computing system including the same |
JP2009289049A (ja) * | 2008-05-29 | 2009-12-10 | Toyota Motor Corp | メモリ制御装置 |
WO2010095280A1 (ja) * | 2009-02-23 | 2010-08-26 | 株式会社サトー | データ更新装置及びプリンタ装置 |
US9086953B2 (en) | 2009-02-23 | 2015-07-21 | Sato Holdings Kabushiki Kaisha | Device that updates bits corresponding to a data record residing in a memory |
US9431069B2 (en) | 2013-07-01 | 2016-08-30 | Samsung Electronics Co., Ltd. | Management method for nonvolatile memory system following power-off |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5035636B2 (ja) | フラッシュメモリ内のブロックにおける移動セクタ | |
US6058047A (en) | Semiconductor memory device having error detection and correction | |
EP1029278B1 (en) | Moving sequential sectors within a block of information in a flash memory mass storage architecture | |
JP4668416B2 (ja) | ブート・ブロックへの書き込みアクセスを可能にする時のブート・ブロック・コードの保護 | |
EP1036364B1 (en) | Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory | |
TWI457940B (zh) | 區塊為基礎快閃記憶體之位元組存取 | |
US7636807B2 (en) | Storage apparatus using nonvolatile memory as cache and mapping information recovering method for the storage apparatus | |
JP2010157216A (ja) | 停電後の不揮発性メモリの回復 | |
JP2006048893A (ja) | 不良ブロック管理機能を有するフラッシュメモリ装置及びフラッシュメモリ装置の不良ブロック管理方法 | |
JPH07146820A (ja) | フラッシュメモリの制御方法及び、それを用いた情報処理装置 | |
JP2006323751A (ja) | 情報処理装置、寿命監視方法およびプログラム | |
US6687815B1 (en) | Method and apparatus for storing non-volatile configuration information | |
JP2000222292A (ja) | フラッシュメモリを利用したデータ管理方法 | |
JP2002334586A (ja) | フラッシュメモリを用いた情報記憶方法および情報記憶プログラム | |
US20050066112A1 (en) | Data read/write control system and data read/write control method | |
US20170046090A1 (en) | Wom code emulation of eeprom-type devices | |
JP2003196165A (ja) | 不揮発性メモリ及びそのデータ更新方法 | |
JPH10302485A (ja) | フラッシュ・メモリを有する情報処理装置 | |
JPH06222986A (ja) | メモリ制御装置 | |
JP2008225922A (ja) | 不揮発性記憶装置 | |
JPH0817192A (ja) | フラッシュメモリによる位置記憶方法 | |
JP2004220343A (ja) | メモリ装置 | |
JP2000231483A (ja) | 半導体記録媒体を有するコンピュータ | |
JPH1021146A (ja) | 度数カウント装置 | |
JPH05128882A (ja) | データ処理装置 |