(57)【要約】  メモリ・システムにおいて読み取り処理を改善するために、トラッキング・セルが使用される。トラッキング・セルは、データの品質を指摘することもできるし、エラーがある場合にデータ復元動作の一部として使用することもできる。トラッキング・セルは、メモリ・システムの現在の状態を反映するために、読み取りパラメータを最適なレベルに調整する手段を提供する。加えて、複数状態のメモリ・セルを使用する幾つかのメモリ・システムは、消耗を最小限に抑えるために、ローテーション・データ・スキームを適用する。ローテーション・スキームは複数のトラッキング・セルの状態に基づいて、トラッキング・セルにおいて符号化することができ、それは読み取りの際に復号化される。【選択図】  図１４
2007500918.tif 000002
【特許請求の範囲】
【請求項１】
メモリ・システムに保存されているデータを読み取る方法であって、前記メモリ・システムは、複数状態の記憶素子のセットを含み、前記複数状態の記憶素子は、データ記憶素子とトラッキング記憶素子を含み、前記データ記憶素子は、巡回可能に符号化されたデータを複数の状態のセットに保存することが可能であり、その方法は：
前記トラッキング記憶素子を読み取る工程であって、前記トラッキング記憶素子の少なくともサブセットをトラッキング状態に分類する工程を含み、前記トラッキング状態は前記複数の状態のサブセットと対応し、前記サブセットの状態群は他の状態群によって分離されている、前記トラッキング記憶素子を読み取る工程と；
前記分類に基いてローテーション・スキームを特定する工程と；
前記ローテーション・スキームを用いて、前記データ記憶素子の少なくともサブセットを読み取る工程を備える方法。
【請求項２】
前記ローテーション・スキームを特定する前記工程は、前記ローテーション・スキームの識別を生成するために、２以上の非冗長なトラッキング記憶素子についての分類を組み合わせる工程を含む、請求項１の方法。
【請求項３】
前記トラッキング記憶素子を読み取る前記工程は、第１トラッキング記憶素子を第１トラッキング状態に分類する工程と、第２トラッキング記憶素子を第２トラッキング状態に分類する工程を含み、
前記ローテーション・スキームを特定する前記工程は、前記第１トラッキング状態にある前記第１トラッキング記憶素子と前記第２トラッキング状態にある前記第２トラッキング記憶素子の組み合わせに基いて、第１識別子を生成する工程を含み、
前記第１識別子は、前記ローテーション・スキームを識別するために他の非冗長な識別子と組み合わせられる、請求項１の方法。
【請求項４】
前記トラッキング記憶素子を読み取る前記工程はさらに、第３トラッキング記憶素子を前記第１トラッキング状態に分類する工程と、第４トラッキング記憶素子を前記第２トラッキング状態に分類する工程と、第５トラッキング記憶素子を前記第１トラッキング状態に分類する工程と、第６トラッキング記憶素子を前記第２トラッキング状態に分類する工程を含み、
前記ローテーション・スキームを特定する工程はさらに、
前記第１トラッキング状態にある前記第３トラッキング記憶素子と、前記第２トラッキング状態にある前記第４トラッキング記憶素子の組み合わせに基いて、第２識別子を生成する工程と、
前記第１トラッキング状態にある前記第５トラッキング記憶素子と、前記第２トラッキング状態にある前記第６トラッキング記憶素子の組み合わせに基いて、第３識別子を生成する工程を含み、
前記第一識別子、前記第二識別子、および前記第三識別子は、前記ローテーション・スキームを識別するために、組み合わせとしてひとまとめにされる、請求項３の方法。
【請求項５】
前記第１識別子は第１ビットであり、
前記第２識別子は第２ビットであり、
前記第３識別子は第３ビットであり、
前記第１ビット、第２ビット、および第３ビットは、前記ローテーション・スキームに対する巡回符号を構成する、請求項４の方法。
【請求項６】
前記複数の状態は８つの状態を含み、
前記サブセットは第１状態と第２状態を含み、前記第２状態は前記第１状態から、少なくとも４つの他の状態を挟んで分離されている、請求項１の方法。
【請求項７】
前記複数の状態は、状態０、状態１、状態２、状態３、状態４、状態５、状態６、および状態７の８つの状態を含み、
前記サブセットは状態１と状態６を含み、
分類する前記工程は、
分類する前記工程は、特定のトラッキング記憶素子が状態１もしくは状態６にあると見なされるか否かを特定する工程を含む、請求項１の方法。
【請求項８】
前記複数の状態は、状態０、状態１、状態２、状態３、状態４、状態５、状態６、および状態７の８つの状態を含み、
前記サブセットは状態１と状態６を含み、
分類する前記工程は、特定のトラッキング記憶素子が物理的に状態１もしくは状態６になくても、その特定のトラッキング記憶素子が状態１もしくは状態６にあると見なされるか否かを特定する工程を含む、請求項１の方法。
【請求項９】
前記ローテーション・スキームを特定する前記工程は：
トラッキング記憶素子のペアからのデータにアクセスする工程と；
特定のペアが、第１トラッキング状態にある第１トラッキング記憶素子と、第２トラッキング状態にある第２トラッキング記憶素子を備えるか否かを特定する工程と；
前記特定のペアが第１トラッキング状態にある第１トラッキング記憶素子と第２トラッキング状態にある第２トラッキング記憶素子を備えている場合に、前記第１トラッキング記憶素子と前記第２トラッキング記憶素子に基いて、前記ローテーション・スキームを識別する符号の第１ビットを特定する工程と；
前記特定のペアが第１トラッキング状態にある第１トラッキング記憶素子と第２トラッキング状態にある第２トラッキング記憶素子を備えている場合に、前記特定のペアに前記第１の状態と前記第２の状態を割り当てるための最良な対応付けを特定する工程を含み、前記符号は前記第１ビットと少なくとも１つの他の非冗長なビットを備えている、請求項１の方法。
【請求項１０】
前記トラッキング記憶素子を読み取る前記工程は、トラッキング記憶素子の複数のセットを読み取る工程を含み；
前記ローテーション・スキームを特定する前記工程は、トラッキング記憶素子の１つのセットに基いて、前記ローテーション・スキームを識別することを試みる工程と、トラッキング記憶素子の他のセットに基いて、冗長的に前記ローテーション・スキームを識別することを試みる工程を含む、請求項１の方法。
【請求項１１】
トラッキング記憶素子の異なるセット群が、それぞれ異なるローテーション・スキーム群を識別する場合に、前記ローテーション・スキームが、トラッキング記憶素子の異なるセット群の中での多数決投票の方法によって選択される、請求項１０の方法。
【請求項１２】
前記データ記憶素子の少なくともサブセットを読み取る前記工程は、前記ローテーション・スキームに基いて、前記データ記憶素子の前記サブセットから読み取られたデータを復号化する工程を含む、請求項１の方法。
【請求項１３】
前記トラッキング記憶素子のデータが巡回されていない、請求項１の方法。
【請求項１４】
前記複数状態の記憶素子は、フラッシュ・メモリ記憶素子である、請求項１の方法。
【請求項１５】
前記複数状態の記憶素子は、不揮発性メモリ記憶素子である、請求項１の方法。
【請求項１６】
前記複数状態の記憶素子は、フローティング・ゲートを含む、請求項１の方法。
【請求項１７】
前記複数状態の記憶素子は、複数層の誘電体を含み、その複数層の誘電体が帯電した誘電体を含む、請求項１の方法。
【請求項１８】
前記複数状態の記憶素子は、ソリッド・ステート記憶素子である、請求項１の方法。
【請求項１９】
前記ローテーション・スキームを特定する前記工程は、制御装置によって実行される、請求項１の方法。
【請求項２０】
前記制御装置は、ホスト・システムから取り外し可能である、請求項１９の方法。
【請求項２１】
前記制御装置と前記複数状態の記憶素子は、ホスト・システムから取り外し可能である、請求項１９の方法。
【請求項２２】
前記複数の状態のサブセットの各状態に対する複数の読み取り動作を実行する工程と、
複数の読み取り動作を実行する前記工程に基いて、前記複数の状態のそれぞれを区別するための比較値の現在のセットを特定する工程と、
比較値の前記現在のセットを用いて、前記データ記憶素子の１以上の前記サブセットを読み取る工程をさらに備える、請求項１の方法。
【請求項２３】
複数の読み取り動作を実行する前記工程は、
前記サブセットの第１状態についての第１の複数の読み取り動作を実行する工程と、
前記サブセットの第２状態についての第２の複数の読み取り動作を実行する工程と、
前記第１の複数の読み取り動作に基いて、前記第１状態に対する第１数値を特定する工程と、
前記第２の複数の読み取り動作に基いて、前記第２状態に対する第２数値を特定する工程を含み、
比較値の前記現在のセットを特定する前記工程は、前記第１数値と前記第２数値に基いて、比較値の前記現在のセットを特定する工程を含む、請求項２２の方法。
【請求項２４】
比較値の現在のセットを特定する前記工程は：
第１状態に対する代表的なしきい電圧値を特定する工程と；
第２状態に対する代表的なしきい電圧値を特定する工程と；
前記第１状態に対する代表的なしきい電圧値と、前記第２状態に対する代表的なしきい電圧値に基いて、前記第１状態と前記第２状態の間の全ての状態についてのデータを用いることなく、現在の比較値を変更する工程を含む、請求項２２の方法。
【請求項２５】
複数の読み取り動作を実行する前記工程は：
第１状態に関連する複数のしきい電圧レベルについて、前記トラッキング記憶素子の第１セットに読み取り動作を実行する工程と；
前記トラッキング記憶素子の前記第１セットに読み取り動作を実行する工程に基いて、前記トラッキング記憶素子の前記第１セットに対するしきい電圧レベルを特定する工程と；
第２状態に関連する複数のしきい電圧レベルについて、前記トラッキング記憶素子の第２セットに読み取り動作を実行する工程と；
前記トラッキング記憶素子の前記第２セットに読み取り動作を実行する工程に基いて、前記トラッキング記憶素子の前記第２セットに対するしきい電圧レベルを特定する工程を含む、請求項２４の方法。
【請求項２６】
前記複数の状態は、順に増加していくしきい電圧の範囲を保持する８つの状態を含み；
前記８つの状態は、状態０、状態１、状態２、状態３、状態４、状態５、状態６、および状態７を含み；
前記サブセットは状態１と状態６とを含み；
複数の読み取り動作を実行する前記工程は、状態１と状態６についての複数の読み取り動作を実行する工程を含み、それぞれの読み取り動作は異なるしきい電圧レベルについてテストを行い；
比較値の現在のセットを特定する前記工程は、複数の読み取り動作を実行する前記工程に基いて、状態１に対する第１の代表的なしきい値と、状態６に対する第２の代表的なしきい値を特定する工程を含み；
比較値の現在のセットを特定する前記工程はさらに、前記第１の代表的なしきい値と前記第２の代表的なしきい値とを用いた内挿法および外挿法に基いて、比較値の現在のセットを変更する工程を含む、請求項２２の方法。
【請求項２７】
トラッキング記憶素子のセットについて読み取り動作の初期セットを実行する工程と；
読み取り動作の前記初期セットからのエラー情報を記録する工程と；
前記エラー情報に基いて品質ゲージを特定する工程と；
前記品質ゲージが所定の基準を満たしているか否かを特定する工程をさらに備え、複数の読み取り動作を実行する前記工程と比較値の現在のセットを特定する前記工程は、前記品質ゲージが前記所定の基準を満たしていると特定されたときに実行される、請求項２２の方法。
【請求項２８】
ソリッド・ステート・メモリ・システムに保存されているデータを読み取る方法であり、前記メモリ・システムは、複数状態の記憶素子のセットを含み、前記複数状態の記憶素子は、データ記憶素子とトラッキング記憶素子を含み、前記データ記憶素子は巡回可能に符号化されたデータを複数の状態のセットに保存することが可能であり、その方法は：
前記トラッキング記憶素子から巡回されていないデータを読み取る工程であって、
前記トラッキング記憶素子の少なくともサブセットをトラッキング状態に分類する工程を含み、前記トラッキング状態は、他の状態を挟んで分離している、工程と；
前記分類に基いて前記データ記憶素子に対するローテーション・スキームを特定する工程と；
前記ローテーション・スキームを用いて、前記データ記憶素子の少なくともサブセットを読み取る工程を含む方法。
【請求項２９】
前記トラッキング記憶素子は、フラッシュ・メモリ記憶素子である、請求項２８の方法。
【請求項３０】
前記ローテーション・スキームを特定する前記工程は、前記ローテーション・スキームの識別を生成するために、２以上の非冗長なトラッキング記憶素子についての分類を組み合わせる工程を含む、請求項２９の方法。
【請求項３１】
巡回されていないデータを読み取る前記工程は、第１トラッキング記憶素子を第１トラッキング状態に分類する工程と、第２トラッキング記憶素子を第２トラッキング状態に分類する工程を含み；
前記ローテーション・スキームを特定する前記工程は、前記第１トラッキング状態にある前記第１トラッキング記憶素子と前記第２トラッキング状態にある前記第２トラッキング記憶素子の組み合わせに基いて、第１識別子を生成する工程を含み、
前記第１識別子は、前記ローテーション・スキームを識別するために他の非冗長な識別子と組み合わせられる、請求項２９の方法。
【請求項３２】
前記ローテーション・スキームを特定する前記工程は：
トラッキング記憶素子のペアからのデータにアクセスする工程と；
特定のペアが、第１トラッキング状態にある第１トラッキング記憶素子と、第２トラッキング状態にある第２トラッキング記憶素子を備えるか否かを特定する工程と；
前記特定のペアが第１トラッキング状態にある第１トラッキング記憶素子と第２トラッキング状態にある第２トラッキング記憶素子を備えている場合に、前記第１トラッキング記憶素子と前記第２トラッキング記憶素子に基いて、前記ローテーション・スキームを識別する符号の第１ビットを特定する工程と；
前記特定のペアが第１トラッキング状態にある第１トラッキング記憶素子と第２トラッキング状態にある第２トラッキング記憶素子を備えている場合に、前記特定のペアに前記第１の状態と前記第２の状態を割り当てるための最良な対応付けを特定する工程を含み、前記符号は前記第１ビットと少なくとも１つの他の非冗長なビットを備えている、請求項２９の方法。
【請求項３３】
前記複数の状態のサブセットの各状態に対する複数の読み取り動作を前記トラッキング記憶素子に実行する工程と、
複数の読み取り動作を実行する前記工程に基いて、前記複数の状態のそれぞれを区別するため、比較値の現在のセットを特定する工程と、
比較値の前記現在のセットを用いて、前記データ記憶素子の１以上の前記サブセットを読み取る工程をさらに備える、請求項２８の方法。
【請求項３４】
トラッキング記憶素子のセットについて読み取り動作の初期セットを実行する工程と；
読み取り動作の前記初期セットからのエラー情報を記録する工程と；
前記エラー情報に基いて品質ゲージを特定する工程と；
前記品質ゲージが所定の基準を満たしているか否かを特定する工程をさらに備え、複数の読み取り動作を実行する前記工程と比較値の現在のセットを特定する前記工程は、前記品質ゲージが前記所定の基準を満たしていると特定されたときに実行される、請求項２８の方法。
【請求項３５】
メモリ・システムに保存されているデータを読み取る方法であり、前記メモリ・システムは、複数状態の記憶素子のセットを含み、前記複数状態の記憶素子は、データ記憶素子とトラッキング記憶素子を含み、前記データ記憶素子は、巡回可能に符号化されたデータを複数の状態のセットに保存することが可能であり、その方法は：
前記トラッキング記憶素子を読み取る工程であって、前記トラッキング記憶素子の少なくともサブセットをトラッキング状態に分類する工程を含み、前記トラッキング状態は前記複数の状態のサブセットと対応する、工程と；
前記分類に基いてローテーション・スキームのセットから第１ローテーション・スキームを特定する工程であって、前記ローテーション・スキームのセットはトラッキング・状態より多くのローテーション・スキームを備える、工程と；
前記ローテーション・スキームを用いて、前記データ記憶素子の少なくともサブセットを読み取る工程と；
エラーを特定する工程と；
前記トラッキング記憶素子を再び読み取って、比較点の新たなセットを特定する工程と；
比較点の前記新たなセットを用いて、前記データ記憶素子の１以上の前記サブセットを読み取る工程を備える方法。
【請求項３６】
複数状態の記憶素子のセットであって、データ記憶素子とトラッキング記憶素子を含み、前記データ記憶素子は、巡回可能に符号化されたデータを複数の状態のセットに保存することが可能な、複数状態の記憶素子のセットと；
前記トラッキング記憶素子を読み取る手段と；
前記分類に基いてローテーション・スキームを特定する手段と、
前記ローテーション・スキームを用いて前記データ記憶素子の少なくともサブセットを読み取る手段を備えるメモリ・システム。
【請求項３７】
前記ローテーション・スキームを特定する前記手段は、前記ローテーション・スキームの識別を生成するために、２以上の非冗長なトラッキング記憶素子についての分類を組み合わせる手段を含む、請求項３６のメモリ・システム。
【請求項３８】
読み取りの比較点の新たなセットを特定する手段と、
比較点の前記新たなセットを用いて、前記データ記憶素子の１以上の前記サブセットを読み取る手段をさらに備える、請求項３６のメモリ・システム。
【請求項３９】
前記データ記憶素子の前記データが所定のエラー基準を満たすか否かを特定し、前記品質ゲージが前記所定のエラー基準を満たす場合に比較点の新たなセットを特定し、比較点の前記新たなセットを用いて前記データ記憶素子の１以上の前記サブセットを再度読み取る手段をさらに備える、請求項３６のメモリ・システム。
【請求項４０】
複数状態の記憶素子のセットと；
複数状態の記憶素子の前記セットと通信可能な検出回路と；
前記検出回路と通信可能な制御回路を備えるメモリ・システムであって、
複数状態の記憶素子の前記セットは、データ記憶素子とトラッキング記憶素子を含み、
前記データ記憶素子は、巡回可能に符号化されたデータを複数の状態のセットに保存することが可能であり、
前記検出回路は、前記データ記憶素子と前記トラッキング記憶素子を読み取ることが可能であり、
前記制御回路は、前記検出回路によって読み取られた前記トラッキング記憶素子の少なくともサブセットをトラッキング状態に分類し、
前記トラッキング状態は前記複数の状態のサブセットに対応しており、
前記サブセットの状態は他の状態を挟んで分離しており、
前記制御装置は、前記特定されたローテーション・スキームを用いた前記データ記憶素子の少なくともサブセットの読み取り動作の後に、前記分類に基いてローテーション・スキームを特定する、メモリ・システム。
【請求項４１】
前記制御装置は、前記ローテーション・スキームの識別を生成するため、２以上の非冗長なトラッキング記憶素子の分類を組み合わせることによって、前記ローテーション・スキームを特定する、請求項４０のメモリ・システム。
【請求項４２】
第１トラッキング記憶素子は、第１トラッキング状態に特徴付けられ、第２トラッキング記憶素子は、第２トラッキング状態に特徴づけられ；
前記制御装置は、前記第１トラッキング状態にある前記第１トラッキング記憶素子と、前記第２トラッキング状態にある前記第２トラッキング記憶素子との組み合わせに基いて、第１識別子を生成することによって前記ローテーション・スキームを特定し、前記第１識別子は、前記ローテーション・スキームを識別するために、他の非冗長な識別子と組み合わせられる、請求項４０のメモリ・システム。
【請求項４３】
前記複数の状態は、状態０、状態１、状態２、状態３、状態４、状態５、状態６、および状態７の、８つの状態を含み、
前記サブセットは状態１と状態６を含み、
前記分類は、特定の記憶素子が物理的に状態１もしくは状態６になくても、その特定の記憶素子が状態１もしくは状態６にあると見なされるか否かを特定することとを含む、請求項４０のメモリ・システム。
【請求項４４】
前記制御回路は：
トラッキング記憶素子のペアからのデータにアクセスすることと；
特定のペアが第１トラッキング状態にある第１トラッキング記憶素子と第２トラッキング状態にある第２トラッキング記憶素子を備えているか否かを特定することと；
前記特定のペアが第１トラッキング状態にある第１トラッキング記憶素子と第２トラッキング状態にある第２トラッキング記憶素子を備えている場合に、前記第１トラッキング記憶素子と前記第２トラッキング記憶素子に基いて、前記ローテーション・スキームを識別する符号の第１ビットを特定することと；
前記特定のペアが第１トラッキング状態にある第１トラッキング記憶素子と第２トラッキング状態にある第２トラッキング記憶素子を備えていない場合に、前記特定のペアに前記第１の状態と前記第２の状態を割り当てるための最良な対応付けを特定することによって、前記ローテーション・スキームを特定し、
前記符号は、前記第１ビットと少なくとも１つの他の非冗長なビットを備えている、請求項４０のメモリ・システム。
【請求項４５】
前記トラッキング記憶素子のデータが巡回されていない、請求項４０のメモリ・システム。
【請求項４６】
前記トラッキング記憶素子は、フラッシュ・メモリ記憶素子である、請求項４０のメモリ・システム。
【請求項４７】
前記制御回路は、前記複数の状態のサブセットの各状態に対する複数の読み取り動作の実行を起動し、複数の読み取り動作の実行に基いて、前記複数の状態のそれぞれを区別するための比較値の現在のセットを特定し、比較値の前記現在のセットを用いて、前記データ記憶素子の１以上の前記サブセットの読み取り動作を起動する、請求項４０のメモリ・システム。
【請求項４８】
比較値の前記現在のセットは、第１状態に対する代表的なしきい電圧値を特定することと、第２状態に対する代表的なしきい電圧値を特定することと、前記第１状態に対する代表的なしきい電圧値と、前記第２状態に対する代表的なしきい電圧値に基いて、前記第１状態と前記第２状態の間の全ての状態についてのデータを用いることなく、現在の比較値を変更することによって、特定される、請求項４７のメモリ・システム。
【請求項４９】
前記制御回路は、トラッキング記憶素子のセットについて読み取り動作の初期セットを実行することと、読み取り動作の前記初期セットからのエラー情報を記録することと、前記エラー情報に基いて品質ゲージを特定することと、前記品質ゲージが所定の基準を満たしているか否かを特定することを実行させ、
前記複数の読み取り動作を実行することと、前記比較値の現在のセットを特定することは、前記品質ゲージが前記所定の基準を満たしていると特定されたときに実行される、請求項４０のメモリ・システム。
【請求項５０】
フラッシュ・メモリ・システムのトラッキング記憶素子のセットを読み取る工程であって、前記フラッシュ・メモリ・システムは、複数状態の記憶素子のセットを含み、前記複数状態の記憶素子は、データ記憶素子とトラッキング記憶素子とを含み、前記データ記憶素子は巡回可能に符号化されたデータを複数の状態のセットに保存することが可能であり、前記トラッキング記憶素子は巡回されていないデータの保存を目的としており、前記トラッキング記憶素子の少なくともサブセットをトラッキング状態に分類する工程を含む、工程と；
前記分類に基いてローテーション・スキームを特定する工程と；
前記データ記憶素子の少なくともサブセットから読み取られたデータを復号化するために、前記ローテーション・スキームを用いて前記データ記憶素子の少なくともサブセットを読み取る工程を備える方法。
【請求項５１】
前記ローテーション・スキームを特定する前記工程は、前記ローテーション・スキームの識別を生成するために、２以上の非冗長なトラッキング記憶素子の分類を組み合わせる工程を含む、請求項５０の方法。
【請求項５２】
前記データ記憶素子の少なくともサブセットを読み取る工程は、第１トラッキング記憶素子を第１トラッキング状態に分類する工程と、第２トラッキング記憶素子を第２トラッキング状態に分類する工程を含み；
前記ローテーション・スキームを特定する前記工程は、
前記第１トラッキング状態にある前記第１トラッキング記憶素子と前記第２トラッキング状態にある前記第２トラッキング記憶素子との組み合わせに基いて、第１識別子を生成する工程を含み、
前記第１識別子は、前記ローテーション・スキームを識別するために他の非冗長な識別子と組み合わせられる、請求項５０の方法。
【請求項５３】
メモリ・システムに実行される方法であり、前記メモリ・システムは記憶素子のセットを含み、前記記憶素子はデータ記憶素子とトラッキング記憶素子を含み、その方法は：
前記トラッキング記憶素子に読み取り動作を実行する工程と；
前記読み取り動作からのエラー情報を記録する工程と；
前記エラー情報に基いて、品質ゲージを特定する工程と；
前記品質ゲージが所定の基準を満たす場合に、前記品質ゲージに応答する工程を備える方法。
【請求項５４】
読み取り動作を実行する前記工程に基いて、前記データ記憶素子の少なくともサブセットについてローテーション・スキームを特定する工程と；
前記ローテーション・スキームを用いて前記データ記憶素子の前記サブセットを読み取る工程をさらに備える、請求項５３の方法。
【請求項５５】
前記品質ゲージが所定の基準を満たさない場合に、ローテーション・スキームを用いて前記データ記憶素子の前記サブセットを読み取る工程をさらに備え、前記ローテーション・スキームは読み取り動作を実行する前記工程に基いて特定される、請求項５３の方法。
【請求項５６】
読み取り動作を実行する前記工程は、前記トラッキング記憶素子が予め定められたトラッキング状態のセットであるか否かを特定する工程を含み；
エラー情報を記録する前記工程は、前記トラッキング状態のセットでない任意の前記トラッキング記憶素子に関するエラー情報を記録する工程を含む、請求項５３の方法。
【請求項５７】
品質ゲージを特定する前記工程は、前記トラッキング状態にないトラッキング記憶素子の数を特定する工程を含む、請求項５６の方法。
【請求項５８】
品質ゲージを特定する前記工程は、前記トラッキング記憶素子の読み取り状態と、トラッキング状態の前記セットの読み取り状態の間の差を特定する工程を含む、請求項５６の方法。
【請求項５９】
品質ゲージを特定する前記工程は、エラーの順次的な対策を更新する工程を含む、請求項５６の方法。
【請求項６０】
前記トラッキング記憶素子は、ペアにグループ分けされ、
読み取り動作を行う前記工程は、トラッキング記憶素子の各ペアに対して、トラッキング記憶素子の前記ペアの一方が第１状態であってトラッキング記憶素子の前記ペアの他方が第２状態であるか否か、前記トラッキング記憶素子の現在の状態を特定する工程を含み、前記第１状態は前記第２状態に隣接する状態ではなく、
エラー情報を記録する前記工程は、トラッキング記憶素子の前記ペアの前記一方が前記第１状態にない場合にトラッキング記憶素子の前記ペアの前記一方に対するエラー情報を記録する工程と、トラッキング記憶素子の前記ペアの前記他方が前記第２状態にない場合にトラッキング記憶素子の前記ペアの前記他方に対するエラー情報を記録する工程を含む、請求項５３の方法。
【請求項６１】
前記品質ゲージに応答する前記工程は、読み取り処理を強制終了する工程を含み、前記トラッキング記憶素子に対して読み取り動作を実行する前記工程は、前記読み取り処理の一部である、請求項５３の方法。
【請求項６２】
前記品質ゲージに応答する前記工程は、エラー訂正符号処理のパラメータを変更する工程を含む、請求項５３の方法。
【請求項６３】
前記品質ゲージに応答する前記工程は：
予め定められたトラッキング状態のセットの各状態について、前記トラッキング記憶素子の複数の読み取り動作を実行する工程と；
前記データ記憶素子の状態を区別するための比較値の現在のセットを特定する工程を含む、請求項５３の方法。
【請求項６４】
前記データ記憶素子のサブセットからのデータを読み取るために、比較値の前記現在のセットを用いる工程と；
前記データにエラー訂正符号解析を実行する工程と；
前記エラー訂正符号解析が成功した場合に前記データを報告する工程をさらに備える、請求項６３の方法。
【請求項６５】
比較値の現在のセットを特定する前記工程は：
第１状態に対する代表的なしきい電圧値を特定する工程と；
第２状態に対する代表的なしきい電圧値を特定する工程と；
前記第１状態に対する代表的なしきい電圧値と、前記第２状態に対する代表的なしきい電圧値に基いて、前記第１状態と前記第２状態の間の全ての状態についてのデータを用いることなく、現在の比較値をシフトする工程を含む、請求項６３の方法。
【請求項６６】
読み取り動作を実行する前記工程に基いて、前記データ記憶素子の少なくともサブセットについてのローテーション・スキームを特定する工程と、
前記ローテーション・スキームを用いて、前記データ記憶素子の前記サブセットを読み取る工程をさらに備える、請求項５３の方法。
【請求項６７】
前記品質ゲージが所定の基準を満たさない場合にローテーション・スキームを用いて前記データ記憶素子の前記サブセットを読み取る工程をさらに備え、前記ローテーション・スキームは読み取り動作を実行する前記工程に基いて特定される、請求項５３の方法。
【請求項６８】
前記品質ゲージに応答する前記工程は：
予め定められたトラッキング状態のセットの各状態について、前記トラッキング記憶素子の複数の読み取り動作を実行する工程と；
前記データ記憶素子の状態を区別するための比較値の現在のセットを特定する工程をさらに含む、請求項６７の方法。
【請求項６９】
記憶素子のセットであって、データ記憶素子とトラッキング記憶素子を含み、前記データ記憶素子は複数の状態にデータを保存し、前記トラッキング記憶素子は前記複数の状態のサブセットを用いる、記憶素子のセットと；
前記トラッキング記憶素子と通信可能な制御装置を備えるメモリ・システムであって、
前記制御装置は、前記メモリ・システムの読み取り処理の一部として、前記トラッキング記憶素子の読み取り動作の実行と、前記読み取り動作からのエラー情報の記録と、前記読み取り動作に基いた品質ゲージの特定を引き起こし、
前記品質ゲージが所定の基準を満足しない場合に、前記メモリ・システムの前記読み取り処理は、前記品質ゲージに対する応答を行うことを特徴とする、メモリ・システム。
【請求項７０】
前記制御装置は、前記トラッキング記憶素子がトラッキング状態のセットにあるか否かを特定し、前記トラッキング状態にないトラッキング記憶素子に関するエラー情報を記録する、請求項６９のメモリ・システム。
【請求項７１】
前記品質ゲージは、前記トラッキング状態にないトラッキング記憶素子の数を指し示す、請求項６９のメモリ・システム。
【請求項７２】
前記品質ゲージに対する前記応答は、エラー訂正符号処理のパラメータを変更することを含む、請求項６９のメモリ・システム。
【請求項７３】
前記品質ゲージに対する前記応答は、前記複数の状態の前記サブセットの各状態についての前記トラッキング記憶素子の複数の読み取り動作の実行と、状態を区別するための比較値の現在のセットの特定を含む、請求項６９のメモリ・システム。
【請求項７４】
前記品質ゲージに対する前記応答は、前記データ記憶素子の前記サブセットからのデータを読み取るための比較値の前記現在のセットの使用と、前記データのエラー訂正符号解析の実行と、前記エラー訂正符号解析が成功した場合の前記データの報告をさらに含む、請求項７３のメモリ・システム。
【請求項７５】
前記制御装置は：
前記複数の状態の前記サブセットの第１状態に対する代表的なしきい電圧値を特定し；
前記複数の状態の前記サブセットの第２状態に対する代表的なしきい電圧値を特定し；
前記第１状態に対する代表的なしきい電圧値と、前記第２状態に対する代表的なしきい電圧値に基いて、前記第１状態と前記第２状態の間の全ての状態についてのデータを用いることなく、現在の比較値をシフトすることによって、比較値の前記現在のセットを特定する、請求項７３のメモリ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
（発明の背景）
（１．技術分野）
本発明はメモリ・デバイスを読み取る技術に関する。
【背景技術】
【０００２】
（２．関連技術）
半導体メモリ・デバイスは、様々な電子装置での使用で大きな人気を博している。例えば、不揮発性の半導体メモリは、セルラー電話、デジタル・カメラ、パーソナル・デジタル・アシスタント（ＰＤＡ）、モバイル・コンピューティング・デバイス、非モバイル・コンピューティング・デバイス等に使用されている。電気的消去可能プログラム可能型読取専用メモリ（ＥＥＰＲＯＭ）やフラッシュ・メモリは、中でも最も人気が高い不揮発性の半導体メモリである。
【０００３】
ＥＥＰＲＯＭとフラッシュ・メモリはどちらも、フローティング・ゲートを利用する。フローティング・ゲートは、半導体基板のチャネル領域の上に位置しており、チャネル領域から絶縁されている。フローティング・ゲートはソース領域とドレイン領域の間に位置している。コントロール・ゲートは、フローティング・ゲートから絶縁されており、フローティング・ゲートの上に設けられている。トランジスタのしきい電圧は、フローティング・ゲートに保持されている電荷の量によって制御される。すなわち、トランジスタをオンに切換えて、ソースとドレインの間を導通可能にするのに先立って、コントロール・ゲートに印加されなければならない最低限の電圧は、フローティング・ゲートの電荷保持のレベルによって制御される。
【０００４】
多くのＥＥＰＲＯＭとフラッシュ・メモリは、二つの電荷保持範囲を保存するために使用されるフローティング・ゲートを有し、従って、メモリ・セルは二つの状態の間でプログラミング／消去をすることができる。このようなメモリ・セルは、１ビットのデータを保存する。他のＥＥＰＲＯＭとフラッシュ・メモリのメモリ・セルは、複数の電荷保持範囲を保存しているため、複数の状態にプログラミングすることができる。このようなメモリ・セルは複数ビットのデータを保存する。しきい電圧範囲のサイズおよびパラメータは、装置の特徴、動作状態、および履歴に依存する。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来のＥＥＰＲＯＭやフラッシュ・メモリは、そのデバイスが消去とプログラミングのサイクルを経るたびに、耐久性に関するストレスを受ける。フラッシュ・メモリの耐久性とは、所定の回数の消去およびプログラミングのサイクルに耐える能力のことである。使用が重なるにつれ、メモリ・デバイス内に不具合が蓄積していき、デバイスの信頼性が極度に下がる。従来のフラッシュ・メモリ・デバイスの耐久性を制限してしまう一つの物理的な現象は、フローティング・ゲートと基板の間にある誘電体の電子の捕獲である。プログラミング中、電子は誘電体を介して基板からフローティング・ゲートに注入される。同様に、消去中、電子は誘導体を介してフローティング・ゲートから抽出される。どちらの場合も、誘電体に電子が捕獲されてしまう可能性がある。捕獲された電子は、印加された電界と、その後実行されるプログラミング／消去サイクルに対抗し、その結果、プログラミングのしきい電圧が以前より低くなり、消去のしきい電圧が以前より高くなるという現象が起こる。これによって、プログラミングと消去の状態間の電圧範囲が徐々に狭まるように見えるだろう。プログラミング／消去サイクルが持続された場合、デバイスは、いずれ修復不可能な故障を引き起こす恐れがある。複数状態メモリが実装されている場合には、より的確なしきい電圧が要求されるため、この問題はさらに深刻なものとなる。
【０００６】
二つ目の問題はフローティング・ゲートの電荷保持に関する。例えば、フローティング・ゲートの負電荷は、しばらくすると漏れて減少する傾向がある。これが原因で、時間とともにしきい電圧がより低い値にシフトしてしまう。デバイスの寿命がくる時には、しきい電圧は１ボルト以上もシフトしているかもしれない。複数状態デバイスでは、これによりメモリ・セルの状態が一つか二つシフトしてしまう可能性もある。
【０００７】
三つ目の問題は、メモリ・デバイスの複数のセルに、プログラミング／消去サイクルが均等に行われないことである。例えば、メモリ・セルのセットに反復的なパターンが継続的にプログラミングされることは珍しくない。従って、幾つかのセルは常にプログラミングおよび消去されるのに対して、他のセルは滅多にあるいは全くプログラミングされない。このような不均等なプログラミングと消去は、特定のセクタのセルに不均等なストレス・コンディションをもたらす。不均等なプログラミング／消去サイクルの履歴は、個々の状態の全てにおいて、しきい電圧の分布をより幅広くしてしまう。しきい電圧の分布の拡大に加え、いくつかのセルでは上述の電圧範囲の狭まり、デバイスの故障あるいは電荷保持の問題がその他のセルよりも早く生じるかもしれない。
【課題を解決するための手段】
【０００８】
（発明の要旨）
本発明は概略では、メモリ・システムの読み取り処理を改善するために使用されるトラッキング・セルに関する。様々な実施形態において、トラッキング・セルは、データ修復処理の一部として使用され、データの品質に関する問題点を指摘する警告を提供するために使用されたり、および／または、データがメモリにおいてどのように符号化されるかについての指示を保持する手段として使用されたりする。一実施形態では、エラー訂正符号（ＥＣＣ）処理がデータのエラーを訂正できない場合に、トラッキング・セルはデータ修復のためだけに使用される。
【０００９】
本発明の一実施形態は、記憶素子のセットを含むメモリ・システムに保持されているデータを読み取る工程を含む。記憶素子は、データ記憶素子とトラッキング記憶素子を含む。データ記憶素子は、複数の状態のセットにおいて巡回可能に符号化されたデータを保持することができる。トラッキング記憶素子は読み取られ、複数のトラッキング状態に分類される。トラッキング状態は、データ記憶素子によって利用される複数の状態のサブセットに対応する。トラッキング記憶素子の分類に基いて、ローテーション・スキーム（すなわち、選択される特定の巡回符号化）が特定される。幾つかあるいは全てのデータ記憶素子が、特定されたローテーション・スキームを用いて読み取られる。一つの実施例では、ローテーション・スキームを特定する工程は、２またはそれ以上の非冗長なトラッキング記憶素子の分類を組み合わせて、他の識別子と結合されることでローテーション・スキームを指し示す識別子を生成する工程を含む。
【００１０】
本発明のもう一つの実施形態は、トラッキング・セルに対して複数の読み取り動作を行い、それらの動作の間にエラー情報を記録する工程を含む。記録されたエラー情報に基いて、品質ゲージが特定される。品質ゲージが所定の基準を満たしたら、所定の応答が実行される。所定の数のトラッキング記憶素子にエラーがある場合、所定の数のトラッキング・セルのしきい電圧が少なくとも所定の値だけ予想値と異なる場合、あるいはエラーしきい値の連続的なセット（例えば、時間に関して異なるエラー・レベル）を超えている場合、品質ゲージは警告を含むことができる。応答の例としては、読み取り処理の強制終了や、ＥＣＣ操作のパラメータの変更、および／またはデータ修復処理の開始などが含まれる。
【００１１】
本発明による幾つかの実施形態は、記憶素子の状態群のサブセットのそれぞれの状態に対して、複数の読み取り動作を実行する工程を含む。記憶素子の状態群は、メモリ・システムにおける複数状態の記憶素子について、異なるデータ値を表現する。その複数の読み取り動作の結果に基いて、記憶素子の状態群のそれぞれを識別するための比較値の現在のセットが特定される。一つの実施例では、第１の状態に関連する複数のしきい電圧レベル群についてのトラッキング記憶素子群の第１のセットに読み取り動作を実行する工程と、その記憶素子群の第１のセットに読み取り動作を実行する工程に基いて、トラッキング記憶素子群の第１のセットについてのしきい電圧レベル群を特定する工程と、第２の状態に関連する複数のしきい電圧レベル群についてのトラッキング記憶素子群の第２のセットに読み取り動作を実行する工程と、その記憶素子群の第２のセットに読み取り動作を実行する工程に基いて、トラッキング記憶素子群の第２のセットについてのしきい電圧レベル群を特定する工程と、特定された第１の状態に対するしきい電圧レベル群と第２の状態に対するしきい電圧レベル群に基いて、現在の読み取りの比較値を変更する工程を含む。ここで、第１の状態と第２の状態は、互いに隣接するものではない。
【００１２】
上述した様々な読み取り動作は、ホスト・デバイスがデータをリクエストした時の応答として、あるいは（例えば、他の場所へのデータのコピーや、ガベージ・コレクションなどの）内部的な動作の一部として実行される。
【００１３】
本発明の一実施例は、記憶素子群のセットと制御回路を含む。その記憶素子群は、複数状態のデータ記憶素子群とトラッキング記憶素子群を含む。そのトラッキング記憶素子群は、そのデータ記憶素子群によって用いられる複数の状態群のサブセットを用いる。制御回路は、トラッキング記憶素子群と通信しており、上述の機能を実行させることができる。メモリ・システムはＥＥＰＲＯＭメモリ・システム、フラッシュ・メモリ・システム、あるいは他の適当な種類のメモリ・システムでもよい。一実施例では、制御回路は記載された機能を達成するために特注されたハードウェアを含む。他の１つの実施例では、制御装置は記載された機能を達成するようプログラミングされる。例えば、制御装置をプログラミングするため、ソフトウェア／ファームウェアが１またはそれ以上のプロセッサで読み取り可能な記憶媒体（例えば、フラッシュ・メモリ、ＥＥＰＲＯＭ、ＤＲＡＭ、および他の媒体）に保存されていてもよい。
【００１４】
典型的な一実施例では、データ記憶素子群は８つのしきい電圧状態（状態０、状態１、状態２、状態３、状態４、状態５、状態６、状態７）を利用し、トラッキング記憶素子は状態１と状態６を使用する。ローテーション・コードの１ビットを確立するため、トラッキング素子はペアにグループ分けされる。ローテーション・コードは３ビットで構築される。３つのペアの複数セット（例えば、４セット）が、冗長性のために利用される。
【発明を実施するための最良の形態】
【００１５】
本発明の上述およびその他の目的および利点は、以下に図面とともに説明される本発明の好ましい実施形態の記載から、より明確となるであろう。
【実施例】
【００１６】
（詳細な説明）
（１．メモリ・システム）
図１の構成図は、本発明の様々な特徴を取り入れたメモリ・システムの例を示す。本発明は、図１の構造だけでなく、他の構造でも使用できる。多数の個々にアドレス可能なメモリ・セル１１は、行と列のアレイに配列されている。アレイ１１の列に沿って延びるビット線は、線１５を介してビット線のデコーダ、ドライバおよびセンス・アンプ回路１３と電気的に接続されている。アレイ１１の行に沿って延びるワード線は、線１７を介してワード線のデコーダおよびドライバ回路１９と電気的に接続されている。アレイ１１のメモリ・セルの列に沿って延びるステアリング・ゲートは、線２３を介してステアリング・ゲートのデコーダおよびドライバ回路２１に電気的に接続されている。回路１３、１９、および２１はそれぞれバス２５を介して制御装置２７からアドレスを受信する。デコーダおよびドライバ１３、１９、および２１は、個々の制御およびステータス信号線２９、３１および３３を通じても、制御装置２７に接続されている。ステアリング・ゲートとビット線に印加される電圧は、制御装置とドライバ１３および２１を相互接続するバス２２を介して調整される。
【００１７】
制御装置２７は、線３５を介してホスト・デバイス（図示せず）に接続可能である。そのホスト・デバイスは、パソコン、ノート・パソコン、携帯型デバイス、デジタル・カメラ、オーディオ・プレーヤー、セルラー電話や、他の様々なデバイスでもよい。図１のメモリ・システムは、PCMCIA、CompactFlashTM Association、MMCTM Association、スマート・メディア、Secure DigitalTM、メモリ・スティックなどの、現存する技術的および電気的標準規格に基づいたカードとして実装される。カード形式の場合、線３５はそのカード上でホスト・デバイスの予備コネクタとインターフェース接続するコネクタにおいて終端処理される。あるいは、図１のメモリ・システムは、ホスト・デバイスに内蔵することができる。さらにあるいは、制御装置２７をホスト・デバイスへ内蔵して、メモリ・システムの他の部分を取り外し可能なカード上に実装することができる。他の実施形態では、メモリ・システムはカード以外のパッケージに実装することができる。例えば、メモリ・システムを１つまたはそれ以上の集積回路、あるいは１つまたはそれ以上の回路基板、あるいはそれ以外のパッケージなどに実装することができる。
【００１８】
デコーダおよびドライバ回路１３、１９および２１は、制御およびステータス信号線２９、３１および３３のそれぞれの制御信号に従って、バス２５上でのアドレス指定のとおりに、アレイ１１のそれぞれの線に適切な電圧を生成して、プログラミング、読み取り、および消去の機能を実行する。電圧レベルおよびその他のアレイ・パラメータを含むステータス信号は、アレイ１１によって制御装置２７へ同じ制御およびステータス信号線２９、３１および３３を介して提供される。回路１３内にある複数のセンス・アンプは、アレイ１１内のアドレス指定されたメモリ・セルの状態を示す電流あるいは電圧レベルを受け取る。読み取り動作中に、センス・アンプは制御装置２７に線４１を介してメモリ・セルの状態の情報を提供する。多数のメモリ・セルの状態を並列に読み取るため、通常は多数のセンス・アンプが使用される。
【００１９】
（２．メモリ・セル）
図２は、メモリ・アレイ１１の一部分の第一実施形態を表す平面図である。図３は、そのメモリ・アレイのセクションＡ−Ａにおける部分的断面図を示す。基板と導体素子が、それらの間に配置された誘電体層の概略と共に示されている。これにより図面が簡略化されるが、導電層同士の間、および導電層と基板の間に、適切な酸化被膜が含まれると理解するべきである。
【００２０】
シリコン基板４５は、平らな上側表面４７を含む。最初のイオン注入と、それに続く拡散によって、細長い拡散領域４９、５１、および５３が、表面４７を介して基板４５内に形成される。細長い拡散領域４９、５１、および５３は、メモリ・セルのソースおよびドレインとしての役割を果たす。本明細書においては、拡散領域は第１の「Ｘ」方向に間隔を置いて、第２の「Ｙ」方向に長く伸びて示されている。これらの「Ｘ」方向と「Ｙ」方向は原則的に互いに直交している。幾つかのフローティング・ゲートが基板表面４７にわたって、それらの間の適当なゲート誘電体とともに、行と列のアレイに配列されている。フローティング・ゲート５５、５６、５７、５８、５９、および６０の１行は、フローティング・ゲート６２、６３、６４、６５、６６、および６７の他の１行と平行に隣接している。フローティング・ゲート６９、５５、６２、７１、および７３の１列は、フローティング・ゲート７５、５６、６３、７７、および７９の他の１列と平行に隣接している。上記のフローティング・ゲートは、導電的にドープされた第１の多結晶シリコン（ポリシリコン）層から形成される。それは、表面に蒸着された後に、１またはそれ以上のマスキング工程を用いたエッチングによって、個々のフローティング・ゲートに分離されている。
【００２１】
ビット線のデコーダおよびドライバ１３（図１を参照）は、線１５を介して、図２および図３の拡散領域４９、５１、および５３を含むアレイの全てのビット線のソース／ドレインの拡散領域に接続されている。個々のメモリ・セルの列のソースとドレインは、バス２５を通して供給されるアドレスと線２９上の制御信号に応じて読み取りあるいはプログラミングを行う上で適した動作電圧に接続されている。
【００２２】
図２と図３の構造では、フローティング・ゲートの列の２列ごとに１つのステアリング・ゲートを用いる。ステアリング・ゲート８１、８３、および８５は、「Ｙ」方向に伸びており、隣接する２つのフローティング・ゲートの列とそれらの間に配置されているソース／ドレインの拡散領域にわたって広がる「Ｘ」方向の幅を持っている。どの２つのステアリング・ゲートの間隔も、その２つのステアリング・ゲートが重ねられている隣接するフローティング・ゲートの列の「Ｘ」方向における間隔と少なくとも同程度に大きい。これは後でその間隔において基板にゲートを形成するためである。ステアリング・ゲートは、導電的にドープされた第２のポリシリコン層をエッチングすることによって形成される。その第２のポリシリコン層は、第１のポリシリコン層と適当なポリシリコン層間の誘電体の全表面にわたって蒸着されたものである。ステアリング・ゲートのデコーダおよびドライバ２１（図１を参照）は、線２３を介して全てのステアリング・ゲートに接続され、バス２５上で提供されるアドレスと、線３３上の制御信号と、ドライバおよびセンス・アンプ１３からのデータに応じて、それぞれの電圧を個々に制御することができる。
【００２３】
図２および図３のワード線９１、９２、９３、９４、および９５は、「ｘ」方向に伸びており、各ワード線がフローティング・ゲートの行に沿うように、「Ｙ」方向に間隔を空けながら上記のステアリング・ゲートの全体に広がっている。ワード線は、導電的にドープされた第３のポリシリコン層をエッチングすることによって形成される。その第３のポリシリコン層は、第２のポリシリコン層、およびステアリング・ゲート同士の間で露出した領域の上にまず形成された誘電体の、上側表面の全てにわたって蒸着されたものである。ワード線は、読み取りまたは書き込みのための、ワード線の行における全てのメモリ・セルの選択を可能とする。メモリ・アレイの１つの行を個々に選択するため、選択ゲートのデコーダおよびドライバ１９（図１を参照）が、それぞれのワード線に接続されている。選択された行の個々のセルは、ビット線のデコーダおよびドライバ１３と、ステアリング・ゲートのデコーダおよびドライバ２１（図１を参照）による読み取りまたは書き込みを可能にする。
【００２４】
このような構造のゲートの素材は、ドープされたポリシリコン材料が好ましいが、上述した３層のポリシリコン層の１つまたはそれ以上の代わりに、他の適当な導電性材料が用いられてもよい。例えば、ワード線と選択ゲートが形成される第３の層については、導電性を高めるために、ポリサイド材料であってもよい。ポリサイド材料は、導電性の高融点金属（例えばタングステン）シリサイドを上面に備えるポリシリコンである。ポリサイドは、通常は第１のポリシリコン層や第２のポリシリコン層の代わりに用いられることはない。なぜなら、ポリサイドから形成される多結晶シリコン間酸化物の品質は、たいていの場合は満足のいくものではないからである。
【００２５】
図２および図３には、金属導電層が図示されていない。たいていの場合、拡散領域とポリシリコン素子の導電性は金属の導電性より極めて低いため、それぞれの金属線が全ての中間層にわたってポリシリコン素子と拡散領域の長さ方向に周期的な間隔で配置されるように、個々の層に金属の導電体が含まれている。図２および図３の実施形態の全ての拡散領域とポリシリコン素子は、別々に駆動されなければならないため、通常は多数の金属線と多数の拡散領域およびポリシリコン素子の間に、１対１の対応関係がある。
【００２６】
図４は図３の構造と電気的に等価な回路を図示しており、等価な素子には図２および図３における参照符号と同一の符号にプライム（'）を付して示している。図示された構造は、ソースおよびドレインの拡散領域を、隣接する構造と共有している。互いに隣接する拡散領域４９および５１の間での基板におけるチャネルの導通は、３つの異なる領域における異なるゲート素子によって制御される。左側の第１の領域（Ｔ１−左）は、真上に位置するフローティング・ゲート５６と、容量結合されたステアリング・ゲート８１を備えている。右側の第２の領域（Ｔ１−右）は、同様に、フローティング・ゲート５７とステアリング・ゲート８３によって制御される。第３の領域Ｔ２は、Ｔ１−左とＴ１−右の間に位置し、ワード線９２の一部である選択ゲート９９によって制御される。
【００２７】
従って、拡散領域４９および５１の間のチャネルを電子が導通するレベルは、これらの異なるゲート素子に加えられる電圧により、これらのゲート素子によってそれぞれのチャネル領域に印加される電界によって影響を受ける。フローティング・ゲートの電圧は、ゲートが保持する正味の電荷に他のゲートおよびノードから容量結合された変位電荷を加えたレベルに依存している。フローティング・ゲートの下方のチャネル部において許容される導通のレベルは、そのフローティング・ゲートの電圧によって制御される。選択ゲート９９の電圧は、ソース／ドレイン領域を接続する個々のセルを選択するために、チャネルを任意の導通レベルにまでオンしたりオフしたりする。１つの実施形態では、単一のメモリ・セルは、３つのトランジスタが直列接続されたものだと考えることができる。この場合において、３つの異なるチャネルの領域（Ｔ１−左、Ｔ２、Ｔ１−右）のそれぞれが、１つのトランジスタに相当する。他の実施形態では、各フローティング・ゲートが単一のメモリ・セルだと考えることができる。
【００２８】
単一のメモリ・セルが持つ２つのフローティング・ゲートのうちの一方が、プログラミングまたは読み取りのために選択される。それは、他方の（選択されていない）フローティング・ゲートによって保持される電荷にかかわらず、その他方のフローティング・ゲートのチャネル領域が十分に導通するように、その他方のフローティング・ゲート上のステアリング・ゲートに電圧を印加することにより行われる。ワード線に加えられる十分な電圧によって、そのセルの選択トランジスタがオンに切換えられると、その選択されたフローティング・セルのみが、そのセルに指示された読み取りまたはプログラミングの実行に応じる。その一方のフローティング・ゲートの状態の読み取りをしている間、ソースとドレインの間を流れる電流は、他方のフローティング・ゲートの電荷にかかわらず、選択されたフローティング・ゲートによって保持される電荷に依存する。選択されていないフローティング・ゲートの下方のチャネル部を導通させるために、その選択されていないフローティング・ゲート上のステアリング・ゲートに加えられる電圧は、その同じステアリング・ゲートを通して隣接するセルの隣接するフローティング・ゲートにも結合されている。しかしながら、その隣接するセルの他の素子について適当な電圧コンディションを保つことによって、その隣接するセルへの影響は排除される。
【００２９】
図２〜４の実施形態のフローティング・ゲートは、そのフローティング・ゲートのビット線（ソースおよびドレインの拡散領域）と２つのステアリング・ゲートに電圧を印加し、基板のチャネル領域にある電子にゲート誘電体を横切って選択されたフローティング・ゲート上へ注入されるのに十分なエネルギーを得させることによって、プログラムされることが好ましい。これを行うための好適な技術が、アメリカ合衆国特許番号５，３１３，４２１と番号５，７１２，１８０に記載されている「ソース側注入」である。これらの文献は、参照することによって、本明細書に組み込まれる。
【００３０】
図２〜４の実施形態のメモリ・セルを消去するためには、電子を選択されたフローティング・ゲートからワード線の選択ゲートあるいはチャネルへ移動させるように設計され、動作させられるだろう。選択ゲートへ消去される場合、フローティング・ゲートの端部１０３と選択ゲート９９の間の誘電体は、フローティング・ゲートの端部に成長した薄い酸化層であって、セルの様々な素子に適切な電圧が印加された時に電子がトンネル移動するものであることが好ましい。フローティング・ゲートの端部１０５と選択ゲート９９の間にも、同様のものが設けられている。選択ゲート９９へ消去されるよう設計された場合、ゲート誘電体を横切ったその選択ゲートと基板表面４７の間の電圧勾配が、その誘電体の破壊レベルより十分に低く維持されるように注意しなければならない。その理由は、ふつうは消去している間はワード線が１０Ｖを超え、場合によっては２０Ｖ以上にまでレベルが上げられるのに対して、セルに加えられる他の電圧は５Ｖ以下であるからである。選択ゲートの誘電体を横切る電圧勾配は、誘電体を厚くするか、通常より大きな誘電率を選択することにより、低減することができるが、これは選択トランジスタの動作に悪影響を及ぼす可能性がある。
【００３１】
セルがチャネルへ消去されるものである場合、図２〜４の実施形態はいくらか変更される。まず、選択ゲート９９と、隣接するフローティング・ゲートの端部１０３および１０５の間の誘電体をより厚くして、フローティング・ゲートから選択ゲートへの消去を防止する。次いで、フローティング・ゲートの下面と基板表面４７との間のゲート誘電体の厚さを薄くして、例えば１００オングストローム程度まで薄くして、電子のトンネル移動を容易なものとする。さらに、１つのフロックとして同時に消去されるべきセル群は、列に沿って、あるいはブロックの中でグループ化される。一実施形態では、基板上において、あるブロックは他のブロックから隔離されている。通常は、これはトリプル・ウェル処理によって行われている。ここでは、ｐ型基板にｎウェルが形成され、セルのブロックを保持するｐウェルが、他のブロックからそのブロックを隔離するｎウェルの内部に位置決めされる。そして、その他のブロックに影響を及ぼすことなく、消去されるべきブロックのｐウェルに適切な消去電圧が印加される。
【００３２】
図１〜５の構造のさらなる詳細は、アメリカ合衆国特許番号６，１５１，２４８に記載されている。この文献は、その全てを参照することによって、本明細書に組み込まれる。図２〜４のメモリ構造は、適切なメモリ・セルの一例である。本発明を実装するために、他の構造が用いられてもよい。例えば、一実施形態では、帯電した誘電体を含む複数層の誘電体を用いることもできる。
【００３３】
（３．メモリ・アレイの動作）
図５の表に、アレイ１１のメモリ・セルをプログラミング、読み取りおよび消去するための動作電圧の例を示す。（２）の行は、選択ゲート（ワード線）へ消去される種類のセルの動作に関するものであり、（８）の行は、基板へ消去される種類のセルの動作のために変更したものを示す。これらの例では、セルが形成される基板の部分にはｐ型ドーピングを含み、ビット線の拡散領域はｎ型である。これらの動作の間、基板は接地されている。
【００３４】
図５の表の（１）の行には、選択されていない行の電圧コンディションを示している。選択されていない行のワード線は、ドライバ回路１９（図１）によって接地される。選択されていない行に沿うセルの、ビット線（拡散領域）とステアリング・ゲートの列における「Ｘ」は、その素子にかかる電圧が問題とならない、「無関係な」状況にあることを示す。回路１３、１９および２１は何れも、アレイの素子に対して負の電圧を生成することはないから、この例では、行の選択ゲートの電圧が０Ｖであれば、その行に沿うセルのうち有効となるものは１つもないことが保証される。それらのチャネルには、電流が流れない。異なる行で同じ列にある他のセルのプログラミングや読み取りは、ワード線が０Ｖである行に影響を及ぼすことなく行うことができる。
【００３５】
表の（２）の行には、ワード線の選択ゲートへ消去されるように設計された種類のセルを消去するための電圧のセットの例を示す。１０Ｖ〜２５Ｖの範囲（例えば２０Ｖ）の高い消去電圧VEが、ドライバ回路１９によって、消去されるべきフローティング・ゲートのワード線の全てに印加される。これは通常は、隣接する多数の行の全てのセルを含む、少なくとも１つの特定されたセル群のブロックである。しかしながら、好ましい応用例では、より少ないセル、あるいはより多くのセルが、同時に消去されてもよい。あるいは、その消去されるブロックは、単一の行のセルに制限されてもよい。１つまたはそれ以上の選択された行に沿うセルのステアリング・ゲートは、ステアリング・ゲートとフローティング・ゲートの間の高度な容量結合を利用してフローティング・ゲートの電圧を低いレベルに維持するために、ドライバ回路２１によって低電圧（例えば０Ｖ）に設定される。フローティング・ゲートとそれぞれの選択ゲート（ワード線）との間に生じる電位差は、中間に介在する誘電体を通って電子がトンネル移動する原因となる。消去についての詳細は、アメリカ合衆国特許番号５，２７０，９７９に記載されている。この文献は参照によって本明細書に組み込まれる。
【００３６】
図５の表の（３）の行と（４）の行は、メモリ・セルの２つのフローティング・ゲートの状態を読み取るための電圧の例を示す。（３）の行は左側のフローティング・ゲートに対するものであり、（４）の行は右側のフローティング・ゲートに対するものである。どちらの場合も、選択ゲートの電圧が、そのセルの選択トランジスタをオンに切換えるのに十分な電圧VSRまで引き上げられて、そのチャネルを通して電流を流すことが可能となることにより、セルが有効化される。この電圧は通常、選択トランジスタのしきい電圧より１Ｖ高い。
【００３７】
図５の表の（３）の行と（４）の行に示すように、一方のフローティング・ゲートの電圧状態を読み取る場合には、その読み取られるフローティング・ゲートの上方のステアリング・ゲートには電圧VMが印加され、他方のフローティング・ゲートの上方のステアリング・ゲートは電圧VBRまで引き上げられる。選択されていないフローティング・ゲートのプログラミングされた状態にかかわらず、電圧VBRはその選択されていないフローティング・ゲートの下方のセルのチャネル部が十分に導通するように、十分に高い電圧（例えば８Ｖ）とされる。選択されたフローティング・ゲートの状態を読み取るために、電圧VMは読み取り工程の間は複数の電圧（後述する）を段階的に経る。その電圧値は、セル電流が所定のしきい電圧を通過する時に、回路１３の内部のセンス・アンプによって検知される。
【００３８】
図５の表の（５）の行と（６）の行には、二重フローティング・ゲート・セルの一方のフローティング・ゲートをプログラミングするための電圧の例が示されている。動作させるセルを選択するために、選択ゲートが、そのセルの選択トランジスタをオンに切換えるために必要な電圧まで引き上げられる。ソース側注入のプログラミング速度を最適化するために、電圧VSPは読み取りの間に使用される電圧VSRとは異なるものとしてよい。例えば、選択トランジスタのしきい電圧が１Ｖの場合、VSP= 2.2Ｖ である。プログラミングされるように選択されたフローティング・ゲートとセルの同じ側にあるビット線の拡散領域は、プログラミング動作の間、最大ビット線電圧（例えば５Ｖ）まで引き上げられる。この電圧は、フローティング・ゲート・チャネルと選択ゲート・チャネルの間の隙間を横切って十分な電界を発生させて、ソース側のホット・エレクトロン・プログラミングを得るために必要な大きさにされる。選択されていないフローティング・ゲートとセルの同じ側にあるビット線の拡散領域は、プログラミングの間、０Ｖまたはその近傍にバイアスされている。
【００３９】
選択されていないフローティング・ゲートの上方のステアリング・ゲートは、そのフローティング・ゲートの下方のチャネル領域を十分に導通させるために必要な電圧VBP（例えば、VBP= 8 Ｖ）まで引き上げられる。これは、目標とするフローティング・ゲートのプログラミングの妨げとならないようにするためである。これは、選択されていないフローティング・ゲートに、どれだけのフローティング・ゲート電圧が存在しているかにかかわらず、そのフローティング・ゲート電圧のプログラム・ウィンドウの範囲内で行われる。ホット・エレクトロン・プログラミングのために、その選択されたフローティング・ゲートをその下方のチャネルにおいて望ましい電界コンディションを作り出すことを助けるような電圧まで駆動するレベルで、その選択されたフローティング・ゲートの上方のステアリング・ゲートに、電圧VPが印加される。例えば、電圧VPは５〜１２Ｖの範囲内でよい。この電圧は、プログラミング動作の間に変化することがある。通常は、まず消去されたセルに適切なプログラミング電圧のセットが印加され、続いて、適切な読み取り電圧のセットが印加される。そして、読み取り工程が、選択されたフローティング・ゲートが望ましい電圧状態にプログラミングされていると指摘しない場合、以前の電圧のセットとは部分的に異なるかも知れないプログラミング電圧が再び印加される。ここで、望ましい電圧状態は、バイナリ・ストレージのプログラミング状態であってもよいし、複数レベル・ストレージの可変ストレージ状態であってもよい。
【００４０】
図５の表の（７）の行は、プログラミングするために選択された行の内部にあって、それ自体はプログラミングされないセルに印加される電圧を示す。例えば、アレイのセグメント化された部分の１つの行の内部で同時にプログラミングされる複数のセルは、プログラミングされない他のセルと、その行に沿って交互に配置されている。これらのプログラミングされないセルが、図５の表の（７）の行に示す電圧を受ける。相対するビット線の拡散領域は、チャネルにおいて電流が流れないように、同じ電圧（例えば、両方とも０Ｖ、あるいは両方とも５Ｖ）に保たれる。（１）の行で用いている表記と同じように、「Ｘ」はこれらのセルのステアリング・ゲートの電圧が、問題とならないことを示している。
【００４１】
メモリ・アレイが基板へ消去されるように設計されている場合には、（２）の行の消去電圧コンディションの代わりに、（８）の行の消去電圧コンディションが適用される。消去されるべきセル群のブロックを含むｐウェルと、そのｐウェルの周囲のｎウェルはは、両方とも消去電圧VEまで引き上げられ、その範囲は例えば１０Ｖ〜２５Ｖ（例えば２０Ｖが好ましい）である。このようなセルの読み取りおよびプログラミングの間は、これらのウェルは接地されている。消去の間は、選択ゲートの誘電体を横切って印加される電圧を低減するために、選択ゲートに正の電圧VSEが印加されるのが好ましい。なぜなら、基板と選択ゲートの間の過剰な電位差は、誘電体を損傷してしまうか、あるいはセルの動作に対して望ましい厚さ以上に誘電体を厚くする原因となるからである。このような電圧は、選択ゲートから消去しようとする隣接するフローティング・ゲートへ部分的に結合するので、それほど高くすることができず、さもなければ、消去を成し遂げるために高くされているそのフローティング・ゲートとその基板のチャネルとの間の電位差を、極端に低くしてしまう。電圧VSEの範囲は、例えば３〜１２Ｖであり、電圧VEのレベルに依存する。VE = 20 Ｖの場合には、VSE = 10 Ｖであることが好ましい。
【００４２】
図５において提示した数値は、１つの例である。当業者は、メモリ・システムの動作のために、適切な他の数値および方法を用いることができる。
【００４３】
（４．トラッキング・セル）
上述したように、フローティング・ゲートは、複数のレベル、すなわち複数の電荷の範囲を保持することができ、従って複数の状態を提供することができる。１つの実施形態では、フローティング・ゲートは８つの目標とする電荷の範囲を保持し、従って８つの状態を提供する。このようなフローティング・ゲートは、３ビットのデータを保持する。図６は、８つの状態を保持できるフローティング・ゲートの典型的な状態空間を図示している。図６は８つの物理状態Ｐ０、Ｐ１、Ｐ２、Ｐ３、Ｐ４、Ｐ５、Ｐ６、およびＰ７を示す。例示を目的として、図６の縦軸はしきい電圧をミリボルト単位で示している。しかしながら、実装形態によっては、他の単位が用いられてもよい。それぞれの物理状態に対して、図６はしきい電圧レベルの範囲または分布を釣鐘曲線で描く。通常、釣鐘曲線の頂部（すなわち、最も右側の点）が、その状態の中心である。例えば、状態Ｐ１の中心は１０００ｍＶにあり、下側の境界は８００ｍＶに、上側の境界は１２００ｍＶにある。状態間にある領域は、状態から状態へのスレッショルド・マージンである。隣り合った状態間のそれぞれに１つずつ、合計で７つのスレッショルド・マージンがある。隣り合った状態Ｐ１とＰ２の間には、スレッショルド・マージンがある。図６では、状態Ｐ１〜Ｐ７は正の電圧であり、状態Ｐ０は負の電圧を含んでいる。他の実施形態では、より多くの、あるいはより少ない数の状態が、正または負であってもよい。さらに、様々な実施形態では、それぞれのメモリ・アレイに特有の特徴や条件に応じて、電圧範囲は０〜４９００ｍＶとは異なっていてもよい。
【００４４】
８つの状態を保持するフローティング・ゲートは、３ビットのデータを保持することができる。従って、８つの論理状態が存在する。一実施形態では、フローティング・ゲートのしきい電圧が隣の物理状態に誤ってシフトしてしまった場合に影響を受けるビットを１ビットのみに抑えるために、これらの論理状態はグレイ・コード割り当てを用いて、物理状態に割り当てられる。図７の表は、バイナリ・データを論理状態に割り当てるグレイ・コードの割り当ての例を示す。他の実施形態では、グレイ・コード以外の割り当ても用いることができる。各論理状態は一つの物理状態に割り当てられる。しかしながら、論理状態の物理状態への割り当ては巡回可能である。図８の表は、論理状態の物理状態への割り当てについての、８つの異なるローテーション・スキームを示す。例えば、ローテーション０においては、物理状態Ｐ０は論理状態Ｌ０（例えば、バイナリ・データの０００）を保持し、物理状態Ｐ１は論理状態Ｌ１（例えば、バイナリ・データの００１）を保持し、・・・などと続く。ローテーション１では、物理状態Ｐ０は論理状態Ｌ７（例えば、バイナリ・データの１００）を保持し、物理状態Ｐ１は論理状態Ｌ０（例えば、バイナリ・データの０００）を保持し、・・・などと続く。このように、プログラミングをする際には、８つのローテーション・スキームが使用可能である。本発明の一実施形態では、１つのセクタがプログラミングされるたび、そのセクタはまず消去され、そして８つのローテーション・スキームのうちの１つを用いてプログラミングされる。それに続くプログラミング／消去サイクルにおいては、そのセクタは異なるローテーション・スキームを用いてプログラミングされるであろう。一実施形態では、メモリ・デバイスはそれぞれのローテーション・スキームを順番に巡回する。他の実施形態では、メモリ・デバイスはそれぞれのプログラミング・サイクルに対して、ランダムに（あるいは擬似ランダムに）ローテーション・スキームを選択するであろう。データを巡回することによって、セクタにプログラミングされる実際のデータ・パターンとは無関係に、そのセクタの全てのセルについて、プログラミング／消去サイクルの繰り返しを通して、均一なストレス・コンディションを維持することが促進される。データの巡回に関して、一実施形態では、任意の消去ブロックの全てのセクタは履歴を一致させながら動作するため、同一の消去後のローテーションをそれら全てのセクタに伝播させることが可能である点に留意されたい。さらに、内部セクタの消耗の均等化が不十分な場合には、何らかの手法による強制的にプログラミングされた内部セクタの消耗の均等化（例えば、強制レベルや論理データ・パターンの臨時的なプログラミング）が必要となるかもしれない点にも留意すべきである。
【００４５】
一実施形態では、メモリ・アレイ１１は複数のセクタに分割される。セクタがどのように分割されるかについての一実施形態を図９に図示する。そのセクタは、ユーザー・データ２５０とＥＣＣデータ２５２を含む。そのセクタは通常、一つのワード線上のセル群のサブセットからなり、５１２バイトのユーザー・データを保持することができる。本発明では、セクタについての他の定義も用いることができる。そのセクタはさらに、トラッキング・セル２５４とヘッダー情報２５６（ユーザーによって直接決定はされない）を含む。ヘッダー情報は、アドレス情報、ビットおよび／またはセクタ・マッピングに関する情報およびセクタへの書き込み回数を含む。他の情報についても、ヘッダーに保持することができる。トラッキング・セルの例は、アメリカ合衆国特許番号５，１７２，３３８、番号６，２２２，７６２、および番号６，５３８，９２２に記載されている。これらの文献は全て、全体を参照することによって本明細書に組み込まれる。トラッキング・セルは、フローティング・ゲートにおける電荷の様々な状態のそれぞれに対し、最適な識別ポイントを確実に定めるために用いられる。図９に示す実施形態では、セクタは２４のトラッキング・セルを含む。そのトラッキング・セルはそれぞれペアにグループ分けされ、３つのペアが１つのセットにグループ分けされる。一実施形態では、各ペアは同じセクタ内にあるフローティング・ゲートのペアを含む。ここで、そのフローティング・ゲートは図２〜４に図示されたものである。図９は、トラッキング・セルの４つのセット：セット２６０、セット２６２、セット２６４、およびセット２６６を示している。一実施形態では、これらのセットは同一の情報の冗長コピーである。
【００４６】
一実施形態では、トラッキング・セルは２つの状態のどちらかでしかデータを保持しない。例えば、図９はそれぞれのトラッキング・セルが物理状態Ｐ１あるいは物理状態Ｐ６のどちらかでデータを保持している様子を示す。他の実施形態では、他の状態が使用されてもよい。多くの実施形態では、全ての状態は使用されない。例えば、図６は、８つの状態を備えるメモリ状態空間を示す。従って、本発明はトラッキング・セルに対して８つ未満の状態を用いる。状態群のサブセットを用いる１つの利点は、使用されている状態群（トラッキング・セル状態群）を、１またはそれ以上の状態をそれらの間に挟んで分離できることにある。状態Ｐ１とＰ６を選択した理由は、異なる動作環境や動作環境に起因して異なるしきい電圧の分布統計を持つかも知れない２つの端の状態（状態Ｐ０と状態Ｐ７）を除いて、状態Ｐ１と状態Ｐ６はしきい電圧レベルが最大限に離れており、最も大きな基準を与えることができるからである。例えば状態Ｐ０は、データのプログラミングにおける統計とは反対の、消去動作における統計に従うかも知れない。最も頻繁にプログラミングされる状態（状態Ｐ７）の範囲が広がると、中間の状態Ｐ１〜Ｐ６に対しての分布の違い／オフセットを招くことになるかもしれない。図６は、しきい電圧の分布を釣鐘曲線で示す。対応するトラッキング・セルの分布は、より幅が狭い釣鐘曲線２００と２０２で示されている。Ｐ１とＰ６を分離する大きなしきい電圧の差のおかげで、データ部がひどく損傷していない限り、多くのトラッキング・セルで検知を誤る（すなわち、低いしきい電圧の範囲と高いしきい電圧の範囲が入れ替る）可能性は、極めて低いであろう。
【００４７】
状態の数が８つではない実施形態では、トラッキング・セルは上記とは異なる状態を用いてデータを保持してよい。例えば、４つの状態（例えば、Ｐ０、Ｐ１、Ｐ２、およびＰ３）を備えるデバイスにおいては、トラッキング・セルは状態Ｐ１とＰ３でデータを保持してよい。１６の状態（Ｐ０、Ｐ１、Ｐ２、...Ｐ１４、Ｐ１５）を備えるデバイスにおいては、トラッキング・セルは状態Ｐ１とＰ１４でデータを保持してよい。上記の状態の代わりに、あるいは上記の状態に加えて、他の状態を使用してもよい。
【００４８】
１つ思い浮かぶ質問は、対応するトラッキング・セルが、データ・ストリームのどこに配置されるべきかである。それらを後端に配置すれば、継続的にシフト・アウトする必要がなくなり、読み取りの間の時間をわずかに短縮できるかもしれないが、トラッキング情報を必要な時に読み取るため、セクタ全体のデータをシフト・アウトしなければならない可能性もある。このことはさらに、セクタの局所的な範囲にトラッキング・セルを物理的に集めてしまい、局所的な変化に対して脆弱にしてしまう傾向がある。トラッキング・セルをセクタの全体にわたって物理的に分散して配置することは、セクタの内部での局所的な変化に対向する能力を向上するが、その管理と使用は複雑かつ面倒である。トラッキング・セルを前端に配置することは、後端に配置する場合と同様、トラッキング・セルを物理的に一箇所に集めてしまう傾向があり、さらにトラッキング・セルは全ての読み取り動作において、それが必要であろうとなかろうと、読み取り経路に含まれてしまう。しかしながら、一実施形態では、トラッキング・セルは、データの巡回状態を符号化するためにも用いられる。データの巡回を符号化するためにトラッキング・セルを使用する場合は、トラッキング・セルは、各読み取り処理の間に読み取られるべきである。従って、図９に示すように、トラッキング・セルをデータ・ストリームの前端に配置することは、道理にかなっている。ここで、セクタの内部でこれらのトラッキング・セルを物理的且つ均等に分散配置するとともに、先端でのトラッキング・セルの読み取りを提供することは、そのような実施形態を反映するようにアレイの復号化処理を構築することで可能となる点に留意されたい。
【００４９】
各トラッキング・セルは、Ｐ１あるいはＰ６の状態でデータを保持している。すなわち、しきい電圧レベルはＰ１かＰ６のいずれかに設定される。隣接するセル同士（例えば、一実施形態では隣接するフローティング・ゲート同士）でペアを組む場合、ペアの一方は状態Ｐ１に、ペアの他方は状態Ｐ６になるように、プログラミングされる。従って、そのペアは１６あるいは６１の２つの配置の何れかを取りうる。ペアが１６の場合、そのペアは論理０と見なされる。ペアが６１の場合、そのペアは論理１と見なされる。従って、トラッキング・セルのペアは、１ビットの巡回符号化データ（０あるいは１）を形成するのに使用される。３つのペアのセットが、８つの可能なローテーション・スキームのうちの１つを示すのに適した３ビットの巡回符号化データを形成する。例えば、セット２６０は３ビットの巡回符号化データを含む。セット２６０の第１ビットは１６、すなわち論理０である。セット２６０の第２ビットは６１、すなわち論理１である。そして、セット２６０の第３ビットは１６、すなわち論理０である。従って、セット２６０は符号０１０（１０進値では２、すなわちローテーション２）である。他の実施形態では、８つ以上あるいは８つ以下のローテーションが使用可能なので、ローテーション・スキームを識別する符号は、３ビット以上あるいは３ビット以下（例えば、２ビットや５ビットなど）のビット数と、６つ以上あるいは６つ以下のトラッキング・セルおよび／またはフローティング・ゲートで形成できる。一実施形態では、フローティング・ゲートは１６のレベル／状態を保持することが可能であり、４つ（あるいは他のビット数）の巡回ビットが使用される。一実施形態では、それぞれのセットは互いに冗長である。この冗長性を利用して、個々のトラッキング・セルのエラーを修復することができる。従って、セット２６２、２６４、および２６６は、全て０１０を保持する。ローテーション・スキームの符号を識別するには３ビット全て（および付随する６つのセル）が必要なので、特定のセット内の３つのビットおよび６つのトラッキング・セルは、互いに冗長ではない。
【００５０】
各セットに保持された３ビットは、特定のローテーション・スキームを示す符号を表現している。上述したように、図８は本発明の一実施形態における８つの異なるローテーション・スキームを示している。図１０は、セット２６０、２６２、２６４、および２６６の内部に保持されている様々な符号が、どのように巡回状態に割り当てられているのかを示している。従って、１６１６１６のデータ・パターンはローテーション０に対応し、１６１６６１はローテーション１に対応し、１６６１１６はローテーション２に対応し、１６６１６１はローテーション３に対応し、６１１６１６はローテーション４に対応し、６１１６６１はローテーション５に対応し、６１６１１６はローテーション６に対応し、６１６１６１はローテーション７に対応する。
【００５１】
図１１は、トラッキング・セルのプログラミングを含む、セクタのセルをプログラミングする処理を説明するフローチャートである。個々のセルをプログラミングする技術は上述したとおりである。図１１はデバイス・レベルでの処理である。ステップ３４２では、ユーザー・データが受信される。すなわち、制御装置がホスト・システムからデータを受信する。別の場合には、スクラビングや、消耗の均等化や、ガベージ・コレクションなどの内部的な必要性によって、書き込まれるべきデータを内部で生成することもできる。ステップ３４４では、制御装置がどのローテーション・スキームを使用するかを特定する。上述したように、ローテーション・スキームは、順番に、ランダムに、疑似ランダムに、あるいは他の適当な手法によっても選択することができる。ステップ３４６では、選択されたローテーション・スキームに関連付けられた適切な物理状態が、それぞれのトラッキング・セルに対して特定される。すなわち、巡回符号（図１０を参照）に基いて、適切なデータ・パターンがトラッキング・セルのセットに割り当てられる。一実施形態では、トラッキング・セルは巡回されない。ステップ３４８では、制御装置がプログラミングされる各データ値に対する物理状態を特定する。すなわち、図８の表を利用して、各データ値に対する各論理状態は、特定のメモリ・セルの物理状態に割り当てられる。幾つかの実施形態では、データがメモリに送信されると同時に、そのデータに対する物理状態が動的に計算される。
【００５２】
ステップ３５０では、制御装置から「データ・ロード」の命令が出される。ステップ３５２では、制御装置から適切なデコーダにアドレス・データが提供される。ステップ３５４では、ワード線とビット線を適切にバイアスし、選択されたビット線、ワード線、およびステアリング・ゲートを確立するためにデータとアドレスがラッチされ、プログラム・データがメモリ・アレイに入力される。ステップ３５６では、「プログラミング」の命令が制御装置から出される。
【００５３】
ステップ３６０では、プログラミング動作が実行される。多くの実施形態では、プログラミング電圧は多数のパルスに分割される。パルスの振幅は、それぞれのパルスごとに所定のステップ・サイズ分だけ増加する。パルスとパルスの間の期間において、検査動作が実行される。すなわち、各プログラミング・パルスの間に、並列にプログラミングされている各セルのプログラミング・レベルが読み取られ、そのデータに関連する検査レベルまで少なくとも達しているか否かを判断する。例えば、しきい電圧が２.５Ｖまで引き上げられている場合、検査処理はしきい電圧が少なくとも２．５Ｖであるか否かを判断する。一度ある任意のメモリ・セルのしきい電圧が検査レベルまで到達あるいは検査レベルを超えた判断されると、そのセルからプログラミング電圧が取り除かれて、さらなるプログラミングを終了させる。他のセルに並列に書き込まれているプログラミングは、それぞれがそれぞれの検査レベルに到達するまで持続し、到達した時点でプログラミングは終了する。
【００５４】
図１１のステップ３５８では、プログラミング電圧（Ｖｐｇｍ）が開始パルス・コンディションに初期化され、プログラム・カウンターＰＣが０に初期化される。ステップ３６０では、最初のＶｐｇｍパルスが印加される。ステップ３６２では、選択されたメモリ・セルのしきいレベルが検査される。選択されたセルの目的とするしきい電圧が、関連するデータから特定される適切なレベルにまで到達したと判断された場合、そのセルへのさらなるプログラミングは禁止される。しきい電圧がまだ適切なレベルに到達していないと判断された場合、そのセルへのプログラミングは禁止されない。従って、全検査状態（ステップ３６４）が全てのセルが適切なしきいレベルに到達したと指摘した場合には、「合格」という状態がステップ３６６で報告される。全てのセルが適切なしきい電圧に到達したと検査されていない場合、ステップ３６８でプログラム・カウンターがプログラム制限値と比較される。プログラム制限値の一例は２０である。プログラム・カウンターが２０以上であれば、プログラム処理は失敗に終わり、ステップ３７０で「不合格」という状態が報告される。プログラム・カウンターが２０未満であれば、ステップ３７２で、プログラム電圧レベルがステップ・サイズ分だけ増大され、プログラム・カウンターが増加される。ステップ３７２の後、処理はステップ３６０に戻り、次のプログラミング電圧パルスを印加する。
【００５５】
一度プログラミングがなされると、アレイ１１のメモリ・セルは図１２の処理によって読み取ることができる。ステップ４００では、標準の比較点を用いた読み取り動作が開始する。比較点とは、２つの電圧しきい状態の中間に設定され、そのレベルを超える状態とそのレベルに満たない状態とを区別するために用いられる、電圧しきいレベルのことである。例えば図６では、７００ｍＶ、１３００ｍＶ、１９００ｍＶ、２５００ｍＶ、３１００ｍＶ、３７００ｍＶ、および４３００ｍＶにおける灰色の太線として、複数の比較点を示している。加えて、下記に詳しく説明するように、トラッキング・セルの処理後におけるデータの品質が低い場合、マルチ・ビット訂正を強制的に試みるか否かを指示することもできる。これは、ホストまたは制御装置によって指示されてもよいし、メモリ・システムにプログラムされてもよい。
【００５６】
図１２のステップ４０２では、ローカル・アドレスが特定される。すなわち、制御装置が、読み取られるデータの論理アドレス（あるいはアドレス群）を受信またはアクセスする。これらのアドレスは、特定のメモリ・アレイまたはメモリ・アレイ群における物理的なアドレスに変換される。ステップ４０４では、ブール変数のTrackingDoneが「偽」に設定される。ステップ４１８では、トラッキング・セルが読み取られる。トラッキング・セルの読み取りについては、後に詳述する。ステップ４２０では、ローテーション・スキームが計算され、ステップ４２２では、関連する品質ゲージが特定（あるいは更新）される。ローテーション・スキームの計算、および品質ゲージの特定／更新については、後に詳述する。ステップ４２４では、品質ゲージ（後述する）に基いて、データが高品質であるか低品質であるかを判断する。品質ゲージが低品質のデータであると指摘した場合、処理はステップ４７０（後述する）に進む。品質ゲージが高品質のデータであると指摘した場合、ステップ４２６で、計算されたローテーションを用いて物理的に読み取られるデータから論理データを確立して、ユーザー・データとエラー訂正符号が読み取られる。
すなわち、ステップ４２０で特定されたローテーション・スキームに基いて、ユーザー・データが復号化される。従来から知られている標準的な方法によれば、制御装置はデータの読み取り処理のためにＥＣＣシンドロームを生成する。ステップ４２８では、これらのＥＣＣシンドロームが解析されて、データに何らかのエラーがあるか否かを判断する。ＥＣＣが何もエラーを発見しなかった場合（ステップ４３０）、読み取り処理は成功して終了する。ホストから要求があった場合には、読み取られたデータが制御装置からホストに報告される。ＥＣＣ処理がエラーを発見した場合（ステップ４３０）、ステップ４４０で制御装置は１ビット訂正処理を実行する。すなわち、当業者に知られている方法を用いて、誤っているデータの１ビットを訂正するためにＥＣＣが使用される。１ビット訂正処理が成功した場合（ステップ４４２）、訂正されたデータは付加的に（オプション・ビットで設定することにより）再書き込みのために待ち行列に入れられる。この時点で読み取り処理は成功と見なされ、（必要であれば）ホストにデータが報告され、訂正されたデータは付加的にメモリ・アレイに再度書き込まれる。データの読み取りにＥＣＣを用いることは、この技術分野では従来から知られていることに留意すべきである。本発明は、この分野で知られている多くのＥＣＣスキームとともに実施することができる。
【００５７】
（例えば複数のエラーが存在しているため）１ビット訂正処理が成功しなかった場合は、ステップ４５０においてブール変数TrackingDoneをテストすることにより、トラッキング・セル処理が行われたか否かが判断される。変数TrackingDoneが「真」に設定されていれば（トラッキング・セル処理が完了したことを意味し）、処理はステップ４５２で複数ビット訂正処理を試みる。本発明は、この分野で知られている複数ビット訂正処理とともに実施することができる。複数ビット訂正処理が成功した場合（ステップ４５４）、訂正されたデータは再書き込みのために待ち行列に入れられ、読み取り処理は成功と見なされ、読み取られた（および訂正された）データは、（必要であれば）ホストに返信される。複数ビット訂正処理が成功しなかった場合（ステップ４５４）、読み取り処理は失敗と見なされ、状況に応じて処置が施される（例えば、ホストがそのデータを待っている場合、ホストはエラー・メッセージを受信する）。
【００５８】
ステップ４５０において、（ブール変数TrackingDoneが「偽」に設定されていたため）トラッキング・セル処理が行われなかったと判断された場合は、制御装置がステップ４６０でトラッキング・セル処理を実行する。トラッキング・セル処理は、トラッキング・セルを処理して、新たな比較点のセットを特定することを含む。ステップ４６０の詳細は図１５に関連して後述する。ステップ４６２では、現在の比較点がステップ４６０の結果に基いて調整され、ステップ４６４でブール変数TrackingDoneが「真」に設定される。ステップ４６４の後、処理はステップ４１８に戻り、システムは、新たな比較点を用いてトラッキング・セルとデータ・セルをもう一度読み取ろうとする。新たな比較点は、一時的あるいは恒久的に使用できるということに留意すべきである。さらに、新たな比較点は、その時点で考慮されているセクタのみで、あるいは、その時点で考慮されているセクタと同じように他のセクタでも使用できる。例えば、一実施形態では、セクタのセットが１つのグループ（例えば１つのファイル）として扱われ、その中の１つのセクタの比較点が調整された場合に、そのグループの全てのセクタの比較点も調整される。
【００５９】
ステップ４２４で、品質ゲージが低品質のデータであると指摘した場合、処理はステップ４７０に進む。ステップ４７０では、ブール変数TrackingDoneをテストすることにより、トラッキング・セル処理が行われたか否かが判断される。TrackingDoneが「真」に設定されている場合、読み取り処理は失敗する。TrackingDoneが「偽」に設定されている場合、ステップ４６０でトラッキング・セル処理が実行される。さらに、ステップ４７０では、変数をセットして、ステップ４５２の複数ビット訂正処理を強制的に行わせることができる。
【００６０】
図１２のステップ４１８は、トラッキング・セルを読み取ることを含む。そのようにするためには、図６に関して説明したように、適切なステアリング・ゲートの電圧レベルが７つの比較点を段階的に経て、７つの読み取り動作が実行されるようにする。それぞれの読み取り動作において、トラッキング・セルをそれぞれの比較点でテストするために、ステアリング・ゲートの電圧は段階的に異なるレベルとされる。それぞれの比較点では、特定のトラッキング・セルがオンに切換えられたか、オフのまま保たれているのかが判断される。すなわち、電流が流れたか否かを判断する。７つの読み取り動作の最後に、読み取り動作からのデータは、制御装置にシフトされる。そして、制御装置はそのデータを図１３の表に従って変換する。図１３の表は、７つの読み取り動作のそれぞれから得られたデータに基いて、特定のメモリ・セルがどの状態にあるのかを示している。例えば、７つの読み取り動作の全てにおいてメモリ・セルがオンであった場合、そのメモリ・セルは物理状態Ｐ０にある。メモリ・セルが最初の読み取り動作の間はオフであり、残りの６つの読み取り動作の間はオンである場合、そのメモリ・セルは状態Ｐ１にある。メモリ・セルが最初の２つの読み取り動作の間はオフであり、残りの読み取り動作の間はオンである場合、そのメモリ・セルは状態Ｐ２にある。案の定、何のエラーもない場合には、各トラッキング・セルは、もともと書き込まれている状態である、状態Ｐ１あるいはＰ６の何れかである。他の実施形態では、他の状態を使用することができる。上述の読み取り処理は、電圧検知を利用していることに留意すべきである。しかしながら、電流検知あるいは他の読み取り（あるいは検知）方法もまた、本発明の範囲内にあることが理解される。
【００６１】
図１４は（図１２のステップ４２０の）ローテーション・スキームを計算する処理の一実施形態を説明するフローチャートである。ステップ５２０では、制御装置がトラッキング・セルのペア（一実施形態では、フローティング・ゲートのペア。例えば、図３〜４を参照）からのデータにアクセスする。ステップ５２２では、トラッキング・セルのペアの一方が状態Ｐ１で、他方が状態Ｐ６であるか否かが判断される。もしそうであれば、図１０に関連して記載したように、ステップ５２４でこれら２つのトラッキング・セルに対するビットが適切に設定される。すなわち、第１トラッキング・セルが状態Ｐ１で、第２トラッキング・セルが状態Ｐ６の場合、対応するローテーション・ビットは０に設定される。その代わりに、第１トラッキング・セルが状態Ｐ６で、第２トラッキング・セルが状態Ｐ１の場合、ローテーション・ビットは論理１に設定される。ステップ５２６では、処理すべきセルのペアがほかに存在するか否かが判断される。処理すべきペアがまだ残っている場合、この方法はステップ５２０に戻って処理を繰り返す。一実施形態では、セル群の状態がＰ１とＰ６であると判断を行う際に（ステップ５２２を参照）、システムは状態Ｐ１または状態Ｐ６以外の状態を扱ってもよいことに留意すべきである。例えば、状態Ｐ０、Ｐ１、Ｐ２、およびＰ３（あるいはこれらの状態群のサブセット）が状態Ｐ１として扱われ、状態Ｐ４、Ｐ５、Ｐ６、およびＰ７（あるいはこれらの状態群のサブセット）が状態Ｐ６として扱われてよい。
【００６２】
ステップ５２２で、セルのペアの一方が状態Ｐ１、他方が状態Ｐ６とはなっていないと判断された場合、ステップ５３０でその２つのセルが互いに異なる状態にあるか否かが判断される。２つのセルが同一の状態にある場合、エラーが存在しており、ステップ５３２でそのエラーが記録される。ステップ５３２は、この特定の比較について詳細なデータを保持することの後に、順次的なエラー対策にデータを加えることを含むことができる。ステップ５３２で保持されるデータは、品質ゲージに使用される。２つのセルが互いに異なる状態にある場合、ステップ５３４で、制御装置は低い方のしきい電圧を持つセルに状態Ｐ１を割り当て（ステップ５３４）、高い方のしきい電圧を持つセルに状態Ｐ６を割り当てる（ステップ５３６）。ステップ５３８では、そのエラーが記録され、動作はステップ５２４に戻る。ステップ５３８は、状態Ｐ１または状態Ｐ６ではなかったセルの数、および／またはこれらの特定のセルが状態Ｐ１および／またはＰ６からはずれている差分を記録することを含むことができる。
【００６３】
全てのペアが処理されたら（ステップ５２６）、その時点でシステムは１２のペアを処理しており、従って、システムは１２ビットのデータを備えている。その１２ビットのデータは、図９に示すように４つのデータ・セットにグループ分けされる。ステップ５５０では、各セットの３ビットを図１０の表と比較することにより、各セットのローテーションが特定される。ローテーションは、各セットにおいて別々に特定される。そして、セット同士が比較される。４つ全てのセットが同じ巡回符号を備えている場合（ステップ５５２）、ステップ５５４でその巡回符号が保持される。４つのセットが一致しない場合、ステップ５５６でその問題が解決され、そのエラー情報がステップ５５８で保持された後に、解決された巡回符号がステップ５５４で保持される。
【００６４】
この不一致を解決する方法は多数ある。一つの方法は、投票を行って多数決をとることである。例えば、４つのセットのうち３つが１つの特定の値の符号と判断され、第４のセットのみが異なる特定の値の符号と判断される場合、その３つのセットによって選択された符号を採用して、不一致が解決される。あるいは、各ビットごとに一致しているか否かを比較し、ビットごとに投票を行う方法もある。例えば、最初の２ビットについては４つの全てのセットにおいて同一であり、第３のビットがそれらのセットのうちの１つで異なる場合には、その第３のビットは共通の値を持つ３つのセットによって判断された値とする。あるいは、これをセルごとに行って、５つのセルが全てのセットにおいて同一であり、第６のセルがそれらのセットのうちの１つで異なる場合には、その異なるセルについては無視するという方法もある。
【００６５】
ローテーションを特定する他の１つの実施形態では、物理状態Ｐ１とＰ６の中間の比較点を用いて各トラッキング・セルを１度だけ読み取る。オンに切替わる全てのセルは状態Ｐ１にあり、オフのまま維持される全てのセルの状態はＰ６であると仮定する。ローテーション・ペアの両方のセルが同じ状態と演算された場合、システムは、一方のセルがオンであり他方のセルがオフである比較点を見つけるまで、詳細な分解能で、間にあるいくつもの比較点についての演算を順次行っていく。
【００６６】
図１４は、エラーが記録されるボックス５３２、５３８、および５５８を示す。このエラーは、品質ゲージを形成するのに用いられる。ステップ５３２、５３８、および５５８で記録されるデータに基づき、品質ゲージは図１２のステップ４２２で特定される。一実施形態では、品質ゲージはエラーの数や、しきいを超えたエラー量などを測定する。例えば、一実施形態では、品質ゲージは、状態がＰ１またはＰ６ではないトラッキング・セルの数の指標を保持してもよいし、あるいは品質ゲージは、状態がＰ１またはＰ６から異なるそれらのセルの平均値もしくは累積値を保持してもよい。あるいは、品質ゲージは複数の値を保持してもよく、例えば状態がＰ１またはＰ６ではないトラッキング・セルに対して、Ｐ１およびＰ６からどれだけ離れているかを各セルについて保持してもよい。エラーに関する他のデータや測定値が品質ゲージに反映されてもよい。他の１つの実施形態では、品質ゲージはエラーの数や大きさに基いて予め設定された幾つかの状態のうちの一つに設定される。測定されたデータに依存して、システムは品質ゲージを用いて、例えばしきい値に満たないとか、しきい値を超えるとか、あるいは規定や特性を満たすなど、品質ゲージが所定の基準に適合する場合に、その動作を変更することができる。
【００６７】
幅広いシフトやデータの状態／範囲が存在していてもローテーションを特定することは可能であるが、トラッキング・セルから読み取られる実際の状態は、目標とする状態Ｐ１およびＰ６から大幅に外れていることがある。幾つのセルが目標から異なっているか特定することによって、品質ゲージの一実施形態が構築される。この品質ゲージが所定のしきいレベル（もしくはしきいレベルの連続的なセット）を超えた場合、その品質ゲージに応じて警告状態（あるいは警告状態の連続的なセット）が生じるかもしれない。一実施形態では、メモリ・デバイスは、警告状態あるいはエラー・ゲージに対して反応しない（例えば、全く同じ動作で読み取り処理を続ける）。他の実施形態では、メモリ・デバイスは警告状態に反応する。例えば、処理は即座にトラッキング・セル処理（図１２のステップ４２４）に移行して、比較点を調整して読み取り処理を再開することができる。あるいは、読み取り処理の全体を強制終了する（例えば、ステップ４７０を経由して終了／失敗ブロックに進む）ことができる。他の実施形態では、ＥＣＣパラメータを変えることができる。例えばシステムは、品質ゲージがしきい値を超えている場合には、マルチ・ビット訂正は行わないことを選択する。警告状態を生起する基準の一例は、状態Ｐ１またはＰ６のいずれでもないトラッキング・セルの数が１を越えるか否かである。この場合、１つのランダムな（例えばランダム・ノイズによる）不具合ビットが見過ごされてしまう。しかしながら、２つのランダムで無相関なエラーが生起する可能性は極めて低いため、２つ以上の不具合についてはフラグされ、セクタの内部に存在するより広範な不具合状態を指し示す。他の実施形態では、状態がＰ１またはＰ６のいずれでもないトラッキング・セルが２つ（あるいは他の数）であることを基準としてもよい。
【００６８】
図１５は、トラッキング・セル処理（図１２のステップ４６０と４６２を参照）を実行する処理の一実施形態を表すフローチャートである。ステップ６００では、物理状態Ｐ１に関連する所定の範囲内の各しきい電圧について、制御装置は各トラッキング・セルにおける読み取り動作を行わせる。例えば、図６は、状態Ｐ１に関連しているしきい電圧２１０を示す。この１５の電圧は、状態Ｐ１の期待される範囲内のしきい電圧と、その範囲に満たないしきい電圧と、その範囲を超えるしきい電圧を含む。より多くのしきい電圧をテストしてより細かい分解能とすることもできるし、時間を節約するためにより少ないしきい電圧をテストしてより粗い分解能とすることもできる。他の実施形態では、図６に示す分解能で、範囲を増減することができる。一実施形態では、これらのしきい電圧のそれぞれについて、全てのトラッキング・セルが読み取り動作を備える。他の１つの実施形態では、これらのトラッキング・セルのうち状態Ｐ１であると思われるもののみが、状態Ｐ１に関連するしきい電圧についての読み取り動作を備える。例えば、状態Ｐ１であると思われる各トラッキング・セルにおいて、１５の読み取り動作が実行される。他の１つの実施形態では、全てのトラッキング・セルがこれらのしきい電圧のそれぞれについての読み取り動作を備えるが、状態Ｐ１ではないと思われるトラッキング・セルは読み取り動作の結果を破棄する。ステップ６０２では、物理状態Ｐ６に関連する範囲内のしきい電圧のそれぞれについて、制御装置はそれぞれのトラッキング・セルにおける読み取り動作を行わせる。例えば図６は、状態Ｐ６に関連している範囲内の１５のしきい電圧２１２を示す。状態Ｐ１について上述した代替的な実施形態と同様のものが、状態Ｐ６にも適用される。例えば、１６以上のしきい電圧を用いてより細かい分解能を実現することもできるし、１４以下のしきい電圧を用いてより粗い分解能とすることもできる。一実施形態では、状態Ｐ１の場合と同様に、ステップ６０２で全てのトラッキング・セルに１５の読み取り動作が実行される。他の実施形態では、これらのトラッキング・セルのうち状態Ｐ６であると思われるもののみが、ステップ６０２で読み取られる。
【００６９】
図１５のステップ６０４では、ステップ６００および６０２の読み取り動作に基いて、制御装置が各トラッキング・セルの実際のしきい電圧を特定する。制御装置は、セルがオンに切替わった最初のしきい電圧を探す。ステップ６０４の最後までには、制御装置は２４のトラッキング・セルのそれぞれに対応する、２４のしきい電圧を特定する。ステップ６０６では、制御装置は状態Ｐ１の代表的なしきい電圧を特定する。ステップ６０８では、制御装置は状態Ｐ６の代表的なしきい電圧を特定する。２つの状態のそれぞれの代表的なしきい電圧は、周知の様々な数学的手段を用いて計算できる。例えば、各状態の分布を構築してその平均値を求めることができる。あるいは、直線回帰を使用することもできる。簡単にするために、単にそれぞれの分布の平均値を求めてもよい。あるいは、外れ値を除いた単純な平均値を計算してもよい。外れ値は、フィルタリング処理によって、もしくは（例えば状態Ｐ１とＰ６に対する）２つの分布のそれぞれのしきい電圧の最大値と最小値を除去することによって、排除することができる。
【００７０】
ステップ６１０では、２つの代表的なしきい電圧に基いて、新たな７つの比較点が生成される。これらの比較点は、最適な比較点の最良推定値が得られるように、内挿法および外挿法を用いることで、確立することができる。比較点を特定する手段は多数ある。一実施例では、制御装置は状態Ｐ１とＰ６の代表的なしきい電圧の増加分を特定し、その二つの値を平均して平均増加分を求め、現在の比較点をその平均増加分だけ引き上げる。例えば、状態Ｐ１およびＰ６の代表的なしきい電圧が、平均増加分１００ｍＶで増加したと判断されると、最初に設定されている比較点のセット（７００、１３００、１９００、２５００、３１００、３７００、４３００、４９００）は、１００ｍＶ引き上げられて、新たなレベル（８００、１４００、２０００、２６００、３２００、３８００、４４００、５０００に）に調整され、データはこの新たな比較点に対して読み取られる。他の１つの実施形態では、システムは８つの状態のそれぞれに対して代表的なしきい電圧を評価し、その８つの代表的なしきい電圧同士の関係を特定し、状態Ｐ１およびＰ６の新たな値をその関係に当てはめて、８つの状態のそれぞれの新たなしきい電圧を求めることができる。新たなしきい電圧を用いて、互いに隣接する状態間の中間地点に最も近い読み取り電圧レベルを設定することにより、状態間の新たな比較点を算出することができる。あるいは、比較点と状態Ｐ１およびＰ６の代表的なしきい電圧との関係を特定して、状態Ｐ１およびＰ６の代表的なしきい電圧として新たな値を入れることで、比較点を変更してもよい。他のアルゴリズムを使用することもできる。
【００７１】
一実施形態では、新たな比較点はトラッキング・セル処理を引き起こしたセクタの読み取り不具合のみに対して使用されるのではなく、その後の読み取り（例えば、同じ読み取りセッションまたは将来の読み取りセッションにおける同じメモリの他の位置への読み取り。同じ修正が要求されるかも知れないし、要求されないかもしれない。）に対しても使用される。このような場合には、比較点は当初の基準値ではなく修正された値が好ましい。あるいは、一方が最初に設定された値を用いており、他方が最新の修正値を用いている、２つの条件のセットを、２つの参照レジスタのセットと関連する読み取りモードによって、同時に管理することができる。一方のモードを用いた読み取りが失敗した場合、データ復元を試みる第一歩として、他方のモード／参照条件を使用した再読み取りが実行される。最初に試みられるモードは、成功の見込みに基いて（例えば特性に基いて統計的に、あるいは成功の履歴に基いて動的に）最適に設定される。上述の処理は、トラッキング・セル処理の間の１５のステップを説明していることに留意すべきである。他の実施形態では、１５を超えた、または１５に満たないステップを用いる。例えば、電圧分解能が２５ｍＶで、状態と状態の間の幅が５００ｍＶである場合には、処理は２０のステップを用いる。一実施形態では、トラッキング・セル処理は、品質ゲージが低品質データを指摘した場合、あるいはＥＣＣが失敗した場合にのみ実行される。
【００７２】
一実施形態では、ユーザー・データ部がメモリ内で手を付けずにそのまま送信されなければならない場合に（例えば、内部でのデータ・コピー動作において）、システムはヘッダーやヘッダー・スタックを独立して読み取ることができることに留意されたい。このような場合、ユーザー・データの再書き込み（例えば、他の場所へのコピー）を実行する前に、上述したように、現在のデータ・ローテーションを抽出する必要がある。そして、新たなヘッダーとユーザー・データを、抽出したローテーションに従って書き込む。
【００７３】
上述した処理は、制御装置によって行われるか、制御装置の指示に従って行われる。一実施形態では、ほとんどあるいは全ての処理がファームウェアによってサポートできる。従って、コード（例えばファームウェア）はプロセッサ上の制御装置／制御装置で読み取り可能な例えばフラッシュ・メモリやＲＡＭなどの制御装置をプログラミングするための記憶媒体の内部に埋め込まれてよい。そのコードは制御装置と通信する記憶素子に保持されていてもよい。あるいは、制御装置の内部に専用のハードウェアを含ませて、これらの機能を実現してもよい。制御装置という用語は、上述の機能を実現するメモリ・システムの内部の処理デバイスを表す、いくぶん包括的な表現であることに留意されたい。
【００７４】
一実施形態では、上述の方法は全てリアル・タイムに実行される。トラッキング・セルを使用することによる実際の性能への定量的な評価は、実際の実装形態によって異なる。ローテーションを計算する場合においては、関連する全ての動作がパイプライン型でプロセッサの最高速度で実行され、トラッキング・セルのデータは通常のデータ・ストリーム・フローの一部であるから、性能への影響はごくわずかである。一方、上述のトラッキング・セル処理を引き起こする実施例では、３０の順次的な読み取りおよび多数のシフト・アウトが必要とされ、さらに制御装置がトラッキング・セル処理の演算を行うための時間も要求され、その後は新たな読み取り条件のロードと、最後の全体的な読み取りが続く。しきい電圧の読み取りが実行される範囲を狭めたり、しきい電圧の読み取り探索アルゴリズムを改善したりする（例えば、それぞれの分布のしきい電圧の中間点を探索するために、二分探索法を利用する）ことは可能かもしれない。それでも、その発生率はかなり低いため、全体的な性能への影響はごくわずかと予想され、完全な読み取り失敗や訂正ミスよりは明らかに好ましい。
【００７５】
上記の例は、特定のフラッシュ・メモリ・システムに関して提供されている。しかしながら、本発明の原理は他のフラッシュ・メモリ・システムや、他の種類の記憶装置（例えば、他の集積回路／ソリッド・ステート／半導体メモリなど）にも適用でき、現在使われているものだけでなく、今後の新しい技術を用いるものにも適用できる。本発明はさらに、光学システム、磁性システム、および機械的システムを含む非電気的メモリにも適用できる。
【００７６】
上述の本発明の詳細な説明は、図示と解説を目的として記載された。余すところなく記載する意図はなく、本発明を開示されたとおりのものに制限する意図もない。上記の説明に照らせば、多くの変形や変更が可能である。上述の実施例は、その説明に基づき当業者が多数の実施形態で使用したり、必要に応じて様々な変更を加えたりできるように、発明の原理と実際的な適用を最適に説明するために選択された。本発明の範囲は、添付の特許請求の範囲によって規定されることを意図する。
【図面の簡単な説明】
【００７７】
【図１】図１は本発明の一実施形態を利用するフラッシュ・メモリ・システムのブロック図である。
【図２】図２は図１のシステムのメモリ・セル・アレイの一部の一実施形態の平面図である。
【図３】図３は図２のメモリ・セル・アレイの断面Ａ−Ａにおける部分的断面図である。
【図４】図４は図３の構造と電気的に等価な回路である。
【図５】図５はメモリ・セルを動作させる一つの手法に対する電圧の例を示す表である。
【図６】図６は本発明の一実施形態に対する状態空間を図示している。
【図７】図７は論理状態の割り当ての例を示している。
【図８】図８は異なるローテーション符号化スキームについての物理状態から論理状態への割り当ての例を示す。
【図９】図９は本発明の一実施形態に関連するユーザー・データとオーバーヘッド・データを図示するデータ・マップである。
【図１０】図１０はトラッキング・セルのデータ・パターンからローテーション・スキームへの割り当ての例を示す。
【図１１】図１１はデータの書き込みの方法の一実施形態を示すフローチャートである。
【図１２】図１２はデータの読み取りの方法の一実施形態を示すフローチャートである。
【図１３】図１３は読み取り動作の間のセルの状態を特定するために使用可能な表である。
【図１４】図１４はローテーション・スキームを特定するための方法の一実施形態を示すフローチャートである。
【図１５】図１５はトラッキング・セルを処理する方法の一実施形態を示すフローチャートである。
【図１】
2007500918.tif 000003
【図２】
2007500918.tif 000004
【図３】
2007500918.tif 000005
【図４】
2007500918.tif 000006
【図５】
2007500918.tif 000007
【図６】
2007500918.tif 000008
【図７】
2007500918.tif 000009
【図８】
2007500918.tif 000010
【図９】
2007500918.tif 000011
【図１０】
2007500918.tif 000012
【図１１】
2007500918.tif 000013
【図１２】
2007500918.tif 000014
【図１３】
2007500918.tif 000015
【図１４】
2007500918.tif 000016
【図１５】
2007500918.tif 000017
【国際調査報告】
2007500918.tif 000018
2007500918.tif 000019
2007500918.tif 000020
2007500918.tif 000021
2007500918.tif 000022