(57)【特許請求の範囲】
【請求項１】
不揮発性メモリを割り付ける方法であって、前記不揮発性メモリが、実質的に複数の要素に分割され、前記方法が、
前記複数の要素を、少なくとも第１グループ、第２グループ、および第３グループにグループ分けし、前記第１グループが、比較的軽度の摩耗を有する消去要素を含み、前記第２グループが、比較的重度の摩耗を有する消去要素を含むステップと、
前記第３グループに含まれる第１要素が、前記第１グループに含まれる第２要素によって実質的に置き換えられるべきであることを判定するステップと、
前記第１要素が前記第２要素によって実質的に置き換えられるべきであると判定されるとき、前記第１要素に関連付けられた内容を前記第１グループから得られた前記第２要素にコピーするステップと、
前記第１要素の内容を前記第１要素から消去するステップと、
前記コピーの後、前記第２要素を前記第３グループに関連付け、前記第２要素を前記第３グループに関連付けるステップが、前記第２要素を前記第１グループから分離するステップを含むステップとを含む、方法。
【請求項２】
前記要素を、前記第１グループ、前記第２グループ、および前記第３グループにグループ分けするステップが、各要素に関連付けられた消去カウントに基づいて前記要素をグループ分けするステップを含む、請求項１に記載の方法。
【請求項３】
前記第１要素が、消去カウントを含み、前記方法が、
前記第１要素の前記内容を消去した後、前記第１要素の前記消去カウントを増分させるステップをさらに含む、請求項１に記載の方法。
【請求項４】
前記第１要素を前記第１グループに関連付けるかを判定するために、前記第１要素の前記消去カウントを使用するステップと、
前記第１要素の前記消去カウントが、前記第１要素が前記第１グループに関連付けられるべきであることを示すとき、前記第１要素を前記第１グループに関連付け、前記第１要素を前記第１グループに関連付けるステップが、前記第１要素を前記第３グループから分離するステップを含むステップとをさらに含む、請求項３に記載の方法。
【請求項５】
前記第１要素を前記第２グループに関連付けるかを判定するために、前記第１要素の前記消去カウントを使用するステップと、
前記第１要素の前記消去カウントが、前記第１要素が前記第２グループに関連付けられるべきであることを示すとき、前記第１要素を前記第２グループに関連付け、前記第１要素を前記第２グループに関連付けるステップが、前記第１要素を前記第３グループから分離するステップを含むステップとをさらに含む、請求項３に記載の方法。
【請求項６】
前記第２グループの前記要素が、消去カウントを含み、前記第２グループの前記消去カウントが、最低消去カウントを含み、前記最低消去カウントが、前記第２グループの前記要素に含まれる第３要素に関連付けられ、前記第１要素を前記第２グループに関連付けるかを判定するために前記第１要素の前記消去カウントを使用するステップが、前記第１要素の前記消去カウントが前記最低消去カウントより大きいときを判定するステップを含む、請求項５に記載の方法。
【請求項７】
前記第１要素の前記消去カウントが、前記第１要素が前記第２グループに関連付けられるべきであることを示すとき、前記第３要素を前記第１グループに関連付け、前記第３要素を前記第１グループに関連付けるステップが、前記第３要素を前記第２グループから分離するステップを含むステップをさらに含む、請求項６に記載の方法。
【請求項８】
前記不揮発性メモリが、ＮＡＮＤフラッシュメモリであり、前記要素が、ブロックである、請求項１に記載の方法。
【請求項９】
前記第１要素に関連付けられた前記内容が、前記第１要素の前記内容、および前記第１要素の前記内容の少なくともいくつかと置き換わるように構成された実質的に新しい内容の一方である、請求項１に記載の方法。
【請求項１０】
不揮発性メモリを割り付ける方法であって、前記不揮発性メモリが、複数の要素に実質的に分割され、前記方法が、
前記複数の要素を、少なくとも第１グループ、第２グループ、および第３グループにグループ分けし、前記第１グループが、平均消去カウントより近似的に小さい消去カウントを有する消去要素を含み、前記第２グループが、前記平均消去カウントより近似的に大きい消去カウントを有する消去要素を含むステップと、
前記第３グループに含まれる第１要素が、前記第２グループに含まれる第２要素によって実質的に置き換えられるべきであるときを判定するステップと、
前記第１要素が前記第２要素によって実質的に置き換えられるべきであると判定されるとき、前記第１要素に関連付けられた内容を前記第２グループから得られた前記第２要素にコピーするステップと、
前記第１要素の内容を前記第１要素から消去するステップと、
前記コピーの後、前記第２要素を前記第３グループに関連付け、前記第２要素を前記第３グループに関連付けるステップが、前記第２要素を前記第２グループから分離するステップを含むステップとを含む、方法。
【請求項１１】
前記第１要素が静止要素であり、前記第３グループに含まれる前記第１要素が、前記第２グループに含まれる前記第２要素によって実質的に置き換えられるときを判定するステップが、
前記第１要素に関連付けられた消去カウントを前記平均消去カウントと比較するステップが、前記第３グループに含まれる前記第１要素が前記第２グループに含まれる前記第２要素によって実質的に置き換えられるべきであることを示すときを判定するステップを含む、請求項１０に記載の方法。
【請求項１２】
前記第１要素に関連付けられた前記消去カウントを前記平均消去カウントと比較するステップが、前記第３グループに含まれる前記第１要素が、前記第２グループに含まれる前記第２要素によって実質的に置き換えられるべきであることを示すときを判定するステップが、前記第１要素に関連付けられた前記消去カウントが、前記平均消去カウントより実質的に小さいときを判定するステップを含む、請求項１１に記載の方法。
【請求項１３】
前記第１要素を前記第１グループに関連付け、前記第１要素を前記第１グループに関連付けるステップが、前記第１要素を前記第３グループから分離するステップをさらに含む、請求項１０に記載の方法。
【請求項１４】
前記不揮発性メモリが、ＮＡＮＤフラッシュメモリであり、前記要素が、ブロックである、請求項１０に記載の方法。
【請求項１５】
前記第１要素に関連付けられた前記内容が、前記第１要素の前記内容、および前記第１要素の前記内容の少なくともいくつかと置き換わるように構成された実質的に新しい内容の一方である、請求項１０に記載の方法。
【請求項１６】
メモリ管理システムであって、前記メモリ管理システムが、不揮発性メモリに構成され、前記不揮発性メモリが、複数の要素に実質的に分割され、前記メモリ管理システムが、
第１マネージャであって、前記第１マネージャが、少なくとも第１グループ、第２グループ、および第３グループに前記複数の要素をグループ分けするように構成され、前記第１グループが、比較的軽度の摩耗を有する要素を含み、前記第２グループが、比較的重度の摩耗を有する要素を含む、該第１マネージャと、
第２マネージャであって、前記第２マネージャが、前記第３グループに含まれる第１要素が、前記第１グループに含まれる第２要素によって置き換えられるべきであるときを判定するように構成され、前記第２マネージャが、前記第１要素に関連付けられた内容を、前記第１グループから得られた前記第２要素にコピーし、前記第１要素の内容を前記第１要素から消去するように構成され、前記第２マネージャが、前記第１要素に関連付けられた内容を前記第２要素にコピーした後に前記第２要素を前記第３グループに関連付け、かつ前記第２要素を前記第３グループに関連付ける一部として前記第２要素を前記第１グループから分離するようにさらに構成される、第２マネージャとを備える、メモリ管理システム。
【請求項１７】
前記第１マネージャが、各要素に関連付けられた消去カウントに基づいて前記要素をグループ分けすることによって、前記要素を、前記第１グループ、前記第２グループ、および前記第３グループにグループ分けするように構成される、請求項１６に記載のメモリ管理システム。
【請求項１８】
前記第１要素が、消去カウントを含み、前記第２マネージャが、前記第１要素の前記内容を前記第１要素から消去した後、前記第１要素の前記消去カウントを増分させるようにさらに構成される、請求項１６に記載のメモリ管理システム。
【請求項１９】
前記第２マネージャが、前記第１要素を前記第１グループに関連付けるかを判定するために、前記第１要素の前記消去カウントを使用し、前記第１要素の前記消去カウントが、前記第１要素が前記第１グループに関連付けられるべきであると示すとき、前記第１要素を前記第１グループに関連付ける、請求項１８に記載のメモリ管理システム。
【請求項２０】
前記第２マネージャが、前記第１要素を前記第２グループに関連付けるかを判定するために、前記第１要素の前記消去カウントを使用し、前記第１要素の前記消去カウントが、前記第１要素が前記第２グループに関連付けられるべきであると示すとき、前記第１要素を前記第２グループに関連付けるようにさらに構成される、請求項１８に記載のメモリ管理システム。
【請求項２１】
前記第２グループの前記要素が、消去カウントを有し、前記第２グループの前記消去カウントが、最低消去カウントを有し、前記最低消去カウントが、前記第２グループの前記要素に含まれる第３要素に関連付けられ、前記第２マネージャが、前記第１要素の前記消去カウントが前記最低消去カウントより大きいときを判定することによって、前記第１要素を前記第２グループに関連付けるかを判定するために、前記第１要素の前記消去カウントを使用するように構成される、請求項２０に記載のメモリ管理システム。
【請求項２２】
前記不揮発性メモリが、ＮＡＮＤフラッシュメモリであり、前記要素が、ブロックである、請求項１６に記載のメモリ管理システム。
【請求項２３】
前記第１要素に関連付けられた前記内容が、前記第１要素の前記内容、および前記第１要素の前記内容の少なくともいくつかと置き換わるように構成された実質的に新しい内容の一方である、請求項１６に記載のメモリ管理システム。
【請求項２４】
不揮発性メモリを割り付けるためのメモリ管理システムであって、前記不揮発性メモリが、複数の要素に実質的に分割され、前記メモリ管理システムが、
第１マネージャであって、前記第１マネージャが、消去要素を、少なくとも第１グループ、第２グループ、および第３グループにグループ分けするように構成され、前記第１グループが、平均消去カウントより近似的に小さい消去カウントを有する要素を含み、前記第２グループが、前記平均消去カウントより近似的に大きい消去カウントを有する消去要素を含む、該第１マネージャと、
第２マネージャであって、前記第２マネージャが、前記第３グループに含まれる第１要素が、前記第２グループに含まれる第２要素によって置き換えられるべきであるときを判定するように構成され、前記第２マネージャが、前記第１要素に関連付けられた内容を前記第２グループから得られた前記第２要素にコピーし、前記第１要素の内容を前記第１要素から消去するようにさらに構成され、前記第２マネージャが、前記第１要素に関連付けられた内容を前記第２要素にコピーした後に前記第２要素を前記第３グループに関連付け、かつ前記第２要素を前記第３グループに関連付ける一部として前記第２要素を前記第２グループから分離するようにさらに構成される、該第２マネージャとを備える、メモリ管理システム。
【請求項２５】
前記第２マネージャが、前記第１要素に関連付けられた消去カウントを前記平均消去カウントと比較するステップが、前記第３グループに含まれる前記第１要素が、前記第２グループに含まれる前記第２要素によって実質的に置き換えられるべきであることを示すときを判定することによって、前記第３グループに含まれる前記第１要素が、前記第２グループに含まれる前記第２要素によって実質的に置き換えられるべきであるときを判定するように構成される、請求項２４に記載のメモリ管理システム。
【請求項２６】
前記第２マネージャが、前記第１要素を前記第２グループに関連付け、かつ前記第１要素を前記第３グループから分離するように構成される、請求項２４に記載のメモリ管理システム。
【請求項２７】
前記不揮発性メモリが、ＮＡＮＤフラッシュメモリであり、前記要素が、ブロックである、請求項２４に記載のメモリ管理システム。
【請求項２８】
前記第１要素に関連付けられた前記内容が、前記第１要素の前記内容、および前記第１要素の前記内容の少なくともいくつかと置き換わるように構成された実質的に新しい内容の一方である、請求項２４に記載のメモリ管理システム。
【請求項２９】
不揮発性メモリを含むシステムにおいて摩耗一様化を実施する方法であって、前記方法が、
第１記憶要素に関連付けられた内容、および前記第１記憶要素に関連付けられた前記内容と置き換わるように構成された新しい内容の一方を第２記憶要素にコピーし、前記第２記憶要素が、前記第１記憶要素に関連付けられた消去カウントより小さい消去カウントを有し、前記第２記憶要素が、第１データ構造に関連付けられ、前記第１データ構造が、第１セットの記憶要素を含むように構成されるステップと、
前記第２記憶要素を第２データ構造に関連付け、前記第２データ構造が、第２セットの記憶要素を含むように構成され、前記第２記憶要素を前記第２データ構造に関連付けるステップが、前記第２記憶要素を前記第１データ構造から分離するステップを含むステップと、
前記第１記憶要素に関連付けられた前記内容を前記第１記憶要素から消去するステップと、
前記第１記憶要素を前記第１データ構造に関連付けるときを判定するステップと、
前記第１記憶要素が前記第１データ構造に関連付けられるべきであると判定されるとき、前記第１記憶要素を前記第１データ構造に関連付け、前記第１記憶要素を前記第１データ構造に関連付けるステップが、前記第１記憶要素を前記第２データ構造から分離するステップを含むステップと、
前記第１記憶要素が前記第１データ構造に関連付けられるべきではないと判定されるとき、前記第１記憶要素を第３データ構造に関連付け、前記第３データ構造が、第３セットの記憶要素を含むように構成されるステップとを含む、該方法。
【請求項３０】
前記記憶要素に関連付けられた平均消去カウントを判定し、前記第１セットの記憶要素に含まれる前記記憶要素に関連付けられた消去カウントが、前記平均消去カウントより実質的に小さく、前記第３セットの記憶要素に含まれる前記記憶要素に関連付けられた消去カウントが、前記平均消去カウントより実質的に大きいステップをさらに含む、請求項２９に記載の方法。
【請求項３１】
前記第１記憶要素の前記内容が消去された後、前記第１記憶要素の前記消去カウントを増分させるステップをさらに含む、請求項２９に記載の方法。
【請求項３２】
前記第１記憶要素を前記第１データ構造に関連付けるときを判定するステップが、
前記第１記憶要素の前記消去カウントを前記第３セットの記憶要素に関連付けられた記憶要素の消去カウントと比較するステップを含む、請求項３１に記載の方法。
【請求項３３】
前記第１記憶要素の前記消去カウントが、前記第３セットの記憶要素に関連付けられた記憶要素の消去カウントより小さいと判定されるとき、前記第１記憶要素が、前記第１データ構造に関連付けられるべきであると判定される、請求項３２に記載の方法。
【請求項３４】
前記第１記憶要素の前記消去カウントが、前記第３セットの記憶要素に関連付けられた記憶要素の少なくとも１つの消去カウントより大きいと判定されるとき、前記第１記憶要素が、前記第１データ構造に関連付けられるべきではないと判定される、請求項３２に記載の方法。
【請求項３５】
前記第１記憶要素を前記第３データ構造に関連付けるステップが、
第３記憶要素を得て、前記第３記憶要素が、前記第３セットの記憶要素に関連付けられ、前記第３要素が、前記第１記憶要素の前記消去カウントより小さい消去カウントを有するステップと、
前記第３記憶要素を前記第１データ構造に関連付け、前記第３記憶要素を前記第１データ構造に関連付けるステップが、前記第３記憶要素を前記第３データ構造から分離するステップを含むステップとを含む、請求項３４に記載の方法。
【請求項３６】
前記第１記憶要素を前記第２データ構造から得るステップをさらに含む、請求項２９に記載の方法。
【請求項３７】
前記不揮発性メモリが、ＮＡＮＤフラッシュメモリである、請求項２９に記載の方法。
【請求項３８】
不揮発性メモリを含むシステムにおいて摩耗一様化を実施する方法であって、前記方法が、
第１記憶要素に関連付けられた内容、および前記第１記憶要素に関連付けられた前記内容と実質的に置き換わるように構成された新しい内容の一方を、第２記憶要素にコピーし、前記第２記憶要素が、前記第１記憶要素に関連付けられた消去カウントより大きい消去カウントを有し、前記第２記憶要素が、第１データ構造に関連付けられ、前記第１データ構造が、第１セットの記憶要素を含むように構成されるステップと、
前記第２記憶要素を第２データ構造に関連付け、前記第２データ構造が、第２セットの記憶要素を含むように構成され、前記第２記憶要素を前記第１データ構造に関連付けるステップが、前記第２記憶要素を前記第１データ構造から分離するステップを含むステップと、
前記第１記憶要素に関連付けられた前記内容を前記第１記憶要素から消去するステップと、
前記第１記憶要素を第３データ構造に関連付け、前記第３データ構造が、第３セットの記憶要素を含むように構成されるステップと、
前記第３データ構造から第３記憶要素を得るステップと、
前記第３記憶要素を前記第１データ構造に関連付け、前記第３記憶要素を前記第１データ構造に関連付けるステップが、前記第３記憶要素を前記第３データ構造から分離するステップを含むステップとを含む、該方法。
【請求項３９】
前記第１セットの記憶要素が、平均消去カウントより大きい消去カウントをそれぞれが有する記憶要素を含み、前記第３セットの記憶要素が、前記平均消去カウントより小さい消去カウントをそれぞれが有する記憶要素を含み、前記第１記憶要素に関連付けられた前記内容が、実質的に静止である、請求項３８に記載の方法。
【請求項４０】
前記第１記憶要素に関連付けられた前記消去カウントを、前記不揮発性メモリに関連付けられた平均消去カウントと比較するステップと、
前記第１記憶要素に関連付けられた前記消去カウントが、前記平均消去カウントより実質的に小さいときを判定し、前記第１記憶要素に関連付けられた内容を前記第２記憶要素にコピーするステップが、前記第１記憶要素に関連付けられた前記消去カウントが、前記平均消去カウントより実質的に小さいと判定されるときに行われるステップとをさらに含む、請求項３８に記載の方法。
【請求項４１】
前記不揮発性メモリが、ＮＡＮＤフラッシュメモリである、請求項３８に記載の方法。
【請求項４２】
メモリ管理システムであって、前記メモリ管理システムが、不揮発性記憶要素の割付けを管理するように構成され、前記メモリ管理システムが、
第１データ構造を維持する手段であって、前記第１データ構造が、それぞれが特定の数より実質的に小さい回数消去された記憶要素に関連付けられる、第１データ構造を維持する手段と、
第２データ構造を維持する手段であって、前記第２データ構造が、それぞれが特定の数より実質的に大きい回数消去された記憶要素に関連付けられる、第２データ構造を維持する手段と、
第３データ構造を維持する手段であって、前記第３データ構造が、前記第１データ構造または前記第２データ構造に関連付けられていない記憶要素に関連付けられ、前記第３データ構造に関連付けられた少なくとも複数の前記記憶要素が、データを含む、該第３データ構造を維持する手段と、
前記第３データ構造の第１記憶要素が置き換えられるべきときを判定する手段と、
前記第３データ構造の前記第１記憶要素が置き換えられるべきであると判定されるとき、前記第１データ構造および前記第２データ構造の一方から選択された第２記憶要素を前記第３データ構造に関連付ける手段とを備える、メモリ管理システム。
【請求項４３】
前記特定の量を判定する手段であって、前記特定の量が、前記第１データ構造の記憶要素、前記第２データ構造の記憶要素、および前記第３データ構造の記憶要素に関連付けられた平均消去カウントである、前記特定の量を判定する手段をさらに含む、請求項４２に記載のメモリ管理システム。
【請求項４４】
前記平均消去カウントを維持する手段をさらに含む、請求項４３に記載のメモリ管理システム。
【請求項４５】
前記第１データ構造を初期化する手段と、
前記第２データ構造を初期化する手段と、
前記第３データ構造を初期化する手段とをさらに含む、請求項４４に記載のメモリ管理システム。
【請求項４６】
前記第１データ構造から特定の量より実質的に小さくそれぞれが消去された前記記憶要素の第３記憶要素を前記第２データ構造に移動させる手段をさらに含む、請求項４４に記載のメモリ管理システム。
【請求項４７】
前記第２データ構造からの特定の量より実質的に大きくそれぞれが消去された前記記憶要素の第３記憶要素を前記第１データ構造に移動させる手段をさらに含む、請求項４４に記載のメモリ管理システム。
【請求項４８】
前記第１記憶要素の内容、および前記第１記憶要素に関連付けられた前記内容の少なくともいくつかと置き換わるように構成された新しい内容の一方を前記第２記憶要素にコピーする手段と、
前記第１記憶要素を消去する手段と、
前記第１記憶要素に関連付けられた消去カウントを増分させる手段とをさらに含む、請求項４２に記載のメモリ管理システム。
【請求項４９】
前記記憶要素が、前記不揮発性メモリにおけるブロックである、請求項４４に記載のメモリ管理システム。
【請求項５０】
前記不揮発性メモリが、ＮＡＮＤフラッシュメモリである、請求項４９に記載のメモリ管理システム。
【請求項５１】
メモリ管理システムであって、前記メモリ管理システムが、不揮発性記憶要素の割付けを管理するように構成され、前記メモリ管理システムが、
第１記憶要素に関連付けられた内容、および前記第１記憶要素に関連付けられた前記内容と置き換わるように構成された新しい内容の一方を第２記憶要素にコピーするためのコード装置であって、前記第２記憶要素が、前記第１記憶要素に関連付けられた消去カウントより小さい消去カウントを有し、前記第２記憶要素が、第１データ構造に関連付けられ、前記第１データ構造が、第１セットの記憶要素を含むように構成される、コード装置と、
前記第２記憶要素を第２データ構造に関連付けるためのコード装置であって、前記第２データ構造が、第２セットの記憶要素を含むように構成され、前記第２記憶要素を前記第１データ構造に関連付けるための前記コード装置が、前記第２記憶要素を前記第１データ構造から分離するためのコード装置を含む、コード装置と、
前記第１記憶要素に関連付けられた前記内容を前記第１記憶要素から消去するためのコード装置と、
前記第１記憶要素を前記第１データ構造に関連付けるときを判定するためのコード装置と、
前記第１記憶要素が前記第１データ構造に関連付けられるべきであると判定されるとき、前記第１記憶要素を前記第１データ構造に関連付けるためのコード装置であって、前記第１記憶要素を前記第１データ構造に関連付けるための前記コード装置が、前記第１記憶要素を前記第２データ構造から分離するためのコード装置を含む、コード装置と、
前記第１記憶要素が前記第１データ構造に関連付けられるべきではないと判定されるとき、前記第１記憶要素を第３データ構造に関連付けるためのコード装置であって、前記第３データ構造が、第３セットの記憶要素を含むように構成される、コード装置と、
前記コード装置を記憶するメモリと、
前記コード装置にアクセスするように構成されるプロセッサとを備える、メモリ管理システム。
【請求項５２】
前記記憶要素に関連付けられた平均消去カウントを判定するためのコード装置であって、前記第１セットの記憶要素に含まれる前記記憶要素に関連付けられた消去カウントが、前記平均消去カウントより実質的に小さく、前記第３セットの記憶要素に含まれる前記記憶要素に関連付けられた消去カウントが、前記平均消去カウントより実質的に大きい、コード装置をさらに含む、請求項５１に記載のメモリ管理システム。
【請求項５３】
前記第１記憶要素の前記内容が消去された後、前記第１記憶要素の前記消去カウントを増分させるためのコード装置をさらに含む、請求項５１に記載のメモリ管理システム。
【請求項５４】
前記第１記憶要素を前記第１データ構造に関連付けるときを判定するための前記コード装置が、
前記第１記憶要素の前記消去カウントを前記第３セットの記憶要素に関連付けられた記憶要素の消去カウントと比較するためのコード装置をさらに含む、請求項５３に記載のメモリ管理システム。
【請求項５５】
前記第１記憶要素の前記消去カウントが、前記第３セットの記憶要素に関連付けられた記憶要素の消去カウントより小さいと判定されるとき、前記第１記憶要素が、前記第１データ構造に関連付けられるべきであると判定される、請求項５４に記載のメモリ管理システム。
【請求項５６】
前記第１記憶要素の前記消去カウントが、前記第３セットの記憶要素に関連付けられた記憶要素の少なくとも１つの消去カウントより大きいと判定されるとき、前記第１記憶要素が、前記第１データ構造に関連付けられるべきではないと判定される、請求項５４に記載のメモリ管理システム。
【請求項５７】
前記第１記憶要素を前記第３データ構造に関連付けるための前記コード装置が、
第３記憶要素を得るためのコード装置であって、前記第３記憶要素が、前記第３セットの記憶要素に関連付けられ、前記第３要素が、前記第１記憶要素の前記消去カウントより小さい消去カウントを有する、コード装置と、
前記第３記憶要素を前記第３データ構造から分離するためのコード装置を含む前記第３記憶要素を前記第１データ構造に関連付けるためのコード装置と、を含む、請求項５６に記載のメモリ管理システム。
【請求項５８】
前記第１記憶要素を前記第２データ構造から得るためのコード装置をさらに含む、請求項５１に記載のメモリ管理システム。
【請求項５９】
前記不揮発性メモリが、ＮＡＮＤフラッシュメモリである、請求項５１に記載のメモリ管理システム。
【請求項６０】
メモリ管理システムであって、前記メモリ管理システムが、不揮発性記憶要素の割付けを管理するように構成され、前記メモリ管理システムが、
第１記憶要素に関連付けられた内容を第２記憶要素にコピーするためのコード装置であって、前記第２記憶要素が、前記第１記憶要素に関連付けられた消去カウントより大きい消去カウントを有し、前記第２記憶要素が、第１データ構造に関連付けられ、前記第１データ構造が、第１セットの記憶要素を含むように構成される、コード装置と、
前記第２記憶要素を第２データ構造に関連付けるためのコード装置であって、前記第２データ構造が、第２セットの記憶要素を含むように構成され、前記第２記憶要素を前記第１データ構造に関連付けるための前記コード装置が、前記第２記憶要素を前記第１データ構造から分離するためのコード装置を含む、コード装置と、
前記第１記憶要素に関連付けられた前記内容を前記第１記憶要素から消去するためのコード装置と、
前記第１記憶要素を第３データ構造に関連付けるためのコード装置であって、前記第３データ構造が、第３セットの記憶要素を含むように構成される、コード装置と、
第３記憶要素を前記第３データ構造から得るためのコード装置と、
前記第３記憶要素を前記第１データ構造に関連付けるためのコード装置であって、前記第３記憶要素を前記第１データ構造に関連付けるための前記コード装置が、前記第３記憶要素を前記第３データ構造から分離するためのコード装置を含むコード装置と、
前記コード装置を記憶するための記憶領域と、
前記コード装置にアクセスするためのプロセッサとを備える、メモリ管理システム。
【請求項６１】
前記第１セットの記憶要素が、平均消去カウントより大きい消去カウントをそれぞれが有する記憶要素を含み、前記第３セットの記憶要素が、前記平均消去カウントより小さい消去カウントをそれぞれが有する記憶要素を含み、前記第１記憶要素に関連付けられた前記内容が実質的に静止である、請求項６０に記載のメモリ管理システム。
【請求項６２】
前記第１記憶要素に関連付けられた前記消去カウントを前記不揮発性メモリに関連付けられた平均消去カウントと比較するためのコード装置と、
前記第１記憶要素に関連付けられた前記消去カウントが、前記平均消去カウントより実質的に小さいときを判定するためのコード装置であって、前記第１記憶要素に関連付けられた内容をコピーするための前記コード装置が、前記第１記憶要素に関連付けられた前記消去カウントが前記平均消去カウントより実質的に小さいと判定されるとき、前記第１記憶要素に関連付けられた前記内容を前記第２記憶要素にコピーするためのコード装置を含む、コード装置とをさらに含む、請求項６０に記載のメモリ管理システム。
【請求項６３】
前記不揮発性メモリが、ＮＡＮＤフラッシュメモリである、請求項６０に記載のメモリ管理システム。
【請求項６４】
前記第１要素に関連付けられた前記内容が、前記第１要素の前記内容、および前記第１要素の前記内容の少なくともいくつかと置き換わるように構成された実質的に新しい内容の一方である、請求項６０に記載のメモリ管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、大量デジタルデータ記憶システムに関する。より具体的には、本発明は、不揮発性記憶システムの記憶領域に関連付けられた摩耗がほぼすべての記憶領域にわたって拡散されることを可能にするシステムおよび方法に関する。
【背景技術】
【０００２】
本発明は、同時係属米国特許出願＿（弁理士整理番号ＳＡＮＤＰ００５／ＳＤＫ０２７８．０００ＵＳ）、名称「ＡＵＴＯＭＡＴＥＤ  ＷＥＡＲ  ＬＥＶＥＬＩＮＧ  ＩＮ  ＮＯＮ−ＶＯＬＡＴＩＬＥ  ＳＴＯＲＡＧＥ  ＳＹＳＴＥＭＳ」、同時係属米国特許出願１０／２８１６７０（弁理士整理番号ＳＡＮＤＰ０２５／ＳＤＫ０３６６．００２ＵＳ）、名称「ＴＲＡＣＫＩＮＧ  ＴＨＥ  ＭＯＳＴ  ＦＲＥＱＵＥＮＴＬＹ  ＥＲＡＳＥＤ  ＢＬＯＣＫＳ  ＩＮ  ＮＯＮ−ＶＯＬＡＴＩＬＥ  ＭＥＭＯＲＹ  ＳＹＳＴＥＭＳ」２００２年１０月２８日出願、同時係属米国特許出願１０／２８１８２４（弁理士整理番号ＳＡＮＤＰ０２６／ＳＤＫ０３６６．００３）、名称「ＴＲＡＣＫＩＮＧ  ＴＨＥ  ＬＥＡＳＴ  ＦＥＱＵＥＮＴＬＹ  ＥＲＡＳＥＤ  ＢＬＯＣＫＳ  ＩＮ  ＮＯＮ−ＶＯＬＡＴＩＬＥ  ＭＥＭＯＲＹ  ＳＹＳＴＥＭＳ」、２００２年１０月２８日出願、同時係属米国特許出願１０／２８１６３１（弁理士整理番号ＳＡＮＤＰ０２８／ＳＤＫ０３７１．０００ＵＳ）、名称「ＭＥＴＨＯＤ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＳＰＬＩＴＴＩＮＧ  Ａ  ＬＯＧＩＣＡＬ  ＢＬＯＣＫ」、２００２年１０月２８日出願、同時係属米国特許出願１０／２８１８５５（弁理士整理番号ＳＡＮＤＰ０２９／ＳＤＫ０４１０．０００ＵＳ）、名称「ＭＥＴＨＯＤ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＧＲＯＵＰＩＮＧ  ＰＡＧＥＳ  ＷＩＴＨＩＮ  Ａ  ＢＬＯＣＫ」、２００２年１０月２８日出願、同時係属米国特許出願１０／２８１７６２（弁理士整理番号ＳＡＮＤＰ０３０／ＳＤＫ０４１６．０００ＵＳ）、名称「ＭＥＴＨＯＤ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲＲＥＳＯＬＶＩＮＧ  ＰＨＹＳＩＣＡＬ  ＢＬＯＣＫＳ  ＡＳＳＯＣＩＡＴＥＤ  ＷＩＴＨ  Ａ  ＣＯＭＭＯＮ  ＬＯＧＩＣＡＬ  ＢＬＯＣＫ」、２００２年１０月２８日出願、米国特許第６０８１４４７号、および米国特許第６２３０２３３号に関する。これらは、それぞれ、参照によって本明細書に完全に組み込まれる。
【０００３】
フラッシュメモリ記憶システムなどの不揮発性メモリの使用は、そのようなメモリシステムのコンパクトな物理的サイズ、および不揮発性メモリが反復して再プログラムされる能力のために、増大している。フラッシュメモリ記憶システムのコンパクトな物理的サイズにより、ますます普及している装置においてそのような記憶システムを使用することが促進される。フラッシュメモリ記憶システムを使用する装置には、デジタルカメラ、デジタルカムコーダ、デジタル音楽プレーヤ、手持ち式パーソナルコンピュータ、および大域的位置決め装置があるが、これに限定されるものではない。フラッシュメモリ記憶システムに含まれる不揮発性メモリを反復して再プログラムする能力により、フラッシュメモリ記憶システムが使用および再使用されることが可能になる。
【０００４】
一般に、フラッシュメモリ記憶システムは、フラッシュ・メモリ・カードおよびフラッシュ・メモリ・チップ・セットを含むことが可能である。フラッシュ・メモリ・チップ・セットは、一般に、フラッシュメモリ構成要素および制御装置構成要素を含む。通常、フラッシュ・メモリ・チップ・セットは、埋込みシステムに組み立てられるように構成されることが可能である。そのようなアセンブリまたはホストシステムの製造業者は、通常、構成要素形態のフラッシュメモリ、ならびに他の構成要素を獲得し、次いでフラッシュメモリおよび他の構成要素をホストシステムに組み立てる。
【０００５】
不揮発性メモリ、またはより具体的にはフラッシュ・メモリ・システム内のフラッシュ・メモリ・ブロックは、反復してプログラムおよび消去されることが可能であるが、各ブロックまたは物理的位置は、ブロックが摩耗する前に、すなわち、メモリがより小さくなり始める前に、ある回数のみ消去されることが可能である。すなわち、各ブロックは、プログラムおよび消去サイクルの制限を有する。いくつかのメモリでは、ブロックが使用不能と見なされる前に、約１万回、ブロックが消去されることが可能である。他のメモリでは、ブロックが摩耗されたと見なされる前に、約数１０万回またはさらには最高で１００万回、ブロックが消去されることが可能である。ブロックが摩耗して、それにより、フラッシュ・メモリ・システムの全記憶ボリュームの一部に対し、使用の損失または性能の著しい低下が生じるとき、フラッシュ・メモリ・システムのユーザは、たとえば記憶データを損失する、またはデータを記憶することができないなど、悪影響を受ける可能性がある。
【０００６】
フラッシュ・メモリ・システム内におけるブロックまたは物理的位置に関する摩耗は、ブロックのそれぞれがどの程度プログラムされるかに応じて変化する。ブロック、またはより一般的には記憶要素が、１度プログラムされ、次いで事実上決して再プログラムされない場合、プログラムおよび消去サイクルの数、したがってブロックに関連付けられる摩耗は、一般に比較的小さい。ブロックが、循環されるなど、反復して書き込まれ、かつ消去される場合、ブロックに関連付けられる摩耗は、一般に比較的大きい。論理ブロックアドレス（ＬＢＡ）が、フラッシュ・メモリ・システムに記憶されているデータにアクセスするために、フラッシュ・メモリ・システムにアクセスする、またはそれを使用するシステムなど、ホストによって使用される際に、ホストがデータを書き込み、かつ上書きするために同じＬＢＡを反復して使用する場合、当業者なら理解するように、フラッシュ・メモリ・システム内の同じ物理的位置またはブロックは、反復して書き込まれ、かつ消去される。
【０００７】
いくつかのブロックが、他のブロックが比較的摩耗していない間に事実上摩耗される場合、摩耗ブロックの存在は、一般に、フラッシュ・メモリ・システムの全性能を損なう。摩耗ブロック自体に関連する性能の低下に加えて、フラッシュ・メモリ・システムの全性能は、摩耗されていない不十分な数のブロックが所望のデータを記憶するために利用可能であるとき、損なわれる可能性がある。しばしば、フラッシュ・メモリ・システムは、限界数の摩耗ブロックがフラッシュ・メモリ・システムに存在するとき、フラッシュ・メモリ・システムの多くの他のセルが比較的摩耗していないときでも、使用不能であると見なされる可能性がある。相当数の比較的摩耗していないブロックを含むフラッシュ・メモリ・システムが、使用不能であると見なされるとき、そのフラッシュ・メモリ・システムに関連付けられる多くのリソースは、事実上無駄にされる。
【０００８】
フラッシュ・メモリ・システム内のブロックが比較的一様（即ち、均一）に摩耗される可能性を増大させるために、摩耗一様化動作が、しばしば実施される。摩耗一様化動作は、当業者なら理解するように、一般に、特定のＬＢＡに関連付けられた物理的位置またはブロックが、同じＬＢＡが同じ物理的位置またはブロックに常に関連付けられるとは限らないように、変更されることが可能であるように構成される。ＬＢＡのブロック関連付けを変化させることによって、他のブロックが摩耗するかなり前に、特定のブロックが摩耗することがある可能性が低くなる。
【０００９】
１つの従来の摩耗一様化プロセスは、顧客またはホストのＬＢＡの２つの比較的大きな部分がマッピングされる物理的位置をスワップすることを含む。すなわち、記憶セルの比較的大きなセクションに関連付けられたＬＢＡが、スワップされる。そのようなスワップは、ホストの使用によりなど、顧客からの手動コマンドにより開始され、その結果、顧客には透過的ではない。また、記憶セルの２つの比較的大きなセクション間でデータを移動させることを含むスワップ動作は、時間がかかり、したがって、非効率的である。さらに、フラッシュ・メモリ・システム全体の性能は、フラッシュ・メモリ・システム全体に関連付けられた著しいリソースを消費する比較的長い継続時間のスワップ動作によって、悪影響を受ける可能性がある。当業者なら理解するように、第１位置からデータを移動させることは、通常、データを他の位置にコピーすることと、データを第１位置から消去することとを含む。
【００１０】
他の従来の摩耗一様化プロセスは、ブロックが摩耗することを可能にすることを含む。ブロックが事実上摩耗した後、セクタが記憶されているブロックが摩耗した後に、または使用不能になった後に、ブロックに割り当てられたセクタは、そのセクタに関連付けられたアドレスをスペア領域にマッピングすることによって、再度割り当てられることが可能である。スペア領域またはブロックの数は限定され、かつ貴重であるので、使用不能ブロックに関連付けられたセクタがマッピングされることが可能であるスペア領域が常に存在するとは限らない可能性がある。さらに、ブロックが使用不能になった後でのみ、セクタを事実上再度マッピングすることにより、一般に、フラッシュ・メモリ・システム全体の性能を低下させる。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
したがって、フラッシュメモリ記憶システム内において摩耗一様化を効率的かつほぼ透過的に実施する方法および装置が所望される。すなわち、計算リソースを著しく使用することを必要とせずに、フラッシュメモリ記憶システムに関連付けられた位置において、より一様な摩耗を促進する摩耗一様化プロセスが必要とされる。
【課題を解決するための手段】
【００１２】
本発明は、不揮発性メモリシステムにおいて摩耗一様化を実施するシステムおよび方法に関する。本発明の一態様によれば、要素に分割される不揮発性メモリを割り付ける方法が、要素を第１グループ、第２グループ、および第３グループにグループ分けすることを含む。第１グループは、比較的低度の摩耗を有する要素を含み、第２グループは、比較的重度の摩耗を有する要素を含む。方法は、第３グループに含まれる第１要素が、第１グループに含まれる第２要素によって置き換えられるときを決定することをも含む。第１要素に関連付けられた内容が、第１グループから得られた第２要素にコピーされる。次いで、第１要素の内容は、第１要素から消去され、第２要素は、第３グループに関連付けられる。第２要素を第３グループに関連付けることは、第２要素を第１グループから実質的に分離することを含む。一実施形態では、要素は、各要素に関連付けられた消去カウントに基づいてグループ分けされる。
【００１３】
他の実施形態では、第１要素は、消去カウントを含み、方法は、第１要素から内容を消去した後、第１要素の消去カウントを増分させることを含む。そのような実施形態では、第１要素の消去カウントは、第１要素を第１グループに関連付けるかを判定するために使用されることが可能であり、方法は、第１要素の消去カウントが、第１要素が第１グループに関連付けられるべきであることを示すとき、第１要素を第１グループに関連付けることを含むことも可能である。一般に、第１要素を第１グループに関連付けることは、第１要素を第３グループから分離することを含む。
【００１４】
要素が消去された回数に従って、グループまたは表における不揮発性メモリのブロックなどの要素を維持することによって、要素の摩耗は、効率的に管理されることが可能である。グループまたは表は、最も摩耗した要素またはブロック、および最も摩耗していない要素またはブロックを、そのようなブロックが容易に識別されることが可能であるように、有効に追跡するために使用されることが可能である。データ内容を含み、かつ使用されているブロックなど、通常のブロックが、より少なく消去されたブロックによって置き換えられるべきであるとき、置換えブロックは、最も摩耗していないブロックのグループから効率的に得られることが可能である。したがって、埋込みＮＡＮＤフラッシュメモリなどの不揮発性メモリ全体の寿命が、事実上延長されることが可能である。
【００１５】
本発明の他の態様によれば、要素に分割される不揮発性メモリを割り付ける方法が、平均消去カウントより小さい消去カウントを有する消去要素を含む少なくとも第１グループ、平均消去カウントより大きい消去カウントを有する消去要素を含む第２グループ、および第３グループに、要素をグループ分けすることを含む。第３グループに含まれる第１要素が、第２グループに含まれる第２要素によって置き換えられるべきであるかについて、判定が行われる。第１要素は置き換えられるべきであると判定される場合、第１要素に関連付けられた内容が、第２グループから得られた第２要素にコピーされる。方法は、また、第１要素から第１要素の内容を消去することと、第２要素を第３要素に関連付けることとを含む。第２要素を第３グループに関連付けることは、第２要素を第２グループから実質的に分離することを含む。一実施形態では、方法は、また、第１要素を第１グループに関連付けることと、第１要素を第３グループから分離することとを含む。
【００１６】
本発明の他の態様によれば、不揮発性メモリ記憶要素の割付けを管理するメモリ管理システムが、それぞれが特定の量よりかなり少なく消去された記憶要素に関連付けられる第１データ構造を維持する手段と、それぞれが特定の量よりかなり多く消去された記憶要素に関連付けられる第２データ構造を維持する手段とを含む。システムは、また、第１データ構造または第２データ構造に関連付けられていない記憶要素を一般に含む第３データ構造を維持する手段をも含む。第３データ構造に関連付けられた記憶要素の少なくともいくつかは、データを含む。第３データ構造の第１記憶要素が置き換えられるべきであると判定されるとき、第１データ構造および第２データ構造の一方から選択された第２記憶要素を第３データ構造に関連付ける手段と同様に、第３データ構造の第１記憶要素が置き換えられるべきであるときを判定する手段も、システムに含まれる。
【００１７】
本発明のこれらおよび他の利点は、以下の詳細な記述を読み、かつ図面の様々な図を研究することにより、直ちに明らかになるであろう。
本発明は、添付の図面に関連して取り入れられた以下の記述を参照することによって、最適に理解されることが可能である。
【発明を実施するための最良の形態】
【００１８】
フラッシュ・メモリ・システム内の不揮発性メモリ記憶ブロックは、反復してプログラムおよび消去されることが可能であるが、各ブロックは、一般に、ブロックが摩耗する前に、有限回のみ消去されることが可能である。ブロックが摩耗するとき、摩耗ブロックを含むフラッシュメモリ記憶システムの全記憶ボリュームの一部に関連する性能の比較的重要な低下が生じ、その部分に記憶されているデータが損失される可能性があり、または、データをその部分に記憶することが不可能になる可能性がある。
【００１９】
ブロックがフラッシュメモリ記憶システム内においてより一様に摩耗する可能性を増大させるために、ブロックは、より一様に使用されることが可能である。たとえば消去カウントを使用することにより、各ブロックが消去された回数を追跡することによって、システム内のメモリがより一様に使用されることが可能である。消去カウント管理技術が、特定のブロックが、そのブロックに関連付けられた冗長領域において消去された回数を追跡する消去カウントを記憶することが可能である。表が、使用中のブロックが比較的大きい消去カウントを有するブロックおよび比較的小さい消去カウントを有するブロックから事実上分離されることを実質的に可能にするシステムメモリにおいて構築されることが可能である。使用中のブロックが消去されるとき、ブロックは、適宜、比較的大きい消去カウントを有するブロックの表、または比較的小さい消去カウントを有するブロックの表に「追加」されることが可能である。同様に、ブロックが、比較的大きい消去カウントを有するブロックの表、または比較的小さい消去カウントを有するブロックの表から、ブロックマッピング表に、すなわち使用中のブロックの１セットの表に、ブロックマッピング表から再度割り当てられたあらゆるブロックを実質的に置き換えるために、「移動」されることが可能である。
【００２０】
ブロックをカテゴリ化することによって、ブロックがより一様に使用されることが可能であるが、その理由は、各ブロックの使用が、ブロックに関連付けられた摩耗を一様にするように、より有効に管理されることが可能であるからである。さらに、ブロックを表にカテゴリ化することは、小さい消去カウントを有するブロックおよび大きい消去カウントを有するブロックが容易に識別されることを可能にし、したがって、著しい量の計算リソースを使用しない。したがって、摩耗一様化は、比較的効率的に行われる。その結果、フラッシュ・メモリ・システムの寿命は、フラッシュ・メモリ・システムの性能に著しい影響を与えずに、大幅に延長されることが可能である。
【００２１】
フラッシュ・メモリ・システム、またはより一般的には不揮発性メモリ装置は、一般に、フラッシュ・メモリ・カードおよびチップセットを含む。通常、フラッシュ・メモリ・システムは、ホストシステムがフラッシュ・メモリ・システムにデータを書き込み、またはフラッシュ・メモリ・システムからデータを読み取ることが可能であるように、ホストシステムと関連して使用される。しかし、いくつかのフラッシュ・メモリ・システムは、埋込みフラッシュメモリと、埋込みフラッシュメモリの制御装置として実質的に作用するようにホスト上で実行されるソフトウエアとを含む。
【００２２】
まず図１ａを参照すると、コンパクトフラッシュ（登録商標）・メモリ・カードまたは埋込みシステムなど、不揮発性メモリ装置を含む汎用ホストシステムが記述される。ホストまたはコンピュータシステム１００は、一般に、マイクロプロセッサ１０８、ランダム・アクセス・メモリ（ＲＡＭ）１１２、および入力／出力回路１１６が通信することを可能にするシステムバス１０４を含む。ホストシステム１００は、例示の目的では図示されていないディスプレイ装置およびネットワーキング装置など、他の構成要素を一般に含むことが可能であることを理解されたい。
【００２３】
一般に、ホストシステム１００は、静止画像情報、音声情報、およびビデオ画像情報などを含むが、これに限定されない情報を得ることができるとすることが可能である。そのような情報は、実時間で得られることが可能であり、また、無線方式でホストシステム１００に伝送されることが可能である。ホストシステム１００は、実質的にあらゆるシステムとすることが可能であるが、ホストシステム１００は、通常、デジタルカメラ、ビデオカメラ、セルラ通信装置、オーディオプレーヤ、またはビデオプレーヤなどのシステムである。しかし、ホストシステム１００は、一般に、データまたは情報を記憶し、またデータまたは情報を取り出すほぼあらゆるシステムとすることが可能であることを理解されたい。
【００２４】
ホストシステム１００は、データを得るのみである、またはデータを取り出すのみであるシステムとすることも可能である。すなわち、ホストシステム１００は、データを記憶する専用システムとすることが可能であり、または、ホストシステム１００は、データを読み取る専用システムとすることが可能である。例として、ホストシステム１００は、データを書き込む、または記憶するようにのみ構成されるメモリライタとすることが可能である。代替として、ホストシステム１００は、データを読み取る、または取り出すように通常構成され、またデータを得るようには構成されないＭＰ３プレーヤなどの装置とすることが可能である。
【００２５】
一実施形態では、取外し可能不揮発性メモリ装置である不揮発性メモリ装置１２０が、情報を記憶するためにバス１０４とインタフェースするように構成される。随意選択のインタフェースブロック１３０により、不揮発性メモリ装置１２０がバス１０４と間接的にインタフェースすることが可能になると考えられる。存在するとき、入力／出力回路ブロック１３２が、当業者になら理解するように、バス１０４に対する負荷を低減するように作用する。不揮発性メモリ装置１２０は、不揮発性メモリ１２４および随意選択メモリ制御システム１２８を含む。一実施形態では、不揮発性メモリ装置１２０は、単一チップまたはダイの上において実施されることが可能である。代替として、不揮発性メモリ装置１２０は、マルチチップモジュールの上において、またはチップセットを形成することが可能であり、かつ不揮発性メモリ装置１２０として共に使用されることが可能である複数の離散構成要素の上において実施されることが可能である。不揮発性メモリ装置１２０の一実施形態が、図１ｂを参照して以下でより詳細に記述される。
【００２６】
たとえばＮＡＮＤフラッシュメモリなどのフラッシュメモリである不揮発性メモリ１２４は、必要に応じてデータにアクセスして読み取ることが可能であるように、データを記憶するように構成される。不揮発性メモリ１２４に記憶されているデータは、適宜、消去されることも可能であるが、不揮発性メモリ１２４のいくつかのデータは、消去可能ではないとすることが可能であることを理解されたい。データを記憶する、データを読み取る、およびデータを消去するプロセスは、一般に、メモリ制御システム１２８によって制御され、または、メモリ制御システム１２８が存在しないときは、マイクロプロセッサ１０８によって実行されるソフトウエアによって制御される。不揮発性メモリ１２４の動作は、本質的に不揮発性メモリ１２４のセクションをほぼ一様に摩耗させることによって、不揮発性メモリ１２４の寿命がほぼ最大になるように管理されることが可能である。
【００２７】
不揮発性メモリ装置１２０は、随意選択メモリ制御システム１２８、すなわち制御装置を含むとして一般的に記述された。しばしば、不揮発性メモリ装置１２０は、不揮発性メモリ１２４およびメモリ制御システム１２８について別々のチップ、すなわち制御装置機能を含むことが可能である。例として、ＰＣカード、コンパクトフラッシュ（登録商標）カード、マルチメディアカード、およびセキュア・デジタル・カードを含むがこれに限定されない不揮発性メモリ装置は、別々のチップ上で実施されることが可能である制御装置を含むが、他の不揮発性メモリ装置は、別々のチップ上で実施される制御装置を含まないことが可能である。不揮発性メモリ装置１２０が別々のメモリおよび制御装置のチップを含まない実施形態では、メモリおよび制御装置の機能は、当業者には理解されるように、単一チップに統合されることが可能である。代替として、メモリ制御システム１２８の機能は、上記で議論されたように、たとえば不揮発性メモリ装置１２０がメモリ制御装置１２８を含まない実施形態では、マイクロプロセッサ１０８によって提供されることが可能である。
【００２８】
図１ｂを参照すると、本発明の実施形態による不揮発性メモリ装置１２０が、より詳細に記述される。上述されたように、不揮発性メモリ装置１２０は、不揮発性メモリ１２４を含み、また、メモリ制御システム１２８を含むことが可能である。メモリ１２４および制御システム１２８、または制御装置は、不揮発性メモリ装置１２０の主要構成要素とすることが可能であるが、たとえば、メモリ１２４が埋込みＮＡＮＤ装置であるとき、不揮発性メモリ装置１２０は、制御システム１２８を含まないことが可能である。メモリ１２４は、半導体基板の上に形成されたメモリセルのアレイとすることが可能であり、２つ以上の電荷レベルの１つをメモリセルの個々の記憶要素に記憶することによって、データの１つまたは複数のビットが、個々のメモリセルに記憶される。不揮発性フラッシュ電気的消去可能プログラム可能読取り専用メモリ（ＥＥＰＲＯＭ）は、そのようなシステムの一般的なタイプのメモリの例である。
【００２９】
存在するとき、制御システム１２８は、データを記憶するために、メモリシステムを使用しているホストコンピュータまたは他のシステムとバス１５で通信する。バス１５は、一般に、図１のバス１０４の一部である。制御システム１２８は、ホストによって提供されるデータを書き込み、ホストによって要求されたデータを読み取り、動作メモリ１２４において様々なハウスキーピング機能を実施するために、メモリ・セル・アレイ１１を含むことが可能であるメモリ１２４の動作も制御する。制御システム１２８は、一般に、関連する不揮発性ソフトウエアメモリ、様々な論理回路などを有する汎用マイクロプロセッサを含む。１つまたは複数の状態機械も、特定のルーチンの性能を制御するために、しばしば含まれる。
【００３０】
メモリ・セル・アレイ１１は、通常、アドレスデコーダ１７を経て制御システム１２８またはマイクロプロセッサ１０８によってアドレスされる。デコーダ１７は、制御システム１２８によってアドレスされているメモリセルのグループに対し、データをプログラムするため、またはそのグループからデータを読み取るため、またはそのグループを消去するために、適切な電圧をアレイ１１のゲートおよびビット線に印加する。追加の回路１９が、セルの対処されたグループにプログラムされているデータに依拠するアレイの要素に印加された電圧を制御するプログラミングドライバを含む。回路１９は、メモリセルのアドレスされたグループからデータを読み取るのに必要な感知増幅器および他の回路をも含む。アレイ１１にプログラムされるデータ、またはアレイ１１から最近読み取られたデータは、通常、制御システム１２８内のバッファメモリ２１に記憶される。制御システム１２８は、通常、コマンドおよび状況データなどを一時的に記憶する様々なレジスタをも含む。
【００３１】
アレイ１１は、多数のＢＬＯＣＫ０〜Ｎのメモリセルに分割される。フラッシュＥＥＰＲＯＭシステムに一般的であるように、ブロックは、通常、消去の最小単位である。すなわち、各ブロックは、共に消去される最小数のメモリセルを含む。各ブロックは、図２にも示されるように、通常、いくつかのページに分割される。ページは、通常、プログラミングの最小単位である。すなわち、基本的なプログラミング動作が、メモリセルの１ページの最小限にデータを書き込み、またはそれからデータを読み取る。データの１つまたは複数のセクタが、各ページ内に通常記憶される。図１ｂに示されるように、１つのセクタが、ユーザデータおよびオーバーヘッドデータを含む。オーバーヘッドデータは、セクタのユーザデータから計算されたエラー補正コード（ＥＣＣ）を通常含む。制御システム１２８の一部２３が、データがアレイ１１にプログラムされているとき、ＥＣＣを計算し、また、データがアレイ１１から読み取られているとき、ＥＣＣを検査する。代替として、ＥＣＣは、それらが属するユーザデータとは異なるページ、または異なるブロックに記憶される。
【００３２】
ユーザデータのセクタは、磁気ディスクドライブのセクタのサイズに対応して、通常５１２バイトである。オーバーヘッドデータは、通常、追加の１６バイトである。データの１つのセクタが、各ページに含まれることが最も一般的であるが、代わりに、２つ以上のセクタが、ページを形成することが可能である。任意の数のページが、ブロックを形成することが一般に可能である。例として、ブロックは、８ページから最高で５１２、１０２４、またはそれを超えるページから形成されることが可能である。ブロックの数は、望ましいデータ記憶能力をメモリシステムに提供するように選択される。アレイ１１は、いくつかのサブアレイ（図示せず）に通常分割され、それぞれは、様々なメモリ動作の実行において並行の程度を増大させるために、互いにある程度独立に動作するある割合のブロックを含む。複数サブアレイの使用の例が、参照によって本明細書に完全に組み込まれている米国特許第５８９０１９２号において記載されている。
【００３３】
不揮発性メモリ１２４の記憶要素などの特定のセクションが、反復して書き込まれ、消去されるなど、連続的にプログラムされるとき、その特定の領域は、一般に、連続的にプログラムされない領域より迅速に摩耗される。不揮発性メモリ１２４内の異なる領域の摩耗を事実上「一様にする（即ち、均一にする）」ために、連続的にプログラムされる領域がより少なくプログラムされ、一方、連続的にプログラムされない領域がより多くプログラムされることが可能であるように、摩耗一様化が、ほぼ自動的に実施されることが可能である。
【００３４】
一般に、摩耗一様化を実施するために、物理位置に関連付けられる１セットのセクタなど、反復してプログラムされるブロックが、反復してプログラムされない物理位置に関連付けられるブロックとスワップされることが可能である。すなわち、反復してプログラムされ、したがって消去された物理的ブロックが、より頻繁でなくプログラムされ、かつ消去された物理的ブロックとスワップされることが可能である。
【００３５】
本発明の一実施形態では、特定の物理ブロックが反復してプログラムされ、かつ消去されたかを容易に判定するために、消去カウントがブロックと共に記憶されることが可能である。すなわち、ブロックが消去された回数を追跡するカウンタが維持されて、ブロックが消去されるたびに増分されることが可能である。そのような消去カウントは、特定のブロックが、より頻繁ではなく消去された他のブロックとスワップされるべきであるかの判定を容易にするために使用されることが可能である。図２は、本発明の実施形態による、フラッシュメモリの一部の概略図である。フラッシュメモリ２００は、ページ２０４に分割されることが可能である。約５１２バイトのユーザデータを一般に含む各ページ２０４は、冗長領域２０６を実際に含み、たとえば、ページ２０４ａは、冗長領域２０６ａを含む。各冗長領域２０６またはオーバーヘッド領域は、グループ識別子２１６、更新インデックス２１２、および消去カウント２１４を通常含むが（これに限定されない）、最高で約１６バイトの情報を含むことが可能である。
【００３６】
通常、任意の数のページ２０４が、ブロック２１０に含まれる。例示を容易にするために、ページ２０４ａ、２０４ｂが、ブロック２１０に含まれるように示されているが、ブロック２１０に含まれるページ２０４の数は、大きく変化することが可能であることを理解されたい。記述される実施形態では、ブロック２１０は、約３２ページを含むように構成されることが可能である。たとえば、フラッシュメモリ２００が約５１２メガビット（Ｍｂ）を含むとき、フラッシュメモリ２００は、それぞれが３２ページの約４０９６ブロックに事実上分割されることが可能である。
【００３７】
以前に記述されたように、消去カウント２１４は、ユーザデータが関連ブロックから消去されるたびに増分されることが可能である。たとえば、ブロック２１０に関連付けられる消去カウント２１４は、データがブロック２１０から消去されるたびに増分されることが可能である。ブロック２１０に含まれる各ページ２０４ａ、２０４ｂは、一般に消去カウント２１４を有するので、各ページ２０４ａ、２０４ｂに関連付けられた消去カウント２１４は、ブロック２１０が消去されるとき、増分されることが可能である。
【００３８】
一般に、データを含むブロックが消去されるとき、ブロックのデータ領域および冗長領域の両方が消去される、または空にされる。消去されたブロックは、通常、スペアブロックプールに追加され、スペアブロックプールは、他の表の消去ブロックなど、他の消去ブロックの消去カウントより小さい消去カウントを有する消去カウントを含む。スペアブロック表は、本質的に、最低頻度消去ブロック表とすることが可能であり、これについては以下で記述される。本発明の一実施形態では、大きな消去カウントを有する消去ブロックが、他の表の消去ブロックと比較してより大きい消去カウントを含む消去ブロックを含むプールに追加される。大きな消去カウントを有する消去ブロックを含むプールは、最高頻度消去ブロック表とすることが可能であり、これについても以下で記述される。消去されたばかりのブロックの消去カウントは、１つだけ増分され、カウントの値に応じて、最低頻度消去ブロック表または最高頻度消去ブロック表に保存される。
【００３９】
図２に戻ると、消去カウント２１４などの消去カウントが、初期化要求中にアクセスされることが可能である。たとえば、埋込みフラッシュメモリを含むシステムなどのシステムが給電されるとき、システム内のスペアブロックがローで実行されているとき、ユーザがブロックの割付けを均衡させることを要求するとき、およびユーザがブロックの使用がより一様に行われることを要求するとき、初期化要求が作成されることが可能である。図３は、本発明の実施形態による、フラッシュ・メモリ・システムに関する初期化要求を処理することに関連するステップを示すプロセス流れ図である。一般に、初期化要求は、たとえば周期的に、またはトリガ条件が満たされるとき、ユーザによって開始される、またはフラッシュ・メモリ・システムに関連付けられた制御装置によってほぼ自動的に開始されることが可能である。初期化要求に応答するプロセス３００が、ステップ３０４において開始され、初期化要求が実際に受信される。初期化要求は、初期化されるフラッシュメモリと通信する制御装置またはプロセッサによって受信されることが可能である。そのような要求は、たとえば、給電時に、またはブロック割付けが均衡されるときに、ホストを介してユーザによって提供されることが可能である。
【００４０】
初期化要求が受信された後、平均消去カウントが、ステップ３０６において得られる。一実施形態では、平均消去カウントは、システムに関連付けられたＮＡＮＤメモリに書き込まれる消去カウントブロックに記憶される。平均消去カウントおよび各ブロックの消去カウントを含む消去カウントブロック（ＥＣＢ）は、フラッシュメモリのブロックに記憶される。システムが当初フォーマットされるときなど、消去カウントが創出されるとき、表の平均消去カウントおよび各ブロックの消去カウントは、通常、ゼロの値に初期化されることを理解されたい。平均消去カウントが得られた後、システム内のほぼすべてのブロックの消去カウントが得られる。図２に関して上述されたように、データを含む特定のブロックの消去カウントは、そのブロックに関連付けられる冗長領域に記憶されることが可能である。したがって、データを含むほぼすべてのブロックの消去カウントを得ることは、各ブロックに関連付けられた冗長領域にアクセスすることと、各消去カウントを消去カウントブロックに記憶することとを含むことが可能である。
【００４１】
初期化要求時に、消去ブロックの消去カウントは、消去カウントブロックから得られる。消去カウントブロックは、そのブロックの冗長領域が消去されるので、一般にその値を維持する。システム全体がシャットダウンされるとき、終了要求が通常作成され、したがって、ほぼすべてのブロックの最後の消去カウントを得るように、消去カウント表が更新される。任意の所与の時間において、ブロックは、最高頻度消去ブロック表、最低頻度消去ブロック表、消去カウントブロック、またはブロックマッピング表に属する。消去カウントブロックに属するブロックの消去カウントは、ブロックの冗長領域に記憶される。データを含むブロックの消去カウントは、しばしば、ブロックマッピング表に属し、冗長領域に記憶される。ブロックマッピング表に属する消去ブロックの消去カウントは、ゼロの消去カウントを有するが、その理由は、ブロックが事実上全く使用されていないからである。最低頻度消去ブロック表または最高頻度消去ブロック表のブロックから消去カウントを得ることは、表から値を得ることを含むが、その理由は、表の各エントリが、消去ブロックのブロック数およびその消去カウントの両方を一般に含むからである。初期化要求の処理を完了すると直ちに、消去カウントブロックは、一般に、すべてのブロックの現行消去カウントで更新される。
【００４２】
ステップ３２０において、ブロックマッピング表が、ホストシステムメモリなどのシステムメモリにおいて割り付けられる。当業者なら理解するように、ブロックマッピング表は、論理ブロックアドレス（ＬＢＡ）と物理ブロックアドレス（ＰＢＡ）との間のマッピングを提供するように構成されることが可能である。さらに、最高頻度消去ブロック表および最低頻度消去ブロック表も、ステップ３２０において割り付けられる。
【００４３】
最高頻度消去ブロック表は、通常、最も頻繁に消去された消去ブロックに関する情報を有効に保持するようにサイズ決めされ、そうでない場合は構成される。すなわち、最高頻度消去ブロックが、消去カウントおよびマッピング情報など、システムの最高消去カウントを有する消去ブロックに属する情報を保持するように構成される。同様に、最低頻度消去ブロック表が、一般に、最低消去カウントを有する消去ブロックに属する情報を収容するようにサイズ決めされ、そうでない場合は構成される。最高頻度消去ブロック表のサイズおよび最低頻度消去ブロック表のサイズは、大きく変化することが可能であるが、サイズは、最高頻度で消去されると指定されるブロックの数、および最低頻度で消去されると指定されるブロックの数に依拠する。通常、最高頻度消去ブロック表は、一般に、最低頻度消去ブロック表より少ない消去ブロックの情報を収容するようにサイズ決めされる。例として、最高頻度消去ブロック表は、約１８の消去ブロックの情報を収容するようにサイズ決めされることが可能であり、一方、最低頻度消去ブロック表は、約７０の消去ブロックに関する情報を収容するようにサイズ決めされることが可能である。代替として、最高頻度消去ブロック表は、約１０の消去ブロックの情報を収容するようにサイズ決めされることが可能であり、一方、最低頻度消去ブロック表は、約５０の消去ブロックの情報を収容するようにサイズ決めされることが可能である。
【００４４】
表がステップ３２０において割り付けられた後、消去ブロックが、ステップ３２４において識別される。次いで、ステップ３２８において、「Ｎ」の消去ブロックが、最高頻度消去ブロックに割り当てられ、かつ本質的に、最高頻度消去ブロック表に割り当てられることが可能である。一実施形態では、「Ｎ」の消去ブロックは、すべての消去カウントの比較によって決定される最高消去カウントを有する「Ｎ」の消去ブロックとすることが可能である。代替として、最高頻度消去ブロック表に記憶される「Ｎ」の消去ブロックは、ステップ３０６において得られる平均消去カウントとの比較に基づいて決定されることが可能である。たとえば、「Ｎ」の消去ブロックは、平均消去カウントより約２４パーセント大きいなどの少なくとも所与のパーセンテージである消去カウントを有する「Ｎ」の消去ブロックとすることが可能である。
【００４５】
最高頻度消去ブロックが有効にポピュレートされた後、ステップ３３２において、「Ｍ」の消去ブロックが、識別され、最低頻度消去ブロック表に有効に割り当てられることが可能である。「Ｍ」の消去ブロックは、一般に、システムに関連付けられたすべての消去ブロックの最低消去カウントを有する「Ｍ」の消去ブロックとすることが可能であり、または、「Ｍ」の消去ブロックは、平均消去カウントより小さい少なくとも所与のパーセンテージである消去カウントを有する「Ｍ」の消去ブロックとすることが可能である。「Ｍ」の消去ブロックは、事実上、適宜ブロックマッピング表に割り当てられるスペアブロックである。
【００４６】
残りの消去ブロック、すなわち最低頻度消去ブロック表または最高頻度消去ブロック表に割り当てられなかった消去ブロックが、ステップ３３６において、「未消去」ブロックと共に、ブロックマッピング表に割り当てられる。すなわち、残りの消去ブロックならびに関連付けられた冗長領域以外においてデータを含むブロックが、ブロックマッピング表に関連付けられる。
【００４７】
たとえば対応するブロックに属する消去カウントおよびマッピング情報と共に、ブロックマッピング表、最低頻度消去ブロック表、および最高頻度消去ブロック表が有効にポピュレートされた後、平均消去カウントが、ステップ３３８において決定されることが可能である。平均消去カウントを決定することは、通常、ステップ３０８において得られた個々のブロックの消去カウントを合計することと、ブロックの総数によって合計を除算することとを含む。
【００４８】
ステップ３３８において計算された平均消去カウントは、システムに関連付けられた消去カウントブロックに記憶される。以前に記述されたように、平均消去カウントは、システムに関連付けられたＮＡＮＤメモリに書き込まれる消去カウントブロックに記憶される。平均消去カウントを消去カウントブロックに記憶すると直ちに、静止ブロック、またはデータを含み、かつ比較的小さい関連付けられた消去カウントを有するブロックが、ステップ３４２において処理されることが可能である。静止ブロックを処理する一方法に関連するステップは、図４に関して以下で記述される。静止ブロックが処理された後、初期化要求を処理するプロセスは、完了される。
【００４９】
フラッシュメモリに関連付けられたブロックのグループ内には、任意の所与の時間において、消去されるブロック、およびデータ、すなわちユーザデータを含むブロックが通常存在する。データを含むブロックのいくつかは、「通常」ブロックと見なされることが可能であり、一方、他は、静止ブロックと見なされることが可能である。静止ブロックは、まれにしか変更されないデータを含むブロックである。すなわち、静止ブロックは、まれにしか消去されない。通常、静止ブロックは、フラッシュメモリに記憶されている比較的古いドキュメント、フラッシュメモリに記憶されている実行可能なプログラム、またはフラッシュメモリに記憶されているオペレーティングシステムに関連付けられることが可能である。静止ブロックは、一般に、フラッシュメモリ内の大半のブロックの消去カウントよりかなり小さい消去カウントを有することが可能である。一実施形態では、ブロックの消去カウントが、フラッシュ・メモリ・システムに関連付けられた平均消去カウントの約２０パーセントなど、あるパーセンテージより小さい場合、データを含むブロックが静止ブロックと見なされることが可能である。
【００５０】
静止ブロックは、まれにしか変更されないデータを含むので、静止ブロックに含まれるデータは、比較的大きい消去カウントを有するブロックにコピーされることが可能である。すなわち、特定の物理ブロックの内容が比較的静止しており、したがって一般に変更されない場合、比較的小さい消去カウントを有する当初の物理ブロックを、最も頻繁に変更される内容を記憶するために使用することを可能にするために、内容は、比較的大きい消去カウントを有する異なる物理ブロックに有効に再度割り当てられることが可能である。図４を参照すると、静止ブロックを処理することに関連するステップ、すなわち図３のステップ３４２が、本発明の実施形態により記述される。システムの静止ブロックを処理するプロセス３４２が、ステップ４０４において開始され、ブロック「Ａ」など、消去されていないブロックの消去カウントがアクセスされる。ブロック「Ａ」の消去カウントがアクセスされた後、ステップ４０８において、不消去ブロック「Ａ」の消去カウントが、システムに関連付けられた平均消去カウントと比較して非常に小さいかについて判定が行われる。
【００５１】
不消去ブロック「Ａ」の消去カウントが、平均消去カウントと比較して小さいかに関する判定は、ほぼあらゆる適切な基準に基づくことが可能であるが、一実施形態では、判定は、ブロック「Ａ」の消去カウントが、平均消去カウントの端数に関連付けられた値より小さい値を有するかに基づいて行われる。たとえば、ブロック「Ａ」の消去カウントは、消去カウントが平均消去カウントの所定のパーセンテージより小さいとき、小さいと見なされることが可能である。
【００５２】
ステップ４０８において、ブロック「Ａ」の消去カウントが平均消去カウントと比較して非常に小さくないと判定される場合、ブロック「Ａ」は、静止ブロックではない可能性が最も高いことを意味する。ブロック「Ａ」は、ブロック「Ａ」の消去カウントが非常に小さいとは見なされない場合でも、依然として静止ブロックであるとすることが可能であるが、そのような場合のブロック「Ａ」の消去カウントは、他のブロックとのブロック「Ａ」のスワップを事実上トリガしないことを理解されたい。したがって、静止ブロックを処理するプロセスは、完了される。
【００５３】
そうでなく、ステップ４０８において、ブロック「Ａ」の消去カウントが平均消去カウントと比較して非常に小さいと判定される場合、小さい消去カウントを有するブロック「Ａ」が、比較的頻繁に変更されるデータを記憶するのに使用可能であるとすることが可能であるように、「Ａ」の内容は、比較的大きい消去カウントを有するブロックに書き込まれることが可能である。すなわち、ブロック「Ａ」の消去カウントが平均消去カウントと比較して非常に小さいとき、ブロック「Ａ」は静止ブロックであることを意味する。したがって、プロセス流れは、ステップ４０８からステップ４１２に移行し、ブロック「Ａ」は、静止ブロックと識別される。ブロック「Ａ」が静止ブロックと識別された後、ステップ４１６において、ブロック、すなわちブロック「Ｂ」が、最高頻度消去ブロック表によって識別された最高頻度消去ブロックのグループから得られることが可能である。
【００５４】
ブロック「Ｂ」が得られた後、ステップ４２０において、ブロック「Ａ」の内容は、ブロック「Ｂ」にコピーされる。すなわち、ステップ４２０において、ブロック「Ａ」に含まれるユーザデータは、ブロック「Ｂ」にコピーされる。ブロック「Ａ」の内容がブロック「Ｂ」にコピーされた後、ステップ４２４において、ブロック「Ａ」は消去される。通常、ブロック「Ａ」が消去されるとき、ブロック「Ａ」に関連付けられた消去カウントは増分される。ブロック「Ｃ」などのブロックが、ブロック「Ｃ」の関連付けが、最低頻度消去ブロック表から最高頻度消去ブロック表に有効に変更されるように、ステップ４２８において最低頻度消去ブロックのグループから最高頻度消去ブロックのグループに移動されることが可能である。すなわち、ブロック「Ｃ」は、最低頻度消去ブロック表から分離されて、最高頻度消去ブロック表に関連付けられる。そのような移動により、最低頻度消去ブロック表のスペースが、小さい消去カウントを有し、したがってシステムの最低頻度消去ブロックの１つであるブロック「Ａ」を収容するように、有効に開放されることが可能になる。通常、ブロック「Ｃ」は、最低頻度消去ブロック表において最高消去カウントを有するブロックである。
【００５５】
ブロック「Ｃ」を最低頻度消去ブロックのグループから移動させる、またはそうでない場合はブロック「Ｃ」を最低頻度消去ブロックから分離すると直ちに、プロセス流れは、ステップ４２８からステップ４３２に移行し、ステップ４３２において、ブロック「Ａ」は、ブロックマッピング表から最低頻度消去ブロックに有効に移動される。次いで、ステップ４３４において、ブロック「Ａ」に以前に含まれていた内容を含むブロック「Ｂ」が、ブロックマッピング表に関連付けられる。当業者なら理解するように、ブロック「Ｂ」をブロックマッピング表に「移動」させることは、通常、この段階でブロック「Ｂ」に関連付けられるブロック「Ａ」に関連付けられていた論理ブロックアドレスのマッピングを更新することを含む。ブロック「Ｃ」に属する情報が、最高頻度消去ブロック表に存在し、ブロック「Ｂ」に属する情報が、ブロックマッピング表に存在し、ブロック「Ａ」に属する情報が、最低頻度消去ブロック表に存在するとき、静止ブロックを処理するプロセスは完了される。プロセス３４２は、システムに関連付けられたほぼすべての静止ブロックが識別され、処理されるまで、反復されることが可能であることを理解されたい。
【００５６】
一般に、ブロックマッピング表、最低頻度消去ブロック表、および最高頻度消去ブロック表は、初期化要求がフラッシュ・メモリ・システム全体に送信されるとき、図１ａのＲＡＭ１１２など、システムメモリにおいて創出されることが可能である。表を構築するために、スペースが、表を収容するように、システムメモリにおいてまず割り付けられることが可能である。
【００５７】
前述されたように、ブロックマッピング表、最低頻度消去ブロック表、および最高頻度消去ブロック表が、平均消去カウントの場合のように、システムメモリにおいて創出される。各ブロックの平均消去カウントおよび消去カウントも、消去カウントブロックに書き込まれる。図５ａは、本発明の実施形態による、システムメモリの概略的なブロック図である。システムメモリ４５４およびフラッシュメモリ４６０が、全システムに含まれ、たとえば、メモリカードの構成要素またはＮＡＮＤメモリなどのフラッシュメモリ４６０が埋め込まれるホスト装置の構成要素と事実上することが可能である。システムメモリ４５４は、ブロックが関連付けられることが可能であるブロックマッピング表４６２を記憶するように構成される。通常、ブロックマッピング表４６２は、ＬＢＡを、フラッシュメモリ４６０に関連付けられた物理ブロックに関連付けるために使用されることが可能である。
【００５８】
システムメモリ４５４は、ブロックマッピング表４６２と同様に、初期化要求に応答して一般に形成される最低頻度消去ブロック表４６６および最高頻度消去ブロック表４７０をも保持する。フラッシュメモリ４６０内のブロックの平均消去カウントを保持するように構成される平均消去カウント４７４が、フラッシュ・メモリ・システム全体がフォーマットされるとき創出される。一実施形態では、消去カウントブロック４８０が、フラッシュメモリ４６０内のほぼすべてのブロック４６５の消去カウントを含むように構成される。初期化要求が作成されるたびに、更新された平均消去カウントが計算されて、消去カウントブロック４８０に記憶されることが可能である。
【００５９】
図５ｂは、本発明の実施形態による、「通常」ブロックのグループ、最低頻度消去ブロックのグループ、および最高頻度消去ブロックのグループの概略図である。ブロック５０２のグループは、一般にユーザデータを含む通常ブロックまたは静止ブロックとすることが可能である、あるいは消去されることが可能であるが、最高頻度消去ブロックまたは最低頻度消去ブロックではない可能性があるブロック５１４を含む。最低頻度消去ブロック５０６のグループが、全システム内において消去ブロックの最低消去カウントを有するブロック５１８を一般に含み、一方、最高頻度消去ブロック５１０のグループが、消去ブロックの最高消去カウントを全システム内において有するブロック５２２を一般に含む。一般に、ブロック５１８は、スペアブロックとして有効に使用される。
【００６０】
ブロック５１４が消去されるとき、消去ブロック５１４が、比較的小さい関連付けられた消去カウントまたは比較的大きい関連付けられた消去カウントを有するかについて判定されることが可能である。消去ブロック５１４が、比較的小さい関連付けられた消去ブロックを有するとき、消去ブロック５１４は、最低頻度消去ブロック５０６のグループに追加されることが可能である。一方、消去ブロック５１４が、比較的大きい関連付けられた消去カウントを有するとき、消去ブロック５１４は、最高頻度消去ブロック５１０のグループに再度割り当てられることが可能である。
【００６１】
ほぼあらゆるサイズとすることが可能である最低頻度消去ブロック５０６のグループは、ソートされたグループとすることが可能である。すなわち、ブロック５１８は、消去カウントに基づいて実質的にソートされることが可能である。ソートは、通常、ブロック５１８に関連付けられたエントリを含む対応する最低頻度消去ブロック表（図示せず）において反映される。たとえば、新しいブロック５１８が最低頻度消去ブロック５０６のグループに移動される、または追加される、あるいは関連付けられるたびに、ブロック５１８は、最低頻度消去ブロック５０６のグループにおける最低頻度消去ブロック５１８が、グループ５０２になど、再度割り当てられる次のブロック５１８とすることが可能であるように、消去カウントに基づいて本質的にソートされることが可能である。すなわち、データがコピーされる新しいブロックが必要であるとき、ブロック５１８の最低消去ブロック５１８は、最低頻度消去ブロック表を使用して識別されて、最低頻度消去ブロック５０６のグループから取り入れられる。通常、必要とされないデータを含むブロック５１４が消去されるとき、そのブロック５１４は、最低頻度消去ブロック５０６のグループに分類されることが可能であり、最低頻度消去ブロック表は、相応して更新されることが可能である。すなわち、追加ブロックに対応するエントリが、最低頻度消去ブロック表に含まれることが可能である。
【００６２】
最高頻度消去ブロック５１０のグループのブロック５２２も、最低頻度消去ブロック５０６のグループに記憶されているブロック５１８と同様に、消去カウントに基づいて実質的にソートされることが可能である。ソートは、通常、ブロック５２２を識別するように作用する最高頻度消去ブロック表（図示せず）においてエントリを分離することによって実施される。一実施形態では、ブロック５２２に関連付けられた平均消去カウントが、計算されることが可能である。すなわち、最高頻度消去ブロック５１０のグループの平均消去カウントが、決定されることが可能である。グループ５０２からのブロック５１４が消去され、消去ブロック５１４の消去カウントが、最高頻度消去ブロック５１０のグループの平均消去カウントを約２０パーセントを超えるなど所与のパーセンテージ超えることが判明するとき、消去ブロック５１４は、最高頻度消去ブロック５１０のグループに追加されることが可能である。新しいブロック５２２が最高頻度消去ブロック５１０のグループに有効に追加されるとき、最低消去カウントを有する頻度消去ブロック５１０のグループ内のブロック５２２が、グループ５０２に再度割り当てられることが可能である。そのような再度割当ては、通常、関連付けられたブロックマッピング表、最低頻度消去ブロック表、および最高頻度消去ブロック表（図示せず）を更新することによって反映される。
【００６３】
グループ５０２、最低頻度消去ブロック５０６のグループ、および最高頻度消去ブロック５１０との間においてブロックをスワップまたは更新することは、一般に、グループ５０２に含まれるブロック５１４が消去または更新されるときに行われることが可能である。代替として、ブロックのスワップまたは更新は、実質的に、スペアブロックがグループ５０２において使用されるために割り付けられることが所望されるたびに、行われることが可能である。次に図６を参照すると、ブロックのより一様な摩耗を見込むために、埋込みフラッシュメモリを有するホストシステムなどのメモリシステム全体においてブロックのスワップまたは更新を実施する１つの方法が、本発明の実施形態により記述される。ブロックのスワップまたは更新を実施するプロセス６００が、ステップ６０４において開始され、ブロック「Ｙ」などのブロックが、ブロックマッピング表から「得られ」、そうでない場合は、ブロックマッピング表を使用して識別される。得られるブロックは、内容をコピーまたは更新するために、ブロックマピング表から有効にスワップされるブロックである。
【００６４】
ブロック「Ｙ」が得られた後、ステップ６０８において、ブロック「Ｘ」などのブロックが、最低頻度消去ブロック表から有効に得られる。すなわち、スペアブロックが、適切なスペアブロックを識別するために、最低頻度消去ブロック表を使用して最低頻度消去ブロックのグループから得られる。一般に、ブロック「Ｘ」は、最低頻度消去ブロックのグループにおいて最低消去カウントを有するブロックであるが、ブロック「Ｘ」は、最低頻度消去ブロックのグループ、したがって最低頻度消去ブロック表に関連付けられたほぼあらゆるブロックとすることが可能である。ブロック「Ｙ」に記憶されているデータ内容、またはブロック「Ｙ」の当初の内容と置き換えられる新しい内容が、ステップ６１２においてブロック「Ｘ」にコピーされる。
【００６５】
ブロック「Ｙ」の内容がブロック「Ｘ」にコピーされた後、ブロック「Ｘ」は、ステップ６１６において、ブロックマピング表に有効に移動される、または関連付けられる。すなわち、ブロック「Ｙ」およびブロック「Ｘ」に関連するマッピングは、ブロック「Ｙ」に以前にマッピングされたＬＢＡがブロック「Ｘ」に再度マッピングされるように、有効に更新される。ブロック「Ｘ」がブロックマッピング表に有効に移動されるとき、ステップ６２０において、ブロック「Ｙ」は消去される。具体的には、ユーザ内容など、ブロック「Ｙ」に記憶されているデータ内容は、ほぼあらゆる適切な技術を使用して消去されることが可能である。次いで、ブロック「Ｙ」に関連付けられた冗長領域に記憶されているブロック「Ｙ」に関連付けられた消去カウントは、ブロック「Ｙ」が再び消去されたことを示すために、ステップ６２４において増分される。一実施形態では、消去カウントブロックに有効に記憶されている「Ｙ」の消去カウントが、更新されることが可能であることを理解されたい。
【００６６】
ステップ６２８において、最高頻度消去ブロック表において最低消去カウントを有するブロックが識別される。上述されたように、一実施形態では、最高頻度消去ブロック表において参照されるブロックが、それぞれの消去カウントに従ってソートされる。ブロックをソートすることは、ブロックの消去カウントに従って、最高頻度消去ブロック表内のブロックを位置決めすることを含むことが可能である。したがって、最高消去カウントを有するブロックを識別することは、最低消去カウントを有するブロック参照に収容するように構成される最高頻度消去ブロック表内の位置において、ブロック参照にアクセスすることを一般に含む。
【００６７】
最高頻度消去ブロック表において参照された最低消去カウントを有するブロックが識別された後、プロセス流れは、ステップ６２８からステップ６３２に移行し、ブロック「Ｙ」の消去カウントが、最高頻度消去ブロック表において参照された最低消去カウントを有するブロックの消去カウントより大きいかについて判定される。ブロック「Ｙ」の消去カウントが、最高頻度消去カウント表において参照された最低消去カウントを有するブロックの消去カウントより大きくないと判定される場合、ブロック「Ｙ」は、頻繁に消去されると見なされないことを意味する。したがって、プロセス流れは、ステップ６３２からステップ６３６に進行し、ブロック「Ｙ」は、最低頻度消去ブロックのグループへ移動され、最低頻度消去ブロック表に有効に移動される。すなわち、ブロック「Ｙ」に対応するエントリが、最低頻度消去ブロック表に追加される。一実施形態では、ブロック「Ｙ」を最低頻度消去ブロックのグループに移動させることは、各ブロックの消去カウントを使用して最低頻度消去ブロック表においてほぼすべてのブロック参照を再ソートすることを含むことが可能である。ブロック「Ｙ」が最低頻度消去ブロック表に有効に移動された後、ブロックをスワップまたは更新するプロセスは、完了される。
【００６８】
ステップ６３２に戻って、ステップ６３２において、ブロック「Ｙ」の消去カウントが、最高頻度消去ブロック表に関連付けられた最低消去カウントを超えると判定される場合、ブロック「Ｙ」は、最高頻度消去ブロックのグループに移動されるべきであり、かつ最高頻度消去ブロック表に有効に移動されるべきであることを意味する。ブロック「Ｙ」が最高頻度消去ブロック表において参照される余地が存在するために、最高頻度消去ブロック表において参照された最低消去カウントを有するブロックなどのブロックが、最高頻度消去ブロック表から除去されることが、実際上必要である。したがって、ステップ６４０において、最高頻度消去ブロック表において参照された最低消去カウントを有するブロックは、最低頻度消去ブロックのグループに移動され、かつ最低頻度消去ブロック表に有効に移動される。ブロックを最低頻度消去ブロックのグループに移動させることは、各ブロックの消去カウントに従って、最低頻度消去ブロック表においてブロック参照を再度ソートすることを含むことが可能である。
【００６９】
最高頻度消去ブロック表において最低消去カウントを有するブロックが、最高頻度消去ブロック表から有効に移動された後、ステップ６４４において、ブロック「Ｙ」は、最高頻度消去ブロック表に有効に移動される。一実施形態では、ブロック「Ｙ」を最高頻度消去ブロックのグループに移動させ、したがって最高頻度消去ブロック表に有効に移動させることは、ブロック「Ｙ」を含めて、各ブロックの消去カウントに従って最高頻度消去ブロックを分類することを含むことが可能である。ブロック「Ｙ」が最高頻度消去ブロック表に有効に移動されるとき、ブロックをスワップまたは更新するプロセスは、完了される。
【００７０】
一般に、ブロックをスワップまたは更新する要求に応答することなど、表を維持すること、初期化要求に対処すること、および摩耗一様化を実施することに関連付けられる機能は、プログラムコード装置などのソフトウエアにおいて、またはファームウエアとしてホストシステムに提供される。摩耗一様化が行われることを可能にするために、ホストシステムに提供されるソフトウエアまたはファームウエアに関連付けられる適切なシステムアーキテクチャの一実施形態が、図７に示される。システムアーキテクチャ７００は、アプリケーションインタフェース７０４、システム・マネージャ・モジュール７０８、データ・マネージャ・モジュール７１２、データ保全マネージャ７１６、ならびに装置マネージャおよびインタフェースモジュール７２０などを含むが、これに限定されない、様々なモジュールを一般に含む。一般に、システムアーキテクチャ７００は、図１ａのプロセッサ１０８など、プロセッサによってアクセスされることが可能であるソフトウエアコード装置またはファームウエアを使用して実施されることが可能である。
【００７１】
一般に、アプリケーション・インタフェース・モジュール７０４は、ホスト、オペレーティングシステム、またはユーザと直接通信するように構成されることが可能である。アプリケーション・インタフェース・モジュール７０４は、システム・マネージャ・モジュール７０８およびデータ・マネージャ・モジュール７１２とも通信する。ユーザがフラッシュメモリを読み取る、それに書き込む、またはそれをフォーマットすることを望むとき、ユーザは、要求をオペレーティングシステムに送信し、要求は、アプリケーション・インタフェース・モジュール７０４に渡される。アプリケーション・インタフェース・モジュール７０４は、要求に応じて、要求をシステム・マネージャ・モジュール７０８またはデータ・マネージャ・モジュール７１２に向ける。
【００７２】
システム・マネージャ・モジュール７０８は、システム初期化サブモジュール７２４、消去カウントブロック管理サブモジュール７２６、および電力管理ブロックサブモジュール７３０を含む。システム初期化サブモジュール７２４は、一般に、初期化要求が処理されることを可能にするように構成され、通常、消去カウントブロック管理サブモジュール７２６と通信する。一実施形態では、システム初期化サブモジュール７２４は、ブロックの消去カウントが更新されることを可能にし、最低頻度使用ブロック表および最高頻度使用ブロック表を創出する役割を実質的に担う。
【００７３】
消去カウントブロック管理サブモジュール７２６は、ブロックの消去カウントを記憶する機能、および個々の消去カウントを使用して、平均消去カウントを計算ならびに更新する機能を含む。すなわち、消去カウントブロック管理モジュール７２６により、平均消去カウントを維持することが事実上可能になる。さらに、一実施形態では、消去カウントブロック管理サブモジュール７２６は、また、システム全の初期化要求中に、消去カウントブロックのほぼすべてのブロックの消去カウントをほぼ同期させる。消去カウントブロック管理サブモジュール７２６は、平均消去カウントが消去カウントブロックに記憶されるように構成されることが可能であるが、電力管理ブロックサブモジュール７３０は、代わりに、平均消去カウントが記憶されることを可能にするために使用されることが可能であることを理解されたい。
【００７４】
アプリケーション・インタフェース・モジュール７０４と通信することに加えて、システム・マネージャ・モジュール７０８は、データ・マネージャ・モジュール７１２、ならびに装置マネージャおよびインタフェースモジュール７２０とも通信する。システム・マネージャ・モジュール７０８およびアプリケーション・インタフェース・モジュール７０４の両方と通信するデータ・マネージャ・モジュール７１２は、ページまたはブロックのマッピングを提供する機能を含むことが可能である。データ・マネージャ・モジュール７１２は、オペレーティングシステムおよびファイル・システム・インタフェース層に関連する機能を含むことも可能である。
【００７５】
システム・マネージャ・モジュール７０８、データ・マネージャ７１２、およびデータ保全マネージャ７１６と通信する装置マネージャおよびインタフェースモジュール７２０は、通常、フラッシュ・メモリ・インタフェースを提供し、Ｉ／Ｏインタフェースなど、ハードウエアアブストラクションに関連する機能を含む。データ保全マネージャモジュール７１６は、機能の中でも、ＥＣＣハンドリングを提供する。
【００７６】
本発明のごくわずかな実施形態について記述したが、本発明は、本発明の精神または範囲から逸脱せずに、多くの他の特有の形態において実現されることが可能であることを理解されたい。例として、平均消去ブロックに対する各ブロックの比較に基づいてブロックを最高頻度消去ブロック表および最低頻度消去ブロック表にブロックを割り当てる代わりに、ブロックは、どのブロックが最高消去カウントを有し、どのブロックが最低消去カウントを有するかのほぼ絶対的な判定に基づいて、最高頻度消去ブロック表および最低頻度消去ブロック表に代わりに割り当てられることが可能である。すなわち、個々のブロック消去カウントを平均消去カウントに対して比較するのではなく、ブロック消去カウントが、ブロックを挿入すべき適切な表を決定するために、互いに実際に比較されることが可能である。
【００７７】
最低頻度消去ブロック表が、スペアブロックとして比較的小さい消去カウントを有するブロックに対する参照を保持するように記述された。スペアブロックは、実質的にスペアブロックが必要とされるたびに、最低頻度消去ブロック表において参照された最低消去カウントが使用のために提供されるように、ブロックマッピング表を使用することにより、使用のために有効に割り付けられる。すなわち、ブロックマッピング表において識別されたブロックがスワップされるとき、最低頻度消去ブロックのグループにおいて最低消去カウントを有するブロックへの参照が、ブロックマッピング表に移動される。しかし、ほぼあらゆるブロックが、ブロック・スワップ・プロセス中に、最低頻度消去ブロックのグループから一般に取り入れられることが可能であることを理解されたい。ブロックマッピング表に移動させるために、最低頻度消去ブロック表を使用して最低頻度消去ブロックからほぼあらゆるブロックを選択することにより、システム全体に関連付けられたオーバーヘッドを低減することが可能であるが、その理由は、最低頻度消去ブロック表内のブロックは、必ずしも分類される可能性がないからである。
【００７８】
静止ブロックを識別および処理することは、一般に、全メモリシステム内のブロックが一様に摩耗することを可能にする能力を向上させる。しかし、一実施形態では、静止ブロックは、必ずしも識別および処理されない。たとえば、比較的少数の静止ブロックがシステム内において予期される場合、静止ブロックの識別および処理は、本発明の精神または範囲から逸脱せずに、ほぼ排除されることが可能である。
【００７９】
不揮発性メモリシステムは、関連付けられたメモリ制御装置によって制御され、またはホストシステムに関連付けられたソフトウエアもしくはファームウエアを使用して制御されると記述されたが、消去カウントの管理を含む摩耗一様化プロセスは、不揮発性メモリシステムの実質的に外部にある制御装置と通信する不揮発性メモリシステムに適用されることが可能であることを理解されたい。制御装置を使用する適切なメモリシステムは、ＰＣカード、コンパクトフラッシュ（登録商標）カード、マルチメディアカード、セキュア・デジタル・カード、ならびにフラッシュメモリおよびフラッシュメモリ制御装置を含む埋込みチップセットを含むが、これに限定されるものではない。ホストウエアにロードされたソフトウエアまたはファームウエアの使用により制御されるメモリシステムは、埋込みメモリ装置を含む。一実施形態では、上述された消去管理技術を使用することが可能であり、かつメモリシステムに関連付けられた制御装置を使用しないメモリシステムが、摩耗一様化を実施するために、ホストコンピュータシステムなど、ホストに関連付けられた制御装置を使用することが可能である。すなわち、ホストが、摩耗一様化がホスト上の制御装置を使用することにより行われるメモリに直接対処して、管理することが可能である。
【００８０】
一般に、摩耗一様化の様々なプロセスおよび方法に関連するステップは、大きく変更されることが可能である。ステップは、一般に、本発明の範囲の精神から逸脱せずに、追加、除去、変更、および再順序付けされることが可能である。例として、静止ブロックを処理することは、初期化要求を処理することに必ずしも含まれないことが可能である。また、一実施形態では、新しく消去されたブロックを最高頻度消去ブロック表に実際に配置するかの判定は、消去ブロックが、最高頻度消去ブロック表に関連付けられた最低消去カウントより大きい消去カウントを有するかに基づく代わりに、他の基準に基づくことが可能である。たとえば、そのような決定は、消去ブロックの消去カウントが、約２０パーセントなど、あるパーセンテージの最高頻度消去ブロック表に関連付けられたほぼすべてのブロックの平均消去カウントを超えるかに基づくことが可能である。消去ブロックの消去カウントが、あるパーセンテージを超えて平均消去カウントを超えるとき、最高頻度消去ブロック表において参照された最低消去カウントを有するブロックは、最低頻度消去ブロック表に移動されることが可能であり、一方、消去ブロックは、最高頻度消去ブロック表に移動される。したがって、本例は、例示としてであり、限定的と見なされるべきではなく、本発明は、本明細書において与えられた詳細に限定されず、添付の請求項の範囲内において修正されることが可能である。
【図面の簡単な説明】
【００８１】
【図１】図１ａは本発明の実施形態による、不揮発性メモリ装置を含む汎用ホストシステムの概略図である。            図１ｂは本発明の実施形態による、図１ａのメモリ装置１２０など、メモリ装置の概略図である。
【図２】本発明の実施形態による、フラッシュメモリの一部の概略図である。
【図３】本発明の実施形態による、フラッシュ・メモリ・システムに関する初期化要求を処理することに関連するステップを示すプロセス流れ図である。
【図４】本発明の実施形態による、静止ブロックを処理する１つの方法に関連するステップを示すプロセス流れ図である。
【図５ａ】本発明の実施形態による、システムメモリを示す概略的なブロック図である。
【図５ｂ】本発明の実施形態による、通常ブロック、最低頻度消去ブロック、および最高頻度消去ブロックを示す概略図である。
【図６】本発明の実施形態による、ブロックのより一様な摩耗を見込むために、メモリシステム全体のシステムメモリにおいてブロックスワップ／更新を実施する一方法を示す概略図である。
【図７】本発明の実施形態による、システムアーキテクチャを示す概略的なブロック図である。
【図１】
0004456486.tif 000002
【図２】
0004456486.tif 000003
【図３】
0004456486.tif 000004
【図４】
0004456486.tif 000005
【図５ａ】
0004456486.tif 000006
【図５ｂ】
0004456486.tif 000007
【図６】
0004456486.tif 000008
【図７】
0004456486.tif 000009