説明

フラッシュメモリーのデータ管理方法

【課題】フラッシュメモリーの安定性、データの安全性、耐障害性の性能を向上できるフラッシュメモリーのデータ管理方法を提供する。
【解決手段】本発明のフラッシュメモリー内のデータ管理方法は、メモリブロックの操作過程で、ブロックのステータスフラグを末完了状態に設定し、操作完了後は、ステータスフラグを末完了状態から、完了状態に設定する。この方法を利用して、フラッシュメモリーにデータの書き込んでいるときに、突然の電源切れが発生した場合でも、フラッシュメモリー内にあった元のデータの消失を防ぐことが出来る。また、本発明は、上記のデータ管理方法を採用したフラッシュメモリーにデータを書き込む方法とデータリカバーの方法も提供する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は半導体メモリーの分野に関わるものであり、具体的にはフラッシュメモリーのデータ管理方法に関するものである。本発明の方法を利用してデータ管理を行えば、フラッシュメモリーに対しデータを書き込んでいるときに、突然の電源切れが発生した場合でも、フラッシュメモリーにあった元のデータや新たに書き込んだデータはどちらも消失することはなく、フラッシュメモリー内のデータの安全性を高めている。
【背景技術】
【0002】
フラッシュメモリーを利用したモバイルメモリ装置は、すでに大量かつ幅広く応用されており、徐々にフロッピー(登録商標)ディスクに取って代わろうとしている。しかし、フラッシュメモリーも実際に応用する段階においては、欠点が見受けられる。たとえば、フラッシュメモリーの特殊な読み書き特性はすでに周知のことであるため、ユーザーがフラッシュメモリーに新しいデータを書き込んだり、もしくは、すでに保存されているデータを修正するとき、まず対応する物理アドレスが指向しているメモリブロックのデータ(以下元データという)を別のアドレスが指向しているメモリブロックに「移動」させる。
【0003】
フラッシュメモリーがデータを読み取る原理はPCのハードディスクと非常に似ており、どちらもFATやディレクトリなどを通して、ディスク内のファイル情報を獲得する。もし元データを移動している途中、予想外のあるいはユーザーの操作ミスなどによる突然の電源切れが発生した場合、移動は中断させられてしまう。電源切れ発生時に元データの移動作業が未完了の場合、この部分のデータ情報はFATやディレクトリ内などではすぐに更新されず、移動に関わったデータは読み取りができなくなり、無効データとなる。このように、電源切れ発生前に保存した無効データを含むファイルは無効ファイルとなり、データの消失を招いてしまう。
【0004】
このほか、フラッシュメモリーの読み書き特性により、フラッシュメモリーにはメモリブロックに対する消去操作があり、メモリブロック内の全てのビットにロジック「1」を設定する。もし消去する途中で電源切れが発生した場合、このメモリブロックに存在する一部のビットはすでにロジック「1」となっており、残りのビットはロジック「0」のままとなる可能性がある。もしこのとき、このメモリブロックに新しいデータの書き込みを行えば、エラーの発生を招いてしまう。
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明は、上記の現存技術によるフラッシュメモリーに存在する信用性の欠如、耐障害性の欠如、データの安全性の欠如、突然の電源切れに対するミス処理能力の不足などに焦点を当てて、フラッシュメモリー内のデータ管理の方法を提供する。
【課題を解決するための手段】
【0006】
本発明の目的は、フラッシュメモリー内のデータ管理方法を打ち出すことにある。当該フラッシュメモリーには多数のメモリブロックがあり、各メモリブロックは多数のページで構成され、各ページはデータ保存エリアと冗長エリアを含む。当該データ保存エリアは一般的にユーザーのデータを記録することに用いられ、当該冗長エリアは一般的に、当該ページが存在するフラッシュチップの専用情報と当該ページが存在するメモリブロックのロジックアドレスなどの索引情報、及びユーザーが自分で設定した情報や、不用になったものなどを記録する。
【0007】
当該多数のメモリブロックのうち、少なくとも1つのメモリブロックの、少なくとも1つのページの冗長エリアにステータスフラグを設置する。当該メモリブロックにデータを書き込む過程で、当該ステータスフラグを未完了状態に設定し、当該メモリブロックへのデータ書き込みが完了したときに、当該ステータスフラグを完了状態に設定する。
【0008】
本発明における上述の未完了状態とは、当該メモリブロックに対するデータ書き込み操作が未完了であることを示しており、当該完了状態とは当該メモリブロックに対するデータ書き込み操作がすでに完了していることを示している。そのうち、当該データ書き込み操作の手順には、以下のものを含む。新しいデータの受け取りを指定したメモリブロック800中の、保留が必要なデータを当該メモリブロック900にコピーする。あるいは当該メモリブロック900に新しいデータを書き込む。あるいは当該元のメモリブロック800のデータを当該メモリブロック900にコピーし、かつ当該元のメモリブロック800および/あるいは900に新しいデータを書き込む。上記手順において、新データの受け取りを指定したメモリブロックとは、データを書き込むコマンド中で指定した目標アドレスに基づいて、フラッシュメモリー内で探し当てた対応するアドレスのメモリブロックのことを指す。
【0009】
本発明のもうひとつの目的に基づき、本発明は、フラッシュメモリー内にデータを書き込む方法も提供している。当該フラッシュメモリーには多数のメモリブロックがあり、各メモリブロックは多数のページで構成されており、また各ページにはデータ保存エリアと冗長エリアがある。手順には以下のものを含む。
【0010】
新データを書き込むコマンドを受ける。当該フラッシュメモリー内の、書き込みコマンドが指定したロジックアドレスと対応するメモリブロック800を検索する。検索したメモリブロック800が空かどうか判断し、もしメモリブロック800が空ならば、検索したメモリブロック800に新しいデータを書き込む。もし空でなければ、空の新ブロック900を検索する。メモリブロック800の保留するデータを当該新ブロック900にコピーする。当該新ブロック900中の少なくとも1ページの冗長エリアのステータスフラグを未完了状態に設定して、当該新ブロック900に新データを書き込む。当該元のブロック800を削除し、当該新ブロック900の当該ステータスフラグを未完了状態から完了状態に設定する。
【0011】
上記のデータ書き込みの方法において、当該保留するデータとは、元のブロックが記録した元のデータのなかで、新しく書きこまれるデータにカバーされない部分のことである。当該保留するデータとは、元のブロック内にあるすべての元データ、またはその一部のことである。
【0012】
また、別の目的に基づき、本発明は、フラッシュメモリー内のデータをリカバーさせる方法を提供する。当該フラッシュメモリーが上記のデータ管理方法を採用すると、電源切れによるデータが損失するような状況に備えて、フラッシュメモリーの使用過程において電源を入れるたびに、以下の手順でデータをリカバーさせる。ステータスフラグが未完了状態のメモリブロックを検査することで、保留が必要なデータが存在するメモリブロックを検索し、データのリカバー操作を行う。
【0013】
また、別の目的に基づき、本発明は、フラッシュメモリー内の空のメモリブロックを確実に使用できるよう確保する方法を提供する。当該フラッシュメモリーが上記の操作過程中に電源切れした後、再び電源を入れたとき、冗長エリアがすべてロジック「1」で、データ保存エリアの一部がロジック「1」以外となっているメモリブロックを検索して消去し、全ての冗長エリアが空のメモリブロックを使用できるよう保証する。
【0014】
たとえばロジック「1」のように、ロジック値は、数値か文字列あるいは数字と文字列の組合せで表示することができる。
【発明の効果】
【0015】
本発明が提供するデータ管理方法を採用することにより、メモリブロックにステータスフラグを設置することで、フラッシュメモリーに対して新しいデータを書き込む過程において、たとえ人為的な誤操作や予想外の電源切れが発生したとしても、フラッシュメモリー内に元々ある保留すべきデータが失わないようにすることができる。また、上記原因によって作られたメモリブロックが完全に消去されず、再び読み込み書き込み時に間違いがおこる状況を避けることが出来る。
【0016】
本発明の方法を用いれば、あらかじめ突然の電源切れが発生する前に記録した元データを完全に保存し、あわせてフラッシュメモリー内すべての空きメモリブロックを用いることができるため、フラッシュメモリーの安定性、データの安全性、耐障害性の性能を向上させている。
【0017】
次に、図面にあわせて本発明の具体的な実施例について詳細に説明する。
【発明を実施するための最良の形態】
【0018】
図2が示すのは、現存するフラッシュメモリーの物理構造である。当該フラッシュメモリーの最小物理メモリーの単位はページ(Page)で、多数のページで1つのメモリブロック(Block、すなわち物理ブロック)が構成されている。各チップは多数のメモリブロックを有している。また、当該各ページにはデータ保存エリアと冗長エリアがある。たとえばページごとに512バイトのデータ保存エリアと16バイトの冗長エリアを含む、あるいはページごとに2Kバイトのデータ保存エリアと64バイトの冗長エリアを含むことができる。
【0019】
当該冗長エリアのバイト配分方式は多種多様で、たとえば1つあるいは多バイトにステータスフラグを設定することで、そのページのメモリブロックのデータ状態および/あるいは作業状態を表示することができる。図3はフラッシュメモリーの冗長エリアのバイト配分の一例である。
【0020】
本発明により、当該ページの冗長エリアにステータスフラグを設置することで、当該ページのメモリブロックの状態を表示させる。当該ステータスフラグには、完了状態(Complete)と未完了状態(Incomplete)が含まれている。上記の未完了状態とは当該メモリブロックのデータに対する保存操作が完了していないことを表し、当該完了状態とは当該メモリブロックのデータに対して保存操作がすでに完了したことを表している。このほかに、当該冗長エリアすべてのビットがロジック「1」であるとき、すべてのページを「空」とマークして、そのページに新データを書き込むことができる。
【0021】
図3のように、本発明に基づく1つの実施例として、冗長エリアの第0番バイトを、ステータスフラグを立てるフラグビットとして採用している。しかしながら、この分野の一般の技術者には理解いただけると思うが、本発明はこれに止まらない。
【0022】
次に、図1と図4をあわせて、本発明のフラッシュメモリーのデータ管理方法を説明する。またこの管理方法に基づいて、フラッシュメモリーにデータを保存するどの段階で発生した突然の電源切れにおいても、データの安全性を確保できる可能性について、更に説明を行う。
【0023】
図1のように、当該フラッシュメモリーにおいて、本発明が提供するデータ管理方法を採用したとき、データ操作はメモリブロック800と900の間で行うことができる。
【0024】
図4のように、当該フラッシュメモリーが操作システムから新しいデータを書き込むコマンドを受け取った後(手順1)、メモリー装置のコントローラーは当該新しいデータを書き込むコマンドが指定したロジックアドレスに基づき、新しいデータを書き込むメモリブロック(以下元ブロックという)を検索する。手順2が示すとおりである。
【0025】
手順3で、検索したメモリブロック800が空かどうか判断する。
もしメモリブロック800が空ならば、検索したメモリブロック800に新しいデータを書き込む。手順3´が示すとおりである。
もしメモリブロック800が空でなければ、空のメモリブロック900(以下新ブロックという)を検索する。手順4が示すとおりである。
【0026】
次に手順5で、メモリー装置のコントローラーは当該元ブロック800中の保留が必要なデータを新ブロック900にコピーする。つまり元ブロックの保留が必要なデータに対し移動を実行する。移動を実行するのと同時に、新ブロック900の各ページのステータスフラグを未完了状態にする。
【0027】
そして、当該新しいデータを当該新ブロック900に書き込み、同時にそれと対応するページのステータスフラグを未完了状態にする(手順6)。その後、当該元ブロック800すべてのデータを削除する(手順7)。
【0028】
新ブロック900の全ページの冗長エリアのステータスフラグを未完了状態から完了状態にする(手順8)。
【0029】
本発明によるもう一つの実施方式は、新ブロックを検索した後、まずその中に新しいデータを書き込み、新ブロックのステータスフラグを未完了状態にするというものである。そして元ブロックの保留が必要なデータを新ブロックにコピーしてから、新ブロックのステータスフラグを完了状態にする。
【0030】
新ブロックにおいて、保留が必要なデータをコピーする手順(手順5)と、新データを書き込む手順(手順6)を同時進行することができる。進行過程において、新ブロックのステータスフラグを未完了状態にする。新ブロックへのコピー操作と書き込み操作がすべて完了した後、新ブロックのステータスフラグを完了状態にする。
【0031】
事実上、新データを書き込む手順(手順6)は、保留が必要なデータをコピーする手順(手順5)と交互に取り混ぜて行うことができる。
【0032】
当該メモリブロックに新しいデータを書き込む過程は、そのステータスフラグの設定過程とも交互に取り混ぜて行うことができる。
【0033】
元ブロックを削除する手順(手順7)についても、新ブロックのステータスフラグを完了状態にする手順(手順8)の後行うことができる。
【0034】
上記の本発明の実施例から分かるように、本発明のデータ管理方法の特徴は、新ブロックで操作を行う過程において、元ブロックの保留が必要なデータを新ブロックにコピーするとき、あるいは新ブロックで新しいデータを書き込むときに、新ブロックのステータスフラグを未完了状態にし、新ブロックのデータに対する操作が完了した後、新ブロックのステータスフラグを未完了状態から完了状態にすることである。
【0035】
このデータ管理方法を利用すれば、当該フラッシュメモリーにデータの書き込みを行う際、電源切れが発生したとしても、フラッシュメモリー内にあったデータが失われることはない。
【0036】
すなわち、上記のフラッシュメモリーのデータ管理方法を行うことによって、操作過程のどの手順において突然の電源切れが発生したとしても、再び電源が入ったとき、当該フラッシュメモリーは保留が必要なデータを復旧することができる。
【0037】
上記の実施例によれば、図4のように、保留が必要なデータを新ブロックにコピーする場合で、新ブロックのステータスフラグが未完了状態のとき(手順5中)に電源切れが発生した場合には、元ブロックの元データに対しコピー操作を行っているので、元ブロック中には元データが依然として保存され、電源切れにより壊れたのは新ブロックにコピー中の不完全な保存するデータのみとなる。これにより、再び電源を入れたとき、まず新ブロックを消去し、もう一度コピー操作を行うだけである。
【0038】
また、元ブロックの保留が必要なデータはすでに新ブロックにコピーしてあり、なおかつ新ブロックのステータスフラグをすべて未完了状態にした後、まだ新ブロックに新データを書き込む前(すなわち手順5の完了後、手順6の実行前)に中断が発生した場合においても、新ブロックの保留が必要なデータは無事であり、元ブロックの元データはそのまま保存されており、新データはまだ書き込まれておらず、中断による影響は新ブロックのステータスフラグが未完了状態であるということだけである。したがって、再度電源が入ったときには、新ブロックに新データを書き込み、新ブロックのステータスフラグを完了状態にするたけで済むのである。たとえ新ブロックに新しいデータを書き込む過程で中断が発生し(手順6の実行過程中)、電源切れが発生した後、一部のデータのみ新ブロックに書き込んでいたとしても、再び電源を入れたときに残りの新データを続けて書き込むだけで良いのである。
【0039】
もし中断が発生したのが、すでに書き込みが必要な新しいデータをすべて新ブロックに書き込んだ後だが、元ブロック中のデータの消去を始める前(手順6の完成後、手順7の開始前)だった場合、元ブロックには元データがそのまま保存されており、かつ保留が必要なデータと新しいデータはすでに新ブロック中に存在する。再び電源が入ったときには、新ブロックのステータスフラグを完了状態にし、元ブロックを消去するだけで良いのである。
【0040】
もし新ブロックのステータスフラグが完了状態の過程(手順8の実行中)において中断が発生したとすれば、ステータスフラグの修正操作は失敗する可能性がある。したがって再度電源が入ったとき新ブロックのステータスフラグを再び完了状態にするだけで良いのである。
【0041】
新ブロックを探し出す前に、データの読み書きがまだ発生せず、中断が発生したとしても、データを失うことはない。元ブロックの元データを消去しているときに中断が発生した場合には、元ブロックのデータの消去が不完全となるが、再び電源を入れたときにデータ復旧の作業をする必要はない。
【0042】
以上は本発明のデータ管理方法を実施したフラッシュメモリーが突然の電源切れに遭遇したときに、データをリカバーする可能性について説明したものである。
【0043】
次に、図4と図5を用いて、フラッシュメモリー内で実施した上記のデータ管理方法について具体的に説明する。そのフラッシュメモリーが突然の電源切れで操作を中断させられた後、該フラッシュメモリーに再度電源を入れた際のデータのリカバー方法についてである。当該メモリー装置のコントローラーはフラッシュメモリー内でステータスフラグが未完了状態のメモリブロック(前述の新ブロックのこと)を検索する。上述のデータ管理方法から、以下のことが分かる。つまり、メモリブロックのステータスフラグが未完了状態であれば、このメモリブロックが中断前のデータを書き込む手順において使用されたこと、なおかつエラーのデータを含む可能性があり、リカバーする必要があるということを証明しているのである。そこで、コントローラーが当該新ブロックと同一のロジックアドレスを持つメモリブロックを検索する。このメモリブロックは、電源切れ前にデータを書き込む過程で元データを記録した元ブロックである。
【0044】
もし元ブロックを検索することができれば、中断は元ブロックを削除する手順(手順7)の前に発生したと説明できる。未完了ブロックの全ページの冗長エリアのステータスフラグがすべて未完了状態かどうか判断する。もし未完了状態であれば、すべての保留の必要なデータがすでに移動を完了され、書き込もうとするデータもすでに保存が完了したことになるため、元ブロックを削除して検索した新ブロックのステータスフラグを完了状態にする。もし当該新ブロック内の全ページのステータスフラグがすべて未完了状態ではないならば、新ブロックを削除し、元ブロックのステータスフラグを完了状態にし、対照表を修正する。
【0045】
もし、元ブロックを検索できなければ、中断の発生はおそらく元ブロックを削除する過程(手順7の過程)の最中、あるいは、元ブロックを消去する手順が完了した後だと言える。このときは、新ブロックのページのステータスフラグを完了状態にし、同時に前述のように対照表を修正する。
【0046】
当該対照表は当該フラッシュメモリーの物理アドレスとロジックアドレスのマップであり、対照表を修正することは、対照表で対応する新ブロックのロジックアドレスをコマンドのロジックアドレスに変更することである。
【0047】
本発明の実施例からわかるように、本発明のデータリカバー方法の特徴は、フラッシュメモリーのメモリブロックの、各ページの冗長エリアのステータスフラグの検査に基づいて、中断が発生したときのメモリブロックの状態を判断し、さらに保留が必要なデータを検索して、対応するデータのリカバー操作を行うということである。このことから、データ書き込み方法の手順に対して調整をおこない、データをリカバーする方法を変更することは、本発明のコンセプトから離れることではない。
【0048】
中断のために失う可能性のある元データのリカバーが完了した後、フラッシュメモリーの冗長エリアの全ビットがロジック「1」であるメモリブロックを、確実にすべて空とするために、削除操作の中断による残留データを排除するが、これにより次の読み書き操作で間違いがおこる可能性がある。このことから空の当該メモリブロックに対しデバッグを行う必要がある。
【0049】
本発明は、空のメモリーブロックを検査・デバッグする以下の方式を採用する。
まず第0ページの冗長エリア中におけるすべてのビットがロジック「1」のメモリブロックを検索し、そしてそのメモリブロックの全ページのビットがすべてロジック「1」かどうかを検査する。もしすべてがロジック「1」でなければ、そのメモリブロックに対し削除操作を行う。
【0050】
本発明によれば、データを復旧する作業が完了した後、全ての空のメモリブロックに対し上記のような検査・デバッグ処理を行うほうがよい。これによって削除が未完了の元ブロックを空にすることができ、冗長エリアが空のメモリブロックをすべて用いることができるようになる。
【0051】
本発明方法による、もう一つの実施例は以下の通りである。SSFDC協議に基いて当該フラッシュメモリーをいくつかに区分け(Zone)する。それぞれのゾーンは複数のメモリブロックにより構成されており、なおかつ各ゾーンには少なくとも1つの空メモリブロックを置き、保留が必要なデータを当該メモリブロックにコピーするために用いる。
【0052】
この実施例では、前述の実施例と類似したデータ管理方法を採用して、各ゾーン内のデータに対し管理を行う。その相違点は、新ブロックの検索範囲を元ブロックが存在するゾーンに限定し、なおかつデータを復旧する操作段階では、ステータスフラグが未完了状態のメモリブロック(新ブロック)を検索する範囲も当該ゾーンに限定するという点である。これにより、当該フラッシュメモリーにデータを書き込む速度とデータをリカバーする速度を向上させている。さらに、データの読み書き操作が同一ゾーン内の二つのメモリブロック間でのみ実行されることにより、当該フラッシュメモリー内のその他のゾーンでは、上記のデータを書き込む過程でエラーが発生せず、当該ゾーン内の空のメモリブロックを調べてデバッグを行うだけで良いのである。
【0053】
以上、この発明に対して例を示しながら説明した。当分野の一般技術者は既知のことだが、冗長エリアのステータスフラグに対する設定方法は1つだけではなく、新ブロックを検索する過程についても、すでに知られている様々な技術を採用することが可能である。本発明の真髄はデータを書き込むときにステータスフラグの設定を増やし、関連のメモリブロックの状態を識別することにより、突然の電源切れが発生した後も効果的にデータをリカバーでき、データの完全性を保証できることである。このため、本発明のコンセプトから離れることのない、本発明技術案に対する各種のモデルチェンジは、添付の本発明の権利要求が限定する保留範囲に収まるものとする。
【図面の簡単な説明】
【0054】
【図1】本発明のデータ管理方法においてフラッシュメモリーの元のメモリブロックとメモリブロックの略図である。
【図2】フラッシュメモリーのメモリブロックとページの組織構造を簡単に説明したものである。
【図3】フラッシュメモリーのメモリブロック内にある冗長エリアの区分けを簡単に説明したものである。
【図4】本発明に基づいたフラッシュメモリーのデータ管理方法である新データの書き込み実行例のフロー図である。
【図5】フラッシュメモリー装置に電気を入れたときのデータリカバー過程の実行例のフロー図である。

【特許請求の範囲】
【請求項1】
多数のメモリブロックを含む、各メモリブロックが多数のページで構成され、各ページがデータ保存エリアと冗長エリアが含まれているフラッシュメモリーのデータ管理方法であって、
前記多数のメモリブロック中、少なくとも1つのメモリブロック(900)の少なくとも1ページの冗長エリアにステータスフラグを設け、前記メモリブロック(900)におけるデータ保存の過程で、前記ステータスフラグを未完了状態にすることと、
前記メモリブロック(900)へのデータ保存が完了した後、前記ステータスフラグを完了状態にすること、
を特徴とするフラッシュメモリーのデータ管理方法。
【請求項2】
前記の未完了状態は、メモリブロック(900)のデータ保存操作がいまだ未完了であることを表しており、前記完了状態は、前記メモリブロック(900)のデータ保存操作がすでに完了していることを表すことを特徴する請求項1に記載のフラッシュメモリーのデータ管理方法。
【請求項3】
前記データ保存の操作の手順は、新データの受け取りを指定したメモリブロック(800)中の保留が必要なデータを、メモリブロック(900)にコピーすることを含むことを特徴とする請求項1に記載のフラッシュメモリーのデータ管理方法。
【請求項4】
前記メモリブロック(900)がデータ保存を完了した後、前記保留が必要なデータが存在する元のメモリブロック(800)を削除することを特徴とする請求項3に記載のフラッシュメモリーのデータ管理方法。
【請求項5】
前記メモリブロック(900)でのデータ保存手順には、前記メモリブロック(900)に新データを書き込むことが含まれていることを特徴とする請求項1に記載のフラッシュメモリーのデータ管理方法。
【請求項6】
前記メモリブロック(900)でのデータ保存手順は、前記元のメモリブロック(800)のデータを前記メモリブロック(900)にコピーし、かつ前記元のメモリブロック(800)および/あるいは(900)に新データを書き込むことを含むことを特徴とする請求項1に記載のフラッシュメモリーのデータ管理方法。
【請求項7】
さらに、元のメモリブロック(800)のデータを削除した後、前記メモリブロック(900)のステータスフラグを完了状態にすることを含むことを特徴とする請求項1〜請求項6のいずれの1つに記載のフラッシュメモリーのデータ管理方法。
【請求項8】
前記ステータスフラグは、メモリブロックの冗長エリア内の1バイトあるいは複数のバイトを使用するか、または冗長エリア内の1ビットあるいは複数のビットを使用することを特徴とする請求項1に記載のフラッシュメモリーのデータ管理方法。
【請求項9】
前記操作過程で電源切れがあった後、再度電源を入れたとき、すべての空きメモリブロックを使用できるよう、冗長エリアのすべてがロジック「1」で、かつデータ保存エリアの一部がロジック「1」以外となっているメモリブロックを検索して削除することを特徴とする請求項1に記載のフラッシュメモリーのデータ管理方法。
【請求項10】
多数のメモリブロックを含み、各メモリブロックが多数のページで構成され、各ページにはデータ保存エリアと冗長エリアが含まれているフラッシュメモリーにデータの書き込み方法であって、
(1)新データの書き込みコマンドを受け取る手順と、
(2)前記フラッシュメモリーにおいて前記書き込みコマンドが指定されたロジックアドレスと対応したメモリブロック(800)を検索する手順と、
(3)検索されたメモリブロック(800)が空かどうか判断する手順と、
(4)もしメモリブロック(800)が空ならば、検索されたメモリブロック(800)に新データを書き込み、もし空でなければ、空の新ブロック(900)を検索する手順と、
(5)メモリブロック(800)で保留しようとするデータを前記新ブロック(900)にコピーし、かつ前記新ブロック(900)で少なくとも1ページの冗長エリアのステータスフラグを未完了状態にする手順と、
(6)前記新ブロック(900)に新データを書き込む手順と、
(7)前記元ブロック(800)を削除する手順と、
(8)前記新ブロック(900)の前記ステータスフラグを未完了状態から完了状態にする手順とを含むフラッシュメモリーにデータの書き込み方法。
【請求項11】
前記新ブロック(900)に新データを書き込む過程で、前記ステータスフラグを未完了状態にすることを特徴とする請求項10に記載のフラッシュメモリーにデータの書き込み方法。
【請求項12】
前記新ブロック(900)に新データを書き込む手順は、手順(5)を行う前か、あるいは手順(5)を行っている過程に組み込むことができることを特徴とする請求項10に記載のフラッシュメモリーにデータの書き込み方法。
【請求項13】
前記元のメモリブロック(800)のデータを削除する手順は、手順(8)をおこなった後に組み込むことができることを特徴とする請求項10に記載のフラッシュメモリーにデータの書き込み方法。
【請求項14】
前記メモリブロックが空かどうかを確定する手順は、前記メモリブロックの全ページの冗長エリアにおける、すべてのビットがロジック「1」かどうかを判断することが含まれていることを特徴とする請求項10に記載のフラッシュメモリーにデータの書き込み方法。
【請求項15】
前記フラッシュメモリーが請求項1で述べたデータ管理方法を用いており、前記フラッシュメモリーの使用過程において電源を入れるたびに、電源切れにより発生した可能性のあるデータ破損に対するフラッシュメモリーのデータリカバー方法であって、
ステータスフラグが未完了状態のメモリブロック(900)の検査により、保留が必要なデータが存在するメモリブロックを見つけ、あわせてデータリカバー操作を実行する手順を含むこと特徴とするフラッシュメモリーのデータリカバー方法。
【請求項16】
前記データのリカバー操作は、前記元のメモリブロック(800)のデータを保留し、なおかつメモリブロック(900)に対して削除操作を行うことを含むことを特徴とする請求項15に記載のフラッシュメモリーのデータリカバー方法。
【請求項17】
前記データのリカバー操作は、前記元のメモリブロック(800)に対して削除操作を行い、さらに前記メモリブロック(900)のステータスフラグを完了状態に変更することを含むことを特徴とする請求項15に記載のフラッシュメモリーのデータリカバー方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公表番号】特表2006−519444(P2006−519444A)
【公表日】平成18年8月24日(2006.8.24)
【国際特許分類】
【出願番号】特願2006−504193(P2006−504193)
【出願日】平成16年2月26日(2004.2.26)
【国際出願番号】PCT/CN2004/000145
【国際公開番号】WO2004/079575
【国際公開日】平成16年9月16日(2004.9.16)
【出願人】(505330929)深▲せん▼市朗科科技有限公司 (5)
【Fターム(参考)】