(57)【要約】【課題】  動作速度の急激な低下を防止し得る半導体記憶装置を実現する。【解決手段】  メモリカード１が、旧ＢＭＡＰの消去処理と、旧第１のＳＭＡＰ及び旧第２のＳＭＡＰの消去処理と、ウェアレベリング処理での旧データブロックの消去処理とを時間をずらして実行するようにしたことにより、負荷の大きい、旧ＢＭＡＰの消去処理と、旧第１のＳＭＡＰ及び旧第２のＳＭＡＰの消去処理と、ウェアレベリング処理での旧データブロックの消去処理とが短時間に連続して実行されることを回避することができるので、動作速度の急激な低下を防止することができる。【選択図】          図４
2006195736.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する複数のデータ記憶ブロックと、当該データを記憶した複数のデータ記憶ブロックのアドレスを示すアドレス情報を記憶するアドレス情報記憶ブロックと、当該アドレス情報記憶ブロックのアドレスを管理するための管理情報を記憶する管理情報記憶ブロックとを有する不揮発性メモリと、
上記アドレス情報記憶ブロックの空き容量が無くなった場合に当該アドレス情報記憶ブロックとは別のアドレスに新たな上記アドレス情報記憶ブロックを作成する第１の作成処理と、当該第１の作成処理実行後に上記空き容量が無くなったアドレス情報記憶ブロックの内容を消去する第１の消去処理と、上記管理情報記憶ブロックの空き容量が無くなった場合に当該管理情報記憶ブロックとは別のアドレスに新たな上記管理情報記憶ブロックを作成する第２の作成処理と、当該第２の作成処理実行後に上記空き容量が無くなった管理情報記憶ブロックの内容を消去する第２の消去処理と、上記データ記憶ブロックに記憶した上記データを別のデータ記憶ブロックに記憶して、元のデータ記憶ブロックの内容を消去するウェアレベリング処理とを実行する制御手段とを具え、
上記制御手段は、
上記第１の消去処理、上記第２の消去処理、及び上記ウェアレベリング処理のそれぞれを時間をずらして実行する
ことを特徴とする半導体記憶装置。
【請求項２】
上記アドレス情報記憶ブロックは、
複数のページでなると共に、上記アドレス情報が当該ページ単位でページ番号順に記憶され、
上記制御手段は、
上記第１の作成処理実行後、すぐに上記新たなアドレス情報記憶ブロックのアドレスに基づいて上記第２の作成処理及び上記第２の消去処理を実行し、当該第２の消去処理実行後、上記アドレス情報記憶ブロックの所定ページに上記アドレス情報を記憶した段階で、上記第１の消去処理を実行する
ことを特徴とする請求項１に記載の半導体記憶装置。
【請求項３】
上記制御手段は、
上記第１の消去処理及び上記第２の消去処理を実行する際には、上記ウェアレベリング処理を実行しない
ことを特徴とする請求項２に記載の半導体記憶装置。
【請求項４】
上記不揮発性メモリは、
第１の上記管理情報記憶ブロックと第２の上記管理情報記憶ブロックとを有し、
上記第１の管理情報記憶ブロック及び上記第２の管理情報記憶ブロックのそれぞれは、
複数のページでなると共に、上記管理情報が当該ページ単位で記憶され、
上記制御手段は、
上記第１の管理情報記憶ブロックと上記第２の管理情報記憶ブロックとに、上記管理情報を記憶するページを所定ページ番号分だけずらして、当該管理情報を交互に記憶させる
ことを特徴とする請求項１に記載の半導体記憶装置。
【請求項５】
データを記憶する複数のデータ記憶ブロックと、当該データを記憶した複数のデータ記憶ブロックのアドレスを示すアドレス情報を記憶するアドレス情報記憶ブロックと、当該アドレス情報記憶ブロックのアドレスを管理するための管理情報を記憶する管理情報記憶ブロックとを有する不揮発性メモリを具えた半導体記憶装置の制御方法において、
上記アドレス情報記憶ブロックの空き容量が無くなった場合に当該アドレス情報記憶ブロックとは別のアドレスに新たな上記アドレス情報記憶ブロックを作成する第１の作成処理と、当該第１の作成処理実行後に上記空き容量が無くなったアドレス情報記憶ブロックの内容を消去する第１の消去処理と、上記管理情報記憶ブロックの空き容量が無くなった場合に当該管理情報記憶ブロックとは別のアドレスに新たな上記管理情報記憶ブロックを作成する第２の作成処理と、当該第２の作成処理実行後に上記空き容量が無くなった管理情報記憶ブロックの内容を消去する第２の消去処理と、上記データ記憶ブロックに記憶した上記データを別のデータ記憶ブロックに記憶して、元のデータ記憶ブロックの内容を消去するウェアレベリング処理とを実行する際、上記第１の消去処理、上記第２の消去処理、及び上記ウェアレベリング処理のそれぞれを時間をずらして実行する
ことを特徴とする半導体記憶装置の制御方法。
【請求項６】
上記アドレス情報記憶ブロックは複数のページでなり、当該アドレス情報記憶ブロックには、上記アドレス情報を当該ページ単位でページ番号順に記憶するようにし、
上記第１の作成処理実行後、すぐに上記新たなアドレス情報記憶ブロックのアドレスに基づいて上記第２の作成処理及び上記第２の消去処理を実行し、当該第２の消去処理実行後、上記アドレス情報記憶ブロックの所定ページに上記アドレス情報を記憶した段階で、上記第１の消去処理を実行する
ことを特徴とする請求項５に記載の半導体記憶装置の制御方法。
【請求項７】
上記第１の消去処理及び上記第２の消去処理を実行する際には、上記ウェアレベリング処理を実行しない
ことを特徴とする請求項６に記載の半導体記憶装置の制御方法。
【請求項８】
上記不揮発性メモリは、
第１の上記管理情報記憶ブロックと第２の上記管理情報記憶ブロックとを有し、
上記第１の管理情報記憶ブロック及び上記第２の管理情報記憶ブロックのそれぞれは複数のページでなり、当該第１の管理情報記憶ブロック及び当該第２の管理情報記憶ブロックのそれぞれには、上記管理情報を当該ページ単位で記憶するようにし、
上記第１の管理情報記憶ブロックと上記第２の管理情報記憶ブロックとに、上記管理情報を記憶するページを所定ページ番号分だけずらして、当該管理情報を交互に記憶する
ことを特徴とする請求項５に記載の半導体記憶装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体記憶装置及びその制御方法に関し、特に不揮発性メモリの各ブロックに対するデータの書き換えに適用して好適なものである。
【背景技術】
【０００２】
近年、デジタル機器等の記憶媒体として、不揮発性メモリの一種であるフラッシュメモリを内蔵したカード型の半導体記憶装置（以下、これをメモリカードとも呼ぶ）が広く普及している。この種のメモリカードには、数Kbyte毎のブロック単位でデータの書き込み及び消去を行うフラッシュメモリ（ＮＡＮＤ型と呼ばれる）が採用されており、これにより例えば１byte単位でデータの書き込み及び消去を行う場合と比して、容易に高速化及び大容量化を実現し得るようになされている。
【０００３】
ところで、このようにブロック単位でデータの書き換え（書き込み及び消去）を行うフラッシュメモリの場合、各ブロックに、データの書き換えを保証し得る回数（以下、これを書換保証回数）が設定されており、データの書換回数がこの書換保証回数を超えたブロックについては、データの書き換えが保証されないブロック、すなわち不良ブロックとして扱われる。そして、この不良ブロックの数が所定数に達すると、そのフラッシュメモリは寿命が尽きたものとされ、使用不可となる。
【０００４】
このため、従来のメモリカードには、各ブロックの書替回数を均一化する処理（以下、この処理をウェアレベリング処理とも呼ぶ）を不定期で実行することで、特定のブロックにデータの書き換えが集中するのを防止して不良ブロックの発生時期を遅らせ、これによりフラッシュメモリの寿命を延ばし得るようになされたものがある。
【０００５】
このようなウェアレベリング処理としては、例えば、書換回数が規定回数（書換保証回数よりも少ない回数とする）に達したブロックに書き込まれているデータを、書換回数のより少ない別のブロックに書き込むと共に、旧ブロック（すなわち書換回数が規定回数に達したブロック）のデータを消去することにより、データを書換回数のより少ないブロックに移動させて、各ブロックの書替回数を均一化させるようになされたものが提案されている（例えば特許文献１参照）。
【０００６】
また、このようなブロック単位でデータの書き換えを行うメモリカードの場合、図６に示すようなアドレスマップを有したものがある。ちなみに、ここでは、１セグメントが５１２個のブロックで構成され、さらに各ブロックが６４ページ分のデータを記憶し得るようになされたフラッシュメモリを例に説明する。
【０００７】
この図６に示すアドレスマップは、フラッシュメモリの各ブロックＢ０、Ｂ１、…、Ｂ５１１と物理アドレスとを対応付けてアドレス順に並べたものであり、先頭ブロックＢ０から所定ブロックＢｎまでの複数ブロックが、上述のウェアレベリング処理を実行するファームウェアや各種管理情報等を記憶するシステム領域として割り当てられ、またこのシステム領域外の所定ブロックＢｎ＋１から最終ブロックＢ５１１までの複数ブロックが、外部機器から供給されるデータ等を記憶するデータ領域として割り当てられている。
【０００８】
このうちデータ領域には、外部機器から供給されるデータを記憶するブロック（以下、これをデータブロックとも呼ぶ）とは別の任意ブロックに、メモリカードで扱うデータに対する論理アドレスと各ブロックＢ０、Ｂ１、…、Ｂ５１１に割り当てられた物理アドレスとを対応付けた情報（以下、これを論物変換情報とも呼ぶ）が記憶されており、この論物変換情報が記憶された任意ブロックを、以下、ＢＭＡＰと呼ぶことにする。
【０００９】
ここで、この論物変換情報は、データブロックに対してデータが書き込まれる毎に更新する必要がある。このため、このメモリカードでは、図７に示すように、データブロックに対してデータを書き込む毎に、ＢＭＡＰの先頭ページＰ０から順にページ単位で論物変換情報を追記していくようになされている。
【００１０】
さらにメモリカードは、ＢＭＡＰの最終ページＰ６３に論物変換情報が書き込まれた状態で、データブロックに対してデータを書き込むと、図８に示すように、このＢＭＡＰとは別の任意ブロック（アドレス）に新ＢＭＡＰを作成して、この新ＢＭＡＰの先頭ページＰ０に新たな論物変換情報を書き込み、さらに旧ＢＭＡＰ（すなわち最終ページＰ６３に論物変換情報が記憶されたブロック）を消去することにより、ＢＭＡＰを別の任意ブロック（アドレス）に移動させるようにもなされている。
【００１１】
一方、システム領域（図６）には、予め設定された２個の所定ブロックに、ＢＭＡＰに割り当てられている物理アドレス（ブロック）を管理するための情報（以下、これをＢＭＡＰアドレス情報とも呼ぶ）等の管理情報が記憶されており、これら２個の所定ブロックを、以下、それぞれ第１のＳＭＡＰ、第２のＳＭＡＰと呼ぶことにする。
【００１２】
ここで、このＢＭＡＰアドレス情報は、ＢＭＡＰが別のブロックに移動される毎に更新する必要がある。また、このＢＭＡＰアドレス情報は、メモリカードがフラッシュメモリへのアクセスを行う際に必要となる情報である。
【００１３】
このため、このメモリカードでは、図９に示すように、ＢＭＡＰを別のブロックに移動させる毎に、第１のＳＭＡＰと、第２のＳＭＡＰとを交互に用いて、ページ単位でＢＭＡＰアドレス情報を追記していくようになされている。つまり、このメモリカードは、ＢＭＡＰを新たなブロックに移動させる毎に、第１のＳＭＡＰの先頭ページＰ０１、第２のＳＭＡＰの先頭ページＰ０２、第１のＳＭＡＰの次ページＰ１１、第２のＳＭＡＰの次ページＰ１２、…の順でＢＭＡＰアドレス情報を追記していく。
【００１４】
さらにメモリカードは、第１のＳＭＡＰの最終ページＰ６３１に過去のＢＭＡＰアドレス情報が記憶されていると共に、第２のＳＭＡＰの最終ページＰ６３２に現在のＢＭＡＰアドレス情報が記憶されている状態で、ＢＭＡＰを別のブロックに移動させると、図１０に示すように、第１のＳＭＡＰ及び第２のＳＭＡＰとは別の所定ブロック（アドレス）に新第１のＳＭＡＰを作成して、この新第１のＳＭＡＰの先頭ページＰ０１に新たなＢＭＡＰアドレス情報を書き込み、さらに旧第１のＳＭＡＰ（すなわち最終ページＰ６３１にＢＭＡＰアドレス情報が記憶されたブロック）を消去することで、第１のＳＭＡＰを別の所定ブロック（アドレス）に移動させるようになされている。
【００１５】
さらにこの状態で、ＢＭＡＰを新たなブロックに移動させると、メモリカードは、第１のＳＭＡＰ及び第２のＳＭＡＰとは別の所定ブロック（アドレス）に新第２のＳＭＡＰを作成して、この新第２のＳＭＡＰの先頭ページＰ０２に新たなＢＭＡＰアドレス情報を書き込み、さらに旧第２のＳＭＡＰ（すなわち最終ページＰ６３２にＢＭＡＰアドレス情報が記憶されたブロック）を消去することで、第２のＳＭＡＰを別の所定ブロック（アドレス）に移動させるようになされている。
【００１６】
このようにしてメモリカードは、第１のＳＭＡＰ及び第２のＳＭＡＰの２ブロックを用いて、これら第１のＳＭＡＰ及び第２のＳＭＡＰに対して交互にＢＭＡＰアドレス情報を追記するようにしたことにより、例えば第１のＳＭＡＰに対する新たなＢＭＡＰアドレス情報の書き込みが失敗して、この新たなＢＭＡＰアドレス情報が壊れた場合でも、このとき第２のＳＭＡＰに記憶されている１つ前のＢＭＡＰアドレス情報を参照することができるので、フラッシュメモリにアクセスできない状態を回避することができるようになされている。
【００１７】
かくして、このようなアドレスマップを有するメモリカードでは、システム領域の第１のＳＭＡＰ又は第２のＳＭＡＰを参照して、データ領域のＢＭＡＰに割り当てられている物理アドレス（ブロック）を特定し、さらにこの特定した物理アドレス（ブロック）をもとにＢＭＡＰを参照して、書き込まれたデータの論理アドレスに対応する物理アドレス（ブロック）を特定することにより、書き込まれたデータの記憶位置を管理するようになされている。
【特許文献１】特開２００３−２０３０１６公報（第５頁）
【発明の開示】
【発明が解決しようとする課題】
【００１８】
しかしながら、このようなアドレスマップを有する従来のメモリカードの場合、特定の状況下において、上述した、旧ＢＭＡＰを消去する消去処理と、旧第１のＳＭＡＰ又は旧第２のＳＭＡＰを消去する消去処理と、ウェアレベリング処理時の旧データブロックのデータを消去する消去処理とが、連続的に実行される場合があり、この場合、負荷の大きな消去処理が重なることで、メモリカードの動作速度（すなわちパフォーマンス）が、一時的ではあるものの急激に低下するという問題が生じる。
【００１９】
このような問題が起こり得る状況を、メモリカードの制御部がフラッシュメモリに対して行う従来の書換処理手順と共に説明する。図１１のフローチャートに示すように、メモリカードの制御部は、この書換処理手順ＲＴ１００を、ステップＳＰ１００から開始する。
【００２０】
ステップＳＰ１００においてメモリカードの制御部は、外部機器から供給されたデータを、データ領域のデータブロックに書き込み、次のステップＳＰ１０１に移る。
【００２１】
ステップＳＰ１０１においてメモリカードの制御部は、ＢＭＡＰの最終ページに現在の論物変換情報が書き込まれているか否かを判定する。ここで否定結果を得ると、このことは、現在のＢＭＡＰに、まだ新たな論物変換情報を追記し得るページが残っていることを表しており、このときメモリカードの制御部は、ステップＳＰ１０２に移り、ステップＳＰ１００でのデータの書き込みに応じた新たな論物変換情報を、現在のＢＭＡＰに追記して、次のステップＳＰ１０５に移る。
【００２２】
これに対してステップＳＰ１０１で肯定結果を得ると、このことは、現在のＢＭＡＰに、新たな論物変換情報を追記し得るページが残っていないことを表しており、このときメモリカードの制御部は、ステップＳＰ１０３に移る。
【００２３】
ステップＳＰ１０３においてメモリカードの制御部は、現在のＢＭＡＰとは別の任意ブロックに新ＢＭＡＰを作成し、この新ＢＭＡＰの先頭ページに新たな論物変換情報を書き込み、次のステップＳＰ１０４に移る。
【００２４】
ステップＳＰ１０４においてメモリカードの制御部は、旧ＢＭＡＰ（すなわち最終ページに論物変換情報が記憶されたブロック）に書き込まれている過去の論物変換情報を消去することにより、旧ＢＭＡＰを消去して、次のステップＳＰ１０５に移る。
【００２５】
ステップＳＰ１０５においてメモリカードの制御部は、このとき新たなＢＭＡＰアドレス情報を追記する番となる例えば第１のＳＭＡＰの最終ページに現在のＢＭＡＰアドレス情報が書き込まれているか否かを判定する。ちなみに、このステップＳＰ１０５では、説明の便宜上、ステップＳＰ１０３で新ＢＭＡＰが作成された場合とする。
【００２６】
ここで否定結果を得ると、このことは、現在の第１のＳＭＡＰに、まだ新たなＢＭＡＰアドレス情報を追記し得るページが残っていることを表しており、このときメモリカードの制御部は、ステップＳＰ１０６に移り、ステップＳＰ１０３での新ＢＭＡＰの作成に応じた新たなＢＭＡＰアドレス情報を、現在の第１のＳＭＡＰに追記して、次のステップＳＰ１０９に移る。
【００２７】
これに対してステップＳＰ１０５で肯定結果を得ると、このことは、現在の第１のＳＭＡＰに、新たなＢＭＡＰアドレス情報を追記し得るページが残っていないことを表しており、このときメモリカードの制御部は、ステップＳＰ１０７に移る。
【００２８】
ステップＳＰ１０７においてメモリカードの制御部は、現在の第１のＳＭＡＰ及び第２のＳＭＡＰとは別の所定ブロックに新第１のＳＭＡＰを作成し、この新第１のＳＭＡＰの先頭ページに新たなＢＭＡＰアドレス情報を書き込み、次のステップＳＰ１０８に移る。
【００２９】
ステップＳＰ１０８においてメモリカードの制御部は、旧第１のＳＭＡＰ（すなわち最終ページにＢＭＡＰアドレス情報が記憶されたブロック）に書き込まれている過去のＢＭＡＰアドレス情報を消去することにより、この旧第１のＳＭＡＰを消去して、次のステップＳＰ１０９に移る。
【００３０】
ステップＳＰ１０９においてメモリカードの制御部は、ウェアレベリング処理を実行するタイミングであるか否かを判定する。ここで否定結果を得ると、メモリカードの制御部は、ウェアレベリング処理を実行せずにステップＳＰ１１２に移り、肯定結果を得ると、ステップＳＰ１１０に移る。
【００３１】
ステップＳＰ１１０においてメモリカードの制御部は、書換回数が規定回数に達したデータブロックに書き込まれているデータを、書換回数のより少ない別のデータブロックに書き込み、次のステップＳＰ１１１に移る。
【００３２】
ステップＳＰ１１１においてメモリカードの制御部は、旧データブロック（すなわち書換回数が規定回数に達したブロック）のデータを消去して、次のステップＳＰ１１２に移り、一連の書換処理手順ＲＴ１を終了する。
【００３３】
ここで、上述した特定の状況下とは、書換処理手順ＲＴ１００のステップＳＰ１０１、ＳＰ１０５、ＳＰ１０９の全てで肯定結果が得られた場合のことであり、このときメモリカードでは、旧ＢＭＡＰの消去処理（ＳＰ１０４）と、旧第１のＳＭＡＰの消去処理（ＳＰ１０８）と、ウェアレベリング処理時の旧データブロックの消去処理（ＳＰ１１１）とを、短時間に連続して実行することになり、この結果、動作速度が急激に低下する。
【００３４】
このように従来のメモリカードでは、特定の状況下において、動作速度が急激に低下するという問題があった。
【００３５】
本発明は以上の点を考慮してなされたもので、動作速度の急激な低下を防止し得る半導体記憶装置及びその制御方法を提案しようとするものである。
【課題を解決するための手段】
【００３６】
かかる課題を解決するため本発明においては、データを記憶する複数のデータ記憶ブロックと、当該データを記憶した複数のデータ記憶ブロックのアドレスを示すアドレス情報を記憶するアドレス情報記憶ブロックと、当該アドレス情報記憶ブロックのアドレスを管理するための管理情報を記憶する管理情報記憶ブロックとを有する不揮発性メモリと、アドレス情報記憶ブロックの空き容量が無くなった場合に当該アドレス情報記憶ブロックとは別のアドレスに新たなアドレス情報記憶ブロックを作成する第１の作成処理と、当該第１の作成処理実行後に空き容量が無くなったアドレス情報記憶ブロックの内容を消去する第１の消去処理と、管理情報記憶ブロックの空き容量が無くなった場合に当該管理情報記憶ブロックとは別のアドレスに新たな管理情報記憶ブロックを作成する第２の作成処理と、当該第２の作成処理実行後に空き容量が無くなった管理情報記憶ブロックの内容を消去する第２の消去処理と、データ記憶ブロックに記憶したデータを別のデータ記憶ブロックに記憶して、元のデータ記憶ブロックの内容を消去するウェアレベリング処理とを実行する制御手段とを設け、この制御手段が、第１の消去処理、第２の消去処理、及びウェアレベリング処理のそれぞれを時間をずらして実行するようにした。
【００３７】
これにより、負荷の大きい、第１の消去処理と、第２の消去処理と、ウェアレベリング処理の消去処理とが短時間に連続して実行されることを回避することができる。
【発明の効果】
【００３８】
本発明によれば、データを記憶する複数のデータ記憶ブロックと、当該データを記憶した複数のデータ記憶ブロックのアドレスを示すアドレス情報を記憶するアドレス情報記憶ブロックと、当該アドレス情報記憶ブロックのアドレスを管理するための管理情報を記憶する管理情報記憶ブロックとを有する不揮発性メモリと、アドレス情報記憶ブロックの空き容量が無くなった場合に当該アドレス情報記憶ブロックとは別のアドレスに新たなアドレス情報記憶ブロックを作成する第１の作成処理と、当該第１の作成処理実行後に空き容量が無くなったアドレス情報記憶ブロックの内容を消去する第１の消去処理と、管理情報記憶ブロックの空き容量が無くなった場合に当該管理情報記憶ブロックとは別のアドレスに新たな管理情報記憶ブロックを作成する第２の作成処理と、当該第２の作成処理実行後に空き容量が無くなった管理情報記憶ブロックの内容を消去する第２の消去処理と、データ記憶ブロックに記憶したデータを別のデータ記憶ブロックに記憶して、元のデータ記憶ブロックの内容を消去するウェアレベリング処理とを実行する制御手段とを設け、この制御手段が、第１の消去処理、第２の消去処理、及びウェアレベリング処理のそれぞれを時間をずらして実行するようにしたことにより、負荷の大きい、第１の消去処理と、第２の消去処理と、ウェアレベリング処理の消去処理とが短時間に連続して実行されることを回避することができるので、動作速度の急激な低下を防止し得る半導体記憶装置及びその制御方法を実現することができる。
【発明を実施するための最良の形態】
【００３９】
以下図面について、本発明の一実施の形態を詳述する。
【００４０】
（１）メモリカードの構成
図１において、１は全体としてメモリカードを示し、複数のフラッシュメモリ２Ａ、２Ｂ、…からなるメモリ部２と、当該メモリ部２を制御するコントローラ部３とを有している。なお、ここでは、説明の便宜上、複数のフラッシュメモリ２Ａ、２Ｂ、…のうちのフラッシュメモリ２Ａを中心に説明する。
【００４１】
コントローラ部３では、制御をつかさどるＭＰＵ（Micro Processing Unit）４に対して、命令レジスタ等からなるレジスタ部５と、誤り訂正処理等を実行するＥＣＣ（Error Correcting Circuit）部６と、フラッシュメモリ２Ａに対して読み書きされるデータが一時記憶されるデータバッファ部７とが接続される。またこのコントローラ部３は、ＭＣ内部クロック（メモリカード内部クロック）を生成するためのクロック生成部８を有している。
【００４２】
データバッファ部７は、所定のバス９を介して、シリアルインターフェース部１０及びパラレルインターフェース部１１と接続される。そして外部機器から供給されるデータが、所定ライン（ＤＡＴＡ０〜ＤＡＴＡ３）及びパラレルインターフェース部１１、又は（ＤＡＴＡ０）及びシリアルインターフェース部１０を順次介してデータバッファ部７に一次記憶され、ＭＰＵ４は、このデータバッファ部７に一次記憶されたデータを、フラッシュメモリ２Ａに対して書き込むようになされている。
【００４３】
またこのメモリカード１に対しては、所定ライン（ＶＳＳ、ＶＣＣ）を介して、外部機器から電源が供給される。さらにこのメモリカード１には、外部機器から供給されるデータを取り込むために必要となるクロックが入力されるライン（ＳＣＬＫ）や、外部機器に対してこのメモリカード１が正常に装着されているか否かを判断するための信号が入力されるライン（ＩＮＳ）や、外部機器から供給されるデータの向きを判断するための信号が入力されるライン（ＢＳ）等も設けられている。
【００４４】
ここでフラッシュメモリ２Ａについて、さらに詳しく説明する。このフラッシュメモリ２Ａは、ブロック単位でデータの書き換えを行うＮＡＮＤ型であり、１セグメントが５１２個のブロックで構成され、さらに各ブロックが６４ページ（１ページが２Kbyte）分のデータを記憶し得るようになされている。
【００４５】
またこのフラッシュメモリ２Ａは、従来と同様、図６に示すようなアドレスマップを有しており、先頭ブロックＢ０から所定ブロックＢｎまでの複数ブロックが、ウェアレベリング処理を実行するためのファームウェアやＢＭＡＰアドレス情報等を記憶するシステム領域として用いられ、またこのシステム領域外の所定ブロックＢｎ＋１から最終ブロックＢ５１１までの複数ブロックが、論物変換情報や外部機器から供給されるデータ等を記憶するデータ領域として用いられるようになされている。
【００４６】
このうちシステム領域には、ＢＭＡＰアドレス情報を記憶する第１のＳＭＡＰ及び第２のＳＭＡＰが２個の所定ブロックに割り当てられ、データ領域には、データを記憶するデータブロックが複数の任意ブロックに割り当てられていると共に、これらデータブロックとは別の任意ブロックに論物変換情報を記憶するＢＭＡＰが割り当てられている。
【００４７】
またＢＭＡＰには、データブロックに対してデータが書き込まれる毎に、ＭＰＵ４によって、先頭ページから順にページ単位で論物変換情報が追記されるようになされている。さらにＭＰＵ４は、ＢＭＡＰの最終ページに論物変換情報が書き込まれた状態（この状態を、ＢＭＡＰの空き容量が無くなった状態とする）で、データブロックに対してデータを書き込むと、このＢＭＡＰとは別の任意ブロック（アドレス）に新ＢＭＡＰを作成して、この新ＢＭＡＰに新たな論物変換情報を書き込むことにより、ＢＭＡＰを別のブロックに移動させるようにもなされている。
【００４８】
さらに、このようにしてＢＭＡＰが別のブロックに移動する毎に、第１のＳＭＡＰ及び第２のＳＭＡＰには、ＭＰＵ４によって、ページ単位で交互にＢＭＡＰアドレス情報が追記されるようになされている。さらにＭＰＵ４は、例えば新たなＢＭＡＰアドレス情報を追記する番となる第１のＳＭＡＰの最終ページにＢＭＡＰアドレス情報が書き込まれた状態（この状態を、第１のＳＭＡＰの空き容量が無くなった状態とする）で、ＢＭＡＰを別のブロックへ移動させると、これら第１のＳＭＡＰ及び第２のＳＭＡＰとは別の所定ブロック（アドレス）に新第１のＳＭＡＰを作成して、この新第１のＳＭＡＰに新たなＢＭＡＰアドレス情報を書き込むことにより、第１のＳＭＡＰを別の所定ブロックへ移動させるようにもなされている。
【００４９】
また同様にＭＰＵ４は、新たなＢＭＡＰアドレス情報を追記する番となる第２のＳＭＡＰの最終ページにＢＭＡＰアドレス情報が書き込まれた状態（すなわち第２のＳＭＡＰの空き容量が無くなった状態）で、ＢＭＡＰを別のブロックへ移動させると、これら第１のＳＭＡＰ及び第２のＳＭＡＰとは別の所定ブロック（アドレス）に新第２のＳＭＡＰを作成して、この新第２のＳＭＡＰに新たなＢＭＡＰアドレス情報を書き込むことにより、第２のＳＭＡＰを別の所定ブロックに移動させるようにもなされている。
【００５０】
かくして、コントローラ部３のＭＰＵ４は、システム領域の第１のＳＭＡＰ及び第２のＳＭＡＰを参照して、データ領域のＢＭＡＰに割り当てられている物理アドレス（ブロック）を特定し、さらにこの特定した物理アドレス（ブロック）をもとにＢＭＡＰを参照して、書き込まれたデータの論理アドレスに対応する物理アドレス（ブロック）を特定することにより、書き込まれたデータの記憶位置を管理するようになされている。
【００５１】
また、フラッシュメモリ２Ａの各ブロックには書換保証回数が設定されており、データの書換回数がこの書換保証回数を超えたブロックは、不良ブロックとして扱われ、この不良ブロックの数が所定数に達すると、フラッシュメモリ２Ａが使用不可となる。
【００５２】
このため、コントローラ部３のＭＰＵ４は、書換回数が規定回数（書換保証回数よりも少ない回数とする）に達したデータブロックに書き込まれているデータを、書換回数のより少ない別のデータブロックに書き込むと共に、旧データブロック（すなわち書換回数が規定回数に達したデータブロック）のデータを消去することにより、データを書換回数のより少ないデータブロックに移動させて、各ブロックの書替回数を均一化させるウェアレベリング処理を実行するようにもなされている。
【００５３】
（２）各ブロックに対する消去処理
ところで、図６に示すようなアドレスマップでデータの記憶位置を管理するメモリカード１では、ＢＭＡＰや第１のＳＭＡＰ及び第２のＳＭＡＰの移動後に残る旧ＢＭＡＰや旧第１のＳＭＡＰ及び旧第２のＳＭＡＰを消去する必要があり、実際上、旧ＢＭＡＰの消去処理と、旧第１のＳＭＡＰ及び旧第２のＳＭＡＰの消去処理と、上述のウェアレベリング処理での旧データブロックを消去する消去処理とを実行することになる。
【００５４】
ここで、仮に、これらの消去処理が連続して実行されたとすると、従来と同様、メモリカード１の動作速度は急激に低下することになる。そこで、本実施の形態のメモリカード１では、これらの消去処理をずらして実行するようになされており、以下、どのようにして、これらの消去処理をずらすのかを詳しく説明する。
【００５５】
まず、メモリカード１では、図２（Ａ）及び（Ｂ）に示すように、旧ＢＭＡＰの消去処理を、新ＢＭＡＰの作成後すぐに実行するのではなく、新ＢＭＡＰの所定ページ（例えば中間となる３２ページ目のページＰ３１）まで論物変換情報が追記された段階で実行するようにした。
【００５６】
実際上、メモリカード１では、新ＢＭＡＰの作成後（すなわちＢＭＡＰの移動後）すぐに第１のＳＭＡＰ又は第２のＳＭＡＰに対して新たなＢＭＡＰアドレス情報の追記が行われる。このとき、追記する番となる例えば第１のＳＭＡＰの最終ページに過去のＢＭＡＰアドレス情報が書き込まれている場合には、新第１のＳＭＡＰの作成と、これに伴う旧第１のＳＭＡＰの消去とが行われる。
【００５７】
従って、旧ＢＭＡＰの消去処理を、新ＢＭＡＰの作成後すぐに実行するのではなく、新ＢＭＡＰの所定ページまで論物変換情報が書き込まれた段階で実行するようにするようにしたことにより、旧ＢＭＡＰの消去処理と、旧第１のＳＭＡＰ又は第２のＳＭＡＰの消去処理とが連続して実行されることを回避することができる。
【００５８】
さらに、これら旧ＢＭＡＰの消去処理や、旧第１のＳＭＡＰ及び旧第２のＳＭＡＰの消去処理の直後では、ウェアレベリング処理を実行しないようにした。これにより、旧ＢＭＡＰ、旧第１のＳＭＡＰ及び旧第２のＳＭＡＰの消去処理と、ウェアレベリング処理での旧データブロックの消去処理とが短時間に連続して実行されることを回避することができる。
【００５９】
このようにしてメモリカード１では、旧ＢＭＡＰの消去処理と、旧第１のＳＭＡＰ及び旧第２のＳＭＡＰの消去処理と、ウェアレベリング処理での旧データブロックを消去する消去処理とをずらして実行することにより、旧ＢＭＡＰの消去処理と、旧第１のＳＭＡＰ及び旧第２のＳＭＡＰの消去処理と、ウェアレベリング処理での旧データブロックの消去処理とが短時間に連続して実行されることを回避することができる。
【００６０】
さらにこのメモリカード１では、図３に示すように、第２のＳＭＡＰに対するＢＭＡＰアドレス情報の書き込みを、先頭ページＰ０２からではなく、所定ページ（例えば中間となる３２ページ目のページＰ３１２）から行うようにした。つまり、このメモリカード１では、ＢＭＡＰを移動させる毎に、第１のＳＭＡＰの先頭ページＰ０１、第２のＳＭＡＰのページＰ３１２、第１のＳＭＡＰの次ページＰ１１、第２のＳＭＡＰの次ページＰ３２２、…の順でＢＭＡＰアドレス情報を追記するようにした。
【００６１】
これにより、第２のＳＭＡＰの最終ページＰ６３２にＢＭＡＰアドレス情報が書き込まれてから、第１のＳＭＡＰの最終ページＰ６３１にＢＭＡＰアドレス情報が書き込まれるまでの時間を、第１のＳＭＡＰ及び第２のＳＭＡＰのそれぞれの先頭ページＰ０１及びＰ０２から交互に追記していく場合よりも長くすることができる。
【００６２】
この結果、旧第１のＳＭＡＰの消去処理と旧第２のＳＭＡＰの消去処理との間隔をより長くすることができるので、メモリカード１に対する処理負荷をさらに分散させることができる。
【００６３】
（３）書換処理手順
ここで、各消去処理を実行するタイミングを、メモリカード１のＭＰＵ４がフラッシュメモリ２Ａに対して行う書換処理手順と共に説明する。図４のフローチャートに示すように、メモリカード１のＭＰＵ４は、この書換処理手順ＲＴ１を、ステップＳＰ１から開始する。
【００６４】
ステップＳＰ１においてＭＰＵ４は、外部機器から供給されたデータを、データ領域のデータブロックに書き込み、次のステップＳＰ２に移る。
【００６５】
ステップＳＰ２においてＭＰＵ４は、ＢＭＡＰの最終ページに現在の論物変換情報が書き込まれているか否かを判定する。ここで否定結果を得ると、このときＭＰＵ４は、ステップＳＰ３に移り、ステップＳＰ１でのデータの書き込みに応じた新たな論物変換情報を現在のＢＭＡＰに追記して、次のステップＳＰ５に移る。これに対してステップＳＰ２で肯定結果を得ると、このときＭＰＵ４はステップＳＰ４に移る。
【００６６】
ステップＳＰ４においてＭＰＵ４は、現在のＢＭＡＰとは別の任意ブロックに新ＢＭＡＰを作成し、この新ＢＭＡＰの先頭ページに新たな論物変換情報を書き込み、次のステップＳＰ５に移る。
【００６７】
ステップＳＰ５においてＭＰＵ４は、このとき新たなＢＭＡＰアドレス情報を追記する番となる例えば第１のＳＭＡＰの最終ページに現在のＢＭＡＰアドレス情報が書き込まれているか否かを判定する。ちなみに、このステップＳＰ５では、説明の便宜上、ステップＳＰ４で新ＢＭＡＰが作成された場合とする。
【００６８】
ここで肯定結果を得ると、このときＭＰＵ４は、ステップＳＰ６に移り、現在の第１のＳＭＡＰ及び第２のＳＭＡＰとは別の所定ブロックに新第１のＳＭＡＰを作成して、この新第１のＳＭＡＰの先頭ページに新たなＢＭＡＰアドレス情報を書き込んだ後、次のステップＳＰ７で旧第１のＳＭＡＰを消去し、次のステップＳＰ１５に移る。
【００６９】
これに対してステップＳＰ５で否定結果を得ると、このときＭＰＵ４は、ステップＳＰ８に移り、旧ＢＭＡＰを消去する必要があるか否かを判定する。ここで肯定結果を得ると、このことは、ＢＭＡＰが移動され、かつ新ＢＭＡＰの所定ページまで論物変換情報が追記されたことを表しており、このときＭＰＵ４は、ステップＳＰ９に移り、旧ＢＭＡＰを消去した後、次のステップＳＰ１０で、新たなＢＭＡＰアドレス情報を、現在の第１のＳＭＡＰに追記して、次のステップＳＰ１５に移る。
【００７０】
これに対してステップＳＰ８で否定結果を得ると、このときＭＰＵ４は、旧ＢＭＡＰの消去処理を実行せずにステップＳＰ１１に移り、新たなＢＭＡＰアドレス情報を現在の第１のＳＭＡＰに追記して、次のステップＳＰ１２に移る。
【００７１】
ステップＳＰ１２においてＭＰＵ４は、ウェアレベリング処理を実行するタイミングであるか否かを判定する。ここで否定結果を得ると、ＭＰＵ４は、ウェアレベリング処理を実行せずにステップＳＰ１５に移り、肯定結果を得ると、ステップＳＰ１３に移る。
【００７２】
ステップＳＰ１３においてＭＰＵ４は、書換回数が規定回数に達したデータブロックに書き込まれているデータを、書換回数のより少ない別のデータブロックに書き込み、次のステップＳＰ１４に移る。
【００７３】
ステップＳＰ１４においてＭＰＵ４は、旧データブロック（すなわち書換回数が規定回数に達したブロック）のデータを消去して、次のステップＳＰ１５に移り、一連の書換処理手順ＲＴ１を終了する。
【００７４】
このような書換処理手順ＲＴ１を実行することで、メモリカード１では、旧ＢＭＡＰの消去処理（ステップＳＰ９）と、第１のＳＭＡＰ又は第２のＳＭＡＰの消去処理（ステップＳＰ７）と、ウェアレベリング処理での旧データブロックを消去する消去処理（ステップＳＰ１４）とを短時間に連続して実行する状況が起こり得ないようになされている。
【００７５】
（４）動作及び効果
以上の構成においてメモリカード１は、旧ＢＭＡＰの消去処理を、新ＢＭＡＰの作成後すぐに実行するのではなく、新ＢＭＡＰの所定ページに論物変換情報が書き込まれた段階で実行する。
【００７６】
これにより、新ＢＭＡＰの作成後（すなわちＢＭＡＰの移動後）すぐに実行される可能性のある旧第１のＳＭＡＰ又は旧第２のＳＭＡＰの消去処理と、旧ＢＭＡＰの消去処理とが短時間に連続して実行されることを回避することができる。
【００７７】
さらにメモリカード１は、旧ＢＭＡＰの消去処理や、旧第１のＳＭＡＰ及び旧第２のＳＭＡＰの消去処理の直後では、ウェアレベリング処理をスキップするようにした。これにより、旧ＢＭＡＰ、旧第１のＳＭＡＰ及び旧第２のＳＭＡＰの消去処理と、ウェアレベリング処理での旧データブロックの消去処理とが短時間に連続して実行されることを回避することができる。
【００７８】
かくしてメモリカード１では、旧ＢＭＡＰの消去処理と、旧第１のＳＭＡＰ及び旧第２のＳＭＡＰの消去処理と、ウェアレベリング処理での旧データブロックの消去処理とが短時間に連続して実行されることを回避することができる。
【００７９】
この結果、図５（Ａ）及び（Ｂ）にも示すように、メモリカード１では、フラッシュメモリ２Ａに対する書込速度の落ち込みを、従来の約２分の１程度にまで抑えることができ、結果として、より高クロックで動作するＭＰＵ４やフラッシュメモリ２Ａを用いることなく、最低動作速度を向上させることができる。
【００８０】
以上の構成によれば、このメモリカード１では、旧ＢＭＡＰの消去処理と、旧第１のＳＭＡＰ及び旧第２のＳＭＡＰの消去処理と、ウェアレベリング処理での旧データブロックの消去処理とを時間をずらして実行するようにしたことにより、負荷の大きい、旧ＢＭＡＰの消去処理と、旧第１のＳＭＡＰ及び旧第２のＳＭＡＰの消去処理と、ウェアレベリング処理での旧データブロックの消去処理とが短時間に連続して実行されることを回避することができるので、動作速度の急激な低下を防止することができる。
【００８１】
（５）他の実施の形態
なお上述の実施の形態においては、カード型の半導体記憶装置であるメモリカード１に本発明を適用した場合について述べたが、本発明はこれに限らず、不揮発性メモリを有する半導体記憶装置であれば、この他種々の半導体記憶装置に本発明を適用するようにしてもよい。
【００８２】
また上述の実施の形態においては、不揮発性メモリとして、１セグメントが５１２ブロックで、１ブロックが６４ページで構成されるＮＡＮＤ型のフラッシュメモリ２Ａを用いた場合について述べたが、本発明はこれに限らず、複数のブロックで構成され、これら複数のブロックに対する消去処理を実行するものであれば、この他種々の構成でなる不揮発性メモリを用いてもよい。
【００８３】
さらに上述の実施の形態においては、図６のようなアドレスマップを用いた場合について述べたが、本発明はこれに限らず、論物変換情報を記憶するブロックと、ＢＭＡＰアドレス情報等の管理情報を記憶するブロックと、データブロックとが割り当てられたアドレスマップであれば、この他種々のアドレスマップを用いるようにしてもよい。
【００８４】
さらに上述の実施の形態においては、ＢＭＡＰアドレス情報を記憶するブロックであるＳＭＡＰが２つ（第１のＳＭＡＰ及び第２のＳＭＡＰ）設けられている場合について述べたが、本発明はこれに限らず、例えば、このＳＭＡＰが１つ、あるいは３つ以上設けられている場合でも、上述した方法で同様の効果を得ることができる。
【００８５】
さらに上述の実施の形態においては、ウェアレベリング処理として、書換回数が規定回数に達したデータブロックに書き込まれているデータを、書換回数のより少ない別のデータブロックに書き込むと共に、旧データブロック（すなわち書換回数が規定回数に達したデータブロック）のデータを消去することにより、データを書換回数のより少ないデータブロックに移動させる手法を用いた場合について述べたが、本発明はこれに限らず、この他種々の手法でなるウェアレベリング処理を実行するようにしてもよい。
【００８６】
さらに上述の第１の実施の形態においては、データを記憶するデータ記憶ブロックとしてのデータブロックや、データを記憶したデータブロックのアドレスを示すアドレス情報としての論物変換情報を記憶するアドレス情報記憶ブロックとしてのＢＭＡＰや、ＢＭＡＰのアドレスを管理するための管理情報としてのＢＭＡＰアドレス情報を記憶する管理情報記憶ブロックとしてのＳＭＡＰを有するフラッシュメモリ２Ａと、第１の消去処理としての旧ＢＭＡＰの消去処理と第２の消去処理としての旧第１のＳＭＡＰ及び旧第２のＳＭＡＰの消去処理とウェアレベリング処理とを実行する制御手段としてのＭＰＵ４とによって、メモリカード１を構成する場合について述べたが、本発明はこれに限らず、この他種々の構成でこのメモリカード１を構成するようにしてもよい。
【産業上の利用可能性】
【００８７】
本発明は、不揮発性メモリを有する半導体記憶装置に広く利用できる。
【図面の簡単な説明】
【００８８】
【図１】本実施の形態におけるメモリカードの構成を示す略線図である。
【図２】旧ＢＭＡＰの消去タイミングを示す略線図である。
【図３】本実施の形態における第１のＳＭＡＰ及び第２のＳＭＡＰに対するＢＭＡＰアドレス情報の追記を示す略線図である。
【図４】本実施の形態における書換処理手順を示すフローチャートである。
【図５】書込速度の落ち込みを示すグラフである。
【図６】従来のメモリカードにおけるアドレスマップを示す略線図である。
【図７】ＢＭＡＰに対する論物変換情報の追記を示す略線図である。
【図８】ＢＭＡＰの移動を示す略線図である。
【図９】従来における第１のＳＭＡＰ及び第２のＳＭＡＰに対するＢＭＡＰアドレス情報の追記を示す略線図である。
【図１０】第１のＳＭＡＰ及び第２のＳＭＡＰの移動を示す略線図である。
【図１１】従来の書換処理手順を示すフローチャートである。
【符号の説明】
【００８９】
１……メモリカード、２……メモリ部、２Ａ、２Ｂ……フラッシュメモリ、３……コントローラ部、４……ＭＰＵ、５……レジスタ部、６……ＥＣＣ部、７……データバッファ部、８……クロック生成部、９……バス、１０……シリアルインターフェース部、１１……パラレルインターフェース部。
【図１】
2006195736.tif 000003
【図２】
2006195736.tif 000004
【図３】
2006195736.tif 000005
【図４】
2006195736.tif 000006
【図５】
2006195736.tif 000007
【図６】
2006195736.tif 000008
【図７】
2006195736.tif 000009
【図８】
2006195736.tif 000010
【図９】
2006195736.tif 000011
【図１０】
2006195736.tif 000012
【図１１】
2006195736.tif 000013