(57)【要約】本明細書中には、不揮発性メモリデバイスのユーザ設定可能なウェアレベリング用のシステム、方法、及びデバイスを開示する。デバイスは不揮発性メモリを含み、この不揮発性メモリは複数の物理的メモリ部分を含み、これら複数の物理的メモリ部分の各々は、複数の論理的メモリ部分のうちの１つの論理的メモリ部分にマッピングされるように構成されている。デバイスはウェアレベリング制御回路を含むこともでき、このウェアレベリング制御回路は、複数のウェアレベリングのパラメータを受信するように構成され、さらに、受信した複数のウェアレベリングのパラメータに基づいて複数のウェアレベリングの特性を決定するように構成され、これら複数のウェアレベリングの特性は、複数の論理的メモリ部分の各々において許容されるウェアレベリングの特徴量を識別する。
2019533213.tif 000002
【特許請求の範囲】
【請求項１】
複数の物理的メモリ部分を含む不揮発性メモリと、
ウェアレベリング制御回路と
を具えたデバイスであって、
前記複数の物理的メモリ部分の各々は、複数の論理的メモリ部分のうちの１つの論理的メモリ部分にマッピングされ、
前記ウェアレベリング制御回路は、複数のウェアレベリングのパラメータを受信するように構成され、さらに、前記受信した複数のウェアレベリングのパラメータに基づいて複数のウェアレベリングの特性を決定するように構成され、該複数のウェアレベリングの特性は、前記複数の論理的メモリ部分の各々において許容されるウェアレベリングの特徴量を識別するデバイス。
【請求項２】
前記複数のウェアレベリングのパラメータがユーザ指定のパラメータである、請求項１に記載のデバイス。
【請求項３】
前記複数のウェアレベリングのパラメータは、前記不揮発性メモリにおける前記複数のウェアレベリングの特性の各々に割り当てられた部分をさらに識別するように設定されている、請求項１に記載のデバイス。
【請求項４】
前記複数のウェアレベリングの特性が、ウェアレベリングを適用するべきであることを示す第１ウェアレベリング設定値を含み、ウェアレベリングを適用するべきでないことを示す第２ウェアレベリング設定値をさらに含む、請求項１に記載のデバイス。
【請求項５】
前記第１ウェアレベリング設定値が、第１の特徴量のウェアレベリングを適用するべきであることを示し、前記複数のウェアレベリングの特性が、
第２の特徴量のウェアレベリングを適用するべきであることを示す第３ウェアレベリング設定値と、
第３の特徴量のウェアレベリングを適用するべきであることを示す第４ウェアレベリング設定値と
をさらに含む、請求項４に記載のデバイス。
【請求項６】
前記複数のウェアレベリングのパラメータが、前記複数の論理的メモリ部分の各々に関連するプログラム及び消去（ＰＥ）サイクルの回数を識別し、前記複数のウェアレベリングの特性が、前記ＰＥサイクルの回数に基づく、前記複数の論理的メモリ部分の各々に適用されるウェアレベリングの特徴量を識別する、請求項１に記載のデバイス。
【請求項７】
前記複数のウェアレベリングのパラメータが、前記不揮発性メモリの複数のパーティションにおける各パーティションの論理的サイズを識別し、前記複数のウェアレベリングの特性が、前記各パーティションの論理的サイズに基づく、前記複数の論理的メモリ部分の各々において許容されるウェアレベリングの特徴量を識別する、請求項１に記載のデバイス。
【請求項８】
前記複数の論理的メモリ部分が複数の固定サイズのパーティションに区分されている、請求項１に記載のデバイス。
【請求項９】
前記複数の論理的メモリ部分が、前記複数のウェアレベリングのパラメータに基づいて設定されたフレキシブルなサイズのパーティションに区分されている、請求項１に記載のデバイス。
【請求項１０】
複数の物理的メモリ部分を含む不揮発性メモリと、
ウェアレベリング制御回路と、
前記ウェアレベリング制御回路をデータ処理システムと通信結合するように構成された通信インタフェースと、
前記不揮発性メモリに関連するプログラム及び消去動作を実行するように構成された１つ以上のプロセッサと
を具えたシステムであって、
前記複数の物理的メモリ部分の各々は、複数の論理的メモリ部分のうちの１つの論理的メモリ部分にマッピングされ、
前記ウェアレベリング制御回路は、複数のウェアレベリングのパラメータを受信するように構成され、さらに、前記受信した複数のウェアレベリングのパラメータに基づいて複数のウェアレベリングの特性を決定するように構成され、該複数のウェアレベリングの特性は、前記複数の論理的メモリ部分の各々において許容されるウェアレベリングの特徴量を識別するシステム。
【請求項１１】
前記複数のウェアレベリングのパラメータがユーザ指定のパラメータである、請求項１０に記載のシステム。
【請求項１２】
前記複数のウェアレベリングのパラメータは、前記不揮発性メモリにおける前記複数のウェアレベリングの特性の各々に割り当てられた部分をさらに識別する、請求項１０に記載のシステム。
【請求項１３】
前記複数のウェアレベリングの特性が、ウェアレベリングを適用するべきであることを示す第１ウェアレベリング設定値を含み、ウェアレベリングを適用するべきでないことを示す第２ウェアレベリング設定値をさらに含む、請求項１０に記載のシステム。
【請求項１４】
前記複数のウェアレベリングのパラメータが、前記複数の論理的メモリ部分の各々に関連するプログラム及び消去（ＰＥ）サイクルの回数を識別し、前記複数のウェアレベリングの特性が、前記ＰＥサイクルの回数に基づく、前記複数の論理的メモリ部分の各々に適用されるウェアレベリングの特徴量を識別する、請求項１０に記載のシステム。
【請求項１５】
前記複数の論理的メモリ部分が、前記複数のウェアレベリングのパラメータに基づいて設定されたフレキシブルなサイズのパーティションに区分され、前記不揮発性メモリ及び前記ウェアレベリング制御回路が同じ回路ダイ上に実装されている、請求項１０に記載のシステム。
【請求項１６】
ウェアレベリング制御回路を用いて、複数の物理的メモリ部分を含む不揮発性メモリの複数のパーティションに関連する複数の論理的アドレス範囲を特徴付けるパーティション境界識別子を生成するステップであって、前記複数の物理的メモリ部分の各々が、複数の論理的メモリ部分のうちの１つの論理的メモリ部分に関連するステップと、
前記ウェアレベリング制御回路を用いて、前記複数のパーティションに関連するウェアレベリングの特性を含むウェアレベリング識別子を生成するステップであって、該ウェアレベリング識別子は、前記複数の論理的メモリ部分に関連するウェアレベリングの特性を含み、該ウェアレベリングの特性は、前記複数の論理的メモリ部分の各々において許容されるウェアレベリングの特徴量を識別するステップと、
前記ウェアレベリング制御回路を用いて、前記複数のウェアレベリング識別子に少なくとも部分的に基づくアドレスマップを生成するステップであって、該アドレスマップは、第１数の前記論理的メモリ部分を、ウェアレベリングに含まれる第１数の前記物理的メモリ部分にマッピングする第１マッピングを特徴付け、前記アドレスマップは、さらに、第２数の前記論理的メモリ部分を、前記ウェアレベリングから除外される第２数の前記物理的メモリ部分にマッピングする第２マッピングを特徴付けるステップと
を含む方法。
【請求項１７】
前記複数のウェアレベリングのパラメータがユーザ指定のパラメータである、請求項１６に記載の方法。
【請求項１８】
前記複数のウェアレベリング識別子は、前記不揮発性メモリにおける前記複数のウェアレベリングの特性の各々に割り当てられた部分をさらに識別する、請求項１６に記載の方法。
【請求項１９】
前記複数のウェアレベリングの特性が、ウェアレベリングを適用するべきであることを示す第１ウェアレベリング設定値を含み、ウェアレベリングを適用するべきでないことを示す第２ウェアレベリング設定値をさらに含む、請求項１６に記載の方法。
【請求項２０】
前記複数のウェアレベリングのパラメータが、前記不揮発性メモリの複数のパーティションにおける各パーティションの論理的サイズを識別し、前記複数のウェアレベリングの特性が、前記各パーティションの論理的サイズに基づく、前記複数の論理的メモリ部分の各々において許容されるウェアレベリングの特徴量を識別する、請求項１６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願のクロスリファレンス
本願は米国特許非仮出願第１５／３８８８９２号、２０１６年１２月２２日の国際出願であり、この米国特許非仮出願は、35 U.S.C§119(e)の下で米国特許仮出願第６２／４０３３４０号、２０１６年１０月３日出願による優先権を主張し、これらの特許出願のすべては、いかなる目的でもその全文を参照することによって本明細書中に含める。
【０００２】
技術分野
本発明は一般に不揮発性メモリに関するものであり、より具体的には、不揮発性メモリに関連するウェアレベリング（wear leveling：劣化平準化）に関するものである。
【背景技術】
【０００３】
不揮発性メモリデバイスはメモリセル・アレイを含み、これらのメモリセル・アレイは、システムの他の種々の構成要素によるアクセス用にデータ値を記憶するように構成することができる。メモリセルはメモリ素子を含み、これらのメモリ素子は、有効データをより短時間保持することによって長い時間と共に劣化し得る、というのは、セルに対して行われるプログラム及び消去動作の回数（ＰＥ（program and erase）サイクル数）が増加するからである。こうしたメモリセルは、物理セクターにグループ化された物理的な記憶場所を含むことができ、これらのセクターは、メモリセル・アレイのメモリ空間を表現する論理アドレス及び論理セクターにマッピングされる。ウェアレベリングは、データの物理的記憶場所を変化させて、ＰＥサイクルによる劣化（ウェア）をいくつかの物理的セクターにわたって拡散するように実現することができる。しかし、こうしたウェアレベリングは、より低頻度のサイクルのデータも、既に多数回のＰＥサイクルが行われた物理セクターへ移動させることがある。従って、ウェアレベリング技術は、ＰＥサイクルが稀にしか行われないデータの保持時間を不用意に低下させることがある。
【図面の簡単な説明】
【０００４】
【図１】いくつかの実施形態により構成した、２つ以上のサイズのセクターを含む設定可能なウェアレベリング付きメモリデバイスの例を示す図である。
【図２】いくつかの実施形態により構成した、均一なセクターサイズを含む設定可能なウェアレベリング付きメモリデバイスの例を示す図である。
【図３】いくつかの実施形態により構成した、設定可能なウェアレベリング付きメモリデバイスの例を示す図であり、パラメータセクターはウェアレベリングから除外し、他のセクターは固定のパーティションサイズにグループ化している。
【図４】いくつかの実施形態により実現される、メモリデバイスのウェアレベリングのための方法の例を示すフローチャートである。
【図５】いくつかの実施形態により実現される、メモリデバイスのウェアレベリングのための方法の他の例を示すフローチャートである。
【図６】いくつかの実施形態により構成した、設定可能なウェアレベリング付きメモリデバイスの例を示す図である。
【発明を実施するための形態】
【０００５】
詳細な説明
以下の説明では、本発明の概念の完全な理解をもたらすために、多数の具体的細部を説明する。提示する概念は、これらの具体的細部の一部または全部なしで実施することができる。他の例では、説明する概念を不必要にあいまいにしないように、周知のプロセス動作は詳細に説明していない。一部の概念は特定例に関連して説明するが、これらの例は限定的であることを意図していないことは明らかである。
【０００６】
種々の実施形態では、メモリデバイスを、当該メモリデバイスに対して行うことができるプログラム及び消去（ＰＥ）サイクルの回数について制限することができる、というのは、メモリセルが、十分な期間にわたって高い信頼性でデータを保持することができなくなる点まで劣化するからである。ＰＥサイクルの回数（本明細書では耐久性とも称する）が増加するほど、データが高い信頼性で保持される時間長（本明細書では保持力とも称する）が低減される。一部の実施形態では、頻繁に修正される情報をメモリアレイの種々の異なる領域へ移動させて、あらゆる１つの領域において実現されるＰＥサイクルの回数を制限するために、ウェアレベリング技術を実現することができる。こうしたウェアレベリング技術を用いて、情報の１つの論理ブロックを記憶するメモリの１つの領域上の実効的なＰＥサイクル数を低減することができる。しかし、メモリアレイ全体に適用する際には、ウェアレベリングは、情報の複数の論理ブロックを記憶するメモリの複数の領域のうち比較的低頻度で修正される領域上でのＰＥサイクル数も増加させ、これにより、比較的低頻度で修正される情報の保持期間も低下させる。さらに、こうしたデータの移動に起因する保持期間の低下は、メモリのユーザが知らないうちに発生し得る。ユーザは、メモリアレイの低サイクル数の領域はより長い保持時間を有するものと信じ込むが、ウェアレベリング技術は、実際には、低サイクル数の物理セクターからより高サイクル数の物理セクターへ情報を移動させることによって保持期間が低下していることがある。種々の実施形態では、１セクターを消去、及び／または、プログラムまたは上書きの単位とすることができる。従って、１セクターのサイズは、メモリにおける消去、プログラム、または上書き動作に含まれる部分のサイズによって決定または定義することができる。
【０００７】
以下でより詳細に説明するように、ウェアレベリング技術は、論理セクターを物理セクターにマッピングし、各物理セクターの消去カウント数を追跡する種々の方法を含むことができ、このため、ある物理セクターについてＰＥサイクル数の閾値に達すると、この物理セクター内のデータを、消去サイクル数のより少ない他の物理セクターへ移動して、論理−物理のマップを更新する。このことは、論理セクターを、どの物理セクターにおいて可能であるよりも多数のＰＥサイクル数をサポートするように見せ、従って、１つの論理セクターのＰＥサイクルによる劣化を多数の物理セクターにわたって拡散させ、これにより、長い時間がたつと、すべての物理セクターが、およそ等しいＰＥサイクル及び劣化の回数を有する。
【０００８】
一部のウェアレベリング技術は限度のあるままである、というのは、これらの技術は、サイクル能力を増加させるためにメモリアレイのどの部分にウェアレベリングを施し、より長時間のデータ保持を維持するためにメモリアレイのどの部分にウェアレベリングを施さないかのユーザ制御を何ら提供しないからである。例えば、内部ウェアレベリング・メカニズムを有する一部のメモリデバイスは、ウェアレベリング動作中にデバイス内の大部分または全部の物理セクターを使用する。こうした実施形態では、メモリデバイスは、どの論理セクターを、ある論理セクターが現在使用中の物理セクターよりも多数回のＰＥサイクルが行われた物理セクター内へ移転（リロケート）することができるかを制御することができない。このことは、長い保持時間を必要とするデータを含む論理セクターを、より多数回のＰＥサイクルが行われた物理セクターへ移動させることがあり、従って、フラッシュデバイスのユーザが知らないうちに保持時間を低下させる。従って、稀に更新されるコードのようにメモリにおける長時間の保持が望まれる領域が、ウェアレベリング・アルゴリズムによって、多数回のＰＥサイクルが行われるセクター内へ移動されることがあり、このため、そのメモリ領域における保持時間をユーザが知らないうちに低下させる。
【０００９】
本明細書中では、ユーザ設定可能なウェアレベリングを実現するメモリデバイスを提供するように構成された種々の実施形態を開示する。従って、メモリアレイの一部の領域は、一部の論理セクターのより高い見かけの耐久性のためにウェアレベリングを施すことができ、メモリアレイの他の領域は、保持を維持するためにウェアレベリングを施さない。メモリアレイにおけるウェアレベリングを施す部分及びウェアレベリングを施さない部分は、本明細書中に開示する多数の方法で明示的に規定することができる。一例では、アドレスポインタを用いて、メモリアレイ内のパーティション（アドレス範囲）間の境界（バウンダリ）を規定し、パーティション毎に、当該パーティションがウェアレベリングにおいて使用されるセクターのプール（集まり）内にあるか、ウェアレベリングのプール内にないかを示すことができる。こうした論理アドレス範囲の明示的規定は、どのメモリ領域でより少数回のＰＥサイクルを行い、従ってより長時間の保持を行い、どの領域が、メモリの単一領域がサポートすることができるＰＥサイクル数よりも多数回のＰＥサイクルを実効的に行うことができるかについての、メモリのユーザ制御を与える。こうした設定可能なウェアレベリングの追加的な詳細は以下に提供する。
【００１０】
図１に、いくつかの実施形態により構成した、２つ以上のサイズのセクターを含む設定可能なウェアレベリング付きメモリデバイスの例を示す。以下により詳細に説明するように、メモリデバイス１００のようなメモリデバイスは、ウェアレベリングにおいて使用する物理的メモリ部分の集合またはプール内に含めるための、メモリのいくつかの論理的部分をユーザが明示的に選択することを可能にするように構成することができ、さらに、他の論理的メモリ部分をこうしたウェアレベリングにおける使用からユーザが明示的に除外することを可能にするように構成されている。連続した論理的部分のグループをパーティションと称し、各パーティションは、ウェアレベリングにおける使用向けに指定すること、あるいはウェアレベリングから除外することができる。従って、本明細書中に開示する種々の実施形態は、どの論理的部分が低いＰＥサイクル数を有することができ、従ってより長時間のデータ保持を行うか、これに対しどの論理的部分が高いＰＥサイクル数の耐久性を有することができるが、より短時間のデータ保持を行うかを選定するフレキシビリティ（柔軟性）をユーザにもたらす。以下により詳細に説明するように、論理的部分は論理セクターを記述することができ、物理的部分は物理セクターを記述することができる。しかし、種々の実施形態では、こうした部分はセクターと合わせなくてもよく、ある部分はメモリ空間内のセクターと直接対応しなくてもよい。
【００１１】
種々の実施形態では、メモリデバイス１００は、不揮発性メモリ素子をメモリアレイ１０２のようなメモリアレイの形で含む記憶デバイスとすることができる。従って、メモリアレイ１０２は複数のメモリ素子の多数の列及び行を含むことができ、これらのメモリ素子はセクターにグループ化または分割することができる。種々の実施形態では、こうしたセクターはワード（語）のようなデータ単位のグループとすることができ、こうしたグループは消去する単位とすることができる。種々の実施形態では、図１に示すセクターは論理セクターであり、物理セクターにマッピングすることができる。一部の実施形態では、論理セクターは、メモリアレイ内のデータの物理的な記憶場所とは独立したメモリアレイのアドレスによって参照されるデータのセクターとすることができる。従って、ホストシステムは、論理セクターを（例えば、メモリアレイのアドレス０から始まる）特定アドレスに常駐するものとして見ることができる。この例では、データは実際にはメモリアレイのアドレス空間の異なる部分内の異なる物理アドレスに配置することができる。種々の実施形態では、メモリデバイス１００は、データの論理アドレスから対応する実際の物理的記憶場所へのマッピングテーブルを維持する。このようにして、メモリデバイス１００は、物理的メモリセクターにマッピングすることができる種々の論理的メモリセクターを含むことができる。種々の実施形態では、メモリアレイ１０２が可変サイズのメモリセクターを含むことができる。例えば、メモリアレイ１０２はスーパーバイザー（管理用）のメモリセクター１３０を含むことができ、メモリセクター１３０は４キロバイト（KB）のような第１サイズを有することができ、第１メモリセクター１０４をさらに含むことができ、第１メモリセクター１０４は大きなメモリセクターとすることができ、２５６KBのような第２サイズを有することができる。一部の実施形態では、メモリアレイ１０２が第２メモリセクター１０６を含むこともでき、第２メモリセクター１０６はメモリアレイ１０２内の最終メモリセクターとすることができ、これも４KBの第１サイズを有することができる。
【００１２】
さらに、これらのセクターはパーティションにグループ化することができる。従って、メモリアレイ１０２は種々のメモリ・パーティションを含むことができ、これらは論理セクターの連続したグループであり、境界によって規定することができる。例えば、メモリアレイ１０２は、第１境界１１０、第２境界１１２、第３境界１１４、及び第４境界１１６を含むことができ、これらの境界は第１パーティション１１８、第２パーティション１２０、第３パーティション１２２、第４パーティション１２４、及び第５パーティション１２６を規定する。以下により詳細に説明するように、こうした境界は、ユーザ指定とすることができるウェアレベリングのパラメータに基づいて設定可能にすることができる。従って、ユーザはサイズ及び境界をパーティションに関連して規定及び指定することができる。さらに、ウェアレベリングのパラメータは、特定パーティションを、ウェアレベリングにおいて使用する物理的セクターに含めるか否かを示すことができる。以下により詳細に説明するように、パーティションのサイズはフレキシブルにすることも、ユーザ入力に基づいて設定可能にすることもできる。
【００１３】
前に説明したように、ウェアレベリングは、メモリデバイス１００のようなメモリデバイス内の論理セクターの耐久性を向上させるために用いられるセクター消去管理技術とすることができる。ウェアレベリングは、１つの論理セクターに適用されるＰＥサイクル数を、メモリデバイス内の物理セクターの集合またはプール内の複数の物理セクターにわたって拡散させる。物理セクターのプールは、論理セクターのデータのリロケーション（移転）用に利用可能である。例えば、ウェアレベリングを改善する際には、論理セクターを物理セクターにマッピングすることができ、そして各物理セクターの消去カウント数を追跡して、特定の物理セクターにおいてＰＥサイクル数の閾値に達するかＰＥサイクル数の閾値を超えると、この物理セクター内のデータを、より少数の消去サイクル数を有する他の物理セクターへ移動して、論理−物理のマップを更新する。こうした物理セクターのＰＥサイクル数の追跡、及び複数の物理セクターにわたる論理セクターの移動は、論理セクターを、どの物理セクターにおいて可能であるよりも多数のＰＥサイクル数をサポートするように見せる。従って、ＰＥサイクルによる論理セクターの劣化が多数の物理セクターにわたって拡散して、これにより、長い時間がたつと、すべての物理セクターにおよそ等しいＰＥサイクルの回数分の劣化が生じる。
【００１４】
特定例では、種々のセクターが、１つのより小さい論理セクターをより大きい物理セクター内に置く形態のウェアレベリングを利用することができ、この物理セクターのサブセクション（小区分）は個別に消去することができる。物理セクターにおける、より小さい論理セクターによって使用されている部分は、特定回数の消去サイクルを施され、論理セクターのデータは、より大きい物理セクターの次のサブセクションへ移動させる。より小さい論理セクターによって現在使用されていないすべてのサブセクションは消去したままに保って、列のリーク（漏れ）を最小にする。物理セクター全体にわたるこうした論理セクターの移動は、ＰＥサイクルによる劣化を、より大きい物理セクターの全体にわたって拡散する。種々の実施形態では、より小さい論理セクターのデータが同じより大きい物理セクター内に留まる。
【００１５】
従って、ウェアレベリングは、論理セクターを物理セクターにマッピングするマッピングに基づく。メモリデバイス１００のようなメモリデバイスの寿命中には、こうしたマッピングは、論理セクターの内容が高いＰＥサイクル数の物理セクターから低いＰＥサイクル数の物理セクターへ移動すると共に変化する。このことは、すべての物理セクターにわたるＰＥサイクル数のより均一な分布をもたらす。論理−物理のマッピング情報は専用のメモリアレイに記憶され、論理セクターのデータを１つの物理セクターから他の物理セクターへ移動する際に、このマッピング情報を更新する。セクターデータの移動は、プログラム・コマンド及び／または消去コマンド（命令語）を、プロセッサのようなホストシステムまたはホスト構成要素が与える際に発生し得る。
【００１６】
以下により詳細に説明するように、制御回路１２８のような制御回路、及びスーパーバーザーのメモリセクター１３０のような専用の記憶場所またはレジスタを利用して、論理セクター−ウェアレベリングを施す物理セクターのマッピングを設定する。本明細書中に説明するように、本明細書中では制御回路をウェアレベリング制御回路と称することがある。より具体的には、ウェアレベリングのパラメータを受信して、どの論理セクターを、ウェアレベリングのプール内に含めてウェアレベリングを施す物理セクターにマッピングするべきかを識別することができる。これらのウェアレベリングのパラメータを用いて、どの論理セクターを、ウェアレベリングのプール内に含めず、ウェアレベリングを施さない物理セクターにマッピングするべきかを明示的に識別することもできる。以上に説明したように、メモリデバイス１００のようなメモリデバイスは、ウェアレベリングのプール内に含まれウェアレベリングが施される種々のメモリセクターを含むことができ、ウェアレベリングのプール内に含まれずウェアレベリングを施されないメモリセクターをさらに含むことができる。このようにして、ウェアレベリングのパラメータは、どのパーティション及び対応する論理的メモリセクターを、ウェアレベリングが施される物理セクターに含め、どのパーティション及び対応する論理的メモリセクターを除外するべきかを識別するように設定することができる。
【００１７】
より具体的には、スーパーバーザーのメモリセクター１３０は、マッピングを識別する１つ以上のデータ値を記憶するように構成することができ、このマッピングは、論理的メモリセクターを識別し、さらに、こうしたメモリセクターが含まれるパーティションを識別し、さらに、こうしたパーティションに関連するウェアレベリング設定値を識別する。こうしたマッピングの表現の例を以下の表１に示す：
【００１８】
【表１】
2019533213.tif 000003
【００１９】
従って、表１では、マッピングが、論理アドレス・セクター並びにそれに関連するパーティションを識別することができる。さらに、このマッピングは、パーティション毎のウェアレベリング設定値を識別することができる。以上に説明したように、こうしたウェアレベリングの設定値または特性は、受信したユーザ入力に基づくユーザ指定及びユーザ決定とすることができる。このようにして、ユーザは論理的メモリセクター及びパーティションを、物理的メモリセクターのウェアレベリングのプール内に含まれるように、あるいはウェアレベリングのプールから除外されるように明示的に割り当てることができる。さらに、第５パーティション１２６のようなパーティションがマッピングに含まれない場合、このパーティションには、（ウェアレベリングのプール内に）含めるべきであることを示す「１」のようなデフォルト値を割り当てることができる。同様に、こうしたデフォルト値は「０」にすることができる。
【００２０】
本明細書中には、論理的メモリセクターをウェアレベリングのプールに割り当てることに関する種々の実施形態を考えに入れ開示する。例えば、明示的なパーティションのラベル付けを前に説明しているが、他の適切な技術も実現することができる。例えば、スーパーバーザーのメモリセクター１３０のような記憶場所は、いくつかの所定のパーティション・マップを記憶することができ、そして設定パラメータまたは設定値を用いて、使用するマップを選択することができる。一部の実施形態では、こうした所定のマップを、メモリアレイ１０２のアドレス空間の異なる見方に基づいて生成することができる。例えば、所定のマップは、メモリアドレス空間のうち下位８分の１のアドレスをウェアレベリングから除外する第１マップを含むことができる。所定のマップは、アドレス空間の下位４分の１をウェアレベリングから除外する第２マップをさらに含むことができる。所定のマップは、アドレス空間の下位２分の１をウェアレベリングから除外する第３マップを含むこともできる。この例では、ユーザは、設定パラメータを含む入力を与えて、適用するべき特定の所定マップを選択することができる。こうした所定のパーティション・マップの例を以下の表２、３、及び４に示す：
【００２１】
【表２】
2019533213.tif 000004
【００２２】
表２に示すように、アドレス空間の下位８分の１はウェアレベリングから除外されている。
【００２３】
【表３】
2019533213.tif 000005
【００２４】
表３に示すように、アドレス空間の下位４分の１はウェアレベリングから除外されている。
【００２５】
【表４】
2019533213.tif 000006
【００２６】
表４に示すように、アドレス空間の下位２分の１はウェアレベリングから除外されている。上記の例はいくつかの実施形態を示すが、他の種々の実施形態が考えられ、本明細書中に開示する。例えば、より多数のメモリセクターが実現されて利用可能であれば、メモリ空間の割り付けを、メモリ空間の１／１６または１／３２の粒度で実現することができる。さらに、メモリの各部分は、「０」のアドレスからのようにメモリのいずれかの側から、あるいはメモリの最下位または最上位から割り当てることができる。従って、上記の例は本明細書中に開示する実施形態の範囲を限定することは意図していない。
【００２７】
さらに、論理的メモリセクターをウェアレベリングのプールに割り当てることは、アドレスポインタを利用して、ウェアレベリングに含めるべき、あるいはウェアレベリングから除外するべきパーティション用のアドレス範囲を規定することによって実現することができる。例えば、アドレスポインタは、パーティションを規定するアドレス範囲の始点及び終点を識別することができ、さらに、こうしたパーティションに関連するウェアレベリング設定値を識別することができる。以下の表５中に例示するように、第１及び第２アドレスポインタを含む第１アドレスポインタ対は、パーティション０の始点及び終点を識別することができ、さらに、パーティション０をウェアレベリングのプールから除外するべきことを示すウェアレベリング設定値を識別することができる。さらに、第３及び第４アドレスポインタを含む第２アドレスポインタ対は、パーティション１の始点及び終点を識別することができ、さらに、パーティション１をウェアレベリングのプール内に含めるべきことを示すウェアレベリング設定値を識別することができる。さらに、第５及び第６アドレスポインタを含む第３ポインタ対は、パーティション２の始点及び終点を識別することができ、さらに、パーティション２をウェアレベリングのプールから除外するべきことを示すウェアレベリング設定値を識別することができる。一部の実施形態では、ウェアレベリングのプール内に含まれるパーティションのみにアドレスポインタ対を与えることができ、他のパーティションは「０」のデフォルト値に設定してウェアレベリングのプールから除外することができる。種々の実施形態では、その逆も成り立つことができ、ウェアレベリングのプールから除外するパーティションのみにアドレスポインタ対を与えることができる。
【００２８】
【表５】
2019533213.tif 000007
【００２９】
さらに、論理的メモリセクターをウェアレベリングのプールに割り当てることは、パーティション毎に単一のアドレスポインタを利用することによって実現することができる。一部の実施形態では、基準アドレスまたは他のポインタに対してパーティションを規定することができる。例えば、第１パーティション（パーティション０）は、ベースアドレスへの第１ポインタ（ポインタＡ）によって識別されるアドレス範囲によって規定することができ、このベースアドレスはメモリの始点アドレスとすることができる。第２パーティション（パーティション１）は、第１ポインタ（ポインタＡ）への、あるいは、より具体的には第１ポインタのインクリメント（増分値）（ポインタＡ＋１）への第２ポインタによって識別されるアドレス範囲によって規定することができる。さらに、第３パーティション（パーティション２）は、メモリアレイのアドレス空間の終点のような他の基準アドレスによって、第２ポインタ（ポインタＢ）へのポインタによって、あるいは、より具体的には第２ポインタのインクリメント（ポインタＢ＋１）へのポインタによって識別されるアドレス範囲によって規定することができる。以下の表６に示すように、このマッピングは、所定パーティションにおけるウェアレベリング設定値、及びアドレスポインタの有効性についてのトグルまたはフラグビットも記憶することができる。
【００３０】
【表６】
2019533213.tif 000008
【００３１】
上記の説明は、ウェアレベリングに含めること、及びウェアレベリングから除外することを説明したが、以下により詳細に説明するように、複数のセクターに適用されるウェアレベリングの種々の特徴量も指定することができる。例えば、ウェアレベリングのパラメータは、各論理セクター、及びこうした論理セクターに関連する各パーティションに適用するウェアレベリングの特徴量を指定または識別するウェアレベリングの特性または設定値を含むことができる。従って、ウェアレベリングに含めることを特徴付けるウェアレベリングの特徴量に加えて、この値はウェアレベリングの数量または度合いを特徴付けることもできる。例えば、ウェアレベリングの特性は、第１パーティションに適用するべきウェアレベリングの第１限度を示す第１ウェアレベリング設定値、第２パーティションに適用するべきウェアレベリングの第２限度を示す第２ウェアレベリング設定値、第３パーティションに適用するべきウェアレベリングの第３限度を示す第３ウェアレベリング設定値、及び第４パーティションに適用するべきウェアレベリングの第４限度を示す第４ウェアレベリング設定値を含むことができる。
【００３２】
種々の実施形態では、ウェアレベリングの特性を、ウェアレベリングのパラメータに含まれる１つ以上の追加的種類の情報またはパラメータに基づいて定めることができる。例えば、ウェアレベリングのパラメータは、メモリセクターに関連するＰＥサイクルの回数を指定することができる。種々の実施形態では、こうした回数はユーザ指定とすることができ、予期されるＰＥサイクルの回数を特徴付けることができる。一部の実施形態では、制御回路１２８のような構成要素を、メモリセクターに適用するウェアレベリングの特徴量を指定回数のＰＥサイクルに基づいて識別するように構成することができる。例えば、この回数がＰＥサイクル数の閾値を上回る場合には、メモリセクターをウェアレベリングのプール内に含めることができる。さらに、この回数がＰＥサイクル数の閾値を下回る場合には、メモリセクターをウェアレベリングのプールから除外することができる。
【００３３】
以上に説明したように、ウェアレベリングのパラメータはパーティションの論理的サイズを指定することができる。一部の実施形態では、制御回路１２８のような構成要素を、メモリセクターに適用するウェアレベリングの特徴量をパーティションのサイズに基づいて識別するように構成することができる。例えば、識別されたサイズが指定したサイズよりも大きい場合には、メモリセクターをウェアレベリングのプール内に含めることができる。さらに、この数値が指定したサイズよりも小さい場合には、メモリセクターをウェアレベリングのプールから除外することができる。この例では、指定したサイズはデフォルト値とすることができ、あるいはユーザ指定とすることができる。こうしたウェアレベリングの構成の追加的詳細は、以下に図３、図４、図５、及び図６を参照しながらより詳細に説明する。
【００３４】
図２に、いくつかの実施形態により構成した、均一なセクターサイズを含む設定可能なウェアレベリング付きメモリデバイスの例を示す。以上に説明したように、メモリデバイス２００のようなメモリデバイスは、ウェアレベリングにおいて使用する物理的メモリセクターの集合またはプール内に含めるための、メモリのいくつかの論理セクターをユーザが明示的に選択することを可能にするように構成することができ、さらに、他の論理的メモリセクターをこうしたウェアレベリングにおける使用からユーザが明示的に除外することを可能にするように構成されている。また、以上に説明したように、メモリアレイ１０２のようなメモリアレイは、種々の境界によって規定される種々のパーティションを含むことができ、制御回路１２８と通信結合することができる。例えば、メモリアレイ１０２は、第１境界１１０、第２境界１１２、第３境界１１４、及び第４境界１１６を含むことができ、これらの境界は第１パーティション１１８、第２パーティション１２０、第３パーティション１２２、第４パーティション１２４、及び第５パーティション１２６を規定することができる。以上に説明したように、こうした境界はウェアレベリングのパラメータに基づいて設定可能であり、これらのパラメータはユーザ指定とすることができる。従って、ユーザはサイズ及び境界をパーティションに関連して規定及び指定することができる。さらに、ウェアレベリングのパラメータは、パーティションを、ウェアレベリングを行う物理的セクターの集合またはプール内に含めること、あるいはウェアレベリングを行う物理的セクターの集合またはプールから除外することを示すこともでき、こうしたことは、制御回路１２８及びスーパーバーザーのメモリセクター１３０によって管理することができる。
【００３５】
図２に示すように、メモリアレイ１０２は均一なサイズのメモリセクターを含むことができる。例えば、メモリアレイ１０２内のすべての論理的メモリセクターは、同じサイズのものとすることができ、そして固定サイズのパーティション内に含めることができる。この例では、メモリアレイ１０２内の最初のメモリセクターとすることができる第１メモリセクター１０４を、メモリアレイ１０２内の最後のメモリセクターのような他のメモリセクターと同じサイズにすることができる。より具体的には、こうしたメモリセクターは２５６KBのサイズを有することができる。このようにして、本明細書中に開示する実施形態は、均一なセクターサイズを有するメモリデバイスを利用して実現することができる。
【００３６】
図３に、いくつかの実施形態により構成した、設定可能なウェアレベリング付きメモリデバイスの例を示し、ここではパラメータセクターはウェアレベリングから除外し、他のセクターは固定のパーティションサイズにグループ化している。図３は、メモリアレイ１０２の最上部及び最下部に小さいメモリセクターが存在するメモリアレイ１０２の構成の例も示し、メモリアレイ１０２の中間には大きいメモリセクターがある。以上に説明したように、メモリデバイス３００のようなメモリデバイスは、メモリアレイ１０２のようなメモリアレイを含むことができ、こうしたメモリアレイは、種々の境界によって規定される種々のパーティションを含むことができ、そして制御回路１２８に通信結合することができる。例えば、メモリアレイ１０２は、第１境界１１０、第２境界１１２、第３境界１１４、及び第４境界１１６を含むことができ、これらの境界は第１パーティション１１８、第２パーティション１２０、第３パーティション１２２、第４パーティション１２４、及び第５パーティション１２６を規定することができる。種々の実施形態では、第５パーティション１２６の終端をメモリアレイ１０２の終端によって規定することができ、メモリアレイ１０２の終端は第５境界を規定することができる。以上に説明したように、こうしたパーティションは、第１メモリセクター１０４及び第２メモリセクター１０６のようなメモリセクターを含むことができ、第１メモリセクター１０４はメモリアレイ１０２内の最初のメモリセクター１０４とすることができ、第２メモリセクターはメモリアレイ１０２内の最後のメモリセクターとすることができる。さらに、メモリアレイ１０２はスーパーバイザーのメモリセクター１３０を含むこともできる。
【００３７】
種々の実施形態では、メモリアレイ１０２を、固定サイズを有する複数のパーティションを有するように構成することができる。従って、これらのパーティションのサイズは、ハードウェアの製造業者が指定することができ、あるいは、メモリアレイ１０２のサイズのようなメモリデバイス１００のハードウェア上の特徴に基づいて決定することができる。さらに、一部の実施形態では、こうしたパーティションを均一なサイズにすることができる。以上に説明したように、パーティション内に含まれる論理的メモリセクターを含めること及び除外することは、スーパーバーザーのメモリセクター１３０に記憶されているウェアレベリングのパラメータに基づいて決定することができる。以下に図４及び図５を参照してより詳細に説明するように、こうしたウェアレベリングのパラメータはユーザ指定とすることができ、そしてユーザから通信インタフェース経由で受信することができる。
【００３８】
図４に、いくつかの実施形態により実現される、メモリデバイスのウェアレベリングのための方法の例のフローチャートを示す。以上に説明したのと同様に、メモリデバイスを利用して、ウェアレベリングにおいて使用する物理的メモリセクターの集合またはプール内に含めるための、メモリのいくつかの論理セクターをユーザが明示的に選択することを可能にし、さらに、他の論理的メモリセクターをこうしたウェアレベリングにおける使用からユーザが明示的に除外することを可能にすることができる。以下により詳細に説明するように、このように構成可能なことは、ウェアレベリングを実現する際のフレキシビリティの増加をユーザにもたらすことができる。
【００３９】
方法４００は動作４０２から開始することができ、この動作中には、メモリアレイに関連するパーティション識別子を指定値に設定することができる。図１、図２、及び図３を参照して以上に説明したように、メモリアレイの論理セクターはパーティションとして表現することができる。従って、方法４００中に、こうしたパーティションを設定し規定することができる。種々の実施形態では、方法４００は、初期パーティションを構成するステップから開始することができ、そして、パーティションを識別する指定値をデフォルト値に設定することによって開始することができ、このデフォルト値は０のようなパーティション番号とすることができる。
【００４０】
方法４００は動作４０４に進むことができ、動作４０４中には、パーティション境界識別子及びウェアレベリング識別子を生成することができる。種々の実施形態では、パーティション境界識別子は、設定されて規定されているパーティションの境界を識別する１つ以上のデータ値とすることができる。従って、パーティション境界識別子は、アドレスポインタを特徴付けるデータ値、あるいは図１を参照して以上に説明した他の何らかの適切な識別子を含むことができる。このようにして、動作４０４中には、メモリアレイの論理的メモリ空間内の特定のパーティション用の境界を規定することができる。以上に説明したように、こうした境界識別子はユーザ指定とすることができ、受信したユーザ入力に基づく。より具体的には、パーティション境界識別子及びウェアレベリング識別子は、受信したウェアレベリングのパラメータに基づいて生成することができる。
【００４１】
従って、制御回路のような構成要素は、ウェアレベリングのパラメータを含む受信した入力に基づいて境界識別子を生成することができる。さらに、ウェアレベリング識別子は受信した入力に基づいて生成することもできる。本明細書では、こうしたウェアレベリング識別子をウェアレベリング特性またはウェアレベリング設定値と称することもある。従って、動作４０４中には、パーティションをウェアレベリングのプール内に含めるべきであるか否かを識別するウェアレベリング識別子を生成することができる。一部の実施形態では、パーティションがウェアレベリングのプール内に含まれる場合に、ウェアレベリング識別子は、さらに、そのパーティションに適用されるウェアレベリングの特徴量または限度を識別することができる。
【００４２】
方法４００は動作４０６に進むことができ、動作４０６中には、追加的パーティションを生成するべきであるか否かを判定することができる。以上に説明したように、メモリアレイのメモリ空間は複数のパーティションに分割することができ、動作４０４の種々の反復を実現して、パーティション境界識別子及びウェアレベリング識別子をパーティション毎に生成することができる。追加的パーティションを生成するべきでないものと判定した場合には、方法４００を終了する。しかし、追加的パーティションを生成するべきであるものと判定した場合には、方法４００は動作４０８に進むことができる。種々の実施形態では、こうした判定はユーザ入力に基づいて行うことができる。例えば、ユーザは追加的パーティションを生成するべきであることを指定することができ、方法４００は動作４０８に進むことができる。一部の実施形態では、こうした判定は、動作４０４中に生成したパーティションの境界と、メモリアレイのメモリ空間内の特定アドレスとの比較に基づいて行うこともできる。例えば、動作４０４中に規定したパーティションの規定した境界がメモリアレイ内の最終アドレスではなく、一部のメモリ空間が未定義のままである場合に、方法４００は動作４０８に進むことができ、上記の規定した境界はアドレスポインタとすることができる。
【００４３】
従って、動作４０８中には、パーティション識別子をインクリメントする（増加させる）ことができる。このようにして、パーティション識別子を修正または調整して、新たな異なるパーティションを識別することができ、方法４００は動作４０４に戻ることができ、動作４０４中には、パーティション境界識別子及びウェアレベリング識別子を新たなパーティション用に生成することができる。例えば、前に規定したパーティション識別子が「０」であった場合、このパーティション識別子を「１」にインクリメントし、動作４０４の他の反復回中に、パーティション境界識別子及びウェアレベリング識別子をパーティション１用に生成することができる。このようにして、多数のパーティションを規定することができ、これらのパーティションに関連するウェアレベリング識別子を規定して、ウェアレベリングの特徴量または限度、あるいはウェアレベリングを全く行わないことを、規定したパーティション毎に指定することもできる。
【００４４】
図５に、いくつかの実施形態により実現される、メモリデバイスのウェアレベリングのための方法の他の例のフローチャートを示す。以上に説明したのと同様に、メモリデバイスを利用して、ウェアレベリングにおいて使用する物理的メモリセクターの集合またはプール内に含めるための、メモリのいくつかの論理的セクターをユーザが明示的に選択することを可能にし、さらに、他の論理的メモリセクターをこうしたウェアレベリングにおける使用からユーザが明示的に除外することを可能にすることができる。さらに、こうした選択は、その後のウェアレベリング動作の基になる論理セクター／物理セクターのマッピングの基礎を形成することができる。このようにして、どの論理セクターにどれだけのウェアレベリングを行うかを設定する能力をユーザに与えることができる。
【００４５】
方法５００は動作５０２から開始することができ、動作５０２中には複数のパーティション境界識別子及び複数のウェアレベリング識別子を生成することができる。図４を参照して以上に説明したように、パーティション境界識別子及びウェアレベリング識別子は、メモリアレイの論理メモリ空間の種々の異なるパーティションに対して生成することができる。また上述したように、複数個のパーティションがパーティション境界識別子によって規定されるので、こうした識別子は反復的に生成することができ、これらのパーティション境界識別子はアドレスポインタとすることができ、ウェアレベリングの特性は、ウェアレベリング識別子に基づいてパーティション毎に規定される。さらに、こうしたパーティション境界識別子及びウェアレベリング識別子は、ウェアレベリングのパラメータとして受信したユーザ入力に基づいて生成することができる。従って、これらの識別子はユーザ設定可能にすることができ、従って、パーティションのサイズ及び個数、並びにパーティション毎に許容されるウェアレベリングの特徴量のユーザ設定を可能にする。
【００４６】
一部の実施形態では、制御回路のような構成要素が、パーティション境界識別子及びウェアレベリング識別子を１つ以上のデータ構造の形で生成し、記憶し、維持することができる。例えば、制御回路は、論理セクターアドレス−パーティション及びそれに関連するパーティション識別子のマッピングを識別する第１データ構造を生成することができる。さらに、制御回路は、論理セクター及びパーティションを識別して、これらを、フラグまたはビットによって示すことができるように、ウェアレベリングのプール、並びにこれらに関連するウェアレベリングの特性または設定値にマッピングする第２データ構造を生成して記憶することができる。さらに、以下により詳細に説明するように、制御回路は、論理アドレス−物理アドレスのアドレスマッピングを記憶する第３データ構造を生成することもでき、こうしたアドレスマッピングは、少なくとも部分的に複数のパーティション境界識別子及び複数のウェアレベリング識別子に基づいて生成することができる。
【００４７】
方法５００は動作５０４に進むことができ、動作５０４中には消去コマンドを受信することができる。種々の実施形態では、消去コマンドが論理セクター内に含まれる論理アドレスに関連することができる。従って、こうした消去コマンドは、プロセッサまたはメモリのような構成要素から受信することができ、そしてメモリデバイスの動作中に受信することができる。従って、動作５０２はメモリデバイスの設定段階中に実現することができ、動作５０４はその後に、メモリデバイス自体の動作中に発生することができる。
【００４８】
方法５００は動作５０６に進むことができ、動作５０６中には、消去コマンドに関連する論理アドレスがウェアレベリングのプール内に含まれるか否かを判定することができる。消去コマンドに関連する論理アドレスがウェアレベリングのプール内に含まれないものと判定された場合には、方法５００は動作５１２に進むことができる。しかし、消去コマンドに関連する論理アドレスがウェアレベリングのプール内に含まれるものと判定された場合には、方法５００は動作５０８に進むことができる。種々の実施形態では、こうした判定は、論理アドレスと、動作５０２を参照して上記に説明したように生成したパーティション境界識別子及びウェアレベリング識別子との比較に基づいて行うことができる。従って、消去コマンドに関連する論理アドレスを、パーティション境界識別子によって指定されるアドレス範囲と比較することができ、そして上記論理アドレスを含むパーティションを識別することができる。さらに、識別したパーティションに基づいてウェアレベリング識別子を検索することができ、そしてウェアレベリングの特性または設定値を識別することができる。例えば、ウェアレベリング識別子は、消去コマンドに関連する論理アドレスを含む識別したパーティションがウェアレベリングのプール内に含まれ、ウェアレベリングを施すべきである可能性があることを示すことができる。
【００４９】
上記論理アドレスがウェアレベリングのプール内に含まれるものと判定された場合には、方法５００は動作５０８に進むことができ、動作５０８中には、上記論理アドレスに関連する物理セクターにウェアレベリングを施すべきであるか否かを判定することができる。上記論理アドレスに関連する物理セクターにウェアレベリングを施すべきでないものと判定された場合には、方法５００は動作５１２に進むことができる。しかし、上記論理アドレスに関連する物理セクターにウェアレベリングを施すべきであるものと判定された場合には、方法５００は動作５１０に進むことができる。
【００５０】
種々の実施形態では、こうした判定を、上記物理セクターに関連するＰＥサイクルの回数と指定された閾値との比較に基づいて行うことができる。種々の実施形態では、プロセッサまたは制御回路のような構成要素が、メモリデバイスの動作中に各物理セクターに適用されるＰＥサイクルの回数を記録しておくことができる。一部の実施形態では、動作５０４及び５０６中に識別された物理セクターに関連するＰＥサイクルのカウント数を検索することができ、そしてこのＰＥサイクルのカウント数を閾値と比較することができる。種々の実施形態では、閾値をユーザが指定した指定値とすることができる。前に説明したように、ユーザは、パーティション内に含まれるセクターにウェアレベリングを適用する時点を識別するための、当該パーティション用の閾値を指定することができる。さらに、これも以上に説明したように、異なる閾値を利用して、異なる特徴量のウェアレベリングを異なるパーティションに適用することを可能にすることができる。一部の実施形態では、閾値を、製造業者が設定したデフォルト値とすることができる。従って、ＰＥサイクルのカウント数が閾値を超えていないことが判定された場合には、ウェアレベリングを適用するべきでないものと判定することができ、方法５００は動作５１２に進むことができる。さらに、ＰＥサイクルのカウント数が閾値を超えたことを判定した場合には、ウェアレベリングを適用するべきであるものと判定することができ、方法５００は動作５１０に進むことができる。
【００５１】
従って、上記論理アドレスがウェアレベリングのプール内に含まれ、ウェアレベリングを適用するべきであるものと判定した場合には、方法５００は動作５１０に進むことができ、動作５１０中には１回以上のウェアレベリング動作を実現することができる。種々の実施形態では、こうしたウェアレベリング動作が、上記物理セクターを、ウェアレベリングのプール内の他の物理セクターのうち現在最小回数のＰＥサイクルを有する物理セクターと交換（スワップ）することを含む。こうした交換（スワッピング）は、以下により詳細に説明するように、物理セクター間のデータの交換を含むことができ、そしてこれらの物理セクターに関連する論理アドレスのマッピングを更新することも含むことができる。このようにして、メモリデバイスの動作中に、メモリデバイス内に含まれる物理セクターについて、ウェアレベリングを施されているものを全部含めて、ＰＥサイクル数を追跡することができ、ＰＥサイクル数の閾値を満足する際にデータを移動させることができる。前に説明したように、こうしたウェアレベリング動作中には、データの物理アドレスを、一般により少数回のＰＥサイクルが行われている記憶場所に変更して、論理アドレスは同じままである。
【００５２】
従って、動作５１０中には、論理アドレス−物理アドレスのアドレスマッピングを更新することができる。種々の実施形態では、制御回路が、論理セクター及び／またはパーティション−物理セクターのマッピングを含む第３データ構造を事前に生成しておくことができる。こうしたマッピングは動作５０２中に生成しておくことができ、識別したウェアレベリングの特性に基づいて生成しておくこともでき、この特性は論理セクターがウェアレベリングのプール内に含まれるか否かを指定する。例えば、論理アドレス及びそれに関連するパーティションが、当該パーティションにウェアレベリングを施すべきであることを示すウェアレベリングの識別子または特性を有する場合には、このパーティション、並びにこのパーティション内に含まれる論理セクターを、ウェアレベリングのプール内に含まれるものとして識別された物理セクターにマッピングする。こうしたマッピングは、論理セクターをランダムに物理セクターに割り当てることができ、あるいはこうした割り当ては順次に発生することができる。同様なマッピングは、ウェアレベリングを施されていないパーティション及び論理セクターについても実現することができる。このようにして、制御回路のような構成要素が、論理アドレス−物理アドレスのマッピングを記憶して維持することができ、こうしたマッピングはユーザが初期に指定したウェアレベリングの特性に従う。
【００５３】
従って、上述したように、こうしたマッピングは１回以上のウェアレベリング動作に基づいて更新することができる。より具体的には、動作５０２中に生成した論理セクター−物理セクターのマッピングは、メモリが使用中である際にウェアレベリング・プロセスの一部としてデータを移動する毎に更新することができる。このようにして、メモリデバイスは、特定の論理アドレスに関連するデータの物理的記憶場所を正確に追跡することができる。
【００５４】
方法５００は動作５１２に進むことができ、動作５１２中には消去動作を実現することができる。従って、プロセッサのような構成要素は、
動作５０４中に識別された論理セクター並びにそれに関連する物理セクターに対する消去動作を実現することができる。ウェアレベリング後に動作５１２を実現する例では、対応する物理セクターをウェアレベリング中に選択した新たな物理セクターとすることができる。さらに、この物理セクターに関連するカウンタを更新して、この物理セクターに適用されたＰＥサイクルの回数を正確に識別することができる。
【００５５】
方法５００は動作５１４に進むことができ、動作５１４中には、メモリデバイスが追加的な消去コマンドを待機するべきであるか否かを判定することができる。一部の実施形態では、こうした追加的な消去コマンドがメモリデバイスの動作中に発生することがある。従って、メモリデバイスが追加的な消去コマンドを待機するべきであるものと判定された場合には、方法５００は動作５０４に戻ることができ、このことはメモリデバイスの使用を継続する場合であり得る。メモリデバイスが追加的な消去コマンドを待機するべきでないものと判定された場合には、方法５００を終了することができ、このことは例えばメモリデバイスの使用を中止する場合であり得る。
【００５６】
図６に、いくつかの実施形態により構成した、設定可能なウェアレベリング付きメモリデバイスの例を示す。特定の実施形態によれば、システム６００は、メモリデバイス１００のような上述した種々の構成要素を実現するのに適し得る。種々の実施形態では、システム６００はプロセッサ６０１を含むことができ、プロセッサ６０１は１つ以上の処理動作を実現するように構成することができる。例えば、プロセッサ６０１は、メモリアレイ１０２に関連するウェアレベリング動作を実現するように構成することができ、さらに、メモリアレイ１０２に関連する読出し及び書込み動作を実現するように構成することができる。システム６００はバス６１５を含むこともでき、バス６１５はシステム６００の種々の構成要素間の通信を可能にするように構成することができる。
【００５７】
種々の実施形態では、システム６００はメモリアレイ１０２及び制御回路１２８をさらに含むことができ、これらは以上に説明した設定可能なウェアレベリングを実現するように構成することができる。種々の実施形態では、制御回路１２８は１つ以上のプロセッサ及び専用メモリを含むことができ、これらは前述したデータ構造及びマッピングの生成を実現するように構成することができる。このようにして、システム６００は、制御回路１２８のような専用の処理装置を有することができ、この処理装置は前述した設定可能なウェアレベリングを実現するように構成することができる。さらに、一部の実施形態では、制御回路１２８を特定用途向け集積回路（ＡＳＩＣ：application specific integrated circuit）の形で実現することができ、あるいはフィールド・プログラマブル・ゲートアレイの再プログラム可能な論理回路の形で実現することができる。一部の実施形態では、制御回路１２８を、カリフォルニア州にあるCypress Semiconductor of San Jose社から市販されているプログラマブル・システム・オン・チップまたはＰＳｏＣ（Programmable System On Chip：登録商標）コントローラのような、不揮発性メモリをさらに含むプログラマブル（プログラム可能）なシステムまたはコントローラの形で実現することができる。種々の実施形態では、システム６００の１つ以上の構成要素を同一パッケージ内の同一の回路ダイ上に実現することができる。例えば、制御回路１２８及びメモリ１０２を同じ回路ダイ上に実現することができる。一部の実施形態では、これらを異なるパッケージ内の異なるダイ上に実現することができる。
【００５８】
種々の実施形態では、通信インタフェース６１１を、他のシステム構成要素との間でデータを送受信するように構成することができ、あるいはパケットまたはデータセグメントをネットワーク上で送受信するように構成することができる。例えば、通信インタフェース６１１は、バス６１５のようなバスを介して、あるいは通信ネットワーク経由でユーザインタフェース装置と通信結合することができる。以上に説明したように、通信インタフェース６１１はこうしたユーザインタフェース装置からデータを受信するように構成することができ、こうしたユーザインタフェース装置はデータ処理システムまたはコンピュータシステム内に含めることができる。種々の実施形態では、こうしたデータがユーザからのウェアレベリングのパラメータを識別する入力を含むことができる。種々の実施形態では、通信インタフェース６１１を、イーサネット（登録商標）インタフェース、フレームリレー・インタフェース、ケーブル・インタフェース、及びＤＳＬ（digital subscriber line：デジタル加入者線）インタフェースをサポートする装置とすることができる。それに加えて、高速イーサネット（登録商標）インタフェース、ギガビット・イーサネット（登録商標）インタフェース、ＨＳＳＩ（high-speed serial interface：高速シリアルインタフェース）インタフェース、ＰＯＳ（point-of-sales：販売時点管理）インタフェース、ＦＤＤＩ（fiber distributed data interface：光ファイバ分散データインタフェース）インタフェース、等のような種々の非常に高速なインタフェースを用意することができる。一般に、これらのインタフェースは、適切な媒体との通信に適したポートを含むことができる。一部の場合には、これらは独立したプロセッサを含むこともでき、そして一部の例では揮発性のＲＡＭ（random access memory：ランダムアクセスメモリ）を含むこともできる。
【００５９】
以上の概念は明確な理解の目的で幾分詳細に説明してきたが、添付した特許請求の範囲内で特定の変更及び修正を実施することができることは明らかである。なお、上記のプロセス、システム、及びデバイスを実現する多数の代わりの方法が存在する。従って、上記の実施形態は限定的ではなく例示的なものとして考えるべきである。
【図１】
2019533213.tif 000009
【図２】
2019533213.tif 000010
【図３】
2019533213.tif 000011
【図４】
2019533213.tif 000012
【図５】
2019533213.tif 000013
【図６】
2019533213.tif 000014
【国際調査報告】
2019533213.tif 000015
2019533213.tif 000016