(57)【特許請求の範囲】
【請求項１】
書き換え可能な不揮発性メモリと制御回路とを有する記憶装置であって、
前記記憶装置は論理アドレスに不揮発性メモリの物理アドレスを対応付け、論理アドレス毎の書き換え回数情報を保有し、
前記制御回路は前記不揮発性メモリに対する記憶情報の入れ替え処理が可能であり、
前記入れ替え処理は、前記書き換え回数情報から判定した書き換え回数の少ない所定の論理アドレスに対応した物理アドレスを別の物理アドレスとの対応に入れ替えて、その入れ替えに則したデータ移動を行う処理である記憶装置。
【請求項２】
前記別の物理アドレスは、論理アドレスとの対応に用いられていない空きの物理アドレスである請求項１記載の記憶装置。
【請求項３】
前記別の物理アドレスは、前記書き換え回数の少ない論理アドレスよりも書き換え回数の多い別の論理アドレスに対応される物理アドレスであり、
前記別の論理アドレスは前記書き換え回数の少ない所定の論理アドレスが割り当てられていた物理アドレスとの対応に変更される請求項２記載の記憶装置。
【請求項４】
前記入れ替え処理は、メモリカードの外部から与えられる書き込み指示に応答する処理と共に行うことが可能にされる請求項１記載の記憶装置。
【請求項５】
前記入れ替え処理は、前記書き込み指示に応答する処理対象の論理アドレスに対する書き換え回数が所定回数に達しているとき行うことが可能にされる請求項４記載の記憶装置。
【請求項６】
前記入れ替え処理は、任意に抽出された複数の論理アドレスの中で最も書き換え回数が少ない論理アドレスに対して行うことが可能にされる請求項５記載の記憶装置。
【請求項７】
前記制御回路は、前記書き込み指示に応答する処理では処理対象とされる論理アドレスを別の物理アドレスに対応させてデータの書き換えを行う請求項４記載の記憶装置。
【請求項８】
前記不揮発性メモリは論理アドレスと物理アドレスとの対応を定義するアドレス変換テーブルを有する請求項７記載の記憶装置。
【請求項９】
前記論理アドレス毎の書き換え回数情報は論理アドレスに対応された物理アドレスの領域が保有する請求項８記載の記憶装置。
【請求項１０】
前記論理アドレス毎の書き換え回数情報は書き換え回数テーブルが保有する請求項８記載の記憶装置。
【請求項１１】
書き換え可能な不揮発性メモリと制御回路とを有するメモリカードであって、
前記メモリカードは論理アドレスに不揮発性メモリの物理アドレスを対応付け、論理アドレス毎の書き換え回数情報を保有し、
前記制御回路は、外部からの書き込み指示に応答する不揮発性メモリの書き換え処理と、前記不揮発性メモリに対する記憶情報の入れ替え処理とが可能であり、
前記入れ替え処理は、前記書き換え回数情報から判定した書き換え回数の少ない所定の論理アドレスに対応した物理アドレスを別の物理アドレスとの対応に入れ替えて、その入れ替えに則したデータ移動を行う処理であるメモリカード。
【請求項１２】
ホストインタフェース制御と書き換え可能な不揮発性メモリに対するメモリ制御を行い、
不揮発性メモリの物理アドレスに論理アドレスを対応付けて、論理アドレス毎の書き換え回数情報を管理し、
不揮発性メモリに対する書き換えに際して、入れ替え処理が可能なコントローラであって、
前記入れ替え処理は、前記書き換え回数情報から判定した書き換え回数の少ない所定の論理アドレスに対応した物理アドレスを別の物理アドレスとの対応に入れ替えて、その入れ替えに則したデータ移動を行う処理であるコントローラ。
【請求項１３】
前記別の物理アドレスは、論理アドレスとの対応に用いられていない空きの物理アドレスである請求項１２記載のコントローラ。
【請求項１４】
前記別の物理アドレスは、前記書き換え回数の少ない論理アドレスよりも書き換え回数の多い別の論理アドレスに対応される物理アドレスであり、
前記別の論理アドレスは前記書き換え回数の少ない所定の論理アドレスが割り当てられていた物理アドレスとの対応に変更される請求項１３記載のコントローラ。
【請求項１５】
前記入れ替え処理は、外部から与えられる揮発性メモリに対する書き込み指示に応答する処理と共に行うことが可能にされる請求項１２記載のコントローラ。
【請求項１６】
前記入れ替え処理は、前記書き込み指示に応答する処理対象の論理アドレスに対する書き換え回数が所定回数に達しているとき行うことが可能にされる請求項１５記載のコントローラ。
【請求項１７】
前記入れ替え処理は、任意に抽出された複数の論理アドレスの中で最も書き換え回数が少ない論理アドレスに対して行うことが可能にされる請求項１６記載のコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュメモリカード及びハードディスク互換のフラッシュディスクなどの不揮発性のメモリ装置、更に前記メモリ装置に適用されるコントローラに関する。
【背景技術】
【０００２】
フラッシュメモリに代表される電気的に書換え可能な不揮発性メモリの書き換えではメモリセルに電気的なストレスがかり、書き換え回数が増すに従ってメモリセルの特性が劣化する。局所的に書き込みが集中すると一部のデータブロックだけ特性劣化が著しくなるので、フラッシュメモリカードでは論理アドレスと物理アドレスの対応を適宜変更することにより、そのような特性劣化が局所的なアドレスに集中することを緩和することができる。このときには特許文献１に例示されるようにメモリ領域の物理アドレスとホストからの論理アドレスとの対応を定義する対応テーブルを用いればよい。【０００３】
フラッシュメモリに代表される電気的に書換え可能な不揮発性メモリでは、書き換え対象にされないメモリセルトランジスタであっても、書き換え対象のメモリセルトランジスタとワード線が共通であったり、ビット線が共通であったりすると、所謂ワード線ディスターブやビット線ディスターブによる影響を受け、閾値電圧が累積的に変化して、記憶情報が不所望に反転（データ化け）する虞がある。【０００４】
上記データ化けに対処する技術として、特許文献２には、フラッシュメモリカードにおいて、相対的に書き換え回数の少ない第１のメモリ領域の記憶データを未使用の第２のメモリ領域に書き込み、書き込みされた第２のメモリ領域を前記第１のメモリ領域に代えて使用領域とすることにより、書き換えが発生しないメモリ領域が累積的にディスターブを受けないようになることが記載される。ここでの書き換え回数の多少はメモリ領域の物理アドレス毎の書き換え回数に着目している。同様の技術は特許文献３にも記載がある。【０００５】
【特許文献１】特開平８−１６４８２号公報
【特許文献２】特開２００４−３１０６５０号公報
【特許文献３】米国特許第５５６８４３９号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明者は相対的に書き換え回数の少ないメモリ領域の記憶データを空きメモリ領域等と置き換えることによって累積的なディスターブの影響を緩和する技術について検討した。これによれば、特許文献２，３のように物理アドレス単位で把握した書き換え回数を指標にすると以下の不都合のあることが本発明者によって見出された。【０００７】
即ち、物理アドレスの書き換え回数を指標にすると、書き換え回数の多い物理アドレスに書き換え回数の少ない論理アドレスが割り当てられてしまうと、当該物理アドレスでは書き換えが発生し難い上に、当該物理アドレスの書き換え回数が相対的に少ないと判定されるには他の物理アドレスで多数回の書き換えが行われるまで待たなければならず、それによって当該物理アドレスは長い間ディスターブの影響を受けることになってしまう。また書き換え回数の多い物理アドレスは書込や消去によるストレスを累積的に受けてきているため、ディスターブストレスに対する耐性が低下していることも考えられる。その場合、ディスターブの影響はより大きなものとなることが考えられる。【０００８】
本発明の目的は、書き換えによるディスターブを累積的に受け難くすることにある。【０００９】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。【００１１】
〔１〕記憶装置（１）は書き換え可能な不揮発性メモリ（２）と制御回路（５）とを有し、前記記憶装置は論理アドレスに不揮発性メモリの物理アドレスを対応付け、論理アドレス毎の書き換え回数情報を保有し、前記制御回路は前記不揮発性メモリに対する記憶情報の入れ替え処理が可能であり、前記入れ替え処理は、前記書き換え回数情報から判定した書き換え回数の少ない所定の論理アドレスを別の物理アドレスとの対応に入れ替えてその入れ替えに則したデータ移動を行う。【００１２】
上記した手段によれば、書き換え回数を論理アドレス単位で管理するから、書き換えを受け難い論理アドレスの把握は容易である。そして、書き換えの少ない論理アドレスのデータが別の物理アドレスへ割り当てられても、その領域の書き換え回数は依然として論理アドレスの書き換え回数で把握されるから、移動先でもその論理アドレスのデータは入れ替え処理による書き換え対象になり易い状態が維持される。書き換えによるディスターブは書き換えが行われないデータに対して累積される現象であるから、ホストからの書き込み指示による書き換えがあまり発生しない論理アドレスのデータに対して入れ替え処理による書き換えが行なわれ易い状態が維持されることにより、書き換えによるディスターブを累積的に受け難くすることができる。【００１３】
本発明の代表的な一つの具体的形態として、前記別の物理アドレスは、論理アドレスとの対応に用いられていない空きの物理アドレスである。本発明の代表的な別の一つの具体的形態では、前記別の物理アドレスは、前記書き換え回数の少ない論理アドレスよりも書き換え回数の多い別の論理アドレスに対応される物理アドレスであり、このとき、前記別の論理アドレスは前記書き換え回数の少ない所定の論理アドレスが割り当てられていた物理アドレスとの対応に変更される。書き換え回数の多い論理アドレスのデータと、書き換え回数の少ない論理アドレスのデータとを入れ替えることにより、書き換え回数の多かった物理アドレス（即ち書き換えの電気的ストレスを多く受けた物理アドレス）を今度は書き換えストレスを受け難くすることができる。【００１４】
本発明の代表的な更に別の一つの具体的形態として、前記入れ替え処理は、メモリカードの外部から与えられる書き込み指示に応答する処理と共に行うことが可能にされる。このとき、前記入れ替え処理は、前記書き込み指示に応答する処理対象の論理アドレスに対する書き換え回数が所定回数に達しているとき行うことが可能である。また、前記入れ替え処理は、任意に抽出された複数の論理アドレスの中で最も書き換え回数が少ない論理アドレスに対して行うことが可能である。【００１５】
本発明の代表的な更に別の一つの具体的形態として、前記制御回路は、前記書き込み指示に応答する処理では処理対象とされる論理アドレスを別の物理アドレスに対応させてデータの書き換えを行う。また、前記不揮発性メモリは論理アドレスと物理アドレスとの対応を定義するアドレス変換テーブルを有する。前記論理アドレス毎の書き換え回数情報は論理アドレスに対応された物理アドレスの領域が保有する。或いは、前記論理アドレス毎の書き換え回数情報は書き換え回数テーブルが保有する。【００１６】
〔２〕書き換え可能な不揮発性メモリと制御回路とを有するメモリカードは、論理アドレスに不揮発性メモリの物理アドレスを対応付け、論理アドレス毎の書き換え回数情報を保有し、前記制御回路は、外部からの書き込み指示に応答する不揮発性メモリの書き換え処理と、前記不揮発性メモリに対する記憶情報の入れ替え処理とが可能であり、前記入れ替え処理は、前記書き換え回数情報から判定した書き換え回数の少ない所定の論理アドレスを別の物理アドレスとの対応に入れ替えてその入れ替えに則したデータ移動を行う処理である。これにより、ホストからの書き込み指示による書き換えがあまり発生しない論理アドレスのデータは入れ替え処理による書き換えが行なわれ易い状態となり、書き換えによるディスターブを累積的に受け難くすることができる。【００１７】
〔３〕コントローラ（５）は、ホストインタフェース制御と書き換え可能な不揮発性メモリに対するメモリ制御を行い、不揮発性メモリの物理アドレスに論理アドレスを対応付けて、論理アドレス毎の書き換え回数情報を管理し、不揮発性メモリに対する書き換えに際して、入れ替え処理が可能であり、前記入れ替え処理は、前記書き換え回数情報から判定した書き換え回数の少ない所定の論理アドレスを別の物理アドレスとの対応に入れ替えてその入れ替えに則したデータ移動を行う処理である。これにより、ホストからの書き込み指示による書き換えがあまり発生しない論理アドレスのデータは入れ替え処理による書き換えが行なわれ易い状態とされ、書き換えによるディスターブを累積的に受け難くなる。【００１８】
本発明の代表的な一つの具体的形態として、前記別の物理アドレスは、論理アドレスとの対応に用いられていない空きの物理アドレスである。また、前記別の物理アドレスは、前記書き換え回数の少ない論理アドレスよりも書き換え回数の多い別の論理アドレスに対応される物理アドレスであり、前記別の論理アドレスは前記書き換え回数の少ない所定の論理アドレスが割り当てられていた物理アドレスとの対応に変更される。【００１９】
本発明の代表的な別の一つの具体的形態として、前記入れ替え処理は、外部から与えられる揮発性メモリに対する書き込み指示に応答する処理と共に行うことが可能にされる。前記入れ替え処理は、前記書き込み指示に応答する処理対象の論理アドレスに対する書き換え回数が所定回数に達しているとき行うことが可能にされる。前記入れ替え処理は、任意に抽出された複数の論理アドレスの中で最も書き換え回数が少ない論理アドレスに対して行うことが可能にされる。
【発明の効果】
【００２０】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。【００２１】
即ち、ホストからの書き込み指示による書き換えがあまり発生しない論理アドレスであっても、他のアドレスの書き換えによるディスターブを累積的に受け難くなる。
【図面の簡単な説明】
【００２２】
【図１】本発明に係る記憶装置の一例であるフラッシュメモリカードのブロック図である。
【図２】ユーザ領域のデータ構成を例示する説明図である。
【図３】システム領域のデータ構成を例示する説明図である。
【図４】書き換え処理においてユーザ領域上で生ずるデータ更新の様子を例示する説明図である。
【図５】書き換え処理におけるデータ更新処理を例示するフローチャートである。
【図６】入れ替え処理においてユーザ領域上で生ずるデータ更新の様子を例示する説明図である。
【図７】入れ替え処理を例示するフローチャートである。
【図８】入れ替え処理の別の例を示す説明図である。
【図９】入れ替え処理の更に別の例を示す説明図である。
【図１０】書き換え回数テーブルを例示する説明図である。
【図１１】フラッシュメモリの一例を示すブロック図である。
【符号の説明】
【００２３】
１  フラッシュメモリカード
２  フラッシュメモリ
３メモリアレイ
４  バッファメモリ
５  カードコントローラ
６  ホストコンピュータ
１０  ホストインタフェース回路
１１  マイクロプロセッサ
１２  フラッシュ紺とローレア
１３  バッファコントローラ
２０  ユーザ領域
２１  システム領域
２２  アドレス変換テーブル
２３  空き領域テーブル
２４  書き換え回数テーブル
【発明を実施するための最良の形態】
【００２４】
《メモリカード》
図１には本発明に係る記憶装置の一例であるフラッシュメモリカードが示される。フラッシュメモリカード（ＦＭＣ）１は消去及び書き込み可能な不揮発性メモリ例えばフラッシュメモリ（ＦＬＡＳＨ）２と、ＤＲＡＭ（Ｄｙｎａｍｉｃ Ｒａｎｄｏｍ Ａｃｃｅｓｓ ｍｅｍｏｒｙ）又はＳＲＡＭ（Ｓｔａｔｉｃ Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）等から成るバッファメモリ（ＢＵＦ）４と、メモリ制御及び外部インタフェース制御を行う制御回路としてのカードコントローラ（ＣＣＲＬ）５とを、実装基板に備えて成る。【００２５】
前記バッファメモリ４及びフラッシュメモリ２はカードコントローラ５のアクセス制御を受ける。前記フラッシュメモリ２は、特に図示はしないが、電気的に消去及び書き込み可能な不揮発性メモリセルトランジスタが多数マトリクス配置されたメモリアレイ（ＡＲＹ）３を有する。メモリセルトランジスタ（フラッシュメモリセルとも記す）は、特に図示はしないが、半導体基板若しくはウェル内に形成されたソース及びドレイン、前記ソースとドレインとの間のチャンネル領域にトンネル酸化膜を介して形成されたフローティングゲート、そしてフローティングゲートに層間絶縁膜を介して重ねられたコントロールゲートによって構成される。コントロールゲートは対応するワード線に、ドレインは対応するビット線に、ソースはソース線に接続される。前記メモリセルトランジスタは、前記フローティングゲートに電子が注入されると閾値電圧が上昇し、また、前記フローティングゲートから電子を引き抜くと閾値電圧が低下する。前記メモリセルトランジスタは、データ読み出しのためのワード線電圧（コントロールゲート印加電圧）に対する閾値電圧の高低に応じた情報を記憶することになる。特に制限されないが、本明細書においてメモリセルトランジスタの閾値電圧が低い状態を消去状態、高い状態を書き込み状態と称する。メモリアレイ３にはユーザ領域（ＵＳＲ）２０とシステム領域（ＳＹＳ）２１を有する。【００２６】
図１において、前記カードコントローラ５は、例えばホストとしてのホストコンピュータ（ＨＳＴ）６との間でＩＤＥディスクインタフェース仕様などに従った外部インタフェース制御を行う。カードコントローラ５は、ホストコンピュータ６からの指示に従って、フラッシュメモリ２をアクセスするアクセス制御機能を有する。このアクセス制御機能はハードディスク互換の制御機能であり、例えばホストコンピュータ６がセクタデータの集合をファイルデータとして管理するとき、カードコントローラ５は論理アドレスとしてのセクタアドレスを物理メモリアドレスに対応させてフラッシュメモリ２のアクセス制御などを行う。図１に従えば、前記カードコントローラ５は、ホストインタフェース回路（ＨＩＦ）１０、演算制御手段としてのマイクロプロセッサ（ＭＰＵ）１１、フラッシュコントローラ（ＦＣＲＬ）１２、及びバッファコントローラ（ＢＣＲＬ）１３から成る。【００２７】
前記ＭＰＵ１１は、ＣＰＵ（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）１５、プログラムメモリ（ＰＧＭ）１６及びワークＲＡＭ（ＷＲＡＭ）１７などを有し、カードコントローラ５を全体的に制御する。プログラムメモリ１６はＣＰＵ１５の動作プログラムなどを保有する。【００２８】
前記ホストインタフェース回路１０は、ＡＴＡ（ＡＴＡｔｔａｃｈｍｅｎｔ）、ＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ Ｄｅｖｉｃｅ Ｅｌｅｃｔｒｏｎｉｃｓ）、ＳＣＳＩ（Ｓｍａｌｌ Ｃｏｍｐｕｔｅｒ Ｓｙｓｔｅｍ Ｉｎｔｅｒｆａｃｅ）、ＭＭＣ（ＭｕｌｔｉＭｅｄｉａＣａｒｄ：登録商標）、ＰＣＭＣＩＡ（Ｐｅｒｓｏｎａｌ Ｃｏｍｐｕｔｅｒ Ｍｅｍｏｒｙ Ｃａｒｄ Ｉｎｔｅｒｎａｔｉｏｎａｌ Ａｓｓｏｃｉａｔｉｏｎ）等の所定のプロトコルに従って、パーソナルコンピュータ又はワークステーションなどのホストコンピュータ６とインタフェースを行う回路である。ホストインタフェース動作の制御はＭＰＵ１１が行う。【００２９】
前記バッファコントローラ１３はＭＰＵ１１から与えられるアクセス指示に従って、バッファメモリ４のメモリアクセス動作を制御する。バッファメモリ４にはホストインタフェース１０に入力されたデータ、又はホストインタフェース１０から出力するデータが一時的に保持される。また、バッファメモリ４には、フラッシュメモリ２から読み出されたデータ又はフラッシュッメモリ２に書き込まれるデータが一時的に保持される。【００３０】
フラッシュコントローラ１２はＭＰＵ１１から与えられるアクセス指示に従って、フラッシュメモリ２に対する、読み出し動作、消去動作及び書き込み動作を制御する。フラッシュコントローラ１２は、読み出し動作において読み出しコマンドコードや読み出しアドレス情報等の読み出し制御情報を出力し、書き込み動作において書き込みコマンドコード及び書き込みアドレス情報などの書き込み制御情報を出力し、消去動作において消去コマンド等の消去制御情報を出力する。【００３１】
図２にはユーザ領域２０のデータ構成が例示される。ユーザ領域２０ではメモリアレイの物理アドレスＰＡｉ（ｉ＝１、２、…）のデータ領域ＡＲＤＡＴには、物理アドレス単位で対応付けされた論理アドレスＬＡｎ（ｎ＝１、２、…）のデータＤ（ＬＡｎ）とその論理アドレスの書き換え回数ｍのデータＮ（ｍ）が保持される。例えば物理アドレスＰＡ１のデータ領域ＡＲＤＡＴには論理アドレスＬＡ２のデータＤ（ＬＡ２）と書き換え回数５のデータＮ（５）が保持される。ここでは物理アドレスＰＡ８はユーザ領域（ＵＳＲ）２０の空き領域（ＦＲＥＥ−Ｕ）とされる。空き領域とは、当該物理アドレスに論理アドレスが割り当てられていない、ということである。【００３２】
図３にはシステム領域２１のデータ構成が例示される。システム領域２１ではメモリアレイ３の所定の物理アドレスＰＡｉに、物理アドレスと論理アドレスとの対応を定義したアドレス変換テーブル（ＴＡＣ）２２、空きデータ領域ＦＲＥＥ−Ｕの物理アドレスを定義した空き領域テーブル（ＴＶＡ）２３が保持される。アドレス変換テーブル２２は、先頭より２バイトのような記憶単位毎にアドレスＬＡ０から順番に論理アドレスに対応する物理アドレスを定義する単位定義領域とされる。例えば論理アドレスＬＡ０の単位定義領域には物理アドレス情報ｘｘｘｘｈが格納され、次の論理アドレスＬＡ１の単位定義領域には物理アドレス情報ｙｙｙｙｈが格納され、その次の論理アドレスＬＡ２の単位定義領域には物理アドレス情報ｚｚｚｚｈが格納されるというようになる。空き領域テーブル２３は、先頭より２バイトのような記憶単位毎に空きデータ領域ＦＲＥＥ−Ｕの物理アドレスを定義する単位定義領域とされる。例えば先頭から、空きデータ領域ＦＲＥＥ−Ｕの物理アドレス情報ｓｓｓｓｈ，ｔｔｔｔｈ，ｕｕｕｕｈが格納される。ＦＲＥＥ−Ｓはシステム領域（ＳＹＳ）２１の空き領域である。
《書き換え処理》
ホストコンピュータ６からの書き込み指示に応答するフラッシュメモリ２の書き換え処理について説明する。図４には書き換え処理においてユーザ領域上で生ずるデータ更新の様子が例示される。図５には書き換え処理におけるデータ更新処理フローが例示される。【００３３】
ホストコンピュータ６から例えば論理アドレスＬＡ３に対するデータの書き込みが指示されると（Ｓ１《ＳＴＡＲＴ》）、これに応答してカードコントローラ５は書き込みデータＤｗ（ＬＡ３）を受け取り（Ｓ２《ＩＮＰ−Ｄｗ》）、その書き込みデータＤｗ（ＬＡ３）をバッファメモリ４に格納する（Ｓ３《ＳＴＯＲ−Ｄｗ》）。カードコントローラ５は空きブロックテーブルから空いている物理アドレスを検索する（Ｓ４《ＲＥＦ−ＦＲＥＥ》）。例えば物理アドレスＰＡ８を取得する。次に、カードコントローラ５はアドレス変換テーブルから書き込み対象とされる論理アドレスＬＡ３に対応される物理アドレスを検索し、取得された物理アドレス例えばＰＡ２が保有する書き換え回数例えば２０回を意味するデータＮ（２０）を取得する（Ｓ５《ＯＢＴ−Ｎ》）。カードコントローラ５はそのデータを＋１インクリメントし（Ｓ６《ＩＮＣ＋１》）、インクリメントしたデータＮ（２１）と書き込みデータＤｗ（ＬＡ３）とによって物理アドレスＰＡ８のデータ領域ＡＲＤＡＴを書き換える（Ｓ７《Ｄｗ（ＬＡ３）→ＰＡ８》）。その後、アドレス変換テーブルにおいて論理アドレスＬＡ３に対応される物理アドレスをＰＡ８とするように更新し（Ｓ８《ＵＰＤ―ＴＡＣ》）、更に、空きブロックテーブルにおけるＰＡ８の物理アドレス情報をＰＡ２の物理アドレス情報に更新して（Ｓ９《ＵＰＤ―ＴＶＡ》）、書き込み処理を終了する（Ｓ１０《ＥＮＤ》）。【００３４】
図４より明らかなように、書き込み回数は論理アドレス単位で管理されているから、論理アドレスに対する物理アドレスの割付が変更になっても、変更後のデータ領域ＡＲＤＡＴが保持する書き換え回数は＋１インクリメントされた状態になっている。要するに、論理アドレスのデータには当該論理アドレスに対する書き換え回数の履歴が常に付随することになる。
《入れ替え処理》
カードコントローラ５は、前記フラッシュメモリ２に対する記憶情報の入れ替え処理が可能であり、前記入れ替え処理は、前記書き換え回数情報Ｎ（ｍ）から判定した書き換え回数の少ない所定の論理アドレスを別の物理アドレスとの対応に入れ替えてその入れ替えに則したデータ移動を行う処理とされる。【００３５】
図６には入れ替え処理においてユーザ領域上で生ずるデータ更新の様子が例示される。図７には入れ替え処理フローが例示される。入れ替え処理はフラッシュメモリカード１の外部から与えられる書き込み指示（Ｔ１《ＳＴＡＲＴ》）に応答する処理と共に行うことが可能にされる。特に、前記入れ替え処理は、前記書き込み指示に応答する処理対象の論理アドレスに対する書き換え回数が所定回数（例えば２１の倍数）に達しているとき行うことが可能になる。図７に従えば、指示された書き込み処理の対象アドレスがＬＡ３とすると、その論理アドレスに対応する物理アドレスからＬＡ３の書き換え回数の情報Ｎ（ｍ）を取得し（Ｔ２《ＯＢＴ−Ｎ（ｍ）》）、書き換え回数が所定回数例えば２１の倍数であるか否かを判定する（Ｔ３《ＤＣＳ（Ｎ＝２１×ｎ）》）。ステップＴ３の条件が成立したとき入れ替え処理が継続される。前記２１の倍数のような所定回数は、入れ替え処理による実質的な書き込み処理時間の増大と、入れ替え処理を行わないことによるディスターブの累積とのトレードオフの関係を考慮して適宜決定されればよい。【００３６】
入れ替え処理が継続されるとき、入れ替え処理は、任意に抽出された複数の論理アドレスの中で最も書き換え回数が少ない論理アドレスに対して行われる。図７に従えば、カードコントローラ５は乱数を発生させ、ランダムに複数の論理アドレスを生成し（Ｔ４《ＯＢＴ−ＬＡ（ＲＤＯＭ）》）、生成した論理アドレスのデータをフラッシュメモリ２からアクセスし、書き換え回数の最も少ない論理アドレスを取得する（Ｔ５《ＯＢＴ−ＬＡ（Ｎｍｉｎ）》）。例えば図６の例ではステップＴ４でランダムに生成された論理アドレスはＬＡ２、ＬＡ１、ＬＡ５、ＬＡ０、ＬＡ４、ＬＡ６とされ、その中で最も書き換え回数の少ない論理アドレスはＬＡ２とされる。書き換え処理対象の論理アドレスＬＡ３の書き換え回数は２１回になっている。【００３７】
ステップＴ５で取得された書き換え回数の最も少ない論理アドレス（例えばＬＡ２）に対して対応する物理アドレスのデータをバッファに移動する（Ｔ６《ＯＢＴ−ＤＡＴ（ＬＡ（Ｎｍｉｎ））》）。次いで、当該論理アドレスの書き換え回数を＋１インクリメントする（Ｔ７《ＩＮＣ＋１》）。図６に従えばＬＡ２の書き換え回数は５回から６回にインクリメントされる。更に、空きブロックテーブルを検索して一つの空き物理アドレスを取得する（Ｔ８《ＯＢＴ−ＰＡ（ＦＲＥＥ）》）。図６に従えば物理アドレスＰＡ２を取得する。取得した物理アドレスに前記バッファ内の入れ替え処理対象データを書き込む（Ｔ９《ＤＡＴ（ＬＡ２）→ＤＡＴ（ＰＡ２）》）、その後、アドレス変換テーブルにおいて論理アドレスＬＡ２に対応される物理アドレスをＰＡ２とするように更新し（Ｔ１０《ＵＰＤ―ＴＡＣ》）、更に、空きブロックテーブルにおけるＰＡ２の物理アドレス情報をＰＡ１の物理アドレス情報に更新して（Ｔ１１《ＵＰＤ―ＴＶＡ》）、入れ替え処理を終了する（Ｔ１２《ＥＮＤ》）。【００３８】
上述より明らかなように、書き換え回数を論理アドレス単位で管理するから、書き換えを受け難い論理アドレスの把握は容易である。そして、図６に例示されるような入れ替え処理結果からも明らかなように、書き換えの少ない論理アドレス（ＬＡ２）のデータが別の物理アドレス（ＰＡ２）へ割り当てられても、その物理アドレスＰＡ２に保持される書き換え回数は依然として論理アドレスＬＡ２の書き換え回数Ｎ（６）として把握されるから、入れ替え処理による移動先のデータ領域ＡＲＤＡＴでもその論理アドレスのデータは入れ替え処理による書き換え対象になり易い状態が維持される。書き換えによるディスターブは書き換えが行われないデータに対して累積される現象であるから、ホストコンピュータからの書き込み指示による書き換えがあまり発生しない論理アドレスのデータに対して入れ替え処理による書き換えが行なわれ易い状態が維持されることにより、書き換えによるディスターブを累積的に受け難くすることができる。仮に、図６の論理アドレスＬＡ２が５回のように書き換え回数が少なく、物理アドレスＰＡ２が３００回のように書き換え回数が極めて多い場合を想定し、入れ替え処理の指標を物理アドレス単位の書き換え回数とすれば、書き換え回数の多い物理アドレスＰＡ２に書き換え回数の少ない論理アドレスＬＡ２が割り当てられてしまうと、当該物理アドレスＰＡ２では書き換えが発生し難い上に、当該物理アドレスＰＡ２の書き換え回数３００回が相対的に少ないと判定されるには他の物理アドレスで多数回の書き換えが行われるまで待たなければならず、それによって当該物理アドレスＰＡ２は長い間ディスターブの影響を受けることになってしまう。上述の如く、論理アドレスを単位に書き換え回数を把握し、論理アドレス単位の書き換え回数を指標に前記入れ替え処理を行うことにより、ディスターブの影響が累積されて不所望なデータ化けを生ずる虞を未然に防止することができる。【００３９】
図８には入れ替え処理の別の例が示される。図７ではステップＴ７のインクリメントを＋１としたが、図８では＋２０としている。図７では入れ替え処理は論理アドレス毎に書き換え回数が２１の倍数になったとき行われるようになっているから（Ｔ３）、これを考慮し、極端に書き換え回数の少ない同じ論理アドレスで入れ替え処理が連続しないように、換言すれば、入れ替え処理対象とされる論理アドレスが広い範囲で分散され易くなるようにしている。要するに、入れ替え処理対象とされる論理アドレスの書き換え回数をｎ回とすると、インクリメント数はｎ近傍に値であるのが最も効果的であると考えられる。【００４０】
図９には入れ替え処理の更に別の例が示される。今までの説明では入れ替え先の物理アドレスは、論理アドレスとの対応に用いられていない空きの物理アドレスであったが、これを、前記書き換え回数の少ない論理アドレスよりも書き換え回数の多い別の論理アドレスに対応される物理アドレスとしてもよい。要するに、書き換え回数の多い論理アドレスのデータと、書き換え回数の少ない論理アドレスのデータとを入れ替える。例えば図７のステップＴ４で取得された論理アドレスの書き換え回数の中で最も回数の多い論理アドレスに対応される物理アドレスとしてもよい。図９では入れ代え先は物理アドレスＰＡ７とされる。このとき、前記入れ替え先の物理アドレスＰＡ２に割り当てられていた論理アドレスＬＡ６は、入れ替え元論理アドレスＬＡ２に対応されていた物理アドレスＰＡ１に割り当てが変更され、必要なデータ移動が行われる。【００４１】
上述のように、書き換え回数の多い論理アドレスのデータと、書き換え回数の少ない論理アドレスのデータとを入れ替えることにより、書き換え回数の多かった物理アドレス即ち書き換えの電気的ストレスを多く受けた物理アドレスは今度は書き換えストレスを受け難くなる。【００４２】
図１０には書き換え回数テーブルの例を示す。前記論理アドレス毎の書き換え回数情報は論理アドレスに対応された物理アドレスの領域が保有するものとしたが、図１０のように、前記論理アドレス毎の書き換え回数情報を保有する書き換え回数テーブル（ＴＷＮ）２４を採用してもよい。書き換え回数テーブル２４はシステム領域２１に配置すればよい。書き換え回数テーブル２４は、例えば、先頭より１バイトのような記憶単位毎にアドレスＬＡ０から順番にその書き換え回数を定義する単位定義領域とされる。例えば論理アドレスＬＡ０の単位定義領域にはｘｘ回の書き換え回数データが格納され、次の論理アドレスＬＡ１の単位定義領域にはｙｙ回の書き換え回数データが格納され、その次の論理アドレスＬＡ２の単位定義領域にはｚｚ回の書き換え回数データが格納されるというようになる。【００４３】
《フラッシュメモリ》
図１１にはフラッシュメモリの一例が例示される。フラッシュメモリ２は単結晶シリコンなどの１個の半導体基板に形成される。【００４４】
フラッシュメモリ２は特に制限されないが、４個のメモリバンク(Bank)ＢＮＫ０〜ＢＮＫ３を有する。夫々のメモリバンクＢＮＫ０〜ＢＮＫ３は相互に同じ構成を有し、並列動作可能にされる。図では代表的にメモリバンクＢＮＫ０の構成が詳細に例示される。メモリバンクＢＮＫ０〜ＢＮＫ３は、フラッシュメモリアレイ（ＡＲＹ）３、Ｘデコーダ（ＸＤＥＣ）３４、データレジスタ（ＤＲＧ）３５、データコントロール回路（ＤＣＮＴ）３６＿Ｒ，３６＿Ｌ、Ｙアドレスコントロール回路（ＹＡＣＮＴ）３７＿Ｒ，３７＿Ｌを有する。【００４５】
前記メモリアレイ３は電気的に消去及び書込み可能な不揮発性のメモリトランジスタを多数有する。メモリアレイの詳細は後述するが、メモリトランジスタは特に制限されないが電荷蓄積領域に絶縁膜を介してメモリゲートを重ねたスタックドゲート構造とされる。メモリトランジスタに対する記憶情報の初期化である消去処理は、特に制限されないが、メモリトランジスタのソース、ドレイン及びウェルに回路の接地電位を印加し、メモリゲートに負の高電圧を印加して電荷蓄積領域の電子を放出させる方向に移動させることで閾値電圧を低くする処理とされる。メモリトランジスタに対する記憶情報を書き込む書込み処理は、メモリトランジスタのドレインからソースに電流を流し、ソース端の基板表面でホットエレクトロンを発生させ、これをメモリゲートの高電圧による電界で電荷蓄積領域に注入することで閾値電圧を高くする処理とされる。読出し処理は、ビット線を予めプリチャージしておき、所定の読出し判定レベルをワード線選択レベルとしてメモリトランジスタを選択してビット線に流れる電流変化若しくはビット線に現れる電圧レベル変化によって記憶情報を検出可能にする処理とされる。前記ビット線には後で説明する読出し書き込み回路が接続される。前記読出し書き込み回路は読み出し処理によりビット線に読み出された記憶情報をラッチし、また、書込み処理において書き込みデータに従ったビット線駆動等に利用される。読出し書き込み回路のデータ入出力ノードは複数ビット単位でセレクタを介して複数のメインアンプの入出力ノードに接続される。尚、１個の不揮発性メモリセルによる情報記憶は１ビット記憶の２値であっても２ビット以上記憶の多値であってもよい。例えば２ビットの場合には、特に制限されないが、ビット線に接続するデータレジスタを更に設け、読み出し判定レベルを変えてメモリセルから数回に分けて読み出した前後の結果をセンスラッチとデータレジスタに別々に保持しながら２ビットの記憶データを判定して読み出し処理を行ない、また、２ビットの書込みデータをセンスラッチとデータレジスタに別々に保持しながら２ビットの値に応ずる閾値電圧を設定するように書込み処理を行なう。【００４６】
フラッシュメモリアレイ３は、特に制限されないが、左右に分けられ（ＭＡＲＹ＿Ｒ、ＭＡＲＹ＿Ｌ）、例えば夫々のＭＡＲＹ＿Ｒ、ＭＡＲＹ＿Ｌは、１０２４＋３２バイト（Byte）の記憶容量を６５５３６ページ（page）分備える。ここでは１０２４＋３２バイトをデータ格納単位（１ページ）について左側のＭＡＲＹ＿Ｌには奇数ページが割り当てられ、右側のＭＡＲＹ＿Ｒには偶数ページが割り当てられる。Ｘデコーダはフラッシュメモリアレイのアクセスアドレスとしてのページアドレスをデコードし、特に制限されないが、×８ビットの入出力モードではページ単位でメモリセルの選択を行なう。×１６ビットの入出力モードでは偶数ページアドレス毎に２ページ単位でメモリセルの選択を行なう。【００４７】
データレジスタ３５はスタティックメモリアレイを有し、特に制限されないが、左右に分けられ（ＤＲＧ＿Ｒ、ＤＲＧ＿Ｌ）、例えば夫々のエリアＤＲＧ＿Ｒ、ＤＲＧ＿Ｌは、１０２４＋３２バイト（Byte）の記憶容量を備える。前記エリアＤＲＧ＿Ｒと、前記エリアＤＲＧ＿Ｌとは夫々前記データ格納単位としての１ページ分の記憶容量を持つことになる。前記エリアＤＲＧ＿Ｒが割り当てられたデータレジスタを便宜上データレジスタ３５＿Ｒ、前記エリアＤＲＧ＿Ｌが割り当てられたデータレジスタを便宜上データレジスタ３５＿Ｌと称する。【００４８】
前記フラッシュメモリアレイ３とデータレジスタ３５はデータの入出力を行なう。例えばフラッシュメモリアレイ３に設けられている前記セレクタが３２ビット単位で読み出し書き込み回路のデータ入出力ノードを前記メインアンプの入出力ノードに接続するとき、前記セレクタの選択は内部クロックにより順次自動的に切り換えられ、メモリアレイ３とデータレジスタ３５＿Ｌ，３５＿Ｒとの間で１ページ分のデータの転送が可能にされる。【００４９】
前記データレジスタ３５＿Ｌ，３５＿Ｒは例えばＳＲＡＭによって構成される。ここでは前記エリアＤＲＧ＿Ｒと、前記エリアＤＲＧ＿Ｌとは夫々別々のＳＲＡＭによって構成される。前記データコントロール回路３６＿Ｒ（３６＿Ｌ）はデータレジスタ３５＿Ｒ（３５＿Ｌ）へのデータの入出力を制御する。Ｙアドレスコントロール回路３７＿Ｒ（３７＿Ｌ）はデータレジスタ３５＿Ｒ（３５＿Ｌ）に対するアドレス制御を行なう。【００５０】
外部入出力端子Ｉ／Ｏ１〜Ｉ／Ｏ１６は、アドレス入力端子、データ入力端子、データ出力端子、コマンド入力端子に兼用され、マルチプレクサ（ＭＰＸ）４０に接続される。外部入出力端子Ｉ／Ｏ１〜Ｉ／Ｏ１６に入力されたページアドレスはマルチプレクサ４０からページアドレスバッファ（ＰＡＢＵＦ）４１に入力され、Ｙアドレス（カラムアドレス）はマルチプレクサ４０からＹアドレスカウンタ（ＹＡＣＵＮＴ）４２にプリセットされる。外部入出力端子Ｉ／Ｏ１〜Ｉ／Ｏ１６に入力された書込みデータはマルチプレクサ４０からデータ入力バッファ（ＤＩＢＵＦ）４３に供給される。データ入力バッファ４３に供給された書込みデータは入力データコントロール回路（ＩＤＣＮＴ）４４を介して前記データコントロール回路３６＿Ｌ，３６＿Ｒに入力される。外部入出力端子Ｉ／Ｏ１〜Ｉ／Ｏ１６からのデータ入出力は×８ビット又は×１６ビットが選択される。×１６ビット入出力が選択されている場合には入力データコントロール回路４４は前記データコントロール回路３６＿Ｒ及び３６＿Ｌに合わせて１６ビットの書込みデータを並列に与える。×８ビット入出力が選択されている場合には入力データコントロール回路４４は、奇数ページの場合には前記データコントロール回路３６＿Ｌに８ビットの書込みデータを与え、偶数ページの場合には前記データコントロール回路３６＿Ｒに８ビットの書込みデータを与える。データコントロール回路３６＿Ｒと３６＿Ｌから出力されるリードデータはデータ出力バッファ（ＤＯＢＵＦ）４５を介してマルチプレクサ４０へ供給されて外部入出力端子Ｉ／Ｏ１〜Ｉ／Ｏ１６から出力される。【００５１】
外部入出力端子Ｉ／Ｏ１〜Ｉ／Ｏ１６に供給されたコマンドコードとアドレス信号の一部はマルチプレクサ１０から内部コントロール回路（ＯＰＣＮＴ）４６に供給される。【００５２】
前記ページアドレスバッファ４１に供給されたページアドレスはＸデコーダ３４でデコードされ、そのデコード結果にしたがってメモリアレイ３からワード線を選択する。前記ページアドレスバッファ１１に供給されたＹアドレスがプリセットされるＹアドレスカウンタ４２は、特に制限されないが、１２ビットのカウンタとされ、プリセット値を起点にアドレスカウントを行なって、Ｙアドレスコントロール回路３７＿Ｒ，３７＿ＬにカウントされたＹアドレスを供給する。カウントされたＹアドレスは入力データコントロール回路（ＩＤＣＮＴ）４４からの書込みデータをデータレジスタ３５に書込むとき、また、出力バッファ４５に供給するリードデータをデータレジスタ３５から選択するときのアドレス信号に利用される。前記ページアドレスバッファ４１に供給されたＹアドレスは前記カウントされたＹアドレスの先頭アドレスに等しい。この先頭のＹアドレスをアクセス先頭Ｙアドレスと称する。【００５３】
制御信号バッファ（ＣＳＢＵＦ）４８には、外部からのアクセス制御信号としてチップイネーブル信号／ＣＥ、コマンドラッチイネーブル信号ＣＬＥ、アドレスラッチイネーブル信号ＡＬＥ、ライトイネーブル信号／ＷＥ、リードイネーブル信号／ＲＥ、ライトプロテクト信号／ＷＰ、パワー・オン・リードイネーブル信号ＰＲＥ、及びリセット信号／ＲＥＳが供給される。信号の先頭に付された記号“／”はその信号がローイネーブルであることを意味する。【００５４】
チップイネーブル信号／ＣＥはフラッシュメモリ１の動作を選択する信号であり、ローレベルでフラッシュメモリ（デバイス）２がアクティブ（動作可能）にされ、ハイレベルでフラッシュメモリ２がスタンバイ（動作停止）にされる。リードイネーブル信号／ＲＥは外部入出力端子Ｉ／Ｏ１〜Ｉ／Ｏ１６からのデータ出力タイミングを制御し、当該信号のクロック変化に同期してデータが読み出される。ライトイネーブル信号／ＷＥはその立ち上がりエッジで、コマンド、アドレス、及びデータをフラッシュメモリ２に取込み指示する。コマンドラッチイネーブル信号ＣＬＥは外部入出力端子Ｉ／Ｏ１〜Ｉ／Ｏ１６に外部から供給されるデータをコマンドとして認識すべきことを指定する信号であり、入出力端子Ｉ／Ｏ１〜Ｉ／Ｏ１６のデータがＣＬＥ＝“Ｈ”（ハイレベル）の時に／ＷＥの立ち上がりエッジに同期して取込まれたデータは、コマンドとして認識される。アドレスラッチイネーブル信号ＡＬＥは外部入出力端子Ｉ／Ｏ１〜Ｉ／Ｏ１６に外部から供給されるデータがアドレスであることを指示する信号であり、入出力端子Ｉ／Ｏ１〜Ｉ／Ｏ１６のデータがＡＬＥ＝“Ｈ”（ハイレベル）の時に／ＷＥの立ち上がりエッジに同期して取込まれたデータは、アドレスとして認識される。ライトプロテクト信号／ＷＰはローレベルによりフラッシュメモリ１は消去及び書込み禁止とされる。パワー・オン・リードイネーブル信号ＰＲＥは電源投入後にコマンド及びアドレスを入力すること無く所定セクタのデータを読出すパワーオンリード機能を使用するときイネーブルにされる。リセット信号／ＲＥＳは電源投入後ローレベルからハイレベルに遷移されることによりフラッシュメモリ１に初期化動作を指示する。【００５５】
内部コントロール回路４６は前記アクセス制御信号などに従ったインタフェース制御を行なうと共に、入力されたコマンドに従った消去処理、書込み処理及び読出し処理などの内部動作を制御する。また、内部コントロール回路４６はレディービジー信号Ｒ／Ｂを出力する。レディービジー信号Ｒ／Ｂはフラッシュメモリ２の動作中にローレベルにされ、これによって外部にビジー状態を通知する。Ｖｃｃは電源電圧、Ｖｓｓは接地電圧である。書込み処理及び消去処理に必要な高電圧は電源電圧Ｖｃｃに基づいて内部昇圧回路（図示せず）で生成される。【００５６】
本発明の代表的な更に別の一つの具体的形態として、前記不揮発性メモリは論理アドレスと物理アドレスとの対応を定義するアドレス変換テーブルを有する。【００５７】
フラッシュメモリ２は図１に示すようなメモリカード構成１の際に外部に接続されるカードコントローラ５の制御により、論理アドレス毎の書き換え回数に応じて入れ替え処理等を行うだけでなく、フラッシュメモリ２の内部コントロール回路４６が同様に論理アドレス毎の書き換え回数に応じて入れ替え処理等を行うように内部コントロール回路４６を構成しても良い。フラッシュメモリ２自体に本願発明にかかる入れ替え処理を行うように構成することで、外部に接続されるカードコントローラ５に本願発明にかかる入れ替え処理を行う機能を有しない場合であっても、書き換えがあまり発生しない論理アドレスに格納されたデータであっても他のアドレスの書き換えによるディスターブを受け難くすることが可能となる。【００５８】
例えばフラッシュメモリとＣＰＵその他を１の半導体基板上に構成したフラッシュメモリ混載マイコンにおいても、ＣＰＵが本願発明にかかる入れ替え処理を行ってよい。【００５９】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。【００６０】
例えば、入れ替え処理対象とする論理アドレスの選択は複数個のランダムな論理アドレスから選択する手法に限定されず、適宜の選択アルゴリズムを採用することができる。また、入れ替え処理に進むために書き換え回数は２１回の倍数に限定されず適宜変更可能である。更に入れ替え処理はホストからの書き込み指示に応答する処理と共に行なう場合に限定されず、ホストからのその他の指示に応答する処理に付随して行ってもよい。
【産業上の利用可能性】
【００６１】
本発明はフラッシュメモリカードはもとより、それ以外の不揮発性メモリを搭載したメモリカード、不揮発性メモリと共にＩＣカード用マイクロコンピュータなどを搭載したマルチファンクションカードなど、種々の記憶装置、又はフラッシュメモリやフラッシュメモリ混載マイコンなどに広く適用することができる。
【図１】
0004442771.tif 000002
【図２】
0004442771.tif 000003
【図３】
0004442771.tif 000004
【図４】
0004442771.tif 000005
【図５】
0004442771.tif 000006
【図６】
0004442771.tif 000007
【図７】
0004442771.tif 000008
【図８】
0004442771.tif 000009
【図９】
0004442771.tif 000010
【図１０】
0004442771.tif 000011
【図１１】
0004442771.tif 000012