(57)【要約】【課題】  ドレインディスターブを大幅に低減し、メモリカードの信頼性を向上させる。【解決手段】  ホスト機器から読み出し要求があると、該当するアドレスのブロックから管理情報を読み出し、書き換え回数情報をカウントアップする。その後、管理部の書き換えストリングフラグ、および書き換え回数情報を参照し、書き換え多ストリング中の最も書き換え回数の少ないブロックと書き換え少ストリング中の最も書き換え回数の多いブロックとをそれぞれ検索し、それら２つのブロックと前回アドレス変換された２つのブロックとのアドレスが一致しているかを確認する。一致していなければ、検索した２つのブロックの書き換え回数を比較し、最も書き換え回数の少ないブロックが、最も書き換え回数の多いブロックの書き換え回数よりも少ない場合、２つのブロックのデータを入れ替えてアドレス変換を実行し、それらブロックのアドレスをアドレス管理部に格納する。【選択図】  図６
2006048746.tif 000002
【特許請求の範囲】
【請求項１】
複数の不揮発性メモリセルを有し、所定の情報を格納可能な不揮発性半導体メモリと、外部から発行されたコマンドに基づいて前記不揮発性半導体メモリの動作指示を行うコントローラとを有したメモリカードであって、
前記コントローラは、
ユーザデータが格納されるユーザデータ領域と、前記メモリカードの管理データが格納される管理領域と合わせたメモリアレイの全記憶領域において、書き換え回数または消去回数の多いデータ領域と、書き換え回数または消去回数の少ないデータ領域とを異なるサブビット線で接続されたストリングにそれぞれアロケーションして格納することを特徴とするメモリカード。
【請求項２】
請求項１記載のメモリカードにおいて、
前記メモリアレイは、
ある電圧レベルのしきい値電圧が複数設定され、２ビット以上のデータを記憶する不揮発性半導体メモリを有し、
前記コントローラは、
書き換え回数または消去回数の多いデータを多値書き込みし、書き換え回数または消去回数の少ないデータを２値書き込みすることを特徴とするメモリカード。
【請求項３】
請求項１または２記載のメモリカードにおいて、
前記データ領域は、管理情報として前記データ領域のデータ書き換え回数を示す書き換え回数情報と、ストリングの書き換えが多いか少ないかを示す書き換えストリングフラグとを有し、
前記コントローラは、
前記書き換えストリングフラグを参照して書き換えの多いストリングと書き換えの少ないストリングとを検索し、前記書き換え回数情報に基づいて比較し、書き換え回数の多いストリングの中で最も書き換え回数の少ないデータ領域の書き換え回数が、書き換え回数の少ないストリングの中で最も書き換え回数の多いデータ領域の書き換え回数よりも少ない場合にアロケーションを行うことを特徴とするメモリカード。
【請求項４】
請求項１〜３のいずれか１項に記載のメモリカードにおいて、
前記コントローラは、
アロケーションした前記データ領域の変換アドレスをそれぞれ格納するアドレス管理部を備えたことを特徴とするメモリカード。
【請求項５】
請求項１または２記載のメモリカードにおいて、
アロケーションされる前記データ領域は、ブロック単位よりなり、前記ブロックのデータは、異なるサブビット線にそれぞれ接続されたストリングに格納されることを特徴とするメモリカード。
【請求項６】
請求項５記載のメモリカードにおいて、
前記ブロックは、管理情報としてブロックのデータ書き換え回数を示す書き換え回数情報とストリングの書き換えが多いか少ないかを示す書き換えストリングフラグとを有し、
前記コントローラは、
前記書き換えストリングフラグを参照して書き換えの多いストリングと書き換えの少ないストリングとを検索し、前記書き換え回数情報に基づいて書き換えの多いストリング中の最も書き換え回数の少ないブロックと、書き換えの少ないストリング中の最も書き換え回数の多いブロックとをそれぞれ検索し、それら二つのブロックのアドレスと前回アドレス変換が行われた変換アドレスとを比較し、一致しなければ書き換え回数の多いストリングの中で最も書き換え回数の少ないブロックの書き換え回数が、書き換え回数の少ないストリングの中で最も書き換え回数の多いブロックの書き換え回数よりも少ない場合にアロケーションを行うことを特徴とするメモリカード。
【請求項７】
請求項５または６記載のメモリカードにおいて、
前記コントローラは、
アロケーションした前記ブロックの変換アドレスをそれぞれ格納するアドレス管理部を備えたことを特徴とするメモリカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリカードにおけるデータの信頼性向上技術に関し、特に、データ書き込み処理の中断発生によるデータのエラー検出、および訂正に適用して有効な技術に関するものである。
【背景技術】
【０００２】
パーソナルコンピュータや多機能端末機などの記憶装置として、たとえば、マルチメディアカードやＣＦ（Ｃｏｍｐａｃｔ  Ｆｌａｓｈ（Ｒ））カードなどのメモリカードが広く知られている。
【０００３】
近年の高性能化の要求に伴って、メモリカードに搭載される半導体メモリとして、たとえば、電気的に一括消去、書き換えが可能であり、大容量のデータを保持できるフラッシュメモリなどの不揮発性メモリが用いられている。
【０００４】
フラッシュメモリでは、データを格納する場合、書き換え回数が多いデータ（たとえば、ＦＡＴ（Ｆｉｌｅ  Ａｌｌｏｃａｔｉｏｎ  Ｔａｂｌｅ）やアドレス変換テーブルなど）と、書き換え回数の少ないデータ（リードオンリデータなど）とが同じストリング内のサブビット線に接続されたブロックに混載して格納されている。
【０００５】
また、この種のメモリカードにおけるデータ格納技術においては、たとえば、同一のストリング内で書き換え回数の少ないブロックを定期的に書き換えすることによってディスターブストレスを低減させる技術がある（特許文献１参照）。
【特許文献１】特願２００３−１０６３６０号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところが、上記のようなメモリカードにおけるデータ格納技術では、次のような問題点があることが本発明者により見い出された。
【０００７】
すなわち、データの書き換え回数の多いブロックとデータの書き換え回数の少ないブロックとが同一のサブビット線で隣接するようなアロケーション方式では、データの書き換え回数の少ないブロックが、データの書き換え回数の多いブロックからディスターブストレスを受けてしまい、データ書き込み時にドレインディスターブを引き起こしてしまうという問題がある。
【０００８】
本発明の目的は、メモリカードにおけるドレインディスターブを大幅に低減し、該メモリカードの信頼性を向上させることのできる技術を提供することにある。
【０００９】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１１】
本発明は  複数の不揮発性メモリセルを有し、所定の情報を格納可能な不揮発性半導体メモリと、外部から発行されたコマンドに基づいて該不揮発性半導体メモリの動作指示を行うコントローラとを有したメモリカードであって、該コントローラは、ユーザデータが格納されるユーザデータ領域と、メモリカードの管理データが格納される管理領域と合わせたメモリアレイの全記憶領域において、書き換え回数または消去回数の多いデータ領域と、書き換え回数または消去回数の少ないデータ領域とを異なるサブビット線で接続されたストリングにそれぞれアロケーションして格納するものである。
【００１２】
また、本発明のメモリカードは、前記メモリアレイが、ある電圧レベルのしきい値電圧が複数設定され、２ビット以上のデータを記憶する不揮発性半導体メモリを有し、コントローラは、書き換え回数または消去回数の多いデータを多値書き込みし、書き換え回数または消去回数の少ないデータを２値書き込みするものである。
【００１３】
さらに、本発明のメモリカードは、前記データ領域が、管理情報として該データ領域のデータ書き換え回数を示す書き換え回数情報と、ストリングの書き換えが多いか少ないかを示す書き換えストリングフラグとを有し、コントローラは、書き換えストリングフラグを参照して書き換えの多いストリングと書き換えの少ないストリングとを検索し、書き換え回数情報に基づいて比較し、書き換え回数の多いストリングの中で最も書き換え回数の少ないデータ領域の書き換え回数が、書き換え回数の少ないストリングの中で最も書き換え回数の多いデータ領域の書き換え回数よりも少ない場合にアロケーションを行うものである。
【００１４】
また、本発明のメモリカードは、前記コントローラが、アロケーションしたデータ領域の変換アドレスをそれぞれ格納するアドレス管理部を備えたものである。
【００１５】
また、本願のその他の発明の概要を簡単に示す。
【００１６】
本発明は、本発明のメモリカードは、アロケーションされる前記データ領域が、ブロック単位よりなり、該ブロックのデータは、異なるサブビット線にそれぞれ接続されたストリングに格納されるものである。
【００１７】
また、本発明のメモリカードは、前記ブロックが、管理情報としてブロックのデータ書き換え回数を示す書き換え回数情報とストリングの書き換えが多いか少ないかを示す書き換えストリングフラグとを有し、コントローラは、書き換えストリングフラグを参照して書き換えの多いストリングと書き換えの少ないストリングとを検索し、書き換え回数情報に基づいて比較し、書き換え回数の多いストリングの中で最も書き換え回数の少ないブロックの書き換え回数が、書き換え回数の少ないストリングの中で最も書き換え回数の多いブロックの書き換え回数よりも少ない場合にアロケーションを行うものである。
【００１８】
さらに、本発明のメモリカードは、前記コントローラが、アロケーションしたブロックの変換アドレスをそれぞれ格納するアドレス管理部を備えたものである。
【発明の効果】
【００１９】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００２０】
（１）データ書き換えの多いデータ領域とデータ書き換えの少ないデータ領域とを異なるサブビット線に接続されたストリングをそれぞれアロケーションすることにより、ディスターブによるデータ化けやブロックの不良化を低減することができる。
【００２１】
（２）また、アロケーションの際に書き換えの少ないデータを２値書き込みし、書き換えの多いデータを多値書き込みすることによって、ディスターブストレスを低減することができる。
【００２２】
（３）上記（１）、（２）により、メモリカードの信頼性を向上させることができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２４】
図１は、本発明の一実施の形態によるメモリカードのブロック図、図２は、図１のメモリカードに設けられたコントローラのブロック図、図３は、図１のメモリカードに設けられたフラッシュメモリにおけるメモリアレイの構成例を示す説明図、図４は、図３のメモリセルアレイにおける消去単位であるブロックの構成例を示す説明図、図５は、図４のブロックに設けられた管理部の構成例を示す説明図、図６は、図３のメモリセルアレイにおけるアロケーションが行われる対象となるブロックを示す説明図、図７は、図１のメモリカードにおける書き込み処理の一例を示すフローチャート、図８は、図７における多値／２値変換実行条件の確認処理例を示すフローチャート、図９は、図７の多値／２値変換処理の一例を示すフローチャート、図１０は、図６に続くアロケーション後のブロックを示す説明図、図１１は、図７のＷｅａｒ  Ｌｅｖｅｌｉｎｇ処理の一例を示すフローチャート、図１２は、本発明の一実施の形態による書き換え少ストリングにおけるデータリフレッシュ処理の一例を示すフローチャート、図１３は、本発明の一実施の形態によるメモリカードがリセット処理時に多値／２値変換処理を行う際の一例を示すフローチャートである。
【００２５】
本実施の形態において、メモリカード１は、図１に示すように、該メモリカード１の外部にホスト機器２が接続可能なようにされており、たとえば、デジタルビデオカメラ、携帯電話、携帯音楽プレーヤやパーソナルコンピュータなどのホスト機器２の外部記憶メディアとして用いられる。
【００２６】
メモリカード１は、フラッシュメモリ（不揮発性半導体メモリ）３に例示される不揮発性メモリ、ならびにコントローラ４から構成されている。フラッシュメモリ３は、たとえば、２ビット以上のデータを記憶させる多値記憶技術を用いた多値フラッシュメモリからなる。
【００２７】
このフラッシュメモリ３は、電気的にデータの書き換え、消去が可能な不揮発性半導体メモリからなる。ここでは、フラッシュメモリ３が１個の半導体メモリよりなる構成としたが、該半導体メモリは１つ以上であればよい。
【００２８】
コントローラ４は、図２に示すように、ホストインタフェース５、ＭＰＵ（ＭｉｃｒｏＰｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）６、バッファインタフェース７、データバッファ８、記憶部インタフェース９、およびアドレス管理部１０などから構成されている。
【００２９】
コントローラ４は、ホスト機器２と接続されており、フラッシュメモリ３の制御を司り、該フラッシュメモリ３に格納されたプログラムやデータなどを読み出してホスト機器２へ出力し、またはホスト機器２から入力されたプログラムやデータの書き込み動作指示を行う。
【００３０】
ホストインタフェース５は、ホスト機器２とＭＰＵ６とのインタフェースである。ＭＰＵ６は、コントローラ４におけるすべての制御を司る。バッファインタフェース７は、ＭＰＵ６とデータバッファ８とのインタフェースである。
【００３１】
また、データバッファ８は、たとえば、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などの揮発性メモリからなり、ＭＰＵ６に設けられたＣＰＵのワークエリアとしても用いられる。
【００３２】
記憶部インタフェース９は、ＭＰＵ６とフラッシュメモリ３とのインタフェースである。アドレス管理部１０は、書き換えされたブロックのアドレス管理を行う。
【００３３】
なお、アドレス管理部１０は、回路として持たず、たとえば、該アドレス管理部１０の機能をＭＰＵ６によるファームウェア処理によって代用する構成としてもよい。
【００３４】
図３は、フラッシュメモリ３におけるメモリアレイＭＡの構成例を示す説明図である。
【００３５】
メモリアレイＭＡは、図示するように、グローバルビット線ＧＢＬに複数のサブビット線ＳＢＬが接続され、それらサブビット線ＳＢＬに不揮発性メモリセルＳがそれぞれ接続された構成からなる。
【００３６】
また、ワード線Ｗには、複数の不揮発性メモリセルＳが接続されており、該ワード線Ｗに接続された複数の不揮発性メモリセルＳは一括消去することができ、これをブロック（消去単位）という。さらに、サブビット線ＳＢＬに共通接続された連なる複数のブロックをストリングという。
【００３７】
図４は、ストリング内に設けられたブロックの構成例を示す説明図である。
【００３８】
ブロックは、データ部Ｄ、および管理部Ｋから構成されている。データ部Ｄは、たとえば、８つのセクタからなり、ユーザデータを格納する。管理部Ｋは、そのブロックを管理する管理情報が格納される。
【００３９】
また、管理部Ｋは、図５に示すように、良ブロックコード１１、書き換え回数情報１２、ＥＣＣ情報１３、識別コード１４、および書き換えストリングフラグ１５などから構成されている。
【００４０】
良ブロックコード１１は、そのブロックが使用可能であるかを識別するコードである。書き換え回数情報１２は、そのブロックの書き換え回数を示す情報を格納する。ＥＣＣ情報１３は、データ部Ｄに格納されるデータを保護する。
【００４１】
識別コード１４は、そのブロックの属性や情報を示すコードである。書き換えストリングフラグ１５は、ストリングの書き換えが多いか少ないかを判断する情報であり、たとえば、ストリングの書き換え回数が多い場合には、’１’が格納され、ストリングの書き換え回数が少ない場合には、’０’が格納される。
【００４２】
図６は、アロケーションが行われる対象となるブロックを示す説明図である。
【００４３】
アロケーションの対象となるブロックは、図示するように、ユーザデータブロック、およびメモリ管理情報ブロックなどのブロックを含むメモリアレイＭＡの全ブロックである。
【００４４】
ユーザデータブロックは、ユーザがアクセス可能であり、ユーザデータなどが多値書き込みによって格納される。メモリ管理情報ブロックは、システムデータ（ＣＳＤ（Ｃａｒｄ  Ｓｐｅｃｉｆｉｃ  Ｄａｔａ）やＣＩＤ（Ｃａｒｄ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  Ｎｕｍｂｅｒ）などのカード固有の情報、いわゆるリードオンリデータ）などが２値書き込みによって格納される。
【００４５】
次に、本実施の形態におけるメモリカード１の書き込み処理について、図７のフローチャートを用いて説明する。
【００４６】
まず、ホスト機器２から書き込み要求があると、ＭＰＵ６は、フラッシュメモリ３の該当するアドレスのブロックから管理情報を読み出し（ステップＳ１０１）、書き換え回数情報１２の書き換え回数をカウントアップする（ステップＳ１０２）。
【００４７】
その後、多値／２値変換実行条件（図８）を満たすか否かを確認し（ステップＳ１０３）、多値／２値変換実行条件を満たす場合には、多値／２値変換処理（図９）を実行する（ステップＳ１０４）。
【００４８】
多値／２値変換実行条件を満たさない場合、またはステップＳ１０４の処理が終了すると、そのブロックの書き換え回数が予めパラメータなどで設定された規定値、またはその倍数であるか否かを確認する（ステップＳ１０５）。
【００４９】
ブロックの書き換え回数が規定値、またはその倍数の場合には、Ｗｅａｒ  Ｌｅｖｅｌｉｎｇ処理（図１０）を行う（ステップＳ１０６）。ステップＳ１０５の処理でブロックの書き換え回数が規定値、またはその倍数でない場合には、多値／２値変換処理（ステップＳ１０４）、またはＷｅａｒ  Ｌｅｖｅｌｉｎｇ処理（ステップＳ１０６）のいずれかを実行したか否かを確認（フラグ＝１）し（ステップＳ１０７）、いずれの処理も実行していない場合には、データの書き込み処理を行う（ステップＳ１０８）。
【００５０】
また、多値／２値変換処理（ステップＳ１０４）、またはＷｅａｒ  Ｌｅｖｅｌｉｎｇ処理（ステップＳ１０６）のいずれかを実行した場合には、すでにデータが書き込まれているので終了となる。
【００５１】
次に、ステップＳ１０３（図７）の多値／２値変換実行条件の確認処理について、図８のフローチャートを用いて説明する。
【００５２】
管理情報における書き換え回数情報１２の書き換え回数がカウントアップされた後（図７、ステップＳ１０２）、ＭＰＵ６は、管理部Ｋの書き換えストリングフラグ１５、および管理部Ｋの書き換え回数情報１２を参照し、書き換え多ストリング（たとえば、書き換えストリングフラグ１５が’１’）における最も書き換え回数の少ないブロック（たとえば、図６のアドレス’００ＸＸｈ’）、および書き換え少ストリング（たとえば、書き換えストリングフラグ１５が’０’）における最も書き換え回数の多いブロック（たとえば、図６のアドレス’０ＸＸＸｈ’）をそれぞれ検索する（ステップＳ２０１）。
【００５３】
その後、検索された２つのブロックと前回アドレス変換された２つのブロック（たとえば、アドレス’０Ａｈと’アドレス’０Ｂｈ’）とのアドレスが一致しているか否かを確認する（ステップＳ２０２）。
【００５４】
ステップＳ２０２の処理でアドレスが一致していなければ、検索した２つのブロックの書き換え回数を比較し（ステップＳ２０３）、多値／２値変換実行条件を満たすか否かを判断する。
【００５５】
ステップＳ２０３の処理において、書き換え多ストリングにおける最も書き換え回数の少ないブロックが書き換え少ストリングにおける最も書き換え回数の多いブロックの書き換え回数よりも少ない場合に多値／２値変換実行条件を満たすことになり、多値／２値変換処理（図７、ステップＳ１０４）を行う。
【００５６】
また、書き換え多ストリングにおける最も書き換え回数の少ないブロックが書き換え少ストリングにおける最も書き換え回数の多いブロックの書き換え回数よりも多い場合には、多値／２値変換実行条件を満たさないことになり、ステップＳ１０５（図７）の処理を行う。
【００５７】
次に、図７の多値／２値変換処理（ステップＳ１０４）について、図９のフローチャートを用いて説明する。
【００５８】
図８の多値／２値変換実行条件の確認処理において、多値／２値変換実行条件を満たすと判断されると、ＭＰＵ６は、２つのブロック（アドレス’００ＸＸｈ’、アドレス’０ＸＸＸｈ’）のデータ入れ替え、およびアドレス変換を実行し、データ入れ替えされたブロックのアドレス（アドレス’００ＸＸｈ’、アドレス’０ＸＸＸｈ’）をアドレス管理部１０に格納する（ステップＳ３０１）。
【００５９】
その後、多値／２値変換処理を実行したことを示すフラグ（＝１）を入力（ステップＳ３０２）して多値／２値変換処理が終了となる。
【００６０】
図１０は、図７の書き込み処理によってアロケーションされたメモリアレイＭＡのアドレス変換例を示す説明図である。
【００６１】
図示するように、書き換え多ストリングの最も書き換え回数の少ないブロック（図６のアドレス’００ＸＸｈ’）が、書き換え少ストリングの最も書き換え回数の多いブロック（図６のアドレス’０ＸＸＸｈ’）に、書き換え少ストリングのブロック（図６のアドレス’０ＸＸＸｈ’）が、書き換え多ストリングのブロック（図６のアドレス’００ＸＸｈ’）にそれぞれアロケーションされ、アドレスの入れ替えが行われることになる。
【００６２】
次に、Ｗｅａｒ  Ｌｅｖｅｌｉｎｇ処理（図７、ステップＳ１０６）について、図１１のフローチャートを用いて説明する。
【００６３】
まず、ＭＰＵ６は、管理部Ｋの書き換えストリングフラグ１５を参照し、書き換え多ストリング（書き換えストリングフラグ１５が’１’）となっている書き換え多ストリングの中から、置き換え先ブロックのアドレス候補を選択する（ステップＳ４０１）。
【００６４】
この場合、置き換え先アドレスは、たとえば、書き換え多ストリングの中から置き換え先アドレス候補をランダムに選択するか、書き換え多ストリングにおける書き換え回数の少ないブロックを選択する。
【００６５】
続いて、置き換え先アドレス候補から、書き換え回数の最も少ないブロックのアドレスを選択し（ステップＳ４０２）、置き換え先ブロックの書き換え回数と置き換え元ブロックの書き換え回数とを管理情報の書き換え回数情報１２から比較する（ステップＳ４０３）。
【００６６】
置き換え先ブロックの書き換え回数が置き換え元ブロックの書き換え回数よりも小さい場合には、置き換え先ブロックの書き換え回数と置き換え元ブロックの書き換え回数との差が２０％以上か否かを判断する（ステップＳ４０４）。
【００６７】
また、置き換え先ブロックの書き換え回数が置き換え元ブロックの書き換え回数よりも大きい場合には、Ｗｅａｒ  Ｌｅｖｅｌｉｎｇ処理が終了となる。
【００６８】
ステップＳ４０４の処理において、置き換え先ブロックの書き換え回数と置き換え元ブロックの書き換え回数との差が２０％以上の場合には、置き換え先ブロックと置き換え元ブロックとの置き換えを行い（ステップＳ４０５）、その後、Ｗｅａｒ  Ｌｅｖｅｌｉｎｇ処理を行ったことを示すフラグ＝’１’を設定する（ステップＳ４０６）。
【００６９】
また、ステップＳ４０４の処理で、書き換え回数の差が２０％未満の場合には、Ｗｅａｒ  Ｌｅｖｅｌｉｎｇ処理が終了となる。
【００７０】
次に、書き換え少ストリングにおけるデータリフレッシュ処理について、図１２のフローチャートを用いて説明する。
【００７１】
まず、ホスト機器２から読み出し要求があると、ＭＰＵ６は、リードエラーが発生したか否かを確認する（ステップＳ５０１）。リードエラーが発生した場合には、そのエラーが訂正可能であるか否かを判断し（ステップＳ５０２）、訂正可能なエラーの場合には、データの訂正を行った後、データの書き戻しを行い（ステップＳ５０３）、処理が終了となる。
【００７２】
また、ステップＳ５０１の処理でリードエラーが発生しなかった場合、またはステップＳ５０２の処理でデータのエラー訂正ができない場合には、データリフレッシュ処理が終了となる。
【００７３】
図１３は、多値／２値変換処理をメモリカード１の書き込み処理ではなく、電源投入時のリセット処理において行う場合のフローチャートである。
【００７４】
まず、電源電圧が投入されると、ＭＰＵ６は、管理部Ｋの情報を読み出し（ステップＳ６０１）、書き換えストリングフラグ１５と書き換え回数情報１２とを参照して書き換え多ストリングにおける最も書き換え回数の少ないブロック、および書き換え少ストリングにおける最も書き換え回数の多いブロックをそれぞれ検索する（ステップＳ６０２）。
【００７５】
すべてのブロックに対して検索が終了すると、検索された２つのブロックと前回アドレス変換された２つのブロックとのアドレスが一致しているか否かを確認する（ステップＳ６０３）。
【００７６】
ステップＳ６０３の処理でアドレスが一致していなければ、検索した２つのブロックの書き換え回数を比較し（ステップＳ６０４）、最も書き換え回数の少ないブロックが最も書き換え回数の多いブロックの書き換え回数よりも少ない場合、ＭＰＵ６は、２つのブロックのデータ入れ替え、およびアドレス変換を実行し、データ入れ替えされたブロックのアドレスをアドレス管理部１０に格納する（ステップＳ６０５）。
【００７７】
また、ステップＳ６０３の処理でアドレスが一致している場合、またはステップＳ６０４の処理で最も書き換え回数の少ないブロックが最も書き換え回数の多いブロックの書き換え回数よりも多い場合には、アドレス変換処理が終了となる。
【００７８】
それにより、本実施の形態によれば、データの書き換え回数多ストリングのブロックと書き換え回数少ストリングのブロックとを異なるサブビット線ＳＢＬに接続されたストリングにそれぞれアロケーションすることにより、ディスターブによるデータ化けやブロックの不良化を低減することができる。
【００７９】
また、アロケーションの際に書き換えの少ないデータを２値書き込みすることにより、ディスターブストレスを低減することができる。
【００８０】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００８１】
たとえば、前記実施の形態では、アドレス管理部１０（図２）をコントローラ内に設けた構成としたが、該アドレス管理部１０をフラッシュメモリ３（図１）の一部領域に備えるようにしてもよい。
【００８２】
さらに、メモリカードに格納されているＭＢＲ（Ｍａｓｔｅｒ  Ｂｏｏｔ  Ｒｅｃｏｒｄ）、ＰＢＲ（Ｐａｒｔｉｔｉｏｎ  Ｂｏｏｔ  Ｒｅｃｏｒｄ）、およびＦＡＴなどに書かれるシステム情報を読み出し、フラッシュメモリにシステム情報のデータ範囲とユーザデータの範囲とを格納して管理することによっても、前記実施の形態と同様の効果を得ることができる。
【００８３】
フラッシュメモリのメモリアレイＭＡにおいてＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）のシステム情報には、図１４に示すように、システム情報格納アドレスや、ユーザデータ領域の先頭アドレスの情報が格納されている。コントローラ４（図１）は、システム情報をＭＢＲ、ＰＢＲ、およびＦＡＴと順次に読み出すことによって、システム情報の格納範囲とユーザデータの格納範囲とをそれぞれ特定することができる。また、ＯＳにおけるシステム情報の格納アドレスはアドレステーブルによって管理する。
【００８４】
このように、システム情報の格納範囲と、ユーザデータの格納範囲を特定することによってアドレス管理を容易に行うことが可能となる。
【産業上の利用可能性】
【００８５】
本発明のメモリカードは、データ書き換えにおけるドレインディスターブなどを大幅に低減し、メモリカードにおける信頼性を大幅に向上させる技術に適している。
【図面の簡単な説明】
【００８６】
【図１】本発明の一実施の形態によるメモリカードのブロック図である。
【図２】図１のメモリカードに設けられたコントローラのブロック図である。
【図３】図１のメモリカードに設けられたフラッシュメモリにおけるメモリアレイの構成例を示す説明図である。
【図４】図３のメモリセルアレイにおける消去単位であるブロックの構成例を示す説明図である。
【図５】図４のブロックに設けられた管理部の構成例を示す説明図である。
【図６】図３のメモリセルアレイにおけるアロケーションが行われる対象となるブロックを示す説明図である。
【図７】図１のメモリカードにおける書き込み処理の一例を示すフローチャートである。
【図８】図７における多値／２値変換実行条件の確認処理例を示すフローチャートである。
【図９】図７の多値／２値変換処理の一例を示すフローチャートである。
【図１０】図６に続くアロケーション後のブロックを示す説明図である。
【図１１】図７のＷｅａｒ  Ｌｅｖｅｌｉｎｇ処理の一例を示すフローチャートである。
【図１２】本発明の一実施の形態による書き換え少ストリングにおけるデータリフレッシュ処理の一例を示すフローチャートである。
【図１３】本発明の一実施の形態によるメモリカードがリセット処理時に多値／２値変換処理を行う際の一例を示すフローチャートである。
【図１４】本発明の他の一実施の形態によるフラッシュメモリにおけるメモリアレイの構成例を示す説明図である。
【符号の説明】
【００８７】
１  メモリカード
２  ホスト機器
３  フラッシュメモリ（不揮発性半導体メモリ）
４  コントローラ
５  ホストインタフェース
６  ＭＰＵ
７  バッファインタフェース
８  データバッファ
９  記憶部インタフェース
１０  アドレス管理部
１１  良ブロックコード
１２  書き換え回数情報
１３  ＥＣＣ情報
１４  識別コード
１５  書き換えストリングフラグ
ＧＢＬ  グローバルビット線
ＳＢＬ  サブビット線
Ｓ  不揮発性メモリセル
Ｄ  データ部
Ｋ  管理部
ＭＡ  メモリアレイ
【図１】
2006048746.tif 000003
【図２】
2006048746.tif 000004
【図３】
2006048746.tif 000005
【図４】
2006048746.tif 000006
【図５】
2006048746.tif 000007
【図６】
2006048746.tif 000008
【図７】
2006048746.tif 000009
【図８】
2006048746.tif 000010
【図９】
2006048746.tif 000011
【図１０】
2006048746.tif 000012
【図１１】
2006048746.tif 000013
【図１２】
2006048746.tif 000014
【図１３】
2006048746.tif 000015
【図１４】
2006048746.tif 000016