JPH10177527A - フラッシュメモリにおけるデータ書き込み/読み出し方法およびフラッシュメモリを用いた記憶装置 - Google Patents

フラッシュメモリにおけるデータ書き込み/読み出し方法およびフラッシュメモリを用いた記憶装置

Info

Publication number
JPH10177527A
JPH10177527A JP26993397A JP26993397A JPH10177527A JP H10177527 A JPH10177527 A JP H10177527A JP 26993397 A JP26993397 A JP 26993397A JP 26993397 A JP26993397 A JP 26993397A JP H10177527 A JPH10177527 A JP H10177527A
Authority
JP
Japan
Prior art keywords
block
data
flash memory
written
writing
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.)
Granted
Application number
JP26993397A
Other languages
English (en)
Other versions
JP3497066B2 (ja
Inventor
Yoichi Koyanagi
洋一 小柳
Toshiyuki Shimizu
俊幸 清水
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP26993397A priority Critical patent/JP3497066B2/ja
Publication of JPH10177527A publication Critical patent/JPH10177527A/ja
Application granted granted Critical
Publication of JP3497066B2 publication Critical patent/JP3497066B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Power Sources (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

(57)【要約】 【課題】 データ更新中に電源断になっても、情報が失
われたり不正な値になってしまうことがないようにする
こと。 【解決手段】 フラッシュメモリ1にデータを書き込む
際、ブロック0.1のマジックナンバを調べ、マジック
ナンバが共に正しい値のとき、両方のブロックのシーケ
ンシャルナンバを比較して小さい方のブロックを選択
し、該ブロックを消去してデータを書き込む。次にその
ブロックのシーケンシャル番号に、他方のブロックのシ
ーケンシャル番号に1を加えた値を書き込み、最後に上
記ブロックにマジックナンバを書き込む。また、データ
を読みだす際には、ブロック0,1のマジックナンバを
調べ、マジックナンバがともに正しい値のとき、シーケ
ンャルナンバの値の大きいブロックから読み出す。ま
た、マジックナンバが正しくない場合には、そのブロッ
クのシーケンシャルナンバを0として上記処理を行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】パソコン、ワークステーショ
ン、汎用計算機、スーパーコンピュータ、携帯端末、携
帯電話等を含むコンピュータ、通信機器の内部で、電源
を切っても記憶内容が消えることがないフラッシュメモ
リが多用されるようになってきている。本発明は上記し
たフラッシュメモリにおけるデータの書き込み/読み出
し方法およびフラッシュメモリを用いた記憶装置に関
し、特に本発明は、書き込み途中で突然の電源断が発生
しても記憶内容が失われることがないフラッシュメモリ
におけるデータの書き込み/読み出し方法およびフラッ
シュメモリを用いた記憶装置に関するものである。
【0002】
【従来の技術】フラッシュメモリは、それ自身、電源を
切っても記憶が消えない性質を持つメモリデバイスであ
り、従来から携帯電話などの小型電子機器の内部設定値
の記憶や、固定ディスク装置に置き換えて使用できる半
導体ディスク等に応用されている。上記した従来のフラ
ッシュメモリの応用においては、フラッシュメモリへの
データの書き込み途中における突然の電源断の発生につ
いては考慮されておらず、最悪の場合にはそれまでにフ
ラッシュメモリに書き込んだ設定値が失われて装置が起
動しないなどの影響を及ぼす可能性があった。
【0003】
【発明が解決しようとする課題】フラッシュメモリへの
データの書き込みは、通常、チップ全体または全体をい
くつかの部分に分割したブロック単位に消去したのち、
1バイト毎のデータを書き込んでいく。このため、フラ
ッシュメモリのデータを更新する際に、消去を行った直
後またはデータを書き込んでいる最中に電源断が発生す
ると、更新前のデータは消去されたが新しいデータが書
き込まれずに装置が停止することとなる。したがっ
て、、次に装置を起動してデータを読もうとした時に一
貫性が失われて情報が失われるしまう。本発明は上記し
た従来技術の問題点を考慮してなされたものであって、
その目的とするところは、データ更新中に電源断になっ
ても、情報が失われたり不正な値になってしまうことが
ないフラッシュメモリにおけるデータの書き込み/読み
出し方法およびフラッシュメモリを用いた記憶装置を提
供することである。
【0004】
【課題を解決するための手段】図1は本発明の原理図で
ある。同図は原理動作を示すため、一つのデータ単位を
扱う記憶装置として構成されている。同図において、1
はフラッシュメモリであり、フラッシュメモリ1はブロ
ック0とブロック1の2つのブロックから構成されてお
り、フラッシュメモリ1の各ブロック0,1には、デー
タの書き込み順序を示すシーケンシャル・ナンバと、デ
ータが有効であるか否かを管理するためのマジック・ナ
ンバと、実際のデータが書き込まれる。2はフラッシュ
メモリを消去したり、フラッシュメモリに、データ、シ
ーケンシャル・ナンバ、マジック・ナンバを書き込む消
去・書き込み手段、3はマジック・ナンバが正しい値で
あるか否かを調べるマジック・ナンバ検査手段である。
【0005】4,4’,6はセレクタ手段であり、セレ
クタ手段4,4’はマジック・ナンバ検査手段3により
マジック・ナンバが正しいと判断された場合には、フラ
ッシュメモリ1から読み出されたシーケンシャル・ナン
バを選択して出力し、マジック・ナンバが正しくない場
合、”0”を選択して出力する。セレクタ手段6は、後
述する比較手段5の比較結果に基づき、上記セレクタ手
段4,4’が出力するシーケンシャル・ナンバの値の大
きい方のフラッシュメモリ1のブロックからデータを読
み出す。
【0006】5は比較手段であり、比較手段5はセレク
タ手段4,4’の出力を比較する。そして、その比較結
果に基づき次のようにしてフラッシュメモリ1からのデ
ータの読み出し、消去、書き込みが行われる。 データの読み出し時、セレクタ手段4,4’が出力
するシーケンシャル・ナンバの内、シーケンシャル・ナ
ンバが大きい方のフラッシュメモリ1のブロックをセレ
クタ手段6により選択し、そのブロックからデータを読
み出す。 データの書き込み時、セレクタ手段4,4’が出力
するシーケンシャル・ナンバの内、シーケンシャル・ナ
ンバが小さい方のフラッシュメモリ1のブロックを消去
してデータを書き込む。また、ブロック0,1のシーケ
ンシャルナンバの内、大きい方のシーケンシャルナンバ
の値を+1して、データを書き込んだブロックにシーケ
ンシャルナンバの値を書き込む。
【0007】次に、本発明により〔書き込み〕、〔読み
出し〕を繰り返して行ったときの動作を説明する。な
お、初期状態では、フラッシュメモリ1の値は全て0xFF
である。また、マジック・ナンバの値は任意の特定値を
用いることができるが、ここでは、0x12345678(32bit)
とする。シーケンシャル番号は、4バイト(32bit) で表
される整数でヘッダに書き込まれものとする。次に図2
〜図7により、本発明において、書き込み、読み出しを
繰り返して行う場合の動作を説明する。
【0008】(a) データAの書き込み 初期状態においては、図2に示すように、フラッシュメ
モリ1のそれぞれのブロックのマジックナンバはどちら
も0xFFFFFFFFであり、正しい値ではない。マジックナン
バの値が正しくない時、図1にセレクタ手段4,4’
は”0”を選択する。すなわち、シーケンシャルナンバ
は”0”と見なされる。このようにすれば、”0”より
小さい小さい値はないので、データの書き込み時、マジ
ックナンバの正しくない方のブロックが消去され、デー
タが書き込まれることとなる(図1に示すようにシーケ
ンシャルナンバの値の小さい方のブロックにデータが書
き込まれるため)。また、データの読み出し時には、マ
ジックナンバの正しい方のブロックからデータが読み出
されることとなる(図1に示すようにシーケンシャルナ
ンバの大きい方のブロックからデータが読み出されるた
め)。
【0009】最初は、マジックナンバが両ブロックとも
正しくないので、どちらも0と見なされ、比較の結果は
どちらでもよいが、ここではデータを書き込むブロック
として、ブロック0を選択するとする。ブロック0が選
択されると、図2に示すように、消去・書き込み手段2
はブロック0を消去し、データAを書き込む。ついで、
ブロック0,1のシーケンシャルナンバの内、大きい方
の値0を+1して1を得て、ブロック0のシーケンシャ
ルナンバに1を書き込む。最後にマジックナンバ0x1234
5678をブロック0に書き込む。
【0010】(b) データの読み出し 図3に示すように、ブロック0のマジックナンバは正し
いので、セレクタ手段4を介してブロック0のシーケン
シャルナンバは1と読み出される。また、ブロック1の
マジックナンバは正しくないので、セレクタ手段4’に
よりブロック1のシーケンシャル番号は0とみなされ
る。比較手段5はこれらを比較し、セレクタ手段6が、
シーケンシャルナンバの値の大きい方のブロック0を選
択し、ブロック0に書き込まれたデータAが読み出され
る。
【0011】(c) データBの書き込み(データA→Bへ
の内容更新) 図3に示すようにフラッシュメモリ1のブロック0にデ
ータAが書き込まれた状態からフラッシュメモリ1の内
容をデータBに更新する場合は、図4に示すようにシー
ケンシャルナンバが0と見なされるブロック1に新たな
データBが書き込まれ、ブロック1のシーケンシャルナ
ンバに2が設定される。すなわち、次のようにしてデー
タBが書き込まれる。ブロック0のマジックナンバは正
しいので、ブロック0のシーケンシャルナンバは1と読
み出され、また、ブロック1のマジックナンバは正しく
ないので、0と見なされる。比較手段5はこれらを比較
して、図4に示すように、シーケンシャルナンバの値の
小さい方のブロックであるブロック1を選択し、ブロッ
ク1を消去してデータBを書き込む。ついで、ブロック
0,1のシーケンシャルナンバの内、大きい方の値1に
1を加えて2を得て、ブロック1のシーケンシャルナン
バに2を書き込む。最後にブロック1にマジックナンバ
0x12345678を書き込む。
【0012】(d) データの読み出し 図4に示すデータA,Bが書き込まれたフラッシュメモ
リ1からのデータの読み出しは次のように行われる。図
5に示すように、ブロック0のマジックナンバは正しい
ので、シーケンシャルナンバは1と読み出される。ま
た、ブロック1のマジックナンバも正しいので、ブロッ
ク1のシーケンシャル番号は2と読み出される。比較手
段5はこれらを比較して、シーケンシャルナンバの値の
大きい方のブロック1が選択され、ブロック1に書き込
まれたデータBが読み出される。すなわち、新たに書き
込まれたデータBが読み出され、データがA→Bに更新
されたように読み出される。ここで、データBの着込み
中に電源断になると、更新データBの書き込みは中断さ
れデータBは書き込みが不完全となるが、ブロック0の
データAが残っており、データが消えてしまうことがな
い。
【0013】(e) データCの書き込み(データB→Cへ
の内容更新) 図5に示すようにフラッシュメモリ1のブロック0,1
にそれぞれデータA,Bが書き込まれた状態からフラッ
シュメモリ1の内容をデータCに更新する場合は、図6
に示すようにシーケンシャルナンバが1と見なされるブ
ロック0に新たなデータCが書き込まれ、ブロック0の
シーケンシャルナンバに3が設定される。すなわち、次
のようにしてデータCが書き込まれる。ブロック0のマ
ジックナンバは正しいので、ブロック0のシーケンシャ
ルナンバは1と読み出され、また、ブロック1のマジッ
クナンバは正しいので、2と読み出される。比較手段5
はこれらを比較して、図6に示すように、シーケンシャ
ルナンバの値の小さい方のブロックであるブロック0を
選択し、ブロック0を消去してデータCを書き込む。つ
いで、ブロック0,1のシーケンシャルナンバの内、大
きい方の値2に1を加えて3を得て、ブロック0のシー
ケンシャルナンバに3を書き込む。最後にブロック0に
マジックナンバ0x12345678を書き込む。
【0014】(f) データの読み出し 図6に示すデータB,Cが書き込まれたフラッシュメモ
リ1からのデータの読み出しは次のように行われる。図
7に示すように、ブロック0のマジックナンバは正しい
ので、シーケンシャルナンバは3と読み出される。ま
た、ブロック1のマジックナンバも正しいので、ブロッ
ク1のシーケンシャル番号は2と読み出される。比較手
段5はこれらを比較して、シーケンシャルナンバの値の
大きい方のブロック0が選択され、ブロック9に書き込
まれたデータCが読み出される。すなわち、新たに書き
込まれたデータCが読み出され、データがB→Cに更新
されたように読み出される。
【0015】以上の操作を繰り返すことで、常に更新さ
れたデータが正しく読み出される。以上の過程のどこか
の操作で、突然の電源断などで処理が不完全のままにな
ってしまった場合、上記したように、2つのブロックの
内の一方しか消去/書き込み操作をしておらず、しか
も、マジックナンバおよびシーケンシャルナンバによ
り、それぞれのブロックのデータのどちらが正しいもの
で、かつ新しいものかを管理しているので、データが失
われたり内容が破壊されてしまうことがない。例えば、
図6において、データCを書き込んだのち、シーケンシ
ャルナンバを書き込んでいるときに電源断が発生した場
合であっても、マジックナンバは最後に書き込まれるの
で、マジックナンバが正しい値にならずそのデータが正
しいものと認識されることがない。
【0016】以上のように本発明は次のようにして前記
課題を解決する。 (1)ブロック毎に消去ができ、バイト毎に書き込みが
できるフラッシュメモリにおいて、一つの記憶すべきデ
ータ単位をフラッシュメモリの2つのブロックに交互に
書き込み、データ読み出し時、2つのブロックに格納さ
れたデータ単位の内、正常に書き込みが行われた最新の
データ単位を読み出す。 (2)フラッシュメモリの各ブロックに、データが有効
であることを示すマジックナンバと、データの書き込み
履歴を示すシーケンシャルナンバからなるヘッダ領域を
設け、上記マジックナンバと、シーケンシャルナンバを
調べてデータ単位の書き込み、読み出しを行う。 (3)フラッシュメモリに格納されたデータ単位を読み
出す際、2つのブロックのヘッダ領域に格納されたマジ
ックナンバを調べ、マジックナンバの一方が正しい値で
あるとき、マジックナンバの正しい値であるブロックか
ら読み出す。 (4)フラッシュメモリに格納されたデータ単位を読み
出す際、2つのブロックのヘッダ領域に格納されたマジ
ックナンバを調べ、マジックナンバがともに正しい値の
とき、書き込み履歴を示すシーケンャルナンバの値の大
きいブロックから読み出す。
【0017】(5)フラッシュメモリにデータ単位を書
き込む際、2つのブロックのヘッダ領域に格納されたマ
ジックナンバを調べ、マジックナンバがともに正しい値
でないとき、第1のブロックを選択してそのブロックを
消去して書き込むべきデータ単位を第1のブロックに書
き込み、ついで該ブロックのヘッダ領域のシーケンシャ
ル番号に1を書き込み、最後に、該ブロックのヘッダ領
域にマジックナンバを書き込む。 (6)フラッシュメモリにデータ単位を書き込む際、2
つのブロックのヘッダ領域に格納されたマジックナンバ
を調べ、マジックナンバの一方のみが正しい値のとき、
マジックナンバが正しい値でない方のブロックを選択し
て、該ブロックを消去して、書き込むべきデータ単位を
上記ブロックに書き込む。ついで該ブロックのヘッダ領
域のシーケンシャル番号に、他方のブロックのヘッダ領
域に記憶されているシーケンシャル番号に1を加えた値
を書き込み、最後に、上記ブロックのヘッダ領域にマジ
ックナンバを書き込む。 (7)フラッシュメモリにデータ単位を書き込む際、2
つのブロックのヘッダ領域に格納されたマジックナンバ
を調べ、マジックナンバが共に正しい値のとき、両方の
ブロックからシーケンシャルナンバを読み出して比較
し、シーケンシャルナンバの値が小さい方のブロックを
選択し、該ブロックを消去して書き込むべきデータ単位
を書き込む。ついで該ブロックのヘッダ領域のシーケン
シャル番号に、他方のブロックのヘッダ領域に記憶され
ているシーケンシャル番号に1を加えた値を書き込み、
最後に、上記ブロックのヘッダ領域にマジックナンバを
書き込む。
【0018】
【発明の実施の形態】次に、計算機のシステムのシステ
ム制御装置において、システムの構成情報などのデータ
をフラッシュメモリにより設定する実施例について説明
する。なお、以下の説明では、ソフトウェアによりフラ
ッシュメモリの消去、書き込み操作に行う場合ついて説
明するが、本発明は、ハードウェアにより実現すること
もできる。
【0019】図8は本発明の実施例のシステムの構成を
示す図である。同図において、10は計算機システム、
11はホスト計算機であり、ホスト計算機11は計算機
システム10のシステム制御装置12内に設けられたホ
ストインタフェース12bを介して計算機システム10
と接続されている。計算機システム10において、12
はシステム制御装置であり、システム制御装置12はマ
イククロプロセッサ12aと、前記ホストインタフェー
ス12bと、前記システム構成情報等を記憶するフラッ
シュメモリ12cと、複数の演算装置13およびネット
ワーク装置14と接続される制御インタフェース12d
を備えている。演算装置13はネットワーク装置14を
介して相互に接続されており、演算装置13により各種
処理が行われる。また、15は、プリンタ、キーボー
ド、ディスプレイ、外部記憶装置等の各種I/O装置で
ある。
【0020】上記計算機システム10のシステム制御装
置12においては、計算機システム10の電源制御やエ
ラー監視などの機能を実現するため、システム構成要素
(演算装置13やI/O装置15)の数や種類を記憶し
ておかなければならない。システムの構成の変更や増設
の際には、この設定値は変更されるが、この情報が失わ
れるとシステム全体の起動/停止やエラー監視が不可能
となり、重大な支障をきたす。そこで、本実施例におい
ては、上記フラッシュメモリ12cを前記したようにブ
ロック0、ブロック1に分け、それぞれのブロックに交
互に上記システム構成要素の数や種類に関するデータを
書き込み、また、それぞれのブロックから交互に上記デ
ータを読み出す。
【0021】図9、図10は本実施例におけるデータの
書き込み/読み出し処理を示すフローチャートであり、
同図を参照しながら本実施例の処理を説明する。フラッ
シュメモリ12cに上記システム構成要素の数や種類に
関するデータを書き込む際、ホスト計算機11はシステ
ム制御装置12に対して設定データを書き込むコマンド
を発行し、上記システム構成要素の数や種類に関するデ
ータを送る。上記コマンドとデータはシステム制御装置
12のホストインタフェース12bで受信され、マイク
ロプロセッサ12aは上記データをフラッシュメモリ1
2cに書き込む。
【0022】図9は上記データを書き込む際のフローチ
ャートである。データの書き込み時、まず、マイクロプ
ロセッサ12aは、フラッシュメモリ12cのブロック
0のマジックナンバを読み出してメモリ等の記憶領域ma
gic0に書き込む(図9のステップS1)。ついで、magi
c0に書き込まれたブロック0のマジックナンバが0x1234
5678であるか否かを確認する(ステップS2)。ブロッ
ク0のマジックナンバが正しい値であると(上記0x1234
5678に等しい)、ステップS4に進み、マイクロプロセ
ッサ12aは、ブロック0のシーケンシャルナンバを読
み出して、記憶領域seq0に書き込む。また、マジックナ
ンバが正しい値でない場合には(上記0x12345678に等し
くない)、記憶領域seq0に0を書き込み、ステップS5
に進む。ステップS5において、ブロック1のマジック
ナンバを読み出して、記憶領域magic1に書き込む。
【0023】ついで、magic1に書き込まれたブロック1
のマジックナンバが0x12345678であるか否かを確認する
(ステップS6)。ブロック1のマジックナンバが正し
い値であると(上記0x12345678に等しい)、ステップS
8に進み、マイクロプロセッサ12aはブロック1のシ
ーケンシャルナンバを読み出して、記憶領域seq1に書き
込む。また、マジックナンバが正しい値でない場合には
(上記0x12345678に等しくない)、記憶領域seq1に0を
書き込み、ステップS9に進む。ステップS9におい
て、マイクロプロセッサ12aはseq0とseq1の値を比較
し、seq0の値がseq1の値より小さい場合には、ブロック
0を消去して(ステップ10)、データをブロック0に
書き込む(ステップS11)。そして、ブロック1のシ
ーケンシャルナンバseq1の値に1を加えて、ブロック0
のシーケンシャルナンバ格納域に格納する(ステップS
12)。さらに、ブロック0のマジックナンバ格納域に
マジックナンバ(=0x12345678)を書き込み(ステップ
S13)処理を終了する。
【0024】また、seq0の値がseq1の値より大きい場合
には、ブロック1を消去して(ステップ14)、データ
をブロック1に書き込む(ステップS15)。そして、
ブロック1のシーケンシャルナンバseq0の値に1を加え
て(ステップS16)、ブロック1のシーケンシャルナ
ンバ格納域に格納する。さらに、ブロック1のマジック
ナンバ格納域にマジックナンバ(=0x12345678)を書き
込み(ステップS17)、処理を終了する。上記のよう
にして、フラッシュメモリ12cにシステム構成要素の
数や種類に関するデータが書き込まれると、システムの
起動等の際、システム制御装置12のマイクロプロセッ
サ12aは、上記フラッシュメモリ12cに書き込まれ
たデータを読み出し、その情報等にしたがって演算装置
13等に制御インタフェース12dを介して制御信号等
を送出する。
【0025】図10はフラッシュメモリ12cに書き込
まれたデータを読み出す際の処理を示すフローチャート
である。データの読み出し時、まず、マイクロプロセッ
サ12aは、フラッシュメモリ12cのブロック0のマ
ジックナンバを読み出して記憶領域magic0に書き込む
(図10のステップS1)。ついで、magic0に書き込ま
れたブロック0のマジックナンバが0x12345678であるか
否かを確認する(ステップS2)。ブロック0のマジッ
クナンバが正しい値であると(上記0x12345678に等し
い)、ステップS4に進み、マイクロプロセッサ12a
は、ブロック0のシーケンシャルナンバを読み出して、
記憶領域seq0に書き込む。また、マジックナンバが正し
い値でない場合には(上記0x12345678に等しくない)、
マイクロプロセッサ12aの記憶領域seq0に0を書き込
み、ステップS5に進む。
【0026】ステップS5において、ブロック1のマジ
ックナンバを読み出して、記憶領域magic1に書き込む。
ついで、magic1に書き込まれたブロック1のマジックナ
ンバが0x12345678であるか否かを確認する(ステップS
6)。ブロック1のマジックナンバが正しい値であると
(上記0x12345678に等しい)、ステップS8に進み、マ
イクロプロセッサ12aはブロック1のシーケンシャル
ナンバを読み出して、記憶領域seq1に書き込む。また、
マジックナンバが正しい値でない場合には(上記0x1234
5678に等しくない)、記憶領域seq1に0を書き込み、ス
テップS9に進む。
【0027】ステップS9において、マイクロプロセッ
サ12aはseq0とseq1の値を比較し、seq0の値がseq1の
値より小さい場合には、データをブロック1から読み出
す。(ステップS10)。また、seq0の値がseq1の値よ
り大きい場合には、データをブロック0から読み出す。
(ステップ11) 以上のように、マジックナンバによりデータの正さを確
認しながら、シーケンシャルナンバによりデータの更新
順序を確認し、フラッシュメモリの2つのブロックに交
互にデータを書き込むとともに、フラッシュメモリの2
つのブロックから交互にデータを読み出すことにより、
電源断になってもデータが失われたり、破壊されること
がない。
【0028】
【発明の効果】以上説明したように本発明においては、
フラッシュメモリの各ブロックにデータが有効であるこ
とを示すマジックナンバと、データの書き込み履歴を示
すシーケンシャルナンバを示すヘッダ領域を設け、各ブ
ロックのマジックナンバと、シーケンシャルナンバを調
べ、一つの記憶すべきデータ単位をフラッシュメモリの
2つのブロックに交互に書き込み、データ読み出し時、
2つのブロックに格納されたデータ単位の内、正常に書
き込みが行われた最新のデータ単位を読み出すようにし
ているので、いかなるタイミングにおいても装置の電源
断によって情報が失われることがない。また、フラッシ
ュメモリのデータ更新中であった場合には、更新が失敗
するだけであり、以前に書き込まれた情報がなくなって
しまったり、あるいは不正な値になってしまうことがな
い。
【図面の簡単な説明】
【図1】本発明の原理構成図である。
【図2】本発明における書き込み/読み出し動作を説明
する図(その1)である。
【図3】本発明における書き込み/読み出し動作を説明
する図(その2)である。
【図4】本発明における書き込み/読み出し動作を説明
する図(その3)である。
【図5】本発明における書き込み/読み出し動作を説明
する図(その4)である。
【図6】本発明における書き込み/読み出し動作を説明
する図(その5)である。
【図7】本発明における書き込み/読み出し動作を説明
する図(その6)である。
【図8】本発明の実施例のシステムの構成を示す図であ
る。
【図9】本発明の実施例の書き込み/読み出し処理を示
す図(その1)である。
【図10】本発明の実施例の書き込み/読み出し処理を
示す図(その2)である。
【符号の説明】
1 フラッシュメモリ 2 消去・書き込み手段 3 マジック・ナンバ検査手段 4,4’,6 セレクタ手段 5 比較手段 10 計算機システム 11 ホスト計算機 12 システム制御装置 12a マイククロプロセッサ 12b ホストインタフェース 12c フラッシュメモリ 12d 制御インタフェース 13 演算装置 14 ネットワーク装置 15 I/O装置

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 ブロック毎に消去ができ、バイト毎に書
    き込みができるフラッシュメモリのデータ更新方法であ
    って、 フラッシュメモリを2つのブロックに分割し、一つの記
    憶すべきデータ単位をフラッシュメモリの2つのブロッ
    クに交互に書き込み、 データ読み出し時、2つのブロックに格納されたデータ
    単位の内、正常に書き込みが行われた最新のデータ単位
    を読み出すことを特徴とするフラッシュメモリのデータ
    更新方法。
  2. 【請求項2】 ブロック毎に消去ができ、バイト毎に書
    き込みができるフラッシュメモリを用いた記憶装置であ
    って、 フラッシュメモリを2つのブロックに分割し、 一つの記憶すべきデータ単位を上記2つのブロックに交
    互に書き込み、2つのブロックに格納されたデータ単位
    の内、正常に書き込みが行われた最新のデータ単位を読
    み出す、書き込み/読み出し手段を設けたことを特徴と
    するフラッシュメモリを用いた記憶装置。
  3. 【請求項3】 フラッシュメモリの各ブロックは、デー
    タが有効であることを示すマジックナンバと、データの
    書き込み履歴を示すシーケンシャルナンバからなるヘッ
    ダ領域を備えており、 書き込み/読み出し手段は上記マジックナンバと、シー
    ケンシャルナンバを調べてデータ単位の書き込み、読み
    出しを行うことを特徴とする請求項2のフラッシュメモ
    リを用いた記憶装置。
  4. 【請求項4】 上記書き込み/読み出し手段がフラッシ
    ュメモリに格納されたデータ単位を読み出す際、2つの
    ブロックのヘッダ領域に格納されたマジックナンバを調
    べ、マジックナンバの一方が正しい値であるとき、マジ
    ックナンバの正しい値であるブロックから読み出すこと
    を特徴とする請求項3のフラッシュメモリを用いた記憶
    装置。
  5. 【請求項5】 上記書き込み/読み出し手段がフラッシ
    ュメモリに格納されたデータ単位を読み出す際、2つの
    ブロックのヘッダ領域に格納されたマジックナンバを調
    べ、マジックナンバがともに正しい値のとき、書き込み
    履歴を示すシーケンャルナンバの値の大きいブロックか
    ら読み出すことを特徴とする請求項3,4のフラッシュ
    メモリを用いた記憶装置。
  6. 【請求項6】 上記書き込み/読み出し手段がフラッシ
    ュメモリにデータ単位を書き込む際、2つのブロックの
    ヘッダ領域に格納されたマジックナンバを調べ、マジッ
    クナンバがともに正しい値でないとき、第1のブロック
    を選択してそのブロックを消去して書き込むべきデータ
    単位を第1のブロックに書き込み、ついで該ブロックの
    ヘッダ領域のシーケンシャル番号に1を書き込み、最後
    に、該ブロックのヘッダ領域にマジックナンバを書き込
    むことを特徴とする請求項3,4または請求項5のフラ
    ッシュメモリを用いた記憶装置。
  7. 【請求項7】 上記書き込み/読み出し手段がフラッシ
    ュメモリにデータ単位を書き込む際、2つのブロックの
    ヘッダ領域に格納されたマジックナンバを調べ、マジッ
    クナンバの一方のみが正しい値のとき、マジックナンバ
    が正しい値でない方のブロックを選択して、該ブロック
    を消去して、書き込むべきデータ単位を上記ブロックに
    書き込み、ついで該ブロックのヘッダ領域のシーケンシ
    ャル番号に、他方のブロックのヘッダ領域に記憶されて
    いるシーケンシャル番号に1を加えた値を書き込み、最
    後に、上記ブロックのヘッダ領域にマジックナンバを書
    き込むことを特徴とする請求項3,4,5または請求項
    6のフラッシュメモリを用いた記憶装置。
  8. 【請求項8】 上記書き込み/読み出し手段がフラッシ
    ュメモリにデータ単位を書き込む際、2つのブロックの
    ヘッダ領域に格納されたマジックナンバを調べ、マジッ
    クナンバが共に正しい値のとき、両方のブロックからシ
    ーケンシャルナンバを読み出して比較し、シーケンシャ
    ルナンバの値が小さい方のブロックを選択し、該ブロッ
    クを消去して書き込むべきデータ単位を書き込み、 ついで該ブロックのヘッダ領域のシーケンシャル番号
    に、他方のブロックのヘッダ領域に記憶されているシー
    ケンシャル番号に1を加えた値を書き込み、最後に、上
    記ブロックのヘッダ領域にマジックナンバを書き込むこ
    とを特徴とする請求項3,4,5または請求項6のフラ
    ッシュメモリを用いた記憶装置。
  9. 【請求項9】 ブロック毎に消去ができ、バイト毎に書
    き込みができるフラッシュメモリのデータ書き込み/読
    み出しプログラムを記録した媒体であって、 上記プログラムは、一つの記憶すべきデータ単位を2つ
    に分割されたフラッシュメモリの各ブロックに交互に書
    き込み、 データ読み出し時、2つのブロックに格納されたデータ
    単位の内、正常に書き込みが行われた最新のデータ単位
    を読み出すことを特徴とするフラッシュメモリのデータ
    書き込み/読み出しプログラムを記録した媒体。
JP26993397A 1996-10-16 1997-10-02 フラッシュメモリにおけるデータ書き込み/読み出し方法およびフラッシュメモリを用いた記憶装置 Expired - Fee Related JP3497066B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP26993397A JP3497066B2 (ja) 1996-10-16 1997-10-02 フラッシュメモリにおけるデータ書き込み/読み出し方法およびフラッシュメモリを用いた記憶装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP8-273564 1996-10-16
JP27356496 1996-10-16
JP26993397A JP3497066B2 (ja) 1996-10-16 1997-10-02 フラッシュメモリにおけるデータ書き込み/読み出し方法およびフラッシュメモリを用いた記憶装置

Publications (2)

Publication Number Publication Date
JPH10177527A true JPH10177527A (ja) 1998-06-30
JP3497066B2 JP3497066B2 (ja) 2004-02-16

Family

ID=26548995

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26993397A Expired - Fee Related JP3497066B2 (ja) 1996-10-16 1997-10-02 フラッシュメモリにおけるデータ書き込み/読み出し方法およびフラッシュメモリを用いた記憶装置

Country Status (1)

Country Link
JP (1) JP3497066B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000105694A (ja) * 1998-09-28 2000-04-11 Nec Ic Microcomput Syst Ltd フラッシュメモリ、フラッシュメモリを備えたマイクロコンピュータおよびフラッシュメモリへのプログラム格納方法
US6789158B2 (en) 2000-01-28 2004-09-07 Nec Electronics Corporation Method of rewriting program in a flash microcomputer
US6839568B2 (en) 2000-11-22 2005-01-04 Nec Corporation User setting information management method and management system for portable telephone
JP2007528071A (ja) * 2004-03-10 2007-10-04 ソニー エリクソン モバイル コミュニケーションズ, エービー ファームウェアアップグレードにおける自動バックアップストア

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000105694A (ja) * 1998-09-28 2000-04-11 Nec Ic Microcomput Syst Ltd フラッシュメモリ、フラッシュメモリを備えたマイクロコンピュータおよびフラッシュメモリへのプログラム格納方法
US6883060B1 (en) 1998-09-28 2005-04-19 Nec Electronics Corporation Microcomputer provided with flash memory and method of storing program into flash memory
US6789158B2 (en) 2000-01-28 2004-09-07 Nec Electronics Corporation Method of rewriting program in a flash microcomputer
US6839568B2 (en) 2000-11-22 2005-01-04 Nec Corporation User setting information management method and management system for portable telephone
JP2007528071A (ja) * 2004-03-10 2007-10-04 ソニー エリクソン モバイル コミュニケーションズ, エービー ファームウェアアップグレードにおける自動バックアップストア
JP4801041B2 (ja) * 2004-03-10 2011-10-26 ソニー エリクソン モバイル コミュニケーションズ, エービー ファームウェアアップグレードにおける自動バックアップストア

Also Published As

Publication number Publication date
JP3497066B2 (ja) 2004-02-16

Similar Documents

Publication Publication Date Title
US6154808A (en) Method and apparatus for controlling data erase operations of a non-volatile memory device
JP2990181B1 (ja) フラッシュメモリ、フラッシュメモリを備えたマイクロコンピュータおよびフラッシュメモリへのプログラム格納方法
JP4960364B2 (ja) ハードウェア支援されたデバイス設定検出
JP2006134482A (ja) 不揮発性メモリシステム
US6516400B1 (en) Data storage, data processing system and method
JP3212960B2 (ja) フラッシュメモリを利用したデータ管理方法
JP2002278783A (ja) ファームウェア書き換えシステム
US5818755A (en) Storage apparatus having a nonvolatile storage device capable of retaining data after an incomplete write operation and method of accessing same
US20070277028A1 (en) Method and system for recovery from reprogramming failures in nonvolatile memory
US7590793B2 (en) Data access controlling method in flash memory and data access controlling program
JP3497066B2 (ja) フラッシュメモリにおけるデータ書き込み/読み出し方法およびフラッシュメモリを用いた記憶装置
JP2003196165A (ja) 不揮発性メモリ及びそのデータ更新方法
JPH10124403A (ja) ブロック消去型フラッシュメモリの書込み方法
JP2001154926A (ja) フラッシュメモリを用いる記憶方法及び記憶制御プログラムを記録した記録媒体
JP3620478B2 (ja) 記憶装置、この記憶装置を用いたデータ処理システム及びデータ読み出し方法
JP4031693B2 (ja) 不揮発性メモリおよびこれを有したデータ記憶装置
JP2008182327A (ja) プログラマブルデバイス制御装置およびその方法
US5901285A (en) Hierarchical erasure key protection for computer system data
JP2001312891A (ja) 半導体メモリ装置
JP2002025281A (ja) 不揮発性メモリ管理方法および不揮発性メモリ管理装置
JPH10283172A (ja) フラッシュromデータ書き換え方式
JP2003150458A (ja) 障害検出装置、障害検出方法、プログラム及びプログラム記録媒体
CN111124462B (zh) 一种嵌入式多媒体卡更新方法、装置、服务器和存储介质
JP2003099333A (ja) フラッシュメモリ管理システム
JP2858816B2 (ja) Eepromの初期設定方式

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20031118

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081128

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081128

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091128

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101128

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101128

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111128

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111128

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121128

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121128

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131128

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees