(57)【特許請求の範囲】
【請求項１】
一定の記憶容量、及び未記憶と有効と無効との三つの状態、を持つページ、を複数含む物理ブロック、を複数有するフラッシュメモリと、
有効な前記ページからデータを読み出すための読み出し部と、
未記憶の前記ページごとにデータを書き込むための書き込み部と、
有効な前記ページを無効化するためのページ無効化部と、
入力されるデータの前記フラッシュメモリへの書き込み時に、該入力されたデータを前記フラッシュメモリに記録するとともに、コピー元物理ブロックを選択し、該コピー元物理ブロックに属する有効なページであるコピー元ページを、該データ書き込み時のデータ書き込み量に応じて選択し、選択されたコピー元ページのデータを、前記読み出し部と前記書き込み部とにより、該コピー元物理ブロックとは異なる物理ブロックの未記憶のページへコピーし、前記コピー元ページを前記ページ無効化部により無効化するマージ制御部と
を備えるフラッシュメモリ装置。
【請求項２】
前記マージ制御部は、前記データ書き込み時のデータ書き込みに要するページ数と同数以上のページを、前記コピー元物理ブロックから前記コピー元ページとして選択する、
請求項１に記載のフラッシュメモリ装置。
【請求項３】
前記物理ブロックごとに一括してデータを消去するための消去部をさらに備え、
前記マージ制御部は、前記ページ無効化部により前記コピー元ページを無効化した後に、前記コピー元物理ブロックが有効なページを有しなくなった場合、前記消去部により該コピー元物理ブロックを消去する、
請求項１に記載のフラッシュメモリ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、フラッシュメモリを有するフラッシュメモリ装置に関し、特に、それぞれのフラッシュメモリに記憶されたデータのマージ方法に関する。
【０００２】
【従来の技術】
ノートパソコン、携帯情報端末(ＰＤＡ)及びディジタルカメラ等の携帯型情報処理機器は、画像データ等の多量のディジタルデータを、内部の記録媒体に記録する。その記録媒体としては、大きな記録容量で、小型でかつ軽量であるものが望ましい。
特に、ディジタルビデオカメラ(ＤＶＣ)又はオーディオプレーヤのような携帯型情報処理機器は、多量のデータをリアルタイムで記録媒体に記録し又は再生する。従って、上記の記録媒体としては、多量のデータを高速に処理できるものが望ましい。
更に、携帯型情報処理機器は長時間、電池等の内部電源だけで使用される。従って、上記の記録媒体としては、データの入出力及び保持時の消費電力を小さく抑えたものが望ましい。
その上、携帯型情報処理機器で扱われるデータは他の様々な情報処理機器間で交換される。例えば、ディジタルスチルカメラ(ＤＳＣ)で撮影された画像データはプリンタで印刷され、パソコンでディジタル処理され、携帯電話で伝送され、又は、テレビ画面に映し出される。従って、上記の記録媒体としては、様々な情報処理機器間で共用できるものが望ましい。
【０００３】
上記の要求に応える記録媒体として、従来のフレキシブルディスク、ハードディスク及び光ディスク等と共に、半導体メモリが多用されている。特に、ＰＣカードのようにフラッシュメモリ内蔵のカード型記録媒体(以下、フラッシュメモリカードという)が代表的である。
フラッシュメモリカードは、情報処理機器の専用スロットに差し込まれ、その情報処理機器とデータを交換する。その専用スロットはフラッシュメモリカードについての所定の規格に従う。その専用スロットを持つ情報処理機器同士は、同一のフラッシュメモリカードを通してデータを交換できる。
【０００４】
フラッシュメモリはＲＡＭとは異なり、一旦記憶したデータを電力消費なしで長時間保持できる。更にＲＯＭとは異なり、電気的にデータを書き換えできる。それらの点で、フラッシュメモリはＲＡＭ及びＲＯＭに比べて、上記の記録媒体として有利である。
【０００５】
フラッシュメモリは一般に、一定数のメモリセルごとに複数のページに分割され、更に、一定数のページごとに複数の物理ブロックに分割されている。メモリセルはそれぞれ「1」と「0」との二つの状態を取り得る。それにより、一つのメモリセルは1ビットのデータを記憶できる。
【０００６】
フラッシュメモリのメモリセルは「1」と「0」との二つの状態間の遷移について、例えばＮＡＮＤ型フラッシュメモリでは次の特徴を有する:  「1」の状態のメモリセルは一つずつ「0」の状態へ遷移できる。一方、「0」の状態のメモリセルは、同じ物理ブロックに属するもの全てを一括してのみ、「1」の状態へ遷移できる。
それ故、フラッシュメモリに記憶されたデータは、物理ブロックごとに一括してのみ消去できる。ここで、データの消去とは、その物理ブロック内のメモリセルを全て「1」の状態に初期化することを意味する。
一方、フラッシュメモリへのデータの書き込みは、データを消去されたページに対してのみ可能である。ここで、データの書き込みとは、「1」の状態のメモリセルのいくつかを「0」の状態へ遷移させることを意味する。
【０００７】
フラッシュメモリは、データを既に記憶しているページに対しては新たなデータを上書きできない。何故なら、例えばＮＡＮＤ型フラッシュメモリでは「0」の状態のメモリセルを個別に「1」の状態へ遷移できないからである。従って、同じページに別のデータを上書きする時、そのページを含む物理ブロック全体のデータを予め消去しなければならない。従って、フラッシュメモリへのデータの上書き時間はＲＡＭに比べ、一般にデータの消去時間だけ長い。
【０００８】
フラッシュメモリへのデータの書き込みを高速にした記憶装置は、例えば特開平6−301601号公報で開示されている。その記憶装置のように、従来のフラッシュメモリ装置は、複数のフラッシュメモリ又は複数の物理ブロックに対して並列にデータを書き込む。それにより、データの書き込み時間を短縮する。
【０００９】
図10は、従来のフラッシュメモリカード100と情報処理機器(以下、ホストという)Hとによるデータ交換の一例を示すブロック図である。
フラッシュメモリカード100はホストHと、例えば、データラインDAT、クロックラインCLK、電源ラインVDD、グラウンドラインVSS及びコマンドラインCMDの5種類のラインで接続される。
【００１０】
ホストインタフェース1はコマンドラインCMDを通じてホストHからコマンドを受信し、解読する。そのコマンドが例えばデータの書き込み命令である時、ホストインタフェース1は、データの書き込み先としてホストHにより指示された論理アドレスALをコマンドから解読し、フラッシュメモリ制御部30へ出力する。一方ホストインタフェース1は、書き込み対象のデータDaをデータラインDATから受信し、バッファ2へストアする。
【００１１】
フラッシュメモリ制御部30では、アドレス変換部30aがデータDaの書き込み先の論理アドレスALをホストインタフェース1から入力する。
アドレス変換部30aは一つの論理アドレスに対して一般に、複数のエリアの物理アドレスを対応させる。ここで、一つのエリアは、フラッシュメモリ4のセルアレイ4b内の、例えば2ページに相当する。特に、同じエリアに属するページはそれぞれ異なる物理ブロックに属する。
【００１２】
アドレス変換部30aは更に、同じ論理アドレスに対応する複数のエリアをそれぞれ、未記憶、有効及び無効の三つの状態に区別する。それぞれのエリアの状態に関する情報は、フラッシュメモリ4のそれぞれのページに付加された冗長領域に記憶される。ここで、冗長領域は一定数のメモリセルから成る。更に、同じエリアに属するページの冗長領域には、そのエリアの状態に関する共通の情報が記憶される。
未記憶の状態とは、データの消去後そのエリアにはまだデータが書き込まれていないことを表す。それに対して、有効と無効との状態は、データを書き込まれたエリアの状態である。有効又は無効の状態はそれぞれ、読み出し部30bによるそのエリアからのデータの読み出しが許可され又は禁止されていることを表す。
【００１３】
データDaの書き込み先の論理アドレスALを入力した時、アドレス変換部30aはセルアレイ4b内から未記憶のエリアを選択し、データDaの書き込み先のエリアとして割り当てる。アドレス変換部30aは更に、そのエリアの物理アドレスAPを上記の論理アドレスALに対応させる。
【００１４】
書き込み部30cは書き込み先のエリアの物理アドレスAPをフラッシュメモリ4のアドレスデコーダ4cへ出力する。それと共に、書き込み対象のデータDaをバッファ2からフラッシュメモリ4のページバッファ4aへ出力する。
フラッシュメモリ4はページバッファ4aを、例えば二つ有する。ページバッファ4aは一つ当たり1ページのデータをストアできる。つまり、二つのページバッファ4aは合わせて1エリアのデータをストアできる。従って、バッファ2から出力された書き込み対象のデータDaは1エリアずつ、ページバッファ4aへストアされる。
【００１５】
二つのページバッファ4aにストアされた1エリアのデータは、アドレスデコーダ4cにより指定された2ページへ並列に書き込まれる。こうして、従来のフラッシュメモリカード100は、フラッシュメモリ4へのデータの書き込みを二つの物理ブロックに対して並列に実行する。それにより、データの書き込み時間を短縮する。
【００１６】
データDaの書き込み先の論理アドレスALを入力した時、アドレス変換部30aは上記の動作と共に、その論理アドレスALに対応する物理アドレスの中から有効なエリアを探す。ホストにより指示されたデータの書き込みがデータの上書きである時、データDaの書き込み先の論理アドレスALに対応する物理アドレスのエリアの中に、有効なエリアが一般に存在する。その時、フラッシュメモリ制御部30内のページ無効化部30eがその有効なエリアを、次のように無効化する。それにより、読み出し部30bによるそのエリアへのアクセスが禁止される。
【００１７】
ページ無効化部30eは、有効なページに対応する冗長領域内のデータを書き換え、それによりそのページを無効化する。例えば、冗長領域内の所定の1ビット(以下、フラグという)が「1」の時、そのページは有効であり、「0」の時無効である、と定義する。有効なページに対応するフラグは「1」であるので、ページ無効化部30eはそのフラグを「1」から「0」に遷移させる。すなわち、冗長領域のフラグに「0」を書き込む。それにより、そのページは無効化される。
【００１８】
上記の通り、従来のフラッシュメモリカード100は、ホストからデータの上書きを指示された時、元のデータを消去せず、別のエリアへ新たなデータを書き込む。更に、新たなデータを書き込まれたエリアの物理アドレスをデータの書き込み先の論理アドレスに対応させる。その上、元のデータを記憶したエリアについて、その状態を無効にする。それにより、その論理アドレスを目標とするデータの読み出し命令をホストから受けた時、読み出し部30bはその論理アドレスに対応する複数のエリアの中で、最新のデータを記憶したエリアへアクセスする。こうして、同一の論理アドレスへのデータの上書きが、フラッシュメモリでのデータの消去を伴わずに実現される。それ故、データの上書き時間がデータの消去時間だけ短縮される。
【００１９】
【発明が解決しようとする課題】
上記のような従来のフラッシュメモリ装置では、同一の論理アドレスへのデータの上書きごとに、元のデータを記憶した有効なエリアが無効化され、無効なエリアの数が増大した。従って、同一の論理アドレスへのデータの上書きが何度も繰り返される時、無効なエリアの数が有効なエリアに比べて著しく増大した。
【００２０】
更に、フラッシュメモリでは物理ブロックごとに一括してのみ、データが消去される。それ故、従来のフラッシュメモリ装置では、消去目標の物理ブロック内に一つでも有効なエリアがあると、その物理ブロック内の多数の無効なエリアに対してデータの消去が実行され得なかった。従って、有効なエリアに対する無効なエリアの割合を低減できなかった。
以上の結果、従来のフラッシュメモリ装置では、データの上書きの繰り返しにより、フラッシュメモリへ記憶可能なデータ量がフラッシュメモリの記憶容量に比べて大きく減少した。
【００２１】
本発明は、有効なページに対する無効なページの割合を低減し、それにより記憶可能なデータ量を増大したフラッシュメモリ装置、の提供を目的とする。
【００２２】
【課題を解決するための手段】
本発明によるフラッシュメモリ装置は、
(A)  (a)  一定の記憶容量、及び、(b)  未記憶と有効と無効との三つの状態、を持つページ、を複数含む物理ブロック、を複数有するフラッシュメモリ；
(B)  外部から入力した論理アドレスを、対応するページの物理アドレスの一つに変換するためのアドレス変換部；
(C)  有効なページからデータを読み出すための読み出し部；
(D)  未記憶のページごとにデータを書き込むための書き込み部；
(E)  物理ブロックごとに一括してデータを消去するための消去部；
(F)  有効なページを無効化するためのページ無効化部；並びに、
(G)  (a)  コピー元の物理ブロックを選択し、(b)  読み出し部と書き込み部とにより、コピー元の物理ブロックに属する所定数の有効なページのデータを未記憶のページへコピーする、ためのマージ制御部；
を具備する。
【００２３】
ここで、ページの三つの状態はそれぞれ次のように定義される:  未記憶の状態とは、データの消去後そのページにはまだデータが書き込まれていないことを表す。それに対して、有効と無効との状態は、データを書き込まれたページの状態である。有効又は無効の状態はそれぞれ、読み出し部によるそのページからのデータの読み出しが許可され又は禁止されていることを表す。
【００２４】
上記のフラッシュメモリ装置では特に、外部から入力した論理アドレスへのデータの上書きが、次のように実行される：  データの書き込み時、アドレス変換部は上記の論理アドレスを未記憶のページの物理アドレスへ変換する。書き込み部はその物理アドレスのページへ、外部から入力した新たなデータを書き込む。一方、ページ無効化部が、元のデータを記憶した有効なページ、を無効化する。それにより、上記の論理アドレスからのデータの読み出し時、読み出し部は上記の無効化されたページに代えて、新たなデータを書き込まれたページへアクセスする。こうして、上記のフラッシュメモリ装置では、同一の論理アドレスへのデータの上書きが、データの消去を実行することなく実現される。それ故、データの消去に要する時間だけデータの上書き時間が短縮される。
【００２５】
更に、上記のフラッシュメモリ装置では、マージ制御部が、所定の物理ブロックから有効なページのデータを読み出し部により読み出し、そのデータを別の未記憶のページへ書き込み部により書き込む。それにより、所定の物理ブロック内の有効なページのデータを他の物理ブロックへコピーできる。特に、所定の物理ブロック内の全ての有効なページのデータをコピーし終えた時、消去部によりその物理ブロックのデータを一括して消去する。以下、有効なページのデータのコピー、及び、それに続く物理ブロックのデータの消去を、マージ処理という。上記のフラッシュメモリ装置は従来の装置とは異なり、マージ処理により、有効なページを含む物理ブロックについて、その中の無効なページのデータを消去できる。従って、上記のフラッシュメモリ装置は、有効なページに対する無効なページの割合を低減できる。その結果、データの上書きの繰り返し時での記憶可能なデータ量が従来の装置より多い。
【００２６】
上記のフラッシュメモリ装置は、次のことを特徴としても良い：
書き込み部による新たなデータの書き込み時、マージ制御部が、
(A)  未記憶のページのみを含む物理ブロック、の数をカウントし；
(B)  第一の閾値以下のカウント値を得た時、コピー元の物理ブロックを選択し；
(C)  (a)  コピー元の物理ブロックに属し、かつ、(b)  新たなデータを書き込まれるページの数と比べて少なくとも同数の有効なページ、をコピー元のページとして選択し；
(D)  コピー元のページのデータを未記憶のページへコピーし；
(E)  コピー元のページをページ無効化部により無効化し；
(F)  消去部により、有効なページを含まない物理ブロックについてデータの消去を実行する。
【００２７】
もし新たなデータの書き込みごとにマージ処理を行うと、マージ処理の時間だけデータの書き込み時間が従来のフラッシュメモリ装置より長い。そこで、上記のフラッシュメモリ装置ではマージ制御部が、新たなデータの書き込み時、未記憶のページのみを含む物理ブロック(以下、消去済物理ブロックという)の数をカウントする。そのカウント値が第一の閾値より小さい時、すなわち、データの書き込み可能な領域が所定の大きさより狭い時、マージ制御部はマージ処理を実行する。こうして、マージ処理の実行時期の制限により、上記のフラッシュメモリ装置は、マージ処理によるデータの書き込み時間の延長を低減できる。
【００２８】
更に、書き込み対象のデータ量は一般に、物理ブロックの整数倍程度の記憶容量に等しい。そこで、マージ制御部はコピー元のページの数を、新たなデータを書き込まれるページと比べて同数以上にする。それにより、同一の論理アドレスへのデータの上書き時、マージ処理により消去される物理ブロック数を、新たなデータの書き込みにより消費される消去済物理ブロック数と比べて同程度以上にできる。その結果、上記のフラッシュメモリ装置では、データの上書きの繰り返し時、有効なページに対する無効なページの割合の増大が回避される。
【００２９】
上記のフラッシュメモリ装置は、次のことを特徴としても良い：
書き込み部による新たなデータの書き込み時、マージ制御部が、
(A)  未記憶のページのみを含む物理ブロック（消去済物理ブロック）の数をカウントし；
(B)  第二の閾値以下のカウント値を得た時、書き込み部に対して新たなデータの書き込みを禁止して、コピー元の物理ブロックを選択し；
(C)  コピー元の物理ブロックに属する有効なページのデータを全て、コピー元の物理ブロックとは別の物理ブロックに属する未記憶のページへコピーし；
(D)  消去部により、コピー元の物理ブロックのデータを消去する。
【００３０】
上記のフラッシュメモリ装置では、消去済物理ブロックの残数が第二の閾値以下である時、新たなデータの書き込みより優先してマージ処理が行われる。それにより、消去済物理ブロックの数を第二の閾値程度以上確保できるように、有効なページに対する無効なページの割合を低減する。その結果、上記のフラッシュメモリ装置では記憶可能なデータ量が増大し得る。
【００３１】
消去済物理ブロックの残数が第一の閾値以下である時の上記の動作と、第二の閾値以下である時の上記の動作と、の両方を上記のフラッシュメモリ装置が行う時、第二の閾値は第一の閾値より小さい。それにより、新たなデータの書き込みができないほど消去済物理ブロックの数が少ない時に初めて、新たなデータの書き込みより優先してマージ処理が実行される。その結果、マージ処理によるデータの書き込み時間の延長を低減できる。
【００３２】
上記のフラッシュメモリ装置が、物理ブロックのアドレスとその物理ブロックに属する無効なページの数とのリスト、を記憶するためのアドレスメモリ、を更に有しても良い。マージ制御部はコピー元の物理ブロックの選択時、アドレスメモリにアクセスし、上記のリストを参照する。それにより、無効なページを多く含む物理ブロックから順に、コピー元の物理ブロックを容易にかつ迅速に選択できる。その結果、データをコピーすべき有効なページの数が最小になるので、上記のマージ処理に要する時間を短縮できる。
【００３３】
上記のフラッシュメモリ装置が、次のことを特徴としても良い:
(a)  異なる物理ブロックにそれぞれ属する所定数のページが一つのエリアに割り当てられ；
(b)  読み出し部が、同じエリアに属する複数の有効なページからデータをパラレルに読み出し；
(c)  書き込み部が、同じエリアに属する複数の未記憶のページへデータをパラレルに書き込み；かつ、
(d)  ページ無効化部が、同じエリアに属する有効なページを全て無効化する。
【００３４】
上記のフラッシュメモリ装置では、フラッシュメモリに対するデータの入出力が常に一つのエリアごとに、すなわち、複数のページずつ並列に実行される。従って、フラッシュメモリに対するデータの入出力を一つのページごとに行うフラッシュメモリ装置に比べて、処理速度が速い。
【００３５】
上記のフラッシュメモリ装置が更に、次のことを特徴としても良い:
(a)  そのフラッシュメモリ装置がフラッシュメモリを二つ以上有し；
(b)  読み出し部、書き込み部、消去部、ページ無効化部又はマージ制御部、の少なくとも二つが、それぞれ異なるフラッシュメモリに対して並列に動作する。
【００３６】
上記のフラッシュメモリ装置では、例えば、一つのフラッシュメモリに対しては書き込み部が新たなデータの書き込みを行う。それと並行して、別のフラッシュメモリに対してはマージ制御部がマージ処理を行う。それにより、フラッシュメモリを一つだけ含むフラッシュメモリ装置に比べ、マージ処理によるデータの書き込み時間の延長を低減できる。
【００３７】
本発明の一つの観点による、フラッシュメモリに記憶されたデータのマージ方法は、
(a)  一定の記憶容量、及び、(b)  未記憶と有効と無効との三つの状態、を持つページ、を複数含む物理ブロック、を複数有するフラッシュメモリ、に記憶されたデータのマージ方法であり、
(a)  コピー元の物理ブロックを選択するステップ；
(b)  コピー元の物理ブロックに属する所定数の有効なページのデータを、未記憶のページへコピーするステップ；及び、
(c)  物理ブロックごとにデータを消去するステップ；
を有する。
【００３８】
上記のマージ方法では、所定の物理ブロック内の有効なページのデータを他の物理ブロックへコピーし、その物理ブロックのデータを一括して消去する。そのようなマージ処理により、有効なページを含む物理ブロックについて、その中の無効なページのデータを消去できる。それ故、上記のマージ方法では、有効なページに対する無効なページの割合を低減できる。その結果、フラッシュメモリへ記憶可能なデータ量が増大し得る。
【００３９】
本発明の別の観点による、フラッシュメモリに記憶されたデータのマージ方法は、
(a)  一定の記憶容量、及び、(b)  未記憶と有効と無効との三つの状態、を持つページ、を複数含む物理ブロック、を複数有するフラッシュメモリ、に記憶されたデータのマージ方法であり、
(A)  未記憶のページのみを含む物理ブロック(消去済物理ブロック)、の数をカウントするステップ；
(B)  そのカウント値を第一の閾値と比較するステップ；
(C)  そのカウント値が第一の閾値以下である時、新たなデータの書き込みを実行し、その書き込み先のページの数を取得するステップ；
(D)  コピー元の物理ブロックを選択するステップ；
(E)  (a)  コピー元の物理ブロックに属し、かつ、(b)  新たなデータの書き込み先のページの数と比べて少なくとも同数の有効なページ、をコピー元のページとして選択するステップ；
(F)  コピー元のページのデータを、未記憶のページへコピーするステップ；
(G)  コピー元のページを無効化するステップ；
(H)  有効なページを含まない物理ブロック、を消去目標物理ブロックとして選択するステップ；及び、
(I)  消去目標物理ブロックのデータを消去するステップ；
を有する。
【００４０】
上記のマージ方法では、消去済物理ブロックの数が第一の閾値より小さい時、すなわち、データの書き込み可能な領域が所定の大きさより狭い時、マージ処理が実行される。従って、マージ処理の実行時期の制限により、マージ処理によるデータの書き込み時間の延長を低減できる。
【００４１】
更に、書き込み対象のデータ量は一般に、物理ブロックの整数倍程度の記憶容量に等しい。上記のマージ方法では、コピー元のページの数が新たなデータの書き込み先のページと比べて同数以上である。従って、特に、同一の論理アドレスへのデータの上書き時、有効なページのデータのコピーにより消去可能となる物理ブロック数が、新たなデータの書き込みにより消費される消去済物理ブロック数と比べて同程度以上になり得る。その結果、上記のマージ方法では、データの上書きの繰り返し時、有効なページに対する無効なページの割合の増大を回避できる。
【００４２】
本発明の更に別の観点による、フラッシュメモリに記憶されたデータのマージ方法は、
(a)  一定の記憶容量、及び、(b)  未記憶と有効と無効との三つの状態、を持つページ、を複数含む物理ブロック、を複数有するフラッシュメモリ、に記憶されたデータのマージ方法であり、
(A)  未記憶のページのみを含む物理ブロック(消去済物理ブロック)の数をカウントするステップ；
(B)  そのカウント値を第二の閾値と比較するステップ；
(C)  そのカウント値が第二の閾値以下である時、新たなデータの書き込みを禁止するステップ；
(D)  コピー元の物理ブロックを選択するステップ；
(E)  コピー元の物理ブロックに属する有効なページのデータを全て、コピー元のページとして選択するステップ；
(F)  コピー元のページのデータを、コピー元の物理ブロックとは別の物理ブロックに属する未記憶のページへコピーするステップ；及び、
(G)  コピー元の物理ブロックのデータを消去するステップ；
を有する。
【００４３】
上記のマージ方法では、消去済物理ブロックの残数が第二の閾値以下である時、新たなデータの書き込みより優先してマージ処理が行われる。それにより、消去済物理ブロックの数を第二の閾値程度以上確保できるように、有効なページに対する無効なページの割合を低減する。その結果、上記のマージ方法では、フラッシュメモリへ記憶可能なデータ量が増大し得る。
【００４４】
消去済物理ブロックの残数が第一の閾値以下である時の上記のマージ処理と、第二の閾値以下である時の上記のマージ処理と、の両方を上記のマージ方法が含む時、第二の閾値は第一の閾値より小さい。それにより、新たなデータの書き込みができないほど消去済物理ブロックの数が少ない時に初めて、新たなデータの書き込みよりマージ処理が優先して実行される。その結果、マージ処理によるデータの書き込み時間の延長を低減できる。
【００４５】
上記のマージ方法では、コピー元の物理ブロックを選択するステップが、物理ブロックのアドレスとその物理ブロックに属する無効なページの数とのリスト、を参照するサブステップ、を有しても良い。それにより、無効なページを多く含む物理ブロックから順に、コピー元の物理ブロックを容易にかつ迅速に選択できる。その結果、データをコピーすべき有効なページの数が最小になるので、上記のマージ処理に要する時間を短縮できる。
【００４６】
【発明の実施の形態】
以下、本発明の最適な実施の形態について、その好ましい実施例を挙げて、図面を参照しつつ説明する。
【００４７】
《実施例１》
図1は、本発明の実施例１によるフラッシュメモリカード10とホストHとによるデータ交換を示すブロック図である。
フラッシュメモリカード10はホストHと、次の5種類のラインで接続される。それらのラインは、4本のデータラインDAT0〜3、クロックラインCLK、電源ラインVDD、2本のグラウンドラインVSS1、VSS2、及び、コマンドラインCMD、の合計9本から成る。
【００４８】
ホストインタフェース1は、上記の9本のラインを通してホストHと直接通信を行うための回路である。ホストインタフェース1は、コマンドラインCMDを通じてホストHからのコマンドを受信し、解読する。その後、コマンドに応じて、例えば以下の処理を行う。
【００４９】
ホストHからのコマンドがデータの読み出し命令である時、ホストインタフェース1は読み出し目標の論理アドレスALをコマンドから解読し、フラッシュメモリ制御部3へ出力する。
【００５０】
ホストHからのコマンドがデータの書き込み命令である時、ホストインタフェース1は書き込み先の論理アドレスALをコマンドから解読し、フラッシュメモリ制御部3へ出力する。一方、ホストインタフェース1は、データラインDAT0〜3から書き込み対象のデータを、クロックラインCLKからの転送クロックに同期して読み出し、バッファ2へストアする。
【００５１】
ホストHからのコマンドがデータの消去命令である時、ホストインタフェース1は消去目標の論理アドレスALをコマンドから解読し、フラッシュメモリ制御部3へ出力する。
【００５２】
バッファ2は好ましくはＳＲＡＭであり、ホストインタフェース1とフラッシュメモリ制御部3との間で交換されるデータDaを一時記憶する。それにより、処理速度の相違、すなわち、ホストHからの転送クロックCLKとフラッシュメモリカード10の内部クロックとの周波数の相違に妨げられることなく、ホストインタフェース1とフラッシュメモリ制御部3とは互いにデータDaを交換できる。
その他に、バッファ2はホストインタフェース1とフラッシュメモリ制御部3とのそれぞれに対して、作業用メモリ領域を提供する。
【００５３】
フラッシュメモリ4は好ましくはＮＡＮＤ型ＥＥＰＲＯＭ(電気的消去及び書き込み可能不揮発性メモリ)であり、ページバッファ4a、セルアレイ4b、アドレスデコーダ4c及び消去回路4dを含む。
【００５４】
図2はセルアレイ4bの構成を示す模式図である。
セルアレイ4bは複数の物理ブロックB0、B1、B2、・・・の集合である。それぞれの物理ブロックは多数のメモリセルを、次のように二次元的に配列したものである：  ＮＡＮＤ型に接続された8個のメモリセルを1列として、512列を1ページとする。更に、1ページごとに16列の冗長領域を付加する。1ページに冗長領域を付加した配列を1単位として、32単位を一つの物理ブロックとする。
例えば、第一の物理ブロックB0は32枚のページP0〜P31を含む。それぞれのページP0〜P31には16バイトの冗長領域Pr0〜Pr31が付加されている。同様に、第二の物理ブロックB1は32枚のページQ0〜Q31を含み、それぞれのページQ0〜Q31には冗長領域Qr0〜Qr31が付加されている。他の物理ブロックB2、B3、・・・についても同様である。
【００５５】
一つのメモリセルは1ビットのデータを記憶するので、セルアレイ4bでは1列当たり8ビット＝1バイト、1ページ当たり512バイト、1物理ブロック当たり512バイト×32＝16KB、のデータがそれぞれ記憶される。更に、実施例１では、セルアレイ4bが物理ブロックを210＝1024個だけ有するので、16KB×1024＝16MBの記憶容量を有する。
【００５６】
フラッシュメモリ4はページバッファ4aを、例えば二つ有する。ページバッファ4aは一つ当たり1ページのデータをストアできる。
セルアレイ4bへのデータの書き込み時、フラッシュメモリ制御部3からのデータDaは2×512バイトずつ二つのページバッファ4aへ一時記憶される。更に、それぞれのページバッファ4aからセルアレイ4b内の別々の2ページへ並列に書き込まれる。
セルアレイ4bからのデータの読み出し時、データがセルアレイ4b内の別々の2ページから並列に読み出され、二つのページバッファ4aのそれぞれへ一時記憶される。更に、二つのページバッファ4aから一連のデータDaとしてフラッシュメモリ制御部3へパラレルに転送される。
【００５７】
データの書き込み先又は読み出し目標の2ページはそれぞれ、異なる物理ブロックから選択される。例えば、図2に斜線で示されている2ページ、すなわち、第一の物理ブロックB0と第二の物理ブロックB1とのそれぞれの第一のページPOとQ0とが選択される。同様に、奇数番目の物理ブロックと偶数番目の物理ブロックとのそれぞれ一つずつから、対応する位置のページが一つずつ選択される。その時の選択はアドレスデコーダ4cにより、フラッシュメモリ制御部3から入力した物理アドレスAPに従って行われる。以下、そのように選択されるセルアレイ4b内の2ページの対を1エリアという。
【００５８】
消去回路4dは、フラッシュメモリ制御部3から入力した物理アドレスAPに対応する物理ブロックに高電圧を印加し、それにより、その物理ブロック内に記憶されているデータを一括して消去する。その時、物理ブロックごとにデータの消去が実行されるように、セルアレイ4b内の物理ブロックはそれぞれ互いに電気的に絶縁されている。
【００５９】
フラッシュメモリ制御部3は、以下に述べる各構成要素により、フラッシュメモリ4に対するデータの入出力制御を行う。
アドレス変換部3aはホストインタフェース1から論理アドレスALを入力する。更に、フラッシュメモリ4のセルアレイ4bの中からその論理アドレスALに対応するエリアを選択し、論理アドレスALをそのエリアの物理アドレスAPへ変換する。
アドレス変換部3aは一つの論理アドレスALに対して一般に、複数のエリアの物理アドレスAPを対応させる。更に、同じ論理アドレスALに対応する複数のエリアをそれぞれ、未記憶、有効及び無効の三つの状態に区別し、それぞれの状態に応じてそのエリアの物理アドレスAPを選択する。
【００６０】
未記憶の状態とは、データの消去後そのエリアにはまだデータが書き込まれていないことを表す。それに対して、有効と無効との状態は、データを書き込まれたエリアの状態である。有効又は無効の状態はそれぞれ、読み出し部3bによるそのエリアからのデータの読み出しが許可し又は禁止されていることを表す。
【００６１】
それぞれのエリアの状態に関する情報は、フラッシュメモリ4のそれぞれのページに付加された冗長領域(例えば、ページP0に対応する冗長領域Pr0等)に記憶される。特に、同じエリアに属するページの冗長領域には、そのエリアの状態に関する共通の情報が記憶される。
【００６２】
アドレス変換部3はフラッシュメモリカード10の起動時、フラッシュメモリ4のセルアレイ4b内の全エリアの状態をチェックする。更に、それぞれのエリアの状態についてのテーブル(以下、状態テーブルという)2aを、バッファ2内に作成する。状態テーブル2aは例えば、エリアの物理アドレス、そのエリアに対応する論理アドレス、及び、そのエリアの状態についての情報、のリストである。
【００６３】
論理アドレスALがデータの読み出し目標を示す時、アドレス変換部3aは状態テーブル2aを参照し、その論理アドレスALに対応するセルアレイ4b内のエリアの中から、有効なエリアを選択する。読み出し部3bはその有効なエリアの物理アドレスAPをフラッシュメモリ4へ出力する。フラッシュメモリ4へ入力された物理アドレスAPは、アドレスデコーダ4cにより解読される。それにより、その物理アドレスAPに対応するセルアレイ4b内のエリアに属するそれぞれのページから二つのページバッファ4aへ、データが並列に読み出される。読み出し部3bはページバッファ4aからバッファ2へ、データDaを転送する。
【００６４】
論理アドレスALがデータの書き込み先を示す時、アドレス変換部3aは状態テーブル2aを参照し、セルアレイ4b内から未記憶のエリアを選択する。更に、それらの未記憶のエリアの物理アドレスAPを、書き込み先の論理アドレスALに対応させる。書き込み部3cは書き込み対象のデータDaを、バッファ2からフラッシュメモリ4内のページバッファ4aへ、2×512バイトずつ転送する。それと共に、アドレス変換部3aにより選択された未記憶のエリアの物理アドレスAPをフラッシュメモリ4へ出力する。フラッシュメモリ4へ入力された物理アドレスAPはアドレスデコーダ4cにより解読される。それにより、その物理アドレスAPに対応するセルアレイ4b内のエリアに属するページのそれぞれへ、別々のページバッファ4aからデータが並列に書き込まれる。更に、データの書き込みの終了時、アドレス変換部3は状態テーブル2aを更新し、書き込み先のエリアの状態についての項目を未記憶から有効へと書き換える。
【００６５】
上記の通り、フラッシュメモリ4に対するデータの書き込み及び読み出しは、二つのページバッファ4aを通して1エリアごとに、すなわち、異なる二つの物理ブロックの1ページずつへ並列に行われる。こうして、実施例１によるフラッシュメモリカード10は、フラッシュメモリ4に対するデータの書き込み時間及び読み出し時間を短縮する。
【００６６】
論理アドレスALがデータの消去目標を示す時、アドレス変換部3aはその論理アドレスALに対応する物理ブロックの物理アドレスAPを特定する。消去部3dは、アドレス変換部3aにより特定された消去目標の物理アドレスAPを、フラッシュメモリ4内の消去回路4dへ出力する。消去回路4dはアドレスデコーダ4cを停止し、入力した物理アドレスAPに対応する物理ブロックへ所定の高電圧を印加する。それにより、その物理ブロックに対するデータの消去が実行される。更に、データの消去の終了時、アドレス変換部3は状態テーブル2aを更新し、消去目標の物理ブロック内の全エリアの状態についての項目を有効へ書き換える。
【００６７】
データの書き込み時、アドレス変換部3aは上記の動作と共に状態テーブル2aを参照し、書き込み先の論理アドレスALに対応する物理アドレスのエリアの中から有効なエリアを探す。ホストHにより指示された書き込みがデータの上書きである時、論理アドレスALに対応する物理アドレスのエリアの中には、有効なエリアが一般に存在する。その時、ページ無効化部3eがその有効なエリアを次のように無効化する。更に、アドレス変換部3が状態テーブル2aを更新し、そのエリアの状態についての項目を有効から無効へと書き換える。それにより、読み出し部3bによるそのエリアへのアクセスが禁止される。
【００６８】
ページ無効化部3eは、有効なページに対応する冗長領域内のデータを書き換える。それにより、そのページを無効化する。例えば、冗長領域内の所定の1ビット(フラグ)が「1」の時そのページは有効であり、「0」の時無効である、と定義する。有効なページに対応するフラグは「1」であるので、ページ無効化部3eはそのフラグを「1」から「0」に遷移させる。すなわち、冗長領域内のフラグに「0」を書き込む。それにより、そのページは無効化される。
【００６９】
上記の通り、実施例１によるフラッシュメモリカード10は、ホストHからデータの上書きを指示された時、元のデータを消去せず、別のエリアへ新たなデータを書き込む。更に、新たなデータを書き込まれたエリアの物理アドレスをデータの書き込み先の論理アドレスに対応させる。その上、その論理アドレスに対応する他の物理アドレスのエリアについて、その状態を無効にする。それにより、その論理アドレスを目標とするデータの読み出し命令をホストから受けた時、読み出し部3bはその論理アドレスに対応する複数のエリアの中で、最新のデータを記憶したエリアへのみアクセスできる。こうして、同一の論理アドレスへのデータの上書きが、フラッシュメモリ4でのデータの消去を伴わずに実現される。それ故、データの上書き時間がデータの消去時間だけ短縮される。
【００７０】
実施例１によるフラッシュメモリカード10はフラッシュメモリ制御部3内に更に、マージ制御部3fを有する。
上記の通り、データの上書きは無効なページを生成する。従って、データの上書きを繰り返すと、有効なエリアに対する無効なエリアの割合が増大する。マージ制御部3fは、読み出し部3b、書き込み部3c、消去部3d及びページ無効化部3eを以下に述べるように制御する。それにより、所定の物理ブロック内の有効なページのデータを別の物理ブロック内の未記憶のページへコピーする。更に、元の物理ブロックのデータを消去し、未記憶のページのみを含む物理ブロック(消去済物理ブロック)の数を増やす。その結果、有効なエリアに対する無効なエリアの割合を低減できる。
【００７１】
図3はマージ制御部3fの動作についてのフローチャートである。
マージ制御部3fはフラッシュメモリ4へのデータの書き込み時に起動する。
ステップS1：
マージ制御部3fはバッファ2内の状態テーブル2aを参照し、消去済物理ブロックの数Nをカウントする。
ステップS2：
ステップS1でカウントされた消去済物理ブロック数Nを、第一の閾値th1と第二の閾値th2とそれぞれ比較する。ここで、第一の閾値th1及び第二の閾値th2はそれぞれ、セルアレイ4b内の全物理ブロック数の、例えば、約50％及び約20％に等しい。
更に、上記の比較の結果に依存して、マージ制御部3fは以下のように処理を分岐する:  (1)  消去済物理ブロック数Nが第一の閾値th1以上である時(N≧th1)、マージ制御部3fは停止する。(2)  消去済物理ブロック数Nが第一の閾値th1より小さく第二の閾値th2以上である時(th2≦N＜th1)、マージ制御部3fは第一のマージ処理S3を実行する。(3)  消去済物理ブロック数Nが第二の閾値th2より小さい時(N＜th2)、マージ制御部3fは第二のマージ処理S4を実行する。
【００７２】
ステップS1及びステップS2により、消去済物理ブロック数Nが第一の閾値th1より小さい時のみ、すなわち、データの書き込み可能な領域が残り少ない時のみ、マージ制御部3fは以下のマージ処理を実行する。こうして、実施例１によるフラッシュメモリカード10では、マージ処理によるデータの書き込み時間の延長を制限する。
【００７３】
＜第一のマージ処理S3＞
図4は第一のマージ処理S3についてのフローチャートである。
図5は第一のマージ処理S3時、セルアレイ4b内のページの状態の変化を示す模式図である。実施例１では、奇数番目の物理ブロックの一つと、偶数番目の物理ブロックの一つと、の対応するページ同士は同じエリアに属する。更に、データの入出力はエリアごとにパラレルに行われる。従って、ページの状態の変化は、奇数番目の物理ブロックと偶数番目の物理ブロックとで実質上共通である。それ故、図5では、セルアレイ4b内の奇数番目の物理ブロックだけが示されている。
【００７４】
図5では、それぞれのエリアP0、P1、P2、・・・に記憶されたデータが、それぞれのエリアを示す四角形内に書かれた符号D0、D1、D2、・・・で表される。その上、それぞれのエリアの状態が、対応する冗長領域Pr0、Pr1、Pr2、・・・を示す四角形内に書かれた数字1又は0で表される。ここで、数字1又は0はそれぞれ有効又は無効の状態を示す。更に、それぞれのエリアを示す四角形が空白の時、そのエリアの状態は未記憶である。
【００７５】
サブステップS31：
図5の(a)に示されているように、新たなデータ(例えばd1、d2及びd3)が未記憶のエリアに書き込まれる。その時、マージ制御部3fは、新たなデータを書き込まれた未記憶のエリアの数k(例えば3)を取得する。
【００７６】
サブステップS32：
マージ制御部3fはバッファ2内のアドレステーブル2bを参照し、無効なエリアを最も多く含む物理ブロックから順に、コピー元の物理ブロックBLを選択する。ここで、アドレステーブル2bは、物理ブロックのアドレスとその物理ブロックに属する無効なページの数とのリストである。例えば、図5の(a)では先頭の物理ブロックBLがコピー元の物理ブロックとして選択されている。
【００７７】
サブステップS33：
マージ制御部3fはバッファ2内の状態テーブル2aを参照し、コピー元の物理ブロックBLの先頭エリアP0から順に有効なエリアを、サブステップS31で取得したエリア数と同数、すなわち、kエリアだけ選択する。例えば、図5の(a)では、有効な3エリアP0、P1及びP3が選択される。
ここで、コピー元の物理ブロックBL内の有効なエリアの数がkより小さい時、サブステップS32を再実行して別の物理ブロックをコピー元の物理ブロックとして選択し、その物理ブロックから残りの有効なエリアを選択する。
【００７８】
サブステップS34：
マージ制御部3fはバッファ2内の状態テーブル2aを参照し、コピー元の物理ブロックBLとは別の物理ブロックから未記憶のエリアを、サブステップS31で取得したエリア数と同数、すなわち、kエリアだけ選択する。例えば、図5の(a)では未記憶の3エリアCP0、CP1及びCP3が選択される。
【００７９】
サブステップS35：
マージ制御部3fは読み出し部3bにより、サブステップS33で選択された有効なエリアからデータを読み出す。読み出されたデータは、バッファ2へ一時記憶する。更に、マージ制御部3fは書き込み部3cにより、バッファ2へ一時記憶したデータを、サブステップS34で選択された未記憶のエリアへそれぞれ書き込む。こうして、コピー元の物理ブロックBL内の有効なkエリアのデータが、別の物理ブロックの未記憶のエリアへそれぞれコピーされる。例えば、図5の(a)では、コピー元の物理ブロックBL内の有効な3エリアP0、P1及びP3のデータD0、D1及びD3がそれぞれ、未記憶の3エリアCP0、CP1及びCP3へコピーされる。
【００８０】
サブステップS36：
マージ制御部3fはページ無効化部3eにより、コピー元の物理ブロックBL内の有効なkエリアを無効化する。例えば、図5の(b)では、コピー元の物理ブロックBL内の有効な3エリアP0、P1及びP3に対応する冗長領域Pr0、Pr1及びPr3のデータが「1」から「0」へ書き換えられる。
更に、マージ制御部3fはバッファ2内の状態テーブル2aを更新し、コピー元の物理ブロックBL内の有効なkエリアの状態についての項目を、有効から無効へ書き換える。それに加えて、マージ制御部3fは更新された状態テーブル2aに基づいて、バッファ2内のアドレステーブル2bを更新する。
【００８１】
サブステップS37：
マージ制御部3fはバッファ2内の状態テーブル2aを参照し、無効なエリアのみ又は多数の無効なエリアと少数の未記憶のエリアとのみを含む物理ブロック、を選択し、消去目標物理ブロックBEとする。例えば、図5の(c)では、先頭の物理ブロックBE内の全エリアの状態が無効であるので、その物理ブロックBEが消去目標として選択される。
【００８２】
サブステップS38：
サブステップS37で消去目標物理ブロックBEが選択できたかどうか、をチェックする。消去目標物理ブロックBEが有る時、マージ制御部3fは処理をサブステップS39へ分岐し、それ以外の時、第一のマージ処理S3を終了する。
【００８３】
サブステップS39：
マージ制御部3fは消去部3dにより、消去目標物理ブロックBEに対してデータの消去を実行する。例えば、図5の(d)では、消去目標物理ブロックBE内のエリアを示す四角形が全て空白で描かれ、全エリアの状態が未記憶に遷移したことを表している。データの消去の終了後、マージ制御部3fはバッファ2内の状態テーブル2aを更新し、消去目標物理ブロックBE内の全エリアの状態についての項目を有効へ書き換える。それに加えて、マージ制御部3fは更新された状態テーブル2aに基づいて、バッファ2内のアドレステーブル2bを更新する。その上で、マージ制御部3fは処理をサブステップS37から繰り返す。
【００８４】
上記の通り、消去済物理ブロック数Nが第一の閾値th1より小さい時、第一のマージ処理S3はデータの書き込みごとに実行される。書き込み対象のデータ量は一般に、物理ブロックの整数倍程度の記憶容量に等しい。一方、マージ制御部3fはサブステップS33で有効なエリアを、新たなデータを書き込まれるエリアと同数だけ選択する。従って、特に同一の論理アドレスへのデータの上書き時、第一のマージ処理S3により消去可能となる物理ブロック数を一般に、新たなデータの書き込みにより消費される消去済物理ブロック数と同程度にできる。その結果、実施例１によるフラッシュメモリカード10では、データの上書きの繰り返し時、有効なエリアに対する無効なエリアの割合の増大を抑制できる。
【００８５】
＜第二のマージ処理S4＞
図6は第二のマージ処理S4についてのフローチャートである。
図7は第二のマージ処理S4時、セルアレイ4b内のページの状態の変化を示す模式図である。図7では図5と同様、セルアレイ4b内の奇数番目の物理ブロックだけが示されている。更に、エリアに記憶されたデータ及びエリアの状態は図5と同様な符号で表されている。
【００８６】
サブステップS41：
マージ制御部3fは第一のマージ処理S3時とは異なり、書き込み部3cに対して新たなデータの書き込みを禁止する。
【００８７】
サブステップS42：
マージ制御部3fは第一のマージ処理S3のサブステップS32と同様に、バッファ2内のアドレステーブル2bを参照し、無効なエリアを最も多く含む物理ブロックから順に、コピー元の物理ブロックBLを選択する。例えば、図7の(a)では先頭の物理ブロックBLがコピー元の物理ブロックとして選択されている。
【００８８】
サブステップS43：
マージ制御部3fはバッファ2内の状態テーブル2aを参照し、コピー元の物理ブロックBL内の有効なエリアを全て選択する。例えば、図7の(a)では、物理ブロックBL内の全ての有効なエリアP0及びP3が選択される。
【００８９】
サブステップS44：
マージ制御部3fはバッファ2内の状態テーブル2aを参照し、コピー元の物理ブロックBLとは別の物理ブロックから未記憶のエリアを、サブステップS43で選択された有効なエリアの数と同数だけ選択する。例えば、図7の(a)では消去済物理ブロックの一つBn内の先頭の2エリアCP0及びCP1が選択される。
【００９０】
サブステップS45：
マージ制御部3fは読み出し部3bにより、サブステップS43で選択された有効なエリアからデータを読み出す。読み出されたデータは、バッファ2へ一時記憶する。更に、マージ制御部3fは書き込み部3cにより、バッファ2へ一時記憶したデータを、サブステップS44で選択された未記憶のエリアへそれぞれ書き込む。こうして、コピー元の物理ブロックBL内の全ての有効なエリアのデータが、別の物理ブロックの未記憶のエリアへそれぞれコピーされる。例えば、図7の(a)では、コピー元の物理ブロックBL内の有効なエリアP0及びP3のデータD0及びD3がそれぞれ、消去済物理ブロックBnの未記憶の2エリアCP0及びCP1へコピーされる。
【００９１】
サブステップS46：
マージ制御部3fは図7の(b)に示されているように、コピー元の物理ブロックBLを消去目標物理ブロックBEとして選択する。更に、消去部3dにより、消去目標物理ブロックBEに対するデータの消去を実行する。例えば、図7の(c)では、消去目標物理ブロックBE内のエリアを示す四角形が全て空白で描かれ、全エリアの状態が未記憶に遷移したことを表している。
データの消去の終了後、マージ制御部3fはバッファ2内の状態テーブル2aを更新し、消去目標物理ブロックBE内の全エリアの状態についての項目を有効へ書き換える。それに加えて、マージ制御部3fは、更新された状態テーブル2aに基づいて、バッファ2内のアドレステーブル2bを更新する。
【００９２】
上記の通り、消去済物理ブロック数Nが第二の閾値th2より小さい時、第二のマージ処理S4が実行される。その時、新たなデータの書き込みは禁止され、サブステップS42〜S46による消去済物理ブロック数Nの増加が優先的に行われる。それにより、第二の閾値th2以上の消去済物理ブロック数Nが確保されるように、有効なエリアに対する無効なエリアの割合が低減される。その結果、実施例１によるフラッシュメモリカード10では、記憶可能なデータ量が増大する。
【００９３】
実施例１では、フラッシュメモリ4がページバッファ4aを二つ有した。その他に、フラッシュメモリはページバッファを一つだけ、又は、三つ以上有しても良い。
【００９４】
《実施例２》
図8は、本発明の実施例２によるフラッシュメモリカード10AとホストHとによるデータ交換を示すブロック図である。実施例２によるフラッシュメモリカード10Aは実施例１のもの10(図1)とは異なり、フラッシュメモリを二つ有する。図8では、実施例１と同様な構成要素については実施例１と同じ符号を付している。更に、それらの同様な構成要素についての説明は、実施例１のものを援用する。
【００９５】
実施例２によるフラッシュメモリ制御部3A、及び、二つのフラッシュメモリ4Aと4Bとのそれぞれの内部構成は、図1に示されている実施例１のもの3及び4とそれぞれ全く同様であるので、それらについては図1を援用する。
【００９６】
フラッシュメモリ制御部3Aとフラッシュメモリ4A又は4B内のページバッファ4aとの間でのデータ転送時間は数十nsec程度である。一方、ページバッファ4aからセルアレイ4bへのデータの書き込み時間は数百nsec程度である。それぞれの処理時間の違いを利用して、実施例２によるフラッシュメモリ制御部3Aは以下のように、一方のフラッシュメモリへのデータの書き込みと、他方のフラッシュメモリでのマージ処理と、を並列に実行する。それにより、マージ処理によるデータの書き込み時間の延長を、実施例１によるフラッシュメモリカード10に比べて低減できる。
【００９７】
例えば、第一のフラッシュメモリ4Aへのデータの書き込み時、フラッシュメモリ制御部3A内の書き込み部3cは実施例１と同様に、第一のフラッシュメモリ4Aへ書き込み対象のデータDaを1エリアずつ転送する。その1エリアの転送ごとにフラッシュメモリ制御部3A内のマージ制御部3fが起動し、第二のフラッシュメモリ4Bに対して実施例１と同様に、ステップS1及びステップS2を実行する。マージ制御部3fは更に実施例１と同様に、ステップS2での比較の結果に応じて、第一のマージ処理S3又は第二のマージ処理S4を実行する。
【００９８】
＜第一のマージ処理S3＞
実施例２による第一のマージ処理S3では実施例１とは異なり、サブステップS31でマージ制御部3fが、新たなデータを書き込まれた第一のフラッシュメモリ4A内のエリアの数を取得する。サブステップS33では、第二のフラッシュメモリ4B内のコピー元の物理ブロックから有効なエリアが、新たなデータを書き込まれた第一のフラッシュメモリ4A内のエリアの数と同数だけ選択される。それにより第一のフラッシュメモリ4Aへの1エリアのデータの書き込みと並列して、第二のフラッシュメモリ4Bの1エリアが別のエリアへコピーされる。更に、第一のフラッシュメモリ4Aでのデータの書き込み先のエリア数と、第二のフラッシュメモリ4Bで第一のマージ処理S3の対象となるエリア数と、が等しい。従って、第一のフラッシュメモリ4Aへのデータの書き込み時間と、第二のフラッシュメモリ4Bでの第一のマージ処理S3に要する時間と、がほぼ等しい。以上の結果、実施例２では実施例１と比べ、第一のマージ処理S3によるデータの書き込み時間の延長を低減できる。
【００９９】
＜第二のマージ処理S4＞
実施例２による第二のマージ処理S4では実施例１とは異なり、マージ制御部3fが、第一のフラッシュメモリ4Aへのデータの書き込みを許可する。それにより第一のフラッシュメモリ4Aへのデータの書き込みと、第二のフラッシュメモリ4Bでの第二のマージ処理S4と、が並列して実行できる。それ故、実施例２では実施例１と比べ、第二のマージ処理S4によるデータの書き込み時間の延長を低減できる。
【０１００】
《実施例３》
図9は、本発明の実施例３によるフラッシュメモリカード10BとホストHとによるデータ交換を示すブロック図である。実施例３によるフラッシュメモリカード10Bは実施例２のもの10A(図8)と同様に、フラッシュメモリを二つ有する。図9では、実施例１と同様な構成要素については実施例１と同じ符号を付している。更に、それらの同様な構成要素についての説明は、実施例１のものを援用する。
【０１０１】
実施例３による二つのフラッシュメモリ4Aと4Bとのそれぞれの内部構成は、図1に示されている実施例１のもの4とそれぞれ全く同様であるので、それらについては図1を援用する。
【０１０２】
実施例３によるフラッシュメモリ制御部3Bは、実施例１によるもの3と同様な内部構成を実質的に二重に含む。実施例１によるフラッシュメモリ制御部3と同様な内部構成の内、一方は第一のフラッシュメモリ4Aへ、他方は第二のフラッシュメモリ4Bへ、それぞれ別々に接続されている。更に、それぞれの内部構成とバッファ2Bとは別々のデータバスで接続されている。そのような構成により、実施例３によるフラッシュメモリカード10Bでは実施例２と同様に、二つのフラッシュメモリ4A及び4Bに対して、データの書き込みとマージ処理とを並列に実行できる。特に、実施例２とは異なり、バッファ2Bとフラッシュメモリ制御部3Bとの間でのデータ転送、及び、フラッシュメモリ制御部3Bとフラッシュメモリ4A又は4Bとの間でのデータ転送、も並列に実行される。従って、実施例２と比べてデータ転送時間だけ更に、データの書き込み時間を短縮できる。
【０１０３】
【発明の効果】
上記のように、本発明によるフラッシュメモリ装置は、所定の物理ブロック内の有効なページのデータを他の物理ブロックへコピーできる。更に、所定の物理ブロック内の全ての有効なページのデータをコピーし終えた時、その物理ブロックのデータを一括して消去できる。そのようなマージ処理により、本発明によるフラッシュメモリ装置は従来の装置とは異なり、有効なページを含む物理ブロックについて、その中の無効なページのデータを消去できる。従って、本発明によるフラッシュメモリ装置は、有効なページに対する無効なページの割合を低減できる。その結果、データの上書きの繰り返し時での記憶可能なデータ量が従来の装置より多い。
【０１０４】
本発明によるフラッシュメモリ装置は更に、新たなデータの書き込み時で、かつ、消去済物理ブロックの数が第一の閾値より小さい時、上記のマージ処理を実行しても良い。こうして、上記のフラッシュメモリ装置は、マージ処理の実行時期の制限により、データのコピーによるデータの書き込み時間の延長を低減できる。
【０１０５】
本発明によるフラッシュメモリ装置はコピー元のページの数を、新たなデータを書き込まれるページと比べて同数以上にしても良い。それにより、同一の論理アドレスへのデータの上書き時、上記のマージ処理により消去される物理ブロック数を、新たなデータの書き込みにより消費される消去済物理ブロック数と同程度以上にできる。その結果、データの上書きの繰り返し時、有効なページに対する無効なページの割合の増大を回避できる。それ故、記憶可能なデータ量を増大できる。
【０１０６】
本発明によるフラッシュメモリ装置では、消去済物理ブロックの数が第二の閾値以下である時、新たなデータの書き込みより優先して、上記のマージ処理が行われても良い。それにより、消去済物理ブロックの数を第二の閾値程度以上確保できるように、有効なページに対する無効なページの割合を低減できる。その結果、記憶可能なデータ量を増大できる。
【０１０７】
消去済物理ブロックの数が第一の閾値以下である時の動作と、第二の閾値以下である時の動作と、の両方を上記のフラッシュメモリ装置が行う時、第二の閾値は第一の閾値より小さい。それにより、新たなデータの書き込みができないほど消去済物理ブロックの数が少ない時に初めて、新たなデータの書き込みよりマージ処理が優先して実行される。その結果、マージ処理によるデータの書き込み時間の延長を低減できる。
【０１０８】
本発明によるフラッシュメモリ装置が、物理ブロックのアドレスとその物理ブロックに属する無効なページの数とのリストを有しても良い。上記のマージ処理では、コピー元の物理ブロックの選択時、上記のリストが参照される。それにより、コピー元の物理ブロックが、無効なページを最も多く含む物理ブロックから順に、容易にかつ迅速に選択される。その結果、上記のマージ処理の対象となる有効なページの数が最小になるので、上記のマージ処理に要する時間が短縮される。
【図面の簡単な説明】
【図１】本発明の実施例１によるフラッシュメモリカード10とホストHとによるデータ交換を示すブロック図である。
【図２】本発明の実施例１によるフラッシュメモリ4内のセルアレイ4bの構成を示す模式図である。
【図３】本発明の実施例１によるマージ制御部3fの動作についてのフローチャートである。
【図４】本発明の実施例１によるマージ制御部3fの動作の内、第一のマージ処理S3についてのフローチャートである。
【図５】本発明の実施例１による第一のマージ処理S3時、フラッシュメモリ4内のページの状態の変化を示す模式図である。
【図６】本発明の実施例１によるマージ制御部3fの動作の内、第二のマージ処理S4についてのフローチャートである。
【図７】本発明の実施例１による第二のマージ処理S4時、フラッシュメモリ4内のページの状態の変化を示す模式図である。
【図８】本発明の実施例２によるフラッシュメモリカード10AとホストHとによるデータ交換を示すブロック図である。
【図９】本発明の実施例３によるフラッシュメモリカード10BとホストHとによるデータ交換を示すブロック図である。
【図１０】従来のフラッシュメモリカード100とホストHとによるデータ交換の一例を示すブロック図である。
【符号の説明】
10        フラッシュメモリカード
4a        ページバッファ
Da       フラッシュメモリ4に対して入出力されるデータ
AL        ホストHから指示された論理アドレス
AP        論理アドレスALに対応する物理アドレス
DAT0〜3   データライン
CLK       クロックライン
VDD       電源ライン
VSS1、2   グランドライン
CMD       コマンドライン
【図１】
0004812192.tif 000002
【図２】
0004812192.tif 000003
【図３】
0004812192.tif 000004
【図４】
0004812192.tif 000005
【図５】
0004812192.tif 000006
【図６】
0004812192.tif 000007
【図７】
0004812192.tif 000008
【図８】
0004812192.tif 000009
【図９】
0004812192.tif 000010
【図１０】
0004812192.tif 000011