(57)【特許請求の範囲】
【請求項１】
情報を特定の単位でアクセスすることが可能な、不良領域を含む不揮発性或いは揮発性の記録部と、前記記録部を制御する記録部制御回路と、前記記録部と送受信するデータを一時的に記録するバッファメモリと、前記記録部内の前記不良領域を管理するための情報を保存する揮発性メモリと、前記揮発性メモリの情報を処理する不良管理回路と、ホストシステムからのアクセスを処理し、前記記録部制御回路と前記不良管理回路に動作指示を出すインタフェース制御回路を有するメモリ装置において、
前記記録部を仮想的に複数の領域に分割して個別に管理する手段と、
分割単位ごとにその領域内に含まれる不良領域と、今後発生する可能性のある不良領域を置き換えるための代替領域を確保し管理する手段と、
不良領域へ前記ホストシステムがアクセスしたときに、前記代替領域をアクセスさせるためにアクセス先を変換する手段とを有するメモリ装置。
【請求項２】
請求項１に記載のメモリ装置において、
複数の領域に分割された各領域の先頭からの位置aが等しいそれぞれの領域内の個々のデータブロックを、位置aごとまとめて管理するための管理情報と、個々のデータブロックへ消去書込の度に記録される消去書込回数とを用いて、領域m内の位置aにある特定のデータブロックの消去書込回数が一定の値に達すると、位置aに対応する前記管理情報の値ｎを変化させ、その管理情報に基づき、領域mの位置aのデータブロックへ書込む内容を、領域n+mの位置aにあるデータブロックへ記録するする手段を有するメモリ装置。
【請求項３】
請求項２に記載のメモリ装置において、
領域mの位置aのデータブロックの内容の読み出しを行う際、位置aの管理情報の値nを用いて、領域n+mの位置aのデータブロックの内容を読み出す手段を有するメモリ装置。
【請求項４】
請求項１に記載のメモリ装置において、
前記記録部が複数種類の不良特性を持ち、
それぞれの不良特性に応じた回路で順次代替処理を行うメモリ装置。
【請求項５】
請求項１に記載のメモリ装置において、
前記不良管理回路が、プログラマブルシーケンサとシーケンスを記録したROMで構成され、
前記ROMを入れ替えることで、シーケンスコードを変更することが可能であるメモリ装置。
【請求項６】
請求項１に記載のメモリ装置において、
前記不良管理回路がプログラマブルシーケンサとシーケンスを保持するRAMで構成され、
起動時に前記記録部からシーケンスコードを読出し前記RAMへ保存し、前記シーケンスコードをシーケンサが実行することで、前記シーケンスコードを変更することが可能であるメモリ装置。
【請求項７】
請求項５または請求項６に記載のメモリ装置において、
前記記録部が複数種類の不良特性を持ち、そのうち特定種類のみプログラマブルシーケンサで処理を行い、その他の不良特性を専用回路で処理するメモリ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は不良領域を含む揮発性或いは不揮発性記録部を使用したメモリにおいて、信頼性が高くかつ高速で安価なメモリシステムの構築に関する。
【０００２】
【従来の技術】
メモリ装置において、内部のメモリセルへのアクセス単位が複数バイトを一まとめとしたブロック単位でアクセス可能でかつ不良ブロックを含む場合、それらを管理するために、特開2000-11677号公報に記載のように、メモリ内に通常領域と、その領域に含まれる不良領域を代替するためのスペア領域を設け、スペア領域上の各ブロックと、それが代替しているデータ領域上の不良ブロックの対応付けを管理する不良管理情報を構成する。これによって、データ領域にアクセスした場合、不良管理情報を参照し、アクセスアドレスが不良ブロックか判定を行い、不良ブロックの場合は、対応するスペア領域上のブロックをアクセスすることで、不良代替を行う。
【０００３】
また、特開平6-124596号公報に記載のように、データ領域上の各ブロックに物理アドレスと論理アドレスを割り当て、その対応付けを行う管理情報を用意する。そして、ホストがデータの書き込みを行う論理アドレスを指定すると、新規に消去状態のブロックへデータを記録しこの物理アドレスと論理アドレスを対応付ける。以前にこの論理アドレスに割り当てられていた物理アドレスに対応するブロック内の古いデータは消去する。
【０００４】
【発明が解決しようとする課題】
上記従来技術では、通常領域のアクセス時、毎回スペア領域との対応付け情報をすべて参照する必要があり、また、通常領域全域の不良ブロックを一括してスペア領域に代替するため、例えば通常領域が巨大な場合、スペア領域も巨大になり、対応付け情報も膨大になる。このため、不良検索に時間がかかる。
【０００５】
さらに上記従来技術では、不良ブロックが通常領域内に局所集中的に発生した場合でも、通常領域のアクセス時、スペア領域との対応付け情報をすべて参照する必要があるため、局所集中的な不良発生が通常領域全域のアクセス時間に影響を及ぼす。
さらに上記従来技術では、データの消去書込み回数を分散するために、全データブロックにおける物理アドレスと論理アドレスの対応付け情報が必要になるため、テーブル検索時間と管理情報が膨大になる。このためアクセス時間が遅くなり、大きな管理領域が必要になる。
【０００６】
本発明の目的は、通常領域と代替領域が巨大になり、管理情報量が増大しても、通常領域に対するアクセス時間の低下を抑制可能なメモリ装置を提供する。
【０００７】
本発明の別の目的は、通常領域内に局所集中的に不良ブロックが発生しても、その付近以外の通常領域のアクセス速度に影響を与えない高速で効率的なメモリ装置を提供する。
【０００８】
本発明の別の目的は、データの消去書き込み回数を分散するための管理情報を削減し、アクセス時の管理情報検索時間を削減することで、効率的に書き込みを行うことが可能なメモリ装置を提供する。
【０００９】
【課題を解決するための手段】
本発明の目的を達成するために、不良ブロックを含むメモリ装置において、メモリ上の通常領域と代替領域のアクセス単位であるブロックを複数個一まとめにしたセグメントを構成し、通常領域のセグメントとスペア領域のセグメントを各々一対一に対応させ管理する手段と、セグメント全域に不良が発生した場合は、代替セグメントをスペア領域に設け、セグメントごと代替セグメントへ代替する手段とを設けた。
【００１０】
本発明の別の目的を達成するために、各セグメントの先頭からのオフセット値aが等しい各セグメントのそれぞれのデータブロックをまとめて管理するための管理情報と、個々のデータブロックへ消去書込の度に記録される消去書込回数とを用いて、セグメントm内のオフセットaにある特定のデータブロックの消去書込回数が閾値に達すると、オフセットaに対応する前期管理情報の値ｎを変化させ、その管理情報に基づき、セグメントmのオフセットaのデータブロックへ書込む内容を、セグメントn+mのオフセットaにあるデータブロックへ記録するする手段と、セグメントmのオフセットaのデータブロックの内容の読み出しを行う際、オフセットaの管理情報の値nを用いて、セグメントn+mのオフセットaのデータブロックの内容を読み出す手段とを設けた。
【００１１】
【発明の実施の形態】
以下、本発明の実施形態について説明する。
【００１２】
図１は、本発明の不良代替処理の概念説明図である。フラッシュメモリ１００は本発明を適用するフラッシュメモリのデータ構成を示す。また、ホストシステム１２０はフラッシュメモリ１００へアクセスする装置を示す。フラッシュメモリ１００は、図示の様に、フラッシュメモリセル11３へデータを保持する。このフラッシュメモリセル１１３は、通常、複数バイトを一まとめにしたブロックという単位で消去、書き込み、読み出しが行われる。ブロックには、正常に使用可能な良ブロックと、製造時の不具合等により不良化した不良ブロックが存在する。
本発明では、フラッシュメモリセル１１３を通常領域108と代替領域109の2種類の領域に分けて管理する。通常領域は、ホストシステムのデータを保存する。また、代替領域は通常領域内の不良ブロックを置き換えるために使用する。それぞれの領域において、ブロックをn個合わせたものをセグメントと定義し、各領域が複数のセグメントから構成されているとして扱う。
【００１３】
メモリ物理アドレス１０２は、フラッシュメモリセル113の先頭から順次ブロックに割り当てられるアドレスである。オフセット101は各セグメントの先頭を0として割り当てられるアドレスで、各セグメントの先頭からのオフセット値を示す。
【００１４】
通常領域108のデータセグメントと代替領域109の代替セグメントは一対一に対応する。すなわち、データセグメントnと代替セグメントnが対応する。この対応付け情報は不良管理テーブル１１４へ保存される。
【００１５】
不良管理テーブル１１４は、セグメントごとの対応付け情報を保持する。すなわちデータセグメントnと代替セグメントｎの対応付け情報は、セグメントn管理情報１１１として不良管理テーブル１１４へ保持される。
【００１６】
セグメント管理情報内のエントリ117は、対応する代替セグメント内の各ブロックの状態を示す。例えば、先頭エントリは、代替セグメント内の先頭ブロックの状態を示す。エントリを構成する情報について説明する。良不良フラグ110は対応する代替セグメントが良ブロックか不良ブロックかを示す。代替元論理アドレス112は、このエントリに対応するブロックが代替する、通常領域内のブロックのオフセットを示す。例えば、代替セグメント０の先頭ブロックは、データセグメント0内のオフセット２の不良ブロックを代替するため、不良管理テーブル114内のセグメント0管理情報の先頭エントリの代替元論理アドレスに0002hが記録される。通常、オフセット１０１はメモリ物理アドレスと比較して、アドレス空間が小さいため、代替元論理アドレス情報量は小さくなる。尚、代替処理とは、不良化した領域に対応する正常領域を用意しておき、不良領域の変わりにアクセスするようにすることで、正常なアクセスを保証する処理を示す。
【００１７】
上記構成のフラッシュメモリ１００は、アドレス変換処理１０７を介して、ホストシステム１２０へホスト空間１２３を提供する。この空間においてホスト論理アドレス１２１は、フラッシュメモリ１００内のメモリ物理アドレス１０２と対応するが、アドレス変換処理１０７により、不良ブロックが代替されるため、ホスト空間１２３では全領域が良ブロックで構成される。
【００１８】
図２はこのアドレス変換処理１０７の流れを示すフローチャートである。
【００１９】
ホストシステム１２０がフラッシュメモリ１００へ、アクセス対象ホスト論理アドレスを送信する(ステップ201)。フラッシュメモリ１００はホスト論理アドレスに対応する通常領域内のデータセグメントとオフセット値を計算する（ステップ202）。この方法として例えば、ホスト論理アドレスがメモリ物理アドレスと一対一に対応しているため、メモリ物理アドレスとデータセグメント及びオフセットの関係を利用する方法が考えられる。次に、不良管理テーブルを参照し対象データセグメントのセグメント管理情報内から、アクセスするオフセットが代替登録されていないか検索する(ステップ203、ステップ204)。代替登録されている場合は、対応する代替セグメント内の対応ブロックを指定する(ステップ206)。登録されていない場合は、データセグメント内の対応ブロックを指定する(ステップ205)
フラッシュメモリ１００が指定したブロックに対してホストシステム１２０がアクセスを行う(207)。以上の処理を行うことで、ホストシステム１２０は、フラッシュメモリ１００を擬似的に不良ブロックが一切含まれないメモリとしてアクセスすることが可能になる。
【００２０】
本発明では、上記不良代替処理に加え、ホストシステム１２０からの消去書き込みを分散するための手段を設けている。以下これについて説明する。図３はこの方式概念の説明図である。
【００２１】
データセグメントの各ブロックに、消去書き込みが行われた回数を記録する。そしてウェアレベリング管理テーブル３０２を用意する。このテーブルは不良代替後のフラッシュメモリ空間であるフラッシュメモリ論理空間３００において、データセグメントの同一オフセットごとにセグメントシフト数というデータを管理する。このデータは、あるセグメントのオフセットに対応すべきデータが、異なるセグメントの同一オフセットに存在する場合、そのセグメント数の差分を記録する。すなわち、セグメントNのオフセットnにあるべきデータが、セグメントN+Mのオフセットnに存在する場合、セグメントシフト数はMになる。また、この値は、全セグメントの同一オフセットに対応するため、例えば、オフセットnのセグメントシフト数が１の場合、全セグメントのオフセットnの値が1セグメント分ずれていることを示す。
【００２２】
以下、これらの情報を利用した消去書込み分散について説明する。
【００２３】
図３のステップ１は、ホストシステム１２０がフラッシュメモリ１００へ消去書き込みを行う前の状態である。ホストシステム１２０がデータセグメント1のオフセット１のデータBの更新をフラッシュメモリ100へ指示するとデータＢの書込み回数が１増加する。このとき、データBの書込み回数が書込み分散処理を起動する閾値mに達すると、フラッシュメモリ１００は、ウェアレベリング管理テーブル３０２内のセグメントシフト数３０４の値を更新する。この値の更新方法としては、単に１を加える方法、全セグメントの同一オフセット内で一番書込み回数が少ないブロックへデータBのデータが格納されるようにオフセット値を計算する方法などが考えられる。本例では、現在の値に１を加えた場合を示している。この結果、ステップ3に示すように、全セグメントのオフセット１に存在するデータが全て1セグメント分後方にシフトされて記録し直される。この結果、データＢの更新が集中しても、内部的には複数のブロックに対して分散して書き込まれるため、消去書込みの分散処理を実現できる。また、全セグメントの同一オフセットに対して、1つのセグメントシフト数を用意すればよいため、ウェアレベリング管理テーブル302サイズを削減することが可能になる。
【００２４】
図４は、本発明を適用した不揮発性メモリ4００の内部構成の一例を示している。当該メモリ装置４０１は、ホストシステム４４０とホスト I/F４４１を介して接続される。ホストI/F４４１はI/F切り替え信号４３７によって切り替えることが可能である。ホストI/F４４１の例としては、NAND形/AND形フラッシュメモリI/F、SRAMI/F SDRAM I/Fが考えられる。
【００２５】
不揮発性メモリ４００は、ホストシステム４４０とのI/Fを切り替えるI/F切り替え部４３７、ホストシステム４４０との間でI/F制御を行うI/F制御部４３０、情報の記録を行うメモリセル部４０１、メモリセル部４０１内の不良ブロック管理を行う管理部４１０から構成される。尚、管理部４１０はメモリセル部４０１の分散書き込み処理などの制御を行う場合もある。
【００２６】
I/F制御部４２０とメモリセル部４０１はAND I/F-１ ４３１、およびAND I/F-２ ４３２で接続されている。ここでAND I/FはAND形フラッシュメモリ制御用I/F仕様のことを示す。尚、このI/FはNAND形フラッシュメモリ制御用I/F等、その他のI/Fを適用することも可能である。
【００２７】
メモリセル部４０１はホストシステム４４０から直接AND I/F-１ ４３１を介して制御することも可能である。
【００２８】
管理部４１０はＩ/F制御部４３０と専用I/F  ４３５で接続されている。また、メモリセル部４０１をAND I/F-３  433を介して制御可能な上、メモリセル部401のバッファ405上のデータをSRAM I/F４３４を介して直接アクセスすることも可能である。
【００２９】
制御部４０３は、さらに不揮発性記録媒体であるフラッシュメモリセル４０２、フラッシュメモリへ書き込むデータを一時的に記録するSRAMで構成されたバッファ４０５、AND I/F  ４０７を介した外部回路からの指示により、バッファ４０５とフラッシュメモリセル４０２を制御する制御部４０３、制御部４０３への制御信号を切り替える切り替え部４０４から構成される。
【００３０】
図５は、管理部４１０の構成の一例を示している。
【００３１】
ECC(Error correcting code；エラー訂正符号)５０６はメモリセル部４０１へデータ書き込む際にはECCを生成して付加し、データを読み出す場合にはECC計算を行い、エラー検出訂正を行うことで、データの信頼性を高めるために使用される。
【００３２】
I/Fレジスタ５０５はＩ/F制御部４２０との間で情報を送受信するために使用される。
【００３３】
プログラマブルシーケンサ５００は管理部４１０内の各回路を制御し代替処理などのシーケンス処理を実行する。
【００３４】
シーケンスROM５０１は、プログラマブルシーケンサ５００が実行するシーケンスコードを記録する。ここに記録されるシーケンスコードを変更することで様々な処理を追加、変更することが可能である。また、シーケンスROM５０１の変わりに、シーケンスRAMを搭載し、不揮発性メモリ４００起動時にメモリセル部からシーケンスコードを読み込み可能にすることで、不揮発性メモリが製造された後も、フラッシュメモリセル４０２に記録されているシーケンスコードに改変を加えることが可能になる。
【００３５】
Work RAM５０２は、プログラマブルシーケンサ５００が一時的に値を保存したり、メモリセル部４０１管理用の管理データを保持するために使用される。
【００３６】
制御レジスタ群５０３は前述処理に特化された制御用レジスタ群が格納される。これはプログラマブルシーケンサ５００が動作中に使用する。
【００３７】
図６は、不揮発性メモリ４００のアドレス構成を示す。
【００３８】
不揮発性メモリ４００最下位アドレスを「００００」、ホストシステム４４０がアクセス可能な上限値をHMAX６０２と定義する、この領域は前述の通常領域１０８に対応する。この領域は複数の同一の大きさを持つデータセグメントから構成される。不揮発性メモリ４００の最上アドレスをFMAX６０３と定義する。HMAX６０２からFMAX６０３の間を管理領域６０１と定義する。管理領域６０１はさらに3種の領域に分割される。代替領域６１２は、複数の代替セグメントから構成される。各代替セグメントサイズは、データセグメントに含まれる不良ブロック数及び発生が予測される不良ブロック数に最適化された大きさになるため、各代替セグメントごとにサイズは異なる。この領域は、全データセグメントに共通で使用する。管理テーブル領域６１３は、前述の不良管理テーブル１１４及びウェアレベリング管理テーブル３０２を保持する領域である。
【００３９】
図７は管理テーブルの構成例を示している。
【００４０】
管理テーブル７０１は、不良管理テーブル７０１とウェアレベリング管理テーブル７０６から構成される。不良管理テーブル７０１は、図１で示した不良管理情報を格納する。セグメントスワップ情報７０２は、セグメント内の全てのブロックが不良化した場合に、其のセグメント自体を別のセグメントで代替する場合の情報を格納するために使用される。これは、下記情報から構成される。不良セグメントアドレス709：不良化したセグメントの番号を記録する。代替先セグメントアドレス710：このセグメントを代替するセグメントの番号を記録する。
【００４１】
代替セグメントオフセット７１１と代替セグメント情報７１５は、代替セグメントの情報を管理する。代替セグメントのサイズは対応するセグメントの不良ブロック数に応じて代替セグメントごとに可変長になるため、管理データ自体も可変長になる。したがって、代替セグメントオフセット情報７１１で代替セグメント情報７１５上のセグメント毎の不良管理データの先頭位置を示し、エントリ数７１４でセグメント内に含まれる不良代替用ブロック数を示す。このエントリ数７１４は、前述のセグメント毎の不良ブロック数計算手段を用いて計算された値を使用する。不良管理データ自体は、代替セグメント情報７１５内に置かれ、各セグメントに対応するデータは、先頭に管理アドレス空間上のこのセグメントに対応する代替セグメントの先頭アドレス７１６、その後には、代替セグメントに含まれるブロックの属性がエントリ７１７として記録される。例えば、代替セグメントの先頭ブロックの情報はエントリ０に記録される。エントリの内容としては、例えば、代替セグメントの先頭からのオフセット値、このブロック自体が正常か不良かの判定フラグなどが考えられる。
【００４２】
ウェアレベリング管理情報７１８は、ウェアレベリング管理テーブルに保存される。この情報は、全データセグメントのオフセットごとの前述のセグメントシフト数を記録する。
【００４３】
以上で述べた構成を用いた不揮発性メモリ４００の基本動作の一例を説明する。
【００４４】
図８は、不揮発性メモリ４００起動時の動作例を示すフローチャートである。
【００４５】
電源が挿入されると各回路が初期化される(ステップ８０１)。初期化が完了するとＩ/F制御部４２０が初期化コマンドを管理回路４１０内のプログラマブルシーケンサ５００に発行する（ステップ８０２）。プログラマブルシーケンサ５００は、管理部４１０内の設定情報を初期化し、初期管理テーブル読み込み位置を設定する(ステップ８０３)。初期化処理が終了すると、プログラマブルシーケンサ５００は、管理テーブル読込コマンドをメモリセル部４０１に発行する(ステップ８０５)。メモリセル部４０２はフラッシュメモリセル４０１よりデータ読み出しを行う(ステップ８０６)。その後、メモリセル部４０１と管理部４１０のプログラマブルシーケンサ５００は管理テーブル情報を管理部４１０内のWorkRAM５０２へ転送する(ステップ８０７)。プログラマブルシーケンサ５００は、管理テーブル情報を検査し(ステップ８０８)、このテーブルが使用可能なら処理を終了する。もし、管理テーブル情報が不良なら、次のアクセスアドレスを設定して、管理テーブル読込以下の手順を繰り返す(ステップ８０４)。
【００４６】
図９は、不揮発性メモリ４００からのデータリード時の動作例を示すフローチャートである。ホストシステム４４０がリードコマンドを不揮発性メモリ４００へ発行すると、Ｉ/F制御部４２０がコマンドを受ける（ステップ９００）。同様にホストシステム４４０がリードアドレスＳＡを不揮発性メモリ４００へ発行する(ステップ９０１)。Ｉ/F制御部４２０はリードアドレスＳＡを受け取ると、リードコマンドとリードアドレスＳＡを管理部４１０のプログラマブルシーケンサ４００へ発行する(ステップ９０２、ステップ９０３)。リードコマンドを受け取った管理部５００はリードアドレスSAからセグメント番号とオフセット値を抽出した後、ウエアレベリング処理を行いアクセス先アドレスを計算する(ステップ９０４)。続いて、管理テーブル７００から対応するセグメント情報を選択する(ステップ９０５)。この後、代替セグメント情報７１５と先に計算したオフセット値を比較し、不良ブロック検索を行う(ステップ９０６)。比較の結果、SAが不良ブロックを示していれば、対応する代替アドレスをSA'にセットする(ステップ９０７)。もし正常ブロックを示していれば、SAをSA'に代入する(ステップ９０８)。管理部４１０は、リードコマンドをメモリセル部１１０に発行し(ステップ９０９)、続いてSA'をメモリセル部４０１へ発行する(ステップ９１０)。メモリセル部４０１はSA'をアクセスアドレスとしてフラッシュメモリセル４０１からデータ読出を行う（ステップ９１１）。データリードが完了すると、メモリセル部４０１は、データリード完了をＩ/F制御部４２０へ通知する(ステップ９１２)。この方法としては、例えばメモリセル部４０１がレディビジー信号を出力し、処理中はビジーを通知し、処理が終了すればレディーを通知する方法が考えられる。続いて、Ｉ/F制御部４２０はメモリセル部１１０からデータリードを行い（ステップ９１３）、そのままホストシステム４４０へデータ転送を行う(ステップ９１４)。
【００４７】
ホストシステム４４０と不揮発性メモリ４０１のアクセス調停について、もし不揮発性メモリ４０１へデータリードコマンドを発行してから、データ転送を開始するまでの間が一定時間なら、ホストシステム４４０はその待ち時間をカウンタなどでカウントすることが可能である。もし可変なら、レディビジー信号を不揮発性メモリ４０が出力しホストシステム４４０がその信号をモニタリングする方法等が考えられる。
【００４８】
図１０は、不揮発性メモリ４００へのデータライト時の動作例を示すフローチャートである。
【００４９】
ホストシステム４４０がライトコマンドを不揮発性メモリ４００へ発行すると、Ｉ/F制御部４２０がコマンドを受ける（ステップ１０００）。同様にホストシステム４０６がライトアドレスＳＡを不揮発性メモリ４００へ発行する(ステップ１００１)。続いてホストシステム４４０はライトデータを不揮発性メモリ４００へ転送する(ステップ１００２)。このデータはＩ/F制御部４２０を介してメモリセル部４０１へ送信されメモリセル部４０１内のバッファへ保存される(ステップ１００３)。ホストシステム４４０からのデータ転送が終了すると、Ｉ/F制御部４２０はライトコマンドとライトアドレスＳＡを管理部４１０へ発行する(ステップ１００４、ステップ１００５)。
ライトコマンドを受け取った管理部４１０は、ライトアドレスSAからセグメント番号とオフセット値を計算した後、管理テーブル７００から対応するセグメント情報を選択する(ステップ１００６)。この後、セグメント情報と内部アドレスのオフセット値を比較し不良ブロック検索を行う (ステップ１００７)。比較の結果、SAが不良ブロックを示していれば、対応する代替アドレスをSA'にセットする(ステップ１０１０)。もし正常ブロックを示していれば、SAをSA'とする(ステップ１００９)。管理部４１０は、SA'をメモリセル部１１０へ発行する(ステップ１０１１)。続いて管理部４１０は、ライトコマンドをメモリセル部４０１に発行する(ステップ１０１２)。ライトコマンドを受け取ったメモリセル部４０１はSA'をライトアドレスとして、フラッシュメモリセル４０１へ、バッファに保持されているホストシステム４４０から転送されたライトデータの書き込みを行う（ステップ１０１３）。もし、ライトエラーが発生すると、メモリセル部401は管理部４１０へエラー報告を行い(ステップ1015)、管理部４１０は、このライトアドレスが示すブロックSA'を不良ブロックとして管理テーブルに登録する(ステップ１０１４)。そして、管理テーブルを管理領域に保存し(ステップ１０１６)、次に書き込むべきアドレスを計算してデータライト処理を再実行する。このとき、通常、書き込むべき次のアドレスは、ライトエラーが発生したアドレスの次を使用するが、何らかの予測手段を用いて算出を行ってもかまわない。
【００５０】
メモリセル部４０１がデータライト実行後(ステップ１０１７)。正常終了した場合は、Ｉ/F制御部４２０を介してホストシステム４４０へライト完了を通知する(ステップ１０１７、ステップ１０１８)。ホストシステム４４０への通知方法としては、例えば、ステータスを送信する方法等がある。またライトコマンドを不揮発性メモリ４００へ発行してから、ライト完了の通知が戻ってくるまでの間のホストシステム４４０と不揮発性メモリ４００との間での待ち制御方法として、前述同様、レディビジー信号を不揮発性メモリ４００が出力し、ホストシステム４４０がその信号をモニタリングする方法が考えられる。
【００５１】
なお、本発明で示した不揮発性メモリ４００は一例であり、不良を含む揮発性メモリの代替処理方式としても本方式を適用することが可能である。この場合は、管理情報のみ別途外部から起動時に管理部４１０へ読み込むか、管理情報用の不揮発性メモリを搭載することで対応することが可能になる。また、不揮発性メモリ４００として半導体メモリだけでなく、例えば磁気ディスクなどにおいても、本方式を適用することが可能である。また、本発明で示した構成は、揮発性或いは不揮発性メモリと、それを制御するコントローラを一つのパッケージにした製品にも適用可能である。
【００５２】
【発明の効果】
本発明によれば、メモリを複数領域に分けて領域ごとの特性を管理するため、大容量で不良領域を含むメモリの不良管理を小容量の管理情報で効率よく管理することが可能になる。
【００５３】
また、アクセス時に行うアクセスアドレスと、不良アドレスの検索比較処理の時間を、短縮することが可能になる。
【００５４】
また、局所集中的な不良が発生した場合も、その不良を含む領域以外の領域に対するアクセスを行う場合、アクセスアドレスの不良、正常判定に必要な時間を削減できる。
さらに、書込み回数をブロックごとに管理し、局所集中的な消去書き込みを分散させる機能を少量の管理データで実現することが可能となる。
【図面の簡単な説明】
【図１】本発明の概念説明図である。
【図２】本発明の処理の流れを示すフローチャート図である。
【図３】本発明の概念説明図である。
【図４】本発明を適用した不揮発性メモリ構成例を示す図である。
【図５】本発明を適用した不揮発性メモリ構成例を示す図である。
【図６】本発明を適用した不揮発性メモリのメモリマップの一例を示す図である。
【図７】本発明を適用した不揮発性メモリの管理テーブルの構成例を示す図である。
【図８】本発明を適用した不揮発性メモリの初期起動時の動作例を示す図である。
【図９】本発明を適用した不揮発性メモリのデータリード時の動作例を示す図である。
【図１０】本発明を適用した不揮発性メモリのデータライト時の動作例を示す図である。
【符号の説明】
１００…フラッシュメモリ、１０１…オフセット、１０２…メモリ物理アドレス、１０３…ブロック、１０４…ブロックの状態、１０５…データセグメント、１０６…代替セグメント、１０７…アドレス変換処理、１０８…通常領域、１０９…代替領域、１１０…良不良フラグ、１１１…セグメントＮ管理情報、１１２…代替元論理アドレス、１１３…フラッシュメモリセル、１１４…不良管理テーブル、１１７…登録エントリ、１２０…ホストシステム、１２１…ホスト論理アドレス、１２２…ブロックの状態、１２３…ホスト空間、３００…フラッシュメモリ論理空間、３０１…書換回数、３０２…ＳＲウェアレベリング管理テーブル、３０３…オフセット値、３０４…セグメントシフト数、４００…不揮発性メモリ、４０１…メモリセル部、４０２…フラッシュメモリセル、４０３…制御部、４０４…切替部、４０５…バッファ、４０６…SRAM I/F-3、４０７…AND I/F、４０８…SRAM I/F-2、４１０…管理部、４２０…I/F制御部、４３０…I/F制御部、431…AND I/F-1、４３２…AMD I/F-2、433…AND I/F-3、４３４…SRAM I/F、４３４…I/F切替信号、４４０…ホストシステム、４４１…ホストI/F、５００…プログラマブルシーケンサ、５０１…シーケンスＲＯＭ、５０２…ＷｏｒｋＲＡＭ、５０３…制御レジスタ群、５０５…Ｉ／Ｆレジスタ、５０６…ＥＣＣ、７００…管理テーブル構成例
【図１】
0003928500.tif 000002
【図２】
0003928500.tif 000003
【図３】
0003928500.tif 000004
【図４】
0003928500.tif 000005
【図５】
0003928500.tif 000006
【図６】
0003928500.tif 000007
【図７】
0003928500.tif 000008
【図８】
0003928500.tif 000009
【図９】
0003928500.tif 000010
【図１０】
0003928500.tif 000011