(57)【要約】【課題】不揮発性メモリシステムにおける経時的に発生する書込み不良に対する救済効率を向上させる。【解決手段】複数の不揮発性記憶装置（ＦＬＳ１〜ＦＬＳ１６）と制御装置（ＣＴＲ）とを有する。制御装置は、動作対象の不揮発性記憶装置に対する書込みエラーを検出したとき、書込みエラーに係る記憶領域を複数の不揮発性記憶装置の内の他の不揮発性記憶装置の記憶領域に代替させたことを示すチップ間代替情報を当該エラーに係る記憶領域の不揮発性記憶装置に設定することが可能であり、動作対象の不揮発性記憶装置からチップ間代替情報を得たとき当該チップ間代替情報が示す他の不揮発性記憶装置を動作対象に変更可能なものである。更に、チップ間代替は、複数の不揮発性記憶装置全てに対して可能である。【選択図】図１
2011048852.tif 000002
【特許請求の範囲】
【請求項１】
読み出し、消去及び書込み可能な複数の不揮発性記憶装置と、外部からの要求に応答して前記不揮発性記憶装置の動作を制御する制御装置とを有し、
前記制御装置は、前記複数の不揮発性記憶装置の内の動作対象の不揮発性記憶装置に対する書込みエラーを検出したとき、書込みエラーに係る記憶領域を前記複数の不揮発性記憶装置の内の他の不揮発性記憶装置の記憶領域に代替させたことを示すチップ間代替情報を当該エラーに係る記憶領域の不揮発性記憶装置に設定することが可能であり、また、動作対象の不揮発性記憶装置からチップ間代替情報を得たとき当該チップ間代替情報が示す前記他の不揮発性記憶装置を動作対象に変更可能であり、
更にチップ間代替は、前記複数の不揮発性記憶装置全てに対して可能であることを特徴とする不揮発性記憶システム。
【請求項２】
チップ間代替は、代替先として採用可能な記憶領域が所定数以下になった不揮発性記憶装置で生じた書込みエラーに対して可能にされるものであることを特徴とする請求項１記載の不揮発性記憶システム。
【請求項３】
前記制御装置は、代替先として採用可能な記憶領域が所定数よりも多く残っている不揮発性記憶装置で生じた書込みエラーに対しては、書込みエラーに係る記憶領域を同じ不揮発性記憶装置の別の記憶領域に代替させたことを示すチップ内代替情報を当該エラーに係る記憶領域の不揮発性記憶装置に設定することが可能であり、また、動作対象の不揮発性記憶装置からチップ内代替情報を得たとき当該チップ内代替情報が示す記憶領域を動作対象に変更可能であることを特徴とする請求項２記載の不揮発性記憶システム。
【請求項４】
前記制御装置は、チップ間代替による代替先の不揮発性記憶装置として、代替先として採用可能な記憶領域が所定数よりも多く残っている不揮発性記憶装置を候補として採用可能であることを特徴とする請求項３記載の不揮発性記憶システム。
【請求項５】
前記制御装置は、採用し得る前記候補が存在しないとき、代替先として採用可能な記憶領域が所定数以下になっている不揮発性記憶装置を別の候補として採用可能であることを特徴とする請求項４記載の不揮発性記憶システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の不揮発性記憶装置を有する不揮発性記憶システムにおいて経時的に発生する不揮発性記憶装置における記憶領域の不良を救済する技術に関し、例えばフラッシュメモリを搭載したＡＴＡ（ＡＴアタッチメント）メモリカードなどのメモリカードに適用して有効な技術に関する。
【背景技術】
【０００２】
フラッシュメモリなど電気的に書換え可能な不揮発性記憶装置はメモリセルのフローティングゲートに注入された電子若しくは正孔の量に応じた閾値電圧によって情報記憶を行う。そのようなメモリセルの閾値電圧特性は書換え回数の増加等にしたがって経時的に劣化する。特性劣化が進むと、データ書換え時におけるベリファイ動作で書込みエラーとなる。一部の記憶領域に書込みエラーを生じたとき、これを別に記憶領域に代替する救済技術が従来より提供されている。
【０００３】
例えば、ファイルメモリとしてのＡＴＡメモリカードでは、不揮発性記憶装置の記憶領域をデータブロック領域と救済用のデータブロック代替領域等に機能分割し、各機能領域を、セクタ単位のデータブロックとその管理領域の集合として定義する。各データブロックにはメモリ上の固有の物理アドレスが割り当てられる。データブロック領域で書込みエラーを生ずると、その単位領域に不良を示す情報フラグがセットされ、前記データブロック代替領域でそれを代替するのに用いるデータブロック領域の物理アドレスが代替アドレスとしてセットされる。書き込みエラーに係る書込みデータはその代替アドレスのデータブロックに書き込まれる。その後、前記不良のデータブロックアドレスを指示するアクセスが行われるときは、その管理領域の不良フラグにて当該データブロックの不良を認識し、代替アドレスで指定されるデータブロック代替領域のデータブロックがアクセスされる。
【０００４】
しかしながら、不良データブロックの代替が不揮発性記憶装置内に限定されると、不良発生率に偏りがあれば、どれか一つでもデータブロック代替領域による救済能力を超える書込み不良が発生すれば、最早メモリカード全体を不良としなければならないという問題点のあることが本発明者によって明らかにされた。
【０００５】
この点に関し、従来はバックアップ用に予備の不揮発性メモリを持つようにする技術が特開平３−２５７９８号公報、特開平３−２５７９８号公報で提供され、また、不良の不揮発性メモリを交換するとき必要なデータの処理方式が特開平９−２００６３６号公報に開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平３−２５７９８号公報
【特許文献２】特開平３−２５７９８号公報
【特許文献３】特開平９−２００６３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来の技術では、不良に至った不揮発性記憶装置を交換したり、冗長用（予備）の不揮発性メモリを用いることを前提としており、不良に至った不揮発性記憶装置を交換せずに、且つ、各不揮発性記憶装置の記憶領域を無駄なく利用するには至っていない。
【０００８】
本発明の目的は、不良に至った不揮発性記憶装置を交換したり、予備の不揮発性メモリを用いることなく、経時的に発生する書込み不良に対する救済効率を向上させることができる不揮発性記憶システムを提供することにある。
【０００９】
本発明の別の目的は、一部の不揮発性記憶装置内で不良データブロックの代替が不可能になっても、不良に至った不揮発性記憶装置を交換したり、予備の不揮発性メモリを用いることなく、全体の不良を逃れることができる不揮発性記憶システムを提供することにある。
【００１０】
本発明の更に別の目的は、不良データブロックの代替に、各不揮発性記憶装置の記憶領域を無駄なく利用することができる不揮発性記憶システムを提供することにある。
【００１１】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１２】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１３】
〔１〕《チップ間代替》本発明に係る不揮発性記憶システムは、読み出し、消去及び書込み可能な複数の不揮発性記憶装置と、外部からの要求に応答して前記不揮発性記憶装置の動作を制御する制御装置とを有する。前記制御装置は、前記複数の不揮発性記憶装置の内の動作対象の不揮発性記憶装置に対する書込みエラーを検出したとき、書込みエラーに係る記憶領域を前記複数の不揮発性記憶装置の内の他の不揮発性記憶装置の記憶領域に代替させたことを示すチップ間代替情報を当該エラーに係る記憶領域の不揮発性記憶装置に設定することが可能であり、また、動作対象の不揮発性記憶装置からチップ間代替情報を得たとき当該チップ間代替情報が示す他の不揮発性記憶装置を動作対象に変更可能なものである。本明細書において書込みエラーとは、不揮発性メモリセルに対する書込み電圧の印可（プログラム）とプログラムベリファイを行った結果、所要の閾値電圧を得ることができない状態、或は、書込み対象が既に代替されているとき上記プログラム及びプログラムベリファイを開始する前に代替先アドレスを取得できるかの確認処理において代替先の取得が不可能である場合などとされる。
【００１４】
上記より、一つの不揮発性記憶装置で発生した書込みエラーの救済に、別の不揮発性記憶装置の記憶領域を用いるチップ間代替が可能になる。これにより、一部の不揮発性記憶装置内で不良データブロックの代替が不可能になっても、不良に至った不揮発性記憶装置を交換したり、予備の不揮発性メモリを用いることなく、全体の不良を逃れることができる。
【００１５】
新たに代替可能な記憶領域の残りが所定数以下になった不揮発性記憶装置において書込みエラーが生じたとき、それに対してチップ間代替を許容するとよい。これにより、データブロックの無駄を極力排除するようにチップ間代替を行うことができる。すなわち、チップ内代替が全く不可能に成るまで代替を行ってしまった不揮発性記憶装置が顕在化する前にチップ間代替を開始させるから、新たに代替可能な領域の残りに大きな偏りが生じ難くなり、チップ間代替やチップ内代替のための処理サイクル数を最小限に抑えることが可能になる。不揮発性記憶装置間で新たに代替可能な領域の残りに大きな偏りを生ずると、代替先として採用し得る不揮発性記憶装置の数が少なくなり、チップ間代替先として採用し得る不揮発性記憶装置を探すための検索リトライ回数が増えてしまうからである。
【００１６】
データブロックの無駄を極力排除するようにチップ間代替を行うには、代替先として採用可能な記憶領域が所定数以下になった不揮発性記憶装置で生じた書込みエラーに対してチップ間代替を許容するようにすればよい。
【００１７】
代替許可状態の不揮発性記憶装置で生じた書込みエラーに対してはチップ内代替で対処すればよい。例えば、前記制御装置は、代替可能な記憶領域が所定数よりも多く残っている不揮発性記憶装置で書込みエラーを生じたときは、書込みエラーに係る記憶領域を同じ不揮発性記憶装置の別の記憶領域に代替させたことを示すチップ内代替情報を当該エラーに係る記憶領域の不揮発性記憶装置に設定し、また、動作対象の不揮発性記憶装置からチップ内代替情報を得たとき当該チップ内代替情報が示す記憶領域を動作対象に変更可能とする。
【００１８】
これにより、不良に至った不揮発性記憶装置を交換したり、予備の不揮発性メモリを用いることなく、経時的に発生する書込み不良に対する救済効率を向上させることができ不良データブロックの代替に、各不揮発性記憶装置の記憶領域を無駄なく利用することができる。
【００１９】
尚、前記チップ間代替やチップ内代替で用いられる記憶領域は、デバイスプロセスにおいて欠陥救済に用いられる冗長記憶領域とは異なることは言うまでもない。
【００２０】
チップ間代替による代替先の不揮発性記憶装置としては、代替先として採用可能な記憶領域が所定数よりも多く残っている不揮発性記憶装置を候補として採用可能にすればよい。採用し得る前記候補が存在しないときは、代替先として採用可能な記憶領域が所定数以下になっている不揮発性記憶装置を別の候補として採用するとよい。書込みエラーに係る記憶領域を代替する領域に当該書込みエラーに係るデータを書き込むとき、その動作が他のデータを書込む動作と競合しないようにすることが望ましく、そのような競合を排除するのに当該書き込みエラーを生じた不揮発性記憶装置への書き込みが最善である場合に、それを可能にすることができる。
【００２１】
〔２〕《インタリーブ書込み》上記不揮発性記憶システムにおいて、前記制御装置は、外部からのデータ書込み要求に応答して、書込みデータを所定データ量単位で書込み動作タイミングをずらしながら順次異なる複数の不揮発性記憶装置に書込むインタリーブ書込みを制御可能である場合、インタリーブ書込み動作中に書込みエラーを検出したとき、書込みエラーに係る記憶領域を代替する他の不揮発性記憶装置として、前記書き込みエラーを生じた不揮発性記憶装置を含む一連のインタリーブ書き込み対象とされる不揮発性記憶装置を除外する。
【００２２】
これにより、代替領域に書込みエラーに係るデータを書き込むとき、分割された他のデータを書込むインタリーブ動作と競合するのを排除することができる。若しくはそのような競合排除を高い確率で容易に実現することができる。
【００２３】
インタリーブ書き込みに着目した更に詳しい別の観点によれば、前記制御装置は、インタリーブ書込み動作中に書込みエラーを検出したとき、書込みエラーに係る記憶領域を代替する他の不揮発性記憶装置として、インタリーブの順序に対して前後所定の複数個以上離れた不揮発性記憶装置の中から第１候補を選択するようにしてよい。
【００２４】
前記制御装置は、前記第１候補を選択不可能なとき、前記第１候補の選択範囲外のうち、インタリーブ順序に対して後方に位置する不揮発性記憶装置の中から代替先として採用可能なものを第２候補として選択してよい。
【００２５】
前記制御装置は、前記第２候補の選択が不可能なとき、書込みエラーを生じた不揮発性記憶装置を第３候補として記憶領域の代替を行う。
【００２６】
前記制御装置は、前記第３候補の選択が不可能なとき、前記第１候補の選択範囲外のうち、インタリーブの順序方向に対する前方の不揮発性記憶装置の中から代替先として採用可能なものを第４候補として選択する。
【００２７】
〔３〕《パラレル書き込み》インタリーブ書込みに代えてパラレル書込みを採用するとき、前記制御装置は、外部からのデータ書込み要求に応答して、書込みデータを所定データ量単位で異なる複数の不揮発性記憶装置に並行して書込むパラレル書込みを制御可能であり、パラレル書込み動作中に書込みエラーを検出したとき、書込みエラーに係る記憶領域を代替する他の不揮発性記憶装置として、前記書込みエラーを生じた不揮発性記憶装置を含むパラレル書込み対象とされる不揮発性記憶装置を除く範囲から第１候補を選択する。
【００２８】
〔４〕本発明に係る不揮発性記憶装置を更に別の観点より説明する。不揮発性記憶システムは、制御装置と、複数の不揮発性記憶装置とを備える。前記制御装置は、外部よりデータ及びアドレス情報を受信し、前記外部より受信したデータの前記複数の不揮発性記憶装置への格納、前記不揮発性記憶装置に格納されたデータの読み出し、又は前記不揮発性記憶装置に格納されたデータの消去の各動作を制御し、それぞれの前記不揮発性記憶装置は、前記制御装置からの動作指示に応じて、前記制御装置から供給されたデータについてデータを格納する書込動作、格納されたデータを読み出して前記制御装置に供給する読み出し動作、又は格納したデータを消去する消去動作の各動作を行う。そして、前記制御装置は、前記外部より受信したデータを所定のサイズに分割し、分割された分割データの内の第１データを書込動作指示と共に第１の不揮発性記憶装置に供給し、前記第１の不揮発性記憶装置において書込動作継続中に第２データを書込指示と共に第２の不揮発性記憶装置に供給するインタリーブ動作を行い、分割された全てのデータを前記複数の不揮発性記憶装置に順次供給する。前記複数の不揮発性記憶装置のうち１の不揮発性記憶装置において所定のデータの書込動作において書込エラーが発生した場合、前記制御装置が前記書込エラーを検出した際に、書込動作を行っている不揮発性記憶装置、及び前記書込エラーの発生以降に分割データの書込み対象とされる不揮発性記憶装置を除く他の不揮発性記憶装置に対して、前記制御装置は書込動作指示と共に前記所定のデータを供給するデータ格納制御を行う。
【００２９】
前記不揮発性記憶装置はそれぞれ、複数のメモリセルと、複数のワード線と、複数のビット線を有する。前記複数のメモリセルはそれぞれ、対応するワード線とビット線の交点に配置される。それぞれのワード線に接続されるメモリセルは、例えば第１のグループと第２のグループに分類され、前記第１のグループのメモリセルは前記制御装置から供給されたデータを格納するために用いられ、前記第２のグループのメモリセルは所定の情報を格納するために用いられる。前記所定の情報は、前記書込動作において当該ワード線に接続されるメモリセルに前記所定のデータを格納する際に書込エラーが発生したか否かの情報と、前記書込エラーが発生した場合、前記所定のデータを格納した不揮発性記憶装置を示す情報を含む。
【００３０】
前記分割されたデータの所定のサイズは、例えば前記第１のグループのメモリセルに格納可能なデータのサイズである。前記書込動作、読み出し動作、消去動作はそれぞれ、例えば前記ワード線毎に行われる。
【００３１】
前記メモリセルはそれぞれ、例えば格納すべきデータに対応するしきい値電圧としてデータの格納を行い、前記書込動作は、それぞれのメモリセルのしきい値電圧を格納すべきデータに対応するしきい値電圧に変化させる第１動作と、それぞれのメモリセルのしきい値電圧が対応するしきい値電圧に変化したか否かを確認する第２動作とを含み、前記第１動作と前記第２動作とを所定の回数繰り返す。このとき、前記書込エラーは、所定の回数前記第１動作と前記第２動作を繰り返した後に、少なくとも１つのメモリセルのしきい値電圧が対応するしきい値電圧になっていないことを検出することである。
【００３２】
前記不揮発性記憶装置は、前記書込動作において前記書込エラーを検出した場合、前記制御装置に書込エラーの発生を通知し、前記制御装置は、前記通知により前記書込エラーを検出した際、前記他の不揮発性記憶装置に対して書込動作指示を行う前に、書込エラーが発生した当該不揮発性記憶装置に対して、書込エラーが発生した際に書込動作対象であったワード線とは異なるワード線を指定して書込動作を行う。
【００３３】
前記不揮発性記憶装置は、デバイスプロセス段階で冗長手段による救済を受けている場合、前記制御装置に書込エラーの発生を通知する前に、冗長手段を介して、前記書込エラーが発生した際に書込動作対象であったワード線とは異なるワード線を指定して書込動作を行う。
【発明の効果】
【００３４】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００３５】
すなわち、不良に至った不揮発性記憶装置を交換したり、予備の不揮発性メモリを用いることなく、経時的に発生する書込み不良に対する救済効率を向上させることができる不揮発性記憶システムを実現することができる。
【００３６】
一部の不揮発性記憶装置内で不良データブロックの代替が不可能になっても、不良に至った不揮発性記憶装置を交換したり、予備の不揮発性メモリを用いることなく、全体の不良を逃れることができる不揮発性記憶システムを提供することができる。
【００３７】
不揮発性記憶システムにおいて、不良データブロックの代替に、各不揮発性記憶装置の記憶領域を無駄なく利用することができる。
【図面の簡単な説明】
【００３８】
【図１】本発明に係る不揮発性記憶システムの一例であるフラッシュメモリ内蔵ＡＴＡメモリカードのブロック図である。
【図２】フラッシュメモリの一例を示すブロック図である。
【図３】カードコントローラの一例を示すブロック図である。
【図４】フラッシュメモリにおけるメモリマットのアドレスマップを例示する説明図である。
【図５】不良登録テーブル領域の不良登録データフォーマットを例示する説明図である。
【図６】管理情報の情報フォーマットを例示する説明図である。
【図７】インタリーブ書込み方式の概念を示す説明図である。
【図８】インタリーブ書込みによる書込みデータのセクタ単位の論理アドレスが複数のフラッシュメモリに分散される状態を例示する説明図である。
【図９】インタリーブ書き込みを採用する場合におけるチップ間代替先フラッシュメモリの選択手法の一例としてチップ間代替受入れ可能チップがある場合の代替手法を示す説明図である。
【図１０】インタリーブ書き込みを採用する場合におけるチップ間代替先フラッシュメモリの選択手法の別の例としてチップ間代替受入れ可能チップがない場合の代替手法を示す説明図である。
【図１１】インタリーブ書き込みを採用する場合におけるチップ間代替先フラッシュメモリの選択手法の更に別の例として図１０の第２候補を選択不可能な場合の代替手法を示す説明図である。
【図１２】インタリーブ書き込みを採用する場合におけるチップ間代替先フラッシュメモリの選択手法の更に別の例として図１１の第３候補を選択不可能な場合の代替手法を示す説明図である。
【図１３】図１３には図９〜図１２で説明した選択手法を実現するためのカードコントローラによるチップ間代替処理手順を例示するフローチャートである。
【図１４】代替先算出の処理を例示するフローチャートである。
【図１５】代替処理を例示するフローチャートである。
【図１６】インタリーブ書込みサポート時の代替制御機能によって実現される代替状況の具体例としてエラー発生が書き込み開始後の早い段階で明らかになった場合を図９による処理結果に対応して示すタイミングチャートである。
【図１７】インタリーブ書込みサポート時の代替制御機能によって実現される代替状況の具体例としてエラー発生が書き込み開始後の早い段階で明らかになった場合を図１０による処理結果に対応して示すタイミングチャートである。
【図１８】インタリーブ書込みサポート時の代替制御機能によって実現される代替状況の具体例としてエラー発生が書き込み開始後の早い段階で明らかになった場合を図１１による処理結果に対応して示すタイミングチャートである。
【図１９】インタリーブ書込みサポート時の代替制御機能によって実現される代替状況の具体例としてエラー発生が書き込み開始後の早い段階で明らかになった場合を図１２による処理結果に対応して示すタイミングチャートである。
【図２０】インタリーブ書込みサポート時の代替制御機能によって実現される代替状況の具体例としてエラー発生が書き込み終了時点で明らかになった場合を示すタイミングチャートである。
【図２１】インタリーブ書込みサポート時の代替制御機能によって実現される代替状況の具体例としてエラー発生が書き込み終了時点で明らかになった場合を示す別のタイミングチャートである。
【図２２】インタリーブ書込みサポート時の代替制御機能によって実現される代替状況の具体例としてエラー発生が書き込み終了時点で明らかになった場合を示す更に別のタイミングチャートである。
【図２３】インタリーブ書込みサポート時の代替制御機能によって実現される代替状況の具体例として搭載チップ数が少ない場合を示すタイミングチャートである。
【図２４】パラレル書込みを採用するときのチップ間代替の様子を例示するタイミングチャートである。
【発明を実施するための形態】
【００３９】
《ＡＴＡメモリカード》図１には本発明に係る不揮発性記憶システムの一例であるフラッシュメモリ内蔵ＡＴＡメモリカード（単にＡＴＡメモリカードとも記す）のブロック構成が示される。同図に示されるメモリカード１は、図示を省略するカード基板に、読み出し、消去及び書込み可能な複数の不揮発性記憶装置の一例であるフラッシュメモリＦＬＳ１〜ＦＬＳ１６（任意の１個をフラッシュメモリＦＬＳｉと記す）と、外部からの要求に応答して前記複数のフラッシュメモリの動作を制御する制御装置の一例としてのカードコントローラＣＴＲと、が実装されて構成される。フラッシュメモリＦＬＳ１〜ＦＬＳ１６とカードコントローラＣＴＲは、特に制限されないが、バス２に共通接続され、フラッシュメモリＦＬＳ１〜ＦＬＳ１６は夫々に固有のチップイネーブル信号ＣＥ１〜ＣＥ１６（任意の一つをチップイネーブル信号ＣＥｉと記す）によって動作選択されるようになっている。前記バス（Ｉ／Ｏバス）２は、アドレス、データ、アクセスストローブ信号及びコマンドのやり取りなどに利用される。
【００４０】
図２フラッシュメモリＦＬＳｉの一例が示される。同図においてメモリアレイ３は、メモリマット、データラッチ回路及びセンスラッチ回路を有する。このメモリマットは電気的に消去及び書き込み可能な不揮発性のメモリセルトランジスタを多数有する。メモリセルトランジスタ（フラッシュメモリセルとも記す）は、特に図示はしないが、半導体基板若しくはウェル内に形成されたソース及びドレイン、前記ソースとドレインとの間のチャンネル領域にトンネル酸化膜を介して形成されたフローティングゲート、そしてフローティングゲートに層間絶縁膜を介して重ねられたコントロールゲートによって構成される。コントロールゲートはワード線６に、ドレインはビット線５に、ソースは図示を省略するソース線に接続される。前記メモリセルトランジスタは、前記フローティングゲートに電子が注入されると閾値電圧が上昇し、また、前記フローティングゲートから電子を引き抜くと閾値電圧が低下する。前記メモリセルトランジスタは、データ読み出しのためのワード線電圧（コントロールゲート印加電圧）に対する閾値電圧の高低に応じた情報を記憶することになる。特に制限されないが、本明細書においてメモリセルトランジスタの閾値電圧が低い状態を消去状態、高い状態を書き込み状態と称する。
【００４１】
前記バス２に接続されるフラッシュメモリ１の外部入出力端子Ｉ／Ｏ０〜Ｉ／Ｏ７は、アドレス入力端子、データ入力端子、データ出力端子、コマンド入力端子に兼用される。外部入出力端子Ｉ／Ｏ０〜Ｉ／Ｏ７から入力されたＸアドレス信号はマルチプレクサ７を介してＸアドレスバッファ８に供給される。Ｘアドレスデコーダ９はＸアドレスバッファ８から出力される内部相補アドレス信号をデコードしてワード線を駆動する。
【００４２】
前記ビット線５の一端側には、センスラッチ回路が設けられ、他端にはデータラッチ回路が設けられている。ビット線５はＹアドレスデコーダ１１から出力される選択信号に基づいてＹゲートアレイ回路１３で選択される。外部入出力端子Ｉ／Ｏ０〜Ｉ／Ｏ７から入力されたＹアドレス信号はYアドレスカウンタ１２にプリセットされ、プリセット値を起点に順次インクリメントされたアドレス信号が前記Yアドレスデコーダ１１に与えられる。
【００４３】
Ｙゲートアレイ回路１３で選択されたビット線は、データ出力動作時には出力バッファ１５の入力端子に導通され、データ入力動作時には入力バッファ１７を介してデータ制御回路１６の出力端子に導通される。出力バッファ１５、入力バッファ１７と前記入出力端子Ｉ／Ｏ０〜Ｉ／Ｏ７との接続は前記マルチプレクサ７で制御される。入出力端子Ｉ／Ｏ０〜Ｉ／Ｏ７から供給されるコマンドはマルチプレクサ７及び入力バッファ１７を介してモード制御回路１８に与えられる。
【００４４】
制御信号バッファ回路１９には、アクセス制御信号としてチップイネーブル信号ＣＥｉ、出力イネーブル信号ＯＥｉ、書き込みイネーブル信号ＷＥｉ、シリアルクロック信号ＳＣ、リセット信号ＲＥＳｉ及びコマンドイネーブル信号ＣＤＥｉが供給される。モード制御回路１８は、それら信号の状態に応じて外部との信号インタフェース機能などを制御し、また、入力されたコマンドに従って内部動作を制御する。入出力端子Ｉ／Ｏ０〜Ｉ／Ｏ７に対するコマンド入力又はデータ入力の場合、前記信号ＣＤＥｉがアサートされ、コマンド入力であれば更に信号ＷＥｉがアサート、データ入力であればＷＥｉがネゲートされる。アドレス入力であれば、前記信号ＣＤＥｉがネゲートされ、信号ＷＥｉがアサートされる。これにより、モード制御回路１８は、外部入出力端子Ｉ／Ｏ０〜Ｉ／Ｏ７からマルチプレクスされて入力されるコマンド、データ及びアドレスを区別できる。モード制御回路１８は、消去や書込み動作中にレディー・ビジー信号Ｒ／Ｂｉをアサートしてその状態を外部に知らせることができる。
【００４５】
内部電源回路（内部電圧発生回路）２０は、書込み、消去、ベリファイ、読み出しなどのための各種内部電圧とされる動作電源２１を生成して、前記Ｘアドレスデコーダ９及びメモリセルアレイ３等に供給する。
【００４６】
前記モード制御回路１８は、入力コマンドに従ってフラッシュメモリＦＬＳｉを全体的に制御する。フラッシュメモリＦＬＳｉの動作は、基本的にコマンドによって決定される。フラッシュメモリ１のコマンドには、読み出し、消去、書込み等の各コマンドがある。
【００４７】
フラッシュメモリＦＬＳｉはその内部状態を示すためにステータスレジスタ２４を有し、その内容は、信号ＯＥｉをアサートすることによって入出力端子Ｉ／Ｏ０〜Ｉ／Ｏ７から読み出すことができる。
【００４８】
フラッシュメモリＦＬＳｉはデバイス製造段階で明らかになった不良メモリセルトランジスタを救済するための冗長手段として、例えば冗長プログラム回路８Ｒ、冗長Ｘアドレスデコード論理９Ｒ、及び冗長メモリアレイ３Ｒを有し、ワード線単位の救済が可能にされる。前記冗長プログラム回路８Ｒは救済されるべき不良Ｘアドレスがプログラムされ、プログラムされた不良Ｘアドレスに一致するＸアドレスの入力を検出すると、Ｘアドレスデコーダ９に検出信号を出力する。Ｘアドレスデコーダ９は、前記検出信号が活性化されると、正規のＸアドレスデコード論理を非活性化し、それに代えて冗長Ｘアドレスデコード論理９Ｒを活性化し、そのときの不良アドレスに救済に割当てられる冗長アドレスを冗長プログラム回路８Ｒから入力してデコードし、冗長メモリアレイ３Ｒで冗長ワード線を選択する。
【００４９】
図３には前記カードコントローラＣＴＲの一例が示される。カードコントローラＣＴＲはホスト装置に接続されるホストインタフェース（ＨＩＦ）３０、前記バス２を介してフラッシュメモリＦＬＳ１〜ＦＬＳ１６に接続されるメモリインタフェース（ＭＩＦ）３１を有し、その間に、制御論理回路３２が配置され、この制御論理回路３２に中央処理装置（ＣＰＵ）３３、リードオンリメモリ（ＲＯＭ）３４、及びランダムアクセスメモリ（ＲＡＭ）３５が接続されて構成される。前記ＣＰＵ３３はホスト装置から与えられるアクセス要求などに対し、ＲＯＭ３４に格納されたプログラムを実行してホスト装置側とのインタフェース制御及びフラッシュメモリ側とのインタフェースを制御を行う。ＲＡＭ３５はインタフェース制御に際してＣＰＵのワーク領域及び制御テーブル領域などに利用される。前記制御論理回路３２は、前記ＣＰＵ３３によって可能なソフトウェア処理の一部を負担するためのホストインタフェース機能、メモリインタフェース機能、エラー検出・訂正機能、及びデータ転送制御機能を実現するための専用ハードウェアである。
【００５０】
カードコントローラＣＴＲの代表的な機能として、ＡＴＡインタフェース仕様に準拠して、フラッシュメモリＦＬＳ１〜ＦＬＳ１６をファイルメモリとして動作させるアクセス制御機能と、フラッシュメモリＦＬＳｉへのデータ書き込みに関する不良、例えば一部の記憶領域に発生する不良に対する記憶領域の代替制御機能がある。アクセス制御機能はＩＤＥディスクインタフェース仕様と互換であって既に公知であるから、ここではその詳細な説明は省略する。以下、代替制御機能について詳述する。
【００５１】
《代替制御機能》図４にはフラッシュメモリＦＬＳｉにおけるメモリマットのアドレスマップが例示される。このアドレスマップは個々のフラッシュメモリＦＬＳｉにおけるローカルなアドレスマップであり、データ領域４０、代替領域４１、不良登録テーブル領域４２に大別される。各領域は、特に制限されないが、４セクタ分の２０４８（５１２×４）バイトにＥＣＣコードの３２バイトを有する単位ブロックＢＬＫに３２バイトの管理情報ＣＮＴが付加されたフォーマットの単位領域ＢＬＫ・ＣＮＴを有する。例えば、データ領域４０は１５６４９個の単位領域を有し、代替領域４１は６７３個の単位領域ＢＬＫ・ＣＮＴを有し、不良登録テーブル領域４２は６２個の単位領域ＢＬＫ・ＣＮＴを有する。尚、各単位領域ＢＬＫ・ＣＮＴに対してはフラッシュメモリＦＬＳｉのデバイスプロセス段階で発生する欠陥救済のための前記冗長マット３Ｒの一部とされる冗長救済用の記憶領域が設けてあり、冗長救済が行なわれた場合には救済されるべきアドレスにマッピングされ、救済に用いなければアドレスマッピングは行なわれない。
【００５２】
前記データ領域４０は例えばユーザに開放されるデータ領域とされる。経時的にデータ領域４０等で書込みエラーを生じたとき、エラーを生じたデータ領域４０等の単位領域ＢＬＫ・ＣＮＴを代替するのに前記代替領域４１が用いられる。代替の単位は単位領域ＢＬＫ・ＣＮＴを最小単位とする。代替領域４１は同じフラッシュメモリ内のデータ領域４０等を代替するチップ内代替の他、別のフラッシュメモリのデータ領域４０等を代替するチップ間代替にも利用される。前記不良登録テーブル領域４２は、チップ内代替及びチップ間代替が行なわれたとき、代替先のフラッシュメモリと代替先の代替領域のアドレスとが登録される領域である。
【００５３】
図５には不良登録テーブル領域４２の不良登録データフォーマットが例示される。特に制限されないが、１個の単位領域ＢＬＫ・ＣＮＴに対する不良登録データは４バイトとされ、代替先のフラッシュメモリを特定するチップ番号領域５０と代替先の単位領域のアドレスを特定する代替先アドレス領域５１が設けられている。ＥＣＣコードは１１ビットの情報毎に配置されている。尚、代替先アドレスは、特に制限されないが、代替領域先頭アドレスからのオフセットアドレスとされる。
【００５４】
４バイト毎の不良登録データと単位領域ＢＬＫ・ＣＮＴとの対応は、特に制限されないが、一対一対応とされる。したがって、単位領域ＢＬＫ・ＣＮＴの物理アドレスに基づいてアドレス演算を行うことにより、対応する４バイト毎の不良登録データを得ることができる。そのようなアドレス演算はカードコントローラＣＴＲが行う。
【００５５】
図６には前記管理情報ＣＮＴの情報フォーマットが例示される。管理情報ＣＮＴは、代替フラグ６０、ブロックアドレス６１、識別コード６２、その他管理情報６４、及びＥＣＣコード６５を有する。代替フラグ６０は所定のコードにより、対応する単位領域ＢＬＫ・ＣＮＴが代替されていないことを示し、全ビット“１”の場合には対応する単位領域ＢＬＫ・ＣＮＴが代替領域４１で代替されていることを示す。ブロックアドレスは当該単位領域ＢＬＫ・ＣＮＴに割当てられたローカルなメモリアドレス（物理アドレス）を意味する。識別コードは、単位ブロックＢＬＫがデータか制御情報等の区別を示すコードである。その他管理情報として、例えば代替先の単位領域ＢＬＫ・ＣＮＴでは代替元（エラー発生元）単位領域の物理アドレス等を含む。
【００５６】
カードコントローラによる前記単位領域ＢＬＫ・ＣＮＴの代替制御について説明する。
【００５７】
カードコントローラＣＴＲは代替領域４１の特定アドレス、例えば物理アドレス“３Ｅ２Ｃ‘Ｈ”（記号‘Ｈは１６進数を意味する）をチップ間代替判定ブロックアドレスとして認識する。即ち、カードコントローラＣＴＲは、単位領域のアクセスに際して管理情報ＣＮＴを読み込み、読み込んだ管理情報ＣＮＴの物理アドレスが“３Ｅ２Ｃ‘Ｈ”よりも下位にあれば、換言すれば、代替領域４１に未だ代替可能な記憶領域が所定数よりも多く残っていれば、その単位領域ＢＬＫ・ＣＮＴに対して書込みエラーを生じたとき、チップ内代替を行うように制御する。代替制御では、書込みエラーを生じた前記単位領域ＢＬＫ・ＣＮＴにおける管理情報の代替フラグ６０を全ビット“１”とし、その単位領域ＢＬＫ・ＣＮＴに対応する４バイト毎の不良登録データとして、領域５０には代替先のチップ番号（この場合はチップ内代替であるから書込みエラーを生じたフラッシュメモリのチップ番号）が書込まれ、領域５１には代替先アドレスが書込まれる。このようにして領域５０，５１及びフラグ６０に書込まれた情報は、書込みエラーに係る単位領域ＢＬＫ・ＣＮＴを同じフラッシュメモリの別の単位領域ＢＬＫ・ＣＮＴに代替させたことを示すチップ内代替情報を成す。
【００５８】
カードコントローラＣＴＲは、前記読み込んだ管理情報ＣＮＴの物理アドレスが“３Ｅ２Ｃ‘Ｈ”よりも上位にあれば、換言すれば、代替領域４１で新たに代替可能な記憶領域が所定数以下になっていれば、その単位領域ＢＬＫ・ＣＮＴに対して書込みエラーを生じたとき、チップ間代替を行うように制御する。この代替制御では、書込みエラーを生じた前記単位領域ＢＬＫ・ＣＮＴにおける管理情報の代替フラグ６０を全ビット“１”とし、その単位領域ＢＬＫ・ＣＮＴに対応する４バイト毎の不良登録データとして、領域５０には代替先のチップ番号（この場合はチップ間代替であるから書込みエラーを生じたフラッシュメモリとは異なる別のフラッシュメモリのチップ番号）が書込まれ、領域５１には代替先アドレスが書込まれる。このようにして領域５０，５１及びフラグ６０に書込まれた情報は、書込みエラーに係る単位領域ＢＬＫ・ＣＮＴを異なるフラッシュメモリの単位領域ＢＬＫ・ＣＮＴに代替させたことを示すチップ間代替情報を成す。
【００５９】
前記カードコントローラＣＴＲは、アクセス動作対象のフラッシュメモリからアドレスで指定した単位領域ＢＬＫ・ＣＮＴの管理情報ＣＮＴを読み込み、読み込んだ管理情報ＣＮＴのフラグ６０から代替済（全ビット“１”）を認識すると、その単位領域ＢＬＫ・ＣＮＴに対応する４バイト毎の不良登録データを読み込み、その領域５０，５１で指定されるチップ番号のフラッシュメモリにおける代替先アドレスをアクセス対象に変更して、アクセス制御を行う。
【００６０】
前記チップ間代替やチップ内代替で用いられる代替領域は、デバイスプロセスにおいて欠陥救済に用いられる冗長アレイ３Ｒのような冗長記憶領域とは異なることはいうまでもない。冗長プログラム回路のプログラム内容にしたがった救済は、チップ間代替又はチップ内代替が行われるか否かとは全く無関係に、冗長救済が行われていれば、フラッシュメモリのハードウェアにしたがって自動的に冗長への置き換えが行われることになる。
【００６１】
上記代替制御機能の説明より明らかなように、一つのフラッシュメモリで発生した書込みエラーの救済に、別のフラッシュメモリの代替領域４１を用いるチップ間代替が可能になる。したがって、一部のフラッシュメモリ内でデータ慮域４０の不良部分を代替領域に代替させることが不可能になっても、不良に至った不揮発性記憶装置を交換したり、予備の不揮発性メモリを用いることなく、全体の不良を逃れることができる。
【００６２】
新たに代替可能な記憶領域の残りが所定数以下になったフラッシュメモリにおいて書込みエラーが生じたとき、それに対してチップ間代替を許容するから、データブロックの無駄を極力排除するようにチップ間代替を行うことができる。すなわち、チップ内代替が全く不可能に成るまで代替を行ってしまったフラッシュメモリが顕在化する前にチップ間代替を開始させるから、新たに代替可能な領域の残りに大きな偏りが生じ難くなり、チップ間代替やチップ内代替のための処理サイクル数を最小限に抑えることが可能になる。フラッシュメモリ間で新たに代替可能な領域の残りに大きな偏りを生ずると、代替先として採用し得るフラッシュメモリの数が少なくなり、代替先として採用し得るフラッシュメモリを探すための検索リトライ回数が増えてしまうからである。
【００６３】
これにより、不良に至ったフラッシュメモリを交換したり、予備のフラッシュメモリを用いることなく、経時的に発生する書込み不良に対する救済効率を向上させることができ不良データブロックの代替に、各フラッシュメモリの記憶領域を無駄なく利用することができる。
【００６４】
《インタリーブ書込みサポート時の代替制御機能》次に、インタリーブ書込みを採用する場合における代替制御機能について説明する。
【００６５】
図７にはインタリーブ書込み方式の一例が示される。インタリーブ書き込みは、カードコントローラＣＴＲが、ホスト装置からのデータ書込み要求に応答して、書込みデータを所定データ量単位、例えば２０８０バイト単位で、書込み動作タイミングをずらしながら順次異なる複数のフラッシュメモリに書込む方式である。図７において、“転送”と記載された動作はコマンド及び書込みデータをカードコントローラからフラッシュメモリに転送する操作であり、“フラッシュプログラム”と記載された動作はフラッシュメモリに対する書込み及び書込みベリファイ動作を意味する。同図より明らかなように、フラッシュンメモリＣｈｉｐＮｏ．０〜ＣｈｉｐＮｏ．３には順次直列的にコマンド及び書込みデータ等の転送操作が行われ、転送されたコマンドなどに従った書込み動作が順次ずれたタイミングで開始される。
【００６６】
このようなインタリーブ書込みによる書込みデータのセクタ単位の論理アドレスは図８に例示されるように、複数のフラッシュメモリＣｈｉｐＮｏ．０〜ＣｈｉｐＮｏ．３に跨って分散されることになる。図８において０，１，２，３の数字はセクタデータ単位の論理アドレスを意味する。
【００６７】
図９乃至図１２にはインタリーブ書き込みを採用する場合におけるチップ間代替処理における代替先フラッシュメモリの選択手法が例示される。同図ではフラッシュメモリはＣｈｉｐ０〜Ｃｈｉｐ６３の６４個実装されている場合を想定する。各図において◎のフラッシュメモリＣｈｉｐ１に書込みエラーが発生してチップ間代替の必要性が生じたものとする（チップ間代替発生チップ）。●のフラッシュメモリはそれ自体チップ間代替を要するフラッシュメモリであって他のフラッシュメモリからのチップ間代替に答えることができないフラッシュメモリである（チップ間代替受入れ不可能チップ）。○はそれ自体チップ内代替で対処可能なフラッシュメモリであって他のフラッシュメモリからのチップ間代替に答えることができるフラッシュメモリである（チップ間代替受入れ可能チップ）。□は前記チップ間代替チップを含む可能性の有る一連のインタリーブ対象フラッシュメモリである（インタリーブ対象予測チップ）。ここで、一連のインタリーブ対象フラッシュメモリの数は６個としている。■は前記インタリーブ対象予測チップであり且つチップ間代替要求拒否チップであるフラッシュメモリを意味する。
【００６８】
図９はチップ間代替受入れ可能チップがある場合の代替手法を例示する。カードコントローラＣＴＲがインタリーブ書込み動作中にフラッシュメモリＣｈｉｐ１の書込みエラーを検出したとき、書込みエラーに係る記憶領域を代替する他のフラッシュメモリとして、前記書き込みエラーを生じたフラッシュメモリＣｈｉｐ１を含む一連のインタリーブ書き込み対象とされるフラッシュメモリＣｈｉｐ１〜Ｃｈｉｐ６及びＣｈｉｐ６０〜Ｃｈｉｐ６３を除外して、○印のチップ間代替受入れ可能チップの中から代替対象とする第１候補を選択する。チップ間代替受入れ可能チップの中から第１候補を選択する選択アルゴリズムは極力ランダムになることが望ましく、例えば、選択可能な範囲で、Ａ／（Ｂ−Ｃ）の剰余の数に応ずるチップ番号若しくはそれに最も近いフラッシュメモリを第１候補に選択すればよい。Ａはデータ領域４０のブロック数１５６４９、Ｂはフラッシュメモリチップの数、チップ間代替を必要とするフラッシュメモリのチップ番号である。
【００６９】
上記より、代替領域に書込みエラーに係るデータを書き込むとき、分割された他のデータを書込むインタリーブ動作と競合するのを排除することができる。若しくはそのような競合排除を高い確率で容易に実現することができる。
【００７０】
図１０はチップ間代替受入れ可能チップがない場合の代替手法を例示する。カードコントローラＣＴＲは、前記第１候補を選択不可能なとき、前記第１候補の選択範囲外のうち、インタリーブ順序に対して後方に位置するフラッシュメモリＣｈｉｐ６０〜Ｃｈｉｐ６３の中から代替可能なものを第２候補として選択する。
【００７１】
図１１には第２候補を選択不可能な場合の代替手法を例示する。カードコントローラＣＴＲは、前記第２候補の選択が不可能なとき、書込みエラーを生じたフラッシュメモリＣｈｉｐ１を第３候補として選択する。
【００７２】
図１２には第３候補を選択不可能な場合の代替手法を例示する。前記カードコントローラＣＴＲは、前記第３候補の選択が不可能なとき、前記第１候補の選択範囲外のうち、インタリーブの順序方向に対する前方のフラッシュメモリＣｈｉｐ２〜Ｃｈｉｐ６の中から代替可能なものを第４候補として選択する。
【００７３】
図１３には図９〜図１２で説明した選択手法を実現するためのカードコントローラＣＴＲによるチップ間代替処理手順が例示される。
【００７４】
書込みエラーを検出すると（Ｓ１）、その書込みエラーに係るフラッシュメモリの不良登録テーブル領域４２や対応する管理情報ＣＮＴ等に基づいてフラッシュメモリの代替状況を判定し（Ｓ２）、チップ内代替が図４で説明したチップ間代替判定ブロックに到達したか否か、要するに、チップ内代替で処理すべきか、チップ間代替で処理すべきかを判定する（Ｓ３）。チップ間代替判定ブロックに到達していなければチップ内代替処理を行う（Ｓ４）。
【００７５】
ステップＳ３でチップ間代替判定ブロックに到達していると判定された場合には、チップ間代替処理を行うために、先ず、前記チップ間代替受入れ可能チップがあるか否かを判定する（Ｓ５）。チップ間代替受入れ可能チップがある場合、図９で説明したＴＲ１の処理が行われる。即ち、代替先チップの候補を選択し（Ｓ６）、選択した候補のフラッシュメモリにおける不良登録テーブル領域４２や対応する管理情報ＣＮＴ等に基づいて候補とすべきフラッシュメモリの代替状況を判定し（Ｓ７）、チップ内代替が図４で説明したチップ間代替判定ブロックに到達したか否か、要するに、チップ内代替で処理すべきか、チップ間代替で処理すべきかを判定する（Ｓ８）。チップ間代替判定ブロックに到達していなければチップ内代替処理を行う（Ｓ９）。そうでなければ処理Ｓ５に戻る。
【００７６】
ステップＳ５の判定によりチップ間代替受入れ可能チップがない場合、図１０で説明した処理ＴＲ２が行われる。先ず、インタリーブ中のチップを選出する（Ｓ１０）。要するに、書込みエラー発生フラッシュメモリよりもインタリーブの順番が前にされるフラッシュメモリを選ぶ。選出されたフラッシュメモリの一つを候補とし（Ｓ１１）、候補としたフラッシュメモリにおける不良登録テーブル領域４２や対応する管理情報ＣＮＴ等に基づいて候補とすべきフラッシュメモリの代替状況を判定し（Ｓ１２）、チップ内代替が図４で説明したチップ間代替判定ブロックに到達したか否か、要するに、チップ内代替で処理すべきか、チップ間代替で処理すべきかを判定する（Ｓ１３）。チップ間代替判定ブロックに到達していなければチップ内代替処理を行う（Ｓ１４）。そうでなければ、Ｓ１０で選ばれる候補に対する全てに対して処理を終了していなければ、ステップＳ１１の処理に戻る（Ｓ１５）。
【００７７】
ＴＲ２の処理で適切な候補を選択できないときは、図１１で説明した処理ＴＲ３が行われる。先ず、代替先を書込みエラー発生チップに指定し（Ｓ１６）、そのフラッシュメモリの代替領域４１に、実質的に空きデータブロックが有るかを判定する（Ｓ１７）。ここで言うところの実質的な空きとは、チップ間代替判定ブロック３を超えて代替が進んでいてもよく、要するに、最後まで代替領域が代替に用い尽くされていなければ、空きが有ると判断する。空きが有ればチップ内代替を行う（Ｓ１８）。
【００７８】
ステップＳ１７の処理で実質的な空きがないと判定された場合は、図１２で説明した処理ＴＲ４が行われる。先ず、代替候補をインタリーブ方向次のチップとし（Ｓ１９）、そのフラッシュメモリの代替領域４１に、実質的に空きデータブロックが有るかを判定する（Ｓ２０）。ここで言うところの実質的な空きとは、Ｓ１７の場合と同じである。空きが有ればチップ間代替を行う（Ｓ２１）。搭載チップの全てに対して代替先候補とする事ができない場合には（Ｓ２２）、代替処理不可能として、エラー処理が行われて一連の処理を終了する（Ｓ２３）。
【００７９】
図１４には代替先算出フローが例示される。この処理は前記ステップＳ５の処理に相当される。即ち、前記チップ間代替受入れ可能チップがあるか否かを判定し（Ｓ３０）、チップ間代替受入れ可能チップがある場合、書込みエラー発生のブロックアドレスから代替先チップを算出する（Ｓ３１）。算出方法は、例えば、ブロックアドレスをインタリーブ範囲外チップ数で除した余りを、インタリーブ範囲外チップの最小チップ番号に加算して得る。具体的には、インタリーブ範囲外チップをＣｈｉｐＮ０．７〜ＣｈｉｐＮｏ．５９とし、エラー発生チップをＣｈｉｐＮｏ．１とし、エラー発生ブロックアドレスを１０‘Ｈとし、搭載チップ数を６４とするなら、１６÷５３の余りは１６であり、範囲外最小ＣｈｉｐＮｏ．は７であるから、７＋１６＝２３により、チップ間代替チップの候補チップはＣｈｉｐＮｏ．２３となる。
【００８０】
図１５には代替処理フローが例示される。この処理は、ステップＳ４、Ｓ９等の代替処理に相当される。代替候補とし得るフラッシュメモリの代替領域から空きブロックを検索し（Ｓ４０）、空きブロックに有無が判定される（Ｓ４１）。空きブロックがなければ代替のエラー終了とされ、空きブロックがあれば、代替が実行される（Ｓ４２）。代替の実行では、代替先にエラーに係るデータの書き込みを行い、書き込みエラーが無ければ（Ｓ４３）、対応する管理領域のフラグ設定や対応する不良登録テーブルデータの代替先アドレス設定等の処理を行って（Ｓ４５），ダイヤ異処理を終了する。書き込みエラーがある場合には次に飽くブロックを検索し（Ｓ４４）、ステップＳ４１の処理に戻る。
【００８１】
図１６〜図２３には前記インタリーブ書込みサポート時の代替制御機能によって実現される代替状況の具体例を夫々示している。図１６〜図２２はフラッシュメモリがＣｈｉｐＮｏ．０〜ＣｈｉｐＮ０．Ｆの１６個搭載され、図２２はフラッシュメモリがＣｈｉｐＮｏ．０〜ＣｈｉｐＮ０．５の６個搭載されている場合を想定している。
【００８２】
図１６〜図１９はエラー発生がフラッシュメモリセルに対するプログラム処理を開始する前に明らかになったような場合を想定する。すなわち、不揮発性メモリセルに対する書込み電圧の印可（プログラム）とプログラムベリファイを行う前に、管理情報の確認を先に行わなければならない。このとき、書込み対象データブロックが既に代替されている場合に、上記プログラム及びプログラムベリファイを開始する前に代替先アドレスを取得できるかの確認処理が必要になり、その際、リード対象の不良登録テーブルがＥＥＣエラー等でリード不可能なら代替先アドレスを取得できず、書込みエラーになる。そのような書込みエラーの発生を想定する。
【００８３】
図１６において、ＣｈｉｐＮｏ．５のｇフラッシュメモリでエラーが発生している。このとき、他のインタリーブ動作を妨げない期間ｔ１でＣｈｉｐＮｏ．Ｂ〜ＣｈｉｐＮｏ．Ｆの何れかを利用して代替処理を行えばよい。これは図９による処理結果に対応される。
【００８４】
図１７は図１６において候補としたＣｈｉｐＮｏ．Ｂ〜ＣｈｉｐＮｏ．Ｆのフラッシュメモリが代替先として不適当な場合の代替先を示し、インタリーブ書き込み終了を待てＣｈｉｐＮｏ．０のフラッシュメモリを代替先としている。これは図１０による処理結果に対応される。
【００８５】
図１８の場合は図１７においてＣｈｉｐＮｏ．０はもとより、ＣｈｉｐＮｏ．４までのフラッシュメモリが全く代替不可能な場合に、エラーを生じたＣｈｉｐＮｏ．５を代替対象としている。これは図１１による処理結果に対応される。
【００８６】
図１９の場合は図１８においてエラーを生じたＣｈｉｐＮｏ．５も代替不可能な場合に、先のインタリーブ対象ＣｈｉｐＮｏ．６のフラッシュメモリを代替対象にしている。この場合にはインタリーブ動作が妨げられてしまう。これは図１２による処理結果に対応される。
【００８７】
図２０〜図２２はエラー発生が書き込み終了時点で明らかになったような場合を想定する。
【００８８】
図２０において、ＣｈｉｐＮｏ．５のｇフラッシュメモリでエラーが発生している。このときは、其の時点でインタリーブ動作中及び次のインタリーブ動作対象とされるフラッシュメモリを除いて、例えば、ＣｈｉｐＮｏ．０〜ＣｈｉｐＮｏ．４の何れかを利用して代替処理を行えばよい。
【００８９】
図２１は図２０において候補としたＣｈｉｐＮｏ．０〜ＣｈｉｐＮｏ．４のフラッシュメモリが代替先として不適当な場合の代替先を示し、インタリーブ動作中のチップの中から、動作終了を待って当該動作終了したフラッシュメモリ例えばＣｈｉｐＮｏ．６をチップ間代替対象とする。
【００９０】
図２２の場合は、図２１において動作終了したフラッシュメモリが全く代替不可能なとき、エラーを生じたＣｈｉｐＮｏ．５を代替対象としている。このエラーを生じたＣｈｉｐＮｏ．５も全ての代替領域を使い尽くしている場合には搭載チップ全体からチップ間代替先を新たに検索することになる。
【００９１】
図２３には搭載チップ数が少ない場合の例を示す。搭載チップが少ない場合には、インタリーブを妨げること無くチップ間代替を行うことができる余裕は少なくなる。
【００９２】
《パラレル書き込みサポート時の代替制御機能》図２４にはパラレル書込みを採用するときのチップ間代替の様子が例示される。
【００９３】
前記インタリーブ書込みに代えてパラレル書込みを採用するとき、カードコントローラＣＴＲは、外部からのデータ書込み要求に応答して、書込みデータを所定データ量単位で異なる複数のフラッシュメモリに並行して書込むパラレル書込みを制御可能である。図２４の例では６個のフラッシュメモリを並列動作させて書き込みを行う。パラレル書込み動作中に書込みエラーを検出したとき、書込みエラーに係る記憶領域を代替する他のフラッシュメモリとして、前記書込みエラーを生じたフラッシュメモリを含むパラレル書込み対象とされるフラッシュメモリを除く範囲から第１候補を選択するのが望ましい。図２４の例では、ＣｈｉｐＮｏ．５のフラッシュメモリでエラーを生じたとき、ＣｈｉｐＮｏ．Ｃ〜ＣｈｉｐＮｏ．Ｆの内の１つをチップ間代替対象の候補としている。
【００９４】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００９５】
例えば、チップ間代替対象候補の選択手順は上記の具体例に限定されず、既に開始され、或は其の後に開始されると予想される書き込み動作を、極力妨げないように候補を選択すればよく、種々の変更が可能である。
【００９６】
また、冗長救済はビット線側の救済と併用してもよい。本発明はＡＴＡメモリカードに限定されず、其の他の記憶形式の不揮発性メモリ、その他の規格に準拠するメモリカードなどに広く適用することができる。フラッシュメモリの搭載数も上記に限定されない。
【符号の説明】
【００９７】
１  ＡＴＡメモリカード
２  バス
ＣＴＲ  カードコントローラ
ＦＬＳ１〜ＦＬＳ１６  フラッシュメモリ
ＣＥ１〜ＣＥ１６  チップイネーブル信号
３  メモリアレイ
３Ｒ  冗長メモリアレイ
８  Ｘアドレスバッファ
８Ｒ  冗長プログラム回路
９  Ｘアドレスデコーダ
９Ｒ  冗長Ｘアドレスデコード論理
３３  ＣＰＵ
３４  ＲＯＭ
３５  ＲＡＭ
４０  データ領域
４１  代替領域
４２  不良登録テーブル領域
ＢＬＫ  単位ブロック
ＣＮＴ  管理情報
ＢＬＫ・ＣＮＴ  単位領域
５０  チップ番号領域
５１  代替アドレス領域
６０  代替フラグ
６１  ブロックアドレス
【図１】
2011048852.tif 000003
【図２】
2011048852.tif 000004
【図３】
2011048852.tif 000005
【図４】
2011048852.tif 000006
【図５】
2011048852.tif 000007
【図６】
2011048852.tif 000008
【図７】
2011048852.tif 000009
【図８】
2011048852.tif 000010
【図９】
2011048852.tif 000011
【図１０】
2011048852.tif 000012
【図１１】
2011048852.tif 000013
【図１２】
2011048852.tif 000014
【図１３】
2011048852.tif 000015
【図１４】
2011048852.tif 000016
【図１５】
2011048852.tif 000017
【図１６】
2011048852.tif 000018
【図１７】
2011048852.tif 000019
【図１８】
2011048852.tif 000020
【図１９】
2011048852.tif 000021
【図２０】
2011048852.tif 000022
【図２１】
2011048852.tif 000023
【図２２】
2011048852.tif 000024
【図２３】
2011048852.tif 000025
【図２４】
2011048852.tif 000026