JP2006195736A - 半導体記憶装置及びその制御方法 - Google Patents
半導体記憶装置及びその制御方法 Download PDFInfo
- Publication number
- JP2006195736A JP2006195736A JP2005006661A JP2005006661A JP2006195736A JP 2006195736 A JP2006195736 A JP 2006195736A JP 2005006661 A JP2005006661 A JP 2005006661A JP 2005006661 A JP2005006661 A JP 2005006661A JP 2006195736 A JP2006195736 A JP 2006195736A
- Authority
- JP
- Japan
- Prior art keywords
- storage block
- information storage
- management information
- data
- address information
- 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.)
- Pending
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
【課題】
動作速度の急激な低下を防止し得る半導体記憶装置を実現する。
【解決手段】
メモリカード1が、旧BMAPの消去処理と、旧第1のSMAP及び旧第2のSMAPの消去処理と、ウェアレベリング処理での旧データブロックの消去処理とを時間をずらして実行するようにしたことにより、負荷の大きい、旧BMAPの消去処理と、旧第1のSMAP及び旧第2のSMAPの消去処理と、ウェアレベリング処理での旧データブロックの消去処理とが短時間に連続して実行されることを回避することができるので、動作速度の急激な低下を防止することができる。
【選択図】 図4
動作速度の急激な低下を防止し得る半導体記憶装置を実現する。
【解決手段】
メモリカード1が、旧BMAPの消去処理と、旧第1のSMAP及び旧第2のSMAPの消去処理と、ウェアレベリング処理での旧データブロックの消去処理とを時間をずらして実行するようにしたことにより、負荷の大きい、旧BMAPの消去処理と、旧第1のSMAP及び旧第2のSMAPの消去処理と、ウェアレベリング処理での旧データブロックの消去処理とが短時間に連続して実行されることを回避することができるので、動作速度の急激な低下を防止することができる。
【選択図】 図4
Description
本発明は半導体記憶装置及びその制御方法に関し、特に不揮発性メモリの各ブロックに対するデータの書き換えに適用して好適なものである。
近年、デジタル機器等の記憶媒体として、不揮発性メモリの一種であるフラッシュメモリを内蔵したカード型の半導体記憶装置(以下、これをメモリカードとも呼ぶ)が広く普及している。この種のメモリカードには、数Kbyte毎のブロック単位でデータの書き込み及び消去を行うフラッシュメモリ(NAND型と呼ばれる)が採用されており、これにより例えば1byte単位でデータの書き込み及び消去を行う場合と比して、容易に高速化及び大容量化を実現し得るようになされている。
ところで、このようにブロック単位でデータの書き換え(書き込み及び消去)を行うフラッシュメモリの場合、各ブロックに、データの書き換えを保証し得る回数(以下、これを書換保証回数)が設定されており、データの書換回数がこの書換保証回数を超えたブロックについては、データの書き換えが保証されないブロック、すなわち不良ブロックとして扱われる。そして、この不良ブロックの数が所定数に達すると、そのフラッシュメモリは寿命が尽きたものとされ、使用不可となる。
このため、従来のメモリカードには、各ブロックの書替回数を均一化する処理(以下、この処理をウェアレベリング処理とも呼ぶ)を不定期で実行することで、特定のブロックにデータの書き換えが集中するのを防止して不良ブロックの発生時期を遅らせ、これによりフラッシュメモリの寿命を延ばし得るようになされたものがある。
このようなウェアレベリング処理としては、例えば、書換回数が規定回数(書換保証回数よりも少ない回数とする)に達したブロックに書き込まれているデータを、書換回数のより少ない別のブロックに書き込むと共に、旧ブロック(すなわち書換回数が規定回数に達したブロック)のデータを消去することにより、データを書換回数のより少ないブロックに移動させて、各ブロックの書替回数を均一化させるようになされたものが提案されている(例えば特許文献1参照)。
また、このようなブロック単位でデータの書き換えを行うメモリカードの場合、図6に示すようなアドレスマップを有したものがある。ちなみに、ここでは、1セグメントが512個のブロックで構成され、さらに各ブロックが64ページ分のデータを記憶し得るようになされたフラッシュメモリを例に説明する。
この図6に示すアドレスマップは、フラッシュメモリの各ブロックB0、B1、…、B511と物理アドレスとを対応付けてアドレス順に並べたものであり、先頭ブロックB0から所定ブロックBnまでの複数ブロックが、上述のウェアレベリング処理を実行するファームウェアや各種管理情報等を記憶するシステム領域として割り当てられ、またこのシステム領域外の所定ブロックBn+1から最終ブロックB511までの複数ブロックが、外部機器から供給されるデータ等を記憶するデータ領域として割り当てられている。
このうちデータ領域には、外部機器から供給されるデータを記憶するブロック(以下、これをデータブロックとも呼ぶ)とは別の任意ブロックに、メモリカードで扱うデータに対する論理アドレスと各ブロックB0、B1、…、B511に割り当てられた物理アドレスとを対応付けた情報(以下、これを論物変換情報とも呼ぶ)が記憶されており、この論物変換情報が記憶された任意ブロックを、以下、BMAPと呼ぶことにする。
ここで、この論物変換情報は、データブロックに対してデータが書き込まれる毎に更新する必要がある。このため、このメモリカードでは、図7に示すように、データブロックに対してデータを書き込む毎に、BMAPの先頭ページP0から順にページ単位で論物変換情報を追記していくようになされている。
さらにメモリカードは、BMAPの最終ページP63に論物変換情報が書き込まれた状態で、データブロックに対してデータを書き込むと、図8に示すように、このBMAPとは別の任意ブロック(アドレス)に新BMAPを作成して、この新BMAPの先頭ページP0に新たな論物変換情報を書き込み、さらに旧BMAP(すなわち最終ページP63に論物変換情報が記憶されたブロック)を消去することにより、BMAPを別の任意ブロック(アドレス)に移動させるようにもなされている。
一方、システム領域(図6)には、予め設定された2個の所定ブロックに、BMAPに割り当てられている物理アドレス(ブロック)を管理するための情報(以下、これをBMAPアドレス情報とも呼ぶ)等の管理情報が記憶されており、これら2個の所定ブロックを、以下、それぞれ第1のSMAP、第2のSMAPと呼ぶことにする。
ここで、このBMAPアドレス情報は、BMAPが別のブロックに移動される毎に更新する必要がある。また、このBMAPアドレス情報は、メモリカードがフラッシュメモリへのアクセスを行う際に必要となる情報である。
このため、このメモリカードでは、図9に示すように、BMAPを別のブロックに移動させる毎に、第1のSMAPと、第2のSMAPとを交互に用いて、ページ単位でBMAPアドレス情報を追記していくようになされている。つまり、このメモリカードは、BMAPを新たなブロックに移動させる毎に、第1のSMAPの先頭ページP01、第2のSMAPの先頭ページP02、第1のSMAPの次ページP11、第2のSMAPの次ページP12、…の順でBMAPアドレス情報を追記していく。
さらにメモリカードは、第1のSMAPの最終ページP631に過去のBMAPアドレス情報が記憶されていると共に、第2のSMAPの最終ページP632に現在のBMAPアドレス情報が記憶されている状態で、BMAPを別のブロックに移動させると、図10に示すように、第1のSMAP及び第2のSMAPとは別の所定ブロック(アドレス)に新第1のSMAPを作成して、この新第1のSMAPの先頭ページP01に新たなBMAPアドレス情報を書き込み、さらに旧第1のSMAP(すなわち最終ページP631にBMAPアドレス情報が記憶されたブロック)を消去することで、第1のSMAPを別の所定ブロック(アドレス)に移動させるようになされている。
さらにこの状態で、BMAPを新たなブロックに移動させると、メモリカードは、第1のSMAP及び第2のSMAPとは別の所定ブロック(アドレス)に新第2のSMAPを作成して、この新第2のSMAPの先頭ページP02に新たなBMAPアドレス情報を書き込み、さらに旧第2のSMAP(すなわち最終ページP632にBMAPアドレス情報が記憶されたブロック)を消去することで、第2のSMAPを別の所定ブロック(アドレス)に移動させるようになされている。
このようにしてメモリカードは、第1のSMAP及び第2のSMAPの2ブロックを用いて、これら第1のSMAP及び第2のSMAPに対して交互にBMAPアドレス情報を追記するようにしたことにより、例えば第1のSMAPに対する新たなBMAPアドレス情報の書き込みが失敗して、この新たなBMAPアドレス情報が壊れた場合でも、このとき第2のSMAPに記憶されている1つ前のBMAPアドレス情報を参照することができるので、フラッシュメモリにアクセスできない状態を回避することができるようになされている。
かくして、このようなアドレスマップを有するメモリカードでは、システム領域の第1のSMAP又は第2のSMAPを参照して、データ領域のBMAPに割り当てられている物理アドレス(ブロック)を特定し、さらにこの特定した物理アドレス(ブロック)をもとにBMAPを参照して、書き込まれたデータの論理アドレスに対応する物理アドレス(ブロック)を特定することにより、書き込まれたデータの記憶位置を管理するようになされている。
特開2003−203016公報(第5頁)
しかしながら、このようなアドレスマップを有する従来のメモリカードの場合、特定の状況下において、上述した、旧BMAPを消去する消去処理と、旧第1のSMAP又は旧第2のSMAPを消去する消去処理と、ウェアレベリング処理時の旧データブロックのデータを消去する消去処理とが、連続的に実行される場合があり、この場合、負荷の大きな消去処理が重なることで、メモリカードの動作速度(すなわちパフォーマンス)が、一時的ではあるものの急激に低下するという問題が生じる。
このような問題が起こり得る状況を、メモリカードの制御部がフラッシュメモリに対して行う従来の書換処理手順と共に説明する。図11のフローチャートに示すように、メモリカードの制御部は、この書換処理手順RT100を、ステップSP100から開始する。
ステップSP100においてメモリカードの制御部は、外部機器から供給されたデータを、データ領域のデータブロックに書き込み、次のステップSP101に移る。
ステップSP101においてメモリカードの制御部は、BMAPの最終ページに現在の論物変換情報が書き込まれているか否かを判定する。ここで否定結果を得ると、このことは、現在のBMAPに、まだ新たな論物変換情報を追記し得るページが残っていることを表しており、このときメモリカードの制御部は、ステップSP102に移り、ステップSP100でのデータの書き込みに応じた新たな論物変換情報を、現在のBMAPに追記して、次のステップSP105に移る。
これに対してステップSP101で肯定結果を得ると、このことは、現在のBMAPに、新たな論物変換情報を追記し得るページが残っていないことを表しており、このときメモリカードの制御部は、ステップSP103に移る。
ステップSP103においてメモリカードの制御部は、現在のBMAPとは別の任意ブロックに新BMAPを作成し、この新BMAPの先頭ページに新たな論物変換情報を書き込み、次のステップSP104に移る。
ステップSP104においてメモリカードの制御部は、旧BMAP(すなわち最終ページに論物変換情報が記憶されたブロック)に書き込まれている過去の論物変換情報を消去することにより、旧BMAPを消去して、次のステップSP105に移る。
ステップSP105においてメモリカードの制御部は、このとき新たなBMAPアドレス情報を追記する番となる例えば第1のSMAPの最終ページに現在のBMAPアドレス情報が書き込まれているか否かを判定する。ちなみに、このステップSP105では、説明の便宜上、ステップSP103で新BMAPが作成された場合とする。
ここで否定結果を得ると、このことは、現在の第1のSMAPに、まだ新たなBMAPアドレス情報を追記し得るページが残っていることを表しており、このときメモリカードの制御部は、ステップSP106に移り、ステップSP103での新BMAPの作成に応じた新たなBMAPアドレス情報を、現在の第1のSMAPに追記して、次のステップSP109に移る。
これに対してステップSP105で肯定結果を得ると、このことは、現在の第1のSMAPに、新たなBMAPアドレス情報を追記し得るページが残っていないことを表しており、このときメモリカードの制御部は、ステップSP107に移る。
ステップSP107においてメモリカードの制御部は、現在の第1のSMAP及び第2のSMAPとは別の所定ブロックに新第1のSMAPを作成し、この新第1のSMAPの先頭ページに新たなBMAPアドレス情報を書き込み、次のステップSP108に移る。
ステップSP108においてメモリカードの制御部は、旧第1のSMAP(すなわち最終ページにBMAPアドレス情報が記憶されたブロック)に書き込まれている過去のBMAPアドレス情報を消去することにより、この旧第1のSMAPを消去して、次のステップSP109に移る。
ステップSP109においてメモリカードの制御部は、ウェアレベリング処理を実行するタイミングであるか否かを判定する。ここで否定結果を得ると、メモリカードの制御部は、ウェアレベリング処理を実行せずにステップSP112に移り、肯定結果を得ると、ステップSP110に移る。
ステップSP110においてメモリカードの制御部は、書換回数が規定回数に達したデータブロックに書き込まれているデータを、書換回数のより少ない別のデータブロックに書き込み、次のステップSP111に移る。
ステップSP111においてメモリカードの制御部は、旧データブロック(すなわち書換回数が規定回数に達したブロック)のデータを消去して、次のステップSP112に移り、一連の書換処理手順RT1を終了する。
ここで、上述した特定の状況下とは、書換処理手順RT100のステップSP101、SP105、SP109の全てで肯定結果が得られた場合のことであり、このときメモリカードでは、旧BMAPの消去処理(SP104)と、旧第1のSMAPの消去処理(SP108)と、ウェアレベリング処理時の旧データブロックの消去処理(SP111)とを、短時間に連続して実行することになり、この結果、動作速度が急激に低下する。
このように従来のメモリカードでは、特定の状況下において、動作速度が急激に低下するという問題があった。
本発明は以上の点を考慮してなされたもので、動作速度の急激な低下を防止し得る半導体記憶装置及びその制御方法を提案しようとするものである。
かかる課題を解決するため本発明においては、データを記憶する複数のデータ記憶ブロックと、当該データを記憶した複数のデータ記憶ブロックのアドレスを示すアドレス情報を記憶するアドレス情報記憶ブロックと、当該アドレス情報記憶ブロックのアドレスを管理するための管理情報を記憶する管理情報記憶ブロックとを有する不揮発性メモリと、アドレス情報記憶ブロックの空き容量が無くなった場合に当該アドレス情報記憶ブロックとは別のアドレスに新たなアドレス情報記憶ブロックを作成する第1の作成処理と、当該第1の作成処理実行後に空き容量が無くなったアドレス情報記憶ブロックの内容を消去する第1の消去処理と、管理情報記憶ブロックの空き容量が無くなった場合に当該管理情報記憶ブロックとは別のアドレスに新たな管理情報記憶ブロックを作成する第2の作成処理と、当該第2の作成処理実行後に空き容量が無くなった管理情報記憶ブロックの内容を消去する第2の消去処理と、データ記憶ブロックに記憶したデータを別のデータ記憶ブロックに記憶して、元のデータ記憶ブロックの内容を消去するウェアレベリング処理とを実行する制御手段とを設け、この制御手段が、第1の消去処理、第2の消去処理、及びウェアレベリング処理のそれぞれを時間をずらして実行するようにした。
これにより、負荷の大きい、第1の消去処理と、第2の消去処理と、ウェアレベリング処理の消去処理とが短時間に連続して実行されることを回避することができる。
本発明によれば、データを記憶する複数のデータ記憶ブロックと、当該データを記憶した複数のデータ記憶ブロックのアドレスを示すアドレス情報を記憶するアドレス情報記憶ブロックと、当該アドレス情報記憶ブロックのアドレスを管理するための管理情報を記憶する管理情報記憶ブロックとを有する不揮発性メモリと、アドレス情報記憶ブロックの空き容量が無くなった場合に当該アドレス情報記憶ブロックとは別のアドレスに新たなアドレス情報記憶ブロックを作成する第1の作成処理と、当該第1の作成処理実行後に空き容量が無くなったアドレス情報記憶ブロックの内容を消去する第1の消去処理と、管理情報記憶ブロックの空き容量が無くなった場合に当該管理情報記憶ブロックとは別のアドレスに新たな管理情報記憶ブロックを作成する第2の作成処理と、当該第2の作成処理実行後に空き容量が無くなった管理情報記憶ブロックの内容を消去する第2の消去処理と、データ記憶ブロックに記憶したデータを別のデータ記憶ブロックに記憶して、元のデータ記憶ブロックの内容を消去するウェアレベリング処理とを実行する制御手段とを設け、この制御手段が、第1の消去処理、第2の消去処理、及びウェアレベリング処理のそれぞれを時間をずらして実行するようにしたことにより、負荷の大きい、第1の消去処理と、第2の消去処理と、ウェアレベリング処理の消去処理とが短時間に連続して実行されることを回避することができるので、動作速度の急激な低下を防止し得る半導体記憶装置及びその制御方法を実現することができる。
以下図面について、本発明の一実施の形態を詳述する。
(1)メモリカードの構成
図1において、1は全体としてメモリカードを示し、複数のフラッシュメモリ2A、2B、…からなるメモリ部2と、当該メモリ部2を制御するコントローラ部3とを有している。なお、ここでは、説明の便宜上、複数のフラッシュメモリ2A、2B、…のうちのフラッシュメモリ2Aを中心に説明する。
図1において、1は全体としてメモリカードを示し、複数のフラッシュメモリ2A、2B、…からなるメモリ部2と、当該メモリ部2を制御するコントローラ部3とを有している。なお、ここでは、説明の便宜上、複数のフラッシュメモリ2A、2B、…のうちのフラッシュメモリ2Aを中心に説明する。
コントローラ部3では、制御をつかさどるMPU(Micro Processing Unit)4に対して、命令レジスタ等からなるレジスタ部5と、誤り訂正処理等を実行するECC(Error Correcting Circuit)部6と、フラッシュメモリ2Aに対して読み書きされるデータが一時記憶されるデータバッファ部7とが接続される。またこのコントローラ部3は、MC内部クロック(メモリカード内部クロック)を生成するためのクロック生成部8を有している。
データバッファ部7は、所定のバス9を介して、シリアルインターフェース部10及びパラレルインターフェース部11と接続される。そして外部機器から供給されるデータが、所定ライン(DATA0〜DATA3)及びパラレルインターフェース部11、又は(DATA0)及びシリアルインターフェース部10を順次介してデータバッファ部7に一次記憶され、MPU4は、このデータバッファ部7に一次記憶されたデータを、フラッシュメモリ2Aに対して書き込むようになされている。
またこのメモリカード1に対しては、所定ライン(VSS、VCC)を介して、外部機器から電源が供給される。さらにこのメモリカード1には、外部機器から供給されるデータを取り込むために必要となるクロックが入力されるライン(SCLK)や、外部機器に対してこのメモリカード1が正常に装着されているか否かを判断するための信号が入力されるライン(INS)や、外部機器から供給されるデータの向きを判断するための信号が入力されるライン(BS)等も設けられている。
ここでフラッシュメモリ2Aについて、さらに詳しく説明する。このフラッシュメモリ2Aは、ブロック単位でデータの書き換えを行うNAND型であり、1セグメントが512個のブロックで構成され、さらに各ブロックが64ページ(1ページが2Kbyte)分のデータを記憶し得るようになされている。
またこのフラッシュメモリ2Aは、従来と同様、図6に示すようなアドレスマップを有しており、先頭ブロックB0から所定ブロックBnまでの複数ブロックが、ウェアレベリング処理を実行するためのファームウェアやBMAPアドレス情報等を記憶するシステム領域として用いられ、またこのシステム領域外の所定ブロックBn+1から最終ブロックB511までの複数ブロックが、論物変換情報や外部機器から供給されるデータ等を記憶するデータ領域として用いられるようになされている。
このうちシステム領域には、BMAPアドレス情報を記憶する第1のSMAP及び第2のSMAPが2個の所定ブロックに割り当てられ、データ領域には、データを記憶するデータブロックが複数の任意ブロックに割り当てられていると共に、これらデータブロックとは別の任意ブロックに論物変換情報を記憶するBMAPが割り当てられている。
またBMAPには、データブロックに対してデータが書き込まれる毎に、MPU4によって、先頭ページから順にページ単位で論物変換情報が追記されるようになされている。さらにMPU4は、BMAPの最終ページに論物変換情報が書き込まれた状態(この状態を、BMAPの空き容量が無くなった状態とする)で、データブロックに対してデータを書き込むと、このBMAPとは別の任意ブロック(アドレス)に新BMAPを作成して、この新BMAPに新たな論物変換情報を書き込むことにより、BMAPを別のブロックに移動させるようにもなされている。
さらに、このようにしてBMAPが別のブロックに移動する毎に、第1のSMAP及び第2のSMAPには、MPU4によって、ページ単位で交互にBMAPアドレス情報が追記されるようになされている。さらにMPU4は、例えば新たなBMAPアドレス情報を追記する番となる第1のSMAPの最終ページにBMAPアドレス情報が書き込まれた状態(この状態を、第1のSMAPの空き容量が無くなった状態とする)で、BMAPを別のブロックへ移動させると、これら第1のSMAP及び第2のSMAPとは別の所定ブロック(アドレス)に新第1のSMAPを作成して、この新第1のSMAPに新たなBMAPアドレス情報を書き込むことにより、第1のSMAPを別の所定ブロックへ移動させるようにもなされている。
また同様にMPU4は、新たなBMAPアドレス情報を追記する番となる第2のSMAPの最終ページにBMAPアドレス情報が書き込まれた状態(すなわち第2のSMAPの空き容量が無くなった状態)で、BMAPを別のブロックへ移動させると、これら第1のSMAP及び第2のSMAPとは別の所定ブロック(アドレス)に新第2のSMAPを作成して、この新第2のSMAPに新たなBMAPアドレス情報を書き込むことにより、第2のSMAPを別の所定ブロックに移動させるようにもなされている。
かくして、コントローラ部3のMPU4は、システム領域の第1のSMAP及び第2のSMAPを参照して、データ領域のBMAPに割り当てられている物理アドレス(ブロック)を特定し、さらにこの特定した物理アドレス(ブロック)をもとにBMAPを参照して、書き込まれたデータの論理アドレスに対応する物理アドレス(ブロック)を特定することにより、書き込まれたデータの記憶位置を管理するようになされている。
また、フラッシュメモリ2Aの各ブロックには書換保証回数が設定されており、データの書換回数がこの書換保証回数を超えたブロックは、不良ブロックとして扱われ、この不良ブロックの数が所定数に達すると、フラッシュメモリ2Aが使用不可となる。
このため、コントローラ部3のMPU4は、書換回数が規定回数(書換保証回数よりも少ない回数とする)に達したデータブロックに書き込まれているデータを、書換回数のより少ない別のデータブロックに書き込むと共に、旧データブロック(すなわち書換回数が規定回数に達したデータブロック)のデータを消去することにより、データを書換回数のより少ないデータブロックに移動させて、各ブロックの書替回数を均一化させるウェアレベリング処理を実行するようにもなされている。
(2)各ブロックに対する消去処理
ところで、図6に示すようなアドレスマップでデータの記憶位置を管理するメモリカード1では、BMAPや第1のSMAP及び第2のSMAPの移動後に残る旧BMAPや旧第1のSMAP及び旧第2のSMAPを消去する必要があり、実際上、旧BMAPの消去処理と、旧第1のSMAP及び旧第2のSMAPの消去処理と、上述のウェアレベリング処理での旧データブロックを消去する消去処理とを実行することになる。
ところで、図6に示すようなアドレスマップでデータの記憶位置を管理するメモリカード1では、BMAPや第1のSMAP及び第2のSMAPの移動後に残る旧BMAPや旧第1のSMAP及び旧第2のSMAPを消去する必要があり、実際上、旧BMAPの消去処理と、旧第1のSMAP及び旧第2のSMAPの消去処理と、上述のウェアレベリング処理での旧データブロックを消去する消去処理とを実行することになる。
ここで、仮に、これらの消去処理が連続して実行されたとすると、従来と同様、メモリカード1の動作速度は急激に低下することになる。そこで、本実施の形態のメモリカード1では、これらの消去処理をずらして実行するようになされており、以下、どのようにして、これらの消去処理をずらすのかを詳しく説明する。
まず、メモリカード1では、図2(A)及び(B)に示すように、旧BMAPの消去処理を、新BMAPの作成後すぐに実行するのではなく、新BMAPの所定ページ(例えば中間となる32ページ目のページP31)まで論物変換情報が追記された段階で実行するようにした。
実際上、メモリカード1では、新BMAPの作成後(すなわちBMAPの移動後)すぐに第1のSMAP又は第2のSMAPに対して新たなBMAPアドレス情報の追記が行われる。このとき、追記する番となる例えば第1のSMAPの最終ページに過去のBMAPアドレス情報が書き込まれている場合には、新第1のSMAPの作成と、これに伴う旧第1のSMAPの消去とが行われる。
従って、旧BMAPの消去処理を、新BMAPの作成後すぐに実行するのではなく、新BMAPの所定ページまで論物変換情報が書き込まれた段階で実行するようにするようにしたことにより、旧BMAPの消去処理と、旧第1のSMAP又は第2のSMAPの消去処理とが連続して実行されることを回避することができる。
さらに、これら旧BMAPの消去処理や、旧第1のSMAP及び旧第2のSMAPの消去処理の直後では、ウェアレベリング処理を実行しないようにした。これにより、旧BMAP、旧第1のSMAP及び旧第2のSMAPの消去処理と、ウェアレベリング処理での旧データブロックの消去処理とが短時間に連続して実行されることを回避することができる。
このようにしてメモリカード1では、旧BMAPの消去処理と、旧第1のSMAP及び旧第2のSMAPの消去処理と、ウェアレベリング処理での旧データブロックを消去する消去処理とをずらして実行することにより、旧BMAPの消去処理と、旧第1のSMAP及び旧第2のSMAPの消去処理と、ウェアレベリング処理での旧データブロックの消去処理とが短時間に連続して実行されることを回避することができる。
さらにこのメモリカード1では、図3に示すように、第2のSMAPに対するBMAPアドレス情報の書き込みを、先頭ページP02からではなく、所定ページ(例えば中間となる32ページ目のページP312)から行うようにした。つまり、このメモリカード1では、BMAPを移動させる毎に、第1のSMAPの先頭ページP01、第2のSMAPのページP312、第1のSMAPの次ページP11、第2のSMAPの次ページP322、…の順でBMAPアドレス情報を追記するようにした。
これにより、第2のSMAPの最終ページP632にBMAPアドレス情報が書き込まれてから、第1のSMAPの最終ページP631にBMAPアドレス情報が書き込まれるまでの時間を、第1のSMAP及び第2のSMAPのそれぞれの先頭ページP01及びP02から交互に追記していく場合よりも長くすることができる。
この結果、旧第1のSMAPの消去処理と旧第2のSMAPの消去処理との間隔をより長くすることができるので、メモリカード1に対する処理負荷をさらに分散させることができる。
(3)書換処理手順
ここで、各消去処理を実行するタイミングを、メモリカード1のMPU4がフラッシュメモリ2Aに対して行う書換処理手順と共に説明する。図4のフローチャートに示すように、メモリカード1のMPU4は、この書換処理手順RT1を、ステップSP1から開始する。
ここで、各消去処理を実行するタイミングを、メモリカード1のMPU4がフラッシュメモリ2Aに対して行う書換処理手順と共に説明する。図4のフローチャートに示すように、メモリカード1のMPU4は、この書換処理手順RT1を、ステップSP1から開始する。
ステップSP1においてMPU4は、外部機器から供給されたデータを、データ領域のデータブロックに書き込み、次のステップSP2に移る。
ステップSP2においてMPU4は、BMAPの最終ページに現在の論物変換情報が書き込まれているか否かを判定する。ここで否定結果を得ると、このときMPU4は、ステップSP3に移り、ステップSP1でのデータの書き込みに応じた新たな論物変換情報を現在のBMAPに追記して、次のステップSP5に移る。これに対してステップSP2で肯定結果を得ると、このときMPU4はステップSP4に移る。
ステップSP4においてMPU4は、現在のBMAPとは別の任意ブロックに新BMAPを作成し、この新BMAPの先頭ページに新たな論物変換情報を書き込み、次のステップSP5に移る。
ステップSP5においてMPU4は、このとき新たなBMAPアドレス情報を追記する番となる例えば第1のSMAPの最終ページに現在のBMAPアドレス情報が書き込まれているか否かを判定する。ちなみに、このステップSP5では、説明の便宜上、ステップSP4で新BMAPが作成された場合とする。
ここで肯定結果を得ると、このときMPU4は、ステップSP6に移り、現在の第1のSMAP及び第2のSMAPとは別の所定ブロックに新第1のSMAPを作成して、この新第1のSMAPの先頭ページに新たなBMAPアドレス情報を書き込んだ後、次のステップSP7で旧第1のSMAPを消去し、次のステップSP15に移る。
これに対してステップSP5で否定結果を得ると、このときMPU4は、ステップSP8に移り、旧BMAPを消去する必要があるか否かを判定する。ここで肯定結果を得ると、このことは、BMAPが移動され、かつ新BMAPの所定ページまで論物変換情報が追記されたことを表しており、このときMPU4は、ステップSP9に移り、旧BMAPを消去した後、次のステップSP10で、新たなBMAPアドレス情報を、現在の第1のSMAPに追記して、次のステップSP15に移る。
これに対してステップSP8で否定結果を得ると、このときMPU4は、旧BMAPの消去処理を実行せずにステップSP11に移り、新たなBMAPアドレス情報を現在の第1のSMAPに追記して、次のステップSP12に移る。
ステップSP12においてMPU4は、ウェアレベリング処理を実行するタイミングであるか否かを判定する。ここで否定結果を得ると、MPU4は、ウェアレベリング処理を実行せずにステップSP15に移り、肯定結果を得ると、ステップSP13に移る。
ステップSP13においてMPU4は、書換回数が規定回数に達したデータブロックに書き込まれているデータを、書換回数のより少ない別のデータブロックに書き込み、次のステップSP14に移る。
ステップSP14においてMPU4は、旧データブロック(すなわち書換回数が規定回数に達したブロック)のデータを消去して、次のステップSP15に移り、一連の書換処理手順RT1を終了する。
このような書換処理手順RT1を実行することで、メモリカード1では、旧BMAPの消去処理(ステップSP9)と、第1のSMAP又は第2のSMAPの消去処理(ステップSP7)と、ウェアレベリング処理での旧データブロックを消去する消去処理(ステップSP14)とを短時間に連続して実行する状況が起こり得ないようになされている。
(4)動作及び効果
以上の構成においてメモリカード1は、旧BMAPの消去処理を、新BMAPの作成後すぐに実行するのではなく、新BMAPの所定ページに論物変換情報が書き込まれた段階で実行する。
以上の構成においてメモリカード1は、旧BMAPの消去処理を、新BMAPの作成後すぐに実行するのではなく、新BMAPの所定ページに論物変換情報が書き込まれた段階で実行する。
これにより、新BMAPの作成後(すなわちBMAPの移動後)すぐに実行される可能性のある旧第1のSMAP又は旧第2のSMAPの消去処理と、旧BMAPの消去処理とが短時間に連続して実行されることを回避することができる。
さらにメモリカード1は、旧BMAPの消去処理や、旧第1のSMAP及び旧第2のSMAPの消去処理の直後では、ウェアレベリング処理をスキップするようにした。これにより、旧BMAP、旧第1のSMAP及び旧第2のSMAPの消去処理と、ウェアレベリング処理での旧データブロックの消去処理とが短時間に連続して実行されることを回避することができる。
かくしてメモリカード1では、旧BMAPの消去処理と、旧第1のSMAP及び旧第2のSMAPの消去処理と、ウェアレベリング処理での旧データブロックの消去処理とが短時間に連続して実行されることを回避することができる。
この結果、図5(A)及び(B)にも示すように、メモリカード1では、フラッシュメモリ2Aに対する書込速度の落ち込みを、従来の約2分の1程度にまで抑えることができ、結果として、より高クロックで動作するMPU4やフラッシュメモリ2Aを用いることなく、最低動作速度を向上させることができる。
以上の構成によれば、このメモリカード1では、旧BMAPの消去処理と、旧第1のSMAP及び旧第2のSMAPの消去処理と、ウェアレベリング処理での旧データブロックの消去処理とを時間をずらして実行するようにしたことにより、負荷の大きい、旧BMAPの消去処理と、旧第1のSMAP及び旧第2のSMAPの消去処理と、ウェアレベリング処理での旧データブロックの消去処理とが短時間に連続して実行されることを回避することができるので、動作速度の急激な低下を防止することができる。
(5)他の実施の形態
なお上述の実施の形態においては、カード型の半導体記憶装置であるメモリカード1に本発明を適用した場合について述べたが、本発明はこれに限らず、不揮発性メモリを有する半導体記憶装置であれば、この他種々の半導体記憶装置に本発明を適用するようにしてもよい。
なお上述の実施の形態においては、カード型の半導体記憶装置であるメモリカード1に本発明を適用した場合について述べたが、本発明はこれに限らず、不揮発性メモリを有する半導体記憶装置であれば、この他種々の半導体記憶装置に本発明を適用するようにしてもよい。
また上述の実施の形態においては、不揮発性メモリとして、1セグメントが512ブロックで、1ブロックが64ページで構成されるNAND型のフラッシュメモリ2Aを用いた場合について述べたが、本発明はこれに限らず、複数のブロックで構成され、これら複数のブロックに対する消去処理を実行するものであれば、この他種々の構成でなる不揮発性メモリを用いてもよい。
さらに上述の実施の形態においては、図6のようなアドレスマップを用いた場合について述べたが、本発明はこれに限らず、論物変換情報を記憶するブロックと、BMAPアドレス情報等の管理情報を記憶するブロックと、データブロックとが割り当てられたアドレスマップであれば、この他種々のアドレスマップを用いるようにしてもよい。
さらに上述の実施の形態においては、BMAPアドレス情報を記憶するブロックであるSMAPが2つ(第1のSMAP及び第2のSMAP)設けられている場合について述べたが、本発明はこれに限らず、例えば、このSMAPが1つ、あるいは3つ以上設けられている場合でも、上述した方法で同様の効果を得ることができる。
さらに上述の実施の形態においては、ウェアレベリング処理として、書換回数が規定回数に達したデータブロックに書き込まれているデータを、書換回数のより少ない別のデータブロックに書き込むと共に、旧データブロック(すなわち書換回数が規定回数に達したデータブロック)のデータを消去することにより、データを書換回数のより少ないデータブロックに移動させる手法を用いた場合について述べたが、本発明はこれに限らず、この他種々の手法でなるウェアレベリング処理を実行するようにしてもよい。
さらに上述の第1の実施の形態においては、データを記憶するデータ記憶ブロックとしてのデータブロックや、データを記憶したデータブロックのアドレスを示すアドレス情報としての論物変換情報を記憶するアドレス情報記憶ブロックとしてのBMAPや、BMAPのアドレスを管理するための管理情報としてのBMAPアドレス情報を記憶する管理情報記憶ブロックとしてのSMAPを有するフラッシュメモリ2Aと、第1の消去処理としての旧BMAPの消去処理と第2の消去処理としての旧第1のSMAP及び旧第2のSMAPの消去処理とウェアレベリング処理とを実行する制御手段としてのMPU4とによって、メモリカード1を構成する場合について述べたが、本発明はこれに限らず、この他種々の構成でこのメモリカード1を構成するようにしてもよい。
本発明は、不揮発性メモリを有する半導体記憶装置に広く利用できる。
1……メモリカード、2……メモリ部、2A、2B……フラッシュメモリ、3……コントローラ部、4……MPU、5……レジスタ部、6……ECC部、7……データバッファ部、8……クロック生成部、9……バス、10……シリアルインターフェース部、11……パラレルインターフェース部。
Claims (8)
- データを記憶する複数のデータ記憶ブロックと、当該データを記憶した複数のデータ記憶ブロックのアドレスを示すアドレス情報を記憶するアドレス情報記憶ブロックと、当該アドレス情報記憶ブロックのアドレスを管理するための管理情報を記憶する管理情報記憶ブロックとを有する不揮発性メモリと、
上記アドレス情報記憶ブロックの空き容量が無くなった場合に当該アドレス情報記憶ブロックとは別のアドレスに新たな上記アドレス情報記憶ブロックを作成する第1の作成処理と、当該第1の作成処理実行後に上記空き容量が無くなったアドレス情報記憶ブロックの内容を消去する第1の消去処理と、上記管理情報記憶ブロックの空き容量が無くなった場合に当該管理情報記憶ブロックとは別のアドレスに新たな上記管理情報記憶ブロックを作成する第2の作成処理と、当該第2の作成処理実行後に上記空き容量が無くなった管理情報記憶ブロックの内容を消去する第2の消去処理と、上記データ記憶ブロックに記憶した上記データを別のデータ記憶ブロックに記憶して、元のデータ記憶ブロックの内容を消去するウェアレベリング処理とを実行する制御手段とを具え、
上記制御手段は、
上記第1の消去処理、上記第2の消去処理、及び上記ウェアレベリング処理のそれぞれを時間をずらして実行する
ことを特徴とする半導体記憶装置。 - 上記アドレス情報記憶ブロックは、
複数のページでなると共に、上記アドレス情報が当該ページ単位でページ番号順に記憶され、
上記制御手段は、
上記第1の作成処理実行後、すぐに上記新たなアドレス情報記憶ブロックのアドレスに基づいて上記第2の作成処理及び上記第2の消去処理を実行し、当該第2の消去処理実行後、上記アドレス情報記憶ブロックの所定ページに上記アドレス情報を記憶した段階で、上記第1の消去処理を実行する
ことを特徴とする請求項1に記載の半導体記憶装置。 - 上記制御手段は、
上記第1の消去処理及び上記第2の消去処理を実行する際には、上記ウェアレベリング処理を実行しない
ことを特徴とする請求項2に記載の半導体記憶装置。 - 上記不揮発性メモリは、
第1の上記管理情報記憶ブロックと第2の上記管理情報記憶ブロックとを有し、
上記第1の管理情報記憶ブロック及び上記第2の管理情報記憶ブロックのそれぞれは、
複数のページでなると共に、上記管理情報が当該ページ単位で記憶され、
上記制御手段は、
上記第1の管理情報記憶ブロックと上記第2の管理情報記憶ブロックとに、上記管理情報を記憶するページを所定ページ番号分だけずらして、当該管理情報を交互に記憶させる
ことを特徴とする請求項1に記載の半導体記憶装置。 - データを記憶する複数のデータ記憶ブロックと、当該データを記憶した複数のデータ記憶ブロックのアドレスを示すアドレス情報を記憶するアドレス情報記憶ブロックと、当該アドレス情報記憶ブロックのアドレスを管理するための管理情報を記憶する管理情報記憶ブロックとを有する不揮発性メモリを具えた半導体記憶装置の制御方法において、
上記アドレス情報記憶ブロックの空き容量が無くなった場合に当該アドレス情報記憶ブロックとは別のアドレスに新たな上記アドレス情報記憶ブロックを作成する第1の作成処理と、当該第1の作成処理実行後に上記空き容量が無くなったアドレス情報記憶ブロックの内容を消去する第1の消去処理と、上記管理情報記憶ブロックの空き容量が無くなった場合に当該管理情報記憶ブロックとは別のアドレスに新たな上記管理情報記憶ブロックを作成する第2の作成処理と、当該第2の作成処理実行後に上記空き容量が無くなった管理情報記憶ブロックの内容を消去する第2の消去処理と、上記データ記憶ブロックに記憶した上記データを別のデータ記憶ブロックに記憶して、元のデータ記憶ブロックの内容を消去するウェアレベリング処理とを実行する際、上記第1の消去処理、上記第2の消去処理、及び上記ウェアレベリング処理のそれぞれを時間をずらして実行する
ことを特徴とする半導体記憶装置の制御方法。 - 上記アドレス情報記憶ブロックは複数のページでなり、当該アドレス情報記憶ブロックには、上記アドレス情報を当該ページ単位でページ番号順に記憶するようにし、
上記第1の作成処理実行後、すぐに上記新たなアドレス情報記憶ブロックのアドレスに基づいて上記第2の作成処理及び上記第2の消去処理を実行し、当該第2の消去処理実行後、上記アドレス情報記憶ブロックの所定ページに上記アドレス情報を記憶した段階で、上記第1の消去処理を実行する
ことを特徴とする請求項5に記載の半導体記憶装置の制御方法。 - 上記第1の消去処理及び上記第2の消去処理を実行する際には、上記ウェアレベリング処理を実行しない
ことを特徴とする請求項6に記載の半導体記憶装置の制御方法。 - 上記不揮発性メモリは、
第1の上記管理情報記憶ブロックと第2の上記管理情報記憶ブロックとを有し、
上記第1の管理情報記憶ブロック及び上記第2の管理情報記憶ブロックのそれぞれは複数のページでなり、当該第1の管理情報記憶ブロック及び当該第2の管理情報記憶ブロックのそれぞれには、上記管理情報を当該ページ単位で記憶するようにし、
上記第1の管理情報記憶ブロックと上記第2の管理情報記憶ブロックとに、上記管理情報を記憶するページを所定ページ番号分だけずらして、当該管理情報を交互に記憶する
ことを特徴とする請求項5に記載の半導体記憶装置の制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005006661A JP2006195736A (ja) | 2005-01-13 | 2005-01-13 | 半導体記憶装置及びその制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005006661A JP2006195736A (ja) | 2005-01-13 | 2005-01-13 | 半導体記憶装置及びその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006195736A true JP2006195736A (ja) | 2006-07-27 |
Family
ID=36801784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005006661A Pending JP2006195736A (ja) | 2005-01-13 | 2005-01-13 | 半導体記憶装置及びその制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006195736A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008018258A1 (fr) * | 2006-08-09 | 2008-02-14 | Hitachi Ulsi Systems Co., Ltd. | Dispositif de stockage |
KR100824412B1 (ko) | 2006-12-08 | 2008-04-22 | 삼성전자주식회사 | 메모리 카드 시스템 및 그것의 수명 정보 전송 방법 |
JP2009055457A (ja) * | 2007-08-28 | 2009-03-12 | Ricoh Co Ltd | 画像形成装置、画像形成方法、およびプログラム |
US7565478B2 (en) | 2005-01-20 | 2009-07-21 | Sandisk Corporation | Scheduling of housekeeping operations in flash memory systems |
-
2005
- 2005-01-13 JP JP2005006661A patent/JP2006195736A/ja active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7565478B2 (en) | 2005-01-20 | 2009-07-21 | Sandisk Corporation | Scheduling of housekeeping operations in flash memory systems |
JP2009282989A (ja) * | 2005-01-20 | 2009-12-03 | Sandisk Corp | フラッシュメモリシステムにおけるハウスキーピング操作のスケジューリング |
US8364883B2 (en) | 2005-01-20 | 2013-01-29 | Sandisk Technologies Inc. | Scheduling of housekeeping operations in flash memory systems |
WO2008018258A1 (fr) * | 2006-08-09 | 2008-02-14 | Hitachi Ulsi Systems Co., Ltd. | Dispositif de stockage |
US8205034B2 (en) | 2006-08-09 | 2012-06-19 | Hitachi Ulsi Systems Co., Ltd. | Flash memory drive having data interface |
US8504762B2 (en) | 2006-08-09 | 2013-08-06 | Hitachi Ulsi Systems Co., Ltd. | Flash memory storage device with data interface |
KR100824412B1 (ko) | 2006-12-08 | 2008-04-22 | 삼성전자주식회사 | 메모리 카드 시스템 및 그것의 수명 정보 전송 방법 |
JP2009055457A (ja) * | 2007-08-28 | 2009-03-12 | Ricoh Co Ltd | 画像形成装置、画像形成方法、およびプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10168913B2 (en) | Data storage device and data maintenance method thereof | |
WO2007000862A1 (ja) | メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法 | |
US8819332B2 (en) | Nonvolatile storage device performing periodic error correction during successive page copy operations | |
JP2012113343A (ja) | 記憶装置 | |
JP2007250101A (ja) | 不揮発性メモリ装置および不揮発性メモリ装置の制御方法 | |
JP2006195736A (ja) | 半導体記憶装置及びその制御方法 | |
JP4235646B2 (ja) | メモリコントローラおよびフラッシュメモリシステム | |
JP4308780B2 (ja) | 半導体メモリ装置、メモリコントローラ及びデータ記録方法 | |
JP4513786B2 (ja) | メモリコントローラ、メモリシステム及びメモリ制御方法 | |
JP4177292B2 (ja) | メモリンコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
KR100479170B1 (ko) | 메모리 억세스 제어장치 및 방법 | |
JP4818453B1 (ja) | 電子機器およびデータ読み出し方法 | |
JP2005092677A (ja) | メモリ装置 | |
JP4888333B2 (ja) | フラッシュディスク装置 | |
JP2009266125A (ja) | メモリシステム | |
JP4985108B2 (ja) | データ記憶装置およびその制御方法 | |
JP2009265839A (ja) | 記憶装置 | |
JP2008300018A (ja) | 不揮発性メモリおよびその書き換え方法 | |
JP2005174468A (ja) | フラッシュメモリのアクセス制御方法 | |
JP4304167B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4661086B2 (ja) | 不揮発性記憶装置および不揮発性メモリの消去方法と書込み方法 | |
JP2009134514A (ja) | メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム | |
JP2007304920A (ja) | フラッシュメモリ制御方法 | |
JP2004273117A (ja) | 複合化フラッシュメモリを搭載した半導体装置及び携帯用機器 | |
JP4366283B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム |