JP2001051889A - 不揮発性半導体記憶装置を用いたファイルシステム - Google Patents

不揮発性半導体記憶装置を用いたファイルシステム

Info

Publication number
JP2001051889A
JP2001051889A JP11254973A JP25497399A JP2001051889A JP 2001051889 A JP2001051889 A JP 2001051889A JP 11254973 A JP11254973 A JP 11254973A JP 25497399 A JP25497399 A JP 25497399A JP 2001051889 A JP2001051889 A JP 2001051889A
Authority
JP
Japan
Prior art keywords
block
data
erase
sector
file system
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
JP11254973A
Other languages
English (en)
Other versions
JP3797649B2 (ja
Inventor
Nobuaki Tomori
宣昭 戸森
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.)
Sharp Corp
Original Assignee
Sharp Corp
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 Sharp Corp filed Critical Sharp Corp
Priority to JP25497399A priority Critical patent/JP3797649B2/ja
Priority to US09/568,529 priority patent/US6513095B1/en
Publication of JP2001051889A publication Critical patent/JP2001051889A/ja
Application granted granted Critical
Publication of JP3797649B2 publication Critical patent/JP3797649B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • G11C16/105Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written

Abstract

(57)【要約】 【課題】 動作中に意図しない電力供給の遮断が発生し
ても、不揮発性半導体記憶装置内に格納されているデー
タを正常に読み出すことを可能にする。 【解決手段】 各消去ブロック毎に、消去ブロックにつ
いての複数の状態情報のいずれかを格納すると共に、該
各セクタ毎に、セクタについての複数の状態情報のいず
れかをファイルシステムメモリ部3及びフラッシュメモ
リ部5に格納している。ファイルシステムメモリ部3内
の各消去ブロックの状態情報及び各セクタの状態情報
は、ファイルシステム1の起動時に、フラッシュメモリ
部5内の該データを読み出すことによって作成され、フ
ァイルシステム制御部2は、ファイルシステムメモリ部
3内の各消去ブロックの状態情報及び各セクタの状態情
報に基いて、フラッシュメモリ部5からデータを読み出
すと共に、動作中に意図しない電力供給の遮断時におい
てもフラッシュメモリ部5内のデータを保証する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、フラッシュメモリ
等の不揮発性半導体記憶装置を用いたファイルシステム
に関するものである。
【0002】
【従来の技術】最近、データを電気的に書き込み及び消
去することが可能な不揮発性半導体記憶装置(例えばフ
ラッシュメモリ)を、データを磁気的に書き込み及び消
去することが可能なハードディスクドライブの代替とし
て用いるための技術が注目されている。
【0003】フラッシュメモリは、ハードディスクドラ
イブと比較して、データの読み出し速度が約1万倍程度
かつデータの書き込み速度が約1千倍程度速く、また小
型軽量化を図り易く耐衝撃性に優れ、可搬性が高い等の
特長を備え、更に低容量のデータを高速に格納しかつ読
み出すという用途には好適である。
【0004】しかしながら、フラッシュメモリにおいて
は、既にデータが書き込まれている記憶領域に新しくデ
ータを書き込むには、書き込まれているデータを一旦消
去するという動作が必要となる。しかも、データを消去
する単位が数キロバイトと大きく、数十ミリ秒から数秒
と比較的長いデータ消去時間が必要であり、データの書
き込み及び消去の保証回数が有限であるという欠点があ
る。
【0005】このため、フラッシュメモリをハードディ
スクドライブの代替として用いる場合は、上記欠点を踏
まえ、データの取り扱い単位をハードディスクドライブ
並みの数百バイト程度に小さくし、なるべくデータ消去
を行なわず、効率良くデータを管理するための仕組み、
つまりフラッシュメモリに対応したファイルシステムを
提供する必要がある。この様なファイルシステムは、例
えば特開平6−95955号公報に開示されている。
【0006】また、米国特許5,544,119号に
は、電力供給遮断後の電力復旧時の処理方法が示され、
米国特許5,544,356号には、ファイルシステム
の再構築方法が示されている。
【0007】
【発明が解決しようとする課題】しかしながら、上記公
報に記載の技術においては、電源として電池等を用いた
電力供給が不安定な環境下で、フラッシュメモリや各種
の制御を行うファイルシステムが使用される状況を想定
しておらず、フラッシュメモリあるいはファイルシステ
ムの動作中に、電池の消耗等により電力供給が一瞬でも
遮断されたとき、つまり意図しない電力供給の遮断が発
生したときには、フラッシュメモリに格納されているデ
ータを正常に読み出せなくなるという可能性があった。
【0008】具体的には、第1に、データが格納された
記憶領域(以下セクタと呼称する)の現在の状態をセク
タ状態情報によって表しているが、このセクタ状態情報
が「未使用」、「使用中」、「無効」という3種類の状
態のいずれかを表しているに過ぎないため、セクタのデ
ータを更新するに際し、電力供給の遮断が発生すると、
データが正常に更新されなくても、セクタ状態情報に基
いてデータを正常とみなしてしまうことがあった。この
セクタのデータの更新処理を図10のフローチャートに
従って次に述べる。
【0009】図10のフローチャートによれば、まず更
新される既存のデータを格納している1つのセクタのセ
クタ状態情報を「使用中」から「無効」へ変更し(ステ
ップ101)、次にもう1つのセクタのセクタ状態情報
を「未使用」から「使用中」へ変更し(ステップ10
2)、この後にセクタ状態情報が「使用中」となったセ
クタに対して更新データを書き込む(ステップ10
3)。ステップ101〜103を書き込むデータがなく
なるまで繰り返す。
【0010】ここで、ステップ102の直後あるいはス
テップ103の実行中において、電力供給の遮断が発生
し、フラッシュメモリに対するデータの書き込みが中断
すると、更新データのセクタへの書き込みが正常に終了
していないにもかかわらず、このセクタのセクタ状態情
報が「使用中」となる。このため、電力供給が回復した
ときに、ファイルシステムは、このセクタに格納されて
いるデータを有効であると誤認してしまう。
【0011】第2に、1つのブロック内の全てのデータ
を消去して、ファイルシステムを再構築するに際し、電
源の遮断が発生すると、2つのブロックにおいて同じデ
ータを格納した状態、あるいは1つのブロック内の全て
のデータを完全に消去していない状態が発生することが
あった。このファイルシステムの再構築の処理を図11
のフローチャートに従って次に述べる。
【0012】図11のフローチャートによれば、まず全
てのセクタが消去され、全てのセクタのセクタ状態情報
が「未使用」である予備ブロックを予め確保しておき、
全てのデータが消去されるブロックにおける保存すべき
データ、つまりセクタ状態情報が「無効」であるセクタ
のデータ及びセクタ状態情報を除く他の全てのデータを
予備ブロックにコピーし(ステップ111)、更に全て
のデータが消去されるブロックにおけるセクタ状態情報
が「無効」であるセクタ以外の位置情報に含まれるブロ
ック番号を予備ブロックのブロック番号に更新する(ス
テップ112)。最後に、データのコピー元であるブロ
ックを消去し、次回のファイルシステム再構築時の予備
ブロックとして確保する(ステップ113)。
【0013】ここで、ステップ113の実行前あるいは
ステップ113の実行中において、電力供給の遮断が発
生すると、電力供給が回復したときに、2つのブロック
において同じデータを格納した状態、あるいは1つのブ
ロック内の全てのデータを完全に消去できていない状態
が発生し、新たな予備ブロックを確保できない。
【0014】そこで、本発明は、上記従来の問題に鑑み
なされたものであり、電力供給の遮断が発生しても、フ
ラッシュメモリに格納されているデータを正常に読み出
すことが可能な不揮発性半導体記憶装置を用いたファイ
ルシステムを提供することを目的とする。
【0015】
【課題を解決するための手段】上記課題を解決するため
に、本発明のファイルシステムは、複数のセクタをそれ
ぞれ含む複数の消去ブロックを有する不揮発性半導体記
憶装置を用いたファイルシステムにおいて、該各消去ブ
ロック毎に、消去ブロックについての複数の状態情報の
いずれかを格納すると共に、該各セクタ毎に、セクタに
ついての複数の状態情報のいずれかを格納する記憶手段
と、該不揮発性半導体記憶装置のアクセス時に、該記憶
手段内の該各消去ブロックの状態情報及び該各セクタの
状態情報に基いて、該不揮発性半導体記憶装置に既に格
納されているデータを保証する保証手段とを具備する。
【0016】本発明によれば、ブロックについての複数
の状態情報及びセクタについての複数の状態情報を記憶
手段に格納している。このため、ファイルシステムが稼
働中において、意図しない電力供給の遮断が生じても、
電力供給が回復したときには、起動時の初期化処理に際
し、ブロックについての複数の状態情報及びセクタにつ
いての複数の状態情報に基いて、ブロック及びセクタの
状態を正確に把握してきめ細かにフラッシュメモリを管
理することができ、フラッシュメモリに格納されている
既存のデータを破壊することなく、また既存のデータに
矛盾を生じさせることなく、電力供給の遮断直前に実行
中であった前段階ヘファイルシステムを自動的に回復さ
せることが可能となる。
【0017】一実施形態では、前記記憶手段は、データ
の更新に制約の無いRAM上に設けられ、前記保証手段
は、前記不揮発性半導体記憶装置へのアクセス時に、該
RAM上の前記各消去ブロックの状態情報及び前記各セ
クタの状態情報を参照する。
【0018】この様にRAMを利用すると、データの更
新に制約がなくなり処理速度が早くなる。
【0019】一実施形態では、前記消去ブロックについ
ての複数の状態情報として、「未使用」、「データ
有」、「ブロックフル」、「データ転送中」、「元ブロ
ック消去中」という少なくとも5つの状態を設定してお
り、前記保証手段は、再構築用に予め確保されている予
備ブロックの状態情報を「未使用」から「データ転送
中」へ更新する手段と、データ転送元の消去ブロック内
のデータを該予備ブロックへ転送して記憶させる手段
と、該データの転送並びに記憶の完了後、該予備ブロッ
クのブロック状態情報を「データ転送中」から「元ブロ
ック消去中」へ更新し、該データ転送元の消去ブロック
のデータを消去し、このデータ転送元の消去ブロックを
新たな予備ブロックとして確保し、この新たな予備ブロ
ックの状態情報を「データ有」あるいは「ブロックフ
ル」から「未使用」へ更新する手段と、データ転送先の
該予備ブロックの状態情報を「元ブロック消去中」から
「データ有」へ更新する手段とを含む。
【0020】この様に消去ブロックの状態情報として
「未使用」、「データ有」、「ブロックフル」、「デー
タ転送中」、「元ブロック消去中」という5つの状態を
利用した場合、ブロックの状態を正確に把握してきめ細
かにフラッシュメモリを管理することができ、フラッシ
ュメモリに格納されている既存のデータを破壊すること
なく、また既存のデータに矛盾を生じさせることなく、
電力供給の遮断直前に実行中であった前段階ヘファイル
システムを自動的に回復させることが可能となる。
【0021】一実施形態では、再構築用に予め確保され
ている予備ブロックは、1個の不揮発性半導体記憶装置
に含まれるブロックサイズが異なる各消去ブロック毎
に、少なくとも1個以上有する。
【0022】この場合、均等ブロックあるいはブートブ
ロック構成のフラッシュメモリのうちからシステムの目
的に合わせた、あるいはより安価なフラッシュメモリを
採用することが可能となる利点がある。
【0023】一実施形態では、再構築用に予め確保され
ている予備ブロックは、複数個の不揮発性半導体記憶装
置に含まれるブロックサイズが異なる各消去ブロック毎
に、少なくとも1個以上有する。
【0024】この場合、ファイルシステムが必要とする
予備ブロックの数を少なくできる利点がある。このた
め、ファイルシステムが安価に構成できる利点もある。
【0025】一実施形態では、再構築用に予め確保され
ている予備ブロックは、消去ブロックのサイズ以上のサ
イズを有する。
【0026】この場合は、ブートブロック(例えば8K
バイトのサイズ)用の予備ブロックとして、8Kバイト
より大きいサイズのブロック(例えば64Kバイトのサ
イズ)を予備ブロックに割り当て、予備ブロックのサイ
ズを一定にできるため、管理が簡単になる。
【0027】本発明のファイルシステムは、複数のセク
タを有する不揮発性半導体記憶装置を用いたファイルシ
ステムにおいて、該各セクタ毎に、セクタについての複
数の状態情報のいずれかを格納する記憶手段と、該不揮
発性半導体記憶装置のアクセス時に、該記憶手段内の該
各セクタの状態情報に基いて、該不揮発性半導体記憶装
置に既に格納されているデータを保証する保証手段とを
具備し、前記セクタについての複数の状態情報として、
「未使用」、「データ書き込み中」、「データ書き込み
完了」、「データ有効」、「データ無効」という少なく
とも5つの状態を設定しており、前記保証手段は、デー
タが書き込まれるセクタの状態情報を「未使用」から
「データ書き込み中」へ更新する手段と、該セクタへの
データの書き込みが完了した後、該セクタの状態情報を
「データ書き込み中」から「データ書き込み完了」へ更
新する手段と、該セクタにデータを新規に書き込んだ場
合は、該セクタの状態情報を「データ書き込み完了」か
ら「データ有効」へ更新し、該セクタに既存のデータの
更新データを書き込んだ場合は、該既存のデータが書き
込まれている他のセクタの状態情報を「データ有効」か
ら「データ無効」に更新後、該更新データが書き込まれ
ている該セクタの状態情報を「データ書き込み完了」か
ら「データ有効」へ更新する。
【0028】本発明によれば、セクタについての5つの
状態情報を記憶手段に格納している。このため、ファイ
ルシステムが稼働中において、意図しない電力供給の遮
断が生じても、電力供給が回復したときには、起動時の
初期化処理に際し、セクタについての複数の状態情報に
基いて、セクタの状態を正確に把握してきめ細かにフラ
ッシュメモリを管理することができ、フラッシュメモリ
に格納されている既存のデータを破壊することなく、ま
た既存のデータに矛盾を生じさせることなく、電力供給
の遮断直前に実行中であった前段階ヘファイルシステム
を自動的に回復させることが可能となる。
【0029】他の実施形態では、前記消去ブロックにつ
いての複数の状態情報として、「未使用」、「データ
有」、「データ転送中」、「元ブロック消去中」、「元
ブロックフォーマット中」という少なくとも5つの状態
を設定しても良い。
【0030】この場合、再構築用に予め確保されている
予備消去ブロックの状態情報を「未使用」から「データ
転送中」へ更新する手段と、データ転送元の消去ブロッ
ク内のデータを該予備消去ブロックヘ転送して記憶させ
る手段と、該データの転送並びに記憶の完了後、該予備
消去ブロックのブロック状態情報を「データ転送中」か
ら「元ブロック消去中」へ更新し、該データ転送元の消
去ブロックのデータを消去し、このデータ転送元の消去
ブロックを新たな予備消去ブロックとして確保し、この
新たな予備消去ブロックの状態情報を「データ有」から
「未使用」へ更新する手段と、データ転送先の該予備消
去ブロックの状態情報を「元ブロック消去中」から「元
ブロックフォーマット中」へ更新し、データ転送元の新
たな予備消去ブロックヘ新たな予備消去ブロックの消去
可能回数などを書き込む(フォーマットする)手段と、
フォーマット完了後、データ転送先の該予備消去ブロッ
クの状態情報を「元ブロックフォーマット中」から「デ
ータ有」へ更新する手段とを含む構成が考えられる。
【0031】この様に、消去ブロックの状態情報として
「未使用」、「データ有」、「データ転送中」、「元ブ
ロック消去中」、「元ブロックフォーマット中」という
5つの状態を利用した場合、消去ブロックの状態を正確
に把握してきめ細かにフラッシュメモリを管理すること
ができ、フラッシュメモリに格納されている既存のデー
タを破壊することなく、また既存のデータに矛盾を生じ
させることなく、電力供給の遮断直前に実行中であった
前段階ヘファイルシステムを自動的に回復させることが
可能となる。また、消去ブロックの状態情報として「ブ
ロックフル」という状態を設定しない方法は、消去ブロ
ックが不均等なサイズのセクタに分割されて使用される
場合に特に有効である。なぜならば、不均等なサイズの
データを同一の消去ブロック内の連続したセクタに書き
込む場合において、次に書き込むべきデータのサイズが
不明である場合に、消去ブロックの状態情報が「ブロッ
クフル」となるかどうかの判断が難しいためである。
【0032】電力供給が回復した時のファイルソステム
の初期化において、前記消去ブロックの状態情報として
「元ブロック消去中」の消去ブロックが存在するか検索
し、該消去ブロックが存在する場合は、該消去ブロック
の論理ブロック番号と同一の論理ブロック番号を有し、
消去ブロックの状態情報が「データ有」あるいは「ブロ
ックフル」である消去ブロックを、前記記憶手段内の各
消去ブロックの状態情報から取得する手段と、取得した
消去ブロックのデータを消去し、消去完了後、この消去
ブロックの状態情報を「データ有」あるいは「ブロック
フル」から「未使用」へ更新する手段と、消去ブロック
の状態情報が「元ブロック消去中」の消去ブロックの状
態情報を「元ブロック消去中」から「データ有」へ更新
する手段とを含んでもよい。
【0033】前記消去ブロックについての複数の状態情
報として、「未使用」、「データ有」、「データ転送
中」、「元ブロック消去中」、「元ブロックフォーマッ
ト中」という少なくとも5つの状態を設定しており、前
記保証手段は、ファイルシステムの再構築用に予め確保
されている予備消去ブロックの状態情報を「未使用」か
ら「データ転送中」へ更新する手段と、データ転送元の
消去ブロック内のデータを該予備消去ブロックヘ転送し
て記憶させる手段と、該データの転送並びに記憶の完了
後、該予備消去ブロックの状態情報を「データ転送中」
から「元ブロック消去中」へ更新し、データ転送元の消
去ブロックのデータを消去し、消去完了後、このデータ
転送元の消去ブロックを新たな予備消去ブロックとして
確保し、この新たな予備消去ブロックの状態情報を「デ
ータ有」から「未使用」へ更新する手段と、データ転送
先の該予備消去ブロックの状態情報を「元ブロック消去
中」から「元ブロックフォーマット中」へ更新し、デー
タ転送元の新たな予備消去ブロックをフォーマットする
手段と、フォーマット完了後、データ転送先の該予備消
去ブロックの状態情報を「元ブロックフォーマット中」
から「データ有」へ更新する手段とを含んでもよい。
【0034】前記消去ブロックは、ブロック消去可能回
数を各消去ブロック内に記憶しており、前記フォーマッ
ト時において、新たな予備消去ブロックに該予備消去ブ
ロックの消去可能回数から1減じた回数を該予備消去ブ
ロック内に記憶する手段と、ファイルシステムの再構築
時には、該予備消去ブロックを除いた全ての消去ブロッ
クの中で、ブロック消去回数が最大の消去ブロックをデ
ータ転送元として選択する手段とを含んでもよい。
【0035】前記ブロック消去可能回数が0以下の値に
なった時点で、該消去ブロックの使用を禁止してもよ
い。
【0036】前記消去ブロックは、ブロック消去可能回
数を各消去ブロック内に記憶しており、前記フォーマッ
ト時において、新たな予備消去ブロックに該予備消去ブ
ロックの消去回数に1増加した回数を該予備消去ブロッ
ク内に記憶する手段と、ファイルシステムの再構築時に
は、該予備消去ブロックを除いた全ての消去ブロックの
中で、ブロック消去回数が最大の消去ブロックをデータ
転送元として選択する手段とを含んでもよい。
【0037】前記ブロック消去可能回数が消去可能回数
の仕様値(最大値)以上の値になった時点で、該消去ブ
ロックの使用を禁止してもよい。
【0038】ファイルシステムの再構築用に予め確保さ
れている予備消去ブロックは、1個の不揮発性半導体記
憶装置に含まれるブロックサイズが異なる各消去ブロッ
ク毎に、少なくとも1個以上有してもよい。
【0039】ファイルシステムの再構築用に予め確保さ
れている予備消去ブロックは、複数個の不揮発性半導体
記憶装置に含まれるブロックサイズが異なる各消去ブロ
ック毎に、少なくとも1個以上有してもよい。
【0040】ファイルシステムの再構築用に予め確保さ
れている予備消去ブロックは、消去ブロックサイズ以上
のサイズを有してもよい。
【0041】複数のセクタを有する不揮発性半導体記憶
装置を用いたファイルシステムにおいて、該各セクタ毎
に、セクタについての複数の状態情報のいずれかを格納
する記憶手段と、該不揮発性半導体記憶装置へのアクセ
ス時に、該記憶手段内の該各セクタの状態情報に基い
て、該不揮発性半導体記憶装置に既に格納されているデ
ータを保証する保証手段とを具備し、前記セクタについ
ての複数の状態情報として、「未使用」、「データ書き
込み中」、「データ書き込み完了」、「データ有効」、
「データ無効」という少なくとも5つの状態を設定して
おり、前記保証手段は、データが書き込まれるセクタの
状態情報を「未使用」から「データ書き込み中」へ更新
する手段と、該セクタヘのデータの書き込みが完了した
後、該セクタの状態情報を「データ書き込み中」から
「データ書き込み完了」へ更新する手段と、該セクタに
データを新規に書き込んだ場合は、該セクタの状態情報
を「データ書き込み完了」から「データ有効」へ更新
し、該セクタに既存のデータの更新データを書き込んだ
場合は、該既存のデータが書き込まれている他のセクタ
の状態情報を「データ有効」から「データ無効」に更新
後、該更新データが書き込まれている該セクタの状態情
報を「データ書き込み完了」から「データ有効」へ更新
する手段とを含んでもよい。
【0042】電力供給が回復した時のファイルシステム
の初期化において、前記消去ブロックの状態情報として
「元ブロック消去中」の消去ブロックが存在するか検索
し、該消去ブロックが存在する場合は、該消去ブロック
ヘのデータ転送元ブロックを、前記記憶手段内の各消去
ブロックの状態情報から取得する手段と、取得したデー
タ転送元ブロックのデータを消去し、消去完了後、この
消去ブロックの状態情報を「データ有」から「未使用」
へ更新する手段と、消去ブロックの状態情報が「元ブロ
ック消去中」の消去ブロックの状態情報を「元ブロック
消去中」から「元ブロックフォーマット中」へ更新し、
データを消去した消去ブロックをフォーマットして新た
な予備消去ブロックとして確保する手段と、フォーマッ
ト完了後、消去ブロックの状態情報が「元ブロックフォ
ーマット中」の消去ブロックの状態情報を「元ブロック
フォーマット中」から「データ有」へ更新する手段とを
含んでもよい。
【0043】電力供給が回復した時のファイルシステム
の初期化において、前記消去ブロックの状態情報として
「元ブロックフォーマット中」の消去ブロックが存在す
るか検索し、該消去ブロックが存在する場合は、該消去
ブロックヘのデータ転送元ブロックを、前記記憶手段内
の各消去ブロックの状態情報から取得する手段と、取得
したデータ転送元ブロックをフォーマットして新たな予
備消去ブロックとして確保する手段と、フォーマット完
了後、消去ブロックの状態情報が「元ブロックフォーマ
ット中」の消去ブロックの状態情報を「元ブロックフォ
ーマット中」から「データ有」へ更新する手段とを含ん
でもよい。
【0044】
【発明の実施の形態】以下、本発明の実施形態を添付図
面を参照して説明する。
【0045】図1は、本発明のファイルシステムの一実
施形態を示している。図1において、1はファイルシス
テム、2はファイルシステム1の処理を制御するファイ
ルシステム制御部、3はファイルシステム1が制御情報
を格納するために使用するファイルシステムメモリ部、
4はフラッシュメモリ部5へのデータ処理を制御するフ
ラッシュメモリ制御部、5はフラッシュメモリ部、6は
ファイルシステム1へデータの処理を依頼するアプリケ
ーションもしくはオペレーティングシステムである。
【0046】図2は、図1におけるフラッシュメモリ部
5に格納されているデータの構成図である。フラッシュ
メモリ部5の各消去ブロック51は、データの取扱い単
位である複数の物理セクタ52に分割されて配置されて
おり、各消去ブロック51内で一意の物理セクタ番号を
有する。各消去ブロック51のサイズが64Kバイト
で、各物理セクタ52のサイズが512バイトであると
した場合、各消去ブロック51には128個の物理セク
タ52が存在することになる。
【0047】ここで、フラッシュメモリ部5内の複数の
消去ブロック51のうちの任意の1個の消去ブロック5
1をファイルシステム1の再構築用に用いられるデータ
未書き込みの予備消去ブロックとして、また各消去ブロ
ック51の先頭のセクタ52をそれぞれの消去ブロック
の制御情報を絡納するブロックコントロールセクタ52
aとして、予め確保しておく。
【0048】消去ブロック51において、ブロックコン
トロールセクタ52aには、先頭から該消去ブロック5
1の状態情報としての2バイト、セクタ#1の物理セク
タ52の状態情報としての2バイト、セクタ#2〜#1
27の各物理セクタ52の状態情報としてのそれぞれの
2バイトが順次配列され、よって2バイト×128個=
256バイトの情報を有している。
【0049】消去ブロック51の状態情報は、ファイル
システム制御部2が割り当てを行う0〜255の論理ブ
ロック番号、及び5種類のブロック状態のいずれかを表
すデータからなる。5種類のブロック状態とは、(1)
「未使用」を表す11111111b(bは2進数を表
わす。以下同様)、(2)「データ転送中」を表す11
111110b、(3)「元ブロック消去中」を表す1
1111100b、(4)「データ有」を表す1111
1000b、(5)「ブロックフル」を表す11110
000bである。
【0050】消去ブロック51の各セクタ52の状態情
報は、消去ブロック51の状態情報と同様に、ファイル
システム制御部2が割り当てを行う0〜4095のシス
テム内で一意の論理セクタ番号、及び5種類のセクタ状
態のいずれかを表すデータからなる。5種類のセクタ状
態とは、(I)「未使用」を表す1111b、(II)
「データ書き込み中」を表す1110b、(III)
「データ書き込み完了」を表す1100b、(IV)
「データ有効」を表す1000b、(V)「データ無
効」を表す0000bである。
【0051】図3は、図1におけるファイルシステムメ
モリ部3に格納されている各消去ブロック51に関する
データの構成図(以下、ブロック情報表10と呼称)で
ある。
【0052】図3において、物理ブロック番号、論理ブ
ロック番号、及びブロック状態を1つの情報単位として
おり、例えば物理ブロック番号=0、論理ブロック番号
=0、ブロック状態=データ有となっている消去ブロッ
ク51、物理ブロック番号=1、論理ブロック番号=
1、ブロック状態=ブロックフルとなっている消去ブロ
ック51等が存在することを示している。
【0053】図4は、図1におけるファイルシステムメ
モリ部3に格納されている各セクタ52に関するデータ
の構成図(以下、セクタ情報表11と呼称)である。
【0054】図4において、物理ブロック番号、物理セ
クタ番号、論理セクタ番号、及びセクタ状態を1つの情
報単位としており、例えば物理ブロック番号=0、物理
セクタ番号=0、論理セクタ番号=100、セクタ状態
=データ有効となっているセクタ52、物理ブロック番
号=0、物理セクタ番号=1、論理セクタ番号=10、
セクタ状態=データ無効となっているセクタ52等が存
在することを示している。
【0055】図5は、図1におけるファイルシステムメ
モリ部3に格納されている各消去ブロック51毎に、各
セクタ52の数をそれぞれのセクタ状態に応じて整理し
たデータの構成図(以下、セクタ情報表12と呼称)で
ある。
【0056】図5において、物理ブロック番号、未使用
セクタ数、データ有効セクタ数、及びデータ無効セクタ
数を1つの情報単位としており、例えば物理ブロック番
号=0、未使用セクタ数=100、データ有効セクタ数
=20、データ無効セクタ数=7となっている消去ブロ
ック51、物理ブロック番号=1、未使用セクタ数=
0、データ有効セクタ数=50、データ無効セクタ数=
77となっている消去ブロック51等が存在することを
示している。
【0057】図3のブロック情報表10、図4のセクタ
情報表11、及び図5のセクタ情報表12は、ファイル
システム1が起動する段階において、フラッシュメモリ
部5から各消去ブロック51のブロックコントロールセ
クタ52aを読み出すことによってそれぞれ作成され
る。
【0058】ブロック情報表10、セクタ情報表11、
及びセクタ情報表12を作成しない場合においても、こ
れらの表の情報が各消去ブロック51のブロックコント
ロールセクタ52aに格納されているため、ファイルシ
ステム1を使用することは可能である。しかしながら、
ファイルシステムメモリ部3の動作速度がフラッシュメ
モリ部5よりも高速なため、ファイルシステムメモリ部
3にブロック情報表10、セクタ情報表11、及びセク
タ情報表12を作成して置いておく方が、フラッシュメ
モリ部5の内部状態やデータの格納場所を高速に把握す
ることができる。また、フラッシュメモリ部5とのデー
タのやり取りが減るので、ファイルシステムメモリ部3
を利用した方が、ファイルシステム1の動作速度を高速
にする上で非常に有効である。
【0059】図6は、本実施形態におけるフラッシュメ
モリ部5に格納されたデータの読み出し処理に関するフ
ローチャートである。
【0060】まず、アプリケーションもしくはオペレー
ティングシステム6においてフラッシュメモリ部5から
のデータの読み出し要求が発生した場合、この読み出し
要求と共に論理セクタ番号がアプリケーションもしくは
オペレーティングシステム6からファイルシステム制御
部2に与えられる。ファイルシステム制御部2は、ファ
イルシステムメモリ部3内のセクタ情報表11をアクセ
スして、与えられた論理セクタ番号を検索し、この論理
セクタ番号に対応するセクタ状態が「データ有効」とな
っていることを確認し、この論理セクタ番号に対応する
物理セクタ番号を取得し、この物理セクタ番号をフラッ
シュメモリ制御部4に与える(ステップ121)。フラ
ッシュメモリ制御部4は、この物理セクタ番号に基いて
フラッシュメモリ部5をアクセスし、この物理セクタ番
号に該当する物理的な格納場所のセクタに対して読み出
しを行い、読み出したデータをファイルシステム制御部
2に与える(ステップ122)。読み出すべき残りのデ
ータがある場合は、ステップ121へ戻り(ステップ1
23,Yes)、読み出すべき残りのデータがある場合
は、終了となる(ステップ123,No)。
【0061】図7A〜図7Cは、本実施形態におけるフ
ラッシュメモリ部5へのデータの書き込み処理に関する
フローチャートである。
【0062】まず、アプリケーションもしくはオペレー
ティングシステム6においてフラッシュメモリ部5への
データの書き込み要求が発生した場合、この書き込み要
求と共に論理セクタ番号及び書き込むデータがアプリケ
ーションもしくはオペレーティングシステム6からファ
イルシステム制御部2に与えられる。ファイルシステム
制御部2は、ファイルシステムメモリ部2内のセクタ情
報表12をアクセスして、未使用セクタ数が最も多い物
理ブロック番号(書き込み可能な消去ブロック51を示
す)を取得し(ステップ131)、取得できたかどうか
の確認を行い(ステップ132)、この物理ブロック番
号が取得出来なかった場合は(ステップ132,N
o)、書き込み可能な消去ブロック51を確保するため
に後述するファイルシステム1の再構築を行う(ステッ
プ133)。
【0063】また、未使用セクタ数が最も多い物理ブロ
ック番号を取得できれば(ステップ132,Yes)、
ファイルシステム制御部2は、セクタ情報表11をアク
セスして、ステップ131又は133において取得した
物理ブロック番号に対応する各物理セクタ番号のうちか
らセクタ状態が「未使用」となっている物理セクタ番号
を取得し、更にセクタ情報表12をアクセスして、該物
理ブロック番号に対応する未使用セクタ数を−1とし、
データ有効セクタ数を+1とする(ステップ134)。
【0064】この後、ファイルシステム制御部2は、ブ
ロック情報表10をアクセスして、ステップ131又は
133において取得した物理ブロック番号に対応するブ
ロック状態が「未使用」であるかの確認を行い(ステッ
プ135)、ブロック状態が「未使用」であれば(ステ
ップ135,Yes)、フラッシュメモリ制御部4を通
じてフラッシュメモリ部5をアクセスし、該物理ブロッ
ク番号に対応する消去ブロック51のブロックコントロ
ールセクタ52aの論理ブロック番号を該物理ブロック
番号に更新し、ブロックコントロールセクタ52aのブ
ロック状態を「未使用」から「データ有」へ更新する。
同様に、ブロック情報表10をアクセスし、ステップ1
31又は133において取得した物理ブロック番号に対
応する論理ブロック番号を該物理ブロック番号に更新
し、ブロック状態を「未使用」から「データ有」へ更新
し(ステップ136)、ステップ137に移る。ブロッ
ク状態が「未使用」でなければ(ステップ135,N
o)、ステップ136をジャンプしてステップ137に
移る。
【0065】次に、ファイルシステム制御部2は、セク
タ情報表12をアクセスし、ステップ131又は133
において取得した物理ブロック番号に対応する未使用セ
クタ数が0かの確認を行い(ステップ137)、未使用
セクタ数が0であれば(ステップ137,Yes)、フ
ラッシュメモリ制御部4を通じてフラッシュメモリ部5
をアクセスし、該物理ブロック番号に対応する消去ブロ
ック51のブロックコントロールセクタ52aのブロッ
ク状態を「データ有」から「ブロックフル」へ更新す
る。同様に、ブロック情報表10をアクセスし、ステッ
プ131又は133において取得した物理ブロック番号
に対応するブロック状態も「データ有」から「ブロック
フル」へ更新する(ステップ138)。
【0066】次に、ファイルシステム制御部2は、フラ
ッシュメモリ制御部4を通じてフラッシュメモリ部5を
アクセスし、ステップ131又は133において取得し
た物理ブロック番号並びにステップ134において取得
した物理セクタ番号に対応する消去ブロック51のブロ
ックコントロールセクタ52aの論理セクタ番号にファ
イルシステム制御部2に与えられた論理セクタ番号を書
き込み、このセクタ52のセクタ状態を「未使用」から
「データ書き込み中」へ更新する。同様に、セクタ情報
表11をアクセスし、ステップ131又は133におい
て取得した物理ブロック番号並びにステップ134にお
いて取得した物理セクタ番号に対応する論理セクタ番号
をファイルシステム制御部2に与えられた論理セクタ番
号に更新し、セクタ状態を「未使用」から「データ書き
込み中」へ更新する(ステップ139)。
【0067】この後、ファイルシステム制御部2は、フ
ラッシュメモリ制御部4を通じてフラッシュメモリ部5
をアクセスし、ステップ131又は133において取得
した物理ブロック番号並びにステップ134において取
得し物理セクタ番号に対応するセクタ52に、ファイル
システム制御部2に与えられたデータを書き込む(ステ
ップ140)。
【0068】ファイルシステム制御部2は、フラッシュ
メモリ部5内のセクタ52への書き込み終了後、ステッ
プ131又は133において取得した物理ブロック番号
並びにステップ134において取得した物理セクタ番号
に対応する消去ブロック51のブロックコントロールセ
クタ52aのセクタ状態を「データ書き込み中」から
「データ書き込み完了」へ更新する。同様に、セクタ情
報表11をアクセスし、ステップ131又は133にお
いて取得した物理ブロック番号並びにステップ134に
おいて取得した物理セクタ番号に対応するセクタ状態を
「データ書き込み中」から「データ書き込み完了」へ更
新する(ステップ141)。
【0069】そして、ファイルシステム制御部2は、フ
ラッシュメモリ部5内のセクタ52に書き込んだデータ
が既にフラッシュメモリ部5に書き込まれていたデータ
の更新データであるかの確認を行う(ステップ14
2)。ここで、既存データの更新であれば(ステップ1
42,Yes)、ファイルシステム制御部2は、セクタ
情報表11をアクセスして、ステップ140において書
き込みを実行したセクタ52の論理セクタ番号と同じ論
理セクタ番号を有しかつステップ140において書き込
みを実行したセクタ52の物理セクタ番号とは異なる他
のセクタ52の物理セクタ番号及び物理ブロック番号、
つまり既存のデータが格納されたセクタ52の物理セク
タ番号及び物理ブロック番号を取得する(ステップ14
3)。そして、ファイルシステム制御部2は、フラッシ
ュメモリ制御部4を通じてフラッシュメモリ部5をアク
セスし、これらの物理ブロック番号並びに物理セクタ番
号に対応する消去ブロック51のブロックコントロール
セクタ52aのセクタ状態を「データ有効」から「デー
タ無効」へ更新する。同様に、セクタ情報表11をアク
セスし、これらの物理ブロック番号並びに物理セクタ番
号に対応するセクタ状態を「データ有効」から「データ
無効」へ更新する。更に、セクタ情報表12をアクセス
し、この物理ブロック番号に対応するデータ有効セクタ
数を−1とし、データ無効セクタ数を+1する(ステッ
プ144)。
【0070】この後、ファイルシステム制御部2は、フ
ラッシュメモリ制御部4を通じてフラッシュメモリ部5
をアクセスし、ステップ131又は133において取得
した物理ブロック番号並びにステップ134において取
得した物理セクタ番号に対応する消去ブロック51のブ
ロックコントロールセクタ52aのセクタ状態を「デー
タ書き込み完了」から「データ有効」へ更新する。同様
に、セクタ情報表11をアクセスし、これらの物理ブロ
ック番号並びに物理セクタ番号に対応するセクタ状態も
「データ書き込み完了」から「データ有効」へ更新する
(ステップ145)。
【0071】引き続いて、ファイルシステム制御部2
は、書き込みデータがまだ残っているかの確認を行い
(ステップ146)、書き込みデータがまだ残っている
場合は(ステップ146,Yes)、ステップ131へ
戻り、書き込みデータがなくなれば(ステップ146,
No)、終了する。
【0072】図8A〜図8Bは、本実施形態におけるフ
ァイルシステム1の再構築処理に関するフローチャート
である。
【0073】まず、図7A〜図7Cのフローチャートで
説明した様に書き込み可能な消去ブロック51が取得出
来なかった場合は(ステップ132,No)、書き込み
可能な消去ブロック51を確保するためにファイルシス
テムの再構築を行う(ステップ133)。このステップ
133の処理が図8のフローチャートに示す処理に該当
する。
【0074】図8A〜図8Bにおいて、ファイルシステ
ム制御部2は、セクタ情報表12をアクセスし、データ
無効セクタ数が最も多い物理ブロック番号を取得し、更
にブロック情報表10をアクセスし、取得した物理ブロ
ック番号に対応する論理ブロック番号を取得する(ステ
ップ151)。そして、ファイルシステム制御部2は、
フラッシュメモリ制御部4を通じてフラッシュメモリ部
5をアクセスし、ファイルシステムの再構築処理用に予
め未使用状態で確保しておいた予備消去ブロック51の
ブロックコントロールセクタ52aの論理ブロック番号
をステップ151において取得した論理ブロック番号へ
更新し、このブロックコントロールセクタ52aのブロ
ック状態を「未使用」から「データ転送中」へ更新す
る。同様に、ブロック情報表10をアクセスし、予備消
去ブロック51の論理ブロック番号をステップ151に
おいて取得した論理ブロック番号へ更新し、ブロック状
態を「未使用」から「データ転送中」へ更新する(ステ
ップ152)。
【0075】次に、ファイルシステム制御部2は、デー
タをステップ151において取得した物理ブロック番号
の消去ブロック51から予備消去ブロック51ヘ効率良
くコピーするにために、セクタ情報表11をアクセス
し、ステップ151において取得した物理ブロック番号
に対応する各物理セクタ番号のうちからセクタ状態が
「データ有効」である物理セクタ番号を検索して取得す
る(ステップ153)。セクタ状態が「データ有効」の
セクタ52があれば(ステップ154,Yes)、ファ
イルシステム制御部2は、フラッシュメモリ制御部4を
通じてフラッシュメモリ部5をアクセスし、ステップ1
51において取得した物理ブロック番号並びにステップ
153において取得した物理セクタ番号に対応する消去
ブロック51のブロックコントロールセクタ52aのセ
クタ状態「データ有効」を予備消去ブロック51の同じ
物理セクタ番号に対応するブロックコントロールセクタ
52aのセクタ状態にコピーする。同様に、ファイルシ
ステム制御部2は、セクタ情報表11をアクセスし、ス
テップ151において取得した物理ブロック番号並びに
ステップ153において取得した物理セクタ番号のセク
タ状態「データ有効」を予備消去ブロック51の同じ物
理セクタ番号のセクタ状態にコピーする。同時に、ファ
イルシステム制御部2は、フラッシュメモリ制御部4を
通じてフラッシュメモリ部5をアクセスし、ステップ1
51において取得した物理ブロック番号並びにステップ
153において取得した物理セクタ番号に対応する消去
ブロック51のセクタ52から予備消去ブロック51の
同じ物理セクタ番号のセクタ52へとデータをコピーす
る(ステップ155)。
【0076】ファイルシステム制御部2は、ステップ1
51において取得した物理ブロック番号の消去ブロック
51に未処理のセクタ52があるかの確認を行う(ステ
ップ156)。未処理のセクタ52がある場合は、ステ
ップ153へ戻る。未処理のセクタ52がない場合は、
データのコピーが完了したため、ファイルシステム制御
部2は、セクタ情報表12をアクセスし、ステップ15
1において取得した物理ブロック番号に対応するデータ
有効セクタ数を予備消去ブロック51のデータ有効セク
タ数へコピーし、またデータ無効セクタ数を0とし、デ
ータ有効セクタ数とデータ無効セクタ数と未使用セクタ
数の和が総セクタ数(127)となる様に、未使用セク
タ数を計算して設定する(ステップ157)。
【0077】次に、ファイルシステム制御部2は、フラ
ッシュメモリ制御部4を通じてフラッシュメモリ部5を
アクセスし、予備消去ブロック51のブロックコントロ
ールセクタ52aのブロック状態を「データ転送中」か
ら「元ブロック消去中」へ更新し(ステップ158)、
ステップ151において取得した物理ブロック番号の消
去ブロック51のデータを消去し(ステップ159)、
予備消去ブロック51のブロックコントロールセクタ5
2aのブロック状態を「元ブロック消去中」から「デー
タ有」へ更新する。同様に、ファイルシステム制御部2
は、ブロック情報表10をアクセスし、予備消去ブロッ
ク51のブロック状態を「データ転送中」から「元ブロ
ック消去中」へ更新し(ステップ158)、ステップ1
59を経た後に予備消去ブロック51のブロック状態を
「元ブロック消去中」から「データ有」へ更新する。こ
れによって、ステップ151において取得した物理ブロ
ック番号のブロック、つまりデータを消去したブロック
が新しい予備消去ブロック51として確保される(ステ
ップ160)。
【0078】ここで、ステップ159においてデータを
消去した消去ブロック51のブロックコントロールセク
タ52aのブロック状態は、データ消去により自動的に
「データ有」あるいは「ブロックフル」から「未使用」
となる。また、ブロック情報表10、セクタ情報表11
及びセクタ情報表12では、ステップ159においてデ
ータを消去した消去ブロック51が予備消去ブロックと
なり、フラッシュメモリ部5へのデータの書き込みにお
いて予備消去ブロックが参照されることはないため、こ
の予備消去ブロックの物理ブロック番号に対応する項目
の更新は不要である。
【0079】なお、本実施例においては、ファイルシス
テム1の再構築の処理は、消去ブロック1つを消去する
場合を示したが、ステップ151からの一連の処理を複
数回実行することも可能である。
【0080】図9A〜図9Dは、本実施形態におけるフ
ァイルシステム1の初期化に関するフローチャートであ
る。この初期化は、ファイルシステム1の立ち上げ時、
つまり電力供給が一旦遮断された後の電力供給再開時に
一度実行され、フラッシュメモリ部5内のデータの読み
出しを保証するものである。
【0081】まず、ファイルシステム制御部2は、フラ
ッシュメモリ制御部4を通じてフラッシュメモリ部5を
アクセスし、各消去ブロック51のブロックコントロー
ルセクタ52aのブロック状態を読み出し、この読み出
したブロック情報に基いて、ブロック情報表10のブロ
ック情報を更新し(ステップ171)、残りの消去ブロ
ック51が存在するかの確認を行い(ステップ17
2)、残りの消去ブロック51が無くなるまで、ステッ
プ171の処理を繰り返す。
【0082】次に、ファイルシステム制御部2は、ステ
ップ171において更新したブロック情報表10をアク
セスし、ブロック状態「データ転送中」が存在するかの
確認を行い(ステップ173)、ブロック状態「データ
転送中」が存在する場合は、このブロック状態の物理ブ
ロック番号を取得し、この物理ブロック番号に対応する
ブロック状態を「データ転送中」から「未使用」へ更新
する(ステップ174)。同時に、ファイルシステム制
御部2は、フラッシュメモリ制御部4を通じてフラッシ
ュメモリ部5をアクセスし、この物理ブロック番号のブ
ロックのデータを消去する。
【0083】ここで、図8A〜図8Bのステップ151
〜157の途中で電力供給が遮断され、予備消去ブロッ
ク51へのデータ転送が中断した場合は、この予備消去
ブロック51のブロック状態が「データ転送中」として
保持される。この後に電力供給が再開されたときには、
ステップ173、174の処理において、データ転送が
中断したブロック状態「データ転送中」の予備消去ブロ
ック51のデータが消去され、この予備消去ブロック5
1のブロック状態が「未使用」となる。これによって不
完全なデータが予備消去ブロック51から読み出される
ことが防止される。
【0084】次に、ファイルシステム制御部2は、ステ
ップ171において更新したブロック情報表10をアク
セスし、ブロック状態が「元ブロック消去中」であるブ
ロックが存在するかの確認を行い(ステップ175)、
ブロック状態が「元ブロック消去中」であるブロックが
存在する場合は、このブロックの論理ブロック番号と同
じ論理ブロック番号であってかつブロック状態が「デー
タ有」である物理ブロック番号を取得する。そして、フ
ァイルシステム制御部2は、ブロック情報表10をアク
セスし、この物理ブロック番号に対応するブロック状態
を「未使用」へ更新する。同時に、ファイルシステム制
御部2は、フラッシュメモリ制御部4を通じてフラッシ
ュメモリ部5をアクセスし、この物理ブロック番号のブ
ロックのデータを消去する。
【0085】また、ファイルシステム制御部2は、ステ
ップ175において取得したブロック状態が「元ブロッ
ク消去中」である物理ブロック番号の消去ブロック51
のブロックコントロールセクタ52aのブロック状態情
報を「元ブロック消去中」から「データ有」へ更新し、
ブロック情報表10における同じ物理ブロック番号に対
応するブロック状態を「データ有」へ更新する(ステッ
プ176)。
【0086】この後、ファイルシステム制御部2は、消
去ブロック51のブロックコントロールセクタ52aの
セクタ状態を読み出し、このセクタ情報に基いてファイ
ルシステムメモリ部3内のセクタ情報表11を更新し
(ステップ177)、残りのセクタ情報が存在するかの
確認を行い(ステップ178)、残りのセクタ情報が存
在する場合は、ステップ177へ戻り、残りのセクタ5
2がなくなるまで繰り返し、同様に残りの消去ブロック
51が存在する場合は、ステップ177へ戻り、残りの
消去ブロック51がなくなるまで繰り返す。
【0087】ここで、図8A〜図8Bのステップ158
〜160の途中で電力供給が遮断された場合は、この予
備消去ブロック51のブロック状態が「元ブロック消去
中」として保持されており、この予備消去ブロック51
へのデータ転送が終了している。この後に電力供給が再
開されると、ステップ175〜178の処理において、
予備消去ブロック51のデータを保持し、データ転送元
の消去ブロック51のデータを消去している。これによ
ってデータ転送元の消去ブロック51から不完全なデー
タが読み出されることが防止される。
【0088】次に、ファイルシステム制御部2は、ステ
ップ177において更新したセクタ情報表11をアクセ
スし、セクタ状態が「データ書き込み中」であるセクタ
52が存在するかの確認を行い(ステップ179)、セ
クタ状態が「データ書き込み中」であるセクタ52が存
在する場合は、ステップ179において取得したセクタ
状態「データ書き込み中」に対応する物理ブロック番号
及び物理セクタ番号を取得する。そして、ファイルシス
テム制御部2は、フラッシュメモリ制御部4を通じてフ
ラッシュメモリ部5をアクセスし、これらの物理ブロッ
ク番号及び物理セクタ番号に対応する消去ブロック51
のブロックコントロールセクタ52aのセクタ状態を
「データ書き込み中」から「データ無効」へ更新する。
同様に、ファイルシステム制御部2は、セクタ情報表1
1をアクセスし、これらの物理ブロック番号及び物理セ
クタ番号に対応するセクタ状態を「データ書き込み中」
から「データ無効」へ更新する(ステップ180)。
【0089】次に、ファイルシステム制御部2は、セク
タ情報表11をアクセスし、セクタ状態が「データ書き
込み完了」であるセクタ52が存在するかの確認を行い
(ステップ181)、セクタ状態が「データ書き込み完
了」であるセクタ52が存在する場合は、このセクタ5
2の論理セクタ番号と同じ論理セクタ番号を有しかつセ
クタ状態が「データ有効」のセクタ52が存在するかの
確認を行い(ステップ182)、このセクタ52が存在
する場合は、このセクタ52の物理ブロック番号及び物
理セクタ番号を取得する。そして、ファイルシステム制
御部2は、フラッシュメモリ制御部4を通じてフラッシ
ュメモリ部5をアクセスし、これらの物理ブロック番号
及び物理セクタ番号に対応する消去ブロック51のブロ
ックコントロールセクタ52aのセクタ状態を「データ
有効」から「データ無効」へ更新する。同様に、ファイ
ルシステム制御部2は、セクタ情報表11をアクセス
し、これらの物理ブロック番号及び物理セクタ番号に対
応するセクタ状態を「データ有効」から「データ無効」
へ更新する(ステップ183)。
【0090】次に、ファイルシステム制御部2は、セク
タ情報表11をアクセスし、ステップ181において取
得したセクタ状態が「データ書き込み完了」であるセク
タ52の物理ブロック番号及び物理セクタ番号を取得す
る。そして、ファイルシステム制御部2は、フラッシュ
メモリ制御部4を通じてフラッシュメモリ部5をアクセ
スし、これらの物理ブロック及び物理セクタ番号に対応
する消去ブロック51のブロックコントロールセクタ5
2aののセクタ状態を「データ書き込み完了」から「デ
ータ有効」へ更新する。同様に、ファイルシステム制御
部2は、セクタ情報表11をアクセスし、これらの物理
ブロック番号及び物理セクタ番号に対応するセクタ状態
を「データ書き込み完了」から「データ有効」へ更新す
る(ステップ184)。
【0091】ここで、図7A〜図7cのステップ139
〜141の途中で電力供給が遮断され、データの書き込
みが中断した場合は、セクタ状態が「データ書き込み
中」として保持され、またデータの書き込みが完了した
場合は、セクタ状態が「データ書き込み完了」として保
持される。この後に電力供給が再開されると、ステップ
179〜184の処理において、データの書き込みが中
断したセクタ状態「データ書き込み中」のセクタ52の
データが消去され、このセクタ52のセクタ状態が「デ
ータ無効」となる。これによってデータの書き込みが中
断したセクタ52から不完全なデータが読み出されるこ
とが防止される。また、セクタ状態「データ書き込み完
了」のセクタ52のデータが保持され、このセクタ状態
が「データ有効」に更新されるので、このセクタ52か
らデータを正しく読み出すことができる。
【0092】次に、ファイルシステム制御部2は、セク
タ情報表11をアクセスし、物理ブロック番号毎に、同
一物理ブロック番号に対応するセクタ状態「未使用」の
数、セクタ状態「データ有効」の数、セクタ状態「デー
タ無効」の数をそれぞれ計数し、これらの計数値に基い
てファイルシステムメモリ部3内のセクタ情報表12の
物理ブロック番号、未使用セクタ数、データ有効セクタ
数及びデータ無効セクタ数を更新し(ステップ18
5)、残りの物理ブロック番号が存在するかの確認を行
い(ステップ186)、残りの物理ブロック番号が存在
する場合は、ステップ185へ戻り、残りの物理ブロッ
ク番号がなくなるま繰り返す。
【0093】この後、ファイルシステム制御部2は、ス
テップ171、ステップ174、ステップ175におい
て更新されたブロック情報表10に基いて、ブロック状
態が「未使用」である物理ブロック番号に対応する1つ
の消去ブロック51を予備消去ブロック51として確保
する(ステップ187)。
【0094】この様に本実施形態においては、データの
書き込みやファイルシステムの再構築に際し、各消去ブ
ロック51や各セクタ52の状態情報をきめ細かく書き
換えているため、電力供給が不用意に遮断されも、この
後に電力供給が再開されたときには、各消去ブロック5
1や各セクタ52の状態情報に基いて、消去ブロック5
1やセクタ52の不確定なデータを消去して、正しいデ
ータのみを保存することができる。
【0095】上記実施形態においては、現在のブロック
状態として、(1)「未使用」を表す11111111
b(bは2進数を表わす。以下同様)、(2)「データ
転送中」を表す11111110b、(3)「元ブロッ
ク消去中」を表す11111100b、(4)「データ
有」を表す11111000b、(5)「ブロックフ
ル」を表す11110000bという5種類のブロック
状態を例示したが、1と0の組み合わせを複雑にした
り、ビット数を増やしても良く、これによって各状態の
違いをより確実に判定することが可能になる。
【0096】また、よりきめ細かくブロック状態を管理
するため、ブロックの状態数を6つ以上に設定しても良
く、これによってよりきめ細かく状態を管理することが
可能になる。
【0097】また、上記実施形態においては、現在のセ
クタ状態として、(I)「未使用」を表す1111b、
(II)「データ書き込み中」を表す1110b、(I
II)「データ書き込み完了」を表す1100b、(I
V)「データ有効」を表す1000b、(V)「データ
無効」を表す0000bという5種類のセクタ状態を例
示したが、1と0の組み合わせを複雑にしたり、ビット
数を増やしても良く、これによって各状態の違いをより
確実に判定することが可能になる。
【0098】また、よりきめ細かくセクタ状態を管理す
るため、セクタ52の状態数を6つ以上に設定しても良
く、これによってよりきめ細かく状態を管理することが
可能になる。
【0099】上記実施形態においては、均等ブロックサ
イズであるフラッシュメモリを前提として説明したが、
ブートブロック構成のフラッシュメモリにおいても、ブ
ートブロック(例えば8Kバイトのサイズ)用の任意の
1個の消去ブロック(8Kバイト)と、それ以外のブロ
ック(例えば64Kバイトのサイズ)用の任意の1個の
消去ブロック(64Kバイト)をファイルシステム1の
再構築用の予備ブロックとして、予め確保しても良く、
これによって均等ブロックあるいはブートブロック構成
のフラッシュメモリのうちからシステムの目的に合うフ
ラッシュメモリあるいはより安価なフラッシュメモリを
採用することが可能となる。また、ブートブロック(例
えば8Kバイト)用の予備ブロックとして、8Kバイト
より大きいサイズのブロック(例えば64Kバイト)を
予備ブロックに割り当てることも可能であり、この場合
は、予備ブロックのサイズを一定にできるため、管理が
簡単になる。
【0100】本実施形態のファイルシステム1が複数個
のフラッシュメモリを備える場合は、1個のフラッシュ
メモリ毎に任意の1個の消去ブロックをファイルシステ
ムの再構築用の予備ブロックとして予め確保しておくの
ではなく、複数個のフラッシュメモリに対し1個の予備
ブロックを確保したり、複数個のフラッシュメモリに含
まれるブロックサイズが異なる各消去ブロック毎に、少
なくとも1個の予備ブロックを確保しても良く、この場
合は、確保する予備ブロックの数を少なくすることがで
きる。
【0101】図9Bに示すステップ176においては、
ファイルシステム制御部2は、ステップ175において
取得したブロック状態「元ブロック消去中」の消去ブロ
ック51の論理ブロック番号と同じ論理ブロック番号で
あって、且つブロック状態が「データ有」である物理ブ
ロック番号を取得する。そして、ファイルシステム制御
部2は、ブロック情報表10をアクセスし、この物理ブ
ロック番号に対応するブロック状態を「未使用」へ更新
する。同時に、ファイルシステム制御部2は、フラッシ
ュメモリ制御部4を通じてフラッシュメモリ部5をアク
セスし、この物理ブロック番号の消去ブロック51のデ
ータを消去する。また、ファイルシステム制御部2は、
ステップ175において取得したブロック状態「元ブロ
ック消去中」の物理ブロック番号の消去ブロック51の
ブロックコントロールセクク52aのブロック状態を
「元ブロック消去中」から「データ有」へ更新し、ブロ
ック情報表10における同じ物理ブロック番号に対応す
るブロック状態を「データ有」へ更新する。
【0102】ここで、消去ブロック51についての複数
の状態惰報としては、『未使用」、「データ有」、「ブ
ロックフル」、「データ転送中」、「元ブロック消去
中」の5つに加え、「元ブロック消去完了」を設定した
場合の例として以下のような処理の流れにすることが可
能である。
【0103】図13は、図9A〜図9Dのファイルシス
テム1の初期化に関するフローチャートの内、本実施形
態におけるステップ174からステップ177の間に相
当する部分を抜き出したフローチャートを示す図であ
る。
【0104】まず、ファイルシステム制御部2は、ステ
ップ171において更新したブロック情報表10をアク
セスし、ブロック状態「元ブロック消去完了」が存在す
るかを確認し(ステップ191)、ブロック状態「元ブ
ロック消去完了」が存在する場合は、処理はステツプ1
92およびステップ193をスキップしてステップ19
4ヘジャンプする。
【0105】次に、ファイルシステム制御部2は、ステ
ップ171において更新したブロック情報表10をアク
セスし、ブロック状態「元ブロック消去中」が存在する
かを確認し(ステップ192)、ブロック状態「元ブロ
ック消去中」が存在する場合は、この消去ブロック51
の論理ブロック番号と同じ論理ブロック番号であって、
且つブロック状態が「データ有」である物理ブロック番
号を取得し、ファイルシステム制御部2は、フラッシュ
メモリ制御部4を通じてフラッシュメモリ部5をアクセ
スし、この物理ブロック番号の消去ブロック51のデー
タを消去する。
【0106】この後、ファイルシステム制御部2は、ス
テツプ192において取得したブロック状態が「元ブロ
ック消去中」である物理ブロック番号の消去ブロック5
1のブロックコントロールセクタ52aのブロック状態
を「元ブロック消去中」から「元ブロック消去完了」へ
更新する。
【0107】また、ファイルシステム制御部2は、ブロ
ック情報表10をアクセスし、データ消去をした消去ブ
ロック51の物理ブロック番号に対応するブロック状態
を「未使用」へと更新する(ステップ193)。
【0108】次に、ブロック状態「元ブロック消去完
了」へ更新した物理ブロック番号の消去ブロック51の
ブロックコントロールセクタ52aのブロック状態を
「元ブロック消去完了」から「データ有」へ更新し、ブ
ロック情報表10におけるこの物理ブロック番号に対応
するブロック状態を「元ブロック消去中」から「データ
有」へ更新する(ステップ194)。
【0109】この様に、ブロック状態「元ブロック消去
完了」を追加することにより、比較的処理時間の長いブ
ロック消去処理をスキップすることが可能、すなわち、
電力供給の遮断直前のブロック状態が「元ブロック消去
中」から「元ブロック消去完了」へ更新された直後であ
った場合は、電力供給が回復した時の初期化処理時間を
短縮することが可能である。
【0110】他の実施形態では、図12に示すように、
消去ブロック51についての複数の状態情報として、
「未使用」、「データ有」、「データ転送中」、「元ブ
ロック消去中」、「元ブロックフォーマット中」の5つ
を設定しても良い。
【0111】この場合、再構築用に予め確保されている
予備消去ブロック51の状態情報を「未使用」から「デ
ータ転送中」へ更新する手段と、データ転送元の消去ブ
ロック51内のデータを該予備消去ブロック51へ転送
して記憶させる手段と、該データの転送並びに記憶の完
了後、該予備消去ブロック51のブロック状態情報を
「データ転送中」から「元ブロック消去中」へ更新し、
該データ転送元の消去ブロック51のデータを消去し、
このデータ転送元の消去ブロック51を新たな予備消去
ブロック51として確保し、この新たな予備消去ブロッ
ク51の状態情報を「データ有」から「未使用」へ更新
する手段と、データ転送先の該予備消去ブロック51の
状態情報を「元ブロック消去中」から「元ブロックフォ
ーマット中」へ更新し、データ転送元の新たな予備消去
ブロック51へ新たな予備消去ブロック51の消去可能
回数などを書き込む(フォーマットする)手段と、フォ
ーマット完了後、データ転送先の該予備消去ブロック5
1の状態情報を「元ブロックフォーマット中」から「デ
ータ有」へ更新する手段とを合む構成が考えられる。
【0112】この様に、消去ブロック51の状態情報と
して「未使用」、「データ有」、「データ転送中」、
「元ブロック消去中」、「元ブロックフォーマット中」
という5つの状態を利用した場合、消去ブロックの状態
を正確に把握してきめ細かにフラッシュメモリを管理す
ることができ、フラッシュメモリに格納されている既存
のデータを破壊することなく、また既存のデータに矛盾
を生じさせることなく、電力供給の遮断直前に実行中で
あった前段階ヘファイルシステムを自動的に回復させる
ことが可能となる。
【0113】他の実施形態における電力回復時のファイ
ルシステム1の初期化においてブロック状態「元ブロッ
ク消去中」の消去ブロック51が検出された場合は、デ
ータ転送元の消去ブロック51のデータを消去する。ま
たは、更に既存データの正確性を期すために、該初期化
において「元ブロック消去中」だけでなく「元ブロック
フォーマット中」の消去ブロック51が検出された場合
もデータ転送元の消去ブロック51のデータを消去する
方法が考えられる。
【0114】また、消去ブロック51の状態情報として
「ブロックフル」という状態を設定する前記実施形態と
異なり、ブロック状態「ブロックフル」を設定しない方
法は、消去ブロックが不均等なサイズのセクタに分割さ
れて使用される場合に特に有効である。なぜならば、不
均等なサイズのデータを同一の消去ブロック内の連続し
たセクタに書き込む場合において、次に書き込むべきデ
ータのサイズが不明である場合に、消去ブロックの状態
情報が「ブロックフル」となるかどうかの判断が難しい
ためである。
【0115】また、各消去ブロック51のブロック消去
回数を平均化するために、各消去ブロック51内に該消
去ブロックの消去可能回数を記憶する方法がある。
【0116】図8Aおよび図8Bに示す他の実施形態と
しては、ファイルシステム1の再構築時において、ファ
イルシステム制御部2は、データの転送元となる消去ブ
ロックとして予備消去ブロック51を除いた各消去ブロ
ック51の消去可能回数を比較し、該回数の最大値と最
小値の差が一定値を越えた場合には、該回数が最大の消
去ブロック51を選択し、差が一定値を越えていない場
合は、消去ブロック51内のセクタ情報表12をアクセ
スし、データ無効セクタ数が最大の消去ブロック51を
選択する。
【0117】この場合、各消去ブロック51の消去可能
回数のバラツキを一定の回数内に抑え、フラッシュメモ
リとしての書き替え回数を増やすことが可能になる。
【0118】また、消去ブロック51の消去可能回数
は、0から1つずつ増加させ、消去可能回数の仕様値の
最大値までインクリメントする方法(この場合は消去可
能回数でなく消去回数を表す)と、これとは逆に消去可
能回数の仕様値の最大値から1つずつ減少させ、0まで
デクリメントする方法が考えられるが、後者の方法にお
いては、消去可能回数が0になった時点で該消去ブロッ
ク51の寿命が来たと判定できるため、消去可能回数の
判定アルゴリズムを簡単にできる。
【0119】他の実施形態における消去ブロック51の
フォーマット手段では、フォーマットした日時を記憶す
ることも可能であり、この場合、一定時間経過後に消去
ブロック51内のデータのリフレッシュ動作を行うこと
が可能になる。
【0120】
【発明の効果】本発明のファイルシステムは、複数のセ
クタをそれぞれ含む複数の消去ブロックを有する不揮発
性半導体記憶装置を用いたファイルシステムにおいて、
該各消去ブロック毎に、消去ブロックについての複数の
状態情報のいずれかを格納すると共に、該各セクタ毎
に、セクタについての複数の状態情報のいずれかを格納
する記憶手段と、該不揮発性半導体記憶装置のアクセス
時に、該記憶手段内の該各消去ブロックの状態情報及び
該各セクタの状態情報に基いて、該不揮発性半導体記憶
装置に既に格納されているデータを保証する保証手段と
を具備する。
【0121】本発明によれば、ブロックについての複数
の状態情報及びセクタについての複数の状態情報を記憶
手段に格納している。このため、ファイルシステムが稼
働中において、意図しない電力供給の遮断が生じても、
電力供給が回復したときには、起動時の初期化処理に際
し、ブロックについての複数の状態情報及びセクタにつ
いての複数の状態情報に基いて、ブロック及びセクタの
状態を正確に把握してきめ細かにフラッシュメモリを管
理することができ、フラッシュメモリに格納されている
既存のデータを破壊することなく、また既存のデータに
矛盾を生じさせることなく、電力供給の遮断直前に実行
中であった前段階ヘファイルシステムを自動的に回復さ
せることが可能となる。
【0122】一実施形態では、前記記憶手段は、データ
の更新に制約の無いRAM上に設けられ、前記保証手段
は、前記不揮発性半導体記憶装置へのアクセス時に、該
RAM上の前記各消去ブロックの状態情報及び前記各セ
クタの状態情報を参照する。
【0123】この様にRAMを利用すると、データの更
新に制約がなくなり処理速度が早くなる。
【0124】一実施形態では、前記消去ブロックについ
ての複数の状態情報として、「未使用」、「データ
有」、「ブロックフル」、「データ転送中」、「元ブロ
ック消去中」という少なくとも5つの状態を設定してお
り、前記保証手段は、再構築用に予め確保されている予
備ブロックの状態情報を「未使用」から「データ転送
中」へ更新する手段と、データ転送元の消去ブロック内
のデータを該予備ブロックへ転送して記憶させる手段
と、該データの転送並びに記憶の完了後、該予備ブロッ
クのブロック状態情報を「データ転送中」から「元ブロ
ック消去中」へ更新し、該データ転送元の消去ブロック
のデータを消去し、このデータ転送元の消去ブロックを
新たな予備ブロックとして確保し、この新たな予備ブロ
ックの状態情報を「データ有」あるいは「ブロックフ
ル」から「未使用」へ更新する手段と、データ転送先の
該予備ブロックの状態情報を「元ブロック消去中」から
「データ有」へ更新する手段とを含む。
【0125】この様に消去ブロックの状態情報として
「未使用」、「データ有」、「ブロックフル」、「デー
タ転送中」、「元ブロック消去中」という5つの状態を
利用した場合、ブロックの状態を正確に把握してきめ細
かにフラッシュメモリを管理することができ、フラッシ
ュメモリに格納されている既存のデータを破壊すること
なく、また既存のデータに矛盾を生じさせることなく、
電力供給の遮断直前に実行中であった前段階ヘファイル
システムを自動的に回復させることが可能となる。
【0126】一実施形態では、再構築用に予め確保され
ている予備ブロックは、1個の不揮発性半導体記憶装置
に含まれるブロックサイズが異なる各消去ブロック毎
に、少なくとも1個以上有する。
【0127】この場合、均等ブロックあるいはブートブ
ロック構成のフラッシュメモリのうちからシステムの目
的に合わせた、あるいはより安価なフラッシュメモリを
採用することが可能となる利点がある。
【0128】一実施形態では、再構築用に予め確保され
ている予備ブロックは、複数個の不揮発性半導体記憶装
置に含まれるブロックサイズが異なる各消去ブロック毎
に、少なくとも1個以上有する。
【0129】この場合、ファイルシステムが必要とする
予備ブロックの数を少なくできる利点がある。このた
め、ファイルシステムが安価に構成できる利点もある。
【0130】一実施形態では、再構築用に予め確保され
ている予備ブロックは、消去ブロックのサイズ以上のサ
イズを有する。
【0131】この場合は、ブートブロック(例えば8K
バイトのサイズ)用の予備ブロックとして、8Kバイト
より大きいサイズのブロック(例えば64Kバイトのサ
イズ)を予備ブロックに割り当て、予備ブロックのサイ
ズを一定にできるため、管理が簡単になる。
【0132】本発明のファイルシステムは、複数のセク
タを有する不揮発性半導体記憶装置を用いたファイルシ
ステムにおいて、該各セクタ毎に、セクタについての複
数の状態情報のいずれかを格納する記憶手段と、該不揮
発性半導体記憶装置のアクセス時に、該記憶手段内の該
各セクタの状態情報に基いて、該不揮発性半導体記憶装
置に既に格納されているデータを保証する保証手段とを
具備し、前記セクタについての複数の状態情報として、
「未使用」、「データ書き込み中」、「データ書き込み
完了」、「データ有効」、「データ無効」という少なく
とも5つの状態を設定しており、前記保証手段は、デー
タが書き込まれるセクタの状態情報を「未使用」から
「データ書き込み中」へ更新する手段と、該セクタへの
データの書き込みが完了した後、該セクタの状態情報を
「データ書き込み中」から「データ書き込み完了」へ更
新する手段と、該セクタにデータを新規に書き込んだ場
合は、該セクタの状態情報を「データ書き込み完了」か
ら「データ有効」へ更新し、該セクタに既存のデータの
更新データを書き込んだ場合は、該既存のデータが書き
込まれている他のセクタの状態情報を「データ有効」か
ら「データ無効」に更新後、該更新データが書き込まれ
ている該セクタの状態情報を「データ書き込み完了」か
ら「データ有効」へ更新する。
【0133】本発明によれば、セクタについての5つの
状態情報を記憶手段に格納している。このため、ファイ
ルシステムが稼働中において、意図しない電力供給の遮
断が生じても、電力供給が回復したときには、起動時の
初期化処理に際し、セクタについての複数の状態情報に
基いて、セクタの状態を正確に把握してきめ細かにフラ
ッシュメモリを管理することができ、フラッシュメモリ
に格納されている既存のデータを破壊することなく、ま
た既存のデータに矛盾を生じさせることなく、電力供給
の遮断直前に実行中であった前段階ヘファイルシステム
を自動的に回復させることが可能となる。
【0134】一実施形態では、前記消去ブロックについ
ての複数の状態情報として、「未使用」、「データ
有」、「ブロックフル」、「データ転送中」、「元ブロ
ック消去中」、「元ブロック消去完了」という少なくと
も6つの状態を設定しており、前記保証手段は、再構築
用に予め確保されている予備消去ブロックの状態情報を
「未使用」から「データ転送中」へ更新する手段と、デ
ータ転送元の消去ブロック内のデータを該予備消去ブロ
ックヘ転送して記憶させる手段と、該データの転送並び
に記憶の完了後、該予備消去ブロックのブロック状態情
報を「データ転送中」から「元ブロック消去中」へ更新
し、該データ転送元の消去ブロックのデータを消去し、
該予備消去ブロックのブロック状態情報を「元ブロック
消去中」から「元ブロック消去完了」へ更新する手段
と、データ転送元の消去ブロックを新たな予備消去ブロ
ックとして確保し、この新たな予備消去ブロックの状態
情報を「データ有」あるいは「ブロックフル」から「未
使用」へと更新する手段と、データ転送先の該予備消去
ブロックの状態情報を「元ブロック消去完了」から「デ
ータ有」へ変更する手段とを含む。
【0135】この様に、消去ブロックの状態情報として
「未使用」、「データ有」、「ブロックフル」、「デー
タ転送中」、「元ブロック消去中」、「元ブロック消去
完了」という6つの状態を利用した場合、前記5つの状
態を利用した場合よりも更に消去ブロックの状態を正確
に把握してきめ細かにフラッシュメモリを管理すること
ができ、フラッシュメモリに格納されている既存のデー
タを破壊することなく、また、既存のデータに矛盾を生
じさせることなく、電力供給の遮断直前に実行中であっ
た前段階ヘファイルシステムを自動的に回復させること
が可能となる。
【0136】一実施形態では、前記消去ブロックについ
ての複数の状態情報として、「未使用」、「データ
有」、「データ転送中」、「元ブロック消去中」、「元
ブロックフォーマット中」という少なくとも5つの状態
を設定しており、前記保証手段は、再構築に予め確保さ
れている予備消去ブロックの状態情報を「未使用」から
「データ転送中」へ更新する手段と、データ転送元の消
去ブロック内のデータを該予備消去ブロックへ転送して
記憶させる手段と、該データの転送並びに記憶の完了
後、該予備消去ブロックのブロック状態情報を「データ
転送中」から「元ブロック消去中」へ更新し、該データ
転送元の消去ブロックのデータを消去し、このデータ転
送元の消去ブロックを新たな予備消去ブロックとして確
保し、この新たな予備消去ブロックの状態情報を「デー
タ有」から「未使用」へ更新する手段と、データ転送先
の該予備消去ブロックの状態情報を「元ブロック消去
中」から「元ブロックフォーマット中」へ更新し、デー
タ転送元の新たな予備消去ブロックへ新たな予備消去ブ
ロックの消去可能回数などを書き込む(フォーマットす
る)手段と、フォーマット完了後、データ転送先の該予
備消去法ブロックの状態情報を「元ブロックフォーマッ
ト中」から「データ有」へ更新する手段とを含む。
【0137】この様に、消去ブロックの状態情報として
「未使用」、「データ有」、「データ転送中」、「元ブ
ロック消去中」、「元ブロックフォーマット中」という
5つの状態を利用した場合、消去ブロックの状態を正確
に把握してきめ細かにフラッシュメモリを管理すること
ができ、フラッシュメモリに格納されている既存のデー
タを破壊することなく、また既存のデータに矛盾を生じ
させることなく、電力供給の遮断直前に実行中であった
前段階ヘファイルシステムを自動的に回復させることが
可能となる。
【0138】この場合、消去ブロックの状態情報として
「ブロックフル」という状態を設定する前記実施形態と
異なり、ブロック状態「ブロックフル」を設定しない方
法は、消去ブロックが不均等なサイズのセクタに分割さ
れて使用される場合に特に有効である。なぜならば、不
均等なサイズのデータを同一の消去ブロック内の連続し
たセクタに書き込む場合において、次に書き込むべきデ
ータのサイズが不明である場合に、消去ブロックの状態
情報が「ブロックフル」となるかどうかの判断が難しい
ためである。
【0139】一実施形態では、各消去ブロックのブロッ
ク消去回数を平均化するために、各消去ブロック内に該
消去ブロックの消去可能回数を記憶する。この消去可能
回数をファイルシステムの再構築時において利用するこ
とにより、各消去ブロックの消去可能回数のバラツキを
一定の回数内に抑え、フラッシュメモリとしての総書き
替え回数を向上させることが可能になる。
【0140】また、消去ブロックの消去可能回数は、0
から1つずつ増加させ、消去可能回数の仕様値の最大値
までインクリメントする方法(この場合は消去可能回数
でなく消去回数を表す)と、これとは逆に消去可能回数
の仕様値の最大値から1つずつ減少させ、0までデクリ
メントする方法が考えられるが、後者の方法において
は、消去可能回数が0になった時点で該消去ブロックの
寿命が来たと判定できるため、消去可能回数の判定アル
ゴリズムを簡単にできる。
【0141】一実施形態における消去ブロックのフォー
マット手段では、フォーマットした日時を記憶すること
も可能であり、この場合、一定時間経過後に消去ブロッ
ク内のデータのリフレッシュ動作を行うことが可能にな
る。
【図面の簡単な説明】
【図1】本発明のファイルシステムの一実施形態を示す
ブロック図である。
【図2】図1のファイルシステムのフラッシュメモリ部
に格納されているデータの構成図である。
【図3】図1のファイルシステムにおけるファイルシス
テムメモリ部に格納されている各消去ブロックに関する
データの構成図である。
【図4】図1のファイルシステムにおけるファイルシス
テムメモリ部に格納されている各セクタに関するデータ
の構成図である。
【図5】図1のファイルシステムにおけるファイルシス
テムメモリ部に格納されている各消去ブロック毎に、各
セクタの数をそれぞれのセクタ状態に応じて整理したデ
ータの構成図である。
【図6】図1のファイルシステムにおけるデータの読み
出し処理に関するフローチャートである。
【図7A】図1のファイルシステムにおけるデータを書
き込む処理に関するフローチャートである。
【図7B】図1のファイルシステムにおけるデータを書
き込む処理に関する図7Aに続くフローチャートであ
る。
【図7C】図1のファイルシステムにおけるデータを書
き込む処理に関する図7Bに続くフローチャートであ
る。
【図8A】図1のファイルシステムの再構築処理に関す
るフローチャートである。
【図8B】図1のファイルシステムの再構築処理に関す
る図8Aに続くフローチャートである。
【図9A】図1のファイルシステムの初期化に関するフ
ローチャートである。
【図9B】図1のファイルシステムの初期化に関する図
9Aに続くフローチャートである。
【図9C】図1のファイルシステムの初期化に関する図
9Bに続くフローチャートである。
【図9D】図1のファイルシステムの初期化に関する図
9Cに続くフローチャートである。
【図10】従来の技術におけるフラッシュメモリに格納
されたデータの更新処理に関するフローチャートであ
る。
【図11】従来の技術におけるファイルシステムの再構
築処理に関するフローチャートである。
【図12】図1のファイルシステムにおけるフラッシュ
メモリ部に格納されているデータの構成図の内、ブロッ
ク状態情報のブロック状態を表す他の実施形態を示す図
である。
【図13】図1のファイルシステムの初期化に関する図
9A〜図9Dの内、状態情報として「元ブロック消去完
了」を設定した第1の実施形態に関わる部分のフローチ
ャートを示す図である。
【符号の説明】
1 ファイルシステム 2 ファイルシステム制御部 3 ファイルシステムメモリ部 4 フラッシュメモリ制御部 5 フラッシュメモリ部 6 アプリケーション、OS(オペレーティングシステ
ム) 51 消去ブロック、予備消去ブロック 52 セクタ 52a ブロックコントロールセクタ

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】 複数のセクタをそれぞれ含む複数の消去
    ブロックを有する不揮発性半導体記憶装置を用いたファ
    イルシステムにおいて、 該各消去ブロック毎に、消去ブロックについての複数の
    状態情報のいずれかを格納すると共に、該各セクタ毎
    に、セクタについての複数の状態情報のいずれかを格納
    する記憶手段と、 該不揮発性半導体記憶装置のアクセス時に、該記憶手段
    内の該各消去ブロックの状態情報及び該各セクタの状態
    情報に基いて、該不揮発性半導体記憶装置に既に格納さ
    れているデータを保証する保証手段とを具備する不揮発
    性半導体記憶装置を用いたファイルシステム。
  2. 【請求項2】 前記記憶手段は、データの更新に制約の
    無いRAM上に設けられ、 前記保証手段は、前記不揮発性半導体記憶装置へのアク
    セス時に、該RAM上の前記各消去ブロックの状態情報
    及び前記各セクタの状態情報を参照する請求項1に記載
    の不揮発性半導体記憶装置を用いたファイルシステム。
  3. 【請求項3】 前記消去ブロックについての複数の状態
    情報として、「未使用」、「データ有」、「ブロックフ
    ル」、「データ転送中」、「元ブロック消去中」という
    少なくとも5つの状態を設定しており、 前記保証手段は、 再構築用に予め確保されている予備ブロックの状態情報
    を「未使用」から「データ転送中」へ更新する手段と、 データ転送元の消去ブロック内のデータを該予備ブロッ
    クへ転送して記憶させる手段と、 該データの転送並びに記憶の完了後、該予備ブロックの
    ブロック状態情報を「データ転送中」から「元ブロック
    消去中」へ更新し、該データ転送元の消去ブロックのデ
    ータを消去し、このデータ転送元の消去ブロックを新た
    な予備ブロックとして確保し、この新たな予備ブロック
    の状態情報を「データ有」あるいは「ブロックフル」か
    ら「未使用」へ更新する手段と、 データ転送先の該予備ブロックの状態情報を「元ブロッ
    ク消去中」から「データ有」へ更新する手段とを含む請
    求項1に記載の不揮発性半導体記憶装置を用いたファイ
    ルシステム。
  4. 【請求項4】 ファイルシステムの再構築用に予め確保
    されている予備ブロックは、1個の不揮発性半導体記憶
    装置に含まれるブロックサイズが異なる各消去ブロック
    毎に、少なくとも1個以上有する請求項3に記載の不揮
    発性半導体記憶装置を用いたファイルシステム。
  5. 【請求項5】 ファイルシステムの再構築用に予め確保
    されている予備ブロックは、複数個の不揮発性半導体記
    憶装置に含まれるブロックサイズが異なる各消去ブロッ
    ク毎に、少なくとも1個以上有する請求項3に記載の不
    揮発性半導体記憶装置を用いたファイルシステム。
  6. 【請求項6】 ファイルシステムの再構築用に予め確保
    されている予備ブロックは、消去ブロックのサイズ以上
    のサイズを有する請求項4又は5に記載の不揮発性半導
    体記憶装置を用いたファイルシステム。
  7. 【請求項7】 複数のセクタを有する不揮発性半導体記
    憶装置を用いたファイルシステムにおいて、 該各セクタ毎に、セクタについての複数の状態情報のい
    ずれかを格納する記憶手段と、 該不揮発性半導体記憶装置のアクセス時に、該記憶手段
    内の該各セクタの状態情報に基いて、該不揮発性半導体
    記憶装置に既に格納されているデータを保証する保証手
    段とを具備し、 前記セクタについての複数の状態情報として、「未使
    用」、「データ書き込み中」、「データ書き込み完
    了」、「データ有効」、「データ無効」という少なくと
    も5つの状態を設定しており、 前記保証手段は、 データが書き込まれるセクタの状態情報を「未使用」か
    ら「データ書き込み中」へ更新する手段と、 該セクタへのデータの書き込みが完了した後、該セクタ
    の状態情報を「データ書き込み中」から「データ書き込
    み完了」へ更新する手段と、 該セクタにデータを新規に書き込んだ場合は、該セクタ
    の状態情報を「データ書き込み完了」から「データ有
    効」へ更新し、該セクタに既存のデータの更新データを
    書き込んだ場合は、該既存のデータが書き込まれている
    他のセクタの状態情報を「データ有効」から「データ無
    効」に更新後、該更新データが書き込まれている該セク
    タの状態情報を「データ書き込み完了」から「データ有
    効」へ更新する不揮発性半導体記憶装置を用いたファイ
    ルシステム。
  8. 【請求項8】 電力供給が回復した時のファイルソステ
    ムの初期化において、前記消去ブロックの状態情報とし
    て「元ブロック消去中」の消去ブロックが存在するか検
    索し、該消去ブロックが存在する場合は、該消去ブロッ
    クの論理ブロック番号と同一の論理ブロック番号を有
    し、消去ブロックの状態情報が「データ有」あるいは
    「ブロックフル」である消去ブロックを、前記記憶手段
    内の各消去ブロックの状態情報から取得する手段と、取
    得した消去ブロックのデータを消去し、消去完了後、こ
    の消去ブロックの状態情報を「データ有」あるいは「ブ
    ロックフル」から「未使用」へ更新する手段と、消去ブ
    ロックの状態情報が「元ブロック消去中」の消去ブロッ
    クの状態情報を「元ブロック消去中」から「データ有」
    へ更新する手段とを含む請求項3に記載の不揮発性半導
    体記憶装置を用いたファイルシステム。
  9. 【請求項9】 前記消去ブロックについての複数の状態
    情報として、「未使用」、「データ有」、「データ転送
    中」、「元ブロック消去中」、「元ブロックフォーマッ
    ト中」という少なくとも5つの状態を設定しており、前
    記保証手段は、ファイルシステムの再構築用に予め確保
    されている予備消去ブロックの状態情報を「未使用」か
    ら「データ転送中」へ更新する手段と、データ転送元の
    消去ブロック内のデータを該予備消去ブロックヘ転送し
    て記憶させる手段と、該データの転送並びに記憶の完了
    後、該予備消去ブロックの状態情報を「データ転送中」
    から「元ブロック消去中」へ更新し、データ転送元の消
    去ブロックのデータを消去し、消去完了後、このデータ
    転送元の消去ブロックを新たな予備消去ブロックとして
    確保し、この新たな予備消去ブロックの状態情報を「デ
    ータ有」から「未使用」へ更新する手段と、データ転送
    先の該予備消去ブロックの状態情報を「元ブロック消去
    中」から「元ブロックフォーマット中」へ更新し、デー
    タ転送元の新たな予備消去ブロックをフォーマットする
    手段と、フォーマット完了後、データ転送先の該予備消
    去ブロックの状態情報を「元ブロックフォーマット中」
    から「データ有」へ更新する手段とを含む請求項1に記
    載の不揮発性半導体記憶装置を用いたファイルシステ
    ム。
  10. 【請求項10】 前記消去ブロックは、ブロック消去可
    能回数を各消去ブロック内に記憶しており、前記フォー
    マット時において、新たな予備消去ブロックに該予備消
    去ブロックの消去可能回数から1減じた回数を該予備消
    去ブロック内に記憶する手段と、ファイルシステムの再
    構築時には、該予備消去ブロックを除いた全ての消去ブ
    ロックの中で、ブロック消去回数が最大の消去ブロック
    をデータ転送元として選択する手段とを含む請求項9に
    記載の不揮発性半導体記憶装置を用いたファイルシステ
    ム。
  11. 【請求項11】 前記ブロック消去可能回数が0以下の
    値になった時点で、該消去ブロックの使用を禁止する請
    求項10に記載の不揮発性半導体記憶装置を用いたファ
    イルシステム。
  12. 【請求項12】 前記消去ブロックは、ブロック消去可
    能回数を各消去ブロック内に記憶しており、前記フォー
    マット時において、新たな予備消去ブロックに該予備消
    去ブロックの消去回数に1増加した回数を該予備消去ブ
    ロック内に記憶する手段と、ファイルシステムの再構築
    時には、該予備消去ブロックを除いた全ての消去ブロッ
    クの中で、ブロック消去回数が最大の消去ブロックをデ
    ータ転送元として選択する手段とを含む請求項9に記載
    の不揮発性半導体記憶装置を用いたファイルシステム。
  13. 【請求項13】 前記ブロック消去可能回数が消去可能
    回数の仕様値(最大値)以上の値になった時点で、該消
    去ブロックの使用を禁止する請求項12に記載の不揮発
    性半導体記憶装置を用いたファイルシステム。
  14. 【請求項14】 ファイルシステムの再構築用に予め確
    保されている予備消去ブロックは、1個の不揮発性半導
    体記憶装置に含まれるブロックサイズが異なる各消去ブ
    ロック毎に、少なくとも1個以上有する請求項9に記載
    の不揮発性半導体記憶装置を用いたファイルシステム。
  15. 【請求項15】 ファイルシステムの再構築用に予め確
    保されている予備消去ブロックは、複数個の不揮発性半
    導体記憶装置に含まれるブロックサイズが異なる各消去
    ブロック毎に、少なくとも1個以上有する請求項9に記
    載の不揮発性半導体記憶装置を用いたファイルシステ
    ム。
  16. 【請求項16】 ファイルシステムの再構築用に予め確
    保されている予備消去ブロックは、消去ブロックサイズ
    以上のサイズを有する請求項14または15に記載の不
    揮発性半導体記憶装置を用いたファイルシステム。
  17. 【請求項17】 複数のセクタを有する不揮発性半導体
    記憶装置を用いたファイルシステムにおいて、該各セク
    タ毎に、セクタについての複数の状態情報のいずれかを
    格納する記憶手段と、該不揮発性半導体記憶装置へのア
    クセス時に、該記憶手段内の該各セクタの状態情報に基
    いて、該不揮発性半導体記憶装置に既に格納されている
    データを保証する保証手段とを具備し、前記セクタにつ
    いての複数の状態情報として、「未使用」、「データ書
    き込み中」、「データ書き込み完了」、「データ有
    効」、「データ無効」という少なくとも5つの状態を設
    定しており、前記保証手段は、データが書き込まれるセ
    クタの状態情報を「未使用」から「データ書き込み中」
    へ更新する手段と、該セクタヘのデータの書き込みが完
    了した後、該セクタの状態情報を「データ書き込み中」
    から「データ書き込み完了」へ更新する手段と、該セク
    タにデータを新規に書き込んだ場合は、該セクタの状態
    情報を「データ書き込み完了」から「データ有効」へ更
    新し、該セクタに既存のデータの更新データを書き込ん
    だ場合は、該既存のデータが書き込まれている他のセク
    タの状態情報を「データ有効」から「データ無効」に更
    新後、該更新データが書き込まれている該セクタの状態
    情報を「データ書き込み完了」から「データ有効」へ更
    新する手段とを含む請求項9に記載の不揮発性半導体記
    憶装置を用いたファイルシステム。
  18. 【請求項18】 電力供給が回復した時のファイルシス
    テムの初期化において、前記消去ブロックの状態情報と
    して「元ブロック消去中」の消去ブロックが存在するか
    検索し、該消去ブロックが存在する場合は、該消去ブロ
    ックヘのデータ転送元ブロックを、前記記憶手段内の各
    消去ブロックの状態情報から取得する手段と、取得した
    データ転送元ブロックのデータを消去し、消去完了後、
    この消去ブロックの状態情報を「データ有」から「未使
    用」へ更新する手段と、消去ブロックの状態情報が「元
    ブロック消去中」の消去ブロックの状態情報を「元ブロ
    ック消去中」から「元ブロックフォーマット中」へ更新
    し、データを消去した消去ブロックをフォーマットして
    新たな予備消去ブロックとして確保する手段と、フォー
    マット完了後、消去ブロックの状態情報が「元ブロック
    フォーマット中」の消去ブロックの状態情報を「元ブロ
    ックフォーマット中」から「データ有」へ更新する手段
    とを含む請求項9に記載の不揮発性半導体記憶装置を用
    いたファイルシステム。
  19. 【請求項19】 電力供給が回復した時のファイルシス
    テムの初期化において、前記消去ブロックの状態情報と
    して「元ブロックフォーマット中」の消去ブロックが存
    在するか検索し、該消去ブロックが存在する場合は、該
    消去ブロックヘのデータ転送元ブロックを、前記記憶手
    段内の各消去ブロックの状態情報から取得する手段と、
    取得したデータ転送元ブロックをフォーマットして新た
    な予備消去ブロックとして確保する手段と、フォーマッ
    ト完了後、消去ブロックの状態情報が「元ブロックフォ
    ーマット中」の消去ブロックの状態情報を「元ブロック
    フォーマット中」から「データ有」へ更新する手段とを
    含む請求項9に記載の不揮発性半導体記憶装置を用いた
    ファイルシステム。
JP25497399A 1999-05-31 1999-09-08 不揮発性半導体記憶装置 Expired - Fee Related JP3797649B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP25497399A JP3797649B2 (ja) 1999-05-31 1999-09-08 不揮発性半導体記憶装置
US09/568,529 US6513095B1 (en) 1999-05-31 2000-05-09 File system with assured integrity incorporating semiconductor memory device

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP11-153090 1999-05-31
JP15309099 1999-05-31
JP25497399A JP3797649B2 (ja) 1999-05-31 1999-09-08 不揮発性半導体記憶装置

Publications (2)

Publication Number Publication Date
JP2001051889A true JP2001051889A (ja) 2001-02-23
JP3797649B2 JP3797649B2 (ja) 2006-07-19

Family

ID=26481813

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25497399A Expired - Fee Related JP3797649B2 (ja) 1999-05-31 1999-09-08 不揮発性半導体記憶装置

Country Status (2)

Country Link
US (1) US6513095B1 (ja)
JP (1) JP3797649B2 (ja)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002318733A (ja) * 2001-04-20 2002-10-31 Matsushita Electric Works Ltd ブロック消去型記憶媒体の管理装置
WO2003017108A1 (en) * 2001-08-21 2003-02-27 Matsushita Electric Industrial Co., Ltd. Storage device having non-volatile memory
WO2003056431A1 (fr) * 2001-12-25 2003-07-10 Sony Corporation Dispositif de memoire et appareil d'enregistrement/reproduction faisant appel a ce dispositif
WO2003075163A1 (fr) * 2002-03-05 2003-09-12 Sanyo Electric Co., Ltd. Dispositif de stockage de donnees
US6731536B1 (en) * 2001-03-05 2004-05-04 Advanced Micro Devices, Inc. Password and dynamic protection of flash memory data
US6871259B2 (en) 2001-12-11 2005-03-22 Renesas Technology Corp. File system including non-volatile semiconductor memory device having a plurality of banks
JP2005516264A (ja) * 1999-06-11 2005-06-02 レクサー・メディア・インコーポレイテッド 不揮発性メモリ上で実行されるブロック書き込み動作時間を低減させる方法および装置
JP2006185261A (ja) * 2004-12-28 2006-07-13 Nidec Sankyo Corp 不揮発性メモリ
JP2007179546A (ja) * 2005-12-27 2007-07-12 Samsung Electronics Co Ltd 不揮発性メモリをキャッシュとして用いる保存装置及びその動作方法
JP2007241618A (ja) * 2006-03-08 2007-09-20 Matsushita Electric Ind Co Ltd 不揮発性記憶装置及びその書き込み判定方法
JP2008108257A (ja) * 2006-10-23 2008-05-08 Hewlett-Packard Development Co Lp 不揮発性記憶装置
JP2009104430A (ja) * 2007-10-24 2009-05-14 Oki Electric Ind Co Ltd フラッシュディスク装置
US7650328B2 (en) 2002-07-25 2010-01-19 Sanyo Electric Co., Ltd. Data storage device capable of storing multiple sets of history information on input/output processing of security data without duplication
US7752461B2 (en) 2002-01-15 2010-07-06 Sanyo Electric Co., Ltd. Storage apparatus that can properly recommence input and output of classified data
US8812767B2 (en) 2011-03-08 2014-08-19 Fujitsu Semiconductor Limited Method of controlling memory, memory control circuit, storage device and electronic device
KR101437397B1 (ko) * 2007-10-31 2014-09-05 삼성전자주식회사 비휘발성 메모리 장치의 데이터 관리 방법 및 맵핑 테이블업데이트 방법
US11544183B1 (en) * 2013-01-28 2023-01-03 Radian Memory Systems, Inc. Nonvolatile memory controller host-issued address delimited erasure and memory controller remapping of host-address space for bad blocks
US11681614B1 (en) 2013-01-28 2023-06-20 Radian Memory Systems, Inc. Storage device with subdivisions, subdivision query, and write operations
US11914523B1 (en) 2014-09-09 2024-02-27 Radian Memory Systems, Inc. Hierarchical storage device with host controlled subdivisions

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6948026B2 (en) * 2001-08-24 2005-09-20 Micron Technology, Inc. Erase block management
DE10227255B4 (de) * 2002-06-19 2008-06-26 Hyperstone Gmbh Verfahren zur Wiederherstellung von Verwaltungsdatensätzen eines blockweise löschbaren Speichers
JP4175991B2 (ja) * 2003-10-15 2008-11-05 株式会社東芝 不揮発性半導体記憶装置
KR100704618B1 (ko) * 2004-01-19 2007-04-10 삼성전자주식회사 플래시 메모리의 데이터 복구 장치 및 방법
US20050204115A1 (en) * 2004-01-30 2005-09-15 Kiminori Matsuno Semiconductor memory device, memory controller and data recording method
JP3892851B2 (ja) * 2004-02-04 2007-03-14 株式会社東芝 メモリカード及び半導体装置
JP3942612B2 (ja) * 2004-09-10 2007-07-11 東京エレクトロンデバイス株式会社 記憶装置、メモリ管理方法及びプログラム
JP2006146460A (ja) * 2004-11-18 2006-06-08 Sony Corp 通信システム、記憶装置、並びに制御装置
US7246209B2 (en) * 2004-11-30 2007-07-17 Kabushiki Kaisha Toshiba System for secure erasing of files
US7743277B2 (en) * 2005-02-14 2010-06-22 Stec, Inc. System and method for detecting and reducing data corruption in a storage device
KR100756135B1 (ko) 2005-03-10 2007-09-05 엘지전자 주식회사 메모리 데이터베이스를 이용한 플래시 파일 시스템 처리 방법
JP4325579B2 (ja) * 2005-03-29 2009-09-02 ヤマハ株式会社 コンテンツデータ再生装置およびコンテンツデータ再生プログラム
US7512864B2 (en) * 2005-09-30 2009-03-31 Josef Zeevi System and method of accessing non-volatile computer memory
US7747812B2 (en) * 2005-12-22 2010-06-29 Pitney Bowes Inc. Method for manipulating state machine storage in a small memory space
US8327192B2 (en) * 2006-02-06 2012-12-04 Intel Corporation Method for memory integrity
US7791952B2 (en) 2007-01-30 2010-09-07 Micron Technology, Inc. Memory device architectures and operation
US7882301B2 (en) * 2007-05-09 2011-02-01 Stmicroelectronics S.R.L. Wear leveling in storage devices based on flash memories and related circuit, system, and method
US20080282024A1 (en) * 2007-05-09 2008-11-13 Sudeep Biswas Management of erase operations in storage devices based on flash memories
US8041883B2 (en) * 2007-05-09 2011-10-18 Stmicroelectronics S.R.L. Restoring storage devices based on flash memories and related circuit, system, and method
US7991942B2 (en) * 2007-05-09 2011-08-02 Stmicroelectronics S.R.L. Memory block compaction method, circuit, and system in storage devices based on flash memories
US8977819B2 (en) * 2010-09-21 2015-03-10 Texas Instruments Incorporated Prefetch stream filter with FIFO allocation and stream direction prediction
US9268646B1 (en) 2010-12-21 2016-02-23 Western Digital Technologies, Inc. System and method for optimized management of operation data in a solid-state memory
US9361044B2 (en) 2011-03-28 2016-06-07 Western Digital Technologies, Inc. Power-safe data management system
KR102050729B1 (ko) 2013-02-12 2019-12-02 삼성전자 주식회사 메모리 시스템
FR3051574A1 (fr) 2016-05-20 2017-11-24 Proton World Int Nv Gestion du stockage dans une memoire flash
FR3051575A1 (fr) * 2016-05-20 2017-11-24 Proton World Int Nv Gestion de l'effacement dans une memoire flash
FR3055992A1 (fr) 2016-09-09 2018-03-16 Proton World International N.V. Gestion d'index dans une memoire flash
CN107247674B (zh) 2017-06-16 2020-07-31 深圳市万普拉斯科技有限公司 内存块类型处理方法、装置、电子设备及可读存储介质
FR3072476A1 (fr) 2017-10-13 2019-04-19 Proton World International N.V. Unite logique de memoire pour memoire flash
JP2020067753A (ja) * 2018-10-23 2020-04-30 キオクシア株式会社 メモリシステム及びその制御方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2251324B (en) 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
US5369616A (en) 1992-10-30 1994-11-29 Intel Corporation Method for assuring that an erase process for a memory array has been properly completed
US6170066B1 (en) * 1995-09-29 2001-01-02 Intel Corporation Power-off recovery management for sector based flash media managers

Cited By (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4695801B2 (ja) * 1999-06-11 2011-06-08 レクサー・メディア・インコーポレイテッド 不揮発性メモリ上で実行されるブロック書き込み動作時間を低減させる方法および装置
JP2005516264A (ja) * 1999-06-11 2005-06-02 レクサー・メディア・インコーポレイテッド 不揮発性メモリ上で実行されるブロック書き込み動作時間を低減させる方法および装置
US6731536B1 (en) * 2001-03-05 2004-05-04 Advanced Micro Devices, Inc. Password and dynamic protection of flash memory data
JP4654531B2 (ja) * 2001-04-20 2011-03-23 パナソニック電工株式会社 ブロック消去型記憶媒体の管理装置
JP2002318733A (ja) * 2001-04-20 2002-10-31 Matsushita Electric Works Ltd ブロック消去型記憶媒体の管理装置
WO2003017108A1 (en) * 2001-08-21 2003-02-27 Matsushita Electric Industrial Co., Ltd. Storage device having non-volatile memory
US6871259B2 (en) 2001-12-11 2005-03-22 Renesas Technology Corp. File system including non-volatile semiconductor memory device having a plurality of banks
CN100440165C (zh) * 2001-12-25 2008-12-03 索尼公司 存储器装置和使用该存储器装置的记录再现装置
US7634613B2 (en) 2001-12-25 2009-12-15 Sony Corporation Memory device and recording and/or reproducing apparatus employing this memory device
KR100987241B1 (ko) * 2001-12-25 2010-10-12 소니 주식회사 메모리 장치 및 그 메모리 장치를 이용한 기록 재생 장치
JP2003196142A (ja) * 2001-12-25 2003-07-11 Sony Corp ライトワンス型メモリ装置及びファイル管理方法
US7039786B2 (en) 2001-12-25 2006-05-02 Sony Corporation Memory device and recording and/or reproducing apparatus employing this memory device
WO2003056433A1 (fr) * 2001-12-25 2003-07-10 Sony Corporation Dispositif a memoire et appareil d'enregistrement/reproduction utilisant ledit dispositif
EP1460548A4 (en) * 2001-12-25 2007-04-25 Sony Corp MEMORY DEVICE AND RECORDING / REPRODUCING APPARATUS USING THE SAME
WO2003056432A1 (fr) * 2001-12-25 2003-07-10 Sony Corporation Dispositif de memoire et appareil d'enregistrement/reproduction faisant appel a ce dispositif
EP1460548A1 (en) * 2001-12-25 2004-09-22 Sony Corporation Memory device and recording/reproducing apparatus using the same
WO2003056431A1 (fr) * 2001-12-25 2003-07-10 Sony Corporation Dispositif de memoire et appareil d'enregistrement/reproduction faisant appel a ce dispositif
US7447672B2 (en) 2001-12-25 2008-11-04 Sony Corporation Memory device and recording and/or reproducing apparatus employing this memory device
US7752461B2 (en) 2002-01-15 2010-07-06 Sanyo Electric Co., Ltd. Storage apparatus that can properly recommence input and output of classified data
US7716746B2 (en) 2002-03-05 2010-05-11 Sanyo Electric Co., Ltd. Data storing device for classified data
WO2003075163A1 (fr) * 2002-03-05 2003-09-12 Sanyo Electric Co., Ltd. Dispositif de stockage de donnees
US7650328B2 (en) 2002-07-25 2010-01-19 Sanyo Electric Co., Ltd. Data storage device capable of storing multiple sets of history information on input/output processing of security data without duplication
JP4691355B2 (ja) * 2004-12-28 2011-06-01 日本電産サンキョー株式会社 不揮発性メモリ
JP2006185261A (ja) * 2004-12-28 2006-07-13 Nidec Sankyo Corp 不揮発性メモリ
JP2007179546A (ja) * 2005-12-27 2007-07-12 Samsung Electronics Co Ltd 不揮発性メモリをキャッシュとして用いる保存装置及びその動作方法
JP4531742B2 (ja) * 2005-12-27 2010-08-25 三星電子株式会社 不揮発性メモリをキャッシュとして用いる保存装置及びその動作方法
JP2007241618A (ja) * 2006-03-08 2007-09-20 Matsushita Electric Ind Co Ltd 不揮発性記憶装置及びその書き込み判定方法
JP2008108257A (ja) * 2006-10-23 2008-05-08 Hewlett-Packard Development Co Lp 不揮発性記憶装置
JP2009104430A (ja) * 2007-10-24 2009-05-14 Oki Electric Ind Co Ltd フラッシュディスク装置
KR101437397B1 (ko) * 2007-10-31 2014-09-05 삼성전자주식회사 비휘발성 메모리 장치의 데이터 관리 방법 및 맵핑 테이블업데이트 방법
US8812767B2 (en) 2011-03-08 2014-08-19 Fujitsu Semiconductor Limited Method of controlling memory, memory control circuit, storage device and electronic device
US11544183B1 (en) * 2013-01-28 2023-01-03 Radian Memory Systems, Inc. Nonvolatile memory controller host-issued address delimited erasure and memory controller remapping of host-address space for bad blocks
US11681614B1 (en) 2013-01-28 2023-06-20 Radian Memory Systems, Inc. Storage device with subdivisions, subdivision query, and write operations
US11748257B1 (en) 2013-01-28 2023-09-05 Radian Memory Systems, Inc. Host, storage system, and methods with subdivisions and query based write operations
US11899575B1 (en) 2013-01-28 2024-02-13 Radian Memory Systems, Inc. Flash memory system with address-based subdivision selection by host and metadata management in storage drive
US11914523B1 (en) 2014-09-09 2024-02-27 Radian Memory Systems, Inc. Hierarchical storage device with host controlled subdivisions

Also Published As

Publication number Publication date
US6513095B1 (en) 2003-01-28
JP3797649B2 (ja) 2006-07-19

Similar Documents

Publication Publication Date Title
JP3797649B2 (ja) 不揮発性半導体記憶装置
US6865658B2 (en) Nonvolatile data management system using data segments and link information
KR100644602B1 (ko) 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조
JP4268396B2 (ja) 1回プログラム可能な不揮発性メモリデバイスのファイル管理
US6038636A (en) Method and apparatus for reclaiming and defragmenting a flash memory device
US6795890B1 (en) Data storage method, and data processing device using an erasure block buffer and write buffer for writing and erasing data in memory
KR101473344B1 (ko) 플래시 메모리를 스토리지로 사용하는 장치 및 그 동작방법
JP4399029B2 (ja) 半導体不揮発性大容量記憶メモリ内の自動摩耗レベリングによるシステム・データ制御の方法およびアーキテクチャ
JP6064608B2 (ja) ストレージ装置、バックアッププログラム、およびバックアップ方法
WO2003056433A1 (fr) Dispositif a memoire et appareil d'enregistrement/reproduction utilisant ledit dispositif
JP2008015769A (ja) ストレージシステム及び書き込み分散方法
JP2008033788A (ja) 不揮発性記憶装置、データ記憶システム、およびデータ記憶方法
JP2006040264A (ja) メモリカードの制御方法および不揮発性半導体メモリの制御方法
JP2005182793A (ja) 頻繁にアクセスされたセクタの動作による不揮発性メモリに対するより速い書込み動作
WO2005059966A2 (en) Rotational use of memory to minimize write cycles
US20100306447A1 (en) Data updating and recovering methods for a non-volatile memory array
US6629203B1 (en) Alternating shadow directories in pairs of storage spaces for data storage
KR100703680B1 (ko) 플래시 파일 시스템
KR100932801B1 (ko) 메모리 관리 방법, 메모리 장치 및 컴퓨터 판독 가능 저장매체
JPH11282765A (ja) フラッシュメモリを使用した外部記憶装置
US20050149493A1 (en) Data recording apparatus and data recording method
JP4419415B2 (ja) 記録方式
JP2011227802A (ja) データ記録装置
JP3818130B2 (ja) データ管理方法及び装置及びデータ管理プログラム及びデータ管理プログラムを格納した記憶媒体
JPH1031611A (ja) 不揮発性メモリ記憶媒体用ファイルシステム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060327

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060417

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060417

R150 Certificate of patent or registration of utility model

Ref document number: 3797649

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20090428

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100428

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100428

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110428

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120428

Year of fee payment: 6

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20120428

Year of fee payment: 6

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20120428

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130428

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20130428

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20140428

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees