(57)【要約】【課題】  不揮発性半導体記憶システムおよびその制御方法において、ＥＥＰＲＯＭの特定領域への書き換え集中を緩和し、システム全体の信頼性を向上させる。【解決手段】  本発明の不揮発性半導体記憶システムおよびその制御方法は、一括消去可能な複数のブロックと、複数に分割されたファイルデータを鎖状に連結して１つのファイルデータとして管理するための後続ブロック番号と、ブロックにおけるデータの有無を示す書き込みフラグと、後続ブロック番号および書き込みフラグをブロック管理情報１６として有するＥＥＰＲＯＭ１１と、鎖状に連結されたファイルデータの先頭ブロック番号１７が格納されるＲＡＭ１２と、乱数および書き込みフラグに基づいてブロックを選択し、それらが鎖状に連結されるよう先頭ブロック番号および後続ブロック番号を設定するＣＰＵ１４を有する。【選択図】  図１
2006120257.tif 000002
【特許請求の範囲】
【請求項１】
電気的に書き換え可能な複数の不揮発性半導体メモリセルからなる一括消去可能な複数のブロックと、
複数に分割されたファイルデータを鎖状に連結して１つのファイルデータとして管理するための後続ブロック番号と、
前記ブロックにおけるデータの有無を示す書き込みフラグと、
前記後続ブロック番号および前記書き込みフラグを前記ブロックに有する第１の記憶手段と、
前記鎖状に連結されたファイルデータの先頭ブロック番号が格納される第２の記憶手段と、
前記第１および第２の記憶手段にアクセスし、前記分割されたファイルデータを格納する前記ブロックを乱数および前記書き込みフラグに基づいて選択し、それら選択された前記ブロックが鎖状に連結されるよう前記先頭ブロック番号および前記後続ブロック番号を設定する書き込み制御手段を有することを特徴とする不揮発性半導体記憶システム。
【請求項２】
前記第１の記憶手段は、消去ブロックを最低単位としてデータ消去が可能であり、前記ブロックは、少なくとも複数の前記消去ブロックで構成されていることを特徴とする請求項１に記載の不揮発性半導体記憶システム。
【請求項３】
前記第１の記憶手段は、
前記分割されたファイルデータが格納されるデータ領域と前記後続ブロック番号および前記書き込みフラグが格納される冗長領域とを前記ブロックごとに有することを特徴とする請求項１に記載の不揮発性半導体記憶システム。
【請求項４】
電気的に書き換え可能な複数の不揮発性半導体メモリセルからなる一括消去可能な複数のブロックを有する第１の記憶手段を備えた不揮発性半導体記憶システムの制御方法であって、
前記ブロックのサイズに基づいて、ファイルデータを複数の分割データに分割するファイル分割ステップと、
前記分割データごとに乱数を生成する乱数生成ステップと、
前記乱数生成ステップで生成された乱数に基づいて、前記分割データを格納する前記ブロックを選択するアドレス生成ステップと、
前記アドレス生成ステップで選択された前記ブロックから当該ブロックにおけるデータの有無を示す書き込みフラグを読み出す情報取得ステップと、
前記書き込みフラグに基づいて、当該ブロックでのデータの有無を判定する使用ブロック判定ステップと、
前記使用ブロック判定ステップにおいて、前記アドレス生成ステップで選択された前記ブロックの前記書き込みフラグが“未使用”の場合に、前記分割データを当該ブロックへ書き込むデータ書き込みステップと、
前記データ書き込みステップで前記分割データを書き込んだ前記ブロックの前記書き込みフラグを“使用中”に設定するフラグ設定ステップと、
前記複数の分割データを鎖状に連結して１つのファイルデータとして管理するために、前記アドレス生成ステップで選択された前記ブロックのブロック番号を後続ブロック番号として前記鎖状に連結された１つ前の前記分割データが格納されている前記ブロックへ格納する後続ブロック番号設定ステップと、
前記鎖状に連結された先頭の前記分割データが格納されている前記ブロックのブロック番号を先頭ブロック番号として第２の記憶手段に格納する先頭ブロック番号設定ステップと、
前記フラグ設定ステップ、前記後続ブロック番号設定ステップ、および前記先頭ブロック番号設定ステップを備えた情報保存ステップと、
前記鎖状に連結された最後の前記分割データが格納されている前記ブロックの前記後続ブロック番号としてファイルデータの終わりを示す“ＥＯＦ”を当該ブロックへ格納する後処理ステップを有することを特徴とする不揮発性半導体記憶システムの制御方法。
【請求項５】
前記第１の記憶手段は、消去ブロックを最低単位としてデータ消去が可能であり、前記ブロックは、少なくとも複数の前記消去ブロックで構成されていることを特徴とする請求項４に記載の不揮発性半導体記憶システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性半導体記憶システムおよびその制御方法に関する。
【背景技術】
【０００２】
近年、電気的に書き換え可能な不揮発性半導体メモリ（以下、「ＥＥＰＲＯＭ」という。）の大容量化に伴い、従来は磁気ディスク等に記憶していたファイルデータをＥＥＰＲＯＭに格納する不揮発性半導体記憶システムが製品化されている。従来のパーソナルコンピュータでは、磁気ディスクなどの２次記憶装置のファイル管理システムとして、その多くがＦＡＴ（ File Allocation Table ）ファイルシステムを採用していた。このため、参考文献１に記載されているように、不揮発性半導体記憶システムでも磁気ディスクと同じＦＡＴファイルシステム（以下、「ＦＡＴ−ＦＳ」という。）が採用される傾向にある。ＦＡＴ−ＦＳでは、磁気ディスクは、マスターブートセクタ、パーティションブートセクタ、ＦＡＴ領域、ルートディレクトリ領域、ファイルデータ領域等に分割されている。ファイルデータは、管理の論理的な最小単位であるクラスタの集合体として構成され、その連鎖情報は、ＦＡＴ領域で集中管理されている。すなわち、ファイル名、作成日付、およびファイルデータの先頭クラスタ番号などのファイル情報がディレクトリエントリと呼ばれるデータ構造体に格納され、この先頭クラスタ番号を起点としてＦＡＴ領域に記録されたそのファイルの連鎖情報が得られ、この連鎖情報をもとにクラスタが連結されて１つのファイルとしてアクセスされる。
【０００３】
ところで、従来のＦＡＴ−ＦＳでは、新しくファイルデータを書き込む際のデータ格納位置は、未使用領域の先頭から順に選択されていた。このため、ファイルデータ領域に比べ比較的小さなサイズのファイルデータを頻繁に書き換える用途では、ファイルデータ領域の先頭付近に書き換えが集中していた。パーソナルコンピュータの場合は、磁気ディスクの書き換え回数には実用上制限がないため、この書き込み集中が特に不都合を引き起こすことはなかった。しかしながら、ＥＥＰＲＯＭの書き換え回数には制限があり、これを使用した不揮発性半導体記憶システムでＦＡＴ−ＦＳを採用すると、ファイルデータ領域の先頭付近の書き換え回数が短期間でＥＥＰＲＯＭの仕様を超えてしまうという重大な問題があった。また、従来のＦＡＴ−ＦＳでは、ＦＡＴ領域、ルートディレクトリ領域などの管理情報をＥＥＰＲＯＭに記憶しておく必要があり、この領域への書き換え回数も無視できないものであった。特に、携帯電話などの携帯機器において、着信記録や留守電機能などの記憶にＥＥＰＲＯＭを使用する場合、比較的小さなサイズのデータを頻繁に更新する必要があり、特定領域への書き換え回数の集中が深刻な問題であった。
【０００４】
このような問題を解決するため、クラスタごとに書き換え回数を記録しておき、書き換え回数の少ない領域から順に使用するという方法も考えられる。しかしながら、この場合、クラスタの書き込みごとに全ファイルデータ領域の書き換え回数を検索しなければならず、ファイルデータの書き込み時間が大幅に増加するという本質的な問題があった。
【特許文献１】特開平１１−５３２４８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、ＥＥＰＲＯＭの特定領域への書き換え集中を緩和し、システム全体の信頼性を向上させることができる不揮発性半導体記憶システムおよびその制御方法を提供する。
【課題を解決するための手段】
【０００６】
本発明の一態様によれば、電気的に書き換え可能な複数の不揮発性半導体メモリセルからなる一括消去可能な複数のブロックと、複数に分割されたファイルデータを鎖状に連結して１つのファイルデータとして管理するための後続ブロック番号と、前記ブロックにおけるデータの有無を示す書き込みフラグと、前記後続ブロック番号および前記書き込みフラグを前記ブロックに有する第１の記憶手段と、前記鎖状に連結されたファイルデータの先頭ブロック番号が格納される第２の記憶手段と、前記第１および第２の記憶手段にアクセスし、前記分割されたファイルデータを格納する前記ブロックを乱数および前記書き込みフラグに基づいて選択し、それら選択された前記ブロックが鎖状に連結されるよう前記先頭ブロック番号および前記後続ブロック番号を設定する書き込み制御手段を有することを特徴とする不揮発性半導体記憶システムが提供される。
【０００７】
本発明の別の一態様によれば、電気的に書き換え可能な複数の不揮発性半導体メモリセルからなる一括消去可能な複数のブロックを有する第１の記憶手段を備えた不揮発性半導体記憶システムの制御方法であって、前記ブロックのサイズに基づいて、ファイルデータを複数の分割データに分割するファイル分割ステップと、前記分割データごとに乱数を生成する乱数生成ステップと、前記乱数生成ステップで生成された乱数に基づいて、前記分割データを格納する前記ブロックを選択するアドレス生成ステップと、前記アドレス生成ステップで選択された前記ブロックから当該ブロックにおけるデータの有無を示す書き込みフラグを読み出す情報取得ステップと、前記書き込みフラグに基づいて、当該ブロックでのデータの有無を判定する使用ブロック判定ステップと、前記使用ブロック判定ステップにおいて、前記アドレス生成ステップで選択された前記ブロックの前記書き込みフラグが“未使用”の場合に、前記分割データを当該ブロックへ書き込むデータ書き込みステップと、前記データ書き込みステップで前記分割データを書き込んだ前記ブロックの前記書き込みフラグを“使用中”に設定するフラグ設定ステップと、前記複数の分割データを鎖状に連結して１つのファイルデータとして管理するために、前記アドレス生成ステップで選択された前記ブロックのブロック番号を後続ブロック番号として前記鎖状に連結された１つ前の前記分割データが格納されている前記ブロックへ格納する後続ブロック番号設定ステップと、前記鎖状に連結された先頭の前記分割データが格納されている前記ブロックのブロック番号を先頭ブロック番号として第２の記憶手段に格納する先頭ブロック番号設定ステップと、前記フラグ設定ステップ、前記後続ブロック番号設定ステップ、および前記先頭ブロック番号設定ステップを備えた情報保存ステップと、前記鎖状に連結された最後の前記分割データが格納されている前記ブロックの前記後続ブロック番号としてファイルデータの終わりを示す“ＥＯＦ”を当該ブロックへ格納する後処理ステップを有することを特徴とする不揮発性半導体記憶システムの制御方法が提供される。
【発明の効果】
【０００８】
本発明によれば、不揮発性半導体記憶システムにおけるＥＥＰＲＯＭの特定領域への書き換え集中を緩和できるので、ファイルデータの書き換えに対してシステムとして高い信頼性を実現することができる。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照しながら、本発明の実施例を説明する。
【実施例】
【００１０】
図１は、本発明の実施例に係わる不揮発性半導体記憶システムを示すブロック図である。ここでは、主に、携帯電話などの小型携帯端末における不揮発性半導体記憶システムを、特に、電気的に書き換え可能な不揮発性半導体メモリ（以下、「ＥＥＰＲＯＭ」という。）へのファイルデータのアクセスにかかわる部分を示した。
【００１１】
本発明の実施例に係わる不揮発性半導体記憶システムは、ファイルデータを記憶するＥＥＰＲＯＭ１１、作業用のＲＡＭ１２、ファームウェアを格納しておくＲＯＭ１３、およびファイルデータの書き込み、消去、読み出しなどを制御するＣＰＵ１４を備えている。
【００１２】
ＥＥＰＲＯＭ１１、ＲＡＭ１２、ＲＯＭ１３、およびＣＰＵ１４は、それぞれシステムバス１５に接続されており、ＲＯＭ１３に格納されているファームウェアに従って、ＣＰＵ１４がシステムバス１５を介してＥＥＰＲＯＭ１１およびＲＡＭ１２にアクセスする。
【００１３】
また、ＣＰＵ１４は、システムバス１５に接続されたインターフェース（図示していない。）を介して外部との間でデータの入出力を行う。
【００１４】
ＥＥＰＲＯＭ１１は、消去ブロック単位で一括消去するＮＡＮＤ型のＥＥＰＲＯＭ１１であり、ここにはＣＰＵ１４が外部から受信したファイルデータが格納される。ＥＥＰＲＯＭ１１は１０２４個の消去ブロックで構成され、消去ブロックごとにブロック管理情報１６が格納されている。
【００１５】
ＲＡＭ１２は、電池によりバックアップされたＳＲＡＭ１２またはＤＲＡＭ１２であり、ＣＰＵ１４の作業用メモリとして使用される。また、ここにはＥＥＰＲＯＭ１１に格納されたファイルデータの先頭ブロック番号１７が格納されている。
【００１６】
図２は、本発明の実施例に係わる不揮発性半導体記憶システムにおけるＥＥＰＲＯＭ１１の消去ブロック２１を示すイメージ図である。
【００１７】
本発明の実施例に係わる不揮発性半導体記憶システムにおけるＥＥＰＲＯＭ１１の消去ブロック２１は、図２（ａ）に示したように、３２個のページ２２からなり、各ページ２２は、ファイルデータ等を記憶する５１２バイトのデータ領域２３、およびブロック管理情報１６を記憶する１６バイトの冗長領域２４で構成されている。
【００１８】
冗長領域２４に格納されるブロック管理情報１６は、図２（ｂ）に示したように、後続ブロック番号２５、書き込みフラグ２６、不良フラグ２７、およびその他情報２８を備えている。
【００１９】
書き込みフラグ２６は、消去ブロック２１のデータ領域２３におけるデータの有無を示しており、データが存在する場合は“使用中”に設定され、データが存在しない場合は“未使用”に設定されている。
【００２０】
不良フラグ２７は、消去ブロック２１の致命的な不良の有無を示しており、ＥＣＣ（ Error Correction Code ）によっても救済できないメモリセルの致命的な不良などが存在する場合には“ＮＧ”に設定され、そのような不良が存在しない場合には“ＯＫ”に設定される。
【００２１】
その他情報２８には、消去ブロック２１およびページ２２に固有の論理アドレス（ブロック番号、ページ番号）や不良メモリセル救済のために使用されるＥＣＣなどが格納されている。
【００２２】
後続ブロック番号２５は、大きなファイルをブロックサイズ（５１２バイト×３２ページ＝１６Ｋバイト）と同じ複数のデータに分割（以下、これを「分割データ」という。）してデータ領域２３に格納し、これらを論理的に鎖状に連結して１つのファイルデータとして管理するために使用される。
【００２３】
図３は、本発明の実施例に係わる不揮発性半導体記憶システムにおけるファイルデータの構成を示すイメージ図である。ここでは、一例として、５つの分割データ（ａ）〜（ｅ）からなる構成例を示した。
【００２４】
本発明の実施例に係わる不揮発性半導体記憶システムにおけるファイルデータは、分割データ（ａ）〜（ｅ）が消去ブロック２１ａ〜２１ｅのデータ領域２３にそれぞれ格納され、後続ブロック番号２５がそれぞれの冗長領域２４に格納されている。
【００２５】
後続ブロック番号２５は、論理的に接続する次の分割データが格納された消去ブロック２１を指し示している。
【００２６】
すなわち、ブロック番号−６の消去ブロック２１（以下、「Ｂｌｏｃｋ−６」という。他の消去ブロック２１についても以下同様である。）のデータ領域２３には分割データ（ａ）が格納され、その冗長領域２４にはＢｌｏｃｋ−１０２２のブロック番号（“１０２２”）が後続ブロック番号２５として格納されている。
【００２７】
Ｂｌｏｃｋ−１０２２のデータ領域２３には分割データ（ｂ）が格納され、その後続ブロック番号２５にはＢｌｏｃｋ−１のブロック番号（“１”）が設定されている。Ｂｌｏｃｋ−１のデータ領域２３には分割データ（ｃ）が格納され、その後続ブロック番号２５にはＢｌｏｃｋ−４のブロック番号（“４”）が設定されている。
【００２８】
Ｂｌｏｃｋ−４のデータ領域２３には分割データ（ｄ）が格納され、その後続ブロック番号２５にはＢｌｏｃｋ−２のブロック番号（“２”）が設定されている。Ｂｌｏｃｋ−２のデータ領域２３には分割データ（ｅ）が格納され、その後続ブロック番号２５にはこのファイルデータの最後の消去ブロック２１であることを示す“ＥＯＦ”が設定されている。
【００２９】
具体的には、ＥＥＰＲＯＭ１１が有する消去ブロック２１の論理アドレス（消去ブロック番号）として使用されない数字“１０２４”が、“ＥＯＦ”として用いられる。
【００３０】
そして、Ｂｌｏｃｋ−６のブロック番号（“６”）が先頭ブロック番号１７としてＲＡＭ１２に格納されている。
【００３１】
このファイルデータへのＣＰＵ１４のアクセス、つまり、消去動作または読み出し動作におけるアクセスは、先頭ブロック番号１７を起点として上述した後続ブロック番号２５のチェーンをたどることにより行われる。
【００３２】
次に、上述した構成を持つ不揮発性半導体記憶システムの制御方法について説明する。
【００３３】
最初に、図３に示した鎖状の構造を持つファイルデータの構成方法、つまり、ファイルデータのＥＥＰＲＯＭ１１への書き込み方法について説明する。
【００３４】
図４は、本発明の実施例に係わる不揮発性半導体記憶システムにおけるＥＥＰＲＯＭ１１への書き込み方法を示すイメージ図である。ここでは、ＣＰＵ１４が外部から受信したファイルデータを書き込みデータ４１としてＥＥＰＲＯＭ１１へ書き込む場合の一例を示した。
【００３５】
まず、ＣＰＵ１４は、書き込みデータ４１を５つに分割し、生成した分割データ（ａ）〜（ｅ）ごとに一様乱数を発生させて、これに基づいてそれぞれの分割データを格納する消去ブロック２１を選択する。
【００３６】
そして、選択された消去ブロック２１が未使用であれば、ＣＰＵ１４は、その分割データをデータ領域２３へ書き込む。この時、図４に示したように、不良フラグ２７が“ＮＧ”である不良ブロック（Ｂｌｏｃｋ−５）は選択の対象から除外される。
【００３７】
図４では、分割データ（ａ）はＢｌｏｃｋ−６に格納され、分割データ（ｂ）はＢｌｏｃｋ−１０２２に格納され、分割データ（ｃ）はＢｌｏｃｋ−１に格納され、分割データ（ｄ）はＢｌｏｃｋ−４に格納され、分割データ（ｅ）はＢｌｏｃｋ−２に格納されている。
【００３８】
次に、書き込み動作の詳細をフロー図を用いて具体的に説明する。
【００３９】
図５は、本発明の実施例に係わる不揮発性半導体記憶システムの制御方法における書き込み動作を示すフロー図である。ここでは、説明を容易にするため、一例として、図４に示した書き込みデータ４１を用いて、図３に示した鎖状のデータ構造を形成する書き込み動作を説明する。
【００４０】
本発明の実施例に係わる不揮発性半導体記憶システムの制御方法における書き込み動作は、図５（ａ）に示したように、ファイル分割ステップ４２、ブロック書き込みステップ４３、終了判定ステップ４４、および後処理ステップ４５を備えている。
【００４１】
ファイル分割ステップ４２では、ＣＰＵ１４は、書き込みデータ４１を分割し、消去ブロック２１のデータ領域２３と同じサイズ（１６Ｋバイト）の５つの分割データ（ａ）〜（ｅ）を生成する。最後の分割データ（ｅ）は１６Ｋバイトより小さくても良い。
【００４２】
ブロック書き込みステップ４３では、ＣＰＵ１４は、ファイル分割ステップ４２で生成された分割データ（ａ）〜（ｅ）を順次ＥＥＰＲＯＭ１１へ書き込む。ブロック書き込みステップ４３の詳細は、図５（ｂ）を用いて後述する。
【００４３】
終了判定ステップ４４では、ＣＰＵ１４は、書き込みブロック数をカウントアップし、この値がファイル分割ステップ４２で生成された分割データの数、つまり、“５”よりも小さい場合（“Ｎｏ”）には、次の分割データを書き込むためにブロック書き込みステップ４３へ移行する。
【００４４】
カウントアップした書き込みブロック数が分割データ数（“５”）に等しくなった場合（“Ｙｅｓ”）には、ＣＰＵ１４は、後処理ステップ４５へ移行する。
【００４５】
後処理ステップ４５では、ＣＰＵ１４は、最初の分割データ（ａ）が書き込まれた消去ブロック番号（図３では、“６”。）を先頭ブロック番号１７としてＲＡＭ１２に格納する。そして、最後の分割データ（ｅ）が書き込まれた消去ブロック２１（図３では、“Ｂｌｏｃｋ−２”。）のブロック管理情報１６にこの消去ブロック２１がファイルデータの最後であることを示す“ＥＯＦ”を設定する。
【００４６】
後処理ステップ４５が終了すると、ＣＰＵ１４は、一連の書き込み動作を終了する。
【００４７】
本発明の実施例に係わる不揮発性半導体記憶システムの制御方法における書き込み動作のブロック書き込みステップ４３は、図５（ｂ）に示したように、乱数生成ステップ５１、アドレス生成ステップ５２、情報取得ステップ５３、不良ブロック判定ステップ５４、使用ブロック判定ステップ５５、データ書き込みステップ５６、書き込み判定ステップ５７、情報更新ステップ５８、および情報保存ステップ５９を備えている。
【００４８】
乱数生成ステップ５１では、ＣＰＵ１４は、ＲＯＭ１３内のファームウェアに用意された乱数発生ルーチンにより一様乱数を生成する。乱数発生ルーチンとしては、例えば、Ｃ言語でファームウェアを開発する場合には、ｒａｎｄ関数が使用される。
【００４９】
アドレス生成ステップ５２では、ＣＰＵ１４は、乱数生成ステップ５１で生成された乱数を消去ブロック２１のブロック番号に変換する。すなわち、図５に示したＥＥＰＲＯＭ１１のように、消去ブロック２１が１０２４個ある場合には、ｒａｎｄ関数で発生させた乱数を１０２４倍してその小数点以下を切り捨てることでＢｌｏｃｋ−０〜Ｂｌｏｃｋ−１０２３のいずれかの消去ブロック番号を生成することができる。
【００５０】
情報取得ステップ５３では、ＣＰＵ１４は、アドレス生成ステップ５２で生成された消去ブロック番号の冗長領域２４を読み出し、その不良フラグ２７および書き込みフラグ２６を取得する。
【００５１】
不良ブロック判定ステップ５４では、ＣＰＵ１４は、情報取得ステップ５３において取得した不良フラグ２７によってその消去ブロック２１の良否を判定する。
【００５２】
すなわち、不良フラグ２７が“ＮＧ”であれば、この消去ブロック２１はＥＣＣによっても救済できない致命的なメモリセル不良などを有しているので、ＣＰＵ１４は、再度別の消去ブロック２１を選択するために乱数生成ステップ５１へ移行する。
【００５３】
不良フラグ２７が“ＯＫ”であれば、ＣＰＵ１４は、その消去ブロック２１が使用可能であるかを調べるために、次の使用ブロック判定ステップ５５へ移行する。
【００５４】
使用ブロック判定ステップ５５では、ＣＰＵ１４は、情報取得ステップ５３において取得した書き込みフラグ２６によってその消去ブロック２１の使用可否を判定する。
【００５５】
すなわち、書き込みフラグ２６が“使用中”であれば、この消去ブロック２１にはすでに他のデータが書き込まれているので、ＣＰＵ１４は、再度別の消去ブロック２１を選択するために乱数生成ステップ５１へ移行する。
【００５６】
不良フラグ２７が“未使用”であれば、ＣＰＵ１４は、分割データをその消去ブロック２１へ書き込むために次のデータ書き込みステップ５６へ移行する。
【００５７】
データ書き込みステップ５６では、ＣＰＵ１４は、アドレス生成ステップ５２で生成された消去ブロック番号に基づいて、分割データをその消去ブロック２１へ書き込む。
【００５８】
分割データの書き込みが終了すると、ＣＰＵ１４は、書き込み判定ステップ５７で、書き込みエラーの有無を判定する。データ書き込みステップ５６で書き込みエラーが発生していれば（“ＮＧ”）、ＣＰＵ１４は、その消去ブロック２１を以後書き込み不可とするために情報更新ステップ５８へ移行する。
【００５９】
データ書き込みステップ５６で正常に分割データが書き込まれていれば（“ＯＫ”）、ＣＰＵ１４は、この消去ブロック２１のブロック管理情報１６を保存するために情報保存ステップ５９へ移行する。
【００６０】
情報更新ステップ５８では、ＣＰＵ１４は、この消去ブロック２１に致命的な不良があること示すため、冗長領域２４にある不良フラグ２７を“ＮＧ”に設定する。これ以降この消去ブロック２１は不良ブロックとして扱われ、データが書き込まれることはない。
【００６１】
分割データの書き込みが正常に終了すると、情報保存ステップ５９で、ＣＰＵ１４は、その消去ブロック２１の冗長領域２４にある書き込みフラグ２６を“使用中”に設定し、その消去ブロック番号を所定の領域に格納する。
【００６２】
すなわち、書き込みデータ４１の最初の分割データ（ａ）の場合を除いて、ＣＰＵ１４は、その消去ブロック番号を後続ブロック番号２５として１つ前の分割データが書き込まれている消去ブロック２１のブロック管理情報１６に格納する。
【００６３】
書き込みフラグ２６および消去ブロック番号の格納が終了すると、ＣＰＵ１４は、ブロック書き込みステップ４３を終了して、終了判定ステップ４４へ移行する。
【００６４】
上述した書き込み動作の各ステップを実行することで、ＣＰＵ１４は、図３に示したように、後続ブロック番号２５によって鎖状に連結された一連の消去ブロック２１からなるファイルデータを生成することができる。
【００６５】
次に、図３に示した鎖状の構造を持つファイルデータのＥＥＰＲＯＭ１１からの消去方法について説明する。
【００６６】
図６は、本発明の実施例に係わる不揮発性半導体記憶システムの制御方法におけるファイルデータの消去動作を示すフロー図である。ここでは、説明を容易にするため、一例として、図３に示したファイルデータの消去動作を説明する。
【００６７】
本発明の実施例に係わる不揮発性半導体記憶システムの制御方法におけるファイルデータの消去動作は、先頭ブロック番号１７取得ステップ６１、後続ブロック番号２５取得ステップ６２、ブロック消去ステップ６３、および終了判定ステップ６４を備えている。
【００６８】
先頭ブロック番号１７取得ステップ６１で、ＣＰＵ１４は、鎖状に連結されたファイルデータの先頭の消去ブロック２１にアクセスするために、ＲＡＭ１２に格納されているそのファイルデータの先頭ブロック番号１７（図３では、“６”。）を取得する。
【００６９】
そして、その先頭ブロックにアクセスして、ＣＰＵ１４は、後続ブロック番号２５取得ステップ６２で、後続ブロック番号２５（図３では、“１０２２”。）を取得する。ここで取得された後続ブロック番号２５は、次のブロック消去ステップ６３で消去されないように、ＲＡＭ１２の所定の領域に一時記憶される。
【００７０】
ブロック消去ステップ６３では、ＣＰＵ１４は、その消去ブロック２１を一括して消去する。
【００７１】
ブロック消去ステップ６３が終了すると、ＣＰＵ１４は、終了判定ステップ６４で、後続ブロック番号２５取得ステップ６２でＲＡＭ１２に一時記憶しておいた後続ブロック番号２５を調べてファイルデータの終了を判定する。
【００７２】
すなわち、その後続ブロック番号２５が“ＥＯＦ”でなければ（“ｎｅｘｔ”）、ＣＰＵ１４は、次の消去ブロック２１（例えば、図３では、“Ｂｌｏｃｋ−１０２２”、“Ｂｌｏｃｋ−１”、“Ｂｌｏｃｋ−４”、または“Ｂｌｏｃｋ−２”。）を消去するために、後続ブロック番号２５取得ステップ６２へ移行する。
【００７３】
ＲＡＭ１２に一時記憶されている後続ブロック番号２５が“ＥＯＦ”であれば、ファイルデータを構成していた分割データ（ａ）〜（ｅ）の消去ブロック２１がすべて消去されたので、ＣＰＵ１４は、終了判定ステップ６４を終了して消去動作を完了する。
【００７４】
このように、ＲＡＭ１２に格納されている先頭ブロック番号１７から後続ブロック番号２５を順次たどることにより、図３に示した鎖状の構造を持つファイルデータを容易に消去することができる。
【００７５】
次に、図３に示した鎖状の構造を持つファイルデータのＥＥＰＲＯＭ１１からの読み出し方法について説明する。
【００７６】
図７は、本発明の実施例に係わる不揮発性半導体記憶システムの制御方法におけるファイルデータの読み出し動作を示すフロー図である。ここでは、図６の消去動作と同様に、図３に示したファイルデータの読み出し動作について説明する。
【００７７】
本発明の実施例に係わる不揮発性半導体記憶システムの制御方法におけるファイルデータの読み出し動作は、先頭ブロック番号１７取得ステップ７１、後続ブロック番号２５取得ステップ７２、ブロック読み出しステップ７３、および終了判定ステップ７４を備えている。
【００７８】
先頭ブロック番号１７取得ステップ７１で、ＣＰＵ１４は、消去動作と同様に、そのファイルデータの先頭ブロック番号１７を取得する。
【００７９】
そして、消去動作と同様に、ＣＰＵ１４は、後続ブロック番号２５取得ステップ７２で、後続ブロック番号２５を取得する。
【００８０】
ブロック読み出しステップ７３では、ＣＰＵ１４は、その消去ブロック２１のデータ領域２３から分割データを読み出す。
【００８１】
ブロック読み出しステップ７３が終了すると、ＣＰＵ１４は、終了判定ステップ７４で、ファイルデータの終了を判定する。
【００８２】
すなわち、その後続ブロック番号２５が“ＥＯＦ”でなければ（“ｎｅｘｔ”）、ＣＰＵ１４は、次の消去ブロック２１（例えば、図３では、“Ｂｌｏｃｋ−１０２２”、“Ｂｌｏｃｋ−１”、“Ｂｌｏｃｋ−４”、または“Ｂｌｏｃｋ−２”。）を読み出すために、後続ブロック番号２５取得ステップ７２へ移行する。
【００８３】
後続ブロック番号２５が“ＥＯＦ”であれば、ＣＰＵ１４は、終了判定ステップ７４を終了して読み出し動作を完了する。
【００８４】
このように、ＲＡＭ１２に格納されている先頭ブロック番号１７から後続ブロック番号２５を順次たどることにより、図３に示した鎖状の構造を持つファイルデータを容易に読み出すことができる。
【００８５】
上記実施例によれば、ＥＥＰＲＯＭ１１の特定領域への書き換え集中を緩和できるので、ファイルデータの書き換えに対して高い信頼性を持った不揮発性半導体記憶システムおよびその制御方法を実現することができる。
【００８６】
また、上記実施例によれば、鎖状に連結されているファイルデータの先頭ブロック番号１７をＲＡＭ１２に記憶するので、ＥＥＰＲＯＭ１１上にディレクトリエントリ領域を作成する必要がなく、ＥＥＰＲＯＭ１１の特定領域への書き換え集中をさらに削減することができる。
【００８７】
さらに、上記実施例によれば、鎖状に連結される各消去ブロック２１の選択を一様乱数を用いて行うので、ファイルデータの頻繁な書き換えに対しても、特定の消去ブロック２１への過度な書き換え集中を避けることができ、すべての消去ブロック２１に対して書き換え回数の平均化を確率的に効率よく実現することができる。
【００８８】
さらに、上記実施例によれば、書き込みフラグ２６に基づいて選択された消去ブロック２１の使用の可否を判定するので、書き換え回数の平均化を高速に実現することができる。
【００８９】
上述の実施例では、ＥＥＰＲＯＭ１１は、一例として、ＮＡＮＤ型であるとしたが、本発明はこれに限られるものではなく、書き換え回数に制約のある電気的に書き換え可能な不揮発性半導体メモリを用いる記憶システムに対して適用可能である。
【００９０】
また、上述の実施例では、後続ブロック番号２５および書き込みフラグ２６などのブロック管理情報１６は、冗長領域２４に格納するとしたが、本発明はこれに限られるものではなく、例えば、データ領域２３の所定の場所をブロック管理情報１６の格納用に設定することもできる。
【００９１】
さらに、上述の実施例では、ＥＥＰＲＯＭ１１は、一例として、１６Ｋバイトのデータ領域２３を持つ１０２４個の消去ブロック２１で構成されるとしたが、本発明はこれに限られるものではない。
【００９２】
さらに、上述の実施例では、説明を容易にするために、ファイルデータは消去ブロック２１のデータ領域２３と同じサイズ（１６Ｋバイト）の分割データ（ａ）〜（ｅ）に分割され、それぞれが消去ブロック２１に格納されるとしたが、本発明はこれに限られるものではない。
【００９３】
例えば、図８（ａ）に示したように、ＥＥＰＲＯＭ１１において複数の消去ブロック２１（図８（ａ）では、４つ。）をグループにして書き込みブロックを構成し、ファイルデータを書き込みブロックのサイズ（図８（ａ）の場合は、３２Ｋバイト。）に合わせて分割するようにしても良い。
【００９４】
この場合、図８（ｂ）に示したように、アドレス生成ステップ５２で乱数に基づいて生成される書き込みブロック番号は、実際にＣＰＵ１４が書き込む際の消去ブロック番号より２ｂｉｔ分少なくて良い。この書き込みブロック番号を消去ブロック番号の上位アドレスとして設定することで、図８（ａ）に示したように、連続した４つの消去ブロック２１で書き込みブロックを構成することができる。
【００９５】
さらに、上述の実施例では、先頭ブロック番号１７はＲＡＭ１２に格納されるとしてが、本発明はこれに限られるものではなく、例えば、書き換え回数に実質的な制限のないハードディスクなどに格納しても良い。
【００９６】
さらに、上述の実施例では、“ＥＯＦ”は後続ブロック番号２５に格納された“１０２４”であるとしてが、本発明はこれに限られるものではなく、例えば、後続ブロック番号２５とは別に“ＥＯＦ”を設定する専用の領域をブロック管理情報１６として設けても良い。
【００９７】
さらに、上述の実施例では、乱数はｒａｎｄ関数によって発生するとしたが、本発明はこれに限られるものではなく、ほぼ一様な乱数を発生させることのできる手段であれば、原理的に適用可能である。
【図面の簡単な説明】
【００９８】
【図１】本発明の実施例に係わる不揮発性半導体記憶システムを示すブロック図。
【図２】本発明の実施例に係わる不揮発性半導体記憶システムにおけるＥＥＰＲＯＭの消去ブロックを示すイメージ図。
【図３】本発明の実施例に係わる不揮発性半導体記憶システムにおけるファイルデータの構成を示すイメージ図。
【図４】本発明の実施例に係わる不揮発性半導体記憶システムにおけるＥＥＰＲＯＭへの書き込み方法を示すイメージ図。
【図５】本発明の実施例に係わる不揮発性半導体記憶システムの制御方法におけるファイルデータの書き込み動作を示すフロー図。
【図６】本発明の実施例に係わる不揮発性半導体記憶システムの制御方法におけるファイルデータの消去動作を示すフロー図。
【図７】本発明の実施例に係わる不揮発性半導体記憶システムの制御方法におけるファイルデータの読み出し動作を示すフロー図。
【図８】本発明の実施例に係わる不揮発性半導体記憶システムの制御方法におけるファイルデータの別の書き込み動作を説明するイメージ図。
【符号の説明】
【００９９】
１１  ＥＥＰＲＯＭ
１２  ＲＡＭ
１３  ＲＯＭ
１４  ＣＰＵ
１５  システムバス
１６  ブロック管理情報
１７  先頭ブロック番号
２１、２１ａ〜２１ｅ  消去ブロック
２２  ページ
２３  データ領域
２４  冗長領域
２５  後続ブロック番号
２６  書き込みフラグ
２７  不良フラグ
２８  その他情報
【図１】
2006120257.tif 000003
【図２】
2006120257.tif 000004
【図３】
2006120257.tif 000005
【図４】
2006120257.tif 000006
【図５】
2006120257.tif 000007
【図６】
2006120257.tif 000008
【図７】
2006120257.tif 000009
【図８】
2006120257.tif 000010